<?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>226157</bug_id>
          
          <creation_ts>2021-05-23 12:47:51 -0700</creation_ts>
          <short_desc>Make CheckedLock the default Lock</short_desc>
          <delta_ts>2021-05-24 10:02:07 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Template Framework</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>226145</dependson>
    
    <dependson>226152</dependson>
          <blocked>226176</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>achristensen</cc>
    
    <cc>alecflett</cc>
    
    <cc>beidson</cc>
    
    <cc>benjamin</cc>
    
    <cc>berto</cc>
    
    <cc>calvaris</cc>
    
    <cc>cgarcia</cc>
    
    <cc>changseok</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>darin</cc>
    
    <cc>ddkilzer</cc>
    
    <cc>dino</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fred.wang</cc>
    
    <cc>ggaren</cc>
    
    <cc>glenn</cc>
    
    <cc>graouts</cc>
    
    <cc>gustavo</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>hi</cc>
    
    <cc>jamesr</cc>
    
    <cc>jer.noble</cc>
    
    <cc>joepeck</cc>
    
    <cc>jsbell</cc>
    
    <cc>kangil.han</cc>
    
    <cc>keith_miller</cc>
    
    <cc>kkinnunen</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>luiz</cc>
    
    <cc>mark.lam</cc>
    
    <cc>menard</cc>
    
    <cc>msaboff</cc>
    
    <cc>philipj</cc>
    
    <cc>pnormand</cc>
    
    <cc>saam</cc>
    
    <cc>sam</cc>
    
    <cc>sergio</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>tzagallo</cc>
    
    <cc>vjaquez</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1762928</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-05-23 12:47:51 -0700</bug_when>
    <thetext>Make CheckedLock the default Lock.

Rename Lock to UncheckedLock, CheckedLock to Lock. Also rename Condition to UncheckedCondition and CheckedCondition to Condition.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1762944</commentid>
    <comment_count>1</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-05-23 13:17:57 -0700</bug_when>
    <thetext>Safer to do this in separate steps. A single patch where Lock is valid both before and after but means two different things is much more risky.

Also, should the Unchecked ones exist long term, or are they deprecated and slated for destruction? If the latter, then I suggest names with Deprecated in them.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1762947</commentid>
    <comment_count>2</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-05-23 13:23:03 -0700</bug_when>
    <thetext>(In reply to Darin Adler from comment #1)
&gt; Safer to do this in separate steps. A single patch where Lock is valid both
&gt; before and after but means two different things is much more risky.

The issue is that not ALL existing Lock cases will be renamed to UncheckedLock. As a matter of fact, most of them will just build fine as is when the UncheckedLock become the Lock.

The approach I used was doing the rename of the Locks, and then only update variables from Lock to UncheckedLock if I get a build failure.

I am not sure I understand the risk you&apos;re referring to here. Either it builds or it doesn&apos;t. The locks are identical at run time.

&gt; Also, should the Unchecked ones exist long term, or are they deprecated and
&gt; slated for destruction? If the latter, then I suggest names with Deprecated
&gt; in them.

I am proposing to start with UncheckedLock for now and see how it goes. If we see that things go well and we managed to get to low usage then add deprecated to the name later on. There are cases that rely on Locker having a move constructor, in particular in JavaScriptCore and this is something that Locker&lt;CheckedLock&gt; cannot support for e.g.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1762948</commentid>
    <comment_count>3</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-05-23 13:28:07 -0700</bug_when>
    <thetext>By the way, the reason I landed so many patches before this one ( to get rid of holdLock() / tryHoldLock and LockHolder variables) is because as a result, most existing Locks will build just fine as a result once I rename CheckedLock to Lock.

The cases that will need to be renamed to UncheckedLock are mostly cases where lockers are moved and passed as parameter as AbstractLocker. And Lockers that take in a pointer to a lock (instead of a reference). With some work though, we can likely factor the code a bit differently to get rid of UncheckedLock I hope.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1762957</commentid>
    <comment_count>4</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-05-23 14:02:05 -0700</bug_when>
    <thetext>(In reply to Chris Dumez from comment #2)
&gt; I am not sure I understand the risk you&apos;re referring to here. Either it
&gt; builds or it doesn&apos;t. The locks are identical at run time.

OK. I guess this is an unusual case where it’s completely safe to get it wrong!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1762960</commentid>
    <comment_count>5</comment_count>
      <attachid>429478</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-05-23 14:39:22 -0700</bug_when>
    <thetext>Created attachment 429478
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1762961</commentid>
    <comment_count>6</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2021-05-23 14:40:09 -0700</bug_when>
    <thetext>Thanks for the patch. If this patch contains new public API please make sure it follows the guidelines for new WebKit2 GTK+ API. See https://trac.webkit.org/wiki/WebKitGTK/AddingNewWebKit2API</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1762965</commentid>
    <comment_count>7</comment_count>
      <attachid>429479</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-05-23 15:08:12 -0700</bug_when>
    <thetext>Created attachment 429479
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1762972</commentid>
    <comment_count>8</comment_count>
      <attachid>429482</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-05-23 15:56:08 -0700</bug_when>
    <thetext>Created attachment 429482
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1762975</commentid>
    <comment_count>9</comment_count>
      <attachid>429484</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-05-23 16:21:14 -0700</bug_when>
    <thetext>Created attachment 429484
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1762981</commentid>
    <comment_count>10</comment_count>
      <attachid>429486</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-05-23 16:36:37 -0700</bug_when>
    <thetext>Created attachment 429486
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1762982</commentid>
    <comment_count>11</comment_count>
      <attachid>429487</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-05-23 16:51:21 -0700</bug_when>
    <thetext>Created attachment 429487
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1762983</commentid>
    <comment_count>12</comment_count>
      <attachid>429488</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-05-23 17:08:44 -0700</bug_when>
    <thetext>Created attachment 429488
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1762991</commentid>
    <comment_count>13</comment_count>
      <attachid>429493</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-05-23 18:14:39 -0700</bug_when>
    <thetext>Created attachment 429493
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1763001</commentid>
    <comment_count>14</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-05-23 19:58:42 -0700</bug_when>
    <thetext>I am preparing an explanation email for Clang thread safety analysis in WebKit and the related annotations for webkit-dev. This way, people will know our to leverage this in new code or how to deal with compilation errors when they modify the code. I&apos;ll send out the mail after this lands.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1763005</commentid>
    <comment_count>15</comment_count>
      <attachid>429493</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-05-23 20:54:07 -0700</bug_when>
    <thetext>Comment on attachment 429493
Patch

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

Seems like a good start. I couldn’t really discern the pattern of where we use UncheckedLock explicitly in this patch, even though you explained the strategy and rationale, but I suppose the main point is switching to the checking from CheckedLock almost everywhere that is *not* in the patch.

&gt; Source/WTF/wtf/Lock.h:216
&gt; +using WTF::assertIsHeld;

Just occurred to me that we might not need this because of argument dependent lookup &lt;https://en.cppreference.com/w/cpp/language/adl&gt;. If the argument is in the WTF namespace, then the function is looked for in the WTF namespace without requiring a WTF:: prefix, so this using line solves a problem that does not exist.

&gt; Source/WebCore/html/canvas/WebGLObject.h:31
&gt; +#include &lt;wtf/Lock.h&gt;

Could we use Forward.h here instead, and remove the forward declaration of AbstractLocker below?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1763006</commentid>
    <comment_count>16</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-05-23 20:57:47 -0700</bug_when>
    <thetext>(In reply to Darin Adler from comment #15)
&gt; Comment on attachment 429493 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=429493&amp;action=review
&gt; 
&gt; Seems like a good start. I couldn’t really discern the pattern of where we
&gt; use UncheckedLock explicitly in this patch, even though you explained the
&gt; strategy and rationale, but I suppose the main point is switching to the
&gt; checking from CheckedLock almost everywhere that is *not* in the patch.
&gt; 
&gt; &gt; Source/WTF/wtf/Lock.h:216
&gt; &gt; +using WTF::assertIsHeld;
&gt; 
&gt; Just occurred to me that we might not need this because of argument
&gt; dependent lookup &lt;https://en.cppreference.com/w/cpp/language/adl&gt;. If the
&gt; argument is in the WTF namespace, then the function is looked for in the WTF
&gt; namespace without requiring a WTF:: prefix, so this using line solves a
&gt; problem that does not exist.

Will try.

&gt; 
&gt; &gt; Source/WebCore/html/canvas/WebGLObject.h:31
&gt; &gt; +#include &lt;wtf/Lock.h&gt;
&gt; 
&gt; Could we use Forward.h here instead, and remove the forward declaration of
&gt; AbstractLocker below?

I think this means adding those forward declarations to Forward.h since they are not currently present.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1763008</commentid>
    <comment_count>17</comment_count>
      <attachid>429493</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-05-23 21:05:35 -0700</bug_when>
    <thetext>Comment on attachment 429493
Patch

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

&gt;&gt;&gt; Source/WebCore/html/canvas/WebGLObject.h:31
&gt;&gt;&gt; +#include &lt;wtf/Lock.h&gt;
&gt;&gt; 
&gt;&gt; Could we use Forward.h here instead, and remove the forward declaration of AbstractLocker below?
&gt; 
&gt; I think this means adding those forward declarations to Forward.h since they are not currently present.

We should do that eventually, even if we don’t do it right now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1763009</commentid>
    <comment_count>18</comment_count>
      <attachid>429499</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-05-23 21:17:24 -0700</bug_when>
    <thetext>Created attachment 429499
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1763026</commentid>
    <comment_count>19</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-05-23 22:37:49 -0700</bug_when>
    <thetext>Committed r277943 (238070@main): &lt;https://commits.webkit.org/238070@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 429499.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1763027</commentid>
    <comment_count>20</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-05-23 22:38:20 -0700</bug_when>
    <thetext>&lt;rdar://problem/78385912&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>429478</attachid>
            <date>2021-05-23 14:39:22 -0700</date>
            <delta_ts>2021-05-23 15:17:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226157-20210523143921.patch</filename>
            <type>text/plain</type>
            <size>94643</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3OTM0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAw
YzRlNzliNTg2ZTkwMmM1MTBiY2NkMjdkOGMwYzA0MTU2MGNmMjhmLi45MzM2Mzg2OTAxOGFkODIy
NjhhZjUzMmE1OWMwMThjOTZjMjM1ZTY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw5NSBAQAorMjAyMS0wNS0yMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgor
CisgICAgICAgIE1ha2UgQ2hlY2tlZExvY2sgdGhlIGRlZmF1bHQgTG9jaworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI2MTU3CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWFrZSBDaGVja2VkTG9jayB0aGUg
ZGVmYXVsdCBMb2NrIHNvIHRoYXQgd2UgZ2V0IG1vcmUgYmVuZWZpdHMgZnJvbSBDbGFuZworICAg
ICAgICBUaHJlYWQgU2FmZXR5IEFuYWx5c2lzLiBOb3RlIHRoYXQgQ2hlY2tlZExvY2sgMTAwJSBy
ZWxpZXMgb24gdGhlIGV4aXN0aW5nCisgICAgICAgIExvY2sgaW1wbGVtZW50YXRpb24gYW5kIG1l
cmVseSBhZGRzIHRoZSBjbGFuZyBhbm90YXRpb25zIGZvciB0aHJlYWQgCisgICAgICAgIHNhZmV0
eS4KKworICAgICAgICBUaGF0IHRoaXMgcGF0Y2ggZG9lcyBpczoKKyAgICAgICAgMS4gUmVuYW1l
IHRoZSBMb2NrIGNsYXNzIHRvIFVuY2hlY2tlZExvY2sKKyAgICAgICAgMi4gUmVuYW1lIHRoZSBD
aGVja2VkTG9jayBjbGFzcyB0byBMb2NrCisgICAgICAgIDMuIFJlbmFtZSB0aGUgQ29uZGl0aW9u
IGNsYXNzIHRvIFVuY2hlY2tlZENvbmRpdGlvbgorICAgICAgICA0LiBSZW5hbWUgdGhlIENoZWNr
ZWRDb25kaXRpb24gY2xhc3MgdG8gQ29uZGl0aW9uCisgICAgICAgIDUuIFVwZGF0ZSB0aGUgdHlw
ZXMgb2YgY2VydGFpbiB2YXJpYWJsZXMgZnJvbSBMb2NrIC8gQ29uZGl0aW9uIHRvCisgICAgICAg
ICAgIFVuY2hlY2tlZExvY2sgLyBVbmNoZWNrZWRDb25kaXRpb24gaWYgSSBnb3QgYSBidWlsZCBm
YWlsdXJlLiBCdWlsZCAKKyAgICAgICAgICAgZmFpbHVyZXMgYXJlIHVzdWFsbHkgY2F1c2VkIGJ5
IHRoZSBmb2xsb3dpbmcgZmFjdHM6CisgICAgICAgICAgIC0gTG9ja2VyPENoZWNrZWRMb2NrPiBk
b2Vzbid0IHN1YmNsYXNzIEFic3RyYWN0TG9ja2VyIHdoaWNoIGEgbG90IG9mCisgICAgICAgICAg
ICAgSlNDIGNvZGUgcGFzc2VzIGFzIGFyZ3VtZW50CisgICAgICAgICAgIC0gTG9ja2VyPENoZWNr
ZWRMb2NrPiBoYXMgbm8gbW92ZSBjb25zdHJ1Y3RvcgorICAgICAgICAgICAtIExvY2tlcjxDaGVj
a2VkTG9jaz4gY2Fubm90IGJlIGNvbnN0cnVjdGVkIGZyb20gYSBsb2NrIHBvaW50ZXIsIG9ubHkK
KyAgICAgICAgICAgICBhIHJlZmVyZW5jZQorCisgICAgICAgIEZvciBub3csIENoZWNrZWRMb2Nr
IGFuZCBDaGVja2VkQ29uZGl0aW9uIHJlbWFpbiBhcyBhbGlhc2VzIHRvIExvY2sgYW5kIAorICAg
ICAgICBDb25kaXRpb24sIGluIHRoZWlyIHJlc3BlY3RpdmUgQ2hlY2tlZExvY2suaCAvIENoZWNr
ZWRDb25kaXRpb24uaCBoZWFkZXJzLgorICAgICAgICBJIHdpbGwgZHJvcCB0aGVtIGluIGEgZm9s
bG93LXVwIHRvIHJlZHVjZSBwYXRjaCBzaXplLgorCisgICAgICAgIEkgd2lsbCBhbHNvIGZvbGxv
dy11cCB0byB0cnkgYW5kIGdldCByaWQgb2YgYXMgbXVjaCB1c2FnZSBvZiBVbmNoZWNrZWRMb2Nr
CisgICAgICAgIGFuZCBVbmNoZWNrZWRDb25kaXRpb24gYXMgcG9zc2libGUuIEkgZGlkIG5vdCB0
cnkgdmVyeSBoYXJkIGluIHRoaXMgcGF0Y2gKKyAgICAgICAgdG8gcmVkdWNlIHBhdGNoIHNpemUu
IAorCisgICAgICAgICogYXNzZW1ibGVyL3Rlc3RtYXNtLmNwcDoKKyAgICAgICAgKiBkZmcvREZH
Q29tbW9uLmNwcDoKKyAgICAgICAgKiBkZmcvREZHVGhyZWFkRGF0YS5oOgorICAgICAgICAqIGRm
Zy9ERkdXb3JrbGlzdC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6V29ya2xpc3Q6OldvcmtsaXN0
KToKKyAgICAgICAgKiBkZmcvREZHV29ya2xpc3QuaDoKKyAgICAgICAgKiBkeW5iZW5jaC5jcHA6
CisgICAgICAgICogaGVhcC9CbG9ja0RpcmVjdG9yeS5oOgorICAgICAgICAoSlNDOjpCbG9ja0Rp
cmVjdG9yeTo6Yml0dmVjdG9yTG9jayk6CisgICAgICAgICogaGVhcC9Db2RlQmxvY2tTZXQuaDoK
KyAgICAgICAgKEpTQzo6Q29kZUJsb2NrU2V0OjpnZXRMb2NrKToKKyAgICAgICAgKiBoZWFwL0hl
YXAuY3BwOgorICAgICAgICAoSlNDOjpIZWFwOjpIZWFwKToKKyAgICAgICAgKiBoZWFwL0hlYXAu
aDoKKyAgICAgICAgKiBoZWFwL01hcmtlZFNwYWNlLmg6CisgICAgICAgIChKU0M6Ok1hcmtlZFNw
YWNlOjpkaXJlY3RvcnlMb2NrKToKKyAgICAgICAgKiBoZWFwL01hcmtpbmdDb25zdHJhaW50U29s
dmVyLmg6CisgICAgICAgICogaGVhcC9TbG90VmlzaXRvci5jcHA6CisgICAgICAgIChKU0M6OlNs
b3RWaXNpdG9yOjpkb25hdGVLbm93blBhcmFsbGVsKToKKyAgICAgICAgKiBoZWFwL1Nsb3RWaXNp
dG9yLmg6CisgICAgICAgICogaml0L0V4ZWN1dGFibGVBbGxvY2F0b3IuY3BwOgorICAgICAgICAo
SlNDOjpFeGVjdXRhYmxlQWxsb2NhdG9yOjpnZXRMb2NrIGNvbnN0KToKKyAgICAgICAgKEpTQzo6
ZHVtcEpJVE1lbW9yeSk6CisgICAgICAgICogaml0L0V4ZWN1dGFibGVBbGxvY2F0b3IuaDoKKyAg
ICAgICAgKEpTQzo6RXhlY3V0YWJsZUFsbG9jYXRvckJhc2U6OmdldExvY2sgY29uc3QpOgorICAg
ICAgICAqIGppdC9KSVRXb3JrbGlzdC5jcHA6CisgICAgICAgIChKU0M6OkpJVFdvcmtsaXN0OjpK
SVRXb3JrbGlzdCk6CisgICAgICAgICogaml0L0pJVFdvcmtsaXN0Lmg6CisgICAgICAgICoganNj
LmNwcDoKKyAgICAgICAgKiBwcm9maWxlci9Qcm9maWxlckRhdGFiYXNlLmg6CisgICAgICAgICog
cnVudGltZS9Db25jdXJyZW50SlNMb2NrLmg6CisgICAgICAgICogcnVudGltZS9EZWZlcnJlZFdv
cmtUaW1lci5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNMb2NrLmg6CisgICAgICAgICogcnVudGlt
ZS9TYW1wbGluZ1Byb2ZpbGVyLmNwcDoKKyAgICAgICAgKEpTQzo6RnJhbWVXYWxrZXI6OkZyYW1l
V2Fsa2VyKToKKyAgICAgICAgKEpTQzo6Q0ZyYW1lV2Fsa2VyOjpDRnJhbWVXYWxrZXIpOgorICAg
ICAgICAoSlNDOjpTYW1wbGluZ1Byb2ZpbGVyOjp0YWtlU2FtcGxlKToKKyAgICAgICAgKiBydW50
aW1lL1NhbXBsaW5nUHJvZmlsZXIuaDoKKyAgICAgICAgKEpTQzo6U2FtcGxpbmdQcm9maWxlcjo6
Z2V0TG9jayk6CisgICAgICAgICogcnVudGltZS9WTS5oOgorICAgICAgICAqIHJ1bnRpbWUvVk1U
cmFwcy5jcHA6CisgICAgICAgIChKU0M6OlZNVHJhcHM6OmludmFsaWRhdGVDb2RlQmxvY2tzT25T
dGFjayk6CisgICAgICAgIChKU0M6OlZNVHJhcHM6OlZNVHJhcHMpOgorICAgICAgICAqIHJ1bnRp
bWUvVk1UcmFwcy5oOgorICAgICAgICAqIHRvb2xzL0Z1bmN0aW9uT3ZlcnJpZGVzLmg6CisgICAg
ICAgICogdG9vbHMvVk1JbnNwZWN0b3IuY3BwOgorICAgICAgICAoSlNDOjplbnN1cmVJc1NhZmVU
b0xvY2spOgorICAgICAgICAqIHRvb2xzL1ZNSW5zcGVjdG9yLmg6CisgICAgICAgIChKU0M6OlZN
SW5zcGVjdG9yOjpnZXRMb2NrKToKKyAgICAgICAgKiB3YXNtL1dhc21DYWxsZWVSZWdpc3RyeS5o
OgorICAgICAgICAoSlNDOjpXYXNtOjpDYWxsZWVSZWdpc3RyeTo6Z2V0TG9jayk6CisgICAgICAg
ICogd2FzbS9XYXNtUGxhbi5oOgorICAgICAgICAqIHdhc20vV2FzbVN0cmVhbWluZ0NvbXBpbGVy
Lmg6CisgICAgICAgICogd2FzbS9XYXNtVGh1bmtzLmg6CisgICAgICAgICogd2FzbS9XYXNtV29y
a2xpc3QuY3BwOgorICAgICAgICAoSlNDOjpXYXNtOjpXb3JrbGlzdDo6V29ya2xpc3QpOgorICAg
ICAgICAqIHdhc20vV2FzbVdvcmtsaXN0Lmg6CisKIDIwMjEtMDUtMjMgIENocmlzIER1bWV6ICA8
Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBVc2UgQ2hlY2tlZExvY2sgaW4gZXZlbiBtb3Jl
IHBsYWNlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV1RGL0No
YW5nZUxvZwppbmRleCAxZGYzZjhlMGJhMWU3MjU3MWUwNmU2ZmE1ZDZjMjk5NzBkOTI2MmRmLi4w
MTczMDA1YThiMjg1MTRmZDU3NWM2NTdkMjk4YmZjY2QwNDhjNWQwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV1RGL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY2
IEBACisyMDIxLTA1LTIzICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAg
ICAgTWFrZSBDaGVja2VkTG9jayB0aGUgZGVmYXVsdCBMb2NrCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjYxNTcKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNYWtlIENoZWNrZWRMb2NrIHRoZSBkZWZhdWx0
IExvY2sgc28gdGhhdCB3ZSBnZXQgbW9yZSBiZW5lZml0cyBmcm9tIENsYW5nCisgICAgICAgIFRo
cmVhZCBTYWZldHkgQW5hbHlzaXMuIE5vdGUgdGhhdCBDaGVja2VkTG9jayAxMDAlIHJlbGllcyBv
biB0aGUgZXhpc3RpbmcKKyAgICAgICAgTG9jayBpbXBsZW1lbnRhdGlvbiBhbmQgbWVyZWx5IGFk
ZHMgdGhlIGNsYW5nIGFub3RhdGlvbnMgZm9yIHRocmVhZAorICAgICAgICBzYWZldHkuCisKKyAg
ICAgICAgVGhhdCB0aGlzIHBhdGNoIGRvZXMgaXM6CisgICAgICAgIDEuIFJlbmFtZSB0aGUgTG9j
ayBjbGFzcyB0byBVbmNoZWNrZWRMb2NrCisgICAgICAgIDIuIFJlbmFtZSB0aGUgQ2hlY2tlZExv
Y2sgY2xhc3MgdG8gTG9jaworICAgICAgICAzLiBSZW5hbWUgdGhlIENvbmRpdGlvbiBjbGFzcyB0
byBVbmNoZWNrZWRDb25kaXRpb24KKyAgICAgICAgNC4gUmVuYW1lIHRoZSBDaGVja2VkQ29uZGl0
aW9uIGNsYXNzIHRvIENvbmRpdGlvbgorICAgICAgICA1LiBVcGRhdGUgdGhlIHR5cGVzIG9mIGNl
cnRhaW4gdmFyaWFibGVzIGZyb20gTG9jayAvIENvbmRpdGlvbiB0bworICAgICAgICAgICBVbmNo
ZWNrZWRMb2NrIC8gVW5jaGVja2VkQ29uZGl0aW9uIGlmIEkgZ290IGEgYnVpbGQgZmFpbHVyZS4g
QnVpbGQKKyAgICAgICAgICAgZmFpbHVyZXMgYXJlIHVzdWFsbHkgY2F1c2VkIGJ5IHRoZSBmb2xs
b3dpbmcgZmFjdHM6CisgICAgICAgICAgIC0gTG9ja2VyPENoZWNrZWRMb2NrPiBkb2Vzbid0IHN1
YmNsYXNzIEFic3RyYWN0TG9ja2VyIHdoaWNoIGEgbG90IG9mCisgICAgICAgICAgICAgSlNDIGNv
ZGUgcGFzc2VzIGFzIGFyZ3VtZW50CisgICAgICAgICAgIC0gTG9ja2VyPENoZWNrZWRMb2NrPiBo
YXMgbm8gbW92ZSBjb25zdHJ1Y3RvcgorICAgICAgICAgICAtIExvY2tlcjxDaGVja2VkTG9jaz4g
Y2Fubm90IGJlIGNvbnN0cnVjdGVkIGZyb20gYSBsb2NrIHBvaW50ZXIsIG9ubHkKKyAgICAgICAg
ICAgICBhIHJlZmVyZW5jZQorICAgICAgICAKKyAgICAgICAgRm9yIG5vdywgQ2hlY2tlZExvY2sg
YW5kIENoZWNrZWRDb25kaXRpb24gcmVtYWluIGFzIGFsaWFzZXMgdG8gTG9jayBhbmQKKyAgICAg
ICAgQ29uZGl0aW9uLCBpbiB0aGVpciByZXNwZWN0aXZlIENoZWNrZWRMb2NrLmggLyBDaGVja2Vk
Q29uZGl0aW9uLmggaGVhZGVycy4KKyAgICAgICAgSSB3aWxsIGRyb3AgdGhlbSBpbiBhIGZvbGxv
dy11cCB0byByZWR1Y2UgcGF0Y2ggc2l6ZS4KKworICAgICAgICBJIHdpbGwgYWxzbyBmb2xsb3ct
dXAgdG8gdHJ5IGFuZCBnZXQgcmlkIG9mIGFzIG11Y2ggdXNhZ2Ugb2YgVW5jaGVja2VkTG9jawor
ICAgICAgICBhbmQgVW5jaGVja2VkQ29uZGl0aW9uIGFzIHBvc3NpYmxlLiBJIGRpZCBub3QgdHJ5
IHZlcnkgaGFyZCBpbiB0aGlzIHBhdGNoCisgICAgICAgIHRvIHJlZHVjZSBwYXRjaCBzaXplLgor
CisgICAgICAgICogd3RmL0F1dG9tYXRpY1RocmVhZC5jcHA6CisgICAgICAgIChXVEY6OkF1dG9t
YXRpY1RocmVhZENvbmRpdGlvbjo6d2FpdCk6CisgICAgICAgIChXVEY6OkF1dG9tYXRpY1RocmVh
ZENvbmRpdGlvbjo6d2FpdEZvcik6CisgICAgICAgIChXVEY6OkF1dG9tYXRpY1RocmVhZDo6QXV0
b21hdGljVGhyZWFkKToKKyAgICAgICAgKiB3dGYvQXV0b21hdGljVGhyZWFkLmg6CisgICAgICAg
ICogd3RmL0NoZWNrZWRDb25kaXRpb24uaDoKKyAgICAgICAgKiB3dGYvQ2hlY2tlZExvY2suaDoK
KyAgICAgICAgKiB3dGYvQ29uZGl0aW9uLmg6CisgICAgICAgICogd3RmL0xvY2suY3BwOgorICAg
ICAgICAoV1RGOjpVbmNoZWNrZWRMb2NrOjpsb2NrU2xvdyk6CisgICAgICAgIChXVEY6OlVuY2hl
Y2tlZExvY2s6OnVubG9ja1Nsb3cpOgorICAgICAgICAoV1RGOjpVbmNoZWNrZWRMb2NrOjp1bmxv
Y2tGYWlybHlTbG93KToKKyAgICAgICAgKFdURjo6VW5jaGVja2VkTG9jazo6c2FmZXBvaW50U2xv
dyk6CisgICAgICAgICogd3RmL0xvY2suaDoKKyAgICAgICAgKFdURjo6V1RGX0FTU0VSVFNfQUNR
VUlSRURfTE9DSyk6CisgICAgICAgICogd3RmL01ldGFBbGxvY2F0b3IuY3BwOgorICAgICAgICAo
V1RGOjpNZXRhQWxsb2NhdG9yOjpyZWxlYXNlKToKKyAgICAgICAgKFdURjo6TWV0YUFsbG9jYXRv
cjo6TWV0YUFsbG9jYXRvcik6CisgICAgICAgIChXVEY6Ok1ldGFBbGxvY2F0b3I6OmFsbG9jYXRl
KToKKyAgICAgICAgKFdURjo6TWV0YUFsbG9jYXRvcjo6Y3VycmVudFN0YXRpc3RpY3MpOgorICAg
ICAgICAqIHd0Zi9NZXRhQWxsb2NhdG9yLmg6CisgICAgICAgICogd3RmL1BhcmFsbGVsSGVscGVy
UG9vbC5jcHA6CisgICAgICAgIChXVEY6OlBhcmFsbGVsSGVscGVyUG9vbDo6UGFyYWxsZWxIZWxw
ZXJQb29sKToKKyAgICAgICAgKiB3dGYvUGFyYWxsZWxIZWxwZXJQb29sLmg6CisgICAgICAgICog
d3RmL1JlY3Vyc2l2ZUxvY2tBZGFwdGVyLmg6CisgICAgICAgICogd3RmL1dvcmtlclBvb2wuY3Bw
OgorICAgICAgICAoV1RGOjpXb3JrZXJQb29sOjpXb3JrZXJQb29sKToKKyAgICAgICAgKiB3dGYv
V29ya2VyUG9vbC5oOgorCiAyMDIxLTA1LTIzICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5j
b20+CiAKICAgICAgICAgRHJvcCBXVEY6OnRyeUhvbGRMb2NrKCkgYXMgaXQgaXMgaW5jb21wYXRp
YmxlIHdpdGggQ2xhbmcgVGhyZWFkIFNhZmV0eSBBbmFseXNpcwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDVkYmE1
ZmZmZmMwOTJiZDBjYTgyNmUxM2FiODBmMmQyYjJhZmNhZjEuLmMyMjkzNTI2NzI4NzU0NjUzMThm
MTU1ZGRhMTUyNGI4MGRkZWIxYTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2NyBAQAorMjAyMS0w
NS0yMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIE1ha2UgQ2hl
Y2tlZExvY2sgdGhlIGRlZmF1bHQgTG9jaworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjI2MTU3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgTWFrZSBDaGVja2VkTG9jayB0aGUgZGVmYXVsdCBMb2NrIHNvIHRo
YXQgd2UgZ2V0IG1vcmUgYmVuZWZpdHMgZnJvbSBDbGFuZworICAgICAgICBUaHJlYWQgU2FmZXR5
IEFuYWx5c2lzLiBOb3RlIHRoYXQgQ2hlY2tlZExvY2sgMTAwJSByZWxpZXMgb24gdGhlIGV4aXN0
aW5nCisgICAgICAgIExvY2sgaW1wbGVtZW50YXRpb24gYW5kIG1lcmVseSBhZGRzIHRoZSBjbGFu
ZyBhbm90YXRpb25zIGZvciB0aHJlYWQgCisgICAgICAgIHNhZmV0eS4KKworICAgICAgICBUaGF0
IHRoaXMgcGF0Y2ggZG9lcyBpczoKKyAgICAgICAgMS4gUmVuYW1lIHRoZSBMb2NrIGNsYXNzIHRv
IFVuY2hlY2tlZExvY2sKKyAgICAgICAgMi4gUmVuYW1lIHRoZSBDaGVja2VkTG9jayBjbGFzcyB0
byBMb2NrCisgICAgICAgIDMuIFJlbmFtZSB0aGUgQ29uZGl0aW9uIGNsYXNzIHRvIFVuY2hlY2tl
ZENvbmRpdGlvbgorICAgICAgICA0LiBSZW5hbWUgdGhlIENoZWNrZWRDb25kaXRpb24gY2xhc3Mg
dG8gQ29uZGl0aW9uCisgICAgICAgIDUuIFVwZGF0ZSB0aGUgdHlwZXMgb2YgY2VydGFpbiB2YXJp
YWJsZXMgZnJvbSBMb2NrIC8gQ29uZGl0aW9uIHRvCisgICAgICAgICAgIFVuY2hlY2tlZExvY2sg
LyBVbmNoZWNrZWRDb25kaXRpb24gaWYgSSBnb3QgYSBidWlsZCBmYWlsdXJlLiBCdWlsZCAKKyAg
ICAgICAgICAgZmFpbHVyZXMgYXJlIHVzdWFsbHkgY2F1c2VkIGJ5IHRoZSBmb2xsb3dpbmcgZmFj
dHM6CisgICAgICAgICAgIC0gTG9ja2VyPENoZWNrZWRMb2NrPiBkb2Vzbid0IHN1YmNsYXNzIEFi
c3RyYWN0TG9ja2VyIHdoaWNoIGEgbG90IG9mCisgICAgICAgICAgICAgSlNDIGNvZGUgcGFzc2Vz
IGFzIGFyZ3VtZW50CisgICAgICAgICAgIC0gTG9ja2VyPENoZWNrZWRMb2NrPiBoYXMgbm8gbW92
ZSBjb25zdHJ1Y3RvcgorICAgICAgICAgICAtIExvY2tlcjxDaGVja2VkTG9jaz4gY2Fubm90IGJl
IGNvbnN0cnVjdGVkIGZyb20gYSBsb2NrIHBvaW50ZXIsIG9ubHkKKyAgICAgICAgICAgICBhIHJl
ZmVyZW5jZQorCisgICAgICAgIEZvciBub3csIENoZWNrZWRMb2NrIGFuZCBDaGVja2VkQ29uZGl0
aW9uIHJlbWFpbiBhcyBhbGlhc2VzIHRvIExvY2sgYW5kIAorICAgICAgICBDb25kaXRpb24sIGlu
IHRoZWlyIHJlc3BlY3RpdmUgQ2hlY2tlZExvY2suaCAvIENoZWNrZWRDb25kaXRpb24uaCBoZWFk
ZXJzLgorICAgICAgICBJIHdpbGwgZHJvcCB0aGVtIGluIGEgZm9sbG93LXVwIHRvIHJlZHVjZSBw
YXRjaCBzaXplLgorCisgICAgICAgIEkgd2lsbCBhbHNvIGZvbGxvdy11cCB0byB0cnkgYW5kIGdl
dCByaWQgb2YgYXMgbXVjaCB1c2FnZSBvZiBVbmNoZWNrZWRMb2NrCisgICAgICAgIGFuZCBVbmNo
ZWNrZWRDb25kaXRpb24gYXMgcG9zc2libGUuIEkgZGlkIG5vdCB0cnkgdmVyeSBoYXJkIGluIHRo
aXMgcGF0Y2gKKyAgICAgICAgdG8gcmVkdWNlIHBhdGNoIHNpemUuIAorCisgICAgICAgICogTW9k
dWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQlNlcnZlci5jcHA6CisgICAgICAgICogTW9kdWxlcy93
ZWJhdWRpby9NZWRpYUVsZW1lbnRBdWRpb1NvdXJjZU5vZGUuaDoKKyAgICAgICAgKiBNb2R1bGVz
L3dlYmRhdGFiYXNlL09yaWdpbkxvY2suY3BwOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9N
R2xvYmFsT2JqZWN0Lmg6CisgICAgICAgICogZG9tL05vZGUuY3BwOgorICAgICAgICAqIGh0bWwv
SFRNTE1lZGlhRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50
OjpjcmVhdGVNZWRpYVBsYXllcik6CisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xDb250ZXh0
R3JvdXAuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xDb250ZXh0R3JvdXA6Om9iamVjdEdy
YXBoTG9ja0ZvckFDb250ZXh0KToKKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTENvbnRleHRH
cm91cC5oOgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMQ29udGV4dE9iamVjdC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpXZWJHTENvbnRleHRPYmplY3Q6Om9iamVjdEdyYXBoTG9ja0ZvckNv
bnRleHQpOgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMQ29udGV4dE9iamVjdC5oOgorICAg
ICAgICAqIGh0bWwvY2FudmFzL1dlYkdMT2JqZWN0Lmg6CisgICAgICAgICogaHRtbC9jYW52YXMv
V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJl
bmRlcmluZ0NvbnRleHRCYXNlOjpvYmplY3RHcmFwaExvY2spOgorICAgICAgICAqIGh0bWwvY2Fu
dmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuaDoKKyAgICAgICAgKiBodG1sL2NhbnZhcy9X
ZWJHTFNoYXJlZE9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFNoYXJlZE9iamVj
dDo6b2JqZWN0R3JhcGhMb2NrRm9yQ29udGV4dCk6CisgICAgICAgICogaHRtbC9jYW52YXMvV2Vi
R0xTaGFyZWRPYmplY3QuaDoKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5n
VHJlZU1hYy5oOgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL1JldmVyYkNvbnZvbHZlci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSZXZlcmJDb252b2x2ZXI6OmJhY2tncm91bmRUaHJlYWRFbnRy
eSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvU2hhZG93Qmx1ci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTY3JhdGNoQnVmZmVyOjpsb2NrKToKKyAgICAgICAgKFdlYkNvcmU6OlNoYWRv
d0JsdXI6OmRyYXdSZWN0U2hhZG93V2l0aFRpbGluZyk6CisgICAgICAgIChXZWJDb3JlOjpTaGFk
b3dCbHVyOjpkcmF3SW5zZXRTaGFkb3dXaXRoVGlsaW5nKToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvVmlkZW9TaW5rR1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvZW1lL1dlYktpdENvbW1vbkVuY3J5cHRpb25EZWNyeXB0
b3JHU3RyZWFtZXIuY3BwOgorCiAyMDIxLTA1LTIzICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBs
ZS5jb20+CiAKICAgICAgICAgVXNlIENoZWNrZWRMb2NrIGluIGV2ZW4gbW9yZSBwbGFjZXMKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cKaW5kZXggNDZkMzYwY2ZmMzRmMDI3ZWVkMzY5Nzg5ZjQ1NjI2M2EwMmFhY2YxOS4uMGRiZWEw
ZmVlN2YyODY5ZGYxMzkyZjMzMWRhMTRlZDRkYzNiYzQ4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0
NCBAQAorMjAyMS0wNS0yMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAg
ICAgIE1ha2UgQ2hlY2tlZExvY2sgdGhlIGRlZmF1bHQgTG9jaworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI2MTU3CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWFrZSBDaGVja2VkTG9jayB0aGUgZGVmYXVs
dCBMb2NrIHNvIHRoYXQgd2UgZ2V0IG1vcmUgYmVuZWZpdHMgZnJvbSBDbGFuZworICAgICAgICBU
aHJlYWQgU2FmZXR5IEFuYWx5c2lzLiBOb3RlIHRoYXQgQ2hlY2tlZExvY2sgMTAwJSByZWxpZXMg
b24gdGhlIGV4aXN0aW5nCisgICAgICAgIExvY2sgaW1wbGVtZW50YXRpb24gYW5kIG1lcmVseSBh
ZGRzIHRoZSBjbGFuZyBhbm90YXRpb25zIGZvciB0aHJlYWQgCisgICAgICAgIHNhZmV0eS4KKwor
ICAgICAgICBUaGF0IHRoaXMgcGF0Y2ggZG9lcyBpczoKKyAgICAgICAgMS4gUmVuYW1lIHRoZSBM
b2NrIGNsYXNzIHRvIFVuY2hlY2tlZExvY2sKKyAgICAgICAgMi4gUmVuYW1lIHRoZSBDaGVja2Vk
TG9jayBjbGFzcyB0byBMb2NrCisgICAgICAgIDMuIFJlbmFtZSB0aGUgQ29uZGl0aW9uIGNsYXNz
IHRvIFVuY2hlY2tlZENvbmRpdGlvbgorICAgICAgICA0LiBSZW5hbWUgdGhlIENoZWNrZWRDb25k
aXRpb24gY2xhc3MgdG8gQ29uZGl0aW9uCisgICAgICAgIDUuIFVwZGF0ZSB0aGUgdHlwZXMgb2Yg
Y2VydGFpbiB2YXJpYWJsZXMgZnJvbSBMb2NrIC8gQ29uZGl0aW9uIHRvCisgICAgICAgICAgIFVu
Y2hlY2tlZExvY2sgLyBVbmNoZWNrZWRDb25kaXRpb24gaWYgSSBnb3QgYSBidWlsZCBmYWlsdXJl
LiBCdWlsZCAKKyAgICAgICAgICAgZmFpbHVyZXMgYXJlIHVzdWFsbHkgY2F1c2VkIGJ5IHRoZSBm
b2xsb3dpbmcgZmFjdHM6CisgICAgICAgICAgIC0gTG9ja2VyPENoZWNrZWRMb2NrPiBkb2Vzbid0
IHN1YmNsYXNzIEFic3RyYWN0TG9ja2VyIHdoaWNoIGEgbG90IG9mCisgICAgICAgICAgICAgSlND
IGNvZGUgcGFzc2VzIGFzIGFyZ3VtZW50CisgICAgICAgICAgIC0gTG9ja2VyPENoZWNrZWRMb2Nr
PiBoYXMgbm8gbW92ZSBjb25zdHJ1Y3RvcgorICAgICAgICAgICAtIExvY2tlcjxDaGVja2VkTG9j
az4gY2Fubm90IGJlIGNvbnN0cnVjdGVkIGZyb20gYSBsb2NrIHBvaW50ZXIsIG9ubHkKKyAgICAg
ICAgICAgICBhIHJlZmVyZW5jZQorCisgICAgICAgIEZvciBub3csIENoZWNrZWRMb2NrIGFuZCBD
aGVja2VkQ29uZGl0aW9uIHJlbWFpbiBhcyBhbGlhc2VzIHRvIExvY2sgYW5kIAorICAgICAgICBD
b25kaXRpb24sIGluIHRoZWlyIHJlc3BlY3RpdmUgQ2hlY2tlZExvY2suaCAvIENoZWNrZWRDb25k
aXRpb24uaCBoZWFkZXJzLgorICAgICAgICBJIHdpbGwgZHJvcCB0aGVtIGluIGEgZm9sbG93LXVw
IHRvIHJlZHVjZSBwYXRjaCBzaXplLgorCisgICAgICAgIEkgd2lsbCBhbHNvIGZvbGxvdy11cCB0
byB0cnkgYW5kIGdldCByaWQgb2YgYXMgbXVjaCB1c2FnZSBvZiBVbmNoZWNrZWRMb2NrCisgICAg
ICAgIGFuZCBVbmNoZWNrZWRDb25kaXRpb24gYXMgcG9zc2libGUuIEkgZGlkIG5vdCB0cnkgdmVy
eSBoYXJkIGluIHRoaXMgcGF0Y2gKKyAgICAgICAgdG8gcmVkdWNlIHBhdGNoIHNpemUuIAorCisg
ICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTC5jcHA6
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMOjpwYWludFBpeGVsQnVm
ZmVyVG9JbWFnZUJ1ZmZlcik6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvSW5kZXhlZERCL1dl
YklEQlNlcnZlci5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9nbGliL0ljb25EYXRhYmFz
ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvV0tQcmludGluZ1ZpZXcubW06CisgICAgICAg
ICgtW1dLUHJpbnRpbmdWaWV3IGtub3dzUGFnZVJhbmdlOl0pOgorCiAyMDIxLTA1LTIzICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgVXNlIENoZWNrZWRMb2NrIGlu
IGV2ZW4gbW9yZSBwbGFjZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3Nl
bWJsZXIvdGVzdG1hc20uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci90ZXN0
bWFzbS5jcHAKaW5kZXggMTkxZDE4MjkzNWFjMWE2ZTZmMGI1MGI3YTMxM2JkOTg4N2FkYTQyMC4u
ZDM1M2U3MTJmODk5YzMwZTc5YmQ1MWM1ZGNjZDU3M2ExZDBlYmM4MyAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci90ZXN0bWFzbS5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2Fzc2VtYmxlci90ZXN0bWFzbS5jcHAKQEAgLTE1Nyw3ICsxNTcsNyBAQCBu
YW1lc3BhY2UgewogdXNpbmcgQ1BVU3RhdGUgPSBQcm9iZTo6Q1BVU3RhdGU7CiAjZW5kaWYKIAot
TG9jayBjcmFzaExvY2s7CitVbmNoZWNrZWRMb2NrIGNyYXNoTG9jazsKIAogdHlwZWRlZiBXVEY6
OkZ1bmN0aW9uPHZvaWQoQ0NhbGxIZWxwZXJzJik+IEdlbmVyYXRvcjsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDb21tb24uY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdDb21tb24uY3BwCmluZGV4IGE3YWJjNjQ3NDkzZDJiNjhkOThkYzJhNDAx
NGJjMzNjN2RhYjg1ZmIuLjg3NjNjM2ZkNTFmYjE2NTRjNjk1NDA0YTg1ZjY3YjBiOWU4MzcwNTAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ29tbW9uLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NvbW1vbi5jcHAKQEAgLTM1LDcgKzM1LDcg
QEAgbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBERkcgewogCiBjb25zdCBjaGFyKiBjb25zdCB0
aWVyTmFtZSA9ICJERkcgIjsKIAotc3RhdGljIExvY2sgY3Jhc2hMb2NrOworc3RhdGljIFVuY2hl
Y2tlZExvY2sgY3Jhc2hMb2NrOwogCiB2b2lkIHN0YXJ0Q3Jhc2hpbmcoKQogewpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdUaHJlYWREYXRhLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1RocmVhZERhdGEuaAppbmRleCAzN2RmOWJkMTIxNTQ5Y2RlZDEx
ZTk5ZjQyZmZkMmM1MGYwMjUyZDg2Li41MjJiN2QyYjdjMzYxZThiOWQzODBjNzI4Y2ZiOGEwNWIx
NzQ2OWJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1RocmVhZERh
dGEuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1RocmVhZERhdGEuaApAQCAt
NDcsNyArNDcsNyBAQCBwcml2YXRlOgogICAgIAogICAgIFdvcmtsaXN0KiBtX3dvcmtsaXN0Owog
ICAgIFJlZlB0cjxBdXRvbWF0aWNUaHJlYWQ+IG1fdGhyZWFkOwotICAgIExvY2sgbV9yaWdodFRv
UnVuOworICAgIFVuY2hlY2tlZExvY2sgbV9yaWdodFRvUnVuOwogICAgIFNhZmVwb2ludCogbV9z
YWZlcG9pbnQ7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R1dvcmtsaXN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHV29ya2xpc3QuY3Bw
CmluZGV4IDRkMjI4Y2ZlODdhZDk4MTkzNmMwN2MwOWQ0MWI3Mjc1MTU1OTRhOTEuLmQxNTdhZGY4
NzZkYzg0NjgzYTg2YzA0NmVhMmJlZWNiYWI5OWE5MzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHV29ya2xpc3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHV29ya2xpc3QuY3BwCkBAIC0zOSw3ICszOSw3IEBAIG5hbWVzcGFjZSBKU0MgeyBu
YW1lc3BhY2UgREZHIHsKIAogY2xhc3MgV29ya2xpc3Q6OlRocmVhZEJvZHkgZmluYWwgOiBwdWJs
aWMgQXV0b21hdGljVGhyZWFkIHsKIHB1YmxpYzoKLSAgICBUaHJlYWRCb2R5KGNvbnN0IEFic3Ry
YWN0TG9ja2VyJiBsb2NrZXIsIFdvcmtsaXN0JiB3b3JrbGlzdCwgVGhyZWFkRGF0YSYgZGF0YSwg
Qm94PExvY2s+IGxvY2ssIFJlZjxBdXRvbWF0aWNUaHJlYWRDb25kaXRpb24+JiYgY29uZGl0aW9u
LCBpbnQgcmVsYXRpdmVQcmlvcml0eSkKKyAgICBUaHJlYWRCb2R5KGNvbnN0IEFic3RyYWN0TG9j
a2VyJiBsb2NrZXIsIFdvcmtsaXN0JiB3b3JrbGlzdCwgVGhyZWFkRGF0YSYgZGF0YSwgQm94PFVu
Y2hlY2tlZExvY2s+IGxvY2ssIFJlZjxBdXRvbWF0aWNUaHJlYWRDb25kaXRpb24+JiYgY29uZGl0
aW9uLCBpbnQgcmVsYXRpdmVQcmlvcml0eSkKICAgICAgICAgOiBBdXRvbWF0aWNUaHJlYWQobG9j
a2VyLCBsb2NrLCBXVEZNb3ZlKGNvbmRpdGlvbiksIFRocmVhZFR5cGU6OkNvbXBpbGVyKQogICAg
ICAgICAsIG1fd29ya2xpc3Qod29ya2xpc3QpCiAgICAgICAgICwgbV9kYXRhKGRhdGEpCkBAIC0x
ODEsNyArMTgxLDcgQEAgc3RhdGljIENTdHJpbmcgY3JlYXRlV29ya2xpc3ROYW1lKENTdHJpbmcm
JiB0aWVyTmFtZSkKIFdvcmtsaXN0OjpXb3JrbGlzdChDU3RyaW5nJiYgdGllck5hbWUpCiAgICAg
OiBtX3RocmVhZE5hbWUoY3JlYXRlV29ya2xpc3ROYW1lKFdURk1vdmUodGllck5hbWUpKSkKICAg
ICAsIG1fcGxhbkVucXVldWVkKEF1dG9tYXRpY1RocmVhZENvbmRpdGlvbjo6Y3JlYXRlKCkpCi0g
ICAgLCBtX2xvY2soQm94PExvY2s+OjpjcmVhdGUoKSkKKyAgICAsIG1fbG9jayhCb3g8VW5jaGVj
a2VkTG9jaz46OmNyZWF0ZSgpKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR1dvcmtsaXN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1dv
cmtsaXN0LmgKaW5kZXggMWNlMDJjMDdkOGIxMjgxOTRiY2MwM2M3ZjJhNTQxY2QwYTVmNDUyOS4u
NTc2ZTAzZTQ3ZTZlZjUwM2M2ZDAxMTZlY2ZiZGMwYThjNmM3NWM4OCAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdXb3JrbGlzdC5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHV29ya2xpc3QuaApAQCAtMTEwLDEwICsxMTAsMTAgQEAgcHJpdmF0ZToK
ICAgICAvLyBiZSBjb21wbGV0ZWQuCiAgICAgVmVjdG9yPFJlZlB0cjxQbGFuPiwgMTY+IG1fcmVh
ZHlQbGFuczsKICAgICBSZWY8QXV0b21hdGljVGhyZWFkQ29uZGl0aW9uPiBtX3BsYW5FbnF1ZXVl
ZDsKLSAgICBDb25kaXRpb24gbV9wbGFuQ29tcGlsZWQ7CisgICAgVW5jaGVja2VkQ29uZGl0aW9u
IG1fcGxhbkNvbXBpbGVkOwogCi0gICAgTG9jayBtX3N1c3BlbnNpb25Mb2NrOwotICAgIEJveDxM
b2NrPiBtX2xvY2s7CisgICAgVW5jaGVja2VkTG9jayBtX3N1c3BlbnNpb25Mb2NrOworICAgIEJv
eDxVbmNoZWNrZWRMb2NrPiBtX2xvY2s7CiB9OwogCiBKU19FWFBPUlRfUFJJVkFURSB1bnNpZ25l
ZCBzZXROdW1iZXJPZkRGR0NvbXBpbGVyVGhyZWFkcyh1bnNpZ25lZCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZHluYmVuY2guY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2R5bmJlbmNoLmNwcAppbmRleCA4ZjllNWViNzQxMDQ3NWZiN2M4YjA4NjkyNjIzMzRmZTJhOTc4
OTg1Li43OTUyNjExMGUyYTNhNjIwNTJkMTA5ZTliZGI4OGU5ZWVhYmZmZjU0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZHluYmVuY2guY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9keW5iZW5jaC5jcHAKQEAgLTQwLDcgKzQwLDcgQEAgdXNpbmcgbmFtZXNwYWNlIEpT
QzsKIAogbmFtZXNwYWNlIHsKIAotTG9jayBjcmFzaExvY2s7CitVbmNoZWNrZWRMb2NrIGNyYXNo
TG9jazsKIGNvbnN0IGNoYXIqIG5hbWVGaWx0ZXI7CiB1bnNpZ25lZCByZXF1ZXN0ZWRJdGVyYXRp
b25Db3VudDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvQmxvY2tE
aXJlY3RvcnkuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0Jsb2NrRGlyZWN0b3J5LmgK
aW5kZXggZGFhMDNjNDdlZGY5ZDM2ZDE1NmJkNWQxYTY2MjFiZWU2YWFkZjhhZC4uOTAxNTg4Yzk0
MzljMzVkZmM4MDRhMGI3NTdjNWU1YjU2M2Y0NGE0ZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2hlYXAvQmxvY2tEaXJlY3RvcnkuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaGVhcC9CbG9ja0RpcmVjdG9yeS5oCkBAIC05Myw3ICs5Myw3IEBAIHB1YmxpYzoKIAogICAg
IHZvaWQgdXBkYXRlUGVyY2VudGFnZU9mUGFnZWRPdXRQYWdlcyhXVEY6OlNpbXBsZVN0YXRzJik7
CiAgICAgCi0gICAgTG9jayYgYml0dmVjdG9yTG9jaygpIHsgcmV0dXJuIG1fYml0dmVjdG9yTG9j
azsgfQorICAgIFVuY2hlY2tlZExvY2smIGJpdHZlY3RvckxvY2soKSB7IHJldHVybiBtX2JpdHZl
Y3RvckxvY2s7IH0KIAogI2RlZmluZSBCTE9DS19ESVJFQ1RPUllfQklUX0FDQ0VTU09SUyhsb3dl
ckJpdE5hbWUsIGNhcGl0YWxCaXROYW1lKSAgICAgXAogICAgIGJvb2wgaXMgIyMgY2FwaXRhbEJp
dE5hbWUoY29uc3QgQWJzdHJhY3RMb2NrZXImLCBzaXplX3QgaW5kZXgpIGNvbnN0IHsgcmV0dXJu
IG1fYml0cy5pcyAjIyBjYXBpdGFsQml0TmFtZShpbmRleCk7IH0gXApAQCAtMTU1LDcgKzE1NSw3
IEBAIHByaXZhdGU6CiAgICAgLy8gTXV0YXRvciB1c2VzIHRoaXMgdG8gZ3VhcmQgcmVzaXppbmcg
dGhlIGJpdHZlY3RvcnMuIFRob3NlIHRoaW5ncyBpbiB0aGUgR0MgdGhhdCBtYXkgcnVuCiAgICAg
Ly8gY29uY3VycmVudGx5IHRvIHRoZSBtdXRhdG9yIG11c3QgbG9jayB0aGlzIHdoZW4gYWNjZXNz
aW5nIHRoZSBiaXR2ZWN0b3JzLgogICAgIEJsb2NrRGlyZWN0b3J5Qml0cyBtX2JpdHM7Ci0gICAg
TG9jayBtX2JpdHZlY3RvckxvY2s7CisgICAgVW5jaGVja2VkTG9jayBtX2JpdHZlY3RvckxvY2s7
CiAgICAgTG9jayBtX2xvY2FsQWxsb2NhdG9yc0xvY2s7CiAgICAgQ2VsbEF0dHJpYnV0ZXMgbV9h
dHRyaWJ1dGVzOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9Db2Rl
QmxvY2tTZXQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0NvZGVCbG9ja1NldC5oCmlu
ZGV4IGIwZGNiNmNjNzdjOWY5OWQzMDJjNzk5ZDk4ZTM5ZTk1M2U2YWY0MTkuLjg1NmNjMWJiZjhi
ZDJkMTdjZGNkY2E3ZDNiNDRjNzFmMmZhNzBiMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9oZWFwL0NvZGVCbG9ja1NldC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9o
ZWFwL0NvZGVCbG9ja1NldC5oCkBAIC01NCw3ICs1NCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGNs
ZWFyQ3VycmVudGx5RXhlY3V0aW5nKCk7CiAKICAgICBib29sIGNvbnRhaW5zKGNvbnN0IEFic3Ry
YWN0TG9ja2VyJiwgdm9pZCogY2FuZGlkYXRlQ29kZUJsb2NrKTsKLSAgICBMb2NrJiBnZXRMb2Nr
KCkgeyByZXR1cm4gbV9sb2NrOyB9CisgICAgVW5jaGVja2VkTG9jayYgZ2V0TG9jaygpIHsgcmV0
dXJuIG1fbG9jazsgfQogCiAgICAgLy8gVGhpcyBpcyBleHBlY3RlZCB0byBydW4gb25seSB3aGVu
IHdlJ3JlIG5vdCBhZGRpbmcgdG8gdGhlIHNldCBmb3Igbm93LiBJZgogICAgIC8vIHRoaXMgbmVl
ZHMgdG8gcnVuIGNvbmN1cnJlbnRseSBpbiB0aGUgZnV0dXJlLCB3ZSdsbCBuZWVkIHRvIGxvY2sg
YXJvdW5kIHRoaXMuCkBAIC03OCw3ICs3OCw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgSGFz
aFNldDxDb2RlQmxvY2sqPiBtX2NvZGVCbG9ja3M7CiAgICAgSGFzaFNldDxDb2RlQmxvY2sqPiBt
X2N1cnJlbnRseUV4ZWN1dGluZzsKLSAgICBMb2NrIG1fbG9jazsKKyAgICBVbmNoZWNrZWRMb2Nr
IG1fbG9jazsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9I
ZWFwLmNwcAppbmRleCA4YmM4NmQyY2E3NTE1YjRiOGUyZjc2NGRlOTBlMmE2YzI0NzI2NjkxLi44
NjFhNDAyZTUwZDBiY2MwZmVhZTYwMzA0N2NmMzVjMmVjZGM0ZGU3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaGVhcC9IZWFwLmNwcApAQCAtMzAyLDcgKzMwMiw3IEBAIEhlYXA6OkhlYXAoVk0mIHZtLCBI
ZWFwVHlwZSBoZWFwVHlwZSkKICAgICAsIG1fc2hhcmVkQ29sbGVjdG9yTWFya1N0YWNrKG1ha2VV
bmlxdWU8TWFya1N0YWNrQXJyYXk+KCkpCiAgICAgLCBtX3NoYXJlZE11dGF0b3JNYXJrU3RhY2so
bWFrZVVuaXF1ZTxNYXJrU3RhY2tBcnJheT4oKSkKICAgICAsIG1faGVscGVyQ2xpZW50KCZoZWFw
SGVscGVyUG9vbCgpKQotICAgICwgbV90aHJlYWRMb2NrKEJveDxMb2NrPjo6Y3JlYXRlKCkpCisg
ICAgLCBtX3RocmVhZExvY2soQm94PFVuY2hlY2tlZExvY2s+OjpjcmVhdGUoKSkKICAgICAsIG1f
dGhyZWFkQ29uZGl0aW9uKEF1dG9tYXRpY1RocmVhZENvbmRpdGlvbjo6Y3JlYXRlKCkpCiB7CiAg
ICAgbV93b3JsZFN0YXRlLnN0b3JlKDApOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2hlYXAvSGVhcC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5oCmluZGV4
IDdhNTNlMDUxNWQwNjk2NTNkMDRmYjliYWMzNTU4ZDdlODFkOTVmMmMuLjY4ZDkwNzRmZGYzZDhl
YThmNDg3YjA2NDg3YjgwZDdhMmIxYjgwMzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9oZWFwL0hlYXAuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmgK
QEAgLTcyMiw4ICs3MjIsOCBAQCBwcml2YXRlOgogICAgIEF0b21pYzx1bnNpZ25lZD4gbV93b3Js
ZFN0YXRlOwogICAgIGJvb2wgbV93b3JsZElzU3RvcHBlZCB7IGZhbHNlIH07CiAgICAgTG9jayBt
X3Zpc2l0UmFjZUxvY2s7Ci0gICAgTG9jayBtX21hcmtpbmdNdXRleDsKLSAgICBDb25kaXRpb24g
bV9tYXJraW5nQ29uZGl0aW9uVmFyaWFibGU7CisgICAgVW5jaGVja2VkTG9jayBtX21hcmtpbmdN
dXRleDsKKyAgICBVbmNoZWNrZWRDb25kaXRpb24gbV9tYXJraW5nQ29uZGl0aW9uVmFyaWFibGU7
CiAKICAgICBNb25vdG9uaWNUaW1lIG1fYmVmb3JlR0M7CiAgICAgTW9ub3RvbmljVGltZSBtX2Fm
dGVyR0M7CkBAIC03NDYsNyArNzQ2LDcgQEAgcHJpdmF0ZToKIAogICAgIHVpbnQ2NF90IG1fbXV0
YXRvckV4ZWN1dGlvblZlcnNpb24geyAwIH07CiAgICAgdWludDY0X3QgbV9waGFzZVZlcnNpb24g
eyAwIH07Ci0gICAgQm94PExvY2s+IG1fdGhyZWFkTG9jazsKKyAgICBCb3g8VW5jaGVja2VkTG9j
az4gbV90aHJlYWRMb2NrOwogICAgIFJlZjxBdXRvbWF0aWNUaHJlYWRDb25kaXRpb24+IG1fdGhy
ZWFkQ29uZGl0aW9uOyAvLyBUaGUgbXV0YXRvciBtdXN0IG5vdCB3YWl0IG9uIHRoaXMuIEl0IHdv
dWxkIGNhdXNlIGEgZGVhZGxvY2suCiAgICAgUmVmUHRyPEF1dG9tYXRpY1RocmVhZD4gbV90aHJl
YWQ7CiAKQEAgLTc2OCw4ICs3NjgsOCBAQCBwcml2YXRlOgogI2VuZGlmCiAKICAgICBib29sIG1f
cGFyYWxsZWxNYXJrZXJzU2hvdWxkRXhpdCB7IGZhbHNlIH07Ci0gICAgTG9jayBtX2NvbGxlY3RD
b250aW51b3VzbHlMb2NrOwotICAgIENvbmRpdGlvbiBtX2NvbGxlY3RDb250aW51b3VzbHlDb25k
aXRpb247CisgICAgVW5jaGVja2VkTG9jayBtX2NvbGxlY3RDb250aW51b3VzbHlMb2NrOworICAg
IFVuY2hlY2tlZENvbmRpdGlvbiBtX2NvbGxlY3RDb250aW51b3VzbHlDb25kaXRpb247CiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9o
ZWFwL01hcmtlZFNwYWNlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYXJrZWRTcGFj
ZS5oCmluZGV4IDViZTUxZGU3ZTRjZjk5YjNkNmY0Nzc3N2YwMGI2ZDJhOTdhYjgwNGYuLjI2OGI5
NzBhNTk4YjQyNWI5ZmNlMzY3ZGIyZWJhZWE3MWViY2MzMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9oZWFwL01hcmtlZFNwYWNlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2hlYXAvTWFya2VkU3BhY2UuaApAQCAtMTY4LDcgKzE2OCw3IEBAIHB1YmxpYzoKICAgICAK
ICAgICBCbG9ja0RpcmVjdG9yeSogZmlyc3REaXJlY3RvcnkoKSBjb25zdCB7IHJldHVybiBtX2Rp
cmVjdG9yaWVzLmZpcnN0KCk7IH0KICAgICAKLSAgICBMb2NrJiBkaXJlY3RvcnlMb2NrKCkgeyBy
ZXR1cm4gbV9kaXJlY3RvcnlMb2NrOyB9CisgICAgVW5jaGVja2VkTG9jayYgZGlyZWN0b3J5TG9j
aygpIHsgcmV0dXJuIG1fZGlyZWN0b3J5TG9jazsgfQogICAgIHZvaWQgYWRkQmxvY2tEaXJlY3Rv
cnkoY29uc3QgQWJzdHJhY3RMb2NrZXImLCBCbG9ja0RpcmVjdG9yeSopOwogICAgIAogICAgIC8v
IFdoZW4gdGhpcyBpcyB0cnVlIGl0IG1lYW5zIHRoYXQgd2UgaGF2ZSBmbGlwcGVkIGJ1dCB0aGUg
bWFyayBiaXRzIGhhdmVuJ3QgY29udmVyZ2VkIHlldC4KQEAgLTIxNCw3ICsyMTQsNyBAQCBwcml2
YXRlOgogICAgIEhlYXBWZXJzaW9uIG1fbmV3bHlBbGxvY2F0ZWRWZXJzaW9uIHsgaW5pdGlhbFZl
cnNpb24gfTsKICAgICBib29sIG1faXNJdGVyYXRpbmcgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9p
c01hcmtpbmcgeyBmYWxzZSB9OwotICAgIExvY2sgbV9kaXJlY3RvcnlMb2NrOworICAgIFVuY2hl
Y2tlZExvY2sgbV9kaXJlY3RvcnlMb2NrOwogICAgIE1hcmtlZEJsb2NrU2V0IG1fYmxvY2tzOwog
ICAgIAogICAgIFNlbnRpbmVsTGlua2VkTGlzdDxXZWFrU2V0LCBCYXNpY1Jhd1NlbnRpbmVsTm9k
ZTxXZWFrU2V0Pj4gbV9hY3RpdmVXZWFrU2V0czsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9oZWFwL01hcmtpbmdDb25zdHJhaW50U29sdmVyLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaGVhcC9NYXJraW5nQ29uc3RyYWludFNvbHZlci5oCmluZGV4IDhlNGYyZjRkZGYzMWNm
YzgwNzFjZjNiZWNiNmU1ZTI3OGFlY2IwMWUuLjM1MGU1NTY2MjQyODRkYWJlNDczMTdmYzgwZDJm
ZGQ2YjlhNTg3N2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hcmtp
bmdDb25zdHJhaW50U29sdmVyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTWFy
a2luZ0NvbnN0cmFpbnRTb2x2ZXIuaApAQCAtOTUsOCArOTUsOCBAQCBwcml2YXRlOgogICAgIEJp
dFZlY3RvciBtX2V4ZWN1dGVkOwogICAgIERlcXVlPFRhc2tXaXRoQ29uc3RyYWludCwgMzI+IG1f
dG9FeGVjdXRlSW5QYXJhbGxlbDsKICAgICBWZWN0b3I8dW5zaWduZWQsIDMyPiBtX3RvRXhlY3V0
ZVNlcXVlbnRpYWxseTsKLSAgICBMb2NrIG1fbG9jazsKLSAgICBDb25kaXRpb24gbV9jb25kaXRp
b247CisgICAgVW5jaGVja2VkTG9jayBtX2xvY2s7CisgICAgVW5jaGVja2VkQ29uZGl0aW9uIG1f
Y29uZGl0aW9uOwogICAgIGJvb2wgbV9waWNrTmV4dElzU3RpbGxBY3RpdmUgeyB0cnVlIH07CiAg
ICAgdW5zaWduZWQgbV9udW1UaHJlYWRzVGhhdE1heVByb2R1Y2VXb3JrIHsgMCB9OwogICAgIFZl
Y3RvcjxWaXNpdENvdW50ZXIsIDE2PiBtX3Zpc2l0Q291bnRlcnM7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaGVhcC9TbG90VmlzaXRvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaGVhcC9TbG90VmlzaXRvci5jcHAKaW5kZXggZjlhMTgzMjNjNzI4MzM0NzE5OGQ5Njg4
OWRjNTlmNzQzNzhmMjA3Mi4uYWI3MzJjMjRlYzUwZTg5MDliNDkxZWM5YjE2OWFmMzBmZWM4OTMz
NSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvU2xvdFZpc2l0b3IuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1Nsb3RWaXNpdG9yLmNwcApAQCAtNDM2
LDcgKzQzNiw3IEBAIHZvaWQgU2xvdFZpc2l0b3I6OmRvbmF0ZUtub3duUGFyYWxsZWwoTWFya1N0
YWNrQXJyYXkmIGZyb20sIE1hcmtTdGFja0FycmF5JiB0bykKIAogICAgIC8vIElmIHdlJ3JlIGNv
bnRlbmRpbmcgb24gdGhlIGxvY2ssIGJlIGNvbnNlcnZhdGl2ZSBhbmQgYXNzdW1lIHRoYXQgYW5v
dGhlcgogICAgIC8vIHRocmVhZCBpcyBhbHJlYWR5IGRvbmF0aW5nLgotICAgIHN0ZDo6dW5pcXVl
X2xvY2s8TG9jaz4gbG9jayhtX2hlYXAubV9tYXJraW5nTXV0ZXgsIHN0ZDo6dHJ5X3RvX2xvY2sp
OworICAgIHN0ZDo6dW5pcXVlX2xvY2s8VW5jaGVja2VkTG9jaz4gbG9jayhtX2hlYXAubV9tYXJr
aW5nTXV0ZXgsIHN0ZDo6dHJ5X3RvX2xvY2spOwogICAgIGlmICghbG9jay5vd25zX2xvY2soKSkK
ICAgICAgICAgcmV0dXJuOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVh
cC9TbG90VmlzaXRvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvU2xvdFZpc2l0b3Iu
aAppbmRleCA0MjMzM2FmM2UwMjAyNjdlNTM3ZTA5M2U0YjA2MzMyMjFkZTNlNzNhLi5kNTVkYjYw
MTdkZTczY2Y2YzJmMWNjY2Y0Y2YzY2Q1NDM4Mzk2NTM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaGVhcC9TbG90VmlzaXRvci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9oZWFwL1Nsb3RWaXNpdG9yLmgKQEAgLTE2MSw3ICsxNjEsNyBAQCBwdWJsaWM6CiAKICAgICBi
b29sIG11dGF0b3JJc1N0b3BwZWQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX211dGF0b3JJc1N0
b3BwZWQ7IH0KICAgICAKLSAgICBMb2NrJiByaWdodFRvUnVuKCkgeyByZXR1cm4gbV9yaWdodFRv
UnVuOyB9CisgICAgVW5jaGVja2VkTG9jayYgcmlnaHRUb1J1bigpIHsgcmV0dXJuIG1fcmlnaHRU
b1J1bjsgfQogICAgIAogICAgIHZvaWQgdXBkYXRlTXV0YXRvcklzU3RvcHBlZChjb25zdCBBYnN0
cmFjdExvY2tlciYpOwogICAgIHZvaWQgdXBkYXRlTXV0YXRvcklzU3RvcHBlZCgpOwpAQCAtMjMy
LDcgKzIzMiw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX211dGF0b3JJc1N0b3BwZWQgeyBmYWxz
ZSB9OwogICAgIGJvb2wgbV9jYW5PcHRpbWl6ZUZvclN0b3BwZWRNdXRhdG9yIHsgZmFsc2UgfTsK
ICAgICBib29sIG1faXNJblBhcmFsbGVsTW9kZSB7IGZhbHNlIH07Ci0gICAgTG9jayBtX3JpZ2h0
VG9SdW47CisgICAgVW5jaGVja2VkTG9jayBtX3JpZ2h0VG9SdW47CiAgICAgCiAgICAgLy8gUHV0
IHBhZGRpbmcgaGVyZSB0byBtaXRpZ2F0ZSBmYWxzZSBzaGFyaW5nIGJldHdlZW4gbXVsdGlwbGUg
U2xvdFZpc2l0b3JzLgogICAgIGNoYXIgcGFkZGluZ1s2NF07CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0V4ZWN1dGFibGVBbGxvY2F0b3IuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9FeGVjdXRhYmxlQWxsb2NhdG9yLmNwcAppbmRleCAyNzllMDc1ZTRjYjYx
NzcyOWM2ZTJkNWZlZmY5ODYyN2M3MDUyZjAxLi4wZjliNjU2MzgyNzM1Y2VkNWQyMGY1MzViZWQ3
Njc5NjE1N2EwNTViIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0V4ZWN1
dGFibGVBbGxvY2F0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvRXhlY3V0
YWJsZUFsbG9jYXRvci5jcHAKQEAgLTQ4NSw3ICs0ODUsNyBAQCBwdWJsaWM6CiAjZW5kaWYgLy8g
RU5BQkxFKEpVTVBfSVNMQU5EUykKICAgICB9CiAKLSAgICBMb2NrJiBnZXRMb2NrKCkgeyByZXR1
cm4gbV9sb2NrOyB9CisgICAgVW5jaGVja2VkTG9jayYgZ2V0TG9jaygpIHsgcmV0dXJuIG1fbG9j
azsgfQogCiAgICAgLy8gTm9uIGF0b21pYwogICAgIHNpemVfdCBieXRlc0FsbG9jYXRlZCgpIApA
QCAtODQ3LDcgKzg0Nyw3IEBAIHByaXZhdGU6CiAgICAgfTsKICNlbmRpZiAvLyBFTkFCTEUoSlVN
UF9JU0xBTkRTKQogCi0gICAgTG9jayBtX2xvY2s7CisgICAgVW5jaGVja2VkTG9jayBtX2xvY2s7
CiAgICAgUGFnZVJlc2VydmF0aW9uIG1fcmVzZXJ2YXRpb247CiAjaWYgRU5BQkxFKEpVTVBfSVNM
QU5EUykKICAgICBzdGQ6OmFycmF5PFJlZ2lvbkFsbG9jYXRvciwgbWF4TnVtYmVyT2ZSZWdpb25z
PiBtX2FsbG9jYXRvcnM7CkBAIC05NjEsNyArOTYxLDcgQEAgYm9vbCBFeGVjdXRhYmxlQWxsb2Nh
dG9yOjppc1ZhbGlkRXhlY3V0YWJsZU1lbW9yeShjb25zdCBBYnN0cmFjdExvY2tlciYgbG9ja2Vy
LAogICAgIHJldHVybiBhbGxvY2F0b3ItPmlzSW5BbGxvY2F0ZWRNZW1vcnkobG9ja2VyLCBhZGRy
ZXNzKTsKIH0KIAotTG9jayYgRXhlY3V0YWJsZUFsbG9jYXRvcjo6Z2V0TG9jaygpIGNvbnN0CitV
bmNoZWNrZWRMb2NrJiBFeGVjdXRhYmxlQWxsb2NhdG9yOjpnZXRMb2NrKCkgY29uc3QKIHsKICAg
ICBGaXhlZFZNUG9vbEV4ZWN1dGFibGVBbGxvY2F0b3IqIGFsbG9jYXRvciA9IGdfanNjQ29uZmln
LmZpeGVkVk1Qb29sRXhlY3V0YWJsZUFsbG9jYXRvcjsKICAgICBpZiAoIWFsbG9jYXRvcikKQEAg
LTEwMzgsNyArMTAzOCw3IEBAIHZvaWQgZHVtcEpJVE1lbW9yeShjb25zdCB2b2lkKiBkc3QsIGNv
bnN0IHZvaWQqIHNyYywgc2l6ZV90IHNpemUpCiAgICAgc3RhdGljIHVpbnQ4X3QqIGJ1ZmZlcjsK
ICAgICBzdGF0aWMgY29uc3RleHByIHNpemVfdCBidWZmZXJTaXplID0gZml4ZWRFeGVjdXRhYmxl
TWVtb3J5UG9vbFNpemU7CiAgICAgc3RhdGljIHNpemVfdCBvZmZzZXQgPSAwOwotICAgIHN0YXRp
YyBMb2NrIGR1bXBKSVRNZW1vcnlMb2NrOworICAgIHN0YXRpYyBVbmNoZWNrZWRMb2NrIGR1bXBK
SVRNZW1vcnlMb2NrOwogICAgIHN0YXRpYyBib29sIG5lZWRzVG9GbHVzaCA9IGZhbHNlOwogICAg
IHN0YXRpYyBhdXRvIGZsdXNoID0gW10oY29uc3QgQWJzdHJhY3RMb2NrZXImKSB7CiAgICAgICAg
IGlmIChmZCA9PSAtMSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9F
eGVjdXRhYmxlQWxsb2NhdG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0V4ZWN1dGFi
bGVBbGxvY2F0b3IuaAppbmRleCA0ZmZjNDgwZTQyNDA0ZGM2NmI1ZTI1MTQ1NzcyYmJjYjA5ZDVm
MzY4Li4wMzc5OWU0MjdiMDk3ZDY0ZmQ5OGNiOGY5NWE2OGE5MjUxNmY4YTU3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0V4ZWN1dGFibGVBbGxvY2F0b3IuaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0V4ZWN1dGFibGVBbGxvY2F0b3IuaApAQCAtNzcsNyAr
NzcsNyBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgc2l6ZV90IGNvbW1pdHRlZEJ5dGVDb3VudCgp
IHsgcmV0dXJuIDA7IH0KIAotICAgIExvY2smIGdldExvY2soKSBjb25zdAorICAgIFVuY2hlY2tl
ZExvY2smIGdldExvY2soKSBjb25zdAogICAgIHsKICAgICAgICAgcmV0dXJuIG1fbG9jazsKICAg
ICB9CkBAIC04Nyw3ICs4Nyw3IEBAIHByb3RlY3RlZDoKICAgICB+RXhlY3V0YWJsZUFsbG9jYXRv
ckJhc2UoKSA9IGRlZmF1bHQ7CiAKIHByaXZhdGU6Ci0gICAgbXV0YWJsZSBMb2NrIG1fbG9jazsK
KyAgICBtdXRhYmxlIFVuY2hlY2tlZExvY2sgbV9sb2NrOwogfTsKIAogI2lmIEVOQUJMRShKSVQp
CkBAIC0xNzYsNyArMTc2LDcgQEAgcHVibGljOgogCiAgICAgc3RhdGljIHNpemVfdCBjb21taXR0
ZWRCeXRlQ291bnQoKTsKIAotICAgIExvY2smIGdldExvY2soKSBjb25zdDsKKyAgICBVbmNoZWNr
ZWRMb2NrJiBnZXRMb2NrKCkgY29uc3Q7CiAKICNpZiBFTkFCTEUoSlVNUF9JU0xBTkRTKQogICAg
IEpTX0VYUE9SVF9QUklWQVRFIHZvaWQqIGdldEp1bXBJc2xhbmRUbyh2b2lkKiBmcm9tLCB2b2lk
KiBuZXdEZXN0aW5hdGlvbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0pJVFdvcmtsaXN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUV29ya2xpc3Qu
Y3BwCmluZGV4IGE3MDUyZTc5ZjBhNzQzNjdmZTNmZGM1YTNjZjZkNTM4ZTY5MzIwMGUuLmE5Njg5
NzRiZDZhOTgyM2I5MGFhZGM0NGE0MTRhNTM3YTkwM2NmN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvSklUV29ya2xpc3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklUV29ya2xpc3QuY3BwCkBAIC0xNjUsNyArMTY1LDcgQEAgcHJpdmF0ZToKIH07
CiAKIEpJVFdvcmtsaXN0OjpKSVRXb3JrbGlzdCgpCi0gICAgOiBtX2xvY2soQm94PExvY2s+Ojpj
cmVhdGUoKSkKKyAgICA6IG1fbG9jayhCb3g8VW5jaGVja2VkTG9jaz46OmNyZWF0ZSgpKQogICAg
ICwgbV9jb25kaXRpb24oQXV0b21hdGljVGhyZWFkQ29uZGl0aW9uOjpjcmVhdGUoKSkKIHsKICAg
ICBMb2NrZXIgbG9ja2VyIHsgKm1fbG9jayB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9KSVRXb3JrbGlzdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRX
b3JrbGlzdC5oCmluZGV4IGI5Zjc3Y2ExYjNkZGVmYTYxNDhiMTM2OTQyZDU3YTA5ZDY1ZWE3YTMu
LmE3MmE4Mzg3MGEwMDgyZmNkMzQ0OTUyOTBlYTUwZWExNDBkODlmMmYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUV29ya2xpc3QuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0pJVFdvcmtsaXN0LmgKQEAgLTcxLDcgKzcxLDcgQEAgcHJpdmF0ZToKICAg
ICBQbGFucyBtX3BsYW5zOwogICAgIEhhc2hTZXQ8Q29kZUJsb2NrKj4gbV9wbGFubmVkOwogICAg
IAotICAgIEJveDxMb2NrPiBtX2xvY2s7CisgICAgQm94PFVuY2hlY2tlZExvY2s+IG1fbG9jazsK
ICAgICBSZWY8QXV0b21hdGljVGhyZWFkQ29uZGl0aW9uPiBtX2NvbmRpdGlvbjsgLy8gV2UgdXNl
IE9uZSBUcnVlIENvbmRpdGlvbiBmb3IgZXZlcnl0aGluZyBiZWNhdXNlIHRoYXQncyBlYXNpZXIu
CiAgICAgUmVmUHRyPEF1dG9tYXRpY1RocmVhZD4gbV90aHJlYWQ7CiAgICAgCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
c2MuY3BwCmluZGV4IGQzYTI4MTEyNzA4MDU4MWYwZWQxNWI0ZjM4NTg4NTUwY2YzZWU2ZWUuLmFk
MTU1ZTZlODI3Y2MwZDNjYWY3YzU3MjY1ZjBkYmMzMjUxYjU2MWUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2Mu
Y3BwCkBAIC0yNTcsOCArMjU3LDggQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBmcmllbmQgY2xh
c3MgV29ya2VyOwogICAgIAotICAgIExvY2sgbV9sb2NrOwotICAgIENvbmRpdGlvbiBtX2NvbmRp
dGlvbjsKKyAgICBVbmNoZWNrZWRMb2NrIG1fbG9jazsKKyAgICBVbmNoZWNrZWRDb25kaXRpb24g
bV9jb25kaXRpb247CiAgICAgU2VudGluZWxMaW5rZWRMaXN0PFdvcmtlciwgQmFzaWNSYXdTZW50
aW5lbE5vZGU8V29ya2VyPj4gbV93b3JrZXJzOwogICAgIERlcXVlPFN0cmluZz4gbV9yZXBvcnRz
OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxl
ckRhdGFiYXNlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZXJEYXRh
YmFzZS5oCmluZGV4IGFlNzg1ZTRlM2RjYjdjM2UwODAyODdiYjQ1OTk3YTEzMmMyODVkZDMuLjJh
ODc4Yzk0NmI2NTM0MGU3OTEzOWJlMjIzNzVjNTA2MTZhOWIyZTIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlckRhdGFiYXNlLmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVyRGF0YWJhc2UuaApAQCAtODgsNyArODgs
NyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9zaG91bGRTYXZlQXRFeGl0OwogICAgIENTdHJpbmcg
bV9hdEV4aXRTYXZlRmlsZW5hbWU7CiAgICAgRGF0YWJhc2UqIG1fbmV4dFJlZ2lzdGVyZWREYXRh
YmFzZTsKLSAgICBMb2NrIG1fbG9jazsKKyAgICBVbmNoZWNrZWRMb2NrIG1fbG9jazsKIH07CiAK
IH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpQcm9maWxlcgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvQ29uY3VycmVudEpTTG9jay5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvQ29uY3VycmVudEpTTG9jay5oCmluZGV4IGFhMjczYmFkYmVmYTczN2EwZWFh
NTM0ZmJlYmE5ZjUwMWZkYjg2MjcuLjg2MzExN2Q4OTE1YzQzZTRhNjc3MjA4MmI5YmM1NWIzOWEy
ZDFjYTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbmN1cnJl
bnRKU0xvY2suaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db25jdXJyZW50
SlNMb2NrLmgKQEAgLTMyLDggKzMyLDggQEAKIAogbmFtZXNwYWNlIEpTQyB7CiAKLXVzaW5nIENv
bmN1cnJlbnRKU0xvY2sgPSBMb2NrOwotdXNpbmcgQ29uY3VycmVudEpTTG9ja2VySW1wbCA9IExv
Y2tIb2xkZXI7Cit1c2luZyBDb25jdXJyZW50SlNMb2NrID0gVW5jaGVja2VkTG9jazsKK3VzaW5n
IENvbmN1cnJlbnRKU0xvY2tlckltcGwgPSBVbmNoZWNrZWRMb2NrSG9sZGVyOwogCiBzdGF0aWNf
YXNzZXJ0KHNpemVvZihDb25jdXJyZW50SlNMb2NrKSA9PSAxLCAiUmVnYXJkbGVzcyBvZiBzdGF0
dXMgb2YgY29uY3VycmVudCBKUyBmbGFnLCBzaXplIG9mIENvbnVycmVudEpTTG9jayBpcyBhbHdh
eXMgb25lIGJ5dGUuIik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0RlZmVycmVkV29ya1RpbWVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9E
ZWZlcnJlZFdvcmtUaW1lci5oCmluZGV4IDZjOThjYWFmNTgxYjFjZmMwMWFhMTkxMTcxNGIzZGIy
N2JkZjAyMTcuLmVmMGVhYzczMGI0MjJmNzBjMjBhNjhiNWM5ZTk2NDg2ODc2YTAxM2YgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RlZmVycmVkV29ya1RpbWVyLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGVmZXJyZWRXb3JrVGltZXIuaApA
QCAtNzIsNyArNzIsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIERlZmVycmVkV29ya1RpbWVy
KFZNJik7CiAKLSAgICBMb2NrIG1fdGFza0xvY2s7CisgICAgVW5jaGVja2VkTG9jayBtX3Rhc2tM
b2NrOwogICAgIGJvb2wgbV9ydW5UYXNrcyB7IHRydWUgfTsKICAgICBib29sIG1fc2hvdWxkU3Rv
cFJ1bkxvb3BXaGVuQWxsVGlja2V0c0ZpbmlzaCB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2N1cnJl
bnRseVJ1bm5pbmdUYXNrIHsgZmFsc2UgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTTG9jay5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNM
b2NrLmgKaW5kZXggMmUwMmJhM2Q2NDA1ZWU3MmRkNGFkZTBiYTY3Y2I5NThmMWE2NDYwYi4uYTk5
MWRmNTBiMWMzNzIyNmU1ZjEyOTkwZTQwYjY3YjEwYjE5OWMyOSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNMb2NrLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNMb2NrLmgKQEAgLTEzOCw3ICsxMzgsNyBAQCBwcml2YXRlOgogICAgIHVu
c2lnbmVkIGRyb3BBbGxMb2NrcyhEcm9wQWxsTG9ja3MqKTsKICAgICB2b2lkIGdyYWJBbGxMb2Nr
cyhEcm9wQWxsTG9ja3MqLCB1bnNpZ25lZCBsb2NrQ291bnQpOwogCi0gICAgTG9jayBtX2xvY2s7
CisgICAgVW5jaGVja2VkTG9jayBtX2xvY2s7CiAgICAgYm9vbCBtX2lzV2ViVGhyZWFkQXdhcmUg
eyBmYWxzZSB9OwogICAgIC8vIFdlIGNhbm5vdCBtYWtlIG1fb3duZXJUaHJlYWQgYW4gb3B0aW9u
YWwgKGluc3RlYWQgb2YgcGFpcmluZyBpdCB3aXRoIGFuIGV4cGxpY2l0CiAgICAgLy8gbV9oYXNP
d25lclRocmVhZCkgYmVjYXVzZSBjdXJyZW50VGhyZWFkSXNIb2xkaW5nTG9jaygpIG1heSBiZSBj
YWxsZWQgZnJvbSBhCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9T
YW1wbGluZ1Byb2ZpbGVyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NhbXBs
aW5nUHJvZmlsZXIuY3BwCmluZGV4IGQ3MWYzZWMxOWZmMzY3NDY3NzA3ZmU1MmI4ODAyNGM1NjI3
YTE0YWQuLmU1MzExMmQxODhmN2NjYjkwZDBhZTc4NDE0MjUwMWQyNDVjNWU4MzUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NhbXBsaW5nUHJvZmlsZXIuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NhbXBsaW5nUHJvZmlsZXIuY3BwCkBA
IC03NSw3ICs3NSw3IEBAIEFMV0FZU19JTkxJTkUgc3RhdGljIHZvaWQgcmVwb3J0U3RhdHMoKQog
CiBjbGFzcyBGcmFtZVdhbGtlciB7CiBwdWJsaWM6Ci0gICAgRnJhbWVXYWxrZXIoVk0mIHZtLCBD
YWxsRnJhbWUqIGNhbGxGcmFtZSwgY29uc3QgQWJzdHJhY3RMb2NrZXImIGNvZGVCbG9ja1NldExv
Y2tlciwgY29uc3QgQWJzdHJhY3RMb2NrZXImIG1hY2hpbmVUaHJlYWRzTG9ja2VyLCBjb25zdCBP
cHRpb25hbDxMb2NrSG9sZGVyPiYgd2FzbUNhbGxlZUxvY2tlcikKKyAgICBGcmFtZVdhbGtlcihW
TSYgdm0sIENhbGxGcmFtZSogY2FsbEZyYW1lLCBjb25zdCBBYnN0cmFjdExvY2tlciYgY29kZUJs
b2NrU2V0TG9ja2VyLCBjb25zdCBBYnN0cmFjdExvY2tlciYgbWFjaGluZVRocmVhZHNMb2NrZXIs
IGNvbnN0IE9wdGlvbmFsPFVuY2hlY2tlZExvY2tIb2xkZXI+JiB3YXNtQ2FsbGVlTG9ja2VyKQog
ICAgICAgICA6IG1fdm0odm0pCiAgICAgICAgICwgbV9jYWxsRnJhbWUoY2FsbEZyYW1lKQogICAg
ICAgICAsIG1fZW50cnlGcmFtZSh2bS50b3BFbnRyeUZyYW1lKQpAQCAtMjAxLDcgKzIwMSw3IEBA
IHByb3RlY3RlZDoKICAgICBFbnRyeUZyYW1lKiBtX2VudHJ5RnJhbWU7CiAgICAgY29uc3QgQWJz
dHJhY3RMb2NrZXImIG1fY29kZUJsb2NrU2V0TG9ja2VyOwogICAgIGNvbnN0IEFic3RyYWN0TG9j
a2VyJiBtX21hY2hpbmVUaHJlYWRzTG9ja2VyOwotICAgIGNvbnN0IE9wdGlvbmFsPExvY2tIb2xk
ZXI+JiBtX3dhc21DYWxsZWVMb2NrZXI7CisgICAgY29uc3QgT3B0aW9uYWw8VW5jaGVja2VkTG9j
a0hvbGRlcj4mIG1fd2FzbUNhbGxlZUxvY2tlcjsKICAgICBib29sIG1fYmFpbGluZ091dCB7IGZh
bHNlIH07CiAgICAgc2l6ZV90IG1fZGVwdGggeyAwIH07CiB9OwpAQCAtMjEwLDcgKzIxMCw3IEBA
IGNsYXNzIENGcmFtZVdhbGtlciA6IHB1YmxpYyBGcmFtZVdhbGtlciB7CiBwdWJsaWM6CiAgICAg
dHlwZWRlZiBGcmFtZVdhbGtlciBCYXNlOwogCi0gICAgQ0ZyYW1lV2Fsa2VyKFZNJiB2bSwgdm9p
ZCogbWFjaGluZUZyYW1lLCBDYWxsRnJhbWUqIGNhbGxGcmFtZSwgY29uc3QgQWJzdHJhY3RMb2Nr
ZXImIGNvZGVCbG9ja1NldExvY2tlciwgY29uc3QgQWJzdHJhY3RMb2NrZXImIG1hY2hpbmVUaHJl
YWRzTG9ja2VyLCBjb25zdCBPcHRpb25hbDxMb2NrSG9sZGVyPiYgd2FzbUNhbGxlZUxvY2tlcikK
KyAgICBDRnJhbWVXYWxrZXIoVk0mIHZtLCB2b2lkKiBtYWNoaW5lRnJhbWUsIENhbGxGcmFtZSog
Y2FsbEZyYW1lLCBjb25zdCBBYnN0cmFjdExvY2tlciYgY29kZUJsb2NrU2V0TG9ja2VyLCBjb25z
dCBBYnN0cmFjdExvY2tlciYgbWFjaGluZVRocmVhZHNMb2NrZXIsIGNvbnN0IE9wdGlvbmFsPFVu
Y2hlY2tlZExvY2tIb2xkZXI+JiB3YXNtQ2FsbGVlTG9ja2VyKQogICAgICAgICA6IEJhc2Uodm0s
IGNhbGxGcmFtZSwgY29kZUJsb2NrU2V0TG9ja2VyLCBtYWNoaW5lVGhyZWFkc0xvY2tlciwgd2Fz
bUNhbGxlZUxvY2tlcikKICAgICAgICAgLCBtX21hY2hpbmVGcmFtZShtYWNoaW5lRnJhbWUpCiAg
ICAgewpAQCAtMzUzLDcgKzM1Myw3IEBAIHZvaWQgU2FtcGxpbmdQcm9maWxlcjo6dGFrZVNhbXBs
ZShjb25zdCBBYnN0cmFjdExvY2tlciYsIFNlY29uZHMmIHN0YWNrVHJhY2VQcm9jCiAgICAgICAg
IExvY2tlciBtYWNoaW5lVGhyZWFkc0xvY2tlciB7IG1fdm0uaGVhcC5tYWNoaW5lVGhyZWFkcygp
LmdldExvY2soKSB9OwogICAgICAgICBMb2NrZXIgY29kZUJsb2NrU2V0TG9ja2VyIHsgbV92bS5o
ZWFwLmNvZGVCbG9ja1NldCgpLmdldExvY2soKSB9OwogICAgICAgICBMb2NrZXIgZXhlY3V0YWJs
ZUFsbG9jYXRvckxvY2tlciB7IEV4ZWN1dGFibGVBbGxvY2F0b3I6OnNpbmdsZXRvbigpLmdldExv
Y2soKSB9OwotICAgICAgICBPcHRpb25hbDxMb2NrSG9sZGVyPiB3YXNtQ2FsbGVlc0xvY2tlcjsK
KyAgICAgICAgT3B0aW9uYWw8VW5jaGVja2VkTG9ja0hvbGRlcj4gd2FzbUNhbGxlZXNMb2NrZXI7
CiAjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQogICAgICAgICBpZiAoV2FzbTo6aXNTdXBwb3J0ZWQo
KSkKICAgICAgICAgICAgIHdhc21DYWxsZWVzTG9ja2VyID0gTG9ja2VyIHsgV2FzbTo6Q2FsbGVl
UmVnaXN0cnk6OnNpbmdsZXRvbigpLmdldExvY2soKSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvU2FtcGxpbmdQcm9maWxlci5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvU2FtcGxpbmdQcm9maWxlci5oCmluZGV4IDY1MTcwN2E5NDZmMTYxZGVh
NmY5ODhhYjVkZGU0OGIzMmM3NWM3ZWQuLjlmMDU3MjZhNGU4MDRmY2IzNTM3MzZhMmVkMWQ2NDBi
NzY0Yzk0ZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NhbXBs
aW5nUHJvZmlsZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TYW1wbGlu
Z1Byb2ZpbGVyLmgKQEAgLTE3Miw3ICsxNzIsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBub3RpY2VW
TUVudHJ5KCk7CiAgICAgdm9pZCBzaHV0ZG93bigpOwogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFZp
c2l0b3I+IHZvaWQgdmlzaXQoVmlzaXRvciYpOwotICAgIExvY2smIGdldExvY2soKSB7IHJldHVy
biBtX2xvY2s7IH0KKyAgICBVbmNoZWNrZWRMb2NrJiBnZXRMb2NrKCkgeyByZXR1cm4gbV9sb2Nr
OyB9CiAgICAgdm9pZCBzZXRUaW1pbmdJbnRlcnZhbChTZWNvbmRzIGludGVydmFsKSB7IG1fdGlt
aW5nSW50ZXJ2YWwgPSBpbnRlcnZhbDsgfQogICAgIEpTX0VYUE9SVF9QUklWQVRFIHZvaWQgc3Rh
cnQoKTsKICAgICB2b2lkIHN0YXJ0KGNvbnN0IEFic3RyYWN0TG9ja2VyJik7CkBAIC0yMDAsNyAr
MjAwLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHRpbWVyTG9vcCgpOwogICAgIHZvaWQgdGFrZVNh
bXBsZShjb25zdCBBYnN0cmFjdExvY2tlciYsIFNlY29uZHMmIHN0YWNrVHJhY2VQcm9jZXNzaW5n
VGltZSk7CiAKLSAgICBMb2NrIG1fbG9jazsKKyAgICBVbmNoZWNrZWRMb2NrIG1fbG9jazsKICAg
ICBib29sIG1faXNQYXVzZWQ7CiAgICAgYm9vbCBtX2lzU2h1dERvd247CiAgICAgYm9vbCBtX25l
ZWRzUmVwb3J0QXRFeGl0IHsgZmFsc2UgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1ZNLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5oCmlu
ZGV4IGY4ZThkM2Y1NDdlNGZkZTYxMzRjMzhhODYyZDJmMjVkNjJhMzMxZTIuLmExYWIyMjMyMTY5
OGU1NzAwMjk5NDczNTE0YmZhMDQxZjg4ZGNjNTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1ZNLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
Vk0uaApAQCAtMTAwNCw3ICsxMDA0LDcgQEAgcHVibGljOgogI2lmIEVOQUJMRShZQVJSX0pJVF9B
TExfUEFSRU5TX0VYUFJFU1NJT05TKQogICAgIHN0YXRpYyBjb25zdGV4cHIgc2l6ZV90IHBhdHRl
cm5Db250ZXh0QnVmZmVyU2l6ZSA9IDgxOTI7IC8vIFNwYWNlIGFsbG9jYXRlZCB0byBzYXZlIG5l
c3RlZCBwYXJlbnRoZXNpcyBjb250ZXh0CiAgICAgVW5pcXVlQXJyYXk8Y2hhcj4gbV9yZWdFeHBQ
YXR0ZXJuQ29udGV4QnVmZmVyOwotICAgIExvY2sgbV9yZWdFeHBQYXR0ZXJuQ29udGV4dExvY2s7
CisgICAgVW5jaGVja2VkTG9jayBtX3JlZ0V4cFBhdHRlcm5Db250ZXh0TG9jazsKICAgICBjaGFy
KiBhY3F1aXJlUmVnRXhwUGF0dGVybkNvbnRleEJ1ZmZlcigpOwogICAgIHZvaWQgcmVsZWFzZVJl
Z0V4cFBhdHRlcm5Db250ZXhCdWZmZXIoKTsKICNlbHNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9WTVRyYXBzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1ZNVHJhcHMuY3BwCmluZGV4IDliNDQwNmIxMTU2M2RhZjU3MzllYjMzOGFmODI1OWE1
ZTE4YTQxNTkuLjU3ZGIzMTljZWNmYjczNzE5N2UyNmQ5Y2RkMmRiN2E1OGJiMDhjNjcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNVHJhcHMuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNVHJhcHMuY3BwCkBAIC0xNjMsNyArMTYzLDcg
QEAgdm9pZCBWTVRyYXBzOjppbnZhbGlkYXRlQ29kZUJsb2Nrc09uU3RhY2soQ2FsbEZyYW1lKiB0
b3BDYWxsRnJhbWUpCiAgICAgaW52YWxpZGF0ZUNvZGVCbG9ja3NPblN0YWNrKGNvZGVCbG9ja1Nl
dExvY2tlciwgdG9wQ2FsbEZyYW1lKTsKIH0KICAgICAKLXZvaWQgVk1UcmFwczo6aW52YWxpZGF0
ZUNvZGVCbG9ja3NPblN0YWNrKExvY2tlcjxMb2NrPiYsIENhbGxGcmFtZSogdG9wQ2FsbEZyYW1l
KQordm9pZCBWTVRyYXBzOjppbnZhbGlkYXRlQ29kZUJsb2Nrc09uU3RhY2soTG9ja2VyPFVuY2hl
Y2tlZExvY2s+JiwgQ2FsbEZyYW1lKiB0b3BDYWxsRnJhbWUpCiB7CiAgICAgaWYgKCFtX25lZWRU
b0ludmFsaWRhdGVkQ29kZUJsb2NrcykKICAgICAgICAgcmV0dXJuOwpAQCAtNDM3LDcgKzQzNyw3
IEBAIHZvaWQgVk1UcmFwczo6dW5kb0RlZmVyVGVybWluYXRpb25TbG93KERlZmVyQWN0aW9uIGRl
ZmVyQWN0aW9uKQogfQogCiBWTVRyYXBzOjpWTVRyYXBzKCkKLSAgICA6IG1fbG9jayhCb3g8TG9j
az46OmNyZWF0ZSgpKQorICAgIDogbV9sb2NrKEJveDxVbmNoZWNrZWRMb2NrPjo6Y3JlYXRlKCkp
CiAgICAgLCBtX2NvbmRpdGlvbihBdXRvbWF0aWNUaHJlYWRDb25kaXRpb246OmNyZWF0ZSgpKQog
ewogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk1UcmFwcy5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk1UcmFwcy5oCmluZGV4IDBhZjU5YmM5
NWMxNmY5MmQzNGU1NGE2MjJiMjQyYjg3YzU4NGZkNjUuLjVkMTVjOTJmNzA0MTc1MWQ4MDRlNGM1
NzJhNTUzMDEwN2JmZTQyZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1ZNVHJhcHMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTVRyYXBz
LmgKQEAgLTIzNiw3ICsyMzYsNyBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBpbnZhbGlkYXRlQ29k
ZUJsb2Nrc09uU3RhY2soKTsKICAgICB2b2lkIGludmFsaWRhdGVDb2RlQmxvY2tzT25TdGFjayhD
YWxsRnJhbWUqIHRvcENhbGxGcmFtZSk7Ci0gICAgdm9pZCBpbnZhbGlkYXRlQ29kZUJsb2Nrc09u
U3RhY2soTG9ja2VyPExvY2s+JiBjb2RlQmxvY2tTZXRMb2NrZXIsIENhbGxGcmFtZSogdG9wQ2Fs
bEZyYW1lKTsKKyAgICB2b2lkIGludmFsaWRhdGVDb2RlQmxvY2tzT25TdGFjayhMb2NrZXI8VW5j
aGVja2VkTG9jaz4mIGNvZGVCbG9ja1NldExvY2tlciwgQ2FsbEZyYW1lKiB0b3BDYWxsRnJhbWUp
OwogCiAgICAgdm9pZCBhZGRTaWduYWxTZW5kZXIoU2lnbmFsU2VuZGVyKik7CiAgICAgdm9pZCBy
ZW1vdmVTaWduYWxTZW5kZXIoU2lnbmFsU2VuZGVyKik7CkBAIC0yNDcsNyArMjQ3LDcgQEAgcHJp
dmF0ZToKIAogICAgIHN0YXRpYyBjb25zdGV4cHIgQml0RmllbGQgTmVlZEV4Y2VwdGlvbkhhbmRs
aW5nTWFzayA9IH4oMSA8PCBOZWVkRXhjZXB0aW9uSGFuZGxpbmcpOwogCi0gICAgQm94PExvY2s+
IG1fbG9jazsKKyAgICBCb3g8VW5jaGVja2VkTG9jaz4gbV9sb2NrOwogICAgIFJlZjxBdXRvbWF0
aWNUaHJlYWRDb25kaXRpb24+IG1fY29uZGl0aW9uOwogICAgIEF0b21pYzxCaXRGaWVsZD4gbV90
cmFwQml0cyB7IDAgfTsKICAgICBib29sIG1fbmVlZFRvSW52YWxpZGF0ZWRDb2RlQmxvY2tzIHsg
ZmFsc2UgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90b29scy9GdW5jdGlv
bk92ZXJyaWRlcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xzL0Z1bmN0aW9uT3ZlcnJp
ZGVzLmgKaW5kZXggODgyOTY3MDA3M2RkZjlkNmQ0OWNlZWYyMDhiNjM4YzcxM2Y0ZWQ2OS4uNzZh
ODEzZDQ4YjNkNDUzNTg4ZDU0M2FmODM2MDMzMWM5ODJiZjQ0MCAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3Rvb2xzL0Z1bmN0aW9uT3ZlcnJpZGVzLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3Rvb2xzL0Z1bmN0aW9uT3ZlcnJpZGVzLmgKQEAgLTYxLDcgKzYxLDcgQEAg
cHJpdmF0ZToKICAgICB2b2lkIGNsZWFyKGNvbnN0IEFic3RyYWN0TG9ja2VyJikgeyBtX2VudHJp
ZXMuY2xlYXIoKTsgfQogCiAgICAgSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4gbV9lbnRyaWVzOwot
ICAgIExvY2sgbV9sb2NrOworICAgIFVuY2hlY2tlZExvY2sgbV9sb2NrOwogfTsKIAogfSAvLyBu
YW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdG9vbHMvVk1J
bnNwZWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xzL1ZNSW5zcGVjdG9yLmNw
cAppbmRleCBlNDlkYWUxZTFiYzlkZDcwYzllYjIwMmQ4NzcwOWZjYzZjYTY3MDkwLi4xZmY3MmQ0
NmQ5NjQzOTQ0YTc5NGJhNDNmNGI2MGI4YjExNDQ4YTg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvdG9vbHMvVk1JbnNwZWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS90b29scy9WTUluc3BlY3Rvci5jcHAKQEAgLTg5LDcgKzg5LDcgQEAgYXV0byBWTUluc3Bl
Y3Rvcjo6bG9jayhTZWNvbmRzIHRpbWVvdXQpIC0+IEV4cGVjdGVkPExvY2tlciwgRXJyb3I+CiB9
CiAKICNpZiBFTkFCTEUoSklUKQotc3RhdGljIGJvb2wgZW5zdXJlSXNTYWZlVG9Mb2NrKExvY2sm
IGxvY2spCitzdGF0aWMgYm9vbCBlbnN1cmVJc1NhZmVUb0xvY2soVW5jaGVja2VkTG9jayYgbG9j
aykKIHsKICAgICB1bnNpZ25lZCBtYXhSZXRyaWVzID0gMjsKICAgICB1bnNpZ25lZCB0cnlDb3Vu
dCA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdG9vbHMvVk1JbnNwZWN0
b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90b29scy9WTUluc3BlY3Rvci5oCmluZGV4IDg0
NTYzMWM2NDgxNjlkN2E1NTFjZWI3OGQ0ZWFlMDNiNTU2NTg5Y2EuLmRmNDkwZGUyODYyYWExNzk5
ZmRmNDM3NzdlZGUxZGVmYWRhMDE5ZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS90b29scy9WTUluc3BlY3Rvci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90b29scy9W
TUluc3BlY3Rvci5oCkBAIC00MywxNCArNDMsMTQgQEAgcHVibGljOgogICAgICAgICBUaW1lZE91
dAogICAgIH07CiAKLSAgICB0eXBlZGVmIFdURjo6TG9ja2VyPExvY2s+IExvY2tlcjsKKyAgICB0
eXBlZGVmIFdURjo6TG9ja2VyPFVuY2hlY2tlZExvY2s+IExvY2tlcjsKIAogICAgIHN0YXRpYyBW
TUluc3BlY3RvciYgaW5zdGFuY2UoKTsKIAogICAgIHZvaWQgYWRkKFZNKik7CiAgICAgdm9pZCBy
ZW1vdmUoVk0qKTsKIAotICAgIExvY2smIGdldExvY2soKSB7IHJldHVybiBtX2xvY2s7IH0KKyAg
ICBVbmNoZWNrZWRMb2NrJiBnZXRMb2NrKCkgeyByZXR1cm4gbV9sb2NrOyB9CiAKICAgICBlbnVt
IGNsYXNzIEZ1bmN0b3JTdGF0dXMgewogICAgICAgICBDb250aW51ZSwKQEAgLTEwMyw3ICsxMDMs
NyBAQCBwcml2YXRlOgogICAgICAgICB9CiAgICAgfQogCi0gICAgTG9jayBtX2xvY2s7CisgICAg
VW5jaGVja2VkTG9jayBtX2xvY2s7CiAgICAgRG91Ymx5TGlua2VkTGlzdDxWTT4gbV92bUxpc3Q7
CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQ2FsbGVl
UmVnaXN0cnkuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21DYWxsZWVSZWdpc3Ry
eS5oCmluZGV4IDEyMTM0MTFiN2ZjMTA2NGE5ODJjNzU4YjNlMDMyOGE4NDE0NzhlNzMuLmRjOTIy
Y2YzZWE4NzE3MDJjYTUyMmMyMzJmNTYyZjE3NjYxMTM4ZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL1dhc21DYWxsZWVSZWdpc3RyeS5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS93YXNtL1dhc21DYWxsZWVSZWdpc3RyeS5oCkBAIC00MSw3ICs0MSw3IEBAIHB1
YmxpYzoKICAgICBzdGF0aWMgdm9pZCBpbml0aWFsaXplKCk7CiAgICAgc3RhdGljIENhbGxlZVJl
Z2lzdHJ5JiBzaW5nbGV0b24oKTsKIAotICAgIExvY2smIGdldExvY2soKSB7IHJldHVybiBtX2xv
Y2s7IH0KKyAgICBVbmNoZWNrZWRMb2NrJiBnZXRMb2NrKCkgeyByZXR1cm4gbV9sb2NrOyB9CiAK
ICAgICB2b2lkIHJlZ2lzdGVyQ2FsbGVlKENhbGxlZSogY2FsbGVlKQogICAgIHsKQEAgLTcwLDcg
KzcwLDcgQEAgcHVibGljOgogICAgIENhbGxlZVJlZ2lzdHJ5KCkgPSBkZWZhdWx0OwogCiBwcml2
YXRlOgotICAgIExvY2sgbV9sb2NrOworICAgIFVuY2hlY2tlZExvY2sgbV9sb2NrOwogICAgIEhh
c2hTZXQ8Q2FsbGVlKj4gbV9jYWxsZWVTZXQ7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvd2FzbS9XYXNtUGxhbi5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20v
V2FzbVBsYW4uaAppbmRleCBhYjk0ZjllODkwMzg5NmZkMzExNmM2MjY5MmFkNzZkZGM5NGY1ZDYx
Li5jODFmM2E2YzlmNTg2YjkxYzE3YjU5NjQ3NTAxOGVjY2EyM2ZhZDFlIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtUGxhbi5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93YXNtL1dhc21QbGFuLmgKQEAgLTk0LDggKzk0LDggQEAgcHJvdGVjdGVkOgogCiAg
ICAgU3RyaW5nIG1fZXJyb3JNZXNzYWdlOwogICAgIE1lbW9yeU1vZGUgbV9tb2RlIHsgTWVtb3J5
TW9kZTo6Qm91bmRzQ2hlY2tpbmcgfTsKLSAgICBMb2NrIG1fbG9jazsKLSAgICBDb25kaXRpb24g
bV9jb21wbGV0ZWQ7CisgICAgVW5jaGVja2VkTG9jayBtX2xvY2s7CisgICAgVW5jaGVja2VkQ29u
ZGl0aW9uIG1fY29tcGxldGVkOwogfTsKIAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvd2FzbS9XYXNtU3RyZWFtaW5nQ29tcGlsZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93YXNtL1dhc21TdHJlYW1pbmdDb21waWxlci5oCmluZGV4IDg2YTEwZGM0NDViOTRmZjkyM2I2
NmNiZDYxYTcxMTYwZTczNjZjZTUuLjk1N2Y3NWZmZmZmMGMwZjNiZWEwNDQwZGVmYTlkYzg4ZTBh
MjM5NGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21TdHJlYW1p
bmdDb21waWxlci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21TdHJlYW1p
bmdDb21waWxlci5oCkBAIC03MCw3ICs3MCw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2VhZ2Vy
RmFpbGVkIHsgZmFsc2UgfTsKICAgICBib29sIG1fZmluYWxpemVkIHsgZmFsc2UgfTsKICAgICBi
b29sIG1fdGhyZWFkZWRDb21waWxhdGlvblN0YXJ0ZWQgeyBmYWxzZSB9OwotICAgIExvY2sgbV9s
b2NrOworICAgIFVuY2hlY2tlZExvY2sgbV9sb2NrOwogICAgIHVuc2lnbmVkIG1fcmVtYWluaW5n
Q29tcGlsYXRpb25SZXF1ZXN0cyB7IDAgfTsKICAgICBKU1Byb21pc2UqIG1fcHJvbWlzZTsgLy8g
UmF3IHBvaW50ZXIsIGJ1dCBoZWxkIGJ5IERlZmVycmVkV29ya1RpbWVyLgogICAgIFJlZjxXYXNt
OjpNb2R1bGVJbmZvcm1hdGlvbj4gbV9pbmZvOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3dhc20vV2FzbVRodW5rcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2Fz
bVRodW5rcy5oCmluZGV4IGMyMzVjZmU2Mjk1ZTY2OWFlNWE4MGVlOGYyNTJlYTZjYTI0MzFiODMu
LmRlNGNhM2NjZjBhYmU1NGRkMTBkZTE4MjI2Zjc4MTdjMDQ3ODFmM2MgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21UaHVua3MuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvd2FzbS9XYXNtVGh1bmtzLmgKQEAgLTU1LDcgKzU1LDcgQEAgcHJpdmF0ZToKICAg
ICBUaHVua3MoKSA9IGRlZmF1bHQ7CiAKICAgICBIYXNoTWFwPFRodW5rR2VuZXJhdG9yLCBNYWNy
b0Fzc2VtYmxlckNvZGVSZWY8SklUVGh1bmtQdHJUYWc+PiBtX3N0dWJzOwotICAgIExvY2sgbV9s
b2NrOworICAgIFVuY2hlY2tlZExvY2sgbV9sb2NrOwogfTsKIAogfSB9IC8vIG5hbWVzcGFjZSBK
U0M6Oldhc20KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21Xb3Jr
bGlzdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtV29ya2xpc3QuY3BwCmlu
ZGV4IDViYWQwZDkwYTU2MmUyNWRkZTgxN2I1ODJjMDYwNjY1NmM5MDZlYmEuLjM4OThlY2FiNGMw
ODg3ZTI1YTBhMzQ4MWI0MTFiOGY2N2MxZWJjMjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93YXNtL1dhc21Xb3JrbGlzdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3dhc20vV2FzbVdvcmtsaXN0LmNwcApAQCAtMTI4LDcgKzEyOCw3IEBAIHByaXZhdGU6CiAgICAg
fQogCiBwdWJsaWM6Ci0gICAgQ29uZGl0aW9uIHN5bmNocm9uaXplOworICAgIFVuY2hlY2tlZENv
bmRpdGlvbiBzeW5jaHJvbml6ZTsKICAgICBXb3JrbGlzdCYgd29ya2xpc3Q7CiAgICAgLy8gV2Ug
Y2FuIG9ubHkgbW9kaWZ5IGVsZW1lbnQgd2hlbiBob2xkaW5nIHRoZSBsb2NrLiBBIHN5bmNocm9u
b3VzIGNvbXBpbGUgbWlnaHQgbG9vayBhdCBlYWNoIHRocmVhZCdzIHRhc2tzIGluIG9yZGVyIHRv
IGJvb3N0IHRoZSBwcmlvcml0eS4KICAgICBRdWV1ZUVsZW1lbnQgZWxlbWVudDsKQEAgLTIxMyw3
ICsyMTMsNyBAQCB2b2lkIFdvcmtsaXN0OjpzdG9wQWxsUGxhbnNGb3JDb250ZXh0KENvbnRleHQm
IGNvbnRleHQpCiB9CiAKIFdvcmtsaXN0OjpXb3JrbGlzdCgpCi0gICAgOiBtX2xvY2soQm94PExv
Y2s+OjpjcmVhdGUoKSkKKyAgICA6IG1fbG9jayhCb3g8VW5jaGVja2VkTG9jaz46OmNyZWF0ZSgp
KQogICAgICwgbV9wbGFuRW5xdWV1ZWQoQXV0b21hdGljVGhyZWFkQ29uZGl0aW9uOjpjcmVhdGUo
KSkKIHsKICAgICB1bnNpZ25lZCBudW1iZXJPZkNvbXBpbGF0aW9uVGhyZWFkcyA9IE9wdGlvbnM6
OnVzZUNvbmN1cnJlbnRKSVQoKSA/IGtlcm5UQ1NNQXdhcmVOdW1iZXJPZlByb2Nlc3NvckNvcmVz
KCkgOiAxOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVdvcmts
aXN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtV29ya2xpc3QuaAppbmRleCA1
NmQ3OWEwZTk4OWE2MDJmMjEzM2QwMzA5MGZkYmNjNjM3Yzk1NjM5Li40NWE2ZmJiNmNmOWE4NTNj
MjgxZmRiYmFjZDU2ZmJlZGQxZmE1OWNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9XYXNtV29ya2xpc3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9X
YXNtV29ya2xpc3QuaApAQCAtODQsNyArODQsNyBAQCBwcml2YXRlOgogICAgICAgICByZXR1cm4g
bGVmdC5wcmlvcml0eSA+IHJpZ2h0LnByaW9yaXR5OwogICAgIH0KIAotICAgIEJveDxMb2NrPiBt
X2xvY2s7CisgICAgQm94PFVuY2hlY2tlZExvY2s+IG1fbG9jazsKICAgICBSZWY8QXV0b21hdGlj
VGhyZWFkQ29uZGl0aW9uPiBtX3BsYW5FbnF1ZXVlZDsKICAgICAvLyBUZWNobmljYWxseSwgdGhp
cyBjb3VsZCBvdmVyZmxvdyBidXQgdGhhdCdzIHVubGlrZWx5LiBFdmVuIGlmIGl0IGRpZCwgd2Ug
d2lsbCBqdXN0IGNvbXBpbGUgdGhpbmdzIG9mIHRoZSBzYW1lCiAgICAgLy8gUHJpb3JpdHkgaXQg
dGhlIHdyb25nIG9yZGVyLCB3aGljaCBpc24ndCB3cm9uZywganVzdCBzdWJvcHRpbWFsLgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dURi93dGYvQXV0b21hdGljVGhyZWFkLmNwcCBiL1NvdXJjZS9XVEYv
d3RmL0F1dG9tYXRpY1RocmVhZC5jcHAKaW5kZXggZjRlYTc4ZDEzZTFjZGRiNjE5YjgyMjg2OGQz
M2M3MjdjOWYyZjk4Yi4uM2M1YmU1MTNjMjYzY2E4YjRkYTZiN2MyNmM2ZjgzNzM5ZGEzMWUwYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvQXV0b21hdGljVGhyZWFkLmNwcAorKysgYi9Tb3Vy
Y2UvV1RGL3d0Zi9BdXRvbWF0aWNUaHJlYWQuY3BwCkBAIC03NywxMiArNzcsMTIgQEAgdm9pZCBB
dXRvbWF0aWNUaHJlYWRDb25kaXRpb246Om5vdGlmeUFsbChjb25zdCBBYnN0cmFjdExvY2tlciYg
bG9ja2VyKQogICAgIH0KIH0KIAotdm9pZCBBdXRvbWF0aWNUaHJlYWRDb25kaXRpb246OndhaXQo
TG9jayYgbG9jaykKK3ZvaWQgQXV0b21hdGljVGhyZWFkQ29uZGl0aW9uOjp3YWl0KFVuY2hlY2tl
ZExvY2smIGxvY2spCiB7CiAgICAgbV9jb25kaXRpb24ud2FpdChsb2NrKTsKIH0KIAotYm9vbCBB
dXRvbWF0aWNUaHJlYWRDb25kaXRpb246OndhaXRGb3IoTG9jayYgbG9jaywgU2Vjb25kcyB0aW1l
KQorYm9vbCBBdXRvbWF0aWNUaHJlYWRDb25kaXRpb246OndhaXRGb3IoVW5jaGVja2VkTG9jayYg
bG9jaywgU2Vjb25kcyB0aW1lKQogewogICAgIHJldHVybiBtX2NvbmRpdGlvbi53YWl0Rm9yKGxv
Y2ssIHRpbWUpOwogfQpAQCAtMTA0LDEyICsxMDQsMTIgQEAgYm9vbCBBdXRvbWF0aWNUaHJlYWRD
b25kaXRpb246OmNvbnRhaW5zKGNvbnN0IEFic3RyYWN0TG9ja2VyJiwgQXV0b21hdGljVGhyZWFk
KgogICAgIHJldHVybiBtX3RocmVhZHMuY29udGFpbnModGhyZWFkKTsKIH0KIAotQXV0b21hdGlj
VGhyZWFkOjpBdXRvbWF0aWNUaHJlYWQoY29uc3QgQWJzdHJhY3RMb2NrZXImIGxvY2tlciwgQm94
PExvY2s+IGxvY2ssIFJlZjxBdXRvbWF0aWNUaHJlYWRDb25kaXRpb24+JiYgY29uZGl0aW9uLCBT
ZWNvbmRzIHRpbWVvdXQpCitBdXRvbWF0aWNUaHJlYWQ6OkF1dG9tYXRpY1RocmVhZChjb25zdCBB
YnN0cmFjdExvY2tlciYgbG9ja2VyLCBCb3g8VW5jaGVja2VkTG9jaz4gbG9jaywgUmVmPEF1dG9t
YXRpY1RocmVhZENvbmRpdGlvbj4mJiBjb25kaXRpb24sIFNlY29uZHMgdGltZW91dCkKICAgICA6
IEF1dG9tYXRpY1RocmVhZChsb2NrZXIsIGxvY2ssIFdURk1vdmUoY29uZGl0aW9uKSwgVGhyZWFk
VHlwZTo6VW5rbm93biwgdGltZW91dCkKIHsKIH0KIAotQXV0b21hdGljVGhyZWFkOjpBdXRvbWF0
aWNUaHJlYWQoY29uc3QgQWJzdHJhY3RMb2NrZXImIGxvY2tlciwgQm94PExvY2s+IGxvY2ssIFJl
ZjxBdXRvbWF0aWNUaHJlYWRDb25kaXRpb24+JiYgY29uZGl0aW9uLCBUaHJlYWRUeXBlIHR5cGUs
IFNlY29uZHMgdGltZW91dCkKK0F1dG9tYXRpY1RocmVhZDo6QXV0b21hdGljVGhyZWFkKGNvbnN0
IEFic3RyYWN0TG9ja2VyJiBsb2NrZXIsIEJveDxVbmNoZWNrZWRMb2NrPiBsb2NrLCBSZWY8QXV0
b21hdGljVGhyZWFkQ29uZGl0aW9uPiYmIGNvbmRpdGlvbiwgVGhyZWFkVHlwZSB0eXBlLCBTZWNv
bmRzIHRpbWVvdXQpCiAgICAgOiBtX2xvY2sobG9jaykKICAgICAsIG1fY29uZGl0aW9uKFdURk1v
dmUoY29uZGl0aW9uKSkKICAgICAsIG1fdGltZW91dCh0aW1lb3V0KQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dURi93dGYvQXV0b21hdGljVGhyZWFkLmggYi9Tb3VyY2UvV1RGL3d0Zi9BdXRvbWF0aWNU
aHJlYWQuaAppbmRleCA4ZDdjMmI1MTY4MGEzZWE2NzI4ZTUxNzRmYzgxODA2OGRlZTk1Yzg2Li4w
OWZjYWZlZjIzOTU5MWIyZTEyY2RmMDJmZGYwMDZjY2RkNDEyYTZiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV1RGL3d0Zi9BdXRvbWF0aWNUaHJlYWQuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9BdXRvbWF0
aWNUaHJlYWQuaApAQCAtODEsOCArODEsOCBAQCBwdWJsaWM6CiAgICAgLy8gT25lIGtub3duLWdv
b2QgY2FzZSBmb3Igb25lLXRydWUtY29uZGl0aW9uIGlzIHdoZW4gdGhlIGNvbW11bmljYXRpb24g
aW52b2x2ZXMganVzdCB0d28KICAgICAvLyB0aHJlYWRzLiBJbiBzdWNoIGNhc2VzLCB0aGUgdGhy
ZWFkIGRvaW5nIHRoZSBub3RpZnlBbGwoKSBjYW4gd2FrZSB1cCBhdCBtb3N0IG9uZSB0aHJlYWQg
LQogICAgIC8vIGl0cyBwYXJ0bmVyLgotICAgIFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIHdhaXQo
TG9jayYpOwotICAgIFdURl9FWFBPUlRfUFJJVkFURSBib29sIHdhaXRGb3IoTG9jayYsIFNlY29u
ZHMpOworICAgIFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIHdhaXQoVW5jaGVja2VkTG9jayYpOwor
ICAgIFdURl9FWFBPUlRfUFJJVkFURSBib29sIHdhaXRGb3IoVW5jaGVja2VkTG9jayYsIFNlY29u
ZHMpOwogICAgIAogcHJpdmF0ZToKICAgICBmcmllbmQgY2xhc3MgQXV0b21hdGljVGhyZWFkOwpA
QCAtOTMsNyArOTMsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgcmVtb3ZlKGNvbnN0IEFic3RyYWN0
TG9ja2VyJiwgQXV0b21hdGljVGhyZWFkKik7CiAgICAgYm9vbCBjb250YWlucyhjb25zdCBBYnN0
cmFjdExvY2tlciYsIEF1dG9tYXRpY1RocmVhZCopOwogICAgIAotICAgIENvbmRpdGlvbiBtX2Nv
bmRpdGlvbjsKKyAgICBVbmNoZWNrZWRDb25kaXRpb24gbV9jb25kaXRpb247CiAgICAgVmVjdG9y
PEF1dG9tYXRpY1RocmVhZCo+IG1fdGhyZWFkczsKIH07CiAKQEAgLTEzMSw5ICsxMzEsOSBAQCBw
dWJsaWM6CiBwcm90ZWN0ZWQ6CiAgICAgLy8gVGhpcyBsb2dpY2FsbHkgY3JlYXRlcyB0aGUgdGhy
ZWFkLCBidXQgaW4gcmVhbGl0eSB0aGUgdGhyZWFkIHdvbid0IGJlIGNyZWF0ZWQgdW50aWwgc29t
ZW9uZQogICAgIC8vIGNhbGxzIEF1dG9tYXRpY1RocmVhZENvbmRpdGlvbjo6bm90aWZ5T25lKCkg
b3Igbm90aWZ5QWxsKCkuCi0gICAgQXV0b21hdGljVGhyZWFkKGNvbnN0IEFic3RyYWN0TG9ja2Vy
JiwgQm94PExvY2s+LCBSZWY8QXV0b21hdGljVGhyZWFkQ29uZGl0aW9uPiYmLCBTZWNvbmRzIHRp
bWVvdXQgPSAxMF9zKTsKKyAgICBBdXRvbWF0aWNUaHJlYWQoY29uc3QgQWJzdHJhY3RMb2NrZXIm
LCBCb3g8VW5jaGVja2VkTG9jaz4sIFJlZjxBdXRvbWF0aWNUaHJlYWRDb25kaXRpb24+JiYsIFNl
Y29uZHMgdGltZW91dCA9IDEwX3MpOwogCi0gICAgQXV0b21hdGljVGhyZWFkKGNvbnN0IEFic3Ry
YWN0TG9ja2VyJiwgQm94PExvY2s+LCBSZWY8QXV0b21hdGljVGhyZWFkQ29uZGl0aW9uPiYmLCBU
aHJlYWRUeXBlLCBTZWNvbmRzIHRpbWVvdXQgPSAxMF9zKTsKKyAgICBBdXRvbWF0aWNUaHJlYWQo
Y29uc3QgQWJzdHJhY3RMb2NrZXImLCBCb3g8VW5jaGVja2VkTG9jaz4sIFJlZjxBdXRvbWF0aWNU
aHJlYWRDb25kaXRpb24+JiYsIFRocmVhZFR5cGUsIFNlY29uZHMgdGltZW91dCA9IDEwX3MpOwog
ICAgIAogICAgIC8vIFRvIHVuZGVyc3RhbmQgUG9sbFJlc3VsdCBhbmQgV29ya1Jlc3VsdCwgaW1h
Z2luZSB0aGF0IHBvbGwoKSBhbmQgd29yaygpIGFyZSBiZWluZyBjYWxsZWQgbGlrZQogICAgIC8v
IHNvOgpAQCAtMTgzLDE1ICsxODMsMTUgQEAgcHJpdmF0ZToKICAgICAKICAgICB2b2lkIHN0YXJ0
KGNvbnN0IEFic3RyYWN0TG9ja2VyJik7CiAgICAgCi0gICAgQm94PExvY2s+IG1fbG9jazsKKyAg
ICBCb3g8VW5jaGVja2VkTG9jaz4gbV9sb2NrOwogICAgIFJlZjxBdXRvbWF0aWNUaHJlYWRDb25k
aXRpb24+IG1fY29uZGl0aW9uOwogICAgIFNlY29uZHMgbV90aW1lb3V0OwogICAgIFRocmVhZFR5
cGUgbV90aHJlYWRUeXBlIHsgVGhyZWFkVHlwZTo6VW5rbm93biB9OwogICAgIGJvb2wgbV9pc1J1
bm5pbmcgeyB0cnVlIH07CiAgICAgYm9vbCBtX2lzV2FpdGluZyB7IGZhbHNlIH07CiAgICAgYm9v
bCBtX2hhc1VuZGVybHlpbmdUaHJlYWQgeyBmYWxzZSB9OwotICAgIENvbmRpdGlvbiBtX3dhaXRD
b25kaXRpb247Ci0gICAgQ29uZGl0aW9uIG1faXNSdW5uaW5nQ29uZGl0aW9uOworICAgIFVuY2hl
Y2tlZENvbmRpdGlvbiBtX3dhaXRDb25kaXRpb247CisgICAgVW5jaGVja2VkQ29uZGl0aW9uIG1f
aXNSdW5uaW5nQ29uZGl0aW9uOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV1RGL3d0Zi9DaGVja2VkQ29uZGl0aW9uLmggYi9Tb3VyY2UvV1RGL3d0Zi9DaGVj
a2VkQ29uZGl0aW9uLmgKaW5kZXggMTE5MTBlMDM5OTEzYjRiNjBhNDQ5NDdlYmM5MWQwMWFiYzc4
YjI3OS4uMTA2YmJhMjJkMGE2MTdiMGRmMDRiMjcyZjhjYTJkMGI2MWNiYTBiNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dURi93dGYvQ2hlY2tlZENvbmRpdGlvbi5oCisrKyBiL1NvdXJjZS9XVEYvd3Rm
L0NoZWNrZWRDb25kaXRpb24uaApAQCAtMjUsNTggKzI1LDEyIEBACiAKICNwcmFnbWEgb25jZQog
Ci0jaW5jbHVkZSA8d3RmL0NoZWNrZWRMb2NrLmg+CiAjaW5jbHVkZSA8d3RmL0NvbmRpdGlvbi5o
PgogCiBuYW1lc3BhY2UgV1RGIHsKIAotLy8gQSBjb25kaXRpb24gdmFyaWFibGUgdHlwZSBmb3Ig
Q2hlY2tlZExvY2suCi0vLyBGb3IgcHJlZGljYXRlcyB0aGF0IGFjY2VzcyB0aGUgZ3VhcmRlZCB2
YXJpYWJsZXMsIHVzZSBhc3NlcnRJc0hlbGQobG9jaykuCi1jbGFzcyBDaGVja2VkQ29uZGl0aW9u
IGZpbmFsIHsKLSAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShDaGVja2VkQ29uZGl0aW9uKTsKLSAg
ICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKLXB1YmxpYzoKLSAgICBjb25zdGV4cHIgQ2hlY2tl
ZENvbmRpdGlvbigpID0gZGVmYXVsdDsKLQotICAgIGJvb2wgd2FpdFVudGlsKENoZWNrZWRMb2Nr
JiBsb2NrLCBjb25zdCBUaW1lV2l0aER5bmFtaWNDbG9ja1R5cGUmIHRpbWVvdXQpIFdURl9SRVFV
SVJFU19MT0NLKGxvY2spCi0gICAgewotICAgICAgICByZXR1cm4gbV9jb25kaXRpb24ud2FpdFVu
dGlsKHVuY2hlY2tlZENhc3QobG9jayksIHRpbWVvdXQpOwotICAgIH0KLSAgICB0ZW1wbGF0ZTx0
eXBlbmFtZSBGdW5jdG9yPgotICAgIGJvb2wgd2FpdFVudGlsKENoZWNrZWRMb2NrJiBsb2NrLCBj
b25zdCBUaW1lV2l0aER5bmFtaWNDbG9ja1R5cGUmIHRpbWVvdXQsIGNvbnN0IEZ1bmN0b3ImIHBy
ZWRpY2F0ZSkgV1RGX1JFUVVJUkVTX0xPQ0sobG9jaykKLSAgICB7Ci0gICAgICAgIHJldHVybiBt
X2NvbmRpdGlvbi53YWl0VW50aWwodW5jaGVja2VkQ2FzdChsb2NrKSwgdGltZW91dCwgcHJlZGlj
YXRlKTsKLSAgICB9Ci0gICAgdGVtcGxhdGU8dHlwZW5hbWUgRnVuY3Rvcj4KLSAgICBib29sIHdh
aXRGb3IoQ2hlY2tlZExvY2smIGxvY2ssIFNlY29uZHMgcmVsYXRpdmVUaW1lb3V0LCBjb25zdCBG
dW5jdG9yJiBwcmVkaWNhdGUpIFdURl9SRVFVSVJFU19MT0NLKGxvY2spCi0gICAgewotICAgICAg
ICByZXR1cm4gbV9jb25kaXRpb24ud2FpdEZvcih1bmNoZWNrZWRDYXN0KGxvY2spLCByZWxhdGl2
ZVRpbWVvdXQsIHByZWRpY2F0ZSk7Ci0gICAgfQotICAgIGJvb2wgd2FpdEZvcihDaGVja2VkTG9j
ayYgbG9jaywgU2Vjb25kcyByZWxhdGl2ZVRpbWVvdXQpIFdURl9SRVFVSVJFU19MT0NLKGxvY2sp
Ci0gICAgewotICAgICAgICByZXR1cm4gbV9jb25kaXRpb24ud2FpdEZvcih1bmNoZWNrZWRDYXN0
KGxvY2spLCByZWxhdGl2ZVRpbWVvdXQpOwotICAgIH0KLSAgICB2b2lkIHdhaXQoQ2hlY2tlZExv
Y2smIGxvY2spIFdURl9SRVFVSVJFU19MT0NLKGxvY2spCi0gICAgewotICAgICAgICBtX2NvbmRp
dGlvbi53YWl0KHVuY2hlY2tlZENhc3QobG9jaykpOwotICAgIH0KLSAgICB0ZW1wbGF0ZTx0eXBl
bmFtZSBGdW5jdG9yPgotICAgIHZvaWQgd2FpdChDaGVja2VkTG9jayYgbG9jaywgY29uc3QgRnVu
Y3RvciYgcHJlZGljYXRlKSBXVEZfUkVRVUlSRVNfTE9DSyhsb2NrKQotICAgIHsKLSAgICAgICAg
bV9jb25kaXRpb24ud2FpdCh1bmNoZWNrZWRDYXN0KGxvY2spLCBwcmVkaWNhdGUpOwotICAgIH0K
LSAgICBib29sIG5vdGlmeU9uZSgpCi0gICAgewotICAgICAgICByZXR1cm4gbV9jb25kaXRpb24u
bm90aWZ5T25lKCk7Ci0gICAgfQotICAgIHZvaWQgbm90aWZ5QWxsKCkKLSAgICB7Ci0gICAgICAg
IG1fY29uZGl0aW9uLm5vdGlmeUFsbCgpOwotICAgIH0KLXByaXZhdGU6Ci0gICAgc3RhdGljIExv
Y2smIHVuY2hlY2tlZENhc3QoQ2hlY2tlZExvY2smIGxvY2spIHsgcmV0dXJuIHN0YXRpY19jYXN0
PExvY2smPihsb2NrKTsgfQotICAgIENvbmRpdGlvbiBtX2NvbmRpdGlvbjsKLX07CisvLyBGSVhN
RTogVXBkYXRlIGNvZGUgYmFzZSB0byB1c2UgQ29uZGl0aW9uIGFuZCByZW1vdmUgdGhpcyBoZWFk
ZXIuCit1c2luZyBDaGVja2VkQ29uZGl0aW9uID0gQ29uZGl0aW9uOwogCiB9IC8vIG5hbWVzcGFj
ZSBXVEYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvQ2hlY2tlZExvY2suaCBiL1NvdXJj
ZS9XVEYvd3RmL0NoZWNrZWRMb2NrLmgKaW5kZXggM2FiNWM3NzBkZTE2MWI0ZjA1OWQ2Yzc0YmI3
MWVjOThlZmE1ZjU4YS4uOTRhOTgxZDc4ODE5NjA2MWU1Mzc2ZDNjNDJlYWEyNGIwYjQyZDE4NiAx
MDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvQ2hlY2tlZExvY2suaAorKysgYi9Tb3VyY2UvV1RG
L3d0Zi9DaGVja2VkTG9jay5oCkBAIC0yNiw4MyArMjYsMTIgQEAKICNwcmFnbWEgb25jZQogCiAj
aW5jbHVkZSA8d3RmL0xvY2suaD4KLSNpbmNsdWRlIDx3dGYvTG9ja2VyLmg+Ci0jaW5jbHVkZSA8
d3RmL1RocmVhZFNhZmV0eUFuYWx5c2lzLmg+CiAKIG5hbWVzcGFjZSBXVEYgewogCi0vLyBBIGxv
Y2sgdHlwZSB3aXRoIHN1cHBvcnQgZm9yIHRocmVhZCBzYWZldHkgYW5hbHlzaXMuCi0vLyBUbyBh
bm5vdGF0ZSBhIG1lbWJlciB2YXJpYWJsZSBvciBhIGdsb2JhbCB2YXJpYWJsZSB3aXRoIHRocmVh
ZCBvd25lcnNoaXAgaW5mb3JtYXRpb24sCi0vLyB1c2UgbG9jayBjYXBhYmlsaXR5IGFubm90YXRp
b25zIGRlZmluZWQgaW4gVGhyZWFkU2FmZXR5QW5hbHlzaXMuaC4KLS8vCi0vLyBFeGFtcGxlOgot
Ly8gICBjbGFzcyBNeVZhbHVlIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPE15VmFsdWU+
Ci0vLyAgIHsKLS8vICAgcHVibGljOgotLy8gICAgICAgdm9pZCBzZXRWYWx1ZShpbnQgdmFsdWUp
IHsgTG9ja2VyIGhvbGRMb2NrIHsgbV9sb2NrIH07IG1fdmFsdWUgPSB2YWx1ZTsgIH0KLS8vICAg
ICAgIHZvaWQgbWF5YmVTZXRPdGhlclZhbHVlKGludCB2YWx1ZSkKLS8vICAgICAgIHsKLS8vICAg
ICAgICAgICBpZiAoIW1fbG9jay50cnlMb2NrKCkpCi0vLyAgICAgICAgICAgICAgcmV0dXJuOwot
Ly8gICAgICAgICAgIExvY2tlciBsb2NrZXIgeyBBZG9wdExvY2ssIG1fb3RoZXJMb2NrIH07Ci0v
LyAgICAgICAgICAgbV9vdGhlclZhbHVlID0gdmFsdWU7Ci0vLyAgICAgICB9Ci0vLyAgIHByaXZh
dGU6Ci0vLyAgICAgICBDaGVja2VkTG9jayBtX2xvY2s7Ci0vLyAgICAgICBpbnQgbV92YWx1ZSBX
VEZfR1VBUkRFRF9CWV9MT0NLKG1fbG9jaykgeyA3NyB9OwotLy8gICAgICAgaW50IG1fb3RoZXJW
YWx1ZSBXVEZfR1VBUkRFRF9CWV9MT0NLKG1fbG9jaykgeyA4OCB9OwotLy8gICB9OwotLy8gRklY
TUU6IE1heWJlIHNob3VsZCBiZSBmb2xkZWQgYmFjayB0byBMb2NrIG9uY2UgaG9sZExvY2sgaXMg
bm90IHVzZWQgZ2xvYmFsbHkuCi1jbGFzcyBXVEZfQ0FQQUJJTElUWV9MT0NLIENoZWNrZWRMb2Nr
IDogTG9jayB7Ci0gICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoQ2hlY2tlZExvY2spOwotICAgIFdU
Rl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwotcHVibGljOgotICAgIGNvbnN0ZXhwciBDaGVja2VkTG9j
aygpID0gZGVmYXVsdDsKLSAgICB2b2lkIGxvY2soKSBXVEZfQUNRVUlSRVNfTE9DSygpIHsgTG9j
azo6bG9jaygpOyB9Ci0gICAgYm9vbCB0cnlMb2NrKCkgV1RGX0FDUVVJUkVTX0xPQ0tfSUYodHJ1
ZSkgeyByZXR1cm4gTG9jazo6dHJ5TG9jaygpOyB9Ci0gICAgYm9vbCB0cnlfbG9jaygpIFdURl9B
Q1FVSVJFU19MT0NLX0lGKHRydWUpIHsgcmV0dXJuIExvY2s6OnRyeV9sb2NrKCk7IH0gLy8gTk9M
SU5UOiBJbnRlbnRpb25hbCBkZXZpYXRpb24gdG8gc3VwcG9ydCBzdGQ6OnNjb3BlZF9sb2NrLgot
ICAgIHZvaWQgdW5sb2NrKCkgV1RGX1JFTEVBU0VTX0xPQ0soKSB7IExvY2s6OnVubG9jaygpOyB9
Ci0gICAgdm9pZCB1bmxvY2tGYWlybHkoKSBXVEZfUkVMRUFTRVNfTE9DSygpIHsgTG9jazo6dW5s
b2NrRmFpcmx5KCk7IH0KLSAgICB2b2lkIHNhZmVwb2ludCgpIHsgTG9jazo6c2FmZXBvaW50KCk7
IH0KLSAgICBib29sIGlzSGVsZCgpIGNvbnN0IHsgcmV0dXJuIExvY2s6OmlzSGVsZCgpOyB9Ci0g
ICAgYm9vbCBpc0xvY2tlZCgpIGNvbnN0IHsgcmV0dXJuIExvY2s6OmlzTG9ja2VkKCk7IH0KLSAg
ICBmcmllbmQgY2xhc3MgQ2hlY2tlZENvbmRpdGlvbjsKLX07Ci0KLS8vIEFzc2VydHMgdGhhdCB0
aGUgbG9jayBpcyBoZWxkLgotLy8gVGhpcyBjYW4gYmUgdXNlZCBpbiBjYXNlcyB3aGVyZSB0aGUg
YW5ub3RhdGlvbnMgY2Fubm90IGJlIGFkZGVkIHRvIHRoZSBmdW5jdGlvbgotLy8gZGVjbGFyYXRp
b24uCi1pbmxpbmUgdm9pZCBhc3NlcnRJc0hlbGQoY29uc3QgQ2hlY2tlZExvY2smIGxvY2spIFdU
Rl9BU1NFUlRTX0FDUVVJUkVEX0xPQ0sobG9jaykgeyBBU1NFUlRfVU5VU0VEKGxvY2ssIGxvY2su
aXNIZWxkKCkpOyB9Ci0KLS8vIExvY2tlciBzcGVjaWFsaXphdGlvbiB0byB1c2Ugd2l0aCBDaGVj
a2VkTG9jay4KLS8vIE5vbi1tb3ZhYmxlIHNpbXBsZSBzY29wZWQgbG9jayBob2xkZXIuCi0vLyBF
eGFtcGxlOiBMb2NrZXIgbG9ja2VyIHsgbV9sb2NrIH07Ci10ZW1wbGF0ZSA8PgotY2xhc3MgV1RG
X0NBUEFCSUxJVFlfU0NPUEVEX0xPQ0sgTG9ja2VyPENoZWNrZWRMb2NrPiB7Ci1wdWJsaWM6Ci0g
ICAgZXhwbGljaXQgTG9ja2VyKENoZWNrZWRMb2NrJiBsb2NrKSBXVEZfQUNRVUlSRVNfTE9DSyhs
b2NrKQotICAgICAgICA6IG1fbG9jayhsb2NrKQotICAgIHsKLSAgICAgICAgbV9sb2NrLmxvY2so
KTsKLSAgICB9Ci0gICAgTG9ja2VyKEFkb3B0TG9ja1RhZywgQ2hlY2tlZExvY2smIGxvY2spIFdU
Rl9SRVFVSVJFU19MT0NLKGxvY2spCi0gICAgICAgIDogbV9sb2NrKGxvY2spCi0gICAgewotICAg
IH0KLSAgICB+TG9ja2VyKCkgV1RGX1JFTEVBU0VTX0xPQ0soKQotICAgIHsKLSAgICAgICAgbV9s
b2NrLnVubG9jaygpOwotICAgIH0KLSAgICBMb2NrZXIoY29uc3QgTG9ja2VyPENoZWNrZWRMb2Nr
PiYpID0gZGVsZXRlOwotICAgIExvY2tlciYgb3BlcmF0b3I9KGNvbnN0IExvY2tlcjxDaGVja2Vk
TG9jaz4mKSA9IGRlbGV0ZTsKLXByaXZhdGU6Ci0gICAgQ2hlY2tlZExvY2smIG1fbG9jazsKLX07
Ci0KLUxvY2tlcihDaGVja2VkTG9jayYpIC0+IExvY2tlcjxDaGVja2VkTG9jaz47Ci1Mb2NrZXIo
QWRvcHRMb2NrVGFnLCBDaGVja2VkTG9jayYpIC0+IExvY2tlcjxDaGVja2VkTG9jaz47CisvLyBG
SVhNRTogVXBkYXRlIGNvZGUgYmFzZSB0byB1c2UgTG9jayBhbmQgcmVtb3ZlIHRoaXMgaGVhZGVy
LgordXNpbmcgQ2hlY2tlZExvY2sgPSBMb2NrOwogCiB9IC8vIG5hbWVzcGFjZSBXVEYKIAotdXNp
bmcgV1RGOjphc3NlcnRJc0hlbGQ7CiB1c2luZyBXVEY6OkNoZWNrZWRMb2NrOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dURi93dGYvQ29uZGl0aW9uLmggYi9Tb3VyY2UvV1RGL3d0Zi9Db25kaXRpb24u
aAppbmRleCA4MTU1MDFmMTdkMjY3OTkyZGY0ZDQ0ZGRiOTkzMWNjYTBlOGZmZTk5Li40ZWVmMWYx
YTYyYTFjYjUyYzFkZTU3MmUxNzFhMzE0MzU2OThiMzY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RG
L3d0Zi9Db25kaXRpb24uaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9Db25kaXRpb24uaApAQCAtMjUs
NiArMjUsNyBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CiAjaW5j
bHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CiAjaW5jbHVkZSA8d3RmL1BhcmtpbmdMb3QuaD4KICNp
bmNsdWRlIDx3dGYvVGltZVdpdGhEeW5hbWljQ2xvY2tUeXBlLmg+CkBAIC0zOSwxNiArNDAsMTYg
QEAgbmFtZXNwYWNlIFdURiB7CiAvLyBub3RpZnlBbGwoKSByZXF1aXJlIGp1c3QgYSBsb2FkIGFu
ZCBicmFuY2ggZm9yIHRoZSBmYXN0IGNhc2Ugd2hlcmUgbm8gdGhyZWFkIGlzIHdhaXRpbmcuCiAv
LyBUaGlzIGNvbmRpdGlvbiB2YXJpYWJsZSwgd2hlbiB1c2VkIHdpdGggV1RGOjpMb2NrLCBjYW4g
b3V0cGVyZm9ybSBhIHN5c3RlbSBjb25kaXRpb24gdmFyaWFibGUKIC8vIGFuZCBsb2NrIGJ5IHVw
IHRvIDU4eC4KLWNsYXNzIENvbmRpdGlvbiBmaW5hbCB7Ci0gICAgV1RGX01BS0VfTk9OQ09QWUFC
TEUoQ29uZGl0aW9uKTsKK2NsYXNzIFVuY2hlY2tlZENvbmRpdGlvbiBmaW5hbCB7CisgICAgV1RG
X01BS0VfTk9OQ09QWUFCTEUoVW5jaGVja2VkQ29uZGl0aW9uKTsKICAgICBXVEZfTUFLRV9GQVNU
X0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICAvLyBDb25kaXRpb24gd2lsbCBhY2NlcHQgYW55IGtp
bmQgb2YgdGltZSBhbmQgY29udmVydCBpdCBpbnRlcm5hbGx5LCBidXQgdGhpcyB0eXBlZGVmIHRl
bGxzCi0gICAgLy8geW91IHdoYXQga2luZCBvZiB0aW1lIENvbmRpdGlvbiB3b3VsZCBiZSBhYmxl
IHRvIHVzZSB3aXRob3V0IGNvbnZlcnNpb25zLiBIb3dldmVyLCBpZiB5b3UKKyAgICAvLyBVbmNo
ZWNrZWRDb25kaXRpb24gd2lsbCBhY2NlcHQgYW55IGtpbmQgb2YgdGltZSBhbmQgY29udmVydCBp
dCBpbnRlcm5hbGx5LCBidXQgdGhpcyB0eXBlZGVmIHRlbGxzCisgICAgLy8geW91IHdoYXQga2lu
ZCBvZiB0aW1lIFVuY2hlY2tlZENvbmRpdGlvbiB3b3VsZCBiZSBhYmxlIHRvIHVzZSB3aXRob3V0
IGNvbnZlcnNpb25zLiBIb3dldmVyLCBpZiB5b3UKICAgICAvLyBhcmUgdW5saWtlbHkgdG8gYmUg
YWZmZWN0ZWQgYnkgdGhlIGNvc3Qgb2YgY29udmVyc2lvbnMsIGl0IGlzIGJldHRlciB0byB1c2Ug
TW9ub3RvbmljVGltZS4KICAgICB1c2luZyBUaW1lID0gUGFya2luZ0xvdDo6VGltZTsKIAotICAg
IGNvbnN0ZXhwciBDb25kaXRpb24oKSA9IGRlZmF1bHQ7CisgICAgY29uc3RleHByIFVuY2hlY2tl
ZENvbmRpdGlvbigpID0gZGVmYXVsdDsKIAogICAgIC8vIFdhaXQgb24gYSBwYXJraW5nIHF1ZXVl
IHdoaWxlIHJlbGVhc2luZyB0aGUgZ2l2ZW4gbG9jay4gSXQgd2lsbCB1bmxvY2sgdGhlIGxvY2sg
anVzdCBiZWZvcmUKICAgICAvLyBwYXJraW5nLCBhbmQgcmVsb2NrIGl0IHVwb24gd2FrZXVwLiBS
ZXR1cm5zIHRydWUgaWYgd2Ugd29rZSB1cCBkdWUgdG8gc29tZSBjYWxsIHRvCkBAIC0xNzIsOSAr
MTczLDYxIEBAIHByaXZhdGU6CiAgICAgQXRvbWljPGJvb2w+IG1faGFzV2FpdGVycyB7IGZhbHNl
IH07CiB9OwogCisvLyBBIGNvbmRpdGlvbiB2YXJpYWJsZSB0eXBlIGZvciBMb2NrLgorLy8gRm9y
IHByZWRpY2F0ZXMgdGhhdCBhY2Nlc3MgdGhlIGd1YXJkZWQgdmFyaWFibGVzLCB1c2UgYXNzZXJ0
SXNIZWxkKGxvY2spLgorY2xhc3MgQ29uZGl0aW9uIGZpbmFsIHsKKyAgICBXVEZfTUFLRV9OT05D
T1BZQUJMRShDb25kaXRpb24pOworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGlj
OgorICAgIGNvbnN0ZXhwciBDb25kaXRpb24oKSA9IGRlZmF1bHQ7CisKKyAgICBib29sIHdhaXRV
bnRpbChMb2NrJiBsb2NrLCBjb25zdCBUaW1lV2l0aER5bmFtaWNDbG9ja1R5cGUmIHRpbWVvdXQp
IFdURl9SRVFVSVJFU19MT0NLKGxvY2spCisgICAgeworICAgICAgICByZXR1cm4gbV9jb25kaXRp
b24ud2FpdFVudGlsKHVuY2hlY2tlZENhc3QobG9jayksIHRpbWVvdXQpOworICAgIH0KKyAgICB0
ZW1wbGF0ZTx0eXBlbmFtZSBGdW5jdG9yPgorICAgIGJvb2wgd2FpdFVudGlsKExvY2smIGxvY2ss
IGNvbnN0IFRpbWVXaXRoRHluYW1pY0Nsb2NrVHlwZSYgdGltZW91dCwgY29uc3QgRnVuY3RvciYg
cHJlZGljYXRlKSBXVEZfUkVRVUlSRVNfTE9DSyhsb2NrKQorICAgIHsKKyAgICAgICAgcmV0dXJu
IG1fY29uZGl0aW9uLndhaXRVbnRpbCh1bmNoZWNrZWRDYXN0KGxvY2spLCB0aW1lb3V0LCBwcmVk
aWNhdGUpOworICAgIH0KKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBGdW5jdG9yPgorICAgIGJvb2wg
d2FpdEZvcihMb2NrJiBsb2NrLCBTZWNvbmRzIHJlbGF0aXZlVGltZW91dCwgY29uc3QgRnVuY3Rv
ciYgcHJlZGljYXRlKSBXVEZfUkVRVUlSRVNfTE9DSyhsb2NrKQorICAgIHsKKyAgICAgICAgcmV0
dXJuIG1fY29uZGl0aW9uLndhaXRGb3IodW5jaGVja2VkQ2FzdChsb2NrKSwgcmVsYXRpdmVUaW1l
b3V0LCBwcmVkaWNhdGUpOworICAgIH0KKyAgICBib29sIHdhaXRGb3IoTG9jayYgbG9jaywgU2Vj
b25kcyByZWxhdGl2ZVRpbWVvdXQpIFdURl9SRVFVSVJFU19MT0NLKGxvY2spCisgICAgeworICAg
ICAgICByZXR1cm4gbV9jb25kaXRpb24ud2FpdEZvcih1bmNoZWNrZWRDYXN0KGxvY2spLCByZWxh
dGl2ZVRpbWVvdXQpOworICAgIH0KKyAgICB2b2lkIHdhaXQoTG9jayYgbG9jaykgV1RGX1JFUVVJ
UkVTX0xPQ0sobG9jaykKKyAgICB7CisgICAgICAgIG1fY29uZGl0aW9uLndhaXQodW5jaGVja2Vk
Q2FzdChsb2NrKSk7CisgICAgfQorICAgIHRlbXBsYXRlPHR5cGVuYW1lIEZ1bmN0b3I+CisgICAg
dm9pZCB3YWl0KExvY2smIGxvY2ssIGNvbnN0IEZ1bmN0b3ImIHByZWRpY2F0ZSkgV1RGX1JFUVVJ
UkVTX0xPQ0sobG9jaykKKyAgICB7CisgICAgICAgIG1fY29uZGl0aW9uLndhaXQodW5jaGVja2Vk
Q2FzdChsb2NrKSwgcHJlZGljYXRlKTsKKyAgICB9CisgICAgYm9vbCBub3RpZnlPbmUoKQorICAg
IHsKKyAgICAgICAgcmV0dXJuIG1fY29uZGl0aW9uLm5vdGlmeU9uZSgpOworICAgIH0KKyAgICB2
b2lkIG5vdGlmeUFsbCgpCisgICAgeworICAgICAgICBtX2NvbmRpdGlvbi5ub3RpZnlBbGwoKTsK
KyAgICB9Citwcml2YXRlOgorICAgIHN0YXRpYyBVbmNoZWNrZWRMb2NrJiB1bmNoZWNrZWRDYXN0
KExvY2smIGxvY2spIHsgcmV0dXJuIHN0YXRpY19jYXN0PFVuY2hlY2tlZExvY2smPihsb2NrKTsg
fQorICAgIFVuY2hlY2tlZENvbmRpdGlvbiBtX2NvbmRpdGlvbjsKK307CisKK3VzaW5nIFN0YXRp
Y1VuY2hlY2tlZENvbmRpdGlvbiA9IFVuY2hlY2tlZENvbmRpdGlvbjsKIHVzaW5nIFN0YXRpY0Nv
bmRpdGlvbiA9IENvbmRpdGlvbjsKIAogfSAvLyBuYW1lc3BhY2UgV1RGCiAKIHVzaW5nIFdURjo6
Q29uZGl0aW9uOwordXNpbmcgV1RGOjpVbmNoZWNrZWRDb25kaXRpb247CiB1c2luZyBXVEY6OlN0
YXRpY0NvbmRpdGlvbjsKK3VzaW5nIFdURjo6U3RhdGljVW5jaGVja2VkQ29uZGl0aW9uOworCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9Mb2NrLmNwcCBiL1NvdXJjZS9XVEYvd3RmL0xvY2su
Y3BwCmluZGV4IGI5OTM4M2Q2OTQ4MGQzYTRjOWI2MjNmMGMwYmNjN2RmOTBlYWIwNGQuLmZmODZl
MTBhOWEyYTQxN2FiNzA2NzBhMDc4OWNmNjUwZDcxOGIxNzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
VEYvd3RmL0xvY2suY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL0xvY2suY3BwCkBAIC0zMywxNCAr
MzMsMTQgQEAgbmFtZXNwYWNlIFdURiB7CiAKIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBwcm9maWxl
TG9ja0NvbnRlbnRpb24gPSBmYWxzZTsKIAotdm9pZCBMb2NrOjpsb2NrU2xvdygpCit2b2lkIFVu
Y2hlY2tlZExvY2s6OmxvY2tTbG93KCkKIHsKICAgICBpZiAocHJvZmlsZUxvY2tDb250ZW50aW9u
KQogICAgICAgICBTVEFDS19TSE9UX1BST0ZJTEUoNCwgMiwgNSk7CiAgICAgRGVmYXVsdExvY2tB
bGdvcml0aG06OmxvY2tTbG93KG1fYnl0ZSk7CiB9CiAKLXZvaWQgTG9jazo6dW5sb2NrU2xvdygp
Cit2b2lkIFVuY2hlY2tlZExvY2s6OnVubG9ja1Nsb3coKQogewogICAgIC8vIEhlYXAgYWxsb2Nh
dGlvbnMgYXJlIGZvcmJpZGRlbiBvbiB0aGUgY2VydGFpbiB0aHJlYWRzIChlLmcuIGF1ZGlvIHJl
bmRlcmluZyB0aHJlYWQpIGZvciBwZXJmb3JtYW5jZSByZWFzb25zIHNvIHdlIG5lZWQgdG8KICAg
ICAvLyBleHBsaWNpdGx5IGFsbG93IHRoZSBmb2xsb3dpbmcgYWxsb2NhdGlvbihzKS4gSW4gc29t
ZSByYXJlIGNhc2VzLCB0aGUgdW5sb2NrU2xvdygpIGFsZ29yaXRoIG1heSBjYXVzZSBhbGxvY2F0
aW9ucy4KQEAgLTQ5LDcgKzQ5LDcgQEAgdm9pZCBMb2NrOjp1bmxvY2tTbG93KCkKICAgICBEZWZh
dWx0TG9ja0FsZ29yaXRobTo6dW5sb2NrU2xvdyhtX2J5dGUsIERlZmF1bHRMb2NrQWxnb3JpdGht
OjpVbmZhaXIpOwogfQogCi12b2lkIExvY2s6OnVubG9ja0ZhaXJseVNsb3coKQordm9pZCBVbmNo
ZWNrZWRMb2NrOjp1bmxvY2tGYWlybHlTbG93KCkKIHsKICAgICAvLyBIZWFwIGFsbG9jYXRpb25z
IGFyZSBmb3JiaWRkZW4gb24gdGhlIGNlcnRhaW4gdGhyZWFkcyAoZS5nLiBhdWRpbyByZW5kZXJp
bmcgdGhyZWFkKSBmb3IgcGVyZm9ybWFuY2UgcmVhc29ucyBzbyB3ZSBuZWVkIHRvCiAgICAgLy8g
ZXhwbGljaXRseSBhbGxvdyB0aGUgZm9sbG93aW5nIGFsbG9jYXRpb24ocykuIEluIHNvbWUgcmFy
ZSBjYXNlcywgdGhlIHVubG9ja1Nsb3coKSBhbGdvcml0aCBtYXkgY2F1c2UgYWxsb2NhdGlvbnMu
CkBAIC01OCw3ICs1OCw3IEBAIHZvaWQgTG9jazo6dW5sb2NrRmFpcmx5U2xvdygpCiAgICAgRGVm
YXVsdExvY2tBbGdvcml0aG06OnVubG9ja1Nsb3cobV9ieXRlLCBEZWZhdWx0TG9ja0FsZ29yaXRo
bTo6RmFpcik7CiB9CiAKLXZvaWQgTG9jazo6c2FmZXBvaW50U2xvdygpCit2b2lkIFVuY2hlY2tl
ZExvY2s6OnNhZmVwb2ludFNsb3coKQogewogICAgIERlZmF1bHRMb2NrQWxnb3JpdGhtOjpzYWZl
cG9pbnRTbG93KG1fYnl0ZSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9Mb2NrLmgg
Yi9Tb3VyY2UvV1RGL3d0Zi9Mb2NrLmgKaW5kZXggNjBmZGFhYmQ5MGRhZTdmMmQ0ZDQ4ZjMxYjgw
MzRkZTNiZjk1ZjY3ZC4uZmRjMGE0Zjc3MGNlNjMyYTAxZjFiYjEzNWFjZGE5YjMzY2ZlNDkzMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvTG9jay5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL0xv
Y2suaApAQCAtMjUsOSArMjUsMTEgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlIDxtdXRl
eD4KICNpbmNsdWRlIDx3dGYvTG9ja0FsZ29yaXRobS5oPgogI2luY2x1ZGUgPHd0Zi9Mb2NrZXIu
aD4KICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KKyNpbmNsdWRlIDx3dGYvVGhyZWFkU2Fm
ZXR5QW5hbHlzaXMuaD4KIAogbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgewogc3RydWN0IExvY2tJ
bnNwZWN0b3I7CkBAIC00NywxMSArNDksMTEgQEAgdHlwZWRlZiBMb2NrQWxnb3JpdGhtPHVpbnQ4
X3QsIDEsIDI+IERlZmF1bHRMb2NrQWxnb3JpdGhtOwogLy8gYXQgd29yc3Qgb25lIGNhbGwgdG8g
dW5sb2NrKCkgcGVyIG1pbGxpc2Vjb25kIHdpbGwgZG8gYSBkaXJlY3QgaGFuZC1vZmYgdG8gdGhl
IHRocmVhZCB0aGF0IGlzIGF0CiAvLyB0aGUgaGVhZCBvZiB0aGUgcXVldWUuIFdoZW4gdGhlcmUg
YXJlIGNvbGxpc2lvbnMsIGVhY2ggY29sbGlzaW9uIGluY3JlYXNlcyB0aGUgZmFpciB1bmxvY2sg
ZGVsYXkKIC8vIGJ5IG9uZSBtaWxsaXNlY29uZCBpbiB0aGUgd29yc3QgY2FzZS4KLWNsYXNzIExv
Y2sgewotICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKExvY2spOworY2xhc3MgVW5jaGVja2VkTG9j
ayB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoVW5jaGVja2VkTG9jayk7CiAgICAgV1RGX01B
S0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgY29uc3RleHByIExvY2soKSA9IGRlZmF1
bHQ7CisgICAgY29uc3RleHByIFVuY2hlY2tlZExvY2soKSA9IGRlZmF1bHQ7CiAKICAgICB2b2lk
IGxvY2soKQogICAgIHsKQEAgLTEzMSw5ICsxMzMsODQgQEAgcHJpdmF0ZToKICAgICBBdG9taWM8
dWludDhfdD4gbV9ieXRlIHsgMCB9OwogfTsKIAorLy8gQSBsb2NrIHR5cGUgd2l0aCBzdXBwb3J0
IGZvciB0aHJlYWQgc2FmZXR5IGFuYWx5c2lzLgorLy8gVG8gYW5ub3RhdGUgYSBtZW1iZXIgdmFy
aWFibGUgb3IgYSBnbG9iYWwgdmFyaWFibGUgd2l0aCB0aHJlYWQgb3duZXJzaGlwIGluZm9ybWF0
aW9uLAorLy8gdXNlIGxvY2sgY2FwYWJpbGl0eSBhbm5vdGF0aW9ucyBkZWZpbmVkIGluIFRocmVh
ZFNhZmV0eUFuYWx5c2lzLmguCisvLworLy8gRXhhbXBsZToKKy8vICAgY2xhc3MgTXlWYWx1ZSA6
IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxNeVZhbHVlPgorLy8gICB7CisvLyAgIHB1Ymxp
YzoKKy8vICAgICAgIHZvaWQgc2V0VmFsdWUoaW50IHZhbHVlKSB7IExvY2tlciBob2xkTG9jayB7
IG1fbG9jayB9OyBtX3ZhbHVlID0gdmFsdWU7ICB9CisvLyAgICAgICB2b2lkIG1heWJlU2V0T3Ro
ZXJWYWx1ZShpbnQgdmFsdWUpCisvLyAgICAgICB7CisvLyAgICAgICAgICAgaWYgKCFtX2xvY2su
dHJ5TG9jaygpKQorLy8gICAgICAgICAgICAgIHJldHVybjsKKy8vICAgICAgICAgICBMb2NrZXIg
bG9ja2VyIHsgQWRvcHRMb2NrLCBtX290aGVyTG9jayB9OworLy8gICAgICAgICAgIG1fb3RoZXJW
YWx1ZSA9IHZhbHVlOworLy8gICAgICAgfQorLy8gICBwcml2YXRlOgorLy8gICAgICAgTG9jayBt
X2xvY2s7CisvLyAgICAgICBpbnQgbV92YWx1ZSBXVEZfR1VBUkRFRF9CWV9MT0NLKG1fbG9jaykg
eyA3NyB9OworLy8gICAgICAgaW50IG1fb3RoZXJWYWx1ZSBXVEZfR1VBUkRFRF9CWV9MT0NLKG1f
bG9jaykgeyA4OCB9OworLy8gICB9OworY2xhc3MgV1RGX0NBUEFCSUxJVFlfTE9DSyBMb2NrIDog
VW5jaGVja2VkTG9jayB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoTG9jayk7CisgICAgV1RG
X01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgY29uc3RleHByIExvY2soKSA9IGRl
ZmF1bHQ7CisgICAgdm9pZCBsb2NrKCkgV1RGX0FDUVVJUkVTX0xPQ0soKSB7IFVuY2hlY2tlZExv
Y2s6OmxvY2soKTsgfQorICAgIGJvb2wgdHJ5TG9jaygpIFdURl9BQ1FVSVJFU19MT0NLX0lGKHRy
dWUpIHsgcmV0dXJuIFVuY2hlY2tlZExvY2s6OnRyeUxvY2soKTsgfQorICAgIGJvb2wgdHJ5X2xv
Y2soKSBXVEZfQUNRVUlSRVNfTE9DS19JRih0cnVlKSB7IHJldHVybiBVbmNoZWNrZWRMb2NrOjp0
cnlfbG9jaygpOyB9IC8vIE5PTElOVDogSW50ZW50aW9uYWwgZGV2aWF0aW9uIHRvIHN1cHBvcnQg
c3RkOjpzY29wZWRfbG9jay4KKyAgICB2b2lkIHVubG9jaygpIFdURl9SRUxFQVNFU19MT0NLKCkg
eyBVbmNoZWNrZWRMb2NrOjp1bmxvY2soKTsgfQorICAgIHZvaWQgdW5sb2NrRmFpcmx5KCkgV1RG
X1JFTEVBU0VTX0xPQ0soKSB7IFVuY2hlY2tlZExvY2s6OnVubG9ja0ZhaXJseSgpOyB9CisgICAg
dm9pZCBzYWZlcG9pbnQoKSB7IFVuY2hlY2tlZExvY2s6OnNhZmVwb2ludCgpOyB9CisgICAgYm9v
bCBpc0hlbGQoKSBjb25zdCB7IHJldHVybiBVbmNoZWNrZWRMb2NrOjppc0hlbGQoKTsgfQorICAg
IGJvb2wgaXNMb2NrZWQoKSBjb25zdCB7IHJldHVybiBVbmNoZWNrZWRMb2NrOjppc0xvY2tlZCgp
OyB9CisgICAgZnJpZW5kIGNsYXNzIENvbmRpdGlvbjsKKyAgICBmcmllbmQgc3RydWN0IFRlc3RX
ZWJLaXRBUEk6OkxvY2tJbnNwZWN0b3I7Cit9OworCisvLyBBc3NlcnRzIHRoYXQgdGhlIGxvY2sg
aXMgaGVsZC4KKy8vIFRoaXMgY2FuIGJlIHVzZWQgaW4gY2FzZXMgd2hlcmUgdGhlIGFubm90YXRp
b25zIGNhbm5vdCBiZSBhZGRlZCB0byB0aGUgZnVuY3Rpb24KKy8vIGRlY2xhcmF0aW9uLgoraW5s
aW5lIHZvaWQgYXNzZXJ0SXNIZWxkKGNvbnN0IExvY2smIGxvY2spIFdURl9BU1NFUlRTX0FDUVVJ
UkVEX0xPQ0sobG9jaykgeyBBU1NFUlRfVU5VU0VEKGxvY2ssIGxvY2suaXNIZWxkKCkpOyB9CisK
Ky8vIExvY2tlciBzcGVjaWFsaXphdGlvbiB0byB1c2Ugd2l0aCBMb2NrLgorLy8gTm9uLW1vdmFi
bGUgc2ltcGxlIHNjb3BlZCBsb2NrIGhvbGRlci4KKy8vIEV4YW1wbGU6IExvY2tlciBsb2NrZXIg
eyBtX2xvY2sgfTsKK3RlbXBsYXRlIDw+CitjbGFzcyBXVEZfQ0FQQUJJTElUWV9TQ09QRURfTE9D
SyBMb2NrZXI8TG9jaz4geworcHVibGljOgorICAgIGV4cGxpY2l0IExvY2tlcihMb2NrJiBsb2Nr
KSBXVEZfQUNRVUlSRVNfTE9DSyhsb2NrKQorICAgICAgICA6IG1fbG9jayhsb2NrKQorICAgIHsK
KyAgICAgICAgbV9sb2NrLmxvY2soKTsKKyAgICB9CisgICAgTG9ja2VyKEFkb3B0TG9ja1RhZywg
TG9jayYgbG9jaykgV1RGX1JFUVVJUkVTX0xPQ0sobG9jaykKKyAgICAgICAgOiBtX2xvY2sobG9j
aykKKyAgICB7CisgICAgfQorICAgIH5Mb2NrZXIoKSBXVEZfUkVMRUFTRVNfTE9DSygpCisgICAg
eworICAgICAgICBtX2xvY2sudW5sb2NrKCk7CisgICAgfQorICAgIExvY2tlcihjb25zdCBMb2Nr
ZXI8TG9jaz4mKSA9IGRlbGV0ZTsKKyAgICBMb2NrZXImIG9wZXJhdG9yPShjb25zdCBMb2NrZXI8
TG9jaz4mKSA9IGRlbGV0ZTsKK3ByaXZhdGU6CisgICAgTG9jayYgbV9sb2NrOworfTsKKworTG9j
a2VyKExvY2smKSAtPiBMb2NrZXI8TG9jaz47CitMb2NrZXIoQWRvcHRMb2NrVGFnLCBMb2NrJikg
LT4gTG9ja2VyPExvY2s+OworCiB1c2luZyBMb2NrSG9sZGVyID0gTG9ja2VyPExvY2s+OwordXNp
bmcgVW5jaGVja2VkTG9ja0hvbGRlciA9IExvY2tlcjxVbmNoZWNrZWRMb2NrPjsKIAogfSAvLyBu
YW1lc3BhY2UgV1RGCiAKK3VzaW5nIFdURjo6VW5jaGVja2VkTG9jazsKIHVzaW5nIFdURjo6TG9j
azsKIHVzaW5nIFdURjo6TG9ja0hvbGRlcjsKK3VzaW5nIFdURjo6VW5jaGVja2VkTG9ja0hvbGRl
cjsKK3VzaW5nIFdURjo6YXNzZXJ0SXNIZWxkOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYv
TWV0YUFsbG9jYXRvci5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9NZXRhQWxsb2NhdG9yLmNwcAppbmRl
eCBlZWY4OWI3N2U3YmRkZmNkNjc2NWQ2NzNhYTU2NWEwNjc3Y2Q3MGE0Li5kOWNkNTk5MmYzYTBk
NTFkMDQ2ZTg3MDFhMTNiZDI3YTc5MDIyYWQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9N
ZXRhQWxsb2NhdG9yLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9NZXRhQWxsb2NhdG9yLmNwcApA
QCAtNjIsNyArNjIsNyBAQCB2b2lkIE1ldGFBbGxvY2F0b3JUcmFja2VyOjpyZWxlYXNlKE1ldGFB
bGxvY2F0b3JIYW5kbGUmIGhhbmRsZSkKICAgICBtX2FsbG9jYXRpb25zLnJlbW92ZSgmaGFuZGxl
KTsKIH0KIAotdm9pZCBNZXRhQWxsb2NhdG9yOjpyZWxlYXNlKGNvbnN0IExvY2tIb2xkZXImLCBN
ZXRhQWxsb2NhdG9ySGFuZGxlJiBoYW5kbGUpCit2b2lkIE1ldGFBbGxvY2F0b3I6OnJlbGVhc2Uo
Y29uc3QgVW5jaGVja2VkTG9ja0hvbGRlciYsIE1ldGFBbGxvY2F0b3JIYW5kbGUmIGhhbmRsZSkK
IHsKICAgICBpZiAoaGFuZGxlLnNpemVJbkJ5dGVzKCkpIHsKICAgICAgICAgTWVtb3J5UHRyIHN0
YXJ0ID0gaGFuZGxlLnN0YXJ0KCk7CkBAIC0xMjQsNyArMTI0LDcgQEAgdm9pZCBNZXRhQWxsb2Nh
dG9ySGFuZGxlOjpkdW1wKFByaW50U3RyZWFtJiBvdXQpIGNvbnN0CiAgICAgb3V0LnByaW50KFJh
d1BvaW50ZXIoc3RhcnQoKS51bnRhZ2dlZFB0cigpKSwgIi4uLiIsIFJhd1BvaW50ZXIoZW5kKCku
dW50YWdnZWRQdHIoKSkpOwogfQogCi1NZXRhQWxsb2NhdG9yOjpNZXRhQWxsb2NhdG9yKExvY2sm
IGxvY2ssIHNpemVfdCBhbGxvY2F0aW9uR3JhbnVsZSwgc2l6ZV90IHBhZ2VTaXplKQorTWV0YUFs
bG9jYXRvcjo6TWV0YUFsbG9jYXRvcihVbmNoZWNrZWRMb2NrJiBsb2NrLCBzaXplX3QgYWxsb2Nh
dGlvbkdyYW51bGUsIHNpemVfdCBwYWdlU2l6ZSkKICAgICA6IG1fYWxsb2NhdGlvbkdyYW51bGUo
YWxsb2NhdGlvbkdyYW51bGUpCiAgICAgLCBtX3BhZ2VTaXplKHBhZ2VTaXplKQogICAgICwgbV9i
eXRlc0FsbG9jYXRlZCgwKQpAQCAtMTU0LDcgKzE1NCw3IEBAIE1ldGFBbGxvY2F0b3I6Ok1ldGFB
bGxvY2F0b3IoTG9jayYgbG9jaywgc2l6ZV90IGFsbG9jYXRpb25HcmFudWxlLCBzaXplX3QgcGFn
ZVNpCiAgICAgQVNTRVJUKHN0YXRpY19jYXN0PHNpemVfdD4oMSkgPDwgbV9sb2dBbGxvY2F0aW9u
R3JhbnVsZSA9PSBtX2FsbG9jYXRpb25HcmFudWxlKTsKIH0KIAotUmVmUHRyPE1ldGFBbGxvY2F0
b3JIYW5kbGU+IE1ldGFBbGxvY2F0b3I6OmFsbG9jYXRlKGNvbnN0IExvY2tIb2xkZXImLCBzaXpl
X3Qgc2l6ZUluQnl0ZXMpCitSZWZQdHI8TWV0YUFsbG9jYXRvckhhbmRsZT4gTWV0YUFsbG9jYXRv
cjo6YWxsb2NhdGUoY29uc3QgVW5jaGVja2VkTG9ja0hvbGRlciYsIHNpemVfdCBzaXplSW5CeXRl
cykKIHsKICAgICBpZiAoIXNpemVJbkJ5dGVzKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKQEAg
LTE5OCw3ICsxOTgsNyBAQCBSZWZQdHI8TWV0YUFsbG9jYXRvckhhbmRsZT4gTWV0YUFsbG9jYXRv
cjo6YWxsb2NhdGUoY29uc3QgTG9ja0hvbGRlciYsIHNpemVfdCBzaQogICAgIHJldHVybiBoYW5k
bGU7CiB9CiAKLU1ldGFBbGxvY2F0b3I6OlN0YXRpc3RpY3MgTWV0YUFsbG9jYXRvcjo6Y3VycmVu
dFN0YXRpc3RpY3MoY29uc3QgTG9ja0hvbGRlciYpCitNZXRhQWxsb2NhdG9yOjpTdGF0aXN0aWNz
IE1ldGFBbGxvY2F0b3I6OmN1cnJlbnRTdGF0aXN0aWNzKGNvbnN0IFVuY2hlY2tlZExvY2tIb2xk
ZXImKQogewogICAgIFN0YXRpc3RpY3MgcmVzdWx0OwogICAgIHJlc3VsdC5ieXRlc0FsbG9jYXRl
ZCA9IG1fYnl0ZXNBbGxvY2F0ZWQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9NZXRhQWxs
b2NhdG9yLmggYi9Tb3VyY2UvV1RGL3d0Zi9NZXRhQWxsb2NhdG9yLmgKaW5kZXggNWZiNzJjMjgw
ZWRjMDZkZWE4OTMxYjZhM2MwOWUxZmY3YmY1YzhkMS4uZWRmZWM3YzNiODk5NjI5ZjA3ZGU3YWEw
OGQwYzYzMjI3NmY4YzQwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvTWV0YUFsbG9jYXRv
ci5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL01ldGFBbGxvY2F0b3IuaApAQCAtNjUsNyArNjUsNyBA
QCBwdWJsaWM6CiAgICAgdXNpbmcgRnJlZVNwYWNlUHRyID0gTWV0YUFsbG9jYXRvclB0cjxGcmVl
U3BhY2VQdHJUYWc+OwogICAgIHVzaW5nIE1lbW9yeVB0ciA9IE1ldGFBbGxvY2F0b3JIYW5kbGU6
Ok1lbW9yeVB0cjsKIAotICAgIFdURl9FWFBPUlRfUFJJVkFURSBNZXRhQWxsb2NhdG9yKExvY2sm
LCBzaXplX3QgYWxsb2NhdGlvbkdyYW51bGUsIHNpemVfdCBwYWdlU2l6ZSA9IFdURjo6cGFnZVNp
emUoKSk7CisgICAgV1RGX0VYUE9SVF9QUklWQVRFIE1ldGFBbGxvY2F0b3IoVW5jaGVja2VkTG9j
ayYsIHNpemVfdCBhbGxvY2F0aW9uR3JhbnVsZSwgc2l6ZV90IHBhZ2VTaXplID0gV1RGOjpwYWdl
U2l6ZSgpKTsKICAgICAKICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdmlydHVhbCB+TWV0YUFsbG9j
YXRvcigpOwogICAgIApAQCAtNzQsNyArNzQsNyBAQCBwdWJsaWM6CiAgICAgICAgIExvY2tlciBs
b2NrZXIgeyBtX2xvY2sgfTsKICAgICAgICAgcmV0dXJuIGFsbG9jYXRlKGxvY2tlciwgc2l6ZUlu
Qnl0ZXMpOwogICAgIH0KLSAgICBXVEZfRVhQT1JUX1BSSVZBVEUgUmVmUHRyPE1ldGFBbGxvY2F0
b3JIYW5kbGU+IGFsbG9jYXRlKGNvbnN0IExvY2tIb2xkZXImLCBzaXplX3Qgc2l6ZUluQnl0ZXMp
OworICAgIFdURl9FWFBPUlRfUFJJVkFURSBSZWZQdHI8TWV0YUFsbG9jYXRvckhhbmRsZT4gYWxs
b2NhdGUoY29uc3QgVW5jaGVja2VkTG9ja0hvbGRlciYsIHNpemVfdCBzaXplSW5CeXRlcyk7CiAK
ICAgICB2b2lkIHRyYWNrQWxsb2NhdGlvbnMoTWV0YUFsbG9jYXRvclRyYWNrZXIqIHRyYWNrZXIp
CiAgICAgewpAQCAtOTgsNyArOTgsNyBAQCBwdWJsaWM6CiAgICAgICAgIExvY2tlciBsb2NrZXIg
eyBtX2xvY2sgfTsKICAgICAgICAgcmV0dXJuIGN1cnJlbnRTdGF0aXN0aWNzKGxvY2tlcik7CiAg
ICAgfQotICAgIFdURl9FWFBPUlRfUFJJVkFURSBTdGF0aXN0aWNzIGN1cnJlbnRTdGF0aXN0aWNz
KGNvbnN0IExvY2tIb2xkZXImKTsKKyAgICBXVEZfRVhQT1JUX1BSSVZBVEUgU3RhdGlzdGljcyBj
dXJyZW50U3RhdGlzdGljcyhjb25zdCBVbmNoZWNrZWRMb2NrSG9sZGVyJik7CiAKICAgICAvLyBB
ZGQgbW9yZSBmcmVlIHNwYWNlIHRvIHRoZSBhbGxvY2F0b3IuIENhbGwgdGhpcyBkaXJlY3RseSBm
cm9tCiAgICAgLy8gdGhlIGNvbnN0cnVjdG9yIGlmIHlvdSB3aXNoIHRvIG9wZXJhdGUgdGhlIGFs
bG9jYXRvciB3aXRoaW4gYQpAQCAtMTM0LDcgKzEzNCw3IEBAIHByb3RlY3RlZDoKICAgICAvLyBh
cyB0aGVyZSBhcmUgSGFuZGxlcyB0aGF0IHJlZmVyIHRvIGl0LgogCiAgICAgLy8gUmVsZWFzZSBh
IE1ldGFBbGxvY2F0b3JIYW5kbGUuCi0gICAgV1RGX0VYUE9SVF9QUklWQVRFIHZpcnR1YWwgdm9p
ZCByZWxlYXNlKGNvbnN0IExvY2tIb2xkZXImLCBNZXRhQWxsb2NhdG9ySGFuZGxlJik7CisgICAg
V1RGX0VYUE9SVF9QUklWQVRFIHZpcnR1YWwgdm9pZCByZWxlYXNlKGNvbnN0IFVuY2hlY2tlZExv
Y2tIb2xkZXImLCBNZXRhQWxsb2NhdG9ySGFuZGxlJik7CiBwcml2YXRlOgogICAgIAogICAgIGZy
aWVuZCBjbGFzcyBNZXRhQWxsb2NhdG9ySGFuZGxlOwpAQCAtMTk3LDcgKzE5Nyw3IEBAIHByaXZh
dGU6CiAgICAgc2l6ZV90IG1fYnl0ZXNSZXNlcnZlZDsKICAgICBzaXplX3QgbV9ieXRlc0NvbW1p
dHRlZDsKICAgICAKLSAgICBMb2NrJiBtX2xvY2s7CisgICAgVW5jaGVja2VkTG9jayYgbV9sb2Nr
OwogCiAgICAgTWV0YUFsbG9jYXRvclRyYWNrZXIqIG1fdHJhY2tlciB7IG51bGxwdHIgfTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvUGFyYWxsZWxIZWxwZXJQb29sLmNwcCBiL1NvdXJj
ZS9XVEYvd3RmL1BhcmFsbGVsSGVscGVyUG9vbC5jcHAKaW5kZXggNDQzZDczMTNlNmJhZDAyODQz
NDllNjEwN2YyMDM5N2Y5M2Y0M2E4ZC4uYzczNDY4NTU5MzE0ZDA5NzAwYmRkOGE1ZDBhNTUyMDFl
MGQ1MGM5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvUGFyYWxsZWxIZWxwZXJQb29sLmNw
cAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9QYXJhbGxlbEhlbHBlclBvb2wuY3BwCkBAIC0xMjIsNyAr
MTIyLDcgQEAgdm9pZCBQYXJhbGxlbEhlbHBlckNsaWVudDo6cnVuVGFzayhjb25zdCBSZWZQdHI8
U2hhcmVkVGFzazx2b2lkICgpPj4mIHRhc2spCiB9CiAKIFBhcmFsbGVsSGVscGVyUG9vbDo6UGFy
YWxsZWxIZWxwZXJQb29sKENTdHJpbmcmJiB0aHJlYWROYW1lKQotICAgIDogbV9sb2NrKEJveDxM
b2NrPjo6Y3JlYXRlKCkpCisgICAgOiBtX2xvY2soQm94PFVuY2hlY2tlZExvY2s+OjpjcmVhdGUo
KSkKICAgICAsIG1fd29ya0F2YWlsYWJsZUNvbmRpdGlvbihBdXRvbWF0aWNUaHJlYWRDb25kaXRp
b246OmNyZWF0ZSgpKQogICAgICwgbV90aHJlYWROYW1lKFdURk1vdmUodGhyZWFkTmFtZSkpCiB7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9QYXJhbGxlbEhlbHBlclBvb2wuaCBiL1NvdXJj
ZS9XVEYvd3RmL1BhcmFsbGVsSGVscGVyUG9vbC5oCmluZGV4IDFlNzU5OWM4M2Q2NzEyMWM3ZTZi
ZmU4N2NjYTkxZWY2Y2U4NmU0MDcuLjY2NGZhZGU4NTM5OTNhYjRiMDU5NTQ4NzIyMTRmMzg3Yzlh
NmQwNTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1BhcmFsbGVsSGVscGVyUG9vbC5oCisr
KyBiL1NvdXJjZS9XVEYvd3RmL1BhcmFsbGVsSGVscGVyUG9vbC5oCkBAIC0xOTksOSArMTk5LDkg
QEAgcHJpdmF0ZToKICAgICBQYXJhbGxlbEhlbHBlckNsaWVudCogZ2V0Q2xpZW50V2l0aFRhc2so
Y29uc3QgQWJzdHJhY3RMb2NrZXImKTsKICAgICBQYXJhbGxlbEhlbHBlckNsaWVudCogd2FpdEZv
ckNsaWVudFdpdGhUYXNrKGNvbnN0IEFic3RyYWN0TG9ja2VyJik7CiAgICAgCi0gICAgQm94PExv
Y2s+IG1fbG9jazsgLy8gQXV0b21hdGljVGhyZWFkIHdhbnRzIHRoaXMgaW4gYSBib3ggZm9yIHNh
ZmV0eS4KKyAgICBCb3g8VW5jaGVja2VkTG9jaz4gbV9sb2NrOyAvLyBBdXRvbWF0aWNUaHJlYWQg
d2FudHMgdGhpcyBpbiBhIGJveCBmb3Igc2FmZXR5LgogICAgIFJlZjxBdXRvbWF0aWNUaHJlYWRD
b25kaXRpb24+IG1fd29ya0F2YWlsYWJsZUNvbmRpdGlvbjsKLSAgICBDb25kaXRpb24gbV93b3Jr
Q29tcGxldGVDb25kaXRpb247CisgICAgVW5jaGVja2VkQ29uZGl0aW9uIG1fd29ya0NvbXBsZXRl
Q29uZGl0aW9uOwogCiAgICAgV2Vha1JhbmRvbSBtX3JhbmRvbTsKICAgICAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XVEYvd3RmL1JlY3Vyc2l2ZUxvY2tBZGFwdGVyLmggYi9Tb3VyY2UvV1RGL3d0Zi9S
ZWN1cnNpdmVMb2NrQWRhcHRlci5oCmluZGV4IDFlZTEyZDQxOTQ3MjZkMjMyNDkyZDY1NDQ0MTZl
ZjY2MTQ4YmQ2NmEuLmNhN2JjNDU1NDQ3YjE1MjIwN2NlMWFiN2YwY2I0NGQ0ZWQxOGU4ZGUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1JlY3Vyc2l2ZUxvY2tBZGFwdGVyLmgKKysrIGIvU291
cmNlL1dURi93dGYvUmVjdXJzaXZlTG9ja0FkYXB0ZXIuaApAQCAtODksNyArODksNyBAQCBwcml2
YXRlOgogICAgIExvY2tUeXBlIG1fbG9jazsKIH07CiAKLXVzaW5nIFJlY3Vyc2l2ZUxvY2sgPSBS
ZWN1cnNpdmVMb2NrQWRhcHRlcjxMb2NrPjsKK3VzaW5nIFJlY3Vyc2l2ZUxvY2sgPSBSZWN1cnNp
dmVMb2NrQWRhcHRlcjxVbmNoZWNrZWRMb2NrPjsKIAogfSAvLyBuYW1lc3BhY2UgV1RGCiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1dvcmtlclBvb2wuY3BwIGIvU291cmNlL1dURi93dGYv
V29ya2VyUG9vbC5jcHAKaW5kZXggOGE5YzFmZGE3NGE3M2IyYzVhYjVjZGEyZDhlNDYwOWFiZTgw
YTMwYi4uMjE5ZGJmMTUxZDY2MzdjNjdhM2U0NzZmZDEzZTNkMWI4OGI0MzU3YSAxMDA2NDQKLS0t
IGEvU291cmNlL1dURi93dGYvV29ya2VyUG9vbC5jcHAKKysrIGIvU291cmNlL1dURi93dGYvV29y
a2VyUG9vbC5jcHAKQEAgLTMyLDcgKzMyLDcgQEAgY2xhc3MgV29ya2VyUG9vbDo6V29ya2VyIGZp
bmFsIDogcHVibGljIEF1dG9tYXRpY1RocmVhZCB7CiBwdWJsaWM6CiAgICAgZnJpZW5kIGNsYXNz
IFdvcmtlclBvb2w7CiAKLSAgICBXb3JrZXIoY29uc3QgQWJzdHJhY3RMb2NrZXImIGxvY2tlciwg
V29ya2VyUG9vbCYgcG9vbCwgQm94PExvY2s+IGxvY2ssIFJlZjxBdXRvbWF0aWNUaHJlYWRDb25k
aXRpb24+JiYgY29uZGl0aW9uLCBTZWNvbmRzIHRpbWVvdXQpCisgICAgV29ya2VyKGNvbnN0IEFi
c3RyYWN0TG9ja2VyJiBsb2NrZXIsIFdvcmtlclBvb2wmIHBvb2wsIEJveDxVbmNoZWNrZWRMb2Nr
PiBsb2NrLCBSZWY8QXV0b21hdGljVGhyZWFkQ29uZGl0aW9uPiYmIGNvbmRpdGlvbiwgU2Vjb25k
cyB0aW1lb3V0KQogICAgICAgICA6IEF1dG9tYXRpY1RocmVhZChsb2NrZXIsIGxvY2ssIFdURk1v
dmUoY29uZGl0aW9uKSwgdGltZW91dCkKICAgICAgICAgLCBtX3Bvb2wocG9vbCkKICAgICB7CkBA
IC04Miw3ICs4Miw3IEBAIHByaXZhdGU6CiB9OwogCiBXb3JrZXJQb29sOjpXb3JrZXJQb29sKEFT
Q0lJTGl0ZXJhbCBuYW1lLCB1bnNpZ25lZCBudW1iZXJPZldvcmtlcnMsIFNlY29uZHMgdGltZW91
dCkKLSAgICA6IG1fbG9jayhCb3g8TG9jaz46OmNyZWF0ZSgpKQorICAgIDogbV9sb2NrKEJveDxV
bmNoZWNrZWRMb2NrPjo6Y3JlYXRlKCkpCiAgICAgLCBtX2NvbmRpdGlvbihBdXRvbWF0aWNUaHJl
YWRDb25kaXRpb246OmNyZWF0ZSgpKQogICAgICwgbV90aW1lb3V0KHRpbWVvdXQpCiAgICAgLCBt
X25hbWUobmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1dvcmtlclBvb2wuaCBiL1Nv
dXJjZS9XVEYvd3RmL1dvcmtlclBvb2wuaAppbmRleCA2MjM1ZTczMWVkNzViODAxMjUwOTUzNTkw
NjhiMDhkNGMxZGNmZWMyLi43YTQwNDJiNDZiMTY4ODAyM2YxY2VmOWU2NDJhYjJjNDhjODg5M2Q5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9Xb3JrZXJQb29sLmgKKysrIGIvU291cmNlL1dU
Ri93dGYvV29ya2VyUG9vbC5oCkBAIC01Nyw3ICs1Nyw3IEBAIHByaXZhdGU6CiAKICAgICBib29s
IHNob3VsZFNsZWVwKGNvbnN0IEFic3RyYWN0TG9ja2VyJik7CiAKLSAgICBCb3g8TG9jaz4gbV9s
b2NrOworICAgIEJveDxVbmNoZWNrZWRMb2NrPiBtX2xvY2s7CiAgICAgUmVmPEF1dG9tYXRpY1Ro
cmVhZENvbmRpdGlvbj4gbV9jb25kaXRpb247CiAgICAgU2Vjb25kcyBtX3RpbWVvdXQ7CiAgICAg
TW9ub3RvbmljVGltZSBtX2xhc3RUaW1lb3V0VGltZSB7IE1vbm90b25pY1RpbWU6Om5hbigpIH07
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURC
U2VydmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJT
ZXJ2ZXIuY3BwCmluZGV4IDFlZGVlZDJhM2ZhNjIyYzU4MjI0YjA2ODMwYTNhYjQzNDRjMDQ2Y2Eu
LjQ5ZDg3NjYyZmNiM2E1YWUyM2YyYTdhYjUyN2U2NTU3YzMyNmVhM2IgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJTZXJ2ZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJTZXJ2ZXIuY3BwCkBA
IC03MzMsNyArNzMzLDcgQEAgdm9pZCBJREJTZXJ2ZXI6OnJlbmFtZU9yaWdpbihjb25zdCBXZWJD
b3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIG9sZE9yaWdpbiwgY29uc3QKICAgICAgICAgRmlsZVN5
c3RlbTo6bW92ZUZpbGUob2xkT3JpZ2luUGF0aCwgbmV3T3JpZ2luUGF0aCk7CiB9CiAKLVN0b3Jh
Z2VRdW90YU1hbmFnZXI6OkRlY2lzaW9uIElEQlNlcnZlcjo6cmVxdWVzdFNwYWNlKGNvbnN0IENs
aWVudE9yaWdpbiYgb3JpZ2luLCB1aW50NjRfdCB0YXNrU2l6ZSkKK1N0b3JhZ2VRdW90YU1hbmFn
ZXI6OkRlY2lzaW9uIElEQlNlcnZlcjo6cmVxdWVzdFNwYWNlKGNvbnN0IENsaWVudE9yaWdpbiYg
b3JpZ2luLCB1aW50NjRfdCB0YXNrU2l6ZSkgV1RGX0lHTk9SRVNfVEhSRUFEX1NBRkVUWV9BTkFM
WVNJUwogewogICAgIEFTU0VSVCghaXNNYWluVGhyZWFkKCkpOwogICAgIEFTU0VSVChtX2xvY2su
aXNIZWxkKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9N
ZWRpYUVsZW1lbnRBdWRpb1NvdXJjZU5vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vTWVkaWFFbGVtZW50QXVkaW9Tb3VyY2VOb2RlLmgKaW5kZXggNzQzOWE2ZGIyODJmYmI5
NGY0MTFlNDcxNWFkYTE1OThjYjA0YmMzNC4uMDZmZTUxZDk0NGQwYjhlOWM4ZGI2MTQ2N2QxYTE4
NmM1ZGRmNDE0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9N
ZWRpYUVsZW1lbnRBdWRpb1NvdXJjZU5vZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmF1ZGlvL01lZGlhRWxlbWVudEF1ZGlvU291cmNlTm9kZS5oCkBAIC01NCw3ICs1NCw3IEBA
IHB1YmxpYzoKICAgICAvLyBBdWRpb1NvdXJjZVByb3ZpZGVyQ2xpZW50CiAgICAgdm9pZCBzZXRG
b3JtYXQoc2l6ZV90IG51bWJlck9mQ2hhbm5lbHMsIGZsb2F0IHNhbXBsZVJhdGUpIG92ZXJyaWRl
OwogCi0gICAgTG9jayYgcHJvY2Vzc0xvY2soKSB7IHJldHVybiBtX3Byb2Nlc3NMb2NrOyB9Cisg
ICAgVW5jaGVja2VkTG9jayYgcHJvY2Vzc0xvY2soKSB7IHJldHVybiBtX3Byb2Nlc3NMb2NrOyB9
CiAKIHByaXZhdGU6CiAgICAgTWVkaWFFbGVtZW50QXVkaW9Tb3VyY2VOb2RlKEJhc2VBdWRpb0Nv
bnRleHQmLCBSZWY8SFRNTE1lZGlhRWxlbWVudD4mJik7CkBAIC03MCw3ICs3MCw3IEBAIHByaXZh
dGU6CiAgICAgYm9vbCB3b3VsZFRhaW50T3JpZ2luKCk7CiAKICAgICBSZWY8SFRNTE1lZGlhRWxl
bWVudD4gbV9tZWRpYUVsZW1lbnQ7Ci0gICAgTG9jayBtX3Byb2Nlc3NMb2NrOworICAgIFVuY2hl
Y2tlZExvY2sgbV9wcm9jZXNzTG9jazsKIAogICAgIHVuc2lnbmVkIG1fc291cmNlTnVtYmVyT2ZD
aGFubmVscyB7IDAgfTsKICAgICBkb3VibGUgbV9zb3VyY2VTYW1wbGVSYXRlIHsgMCB9OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9PcmlnaW5Mb2NrLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvT3JpZ2luTG9jay5jcHAKaW5k
ZXggYTIxYmNkYjc4Mzg2YzgxMGVjNTk5NDFjMjc1ZjRlZmJhZmYyM2ZiMy4uNzUzZTRlNWFjODY2
MjgzYTRjNzNmNDRhZjlhYTRlY2RmNWQxNWFlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJkYXRhYmFzZS9PcmlnaW5Mb2NrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmRhdGFiYXNlL09yaWdpbkxvY2suY3BwCkBAIC00Myw3ICs0Myw3IEBAIE9yaWdp
bkxvY2s6Ok9yaWdpbkxvY2soU3RyaW5nIG9yaWdpblBhdGgpCiAKIE9yaWdpbkxvY2s6On5Pcmln
aW5Mb2NrKCkgPSBkZWZhdWx0OwogCi12b2lkIE9yaWdpbkxvY2s6OmxvY2soKQordm9pZCBPcmln
aW5Mb2NrOjpsb2NrKCkgV1RGX0lHTk9SRVNfVEhSRUFEX1NBRkVUWV9BTkFMWVNJUwogewogICAg
IG1fbXV0ZXgubG9jaygpOwogCkBAIC01OSw3ICs1OSw3IEBAIHZvaWQgT3JpZ2luTG9jazo6bG9j
aygpCiAjZW5kaWYKIH0KIAotdm9pZCBPcmlnaW5Mb2NrOjp1bmxvY2soKQordm9pZCBPcmlnaW5M
b2NrOjp1bmxvY2soKSBXVEZfSUdOT1JFU19USFJFQURfU0FGRVRZX0FOQUxZU0lTCiB7CiAjaWYg
VVNFKEZJTEVfTE9DSykKICAgICAvLyBJZiB0aGUgZmlsZSBkZXNjcmlwdG9yIHdhcyB1bmluaXRp
YWxpemVkLCB0aGVuIHRoYXQgbWVhbnMgdGhlIGRpcmVjdG9yeQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0LmgKaW5kZXggMTY0YzcyMzg2NDZhMDBhM2Qw
NWVhMWJhNDFjOTcwNjA1NWQ0MTRlNC4uOTU2ZDUxYWQ0ODBkNGRkMmMwYTg5MzhkZWFmNDRkYWFi
YWE3NTZkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01HbG9i
YWxPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9i
amVjdC5oCkBAIC01OCw3ICs1OCw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgdm9pZCBkZXN0cm95
KEpTQzo6SlNDZWxsKik7CiAKIHB1YmxpYzoKLSAgICBMb2NrJiBnY0xvY2soKSB7IHJldHVybiBt
X2djTG9jazsgfQorICAgIFVuY2hlY2tlZExvY2smIGdjTG9jaygpIHsgcmV0dXJuIG1fZ2NMb2Nr
OyB9CiAKICAgICBKU0RPTVN0cnVjdHVyZU1hcCYgc3RydWN0dXJlcyhjb25zdCBBYnN0cmFjdExv
Y2tlciYpIHsgcmV0dXJuIG1fc3RydWN0dXJlczsgfQogICAgIEpTRE9NQ29uc3RydWN0b3JNYXAm
IGNvbnN0cnVjdG9ycyhjb25zdCBBYnN0cmFjdExvY2tlciYpIHsgcmV0dXJuIG1fY29uc3RydWN0
b3JzOyB9CkBAIC0xMjEsNyArMTIxLDcgQEAgcHJvdGVjdGVkOgogCiAgICAgUmVmPERPTVdyYXBw
ZXJXb3JsZD4gbV93b3JsZDsKICAgICB1aW50OF90IG1fd29ybGRJc05vcm1hbDsKLSAgICBMb2Nr
IG1fZ2NMb2NrOworICAgIFVuY2hlY2tlZExvY2sgbV9nY0xvY2s7CiAgICAgSlNDOjpXcml0ZUJh
cnJpZXI8SlNDOjpKU1Byb3h5PiBtX3Byb3h5OwogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCmlu
ZGV4IDdlYWUzYTExYWVjZmIyYWFkOTlmZjE5MmI0NTg3ZDk2NzVjZmRmYjcuLmEyZTVjYTNmMTIx
NjgzODA5ODMyNDBmZmJhMWU0ZmRhNzAzMjVmNGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Ob2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKQEAgLTIyMTEs
NyArMjIxMSw3IEBAIHN0YXRpYyBFdmVudFRhcmdldERhdGFNYXAmIGV2ZW50VGFyZ2V0RGF0YU1h
cCgpCiAgICAgcmV0dXJuIG1hcDsKIH0KIAotc3RhdGljIExvY2sgc19ldmVudFRhcmdldERhdGFN
YXBMb2NrOworc3RhdGljIFVuY2hlY2tlZExvY2sgc19ldmVudFRhcmdldERhdGFNYXBMb2NrOwog
CiBFdmVudFRhcmdldERhdGEqIE5vZGU6OmV2ZW50VGFyZ2V0RGF0YSgpCiB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAppbmRleCA5YmQ0MDAxMGMzNWFhMGU5N2I2ZTFk
YWU0OGIzZTEwZDRkOTVkNjdmLi4xYmNkY2ExYTcyYzgwMDE1YzQ0ODAyZmFhZjQ1NmE0NmQ4NGUz
YzVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKQEAgLTY2MjYs
NyArNjYyNiw3IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6Y3JlYXRlTWVkaWFQbGF5ZXIoKQog
CiAjaWYgRU5BQkxFKFdFQl9BVURJTykKICAgICBhdXRvIHByb3RlY3RlZEF1ZGlvU291cmNlTm9k
ZSA9IG1ha2VSZWZQdHIobV9hdWRpb1NvdXJjZU5vZGUpOwotICAgIExvY2tlcjxMb2NrPiBhdWRp
b1NvdXJjZU5vZGVMb2NrZXIobV9hdWRpb1NvdXJjZU5vZGUgPyAmbV9hdWRpb1NvdXJjZU5vZGUt
PnByb2Nlc3NMb2NrKCkgOiBudWxscHRyKTsKKyAgICBMb2NrZXIgYXVkaW9Tb3VyY2VOb2RlTG9j
a2VyKG1fYXVkaW9Tb3VyY2VOb2RlID8gJm1fYXVkaW9Tb3VyY2VOb2RlLT5wcm9jZXNzTG9jaygp
IDogbnVsbHB0cik7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShNRURJQV9TT1VSQ0UpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTENvbnRleHRHcm91cC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTENvbnRleHRHcm91cC5jcHAKaW5kZXggYWJk
OGYyNzM2ODM5MWUzZTFkN2ZjZjlkMzdiOWQ3Nzk2YWYzMzYxYi4uMTRjMmEwODk5N2Q5MDFkYTE0
MGE0YjAzNzg0OGU3NDE0NDNmNjUyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9j
YW52YXMvV2ViR0xDb250ZXh0R3JvdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2Fu
dmFzL1dlYkdMQ29udGV4dEdyb3VwLmNwcApAQCAtNTUsNyArNTUsNyBAQCBHcmFwaGljc0NvbnRl
eHRHTCYgV2ViR0xDb250ZXh0R3JvdXA6OmdldEFHcmFwaGljc0NvbnRleHRHTCgpCiAgICAgcmV0
dXJuICooKm1fY29udGV4dHMuYmVnaW4oKSktPmdyYXBoaWNzQ29udGV4dEdMKCk7CiB9CiAKLVdU
Rjo6TG9jayYgV2ViR0xDb250ZXh0R3JvdXA6Om9iamVjdEdyYXBoTG9ja0ZvckFDb250ZXh0KCkK
K1VuY2hlY2tlZExvY2smIFdlYkdMQ29udGV4dEdyb3VwOjpvYmplY3RHcmFwaExvY2tGb3JBQ29u
dGV4dCgpCiB7CiAgICAgQVNTRVJUKCFtX2NvbnRleHRzLmlzRW1wdHkoKSk7CiAgICAgLy8gU2lu
Y2UgdGhlIFdFQkdMX3NoYXJlZF9vYmplY3RzIGV4dGVuc2lvbiBuZXZlciBzaGlwcGVkLCBhbmQg
aXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMQ29udGV4dEdy
b3VwLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTENvbnRleHRHcm91cC5oCmlu
ZGV4IDg1NWNlNzIzOTg2ZmUwNzc1OThmMjQ2ODFhZTgwODZjODFlZGZhMDMuLmI2YWZlMGFmOTdl
YmRmZmFjMWExY2QwMDQzZmZiZjc5Y2NkMTc3OGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL1dlYkdMQ29udGV4dEdyb3VwLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9jYW52YXMvV2ViR0xDb250ZXh0R3JvdXAuaApAQCAtNDUsNyArNDUsNyBAQCBwdWJsaWM6CiAK
ICAgICBib29sIGhhc0FDb250ZXh0KCkgY29uc3Q7CiAgICAgR3JhcGhpY3NDb250ZXh0R0wmIGdl
dEFHcmFwaGljc0NvbnRleHRHTCgpOwotICAgIExvY2smIG9iamVjdEdyYXBoTG9ja0ZvckFDb250
ZXh0KCk7CisgICAgVW5jaGVja2VkTG9jayYgb2JqZWN0R3JhcGhMb2NrRm9yQUNvbnRleHQoKTsK
IAogICAgIHZvaWQgbG9zZUNvbnRleHRHcm91cChXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpM
b3N0Q29udGV4dE1vZGUpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZh
cy9XZWJHTENvbnRleHRPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2Vi
R0xDb250ZXh0T2JqZWN0LmNwcAppbmRleCA3YzkxOWYyYjY2NTZiNjdiMTZjYTYzNDBiMGIyYTRi
NjQ1ZDA0NjNiLi4yNDM1NGQwNWI4MWJjODUyMmJlNzdkM2JiOGY0Y2NlNDdlYjM2M2Y1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTENvbnRleHRPYmplY3QuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMQ29udGV4dE9iamVjdC5jcHAK
QEAgLTU0LDcgKzU0LDcgQEAgdm9pZCBXZWJHTENvbnRleHRPYmplY3Q6OmRldGFjaENvbnRleHQo
Y29uc3QgQWJzdHJhY3RMb2NrZXImIGxvY2tlcikKICAgICB9CiB9CiAKLVdURjo6TG9jayYgV2Vi
R0xDb250ZXh0T2JqZWN0OjpvYmplY3RHcmFwaExvY2tGb3JDb250ZXh0KCkKK1VuY2hlY2tlZExv
Y2smIFdlYkdMQ29udGV4dE9iamVjdDo6b2JqZWN0R3JhcGhMb2NrRm9yQ29udGV4dCgpCiB7CiAg
ICAgLy8gU2hvdWxkIG5vdCBjYWxsIHRoaXMgaWYgdGhlIG9iamVjdCBvciBjb250ZXh0IGhhcyBi
ZWVuIGRlbGV0ZWQuCiAgICAgQVNTRVJUKG1fY29udGV4dCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTENvbnRleHRPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL1dlYkdMQ29udGV4dE9iamVjdC5oCmluZGV4IGRiZmRkNmJmYzBlZjQ0ZWI4
ODJlYjljNTliMDA4ZDI5ODExMjY0OTUuLjBlYTc5OWZmYmIzYThhYWUwMTEzZDlhNTVjZTNlNjNi
YmEyYzhlYWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMQ29u
dGV4dE9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMQ29udGV4
dE9iamVjdC5oCkBAIC00OSw3ICs0OSw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgZGV0YWNoQ29u
dGV4dChjb25zdCBXVEY6OkFic3RyYWN0TG9ja2VyJik7CiAKLSAgICBXVEY6OkxvY2smIG9iamVj
dEdyYXBoTG9ja0ZvckNvbnRleHQoKSBvdmVycmlkZTsKKyAgICBVbmNoZWNrZWRMb2NrJiBvYmpl
Y3RHcmFwaExvY2tGb3JDb250ZXh0KCkgb3ZlcnJpZGU7CiAKIHByb3RlY3RlZDoKICAgICBXZWJH
TENvbnRleHRPYmplY3QoV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL1dlYkdMT2JqZWN0LmgKaW5kZXggMDBjZDhmMGMyYjdiMjFiYmY5NzJhZmE3
Y2ZjNWVlODVlM2UwNjBkZC4uOGFmMmVkYTQwMGU0ZjhlYzQ1YmY3ZTQyYTJmYWJhYmJkOGIwY2Ji
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xPYmplY3QuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTE9iamVjdC5oCkBAIC03MSw3ICs3
MSw3IEBAIHB1YmxpYzoKICAgICAvLyBXRUJHTF9zaGFyZWRfb2JqZWN0cyBleHRlbnNpb24gc3Bl
Y2lmaWNhdGlvbiBuZXZlciBzaGlwcGVkIChhbmQKICAgICAvLyBpcyB1bmxpa2VseSB0byksIHRo
aXMgYmFzaWNhbGx5IHJldHVybnMgdGhlIHNhbWUgcmVzdWx0IGZvcgogICAgIC8vIGJvdGggY29u
dGV4dCBvYmplY3RzIGFuZCBzaGFyZWQgb2JqZWN0cy4KLSAgICB2aXJ0dWFsIFdURjo6TG9jayYg
b2JqZWN0R3JhcGhMb2NrRm9yQ29udGV4dCgpID0gMDsKKyAgICB2aXJ0dWFsIFVuY2hlY2tlZExv
Y2smIG9iamVjdEdyYXBoTG9ja0ZvckNvbnRleHQoKSA9IDA7CiAKIHByb3RlY3RlZDoKICAgICBX
ZWJHTE9iamVjdCgpID0gZGVmYXVsdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAKaW5kZXggNTE1NTQ4OGQ3ZWQx
ZGE5NTBkNWFmNjc4ZDQ2ZDIzNDBiOGJhOWNlZS4uMzljMzJlODQ0OWE2YjhkNDBmYWJhZjA0ZmU5
MDZjMGM1NDIwYjBjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2Vi
R0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAKQEAgLTc5OTAsNyArNzk5MCw3IEBAIHZv
aWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6YWRkTWVtYmVyc1RvT3BhcXVlUm9vdHMoSlND
OjpBYnN0cmFjdFNsb3RWaXNpdG9yCiAgICAgLy8gcm9vdHMgZm9yIGV4dGVuc2lvbnMuCiB9CiAK
LUxvY2smIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6Om9iamVjdEdyYXBoTG9jaygpCitVbmNo
ZWNrZWRMb2NrJiBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpvYmplY3RHcmFwaExvY2soKQog
ewogICAgIHJldHVybiBtX29iamVjdEdyYXBoTG9jazsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuaCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuaAppbmRleCBmYWU4
YTUzOWVjODkxNDM5MjllYWI0NmZjYTMzYzMxMjZhM2MxNjlmLi5kN2NiZWVkMzJjYmMwYjc5N2Mx
MDY4ZmQ1OTdkMTNlZDhlNGMxOTczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2Nh
bnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5oCkBAIC00MjYsNyArNDI2LDcgQEAg
cHVibGljOgogICAgIC8vIGN1cnJlbnRseSBsYXRjaGVkIGludG8gdGhlIGNvbnRleHQgLSB3aXRo
b3V0IHRyYXZlcnNpbmcgYWxsIG9mCiAgICAgLy8gdGhlIGxhdGNoZWQgb2JqZWN0cyB0byBmaW5k
IHRoZSBjdXJyZW50IG9uZSwgd2hpY2ggd291bGQgYmUKICAgICAvLyBwcm9oaWJpdGl2ZWx5IGV4
cGVuc2l2ZS4KLSAgICBMb2NrJiBvYmplY3RHcmFwaExvY2soKTsKKyAgICBVbmNoZWNrZWRMb2Nr
JiBvYmplY3RHcmFwaExvY2soKTsKIAogcHJvdGVjdGVkOgogICAgIFdlYkdMUmVuZGVyaW5nQ29u
dGV4dEJhc2UoQ2FudmFzQmFzZSYsIFdlYkdMQ29udGV4dEF0dHJpYnV0ZXMpOwpAQCAtNTQwLDcg
KzU0MCw3IEBAIHByb3RlY3RlZDoKIAogICAgIFJlZlB0cjxHcmFwaGljc0NvbnRleHRHTD4gbV9j
b250ZXh0OwogICAgIFJlZlB0cjxXZWJHTENvbnRleHRHcm91cD4gbV9jb250ZXh0R3JvdXA7Ci0g
ICAgTG9jayBtX29iamVjdEdyYXBoTG9jazsKKyAgICBVbmNoZWNrZWRMb2NrIG1fb2JqZWN0R3Jh
cGhMb2NrOwogCiAgICAgYm9vbCBtX3Jlc3RvcmVBbGxvd2VkIHsgZmFsc2UgfTsKICAgICBTdXNw
ZW5kYWJsZVRpbWVyIG1fcmVzdG9yZVRpbWVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvV2ViR0xTaGFyZWRPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9j
YW52YXMvV2ViR0xTaGFyZWRPYmplY3QuY3BwCmluZGV4IDkzNmM5ODFjOTkyOTBkOGU3Y2VmOThi
MTNiNTY5M2NiZWIyMzc5OGMuLjBhYjhjYjI0MWExYjNmMzg4ZmVmMzgyOTk3NmNlY2Y2ZDQ4N2Qz
NzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMU2hhcmVkT2Jq
ZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFNoYXJlZE9iamVj
dC5jcHAKQEAgLTgyLDcgKzgyLDcgQEAgR3JhcGhpY3NDb250ZXh0R0wqIFdlYkdMU2hhcmVkT2Jq
ZWN0OjpnZXRBR3JhcGhpY3NDb250ZXh0R0woKSBjb25zdAogICAgIHJldHVybiBtX2NvbnRleHRH
cm91cCA/ICZtX2NvbnRleHRHcm91cC0+Z2V0QUdyYXBoaWNzQ29udGV4dEdMKCkgOiBudWxscHRy
OwogfQogCi1XVEY6OkxvY2smIFdlYkdMU2hhcmVkT2JqZWN0OjpvYmplY3RHcmFwaExvY2tGb3JD
b250ZXh0KCkKK1VuY2hlY2tlZExvY2smIFdlYkdMU2hhcmVkT2JqZWN0OjpvYmplY3RHcmFwaExv
Y2tGb3JDb250ZXh0KCkKIHsKICAgICAvLyBTaG91bGQgbm90IGNhbGwgdGhpcyBpZiB0aGUgb2Jq
ZWN0IG9yIGNvbnRleHQgaGFzIGJlZW4gZGVsZXRlZC4KICAgICBBU1NFUlQobV9jb250ZXh0R3Jv
dXApOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xTaGFyZWRP
YmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMU2hhcmVkT2JqZWN0LmgK
aW5kZXggNWQxM2FmYTM4NDZhYTIxNTMwYzBhYmQ1MzkwYWExZTc5OGU5ZTFkMC4uZjUzZGIxOWIw
NjkyMjkwNmJkY2NiMTZjMzkzNzM4NjE1ZjE3NjU3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9jYW52YXMvV2ViR0xTaGFyZWRPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL2NhbnZhcy9XZWJHTFNoYXJlZE9iamVjdC5oCkBAIC01OSw3ICs1OSw3IEBAIHB1YmxpYzoK
IAogICAgIHZvaWQgZGV0YWNoQ29udGV4dEdyb3VwV2l0aG91dERlbGV0aW5nT2JqZWN0KCk7CiAK
LSAgICBXVEY6OkxvY2smIG9iamVjdEdyYXBoTG9ja0ZvckNvbnRleHQoKSBvdmVycmlkZTsKKyAg
ICBVbmNoZWNrZWRMb2NrJiBvYmplY3RHcmFwaExvY2tGb3JDb250ZXh0KCkgb3ZlcnJpZGU7CiAK
IHByb3RlY3RlZDoKICAgICBXZWJHTFNoYXJlZE9iamVjdChXZWJHTFJlbmRlcmluZ0NvbnRleHRC
YXNlJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Ny
b2xsaW5nVHJlZU1hYy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9s
bGluZ1RyZWVNYWMuaAppbmRleCBiNDJiZjQxMTQ1NGZhMDM0YTdkYWE4NmMzMTUzYWExZDY2YTk4
M2NlLi44OGRhZDFlZGQxYjkwNTIwZDFmMGNiNmI3NzA2ZmVkMDIyNDA2N2FlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZU1hYy5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlTWFjLmgK
QEAgLTU1LDggKzU1LDggQEAgcHJpdmF0ZToKICAgICB2b2lkIGRlZmVyV2hlZWxFdmVudFRlc3RD
b21wbGV0aW9uRm9yUmVhc29uKFdoZWVsRXZlbnRUZXN0TW9uaXRvcjo6U2Nyb2xsYWJsZUFyZWFJ
ZGVudGlmaWVyLCBXaGVlbEV2ZW50VGVzdE1vbml0b3I6OkRlZmVyUmVhc29uKSBmaW5hbDsKICAg
ICB2b2lkIHJlbW92ZVdoZWVsRXZlbnRUZXN0Q29tcGxldGlvbkRlZmVycmFsRm9yUmVhc29uKFdo
ZWVsRXZlbnRUZXN0TW9uaXRvcjo6U2Nyb2xsYWJsZUFyZWFJZGVudGlmaWVyLCBXaGVlbEV2ZW50
VGVzdE1vbml0b3I6OkRlZmVyUmVhc29uKSBmaW5hbDsKIAotICAgIHZvaWQgbG9ja0xheWVyc0Zv
ckhpdFRlc3RpbmcoKSBmaW5hbDsKLSAgICB2b2lkIHVubG9ja0xheWVyc0ZvckhpdFRlc3Rpbmco
KSBmaW5hbDsKKyAgICB2b2lkIGxvY2tMYXllcnNGb3JIaXRUZXN0aW5nKCkgZmluYWwgV1RGX0FD
UVVJUkVTX0xPQ0sobV9sYXllckhpdFRlc3RNdXRleCk7CisgICAgdm9pZCB1bmxvY2tMYXllcnNG
b3JIaXRUZXN0aW5nKCkgZmluYWwgV1RGX1JFTEVBU0VTX0xPQ0sobV9sYXllckhpdFRlc3RNdXRl
eCk7CiAKICAgICAvLyBUaGlzIGxvY2sgcHJvdGVjdHMgdGhlIENBTGF5ZXIvUGxhdGZvcm1DQUxh
eWVyIHRyZWUuCiAgICAgbXV0YWJsZSBMb2NrIG1fbGF5ZXJIaXRUZXN0TXV0ZXg7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9SZXZlcmJDb252b2x2ZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vUmV2ZXJiQ29udm9sdmVyLmNwcAppbmRleCBj
MjVjYWYwZDliYzQ2OTVjNDgwZGRjYzk4NGZmOTE3ZWY1MjNjMGY2Li42MzVhOGY3N2IzMTQyMGRj
MDVlZmY0NWY1ZjU4NTg4OGZiYWJmYzk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9hdWRpby9SZXZlcmJDb252b2x2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2F1ZGlvL1JldmVyYkNvbnZvbHZlci5jcHAKQEAgLTE0OCw5ICsxNDgsOSBAQCB2b2lkIFJl
dmVyYkNvbnZvbHZlcjo6YmFja2dyb3VuZFRocmVhZEVudHJ5KCkKICAgICAgICAgLy8gV2FpdCBm
b3IgcmVhbHRpbWUgdGhyZWFkIHRvIGdpdmUgdXMgbW9yZSBpbnB1dAogICAgICAgICBtX21vcmVJ
bnB1dEJ1ZmZlcmVkID0gZmFsc2U7ICAgICAgICAKICAgICAgICAgewotICAgICAgICAgICAgc3Rk
Ojp1bmlxdWVfbG9jazxMb2NrPiBsb2NrKG1fYmFja2dyb3VuZFRocmVhZExvY2spOworICAgICAg
ICAgICAgTG9ja2VyIGxvY2tlciB7IG1fYmFja2dyb3VuZFRocmVhZExvY2sgfTsKIAotICAgICAg
ICAgICAgbV9iYWNrZ3JvdW5kVGhyZWFkQ29uZGl0aW9uVmFyaWFibGUud2FpdChsb2NrLCBbdGhp
c10geyByZXR1cm4gbV9tb3JlSW5wdXRCdWZmZXJlZCB8fCBtX3dhbnRzVG9FeGl0OyB9KTsKKyAg
ICAgICAgICAgIG1fYmFja2dyb3VuZFRocmVhZENvbmRpdGlvblZhcmlhYmxlLndhaXQobV9iYWNr
Z3JvdW5kVGhyZWFkTG9jaywgW3RoaXNdIHsgcmV0dXJuIG1fbW9yZUlucHV0QnVmZmVyZWQgfHwg
bV93YW50c1RvRXhpdDsgfSk7CiAgICAgICAgIH0KIAogICAgICAgICAvLyBQcm9jZXNzIGFsbCBv
ZiB0aGUgc3RhZ2VzIHVudGlsIHRoZWlyIHJlYWQgaW5kaWNlcyByZWFjaCB0aGUgaW5wdXQgYnVm
ZmVyJ3Mgd3JpdGUgaW5kZXgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL1NoYWRvd0JsdXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
U2hhZG93Qmx1ci5jcHAKaW5kZXggYTNiMDU1ZDM4MzU2MmZmNGEwNjc4YTI4NWNiYmJhNzM0Yjg2
ZjY5My4uMWRmODIwNDBkZjExNWVjYWM1OTZjMjMxY2YyZmQxZWI3YjhhMTIwOCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvU2hhZG93Qmx1ci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvU2hhZG93Qmx1ci5jcHAKQEAgLTEyMiw3
ICsxMjIsNyBAQCBwdWJsaWM6CiAgICAgfQogCiAgICAgc3RhdGljIFNjcmF0Y2hCdWZmZXImIHNp
bmdsZXRvbigpOwotICAgIHN0YXRpYyBMb2NrJiBsb2NrKCk7CisgICAgc3RhdGljIFVuY2hlY2tl
ZExvY2smIGxvY2soKTsKIAogcHJpdmF0ZToKICAgICB2b2lkIHNjaGVkdWxlU2NyYXRjaEJ1ZmZl
clB1cmdlKCkKQEAgLTE2OCw5ICsxNjgsOSBAQCBTY3JhdGNoQnVmZmVyJiBTY3JhdGNoQnVmZmVy
OjpzaW5nbGV0b24oKQogICAgIHJldHVybiBzY3JhdGNoQnVmZmVyOwogfQogCi1Mb2NrJiBTY3Jh
dGNoQnVmZmVyOjpsb2NrKCkKK1VuY2hlY2tlZExvY2smIFNjcmF0Y2hCdWZmZXI6OmxvY2soKQog
ewotICAgIHN0YXRpYyBMb2NrIGxvY2s7CisgICAgc3RhdGljIFVuY2hlY2tlZExvY2sgbG9jazsK
ICAgICByZXR1cm4gbG9jazsKIH0KIApAQCAtNjk2LDcgKzY5Niw3IEBAIHZvaWQgU2hhZG93Qmx1
cjo6ZHJhd1JlY3RTaGFkb3dXaXRoVGlsaW5nKGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgdHJhbnNm
b3JtLCBjb25zCiB7CiAgICAgUmVmUHRyPEltYWdlQnVmZmVyPiBsYXllckltYWdlQnVmZmVyOwog
I2lmIFVTRShDRykKLSAgICBhdXRvIGxvY2tlciA9IExvY2tlcjxMb2NrPjo6dHJ5TG9jayhTY3Jh
dGNoQnVmZmVyOjpsb2NrKCkpOworICAgIGF1dG8gbG9ja2VyID0gTG9ja2VyPFVuY2hlY2tlZExv
Y2s+Ojp0cnlMb2NrKFNjcmF0Y2hCdWZmZXI6OmxvY2soKSk7CiAgICAgaWYgKGxvY2tlcikgewog
ICAgICAgICBsYXllckltYWdlQnVmZmVyID0gU2NyYXRjaEJ1ZmZlcjo6c2luZ2xldG9uKCkuZ2V0
U2NyYXRjaEJ1ZmZlcih0ZW1wbGF0ZVNpemUpOwogICAgICAgICBpZiAoIWxheWVySW1hZ2VCdWZm
ZXIpCkBAIC03NTYsNyArNzU2LDcgQEAgdm9pZCBTaGFkb3dCbHVyOjpkcmF3SW5zZXRTaGFkb3dX
aXRoVGlsaW5nKGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgdHJhbnNmb3JtLCBjb24KIHsKICAgICBS
ZWZQdHI8SW1hZ2VCdWZmZXI+IGxheWVySW1hZ2VCdWZmZXI7CiAjaWYgVVNFKENHKQotICAgIGF1
dG8gbG9ja2VyID0gTG9ja2VyPExvY2s+Ojp0cnlMb2NrKFNjcmF0Y2hCdWZmZXI6OmxvY2soKSk7
CisgICAgYXV0byBsb2NrZXIgPSBMb2NrZXI8VW5jaGVja2VkTG9jaz46OnRyeUxvY2soU2NyYXRj
aEJ1ZmZlcjo6bG9jaygpKTsKICAgICBpZiAobG9ja2VyKSB7CiAgICAgICAgIGxheWVySW1hZ2VC
dWZmZXIgPSBTY3JhdGNoQnVmZmVyOjpzaW5nbGV0b24oKS5nZXRTY3JhdGNoQnVmZmVyKHRlbXBs
YXRlU2l6ZSk7CiAgICAgICAgIGlmICghbGF5ZXJJbWFnZUJ1ZmZlcikKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb1NpbmtHU3RyZWFt
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1ZpZGVv
U2lua0dTdHJlYW1lci5jcHAKaW5kZXggMTFiZWExMmI2NmRjNTQ2MjVhODI5ZjkwNzRhOTJjMDM3
NGNlMjg5NS4uNTdhNzJhYzU4MGNlY2YxNmEwZTNhYjgwZmNmMzllMzk1ZmQwODhhYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1ZpZGVvU2lu
a0dTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL1ZpZGVvU2lua0dTdHJlYW1lci5jcHAKQEAgLTEwNyw3ICsxMDcsNyBAQCBwdWJsaWM6
CiAgICAgfQogCiBwcml2YXRlOgotICAgIExvY2sgbV9zYW1wbGVNdXRleDsKKyAgICBVbmNoZWNr
ZWRMb2NrIG1fc2FtcGxlTXV0ZXg7CiAgICAgR1JlZlB0cjxHc3RTYW1wbGU+IG1fc2FtcGxlOwog
CiAgICAgLy8gSWYgdGhpcyBpcyB0cnVlIGFsbCBwcm9jZXNzaW5nIHNob3VsZCBmaW5pc2ggQVNB
UApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L2VtZS9XZWJLaXRDb21tb25FbmNyeXB0aW9uRGVjcnlwdG9yR1N0cmVhbWVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUvV2ViS2l0Q29tbW9uRW5j
cnlwdGlvbkRlY3J5cHRvckdTdHJlYW1lci5jcHAKaW5kZXggMzIwMTc0ZDViZmU4NzZkYjhjMTQy
MzU5YThlMWEwMWFhODZjMGZkYi4uZDRjYzRkNzI1YzU1MTExMjY0NTgxYmU1M2ZlNjhkYzNiMjEz
ZDI0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVh
bWVyL2VtZS9XZWJLaXRDb21tb25FbmNyeXB0aW9uRGVjcnlwdG9yR1N0cmVhbWVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvZW1lL1dlYktpdENv
bW1vbkVuY3J5cHRpb25EZWNyeXB0b3JHU3RyZWFtZXIuY3BwCkBAIC01Niw3ICs1Niw3IEBAIHN0
cnVjdCBfV2ViS2l0TWVkaWFDb21tb25FbmNyeXB0aW9uRGVjcnlwdFByaXZhdGUgewogICAgIFJl
ZlB0cjxDRE1Qcm94eT4gY2RtUHJveHk7CiAKICAgICAvLyBQcm90ZWN0IHRoZSBhY2Nlc3MgdG8g
dGhlIHN0cnVjdHVyZSBtZW1iZXJzLgotICAgIExvY2sgbXV0ZXg7CisgICAgVW5jaGVja2VkTG9j
ayBtdXRleDsKICAgICBDb25kaXRpb24gY29uZGl0aW9uOwogCiAgICAgYm9vbCBpc0ZsdXNoaW5n
IHsgZmFsc2UgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGlj
cy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTC5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
Z3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wuY3BwCmluZGV4IDZkMWQxZGFlOTdhOWI1
ZTc2YzdhNDFhNTkwODNjOWUwYTg4MzRiNmYuLjE1NTNkZWYwMjVmZmY5MGYxMzc1ZjUxMGQ1MGNh
NDVkMmM1MTM1NGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGlj
cy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMLmNwcApAQCAtMjEyLDcgKzIxMiw3
IEBAIHZvaWQgUmVtb3RlR3JhcGhpY3NDb250ZXh0R0w6OnBhaW50UGl4ZWxCdWZmZXJUb0ltYWdl
QnVmZmVyKE9wdGlvbmFsPFdlYkNvcmU6OlBpCiAgICAgYXNzZXJ0SXNDdXJyZW50KG1fc3RyZWFt
VGhyZWFkKTsKICAgICAvLyBGSVhNRTogV2UgZG8gbm90IGhhdmUgZnVuY3Rpb25pbmcgcmVhZC93
cml0ZSBmZW5jZXMgaW4gUmVtb3RlUmVuZGVyaW5nQmFja2VuZC4gVGh1cyB0aGlzIGlzIHN5bmNo
cm9ub3VzLAogICAgIC8vIGFzIGFyZSB0aGUgbWVzc2FnZXMgdGhhdCBjYWxsIHRoZXNlLgotICAg
IExvY2sgbXV0ZXg7CisgICAgTG9jayBsb2NrOwogICAgIENvbmRpdGlvbiBjb25kaXRpb25WYXJp
YWJsZTsKICAgICBib29sIGlzRmluaXNoZWQgPSBmYWxzZTsKICAgICBtX3JlbmRlcmluZ0JhY2tl
bmQtPmRpc3BhdGNoKFsmLCBjb250ZXh0QXR0cmlidXRlcyA9IG1fY29udGV4dC0+Y29udGV4dEF0
dHJpYnV0ZXMoKV0oKSBtdXRhYmxlIHsKQEAgLTIyNiwxMSArMjI2LDExIEBAIHZvaWQgUmVtb3Rl
R3JhcGhpY3NDb250ZXh0R0w6OnBhaW50UGl4ZWxCdWZmZXJUb0ltYWdlQnVmZmVyKE9wdGlvbmFs
PFdlYkNvcmU6OlBpCiAgICAgICAgICAgICAvLyBVbmZvcnR1bmF0ZWx5ICJmbHVzaCIgaW1wbGVt
ZW50YXRpb24gaW4gUmVtb3RlUmVuZGVyaW5nQmFja2VuZCBvdmVybG9hZHMgb3JkZXJpbmcgYW5k
IGVmZmVjdHMuCiAgICAgICAgICAgICBpbWFnZUJ1ZmZlci0+Zmx1c2hDb250ZXh0KCk7CiAgICAg
ICAgIH0KLSAgICAgICAgTG9ja2VyIGxvY2tlciB7IG11dGV4IH07CisgICAgICAgIExvY2tlciBs
b2NrZXIgeyBsb2NrIH07CiAgICAgICAgIGlzRmluaXNoZWQgPSB0cnVlOwogICAgICAgICBjb25k
aXRpb25WYXJpYWJsZS5ub3RpZnlPbmUoKTsKICAgICB9KTsKLSAgICBzdGQ6OnVuaXF1ZV9sb2Nr
PExvY2s+IGxvY2sobXV0ZXgpOworICAgIExvY2tlciBsb2NrZXIgeyBsb2NrIH07CiAgICAgY29u
ZGl0aW9uVmFyaWFibGUud2FpdChsb2NrLCBbJl0gewogICAgICAgICByZXR1cm4gaXNGaW5pc2hl
ZDsKICAgICB9KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvSW5k
ZXhlZERCL1dlYklEQlNlcnZlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0lu
ZGV4ZWREQi9XZWJJREJTZXJ2ZXIuY3BwCmluZGV4IDkxYjg4OTQxYTc2YTgwNzFkMzBkN2ZlZDc0
MTYzZmIwOWY3Yjg3MjEuLjU0N2RhYThkNGUwMDE0MDZmYzIwMWFiYWQ2Y2Y0NzcwYzkxYTU1Nzkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvSW5kZXhlZERCL1dlYklE
QlNlcnZlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9JbmRleGVkREIv
V2ViSURCU2VydmVyLmNwcApAQCAtMTE5LDcgKzExOSw3IEBAIHZvaWQgV2ViSURCU2VydmVyOjpy
ZW5hbWVPcmlnaW4oY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiBvbGRPcmlnaW4s
IGNvCiAgICAgfSk7CiB9CiAKLXZvaWQgV2ViSURCU2VydmVyOjpzdXNwZW5kKCkKK3ZvaWQgV2Vi
SURCU2VydmVyOjpzdXNwZW5kKCkgV1RGX0lHTk9SRVNfVEhSRUFEX1NBRkVUWV9BTkFMWVNJUwog
ewogICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CiAKQEAgLTEzMiw3ICsxMzIsNyBAQCB2
b2lkIFdlYklEQlNlcnZlcjo6c3VzcGVuZCgpCiAgICAgICAgIG1fc2VydmVyLT5zdG9wRGF0YWJh
c2VBY3Rpdml0aWVzT25NYWluVGhyZWFkKCk7CiB9CiAKLXZvaWQgV2ViSURCU2VydmVyOjpyZXN1
bWUoKQordm9pZCBXZWJJREJTZXJ2ZXI6OnJlc3VtZSgpIFdURl9JR05PUkVTX1RIUkVBRF9TQUZF
VFlfQU5BTFlTSVMKIHsKICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9JY29uRGF0YWJhc2UuaCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL0ljb25EYXRhYmFzZS5oCmluZGV4IGJlYjJm
YjgwNmVjNTVjNjYzNGNkNWU1YTAwZDUwNzgzNjE1ZmVmNGIuLjgwZTE3OGU2MWY1MGZhZmRmM2Vh
ZDRkMjk4YTE4ODAxYWUwM2M3MTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9nbGliL0ljb25EYXRhYmFzZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9nbGliL0ljb25EYXRhYmFzZS5oCkBAIC03Miw3ICs3Miw3IEBAIHByaXZhdGU6CiAgICAgSGFz
aE1hcDxTdHJpbmcsIFN0cmluZz4gbV9wYWdlVVJMVG9JY29uVVJMTWFwOwogICAgIExvY2sgbV9w
YWdlVVJMVG9JY29uVVJMTWFwTG9jazsKICAgICBIYXNoTWFwPFN0cmluZywgc3RkOjpwYWlyPFdl
YkNvcmU6OlBsYXRmb3JtSW1hZ2VQdHIsIE1vbm90b25pY1RpbWU+PiBtX2xvYWRlZEljb25zOwot
ICAgIExvY2sgbV9sb2FkZWRJY29uc0xvY2s7CisgICAgVW5jaGVja2VkTG9jayBtX2xvYWRlZElj
b25zTG9jazsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpTUUxpdGVTdGF0ZW1lbnQ+
IG1faWNvbklERm9ySWNvblVSTFN0YXRlbWVudDsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29y
ZTo6U1FMaXRlU3RhdGVtZW50PiBtX3NldEljb25JREZvclBhZ2VVUkxTdGF0ZW1lbnQ7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tQcmludGluZ1ZpZXcubW0gYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tQcmludGluZ1ZpZXcubW0KaW5kZXggOWI3NGYz
ZWM1MGQwMjAxNjY0YzczMTI5ODljN2Y2OGMyOWEwNDU0Yy4uZjE4YmE4ZjAxYjI2ZGUzZmQzY2Rm
YjAyODEyODVjZjBkNGE2NjY5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
bWFjL1dLUHJpbnRpbmdWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9X
S1ByaW50aW5nVmlldy5tbQpAQCAtNDE0LDEzICs0MTQsMTMgQEAgLSAoQk9PTClrbm93c1BhZ2VS
YW5nZTooTlNSYW5nZVBvaW50ZXIpcmFuZ2UKICAgICAgICAgKnJhbmdlID0gTlNNYWtlUmFuZ2Uo
MSwgX3ByaW50aW5nUGFnZVJlY3RzLnNpemUoKSk7CiAgICAgZWxzZSBpZiAoIVJ1bkxvb3A6Omlz
TWFpbigpKSB7CiAgICAgICAgIEFTU0VSVCghW3NlbGYgX2lzUHJpbnRpbmdQcmV2aWV3XSk7Ci0g
ICAgICAgIHN0ZDo6dW5pcXVlX2xvY2s8TG9jaz4gbG9jayhfcHJpbnRpbmdDYWxsYmFja011dGV4
KTsKKyAgICAgICAgTG9ja2VyIGxvY2sgeyBfcHJpbnRpbmdDYWxsYmFja011dGV4IH07CiAKICAg
ICAgICAgUnVuTG9vcDo6bWFpbigpLmRpc3BhdGNoKFtzZWxmXSB7CiAgICAgICAgICAgICBwcmVw
YXJlRGF0YUZvclByaW50aW5nT25TZWNvbmRhcnlUaHJlYWQoc2VsZik7CiAgICAgICAgIH0pOwog
Ci0gICAgICAgIF9wcmludGluZ0NhbGxiYWNrQ29uZGl0aW9uLndhaXQobG9jayk7CisgICAgICAg
IF9wcmludGluZ0NhbGxiYWNrQ29uZGl0aW9uLndhaXQoX3ByaW50aW5nQ2FsbGJhY2tNdXRleCk7
CiAgICAgICAgICpyYW5nZSA9IE5TTWFrZVJhbmdlKDEsIF9wcmludGluZ1BhZ2VSZWN0cy5zaXpl
KCkpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIEFTU0VSVChbc2VsZiBfaXNQcmludGluZ1ByZXZp
ZXddKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRl
eCBlYWIwODNmMWUwN2Q0NWU4OGFkYjE0MDFkYmI0YzIxNWI1Mzc4NTRhLi44NjM5MTBmZTRmYWZl
YTMzMjM1YTQ2MmYzMGQ0ZGNkOGRkYWIyODM4IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cK
KysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDMgQEAKKzIwMjEtMDUtMjMgIENocmlz
IER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBNYWtlIENoZWNrZWRMb2NrIHRo
ZSBkZWZhdWx0IExvY2sKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIyNjE1NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIE1ha2UgQ2hlY2tlZExvY2sgdGhlIGRlZmF1bHQgTG9jayBzbyB0aGF0IHdlIGdldCBt
b3JlIGJlbmVmaXRzIGZyb20gQ2xhbmcKKyAgICAgICAgVGhyZWFkIFNhZmV0eSBBbmFseXNpcy4g
Tm90ZSB0aGF0IENoZWNrZWRMb2NrIDEwMCUgcmVsaWVzIG9uIHRoZSBleGlzdGluZworICAgICAg
ICBMb2NrIGltcGxlbWVudGF0aW9uIGFuZCBtZXJlbHkgYWRkcyB0aGUgY2xhbmcgYW5vdGF0aW9u
cyBmb3IgdGhyZWFkIAorICAgICAgICBzYWZldHkuCisKKyAgICAgICAgVGhhdCB0aGlzIHBhdGNo
IGRvZXMgaXM6CisgICAgICAgIDEuIFJlbmFtZSB0aGUgTG9jayBjbGFzcyB0byBVbmNoZWNrZWRM
b2NrCisgICAgICAgIDIuIFJlbmFtZSB0aGUgQ2hlY2tlZExvY2sgY2xhc3MgdG8gTG9jaworICAg
ICAgICAzLiBSZW5hbWUgdGhlIENvbmRpdGlvbiBjbGFzcyB0byBVbmNoZWNrZWRDb25kaXRpb24K
KyAgICAgICAgNC4gUmVuYW1lIHRoZSBDaGVja2VkQ29uZGl0aW9uIGNsYXNzIHRvIENvbmRpdGlv
bgorICAgICAgICA1LiBVcGRhdGUgdGhlIHR5cGVzIG9mIGNlcnRhaW4gdmFyaWFibGVzIGZyb20g
TG9jayAvIENvbmRpdGlvbiB0bworICAgICAgICAgICBVbmNoZWNrZWRMb2NrIC8gVW5jaGVja2Vk
Q29uZGl0aW9uIGlmIEkgZ290IGEgYnVpbGQgZmFpbHVyZS4gQnVpbGQgCisgICAgICAgICAgIGZh
aWx1cmVzIGFyZSB1c3VhbGx5IGNhdXNlZCBieSB0aGUgZm9sbG93aW5nIGZhY3RzOgorICAgICAg
ICAgICAtIExvY2tlcjxDaGVja2VkTG9jaz4gZG9lc24ndCBzdWJjbGFzcyBBYnN0cmFjdExvY2tl
ciB3aGljaCBhIGxvdCBvZgorICAgICAgICAgICAgIEpTQyBjb2RlIHBhc3NlcyBhcyBhcmd1bWVu
dAorICAgICAgICAgICAtIExvY2tlcjxDaGVja2VkTG9jaz4gaGFzIG5vIG1vdmUgY29uc3RydWN0
b3IKKyAgICAgICAgICAgLSBMb2NrZXI8Q2hlY2tlZExvY2s+IGNhbm5vdCBiZSBjb25zdHJ1Y3Rl
ZCBmcm9tIGEgbG9jayBwb2ludGVyLCBvbmx5CisgICAgICAgICAgICAgYSByZWZlcmVuY2UKKwor
ICAgICAgICBGb3Igbm93LCBDaGVja2VkTG9jayBhbmQgQ2hlY2tlZENvbmRpdGlvbiByZW1haW4g
YXMgYWxpYXNlcyB0byBMb2NrIGFuZCAKKyAgICAgICAgQ29uZGl0aW9uLCBpbiB0aGVpciByZXNw
ZWN0aXZlIENoZWNrZWRMb2NrLmggLyBDaGVja2VkQ29uZGl0aW9uLmggaGVhZGVycy4KKyAgICAg
ICAgSSB3aWxsIGRyb3AgdGhlbSBpbiBhIGZvbGxvdy11cCB0byByZWR1Y2UgcGF0Y2ggc2l6ZS4K
KworICAgICAgICBJIHdpbGwgYWxzbyBmb2xsb3ctdXAgdG8gdHJ5IGFuZCBnZXQgcmlkIG9mIGFz
IG11Y2ggdXNhZ2Ugb2YgVW5jaGVja2VkTG9jaworICAgICAgICBhbmQgVW5jaGVja2VkQ29uZGl0
aW9uIGFzIHBvc3NpYmxlLiBJIGRpZCBub3QgdHJ5IHZlcnkgaGFyZCBpbiB0aGlzIHBhdGNoCisg
ICAgICAgIHRvIHJlZHVjZSBwYXRjaCBzaXplLiAKKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkv
VGVzdHMvV1RGL0NoZWNrZWRDb25kaXRpb25UZXN0LmNwcDoKKyAgICAgICAgKiBUZXN0V2ViS2l0
QVBJL1Rlc3RzL1dURi9Db25kaXRpb24uY3BwOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVz
dHMvV1RGL01ldGFBbGxvY2F0b3IuY3BwOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV1RSOjpB
WFRocmVhZDo6Y3JlYXRlVGhyZWFkSWZOZWVkZWQpOgorCiAyMDIxLTA1LTIyICBDaHJpcyBEdW1l
eiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgUmVwbGFjZSBMb2NrSG9sZGVyIHdpdGgg
TG9ja2VyIGluIGxvY2FsIHZhcmlhYmxlcwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XVEYvQ2hlY2tlZENvbmRpdGlvblRlc3QuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XVEYvQ2hlY2tlZENvbmRpdGlvblRlc3QuY3BwCmluZGV4IDkyOGFhMTkwM2NkZTM2
ZWEzMmRjMTAxZjI2YmYzY2M5OTI2OWI4OTMuLmFkNDI1NWUyYWMxYTJlZjlhMGMxY2EzY2Y1NmM3
MzgwNzY2MzA1MDggMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0No
ZWNrZWRDb25kaXRpb25UZXN0LmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dU
Ri9DaGVja2VkQ29uZGl0aW9uVGVzdC5jcHAKQEAgLTI1LDYgKzI1LDcgQEAKIAogI2luY2x1ZGUg
ImNvbmZpZy5oIgogI2luY2x1ZGUgPHd0Zi9DaGVja2VkQ29uZGl0aW9uLmg+CisjaW5jbHVkZSA8
d3RmL0NoZWNrZWRMb2NrLmg+CiAKIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKIApkaWZmIC0t
Z2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvQ29uZGl0aW9uLmNwcCBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0NvbmRpdGlvbi5jcHAKaW5kZXggM2IzNWIwOGNhMTRi
ODE4ODQ3ZDY2ZWU1ODdmZmFkMWE1OTBkODEyNi4uNWVlYzNlMDE1NjZiOTE4ZDY2N2UxNjQ4MjVm
MDEyMDhkODc5YmJlYiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYv
Q29uZGl0aW9uLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9Db25kaXRp
b24uY3BwCkBAIC00Niw3ICs0Niw3IEBAIGVudW0gTm90aWZ5U3R5bGUgewogfTsKIAogdGVtcGxh
dGU8dHlwZW5hbWUgRnVuY3Rvcj4KLXZvaWQgd2FpdChDb25kaXRpb24mIGNvbmRpdGlvbiwgc3Rk
Ojp1bmlxdWVfbG9jazxMb2NrPiYgbG9ja2VyLCBjb25zdCBGdW5jdG9yJiBwcmVkaWNhdGUsIFNl
Y29uZHMgdGltZW91dCkKK3ZvaWQgd2FpdChVbmNoZWNrZWRDb25kaXRpb24mIGNvbmRpdGlvbiwg
c3RkOjp1bmlxdWVfbG9jazxVbmNoZWNrZWRMb2NrPiYgbG9ja2VyLCBjb25zdCBGdW5jdG9yJiBw
cmVkaWNhdGUsIFNlY29uZHMgdGltZW91dCkKIHsKICAgICBpZiAodGltZW91dCA9PSBTZWNvbmRz
OjppbmZpbml0eSgpKQogICAgICAgICBjb25kaXRpb24ud2FpdChsb2NrZXIsIHByZWRpY2F0ZSk7
CkBAIC01OSw3ICs1OSw3IEBAIHZvaWQgd2FpdChDb25kaXRpb24mIGNvbmRpdGlvbiwgc3RkOjp1
bmlxdWVfbG9jazxMb2NrPiYgbG9ja2VyLCBjb25zdCBGdW5jdG9yJiBwCiAgICAgfQogfQogCi12
b2lkIG5vdGlmeShOb3RpZnlTdHlsZSBub3RpZnlTdHlsZSwgQ29uZGl0aW9uJiBjb25kaXRpb24s
IGJvb2wgc2hvdWxkTm90aWZ5KQordm9pZCBub3RpZnkoTm90aWZ5U3R5bGUgbm90aWZ5U3R5bGUs
IFVuY2hlY2tlZENvbmRpdGlvbiYgY29uZGl0aW9uLCBib29sIHNob3VsZE5vdGlmeSkKIHsKICAg
ICBzd2l0Y2ggKG5vdGlmeVN0eWxlKSB7CiAgICAgY2FzZSBBbHdheXNOb3RpZnlPbmU6CkBAIC04
Myw5ICs4Myw5IEBAIHZvaWQgcnVuVGVzdCgKIHsKICAgICBEZXF1ZTx1bnNpZ25lZD4gcXVldWU7
CiAgICAgYm9vbCBzaG91bGRDb250aW51ZSA9IHRydWU7Ci0gICAgTG9jayBsb2NrOwotICAgIENv
bmRpdGlvbiBlbXB0eUNvbmRpdGlvbjsKLSAgICBDb25kaXRpb24gZnVsbENvbmRpdGlvbjsKKyAg
ICBVbmNoZWNrZWRMb2NrIGxvY2s7CisgICAgVW5jaGVja2VkQ29uZGl0aW9uIGVtcHR5Q29uZGl0
aW9uOworICAgIFVuY2hlY2tlZENvbmRpdGlvbiBmdWxsQ29uZGl0aW9uOwogCiAgICAgVmVjdG9y
PFJlZjxUaHJlYWQ+PiBjb25zdW1lclRocmVhZHM7CiAgICAgVmVjdG9yPFJlZjxUaHJlYWQ+PiBw
cm9kdWNlclRocmVhZHM7CkBAIC0xMDEsNyArMTAxLDcgQEAgdm9pZCBydW5UZXN0KAogICAgICAg
ICAgICAgICAgICAgICB1bnNpZ25lZCByZXN1bHQ7CiAgICAgICAgICAgICAgICAgICAgIHVuc2ln
bmVkIHNob3VsZE5vdGlmeSA9IGZhbHNlOwogICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICBzdGQ6OnVuaXF1ZV9sb2NrPExvY2s+IGxvY2tlcihsb2NrKTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIHN0ZDo6dW5pcXVlX2xvY2s8VW5jaGVja2VkTG9jaz4gbG9j
a2VyKGxvY2spOwogICAgICAgICAgICAgICAgICAgICAgICAgd2FpdCgKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBlbXB0eUNvbmRpdGlvbiwgbG9ja2VyLCAKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBbJl0gKCkgewpAQCAtMTM0LDcgKzEzNCw3IEBAIHZvaWQgcnVuVGVzdCgKICAg
ICAgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbnVtTWVzc2FnZXNQZXJQcm9k
dWNlcjsgKytpKSB7CiAgICAgICAgICAgICAgICAgICAgIGJvb2wgc2hvdWxkTm90aWZ5ID0gZmFs
c2U7CiAgICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHN0ZDo6
dW5pcXVlX2xvY2s8TG9jaz4gbG9ja2VyKGxvY2spOworICAgICAgICAgICAgICAgICAgICAgICAg
c3RkOjp1bmlxdWVfbG9jazxVbmNoZWNrZWRMb2NrPiBsb2NrZXIobG9jayk7CiAgICAgICAgICAg
ICAgICAgICAgICAgICB3YWl0KAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bGxDb25k
aXRpb24sIGxvY2tlciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJl0gKCkgewpkaWZm
IC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvTWV0YUFsbG9jYXRvci5jcHAg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9NZXRhQWxsb2NhdG9yLmNwcAppbmRleCBi
OTFmNjhlYzBjYzE3ZGQzNzA4ZjJlNzgwODM2NjU1N2RiMzg3YTY2Li40ZWY1ODNiM2MyYmU5OGVl
ZmQ5NjE1MWM3OTY5Y2U0M2ViYTA1NzkzIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dURi9NZXRhQWxsb2NhdG9yLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dURi9NZXRhQWxsb2NhdG9yLmNwcApAQCAtMTI5LDcgKzEyOSw3IEBAIHB1YmxpYzoKICAg
ICAgICAgfQogICAgICAgICAKICAgICBwcml2YXRlOgotICAgICAgICBMb2NrIG1fbG9jazsKKyAg
ICAgICAgVW5jaGVja2VkTG9jayBtX2xvY2s7CiAgICAgICAgIE1ldGFBbGxvY2F0b3JUZXN0KiBt
X3BhcmVudDsKICAgICB9OwogCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0lu
amVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyLmNwcCBiL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuY3BwCmluZGV4
IDk4NDRlNWI2MzM1ZmJjYTI4NmUyYzExYzZiM2U5ODc4ZDljNDBkMGIuLjZlYmExNGExYTcwYzAz
ZDU1N2RiMjNiNjA3NjJkZjc5ZmZlYTRjYWUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuY3BwCisrKyBiL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eUNvbnRyb2xs
ZXIuY3BwCkBAIC0xOTksNyArMTk5LDcgQEAgQVhUaHJlYWQmIEFYVGhyZWFkOjpzaW5nbGV0b24o
KQogdm9pZCBBWFRocmVhZDo6Y3JlYXRlVGhyZWFkSWZOZWVkZWQoKQogewogICAgIC8vIFdhaXQg
Zm9yIHRoZSB0aHJlYWQgdG8gaW5pdGlhbGl6ZSB0aGUgcnVuIGxvb3AuCi0gICAgc3RkOjp1bmlx
dWVfbG9jazxMb2NrPiBsb2NrKG1faW5pdGlhbGl6ZVJ1bkxvb3BNdXRleCk7CisgICAgTG9ja2Vy
IGxvY2sgeyBtX2luaXRpYWxpemVSdW5Mb29wTXV0ZXggfTsKIAogICAgIGlmICghbV90aHJlYWQp
IHsKICAgICAgICAgbV90aHJlYWQgPSBUaHJlYWQ6OmNyZWF0ZSgiV0tUUjogQWNjZXNzaWJpbGl0
eUNvbnRyb2xsZXIiLCBbdGhpc10gewpAQCAtMjA4LDcgKzIwOCw3IEBAIHZvaWQgQVhUaHJlYWQ6
OmNyZWF0ZVRocmVhZElmTmVlZGVkKCkKICAgICAgICAgfSk7CiAgICAgfQogCi0gICAgbV9pbml0
aWFsaXplUnVuTG9vcENvbmRpdGlvblZhcmlhYmxlLndhaXQobG9jaywgW3RoaXNdIHsKKyAgICBt
X2luaXRpYWxpemVSdW5Mb29wQ29uZGl0aW9uVmFyaWFibGUud2FpdChtX2luaXRpYWxpemVSdW5M
b29wTXV0ZXgsIFt0aGlzXSB7CiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgICAgIHJldHVybiBt
X3RocmVhZFJ1bkxvb3A7CiAjZWxzZQo=
</data>
<flag name="commit-queue"
          id="450675"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>429479</attachid>
            <date>2021-05-23 15:08:12 -0700</date>
            <delta_ts>2021-05-23 16:45:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226157-20210523150811.patch</filename>
            <type>text/plain</type>
            <size>99742</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3OTM0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAw
YzRlNzliNTg2ZTkwMmM1MTBiY2NkMjdkOGMwYzA0MTU2MGNmMjhmLi45MzM2Mzg2OTAxOGFkODIy
NjhhZjUzMmE1OWMwMThjOTZjMjM1ZTY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw5NSBAQAorMjAyMS0wNS0yMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgor
CisgICAgICAgIE1ha2UgQ2hlY2tlZExvY2sgdGhlIGRlZmF1bHQgTG9jaworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI2MTU3CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWFrZSBDaGVja2VkTG9jayB0aGUg
ZGVmYXVsdCBMb2NrIHNvIHRoYXQgd2UgZ2V0IG1vcmUgYmVuZWZpdHMgZnJvbSBDbGFuZworICAg
ICAgICBUaHJlYWQgU2FmZXR5IEFuYWx5c2lzLiBOb3RlIHRoYXQgQ2hlY2tlZExvY2sgMTAwJSBy
ZWxpZXMgb24gdGhlIGV4aXN0aW5nCisgICAgICAgIExvY2sgaW1wbGVtZW50YXRpb24gYW5kIG1l
cmVseSBhZGRzIHRoZSBjbGFuZyBhbm90YXRpb25zIGZvciB0aHJlYWQgCisgICAgICAgIHNhZmV0
eS4KKworICAgICAgICBUaGF0IHRoaXMgcGF0Y2ggZG9lcyBpczoKKyAgICAgICAgMS4gUmVuYW1l
IHRoZSBMb2NrIGNsYXNzIHRvIFVuY2hlY2tlZExvY2sKKyAgICAgICAgMi4gUmVuYW1lIHRoZSBD
aGVja2VkTG9jayBjbGFzcyB0byBMb2NrCisgICAgICAgIDMuIFJlbmFtZSB0aGUgQ29uZGl0aW9u
IGNsYXNzIHRvIFVuY2hlY2tlZENvbmRpdGlvbgorICAgICAgICA0LiBSZW5hbWUgdGhlIENoZWNr
ZWRDb25kaXRpb24gY2xhc3MgdG8gQ29uZGl0aW9uCisgICAgICAgIDUuIFVwZGF0ZSB0aGUgdHlw
ZXMgb2YgY2VydGFpbiB2YXJpYWJsZXMgZnJvbSBMb2NrIC8gQ29uZGl0aW9uIHRvCisgICAgICAg
ICAgIFVuY2hlY2tlZExvY2sgLyBVbmNoZWNrZWRDb25kaXRpb24gaWYgSSBnb3QgYSBidWlsZCBm
YWlsdXJlLiBCdWlsZCAKKyAgICAgICAgICAgZmFpbHVyZXMgYXJlIHVzdWFsbHkgY2F1c2VkIGJ5
IHRoZSBmb2xsb3dpbmcgZmFjdHM6CisgICAgICAgICAgIC0gTG9ja2VyPENoZWNrZWRMb2NrPiBk
b2Vzbid0IHN1YmNsYXNzIEFic3RyYWN0TG9ja2VyIHdoaWNoIGEgbG90IG9mCisgICAgICAgICAg
ICAgSlNDIGNvZGUgcGFzc2VzIGFzIGFyZ3VtZW50CisgICAgICAgICAgIC0gTG9ja2VyPENoZWNr
ZWRMb2NrPiBoYXMgbm8gbW92ZSBjb25zdHJ1Y3RvcgorICAgICAgICAgICAtIExvY2tlcjxDaGVj
a2VkTG9jaz4gY2Fubm90IGJlIGNvbnN0cnVjdGVkIGZyb20gYSBsb2NrIHBvaW50ZXIsIG9ubHkK
KyAgICAgICAgICAgICBhIHJlZmVyZW5jZQorCisgICAgICAgIEZvciBub3csIENoZWNrZWRMb2Nr
IGFuZCBDaGVja2VkQ29uZGl0aW9uIHJlbWFpbiBhcyBhbGlhc2VzIHRvIExvY2sgYW5kIAorICAg
ICAgICBDb25kaXRpb24sIGluIHRoZWlyIHJlc3BlY3RpdmUgQ2hlY2tlZExvY2suaCAvIENoZWNr
ZWRDb25kaXRpb24uaCBoZWFkZXJzLgorICAgICAgICBJIHdpbGwgZHJvcCB0aGVtIGluIGEgZm9s
bG93LXVwIHRvIHJlZHVjZSBwYXRjaCBzaXplLgorCisgICAgICAgIEkgd2lsbCBhbHNvIGZvbGxv
dy11cCB0byB0cnkgYW5kIGdldCByaWQgb2YgYXMgbXVjaCB1c2FnZSBvZiBVbmNoZWNrZWRMb2Nr
CisgICAgICAgIGFuZCBVbmNoZWNrZWRDb25kaXRpb24gYXMgcG9zc2libGUuIEkgZGlkIG5vdCB0
cnkgdmVyeSBoYXJkIGluIHRoaXMgcGF0Y2gKKyAgICAgICAgdG8gcmVkdWNlIHBhdGNoIHNpemUu
IAorCisgICAgICAgICogYXNzZW1ibGVyL3Rlc3RtYXNtLmNwcDoKKyAgICAgICAgKiBkZmcvREZH
Q29tbW9uLmNwcDoKKyAgICAgICAgKiBkZmcvREZHVGhyZWFkRGF0YS5oOgorICAgICAgICAqIGRm
Zy9ERkdXb3JrbGlzdC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6V29ya2xpc3Q6OldvcmtsaXN0
KToKKyAgICAgICAgKiBkZmcvREZHV29ya2xpc3QuaDoKKyAgICAgICAgKiBkeW5iZW5jaC5jcHA6
CisgICAgICAgICogaGVhcC9CbG9ja0RpcmVjdG9yeS5oOgorICAgICAgICAoSlNDOjpCbG9ja0Rp
cmVjdG9yeTo6Yml0dmVjdG9yTG9jayk6CisgICAgICAgICogaGVhcC9Db2RlQmxvY2tTZXQuaDoK
KyAgICAgICAgKEpTQzo6Q29kZUJsb2NrU2V0OjpnZXRMb2NrKToKKyAgICAgICAgKiBoZWFwL0hl
YXAuY3BwOgorICAgICAgICAoSlNDOjpIZWFwOjpIZWFwKToKKyAgICAgICAgKiBoZWFwL0hlYXAu
aDoKKyAgICAgICAgKiBoZWFwL01hcmtlZFNwYWNlLmg6CisgICAgICAgIChKU0M6Ok1hcmtlZFNw
YWNlOjpkaXJlY3RvcnlMb2NrKToKKyAgICAgICAgKiBoZWFwL01hcmtpbmdDb25zdHJhaW50U29s
dmVyLmg6CisgICAgICAgICogaGVhcC9TbG90VmlzaXRvci5jcHA6CisgICAgICAgIChKU0M6OlNs
b3RWaXNpdG9yOjpkb25hdGVLbm93blBhcmFsbGVsKToKKyAgICAgICAgKiBoZWFwL1Nsb3RWaXNp
dG9yLmg6CisgICAgICAgICogaml0L0V4ZWN1dGFibGVBbGxvY2F0b3IuY3BwOgorICAgICAgICAo
SlNDOjpFeGVjdXRhYmxlQWxsb2NhdG9yOjpnZXRMb2NrIGNvbnN0KToKKyAgICAgICAgKEpTQzo6
ZHVtcEpJVE1lbW9yeSk6CisgICAgICAgICogaml0L0V4ZWN1dGFibGVBbGxvY2F0b3IuaDoKKyAg
ICAgICAgKEpTQzo6RXhlY3V0YWJsZUFsbG9jYXRvckJhc2U6OmdldExvY2sgY29uc3QpOgorICAg
ICAgICAqIGppdC9KSVRXb3JrbGlzdC5jcHA6CisgICAgICAgIChKU0M6OkpJVFdvcmtsaXN0OjpK
SVRXb3JrbGlzdCk6CisgICAgICAgICogaml0L0pJVFdvcmtsaXN0Lmg6CisgICAgICAgICoganNj
LmNwcDoKKyAgICAgICAgKiBwcm9maWxlci9Qcm9maWxlckRhdGFiYXNlLmg6CisgICAgICAgICog
cnVudGltZS9Db25jdXJyZW50SlNMb2NrLmg6CisgICAgICAgICogcnVudGltZS9EZWZlcnJlZFdv
cmtUaW1lci5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNMb2NrLmg6CisgICAgICAgICogcnVudGlt
ZS9TYW1wbGluZ1Byb2ZpbGVyLmNwcDoKKyAgICAgICAgKEpTQzo6RnJhbWVXYWxrZXI6OkZyYW1l
V2Fsa2VyKToKKyAgICAgICAgKEpTQzo6Q0ZyYW1lV2Fsa2VyOjpDRnJhbWVXYWxrZXIpOgorICAg
ICAgICAoSlNDOjpTYW1wbGluZ1Byb2ZpbGVyOjp0YWtlU2FtcGxlKToKKyAgICAgICAgKiBydW50
aW1lL1NhbXBsaW5nUHJvZmlsZXIuaDoKKyAgICAgICAgKEpTQzo6U2FtcGxpbmdQcm9maWxlcjo6
Z2V0TG9jayk6CisgICAgICAgICogcnVudGltZS9WTS5oOgorICAgICAgICAqIHJ1bnRpbWUvVk1U
cmFwcy5jcHA6CisgICAgICAgIChKU0M6OlZNVHJhcHM6OmludmFsaWRhdGVDb2RlQmxvY2tzT25T
dGFjayk6CisgICAgICAgIChKU0M6OlZNVHJhcHM6OlZNVHJhcHMpOgorICAgICAgICAqIHJ1bnRp
bWUvVk1UcmFwcy5oOgorICAgICAgICAqIHRvb2xzL0Z1bmN0aW9uT3ZlcnJpZGVzLmg6CisgICAg
ICAgICogdG9vbHMvVk1JbnNwZWN0b3IuY3BwOgorICAgICAgICAoSlNDOjplbnN1cmVJc1NhZmVU
b0xvY2spOgorICAgICAgICAqIHRvb2xzL1ZNSW5zcGVjdG9yLmg6CisgICAgICAgIChKU0M6OlZN
SW5zcGVjdG9yOjpnZXRMb2NrKToKKyAgICAgICAgKiB3YXNtL1dhc21DYWxsZWVSZWdpc3RyeS5o
OgorICAgICAgICAoSlNDOjpXYXNtOjpDYWxsZWVSZWdpc3RyeTo6Z2V0TG9jayk6CisgICAgICAg
ICogd2FzbS9XYXNtUGxhbi5oOgorICAgICAgICAqIHdhc20vV2FzbVN0cmVhbWluZ0NvbXBpbGVy
Lmg6CisgICAgICAgICogd2FzbS9XYXNtVGh1bmtzLmg6CisgICAgICAgICogd2FzbS9XYXNtV29y
a2xpc3QuY3BwOgorICAgICAgICAoSlNDOjpXYXNtOjpXb3JrbGlzdDo6V29ya2xpc3QpOgorICAg
ICAgICAqIHdhc20vV2FzbVdvcmtsaXN0Lmg6CisKIDIwMjEtMDUtMjMgIENocmlzIER1bWV6ICA8
Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBVc2UgQ2hlY2tlZExvY2sgaW4gZXZlbiBtb3Jl
IHBsYWNlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV1RGL0No
YW5nZUxvZwppbmRleCAxZGYzZjhlMGJhMWU3MjU3MWUwNmU2ZmE1ZDZjMjk5NzBkOTI2MmRmLi4w
MTczMDA1YThiMjg1MTRmZDU3NWM2NTdkMjk4YmZjY2QwNDhjNWQwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV1RGL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY2
IEBACisyMDIxLTA1LTIzICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAg
ICAgTWFrZSBDaGVja2VkTG9jayB0aGUgZGVmYXVsdCBMb2NrCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjYxNTcKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNYWtlIENoZWNrZWRMb2NrIHRoZSBkZWZhdWx0
IExvY2sgc28gdGhhdCB3ZSBnZXQgbW9yZSBiZW5lZml0cyBmcm9tIENsYW5nCisgICAgICAgIFRo
cmVhZCBTYWZldHkgQW5hbHlzaXMuIE5vdGUgdGhhdCBDaGVja2VkTG9jayAxMDAlIHJlbGllcyBv
biB0aGUgZXhpc3RpbmcKKyAgICAgICAgTG9jayBpbXBsZW1lbnRhdGlvbiBhbmQgbWVyZWx5IGFk
ZHMgdGhlIGNsYW5nIGFub3RhdGlvbnMgZm9yIHRocmVhZAorICAgICAgICBzYWZldHkuCisKKyAg
ICAgICAgVGhhdCB0aGlzIHBhdGNoIGRvZXMgaXM6CisgICAgICAgIDEuIFJlbmFtZSB0aGUgTG9j
ayBjbGFzcyB0byBVbmNoZWNrZWRMb2NrCisgICAgICAgIDIuIFJlbmFtZSB0aGUgQ2hlY2tlZExv
Y2sgY2xhc3MgdG8gTG9jaworICAgICAgICAzLiBSZW5hbWUgdGhlIENvbmRpdGlvbiBjbGFzcyB0
byBVbmNoZWNrZWRDb25kaXRpb24KKyAgICAgICAgNC4gUmVuYW1lIHRoZSBDaGVja2VkQ29uZGl0
aW9uIGNsYXNzIHRvIENvbmRpdGlvbgorICAgICAgICA1LiBVcGRhdGUgdGhlIHR5cGVzIG9mIGNl
cnRhaW4gdmFyaWFibGVzIGZyb20gTG9jayAvIENvbmRpdGlvbiB0bworICAgICAgICAgICBVbmNo
ZWNrZWRMb2NrIC8gVW5jaGVja2VkQ29uZGl0aW9uIGlmIEkgZ290IGEgYnVpbGQgZmFpbHVyZS4g
QnVpbGQKKyAgICAgICAgICAgZmFpbHVyZXMgYXJlIHVzdWFsbHkgY2F1c2VkIGJ5IHRoZSBmb2xs
b3dpbmcgZmFjdHM6CisgICAgICAgICAgIC0gTG9ja2VyPENoZWNrZWRMb2NrPiBkb2Vzbid0IHN1
YmNsYXNzIEFic3RyYWN0TG9ja2VyIHdoaWNoIGEgbG90IG9mCisgICAgICAgICAgICAgSlNDIGNv
ZGUgcGFzc2VzIGFzIGFyZ3VtZW50CisgICAgICAgICAgIC0gTG9ja2VyPENoZWNrZWRMb2NrPiBo
YXMgbm8gbW92ZSBjb25zdHJ1Y3RvcgorICAgICAgICAgICAtIExvY2tlcjxDaGVja2VkTG9jaz4g
Y2Fubm90IGJlIGNvbnN0cnVjdGVkIGZyb20gYSBsb2NrIHBvaW50ZXIsIG9ubHkKKyAgICAgICAg
ICAgICBhIHJlZmVyZW5jZQorICAgICAgICAKKyAgICAgICAgRm9yIG5vdywgQ2hlY2tlZExvY2sg
YW5kIENoZWNrZWRDb25kaXRpb24gcmVtYWluIGFzIGFsaWFzZXMgdG8gTG9jayBhbmQKKyAgICAg
ICAgQ29uZGl0aW9uLCBpbiB0aGVpciByZXNwZWN0aXZlIENoZWNrZWRMb2NrLmggLyBDaGVja2Vk
Q29uZGl0aW9uLmggaGVhZGVycy4KKyAgICAgICAgSSB3aWxsIGRyb3AgdGhlbSBpbiBhIGZvbGxv
dy11cCB0byByZWR1Y2UgcGF0Y2ggc2l6ZS4KKworICAgICAgICBJIHdpbGwgYWxzbyBmb2xsb3ct
dXAgdG8gdHJ5IGFuZCBnZXQgcmlkIG9mIGFzIG11Y2ggdXNhZ2Ugb2YgVW5jaGVja2VkTG9jawor
ICAgICAgICBhbmQgVW5jaGVja2VkQ29uZGl0aW9uIGFzIHBvc3NpYmxlLiBJIGRpZCBub3QgdHJ5
IHZlcnkgaGFyZCBpbiB0aGlzIHBhdGNoCisgICAgICAgIHRvIHJlZHVjZSBwYXRjaCBzaXplLgor
CisgICAgICAgICogd3RmL0F1dG9tYXRpY1RocmVhZC5jcHA6CisgICAgICAgIChXVEY6OkF1dG9t
YXRpY1RocmVhZENvbmRpdGlvbjo6d2FpdCk6CisgICAgICAgIChXVEY6OkF1dG9tYXRpY1RocmVh
ZENvbmRpdGlvbjo6d2FpdEZvcik6CisgICAgICAgIChXVEY6OkF1dG9tYXRpY1RocmVhZDo6QXV0
b21hdGljVGhyZWFkKToKKyAgICAgICAgKiB3dGYvQXV0b21hdGljVGhyZWFkLmg6CisgICAgICAg
ICogd3RmL0NoZWNrZWRDb25kaXRpb24uaDoKKyAgICAgICAgKiB3dGYvQ2hlY2tlZExvY2suaDoK
KyAgICAgICAgKiB3dGYvQ29uZGl0aW9uLmg6CisgICAgICAgICogd3RmL0xvY2suY3BwOgorICAg
ICAgICAoV1RGOjpVbmNoZWNrZWRMb2NrOjpsb2NrU2xvdyk6CisgICAgICAgIChXVEY6OlVuY2hl
Y2tlZExvY2s6OnVubG9ja1Nsb3cpOgorICAgICAgICAoV1RGOjpVbmNoZWNrZWRMb2NrOjp1bmxv
Y2tGYWlybHlTbG93KToKKyAgICAgICAgKFdURjo6VW5jaGVja2VkTG9jazo6c2FmZXBvaW50U2xv
dyk6CisgICAgICAgICogd3RmL0xvY2suaDoKKyAgICAgICAgKFdURjo6V1RGX0FTU0VSVFNfQUNR
VUlSRURfTE9DSyk6CisgICAgICAgICogd3RmL01ldGFBbGxvY2F0b3IuY3BwOgorICAgICAgICAo
V1RGOjpNZXRhQWxsb2NhdG9yOjpyZWxlYXNlKToKKyAgICAgICAgKFdURjo6TWV0YUFsbG9jYXRv
cjo6TWV0YUFsbG9jYXRvcik6CisgICAgICAgIChXVEY6Ok1ldGFBbGxvY2F0b3I6OmFsbG9jYXRl
KToKKyAgICAgICAgKFdURjo6TWV0YUFsbG9jYXRvcjo6Y3VycmVudFN0YXRpc3RpY3MpOgorICAg
ICAgICAqIHd0Zi9NZXRhQWxsb2NhdG9yLmg6CisgICAgICAgICogd3RmL1BhcmFsbGVsSGVscGVy
UG9vbC5jcHA6CisgICAgICAgIChXVEY6OlBhcmFsbGVsSGVscGVyUG9vbDo6UGFyYWxsZWxIZWxw
ZXJQb29sKToKKyAgICAgICAgKiB3dGYvUGFyYWxsZWxIZWxwZXJQb29sLmg6CisgICAgICAgICog
d3RmL1JlY3Vyc2l2ZUxvY2tBZGFwdGVyLmg6CisgICAgICAgICogd3RmL1dvcmtlclBvb2wuY3Bw
OgorICAgICAgICAoV1RGOjpXb3JrZXJQb29sOjpXb3JrZXJQb29sKToKKyAgICAgICAgKiB3dGYv
V29ya2VyUG9vbC5oOgorCiAyMDIxLTA1LTIzICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5j
b20+CiAKICAgICAgICAgRHJvcCBXVEY6OnRyeUhvbGRMb2NrKCkgYXMgaXQgaXMgaW5jb21wYXRp
YmxlIHdpdGggQ2xhbmcgVGhyZWFkIFNhZmV0eSBBbmFseXNpcwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDVkYmE1
ZmZmZmMwOTJiZDBjYTgyNmUxM2FiODBmMmQyYjJhZmNhZjEuLmMyMjkzNTI2NzI4NzU0NjUzMThm
MTU1ZGRhMTUyNGI4MGRkZWIxYTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2NyBAQAorMjAyMS0w
NS0yMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIE1ha2UgQ2hl
Y2tlZExvY2sgdGhlIGRlZmF1bHQgTG9jaworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjI2MTU3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgTWFrZSBDaGVja2VkTG9jayB0aGUgZGVmYXVsdCBMb2NrIHNvIHRo
YXQgd2UgZ2V0IG1vcmUgYmVuZWZpdHMgZnJvbSBDbGFuZworICAgICAgICBUaHJlYWQgU2FmZXR5
IEFuYWx5c2lzLiBOb3RlIHRoYXQgQ2hlY2tlZExvY2sgMTAwJSByZWxpZXMgb24gdGhlIGV4aXN0
aW5nCisgICAgICAgIExvY2sgaW1wbGVtZW50YXRpb24gYW5kIG1lcmVseSBhZGRzIHRoZSBjbGFu
ZyBhbm90YXRpb25zIGZvciB0aHJlYWQgCisgICAgICAgIHNhZmV0eS4KKworICAgICAgICBUaGF0
IHRoaXMgcGF0Y2ggZG9lcyBpczoKKyAgICAgICAgMS4gUmVuYW1lIHRoZSBMb2NrIGNsYXNzIHRv
IFVuY2hlY2tlZExvY2sKKyAgICAgICAgMi4gUmVuYW1lIHRoZSBDaGVja2VkTG9jayBjbGFzcyB0
byBMb2NrCisgICAgICAgIDMuIFJlbmFtZSB0aGUgQ29uZGl0aW9uIGNsYXNzIHRvIFVuY2hlY2tl
ZENvbmRpdGlvbgorICAgICAgICA0LiBSZW5hbWUgdGhlIENoZWNrZWRDb25kaXRpb24gY2xhc3Mg
dG8gQ29uZGl0aW9uCisgICAgICAgIDUuIFVwZGF0ZSB0aGUgdHlwZXMgb2YgY2VydGFpbiB2YXJp
YWJsZXMgZnJvbSBMb2NrIC8gQ29uZGl0aW9uIHRvCisgICAgICAgICAgIFVuY2hlY2tlZExvY2sg
LyBVbmNoZWNrZWRDb25kaXRpb24gaWYgSSBnb3QgYSBidWlsZCBmYWlsdXJlLiBCdWlsZCAKKyAg
ICAgICAgICAgZmFpbHVyZXMgYXJlIHVzdWFsbHkgY2F1c2VkIGJ5IHRoZSBmb2xsb3dpbmcgZmFj
dHM6CisgICAgICAgICAgIC0gTG9ja2VyPENoZWNrZWRMb2NrPiBkb2Vzbid0IHN1YmNsYXNzIEFi
c3RyYWN0TG9ja2VyIHdoaWNoIGEgbG90IG9mCisgICAgICAgICAgICAgSlNDIGNvZGUgcGFzc2Vz
IGFzIGFyZ3VtZW50CisgICAgICAgICAgIC0gTG9ja2VyPENoZWNrZWRMb2NrPiBoYXMgbm8gbW92
ZSBjb25zdHJ1Y3RvcgorICAgICAgICAgICAtIExvY2tlcjxDaGVja2VkTG9jaz4gY2Fubm90IGJl
IGNvbnN0cnVjdGVkIGZyb20gYSBsb2NrIHBvaW50ZXIsIG9ubHkKKyAgICAgICAgICAgICBhIHJl
ZmVyZW5jZQorCisgICAgICAgIEZvciBub3csIENoZWNrZWRMb2NrIGFuZCBDaGVja2VkQ29uZGl0
aW9uIHJlbWFpbiBhcyBhbGlhc2VzIHRvIExvY2sgYW5kIAorICAgICAgICBDb25kaXRpb24sIGlu
IHRoZWlyIHJlc3BlY3RpdmUgQ2hlY2tlZExvY2suaCAvIENoZWNrZWRDb25kaXRpb24uaCBoZWFk
ZXJzLgorICAgICAgICBJIHdpbGwgZHJvcCB0aGVtIGluIGEgZm9sbG93LXVwIHRvIHJlZHVjZSBw
YXRjaCBzaXplLgorCisgICAgICAgIEkgd2lsbCBhbHNvIGZvbGxvdy11cCB0byB0cnkgYW5kIGdl
dCByaWQgb2YgYXMgbXVjaCB1c2FnZSBvZiBVbmNoZWNrZWRMb2NrCisgICAgICAgIGFuZCBVbmNo
ZWNrZWRDb25kaXRpb24gYXMgcG9zc2libGUuIEkgZGlkIG5vdCB0cnkgdmVyeSBoYXJkIGluIHRo
aXMgcGF0Y2gKKyAgICAgICAgdG8gcmVkdWNlIHBhdGNoIHNpemUuIAorCisgICAgICAgICogTW9k
dWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQlNlcnZlci5jcHA6CisgICAgICAgICogTW9kdWxlcy93
ZWJhdWRpby9NZWRpYUVsZW1lbnRBdWRpb1NvdXJjZU5vZGUuaDoKKyAgICAgICAgKiBNb2R1bGVz
L3dlYmRhdGFiYXNlL09yaWdpbkxvY2suY3BwOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9N
R2xvYmFsT2JqZWN0Lmg6CisgICAgICAgICogZG9tL05vZGUuY3BwOgorICAgICAgICAqIGh0bWwv
SFRNTE1lZGlhRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50
OjpjcmVhdGVNZWRpYVBsYXllcik6CisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xDb250ZXh0
R3JvdXAuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xDb250ZXh0R3JvdXA6Om9iamVjdEdy
YXBoTG9ja0ZvckFDb250ZXh0KToKKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTENvbnRleHRH
cm91cC5oOgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMQ29udGV4dE9iamVjdC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpXZWJHTENvbnRleHRPYmplY3Q6Om9iamVjdEdyYXBoTG9ja0ZvckNv
bnRleHQpOgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMQ29udGV4dE9iamVjdC5oOgorICAg
ICAgICAqIGh0bWwvY2FudmFzL1dlYkdMT2JqZWN0Lmg6CisgICAgICAgICogaHRtbC9jYW52YXMv
V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJl
bmRlcmluZ0NvbnRleHRCYXNlOjpvYmplY3RHcmFwaExvY2spOgorICAgICAgICAqIGh0bWwvY2Fu
dmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuaDoKKyAgICAgICAgKiBodG1sL2NhbnZhcy9X
ZWJHTFNoYXJlZE9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFNoYXJlZE9iamVj
dDo6b2JqZWN0R3JhcGhMb2NrRm9yQ29udGV4dCk6CisgICAgICAgICogaHRtbC9jYW52YXMvV2Vi
R0xTaGFyZWRPYmplY3QuaDoKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5n
VHJlZU1hYy5oOgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL1JldmVyYkNvbnZvbHZlci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSZXZlcmJDb252b2x2ZXI6OmJhY2tncm91bmRUaHJlYWRFbnRy
eSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvU2hhZG93Qmx1ci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTY3JhdGNoQnVmZmVyOjpsb2NrKToKKyAgICAgICAgKFdlYkNvcmU6OlNoYWRv
d0JsdXI6OmRyYXdSZWN0U2hhZG93V2l0aFRpbGluZyk6CisgICAgICAgIChXZWJDb3JlOjpTaGFk
b3dCbHVyOjpkcmF3SW5zZXRTaGFkb3dXaXRoVGlsaW5nKToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvVmlkZW9TaW5rR1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvZW1lL1dlYktpdENvbW1vbkVuY3J5cHRpb25EZWNyeXB0
b3JHU3RyZWFtZXIuY3BwOgorCiAyMDIxLTA1LTIzICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBs
ZS5jb20+CiAKICAgICAgICAgVXNlIENoZWNrZWRMb2NrIGluIGV2ZW4gbW9yZSBwbGFjZXMKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cKaW5kZXggNDZkMzYwY2ZmMzRmMDI3ZWVkMzY5Nzg5ZjQ1NjI2M2EwMmFhY2YxOS4uMGRiZWEw
ZmVlN2YyODY5ZGYxMzkyZjMzMWRhMTRlZDRkYzNiYzQ4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0
NCBAQAorMjAyMS0wNS0yMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAg
ICAgIE1ha2UgQ2hlY2tlZExvY2sgdGhlIGRlZmF1bHQgTG9jaworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI2MTU3CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWFrZSBDaGVja2VkTG9jayB0aGUgZGVmYXVs
dCBMb2NrIHNvIHRoYXQgd2UgZ2V0IG1vcmUgYmVuZWZpdHMgZnJvbSBDbGFuZworICAgICAgICBU
aHJlYWQgU2FmZXR5IEFuYWx5c2lzLiBOb3RlIHRoYXQgQ2hlY2tlZExvY2sgMTAwJSByZWxpZXMg
b24gdGhlIGV4aXN0aW5nCisgICAgICAgIExvY2sgaW1wbGVtZW50YXRpb24gYW5kIG1lcmVseSBh
ZGRzIHRoZSBjbGFuZyBhbm90YXRpb25zIGZvciB0aHJlYWQgCisgICAgICAgIHNhZmV0eS4KKwor
ICAgICAgICBUaGF0IHRoaXMgcGF0Y2ggZG9lcyBpczoKKyAgICAgICAgMS4gUmVuYW1lIHRoZSBM
b2NrIGNsYXNzIHRvIFVuY2hlY2tlZExvY2sKKyAgICAgICAgMi4gUmVuYW1lIHRoZSBDaGVja2Vk
TG9jayBjbGFzcyB0byBMb2NrCisgICAgICAgIDMuIFJlbmFtZSB0aGUgQ29uZGl0aW9uIGNsYXNz
IHRvIFVuY2hlY2tlZENvbmRpdGlvbgorICAgICAgICA0LiBSZW5hbWUgdGhlIENoZWNrZWRDb25k
aXRpb24gY2xhc3MgdG8gQ29uZGl0aW9uCisgICAgICAgIDUuIFVwZGF0ZSB0aGUgdHlwZXMgb2Yg
Y2VydGFpbiB2YXJpYWJsZXMgZnJvbSBMb2NrIC8gQ29uZGl0aW9uIHRvCisgICAgICAgICAgIFVu
Y2hlY2tlZExvY2sgLyBVbmNoZWNrZWRDb25kaXRpb24gaWYgSSBnb3QgYSBidWlsZCBmYWlsdXJl
LiBCdWlsZCAKKyAgICAgICAgICAgZmFpbHVyZXMgYXJlIHVzdWFsbHkgY2F1c2VkIGJ5IHRoZSBm
b2xsb3dpbmcgZmFjdHM6CisgICAgICAgICAgIC0gTG9ja2VyPENoZWNrZWRMb2NrPiBkb2Vzbid0
IHN1YmNsYXNzIEFic3RyYWN0TG9ja2VyIHdoaWNoIGEgbG90IG9mCisgICAgICAgICAgICAgSlND
IGNvZGUgcGFzc2VzIGFzIGFyZ3VtZW50CisgICAgICAgICAgIC0gTG9ja2VyPENoZWNrZWRMb2Nr
PiBoYXMgbm8gbW92ZSBjb25zdHJ1Y3RvcgorICAgICAgICAgICAtIExvY2tlcjxDaGVja2VkTG9j
az4gY2Fubm90IGJlIGNvbnN0cnVjdGVkIGZyb20gYSBsb2NrIHBvaW50ZXIsIG9ubHkKKyAgICAg
ICAgICAgICBhIHJlZmVyZW5jZQorCisgICAgICAgIEZvciBub3csIENoZWNrZWRMb2NrIGFuZCBD
aGVja2VkQ29uZGl0aW9uIHJlbWFpbiBhcyBhbGlhc2VzIHRvIExvY2sgYW5kIAorICAgICAgICBD
b25kaXRpb24sIGluIHRoZWlyIHJlc3BlY3RpdmUgQ2hlY2tlZExvY2suaCAvIENoZWNrZWRDb25k
aXRpb24uaCBoZWFkZXJzLgorICAgICAgICBJIHdpbGwgZHJvcCB0aGVtIGluIGEgZm9sbG93LXVw
IHRvIHJlZHVjZSBwYXRjaCBzaXplLgorCisgICAgICAgIEkgd2lsbCBhbHNvIGZvbGxvdy11cCB0
byB0cnkgYW5kIGdldCByaWQgb2YgYXMgbXVjaCB1c2FnZSBvZiBVbmNoZWNrZWRMb2NrCisgICAg
ICAgIGFuZCBVbmNoZWNrZWRDb25kaXRpb24gYXMgcG9zc2libGUuIEkgZGlkIG5vdCB0cnkgdmVy
eSBoYXJkIGluIHRoaXMgcGF0Y2gKKyAgICAgICAgdG8gcmVkdWNlIHBhdGNoIHNpemUuIAorCisg
ICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTC5jcHA6
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMOjpwYWludFBpeGVsQnVm
ZmVyVG9JbWFnZUJ1ZmZlcik6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvSW5kZXhlZERCL1dl
YklEQlNlcnZlci5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9nbGliL0ljb25EYXRhYmFz
ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvV0tQcmludGluZ1ZpZXcubW06CisgICAgICAg
ICgtW1dLUHJpbnRpbmdWaWV3IGtub3dzUGFnZVJhbmdlOl0pOgorCiAyMDIxLTA1LTIzICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgVXNlIENoZWNrZWRMb2NrIGlu
IGV2ZW4gbW9yZSBwbGFjZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3Nl
bWJsZXIvUGVyZkxvZy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9QZXJmTG9n
LmgKaW5kZXggOGYyNGU4ZmE4YTNlMWI2YmM5NmQ1OThiNWQwZjI1MTUwYTdmZjcyMS4uOTc2MGRm
NjY1OGQyOTMzM2FmYTlhZGE4NzFhOTVjZTMyY2EwZDI0ZCAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9QZXJmTG9nLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2Fzc2VtYmxlci9QZXJmTG9nLmgKQEAgLTUwLDcgKzUwLDcgQEAgcHJpdmF0ZToKICAgICB2
b2lkKiBtX21hcmtlciB7IG51bGxwdHIgfTsKICAgICB1aW50NjRfdCBtX2NvZGVJbmRleCB7IDAg
fTsKICAgICBpbnQgbV9mZCB7IC0xIH07Ci0gICAgTG9jayBtX2xvY2s7CisgICAgVW5jaGVja2Vk
TG9jayBtX2xvY2s7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvdGVzdG1hc20uY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Fzc2VtYmxlci90ZXN0bWFzbS5jcHAKaW5kZXggMTkxZDE4MjkzNWFjMWE2ZTZmMGI1
MGI3YTMxM2JkOTg4N2FkYTQyMC4uZDM1M2U3MTJmODk5YzMwZTc5YmQ1MWM1ZGNjZDU3M2ExZDBl
YmM4MyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci90ZXN0bWFz
bS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci90ZXN0bWFzbS5jcHAK
QEAgLTE1Nyw3ICsxNTcsNyBAQCBuYW1lc3BhY2UgewogdXNpbmcgQ1BVU3RhdGUgPSBQcm9iZTo6
Q1BVU3RhdGU7CiAjZW5kaWYKIAotTG9jayBjcmFzaExvY2s7CitVbmNoZWNrZWRMb2NrIGNyYXNo
TG9jazsKIAogdHlwZWRlZiBXVEY6OkZ1bmN0aW9uPHZvaWQoQ0NhbGxIZWxwZXJzJik+IEdlbmVy
YXRvcjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDb21tb24u
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDb21tb24uY3BwCmluZGV4IGE3YWJj
NjQ3NDkzZDJiNjhkOThkYzJhNDAxNGJjMzNjN2RhYjg1ZmIuLjg3NjNjM2ZkNTFmYjE2NTRjNjk1
NDA0YTg1ZjY3YjBiOWU4MzcwNTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHQ29tbW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NvbW1v
bi5jcHAKQEAgLTM1LDcgKzM1LDcgQEAgbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBERkcgewog
CiBjb25zdCBjaGFyKiBjb25zdCB0aWVyTmFtZSA9ICJERkcgIjsKIAotc3RhdGljIExvY2sgY3Jh
c2hMb2NrOworc3RhdGljIFVuY2hlY2tlZExvY2sgY3Jhc2hMb2NrOwogCiB2b2lkIHN0YXJ0Q3Jh
c2hpbmcoKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdUaHJl
YWREYXRhLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1RocmVhZERhdGEuaAppbmRl
eCAzN2RmOWJkMTIxNTQ5Y2RlZDExZTk5ZjQyZmZkMmM1MGYwMjUyZDg2Li41MjJiN2QyYjdjMzYx
ZThiOWQzODBjNzI4Y2ZiOGEwNWIxNzQ2OWJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR1RocmVhZERhdGEuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1RocmVhZERhdGEuaApAQCAtNDcsNyArNDcsNyBAQCBwcml2YXRlOgogICAgIAogICAgIFdv
cmtsaXN0KiBtX3dvcmtsaXN0OwogICAgIFJlZlB0cjxBdXRvbWF0aWNUaHJlYWQ+IG1fdGhyZWFk
OwotICAgIExvY2sgbV9yaWdodFRvUnVuOworICAgIFVuY2hlY2tlZExvY2sgbV9yaWdodFRvUnVu
OwogICAgIFNhZmVwb2ludCogbV9zYWZlcG9pbnQ7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1dvcmtsaXN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHV29ya2xpc3QuY3BwCmluZGV4IDRkMjI4Y2ZlODdhZDk4MTkzNmMwN2MwOWQ0MWI3
Mjc1MTU1OTRhOTEuLmQxNTdhZGY4NzZkYzg0NjgzYTg2YzA0NmVhMmJlZWNiYWI5OWE5MzcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHV29ya2xpc3QuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHV29ya2xpc3QuY3BwCkBAIC0zOSw3ICszOSw3
IEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKIAogY2xhc3MgV29ya2xpc3Q6OlRo
cmVhZEJvZHkgZmluYWwgOiBwdWJsaWMgQXV0b21hdGljVGhyZWFkIHsKIHB1YmxpYzoKLSAgICBU
aHJlYWRCb2R5KGNvbnN0IEFic3RyYWN0TG9ja2VyJiBsb2NrZXIsIFdvcmtsaXN0JiB3b3JrbGlz
dCwgVGhyZWFkRGF0YSYgZGF0YSwgQm94PExvY2s+IGxvY2ssIFJlZjxBdXRvbWF0aWNUaHJlYWRD
b25kaXRpb24+JiYgY29uZGl0aW9uLCBpbnQgcmVsYXRpdmVQcmlvcml0eSkKKyAgICBUaHJlYWRC
b2R5KGNvbnN0IEFic3RyYWN0TG9ja2VyJiBsb2NrZXIsIFdvcmtsaXN0JiB3b3JrbGlzdCwgVGhy
ZWFkRGF0YSYgZGF0YSwgQm94PFVuY2hlY2tlZExvY2s+IGxvY2ssIFJlZjxBdXRvbWF0aWNUaHJl
YWRDb25kaXRpb24+JiYgY29uZGl0aW9uLCBpbnQgcmVsYXRpdmVQcmlvcml0eSkKICAgICAgICAg
OiBBdXRvbWF0aWNUaHJlYWQobG9ja2VyLCBsb2NrLCBXVEZNb3ZlKGNvbmRpdGlvbiksIFRocmVh
ZFR5cGU6OkNvbXBpbGVyKQogICAgICAgICAsIG1fd29ya2xpc3Qod29ya2xpc3QpCiAgICAgICAg
ICwgbV9kYXRhKGRhdGEpCkBAIC0xODEsNyArMTgxLDcgQEAgc3RhdGljIENTdHJpbmcgY3JlYXRl
V29ya2xpc3ROYW1lKENTdHJpbmcmJiB0aWVyTmFtZSkKIFdvcmtsaXN0OjpXb3JrbGlzdChDU3Ry
aW5nJiYgdGllck5hbWUpCiAgICAgOiBtX3RocmVhZE5hbWUoY3JlYXRlV29ya2xpc3ROYW1lKFdU
Rk1vdmUodGllck5hbWUpKSkKICAgICAsIG1fcGxhbkVucXVldWVkKEF1dG9tYXRpY1RocmVhZENv
bmRpdGlvbjo6Y3JlYXRlKCkpCi0gICAgLCBtX2xvY2soQm94PExvY2s+OjpjcmVhdGUoKSkKKyAg
ICAsIG1fbG9jayhCb3g8VW5jaGVja2VkTG9jaz46OmNyZWF0ZSgpKQogewogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1dvcmtsaXN0LmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1dvcmtsaXN0LmgKaW5kZXggMWNlMDJjMDdkOGIxMjgxOTRiY2Mw
M2M3ZjJhNTQxY2QwYTVmNDUyOS4uNTc2ZTAzZTQ3ZTZlZjUwM2M2ZDAxMTZlY2ZiZGMwYThjNmM3
NWM4OCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdXb3JrbGlzdC5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHV29ya2xpc3QuaApAQCAtMTEwLDEw
ICsxMTAsMTAgQEAgcHJpdmF0ZToKICAgICAvLyBiZSBjb21wbGV0ZWQuCiAgICAgVmVjdG9yPFJl
ZlB0cjxQbGFuPiwgMTY+IG1fcmVhZHlQbGFuczsKICAgICBSZWY8QXV0b21hdGljVGhyZWFkQ29u
ZGl0aW9uPiBtX3BsYW5FbnF1ZXVlZDsKLSAgICBDb25kaXRpb24gbV9wbGFuQ29tcGlsZWQ7Cisg
ICAgVW5jaGVja2VkQ29uZGl0aW9uIG1fcGxhbkNvbXBpbGVkOwogCi0gICAgTG9jayBtX3N1c3Bl
bnNpb25Mb2NrOwotICAgIEJveDxMb2NrPiBtX2xvY2s7CisgICAgVW5jaGVja2VkTG9jayBtX3N1
c3BlbnNpb25Mb2NrOworICAgIEJveDxVbmNoZWNrZWRMb2NrPiBtX2xvY2s7CiB9OwogCiBKU19F
WFBPUlRfUFJJVkFURSB1bnNpZ25lZCBzZXROdW1iZXJPZkRGR0NvbXBpbGVyVGhyZWFkcyh1bnNp
Z25lZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZHluYmVuY2guY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2R5bmJlbmNoLmNwcAppbmRleCA4ZjllNWViNzQxMDQ3NWZi
N2M4YjA4NjkyNjIzMzRmZTJhOTc4OTg1Li43OTUyNjExMGUyYTNhNjIwNTJkMTA5ZTliZGI4OGU5
ZWVhYmZmZjU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZHluYmVuY2guY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9keW5iZW5jaC5jcHAKQEAgLTQwLDcgKzQwLDcg
QEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAogbmFtZXNwYWNlIHsKIAotTG9jayBjcmFzaExvY2s7
CitVbmNoZWNrZWRMb2NrIGNyYXNoTG9jazsKIGNvbnN0IGNoYXIqIG5hbWVGaWx0ZXI7CiB1bnNp
Z25lZCByZXF1ZXN0ZWRJdGVyYXRpb25Db3VudDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2hlYXAvQmxvY2tEaXJlY3RvcnkuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9o
ZWFwL0Jsb2NrRGlyZWN0b3J5LmgKaW5kZXggZGFhMDNjNDdlZGY5ZDM2ZDE1NmJkNWQxYTY2MjFi
ZWU2YWFkZjhhZC4uOTAxNTg4Yzk0MzljMzVkZmM4MDRhMGI3NTdjNWU1YjU2M2Y0NGE0ZSAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvQmxvY2tEaXJlY3RvcnkuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9CbG9ja0RpcmVjdG9yeS5oCkBAIC05Myw3ICs5
Myw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgdXBkYXRlUGVyY2VudGFnZU9mUGFnZWRPdXRQYWdl
cyhXVEY6OlNpbXBsZVN0YXRzJik7CiAgICAgCi0gICAgTG9jayYgYml0dmVjdG9yTG9jaygpIHsg
cmV0dXJuIG1fYml0dmVjdG9yTG9jazsgfQorICAgIFVuY2hlY2tlZExvY2smIGJpdHZlY3Rvckxv
Y2soKSB7IHJldHVybiBtX2JpdHZlY3RvckxvY2s7IH0KIAogI2RlZmluZSBCTE9DS19ESVJFQ1RP
UllfQklUX0FDQ0VTU09SUyhsb3dlckJpdE5hbWUsIGNhcGl0YWxCaXROYW1lKSAgICAgXAogICAg
IGJvb2wgaXMgIyMgY2FwaXRhbEJpdE5hbWUoY29uc3QgQWJzdHJhY3RMb2NrZXImLCBzaXplX3Qg
aW5kZXgpIGNvbnN0IHsgcmV0dXJuIG1fYml0cy5pcyAjIyBjYXBpdGFsQml0TmFtZShpbmRleCk7
IH0gXApAQCAtMTU1LDcgKzE1NSw3IEBAIHByaXZhdGU6CiAgICAgLy8gTXV0YXRvciB1c2VzIHRo
aXMgdG8gZ3VhcmQgcmVzaXppbmcgdGhlIGJpdHZlY3RvcnMuIFRob3NlIHRoaW5ncyBpbiB0aGUg
R0MgdGhhdCBtYXkgcnVuCiAgICAgLy8gY29uY3VycmVudGx5IHRvIHRoZSBtdXRhdG9yIG11c3Qg
bG9jayB0aGlzIHdoZW4gYWNjZXNzaW5nIHRoZSBiaXR2ZWN0b3JzLgogICAgIEJsb2NrRGlyZWN0
b3J5Qml0cyBtX2JpdHM7Ci0gICAgTG9jayBtX2JpdHZlY3RvckxvY2s7CisgICAgVW5jaGVja2Vk
TG9jayBtX2JpdHZlY3RvckxvY2s7CiAgICAgTG9jayBtX2xvY2FsQWxsb2NhdG9yc0xvY2s7CiAg
ICAgQ2VsbEF0dHJpYnV0ZXMgbV9hdHRyaWJ1dGVzOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaGVhcC9Db2RlQmxvY2tTZXQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9o
ZWFwL0NvZGVCbG9ja1NldC5oCmluZGV4IGIwZGNiNmNjNzdjOWY5OWQzMDJjNzk5ZDk4ZTM5ZTk1
M2U2YWY0MTkuLjg1NmNjMWJiZjhiZDJkMTdjZGNkY2E3ZDNiNDRjNzFmMmZhNzBiMTggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0NvZGVCbG9ja1NldC5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0NvZGVCbG9ja1NldC5oCkBAIC01NCw3ICs1NCw3IEBA
IHB1YmxpYzoKICAgICB2b2lkIGNsZWFyQ3VycmVudGx5RXhlY3V0aW5nKCk7CiAKICAgICBib29s
IGNvbnRhaW5zKGNvbnN0IEFic3RyYWN0TG9ja2VyJiwgdm9pZCogY2FuZGlkYXRlQ29kZUJsb2Nr
KTsKLSAgICBMb2NrJiBnZXRMb2NrKCkgeyByZXR1cm4gbV9sb2NrOyB9CisgICAgVW5jaGVja2Vk
TG9jayYgZ2V0TG9jaygpIHsgcmV0dXJuIG1fbG9jazsgfQogCiAgICAgLy8gVGhpcyBpcyBleHBl
Y3RlZCB0byBydW4gb25seSB3aGVuIHdlJ3JlIG5vdCBhZGRpbmcgdG8gdGhlIHNldCBmb3Igbm93
LiBJZgogICAgIC8vIHRoaXMgbmVlZHMgdG8gcnVuIGNvbmN1cnJlbnRseSBpbiB0aGUgZnV0dXJl
LCB3ZSdsbCBuZWVkIHRvIGxvY2sgYXJvdW5kIHRoaXMuCkBAIC03OCw3ICs3OCw3IEBAIHB1Ymxp
YzoKIHByaXZhdGU6CiAgICAgSGFzaFNldDxDb2RlQmxvY2sqPiBtX2NvZGVCbG9ja3M7CiAgICAg
SGFzaFNldDxDb2RlQmxvY2sqPiBtX2N1cnJlbnRseUV4ZWN1dGluZzsKLSAgICBMb2NrIG1fbG9j
azsKKyAgICBVbmNoZWNrZWRMb2NrIG1fbG9jazsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNwcAppbmRleCA4YmM4NmQyY2E3NTE1YjRiOGUyZjc2
NGRlOTBlMmE2YzI0NzI2NjkxLi44NjFhNDAyZTUwZDBiY2MwZmVhZTYwMzA0N2NmMzVjMmVjZGM0
ZGU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNwcApAQCAtMzAyLDcgKzMwMiw3IEBA
IEhlYXA6OkhlYXAoVk0mIHZtLCBIZWFwVHlwZSBoZWFwVHlwZSkKICAgICAsIG1fc2hhcmVkQ29s
bGVjdG9yTWFya1N0YWNrKG1ha2VVbmlxdWU8TWFya1N0YWNrQXJyYXk+KCkpCiAgICAgLCBtX3No
YXJlZE11dGF0b3JNYXJrU3RhY2sobWFrZVVuaXF1ZTxNYXJrU3RhY2tBcnJheT4oKSkKICAgICAs
IG1faGVscGVyQ2xpZW50KCZoZWFwSGVscGVyUG9vbCgpKQotICAgICwgbV90aHJlYWRMb2NrKEJv
eDxMb2NrPjo6Y3JlYXRlKCkpCisgICAgLCBtX3RocmVhZExvY2soQm94PFVuY2hlY2tlZExvY2s+
OjpjcmVhdGUoKSkKICAgICAsIG1fdGhyZWFkQ29uZGl0aW9uKEF1dG9tYXRpY1RocmVhZENvbmRp
dGlvbjo6Y3JlYXRlKCkpCiB7CiAgICAgbV93b3JsZFN0YXRlLnN0b3JlKDApOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2hlYXAvSGVhcC5oCmluZGV4IDdhNTNlMDUxNWQwNjk2NTNkMDRmYjliYWMzNTU4ZDdlODFk
OTVmMmMuLjY4ZDkwNzRmZGYzZDhlYThmNDg3YjA2NDg3YjgwZDdhMmIxYjgwMzEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaGVhcC9IZWFwLmgKQEAgLTcyMiw4ICs3MjIsOCBAQCBwcml2YXRlOgogICAgIEF0
b21pYzx1bnNpZ25lZD4gbV93b3JsZFN0YXRlOwogICAgIGJvb2wgbV93b3JsZElzU3RvcHBlZCB7
IGZhbHNlIH07CiAgICAgTG9jayBtX3Zpc2l0UmFjZUxvY2s7Ci0gICAgTG9jayBtX21hcmtpbmdN
dXRleDsKLSAgICBDb25kaXRpb24gbV9tYXJraW5nQ29uZGl0aW9uVmFyaWFibGU7CisgICAgVW5j
aGVja2VkTG9jayBtX21hcmtpbmdNdXRleDsKKyAgICBVbmNoZWNrZWRDb25kaXRpb24gbV9tYXJr
aW5nQ29uZGl0aW9uVmFyaWFibGU7CiAKICAgICBNb25vdG9uaWNUaW1lIG1fYmVmb3JlR0M7CiAg
ICAgTW9ub3RvbmljVGltZSBtX2FmdGVyR0M7CkBAIC03NDYsNyArNzQ2LDcgQEAgcHJpdmF0ZToK
IAogICAgIHVpbnQ2NF90IG1fbXV0YXRvckV4ZWN1dGlvblZlcnNpb24geyAwIH07CiAgICAgdWlu
dDY0X3QgbV9waGFzZVZlcnNpb24geyAwIH07Ci0gICAgQm94PExvY2s+IG1fdGhyZWFkTG9jazsK
KyAgICBCb3g8VW5jaGVja2VkTG9jaz4gbV90aHJlYWRMb2NrOwogICAgIFJlZjxBdXRvbWF0aWNU
aHJlYWRDb25kaXRpb24+IG1fdGhyZWFkQ29uZGl0aW9uOyAvLyBUaGUgbXV0YXRvciBtdXN0IG5v
dCB3YWl0IG9uIHRoaXMuIEl0IHdvdWxkIGNhdXNlIGEgZGVhZGxvY2suCiAgICAgUmVmUHRyPEF1
dG9tYXRpY1RocmVhZD4gbV90aHJlYWQ7CiAKQEAgLTc2OCw4ICs3NjgsOCBAQCBwcml2YXRlOgog
I2VuZGlmCiAKICAgICBib29sIG1fcGFyYWxsZWxNYXJrZXJzU2hvdWxkRXhpdCB7IGZhbHNlIH07
Ci0gICAgTG9jayBtX2NvbGxlY3RDb250aW51b3VzbHlMb2NrOwotICAgIENvbmRpdGlvbiBtX2Nv
bGxlY3RDb250aW51b3VzbHlDb25kaXRpb247CisgICAgVW5jaGVja2VkTG9jayBtX2NvbGxlY3RD
b250aW51b3VzbHlMb2NrOworICAgIFVuY2hlY2tlZENvbmRpdGlvbiBtX2NvbGxlY3RDb250aW51
b3VzbHlDb25kaXRpb247CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hcmtlZFNwYWNlLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaGVhcC9NYXJrZWRTcGFjZS5oCmluZGV4IDViZTUxZGU3ZTRjZjk5YjNkNmY0Nzc3N2Yw
MGI2ZDJhOTdhYjgwNGYuLjI2OGI5NzBhNTk4YjQyNWI5ZmNlMzY3ZGIyZWJhZWE3MWViY2MzMWIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hcmtlZFNwYWNlLmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTWFya2VkU3BhY2UuaApAQCAtMTY4LDcgKzE2
OCw3IEBAIHB1YmxpYzoKICAgICAKICAgICBCbG9ja0RpcmVjdG9yeSogZmlyc3REaXJlY3Rvcnko
KSBjb25zdCB7IHJldHVybiBtX2RpcmVjdG9yaWVzLmZpcnN0KCk7IH0KICAgICAKLSAgICBMb2Nr
JiBkaXJlY3RvcnlMb2NrKCkgeyByZXR1cm4gbV9kaXJlY3RvcnlMb2NrOyB9CisgICAgVW5jaGVj
a2VkTG9jayYgZGlyZWN0b3J5TG9jaygpIHsgcmV0dXJuIG1fZGlyZWN0b3J5TG9jazsgfQogICAg
IHZvaWQgYWRkQmxvY2tEaXJlY3RvcnkoY29uc3QgQWJzdHJhY3RMb2NrZXImLCBCbG9ja0RpcmVj
dG9yeSopOwogICAgIAogICAgIC8vIFdoZW4gdGhpcyBpcyB0cnVlIGl0IG1lYW5zIHRoYXQgd2Ug
aGF2ZSBmbGlwcGVkIGJ1dCB0aGUgbWFyayBiaXRzIGhhdmVuJ3QgY29udmVyZ2VkIHlldC4KQEAg
LTIxNCw3ICsyMTQsNyBAQCBwcml2YXRlOgogICAgIEhlYXBWZXJzaW9uIG1fbmV3bHlBbGxvY2F0
ZWRWZXJzaW9uIHsgaW5pdGlhbFZlcnNpb24gfTsKICAgICBib29sIG1faXNJdGVyYXRpbmcgeyBm
YWxzZSB9OwogICAgIGJvb2wgbV9pc01hcmtpbmcgeyBmYWxzZSB9OwotICAgIExvY2sgbV9kaXJl
Y3RvcnlMb2NrOworICAgIFVuY2hlY2tlZExvY2sgbV9kaXJlY3RvcnlMb2NrOwogICAgIE1hcmtl
ZEJsb2NrU2V0IG1fYmxvY2tzOwogICAgIAogICAgIFNlbnRpbmVsTGlua2VkTGlzdDxXZWFrU2V0
LCBCYXNpY1Jhd1NlbnRpbmVsTm9kZTxXZWFrU2V0Pj4gbV9hY3RpdmVXZWFrU2V0czsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hcmtpbmdDb25zdHJhaW50U29sdmVy
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYXJraW5nQ29uc3RyYWludFNvbHZlci5o
CmluZGV4IDhlNGYyZjRkZGYzMWNmYzgwNzFjZjNiZWNiNmU1ZTI3OGFlY2IwMWUuLjM1MGU1NTY2
MjQyODRkYWJlNDczMTdmYzgwZDJmZGQ2YjlhNTg3N2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9oZWFwL01hcmtpbmdDb25zdHJhaW50U29sdmVyLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2hlYXAvTWFya2luZ0NvbnN0cmFpbnRTb2x2ZXIuaApAQCAtOTUsOCArOTUs
OCBAQCBwcml2YXRlOgogICAgIEJpdFZlY3RvciBtX2V4ZWN1dGVkOwogICAgIERlcXVlPFRhc2tX
aXRoQ29uc3RyYWludCwgMzI+IG1fdG9FeGVjdXRlSW5QYXJhbGxlbDsKICAgICBWZWN0b3I8dW5z
aWduZWQsIDMyPiBtX3RvRXhlY3V0ZVNlcXVlbnRpYWxseTsKLSAgICBMb2NrIG1fbG9jazsKLSAg
ICBDb25kaXRpb24gbV9jb25kaXRpb247CisgICAgVW5jaGVja2VkTG9jayBtX2xvY2s7CisgICAg
VW5jaGVja2VkQ29uZGl0aW9uIG1fY29uZGl0aW9uOwogICAgIGJvb2wgbV9waWNrTmV4dElzU3Rp
bGxBY3RpdmUgeyB0cnVlIH07CiAgICAgdW5zaWduZWQgbV9udW1UaHJlYWRzVGhhdE1heVByb2R1
Y2VXb3JrIHsgMCB9OwogICAgIFZlY3RvcjxWaXNpdENvdW50ZXIsIDE2PiBtX3Zpc2l0Q291bnRl
cnM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9TbG90VmlzaXRvci5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9TbG90VmlzaXRvci5jcHAKaW5kZXggZjlh
MTgzMjNjNzI4MzM0NzE5OGQ5Njg4OWRjNTlmNzQzNzhmMjA3Mi4uYWI3MzJjMjRlYzUwZTg5MDli
NDkxZWM5YjE2OWFmMzBmZWM4OTMzNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2hlYXAvU2xvdFZpc2l0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1Ns
b3RWaXNpdG9yLmNwcApAQCAtNDM2LDcgKzQzNiw3IEBAIHZvaWQgU2xvdFZpc2l0b3I6OmRvbmF0
ZUtub3duUGFyYWxsZWwoTWFya1N0YWNrQXJyYXkmIGZyb20sIE1hcmtTdGFja0FycmF5JiB0bykK
IAogICAgIC8vIElmIHdlJ3JlIGNvbnRlbmRpbmcgb24gdGhlIGxvY2ssIGJlIGNvbnNlcnZhdGl2
ZSBhbmQgYXNzdW1lIHRoYXQgYW5vdGhlcgogICAgIC8vIHRocmVhZCBpcyBhbHJlYWR5IGRvbmF0
aW5nLgotICAgIHN0ZDo6dW5pcXVlX2xvY2s8TG9jaz4gbG9jayhtX2hlYXAubV9tYXJraW5nTXV0
ZXgsIHN0ZDo6dHJ5X3RvX2xvY2spOworICAgIHN0ZDo6dW5pcXVlX2xvY2s8VW5jaGVja2VkTG9j
az4gbG9jayhtX2hlYXAubV9tYXJraW5nTXV0ZXgsIHN0ZDo6dHJ5X3RvX2xvY2spOwogICAgIGlm
ICghbG9jay5vd25zX2xvY2soKSkKICAgICAgICAgcmV0dXJuOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaGVhcC9TbG90VmlzaXRvci5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2hlYXAvU2xvdFZpc2l0b3IuaAppbmRleCA0MjMzM2FmM2UwMjAyNjdlNTM3ZTA5M2U0YjA2
MzMyMjFkZTNlNzNhLi5kNTVkYjYwMTdkZTczY2Y2YzJmMWNjY2Y0Y2YzY2Q1NDM4Mzk2NTM5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9TbG90VmlzaXRvci5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1Nsb3RWaXNpdG9yLmgKQEAgLTE2MSw3ICsxNjEs
NyBAQCBwdWJsaWM6CiAKICAgICBib29sIG11dGF0b3JJc1N0b3BwZWQoKSBjb25zdCBmaW5hbCB7
IHJldHVybiBtX211dGF0b3JJc1N0b3BwZWQ7IH0KICAgICAKLSAgICBMb2NrJiByaWdodFRvUnVu
KCkgeyByZXR1cm4gbV9yaWdodFRvUnVuOyB9CisgICAgVW5jaGVja2VkTG9jayYgcmlnaHRUb1J1
bigpIHsgcmV0dXJuIG1fcmlnaHRUb1J1bjsgfQogICAgIAogICAgIHZvaWQgdXBkYXRlTXV0YXRv
cklzU3RvcHBlZChjb25zdCBBYnN0cmFjdExvY2tlciYpOwogICAgIHZvaWQgdXBkYXRlTXV0YXRv
cklzU3RvcHBlZCgpOwpAQCAtMjMyLDcgKzIzMiw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX211
dGF0b3JJc1N0b3BwZWQgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9jYW5PcHRpbWl6ZUZvclN0b3Bw
ZWRNdXRhdG9yIHsgZmFsc2UgfTsKICAgICBib29sIG1faXNJblBhcmFsbGVsTW9kZSB7IGZhbHNl
IH07Ci0gICAgTG9jayBtX3JpZ2h0VG9SdW47CisgICAgVW5jaGVja2VkTG9jayBtX3JpZ2h0VG9S
dW47CiAgICAgCiAgICAgLy8gUHV0IHBhZGRpbmcgaGVyZSB0byBtaXRpZ2F0ZSBmYWxzZSBzaGFy
aW5nIGJldHdlZW4gbXVsdGlwbGUgU2xvdFZpc2l0b3JzLgogICAgIGNoYXIgcGFkZGluZ1s2NF07
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0V4ZWN1dGFibGVBbGxvY2F0
b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9FeGVjdXRhYmxlQWxsb2NhdG9yLmNw
cAppbmRleCAyNzllMDc1ZTRjYjYxNzcyOWM2ZTJkNWZlZmY5ODYyN2M3MDUyZjAxLi42MTk0NTVi
MWY2ZGJhY2E0YTdkZGFjN2NiZjZkOWM5MmZhMTZjYTJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0V4ZWN1dGFibGVBbGxvY2F0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvRXhlY3V0YWJsZUFsbG9jYXRvci5jcHAKQEAgLTQ4NSw3ICs0ODUsNyBA
QCBwdWJsaWM6CiAjZW5kaWYgLy8gRU5BQkxFKEpVTVBfSVNMQU5EUykKICAgICB9CiAKLSAgICBM
b2NrJiBnZXRMb2NrKCkgeyByZXR1cm4gbV9sb2NrOyB9CisgICAgVW5jaGVja2VkTG9jayYgZ2V0
TG9jaygpIHsgcmV0dXJuIG1fbG9jazsgfQogCiAgICAgLy8gTm9uIGF0b21pYwogICAgIHNpemVf
dCBieXRlc0FsbG9jYXRlZCgpIApAQCAtNTQ3LDcgKzU0Nyw3IEBAIHB1YmxpYzoKICAgICB9CiAK
ICNpZiBFTkFCTEUoSlVNUF9JU0xBTkRTKQotICAgIHZvaWQgaGFuZGxlV2lsbEJlUmVsZWFzZWQo
Y29uc3QgTG9ja0hvbGRlciYgbG9ja2VyLCBNZXRhQWxsb2NhdG9ySGFuZGxlJiBoYW5kbGUpCisg
ICAgdm9pZCBoYW5kbGVXaWxsQmVSZWxlYXNlZChjb25zdCBVbmNoZWNrZWRMb2NrSG9sZGVyJiBs
b2NrZXIsIE1ldGFBbGxvY2F0b3JIYW5kbGUmIGhhbmRsZSkKICAgICB7CiAgICAgICAgIGlmICht
X2lzbGFuZHNGb3JKdW1wU291cmNlTG9jYXRpb24uaXNFbXB0eSgpKQogICAgICAgICAgICAgcmV0
dXJuOwpAQCAtNTk5LDcgKzU5OSw3IEBAIHByaXZhdGU6CiAgICAgICAgIHJldHVybiByZXN1bHQ7
CiAgICAgfQogCi0gICAgdm9pZCBmcmVlSnVtcElzbGFuZHMoY29uc3QgTG9ja0hvbGRlciYsIElz
bGFuZHMqIGlzbGFuZHMpCisgICAgdm9pZCBmcmVlSnVtcElzbGFuZHMoY29uc3QgVW5jaGVja2Vk
TG9ja0hvbGRlciYsIElzbGFuZHMqIGlzbGFuZHMpCiAgICAgewogICAgICAgICBmb3IgKENvZGVM
b2NhdGlvbkxhYmVsPEV4ZWN1dGFibGVNZW1vcnlQdHJUYWc+IGp1bXBJc2xhbmQgOiBpc2xhbmRz
LT5qdW1wSXNsYW5kcykgewogICAgICAgICAgICAgdWludHB0cl90IHVudGFnZ2VkSnVtcElzbGFu
ZCA9IGJpdHdpc2VfY2FzdDx1aW50cHRyX3Q+KGp1bXBJc2xhbmQuZGF0YUxvY2F0aW9uKCkpOwpA
QCAtNjEwLDE0ICs2MTAsMTQgQEAgcHJpdmF0ZToKICAgICAgICAgaXNsYW5kcy0+anVtcElzbGFu
ZHMuY2xlYXIoKTsKICAgICB9CiAKLSAgICB2b2lkIGZyZWVJc2xhbmRzKGNvbnN0IExvY2tIb2xk
ZXImIGxvY2tlciwgSXNsYW5kcyogaXNsYW5kcykKKyAgICB2b2lkIGZyZWVJc2xhbmRzKGNvbnN0
IFVuY2hlY2tlZExvY2tIb2xkZXImIGxvY2tlciwgSXNsYW5kcyogaXNsYW5kcykKICAgICB7CiAg
ICAgICAgIGZyZWVKdW1wSXNsYW5kcyhsb2NrZXIsIGlzbGFuZHMpOwogICAgICAgICBtX2lzbGFu
ZHNGb3JKdW1wU291cmNlTG9jYXRpb24ucmVtb3ZlKGlzbGFuZHMpOwogICAgICAgICBkZWxldGUg
aXNsYW5kczsKICAgICB9CiAKLSAgICB2b2lkKiBpc2xhbmRGb3JKdW1wTG9jYXRpb24oY29uc3Qg
TG9ja0hvbGRlciYgbG9ja2VyLCB1aW50cHRyX3QganVtcExvY2F0aW9uLCB1aW50cHRyX3QgdGFy
Z2V0LCBib29sIGNvbmN1cnJlbnRseSkKKyAgICB2b2lkKiBpc2xhbmRGb3JKdW1wTG9jYXRpb24o
Y29uc3QgVW5jaGVja2VkTG9ja0hvbGRlciYgbG9ja2VyLCB1aW50cHRyX3QganVtcExvY2F0aW9u
LCB1aW50cHRyX3QgdGFyZ2V0LCBib29sIGNvbmN1cnJlbnRseSkKICAgICB7CiAgICAgICAgIElz
bGFuZHMqIGlzbGFuZHMgPSBtX2lzbGFuZHNGb3JKdW1wU291cmNlTG9jYXRpb24uZmluZEV4YWN0
KGJpdHdpc2VfY2FzdDx2b2lkKj4oanVtcExvY2F0aW9uKSk7CiAgICAgICAgIGlmIChpc2xhbmRz
KSB7CkBAIC03NDYsNyArNzQ2LDcgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIHJldHVybiBpc2xh
bmRzUGVyUGFnZTsKICAgICAgICAgfQogCi0gICAgICAgIHZvaWQgcmVsZWFzZShjb25zdCBMb2Nr
SG9sZGVyJiBsb2NrZXIsIE1ldGFBbGxvY2F0b3JIYW5kbGUmIGhhbmRsZSkgZmluYWwKKyAgICAg
ICAgdm9pZCByZWxlYXNlKGNvbnN0IFVuY2hlY2tlZExvY2tIb2xkZXImIGxvY2tlciwgTWV0YUFs
bG9jYXRvckhhbmRsZSYgaGFuZGxlKSBmaW5hbAogICAgICAgICB7CiAgICAgICAgICAgICBtX2Zp
eGVkQWxsb2NhdG9yLmhhbmRsZVdpbGxCZVJlbGVhc2VkKGxvY2tlciwgaGFuZGxlKTsKICAgICAg
ICAgICAgIEJhc2U6OnJlbGVhc2UobG9ja2VyLCBoYW5kbGUpOwpAQCAtODQ3LDcgKzg0Nyw3IEBA
IHByaXZhdGU6CiAgICAgfTsKICNlbmRpZiAvLyBFTkFCTEUoSlVNUF9JU0xBTkRTKQogCi0gICAg
TG9jayBtX2xvY2s7CisgICAgVW5jaGVja2VkTG9jayBtX2xvY2s7CiAgICAgUGFnZVJlc2VydmF0
aW9uIG1fcmVzZXJ2YXRpb247CiAjaWYgRU5BQkxFKEpVTVBfSVNMQU5EUykKICAgICBzdGQ6OmFy
cmF5PFJlZ2lvbkFsbG9jYXRvciwgbWF4TnVtYmVyT2ZSZWdpb25zPiBtX2FsbG9jYXRvcnM7CkBA
IC05NjEsNyArOTYxLDcgQEAgYm9vbCBFeGVjdXRhYmxlQWxsb2NhdG9yOjppc1ZhbGlkRXhlY3V0
YWJsZU1lbW9yeShjb25zdCBBYnN0cmFjdExvY2tlciYgbG9ja2VyLAogICAgIHJldHVybiBhbGxv
Y2F0b3ItPmlzSW5BbGxvY2F0ZWRNZW1vcnkobG9ja2VyLCBhZGRyZXNzKTsKIH0KIAotTG9jayYg
RXhlY3V0YWJsZUFsbG9jYXRvcjo6Z2V0TG9jaygpIGNvbnN0CitVbmNoZWNrZWRMb2NrJiBFeGVj
dXRhYmxlQWxsb2NhdG9yOjpnZXRMb2NrKCkgY29uc3QKIHsKICAgICBGaXhlZFZNUG9vbEV4ZWN1
dGFibGVBbGxvY2F0b3IqIGFsbG9jYXRvciA9IGdfanNjQ29uZmlnLmZpeGVkVk1Qb29sRXhlY3V0
YWJsZUFsbG9jYXRvcjsKICAgICBpZiAoIWFsbG9jYXRvcikKQEAgLTEwMzgsNyArMTAzOCw3IEBA
IHZvaWQgZHVtcEpJVE1lbW9yeShjb25zdCB2b2lkKiBkc3QsIGNvbnN0IHZvaWQqIHNyYywgc2l6
ZV90IHNpemUpCiAgICAgc3RhdGljIHVpbnQ4X3QqIGJ1ZmZlcjsKICAgICBzdGF0aWMgY29uc3Rl
eHByIHNpemVfdCBidWZmZXJTaXplID0gZml4ZWRFeGVjdXRhYmxlTWVtb3J5UG9vbFNpemU7CiAg
ICAgc3RhdGljIHNpemVfdCBvZmZzZXQgPSAwOwotICAgIHN0YXRpYyBMb2NrIGR1bXBKSVRNZW1v
cnlMb2NrOworICAgIHN0YXRpYyBVbmNoZWNrZWRMb2NrIGR1bXBKSVRNZW1vcnlMb2NrOwogICAg
IHN0YXRpYyBib29sIG5lZWRzVG9GbHVzaCA9IGZhbHNlOwogICAgIHN0YXRpYyBhdXRvIGZsdXNo
ID0gW10oY29uc3QgQWJzdHJhY3RMb2NrZXImKSB7CiAgICAgICAgIGlmIChmZCA9PSAtMSkgewpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9FeGVjdXRhYmxlQWxsb2NhdG9y
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0V4ZWN1dGFibGVBbGxvY2F0b3IuaAppbmRl
eCA0ZmZjNDgwZTQyNDA0ZGM2NmI1ZTI1MTQ1NzcyYmJjYjA5ZDVmMzY4Li4wMzc5OWU0MjdiMDk3
ZDY0ZmQ5OGNiOGY5NWE2OGE5MjUxNmY4YTU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0V4ZWN1dGFibGVBbGxvY2F0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0V4ZWN1dGFibGVBbGxvY2F0b3IuaApAQCAtNzcsNyArNzcsNyBAQCBwdWJsaWM6CiAK
ICAgICBzdGF0aWMgc2l6ZV90IGNvbW1pdHRlZEJ5dGVDb3VudCgpIHsgcmV0dXJuIDA7IH0KIAot
ICAgIExvY2smIGdldExvY2soKSBjb25zdAorICAgIFVuY2hlY2tlZExvY2smIGdldExvY2soKSBj
b25zdAogICAgIHsKICAgICAgICAgcmV0dXJuIG1fbG9jazsKICAgICB9CkBAIC04Nyw3ICs4Nyw3
IEBAIHByb3RlY3RlZDoKICAgICB+RXhlY3V0YWJsZUFsbG9jYXRvckJhc2UoKSA9IGRlZmF1bHQ7
CiAKIHByaXZhdGU6Ci0gICAgbXV0YWJsZSBMb2NrIG1fbG9jazsKKyAgICBtdXRhYmxlIFVuY2hl
Y2tlZExvY2sgbV9sb2NrOwogfTsKIAogI2lmIEVOQUJMRShKSVQpCkBAIC0xNzYsNyArMTc2LDcg
QEAgcHVibGljOgogCiAgICAgc3RhdGljIHNpemVfdCBjb21taXR0ZWRCeXRlQ291bnQoKTsKIAot
ICAgIExvY2smIGdldExvY2soKSBjb25zdDsKKyAgICBVbmNoZWNrZWRMb2NrJiBnZXRMb2NrKCkg
Y29uc3Q7CiAKICNpZiBFTkFCTEUoSlVNUF9JU0xBTkRTKQogICAgIEpTX0VYUE9SVF9QUklWQVRF
IHZvaWQqIGdldEp1bXBJc2xhbmRUbyh2b2lkKiBmcm9tLCB2b2lkKiBuZXdEZXN0aW5hdGlvbik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFdvcmtsaXN0LmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUV29ya2xpc3QuY3BwCmluZGV4IGE3MDUyZTc5
ZjBhNzQzNjdmZTNmZGM1YTNjZjZkNTM4ZTY5MzIwMGUuLmE5Njg5NzRiZDZhOTgyM2I5MGFhZGM0
NGE0MTRhNTM3YTkwM2NmN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
SklUV29ya2xpc3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUV29ya2xp
c3QuY3BwCkBAIC0xNjUsNyArMTY1LDcgQEAgcHJpdmF0ZToKIH07CiAKIEpJVFdvcmtsaXN0OjpK
SVRXb3JrbGlzdCgpCi0gICAgOiBtX2xvY2soQm94PExvY2s+OjpjcmVhdGUoKSkKKyAgICA6IG1f
bG9jayhCb3g8VW5jaGVja2VkTG9jaz46OmNyZWF0ZSgpKQogICAgICwgbV9jb25kaXRpb24oQXV0
b21hdGljVGhyZWFkQ29uZGl0aW9uOjpjcmVhdGUoKSkKIHsKICAgICBMb2NrZXIgbG9ja2VyIHsg
Km1fbG9jayB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRXb3Jr
bGlzdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRXb3JrbGlzdC5oCmluZGV4IGI5
Zjc3Y2ExYjNkZGVmYTYxNDhiMTM2OTQyZDU3YTA5ZDY1ZWE3YTMuLmE3MmE4Mzg3MGEwMDgyZmNk
MzQ0OTUyOTBlYTUwZWExNDBkODlmMmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvSklUV29ya2xpc3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFdv
cmtsaXN0LmgKQEAgLTcxLDcgKzcxLDcgQEAgcHJpdmF0ZToKICAgICBQbGFucyBtX3BsYW5zOwog
ICAgIEhhc2hTZXQ8Q29kZUJsb2NrKj4gbV9wbGFubmVkOwogICAgIAotICAgIEJveDxMb2NrPiBt
X2xvY2s7CisgICAgQm94PFVuY2hlY2tlZExvY2s+IG1fbG9jazsKICAgICBSZWY8QXV0b21hdGlj
VGhyZWFkQ29uZGl0aW9uPiBtX2NvbmRpdGlvbjsgLy8gV2UgdXNlIE9uZSBUcnVlIENvbmRpdGlv
biBmb3IgZXZlcnl0aGluZyBiZWNhdXNlIHRoYXQncyBlYXNpZXIuCiAgICAgUmVmUHRyPEF1dG9t
YXRpY1RocmVhZD4gbV90aHJlYWQ7CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvanNjLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwCmluZGV4IGQzYTI4
MTEyNzA4MDU4MWYwZWQxNWI0ZjM4NTg4NTUwY2YzZWU2ZWUuLmFkMTU1ZTZlODI3Y2MwZDNjYWY3
YzU3MjY1ZjBkYmMzMjUxYjU2MWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
c2MuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwCkBAIC0yNTcsOCArMjU3
LDggQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBmcmllbmQgY2xhc3MgV29ya2VyOwogICAgIAot
ICAgIExvY2sgbV9sb2NrOwotICAgIENvbmRpdGlvbiBtX2NvbmRpdGlvbjsKKyAgICBVbmNoZWNr
ZWRMb2NrIG1fbG9jazsKKyAgICBVbmNoZWNrZWRDb25kaXRpb24gbV9jb25kaXRpb247CiAgICAg
U2VudGluZWxMaW5rZWRMaXN0PFdvcmtlciwgQmFzaWNSYXdTZW50aW5lbE5vZGU8V29ya2VyPj4g
bV93b3JrZXJzOwogICAgIERlcXVlPFN0cmluZz4gbV9yZXBvcnRzOwogfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlckRhdGFiYXNlLmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZXJEYXRhYmFzZS5oCmluZGV4IGFlNzg1
ZTRlM2RjYjdjM2UwODAyODdiYjQ1OTk3YTEzMmMyODVkZDMuLjJhODc4Yzk0NmI2NTM0MGU3OTEz
OWJlMjIzNzVjNTA2MTZhOWIyZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9w
cm9maWxlci9Qcm9maWxlckRhdGFiYXNlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3By
b2ZpbGVyL1Byb2ZpbGVyRGF0YWJhc2UuaApAQCAtODgsNyArODgsNyBAQCBwcml2YXRlOgogICAg
IGJvb2wgbV9zaG91bGRTYXZlQXRFeGl0OwogICAgIENTdHJpbmcgbV9hdEV4aXRTYXZlRmlsZW5h
bWU7CiAgICAgRGF0YWJhc2UqIG1fbmV4dFJlZ2lzdGVyZWREYXRhYmFzZTsKLSAgICBMb2NrIG1f
bG9jazsKKyAgICBVbmNoZWNrZWRMb2NrIG1fbG9jazsKIH07CiAKIH0gfSAvLyBuYW1lc3BhY2Ug
SlNDOjpQcm9maWxlcgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
Q29uY3VycmVudEpTTG9jay5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29uY3Vy
cmVudEpTTG9jay5oCmluZGV4IGFhMjczYmFkYmVmYTczN2EwZWFhNTM0ZmJlYmE5ZjUwMWZkYjg2
MjcuLjg2MzExN2Q4OTE1YzQzZTRhNjc3MjA4MmI5YmM1NWIzOWEyZDFjYTEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbmN1cnJlbnRKU0xvY2suaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db25jdXJyZW50SlNMb2NrLmgKQEAgLTMyLDgg
KzMyLDggQEAKIAogbmFtZXNwYWNlIEpTQyB7CiAKLXVzaW5nIENvbmN1cnJlbnRKU0xvY2sgPSBM
b2NrOwotdXNpbmcgQ29uY3VycmVudEpTTG9ja2VySW1wbCA9IExvY2tIb2xkZXI7Cit1c2luZyBD
b25jdXJyZW50SlNMb2NrID0gVW5jaGVja2VkTG9jazsKK3VzaW5nIENvbmN1cnJlbnRKU0xvY2tl
ckltcGwgPSBVbmNoZWNrZWRMb2NrSG9sZGVyOwogCiBzdGF0aWNfYXNzZXJ0KHNpemVvZihDb25j
dXJyZW50SlNMb2NrKSA9PSAxLCAiUmVnYXJkbGVzcyBvZiBzdGF0dXMgb2YgY29uY3VycmVudCBK
UyBmbGFnLCBzaXplIG9mIENvbnVycmVudEpTTG9jayBpcyBhbHdheXMgb25lIGJ5dGUuIik7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RlZmVycmVkV29ya1Rp
bWVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EZWZlcnJlZFdvcmtUaW1lci5o
CmluZGV4IDZjOThjYWFmNTgxYjFjZmMwMWFhMTkxMTcxNGIzZGIyN2JkZjAyMTcuLmVmMGVhYzcz
MGI0MjJmNzBjMjBhNjhiNWM5ZTk2NDg2ODc2YTAxM2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0RlZmVycmVkV29ya1RpbWVyLmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvRGVmZXJyZWRXb3JrVGltZXIuaApAQCAtNzIsNyArNzIsNyBAQCBw
dWJsaWM6CiBwcml2YXRlOgogICAgIERlZmVycmVkV29ya1RpbWVyKFZNJik7CiAKLSAgICBMb2Nr
IG1fdGFza0xvY2s7CisgICAgVW5jaGVja2VkTG9jayBtX3Rhc2tMb2NrOwogICAgIGJvb2wgbV9y
dW5UYXNrcyB7IHRydWUgfTsKICAgICBib29sIG1fc2hvdWxkU3RvcFJ1bkxvb3BXaGVuQWxsVGlj
a2V0c0ZpbmlzaCB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2N1cnJlbnRseVJ1bm5pbmdUYXNrIHsg
ZmFsc2UgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTG9j
ay5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNMb2NrLmgKaW5kZXggMmUwMmJh
M2Q2NDA1ZWU3MmRkNGFkZTBiYTY3Y2I5NThmMWE2NDYwYi4uYTk5MWRmNTBiMWMzNzIyNmU1ZjEy
OTkwZTQwYjY3YjEwYjE5OWMyOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNMb2NrLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNMb2Nr
LmgKQEAgLTEzOCw3ICsxMzgsNyBAQCBwcml2YXRlOgogICAgIHVuc2lnbmVkIGRyb3BBbGxMb2Nr
cyhEcm9wQWxsTG9ja3MqKTsKICAgICB2b2lkIGdyYWJBbGxMb2NrcyhEcm9wQWxsTG9ja3MqLCB1
bnNpZ25lZCBsb2NrQ291bnQpOwogCi0gICAgTG9jayBtX2xvY2s7CisgICAgVW5jaGVja2VkTG9j
ayBtX2xvY2s7CiAgICAgYm9vbCBtX2lzV2ViVGhyZWFkQXdhcmUgeyBmYWxzZSB9OwogICAgIC8v
IFdlIGNhbm5vdCBtYWtlIG1fb3duZXJUaHJlYWQgYW4gb3B0aW9uYWwgKGluc3RlYWQgb2YgcGFp
cmluZyBpdCB3aXRoIGFuIGV4cGxpY2l0CiAgICAgLy8gbV9oYXNPd25lclRocmVhZCkgYmVjYXVz
ZSBjdXJyZW50VGhyZWFkSXNIb2xkaW5nTG9jaygpIG1heSBiZSBjYWxsZWQgZnJvbSBhCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TYW1wbGluZ1Byb2ZpbGVyLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NhbXBsaW5nUHJvZmlsZXIuY3BwCmlu
ZGV4IGQ3MWYzZWMxOWZmMzY3NDY3NzA3ZmU1MmI4ODAyNGM1NjI3YTE0YWQuLmU1MzExMmQxODhm
N2NjYjkwZDBhZTc4NDE0MjUwMWQyNDVjNWU4MzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1NhbXBsaW5nUHJvZmlsZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1NhbXBsaW5nUHJvZmlsZXIuY3BwCkBAIC03NSw3ICs3NSw3IEBAIEFM
V0FZU19JTkxJTkUgc3RhdGljIHZvaWQgcmVwb3J0U3RhdHMoKQogCiBjbGFzcyBGcmFtZVdhbGtl
ciB7CiBwdWJsaWM6Ci0gICAgRnJhbWVXYWxrZXIoVk0mIHZtLCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSwgY29uc3QgQWJzdHJhY3RMb2NrZXImIGNvZGVCbG9ja1NldExvY2tlciwgY29uc3QgQWJzdHJh
Y3RMb2NrZXImIG1hY2hpbmVUaHJlYWRzTG9ja2VyLCBjb25zdCBPcHRpb25hbDxMb2NrSG9sZGVy
PiYgd2FzbUNhbGxlZUxvY2tlcikKKyAgICBGcmFtZVdhbGtlcihWTSYgdm0sIENhbGxGcmFtZSog
Y2FsbEZyYW1lLCBjb25zdCBBYnN0cmFjdExvY2tlciYgY29kZUJsb2NrU2V0TG9ja2VyLCBjb25z
dCBBYnN0cmFjdExvY2tlciYgbWFjaGluZVRocmVhZHNMb2NrZXIsIGNvbnN0IE9wdGlvbmFsPFVu
Y2hlY2tlZExvY2tIb2xkZXI+JiB3YXNtQ2FsbGVlTG9ja2VyKQogICAgICAgICA6IG1fdm0odm0p
CiAgICAgICAgICwgbV9jYWxsRnJhbWUoY2FsbEZyYW1lKQogICAgICAgICAsIG1fZW50cnlGcmFt
ZSh2bS50b3BFbnRyeUZyYW1lKQpAQCAtMjAxLDcgKzIwMSw3IEBAIHByb3RlY3RlZDoKICAgICBF
bnRyeUZyYW1lKiBtX2VudHJ5RnJhbWU7CiAgICAgY29uc3QgQWJzdHJhY3RMb2NrZXImIG1fY29k
ZUJsb2NrU2V0TG9ja2VyOwogICAgIGNvbnN0IEFic3RyYWN0TG9ja2VyJiBtX21hY2hpbmVUaHJl
YWRzTG9ja2VyOwotICAgIGNvbnN0IE9wdGlvbmFsPExvY2tIb2xkZXI+JiBtX3dhc21DYWxsZWVM
b2NrZXI7CisgICAgY29uc3QgT3B0aW9uYWw8VW5jaGVja2VkTG9ja0hvbGRlcj4mIG1fd2FzbUNh
bGxlZUxvY2tlcjsKICAgICBib29sIG1fYmFpbGluZ091dCB7IGZhbHNlIH07CiAgICAgc2l6ZV90
IG1fZGVwdGggeyAwIH07CiB9OwpAQCAtMjEwLDcgKzIxMCw3IEBAIGNsYXNzIENGcmFtZVdhbGtl
ciA6IHB1YmxpYyBGcmFtZVdhbGtlciB7CiBwdWJsaWM6CiAgICAgdHlwZWRlZiBGcmFtZVdhbGtl
ciBCYXNlOwogCi0gICAgQ0ZyYW1lV2Fsa2VyKFZNJiB2bSwgdm9pZCogbWFjaGluZUZyYW1lLCBD
YWxsRnJhbWUqIGNhbGxGcmFtZSwgY29uc3QgQWJzdHJhY3RMb2NrZXImIGNvZGVCbG9ja1NldExv
Y2tlciwgY29uc3QgQWJzdHJhY3RMb2NrZXImIG1hY2hpbmVUaHJlYWRzTG9ja2VyLCBjb25zdCBP
cHRpb25hbDxMb2NrSG9sZGVyPiYgd2FzbUNhbGxlZUxvY2tlcikKKyAgICBDRnJhbWVXYWxrZXIo
Vk0mIHZtLCB2b2lkKiBtYWNoaW5lRnJhbWUsIENhbGxGcmFtZSogY2FsbEZyYW1lLCBjb25zdCBB
YnN0cmFjdExvY2tlciYgY29kZUJsb2NrU2V0TG9ja2VyLCBjb25zdCBBYnN0cmFjdExvY2tlciYg
bWFjaGluZVRocmVhZHNMb2NrZXIsIGNvbnN0IE9wdGlvbmFsPFVuY2hlY2tlZExvY2tIb2xkZXI+
JiB3YXNtQ2FsbGVlTG9ja2VyKQogICAgICAgICA6IEJhc2Uodm0sIGNhbGxGcmFtZSwgY29kZUJs
b2NrU2V0TG9ja2VyLCBtYWNoaW5lVGhyZWFkc0xvY2tlciwgd2FzbUNhbGxlZUxvY2tlcikKICAg
ICAgICAgLCBtX21hY2hpbmVGcmFtZShtYWNoaW5lRnJhbWUpCiAgICAgewpAQCAtMzUzLDcgKzM1
Myw3IEBAIHZvaWQgU2FtcGxpbmdQcm9maWxlcjo6dGFrZVNhbXBsZShjb25zdCBBYnN0cmFjdExv
Y2tlciYsIFNlY29uZHMmIHN0YWNrVHJhY2VQcm9jCiAgICAgICAgIExvY2tlciBtYWNoaW5lVGhy
ZWFkc0xvY2tlciB7IG1fdm0uaGVhcC5tYWNoaW5lVGhyZWFkcygpLmdldExvY2soKSB9OwogICAg
ICAgICBMb2NrZXIgY29kZUJsb2NrU2V0TG9ja2VyIHsgbV92bS5oZWFwLmNvZGVCbG9ja1NldCgp
LmdldExvY2soKSB9OwogICAgICAgICBMb2NrZXIgZXhlY3V0YWJsZUFsbG9jYXRvckxvY2tlciB7
IEV4ZWN1dGFibGVBbGxvY2F0b3I6OnNpbmdsZXRvbigpLmdldExvY2soKSB9OwotICAgICAgICBP
cHRpb25hbDxMb2NrSG9sZGVyPiB3YXNtQ2FsbGVlc0xvY2tlcjsKKyAgICAgICAgT3B0aW9uYWw8
VW5jaGVja2VkTG9ja0hvbGRlcj4gd2FzbUNhbGxlZXNMb2NrZXI7CiAjaWYgRU5BQkxFKFdFQkFT
U0VNQkxZKQogICAgICAgICBpZiAoV2FzbTo6aXNTdXBwb3J0ZWQoKSkKICAgICAgICAgICAgIHdh
c21DYWxsZWVzTG9ja2VyID0gTG9ja2VyIHsgV2FzbTo6Q2FsbGVlUmVnaXN0cnk6OnNpbmdsZXRv
bigpLmdldExvY2soKSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvU2FtcGxpbmdQcm9maWxlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2Ft
cGxpbmdQcm9maWxlci5oCmluZGV4IDY1MTcwN2E5NDZmMTYxZGVhNmY5ODhhYjVkZGU0OGIzMmM3
NWM3ZWQuLjlmMDU3MjZhNGU4MDRmY2IzNTM3MzZhMmVkMWQ2NDBiNzY0Yzk0ZGMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NhbXBsaW5nUHJvZmlsZXIuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TYW1wbGluZ1Byb2ZpbGVyLmgKQEAgLTE3
Miw3ICsxNzIsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBub3RpY2VWTUVudHJ5KCk7CiAgICAgdm9p
ZCBzaHV0ZG93bigpOwogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFZpc2l0b3I+IHZvaWQgdmlzaXQo
VmlzaXRvciYpOwotICAgIExvY2smIGdldExvY2soKSB7IHJldHVybiBtX2xvY2s7IH0KKyAgICBV
bmNoZWNrZWRMb2NrJiBnZXRMb2NrKCkgeyByZXR1cm4gbV9sb2NrOyB9CiAgICAgdm9pZCBzZXRU
aW1pbmdJbnRlcnZhbChTZWNvbmRzIGludGVydmFsKSB7IG1fdGltaW5nSW50ZXJ2YWwgPSBpbnRl
cnZhbDsgfQogICAgIEpTX0VYUE9SVF9QUklWQVRFIHZvaWQgc3RhcnQoKTsKICAgICB2b2lkIHN0
YXJ0KGNvbnN0IEFic3RyYWN0TG9ja2VyJik7CkBAIC0yMDAsNyArMjAwLDcgQEAgcHJpdmF0ZToK
ICAgICB2b2lkIHRpbWVyTG9vcCgpOwogICAgIHZvaWQgdGFrZVNhbXBsZShjb25zdCBBYnN0cmFj
dExvY2tlciYsIFNlY29uZHMmIHN0YWNrVHJhY2VQcm9jZXNzaW5nVGltZSk7CiAKLSAgICBMb2Nr
IG1fbG9jazsKKyAgICBVbmNoZWNrZWRMb2NrIG1fbG9jazsKICAgICBib29sIG1faXNQYXVzZWQ7
CiAgICAgYm9vbCBtX2lzU2h1dERvd247CiAgICAgYm9vbCBtX25lZWRzUmVwb3J0QXRFeGl0IHsg
ZmFsc2UgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5oCmluZGV4IGY4ZThkM2Y1NDdlNGZk
ZTYxMzRjMzhhODYyZDJmMjVkNjJhMzMxZTIuLmExYWIyMjMyMTY5OGU1NzAwMjk5NDczNTE0YmZh
MDQxZjg4ZGNjNTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZN
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uaApAQCAtMTAwNCw3ICsx
MDA0LDcgQEAgcHVibGljOgogI2lmIEVOQUJMRShZQVJSX0pJVF9BTExfUEFSRU5TX0VYUFJFU1NJ
T05TKQogICAgIHN0YXRpYyBjb25zdGV4cHIgc2l6ZV90IHBhdHRlcm5Db250ZXh0QnVmZmVyU2l6
ZSA9IDgxOTI7IC8vIFNwYWNlIGFsbG9jYXRlZCB0byBzYXZlIG5lc3RlZCBwYXJlbnRoZXNpcyBj
b250ZXh0CiAgICAgVW5pcXVlQXJyYXk8Y2hhcj4gbV9yZWdFeHBQYXR0ZXJuQ29udGV4QnVmZmVy
OwotICAgIExvY2sgbV9yZWdFeHBQYXR0ZXJuQ29udGV4dExvY2s7CisgICAgVW5jaGVja2VkTG9j
ayBtX3JlZ0V4cFBhdHRlcm5Db250ZXh0TG9jazsKICAgICBjaGFyKiBhY3F1aXJlUmVnRXhwUGF0
dGVybkNvbnRleEJ1ZmZlcigpOwogICAgIHZvaWQgcmVsZWFzZVJlZ0V4cFBhdHRlcm5Db250ZXhC
dWZmZXIoKTsKICNlbHNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9WTVRyYXBzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNVHJhcHMuY3Bw
CmluZGV4IDliNDQwNmIxMTU2M2RhZjU3MzllYjMzOGFmODI1OWE1ZTE4YTQxNTkuLjU3ZGIzMTlj
ZWNmYjczNzE5N2UyNmQ5Y2RkMmRiN2E1OGJiMDhjNjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1ZNVHJhcHMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1ZNVHJhcHMuY3BwCkBAIC0xNjMsNyArMTYzLDcgQEAgdm9pZCBWTVRyYXBzOjpp
bnZhbGlkYXRlQ29kZUJsb2Nrc09uU3RhY2soQ2FsbEZyYW1lKiB0b3BDYWxsRnJhbWUpCiAgICAg
aW52YWxpZGF0ZUNvZGVCbG9ja3NPblN0YWNrKGNvZGVCbG9ja1NldExvY2tlciwgdG9wQ2FsbEZy
YW1lKTsKIH0KICAgICAKLXZvaWQgVk1UcmFwczo6aW52YWxpZGF0ZUNvZGVCbG9ja3NPblN0YWNr
KExvY2tlcjxMb2NrPiYsIENhbGxGcmFtZSogdG9wQ2FsbEZyYW1lKQordm9pZCBWTVRyYXBzOjpp
bnZhbGlkYXRlQ29kZUJsb2Nrc09uU3RhY2soTG9ja2VyPFVuY2hlY2tlZExvY2s+JiwgQ2FsbEZy
YW1lKiB0b3BDYWxsRnJhbWUpCiB7CiAgICAgaWYgKCFtX25lZWRUb0ludmFsaWRhdGVkQ29kZUJs
b2NrcykKICAgICAgICAgcmV0dXJuOwpAQCAtNDM3LDcgKzQzNyw3IEBAIHZvaWQgVk1UcmFwczo6
dW5kb0RlZmVyVGVybWluYXRpb25TbG93KERlZmVyQWN0aW9uIGRlZmVyQWN0aW9uKQogfQogCiBW
TVRyYXBzOjpWTVRyYXBzKCkKLSAgICA6IG1fbG9jayhCb3g8TG9jaz46OmNyZWF0ZSgpKQorICAg
IDogbV9sb2NrKEJveDxVbmNoZWNrZWRMb2NrPjo6Y3JlYXRlKCkpCiAgICAgLCBtX2NvbmRpdGlv
bihBdXRvbWF0aWNUaHJlYWRDb25kaXRpb246OmNyZWF0ZSgpKQogewogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk1UcmFwcy5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvVk1UcmFwcy5oCmluZGV4IDBhZjU5YmM5NWMxNmY5MmQzNGU1NGE2MjJi
MjQyYjg3YzU4NGZkNjUuLjVkMTVjOTJmNzA0MTc1MWQ4MDRlNGM1NzJhNTUzMDEwN2JmZTQyZGMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNVHJhcHMuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTVRyYXBzLmgKQEAgLTIzNiw3ICsyMzYs
NyBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBpbnZhbGlkYXRlQ29kZUJsb2Nrc09uU3RhY2soKTsK
ICAgICB2b2lkIGludmFsaWRhdGVDb2RlQmxvY2tzT25TdGFjayhDYWxsRnJhbWUqIHRvcENhbGxG
cmFtZSk7Ci0gICAgdm9pZCBpbnZhbGlkYXRlQ29kZUJsb2Nrc09uU3RhY2soTG9ja2VyPExvY2s+
JiBjb2RlQmxvY2tTZXRMb2NrZXIsIENhbGxGcmFtZSogdG9wQ2FsbEZyYW1lKTsKKyAgICB2b2lk
IGludmFsaWRhdGVDb2RlQmxvY2tzT25TdGFjayhMb2NrZXI8VW5jaGVja2VkTG9jaz4mIGNvZGVC
bG9ja1NldExvY2tlciwgQ2FsbEZyYW1lKiB0b3BDYWxsRnJhbWUpOwogCiAgICAgdm9pZCBhZGRT
aWduYWxTZW5kZXIoU2lnbmFsU2VuZGVyKik7CiAgICAgdm9pZCByZW1vdmVTaWduYWxTZW5kZXIo
U2lnbmFsU2VuZGVyKik7CkBAIC0yNDcsNyArMjQ3LDcgQEAgcHJpdmF0ZToKIAogICAgIHN0YXRp
YyBjb25zdGV4cHIgQml0RmllbGQgTmVlZEV4Y2VwdGlvbkhhbmRsaW5nTWFzayA9IH4oMSA8PCBO
ZWVkRXhjZXB0aW9uSGFuZGxpbmcpOwogCi0gICAgQm94PExvY2s+IG1fbG9jazsKKyAgICBCb3g8
VW5jaGVja2VkTG9jaz4gbV9sb2NrOwogICAgIFJlZjxBdXRvbWF0aWNUaHJlYWRDb25kaXRpb24+
IG1fY29uZGl0aW9uOwogICAgIEF0b21pYzxCaXRGaWVsZD4gbV90cmFwQml0cyB7IDAgfTsKICAg
ICBib29sIG1fbmVlZFRvSW52YWxpZGF0ZWRDb2RlQmxvY2tzIHsgZmFsc2UgfTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90b29scy9GdW5jdGlvbk92ZXJyaWRlcy5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xzL0Z1bmN0aW9uT3ZlcnJpZGVzLmgKaW5kZXggODgyOTY3
MDA3M2RkZjlkNmQ0OWNlZWYyMDhiNjM4YzcxM2Y0ZWQ2OS4uNzZhODEzZDQ4YjNkNDUzNTg4ZDU0
M2FmODM2MDMzMWM5ODJiZjQ0MCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rv
b2xzL0Z1bmN0aW9uT3ZlcnJpZGVzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xz
L0Z1bmN0aW9uT3ZlcnJpZGVzLmgKQEAgLTYxLDcgKzYxLDcgQEAgcHJpdmF0ZToKICAgICB2b2lk
IGNsZWFyKGNvbnN0IEFic3RyYWN0TG9ja2VyJikgeyBtX2VudHJpZXMuY2xlYXIoKTsgfQogCiAg
ICAgSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4gbV9lbnRyaWVzOwotICAgIExvY2sgbV9sb2NrOwor
ICAgIFVuY2hlY2tlZExvY2sgbV9sb2NrOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdG9vbHMvVk1JbnNwZWN0b3IuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xzL1ZNSW5zcGVjdG9yLmNwcAppbmRleCBlNDlkYWUxZTFi
YzlkZDcwYzllYjIwMmQ4NzcwOWZjYzZjYTY3MDkwLi4xZmY3MmQ0NmQ5NjQzOTQ0YTc5NGJhNDNm
NGI2MGI4YjExNDQ4YTg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdG9vbHMv
Vk1JbnNwZWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90b29scy9WTUluc3Bl
Y3Rvci5jcHAKQEAgLTg5LDcgKzg5LDcgQEAgYXV0byBWTUluc3BlY3Rvcjo6bG9jayhTZWNvbmRz
IHRpbWVvdXQpIC0+IEV4cGVjdGVkPExvY2tlciwgRXJyb3I+CiB9CiAKICNpZiBFTkFCTEUoSklU
KQotc3RhdGljIGJvb2wgZW5zdXJlSXNTYWZlVG9Mb2NrKExvY2smIGxvY2spCitzdGF0aWMgYm9v
bCBlbnN1cmVJc1NhZmVUb0xvY2soVW5jaGVja2VkTG9jayYgbG9jaykKIHsKICAgICB1bnNpZ25l
ZCBtYXhSZXRyaWVzID0gMjsKICAgICB1bnNpZ25lZCB0cnlDb3VudCA9IDA7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdG9vbHMvVk1JbnNwZWN0b3IuaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS90b29scy9WTUluc3BlY3Rvci5oCmluZGV4IDg0NTYzMWM2NDgxNjlkN2E1NTFj
ZWI3OGQ0ZWFlMDNiNTU2NTg5Y2EuLmRmNDkwZGUyODYyYWExNzk5ZmRmNDM3NzdlZGUxZGVmYWRh
MDE5ZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90b29scy9WTUluc3BlY3Rv
ci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90b29scy9WTUluc3BlY3Rvci5oCkBAIC00
MywxNCArNDMsMTQgQEAgcHVibGljOgogICAgICAgICBUaW1lZE91dAogICAgIH07CiAKLSAgICB0
eXBlZGVmIFdURjo6TG9ja2VyPExvY2s+IExvY2tlcjsKKyAgICB0eXBlZGVmIFdURjo6TG9ja2Vy
PFVuY2hlY2tlZExvY2s+IExvY2tlcjsKIAogICAgIHN0YXRpYyBWTUluc3BlY3RvciYgaW5zdGFu
Y2UoKTsKIAogICAgIHZvaWQgYWRkKFZNKik7CiAgICAgdm9pZCByZW1vdmUoVk0qKTsKIAotICAg
IExvY2smIGdldExvY2soKSB7IHJldHVybiBtX2xvY2s7IH0KKyAgICBVbmNoZWNrZWRMb2NrJiBn
ZXRMb2NrKCkgeyByZXR1cm4gbV9sb2NrOyB9CiAKICAgICBlbnVtIGNsYXNzIEZ1bmN0b3JTdGF0
dXMgewogICAgICAgICBDb250aW51ZSwKQEAgLTEwMyw3ICsxMDMsNyBAQCBwcml2YXRlOgogICAg
ICAgICB9CiAgICAgfQogCi0gICAgTG9jayBtX2xvY2s7CisgICAgVW5jaGVja2VkTG9jayBtX2xv
Y2s7CiAgICAgRG91Ymx5TGlua2VkTGlzdDxWTT4gbV92bUxpc3Q7CiB9OwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQ2FsbGVlUmVnaXN0cnkuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21DYWxsZWVSZWdpc3RyeS5oCmluZGV4IDEyMTM0MTFi
N2ZjMTA2NGE5ODJjNzU4YjNlMDMyOGE4NDE0NzhlNzMuLmRjOTIyY2YzZWE4NzE3MDJjYTUyMmMy
MzJmNTYyZjE3NjYxMTM4ZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNt
L1dhc21DYWxsZWVSZWdpc3RyeS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dh
c21DYWxsZWVSZWdpc3RyeS5oCkBAIC00MSw3ICs0MSw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMg
dm9pZCBpbml0aWFsaXplKCk7CiAgICAgc3RhdGljIENhbGxlZVJlZ2lzdHJ5JiBzaW5nbGV0b24o
KTsKIAotICAgIExvY2smIGdldExvY2soKSB7IHJldHVybiBtX2xvY2s7IH0KKyAgICBVbmNoZWNr
ZWRMb2NrJiBnZXRMb2NrKCkgeyByZXR1cm4gbV9sb2NrOyB9CiAKICAgICB2b2lkIHJlZ2lzdGVy
Q2FsbGVlKENhbGxlZSogY2FsbGVlKQogICAgIHsKQEAgLTcwLDcgKzcwLDcgQEAgcHVibGljOgog
ICAgIENhbGxlZVJlZ2lzdHJ5KCkgPSBkZWZhdWx0OwogCiBwcml2YXRlOgotICAgIExvY2sgbV9s
b2NrOworICAgIFVuY2hlY2tlZExvY2sgbV9sb2NrOwogICAgIEhhc2hTZXQ8Q2FsbGVlKj4gbV9j
YWxsZWVTZXQ7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9X
YXNtUGxhbi5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVBsYW4uaAppbmRleCBh
Yjk0ZjllODkwMzg5NmZkMzExNmM2MjY5MmFkNzZkZGM5NGY1ZDYxLi5jODFmM2E2YzlmNTg2Yjkx
YzE3YjU5NjQ3NTAxOGVjY2EyM2ZhZDFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9XYXNtUGxhbi5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21Q
bGFuLmgKQEAgLTk0LDggKzk0LDggQEAgcHJvdGVjdGVkOgogCiAgICAgU3RyaW5nIG1fZXJyb3JN
ZXNzYWdlOwogICAgIE1lbW9yeU1vZGUgbV9tb2RlIHsgTWVtb3J5TW9kZTo6Qm91bmRzQ2hlY2tp
bmcgfTsKLSAgICBMb2NrIG1fbG9jazsKLSAgICBDb25kaXRpb24gbV9jb21wbGV0ZWQ7CisgICAg
VW5jaGVja2VkTG9jayBtX2xvY2s7CisgICAgVW5jaGVja2VkQ29uZGl0aW9uIG1fY29tcGxldGVk
OwogfTsKIAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtU3Ry
ZWFtaW5nQ29tcGlsZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21TdHJlYW1p
bmdDb21waWxlci5oCmluZGV4IDg2YTEwZGM0NDViOTRmZjkyM2I2NmNiZDYxYTcxMTYwZTczNjZj
ZTUuLjk1N2Y3NWZmZmZmMGMwZjNiZWEwNDQwZGVmYTlkYzg4ZTBhMjM5NGIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21TdHJlYW1pbmdDb21waWxlci5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21TdHJlYW1pbmdDb21waWxlci5oCkBAIC03
MCw3ICs3MCw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2VhZ2VyRmFpbGVkIHsgZmFsc2UgfTsK
ICAgICBib29sIG1fZmluYWxpemVkIHsgZmFsc2UgfTsKICAgICBib29sIG1fdGhyZWFkZWRDb21w
aWxhdGlvblN0YXJ0ZWQgeyBmYWxzZSB9OwotICAgIExvY2sgbV9sb2NrOworICAgIFVuY2hlY2tl
ZExvY2sgbV9sb2NrOwogICAgIHVuc2lnbmVkIG1fcmVtYWluaW5nQ29tcGlsYXRpb25SZXF1ZXN0
cyB7IDAgfTsKICAgICBKU1Byb21pc2UqIG1fcHJvbWlzZTsgLy8gUmF3IHBvaW50ZXIsIGJ1dCBo
ZWxkIGJ5IERlZmVycmVkV29ya1RpbWVyLgogICAgIFJlZjxXYXNtOjpNb2R1bGVJbmZvcm1hdGlv
bj4gbV9pbmZvOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVRo
dW5rcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVRodW5rcy5oCmluZGV4IGMy
MzVjZmU2Mjk1ZTY2OWFlNWE4MGVlOGYyNTJlYTZjYTI0MzFiODMuLmRlNGNhM2NjZjBhYmU1NGRk
MTBkZTE4MjI2Zjc4MTdjMDQ3ODFmM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93YXNtL1dhc21UaHVua3MuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNt
VGh1bmtzLmgKQEAgLTU1LDcgKzU1LDcgQEAgcHJpdmF0ZToKICAgICBUaHVua3MoKSA9IGRlZmF1
bHQ7CiAKICAgICBIYXNoTWFwPFRodW5rR2VuZXJhdG9yLCBNYWNyb0Fzc2VtYmxlckNvZGVSZWY8
SklUVGh1bmtQdHJUYWc+PiBtX3N0dWJzOwotICAgIExvY2sgbV9sb2NrOworICAgIFVuY2hlY2tl
ZExvY2sgbV9sb2NrOwogfTsKIAogfSB9IC8vIG5hbWVzcGFjZSBKU0M6Oldhc20KZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21Xb3JrbGlzdC5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtV29ya2xpc3QuY3BwCmluZGV4IDViYWQwZDkwYTU2MmUy
NWRkZTgxN2I1ODJjMDYwNjY1NmM5MDZlYmEuLjM4OThlY2FiNGMwODg3ZTI1YTBhMzQ4MWI0MTFi
OGY2N2MxZWJjMjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21X
b3JrbGlzdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVdvcmtsaXN0
LmNwcApAQCAtMTI4LDcgKzEyOCw3IEBAIHByaXZhdGU6CiAgICAgfQogCiBwdWJsaWM6Ci0gICAg
Q29uZGl0aW9uIHN5bmNocm9uaXplOworICAgIFVuY2hlY2tlZENvbmRpdGlvbiBzeW5jaHJvbml6
ZTsKICAgICBXb3JrbGlzdCYgd29ya2xpc3Q7CiAgICAgLy8gV2UgY2FuIG9ubHkgbW9kaWZ5IGVs
ZW1lbnQgd2hlbiBob2xkaW5nIHRoZSBsb2NrLiBBIHN5bmNocm9ub3VzIGNvbXBpbGUgbWlnaHQg
bG9vayBhdCBlYWNoIHRocmVhZCdzIHRhc2tzIGluIG9yZGVyIHRvIGJvb3N0IHRoZSBwcmlvcml0
eS4KICAgICBRdWV1ZUVsZW1lbnQgZWxlbWVudDsKQEAgLTIxMyw3ICsyMTMsNyBAQCB2b2lkIFdv
cmtsaXN0OjpzdG9wQWxsUGxhbnNGb3JDb250ZXh0KENvbnRleHQmIGNvbnRleHQpCiB9CiAKIFdv
cmtsaXN0OjpXb3JrbGlzdCgpCi0gICAgOiBtX2xvY2soQm94PExvY2s+OjpjcmVhdGUoKSkKKyAg
ICA6IG1fbG9jayhCb3g8VW5jaGVja2VkTG9jaz46OmNyZWF0ZSgpKQogICAgICwgbV9wbGFuRW5x
dWV1ZWQoQXV0b21hdGljVGhyZWFkQ29uZGl0aW9uOjpjcmVhdGUoKSkKIHsKICAgICB1bnNpZ25l
ZCBudW1iZXJPZkNvbXBpbGF0aW9uVGhyZWFkcyA9IE9wdGlvbnM6OnVzZUNvbmN1cnJlbnRKSVQo
KSA/IGtlcm5UQ1NNQXdhcmVOdW1iZXJPZlByb2Nlc3NvckNvcmVzKCkgOiAxOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVdvcmtsaXN0LmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvd2FzbS9XYXNtV29ya2xpc3QuaAppbmRleCA1NmQ3OWEwZTk4OWE2MDJmMjEz
M2QwMzA5MGZkYmNjNjM3Yzk1NjM5Li40NWE2ZmJiNmNmOWE4NTNjMjgxZmRiYmFjZDU2ZmJlZGQx
ZmE1OWNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtV29ya2xp
c3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtV29ya2xpc3QuaApAQCAt
ODQsNyArODQsNyBAQCBwcml2YXRlOgogICAgICAgICByZXR1cm4gbGVmdC5wcmlvcml0eSA+IHJp
Z2h0LnByaW9yaXR5OwogICAgIH0KIAotICAgIEJveDxMb2NrPiBtX2xvY2s7CisgICAgQm94PFVu
Y2hlY2tlZExvY2s+IG1fbG9jazsKICAgICBSZWY8QXV0b21hdGljVGhyZWFkQ29uZGl0aW9uPiBt
X3BsYW5FbnF1ZXVlZDsKICAgICAvLyBUZWNobmljYWxseSwgdGhpcyBjb3VsZCBvdmVyZmxvdyBi
dXQgdGhhdCdzIHVubGlrZWx5LiBFdmVuIGlmIGl0IGRpZCwgd2Ugd2lsbCBqdXN0IGNvbXBpbGUg
dGhpbmdzIG9mIHRoZSBzYW1lCiAgICAgLy8gUHJpb3JpdHkgaXQgdGhlIHdyb25nIG9yZGVyLCB3
aGljaCBpc24ndCB3cm9uZywganVzdCBzdWJvcHRpbWFsLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dU
Ri93dGYvQXV0b21hdGljVGhyZWFkLmNwcCBiL1NvdXJjZS9XVEYvd3RmL0F1dG9tYXRpY1RocmVh
ZC5jcHAKaW5kZXggZjRlYTc4ZDEzZTFjZGRiNjE5YjgyMjg2OGQzM2M3MjdjOWYyZjk4Yi4uM2M1
YmU1MTNjMjYzY2E4YjRkYTZiN2MyNmM2ZjgzNzM5ZGEzMWUwYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dURi93dGYvQXV0b21hdGljVGhyZWFkLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9BdXRvbWF0
aWNUaHJlYWQuY3BwCkBAIC03NywxMiArNzcsMTIgQEAgdm9pZCBBdXRvbWF0aWNUaHJlYWRDb25k
aXRpb246Om5vdGlmeUFsbChjb25zdCBBYnN0cmFjdExvY2tlciYgbG9ja2VyKQogICAgIH0KIH0K
IAotdm9pZCBBdXRvbWF0aWNUaHJlYWRDb25kaXRpb246OndhaXQoTG9jayYgbG9jaykKK3ZvaWQg
QXV0b21hdGljVGhyZWFkQ29uZGl0aW9uOjp3YWl0KFVuY2hlY2tlZExvY2smIGxvY2spCiB7CiAg
ICAgbV9jb25kaXRpb24ud2FpdChsb2NrKTsKIH0KIAotYm9vbCBBdXRvbWF0aWNUaHJlYWRDb25k
aXRpb246OndhaXRGb3IoTG9jayYgbG9jaywgU2Vjb25kcyB0aW1lKQorYm9vbCBBdXRvbWF0aWNU
aHJlYWRDb25kaXRpb246OndhaXRGb3IoVW5jaGVja2VkTG9jayYgbG9jaywgU2Vjb25kcyB0aW1l
KQogewogICAgIHJldHVybiBtX2NvbmRpdGlvbi53YWl0Rm9yKGxvY2ssIHRpbWUpOwogfQpAQCAt
MTA0LDEyICsxMDQsMTIgQEAgYm9vbCBBdXRvbWF0aWNUaHJlYWRDb25kaXRpb246OmNvbnRhaW5z
KGNvbnN0IEFic3RyYWN0TG9ja2VyJiwgQXV0b21hdGljVGhyZWFkKgogICAgIHJldHVybiBtX3Ro
cmVhZHMuY29udGFpbnModGhyZWFkKTsKIH0KIAotQXV0b21hdGljVGhyZWFkOjpBdXRvbWF0aWNU
aHJlYWQoY29uc3QgQWJzdHJhY3RMb2NrZXImIGxvY2tlciwgQm94PExvY2s+IGxvY2ssIFJlZjxB
dXRvbWF0aWNUaHJlYWRDb25kaXRpb24+JiYgY29uZGl0aW9uLCBTZWNvbmRzIHRpbWVvdXQpCitB
dXRvbWF0aWNUaHJlYWQ6OkF1dG9tYXRpY1RocmVhZChjb25zdCBBYnN0cmFjdExvY2tlciYgbG9j
a2VyLCBCb3g8VW5jaGVja2VkTG9jaz4gbG9jaywgUmVmPEF1dG9tYXRpY1RocmVhZENvbmRpdGlv
bj4mJiBjb25kaXRpb24sIFNlY29uZHMgdGltZW91dCkKICAgICA6IEF1dG9tYXRpY1RocmVhZChs
b2NrZXIsIGxvY2ssIFdURk1vdmUoY29uZGl0aW9uKSwgVGhyZWFkVHlwZTo6VW5rbm93biwgdGlt
ZW91dCkKIHsKIH0KIAotQXV0b21hdGljVGhyZWFkOjpBdXRvbWF0aWNUaHJlYWQoY29uc3QgQWJz
dHJhY3RMb2NrZXImIGxvY2tlciwgQm94PExvY2s+IGxvY2ssIFJlZjxBdXRvbWF0aWNUaHJlYWRD
b25kaXRpb24+JiYgY29uZGl0aW9uLCBUaHJlYWRUeXBlIHR5cGUsIFNlY29uZHMgdGltZW91dCkK
K0F1dG9tYXRpY1RocmVhZDo6QXV0b21hdGljVGhyZWFkKGNvbnN0IEFic3RyYWN0TG9ja2VyJiBs
b2NrZXIsIEJveDxVbmNoZWNrZWRMb2NrPiBsb2NrLCBSZWY8QXV0b21hdGljVGhyZWFkQ29uZGl0
aW9uPiYmIGNvbmRpdGlvbiwgVGhyZWFkVHlwZSB0eXBlLCBTZWNvbmRzIHRpbWVvdXQpCiAgICAg
OiBtX2xvY2sobG9jaykKICAgICAsIG1fY29uZGl0aW9uKFdURk1vdmUoY29uZGl0aW9uKSkKICAg
ICAsIG1fdGltZW91dCh0aW1lb3V0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvQXV0b21h
dGljVGhyZWFkLmggYi9Tb3VyY2UvV1RGL3d0Zi9BdXRvbWF0aWNUaHJlYWQuaAppbmRleCA4ZDdj
MmI1MTY4MGEzZWE2NzI4ZTUxNzRmYzgxODA2OGRlZTk1Yzg2Li4wOWZjYWZlZjIzOTU5MWIyZTEy
Y2RmMDJmZGYwMDZjY2RkNDEyYTZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9BdXRvbWF0
aWNUaHJlYWQuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9BdXRvbWF0aWNUaHJlYWQuaApAQCAtODEs
OCArODEsOCBAQCBwdWJsaWM6CiAgICAgLy8gT25lIGtub3duLWdvb2QgY2FzZSBmb3Igb25lLXRy
dWUtY29uZGl0aW9uIGlzIHdoZW4gdGhlIGNvbW11bmljYXRpb24gaW52b2x2ZXMganVzdCB0d28K
ICAgICAvLyB0aHJlYWRzLiBJbiBzdWNoIGNhc2VzLCB0aGUgdGhyZWFkIGRvaW5nIHRoZSBub3Rp
ZnlBbGwoKSBjYW4gd2FrZSB1cCBhdCBtb3N0IG9uZSB0aHJlYWQgLQogICAgIC8vIGl0cyBwYXJ0
bmVyLgotICAgIFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIHdhaXQoTG9jayYpOwotICAgIFdURl9F
WFBPUlRfUFJJVkFURSBib29sIHdhaXRGb3IoTG9jayYsIFNlY29uZHMpOworICAgIFdURl9FWFBP
UlRfUFJJVkFURSB2b2lkIHdhaXQoVW5jaGVja2VkTG9jayYpOworICAgIFdURl9FWFBPUlRfUFJJ
VkFURSBib29sIHdhaXRGb3IoVW5jaGVja2VkTG9jayYsIFNlY29uZHMpOwogICAgIAogcHJpdmF0
ZToKICAgICBmcmllbmQgY2xhc3MgQXV0b21hdGljVGhyZWFkOwpAQCAtOTMsNyArOTMsNyBAQCBw
cml2YXRlOgogICAgIHZvaWQgcmVtb3ZlKGNvbnN0IEFic3RyYWN0TG9ja2VyJiwgQXV0b21hdGlj
VGhyZWFkKik7CiAgICAgYm9vbCBjb250YWlucyhjb25zdCBBYnN0cmFjdExvY2tlciYsIEF1dG9t
YXRpY1RocmVhZCopOwogICAgIAotICAgIENvbmRpdGlvbiBtX2NvbmRpdGlvbjsKKyAgICBVbmNo
ZWNrZWRDb25kaXRpb24gbV9jb25kaXRpb247CiAgICAgVmVjdG9yPEF1dG9tYXRpY1RocmVhZCo+
IG1fdGhyZWFkczsKIH07CiAKQEAgLTEzMSw5ICsxMzEsOSBAQCBwdWJsaWM6CiBwcm90ZWN0ZWQ6
CiAgICAgLy8gVGhpcyBsb2dpY2FsbHkgY3JlYXRlcyB0aGUgdGhyZWFkLCBidXQgaW4gcmVhbGl0
eSB0aGUgdGhyZWFkIHdvbid0IGJlIGNyZWF0ZWQgdW50aWwgc29tZW9uZQogICAgIC8vIGNhbGxz
IEF1dG9tYXRpY1RocmVhZENvbmRpdGlvbjo6bm90aWZ5T25lKCkgb3Igbm90aWZ5QWxsKCkuCi0g
ICAgQXV0b21hdGljVGhyZWFkKGNvbnN0IEFic3RyYWN0TG9ja2VyJiwgQm94PExvY2s+LCBSZWY8
QXV0b21hdGljVGhyZWFkQ29uZGl0aW9uPiYmLCBTZWNvbmRzIHRpbWVvdXQgPSAxMF9zKTsKKyAg
ICBBdXRvbWF0aWNUaHJlYWQoY29uc3QgQWJzdHJhY3RMb2NrZXImLCBCb3g8VW5jaGVja2VkTG9j
az4sIFJlZjxBdXRvbWF0aWNUaHJlYWRDb25kaXRpb24+JiYsIFNlY29uZHMgdGltZW91dCA9IDEw
X3MpOwogCi0gICAgQXV0b21hdGljVGhyZWFkKGNvbnN0IEFic3RyYWN0TG9ja2VyJiwgQm94PExv
Y2s+LCBSZWY8QXV0b21hdGljVGhyZWFkQ29uZGl0aW9uPiYmLCBUaHJlYWRUeXBlLCBTZWNvbmRz
IHRpbWVvdXQgPSAxMF9zKTsKKyAgICBBdXRvbWF0aWNUaHJlYWQoY29uc3QgQWJzdHJhY3RMb2Nr
ZXImLCBCb3g8VW5jaGVja2VkTG9jaz4sIFJlZjxBdXRvbWF0aWNUaHJlYWRDb25kaXRpb24+JiYs
IFRocmVhZFR5cGUsIFNlY29uZHMgdGltZW91dCA9IDEwX3MpOwogICAgIAogICAgIC8vIFRvIHVu
ZGVyc3RhbmQgUG9sbFJlc3VsdCBhbmQgV29ya1Jlc3VsdCwgaW1hZ2luZSB0aGF0IHBvbGwoKSBh
bmQgd29yaygpIGFyZSBiZWluZyBjYWxsZWQgbGlrZQogICAgIC8vIHNvOgpAQCAtMTgzLDE1ICsx
ODMsMTUgQEAgcHJpdmF0ZToKICAgICAKICAgICB2b2lkIHN0YXJ0KGNvbnN0IEFic3RyYWN0TG9j
a2VyJik7CiAgICAgCi0gICAgQm94PExvY2s+IG1fbG9jazsKKyAgICBCb3g8VW5jaGVja2VkTG9j
az4gbV9sb2NrOwogICAgIFJlZjxBdXRvbWF0aWNUaHJlYWRDb25kaXRpb24+IG1fY29uZGl0aW9u
OwogICAgIFNlY29uZHMgbV90aW1lb3V0OwogICAgIFRocmVhZFR5cGUgbV90aHJlYWRUeXBlIHsg
VGhyZWFkVHlwZTo6VW5rbm93biB9OwogICAgIGJvb2wgbV9pc1J1bm5pbmcgeyB0cnVlIH07CiAg
ICAgYm9vbCBtX2lzV2FpdGluZyB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2hhc1VuZGVybHlpbmdU
aHJlYWQgeyBmYWxzZSB9OwotICAgIENvbmRpdGlvbiBtX3dhaXRDb25kaXRpb247Ci0gICAgQ29u
ZGl0aW9uIG1faXNSdW5uaW5nQ29uZGl0aW9uOworICAgIFVuY2hlY2tlZENvbmRpdGlvbiBtX3dh
aXRDb25kaXRpb247CisgICAgVW5jaGVja2VkQ29uZGl0aW9uIG1faXNSdW5uaW5nQ29uZGl0aW9u
OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9D
aGVja2VkQ29uZGl0aW9uLmggYi9Tb3VyY2UvV1RGL3d0Zi9DaGVja2VkQ29uZGl0aW9uLmgKaW5k
ZXggMTE5MTBlMDM5OTEzYjRiNjBhNDQ5NDdlYmM5MWQwMWFiYzc4YjI3OS4uMTA2YmJhMjJkMGE2
MTdiMGRmMDRiMjcyZjhjYTJkMGI2MWNiYTBiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYv
Q2hlY2tlZENvbmRpdGlvbi5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL0NoZWNrZWRDb25kaXRpb24u
aApAQCAtMjUsNTggKzI1LDEyIEBACiAKICNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSA8d3RmL0No
ZWNrZWRMb2NrLmg+CiAjaW5jbHVkZSA8d3RmL0NvbmRpdGlvbi5oPgogCiBuYW1lc3BhY2UgV1RG
IHsKIAotLy8gQSBjb25kaXRpb24gdmFyaWFibGUgdHlwZSBmb3IgQ2hlY2tlZExvY2suCi0vLyBG
b3IgcHJlZGljYXRlcyB0aGF0IGFjY2VzcyB0aGUgZ3VhcmRlZCB2YXJpYWJsZXMsIHVzZSBhc3Nl
cnRJc0hlbGQobG9jaykuCi1jbGFzcyBDaGVja2VkQ29uZGl0aW9uIGZpbmFsIHsKLSAgICBXVEZf
TUFLRV9OT05DT1BZQUJMRShDaGVja2VkQ29uZGl0aW9uKTsKLSAgICBXVEZfTUFLRV9GQVNUX0FM
TE9DQVRFRDsKLXB1YmxpYzoKLSAgICBjb25zdGV4cHIgQ2hlY2tlZENvbmRpdGlvbigpID0gZGVm
YXVsdDsKLQotICAgIGJvb2wgd2FpdFVudGlsKENoZWNrZWRMb2NrJiBsb2NrLCBjb25zdCBUaW1l
V2l0aER5bmFtaWNDbG9ja1R5cGUmIHRpbWVvdXQpIFdURl9SRVFVSVJFU19MT0NLKGxvY2spCi0g
ICAgewotICAgICAgICByZXR1cm4gbV9jb25kaXRpb24ud2FpdFVudGlsKHVuY2hlY2tlZENhc3Qo
bG9jayksIHRpbWVvdXQpOwotICAgIH0KLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBGdW5jdG9yPgot
ICAgIGJvb2wgd2FpdFVudGlsKENoZWNrZWRMb2NrJiBsb2NrLCBjb25zdCBUaW1lV2l0aER5bmFt
aWNDbG9ja1R5cGUmIHRpbWVvdXQsIGNvbnN0IEZ1bmN0b3ImIHByZWRpY2F0ZSkgV1RGX1JFUVVJ
UkVTX0xPQ0sobG9jaykKLSAgICB7Ci0gICAgICAgIHJldHVybiBtX2NvbmRpdGlvbi53YWl0VW50
aWwodW5jaGVja2VkQ2FzdChsb2NrKSwgdGltZW91dCwgcHJlZGljYXRlKTsKLSAgICB9Ci0gICAg
dGVtcGxhdGU8dHlwZW5hbWUgRnVuY3Rvcj4KLSAgICBib29sIHdhaXRGb3IoQ2hlY2tlZExvY2sm
IGxvY2ssIFNlY29uZHMgcmVsYXRpdmVUaW1lb3V0LCBjb25zdCBGdW5jdG9yJiBwcmVkaWNhdGUp
IFdURl9SRVFVSVJFU19MT0NLKGxvY2spCi0gICAgewotICAgICAgICByZXR1cm4gbV9jb25kaXRp
b24ud2FpdEZvcih1bmNoZWNrZWRDYXN0KGxvY2spLCByZWxhdGl2ZVRpbWVvdXQsIHByZWRpY2F0
ZSk7Ci0gICAgfQotICAgIGJvb2wgd2FpdEZvcihDaGVja2VkTG9jayYgbG9jaywgU2Vjb25kcyBy
ZWxhdGl2ZVRpbWVvdXQpIFdURl9SRVFVSVJFU19MT0NLKGxvY2spCi0gICAgewotICAgICAgICBy
ZXR1cm4gbV9jb25kaXRpb24ud2FpdEZvcih1bmNoZWNrZWRDYXN0KGxvY2spLCByZWxhdGl2ZVRp
bWVvdXQpOwotICAgIH0KLSAgICB2b2lkIHdhaXQoQ2hlY2tlZExvY2smIGxvY2spIFdURl9SRVFV
SVJFU19MT0NLKGxvY2spCi0gICAgewotICAgICAgICBtX2NvbmRpdGlvbi53YWl0KHVuY2hlY2tl
ZENhc3QobG9jaykpOwotICAgIH0KLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBGdW5jdG9yPgotICAg
IHZvaWQgd2FpdChDaGVja2VkTG9jayYgbG9jaywgY29uc3QgRnVuY3RvciYgcHJlZGljYXRlKSBX
VEZfUkVRVUlSRVNfTE9DSyhsb2NrKQotICAgIHsKLSAgICAgICAgbV9jb25kaXRpb24ud2FpdCh1
bmNoZWNrZWRDYXN0KGxvY2spLCBwcmVkaWNhdGUpOwotICAgIH0KLSAgICBib29sIG5vdGlmeU9u
ZSgpCi0gICAgewotICAgICAgICByZXR1cm4gbV9jb25kaXRpb24ubm90aWZ5T25lKCk7Ci0gICAg
fQotICAgIHZvaWQgbm90aWZ5QWxsKCkKLSAgICB7Ci0gICAgICAgIG1fY29uZGl0aW9uLm5vdGlm
eUFsbCgpOwotICAgIH0KLXByaXZhdGU6Ci0gICAgc3RhdGljIExvY2smIHVuY2hlY2tlZENhc3Qo
Q2hlY2tlZExvY2smIGxvY2spIHsgcmV0dXJuIHN0YXRpY19jYXN0PExvY2smPihsb2NrKTsgfQot
ICAgIENvbmRpdGlvbiBtX2NvbmRpdGlvbjsKLX07CisvLyBGSVhNRTogVXBkYXRlIGNvZGUgYmFz
ZSB0byB1c2UgQ29uZGl0aW9uIGFuZCByZW1vdmUgdGhpcyBoZWFkZXIuCit1c2luZyBDaGVja2Vk
Q29uZGl0aW9uID0gQ29uZGl0aW9uOwogCiB9IC8vIG5hbWVzcGFjZSBXVEYKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dURi93dGYvQ2hlY2tlZExvY2suaCBiL1NvdXJjZS9XVEYvd3RmL0NoZWNrZWRM
b2NrLmgKaW5kZXggM2FiNWM3NzBkZTE2MWI0ZjA1OWQ2Yzc0YmI3MWVjOThlZmE1ZjU4YS4uOTRh
OTgxZDc4ODE5NjA2MWU1Mzc2ZDNjNDJlYWEyNGIwYjQyZDE4NiAxMDA2NDQKLS0tIGEvU291cmNl
L1dURi93dGYvQ2hlY2tlZExvY2suaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9DaGVja2VkTG9jay5o
CkBAIC0yNiw4MyArMjYsMTIgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSA8d3RmL0xvY2su
aD4KLSNpbmNsdWRlIDx3dGYvTG9ja2VyLmg+Ci0jaW5jbHVkZSA8d3RmL1RocmVhZFNhZmV0eUFu
YWx5c2lzLmg+CiAKIG5hbWVzcGFjZSBXVEYgewogCi0vLyBBIGxvY2sgdHlwZSB3aXRoIHN1cHBv
cnQgZm9yIHRocmVhZCBzYWZldHkgYW5hbHlzaXMuCi0vLyBUbyBhbm5vdGF0ZSBhIG1lbWJlciB2
YXJpYWJsZSBvciBhIGdsb2JhbCB2YXJpYWJsZSB3aXRoIHRocmVhZCBvd25lcnNoaXAgaW5mb3Jt
YXRpb24sCi0vLyB1c2UgbG9jayBjYXBhYmlsaXR5IGFubm90YXRpb25zIGRlZmluZWQgaW4gVGhy
ZWFkU2FmZXR5QW5hbHlzaXMuaC4KLS8vCi0vLyBFeGFtcGxlOgotLy8gICBjbGFzcyBNeVZhbHVl
IDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPE15VmFsdWU+Ci0vLyAgIHsKLS8vICAgcHVi
bGljOgotLy8gICAgICAgdm9pZCBzZXRWYWx1ZShpbnQgdmFsdWUpIHsgTG9ja2VyIGhvbGRMb2Nr
IHsgbV9sb2NrIH07IG1fdmFsdWUgPSB2YWx1ZTsgIH0KLS8vICAgICAgIHZvaWQgbWF5YmVTZXRP
dGhlclZhbHVlKGludCB2YWx1ZSkKLS8vICAgICAgIHsKLS8vICAgICAgICAgICBpZiAoIW1fbG9j
ay50cnlMb2NrKCkpCi0vLyAgICAgICAgICAgICAgcmV0dXJuOwotLy8gICAgICAgICAgIExvY2tl
ciBsb2NrZXIgeyBBZG9wdExvY2ssIG1fb3RoZXJMb2NrIH07Ci0vLyAgICAgICAgICAgbV9vdGhl
clZhbHVlID0gdmFsdWU7Ci0vLyAgICAgICB9Ci0vLyAgIHByaXZhdGU6Ci0vLyAgICAgICBDaGVj
a2VkTG9jayBtX2xvY2s7Ci0vLyAgICAgICBpbnQgbV92YWx1ZSBXVEZfR1VBUkRFRF9CWV9MT0NL
KG1fbG9jaykgeyA3NyB9OwotLy8gICAgICAgaW50IG1fb3RoZXJWYWx1ZSBXVEZfR1VBUkRFRF9C
WV9MT0NLKG1fbG9jaykgeyA4OCB9OwotLy8gICB9OwotLy8gRklYTUU6IE1heWJlIHNob3VsZCBi
ZSBmb2xkZWQgYmFjayB0byBMb2NrIG9uY2UgaG9sZExvY2sgaXMgbm90IHVzZWQgZ2xvYmFsbHku
Ci1jbGFzcyBXVEZfQ0FQQUJJTElUWV9MT0NLIENoZWNrZWRMb2NrIDogTG9jayB7Ci0gICAgV1RG
X01BS0VfTk9OQ09QWUFCTEUoQ2hlY2tlZExvY2spOwotICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NB
VEVEOwotcHVibGljOgotICAgIGNvbnN0ZXhwciBDaGVja2VkTG9jaygpID0gZGVmYXVsdDsKLSAg
ICB2b2lkIGxvY2soKSBXVEZfQUNRVUlSRVNfTE9DSygpIHsgTG9jazo6bG9jaygpOyB9Ci0gICAg
Ym9vbCB0cnlMb2NrKCkgV1RGX0FDUVVJUkVTX0xPQ0tfSUYodHJ1ZSkgeyByZXR1cm4gTG9jazo6
dHJ5TG9jaygpOyB9Ci0gICAgYm9vbCB0cnlfbG9jaygpIFdURl9BQ1FVSVJFU19MT0NLX0lGKHRy
dWUpIHsgcmV0dXJuIExvY2s6OnRyeV9sb2NrKCk7IH0gLy8gTk9MSU5UOiBJbnRlbnRpb25hbCBk
ZXZpYXRpb24gdG8gc3VwcG9ydCBzdGQ6OnNjb3BlZF9sb2NrLgotICAgIHZvaWQgdW5sb2NrKCkg
V1RGX1JFTEVBU0VTX0xPQ0soKSB7IExvY2s6OnVubG9jaygpOyB9Ci0gICAgdm9pZCB1bmxvY2tG
YWlybHkoKSBXVEZfUkVMRUFTRVNfTE9DSygpIHsgTG9jazo6dW5sb2NrRmFpcmx5KCk7IH0KLSAg
ICB2b2lkIHNhZmVwb2ludCgpIHsgTG9jazo6c2FmZXBvaW50KCk7IH0KLSAgICBib29sIGlzSGVs
ZCgpIGNvbnN0IHsgcmV0dXJuIExvY2s6OmlzSGVsZCgpOyB9Ci0gICAgYm9vbCBpc0xvY2tlZCgp
IGNvbnN0IHsgcmV0dXJuIExvY2s6OmlzTG9ja2VkKCk7IH0KLSAgICBmcmllbmQgY2xhc3MgQ2hl
Y2tlZENvbmRpdGlvbjsKLX07Ci0KLS8vIEFzc2VydHMgdGhhdCB0aGUgbG9jayBpcyBoZWxkLgot
Ly8gVGhpcyBjYW4gYmUgdXNlZCBpbiBjYXNlcyB3aGVyZSB0aGUgYW5ub3RhdGlvbnMgY2Fubm90
IGJlIGFkZGVkIHRvIHRoZSBmdW5jdGlvbgotLy8gZGVjbGFyYXRpb24uCi1pbmxpbmUgdm9pZCBh
c3NlcnRJc0hlbGQoY29uc3QgQ2hlY2tlZExvY2smIGxvY2spIFdURl9BU1NFUlRTX0FDUVVJUkVE
X0xPQ0sobG9jaykgeyBBU1NFUlRfVU5VU0VEKGxvY2ssIGxvY2suaXNIZWxkKCkpOyB9Ci0KLS8v
IExvY2tlciBzcGVjaWFsaXphdGlvbiB0byB1c2Ugd2l0aCBDaGVja2VkTG9jay4KLS8vIE5vbi1t
b3ZhYmxlIHNpbXBsZSBzY29wZWQgbG9jayBob2xkZXIuCi0vLyBFeGFtcGxlOiBMb2NrZXIgbG9j
a2VyIHsgbV9sb2NrIH07Ci10ZW1wbGF0ZSA8PgotY2xhc3MgV1RGX0NBUEFCSUxJVFlfU0NPUEVE
X0xPQ0sgTG9ja2VyPENoZWNrZWRMb2NrPiB7Ci1wdWJsaWM6Ci0gICAgZXhwbGljaXQgTG9ja2Vy
KENoZWNrZWRMb2NrJiBsb2NrKSBXVEZfQUNRVUlSRVNfTE9DSyhsb2NrKQotICAgICAgICA6IG1f
bG9jayhsb2NrKQotICAgIHsKLSAgICAgICAgbV9sb2NrLmxvY2soKTsKLSAgICB9Ci0gICAgTG9j
a2VyKEFkb3B0TG9ja1RhZywgQ2hlY2tlZExvY2smIGxvY2spIFdURl9SRVFVSVJFU19MT0NLKGxv
Y2spCi0gICAgICAgIDogbV9sb2NrKGxvY2spCi0gICAgewotICAgIH0KLSAgICB+TG9ja2VyKCkg
V1RGX1JFTEVBU0VTX0xPQ0soKQotICAgIHsKLSAgICAgICAgbV9sb2NrLnVubG9jaygpOwotICAg
IH0KLSAgICBMb2NrZXIoY29uc3QgTG9ja2VyPENoZWNrZWRMb2NrPiYpID0gZGVsZXRlOwotICAg
IExvY2tlciYgb3BlcmF0b3I9KGNvbnN0IExvY2tlcjxDaGVja2VkTG9jaz4mKSA9IGRlbGV0ZTsK
LXByaXZhdGU6Ci0gICAgQ2hlY2tlZExvY2smIG1fbG9jazsKLX07Ci0KLUxvY2tlcihDaGVja2Vk
TG9jayYpIC0+IExvY2tlcjxDaGVja2VkTG9jaz47Ci1Mb2NrZXIoQWRvcHRMb2NrVGFnLCBDaGVj
a2VkTG9jayYpIC0+IExvY2tlcjxDaGVja2VkTG9jaz47CisvLyBGSVhNRTogVXBkYXRlIGNvZGUg
YmFzZSB0byB1c2UgTG9jayBhbmQgcmVtb3ZlIHRoaXMgaGVhZGVyLgordXNpbmcgQ2hlY2tlZExv
Y2sgPSBMb2NrOwogCiB9IC8vIG5hbWVzcGFjZSBXVEYKIAotdXNpbmcgV1RGOjphc3NlcnRJc0hl
bGQ7CiB1c2luZyBXVEY6OkNoZWNrZWRMb2NrOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYv
Q29uZGl0aW9uLmggYi9Tb3VyY2UvV1RGL3d0Zi9Db25kaXRpb24uaAppbmRleCA4MTU1MDFmMTdk
MjY3OTkyZGY0ZDQ0ZGRiOTkzMWNjYTBlOGZmZTk5Li40ZWVmMWYxYTYyYTFjYjUyYzFkZTU3MmUx
NzFhMzE0MzU2OThiMzY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9Db25kaXRpb24uaAor
KysgYi9Tb3VyY2UvV1RGL3d0Zi9Db25kaXRpb24uaApAQCAtMjUsNiArMjUsNyBAQAogCiAjcHJh
Z21hIG9uY2UKIAorI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CiAjaW5jbHVkZSA8d3RmL05vbmNvcHlh
YmxlLmg+CiAjaW5jbHVkZSA8d3RmL1BhcmtpbmdMb3QuaD4KICNpbmNsdWRlIDx3dGYvVGltZVdp
dGhEeW5hbWljQ2xvY2tUeXBlLmg+CkBAIC0zOSwxNiArNDAsMTYgQEAgbmFtZXNwYWNlIFdURiB7
CiAvLyBub3RpZnlBbGwoKSByZXF1aXJlIGp1c3QgYSBsb2FkIGFuZCBicmFuY2ggZm9yIHRoZSBm
YXN0IGNhc2Ugd2hlcmUgbm8gdGhyZWFkIGlzIHdhaXRpbmcuCiAvLyBUaGlzIGNvbmRpdGlvbiB2
YXJpYWJsZSwgd2hlbiB1c2VkIHdpdGggV1RGOjpMb2NrLCBjYW4gb3V0cGVyZm9ybSBhIHN5c3Rl
bSBjb25kaXRpb24gdmFyaWFibGUKIC8vIGFuZCBsb2NrIGJ5IHVwIHRvIDU4eC4KLWNsYXNzIENv
bmRpdGlvbiBmaW5hbCB7Ci0gICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoQ29uZGl0aW9uKTsKK2Ns
YXNzIFVuY2hlY2tlZENvbmRpdGlvbiBmaW5hbCB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUo
VW5jaGVja2VkQ29uZGl0aW9uKTsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1Ymxp
YzoKLSAgICAvLyBDb25kaXRpb24gd2lsbCBhY2NlcHQgYW55IGtpbmQgb2YgdGltZSBhbmQgY29u
dmVydCBpdCBpbnRlcm5hbGx5LCBidXQgdGhpcyB0eXBlZGVmIHRlbGxzCi0gICAgLy8geW91IHdo
YXQga2luZCBvZiB0aW1lIENvbmRpdGlvbiB3b3VsZCBiZSBhYmxlIHRvIHVzZSB3aXRob3V0IGNv
bnZlcnNpb25zLiBIb3dldmVyLCBpZiB5b3UKKyAgICAvLyBVbmNoZWNrZWRDb25kaXRpb24gd2ls
bCBhY2NlcHQgYW55IGtpbmQgb2YgdGltZSBhbmQgY29udmVydCBpdCBpbnRlcm5hbGx5LCBidXQg
dGhpcyB0eXBlZGVmIHRlbGxzCisgICAgLy8geW91IHdoYXQga2luZCBvZiB0aW1lIFVuY2hlY2tl
ZENvbmRpdGlvbiB3b3VsZCBiZSBhYmxlIHRvIHVzZSB3aXRob3V0IGNvbnZlcnNpb25zLiBIb3dl
dmVyLCBpZiB5b3UKICAgICAvLyBhcmUgdW5saWtlbHkgdG8gYmUgYWZmZWN0ZWQgYnkgdGhlIGNv
c3Qgb2YgY29udmVyc2lvbnMsIGl0IGlzIGJldHRlciB0byB1c2UgTW9ub3RvbmljVGltZS4KICAg
ICB1c2luZyBUaW1lID0gUGFya2luZ0xvdDo6VGltZTsKIAotICAgIGNvbnN0ZXhwciBDb25kaXRp
b24oKSA9IGRlZmF1bHQ7CisgICAgY29uc3RleHByIFVuY2hlY2tlZENvbmRpdGlvbigpID0gZGVm
YXVsdDsKIAogICAgIC8vIFdhaXQgb24gYSBwYXJraW5nIHF1ZXVlIHdoaWxlIHJlbGVhc2luZyB0
aGUgZ2l2ZW4gbG9jay4gSXQgd2lsbCB1bmxvY2sgdGhlIGxvY2sganVzdCBiZWZvcmUKICAgICAv
LyBwYXJraW5nLCBhbmQgcmVsb2NrIGl0IHVwb24gd2FrZXVwLiBSZXR1cm5zIHRydWUgaWYgd2Ug
d29rZSB1cCBkdWUgdG8gc29tZSBjYWxsIHRvCkBAIC0xNzIsOSArMTczLDYxIEBAIHByaXZhdGU6
CiAgICAgQXRvbWljPGJvb2w+IG1faGFzV2FpdGVycyB7IGZhbHNlIH07CiB9OwogCisvLyBBIGNv
bmRpdGlvbiB2YXJpYWJsZSB0eXBlIGZvciBMb2NrLgorLy8gRm9yIHByZWRpY2F0ZXMgdGhhdCBh
Y2Nlc3MgdGhlIGd1YXJkZWQgdmFyaWFibGVzLCB1c2UgYXNzZXJ0SXNIZWxkKGxvY2spLgorY2xh
c3MgQ29uZGl0aW9uIGZpbmFsIHsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShDb25kaXRpb24p
OworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIGNvbnN0ZXhwciBD
b25kaXRpb24oKSA9IGRlZmF1bHQ7CisKKyAgICBib29sIHdhaXRVbnRpbChMb2NrJiBsb2NrLCBj
b25zdCBUaW1lV2l0aER5bmFtaWNDbG9ja1R5cGUmIHRpbWVvdXQpIFdURl9SRVFVSVJFU19MT0NL
KGxvY2spCisgICAgeworICAgICAgICByZXR1cm4gbV9jb25kaXRpb24ud2FpdFVudGlsKHVuY2hl
Y2tlZENhc3QobG9jayksIHRpbWVvdXQpOworICAgIH0KKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBG
dW5jdG9yPgorICAgIGJvb2wgd2FpdFVudGlsKExvY2smIGxvY2ssIGNvbnN0IFRpbWVXaXRoRHlu
YW1pY0Nsb2NrVHlwZSYgdGltZW91dCwgY29uc3QgRnVuY3RvciYgcHJlZGljYXRlKSBXVEZfUkVR
VUlSRVNfTE9DSyhsb2NrKQorICAgIHsKKyAgICAgICAgcmV0dXJuIG1fY29uZGl0aW9uLndhaXRV
bnRpbCh1bmNoZWNrZWRDYXN0KGxvY2spLCB0aW1lb3V0LCBwcmVkaWNhdGUpOworICAgIH0KKyAg
ICB0ZW1wbGF0ZTx0eXBlbmFtZSBGdW5jdG9yPgorICAgIGJvb2wgd2FpdEZvcihMb2NrJiBsb2Nr
LCBTZWNvbmRzIHJlbGF0aXZlVGltZW91dCwgY29uc3QgRnVuY3RvciYgcHJlZGljYXRlKSBXVEZf
UkVRVUlSRVNfTE9DSyhsb2NrKQorICAgIHsKKyAgICAgICAgcmV0dXJuIG1fY29uZGl0aW9uLndh
aXRGb3IodW5jaGVja2VkQ2FzdChsb2NrKSwgcmVsYXRpdmVUaW1lb3V0LCBwcmVkaWNhdGUpOwor
ICAgIH0KKyAgICBib29sIHdhaXRGb3IoTG9jayYgbG9jaywgU2Vjb25kcyByZWxhdGl2ZVRpbWVv
dXQpIFdURl9SRVFVSVJFU19MT0NLKGxvY2spCisgICAgeworICAgICAgICByZXR1cm4gbV9jb25k
aXRpb24ud2FpdEZvcih1bmNoZWNrZWRDYXN0KGxvY2spLCByZWxhdGl2ZVRpbWVvdXQpOworICAg
IH0KKyAgICB2b2lkIHdhaXQoTG9jayYgbG9jaykgV1RGX1JFUVVJUkVTX0xPQ0sobG9jaykKKyAg
ICB7CisgICAgICAgIG1fY29uZGl0aW9uLndhaXQodW5jaGVja2VkQ2FzdChsb2NrKSk7CisgICAg
fQorICAgIHRlbXBsYXRlPHR5cGVuYW1lIEZ1bmN0b3I+CisgICAgdm9pZCB3YWl0KExvY2smIGxv
Y2ssIGNvbnN0IEZ1bmN0b3ImIHByZWRpY2F0ZSkgV1RGX1JFUVVJUkVTX0xPQ0sobG9jaykKKyAg
ICB7CisgICAgICAgIG1fY29uZGl0aW9uLndhaXQodW5jaGVja2VkQ2FzdChsb2NrKSwgcHJlZGlj
YXRlKTsKKyAgICB9CisgICAgYm9vbCBub3RpZnlPbmUoKQorICAgIHsKKyAgICAgICAgcmV0dXJu
IG1fY29uZGl0aW9uLm5vdGlmeU9uZSgpOworICAgIH0KKyAgICB2b2lkIG5vdGlmeUFsbCgpCisg
ICAgeworICAgICAgICBtX2NvbmRpdGlvbi5ub3RpZnlBbGwoKTsKKyAgICB9Citwcml2YXRlOgor
ICAgIHN0YXRpYyBVbmNoZWNrZWRMb2NrJiB1bmNoZWNrZWRDYXN0KExvY2smIGxvY2spIHsgcmV0
dXJuIHN0YXRpY19jYXN0PFVuY2hlY2tlZExvY2smPihsb2NrKTsgfQorICAgIFVuY2hlY2tlZENv
bmRpdGlvbiBtX2NvbmRpdGlvbjsKK307CisKK3VzaW5nIFN0YXRpY1VuY2hlY2tlZENvbmRpdGlv
biA9IFVuY2hlY2tlZENvbmRpdGlvbjsKIHVzaW5nIFN0YXRpY0NvbmRpdGlvbiA9IENvbmRpdGlv
bjsKIAogfSAvLyBuYW1lc3BhY2UgV1RGCiAKIHVzaW5nIFdURjo6Q29uZGl0aW9uOwordXNpbmcg
V1RGOjpVbmNoZWNrZWRDb25kaXRpb247CiB1c2luZyBXVEY6OlN0YXRpY0NvbmRpdGlvbjsKK3Vz
aW5nIFdURjo6U3RhdGljVW5jaGVja2VkQ29uZGl0aW9uOworCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V1RGL3d0Zi9Mb2NrLmNwcCBiL1NvdXJjZS9XVEYvd3RmL0xvY2suY3BwCmluZGV4IGI5OTM4M2Q2
OTQ4MGQzYTRjOWI2MjNmMGMwYmNjN2RmOTBlYWIwNGQuLmZmODZlMTBhOWEyYTQxN2FiNzA2NzBh
MDc4OWNmNjUwZDcxOGIxNzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0xvY2suY3BwCisr
KyBiL1NvdXJjZS9XVEYvd3RmL0xvY2suY3BwCkBAIC0zMywxNCArMzMsMTQgQEAgbmFtZXNwYWNl
IFdURiB7CiAKIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBwcm9maWxlTG9ja0NvbnRlbnRpb24gPSBm
YWxzZTsKIAotdm9pZCBMb2NrOjpsb2NrU2xvdygpCit2b2lkIFVuY2hlY2tlZExvY2s6OmxvY2tT
bG93KCkKIHsKICAgICBpZiAocHJvZmlsZUxvY2tDb250ZW50aW9uKQogICAgICAgICBTVEFDS19T
SE9UX1BST0ZJTEUoNCwgMiwgNSk7CiAgICAgRGVmYXVsdExvY2tBbGdvcml0aG06OmxvY2tTbG93
KG1fYnl0ZSk7CiB9CiAKLXZvaWQgTG9jazo6dW5sb2NrU2xvdygpCit2b2lkIFVuY2hlY2tlZExv
Y2s6OnVubG9ja1Nsb3coKQogewogICAgIC8vIEhlYXAgYWxsb2NhdGlvbnMgYXJlIGZvcmJpZGRl
biBvbiB0aGUgY2VydGFpbiB0aHJlYWRzIChlLmcuIGF1ZGlvIHJlbmRlcmluZyB0aHJlYWQpIGZv
ciBwZXJmb3JtYW5jZSByZWFzb25zIHNvIHdlIG5lZWQgdG8KICAgICAvLyBleHBsaWNpdGx5IGFs
bG93IHRoZSBmb2xsb3dpbmcgYWxsb2NhdGlvbihzKS4gSW4gc29tZSByYXJlIGNhc2VzLCB0aGUg
dW5sb2NrU2xvdygpIGFsZ29yaXRoIG1heSBjYXVzZSBhbGxvY2F0aW9ucy4KQEAgLTQ5LDcgKzQ5
LDcgQEAgdm9pZCBMb2NrOjp1bmxvY2tTbG93KCkKICAgICBEZWZhdWx0TG9ja0FsZ29yaXRobTo6
dW5sb2NrU2xvdyhtX2J5dGUsIERlZmF1bHRMb2NrQWxnb3JpdGhtOjpVbmZhaXIpOwogfQogCi12
b2lkIExvY2s6OnVubG9ja0ZhaXJseVNsb3coKQordm9pZCBVbmNoZWNrZWRMb2NrOjp1bmxvY2tG
YWlybHlTbG93KCkKIHsKICAgICAvLyBIZWFwIGFsbG9jYXRpb25zIGFyZSBmb3JiaWRkZW4gb24g
dGhlIGNlcnRhaW4gdGhyZWFkcyAoZS5nLiBhdWRpbyByZW5kZXJpbmcgdGhyZWFkKSBmb3IgcGVy
Zm9ybWFuY2UgcmVhc29ucyBzbyB3ZSBuZWVkIHRvCiAgICAgLy8gZXhwbGljaXRseSBhbGxvdyB0
aGUgZm9sbG93aW5nIGFsbG9jYXRpb24ocykuIEluIHNvbWUgcmFyZSBjYXNlcywgdGhlIHVubG9j
a1Nsb3coKSBhbGdvcml0aCBtYXkgY2F1c2UgYWxsb2NhdGlvbnMuCkBAIC01OCw3ICs1OCw3IEBA
IHZvaWQgTG9jazo6dW5sb2NrRmFpcmx5U2xvdygpCiAgICAgRGVmYXVsdExvY2tBbGdvcml0aG06
OnVubG9ja1Nsb3cobV9ieXRlLCBEZWZhdWx0TG9ja0FsZ29yaXRobTo6RmFpcik7CiB9CiAKLXZv
aWQgTG9jazo6c2FmZXBvaW50U2xvdygpCit2b2lkIFVuY2hlY2tlZExvY2s6OnNhZmVwb2ludFNs
b3coKQogewogICAgIERlZmF1bHRMb2NrQWxnb3JpdGhtOjpzYWZlcG9pbnRTbG93KG1fYnl0ZSk7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9Mb2NrLmggYi9Tb3VyY2UvV1RGL3d0Zi9M
b2NrLmgKaW5kZXggNjBmZGFhYmQ5MGRhZTdmMmQ0ZDQ4ZjMxYjgwMzRkZTNiZjk1ZjY3ZC4uZmRj
MGE0Zjc3MGNlNjMyYTAxZjFiYjEzNWFjZGE5YjMzY2ZlNDkzMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dURi93dGYvTG9jay5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL0xvY2suaApAQCAtMjUsOSArMjUs
MTEgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlIDxtdXRleD4KICNpbmNsdWRlIDx3dGYv
TG9ja0FsZ29yaXRobS5oPgogI2luY2x1ZGUgPHd0Zi9Mb2NrZXIuaD4KICNpbmNsdWRlIDx3dGYv
Tm9uY29weWFibGUuaD4KKyNpbmNsdWRlIDx3dGYvVGhyZWFkU2FmZXR5QW5hbHlzaXMuaD4KIAog
bmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgewogc3RydWN0IExvY2tJbnNwZWN0b3I7CkBAIC00Nywx
MSArNDksMTEgQEAgdHlwZWRlZiBMb2NrQWxnb3JpdGhtPHVpbnQ4X3QsIDEsIDI+IERlZmF1bHRM
b2NrQWxnb3JpdGhtOwogLy8gYXQgd29yc3Qgb25lIGNhbGwgdG8gdW5sb2NrKCkgcGVyIG1pbGxp
c2Vjb25kIHdpbGwgZG8gYSBkaXJlY3QgaGFuZC1vZmYgdG8gdGhlIHRocmVhZCB0aGF0IGlzIGF0
CiAvLyB0aGUgaGVhZCBvZiB0aGUgcXVldWUuIFdoZW4gdGhlcmUgYXJlIGNvbGxpc2lvbnMsIGVh
Y2ggY29sbGlzaW9uIGluY3JlYXNlcyB0aGUgZmFpciB1bmxvY2sgZGVsYXkKIC8vIGJ5IG9uZSBt
aWxsaXNlY29uZCBpbiB0aGUgd29yc3QgY2FzZS4KLWNsYXNzIExvY2sgewotICAgIFdURl9NQUtF
X05PTkNPUFlBQkxFKExvY2spOworY2xhc3MgVW5jaGVja2VkTG9jayB7CisgICAgV1RGX01BS0Vf
Tk9OQ09QWUFCTEUoVW5jaGVja2VkTG9jayk7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7
CiBwdWJsaWM6Ci0gICAgY29uc3RleHByIExvY2soKSA9IGRlZmF1bHQ7CisgICAgY29uc3RleHBy
IFVuY2hlY2tlZExvY2soKSA9IGRlZmF1bHQ7CiAKICAgICB2b2lkIGxvY2soKQogICAgIHsKQEAg
LTEzMSw5ICsxMzMsODQgQEAgcHJpdmF0ZToKICAgICBBdG9taWM8dWludDhfdD4gbV9ieXRlIHsg
MCB9OwogfTsKIAorLy8gQSBsb2NrIHR5cGUgd2l0aCBzdXBwb3J0IGZvciB0aHJlYWQgc2FmZXR5
IGFuYWx5c2lzLgorLy8gVG8gYW5ub3RhdGUgYSBtZW1iZXIgdmFyaWFibGUgb3IgYSBnbG9iYWwg
dmFyaWFibGUgd2l0aCB0aHJlYWQgb3duZXJzaGlwIGluZm9ybWF0aW9uLAorLy8gdXNlIGxvY2sg
Y2FwYWJpbGl0eSBhbm5vdGF0aW9ucyBkZWZpbmVkIGluIFRocmVhZFNhZmV0eUFuYWx5c2lzLmgu
CisvLworLy8gRXhhbXBsZToKKy8vICAgY2xhc3MgTXlWYWx1ZSA6IHB1YmxpYyBUaHJlYWRTYWZl
UmVmQ291bnRlZDxNeVZhbHVlPgorLy8gICB7CisvLyAgIHB1YmxpYzoKKy8vICAgICAgIHZvaWQg
c2V0VmFsdWUoaW50IHZhbHVlKSB7IExvY2tlciBob2xkTG9jayB7IG1fbG9jayB9OyBtX3ZhbHVl
ID0gdmFsdWU7ICB9CisvLyAgICAgICB2b2lkIG1heWJlU2V0T3RoZXJWYWx1ZShpbnQgdmFsdWUp
CisvLyAgICAgICB7CisvLyAgICAgICAgICAgaWYgKCFtX2xvY2sudHJ5TG9jaygpKQorLy8gICAg
ICAgICAgICAgIHJldHVybjsKKy8vICAgICAgICAgICBMb2NrZXIgbG9ja2VyIHsgQWRvcHRMb2Nr
LCBtX290aGVyTG9jayB9OworLy8gICAgICAgICAgIG1fb3RoZXJWYWx1ZSA9IHZhbHVlOworLy8g
ICAgICAgfQorLy8gICBwcml2YXRlOgorLy8gICAgICAgTG9jayBtX2xvY2s7CisvLyAgICAgICBp
bnQgbV92YWx1ZSBXVEZfR1VBUkRFRF9CWV9MT0NLKG1fbG9jaykgeyA3NyB9OworLy8gICAgICAg
aW50IG1fb3RoZXJWYWx1ZSBXVEZfR1VBUkRFRF9CWV9MT0NLKG1fbG9jaykgeyA4OCB9OworLy8g
ICB9OworY2xhc3MgV1RGX0NBUEFCSUxJVFlfTE9DSyBMb2NrIDogVW5jaGVja2VkTG9jayB7Cisg
ICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoTG9jayk7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FU
RUQ7CitwdWJsaWM6CisgICAgY29uc3RleHByIExvY2soKSA9IGRlZmF1bHQ7CisgICAgdm9pZCBs
b2NrKCkgV1RGX0FDUVVJUkVTX0xPQ0soKSB7IFVuY2hlY2tlZExvY2s6OmxvY2soKTsgfQorICAg
IGJvb2wgdHJ5TG9jaygpIFdURl9BQ1FVSVJFU19MT0NLX0lGKHRydWUpIHsgcmV0dXJuIFVuY2hl
Y2tlZExvY2s6OnRyeUxvY2soKTsgfQorICAgIGJvb2wgdHJ5X2xvY2soKSBXVEZfQUNRVUlSRVNf
TE9DS19JRih0cnVlKSB7IHJldHVybiBVbmNoZWNrZWRMb2NrOjp0cnlfbG9jaygpOyB9IC8vIE5P
TElOVDogSW50ZW50aW9uYWwgZGV2aWF0aW9uIHRvIHN1cHBvcnQgc3RkOjpzY29wZWRfbG9jay4K
KyAgICB2b2lkIHVubG9jaygpIFdURl9SRUxFQVNFU19MT0NLKCkgeyBVbmNoZWNrZWRMb2NrOjp1
bmxvY2soKTsgfQorICAgIHZvaWQgdW5sb2NrRmFpcmx5KCkgV1RGX1JFTEVBU0VTX0xPQ0soKSB7
IFVuY2hlY2tlZExvY2s6OnVubG9ja0ZhaXJseSgpOyB9CisgICAgdm9pZCBzYWZlcG9pbnQoKSB7
IFVuY2hlY2tlZExvY2s6OnNhZmVwb2ludCgpOyB9CisgICAgYm9vbCBpc0hlbGQoKSBjb25zdCB7
IHJldHVybiBVbmNoZWNrZWRMb2NrOjppc0hlbGQoKTsgfQorICAgIGJvb2wgaXNMb2NrZWQoKSBj
b25zdCB7IHJldHVybiBVbmNoZWNrZWRMb2NrOjppc0xvY2tlZCgpOyB9CisgICAgZnJpZW5kIGNs
YXNzIENvbmRpdGlvbjsKKyAgICBmcmllbmQgc3RydWN0IFRlc3RXZWJLaXRBUEk6OkxvY2tJbnNw
ZWN0b3I7Cit9OworCisvLyBBc3NlcnRzIHRoYXQgdGhlIGxvY2sgaXMgaGVsZC4KKy8vIFRoaXMg
Y2FuIGJlIHVzZWQgaW4gY2FzZXMgd2hlcmUgdGhlIGFubm90YXRpb25zIGNhbm5vdCBiZSBhZGRl
ZCB0byB0aGUgZnVuY3Rpb24KKy8vIGRlY2xhcmF0aW9uLgoraW5saW5lIHZvaWQgYXNzZXJ0SXNI
ZWxkKGNvbnN0IExvY2smIGxvY2spIFdURl9BU1NFUlRTX0FDUVVJUkVEX0xPQ0sobG9jaykgeyBB
U1NFUlRfVU5VU0VEKGxvY2ssIGxvY2suaXNIZWxkKCkpOyB9CisKKy8vIExvY2tlciBzcGVjaWFs
aXphdGlvbiB0byB1c2Ugd2l0aCBMb2NrLgorLy8gTm9uLW1vdmFibGUgc2ltcGxlIHNjb3BlZCBs
b2NrIGhvbGRlci4KKy8vIEV4YW1wbGU6IExvY2tlciBsb2NrZXIgeyBtX2xvY2sgfTsKK3RlbXBs
YXRlIDw+CitjbGFzcyBXVEZfQ0FQQUJJTElUWV9TQ09QRURfTE9DSyBMb2NrZXI8TG9jaz4gewor
cHVibGljOgorICAgIGV4cGxpY2l0IExvY2tlcihMb2NrJiBsb2NrKSBXVEZfQUNRVUlSRVNfTE9D
Syhsb2NrKQorICAgICAgICA6IG1fbG9jayhsb2NrKQorICAgIHsKKyAgICAgICAgbV9sb2NrLmxv
Y2soKTsKKyAgICB9CisgICAgTG9ja2VyKEFkb3B0TG9ja1RhZywgTG9jayYgbG9jaykgV1RGX1JF
UVVJUkVTX0xPQ0sobG9jaykKKyAgICAgICAgOiBtX2xvY2sobG9jaykKKyAgICB7CisgICAgfQor
ICAgIH5Mb2NrZXIoKSBXVEZfUkVMRUFTRVNfTE9DSygpCisgICAgeworICAgICAgICBtX2xvY2su
dW5sb2NrKCk7CisgICAgfQorICAgIExvY2tlcihjb25zdCBMb2NrZXI8TG9jaz4mKSA9IGRlbGV0
ZTsKKyAgICBMb2NrZXImIG9wZXJhdG9yPShjb25zdCBMb2NrZXI8TG9jaz4mKSA9IGRlbGV0ZTsK
K3ByaXZhdGU6CisgICAgTG9jayYgbV9sb2NrOworfTsKKworTG9ja2VyKExvY2smKSAtPiBMb2Nr
ZXI8TG9jaz47CitMb2NrZXIoQWRvcHRMb2NrVGFnLCBMb2NrJikgLT4gTG9ja2VyPExvY2s+Owor
CiB1c2luZyBMb2NrSG9sZGVyID0gTG9ja2VyPExvY2s+OwordXNpbmcgVW5jaGVja2VkTG9ja0hv
bGRlciA9IExvY2tlcjxVbmNoZWNrZWRMb2NrPjsKIAogfSAvLyBuYW1lc3BhY2UgV1RGCiAKK3Vz
aW5nIFdURjo6VW5jaGVja2VkTG9jazsKIHVzaW5nIFdURjo6TG9jazsKIHVzaW5nIFdURjo6TG9j
a0hvbGRlcjsKK3VzaW5nIFdURjo6VW5jaGVja2VkTG9ja0hvbGRlcjsKK3VzaW5nIFdURjo6YXNz
ZXJ0SXNIZWxkOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvTWV0YUFsbG9jYXRvci5jcHAg
Yi9Tb3VyY2UvV1RGL3d0Zi9NZXRhQWxsb2NhdG9yLmNwcAppbmRleCBlZWY4OWI3N2U3YmRkZmNk
Njc2NWQ2NzNhYTU2NWEwNjc3Y2Q3MGE0Li5kOWNkNTk5MmYzYTBkNTFkMDQ2ZTg3MDFhMTNiZDI3
YTc5MDIyYWQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9NZXRhQWxsb2NhdG9yLmNwcAor
KysgYi9Tb3VyY2UvV1RGL3d0Zi9NZXRhQWxsb2NhdG9yLmNwcApAQCAtNjIsNyArNjIsNyBAQCB2
b2lkIE1ldGFBbGxvY2F0b3JUcmFja2VyOjpyZWxlYXNlKE1ldGFBbGxvY2F0b3JIYW5kbGUmIGhh
bmRsZSkKICAgICBtX2FsbG9jYXRpb25zLnJlbW92ZSgmaGFuZGxlKTsKIH0KIAotdm9pZCBNZXRh
QWxsb2NhdG9yOjpyZWxlYXNlKGNvbnN0IExvY2tIb2xkZXImLCBNZXRhQWxsb2NhdG9ySGFuZGxl
JiBoYW5kbGUpCit2b2lkIE1ldGFBbGxvY2F0b3I6OnJlbGVhc2UoY29uc3QgVW5jaGVja2VkTG9j
a0hvbGRlciYsIE1ldGFBbGxvY2F0b3JIYW5kbGUmIGhhbmRsZSkKIHsKICAgICBpZiAoaGFuZGxl
LnNpemVJbkJ5dGVzKCkpIHsKICAgICAgICAgTWVtb3J5UHRyIHN0YXJ0ID0gaGFuZGxlLnN0YXJ0
KCk7CkBAIC0xMjQsNyArMTI0LDcgQEAgdm9pZCBNZXRhQWxsb2NhdG9ySGFuZGxlOjpkdW1wKFBy
aW50U3RyZWFtJiBvdXQpIGNvbnN0CiAgICAgb3V0LnByaW50KFJhd1BvaW50ZXIoc3RhcnQoKS51
bnRhZ2dlZFB0cigpKSwgIi4uLiIsIFJhd1BvaW50ZXIoZW5kKCkudW50YWdnZWRQdHIoKSkpOwog
fQogCi1NZXRhQWxsb2NhdG9yOjpNZXRhQWxsb2NhdG9yKExvY2smIGxvY2ssIHNpemVfdCBhbGxv
Y2F0aW9uR3JhbnVsZSwgc2l6ZV90IHBhZ2VTaXplKQorTWV0YUFsbG9jYXRvcjo6TWV0YUFsbG9j
YXRvcihVbmNoZWNrZWRMb2NrJiBsb2NrLCBzaXplX3QgYWxsb2NhdGlvbkdyYW51bGUsIHNpemVf
dCBwYWdlU2l6ZSkKICAgICA6IG1fYWxsb2NhdGlvbkdyYW51bGUoYWxsb2NhdGlvbkdyYW51bGUp
CiAgICAgLCBtX3BhZ2VTaXplKHBhZ2VTaXplKQogICAgICwgbV9ieXRlc0FsbG9jYXRlZCgwKQpA
QCAtMTU0LDcgKzE1NCw3IEBAIE1ldGFBbGxvY2F0b3I6Ok1ldGFBbGxvY2F0b3IoTG9jayYgbG9j
aywgc2l6ZV90IGFsbG9jYXRpb25HcmFudWxlLCBzaXplX3QgcGFnZVNpCiAgICAgQVNTRVJUKHN0
YXRpY19jYXN0PHNpemVfdD4oMSkgPDwgbV9sb2dBbGxvY2F0aW9uR3JhbnVsZSA9PSBtX2FsbG9j
YXRpb25HcmFudWxlKTsKIH0KIAotUmVmUHRyPE1ldGFBbGxvY2F0b3JIYW5kbGU+IE1ldGFBbGxv
Y2F0b3I6OmFsbG9jYXRlKGNvbnN0IExvY2tIb2xkZXImLCBzaXplX3Qgc2l6ZUluQnl0ZXMpCitS
ZWZQdHI8TWV0YUFsbG9jYXRvckhhbmRsZT4gTWV0YUFsbG9jYXRvcjo6YWxsb2NhdGUoY29uc3Qg
VW5jaGVja2VkTG9ja0hvbGRlciYsIHNpemVfdCBzaXplSW5CeXRlcykKIHsKICAgICBpZiAoIXNp
emVJbkJ5dGVzKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKQEAgLTE5OCw3ICsxOTgsNyBAQCBS
ZWZQdHI8TWV0YUFsbG9jYXRvckhhbmRsZT4gTWV0YUFsbG9jYXRvcjo6YWxsb2NhdGUoY29uc3Qg
TG9ja0hvbGRlciYsIHNpemVfdCBzaQogICAgIHJldHVybiBoYW5kbGU7CiB9CiAKLU1ldGFBbGxv
Y2F0b3I6OlN0YXRpc3RpY3MgTWV0YUFsbG9jYXRvcjo6Y3VycmVudFN0YXRpc3RpY3MoY29uc3Qg
TG9ja0hvbGRlciYpCitNZXRhQWxsb2NhdG9yOjpTdGF0aXN0aWNzIE1ldGFBbGxvY2F0b3I6OmN1
cnJlbnRTdGF0aXN0aWNzKGNvbnN0IFVuY2hlY2tlZExvY2tIb2xkZXImKQogewogICAgIFN0YXRp
c3RpY3MgcmVzdWx0OwogICAgIHJlc3VsdC5ieXRlc0FsbG9jYXRlZCA9IG1fYnl0ZXNBbGxvY2F0
ZWQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9NZXRhQWxsb2NhdG9yLmggYi9Tb3VyY2Uv
V1RGL3d0Zi9NZXRhQWxsb2NhdG9yLmgKaW5kZXggNWZiNzJjMjgwZWRjMDZkZWE4OTMxYjZhM2Mw
OWUxZmY3YmY1YzhkMS4uZWRmZWM3YzNiODk5NjI5ZjA3ZGU3YWEwOGQwYzYzMjI3NmY4YzQwZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvTWV0YUFsbG9jYXRvci5oCisrKyBiL1NvdXJjZS9X
VEYvd3RmL01ldGFBbGxvY2F0b3IuaApAQCAtNjUsNyArNjUsNyBAQCBwdWJsaWM6CiAgICAgdXNp
bmcgRnJlZVNwYWNlUHRyID0gTWV0YUFsbG9jYXRvclB0cjxGcmVlU3BhY2VQdHJUYWc+OwogICAg
IHVzaW5nIE1lbW9yeVB0ciA9IE1ldGFBbGxvY2F0b3JIYW5kbGU6Ok1lbW9yeVB0cjsKIAotICAg
IFdURl9FWFBPUlRfUFJJVkFURSBNZXRhQWxsb2NhdG9yKExvY2smLCBzaXplX3QgYWxsb2NhdGlv
bkdyYW51bGUsIHNpemVfdCBwYWdlU2l6ZSA9IFdURjo6cGFnZVNpemUoKSk7CisgICAgV1RGX0VY
UE9SVF9QUklWQVRFIE1ldGFBbGxvY2F0b3IoVW5jaGVja2VkTG9jayYsIHNpemVfdCBhbGxvY2F0
aW9uR3JhbnVsZSwgc2l6ZV90IHBhZ2VTaXplID0gV1RGOjpwYWdlU2l6ZSgpKTsKICAgICAKICAg
ICBXVEZfRVhQT1JUX1BSSVZBVEUgdmlydHVhbCB+TWV0YUFsbG9jYXRvcigpOwogICAgIApAQCAt
NzQsNyArNzQsNyBAQCBwdWJsaWM6CiAgICAgICAgIExvY2tlciBsb2NrZXIgeyBtX2xvY2sgfTsK
ICAgICAgICAgcmV0dXJuIGFsbG9jYXRlKGxvY2tlciwgc2l6ZUluQnl0ZXMpOwogICAgIH0KLSAg
ICBXVEZfRVhQT1JUX1BSSVZBVEUgUmVmUHRyPE1ldGFBbGxvY2F0b3JIYW5kbGU+IGFsbG9jYXRl
KGNvbnN0IExvY2tIb2xkZXImLCBzaXplX3Qgc2l6ZUluQnl0ZXMpOworICAgIFdURl9FWFBPUlRf
UFJJVkFURSBSZWZQdHI8TWV0YUFsbG9jYXRvckhhbmRsZT4gYWxsb2NhdGUoY29uc3QgVW5jaGVj
a2VkTG9ja0hvbGRlciYsIHNpemVfdCBzaXplSW5CeXRlcyk7CiAKICAgICB2b2lkIHRyYWNrQWxs
b2NhdGlvbnMoTWV0YUFsbG9jYXRvclRyYWNrZXIqIHRyYWNrZXIpCiAgICAgewpAQCAtOTgsNyAr
OTgsNyBAQCBwdWJsaWM6CiAgICAgICAgIExvY2tlciBsb2NrZXIgeyBtX2xvY2sgfTsKICAgICAg
ICAgcmV0dXJuIGN1cnJlbnRTdGF0aXN0aWNzKGxvY2tlcik7CiAgICAgfQotICAgIFdURl9FWFBP
UlRfUFJJVkFURSBTdGF0aXN0aWNzIGN1cnJlbnRTdGF0aXN0aWNzKGNvbnN0IExvY2tIb2xkZXIm
KTsKKyAgICBXVEZfRVhQT1JUX1BSSVZBVEUgU3RhdGlzdGljcyBjdXJyZW50U3RhdGlzdGljcyhj
b25zdCBVbmNoZWNrZWRMb2NrSG9sZGVyJik7CiAKICAgICAvLyBBZGQgbW9yZSBmcmVlIHNwYWNl
IHRvIHRoZSBhbGxvY2F0b3IuIENhbGwgdGhpcyBkaXJlY3RseSBmcm9tCiAgICAgLy8gdGhlIGNv
bnN0cnVjdG9yIGlmIHlvdSB3aXNoIHRvIG9wZXJhdGUgdGhlIGFsbG9jYXRvciB3aXRoaW4gYQpA
QCAtMTM0LDcgKzEzNCw3IEBAIHByb3RlY3RlZDoKICAgICAvLyBhcyB0aGVyZSBhcmUgSGFuZGxl
cyB0aGF0IHJlZmVyIHRvIGl0LgogCiAgICAgLy8gUmVsZWFzZSBhIE1ldGFBbGxvY2F0b3JIYW5k
bGUuCi0gICAgV1RGX0VYUE9SVF9QUklWQVRFIHZpcnR1YWwgdm9pZCByZWxlYXNlKGNvbnN0IExv
Y2tIb2xkZXImLCBNZXRhQWxsb2NhdG9ySGFuZGxlJik7CisgICAgV1RGX0VYUE9SVF9QUklWQVRF
IHZpcnR1YWwgdm9pZCByZWxlYXNlKGNvbnN0IFVuY2hlY2tlZExvY2tIb2xkZXImLCBNZXRhQWxs
b2NhdG9ySGFuZGxlJik7CiBwcml2YXRlOgogICAgIAogICAgIGZyaWVuZCBjbGFzcyBNZXRhQWxs
b2NhdG9ySGFuZGxlOwpAQCAtMTk3LDcgKzE5Nyw3IEBAIHByaXZhdGU6CiAgICAgc2l6ZV90IG1f
Ynl0ZXNSZXNlcnZlZDsKICAgICBzaXplX3QgbV9ieXRlc0NvbW1pdHRlZDsKICAgICAKLSAgICBM
b2NrJiBtX2xvY2s7CisgICAgVW5jaGVja2VkTG9jayYgbV9sb2NrOwogCiAgICAgTWV0YUFsbG9j
YXRvclRyYWNrZXIqIG1fdHJhY2tlciB7IG51bGxwdHIgfTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dURi93dGYvUGFyYWxsZWxIZWxwZXJQb29sLmNwcCBiL1NvdXJjZS9XVEYvd3RmL1BhcmFsbGVs
SGVscGVyUG9vbC5jcHAKaW5kZXggNDQzZDczMTNlNmJhZDAyODQzNDllNjEwN2YyMDM5N2Y5M2Y0
M2E4ZC4uYzczNDY4NTU5MzE0ZDA5NzAwYmRkOGE1ZDBhNTUyMDFlMGQ1MGM5YyAxMDA2NDQKLS0t
IGEvU291cmNlL1dURi93dGYvUGFyYWxsZWxIZWxwZXJQb29sLmNwcAorKysgYi9Tb3VyY2UvV1RG
L3d0Zi9QYXJhbGxlbEhlbHBlclBvb2wuY3BwCkBAIC0xMjIsNyArMTIyLDcgQEAgdm9pZCBQYXJh
bGxlbEhlbHBlckNsaWVudDo6cnVuVGFzayhjb25zdCBSZWZQdHI8U2hhcmVkVGFzazx2b2lkICgp
Pj4mIHRhc2spCiB9CiAKIFBhcmFsbGVsSGVscGVyUG9vbDo6UGFyYWxsZWxIZWxwZXJQb29sKENT
dHJpbmcmJiB0aHJlYWROYW1lKQotICAgIDogbV9sb2NrKEJveDxMb2NrPjo6Y3JlYXRlKCkpCisg
ICAgOiBtX2xvY2soQm94PFVuY2hlY2tlZExvY2s+OjpjcmVhdGUoKSkKICAgICAsIG1fd29ya0F2
YWlsYWJsZUNvbmRpdGlvbihBdXRvbWF0aWNUaHJlYWRDb25kaXRpb246OmNyZWF0ZSgpKQogICAg
ICwgbV90aHJlYWROYW1lKFdURk1vdmUodGhyZWFkTmFtZSkpCiB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV1RGL3d0Zi9QYXJhbGxlbEhlbHBlclBvb2wuaCBiL1NvdXJjZS9XVEYvd3RmL1BhcmFsbGVs
SGVscGVyUG9vbC5oCmluZGV4IDFlNzU5OWM4M2Q2NzEyMWM3ZTZiZmU4N2NjYTkxZWY2Y2U4NmU0
MDcuLjY2NGZhZGU4NTM5OTNhYjRiMDU5NTQ4NzIyMTRmMzg3YzlhNmQwNTMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XVEYvd3RmL1BhcmFsbGVsSGVscGVyUG9vbC5oCisrKyBiL1NvdXJjZS9XVEYvd3Rm
L1BhcmFsbGVsSGVscGVyUG9vbC5oCkBAIC0xOTksOSArMTk5LDkgQEAgcHJpdmF0ZToKICAgICBQ
YXJhbGxlbEhlbHBlckNsaWVudCogZ2V0Q2xpZW50V2l0aFRhc2soY29uc3QgQWJzdHJhY3RMb2Nr
ZXImKTsKICAgICBQYXJhbGxlbEhlbHBlckNsaWVudCogd2FpdEZvckNsaWVudFdpdGhUYXNrKGNv
bnN0IEFic3RyYWN0TG9ja2VyJik7CiAgICAgCi0gICAgQm94PExvY2s+IG1fbG9jazsgLy8gQXV0
b21hdGljVGhyZWFkIHdhbnRzIHRoaXMgaW4gYSBib3ggZm9yIHNhZmV0eS4KKyAgICBCb3g8VW5j
aGVja2VkTG9jaz4gbV9sb2NrOyAvLyBBdXRvbWF0aWNUaHJlYWQgd2FudHMgdGhpcyBpbiBhIGJv
eCBmb3Igc2FmZXR5LgogICAgIFJlZjxBdXRvbWF0aWNUaHJlYWRDb25kaXRpb24+IG1fd29ya0F2
YWlsYWJsZUNvbmRpdGlvbjsKLSAgICBDb25kaXRpb24gbV93b3JrQ29tcGxldGVDb25kaXRpb247
CisgICAgVW5jaGVja2VkQ29uZGl0aW9uIG1fd29ya0NvbXBsZXRlQ29uZGl0aW9uOwogCiAgICAg
V2Vha1JhbmRvbSBtX3JhbmRvbTsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1Jl
Y3Vyc2l2ZUxvY2tBZGFwdGVyLmggYi9Tb3VyY2UvV1RGL3d0Zi9SZWN1cnNpdmVMb2NrQWRhcHRl
ci5oCmluZGV4IDFlZTEyZDQxOTQ3MjZkMjMyNDkyZDY1NDQ0MTZlZjY2MTQ4YmQ2NmEuLmNhN2Jj
NDU1NDQ3YjE1MjIwN2NlMWFiN2YwY2I0NGQ0ZWQxOGU4ZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
VEYvd3RmL1JlY3Vyc2l2ZUxvY2tBZGFwdGVyLmgKKysrIGIvU291cmNlL1dURi93dGYvUmVjdXJz
aXZlTG9ja0FkYXB0ZXIuaApAQCAtODksNyArODksNyBAQCBwcml2YXRlOgogICAgIExvY2tUeXBl
IG1fbG9jazsKIH07CiAKLXVzaW5nIFJlY3Vyc2l2ZUxvY2sgPSBSZWN1cnNpdmVMb2NrQWRhcHRl
cjxMb2NrPjsKK3VzaW5nIFJlY3Vyc2l2ZUxvY2sgPSBSZWN1cnNpdmVMb2NrQWRhcHRlcjxVbmNo
ZWNrZWRMb2NrPjsKIAogfSAvLyBuYW1lc3BhY2UgV1RGCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
VEYvd3RmL1dvcmtlclBvb2wuY3BwIGIvU291cmNlL1dURi93dGYvV29ya2VyUG9vbC5jcHAKaW5k
ZXggOGE5YzFmZGE3NGE3M2IyYzVhYjVjZGEyZDhlNDYwOWFiZTgwYTMwYi4uMjE5ZGJmMTUxZDY2
MzdjNjdhM2U0NzZmZDEzZTNkMWI4OGI0MzU3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYv
V29ya2VyUG9vbC5jcHAKKysrIGIvU291cmNlL1dURi93dGYvV29ya2VyUG9vbC5jcHAKQEAgLTMy
LDcgKzMyLDcgQEAgY2xhc3MgV29ya2VyUG9vbDo6V29ya2VyIGZpbmFsIDogcHVibGljIEF1dG9t
YXRpY1RocmVhZCB7CiBwdWJsaWM6CiAgICAgZnJpZW5kIGNsYXNzIFdvcmtlclBvb2w7CiAKLSAg
ICBXb3JrZXIoY29uc3QgQWJzdHJhY3RMb2NrZXImIGxvY2tlciwgV29ya2VyUG9vbCYgcG9vbCwg
Qm94PExvY2s+IGxvY2ssIFJlZjxBdXRvbWF0aWNUaHJlYWRDb25kaXRpb24+JiYgY29uZGl0aW9u
LCBTZWNvbmRzIHRpbWVvdXQpCisgICAgV29ya2VyKGNvbnN0IEFic3RyYWN0TG9ja2VyJiBsb2Nr
ZXIsIFdvcmtlclBvb2wmIHBvb2wsIEJveDxVbmNoZWNrZWRMb2NrPiBsb2NrLCBSZWY8QXV0b21h
dGljVGhyZWFkQ29uZGl0aW9uPiYmIGNvbmRpdGlvbiwgU2Vjb25kcyB0aW1lb3V0KQogICAgICAg
ICA6IEF1dG9tYXRpY1RocmVhZChsb2NrZXIsIGxvY2ssIFdURk1vdmUoY29uZGl0aW9uKSwgdGlt
ZW91dCkKICAgICAgICAgLCBtX3Bvb2wocG9vbCkKICAgICB7CkBAIC04Miw3ICs4Miw3IEBAIHBy
aXZhdGU6CiB9OwogCiBXb3JrZXJQb29sOjpXb3JrZXJQb29sKEFTQ0lJTGl0ZXJhbCBuYW1lLCB1
bnNpZ25lZCBudW1iZXJPZldvcmtlcnMsIFNlY29uZHMgdGltZW91dCkKLSAgICA6IG1fbG9jayhC
b3g8TG9jaz46OmNyZWF0ZSgpKQorICAgIDogbV9sb2NrKEJveDxVbmNoZWNrZWRMb2NrPjo6Y3Jl
YXRlKCkpCiAgICAgLCBtX2NvbmRpdGlvbihBdXRvbWF0aWNUaHJlYWRDb25kaXRpb246OmNyZWF0
ZSgpKQogICAgICwgbV90aW1lb3V0KHRpbWVvdXQpCiAgICAgLCBtX25hbWUobmFtZSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XVEYvd3RmL1dvcmtlclBvb2wuaCBiL1NvdXJjZS9XVEYvd3RmL1dvcmtl
clBvb2wuaAppbmRleCA2MjM1ZTczMWVkNzViODAxMjUwOTUzNTkwNjhiMDhkNGMxZGNmZWMyLi43
YTQwNDJiNDZiMTY4ODAyM2YxY2VmOWU2NDJhYjJjNDhjODg5M2Q5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV1RGL3d0Zi9Xb3JrZXJQb29sLmgKKysrIGIvU291cmNlL1dURi93dGYvV29ya2VyUG9vbC5o
CkBAIC01Nyw3ICs1Nyw3IEBAIHByaXZhdGU6CiAKICAgICBib29sIHNob3VsZFNsZWVwKGNvbnN0
IEFic3RyYWN0TG9ja2VyJik7CiAKLSAgICBCb3g8TG9jaz4gbV9sb2NrOworICAgIEJveDxVbmNo
ZWNrZWRMb2NrPiBtX2xvY2s7CiAgICAgUmVmPEF1dG9tYXRpY1RocmVhZENvbmRpdGlvbj4gbV9j
b25kaXRpb247CiAgICAgU2Vjb25kcyBtX3RpbWVvdXQ7CiAgICAgTW9ub3RvbmljVGltZSBtX2xh
c3RUaW1lb3V0VGltZSB7IE1vbm90b25pY1RpbWU6Om5hbigpIH07CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV1RGL3d0Zi90ZXh0L0F0b21TdHJpbmdJbXBsLmNwcCBiL1NvdXJjZS9XVEYvd3RmL3RleHQv
QXRvbVN0cmluZ0ltcGwuY3BwCmluZGV4IGEwMjhlNDJhMzQ2NDE5NmZkYTg3NDNmNzEyN2Q4Yjcz
YjNkMWMyOGMuLjAwOWUyYTE4ZmZkMmE0YTQ3NGExZWRkZjU1OGY2ZWNhYjgyNzkzNGUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3RleHQvQXRvbVN0cmluZ0ltcGwuY3BwCisrKyBiL1NvdXJj
ZS9XVEYvd3RmL3RleHQvQXRvbVN0cmluZ0ltcGwuY3BwCkBAIC00NSw3ICs0NSw3IEBAIGNsYXNz
IEF0b21TdHJpbmdUYWJsZUxvY2tlciA6IHB1YmxpYyBMb2NrSG9sZGVyIHsKICAgICBzdGF0aWMg
TG9jayBzX3N0cmluZ1RhYmxlTG9jazsKIHB1YmxpYzoKICAgICBBdG9tU3RyaW5nVGFibGVMb2Nr
ZXIoKQotICAgICAgICA6IExvY2tIb2xkZXIoJnNfc3RyaW5nVGFibGVMb2NrKQorICAgICAgICA6
IExvY2tIb2xkZXIoc19zdHJpbmdUYWJsZUxvY2spCiAgICAgewogICAgIH0KIH07CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCU2VydmVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJTZXJ2ZXIuY3Bw
CmluZGV4IDFlZGVlZDJhM2ZhNjIyYzU4MjI0YjA2ODMwYTNhYjQzNDRjMDQ2Y2EuLjQ5ZDg3NjYy
ZmNiM2E1YWUyM2YyYTdhYjUyN2U2NTU3YzMyNmVhM2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJTZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJTZXJ2ZXIuY3BwCkBAIC03MzMsNyAr
NzMzLDcgQEAgdm9pZCBJREJTZXJ2ZXI6OnJlbmFtZU9yaWdpbihjb25zdCBXZWJDb3JlOjpTZWN1
cml0eU9yaWdpbkRhdGEmIG9sZE9yaWdpbiwgY29uc3QKICAgICAgICAgRmlsZVN5c3RlbTo6bW92
ZUZpbGUob2xkT3JpZ2luUGF0aCwgbmV3T3JpZ2luUGF0aCk7CiB9CiAKLVN0b3JhZ2VRdW90YU1h
bmFnZXI6OkRlY2lzaW9uIElEQlNlcnZlcjo6cmVxdWVzdFNwYWNlKGNvbnN0IENsaWVudE9yaWdp
biYgb3JpZ2luLCB1aW50NjRfdCB0YXNrU2l6ZSkKK1N0b3JhZ2VRdW90YU1hbmFnZXI6OkRlY2lz
aW9uIElEQlNlcnZlcjo6cmVxdWVzdFNwYWNlKGNvbnN0IENsaWVudE9yaWdpbiYgb3JpZ2luLCB1
aW50NjRfdCB0YXNrU2l6ZSkgV1RGX0lHTk9SRVNfVEhSRUFEX1NBRkVUWV9BTkFMWVNJUwogewog
ICAgIEFTU0VSVCghaXNNYWluVGhyZWFkKCkpOwogICAgIEFTU0VSVChtX2xvY2suaXNIZWxkKCkp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9NZWRpYUVsZW1l
bnRBdWRpb1NvdXJjZU5vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vTWVk
aWFFbGVtZW50QXVkaW9Tb3VyY2VOb2RlLmgKaW5kZXggNzQzOWE2ZGIyODJmYmI5NGY0MTFlNDcx
NWFkYTE1OThjYjA0YmMzNC4uMDZmZTUxZDk0NGQwYjhlOWM4ZGI2MTQ2N2QxYTE4NmM1ZGRmNDE0
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9NZWRpYUVsZW1l
bnRBdWRpb1NvdXJjZU5vZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlv
L01lZGlhRWxlbWVudEF1ZGlvU291cmNlTm9kZS5oCkBAIC01NCw3ICs1NCw3IEBAIHB1YmxpYzoK
ICAgICAvLyBBdWRpb1NvdXJjZVByb3ZpZGVyQ2xpZW50CiAgICAgdm9pZCBzZXRGb3JtYXQoc2l6
ZV90IG51bWJlck9mQ2hhbm5lbHMsIGZsb2F0IHNhbXBsZVJhdGUpIG92ZXJyaWRlOwogCi0gICAg
TG9jayYgcHJvY2Vzc0xvY2soKSB7IHJldHVybiBtX3Byb2Nlc3NMb2NrOyB9CisgICAgVW5jaGVj
a2VkTG9jayYgcHJvY2Vzc0xvY2soKSB7IHJldHVybiBtX3Byb2Nlc3NMb2NrOyB9CiAKIHByaXZh
dGU6CiAgICAgTWVkaWFFbGVtZW50QXVkaW9Tb3VyY2VOb2RlKEJhc2VBdWRpb0NvbnRleHQmLCBS
ZWY8SFRNTE1lZGlhRWxlbWVudD4mJik7CkBAIC03MCw3ICs3MCw3IEBAIHByaXZhdGU6CiAgICAg
Ym9vbCB3b3VsZFRhaW50T3JpZ2luKCk7CiAKICAgICBSZWY8SFRNTE1lZGlhRWxlbWVudD4gbV9t
ZWRpYUVsZW1lbnQ7Ci0gICAgTG9jayBtX3Byb2Nlc3NMb2NrOworICAgIFVuY2hlY2tlZExvY2sg
bV9wcm9jZXNzTG9jazsKIAogICAgIHVuc2lnbmVkIG1fc291cmNlTnVtYmVyT2ZDaGFubmVscyB7
IDAgfTsKICAgICBkb3VibGUgbV9zb3VyY2VTYW1wbGVSYXRlIHsgMCB9OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRyYWNrZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRyYWNrZXIuY3BwCmlu
ZGV4IDQ1YjI3ZjlkMzUxOWMxMTk5MjQ3NjZlYzRjMjdlNDAxMzQyOTIwNDkuLmE5ZjI4MGI5YzU5
ZjQ4YmRiMjhkYTczMDE1Mzc2NDNlOTRkZDY1NjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VUcmFja2VyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlVHJhY2tlci5jcHAKQEAgLTEyODUsOCAr
MTI4NSw4IEBAIGJvb2wgRGF0YWJhc2VUcmFja2VyOjpkZWxldGVEYXRhYmFzZUZpbGVJZkVtcHR5
KGNvbnN0IFN0cmluZyYgcGF0aCkKICAgICByZXR1cm4gU1FMaXRlRmlsZVN5c3RlbTo6ZGVsZXRl
RGF0YWJhc2VGaWxlKHBhdGgpOwogfQogCi1zdGF0aWMgTG9jayBvcGVuRGF0YWJhc2VMb2NrOwot
TG9jayYgRGF0YWJhc2VUcmFja2VyOjpvcGVuRGF0YWJhc2VNdXRleCgpCitzdGF0aWMgVW5jaGVj
a2VkTG9jayBvcGVuRGF0YWJhc2VMb2NrOworVW5jaGVja2VkTG9jayYgRGF0YWJhc2VUcmFja2Vy
OjpvcGVuRGF0YWJhc2VNdXRleCgpCiB7CiAgICAgcmV0dXJuIG9wZW5EYXRhYmFzZUxvY2s7CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNl
VHJhY2tlci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRy
YWNrZXIuaAppbmRleCBkZDljNWQ4Nzc2YmQxZGMzODk2NmU3NWY1NGYxMzFhZGQ3NjY4YjM0Li5i
ZGNmNmQwN2RkOGEzMzY1ZGM0YWZlYjk0M2ZjYjhiNWFjZTk0ZjZlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlVHJhY2tlci5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VUcmFja2VyLmgKQEAgLTEw
NCw3ICsxMDQsNyBAQCBwdWJsaWM6CiAgICAgLy8gTW9iaWxlU2FmYXJpIHdpbGwgZ3JhYiB0aGlz
IG11dGV4IG9uIHRoZSBtYWluIHRocmVhZCBiZWZvcmUgZGlzcGF0Y2hpbmcgdGhlIHRhc2sgdG8g
CiAgICAgLy8gY2xlYW4gdXAgemVybyBieXRlIGRhdGFiYXNlIGZpbGVzLiAgQW55IG9wZXJhdGlv
bnMgdG8gb3BlbiBuZXcgZGF0YWJhc2Ugd2lsbCBoYXZlIHRvCiAgICAgLy8gd2FpdCBmb3IgdGhh
dCB0YXNrIHRvIGZpbmlzaCBieSB3YWl0aW5nIG9uIHRoaXMgbXV0ZXguCi0gICAgc3RhdGljIExv
Y2smIG9wZW5EYXRhYmFzZU11dGV4KCk7CisgICAgc3RhdGljIFVuY2hlY2tlZExvY2smIG9wZW5E
YXRhYmFzZU11dGV4KCk7CiAgICAgCiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHZvaWQgZW1w
dHlEYXRhYmFzZUZpbGVzUmVtb3ZhbFRhc2tXaWxsQmVTY2hlZHVsZWQoKTsKICAgICBXRUJDT1JF
X0VYUE9SVCBzdGF0aWMgdm9pZCBlbXB0eURhdGFiYXNlRmlsZXNSZW1vdmFsVGFza0RpZEZpbmlz
aCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9Pcmln
aW5Mb2NrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvT3JpZ2luTG9j
ay5jcHAKaW5kZXggYTIxYmNkYjc4Mzg2YzgxMGVjNTk5NDFjMjc1ZjRlZmJhZmYyM2ZiMy4uNzUz
ZTRlNWFjODY2MjgzYTRjNzNmNDRhZjlhYTRlY2RmNWQxNWFlYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9PcmlnaW5Mb2NrLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL09yaWdpbkxvY2suY3BwCkBAIC00Myw3ICs0Myw3
IEBAIE9yaWdpbkxvY2s6Ok9yaWdpbkxvY2soU3RyaW5nIG9yaWdpblBhdGgpCiAKIE9yaWdpbkxv
Y2s6On5PcmlnaW5Mb2NrKCkgPSBkZWZhdWx0OwogCi12b2lkIE9yaWdpbkxvY2s6OmxvY2soKQor
dm9pZCBPcmlnaW5Mb2NrOjpsb2NrKCkgV1RGX0lHTk9SRVNfVEhSRUFEX1NBRkVUWV9BTkFMWVNJ
UwogewogICAgIG1fbXV0ZXgubG9jaygpOwogCkBAIC01OSw3ICs1OSw3IEBAIHZvaWQgT3JpZ2lu
TG9jazo6bG9jaygpCiAjZW5kaWYKIH0KIAotdm9pZCBPcmlnaW5Mb2NrOjp1bmxvY2soKQordm9p
ZCBPcmlnaW5Mb2NrOjp1bmxvY2soKSBXVEZfSUdOT1JFU19USFJFQURfU0FGRVRZX0FOQUxZU0lT
CiB7CiAjaWYgVVNFKEZJTEVfTE9DSykKICAgICAvLyBJZiB0aGUgZmlsZSBkZXNjcmlwdG9yIHdh
cyB1bmluaXRpYWxpemVkLCB0aGVuIHRoYXQgbWVhbnMgdGhlIGRpcmVjdG9yeQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3QuaCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0LmgKaW5kZXggMTY0YzcyMzg2
NDZhMDBhM2QwNWVhMWJhNDFjOTcwNjA1NWQ0MTRlNC4uOTU2ZDUxYWQ0ODBkNGRkMmMwYTg5Mzhk
ZWFmNDRkYWFiYWE3NTZkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNET01HbG9iYWxPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RP
TUdsb2JhbE9iamVjdC5oCkBAIC01OCw3ICs1OCw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgdm9p
ZCBkZXN0cm95KEpTQzo6SlNDZWxsKik7CiAKIHB1YmxpYzoKLSAgICBMb2NrJiBnY0xvY2soKSB7
IHJldHVybiBtX2djTG9jazsgfQorICAgIFVuY2hlY2tlZExvY2smIGdjTG9jaygpIHsgcmV0dXJu
IG1fZ2NMb2NrOyB9CiAKICAgICBKU0RPTVN0cnVjdHVyZU1hcCYgc3RydWN0dXJlcyhjb25zdCBB
YnN0cmFjdExvY2tlciYpIHsgcmV0dXJuIG1fc3RydWN0dXJlczsgfQogICAgIEpTRE9NQ29uc3Ry
dWN0b3JNYXAmIGNvbnN0cnVjdG9ycyhjb25zdCBBYnN0cmFjdExvY2tlciYpIHsgcmV0dXJuIG1f
Y29uc3RydWN0b3JzOyB9CkBAIC0xMjEsNyArMTIxLDcgQEAgcHJvdGVjdGVkOgogCiAgICAgUmVm
PERPTVdyYXBwZXJXb3JsZD4gbV93b3JsZDsKICAgICB1aW50OF90IG1fd29ybGRJc05vcm1hbDsK
LSAgICBMb2NrIG1fZ2NMb2NrOworICAgIFVuY2hlY2tlZExvY2sgbV9nY0xvY2s7CiAgICAgSlND
OjpXcml0ZUJhcnJpZXI8SlNDOjpKU1Byb3h5PiBtX3Byb3h5OwogCiBwcml2YXRlOgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL05v
ZGUuY3BwCmluZGV4IDdlYWUzYTExYWVjZmIyYWFkOTlmZjE5MmI0NTg3ZDk2NzVjZmRmYjcuLmEy
ZTVjYTNmMTIxNjgzODA5ODMyNDBmZmJhMWU0ZmRhNzAzMjVmNGUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAK
QEAgLTIyMTEsNyArMjIxMSw3IEBAIHN0YXRpYyBFdmVudFRhcmdldERhdGFNYXAmIGV2ZW50VGFy
Z2V0RGF0YU1hcCgpCiAgICAgcmV0dXJuIG1hcDsKIH0KIAotc3RhdGljIExvY2sgc19ldmVudFRh
cmdldERhdGFNYXBMb2NrOworc3RhdGljIFVuY2hlY2tlZExvY2sgc19ldmVudFRhcmdldERhdGFN
YXBMb2NrOwogCiBFdmVudFRhcmdldERhdGEqIE5vZGU6OmV2ZW50VGFyZ2V0RGF0YSgpCiB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAppbmRleCA5YmQ0MDAxMGMzNWFh
MGU5N2I2ZTFkYWU0OGIzZTEwZDRkOTVkNjdmLi4xYmNkY2ExYTcyYzgwMDE1YzQ0ODAyZmFhZjQ1
NmE0NmQ4NGUzYzVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVs
ZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAK
QEAgLTY2MjYsNyArNjYyNiw3IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6Y3JlYXRlTWVkaWFQ
bGF5ZXIoKQogCiAjaWYgRU5BQkxFKFdFQl9BVURJTykKICAgICBhdXRvIHByb3RlY3RlZEF1ZGlv
U291cmNlTm9kZSA9IG1ha2VSZWZQdHIobV9hdWRpb1NvdXJjZU5vZGUpOwotICAgIExvY2tlcjxM
b2NrPiBhdWRpb1NvdXJjZU5vZGVMb2NrZXIobV9hdWRpb1NvdXJjZU5vZGUgPyAmbV9hdWRpb1Nv
dXJjZU5vZGUtPnByb2Nlc3NMb2NrKCkgOiBudWxscHRyKTsKKyAgICBMb2NrZXIgYXVkaW9Tb3Vy
Y2VOb2RlTG9ja2VyKG1fYXVkaW9Tb3VyY2VOb2RlID8gJm1fYXVkaW9Tb3VyY2VOb2RlLT5wcm9j
ZXNzTG9jaygpIDogbnVsbHB0cik7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShNRURJQV9TT1VSQ0Up
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTENvbnRleHRHcm91
cC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTENvbnRleHRHcm91cC5jcHAK
aW5kZXggYWJkOGYyNzM2ODM5MWUzZTFkN2ZjZjlkMzdiOWQ3Nzk2YWYzMzYxYi4uMTRjMmEwODk5
N2Q5MDFkYTE0MGE0YjAzNzg0OGU3NDE0NDNmNjUyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9jYW52YXMvV2ViR0xDb250ZXh0R3JvdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL1dlYkdMQ29udGV4dEdyb3VwLmNwcApAQCAtNTUsNyArNTUsNyBAQCBHcmFw
aGljc0NvbnRleHRHTCYgV2ViR0xDb250ZXh0R3JvdXA6OmdldEFHcmFwaGljc0NvbnRleHRHTCgp
CiAgICAgcmV0dXJuICooKm1fY29udGV4dHMuYmVnaW4oKSktPmdyYXBoaWNzQ29udGV4dEdMKCk7
CiB9CiAKLVdURjo6TG9jayYgV2ViR0xDb250ZXh0R3JvdXA6Om9iamVjdEdyYXBoTG9ja0ZvckFD
b250ZXh0KCkKK1VuY2hlY2tlZExvY2smIFdlYkdMQ29udGV4dEdyb3VwOjpvYmplY3RHcmFwaExv
Y2tGb3JBQ29udGV4dCgpCiB7CiAgICAgQVNTRVJUKCFtX2NvbnRleHRzLmlzRW1wdHkoKSk7CiAg
ICAgLy8gU2luY2UgdGhlIFdFQkdMX3NoYXJlZF9vYmplY3RzIGV4dGVuc2lvbiBuZXZlciBzaGlw
cGVkLCBhbmQgaXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdM
Q29udGV4dEdyb3VwLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTENvbnRleHRH
cm91cC5oCmluZGV4IDg1NWNlNzIzOTg2ZmUwNzc1OThmMjQ2ODFhZTgwODZjODFlZGZhMDMuLmI2
YWZlMGFmOTdlYmRmZmFjMWExY2QwMDQzZmZiZjc5Y2NkMTc3OGQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMQ29udGV4dEdyb3VwLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvV2ViR0xDb250ZXh0R3JvdXAuaApAQCAtNDUsNyArNDUsNyBAQCBw
dWJsaWM6CiAKICAgICBib29sIGhhc0FDb250ZXh0KCkgY29uc3Q7CiAgICAgR3JhcGhpY3NDb250
ZXh0R0wmIGdldEFHcmFwaGljc0NvbnRleHRHTCgpOwotICAgIExvY2smIG9iamVjdEdyYXBoTG9j
a0ZvckFDb250ZXh0KCk7CisgICAgVW5jaGVja2VkTG9jayYgb2JqZWN0R3JhcGhMb2NrRm9yQUNv
bnRleHQoKTsKIAogICAgIHZvaWQgbG9zZUNvbnRleHRHcm91cChXZWJHTFJlbmRlcmluZ0NvbnRl
eHRCYXNlOjpMb3N0Q29udGV4dE1vZGUpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL2NhbnZhcy9XZWJHTENvbnRleHRPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9j
YW52YXMvV2ViR0xDb250ZXh0T2JqZWN0LmNwcAppbmRleCA3YzkxOWYyYjY2NTZiNjdiMTZjYTYz
NDBiMGIyYTRiNjQ1ZDA0NjNiLi4yNDM1NGQwNWI4MWJjODUyMmJlNzdkM2JiOGY0Y2NlNDdlYjM2
M2Y1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTENvbnRleHRP
YmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMQ29udGV4dE9i
amVjdC5jcHAKQEAgLTU0LDcgKzU0LDcgQEAgdm9pZCBXZWJHTENvbnRleHRPYmplY3Q6OmRldGFj
aENvbnRleHQoY29uc3QgQWJzdHJhY3RMb2NrZXImIGxvY2tlcikKICAgICB9CiB9CiAKLVdURjo6
TG9jayYgV2ViR0xDb250ZXh0T2JqZWN0OjpvYmplY3RHcmFwaExvY2tGb3JDb250ZXh0KCkKK1Vu
Y2hlY2tlZExvY2smIFdlYkdMQ29udGV4dE9iamVjdDo6b2JqZWN0R3JhcGhMb2NrRm9yQ29udGV4
dCgpCiB7CiAgICAgLy8gU2hvdWxkIG5vdCBjYWxsIHRoaXMgaWYgdGhlIG9iamVjdCBvciBjb250
ZXh0IGhhcyBiZWVuIGRlbGV0ZWQuCiAgICAgQVNTRVJUKG1fY29udGV4dCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTENvbnRleHRPYmplY3QuaCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMQ29udGV4dE9iamVjdC5oCmluZGV4IGRiZmRkNmJm
YzBlZjQ0ZWI4ODJlYjljNTliMDA4ZDI5ODExMjY0OTUuLjBlYTc5OWZmYmIzYThhYWUwMTEzZDlh
NTVjZTNlNjNiYmEyYzhlYWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFz
L1dlYkdMQ29udGV4dE9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dl
YkdMQ29udGV4dE9iamVjdC5oCkBAIC00OSw3ICs0OSw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQg
ZGV0YWNoQ29udGV4dChjb25zdCBXVEY6OkFic3RyYWN0TG9ja2VyJik7CiAKLSAgICBXVEY6Okxv
Y2smIG9iamVjdEdyYXBoTG9ja0ZvckNvbnRleHQoKSBvdmVycmlkZTsKKyAgICBVbmNoZWNrZWRM
b2NrJiBvYmplY3RHcmFwaExvY2tGb3JDb250ZXh0KCkgb3ZlcnJpZGU7CiAKIHByb3RlY3RlZDoK
ICAgICBXZWJHTENvbnRleHRPYmplY3QoV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xPYmplY3QuaCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMT2JqZWN0LmgKaW5kZXggMDBjZDhmMGMyYjdiMjFi
YmY5NzJhZmE3Y2ZjNWVlODVlM2UwNjBkZC4uOGFmMmVkYTQwMGU0ZjhlYzQ1YmY3ZTQyYTJmYWJh
YmJkOGIwY2JiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xP
YmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTE9iamVjdC5oCkBA
IC03MSw3ICs3MSw3IEBAIHB1YmxpYzoKICAgICAvLyBXRUJHTF9zaGFyZWRfb2JqZWN0cyBleHRl
bnNpb24gc3BlY2lmaWNhdGlvbiBuZXZlciBzaGlwcGVkIChhbmQKICAgICAvLyBpcyB1bmxpa2Vs
eSB0byksIHRoaXMgYmFzaWNhbGx5IHJldHVybnMgdGhlIHNhbWUgcmVzdWx0IGZvcgogICAgIC8v
IGJvdGggY29udGV4dCBvYmplY3RzIGFuZCBzaGFyZWQgb2JqZWN0cy4KLSAgICB2aXJ0dWFsIFdU
Rjo6TG9jayYgb2JqZWN0R3JhcGhMb2NrRm9yQ29udGV4dCgpID0gMDsKKyAgICB2aXJ0dWFsIFVu
Y2hlY2tlZExvY2smIG9iamVjdEdyYXBoTG9ja0ZvckNvbnRleHQoKSA9IDA7CiAKIHByb3RlY3Rl
ZDoKICAgICBXZWJHTE9iamVjdCgpID0gZGVmYXVsdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAKaW5kZXggNTE1
NTQ4OGQ3ZWQxZGE5NTBkNWFmNjc4ZDQ2ZDIzNDBiOGJhOWNlZS4uMzljMzJlODQ0OWE2YjhkNDBm
YWJhZjA0ZmU5MDZjMGM1NDIwYjBjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9j
YW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAKQEAgLTc5OTAsNyArNzk5
MCw3IEBAIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6YWRkTWVtYmVyc1RvT3BhcXVl
Um9vdHMoSlNDOjpBYnN0cmFjdFNsb3RWaXNpdG9yCiAgICAgLy8gcm9vdHMgZm9yIGV4dGVuc2lv
bnMuCiB9CiAKLUxvY2smIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6Om9iamVjdEdyYXBoTG9j
aygpCitVbmNoZWNrZWRMb2NrJiBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpvYmplY3RHcmFw
aExvY2soKQogewogICAgIHJldHVybiBtX29iamVjdEdyYXBoTG9jazsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuaCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuaApp
bmRleCBmYWU4YTUzOWVjODkxNDM5MjllYWI0NmZjYTMzYzMxMjZhM2MxNjlmLi5kN2NiZWVkMzJj
YmMwYjc5N2MxMDY4ZmQ1OTdkMTNlZDhlNGMxOTczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5oCkBAIC00MjYsNyAr
NDI2LDcgQEAgcHVibGljOgogICAgIC8vIGN1cnJlbnRseSBsYXRjaGVkIGludG8gdGhlIGNvbnRl
eHQgLSB3aXRob3V0IHRyYXZlcnNpbmcgYWxsIG9mCiAgICAgLy8gdGhlIGxhdGNoZWQgb2JqZWN0
cyB0byBmaW5kIHRoZSBjdXJyZW50IG9uZSwgd2hpY2ggd291bGQgYmUKICAgICAvLyBwcm9oaWJp
dGl2ZWx5IGV4cGVuc2l2ZS4KLSAgICBMb2NrJiBvYmplY3RHcmFwaExvY2soKTsKKyAgICBVbmNo
ZWNrZWRMb2NrJiBvYmplY3RHcmFwaExvY2soKTsKIAogcHJvdGVjdGVkOgogICAgIFdlYkdMUmVu
ZGVyaW5nQ29udGV4dEJhc2UoQ2FudmFzQmFzZSYsIFdlYkdMQ29udGV4dEF0dHJpYnV0ZXMpOwpA
QCAtNTQwLDcgKzU0MCw3IEBAIHByb3RlY3RlZDoKIAogICAgIFJlZlB0cjxHcmFwaGljc0NvbnRl
eHRHTD4gbV9jb250ZXh0OwogICAgIFJlZlB0cjxXZWJHTENvbnRleHRHcm91cD4gbV9jb250ZXh0
R3JvdXA7Ci0gICAgTG9jayBtX29iamVjdEdyYXBoTG9jazsKKyAgICBVbmNoZWNrZWRMb2NrIG1f
b2JqZWN0R3JhcGhMb2NrOwogCiAgICAgYm9vbCBtX3Jlc3RvcmVBbGxvd2VkIHsgZmFsc2UgfTsK
ICAgICBTdXNwZW5kYWJsZVRpbWVyIG1fcmVzdG9yZVRpbWVyOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xTaGFyZWRPYmplY3QuY3BwIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9jYW52YXMvV2ViR0xTaGFyZWRPYmplY3QuY3BwCmluZGV4IDkzNmM5ODFjOTkyOTBk
OGU3Y2VmOThiMTNiNTY5M2NiZWIyMzc5OGMuLjBhYjhjYjI0MWExYjNmMzg4ZmVmMzgyOTk3NmNl
Y2Y2ZDQ4N2QzNzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdM
U2hhcmVkT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFNo
YXJlZE9iamVjdC5jcHAKQEAgLTgyLDcgKzgyLDcgQEAgR3JhcGhpY3NDb250ZXh0R0wqIFdlYkdM
U2hhcmVkT2JqZWN0OjpnZXRBR3JhcGhpY3NDb250ZXh0R0woKSBjb25zdAogICAgIHJldHVybiBt
X2NvbnRleHRHcm91cCA/ICZtX2NvbnRleHRHcm91cC0+Z2V0QUdyYXBoaWNzQ29udGV4dEdMKCkg
OiBudWxscHRyOwogfQogCi1XVEY6OkxvY2smIFdlYkdMU2hhcmVkT2JqZWN0OjpvYmplY3RHcmFw
aExvY2tGb3JDb250ZXh0KCkKK1VuY2hlY2tlZExvY2smIFdlYkdMU2hhcmVkT2JqZWN0OjpvYmpl
Y3RHcmFwaExvY2tGb3JDb250ZXh0KCkKIHsKICAgICAvLyBTaG91bGQgbm90IGNhbGwgdGhpcyBp
ZiB0aGUgb2JqZWN0IG9yIGNvbnRleHQgaGFzIGJlZW4gZGVsZXRlZC4KICAgICBBU1NFUlQobV9j
b250ZXh0R3JvdXApOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2Vi
R0xTaGFyZWRPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMU2hhcmVk
T2JqZWN0LmgKaW5kZXggNWQxM2FmYTM4NDZhYTIxNTMwYzBhYmQ1MzkwYWExZTc5OGU5ZTFkMC4u
ZjUzZGIxOWIwNjkyMjkwNmJkY2NiMTZjMzkzNzM4NjE1ZjE3NjU3OSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xTaGFyZWRPYmplY3QuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFNoYXJlZE9iamVjdC5oCkBAIC01OSw3ICs1OSw3IEBA
IHB1YmxpYzoKIAogICAgIHZvaWQgZGV0YWNoQ29udGV4dEdyb3VwV2l0aG91dERlbGV0aW5nT2Jq
ZWN0KCk7CiAKLSAgICBXVEY6OkxvY2smIG9iamVjdEdyYXBoTG9ja0ZvckNvbnRleHQoKSBvdmVy
cmlkZTsKKyAgICBVbmNoZWNrZWRMb2NrJiBvYmplY3RHcmFwaExvY2tGb3JDb250ZXh0KCkgb3Zl
cnJpZGU7CiAKIHByb3RlY3RlZDoKICAgICBXZWJHTFNoYXJlZE9iamVjdChXZWJHTFJlbmRlcmlu
Z0NvbnRleHRCYXNlJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGlu
Zy9tYWMvU2Nyb2xsaW5nVHJlZU1hYy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcv
bWFjL1Njcm9sbGluZ1RyZWVNYWMuaAppbmRleCBiNDJiZjQxMTQ1NGZhMDM0YTdkYWE4NmMzMTUz
YWExZDY2YTk4M2NlLi44OGRhZDFlZGQxYjkwNTIwZDFmMGNiNmI3NzA2ZmVkMDIyNDA2N2FlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJl
ZU1hYy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdU
cmVlTWFjLmgKQEAgLTU1LDggKzU1LDggQEAgcHJpdmF0ZToKICAgICB2b2lkIGRlZmVyV2hlZWxF
dmVudFRlc3RDb21wbGV0aW9uRm9yUmVhc29uKFdoZWVsRXZlbnRUZXN0TW9uaXRvcjo6U2Nyb2xs
YWJsZUFyZWFJZGVudGlmaWVyLCBXaGVlbEV2ZW50VGVzdE1vbml0b3I6OkRlZmVyUmVhc29uKSBm
aW5hbDsKICAgICB2b2lkIHJlbW92ZVdoZWVsRXZlbnRUZXN0Q29tcGxldGlvbkRlZmVycmFsRm9y
UmVhc29uKFdoZWVsRXZlbnRUZXN0TW9uaXRvcjo6U2Nyb2xsYWJsZUFyZWFJZGVudGlmaWVyLCBX
aGVlbEV2ZW50VGVzdE1vbml0b3I6OkRlZmVyUmVhc29uKSBmaW5hbDsKIAotICAgIHZvaWQgbG9j
a0xheWVyc0ZvckhpdFRlc3RpbmcoKSBmaW5hbDsKLSAgICB2b2lkIHVubG9ja0xheWVyc0Zvckhp
dFRlc3RpbmcoKSBmaW5hbDsKKyAgICB2b2lkIGxvY2tMYXllcnNGb3JIaXRUZXN0aW5nKCkgZmlu
YWwgV1RGX0FDUVVJUkVTX0xPQ0sobV9sYXllckhpdFRlc3RNdXRleCk7CisgICAgdm9pZCB1bmxv
Y2tMYXllcnNGb3JIaXRUZXN0aW5nKCkgZmluYWwgV1RGX1JFTEVBU0VTX0xPQ0sobV9sYXllckhp
dFRlc3RNdXRleCk7CiAKICAgICAvLyBUaGlzIGxvY2sgcHJvdGVjdHMgdGhlIENBTGF5ZXIvUGxh
dGZvcm1DQUxheWVyIHRyZWUuCiAgICAgbXV0YWJsZSBMb2NrIG1fbGF5ZXJIaXRUZXN0TXV0ZXg7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9SZXZlcmJDb252b2x2
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vUmV2ZXJiQ29udm9sdmVyLmNw
cAppbmRleCBjMjVjYWYwZDliYzQ2OTVjNDgwZGRjYzk4NGZmOTE3ZWY1MjNjMGY2Li42MzVhOGY3
N2IzMTQyMGRjMDVlZmY0NWY1ZjU4NTg4OGZiYWJmYzk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9hdWRpby9SZXZlcmJDb252b2x2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2F1ZGlvL1JldmVyYkNvbnZvbHZlci5jcHAKQEAgLTE0OCw5ICsxNDgsOSBA
QCB2b2lkIFJldmVyYkNvbnZvbHZlcjo6YmFja2dyb3VuZFRocmVhZEVudHJ5KCkKICAgICAgICAg
Ly8gV2FpdCBmb3IgcmVhbHRpbWUgdGhyZWFkIHRvIGdpdmUgdXMgbW9yZSBpbnB1dAogICAgICAg
ICBtX21vcmVJbnB1dEJ1ZmZlcmVkID0gZmFsc2U7ICAgICAgICAKICAgICAgICAgewotICAgICAg
ICAgICAgc3RkOjp1bmlxdWVfbG9jazxMb2NrPiBsb2NrKG1fYmFja2dyb3VuZFRocmVhZExvY2sp
OworICAgICAgICAgICAgTG9ja2VyIGxvY2tlciB7IG1fYmFja2dyb3VuZFRocmVhZExvY2sgfTsK
IAotICAgICAgICAgICAgbV9iYWNrZ3JvdW5kVGhyZWFkQ29uZGl0aW9uVmFyaWFibGUud2FpdChs
b2NrLCBbdGhpc10geyByZXR1cm4gbV9tb3JlSW5wdXRCdWZmZXJlZCB8fCBtX3dhbnRzVG9FeGl0
OyB9KTsKKyAgICAgICAgICAgIG1fYmFja2dyb3VuZFRocmVhZENvbmRpdGlvblZhcmlhYmxlLndh
aXQobV9iYWNrZ3JvdW5kVGhyZWFkTG9jaywgW3RoaXNdIHsgcmV0dXJuIG1fbW9yZUlucHV0QnVm
ZmVyZWQgfHwgbV93YW50c1RvRXhpdDsgfSk7CiAgICAgICAgIH0KIAogICAgICAgICAvLyBQcm9j
ZXNzIGFsbCBvZiB0aGUgc3RhZ2VzIHVudGlsIHRoZWlyIHJlYWQgaW5kaWNlcyByZWFjaCB0aGUg
aW5wdXQgYnVmZmVyJ3Mgd3JpdGUgaW5kZXgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL1NoYWRvd0JsdXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvU2hhZG93Qmx1ci5jcHAKaW5kZXggYTNiMDU1ZDM4MzU2MmZmNGEwNjc4YTI4NWNi
YmJhNzM0Yjg2ZjY5My4uMWRmODIwNDBkZjExNWVjYWM1OTZjMjMxY2YyZmQxZWI3YjhhMTIwOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvU2hhZG93Qmx1ci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvU2hhZG93Qmx1ci5jcHAK
QEAgLTEyMiw3ICsxMjIsNyBAQCBwdWJsaWM6CiAgICAgfQogCiAgICAgc3RhdGljIFNjcmF0Y2hC
dWZmZXImIHNpbmdsZXRvbigpOwotICAgIHN0YXRpYyBMb2NrJiBsb2NrKCk7CisgICAgc3RhdGlj
IFVuY2hlY2tlZExvY2smIGxvY2soKTsKIAogcHJpdmF0ZToKICAgICB2b2lkIHNjaGVkdWxlU2Ny
YXRjaEJ1ZmZlclB1cmdlKCkKQEAgLTE2OCw5ICsxNjgsOSBAQCBTY3JhdGNoQnVmZmVyJiBTY3Jh
dGNoQnVmZmVyOjpzaW5nbGV0b24oKQogICAgIHJldHVybiBzY3JhdGNoQnVmZmVyOwogfQogCi1M
b2NrJiBTY3JhdGNoQnVmZmVyOjpsb2NrKCkKK1VuY2hlY2tlZExvY2smIFNjcmF0Y2hCdWZmZXI6
OmxvY2soKQogewotICAgIHN0YXRpYyBMb2NrIGxvY2s7CisgICAgc3RhdGljIFVuY2hlY2tlZExv
Y2sgbG9jazsKICAgICByZXR1cm4gbG9jazsKIH0KIApAQCAtNjk2LDcgKzY5Niw3IEBAIHZvaWQg
U2hhZG93Qmx1cjo6ZHJhd1JlY3RTaGFkb3dXaXRoVGlsaW5nKGNvbnN0IEFmZmluZVRyYW5zZm9y
bSYgdHJhbnNmb3JtLCBjb25zCiB7CiAgICAgUmVmUHRyPEltYWdlQnVmZmVyPiBsYXllckltYWdl
QnVmZmVyOwogI2lmIFVTRShDRykKLSAgICBhdXRvIGxvY2tlciA9IExvY2tlcjxMb2NrPjo6dHJ5
TG9jayhTY3JhdGNoQnVmZmVyOjpsb2NrKCkpOworICAgIGF1dG8gbG9ja2VyID0gTG9ja2VyPFVu
Y2hlY2tlZExvY2s+Ojp0cnlMb2NrKFNjcmF0Y2hCdWZmZXI6OmxvY2soKSk7CiAgICAgaWYgKGxv
Y2tlcikgewogICAgICAgICBsYXllckltYWdlQnVmZmVyID0gU2NyYXRjaEJ1ZmZlcjo6c2luZ2xl
dG9uKCkuZ2V0U2NyYXRjaEJ1ZmZlcih0ZW1wbGF0ZVNpemUpOwogICAgICAgICBpZiAoIWxheWVy
SW1hZ2VCdWZmZXIpCkBAIC03NTYsNyArNzU2LDcgQEAgdm9pZCBTaGFkb3dCbHVyOjpkcmF3SW5z
ZXRTaGFkb3dXaXRoVGlsaW5nKGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgdHJhbnNmb3JtLCBjb24K
IHsKICAgICBSZWZQdHI8SW1hZ2VCdWZmZXI+IGxheWVySW1hZ2VCdWZmZXI7CiAjaWYgVVNFKENH
KQotICAgIGF1dG8gbG9ja2VyID0gTG9ja2VyPExvY2s+Ojp0cnlMb2NrKFNjcmF0Y2hCdWZmZXI6
OmxvY2soKSk7CisgICAgYXV0byBsb2NrZXIgPSBMb2NrZXI8VW5jaGVja2VkTG9jaz46OnRyeUxv
Y2soU2NyYXRjaEJ1ZmZlcjo6bG9jaygpKTsKICAgICBpZiAobG9ja2VyKSB7CiAgICAgICAgIGxh
eWVySW1hZ2VCdWZmZXIgPSBTY3JhdGNoQnVmZmVyOjpzaW5nbGV0b24oKS5nZXRTY3JhdGNoQnVm
ZmVyKHRlbXBsYXRlU2l6ZSk7CiAgICAgICAgIGlmICghbGF5ZXJJbWFnZUJ1ZmZlcikKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb1Np
bmtHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVh
bWVyL1ZpZGVvU2lua0dTdHJlYW1lci5jcHAKaW5kZXggMTFiZWExMmI2NmRjNTQ2MjVhODI5Zjkw
NzRhOTJjMDM3NGNlMjg5NS4uNTdhNzJhYzU4MGNlY2YxNmEwZTNhYjgwZmNmMzllMzk1ZmQwODhh
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L1ZpZGVvU2lua0dTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3N0cmVhbWVyL1ZpZGVvU2lua0dTdHJlYW1lci5jcHAKQEAgLTEwNyw3ICsxMDcsNyBA
QCBwdWJsaWM6CiAgICAgfQogCiBwcml2YXRlOgotICAgIExvY2sgbV9zYW1wbGVNdXRleDsKKyAg
ICBVbmNoZWNrZWRMb2NrIG1fc2FtcGxlTXV0ZXg7CiAgICAgR1JlZlB0cjxHc3RTYW1wbGU+IG1f
c2FtcGxlOwogCiAgICAgLy8gSWYgdGhpcyBpcyB0cnVlIGFsbCBwcm9jZXNzaW5nIHNob3VsZCBm
aW5pc2ggQVNBUApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3N0cmVhbWVyL2VtZS9XZWJLaXRDb21tb25FbmNyeXB0aW9uRGVjcnlwdG9yR1N0cmVhbWVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUvV2ViS2l0
Q29tbW9uRW5jcnlwdGlvbkRlY3J5cHRvckdTdHJlYW1lci5jcHAKaW5kZXggMzIwMTc0ZDViZmU4
NzZkYjhjMTQyMzU5YThlMWEwMWFhODZjMGZkYi4uZDRjYzRkNzI1YzU1MTExMjY0NTgxYmU1M2Zl
NjhkYzNiMjEzZDI0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3N0cmVhbWVyL2VtZS9XZWJLaXRDb21tb25FbmNyeXB0aW9uRGVjcnlwdG9yR1N0cmVhbWVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvZW1l
L1dlYktpdENvbW1vbkVuY3J5cHRpb25EZWNyeXB0b3JHU3RyZWFtZXIuY3BwCkBAIC01Niw3ICs1
Niw3IEBAIHN0cnVjdCBfV2ViS2l0TWVkaWFDb21tb25FbmNyeXB0aW9uRGVjcnlwdFByaXZhdGUg
ewogICAgIFJlZlB0cjxDRE1Qcm94eT4gY2RtUHJveHk7CiAKICAgICAvLyBQcm90ZWN0IHRoZSBh
Y2Nlc3MgdG8gdGhlIHN0cnVjdHVyZSBtZW1iZXJzLgotICAgIExvY2sgbXV0ZXg7CisgICAgVW5j
aGVja2VkTG9jayBtdXRleDsKICAgICBDb25kaXRpb24gY29uZGl0aW9uOwogCiAgICAgYm9vbCBp
c0ZsdXNoaW5nIHsgZmFsc2UgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2lvcy93YWsvV2ViQ29yZVRocmVhZFJ1bi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9p
b3Mvd2FrL1dlYkNvcmVUaHJlYWRSdW4uY3BwCmluZGV4IDhmODFkN2MxYWNhNDY5NTU1MWZjNDQw
YjQ3ZTkwNjFkNGIzNWRmMmQuLjcyMDQxZTllMWZlOWZlOWQ1NmFlMjc3YjcwZjhkZThiZjZhM2Jm
N2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy93YWsvV2ViQ29yZVRo
cmVhZFJ1bi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL3dhay9XZWJDb3Jl
VGhyZWFkUnVuLmNwcApAQCAtNDUsOSArNDUsOSBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHdhaXRG
b3JDb21wbGV0aW9uKCkKICAgICB7Ci0gICAgICAgIHN0ZDo6dW5pcXVlX2xvY2s8TG9jaz4gbG9j
ayhtX3N0YXRlTXV0ZXgpOworICAgICAgICBMb2NrZXIgbG9jayB7IG1fc3RhdGVNdXRleCB9Owog
Ci0gICAgICAgIG1fY29tcGxldGlvbkNvbmRpdGlvblZhcmlhYmxlLndhaXQobG9jaywgW3RoaXNd
IHsgcmV0dXJuIG1fY29tcGxldGVkOyB9KTsKKyAgICAgICAgbV9jb21wbGV0aW9uQ29uZGl0aW9u
VmFyaWFibGUud2FpdChtX3N0YXRlTXV0ZXgsIFt0aGlzXSB7IHJldHVybiBtX2NvbXBsZXRlZDsg
fSk7CiAgICAgfQogCiAgICAgdm9pZCBzZXRDb21wbGV0ZWQoKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMLmNwcCBi
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRH
TC5jcHAKaW5kZXggNmQxZDFkYWU5N2E5YjVlNzZjN2E0MWE1OTA4M2M5ZTBhODgzNGI2Zi4uMTU1
M2RlZjAyNWZmZjkwZjEzNzVmNTEwZDUwY2E0NWQyYzUxMzU0ZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250
ZXh0R0wuY3BwCkBAIC0yMTIsNyArMjEyLDcgQEAgdm9pZCBSZW1vdGVHcmFwaGljc0NvbnRleHRH
TDo6cGFpbnRQaXhlbEJ1ZmZlclRvSW1hZ2VCdWZmZXIoT3B0aW9uYWw8V2ViQ29yZTo6UGkKICAg
ICBhc3NlcnRJc0N1cnJlbnQobV9zdHJlYW1UaHJlYWQpOwogICAgIC8vIEZJWE1FOiBXZSBkbyBu
b3QgaGF2ZSBmdW5jdGlvbmluZyByZWFkL3dyaXRlIGZlbmNlcyBpbiBSZW1vdGVSZW5kZXJpbmdC
YWNrZW5kLiBUaHVzIHRoaXMgaXMgc3luY2hyb25vdXMsCiAgICAgLy8gYXMgYXJlIHRoZSBtZXNz
YWdlcyB0aGF0IGNhbGwgdGhlc2UuCi0gICAgTG9jayBtdXRleDsKKyAgICBMb2NrIGxvY2s7CiAg
ICAgQ29uZGl0aW9uIGNvbmRpdGlvblZhcmlhYmxlOwogICAgIGJvb2wgaXNGaW5pc2hlZCA9IGZh
bHNlOwogICAgIG1fcmVuZGVyaW5nQmFja2VuZC0+ZGlzcGF0Y2goWyYsIGNvbnRleHRBdHRyaWJ1
dGVzID0gbV9jb250ZXh0LT5jb250ZXh0QXR0cmlidXRlcygpXSgpIG11dGFibGUgewpAQCAtMjI2
LDExICsyMjYsMTEgQEAgdm9pZCBSZW1vdGVHcmFwaGljc0NvbnRleHRHTDo6cGFpbnRQaXhlbEJ1
ZmZlclRvSW1hZ2VCdWZmZXIoT3B0aW9uYWw8V2ViQ29yZTo6UGkKICAgICAgICAgICAgIC8vIFVu
Zm9ydHVuYXRlbHkgImZsdXNoIiBpbXBsZW1lbnRhdGlvbiBpbiBSZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kIG92ZXJsb2FkcyBvcmRlcmluZyBhbmQgZWZmZWN0cy4KICAgICAgICAgICAgIGltYWdlQnVm
ZmVyLT5mbHVzaENvbnRleHQoKTsKICAgICAgICAgfQotICAgICAgICBMb2NrZXIgbG9ja2VyIHsg
bXV0ZXggfTsKKyAgICAgICAgTG9ja2VyIGxvY2tlciB7IGxvY2sgfTsKICAgICAgICAgaXNGaW5p
c2hlZCA9IHRydWU7CiAgICAgICAgIGNvbmRpdGlvblZhcmlhYmxlLm5vdGlmeU9uZSgpOwogICAg
IH0pOwotICAgIHN0ZDo6dW5pcXVlX2xvY2s8TG9jaz4gbG9jayhtdXRleCk7CisgICAgTG9ja2Vy
IGxvY2tlciB7IGxvY2sgfTsKICAgICBjb25kaXRpb25WYXJpYWJsZS53YWl0KGxvY2ssIFsmXSB7
CiAgICAgICAgIHJldHVybiBpc0ZpbmlzaGVkOwogICAgIH0pOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCU2VydmVyLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvSW5kZXhlZERCL1dlYklEQlNlcnZlci5jcHAKaW5kZXgg
OTFiODg5NDFhNzZhODA3MWQzMGQ3ZmVkNzQxNjNmYjA5ZjdiODcyMS4uNTQ3ZGFhOGQ0ZTAwMTQw
NmZjMjAxYWJhZDZjZjQ3NzBjOTFhNTU3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCU2VydmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL0luZGV4ZWREQi9XZWJJREJTZXJ2ZXIuY3BwCkBAIC0xMTksNyArMTE5
LDcgQEAgdm9pZCBXZWJJREJTZXJ2ZXI6OnJlbmFtZU9yaWdpbihjb25zdCBXZWJDb3JlOjpTZWN1
cml0eU9yaWdpbkRhdGEmIG9sZE9yaWdpbiwgY28KICAgICB9KTsKIH0KIAotdm9pZCBXZWJJREJT
ZXJ2ZXI6OnN1c3BlbmQoKQordm9pZCBXZWJJREJTZXJ2ZXI6OnN1c3BlbmQoKSBXVEZfSUdOT1JF
U19USFJFQURfU0FGRVRZX0FOQUxZU0lTCiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigp
KTsKIApAQCAtMTMyLDcgKzEzMiw3IEBAIHZvaWQgV2ViSURCU2VydmVyOjpzdXNwZW5kKCkKICAg
ICAgICAgbV9zZXJ2ZXItPnN0b3BEYXRhYmFzZUFjdGl2aXRpZXNPbk1haW5UaHJlYWQoKTsKIH0K
IAotdm9pZCBXZWJJREJTZXJ2ZXI6OnJlc3VtZSgpCit2b2lkIFdlYklEQlNlcnZlcjo6cmVzdW1l
KCkgV1RGX0lHTk9SRVNfVEhSRUFEX1NBRkVUWV9BTkFMWVNJUwogewogICAgIEFTU0VSVChSdW5M
b29wOjppc01haW4oKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9nbGliL0ljb25EYXRhYmFzZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIv
SWNvbkRhdGFiYXNlLmgKaW5kZXggYmViMmZiODA2ZWM1NWM2NjM0Y2Q1ZTVhMDBkNTA3ODM2MTVm
ZWY0Yi4uODBlMTc4ZTYxZjUwZmFmZGYzZWFkNGQyOThhMTg4MDFhZTAzYzcxNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvSWNvbkRhdGFiYXNlLmgKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvSWNvbkRhdGFiYXNlLmgKQEAgLTcyLDcg
KzcyLDcgQEAgcHJpdmF0ZToKICAgICBIYXNoTWFwPFN0cmluZywgU3RyaW5nPiBtX3BhZ2VVUkxU
b0ljb25VUkxNYXA7CiAgICAgTG9jayBtX3BhZ2VVUkxUb0ljb25VUkxNYXBMb2NrOwogICAgIEhh
c2hNYXA8U3RyaW5nLCBzdGQ6OnBhaXI8V2ViQ29yZTo6UGxhdGZvcm1JbWFnZVB0ciwgTW9ub3Rv
bmljVGltZT4+IG1fbG9hZGVkSWNvbnM7Ci0gICAgTG9jayBtX2xvYWRlZEljb25zTG9jazsKKyAg
ICBVbmNoZWNrZWRMb2NrIG1fbG9hZGVkSWNvbnNMb2NrOwogCiAgICAgc3RkOjp1bmlxdWVfcHRy
PFdlYkNvcmU6OlNRTGl0ZVN0YXRlbWVudD4gbV9pY29uSURGb3JJY29uVVJMU3RhdGVtZW50Owog
ICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpTUUxpdGVTdGF0ZW1lbnQ+IG1fc2V0SWNvbklE
Rm9yUGFnZVVSTFN0YXRlbWVudDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L21hYy9XS1ByaW50aW5nVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS1By
aW50aW5nVmlldy5tbQppbmRleCA5Yjc0ZjNlYzUwZDAyMDE2NjRjNzMxMjk4OWM3ZjY4YzI5YTA0
NTRjLi5mMThiYThmMDFiMjZkZTNmZDNjZGZiMDI4MTI4NWNmMGQ0YTY2NjlmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tQcmludGluZ1ZpZXcubW0KKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLUHJpbnRpbmdWaWV3Lm1tCkBAIC00MTQsMTMgKzQx
NCwxMyBAQCAtIChCT09MKWtub3dzUGFnZVJhbmdlOihOU1JhbmdlUG9pbnRlcilyYW5nZQogICAg
ICAgICAqcmFuZ2UgPSBOU01ha2VSYW5nZSgxLCBfcHJpbnRpbmdQYWdlUmVjdHMuc2l6ZSgpKTsK
ICAgICBlbHNlIGlmICghUnVuTG9vcDo6aXNNYWluKCkpIHsKICAgICAgICAgQVNTRVJUKCFbc2Vs
ZiBfaXNQcmludGluZ1ByZXZpZXddKTsKLSAgICAgICAgc3RkOjp1bmlxdWVfbG9jazxMb2NrPiBs
b2NrKF9wcmludGluZ0NhbGxiYWNrTXV0ZXgpOworICAgICAgICBMb2NrZXIgbG9jayB7IF9wcmlu
dGluZ0NhbGxiYWNrTXV0ZXggfTsKIAogICAgICAgICBSdW5Mb29wOjptYWluKCkuZGlzcGF0Y2go
W3NlbGZdIHsKICAgICAgICAgICAgIHByZXBhcmVEYXRhRm9yUHJpbnRpbmdPblNlY29uZGFyeVRo
cmVhZChzZWxmKTsKICAgICAgICAgfSk7CiAKLSAgICAgICAgX3ByaW50aW5nQ2FsbGJhY2tDb25k
aXRpb24ud2FpdChsb2NrKTsKKyAgICAgICAgX3ByaW50aW5nQ2FsbGJhY2tDb25kaXRpb24ud2Fp
dChfcHJpbnRpbmdDYWxsYmFja011dGV4KTsKICAgICAgICAgKnJhbmdlID0gTlNNYWtlUmFuZ2Uo
MSwgX3ByaW50aW5nUGFnZVJlY3RzLnNpemUoKSk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgQVNT
RVJUKFtzZWxmIF9pc1ByaW50aW5nUHJldmlld10pOwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdl
TG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGVhYjA4M2YxZTA3ZDQ1ZTg4YWRiMTQwMWRiYjRj
MjE1YjUzNzg1NGEuLjg2MzkxMGZlNGZhZmVhMzMyMzVhNDYyZjMwZDRkY2Q4ZGRhYjI4MzggMTAw
NjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSw0MyBAQAorMjAyMS0wNS0yMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisg
ICAgICAgIE1ha2UgQ2hlY2tlZExvY2sgdGhlIGRlZmF1bHQgTG9jaworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI2MTU3CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWFrZSBDaGVja2VkTG9jayB0aGUgZGVm
YXVsdCBMb2NrIHNvIHRoYXQgd2UgZ2V0IG1vcmUgYmVuZWZpdHMgZnJvbSBDbGFuZworICAgICAg
ICBUaHJlYWQgU2FmZXR5IEFuYWx5c2lzLiBOb3RlIHRoYXQgQ2hlY2tlZExvY2sgMTAwJSByZWxp
ZXMgb24gdGhlIGV4aXN0aW5nCisgICAgICAgIExvY2sgaW1wbGVtZW50YXRpb24gYW5kIG1lcmVs
eSBhZGRzIHRoZSBjbGFuZyBhbm90YXRpb25zIGZvciB0aHJlYWQgCisgICAgICAgIHNhZmV0eS4K
KworICAgICAgICBUaGF0IHRoaXMgcGF0Y2ggZG9lcyBpczoKKyAgICAgICAgMS4gUmVuYW1lIHRo
ZSBMb2NrIGNsYXNzIHRvIFVuY2hlY2tlZExvY2sKKyAgICAgICAgMi4gUmVuYW1lIHRoZSBDaGVj
a2VkTG9jayBjbGFzcyB0byBMb2NrCisgICAgICAgIDMuIFJlbmFtZSB0aGUgQ29uZGl0aW9uIGNs
YXNzIHRvIFVuY2hlY2tlZENvbmRpdGlvbgorICAgICAgICA0LiBSZW5hbWUgdGhlIENoZWNrZWRD
b25kaXRpb24gY2xhc3MgdG8gQ29uZGl0aW9uCisgICAgICAgIDUuIFVwZGF0ZSB0aGUgdHlwZXMg
b2YgY2VydGFpbiB2YXJpYWJsZXMgZnJvbSBMb2NrIC8gQ29uZGl0aW9uIHRvCisgICAgICAgICAg
IFVuY2hlY2tlZExvY2sgLyBVbmNoZWNrZWRDb25kaXRpb24gaWYgSSBnb3QgYSBidWlsZCBmYWls
dXJlLiBCdWlsZCAKKyAgICAgICAgICAgZmFpbHVyZXMgYXJlIHVzdWFsbHkgY2F1c2VkIGJ5IHRo
ZSBmb2xsb3dpbmcgZmFjdHM6CisgICAgICAgICAgIC0gTG9ja2VyPENoZWNrZWRMb2NrPiBkb2Vz
bid0IHN1YmNsYXNzIEFic3RyYWN0TG9ja2VyIHdoaWNoIGEgbG90IG9mCisgICAgICAgICAgICAg
SlNDIGNvZGUgcGFzc2VzIGFzIGFyZ3VtZW50CisgICAgICAgICAgIC0gTG9ja2VyPENoZWNrZWRM
b2NrPiBoYXMgbm8gbW92ZSBjb25zdHJ1Y3RvcgorICAgICAgICAgICAtIExvY2tlcjxDaGVja2Vk
TG9jaz4gY2Fubm90IGJlIGNvbnN0cnVjdGVkIGZyb20gYSBsb2NrIHBvaW50ZXIsIG9ubHkKKyAg
ICAgICAgICAgICBhIHJlZmVyZW5jZQorCisgICAgICAgIEZvciBub3csIENoZWNrZWRMb2NrIGFu
ZCBDaGVja2VkQ29uZGl0aW9uIHJlbWFpbiBhcyBhbGlhc2VzIHRvIExvY2sgYW5kIAorICAgICAg
ICBDb25kaXRpb24sIGluIHRoZWlyIHJlc3BlY3RpdmUgQ2hlY2tlZExvY2suaCAvIENoZWNrZWRD
b25kaXRpb24uaCBoZWFkZXJzLgorICAgICAgICBJIHdpbGwgZHJvcCB0aGVtIGluIGEgZm9sbG93
LXVwIHRvIHJlZHVjZSBwYXRjaCBzaXplLgorCisgICAgICAgIEkgd2lsbCBhbHNvIGZvbGxvdy11
cCB0byB0cnkgYW5kIGdldCByaWQgb2YgYXMgbXVjaCB1c2FnZSBvZiBVbmNoZWNrZWRMb2NrCisg
ICAgICAgIGFuZCBVbmNoZWNrZWRDb25kaXRpb24gYXMgcG9zc2libGUuIEkgZGlkIG5vdCB0cnkg
dmVyeSBoYXJkIGluIHRoaXMgcGF0Y2gKKyAgICAgICAgdG8gcmVkdWNlIHBhdGNoIHNpemUuIAor
CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvQ2hlY2tlZENvbmRpdGlvblRlc3Qu
Y3BwOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0NvbmRpdGlvbi5jcHA6Cisg
ICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvTWV0YUFsbG9jYXRvci5jcHA6CisgICAg
ICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5Q29udHJv
bGxlci5jcHA6CisgICAgICAgIChXVFI6OkFYVGhyZWFkOjpjcmVhdGVUaHJlYWRJZk5lZWRlZCk6
CisKIDIwMjEtMDUtMjIgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAg
ICBSZXBsYWNlIExvY2tIb2xkZXIgd2l0aCBMb2NrZXIgaW4gbG9jYWwgdmFyaWFibGVzCmRpZmYg
LS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9DaGVja2VkQ29uZGl0aW9uVGVz
dC5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9DaGVja2VkQ29uZGl0aW9uVGVz
dC5jcHAKaW5kZXggOTI4YWExOTAzY2RlMzZlYTMyZGMxMDFmMjZiZjNjYzk5MjY5Yjg5My4uYWQ0
MjU1ZTJhYzFhMmVmOWEwYzFjYTNjZjU2YzczODA3NjYzMDUwOCAxMDA2NDQKLS0tIGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvQ2hlY2tlZENvbmRpdGlvblRlc3QuY3BwCisrKyBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0NoZWNrZWRDb25kaXRpb25UZXN0LmNwcApAQCAt
MjUsNiArMjUsNyBAQAogCiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSA8d3RmL0NoZWNr
ZWRDb25kaXRpb24uaD4KKyNpbmNsdWRlIDx3dGYvQ2hlY2tlZExvY2suaD4KIAogbmFtZXNwYWNl
IFRlc3RXZWJLaXRBUEkgewogCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dURi9Db25kaXRpb24uY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvQ29uZGl0
aW9uLmNwcAppbmRleCAzYjM1YjA4Y2ExNGI4MTg4NDdkNjZlZTU4N2ZmYWQxYTU5MGQ4MTI2Li41
ZWVjM2UwMTU2NmI5MThkNjY3ZTE2NDgyNWYwMTIwOGQ4NzliYmViIDEwMDY0NAotLS0gYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9Db25kaXRpb24uY3BwCisrKyBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV1RGL0NvbmRpdGlvbi5jcHAKQEAgLTQ2LDcgKzQ2LDcgQEAgZW51bSBO
b3RpZnlTdHlsZSB7CiB9OwogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBGdW5jdG9yPgotdm9pZCB3YWl0
KENvbmRpdGlvbiYgY29uZGl0aW9uLCBzdGQ6OnVuaXF1ZV9sb2NrPExvY2s+JiBsb2NrZXIsIGNv
bnN0IEZ1bmN0b3ImIHByZWRpY2F0ZSwgU2Vjb25kcyB0aW1lb3V0KQordm9pZCB3YWl0KFVuY2hl
Y2tlZENvbmRpdGlvbiYgY29uZGl0aW9uLCBzdGQ6OnVuaXF1ZV9sb2NrPFVuY2hlY2tlZExvY2s+
JiBsb2NrZXIsIGNvbnN0IEZ1bmN0b3ImIHByZWRpY2F0ZSwgU2Vjb25kcyB0aW1lb3V0KQogewog
ICAgIGlmICh0aW1lb3V0ID09IFNlY29uZHM6OmluZmluaXR5KCkpCiAgICAgICAgIGNvbmRpdGlv
bi53YWl0KGxvY2tlciwgcHJlZGljYXRlKTsKQEAgLTU5LDcgKzU5LDcgQEAgdm9pZCB3YWl0KENv
bmRpdGlvbiYgY29uZGl0aW9uLCBzdGQ6OnVuaXF1ZV9sb2NrPExvY2s+JiBsb2NrZXIsIGNvbnN0
IEZ1bmN0b3ImIHAKICAgICB9CiB9CiAKLXZvaWQgbm90aWZ5KE5vdGlmeVN0eWxlIG5vdGlmeVN0
eWxlLCBDb25kaXRpb24mIGNvbmRpdGlvbiwgYm9vbCBzaG91bGROb3RpZnkpCit2b2lkIG5vdGlm
eShOb3RpZnlTdHlsZSBub3RpZnlTdHlsZSwgVW5jaGVja2VkQ29uZGl0aW9uJiBjb25kaXRpb24s
IGJvb2wgc2hvdWxkTm90aWZ5KQogewogICAgIHN3aXRjaCAobm90aWZ5U3R5bGUpIHsKICAgICBj
YXNlIEFsd2F5c05vdGlmeU9uZToKQEAgLTgzLDkgKzgzLDkgQEAgdm9pZCBydW5UZXN0KAogewog
ICAgIERlcXVlPHVuc2lnbmVkPiBxdWV1ZTsKICAgICBib29sIHNob3VsZENvbnRpbnVlID0gdHJ1
ZTsKLSAgICBMb2NrIGxvY2s7Ci0gICAgQ29uZGl0aW9uIGVtcHR5Q29uZGl0aW9uOwotICAgIENv
bmRpdGlvbiBmdWxsQ29uZGl0aW9uOworICAgIFVuY2hlY2tlZExvY2sgbG9jazsKKyAgICBVbmNo
ZWNrZWRDb25kaXRpb24gZW1wdHlDb25kaXRpb247CisgICAgVW5jaGVja2VkQ29uZGl0aW9uIGZ1
bGxDb25kaXRpb247CiAKICAgICBWZWN0b3I8UmVmPFRocmVhZD4+IGNvbnN1bWVyVGhyZWFkczsK
ICAgICBWZWN0b3I8UmVmPFRocmVhZD4+IHByb2R1Y2VyVGhyZWFkczsKQEAgLTEwMSw3ICsxMDEs
NyBAQCB2b2lkIHJ1blRlc3QoCiAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIHJlc3VsdDsK
ICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgc2hvdWxkTm90aWZ5ID0gZmFsc2U7CiAgICAg
ICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHN0ZDo6dW5pcXVlX2xv
Y2s8TG9jaz4gbG9ja2VyKGxvY2spOworICAgICAgICAgICAgICAgICAgICAgICAgc3RkOjp1bmlx
dWVfbG9jazxVbmNoZWNrZWRMb2NrPiBsb2NrZXIobG9jayk7CiAgICAgICAgICAgICAgICAgICAg
ICAgICB3YWl0KAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVtcHR5Q29uZGl0aW9uLCBs
b2NrZXIsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsmXSAoKSB7CkBAIC0xMzQsNyAr
MTM0LDcgQEAgdm9pZCBydW5UZXN0KAogICAgICAgICAgICAgICAgIGZvciAodW5zaWduZWQgaSA9
IDA7IGkgPCBudW1NZXNzYWdlc1BlclByb2R1Y2VyOyArK2kpIHsKICAgICAgICAgICAgICAgICAg
ICAgYm9vbCBzaG91bGROb3RpZnkgPSBmYWxzZTsKICAgICAgICAgICAgICAgICAgICAgewotICAg
ICAgICAgICAgICAgICAgICAgICAgc3RkOjp1bmlxdWVfbG9jazxMb2NrPiBsb2NrZXIobG9jayk7
CisgICAgICAgICAgICAgICAgICAgICAgICBzdGQ6OnVuaXF1ZV9sb2NrPFVuY2hlY2tlZExvY2s+
IGxvY2tlcihsb2NrKTsKICAgICAgICAgICAgICAgICAgICAgICAgIHdhaXQoCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgZnVsbENvbmRpdGlvbiwgbG9ja2VyLAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFsmXSAoKSB7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dURi9NZXRhQWxsb2NhdG9yLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RG
L01ldGFBbGxvY2F0b3IuY3BwCmluZGV4IGI5MWY2OGVjMGNjMTdkZDM3MDhmMmU3ODA4MzY2NTU3
ZGIzODdhNjYuLjRlZjU4M2IzYzJiZTk4ZWVmZDk2MTUxYzc5NjljZTQzZWJhMDU3OTMgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL01ldGFBbGxvY2F0b3IuY3BwCisr
KyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL01ldGFBbGxvY2F0b3IuY3BwCkBAIC0x
MjksNyArMTI5LDcgQEAgcHVibGljOgogICAgICAgICB9CiAgICAgICAgIAogICAgIHByaXZhdGU6
Ci0gICAgICAgIExvY2sgbV9sb2NrOworICAgICAgICBVbmNoZWNrZWRMb2NrIG1fbG9jazsKICAg
ICAgICAgTWV0YUFsbG9jYXRvclRlc3QqIG1fcGFyZW50OwogICAgIH07CiAKZGlmZiAtLWdpdCBh
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eUNvbnRy
b2xsZXIuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3Np
YmlsaXR5Q29udHJvbGxlci5jcHAKaW5kZXggOTg0NGU1YjYzMzVmYmNhMjg2ZTJjMTFjNmIzZTk4
NzhkOWM0MGQwYi4uNmViYTE0YTFhNzBjMDNkNTU3ZGIyM2I2MDc2MmRmNzlmZmVhNGNhZSAxMDA2
NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmls
aXR5Q29udHJvbGxlci5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1
bmRsZS9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5jcHAKQEAgLTE5OSw3ICsxOTksNyBAQCBBWFRo
cmVhZCYgQVhUaHJlYWQ6OnNpbmdsZXRvbigpCiB2b2lkIEFYVGhyZWFkOjpjcmVhdGVUaHJlYWRJ
Zk5lZWRlZCgpCiB7CiAgICAgLy8gV2FpdCBmb3IgdGhlIHRocmVhZCB0byBpbml0aWFsaXplIHRo
ZSBydW4gbG9vcC4KLSAgICBzdGQ6OnVuaXF1ZV9sb2NrPExvY2s+IGxvY2sobV9pbml0aWFsaXpl
UnVuTG9vcE11dGV4KTsKKyAgICBMb2NrZXIgbG9jayB7IG1faW5pdGlhbGl6ZVJ1bkxvb3BNdXRl
eCB9OwogCiAgICAgaWYgKCFtX3RocmVhZCkgewogICAgICAgICBtX3RocmVhZCA9IFRocmVhZDo6
Y3JlYXRlKCJXS1RSOiBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlciIsIFt0aGlzXSB7CkBAIC0yMDgs
NyArMjA4LDcgQEAgdm9pZCBBWFRocmVhZDo6Y3JlYXRlVGhyZWFkSWZOZWVkZWQoKQogICAgICAg
ICB9KTsKICAgICB9CiAKLSAgICBtX2luaXRpYWxpemVSdW5Mb29wQ29uZGl0aW9uVmFyaWFibGUu
d2FpdChsb2NrLCBbdGhpc10geworICAgIG1faW5pdGlhbGl6ZVJ1bkxvb3BDb25kaXRpb25WYXJp
YWJsZS53YWl0KG1faW5pdGlhbGl6ZVJ1bkxvb3BNdXRleCwgW3RoaXNdIHsKICNpZiBQTEFURk9S
TShDT0NPQSkKICAgICAgICAgcmV0dXJuIG1fdGhyZWFkUnVuTG9vcDsKICNlbHNlCg==
</data>
<flag name="commit-queue"
          id="450682"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>429482</attachid>
            <date>2021-05-23 15:56:08 -0700</date>
            <delta_ts>2021-05-23 16:23:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226157-20210523155607.patch</filename>
            <type>text/plain</type>
            <size>100645</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3OTM0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAw
YzRlNzliNTg2ZTkwMmM1MTBiY2NkMjdkOGMwYzA0MTU2MGNmMjhmLi45MzM2Mzg2OTAxOGFkODIy
NjhhZjUzMmE1OWMwMThjOTZjMjM1ZTY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw5NSBAQAorMjAyMS0wNS0yMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgor
CisgICAgICAgIE1ha2UgQ2hlY2tlZExvY2sgdGhlIGRlZmF1bHQgTG9jaworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI2MTU3CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWFrZSBDaGVja2VkTG9jayB0aGUg
ZGVmYXVsdCBMb2NrIHNvIHRoYXQgd2UgZ2V0IG1vcmUgYmVuZWZpdHMgZnJvbSBDbGFuZworICAg
ICAgICBUaHJlYWQgU2FmZXR5IEFuYWx5c2lzLiBOb3RlIHRoYXQgQ2hlY2tlZExvY2sgMTAwJSBy
ZWxpZXMgb24gdGhlIGV4aXN0aW5nCisgICAgICAgIExvY2sgaW1wbGVtZW50YXRpb24gYW5kIG1l
cmVseSBhZGRzIHRoZSBjbGFuZyBhbm90YXRpb25zIGZvciB0aHJlYWQgCisgICAgICAgIHNhZmV0
eS4KKworICAgICAgICBUaGF0IHRoaXMgcGF0Y2ggZG9lcyBpczoKKyAgICAgICAgMS4gUmVuYW1l
IHRoZSBMb2NrIGNsYXNzIHRvIFVuY2hlY2tlZExvY2sKKyAgICAgICAgMi4gUmVuYW1lIHRoZSBD
aGVja2VkTG9jayBjbGFzcyB0byBMb2NrCisgICAgICAgIDMuIFJlbmFtZSB0aGUgQ29uZGl0aW9u
IGNsYXNzIHRvIFVuY2hlY2tlZENvbmRpdGlvbgorICAgICAgICA0LiBSZW5hbWUgdGhlIENoZWNr
ZWRDb25kaXRpb24gY2xhc3MgdG8gQ29uZGl0aW9uCisgICAgICAgIDUuIFVwZGF0ZSB0aGUgdHlw
ZXMgb2YgY2VydGFpbiB2YXJpYWJsZXMgZnJvbSBMb2NrIC8gQ29uZGl0aW9uIHRvCisgICAgICAg
ICAgIFVuY2hlY2tlZExvY2sgLyBVbmNoZWNrZWRDb25kaXRpb24gaWYgSSBnb3QgYSBidWlsZCBm
YWlsdXJlLiBCdWlsZCAKKyAgICAgICAgICAgZmFpbHVyZXMgYXJlIHVzdWFsbHkgY2F1c2VkIGJ5
IHRoZSBmb2xsb3dpbmcgZmFjdHM6CisgICAgICAgICAgIC0gTG9ja2VyPENoZWNrZWRMb2NrPiBk
b2Vzbid0IHN1YmNsYXNzIEFic3RyYWN0TG9ja2VyIHdoaWNoIGEgbG90IG9mCisgICAgICAgICAg
ICAgSlNDIGNvZGUgcGFzc2VzIGFzIGFyZ3VtZW50CisgICAgICAgICAgIC0gTG9ja2VyPENoZWNr
ZWRMb2NrPiBoYXMgbm8gbW92ZSBjb25zdHJ1Y3RvcgorICAgICAgICAgICAtIExvY2tlcjxDaGVj
a2VkTG9jaz4gY2Fubm90IGJlIGNvbnN0cnVjdGVkIGZyb20gYSBsb2NrIHBvaW50ZXIsIG9ubHkK
KyAgICAgICAgICAgICBhIHJlZmVyZW5jZQorCisgICAgICAgIEZvciBub3csIENoZWNrZWRMb2Nr
IGFuZCBDaGVja2VkQ29uZGl0aW9uIHJlbWFpbiBhcyBhbGlhc2VzIHRvIExvY2sgYW5kIAorICAg
ICAgICBDb25kaXRpb24sIGluIHRoZWlyIHJlc3BlY3RpdmUgQ2hlY2tlZExvY2suaCAvIENoZWNr
ZWRDb25kaXRpb24uaCBoZWFkZXJzLgorICAgICAgICBJIHdpbGwgZHJvcCB0aGVtIGluIGEgZm9s
bG93LXVwIHRvIHJlZHVjZSBwYXRjaCBzaXplLgorCisgICAgICAgIEkgd2lsbCBhbHNvIGZvbGxv
dy11cCB0byB0cnkgYW5kIGdldCByaWQgb2YgYXMgbXVjaCB1c2FnZSBvZiBVbmNoZWNrZWRMb2Nr
CisgICAgICAgIGFuZCBVbmNoZWNrZWRDb25kaXRpb24gYXMgcG9zc2libGUuIEkgZGlkIG5vdCB0
cnkgdmVyeSBoYXJkIGluIHRoaXMgcGF0Y2gKKyAgICAgICAgdG8gcmVkdWNlIHBhdGNoIHNpemUu
IAorCisgICAgICAgICogYXNzZW1ibGVyL3Rlc3RtYXNtLmNwcDoKKyAgICAgICAgKiBkZmcvREZH
Q29tbW9uLmNwcDoKKyAgICAgICAgKiBkZmcvREZHVGhyZWFkRGF0YS5oOgorICAgICAgICAqIGRm
Zy9ERkdXb3JrbGlzdC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6V29ya2xpc3Q6OldvcmtsaXN0
KToKKyAgICAgICAgKiBkZmcvREZHV29ya2xpc3QuaDoKKyAgICAgICAgKiBkeW5iZW5jaC5jcHA6
CisgICAgICAgICogaGVhcC9CbG9ja0RpcmVjdG9yeS5oOgorICAgICAgICAoSlNDOjpCbG9ja0Rp
cmVjdG9yeTo6Yml0dmVjdG9yTG9jayk6CisgICAgICAgICogaGVhcC9Db2RlQmxvY2tTZXQuaDoK
KyAgICAgICAgKEpTQzo6Q29kZUJsb2NrU2V0OjpnZXRMb2NrKToKKyAgICAgICAgKiBoZWFwL0hl
YXAuY3BwOgorICAgICAgICAoSlNDOjpIZWFwOjpIZWFwKToKKyAgICAgICAgKiBoZWFwL0hlYXAu
aDoKKyAgICAgICAgKiBoZWFwL01hcmtlZFNwYWNlLmg6CisgICAgICAgIChKU0M6Ok1hcmtlZFNw
YWNlOjpkaXJlY3RvcnlMb2NrKToKKyAgICAgICAgKiBoZWFwL01hcmtpbmdDb25zdHJhaW50U29s
dmVyLmg6CisgICAgICAgICogaGVhcC9TbG90VmlzaXRvci5jcHA6CisgICAgICAgIChKU0M6OlNs
b3RWaXNpdG9yOjpkb25hdGVLbm93blBhcmFsbGVsKToKKyAgICAgICAgKiBoZWFwL1Nsb3RWaXNp
dG9yLmg6CisgICAgICAgICogaml0L0V4ZWN1dGFibGVBbGxvY2F0b3IuY3BwOgorICAgICAgICAo
SlNDOjpFeGVjdXRhYmxlQWxsb2NhdG9yOjpnZXRMb2NrIGNvbnN0KToKKyAgICAgICAgKEpTQzo6
ZHVtcEpJVE1lbW9yeSk6CisgICAgICAgICogaml0L0V4ZWN1dGFibGVBbGxvY2F0b3IuaDoKKyAg
ICAgICAgKEpTQzo6RXhlY3V0YWJsZUFsbG9jYXRvckJhc2U6OmdldExvY2sgY29uc3QpOgorICAg
ICAgICAqIGppdC9KSVRXb3JrbGlzdC5jcHA6CisgICAgICAgIChKU0M6OkpJVFdvcmtsaXN0OjpK
SVRXb3JrbGlzdCk6CisgICAgICAgICogaml0L0pJVFdvcmtsaXN0Lmg6CisgICAgICAgICoganNj
LmNwcDoKKyAgICAgICAgKiBwcm9maWxlci9Qcm9maWxlckRhdGFiYXNlLmg6CisgICAgICAgICog
cnVudGltZS9Db25jdXJyZW50SlNMb2NrLmg6CisgICAgICAgICogcnVudGltZS9EZWZlcnJlZFdv
cmtUaW1lci5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNMb2NrLmg6CisgICAgICAgICogcnVudGlt
ZS9TYW1wbGluZ1Byb2ZpbGVyLmNwcDoKKyAgICAgICAgKEpTQzo6RnJhbWVXYWxrZXI6OkZyYW1l
V2Fsa2VyKToKKyAgICAgICAgKEpTQzo6Q0ZyYW1lV2Fsa2VyOjpDRnJhbWVXYWxrZXIpOgorICAg
ICAgICAoSlNDOjpTYW1wbGluZ1Byb2ZpbGVyOjp0YWtlU2FtcGxlKToKKyAgICAgICAgKiBydW50
aW1lL1NhbXBsaW5nUHJvZmlsZXIuaDoKKyAgICAgICAgKEpTQzo6U2FtcGxpbmdQcm9maWxlcjo6
Z2V0TG9jayk6CisgICAgICAgICogcnVudGltZS9WTS5oOgorICAgICAgICAqIHJ1bnRpbWUvVk1U
cmFwcy5jcHA6CisgICAgICAgIChKU0M6OlZNVHJhcHM6OmludmFsaWRhdGVDb2RlQmxvY2tzT25T
dGFjayk6CisgICAgICAgIChKU0M6OlZNVHJhcHM6OlZNVHJhcHMpOgorICAgICAgICAqIHJ1bnRp
bWUvVk1UcmFwcy5oOgorICAgICAgICAqIHRvb2xzL0Z1bmN0aW9uT3ZlcnJpZGVzLmg6CisgICAg
ICAgICogdG9vbHMvVk1JbnNwZWN0b3IuY3BwOgorICAgICAgICAoSlNDOjplbnN1cmVJc1NhZmVU
b0xvY2spOgorICAgICAgICAqIHRvb2xzL1ZNSW5zcGVjdG9yLmg6CisgICAgICAgIChKU0M6OlZN
SW5zcGVjdG9yOjpnZXRMb2NrKToKKyAgICAgICAgKiB3YXNtL1dhc21DYWxsZWVSZWdpc3RyeS5o
OgorICAgICAgICAoSlNDOjpXYXNtOjpDYWxsZWVSZWdpc3RyeTo6Z2V0TG9jayk6CisgICAgICAg
ICogd2FzbS9XYXNtUGxhbi5oOgorICAgICAgICAqIHdhc20vV2FzbVN0cmVhbWluZ0NvbXBpbGVy
Lmg6CisgICAgICAgICogd2FzbS9XYXNtVGh1bmtzLmg6CisgICAgICAgICogd2FzbS9XYXNtV29y
a2xpc3QuY3BwOgorICAgICAgICAoSlNDOjpXYXNtOjpXb3JrbGlzdDo6V29ya2xpc3QpOgorICAg
ICAgICAqIHdhc20vV2FzbVdvcmtsaXN0Lmg6CisKIDIwMjEtMDUtMjMgIENocmlzIER1bWV6ICA8
Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBVc2UgQ2hlY2tlZExvY2sgaW4gZXZlbiBtb3Jl
IHBsYWNlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV1RGL0No
YW5nZUxvZwppbmRleCAxZGYzZjhlMGJhMWU3MjU3MWUwNmU2ZmE1ZDZjMjk5NzBkOTI2MmRmLi4w
MTczMDA1YThiMjg1MTRmZDU3NWM2NTdkMjk4YmZjY2QwNDhjNWQwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV1RGL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY2
IEBACisyMDIxLTA1LTIzICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAg
ICAgTWFrZSBDaGVja2VkTG9jayB0aGUgZGVmYXVsdCBMb2NrCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjYxNTcKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNYWtlIENoZWNrZWRMb2NrIHRoZSBkZWZhdWx0
IExvY2sgc28gdGhhdCB3ZSBnZXQgbW9yZSBiZW5lZml0cyBmcm9tIENsYW5nCisgICAgICAgIFRo
cmVhZCBTYWZldHkgQW5hbHlzaXMuIE5vdGUgdGhhdCBDaGVja2VkTG9jayAxMDAlIHJlbGllcyBv
biB0aGUgZXhpc3RpbmcKKyAgICAgICAgTG9jayBpbXBsZW1lbnRhdGlvbiBhbmQgbWVyZWx5IGFk
ZHMgdGhlIGNsYW5nIGFub3RhdGlvbnMgZm9yIHRocmVhZAorICAgICAgICBzYWZldHkuCisKKyAg
ICAgICAgVGhhdCB0aGlzIHBhdGNoIGRvZXMgaXM6CisgICAgICAgIDEuIFJlbmFtZSB0aGUgTG9j
ayBjbGFzcyB0byBVbmNoZWNrZWRMb2NrCisgICAgICAgIDIuIFJlbmFtZSB0aGUgQ2hlY2tlZExv
Y2sgY2xhc3MgdG8gTG9jaworICAgICAgICAzLiBSZW5hbWUgdGhlIENvbmRpdGlvbiBjbGFzcyB0
byBVbmNoZWNrZWRDb25kaXRpb24KKyAgICAgICAgNC4gUmVuYW1lIHRoZSBDaGVja2VkQ29uZGl0
aW9uIGNsYXNzIHRvIENvbmRpdGlvbgorICAgICAgICA1LiBVcGRhdGUgdGhlIHR5cGVzIG9mIGNl
cnRhaW4gdmFyaWFibGVzIGZyb20gTG9jayAvIENvbmRpdGlvbiB0bworICAgICAgICAgICBVbmNo
ZWNrZWRMb2NrIC8gVW5jaGVja2VkQ29uZGl0aW9uIGlmIEkgZ290IGEgYnVpbGQgZmFpbHVyZS4g
QnVpbGQKKyAgICAgICAgICAgZmFpbHVyZXMgYXJlIHVzdWFsbHkgY2F1c2VkIGJ5IHRoZSBmb2xs
b3dpbmcgZmFjdHM6CisgICAgICAgICAgIC0gTG9ja2VyPENoZWNrZWRMb2NrPiBkb2Vzbid0IHN1
YmNsYXNzIEFic3RyYWN0TG9ja2VyIHdoaWNoIGEgbG90IG9mCisgICAgICAgICAgICAgSlNDIGNv
ZGUgcGFzc2VzIGFzIGFyZ3VtZW50CisgICAgICAgICAgIC0gTG9ja2VyPENoZWNrZWRMb2NrPiBo
YXMgbm8gbW92ZSBjb25zdHJ1Y3RvcgorICAgICAgICAgICAtIExvY2tlcjxDaGVja2VkTG9jaz4g
Y2Fubm90IGJlIGNvbnN0cnVjdGVkIGZyb20gYSBsb2NrIHBvaW50ZXIsIG9ubHkKKyAgICAgICAg
ICAgICBhIHJlZmVyZW5jZQorICAgICAgICAKKyAgICAgICAgRm9yIG5vdywgQ2hlY2tlZExvY2sg
YW5kIENoZWNrZWRDb25kaXRpb24gcmVtYWluIGFzIGFsaWFzZXMgdG8gTG9jayBhbmQKKyAgICAg
ICAgQ29uZGl0aW9uLCBpbiB0aGVpciByZXNwZWN0aXZlIENoZWNrZWRMb2NrLmggLyBDaGVja2Vk
Q29uZGl0aW9uLmggaGVhZGVycy4KKyAgICAgICAgSSB3aWxsIGRyb3AgdGhlbSBpbiBhIGZvbGxv
dy11cCB0byByZWR1Y2UgcGF0Y2ggc2l6ZS4KKworICAgICAgICBJIHdpbGwgYWxzbyBmb2xsb3ct
dXAgdG8gdHJ5IGFuZCBnZXQgcmlkIG9mIGFzIG11Y2ggdXNhZ2Ugb2YgVW5jaGVja2VkTG9jawor
ICAgICAgICBhbmQgVW5jaGVja2VkQ29uZGl0aW9uIGFzIHBvc3NpYmxlLiBJIGRpZCBub3QgdHJ5
IHZlcnkgaGFyZCBpbiB0aGlzIHBhdGNoCisgICAgICAgIHRvIHJlZHVjZSBwYXRjaCBzaXplLgor
CisgICAgICAgICogd3RmL0F1dG9tYXRpY1RocmVhZC5jcHA6CisgICAgICAgIChXVEY6OkF1dG9t
YXRpY1RocmVhZENvbmRpdGlvbjo6d2FpdCk6CisgICAgICAgIChXVEY6OkF1dG9tYXRpY1RocmVh
ZENvbmRpdGlvbjo6d2FpdEZvcik6CisgICAgICAgIChXVEY6OkF1dG9tYXRpY1RocmVhZDo6QXV0
b21hdGljVGhyZWFkKToKKyAgICAgICAgKiB3dGYvQXV0b21hdGljVGhyZWFkLmg6CisgICAgICAg
ICogd3RmL0NoZWNrZWRDb25kaXRpb24uaDoKKyAgICAgICAgKiB3dGYvQ2hlY2tlZExvY2suaDoK
KyAgICAgICAgKiB3dGYvQ29uZGl0aW9uLmg6CisgICAgICAgICogd3RmL0xvY2suY3BwOgorICAg
ICAgICAoV1RGOjpVbmNoZWNrZWRMb2NrOjpsb2NrU2xvdyk6CisgICAgICAgIChXVEY6OlVuY2hl
Y2tlZExvY2s6OnVubG9ja1Nsb3cpOgorICAgICAgICAoV1RGOjpVbmNoZWNrZWRMb2NrOjp1bmxv
Y2tGYWlybHlTbG93KToKKyAgICAgICAgKFdURjo6VW5jaGVja2VkTG9jazo6c2FmZXBvaW50U2xv
dyk6CisgICAgICAgICogd3RmL0xvY2suaDoKKyAgICAgICAgKFdURjo6V1RGX0FTU0VSVFNfQUNR
VUlSRURfTE9DSyk6CisgICAgICAgICogd3RmL01ldGFBbGxvY2F0b3IuY3BwOgorICAgICAgICAo
V1RGOjpNZXRhQWxsb2NhdG9yOjpyZWxlYXNlKToKKyAgICAgICAgKFdURjo6TWV0YUFsbG9jYXRv
cjo6TWV0YUFsbG9jYXRvcik6CisgICAgICAgIChXVEY6Ok1ldGFBbGxvY2F0b3I6OmFsbG9jYXRl
KToKKyAgICAgICAgKFdURjo6TWV0YUFsbG9jYXRvcjo6Y3VycmVudFN0YXRpc3RpY3MpOgorICAg
ICAgICAqIHd0Zi9NZXRhQWxsb2NhdG9yLmg6CisgICAgICAgICogd3RmL1BhcmFsbGVsSGVscGVy
UG9vbC5jcHA6CisgICAgICAgIChXVEY6OlBhcmFsbGVsSGVscGVyUG9vbDo6UGFyYWxsZWxIZWxw
ZXJQb29sKToKKyAgICAgICAgKiB3dGYvUGFyYWxsZWxIZWxwZXJQb29sLmg6CisgICAgICAgICog
d3RmL1JlY3Vyc2l2ZUxvY2tBZGFwdGVyLmg6CisgICAgICAgICogd3RmL1dvcmtlclBvb2wuY3Bw
OgorICAgICAgICAoV1RGOjpXb3JrZXJQb29sOjpXb3JrZXJQb29sKToKKyAgICAgICAgKiB3dGYv
V29ya2VyUG9vbC5oOgorCiAyMDIxLTA1LTIzICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5j
b20+CiAKICAgICAgICAgRHJvcCBXVEY6OnRyeUhvbGRMb2NrKCkgYXMgaXQgaXMgaW5jb21wYXRp
YmxlIHdpdGggQ2xhbmcgVGhyZWFkIFNhZmV0eSBBbmFseXNpcwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDVkYmE1
ZmZmZmMwOTJiZDBjYTgyNmUxM2FiODBmMmQyYjJhZmNhZjEuLmMyMjkzNTI2NzI4NzU0NjUzMThm
MTU1ZGRhMTUyNGI4MGRkZWIxYTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2NyBAQAorMjAyMS0w
NS0yMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIE1ha2UgQ2hl
Y2tlZExvY2sgdGhlIGRlZmF1bHQgTG9jaworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjI2MTU3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgTWFrZSBDaGVja2VkTG9jayB0aGUgZGVmYXVsdCBMb2NrIHNvIHRo
YXQgd2UgZ2V0IG1vcmUgYmVuZWZpdHMgZnJvbSBDbGFuZworICAgICAgICBUaHJlYWQgU2FmZXR5
IEFuYWx5c2lzLiBOb3RlIHRoYXQgQ2hlY2tlZExvY2sgMTAwJSByZWxpZXMgb24gdGhlIGV4aXN0
aW5nCisgICAgICAgIExvY2sgaW1wbGVtZW50YXRpb24gYW5kIG1lcmVseSBhZGRzIHRoZSBjbGFu
ZyBhbm90YXRpb25zIGZvciB0aHJlYWQgCisgICAgICAgIHNhZmV0eS4KKworICAgICAgICBUaGF0
IHRoaXMgcGF0Y2ggZG9lcyBpczoKKyAgICAgICAgMS4gUmVuYW1lIHRoZSBMb2NrIGNsYXNzIHRv
IFVuY2hlY2tlZExvY2sKKyAgICAgICAgMi4gUmVuYW1lIHRoZSBDaGVja2VkTG9jayBjbGFzcyB0
byBMb2NrCisgICAgICAgIDMuIFJlbmFtZSB0aGUgQ29uZGl0aW9uIGNsYXNzIHRvIFVuY2hlY2tl
ZENvbmRpdGlvbgorICAgICAgICA0LiBSZW5hbWUgdGhlIENoZWNrZWRDb25kaXRpb24gY2xhc3Mg
dG8gQ29uZGl0aW9uCisgICAgICAgIDUuIFVwZGF0ZSB0aGUgdHlwZXMgb2YgY2VydGFpbiB2YXJp
YWJsZXMgZnJvbSBMb2NrIC8gQ29uZGl0aW9uIHRvCisgICAgICAgICAgIFVuY2hlY2tlZExvY2sg
LyBVbmNoZWNrZWRDb25kaXRpb24gaWYgSSBnb3QgYSBidWlsZCBmYWlsdXJlLiBCdWlsZCAKKyAg
ICAgICAgICAgZmFpbHVyZXMgYXJlIHVzdWFsbHkgY2F1c2VkIGJ5IHRoZSBmb2xsb3dpbmcgZmFj
dHM6CisgICAgICAgICAgIC0gTG9ja2VyPENoZWNrZWRMb2NrPiBkb2Vzbid0IHN1YmNsYXNzIEFi
c3RyYWN0TG9ja2VyIHdoaWNoIGEgbG90IG9mCisgICAgICAgICAgICAgSlNDIGNvZGUgcGFzc2Vz
IGFzIGFyZ3VtZW50CisgICAgICAgICAgIC0gTG9ja2VyPENoZWNrZWRMb2NrPiBoYXMgbm8gbW92
ZSBjb25zdHJ1Y3RvcgorICAgICAgICAgICAtIExvY2tlcjxDaGVja2VkTG9jaz4gY2Fubm90IGJl
IGNvbnN0cnVjdGVkIGZyb20gYSBsb2NrIHBvaW50ZXIsIG9ubHkKKyAgICAgICAgICAgICBhIHJl
ZmVyZW5jZQorCisgICAgICAgIEZvciBub3csIENoZWNrZWRMb2NrIGFuZCBDaGVja2VkQ29uZGl0
aW9uIHJlbWFpbiBhcyBhbGlhc2VzIHRvIExvY2sgYW5kIAorICAgICAgICBDb25kaXRpb24sIGlu
IHRoZWlyIHJlc3BlY3RpdmUgQ2hlY2tlZExvY2suaCAvIENoZWNrZWRDb25kaXRpb24uaCBoZWFk
ZXJzLgorICAgICAgICBJIHdpbGwgZHJvcCB0aGVtIGluIGEgZm9sbG93LXVwIHRvIHJlZHVjZSBw
YXRjaCBzaXplLgorCisgICAgICAgIEkgd2lsbCBhbHNvIGZvbGxvdy11cCB0byB0cnkgYW5kIGdl
dCByaWQgb2YgYXMgbXVjaCB1c2FnZSBvZiBVbmNoZWNrZWRMb2NrCisgICAgICAgIGFuZCBVbmNo
ZWNrZWRDb25kaXRpb24gYXMgcG9zc2libGUuIEkgZGlkIG5vdCB0cnkgdmVyeSBoYXJkIGluIHRo
aXMgcGF0Y2gKKyAgICAgICAgdG8gcmVkdWNlIHBhdGNoIHNpemUuIAorCisgICAgICAgICogTW9k
dWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQlNlcnZlci5jcHA6CisgICAgICAgICogTW9kdWxlcy93
ZWJhdWRpby9NZWRpYUVsZW1lbnRBdWRpb1NvdXJjZU5vZGUuaDoKKyAgICAgICAgKiBNb2R1bGVz
L3dlYmRhdGFiYXNlL09yaWdpbkxvY2suY3BwOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9N
R2xvYmFsT2JqZWN0Lmg6CisgICAgICAgICogZG9tL05vZGUuY3BwOgorICAgICAgICAqIGh0bWwv
SFRNTE1lZGlhRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50
OjpjcmVhdGVNZWRpYVBsYXllcik6CisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xDb250ZXh0
R3JvdXAuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xDb250ZXh0R3JvdXA6Om9iamVjdEdy
YXBoTG9ja0ZvckFDb250ZXh0KToKKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTENvbnRleHRH
cm91cC5oOgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMQ29udGV4dE9iamVjdC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpXZWJHTENvbnRleHRPYmplY3Q6Om9iamVjdEdyYXBoTG9ja0ZvckNv
bnRleHQpOgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMQ29udGV4dE9iamVjdC5oOgorICAg
ICAgICAqIGh0bWwvY2FudmFzL1dlYkdMT2JqZWN0Lmg6CisgICAgICAgICogaHRtbC9jYW52YXMv
V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJl
bmRlcmluZ0NvbnRleHRCYXNlOjpvYmplY3RHcmFwaExvY2spOgorICAgICAgICAqIGh0bWwvY2Fu
dmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuaDoKKyAgICAgICAgKiBodG1sL2NhbnZhcy9X
ZWJHTFNoYXJlZE9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFNoYXJlZE9iamVj
dDo6b2JqZWN0R3JhcGhMb2NrRm9yQ29udGV4dCk6CisgICAgICAgICogaHRtbC9jYW52YXMvV2Vi
R0xTaGFyZWRPYmplY3QuaDoKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5n
VHJlZU1hYy5oOgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL1JldmVyYkNvbnZvbHZlci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSZXZlcmJDb252b2x2ZXI6OmJhY2tncm91bmRUaHJlYWRFbnRy
eSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvU2hhZG93Qmx1ci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTY3JhdGNoQnVmZmVyOjpsb2NrKToKKyAgICAgICAgKFdlYkNvcmU6OlNoYWRv
d0JsdXI6OmRyYXdSZWN0U2hhZG93V2l0aFRpbGluZyk6CisgICAgICAgIChXZWJDb3JlOjpTaGFk
b3dCbHVyOjpkcmF3SW5zZXRTaGFkb3dXaXRoVGlsaW5nKToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvVmlkZW9TaW5rR1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvZW1lL1dlYktpdENvbW1vbkVuY3J5cHRpb25EZWNyeXB0
b3JHU3RyZWFtZXIuY3BwOgorCiAyMDIxLTA1LTIzICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBs
ZS5jb20+CiAKICAgICAgICAgVXNlIENoZWNrZWRMb2NrIGluIGV2ZW4gbW9yZSBwbGFjZXMKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cKaW5kZXggNDZkMzYwY2ZmMzRmMDI3ZWVkMzY5Nzg5ZjQ1NjI2M2EwMmFhY2YxOS4uMGRiZWEw
ZmVlN2YyODY5ZGYxMzkyZjMzMWRhMTRlZDRkYzNiYzQ4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0
NCBAQAorMjAyMS0wNS0yMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAg
ICAgIE1ha2UgQ2hlY2tlZExvY2sgdGhlIGRlZmF1bHQgTG9jaworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI2MTU3CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWFrZSBDaGVja2VkTG9jayB0aGUgZGVmYXVs
dCBMb2NrIHNvIHRoYXQgd2UgZ2V0IG1vcmUgYmVuZWZpdHMgZnJvbSBDbGFuZworICAgICAgICBU
aHJlYWQgU2FmZXR5IEFuYWx5c2lzLiBOb3RlIHRoYXQgQ2hlY2tlZExvY2sgMTAwJSByZWxpZXMg
b24gdGhlIGV4aXN0aW5nCisgICAgICAgIExvY2sgaW1wbGVtZW50YXRpb24gYW5kIG1lcmVseSBh
ZGRzIHRoZSBjbGFuZyBhbm90YXRpb25zIGZvciB0aHJlYWQgCisgICAgICAgIHNhZmV0eS4KKwor
ICAgICAgICBUaGF0IHRoaXMgcGF0Y2ggZG9lcyBpczoKKyAgICAgICAgMS4gUmVuYW1lIHRoZSBM
b2NrIGNsYXNzIHRvIFVuY2hlY2tlZExvY2sKKyAgICAgICAgMi4gUmVuYW1lIHRoZSBDaGVja2Vk
TG9jayBjbGFzcyB0byBMb2NrCisgICAgICAgIDMuIFJlbmFtZSB0aGUgQ29uZGl0aW9uIGNsYXNz
IHRvIFVuY2hlY2tlZENvbmRpdGlvbgorICAgICAgICA0LiBSZW5hbWUgdGhlIENoZWNrZWRDb25k
aXRpb24gY2xhc3MgdG8gQ29uZGl0aW9uCisgICAgICAgIDUuIFVwZGF0ZSB0aGUgdHlwZXMgb2Yg
Y2VydGFpbiB2YXJpYWJsZXMgZnJvbSBMb2NrIC8gQ29uZGl0aW9uIHRvCisgICAgICAgICAgIFVu
Y2hlY2tlZExvY2sgLyBVbmNoZWNrZWRDb25kaXRpb24gaWYgSSBnb3QgYSBidWlsZCBmYWlsdXJl
LiBCdWlsZCAKKyAgICAgICAgICAgZmFpbHVyZXMgYXJlIHVzdWFsbHkgY2F1c2VkIGJ5IHRoZSBm
b2xsb3dpbmcgZmFjdHM6CisgICAgICAgICAgIC0gTG9ja2VyPENoZWNrZWRMb2NrPiBkb2Vzbid0
IHN1YmNsYXNzIEFic3RyYWN0TG9ja2VyIHdoaWNoIGEgbG90IG9mCisgICAgICAgICAgICAgSlND
IGNvZGUgcGFzc2VzIGFzIGFyZ3VtZW50CisgICAgICAgICAgIC0gTG9ja2VyPENoZWNrZWRMb2Nr
PiBoYXMgbm8gbW92ZSBjb25zdHJ1Y3RvcgorICAgICAgICAgICAtIExvY2tlcjxDaGVja2VkTG9j
az4gY2Fubm90IGJlIGNvbnN0cnVjdGVkIGZyb20gYSBsb2NrIHBvaW50ZXIsIG9ubHkKKyAgICAg
ICAgICAgICBhIHJlZmVyZW5jZQorCisgICAgICAgIEZvciBub3csIENoZWNrZWRMb2NrIGFuZCBD
aGVja2VkQ29uZGl0aW9uIHJlbWFpbiBhcyBhbGlhc2VzIHRvIExvY2sgYW5kIAorICAgICAgICBD
b25kaXRpb24sIGluIHRoZWlyIHJlc3BlY3RpdmUgQ2hlY2tlZExvY2suaCAvIENoZWNrZWRDb25k
aXRpb24uaCBoZWFkZXJzLgorICAgICAgICBJIHdpbGwgZHJvcCB0aGVtIGluIGEgZm9sbG93LXVw
IHRvIHJlZHVjZSBwYXRjaCBzaXplLgorCisgICAgICAgIEkgd2lsbCBhbHNvIGZvbGxvdy11cCB0
byB0cnkgYW5kIGdldCByaWQgb2YgYXMgbXVjaCB1c2FnZSBvZiBVbmNoZWNrZWRMb2NrCisgICAg
ICAgIGFuZCBVbmNoZWNrZWRDb25kaXRpb24gYXMgcG9zc2libGUuIEkgZGlkIG5vdCB0cnkgdmVy
eSBoYXJkIGluIHRoaXMgcGF0Y2gKKyAgICAgICAgdG8gcmVkdWNlIHBhdGNoIHNpemUuIAorCisg
ICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTC5jcHA6
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMOjpwYWludFBpeGVsQnVm
ZmVyVG9JbWFnZUJ1ZmZlcik6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvSW5kZXhlZERCL1dl
YklEQlNlcnZlci5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9nbGliL0ljb25EYXRhYmFz
ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvV0tQcmludGluZ1ZpZXcubW06CisgICAgICAg
ICgtW1dLUHJpbnRpbmdWaWV3IGtub3dzUGFnZVJhbmdlOl0pOgorCiAyMDIxLTA1LTIzICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgVXNlIENoZWNrZWRMb2NrIGlu
IGV2ZW4gbW9yZSBwbGFjZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3Nl
bWJsZXIvUGVyZkxvZy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9QZXJmTG9n
LmgKaW5kZXggOGYyNGU4ZmE4YTNlMWI2YmM5NmQ1OThiNWQwZjI1MTUwYTdmZjcyMS4uOTc2MGRm
NjY1OGQyOTMzM2FmYTlhZGE4NzFhOTVjZTMyY2EwZDI0ZCAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9QZXJmTG9nLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2Fzc2VtYmxlci9QZXJmTG9nLmgKQEAgLTUwLDcgKzUwLDcgQEAgcHJpdmF0ZToKICAgICB2
b2lkKiBtX21hcmtlciB7IG51bGxwdHIgfTsKICAgICB1aW50NjRfdCBtX2NvZGVJbmRleCB7IDAg
fTsKICAgICBpbnQgbV9mZCB7IC0xIH07Ci0gICAgTG9jayBtX2xvY2s7CisgICAgVW5jaGVja2Vk
TG9jayBtX2xvY2s7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvdGVzdG1hc20uY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Fzc2VtYmxlci90ZXN0bWFzbS5jcHAKaW5kZXggMTkxZDE4MjkzNWFjMWE2ZTZmMGI1
MGI3YTMxM2JkOTg4N2FkYTQyMC4uZDM1M2U3MTJmODk5YzMwZTc5YmQ1MWM1ZGNjZDU3M2ExZDBl
YmM4MyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci90ZXN0bWFz
bS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci90ZXN0bWFzbS5jcHAK
QEAgLTE1Nyw3ICsxNTcsNyBAQCBuYW1lc3BhY2UgewogdXNpbmcgQ1BVU3RhdGUgPSBQcm9iZTo6
Q1BVU3RhdGU7CiAjZW5kaWYKIAotTG9jayBjcmFzaExvY2s7CitVbmNoZWNrZWRMb2NrIGNyYXNo
TG9jazsKIAogdHlwZWRlZiBXVEY6OkZ1bmN0aW9uPHZvaWQoQ0NhbGxIZWxwZXJzJik+IEdlbmVy
YXRvcjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDb21tb24u
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDb21tb24uY3BwCmluZGV4IGE3YWJj
NjQ3NDkzZDJiNjhkOThkYzJhNDAxNGJjMzNjN2RhYjg1ZmIuLjg3NjNjM2ZkNTFmYjE2NTRjNjk1
NDA0YTg1ZjY3YjBiOWU4MzcwNTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHQ29tbW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NvbW1v
bi5jcHAKQEAgLTM1LDcgKzM1LDcgQEAgbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBERkcgewog
CiBjb25zdCBjaGFyKiBjb25zdCB0aWVyTmFtZSA9ICJERkcgIjsKIAotc3RhdGljIExvY2sgY3Jh
c2hMb2NrOworc3RhdGljIFVuY2hlY2tlZExvY2sgY3Jhc2hMb2NrOwogCiB2b2lkIHN0YXJ0Q3Jh
c2hpbmcoKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdUaHJl
YWREYXRhLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1RocmVhZERhdGEuaAppbmRl
eCAzN2RmOWJkMTIxNTQ5Y2RlZDExZTk5ZjQyZmZkMmM1MGYwMjUyZDg2Li41MjJiN2QyYjdjMzYx
ZThiOWQzODBjNzI4Y2ZiOGEwNWIxNzQ2OWJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR1RocmVhZERhdGEuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1RocmVhZERhdGEuaApAQCAtNDcsNyArNDcsNyBAQCBwcml2YXRlOgogICAgIAogICAgIFdv
cmtsaXN0KiBtX3dvcmtsaXN0OwogICAgIFJlZlB0cjxBdXRvbWF0aWNUaHJlYWQ+IG1fdGhyZWFk
OwotICAgIExvY2sgbV9yaWdodFRvUnVuOworICAgIFVuY2hlY2tlZExvY2sgbV9yaWdodFRvUnVu
OwogICAgIFNhZmVwb2ludCogbV9zYWZlcG9pbnQ7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1dvcmtsaXN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHV29ya2xpc3QuY3BwCmluZGV4IDRkMjI4Y2ZlODdhZDk4MTkzNmMwN2MwOWQ0MWI3
Mjc1MTU1OTRhOTEuLmQxNTdhZGY4NzZkYzg0NjgzYTg2YzA0NmVhMmJlZWNiYWI5OWE5MzcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHV29ya2xpc3QuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHV29ya2xpc3QuY3BwCkBAIC0zOSw3ICszOSw3
IEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKIAogY2xhc3MgV29ya2xpc3Q6OlRo
cmVhZEJvZHkgZmluYWwgOiBwdWJsaWMgQXV0b21hdGljVGhyZWFkIHsKIHB1YmxpYzoKLSAgICBU
aHJlYWRCb2R5KGNvbnN0IEFic3RyYWN0TG9ja2VyJiBsb2NrZXIsIFdvcmtsaXN0JiB3b3JrbGlz
dCwgVGhyZWFkRGF0YSYgZGF0YSwgQm94PExvY2s+IGxvY2ssIFJlZjxBdXRvbWF0aWNUaHJlYWRD
b25kaXRpb24+JiYgY29uZGl0aW9uLCBpbnQgcmVsYXRpdmVQcmlvcml0eSkKKyAgICBUaHJlYWRC
b2R5KGNvbnN0IEFic3RyYWN0TG9ja2VyJiBsb2NrZXIsIFdvcmtsaXN0JiB3b3JrbGlzdCwgVGhy
ZWFkRGF0YSYgZGF0YSwgQm94PFVuY2hlY2tlZExvY2s+IGxvY2ssIFJlZjxBdXRvbWF0aWNUaHJl
YWRDb25kaXRpb24+JiYgY29uZGl0aW9uLCBpbnQgcmVsYXRpdmVQcmlvcml0eSkKICAgICAgICAg
OiBBdXRvbWF0aWNUaHJlYWQobG9ja2VyLCBsb2NrLCBXVEZNb3ZlKGNvbmRpdGlvbiksIFRocmVh
ZFR5cGU6OkNvbXBpbGVyKQogICAgICAgICAsIG1fd29ya2xpc3Qod29ya2xpc3QpCiAgICAgICAg
ICwgbV9kYXRhKGRhdGEpCkBAIC0xODEsNyArMTgxLDcgQEAgc3RhdGljIENTdHJpbmcgY3JlYXRl
V29ya2xpc3ROYW1lKENTdHJpbmcmJiB0aWVyTmFtZSkKIFdvcmtsaXN0OjpXb3JrbGlzdChDU3Ry
aW5nJiYgdGllck5hbWUpCiAgICAgOiBtX3RocmVhZE5hbWUoY3JlYXRlV29ya2xpc3ROYW1lKFdU
Rk1vdmUodGllck5hbWUpKSkKICAgICAsIG1fcGxhbkVucXVldWVkKEF1dG9tYXRpY1RocmVhZENv
bmRpdGlvbjo6Y3JlYXRlKCkpCi0gICAgLCBtX2xvY2soQm94PExvY2s+OjpjcmVhdGUoKSkKKyAg
ICAsIG1fbG9jayhCb3g8VW5jaGVja2VkTG9jaz46OmNyZWF0ZSgpKQogewogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1dvcmtsaXN0LmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1dvcmtsaXN0LmgKaW5kZXggMWNlMDJjMDdkOGIxMjgxOTRiY2Mw
M2M3ZjJhNTQxY2QwYTVmNDUyOS4uNTc2ZTAzZTQ3ZTZlZjUwM2M2ZDAxMTZlY2ZiZGMwYThjNmM3
NWM4OCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdXb3JrbGlzdC5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHV29ya2xpc3QuaApAQCAtMTEwLDEw
ICsxMTAsMTAgQEAgcHJpdmF0ZToKICAgICAvLyBiZSBjb21wbGV0ZWQuCiAgICAgVmVjdG9yPFJl
ZlB0cjxQbGFuPiwgMTY+IG1fcmVhZHlQbGFuczsKICAgICBSZWY8QXV0b21hdGljVGhyZWFkQ29u
ZGl0aW9uPiBtX3BsYW5FbnF1ZXVlZDsKLSAgICBDb25kaXRpb24gbV9wbGFuQ29tcGlsZWQ7Cisg
ICAgVW5jaGVja2VkQ29uZGl0aW9uIG1fcGxhbkNvbXBpbGVkOwogCi0gICAgTG9jayBtX3N1c3Bl
bnNpb25Mb2NrOwotICAgIEJveDxMb2NrPiBtX2xvY2s7CisgICAgVW5jaGVja2VkTG9jayBtX3N1
c3BlbnNpb25Mb2NrOworICAgIEJveDxVbmNoZWNrZWRMb2NrPiBtX2xvY2s7CiB9OwogCiBKU19F
WFBPUlRfUFJJVkFURSB1bnNpZ25lZCBzZXROdW1iZXJPZkRGR0NvbXBpbGVyVGhyZWFkcyh1bnNp
Z25lZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZHluYmVuY2guY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2R5bmJlbmNoLmNwcAppbmRleCA4ZjllNWViNzQxMDQ3NWZi
N2M4YjA4NjkyNjIzMzRmZTJhOTc4OTg1Li43OTUyNjExMGUyYTNhNjIwNTJkMTA5ZTliZGI4OGU5
ZWVhYmZmZjU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZHluYmVuY2guY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9keW5iZW5jaC5jcHAKQEAgLTQwLDcgKzQwLDcg
QEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAogbmFtZXNwYWNlIHsKIAotTG9jayBjcmFzaExvY2s7
CitVbmNoZWNrZWRMb2NrIGNyYXNoTG9jazsKIGNvbnN0IGNoYXIqIG5hbWVGaWx0ZXI7CiB1bnNp
Z25lZCByZXF1ZXN0ZWRJdGVyYXRpb25Db3VudDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2hlYXAvQmxvY2tEaXJlY3RvcnkuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9o
ZWFwL0Jsb2NrRGlyZWN0b3J5LmgKaW5kZXggZGFhMDNjNDdlZGY5ZDM2ZDE1NmJkNWQxYTY2MjFi
ZWU2YWFkZjhhZC4uOTAxNTg4Yzk0MzljMzVkZmM4MDRhMGI3NTdjNWU1YjU2M2Y0NGE0ZSAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvQmxvY2tEaXJlY3RvcnkuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9CbG9ja0RpcmVjdG9yeS5oCkBAIC05Myw3ICs5
Myw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgdXBkYXRlUGVyY2VudGFnZU9mUGFnZWRPdXRQYWdl
cyhXVEY6OlNpbXBsZVN0YXRzJik7CiAgICAgCi0gICAgTG9jayYgYml0dmVjdG9yTG9jaygpIHsg
cmV0dXJuIG1fYml0dmVjdG9yTG9jazsgfQorICAgIFVuY2hlY2tlZExvY2smIGJpdHZlY3Rvckxv
Y2soKSB7IHJldHVybiBtX2JpdHZlY3RvckxvY2s7IH0KIAogI2RlZmluZSBCTE9DS19ESVJFQ1RP
UllfQklUX0FDQ0VTU09SUyhsb3dlckJpdE5hbWUsIGNhcGl0YWxCaXROYW1lKSAgICAgXAogICAg
IGJvb2wgaXMgIyMgY2FwaXRhbEJpdE5hbWUoY29uc3QgQWJzdHJhY3RMb2NrZXImLCBzaXplX3Qg
aW5kZXgpIGNvbnN0IHsgcmV0dXJuIG1fYml0cy5pcyAjIyBjYXBpdGFsQml0TmFtZShpbmRleCk7
IH0gXApAQCAtMTU1LDcgKzE1NSw3IEBAIHByaXZhdGU6CiAgICAgLy8gTXV0YXRvciB1c2VzIHRo
aXMgdG8gZ3VhcmQgcmVzaXppbmcgdGhlIGJpdHZlY3RvcnMuIFRob3NlIHRoaW5ncyBpbiB0aGUg
R0MgdGhhdCBtYXkgcnVuCiAgICAgLy8gY29uY3VycmVudGx5IHRvIHRoZSBtdXRhdG9yIG11c3Qg
bG9jayB0aGlzIHdoZW4gYWNjZXNzaW5nIHRoZSBiaXR2ZWN0b3JzLgogICAgIEJsb2NrRGlyZWN0
b3J5Qml0cyBtX2JpdHM7Ci0gICAgTG9jayBtX2JpdHZlY3RvckxvY2s7CisgICAgVW5jaGVja2Vk
TG9jayBtX2JpdHZlY3RvckxvY2s7CiAgICAgTG9jayBtX2xvY2FsQWxsb2NhdG9yc0xvY2s7CiAg
ICAgQ2VsbEF0dHJpYnV0ZXMgbV9hdHRyaWJ1dGVzOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaGVhcC9Db2RlQmxvY2tTZXQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9o
ZWFwL0NvZGVCbG9ja1NldC5oCmluZGV4IGIwZGNiNmNjNzdjOWY5OWQzMDJjNzk5ZDk4ZTM5ZTk1
M2U2YWY0MTkuLjg1NmNjMWJiZjhiZDJkMTdjZGNkY2E3ZDNiNDRjNzFmMmZhNzBiMTggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0NvZGVCbG9ja1NldC5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0NvZGVCbG9ja1NldC5oCkBAIC01NCw3ICs1NCw3IEBA
IHB1YmxpYzoKICAgICB2b2lkIGNsZWFyQ3VycmVudGx5RXhlY3V0aW5nKCk7CiAKICAgICBib29s
IGNvbnRhaW5zKGNvbnN0IEFic3RyYWN0TG9ja2VyJiwgdm9pZCogY2FuZGlkYXRlQ29kZUJsb2Nr
KTsKLSAgICBMb2NrJiBnZXRMb2NrKCkgeyByZXR1cm4gbV9sb2NrOyB9CisgICAgVW5jaGVja2Vk
TG9jayYgZ2V0TG9jaygpIHsgcmV0dXJuIG1fbG9jazsgfQogCiAgICAgLy8gVGhpcyBpcyBleHBl
Y3RlZCB0byBydW4gb25seSB3aGVuIHdlJ3JlIG5vdCBhZGRpbmcgdG8gdGhlIHNldCBmb3Igbm93
LiBJZgogICAgIC8vIHRoaXMgbmVlZHMgdG8gcnVuIGNvbmN1cnJlbnRseSBpbiB0aGUgZnV0dXJl
LCB3ZSdsbCBuZWVkIHRvIGxvY2sgYXJvdW5kIHRoaXMuCkBAIC03OCw3ICs3OCw3IEBAIHB1Ymxp
YzoKIHByaXZhdGU6CiAgICAgSGFzaFNldDxDb2RlQmxvY2sqPiBtX2NvZGVCbG9ja3M7CiAgICAg
SGFzaFNldDxDb2RlQmxvY2sqPiBtX2N1cnJlbnRseUV4ZWN1dGluZzsKLSAgICBMb2NrIG1fbG9j
azsKKyAgICBVbmNoZWNrZWRMb2NrIG1fbG9jazsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNwcAppbmRleCA4YmM4NmQyY2E3NTE1YjRiOGUyZjc2
NGRlOTBlMmE2YzI0NzI2NjkxLi44NjFhNDAyZTUwZDBiY2MwZmVhZTYwMzA0N2NmMzVjMmVjZGM0
ZGU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNwcApAQCAtMzAyLDcgKzMwMiw3IEBA
IEhlYXA6OkhlYXAoVk0mIHZtLCBIZWFwVHlwZSBoZWFwVHlwZSkKICAgICAsIG1fc2hhcmVkQ29s
bGVjdG9yTWFya1N0YWNrKG1ha2VVbmlxdWU8TWFya1N0YWNrQXJyYXk+KCkpCiAgICAgLCBtX3No
YXJlZE11dGF0b3JNYXJrU3RhY2sobWFrZVVuaXF1ZTxNYXJrU3RhY2tBcnJheT4oKSkKICAgICAs
IG1faGVscGVyQ2xpZW50KCZoZWFwSGVscGVyUG9vbCgpKQotICAgICwgbV90aHJlYWRMb2NrKEJv
eDxMb2NrPjo6Y3JlYXRlKCkpCisgICAgLCBtX3RocmVhZExvY2soQm94PFVuY2hlY2tlZExvY2s+
OjpjcmVhdGUoKSkKICAgICAsIG1fdGhyZWFkQ29uZGl0aW9uKEF1dG9tYXRpY1RocmVhZENvbmRp
dGlvbjo6Y3JlYXRlKCkpCiB7CiAgICAgbV93b3JsZFN0YXRlLnN0b3JlKDApOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2hlYXAvSGVhcC5oCmluZGV4IDdhNTNlMDUxNWQwNjk2NTNkMDRmYjliYWMzNTU4ZDdlODFk
OTVmMmMuLjY4ZDkwNzRmZGYzZDhlYThmNDg3YjA2NDg3YjgwZDdhMmIxYjgwMzEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaGVhcC9IZWFwLmgKQEAgLTcyMiw4ICs3MjIsOCBAQCBwcml2YXRlOgogICAgIEF0
b21pYzx1bnNpZ25lZD4gbV93b3JsZFN0YXRlOwogICAgIGJvb2wgbV93b3JsZElzU3RvcHBlZCB7
IGZhbHNlIH07CiAgICAgTG9jayBtX3Zpc2l0UmFjZUxvY2s7Ci0gICAgTG9jayBtX21hcmtpbmdN
dXRleDsKLSAgICBDb25kaXRpb24gbV9tYXJraW5nQ29uZGl0aW9uVmFyaWFibGU7CisgICAgVW5j
aGVja2VkTG9jayBtX21hcmtpbmdNdXRleDsKKyAgICBVbmNoZWNrZWRDb25kaXRpb24gbV9tYXJr
aW5nQ29uZGl0aW9uVmFyaWFibGU7CiAKICAgICBNb25vdG9uaWNUaW1lIG1fYmVmb3JlR0M7CiAg
ICAgTW9ub3RvbmljVGltZSBtX2FmdGVyR0M7CkBAIC03NDYsNyArNzQ2LDcgQEAgcHJpdmF0ZToK
IAogICAgIHVpbnQ2NF90IG1fbXV0YXRvckV4ZWN1dGlvblZlcnNpb24geyAwIH07CiAgICAgdWlu
dDY0X3QgbV9waGFzZVZlcnNpb24geyAwIH07Ci0gICAgQm94PExvY2s+IG1fdGhyZWFkTG9jazsK
KyAgICBCb3g8VW5jaGVja2VkTG9jaz4gbV90aHJlYWRMb2NrOwogICAgIFJlZjxBdXRvbWF0aWNU
aHJlYWRDb25kaXRpb24+IG1fdGhyZWFkQ29uZGl0aW9uOyAvLyBUaGUgbXV0YXRvciBtdXN0IG5v
dCB3YWl0IG9uIHRoaXMuIEl0IHdvdWxkIGNhdXNlIGEgZGVhZGxvY2suCiAgICAgUmVmUHRyPEF1
dG9tYXRpY1RocmVhZD4gbV90aHJlYWQ7CiAKQEAgLTc2OCw4ICs3NjgsOCBAQCBwcml2YXRlOgog
I2VuZGlmCiAKICAgICBib29sIG1fcGFyYWxsZWxNYXJrZXJzU2hvdWxkRXhpdCB7IGZhbHNlIH07
Ci0gICAgTG9jayBtX2NvbGxlY3RDb250aW51b3VzbHlMb2NrOwotICAgIENvbmRpdGlvbiBtX2Nv
bGxlY3RDb250aW51b3VzbHlDb25kaXRpb247CisgICAgVW5jaGVja2VkTG9jayBtX2NvbGxlY3RD
b250aW51b3VzbHlMb2NrOworICAgIFVuY2hlY2tlZENvbmRpdGlvbiBtX2NvbGxlY3RDb250aW51
b3VzbHlDb25kaXRpb247CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hcmtlZFNwYWNlLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaGVhcC9NYXJrZWRTcGFjZS5oCmluZGV4IDViZTUxZGU3ZTRjZjk5YjNkNmY0Nzc3N2Yw
MGI2ZDJhOTdhYjgwNGYuLjI2OGI5NzBhNTk4YjQyNWI5ZmNlMzY3ZGIyZWJhZWE3MWViY2MzMWIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hcmtlZFNwYWNlLmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTWFya2VkU3BhY2UuaApAQCAtMTY4LDcgKzE2
OCw3IEBAIHB1YmxpYzoKICAgICAKICAgICBCbG9ja0RpcmVjdG9yeSogZmlyc3REaXJlY3Rvcnko
KSBjb25zdCB7IHJldHVybiBtX2RpcmVjdG9yaWVzLmZpcnN0KCk7IH0KICAgICAKLSAgICBMb2Nr
JiBkaXJlY3RvcnlMb2NrKCkgeyByZXR1cm4gbV9kaXJlY3RvcnlMb2NrOyB9CisgICAgVW5jaGVj
a2VkTG9jayYgZGlyZWN0b3J5TG9jaygpIHsgcmV0dXJuIG1fZGlyZWN0b3J5TG9jazsgfQogICAg
IHZvaWQgYWRkQmxvY2tEaXJlY3RvcnkoY29uc3QgQWJzdHJhY3RMb2NrZXImLCBCbG9ja0RpcmVj
dG9yeSopOwogICAgIAogICAgIC8vIFdoZW4gdGhpcyBpcyB0cnVlIGl0IG1lYW5zIHRoYXQgd2Ug
aGF2ZSBmbGlwcGVkIGJ1dCB0aGUgbWFyayBiaXRzIGhhdmVuJ3QgY29udmVyZ2VkIHlldC4KQEAg
LTIxNCw3ICsyMTQsNyBAQCBwcml2YXRlOgogICAgIEhlYXBWZXJzaW9uIG1fbmV3bHlBbGxvY2F0
ZWRWZXJzaW9uIHsgaW5pdGlhbFZlcnNpb24gfTsKICAgICBib29sIG1faXNJdGVyYXRpbmcgeyBm
YWxzZSB9OwogICAgIGJvb2wgbV9pc01hcmtpbmcgeyBmYWxzZSB9OwotICAgIExvY2sgbV9kaXJl
Y3RvcnlMb2NrOworICAgIFVuY2hlY2tlZExvY2sgbV9kaXJlY3RvcnlMb2NrOwogICAgIE1hcmtl
ZEJsb2NrU2V0IG1fYmxvY2tzOwogICAgIAogICAgIFNlbnRpbmVsTGlua2VkTGlzdDxXZWFrU2V0
LCBCYXNpY1Jhd1NlbnRpbmVsTm9kZTxXZWFrU2V0Pj4gbV9hY3RpdmVXZWFrU2V0czsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hcmtpbmdDb25zdHJhaW50U29sdmVy
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYXJraW5nQ29uc3RyYWludFNvbHZlci5o
CmluZGV4IDhlNGYyZjRkZGYzMWNmYzgwNzFjZjNiZWNiNmU1ZTI3OGFlY2IwMWUuLjM1MGU1NTY2
MjQyODRkYWJlNDczMTdmYzgwZDJmZGQ2YjlhNTg3N2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9oZWFwL01hcmtpbmdDb25zdHJhaW50U29sdmVyLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2hlYXAvTWFya2luZ0NvbnN0cmFpbnRTb2x2ZXIuaApAQCAtOTUsOCArOTUs
OCBAQCBwcml2YXRlOgogICAgIEJpdFZlY3RvciBtX2V4ZWN1dGVkOwogICAgIERlcXVlPFRhc2tX
aXRoQ29uc3RyYWludCwgMzI+IG1fdG9FeGVjdXRlSW5QYXJhbGxlbDsKICAgICBWZWN0b3I8dW5z
aWduZWQsIDMyPiBtX3RvRXhlY3V0ZVNlcXVlbnRpYWxseTsKLSAgICBMb2NrIG1fbG9jazsKLSAg
ICBDb25kaXRpb24gbV9jb25kaXRpb247CisgICAgVW5jaGVja2VkTG9jayBtX2xvY2s7CisgICAg
VW5jaGVja2VkQ29uZGl0aW9uIG1fY29uZGl0aW9uOwogICAgIGJvb2wgbV9waWNrTmV4dElzU3Rp
bGxBY3RpdmUgeyB0cnVlIH07CiAgICAgdW5zaWduZWQgbV9udW1UaHJlYWRzVGhhdE1heVByb2R1
Y2VXb3JrIHsgMCB9OwogICAgIFZlY3RvcjxWaXNpdENvdW50ZXIsIDE2PiBtX3Zpc2l0Q291bnRl
cnM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9TbG90VmlzaXRvci5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9TbG90VmlzaXRvci5jcHAKaW5kZXggZjlh
MTgzMjNjNzI4MzM0NzE5OGQ5Njg4OWRjNTlmNzQzNzhmMjA3Mi4uYWI3MzJjMjRlYzUwZTg5MDli
NDkxZWM5YjE2OWFmMzBmZWM4OTMzNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2hlYXAvU2xvdFZpc2l0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1Ns
b3RWaXNpdG9yLmNwcApAQCAtNDM2LDcgKzQzNiw3IEBAIHZvaWQgU2xvdFZpc2l0b3I6OmRvbmF0
ZUtub3duUGFyYWxsZWwoTWFya1N0YWNrQXJyYXkmIGZyb20sIE1hcmtTdGFja0FycmF5JiB0bykK
IAogICAgIC8vIElmIHdlJ3JlIGNvbnRlbmRpbmcgb24gdGhlIGxvY2ssIGJlIGNvbnNlcnZhdGl2
ZSBhbmQgYXNzdW1lIHRoYXQgYW5vdGhlcgogICAgIC8vIHRocmVhZCBpcyBhbHJlYWR5IGRvbmF0
aW5nLgotICAgIHN0ZDo6dW5pcXVlX2xvY2s8TG9jaz4gbG9jayhtX2hlYXAubV9tYXJraW5nTXV0
ZXgsIHN0ZDo6dHJ5X3RvX2xvY2spOworICAgIHN0ZDo6dW5pcXVlX2xvY2s8VW5jaGVja2VkTG9j
az4gbG9jayhtX2hlYXAubV9tYXJraW5nTXV0ZXgsIHN0ZDo6dHJ5X3RvX2xvY2spOwogICAgIGlm
ICghbG9jay5vd25zX2xvY2soKSkKICAgICAgICAgcmV0dXJuOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaGVhcC9TbG90VmlzaXRvci5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2hlYXAvU2xvdFZpc2l0b3IuaAppbmRleCA0MjMzM2FmM2UwMjAyNjdlNTM3ZTA5M2U0YjA2
MzMyMjFkZTNlNzNhLi5kNTVkYjYwMTdkZTczY2Y2YzJmMWNjY2Y0Y2YzY2Q1NDM4Mzk2NTM5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9TbG90VmlzaXRvci5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1Nsb3RWaXNpdG9yLmgKQEAgLTE2MSw3ICsxNjEs
NyBAQCBwdWJsaWM6CiAKICAgICBib29sIG11dGF0b3JJc1N0b3BwZWQoKSBjb25zdCBmaW5hbCB7
IHJldHVybiBtX211dGF0b3JJc1N0b3BwZWQ7IH0KICAgICAKLSAgICBMb2NrJiByaWdodFRvUnVu
KCkgeyByZXR1cm4gbV9yaWdodFRvUnVuOyB9CisgICAgVW5jaGVja2VkTG9jayYgcmlnaHRUb1J1
bigpIHsgcmV0dXJuIG1fcmlnaHRUb1J1bjsgfQogICAgIAogICAgIHZvaWQgdXBkYXRlTXV0YXRv
cklzU3RvcHBlZChjb25zdCBBYnN0cmFjdExvY2tlciYpOwogICAgIHZvaWQgdXBkYXRlTXV0YXRv
cklzU3RvcHBlZCgpOwpAQCAtMjMyLDcgKzIzMiw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX211
dGF0b3JJc1N0b3BwZWQgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9jYW5PcHRpbWl6ZUZvclN0b3Bw
ZWRNdXRhdG9yIHsgZmFsc2UgfTsKICAgICBib29sIG1faXNJblBhcmFsbGVsTW9kZSB7IGZhbHNl
IH07Ci0gICAgTG9jayBtX3JpZ2h0VG9SdW47CisgICAgVW5jaGVja2VkTG9jayBtX3JpZ2h0VG9S
dW47CiAgICAgCiAgICAgLy8gUHV0IHBhZGRpbmcgaGVyZSB0byBtaXRpZ2F0ZSBmYWxzZSBzaGFy
aW5nIGJldHdlZW4gbXVsdGlwbGUgU2xvdFZpc2l0b3JzLgogICAgIGNoYXIgcGFkZGluZ1s2NF07
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3JlbW90ZS9zb2Nr
ZXQvUmVtb3RlSW5zcGVjdG9yU29ja2V0RW5kcG9pbnQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9pbnNwZWN0b3IvcmVtb3RlL3NvY2tldC9SZW1vdGVJbnNwZWN0b3JTb2NrZXRFbmRwb2ludC5o
CmluZGV4IDI1YmMxOGNiNjhkODNkMmZiZmFiYmNkZjZkMzU0MTgyNzViOTYyMTguLjI0YTNlNThm
YzM2N2IzZjE5Mjk1MGZjNjhiZDdlZjkyZTg2OGUxZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL3NvY2tldC9SZW1vdGVJbnNwZWN0b3JTb2NrZXRF
bmRwb2ludC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL3Nv
Y2tldC9SZW1vdGVJbnNwZWN0b3JTb2NrZXRFbmRwb2ludC5oCkBAIC0xODIsNyArMTgyLDcgQEAg
cHJvdGVjdGVkOgogICAgIGJvb2wgaXNMaXN0ZW5pbmcoQ29ubmVjdGlvbklEKTsKICAgICBpbnQg
cG9sbGluZ1RpbWVvdXQoKTsKIAotICAgIG11dGFibGUgTG9jayBtX2Nvbm5lY3Rpb25zTG9jazsK
KyAgICBtdXRhYmxlIFVuY2hlY2tlZExvY2sgbV9jb25uZWN0aW9uc0xvY2s7CiAgICAgSGFzaE1h
cDxDb25uZWN0aW9uSUQsIHN0ZDo6dW5pcXVlX3B0cjxDbGllbnRDb25uZWN0aW9uPj4gbV9jbGll
bnRzOwogICAgIEhhc2hNYXA8Q29ubmVjdGlvbklELCBzdGQ6OnVuaXF1ZV9wdHI8TGlzdGVuZXJD
b25uZWN0aW9uPj4gbV9saXN0ZW5lcnM7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvRXhlY3V0YWJsZUFsbG9jYXRvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0V4ZWN1dGFibGVBbGxvY2F0b3IuY3BwCmluZGV4IDI3OWUwNzVlNGNiNjE3NzI5YzZlMmQ1
ZmVmZjk4NjI3YzcwNTJmMDEuLjYxOTQ1NWIxZjZkYmFjYTRhN2RkYWM3Y2JmNmQ5YzkyZmExNmNh
MmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvRXhlY3V0YWJsZUFsbG9j
YXRvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9FeGVjdXRhYmxlQWxsb2Nh
dG9yLmNwcApAQCAtNDg1LDcgKzQ4NSw3IEBAIHB1YmxpYzoKICNlbmRpZiAvLyBFTkFCTEUoSlVN
UF9JU0xBTkRTKQogICAgIH0KIAotICAgIExvY2smIGdldExvY2soKSB7IHJldHVybiBtX2xvY2s7
IH0KKyAgICBVbmNoZWNrZWRMb2NrJiBnZXRMb2NrKCkgeyByZXR1cm4gbV9sb2NrOyB9CiAKICAg
ICAvLyBOb24gYXRvbWljCiAgICAgc2l6ZV90IGJ5dGVzQWxsb2NhdGVkKCkgCkBAIC01NDcsNyAr
NTQ3LDcgQEAgcHVibGljOgogICAgIH0KIAogI2lmIEVOQUJMRShKVU1QX0lTTEFORFMpCi0gICAg
dm9pZCBoYW5kbGVXaWxsQmVSZWxlYXNlZChjb25zdCBMb2NrSG9sZGVyJiBsb2NrZXIsIE1ldGFB
bGxvY2F0b3JIYW5kbGUmIGhhbmRsZSkKKyAgICB2b2lkIGhhbmRsZVdpbGxCZVJlbGVhc2VkKGNv
bnN0IFVuY2hlY2tlZExvY2tIb2xkZXImIGxvY2tlciwgTWV0YUFsbG9jYXRvckhhbmRsZSYgaGFu
ZGxlKQogICAgIHsKICAgICAgICAgaWYgKG1faXNsYW5kc0Zvckp1bXBTb3VyY2VMb2NhdGlvbi5p
c0VtcHR5KCkpCiAgICAgICAgICAgICByZXR1cm47CkBAIC01OTksNyArNTk5LDcgQEAgcHJpdmF0
ZToKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICB9CiAKLSAgICB2b2lkIGZyZWVKdW1wSXNs
YW5kcyhjb25zdCBMb2NrSG9sZGVyJiwgSXNsYW5kcyogaXNsYW5kcykKKyAgICB2b2lkIGZyZWVK
dW1wSXNsYW5kcyhjb25zdCBVbmNoZWNrZWRMb2NrSG9sZGVyJiwgSXNsYW5kcyogaXNsYW5kcykK
ICAgICB7CiAgICAgICAgIGZvciAoQ29kZUxvY2F0aW9uTGFiZWw8RXhlY3V0YWJsZU1lbW9yeVB0
clRhZz4ganVtcElzbGFuZCA6IGlzbGFuZHMtPmp1bXBJc2xhbmRzKSB7CiAgICAgICAgICAgICB1
aW50cHRyX3QgdW50YWdnZWRKdW1wSXNsYW5kID0gYml0d2lzZV9jYXN0PHVpbnRwdHJfdD4oanVt
cElzbGFuZC5kYXRhTG9jYXRpb24oKSk7CkBAIC02MTAsMTQgKzYxMCwxNCBAQCBwcml2YXRlOgog
ICAgICAgICBpc2xhbmRzLT5qdW1wSXNsYW5kcy5jbGVhcigpOwogICAgIH0KIAotICAgIHZvaWQg
ZnJlZUlzbGFuZHMoY29uc3QgTG9ja0hvbGRlciYgbG9ja2VyLCBJc2xhbmRzKiBpc2xhbmRzKQor
ICAgIHZvaWQgZnJlZUlzbGFuZHMoY29uc3QgVW5jaGVja2VkTG9ja0hvbGRlciYgbG9ja2VyLCBJ
c2xhbmRzKiBpc2xhbmRzKQogICAgIHsKICAgICAgICAgZnJlZUp1bXBJc2xhbmRzKGxvY2tlciwg
aXNsYW5kcyk7CiAgICAgICAgIG1faXNsYW5kc0Zvckp1bXBTb3VyY2VMb2NhdGlvbi5yZW1vdmUo
aXNsYW5kcyk7CiAgICAgICAgIGRlbGV0ZSBpc2xhbmRzOwogICAgIH0KIAotICAgIHZvaWQqIGlz
bGFuZEZvckp1bXBMb2NhdGlvbihjb25zdCBMb2NrSG9sZGVyJiBsb2NrZXIsIHVpbnRwdHJfdCBq
dW1wTG9jYXRpb24sIHVpbnRwdHJfdCB0YXJnZXQsIGJvb2wgY29uY3VycmVudGx5KQorICAgIHZv
aWQqIGlzbGFuZEZvckp1bXBMb2NhdGlvbihjb25zdCBVbmNoZWNrZWRMb2NrSG9sZGVyJiBsb2Nr
ZXIsIHVpbnRwdHJfdCBqdW1wTG9jYXRpb24sIHVpbnRwdHJfdCB0YXJnZXQsIGJvb2wgY29uY3Vy
cmVudGx5KQogICAgIHsKICAgICAgICAgSXNsYW5kcyogaXNsYW5kcyA9IG1faXNsYW5kc0Zvckp1
bXBTb3VyY2VMb2NhdGlvbi5maW5kRXhhY3QoYml0d2lzZV9jYXN0PHZvaWQqPihqdW1wTG9jYXRp
b24pKTsKICAgICAgICAgaWYgKGlzbGFuZHMpIHsKQEAgLTc0Niw3ICs3NDYsNyBAQCBwcml2YXRl
OgogICAgICAgICAgICAgcmV0dXJuIGlzbGFuZHNQZXJQYWdlOwogICAgICAgICB9CiAKLSAgICAg
ICAgdm9pZCByZWxlYXNlKGNvbnN0IExvY2tIb2xkZXImIGxvY2tlciwgTWV0YUFsbG9jYXRvckhh
bmRsZSYgaGFuZGxlKSBmaW5hbAorICAgICAgICB2b2lkIHJlbGVhc2UoY29uc3QgVW5jaGVja2Vk
TG9ja0hvbGRlciYgbG9ja2VyLCBNZXRhQWxsb2NhdG9ySGFuZGxlJiBoYW5kbGUpIGZpbmFsCiAg
ICAgICAgIHsKICAgICAgICAgICAgIG1fZml4ZWRBbGxvY2F0b3IuaGFuZGxlV2lsbEJlUmVsZWFz
ZWQobG9ja2VyLCBoYW5kbGUpOwogICAgICAgICAgICAgQmFzZTo6cmVsZWFzZShsb2NrZXIsIGhh
bmRsZSk7CkBAIC04NDcsNyArODQ3LDcgQEAgcHJpdmF0ZToKICAgICB9OwogI2VuZGlmIC8vIEVO
QUJMRShKVU1QX0lTTEFORFMpCiAKLSAgICBMb2NrIG1fbG9jazsKKyAgICBVbmNoZWNrZWRMb2Nr
IG1fbG9jazsKICAgICBQYWdlUmVzZXJ2YXRpb24gbV9yZXNlcnZhdGlvbjsKICNpZiBFTkFCTEUo
SlVNUF9JU0xBTkRTKQogICAgIHN0ZDo6YXJyYXk8UmVnaW9uQWxsb2NhdG9yLCBtYXhOdW1iZXJP
ZlJlZ2lvbnM+IG1fYWxsb2NhdG9yczsKQEAgLTk2MSw3ICs5NjEsNyBAQCBib29sIEV4ZWN1dGFi
bGVBbGxvY2F0b3I6OmlzVmFsaWRFeGVjdXRhYmxlTWVtb3J5KGNvbnN0IEFic3RyYWN0TG9ja2Vy
JiBsb2NrZXIsCiAgICAgcmV0dXJuIGFsbG9jYXRvci0+aXNJbkFsbG9jYXRlZE1lbW9yeShsb2Nr
ZXIsIGFkZHJlc3MpOwogfQogCi1Mb2NrJiBFeGVjdXRhYmxlQWxsb2NhdG9yOjpnZXRMb2NrKCkg
Y29uc3QKK1VuY2hlY2tlZExvY2smIEV4ZWN1dGFibGVBbGxvY2F0b3I6OmdldExvY2soKSBjb25z
dAogewogICAgIEZpeGVkVk1Qb29sRXhlY3V0YWJsZUFsbG9jYXRvciogYWxsb2NhdG9yID0gZ19q
c2NDb25maWcuZml4ZWRWTVBvb2xFeGVjdXRhYmxlQWxsb2NhdG9yOwogICAgIGlmICghYWxsb2Nh
dG9yKQpAQCAtMTAzOCw3ICsxMDM4LDcgQEAgdm9pZCBkdW1wSklUTWVtb3J5KGNvbnN0IHZvaWQq
IGRzdCwgY29uc3Qgdm9pZCogc3JjLCBzaXplX3Qgc2l6ZSkKICAgICBzdGF0aWMgdWludDhfdCog
YnVmZmVyOwogICAgIHN0YXRpYyBjb25zdGV4cHIgc2l6ZV90IGJ1ZmZlclNpemUgPSBmaXhlZEV4
ZWN1dGFibGVNZW1vcnlQb29sU2l6ZTsKICAgICBzdGF0aWMgc2l6ZV90IG9mZnNldCA9IDA7Ci0g
ICAgc3RhdGljIExvY2sgZHVtcEpJVE1lbW9yeUxvY2s7CisgICAgc3RhdGljIFVuY2hlY2tlZExv
Y2sgZHVtcEpJVE1lbW9yeUxvY2s7CiAgICAgc3RhdGljIGJvb2wgbmVlZHNUb0ZsdXNoID0gZmFs
c2U7CiAgICAgc3RhdGljIGF1dG8gZmx1c2ggPSBbXShjb25zdCBBYnN0cmFjdExvY2tlciYpIHsK
ICAgICAgICAgaWYgKGZkID09IC0xKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0V4ZWN1dGFibGVBbGxvY2F0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
RXhlY3V0YWJsZUFsbG9jYXRvci5oCmluZGV4IDRmZmM0ODBlNDI0MDRkYzY2YjVlMjUxNDU3NzJi
YmNiMDlkNWYzNjguLjAzNzk5ZTQyN2IwOTdkNjRmZDk4Y2I4Zjk1YTY4YTkyNTE2ZjhhNTcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvRXhlY3V0YWJsZUFsbG9jYXRvci5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvRXhlY3V0YWJsZUFsbG9jYXRvci5oCkBA
IC03Nyw3ICs3Nyw3IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBzaXplX3QgY29tbWl0dGVkQnl0
ZUNvdW50KCkgeyByZXR1cm4gMDsgfQogCi0gICAgTG9jayYgZ2V0TG9jaygpIGNvbnN0CisgICAg
VW5jaGVja2VkTG9jayYgZ2V0TG9jaygpIGNvbnN0CiAgICAgewogICAgICAgICByZXR1cm4gbV9s
b2NrOwogICAgIH0KQEAgLTg3LDcgKzg3LDcgQEAgcHJvdGVjdGVkOgogICAgIH5FeGVjdXRhYmxl
QWxsb2NhdG9yQmFzZSgpID0gZGVmYXVsdDsKIAogcHJpdmF0ZToKLSAgICBtdXRhYmxlIExvY2sg
bV9sb2NrOworICAgIG11dGFibGUgVW5jaGVja2VkTG9jayBtX2xvY2s7CiB9OwogCiAjaWYgRU5B
QkxFKEpJVCkKQEAgLTE3Niw3ICsxNzYsNyBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgc2l6ZV90
IGNvbW1pdHRlZEJ5dGVDb3VudCgpOwogCi0gICAgTG9jayYgZ2V0TG9jaygpIGNvbnN0OworICAg
IFVuY2hlY2tlZExvY2smIGdldExvY2soKSBjb25zdDsKIAogI2lmIEVOQUJMRShKVU1QX0lTTEFO
RFMpCiAgICAgSlNfRVhQT1JUX1BSSVZBVEUgdm9pZCogZ2V0SnVtcElzbGFuZFRvKHZvaWQqIGZy
b20sIHZvaWQqIG5ld0Rlc3RpbmF0aW9uKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklUV29ya2xpc3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRX
b3JrbGlzdC5jcHAKaW5kZXggYTcwNTJlNzlmMGE3NDM2N2ZlM2ZkYzVhM2NmNmQ1MzhlNjkzMjAw
ZS4uYTk2ODk3NGJkNmE5ODIzYjkwYWFkYzQ0YTQxNGE1MzdhOTAzY2Y3YSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRXb3JrbGlzdC5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9KSVRXb3JrbGlzdC5jcHAKQEAgLTE2NSw3ICsxNjUsNyBAQCBwcml2
YXRlOgogfTsKIAogSklUV29ya2xpc3Q6OkpJVFdvcmtsaXN0KCkKLSAgICA6IG1fbG9jayhCb3g8
TG9jaz46OmNyZWF0ZSgpKQorICAgIDogbV9sb2NrKEJveDxVbmNoZWNrZWRMb2NrPjo6Y3JlYXRl
KCkpCiAgICAgLCBtX2NvbmRpdGlvbihBdXRvbWF0aWNUaHJlYWRDb25kaXRpb246OmNyZWF0ZSgp
KQogewogICAgIExvY2tlciBsb2NrZXIgeyAqbV9sb2NrIH07CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0pJVFdvcmtsaXN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0pJVFdvcmtsaXN0LmgKaW5kZXggYjlmNzdjYTFiM2RkZWZhNjE0OGIxMzY5NDJkNTdhMDlk
NjVlYTdhMy4uYTcyYTgzODcwYTAwODJmY2QzNDQ5NTI5MGVhNTBlYTE0MGQ4OWYyZiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRXb3JrbGlzdC5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUV29ya2xpc3QuaApAQCAtNzEsNyArNzEsNyBAQCBwcml2
YXRlOgogICAgIFBsYW5zIG1fcGxhbnM7CiAgICAgSGFzaFNldDxDb2RlQmxvY2sqPiBtX3BsYW5u
ZWQ7CiAgICAgCi0gICAgQm94PExvY2s+IG1fbG9jazsKKyAgICBCb3g8VW5jaGVja2VkTG9jaz4g
bV9sb2NrOwogICAgIFJlZjxBdXRvbWF0aWNUaHJlYWRDb25kaXRpb24+IG1fY29uZGl0aW9uOyAv
LyBXZSB1c2UgT25lIFRydWUgQ29uZGl0aW9uIGZvciBldmVyeXRoaW5nIGJlY2F1c2UgdGhhdCdz
IGVhc2llci4KICAgICBSZWZQdHI8QXV0b21hdGljVGhyZWFkPiBtX3RocmVhZDsKICAgICAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2pzYy5jcHAKaW5kZXggZDNhMjgxMTI3MDgwNTgxZjBlZDE1YjRmMzg1ODg1NTBjZjNl
ZTZlZS4uYWQxNTVlNmU4MjdjYzBkM2NhZjdjNTcyNjVmMGRiYzMyNTFiNTYxZSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2pzYy5jcHAKQEAgLTI1Nyw4ICsyNTcsOCBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIGZy
aWVuZCBjbGFzcyBXb3JrZXI7CiAgICAgCi0gICAgTG9jayBtX2xvY2s7Ci0gICAgQ29uZGl0aW9u
IG1fY29uZGl0aW9uOworICAgIFVuY2hlY2tlZExvY2sgbV9sb2NrOworICAgIFVuY2hlY2tlZENv
bmRpdGlvbiBtX2NvbmRpdGlvbjsKICAgICBTZW50aW5lbExpbmtlZExpc3Q8V29ya2VyLCBCYXNp
Y1Jhd1NlbnRpbmVsTm9kZTxXb3JrZXI+PiBtX3dvcmtlcnM7CiAgICAgRGVxdWU8U3RyaW5nPiBt
X3JlcG9ydHM7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVy
L1Byb2ZpbGVyRGF0YWJhc2UuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9m
aWxlckRhdGFiYXNlLmgKaW5kZXggYWU3ODVlNGUzZGNiN2MzZTA4MDI4N2JiNDU5OTdhMTMyYzI4
NWRkMy4uMmE4NzhjOTQ2YjY1MzQwZTc5MTM5YmUyMjM3NWM1MDYxNmE5YjJlMiAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVyRGF0YWJhc2UuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZXJEYXRhYmFzZS5oCkBAIC04
OCw3ICs4OCw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX3Nob3VsZFNhdmVBdEV4aXQ7CiAgICAg
Q1N0cmluZyBtX2F0RXhpdFNhdmVGaWxlbmFtZTsKICAgICBEYXRhYmFzZSogbV9uZXh0UmVnaXN0
ZXJlZERhdGFiYXNlOwotICAgIExvY2sgbV9sb2NrOworICAgIFVuY2hlY2tlZExvY2sgbV9sb2Nr
OwogfTsKIAogfSB9IC8vIG5hbWVzcGFjZSBKU0M6OlByb2ZpbGVyCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db25jdXJyZW50SlNMb2NrLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9Db25jdXJyZW50SlNMb2NrLmgKaW5kZXggYWEyNzNiYWRiZWZh
NzM3YTBlYWE1MzRmYmViYTlmNTAxZmRiODYyNy4uODYzMTE3ZDg5MTVjNDNlNGE2NzcyMDgyYjli
YzU1YjM5YTJkMWNhMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
Q29uY3VycmVudEpTTG9jay5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Nv
bmN1cnJlbnRKU0xvY2suaApAQCAtMzIsOCArMzIsOCBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAot
dXNpbmcgQ29uY3VycmVudEpTTG9jayA9IExvY2s7Ci11c2luZyBDb25jdXJyZW50SlNMb2NrZXJJ
bXBsID0gTG9ja0hvbGRlcjsKK3VzaW5nIENvbmN1cnJlbnRKU0xvY2sgPSBVbmNoZWNrZWRMb2Nr
OwordXNpbmcgQ29uY3VycmVudEpTTG9ja2VySW1wbCA9IFVuY2hlY2tlZExvY2tIb2xkZXI7CiAK
IHN0YXRpY19hc3NlcnQoc2l6ZW9mKENvbmN1cnJlbnRKU0xvY2spID09IDEsICJSZWdhcmRsZXNz
IG9mIHN0YXR1cyBvZiBjb25jdXJyZW50IEpTIGZsYWcsIHNpemUgb2YgQ29udXJyZW50SlNMb2Nr
IGlzIGFsd2F5cyBvbmUgYnl0ZS4iKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvRGVmZXJyZWRXb3JrVGltZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0RlZmVycmVkV29ya1RpbWVyLmgKaW5kZXggNmM5OGNhYWY1ODFiMWNmYzAxYWExOTEx
NzE0YjNkYjI3YmRmMDIxNy4uZWYwZWFjNzMwYjQyMmY3MGMyMGE2OGI1YzllOTY0ODY4NzZhMDEz
ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGVmZXJyZWRXb3Jr
VGltZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EZWZlcnJlZFdvcmtU
aW1lci5oCkBAIC03Miw3ICs3Miw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgRGVmZXJyZWRX
b3JrVGltZXIoVk0mKTsKIAotICAgIExvY2sgbV90YXNrTG9jazsKKyAgICBVbmNoZWNrZWRMb2Nr
IG1fdGFza0xvY2s7CiAgICAgYm9vbCBtX3J1blRhc2tzIHsgdHJ1ZSB9OwogICAgIGJvb2wgbV9z
aG91bGRTdG9wUnVuTG9vcFdoZW5BbGxUaWNrZXRzRmluaXNoIHsgZmFsc2UgfTsKICAgICBib29s
IG1fY3VycmVudGx5UnVubmluZ1Rhc2sgeyBmYWxzZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNMb2NrLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0xvY2suaAppbmRleCAyZTAyYmEzZDY0MDVlZTcyZGQ0YWRlMGJhNjdjYjk1OGYxYTY0
NjBiLi5hOTkxZGY1MGIxYzM3MjI2ZTVmMTI5OTBlNDBiNjdiMTBiMTk5YzI5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0xvY2suaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0xvY2suaApAQCAtMTM4LDcgKzEzOCw3IEBAIHByaXZhdGU6
CiAgICAgdW5zaWduZWQgZHJvcEFsbExvY2tzKERyb3BBbGxMb2NrcyopOwogICAgIHZvaWQgZ3Jh
YkFsbExvY2tzKERyb3BBbGxMb2NrcyosIHVuc2lnbmVkIGxvY2tDb3VudCk7CiAKLSAgICBMb2Nr
IG1fbG9jazsKKyAgICBVbmNoZWNrZWRMb2NrIG1fbG9jazsKICAgICBib29sIG1faXNXZWJUaHJl
YWRBd2FyZSB7IGZhbHNlIH07CiAgICAgLy8gV2UgY2Fubm90IG1ha2UgbV9vd25lclRocmVhZCBh
biBvcHRpb25hbCAoaW5zdGVhZCBvZiBwYWlyaW5nIGl0IHdpdGggYW4gZXhwbGljaXQKICAgICAv
LyBtX2hhc093bmVyVGhyZWFkKSBiZWNhdXNlIGN1cnJlbnRUaHJlYWRJc0hvbGRpbmdMb2NrKCkg
bWF5IGJlIGNhbGxlZCBmcm9tIGEKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1NhbXBsaW5nUHJvZmlsZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvU2FtcGxpbmdQcm9maWxlci5jcHAKaW5kZXggZDcxZjNlYzE5ZmYzNjc0Njc3MDdmZTUyYjg4
MDI0YzU2MjdhMTRhZC4uZTUzMTEyZDE4OGY3Y2NiOTBkMGFlNzg0MTQyNTAxZDI0NWM1ZTgzNSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2FtcGxpbmdQcm9maWxl
ci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2FtcGxpbmdQcm9maWxl
ci5jcHAKQEAgLTc1LDcgKzc1LDcgQEAgQUxXQVlTX0lOTElORSBzdGF0aWMgdm9pZCByZXBvcnRT
dGF0cygpCiAKIGNsYXNzIEZyYW1lV2Fsa2VyIHsKIHB1YmxpYzoKLSAgICBGcmFtZVdhbGtlcihW
TSYgdm0sIENhbGxGcmFtZSogY2FsbEZyYW1lLCBjb25zdCBBYnN0cmFjdExvY2tlciYgY29kZUJs
b2NrU2V0TG9ja2VyLCBjb25zdCBBYnN0cmFjdExvY2tlciYgbWFjaGluZVRocmVhZHNMb2NrZXIs
IGNvbnN0IE9wdGlvbmFsPExvY2tIb2xkZXI+JiB3YXNtQ2FsbGVlTG9ja2VyKQorICAgIEZyYW1l
V2Fsa2VyKFZNJiB2bSwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIGNvbnN0IEFic3RyYWN0TG9ja2Vy
JiBjb2RlQmxvY2tTZXRMb2NrZXIsIGNvbnN0IEFic3RyYWN0TG9ja2VyJiBtYWNoaW5lVGhyZWFk
c0xvY2tlciwgY29uc3QgT3B0aW9uYWw8VW5jaGVja2VkTG9ja0hvbGRlcj4mIHdhc21DYWxsZWVM
b2NrZXIpCiAgICAgICAgIDogbV92bSh2bSkKICAgICAgICAgLCBtX2NhbGxGcmFtZShjYWxsRnJh
bWUpCiAgICAgICAgICwgbV9lbnRyeUZyYW1lKHZtLnRvcEVudHJ5RnJhbWUpCkBAIC0yMDEsNyAr
MjAxLDcgQEAgcHJvdGVjdGVkOgogICAgIEVudHJ5RnJhbWUqIG1fZW50cnlGcmFtZTsKICAgICBj
b25zdCBBYnN0cmFjdExvY2tlciYgbV9jb2RlQmxvY2tTZXRMb2NrZXI7CiAgICAgY29uc3QgQWJz
dHJhY3RMb2NrZXImIG1fbWFjaGluZVRocmVhZHNMb2NrZXI7Ci0gICAgY29uc3QgT3B0aW9uYWw8
TG9ja0hvbGRlcj4mIG1fd2FzbUNhbGxlZUxvY2tlcjsKKyAgICBjb25zdCBPcHRpb25hbDxVbmNo
ZWNrZWRMb2NrSG9sZGVyPiYgbV93YXNtQ2FsbGVlTG9ja2VyOwogICAgIGJvb2wgbV9iYWlsaW5n
T3V0IHsgZmFsc2UgfTsKICAgICBzaXplX3QgbV9kZXB0aCB7IDAgfTsKIH07CkBAIC0yMTAsNyAr
MjEwLDcgQEAgY2xhc3MgQ0ZyYW1lV2Fsa2VyIDogcHVibGljIEZyYW1lV2Fsa2VyIHsKIHB1Ymxp
YzoKICAgICB0eXBlZGVmIEZyYW1lV2Fsa2VyIEJhc2U7CiAKLSAgICBDRnJhbWVXYWxrZXIoVk0m
IHZtLCB2b2lkKiBtYWNoaW5lRnJhbWUsIENhbGxGcmFtZSogY2FsbEZyYW1lLCBjb25zdCBBYnN0
cmFjdExvY2tlciYgY29kZUJsb2NrU2V0TG9ja2VyLCBjb25zdCBBYnN0cmFjdExvY2tlciYgbWFj
aGluZVRocmVhZHNMb2NrZXIsIGNvbnN0IE9wdGlvbmFsPExvY2tIb2xkZXI+JiB3YXNtQ2FsbGVl
TG9ja2VyKQorICAgIENGcmFtZVdhbGtlcihWTSYgdm0sIHZvaWQqIG1hY2hpbmVGcmFtZSwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUsIGNvbnN0IEFic3RyYWN0TG9ja2VyJiBjb2RlQmxvY2tTZXRMb2Nr
ZXIsIGNvbnN0IEFic3RyYWN0TG9ja2VyJiBtYWNoaW5lVGhyZWFkc0xvY2tlciwgY29uc3QgT3B0
aW9uYWw8VW5jaGVja2VkTG9ja0hvbGRlcj4mIHdhc21DYWxsZWVMb2NrZXIpCiAgICAgICAgIDog
QmFzZSh2bSwgY2FsbEZyYW1lLCBjb2RlQmxvY2tTZXRMb2NrZXIsIG1hY2hpbmVUaHJlYWRzTG9j
a2VyLCB3YXNtQ2FsbGVlTG9ja2VyKQogICAgICAgICAsIG1fbWFjaGluZUZyYW1lKG1hY2hpbmVG
cmFtZSkKICAgICB7CkBAIC0zNTMsNyArMzUzLDcgQEAgdm9pZCBTYW1wbGluZ1Byb2ZpbGVyOjp0
YWtlU2FtcGxlKGNvbnN0IEFic3RyYWN0TG9ja2VyJiwgU2Vjb25kcyYgc3RhY2tUcmFjZVByb2MK
ICAgICAgICAgTG9ja2VyIG1hY2hpbmVUaHJlYWRzTG9ja2VyIHsgbV92bS5oZWFwLm1hY2hpbmVU
aHJlYWRzKCkuZ2V0TG9jaygpIH07CiAgICAgICAgIExvY2tlciBjb2RlQmxvY2tTZXRMb2NrZXIg
eyBtX3ZtLmhlYXAuY29kZUJsb2NrU2V0KCkuZ2V0TG9jaygpIH07CiAgICAgICAgIExvY2tlciBl
eGVjdXRhYmxlQWxsb2NhdG9yTG9ja2VyIHsgRXhlY3V0YWJsZUFsbG9jYXRvcjo6c2luZ2xldG9u
KCkuZ2V0TG9jaygpIH07Ci0gICAgICAgIE9wdGlvbmFsPExvY2tIb2xkZXI+IHdhc21DYWxsZWVz
TG9ja2VyOworICAgICAgICBPcHRpb25hbDxVbmNoZWNrZWRMb2NrSG9sZGVyPiB3YXNtQ2FsbGVl
c0xvY2tlcjsKICNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCiAgICAgICAgIGlmIChXYXNtOjppc1N1
cHBvcnRlZCgpKQogICAgICAgICAgICAgd2FzbUNhbGxlZXNMb2NrZXIgPSBMb2NrZXIgeyBXYXNt
OjpDYWxsZWVSZWdpc3RyeTo6c2luZ2xldG9uKCkuZ2V0TG9jaygpIH07CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TYW1wbGluZ1Byb2ZpbGVyLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9TYW1wbGluZ1Byb2ZpbGVyLmgKaW5kZXggNjUxNzA3YTk0
NmYxNjFkZWE2Zjk4OGFiNWRkZTQ4YjMyYzc1YzdlZC4uOWYwNTcyNmE0ZTgwNGZjYjM1MzczNmEy
ZWQxZDY0MGI3NjRjOTRkYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvU2FtcGxpbmdQcm9maWxlci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1NhbXBsaW5nUHJvZmlsZXIuaApAQCAtMTcyLDcgKzE3Miw3IEBAIHB1YmxpYzoKICAgICB2b2lk
IG5vdGljZVZNRW50cnkoKTsKICAgICB2b2lkIHNodXRkb3duKCk7CiAgICAgdGVtcGxhdGU8dHlw
ZW5hbWUgVmlzaXRvcj4gdm9pZCB2aXNpdChWaXNpdG9yJik7Ci0gICAgTG9jayYgZ2V0TG9jaygp
IHsgcmV0dXJuIG1fbG9jazsgfQorICAgIFVuY2hlY2tlZExvY2smIGdldExvY2soKSB7IHJldHVy
biBtX2xvY2s7IH0KICAgICB2b2lkIHNldFRpbWluZ0ludGVydmFsKFNlY29uZHMgaW50ZXJ2YWwp
IHsgbV90aW1pbmdJbnRlcnZhbCA9IGludGVydmFsOyB9CiAgICAgSlNfRVhQT1JUX1BSSVZBVEUg
dm9pZCBzdGFydCgpOwogICAgIHZvaWQgc3RhcnQoY29uc3QgQWJzdHJhY3RMb2NrZXImKTsKQEAg
LTIwMCw3ICsyMDAsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgdGltZXJMb29wKCk7CiAgICAgdm9p
ZCB0YWtlU2FtcGxlKGNvbnN0IEFic3RyYWN0TG9ja2VyJiwgU2Vjb25kcyYgc3RhY2tUcmFjZVBy
b2Nlc3NpbmdUaW1lKTsKIAotICAgIExvY2sgbV9sb2NrOworICAgIFVuY2hlY2tlZExvY2sgbV9s
b2NrOwogICAgIGJvb2wgbV9pc1BhdXNlZDsKICAgICBib29sIG1faXNTaHV0RG93bjsKICAgICBi
b29sIG1fbmVlZHNSZXBvcnRBdEV4aXQgeyBmYWxzZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1ZNLmgKaW5kZXggZjhlOGQzZjU0N2U0ZmRlNjEzNGMzOGE4NjJkMmYyNWQ2MmEzMzFlMi4uYTFh
YjIyMzIxNjk4ZTU3MDAyOTk0NzM1MTRiZmEwNDFmODhkY2M1NCAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9WTS5oCkBAIC0xMDA0LDcgKzEwMDQsNyBAQCBwdWJsaWM6CiAjaWYgRU5BQkxFKFlB
UlJfSklUX0FMTF9QQVJFTlNfRVhQUkVTU0lPTlMpCiAgICAgc3RhdGljIGNvbnN0ZXhwciBzaXpl
X3QgcGF0dGVybkNvbnRleHRCdWZmZXJTaXplID0gODE5MjsgLy8gU3BhY2UgYWxsb2NhdGVkIHRv
IHNhdmUgbmVzdGVkIHBhcmVudGhlc2lzIGNvbnRleHQKICAgICBVbmlxdWVBcnJheTxjaGFyPiBt
X3JlZ0V4cFBhdHRlcm5Db250ZXhCdWZmZXI7Ci0gICAgTG9jayBtX3JlZ0V4cFBhdHRlcm5Db250
ZXh0TG9jazsKKyAgICBVbmNoZWNrZWRMb2NrIG1fcmVnRXhwUGF0dGVybkNvbnRleHRMb2NrOwog
ICAgIGNoYXIqIGFjcXVpcmVSZWdFeHBQYXR0ZXJuQ29udGV4QnVmZmVyKCk7CiAgICAgdm9pZCBy
ZWxlYXNlUmVnRXhwUGF0dGVybkNvbnRleEJ1ZmZlcigpOwogI2Vsc2UKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNVHJhcHMuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvVk1UcmFwcy5jcHAKaW5kZXggOWI0NDA2YjExNTYzZGFmNTczOWViMzM4
YWY4MjU5YTVlMThhNDE1OS4uNTdkYjMxOWNlY2ZiNzM3MTk3ZTI2ZDljZGQyZGI3YTU4YmIwOGM2
NyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk1UcmFwcy5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk1UcmFwcy5jcHAKQEAgLTE2Myw3
ICsxNjMsNyBAQCB2b2lkIFZNVHJhcHM6OmludmFsaWRhdGVDb2RlQmxvY2tzT25TdGFjayhDYWxs
RnJhbWUqIHRvcENhbGxGcmFtZSkKICAgICBpbnZhbGlkYXRlQ29kZUJsb2Nrc09uU3RhY2soY29k
ZUJsb2NrU2V0TG9ja2VyLCB0b3BDYWxsRnJhbWUpOwogfQogICAgIAotdm9pZCBWTVRyYXBzOjpp
bnZhbGlkYXRlQ29kZUJsb2Nrc09uU3RhY2soTG9ja2VyPExvY2s+JiwgQ2FsbEZyYW1lKiB0b3BD
YWxsRnJhbWUpCit2b2lkIFZNVHJhcHM6OmludmFsaWRhdGVDb2RlQmxvY2tzT25TdGFjayhMb2Nr
ZXI8VW5jaGVja2VkTG9jaz4mLCBDYWxsRnJhbWUqIHRvcENhbGxGcmFtZSkKIHsKICAgICBpZiAo
IW1fbmVlZFRvSW52YWxpZGF0ZWRDb2RlQmxvY2tzKQogICAgICAgICByZXR1cm47CkBAIC00Mzcs
NyArNDM3LDcgQEAgdm9pZCBWTVRyYXBzOjp1bmRvRGVmZXJUZXJtaW5hdGlvblNsb3coRGVmZXJB
Y3Rpb24gZGVmZXJBY3Rpb24pCiB9CiAKIFZNVHJhcHM6OlZNVHJhcHMoKQotICAgIDogbV9sb2Nr
KEJveDxMb2NrPjo6Y3JlYXRlKCkpCisgICAgOiBtX2xvY2soQm94PFVuY2hlY2tlZExvY2s+Ojpj
cmVhdGUoKSkKICAgICAsIG1fY29uZGl0aW9uKEF1dG9tYXRpY1RocmVhZENvbmRpdGlvbjo6Y3Jl
YXRlKCkpCiB7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9W
TVRyYXBzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTVRyYXBzLmgKaW5kZXgg
MGFmNTliYzk1YzE2ZjkyZDM0ZTU0YTYyMmIyNDJiODdjNTg0ZmQ2NS4uNWQxNWM5MmY3MDQxNzUx
ZDgwNGU0YzU3MmE1NTMwMTA3YmZlNDJkYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvVk1UcmFwcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1ZNVHJhcHMuaApAQCAtMjM2LDcgKzIzNiw3IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIGludmFs
aWRhdGVDb2RlQmxvY2tzT25TdGFjaygpOwogICAgIHZvaWQgaW52YWxpZGF0ZUNvZGVCbG9ja3NP
blN0YWNrKENhbGxGcmFtZSogdG9wQ2FsbEZyYW1lKTsKLSAgICB2b2lkIGludmFsaWRhdGVDb2Rl
QmxvY2tzT25TdGFjayhMb2NrZXI8TG9jaz4mIGNvZGVCbG9ja1NldExvY2tlciwgQ2FsbEZyYW1l
KiB0b3BDYWxsRnJhbWUpOworICAgIHZvaWQgaW52YWxpZGF0ZUNvZGVCbG9ja3NPblN0YWNrKExv
Y2tlcjxVbmNoZWNrZWRMb2NrPiYgY29kZUJsb2NrU2V0TG9ja2VyLCBDYWxsRnJhbWUqIHRvcENh
bGxGcmFtZSk7CiAKICAgICB2b2lkIGFkZFNpZ25hbFNlbmRlcihTaWduYWxTZW5kZXIqKTsKICAg
ICB2b2lkIHJlbW92ZVNpZ25hbFNlbmRlcihTaWduYWxTZW5kZXIqKTsKQEAgLTI0Nyw3ICsyNDcs
NyBAQCBwcml2YXRlOgogCiAgICAgc3RhdGljIGNvbnN0ZXhwciBCaXRGaWVsZCBOZWVkRXhjZXB0
aW9uSGFuZGxpbmdNYXNrID0gfigxIDw8IE5lZWRFeGNlcHRpb25IYW5kbGluZyk7CiAKLSAgICBC
b3g8TG9jaz4gbV9sb2NrOworICAgIEJveDxVbmNoZWNrZWRMb2NrPiBtX2xvY2s7CiAgICAgUmVm
PEF1dG9tYXRpY1RocmVhZENvbmRpdGlvbj4gbV9jb25kaXRpb247CiAgICAgQXRvbWljPEJpdEZp
ZWxkPiBtX3RyYXBCaXRzIHsgMCB9OwogICAgIGJvb2wgbV9uZWVkVG9JbnZhbGlkYXRlZENvZGVC
bG9ja3MgeyBmYWxzZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xz
L0Z1bmN0aW9uT3ZlcnJpZGVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdG9vbHMvRnVuY3Rp
b25PdmVycmlkZXMuaAppbmRleCA4ODI5NjcwMDczZGRmOWQ2ZDQ5Y2VlZjIwOGI2MzhjNzEzZjRl
ZDY5Li43NmE4MTNkNDhiM2Q0NTM1ODhkNTQzYWY4MzYwMzMxYzk4MmJmNDQwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdG9vbHMvRnVuY3Rpb25PdmVycmlkZXMuaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvdG9vbHMvRnVuY3Rpb25PdmVycmlkZXMuaApAQCAtNjEsNyAr
NjEsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgY2xlYXIoY29uc3QgQWJzdHJhY3RMb2NrZXImKSB7
IG1fZW50cmllcy5jbGVhcigpOyB9CiAKICAgICBIYXNoTWFwPFN0cmluZywgU3RyaW5nPiBtX2Vu
dHJpZXM7Ci0gICAgTG9jayBtX2xvY2s7CisgICAgVW5jaGVja2VkTG9jayBtX2xvY2s7CiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90
b29scy9WTUluc3BlY3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdG9vbHMvVk1JbnNw
ZWN0b3IuY3BwCmluZGV4IGU0OWRhZTFlMWJjOWRkNzBjOWViMjAyZDg3NzA5ZmNjNmNhNjcwOTAu
LjFmZjcyZDQ2ZDk2NDM5NDRhNzk0YmE0M2Y0YjYwYjhiMTE0NDhhODcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS90b29scy9WTUluc3BlY3Rvci5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3Rvb2xzL1ZNSW5zcGVjdG9yLmNwcApAQCAtODksNyArODksNyBAQCBhdXRv
IFZNSW5zcGVjdG9yOjpsb2NrKFNlY29uZHMgdGltZW91dCkgLT4gRXhwZWN0ZWQ8TG9ja2VyLCBF
cnJvcj4KIH0KIAogI2lmIEVOQUJMRShKSVQpCi1zdGF0aWMgYm9vbCBlbnN1cmVJc1NhZmVUb0xv
Y2soTG9jayYgbG9jaykKK3N0YXRpYyBib29sIGVuc3VyZUlzU2FmZVRvTG9jayhVbmNoZWNrZWRM
b2NrJiBsb2NrKQogewogICAgIHVuc2lnbmVkIG1heFJldHJpZXMgPSAyOwogICAgIHVuc2lnbmVk
IHRyeUNvdW50ID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90b29scy9W
TUluc3BlY3Rvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xzL1ZNSW5zcGVjdG9yLmgK
aW5kZXggODQ1NjMxYzY0ODE2OWQ3YTU1MWNlYjc4ZDRlYWUwM2I1NTY1ODljYS4uZGY0OTBkZTI4
NjJhYTE3OTlmZGY0Mzc3N2VkZTFkZWZhZGEwMTlkNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3Rvb2xzL1ZNSW5zcGVjdG9yLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3Rvb2xzL1ZNSW5zcGVjdG9yLmgKQEAgLTQzLDE0ICs0MywxNCBAQCBwdWJsaWM6CiAgICAgICAg
IFRpbWVkT3V0CiAgICAgfTsKIAotICAgIHR5cGVkZWYgV1RGOjpMb2NrZXI8TG9jaz4gTG9ja2Vy
OworICAgIHR5cGVkZWYgV1RGOjpMb2NrZXI8VW5jaGVja2VkTG9jaz4gTG9ja2VyOwogCiAgICAg
c3RhdGljIFZNSW5zcGVjdG9yJiBpbnN0YW5jZSgpOwogCiAgICAgdm9pZCBhZGQoVk0qKTsKICAg
ICB2b2lkIHJlbW92ZShWTSopOwogCi0gICAgTG9jayYgZ2V0TG9jaygpIHsgcmV0dXJuIG1fbG9j
azsgfQorICAgIFVuY2hlY2tlZExvY2smIGdldExvY2soKSB7IHJldHVybiBtX2xvY2s7IH0KIAog
ICAgIGVudW0gY2xhc3MgRnVuY3RvclN0YXR1cyB7CiAgICAgICAgIENvbnRpbnVlLApAQCAtMTAz
LDcgKzEwMyw3IEBAIHByaXZhdGU6CiAgICAgICAgIH0KICAgICB9CiAKLSAgICBMb2NrIG1fbG9j
azsKKyAgICBVbmNoZWNrZWRMb2NrIG1fbG9jazsKICAgICBEb3VibHlMaW5rZWRMaXN0PFZNPiBt
X3ZtTGlzdDsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dh
c21DYWxsZWVSZWdpc3RyeS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUNhbGxl
ZVJlZ2lzdHJ5LmgKaW5kZXggMTIxMzQxMWI3ZmMxMDY0YTk4MmM3NThiM2UwMzI4YTg0MTQ3OGU3
My4uZGM5MjJjZjNlYTg3MTcwMmNhNTIyYzIzMmY1NjJmMTc2NjExMzhkOSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUNhbGxlZVJlZ2lzdHJ5LmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUNhbGxlZVJlZ2lzdHJ5LmgKQEAgLTQxLDcgKzQx
LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyB2b2lkIGluaXRpYWxpemUoKTsKICAgICBzdGF0aWMg
Q2FsbGVlUmVnaXN0cnkmIHNpbmdsZXRvbigpOwogCi0gICAgTG9jayYgZ2V0TG9jaygpIHsgcmV0
dXJuIG1fbG9jazsgfQorICAgIFVuY2hlY2tlZExvY2smIGdldExvY2soKSB7IHJldHVybiBtX2xv
Y2s7IH0KIAogICAgIHZvaWQgcmVnaXN0ZXJDYWxsZWUoQ2FsbGVlKiBjYWxsZWUpCiAgICAgewpA
QCAtNzAsNyArNzAsNyBAQCBwdWJsaWM6CiAgICAgQ2FsbGVlUmVnaXN0cnkoKSA9IGRlZmF1bHQ7
CiAKIHByaXZhdGU6Ci0gICAgTG9jayBtX2xvY2s7CisgICAgVW5jaGVja2VkTG9jayBtX2xvY2s7
CiAgICAgSGFzaFNldDxDYWxsZWUqPiBtX2NhbGxlZVNldDsKIH07CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21QbGFuLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9XYXNtUGxhbi5oCmluZGV4IGFiOTRmOWU4OTAzODk2ZmQzMTE2YzYyNjkyYWQ3NmRk
Yzk0ZjVkNjEuLmM4MWYzYTZjOWY1ODZiOTFjMTdiNTk2NDc1MDE4ZWNjYTIzZmFkMWUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21QbGFuLmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVBsYW4uaApAQCAtOTQsOCArOTQsOCBAQCBwcm90ZWN0
ZWQ6CiAKICAgICBTdHJpbmcgbV9lcnJvck1lc3NhZ2U7CiAgICAgTWVtb3J5TW9kZSBtX21vZGUg
eyBNZW1vcnlNb2RlOjpCb3VuZHNDaGVja2luZyB9OwotICAgIExvY2sgbV9sb2NrOwotICAgIENv
bmRpdGlvbiBtX2NvbXBsZXRlZDsKKyAgICBVbmNoZWNrZWRMb2NrIG1fbG9jazsKKyAgICBVbmNo
ZWNrZWRDb25kaXRpb24gbV9jb21wbGV0ZWQ7CiB9OwogCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL1dhc21TdHJlYW1pbmdDb21waWxlci5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3dhc20vV2FzbVN0cmVhbWluZ0NvbXBpbGVyLmgKaW5kZXggODZhMTBkYzQ0NWI5
NGZmOTIzYjY2Y2JkNjFhNzExNjBlNzM2NmNlNS4uOTU3Zjc1ZmZmZmYwYzBmM2JlYTA0NDBkZWZh
OWRjODhlMGEyMzk0YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2Fz
bVN0cmVhbWluZ0NvbXBpbGVyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2Fz
bVN0cmVhbWluZ0NvbXBpbGVyLmgKQEAgLTcwLDcgKzcwLDcgQEAgcHJpdmF0ZToKICAgICBib29s
IG1fZWFnZXJGYWlsZWQgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9maW5hbGl6ZWQgeyBmYWxzZSB9
OwogICAgIGJvb2wgbV90aHJlYWRlZENvbXBpbGF0aW9uU3RhcnRlZCB7IGZhbHNlIH07Ci0gICAg
TG9jayBtX2xvY2s7CisgICAgVW5jaGVja2VkTG9jayBtX2xvY2s7CiAgICAgdW5zaWduZWQgbV9y
ZW1haW5pbmdDb21waWxhdGlvblJlcXVlc3RzIHsgMCB9OwogICAgIEpTUHJvbWlzZSogbV9wcm9t
aXNlOyAvLyBSYXcgcG9pbnRlciwgYnV0IGhlbGQgYnkgRGVmZXJyZWRXb3JrVGltZXIuCiAgICAg
UmVmPFdhc206Ok1vZHVsZUluZm9ybWF0aW9uPiBtX2luZm87CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtVGh1bmtzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d2FzbS9XYXNtVGh1bmtzLmgKaW5kZXggYzIzNWNmZTYyOTVlNjY5YWU1YTgwZWU4ZjI1MmVhNmNh
MjQzMWI4My4uZGU0Y2EzY2NmMGFiZTU0ZGQxMGRlMTgyMjZmNzgxN2MwNDc4MWYzYyAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVRodW5rcy5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21UaHVua3MuaApAQCAtNTUsNyArNTUsNyBAQCBwcml2
YXRlOgogICAgIFRodW5rcygpID0gZGVmYXVsdDsKIAogICAgIEhhc2hNYXA8VGh1bmtHZW5lcmF0
b3IsIE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxKSVRUaHVua1B0clRhZz4+IG1fc3R1YnM7Ci0gICAg
TG9jayBtX2xvY2s7CisgICAgVW5jaGVja2VkTG9jayBtX2xvY2s7CiB9OwogCiB9IH0gLy8gbmFt
ZXNwYWNlIEpTQzo6V2FzbQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20v
V2FzbVdvcmtsaXN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21Xb3JrbGlz
dC5jcHAKaW5kZXggNWJhZDBkOTBhNTYyZTI1ZGRlODE3YjU4MmMwNjA2NjU2YzkwNmViYS4uMzg5
OGVjYWI0YzA4ODdlMjVhMGEzNDgxYjQxMWI4ZjY3YzFlYmMyOSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVdvcmtsaXN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvd2FzbS9XYXNtV29ya2xpc3QuY3BwCkBAIC0xMjgsNyArMTI4LDcgQEAgcHJpdmF0
ZToKICAgICB9CiAKIHB1YmxpYzoKLSAgICBDb25kaXRpb24gc3luY2hyb25pemU7CisgICAgVW5j
aGVja2VkQ29uZGl0aW9uIHN5bmNocm9uaXplOwogICAgIFdvcmtsaXN0JiB3b3JrbGlzdDsKICAg
ICAvLyBXZSBjYW4gb25seSBtb2RpZnkgZWxlbWVudCB3aGVuIGhvbGRpbmcgdGhlIGxvY2suIEEg
c3luY2hyb25vdXMgY29tcGlsZSBtaWdodCBsb29rIGF0IGVhY2ggdGhyZWFkJ3MgdGFza3MgaW4g
b3JkZXIgdG8gYm9vc3QgdGhlIHByaW9yaXR5LgogICAgIFF1ZXVlRWxlbWVudCBlbGVtZW50OwpA
QCAtMjEzLDcgKzIxMyw3IEBAIHZvaWQgV29ya2xpc3Q6OnN0b3BBbGxQbGFuc0ZvckNvbnRleHQo
Q29udGV4dCYgY29udGV4dCkKIH0KIAogV29ya2xpc3Q6OldvcmtsaXN0KCkKLSAgICA6IG1fbG9j
ayhCb3g8TG9jaz46OmNyZWF0ZSgpKQorICAgIDogbV9sb2NrKEJveDxVbmNoZWNrZWRMb2NrPjo6
Y3JlYXRlKCkpCiAgICAgLCBtX3BsYW5FbnF1ZXVlZChBdXRvbWF0aWNUaHJlYWRDb25kaXRpb246
OmNyZWF0ZSgpKQogewogICAgIHVuc2lnbmVkIG51bWJlck9mQ29tcGlsYXRpb25UaHJlYWRzID0g
T3B0aW9uczo6dXNlQ29uY3VycmVudEpJVCgpID8ga2VyblRDU01Bd2FyZU51bWJlck9mUHJvY2Vz
c29yQ29yZXMoKSA6IDE7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9X
YXNtV29ya2xpc3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21Xb3JrbGlzdC5o
CmluZGV4IDU2ZDc5YTBlOTg5YTYwMmYyMTMzZDAzMDkwZmRiY2M2MzdjOTU2MzkuLjQ1YTZmYmI2
Y2Y5YTg1M2MyODFmZGJiYWNkNTZmYmVkZDFmYTU5Y2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS93YXNtL1dhc21Xb3JrbGlzdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93YXNtL1dhc21Xb3JrbGlzdC5oCkBAIC04NCw3ICs4NCw3IEBAIHByaXZhdGU6CiAgICAgICAg
IHJldHVybiBsZWZ0LnByaW9yaXR5ID4gcmlnaHQucHJpb3JpdHk7CiAgICAgfQogCi0gICAgQm94
PExvY2s+IG1fbG9jazsKKyAgICBCb3g8VW5jaGVja2VkTG9jaz4gbV9sb2NrOwogICAgIFJlZjxB
dXRvbWF0aWNUaHJlYWRDb25kaXRpb24+IG1fcGxhbkVucXVldWVkOwogICAgIC8vIFRlY2huaWNh
bGx5LCB0aGlzIGNvdWxkIG92ZXJmbG93IGJ1dCB0aGF0J3MgdW5saWtlbHkuIEV2ZW4gaWYgaXQg
ZGlkLCB3ZSB3aWxsIGp1c3QgY29tcGlsZSB0aGluZ3Mgb2YgdGhlIHNhbWUKICAgICAvLyBQcmlv
cml0eSBpdCB0aGUgd3Jvbmcgb3JkZXIsIHdoaWNoIGlzbid0IHdyb25nLCBqdXN0IHN1Ym9wdGlt
YWwuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9BdXRvbWF0aWNUaHJlYWQuY3BwIGIvU291
cmNlL1dURi93dGYvQXV0b21hdGljVGhyZWFkLmNwcAppbmRleCBmNGVhNzhkMTNlMWNkZGI2MTli
ODIyODY4ZDMzYzcyN2M5ZjJmOThiLi4zYzViZTUxM2MyNjNjYThiNGRhNmI3YzI2YzZmODM3Mzlk
YTMxZTBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9BdXRvbWF0aWNUaHJlYWQuY3BwCisr
KyBiL1NvdXJjZS9XVEYvd3RmL0F1dG9tYXRpY1RocmVhZC5jcHAKQEAgLTc3LDEyICs3NywxMiBA
QCB2b2lkIEF1dG9tYXRpY1RocmVhZENvbmRpdGlvbjo6bm90aWZ5QWxsKGNvbnN0IEFic3RyYWN0
TG9ja2VyJiBsb2NrZXIpCiAgICAgfQogfQogCi12b2lkIEF1dG9tYXRpY1RocmVhZENvbmRpdGlv
bjo6d2FpdChMb2NrJiBsb2NrKQordm9pZCBBdXRvbWF0aWNUaHJlYWRDb25kaXRpb246OndhaXQo
VW5jaGVja2VkTG9jayYgbG9jaykKIHsKICAgICBtX2NvbmRpdGlvbi53YWl0KGxvY2spOwogfQog
Ci1ib29sIEF1dG9tYXRpY1RocmVhZENvbmRpdGlvbjo6d2FpdEZvcihMb2NrJiBsb2NrLCBTZWNv
bmRzIHRpbWUpCitib29sIEF1dG9tYXRpY1RocmVhZENvbmRpdGlvbjo6d2FpdEZvcihVbmNoZWNr
ZWRMb2NrJiBsb2NrLCBTZWNvbmRzIHRpbWUpCiB7CiAgICAgcmV0dXJuIG1fY29uZGl0aW9uLndh
aXRGb3IobG9jaywgdGltZSk7CiB9CkBAIC0xMDQsMTIgKzEwNCwxMiBAQCBib29sIEF1dG9tYXRp
Y1RocmVhZENvbmRpdGlvbjo6Y29udGFpbnMoY29uc3QgQWJzdHJhY3RMb2NrZXImLCBBdXRvbWF0
aWNUaHJlYWQqCiAgICAgcmV0dXJuIG1fdGhyZWFkcy5jb250YWlucyh0aHJlYWQpOwogfQogCi1B
dXRvbWF0aWNUaHJlYWQ6OkF1dG9tYXRpY1RocmVhZChjb25zdCBBYnN0cmFjdExvY2tlciYgbG9j
a2VyLCBCb3g8TG9jaz4gbG9jaywgUmVmPEF1dG9tYXRpY1RocmVhZENvbmRpdGlvbj4mJiBjb25k
aXRpb24sIFNlY29uZHMgdGltZW91dCkKK0F1dG9tYXRpY1RocmVhZDo6QXV0b21hdGljVGhyZWFk
KGNvbnN0IEFic3RyYWN0TG9ja2VyJiBsb2NrZXIsIEJveDxVbmNoZWNrZWRMb2NrPiBsb2NrLCBS
ZWY8QXV0b21hdGljVGhyZWFkQ29uZGl0aW9uPiYmIGNvbmRpdGlvbiwgU2Vjb25kcyB0aW1lb3V0
KQogICAgIDogQXV0b21hdGljVGhyZWFkKGxvY2tlciwgbG9jaywgV1RGTW92ZShjb25kaXRpb24p
LCBUaHJlYWRUeXBlOjpVbmtub3duLCB0aW1lb3V0KQogewogfQogCi1BdXRvbWF0aWNUaHJlYWQ6
OkF1dG9tYXRpY1RocmVhZChjb25zdCBBYnN0cmFjdExvY2tlciYgbG9ja2VyLCBCb3g8TG9jaz4g
bG9jaywgUmVmPEF1dG9tYXRpY1RocmVhZENvbmRpdGlvbj4mJiBjb25kaXRpb24sIFRocmVhZFR5
cGUgdHlwZSwgU2Vjb25kcyB0aW1lb3V0KQorQXV0b21hdGljVGhyZWFkOjpBdXRvbWF0aWNUaHJl
YWQoY29uc3QgQWJzdHJhY3RMb2NrZXImIGxvY2tlciwgQm94PFVuY2hlY2tlZExvY2s+IGxvY2ss
IFJlZjxBdXRvbWF0aWNUaHJlYWRDb25kaXRpb24+JiYgY29uZGl0aW9uLCBUaHJlYWRUeXBlIHR5
cGUsIFNlY29uZHMgdGltZW91dCkKICAgICA6IG1fbG9jayhsb2NrKQogICAgICwgbV9jb25kaXRp
b24oV1RGTW92ZShjb25kaXRpb24pKQogICAgICwgbV90aW1lb3V0KHRpbWVvdXQpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV1RGL3d0Zi9BdXRvbWF0aWNUaHJlYWQuaCBiL1NvdXJjZS9XVEYvd3RmL0F1
dG9tYXRpY1RocmVhZC5oCmluZGV4IDhkN2MyYjUxNjgwYTNlYTY3MjhlNTE3NGZjODE4MDY4ZGVl
OTVjODYuLjA5ZmNhZmVmMjM5NTkxYjJlMTJjZGYwMmZkZjAwNmNjZGQ0MTJhNmIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XVEYvd3RmL0F1dG9tYXRpY1RocmVhZC5oCisrKyBiL1NvdXJjZS9XVEYvd3Rm
L0F1dG9tYXRpY1RocmVhZC5oCkBAIC04MSw4ICs4MSw4IEBAIHB1YmxpYzoKICAgICAvLyBPbmUg
a25vd24tZ29vZCBjYXNlIGZvciBvbmUtdHJ1ZS1jb25kaXRpb24gaXMgd2hlbiB0aGUgY29tbXVu
aWNhdGlvbiBpbnZvbHZlcyBqdXN0IHR3bwogICAgIC8vIHRocmVhZHMuIEluIHN1Y2ggY2FzZXMs
IHRoZSB0aHJlYWQgZG9pbmcgdGhlIG5vdGlmeUFsbCgpIGNhbiB3YWtlIHVwIGF0IG1vc3Qgb25l
IHRocmVhZCAtCiAgICAgLy8gaXRzIHBhcnRuZXIuCi0gICAgV1RGX0VYUE9SVF9QUklWQVRFIHZv
aWQgd2FpdChMb2NrJik7Ci0gICAgV1RGX0VYUE9SVF9QUklWQVRFIGJvb2wgd2FpdEZvcihMb2Nr
JiwgU2Vjb25kcyk7CisgICAgV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgd2FpdChVbmNoZWNrZWRM
b2NrJik7CisgICAgV1RGX0VYUE9SVF9QUklWQVRFIGJvb2wgd2FpdEZvcihVbmNoZWNrZWRMb2Nr
JiwgU2Vjb25kcyk7CiAgICAgCiBwcml2YXRlOgogICAgIGZyaWVuZCBjbGFzcyBBdXRvbWF0aWNU
aHJlYWQ7CkBAIC05Myw3ICs5Myw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCByZW1vdmUoY29uc3Qg
QWJzdHJhY3RMb2NrZXImLCBBdXRvbWF0aWNUaHJlYWQqKTsKICAgICBib29sIGNvbnRhaW5zKGNv
bnN0IEFic3RyYWN0TG9ja2VyJiwgQXV0b21hdGljVGhyZWFkKik7CiAgICAgCi0gICAgQ29uZGl0
aW9uIG1fY29uZGl0aW9uOworICAgIFVuY2hlY2tlZENvbmRpdGlvbiBtX2NvbmRpdGlvbjsKICAg
ICBWZWN0b3I8QXV0b21hdGljVGhyZWFkKj4gbV90aHJlYWRzOwogfTsKIApAQCAtMTMxLDkgKzEz
MSw5IEBAIHB1YmxpYzoKIHByb3RlY3RlZDoKICAgICAvLyBUaGlzIGxvZ2ljYWxseSBjcmVhdGVz
IHRoZSB0aHJlYWQsIGJ1dCBpbiByZWFsaXR5IHRoZSB0aHJlYWQgd29uJ3QgYmUgY3JlYXRlZCB1
bnRpbCBzb21lb25lCiAgICAgLy8gY2FsbHMgQXV0b21hdGljVGhyZWFkQ29uZGl0aW9uOjpub3Rp
ZnlPbmUoKSBvciBub3RpZnlBbGwoKS4KLSAgICBBdXRvbWF0aWNUaHJlYWQoY29uc3QgQWJzdHJh
Y3RMb2NrZXImLCBCb3g8TG9jaz4sIFJlZjxBdXRvbWF0aWNUaHJlYWRDb25kaXRpb24+JiYsIFNl
Y29uZHMgdGltZW91dCA9IDEwX3MpOworICAgIEF1dG9tYXRpY1RocmVhZChjb25zdCBBYnN0cmFj
dExvY2tlciYsIEJveDxVbmNoZWNrZWRMb2NrPiwgUmVmPEF1dG9tYXRpY1RocmVhZENvbmRpdGlv
bj4mJiwgU2Vjb25kcyB0aW1lb3V0ID0gMTBfcyk7CiAKLSAgICBBdXRvbWF0aWNUaHJlYWQoY29u
c3QgQWJzdHJhY3RMb2NrZXImLCBCb3g8TG9jaz4sIFJlZjxBdXRvbWF0aWNUaHJlYWRDb25kaXRp
b24+JiYsIFRocmVhZFR5cGUsIFNlY29uZHMgdGltZW91dCA9IDEwX3MpOworICAgIEF1dG9tYXRp
Y1RocmVhZChjb25zdCBBYnN0cmFjdExvY2tlciYsIEJveDxVbmNoZWNrZWRMb2NrPiwgUmVmPEF1
dG9tYXRpY1RocmVhZENvbmRpdGlvbj4mJiwgVGhyZWFkVHlwZSwgU2Vjb25kcyB0aW1lb3V0ID0g
MTBfcyk7CiAgICAgCiAgICAgLy8gVG8gdW5kZXJzdGFuZCBQb2xsUmVzdWx0IGFuZCBXb3JrUmVz
dWx0LCBpbWFnaW5lIHRoYXQgcG9sbCgpIGFuZCB3b3JrKCkgYXJlIGJlaW5nIGNhbGxlZCBsaWtl
CiAgICAgLy8gc286CkBAIC0xODMsMTUgKzE4MywxNSBAQCBwcml2YXRlOgogICAgIAogICAgIHZv
aWQgc3RhcnQoY29uc3QgQWJzdHJhY3RMb2NrZXImKTsKICAgICAKLSAgICBCb3g8TG9jaz4gbV9s
b2NrOworICAgIEJveDxVbmNoZWNrZWRMb2NrPiBtX2xvY2s7CiAgICAgUmVmPEF1dG9tYXRpY1Ro
cmVhZENvbmRpdGlvbj4gbV9jb25kaXRpb247CiAgICAgU2Vjb25kcyBtX3RpbWVvdXQ7CiAgICAg
VGhyZWFkVHlwZSBtX3RocmVhZFR5cGUgeyBUaHJlYWRUeXBlOjpVbmtub3duIH07CiAgICAgYm9v
bCBtX2lzUnVubmluZyB7IHRydWUgfTsKICAgICBib29sIG1faXNXYWl0aW5nIHsgZmFsc2UgfTsK
ICAgICBib29sIG1faGFzVW5kZXJseWluZ1RocmVhZCB7IGZhbHNlIH07Ci0gICAgQ29uZGl0aW9u
IG1fd2FpdENvbmRpdGlvbjsKLSAgICBDb25kaXRpb24gbV9pc1J1bm5pbmdDb25kaXRpb247Cisg
ICAgVW5jaGVja2VkQ29uZGl0aW9uIG1fd2FpdENvbmRpdGlvbjsKKyAgICBVbmNoZWNrZWRDb25k
aXRpb24gbV9pc1J1bm5pbmdDb25kaXRpb247CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXVEYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0NoZWNrZWRDb25kaXRpb24uaCBiL1NvdXJjZS9XVEYv
d3RmL0NoZWNrZWRDb25kaXRpb24uaAppbmRleCAxMTkxMGUwMzk5MTNiNGI2MGE0NDk0N2ViYzkx
ZDAxYWJjNzhiMjc5Li4xMDZiYmEyMmQwYTYxN2IwZGYwNGIyNzJmOGNhMmQwYjYxY2JhMGI2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9DaGVja2VkQ29uZGl0aW9uLmgKKysrIGIvU291cmNl
L1dURi93dGYvQ2hlY2tlZENvbmRpdGlvbi5oCkBAIC0yNSw1OCArMjUsMTIgQEAKIAogI3ByYWdt
YSBvbmNlCiAKLSNpbmNsdWRlIDx3dGYvQ2hlY2tlZExvY2suaD4KICNpbmNsdWRlIDx3dGYvQ29u
ZGl0aW9uLmg+CiAKIG5hbWVzcGFjZSBXVEYgewogCi0vLyBBIGNvbmRpdGlvbiB2YXJpYWJsZSB0
eXBlIGZvciBDaGVja2VkTG9jay4KLS8vIEZvciBwcmVkaWNhdGVzIHRoYXQgYWNjZXNzIHRoZSBn
dWFyZGVkIHZhcmlhYmxlcywgdXNlIGFzc2VydElzSGVsZChsb2NrKS4KLWNsYXNzIENoZWNrZWRD
b25kaXRpb24gZmluYWwgewotICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKENoZWNrZWRDb25kaXRp
b24pOwotICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwotcHVibGljOgotICAgIGNvbnN0ZXhw
ciBDaGVja2VkQ29uZGl0aW9uKCkgPSBkZWZhdWx0OwotCi0gICAgYm9vbCB3YWl0VW50aWwoQ2hl
Y2tlZExvY2smIGxvY2ssIGNvbnN0IFRpbWVXaXRoRHluYW1pY0Nsb2NrVHlwZSYgdGltZW91dCkg
V1RGX1JFUVVJUkVTX0xPQ0sobG9jaykKLSAgICB7Ci0gICAgICAgIHJldHVybiBtX2NvbmRpdGlv
bi53YWl0VW50aWwodW5jaGVja2VkQ2FzdChsb2NrKSwgdGltZW91dCk7Ci0gICAgfQotICAgIHRl
bXBsYXRlPHR5cGVuYW1lIEZ1bmN0b3I+Ci0gICAgYm9vbCB3YWl0VW50aWwoQ2hlY2tlZExvY2sm
IGxvY2ssIGNvbnN0IFRpbWVXaXRoRHluYW1pY0Nsb2NrVHlwZSYgdGltZW91dCwgY29uc3QgRnVu
Y3RvciYgcHJlZGljYXRlKSBXVEZfUkVRVUlSRVNfTE9DSyhsb2NrKQotICAgIHsKLSAgICAgICAg
cmV0dXJuIG1fY29uZGl0aW9uLndhaXRVbnRpbCh1bmNoZWNrZWRDYXN0KGxvY2spLCB0aW1lb3V0
LCBwcmVkaWNhdGUpOwotICAgIH0KLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBGdW5jdG9yPgotICAg
IGJvb2wgd2FpdEZvcihDaGVja2VkTG9jayYgbG9jaywgU2Vjb25kcyByZWxhdGl2ZVRpbWVvdXQs
IGNvbnN0IEZ1bmN0b3ImIHByZWRpY2F0ZSkgV1RGX1JFUVVJUkVTX0xPQ0sobG9jaykKLSAgICB7
Ci0gICAgICAgIHJldHVybiBtX2NvbmRpdGlvbi53YWl0Rm9yKHVuY2hlY2tlZENhc3QobG9jayks
IHJlbGF0aXZlVGltZW91dCwgcHJlZGljYXRlKTsKLSAgICB9Ci0gICAgYm9vbCB3YWl0Rm9yKENo
ZWNrZWRMb2NrJiBsb2NrLCBTZWNvbmRzIHJlbGF0aXZlVGltZW91dCkgV1RGX1JFUVVJUkVTX0xP
Q0sobG9jaykKLSAgICB7Ci0gICAgICAgIHJldHVybiBtX2NvbmRpdGlvbi53YWl0Rm9yKHVuY2hl
Y2tlZENhc3QobG9jayksIHJlbGF0aXZlVGltZW91dCk7Ci0gICAgfQotICAgIHZvaWQgd2FpdChD
aGVja2VkTG9jayYgbG9jaykgV1RGX1JFUVVJUkVTX0xPQ0sobG9jaykKLSAgICB7Ci0gICAgICAg
IG1fY29uZGl0aW9uLndhaXQodW5jaGVja2VkQ2FzdChsb2NrKSk7Ci0gICAgfQotICAgIHRlbXBs
YXRlPHR5cGVuYW1lIEZ1bmN0b3I+Ci0gICAgdm9pZCB3YWl0KENoZWNrZWRMb2NrJiBsb2NrLCBj
b25zdCBGdW5jdG9yJiBwcmVkaWNhdGUpIFdURl9SRVFVSVJFU19MT0NLKGxvY2spCi0gICAgewot
ICAgICAgICBtX2NvbmRpdGlvbi53YWl0KHVuY2hlY2tlZENhc3QobG9jayksIHByZWRpY2F0ZSk7
Ci0gICAgfQotICAgIGJvb2wgbm90aWZ5T25lKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiBtX2Nv
bmRpdGlvbi5ub3RpZnlPbmUoKTsKLSAgICB9Ci0gICAgdm9pZCBub3RpZnlBbGwoKQotICAgIHsK
LSAgICAgICAgbV9jb25kaXRpb24ubm90aWZ5QWxsKCk7Ci0gICAgfQotcHJpdmF0ZToKLSAgICBz
dGF0aWMgTG9jayYgdW5jaGVja2VkQ2FzdChDaGVja2VkTG9jayYgbG9jaykgeyByZXR1cm4gc3Rh
dGljX2Nhc3Q8TG9jayY+KGxvY2spOyB9Ci0gICAgQ29uZGl0aW9uIG1fY29uZGl0aW9uOwotfTsK
Ky8vIEZJWE1FOiBVcGRhdGUgY29kZSBiYXNlIHRvIHVzZSBDb25kaXRpb24gYW5kIHJlbW92ZSB0
aGlzIGhlYWRlci4KK3VzaW5nIENoZWNrZWRDb25kaXRpb24gPSBDb25kaXRpb247CiAKIH0gLy8g
bmFtZXNwYWNlIFdURgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9DaGVja2VkTG9jay5o
IGIvU291cmNlL1dURi93dGYvQ2hlY2tlZExvY2suaAppbmRleCAzYWI1Yzc3MGRlMTYxYjRmMDU5
ZDZjNzRiYjcxZWM5OGVmYTVmNThhLi45NGE5ODFkNzg4MTk2MDYxZTUzNzZkM2M0MmVhYTI0YjBi
NDJkMTg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9DaGVja2VkTG9jay5oCisrKyBiL1Nv
dXJjZS9XVEYvd3RmL0NoZWNrZWRMb2NrLmgKQEAgLTI2LDgzICsyNiwxMiBAQAogI3ByYWdtYSBv
bmNlCiAKICNpbmNsdWRlIDx3dGYvTG9jay5oPgotI2luY2x1ZGUgPHd0Zi9Mb2NrZXIuaD4KLSNp
bmNsdWRlIDx3dGYvVGhyZWFkU2FmZXR5QW5hbHlzaXMuaD4KIAogbmFtZXNwYWNlIFdURiB7CiAK
LS8vIEEgbG9jayB0eXBlIHdpdGggc3VwcG9ydCBmb3IgdGhyZWFkIHNhZmV0eSBhbmFseXNpcy4K
LS8vIFRvIGFubm90YXRlIGEgbWVtYmVyIHZhcmlhYmxlIG9yIGEgZ2xvYmFsIHZhcmlhYmxlIHdp
dGggdGhyZWFkIG93bmVyc2hpcCBpbmZvcm1hdGlvbiwKLS8vIHVzZSBsb2NrIGNhcGFiaWxpdHkg
YW5ub3RhdGlvbnMgZGVmaW5lZCBpbiBUaHJlYWRTYWZldHlBbmFseXNpcy5oLgotLy8KLS8vIEV4
YW1wbGU6Ci0vLyAgIGNsYXNzIE15VmFsdWUgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8
TXlWYWx1ZT4KLS8vICAgewotLy8gICBwdWJsaWM6Ci0vLyAgICAgICB2b2lkIHNldFZhbHVlKGlu
dCB2YWx1ZSkgeyBMb2NrZXIgaG9sZExvY2sgeyBtX2xvY2sgfTsgbV92YWx1ZSA9IHZhbHVlOyAg
fQotLy8gICAgICAgdm9pZCBtYXliZVNldE90aGVyVmFsdWUoaW50IHZhbHVlKQotLy8gICAgICAg
ewotLy8gICAgICAgICAgIGlmICghbV9sb2NrLnRyeUxvY2soKSkKLS8vICAgICAgICAgICAgICBy
ZXR1cm47Ci0vLyAgICAgICAgICAgTG9ja2VyIGxvY2tlciB7IEFkb3B0TG9jaywgbV9vdGhlckxv
Y2sgfTsKLS8vICAgICAgICAgICBtX290aGVyVmFsdWUgPSB2YWx1ZTsKLS8vICAgICAgIH0KLS8v
ICAgcHJpdmF0ZToKLS8vICAgICAgIENoZWNrZWRMb2NrIG1fbG9jazsKLS8vICAgICAgIGludCBt
X3ZhbHVlIFdURl9HVUFSREVEX0JZX0xPQ0sobV9sb2NrKSB7IDc3IH07Ci0vLyAgICAgICBpbnQg
bV9vdGhlclZhbHVlIFdURl9HVUFSREVEX0JZX0xPQ0sobV9sb2NrKSB7IDg4IH07Ci0vLyAgIH07
Ci0vLyBGSVhNRTogTWF5YmUgc2hvdWxkIGJlIGZvbGRlZCBiYWNrIHRvIExvY2sgb25jZSBob2xk
TG9jayBpcyBub3QgdXNlZCBnbG9iYWxseS4KLWNsYXNzIFdURl9DQVBBQklMSVRZX0xPQ0sgQ2hl
Y2tlZExvY2sgOiBMb2NrIHsKLSAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShDaGVja2VkTG9jayk7
Ci0gICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7Ci1wdWJsaWM6Ci0gICAgY29uc3RleHByIENo
ZWNrZWRMb2NrKCkgPSBkZWZhdWx0OwotICAgIHZvaWQgbG9jaygpIFdURl9BQ1FVSVJFU19MT0NL
KCkgeyBMb2NrOjpsb2NrKCk7IH0KLSAgICBib29sIHRyeUxvY2soKSBXVEZfQUNRVUlSRVNfTE9D
S19JRih0cnVlKSB7IHJldHVybiBMb2NrOjp0cnlMb2NrKCk7IH0KLSAgICBib29sIHRyeV9sb2Nr
KCkgV1RGX0FDUVVJUkVTX0xPQ0tfSUYodHJ1ZSkgeyByZXR1cm4gTG9jazo6dHJ5X2xvY2soKTsg
fSAvLyBOT0xJTlQ6IEludGVudGlvbmFsIGRldmlhdGlvbiB0byBzdXBwb3J0IHN0ZDo6c2NvcGVk
X2xvY2suCi0gICAgdm9pZCB1bmxvY2soKSBXVEZfUkVMRUFTRVNfTE9DSygpIHsgTG9jazo6dW5s
b2NrKCk7IH0KLSAgICB2b2lkIHVubG9ja0ZhaXJseSgpIFdURl9SRUxFQVNFU19MT0NLKCkgeyBM
b2NrOjp1bmxvY2tGYWlybHkoKTsgfQotICAgIHZvaWQgc2FmZXBvaW50KCkgeyBMb2NrOjpzYWZl
cG9pbnQoKTsgfQotICAgIGJvb2wgaXNIZWxkKCkgY29uc3QgeyByZXR1cm4gTG9jazo6aXNIZWxk
KCk7IH0KLSAgICBib29sIGlzTG9ja2VkKCkgY29uc3QgeyByZXR1cm4gTG9jazo6aXNMb2NrZWQo
KTsgfQotICAgIGZyaWVuZCBjbGFzcyBDaGVja2VkQ29uZGl0aW9uOwotfTsKLQotLy8gQXNzZXJ0
cyB0aGF0IHRoZSBsb2NrIGlzIGhlbGQuCi0vLyBUaGlzIGNhbiBiZSB1c2VkIGluIGNhc2VzIHdo
ZXJlIHRoZSBhbm5vdGF0aW9ucyBjYW5ub3QgYmUgYWRkZWQgdG8gdGhlIGZ1bmN0aW9uCi0vLyBk
ZWNsYXJhdGlvbi4KLWlubGluZSB2b2lkIGFzc2VydElzSGVsZChjb25zdCBDaGVja2VkTG9jayYg
bG9jaykgV1RGX0FTU0VSVFNfQUNRVUlSRURfTE9DSyhsb2NrKSB7IEFTU0VSVF9VTlVTRUQobG9j
aywgbG9jay5pc0hlbGQoKSk7IH0KLQotLy8gTG9ja2VyIHNwZWNpYWxpemF0aW9uIHRvIHVzZSB3
aXRoIENoZWNrZWRMb2NrLgotLy8gTm9uLW1vdmFibGUgc2ltcGxlIHNjb3BlZCBsb2NrIGhvbGRl
ci4KLS8vIEV4YW1wbGU6IExvY2tlciBsb2NrZXIgeyBtX2xvY2sgfTsKLXRlbXBsYXRlIDw+Ci1j
bGFzcyBXVEZfQ0FQQUJJTElUWV9TQ09QRURfTE9DSyBMb2NrZXI8Q2hlY2tlZExvY2s+IHsKLXB1
YmxpYzoKLSAgICBleHBsaWNpdCBMb2NrZXIoQ2hlY2tlZExvY2smIGxvY2spIFdURl9BQ1FVSVJF
U19MT0NLKGxvY2spCi0gICAgICAgIDogbV9sb2NrKGxvY2spCi0gICAgewotICAgICAgICBtX2xv
Y2subG9jaygpOwotICAgIH0KLSAgICBMb2NrZXIoQWRvcHRMb2NrVGFnLCBDaGVja2VkTG9jayYg
bG9jaykgV1RGX1JFUVVJUkVTX0xPQ0sobG9jaykKLSAgICAgICAgOiBtX2xvY2sobG9jaykKLSAg
ICB7Ci0gICAgfQotICAgIH5Mb2NrZXIoKSBXVEZfUkVMRUFTRVNfTE9DSygpCi0gICAgewotICAg
ICAgICBtX2xvY2sudW5sb2NrKCk7Ci0gICAgfQotICAgIExvY2tlcihjb25zdCBMb2NrZXI8Q2hl
Y2tlZExvY2s+JikgPSBkZWxldGU7Ci0gICAgTG9ja2VyJiBvcGVyYXRvcj0oY29uc3QgTG9ja2Vy
PENoZWNrZWRMb2NrPiYpID0gZGVsZXRlOwotcHJpdmF0ZToKLSAgICBDaGVja2VkTG9jayYgbV9s
b2NrOwotfTsKLQotTG9ja2VyKENoZWNrZWRMb2NrJikgLT4gTG9ja2VyPENoZWNrZWRMb2NrPjsK
LUxvY2tlcihBZG9wdExvY2tUYWcsIENoZWNrZWRMb2NrJikgLT4gTG9ja2VyPENoZWNrZWRMb2Nr
PjsKKy8vIEZJWE1FOiBVcGRhdGUgY29kZSBiYXNlIHRvIHVzZSBMb2NrIGFuZCByZW1vdmUgdGhp
cyBoZWFkZXIuCit1c2luZyBDaGVja2VkTG9jayA9IExvY2s7CiAKIH0gLy8gbmFtZXNwYWNlIFdU
RgogCi11c2luZyBXVEY6OmFzc2VydElzSGVsZDsKIHVzaW5nIFdURjo6Q2hlY2tlZExvY2s7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9Db25kaXRpb24uaCBiL1NvdXJjZS9XVEYvd3RmL0Nv
bmRpdGlvbi5oCmluZGV4IDgxNTUwMWYxN2QyNjc5OTJkZjRkNDRkZGI5OTMxY2NhMGU4ZmZlOTku
LjRlZWYxZjFhNjJhMWNiNTJjMWRlNTcyZTE3MWEzMTQzNTY5OGIzNjYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XVEYvd3RmL0NvbmRpdGlvbi5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL0NvbmRpdGlvbi5o
CkBAIC0yNSw2ICsyNSw3IEBACiAKICNwcmFnbWEgb25jZQogCisjaW5jbHVkZSA8d3RmL0xvY2su
aD4KICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KICNpbmNsdWRlIDx3dGYvUGFya2luZ0xv
dC5oPgogI2luY2x1ZGUgPHd0Zi9UaW1lV2l0aER5bmFtaWNDbG9ja1R5cGUuaD4KQEAgLTM5LDE2
ICs0MCwxNiBAQCBuYW1lc3BhY2UgV1RGIHsKIC8vIG5vdGlmeUFsbCgpIHJlcXVpcmUganVzdCBh
IGxvYWQgYW5kIGJyYW5jaCBmb3IgdGhlIGZhc3QgY2FzZSB3aGVyZSBubyB0aHJlYWQgaXMgd2Fp
dGluZy4KIC8vIFRoaXMgY29uZGl0aW9uIHZhcmlhYmxlLCB3aGVuIHVzZWQgd2l0aCBXVEY6Okxv
Y2ssIGNhbiBvdXRwZXJmb3JtIGEgc3lzdGVtIGNvbmRpdGlvbiB2YXJpYWJsZQogLy8gYW5kIGxv
Y2sgYnkgdXAgdG8gNTh4LgotY2xhc3MgQ29uZGl0aW9uIGZpbmFsIHsKLSAgICBXVEZfTUFLRV9O
T05DT1BZQUJMRShDb25kaXRpb24pOworY2xhc3MgVW5jaGVja2VkQ29uZGl0aW9uIGZpbmFsIHsK
KyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShVbmNoZWNrZWRDb25kaXRpb24pOwogICAgIFdURl9N
QUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIC8vIENvbmRpdGlvbiB3aWxsIGFjY2Vw
dCBhbnkga2luZCBvZiB0aW1lIGFuZCBjb252ZXJ0IGl0IGludGVybmFsbHksIGJ1dCB0aGlzIHR5
cGVkZWYgdGVsbHMKLSAgICAvLyB5b3Ugd2hhdCBraW5kIG9mIHRpbWUgQ29uZGl0aW9uIHdvdWxk
IGJlIGFibGUgdG8gdXNlIHdpdGhvdXQgY29udmVyc2lvbnMuIEhvd2V2ZXIsIGlmIHlvdQorICAg
IC8vIFVuY2hlY2tlZENvbmRpdGlvbiB3aWxsIGFjY2VwdCBhbnkga2luZCBvZiB0aW1lIGFuZCBj
b252ZXJ0IGl0IGludGVybmFsbHksIGJ1dCB0aGlzIHR5cGVkZWYgdGVsbHMKKyAgICAvLyB5b3Ug
d2hhdCBraW5kIG9mIHRpbWUgVW5jaGVja2VkQ29uZGl0aW9uIHdvdWxkIGJlIGFibGUgdG8gdXNl
IHdpdGhvdXQgY29udmVyc2lvbnMuIEhvd2V2ZXIsIGlmIHlvdQogICAgIC8vIGFyZSB1bmxpa2Vs
eSB0byBiZSBhZmZlY3RlZCBieSB0aGUgY29zdCBvZiBjb252ZXJzaW9ucywgaXQgaXMgYmV0dGVy
IHRvIHVzZSBNb25vdG9uaWNUaW1lLgogICAgIHVzaW5nIFRpbWUgPSBQYXJraW5nTG90OjpUaW1l
OwogCi0gICAgY29uc3RleHByIENvbmRpdGlvbigpID0gZGVmYXVsdDsKKyAgICBjb25zdGV4cHIg
VW5jaGVja2VkQ29uZGl0aW9uKCkgPSBkZWZhdWx0OwogCiAgICAgLy8gV2FpdCBvbiBhIHBhcmtp
bmcgcXVldWUgd2hpbGUgcmVsZWFzaW5nIHRoZSBnaXZlbiBsb2NrLiBJdCB3aWxsIHVubG9jayB0
aGUgbG9jayBqdXN0IGJlZm9yZQogICAgIC8vIHBhcmtpbmcsIGFuZCByZWxvY2sgaXQgdXBvbiB3
YWtldXAuIFJldHVybnMgdHJ1ZSBpZiB3ZSB3b2tlIHVwIGR1ZSB0byBzb21lIGNhbGwgdG8KQEAg
LTE3Miw5ICsxNzMsNjEgQEAgcHJpdmF0ZToKICAgICBBdG9taWM8Ym9vbD4gbV9oYXNXYWl0ZXJz
IHsgZmFsc2UgfTsKIH07CiAKKy8vIEEgY29uZGl0aW9uIHZhcmlhYmxlIHR5cGUgZm9yIExvY2su
CisvLyBGb3IgcHJlZGljYXRlcyB0aGF0IGFjY2VzcyB0aGUgZ3VhcmRlZCB2YXJpYWJsZXMsIHVz
ZSBhc3NlcnRJc0hlbGQobG9jaykuCitjbGFzcyBDb25kaXRpb24gZmluYWwgeworICAgIFdURl9N
QUtFX05PTkNPUFlBQkxFKENvbmRpdGlvbik7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7
CitwdWJsaWM6CisgICAgY29uc3RleHByIENvbmRpdGlvbigpID0gZGVmYXVsdDsKKworICAgIGJv
b2wgd2FpdFVudGlsKExvY2smIGxvY2ssIGNvbnN0IFRpbWVXaXRoRHluYW1pY0Nsb2NrVHlwZSYg
dGltZW91dCkgV1RGX1JFUVVJUkVTX0xPQ0sobG9jaykKKyAgICB7CisgICAgICAgIHJldHVybiBt
X2NvbmRpdGlvbi53YWl0VW50aWwodW5jaGVja2VkQ2FzdChsb2NrKSwgdGltZW91dCk7CisgICAg
fQorICAgIHRlbXBsYXRlPHR5cGVuYW1lIEZ1bmN0b3I+CisgICAgYm9vbCB3YWl0VW50aWwoTG9j
ayYgbG9jaywgY29uc3QgVGltZVdpdGhEeW5hbWljQ2xvY2tUeXBlJiB0aW1lb3V0LCBjb25zdCBG
dW5jdG9yJiBwcmVkaWNhdGUpIFdURl9SRVFVSVJFU19MT0NLKGxvY2spCisgICAgeworICAgICAg
ICByZXR1cm4gbV9jb25kaXRpb24ud2FpdFVudGlsKHVuY2hlY2tlZENhc3QobG9jayksIHRpbWVv
dXQsIHByZWRpY2F0ZSk7CisgICAgfQorICAgIHRlbXBsYXRlPHR5cGVuYW1lIEZ1bmN0b3I+Cisg
ICAgYm9vbCB3YWl0Rm9yKExvY2smIGxvY2ssIFNlY29uZHMgcmVsYXRpdmVUaW1lb3V0LCBjb25z
dCBGdW5jdG9yJiBwcmVkaWNhdGUpIFdURl9SRVFVSVJFU19MT0NLKGxvY2spCisgICAgeworICAg
ICAgICByZXR1cm4gbV9jb25kaXRpb24ud2FpdEZvcih1bmNoZWNrZWRDYXN0KGxvY2spLCByZWxh
dGl2ZVRpbWVvdXQsIHByZWRpY2F0ZSk7CisgICAgfQorICAgIGJvb2wgd2FpdEZvcihMb2NrJiBs
b2NrLCBTZWNvbmRzIHJlbGF0aXZlVGltZW91dCkgV1RGX1JFUVVJUkVTX0xPQ0sobG9jaykKKyAg
ICB7CisgICAgICAgIHJldHVybiBtX2NvbmRpdGlvbi53YWl0Rm9yKHVuY2hlY2tlZENhc3QobG9j
ayksIHJlbGF0aXZlVGltZW91dCk7CisgICAgfQorICAgIHZvaWQgd2FpdChMb2NrJiBsb2NrKSBX
VEZfUkVRVUlSRVNfTE9DSyhsb2NrKQorICAgIHsKKyAgICAgICAgbV9jb25kaXRpb24ud2FpdCh1
bmNoZWNrZWRDYXN0KGxvY2spKTsKKyAgICB9CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRnVuY3Rv
cj4KKyAgICB2b2lkIHdhaXQoTG9jayYgbG9jaywgY29uc3QgRnVuY3RvciYgcHJlZGljYXRlKSBX
VEZfUkVRVUlSRVNfTE9DSyhsb2NrKQorICAgIHsKKyAgICAgICAgbV9jb25kaXRpb24ud2FpdCh1
bmNoZWNrZWRDYXN0KGxvY2spLCBwcmVkaWNhdGUpOworICAgIH0KKyAgICBib29sIG5vdGlmeU9u
ZSgpCisgICAgeworICAgICAgICByZXR1cm4gbV9jb25kaXRpb24ubm90aWZ5T25lKCk7CisgICAg
fQorICAgIHZvaWQgbm90aWZ5QWxsKCkKKyAgICB7CisgICAgICAgIG1fY29uZGl0aW9uLm5vdGlm
eUFsbCgpOworICAgIH0KK3ByaXZhdGU6CisgICAgc3RhdGljIFVuY2hlY2tlZExvY2smIHVuY2hl
Y2tlZENhc3QoTG9jayYgbG9jaykgeyByZXR1cm4gc3RhdGljX2Nhc3Q8VW5jaGVja2VkTG9jayY+
KGxvY2spOyB9CisgICAgVW5jaGVja2VkQ29uZGl0aW9uIG1fY29uZGl0aW9uOworfTsKKwordXNp
bmcgU3RhdGljVW5jaGVja2VkQ29uZGl0aW9uID0gVW5jaGVja2VkQ29uZGl0aW9uOwogdXNpbmcg
U3RhdGljQ29uZGl0aW9uID0gQ29uZGl0aW9uOwogCiB9IC8vIG5hbWVzcGFjZSBXVEYKIAogdXNp
bmcgV1RGOjpDb25kaXRpb247Cit1c2luZyBXVEY6OlVuY2hlY2tlZENvbmRpdGlvbjsKIHVzaW5n
IFdURjo6U3RhdGljQ29uZGl0aW9uOwordXNpbmcgV1RGOjpTdGF0aWNVbmNoZWNrZWRDb25kaXRp
b247CisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0xvY2suY3BwIGIvU291cmNlL1dURi93
dGYvTG9jay5jcHAKaW5kZXggYjk5MzgzZDY5NDgwZDNhNGM5YjYyM2YwYzBiY2M3ZGY5MGVhYjA0
ZC4uZmY4NmUxMGE5YTJhNDE3YWI3MDY3MGEwNzg5Y2Y2NTBkNzE4YjE3MSAxMDA2NDQKLS0tIGEv
U291cmNlL1dURi93dGYvTG9jay5jcHAKKysrIGIvU291cmNlL1dURi93dGYvTG9jay5jcHAKQEAg
LTMzLDE0ICszMywxNCBAQCBuYW1lc3BhY2UgV1RGIHsKIAogc3RhdGljIGNvbnN0ZXhwciBib29s
IHByb2ZpbGVMb2NrQ29udGVudGlvbiA9IGZhbHNlOwogCi12b2lkIExvY2s6OmxvY2tTbG93KCkK
K3ZvaWQgVW5jaGVja2VkTG9jazo6bG9ja1Nsb3coKQogewogICAgIGlmIChwcm9maWxlTG9ja0Nv
bnRlbnRpb24pCiAgICAgICAgIFNUQUNLX1NIT1RfUFJPRklMRSg0LCAyLCA1KTsKICAgICBEZWZh
dWx0TG9ja0FsZ29yaXRobTo6bG9ja1Nsb3cobV9ieXRlKTsKIH0KIAotdm9pZCBMb2NrOjp1bmxv
Y2tTbG93KCkKK3ZvaWQgVW5jaGVja2VkTG9jazo6dW5sb2NrU2xvdygpCiB7CiAgICAgLy8gSGVh
cCBhbGxvY2F0aW9ucyBhcmUgZm9yYmlkZGVuIG9uIHRoZSBjZXJ0YWluIHRocmVhZHMgKGUuZy4g
YXVkaW8gcmVuZGVyaW5nIHRocmVhZCkgZm9yIHBlcmZvcm1hbmNlIHJlYXNvbnMgc28gd2UgbmVl
ZCB0bwogICAgIC8vIGV4cGxpY2l0bHkgYWxsb3cgdGhlIGZvbGxvd2luZyBhbGxvY2F0aW9uKHMp
LiBJbiBzb21lIHJhcmUgY2FzZXMsIHRoZSB1bmxvY2tTbG93KCkgYWxnb3JpdGggbWF5IGNhdXNl
IGFsbG9jYXRpb25zLgpAQCAtNDksNyArNDksNyBAQCB2b2lkIExvY2s6OnVubG9ja1Nsb3coKQog
ICAgIERlZmF1bHRMb2NrQWxnb3JpdGhtOjp1bmxvY2tTbG93KG1fYnl0ZSwgRGVmYXVsdExvY2tB
bGdvcml0aG06OlVuZmFpcik7CiB9CiAKLXZvaWQgTG9jazo6dW5sb2NrRmFpcmx5U2xvdygpCit2
b2lkIFVuY2hlY2tlZExvY2s6OnVubG9ja0ZhaXJseVNsb3coKQogewogICAgIC8vIEhlYXAgYWxs
b2NhdGlvbnMgYXJlIGZvcmJpZGRlbiBvbiB0aGUgY2VydGFpbiB0aHJlYWRzIChlLmcuIGF1ZGlv
IHJlbmRlcmluZyB0aHJlYWQpIGZvciBwZXJmb3JtYW5jZSByZWFzb25zIHNvIHdlIG5lZWQgdG8K
ICAgICAvLyBleHBsaWNpdGx5IGFsbG93IHRoZSBmb2xsb3dpbmcgYWxsb2NhdGlvbihzKS4gSW4g
c29tZSByYXJlIGNhc2VzLCB0aGUgdW5sb2NrU2xvdygpIGFsZ29yaXRoIG1heSBjYXVzZSBhbGxv
Y2F0aW9ucy4KQEAgLTU4LDcgKzU4LDcgQEAgdm9pZCBMb2NrOjp1bmxvY2tGYWlybHlTbG93KCkK
ICAgICBEZWZhdWx0TG9ja0FsZ29yaXRobTo6dW5sb2NrU2xvdyhtX2J5dGUsIERlZmF1bHRMb2Nr
QWxnb3JpdGhtOjpGYWlyKTsKIH0KIAotdm9pZCBMb2NrOjpzYWZlcG9pbnRTbG93KCkKK3ZvaWQg
VW5jaGVja2VkTG9jazo6c2FmZXBvaW50U2xvdygpCiB7CiAgICAgRGVmYXVsdExvY2tBbGdvcml0
aG06OnNhZmVwb2ludFNsb3cobV9ieXRlKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3Rm
L0xvY2suaCBiL1NvdXJjZS9XVEYvd3RmL0xvY2suaAppbmRleCA2MGZkYWFiZDkwZGFlN2YyZDRk
NDhmMzFiODAzNGRlM2JmOTVmNjdkLi5mZGMwYTRmNzcwY2U2MzJhMDFmMWJiMTM1YWNkYTliMzNj
ZmU0OTMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9Mb2NrLmgKKysrIGIvU291cmNlL1dU
Ri93dGYvTG9jay5oCkBAIC0yNSw5ICsyNSwxMSBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1
ZGUgPG11dGV4PgogI2luY2x1ZGUgPHd0Zi9Mb2NrQWxnb3JpdGhtLmg+CiAjaW5jbHVkZSA8d3Rm
L0xvY2tlci5oPgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgorI2luY2x1ZGUgPHd0Zi9U
aHJlYWRTYWZldHlBbmFseXNpcy5oPgogCiBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CiBzdHJ1
Y3QgTG9ja0luc3BlY3RvcjsKQEAgLTQ3LDExICs0OSwxMSBAQCB0eXBlZGVmIExvY2tBbGdvcml0
aG08dWludDhfdCwgMSwgMj4gRGVmYXVsdExvY2tBbGdvcml0aG07CiAvLyBhdCB3b3JzdCBvbmUg
Y2FsbCB0byB1bmxvY2soKSBwZXIgbWlsbGlzZWNvbmQgd2lsbCBkbyBhIGRpcmVjdCBoYW5kLW9m
ZiB0byB0aGUgdGhyZWFkIHRoYXQgaXMgYXQKIC8vIHRoZSBoZWFkIG9mIHRoZSBxdWV1ZS4gV2hl
biB0aGVyZSBhcmUgY29sbGlzaW9ucywgZWFjaCBjb2xsaXNpb24gaW5jcmVhc2VzIHRoZSBmYWly
IHVubG9jayBkZWxheQogLy8gYnkgb25lIG1pbGxpc2Vjb25kIGluIHRoZSB3b3JzdCBjYXNlLgot
Y2xhc3MgTG9jayB7Ci0gICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoTG9jayk7CitjbGFzcyBVbmNo
ZWNrZWRMb2NrIHsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShVbmNoZWNrZWRMb2NrKTsKICAg
ICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBjb25zdGV4cHIgTG9jaygp
ID0gZGVmYXVsdDsKKyAgICBjb25zdGV4cHIgVW5jaGVja2VkTG9jaygpID0gZGVmYXVsdDsKIAog
ICAgIHZvaWQgbG9jaygpCiAgICAgewpAQCAtMTMxLDkgKzEzMyw4NCBAQCBwcml2YXRlOgogICAg
IEF0b21pYzx1aW50OF90PiBtX2J5dGUgeyAwIH07CiB9OwogCisvLyBBIGxvY2sgdHlwZSB3aXRo
IHN1cHBvcnQgZm9yIHRocmVhZCBzYWZldHkgYW5hbHlzaXMuCisvLyBUbyBhbm5vdGF0ZSBhIG1l
bWJlciB2YXJpYWJsZSBvciBhIGdsb2JhbCB2YXJpYWJsZSB3aXRoIHRocmVhZCBvd25lcnNoaXAg
aW5mb3JtYXRpb24sCisvLyB1c2UgbG9jayBjYXBhYmlsaXR5IGFubm90YXRpb25zIGRlZmluZWQg
aW4gVGhyZWFkU2FmZXR5QW5hbHlzaXMuaC4KKy8vCisvLyBFeGFtcGxlOgorLy8gICBjbGFzcyBN
eVZhbHVlIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPE15VmFsdWU+CisvLyAgIHsKKy8v
ICAgcHVibGljOgorLy8gICAgICAgdm9pZCBzZXRWYWx1ZShpbnQgdmFsdWUpIHsgTG9ja2VyIGhv
bGRMb2NrIHsgbV9sb2NrIH07IG1fdmFsdWUgPSB2YWx1ZTsgIH0KKy8vICAgICAgIHZvaWQgbWF5
YmVTZXRPdGhlclZhbHVlKGludCB2YWx1ZSkKKy8vICAgICAgIHsKKy8vICAgICAgICAgICBpZiAo
IW1fbG9jay50cnlMb2NrKCkpCisvLyAgICAgICAgICAgICAgcmV0dXJuOworLy8gICAgICAgICAg
IExvY2tlciBsb2NrZXIgeyBBZG9wdExvY2ssIG1fb3RoZXJMb2NrIH07CisvLyAgICAgICAgICAg
bV9vdGhlclZhbHVlID0gdmFsdWU7CisvLyAgICAgICB9CisvLyAgIHByaXZhdGU6CisvLyAgICAg
ICBMb2NrIG1fbG9jazsKKy8vICAgICAgIGludCBtX3ZhbHVlIFdURl9HVUFSREVEX0JZX0xPQ0so
bV9sb2NrKSB7IDc3IH07CisvLyAgICAgICBpbnQgbV9vdGhlclZhbHVlIFdURl9HVUFSREVEX0JZ
X0xPQ0sobV9sb2NrKSB7IDg4IH07CisvLyAgIH07CitjbGFzcyBXVEZfQ0FQQUJJTElUWV9MT0NL
IExvY2sgOiBVbmNoZWNrZWRMb2NrIHsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShMb2NrKTsK
KyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICBjb25zdGV4cHIgTG9j
aygpID0gZGVmYXVsdDsKKyAgICB2b2lkIGxvY2soKSBXVEZfQUNRVUlSRVNfTE9DSygpIHsgVW5j
aGVja2VkTG9jazo6bG9jaygpOyB9CisgICAgYm9vbCB0cnlMb2NrKCkgV1RGX0FDUVVJUkVTX0xP
Q0tfSUYodHJ1ZSkgeyByZXR1cm4gVW5jaGVja2VkTG9jazo6dHJ5TG9jaygpOyB9CisgICAgYm9v
bCB0cnlfbG9jaygpIFdURl9BQ1FVSVJFU19MT0NLX0lGKHRydWUpIHsgcmV0dXJuIFVuY2hlY2tl
ZExvY2s6OnRyeV9sb2NrKCk7IH0gLy8gTk9MSU5UOiBJbnRlbnRpb25hbCBkZXZpYXRpb24gdG8g
c3VwcG9ydCBzdGQ6OnNjb3BlZF9sb2NrLgorICAgIHZvaWQgdW5sb2NrKCkgV1RGX1JFTEVBU0VT
X0xPQ0soKSB7IFVuY2hlY2tlZExvY2s6OnVubG9jaygpOyB9CisgICAgdm9pZCB1bmxvY2tGYWly
bHkoKSBXVEZfUkVMRUFTRVNfTE9DSygpIHsgVW5jaGVja2VkTG9jazo6dW5sb2NrRmFpcmx5KCk7
IH0KKyAgICB2b2lkIHNhZmVwb2ludCgpIHsgVW5jaGVja2VkTG9jazo6c2FmZXBvaW50KCk7IH0K
KyAgICBib29sIGlzSGVsZCgpIGNvbnN0IHsgcmV0dXJuIFVuY2hlY2tlZExvY2s6OmlzSGVsZCgp
OyB9CisgICAgYm9vbCBpc0xvY2tlZCgpIGNvbnN0IHsgcmV0dXJuIFVuY2hlY2tlZExvY2s6Omlz
TG9ja2VkKCk7IH0KKyAgICBmcmllbmQgY2xhc3MgQ29uZGl0aW9uOworICAgIGZyaWVuZCBzdHJ1
Y3QgVGVzdFdlYktpdEFQSTo6TG9ja0luc3BlY3RvcjsKK307CisKKy8vIEFzc2VydHMgdGhhdCB0
aGUgbG9jayBpcyBoZWxkLgorLy8gVGhpcyBjYW4gYmUgdXNlZCBpbiBjYXNlcyB3aGVyZSB0aGUg
YW5ub3RhdGlvbnMgY2Fubm90IGJlIGFkZGVkIHRvIHRoZSBmdW5jdGlvbgorLy8gZGVjbGFyYXRp
b24uCitpbmxpbmUgdm9pZCBhc3NlcnRJc0hlbGQoY29uc3QgTG9jayYgbG9jaykgV1RGX0FTU0VS
VFNfQUNRVUlSRURfTE9DSyhsb2NrKSB7IEFTU0VSVF9VTlVTRUQobG9jaywgbG9jay5pc0hlbGQo
KSk7IH0KKworLy8gTG9ja2VyIHNwZWNpYWxpemF0aW9uIHRvIHVzZSB3aXRoIExvY2suCisvLyBO
b24tbW92YWJsZSBzaW1wbGUgc2NvcGVkIGxvY2sgaG9sZGVyLgorLy8gRXhhbXBsZTogTG9ja2Vy
IGxvY2tlciB7IG1fbG9jayB9OwordGVtcGxhdGUgPD4KK2NsYXNzIFdURl9DQVBBQklMSVRZX1ND
T1BFRF9MT0NLIExvY2tlcjxMb2NrPiB7CitwdWJsaWM6CisgICAgZXhwbGljaXQgTG9ja2VyKExv
Y2smIGxvY2spIFdURl9BQ1FVSVJFU19MT0NLKGxvY2spCisgICAgICAgIDogbV9sb2NrKGxvY2sp
CisgICAgeworICAgICAgICBtX2xvY2subG9jaygpOworICAgIH0KKyAgICBMb2NrZXIoQWRvcHRM
b2NrVGFnLCBMb2NrJiBsb2NrKSBXVEZfUkVRVUlSRVNfTE9DSyhsb2NrKQorICAgICAgICA6IG1f
bG9jayhsb2NrKQorICAgIHsKKyAgICB9CisgICAgfkxvY2tlcigpIFdURl9SRUxFQVNFU19MT0NL
KCkKKyAgICB7CisgICAgICAgIG1fbG9jay51bmxvY2soKTsKKyAgICB9CisgICAgTG9ja2VyKGNv
bnN0IExvY2tlcjxMb2NrPiYpID0gZGVsZXRlOworICAgIExvY2tlciYgb3BlcmF0b3I9KGNvbnN0
IExvY2tlcjxMb2NrPiYpID0gZGVsZXRlOworcHJpdmF0ZToKKyAgICBMb2NrJiBtX2xvY2s7Cit9
OworCitMb2NrZXIoTG9jayYpIC0+IExvY2tlcjxMb2NrPjsKK0xvY2tlcihBZG9wdExvY2tUYWcs
IExvY2smKSAtPiBMb2NrZXI8TG9jaz47CisKIHVzaW5nIExvY2tIb2xkZXIgPSBMb2NrZXI8TG9j
az47Cit1c2luZyBVbmNoZWNrZWRMb2NrSG9sZGVyID0gTG9ja2VyPFVuY2hlY2tlZExvY2s+Owog
CiB9IC8vIG5hbWVzcGFjZSBXVEYKIAordXNpbmcgV1RGOjpVbmNoZWNrZWRMb2NrOwogdXNpbmcg
V1RGOjpMb2NrOwogdXNpbmcgV1RGOjpMb2NrSG9sZGVyOwordXNpbmcgV1RGOjpVbmNoZWNrZWRM
b2NrSG9sZGVyOwordXNpbmcgV1RGOjphc3NlcnRJc0hlbGQ7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V1RGL3d0Zi9NZXRhQWxsb2NhdG9yLmNwcCBiL1NvdXJjZS9XVEYvd3RmL01ldGFBbGxvY2F0b3Iu
Y3BwCmluZGV4IGVlZjg5Yjc3ZTdiZGRmY2Q2NzY1ZDY3M2FhNTY1YTA2NzdjZDcwYTQuLmQ5Y2Q1
OTkyZjNhMGQ1MWQwNDZlODcwMWExM2JkMjdhNzkwMjJhZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
VEYvd3RmL01ldGFBbGxvY2F0b3IuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL01ldGFBbGxvY2F0
b3IuY3BwCkBAIC02Miw3ICs2Miw3IEBAIHZvaWQgTWV0YUFsbG9jYXRvclRyYWNrZXI6OnJlbGVh
c2UoTWV0YUFsbG9jYXRvckhhbmRsZSYgaGFuZGxlKQogICAgIG1fYWxsb2NhdGlvbnMucmVtb3Zl
KCZoYW5kbGUpOwogfQogCi12b2lkIE1ldGFBbGxvY2F0b3I6OnJlbGVhc2UoY29uc3QgTG9ja0hv
bGRlciYsIE1ldGFBbGxvY2F0b3JIYW5kbGUmIGhhbmRsZSkKK3ZvaWQgTWV0YUFsbG9jYXRvcjo6
cmVsZWFzZShjb25zdCBVbmNoZWNrZWRMb2NrSG9sZGVyJiwgTWV0YUFsbG9jYXRvckhhbmRsZSYg
aGFuZGxlKQogewogICAgIGlmIChoYW5kbGUuc2l6ZUluQnl0ZXMoKSkgewogICAgICAgICBNZW1v
cnlQdHIgc3RhcnQgPSBoYW5kbGUuc3RhcnQoKTsKQEAgLTEyNCw3ICsxMjQsNyBAQCB2b2lkIE1l
dGFBbGxvY2F0b3JIYW5kbGU6OmR1bXAoUHJpbnRTdHJlYW0mIG91dCkgY29uc3QKICAgICBvdXQu
cHJpbnQoUmF3UG9pbnRlcihzdGFydCgpLnVudGFnZ2VkUHRyKCkpLCAiLi4uIiwgUmF3UG9pbnRl
cihlbmQoKS51bnRhZ2dlZFB0cigpKSk7CiB9CiAKLU1ldGFBbGxvY2F0b3I6Ok1ldGFBbGxvY2F0
b3IoTG9jayYgbG9jaywgc2l6ZV90IGFsbG9jYXRpb25HcmFudWxlLCBzaXplX3QgcGFnZVNpemUp
CitNZXRhQWxsb2NhdG9yOjpNZXRhQWxsb2NhdG9yKFVuY2hlY2tlZExvY2smIGxvY2ssIHNpemVf
dCBhbGxvY2F0aW9uR3JhbnVsZSwgc2l6ZV90IHBhZ2VTaXplKQogICAgIDogbV9hbGxvY2F0aW9u
R3JhbnVsZShhbGxvY2F0aW9uR3JhbnVsZSkKICAgICAsIG1fcGFnZVNpemUocGFnZVNpemUpCiAg
ICAgLCBtX2J5dGVzQWxsb2NhdGVkKDApCkBAIC0xNTQsNyArMTU0LDcgQEAgTWV0YUFsbG9jYXRv
cjo6TWV0YUFsbG9jYXRvcihMb2NrJiBsb2NrLCBzaXplX3QgYWxsb2NhdGlvbkdyYW51bGUsIHNp
emVfdCBwYWdlU2kKICAgICBBU1NFUlQoc3RhdGljX2Nhc3Q8c2l6ZV90PigxKSA8PCBtX2xvZ0Fs
bG9jYXRpb25HcmFudWxlID09IG1fYWxsb2NhdGlvbkdyYW51bGUpOwogfQogCi1SZWZQdHI8TWV0
YUFsbG9jYXRvckhhbmRsZT4gTWV0YUFsbG9jYXRvcjo6YWxsb2NhdGUoY29uc3QgTG9ja0hvbGRl
ciYsIHNpemVfdCBzaXplSW5CeXRlcykKK1JlZlB0cjxNZXRhQWxsb2NhdG9ySGFuZGxlPiBNZXRh
QWxsb2NhdG9yOjphbGxvY2F0ZShjb25zdCBVbmNoZWNrZWRMb2NrSG9sZGVyJiwgc2l6ZV90IHNp
emVJbkJ5dGVzKQogewogICAgIGlmICghc2l6ZUluQnl0ZXMpCiAgICAgICAgIHJldHVybiBudWxs
cHRyOwpAQCAtMTk4LDcgKzE5OCw3IEBAIFJlZlB0cjxNZXRhQWxsb2NhdG9ySGFuZGxlPiBNZXRh
QWxsb2NhdG9yOjphbGxvY2F0ZShjb25zdCBMb2NrSG9sZGVyJiwgc2l6ZV90IHNpCiAgICAgcmV0
dXJuIGhhbmRsZTsKIH0KIAotTWV0YUFsbG9jYXRvcjo6U3RhdGlzdGljcyBNZXRhQWxsb2NhdG9y
OjpjdXJyZW50U3RhdGlzdGljcyhjb25zdCBMb2NrSG9sZGVyJikKK01ldGFBbGxvY2F0b3I6OlN0
YXRpc3RpY3MgTWV0YUFsbG9jYXRvcjo6Y3VycmVudFN0YXRpc3RpY3MoY29uc3QgVW5jaGVja2Vk
TG9ja0hvbGRlciYpCiB7CiAgICAgU3RhdGlzdGljcyByZXN1bHQ7CiAgICAgcmVzdWx0LmJ5dGVz
QWxsb2NhdGVkID0gbV9ieXRlc0FsbG9jYXRlZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3Rm
L01ldGFBbGxvY2F0b3IuaCBiL1NvdXJjZS9XVEYvd3RmL01ldGFBbGxvY2F0b3IuaAppbmRleCA1
ZmI3MmMyODBlZGMwNmRlYTg5MzFiNmEzYzA5ZTFmZjdiZjVjOGQxLi5lZGZlYzdjM2I4OTk2Mjlm
MDdkZTdhYTA4ZDBjNjMyMjc2ZjhjNDBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9NZXRh
QWxsb2NhdG9yLmgKKysrIGIvU291cmNlL1dURi93dGYvTWV0YUFsbG9jYXRvci5oCkBAIC02NSw3
ICs2NSw3IEBAIHB1YmxpYzoKICAgICB1c2luZyBGcmVlU3BhY2VQdHIgPSBNZXRhQWxsb2NhdG9y
UHRyPEZyZWVTcGFjZVB0clRhZz47CiAgICAgdXNpbmcgTWVtb3J5UHRyID0gTWV0YUFsbG9jYXRv
ckhhbmRsZTo6TWVtb3J5UHRyOwogCi0gICAgV1RGX0VYUE9SVF9QUklWQVRFIE1ldGFBbGxvY2F0
b3IoTG9jayYsIHNpemVfdCBhbGxvY2F0aW9uR3JhbnVsZSwgc2l6ZV90IHBhZ2VTaXplID0gV1RG
OjpwYWdlU2l6ZSgpKTsKKyAgICBXVEZfRVhQT1JUX1BSSVZBVEUgTWV0YUFsbG9jYXRvcihVbmNo
ZWNrZWRMb2NrJiwgc2l6ZV90IGFsbG9jYXRpb25HcmFudWxlLCBzaXplX3QgcGFnZVNpemUgPSBX
VEY6OnBhZ2VTaXplKCkpOwogICAgIAogICAgIFdURl9FWFBPUlRfUFJJVkFURSB2aXJ0dWFsIH5N
ZXRhQWxsb2NhdG9yKCk7CiAgICAgCkBAIC03NCw3ICs3NCw3IEBAIHB1YmxpYzoKICAgICAgICAg
TG9ja2VyIGxvY2tlciB7IG1fbG9jayB9OwogICAgICAgICByZXR1cm4gYWxsb2NhdGUobG9ja2Vy
LCBzaXplSW5CeXRlcyk7CiAgICAgfQotICAgIFdURl9FWFBPUlRfUFJJVkFURSBSZWZQdHI8TWV0
YUFsbG9jYXRvckhhbmRsZT4gYWxsb2NhdGUoY29uc3QgTG9ja0hvbGRlciYsIHNpemVfdCBzaXpl
SW5CeXRlcyk7CisgICAgV1RGX0VYUE9SVF9QUklWQVRFIFJlZlB0cjxNZXRhQWxsb2NhdG9ySGFu
ZGxlPiBhbGxvY2F0ZShjb25zdCBVbmNoZWNrZWRMb2NrSG9sZGVyJiwgc2l6ZV90IHNpemVJbkJ5
dGVzKTsKIAogICAgIHZvaWQgdHJhY2tBbGxvY2F0aW9ucyhNZXRhQWxsb2NhdG9yVHJhY2tlciog
dHJhY2tlcikKICAgICB7CkBAIC05OCw3ICs5OCw3IEBAIHB1YmxpYzoKICAgICAgICAgTG9ja2Vy
IGxvY2tlciB7IG1fbG9jayB9OwogICAgICAgICByZXR1cm4gY3VycmVudFN0YXRpc3RpY3MobG9j
a2VyKTsKICAgICB9Ci0gICAgV1RGX0VYUE9SVF9QUklWQVRFIFN0YXRpc3RpY3MgY3VycmVudFN0
YXRpc3RpY3MoY29uc3QgTG9ja0hvbGRlciYpOworICAgIFdURl9FWFBPUlRfUFJJVkFURSBTdGF0
aXN0aWNzIGN1cnJlbnRTdGF0aXN0aWNzKGNvbnN0IFVuY2hlY2tlZExvY2tIb2xkZXImKTsKIAog
ICAgIC8vIEFkZCBtb3JlIGZyZWUgc3BhY2UgdG8gdGhlIGFsbG9jYXRvci4gQ2FsbCB0aGlzIGRp
cmVjdGx5IGZyb20KICAgICAvLyB0aGUgY29uc3RydWN0b3IgaWYgeW91IHdpc2ggdG8gb3BlcmF0
ZSB0aGUgYWxsb2NhdG9yIHdpdGhpbiBhCkBAIC0xMzQsNyArMTM0LDcgQEAgcHJvdGVjdGVkOgog
ICAgIC8vIGFzIHRoZXJlIGFyZSBIYW5kbGVzIHRoYXQgcmVmZXIgdG8gaXQuCiAKICAgICAvLyBS
ZWxlYXNlIGEgTWV0YUFsbG9jYXRvckhhbmRsZS4KLSAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdmly
dHVhbCB2b2lkIHJlbGVhc2UoY29uc3QgTG9ja0hvbGRlciYsIE1ldGFBbGxvY2F0b3JIYW5kbGUm
KTsKKyAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdmlydHVhbCB2b2lkIHJlbGVhc2UoY29uc3QgVW5j
aGVja2VkTG9ja0hvbGRlciYsIE1ldGFBbGxvY2F0b3JIYW5kbGUmKTsKIHByaXZhdGU6CiAgICAg
CiAgICAgZnJpZW5kIGNsYXNzIE1ldGFBbGxvY2F0b3JIYW5kbGU7CkBAIC0xOTcsNyArMTk3LDcg
QEAgcHJpdmF0ZToKICAgICBzaXplX3QgbV9ieXRlc1Jlc2VydmVkOwogICAgIHNpemVfdCBtX2J5
dGVzQ29tbWl0dGVkOwogICAgIAotICAgIExvY2smIG1fbG9jazsKKyAgICBVbmNoZWNrZWRMb2Nr
JiBtX2xvY2s7CiAKICAgICBNZXRhQWxsb2NhdG9yVHJhY2tlciogbV90cmFja2VyIHsgbnVsbHB0
ciB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9QYXJhbGxlbEhlbHBlclBvb2wuY3Bw
IGIvU291cmNlL1dURi93dGYvUGFyYWxsZWxIZWxwZXJQb29sLmNwcAppbmRleCA0NDNkNzMxM2U2
YmFkMDI4NDM0OWU2MTA3ZjIwMzk3ZjkzZjQzYThkLi5jNzM0Njg1NTkzMTRkMDk3MDBiZGQ4YTVk
MGE1NTIwMWUwZDUwYzljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9QYXJhbGxlbEhlbHBl
clBvb2wuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL1BhcmFsbGVsSGVscGVyUG9vbC5jcHAKQEAg
LTEyMiw3ICsxMjIsNyBAQCB2b2lkIFBhcmFsbGVsSGVscGVyQ2xpZW50OjpydW5UYXNrKGNvbnN0
IFJlZlB0cjxTaGFyZWRUYXNrPHZvaWQgKCk+PiYgdGFzaykKIH0KIAogUGFyYWxsZWxIZWxwZXJQ
b29sOjpQYXJhbGxlbEhlbHBlclBvb2woQ1N0cmluZyYmIHRocmVhZE5hbWUpCi0gICAgOiBtX2xv
Y2soQm94PExvY2s+OjpjcmVhdGUoKSkKKyAgICA6IG1fbG9jayhCb3g8VW5jaGVja2VkTG9jaz46
OmNyZWF0ZSgpKQogICAgICwgbV93b3JrQXZhaWxhYmxlQ29uZGl0aW9uKEF1dG9tYXRpY1RocmVh
ZENvbmRpdGlvbjo6Y3JlYXRlKCkpCiAgICAgLCBtX3RocmVhZE5hbWUoV1RGTW92ZSh0aHJlYWRO
YW1lKSkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1BhcmFsbGVsSGVscGVyUG9vbC5o
IGIvU291cmNlL1dURi93dGYvUGFyYWxsZWxIZWxwZXJQb29sLmgKaW5kZXggMWU3NTk5YzgzZDY3
MTIxYzdlNmJmZTg3Y2NhOTFlZjZjZTg2ZTQwNy4uNjY0ZmFkZTg1Mzk5M2FiNGIwNTk1NDg3MjIx
NGYzODdjOWE2ZDA1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvUGFyYWxsZWxIZWxwZXJQ
b29sLmgKKysrIGIvU291cmNlL1dURi93dGYvUGFyYWxsZWxIZWxwZXJQb29sLmgKQEAgLTE5OSw5
ICsxOTksOSBAQCBwcml2YXRlOgogICAgIFBhcmFsbGVsSGVscGVyQ2xpZW50KiBnZXRDbGllbnRX
aXRoVGFzayhjb25zdCBBYnN0cmFjdExvY2tlciYpOwogICAgIFBhcmFsbGVsSGVscGVyQ2xpZW50
KiB3YWl0Rm9yQ2xpZW50V2l0aFRhc2soY29uc3QgQWJzdHJhY3RMb2NrZXImKTsKICAgICAKLSAg
ICBCb3g8TG9jaz4gbV9sb2NrOyAvLyBBdXRvbWF0aWNUaHJlYWQgd2FudHMgdGhpcyBpbiBhIGJv
eCBmb3Igc2FmZXR5LgorICAgIEJveDxVbmNoZWNrZWRMb2NrPiBtX2xvY2s7IC8vIEF1dG9tYXRp
Y1RocmVhZCB3YW50cyB0aGlzIGluIGEgYm94IGZvciBzYWZldHkuCiAgICAgUmVmPEF1dG9tYXRp
Y1RocmVhZENvbmRpdGlvbj4gbV93b3JrQXZhaWxhYmxlQ29uZGl0aW9uOwotICAgIENvbmRpdGlv
biBtX3dvcmtDb21wbGV0ZUNvbmRpdGlvbjsKKyAgICBVbmNoZWNrZWRDb25kaXRpb24gbV93b3Jr
Q29tcGxldGVDb25kaXRpb247CiAKICAgICBXZWFrUmFuZG9tIG1fcmFuZG9tOwogICAgIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dURi93dGYvUmVjdXJzaXZlTG9ja0FkYXB0ZXIuaCBiL1NvdXJjZS9X
VEYvd3RmL1JlY3Vyc2l2ZUxvY2tBZGFwdGVyLmgKaW5kZXggMWVlMTJkNDE5NDcyNmQyMzI0OTJk
NjU0NDQxNmVmNjYxNDhiZDY2YS4uY2E3YmM0NTU0NDdiMTUyMjA3Y2UxYWI3ZjBjYjQ0ZDRlZDE4
ZThkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvUmVjdXJzaXZlTG9ja0FkYXB0ZXIuaAor
KysgYi9Tb3VyY2UvV1RGL3d0Zi9SZWN1cnNpdmVMb2NrQWRhcHRlci5oCkBAIC04OSw3ICs4OSw3
IEBAIHByaXZhdGU6CiAgICAgTG9ja1R5cGUgbV9sb2NrOwogfTsKIAotdXNpbmcgUmVjdXJzaXZl
TG9jayA9IFJlY3Vyc2l2ZUxvY2tBZGFwdGVyPExvY2s+OwordXNpbmcgUmVjdXJzaXZlTG9jayA9
IFJlY3Vyc2l2ZUxvY2tBZGFwdGVyPFVuY2hlY2tlZExvY2s+OwogCiB9IC8vIG5hbWVzcGFjZSBX
VEYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvV29ya2VyUG9vbC5jcHAgYi9Tb3VyY2Uv
V1RGL3d0Zi9Xb3JrZXJQb29sLmNwcAppbmRleCA4YTljMWZkYTc0YTczYjJjNWFiNWNkYTJkOGU0
NjA5YWJlODBhMzBiLi4yMTlkYmYxNTFkNjYzN2M2N2EzZTQ3NmZkMTNlM2QxYjg4YjQzNTdhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9Xb3JrZXJQb29sLmNwcAorKysgYi9Tb3VyY2UvV1RG
L3d0Zi9Xb3JrZXJQb29sLmNwcApAQCAtMzIsNyArMzIsNyBAQCBjbGFzcyBXb3JrZXJQb29sOjpX
b3JrZXIgZmluYWwgOiBwdWJsaWMgQXV0b21hdGljVGhyZWFkIHsKIHB1YmxpYzoKICAgICBmcmll
bmQgY2xhc3MgV29ya2VyUG9vbDsKIAotICAgIFdvcmtlcihjb25zdCBBYnN0cmFjdExvY2tlciYg
bG9ja2VyLCBXb3JrZXJQb29sJiBwb29sLCBCb3g8TG9jaz4gbG9jaywgUmVmPEF1dG9tYXRpY1Ro
cmVhZENvbmRpdGlvbj4mJiBjb25kaXRpb24sIFNlY29uZHMgdGltZW91dCkKKyAgICBXb3JrZXIo
Y29uc3QgQWJzdHJhY3RMb2NrZXImIGxvY2tlciwgV29ya2VyUG9vbCYgcG9vbCwgQm94PFVuY2hl
Y2tlZExvY2s+IGxvY2ssIFJlZjxBdXRvbWF0aWNUaHJlYWRDb25kaXRpb24+JiYgY29uZGl0aW9u
LCBTZWNvbmRzIHRpbWVvdXQpCiAgICAgICAgIDogQXV0b21hdGljVGhyZWFkKGxvY2tlciwgbG9j
aywgV1RGTW92ZShjb25kaXRpb24pLCB0aW1lb3V0KQogICAgICAgICAsIG1fcG9vbChwb29sKQog
ICAgIHsKQEAgLTgyLDcgKzgyLDcgQEAgcHJpdmF0ZToKIH07CiAKIFdvcmtlclBvb2w6Oldvcmtl
clBvb2woQVNDSUlMaXRlcmFsIG5hbWUsIHVuc2lnbmVkIG51bWJlck9mV29ya2VycywgU2Vjb25k
cyB0aW1lb3V0KQotICAgIDogbV9sb2NrKEJveDxMb2NrPjo6Y3JlYXRlKCkpCisgICAgOiBtX2xv
Y2soQm94PFVuY2hlY2tlZExvY2s+OjpjcmVhdGUoKSkKICAgICAsIG1fY29uZGl0aW9uKEF1dG9t
YXRpY1RocmVhZENvbmRpdGlvbjo6Y3JlYXRlKCkpCiAgICAgLCBtX3RpbWVvdXQodGltZW91dCkK
ICAgICAsIG1fbmFtZShuYW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvV29ya2VyUG9v
bC5oIGIvU291cmNlL1dURi93dGYvV29ya2VyUG9vbC5oCmluZGV4IDYyMzVlNzMxZWQ3NWI4MDEy
NTA5NTM1OTA2OGIwOGQ0YzFkY2ZlYzIuLjdhNDA0MmI0NmIxNjg4MDIzZjFjZWY5ZTY0MmFiMmM0
OGM4ODkzZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1dvcmtlclBvb2wuaAorKysgYi9T
b3VyY2UvV1RGL3d0Zi9Xb3JrZXJQb29sLmgKQEAgLTU3LDcgKzU3LDcgQEAgcHJpdmF0ZToKIAog
ICAgIGJvb2wgc2hvdWxkU2xlZXAoY29uc3QgQWJzdHJhY3RMb2NrZXImKTsKIAotICAgIEJveDxM
b2NrPiBtX2xvY2s7CisgICAgQm94PFVuY2hlY2tlZExvY2s+IG1fbG9jazsKICAgICBSZWY8QXV0
b21hdGljVGhyZWFkQ29uZGl0aW9uPiBtX2NvbmRpdGlvbjsKICAgICBTZWNvbmRzIG1fdGltZW91
dDsKICAgICBNb25vdG9uaWNUaW1lIG1fbGFzdFRpbWVvdXRUaW1lIHsgTW9ub3RvbmljVGltZTo6
bmFuKCkgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvQXRvbVN0cmluZ0ltcGwu
Y3BwIGIvU291cmNlL1dURi93dGYvdGV4dC9BdG9tU3RyaW5nSW1wbC5jcHAKaW5kZXggYTAyOGU0
MmEzNDY0MTk2ZmRhODc0M2Y3MTI3ZDhiNzNiM2QxYzI4Yy4uMDA5ZTJhMThmZmQyYTRhNDc0YTFl
ZGRmNTU4ZjZlY2FiODI3OTM0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvdGV4dC9BdG9t
U3RyaW5nSW1wbC5jcHAKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9BdG9tU3RyaW5nSW1wbC5j
cHAKQEAgLTQ1LDcgKzQ1LDcgQEAgY2xhc3MgQXRvbVN0cmluZ1RhYmxlTG9ja2VyIDogcHVibGlj
IExvY2tIb2xkZXIgewogICAgIHN0YXRpYyBMb2NrIHNfc3RyaW5nVGFibGVMb2NrOwogcHVibGlj
OgogICAgIEF0b21TdHJpbmdUYWJsZUxvY2tlcigpCi0gICAgICAgIDogTG9ja0hvbGRlcigmc19z
dHJpbmdUYWJsZUxvY2spCisgICAgICAgIDogTG9ja0hvbGRlcihzX3N0cmluZ1RhYmxlTG9jaykK
ICAgICB7CiAgICAgfQogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL3NlcnZlci9JREJTZXJ2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvc2VydmVyL0lEQlNlcnZlci5jcHAKaW5kZXggMWVkZWVkMmEzZmE2MjJjNTgyMjRiMDY4
MzBhM2FiNDM0NGMwNDZjYS4uNDlkODc2NjJmY2IzYTVhZTIzZjJhN2FiNTI3ZTY1NTdjMzI2ZWEz
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lE
QlNlcnZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVy
L0lEQlNlcnZlci5jcHAKQEAgLTczMyw3ICs3MzMsNyBAQCB2b2lkIElEQlNlcnZlcjo6cmVuYW1l
T3JpZ2luKGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgb2xkT3JpZ2luLCBjb25z
dAogICAgICAgICBGaWxlU3lzdGVtOjptb3ZlRmlsZShvbGRPcmlnaW5QYXRoLCBuZXdPcmlnaW5Q
YXRoKTsKIH0KIAotU3RvcmFnZVF1b3RhTWFuYWdlcjo6RGVjaXNpb24gSURCU2VydmVyOjpyZXF1
ZXN0U3BhY2UoY29uc3QgQ2xpZW50T3JpZ2luJiBvcmlnaW4sIHVpbnQ2NF90IHRhc2tTaXplKQor
U3RvcmFnZVF1b3RhTWFuYWdlcjo6RGVjaXNpb24gSURCU2VydmVyOjpyZXF1ZXN0U3BhY2UoY29u
c3QgQ2xpZW50T3JpZ2luJiBvcmlnaW4sIHVpbnQ2NF90IHRhc2tTaXplKSBXVEZfSUdOT1JFU19U
SFJFQURfU0FGRVRZX0FOQUxZU0lTCiB7CiAgICAgQVNTRVJUKCFpc01haW5UaHJlYWQoKSk7CiAg
ICAgQVNTRVJUKG1fbG9jay5pc0hlbGQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1ZGlvL01lZGlhRWxlbWVudEF1ZGlvU291cmNlTm9kZS5oIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdWRpby9NZWRpYUVsZW1lbnRBdWRpb1NvdXJjZU5vZGUuaAppbmRl
eCA3NDM5YTZkYjI4MmZiYjk0ZjQxMWU0NzE1YWRhMTU5OGNiMDRiYzM0Li4wNmZlNTFkOTQ0ZDBi
OGU5YzhkYjYxNDY3ZDFhMTg2YzVkZGY0MTRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1ZGlvL01lZGlhRWxlbWVudEF1ZGlvU291cmNlTm9kZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vTWVkaWFFbGVtZW50QXVkaW9Tb3VyY2VOb2RlLmgK
QEAgLTU0LDcgKzU0LDcgQEAgcHVibGljOgogICAgIC8vIEF1ZGlvU291cmNlUHJvdmlkZXJDbGll
bnQKICAgICB2b2lkIHNldEZvcm1hdChzaXplX3QgbnVtYmVyT2ZDaGFubmVscywgZmxvYXQgc2Ft
cGxlUmF0ZSkgb3ZlcnJpZGU7CiAKLSAgICBMb2NrJiBwcm9jZXNzTG9jaygpIHsgcmV0dXJuIG1f
cHJvY2Vzc0xvY2s7IH0KKyAgICBVbmNoZWNrZWRMb2NrJiBwcm9jZXNzTG9jaygpIHsgcmV0dXJu
IG1fcHJvY2Vzc0xvY2s7IH0KIAogcHJpdmF0ZToKICAgICBNZWRpYUVsZW1lbnRBdWRpb1NvdXJj
ZU5vZGUoQmFzZUF1ZGlvQ29udGV4dCYsIFJlZjxIVE1MTWVkaWFFbGVtZW50PiYmKTsKQEAgLTcw
LDcgKzcwLDcgQEAgcHJpdmF0ZToKICAgICBib29sIHdvdWxkVGFpbnRPcmlnaW4oKTsKIAogICAg
IFJlZjxIVE1MTWVkaWFFbGVtZW50PiBtX21lZGlhRWxlbWVudDsKLSAgICBMb2NrIG1fcHJvY2Vz
c0xvY2s7CisgICAgVW5jaGVja2VkTG9jayBtX3Byb2Nlc3NMb2NrOwogCiAgICAgdW5zaWduZWQg
bV9zb3VyY2VOdW1iZXJPZkNoYW5uZWxzIHsgMCB9OwogICAgIGRvdWJsZSBtX3NvdXJjZVNhbXBs
ZVJhdGUgeyAwIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFi
YXNlL0RhdGFiYXNlVHJhY2tlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFi
YXNlL0RhdGFiYXNlVHJhY2tlci5jcHAKaW5kZXggNDViMjdmOWQzNTE5YzExOTkyNDc2NmVjNGMy
N2U0MDEzNDI5MjA0OS4uYTlmMjgwYjljNTlmNDhiZGIyOGRhNzMwMTUzNzY0M2U5NGRkNjU2MCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRy
YWNrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJh
c2VUcmFja2VyLmNwcApAQCAtMTI4NSw4ICsxMjg1LDggQEAgYm9vbCBEYXRhYmFzZVRyYWNrZXI6
OmRlbGV0ZURhdGFiYXNlRmlsZUlmRW1wdHkoY29uc3QgU3RyaW5nJiBwYXRoKQogICAgIHJldHVy
biBTUUxpdGVGaWxlU3lzdGVtOjpkZWxldGVEYXRhYmFzZUZpbGUocGF0aCk7CiB9CiAKLXN0YXRp
YyBMb2NrIG9wZW5EYXRhYmFzZUxvY2s7Ci1Mb2NrJiBEYXRhYmFzZVRyYWNrZXI6Om9wZW5EYXRh
YmFzZU11dGV4KCkKK3N0YXRpYyBVbmNoZWNrZWRMb2NrIG9wZW5EYXRhYmFzZUxvY2s7CitVbmNo
ZWNrZWRMb2NrJiBEYXRhYmFzZVRyYWNrZXI6Om9wZW5EYXRhYmFzZU11dGV4KCkKIHsKICAgICBy
ZXR1cm4gb3BlbkRhdGFiYXNlTG9jazsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VUcmFja2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlVHJhY2tlci5oCmluZGV4IGRkOWM1ZDg3NzZiZDFkYzM4
OTY2ZTc1ZjU0ZjEzMWFkZDc2NjhiMzQuLmJkY2Y2ZDA3ZGQ4YTMzNjVkYzRhZmViOTQzZmNiOGI1
YWNlOTRmNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2Uv
RGF0YWJhc2VUcmFja2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFz
ZS9EYXRhYmFzZVRyYWNrZXIuaApAQCAtMTA0LDcgKzEwNCw3IEBAIHB1YmxpYzoKICAgICAvLyBN
b2JpbGVTYWZhcmkgd2lsbCBncmFiIHRoaXMgbXV0ZXggb24gdGhlIG1haW4gdGhyZWFkIGJlZm9y
ZSBkaXNwYXRjaGluZyB0aGUgdGFzayB0byAKICAgICAvLyBjbGVhbiB1cCB6ZXJvIGJ5dGUgZGF0
YWJhc2UgZmlsZXMuICBBbnkgb3BlcmF0aW9ucyB0byBvcGVuIG5ldyBkYXRhYmFzZSB3aWxsIGhh
dmUgdG8KICAgICAvLyB3YWl0IGZvciB0aGF0IHRhc2sgdG8gZmluaXNoIGJ5IHdhaXRpbmcgb24g
dGhpcyBtdXRleC4KLSAgICBzdGF0aWMgTG9jayYgb3BlbkRhdGFiYXNlTXV0ZXgoKTsKKyAgICBz
dGF0aWMgVW5jaGVja2VkTG9jayYgb3BlbkRhdGFiYXNlTXV0ZXgoKTsKICAgICAKICAgICBXRUJD
T1JFX0VYUE9SVCBzdGF0aWMgdm9pZCBlbXB0eURhdGFiYXNlRmlsZXNSZW1vdmFsVGFza1dpbGxC
ZVNjaGVkdWxlZCgpOwogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyB2b2lkIGVtcHR5RGF0YWJh
c2VGaWxlc1JlbW92YWxUYXNrRGlkRmluaXNoKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL09yaWdpbkxvY2suY3BwIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJkYXRhYmFzZS9PcmlnaW5Mb2NrLmNwcAppbmRleCBhMjFiY2RiNzgzODZjODEwZWM1
OTk0MWMyNzVmNGVmYmFmZjIzZmIzLi43NTNlNGU1YWM4NjYyODNhNGM3M2Y0NGFmOWFhNGVjZGY1
ZDE1YWVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL09y
aWdpbkxvY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvT3Jp
Z2luTG9jay5jcHAKQEAgLTQzLDcgKzQzLDcgQEAgT3JpZ2luTG9jazo6T3JpZ2luTG9jayhTdHJp
bmcgb3JpZ2luUGF0aCkKIAogT3JpZ2luTG9jazo6fk9yaWdpbkxvY2soKSA9IGRlZmF1bHQ7CiAK
LXZvaWQgT3JpZ2luTG9jazo6bG9jaygpCit2b2lkIE9yaWdpbkxvY2s6OmxvY2soKSBXVEZfSUdO
T1JFU19USFJFQURfU0FGRVRZX0FOQUxZU0lTCiB7CiAgICAgbV9tdXRleC5sb2NrKCk7CiAKQEAg
LTU5LDcgKzU5LDcgQEAgdm9pZCBPcmlnaW5Mb2NrOjpsb2NrKCkKICNlbmRpZgogfQogCi12b2lk
IE9yaWdpbkxvY2s6OnVubG9jaygpCit2b2lkIE9yaWdpbkxvY2s6OnVubG9jaygpIFdURl9JR05P
UkVTX1RIUkVBRF9TQUZFVFlfQU5BTFlTSVMKIHsKICNpZiBVU0UoRklMRV9MT0NLKQogICAgIC8v
IElmIHRoZSBmaWxlIGRlc2NyaXB0b3Igd2FzIHVuaW5pdGlhbGl6ZWQsIHRoZW4gdGhhdCBtZWFu
cyB0aGUgZGlyZWN0b3J5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0RPTUdsb2JhbE9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01HbG9i
YWxPYmplY3QuaAppbmRleCAxNjRjNzIzODY0NmEwMGEzZDA1ZWExYmE0MWM5NzA2MDU1ZDQxNGU0
Li45NTZkNTFhZDQ4MGQ0ZGQyYzBhODkzOGRlYWY0NGRhYWJhYTc1NmRmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9iamVjdC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0LmgKQEAgLTU4LDcgKzU4LDcg
QEAgcHVibGljOgogICAgIHN0YXRpYyB2b2lkIGRlc3Ryb3koSlNDOjpKU0NlbGwqKTsKIAogcHVi
bGljOgotICAgIExvY2smIGdjTG9jaygpIHsgcmV0dXJuIG1fZ2NMb2NrOyB9CisgICAgVW5jaGVj
a2VkTG9jayYgZ2NMb2NrKCkgeyByZXR1cm4gbV9nY0xvY2s7IH0KIAogICAgIEpTRE9NU3RydWN0
dXJlTWFwJiBzdHJ1Y3R1cmVzKGNvbnN0IEFic3RyYWN0TG9ja2VyJikgeyByZXR1cm4gbV9zdHJ1
Y3R1cmVzOyB9CiAgICAgSlNET01Db25zdHJ1Y3Rvck1hcCYgY29uc3RydWN0b3JzKGNvbnN0IEFi
c3RyYWN0TG9ja2VyJikgeyByZXR1cm4gbV9jb25zdHJ1Y3RvcnM7IH0KQEAgLTEyMSw3ICsxMjEs
NyBAQCBwcm90ZWN0ZWQ6CiAKICAgICBSZWY8RE9NV3JhcHBlcldvcmxkPiBtX3dvcmxkOwogICAg
IHVpbnQ4X3QgbV93b3JsZElzTm9ybWFsOwotICAgIExvY2sgbV9nY0xvY2s7CisgICAgVW5jaGVj
a2VkTG9jayBtX2djTG9jazsKICAgICBKU0M6OldyaXRlQmFycmllcjxKU0M6OkpTUHJveHk+IG1f
cHJveHk7CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKaW5kZXggN2VhZTNhMTFhZWNmYjJhYWQ5
OWZmMTkyYjQ1ODdkOTY3NWNmZGZiNy4uYTJlNWNhM2YxMjE2ODM4MDk4MzI0MGZmYmExZTRmZGE3
MDMyNWY0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcApAQCAtMjIxMSw3ICsyMjExLDcgQEAgc3RhdGljIEV2
ZW50VGFyZ2V0RGF0YU1hcCYgZXZlbnRUYXJnZXREYXRhTWFwKCkKICAgICByZXR1cm4gbWFwOwog
fQogCi1zdGF0aWMgTG9jayBzX2V2ZW50VGFyZ2V0RGF0YU1hcExvY2s7CitzdGF0aWMgVW5jaGVj
a2VkTG9jayBzX2V2ZW50VGFyZ2V0RGF0YU1hcExvY2s7CiAKIEV2ZW50VGFyZ2V0RGF0YSogTm9k
ZTo6ZXZlbnRUYXJnZXREYXRhKCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTE1lZGlhRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1l
bnQuY3BwCmluZGV4IDliZDQwMDEwYzM1YWEwZTk3YjZlMWRhZTQ4YjNlMTBkNGQ5NWQ2N2YuLjFi
Y2RjYTFhNzJjODAwMTVjNDQ4MDJmYWFmNDU2YTQ2ZDg0ZTNjNWMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcApAQCAtNjYyNiw3ICs2NjI2LDcgQEAgdm9pZCBIVE1M
TWVkaWFFbGVtZW50OjpjcmVhdGVNZWRpYVBsYXllcigpCiAKICNpZiBFTkFCTEUoV0VCX0FVRElP
KQogICAgIGF1dG8gcHJvdGVjdGVkQXVkaW9Tb3VyY2VOb2RlID0gbWFrZVJlZlB0cihtX2F1ZGlv
U291cmNlTm9kZSk7Ci0gICAgTG9ja2VyPExvY2s+IGF1ZGlvU291cmNlTm9kZUxvY2tlcihtX2F1
ZGlvU291cmNlTm9kZSA/ICZtX2F1ZGlvU291cmNlTm9kZS0+cHJvY2Vzc0xvY2soKSA6IG51bGxw
dHIpOworICAgIExvY2tlciBhdWRpb1NvdXJjZU5vZGVMb2NrZXIobV9hdWRpb1NvdXJjZU5vZGUg
PyAmbV9hdWRpb1NvdXJjZU5vZGUtPnByb2Nlc3NMb2NrKCkgOiBudWxscHRyKTsKICNlbmRpZgog
CiAjaWYgRU5BQkxFKE1FRElBX1NPVVJDRSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL1dlYkdMQ29udGV4dEdyb3VwLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2Fu
dmFzL1dlYkdMQ29udGV4dEdyb3VwLmNwcAppbmRleCBhYmQ4ZjI3MzY4MzkxZTNlMWQ3ZmNmOWQz
N2I5ZDc3OTZhZjMzNjFiLi4xNGMyYTA4OTk3ZDkwMWRhMTQwYTRiMDM3ODQ4ZTc0MTQ0M2Y2NTI1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTENvbnRleHRHcm91
cC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xDb250ZXh0R3JvdXAu
Y3BwCkBAIC01NSw3ICs1NSw3IEBAIEdyYXBoaWNzQ29udGV4dEdMJiBXZWJHTENvbnRleHRHcm91
cDo6Z2V0QUdyYXBoaWNzQ29udGV4dEdMKCkKICAgICByZXR1cm4gKigqbV9jb250ZXh0cy5iZWdp
bigpKS0+Z3JhcGhpY3NDb250ZXh0R0woKTsKIH0KIAotV1RGOjpMb2NrJiBXZWJHTENvbnRleHRH
cm91cDo6b2JqZWN0R3JhcGhMb2NrRm9yQUNvbnRleHQoKQorVW5jaGVja2VkTG9jayYgV2ViR0xD
b250ZXh0R3JvdXA6Om9iamVjdEdyYXBoTG9ja0ZvckFDb250ZXh0KCkKIHsKICAgICBBU1NFUlQo
IW1fY29udGV4dHMuaXNFbXB0eSgpKTsKICAgICAvLyBTaW5jZSB0aGUgV0VCR0xfc2hhcmVkX29i
amVjdHMgZXh0ZW5zaW9uIG5ldmVyIHNoaXBwZWQsIGFuZCBpcwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xDb250ZXh0R3JvdXAuaCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL1dlYkdMQ29udGV4dEdyb3VwLmgKaW5kZXggODU1Y2U3MjM5ODZmZTA3NzU5
OGYyNDY4MWFlODA4NmM4MWVkZmEwMy4uYjZhZmUwYWY5N2ViZGZmYWMxYTFjZDAwNDNmZmJmNzlj
Y2QxNzc4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xDb250
ZXh0R3JvdXAuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTENvbnRleHRH
cm91cC5oCkBAIC00NSw3ICs0NSw3IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgaGFzQUNvbnRleHQo
KSBjb25zdDsKICAgICBHcmFwaGljc0NvbnRleHRHTCYgZ2V0QUdyYXBoaWNzQ29udGV4dEdMKCk7
Ci0gICAgTG9jayYgb2JqZWN0R3JhcGhMb2NrRm9yQUNvbnRleHQoKTsKKyAgICBVbmNoZWNrZWRM
b2NrJiBvYmplY3RHcmFwaExvY2tGb3JBQ29udGV4dCgpOwogCiAgICAgdm9pZCBsb3NlQ29udGV4
dEdyb3VwKFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6Okxvc3RDb250ZXh0TW9kZSk7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMQ29udGV4dE9iamVjdC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTENvbnRleHRPYmplY3QuY3BwCmlu
ZGV4IDdjOTE5ZjJiNjY1NmI2N2IxNmNhNjM0MGIwYjJhNGI2NDVkMDQ2M2IuLjI0MzU0ZDA1Yjgx
YmM4NTIyYmU3N2QzYmI4ZjRjY2U0N2ViMzYzZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL1dlYkdMQ29udGV4dE9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvV2ViR0xDb250ZXh0T2JqZWN0LmNwcApAQCAtNTQsNyArNTQsNyBAQCB2b2lk
IFdlYkdMQ29udGV4dE9iamVjdDo6ZGV0YWNoQ29udGV4dChjb25zdCBBYnN0cmFjdExvY2tlciYg
bG9ja2VyKQogICAgIH0KIH0KIAotV1RGOjpMb2NrJiBXZWJHTENvbnRleHRPYmplY3Q6Om9iamVj
dEdyYXBoTG9ja0ZvckNvbnRleHQoKQorVW5jaGVja2VkTG9jayYgV2ViR0xDb250ZXh0T2JqZWN0
OjpvYmplY3RHcmFwaExvY2tGb3JDb250ZXh0KCkKIHsKICAgICAvLyBTaG91bGQgbm90IGNhbGwg
dGhpcyBpZiB0aGUgb2JqZWN0IG9yIGNvbnRleHQgaGFzIGJlZW4gZGVsZXRlZC4KICAgICBBU1NF
UlQobV9jb250ZXh0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dl
YkdMQ29udGV4dE9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xDb250
ZXh0T2JqZWN0LmgKaW5kZXggZGJmZGQ2YmZjMGVmNDRlYjg4MmViOWM1OWIwMDhkMjk4MTEyNjQ5
NS4uMGVhNzk5ZmZiYjNhOGFhZTAxMTNkOWE1NWNlM2U2M2JiYTJjOGVhZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xDb250ZXh0T2JqZWN0LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xDb250ZXh0T2JqZWN0LmgKQEAgLTQ5LDcgKzQ5
LDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBkZXRhY2hDb250ZXh0KGNvbnN0IFdURjo6QWJzdHJh
Y3RMb2NrZXImKTsKIAotICAgIFdURjo6TG9jayYgb2JqZWN0R3JhcGhMb2NrRm9yQ29udGV4dCgp
IG92ZXJyaWRlOworICAgIFVuY2hlY2tlZExvY2smIG9iamVjdEdyYXBoTG9ja0ZvckNvbnRleHQo
KSBvdmVycmlkZTsKIAogcHJvdGVjdGVkOgogICAgIFdlYkdMQ29udGV4dE9iamVjdChXZWJHTFJl
bmRlcmluZ0NvbnRleHRCYXNlJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2Nh
bnZhcy9XZWJHTE9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xPYmpl
Y3QuaAppbmRleCAwMGNkOGYwYzJiN2IyMWJiZjk3MmFmYTdjZmM1ZWU4NWUzZTA2MGRkLi44YWYy
ZWRhNDAwZTRmOGVjNDViZjdlNDJhMmZhYmFiYmQ4YjBjYmIyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTE9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL1dlYkdMT2JqZWN0LmgKQEAgLTcxLDcgKzcxLDcgQEAgcHVibGljOgogICAgIC8v
IFdFQkdMX3NoYXJlZF9vYmplY3RzIGV4dGVuc2lvbiBzcGVjaWZpY2F0aW9uIG5ldmVyIHNoaXBw
ZWQgKGFuZAogICAgIC8vIGlzIHVubGlrZWx5IHRvKSwgdGhpcyBiYXNpY2FsbHkgcmV0dXJucyB0
aGUgc2FtZSByZXN1bHQgZm9yCiAgICAgLy8gYm90aCBjb250ZXh0IG9iamVjdHMgYW5kIHNoYXJl
ZCBvYmplY3RzLgotICAgIHZpcnR1YWwgV1RGOjpMb2NrJiBvYmplY3RHcmFwaExvY2tGb3JDb250
ZXh0KCkgPSAwOworICAgIHZpcnR1YWwgVW5jaGVja2VkTG9jayYgb2JqZWN0R3JhcGhMb2NrRm9y
Q29udGV4dCgpID0gMDsKIAogcHJvdGVjdGVkOgogICAgIFdlYkdMT2JqZWN0KCkgPSBkZWZhdWx0
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdD
b250ZXh0QmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmlu
Z0NvbnRleHRCYXNlLmNwcAppbmRleCA1MTU1NDg4ZDdlZDFkYTk1MGQ1YWY2NzhkNDZkMjM0MGI4
YmE5Y2VlLi4zOWMzMmU4NDQ5YTZiOGQ0MGZhYmFmMDRmZTkwNmMwYzU0MjBiMGM1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRl
eHRCYXNlLmNwcApAQCAtNzk5MCw3ICs3OTkwLDcgQEAgdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRl
eHRCYXNlOjphZGRNZW1iZXJzVG9PcGFxdWVSb290cyhKU0M6OkFic3RyYWN0U2xvdFZpc2l0b3IK
ICAgICAvLyByb290cyBmb3IgZXh0ZW5zaW9ucy4KIH0KIAotTG9jayYgV2ViR0xSZW5kZXJpbmdD
b250ZXh0QmFzZTo6b2JqZWN0R3JhcGhMb2NrKCkKK1VuY2hlY2tlZExvY2smIFdlYkdMUmVuZGVy
aW5nQ29udGV4dEJhc2U6Om9iamVjdEdyYXBoTG9jaygpCiB7CiAgICAgcmV0dXJuIG1fb2JqZWN0
R3JhcGhMb2NrOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2Vi
R0xSZW5kZXJpbmdDb250ZXh0QmFzZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2Vi
R0xSZW5kZXJpbmdDb250ZXh0QmFzZS5oCmluZGV4IGZhZThhNTM5ZWM4OTE0MzkyOWVhYjQ2ZmNh
MzNjMzEyNmEzYzE2OWYuLmQ3Y2JlZWQzMmNiYzBiNzk3YzEwNjhmZDU5N2QxM2VkOGU0YzE5NzMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29u
dGV4dEJhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmlu
Z0NvbnRleHRCYXNlLmgKQEAgLTQyNiw3ICs0MjYsNyBAQCBwdWJsaWM6CiAgICAgLy8gY3VycmVu
dGx5IGxhdGNoZWQgaW50byB0aGUgY29udGV4dCAtIHdpdGhvdXQgdHJhdmVyc2luZyBhbGwgb2YK
ICAgICAvLyB0aGUgbGF0Y2hlZCBvYmplY3RzIHRvIGZpbmQgdGhlIGN1cnJlbnQgb25lLCB3aGlj
aCB3b3VsZCBiZQogICAgIC8vIHByb2hpYml0aXZlbHkgZXhwZW5zaXZlLgotICAgIExvY2smIG9i
amVjdEdyYXBoTG9jaygpOworICAgIFVuY2hlY2tlZExvY2smIG9iamVjdEdyYXBoTG9jaygpOwog
CiBwcm90ZWN0ZWQ6CiAgICAgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZShDYW52YXNCYXNlJiwg
V2ViR0xDb250ZXh0QXR0cmlidXRlcyk7CkBAIC01NDAsNyArNTQwLDcgQEAgcHJvdGVjdGVkOgog
CiAgICAgUmVmUHRyPEdyYXBoaWNzQ29udGV4dEdMPiBtX2NvbnRleHQ7CiAgICAgUmVmUHRyPFdl
YkdMQ29udGV4dEdyb3VwPiBtX2NvbnRleHRHcm91cDsKLSAgICBMb2NrIG1fb2JqZWN0R3JhcGhM
b2NrOworICAgIFVuY2hlY2tlZExvY2sgbV9vYmplY3RHcmFwaExvY2s7CiAKICAgICBib29sIG1f
cmVzdG9yZUFsbG93ZWQgeyBmYWxzZSB9OwogICAgIFN1c3BlbmRhYmxlVGltZXIgbV9yZXN0b3Jl
VGltZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFNoYXJl
ZE9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFNoYXJlZE9iamVj
dC5jcHAKaW5kZXggOTM2Yzk4MWM5OTI5MGQ4ZTdjZWY5OGIxM2I1NjkzY2JlYjIzNzk4Yy4uMGFi
OGNiMjQxYTFiM2YzODhmZWYzODI5OTc2Y2VjZjZkNDg3ZDM3OCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xTaGFyZWRPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMU2hhcmVkT2JqZWN0LmNwcApAQCAtODIsNyArODIsNyBA
QCBHcmFwaGljc0NvbnRleHRHTCogV2ViR0xTaGFyZWRPYmplY3Q6OmdldEFHcmFwaGljc0NvbnRl
eHRHTCgpIGNvbnN0CiAgICAgcmV0dXJuIG1fY29udGV4dEdyb3VwID8gJm1fY29udGV4dEdyb3Vw
LT5nZXRBR3JhcGhpY3NDb250ZXh0R0woKSA6IG51bGxwdHI7CiB9CiAKLVdURjo6TG9jayYgV2Vi
R0xTaGFyZWRPYmplY3Q6Om9iamVjdEdyYXBoTG9ja0ZvckNvbnRleHQoKQorVW5jaGVja2VkTG9j
ayYgV2ViR0xTaGFyZWRPYmplY3Q6Om9iamVjdEdyYXBoTG9ja0ZvckNvbnRleHQoKQogewogICAg
IC8vIFNob3VsZCBub3QgY2FsbCB0aGlzIGlmIHRoZSBvYmplY3Qgb3IgY29udGV4dCBoYXMgYmVl
biBkZWxldGVkLgogICAgIEFTU0VSVChtX2NvbnRleHRHcm91cCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFNoYXJlZE9iamVjdC5oIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9jYW52YXMvV2ViR0xTaGFyZWRPYmplY3QuaAppbmRleCA1ZDEzYWZhMzg0NmFhMjE1
MzBjMGFiZDUzOTBhYTFlNzk4ZTllMWQwLi5mNTNkYjE5YjA2OTIyOTA2YmRjY2IxNmMzOTM3Mzg2
MTVmMTc2NTc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFNo
YXJlZE9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMU2hhcmVk
T2JqZWN0LmgKQEAgLTU5LDcgKzU5LDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBkZXRhY2hDb250
ZXh0R3JvdXBXaXRob3V0RGVsZXRpbmdPYmplY3QoKTsKIAotICAgIFdURjo6TG9jayYgb2JqZWN0
R3JhcGhMb2NrRm9yQ29udGV4dCgpIG92ZXJyaWRlOworICAgIFVuY2hlY2tlZExvY2smIG9iamVj
dEdyYXBoTG9ja0ZvckNvbnRleHQoKSBvdmVycmlkZTsKIAogcHJvdGVjdGVkOgogICAgIFdlYkdM
U2hhcmVkT2JqZWN0KFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlTWFjLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZU1hYy5oCmluZGV4IGI0
MmJmNDExNDU0ZmEwMzRhN2RhYTg2YzMxNTNhYTFkNjZhOTgzY2UuLjg4ZGFkMWVkZDFiOTA1MjBk
MWYwY2I2Yjc3MDZmZWQwMjI0MDY3YWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
c2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlTWFjLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVNYWMuaApAQCAtNTUsOCArNTUsOCBAQCBwcml2
YXRlOgogICAgIHZvaWQgZGVmZXJXaGVlbEV2ZW50VGVzdENvbXBsZXRpb25Gb3JSZWFzb24oV2hl
ZWxFdmVudFRlc3RNb25pdG9yOjpTY3JvbGxhYmxlQXJlYUlkZW50aWZpZXIsIFdoZWVsRXZlbnRU
ZXN0TW9uaXRvcjo6RGVmZXJSZWFzb24pIGZpbmFsOwogICAgIHZvaWQgcmVtb3ZlV2hlZWxFdmVu
dFRlc3RDb21wbGV0aW9uRGVmZXJyYWxGb3JSZWFzb24oV2hlZWxFdmVudFRlc3RNb25pdG9yOjpT
Y3JvbGxhYmxlQXJlYUlkZW50aWZpZXIsIFdoZWVsRXZlbnRUZXN0TW9uaXRvcjo6RGVmZXJSZWFz
b24pIGZpbmFsOwogCi0gICAgdm9pZCBsb2NrTGF5ZXJzRm9ySGl0VGVzdGluZygpIGZpbmFsOwot
ICAgIHZvaWQgdW5sb2NrTGF5ZXJzRm9ySGl0VGVzdGluZygpIGZpbmFsOworICAgIHZvaWQgbG9j
a0xheWVyc0ZvckhpdFRlc3RpbmcoKSBmaW5hbCBXVEZfQUNRVUlSRVNfTE9DSyhtX2xheWVySGl0
VGVzdE11dGV4KTsKKyAgICB2b2lkIHVubG9ja0xheWVyc0ZvckhpdFRlc3RpbmcoKSBmaW5hbCBX
VEZfUkVMRUFTRVNfTE9DSyhtX2xheWVySGl0VGVzdE11dGV4KTsKIAogICAgIC8vIFRoaXMgbG9j
ayBwcm90ZWN0cyB0aGUgQ0FMYXllci9QbGF0Zm9ybUNBTGF5ZXIgdHJlZS4KICAgICBtdXRhYmxl
IExvY2sgbV9sYXllckhpdFRlc3RNdXRleDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2F1ZGlvL1JldmVyYkNvbnZvbHZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9hdWRpby9SZXZlcmJDb252b2x2ZXIuY3BwCmluZGV4IGMyNWNhZjBkOWJjNDY5NWM0ODBkZGNj
OTg0ZmY5MTdlZjUyM2MwZjYuLjYzNWE4Zjc3YjMxNDIwZGMwNWVmZjQ1ZjVmNTg1ODg4ZmJhYmZj
OTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1JldmVyYkNvbnZv
bHZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vUmV2ZXJiQ29udm9s
dmVyLmNwcApAQCAtMTQ4LDkgKzE0OCw5IEBAIHZvaWQgUmV2ZXJiQ29udm9sdmVyOjpiYWNrZ3Jv
dW5kVGhyZWFkRW50cnkoKQogICAgICAgICAvLyBXYWl0IGZvciByZWFsdGltZSB0aHJlYWQgdG8g
Z2l2ZSB1cyBtb3JlIGlucHV0CiAgICAgICAgIG1fbW9yZUlucHV0QnVmZmVyZWQgPSBmYWxzZTsg
ICAgICAgIAogICAgICAgICB7Ci0gICAgICAgICAgICBzdGQ6OnVuaXF1ZV9sb2NrPExvY2s+IGxv
Y2sobV9iYWNrZ3JvdW5kVGhyZWFkTG9jayk7CisgICAgICAgICAgICBMb2NrZXIgbG9ja2VyIHsg
bV9iYWNrZ3JvdW5kVGhyZWFkTG9jayB9OwogCi0gICAgICAgICAgICBtX2JhY2tncm91bmRUaHJl
YWRDb25kaXRpb25WYXJpYWJsZS53YWl0KGxvY2ssIFt0aGlzXSB7IHJldHVybiBtX21vcmVJbnB1
dEJ1ZmZlcmVkIHx8IG1fd2FudHNUb0V4aXQ7IH0pOworICAgICAgICAgICAgbV9iYWNrZ3JvdW5k
VGhyZWFkQ29uZGl0aW9uVmFyaWFibGUud2FpdChtX2JhY2tncm91bmRUaHJlYWRMb2NrLCBbdGhp
c10geyByZXR1cm4gbV9tb3JlSW5wdXRCdWZmZXJlZCB8fCBtX3dhbnRzVG9FeGl0OyB9KTsKICAg
ICAgICAgfQogCiAgICAgICAgIC8vIFByb2Nlc3MgYWxsIG9mIHRoZSBzdGFnZXMgdW50aWwgdGhl
aXIgcmVhZCBpbmRpY2VzIHJlYWNoIHRoZSBpbnB1dCBidWZmZXIncyB3cml0ZSBpbmRleApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvU2hhZG93Qmx1ci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9TaGFkb3dCbHVyLmNwcAppbmRleCBh
M2IwNTVkMzgzNTYyZmY0YTA2NzhhMjg1Y2JiYmE3MzRiODZmNjkzLi4xZGY4MjA0MGRmMTE1ZWNh
YzU5NmMyMzFjZjJmZDFlYjdiOGExMjA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9TaGFkb3dCbHVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9TaGFkb3dCbHVyLmNwcApAQCAtMTIyLDcgKzEyMiw3IEBAIHB1YmxpYzoKICAg
ICB9CiAKICAgICBzdGF0aWMgU2NyYXRjaEJ1ZmZlciYgc2luZ2xldG9uKCk7Ci0gICAgc3RhdGlj
IExvY2smIGxvY2soKTsKKyAgICBzdGF0aWMgVW5jaGVja2VkTG9jayYgbG9jaygpOwogCiBwcml2
YXRlOgogICAgIHZvaWQgc2NoZWR1bGVTY3JhdGNoQnVmZmVyUHVyZ2UoKQpAQCAtMTY4LDkgKzE2
OCw5IEBAIFNjcmF0Y2hCdWZmZXImIFNjcmF0Y2hCdWZmZXI6OnNpbmdsZXRvbigpCiAgICAgcmV0
dXJuIHNjcmF0Y2hCdWZmZXI7CiB9CiAKLUxvY2smIFNjcmF0Y2hCdWZmZXI6OmxvY2soKQorVW5j
aGVja2VkTG9jayYgU2NyYXRjaEJ1ZmZlcjo6bG9jaygpCiB7Ci0gICAgc3RhdGljIExvY2sgbG9j
azsKKyAgICBzdGF0aWMgVW5jaGVja2VkTG9jayBsb2NrOwogICAgIHJldHVybiBsb2NrOwogfQog
CkBAIC02OTYsNyArNjk2LDcgQEAgdm9pZCBTaGFkb3dCbHVyOjpkcmF3UmVjdFNoYWRvd1dpdGhU
aWxpbmcoY29uc3QgQWZmaW5lVHJhbnNmb3JtJiB0cmFuc2Zvcm0sIGNvbnMKIHsKICAgICBSZWZQ
dHI8SW1hZ2VCdWZmZXI+IGxheWVySW1hZ2VCdWZmZXI7CiAjaWYgVVNFKENHKQotICAgIGF1dG8g
bG9ja2VyID0gTG9ja2VyPExvY2s+Ojp0cnlMb2NrKFNjcmF0Y2hCdWZmZXI6OmxvY2soKSk7Cisg
ICAgYXV0byBsb2NrZXIgPSBMb2NrZXI8VW5jaGVja2VkTG9jaz46OnRyeUxvY2soU2NyYXRjaEJ1
ZmZlcjo6bG9jaygpKTsKICAgICBpZiAobG9ja2VyKSB7CiAgICAgICAgIGxheWVySW1hZ2VCdWZm
ZXIgPSBTY3JhdGNoQnVmZmVyOjpzaW5nbGV0b24oKS5nZXRTY3JhdGNoQnVmZmVyKHRlbXBsYXRl
U2l6ZSk7CiAgICAgICAgIGlmICghbGF5ZXJJbWFnZUJ1ZmZlcikKQEAgLTc1Niw3ICs3NTYsNyBA
QCB2b2lkIFNoYWRvd0JsdXI6OmRyYXdJbnNldFNoYWRvd1dpdGhUaWxpbmcoY29uc3QgQWZmaW5l
VHJhbnNmb3JtJiB0cmFuc2Zvcm0sIGNvbgogewogICAgIFJlZlB0cjxJbWFnZUJ1ZmZlcj4gbGF5
ZXJJbWFnZUJ1ZmZlcjsKICNpZiBVU0UoQ0cpCi0gICAgYXV0byBsb2NrZXIgPSBMb2NrZXI8TG9j
az46OnRyeUxvY2soU2NyYXRjaEJ1ZmZlcjo6bG9jaygpKTsKKyAgICBhdXRvIGxvY2tlciA9IExv
Y2tlcjxVbmNoZWNrZWRMb2NrPjo6dHJ5TG9jayhTY3JhdGNoQnVmZmVyOjpsb2NrKCkpOwogICAg
IGlmIChsb2NrZXIpIHsKICAgICAgICAgbGF5ZXJJbWFnZUJ1ZmZlciA9IFNjcmF0Y2hCdWZmZXI6
OnNpbmdsZXRvbigpLmdldFNjcmF0Y2hCdWZmZXIodGVtcGxhdGVTaXplKTsKICAgICAgICAgaWYg
KCFsYXllckltYWdlQnVmZmVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL1ZpZGVvU2lua0dTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVmlkZW9TaW5rR1N0cmVhbWVyLmNwcAppbmRl
eCAxMWJlYTEyYjY2ZGM1NDYyNWE4MjlmOTA3NGE5MmMwMzc0Y2UyODk1Li41N2E3MmFjNTgwY2Vj
ZjE2YTBlM2FiODBmY2YzOWUzOTVmZDA4OGFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVmlkZW9TaW5rR1N0cmVhbWVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVmlkZW9TaW5rR1N0cmVh
bWVyLmNwcApAQCAtMTA3LDcgKzEwNyw3IEBAIHB1YmxpYzoKICAgICB9CiAKIHByaXZhdGU6Ci0g
ICAgTG9jayBtX3NhbXBsZU11dGV4OworICAgIFVuY2hlY2tlZExvY2sgbV9zYW1wbGVNdXRleDsK
ICAgICBHUmVmUHRyPEdzdFNhbXBsZT4gbV9zYW1wbGU7CiAKICAgICAvLyBJZiB0aGlzIGlzIHRy
dWUgYWxsIHByb2Nlc3Npbmcgc2hvdWxkIGZpbmlzaCBBU0FQCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvZW1lL1dlYktpdENvbW1vbkVuY3J5
cHRpb25EZWNyeXB0b3JHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3N0cmVhbWVyL2VtZS9XZWJLaXRDb21tb25FbmNyeXB0aW9uRGVjcnlwdG9yR1N0cmVh
bWVyLmNwcAppbmRleCAzMjAxNzRkNWJmZTg3NmRiOGMxNDIzNTlhOGUxYTAxYWE4NmMwZmRiLi5l
YjA4ODUxY2M4NjIxMmI0NmJiODI4YzdiMzc4M2RiMzE1NjRhN2VkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvZW1lL1dlYktpdENvbW1vbkVu
Y3J5cHRpb25EZWNyeXB0b3JHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUvV2ViS2l0Q29tbW9uRW5jcnlwdGlvbkRlY3J5cHRv
ckdTdHJlYW1lci5jcHAKQEAgLTU2LDggKzU2LDggQEAgc3RydWN0IF9XZWJLaXRNZWRpYUNvbW1v
bkVuY3J5cHRpb25EZWNyeXB0UHJpdmF0ZSB7CiAgICAgUmVmUHRyPENETVByb3h5PiBjZG1Qcm94
eTsKIAogICAgIC8vIFByb3RlY3QgdGhlIGFjY2VzcyB0byB0aGUgc3RydWN0dXJlIG1lbWJlcnMu
Ci0gICAgTG9jayBtdXRleDsKLSAgICBDb25kaXRpb24gY29uZGl0aW9uOworICAgIFVuY2hlY2tl
ZExvY2sgbXV0ZXg7CisgICAgVW5jaGVja2VkQ29uZGl0aW9uIGNvbmRpdGlvbjsKIAogICAgIGJv
b2wgaXNGbHVzaGluZyB7IGZhbHNlIH07CiAgICAgc3RkOjp1bmlxdWVfcHRyPENETVByb3h5RGVj
cnlwdGlvbkNsaWVudEltcGxlbWVudGF0aW9uPiBjZG1Qcm94eURlY3J5cHRpb25DbGllbnRJbXBs
ZW1lbnRhdGlvbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy93YWsv
V2ViQ29yZVRocmVhZFJ1bi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3Mvd2FrL1dl
YkNvcmVUaHJlYWRSdW4uY3BwCmluZGV4IDhmODFkN2MxYWNhNDY5NTU1MWZjNDQwYjQ3ZTkwNjFk
NGIzNWRmMmQuLjcyMDQxZTllMWZlOWZlOWQ1NmFlMjc3YjcwZjhkZThiZjZhM2JmN2MgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy93YWsvV2ViQ29yZVRocmVhZFJ1bi5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL3dhay9XZWJDb3JlVGhyZWFkUnVu
LmNwcApAQCAtNDUsOSArNDUsOSBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHdhaXRGb3JDb21wbGV0
aW9uKCkKICAgICB7Ci0gICAgICAgIHN0ZDo6dW5pcXVlX2xvY2s8TG9jaz4gbG9jayhtX3N0YXRl
TXV0ZXgpOworICAgICAgICBMb2NrZXIgbG9jayB7IG1fc3RhdGVNdXRleCB9OwogCi0gICAgICAg
IG1fY29tcGxldGlvbkNvbmRpdGlvblZhcmlhYmxlLndhaXQobG9jaywgW3RoaXNdIHsgcmV0dXJu
IG1fY29tcGxldGVkOyB9KTsKKyAgICAgICAgbV9jb21wbGV0aW9uQ29uZGl0aW9uVmFyaWFibGUu
d2FpdChtX3N0YXRlTXV0ZXgsIFt0aGlzXSB7IHJldHVybiBtX2NvbXBsZXRlZDsgfSk7CiAgICAg
fQogCiAgICAgdm9pZCBzZXRDb21wbGV0ZWQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTC5jcHAKaW5k
ZXggNmQxZDFkYWU5N2E5YjVlNzZjN2E0MWE1OTA4M2M5ZTBhODgzNGI2Zi4uMTU1M2RlZjAyNWZm
ZjkwZjEzNzVmNTEwZDUwY2E0NWQyYzUxMzU0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wuY3Bw
CkBAIC0yMTIsNyArMjEyLDcgQEAgdm9pZCBSZW1vdGVHcmFwaGljc0NvbnRleHRHTDo6cGFpbnRQ
aXhlbEJ1ZmZlclRvSW1hZ2VCdWZmZXIoT3B0aW9uYWw8V2ViQ29yZTo6UGkKICAgICBhc3NlcnRJ
c0N1cnJlbnQobV9zdHJlYW1UaHJlYWQpOwogICAgIC8vIEZJWE1FOiBXZSBkbyBub3QgaGF2ZSBm
dW5jdGlvbmluZyByZWFkL3dyaXRlIGZlbmNlcyBpbiBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kLiBU
aHVzIHRoaXMgaXMgc3luY2hyb25vdXMsCiAgICAgLy8gYXMgYXJlIHRoZSBtZXNzYWdlcyB0aGF0
IGNhbGwgdGhlc2UuCi0gICAgTG9jayBtdXRleDsKKyAgICBMb2NrIGxvY2s7CiAgICAgQ29uZGl0
aW9uIGNvbmRpdGlvblZhcmlhYmxlOwogICAgIGJvb2wgaXNGaW5pc2hlZCA9IGZhbHNlOwogICAg
IG1fcmVuZGVyaW5nQmFja2VuZC0+ZGlzcGF0Y2goWyYsIGNvbnRleHRBdHRyaWJ1dGVzID0gbV9j
b250ZXh0LT5jb250ZXh0QXR0cmlidXRlcygpXSgpIG11dGFibGUgewpAQCAtMjI2LDExICsyMjYs
MTEgQEAgdm9pZCBSZW1vdGVHcmFwaGljc0NvbnRleHRHTDo6cGFpbnRQaXhlbEJ1ZmZlclRvSW1h
Z2VCdWZmZXIoT3B0aW9uYWw8V2ViQ29yZTo6UGkKICAgICAgICAgICAgIC8vIFVuZm9ydHVuYXRl
bHkgImZsdXNoIiBpbXBsZW1lbnRhdGlvbiBpbiBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kIG92ZXJs
b2FkcyBvcmRlcmluZyBhbmQgZWZmZWN0cy4KICAgICAgICAgICAgIGltYWdlQnVmZmVyLT5mbHVz
aENvbnRleHQoKTsKICAgICAgICAgfQotICAgICAgICBMb2NrZXIgbG9ja2VyIHsgbXV0ZXggfTsK
KyAgICAgICAgTG9ja2VyIGxvY2tlciB7IGxvY2sgfTsKICAgICAgICAgaXNGaW5pc2hlZCA9IHRy
dWU7CiAgICAgICAgIGNvbmRpdGlvblZhcmlhYmxlLm5vdGlmeU9uZSgpOwogICAgIH0pOwotICAg
IHN0ZDo6dW5pcXVlX2xvY2s8TG9jaz4gbG9jayhtdXRleCk7CisgICAgTG9ja2VyIGxvY2tlciB7
IGxvY2sgfTsKICAgICBjb25kaXRpb25WYXJpYWJsZS53YWl0KGxvY2ssIFsmXSB7CiAgICAgICAg
IHJldHVybiBpc0ZpbmlzaGVkOwogICAgIH0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCU2VydmVyLmNwcCBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvSW5kZXhlZERCL1dlYklEQlNlcnZlci5jcHAKaW5kZXggOTFiODg5NDFh
NzZhODA3MWQzMGQ3ZmVkNzQxNjNmYjA5ZjdiODcyMS4uNTQ3ZGFhOGQ0ZTAwMTQwNmZjMjAxYWJh
ZDZjZjQ3NzBjOTFhNTU3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9JbmRleGVkREIvV2ViSURCU2VydmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL0luZGV4ZWREQi9XZWJJREJTZXJ2ZXIuY3BwCkBAIC0xMTksNyArMTE5LDcgQEAgdm9p
ZCBXZWJJREJTZXJ2ZXI6OnJlbmFtZU9yaWdpbihjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdp
bkRhdGEmIG9sZE9yaWdpbiwgY28KICAgICB9KTsKIH0KIAotdm9pZCBXZWJJREJTZXJ2ZXI6OnN1
c3BlbmQoKQordm9pZCBXZWJJREJTZXJ2ZXI6OnN1c3BlbmQoKSBXVEZfSUdOT1JFU19USFJFQURf
U0FGRVRZX0FOQUxZU0lTCiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKIApAQCAt
MTMyLDcgKzEzMiw3IEBAIHZvaWQgV2ViSURCU2VydmVyOjpzdXNwZW5kKCkKICAgICAgICAgbV9z
ZXJ2ZXItPnN0b3BEYXRhYmFzZUFjdGl2aXRpZXNPbk1haW5UaHJlYWQoKTsKIH0KIAotdm9pZCBX
ZWJJREJTZXJ2ZXI6OnJlc3VtZSgpCit2b2lkIFdlYklEQlNlcnZlcjo6cmVzdW1lKCkgV1RGX0lH
Tk9SRVNfVEhSRUFEX1NBRkVUWV9BTkFMWVNJUwogewogICAgIEFTU0VSVChSdW5Mb29wOjppc01h
aW4oKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL0lj
b25EYXRhYmFzZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvSWNvbkRhdGFi
YXNlLmgKaW5kZXggYmViMmZiODA2ZWM1NWM2NjM0Y2Q1ZTVhMDBkNTA3ODM2MTVmZWY0Yi4uODBl
MTc4ZTYxZjUwZmFmZGYzZWFkNGQyOThhMTg4MDFhZTAzYzcxNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvSWNvbkRhdGFiYXNlLmgKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvSWNvbkRhdGFiYXNlLmgKQEAgLTcyLDcgKzcyLDcgQEAg
cHJpdmF0ZToKICAgICBIYXNoTWFwPFN0cmluZywgU3RyaW5nPiBtX3BhZ2VVUkxUb0ljb25VUkxN
YXA7CiAgICAgTG9jayBtX3BhZ2VVUkxUb0ljb25VUkxNYXBMb2NrOwogICAgIEhhc2hNYXA8U3Ry
aW5nLCBzdGQ6OnBhaXI8V2ViQ29yZTo6UGxhdGZvcm1JbWFnZVB0ciwgTW9ub3RvbmljVGltZT4+
IG1fbG9hZGVkSWNvbnM7Ci0gICAgTG9jayBtX2xvYWRlZEljb25zTG9jazsKKyAgICBVbmNoZWNr
ZWRMb2NrIG1fbG9hZGVkSWNvbnNMb2NrOwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6
OlNRTGl0ZVN0YXRlbWVudD4gbV9pY29uSURGb3JJY29uVVJMU3RhdGVtZW50OwogICAgIHN0ZDo6
dW5pcXVlX3B0cjxXZWJDb3JlOjpTUUxpdGVTdGF0ZW1lbnQ+IG1fc2V0SWNvbklERm9yUGFnZVVS
TFN0YXRlbWVudDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS1By
aW50aW5nVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS1ByaW50aW5nVmll
dy5tbQppbmRleCA5Yjc0ZjNlYzUwZDAyMDE2NjRjNzMxMjk4OWM3ZjY4YzI5YTA0NTRjLi5mMThi
YThmMDFiMjZkZTNmZDNjZGZiMDI4MTI4NWNmMGQ0YTY2NjlmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tQcmludGluZ1ZpZXcubW0KKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvbWFjL1dLUHJpbnRpbmdWaWV3Lm1tCkBAIC00MTQsMTMgKzQxNCwxMyBAQCAt
IChCT09MKWtub3dzUGFnZVJhbmdlOihOU1JhbmdlUG9pbnRlcilyYW5nZQogICAgICAgICAqcmFu
Z2UgPSBOU01ha2VSYW5nZSgxLCBfcHJpbnRpbmdQYWdlUmVjdHMuc2l6ZSgpKTsKICAgICBlbHNl
IGlmICghUnVuTG9vcDo6aXNNYWluKCkpIHsKICAgICAgICAgQVNTRVJUKCFbc2VsZiBfaXNQcmlu
dGluZ1ByZXZpZXddKTsKLSAgICAgICAgc3RkOjp1bmlxdWVfbG9jazxMb2NrPiBsb2NrKF9wcmlu
dGluZ0NhbGxiYWNrTXV0ZXgpOworICAgICAgICBMb2NrZXIgbG9jayB7IF9wcmludGluZ0NhbGxi
YWNrTXV0ZXggfTsKIAogICAgICAgICBSdW5Mb29wOjptYWluKCkuZGlzcGF0Y2goW3NlbGZdIHsK
ICAgICAgICAgICAgIHByZXBhcmVEYXRhRm9yUHJpbnRpbmdPblNlY29uZGFyeVRocmVhZChzZWxm
KTsKICAgICAgICAgfSk7CiAKLSAgICAgICAgX3ByaW50aW5nQ2FsbGJhY2tDb25kaXRpb24ud2Fp
dChsb2NrKTsKKyAgICAgICAgX3ByaW50aW5nQ2FsbGJhY2tDb25kaXRpb24ud2FpdChfcHJpbnRp
bmdDYWxsYmFja011dGV4KTsKICAgICAgICAgKnJhbmdlID0gTlNNYWtlUmFuZ2UoMSwgX3ByaW50
aW5nUGFnZVJlY3RzLnNpemUoKSk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgQVNTRVJUKFtzZWxm
IF9pc1ByaW50aW5nUHJldmlld10pOwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9v
bHMvQ2hhbmdlTG9nCmluZGV4IGVhYjA4M2YxZTA3ZDQ1ZTg4YWRiMTQwMWRiYjRjMjE1YjUzNzg1
NGEuLjg2MzkxMGZlNGZhZmVhMzMyMzVhNDYyZjMwZDRkY2Q4ZGRhYjI4MzggMTAwNjQ0Ci0tLSBh
L1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0MyBAQAor
MjAyMS0wNS0yMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIE1h
a2UgQ2hlY2tlZExvY2sgdGhlIGRlZmF1bHQgTG9jaworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI2MTU3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgTWFrZSBDaGVja2VkTG9jayB0aGUgZGVmYXVsdCBMb2Nr
IHNvIHRoYXQgd2UgZ2V0IG1vcmUgYmVuZWZpdHMgZnJvbSBDbGFuZworICAgICAgICBUaHJlYWQg
U2FmZXR5IEFuYWx5c2lzLiBOb3RlIHRoYXQgQ2hlY2tlZExvY2sgMTAwJSByZWxpZXMgb24gdGhl
IGV4aXN0aW5nCisgICAgICAgIExvY2sgaW1wbGVtZW50YXRpb24gYW5kIG1lcmVseSBhZGRzIHRo
ZSBjbGFuZyBhbm90YXRpb25zIGZvciB0aHJlYWQgCisgICAgICAgIHNhZmV0eS4KKworICAgICAg
ICBUaGF0IHRoaXMgcGF0Y2ggZG9lcyBpczoKKyAgICAgICAgMS4gUmVuYW1lIHRoZSBMb2NrIGNs
YXNzIHRvIFVuY2hlY2tlZExvY2sKKyAgICAgICAgMi4gUmVuYW1lIHRoZSBDaGVja2VkTG9jayBj
bGFzcyB0byBMb2NrCisgICAgICAgIDMuIFJlbmFtZSB0aGUgQ29uZGl0aW9uIGNsYXNzIHRvIFVu
Y2hlY2tlZENvbmRpdGlvbgorICAgICAgICA0LiBSZW5hbWUgdGhlIENoZWNrZWRDb25kaXRpb24g
Y2xhc3MgdG8gQ29uZGl0aW9uCisgICAgICAgIDUuIFVwZGF0ZSB0aGUgdHlwZXMgb2YgY2VydGFp
biB2YXJpYWJsZXMgZnJvbSBMb2NrIC8gQ29uZGl0aW9uIHRvCisgICAgICAgICAgIFVuY2hlY2tl
ZExvY2sgLyBVbmNoZWNrZWRDb25kaXRpb24gaWYgSSBnb3QgYSBidWlsZCBmYWlsdXJlLiBCdWls
ZCAKKyAgICAgICAgICAgZmFpbHVyZXMgYXJlIHVzdWFsbHkgY2F1c2VkIGJ5IHRoZSBmb2xsb3dp
bmcgZmFjdHM6CisgICAgICAgICAgIC0gTG9ja2VyPENoZWNrZWRMb2NrPiBkb2Vzbid0IHN1YmNs
YXNzIEFic3RyYWN0TG9ja2VyIHdoaWNoIGEgbG90IG9mCisgICAgICAgICAgICAgSlNDIGNvZGUg
cGFzc2VzIGFzIGFyZ3VtZW50CisgICAgICAgICAgIC0gTG9ja2VyPENoZWNrZWRMb2NrPiBoYXMg
bm8gbW92ZSBjb25zdHJ1Y3RvcgorICAgICAgICAgICAtIExvY2tlcjxDaGVja2VkTG9jaz4gY2Fu
bm90IGJlIGNvbnN0cnVjdGVkIGZyb20gYSBsb2NrIHBvaW50ZXIsIG9ubHkKKyAgICAgICAgICAg
ICBhIHJlZmVyZW5jZQorCisgICAgICAgIEZvciBub3csIENoZWNrZWRMb2NrIGFuZCBDaGVja2Vk
Q29uZGl0aW9uIHJlbWFpbiBhcyBhbGlhc2VzIHRvIExvY2sgYW5kIAorICAgICAgICBDb25kaXRp
b24sIGluIHRoZWlyIHJlc3BlY3RpdmUgQ2hlY2tlZExvY2suaCAvIENoZWNrZWRDb25kaXRpb24u
aCBoZWFkZXJzLgorICAgICAgICBJIHdpbGwgZHJvcCB0aGVtIGluIGEgZm9sbG93LXVwIHRvIHJl
ZHVjZSBwYXRjaCBzaXplLgorCisgICAgICAgIEkgd2lsbCBhbHNvIGZvbGxvdy11cCB0byB0cnkg
YW5kIGdldCByaWQgb2YgYXMgbXVjaCB1c2FnZSBvZiBVbmNoZWNrZWRMb2NrCisgICAgICAgIGFu
ZCBVbmNoZWNrZWRDb25kaXRpb24gYXMgcG9zc2libGUuIEkgZGlkIG5vdCB0cnkgdmVyeSBoYXJk
IGluIHRoaXMgcGF0Y2gKKyAgICAgICAgdG8gcmVkdWNlIHBhdGNoIHNpemUuIAorCisgICAgICAg
ICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvQ2hlY2tlZENvbmRpdGlvblRlc3QuY3BwOgorICAg
ICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0NvbmRpdGlvbi5jcHA6CisgICAgICAgICog
VGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvTWV0YUFsbG9jYXRvci5jcHA6CisgICAgICAgICogV2Vi
S2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5jcHA6
CisgICAgICAgIChXVFI6OkFYVGhyZWFkOjpjcmVhdGVUaHJlYWRJZk5lZWRlZCk6CisKIDIwMjEt
MDUtMjIgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBSZXBsYWNl
IExvY2tIb2xkZXIgd2l0aCBMb2NrZXIgaW4gbG9jYWwgdmFyaWFibGVzCmRpZmYgLS1naXQgYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9DaGVja2VkQ29uZGl0aW9uVGVzdC5jcHAgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9DaGVja2VkQ29uZGl0aW9uVGVzdC5jcHAKaW5k
ZXggOTI4YWExOTAzY2RlMzZlYTMyZGMxMDFmMjZiZjNjYzk5MjY5Yjg5My4uYWQ0MjU1ZTJhYzFh
MmVmOWEwYzFjYTNjZjU2YzczODA3NjYzMDUwOCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XVEYvQ2hlY2tlZENvbmRpdGlvblRlc3QuY3BwCisrKyBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV1RGL0NoZWNrZWRDb25kaXRpb25UZXN0LmNwcApAQCAtMjUsNiArMjUs
NyBAQAogCiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSA8d3RmL0NoZWNrZWRDb25kaXRp
b24uaD4KKyNpbmNsdWRlIDx3dGYvQ2hlY2tlZExvY2suaD4KIAogbmFtZXNwYWNlIFRlc3RXZWJL
aXRBUEkgewogCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9Db25k
aXRpb24uY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvQ29uZGl0aW9uLmNwcApp
bmRleCAzYjM1YjA4Y2ExNGI4MTg4NDdkNjZlZTU4N2ZmYWQxYTU5MGQ4MTI2Li41ZWVjM2UwMTU2
NmI5MThkNjY3ZTE2NDgyNWYwMTIwOGQ4NzliYmViIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dURi9Db25kaXRpb24uY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV1RGL0NvbmRpdGlvbi5jcHAKQEAgLTQ2LDcgKzQ2LDcgQEAgZW51bSBOb3RpZnlTdHls
ZSB7CiB9OwogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBGdW5jdG9yPgotdm9pZCB3YWl0KENvbmRpdGlv
biYgY29uZGl0aW9uLCBzdGQ6OnVuaXF1ZV9sb2NrPExvY2s+JiBsb2NrZXIsIGNvbnN0IEZ1bmN0
b3ImIHByZWRpY2F0ZSwgU2Vjb25kcyB0aW1lb3V0KQordm9pZCB3YWl0KFVuY2hlY2tlZENvbmRp
dGlvbiYgY29uZGl0aW9uLCBzdGQ6OnVuaXF1ZV9sb2NrPFVuY2hlY2tlZExvY2s+JiBsb2NrZXIs
IGNvbnN0IEZ1bmN0b3ImIHByZWRpY2F0ZSwgU2Vjb25kcyB0aW1lb3V0KQogewogICAgIGlmICh0
aW1lb3V0ID09IFNlY29uZHM6OmluZmluaXR5KCkpCiAgICAgICAgIGNvbmRpdGlvbi53YWl0KGxv
Y2tlciwgcHJlZGljYXRlKTsKQEAgLTU5LDcgKzU5LDcgQEAgdm9pZCB3YWl0KENvbmRpdGlvbiYg
Y29uZGl0aW9uLCBzdGQ6OnVuaXF1ZV9sb2NrPExvY2s+JiBsb2NrZXIsIGNvbnN0IEZ1bmN0b3Im
IHAKICAgICB9CiB9CiAKLXZvaWQgbm90aWZ5KE5vdGlmeVN0eWxlIG5vdGlmeVN0eWxlLCBDb25k
aXRpb24mIGNvbmRpdGlvbiwgYm9vbCBzaG91bGROb3RpZnkpCit2b2lkIG5vdGlmeShOb3RpZnlT
dHlsZSBub3RpZnlTdHlsZSwgVW5jaGVja2VkQ29uZGl0aW9uJiBjb25kaXRpb24sIGJvb2wgc2hv
dWxkTm90aWZ5KQogewogICAgIHN3aXRjaCAobm90aWZ5U3R5bGUpIHsKICAgICBjYXNlIEFsd2F5
c05vdGlmeU9uZToKQEAgLTgzLDkgKzgzLDkgQEAgdm9pZCBydW5UZXN0KAogewogICAgIERlcXVl
PHVuc2lnbmVkPiBxdWV1ZTsKICAgICBib29sIHNob3VsZENvbnRpbnVlID0gdHJ1ZTsKLSAgICBM
b2NrIGxvY2s7Ci0gICAgQ29uZGl0aW9uIGVtcHR5Q29uZGl0aW9uOwotICAgIENvbmRpdGlvbiBm
dWxsQ29uZGl0aW9uOworICAgIFVuY2hlY2tlZExvY2sgbG9jazsKKyAgICBVbmNoZWNrZWRDb25k
aXRpb24gZW1wdHlDb25kaXRpb247CisgICAgVW5jaGVja2VkQ29uZGl0aW9uIGZ1bGxDb25kaXRp
b247CiAKICAgICBWZWN0b3I8UmVmPFRocmVhZD4+IGNvbnN1bWVyVGhyZWFkczsKICAgICBWZWN0
b3I8UmVmPFRocmVhZD4+IHByb2R1Y2VyVGhyZWFkczsKQEAgLTEwMSw3ICsxMDEsNyBAQCB2b2lk
IHJ1blRlc3QoCiAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIHJlc3VsdDsKICAgICAgICAg
ICAgICAgICAgICAgdW5zaWduZWQgc2hvdWxkTm90aWZ5ID0gZmFsc2U7CiAgICAgICAgICAgICAg
ICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHN0ZDo6dW5pcXVlX2xvY2s8TG9jaz4g
bG9ja2VyKGxvY2spOworICAgICAgICAgICAgICAgICAgICAgICAgc3RkOjp1bmlxdWVfbG9jazxV
bmNoZWNrZWRMb2NrPiBsb2NrZXIobG9jayk7CiAgICAgICAgICAgICAgICAgICAgICAgICB3YWl0
KAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVtcHR5Q29uZGl0aW9uLCBsb2NrZXIsIAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsmXSAoKSB7CkBAIC0xMzQsNyArMTM0LDcgQEAg
dm9pZCBydW5UZXN0KAogICAgICAgICAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBu
dW1NZXNzYWdlc1BlclByb2R1Y2VyOyArK2kpIHsKICAgICAgICAgICAgICAgICAgICAgYm9vbCBz
aG91bGROb3RpZnkgPSBmYWxzZTsKICAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAg
ICAgICAgICAgICAgc3RkOjp1bmlxdWVfbG9jazxMb2NrPiBsb2NrZXIobG9jayk7CisgICAgICAg
ICAgICAgICAgICAgICAgICBzdGQ6OnVuaXF1ZV9sb2NrPFVuY2hlY2tlZExvY2s+IGxvY2tlcihs
b2NrKTsKICAgICAgICAgICAgICAgICAgICAgICAgIHdhaXQoCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZnVsbENvbmRpdGlvbiwgbG9ja2VyLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFsmXSAoKSB7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9N
ZXRhQWxsb2NhdG9yLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL01ldGFBbGxv
Y2F0b3IuY3BwCmluZGV4IGI5MWY2OGVjMGNjMTdkZDM3MDhmMmU3ODA4MzY2NTU3ZGIzODdhNjYu
LjRlZjU4M2IzYzJiZTk4ZWVmZDk2MTUxYzc5NjljZTQzZWJhMDU3OTMgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL01ldGFBbGxvY2F0b3IuY3BwCisrKyBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL01ldGFBbGxvY2F0b3IuY3BwCkBAIC0xMjksNyArMTI5
LDcgQEAgcHVibGljOgogICAgICAgICB9CiAgICAgICAgIAogICAgIHByaXZhdGU6Ci0gICAgICAg
IExvY2sgbV9sb2NrOworICAgICAgICBVbmNoZWNrZWRMb2NrIG1fbG9jazsKICAgICAgICAgTWV0
YUFsbG9jYXRvclRlc3QqIG1fcGFyZW50OwogICAgIH07CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuY3Bw
IGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5Q29u
dHJvbGxlci5jcHAKaW5kZXggOTg0NGU1YjYzMzVmYmNhMjg2ZTJjMTFjNmIzZTk4NzhkOWM0MGQw
Yi4uNmViYTE0YTFhNzBjMDNkNTU3ZGIyM2I2MDc2MmRmNzlmZmVhNGNhZSAxMDA2NDQKLS0tIGEv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5Q29udHJv
bGxlci5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nl
c3NpYmlsaXR5Q29udHJvbGxlci5jcHAKQEAgLTE5OSw3ICsxOTksNyBAQCBBWFRocmVhZCYgQVhU
aHJlYWQ6OnNpbmdsZXRvbigpCiB2b2lkIEFYVGhyZWFkOjpjcmVhdGVUaHJlYWRJZk5lZWRlZCgp
CiB7CiAgICAgLy8gV2FpdCBmb3IgdGhlIHRocmVhZCB0byBpbml0aWFsaXplIHRoZSBydW4gbG9v
cC4KLSAgICBzdGQ6OnVuaXF1ZV9sb2NrPExvY2s+IGxvY2sobV9pbml0aWFsaXplUnVuTG9vcE11
dGV4KTsKKyAgICBMb2NrZXIgbG9jayB7IG1faW5pdGlhbGl6ZVJ1bkxvb3BNdXRleCB9OwogCiAg
ICAgaWYgKCFtX3RocmVhZCkgewogICAgICAgICBtX3RocmVhZCA9IFRocmVhZDo6Y3JlYXRlKCJX
S1RSOiBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlciIsIFt0aGlzXSB7CkBAIC0yMDgsNyArMjA4LDcg
QEAgdm9pZCBBWFRocmVhZDo6Y3JlYXRlVGhyZWFkSWZOZWVkZWQoKQogICAgICAgICB9KTsKICAg
ICB9CiAKLSAgICBtX2luaXRpYWxpemVSdW5Mb29wQ29uZGl0aW9uVmFyaWFibGUud2FpdChsb2Nr
LCBbdGhpc10geworICAgIG1faW5pdGlhbGl6ZVJ1bkxvb3BDb25kaXRpb25WYXJpYWJsZS53YWl0
KG1faW5pdGlhbGl6ZVJ1bkxvb3BNdXRleCwgW3RoaXNdIHsKICNpZiBQTEFURk9STShDT0NPQSkK
ICAgICAgICAgcmV0dXJuIG1fdGhyZWFkUnVuTG9vcDsKICNlbHNlCg==
</data>
<flag name="commit-queue"
          id="450679"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>429484</attachid>
            <date>2021-05-23 16:21:14 -0700</date>
            <delta_ts>2021-05-23 16:36:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226157-20210523162114.patch</filename>
            <type>text/plain</type>
            <size>101715</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3OTM0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAw
YzRlNzliNTg2ZTkwMmM1MTBiY2NkMjdkOGMwYzA0MTU2MGNmMjhmLi45MzM2Mzg2OTAxOGFkODIy
NjhhZjUzMmE1OWMwMThjOTZjMjM1ZTY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw5NSBAQAorMjAyMS0wNS0yMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgor
CisgICAgICAgIE1ha2UgQ2hlY2tlZExvY2sgdGhlIGRlZmF1bHQgTG9jaworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI2MTU3CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWFrZSBDaGVja2VkTG9jayB0aGUg
ZGVmYXVsdCBMb2NrIHNvIHRoYXQgd2UgZ2V0IG1vcmUgYmVuZWZpdHMgZnJvbSBDbGFuZworICAg
ICAgICBUaHJlYWQgU2FmZXR5IEFuYWx5c2lzLiBOb3RlIHRoYXQgQ2hlY2tlZExvY2sgMTAwJSBy
ZWxpZXMgb24gdGhlIGV4aXN0aW5nCisgICAgICAgIExvY2sgaW1wbGVtZW50YXRpb24gYW5kIG1l
cmVseSBhZGRzIHRoZSBjbGFuZyBhbm90YXRpb25zIGZvciB0aHJlYWQgCisgICAgICAgIHNhZmV0
eS4KKworICAgICAgICBUaGF0IHRoaXMgcGF0Y2ggZG9lcyBpczoKKyAgICAgICAgMS4gUmVuYW1l
IHRoZSBMb2NrIGNsYXNzIHRvIFVuY2hlY2tlZExvY2sKKyAgICAgICAgMi4gUmVuYW1lIHRoZSBD
aGVja2VkTG9jayBjbGFzcyB0byBMb2NrCisgICAgICAgIDMuIFJlbmFtZSB0aGUgQ29uZGl0aW9u
IGNsYXNzIHRvIFVuY2hlY2tlZENvbmRpdGlvbgorICAgICAgICA0LiBSZW5hbWUgdGhlIENoZWNr
ZWRDb25kaXRpb24gY2xhc3MgdG8gQ29uZGl0aW9uCisgICAgICAgIDUuIFVwZGF0ZSB0aGUgdHlw
ZXMgb2YgY2VydGFpbiB2YXJpYWJsZXMgZnJvbSBMb2NrIC8gQ29uZGl0aW9uIHRvCisgICAgICAg
ICAgIFVuY2hlY2tlZExvY2sgLyBVbmNoZWNrZWRDb25kaXRpb24gaWYgSSBnb3QgYSBidWlsZCBm
YWlsdXJlLiBCdWlsZCAKKyAgICAgICAgICAgZmFpbHVyZXMgYXJlIHVzdWFsbHkgY2F1c2VkIGJ5
IHRoZSBmb2xsb3dpbmcgZmFjdHM6CisgICAgICAgICAgIC0gTG9ja2VyPENoZWNrZWRMb2NrPiBk
b2Vzbid0IHN1YmNsYXNzIEFic3RyYWN0TG9ja2VyIHdoaWNoIGEgbG90IG9mCisgICAgICAgICAg
ICAgSlNDIGNvZGUgcGFzc2VzIGFzIGFyZ3VtZW50CisgICAgICAgICAgIC0gTG9ja2VyPENoZWNr
ZWRMb2NrPiBoYXMgbm8gbW92ZSBjb25zdHJ1Y3RvcgorICAgICAgICAgICAtIExvY2tlcjxDaGVj
a2VkTG9jaz4gY2Fubm90IGJlIGNvbnN0cnVjdGVkIGZyb20gYSBsb2NrIHBvaW50ZXIsIG9ubHkK
KyAgICAgICAgICAgICBhIHJlZmVyZW5jZQorCisgICAgICAgIEZvciBub3csIENoZWNrZWRMb2Nr
IGFuZCBDaGVja2VkQ29uZGl0aW9uIHJlbWFpbiBhcyBhbGlhc2VzIHRvIExvY2sgYW5kIAorICAg
ICAgICBDb25kaXRpb24sIGluIHRoZWlyIHJlc3BlY3RpdmUgQ2hlY2tlZExvY2suaCAvIENoZWNr
ZWRDb25kaXRpb24uaCBoZWFkZXJzLgorICAgICAgICBJIHdpbGwgZHJvcCB0aGVtIGluIGEgZm9s
bG93LXVwIHRvIHJlZHVjZSBwYXRjaCBzaXplLgorCisgICAgICAgIEkgd2lsbCBhbHNvIGZvbGxv
dy11cCB0byB0cnkgYW5kIGdldCByaWQgb2YgYXMgbXVjaCB1c2FnZSBvZiBVbmNoZWNrZWRMb2Nr
CisgICAgICAgIGFuZCBVbmNoZWNrZWRDb25kaXRpb24gYXMgcG9zc2libGUuIEkgZGlkIG5vdCB0
cnkgdmVyeSBoYXJkIGluIHRoaXMgcGF0Y2gKKyAgICAgICAgdG8gcmVkdWNlIHBhdGNoIHNpemUu
IAorCisgICAgICAgICogYXNzZW1ibGVyL3Rlc3RtYXNtLmNwcDoKKyAgICAgICAgKiBkZmcvREZH
Q29tbW9uLmNwcDoKKyAgICAgICAgKiBkZmcvREZHVGhyZWFkRGF0YS5oOgorICAgICAgICAqIGRm
Zy9ERkdXb3JrbGlzdC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6V29ya2xpc3Q6OldvcmtsaXN0
KToKKyAgICAgICAgKiBkZmcvREZHV29ya2xpc3QuaDoKKyAgICAgICAgKiBkeW5iZW5jaC5jcHA6
CisgICAgICAgICogaGVhcC9CbG9ja0RpcmVjdG9yeS5oOgorICAgICAgICAoSlNDOjpCbG9ja0Rp
cmVjdG9yeTo6Yml0dmVjdG9yTG9jayk6CisgICAgICAgICogaGVhcC9Db2RlQmxvY2tTZXQuaDoK
KyAgICAgICAgKEpTQzo6Q29kZUJsb2NrU2V0OjpnZXRMb2NrKToKKyAgICAgICAgKiBoZWFwL0hl
YXAuY3BwOgorICAgICAgICAoSlNDOjpIZWFwOjpIZWFwKToKKyAgICAgICAgKiBoZWFwL0hlYXAu
aDoKKyAgICAgICAgKiBoZWFwL01hcmtlZFNwYWNlLmg6CisgICAgICAgIChKU0M6Ok1hcmtlZFNw
YWNlOjpkaXJlY3RvcnlMb2NrKToKKyAgICAgICAgKiBoZWFwL01hcmtpbmdDb25zdHJhaW50U29s
dmVyLmg6CisgICAgICAgICogaGVhcC9TbG90VmlzaXRvci5jcHA6CisgICAgICAgIChKU0M6OlNs
b3RWaXNpdG9yOjpkb25hdGVLbm93blBhcmFsbGVsKToKKyAgICAgICAgKiBoZWFwL1Nsb3RWaXNp
dG9yLmg6CisgICAgICAgICogaml0L0V4ZWN1dGFibGVBbGxvY2F0b3IuY3BwOgorICAgICAgICAo
SlNDOjpFeGVjdXRhYmxlQWxsb2NhdG9yOjpnZXRMb2NrIGNvbnN0KToKKyAgICAgICAgKEpTQzo6
ZHVtcEpJVE1lbW9yeSk6CisgICAgICAgICogaml0L0V4ZWN1dGFibGVBbGxvY2F0b3IuaDoKKyAg
ICAgICAgKEpTQzo6RXhlY3V0YWJsZUFsbG9jYXRvckJhc2U6OmdldExvY2sgY29uc3QpOgorICAg
ICAgICAqIGppdC9KSVRXb3JrbGlzdC5jcHA6CisgICAgICAgIChKU0M6OkpJVFdvcmtsaXN0OjpK
SVRXb3JrbGlzdCk6CisgICAgICAgICogaml0L0pJVFdvcmtsaXN0Lmg6CisgICAgICAgICoganNj
LmNwcDoKKyAgICAgICAgKiBwcm9maWxlci9Qcm9maWxlckRhdGFiYXNlLmg6CisgICAgICAgICog
cnVudGltZS9Db25jdXJyZW50SlNMb2NrLmg6CisgICAgICAgICogcnVudGltZS9EZWZlcnJlZFdv
cmtUaW1lci5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNMb2NrLmg6CisgICAgICAgICogcnVudGlt
ZS9TYW1wbGluZ1Byb2ZpbGVyLmNwcDoKKyAgICAgICAgKEpTQzo6RnJhbWVXYWxrZXI6OkZyYW1l
V2Fsa2VyKToKKyAgICAgICAgKEpTQzo6Q0ZyYW1lV2Fsa2VyOjpDRnJhbWVXYWxrZXIpOgorICAg
ICAgICAoSlNDOjpTYW1wbGluZ1Byb2ZpbGVyOjp0YWtlU2FtcGxlKToKKyAgICAgICAgKiBydW50
aW1lL1NhbXBsaW5nUHJvZmlsZXIuaDoKKyAgICAgICAgKEpTQzo6U2FtcGxpbmdQcm9maWxlcjo6
Z2V0TG9jayk6CisgICAgICAgICogcnVudGltZS9WTS5oOgorICAgICAgICAqIHJ1bnRpbWUvVk1U
cmFwcy5jcHA6CisgICAgICAgIChKU0M6OlZNVHJhcHM6OmludmFsaWRhdGVDb2RlQmxvY2tzT25T
dGFjayk6CisgICAgICAgIChKU0M6OlZNVHJhcHM6OlZNVHJhcHMpOgorICAgICAgICAqIHJ1bnRp
bWUvVk1UcmFwcy5oOgorICAgICAgICAqIHRvb2xzL0Z1bmN0aW9uT3ZlcnJpZGVzLmg6CisgICAg
ICAgICogdG9vbHMvVk1JbnNwZWN0b3IuY3BwOgorICAgICAgICAoSlNDOjplbnN1cmVJc1NhZmVU
b0xvY2spOgorICAgICAgICAqIHRvb2xzL1ZNSW5zcGVjdG9yLmg6CisgICAgICAgIChKU0M6OlZN
SW5zcGVjdG9yOjpnZXRMb2NrKToKKyAgICAgICAgKiB3YXNtL1dhc21DYWxsZWVSZWdpc3RyeS5o
OgorICAgICAgICAoSlNDOjpXYXNtOjpDYWxsZWVSZWdpc3RyeTo6Z2V0TG9jayk6CisgICAgICAg
ICogd2FzbS9XYXNtUGxhbi5oOgorICAgICAgICAqIHdhc20vV2FzbVN0cmVhbWluZ0NvbXBpbGVy
Lmg6CisgICAgICAgICogd2FzbS9XYXNtVGh1bmtzLmg6CisgICAgICAgICogd2FzbS9XYXNtV29y
a2xpc3QuY3BwOgorICAgICAgICAoSlNDOjpXYXNtOjpXb3JrbGlzdDo6V29ya2xpc3QpOgorICAg
ICAgICAqIHdhc20vV2FzbVdvcmtsaXN0Lmg6CisKIDIwMjEtMDUtMjMgIENocmlzIER1bWV6ICA8
Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBVc2UgQ2hlY2tlZExvY2sgaW4gZXZlbiBtb3Jl
IHBsYWNlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV1RGL0No
YW5nZUxvZwppbmRleCAxZGYzZjhlMGJhMWU3MjU3MWUwNmU2ZmE1ZDZjMjk5NzBkOTI2MmRmLi4w
MTczMDA1YThiMjg1MTRmZDU3NWM2NTdkMjk4YmZjY2QwNDhjNWQwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV1RGL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY2
IEBACisyMDIxLTA1LTIzICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAg
ICAgTWFrZSBDaGVja2VkTG9jayB0aGUgZGVmYXVsdCBMb2NrCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjYxNTcKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNYWtlIENoZWNrZWRMb2NrIHRoZSBkZWZhdWx0
IExvY2sgc28gdGhhdCB3ZSBnZXQgbW9yZSBiZW5lZml0cyBmcm9tIENsYW5nCisgICAgICAgIFRo
cmVhZCBTYWZldHkgQW5hbHlzaXMuIE5vdGUgdGhhdCBDaGVja2VkTG9jayAxMDAlIHJlbGllcyBv
biB0aGUgZXhpc3RpbmcKKyAgICAgICAgTG9jayBpbXBsZW1lbnRhdGlvbiBhbmQgbWVyZWx5IGFk
ZHMgdGhlIGNsYW5nIGFub3RhdGlvbnMgZm9yIHRocmVhZAorICAgICAgICBzYWZldHkuCisKKyAg
ICAgICAgVGhhdCB0aGlzIHBhdGNoIGRvZXMgaXM6CisgICAgICAgIDEuIFJlbmFtZSB0aGUgTG9j
ayBjbGFzcyB0byBVbmNoZWNrZWRMb2NrCisgICAgICAgIDIuIFJlbmFtZSB0aGUgQ2hlY2tlZExv
Y2sgY2xhc3MgdG8gTG9jaworICAgICAgICAzLiBSZW5hbWUgdGhlIENvbmRpdGlvbiBjbGFzcyB0
byBVbmNoZWNrZWRDb25kaXRpb24KKyAgICAgICAgNC4gUmVuYW1lIHRoZSBDaGVja2VkQ29uZGl0
aW9uIGNsYXNzIHRvIENvbmRpdGlvbgorICAgICAgICA1LiBVcGRhdGUgdGhlIHR5cGVzIG9mIGNl
cnRhaW4gdmFyaWFibGVzIGZyb20gTG9jayAvIENvbmRpdGlvbiB0bworICAgICAgICAgICBVbmNo
ZWNrZWRMb2NrIC8gVW5jaGVja2VkQ29uZGl0aW9uIGlmIEkgZ290IGEgYnVpbGQgZmFpbHVyZS4g
QnVpbGQKKyAgICAgICAgICAgZmFpbHVyZXMgYXJlIHVzdWFsbHkgY2F1c2VkIGJ5IHRoZSBmb2xs
b3dpbmcgZmFjdHM6CisgICAgICAgICAgIC0gTG9ja2VyPENoZWNrZWRMb2NrPiBkb2Vzbid0IHN1
YmNsYXNzIEFic3RyYWN0TG9ja2VyIHdoaWNoIGEgbG90IG9mCisgICAgICAgICAgICAgSlNDIGNv
ZGUgcGFzc2VzIGFzIGFyZ3VtZW50CisgICAgICAgICAgIC0gTG9ja2VyPENoZWNrZWRMb2NrPiBo
YXMgbm8gbW92ZSBjb25zdHJ1Y3RvcgorICAgICAgICAgICAtIExvY2tlcjxDaGVja2VkTG9jaz4g
Y2Fubm90IGJlIGNvbnN0cnVjdGVkIGZyb20gYSBsb2NrIHBvaW50ZXIsIG9ubHkKKyAgICAgICAg
ICAgICBhIHJlZmVyZW5jZQorICAgICAgICAKKyAgICAgICAgRm9yIG5vdywgQ2hlY2tlZExvY2sg
YW5kIENoZWNrZWRDb25kaXRpb24gcmVtYWluIGFzIGFsaWFzZXMgdG8gTG9jayBhbmQKKyAgICAg
ICAgQ29uZGl0aW9uLCBpbiB0aGVpciByZXNwZWN0aXZlIENoZWNrZWRMb2NrLmggLyBDaGVja2Vk
Q29uZGl0aW9uLmggaGVhZGVycy4KKyAgICAgICAgSSB3aWxsIGRyb3AgdGhlbSBpbiBhIGZvbGxv
dy11cCB0byByZWR1Y2UgcGF0Y2ggc2l6ZS4KKworICAgICAgICBJIHdpbGwgYWxzbyBmb2xsb3ct
dXAgdG8gdHJ5IGFuZCBnZXQgcmlkIG9mIGFzIG11Y2ggdXNhZ2Ugb2YgVW5jaGVja2VkTG9jawor
ICAgICAgICBhbmQgVW5jaGVja2VkQ29uZGl0aW9uIGFzIHBvc3NpYmxlLiBJIGRpZCBub3QgdHJ5
IHZlcnkgaGFyZCBpbiB0aGlzIHBhdGNoCisgICAgICAgIHRvIHJlZHVjZSBwYXRjaCBzaXplLgor
CisgICAgICAgICogd3RmL0F1dG9tYXRpY1RocmVhZC5jcHA6CisgICAgICAgIChXVEY6OkF1dG9t
YXRpY1RocmVhZENvbmRpdGlvbjo6d2FpdCk6CisgICAgICAgIChXVEY6OkF1dG9tYXRpY1RocmVh
ZENvbmRpdGlvbjo6d2FpdEZvcik6CisgICAgICAgIChXVEY6OkF1dG9tYXRpY1RocmVhZDo6QXV0
b21hdGljVGhyZWFkKToKKyAgICAgICAgKiB3dGYvQXV0b21hdGljVGhyZWFkLmg6CisgICAgICAg
ICogd3RmL0NoZWNrZWRDb25kaXRpb24uaDoKKyAgICAgICAgKiB3dGYvQ2hlY2tlZExvY2suaDoK
KyAgICAgICAgKiB3dGYvQ29uZGl0aW9uLmg6CisgICAgICAgICogd3RmL0xvY2suY3BwOgorICAg
ICAgICAoV1RGOjpVbmNoZWNrZWRMb2NrOjpsb2NrU2xvdyk6CisgICAgICAgIChXVEY6OlVuY2hl
Y2tlZExvY2s6OnVubG9ja1Nsb3cpOgorICAgICAgICAoV1RGOjpVbmNoZWNrZWRMb2NrOjp1bmxv
Y2tGYWlybHlTbG93KToKKyAgICAgICAgKFdURjo6VW5jaGVja2VkTG9jazo6c2FmZXBvaW50U2xv
dyk6CisgICAgICAgICogd3RmL0xvY2suaDoKKyAgICAgICAgKFdURjo6V1RGX0FTU0VSVFNfQUNR
VUlSRURfTE9DSyk6CisgICAgICAgICogd3RmL01ldGFBbGxvY2F0b3IuY3BwOgorICAgICAgICAo
V1RGOjpNZXRhQWxsb2NhdG9yOjpyZWxlYXNlKToKKyAgICAgICAgKFdURjo6TWV0YUFsbG9jYXRv
cjo6TWV0YUFsbG9jYXRvcik6CisgICAgICAgIChXVEY6Ok1ldGFBbGxvY2F0b3I6OmFsbG9jYXRl
KToKKyAgICAgICAgKFdURjo6TWV0YUFsbG9jYXRvcjo6Y3VycmVudFN0YXRpc3RpY3MpOgorICAg
ICAgICAqIHd0Zi9NZXRhQWxsb2NhdG9yLmg6CisgICAgICAgICogd3RmL1BhcmFsbGVsSGVscGVy
UG9vbC5jcHA6CisgICAgICAgIChXVEY6OlBhcmFsbGVsSGVscGVyUG9vbDo6UGFyYWxsZWxIZWxw
ZXJQb29sKToKKyAgICAgICAgKiB3dGYvUGFyYWxsZWxIZWxwZXJQb29sLmg6CisgICAgICAgICog
d3RmL1JlY3Vyc2l2ZUxvY2tBZGFwdGVyLmg6CisgICAgICAgICogd3RmL1dvcmtlclBvb2wuY3Bw
OgorICAgICAgICAoV1RGOjpXb3JrZXJQb29sOjpXb3JrZXJQb29sKToKKyAgICAgICAgKiB3dGYv
V29ya2VyUG9vbC5oOgorCiAyMDIxLTA1LTIzICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5j
b20+CiAKICAgICAgICAgRHJvcCBXVEY6OnRyeUhvbGRMb2NrKCkgYXMgaXQgaXMgaW5jb21wYXRp
YmxlIHdpdGggQ2xhbmcgVGhyZWFkIFNhZmV0eSBBbmFseXNpcwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDVkYmE1
ZmZmZmMwOTJiZDBjYTgyNmUxM2FiODBmMmQyYjJhZmNhZjEuLmMyMjkzNTI2NzI4NzU0NjUzMThm
MTU1ZGRhMTUyNGI4MGRkZWIxYTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2NyBAQAorMjAyMS0w
NS0yMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIE1ha2UgQ2hl
Y2tlZExvY2sgdGhlIGRlZmF1bHQgTG9jaworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjI2MTU3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgTWFrZSBDaGVja2VkTG9jayB0aGUgZGVmYXVsdCBMb2NrIHNvIHRo
YXQgd2UgZ2V0IG1vcmUgYmVuZWZpdHMgZnJvbSBDbGFuZworICAgICAgICBUaHJlYWQgU2FmZXR5
IEFuYWx5c2lzLiBOb3RlIHRoYXQgQ2hlY2tlZExvY2sgMTAwJSByZWxpZXMgb24gdGhlIGV4aXN0
aW5nCisgICAgICAgIExvY2sgaW1wbGVtZW50YXRpb24gYW5kIG1lcmVseSBhZGRzIHRoZSBjbGFu
ZyBhbm90YXRpb25zIGZvciB0aHJlYWQgCisgICAgICAgIHNhZmV0eS4KKworICAgICAgICBUaGF0
IHRoaXMgcGF0Y2ggZG9lcyBpczoKKyAgICAgICAgMS4gUmVuYW1lIHRoZSBMb2NrIGNsYXNzIHRv
IFVuY2hlY2tlZExvY2sKKyAgICAgICAgMi4gUmVuYW1lIHRoZSBDaGVja2VkTG9jayBjbGFzcyB0
byBMb2NrCisgICAgICAgIDMuIFJlbmFtZSB0aGUgQ29uZGl0aW9uIGNsYXNzIHRvIFVuY2hlY2tl
ZENvbmRpdGlvbgorICAgICAgICA0LiBSZW5hbWUgdGhlIENoZWNrZWRDb25kaXRpb24gY2xhc3Mg
dG8gQ29uZGl0aW9uCisgICAgICAgIDUuIFVwZGF0ZSB0aGUgdHlwZXMgb2YgY2VydGFpbiB2YXJp
YWJsZXMgZnJvbSBMb2NrIC8gQ29uZGl0aW9uIHRvCisgICAgICAgICAgIFVuY2hlY2tlZExvY2sg
LyBVbmNoZWNrZWRDb25kaXRpb24gaWYgSSBnb3QgYSBidWlsZCBmYWlsdXJlLiBCdWlsZCAKKyAg
ICAgICAgICAgZmFpbHVyZXMgYXJlIHVzdWFsbHkgY2F1c2VkIGJ5IHRoZSBmb2xsb3dpbmcgZmFj
dHM6CisgICAgICAgICAgIC0gTG9ja2VyPENoZWNrZWRMb2NrPiBkb2Vzbid0IHN1YmNsYXNzIEFi
c3RyYWN0TG9ja2VyIHdoaWNoIGEgbG90IG9mCisgICAgICAgICAgICAgSlNDIGNvZGUgcGFzc2Vz
IGFzIGFyZ3VtZW50CisgICAgICAgICAgIC0gTG9ja2VyPENoZWNrZWRMb2NrPiBoYXMgbm8gbW92
ZSBjb25zdHJ1Y3RvcgorICAgICAgICAgICAtIExvY2tlcjxDaGVja2VkTG9jaz4gY2Fubm90IGJl
IGNvbnN0cnVjdGVkIGZyb20gYSBsb2NrIHBvaW50ZXIsIG9ubHkKKyAgICAgICAgICAgICBhIHJl
ZmVyZW5jZQorCisgICAgICAgIEZvciBub3csIENoZWNrZWRMb2NrIGFuZCBDaGVja2VkQ29uZGl0
aW9uIHJlbWFpbiBhcyBhbGlhc2VzIHRvIExvY2sgYW5kIAorICAgICAgICBDb25kaXRpb24sIGlu
IHRoZWlyIHJlc3BlY3RpdmUgQ2hlY2tlZExvY2suaCAvIENoZWNrZWRDb25kaXRpb24uaCBoZWFk
ZXJzLgorICAgICAgICBJIHdpbGwgZHJvcCB0aGVtIGluIGEgZm9sbG93LXVwIHRvIHJlZHVjZSBw
YXRjaCBzaXplLgorCisgICAgICAgIEkgd2lsbCBhbHNvIGZvbGxvdy11cCB0byB0cnkgYW5kIGdl
dCByaWQgb2YgYXMgbXVjaCB1c2FnZSBvZiBVbmNoZWNrZWRMb2NrCisgICAgICAgIGFuZCBVbmNo
ZWNrZWRDb25kaXRpb24gYXMgcG9zc2libGUuIEkgZGlkIG5vdCB0cnkgdmVyeSBoYXJkIGluIHRo
aXMgcGF0Y2gKKyAgICAgICAgdG8gcmVkdWNlIHBhdGNoIHNpemUuIAorCisgICAgICAgICogTW9k
dWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQlNlcnZlci5jcHA6CisgICAgICAgICogTW9kdWxlcy93
ZWJhdWRpby9NZWRpYUVsZW1lbnRBdWRpb1NvdXJjZU5vZGUuaDoKKyAgICAgICAgKiBNb2R1bGVz
L3dlYmRhdGFiYXNlL09yaWdpbkxvY2suY3BwOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9N
R2xvYmFsT2JqZWN0Lmg6CisgICAgICAgICogZG9tL05vZGUuY3BwOgorICAgICAgICAqIGh0bWwv
SFRNTE1lZGlhRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50
OjpjcmVhdGVNZWRpYVBsYXllcik6CisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xDb250ZXh0
R3JvdXAuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xDb250ZXh0R3JvdXA6Om9iamVjdEdy
YXBoTG9ja0ZvckFDb250ZXh0KToKKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTENvbnRleHRH
cm91cC5oOgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMQ29udGV4dE9iamVjdC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpXZWJHTENvbnRleHRPYmplY3Q6Om9iamVjdEdyYXBoTG9ja0ZvckNv
bnRleHQpOgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMQ29udGV4dE9iamVjdC5oOgorICAg
ICAgICAqIGh0bWwvY2FudmFzL1dlYkdMT2JqZWN0Lmg6CisgICAgICAgICogaHRtbC9jYW52YXMv
V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJl
bmRlcmluZ0NvbnRleHRCYXNlOjpvYmplY3RHcmFwaExvY2spOgorICAgICAgICAqIGh0bWwvY2Fu
dmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuaDoKKyAgICAgICAgKiBodG1sL2NhbnZhcy9X
ZWJHTFNoYXJlZE9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFNoYXJlZE9iamVj
dDo6b2JqZWN0R3JhcGhMb2NrRm9yQ29udGV4dCk6CisgICAgICAgICogaHRtbC9jYW52YXMvV2Vi
R0xTaGFyZWRPYmplY3QuaDoKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5n
VHJlZU1hYy5oOgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL1JldmVyYkNvbnZvbHZlci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSZXZlcmJDb252b2x2ZXI6OmJhY2tncm91bmRUaHJlYWRFbnRy
eSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvU2hhZG93Qmx1ci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTY3JhdGNoQnVmZmVyOjpsb2NrKToKKyAgICAgICAgKFdlYkNvcmU6OlNoYWRv
d0JsdXI6OmRyYXdSZWN0U2hhZG93V2l0aFRpbGluZyk6CisgICAgICAgIChXZWJDb3JlOjpTaGFk
b3dCbHVyOjpkcmF3SW5zZXRTaGFkb3dXaXRoVGlsaW5nKToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvVmlkZW9TaW5rR1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvZW1lL1dlYktpdENvbW1vbkVuY3J5cHRpb25EZWNyeXB0
b3JHU3RyZWFtZXIuY3BwOgorCiAyMDIxLTA1LTIzICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBs
ZS5jb20+CiAKICAgICAgICAgVXNlIENoZWNrZWRMb2NrIGluIGV2ZW4gbW9yZSBwbGFjZXMKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cKaW5kZXggNDZkMzYwY2ZmMzRmMDI3ZWVkMzY5Nzg5ZjQ1NjI2M2EwMmFhY2YxOS4uMGRiZWEw
ZmVlN2YyODY5ZGYxMzkyZjMzMWRhMTRlZDRkYzNiYzQ4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0
NCBAQAorMjAyMS0wNS0yMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAg
ICAgIE1ha2UgQ2hlY2tlZExvY2sgdGhlIGRlZmF1bHQgTG9jaworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI2MTU3CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWFrZSBDaGVja2VkTG9jayB0aGUgZGVmYXVs
dCBMb2NrIHNvIHRoYXQgd2UgZ2V0IG1vcmUgYmVuZWZpdHMgZnJvbSBDbGFuZworICAgICAgICBU
aHJlYWQgU2FmZXR5IEFuYWx5c2lzLiBOb3RlIHRoYXQgQ2hlY2tlZExvY2sgMTAwJSByZWxpZXMg
b24gdGhlIGV4aXN0aW5nCisgICAgICAgIExvY2sgaW1wbGVtZW50YXRpb24gYW5kIG1lcmVseSBh
ZGRzIHRoZSBjbGFuZyBhbm90YXRpb25zIGZvciB0aHJlYWQgCisgICAgICAgIHNhZmV0eS4KKwor
ICAgICAgICBUaGF0IHRoaXMgcGF0Y2ggZG9lcyBpczoKKyAgICAgICAgMS4gUmVuYW1lIHRoZSBM
b2NrIGNsYXNzIHRvIFVuY2hlY2tlZExvY2sKKyAgICAgICAgMi4gUmVuYW1lIHRoZSBDaGVja2Vk
TG9jayBjbGFzcyB0byBMb2NrCisgICAgICAgIDMuIFJlbmFtZSB0aGUgQ29uZGl0aW9uIGNsYXNz
IHRvIFVuY2hlY2tlZENvbmRpdGlvbgorICAgICAgICA0LiBSZW5hbWUgdGhlIENoZWNrZWRDb25k
aXRpb24gY2xhc3MgdG8gQ29uZGl0aW9uCisgICAgICAgIDUuIFVwZGF0ZSB0aGUgdHlwZXMgb2Yg
Y2VydGFpbiB2YXJpYWJsZXMgZnJvbSBMb2NrIC8gQ29uZGl0aW9uIHRvCisgICAgICAgICAgIFVu
Y2hlY2tlZExvY2sgLyBVbmNoZWNrZWRDb25kaXRpb24gaWYgSSBnb3QgYSBidWlsZCBmYWlsdXJl
LiBCdWlsZCAKKyAgICAgICAgICAgZmFpbHVyZXMgYXJlIHVzdWFsbHkgY2F1c2VkIGJ5IHRoZSBm
b2xsb3dpbmcgZmFjdHM6CisgICAgICAgICAgIC0gTG9ja2VyPENoZWNrZWRMb2NrPiBkb2Vzbid0
IHN1YmNsYXNzIEFic3RyYWN0TG9ja2VyIHdoaWNoIGEgbG90IG9mCisgICAgICAgICAgICAgSlND
IGNvZGUgcGFzc2VzIGFzIGFyZ3VtZW50CisgICAgICAgICAgIC0gTG9ja2VyPENoZWNrZWRMb2Nr
PiBoYXMgbm8gbW92ZSBjb25zdHJ1Y3RvcgorICAgICAgICAgICAtIExvY2tlcjxDaGVja2VkTG9j
az4gY2Fubm90IGJlIGNvbnN0cnVjdGVkIGZyb20gYSBsb2NrIHBvaW50ZXIsIG9ubHkKKyAgICAg
ICAgICAgICBhIHJlZmVyZW5jZQorCisgICAgICAgIEZvciBub3csIENoZWNrZWRMb2NrIGFuZCBD
aGVja2VkQ29uZGl0aW9uIHJlbWFpbiBhcyBhbGlhc2VzIHRvIExvY2sgYW5kIAorICAgICAgICBD
b25kaXRpb24sIGluIHRoZWlyIHJlc3BlY3RpdmUgQ2hlY2tlZExvY2suaCAvIENoZWNrZWRDb25k
aXRpb24uaCBoZWFkZXJzLgorICAgICAgICBJIHdpbGwgZHJvcCB0aGVtIGluIGEgZm9sbG93LXVw
IHRvIHJlZHVjZSBwYXRjaCBzaXplLgorCisgICAgICAgIEkgd2lsbCBhbHNvIGZvbGxvdy11cCB0
byB0cnkgYW5kIGdldCByaWQgb2YgYXMgbXVjaCB1c2FnZSBvZiBVbmNoZWNrZWRMb2NrCisgICAg
ICAgIGFuZCBVbmNoZWNrZWRDb25kaXRpb24gYXMgcG9zc2libGUuIEkgZGlkIG5vdCB0cnkgdmVy
eSBoYXJkIGluIHRoaXMgcGF0Y2gKKyAgICAgICAgdG8gcmVkdWNlIHBhdGNoIHNpemUuIAorCisg
ICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTC5jcHA6
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMOjpwYWludFBpeGVsQnVm
ZmVyVG9JbWFnZUJ1ZmZlcik6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvSW5kZXhlZERCL1dl
YklEQlNlcnZlci5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9nbGliL0ljb25EYXRhYmFz
ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvV0tQcmludGluZ1ZpZXcubW06CisgICAgICAg
ICgtW1dLUHJpbnRpbmdWaWV3IGtub3dzUGFnZVJhbmdlOl0pOgorCiAyMDIxLTA1LTIzICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgVXNlIENoZWNrZWRMb2NrIGlu
IGV2ZW4gbW9yZSBwbGFjZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3Nl
bWJsZXIvUGVyZkxvZy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9QZXJmTG9n
LmgKaW5kZXggOGYyNGU4ZmE4YTNlMWI2YmM5NmQ1OThiNWQwZjI1MTUwYTdmZjcyMS4uOTc2MGRm
NjY1OGQyOTMzM2FmYTlhZGE4NzFhOTVjZTMyY2EwZDI0ZCAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9QZXJmTG9nLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2Fzc2VtYmxlci9QZXJmTG9nLmgKQEAgLTUwLDcgKzUwLDcgQEAgcHJpdmF0ZToKICAgICB2
b2lkKiBtX21hcmtlciB7IG51bGxwdHIgfTsKICAgICB1aW50NjRfdCBtX2NvZGVJbmRleCB7IDAg
fTsKICAgICBpbnQgbV9mZCB7IC0xIH07Ci0gICAgTG9jayBtX2xvY2s7CisgICAgVW5jaGVja2Vk
TG9jayBtX2xvY2s7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvdGVzdG1hc20uY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Fzc2VtYmxlci90ZXN0bWFzbS5jcHAKaW5kZXggMTkxZDE4MjkzNWFjMWE2ZTZmMGI1
MGI3YTMxM2JkOTg4N2FkYTQyMC4uZDM1M2U3MTJmODk5YzMwZTc5YmQ1MWM1ZGNjZDU3M2ExZDBl
YmM4MyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci90ZXN0bWFz
bS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci90ZXN0bWFzbS5jcHAK
QEAgLTE1Nyw3ICsxNTcsNyBAQCBuYW1lc3BhY2UgewogdXNpbmcgQ1BVU3RhdGUgPSBQcm9iZTo6
Q1BVU3RhdGU7CiAjZW5kaWYKIAotTG9jayBjcmFzaExvY2s7CitVbmNoZWNrZWRMb2NrIGNyYXNo
TG9jazsKIAogdHlwZWRlZiBXVEY6OkZ1bmN0aW9uPHZvaWQoQ0NhbGxIZWxwZXJzJik+IEdlbmVy
YXRvcjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDb21tb24u
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDb21tb24uY3BwCmluZGV4IGE3YWJj
NjQ3NDkzZDJiNjhkOThkYzJhNDAxNGJjMzNjN2RhYjg1ZmIuLjg3NjNjM2ZkNTFmYjE2NTRjNjk1
NDA0YTg1ZjY3YjBiOWU4MzcwNTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHQ29tbW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NvbW1v
bi5jcHAKQEAgLTM1LDcgKzM1LDcgQEAgbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBERkcgewog
CiBjb25zdCBjaGFyKiBjb25zdCB0aWVyTmFtZSA9ICJERkcgIjsKIAotc3RhdGljIExvY2sgY3Jh
c2hMb2NrOworc3RhdGljIFVuY2hlY2tlZExvY2sgY3Jhc2hMb2NrOwogCiB2b2lkIHN0YXJ0Q3Jh
c2hpbmcoKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdUaHJl
YWREYXRhLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1RocmVhZERhdGEuaAppbmRl
eCAzN2RmOWJkMTIxNTQ5Y2RlZDExZTk5ZjQyZmZkMmM1MGYwMjUyZDg2Li41MjJiN2QyYjdjMzYx
ZThiOWQzODBjNzI4Y2ZiOGEwNWIxNzQ2OWJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR1RocmVhZERhdGEuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1RocmVhZERhdGEuaApAQCAtNDcsNyArNDcsNyBAQCBwcml2YXRlOgogICAgIAogICAgIFdv
cmtsaXN0KiBtX3dvcmtsaXN0OwogICAgIFJlZlB0cjxBdXRvbWF0aWNUaHJlYWQ+IG1fdGhyZWFk
OwotICAgIExvY2sgbV9yaWdodFRvUnVuOworICAgIFVuY2hlY2tlZExvY2sgbV9yaWdodFRvUnVu
OwogICAgIFNhZmVwb2ludCogbV9zYWZlcG9pbnQ7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1dvcmtsaXN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHV29ya2xpc3QuY3BwCmluZGV4IDRkMjI4Y2ZlODdhZDk4MTkzNmMwN2MwOWQ0MWI3
Mjc1MTU1OTRhOTEuLmQxNTdhZGY4NzZkYzg0NjgzYTg2YzA0NmVhMmJlZWNiYWI5OWE5MzcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHV29ya2xpc3QuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHV29ya2xpc3QuY3BwCkBAIC0zOSw3ICszOSw3
IEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKIAogY2xhc3MgV29ya2xpc3Q6OlRo
cmVhZEJvZHkgZmluYWwgOiBwdWJsaWMgQXV0b21hdGljVGhyZWFkIHsKIHB1YmxpYzoKLSAgICBU
aHJlYWRCb2R5KGNvbnN0IEFic3RyYWN0TG9ja2VyJiBsb2NrZXIsIFdvcmtsaXN0JiB3b3JrbGlz
dCwgVGhyZWFkRGF0YSYgZGF0YSwgQm94PExvY2s+IGxvY2ssIFJlZjxBdXRvbWF0aWNUaHJlYWRD
b25kaXRpb24+JiYgY29uZGl0aW9uLCBpbnQgcmVsYXRpdmVQcmlvcml0eSkKKyAgICBUaHJlYWRC
b2R5KGNvbnN0IEFic3RyYWN0TG9ja2VyJiBsb2NrZXIsIFdvcmtsaXN0JiB3b3JrbGlzdCwgVGhy
ZWFkRGF0YSYgZGF0YSwgQm94PFVuY2hlY2tlZExvY2s+IGxvY2ssIFJlZjxBdXRvbWF0aWNUaHJl
YWRDb25kaXRpb24+JiYgY29uZGl0aW9uLCBpbnQgcmVsYXRpdmVQcmlvcml0eSkKICAgICAgICAg
OiBBdXRvbWF0aWNUaHJlYWQobG9ja2VyLCBsb2NrLCBXVEZNb3ZlKGNvbmRpdGlvbiksIFRocmVh
ZFR5cGU6OkNvbXBpbGVyKQogICAgICAgICAsIG1fd29ya2xpc3Qod29ya2xpc3QpCiAgICAgICAg
ICwgbV9kYXRhKGRhdGEpCkBAIC0xODEsNyArMTgxLDcgQEAgc3RhdGljIENTdHJpbmcgY3JlYXRl
V29ya2xpc3ROYW1lKENTdHJpbmcmJiB0aWVyTmFtZSkKIFdvcmtsaXN0OjpXb3JrbGlzdChDU3Ry
aW5nJiYgdGllck5hbWUpCiAgICAgOiBtX3RocmVhZE5hbWUoY3JlYXRlV29ya2xpc3ROYW1lKFdU
Rk1vdmUodGllck5hbWUpKSkKICAgICAsIG1fcGxhbkVucXVldWVkKEF1dG9tYXRpY1RocmVhZENv
bmRpdGlvbjo6Y3JlYXRlKCkpCi0gICAgLCBtX2xvY2soQm94PExvY2s+OjpjcmVhdGUoKSkKKyAg
ICAsIG1fbG9jayhCb3g8VW5jaGVja2VkTG9jaz46OmNyZWF0ZSgpKQogewogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1dvcmtsaXN0LmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1dvcmtsaXN0LmgKaW5kZXggMWNlMDJjMDdkOGIxMjgxOTRiY2Mw
M2M3ZjJhNTQxY2QwYTVmNDUyOS4uNTc2ZTAzZTQ3ZTZlZjUwM2M2ZDAxMTZlY2ZiZGMwYThjNmM3
NWM4OCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdXb3JrbGlzdC5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHV29ya2xpc3QuaApAQCAtMTEwLDEw
ICsxMTAsMTAgQEAgcHJpdmF0ZToKICAgICAvLyBiZSBjb21wbGV0ZWQuCiAgICAgVmVjdG9yPFJl
ZlB0cjxQbGFuPiwgMTY+IG1fcmVhZHlQbGFuczsKICAgICBSZWY8QXV0b21hdGljVGhyZWFkQ29u
ZGl0aW9uPiBtX3BsYW5FbnF1ZXVlZDsKLSAgICBDb25kaXRpb24gbV9wbGFuQ29tcGlsZWQ7Cisg
ICAgVW5jaGVja2VkQ29uZGl0aW9uIG1fcGxhbkNvbXBpbGVkOwogCi0gICAgTG9jayBtX3N1c3Bl
bnNpb25Mb2NrOwotICAgIEJveDxMb2NrPiBtX2xvY2s7CisgICAgVW5jaGVja2VkTG9jayBtX3N1
c3BlbnNpb25Mb2NrOworICAgIEJveDxVbmNoZWNrZWRMb2NrPiBtX2xvY2s7CiB9OwogCiBKU19F
WFBPUlRfUFJJVkFURSB1bnNpZ25lZCBzZXROdW1iZXJPZkRGR0NvbXBpbGVyVGhyZWFkcyh1bnNp
Z25lZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZHluYmVuY2guY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2R5bmJlbmNoLmNwcAppbmRleCA4ZjllNWViNzQxMDQ3NWZi
N2M4YjA4NjkyNjIzMzRmZTJhOTc4OTg1Li43OTUyNjExMGUyYTNhNjIwNTJkMTA5ZTliZGI4OGU5
ZWVhYmZmZjU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZHluYmVuY2guY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9keW5iZW5jaC5jcHAKQEAgLTQwLDcgKzQwLDcg
QEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAogbmFtZXNwYWNlIHsKIAotTG9jayBjcmFzaExvY2s7
CitVbmNoZWNrZWRMb2NrIGNyYXNoTG9jazsKIGNvbnN0IGNoYXIqIG5hbWVGaWx0ZXI7CiB1bnNp
Z25lZCByZXF1ZXN0ZWRJdGVyYXRpb25Db3VudDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2hlYXAvQmxvY2tEaXJlY3RvcnkuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9o
ZWFwL0Jsb2NrRGlyZWN0b3J5LmgKaW5kZXggZGFhMDNjNDdlZGY5ZDM2ZDE1NmJkNWQxYTY2MjFi
ZWU2YWFkZjhhZC4uOTAxNTg4Yzk0MzljMzVkZmM4MDRhMGI3NTdjNWU1YjU2M2Y0NGE0ZSAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvQmxvY2tEaXJlY3RvcnkuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9CbG9ja0RpcmVjdG9yeS5oCkBAIC05Myw3ICs5
Myw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgdXBkYXRlUGVyY2VudGFnZU9mUGFnZWRPdXRQYWdl
cyhXVEY6OlNpbXBsZVN0YXRzJik7CiAgICAgCi0gICAgTG9jayYgYml0dmVjdG9yTG9jaygpIHsg
cmV0dXJuIG1fYml0dmVjdG9yTG9jazsgfQorICAgIFVuY2hlY2tlZExvY2smIGJpdHZlY3Rvckxv
Y2soKSB7IHJldHVybiBtX2JpdHZlY3RvckxvY2s7IH0KIAogI2RlZmluZSBCTE9DS19ESVJFQ1RP
UllfQklUX0FDQ0VTU09SUyhsb3dlckJpdE5hbWUsIGNhcGl0YWxCaXROYW1lKSAgICAgXAogICAg
IGJvb2wgaXMgIyMgY2FwaXRhbEJpdE5hbWUoY29uc3QgQWJzdHJhY3RMb2NrZXImLCBzaXplX3Qg
aW5kZXgpIGNvbnN0IHsgcmV0dXJuIG1fYml0cy5pcyAjIyBjYXBpdGFsQml0TmFtZShpbmRleCk7
IH0gXApAQCAtMTU1LDcgKzE1NSw3IEBAIHByaXZhdGU6CiAgICAgLy8gTXV0YXRvciB1c2VzIHRo
aXMgdG8gZ3VhcmQgcmVzaXppbmcgdGhlIGJpdHZlY3RvcnMuIFRob3NlIHRoaW5ncyBpbiB0aGUg
R0MgdGhhdCBtYXkgcnVuCiAgICAgLy8gY29uY3VycmVudGx5IHRvIHRoZSBtdXRhdG9yIG11c3Qg
bG9jayB0aGlzIHdoZW4gYWNjZXNzaW5nIHRoZSBiaXR2ZWN0b3JzLgogICAgIEJsb2NrRGlyZWN0
b3J5Qml0cyBtX2JpdHM7Ci0gICAgTG9jayBtX2JpdHZlY3RvckxvY2s7CisgICAgVW5jaGVja2Vk
TG9jayBtX2JpdHZlY3RvckxvY2s7CiAgICAgTG9jayBtX2xvY2FsQWxsb2NhdG9yc0xvY2s7CiAg
ICAgQ2VsbEF0dHJpYnV0ZXMgbV9hdHRyaWJ1dGVzOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaGVhcC9Db2RlQmxvY2tTZXQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9o
ZWFwL0NvZGVCbG9ja1NldC5oCmluZGV4IGIwZGNiNmNjNzdjOWY5OWQzMDJjNzk5ZDk4ZTM5ZTk1
M2U2YWY0MTkuLjg1NmNjMWJiZjhiZDJkMTdjZGNkY2E3ZDNiNDRjNzFmMmZhNzBiMTggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0NvZGVCbG9ja1NldC5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0NvZGVCbG9ja1NldC5oCkBAIC01NCw3ICs1NCw3IEBA
IHB1YmxpYzoKICAgICB2b2lkIGNsZWFyQ3VycmVudGx5RXhlY3V0aW5nKCk7CiAKICAgICBib29s
IGNvbnRhaW5zKGNvbnN0IEFic3RyYWN0TG9ja2VyJiwgdm9pZCogY2FuZGlkYXRlQ29kZUJsb2Nr
KTsKLSAgICBMb2NrJiBnZXRMb2NrKCkgeyByZXR1cm4gbV9sb2NrOyB9CisgICAgVW5jaGVja2Vk
TG9jayYgZ2V0TG9jaygpIHsgcmV0dXJuIG1fbG9jazsgfQogCiAgICAgLy8gVGhpcyBpcyBleHBl
Y3RlZCB0byBydW4gb25seSB3aGVuIHdlJ3JlIG5vdCBhZGRpbmcgdG8gdGhlIHNldCBmb3Igbm93
LiBJZgogICAgIC8vIHRoaXMgbmVlZHMgdG8gcnVuIGNvbmN1cnJlbnRseSBpbiB0aGUgZnV0dXJl
LCB3ZSdsbCBuZWVkIHRvIGxvY2sgYXJvdW5kIHRoaXMuCkBAIC03OCw3ICs3OCw3IEBAIHB1Ymxp
YzoKIHByaXZhdGU6CiAgICAgSGFzaFNldDxDb2RlQmxvY2sqPiBtX2NvZGVCbG9ja3M7CiAgICAg
SGFzaFNldDxDb2RlQmxvY2sqPiBtX2N1cnJlbnRseUV4ZWN1dGluZzsKLSAgICBMb2NrIG1fbG9j
azsKKyAgICBVbmNoZWNrZWRMb2NrIG1fbG9jazsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNwcAppbmRleCA4YmM4NmQyY2E3NTE1YjRiOGUyZjc2
NGRlOTBlMmE2YzI0NzI2NjkxLi44NjFhNDAyZTUwZDBiY2MwZmVhZTYwMzA0N2NmMzVjMmVjZGM0
ZGU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNwcApAQCAtMzAyLDcgKzMwMiw3IEBA
IEhlYXA6OkhlYXAoVk0mIHZtLCBIZWFwVHlwZSBoZWFwVHlwZSkKICAgICAsIG1fc2hhcmVkQ29s
bGVjdG9yTWFya1N0YWNrKG1ha2VVbmlxdWU8TWFya1N0YWNrQXJyYXk+KCkpCiAgICAgLCBtX3No
YXJlZE11dGF0b3JNYXJrU3RhY2sobWFrZVVuaXF1ZTxNYXJrU3RhY2tBcnJheT4oKSkKICAgICAs
IG1faGVscGVyQ2xpZW50KCZoZWFwSGVscGVyUG9vbCgpKQotICAgICwgbV90aHJlYWRMb2NrKEJv
eDxMb2NrPjo6Y3JlYXRlKCkpCisgICAgLCBtX3RocmVhZExvY2soQm94PFVuY2hlY2tlZExvY2s+
OjpjcmVhdGUoKSkKICAgICAsIG1fdGhyZWFkQ29uZGl0aW9uKEF1dG9tYXRpY1RocmVhZENvbmRp
dGlvbjo6Y3JlYXRlKCkpCiB7CiAgICAgbV93b3JsZFN0YXRlLnN0b3JlKDApOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2hlYXAvSGVhcC5oCmluZGV4IDdhNTNlMDUxNWQwNjk2NTNkMDRmYjliYWMzNTU4ZDdlODFk
OTVmMmMuLjY4ZDkwNzRmZGYzZDhlYThmNDg3YjA2NDg3YjgwZDdhMmIxYjgwMzEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaGVhcC9IZWFwLmgKQEAgLTcyMiw4ICs3MjIsOCBAQCBwcml2YXRlOgogICAgIEF0
b21pYzx1bnNpZ25lZD4gbV93b3JsZFN0YXRlOwogICAgIGJvb2wgbV93b3JsZElzU3RvcHBlZCB7
IGZhbHNlIH07CiAgICAgTG9jayBtX3Zpc2l0UmFjZUxvY2s7Ci0gICAgTG9jayBtX21hcmtpbmdN
dXRleDsKLSAgICBDb25kaXRpb24gbV9tYXJraW5nQ29uZGl0aW9uVmFyaWFibGU7CisgICAgVW5j
aGVja2VkTG9jayBtX21hcmtpbmdNdXRleDsKKyAgICBVbmNoZWNrZWRDb25kaXRpb24gbV9tYXJr
aW5nQ29uZGl0aW9uVmFyaWFibGU7CiAKICAgICBNb25vdG9uaWNUaW1lIG1fYmVmb3JlR0M7CiAg
ICAgTW9ub3RvbmljVGltZSBtX2FmdGVyR0M7CkBAIC03NDYsNyArNzQ2LDcgQEAgcHJpdmF0ZToK
IAogICAgIHVpbnQ2NF90IG1fbXV0YXRvckV4ZWN1dGlvblZlcnNpb24geyAwIH07CiAgICAgdWlu
dDY0X3QgbV9waGFzZVZlcnNpb24geyAwIH07Ci0gICAgQm94PExvY2s+IG1fdGhyZWFkTG9jazsK
KyAgICBCb3g8VW5jaGVja2VkTG9jaz4gbV90aHJlYWRMb2NrOwogICAgIFJlZjxBdXRvbWF0aWNU
aHJlYWRDb25kaXRpb24+IG1fdGhyZWFkQ29uZGl0aW9uOyAvLyBUaGUgbXV0YXRvciBtdXN0IG5v
dCB3YWl0IG9uIHRoaXMuIEl0IHdvdWxkIGNhdXNlIGEgZGVhZGxvY2suCiAgICAgUmVmUHRyPEF1
dG9tYXRpY1RocmVhZD4gbV90aHJlYWQ7CiAKQEAgLTc2OCw4ICs3NjgsOCBAQCBwcml2YXRlOgog
I2VuZGlmCiAKICAgICBib29sIG1fcGFyYWxsZWxNYXJrZXJzU2hvdWxkRXhpdCB7IGZhbHNlIH07
Ci0gICAgTG9jayBtX2NvbGxlY3RDb250aW51b3VzbHlMb2NrOwotICAgIENvbmRpdGlvbiBtX2Nv
bGxlY3RDb250aW51b3VzbHlDb25kaXRpb247CisgICAgVW5jaGVja2VkTG9jayBtX2NvbGxlY3RD
b250aW51b3VzbHlMb2NrOworICAgIFVuY2hlY2tlZENvbmRpdGlvbiBtX2NvbGxlY3RDb250aW51
b3VzbHlDb25kaXRpb247CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hcmtlZFNwYWNlLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaGVhcC9NYXJrZWRTcGFjZS5oCmluZGV4IDViZTUxZGU3ZTRjZjk5YjNkNmY0Nzc3N2Yw
MGI2ZDJhOTdhYjgwNGYuLjI2OGI5NzBhNTk4YjQyNWI5ZmNlMzY3ZGIyZWJhZWE3MWViY2MzMWIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hcmtlZFNwYWNlLmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTWFya2VkU3BhY2UuaApAQCAtMTY4LDcgKzE2
OCw3IEBAIHB1YmxpYzoKICAgICAKICAgICBCbG9ja0RpcmVjdG9yeSogZmlyc3REaXJlY3Rvcnko
KSBjb25zdCB7IHJldHVybiBtX2RpcmVjdG9yaWVzLmZpcnN0KCk7IH0KICAgICAKLSAgICBMb2Nr
JiBkaXJlY3RvcnlMb2NrKCkgeyByZXR1cm4gbV9kaXJlY3RvcnlMb2NrOyB9CisgICAgVW5jaGVj
a2VkTG9jayYgZGlyZWN0b3J5TG9jaygpIHsgcmV0dXJuIG1fZGlyZWN0b3J5TG9jazsgfQogICAg
IHZvaWQgYWRkQmxvY2tEaXJlY3RvcnkoY29uc3QgQWJzdHJhY3RMb2NrZXImLCBCbG9ja0RpcmVj
dG9yeSopOwogICAgIAogICAgIC8vIFdoZW4gdGhpcyBpcyB0cnVlIGl0IG1lYW5zIHRoYXQgd2Ug
aGF2ZSBmbGlwcGVkIGJ1dCB0aGUgbWFyayBiaXRzIGhhdmVuJ3QgY29udmVyZ2VkIHlldC4KQEAg
LTIxNCw3ICsyMTQsNyBAQCBwcml2YXRlOgogICAgIEhlYXBWZXJzaW9uIG1fbmV3bHlBbGxvY2F0
ZWRWZXJzaW9uIHsgaW5pdGlhbFZlcnNpb24gfTsKICAgICBib29sIG1faXNJdGVyYXRpbmcgeyBm
YWxzZSB9OwogICAgIGJvb2wgbV9pc01hcmtpbmcgeyBmYWxzZSB9OwotICAgIExvY2sgbV9kaXJl
Y3RvcnlMb2NrOworICAgIFVuY2hlY2tlZExvY2sgbV9kaXJlY3RvcnlMb2NrOwogICAgIE1hcmtl
ZEJsb2NrU2V0IG1fYmxvY2tzOwogICAgIAogICAgIFNlbnRpbmVsTGlua2VkTGlzdDxXZWFrU2V0
LCBCYXNpY1Jhd1NlbnRpbmVsTm9kZTxXZWFrU2V0Pj4gbV9hY3RpdmVXZWFrU2V0czsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hcmtpbmdDb25zdHJhaW50U29sdmVy
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYXJraW5nQ29uc3RyYWludFNvbHZlci5o
CmluZGV4IDhlNGYyZjRkZGYzMWNmYzgwNzFjZjNiZWNiNmU1ZTI3OGFlY2IwMWUuLjM1MGU1NTY2
MjQyODRkYWJlNDczMTdmYzgwZDJmZGQ2YjlhNTg3N2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9oZWFwL01hcmtpbmdDb25zdHJhaW50U29sdmVyLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2hlYXAvTWFya2luZ0NvbnN0cmFpbnRTb2x2ZXIuaApAQCAtOTUsOCArOTUs
OCBAQCBwcml2YXRlOgogICAgIEJpdFZlY3RvciBtX2V4ZWN1dGVkOwogICAgIERlcXVlPFRhc2tX
aXRoQ29uc3RyYWludCwgMzI+IG1fdG9FeGVjdXRlSW5QYXJhbGxlbDsKICAgICBWZWN0b3I8dW5z
aWduZWQsIDMyPiBtX3RvRXhlY3V0ZVNlcXVlbnRpYWxseTsKLSAgICBMb2NrIG1fbG9jazsKLSAg
ICBDb25kaXRpb24gbV9jb25kaXRpb247CisgICAgVW5jaGVja2VkTG9jayBtX2xvY2s7CisgICAg
VW5jaGVja2VkQ29uZGl0aW9uIG1fY29uZGl0aW9uOwogICAgIGJvb2wgbV9waWNrTmV4dElzU3Rp
bGxBY3RpdmUgeyB0cnVlIH07CiAgICAgdW5zaWduZWQgbV9udW1UaHJlYWRzVGhhdE1heVByb2R1
Y2VXb3JrIHsgMCB9OwogICAgIFZlY3RvcjxWaXNpdENvdW50ZXIsIDE2PiBtX3Zpc2l0Q291bnRl
cnM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9TbG90VmlzaXRvci5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9TbG90VmlzaXRvci5jcHAKaW5kZXggZjlh
MTgzMjNjNzI4MzM0NzE5OGQ5Njg4OWRjNTlmNzQzNzhmMjA3Mi4uYWI3MzJjMjRlYzUwZTg5MDli
NDkxZWM5YjE2OWFmMzBmZWM4OTMzNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2hlYXAvU2xvdFZpc2l0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1Ns
b3RWaXNpdG9yLmNwcApAQCAtNDM2LDcgKzQzNiw3IEBAIHZvaWQgU2xvdFZpc2l0b3I6OmRvbmF0
ZUtub3duUGFyYWxsZWwoTWFya1N0YWNrQXJyYXkmIGZyb20sIE1hcmtTdGFja0FycmF5JiB0bykK
IAogICAgIC8vIElmIHdlJ3JlIGNvbnRlbmRpbmcgb24gdGhlIGxvY2ssIGJlIGNvbnNlcnZhdGl2
ZSBhbmQgYXNzdW1lIHRoYXQgYW5vdGhlcgogICAgIC8vIHRocmVhZCBpcyBhbHJlYWR5IGRvbmF0
aW5nLgotICAgIHN0ZDo6dW5pcXVlX2xvY2s8TG9jaz4gbG9jayhtX2hlYXAubV9tYXJraW5nTXV0
ZXgsIHN0ZDo6dHJ5X3RvX2xvY2spOworICAgIHN0ZDo6dW5pcXVlX2xvY2s8VW5jaGVja2VkTG9j
az4gbG9jayhtX2hlYXAubV9tYXJraW5nTXV0ZXgsIHN0ZDo6dHJ5X3RvX2xvY2spOwogICAgIGlm
ICghbG9jay5vd25zX2xvY2soKSkKICAgICAgICAgcmV0dXJuOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaGVhcC9TbG90VmlzaXRvci5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2hlYXAvU2xvdFZpc2l0b3IuaAppbmRleCA0MjMzM2FmM2UwMjAyNjdlNTM3ZTA5M2U0YjA2
MzMyMjFkZTNlNzNhLi5kNTVkYjYwMTdkZTczY2Y2YzJmMWNjY2Y0Y2YzY2Q1NDM4Mzk2NTM5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9TbG90VmlzaXRvci5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1Nsb3RWaXNpdG9yLmgKQEAgLTE2MSw3ICsxNjEs
NyBAQCBwdWJsaWM6CiAKICAgICBib29sIG11dGF0b3JJc1N0b3BwZWQoKSBjb25zdCBmaW5hbCB7
IHJldHVybiBtX211dGF0b3JJc1N0b3BwZWQ7IH0KICAgICAKLSAgICBMb2NrJiByaWdodFRvUnVu
KCkgeyByZXR1cm4gbV9yaWdodFRvUnVuOyB9CisgICAgVW5jaGVja2VkTG9jayYgcmlnaHRUb1J1
bigpIHsgcmV0dXJuIG1fcmlnaHRUb1J1bjsgfQogICAgIAogICAgIHZvaWQgdXBkYXRlTXV0YXRv
cklzU3RvcHBlZChjb25zdCBBYnN0cmFjdExvY2tlciYpOwogICAgIHZvaWQgdXBkYXRlTXV0YXRv
cklzU3RvcHBlZCgpOwpAQCAtMjMyLDcgKzIzMiw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX211
dGF0b3JJc1N0b3BwZWQgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9jYW5PcHRpbWl6ZUZvclN0b3Bw
ZWRNdXRhdG9yIHsgZmFsc2UgfTsKICAgICBib29sIG1faXNJblBhcmFsbGVsTW9kZSB7IGZhbHNl
IH07Ci0gICAgTG9jayBtX3JpZ2h0VG9SdW47CisgICAgVW5jaGVja2VkTG9jayBtX3JpZ2h0VG9S
dW47CiAgICAgCiAgICAgLy8gUHV0IHBhZGRpbmcgaGVyZSB0byBtaXRpZ2F0ZSBmYWxzZSBzaGFy
aW5nIGJldHdlZW4gbXVsdGlwbGUgU2xvdFZpc2l0b3JzLgogICAgIGNoYXIgcGFkZGluZ1s2NF07
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3JlbW90ZS9zb2Nr
ZXQvUmVtb3RlSW5zcGVjdG9yU29ja2V0RW5kcG9pbnQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9pbnNwZWN0b3IvcmVtb3RlL3NvY2tldC9SZW1vdGVJbnNwZWN0b3JTb2NrZXRFbmRwb2ludC5o
CmluZGV4IDI1YmMxOGNiNjhkODNkMmZiZmFiYmNkZjZkMzU0MTgyNzViOTYyMTguLjI0YTNlNThm
YzM2N2IzZjE5Mjk1MGZjNjhiZDdlZjkyZTg2OGUxZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL3NvY2tldC9SZW1vdGVJbnNwZWN0b3JTb2NrZXRF
bmRwb2ludC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL3Nv
Y2tldC9SZW1vdGVJbnNwZWN0b3JTb2NrZXRFbmRwb2ludC5oCkBAIC0xODIsNyArMTgyLDcgQEAg
cHJvdGVjdGVkOgogICAgIGJvb2wgaXNMaXN0ZW5pbmcoQ29ubmVjdGlvbklEKTsKICAgICBpbnQg
cG9sbGluZ1RpbWVvdXQoKTsKIAotICAgIG11dGFibGUgTG9jayBtX2Nvbm5lY3Rpb25zTG9jazsK
KyAgICBtdXRhYmxlIFVuY2hlY2tlZExvY2sgbV9jb25uZWN0aW9uc0xvY2s7CiAgICAgSGFzaE1h
cDxDb25uZWN0aW9uSUQsIHN0ZDo6dW5pcXVlX3B0cjxDbGllbnRDb25uZWN0aW9uPj4gbV9jbGll
bnRzOwogICAgIEhhc2hNYXA8Q29ubmVjdGlvbklELCBzdGQ6OnVuaXF1ZV9wdHI8TGlzdGVuZXJD
b25uZWN0aW9uPj4gbV9saXN0ZW5lcnM7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvRXhlY3V0YWJsZUFsbG9jYXRvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0V4ZWN1dGFibGVBbGxvY2F0b3IuY3BwCmluZGV4IDI3OWUwNzVlNGNiNjE3NzI5YzZlMmQ1
ZmVmZjk4NjI3YzcwNTJmMDEuLjYxOTQ1NWIxZjZkYmFjYTRhN2RkYWM3Y2JmNmQ5YzkyZmExNmNh
MmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvRXhlY3V0YWJsZUFsbG9j
YXRvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9FeGVjdXRhYmxlQWxsb2Nh
dG9yLmNwcApAQCAtNDg1LDcgKzQ4NSw3IEBAIHB1YmxpYzoKICNlbmRpZiAvLyBFTkFCTEUoSlVN
UF9JU0xBTkRTKQogICAgIH0KIAotICAgIExvY2smIGdldExvY2soKSB7IHJldHVybiBtX2xvY2s7
IH0KKyAgICBVbmNoZWNrZWRMb2NrJiBnZXRMb2NrKCkgeyByZXR1cm4gbV9sb2NrOyB9CiAKICAg
ICAvLyBOb24gYXRvbWljCiAgICAgc2l6ZV90IGJ5dGVzQWxsb2NhdGVkKCkgCkBAIC01NDcsNyAr
NTQ3LDcgQEAgcHVibGljOgogICAgIH0KIAogI2lmIEVOQUJMRShKVU1QX0lTTEFORFMpCi0gICAg
dm9pZCBoYW5kbGVXaWxsQmVSZWxlYXNlZChjb25zdCBMb2NrSG9sZGVyJiBsb2NrZXIsIE1ldGFB
bGxvY2F0b3JIYW5kbGUmIGhhbmRsZSkKKyAgICB2b2lkIGhhbmRsZVdpbGxCZVJlbGVhc2VkKGNv
bnN0IFVuY2hlY2tlZExvY2tIb2xkZXImIGxvY2tlciwgTWV0YUFsbG9jYXRvckhhbmRsZSYgaGFu
ZGxlKQogICAgIHsKICAgICAgICAgaWYgKG1faXNsYW5kc0Zvckp1bXBTb3VyY2VMb2NhdGlvbi5p
c0VtcHR5KCkpCiAgICAgICAgICAgICByZXR1cm47CkBAIC01OTksNyArNTk5LDcgQEAgcHJpdmF0
ZToKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICB9CiAKLSAgICB2b2lkIGZyZWVKdW1wSXNs
YW5kcyhjb25zdCBMb2NrSG9sZGVyJiwgSXNsYW5kcyogaXNsYW5kcykKKyAgICB2b2lkIGZyZWVK
dW1wSXNsYW5kcyhjb25zdCBVbmNoZWNrZWRMb2NrSG9sZGVyJiwgSXNsYW5kcyogaXNsYW5kcykK
ICAgICB7CiAgICAgICAgIGZvciAoQ29kZUxvY2F0aW9uTGFiZWw8RXhlY3V0YWJsZU1lbW9yeVB0
clRhZz4ganVtcElzbGFuZCA6IGlzbGFuZHMtPmp1bXBJc2xhbmRzKSB7CiAgICAgICAgICAgICB1
aW50cHRyX3QgdW50YWdnZWRKdW1wSXNsYW5kID0gYml0d2lzZV9jYXN0PHVpbnRwdHJfdD4oanVt
cElzbGFuZC5kYXRhTG9jYXRpb24oKSk7CkBAIC02MTAsMTQgKzYxMCwxNCBAQCBwcml2YXRlOgog
ICAgICAgICBpc2xhbmRzLT5qdW1wSXNsYW5kcy5jbGVhcigpOwogICAgIH0KIAotICAgIHZvaWQg
ZnJlZUlzbGFuZHMoY29uc3QgTG9ja0hvbGRlciYgbG9ja2VyLCBJc2xhbmRzKiBpc2xhbmRzKQor
ICAgIHZvaWQgZnJlZUlzbGFuZHMoY29uc3QgVW5jaGVja2VkTG9ja0hvbGRlciYgbG9ja2VyLCBJ
c2xhbmRzKiBpc2xhbmRzKQogICAgIHsKICAgICAgICAgZnJlZUp1bXBJc2xhbmRzKGxvY2tlciwg
aXNsYW5kcyk7CiAgICAgICAgIG1faXNsYW5kc0Zvckp1bXBTb3VyY2VMb2NhdGlvbi5yZW1vdmUo
aXNsYW5kcyk7CiAgICAgICAgIGRlbGV0ZSBpc2xhbmRzOwogICAgIH0KIAotICAgIHZvaWQqIGlz
bGFuZEZvckp1bXBMb2NhdGlvbihjb25zdCBMb2NrSG9sZGVyJiBsb2NrZXIsIHVpbnRwdHJfdCBq
dW1wTG9jYXRpb24sIHVpbnRwdHJfdCB0YXJnZXQsIGJvb2wgY29uY3VycmVudGx5KQorICAgIHZv
aWQqIGlzbGFuZEZvckp1bXBMb2NhdGlvbihjb25zdCBVbmNoZWNrZWRMb2NrSG9sZGVyJiBsb2Nr
ZXIsIHVpbnRwdHJfdCBqdW1wTG9jYXRpb24sIHVpbnRwdHJfdCB0YXJnZXQsIGJvb2wgY29uY3Vy
cmVudGx5KQogICAgIHsKICAgICAgICAgSXNsYW5kcyogaXNsYW5kcyA9IG1faXNsYW5kc0Zvckp1
bXBTb3VyY2VMb2NhdGlvbi5maW5kRXhhY3QoYml0d2lzZV9jYXN0PHZvaWQqPihqdW1wTG9jYXRp
b24pKTsKICAgICAgICAgaWYgKGlzbGFuZHMpIHsKQEAgLTc0Niw3ICs3NDYsNyBAQCBwcml2YXRl
OgogICAgICAgICAgICAgcmV0dXJuIGlzbGFuZHNQZXJQYWdlOwogICAgICAgICB9CiAKLSAgICAg
ICAgdm9pZCByZWxlYXNlKGNvbnN0IExvY2tIb2xkZXImIGxvY2tlciwgTWV0YUFsbG9jYXRvckhh
bmRsZSYgaGFuZGxlKSBmaW5hbAorICAgICAgICB2b2lkIHJlbGVhc2UoY29uc3QgVW5jaGVja2Vk
TG9ja0hvbGRlciYgbG9ja2VyLCBNZXRhQWxsb2NhdG9ySGFuZGxlJiBoYW5kbGUpIGZpbmFsCiAg
ICAgICAgIHsKICAgICAgICAgICAgIG1fZml4ZWRBbGxvY2F0b3IuaGFuZGxlV2lsbEJlUmVsZWFz
ZWQobG9ja2VyLCBoYW5kbGUpOwogICAgICAgICAgICAgQmFzZTo6cmVsZWFzZShsb2NrZXIsIGhh
bmRsZSk7CkBAIC04NDcsNyArODQ3LDcgQEAgcHJpdmF0ZToKICAgICB9OwogI2VuZGlmIC8vIEVO
QUJMRShKVU1QX0lTTEFORFMpCiAKLSAgICBMb2NrIG1fbG9jazsKKyAgICBVbmNoZWNrZWRMb2Nr
IG1fbG9jazsKICAgICBQYWdlUmVzZXJ2YXRpb24gbV9yZXNlcnZhdGlvbjsKICNpZiBFTkFCTEUo
SlVNUF9JU0xBTkRTKQogICAgIHN0ZDo6YXJyYXk8UmVnaW9uQWxsb2NhdG9yLCBtYXhOdW1iZXJP
ZlJlZ2lvbnM+IG1fYWxsb2NhdG9yczsKQEAgLTk2MSw3ICs5NjEsNyBAQCBib29sIEV4ZWN1dGFi
bGVBbGxvY2F0b3I6OmlzVmFsaWRFeGVjdXRhYmxlTWVtb3J5KGNvbnN0IEFic3RyYWN0TG9ja2Vy
JiBsb2NrZXIsCiAgICAgcmV0dXJuIGFsbG9jYXRvci0+aXNJbkFsbG9jYXRlZE1lbW9yeShsb2Nr
ZXIsIGFkZHJlc3MpOwogfQogCi1Mb2NrJiBFeGVjdXRhYmxlQWxsb2NhdG9yOjpnZXRMb2NrKCkg
Y29uc3QKK1VuY2hlY2tlZExvY2smIEV4ZWN1dGFibGVBbGxvY2F0b3I6OmdldExvY2soKSBjb25z
dAogewogICAgIEZpeGVkVk1Qb29sRXhlY3V0YWJsZUFsbG9jYXRvciogYWxsb2NhdG9yID0gZ19q
c2NDb25maWcuZml4ZWRWTVBvb2xFeGVjdXRhYmxlQWxsb2NhdG9yOwogICAgIGlmICghYWxsb2Nh
dG9yKQpAQCAtMTAzOCw3ICsxMDM4LDcgQEAgdm9pZCBkdW1wSklUTWVtb3J5KGNvbnN0IHZvaWQq
IGRzdCwgY29uc3Qgdm9pZCogc3JjLCBzaXplX3Qgc2l6ZSkKICAgICBzdGF0aWMgdWludDhfdCog
YnVmZmVyOwogICAgIHN0YXRpYyBjb25zdGV4cHIgc2l6ZV90IGJ1ZmZlclNpemUgPSBmaXhlZEV4
ZWN1dGFibGVNZW1vcnlQb29sU2l6ZTsKICAgICBzdGF0aWMgc2l6ZV90IG9mZnNldCA9IDA7Ci0g
ICAgc3RhdGljIExvY2sgZHVtcEpJVE1lbW9yeUxvY2s7CisgICAgc3RhdGljIFVuY2hlY2tlZExv
Y2sgZHVtcEpJVE1lbW9yeUxvY2s7CiAgICAgc3RhdGljIGJvb2wgbmVlZHNUb0ZsdXNoID0gZmFs
c2U7CiAgICAgc3RhdGljIGF1dG8gZmx1c2ggPSBbXShjb25zdCBBYnN0cmFjdExvY2tlciYpIHsK
ICAgICAgICAgaWYgKGZkID09IC0xKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0V4ZWN1dGFibGVBbGxvY2F0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
RXhlY3V0YWJsZUFsbG9jYXRvci5oCmluZGV4IDRmZmM0ODBlNDI0MDRkYzY2YjVlMjUxNDU3NzJi
YmNiMDlkNWYzNjguLjAzNzk5ZTQyN2IwOTdkNjRmZDk4Y2I4Zjk1YTY4YTkyNTE2ZjhhNTcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvRXhlY3V0YWJsZUFsbG9jYXRvci5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvRXhlY3V0YWJsZUFsbG9jYXRvci5oCkBA
IC03Nyw3ICs3Nyw3IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBzaXplX3QgY29tbWl0dGVkQnl0
ZUNvdW50KCkgeyByZXR1cm4gMDsgfQogCi0gICAgTG9jayYgZ2V0TG9jaygpIGNvbnN0CisgICAg
VW5jaGVja2VkTG9jayYgZ2V0TG9jaygpIGNvbnN0CiAgICAgewogICAgICAgICByZXR1cm4gbV9s
b2NrOwogICAgIH0KQEAgLTg3LDcgKzg3LDcgQEAgcHJvdGVjdGVkOgogICAgIH5FeGVjdXRhYmxl
QWxsb2NhdG9yQmFzZSgpID0gZGVmYXVsdDsKIAogcHJpdmF0ZToKLSAgICBtdXRhYmxlIExvY2sg
bV9sb2NrOworICAgIG11dGFibGUgVW5jaGVja2VkTG9jayBtX2xvY2s7CiB9OwogCiAjaWYgRU5B
QkxFKEpJVCkKQEAgLTE3Niw3ICsxNzYsNyBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgc2l6ZV90
IGNvbW1pdHRlZEJ5dGVDb3VudCgpOwogCi0gICAgTG9jayYgZ2V0TG9jaygpIGNvbnN0OworICAg
IFVuY2hlY2tlZExvY2smIGdldExvY2soKSBjb25zdDsKIAogI2lmIEVOQUJMRShKVU1QX0lTTEFO
RFMpCiAgICAgSlNfRVhQT1JUX1BSSVZBVEUgdm9pZCogZ2V0SnVtcElzbGFuZFRvKHZvaWQqIGZy
b20sIHZvaWQqIG5ld0Rlc3RpbmF0aW9uKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklUV29ya2xpc3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRX
b3JrbGlzdC5jcHAKaW5kZXggYTcwNTJlNzlmMGE3NDM2N2ZlM2ZkYzVhM2NmNmQ1MzhlNjkzMjAw
ZS4uYTk2ODk3NGJkNmE5ODIzYjkwYWFkYzQ0YTQxNGE1MzdhOTAzY2Y3YSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRXb3JrbGlzdC5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9KSVRXb3JrbGlzdC5jcHAKQEAgLTE2NSw3ICsxNjUsNyBAQCBwcml2
YXRlOgogfTsKIAogSklUV29ya2xpc3Q6OkpJVFdvcmtsaXN0KCkKLSAgICA6IG1fbG9jayhCb3g8
TG9jaz46OmNyZWF0ZSgpKQorICAgIDogbV9sb2NrKEJveDxVbmNoZWNrZWRMb2NrPjo6Y3JlYXRl
KCkpCiAgICAgLCBtX2NvbmRpdGlvbihBdXRvbWF0aWNUaHJlYWRDb25kaXRpb246OmNyZWF0ZSgp
KQogewogICAgIExvY2tlciBsb2NrZXIgeyAqbV9sb2NrIH07CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0pJVFdvcmtsaXN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0pJVFdvcmtsaXN0LmgKaW5kZXggYjlmNzdjYTFiM2RkZWZhNjE0OGIxMzY5NDJkNTdhMDlk
NjVlYTdhMy4uYTcyYTgzODcwYTAwODJmY2QzNDQ5NTI5MGVhNTBlYTE0MGQ4OWYyZiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRXb3JrbGlzdC5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUV29ya2xpc3QuaApAQCAtNzEsNyArNzEsNyBAQCBwcml2
YXRlOgogICAgIFBsYW5zIG1fcGxhbnM7CiAgICAgSGFzaFNldDxDb2RlQmxvY2sqPiBtX3BsYW5u
ZWQ7CiAgICAgCi0gICAgQm94PExvY2s+IG1fbG9jazsKKyAgICBCb3g8VW5jaGVja2VkTG9jaz4g
bV9sb2NrOwogICAgIFJlZjxBdXRvbWF0aWNUaHJlYWRDb25kaXRpb24+IG1fY29uZGl0aW9uOyAv
LyBXZSB1c2UgT25lIFRydWUgQ29uZGl0aW9uIGZvciBldmVyeXRoaW5nIGJlY2F1c2UgdGhhdCdz
IGVhc2llci4KICAgICBSZWZQdHI8QXV0b21hdGljVGhyZWFkPiBtX3RocmVhZDsKICAgICAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2pzYy5jcHAKaW5kZXggZDNhMjgxMTI3MDgwNTgxZjBlZDE1YjRmMzg1ODg1NTBjZjNl
ZTZlZS4uYWQxNTVlNmU4MjdjYzBkM2NhZjdjNTcyNjVmMGRiYzMyNTFiNTYxZSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2pzYy5jcHAKQEAgLTI1Nyw4ICsyNTcsOCBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIGZy
aWVuZCBjbGFzcyBXb3JrZXI7CiAgICAgCi0gICAgTG9jayBtX2xvY2s7Ci0gICAgQ29uZGl0aW9u
IG1fY29uZGl0aW9uOworICAgIFVuY2hlY2tlZExvY2sgbV9sb2NrOworICAgIFVuY2hlY2tlZENv
bmRpdGlvbiBtX2NvbmRpdGlvbjsKICAgICBTZW50aW5lbExpbmtlZExpc3Q8V29ya2VyLCBCYXNp
Y1Jhd1NlbnRpbmVsTm9kZTxXb3JrZXI+PiBtX3dvcmtlcnM7CiAgICAgRGVxdWU8U3RyaW5nPiBt
X3JlcG9ydHM7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVy
L1Byb2ZpbGVyRGF0YWJhc2UuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9m
aWxlckRhdGFiYXNlLmgKaW5kZXggYWU3ODVlNGUzZGNiN2MzZTA4MDI4N2JiNDU5OTdhMTMyYzI4
NWRkMy4uMmE4NzhjOTQ2YjY1MzQwZTc5MTM5YmUyMjM3NWM1MDYxNmE5YjJlMiAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVyRGF0YWJhc2UuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZXJEYXRhYmFzZS5oCkBAIC04
OCw3ICs4OCw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX3Nob3VsZFNhdmVBdEV4aXQ7CiAgICAg
Q1N0cmluZyBtX2F0RXhpdFNhdmVGaWxlbmFtZTsKICAgICBEYXRhYmFzZSogbV9uZXh0UmVnaXN0
ZXJlZERhdGFiYXNlOwotICAgIExvY2sgbV9sb2NrOworICAgIFVuY2hlY2tlZExvY2sgbV9sb2Nr
OwogfTsKIAogfSB9IC8vIG5hbWVzcGFjZSBKU0M6OlByb2ZpbGVyCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db25jdXJyZW50SlNMb2NrLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9Db25jdXJyZW50SlNMb2NrLmgKaW5kZXggYWEyNzNiYWRiZWZh
NzM3YTBlYWE1MzRmYmViYTlmNTAxZmRiODYyNy4uODYzMTE3ZDg5MTVjNDNlNGE2NzcyMDgyYjli
YzU1YjM5YTJkMWNhMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
Q29uY3VycmVudEpTTG9jay5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Nv
bmN1cnJlbnRKU0xvY2suaApAQCAtMzIsOCArMzIsOCBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAot
dXNpbmcgQ29uY3VycmVudEpTTG9jayA9IExvY2s7Ci11c2luZyBDb25jdXJyZW50SlNMb2NrZXJJ
bXBsID0gTG9ja0hvbGRlcjsKK3VzaW5nIENvbmN1cnJlbnRKU0xvY2sgPSBVbmNoZWNrZWRMb2Nr
OwordXNpbmcgQ29uY3VycmVudEpTTG9ja2VySW1wbCA9IFVuY2hlY2tlZExvY2tIb2xkZXI7CiAK
IHN0YXRpY19hc3NlcnQoc2l6ZW9mKENvbmN1cnJlbnRKU0xvY2spID09IDEsICJSZWdhcmRsZXNz
IG9mIHN0YXR1cyBvZiBjb25jdXJyZW50IEpTIGZsYWcsIHNpemUgb2YgQ29udXJyZW50SlNMb2Nr
IGlzIGFsd2F5cyBvbmUgYnl0ZS4iKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvRGVmZXJyZWRXb3JrVGltZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0RlZmVycmVkV29ya1RpbWVyLmgKaW5kZXggNmM5OGNhYWY1ODFiMWNmYzAxYWExOTEx
NzE0YjNkYjI3YmRmMDIxNy4uZWYwZWFjNzMwYjQyMmY3MGMyMGE2OGI1YzllOTY0ODY4NzZhMDEz
ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGVmZXJyZWRXb3Jr
VGltZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EZWZlcnJlZFdvcmtU
aW1lci5oCkBAIC03Miw3ICs3Miw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgRGVmZXJyZWRX
b3JrVGltZXIoVk0mKTsKIAotICAgIExvY2sgbV90YXNrTG9jazsKKyAgICBVbmNoZWNrZWRMb2Nr
IG1fdGFza0xvY2s7CiAgICAgYm9vbCBtX3J1blRhc2tzIHsgdHJ1ZSB9OwogICAgIGJvb2wgbV9z
aG91bGRTdG9wUnVuTG9vcFdoZW5BbGxUaWNrZXRzRmluaXNoIHsgZmFsc2UgfTsKICAgICBib29s
IG1fY3VycmVudGx5UnVubmluZ1Rhc2sgeyBmYWxzZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNMb2NrLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0xvY2suaAppbmRleCAyZTAyYmEzZDY0MDVlZTcyZGQ0YWRlMGJhNjdjYjk1OGYxYTY0
NjBiLi5hOTkxZGY1MGIxYzM3MjI2ZTVmMTI5OTBlNDBiNjdiMTBiMTk5YzI5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0xvY2suaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0xvY2suaApAQCAtMTM4LDcgKzEzOCw3IEBAIHByaXZhdGU6
CiAgICAgdW5zaWduZWQgZHJvcEFsbExvY2tzKERyb3BBbGxMb2NrcyopOwogICAgIHZvaWQgZ3Jh
YkFsbExvY2tzKERyb3BBbGxMb2NrcyosIHVuc2lnbmVkIGxvY2tDb3VudCk7CiAKLSAgICBMb2Nr
IG1fbG9jazsKKyAgICBVbmNoZWNrZWRMb2NrIG1fbG9jazsKICAgICBib29sIG1faXNXZWJUaHJl
YWRBd2FyZSB7IGZhbHNlIH07CiAgICAgLy8gV2UgY2Fubm90IG1ha2UgbV9vd25lclRocmVhZCBh
biBvcHRpb25hbCAoaW5zdGVhZCBvZiBwYWlyaW5nIGl0IHdpdGggYW4gZXhwbGljaXQKICAgICAv
LyBtX2hhc093bmVyVGhyZWFkKSBiZWNhdXNlIGN1cnJlbnRUaHJlYWRJc0hvbGRpbmdMb2NrKCkg
bWF5IGJlIGNhbGxlZCBmcm9tIGEKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1NhbXBsaW5nUHJvZmlsZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvU2FtcGxpbmdQcm9maWxlci5jcHAKaW5kZXggZDcxZjNlYzE5ZmYzNjc0Njc3MDdmZTUyYjg4
MDI0YzU2MjdhMTRhZC4uZTUzMTEyZDE4OGY3Y2NiOTBkMGFlNzg0MTQyNTAxZDI0NWM1ZTgzNSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2FtcGxpbmdQcm9maWxl
ci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2FtcGxpbmdQcm9maWxl
ci5jcHAKQEAgLTc1LDcgKzc1LDcgQEAgQUxXQVlTX0lOTElORSBzdGF0aWMgdm9pZCByZXBvcnRT
dGF0cygpCiAKIGNsYXNzIEZyYW1lV2Fsa2VyIHsKIHB1YmxpYzoKLSAgICBGcmFtZVdhbGtlcihW
TSYgdm0sIENhbGxGcmFtZSogY2FsbEZyYW1lLCBjb25zdCBBYnN0cmFjdExvY2tlciYgY29kZUJs
b2NrU2V0TG9ja2VyLCBjb25zdCBBYnN0cmFjdExvY2tlciYgbWFjaGluZVRocmVhZHNMb2NrZXIs
IGNvbnN0IE9wdGlvbmFsPExvY2tIb2xkZXI+JiB3YXNtQ2FsbGVlTG9ja2VyKQorICAgIEZyYW1l
V2Fsa2VyKFZNJiB2bSwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIGNvbnN0IEFic3RyYWN0TG9ja2Vy
JiBjb2RlQmxvY2tTZXRMb2NrZXIsIGNvbnN0IEFic3RyYWN0TG9ja2VyJiBtYWNoaW5lVGhyZWFk
c0xvY2tlciwgY29uc3QgT3B0aW9uYWw8VW5jaGVja2VkTG9ja0hvbGRlcj4mIHdhc21DYWxsZWVM
b2NrZXIpCiAgICAgICAgIDogbV92bSh2bSkKICAgICAgICAgLCBtX2NhbGxGcmFtZShjYWxsRnJh
bWUpCiAgICAgICAgICwgbV9lbnRyeUZyYW1lKHZtLnRvcEVudHJ5RnJhbWUpCkBAIC0yMDEsNyAr
MjAxLDcgQEAgcHJvdGVjdGVkOgogICAgIEVudHJ5RnJhbWUqIG1fZW50cnlGcmFtZTsKICAgICBj
b25zdCBBYnN0cmFjdExvY2tlciYgbV9jb2RlQmxvY2tTZXRMb2NrZXI7CiAgICAgY29uc3QgQWJz
dHJhY3RMb2NrZXImIG1fbWFjaGluZVRocmVhZHNMb2NrZXI7Ci0gICAgY29uc3QgT3B0aW9uYWw8
TG9ja0hvbGRlcj4mIG1fd2FzbUNhbGxlZUxvY2tlcjsKKyAgICBjb25zdCBPcHRpb25hbDxVbmNo
ZWNrZWRMb2NrSG9sZGVyPiYgbV93YXNtQ2FsbGVlTG9ja2VyOwogICAgIGJvb2wgbV9iYWlsaW5n
T3V0IHsgZmFsc2UgfTsKICAgICBzaXplX3QgbV9kZXB0aCB7IDAgfTsKIH07CkBAIC0yMTAsNyAr
MjEwLDcgQEAgY2xhc3MgQ0ZyYW1lV2Fsa2VyIDogcHVibGljIEZyYW1lV2Fsa2VyIHsKIHB1Ymxp
YzoKICAgICB0eXBlZGVmIEZyYW1lV2Fsa2VyIEJhc2U7CiAKLSAgICBDRnJhbWVXYWxrZXIoVk0m
IHZtLCB2b2lkKiBtYWNoaW5lRnJhbWUsIENhbGxGcmFtZSogY2FsbEZyYW1lLCBjb25zdCBBYnN0
cmFjdExvY2tlciYgY29kZUJsb2NrU2V0TG9ja2VyLCBjb25zdCBBYnN0cmFjdExvY2tlciYgbWFj
aGluZVRocmVhZHNMb2NrZXIsIGNvbnN0IE9wdGlvbmFsPExvY2tIb2xkZXI+JiB3YXNtQ2FsbGVl
TG9ja2VyKQorICAgIENGcmFtZVdhbGtlcihWTSYgdm0sIHZvaWQqIG1hY2hpbmVGcmFtZSwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUsIGNvbnN0IEFic3RyYWN0TG9ja2VyJiBjb2RlQmxvY2tTZXRMb2Nr
ZXIsIGNvbnN0IEFic3RyYWN0TG9ja2VyJiBtYWNoaW5lVGhyZWFkc0xvY2tlciwgY29uc3QgT3B0
aW9uYWw8VW5jaGVja2VkTG9ja0hvbGRlcj4mIHdhc21DYWxsZWVMb2NrZXIpCiAgICAgICAgIDog
QmFzZSh2bSwgY2FsbEZyYW1lLCBjb2RlQmxvY2tTZXRMb2NrZXIsIG1hY2hpbmVUaHJlYWRzTG9j
a2VyLCB3YXNtQ2FsbGVlTG9ja2VyKQogICAgICAgICAsIG1fbWFjaGluZUZyYW1lKG1hY2hpbmVG
cmFtZSkKICAgICB7CkBAIC0zNTMsNyArMzUzLDcgQEAgdm9pZCBTYW1wbGluZ1Byb2ZpbGVyOjp0
YWtlU2FtcGxlKGNvbnN0IEFic3RyYWN0TG9ja2VyJiwgU2Vjb25kcyYgc3RhY2tUcmFjZVByb2MK
ICAgICAgICAgTG9ja2VyIG1hY2hpbmVUaHJlYWRzTG9ja2VyIHsgbV92bS5oZWFwLm1hY2hpbmVU
aHJlYWRzKCkuZ2V0TG9jaygpIH07CiAgICAgICAgIExvY2tlciBjb2RlQmxvY2tTZXRMb2NrZXIg
eyBtX3ZtLmhlYXAuY29kZUJsb2NrU2V0KCkuZ2V0TG9jaygpIH07CiAgICAgICAgIExvY2tlciBl
eGVjdXRhYmxlQWxsb2NhdG9yTG9ja2VyIHsgRXhlY3V0YWJsZUFsbG9jYXRvcjo6c2luZ2xldG9u
KCkuZ2V0TG9jaygpIH07Ci0gICAgICAgIE9wdGlvbmFsPExvY2tIb2xkZXI+IHdhc21DYWxsZWVz
TG9ja2VyOworICAgICAgICBPcHRpb25hbDxVbmNoZWNrZWRMb2NrSG9sZGVyPiB3YXNtQ2FsbGVl
c0xvY2tlcjsKICNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCiAgICAgICAgIGlmIChXYXNtOjppc1N1
cHBvcnRlZCgpKQogICAgICAgICAgICAgd2FzbUNhbGxlZXNMb2NrZXIgPSBMb2NrZXIgeyBXYXNt
OjpDYWxsZWVSZWdpc3RyeTo6c2luZ2xldG9uKCkuZ2V0TG9jaygpIH07CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TYW1wbGluZ1Byb2ZpbGVyLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9TYW1wbGluZ1Byb2ZpbGVyLmgKaW5kZXggNjUxNzA3YTk0
NmYxNjFkZWE2Zjk4OGFiNWRkZTQ4YjMyYzc1YzdlZC4uOWYwNTcyNmE0ZTgwNGZjYjM1MzczNmEy
ZWQxZDY0MGI3NjRjOTRkYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvU2FtcGxpbmdQcm9maWxlci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1NhbXBsaW5nUHJvZmlsZXIuaApAQCAtMTcyLDcgKzE3Miw3IEBAIHB1YmxpYzoKICAgICB2b2lk
IG5vdGljZVZNRW50cnkoKTsKICAgICB2b2lkIHNodXRkb3duKCk7CiAgICAgdGVtcGxhdGU8dHlw
ZW5hbWUgVmlzaXRvcj4gdm9pZCB2aXNpdChWaXNpdG9yJik7Ci0gICAgTG9jayYgZ2V0TG9jaygp
IHsgcmV0dXJuIG1fbG9jazsgfQorICAgIFVuY2hlY2tlZExvY2smIGdldExvY2soKSB7IHJldHVy
biBtX2xvY2s7IH0KICAgICB2b2lkIHNldFRpbWluZ0ludGVydmFsKFNlY29uZHMgaW50ZXJ2YWwp
IHsgbV90aW1pbmdJbnRlcnZhbCA9IGludGVydmFsOyB9CiAgICAgSlNfRVhQT1JUX1BSSVZBVEUg
dm9pZCBzdGFydCgpOwogICAgIHZvaWQgc3RhcnQoY29uc3QgQWJzdHJhY3RMb2NrZXImKTsKQEAg
LTIwMCw3ICsyMDAsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgdGltZXJMb29wKCk7CiAgICAgdm9p
ZCB0YWtlU2FtcGxlKGNvbnN0IEFic3RyYWN0TG9ja2VyJiwgU2Vjb25kcyYgc3RhY2tUcmFjZVBy
b2Nlc3NpbmdUaW1lKTsKIAotICAgIExvY2sgbV9sb2NrOworICAgIFVuY2hlY2tlZExvY2sgbV9s
b2NrOwogICAgIGJvb2wgbV9pc1BhdXNlZDsKICAgICBib29sIG1faXNTaHV0RG93bjsKICAgICBi
b29sIG1fbmVlZHNSZXBvcnRBdEV4aXQgeyBmYWxzZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1ZNLmgKaW5kZXggZjhlOGQzZjU0N2U0ZmRlNjEzNGMzOGE4NjJkMmYyNWQ2MmEzMzFlMi4uYTFh
YjIyMzIxNjk4ZTU3MDAyOTk0NzM1MTRiZmEwNDFmODhkY2M1NCAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9WTS5oCkBAIC0xMDA0LDcgKzEwMDQsNyBAQCBwdWJsaWM6CiAjaWYgRU5BQkxFKFlB
UlJfSklUX0FMTF9QQVJFTlNfRVhQUkVTU0lPTlMpCiAgICAgc3RhdGljIGNvbnN0ZXhwciBzaXpl
X3QgcGF0dGVybkNvbnRleHRCdWZmZXJTaXplID0gODE5MjsgLy8gU3BhY2UgYWxsb2NhdGVkIHRv
IHNhdmUgbmVzdGVkIHBhcmVudGhlc2lzIGNvbnRleHQKICAgICBVbmlxdWVBcnJheTxjaGFyPiBt
X3JlZ0V4cFBhdHRlcm5Db250ZXhCdWZmZXI7Ci0gICAgTG9jayBtX3JlZ0V4cFBhdHRlcm5Db250
ZXh0TG9jazsKKyAgICBVbmNoZWNrZWRMb2NrIG1fcmVnRXhwUGF0dGVybkNvbnRleHRMb2NrOwog
ICAgIGNoYXIqIGFjcXVpcmVSZWdFeHBQYXR0ZXJuQ29udGV4QnVmZmVyKCk7CiAgICAgdm9pZCBy
ZWxlYXNlUmVnRXhwUGF0dGVybkNvbnRleEJ1ZmZlcigpOwogI2Vsc2UKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNVHJhcHMuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvVk1UcmFwcy5jcHAKaW5kZXggOWI0NDA2YjExNTYzZGFmNTczOWViMzM4
YWY4MjU5YTVlMThhNDE1OS4uNTdkYjMxOWNlY2ZiNzM3MTk3ZTI2ZDljZGQyZGI3YTU4YmIwOGM2
NyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk1UcmFwcy5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk1UcmFwcy5jcHAKQEAgLTE2Myw3
ICsxNjMsNyBAQCB2b2lkIFZNVHJhcHM6OmludmFsaWRhdGVDb2RlQmxvY2tzT25TdGFjayhDYWxs
RnJhbWUqIHRvcENhbGxGcmFtZSkKICAgICBpbnZhbGlkYXRlQ29kZUJsb2Nrc09uU3RhY2soY29k
ZUJsb2NrU2V0TG9ja2VyLCB0b3BDYWxsRnJhbWUpOwogfQogICAgIAotdm9pZCBWTVRyYXBzOjpp
bnZhbGlkYXRlQ29kZUJsb2Nrc09uU3RhY2soTG9ja2VyPExvY2s+JiwgQ2FsbEZyYW1lKiB0b3BD
YWxsRnJhbWUpCit2b2lkIFZNVHJhcHM6OmludmFsaWRhdGVDb2RlQmxvY2tzT25TdGFjayhMb2Nr
ZXI8VW5jaGVja2VkTG9jaz4mLCBDYWxsRnJhbWUqIHRvcENhbGxGcmFtZSkKIHsKICAgICBpZiAo
IW1fbmVlZFRvSW52YWxpZGF0ZWRDb2RlQmxvY2tzKQogICAgICAgICByZXR1cm47CkBAIC00Mzcs
NyArNDM3LDcgQEAgdm9pZCBWTVRyYXBzOjp1bmRvRGVmZXJUZXJtaW5hdGlvblNsb3coRGVmZXJB
Y3Rpb24gZGVmZXJBY3Rpb24pCiB9CiAKIFZNVHJhcHM6OlZNVHJhcHMoKQotICAgIDogbV9sb2Nr
KEJveDxMb2NrPjo6Y3JlYXRlKCkpCisgICAgOiBtX2xvY2soQm94PFVuY2hlY2tlZExvY2s+Ojpj
cmVhdGUoKSkKICAgICAsIG1fY29uZGl0aW9uKEF1dG9tYXRpY1RocmVhZENvbmRpdGlvbjo6Y3Jl
YXRlKCkpCiB7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9W
TVRyYXBzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTVRyYXBzLmgKaW5kZXgg
MGFmNTliYzk1YzE2ZjkyZDM0ZTU0YTYyMmIyNDJiODdjNTg0ZmQ2NS4uNWQxNWM5MmY3MDQxNzUx
ZDgwNGU0YzU3MmE1NTMwMTA3YmZlNDJkYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvVk1UcmFwcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1ZNVHJhcHMuaApAQCAtMjM2LDcgKzIzNiw3IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIGludmFs
aWRhdGVDb2RlQmxvY2tzT25TdGFjaygpOwogICAgIHZvaWQgaW52YWxpZGF0ZUNvZGVCbG9ja3NP
blN0YWNrKENhbGxGcmFtZSogdG9wQ2FsbEZyYW1lKTsKLSAgICB2b2lkIGludmFsaWRhdGVDb2Rl
QmxvY2tzT25TdGFjayhMb2NrZXI8TG9jaz4mIGNvZGVCbG9ja1NldExvY2tlciwgQ2FsbEZyYW1l
KiB0b3BDYWxsRnJhbWUpOworICAgIHZvaWQgaW52YWxpZGF0ZUNvZGVCbG9ja3NPblN0YWNrKExv
Y2tlcjxVbmNoZWNrZWRMb2NrPiYgY29kZUJsb2NrU2V0TG9ja2VyLCBDYWxsRnJhbWUqIHRvcENh
bGxGcmFtZSk7CiAKICAgICB2b2lkIGFkZFNpZ25hbFNlbmRlcihTaWduYWxTZW5kZXIqKTsKICAg
ICB2b2lkIHJlbW92ZVNpZ25hbFNlbmRlcihTaWduYWxTZW5kZXIqKTsKQEAgLTI0Nyw3ICsyNDcs
NyBAQCBwcml2YXRlOgogCiAgICAgc3RhdGljIGNvbnN0ZXhwciBCaXRGaWVsZCBOZWVkRXhjZXB0
aW9uSGFuZGxpbmdNYXNrID0gfigxIDw8IE5lZWRFeGNlcHRpb25IYW5kbGluZyk7CiAKLSAgICBC
b3g8TG9jaz4gbV9sb2NrOworICAgIEJveDxVbmNoZWNrZWRMb2NrPiBtX2xvY2s7CiAgICAgUmVm
PEF1dG9tYXRpY1RocmVhZENvbmRpdGlvbj4gbV9jb25kaXRpb247CiAgICAgQXRvbWljPEJpdEZp
ZWxkPiBtX3RyYXBCaXRzIHsgMCB9OwogICAgIGJvb2wgbV9uZWVkVG9JbnZhbGlkYXRlZENvZGVC
bG9ja3MgeyBmYWxzZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xz
L0Z1bmN0aW9uT3ZlcnJpZGVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdG9vbHMvRnVuY3Rp
b25PdmVycmlkZXMuaAppbmRleCA4ODI5NjcwMDczZGRmOWQ2ZDQ5Y2VlZjIwOGI2MzhjNzEzZjRl
ZDY5Li43NmE4MTNkNDhiM2Q0NTM1ODhkNTQzYWY4MzYwMzMxYzk4MmJmNDQwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdG9vbHMvRnVuY3Rpb25PdmVycmlkZXMuaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvdG9vbHMvRnVuY3Rpb25PdmVycmlkZXMuaApAQCAtNjEsNyAr
NjEsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgY2xlYXIoY29uc3QgQWJzdHJhY3RMb2NrZXImKSB7
IG1fZW50cmllcy5jbGVhcigpOyB9CiAKICAgICBIYXNoTWFwPFN0cmluZywgU3RyaW5nPiBtX2Vu
dHJpZXM7Ci0gICAgTG9jayBtX2xvY2s7CisgICAgVW5jaGVja2VkTG9jayBtX2xvY2s7CiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90
b29scy9WTUluc3BlY3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdG9vbHMvVk1JbnNw
ZWN0b3IuY3BwCmluZGV4IGU0OWRhZTFlMWJjOWRkNzBjOWViMjAyZDg3NzA5ZmNjNmNhNjcwOTAu
LjFmZjcyZDQ2ZDk2NDM5NDRhNzk0YmE0M2Y0YjYwYjhiMTE0NDhhODcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS90b29scy9WTUluc3BlY3Rvci5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3Rvb2xzL1ZNSW5zcGVjdG9yLmNwcApAQCAtODksNyArODksNyBAQCBhdXRv
IFZNSW5zcGVjdG9yOjpsb2NrKFNlY29uZHMgdGltZW91dCkgLT4gRXhwZWN0ZWQ8TG9ja2VyLCBF
cnJvcj4KIH0KIAogI2lmIEVOQUJMRShKSVQpCi1zdGF0aWMgYm9vbCBlbnN1cmVJc1NhZmVUb0xv
Y2soTG9jayYgbG9jaykKK3N0YXRpYyBib29sIGVuc3VyZUlzU2FmZVRvTG9jayhVbmNoZWNrZWRM
b2NrJiBsb2NrKQogewogICAgIHVuc2lnbmVkIG1heFJldHJpZXMgPSAyOwogICAgIHVuc2lnbmVk
IHRyeUNvdW50ID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90b29scy9W
TUluc3BlY3Rvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xzL1ZNSW5zcGVjdG9yLmgK
aW5kZXggODQ1NjMxYzY0ODE2OWQ3YTU1MWNlYjc4ZDRlYWUwM2I1NTY1ODljYS4uZGY0OTBkZTI4
NjJhYTE3OTlmZGY0Mzc3N2VkZTFkZWZhZGEwMTlkNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3Rvb2xzL1ZNSW5zcGVjdG9yLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3Rvb2xzL1ZNSW5zcGVjdG9yLmgKQEAgLTQzLDE0ICs0MywxNCBAQCBwdWJsaWM6CiAgICAgICAg
IFRpbWVkT3V0CiAgICAgfTsKIAotICAgIHR5cGVkZWYgV1RGOjpMb2NrZXI8TG9jaz4gTG9ja2Vy
OworICAgIHR5cGVkZWYgV1RGOjpMb2NrZXI8VW5jaGVja2VkTG9jaz4gTG9ja2VyOwogCiAgICAg
c3RhdGljIFZNSW5zcGVjdG9yJiBpbnN0YW5jZSgpOwogCiAgICAgdm9pZCBhZGQoVk0qKTsKICAg
ICB2b2lkIHJlbW92ZShWTSopOwogCi0gICAgTG9jayYgZ2V0TG9jaygpIHsgcmV0dXJuIG1fbG9j
azsgfQorICAgIFVuY2hlY2tlZExvY2smIGdldExvY2soKSB7IHJldHVybiBtX2xvY2s7IH0KIAog
ICAgIGVudW0gY2xhc3MgRnVuY3RvclN0YXR1cyB7CiAgICAgICAgIENvbnRpbnVlLApAQCAtMTAz
LDcgKzEwMyw3IEBAIHByaXZhdGU6CiAgICAgICAgIH0KICAgICB9CiAKLSAgICBMb2NrIG1fbG9j
azsKKyAgICBVbmNoZWNrZWRMb2NrIG1fbG9jazsKICAgICBEb3VibHlMaW5rZWRMaXN0PFZNPiBt
X3ZtTGlzdDsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dh
c21DYWxsZWVSZWdpc3RyeS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUNhbGxl
ZVJlZ2lzdHJ5LmgKaW5kZXggMTIxMzQxMWI3ZmMxMDY0YTk4MmM3NThiM2UwMzI4YTg0MTQ3OGU3
My4uZGM5MjJjZjNlYTg3MTcwMmNhNTIyYzIzMmY1NjJmMTc2NjExMzhkOSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUNhbGxlZVJlZ2lzdHJ5LmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUNhbGxlZVJlZ2lzdHJ5LmgKQEAgLTQxLDcgKzQx
LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyB2b2lkIGluaXRpYWxpemUoKTsKICAgICBzdGF0aWMg
Q2FsbGVlUmVnaXN0cnkmIHNpbmdsZXRvbigpOwogCi0gICAgTG9jayYgZ2V0TG9jaygpIHsgcmV0
dXJuIG1fbG9jazsgfQorICAgIFVuY2hlY2tlZExvY2smIGdldExvY2soKSB7IHJldHVybiBtX2xv
Y2s7IH0KIAogICAgIHZvaWQgcmVnaXN0ZXJDYWxsZWUoQ2FsbGVlKiBjYWxsZWUpCiAgICAgewpA
QCAtNzAsNyArNzAsNyBAQCBwdWJsaWM6CiAgICAgQ2FsbGVlUmVnaXN0cnkoKSA9IGRlZmF1bHQ7
CiAKIHByaXZhdGU6Ci0gICAgTG9jayBtX2xvY2s7CisgICAgVW5jaGVja2VkTG9jayBtX2xvY2s7
CiAgICAgSGFzaFNldDxDYWxsZWUqPiBtX2NhbGxlZVNldDsKIH07CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21QbGFuLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9XYXNtUGxhbi5oCmluZGV4IGFiOTRmOWU4OTAzODk2ZmQzMTE2YzYyNjkyYWQ3NmRk
Yzk0ZjVkNjEuLmM4MWYzYTZjOWY1ODZiOTFjMTdiNTk2NDc1MDE4ZWNjYTIzZmFkMWUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21QbGFuLmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVBsYW4uaApAQCAtOTQsOCArOTQsOCBAQCBwcm90ZWN0
ZWQ6CiAKICAgICBTdHJpbmcgbV9lcnJvck1lc3NhZ2U7CiAgICAgTWVtb3J5TW9kZSBtX21vZGUg
eyBNZW1vcnlNb2RlOjpCb3VuZHNDaGVja2luZyB9OwotICAgIExvY2sgbV9sb2NrOwotICAgIENv
bmRpdGlvbiBtX2NvbXBsZXRlZDsKKyAgICBVbmNoZWNrZWRMb2NrIG1fbG9jazsKKyAgICBVbmNo
ZWNrZWRDb25kaXRpb24gbV9jb21wbGV0ZWQ7CiB9OwogCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL1dhc21TdHJlYW1pbmdDb21waWxlci5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3dhc20vV2FzbVN0cmVhbWluZ0NvbXBpbGVyLmgKaW5kZXggODZhMTBkYzQ0NWI5
NGZmOTIzYjY2Y2JkNjFhNzExNjBlNzM2NmNlNS4uOTU3Zjc1ZmZmZmYwYzBmM2JlYTA0NDBkZWZh
OWRjODhlMGEyMzk0YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2Fz
bVN0cmVhbWluZ0NvbXBpbGVyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2Fz
bVN0cmVhbWluZ0NvbXBpbGVyLmgKQEAgLTcwLDcgKzcwLDcgQEAgcHJpdmF0ZToKICAgICBib29s
IG1fZWFnZXJGYWlsZWQgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9maW5hbGl6ZWQgeyBmYWxzZSB9
OwogICAgIGJvb2wgbV90aHJlYWRlZENvbXBpbGF0aW9uU3RhcnRlZCB7IGZhbHNlIH07Ci0gICAg
TG9jayBtX2xvY2s7CisgICAgVW5jaGVja2VkTG9jayBtX2xvY2s7CiAgICAgdW5zaWduZWQgbV9y
ZW1haW5pbmdDb21waWxhdGlvblJlcXVlc3RzIHsgMCB9OwogICAgIEpTUHJvbWlzZSogbV9wcm9t
aXNlOyAvLyBSYXcgcG9pbnRlciwgYnV0IGhlbGQgYnkgRGVmZXJyZWRXb3JrVGltZXIuCiAgICAg
UmVmPFdhc206Ok1vZHVsZUluZm9ybWF0aW9uPiBtX2luZm87CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtVGh1bmtzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d2FzbS9XYXNtVGh1bmtzLmgKaW5kZXggYzIzNWNmZTYyOTVlNjY5YWU1YTgwZWU4ZjI1MmVhNmNh
MjQzMWI4My4uZGU0Y2EzY2NmMGFiZTU0ZGQxMGRlMTgyMjZmNzgxN2MwNDc4MWYzYyAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVRodW5rcy5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21UaHVua3MuaApAQCAtNTUsNyArNTUsNyBAQCBwcml2
YXRlOgogICAgIFRodW5rcygpID0gZGVmYXVsdDsKIAogICAgIEhhc2hNYXA8VGh1bmtHZW5lcmF0
b3IsIE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxKSVRUaHVua1B0clRhZz4+IG1fc3R1YnM7Ci0gICAg
TG9jayBtX2xvY2s7CisgICAgVW5jaGVja2VkTG9jayBtX2xvY2s7CiB9OwogCiB9IH0gLy8gbmFt
ZXNwYWNlIEpTQzo6V2FzbQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20v
V2FzbVdvcmtsaXN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21Xb3JrbGlz
dC5jcHAKaW5kZXggNWJhZDBkOTBhNTYyZTI1ZGRlODE3YjU4MmMwNjA2NjU2YzkwNmViYS4uMzg5
OGVjYWI0YzA4ODdlMjVhMGEzNDgxYjQxMWI4ZjY3YzFlYmMyOSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVdvcmtsaXN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvd2FzbS9XYXNtV29ya2xpc3QuY3BwCkBAIC0xMjgsNyArMTI4LDcgQEAgcHJpdmF0
ZToKICAgICB9CiAKIHB1YmxpYzoKLSAgICBDb25kaXRpb24gc3luY2hyb25pemU7CisgICAgVW5j
aGVja2VkQ29uZGl0aW9uIHN5bmNocm9uaXplOwogICAgIFdvcmtsaXN0JiB3b3JrbGlzdDsKICAg
ICAvLyBXZSBjYW4gb25seSBtb2RpZnkgZWxlbWVudCB3aGVuIGhvbGRpbmcgdGhlIGxvY2suIEEg
c3luY2hyb25vdXMgY29tcGlsZSBtaWdodCBsb29rIGF0IGVhY2ggdGhyZWFkJ3MgdGFza3MgaW4g
b3JkZXIgdG8gYm9vc3QgdGhlIHByaW9yaXR5LgogICAgIFF1ZXVlRWxlbWVudCBlbGVtZW50OwpA
QCAtMjEzLDcgKzIxMyw3IEBAIHZvaWQgV29ya2xpc3Q6OnN0b3BBbGxQbGFuc0ZvckNvbnRleHQo
Q29udGV4dCYgY29udGV4dCkKIH0KIAogV29ya2xpc3Q6OldvcmtsaXN0KCkKLSAgICA6IG1fbG9j
ayhCb3g8TG9jaz46OmNyZWF0ZSgpKQorICAgIDogbV9sb2NrKEJveDxVbmNoZWNrZWRMb2NrPjo6
Y3JlYXRlKCkpCiAgICAgLCBtX3BsYW5FbnF1ZXVlZChBdXRvbWF0aWNUaHJlYWRDb25kaXRpb246
OmNyZWF0ZSgpKQogewogICAgIHVuc2lnbmVkIG51bWJlck9mQ29tcGlsYXRpb25UaHJlYWRzID0g
T3B0aW9uczo6dXNlQ29uY3VycmVudEpJVCgpID8ga2VyblRDU01Bd2FyZU51bWJlck9mUHJvY2Vz
c29yQ29yZXMoKSA6IDE7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9X
YXNtV29ya2xpc3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21Xb3JrbGlzdC5o
CmluZGV4IDU2ZDc5YTBlOTg5YTYwMmYyMTMzZDAzMDkwZmRiY2M2MzdjOTU2MzkuLjQ1YTZmYmI2
Y2Y5YTg1M2MyODFmZGJiYWNkNTZmYmVkZDFmYTU5Y2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS93YXNtL1dhc21Xb3JrbGlzdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93YXNtL1dhc21Xb3JrbGlzdC5oCkBAIC04NCw3ICs4NCw3IEBAIHByaXZhdGU6CiAgICAgICAg
IHJldHVybiBsZWZ0LnByaW9yaXR5ID4gcmlnaHQucHJpb3JpdHk7CiAgICAgfQogCi0gICAgQm94
PExvY2s+IG1fbG9jazsKKyAgICBCb3g8VW5jaGVja2VkTG9jaz4gbV9sb2NrOwogICAgIFJlZjxB
dXRvbWF0aWNUaHJlYWRDb25kaXRpb24+IG1fcGxhbkVucXVldWVkOwogICAgIC8vIFRlY2huaWNh
bGx5LCB0aGlzIGNvdWxkIG92ZXJmbG93IGJ1dCB0aGF0J3MgdW5saWtlbHkuIEV2ZW4gaWYgaXQg
ZGlkLCB3ZSB3aWxsIGp1c3QgY29tcGlsZSB0aGluZ3Mgb2YgdGhlIHNhbWUKICAgICAvLyBQcmlv
cml0eSBpdCB0aGUgd3Jvbmcgb3JkZXIsIHdoaWNoIGlzbid0IHdyb25nLCBqdXN0IHN1Ym9wdGlt
YWwuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9BdXRvbWF0aWNUaHJlYWQuY3BwIGIvU291
cmNlL1dURi93dGYvQXV0b21hdGljVGhyZWFkLmNwcAppbmRleCBmNGVhNzhkMTNlMWNkZGI2MTli
ODIyODY4ZDMzYzcyN2M5ZjJmOThiLi4zYzViZTUxM2MyNjNjYThiNGRhNmI3YzI2YzZmODM3Mzlk
YTMxZTBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9BdXRvbWF0aWNUaHJlYWQuY3BwCisr
KyBiL1NvdXJjZS9XVEYvd3RmL0F1dG9tYXRpY1RocmVhZC5jcHAKQEAgLTc3LDEyICs3NywxMiBA
QCB2b2lkIEF1dG9tYXRpY1RocmVhZENvbmRpdGlvbjo6bm90aWZ5QWxsKGNvbnN0IEFic3RyYWN0
TG9ja2VyJiBsb2NrZXIpCiAgICAgfQogfQogCi12b2lkIEF1dG9tYXRpY1RocmVhZENvbmRpdGlv
bjo6d2FpdChMb2NrJiBsb2NrKQordm9pZCBBdXRvbWF0aWNUaHJlYWRDb25kaXRpb246OndhaXQo
VW5jaGVja2VkTG9jayYgbG9jaykKIHsKICAgICBtX2NvbmRpdGlvbi53YWl0KGxvY2spOwogfQog
Ci1ib29sIEF1dG9tYXRpY1RocmVhZENvbmRpdGlvbjo6d2FpdEZvcihMb2NrJiBsb2NrLCBTZWNv
bmRzIHRpbWUpCitib29sIEF1dG9tYXRpY1RocmVhZENvbmRpdGlvbjo6d2FpdEZvcihVbmNoZWNr
ZWRMb2NrJiBsb2NrLCBTZWNvbmRzIHRpbWUpCiB7CiAgICAgcmV0dXJuIG1fY29uZGl0aW9uLndh
aXRGb3IobG9jaywgdGltZSk7CiB9CkBAIC0xMDQsMTIgKzEwNCwxMiBAQCBib29sIEF1dG9tYXRp
Y1RocmVhZENvbmRpdGlvbjo6Y29udGFpbnMoY29uc3QgQWJzdHJhY3RMb2NrZXImLCBBdXRvbWF0
aWNUaHJlYWQqCiAgICAgcmV0dXJuIG1fdGhyZWFkcy5jb250YWlucyh0aHJlYWQpOwogfQogCi1B
dXRvbWF0aWNUaHJlYWQ6OkF1dG9tYXRpY1RocmVhZChjb25zdCBBYnN0cmFjdExvY2tlciYgbG9j
a2VyLCBCb3g8TG9jaz4gbG9jaywgUmVmPEF1dG9tYXRpY1RocmVhZENvbmRpdGlvbj4mJiBjb25k
aXRpb24sIFNlY29uZHMgdGltZW91dCkKK0F1dG9tYXRpY1RocmVhZDo6QXV0b21hdGljVGhyZWFk
KGNvbnN0IEFic3RyYWN0TG9ja2VyJiBsb2NrZXIsIEJveDxVbmNoZWNrZWRMb2NrPiBsb2NrLCBS
ZWY8QXV0b21hdGljVGhyZWFkQ29uZGl0aW9uPiYmIGNvbmRpdGlvbiwgU2Vjb25kcyB0aW1lb3V0
KQogICAgIDogQXV0b21hdGljVGhyZWFkKGxvY2tlciwgbG9jaywgV1RGTW92ZShjb25kaXRpb24p
LCBUaHJlYWRUeXBlOjpVbmtub3duLCB0aW1lb3V0KQogewogfQogCi1BdXRvbWF0aWNUaHJlYWQ6
OkF1dG9tYXRpY1RocmVhZChjb25zdCBBYnN0cmFjdExvY2tlciYgbG9ja2VyLCBCb3g8TG9jaz4g
bG9jaywgUmVmPEF1dG9tYXRpY1RocmVhZENvbmRpdGlvbj4mJiBjb25kaXRpb24sIFRocmVhZFR5
cGUgdHlwZSwgU2Vjb25kcyB0aW1lb3V0KQorQXV0b21hdGljVGhyZWFkOjpBdXRvbWF0aWNUaHJl
YWQoY29uc3QgQWJzdHJhY3RMb2NrZXImIGxvY2tlciwgQm94PFVuY2hlY2tlZExvY2s+IGxvY2ss
IFJlZjxBdXRvbWF0aWNUaHJlYWRDb25kaXRpb24+JiYgY29uZGl0aW9uLCBUaHJlYWRUeXBlIHR5
cGUsIFNlY29uZHMgdGltZW91dCkKICAgICA6IG1fbG9jayhsb2NrKQogICAgICwgbV9jb25kaXRp
b24oV1RGTW92ZShjb25kaXRpb24pKQogICAgICwgbV90aW1lb3V0KHRpbWVvdXQpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV1RGL3d0Zi9BdXRvbWF0aWNUaHJlYWQuaCBiL1NvdXJjZS9XVEYvd3RmL0F1
dG9tYXRpY1RocmVhZC5oCmluZGV4IDhkN2MyYjUxNjgwYTNlYTY3MjhlNTE3NGZjODE4MDY4ZGVl
OTVjODYuLjA5ZmNhZmVmMjM5NTkxYjJlMTJjZGYwMmZkZjAwNmNjZGQ0MTJhNmIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XVEYvd3RmL0F1dG9tYXRpY1RocmVhZC5oCisrKyBiL1NvdXJjZS9XVEYvd3Rm
L0F1dG9tYXRpY1RocmVhZC5oCkBAIC04MSw4ICs4MSw4IEBAIHB1YmxpYzoKICAgICAvLyBPbmUg
a25vd24tZ29vZCBjYXNlIGZvciBvbmUtdHJ1ZS1jb25kaXRpb24gaXMgd2hlbiB0aGUgY29tbXVu
aWNhdGlvbiBpbnZvbHZlcyBqdXN0IHR3bwogICAgIC8vIHRocmVhZHMuIEluIHN1Y2ggY2FzZXMs
IHRoZSB0aHJlYWQgZG9pbmcgdGhlIG5vdGlmeUFsbCgpIGNhbiB3YWtlIHVwIGF0IG1vc3Qgb25l
IHRocmVhZCAtCiAgICAgLy8gaXRzIHBhcnRuZXIuCi0gICAgV1RGX0VYUE9SVF9QUklWQVRFIHZv
aWQgd2FpdChMb2NrJik7Ci0gICAgV1RGX0VYUE9SVF9QUklWQVRFIGJvb2wgd2FpdEZvcihMb2Nr
JiwgU2Vjb25kcyk7CisgICAgV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgd2FpdChVbmNoZWNrZWRM
b2NrJik7CisgICAgV1RGX0VYUE9SVF9QUklWQVRFIGJvb2wgd2FpdEZvcihVbmNoZWNrZWRMb2Nr
JiwgU2Vjb25kcyk7CiAgICAgCiBwcml2YXRlOgogICAgIGZyaWVuZCBjbGFzcyBBdXRvbWF0aWNU
aHJlYWQ7CkBAIC05Myw3ICs5Myw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCByZW1vdmUoY29uc3Qg
QWJzdHJhY3RMb2NrZXImLCBBdXRvbWF0aWNUaHJlYWQqKTsKICAgICBib29sIGNvbnRhaW5zKGNv
bnN0IEFic3RyYWN0TG9ja2VyJiwgQXV0b21hdGljVGhyZWFkKik7CiAgICAgCi0gICAgQ29uZGl0
aW9uIG1fY29uZGl0aW9uOworICAgIFVuY2hlY2tlZENvbmRpdGlvbiBtX2NvbmRpdGlvbjsKICAg
ICBWZWN0b3I8QXV0b21hdGljVGhyZWFkKj4gbV90aHJlYWRzOwogfTsKIApAQCAtMTMxLDkgKzEz
MSw5IEBAIHB1YmxpYzoKIHByb3RlY3RlZDoKICAgICAvLyBUaGlzIGxvZ2ljYWxseSBjcmVhdGVz
IHRoZSB0aHJlYWQsIGJ1dCBpbiByZWFsaXR5IHRoZSB0aHJlYWQgd29uJ3QgYmUgY3JlYXRlZCB1
bnRpbCBzb21lb25lCiAgICAgLy8gY2FsbHMgQXV0b21hdGljVGhyZWFkQ29uZGl0aW9uOjpub3Rp
ZnlPbmUoKSBvciBub3RpZnlBbGwoKS4KLSAgICBBdXRvbWF0aWNUaHJlYWQoY29uc3QgQWJzdHJh
Y3RMb2NrZXImLCBCb3g8TG9jaz4sIFJlZjxBdXRvbWF0aWNUaHJlYWRDb25kaXRpb24+JiYsIFNl
Y29uZHMgdGltZW91dCA9IDEwX3MpOworICAgIEF1dG9tYXRpY1RocmVhZChjb25zdCBBYnN0cmFj
dExvY2tlciYsIEJveDxVbmNoZWNrZWRMb2NrPiwgUmVmPEF1dG9tYXRpY1RocmVhZENvbmRpdGlv
bj4mJiwgU2Vjb25kcyB0aW1lb3V0ID0gMTBfcyk7CiAKLSAgICBBdXRvbWF0aWNUaHJlYWQoY29u
c3QgQWJzdHJhY3RMb2NrZXImLCBCb3g8TG9jaz4sIFJlZjxBdXRvbWF0aWNUaHJlYWRDb25kaXRp
b24+JiYsIFRocmVhZFR5cGUsIFNlY29uZHMgdGltZW91dCA9IDEwX3MpOworICAgIEF1dG9tYXRp
Y1RocmVhZChjb25zdCBBYnN0cmFjdExvY2tlciYsIEJveDxVbmNoZWNrZWRMb2NrPiwgUmVmPEF1
dG9tYXRpY1RocmVhZENvbmRpdGlvbj4mJiwgVGhyZWFkVHlwZSwgU2Vjb25kcyB0aW1lb3V0ID0g
MTBfcyk7CiAgICAgCiAgICAgLy8gVG8gdW5kZXJzdGFuZCBQb2xsUmVzdWx0IGFuZCBXb3JrUmVz
dWx0LCBpbWFnaW5lIHRoYXQgcG9sbCgpIGFuZCB3b3JrKCkgYXJlIGJlaW5nIGNhbGxlZCBsaWtl
CiAgICAgLy8gc286CkBAIC0xODMsMTUgKzE4MywxNSBAQCBwcml2YXRlOgogICAgIAogICAgIHZv
aWQgc3RhcnQoY29uc3QgQWJzdHJhY3RMb2NrZXImKTsKICAgICAKLSAgICBCb3g8TG9jaz4gbV9s
b2NrOworICAgIEJveDxVbmNoZWNrZWRMb2NrPiBtX2xvY2s7CiAgICAgUmVmPEF1dG9tYXRpY1Ro
cmVhZENvbmRpdGlvbj4gbV9jb25kaXRpb247CiAgICAgU2Vjb25kcyBtX3RpbWVvdXQ7CiAgICAg
VGhyZWFkVHlwZSBtX3RocmVhZFR5cGUgeyBUaHJlYWRUeXBlOjpVbmtub3duIH07CiAgICAgYm9v
bCBtX2lzUnVubmluZyB7IHRydWUgfTsKICAgICBib29sIG1faXNXYWl0aW5nIHsgZmFsc2UgfTsK
ICAgICBib29sIG1faGFzVW5kZXJseWluZ1RocmVhZCB7IGZhbHNlIH07Ci0gICAgQ29uZGl0aW9u
IG1fd2FpdENvbmRpdGlvbjsKLSAgICBDb25kaXRpb24gbV9pc1J1bm5pbmdDb25kaXRpb247Cisg
ICAgVW5jaGVja2VkQ29uZGl0aW9uIG1fd2FpdENvbmRpdGlvbjsKKyAgICBVbmNoZWNrZWRDb25k
aXRpb24gbV9pc1J1bm5pbmdDb25kaXRpb247CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXVEYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0NoZWNrZWRDb25kaXRpb24uaCBiL1NvdXJjZS9XVEYv
d3RmL0NoZWNrZWRDb25kaXRpb24uaAppbmRleCAxMTkxMGUwMzk5MTNiNGI2MGE0NDk0N2ViYzkx
ZDAxYWJjNzhiMjc5Li4xMDZiYmEyMmQwYTYxN2IwZGYwNGIyNzJmOGNhMmQwYjYxY2JhMGI2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9DaGVja2VkQ29uZGl0aW9uLmgKKysrIGIvU291cmNl
L1dURi93dGYvQ2hlY2tlZENvbmRpdGlvbi5oCkBAIC0yNSw1OCArMjUsMTIgQEAKIAogI3ByYWdt
YSBvbmNlCiAKLSNpbmNsdWRlIDx3dGYvQ2hlY2tlZExvY2suaD4KICNpbmNsdWRlIDx3dGYvQ29u
ZGl0aW9uLmg+CiAKIG5hbWVzcGFjZSBXVEYgewogCi0vLyBBIGNvbmRpdGlvbiB2YXJpYWJsZSB0
eXBlIGZvciBDaGVja2VkTG9jay4KLS8vIEZvciBwcmVkaWNhdGVzIHRoYXQgYWNjZXNzIHRoZSBn
dWFyZGVkIHZhcmlhYmxlcywgdXNlIGFzc2VydElzSGVsZChsb2NrKS4KLWNsYXNzIENoZWNrZWRD
b25kaXRpb24gZmluYWwgewotICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKENoZWNrZWRDb25kaXRp
b24pOwotICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwotcHVibGljOgotICAgIGNvbnN0ZXhw
ciBDaGVja2VkQ29uZGl0aW9uKCkgPSBkZWZhdWx0OwotCi0gICAgYm9vbCB3YWl0VW50aWwoQ2hl
Y2tlZExvY2smIGxvY2ssIGNvbnN0IFRpbWVXaXRoRHluYW1pY0Nsb2NrVHlwZSYgdGltZW91dCkg
V1RGX1JFUVVJUkVTX0xPQ0sobG9jaykKLSAgICB7Ci0gICAgICAgIHJldHVybiBtX2NvbmRpdGlv
bi53YWl0VW50aWwodW5jaGVja2VkQ2FzdChsb2NrKSwgdGltZW91dCk7Ci0gICAgfQotICAgIHRl
bXBsYXRlPHR5cGVuYW1lIEZ1bmN0b3I+Ci0gICAgYm9vbCB3YWl0VW50aWwoQ2hlY2tlZExvY2sm
IGxvY2ssIGNvbnN0IFRpbWVXaXRoRHluYW1pY0Nsb2NrVHlwZSYgdGltZW91dCwgY29uc3QgRnVu
Y3RvciYgcHJlZGljYXRlKSBXVEZfUkVRVUlSRVNfTE9DSyhsb2NrKQotICAgIHsKLSAgICAgICAg
cmV0dXJuIG1fY29uZGl0aW9uLndhaXRVbnRpbCh1bmNoZWNrZWRDYXN0KGxvY2spLCB0aW1lb3V0
LCBwcmVkaWNhdGUpOwotICAgIH0KLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBGdW5jdG9yPgotICAg
IGJvb2wgd2FpdEZvcihDaGVja2VkTG9jayYgbG9jaywgU2Vjb25kcyByZWxhdGl2ZVRpbWVvdXQs
IGNvbnN0IEZ1bmN0b3ImIHByZWRpY2F0ZSkgV1RGX1JFUVVJUkVTX0xPQ0sobG9jaykKLSAgICB7
Ci0gICAgICAgIHJldHVybiBtX2NvbmRpdGlvbi53YWl0Rm9yKHVuY2hlY2tlZENhc3QobG9jayks
IHJlbGF0aXZlVGltZW91dCwgcHJlZGljYXRlKTsKLSAgICB9Ci0gICAgYm9vbCB3YWl0Rm9yKENo
ZWNrZWRMb2NrJiBsb2NrLCBTZWNvbmRzIHJlbGF0aXZlVGltZW91dCkgV1RGX1JFUVVJUkVTX0xP
Q0sobG9jaykKLSAgICB7Ci0gICAgICAgIHJldHVybiBtX2NvbmRpdGlvbi53YWl0Rm9yKHVuY2hl
Y2tlZENhc3QobG9jayksIHJlbGF0aXZlVGltZW91dCk7Ci0gICAgfQotICAgIHZvaWQgd2FpdChD
aGVja2VkTG9jayYgbG9jaykgV1RGX1JFUVVJUkVTX0xPQ0sobG9jaykKLSAgICB7Ci0gICAgICAg
IG1fY29uZGl0aW9uLndhaXQodW5jaGVja2VkQ2FzdChsb2NrKSk7Ci0gICAgfQotICAgIHRlbXBs
YXRlPHR5cGVuYW1lIEZ1bmN0b3I+Ci0gICAgdm9pZCB3YWl0KENoZWNrZWRMb2NrJiBsb2NrLCBj
b25zdCBGdW5jdG9yJiBwcmVkaWNhdGUpIFdURl9SRVFVSVJFU19MT0NLKGxvY2spCi0gICAgewot
ICAgICAgICBtX2NvbmRpdGlvbi53YWl0KHVuY2hlY2tlZENhc3QobG9jayksIHByZWRpY2F0ZSk7
Ci0gICAgfQotICAgIGJvb2wgbm90aWZ5T25lKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiBtX2Nv
bmRpdGlvbi5ub3RpZnlPbmUoKTsKLSAgICB9Ci0gICAgdm9pZCBub3RpZnlBbGwoKQotICAgIHsK
LSAgICAgICAgbV9jb25kaXRpb24ubm90aWZ5QWxsKCk7Ci0gICAgfQotcHJpdmF0ZToKLSAgICBz
dGF0aWMgTG9jayYgdW5jaGVja2VkQ2FzdChDaGVja2VkTG9jayYgbG9jaykgeyByZXR1cm4gc3Rh
dGljX2Nhc3Q8TG9jayY+KGxvY2spOyB9Ci0gICAgQ29uZGl0aW9uIG1fY29uZGl0aW9uOwotfTsK
Ky8vIEZJWE1FOiBVcGRhdGUgY29kZSBiYXNlIHRvIHVzZSBDb25kaXRpb24gYW5kIHJlbW92ZSB0
aGlzIGhlYWRlci4KK3VzaW5nIENoZWNrZWRDb25kaXRpb24gPSBDb25kaXRpb247CiAKIH0gLy8g
bmFtZXNwYWNlIFdURgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9DaGVja2VkTG9jay5o
IGIvU291cmNlL1dURi93dGYvQ2hlY2tlZExvY2suaAppbmRleCAzYWI1Yzc3MGRlMTYxYjRmMDU5
ZDZjNzRiYjcxZWM5OGVmYTVmNThhLi45NGE5ODFkNzg4MTk2MDYxZTUzNzZkM2M0MmVhYTI0YjBi
NDJkMTg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9DaGVja2VkTG9jay5oCisrKyBiL1Nv
dXJjZS9XVEYvd3RmL0NoZWNrZWRMb2NrLmgKQEAgLTI2LDgzICsyNiwxMiBAQAogI3ByYWdtYSBv
bmNlCiAKICNpbmNsdWRlIDx3dGYvTG9jay5oPgotI2luY2x1ZGUgPHd0Zi9Mb2NrZXIuaD4KLSNp
bmNsdWRlIDx3dGYvVGhyZWFkU2FmZXR5QW5hbHlzaXMuaD4KIAogbmFtZXNwYWNlIFdURiB7CiAK
LS8vIEEgbG9jayB0eXBlIHdpdGggc3VwcG9ydCBmb3IgdGhyZWFkIHNhZmV0eSBhbmFseXNpcy4K
LS8vIFRvIGFubm90YXRlIGEgbWVtYmVyIHZhcmlhYmxlIG9yIGEgZ2xvYmFsIHZhcmlhYmxlIHdp
dGggdGhyZWFkIG93bmVyc2hpcCBpbmZvcm1hdGlvbiwKLS8vIHVzZSBsb2NrIGNhcGFiaWxpdHkg
YW5ub3RhdGlvbnMgZGVmaW5lZCBpbiBUaHJlYWRTYWZldHlBbmFseXNpcy5oLgotLy8KLS8vIEV4
YW1wbGU6Ci0vLyAgIGNsYXNzIE15VmFsdWUgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8
TXlWYWx1ZT4KLS8vICAgewotLy8gICBwdWJsaWM6Ci0vLyAgICAgICB2b2lkIHNldFZhbHVlKGlu
dCB2YWx1ZSkgeyBMb2NrZXIgaG9sZExvY2sgeyBtX2xvY2sgfTsgbV92YWx1ZSA9IHZhbHVlOyAg
fQotLy8gICAgICAgdm9pZCBtYXliZVNldE90aGVyVmFsdWUoaW50IHZhbHVlKQotLy8gICAgICAg
ewotLy8gICAgICAgICAgIGlmICghbV9sb2NrLnRyeUxvY2soKSkKLS8vICAgICAgICAgICAgICBy
ZXR1cm47Ci0vLyAgICAgICAgICAgTG9ja2VyIGxvY2tlciB7IEFkb3B0TG9jaywgbV9vdGhlckxv
Y2sgfTsKLS8vICAgICAgICAgICBtX290aGVyVmFsdWUgPSB2YWx1ZTsKLS8vICAgICAgIH0KLS8v
ICAgcHJpdmF0ZToKLS8vICAgICAgIENoZWNrZWRMb2NrIG1fbG9jazsKLS8vICAgICAgIGludCBt
X3ZhbHVlIFdURl9HVUFSREVEX0JZX0xPQ0sobV9sb2NrKSB7IDc3IH07Ci0vLyAgICAgICBpbnQg
bV9vdGhlclZhbHVlIFdURl9HVUFSREVEX0JZX0xPQ0sobV9sb2NrKSB7IDg4IH07Ci0vLyAgIH07
Ci0vLyBGSVhNRTogTWF5YmUgc2hvdWxkIGJlIGZvbGRlZCBiYWNrIHRvIExvY2sgb25jZSBob2xk
TG9jayBpcyBub3QgdXNlZCBnbG9iYWxseS4KLWNsYXNzIFdURl9DQVBBQklMSVRZX0xPQ0sgQ2hl
Y2tlZExvY2sgOiBMb2NrIHsKLSAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShDaGVja2VkTG9jayk7
Ci0gICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7Ci1wdWJsaWM6Ci0gICAgY29uc3RleHByIENo
ZWNrZWRMb2NrKCkgPSBkZWZhdWx0OwotICAgIHZvaWQgbG9jaygpIFdURl9BQ1FVSVJFU19MT0NL
KCkgeyBMb2NrOjpsb2NrKCk7IH0KLSAgICBib29sIHRyeUxvY2soKSBXVEZfQUNRVUlSRVNfTE9D
S19JRih0cnVlKSB7IHJldHVybiBMb2NrOjp0cnlMb2NrKCk7IH0KLSAgICBib29sIHRyeV9sb2Nr
KCkgV1RGX0FDUVVJUkVTX0xPQ0tfSUYodHJ1ZSkgeyByZXR1cm4gTG9jazo6dHJ5X2xvY2soKTsg
fSAvLyBOT0xJTlQ6IEludGVudGlvbmFsIGRldmlhdGlvbiB0byBzdXBwb3J0IHN0ZDo6c2NvcGVk
X2xvY2suCi0gICAgdm9pZCB1bmxvY2soKSBXVEZfUkVMRUFTRVNfTE9DSygpIHsgTG9jazo6dW5s
b2NrKCk7IH0KLSAgICB2b2lkIHVubG9ja0ZhaXJseSgpIFdURl9SRUxFQVNFU19MT0NLKCkgeyBM
b2NrOjp1bmxvY2tGYWlybHkoKTsgfQotICAgIHZvaWQgc2FmZXBvaW50KCkgeyBMb2NrOjpzYWZl
cG9pbnQoKTsgfQotICAgIGJvb2wgaXNIZWxkKCkgY29uc3QgeyByZXR1cm4gTG9jazo6aXNIZWxk
KCk7IH0KLSAgICBib29sIGlzTG9ja2VkKCkgY29uc3QgeyByZXR1cm4gTG9jazo6aXNMb2NrZWQo
KTsgfQotICAgIGZyaWVuZCBjbGFzcyBDaGVja2VkQ29uZGl0aW9uOwotfTsKLQotLy8gQXNzZXJ0
cyB0aGF0IHRoZSBsb2NrIGlzIGhlbGQuCi0vLyBUaGlzIGNhbiBiZSB1c2VkIGluIGNhc2VzIHdo
ZXJlIHRoZSBhbm5vdGF0aW9ucyBjYW5ub3QgYmUgYWRkZWQgdG8gdGhlIGZ1bmN0aW9uCi0vLyBk
ZWNsYXJhdGlvbi4KLWlubGluZSB2b2lkIGFzc2VydElzSGVsZChjb25zdCBDaGVja2VkTG9jayYg
bG9jaykgV1RGX0FTU0VSVFNfQUNRVUlSRURfTE9DSyhsb2NrKSB7IEFTU0VSVF9VTlVTRUQobG9j
aywgbG9jay5pc0hlbGQoKSk7IH0KLQotLy8gTG9ja2VyIHNwZWNpYWxpemF0aW9uIHRvIHVzZSB3
aXRoIENoZWNrZWRMb2NrLgotLy8gTm9uLW1vdmFibGUgc2ltcGxlIHNjb3BlZCBsb2NrIGhvbGRl
ci4KLS8vIEV4YW1wbGU6IExvY2tlciBsb2NrZXIgeyBtX2xvY2sgfTsKLXRlbXBsYXRlIDw+Ci1j
bGFzcyBXVEZfQ0FQQUJJTElUWV9TQ09QRURfTE9DSyBMb2NrZXI8Q2hlY2tlZExvY2s+IHsKLXB1
YmxpYzoKLSAgICBleHBsaWNpdCBMb2NrZXIoQ2hlY2tlZExvY2smIGxvY2spIFdURl9BQ1FVSVJF
U19MT0NLKGxvY2spCi0gICAgICAgIDogbV9sb2NrKGxvY2spCi0gICAgewotICAgICAgICBtX2xv
Y2subG9jaygpOwotICAgIH0KLSAgICBMb2NrZXIoQWRvcHRMb2NrVGFnLCBDaGVja2VkTG9jayYg
bG9jaykgV1RGX1JFUVVJUkVTX0xPQ0sobG9jaykKLSAgICAgICAgOiBtX2xvY2sobG9jaykKLSAg
ICB7Ci0gICAgfQotICAgIH5Mb2NrZXIoKSBXVEZfUkVMRUFTRVNfTE9DSygpCi0gICAgewotICAg
ICAgICBtX2xvY2sudW5sb2NrKCk7Ci0gICAgfQotICAgIExvY2tlcihjb25zdCBMb2NrZXI8Q2hl
Y2tlZExvY2s+JikgPSBkZWxldGU7Ci0gICAgTG9ja2VyJiBvcGVyYXRvcj0oY29uc3QgTG9ja2Vy
PENoZWNrZWRMb2NrPiYpID0gZGVsZXRlOwotcHJpdmF0ZToKLSAgICBDaGVja2VkTG9jayYgbV9s
b2NrOwotfTsKLQotTG9ja2VyKENoZWNrZWRMb2NrJikgLT4gTG9ja2VyPENoZWNrZWRMb2NrPjsK
LUxvY2tlcihBZG9wdExvY2tUYWcsIENoZWNrZWRMb2NrJikgLT4gTG9ja2VyPENoZWNrZWRMb2Nr
PjsKKy8vIEZJWE1FOiBVcGRhdGUgY29kZSBiYXNlIHRvIHVzZSBMb2NrIGFuZCByZW1vdmUgdGhp
cyBoZWFkZXIuCit1c2luZyBDaGVja2VkTG9jayA9IExvY2s7CiAKIH0gLy8gbmFtZXNwYWNlIFdU
RgogCi11c2luZyBXVEY6OmFzc2VydElzSGVsZDsKIHVzaW5nIFdURjo6Q2hlY2tlZExvY2s7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9Db25kaXRpb24uaCBiL1NvdXJjZS9XVEYvd3RmL0Nv
bmRpdGlvbi5oCmluZGV4IDgxNTUwMWYxN2QyNjc5OTJkZjRkNDRkZGI5OTMxY2NhMGU4ZmZlOTku
LjRlZWYxZjFhNjJhMWNiNTJjMWRlNTcyZTE3MWEzMTQzNTY5OGIzNjYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XVEYvd3RmL0NvbmRpdGlvbi5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL0NvbmRpdGlvbi5o
CkBAIC0yNSw2ICsyNSw3IEBACiAKICNwcmFnbWEgb25jZQogCisjaW5jbHVkZSA8d3RmL0xvY2su
aD4KICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KICNpbmNsdWRlIDx3dGYvUGFya2luZ0xv
dC5oPgogI2luY2x1ZGUgPHd0Zi9UaW1lV2l0aER5bmFtaWNDbG9ja1R5cGUuaD4KQEAgLTM5LDE2
ICs0MCwxNiBAQCBuYW1lc3BhY2UgV1RGIHsKIC8vIG5vdGlmeUFsbCgpIHJlcXVpcmUganVzdCBh
IGxvYWQgYW5kIGJyYW5jaCBmb3IgdGhlIGZhc3QgY2FzZSB3aGVyZSBubyB0aHJlYWQgaXMgd2Fp
dGluZy4KIC8vIFRoaXMgY29uZGl0aW9uIHZhcmlhYmxlLCB3aGVuIHVzZWQgd2l0aCBXVEY6Okxv
Y2ssIGNhbiBvdXRwZXJmb3JtIGEgc3lzdGVtIGNvbmRpdGlvbiB2YXJpYWJsZQogLy8gYW5kIGxv
Y2sgYnkgdXAgdG8gNTh4LgotY2xhc3MgQ29uZGl0aW9uIGZpbmFsIHsKLSAgICBXVEZfTUFLRV9O
T05DT1BZQUJMRShDb25kaXRpb24pOworY2xhc3MgVW5jaGVja2VkQ29uZGl0aW9uIGZpbmFsIHsK
KyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShVbmNoZWNrZWRDb25kaXRpb24pOwogICAgIFdURl9N
QUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIC8vIENvbmRpdGlvbiB3aWxsIGFjY2Vw
dCBhbnkga2luZCBvZiB0aW1lIGFuZCBjb252ZXJ0IGl0IGludGVybmFsbHksIGJ1dCB0aGlzIHR5
cGVkZWYgdGVsbHMKLSAgICAvLyB5b3Ugd2hhdCBraW5kIG9mIHRpbWUgQ29uZGl0aW9uIHdvdWxk
IGJlIGFibGUgdG8gdXNlIHdpdGhvdXQgY29udmVyc2lvbnMuIEhvd2V2ZXIsIGlmIHlvdQorICAg
IC8vIFVuY2hlY2tlZENvbmRpdGlvbiB3aWxsIGFjY2VwdCBhbnkga2luZCBvZiB0aW1lIGFuZCBj
b252ZXJ0IGl0IGludGVybmFsbHksIGJ1dCB0aGlzIHR5cGVkZWYgdGVsbHMKKyAgICAvLyB5b3Ug
d2hhdCBraW5kIG9mIHRpbWUgVW5jaGVja2VkQ29uZGl0aW9uIHdvdWxkIGJlIGFibGUgdG8gdXNl
IHdpdGhvdXQgY29udmVyc2lvbnMuIEhvd2V2ZXIsIGlmIHlvdQogICAgIC8vIGFyZSB1bmxpa2Vs
eSB0byBiZSBhZmZlY3RlZCBieSB0aGUgY29zdCBvZiBjb252ZXJzaW9ucywgaXQgaXMgYmV0dGVy
IHRvIHVzZSBNb25vdG9uaWNUaW1lLgogICAgIHVzaW5nIFRpbWUgPSBQYXJraW5nTG90OjpUaW1l
OwogCi0gICAgY29uc3RleHByIENvbmRpdGlvbigpID0gZGVmYXVsdDsKKyAgICBjb25zdGV4cHIg
VW5jaGVja2VkQ29uZGl0aW9uKCkgPSBkZWZhdWx0OwogCiAgICAgLy8gV2FpdCBvbiBhIHBhcmtp
bmcgcXVldWUgd2hpbGUgcmVsZWFzaW5nIHRoZSBnaXZlbiBsb2NrLiBJdCB3aWxsIHVubG9jayB0
aGUgbG9jayBqdXN0IGJlZm9yZQogICAgIC8vIHBhcmtpbmcsIGFuZCByZWxvY2sgaXQgdXBvbiB3
YWtldXAuIFJldHVybnMgdHJ1ZSBpZiB3ZSB3b2tlIHVwIGR1ZSB0byBzb21lIGNhbGwgdG8KQEAg
LTE3Miw5ICsxNzMsNjEgQEAgcHJpdmF0ZToKICAgICBBdG9taWM8Ym9vbD4gbV9oYXNXYWl0ZXJz
IHsgZmFsc2UgfTsKIH07CiAKKy8vIEEgY29uZGl0aW9uIHZhcmlhYmxlIHR5cGUgZm9yIExvY2su
CisvLyBGb3IgcHJlZGljYXRlcyB0aGF0IGFjY2VzcyB0aGUgZ3VhcmRlZCB2YXJpYWJsZXMsIHVz
ZSBhc3NlcnRJc0hlbGQobG9jaykuCitjbGFzcyBDb25kaXRpb24gZmluYWwgeworICAgIFdURl9N
QUtFX05PTkNPUFlBQkxFKENvbmRpdGlvbik7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7
CitwdWJsaWM6CisgICAgY29uc3RleHByIENvbmRpdGlvbigpID0gZGVmYXVsdDsKKworICAgIGJv
b2wgd2FpdFVudGlsKExvY2smIGxvY2ssIGNvbnN0IFRpbWVXaXRoRHluYW1pY0Nsb2NrVHlwZSYg
dGltZW91dCkgV1RGX1JFUVVJUkVTX0xPQ0sobG9jaykKKyAgICB7CisgICAgICAgIHJldHVybiBt
X2NvbmRpdGlvbi53YWl0VW50aWwodW5jaGVja2VkQ2FzdChsb2NrKSwgdGltZW91dCk7CisgICAg
fQorICAgIHRlbXBsYXRlPHR5cGVuYW1lIEZ1bmN0b3I+CisgICAgYm9vbCB3YWl0VW50aWwoTG9j
ayYgbG9jaywgY29uc3QgVGltZVdpdGhEeW5hbWljQ2xvY2tUeXBlJiB0aW1lb3V0LCBjb25zdCBG
dW5jdG9yJiBwcmVkaWNhdGUpIFdURl9SRVFVSVJFU19MT0NLKGxvY2spCisgICAgeworICAgICAg
ICByZXR1cm4gbV9jb25kaXRpb24ud2FpdFVudGlsKHVuY2hlY2tlZENhc3QobG9jayksIHRpbWVv
dXQsIHByZWRpY2F0ZSk7CisgICAgfQorICAgIHRlbXBsYXRlPHR5cGVuYW1lIEZ1bmN0b3I+Cisg
ICAgYm9vbCB3YWl0Rm9yKExvY2smIGxvY2ssIFNlY29uZHMgcmVsYXRpdmVUaW1lb3V0LCBjb25z
dCBGdW5jdG9yJiBwcmVkaWNhdGUpIFdURl9SRVFVSVJFU19MT0NLKGxvY2spCisgICAgeworICAg
ICAgICByZXR1cm4gbV9jb25kaXRpb24ud2FpdEZvcih1bmNoZWNrZWRDYXN0KGxvY2spLCByZWxh
dGl2ZVRpbWVvdXQsIHByZWRpY2F0ZSk7CisgICAgfQorICAgIGJvb2wgd2FpdEZvcihMb2NrJiBs
b2NrLCBTZWNvbmRzIHJlbGF0aXZlVGltZW91dCkgV1RGX1JFUVVJUkVTX0xPQ0sobG9jaykKKyAg
ICB7CisgICAgICAgIHJldHVybiBtX2NvbmRpdGlvbi53YWl0Rm9yKHVuY2hlY2tlZENhc3QobG9j
ayksIHJlbGF0aXZlVGltZW91dCk7CisgICAgfQorICAgIHZvaWQgd2FpdChMb2NrJiBsb2NrKSBX
VEZfUkVRVUlSRVNfTE9DSyhsb2NrKQorICAgIHsKKyAgICAgICAgbV9jb25kaXRpb24ud2FpdCh1
bmNoZWNrZWRDYXN0KGxvY2spKTsKKyAgICB9CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRnVuY3Rv
cj4KKyAgICB2b2lkIHdhaXQoTG9jayYgbG9jaywgY29uc3QgRnVuY3RvciYgcHJlZGljYXRlKSBX
VEZfUkVRVUlSRVNfTE9DSyhsb2NrKQorICAgIHsKKyAgICAgICAgbV9jb25kaXRpb24ud2FpdCh1
bmNoZWNrZWRDYXN0KGxvY2spLCBwcmVkaWNhdGUpOworICAgIH0KKyAgICBib29sIG5vdGlmeU9u
ZSgpCisgICAgeworICAgICAgICByZXR1cm4gbV9jb25kaXRpb24ubm90aWZ5T25lKCk7CisgICAg
fQorICAgIHZvaWQgbm90aWZ5QWxsKCkKKyAgICB7CisgICAgICAgIG1fY29uZGl0aW9uLm5vdGlm
eUFsbCgpOworICAgIH0KK3ByaXZhdGU6CisgICAgc3RhdGljIFVuY2hlY2tlZExvY2smIHVuY2hl
Y2tlZENhc3QoTG9jayYgbG9jaykgeyByZXR1cm4gc3RhdGljX2Nhc3Q8VW5jaGVja2VkTG9jayY+
KGxvY2spOyB9CisgICAgVW5jaGVja2VkQ29uZGl0aW9uIG1fY29uZGl0aW9uOworfTsKKwordXNp
bmcgU3RhdGljVW5jaGVja2VkQ29uZGl0aW9uID0gVW5jaGVja2VkQ29uZGl0aW9uOwogdXNpbmcg
U3RhdGljQ29uZGl0aW9uID0gQ29uZGl0aW9uOwogCiB9IC8vIG5hbWVzcGFjZSBXVEYKIAogdXNp
bmcgV1RGOjpDb25kaXRpb247Cit1c2luZyBXVEY6OlVuY2hlY2tlZENvbmRpdGlvbjsKIHVzaW5n
IFdURjo6U3RhdGljQ29uZGl0aW9uOwordXNpbmcgV1RGOjpTdGF0aWNVbmNoZWNrZWRDb25kaXRp
b247CisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0xvY2suY3BwIGIvU291cmNlL1dURi93
dGYvTG9jay5jcHAKaW5kZXggYjk5MzgzZDY5NDgwZDNhNGM5YjYyM2YwYzBiY2M3ZGY5MGVhYjA0
ZC4uZmY4NmUxMGE5YTJhNDE3YWI3MDY3MGEwNzg5Y2Y2NTBkNzE4YjE3MSAxMDA2NDQKLS0tIGEv
U291cmNlL1dURi93dGYvTG9jay5jcHAKKysrIGIvU291cmNlL1dURi93dGYvTG9jay5jcHAKQEAg
LTMzLDE0ICszMywxNCBAQCBuYW1lc3BhY2UgV1RGIHsKIAogc3RhdGljIGNvbnN0ZXhwciBib29s
IHByb2ZpbGVMb2NrQ29udGVudGlvbiA9IGZhbHNlOwogCi12b2lkIExvY2s6OmxvY2tTbG93KCkK
K3ZvaWQgVW5jaGVja2VkTG9jazo6bG9ja1Nsb3coKQogewogICAgIGlmIChwcm9maWxlTG9ja0Nv
bnRlbnRpb24pCiAgICAgICAgIFNUQUNLX1NIT1RfUFJPRklMRSg0LCAyLCA1KTsKICAgICBEZWZh
dWx0TG9ja0FsZ29yaXRobTo6bG9ja1Nsb3cobV9ieXRlKTsKIH0KIAotdm9pZCBMb2NrOjp1bmxv
Y2tTbG93KCkKK3ZvaWQgVW5jaGVja2VkTG9jazo6dW5sb2NrU2xvdygpCiB7CiAgICAgLy8gSGVh
cCBhbGxvY2F0aW9ucyBhcmUgZm9yYmlkZGVuIG9uIHRoZSBjZXJ0YWluIHRocmVhZHMgKGUuZy4g
YXVkaW8gcmVuZGVyaW5nIHRocmVhZCkgZm9yIHBlcmZvcm1hbmNlIHJlYXNvbnMgc28gd2UgbmVl
ZCB0bwogICAgIC8vIGV4cGxpY2l0bHkgYWxsb3cgdGhlIGZvbGxvd2luZyBhbGxvY2F0aW9uKHMp
LiBJbiBzb21lIHJhcmUgY2FzZXMsIHRoZSB1bmxvY2tTbG93KCkgYWxnb3JpdGggbWF5IGNhdXNl
IGFsbG9jYXRpb25zLgpAQCAtNDksNyArNDksNyBAQCB2b2lkIExvY2s6OnVubG9ja1Nsb3coKQog
ICAgIERlZmF1bHRMb2NrQWxnb3JpdGhtOjp1bmxvY2tTbG93KG1fYnl0ZSwgRGVmYXVsdExvY2tB
bGdvcml0aG06OlVuZmFpcik7CiB9CiAKLXZvaWQgTG9jazo6dW5sb2NrRmFpcmx5U2xvdygpCit2
b2lkIFVuY2hlY2tlZExvY2s6OnVubG9ja0ZhaXJseVNsb3coKQogewogICAgIC8vIEhlYXAgYWxs
b2NhdGlvbnMgYXJlIGZvcmJpZGRlbiBvbiB0aGUgY2VydGFpbiB0aHJlYWRzIChlLmcuIGF1ZGlv
IHJlbmRlcmluZyB0aHJlYWQpIGZvciBwZXJmb3JtYW5jZSByZWFzb25zIHNvIHdlIG5lZWQgdG8K
ICAgICAvLyBleHBsaWNpdGx5IGFsbG93IHRoZSBmb2xsb3dpbmcgYWxsb2NhdGlvbihzKS4gSW4g
c29tZSByYXJlIGNhc2VzLCB0aGUgdW5sb2NrU2xvdygpIGFsZ29yaXRoIG1heSBjYXVzZSBhbGxv
Y2F0aW9ucy4KQEAgLTU4LDcgKzU4LDcgQEAgdm9pZCBMb2NrOjp1bmxvY2tGYWlybHlTbG93KCkK
ICAgICBEZWZhdWx0TG9ja0FsZ29yaXRobTo6dW5sb2NrU2xvdyhtX2J5dGUsIERlZmF1bHRMb2Nr
QWxnb3JpdGhtOjpGYWlyKTsKIH0KIAotdm9pZCBMb2NrOjpzYWZlcG9pbnRTbG93KCkKK3ZvaWQg
VW5jaGVja2VkTG9jazo6c2FmZXBvaW50U2xvdygpCiB7CiAgICAgRGVmYXVsdExvY2tBbGdvcml0
aG06OnNhZmVwb2ludFNsb3cobV9ieXRlKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3Rm
L0xvY2suaCBiL1NvdXJjZS9XVEYvd3RmL0xvY2suaAppbmRleCA2MGZkYWFiZDkwZGFlN2YyZDRk
NDhmMzFiODAzNGRlM2JmOTVmNjdkLi5mZGMwYTRmNzcwY2U2MzJhMDFmMWJiMTM1YWNkYTliMzNj
ZmU0OTMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9Mb2NrLmgKKysrIGIvU291cmNlL1dU
Ri93dGYvTG9jay5oCkBAIC0yNSw5ICsyNSwxMSBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1
ZGUgPG11dGV4PgogI2luY2x1ZGUgPHd0Zi9Mb2NrQWxnb3JpdGhtLmg+CiAjaW5jbHVkZSA8d3Rm
L0xvY2tlci5oPgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgorI2luY2x1ZGUgPHd0Zi9U
aHJlYWRTYWZldHlBbmFseXNpcy5oPgogCiBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CiBzdHJ1
Y3QgTG9ja0luc3BlY3RvcjsKQEAgLTQ3LDExICs0OSwxMSBAQCB0eXBlZGVmIExvY2tBbGdvcml0
aG08dWludDhfdCwgMSwgMj4gRGVmYXVsdExvY2tBbGdvcml0aG07CiAvLyBhdCB3b3JzdCBvbmUg
Y2FsbCB0byB1bmxvY2soKSBwZXIgbWlsbGlzZWNvbmQgd2lsbCBkbyBhIGRpcmVjdCBoYW5kLW9m
ZiB0byB0aGUgdGhyZWFkIHRoYXQgaXMgYXQKIC8vIHRoZSBoZWFkIG9mIHRoZSBxdWV1ZS4gV2hl
biB0aGVyZSBhcmUgY29sbGlzaW9ucywgZWFjaCBjb2xsaXNpb24gaW5jcmVhc2VzIHRoZSBmYWly
IHVubG9jayBkZWxheQogLy8gYnkgb25lIG1pbGxpc2Vjb25kIGluIHRoZSB3b3JzdCBjYXNlLgot
Y2xhc3MgTG9jayB7Ci0gICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoTG9jayk7CitjbGFzcyBVbmNo
ZWNrZWRMb2NrIHsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShVbmNoZWNrZWRMb2NrKTsKICAg
ICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBjb25zdGV4cHIgTG9jaygp
ID0gZGVmYXVsdDsKKyAgICBjb25zdGV4cHIgVW5jaGVja2VkTG9jaygpID0gZGVmYXVsdDsKIAog
ICAgIHZvaWQgbG9jaygpCiAgICAgewpAQCAtMTMxLDkgKzEzMyw4NCBAQCBwcml2YXRlOgogICAg
IEF0b21pYzx1aW50OF90PiBtX2J5dGUgeyAwIH07CiB9OwogCisvLyBBIGxvY2sgdHlwZSB3aXRo
IHN1cHBvcnQgZm9yIHRocmVhZCBzYWZldHkgYW5hbHlzaXMuCisvLyBUbyBhbm5vdGF0ZSBhIG1l
bWJlciB2YXJpYWJsZSBvciBhIGdsb2JhbCB2YXJpYWJsZSB3aXRoIHRocmVhZCBvd25lcnNoaXAg
aW5mb3JtYXRpb24sCisvLyB1c2UgbG9jayBjYXBhYmlsaXR5IGFubm90YXRpb25zIGRlZmluZWQg
aW4gVGhyZWFkU2FmZXR5QW5hbHlzaXMuaC4KKy8vCisvLyBFeGFtcGxlOgorLy8gICBjbGFzcyBN
eVZhbHVlIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPE15VmFsdWU+CisvLyAgIHsKKy8v
ICAgcHVibGljOgorLy8gICAgICAgdm9pZCBzZXRWYWx1ZShpbnQgdmFsdWUpIHsgTG9ja2VyIGhv
bGRMb2NrIHsgbV9sb2NrIH07IG1fdmFsdWUgPSB2YWx1ZTsgIH0KKy8vICAgICAgIHZvaWQgbWF5
YmVTZXRPdGhlclZhbHVlKGludCB2YWx1ZSkKKy8vICAgICAgIHsKKy8vICAgICAgICAgICBpZiAo
IW1fbG9jay50cnlMb2NrKCkpCisvLyAgICAgICAgICAgICAgcmV0dXJuOworLy8gICAgICAgICAg
IExvY2tlciBsb2NrZXIgeyBBZG9wdExvY2ssIG1fb3RoZXJMb2NrIH07CisvLyAgICAgICAgICAg
bV9vdGhlclZhbHVlID0gdmFsdWU7CisvLyAgICAgICB9CisvLyAgIHByaXZhdGU6CisvLyAgICAg
ICBMb2NrIG1fbG9jazsKKy8vICAgICAgIGludCBtX3ZhbHVlIFdURl9HVUFSREVEX0JZX0xPQ0so
bV9sb2NrKSB7IDc3IH07CisvLyAgICAgICBpbnQgbV9vdGhlclZhbHVlIFdURl9HVUFSREVEX0JZ
X0xPQ0sobV9sb2NrKSB7IDg4IH07CisvLyAgIH07CitjbGFzcyBXVEZfQ0FQQUJJTElUWV9MT0NL
IExvY2sgOiBVbmNoZWNrZWRMb2NrIHsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShMb2NrKTsK
KyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICBjb25zdGV4cHIgTG9j
aygpID0gZGVmYXVsdDsKKyAgICB2b2lkIGxvY2soKSBXVEZfQUNRVUlSRVNfTE9DSygpIHsgVW5j
aGVja2VkTG9jazo6bG9jaygpOyB9CisgICAgYm9vbCB0cnlMb2NrKCkgV1RGX0FDUVVJUkVTX0xP
Q0tfSUYodHJ1ZSkgeyByZXR1cm4gVW5jaGVja2VkTG9jazo6dHJ5TG9jaygpOyB9CisgICAgYm9v
bCB0cnlfbG9jaygpIFdURl9BQ1FVSVJFU19MT0NLX0lGKHRydWUpIHsgcmV0dXJuIFVuY2hlY2tl
ZExvY2s6OnRyeV9sb2NrKCk7IH0gLy8gTk9MSU5UOiBJbnRlbnRpb25hbCBkZXZpYXRpb24gdG8g
c3VwcG9ydCBzdGQ6OnNjb3BlZF9sb2NrLgorICAgIHZvaWQgdW5sb2NrKCkgV1RGX1JFTEVBU0VT
X0xPQ0soKSB7IFVuY2hlY2tlZExvY2s6OnVubG9jaygpOyB9CisgICAgdm9pZCB1bmxvY2tGYWly
bHkoKSBXVEZfUkVMRUFTRVNfTE9DSygpIHsgVW5jaGVja2VkTG9jazo6dW5sb2NrRmFpcmx5KCk7
IH0KKyAgICB2b2lkIHNhZmVwb2ludCgpIHsgVW5jaGVja2VkTG9jazo6c2FmZXBvaW50KCk7IH0K
KyAgICBib29sIGlzSGVsZCgpIGNvbnN0IHsgcmV0dXJuIFVuY2hlY2tlZExvY2s6OmlzSGVsZCgp
OyB9CisgICAgYm9vbCBpc0xvY2tlZCgpIGNvbnN0IHsgcmV0dXJuIFVuY2hlY2tlZExvY2s6Omlz
TG9ja2VkKCk7IH0KKyAgICBmcmllbmQgY2xhc3MgQ29uZGl0aW9uOworICAgIGZyaWVuZCBzdHJ1
Y3QgVGVzdFdlYktpdEFQSTo6TG9ja0luc3BlY3RvcjsKK307CisKKy8vIEFzc2VydHMgdGhhdCB0
aGUgbG9jayBpcyBoZWxkLgorLy8gVGhpcyBjYW4gYmUgdXNlZCBpbiBjYXNlcyB3aGVyZSB0aGUg
YW5ub3RhdGlvbnMgY2Fubm90IGJlIGFkZGVkIHRvIHRoZSBmdW5jdGlvbgorLy8gZGVjbGFyYXRp
b24uCitpbmxpbmUgdm9pZCBhc3NlcnRJc0hlbGQoY29uc3QgTG9jayYgbG9jaykgV1RGX0FTU0VS
VFNfQUNRVUlSRURfTE9DSyhsb2NrKSB7IEFTU0VSVF9VTlVTRUQobG9jaywgbG9jay5pc0hlbGQo
KSk7IH0KKworLy8gTG9ja2VyIHNwZWNpYWxpemF0aW9uIHRvIHVzZSB3aXRoIExvY2suCisvLyBO
b24tbW92YWJsZSBzaW1wbGUgc2NvcGVkIGxvY2sgaG9sZGVyLgorLy8gRXhhbXBsZTogTG9ja2Vy
IGxvY2tlciB7IG1fbG9jayB9OwordGVtcGxhdGUgPD4KK2NsYXNzIFdURl9DQVBBQklMSVRZX1ND
T1BFRF9MT0NLIExvY2tlcjxMb2NrPiB7CitwdWJsaWM6CisgICAgZXhwbGljaXQgTG9ja2VyKExv
Y2smIGxvY2spIFdURl9BQ1FVSVJFU19MT0NLKGxvY2spCisgICAgICAgIDogbV9sb2NrKGxvY2sp
CisgICAgeworICAgICAgICBtX2xvY2subG9jaygpOworICAgIH0KKyAgICBMb2NrZXIoQWRvcHRM
b2NrVGFnLCBMb2NrJiBsb2NrKSBXVEZfUkVRVUlSRVNfTE9DSyhsb2NrKQorICAgICAgICA6IG1f
bG9jayhsb2NrKQorICAgIHsKKyAgICB9CisgICAgfkxvY2tlcigpIFdURl9SRUxFQVNFU19MT0NL
KCkKKyAgICB7CisgICAgICAgIG1fbG9jay51bmxvY2soKTsKKyAgICB9CisgICAgTG9ja2VyKGNv
bnN0IExvY2tlcjxMb2NrPiYpID0gZGVsZXRlOworICAgIExvY2tlciYgb3BlcmF0b3I9KGNvbnN0
IExvY2tlcjxMb2NrPiYpID0gZGVsZXRlOworcHJpdmF0ZToKKyAgICBMb2NrJiBtX2xvY2s7Cit9
OworCitMb2NrZXIoTG9jayYpIC0+IExvY2tlcjxMb2NrPjsKK0xvY2tlcihBZG9wdExvY2tUYWcs
IExvY2smKSAtPiBMb2NrZXI8TG9jaz47CisKIHVzaW5nIExvY2tIb2xkZXIgPSBMb2NrZXI8TG9j
az47Cit1c2luZyBVbmNoZWNrZWRMb2NrSG9sZGVyID0gTG9ja2VyPFVuY2hlY2tlZExvY2s+Owog
CiB9IC8vIG5hbWVzcGFjZSBXVEYKIAordXNpbmcgV1RGOjpVbmNoZWNrZWRMb2NrOwogdXNpbmcg
V1RGOjpMb2NrOwogdXNpbmcgV1RGOjpMb2NrSG9sZGVyOwordXNpbmcgV1RGOjpVbmNoZWNrZWRM
b2NrSG9sZGVyOwordXNpbmcgV1RGOjphc3NlcnRJc0hlbGQ7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V1RGL3d0Zi9NZXRhQWxsb2NhdG9yLmNwcCBiL1NvdXJjZS9XVEYvd3RmL01ldGFBbGxvY2F0b3Iu
Y3BwCmluZGV4IGVlZjg5Yjc3ZTdiZGRmY2Q2NzY1ZDY3M2FhNTY1YTA2NzdjZDcwYTQuLmQ5Y2Q1
OTkyZjNhMGQ1MWQwNDZlODcwMWExM2JkMjdhNzkwMjJhZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
VEYvd3RmL01ldGFBbGxvY2F0b3IuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL01ldGFBbGxvY2F0
b3IuY3BwCkBAIC02Miw3ICs2Miw3IEBAIHZvaWQgTWV0YUFsbG9jYXRvclRyYWNrZXI6OnJlbGVh
c2UoTWV0YUFsbG9jYXRvckhhbmRsZSYgaGFuZGxlKQogICAgIG1fYWxsb2NhdGlvbnMucmVtb3Zl
KCZoYW5kbGUpOwogfQogCi12b2lkIE1ldGFBbGxvY2F0b3I6OnJlbGVhc2UoY29uc3QgTG9ja0hv
bGRlciYsIE1ldGFBbGxvY2F0b3JIYW5kbGUmIGhhbmRsZSkKK3ZvaWQgTWV0YUFsbG9jYXRvcjo6
cmVsZWFzZShjb25zdCBVbmNoZWNrZWRMb2NrSG9sZGVyJiwgTWV0YUFsbG9jYXRvckhhbmRsZSYg
aGFuZGxlKQogewogICAgIGlmIChoYW5kbGUuc2l6ZUluQnl0ZXMoKSkgewogICAgICAgICBNZW1v
cnlQdHIgc3RhcnQgPSBoYW5kbGUuc3RhcnQoKTsKQEAgLTEyNCw3ICsxMjQsNyBAQCB2b2lkIE1l
dGFBbGxvY2F0b3JIYW5kbGU6OmR1bXAoUHJpbnRTdHJlYW0mIG91dCkgY29uc3QKICAgICBvdXQu
cHJpbnQoUmF3UG9pbnRlcihzdGFydCgpLnVudGFnZ2VkUHRyKCkpLCAiLi4uIiwgUmF3UG9pbnRl
cihlbmQoKS51bnRhZ2dlZFB0cigpKSk7CiB9CiAKLU1ldGFBbGxvY2F0b3I6Ok1ldGFBbGxvY2F0
b3IoTG9jayYgbG9jaywgc2l6ZV90IGFsbG9jYXRpb25HcmFudWxlLCBzaXplX3QgcGFnZVNpemUp
CitNZXRhQWxsb2NhdG9yOjpNZXRhQWxsb2NhdG9yKFVuY2hlY2tlZExvY2smIGxvY2ssIHNpemVf
dCBhbGxvY2F0aW9uR3JhbnVsZSwgc2l6ZV90IHBhZ2VTaXplKQogICAgIDogbV9hbGxvY2F0aW9u
R3JhbnVsZShhbGxvY2F0aW9uR3JhbnVsZSkKICAgICAsIG1fcGFnZVNpemUocGFnZVNpemUpCiAg
ICAgLCBtX2J5dGVzQWxsb2NhdGVkKDApCkBAIC0xNTQsNyArMTU0LDcgQEAgTWV0YUFsbG9jYXRv
cjo6TWV0YUFsbG9jYXRvcihMb2NrJiBsb2NrLCBzaXplX3QgYWxsb2NhdGlvbkdyYW51bGUsIHNp
emVfdCBwYWdlU2kKICAgICBBU1NFUlQoc3RhdGljX2Nhc3Q8c2l6ZV90PigxKSA8PCBtX2xvZ0Fs
bG9jYXRpb25HcmFudWxlID09IG1fYWxsb2NhdGlvbkdyYW51bGUpOwogfQogCi1SZWZQdHI8TWV0
YUFsbG9jYXRvckhhbmRsZT4gTWV0YUFsbG9jYXRvcjo6YWxsb2NhdGUoY29uc3QgTG9ja0hvbGRl
ciYsIHNpemVfdCBzaXplSW5CeXRlcykKK1JlZlB0cjxNZXRhQWxsb2NhdG9ySGFuZGxlPiBNZXRh
QWxsb2NhdG9yOjphbGxvY2F0ZShjb25zdCBVbmNoZWNrZWRMb2NrSG9sZGVyJiwgc2l6ZV90IHNp
emVJbkJ5dGVzKQogewogICAgIGlmICghc2l6ZUluQnl0ZXMpCiAgICAgICAgIHJldHVybiBudWxs
cHRyOwpAQCAtMTk4LDcgKzE5OCw3IEBAIFJlZlB0cjxNZXRhQWxsb2NhdG9ySGFuZGxlPiBNZXRh
QWxsb2NhdG9yOjphbGxvY2F0ZShjb25zdCBMb2NrSG9sZGVyJiwgc2l6ZV90IHNpCiAgICAgcmV0
dXJuIGhhbmRsZTsKIH0KIAotTWV0YUFsbG9jYXRvcjo6U3RhdGlzdGljcyBNZXRhQWxsb2NhdG9y
OjpjdXJyZW50U3RhdGlzdGljcyhjb25zdCBMb2NrSG9sZGVyJikKK01ldGFBbGxvY2F0b3I6OlN0
YXRpc3RpY3MgTWV0YUFsbG9jYXRvcjo6Y3VycmVudFN0YXRpc3RpY3MoY29uc3QgVW5jaGVja2Vk
TG9ja0hvbGRlciYpCiB7CiAgICAgU3RhdGlzdGljcyByZXN1bHQ7CiAgICAgcmVzdWx0LmJ5dGVz
QWxsb2NhdGVkID0gbV9ieXRlc0FsbG9jYXRlZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3Rm
L01ldGFBbGxvY2F0b3IuaCBiL1NvdXJjZS9XVEYvd3RmL01ldGFBbGxvY2F0b3IuaAppbmRleCA1
ZmI3MmMyODBlZGMwNmRlYTg5MzFiNmEzYzA5ZTFmZjdiZjVjOGQxLi5lZGZlYzdjM2I4OTk2Mjlm
MDdkZTdhYTA4ZDBjNjMyMjc2ZjhjNDBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9NZXRh
QWxsb2NhdG9yLmgKKysrIGIvU291cmNlL1dURi93dGYvTWV0YUFsbG9jYXRvci5oCkBAIC02NSw3
ICs2NSw3IEBAIHB1YmxpYzoKICAgICB1c2luZyBGcmVlU3BhY2VQdHIgPSBNZXRhQWxsb2NhdG9y
UHRyPEZyZWVTcGFjZVB0clRhZz47CiAgICAgdXNpbmcgTWVtb3J5UHRyID0gTWV0YUFsbG9jYXRv
ckhhbmRsZTo6TWVtb3J5UHRyOwogCi0gICAgV1RGX0VYUE9SVF9QUklWQVRFIE1ldGFBbGxvY2F0
b3IoTG9jayYsIHNpemVfdCBhbGxvY2F0aW9uR3JhbnVsZSwgc2l6ZV90IHBhZ2VTaXplID0gV1RG
OjpwYWdlU2l6ZSgpKTsKKyAgICBXVEZfRVhQT1JUX1BSSVZBVEUgTWV0YUFsbG9jYXRvcihVbmNo
ZWNrZWRMb2NrJiwgc2l6ZV90IGFsbG9jYXRpb25HcmFudWxlLCBzaXplX3QgcGFnZVNpemUgPSBX
VEY6OnBhZ2VTaXplKCkpOwogICAgIAogICAgIFdURl9FWFBPUlRfUFJJVkFURSB2aXJ0dWFsIH5N
ZXRhQWxsb2NhdG9yKCk7CiAgICAgCkBAIC03NCw3ICs3NCw3IEBAIHB1YmxpYzoKICAgICAgICAg
TG9ja2VyIGxvY2tlciB7IG1fbG9jayB9OwogICAgICAgICByZXR1cm4gYWxsb2NhdGUobG9ja2Vy
LCBzaXplSW5CeXRlcyk7CiAgICAgfQotICAgIFdURl9FWFBPUlRfUFJJVkFURSBSZWZQdHI8TWV0
YUFsbG9jYXRvckhhbmRsZT4gYWxsb2NhdGUoY29uc3QgTG9ja0hvbGRlciYsIHNpemVfdCBzaXpl
SW5CeXRlcyk7CisgICAgV1RGX0VYUE9SVF9QUklWQVRFIFJlZlB0cjxNZXRhQWxsb2NhdG9ySGFu
ZGxlPiBhbGxvY2F0ZShjb25zdCBVbmNoZWNrZWRMb2NrSG9sZGVyJiwgc2l6ZV90IHNpemVJbkJ5
dGVzKTsKIAogICAgIHZvaWQgdHJhY2tBbGxvY2F0aW9ucyhNZXRhQWxsb2NhdG9yVHJhY2tlciog
dHJhY2tlcikKICAgICB7CkBAIC05OCw3ICs5OCw3IEBAIHB1YmxpYzoKICAgICAgICAgTG9ja2Vy
IGxvY2tlciB7IG1fbG9jayB9OwogICAgICAgICByZXR1cm4gY3VycmVudFN0YXRpc3RpY3MobG9j
a2VyKTsKICAgICB9Ci0gICAgV1RGX0VYUE9SVF9QUklWQVRFIFN0YXRpc3RpY3MgY3VycmVudFN0
YXRpc3RpY3MoY29uc3QgTG9ja0hvbGRlciYpOworICAgIFdURl9FWFBPUlRfUFJJVkFURSBTdGF0
aXN0aWNzIGN1cnJlbnRTdGF0aXN0aWNzKGNvbnN0IFVuY2hlY2tlZExvY2tIb2xkZXImKTsKIAog
ICAgIC8vIEFkZCBtb3JlIGZyZWUgc3BhY2UgdG8gdGhlIGFsbG9jYXRvci4gQ2FsbCB0aGlzIGRp
cmVjdGx5IGZyb20KICAgICAvLyB0aGUgY29uc3RydWN0b3IgaWYgeW91IHdpc2ggdG8gb3BlcmF0
ZSB0aGUgYWxsb2NhdG9yIHdpdGhpbiBhCkBAIC0xMzQsNyArMTM0LDcgQEAgcHJvdGVjdGVkOgog
ICAgIC8vIGFzIHRoZXJlIGFyZSBIYW5kbGVzIHRoYXQgcmVmZXIgdG8gaXQuCiAKICAgICAvLyBS
ZWxlYXNlIGEgTWV0YUFsbG9jYXRvckhhbmRsZS4KLSAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdmly
dHVhbCB2b2lkIHJlbGVhc2UoY29uc3QgTG9ja0hvbGRlciYsIE1ldGFBbGxvY2F0b3JIYW5kbGUm
KTsKKyAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdmlydHVhbCB2b2lkIHJlbGVhc2UoY29uc3QgVW5j
aGVja2VkTG9ja0hvbGRlciYsIE1ldGFBbGxvY2F0b3JIYW5kbGUmKTsKIHByaXZhdGU6CiAgICAg
CiAgICAgZnJpZW5kIGNsYXNzIE1ldGFBbGxvY2F0b3JIYW5kbGU7CkBAIC0xOTcsNyArMTk3LDcg
QEAgcHJpdmF0ZToKICAgICBzaXplX3QgbV9ieXRlc1Jlc2VydmVkOwogICAgIHNpemVfdCBtX2J5
dGVzQ29tbWl0dGVkOwogICAgIAotICAgIExvY2smIG1fbG9jazsKKyAgICBVbmNoZWNrZWRMb2Nr
JiBtX2xvY2s7CiAKICAgICBNZXRhQWxsb2NhdG9yVHJhY2tlciogbV90cmFja2VyIHsgbnVsbHB0
ciB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9QYXJhbGxlbEhlbHBlclBvb2wuY3Bw
IGIvU291cmNlL1dURi93dGYvUGFyYWxsZWxIZWxwZXJQb29sLmNwcAppbmRleCA0NDNkNzMxM2U2
YmFkMDI4NDM0OWU2MTA3ZjIwMzk3ZjkzZjQzYThkLi5jNzM0Njg1NTkzMTRkMDk3MDBiZGQ4YTVk
MGE1NTIwMWUwZDUwYzljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9QYXJhbGxlbEhlbHBl
clBvb2wuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL1BhcmFsbGVsSGVscGVyUG9vbC5jcHAKQEAg
LTEyMiw3ICsxMjIsNyBAQCB2b2lkIFBhcmFsbGVsSGVscGVyQ2xpZW50OjpydW5UYXNrKGNvbnN0
IFJlZlB0cjxTaGFyZWRUYXNrPHZvaWQgKCk+PiYgdGFzaykKIH0KIAogUGFyYWxsZWxIZWxwZXJQ
b29sOjpQYXJhbGxlbEhlbHBlclBvb2woQ1N0cmluZyYmIHRocmVhZE5hbWUpCi0gICAgOiBtX2xv
Y2soQm94PExvY2s+OjpjcmVhdGUoKSkKKyAgICA6IG1fbG9jayhCb3g8VW5jaGVja2VkTG9jaz46
OmNyZWF0ZSgpKQogICAgICwgbV93b3JrQXZhaWxhYmxlQ29uZGl0aW9uKEF1dG9tYXRpY1RocmVh
ZENvbmRpdGlvbjo6Y3JlYXRlKCkpCiAgICAgLCBtX3RocmVhZE5hbWUoV1RGTW92ZSh0aHJlYWRO
YW1lKSkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1BhcmFsbGVsSGVscGVyUG9vbC5o
IGIvU291cmNlL1dURi93dGYvUGFyYWxsZWxIZWxwZXJQb29sLmgKaW5kZXggMWU3NTk5YzgzZDY3
MTIxYzdlNmJmZTg3Y2NhOTFlZjZjZTg2ZTQwNy4uNjY0ZmFkZTg1Mzk5M2FiNGIwNTk1NDg3MjIx
NGYzODdjOWE2ZDA1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvUGFyYWxsZWxIZWxwZXJQ
b29sLmgKKysrIGIvU291cmNlL1dURi93dGYvUGFyYWxsZWxIZWxwZXJQb29sLmgKQEAgLTE5OSw5
ICsxOTksOSBAQCBwcml2YXRlOgogICAgIFBhcmFsbGVsSGVscGVyQ2xpZW50KiBnZXRDbGllbnRX
aXRoVGFzayhjb25zdCBBYnN0cmFjdExvY2tlciYpOwogICAgIFBhcmFsbGVsSGVscGVyQ2xpZW50
KiB3YWl0Rm9yQ2xpZW50V2l0aFRhc2soY29uc3QgQWJzdHJhY3RMb2NrZXImKTsKICAgICAKLSAg
ICBCb3g8TG9jaz4gbV9sb2NrOyAvLyBBdXRvbWF0aWNUaHJlYWQgd2FudHMgdGhpcyBpbiBhIGJv
eCBmb3Igc2FmZXR5LgorICAgIEJveDxVbmNoZWNrZWRMb2NrPiBtX2xvY2s7IC8vIEF1dG9tYXRp
Y1RocmVhZCB3YW50cyB0aGlzIGluIGEgYm94IGZvciBzYWZldHkuCiAgICAgUmVmPEF1dG9tYXRp
Y1RocmVhZENvbmRpdGlvbj4gbV93b3JrQXZhaWxhYmxlQ29uZGl0aW9uOwotICAgIENvbmRpdGlv
biBtX3dvcmtDb21wbGV0ZUNvbmRpdGlvbjsKKyAgICBVbmNoZWNrZWRDb25kaXRpb24gbV93b3Jr
Q29tcGxldGVDb25kaXRpb247CiAKICAgICBXZWFrUmFuZG9tIG1fcmFuZG9tOwogICAgIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dURi93dGYvUmVjdXJzaXZlTG9ja0FkYXB0ZXIuaCBiL1NvdXJjZS9X
VEYvd3RmL1JlY3Vyc2l2ZUxvY2tBZGFwdGVyLmgKaW5kZXggMWVlMTJkNDE5NDcyNmQyMzI0OTJk
NjU0NDQxNmVmNjYxNDhiZDY2YS4uY2E3YmM0NTU0NDdiMTUyMjA3Y2UxYWI3ZjBjYjQ0ZDRlZDE4
ZThkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvUmVjdXJzaXZlTG9ja0FkYXB0ZXIuaAor
KysgYi9Tb3VyY2UvV1RGL3d0Zi9SZWN1cnNpdmVMb2NrQWRhcHRlci5oCkBAIC04OSw3ICs4OSw3
IEBAIHByaXZhdGU6CiAgICAgTG9ja1R5cGUgbV9sb2NrOwogfTsKIAotdXNpbmcgUmVjdXJzaXZl
TG9jayA9IFJlY3Vyc2l2ZUxvY2tBZGFwdGVyPExvY2s+OwordXNpbmcgUmVjdXJzaXZlTG9jayA9
IFJlY3Vyc2l2ZUxvY2tBZGFwdGVyPFVuY2hlY2tlZExvY2s+OwogCiB9IC8vIG5hbWVzcGFjZSBX
VEYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvV29ya2VyUG9vbC5jcHAgYi9Tb3VyY2Uv
V1RGL3d0Zi9Xb3JrZXJQb29sLmNwcAppbmRleCA4YTljMWZkYTc0YTczYjJjNWFiNWNkYTJkOGU0
NjA5YWJlODBhMzBiLi4yMTlkYmYxNTFkNjYzN2M2N2EzZTQ3NmZkMTNlM2QxYjg4YjQzNTdhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9Xb3JrZXJQb29sLmNwcAorKysgYi9Tb3VyY2UvV1RG
L3d0Zi9Xb3JrZXJQb29sLmNwcApAQCAtMzIsNyArMzIsNyBAQCBjbGFzcyBXb3JrZXJQb29sOjpX
b3JrZXIgZmluYWwgOiBwdWJsaWMgQXV0b21hdGljVGhyZWFkIHsKIHB1YmxpYzoKICAgICBmcmll
bmQgY2xhc3MgV29ya2VyUG9vbDsKIAotICAgIFdvcmtlcihjb25zdCBBYnN0cmFjdExvY2tlciYg
bG9ja2VyLCBXb3JrZXJQb29sJiBwb29sLCBCb3g8TG9jaz4gbG9jaywgUmVmPEF1dG9tYXRpY1Ro
cmVhZENvbmRpdGlvbj4mJiBjb25kaXRpb24sIFNlY29uZHMgdGltZW91dCkKKyAgICBXb3JrZXIo
Y29uc3QgQWJzdHJhY3RMb2NrZXImIGxvY2tlciwgV29ya2VyUG9vbCYgcG9vbCwgQm94PFVuY2hl
Y2tlZExvY2s+IGxvY2ssIFJlZjxBdXRvbWF0aWNUaHJlYWRDb25kaXRpb24+JiYgY29uZGl0aW9u
LCBTZWNvbmRzIHRpbWVvdXQpCiAgICAgICAgIDogQXV0b21hdGljVGhyZWFkKGxvY2tlciwgbG9j
aywgV1RGTW92ZShjb25kaXRpb24pLCB0aW1lb3V0KQogICAgICAgICAsIG1fcG9vbChwb29sKQog
ICAgIHsKQEAgLTgyLDcgKzgyLDcgQEAgcHJpdmF0ZToKIH07CiAKIFdvcmtlclBvb2w6Oldvcmtl
clBvb2woQVNDSUlMaXRlcmFsIG5hbWUsIHVuc2lnbmVkIG51bWJlck9mV29ya2VycywgU2Vjb25k
cyB0aW1lb3V0KQotICAgIDogbV9sb2NrKEJveDxMb2NrPjo6Y3JlYXRlKCkpCisgICAgOiBtX2xv
Y2soQm94PFVuY2hlY2tlZExvY2s+OjpjcmVhdGUoKSkKICAgICAsIG1fY29uZGl0aW9uKEF1dG9t
YXRpY1RocmVhZENvbmRpdGlvbjo6Y3JlYXRlKCkpCiAgICAgLCBtX3RpbWVvdXQodGltZW91dCkK
ICAgICAsIG1fbmFtZShuYW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvV29ya2VyUG9v
bC5oIGIvU291cmNlL1dURi93dGYvV29ya2VyUG9vbC5oCmluZGV4IDYyMzVlNzMxZWQ3NWI4MDEy
NTA5NTM1OTA2OGIwOGQ0YzFkY2ZlYzIuLjdhNDA0MmI0NmIxNjg4MDIzZjFjZWY5ZTY0MmFiMmM0
OGM4ODkzZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1dvcmtlclBvb2wuaAorKysgYi9T
b3VyY2UvV1RGL3d0Zi9Xb3JrZXJQb29sLmgKQEAgLTU3LDcgKzU3LDcgQEAgcHJpdmF0ZToKIAog
ICAgIGJvb2wgc2hvdWxkU2xlZXAoY29uc3QgQWJzdHJhY3RMb2NrZXImKTsKIAotICAgIEJveDxM
b2NrPiBtX2xvY2s7CisgICAgQm94PFVuY2hlY2tlZExvY2s+IG1fbG9jazsKICAgICBSZWY8QXV0
b21hdGljVGhyZWFkQ29uZGl0aW9uPiBtX2NvbmRpdGlvbjsKICAgICBTZWNvbmRzIG1fdGltZW91
dDsKICAgICBNb25vdG9uaWNUaW1lIG1fbGFzdFRpbWVvdXRUaW1lIHsgTW9ub3RvbmljVGltZTo6
bmFuKCkgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvQXRvbVN0cmluZ0ltcGwu
Y3BwIGIvU291cmNlL1dURi93dGYvdGV4dC9BdG9tU3RyaW5nSW1wbC5jcHAKaW5kZXggYTAyOGU0
MmEzNDY0MTk2ZmRhODc0M2Y3MTI3ZDhiNzNiM2QxYzI4Yy4uMDA5ZTJhMThmZmQyYTRhNDc0YTFl
ZGRmNTU4ZjZlY2FiODI3OTM0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvdGV4dC9BdG9t
U3RyaW5nSW1wbC5jcHAKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9BdG9tU3RyaW5nSW1wbC5j
cHAKQEAgLTQ1LDcgKzQ1LDcgQEAgY2xhc3MgQXRvbVN0cmluZ1RhYmxlTG9ja2VyIDogcHVibGlj
IExvY2tIb2xkZXIgewogICAgIHN0YXRpYyBMb2NrIHNfc3RyaW5nVGFibGVMb2NrOwogcHVibGlj
OgogICAgIEF0b21TdHJpbmdUYWJsZUxvY2tlcigpCi0gICAgICAgIDogTG9ja0hvbGRlcigmc19z
dHJpbmdUYWJsZUxvY2spCisgICAgICAgIDogTG9ja0hvbGRlcihzX3N0cmluZ1RhYmxlTG9jaykK
ICAgICB7CiAgICAgfQogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL3NlcnZlci9JREJTZXJ2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvc2VydmVyL0lEQlNlcnZlci5jcHAKaW5kZXggMWVkZWVkMmEzZmE2MjJjNTgyMjRiMDY4
MzBhM2FiNDM0NGMwNDZjYS4uNDlkODc2NjJmY2IzYTVhZTIzZjJhN2FiNTI3ZTY1NTdjMzI2ZWEz
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lE
QlNlcnZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVy
L0lEQlNlcnZlci5jcHAKQEAgLTczMyw3ICs3MzMsNyBAQCB2b2lkIElEQlNlcnZlcjo6cmVuYW1l
T3JpZ2luKGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgb2xkT3JpZ2luLCBjb25z
dAogICAgICAgICBGaWxlU3lzdGVtOjptb3ZlRmlsZShvbGRPcmlnaW5QYXRoLCBuZXdPcmlnaW5Q
YXRoKTsKIH0KIAotU3RvcmFnZVF1b3RhTWFuYWdlcjo6RGVjaXNpb24gSURCU2VydmVyOjpyZXF1
ZXN0U3BhY2UoY29uc3QgQ2xpZW50T3JpZ2luJiBvcmlnaW4sIHVpbnQ2NF90IHRhc2tTaXplKQor
U3RvcmFnZVF1b3RhTWFuYWdlcjo6RGVjaXNpb24gSURCU2VydmVyOjpyZXF1ZXN0U3BhY2UoY29u
c3QgQ2xpZW50T3JpZ2luJiBvcmlnaW4sIHVpbnQ2NF90IHRhc2tTaXplKSBXVEZfSUdOT1JFU19U
SFJFQURfU0FGRVRZX0FOQUxZU0lTCiB7CiAgICAgQVNTRVJUKCFpc01haW5UaHJlYWQoKSk7CiAg
ICAgQVNTRVJUKG1fbG9jay5pc0hlbGQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1ZGlvL01lZGlhRWxlbWVudEF1ZGlvU291cmNlTm9kZS5oIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdWRpby9NZWRpYUVsZW1lbnRBdWRpb1NvdXJjZU5vZGUuaAppbmRl
eCA3NDM5YTZkYjI4MmZiYjk0ZjQxMWU0NzE1YWRhMTU5OGNiMDRiYzM0Li4wNmZlNTFkOTQ0ZDBi
OGU5YzhkYjYxNDY3ZDFhMTg2YzVkZGY0MTRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1ZGlvL01lZGlhRWxlbWVudEF1ZGlvU291cmNlTm9kZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vTWVkaWFFbGVtZW50QXVkaW9Tb3VyY2VOb2RlLmgK
QEAgLTU0LDcgKzU0LDcgQEAgcHVibGljOgogICAgIC8vIEF1ZGlvU291cmNlUHJvdmlkZXJDbGll
bnQKICAgICB2b2lkIHNldEZvcm1hdChzaXplX3QgbnVtYmVyT2ZDaGFubmVscywgZmxvYXQgc2Ft
cGxlUmF0ZSkgb3ZlcnJpZGU7CiAKLSAgICBMb2NrJiBwcm9jZXNzTG9jaygpIHsgcmV0dXJuIG1f
cHJvY2Vzc0xvY2s7IH0KKyAgICBVbmNoZWNrZWRMb2NrJiBwcm9jZXNzTG9jaygpIHsgcmV0dXJu
IG1fcHJvY2Vzc0xvY2s7IH0KIAogcHJpdmF0ZToKICAgICBNZWRpYUVsZW1lbnRBdWRpb1NvdXJj
ZU5vZGUoQmFzZUF1ZGlvQ29udGV4dCYsIFJlZjxIVE1MTWVkaWFFbGVtZW50PiYmKTsKQEAgLTcw
LDcgKzcwLDcgQEAgcHJpdmF0ZToKICAgICBib29sIHdvdWxkVGFpbnRPcmlnaW4oKTsKIAogICAg
IFJlZjxIVE1MTWVkaWFFbGVtZW50PiBtX21lZGlhRWxlbWVudDsKLSAgICBMb2NrIG1fcHJvY2Vz
c0xvY2s7CisgICAgVW5jaGVja2VkTG9jayBtX3Byb2Nlc3NMb2NrOwogCiAgICAgdW5zaWduZWQg
bV9zb3VyY2VOdW1iZXJPZkNoYW5uZWxzIHsgMCB9OwogICAgIGRvdWJsZSBtX3NvdXJjZVNhbXBs
ZVJhdGUgeyAwIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFi
YXNlL0RhdGFiYXNlVHJhY2tlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFi
YXNlL0RhdGFiYXNlVHJhY2tlci5jcHAKaW5kZXggNDViMjdmOWQzNTE5YzExOTkyNDc2NmVjNGMy
N2U0MDEzNDI5MjA0OS4uYTlmMjgwYjljNTlmNDhiZGIyOGRhNzMwMTUzNzY0M2U5NGRkNjU2MCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRy
YWNrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJh
c2VUcmFja2VyLmNwcApAQCAtMTI4NSw4ICsxMjg1LDggQEAgYm9vbCBEYXRhYmFzZVRyYWNrZXI6
OmRlbGV0ZURhdGFiYXNlRmlsZUlmRW1wdHkoY29uc3QgU3RyaW5nJiBwYXRoKQogICAgIHJldHVy
biBTUUxpdGVGaWxlU3lzdGVtOjpkZWxldGVEYXRhYmFzZUZpbGUocGF0aCk7CiB9CiAKLXN0YXRp
YyBMb2NrIG9wZW5EYXRhYmFzZUxvY2s7Ci1Mb2NrJiBEYXRhYmFzZVRyYWNrZXI6Om9wZW5EYXRh
YmFzZU11dGV4KCkKK3N0YXRpYyBVbmNoZWNrZWRMb2NrIG9wZW5EYXRhYmFzZUxvY2s7CitVbmNo
ZWNrZWRMb2NrJiBEYXRhYmFzZVRyYWNrZXI6Om9wZW5EYXRhYmFzZU11dGV4KCkKIHsKICAgICBy
ZXR1cm4gb3BlbkRhdGFiYXNlTG9jazsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VUcmFja2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlVHJhY2tlci5oCmluZGV4IGRkOWM1ZDg3NzZiZDFkYzM4
OTY2ZTc1ZjU0ZjEzMWFkZDc2NjhiMzQuLmJkY2Y2ZDA3ZGQ4YTMzNjVkYzRhZmViOTQzZmNiOGI1
YWNlOTRmNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2Uv
RGF0YWJhc2VUcmFja2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFz
ZS9EYXRhYmFzZVRyYWNrZXIuaApAQCAtMTA0LDcgKzEwNCw3IEBAIHB1YmxpYzoKICAgICAvLyBN
b2JpbGVTYWZhcmkgd2lsbCBncmFiIHRoaXMgbXV0ZXggb24gdGhlIG1haW4gdGhyZWFkIGJlZm9y
ZSBkaXNwYXRjaGluZyB0aGUgdGFzayB0byAKICAgICAvLyBjbGVhbiB1cCB6ZXJvIGJ5dGUgZGF0
YWJhc2UgZmlsZXMuICBBbnkgb3BlcmF0aW9ucyB0byBvcGVuIG5ldyBkYXRhYmFzZSB3aWxsIGhh
dmUgdG8KICAgICAvLyB3YWl0IGZvciB0aGF0IHRhc2sgdG8gZmluaXNoIGJ5IHdhaXRpbmcgb24g
dGhpcyBtdXRleC4KLSAgICBzdGF0aWMgTG9jayYgb3BlbkRhdGFiYXNlTXV0ZXgoKTsKKyAgICBz
dGF0aWMgVW5jaGVja2VkTG9jayYgb3BlbkRhdGFiYXNlTXV0ZXgoKTsKICAgICAKICAgICBXRUJD
T1JFX0VYUE9SVCBzdGF0aWMgdm9pZCBlbXB0eURhdGFiYXNlRmlsZXNSZW1vdmFsVGFza1dpbGxC
ZVNjaGVkdWxlZCgpOwogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyB2b2lkIGVtcHR5RGF0YWJh
c2VGaWxlc1JlbW92YWxUYXNrRGlkRmluaXNoKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL09yaWdpbkxvY2suY3BwIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJkYXRhYmFzZS9PcmlnaW5Mb2NrLmNwcAppbmRleCBhMjFiY2RiNzgzODZjODEwZWM1
OTk0MWMyNzVmNGVmYmFmZjIzZmIzLi43NTNlNGU1YWM4NjYyODNhNGM3M2Y0NGFmOWFhNGVjZGY1
ZDE1YWVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL09y
aWdpbkxvY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvT3Jp
Z2luTG9jay5jcHAKQEAgLTQzLDcgKzQzLDcgQEAgT3JpZ2luTG9jazo6T3JpZ2luTG9jayhTdHJp
bmcgb3JpZ2luUGF0aCkKIAogT3JpZ2luTG9jazo6fk9yaWdpbkxvY2soKSA9IGRlZmF1bHQ7CiAK
LXZvaWQgT3JpZ2luTG9jazo6bG9jaygpCit2b2lkIE9yaWdpbkxvY2s6OmxvY2soKSBXVEZfSUdO
T1JFU19USFJFQURfU0FGRVRZX0FOQUxZU0lTCiB7CiAgICAgbV9tdXRleC5sb2NrKCk7CiAKQEAg
LTU5LDcgKzU5LDcgQEAgdm9pZCBPcmlnaW5Mb2NrOjpsb2NrKCkKICNlbmRpZgogfQogCi12b2lk
IE9yaWdpbkxvY2s6OnVubG9jaygpCit2b2lkIE9yaWdpbkxvY2s6OnVubG9jaygpIFdURl9JR05P
UkVTX1RIUkVBRF9TQUZFVFlfQU5BTFlTSVMKIHsKICNpZiBVU0UoRklMRV9MT0NLKQogICAgIC8v
IElmIHRoZSBmaWxlIGRlc2NyaXB0b3Igd2FzIHVuaW5pdGlhbGl6ZWQsIHRoZW4gdGhhdCBtZWFu
cyB0aGUgZGlyZWN0b3J5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0RPTUdsb2JhbE9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01HbG9i
YWxPYmplY3QuaAppbmRleCAxNjRjNzIzODY0NmEwMGEzZDA1ZWExYmE0MWM5NzA2MDU1ZDQxNGU0
Li45NTZkNTFhZDQ4MGQ0ZGQyYzBhODkzOGRlYWY0NGRhYWJhYTc1NmRmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9iamVjdC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0LmgKQEAgLTU4LDcgKzU4LDcg
QEAgcHVibGljOgogICAgIHN0YXRpYyB2b2lkIGRlc3Ryb3koSlNDOjpKU0NlbGwqKTsKIAogcHVi
bGljOgotICAgIExvY2smIGdjTG9jaygpIHsgcmV0dXJuIG1fZ2NMb2NrOyB9CisgICAgVW5jaGVj
a2VkTG9jayYgZ2NMb2NrKCkgeyByZXR1cm4gbV9nY0xvY2s7IH0KIAogICAgIEpTRE9NU3RydWN0
dXJlTWFwJiBzdHJ1Y3R1cmVzKGNvbnN0IEFic3RyYWN0TG9ja2VyJikgeyByZXR1cm4gbV9zdHJ1
Y3R1cmVzOyB9CiAgICAgSlNET01Db25zdHJ1Y3Rvck1hcCYgY29uc3RydWN0b3JzKGNvbnN0IEFi
c3RyYWN0TG9ja2VyJikgeyByZXR1cm4gbV9jb25zdHJ1Y3RvcnM7IH0KQEAgLTEyMSw3ICsxMjEs
NyBAQCBwcm90ZWN0ZWQ6CiAKICAgICBSZWY8RE9NV3JhcHBlcldvcmxkPiBtX3dvcmxkOwogICAg
IHVpbnQ4X3QgbV93b3JsZElzTm9ybWFsOwotICAgIExvY2sgbV9nY0xvY2s7CisgICAgVW5jaGVj
a2VkTG9jayBtX2djTG9jazsKICAgICBKU0M6OldyaXRlQmFycmllcjxKU0M6OkpTUHJveHk+IG1f
cHJveHk7CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKaW5kZXggN2VhZTNhMTFhZWNmYjJhYWQ5
OWZmMTkyYjQ1ODdkOTY3NWNmZGZiNy4uYTJlNWNhM2YxMjE2ODM4MDk4MzI0MGZmYmExZTRmZGE3
MDMyNWY0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcApAQCAtMjIxMSw3ICsyMjExLDcgQEAgc3RhdGljIEV2
ZW50VGFyZ2V0RGF0YU1hcCYgZXZlbnRUYXJnZXREYXRhTWFwKCkKICAgICByZXR1cm4gbWFwOwog
fQogCi1zdGF0aWMgTG9jayBzX2V2ZW50VGFyZ2V0RGF0YU1hcExvY2s7CitzdGF0aWMgVW5jaGVj
a2VkTG9jayBzX2V2ZW50VGFyZ2V0RGF0YU1hcExvY2s7CiAKIEV2ZW50VGFyZ2V0RGF0YSogTm9k
ZTo6ZXZlbnRUYXJnZXREYXRhKCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTE1lZGlhRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1l
bnQuY3BwCmluZGV4IDliZDQwMDEwYzM1YWEwZTk3YjZlMWRhZTQ4YjNlMTBkNGQ5NWQ2N2YuLjFi
Y2RjYTFhNzJjODAwMTVjNDQ4MDJmYWFmNDU2YTQ2ZDg0ZTNjNWMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcApAQCAtNjYyNiw3ICs2NjI2LDcgQEAgdm9pZCBIVE1M
TWVkaWFFbGVtZW50OjpjcmVhdGVNZWRpYVBsYXllcigpCiAKICNpZiBFTkFCTEUoV0VCX0FVRElP
KQogICAgIGF1dG8gcHJvdGVjdGVkQXVkaW9Tb3VyY2VOb2RlID0gbWFrZVJlZlB0cihtX2F1ZGlv
U291cmNlTm9kZSk7Ci0gICAgTG9ja2VyPExvY2s+IGF1ZGlvU291cmNlTm9kZUxvY2tlcihtX2F1
ZGlvU291cmNlTm9kZSA/ICZtX2F1ZGlvU291cmNlTm9kZS0+cHJvY2Vzc0xvY2soKSA6IG51bGxw
dHIpOworICAgIExvY2tlciBhdWRpb1NvdXJjZU5vZGVMb2NrZXIobV9hdWRpb1NvdXJjZU5vZGUg
PyAmbV9hdWRpb1NvdXJjZU5vZGUtPnByb2Nlc3NMb2NrKCkgOiBudWxscHRyKTsKICNlbmRpZgog
CiAjaWYgRU5BQkxFKE1FRElBX1NPVVJDRSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL1dlYkdMQ29udGV4dEdyb3VwLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2Fu
dmFzL1dlYkdMQ29udGV4dEdyb3VwLmNwcAppbmRleCBhYmQ4ZjI3MzY4MzkxZTNlMWQ3ZmNmOWQz
N2I5ZDc3OTZhZjMzNjFiLi4xNGMyYTA4OTk3ZDkwMWRhMTQwYTRiMDM3ODQ4ZTc0MTQ0M2Y2NTI1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTENvbnRleHRHcm91
cC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xDb250ZXh0R3JvdXAu
Y3BwCkBAIC01NSw3ICs1NSw3IEBAIEdyYXBoaWNzQ29udGV4dEdMJiBXZWJHTENvbnRleHRHcm91
cDo6Z2V0QUdyYXBoaWNzQ29udGV4dEdMKCkKICAgICByZXR1cm4gKigqbV9jb250ZXh0cy5iZWdp
bigpKS0+Z3JhcGhpY3NDb250ZXh0R0woKTsKIH0KIAotV1RGOjpMb2NrJiBXZWJHTENvbnRleHRH
cm91cDo6b2JqZWN0R3JhcGhMb2NrRm9yQUNvbnRleHQoKQorVW5jaGVja2VkTG9jayYgV2ViR0xD
b250ZXh0R3JvdXA6Om9iamVjdEdyYXBoTG9ja0ZvckFDb250ZXh0KCkKIHsKICAgICBBU1NFUlQo
IW1fY29udGV4dHMuaXNFbXB0eSgpKTsKICAgICAvLyBTaW5jZSB0aGUgV0VCR0xfc2hhcmVkX29i
amVjdHMgZXh0ZW5zaW9uIG5ldmVyIHNoaXBwZWQsIGFuZCBpcwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xDb250ZXh0R3JvdXAuaCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL1dlYkdMQ29udGV4dEdyb3VwLmgKaW5kZXggODU1Y2U3MjM5ODZmZTA3NzU5
OGYyNDY4MWFlODA4NmM4MWVkZmEwMy4uYjZhZmUwYWY5N2ViZGZmYWMxYTFjZDAwNDNmZmJmNzlj
Y2QxNzc4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xDb250
ZXh0R3JvdXAuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTENvbnRleHRH
cm91cC5oCkBAIC00NSw3ICs0NSw3IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgaGFzQUNvbnRleHQo
KSBjb25zdDsKICAgICBHcmFwaGljc0NvbnRleHRHTCYgZ2V0QUdyYXBoaWNzQ29udGV4dEdMKCk7
Ci0gICAgTG9jayYgb2JqZWN0R3JhcGhMb2NrRm9yQUNvbnRleHQoKTsKKyAgICBVbmNoZWNrZWRM
b2NrJiBvYmplY3RHcmFwaExvY2tGb3JBQ29udGV4dCgpOwogCiAgICAgdm9pZCBsb3NlQ29udGV4
dEdyb3VwKFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6Okxvc3RDb250ZXh0TW9kZSk7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMQ29udGV4dE9iamVjdC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTENvbnRleHRPYmplY3QuY3BwCmlu
ZGV4IDdjOTE5ZjJiNjY1NmI2N2IxNmNhNjM0MGIwYjJhNGI2NDVkMDQ2M2IuLjI0MzU0ZDA1Yjgx
YmM4NTIyYmU3N2QzYmI4ZjRjY2U0N2ViMzYzZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL1dlYkdMQ29udGV4dE9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvV2ViR0xDb250ZXh0T2JqZWN0LmNwcApAQCAtNTQsNyArNTQsNyBAQCB2b2lk
IFdlYkdMQ29udGV4dE9iamVjdDo6ZGV0YWNoQ29udGV4dChjb25zdCBBYnN0cmFjdExvY2tlciYg
bG9ja2VyKQogICAgIH0KIH0KIAotV1RGOjpMb2NrJiBXZWJHTENvbnRleHRPYmplY3Q6Om9iamVj
dEdyYXBoTG9ja0ZvckNvbnRleHQoKQorVW5jaGVja2VkTG9jayYgV2ViR0xDb250ZXh0T2JqZWN0
OjpvYmplY3RHcmFwaExvY2tGb3JDb250ZXh0KCkKIHsKICAgICAvLyBTaG91bGQgbm90IGNhbGwg
dGhpcyBpZiB0aGUgb2JqZWN0IG9yIGNvbnRleHQgaGFzIGJlZW4gZGVsZXRlZC4KICAgICBBU1NF
UlQobV9jb250ZXh0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dl
YkdMQ29udGV4dE9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xDb250
ZXh0T2JqZWN0LmgKaW5kZXggZGJmZGQ2YmZjMGVmNDRlYjg4MmViOWM1OWIwMDhkMjk4MTEyNjQ5
NS4uMGVhNzk5ZmZiYjNhOGFhZTAxMTNkOWE1NWNlM2U2M2JiYTJjOGVhZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xDb250ZXh0T2JqZWN0LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xDb250ZXh0T2JqZWN0LmgKQEAgLTQ5LDcgKzQ5
LDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBkZXRhY2hDb250ZXh0KGNvbnN0IFdURjo6QWJzdHJh
Y3RMb2NrZXImKTsKIAotICAgIFdURjo6TG9jayYgb2JqZWN0R3JhcGhMb2NrRm9yQ29udGV4dCgp
IG92ZXJyaWRlOworICAgIFVuY2hlY2tlZExvY2smIG9iamVjdEdyYXBoTG9ja0ZvckNvbnRleHQo
KSBvdmVycmlkZTsKIAogcHJvdGVjdGVkOgogICAgIFdlYkdMQ29udGV4dE9iamVjdChXZWJHTFJl
bmRlcmluZ0NvbnRleHRCYXNlJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2Nh
bnZhcy9XZWJHTE9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xPYmpl
Y3QuaAppbmRleCAwMGNkOGYwYzJiN2IyMWJiZjk3MmFmYTdjZmM1ZWU4NWUzZTA2MGRkLi44YWYy
ZWRhNDAwZTRmOGVjNDViZjdlNDJhMmZhYmFiYmQ4YjBjYmIyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTE9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL1dlYkdMT2JqZWN0LmgKQEAgLTcxLDcgKzcxLDcgQEAgcHVibGljOgogICAgIC8v
IFdFQkdMX3NoYXJlZF9vYmplY3RzIGV4dGVuc2lvbiBzcGVjaWZpY2F0aW9uIG5ldmVyIHNoaXBw
ZWQgKGFuZAogICAgIC8vIGlzIHVubGlrZWx5IHRvKSwgdGhpcyBiYXNpY2FsbHkgcmV0dXJucyB0
aGUgc2FtZSByZXN1bHQgZm9yCiAgICAgLy8gYm90aCBjb250ZXh0IG9iamVjdHMgYW5kIHNoYXJl
ZCBvYmplY3RzLgotICAgIHZpcnR1YWwgV1RGOjpMb2NrJiBvYmplY3RHcmFwaExvY2tGb3JDb250
ZXh0KCkgPSAwOworICAgIHZpcnR1YWwgVW5jaGVja2VkTG9jayYgb2JqZWN0R3JhcGhMb2NrRm9y
Q29udGV4dCgpID0gMDsKIAogcHJvdGVjdGVkOgogICAgIFdlYkdMT2JqZWN0KCkgPSBkZWZhdWx0
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdD
b250ZXh0QmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmlu
Z0NvbnRleHRCYXNlLmNwcAppbmRleCA1MTU1NDg4ZDdlZDFkYTk1MGQ1YWY2NzhkNDZkMjM0MGI4
YmE5Y2VlLi4zOWMzMmU4NDQ5YTZiOGQ0MGZhYmFmMDRmZTkwNmMwYzU0MjBiMGM1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRl
eHRCYXNlLmNwcApAQCAtNzk5MCw3ICs3OTkwLDcgQEAgdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRl
eHRCYXNlOjphZGRNZW1iZXJzVG9PcGFxdWVSb290cyhKU0M6OkFic3RyYWN0U2xvdFZpc2l0b3IK
ICAgICAvLyByb290cyBmb3IgZXh0ZW5zaW9ucy4KIH0KIAotTG9jayYgV2ViR0xSZW5kZXJpbmdD
b250ZXh0QmFzZTo6b2JqZWN0R3JhcGhMb2NrKCkKK1VuY2hlY2tlZExvY2smIFdlYkdMUmVuZGVy
aW5nQ29udGV4dEJhc2U6Om9iamVjdEdyYXBoTG9jaygpCiB7CiAgICAgcmV0dXJuIG1fb2JqZWN0
R3JhcGhMb2NrOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2Vi
R0xSZW5kZXJpbmdDb250ZXh0QmFzZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2Vi
R0xSZW5kZXJpbmdDb250ZXh0QmFzZS5oCmluZGV4IGZhZThhNTM5ZWM4OTE0MzkyOWVhYjQ2ZmNh
MzNjMzEyNmEzYzE2OWYuLmQ3Y2JlZWQzMmNiYzBiNzk3YzEwNjhmZDU5N2QxM2VkOGU0YzE5NzMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29u
dGV4dEJhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmlu
Z0NvbnRleHRCYXNlLmgKQEAgLTQyNiw3ICs0MjYsNyBAQCBwdWJsaWM6CiAgICAgLy8gY3VycmVu
dGx5IGxhdGNoZWQgaW50byB0aGUgY29udGV4dCAtIHdpdGhvdXQgdHJhdmVyc2luZyBhbGwgb2YK
ICAgICAvLyB0aGUgbGF0Y2hlZCBvYmplY3RzIHRvIGZpbmQgdGhlIGN1cnJlbnQgb25lLCB3aGlj
aCB3b3VsZCBiZQogICAgIC8vIHByb2hpYml0aXZlbHkgZXhwZW5zaXZlLgotICAgIExvY2smIG9i
amVjdEdyYXBoTG9jaygpOworICAgIFVuY2hlY2tlZExvY2smIG9iamVjdEdyYXBoTG9jaygpOwog
CiBwcm90ZWN0ZWQ6CiAgICAgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZShDYW52YXNCYXNlJiwg
V2ViR0xDb250ZXh0QXR0cmlidXRlcyk7CkBAIC01NDAsNyArNTQwLDcgQEAgcHJvdGVjdGVkOgog
CiAgICAgUmVmUHRyPEdyYXBoaWNzQ29udGV4dEdMPiBtX2NvbnRleHQ7CiAgICAgUmVmUHRyPFdl
YkdMQ29udGV4dEdyb3VwPiBtX2NvbnRleHRHcm91cDsKLSAgICBMb2NrIG1fb2JqZWN0R3JhcGhM
b2NrOworICAgIFVuY2hlY2tlZExvY2sgbV9vYmplY3RHcmFwaExvY2s7CiAKICAgICBib29sIG1f
cmVzdG9yZUFsbG93ZWQgeyBmYWxzZSB9OwogICAgIFN1c3BlbmRhYmxlVGltZXIgbV9yZXN0b3Jl
VGltZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFNoYXJl
ZE9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFNoYXJlZE9iamVj
dC5jcHAKaW5kZXggOTM2Yzk4MWM5OTI5MGQ4ZTdjZWY5OGIxM2I1NjkzY2JlYjIzNzk4Yy4uMGFi
OGNiMjQxYTFiM2YzODhmZWYzODI5OTc2Y2VjZjZkNDg3ZDM3OCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xTaGFyZWRPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMU2hhcmVkT2JqZWN0LmNwcApAQCAtODIsNyArODIsNyBA
QCBHcmFwaGljc0NvbnRleHRHTCogV2ViR0xTaGFyZWRPYmplY3Q6OmdldEFHcmFwaGljc0NvbnRl
eHRHTCgpIGNvbnN0CiAgICAgcmV0dXJuIG1fY29udGV4dEdyb3VwID8gJm1fY29udGV4dEdyb3Vw
LT5nZXRBR3JhcGhpY3NDb250ZXh0R0woKSA6IG51bGxwdHI7CiB9CiAKLVdURjo6TG9jayYgV2Vi
R0xTaGFyZWRPYmplY3Q6Om9iamVjdEdyYXBoTG9ja0ZvckNvbnRleHQoKQorVW5jaGVja2VkTG9j
ayYgV2ViR0xTaGFyZWRPYmplY3Q6Om9iamVjdEdyYXBoTG9ja0ZvckNvbnRleHQoKQogewogICAg
IC8vIFNob3VsZCBub3QgY2FsbCB0aGlzIGlmIHRoZSBvYmplY3Qgb3IgY29udGV4dCBoYXMgYmVl
biBkZWxldGVkLgogICAgIEFTU0VSVChtX2NvbnRleHRHcm91cCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFNoYXJlZE9iamVjdC5oIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9jYW52YXMvV2ViR0xTaGFyZWRPYmplY3QuaAppbmRleCA1ZDEzYWZhMzg0NmFhMjE1
MzBjMGFiZDUzOTBhYTFlNzk4ZTllMWQwLi5mNTNkYjE5YjA2OTIyOTA2YmRjY2IxNmMzOTM3Mzg2
MTVmMTc2NTc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFNo
YXJlZE9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMU2hhcmVk
T2JqZWN0LmgKQEAgLTU5LDcgKzU5LDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBkZXRhY2hDb250
ZXh0R3JvdXBXaXRob3V0RGVsZXRpbmdPYmplY3QoKTsKIAotICAgIFdURjo6TG9jayYgb2JqZWN0
R3JhcGhMb2NrRm9yQ29udGV4dCgpIG92ZXJyaWRlOworICAgIFVuY2hlY2tlZExvY2smIG9iamVj
dEdyYXBoTG9ja0ZvckNvbnRleHQoKSBvdmVycmlkZTsKIAogcHJvdGVjdGVkOgogICAgIFdlYkdM
U2hhcmVkT2JqZWN0KFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlTWFjLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZU1hYy5oCmluZGV4IGI0
MmJmNDExNDU0ZmEwMzRhN2RhYTg2YzMxNTNhYTFkNjZhOTgzY2UuLjg4ZGFkMWVkZDFiOTA1MjBk
MWYwY2I2Yjc3MDZmZWQwMjI0MDY3YWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
c2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlTWFjLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVNYWMuaApAQCAtNTUsOCArNTUsOCBAQCBwcml2
YXRlOgogICAgIHZvaWQgZGVmZXJXaGVlbEV2ZW50VGVzdENvbXBsZXRpb25Gb3JSZWFzb24oV2hl
ZWxFdmVudFRlc3RNb25pdG9yOjpTY3JvbGxhYmxlQXJlYUlkZW50aWZpZXIsIFdoZWVsRXZlbnRU
ZXN0TW9uaXRvcjo6RGVmZXJSZWFzb24pIGZpbmFsOwogICAgIHZvaWQgcmVtb3ZlV2hlZWxFdmVu
dFRlc3RDb21wbGV0aW9uRGVmZXJyYWxGb3JSZWFzb24oV2hlZWxFdmVudFRlc3RNb25pdG9yOjpT
Y3JvbGxhYmxlQXJlYUlkZW50aWZpZXIsIFdoZWVsRXZlbnRUZXN0TW9uaXRvcjo6RGVmZXJSZWFz
b24pIGZpbmFsOwogCi0gICAgdm9pZCBsb2NrTGF5ZXJzRm9ySGl0VGVzdGluZygpIGZpbmFsOwot
ICAgIHZvaWQgdW5sb2NrTGF5ZXJzRm9ySGl0VGVzdGluZygpIGZpbmFsOworICAgIHZvaWQgbG9j
a0xheWVyc0ZvckhpdFRlc3RpbmcoKSBmaW5hbCBXVEZfQUNRVUlSRVNfTE9DSyhtX2xheWVySGl0
VGVzdE11dGV4KTsKKyAgICB2b2lkIHVubG9ja0xheWVyc0ZvckhpdFRlc3RpbmcoKSBmaW5hbCBX
VEZfUkVMRUFTRVNfTE9DSyhtX2xheWVySGl0VGVzdE11dGV4KTsKIAogICAgIC8vIFRoaXMgbG9j
ayBwcm90ZWN0cyB0aGUgQ0FMYXllci9QbGF0Zm9ybUNBTGF5ZXIgdHJlZS4KICAgICBtdXRhYmxl
IExvY2sgbV9sYXllckhpdFRlc3RNdXRleDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2F1ZGlvL1JldmVyYkNvbnZvbHZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9hdWRpby9SZXZlcmJDb252b2x2ZXIuY3BwCmluZGV4IGMyNWNhZjBkOWJjNDY5NWM0ODBkZGNj
OTg0ZmY5MTdlZjUyM2MwZjYuLjYzNWE4Zjc3YjMxNDIwZGMwNWVmZjQ1ZjVmNTg1ODg4ZmJhYmZj
OTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1JldmVyYkNvbnZv
bHZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vUmV2ZXJiQ29udm9s
dmVyLmNwcApAQCAtMTQ4LDkgKzE0OCw5IEBAIHZvaWQgUmV2ZXJiQ29udm9sdmVyOjpiYWNrZ3Jv
dW5kVGhyZWFkRW50cnkoKQogICAgICAgICAvLyBXYWl0IGZvciByZWFsdGltZSB0aHJlYWQgdG8g
Z2l2ZSB1cyBtb3JlIGlucHV0CiAgICAgICAgIG1fbW9yZUlucHV0QnVmZmVyZWQgPSBmYWxzZTsg
ICAgICAgIAogICAgICAgICB7Ci0gICAgICAgICAgICBzdGQ6OnVuaXF1ZV9sb2NrPExvY2s+IGxv
Y2sobV9iYWNrZ3JvdW5kVGhyZWFkTG9jayk7CisgICAgICAgICAgICBMb2NrZXIgbG9ja2VyIHsg
bV9iYWNrZ3JvdW5kVGhyZWFkTG9jayB9OwogCi0gICAgICAgICAgICBtX2JhY2tncm91bmRUaHJl
YWRDb25kaXRpb25WYXJpYWJsZS53YWl0KGxvY2ssIFt0aGlzXSB7IHJldHVybiBtX21vcmVJbnB1
dEJ1ZmZlcmVkIHx8IG1fd2FudHNUb0V4aXQ7IH0pOworICAgICAgICAgICAgbV9iYWNrZ3JvdW5k
VGhyZWFkQ29uZGl0aW9uVmFyaWFibGUud2FpdChtX2JhY2tncm91bmRUaHJlYWRMb2NrLCBbdGhp
c10geyByZXR1cm4gbV9tb3JlSW5wdXRCdWZmZXJlZCB8fCBtX3dhbnRzVG9FeGl0OyB9KTsKICAg
ICAgICAgfQogCiAgICAgICAgIC8vIFByb2Nlc3MgYWxsIG9mIHRoZSBzdGFnZXMgdW50aWwgdGhl
aXIgcmVhZCBpbmRpY2VzIHJlYWNoIHRoZSBpbnB1dCBidWZmZXIncyB3cml0ZSBpbmRleApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvU2hhZG93Qmx1ci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9TaGFkb3dCbHVyLmNwcAppbmRleCBh
M2IwNTVkMzgzNTYyZmY0YTA2NzhhMjg1Y2JiYmE3MzRiODZmNjkzLi4xZGY4MjA0MGRmMTE1ZWNh
YzU5NmMyMzFjZjJmZDFlYjdiOGExMjA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9TaGFkb3dCbHVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9TaGFkb3dCbHVyLmNwcApAQCAtMTIyLDcgKzEyMiw3IEBAIHB1YmxpYzoKICAg
ICB9CiAKICAgICBzdGF0aWMgU2NyYXRjaEJ1ZmZlciYgc2luZ2xldG9uKCk7Ci0gICAgc3RhdGlj
IExvY2smIGxvY2soKTsKKyAgICBzdGF0aWMgVW5jaGVja2VkTG9jayYgbG9jaygpOwogCiBwcml2
YXRlOgogICAgIHZvaWQgc2NoZWR1bGVTY3JhdGNoQnVmZmVyUHVyZ2UoKQpAQCAtMTY4LDkgKzE2
OCw5IEBAIFNjcmF0Y2hCdWZmZXImIFNjcmF0Y2hCdWZmZXI6OnNpbmdsZXRvbigpCiAgICAgcmV0
dXJuIHNjcmF0Y2hCdWZmZXI7CiB9CiAKLUxvY2smIFNjcmF0Y2hCdWZmZXI6OmxvY2soKQorVW5j
aGVja2VkTG9jayYgU2NyYXRjaEJ1ZmZlcjo6bG9jaygpCiB7Ci0gICAgc3RhdGljIExvY2sgbG9j
azsKKyAgICBzdGF0aWMgVW5jaGVja2VkTG9jayBsb2NrOwogICAgIHJldHVybiBsb2NrOwogfQog
CkBAIC02OTYsNyArNjk2LDcgQEAgdm9pZCBTaGFkb3dCbHVyOjpkcmF3UmVjdFNoYWRvd1dpdGhU
aWxpbmcoY29uc3QgQWZmaW5lVHJhbnNmb3JtJiB0cmFuc2Zvcm0sIGNvbnMKIHsKICAgICBSZWZQ
dHI8SW1hZ2VCdWZmZXI+IGxheWVySW1hZ2VCdWZmZXI7CiAjaWYgVVNFKENHKQotICAgIGF1dG8g
bG9ja2VyID0gTG9ja2VyPExvY2s+Ojp0cnlMb2NrKFNjcmF0Y2hCdWZmZXI6OmxvY2soKSk7Cisg
ICAgYXV0byBsb2NrZXIgPSBMb2NrZXI8VW5jaGVja2VkTG9jaz46OnRyeUxvY2soU2NyYXRjaEJ1
ZmZlcjo6bG9jaygpKTsKICAgICBpZiAobG9ja2VyKSB7CiAgICAgICAgIGxheWVySW1hZ2VCdWZm
ZXIgPSBTY3JhdGNoQnVmZmVyOjpzaW5nbGV0b24oKS5nZXRTY3JhdGNoQnVmZmVyKHRlbXBsYXRl
U2l6ZSk7CiAgICAgICAgIGlmICghbGF5ZXJJbWFnZUJ1ZmZlcikKQEAgLTc1Niw3ICs3NTYsNyBA
QCB2b2lkIFNoYWRvd0JsdXI6OmRyYXdJbnNldFNoYWRvd1dpdGhUaWxpbmcoY29uc3QgQWZmaW5l
VHJhbnNmb3JtJiB0cmFuc2Zvcm0sIGNvbgogewogICAgIFJlZlB0cjxJbWFnZUJ1ZmZlcj4gbGF5
ZXJJbWFnZUJ1ZmZlcjsKICNpZiBVU0UoQ0cpCi0gICAgYXV0byBsb2NrZXIgPSBMb2NrZXI8TG9j
az46OnRyeUxvY2soU2NyYXRjaEJ1ZmZlcjo6bG9jaygpKTsKKyAgICBhdXRvIGxvY2tlciA9IExv
Y2tlcjxVbmNoZWNrZWRMb2NrPjo6dHJ5TG9jayhTY3JhdGNoQnVmZmVyOjpsb2NrKCkpOwogICAg
IGlmIChsb2NrZXIpIHsKICAgICAgICAgbGF5ZXJJbWFnZUJ1ZmZlciA9IFNjcmF0Y2hCdWZmZXI6
OnNpbmdsZXRvbigpLmdldFNjcmF0Y2hCdWZmZXIodGVtcGxhdGVTaXplKTsKICAgICAgICAgaWYg
KCFsYXllckltYWdlQnVmZmVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL1ZpZGVvU2lua0dTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVmlkZW9TaW5rR1N0cmVhbWVyLmNwcAppbmRl
eCAxMWJlYTEyYjY2ZGM1NDYyNWE4MjlmOTA3NGE5MmMwMzc0Y2UyODk1Li41N2E3MmFjNTgwY2Vj
ZjE2YTBlM2FiODBmY2YzOWUzOTVmZDA4OGFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVmlkZW9TaW5rR1N0cmVhbWVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVmlkZW9TaW5rR1N0cmVh
bWVyLmNwcApAQCAtMTA3LDcgKzEwNyw3IEBAIHB1YmxpYzoKICAgICB9CiAKIHByaXZhdGU6Ci0g
ICAgTG9jayBtX3NhbXBsZU11dGV4OworICAgIFVuY2hlY2tlZExvY2sgbV9zYW1wbGVNdXRleDsK
ICAgICBHUmVmUHRyPEdzdFNhbXBsZT4gbV9zYW1wbGU7CiAKICAgICAvLyBJZiB0aGlzIGlzIHRy
dWUgYWxsIHByb2Nlc3Npbmcgc2hvdWxkIGZpbmlzaCBBU0FQCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvZW1lL1dlYktpdENvbW1vbkVuY3J5
cHRpb25EZWNyeXB0b3JHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3N0cmVhbWVyL2VtZS9XZWJLaXRDb21tb25FbmNyeXB0aW9uRGVjcnlwdG9yR1N0cmVh
bWVyLmNwcAppbmRleCAzMjAxNzRkNWJmZTg3NmRiOGMxNDIzNTlhOGUxYTAxYWE4NmMwZmRiLi5l
YjA4ODUxY2M4NjIxMmI0NmJiODI4YzdiMzc4M2RiMzE1NjRhN2VkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvZW1lL1dlYktpdENvbW1vbkVu
Y3J5cHRpb25EZWNyeXB0b3JHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUvV2ViS2l0Q29tbW9uRW5jcnlwdGlvbkRlY3J5cHRv
ckdTdHJlYW1lci5jcHAKQEAgLTU2LDggKzU2LDggQEAgc3RydWN0IF9XZWJLaXRNZWRpYUNvbW1v
bkVuY3J5cHRpb25EZWNyeXB0UHJpdmF0ZSB7CiAgICAgUmVmUHRyPENETVByb3h5PiBjZG1Qcm94
eTsKIAogICAgIC8vIFByb3RlY3QgdGhlIGFjY2VzcyB0byB0aGUgc3RydWN0dXJlIG1lbWJlcnMu
Ci0gICAgTG9jayBtdXRleDsKLSAgICBDb25kaXRpb24gY29uZGl0aW9uOworICAgIFVuY2hlY2tl
ZExvY2sgbXV0ZXg7CisgICAgVW5jaGVja2VkQ29uZGl0aW9uIGNvbmRpdGlvbjsKIAogICAgIGJv
b2wgaXNGbHVzaGluZyB7IGZhbHNlIH07CiAgICAgc3RkOjp1bmlxdWVfcHRyPENETVByb3h5RGVj
cnlwdGlvbkNsaWVudEltcGxlbWVudGF0aW9uPiBjZG1Qcm94eURlY3J5cHRpb25DbGllbnRJbXBs
ZW1lbnRhdGlvbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2dzdHJlYW1lci9tc2UvV2ViS2l0TWVkaWFTb3VyY2VHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9XZWJLaXRNZWRpYVNvdXJjZUdT
dHJlYW1lci5jcHAKaW5kZXggNmQwM2RmOTZhZDQzNzkwZDVhZjNkMmI3MmQ3NzAwZDE2ZmYyYTRm
YS4uYWE3Y2VlYjczOThhZTExOWRkZWFmMDUxNzZkZTJlOGYxYzRjNjI3ZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9XZWJLaXRNZWRp
YVNvdXJjZUdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3N0cmVhbWVyL21zZS9XZWJLaXRNZWRpYVNvdXJjZUdTdHJlYW1lci5jcHAKQEAgLTE4NCw4
ICsxODQsOCBAQCBzdHJ1Y3QgU3RyZWFtIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPFN0
cmVhbT4gewogICAgICAgICBHc3RTZWdtZW50IHNlZ21lbnQ7CiAgICAgICAgIEdSZWZQdHI8R3N0
Q2Fwcz4gcGVuZGluZ0luaXRpYWxDYXBzOwogICAgICAgICBHUmVmUHRyPEdzdENhcHM+IHByZXZp
b3VzQ2FwczsgLy8gQ2FwcyBmcm9tIGVucXVldWVkIHNhbXBsZXMgYXJlIGNvbXBhcmVkIHRvIHRo
ZXNlIHRvIHB1c2ggQ0FQUyBldmVudHMgYXMgbmVlZGVkLgotICAgICAgICBDb25kaXRpb24gcGFk
TGlua2VkT3JGbHVzaGVkQ29uZGl0aW9uOwotICAgICAgICBDb25kaXRpb24gcXVldWVDaGFuZ2Vk
T3JGbHVzaGVkQ29uZGl0aW9uOworICAgICAgICBVbmNoZWNrZWRDb25kaXRpb24gcGFkTGlua2Vk
T3JGbHVzaGVkQ29uZGl0aW9uOworICAgICAgICBVbmNoZWNrZWRDb25kaXRpb24gcXVldWVDaGFu
Z2VkT3JGbHVzaGVkQ29uZGl0aW9uOwogICAgICAgICBib29sIGlzRmx1c2hpbmcgeyBmYWxzZSB9
OwogCiAgICAgICAgIC8vIEZsdXNoZXMgYmVmb3JlIGFueSBidWZmZXIgaGFzIGJlZW4gcG9wcGVk
IGZyb20gdGhlIHF1ZXVlIGFuZCBzZW50IGRvd25zdHJlYW0gY2FuIGJlIGF2b2lkZWQganVzdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL3dhay9XZWJDb3JlVGhyZWFk
UnVuLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy93YWsvV2ViQ29yZVRocmVhZFJ1
bi5jcHAKaW5kZXggOGY4MWQ3YzFhY2E0Njk1NTUxZmM0NDBiNDdlOTA2MWQ0YjM1ZGYyZC4uNzIw
NDFlOWUxZmU5ZmU5ZDU2YWUyNzdiNzBmOGRlOGJmNmEzYmY3YyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vaW9zL3dhay9XZWJDb3JlVGhyZWFkUnVuLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3Mvd2FrL1dlYkNvcmVUaHJlYWRSdW4uY3BwCkBAIC00NSw5
ICs0NSw5IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgd2FpdEZvckNvbXBsZXRpb24oKQogICAgIHsK
LSAgICAgICAgc3RkOjp1bmlxdWVfbG9jazxMb2NrPiBsb2NrKG1fc3RhdGVNdXRleCk7CisgICAg
ICAgIExvY2tlciBsb2NrIHsgbV9zdGF0ZU11dGV4IH07CiAKLSAgICAgICAgbV9jb21wbGV0aW9u
Q29uZGl0aW9uVmFyaWFibGUud2FpdChsb2NrLCBbdGhpc10geyByZXR1cm4gbV9jb21wbGV0ZWQ7
IH0pOworICAgICAgICBtX2NvbXBsZXRpb25Db25kaXRpb25WYXJpYWJsZS53YWl0KG1fc3RhdGVN
dXRleCwgW3RoaXNdIHsgcmV0dXJuIG1fY29tcGxldGVkOyB9KTsKICAgICB9CiAKICAgICB2b2lk
IHNldENvbXBsZXRlZCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3Jh
cGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMLmNwcAppbmRleCA2ZDFkMWRhZTk3
YTliNWU3NmM3YTQxYTU5MDgzYzllMGE4ODM0YjZmLi4xNTUzZGVmMDI1ZmZmOTBmMTM3NWY1MTBk
NTBjYTQ1ZDJjNTEzNTRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3Jh
cGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTC5jcHAKQEAgLTIxMiw3ICsy
MTIsNyBAQCB2b2lkIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMOjpwYWludFBpeGVsQnVmZmVyVG9J
bWFnZUJ1ZmZlcihPcHRpb25hbDxXZWJDb3JlOjpQaQogICAgIGFzc2VydElzQ3VycmVudChtX3N0
cmVhbVRocmVhZCk7CiAgICAgLy8gRklYTUU6IFdlIGRvIG5vdCBoYXZlIGZ1bmN0aW9uaW5nIHJl
YWQvd3JpdGUgZmVuY2VzIGluIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQuIFRodXMgdGhpcyBpcyBz
eW5jaHJvbm91cywKICAgICAvLyBhcyBhcmUgdGhlIG1lc3NhZ2VzIHRoYXQgY2FsbCB0aGVzZS4K
LSAgICBMb2NrIG11dGV4OworICAgIExvY2sgbG9jazsKICAgICBDb25kaXRpb24gY29uZGl0aW9u
VmFyaWFibGU7CiAgICAgYm9vbCBpc0ZpbmlzaGVkID0gZmFsc2U7CiAgICAgbV9yZW5kZXJpbmdC
YWNrZW5kLT5kaXNwYXRjaChbJiwgY29udGV4dEF0dHJpYnV0ZXMgPSBtX2NvbnRleHQtPmNvbnRl
eHRBdHRyaWJ1dGVzKCldKCkgbXV0YWJsZSB7CkBAIC0yMjYsMTEgKzIyNiwxMSBAQCB2b2lkIFJl
bW90ZUdyYXBoaWNzQ29udGV4dEdMOjpwYWludFBpeGVsQnVmZmVyVG9JbWFnZUJ1ZmZlcihPcHRp
b25hbDxXZWJDb3JlOjpQaQogICAgICAgICAgICAgLy8gVW5mb3J0dW5hdGVseSAiZmx1c2giIGlt
cGxlbWVudGF0aW9uIGluIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQgb3ZlcmxvYWRzIG9yZGVyaW5n
IGFuZCBlZmZlY3RzLgogICAgICAgICAgICAgaW1hZ2VCdWZmZXItPmZsdXNoQ29udGV4dCgpOwog
ICAgICAgICB9Ci0gICAgICAgIExvY2tlciBsb2NrZXIgeyBtdXRleCB9OworICAgICAgICBMb2Nr
ZXIgbG9ja2VyIHsgbG9jayB9OwogICAgICAgICBpc0ZpbmlzaGVkID0gdHJ1ZTsKICAgICAgICAg
Y29uZGl0aW9uVmFyaWFibGUubm90aWZ5T25lKCk7CiAgICAgfSk7Ci0gICAgc3RkOjp1bmlxdWVf
bG9jazxMb2NrPiBsb2NrKG11dGV4KTsKKyAgICBMb2NrZXIgbG9ja2VyIHsgbG9jayB9OwogICAg
IGNvbmRpdGlvblZhcmlhYmxlLndhaXQobG9jaywgWyZdIHsKICAgICAgICAgcmV0dXJuIGlzRmlu
aXNoZWQ7CiAgICAgfSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L0luZGV4ZWREQi9XZWJJREJTZXJ2ZXIuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9JbmRleGVkREIvV2ViSURCU2VydmVyLmNwcAppbmRleCA5MWI4ODk0MWE3NmE4MDcxZDMwZDdm
ZWQ3NDE2M2ZiMDlmN2I4NzIxLi41NDdkYWE4ZDRlMDAxNDA2ZmMyMDFhYmFkNmNmNDc3MGM5MWE1
NTc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0luZGV4ZWREQi9X
ZWJJREJTZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvSW5kZXhl
ZERCL1dlYklEQlNlcnZlci5jcHAKQEAgLTExOSw3ICsxMTksNyBAQCB2b2lkIFdlYklEQlNlcnZl
cjo6cmVuYW1lT3JpZ2luKGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgb2xkT3Jp
Z2luLCBjbwogICAgIH0pOwogfQogCi12b2lkIFdlYklEQlNlcnZlcjo6c3VzcGVuZCgpCit2b2lk
IFdlYklEQlNlcnZlcjo6c3VzcGVuZCgpIFdURl9JR05PUkVTX1RIUkVBRF9TQUZFVFlfQU5BTFlT
SVMKIHsKICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwogCkBAIC0xMzIsNyArMTMyLDcg
QEAgdm9pZCBXZWJJREJTZXJ2ZXI6OnN1c3BlbmQoKQogICAgICAgICBtX3NlcnZlci0+c3RvcERh
dGFiYXNlQWN0aXZpdGllc09uTWFpblRocmVhZCgpOwogfQogCi12b2lkIFdlYklEQlNlcnZlcjo6
cmVzdW1lKCkKK3ZvaWQgV2ViSURCU2VydmVyOjpyZXN1bWUoKSBXVEZfSUdOT1JFU19USFJFQURf
U0FGRVRZX0FOQUxZU0lTCiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvSWNvbkRhdGFiYXNlLmgg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9JY29uRGF0YWJhc2UuaAppbmRleCBi
ZWIyZmI4MDZlYzU1YzY2MzRjZDVlNWEwMGQ1MDc4MzYxNWZlZjRiLi44MGUxNzhlNjFmNTBmYWZk
ZjNlYWQ0ZDI5OGExODgwMWFlMDNjNzE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvZ2xpYi9JY29uRGF0YWJhc2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvZ2xpYi9JY29uRGF0YWJhc2UuaApAQCAtNzIsNyArNzIsNyBAQCBwcml2YXRlOgogICAg
IEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+IG1fcGFnZVVSTFRvSWNvblVSTE1hcDsKICAgICBMb2Nr
IG1fcGFnZVVSTFRvSWNvblVSTE1hcExvY2s7CiAgICAgSGFzaE1hcDxTdHJpbmcsIHN0ZDo6cGFp
cjxXZWJDb3JlOjpQbGF0Zm9ybUltYWdlUHRyLCBNb25vdG9uaWNUaW1lPj4gbV9sb2FkZWRJY29u
czsKLSAgICBMb2NrIG1fbG9hZGVkSWNvbnNMb2NrOworICAgIFVuY2hlY2tlZExvY2sgbV9sb2Fk
ZWRJY29uc0xvY2s7CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6U1FMaXRlU3RhdGVt
ZW50PiBtX2ljb25JREZvckljb25VUkxTdGF0ZW1lbnQ7CiAgICAgc3RkOjp1bmlxdWVfcHRyPFdl
YkNvcmU6OlNRTGl0ZVN0YXRlbWVudD4gbV9zZXRJY29uSURGb3JQYWdlVVJMU3RhdGVtZW50Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLUHJpbnRpbmdWaWV3Lm1t
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLUHJpbnRpbmdWaWV3Lm1tCmluZGV4IDli
NzRmM2VjNTBkMDIwMTY2NGM3MzEyOTg5YzdmNjhjMjlhMDQ1NGMuLmYxOGJhOGYwMWIyNmRlM2Zk
M2NkZmIwMjgxMjg1Y2YwZDRhNjY2OWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL21hYy9XS1ByaW50aW5nVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9t
YWMvV0tQcmludGluZ1ZpZXcubW0KQEAgLTQxNCwxMyArNDE0LDEzIEBAIC0gKEJPT0wpa25vd3NQ
YWdlUmFuZ2U6KE5TUmFuZ2VQb2ludGVyKXJhbmdlCiAgICAgICAgICpyYW5nZSA9IE5TTWFrZVJh
bmdlKDEsIF9wcmludGluZ1BhZ2VSZWN0cy5zaXplKCkpOwogICAgIGVsc2UgaWYgKCFSdW5Mb29w
Ojppc01haW4oKSkgewogICAgICAgICBBU1NFUlQoIVtzZWxmIF9pc1ByaW50aW5nUHJldmlld10p
OwotICAgICAgICBzdGQ6OnVuaXF1ZV9sb2NrPExvY2s+IGxvY2soX3ByaW50aW5nQ2FsbGJhY2tN
dXRleCk7CisgICAgICAgIExvY2tlciBsb2NrIHsgX3ByaW50aW5nQ2FsbGJhY2tNdXRleCB9Owog
CiAgICAgICAgIFJ1bkxvb3A6Om1haW4oKS5kaXNwYXRjaChbc2VsZl0gewogICAgICAgICAgICAg
cHJlcGFyZURhdGFGb3JQcmludGluZ09uU2Vjb25kYXJ5VGhyZWFkKHNlbGYpOwogICAgICAgICB9
KTsKIAotICAgICAgICBfcHJpbnRpbmdDYWxsYmFja0NvbmRpdGlvbi53YWl0KGxvY2spOworICAg
ICAgICBfcHJpbnRpbmdDYWxsYmFja0NvbmRpdGlvbi53YWl0KF9wcmludGluZ0NhbGxiYWNrTXV0
ZXgpOwogICAgICAgICAqcmFuZ2UgPSBOU01ha2VSYW5nZSgxLCBfcHJpbnRpbmdQYWdlUmVjdHMu
c2l6ZSgpKTsKICAgICB9IGVsc2UgewogICAgICAgICBBU1NFUlQoW3NlbGYgX2lzUHJpbnRpbmdQ
cmV2aWV3XSk7CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cK
aW5kZXggZWFiMDgzZjFlMDdkNDVlODhhZGIxNDAxZGJiNGMyMTViNTM3ODU0YS4uODYzOTEwZmU0
ZmFmZWEzMzIzNWE0NjJmMzBkNGRjZDhkZGFiMjgzOCAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdl
TG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDIxLTA1LTIzICBD
aHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgTWFrZSBDaGVja2VkTG9j
ayB0aGUgZGVmYXVsdCBMb2NrCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMjYxNTcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBNYWtlIENoZWNrZWRMb2NrIHRoZSBkZWZhdWx0IExvY2sgc28gdGhhdCB3ZSBn
ZXQgbW9yZSBiZW5lZml0cyBmcm9tIENsYW5nCisgICAgICAgIFRocmVhZCBTYWZldHkgQW5hbHlz
aXMuIE5vdGUgdGhhdCBDaGVja2VkTG9jayAxMDAlIHJlbGllcyBvbiB0aGUgZXhpc3RpbmcKKyAg
ICAgICAgTG9jayBpbXBsZW1lbnRhdGlvbiBhbmQgbWVyZWx5IGFkZHMgdGhlIGNsYW5nIGFub3Rh
dGlvbnMgZm9yIHRocmVhZCAKKyAgICAgICAgc2FmZXR5LgorCisgICAgICAgIFRoYXQgdGhpcyBw
YXRjaCBkb2VzIGlzOgorICAgICAgICAxLiBSZW5hbWUgdGhlIExvY2sgY2xhc3MgdG8gVW5jaGVj
a2VkTG9jaworICAgICAgICAyLiBSZW5hbWUgdGhlIENoZWNrZWRMb2NrIGNsYXNzIHRvIExvY2sK
KyAgICAgICAgMy4gUmVuYW1lIHRoZSBDb25kaXRpb24gY2xhc3MgdG8gVW5jaGVja2VkQ29uZGl0
aW9uCisgICAgICAgIDQuIFJlbmFtZSB0aGUgQ2hlY2tlZENvbmRpdGlvbiBjbGFzcyB0byBDb25k
aXRpb24KKyAgICAgICAgNS4gVXBkYXRlIHRoZSB0eXBlcyBvZiBjZXJ0YWluIHZhcmlhYmxlcyBm
cm9tIExvY2sgLyBDb25kaXRpb24gdG8KKyAgICAgICAgICAgVW5jaGVja2VkTG9jayAvIFVuY2hl
Y2tlZENvbmRpdGlvbiBpZiBJIGdvdCBhIGJ1aWxkIGZhaWx1cmUuIEJ1aWxkIAorICAgICAgICAg
ICBmYWlsdXJlcyBhcmUgdXN1YWxseSBjYXVzZWQgYnkgdGhlIGZvbGxvd2luZyBmYWN0czoKKyAg
ICAgICAgICAgLSBMb2NrZXI8Q2hlY2tlZExvY2s+IGRvZXNuJ3Qgc3ViY2xhc3MgQWJzdHJhY3RM
b2NrZXIgd2hpY2ggYSBsb3Qgb2YKKyAgICAgICAgICAgICBKU0MgY29kZSBwYXNzZXMgYXMgYXJn
dW1lbnQKKyAgICAgICAgICAgLSBMb2NrZXI8Q2hlY2tlZExvY2s+IGhhcyBubyBtb3ZlIGNvbnN0
cnVjdG9yCisgICAgICAgICAgIC0gTG9ja2VyPENoZWNrZWRMb2NrPiBjYW5ub3QgYmUgY29uc3Ry
dWN0ZWQgZnJvbSBhIGxvY2sgcG9pbnRlciwgb25seQorICAgICAgICAgICAgIGEgcmVmZXJlbmNl
CisKKyAgICAgICAgRm9yIG5vdywgQ2hlY2tlZExvY2sgYW5kIENoZWNrZWRDb25kaXRpb24gcmVt
YWluIGFzIGFsaWFzZXMgdG8gTG9jayBhbmQgCisgICAgICAgIENvbmRpdGlvbiwgaW4gdGhlaXIg
cmVzcGVjdGl2ZSBDaGVja2VkTG9jay5oIC8gQ2hlY2tlZENvbmRpdGlvbi5oIGhlYWRlcnMuCisg
ICAgICAgIEkgd2lsbCBkcm9wIHRoZW0gaW4gYSBmb2xsb3ctdXAgdG8gcmVkdWNlIHBhdGNoIHNp
emUuCisKKyAgICAgICAgSSB3aWxsIGFsc28gZm9sbG93LXVwIHRvIHRyeSBhbmQgZ2V0IHJpZCBv
ZiBhcyBtdWNoIHVzYWdlIG9mIFVuY2hlY2tlZExvY2sKKyAgICAgICAgYW5kIFVuY2hlY2tlZENv
bmRpdGlvbiBhcyBwb3NzaWJsZS4gSSBkaWQgbm90IHRyeSB2ZXJ5IGhhcmQgaW4gdGhpcyBwYXRj
aAorICAgICAgICB0byByZWR1Y2UgcGF0Y2ggc2l6ZS4gCisKKyAgICAgICAgKiBUZXN0V2ViS2l0
QVBJL1Rlc3RzL1dURi9DaGVja2VkQ29uZGl0aW9uVGVzdC5jcHA6CisgICAgICAgICogVGVzdFdl
YktpdEFQSS9UZXN0cy9XVEYvQ29uZGl0aW9uLmNwcDoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dURi9NZXRhQWxsb2NhdG9yLmNwcDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVy
L0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdU
Ujo6QVhUaHJlYWQ6OmNyZWF0ZVRocmVhZElmTmVlZGVkKToKKwogMjAyMS0wNS0yMiAgQ2hyaXMg
RHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFJlcGxhY2UgTG9ja0hvbGRlciB3
aXRoIExvY2tlciBpbiBsb2NhbCB2YXJpYWJsZXMKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV1RGL0NoZWNrZWRDb25kaXRpb25UZXN0LmNwcCBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV1RGL0NoZWNrZWRDb25kaXRpb25UZXN0LmNwcAppbmRleCA5MjhhYTE5MDNj
ZGUzNmVhMzJkYzEwMWYyNmJmM2NjOTkyNjliODkzLi5hZDQyNTVlMmFjMWEyZWY5YTBjMWNhM2Nm
NTZjNzM4MDc2NjMwNTA4IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dU
Ri9DaGVja2VkQ29uZGl0aW9uVGVzdC5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XVEYvQ2hlY2tlZENvbmRpdGlvblRlc3QuY3BwCkBAIC0yNSw2ICsyNSw3IEBACiAKICNpbmNs
dWRlICJjb25maWcuaCIKICNpbmNsdWRlIDx3dGYvQ2hlY2tlZENvbmRpdGlvbi5oPgorI2luY2x1
ZGUgPHd0Zi9DaGVja2VkTG9jay5oPgogCiBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CiAKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0NvbmRpdGlvbi5jcHAgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9Db25kaXRpb24uY3BwCmluZGV4IDNiMzViMDhj
YTE0YjgxODg0N2Q2NmVlNTg3ZmZhZDFhNTkwZDgxMjYuLjVlZWMzZTAxNTY2YjkxOGQ2NjdlMTY0
ODI1ZjAxMjA4ZDg3OWJiZWIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V1RGL0NvbmRpdGlvbi5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvQ29u
ZGl0aW9uLmNwcApAQCAtNDYsNyArNDYsNyBAQCBlbnVtIE5vdGlmeVN0eWxlIHsKIH07CiAKIHRl
bXBsYXRlPHR5cGVuYW1lIEZ1bmN0b3I+Ci12b2lkIHdhaXQoQ29uZGl0aW9uJiBjb25kaXRpb24s
IHN0ZDo6dW5pcXVlX2xvY2s8TG9jaz4mIGxvY2tlciwgY29uc3QgRnVuY3RvciYgcHJlZGljYXRl
LCBTZWNvbmRzIHRpbWVvdXQpCit2b2lkIHdhaXQoVW5jaGVja2VkQ29uZGl0aW9uJiBjb25kaXRp
b24sIHN0ZDo6dW5pcXVlX2xvY2s8VW5jaGVja2VkTG9jaz4mIGxvY2tlciwgY29uc3QgRnVuY3Rv
ciYgcHJlZGljYXRlLCBTZWNvbmRzIHRpbWVvdXQpCiB7CiAgICAgaWYgKHRpbWVvdXQgPT0gU2Vj
b25kczo6aW5maW5pdHkoKSkKICAgICAgICAgY29uZGl0aW9uLndhaXQobG9ja2VyLCBwcmVkaWNh
dGUpOwpAQCAtNTksNyArNTksNyBAQCB2b2lkIHdhaXQoQ29uZGl0aW9uJiBjb25kaXRpb24sIHN0
ZDo6dW5pcXVlX2xvY2s8TG9jaz4mIGxvY2tlciwgY29uc3QgRnVuY3RvciYgcAogICAgIH0KIH0K
IAotdm9pZCBub3RpZnkoTm90aWZ5U3R5bGUgbm90aWZ5U3R5bGUsIENvbmRpdGlvbiYgY29uZGl0
aW9uLCBib29sIHNob3VsZE5vdGlmeSkKK3ZvaWQgbm90aWZ5KE5vdGlmeVN0eWxlIG5vdGlmeVN0
eWxlLCBVbmNoZWNrZWRDb25kaXRpb24mIGNvbmRpdGlvbiwgYm9vbCBzaG91bGROb3RpZnkpCiB7
CiAgICAgc3dpdGNoIChub3RpZnlTdHlsZSkgewogICAgIGNhc2UgQWx3YXlzTm90aWZ5T25lOgpA
QCAtODMsOSArODMsOSBAQCB2b2lkIHJ1blRlc3QoCiB7CiAgICAgRGVxdWU8dW5zaWduZWQ+IHF1
ZXVlOwogICAgIGJvb2wgc2hvdWxkQ29udGludWUgPSB0cnVlOwotICAgIExvY2sgbG9jazsKLSAg
ICBDb25kaXRpb24gZW1wdHlDb25kaXRpb247Ci0gICAgQ29uZGl0aW9uIGZ1bGxDb25kaXRpb247
CisgICAgVW5jaGVja2VkTG9jayBsb2NrOworICAgIFVuY2hlY2tlZENvbmRpdGlvbiBlbXB0eUNv
bmRpdGlvbjsKKyAgICBVbmNoZWNrZWRDb25kaXRpb24gZnVsbENvbmRpdGlvbjsKIAogICAgIFZl
Y3RvcjxSZWY8VGhyZWFkPj4gY29uc3VtZXJUaHJlYWRzOwogICAgIFZlY3RvcjxSZWY8VGhyZWFk
Pj4gcHJvZHVjZXJUaHJlYWRzOwpAQCAtMTAxLDcgKzEwMSw3IEBAIHZvaWQgcnVuVGVzdCgKICAg
ICAgICAgICAgICAgICAgICAgdW5zaWduZWQgcmVzdWx0OwogICAgICAgICAgICAgICAgICAgICB1
bnNpZ25lZCBzaG91bGROb3RpZnkgPSBmYWxzZTsKICAgICAgICAgICAgICAgICAgICAgewotICAg
ICAgICAgICAgICAgICAgICAgICAgc3RkOjp1bmlxdWVfbG9jazxMb2NrPiBsb2NrZXIobG9jayk7
CisgICAgICAgICAgICAgICAgICAgICAgICBzdGQ6OnVuaXF1ZV9sb2NrPFVuY2hlY2tlZExvY2s+
IGxvY2tlcihsb2NrKTsKICAgICAgICAgICAgICAgICAgICAgICAgIHdhaXQoCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgZW1wdHlDb25kaXRpb24sIGxvY2tlciwgCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgWyZdICgpIHsKQEAgLTEzNCw3ICsxMzQsNyBAQCB2b2lkIHJ1blRlc3Qo
CiAgICAgICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG51bU1lc3NhZ2VzUGVy
UHJvZHVjZXI7ICsraSkgewogICAgICAgICAgICAgICAgICAgICBib29sIHNob3VsZE5vdGlmeSA9
IGZhbHNlOwogICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBz
dGQ6OnVuaXF1ZV9sb2NrPExvY2s+IGxvY2tlcihsb2NrKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIHN0ZDo6dW5pcXVlX2xvY2s8VW5jaGVja2VkTG9jaz4gbG9ja2VyKGxvY2spOwogICAgICAg
ICAgICAgICAgICAgICAgICAgd2FpdCgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdWxs
Q29uZGl0aW9uLCBsb2NrZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyZdICgpIHsK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL01ldGFBbGxvY2F0b3Iu
Y3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvTWV0YUFsbG9jYXRvci5jcHAKaW5k
ZXggYjkxZjY4ZWMwY2MxN2RkMzcwOGYyZTc4MDgzNjY1NTdkYjM4N2E2Ni4uNGVmNTgzYjNjMmJl
OThlZWZkOTYxNTFjNzk2OWNlNDNlYmEwNTc5MyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XVEYvTWV0YUFsbG9jYXRvci5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XVEYvTWV0YUFsbG9jYXRvci5jcHAKQEAgLTEyOSw3ICsxMjksNyBAQCBwdWJsaWM6
CiAgICAgICAgIH0KICAgICAgICAgCiAgICAgcHJpdmF0ZToKLSAgICAgICAgTG9jayBtX2xvY2s7
CisgICAgICAgIFVuY2hlY2tlZExvY2sgbV9sb2NrOwogICAgICAgICBNZXRhQWxsb2NhdG9yVGVz
dCogbV9wYXJlbnQ7CiAgICAgfTsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5jcHAgYi9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyLmNwcApp
bmRleCA5ODQ0ZTViNjMzNWZiY2EyODZlMmMxMWM2YjNlOTg3OGQ5YzQwZDBiLi42ZWJhMTRhMWE3
MGMwM2Q1NTdkYjIzYjYwNzYyZGY3OWZmZWE0Y2FlIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyLmNwcAorKysg
Yi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlDb250
cm9sbGVyLmNwcApAQCAtMTk5LDcgKzE5OSw3IEBAIEFYVGhyZWFkJiBBWFRocmVhZDo6c2luZ2xl
dG9uKCkKIHZvaWQgQVhUaHJlYWQ6OmNyZWF0ZVRocmVhZElmTmVlZGVkKCkKIHsKICAgICAvLyBX
YWl0IGZvciB0aGUgdGhyZWFkIHRvIGluaXRpYWxpemUgdGhlIHJ1biBsb29wLgotICAgIHN0ZDo6
dW5pcXVlX2xvY2s8TG9jaz4gbG9jayhtX2luaXRpYWxpemVSdW5Mb29wTXV0ZXgpOworICAgIExv
Y2tlciBsb2NrIHsgbV9pbml0aWFsaXplUnVuTG9vcE11dGV4IH07CiAKICAgICBpZiAoIW1fdGhy
ZWFkKSB7CiAgICAgICAgIG1fdGhyZWFkID0gVGhyZWFkOjpjcmVhdGUoIldLVFI6IEFjY2Vzc2li
aWxpdHlDb250cm9sbGVyIiwgW3RoaXNdIHsKQEAgLTIwOCw3ICsyMDgsNyBAQCB2b2lkIEFYVGhy
ZWFkOjpjcmVhdGVUaHJlYWRJZk5lZWRlZCgpCiAgICAgICAgIH0pOwogICAgIH0KIAotICAgIG1f
aW5pdGlhbGl6ZVJ1bkxvb3BDb25kaXRpb25WYXJpYWJsZS53YWl0KGxvY2ssIFt0aGlzXSB7Cisg
ICAgbV9pbml0aWFsaXplUnVuTG9vcENvbmRpdGlvblZhcmlhYmxlLndhaXQobV9pbml0aWFsaXpl
UnVuTG9vcE11dGV4LCBbdGhpc10gewogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgICAgICByZXR1
cm4gbV90aHJlYWRSdW5Mb29wOwogI2Vsc2UK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>429486</attachid>
            <date>2021-05-23 16:36:37 -0700</date>
            <delta_ts>2021-05-23 16:51:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226157-20210523163636.patch</filename>
            <type>text/plain</type>
            <size>102612</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3OTM0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAw
YzRlNzliNTg2ZTkwMmM1MTBiY2NkMjdkOGMwYzA0MTU2MGNmMjhmLi45MzM2Mzg2OTAxOGFkODIy
NjhhZjUzMmE1OWMwMThjOTZjMjM1ZTY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw5NSBAQAorMjAyMS0wNS0yMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgor
CisgICAgICAgIE1ha2UgQ2hlY2tlZExvY2sgdGhlIGRlZmF1bHQgTG9jaworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI2MTU3CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWFrZSBDaGVja2VkTG9jayB0aGUg
ZGVmYXVsdCBMb2NrIHNvIHRoYXQgd2UgZ2V0IG1vcmUgYmVuZWZpdHMgZnJvbSBDbGFuZworICAg
ICAgICBUaHJlYWQgU2FmZXR5IEFuYWx5c2lzLiBOb3RlIHRoYXQgQ2hlY2tlZExvY2sgMTAwJSBy
ZWxpZXMgb24gdGhlIGV4aXN0aW5nCisgICAgICAgIExvY2sgaW1wbGVtZW50YXRpb24gYW5kIG1l
cmVseSBhZGRzIHRoZSBjbGFuZyBhbm90YXRpb25zIGZvciB0aHJlYWQgCisgICAgICAgIHNhZmV0
eS4KKworICAgICAgICBUaGF0IHRoaXMgcGF0Y2ggZG9lcyBpczoKKyAgICAgICAgMS4gUmVuYW1l
IHRoZSBMb2NrIGNsYXNzIHRvIFVuY2hlY2tlZExvY2sKKyAgICAgICAgMi4gUmVuYW1lIHRoZSBD
aGVja2VkTG9jayBjbGFzcyB0byBMb2NrCisgICAgICAgIDMuIFJlbmFtZSB0aGUgQ29uZGl0aW9u
IGNsYXNzIHRvIFVuY2hlY2tlZENvbmRpdGlvbgorICAgICAgICA0LiBSZW5hbWUgdGhlIENoZWNr
ZWRDb25kaXRpb24gY2xhc3MgdG8gQ29uZGl0aW9uCisgICAgICAgIDUuIFVwZGF0ZSB0aGUgdHlw
ZXMgb2YgY2VydGFpbiB2YXJpYWJsZXMgZnJvbSBMb2NrIC8gQ29uZGl0aW9uIHRvCisgICAgICAg
ICAgIFVuY2hlY2tlZExvY2sgLyBVbmNoZWNrZWRDb25kaXRpb24gaWYgSSBnb3QgYSBidWlsZCBm
YWlsdXJlLiBCdWlsZCAKKyAgICAgICAgICAgZmFpbHVyZXMgYXJlIHVzdWFsbHkgY2F1c2VkIGJ5
IHRoZSBmb2xsb3dpbmcgZmFjdHM6CisgICAgICAgICAgIC0gTG9ja2VyPENoZWNrZWRMb2NrPiBk
b2Vzbid0IHN1YmNsYXNzIEFic3RyYWN0TG9ja2VyIHdoaWNoIGEgbG90IG9mCisgICAgICAgICAg
ICAgSlNDIGNvZGUgcGFzc2VzIGFzIGFyZ3VtZW50CisgICAgICAgICAgIC0gTG9ja2VyPENoZWNr
ZWRMb2NrPiBoYXMgbm8gbW92ZSBjb25zdHJ1Y3RvcgorICAgICAgICAgICAtIExvY2tlcjxDaGVj
a2VkTG9jaz4gY2Fubm90IGJlIGNvbnN0cnVjdGVkIGZyb20gYSBsb2NrIHBvaW50ZXIsIG9ubHkK
KyAgICAgICAgICAgICBhIHJlZmVyZW5jZQorCisgICAgICAgIEZvciBub3csIENoZWNrZWRMb2Nr
IGFuZCBDaGVja2VkQ29uZGl0aW9uIHJlbWFpbiBhcyBhbGlhc2VzIHRvIExvY2sgYW5kIAorICAg
ICAgICBDb25kaXRpb24sIGluIHRoZWlyIHJlc3BlY3RpdmUgQ2hlY2tlZExvY2suaCAvIENoZWNr
ZWRDb25kaXRpb24uaCBoZWFkZXJzLgorICAgICAgICBJIHdpbGwgZHJvcCB0aGVtIGluIGEgZm9s
bG93LXVwIHRvIHJlZHVjZSBwYXRjaCBzaXplLgorCisgICAgICAgIEkgd2lsbCBhbHNvIGZvbGxv
dy11cCB0byB0cnkgYW5kIGdldCByaWQgb2YgYXMgbXVjaCB1c2FnZSBvZiBVbmNoZWNrZWRMb2Nr
CisgICAgICAgIGFuZCBVbmNoZWNrZWRDb25kaXRpb24gYXMgcG9zc2libGUuIEkgZGlkIG5vdCB0
cnkgdmVyeSBoYXJkIGluIHRoaXMgcGF0Y2gKKyAgICAgICAgdG8gcmVkdWNlIHBhdGNoIHNpemUu
IAorCisgICAgICAgICogYXNzZW1ibGVyL3Rlc3RtYXNtLmNwcDoKKyAgICAgICAgKiBkZmcvREZH
Q29tbW9uLmNwcDoKKyAgICAgICAgKiBkZmcvREZHVGhyZWFkRGF0YS5oOgorICAgICAgICAqIGRm
Zy9ERkdXb3JrbGlzdC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6V29ya2xpc3Q6OldvcmtsaXN0
KToKKyAgICAgICAgKiBkZmcvREZHV29ya2xpc3QuaDoKKyAgICAgICAgKiBkeW5iZW5jaC5jcHA6
CisgICAgICAgICogaGVhcC9CbG9ja0RpcmVjdG9yeS5oOgorICAgICAgICAoSlNDOjpCbG9ja0Rp
cmVjdG9yeTo6Yml0dmVjdG9yTG9jayk6CisgICAgICAgICogaGVhcC9Db2RlQmxvY2tTZXQuaDoK
KyAgICAgICAgKEpTQzo6Q29kZUJsb2NrU2V0OjpnZXRMb2NrKToKKyAgICAgICAgKiBoZWFwL0hl
YXAuY3BwOgorICAgICAgICAoSlNDOjpIZWFwOjpIZWFwKToKKyAgICAgICAgKiBoZWFwL0hlYXAu
aDoKKyAgICAgICAgKiBoZWFwL01hcmtlZFNwYWNlLmg6CisgICAgICAgIChKU0M6Ok1hcmtlZFNw
YWNlOjpkaXJlY3RvcnlMb2NrKToKKyAgICAgICAgKiBoZWFwL01hcmtpbmdDb25zdHJhaW50U29s
dmVyLmg6CisgICAgICAgICogaGVhcC9TbG90VmlzaXRvci5jcHA6CisgICAgICAgIChKU0M6OlNs
b3RWaXNpdG9yOjpkb25hdGVLbm93blBhcmFsbGVsKToKKyAgICAgICAgKiBoZWFwL1Nsb3RWaXNp
dG9yLmg6CisgICAgICAgICogaml0L0V4ZWN1dGFibGVBbGxvY2F0b3IuY3BwOgorICAgICAgICAo
SlNDOjpFeGVjdXRhYmxlQWxsb2NhdG9yOjpnZXRMb2NrIGNvbnN0KToKKyAgICAgICAgKEpTQzo6
ZHVtcEpJVE1lbW9yeSk6CisgICAgICAgICogaml0L0V4ZWN1dGFibGVBbGxvY2F0b3IuaDoKKyAg
ICAgICAgKEpTQzo6RXhlY3V0YWJsZUFsbG9jYXRvckJhc2U6OmdldExvY2sgY29uc3QpOgorICAg
ICAgICAqIGppdC9KSVRXb3JrbGlzdC5jcHA6CisgICAgICAgIChKU0M6OkpJVFdvcmtsaXN0OjpK
SVRXb3JrbGlzdCk6CisgICAgICAgICogaml0L0pJVFdvcmtsaXN0Lmg6CisgICAgICAgICoganNj
LmNwcDoKKyAgICAgICAgKiBwcm9maWxlci9Qcm9maWxlckRhdGFiYXNlLmg6CisgICAgICAgICog
cnVudGltZS9Db25jdXJyZW50SlNMb2NrLmg6CisgICAgICAgICogcnVudGltZS9EZWZlcnJlZFdv
cmtUaW1lci5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNMb2NrLmg6CisgICAgICAgICogcnVudGlt
ZS9TYW1wbGluZ1Byb2ZpbGVyLmNwcDoKKyAgICAgICAgKEpTQzo6RnJhbWVXYWxrZXI6OkZyYW1l
V2Fsa2VyKToKKyAgICAgICAgKEpTQzo6Q0ZyYW1lV2Fsa2VyOjpDRnJhbWVXYWxrZXIpOgorICAg
ICAgICAoSlNDOjpTYW1wbGluZ1Byb2ZpbGVyOjp0YWtlU2FtcGxlKToKKyAgICAgICAgKiBydW50
aW1lL1NhbXBsaW5nUHJvZmlsZXIuaDoKKyAgICAgICAgKEpTQzo6U2FtcGxpbmdQcm9maWxlcjo6
Z2V0TG9jayk6CisgICAgICAgICogcnVudGltZS9WTS5oOgorICAgICAgICAqIHJ1bnRpbWUvVk1U
cmFwcy5jcHA6CisgICAgICAgIChKU0M6OlZNVHJhcHM6OmludmFsaWRhdGVDb2RlQmxvY2tzT25T
dGFjayk6CisgICAgICAgIChKU0M6OlZNVHJhcHM6OlZNVHJhcHMpOgorICAgICAgICAqIHJ1bnRp
bWUvVk1UcmFwcy5oOgorICAgICAgICAqIHRvb2xzL0Z1bmN0aW9uT3ZlcnJpZGVzLmg6CisgICAg
ICAgICogdG9vbHMvVk1JbnNwZWN0b3IuY3BwOgorICAgICAgICAoSlNDOjplbnN1cmVJc1NhZmVU
b0xvY2spOgorICAgICAgICAqIHRvb2xzL1ZNSW5zcGVjdG9yLmg6CisgICAgICAgIChKU0M6OlZN
SW5zcGVjdG9yOjpnZXRMb2NrKToKKyAgICAgICAgKiB3YXNtL1dhc21DYWxsZWVSZWdpc3RyeS5o
OgorICAgICAgICAoSlNDOjpXYXNtOjpDYWxsZWVSZWdpc3RyeTo6Z2V0TG9jayk6CisgICAgICAg
ICogd2FzbS9XYXNtUGxhbi5oOgorICAgICAgICAqIHdhc20vV2FzbVN0cmVhbWluZ0NvbXBpbGVy
Lmg6CisgICAgICAgICogd2FzbS9XYXNtVGh1bmtzLmg6CisgICAgICAgICogd2FzbS9XYXNtV29y
a2xpc3QuY3BwOgorICAgICAgICAoSlNDOjpXYXNtOjpXb3JrbGlzdDo6V29ya2xpc3QpOgorICAg
ICAgICAqIHdhc20vV2FzbVdvcmtsaXN0Lmg6CisKIDIwMjEtMDUtMjMgIENocmlzIER1bWV6ICA8
Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBVc2UgQ2hlY2tlZExvY2sgaW4gZXZlbiBtb3Jl
IHBsYWNlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV1RGL0No
YW5nZUxvZwppbmRleCAxZGYzZjhlMGJhMWU3MjU3MWUwNmU2ZmE1ZDZjMjk5NzBkOTI2MmRmLi4w
MTczMDA1YThiMjg1MTRmZDU3NWM2NTdkMjk4YmZjY2QwNDhjNWQwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV1RGL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY2
IEBACisyMDIxLTA1LTIzICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAg
ICAgTWFrZSBDaGVja2VkTG9jayB0aGUgZGVmYXVsdCBMb2NrCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjYxNTcKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNYWtlIENoZWNrZWRMb2NrIHRoZSBkZWZhdWx0
IExvY2sgc28gdGhhdCB3ZSBnZXQgbW9yZSBiZW5lZml0cyBmcm9tIENsYW5nCisgICAgICAgIFRo
cmVhZCBTYWZldHkgQW5hbHlzaXMuIE5vdGUgdGhhdCBDaGVja2VkTG9jayAxMDAlIHJlbGllcyBv
biB0aGUgZXhpc3RpbmcKKyAgICAgICAgTG9jayBpbXBsZW1lbnRhdGlvbiBhbmQgbWVyZWx5IGFk
ZHMgdGhlIGNsYW5nIGFub3RhdGlvbnMgZm9yIHRocmVhZAorICAgICAgICBzYWZldHkuCisKKyAg
ICAgICAgVGhhdCB0aGlzIHBhdGNoIGRvZXMgaXM6CisgICAgICAgIDEuIFJlbmFtZSB0aGUgTG9j
ayBjbGFzcyB0byBVbmNoZWNrZWRMb2NrCisgICAgICAgIDIuIFJlbmFtZSB0aGUgQ2hlY2tlZExv
Y2sgY2xhc3MgdG8gTG9jaworICAgICAgICAzLiBSZW5hbWUgdGhlIENvbmRpdGlvbiBjbGFzcyB0
byBVbmNoZWNrZWRDb25kaXRpb24KKyAgICAgICAgNC4gUmVuYW1lIHRoZSBDaGVja2VkQ29uZGl0
aW9uIGNsYXNzIHRvIENvbmRpdGlvbgorICAgICAgICA1LiBVcGRhdGUgdGhlIHR5cGVzIG9mIGNl
cnRhaW4gdmFyaWFibGVzIGZyb20gTG9jayAvIENvbmRpdGlvbiB0bworICAgICAgICAgICBVbmNo
ZWNrZWRMb2NrIC8gVW5jaGVja2VkQ29uZGl0aW9uIGlmIEkgZ290IGEgYnVpbGQgZmFpbHVyZS4g
QnVpbGQKKyAgICAgICAgICAgZmFpbHVyZXMgYXJlIHVzdWFsbHkgY2F1c2VkIGJ5IHRoZSBmb2xs
b3dpbmcgZmFjdHM6CisgICAgICAgICAgIC0gTG9ja2VyPENoZWNrZWRMb2NrPiBkb2Vzbid0IHN1
YmNsYXNzIEFic3RyYWN0TG9ja2VyIHdoaWNoIGEgbG90IG9mCisgICAgICAgICAgICAgSlNDIGNv
ZGUgcGFzc2VzIGFzIGFyZ3VtZW50CisgICAgICAgICAgIC0gTG9ja2VyPENoZWNrZWRMb2NrPiBo
YXMgbm8gbW92ZSBjb25zdHJ1Y3RvcgorICAgICAgICAgICAtIExvY2tlcjxDaGVja2VkTG9jaz4g
Y2Fubm90IGJlIGNvbnN0cnVjdGVkIGZyb20gYSBsb2NrIHBvaW50ZXIsIG9ubHkKKyAgICAgICAg
ICAgICBhIHJlZmVyZW5jZQorICAgICAgICAKKyAgICAgICAgRm9yIG5vdywgQ2hlY2tlZExvY2sg
YW5kIENoZWNrZWRDb25kaXRpb24gcmVtYWluIGFzIGFsaWFzZXMgdG8gTG9jayBhbmQKKyAgICAg
ICAgQ29uZGl0aW9uLCBpbiB0aGVpciByZXNwZWN0aXZlIENoZWNrZWRMb2NrLmggLyBDaGVja2Vk
Q29uZGl0aW9uLmggaGVhZGVycy4KKyAgICAgICAgSSB3aWxsIGRyb3AgdGhlbSBpbiBhIGZvbGxv
dy11cCB0byByZWR1Y2UgcGF0Y2ggc2l6ZS4KKworICAgICAgICBJIHdpbGwgYWxzbyBmb2xsb3ct
dXAgdG8gdHJ5IGFuZCBnZXQgcmlkIG9mIGFzIG11Y2ggdXNhZ2Ugb2YgVW5jaGVja2VkTG9jawor
ICAgICAgICBhbmQgVW5jaGVja2VkQ29uZGl0aW9uIGFzIHBvc3NpYmxlLiBJIGRpZCBub3QgdHJ5
IHZlcnkgaGFyZCBpbiB0aGlzIHBhdGNoCisgICAgICAgIHRvIHJlZHVjZSBwYXRjaCBzaXplLgor
CisgICAgICAgICogd3RmL0F1dG9tYXRpY1RocmVhZC5jcHA6CisgICAgICAgIChXVEY6OkF1dG9t
YXRpY1RocmVhZENvbmRpdGlvbjo6d2FpdCk6CisgICAgICAgIChXVEY6OkF1dG9tYXRpY1RocmVh
ZENvbmRpdGlvbjo6d2FpdEZvcik6CisgICAgICAgIChXVEY6OkF1dG9tYXRpY1RocmVhZDo6QXV0
b21hdGljVGhyZWFkKToKKyAgICAgICAgKiB3dGYvQXV0b21hdGljVGhyZWFkLmg6CisgICAgICAg
ICogd3RmL0NoZWNrZWRDb25kaXRpb24uaDoKKyAgICAgICAgKiB3dGYvQ2hlY2tlZExvY2suaDoK
KyAgICAgICAgKiB3dGYvQ29uZGl0aW9uLmg6CisgICAgICAgICogd3RmL0xvY2suY3BwOgorICAg
ICAgICAoV1RGOjpVbmNoZWNrZWRMb2NrOjpsb2NrU2xvdyk6CisgICAgICAgIChXVEY6OlVuY2hl
Y2tlZExvY2s6OnVubG9ja1Nsb3cpOgorICAgICAgICAoV1RGOjpVbmNoZWNrZWRMb2NrOjp1bmxv
Y2tGYWlybHlTbG93KToKKyAgICAgICAgKFdURjo6VW5jaGVja2VkTG9jazo6c2FmZXBvaW50U2xv
dyk6CisgICAgICAgICogd3RmL0xvY2suaDoKKyAgICAgICAgKFdURjo6V1RGX0FTU0VSVFNfQUNR
VUlSRURfTE9DSyk6CisgICAgICAgICogd3RmL01ldGFBbGxvY2F0b3IuY3BwOgorICAgICAgICAo
V1RGOjpNZXRhQWxsb2NhdG9yOjpyZWxlYXNlKToKKyAgICAgICAgKFdURjo6TWV0YUFsbG9jYXRv
cjo6TWV0YUFsbG9jYXRvcik6CisgICAgICAgIChXVEY6Ok1ldGFBbGxvY2F0b3I6OmFsbG9jYXRl
KToKKyAgICAgICAgKFdURjo6TWV0YUFsbG9jYXRvcjo6Y3VycmVudFN0YXRpc3RpY3MpOgorICAg
ICAgICAqIHd0Zi9NZXRhQWxsb2NhdG9yLmg6CisgICAgICAgICogd3RmL1BhcmFsbGVsSGVscGVy
UG9vbC5jcHA6CisgICAgICAgIChXVEY6OlBhcmFsbGVsSGVscGVyUG9vbDo6UGFyYWxsZWxIZWxw
ZXJQb29sKToKKyAgICAgICAgKiB3dGYvUGFyYWxsZWxIZWxwZXJQb29sLmg6CisgICAgICAgICog
d3RmL1JlY3Vyc2l2ZUxvY2tBZGFwdGVyLmg6CisgICAgICAgICogd3RmL1dvcmtlclBvb2wuY3Bw
OgorICAgICAgICAoV1RGOjpXb3JrZXJQb29sOjpXb3JrZXJQb29sKToKKyAgICAgICAgKiB3dGYv
V29ya2VyUG9vbC5oOgorCiAyMDIxLTA1LTIzICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5j
b20+CiAKICAgICAgICAgRHJvcCBXVEY6OnRyeUhvbGRMb2NrKCkgYXMgaXQgaXMgaW5jb21wYXRp
YmxlIHdpdGggQ2xhbmcgVGhyZWFkIFNhZmV0eSBBbmFseXNpcwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDVkYmE1
ZmZmZmMwOTJiZDBjYTgyNmUxM2FiODBmMmQyYjJhZmNhZjEuLmMyMjkzNTI2NzI4NzU0NjUzMThm
MTU1ZGRhMTUyNGI4MGRkZWIxYTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2NyBAQAorMjAyMS0w
NS0yMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIE1ha2UgQ2hl
Y2tlZExvY2sgdGhlIGRlZmF1bHQgTG9jaworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjI2MTU3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgTWFrZSBDaGVja2VkTG9jayB0aGUgZGVmYXVsdCBMb2NrIHNvIHRo
YXQgd2UgZ2V0IG1vcmUgYmVuZWZpdHMgZnJvbSBDbGFuZworICAgICAgICBUaHJlYWQgU2FmZXR5
IEFuYWx5c2lzLiBOb3RlIHRoYXQgQ2hlY2tlZExvY2sgMTAwJSByZWxpZXMgb24gdGhlIGV4aXN0
aW5nCisgICAgICAgIExvY2sgaW1wbGVtZW50YXRpb24gYW5kIG1lcmVseSBhZGRzIHRoZSBjbGFu
ZyBhbm90YXRpb25zIGZvciB0aHJlYWQgCisgICAgICAgIHNhZmV0eS4KKworICAgICAgICBUaGF0
IHRoaXMgcGF0Y2ggZG9lcyBpczoKKyAgICAgICAgMS4gUmVuYW1lIHRoZSBMb2NrIGNsYXNzIHRv
IFVuY2hlY2tlZExvY2sKKyAgICAgICAgMi4gUmVuYW1lIHRoZSBDaGVja2VkTG9jayBjbGFzcyB0
byBMb2NrCisgICAgICAgIDMuIFJlbmFtZSB0aGUgQ29uZGl0aW9uIGNsYXNzIHRvIFVuY2hlY2tl
ZENvbmRpdGlvbgorICAgICAgICA0LiBSZW5hbWUgdGhlIENoZWNrZWRDb25kaXRpb24gY2xhc3Mg
dG8gQ29uZGl0aW9uCisgICAgICAgIDUuIFVwZGF0ZSB0aGUgdHlwZXMgb2YgY2VydGFpbiB2YXJp
YWJsZXMgZnJvbSBMb2NrIC8gQ29uZGl0aW9uIHRvCisgICAgICAgICAgIFVuY2hlY2tlZExvY2sg
LyBVbmNoZWNrZWRDb25kaXRpb24gaWYgSSBnb3QgYSBidWlsZCBmYWlsdXJlLiBCdWlsZCAKKyAg
ICAgICAgICAgZmFpbHVyZXMgYXJlIHVzdWFsbHkgY2F1c2VkIGJ5IHRoZSBmb2xsb3dpbmcgZmFj
dHM6CisgICAgICAgICAgIC0gTG9ja2VyPENoZWNrZWRMb2NrPiBkb2Vzbid0IHN1YmNsYXNzIEFi
c3RyYWN0TG9ja2VyIHdoaWNoIGEgbG90IG9mCisgICAgICAgICAgICAgSlNDIGNvZGUgcGFzc2Vz
IGFzIGFyZ3VtZW50CisgICAgICAgICAgIC0gTG9ja2VyPENoZWNrZWRMb2NrPiBoYXMgbm8gbW92
ZSBjb25zdHJ1Y3RvcgorICAgICAgICAgICAtIExvY2tlcjxDaGVja2VkTG9jaz4gY2Fubm90IGJl
IGNvbnN0cnVjdGVkIGZyb20gYSBsb2NrIHBvaW50ZXIsIG9ubHkKKyAgICAgICAgICAgICBhIHJl
ZmVyZW5jZQorCisgICAgICAgIEZvciBub3csIENoZWNrZWRMb2NrIGFuZCBDaGVja2VkQ29uZGl0
aW9uIHJlbWFpbiBhcyBhbGlhc2VzIHRvIExvY2sgYW5kIAorICAgICAgICBDb25kaXRpb24sIGlu
IHRoZWlyIHJlc3BlY3RpdmUgQ2hlY2tlZExvY2suaCAvIENoZWNrZWRDb25kaXRpb24uaCBoZWFk
ZXJzLgorICAgICAgICBJIHdpbGwgZHJvcCB0aGVtIGluIGEgZm9sbG93LXVwIHRvIHJlZHVjZSBw
YXRjaCBzaXplLgorCisgICAgICAgIEkgd2lsbCBhbHNvIGZvbGxvdy11cCB0byB0cnkgYW5kIGdl
dCByaWQgb2YgYXMgbXVjaCB1c2FnZSBvZiBVbmNoZWNrZWRMb2NrCisgICAgICAgIGFuZCBVbmNo
ZWNrZWRDb25kaXRpb24gYXMgcG9zc2libGUuIEkgZGlkIG5vdCB0cnkgdmVyeSBoYXJkIGluIHRo
aXMgcGF0Y2gKKyAgICAgICAgdG8gcmVkdWNlIHBhdGNoIHNpemUuIAorCisgICAgICAgICogTW9k
dWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQlNlcnZlci5jcHA6CisgICAgICAgICogTW9kdWxlcy93
ZWJhdWRpby9NZWRpYUVsZW1lbnRBdWRpb1NvdXJjZU5vZGUuaDoKKyAgICAgICAgKiBNb2R1bGVz
L3dlYmRhdGFiYXNlL09yaWdpbkxvY2suY3BwOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9N
R2xvYmFsT2JqZWN0Lmg6CisgICAgICAgICogZG9tL05vZGUuY3BwOgorICAgICAgICAqIGh0bWwv
SFRNTE1lZGlhRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50
OjpjcmVhdGVNZWRpYVBsYXllcik6CisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xDb250ZXh0
R3JvdXAuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xDb250ZXh0R3JvdXA6Om9iamVjdEdy
YXBoTG9ja0ZvckFDb250ZXh0KToKKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTENvbnRleHRH
cm91cC5oOgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMQ29udGV4dE9iamVjdC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpXZWJHTENvbnRleHRPYmplY3Q6Om9iamVjdEdyYXBoTG9ja0ZvckNv
bnRleHQpOgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMQ29udGV4dE9iamVjdC5oOgorICAg
ICAgICAqIGh0bWwvY2FudmFzL1dlYkdMT2JqZWN0Lmg6CisgICAgICAgICogaHRtbC9jYW52YXMv
V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJl
bmRlcmluZ0NvbnRleHRCYXNlOjpvYmplY3RHcmFwaExvY2spOgorICAgICAgICAqIGh0bWwvY2Fu
dmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuaDoKKyAgICAgICAgKiBodG1sL2NhbnZhcy9X
ZWJHTFNoYXJlZE9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFNoYXJlZE9iamVj
dDo6b2JqZWN0R3JhcGhMb2NrRm9yQ29udGV4dCk6CisgICAgICAgICogaHRtbC9jYW52YXMvV2Vi
R0xTaGFyZWRPYmplY3QuaDoKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5n
VHJlZU1hYy5oOgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL1JldmVyYkNvbnZvbHZlci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSZXZlcmJDb252b2x2ZXI6OmJhY2tncm91bmRUaHJlYWRFbnRy
eSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvU2hhZG93Qmx1ci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTY3JhdGNoQnVmZmVyOjpsb2NrKToKKyAgICAgICAgKFdlYkNvcmU6OlNoYWRv
d0JsdXI6OmRyYXdSZWN0U2hhZG93V2l0aFRpbGluZyk6CisgICAgICAgIChXZWJDb3JlOjpTaGFk
b3dCbHVyOjpkcmF3SW5zZXRTaGFkb3dXaXRoVGlsaW5nKToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvVmlkZW9TaW5rR1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvZW1lL1dlYktpdENvbW1vbkVuY3J5cHRpb25EZWNyeXB0
b3JHU3RyZWFtZXIuY3BwOgorCiAyMDIxLTA1LTIzICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBs
ZS5jb20+CiAKICAgICAgICAgVXNlIENoZWNrZWRMb2NrIGluIGV2ZW4gbW9yZSBwbGFjZXMKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cKaW5kZXggNDZkMzYwY2ZmMzRmMDI3ZWVkMzY5Nzg5ZjQ1NjI2M2EwMmFhY2YxOS4uMGRiZWEw
ZmVlN2YyODY5ZGYxMzkyZjMzMWRhMTRlZDRkYzNiYzQ4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0
NCBAQAorMjAyMS0wNS0yMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAg
ICAgIE1ha2UgQ2hlY2tlZExvY2sgdGhlIGRlZmF1bHQgTG9jaworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI2MTU3CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWFrZSBDaGVja2VkTG9jayB0aGUgZGVmYXVs
dCBMb2NrIHNvIHRoYXQgd2UgZ2V0IG1vcmUgYmVuZWZpdHMgZnJvbSBDbGFuZworICAgICAgICBU
aHJlYWQgU2FmZXR5IEFuYWx5c2lzLiBOb3RlIHRoYXQgQ2hlY2tlZExvY2sgMTAwJSByZWxpZXMg
b24gdGhlIGV4aXN0aW5nCisgICAgICAgIExvY2sgaW1wbGVtZW50YXRpb24gYW5kIG1lcmVseSBh
ZGRzIHRoZSBjbGFuZyBhbm90YXRpb25zIGZvciB0aHJlYWQgCisgICAgICAgIHNhZmV0eS4KKwor
ICAgICAgICBUaGF0IHRoaXMgcGF0Y2ggZG9lcyBpczoKKyAgICAgICAgMS4gUmVuYW1lIHRoZSBM
b2NrIGNsYXNzIHRvIFVuY2hlY2tlZExvY2sKKyAgICAgICAgMi4gUmVuYW1lIHRoZSBDaGVja2Vk
TG9jayBjbGFzcyB0byBMb2NrCisgICAgICAgIDMuIFJlbmFtZSB0aGUgQ29uZGl0aW9uIGNsYXNz
IHRvIFVuY2hlY2tlZENvbmRpdGlvbgorICAgICAgICA0LiBSZW5hbWUgdGhlIENoZWNrZWRDb25k
aXRpb24gY2xhc3MgdG8gQ29uZGl0aW9uCisgICAgICAgIDUuIFVwZGF0ZSB0aGUgdHlwZXMgb2Yg
Y2VydGFpbiB2YXJpYWJsZXMgZnJvbSBMb2NrIC8gQ29uZGl0aW9uIHRvCisgICAgICAgICAgIFVu
Y2hlY2tlZExvY2sgLyBVbmNoZWNrZWRDb25kaXRpb24gaWYgSSBnb3QgYSBidWlsZCBmYWlsdXJl
LiBCdWlsZCAKKyAgICAgICAgICAgZmFpbHVyZXMgYXJlIHVzdWFsbHkgY2F1c2VkIGJ5IHRoZSBm
b2xsb3dpbmcgZmFjdHM6CisgICAgICAgICAgIC0gTG9ja2VyPENoZWNrZWRMb2NrPiBkb2Vzbid0
IHN1YmNsYXNzIEFic3RyYWN0TG9ja2VyIHdoaWNoIGEgbG90IG9mCisgICAgICAgICAgICAgSlND
IGNvZGUgcGFzc2VzIGFzIGFyZ3VtZW50CisgICAgICAgICAgIC0gTG9ja2VyPENoZWNrZWRMb2Nr
PiBoYXMgbm8gbW92ZSBjb25zdHJ1Y3RvcgorICAgICAgICAgICAtIExvY2tlcjxDaGVja2VkTG9j
az4gY2Fubm90IGJlIGNvbnN0cnVjdGVkIGZyb20gYSBsb2NrIHBvaW50ZXIsIG9ubHkKKyAgICAg
ICAgICAgICBhIHJlZmVyZW5jZQorCisgICAgICAgIEZvciBub3csIENoZWNrZWRMb2NrIGFuZCBD
aGVja2VkQ29uZGl0aW9uIHJlbWFpbiBhcyBhbGlhc2VzIHRvIExvY2sgYW5kIAorICAgICAgICBD
b25kaXRpb24sIGluIHRoZWlyIHJlc3BlY3RpdmUgQ2hlY2tlZExvY2suaCAvIENoZWNrZWRDb25k
aXRpb24uaCBoZWFkZXJzLgorICAgICAgICBJIHdpbGwgZHJvcCB0aGVtIGluIGEgZm9sbG93LXVw
IHRvIHJlZHVjZSBwYXRjaCBzaXplLgorCisgICAgICAgIEkgd2lsbCBhbHNvIGZvbGxvdy11cCB0
byB0cnkgYW5kIGdldCByaWQgb2YgYXMgbXVjaCB1c2FnZSBvZiBVbmNoZWNrZWRMb2NrCisgICAg
ICAgIGFuZCBVbmNoZWNrZWRDb25kaXRpb24gYXMgcG9zc2libGUuIEkgZGlkIG5vdCB0cnkgdmVy
eSBoYXJkIGluIHRoaXMgcGF0Y2gKKyAgICAgICAgdG8gcmVkdWNlIHBhdGNoIHNpemUuIAorCisg
ICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTC5jcHA6
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMOjpwYWludFBpeGVsQnVm
ZmVyVG9JbWFnZUJ1ZmZlcik6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvSW5kZXhlZERCL1dl
YklEQlNlcnZlci5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9nbGliL0ljb25EYXRhYmFz
ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvV0tQcmludGluZ1ZpZXcubW06CisgICAgICAg
ICgtW1dLUHJpbnRpbmdWaWV3IGtub3dzUGFnZVJhbmdlOl0pOgorCiAyMDIxLTA1LTIzICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgVXNlIENoZWNrZWRMb2NrIGlu
IGV2ZW4gbW9yZSBwbGFjZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3Nl
bWJsZXIvUGVyZkxvZy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9QZXJmTG9n
LmgKaW5kZXggOGYyNGU4ZmE4YTNlMWI2YmM5NmQ1OThiNWQwZjI1MTUwYTdmZjcyMS4uOTc2MGRm
NjY1OGQyOTMzM2FmYTlhZGE4NzFhOTVjZTMyY2EwZDI0ZCAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9QZXJmTG9nLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2Fzc2VtYmxlci9QZXJmTG9nLmgKQEAgLTUwLDcgKzUwLDcgQEAgcHJpdmF0ZToKICAgICB2
b2lkKiBtX21hcmtlciB7IG51bGxwdHIgfTsKICAgICB1aW50NjRfdCBtX2NvZGVJbmRleCB7IDAg
fTsKICAgICBpbnQgbV9mZCB7IC0xIH07Ci0gICAgTG9jayBtX2xvY2s7CisgICAgVW5jaGVja2Vk
TG9jayBtX2xvY2s7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvdGVzdG1hc20uY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Fzc2VtYmxlci90ZXN0bWFzbS5jcHAKaW5kZXggMTkxZDE4MjkzNWFjMWE2ZTZmMGI1
MGI3YTMxM2JkOTg4N2FkYTQyMC4uZDM1M2U3MTJmODk5YzMwZTc5YmQ1MWM1ZGNjZDU3M2ExZDBl
YmM4MyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci90ZXN0bWFz
bS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci90ZXN0bWFzbS5jcHAK
QEAgLTE1Nyw3ICsxNTcsNyBAQCBuYW1lc3BhY2UgewogdXNpbmcgQ1BVU3RhdGUgPSBQcm9iZTo6
Q1BVU3RhdGU7CiAjZW5kaWYKIAotTG9jayBjcmFzaExvY2s7CitVbmNoZWNrZWRMb2NrIGNyYXNo
TG9jazsKIAogdHlwZWRlZiBXVEY6OkZ1bmN0aW9uPHZvaWQoQ0NhbGxIZWxwZXJzJik+IEdlbmVy
YXRvcjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDb21tb24u
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDb21tb24uY3BwCmluZGV4IGE3YWJj
NjQ3NDkzZDJiNjhkOThkYzJhNDAxNGJjMzNjN2RhYjg1ZmIuLjg3NjNjM2ZkNTFmYjE2NTRjNjk1
NDA0YTg1ZjY3YjBiOWU4MzcwNTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHQ29tbW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NvbW1v
bi5jcHAKQEAgLTM1LDcgKzM1LDcgQEAgbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBERkcgewog
CiBjb25zdCBjaGFyKiBjb25zdCB0aWVyTmFtZSA9ICJERkcgIjsKIAotc3RhdGljIExvY2sgY3Jh
c2hMb2NrOworc3RhdGljIFVuY2hlY2tlZExvY2sgY3Jhc2hMb2NrOwogCiB2b2lkIHN0YXJ0Q3Jh
c2hpbmcoKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdUaHJl
YWREYXRhLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1RocmVhZERhdGEuaAppbmRl
eCAzN2RmOWJkMTIxNTQ5Y2RlZDExZTk5ZjQyZmZkMmM1MGYwMjUyZDg2Li41MjJiN2QyYjdjMzYx
ZThiOWQzODBjNzI4Y2ZiOGEwNWIxNzQ2OWJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR1RocmVhZERhdGEuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1RocmVhZERhdGEuaApAQCAtNDcsNyArNDcsNyBAQCBwcml2YXRlOgogICAgIAogICAgIFdv
cmtsaXN0KiBtX3dvcmtsaXN0OwogICAgIFJlZlB0cjxBdXRvbWF0aWNUaHJlYWQ+IG1fdGhyZWFk
OwotICAgIExvY2sgbV9yaWdodFRvUnVuOworICAgIFVuY2hlY2tlZExvY2sgbV9yaWdodFRvUnVu
OwogICAgIFNhZmVwb2ludCogbV9zYWZlcG9pbnQ7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1dvcmtsaXN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHV29ya2xpc3QuY3BwCmluZGV4IDRkMjI4Y2ZlODdhZDk4MTkzNmMwN2MwOWQ0MWI3
Mjc1MTU1OTRhOTEuLmQxNTdhZGY4NzZkYzg0NjgzYTg2YzA0NmVhMmJlZWNiYWI5OWE5MzcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHV29ya2xpc3QuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHV29ya2xpc3QuY3BwCkBAIC0zOSw3ICszOSw3
IEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKIAogY2xhc3MgV29ya2xpc3Q6OlRo
cmVhZEJvZHkgZmluYWwgOiBwdWJsaWMgQXV0b21hdGljVGhyZWFkIHsKIHB1YmxpYzoKLSAgICBU
aHJlYWRCb2R5KGNvbnN0IEFic3RyYWN0TG9ja2VyJiBsb2NrZXIsIFdvcmtsaXN0JiB3b3JrbGlz
dCwgVGhyZWFkRGF0YSYgZGF0YSwgQm94PExvY2s+IGxvY2ssIFJlZjxBdXRvbWF0aWNUaHJlYWRD
b25kaXRpb24+JiYgY29uZGl0aW9uLCBpbnQgcmVsYXRpdmVQcmlvcml0eSkKKyAgICBUaHJlYWRC
b2R5KGNvbnN0IEFic3RyYWN0TG9ja2VyJiBsb2NrZXIsIFdvcmtsaXN0JiB3b3JrbGlzdCwgVGhy
ZWFkRGF0YSYgZGF0YSwgQm94PFVuY2hlY2tlZExvY2s+IGxvY2ssIFJlZjxBdXRvbWF0aWNUaHJl
YWRDb25kaXRpb24+JiYgY29uZGl0aW9uLCBpbnQgcmVsYXRpdmVQcmlvcml0eSkKICAgICAgICAg
OiBBdXRvbWF0aWNUaHJlYWQobG9ja2VyLCBsb2NrLCBXVEZNb3ZlKGNvbmRpdGlvbiksIFRocmVh
ZFR5cGU6OkNvbXBpbGVyKQogICAgICAgICAsIG1fd29ya2xpc3Qod29ya2xpc3QpCiAgICAgICAg
ICwgbV9kYXRhKGRhdGEpCkBAIC0xODEsNyArMTgxLDcgQEAgc3RhdGljIENTdHJpbmcgY3JlYXRl
V29ya2xpc3ROYW1lKENTdHJpbmcmJiB0aWVyTmFtZSkKIFdvcmtsaXN0OjpXb3JrbGlzdChDU3Ry
aW5nJiYgdGllck5hbWUpCiAgICAgOiBtX3RocmVhZE5hbWUoY3JlYXRlV29ya2xpc3ROYW1lKFdU
Rk1vdmUodGllck5hbWUpKSkKICAgICAsIG1fcGxhbkVucXVldWVkKEF1dG9tYXRpY1RocmVhZENv
bmRpdGlvbjo6Y3JlYXRlKCkpCi0gICAgLCBtX2xvY2soQm94PExvY2s+OjpjcmVhdGUoKSkKKyAg
ICAsIG1fbG9jayhCb3g8VW5jaGVja2VkTG9jaz46OmNyZWF0ZSgpKQogewogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1dvcmtsaXN0LmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1dvcmtsaXN0LmgKaW5kZXggMWNlMDJjMDdkOGIxMjgxOTRiY2Mw
M2M3ZjJhNTQxY2QwYTVmNDUyOS4uNTc2ZTAzZTQ3ZTZlZjUwM2M2ZDAxMTZlY2ZiZGMwYThjNmM3
NWM4OCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdXb3JrbGlzdC5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHV29ya2xpc3QuaApAQCAtMTEwLDEw
ICsxMTAsMTAgQEAgcHJpdmF0ZToKICAgICAvLyBiZSBjb21wbGV0ZWQuCiAgICAgVmVjdG9yPFJl
ZlB0cjxQbGFuPiwgMTY+IG1fcmVhZHlQbGFuczsKICAgICBSZWY8QXV0b21hdGljVGhyZWFkQ29u
ZGl0aW9uPiBtX3BsYW5FbnF1ZXVlZDsKLSAgICBDb25kaXRpb24gbV9wbGFuQ29tcGlsZWQ7Cisg
ICAgVW5jaGVja2VkQ29uZGl0aW9uIG1fcGxhbkNvbXBpbGVkOwogCi0gICAgTG9jayBtX3N1c3Bl
bnNpb25Mb2NrOwotICAgIEJveDxMb2NrPiBtX2xvY2s7CisgICAgVW5jaGVja2VkTG9jayBtX3N1
c3BlbnNpb25Mb2NrOworICAgIEJveDxVbmNoZWNrZWRMb2NrPiBtX2xvY2s7CiB9OwogCiBKU19F
WFBPUlRfUFJJVkFURSB1bnNpZ25lZCBzZXROdW1iZXJPZkRGR0NvbXBpbGVyVGhyZWFkcyh1bnNp
Z25lZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZHluYmVuY2guY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2R5bmJlbmNoLmNwcAppbmRleCA4ZjllNWViNzQxMDQ3NWZi
N2M4YjA4NjkyNjIzMzRmZTJhOTc4OTg1Li43OTUyNjExMGUyYTNhNjIwNTJkMTA5ZTliZGI4OGU5
ZWVhYmZmZjU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZHluYmVuY2guY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9keW5iZW5jaC5jcHAKQEAgLTQwLDcgKzQwLDcg
QEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAogbmFtZXNwYWNlIHsKIAotTG9jayBjcmFzaExvY2s7
CitVbmNoZWNrZWRMb2NrIGNyYXNoTG9jazsKIGNvbnN0IGNoYXIqIG5hbWVGaWx0ZXI7CiB1bnNp
Z25lZCByZXF1ZXN0ZWRJdGVyYXRpb25Db3VudDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2hlYXAvQmxvY2tEaXJlY3RvcnkuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9o
ZWFwL0Jsb2NrRGlyZWN0b3J5LmgKaW5kZXggZGFhMDNjNDdlZGY5ZDM2ZDE1NmJkNWQxYTY2MjFi
ZWU2YWFkZjhhZC4uOTAxNTg4Yzk0MzljMzVkZmM4MDRhMGI3NTdjNWU1YjU2M2Y0NGE0ZSAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvQmxvY2tEaXJlY3RvcnkuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9CbG9ja0RpcmVjdG9yeS5oCkBAIC05Myw3ICs5
Myw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgdXBkYXRlUGVyY2VudGFnZU9mUGFnZWRPdXRQYWdl
cyhXVEY6OlNpbXBsZVN0YXRzJik7CiAgICAgCi0gICAgTG9jayYgYml0dmVjdG9yTG9jaygpIHsg
cmV0dXJuIG1fYml0dmVjdG9yTG9jazsgfQorICAgIFVuY2hlY2tlZExvY2smIGJpdHZlY3Rvckxv
Y2soKSB7IHJldHVybiBtX2JpdHZlY3RvckxvY2s7IH0KIAogI2RlZmluZSBCTE9DS19ESVJFQ1RP
UllfQklUX0FDQ0VTU09SUyhsb3dlckJpdE5hbWUsIGNhcGl0YWxCaXROYW1lKSAgICAgXAogICAg
IGJvb2wgaXMgIyMgY2FwaXRhbEJpdE5hbWUoY29uc3QgQWJzdHJhY3RMb2NrZXImLCBzaXplX3Qg
aW5kZXgpIGNvbnN0IHsgcmV0dXJuIG1fYml0cy5pcyAjIyBjYXBpdGFsQml0TmFtZShpbmRleCk7
IH0gXApAQCAtMTU1LDcgKzE1NSw3IEBAIHByaXZhdGU6CiAgICAgLy8gTXV0YXRvciB1c2VzIHRo
aXMgdG8gZ3VhcmQgcmVzaXppbmcgdGhlIGJpdHZlY3RvcnMuIFRob3NlIHRoaW5ncyBpbiB0aGUg
R0MgdGhhdCBtYXkgcnVuCiAgICAgLy8gY29uY3VycmVudGx5IHRvIHRoZSBtdXRhdG9yIG11c3Qg
bG9jayB0aGlzIHdoZW4gYWNjZXNzaW5nIHRoZSBiaXR2ZWN0b3JzLgogICAgIEJsb2NrRGlyZWN0
b3J5Qml0cyBtX2JpdHM7Ci0gICAgTG9jayBtX2JpdHZlY3RvckxvY2s7CisgICAgVW5jaGVja2Vk
TG9jayBtX2JpdHZlY3RvckxvY2s7CiAgICAgTG9jayBtX2xvY2FsQWxsb2NhdG9yc0xvY2s7CiAg
ICAgQ2VsbEF0dHJpYnV0ZXMgbV9hdHRyaWJ1dGVzOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaGVhcC9Db2RlQmxvY2tTZXQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9o
ZWFwL0NvZGVCbG9ja1NldC5oCmluZGV4IGIwZGNiNmNjNzdjOWY5OWQzMDJjNzk5ZDk4ZTM5ZTk1
M2U2YWY0MTkuLjg1NmNjMWJiZjhiZDJkMTdjZGNkY2E3ZDNiNDRjNzFmMmZhNzBiMTggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0NvZGVCbG9ja1NldC5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0NvZGVCbG9ja1NldC5oCkBAIC01NCw3ICs1NCw3IEBA
IHB1YmxpYzoKICAgICB2b2lkIGNsZWFyQ3VycmVudGx5RXhlY3V0aW5nKCk7CiAKICAgICBib29s
IGNvbnRhaW5zKGNvbnN0IEFic3RyYWN0TG9ja2VyJiwgdm9pZCogY2FuZGlkYXRlQ29kZUJsb2Nr
KTsKLSAgICBMb2NrJiBnZXRMb2NrKCkgeyByZXR1cm4gbV9sb2NrOyB9CisgICAgVW5jaGVja2Vk
TG9jayYgZ2V0TG9jaygpIHsgcmV0dXJuIG1fbG9jazsgfQogCiAgICAgLy8gVGhpcyBpcyBleHBl
Y3RlZCB0byBydW4gb25seSB3aGVuIHdlJ3JlIG5vdCBhZGRpbmcgdG8gdGhlIHNldCBmb3Igbm93
LiBJZgogICAgIC8vIHRoaXMgbmVlZHMgdG8gcnVuIGNvbmN1cnJlbnRseSBpbiB0aGUgZnV0dXJl
LCB3ZSdsbCBuZWVkIHRvIGxvY2sgYXJvdW5kIHRoaXMuCkBAIC03OCw3ICs3OCw3IEBAIHB1Ymxp
YzoKIHByaXZhdGU6CiAgICAgSGFzaFNldDxDb2RlQmxvY2sqPiBtX2NvZGVCbG9ja3M7CiAgICAg
SGFzaFNldDxDb2RlQmxvY2sqPiBtX2N1cnJlbnRseUV4ZWN1dGluZzsKLSAgICBMb2NrIG1fbG9j
azsKKyAgICBVbmNoZWNrZWRMb2NrIG1fbG9jazsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNwcAppbmRleCA4YmM4NmQyY2E3NTE1YjRiOGUyZjc2
NGRlOTBlMmE2YzI0NzI2NjkxLi44NjFhNDAyZTUwZDBiY2MwZmVhZTYwMzA0N2NmMzVjMmVjZGM0
ZGU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNwcApAQCAtMzAyLDcgKzMwMiw3IEBA
IEhlYXA6OkhlYXAoVk0mIHZtLCBIZWFwVHlwZSBoZWFwVHlwZSkKICAgICAsIG1fc2hhcmVkQ29s
bGVjdG9yTWFya1N0YWNrKG1ha2VVbmlxdWU8TWFya1N0YWNrQXJyYXk+KCkpCiAgICAgLCBtX3No
YXJlZE11dGF0b3JNYXJrU3RhY2sobWFrZVVuaXF1ZTxNYXJrU3RhY2tBcnJheT4oKSkKICAgICAs
IG1faGVscGVyQ2xpZW50KCZoZWFwSGVscGVyUG9vbCgpKQotICAgICwgbV90aHJlYWRMb2NrKEJv
eDxMb2NrPjo6Y3JlYXRlKCkpCisgICAgLCBtX3RocmVhZExvY2soQm94PFVuY2hlY2tlZExvY2s+
OjpjcmVhdGUoKSkKICAgICAsIG1fdGhyZWFkQ29uZGl0aW9uKEF1dG9tYXRpY1RocmVhZENvbmRp
dGlvbjo6Y3JlYXRlKCkpCiB7CiAgICAgbV93b3JsZFN0YXRlLnN0b3JlKDApOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2hlYXAvSGVhcC5oCmluZGV4IDdhNTNlMDUxNWQwNjk2NTNkMDRmYjliYWMzNTU4ZDdlODFk
OTVmMmMuLjY4ZDkwNzRmZGYzZDhlYThmNDg3YjA2NDg3YjgwZDdhMmIxYjgwMzEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaGVhcC9IZWFwLmgKQEAgLTcyMiw4ICs3MjIsOCBAQCBwcml2YXRlOgogICAgIEF0
b21pYzx1bnNpZ25lZD4gbV93b3JsZFN0YXRlOwogICAgIGJvb2wgbV93b3JsZElzU3RvcHBlZCB7
IGZhbHNlIH07CiAgICAgTG9jayBtX3Zpc2l0UmFjZUxvY2s7Ci0gICAgTG9jayBtX21hcmtpbmdN
dXRleDsKLSAgICBDb25kaXRpb24gbV9tYXJraW5nQ29uZGl0aW9uVmFyaWFibGU7CisgICAgVW5j
aGVja2VkTG9jayBtX21hcmtpbmdNdXRleDsKKyAgICBVbmNoZWNrZWRDb25kaXRpb24gbV9tYXJr
aW5nQ29uZGl0aW9uVmFyaWFibGU7CiAKICAgICBNb25vdG9uaWNUaW1lIG1fYmVmb3JlR0M7CiAg
ICAgTW9ub3RvbmljVGltZSBtX2FmdGVyR0M7CkBAIC03NDYsNyArNzQ2LDcgQEAgcHJpdmF0ZToK
IAogICAgIHVpbnQ2NF90IG1fbXV0YXRvckV4ZWN1dGlvblZlcnNpb24geyAwIH07CiAgICAgdWlu
dDY0X3QgbV9waGFzZVZlcnNpb24geyAwIH07Ci0gICAgQm94PExvY2s+IG1fdGhyZWFkTG9jazsK
KyAgICBCb3g8VW5jaGVja2VkTG9jaz4gbV90aHJlYWRMb2NrOwogICAgIFJlZjxBdXRvbWF0aWNU
aHJlYWRDb25kaXRpb24+IG1fdGhyZWFkQ29uZGl0aW9uOyAvLyBUaGUgbXV0YXRvciBtdXN0IG5v
dCB3YWl0IG9uIHRoaXMuIEl0IHdvdWxkIGNhdXNlIGEgZGVhZGxvY2suCiAgICAgUmVmUHRyPEF1
dG9tYXRpY1RocmVhZD4gbV90aHJlYWQ7CiAKQEAgLTc2OCw4ICs3NjgsOCBAQCBwcml2YXRlOgog
I2VuZGlmCiAKICAgICBib29sIG1fcGFyYWxsZWxNYXJrZXJzU2hvdWxkRXhpdCB7IGZhbHNlIH07
Ci0gICAgTG9jayBtX2NvbGxlY3RDb250aW51b3VzbHlMb2NrOwotICAgIENvbmRpdGlvbiBtX2Nv
bGxlY3RDb250aW51b3VzbHlDb25kaXRpb247CisgICAgVW5jaGVja2VkTG9jayBtX2NvbGxlY3RD
b250aW51b3VzbHlMb2NrOworICAgIFVuY2hlY2tlZENvbmRpdGlvbiBtX2NvbGxlY3RDb250aW51
b3VzbHlDb25kaXRpb247CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hcmtlZFNwYWNlLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaGVhcC9NYXJrZWRTcGFjZS5oCmluZGV4IDViZTUxZGU3ZTRjZjk5YjNkNmY0Nzc3N2Yw
MGI2ZDJhOTdhYjgwNGYuLjI2OGI5NzBhNTk4YjQyNWI5ZmNlMzY3ZGIyZWJhZWE3MWViY2MzMWIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hcmtlZFNwYWNlLmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTWFya2VkU3BhY2UuaApAQCAtMTY4LDcgKzE2
OCw3IEBAIHB1YmxpYzoKICAgICAKICAgICBCbG9ja0RpcmVjdG9yeSogZmlyc3REaXJlY3Rvcnko
KSBjb25zdCB7IHJldHVybiBtX2RpcmVjdG9yaWVzLmZpcnN0KCk7IH0KICAgICAKLSAgICBMb2Nr
JiBkaXJlY3RvcnlMb2NrKCkgeyByZXR1cm4gbV9kaXJlY3RvcnlMb2NrOyB9CisgICAgVW5jaGVj
a2VkTG9jayYgZGlyZWN0b3J5TG9jaygpIHsgcmV0dXJuIG1fZGlyZWN0b3J5TG9jazsgfQogICAg
IHZvaWQgYWRkQmxvY2tEaXJlY3RvcnkoY29uc3QgQWJzdHJhY3RMb2NrZXImLCBCbG9ja0RpcmVj
dG9yeSopOwogICAgIAogICAgIC8vIFdoZW4gdGhpcyBpcyB0cnVlIGl0IG1lYW5zIHRoYXQgd2Ug
aGF2ZSBmbGlwcGVkIGJ1dCB0aGUgbWFyayBiaXRzIGhhdmVuJ3QgY29udmVyZ2VkIHlldC4KQEAg
LTIxNCw3ICsyMTQsNyBAQCBwcml2YXRlOgogICAgIEhlYXBWZXJzaW9uIG1fbmV3bHlBbGxvY2F0
ZWRWZXJzaW9uIHsgaW5pdGlhbFZlcnNpb24gfTsKICAgICBib29sIG1faXNJdGVyYXRpbmcgeyBm
YWxzZSB9OwogICAgIGJvb2wgbV9pc01hcmtpbmcgeyBmYWxzZSB9OwotICAgIExvY2sgbV9kaXJl
Y3RvcnlMb2NrOworICAgIFVuY2hlY2tlZExvY2sgbV9kaXJlY3RvcnlMb2NrOwogICAgIE1hcmtl
ZEJsb2NrU2V0IG1fYmxvY2tzOwogICAgIAogICAgIFNlbnRpbmVsTGlua2VkTGlzdDxXZWFrU2V0
LCBCYXNpY1Jhd1NlbnRpbmVsTm9kZTxXZWFrU2V0Pj4gbV9hY3RpdmVXZWFrU2V0czsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hcmtpbmdDb25zdHJhaW50U29sdmVy
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYXJraW5nQ29uc3RyYWludFNvbHZlci5o
CmluZGV4IDhlNGYyZjRkZGYzMWNmYzgwNzFjZjNiZWNiNmU1ZTI3OGFlY2IwMWUuLjM1MGU1NTY2
MjQyODRkYWJlNDczMTdmYzgwZDJmZGQ2YjlhNTg3N2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9oZWFwL01hcmtpbmdDb25zdHJhaW50U29sdmVyLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2hlYXAvTWFya2luZ0NvbnN0cmFpbnRTb2x2ZXIuaApAQCAtOTUsOCArOTUs
OCBAQCBwcml2YXRlOgogICAgIEJpdFZlY3RvciBtX2V4ZWN1dGVkOwogICAgIERlcXVlPFRhc2tX
aXRoQ29uc3RyYWludCwgMzI+IG1fdG9FeGVjdXRlSW5QYXJhbGxlbDsKICAgICBWZWN0b3I8dW5z
aWduZWQsIDMyPiBtX3RvRXhlY3V0ZVNlcXVlbnRpYWxseTsKLSAgICBMb2NrIG1fbG9jazsKLSAg
ICBDb25kaXRpb24gbV9jb25kaXRpb247CisgICAgVW5jaGVja2VkTG9jayBtX2xvY2s7CisgICAg
VW5jaGVja2VkQ29uZGl0aW9uIG1fY29uZGl0aW9uOwogICAgIGJvb2wgbV9waWNrTmV4dElzU3Rp
bGxBY3RpdmUgeyB0cnVlIH07CiAgICAgdW5zaWduZWQgbV9udW1UaHJlYWRzVGhhdE1heVByb2R1
Y2VXb3JrIHsgMCB9OwogICAgIFZlY3RvcjxWaXNpdENvdW50ZXIsIDE2PiBtX3Zpc2l0Q291bnRl
cnM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9TbG90VmlzaXRvci5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9TbG90VmlzaXRvci5jcHAKaW5kZXggZjlh
MTgzMjNjNzI4MzM0NzE5OGQ5Njg4OWRjNTlmNzQzNzhmMjA3Mi4uYWI3MzJjMjRlYzUwZTg5MDli
NDkxZWM5YjE2OWFmMzBmZWM4OTMzNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2hlYXAvU2xvdFZpc2l0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1Ns
b3RWaXNpdG9yLmNwcApAQCAtNDM2LDcgKzQzNiw3IEBAIHZvaWQgU2xvdFZpc2l0b3I6OmRvbmF0
ZUtub3duUGFyYWxsZWwoTWFya1N0YWNrQXJyYXkmIGZyb20sIE1hcmtTdGFja0FycmF5JiB0bykK
IAogICAgIC8vIElmIHdlJ3JlIGNvbnRlbmRpbmcgb24gdGhlIGxvY2ssIGJlIGNvbnNlcnZhdGl2
ZSBhbmQgYXNzdW1lIHRoYXQgYW5vdGhlcgogICAgIC8vIHRocmVhZCBpcyBhbHJlYWR5IGRvbmF0
aW5nLgotICAgIHN0ZDo6dW5pcXVlX2xvY2s8TG9jaz4gbG9jayhtX2hlYXAubV9tYXJraW5nTXV0
ZXgsIHN0ZDo6dHJ5X3RvX2xvY2spOworICAgIHN0ZDo6dW5pcXVlX2xvY2s8VW5jaGVja2VkTG9j
az4gbG9jayhtX2hlYXAubV9tYXJraW5nTXV0ZXgsIHN0ZDo6dHJ5X3RvX2xvY2spOwogICAgIGlm
ICghbG9jay5vd25zX2xvY2soKSkKICAgICAgICAgcmV0dXJuOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaGVhcC9TbG90VmlzaXRvci5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2hlYXAvU2xvdFZpc2l0b3IuaAppbmRleCA0MjMzM2FmM2UwMjAyNjdlNTM3ZTA5M2U0YjA2
MzMyMjFkZTNlNzNhLi5kNTVkYjYwMTdkZTczY2Y2YzJmMWNjY2Y0Y2YzY2Q1NDM4Mzk2NTM5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9TbG90VmlzaXRvci5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1Nsb3RWaXNpdG9yLmgKQEAgLTE2MSw3ICsxNjEs
NyBAQCBwdWJsaWM6CiAKICAgICBib29sIG11dGF0b3JJc1N0b3BwZWQoKSBjb25zdCBmaW5hbCB7
IHJldHVybiBtX211dGF0b3JJc1N0b3BwZWQ7IH0KICAgICAKLSAgICBMb2NrJiByaWdodFRvUnVu
KCkgeyByZXR1cm4gbV9yaWdodFRvUnVuOyB9CisgICAgVW5jaGVja2VkTG9jayYgcmlnaHRUb1J1
bigpIHsgcmV0dXJuIG1fcmlnaHRUb1J1bjsgfQogICAgIAogICAgIHZvaWQgdXBkYXRlTXV0YXRv
cklzU3RvcHBlZChjb25zdCBBYnN0cmFjdExvY2tlciYpOwogICAgIHZvaWQgdXBkYXRlTXV0YXRv
cklzU3RvcHBlZCgpOwpAQCAtMjMyLDcgKzIzMiw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX211
dGF0b3JJc1N0b3BwZWQgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9jYW5PcHRpbWl6ZUZvclN0b3Bw
ZWRNdXRhdG9yIHsgZmFsc2UgfTsKICAgICBib29sIG1faXNJblBhcmFsbGVsTW9kZSB7IGZhbHNl
IH07Ci0gICAgTG9jayBtX3JpZ2h0VG9SdW47CisgICAgVW5jaGVja2VkTG9jayBtX3JpZ2h0VG9S
dW47CiAgICAgCiAgICAgLy8gUHV0IHBhZGRpbmcgaGVyZSB0byBtaXRpZ2F0ZSBmYWxzZSBzaGFy
aW5nIGJldHdlZW4gbXVsdGlwbGUgU2xvdFZpc2l0b3JzLgogICAgIGNoYXIgcGFkZGluZ1s2NF07
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3JlbW90ZS9zb2Nr
ZXQvUmVtb3RlSW5zcGVjdG9yU29ja2V0RW5kcG9pbnQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9pbnNwZWN0b3IvcmVtb3RlL3NvY2tldC9SZW1vdGVJbnNwZWN0b3JTb2NrZXRFbmRwb2ludC5o
CmluZGV4IDI1YmMxOGNiNjhkODNkMmZiZmFiYmNkZjZkMzU0MTgyNzViOTYyMTguLjI0YTNlNThm
YzM2N2IzZjE5Mjk1MGZjNjhiZDdlZjkyZTg2OGUxZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL3NvY2tldC9SZW1vdGVJbnNwZWN0b3JTb2NrZXRF
bmRwb2ludC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL3Nv
Y2tldC9SZW1vdGVJbnNwZWN0b3JTb2NrZXRFbmRwb2ludC5oCkBAIC0xODIsNyArMTgyLDcgQEAg
cHJvdGVjdGVkOgogICAgIGJvb2wgaXNMaXN0ZW5pbmcoQ29ubmVjdGlvbklEKTsKICAgICBpbnQg
cG9sbGluZ1RpbWVvdXQoKTsKIAotICAgIG11dGFibGUgTG9jayBtX2Nvbm5lY3Rpb25zTG9jazsK
KyAgICBtdXRhYmxlIFVuY2hlY2tlZExvY2sgbV9jb25uZWN0aW9uc0xvY2s7CiAgICAgSGFzaE1h
cDxDb25uZWN0aW9uSUQsIHN0ZDo6dW5pcXVlX3B0cjxDbGllbnRDb25uZWN0aW9uPj4gbV9jbGll
bnRzOwogICAgIEhhc2hNYXA8Q29ubmVjdGlvbklELCBzdGQ6OnVuaXF1ZV9wdHI8TGlzdGVuZXJD
b25uZWN0aW9uPj4gbV9saXN0ZW5lcnM7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvRXhlY3V0YWJsZUFsbG9jYXRvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0V4ZWN1dGFibGVBbGxvY2F0b3IuY3BwCmluZGV4IDI3OWUwNzVlNGNiNjE3NzI5YzZlMmQ1
ZmVmZjk4NjI3YzcwNTJmMDEuLjYxOTQ1NWIxZjZkYmFjYTRhN2RkYWM3Y2JmNmQ5YzkyZmExNmNh
MmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvRXhlY3V0YWJsZUFsbG9j
YXRvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9FeGVjdXRhYmxlQWxsb2Nh
dG9yLmNwcApAQCAtNDg1LDcgKzQ4NSw3IEBAIHB1YmxpYzoKICNlbmRpZiAvLyBFTkFCTEUoSlVN
UF9JU0xBTkRTKQogICAgIH0KIAotICAgIExvY2smIGdldExvY2soKSB7IHJldHVybiBtX2xvY2s7
IH0KKyAgICBVbmNoZWNrZWRMb2NrJiBnZXRMb2NrKCkgeyByZXR1cm4gbV9sb2NrOyB9CiAKICAg
ICAvLyBOb24gYXRvbWljCiAgICAgc2l6ZV90IGJ5dGVzQWxsb2NhdGVkKCkgCkBAIC01NDcsNyAr
NTQ3LDcgQEAgcHVibGljOgogICAgIH0KIAogI2lmIEVOQUJMRShKVU1QX0lTTEFORFMpCi0gICAg
dm9pZCBoYW5kbGVXaWxsQmVSZWxlYXNlZChjb25zdCBMb2NrSG9sZGVyJiBsb2NrZXIsIE1ldGFB
bGxvY2F0b3JIYW5kbGUmIGhhbmRsZSkKKyAgICB2b2lkIGhhbmRsZVdpbGxCZVJlbGVhc2VkKGNv
bnN0IFVuY2hlY2tlZExvY2tIb2xkZXImIGxvY2tlciwgTWV0YUFsbG9jYXRvckhhbmRsZSYgaGFu
ZGxlKQogICAgIHsKICAgICAgICAgaWYgKG1faXNsYW5kc0Zvckp1bXBTb3VyY2VMb2NhdGlvbi5p
c0VtcHR5KCkpCiAgICAgICAgICAgICByZXR1cm47CkBAIC01OTksNyArNTk5LDcgQEAgcHJpdmF0
ZToKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICB9CiAKLSAgICB2b2lkIGZyZWVKdW1wSXNs
YW5kcyhjb25zdCBMb2NrSG9sZGVyJiwgSXNsYW5kcyogaXNsYW5kcykKKyAgICB2b2lkIGZyZWVK
dW1wSXNsYW5kcyhjb25zdCBVbmNoZWNrZWRMb2NrSG9sZGVyJiwgSXNsYW5kcyogaXNsYW5kcykK
ICAgICB7CiAgICAgICAgIGZvciAoQ29kZUxvY2F0aW9uTGFiZWw8RXhlY3V0YWJsZU1lbW9yeVB0
clRhZz4ganVtcElzbGFuZCA6IGlzbGFuZHMtPmp1bXBJc2xhbmRzKSB7CiAgICAgICAgICAgICB1
aW50cHRyX3QgdW50YWdnZWRKdW1wSXNsYW5kID0gYml0d2lzZV9jYXN0PHVpbnRwdHJfdD4oanVt
cElzbGFuZC5kYXRhTG9jYXRpb24oKSk7CkBAIC02MTAsMTQgKzYxMCwxNCBAQCBwcml2YXRlOgog
ICAgICAgICBpc2xhbmRzLT5qdW1wSXNsYW5kcy5jbGVhcigpOwogICAgIH0KIAotICAgIHZvaWQg
ZnJlZUlzbGFuZHMoY29uc3QgTG9ja0hvbGRlciYgbG9ja2VyLCBJc2xhbmRzKiBpc2xhbmRzKQor
ICAgIHZvaWQgZnJlZUlzbGFuZHMoY29uc3QgVW5jaGVja2VkTG9ja0hvbGRlciYgbG9ja2VyLCBJ
c2xhbmRzKiBpc2xhbmRzKQogICAgIHsKICAgICAgICAgZnJlZUp1bXBJc2xhbmRzKGxvY2tlciwg
aXNsYW5kcyk7CiAgICAgICAgIG1faXNsYW5kc0Zvckp1bXBTb3VyY2VMb2NhdGlvbi5yZW1vdmUo
aXNsYW5kcyk7CiAgICAgICAgIGRlbGV0ZSBpc2xhbmRzOwogICAgIH0KIAotICAgIHZvaWQqIGlz
bGFuZEZvckp1bXBMb2NhdGlvbihjb25zdCBMb2NrSG9sZGVyJiBsb2NrZXIsIHVpbnRwdHJfdCBq
dW1wTG9jYXRpb24sIHVpbnRwdHJfdCB0YXJnZXQsIGJvb2wgY29uY3VycmVudGx5KQorICAgIHZv
aWQqIGlzbGFuZEZvckp1bXBMb2NhdGlvbihjb25zdCBVbmNoZWNrZWRMb2NrSG9sZGVyJiBsb2Nr
ZXIsIHVpbnRwdHJfdCBqdW1wTG9jYXRpb24sIHVpbnRwdHJfdCB0YXJnZXQsIGJvb2wgY29uY3Vy
cmVudGx5KQogICAgIHsKICAgICAgICAgSXNsYW5kcyogaXNsYW5kcyA9IG1faXNsYW5kc0Zvckp1
bXBTb3VyY2VMb2NhdGlvbi5maW5kRXhhY3QoYml0d2lzZV9jYXN0PHZvaWQqPihqdW1wTG9jYXRp
b24pKTsKICAgICAgICAgaWYgKGlzbGFuZHMpIHsKQEAgLTc0Niw3ICs3NDYsNyBAQCBwcml2YXRl
OgogICAgICAgICAgICAgcmV0dXJuIGlzbGFuZHNQZXJQYWdlOwogICAgICAgICB9CiAKLSAgICAg
ICAgdm9pZCByZWxlYXNlKGNvbnN0IExvY2tIb2xkZXImIGxvY2tlciwgTWV0YUFsbG9jYXRvckhh
bmRsZSYgaGFuZGxlKSBmaW5hbAorICAgICAgICB2b2lkIHJlbGVhc2UoY29uc3QgVW5jaGVja2Vk
TG9ja0hvbGRlciYgbG9ja2VyLCBNZXRhQWxsb2NhdG9ySGFuZGxlJiBoYW5kbGUpIGZpbmFsCiAg
ICAgICAgIHsKICAgICAgICAgICAgIG1fZml4ZWRBbGxvY2F0b3IuaGFuZGxlV2lsbEJlUmVsZWFz
ZWQobG9ja2VyLCBoYW5kbGUpOwogICAgICAgICAgICAgQmFzZTo6cmVsZWFzZShsb2NrZXIsIGhh
bmRsZSk7CkBAIC04NDcsNyArODQ3LDcgQEAgcHJpdmF0ZToKICAgICB9OwogI2VuZGlmIC8vIEVO
QUJMRShKVU1QX0lTTEFORFMpCiAKLSAgICBMb2NrIG1fbG9jazsKKyAgICBVbmNoZWNrZWRMb2Nr
IG1fbG9jazsKICAgICBQYWdlUmVzZXJ2YXRpb24gbV9yZXNlcnZhdGlvbjsKICNpZiBFTkFCTEUo
SlVNUF9JU0xBTkRTKQogICAgIHN0ZDo6YXJyYXk8UmVnaW9uQWxsb2NhdG9yLCBtYXhOdW1iZXJP
ZlJlZ2lvbnM+IG1fYWxsb2NhdG9yczsKQEAgLTk2MSw3ICs5NjEsNyBAQCBib29sIEV4ZWN1dGFi
bGVBbGxvY2F0b3I6OmlzVmFsaWRFeGVjdXRhYmxlTWVtb3J5KGNvbnN0IEFic3RyYWN0TG9ja2Vy
JiBsb2NrZXIsCiAgICAgcmV0dXJuIGFsbG9jYXRvci0+aXNJbkFsbG9jYXRlZE1lbW9yeShsb2Nr
ZXIsIGFkZHJlc3MpOwogfQogCi1Mb2NrJiBFeGVjdXRhYmxlQWxsb2NhdG9yOjpnZXRMb2NrKCkg
Y29uc3QKK1VuY2hlY2tlZExvY2smIEV4ZWN1dGFibGVBbGxvY2F0b3I6OmdldExvY2soKSBjb25z
dAogewogICAgIEZpeGVkVk1Qb29sRXhlY3V0YWJsZUFsbG9jYXRvciogYWxsb2NhdG9yID0gZ19q
c2NDb25maWcuZml4ZWRWTVBvb2xFeGVjdXRhYmxlQWxsb2NhdG9yOwogICAgIGlmICghYWxsb2Nh
dG9yKQpAQCAtMTAzOCw3ICsxMDM4LDcgQEAgdm9pZCBkdW1wSklUTWVtb3J5KGNvbnN0IHZvaWQq
IGRzdCwgY29uc3Qgdm9pZCogc3JjLCBzaXplX3Qgc2l6ZSkKICAgICBzdGF0aWMgdWludDhfdCog
YnVmZmVyOwogICAgIHN0YXRpYyBjb25zdGV4cHIgc2l6ZV90IGJ1ZmZlclNpemUgPSBmaXhlZEV4
ZWN1dGFibGVNZW1vcnlQb29sU2l6ZTsKICAgICBzdGF0aWMgc2l6ZV90IG9mZnNldCA9IDA7Ci0g
ICAgc3RhdGljIExvY2sgZHVtcEpJVE1lbW9yeUxvY2s7CisgICAgc3RhdGljIFVuY2hlY2tlZExv
Y2sgZHVtcEpJVE1lbW9yeUxvY2s7CiAgICAgc3RhdGljIGJvb2wgbmVlZHNUb0ZsdXNoID0gZmFs
c2U7CiAgICAgc3RhdGljIGF1dG8gZmx1c2ggPSBbXShjb25zdCBBYnN0cmFjdExvY2tlciYpIHsK
ICAgICAgICAgaWYgKGZkID09IC0xKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0V4ZWN1dGFibGVBbGxvY2F0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
RXhlY3V0YWJsZUFsbG9jYXRvci5oCmluZGV4IDRmZmM0ODBlNDI0MDRkYzY2YjVlMjUxNDU3NzJi
YmNiMDlkNWYzNjguLjAzNzk5ZTQyN2IwOTdkNjRmZDk4Y2I4Zjk1YTY4YTkyNTE2ZjhhNTcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvRXhlY3V0YWJsZUFsbG9jYXRvci5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvRXhlY3V0YWJsZUFsbG9jYXRvci5oCkBA
IC03Nyw3ICs3Nyw3IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBzaXplX3QgY29tbWl0dGVkQnl0
ZUNvdW50KCkgeyByZXR1cm4gMDsgfQogCi0gICAgTG9jayYgZ2V0TG9jaygpIGNvbnN0CisgICAg
VW5jaGVja2VkTG9jayYgZ2V0TG9jaygpIGNvbnN0CiAgICAgewogICAgICAgICByZXR1cm4gbV9s
b2NrOwogICAgIH0KQEAgLTg3LDcgKzg3LDcgQEAgcHJvdGVjdGVkOgogICAgIH5FeGVjdXRhYmxl
QWxsb2NhdG9yQmFzZSgpID0gZGVmYXVsdDsKIAogcHJpdmF0ZToKLSAgICBtdXRhYmxlIExvY2sg
bV9sb2NrOworICAgIG11dGFibGUgVW5jaGVja2VkTG9jayBtX2xvY2s7CiB9OwogCiAjaWYgRU5B
QkxFKEpJVCkKQEAgLTE3Niw3ICsxNzYsNyBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgc2l6ZV90
IGNvbW1pdHRlZEJ5dGVDb3VudCgpOwogCi0gICAgTG9jayYgZ2V0TG9jaygpIGNvbnN0OworICAg
IFVuY2hlY2tlZExvY2smIGdldExvY2soKSBjb25zdDsKIAogI2lmIEVOQUJMRShKVU1QX0lTTEFO
RFMpCiAgICAgSlNfRVhQT1JUX1BSSVZBVEUgdm9pZCogZ2V0SnVtcElzbGFuZFRvKHZvaWQqIGZy
b20sIHZvaWQqIG5ld0Rlc3RpbmF0aW9uKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklUV29ya2xpc3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRX
b3JrbGlzdC5jcHAKaW5kZXggYTcwNTJlNzlmMGE3NDM2N2ZlM2ZkYzVhM2NmNmQ1MzhlNjkzMjAw
ZS4uYTk2ODk3NGJkNmE5ODIzYjkwYWFkYzQ0YTQxNGE1MzdhOTAzY2Y3YSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRXb3JrbGlzdC5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9KSVRXb3JrbGlzdC5jcHAKQEAgLTE2NSw3ICsxNjUsNyBAQCBwcml2
YXRlOgogfTsKIAogSklUV29ya2xpc3Q6OkpJVFdvcmtsaXN0KCkKLSAgICA6IG1fbG9jayhCb3g8
TG9jaz46OmNyZWF0ZSgpKQorICAgIDogbV9sb2NrKEJveDxVbmNoZWNrZWRMb2NrPjo6Y3JlYXRl
KCkpCiAgICAgLCBtX2NvbmRpdGlvbihBdXRvbWF0aWNUaHJlYWRDb25kaXRpb246OmNyZWF0ZSgp
KQogewogICAgIExvY2tlciBsb2NrZXIgeyAqbV9sb2NrIH07CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0pJVFdvcmtsaXN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0pJVFdvcmtsaXN0LmgKaW5kZXggYjlmNzdjYTFiM2RkZWZhNjE0OGIxMzY5NDJkNTdhMDlk
NjVlYTdhMy4uYTcyYTgzODcwYTAwODJmY2QzNDQ5NTI5MGVhNTBlYTE0MGQ4OWYyZiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRXb3JrbGlzdC5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUV29ya2xpc3QuaApAQCAtNzEsNyArNzEsNyBAQCBwcml2
YXRlOgogICAgIFBsYW5zIG1fcGxhbnM7CiAgICAgSGFzaFNldDxDb2RlQmxvY2sqPiBtX3BsYW5u
ZWQ7CiAgICAgCi0gICAgQm94PExvY2s+IG1fbG9jazsKKyAgICBCb3g8VW5jaGVja2VkTG9jaz4g
bV9sb2NrOwogICAgIFJlZjxBdXRvbWF0aWNUaHJlYWRDb25kaXRpb24+IG1fY29uZGl0aW9uOyAv
LyBXZSB1c2UgT25lIFRydWUgQ29uZGl0aW9uIGZvciBldmVyeXRoaW5nIGJlY2F1c2UgdGhhdCdz
IGVhc2llci4KICAgICBSZWZQdHI8QXV0b21hdGljVGhyZWFkPiBtX3RocmVhZDsKICAgICAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2pzYy5jcHAKaW5kZXggZDNhMjgxMTI3MDgwNTgxZjBlZDE1YjRmMzg1ODg1NTBjZjNl
ZTZlZS4uYWQxNTVlNmU4MjdjYzBkM2NhZjdjNTcyNjVmMGRiYzMyNTFiNTYxZSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2pzYy5jcHAKQEAgLTI1Nyw4ICsyNTcsOCBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIGZy
aWVuZCBjbGFzcyBXb3JrZXI7CiAgICAgCi0gICAgTG9jayBtX2xvY2s7Ci0gICAgQ29uZGl0aW9u
IG1fY29uZGl0aW9uOworICAgIFVuY2hlY2tlZExvY2sgbV9sb2NrOworICAgIFVuY2hlY2tlZENv
bmRpdGlvbiBtX2NvbmRpdGlvbjsKICAgICBTZW50aW5lbExpbmtlZExpc3Q8V29ya2VyLCBCYXNp
Y1Jhd1NlbnRpbmVsTm9kZTxXb3JrZXI+PiBtX3dvcmtlcnM7CiAgICAgRGVxdWU8U3RyaW5nPiBt
X3JlcG9ydHM7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVy
L1Byb2ZpbGVyRGF0YWJhc2UuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9m
aWxlckRhdGFiYXNlLmgKaW5kZXggYWU3ODVlNGUzZGNiN2MzZTA4MDI4N2JiNDU5OTdhMTMyYzI4
NWRkMy4uMmE4NzhjOTQ2YjY1MzQwZTc5MTM5YmUyMjM3NWM1MDYxNmE5YjJlMiAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVyRGF0YWJhc2UuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZXJEYXRhYmFzZS5oCkBAIC04
OCw3ICs4OCw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX3Nob3VsZFNhdmVBdEV4aXQ7CiAgICAg
Q1N0cmluZyBtX2F0RXhpdFNhdmVGaWxlbmFtZTsKICAgICBEYXRhYmFzZSogbV9uZXh0UmVnaXN0
ZXJlZERhdGFiYXNlOwotICAgIExvY2sgbV9sb2NrOworICAgIFVuY2hlY2tlZExvY2sgbV9sb2Nr
OwogfTsKIAogfSB9IC8vIG5hbWVzcGFjZSBKU0M6OlByb2ZpbGVyCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db25jdXJyZW50SlNMb2NrLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9Db25jdXJyZW50SlNMb2NrLmgKaW5kZXggYWEyNzNiYWRiZWZh
NzM3YTBlYWE1MzRmYmViYTlmNTAxZmRiODYyNy4uODYzMTE3ZDg5MTVjNDNlNGE2NzcyMDgyYjli
YzU1YjM5YTJkMWNhMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
Q29uY3VycmVudEpTTG9jay5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Nv
bmN1cnJlbnRKU0xvY2suaApAQCAtMzIsOCArMzIsOCBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAot
dXNpbmcgQ29uY3VycmVudEpTTG9jayA9IExvY2s7Ci11c2luZyBDb25jdXJyZW50SlNMb2NrZXJJ
bXBsID0gTG9ja0hvbGRlcjsKK3VzaW5nIENvbmN1cnJlbnRKU0xvY2sgPSBVbmNoZWNrZWRMb2Nr
OwordXNpbmcgQ29uY3VycmVudEpTTG9ja2VySW1wbCA9IFVuY2hlY2tlZExvY2tIb2xkZXI7CiAK
IHN0YXRpY19hc3NlcnQoc2l6ZW9mKENvbmN1cnJlbnRKU0xvY2spID09IDEsICJSZWdhcmRsZXNz
IG9mIHN0YXR1cyBvZiBjb25jdXJyZW50IEpTIGZsYWcsIHNpemUgb2YgQ29udXJyZW50SlNMb2Nr
IGlzIGFsd2F5cyBvbmUgYnl0ZS4iKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvRGVmZXJyZWRXb3JrVGltZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0RlZmVycmVkV29ya1RpbWVyLmgKaW5kZXggNmM5OGNhYWY1ODFiMWNmYzAxYWExOTEx
NzE0YjNkYjI3YmRmMDIxNy4uZWYwZWFjNzMwYjQyMmY3MGMyMGE2OGI1YzllOTY0ODY4NzZhMDEz
ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGVmZXJyZWRXb3Jr
VGltZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EZWZlcnJlZFdvcmtU
aW1lci5oCkBAIC03Miw3ICs3Miw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgRGVmZXJyZWRX
b3JrVGltZXIoVk0mKTsKIAotICAgIExvY2sgbV90YXNrTG9jazsKKyAgICBVbmNoZWNrZWRMb2Nr
IG1fdGFza0xvY2s7CiAgICAgYm9vbCBtX3J1blRhc2tzIHsgdHJ1ZSB9OwogICAgIGJvb2wgbV9z
aG91bGRTdG9wUnVuTG9vcFdoZW5BbGxUaWNrZXRzRmluaXNoIHsgZmFsc2UgfTsKICAgICBib29s
IG1fY3VycmVudGx5UnVubmluZ1Rhc2sgeyBmYWxzZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNMb2NrLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0xvY2suaAppbmRleCAyZTAyYmEzZDY0MDVlZTcyZGQ0YWRlMGJhNjdjYjk1OGYxYTY0
NjBiLi5hOTkxZGY1MGIxYzM3MjI2ZTVmMTI5OTBlNDBiNjdiMTBiMTk5YzI5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0xvY2suaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0xvY2suaApAQCAtMTM4LDcgKzEzOCw3IEBAIHByaXZhdGU6
CiAgICAgdW5zaWduZWQgZHJvcEFsbExvY2tzKERyb3BBbGxMb2NrcyopOwogICAgIHZvaWQgZ3Jh
YkFsbExvY2tzKERyb3BBbGxMb2NrcyosIHVuc2lnbmVkIGxvY2tDb3VudCk7CiAKLSAgICBMb2Nr
IG1fbG9jazsKKyAgICBVbmNoZWNrZWRMb2NrIG1fbG9jazsKICAgICBib29sIG1faXNXZWJUaHJl
YWRBd2FyZSB7IGZhbHNlIH07CiAgICAgLy8gV2UgY2Fubm90IG1ha2UgbV9vd25lclRocmVhZCBh
biBvcHRpb25hbCAoaW5zdGVhZCBvZiBwYWlyaW5nIGl0IHdpdGggYW4gZXhwbGljaXQKICAgICAv
LyBtX2hhc093bmVyVGhyZWFkKSBiZWNhdXNlIGN1cnJlbnRUaHJlYWRJc0hvbGRpbmdMb2NrKCkg
bWF5IGJlIGNhbGxlZCBmcm9tIGEKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1NhbXBsaW5nUHJvZmlsZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvU2FtcGxpbmdQcm9maWxlci5jcHAKaW5kZXggZDcxZjNlYzE5ZmYzNjc0Njc3MDdmZTUyYjg4
MDI0YzU2MjdhMTRhZC4uZTUzMTEyZDE4OGY3Y2NiOTBkMGFlNzg0MTQyNTAxZDI0NWM1ZTgzNSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2FtcGxpbmdQcm9maWxl
ci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2FtcGxpbmdQcm9maWxl
ci5jcHAKQEAgLTc1LDcgKzc1LDcgQEAgQUxXQVlTX0lOTElORSBzdGF0aWMgdm9pZCByZXBvcnRT
dGF0cygpCiAKIGNsYXNzIEZyYW1lV2Fsa2VyIHsKIHB1YmxpYzoKLSAgICBGcmFtZVdhbGtlcihW
TSYgdm0sIENhbGxGcmFtZSogY2FsbEZyYW1lLCBjb25zdCBBYnN0cmFjdExvY2tlciYgY29kZUJs
b2NrU2V0TG9ja2VyLCBjb25zdCBBYnN0cmFjdExvY2tlciYgbWFjaGluZVRocmVhZHNMb2NrZXIs
IGNvbnN0IE9wdGlvbmFsPExvY2tIb2xkZXI+JiB3YXNtQ2FsbGVlTG9ja2VyKQorICAgIEZyYW1l
V2Fsa2VyKFZNJiB2bSwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIGNvbnN0IEFic3RyYWN0TG9ja2Vy
JiBjb2RlQmxvY2tTZXRMb2NrZXIsIGNvbnN0IEFic3RyYWN0TG9ja2VyJiBtYWNoaW5lVGhyZWFk
c0xvY2tlciwgY29uc3QgT3B0aW9uYWw8VW5jaGVja2VkTG9ja0hvbGRlcj4mIHdhc21DYWxsZWVM
b2NrZXIpCiAgICAgICAgIDogbV92bSh2bSkKICAgICAgICAgLCBtX2NhbGxGcmFtZShjYWxsRnJh
bWUpCiAgICAgICAgICwgbV9lbnRyeUZyYW1lKHZtLnRvcEVudHJ5RnJhbWUpCkBAIC0yMDEsNyAr
MjAxLDcgQEAgcHJvdGVjdGVkOgogICAgIEVudHJ5RnJhbWUqIG1fZW50cnlGcmFtZTsKICAgICBj
b25zdCBBYnN0cmFjdExvY2tlciYgbV9jb2RlQmxvY2tTZXRMb2NrZXI7CiAgICAgY29uc3QgQWJz
dHJhY3RMb2NrZXImIG1fbWFjaGluZVRocmVhZHNMb2NrZXI7Ci0gICAgY29uc3QgT3B0aW9uYWw8
TG9ja0hvbGRlcj4mIG1fd2FzbUNhbGxlZUxvY2tlcjsKKyAgICBjb25zdCBPcHRpb25hbDxVbmNo
ZWNrZWRMb2NrSG9sZGVyPiYgbV93YXNtQ2FsbGVlTG9ja2VyOwogICAgIGJvb2wgbV9iYWlsaW5n
T3V0IHsgZmFsc2UgfTsKICAgICBzaXplX3QgbV9kZXB0aCB7IDAgfTsKIH07CkBAIC0yMTAsNyAr
MjEwLDcgQEAgY2xhc3MgQ0ZyYW1lV2Fsa2VyIDogcHVibGljIEZyYW1lV2Fsa2VyIHsKIHB1Ymxp
YzoKICAgICB0eXBlZGVmIEZyYW1lV2Fsa2VyIEJhc2U7CiAKLSAgICBDRnJhbWVXYWxrZXIoVk0m
IHZtLCB2b2lkKiBtYWNoaW5lRnJhbWUsIENhbGxGcmFtZSogY2FsbEZyYW1lLCBjb25zdCBBYnN0
cmFjdExvY2tlciYgY29kZUJsb2NrU2V0TG9ja2VyLCBjb25zdCBBYnN0cmFjdExvY2tlciYgbWFj
aGluZVRocmVhZHNMb2NrZXIsIGNvbnN0IE9wdGlvbmFsPExvY2tIb2xkZXI+JiB3YXNtQ2FsbGVl
TG9ja2VyKQorICAgIENGcmFtZVdhbGtlcihWTSYgdm0sIHZvaWQqIG1hY2hpbmVGcmFtZSwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUsIGNvbnN0IEFic3RyYWN0TG9ja2VyJiBjb2RlQmxvY2tTZXRMb2Nr
ZXIsIGNvbnN0IEFic3RyYWN0TG9ja2VyJiBtYWNoaW5lVGhyZWFkc0xvY2tlciwgY29uc3QgT3B0
aW9uYWw8VW5jaGVja2VkTG9ja0hvbGRlcj4mIHdhc21DYWxsZWVMb2NrZXIpCiAgICAgICAgIDog
QmFzZSh2bSwgY2FsbEZyYW1lLCBjb2RlQmxvY2tTZXRMb2NrZXIsIG1hY2hpbmVUaHJlYWRzTG9j
a2VyLCB3YXNtQ2FsbGVlTG9ja2VyKQogICAgICAgICAsIG1fbWFjaGluZUZyYW1lKG1hY2hpbmVG
cmFtZSkKICAgICB7CkBAIC0zNTMsNyArMzUzLDcgQEAgdm9pZCBTYW1wbGluZ1Byb2ZpbGVyOjp0
YWtlU2FtcGxlKGNvbnN0IEFic3RyYWN0TG9ja2VyJiwgU2Vjb25kcyYgc3RhY2tUcmFjZVByb2MK
ICAgICAgICAgTG9ja2VyIG1hY2hpbmVUaHJlYWRzTG9ja2VyIHsgbV92bS5oZWFwLm1hY2hpbmVU
aHJlYWRzKCkuZ2V0TG9jaygpIH07CiAgICAgICAgIExvY2tlciBjb2RlQmxvY2tTZXRMb2NrZXIg
eyBtX3ZtLmhlYXAuY29kZUJsb2NrU2V0KCkuZ2V0TG9jaygpIH07CiAgICAgICAgIExvY2tlciBl
eGVjdXRhYmxlQWxsb2NhdG9yTG9ja2VyIHsgRXhlY3V0YWJsZUFsbG9jYXRvcjo6c2luZ2xldG9u
KCkuZ2V0TG9jaygpIH07Ci0gICAgICAgIE9wdGlvbmFsPExvY2tIb2xkZXI+IHdhc21DYWxsZWVz
TG9ja2VyOworICAgICAgICBPcHRpb25hbDxVbmNoZWNrZWRMb2NrSG9sZGVyPiB3YXNtQ2FsbGVl
c0xvY2tlcjsKICNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCiAgICAgICAgIGlmIChXYXNtOjppc1N1
cHBvcnRlZCgpKQogICAgICAgICAgICAgd2FzbUNhbGxlZXNMb2NrZXIgPSBMb2NrZXIgeyBXYXNt
OjpDYWxsZWVSZWdpc3RyeTo6c2luZ2xldG9uKCkuZ2V0TG9jaygpIH07CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TYW1wbGluZ1Byb2ZpbGVyLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9TYW1wbGluZ1Byb2ZpbGVyLmgKaW5kZXggNjUxNzA3YTk0
NmYxNjFkZWE2Zjk4OGFiNWRkZTQ4YjMyYzc1YzdlZC4uOWYwNTcyNmE0ZTgwNGZjYjM1MzczNmEy
ZWQxZDY0MGI3NjRjOTRkYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvU2FtcGxpbmdQcm9maWxlci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1NhbXBsaW5nUHJvZmlsZXIuaApAQCAtMTcyLDcgKzE3Miw3IEBAIHB1YmxpYzoKICAgICB2b2lk
IG5vdGljZVZNRW50cnkoKTsKICAgICB2b2lkIHNodXRkb3duKCk7CiAgICAgdGVtcGxhdGU8dHlw
ZW5hbWUgVmlzaXRvcj4gdm9pZCB2aXNpdChWaXNpdG9yJik7Ci0gICAgTG9jayYgZ2V0TG9jaygp
IHsgcmV0dXJuIG1fbG9jazsgfQorICAgIFVuY2hlY2tlZExvY2smIGdldExvY2soKSB7IHJldHVy
biBtX2xvY2s7IH0KICAgICB2b2lkIHNldFRpbWluZ0ludGVydmFsKFNlY29uZHMgaW50ZXJ2YWwp
IHsgbV90aW1pbmdJbnRlcnZhbCA9IGludGVydmFsOyB9CiAgICAgSlNfRVhQT1JUX1BSSVZBVEUg
dm9pZCBzdGFydCgpOwogICAgIHZvaWQgc3RhcnQoY29uc3QgQWJzdHJhY3RMb2NrZXImKTsKQEAg
LTIwMCw3ICsyMDAsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgdGltZXJMb29wKCk7CiAgICAgdm9p
ZCB0YWtlU2FtcGxlKGNvbnN0IEFic3RyYWN0TG9ja2VyJiwgU2Vjb25kcyYgc3RhY2tUcmFjZVBy
b2Nlc3NpbmdUaW1lKTsKIAotICAgIExvY2sgbV9sb2NrOworICAgIFVuY2hlY2tlZExvY2sgbV9s
b2NrOwogICAgIGJvb2wgbV9pc1BhdXNlZDsKICAgICBib29sIG1faXNTaHV0RG93bjsKICAgICBi
b29sIG1fbmVlZHNSZXBvcnRBdEV4aXQgeyBmYWxzZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1ZNLmgKaW5kZXggZjhlOGQzZjU0N2U0ZmRlNjEzNGMzOGE4NjJkMmYyNWQ2MmEzMzFlMi4uYTFh
YjIyMzIxNjk4ZTU3MDAyOTk0NzM1MTRiZmEwNDFmODhkY2M1NCAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9WTS5oCkBAIC0xMDA0LDcgKzEwMDQsNyBAQCBwdWJsaWM6CiAjaWYgRU5BQkxFKFlB
UlJfSklUX0FMTF9QQVJFTlNfRVhQUkVTU0lPTlMpCiAgICAgc3RhdGljIGNvbnN0ZXhwciBzaXpl
X3QgcGF0dGVybkNvbnRleHRCdWZmZXJTaXplID0gODE5MjsgLy8gU3BhY2UgYWxsb2NhdGVkIHRv
IHNhdmUgbmVzdGVkIHBhcmVudGhlc2lzIGNvbnRleHQKICAgICBVbmlxdWVBcnJheTxjaGFyPiBt
X3JlZ0V4cFBhdHRlcm5Db250ZXhCdWZmZXI7Ci0gICAgTG9jayBtX3JlZ0V4cFBhdHRlcm5Db250
ZXh0TG9jazsKKyAgICBVbmNoZWNrZWRMb2NrIG1fcmVnRXhwUGF0dGVybkNvbnRleHRMb2NrOwog
ICAgIGNoYXIqIGFjcXVpcmVSZWdFeHBQYXR0ZXJuQ29udGV4QnVmZmVyKCk7CiAgICAgdm9pZCBy
ZWxlYXNlUmVnRXhwUGF0dGVybkNvbnRleEJ1ZmZlcigpOwogI2Vsc2UKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNVHJhcHMuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvVk1UcmFwcy5jcHAKaW5kZXggOWI0NDA2YjExNTYzZGFmNTczOWViMzM4
YWY4MjU5YTVlMThhNDE1OS4uNTdkYjMxOWNlY2ZiNzM3MTk3ZTI2ZDljZGQyZGI3YTU4YmIwOGM2
NyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk1UcmFwcy5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk1UcmFwcy5jcHAKQEAgLTE2Myw3
ICsxNjMsNyBAQCB2b2lkIFZNVHJhcHM6OmludmFsaWRhdGVDb2RlQmxvY2tzT25TdGFjayhDYWxs
RnJhbWUqIHRvcENhbGxGcmFtZSkKICAgICBpbnZhbGlkYXRlQ29kZUJsb2Nrc09uU3RhY2soY29k
ZUJsb2NrU2V0TG9ja2VyLCB0b3BDYWxsRnJhbWUpOwogfQogICAgIAotdm9pZCBWTVRyYXBzOjpp
bnZhbGlkYXRlQ29kZUJsb2Nrc09uU3RhY2soTG9ja2VyPExvY2s+JiwgQ2FsbEZyYW1lKiB0b3BD
YWxsRnJhbWUpCit2b2lkIFZNVHJhcHM6OmludmFsaWRhdGVDb2RlQmxvY2tzT25TdGFjayhMb2Nr
ZXI8VW5jaGVja2VkTG9jaz4mLCBDYWxsRnJhbWUqIHRvcENhbGxGcmFtZSkKIHsKICAgICBpZiAo
IW1fbmVlZFRvSW52YWxpZGF0ZWRDb2RlQmxvY2tzKQogICAgICAgICByZXR1cm47CkBAIC00Mzcs
NyArNDM3LDcgQEAgdm9pZCBWTVRyYXBzOjp1bmRvRGVmZXJUZXJtaW5hdGlvblNsb3coRGVmZXJB
Y3Rpb24gZGVmZXJBY3Rpb24pCiB9CiAKIFZNVHJhcHM6OlZNVHJhcHMoKQotICAgIDogbV9sb2Nr
KEJveDxMb2NrPjo6Y3JlYXRlKCkpCisgICAgOiBtX2xvY2soQm94PFVuY2hlY2tlZExvY2s+Ojpj
cmVhdGUoKSkKICAgICAsIG1fY29uZGl0aW9uKEF1dG9tYXRpY1RocmVhZENvbmRpdGlvbjo6Y3Jl
YXRlKCkpCiB7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9W
TVRyYXBzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTVRyYXBzLmgKaW5kZXgg
MGFmNTliYzk1YzE2ZjkyZDM0ZTU0YTYyMmIyNDJiODdjNTg0ZmQ2NS4uNWQxNWM5MmY3MDQxNzUx
ZDgwNGU0YzU3MmE1NTMwMTA3YmZlNDJkYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvVk1UcmFwcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1ZNVHJhcHMuaApAQCAtMjM2LDcgKzIzNiw3IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIGludmFs
aWRhdGVDb2RlQmxvY2tzT25TdGFjaygpOwogICAgIHZvaWQgaW52YWxpZGF0ZUNvZGVCbG9ja3NP
blN0YWNrKENhbGxGcmFtZSogdG9wQ2FsbEZyYW1lKTsKLSAgICB2b2lkIGludmFsaWRhdGVDb2Rl
QmxvY2tzT25TdGFjayhMb2NrZXI8TG9jaz4mIGNvZGVCbG9ja1NldExvY2tlciwgQ2FsbEZyYW1l
KiB0b3BDYWxsRnJhbWUpOworICAgIHZvaWQgaW52YWxpZGF0ZUNvZGVCbG9ja3NPblN0YWNrKExv
Y2tlcjxVbmNoZWNrZWRMb2NrPiYgY29kZUJsb2NrU2V0TG9ja2VyLCBDYWxsRnJhbWUqIHRvcENh
bGxGcmFtZSk7CiAKICAgICB2b2lkIGFkZFNpZ25hbFNlbmRlcihTaWduYWxTZW5kZXIqKTsKICAg
ICB2b2lkIHJlbW92ZVNpZ25hbFNlbmRlcihTaWduYWxTZW5kZXIqKTsKQEAgLTI0Nyw3ICsyNDcs
NyBAQCBwcml2YXRlOgogCiAgICAgc3RhdGljIGNvbnN0ZXhwciBCaXRGaWVsZCBOZWVkRXhjZXB0
aW9uSGFuZGxpbmdNYXNrID0gfigxIDw8IE5lZWRFeGNlcHRpb25IYW5kbGluZyk7CiAKLSAgICBC
b3g8TG9jaz4gbV9sb2NrOworICAgIEJveDxVbmNoZWNrZWRMb2NrPiBtX2xvY2s7CiAgICAgUmVm
PEF1dG9tYXRpY1RocmVhZENvbmRpdGlvbj4gbV9jb25kaXRpb247CiAgICAgQXRvbWljPEJpdEZp
ZWxkPiBtX3RyYXBCaXRzIHsgMCB9OwogICAgIGJvb2wgbV9uZWVkVG9JbnZhbGlkYXRlZENvZGVC
bG9ja3MgeyBmYWxzZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xz
L0Z1bmN0aW9uT3ZlcnJpZGVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdG9vbHMvRnVuY3Rp
b25PdmVycmlkZXMuaAppbmRleCA4ODI5NjcwMDczZGRmOWQ2ZDQ5Y2VlZjIwOGI2MzhjNzEzZjRl
ZDY5Li43NmE4MTNkNDhiM2Q0NTM1ODhkNTQzYWY4MzYwMzMxYzk4MmJmNDQwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdG9vbHMvRnVuY3Rpb25PdmVycmlkZXMuaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvdG9vbHMvRnVuY3Rpb25PdmVycmlkZXMuaApAQCAtNjEsNyAr
NjEsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgY2xlYXIoY29uc3QgQWJzdHJhY3RMb2NrZXImKSB7
IG1fZW50cmllcy5jbGVhcigpOyB9CiAKICAgICBIYXNoTWFwPFN0cmluZywgU3RyaW5nPiBtX2Vu
dHJpZXM7Ci0gICAgTG9jayBtX2xvY2s7CisgICAgVW5jaGVja2VkTG9jayBtX2xvY2s7CiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90
b29scy9WTUluc3BlY3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdG9vbHMvVk1JbnNw
ZWN0b3IuY3BwCmluZGV4IGU0OWRhZTFlMWJjOWRkNzBjOWViMjAyZDg3NzA5ZmNjNmNhNjcwOTAu
LjFmZjcyZDQ2ZDk2NDM5NDRhNzk0YmE0M2Y0YjYwYjhiMTE0NDhhODcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS90b29scy9WTUluc3BlY3Rvci5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3Rvb2xzL1ZNSW5zcGVjdG9yLmNwcApAQCAtODksNyArODksNyBAQCBhdXRv
IFZNSW5zcGVjdG9yOjpsb2NrKFNlY29uZHMgdGltZW91dCkgLT4gRXhwZWN0ZWQ8TG9ja2VyLCBF
cnJvcj4KIH0KIAogI2lmIEVOQUJMRShKSVQpCi1zdGF0aWMgYm9vbCBlbnN1cmVJc1NhZmVUb0xv
Y2soTG9jayYgbG9jaykKK3N0YXRpYyBib29sIGVuc3VyZUlzU2FmZVRvTG9jayhVbmNoZWNrZWRM
b2NrJiBsb2NrKQogewogICAgIHVuc2lnbmVkIG1heFJldHJpZXMgPSAyOwogICAgIHVuc2lnbmVk
IHRyeUNvdW50ID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90b29scy9W
TUluc3BlY3Rvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xzL1ZNSW5zcGVjdG9yLmgK
aW5kZXggODQ1NjMxYzY0ODE2OWQ3YTU1MWNlYjc4ZDRlYWUwM2I1NTY1ODljYS4uZGY0OTBkZTI4
NjJhYTE3OTlmZGY0Mzc3N2VkZTFkZWZhZGEwMTlkNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3Rvb2xzL1ZNSW5zcGVjdG9yLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3Rvb2xzL1ZNSW5zcGVjdG9yLmgKQEAgLTQzLDE0ICs0MywxNCBAQCBwdWJsaWM6CiAgICAgICAg
IFRpbWVkT3V0CiAgICAgfTsKIAotICAgIHR5cGVkZWYgV1RGOjpMb2NrZXI8TG9jaz4gTG9ja2Vy
OworICAgIHR5cGVkZWYgV1RGOjpMb2NrZXI8VW5jaGVja2VkTG9jaz4gTG9ja2VyOwogCiAgICAg
c3RhdGljIFZNSW5zcGVjdG9yJiBpbnN0YW5jZSgpOwogCiAgICAgdm9pZCBhZGQoVk0qKTsKICAg
ICB2b2lkIHJlbW92ZShWTSopOwogCi0gICAgTG9jayYgZ2V0TG9jaygpIHsgcmV0dXJuIG1fbG9j
azsgfQorICAgIFVuY2hlY2tlZExvY2smIGdldExvY2soKSB7IHJldHVybiBtX2xvY2s7IH0KIAog
ICAgIGVudW0gY2xhc3MgRnVuY3RvclN0YXR1cyB7CiAgICAgICAgIENvbnRpbnVlLApAQCAtMTAz
LDcgKzEwMyw3IEBAIHByaXZhdGU6CiAgICAgICAgIH0KICAgICB9CiAKLSAgICBMb2NrIG1fbG9j
azsKKyAgICBVbmNoZWNrZWRMb2NrIG1fbG9jazsKICAgICBEb3VibHlMaW5rZWRMaXN0PFZNPiBt
X3ZtTGlzdDsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dh
c21DYWxsZWVSZWdpc3RyeS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUNhbGxl
ZVJlZ2lzdHJ5LmgKaW5kZXggMTIxMzQxMWI3ZmMxMDY0YTk4MmM3NThiM2UwMzI4YTg0MTQ3OGU3
My4uZGM5MjJjZjNlYTg3MTcwMmNhNTIyYzIzMmY1NjJmMTc2NjExMzhkOSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUNhbGxlZVJlZ2lzdHJ5LmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUNhbGxlZVJlZ2lzdHJ5LmgKQEAgLTQxLDcgKzQx
LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyB2b2lkIGluaXRpYWxpemUoKTsKICAgICBzdGF0aWMg
Q2FsbGVlUmVnaXN0cnkmIHNpbmdsZXRvbigpOwogCi0gICAgTG9jayYgZ2V0TG9jaygpIHsgcmV0
dXJuIG1fbG9jazsgfQorICAgIFVuY2hlY2tlZExvY2smIGdldExvY2soKSB7IHJldHVybiBtX2xv
Y2s7IH0KIAogICAgIHZvaWQgcmVnaXN0ZXJDYWxsZWUoQ2FsbGVlKiBjYWxsZWUpCiAgICAgewpA
QCAtNzAsNyArNzAsNyBAQCBwdWJsaWM6CiAgICAgQ2FsbGVlUmVnaXN0cnkoKSA9IGRlZmF1bHQ7
CiAKIHByaXZhdGU6Ci0gICAgTG9jayBtX2xvY2s7CisgICAgVW5jaGVja2VkTG9jayBtX2xvY2s7
CiAgICAgSGFzaFNldDxDYWxsZWUqPiBtX2NhbGxlZVNldDsKIH07CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21QbGFuLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9XYXNtUGxhbi5oCmluZGV4IGFiOTRmOWU4OTAzODk2ZmQzMTE2YzYyNjkyYWQ3NmRk
Yzk0ZjVkNjEuLmM4MWYzYTZjOWY1ODZiOTFjMTdiNTk2NDc1MDE4ZWNjYTIzZmFkMWUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21QbGFuLmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVBsYW4uaApAQCAtOTQsOCArOTQsOCBAQCBwcm90ZWN0
ZWQ6CiAKICAgICBTdHJpbmcgbV9lcnJvck1lc3NhZ2U7CiAgICAgTWVtb3J5TW9kZSBtX21vZGUg
eyBNZW1vcnlNb2RlOjpCb3VuZHNDaGVja2luZyB9OwotICAgIExvY2sgbV9sb2NrOwotICAgIENv
bmRpdGlvbiBtX2NvbXBsZXRlZDsKKyAgICBVbmNoZWNrZWRMb2NrIG1fbG9jazsKKyAgICBVbmNo
ZWNrZWRDb25kaXRpb24gbV9jb21wbGV0ZWQ7CiB9OwogCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL1dhc21TdHJlYW1pbmdDb21waWxlci5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3dhc20vV2FzbVN0cmVhbWluZ0NvbXBpbGVyLmgKaW5kZXggODZhMTBkYzQ0NWI5
NGZmOTIzYjY2Y2JkNjFhNzExNjBlNzM2NmNlNS4uOTU3Zjc1ZmZmZmYwYzBmM2JlYTA0NDBkZWZh
OWRjODhlMGEyMzk0YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2Fz
bVN0cmVhbWluZ0NvbXBpbGVyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2Fz
bVN0cmVhbWluZ0NvbXBpbGVyLmgKQEAgLTcwLDcgKzcwLDcgQEAgcHJpdmF0ZToKICAgICBib29s
IG1fZWFnZXJGYWlsZWQgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9maW5hbGl6ZWQgeyBmYWxzZSB9
OwogICAgIGJvb2wgbV90aHJlYWRlZENvbXBpbGF0aW9uU3RhcnRlZCB7IGZhbHNlIH07Ci0gICAg
TG9jayBtX2xvY2s7CisgICAgVW5jaGVja2VkTG9jayBtX2xvY2s7CiAgICAgdW5zaWduZWQgbV9y
ZW1haW5pbmdDb21waWxhdGlvblJlcXVlc3RzIHsgMCB9OwogICAgIEpTUHJvbWlzZSogbV9wcm9t
aXNlOyAvLyBSYXcgcG9pbnRlciwgYnV0IGhlbGQgYnkgRGVmZXJyZWRXb3JrVGltZXIuCiAgICAg
UmVmPFdhc206Ok1vZHVsZUluZm9ybWF0aW9uPiBtX2luZm87CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtVGh1bmtzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d2FzbS9XYXNtVGh1bmtzLmgKaW5kZXggYzIzNWNmZTYyOTVlNjY5YWU1YTgwZWU4ZjI1MmVhNmNh
MjQzMWI4My4uZGU0Y2EzY2NmMGFiZTU0ZGQxMGRlMTgyMjZmNzgxN2MwNDc4MWYzYyAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVRodW5rcy5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21UaHVua3MuaApAQCAtNTUsNyArNTUsNyBAQCBwcml2
YXRlOgogICAgIFRodW5rcygpID0gZGVmYXVsdDsKIAogICAgIEhhc2hNYXA8VGh1bmtHZW5lcmF0
b3IsIE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxKSVRUaHVua1B0clRhZz4+IG1fc3R1YnM7Ci0gICAg
TG9jayBtX2xvY2s7CisgICAgVW5jaGVja2VkTG9jayBtX2xvY2s7CiB9OwogCiB9IH0gLy8gbmFt
ZXNwYWNlIEpTQzo6V2FzbQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20v
V2FzbVdvcmtsaXN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21Xb3JrbGlz
dC5jcHAKaW5kZXggNWJhZDBkOTBhNTYyZTI1ZGRlODE3YjU4MmMwNjA2NjU2YzkwNmViYS4uMzg5
OGVjYWI0YzA4ODdlMjVhMGEzNDgxYjQxMWI4ZjY3YzFlYmMyOSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVdvcmtsaXN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvd2FzbS9XYXNtV29ya2xpc3QuY3BwCkBAIC0xMjgsNyArMTI4LDcgQEAgcHJpdmF0
ZToKICAgICB9CiAKIHB1YmxpYzoKLSAgICBDb25kaXRpb24gc3luY2hyb25pemU7CisgICAgVW5j
aGVja2VkQ29uZGl0aW9uIHN5bmNocm9uaXplOwogICAgIFdvcmtsaXN0JiB3b3JrbGlzdDsKICAg
ICAvLyBXZSBjYW4gb25seSBtb2RpZnkgZWxlbWVudCB3aGVuIGhvbGRpbmcgdGhlIGxvY2suIEEg
c3luY2hyb25vdXMgY29tcGlsZSBtaWdodCBsb29rIGF0IGVhY2ggdGhyZWFkJ3MgdGFza3MgaW4g
b3JkZXIgdG8gYm9vc3QgdGhlIHByaW9yaXR5LgogICAgIFF1ZXVlRWxlbWVudCBlbGVtZW50OwpA
QCAtMjEzLDcgKzIxMyw3IEBAIHZvaWQgV29ya2xpc3Q6OnN0b3BBbGxQbGFuc0ZvckNvbnRleHQo
Q29udGV4dCYgY29udGV4dCkKIH0KIAogV29ya2xpc3Q6OldvcmtsaXN0KCkKLSAgICA6IG1fbG9j
ayhCb3g8TG9jaz46OmNyZWF0ZSgpKQorICAgIDogbV9sb2NrKEJveDxVbmNoZWNrZWRMb2NrPjo6
Y3JlYXRlKCkpCiAgICAgLCBtX3BsYW5FbnF1ZXVlZChBdXRvbWF0aWNUaHJlYWRDb25kaXRpb246
OmNyZWF0ZSgpKQogewogICAgIHVuc2lnbmVkIG51bWJlck9mQ29tcGlsYXRpb25UaHJlYWRzID0g
T3B0aW9uczo6dXNlQ29uY3VycmVudEpJVCgpID8ga2VyblRDU01Bd2FyZU51bWJlck9mUHJvY2Vz
c29yQ29yZXMoKSA6IDE7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9X
YXNtV29ya2xpc3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21Xb3JrbGlzdC5o
CmluZGV4IDU2ZDc5YTBlOTg5YTYwMmYyMTMzZDAzMDkwZmRiY2M2MzdjOTU2MzkuLjQ1YTZmYmI2
Y2Y5YTg1M2MyODFmZGJiYWNkNTZmYmVkZDFmYTU5Y2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS93YXNtL1dhc21Xb3JrbGlzdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93YXNtL1dhc21Xb3JrbGlzdC5oCkBAIC04NCw3ICs4NCw3IEBAIHByaXZhdGU6CiAgICAgICAg
IHJldHVybiBsZWZ0LnByaW9yaXR5ID4gcmlnaHQucHJpb3JpdHk7CiAgICAgfQogCi0gICAgQm94
PExvY2s+IG1fbG9jazsKKyAgICBCb3g8VW5jaGVja2VkTG9jaz4gbV9sb2NrOwogICAgIFJlZjxB
dXRvbWF0aWNUaHJlYWRDb25kaXRpb24+IG1fcGxhbkVucXVldWVkOwogICAgIC8vIFRlY2huaWNh
bGx5LCB0aGlzIGNvdWxkIG92ZXJmbG93IGJ1dCB0aGF0J3MgdW5saWtlbHkuIEV2ZW4gaWYgaXQg
ZGlkLCB3ZSB3aWxsIGp1c3QgY29tcGlsZSB0aGluZ3Mgb2YgdGhlIHNhbWUKICAgICAvLyBQcmlv
cml0eSBpdCB0aGUgd3Jvbmcgb3JkZXIsIHdoaWNoIGlzbid0IHdyb25nLCBqdXN0IHN1Ym9wdGlt
YWwuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9BdXRvbWF0aWNUaHJlYWQuY3BwIGIvU291
cmNlL1dURi93dGYvQXV0b21hdGljVGhyZWFkLmNwcAppbmRleCBmNGVhNzhkMTNlMWNkZGI2MTli
ODIyODY4ZDMzYzcyN2M5ZjJmOThiLi4zYzViZTUxM2MyNjNjYThiNGRhNmI3YzI2YzZmODM3Mzlk
YTMxZTBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9BdXRvbWF0aWNUaHJlYWQuY3BwCisr
KyBiL1NvdXJjZS9XVEYvd3RmL0F1dG9tYXRpY1RocmVhZC5jcHAKQEAgLTc3LDEyICs3NywxMiBA
QCB2b2lkIEF1dG9tYXRpY1RocmVhZENvbmRpdGlvbjo6bm90aWZ5QWxsKGNvbnN0IEFic3RyYWN0
TG9ja2VyJiBsb2NrZXIpCiAgICAgfQogfQogCi12b2lkIEF1dG9tYXRpY1RocmVhZENvbmRpdGlv
bjo6d2FpdChMb2NrJiBsb2NrKQordm9pZCBBdXRvbWF0aWNUaHJlYWRDb25kaXRpb246OndhaXQo
VW5jaGVja2VkTG9jayYgbG9jaykKIHsKICAgICBtX2NvbmRpdGlvbi53YWl0KGxvY2spOwogfQog
Ci1ib29sIEF1dG9tYXRpY1RocmVhZENvbmRpdGlvbjo6d2FpdEZvcihMb2NrJiBsb2NrLCBTZWNv
bmRzIHRpbWUpCitib29sIEF1dG9tYXRpY1RocmVhZENvbmRpdGlvbjo6d2FpdEZvcihVbmNoZWNr
ZWRMb2NrJiBsb2NrLCBTZWNvbmRzIHRpbWUpCiB7CiAgICAgcmV0dXJuIG1fY29uZGl0aW9uLndh
aXRGb3IobG9jaywgdGltZSk7CiB9CkBAIC0xMDQsMTIgKzEwNCwxMiBAQCBib29sIEF1dG9tYXRp
Y1RocmVhZENvbmRpdGlvbjo6Y29udGFpbnMoY29uc3QgQWJzdHJhY3RMb2NrZXImLCBBdXRvbWF0
aWNUaHJlYWQqCiAgICAgcmV0dXJuIG1fdGhyZWFkcy5jb250YWlucyh0aHJlYWQpOwogfQogCi1B
dXRvbWF0aWNUaHJlYWQ6OkF1dG9tYXRpY1RocmVhZChjb25zdCBBYnN0cmFjdExvY2tlciYgbG9j
a2VyLCBCb3g8TG9jaz4gbG9jaywgUmVmPEF1dG9tYXRpY1RocmVhZENvbmRpdGlvbj4mJiBjb25k
aXRpb24sIFNlY29uZHMgdGltZW91dCkKK0F1dG9tYXRpY1RocmVhZDo6QXV0b21hdGljVGhyZWFk
KGNvbnN0IEFic3RyYWN0TG9ja2VyJiBsb2NrZXIsIEJveDxVbmNoZWNrZWRMb2NrPiBsb2NrLCBS
ZWY8QXV0b21hdGljVGhyZWFkQ29uZGl0aW9uPiYmIGNvbmRpdGlvbiwgU2Vjb25kcyB0aW1lb3V0
KQogICAgIDogQXV0b21hdGljVGhyZWFkKGxvY2tlciwgbG9jaywgV1RGTW92ZShjb25kaXRpb24p
LCBUaHJlYWRUeXBlOjpVbmtub3duLCB0aW1lb3V0KQogewogfQogCi1BdXRvbWF0aWNUaHJlYWQ6
OkF1dG9tYXRpY1RocmVhZChjb25zdCBBYnN0cmFjdExvY2tlciYgbG9ja2VyLCBCb3g8TG9jaz4g
bG9jaywgUmVmPEF1dG9tYXRpY1RocmVhZENvbmRpdGlvbj4mJiBjb25kaXRpb24sIFRocmVhZFR5
cGUgdHlwZSwgU2Vjb25kcyB0aW1lb3V0KQorQXV0b21hdGljVGhyZWFkOjpBdXRvbWF0aWNUaHJl
YWQoY29uc3QgQWJzdHJhY3RMb2NrZXImIGxvY2tlciwgQm94PFVuY2hlY2tlZExvY2s+IGxvY2ss
IFJlZjxBdXRvbWF0aWNUaHJlYWRDb25kaXRpb24+JiYgY29uZGl0aW9uLCBUaHJlYWRUeXBlIHR5
cGUsIFNlY29uZHMgdGltZW91dCkKICAgICA6IG1fbG9jayhsb2NrKQogICAgICwgbV9jb25kaXRp
b24oV1RGTW92ZShjb25kaXRpb24pKQogICAgICwgbV90aW1lb3V0KHRpbWVvdXQpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV1RGL3d0Zi9BdXRvbWF0aWNUaHJlYWQuaCBiL1NvdXJjZS9XVEYvd3RmL0F1
dG9tYXRpY1RocmVhZC5oCmluZGV4IDhkN2MyYjUxNjgwYTNlYTY3MjhlNTE3NGZjODE4MDY4ZGVl
OTVjODYuLjA5ZmNhZmVmMjM5NTkxYjJlMTJjZGYwMmZkZjAwNmNjZGQ0MTJhNmIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XVEYvd3RmL0F1dG9tYXRpY1RocmVhZC5oCisrKyBiL1NvdXJjZS9XVEYvd3Rm
L0F1dG9tYXRpY1RocmVhZC5oCkBAIC04MSw4ICs4MSw4IEBAIHB1YmxpYzoKICAgICAvLyBPbmUg
a25vd24tZ29vZCBjYXNlIGZvciBvbmUtdHJ1ZS1jb25kaXRpb24gaXMgd2hlbiB0aGUgY29tbXVu
aWNhdGlvbiBpbnZvbHZlcyBqdXN0IHR3bwogICAgIC8vIHRocmVhZHMuIEluIHN1Y2ggY2FzZXMs
IHRoZSB0aHJlYWQgZG9pbmcgdGhlIG5vdGlmeUFsbCgpIGNhbiB3YWtlIHVwIGF0IG1vc3Qgb25l
IHRocmVhZCAtCiAgICAgLy8gaXRzIHBhcnRuZXIuCi0gICAgV1RGX0VYUE9SVF9QUklWQVRFIHZv
aWQgd2FpdChMb2NrJik7Ci0gICAgV1RGX0VYUE9SVF9QUklWQVRFIGJvb2wgd2FpdEZvcihMb2Nr
JiwgU2Vjb25kcyk7CisgICAgV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgd2FpdChVbmNoZWNrZWRM
b2NrJik7CisgICAgV1RGX0VYUE9SVF9QUklWQVRFIGJvb2wgd2FpdEZvcihVbmNoZWNrZWRMb2Nr
JiwgU2Vjb25kcyk7CiAgICAgCiBwcml2YXRlOgogICAgIGZyaWVuZCBjbGFzcyBBdXRvbWF0aWNU
aHJlYWQ7CkBAIC05Myw3ICs5Myw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCByZW1vdmUoY29uc3Qg
QWJzdHJhY3RMb2NrZXImLCBBdXRvbWF0aWNUaHJlYWQqKTsKICAgICBib29sIGNvbnRhaW5zKGNv
bnN0IEFic3RyYWN0TG9ja2VyJiwgQXV0b21hdGljVGhyZWFkKik7CiAgICAgCi0gICAgQ29uZGl0
aW9uIG1fY29uZGl0aW9uOworICAgIFVuY2hlY2tlZENvbmRpdGlvbiBtX2NvbmRpdGlvbjsKICAg
ICBWZWN0b3I8QXV0b21hdGljVGhyZWFkKj4gbV90aHJlYWRzOwogfTsKIApAQCAtMTMxLDkgKzEz
MSw5IEBAIHB1YmxpYzoKIHByb3RlY3RlZDoKICAgICAvLyBUaGlzIGxvZ2ljYWxseSBjcmVhdGVz
IHRoZSB0aHJlYWQsIGJ1dCBpbiByZWFsaXR5IHRoZSB0aHJlYWQgd29uJ3QgYmUgY3JlYXRlZCB1
bnRpbCBzb21lb25lCiAgICAgLy8gY2FsbHMgQXV0b21hdGljVGhyZWFkQ29uZGl0aW9uOjpub3Rp
ZnlPbmUoKSBvciBub3RpZnlBbGwoKS4KLSAgICBBdXRvbWF0aWNUaHJlYWQoY29uc3QgQWJzdHJh
Y3RMb2NrZXImLCBCb3g8TG9jaz4sIFJlZjxBdXRvbWF0aWNUaHJlYWRDb25kaXRpb24+JiYsIFNl
Y29uZHMgdGltZW91dCA9IDEwX3MpOworICAgIEF1dG9tYXRpY1RocmVhZChjb25zdCBBYnN0cmFj
dExvY2tlciYsIEJveDxVbmNoZWNrZWRMb2NrPiwgUmVmPEF1dG9tYXRpY1RocmVhZENvbmRpdGlv
bj4mJiwgU2Vjb25kcyB0aW1lb3V0ID0gMTBfcyk7CiAKLSAgICBBdXRvbWF0aWNUaHJlYWQoY29u
c3QgQWJzdHJhY3RMb2NrZXImLCBCb3g8TG9jaz4sIFJlZjxBdXRvbWF0aWNUaHJlYWRDb25kaXRp
b24+JiYsIFRocmVhZFR5cGUsIFNlY29uZHMgdGltZW91dCA9IDEwX3MpOworICAgIEF1dG9tYXRp
Y1RocmVhZChjb25zdCBBYnN0cmFjdExvY2tlciYsIEJveDxVbmNoZWNrZWRMb2NrPiwgUmVmPEF1
dG9tYXRpY1RocmVhZENvbmRpdGlvbj4mJiwgVGhyZWFkVHlwZSwgU2Vjb25kcyB0aW1lb3V0ID0g
MTBfcyk7CiAgICAgCiAgICAgLy8gVG8gdW5kZXJzdGFuZCBQb2xsUmVzdWx0IGFuZCBXb3JrUmVz
dWx0LCBpbWFnaW5lIHRoYXQgcG9sbCgpIGFuZCB3b3JrKCkgYXJlIGJlaW5nIGNhbGxlZCBsaWtl
CiAgICAgLy8gc286CkBAIC0xODMsMTUgKzE4MywxNSBAQCBwcml2YXRlOgogICAgIAogICAgIHZv
aWQgc3RhcnQoY29uc3QgQWJzdHJhY3RMb2NrZXImKTsKICAgICAKLSAgICBCb3g8TG9jaz4gbV9s
b2NrOworICAgIEJveDxVbmNoZWNrZWRMb2NrPiBtX2xvY2s7CiAgICAgUmVmPEF1dG9tYXRpY1Ro
cmVhZENvbmRpdGlvbj4gbV9jb25kaXRpb247CiAgICAgU2Vjb25kcyBtX3RpbWVvdXQ7CiAgICAg
VGhyZWFkVHlwZSBtX3RocmVhZFR5cGUgeyBUaHJlYWRUeXBlOjpVbmtub3duIH07CiAgICAgYm9v
bCBtX2lzUnVubmluZyB7IHRydWUgfTsKICAgICBib29sIG1faXNXYWl0aW5nIHsgZmFsc2UgfTsK
ICAgICBib29sIG1faGFzVW5kZXJseWluZ1RocmVhZCB7IGZhbHNlIH07Ci0gICAgQ29uZGl0aW9u
IG1fd2FpdENvbmRpdGlvbjsKLSAgICBDb25kaXRpb24gbV9pc1J1bm5pbmdDb25kaXRpb247Cisg
ICAgVW5jaGVja2VkQ29uZGl0aW9uIG1fd2FpdENvbmRpdGlvbjsKKyAgICBVbmNoZWNrZWRDb25k
aXRpb24gbV9pc1J1bm5pbmdDb25kaXRpb247CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXVEYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0NoZWNrZWRDb25kaXRpb24uaCBiL1NvdXJjZS9XVEYv
d3RmL0NoZWNrZWRDb25kaXRpb24uaAppbmRleCAxMTkxMGUwMzk5MTNiNGI2MGE0NDk0N2ViYzkx
ZDAxYWJjNzhiMjc5Li4xMDZiYmEyMmQwYTYxN2IwZGYwNGIyNzJmOGNhMmQwYjYxY2JhMGI2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9DaGVja2VkQ29uZGl0aW9uLmgKKysrIGIvU291cmNl
L1dURi93dGYvQ2hlY2tlZENvbmRpdGlvbi5oCkBAIC0yNSw1OCArMjUsMTIgQEAKIAogI3ByYWdt
YSBvbmNlCiAKLSNpbmNsdWRlIDx3dGYvQ2hlY2tlZExvY2suaD4KICNpbmNsdWRlIDx3dGYvQ29u
ZGl0aW9uLmg+CiAKIG5hbWVzcGFjZSBXVEYgewogCi0vLyBBIGNvbmRpdGlvbiB2YXJpYWJsZSB0
eXBlIGZvciBDaGVja2VkTG9jay4KLS8vIEZvciBwcmVkaWNhdGVzIHRoYXQgYWNjZXNzIHRoZSBn
dWFyZGVkIHZhcmlhYmxlcywgdXNlIGFzc2VydElzSGVsZChsb2NrKS4KLWNsYXNzIENoZWNrZWRD
b25kaXRpb24gZmluYWwgewotICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKENoZWNrZWRDb25kaXRp
b24pOwotICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwotcHVibGljOgotICAgIGNvbnN0ZXhw
ciBDaGVja2VkQ29uZGl0aW9uKCkgPSBkZWZhdWx0OwotCi0gICAgYm9vbCB3YWl0VW50aWwoQ2hl
Y2tlZExvY2smIGxvY2ssIGNvbnN0IFRpbWVXaXRoRHluYW1pY0Nsb2NrVHlwZSYgdGltZW91dCkg
V1RGX1JFUVVJUkVTX0xPQ0sobG9jaykKLSAgICB7Ci0gICAgICAgIHJldHVybiBtX2NvbmRpdGlv
bi53YWl0VW50aWwodW5jaGVja2VkQ2FzdChsb2NrKSwgdGltZW91dCk7Ci0gICAgfQotICAgIHRl
bXBsYXRlPHR5cGVuYW1lIEZ1bmN0b3I+Ci0gICAgYm9vbCB3YWl0VW50aWwoQ2hlY2tlZExvY2sm
IGxvY2ssIGNvbnN0IFRpbWVXaXRoRHluYW1pY0Nsb2NrVHlwZSYgdGltZW91dCwgY29uc3QgRnVu
Y3RvciYgcHJlZGljYXRlKSBXVEZfUkVRVUlSRVNfTE9DSyhsb2NrKQotICAgIHsKLSAgICAgICAg
cmV0dXJuIG1fY29uZGl0aW9uLndhaXRVbnRpbCh1bmNoZWNrZWRDYXN0KGxvY2spLCB0aW1lb3V0
LCBwcmVkaWNhdGUpOwotICAgIH0KLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBGdW5jdG9yPgotICAg
IGJvb2wgd2FpdEZvcihDaGVja2VkTG9jayYgbG9jaywgU2Vjb25kcyByZWxhdGl2ZVRpbWVvdXQs
IGNvbnN0IEZ1bmN0b3ImIHByZWRpY2F0ZSkgV1RGX1JFUVVJUkVTX0xPQ0sobG9jaykKLSAgICB7
Ci0gICAgICAgIHJldHVybiBtX2NvbmRpdGlvbi53YWl0Rm9yKHVuY2hlY2tlZENhc3QobG9jayks
IHJlbGF0aXZlVGltZW91dCwgcHJlZGljYXRlKTsKLSAgICB9Ci0gICAgYm9vbCB3YWl0Rm9yKENo
ZWNrZWRMb2NrJiBsb2NrLCBTZWNvbmRzIHJlbGF0aXZlVGltZW91dCkgV1RGX1JFUVVJUkVTX0xP
Q0sobG9jaykKLSAgICB7Ci0gICAgICAgIHJldHVybiBtX2NvbmRpdGlvbi53YWl0Rm9yKHVuY2hl
Y2tlZENhc3QobG9jayksIHJlbGF0aXZlVGltZW91dCk7Ci0gICAgfQotICAgIHZvaWQgd2FpdChD
aGVja2VkTG9jayYgbG9jaykgV1RGX1JFUVVJUkVTX0xPQ0sobG9jaykKLSAgICB7Ci0gICAgICAg
IG1fY29uZGl0aW9uLndhaXQodW5jaGVja2VkQ2FzdChsb2NrKSk7Ci0gICAgfQotICAgIHRlbXBs
YXRlPHR5cGVuYW1lIEZ1bmN0b3I+Ci0gICAgdm9pZCB3YWl0KENoZWNrZWRMb2NrJiBsb2NrLCBj
b25zdCBGdW5jdG9yJiBwcmVkaWNhdGUpIFdURl9SRVFVSVJFU19MT0NLKGxvY2spCi0gICAgewot
ICAgICAgICBtX2NvbmRpdGlvbi53YWl0KHVuY2hlY2tlZENhc3QobG9jayksIHByZWRpY2F0ZSk7
Ci0gICAgfQotICAgIGJvb2wgbm90aWZ5T25lKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiBtX2Nv
bmRpdGlvbi5ub3RpZnlPbmUoKTsKLSAgICB9Ci0gICAgdm9pZCBub3RpZnlBbGwoKQotICAgIHsK
LSAgICAgICAgbV9jb25kaXRpb24ubm90aWZ5QWxsKCk7Ci0gICAgfQotcHJpdmF0ZToKLSAgICBz
dGF0aWMgTG9jayYgdW5jaGVja2VkQ2FzdChDaGVja2VkTG9jayYgbG9jaykgeyByZXR1cm4gc3Rh
dGljX2Nhc3Q8TG9jayY+KGxvY2spOyB9Ci0gICAgQ29uZGl0aW9uIG1fY29uZGl0aW9uOwotfTsK
Ky8vIEZJWE1FOiBVcGRhdGUgY29kZSBiYXNlIHRvIHVzZSBDb25kaXRpb24gYW5kIHJlbW92ZSB0
aGlzIGhlYWRlci4KK3VzaW5nIENoZWNrZWRDb25kaXRpb24gPSBDb25kaXRpb247CiAKIH0gLy8g
bmFtZXNwYWNlIFdURgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9DaGVja2VkTG9jay5o
IGIvU291cmNlL1dURi93dGYvQ2hlY2tlZExvY2suaAppbmRleCAzYWI1Yzc3MGRlMTYxYjRmMDU5
ZDZjNzRiYjcxZWM5OGVmYTVmNThhLi45NGE5ODFkNzg4MTk2MDYxZTUzNzZkM2M0MmVhYTI0YjBi
NDJkMTg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9DaGVja2VkTG9jay5oCisrKyBiL1Nv
dXJjZS9XVEYvd3RmL0NoZWNrZWRMb2NrLmgKQEAgLTI2LDgzICsyNiwxMiBAQAogI3ByYWdtYSBv
bmNlCiAKICNpbmNsdWRlIDx3dGYvTG9jay5oPgotI2luY2x1ZGUgPHd0Zi9Mb2NrZXIuaD4KLSNp
bmNsdWRlIDx3dGYvVGhyZWFkU2FmZXR5QW5hbHlzaXMuaD4KIAogbmFtZXNwYWNlIFdURiB7CiAK
LS8vIEEgbG9jayB0eXBlIHdpdGggc3VwcG9ydCBmb3IgdGhyZWFkIHNhZmV0eSBhbmFseXNpcy4K
LS8vIFRvIGFubm90YXRlIGEgbWVtYmVyIHZhcmlhYmxlIG9yIGEgZ2xvYmFsIHZhcmlhYmxlIHdp
dGggdGhyZWFkIG93bmVyc2hpcCBpbmZvcm1hdGlvbiwKLS8vIHVzZSBsb2NrIGNhcGFiaWxpdHkg
YW5ub3RhdGlvbnMgZGVmaW5lZCBpbiBUaHJlYWRTYWZldHlBbmFseXNpcy5oLgotLy8KLS8vIEV4
YW1wbGU6Ci0vLyAgIGNsYXNzIE15VmFsdWUgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8
TXlWYWx1ZT4KLS8vICAgewotLy8gICBwdWJsaWM6Ci0vLyAgICAgICB2b2lkIHNldFZhbHVlKGlu
dCB2YWx1ZSkgeyBMb2NrZXIgaG9sZExvY2sgeyBtX2xvY2sgfTsgbV92YWx1ZSA9IHZhbHVlOyAg
fQotLy8gICAgICAgdm9pZCBtYXliZVNldE90aGVyVmFsdWUoaW50IHZhbHVlKQotLy8gICAgICAg
ewotLy8gICAgICAgICAgIGlmICghbV9sb2NrLnRyeUxvY2soKSkKLS8vICAgICAgICAgICAgICBy
ZXR1cm47Ci0vLyAgICAgICAgICAgTG9ja2VyIGxvY2tlciB7IEFkb3B0TG9jaywgbV9vdGhlckxv
Y2sgfTsKLS8vICAgICAgICAgICBtX290aGVyVmFsdWUgPSB2YWx1ZTsKLS8vICAgICAgIH0KLS8v
ICAgcHJpdmF0ZToKLS8vICAgICAgIENoZWNrZWRMb2NrIG1fbG9jazsKLS8vICAgICAgIGludCBt
X3ZhbHVlIFdURl9HVUFSREVEX0JZX0xPQ0sobV9sb2NrKSB7IDc3IH07Ci0vLyAgICAgICBpbnQg
bV9vdGhlclZhbHVlIFdURl9HVUFSREVEX0JZX0xPQ0sobV9sb2NrKSB7IDg4IH07Ci0vLyAgIH07
Ci0vLyBGSVhNRTogTWF5YmUgc2hvdWxkIGJlIGZvbGRlZCBiYWNrIHRvIExvY2sgb25jZSBob2xk
TG9jayBpcyBub3QgdXNlZCBnbG9iYWxseS4KLWNsYXNzIFdURl9DQVBBQklMSVRZX0xPQ0sgQ2hl
Y2tlZExvY2sgOiBMb2NrIHsKLSAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShDaGVja2VkTG9jayk7
Ci0gICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7Ci1wdWJsaWM6Ci0gICAgY29uc3RleHByIENo
ZWNrZWRMb2NrKCkgPSBkZWZhdWx0OwotICAgIHZvaWQgbG9jaygpIFdURl9BQ1FVSVJFU19MT0NL
KCkgeyBMb2NrOjpsb2NrKCk7IH0KLSAgICBib29sIHRyeUxvY2soKSBXVEZfQUNRVUlSRVNfTE9D
S19JRih0cnVlKSB7IHJldHVybiBMb2NrOjp0cnlMb2NrKCk7IH0KLSAgICBib29sIHRyeV9sb2Nr
KCkgV1RGX0FDUVVJUkVTX0xPQ0tfSUYodHJ1ZSkgeyByZXR1cm4gTG9jazo6dHJ5X2xvY2soKTsg
fSAvLyBOT0xJTlQ6IEludGVudGlvbmFsIGRldmlhdGlvbiB0byBzdXBwb3J0IHN0ZDo6c2NvcGVk
X2xvY2suCi0gICAgdm9pZCB1bmxvY2soKSBXVEZfUkVMRUFTRVNfTE9DSygpIHsgTG9jazo6dW5s
b2NrKCk7IH0KLSAgICB2b2lkIHVubG9ja0ZhaXJseSgpIFdURl9SRUxFQVNFU19MT0NLKCkgeyBM
b2NrOjp1bmxvY2tGYWlybHkoKTsgfQotICAgIHZvaWQgc2FmZXBvaW50KCkgeyBMb2NrOjpzYWZl
cG9pbnQoKTsgfQotICAgIGJvb2wgaXNIZWxkKCkgY29uc3QgeyByZXR1cm4gTG9jazo6aXNIZWxk
KCk7IH0KLSAgICBib29sIGlzTG9ja2VkKCkgY29uc3QgeyByZXR1cm4gTG9jazo6aXNMb2NrZWQo
KTsgfQotICAgIGZyaWVuZCBjbGFzcyBDaGVja2VkQ29uZGl0aW9uOwotfTsKLQotLy8gQXNzZXJ0
cyB0aGF0IHRoZSBsb2NrIGlzIGhlbGQuCi0vLyBUaGlzIGNhbiBiZSB1c2VkIGluIGNhc2VzIHdo
ZXJlIHRoZSBhbm5vdGF0aW9ucyBjYW5ub3QgYmUgYWRkZWQgdG8gdGhlIGZ1bmN0aW9uCi0vLyBk
ZWNsYXJhdGlvbi4KLWlubGluZSB2b2lkIGFzc2VydElzSGVsZChjb25zdCBDaGVja2VkTG9jayYg
bG9jaykgV1RGX0FTU0VSVFNfQUNRVUlSRURfTE9DSyhsb2NrKSB7IEFTU0VSVF9VTlVTRUQobG9j
aywgbG9jay5pc0hlbGQoKSk7IH0KLQotLy8gTG9ja2VyIHNwZWNpYWxpemF0aW9uIHRvIHVzZSB3
aXRoIENoZWNrZWRMb2NrLgotLy8gTm9uLW1vdmFibGUgc2ltcGxlIHNjb3BlZCBsb2NrIGhvbGRl
ci4KLS8vIEV4YW1wbGU6IExvY2tlciBsb2NrZXIgeyBtX2xvY2sgfTsKLXRlbXBsYXRlIDw+Ci1j
bGFzcyBXVEZfQ0FQQUJJTElUWV9TQ09QRURfTE9DSyBMb2NrZXI8Q2hlY2tlZExvY2s+IHsKLXB1
YmxpYzoKLSAgICBleHBsaWNpdCBMb2NrZXIoQ2hlY2tlZExvY2smIGxvY2spIFdURl9BQ1FVSVJF
U19MT0NLKGxvY2spCi0gICAgICAgIDogbV9sb2NrKGxvY2spCi0gICAgewotICAgICAgICBtX2xv
Y2subG9jaygpOwotICAgIH0KLSAgICBMb2NrZXIoQWRvcHRMb2NrVGFnLCBDaGVja2VkTG9jayYg
bG9jaykgV1RGX1JFUVVJUkVTX0xPQ0sobG9jaykKLSAgICAgICAgOiBtX2xvY2sobG9jaykKLSAg
ICB7Ci0gICAgfQotICAgIH5Mb2NrZXIoKSBXVEZfUkVMRUFTRVNfTE9DSygpCi0gICAgewotICAg
ICAgICBtX2xvY2sudW5sb2NrKCk7Ci0gICAgfQotICAgIExvY2tlcihjb25zdCBMb2NrZXI8Q2hl
Y2tlZExvY2s+JikgPSBkZWxldGU7Ci0gICAgTG9ja2VyJiBvcGVyYXRvcj0oY29uc3QgTG9ja2Vy
PENoZWNrZWRMb2NrPiYpID0gZGVsZXRlOwotcHJpdmF0ZToKLSAgICBDaGVja2VkTG9jayYgbV9s
b2NrOwotfTsKLQotTG9ja2VyKENoZWNrZWRMb2NrJikgLT4gTG9ja2VyPENoZWNrZWRMb2NrPjsK
LUxvY2tlcihBZG9wdExvY2tUYWcsIENoZWNrZWRMb2NrJikgLT4gTG9ja2VyPENoZWNrZWRMb2Nr
PjsKKy8vIEZJWE1FOiBVcGRhdGUgY29kZSBiYXNlIHRvIHVzZSBMb2NrIGFuZCByZW1vdmUgdGhp
cyBoZWFkZXIuCit1c2luZyBDaGVja2VkTG9jayA9IExvY2s7CiAKIH0gLy8gbmFtZXNwYWNlIFdU
RgogCi11c2luZyBXVEY6OmFzc2VydElzSGVsZDsKIHVzaW5nIFdURjo6Q2hlY2tlZExvY2s7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9Db25kaXRpb24uaCBiL1NvdXJjZS9XVEYvd3RmL0Nv
bmRpdGlvbi5oCmluZGV4IDgxNTUwMWYxN2QyNjc5OTJkZjRkNDRkZGI5OTMxY2NhMGU4ZmZlOTku
LjRlZWYxZjFhNjJhMWNiNTJjMWRlNTcyZTE3MWEzMTQzNTY5OGIzNjYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XVEYvd3RmL0NvbmRpdGlvbi5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL0NvbmRpdGlvbi5o
CkBAIC0yNSw2ICsyNSw3IEBACiAKICNwcmFnbWEgb25jZQogCisjaW5jbHVkZSA8d3RmL0xvY2su
aD4KICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KICNpbmNsdWRlIDx3dGYvUGFya2luZ0xv
dC5oPgogI2luY2x1ZGUgPHd0Zi9UaW1lV2l0aER5bmFtaWNDbG9ja1R5cGUuaD4KQEAgLTM5LDE2
ICs0MCwxNiBAQCBuYW1lc3BhY2UgV1RGIHsKIC8vIG5vdGlmeUFsbCgpIHJlcXVpcmUganVzdCBh
IGxvYWQgYW5kIGJyYW5jaCBmb3IgdGhlIGZhc3QgY2FzZSB3aGVyZSBubyB0aHJlYWQgaXMgd2Fp
dGluZy4KIC8vIFRoaXMgY29uZGl0aW9uIHZhcmlhYmxlLCB3aGVuIHVzZWQgd2l0aCBXVEY6Okxv
Y2ssIGNhbiBvdXRwZXJmb3JtIGEgc3lzdGVtIGNvbmRpdGlvbiB2YXJpYWJsZQogLy8gYW5kIGxv
Y2sgYnkgdXAgdG8gNTh4LgotY2xhc3MgQ29uZGl0aW9uIGZpbmFsIHsKLSAgICBXVEZfTUFLRV9O
T05DT1BZQUJMRShDb25kaXRpb24pOworY2xhc3MgVW5jaGVja2VkQ29uZGl0aW9uIGZpbmFsIHsK
KyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShVbmNoZWNrZWRDb25kaXRpb24pOwogICAgIFdURl9N
QUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIC8vIENvbmRpdGlvbiB3aWxsIGFjY2Vw
dCBhbnkga2luZCBvZiB0aW1lIGFuZCBjb252ZXJ0IGl0IGludGVybmFsbHksIGJ1dCB0aGlzIHR5
cGVkZWYgdGVsbHMKLSAgICAvLyB5b3Ugd2hhdCBraW5kIG9mIHRpbWUgQ29uZGl0aW9uIHdvdWxk
IGJlIGFibGUgdG8gdXNlIHdpdGhvdXQgY29udmVyc2lvbnMuIEhvd2V2ZXIsIGlmIHlvdQorICAg
IC8vIFVuY2hlY2tlZENvbmRpdGlvbiB3aWxsIGFjY2VwdCBhbnkga2luZCBvZiB0aW1lIGFuZCBj
b252ZXJ0IGl0IGludGVybmFsbHksIGJ1dCB0aGlzIHR5cGVkZWYgdGVsbHMKKyAgICAvLyB5b3Ug
d2hhdCBraW5kIG9mIHRpbWUgVW5jaGVja2VkQ29uZGl0aW9uIHdvdWxkIGJlIGFibGUgdG8gdXNl
IHdpdGhvdXQgY29udmVyc2lvbnMuIEhvd2V2ZXIsIGlmIHlvdQogICAgIC8vIGFyZSB1bmxpa2Vs
eSB0byBiZSBhZmZlY3RlZCBieSB0aGUgY29zdCBvZiBjb252ZXJzaW9ucywgaXQgaXMgYmV0dGVy
IHRvIHVzZSBNb25vdG9uaWNUaW1lLgogICAgIHVzaW5nIFRpbWUgPSBQYXJraW5nTG90OjpUaW1l
OwogCi0gICAgY29uc3RleHByIENvbmRpdGlvbigpID0gZGVmYXVsdDsKKyAgICBjb25zdGV4cHIg
VW5jaGVja2VkQ29uZGl0aW9uKCkgPSBkZWZhdWx0OwogCiAgICAgLy8gV2FpdCBvbiBhIHBhcmtp
bmcgcXVldWUgd2hpbGUgcmVsZWFzaW5nIHRoZSBnaXZlbiBsb2NrLiBJdCB3aWxsIHVubG9jayB0
aGUgbG9jayBqdXN0IGJlZm9yZQogICAgIC8vIHBhcmtpbmcsIGFuZCByZWxvY2sgaXQgdXBvbiB3
YWtldXAuIFJldHVybnMgdHJ1ZSBpZiB3ZSB3b2tlIHVwIGR1ZSB0byBzb21lIGNhbGwgdG8KQEAg
LTE3Miw5ICsxNzMsNjEgQEAgcHJpdmF0ZToKICAgICBBdG9taWM8Ym9vbD4gbV9oYXNXYWl0ZXJz
IHsgZmFsc2UgfTsKIH07CiAKKy8vIEEgY29uZGl0aW9uIHZhcmlhYmxlIHR5cGUgZm9yIExvY2su
CisvLyBGb3IgcHJlZGljYXRlcyB0aGF0IGFjY2VzcyB0aGUgZ3VhcmRlZCB2YXJpYWJsZXMsIHVz
ZSBhc3NlcnRJc0hlbGQobG9jaykuCitjbGFzcyBDb25kaXRpb24gZmluYWwgeworICAgIFdURl9N
QUtFX05PTkNPUFlBQkxFKENvbmRpdGlvbik7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7
CitwdWJsaWM6CisgICAgY29uc3RleHByIENvbmRpdGlvbigpID0gZGVmYXVsdDsKKworICAgIGJv
b2wgd2FpdFVudGlsKExvY2smIGxvY2ssIGNvbnN0IFRpbWVXaXRoRHluYW1pY0Nsb2NrVHlwZSYg
dGltZW91dCkgV1RGX1JFUVVJUkVTX0xPQ0sobG9jaykKKyAgICB7CisgICAgICAgIHJldHVybiBt
X2NvbmRpdGlvbi53YWl0VW50aWwodW5jaGVja2VkQ2FzdChsb2NrKSwgdGltZW91dCk7CisgICAg
fQorICAgIHRlbXBsYXRlPHR5cGVuYW1lIEZ1bmN0b3I+CisgICAgYm9vbCB3YWl0VW50aWwoTG9j
ayYgbG9jaywgY29uc3QgVGltZVdpdGhEeW5hbWljQ2xvY2tUeXBlJiB0aW1lb3V0LCBjb25zdCBG
dW5jdG9yJiBwcmVkaWNhdGUpIFdURl9SRVFVSVJFU19MT0NLKGxvY2spCisgICAgeworICAgICAg
ICByZXR1cm4gbV9jb25kaXRpb24ud2FpdFVudGlsKHVuY2hlY2tlZENhc3QobG9jayksIHRpbWVv
dXQsIHByZWRpY2F0ZSk7CisgICAgfQorICAgIHRlbXBsYXRlPHR5cGVuYW1lIEZ1bmN0b3I+Cisg
ICAgYm9vbCB3YWl0Rm9yKExvY2smIGxvY2ssIFNlY29uZHMgcmVsYXRpdmVUaW1lb3V0LCBjb25z
dCBGdW5jdG9yJiBwcmVkaWNhdGUpIFdURl9SRVFVSVJFU19MT0NLKGxvY2spCisgICAgeworICAg
ICAgICByZXR1cm4gbV9jb25kaXRpb24ud2FpdEZvcih1bmNoZWNrZWRDYXN0KGxvY2spLCByZWxh
dGl2ZVRpbWVvdXQsIHByZWRpY2F0ZSk7CisgICAgfQorICAgIGJvb2wgd2FpdEZvcihMb2NrJiBs
b2NrLCBTZWNvbmRzIHJlbGF0aXZlVGltZW91dCkgV1RGX1JFUVVJUkVTX0xPQ0sobG9jaykKKyAg
ICB7CisgICAgICAgIHJldHVybiBtX2NvbmRpdGlvbi53YWl0Rm9yKHVuY2hlY2tlZENhc3QobG9j
ayksIHJlbGF0aXZlVGltZW91dCk7CisgICAgfQorICAgIHZvaWQgd2FpdChMb2NrJiBsb2NrKSBX
VEZfUkVRVUlSRVNfTE9DSyhsb2NrKQorICAgIHsKKyAgICAgICAgbV9jb25kaXRpb24ud2FpdCh1
bmNoZWNrZWRDYXN0KGxvY2spKTsKKyAgICB9CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRnVuY3Rv
cj4KKyAgICB2b2lkIHdhaXQoTG9jayYgbG9jaywgY29uc3QgRnVuY3RvciYgcHJlZGljYXRlKSBX
VEZfUkVRVUlSRVNfTE9DSyhsb2NrKQorICAgIHsKKyAgICAgICAgbV9jb25kaXRpb24ud2FpdCh1
bmNoZWNrZWRDYXN0KGxvY2spLCBwcmVkaWNhdGUpOworICAgIH0KKyAgICBib29sIG5vdGlmeU9u
ZSgpCisgICAgeworICAgICAgICByZXR1cm4gbV9jb25kaXRpb24ubm90aWZ5T25lKCk7CisgICAg
fQorICAgIHZvaWQgbm90aWZ5QWxsKCkKKyAgICB7CisgICAgICAgIG1fY29uZGl0aW9uLm5vdGlm
eUFsbCgpOworICAgIH0KK3ByaXZhdGU6CisgICAgc3RhdGljIFVuY2hlY2tlZExvY2smIHVuY2hl
Y2tlZENhc3QoTG9jayYgbG9jaykgeyByZXR1cm4gc3RhdGljX2Nhc3Q8VW5jaGVja2VkTG9jayY+
KGxvY2spOyB9CisgICAgVW5jaGVja2VkQ29uZGl0aW9uIG1fY29uZGl0aW9uOworfTsKKwordXNp
bmcgU3RhdGljVW5jaGVja2VkQ29uZGl0aW9uID0gVW5jaGVja2VkQ29uZGl0aW9uOwogdXNpbmcg
U3RhdGljQ29uZGl0aW9uID0gQ29uZGl0aW9uOwogCiB9IC8vIG5hbWVzcGFjZSBXVEYKIAogdXNp
bmcgV1RGOjpDb25kaXRpb247Cit1c2luZyBXVEY6OlVuY2hlY2tlZENvbmRpdGlvbjsKIHVzaW5n
IFdURjo6U3RhdGljQ29uZGl0aW9uOwordXNpbmcgV1RGOjpTdGF0aWNVbmNoZWNrZWRDb25kaXRp
b247CisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0xvY2suY3BwIGIvU291cmNlL1dURi93
dGYvTG9jay5jcHAKaW5kZXggYjk5MzgzZDY5NDgwZDNhNGM5YjYyM2YwYzBiY2M3ZGY5MGVhYjA0
ZC4uZmY4NmUxMGE5YTJhNDE3YWI3MDY3MGEwNzg5Y2Y2NTBkNzE4YjE3MSAxMDA2NDQKLS0tIGEv
U291cmNlL1dURi93dGYvTG9jay5jcHAKKysrIGIvU291cmNlL1dURi93dGYvTG9jay5jcHAKQEAg
LTMzLDE0ICszMywxNCBAQCBuYW1lc3BhY2UgV1RGIHsKIAogc3RhdGljIGNvbnN0ZXhwciBib29s
IHByb2ZpbGVMb2NrQ29udGVudGlvbiA9IGZhbHNlOwogCi12b2lkIExvY2s6OmxvY2tTbG93KCkK
K3ZvaWQgVW5jaGVja2VkTG9jazo6bG9ja1Nsb3coKQogewogICAgIGlmIChwcm9maWxlTG9ja0Nv
bnRlbnRpb24pCiAgICAgICAgIFNUQUNLX1NIT1RfUFJPRklMRSg0LCAyLCA1KTsKICAgICBEZWZh
dWx0TG9ja0FsZ29yaXRobTo6bG9ja1Nsb3cobV9ieXRlKTsKIH0KIAotdm9pZCBMb2NrOjp1bmxv
Y2tTbG93KCkKK3ZvaWQgVW5jaGVja2VkTG9jazo6dW5sb2NrU2xvdygpCiB7CiAgICAgLy8gSGVh
cCBhbGxvY2F0aW9ucyBhcmUgZm9yYmlkZGVuIG9uIHRoZSBjZXJ0YWluIHRocmVhZHMgKGUuZy4g
YXVkaW8gcmVuZGVyaW5nIHRocmVhZCkgZm9yIHBlcmZvcm1hbmNlIHJlYXNvbnMgc28gd2UgbmVl
ZCB0bwogICAgIC8vIGV4cGxpY2l0bHkgYWxsb3cgdGhlIGZvbGxvd2luZyBhbGxvY2F0aW9uKHMp
LiBJbiBzb21lIHJhcmUgY2FzZXMsIHRoZSB1bmxvY2tTbG93KCkgYWxnb3JpdGggbWF5IGNhdXNl
IGFsbG9jYXRpb25zLgpAQCAtNDksNyArNDksNyBAQCB2b2lkIExvY2s6OnVubG9ja1Nsb3coKQog
ICAgIERlZmF1bHRMb2NrQWxnb3JpdGhtOjp1bmxvY2tTbG93KG1fYnl0ZSwgRGVmYXVsdExvY2tB
bGdvcml0aG06OlVuZmFpcik7CiB9CiAKLXZvaWQgTG9jazo6dW5sb2NrRmFpcmx5U2xvdygpCit2
b2lkIFVuY2hlY2tlZExvY2s6OnVubG9ja0ZhaXJseVNsb3coKQogewogICAgIC8vIEhlYXAgYWxs
b2NhdGlvbnMgYXJlIGZvcmJpZGRlbiBvbiB0aGUgY2VydGFpbiB0aHJlYWRzIChlLmcuIGF1ZGlv
IHJlbmRlcmluZyB0aHJlYWQpIGZvciBwZXJmb3JtYW5jZSByZWFzb25zIHNvIHdlIG5lZWQgdG8K
ICAgICAvLyBleHBsaWNpdGx5IGFsbG93IHRoZSBmb2xsb3dpbmcgYWxsb2NhdGlvbihzKS4gSW4g
c29tZSByYXJlIGNhc2VzLCB0aGUgdW5sb2NrU2xvdygpIGFsZ29yaXRoIG1heSBjYXVzZSBhbGxv
Y2F0aW9ucy4KQEAgLTU4LDcgKzU4LDcgQEAgdm9pZCBMb2NrOjp1bmxvY2tGYWlybHlTbG93KCkK
ICAgICBEZWZhdWx0TG9ja0FsZ29yaXRobTo6dW5sb2NrU2xvdyhtX2J5dGUsIERlZmF1bHRMb2Nr
QWxnb3JpdGhtOjpGYWlyKTsKIH0KIAotdm9pZCBMb2NrOjpzYWZlcG9pbnRTbG93KCkKK3ZvaWQg
VW5jaGVja2VkTG9jazo6c2FmZXBvaW50U2xvdygpCiB7CiAgICAgRGVmYXVsdExvY2tBbGdvcml0
aG06OnNhZmVwb2ludFNsb3cobV9ieXRlKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3Rm
L0xvY2suaCBiL1NvdXJjZS9XVEYvd3RmL0xvY2suaAppbmRleCA2MGZkYWFiZDkwZGFlN2YyZDRk
NDhmMzFiODAzNGRlM2JmOTVmNjdkLi5mZGMwYTRmNzcwY2U2MzJhMDFmMWJiMTM1YWNkYTliMzNj
ZmU0OTMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9Mb2NrLmgKKysrIGIvU291cmNlL1dU
Ri93dGYvTG9jay5oCkBAIC0yNSw5ICsyNSwxMSBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1
ZGUgPG11dGV4PgogI2luY2x1ZGUgPHd0Zi9Mb2NrQWxnb3JpdGhtLmg+CiAjaW5jbHVkZSA8d3Rm
L0xvY2tlci5oPgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgorI2luY2x1ZGUgPHd0Zi9U
aHJlYWRTYWZldHlBbmFseXNpcy5oPgogCiBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CiBzdHJ1
Y3QgTG9ja0luc3BlY3RvcjsKQEAgLTQ3LDExICs0OSwxMSBAQCB0eXBlZGVmIExvY2tBbGdvcml0
aG08dWludDhfdCwgMSwgMj4gRGVmYXVsdExvY2tBbGdvcml0aG07CiAvLyBhdCB3b3JzdCBvbmUg
Y2FsbCB0byB1bmxvY2soKSBwZXIgbWlsbGlzZWNvbmQgd2lsbCBkbyBhIGRpcmVjdCBoYW5kLW9m
ZiB0byB0aGUgdGhyZWFkIHRoYXQgaXMgYXQKIC8vIHRoZSBoZWFkIG9mIHRoZSBxdWV1ZS4gV2hl
biB0aGVyZSBhcmUgY29sbGlzaW9ucywgZWFjaCBjb2xsaXNpb24gaW5jcmVhc2VzIHRoZSBmYWly
IHVubG9jayBkZWxheQogLy8gYnkgb25lIG1pbGxpc2Vjb25kIGluIHRoZSB3b3JzdCBjYXNlLgot
Y2xhc3MgTG9jayB7Ci0gICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoTG9jayk7CitjbGFzcyBVbmNo
ZWNrZWRMb2NrIHsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShVbmNoZWNrZWRMb2NrKTsKICAg
ICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBjb25zdGV4cHIgTG9jaygp
ID0gZGVmYXVsdDsKKyAgICBjb25zdGV4cHIgVW5jaGVja2VkTG9jaygpID0gZGVmYXVsdDsKIAog
ICAgIHZvaWQgbG9jaygpCiAgICAgewpAQCAtMTMxLDkgKzEzMyw4NCBAQCBwcml2YXRlOgogICAg
IEF0b21pYzx1aW50OF90PiBtX2J5dGUgeyAwIH07CiB9OwogCisvLyBBIGxvY2sgdHlwZSB3aXRo
IHN1cHBvcnQgZm9yIHRocmVhZCBzYWZldHkgYW5hbHlzaXMuCisvLyBUbyBhbm5vdGF0ZSBhIG1l
bWJlciB2YXJpYWJsZSBvciBhIGdsb2JhbCB2YXJpYWJsZSB3aXRoIHRocmVhZCBvd25lcnNoaXAg
aW5mb3JtYXRpb24sCisvLyB1c2UgbG9jayBjYXBhYmlsaXR5IGFubm90YXRpb25zIGRlZmluZWQg
aW4gVGhyZWFkU2FmZXR5QW5hbHlzaXMuaC4KKy8vCisvLyBFeGFtcGxlOgorLy8gICBjbGFzcyBN
eVZhbHVlIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPE15VmFsdWU+CisvLyAgIHsKKy8v
ICAgcHVibGljOgorLy8gICAgICAgdm9pZCBzZXRWYWx1ZShpbnQgdmFsdWUpIHsgTG9ja2VyIGhv
bGRMb2NrIHsgbV9sb2NrIH07IG1fdmFsdWUgPSB2YWx1ZTsgIH0KKy8vICAgICAgIHZvaWQgbWF5
YmVTZXRPdGhlclZhbHVlKGludCB2YWx1ZSkKKy8vICAgICAgIHsKKy8vICAgICAgICAgICBpZiAo
IW1fbG9jay50cnlMb2NrKCkpCisvLyAgICAgICAgICAgICAgcmV0dXJuOworLy8gICAgICAgICAg
IExvY2tlciBsb2NrZXIgeyBBZG9wdExvY2ssIG1fb3RoZXJMb2NrIH07CisvLyAgICAgICAgICAg
bV9vdGhlclZhbHVlID0gdmFsdWU7CisvLyAgICAgICB9CisvLyAgIHByaXZhdGU6CisvLyAgICAg
ICBMb2NrIG1fbG9jazsKKy8vICAgICAgIGludCBtX3ZhbHVlIFdURl9HVUFSREVEX0JZX0xPQ0so
bV9sb2NrKSB7IDc3IH07CisvLyAgICAgICBpbnQgbV9vdGhlclZhbHVlIFdURl9HVUFSREVEX0JZ
X0xPQ0sobV9sb2NrKSB7IDg4IH07CisvLyAgIH07CitjbGFzcyBXVEZfQ0FQQUJJTElUWV9MT0NL
IExvY2sgOiBVbmNoZWNrZWRMb2NrIHsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShMb2NrKTsK
KyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICBjb25zdGV4cHIgTG9j
aygpID0gZGVmYXVsdDsKKyAgICB2b2lkIGxvY2soKSBXVEZfQUNRVUlSRVNfTE9DSygpIHsgVW5j
aGVja2VkTG9jazo6bG9jaygpOyB9CisgICAgYm9vbCB0cnlMb2NrKCkgV1RGX0FDUVVJUkVTX0xP
Q0tfSUYodHJ1ZSkgeyByZXR1cm4gVW5jaGVja2VkTG9jazo6dHJ5TG9jaygpOyB9CisgICAgYm9v
bCB0cnlfbG9jaygpIFdURl9BQ1FVSVJFU19MT0NLX0lGKHRydWUpIHsgcmV0dXJuIFVuY2hlY2tl
ZExvY2s6OnRyeV9sb2NrKCk7IH0gLy8gTk9MSU5UOiBJbnRlbnRpb25hbCBkZXZpYXRpb24gdG8g
c3VwcG9ydCBzdGQ6OnNjb3BlZF9sb2NrLgorICAgIHZvaWQgdW5sb2NrKCkgV1RGX1JFTEVBU0VT
X0xPQ0soKSB7IFVuY2hlY2tlZExvY2s6OnVubG9jaygpOyB9CisgICAgdm9pZCB1bmxvY2tGYWly
bHkoKSBXVEZfUkVMRUFTRVNfTE9DSygpIHsgVW5jaGVja2VkTG9jazo6dW5sb2NrRmFpcmx5KCk7
IH0KKyAgICB2b2lkIHNhZmVwb2ludCgpIHsgVW5jaGVja2VkTG9jazo6c2FmZXBvaW50KCk7IH0K
KyAgICBib29sIGlzSGVsZCgpIGNvbnN0IHsgcmV0dXJuIFVuY2hlY2tlZExvY2s6OmlzSGVsZCgp
OyB9CisgICAgYm9vbCBpc0xvY2tlZCgpIGNvbnN0IHsgcmV0dXJuIFVuY2hlY2tlZExvY2s6Omlz
TG9ja2VkKCk7IH0KKyAgICBmcmllbmQgY2xhc3MgQ29uZGl0aW9uOworICAgIGZyaWVuZCBzdHJ1
Y3QgVGVzdFdlYktpdEFQSTo6TG9ja0luc3BlY3RvcjsKK307CisKKy8vIEFzc2VydHMgdGhhdCB0
aGUgbG9jayBpcyBoZWxkLgorLy8gVGhpcyBjYW4gYmUgdXNlZCBpbiBjYXNlcyB3aGVyZSB0aGUg
YW5ub3RhdGlvbnMgY2Fubm90IGJlIGFkZGVkIHRvIHRoZSBmdW5jdGlvbgorLy8gZGVjbGFyYXRp
b24uCitpbmxpbmUgdm9pZCBhc3NlcnRJc0hlbGQoY29uc3QgTG9jayYgbG9jaykgV1RGX0FTU0VS
VFNfQUNRVUlSRURfTE9DSyhsb2NrKSB7IEFTU0VSVF9VTlVTRUQobG9jaywgbG9jay5pc0hlbGQo
KSk7IH0KKworLy8gTG9ja2VyIHNwZWNpYWxpemF0aW9uIHRvIHVzZSB3aXRoIExvY2suCisvLyBO
b24tbW92YWJsZSBzaW1wbGUgc2NvcGVkIGxvY2sgaG9sZGVyLgorLy8gRXhhbXBsZTogTG9ja2Vy
IGxvY2tlciB7IG1fbG9jayB9OwordGVtcGxhdGUgPD4KK2NsYXNzIFdURl9DQVBBQklMSVRZX1ND
T1BFRF9MT0NLIExvY2tlcjxMb2NrPiB7CitwdWJsaWM6CisgICAgZXhwbGljaXQgTG9ja2VyKExv
Y2smIGxvY2spIFdURl9BQ1FVSVJFU19MT0NLKGxvY2spCisgICAgICAgIDogbV9sb2NrKGxvY2sp
CisgICAgeworICAgICAgICBtX2xvY2subG9jaygpOworICAgIH0KKyAgICBMb2NrZXIoQWRvcHRM
b2NrVGFnLCBMb2NrJiBsb2NrKSBXVEZfUkVRVUlSRVNfTE9DSyhsb2NrKQorICAgICAgICA6IG1f
bG9jayhsb2NrKQorICAgIHsKKyAgICB9CisgICAgfkxvY2tlcigpIFdURl9SRUxFQVNFU19MT0NL
KCkKKyAgICB7CisgICAgICAgIG1fbG9jay51bmxvY2soKTsKKyAgICB9CisgICAgTG9ja2VyKGNv
bnN0IExvY2tlcjxMb2NrPiYpID0gZGVsZXRlOworICAgIExvY2tlciYgb3BlcmF0b3I9KGNvbnN0
IExvY2tlcjxMb2NrPiYpID0gZGVsZXRlOworcHJpdmF0ZToKKyAgICBMb2NrJiBtX2xvY2s7Cit9
OworCitMb2NrZXIoTG9jayYpIC0+IExvY2tlcjxMb2NrPjsKK0xvY2tlcihBZG9wdExvY2tUYWcs
IExvY2smKSAtPiBMb2NrZXI8TG9jaz47CisKIHVzaW5nIExvY2tIb2xkZXIgPSBMb2NrZXI8TG9j
az47Cit1c2luZyBVbmNoZWNrZWRMb2NrSG9sZGVyID0gTG9ja2VyPFVuY2hlY2tlZExvY2s+Owog
CiB9IC8vIG5hbWVzcGFjZSBXVEYKIAordXNpbmcgV1RGOjpVbmNoZWNrZWRMb2NrOwogdXNpbmcg
V1RGOjpMb2NrOwogdXNpbmcgV1RGOjpMb2NrSG9sZGVyOwordXNpbmcgV1RGOjpVbmNoZWNrZWRM
b2NrSG9sZGVyOwordXNpbmcgV1RGOjphc3NlcnRJc0hlbGQ7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V1RGL3d0Zi9NZXRhQWxsb2NhdG9yLmNwcCBiL1NvdXJjZS9XVEYvd3RmL01ldGFBbGxvY2F0b3Iu
Y3BwCmluZGV4IGVlZjg5Yjc3ZTdiZGRmY2Q2NzY1ZDY3M2FhNTY1YTA2NzdjZDcwYTQuLmQ5Y2Q1
OTkyZjNhMGQ1MWQwNDZlODcwMWExM2JkMjdhNzkwMjJhZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
VEYvd3RmL01ldGFBbGxvY2F0b3IuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL01ldGFBbGxvY2F0
b3IuY3BwCkBAIC02Miw3ICs2Miw3IEBAIHZvaWQgTWV0YUFsbG9jYXRvclRyYWNrZXI6OnJlbGVh
c2UoTWV0YUFsbG9jYXRvckhhbmRsZSYgaGFuZGxlKQogICAgIG1fYWxsb2NhdGlvbnMucmVtb3Zl
KCZoYW5kbGUpOwogfQogCi12b2lkIE1ldGFBbGxvY2F0b3I6OnJlbGVhc2UoY29uc3QgTG9ja0hv
bGRlciYsIE1ldGFBbGxvY2F0b3JIYW5kbGUmIGhhbmRsZSkKK3ZvaWQgTWV0YUFsbG9jYXRvcjo6
cmVsZWFzZShjb25zdCBVbmNoZWNrZWRMb2NrSG9sZGVyJiwgTWV0YUFsbG9jYXRvckhhbmRsZSYg
aGFuZGxlKQogewogICAgIGlmIChoYW5kbGUuc2l6ZUluQnl0ZXMoKSkgewogICAgICAgICBNZW1v
cnlQdHIgc3RhcnQgPSBoYW5kbGUuc3RhcnQoKTsKQEAgLTEyNCw3ICsxMjQsNyBAQCB2b2lkIE1l
dGFBbGxvY2F0b3JIYW5kbGU6OmR1bXAoUHJpbnRTdHJlYW0mIG91dCkgY29uc3QKICAgICBvdXQu
cHJpbnQoUmF3UG9pbnRlcihzdGFydCgpLnVudGFnZ2VkUHRyKCkpLCAiLi4uIiwgUmF3UG9pbnRl
cihlbmQoKS51bnRhZ2dlZFB0cigpKSk7CiB9CiAKLU1ldGFBbGxvY2F0b3I6Ok1ldGFBbGxvY2F0
b3IoTG9jayYgbG9jaywgc2l6ZV90IGFsbG9jYXRpb25HcmFudWxlLCBzaXplX3QgcGFnZVNpemUp
CitNZXRhQWxsb2NhdG9yOjpNZXRhQWxsb2NhdG9yKFVuY2hlY2tlZExvY2smIGxvY2ssIHNpemVf
dCBhbGxvY2F0aW9uR3JhbnVsZSwgc2l6ZV90IHBhZ2VTaXplKQogICAgIDogbV9hbGxvY2F0aW9u
R3JhbnVsZShhbGxvY2F0aW9uR3JhbnVsZSkKICAgICAsIG1fcGFnZVNpemUocGFnZVNpemUpCiAg
ICAgLCBtX2J5dGVzQWxsb2NhdGVkKDApCkBAIC0xNTQsNyArMTU0LDcgQEAgTWV0YUFsbG9jYXRv
cjo6TWV0YUFsbG9jYXRvcihMb2NrJiBsb2NrLCBzaXplX3QgYWxsb2NhdGlvbkdyYW51bGUsIHNp
emVfdCBwYWdlU2kKICAgICBBU1NFUlQoc3RhdGljX2Nhc3Q8c2l6ZV90PigxKSA8PCBtX2xvZ0Fs
bG9jYXRpb25HcmFudWxlID09IG1fYWxsb2NhdGlvbkdyYW51bGUpOwogfQogCi1SZWZQdHI8TWV0
YUFsbG9jYXRvckhhbmRsZT4gTWV0YUFsbG9jYXRvcjo6YWxsb2NhdGUoY29uc3QgTG9ja0hvbGRl
ciYsIHNpemVfdCBzaXplSW5CeXRlcykKK1JlZlB0cjxNZXRhQWxsb2NhdG9ySGFuZGxlPiBNZXRh
QWxsb2NhdG9yOjphbGxvY2F0ZShjb25zdCBVbmNoZWNrZWRMb2NrSG9sZGVyJiwgc2l6ZV90IHNp
emVJbkJ5dGVzKQogewogICAgIGlmICghc2l6ZUluQnl0ZXMpCiAgICAgICAgIHJldHVybiBudWxs
cHRyOwpAQCAtMTk4LDcgKzE5OCw3IEBAIFJlZlB0cjxNZXRhQWxsb2NhdG9ySGFuZGxlPiBNZXRh
QWxsb2NhdG9yOjphbGxvY2F0ZShjb25zdCBMb2NrSG9sZGVyJiwgc2l6ZV90IHNpCiAgICAgcmV0
dXJuIGhhbmRsZTsKIH0KIAotTWV0YUFsbG9jYXRvcjo6U3RhdGlzdGljcyBNZXRhQWxsb2NhdG9y
OjpjdXJyZW50U3RhdGlzdGljcyhjb25zdCBMb2NrSG9sZGVyJikKK01ldGFBbGxvY2F0b3I6OlN0
YXRpc3RpY3MgTWV0YUFsbG9jYXRvcjo6Y3VycmVudFN0YXRpc3RpY3MoY29uc3QgVW5jaGVja2Vk
TG9ja0hvbGRlciYpCiB7CiAgICAgU3RhdGlzdGljcyByZXN1bHQ7CiAgICAgcmVzdWx0LmJ5dGVz
QWxsb2NhdGVkID0gbV9ieXRlc0FsbG9jYXRlZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3Rm
L01ldGFBbGxvY2F0b3IuaCBiL1NvdXJjZS9XVEYvd3RmL01ldGFBbGxvY2F0b3IuaAppbmRleCA1
ZmI3MmMyODBlZGMwNmRlYTg5MzFiNmEzYzA5ZTFmZjdiZjVjOGQxLi5lZGZlYzdjM2I4OTk2Mjlm
MDdkZTdhYTA4ZDBjNjMyMjc2ZjhjNDBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9NZXRh
QWxsb2NhdG9yLmgKKysrIGIvU291cmNlL1dURi93dGYvTWV0YUFsbG9jYXRvci5oCkBAIC02NSw3
ICs2NSw3IEBAIHB1YmxpYzoKICAgICB1c2luZyBGcmVlU3BhY2VQdHIgPSBNZXRhQWxsb2NhdG9y
UHRyPEZyZWVTcGFjZVB0clRhZz47CiAgICAgdXNpbmcgTWVtb3J5UHRyID0gTWV0YUFsbG9jYXRv
ckhhbmRsZTo6TWVtb3J5UHRyOwogCi0gICAgV1RGX0VYUE9SVF9QUklWQVRFIE1ldGFBbGxvY2F0
b3IoTG9jayYsIHNpemVfdCBhbGxvY2F0aW9uR3JhbnVsZSwgc2l6ZV90IHBhZ2VTaXplID0gV1RG
OjpwYWdlU2l6ZSgpKTsKKyAgICBXVEZfRVhQT1JUX1BSSVZBVEUgTWV0YUFsbG9jYXRvcihVbmNo
ZWNrZWRMb2NrJiwgc2l6ZV90IGFsbG9jYXRpb25HcmFudWxlLCBzaXplX3QgcGFnZVNpemUgPSBX
VEY6OnBhZ2VTaXplKCkpOwogICAgIAogICAgIFdURl9FWFBPUlRfUFJJVkFURSB2aXJ0dWFsIH5N
ZXRhQWxsb2NhdG9yKCk7CiAgICAgCkBAIC03NCw3ICs3NCw3IEBAIHB1YmxpYzoKICAgICAgICAg
TG9ja2VyIGxvY2tlciB7IG1fbG9jayB9OwogICAgICAgICByZXR1cm4gYWxsb2NhdGUobG9ja2Vy
LCBzaXplSW5CeXRlcyk7CiAgICAgfQotICAgIFdURl9FWFBPUlRfUFJJVkFURSBSZWZQdHI8TWV0
YUFsbG9jYXRvckhhbmRsZT4gYWxsb2NhdGUoY29uc3QgTG9ja0hvbGRlciYsIHNpemVfdCBzaXpl
SW5CeXRlcyk7CisgICAgV1RGX0VYUE9SVF9QUklWQVRFIFJlZlB0cjxNZXRhQWxsb2NhdG9ySGFu
ZGxlPiBhbGxvY2F0ZShjb25zdCBVbmNoZWNrZWRMb2NrSG9sZGVyJiwgc2l6ZV90IHNpemVJbkJ5
dGVzKTsKIAogICAgIHZvaWQgdHJhY2tBbGxvY2F0aW9ucyhNZXRhQWxsb2NhdG9yVHJhY2tlciog
dHJhY2tlcikKICAgICB7CkBAIC05OCw3ICs5OCw3IEBAIHB1YmxpYzoKICAgICAgICAgTG9ja2Vy
IGxvY2tlciB7IG1fbG9jayB9OwogICAgICAgICByZXR1cm4gY3VycmVudFN0YXRpc3RpY3MobG9j
a2VyKTsKICAgICB9Ci0gICAgV1RGX0VYUE9SVF9QUklWQVRFIFN0YXRpc3RpY3MgY3VycmVudFN0
YXRpc3RpY3MoY29uc3QgTG9ja0hvbGRlciYpOworICAgIFdURl9FWFBPUlRfUFJJVkFURSBTdGF0
aXN0aWNzIGN1cnJlbnRTdGF0aXN0aWNzKGNvbnN0IFVuY2hlY2tlZExvY2tIb2xkZXImKTsKIAog
ICAgIC8vIEFkZCBtb3JlIGZyZWUgc3BhY2UgdG8gdGhlIGFsbG9jYXRvci4gQ2FsbCB0aGlzIGRp
cmVjdGx5IGZyb20KICAgICAvLyB0aGUgY29uc3RydWN0b3IgaWYgeW91IHdpc2ggdG8gb3BlcmF0
ZSB0aGUgYWxsb2NhdG9yIHdpdGhpbiBhCkBAIC0xMzQsNyArMTM0LDcgQEAgcHJvdGVjdGVkOgog
ICAgIC8vIGFzIHRoZXJlIGFyZSBIYW5kbGVzIHRoYXQgcmVmZXIgdG8gaXQuCiAKICAgICAvLyBS
ZWxlYXNlIGEgTWV0YUFsbG9jYXRvckhhbmRsZS4KLSAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdmly
dHVhbCB2b2lkIHJlbGVhc2UoY29uc3QgTG9ja0hvbGRlciYsIE1ldGFBbGxvY2F0b3JIYW5kbGUm
KTsKKyAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdmlydHVhbCB2b2lkIHJlbGVhc2UoY29uc3QgVW5j
aGVja2VkTG9ja0hvbGRlciYsIE1ldGFBbGxvY2F0b3JIYW5kbGUmKTsKIHByaXZhdGU6CiAgICAg
CiAgICAgZnJpZW5kIGNsYXNzIE1ldGFBbGxvY2F0b3JIYW5kbGU7CkBAIC0xOTcsNyArMTk3LDcg
QEAgcHJpdmF0ZToKICAgICBzaXplX3QgbV9ieXRlc1Jlc2VydmVkOwogICAgIHNpemVfdCBtX2J5
dGVzQ29tbWl0dGVkOwogICAgIAotICAgIExvY2smIG1fbG9jazsKKyAgICBVbmNoZWNrZWRMb2Nr
JiBtX2xvY2s7CiAKICAgICBNZXRhQWxsb2NhdG9yVHJhY2tlciogbV90cmFja2VyIHsgbnVsbHB0
ciB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9QYXJhbGxlbEhlbHBlclBvb2wuY3Bw
IGIvU291cmNlL1dURi93dGYvUGFyYWxsZWxIZWxwZXJQb29sLmNwcAppbmRleCA0NDNkNzMxM2U2
YmFkMDI4NDM0OWU2MTA3ZjIwMzk3ZjkzZjQzYThkLi5jNzM0Njg1NTkzMTRkMDk3MDBiZGQ4YTVk
MGE1NTIwMWUwZDUwYzljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9QYXJhbGxlbEhlbHBl
clBvb2wuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL1BhcmFsbGVsSGVscGVyUG9vbC5jcHAKQEAg
LTEyMiw3ICsxMjIsNyBAQCB2b2lkIFBhcmFsbGVsSGVscGVyQ2xpZW50OjpydW5UYXNrKGNvbnN0
IFJlZlB0cjxTaGFyZWRUYXNrPHZvaWQgKCk+PiYgdGFzaykKIH0KIAogUGFyYWxsZWxIZWxwZXJQ
b29sOjpQYXJhbGxlbEhlbHBlclBvb2woQ1N0cmluZyYmIHRocmVhZE5hbWUpCi0gICAgOiBtX2xv
Y2soQm94PExvY2s+OjpjcmVhdGUoKSkKKyAgICA6IG1fbG9jayhCb3g8VW5jaGVja2VkTG9jaz46
OmNyZWF0ZSgpKQogICAgICwgbV93b3JrQXZhaWxhYmxlQ29uZGl0aW9uKEF1dG9tYXRpY1RocmVh
ZENvbmRpdGlvbjo6Y3JlYXRlKCkpCiAgICAgLCBtX3RocmVhZE5hbWUoV1RGTW92ZSh0aHJlYWRO
YW1lKSkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1BhcmFsbGVsSGVscGVyUG9vbC5o
IGIvU291cmNlL1dURi93dGYvUGFyYWxsZWxIZWxwZXJQb29sLmgKaW5kZXggMWU3NTk5YzgzZDY3
MTIxYzdlNmJmZTg3Y2NhOTFlZjZjZTg2ZTQwNy4uNjY0ZmFkZTg1Mzk5M2FiNGIwNTk1NDg3MjIx
NGYzODdjOWE2ZDA1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvUGFyYWxsZWxIZWxwZXJQ
b29sLmgKKysrIGIvU291cmNlL1dURi93dGYvUGFyYWxsZWxIZWxwZXJQb29sLmgKQEAgLTE5OSw5
ICsxOTksOSBAQCBwcml2YXRlOgogICAgIFBhcmFsbGVsSGVscGVyQ2xpZW50KiBnZXRDbGllbnRX
aXRoVGFzayhjb25zdCBBYnN0cmFjdExvY2tlciYpOwogICAgIFBhcmFsbGVsSGVscGVyQ2xpZW50
KiB3YWl0Rm9yQ2xpZW50V2l0aFRhc2soY29uc3QgQWJzdHJhY3RMb2NrZXImKTsKICAgICAKLSAg
ICBCb3g8TG9jaz4gbV9sb2NrOyAvLyBBdXRvbWF0aWNUaHJlYWQgd2FudHMgdGhpcyBpbiBhIGJv
eCBmb3Igc2FmZXR5LgorICAgIEJveDxVbmNoZWNrZWRMb2NrPiBtX2xvY2s7IC8vIEF1dG9tYXRp
Y1RocmVhZCB3YW50cyB0aGlzIGluIGEgYm94IGZvciBzYWZldHkuCiAgICAgUmVmPEF1dG9tYXRp
Y1RocmVhZENvbmRpdGlvbj4gbV93b3JrQXZhaWxhYmxlQ29uZGl0aW9uOwotICAgIENvbmRpdGlv
biBtX3dvcmtDb21wbGV0ZUNvbmRpdGlvbjsKKyAgICBVbmNoZWNrZWRDb25kaXRpb24gbV93b3Jr
Q29tcGxldGVDb25kaXRpb247CiAKICAgICBXZWFrUmFuZG9tIG1fcmFuZG9tOwogICAgIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dURi93dGYvUmVjdXJzaXZlTG9ja0FkYXB0ZXIuaCBiL1NvdXJjZS9X
VEYvd3RmL1JlY3Vyc2l2ZUxvY2tBZGFwdGVyLmgKaW5kZXggMWVlMTJkNDE5NDcyNmQyMzI0OTJk
NjU0NDQxNmVmNjYxNDhiZDY2YS4uY2E3YmM0NTU0NDdiMTUyMjA3Y2UxYWI3ZjBjYjQ0ZDRlZDE4
ZThkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvUmVjdXJzaXZlTG9ja0FkYXB0ZXIuaAor
KysgYi9Tb3VyY2UvV1RGL3d0Zi9SZWN1cnNpdmVMb2NrQWRhcHRlci5oCkBAIC04OSw3ICs4OSw3
IEBAIHByaXZhdGU6CiAgICAgTG9ja1R5cGUgbV9sb2NrOwogfTsKIAotdXNpbmcgUmVjdXJzaXZl
TG9jayA9IFJlY3Vyc2l2ZUxvY2tBZGFwdGVyPExvY2s+OwordXNpbmcgUmVjdXJzaXZlTG9jayA9
IFJlY3Vyc2l2ZUxvY2tBZGFwdGVyPFVuY2hlY2tlZExvY2s+OwogCiB9IC8vIG5hbWVzcGFjZSBX
VEYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvV29ya2VyUG9vbC5jcHAgYi9Tb3VyY2Uv
V1RGL3d0Zi9Xb3JrZXJQb29sLmNwcAppbmRleCA4YTljMWZkYTc0YTczYjJjNWFiNWNkYTJkOGU0
NjA5YWJlODBhMzBiLi4yMTlkYmYxNTFkNjYzN2M2N2EzZTQ3NmZkMTNlM2QxYjg4YjQzNTdhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9Xb3JrZXJQb29sLmNwcAorKysgYi9Tb3VyY2UvV1RG
L3d0Zi9Xb3JrZXJQb29sLmNwcApAQCAtMzIsNyArMzIsNyBAQCBjbGFzcyBXb3JrZXJQb29sOjpX
b3JrZXIgZmluYWwgOiBwdWJsaWMgQXV0b21hdGljVGhyZWFkIHsKIHB1YmxpYzoKICAgICBmcmll
bmQgY2xhc3MgV29ya2VyUG9vbDsKIAotICAgIFdvcmtlcihjb25zdCBBYnN0cmFjdExvY2tlciYg
bG9ja2VyLCBXb3JrZXJQb29sJiBwb29sLCBCb3g8TG9jaz4gbG9jaywgUmVmPEF1dG9tYXRpY1Ro
cmVhZENvbmRpdGlvbj4mJiBjb25kaXRpb24sIFNlY29uZHMgdGltZW91dCkKKyAgICBXb3JrZXIo
Y29uc3QgQWJzdHJhY3RMb2NrZXImIGxvY2tlciwgV29ya2VyUG9vbCYgcG9vbCwgQm94PFVuY2hl
Y2tlZExvY2s+IGxvY2ssIFJlZjxBdXRvbWF0aWNUaHJlYWRDb25kaXRpb24+JiYgY29uZGl0aW9u
LCBTZWNvbmRzIHRpbWVvdXQpCiAgICAgICAgIDogQXV0b21hdGljVGhyZWFkKGxvY2tlciwgbG9j
aywgV1RGTW92ZShjb25kaXRpb24pLCB0aW1lb3V0KQogICAgICAgICAsIG1fcG9vbChwb29sKQog
ICAgIHsKQEAgLTgyLDcgKzgyLDcgQEAgcHJpdmF0ZToKIH07CiAKIFdvcmtlclBvb2w6Oldvcmtl
clBvb2woQVNDSUlMaXRlcmFsIG5hbWUsIHVuc2lnbmVkIG51bWJlck9mV29ya2VycywgU2Vjb25k
cyB0aW1lb3V0KQotICAgIDogbV9sb2NrKEJveDxMb2NrPjo6Y3JlYXRlKCkpCisgICAgOiBtX2xv
Y2soQm94PFVuY2hlY2tlZExvY2s+OjpjcmVhdGUoKSkKICAgICAsIG1fY29uZGl0aW9uKEF1dG9t
YXRpY1RocmVhZENvbmRpdGlvbjo6Y3JlYXRlKCkpCiAgICAgLCBtX3RpbWVvdXQodGltZW91dCkK
ICAgICAsIG1fbmFtZShuYW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvV29ya2VyUG9v
bC5oIGIvU291cmNlL1dURi93dGYvV29ya2VyUG9vbC5oCmluZGV4IDYyMzVlNzMxZWQ3NWI4MDEy
NTA5NTM1OTA2OGIwOGQ0YzFkY2ZlYzIuLjdhNDA0MmI0NmIxNjg4MDIzZjFjZWY5ZTY0MmFiMmM0
OGM4ODkzZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1dvcmtlclBvb2wuaAorKysgYi9T
b3VyY2UvV1RGL3d0Zi9Xb3JrZXJQb29sLmgKQEAgLTU3LDcgKzU3LDcgQEAgcHJpdmF0ZToKIAog
ICAgIGJvb2wgc2hvdWxkU2xlZXAoY29uc3QgQWJzdHJhY3RMb2NrZXImKTsKIAotICAgIEJveDxM
b2NrPiBtX2xvY2s7CisgICAgQm94PFVuY2hlY2tlZExvY2s+IG1fbG9jazsKICAgICBSZWY8QXV0
b21hdGljVGhyZWFkQ29uZGl0aW9uPiBtX2NvbmRpdGlvbjsKICAgICBTZWNvbmRzIG1fdGltZW91
dDsKICAgICBNb25vdG9uaWNUaW1lIG1fbGFzdFRpbWVvdXRUaW1lIHsgTW9ub3RvbmljVGltZTo6
bmFuKCkgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvQXRvbVN0cmluZ0ltcGwu
Y3BwIGIvU291cmNlL1dURi93dGYvdGV4dC9BdG9tU3RyaW5nSW1wbC5jcHAKaW5kZXggYTAyOGU0
MmEzNDY0MTk2ZmRhODc0M2Y3MTI3ZDhiNzNiM2QxYzI4Yy4uMDA5ZTJhMThmZmQyYTRhNDc0YTFl
ZGRmNTU4ZjZlY2FiODI3OTM0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvdGV4dC9BdG9t
U3RyaW5nSW1wbC5jcHAKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9BdG9tU3RyaW5nSW1wbC5j
cHAKQEAgLTQ1LDcgKzQ1LDcgQEAgY2xhc3MgQXRvbVN0cmluZ1RhYmxlTG9ja2VyIDogcHVibGlj
IExvY2tIb2xkZXIgewogICAgIHN0YXRpYyBMb2NrIHNfc3RyaW5nVGFibGVMb2NrOwogcHVibGlj
OgogICAgIEF0b21TdHJpbmdUYWJsZUxvY2tlcigpCi0gICAgICAgIDogTG9ja0hvbGRlcigmc19z
dHJpbmdUYWJsZUxvY2spCisgICAgICAgIDogTG9ja0hvbGRlcihzX3N0cmluZ1RhYmxlTG9jaykK
ICAgICB7CiAgICAgfQogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL3NlcnZlci9JREJTZXJ2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvc2VydmVyL0lEQlNlcnZlci5jcHAKaW5kZXggMWVkZWVkMmEzZmE2MjJjNTgyMjRiMDY4
MzBhM2FiNDM0NGMwNDZjYS4uNDlkODc2NjJmY2IzYTVhZTIzZjJhN2FiNTI3ZTY1NTdjMzI2ZWEz
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lE
QlNlcnZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVy
L0lEQlNlcnZlci5jcHAKQEAgLTczMyw3ICs3MzMsNyBAQCB2b2lkIElEQlNlcnZlcjo6cmVuYW1l
T3JpZ2luKGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgb2xkT3JpZ2luLCBjb25z
dAogICAgICAgICBGaWxlU3lzdGVtOjptb3ZlRmlsZShvbGRPcmlnaW5QYXRoLCBuZXdPcmlnaW5Q
YXRoKTsKIH0KIAotU3RvcmFnZVF1b3RhTWFuYWdlcjo6RGVjaXNpb24gSURCU2VydmVyOjpyZXF1
ZXN0U3BhY2UoY29uc3QgQ2xpZW50T3JpZ2luJiBvcmlnaW4sIHVpbnQ2NF90IHRhc2tTaXplKQor
U3RvcmFnZVF1b3RhTWFuYWdlcjo6RGVjaXNpb24gSURCU2VydmVyOjpyZXF1ZXN0U3BhY2UoY29u
c3QgQ2xpZW50T3JpZ2luJiBvcmlnaW4sIHVpbnQ2NF90IHRhc2tTaXplKSBXVEZfSUdOT1JFU19U
SFJFQURfU0FGRVRZX0FOQUxZU0lTCiB7CiAgICAgQVNTRVJUKCFpc01haW5UaHJlYWQoKSk7CiAg
ICAgQVNTRVJUKG1fbG9jay5pc0hlbGQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1ZGlvL01lZGlhRWxlbWVudEF1ZGlvU291cmNlTm9kZS5oIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdWRpby9NZWRpYUVsZW1lbnRBdWRpb1NvdXJjZU5vZGUuaAppbmRl
eCA3NDM5YTZkYjI4MmZiYjk0ZjQxMWU0NzE1YWRhMTU5OGNiMDRiYzM0Li4wNmZlNTFkOTQ0ZDBi
OGU5YzhkYjYxNDY3ZDFhMTg2YzVkZGY0MTRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1ZGlvL01lZGlhRWxlbWVudEF1ZGlvU291cmNlTm9kZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vTWVkaWFFbGVtZW50QXVkaW9Tb3VyY2VOb2RlLmgK
QEAgLTU0LDcgKzU0LDcgQEAgcHVibGljOgogICAgIC8vIEF1ZGlvU291cmNlUHJvdmlkZXJDbGll
bnQKICAgICB2b2lkIHNldEZvcm1hdChzaXplX3QgbnVtYmVyT2ZDaGFubmVscywgZmxvYXQgc2Ft
cGxlUmF0ZSkgb3ZlcnJpZGU7CiAKLSAgICBMb2NrJiBwcm9jZXNzTG9jaygpIHsgcmV0dXJuIG1f
cHJvY2Vzc0xvY2s7IH0KKyAgICBVbmNoZWNrZWRMb2NrJiBwcm9jZXNzTG9jaygpIHsgcmV0dXJu
IG1fcHJvY2Vzc0xvY2s7IH0KIAogcHJpdmF0ZToKICAgICBNZWRpYUVsZW1lbnRBdWRpb1NvdXJj
ZU5vZGUoQmFzZUF1ZGlvQ29udGV4dCYsIFJlZjxIVE1MTWVkaWFFbGVtZW50PiYmKTsKQEAgLTcw
LDcgKzcwLDcgQEAgcHJpdmF0ZToKICAgICBib29sIHdvdWxkVGFpbnRPcmlnaW4oKTsKIAogICAg
IFJlZjxIVE1MTWVkaWFFbGVtZW50PiBtX21lZGlhRWxlbWVudDsKLSAgICBMb2NrIG1fcHJvY2Vz
c0xvY2s7CisgICAgVW5jaGVja2VkTG9jayBtX3Byb2Nlc3NMb2NrOwogCiAgICAgdW5zaWduZWQg
bV9zb3VyY2VOdW1iZXJPZkNoYW5uZWxzIHsgMCB9OwogICAgIGRvdWJsZSBtX3NvdXJjZVNhbXBs
ZVJhdGUgeyAwIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFi
YXNlL0RhdGFiYXNlVHJhY2tlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFi
YXNlL0RhdGFiYXNlVHJhY2tlci5jcHAKaW5kZXggNDViMjdmOWQzNTE5YzExOTkyNDc2NmVjNGMy
N2U0MDEzNDI5MjA0OS4uYTlmMjgwYjljNTlmNDhiZGIyOGRhNzMwMTUzNzY0M2U5NGRkNjU2MCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRy
YWNrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJh
c2VUcmFja2VyLmNwcApAQCAtMTI4NSw4ICsxMjg1LDggQEAgYm9vbCBEYXRhYmFzZVRyYWNrZXI6
OmRlbGV0ZURhdGFiYXNlRmlsZUlmRW1wdHkoY29uc3QgU3RyaW5nJiBwYXRoKQogICAgIHJldHVy
biBTUUxpdGVGaWxlU3lzdGVtOjpkZWxldGVEYXRhYmFzZUZpbGUocGF0aCk7CiB9CiAKLXN0YXRp
YyBMb2NrIG9wZW5EYXRhYmFzZUxvY2s7Ci1Mb2NrJiBEYXRhYmFzZVRyYWNrZXI6Om9wZW5EYXRh
YmFzZU11dGV4KCkKK3N0YXRpYyBVbmNoZWNrZWRMb2NrIG9wZW5EYXRhYmFzZUxvY2s7CitVbmNo
ZWNrZWRMb2NrJiBEYXRhYmFzZVRyYWNrZXI6Om9wZW5EYXRhYmFzZU11dGV4KCkKIHsKICAgICBy
ZXR1cm4gb3BlbkRhdGFiYXNlTG9jazsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VUcmFja2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlVHJhY2tlci5oCmluZGV4IGRkOWM1ZDg3NzZiZDFkYzM4
OTY2ZTc1ZjU0ZjEzMWFkZDc2NjhiMzQuLmJkY2Y2ZDA3ZGQ4YTMzNjVkYzRhZmViOTQzZmNiOGI1
YWNlOTRmNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2Uv
RGF0YWJhc2VUcmFja2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFz
ZS9EYXRhYmFzZVRyYWNrZXIuaApAQCAtMTA0LDcgKzEwNCw3IEBAIHB1YmxpYzoKICAgICAvLyBN
b2JpbGVTYWZhcmkgd2lsbCBncmFiIHRoaXMgbXV0ZXggb24gdGhlIG1haW4gdGhyZWFkIGJlZm9y
ZSBkaXNwYXRjaGluZyB0aGUgdGFzayB0byAKICAgICAvLyBjbGVhbiB1cCB6ZXJvIGJ5dGUgZGF0
YWJhc2UgZmlsZXMuICBBbnkgb3BlcmF0aW9ucyB0byBvcGVuIG5ldyBkYXRhYmFzZSB3aWxsIGhh
dmUgdG8KICAgICAvLyB3YWl0IGZvciB0aGF0IHRhc2sgdG8gZmluaXNoIGJ5IHdhaXRpbmcgb24g
dGhpcyBtdXRleC4KLSAgICBzdGF0aWMgTG9jayYgb3BlbkRhdGFiYXNlTXV0ZXgoKTsKKyAgICBz
dGF0aWMgVW5jaGVja2VkTG9jayYgb3BlbkRhdGFiYXNlTXV0ZXgoKTsKICAgICAKICAgICBXRUJD
T1JFX0VYUE9SVCBzdGF0aWMgdm9pZCBlbXB0eURhdGFiYXNlRmlsZXNSZW1vdmFsVGFza1dpbGxC
ZVNjaGVkdWxlZCgpOwogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyB2b2lkIGVtcHR5RGF0YWJh
c2VGaWxlc1JlbW92YWxUYXNrRGlkRmluaXNoKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL09yaWdpbkxvY2suY3BwIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJkYXRhYmFzZS9PcmlnaW5Mb2NrLmNwcAppbmRleCBhMjFiY2RiNzgzODZjODEwZWM1
OTk0MWMyNzVmNGVmYmFmZjIzZmIzLi43NTNlNGU1YWM4NjYyODNhNGM3M2Y0NGFmOWFhNGVjZGY1
ZDE1YWVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL09y
aWdpbkxvY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvT3Jp
Z2luTG9jay5jcHAKQEAgLTQzLDcgKzQzLDcgQEAgT3JpZ2luTG9jazo6T3JpZ2luTG9jayhTdHJp
bmcgb3JpZ2luUGF0aCkKIAogT3JpZ2luTG9jazo6fk9yaWdpbkxvY2soKSA9IGRlZmF1bHQ7CiAK
LXZvaWQgT3JpZ2luTG9jazo6bG9jaygpCit2b2lkIE9yaWdpbkxvY2s6OmxvY2soKSBXVEZfSUdO
T1JFU19USFJFQURfU0FGRVRZX0FOQUxZU0lTCiB7CiAgICAgbV9tdXRleC5sb2NrKCk7CiAKQEAg
LTU5LDcgKzU5LDcgQEAgdm9pZCBPcmlnaW5Mb2NrOjpsb2NrKCkKICNlbmRpZgogfQogCi12b2lk
IE9yaWdpbkxvY2s6OnVubG9jaygpCit2b2lkIE9yaWdpbkxvY2s6OnVubG9jaygpIFdURl9JR05P
UkVTX1RIUkVBRF9TQUZFVFlfQU5BTFlTSVMKIHsKICNpZiBVU0UoRklMRV9MT0NLKQogICAgIC8v
IElmIHRoZSBmaWxlIGRlc2NyaXB0b3Igd2FzIHVuaW5pdGlhbGl6ZWQsIHRoZW4gdGhhdCBtZWFu
cyB0aGUgZGlyZWN0b3J5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0RPTUdsb2JhbE9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01HbG9i
YWxPYmplY3QuaAppbmRleCAxNjRjNzIzODY0NmEwMGEzZDA1ZWExYmE0MWM5NzA2MDU1ZDQxNGU0
Li45NTZkNTFhZDQ4MGQ0ZGQyYzBhODkzOGRlYWY0NGRhYWJhYTc1NmRmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9iamVjdC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0LmgKQEAgLTU4LDcgKzU4LDcg
QEAgcHVibGljOgogICAgIHN0YXRpYyB2b2lkIGRlc3Ryb3koSlNDOjpKU0NlbGwqKTsKIAogcHVi
bGljOgotICAgIExvY2smIGdjTG9jaygpIHsgcmV0dXJuIG1fZ2NMb2NrOyB9CisgICAgVW5jaGVj
a2VkTG9jayYgZ2NMb2NrKCkgeyByZXR1cm4gbV9nY0xvY2s7IH0KIAogICAgIEpTRE9NU3RydWN0
dXJlTWFwJiBzdHJ1Y3R1cmVzKGNvbnN0IEFic3RyYWN0TG9ja2VyJikgeyByZXR1cm4gbV9zdHJ1
Y3R1cmVzOyB9CiAgICAgSlNET01Db25zdHJ1Y3Rvck1hcCYgY29uc3RydWN0b3JzKGNvbnN0IEFi
c3RyYWN0TG9ja2VyJikgeyByZXR1cm4gbV9jb25zdHJ1Y3RvcnM7IH0KQEAgLTEyMSw3ICsxMjEs
NyBAQCBwcm90ZWN0ZWQ6CiAKICAgICBSZWY8RE9NV3JhcHBlcldvcmxkPiBtX3dvcmxkOwogICAg
IHVpbnQ4X3QgbV93b3JsZElzTm9ybWFsOwotICAgIExvY2sgbV9nY0xvY2s7CisgICAgVW5jaGVj
a2VkTG9jayBtX2djTG9jazsKICAgICBKU0M6OldyaXRlQmFycmllcjxKU0M6OkpTUHJveHk+IG1f
cHJveHk7CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKaW5kZXggN2VhZTNhMTFhZWNmYjJhYWQ5
OWZmMTkyYjQ1ODdkOTY3NWNmZGZiNy4uYTJlNWNhM2YxMjE2ODM4MDk4MzI0MGZmYmExZTRmZGE3
MDMyNWY0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcApAQCAtMjIxMSw3ICsyMjExLDcgQEAgc3RhdGljIEV2
ZW50VGFyZ2V0RGF0YU1hcCYgZXZlbnRUYXJnZXREYXRhTWFwKCkKICAgICByZXR1cm4gbWFwOwog
fQogCi1zdGF0aWMgTG9jayBzX2V2ZW50VGFyZ2V0RGF0YU1hcExvY2s7CitzdGF0aWMgVW5jaGVj
a2VkTG9jayBzX2V2ZW50VGFyZ2V0RGF0YU1hcExvY2s7CiAKIEV2ZW50VGFyZ2V0RGF0YSogTm9k
ZTo6ZXZlbnRUYXJnZXREYXRhKCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTE1lZGlhRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1l
bnQuY3BwCmluZGV4IDliZDQwMDEwYzM1YWEwZTk3YjZlMWRhZTQ4YjNlMTBkNGQ5NWQ2N2YuLjFi
Y2RjYTFhNzJjODAwMTVjNDQ4MDJmYWFmNDU2YTQ2ZDg0ZTNjNWMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcApAQCAtNjYyNiw3ICs2NjI2LDcgQEAgdm9pZCBIVE1M
TWVkaWFFbGVtZW50OjpjcmVhdGVNZWRpYVBsYXllcigpCiAKICNpZiBFTkFCTEUoV0VCX0FVRElP
KQogICAgIGF1dG8gcHJvdGVjdGVkQXVkaW9Tb3VyY2VOb2RlID0gbWFrZVJlZlB0cihtX2F1ZGlv
U291cmNlTm9kZSk7Ci0gICAgTG9ja2VyPExvY2s+IGF1ZGlvU291cmNlTm9kZUxvY2tlcihtX2F1
ZGlvU291cmNlTm9kZSA/ICZtX2F1ZGlvU291cmNlTm9kZS0+cHJvY2Vzc0xvY2soKSA6IG51bGxw
dHIpOworICAgIExvY2tlciBhdWRpb1NvdXJjZU5vZGVMb2NrZXIobV9hdWRpb1NvdXJjZU5vZGUg
PyAmbV9hdWRpb1NvdXJjZU5vZGUtPnByb2Nlc3NMb2NrKCkgOiBudWxscHRyKTsKICNlbmRpZgog
CiAjaWYgRU5BQkxFKE1FRElBX1NPVVJDRSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL1dlYkdMQ29udGV4dEdyb3VwLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2Fu
dmFzL1dlYkdMQ29udGV4dEdyb3VwLmNwcAppbmRleCBhYmQ4ZjI3MzY4MzkxZTNlMWQ3ZmNmOWQz
N2I5ZDc3OTZhZjMzNjFiLi4xNGMyYTA4OTk3ZDkwMWRhMTQwYTRiMDM3ODQ4ZTc0MTQ0M2Y2NTI1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTENvbnRleHRHcm91
cC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xDb250ZXh0R3JvdXAu
Y3BwCkBAIC01NSw3ICs1NSw3IEBAIEdyYXBoaWNzQ29udGV4dEdMJiBXZWJHTENvbnRleHRHcm91
cDo6Z2V0QUdyYXBoaWNzQ29udGV4dEdMKCkKICAgICByZXR1cm4gKigqbV9jb250ZXh0cy5iZWdp
bigpKS0+Z3JhcGhpY3NDb250ZXh0R0woKTsKIH0KIAotV1RGOjpMb2NrJiBXZWJHTENvbnRleHRH
cm91cDo6b2JqZWN0R3JhcGhMb2NrRm9yQUNvbnRleHQoKQorVW5jaGVja2VkTG9jayYgV2ViR0xD
b250ZXh0R3JvdXA6Om9iamVjdEdyYXBoTG9ja0ZvckFDb250ZXh0KCkKIHsKICAgICBBU1NFUlQo
IW1fY29udGV4dHMuaXNFbXB0eSgpKTsKICAgICAvLyBTaW5jZSB0aGUgV0VCR0xfc2hhcmVkX29i
amVjdHMgZXh0ZW5zaW9uIG5ldmVyIHNoaXBwZWQsIGFuZCBpcwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xDb250ZXh0R3JvdXAuaCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL1dlYkdMQ29udGV4dEdyb3VwLmgKaW5kZXggODU1Y2U3MjM5ODZmZTA3NzU5
OGYyNDY4MWFlODA4NmM4MWVkZmEwMy4uYjZhZmUwYWY5N2ViZGZmYWMxYTFjZDAwNDNmZmJmNzlj
Y2QxNzc4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xDb250
ZXh0R3JvdXAuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTENvbnRleHRH
cm91cC5oCkBAIC00NSw3ICs0NSw3IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgaGFzQUNvbnRleHQo
KSBjb25zdDsKICAgICBHcmFwaGljc0NvbnRleHRHTCYgZ2V0QUdyYXBoaWNzQ29udGV4dEdMKCk7
Ci0gICAgTG9jayYgb2JqZWN0R3JhcGhMb2NrRm9yQUNvbnRleHQoKTsKKyAgICBVbmNoZWNrZWRM
b2NrJiBvYmplY3RHcmFwaExvY2tGb3JBQ29udGV4dCgpOwogCiAgICAgdm9pZCBsb3NlQ29udGV4
dEdyb3VwKFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6Okxvc3RDb250ZXh0TW9kZSk7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMQ29udGV4dE9iamVjdC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTENvbnRleHRPYmplY3QuY3BwCmlu
ZGV4IDdjOTE5ZjJiNjY1NmI2N2IxNmNhNjM0MGIwYjJhNGI2NDVkMDQ2M2IuLjI0MzU0ZDA1Yjgx
YmM4NTIyYmU3N2QzYmI4ZjRjY2U0N2ViMzYzZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL1dlYkdMQ29udGV4dE9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvV2ViR0xDb250ZXh0T2JqZWN0LmNwcApAQCAtNTQsNyArNTQsNyBAQCB2b2lk
IFdlYkdMQ29udGV4dE9iamVjdDo6ZGV0YWNoQ29udGV4dChjb25zdCBBYnN0cmFjdExvY2tlciYg
bG9ja2VyKQogICAgIH0KIH0KIAotV1RGOjpMb2NrJiBXZWJHTENvbnRleHRPYmplY3Q6Om9iamVj
dEdyYXBoTG9ja0ZvckNvbnRleHQoKQorVW5jaGVja2VkTG9jayYgV2ViR0xDb250ZXh0T2JqZWN0
OjpvYmplY3RHcmFwaExvY2tGb3JDb250ZXh0KCkKIHsKICAgICAvLyBTaG91bGQgbm90IGNhbGwg
dGhpcyBpZiB0aGUgb2JqZWN0IG9yIGNvbnRleHQgaGFzIGJlZW4gZGVsZXRlZC4KICAgICBBU1NF
UlQobV9jb250ZXh0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dl
YkdMQ29udGV4dE9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xDb250
ZXh0T2JqZWN0LmgKaW5kZXggZGJmZGQ2YmZjMGVmNDRlYjg4MmViOWM1OWIwMDhkMjk4MTEyNjQ5
NS4uMGVhNzk5ZmZiYjNhOGFhZTAxMTNkOWE1NWNlM2U2M2JiYTJjOGVhZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xDb250ZXh0T2JqZWN0LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xDb250ZXh0T2JqZWN0LmgKQEAgLTQ5LDcgKzQ5
LDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBkZXRhY2hDb250ZXh0KGNvbnN0IFdURjo6QWJzdHJh
Y3RMb2NrZXImKTsKIAotICAgIFdURjo6TG9jayYgb2JqZWN0R3JhcGhMb2NrRm9yQ29udGV4dCgp
IG92ZXJyaWRlOworICAgIFVuY2hlY2tlZExvY2smIG9iamVjdEdyYXBoTG9ja0ZvckNvbnRleHQo
KSBvdmVycmlkZTsKIAogcHJvdGVjdGVkOgogICAgIFdlYkdMQ29udGV4dE9iamVjdChXZWJHTFJl
bmRlcmluZ0NvbnRleHRCYXNlJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2Nh
bnZhcy9XZWJHTE9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xPYmpl
Y3QuaAppbmRleCAwMGNkOGYwYzJiN2IyMWJiZjk3MmFmYTdjZmM1ZWU4NWUzZTA2MGRkLi44YWYy
ZWRhNDAwZTRmOGVjNDViZjdlNDJhMmZhYmFiYmQ4YjBjYmIyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTE9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL1dlYkdMT2JqZWN0LmgKQEAgLTcxLDcgKzcxLDcgQEAgcHVibGljOgogICAgIC8v
IFdFQkdMX3NoYXJlZF9vYmplY3RzIGV4dGVuc2lvbiBzcGVjaWZpY2F0aW9uIG5ldmVyIHNoaXBw
ZWQgKGFuZAogICAgIC8vIGlzIHVubGlrZWx5IHRvKSwgdGhpcyBiYXNpY2FsbHkgcmV0dXJucyB0
aGUgc2FtZSByZXN1bHQgZm9yCiAgICAgLy8gYm90aCBjb250ZXh0IG9iamVjdHMgYW5kIHNoYXJl
ZCBvYmplY3RzLgotICAgIHZpcnR1YWwgV1RGOjpMb2NrJiBvYmplY3RHcmFwaExvY2tGb3JDb250
ZXh0KCkgPSAwOworICAgIHZpcnR1YWwgVW5jaGVja2VkTG9jayYgb2JqZWN0R3JhcGhMb2NrRm9y
Q29udGV4dCgpID0gMDsKIAogcHJvdGVjdGVkOgogICAgIFdlYkdMT2JqZWN0KCkgPSBkZWZhdWx0
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdD
b250ZXh0QmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmlu
Z0NvbnRleHRCYXNlLmNwcAppbmRleCA1MTU1NDg4ZDdlZDFkYTk1MGQ1YWY2NzhkNDZkMjM0MGI4
YmE5Y2VlLi4zOWMzMmU4NDQ5YTZiOGQ0MGZhYmFmMDRmZTkwNmMwYzU0MjBiMGM1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRl
eHRCYXNlLmNwcApAQCAtNzk5MCw3ICs3OTkwLDcgQEAgdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRl
eHRCYXNlOjphZGRNZW1iZXJzVG9PcGFxdWVSb290cyhKU0M6OkFic3RyYWN0U2xvdFZpc2l0b3IK
ICAgICAvLyByb290cyBmb3IgZXh0ZW5zaW9ucy4KIH0KIAotTG9jayYgV2ViR0xSZW5kZXJpbmdD
b250ZXh0QmFzZTo6b2JqZWN0R3JhcGhMb2NrKCkKK1VuY2hlY2tlZExvY2smIFdlYkdMUmVuZGVy
aW5nQ29udGV4dEJhc2U6Om9iamVjdEdyYXBoTG9jaygpCiB7CiAgICAgcmV0dXJuIG1fb2JqZWN0
R3JhcGhMb2NrOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2Vi
R0xSZW5kZXJpbmdDb250ZXh0QmFzZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2Vi
R0xSZW5kZXJpbmdDb250ZXh0QmFzZS5oCmluZGV4IGZhZThhNTM5ZWM4OTE0MzkyOWVhYjQ2ZmNh
MzNjMzEyNmEzYzE2OWYuLmQ3Y2JlZWQzMmNiYzBiNzk3YzEwNjhmZDU5N2QxM2VkOGU0YzE5NzMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29u
dGV4dEJhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmlu
Z0NvbnRleHRCYXNlLmgKQEAgLTQyNiw3ICs0MjYsNyBAQCBwdWJsaWM6CiAgICAgLy8gY3VycmVu
dGx5IGxhdGNoZWQgaW50byB0aGUgY29udGV4dCAtIHdpdGhvdXQgdHJhdmVyc2luZyBhbGwgb2YK
ICAgICAvLyB0aGUgbGF0Y2hlZCBvYmplY3RzIHRvIGZpbmQgdGhlIGN1cnJlbnQgb25lLCB3aGlj
aCB3b3VsZCBiZQogICAgIC8vIHByb2hpYml0aXZlbHkgZXhwZW5zaXZlLgotICAgIExvY2smIG9i
amVjdEdyYXBoTG9jaygpOworICAgIFVuY2hlY2tlZExvY2smIG9iamVjdEdyYXBoTG9jaygpOwog
CiBwcm90ZWN0ZWQ6CiAgICAgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZShDYW52YXNCYXNlJiwg
V2ViR0xDb250ZXh0QXR0cmlidXRlcyk7CkBAIC01NDAsNyArNTQwLDcgQEAgcHJvdGVjdGVkOgog
CiAgICAgUmVmUHRyPEdyYXBoaWNzQ29udGV4dEdMPiBtX2NvbnRleHQ7CiAgICAgUmVmUHRyPFdl
YkdMQ29udGV4dEdyb3VwPiBtX2NvbnRleHRHcm91cDsKLSAgICBMb2NrIG1fb2JqZWN0R3JhcGhM
b2NrOworICAgIFVuY2hlY2tlZExvY2sgbV9vYmplY3RHcmFwaExvY2s7CiAKICAgICBib29sIG1f
cmVzdG9yZUFsbG93ZWQgeyBmYWxzZSB9OwogICAgIFN1c3BlbmRhYmxlVGltZXIgbV9yZXN0b3Jl
VGltZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFNoYXJl
ZE9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFNoYXJlZE9iamVj
dC5jcHAKaW5kZXggOTM2Yzk4MWM5OTI5MGQ4ZTdjZWY5OGIxM2I1NjkzY2JlYjIzNzk4Yy4uMGFi
OGNiMjQxYTFiM2YzODhmZWYzODI5OTc2Y2VjZjZkNDg3ZDM3OCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xTaGFyZWRPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMU2hhcmVkT2JqZWN0LmNwcApAQCAtODIsNyArODIsNyBA
QCBHcmFwaGljc0NvbnRleHRHTCogV2ViR0xTaGFyZWRPYmplY3Q6OmdldEFHcmFwaGljc0NvbnRl
eHRHTCgpIGNvbnN0CiAgICAgcmV0dXJuIG1fY29udGV4dEdyb3VwID8gJm1fY29udGV4dEdyb3Vw
LT5nZXRBR3JhcGhpY3NDb250ZXh0R0woKSA6IG51bGxwdHI7CiB9CiAKLVdURjo6TG9jayYgV2Vi
R0xTaGFyZWRPYmplY3Q6Om9iamVjdEdyYXBoTG9ja0ZvckNvbnRleHQoKQorVW5jaGVja2VkTG9j
ayYgV2ViR0xTaGFyZWRPYmplY3Q6Om9iamVjdEdyYXBoTG9ja0ZvckNvbnRleHQoKQogewogICAg
IC8vIFNob3VsZCBub3QgY2FsbCB0aGlzIGlmIHRoZSBvYmplY3Qgb3IgY29udGV4dCBoYXMgYmVl
biBkZWxldGVkLgogICAgIEFTU0VSVChtX2NvbnRleHRHcm91cCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFNoYXJlZE9iamVjdC5oIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9jYW52YXMvV2ViR0xTaGFyZWRPYmplY3QuaAppbmRleCA1ZDEzYWZhMzg0NmFhMjE1
MzBjMGFiZDUzOTBhYTFlNzk4ZTllMWQwLi5mNTNkYjE5YjA2OTIyOTA2YmRjY2IxNmMzOTM3Mzg2
MTVmMTc2NTc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFNo
YXJlZE9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMU2hhcmVk
T2JqZWN0LmgKQEAgLTU5LDcgKzU5LDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBkZXRhY2hDb250
ZXh0R3JvdXBXaXRob3V0RGVsZXRpbmdPYmplY3QoKTsKIAotICAgIFdURjo6TG9jayYgb2JqZWN0
R3JhcGhMb2NrRm9yQ29udGV4dCgpIG92ZXJyaWRlOworICAgIFVuY2hlY2tlZExvY2smIG9iamVj
dEdyYXBoTG9ja0ZvckNvbnRleHQoKSBvdmVycmlkZTsKIAogcHJvdGVjdGVkOgogICAgIFdlYkdM
U2hhcmVkT2JqZWN0KFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlTWFjLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZU1hYy5oCmluZGV4IGI0
MmJmNDExNDU0ZmEwMzRhN2RhYTg2YzMxNTNhYTFkNjZhOTgzY2UuLjg4ZGFkMWVkZDFiOTA1MjBk
MWYwY2I2Yjc3MDZmZWQwMjI0MDY3YWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
c2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlTWFjLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVNYWMuaApAQCAtNTUsOCArNTUsOCBAQCBwcml2
YXRlOgogICAgIHZvaWQgZGVmZXJXaGVlbEV2ZW50VGVzdENvbXBsZXRpb25Gb3JSZWFzb24oV2hl
ZWxFdmVudFRlc3RNb25pdG9yOjpTY3JvbGxhYmxlQXJlYUlkZW50aWZpZXIsIFdoZWVsRXZlbnRU
ZXN0TW9uaXRvcjo6RGVmZXJSZWFzb24pIGZpbmFsOwogICAgIHZvaWQgcmVtb3ZlV2hlZWxFdmVu
dFRlc3RDb21wbGV0aW9uRGVmZXJyYWxGb3JSZWFzb24oV2hlZWxFdmVudFRlc3RNb25pdG9yOjpT
Y3JvbGxhYmxlQXJlYUlkZW50aWZpZXIsIFdoZWVsRXZlbnRUZXN0TW9uaXRvcjo6RGVmZXJSZWFz
b24pIGZpbmFsOwogCi0gICAgdm9pZCBsb2NrTGF5ZXJzRm9ySGl0VGVzdGluZygpIGZpbmFsOwot
ICAgIHZvaWQgdW5sb2NrTGF5ZXJzRm9ySGl0VGVzdGluZygpIGZpbmFsOworICAgIHZvaWQgbG9j
a0xheWVyc0ZvckhpdFRlc3RpbmcoKSBmaW5hbCBXVEZfQUNRVUlSRVNfTE9DSyhtX2xheWVySGl0
VGVzdE11dGV4KTsKKyAgICB2b2lkIHVubG9ja0xheWVyc0ZvckhpdFRlc3RpbmcoKSBmaW5hbCBX
VEZfUkVMRUFTRVNfTE9DSyhtX2xheWVySGl0VGVzdE11dGV4KTsKIAogICAgIC8vIFRoaXMgbG9j
ayBwcm90ZWN0cyB0aGUgQ0FMYXllci9QbGF0Zm9ybUNBTGF5ZXIgdHJlZS4KICAgICBtdXRhYmxl
IExvY2sgbV9sYXllckhpdFRlc3RNdXRleDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2F1ZGlvL1JldmVyYkNvbnZvbHZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9hdWRpby9SZXZlcmJDb252b2x2ZXIuY3BwCmluZGV4IGMyNWNhZjBkOWJjNDY5NWM0ODBkZGNj
OTg0ZmY5MTdlZjUyM2MwZjYuLjYzNWE4Zjc3YjMxNDIwZGMwNWVmZjQ1ZjVmNTg1ODg4ZmJhYmZj
OTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1JldmVyYkNvbnZv
bHZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vUmV2ZXJiQ29udm9s
dmVyLmNwcApAQCAtMTQ4LDkgKzE0OCw5IEBAIHZvaWQgUmV2ZXJiQ29udm9sdmVyOjpiYWNrZ3Jv
dW5kVGhyZWFkRW50cnkoKQogICAgICAgICAvLyBXYWl0IGZvciByZWFsdGltZSB0aHJlYWQgdG8g
Z2l2ZSB1cyBtb3JlIGlucHV0CiAgICAgICAgIG1fbW9yZUlucHV0QnVmZmVyZWQgPSBmYWxzZTsg
ICAgICAgIAogICAgICAgICB7Ci0gICAgICAgICAgICBzdGQ6OnVuaXF1ZV9sb2NrPExvY2s+IGxv
Y2sobV9iYWNrZ3JvdW5kVGhyZWFkTG9jayk7CisgICAgICAgICAgICBMb2NrZXIgbG9ja2VyIHsg
bV9iYWNrZ3JvdW5kVGhyZWFkTG9jayB9OwogCi0gICAgICAgICAgICBtX2JhY2tncm91bmRUaHJl
YWRDb25kaXRpb25WYXJpYWJsZS53YWl0KGxvY2ssIFt0aGlzXSB7IHJldHVybiBtX21vcmVJbnB1
dEJ1ZmZlcmVkIHx8IG1fd2FudHNUb0V4aXQ7IH0pOworICAgICAgICAgICAgbV9iYWNrZ3JvdW5k
VGhyZWFkQ29uZGl0aW9uVmFyaWFibGUud2FpdChtX2JhY2tncm91bmRUaHJlYWRMb2NrLCBbdGhp
c10geyByZXR1cm4gbV9tb3JlSW5wdXRCdWZmZXJlZCB8fCBtX3dhbnRzVG9FeGl0OyB9KTsKICAg
ICAgICAgfQogCiAgICAgICAgIC8vIFByb2Nlc3MgYWxsIG9mIHRoZSBzdGFnZXMgdW50aWwgdGhl
aXIgcmVhZCBpbmRpY2VzIHJlYWNoIHRoZSBpbnB1dCBidWZmZXIncyB3cml0ZSBpbmRleApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvU2hhZG93Qmx1ci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9TaGFkb3dCbHVyLmNwcAppbmRleCBh
M2IwNTVkMzgzNTYyZmY0YTA2NzhhMjg1Y2JiYmE3MzRiODZmNjkzLi4xZGY4MjA0MGRmMTE1ZWNh
YzU5NmMyMzFjZjJmZDFlYjdiOGExMjA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9TaGFkb3dCbHVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9TaGFkb3dCbHVyLmNwcApAQCAtMTIyLDcgKzEyMiw3IEBAIHB1YmxpYzoKICAg
ICB9CiAKICAgICBzdGF0aWMgU2NyYXRjaEJ1ZmZlciYgc2luZ2xldG9uKCk7Ci0gICAgc3RhdGlj
IExvY2smIGxvY2soKTsKKyAgICBzdGF0aWMgVW5jaGVja2VkTG9jayYgbG9jaygpOwogCiBwcml2
YXRlOgogICAgIHZvaWQgc2NoZWR1bGVTY3JhdGNoQnVmZmVyUHVyZ2UoKQpAQCAtMTY4LDkgKzE2
OCw5IEBAIFNjcmF0Y2hCdWZmZXImIFNjcmF0Y2hCdWZmZXI6OnNpbmdsZXRvbigpCiAgICAgcmV0
dXJuIHNjcmF0Y2hCdWZmZXI7CiB9CiAKLUxvY2smIFNjcmF0Y2hCdWZmZXI6OmxvY2soKQorVW5j
aGVja2VkTG9jayYgU2NyYXRjaEJ1ZmZlcjo6bG9jaygpCiB7Ci0gICAgc3RhdGljIExvY2sgbG9j
azsKKyAgICBzdGF0aWMgVW5jaGVja2VkTG9jayBsb2NrOwogICAgIHJldHVybiBsb2NrOwogfQog
CkBAIC02OTYsNyArNjk2LDcgQEAgdm9pZCBTaGFkb3dCbHVyOjpkcmF3UmVjdFNoYWRvd1dpdGhU
aWxpbmcoY29uc3QgQWZmaW5lVHJhbnNmb3JtJiB0cmFuc2Zvcm0sIGNvbnMKIHsKICAgICBSZWZQ
dHI8SW1hZ2VCdWZmZXI+IGxheWVySW1hZ2VCdWZmZXI7CiAjaWYgVVNFKENHKQotICAgIGF1dG8g
bG9ja2VyID0gTG9ja2VyPExvY2s+Ojp0cnlMb2NrKFNjcmF0Y2hCdWZmZXI6OmxvY2soKSk7Cisg
ICAgYXV0byBsb2NrZXIgPSBMb2NrZXI8VW5jaGVja2VkTG9jaz46OnRyeUxvY2soU2NyYXRjaEJ1
ZmZlcjo6bG9jaygpKTsKICAgICBpZiAobG9ja2VyKSB7CiAgICAgICAgIGxheWVySW1hZ2VCdWZm
ZXIgPSBTY3JhdGNoQnVmZmVyOjpzaW5nbGV0b24oKS5nZXRTY3JhdGNoQnVmZmVyKHRlbXBsYXRl
U2l6ZSk7CiAgICAgICAgIGlmICghbGF5ZXJJbWFnZUJ1ZmZlcikKQEAgLTc1Niw3ICs3NTYsNyBA
QCB2b2lkIFNoYWRvd0JsdXI6OmRyYXdJbnNldFNoYWRvd1dpdGhUaWxpbmcoY29uc3QgQWZmaW5l
VHJhbnNmb3JtJiB0cmFuc2Zvcm0sIGNvbgogewogICAgIFJlZlB0cjxJbWFnZUJ1ZmZlcj4gbGF5
ZXJJbWFnZUJ1ZmZlcjsKICNpZiBVU0UoQ0cpCi0gICAgYXV0byBsb2NrZXIgPSBMb2NrZXI8TG9j
az46OnRyeUxvY2soU2NyYXRjaEJ1ZmZlcjo6bG9jaygpKTsKKyAgICBhdXRvIGxvY2tlciA9IExv
Y2tlcjxVbmNoZWNrZWRMb2NrPjo6dHJ5TG9jayhTY3JhdGNoQnVmZmVyOjpsb2NrKCkpOwogICAg
IGlmIChsb2NrZXIpIHsKICAgICAgICAgbGF5ZXJJbWFnZUJ1ZmZlciA9IFNjcmF0Y2hCdWZmZXI6
OnNpbmdsZXRvbigpLmdldFNjcmF0Y2hCdWZmZXIodGVtcGxhdGVTaXplKTsKICAgICAgICAgaWYg
KCFsYXllckltYWdlQnVmZmVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL1ZpZGVvU2lua0dTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVmlkZW9TaW5rR1N0cmVhbWVyLmNwcAppbmRl
eCAxMWJlYTEyYjY2ZGM1NDYyNWE4MjlmOTA3NGE5MmMwMzc0Y2UyODk1Li41N2E3MmFjNTgwY2Vj
ZjE2YTBlM2FiODBmY2YzOWUzOTVmZDA4OGFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVmlkZW9TaW5rR1N0cmVhbWVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVmlkZW9TaW5rR1N0cmVh
bWVyLmNwcApAQCAtMTA3LDcgKzEwNyw3IEBAIHB1YmxpYzoKICAgICB9CiAKIHByaXZhdGU6Ci0g
ICAgTG9jayBtX3NhbXBsZU11dGV4OworICAgIFVuY2hlY2tlZExvY2sgbV9zYW1wbGVNdXRleDsK
ICAgICBHUmVmUHRyPEdzdFNhbXBsZT4gbV9zYW1wbGU7CiAKICAgICAvLyBJZiB0aGlzIGlzIHRy
dWUgYWxsIHByb2Nlc3Npbmcgc2hvdWxkIGZpbmlzaCBBU0FQCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvV2ViS2l0V2ViU291cmNlR1N0cmVh
bWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9XZWJL
aXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwCmluZGV4IGQ0NzZlNDE3NzFlMjlhMTBmODdhMDJkMDYz
ZDI5ZDVjYmE2NDVhMDEuLjVjN2M5ODA2ZDM0Y2I4YzEzODU5YzkxYTljOWNiMmFkOTkxNjc3NmYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9X
ZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dzdHJlYW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwCkBAIC0xNDAs
NyArMTQwLDcgQEAgc3RydWN0IFdlYktpdFdlYlNyY1ByaXZhdGUgewogCiAgICAgICAgIC8vIFBy
b3BlcnRpZXMgdXNlZCBmb3IgR1N0cmVhbWVyIGRhdGEtZmxvdyBpbiBjcmVhdGUoKS4KICAgICAg
ICAgYm9vbCBpc0ZsdXNoaW5nIHsgZmFsc2UgfTsKLSAgICAgICAgQ29uZGl0aW9uIHJlc3BvbnNl
Q29uZGl0aW9uOyAvLyBNdXN0IGJlIHNpZ25hbGVkIGFmdGVyIGFueSB1cGRhdGVzIG9uIEhUVFAg
cmVxdWVzdHMsIGFuZCB3aGVuIGZsdXNoaW5nLgorICAgICAgICBVbmNoZWNrZWRDb25kaXRpb24g
cmVzcG9uc2VDb25kaXRpb247IC8vIE11c3QgYmUgc2lnbmFsZWQgYWZ0ZXIgYW55IHVwZGF0ZXMg
b24gSFRUUCByZXF1ZXN0cywgYW5kIHdoZW4gZmx1c2hpbmcuCiAgICAgICAgIEdSZWZQdHI8R3N0
QWRhcHRlcj4gYWRhcHRlcjsKICAgICAgICAgYm9vbCBpc0R1cmF0aW9uU2V0OwogICAgICAgICB1
aW50NjRfdCByZWFkUG9zaXRpb247CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9nc3RyZWFtZXIvZW1lL1dlYktpdENvbW1vbkVuY3J5cHRpb25EZWNyeXB0b3JH
U3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L2VtZS9XZWJLaXRDb21tb25FbmNyeXB0aW9uRGVjcnlwdG9yR1N0cmVhbWVyLmNwcAppbmRleCAz
MjAxNzRkNWJmZTg3NmRiOGMxNDIzNTlhOGUxYTAxYWE4NmMwZmRiLi5lYjA4ODUxY2M4NjIxMmI0
NmJiODI4YzdiMzc4M2RiMzE1NjRhN2VkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvZW1lL1dlYktpdENvbW1vbkVuY3J5cHRpb25EZWNyeXB0
b3JHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dz
dHJlYW1lci9lbWUvV2ViS2l0Q29tbW9uRW5jcnlwdGlvbkRlY3J5cHRvckdTdHJlYW1lci5jcHAK
QEAgLTU2LDggKzU2LDggQEAgc3RydWN0IF9XZWJLaXRNZWRpYUNvbW1vbkVuY3J5cHRpb25EZWNy
eXB0UHJpdmF0ZSB7CiAgICAgUmVmUHRyPENETVByb3h5PiBjZG1Qcm94eTsKIAogICAgIC8vIFBy
b3RlY3QgdGhlIGFjY2VzcyB0byB0aGUgc3RydWN0dXJlIG1lbWJlcnMuCi0gICAgTG9jayBtdXRl
eDsKLSAgICBDb25kaXRpb24gY29uZGl0aW9uOworICAgIFVuY2hlY2tlZExvY2sgbXV0ZXg7Cisg
ICAgVW5jaGVja2VkQ29uZGl0aW9uIGNvbmRpdGlvbjsKIAogICAgIGJvb2wgaXNGbHVzaGluZyB7
IGZhbHNlIH07CiAgICAgc3RkOjp1bmlxdWVfcHRyPENETVByb3h5RGVjcnlwdGlvbkNsaWVudElt
cGxlbWVudGF0aW9uPiBjZG1Qcm94eURlY3J5cHRpb25DbGllbnRJbXBsZW1lbnRhdGlvbjsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2Uv
V2ViS2l0TWVkaWFTb3VyY2VHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9XZWJLaXRNZWRpYVNvdXJjZUdTdHJlYW1lci5jcHAKaW5k
ZXggNmQwM2RmOTZhZDQzNzkwZDVhZjNkMmI3MmQ3NzAwZDE2ZmYyYTRmYS4uYWE3Y2VlYjczOThh
ZTExOWRkZWFmMDUxNzZkZTJlOGYxYzRjNjI3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9XZWJLaXRNZWRpYVNvdXJjZUdTdHJlYW1l
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21z
ZS9XZWJLaXRNZWRpYVNvdXJjZUdTdHJlYW1lci5jcHAKQEAgLTE4NCw4ICsxODQsOCBAQCBzdHJ1
Y3QgU3RyZWFtIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPFN0cmVhbT4gewogICAgICAg
ICBHc3RTZWdtZW50IHNlZ21lbnQ7CiAgICAgICAgIEdSZWZQdHI8R3N0Q2Fwcz4gcGVuZGluZ0lu
aXRpYWxDYXBzOwogICAgICAgICBHUmVmUHRyPEdzdENhcHM+IHByZXZpb3VzQ2FwczsgLy8gQ2Fw
cyBmcm9tIGVucXVldWVkIHNhbXBsZXMgYXJlIGNvbXBhcmVkIHRvIHRoZXNlIHRvIHB1c2ggQ0FQ
UyBldmVudHMgYXMgbmVlZGVkLgotICAgICAgICBDb25kaXRpb24gcGFkTGlua2VkT3JGbHVzaGVk
Q29uZGl0aW9uOwotICAgICAgICBDb25kaXRpb24gcXVldWVDaGFuZ2VkT3JGbHVzaGVkQ29uZGl0
aW9uOworICAgICAgICBVbmNoZWNrZWRDb25kaXRpb24gcGFkTGlua2VkT3JGbHVzaGVkQ29uZGl0
aW9uOworICAgICAgICBVbmNoZWNrZWRDb25kaXRpb24gcXVldWVDaGFuZ2VkT3JGbHVzaGVkQ29u
ZGl0aW9uOwogICAgICAgICBib29sIGlzRmx1c2hpbmcgeyBmYWxzZSB9OwogCiAgICAgICAgIC8v
IEZsdXNoZXMgYmVmb3JlIGFueSBidWZmZXIgaGFzIGJlZW4gcG9wcGVkIGZyb20gdGhlIHF1ZXVl
IGFuZCBzZW50IGRvd25zdHJlYW0gY2FuIGJlIGF2b2lkZWQganVzdApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL3dhay9XZWJDb3JlVGhyZWFkUnVuLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy93YWsvV2ViQ29yZVRocmVhZFJ1bi5jcHAKaW5kZXggOGY4
MWQ3YzFhY2E0Njk1NTUxZmM0NDBiNDdlOTA2MWQ0YjM1ZGYyZC4uNzIwNDFlOWUxZmU5ZmU5ZDU2
YWUyNzdiNzBmOGRlOGJmNmEzYmY3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vaW9zL3dhay9XZWJDb3JlVGhyZWFkUnVuLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9pb3Mvd2FrL1dlYkNvcmVUaHJlYWRSdW4uY3BwCkBAIC00NSw5ICs0NSw5IEBAIHB1Ymxp
YzoKIAogICAgIHZvaWQgd2FpdEZvckNvbXBsZXRpb24oKQogICAgIHsKLSAgICAgICAgc3RkOjp1
bmlxdWVfbG9jazxMb2NrPiBsb2NrKG1fc3RhdGVNdXRleCk7CisgICAgICAgIExvY2tlciBsb2Nr
IHsgbV9zdGF0ZU11dGV4IH07CiAKLSAgICAgICAgbV9jb21wbGV0aW9uQ29uZGl0aW9uVmFyaWFi
bGUud2FpdChsb2NrLCBbdGhpc10geyByZXR1cm4gbV9jb21wbGV0ZWQ7IH0pOworICAgICAgICBt
X2NvbXBsZXRpb25Db25kaXRpb25WYXJpYWJsZS53YWl0KG1fc3RhdGVNdXRleCwgW3RoaXNdIHsg
cmV0dXJuIG1fY29tcGxldGVkOyB9KTsKICAgICB9CiAKICAgICB2b2lkIHNldENvbXBsZXRlZCgp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3Jh
cGhpY3NDb250ZXh0R0wuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1Jl
bW90ZUdyYXBoaWNzQ29udGV4dEdMLmNwcAppbmRleCA2ZDFkMWRhZTk3YTliNWU3NmM3YTQxYTU5
MDgzYzllMGE4ODM0YjZmLi4xNTUzZGVmMDI1ZmZmOTBmMTM3NWY1MTBkNTBjYTQ1ZDJjNTEzNTRl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3Jh
cGhpY3NDb250ZXh0R0wuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGlj
cy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTC5jcHAKQEAgLTIxMiw3ICsyMTIsNyBAQCB2b2lkIFJl
bW90ZUdyYXBoaWNzQ29udGV4dEdMOjpwYWludFBpeGVsQnVmZmVyVG9JbWFnZUJ1ZmZlcihPcHRp
b25hbDxXZWJDb3JlOjpQaQogICAgIGFzc2VydElzQ3VycmVudChtX3N0cmVhbVRocmVhZCk7CiAg
ICAgLy8gRklYTUU6IFdlIGRvIG5vdCBoYXZlIGZ1bmN0aW9uaW5nIHJlYWQvd3JpdGUgZmVuY2Vz
IGluIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQuIFRodXMgdGhpcyBpcyBzeW5jaHJvbm91cywKICAg
ICAvLyBhcyBhcmUgdGhlIG1lc3NhZ2VzIHRoYXQgY2FsbCB0aGVzZS4KLSAgICBMb2NrIG11dGV4
OworICAgIExvY2sgbG9jazsKICAgICBDb25kaXRpb24gY29uZGl0aW9uVmFyaWFibGU7CiAgICAg
Ym9vbCBpc0ZpbmlzaGVkID0gZmFsc2U7CiAgICAgbV9yZW5kZXJpbmdCYWNrZW5kLT5kaXNwYXRj
aChbJiwgY29udGV4dEF0dHJpYnV0ZXMgPSBtX2NvbnRleHQtPmNvbnRleHRBdHRyaWJ1dGVzKCld
KCkgbXV0YWJsZSB7CkBAIC0yMjYsMTEgKzIyNiwxMSBAQCB2b2lkIFJlbW90ZUdyYXBoaWNzQ29u
dGV4dEdMOjpwYWludFBpeGVsQnVmZmVyVG9JbWFnZUJ1ZmZlcihPcHRpb25hbDxXZWJDb3JlOjpQ
aQogICAgICAgICAgICAgLy8gVW5mb3J0dW5hdGVseSAiZmx1c2giIGltcGxlbWVudGF0aW9uIGlu
IFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQgb3ZlcmxvYWRzIG9yZGVyaW5nIGFuZCBlZmZlY3RzLgog
ICAgICAgICAgICAgaW1hZ2VCdWZmZXItPmZsdXNoQ29udGV4dCgpOwogICAgICAgICB9Ci0gICAg
ICAgIExvY2tlciBsb2NrZXIgeyBtdXRleCB9OworICAgICAgICBMb2NrZXIgbG9ja2VyIHsgbG9j
ayB9OwogICAgICAgICBpc0ZpbmlzaGVkID0gdHJ1ZTsKICAgICAgICAgY29uZGl0aW9uVmFyaWFi
bGUubm90aWZ5T25lKCk7CiAgICAgfSk7Ci0gICAgc3RkOjp1bmlxdWVfbG9jazxMb2NrPiBsb2Nr
KG11dGV4KTsKKyAgICBMb2NrZXIgbG9ja2VyIHsgbG9jayB9OwogICAgIGNvbmRpdGlvblZhcmlh
YmxlLndhaXQobG9jaywgWyZdIHsKICAgICAgICAgcmV0dXJuIGlzRmluaXNoZWQ7CiAgICAgfSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0luZGV4ZWREQi9XZWJJ
REJTZXJ2ZXIuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9JbmRleGVkREIvV2Vi
SURCU2VydmVyLmNwcAppbmRleCA5MWI4ODk0MWE3NmE4MDcxZDMwZDdmZWQ3NDE2M2ZiMDlmN2I4
NzIxLi41NDdkYWE4ZDRlMDAxNDA2ZmMyMDFhYmFkNmNmNDc3MGM5MWE1NTc5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0luZGV4ZWREQi9XZWJJREJTZXJ2ZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvSW5kZXhlZERCL1dlYklEQlNlcnZl
ci5jcHAKQEAgLTExOSw3ICsxMTksNyBAQCB2b2lkIFdlYklEQlNlcnZlcjo6cmVuYW1lT3JpZ2lu
KGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgb2xkT3JpZ2luLCBjbwogICAgIH0p
OwogfQogCi12b2lkIFdlYklEQlNlcnZlcjo6c3VzcGVuZCgpCit2b2lkIFdlYklEQlNlcnZlcjo6
c3VzcGVuZCgpIFdURl9JR05PUkVTX1RIUkVBRF9TQUZFVFlfQU5BTFlTSVMKIHsKICAgICBBU1NF
UlQoUnVuTG9vcDo6aXNNYWluKCkpOwogCkBAIC0xMzIsNyArMTMyLDcgQEAgdm9pZCBXZWJJREJT
ZXJ2ZXI6OnN1c3BlbmQoKQogICAgICAgICBtX3NlcnZlci0+c3RvcERhdGFiYXNlQWN0aXZpdGll
c09uTWFpblRocmVhZCgpOwogfQogCi12b2lkIFdlYklEQlNlcnZlcjo6cmVzdW1lKCkKK3ZvaWQg
V2ViSURCU2VydmVyOjpyZXN1bWUoKSBXVEZfSUdOT1JFU19USFJFQURfU0FGRVRZX0FOQUxZU0lT
CiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvSWNvbkRhdGFiYXNlLmggYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvZ2xpYi9JY29uRGF0YWJhc2UuaAppbmRleCBiZWIyZmI4MDZlYzU1YzY2
MzRjZDVlNWEwMGQ1MDc4MzYxNWZlZjRiLi44MGUxNzhlNjFmNTBmYWZkZjNlYWQ0ZDI5OGExODgw
MWFlMDNjNzE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9J
Y29uRGF0YWJhc2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9JY29u
RGF0YWJhc2UuaApAQCAtNzIsNyArNzIsNyBAQCBwcml2YXRlOgogICAgIEhhc2hNYXA8U3RyaW5n
LCBTdHJpbmc+IG1fcGFnZVVSTFRvSWNvblVSTE1hcDsKICAgICBMb2NrIG1fcGFnZVVSTFRvSWNv
blVSTE1hcExvY2s7CiAgICAgSGFzaE1hcDxTdHJpbmcsIHN0ZDo6cGFpcjxXZWJDb3JlOjpQbGF0
Zm9ybUltYWdlUHRyLCBNb25vdG9uaWNUaW1lPj4gbV9sb2FkZWRJY29uczsKLSAgICBMb2NrIG1f
bG9hZGVkSWNvbnNMb2NrOworICAgIFVuY2hlY2tlZExvY2sgbV9sb2FkZWRJY29uc0xvY2s7CiAK
ICAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6U1FMaXRlU3RhdGVtZW50PiBtX2ljb25JREZv
ckljb25VUkxTdGF0ZW1lbnQ7CiAgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlNRTGl0ZVN0
YXRlbWVudD4gbV9zZXRJY29uSURGb3JQYWdlVVJMU3RhdGVtZW50OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLUHJpbnRpbmdWaWV3Lm1tIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvbWFjL1dLUHJpbnRpbmdWaWV3Lm1tCmluZGV4IDliNzRmM2VjNTBkMDIwMTY2
NGM3MzEyOTg5YzdmNjhjMjlhMDQ1NGMuLmYxOGJhOGYwMWIyNmRlM2ZkM2NkZmIwMjgxMjg1Y2Yw
ZDRhNjY2OWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS1ByaW50
aW5nVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tQcmludGluZ1Zp
ZXcubW0KQEAgLTQxNCwxMyArNDE0LDEzIEBAIC0gKEJPT0wpa25vd3NQYWdlUmFuZ2U6KE5TUmFu
Z2VQb2ludGVyKXJhbmdlCiAgICAgICAgICpyYW5nZSA9IE5TTWFrZVJhbmdlKDEsIF9wcmludGlu
Z1BhZ2VSZWN0cy5zaXplKCkpOwogICAgIGVsc2UgaWYgKCFSdW5Mb29wOjppc01haW4oKSkgewog
ICAgICAgICBBU1NFUlQoIVtzZWxmIF9pc1ByaW50aW5nUHJldmlld10pOwotICAgICAgICBzdGQ6
OnVuaXF1ZV9sb2NrPExvY2s+IGxvY2soX3ByaW50aW5nQ2FsbGJhY2tNdXRleCk7CisgICAgICAg
IExvY2tlciBsb2NrIHsgX3ByaW50aW5nQ2FsbGJhY2tNdXRleCB9OwogCiAgICAgICAgIFJ1bkxv
b3A6Om1haW4oKS5kaXNwYXRjaChbc2VsZl0gewogICAgICAgICAgICAgcHJlcGFyZURhdGFGb3JQ
cmludGluZ09uU2Vjb25kYXJ5VGhyZWFkKHNlbGYpOwogICAgICAgICB9KTsKIAotICAgICAgICBf
cHJpbnRpbmdDYWxsYmFja0NvbmRpdGlvbi53YWl0KGxvY2spOworICAgICAgICBfcHJpbnRpbmdD
YWxsYmFja0NvbmRpdGlvbi53YWl0KF9wcmludGluZ0NhbGxiYWNrTXV0ZXgpOwogICAgICAgICAq
cmFuZ2UgPSBOU01ha2VSYW5nZSgxLCBfcHJpbnRpbmdQYWdlUmVjdHMuc2l6ZSgpKTsKICAgICB9
IGVsc2UgewogICAgICAgICBBU1NFUlQoW3NlbGYgX2lzUHJpbnRpbmdQcmV2aWV3XSk7CmRpZmYg
LS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZWFiMDgzZjFl
MDdkNDVlODhhZGIxNDAxZGJiNGMyMTViNTM3ODU0YS4uODYzOTEwZmU0ZmFmZWEzMzIzNWE0NjJm
MzBkNGRjZDhkZGFiMjgzOCAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDIxLTA1LTIzICBDaHJpcyBEdW1leiAgPGNk
dW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgTWFrZSBDaGVja2VkTG9jayB0aGUgZGVmYXVsdCBM
b2NrCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjYx
NTcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNYWtl
IENoZWNrZWRMb2NrIHRoZSBkZWZhdWx0IExvY2sgc28gdGhhdCB3ZSBnZXQgbW9yZSBiZW5lZml0
cyBmcm9tIENsYW5nCisgICAgICAgIFRocmVhZCBTYWZldHkgQW5hbHlzaXMuIE5vdGUgdGhhdCBD
aGVja2VkTG9jayAxMDAlIHJlbGllcyBvbiB0aGUgZXhpc3RpbmcKKyAgICAgICAgTG9jayBpbXBs
ZW1lbnRhdGlvbiBhbmQgbWVyZWx5IGFkZHMgdGhlIGNsYW5nIGFub3RhdGlvbnMgZm9yIHRocmVh
ZCAKKyAgICAgICAgc2FmZXR5LgorCisgICAgICAgIFRoYXQgdGhpcyBwYXRjaCBkb2VzIGlzOgor
ICAgICAgICAxLiBSZW5hbWUgdGhlIExvY2sgY2xhc3MgdG8gVW5jaGVja2VkTG9jaworICAgICAg
ICAyLiBSZW5hbWUgdGhlIENoZWNrZWRMb2NrIGNsYXNzIHRvIExvY2sKKyAgICAgICAgMy4gUmVu
YW1lIHRoZSBDb25kaXRpb24gY2xhc3MgdG8gVW5jaGVja2VkQ29uZGl0aW9uCisgICAgICAgIDQu
IFJlbmFtZSB0aGUgQ2hlY2tlZENvbmRpdGlvbiBjbGFzcyB0byBDb25kaXRpb24KKyAgICAgICAg
NS4gVXBkYXRlIHRoZSB0eXBlcyBvZiBjZXJ0YWluIHZhcmlhYmxlcyBmcm9tIExvY2sgLyBDb25k
aXRpb24gdG8KKyAgICAgICAgICAgVW5jaGVja2VkTG9jayAvIFVuY2hlY2tlZENvbmRpdGlvbiBp
ZiBJIGdvdCBhIGJ1aWxkIGZhaWx1cmUuIEJ1aWxkIAorICAgICAgICAgICBmYWlsdXJlcyBhcmUg
dXN1YWxseSBjYXVzZWQgYnkgdGhlIGZvbGxvd2luZyBmYWN0czoKKyAgICAgICAgICAgLSBMb2Nr
ZXI8Q2hlY2tlZExvY2s+IGRvZXNuJ3Qgc3ViY2xhc3MgQWJzdHJhY3RMb2NrZXIgd2hpY2ggYSBs
b3Qgb2YKKyAgICAgICAgICAgICBKU0MgY29kZSBwYXNzZXMgYXMgYXJndW1lbnQKKyAgICAgICAg
ICAgLSBMb2NrZXI8Q2hlY2tlZExvY2s+IGhhcyBubyBtb3ZlIGNvbnN0cnVjdG9yCisgICAgICAg
ICAgIC0gTG9ja2VyPENoZWNrZWRMb2NrPiBjYW5ub3QgYmUgY29uc3RydWN0ZWQgZnJvbSBhIGxv
Y2sgcG9pbnRlciwgb25seQorICAgICAgICAgICAgIGEgcmVmZXJlbmNlCisKKyAgICAgICAgRm9y
IG5vdywgQ2hlY2tlZExvY2sgYW5kIENoZWNrZWRDb25kaXRpb24gcmVtYWluIGFzIGFsaWFzZXMg
dG8gTG9jayBhbmQgCisgICAgICAgIENvbmRpdGlvbiwgaW4gdGhlaXIgcmVzcGVjdGl2ZSBDaGVj
a2VkTG9jay5oIC8gQ2hlY2tlZENvbmRpdGlvbi5oIGhlYWRlcnMuCisgICAgICAgIEkgd2lsbCBk
cm9wIHRoZW0gaW4gYSBmb2xsb3ctdXAgdG8gcmVkdWNlIHBhdGNoIHNpemUuCisKKyAgICAgICAg
SSB3aWxsIGFsc28gZm9sbG93LXVwIHRvIHRyeSBhbmQgZ2V0IHJpZCBvZiBhcyBtdWNoIHVzYWdl
IG9mIFVuY2hlY2tlZExvY2sKKyAgICAgICAgYW5kIFVuY2hlY2tlZENvbmRpdGlvbiBhcyBwb3Nz
aWJsZS4gSSBkaWQgbm90IHRyeSB2ZXJ5IGhhcmQgaW4gdGhpcyBwYXRjaAorICAgICAgICB0byBy
ZWR1Y2UgcGF0Y2ggc2l6ZS4gCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9D
aGVja2VkQ29uZGl0aW9uVGVzdC5jcHA6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9X
VEYvQ29uZGl0aW9uLmNwcDoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9NZXRh
QWxsb2NhdG9yLmNwcDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxl
L0FjY2Vzc2liaWxpdHlDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdUUjo6QVhUaHJlYWQ6OmNy
ZWF0ZVRocmVhZElmTmVlZGVkKToKKwogMjAyMS0wNS0yMiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpA
YXBwbGUuY29tPgogCiAgICAgICAgIFJlcGxhY2UgTG9ja0hvbGRlciB3aXRoIExvY2tlciBpbiBs
b2NhbCB2YXJpYWJsZXMKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RG
L0NoZWNrZWRDb25kaXRpb25UZXN0LmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RG
L0NoZWNrZWRDb25kaXRpb25UZXN0LmNwcAppbmRleCA5MjhhYTE5MDNjZGUzNmVhMzJkYzEwMWYy
NmJmM2NjOTkyNjliODkzLi5hZDQyNTVlMmFjMWEyZWY5YTBjMWNhM2NmNTZjNzM4MDc2NjMwNTA4
IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9DaGVja2VkQ29uZGl0
aW9uVGVzdC5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvQ2hlY2tlZENv
bmRpdGlvblRlc3QuY3BwCkBAIC0yNSw2ICsyNSw3IEBACiAKICNpbmNsdWRlICJjb25maWcuaCIK
ICNpbmNsdWRlIDx3dGYvQ2hlY2tlZENvbmRpdGlvbi5oPgorI2luY2x1ZGUgPHd0Zi9DaGVja2Vk
TG9jay5oPgogCiBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CiAKZGlmZiAtLWdpdCBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0NvbmRpdGlvbi5jcHAgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dURi9Db25kaXRpb24uY3BwCmluZGV4IDNiMzViMDhjYTE0YjgxODg0N2Q2NmVl
NTg3ZmZhZDFhNTkwZDgxMjYuLjVlZWMzZTAxNTY2YjkxOGQ2NjdlMTY0ODI1ZjAxMjA4ZDg3OWJi
ZWIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0NvbmRpdGlvbi5j
cHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvQ29uZGl0aW9uLmNwcApAQCAt
NDYsNyArNDYsNyBAQCBlbnVtIE5vdGlmeVN0eWxlIHsKIH07CiAKIHRlbXBsYXRlPHR5cGVuYW1l
IEZ1bmN0b3I+Ci12b2lkIHdhaXQoQ29uZGl0aW9uJiBjb25kaXRpb24sIHN0ZDo6dW5pcXVlX2xv
Y2s8TG9jaz4mIGxvY2tlciwgY29uc3QgRnVuY3RvciYgcHJlZGljYXRlLCBTZWNvbmRzIHRpbWVv
dXQpCit2b2lkIHdhaXQoVW5jaGVja2VkQ29uZGl0aW9uJiBjb25kaXRpb24sIHN0ZDo6dW5pcXVl
X2xvY2s8VW5jaGVja2VkTG9jaz4mIGxvY2tlciwgY29uc3QgRnVuY3RvciYgcHJlZGljYXRlLCBT
ZWNvbmRzIHRpbWVvdXQpCiB7CiAgICAgaWYgKHRpbWVvdXQgPT0gU2Vjb25kczo6aW5maW5pdHko
KSkKICAgICAgICAgY29uZGl0aW9uLndhaXQobG9ja2VyLCBwcmVkaWNhdGUpOwpAQCAtNTksNyAr
NTksNyBAQCB2b2lkIHdhaXQoQ29uZGl0aW9uJiBjb25kaXRpb24sIHN0ZDo6dW5pcXVlX2xvY2s8
TG9jaz4mIGxvY2tlciwgY29uc3QgRnVuY3RvciYgcAogICAgIH0KIH0KIAotdm9pZCBub3RpZnko
Tm90aWZ5U3R5bGUgbm90aWZ5U3R5bGUsIENvbmRpdGlvbiYgY29uZGl0aW9uLCBib29sIHNob3Vs
ZE5vdGlmeSkKK3ZvaWQgbm90aWZ5KE5vdGlmeVN0eWxlIG5vdGlmeVN0eWxlLCBVbmNoZWNrZWRD
b25kaXRpb24mIGNvbmRpdGlvbiwgYm9vbCBzaG91bGROb3RpZnkpCiB7CiAgICAgc3dpdGNoIChu
b3RpZnlTdHlsZSkgewogICAgIGNhc2UgQWx3YXlzTm90aWZ5T25lOgpAQCAtODMsOSArODMsOSBA
QCB2b2lkIHJ1blRlc3QoCiB7CiAgICAgRGVxdWU8dW5zaWduZWQ+IHF1ZXVlOwogICAgIGJvb2wg
c2hvdWxkQ29udGludWUgPSB0cnVlOwotICAgIExvY2sgbG9jazsKLSAgICBDb25kaXRpb24gZW1w
dHlDb25kaXRpb247Ci0gICAgQ29uZGl0aW9uIGZ1bGxDb25kaXRpb247CisgICAgVW5jaGVja2Vk
TG9jayBsb2NrOworICAgIFVuY2hlY2tlZENvbmRpdGlvbiBlbXB0eUNvbmRpdGlvbjsKKyAgICBV
bmNoZWNrZWRDb25kaXRpb24gZnVsbENvbmRpdGlvbjsKIAogICAgIFZlY3RvcjxSZWY8VGhyZWFk
Pj4gY29uc3VtZXJUaHJlYWRzOwogICAgIFZlY3RvcjxSZWY8VGhyZWFkPj4gcHJvZHVjZXJUaHJl
YWRzOwpAQCAtMTAxLDcgKzEwMSw3IEBAIHZvaWQgcnVuVGVzdCgKICAgICAgICAgICAgICAgICAg
ICAgdW5zaWduZWQgcmVzdWx0OwogICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBzaG91bGRO
b3RpZnkgPSBmYWxzZTsKICAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAg
ICAgICAgc3RkOjp1bmlxdWVfbG9jazxMb2NrPiBsb2NrZXIobG9jayk7CisgICAgICAgICAgICAg
ICAgICAgICAgICBzdGQ6OnVuaXF1ZV9sb2NrPFVuY2hlY2tlZExvY2s+IGxvY2tlcihsb2NrKTsK
ICAgICAgICAgICAgICAgICAgICAgICAgIHdhaXQoCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZW1wdHlDb25kaXRpb24sIGxvY2tlciwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
WyZdICgpIHsKQEAgLTEzNCw3ICsxMzQsNyBAQCB2b2lkIHJ1blRlc3QoCiAgICAgICAgICAgICAg
ICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG51bU1lc3NhZ2VzUGVyUHJvZHVjZXI7ICsraSkg
ewogICAgICAgICAgICAgICAgICAgICBib29sIHNob3VsZE5vdGlmeSA9IGZhbHNlOwogICAgICAg
ICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBzdGQ6OnVuaXF1ZV9sb2Nr
PExvY2s+IGxvY2tlcihsb2NrKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHN0ZDo6dW5pcXVl
X2xvY2s8VW5jaGVja2VkTG9jaz4gbG9ja2VyKGxvY2spOwogICAgICAgICAgICAgICAgICAgICAg
ICAgd2FpdCgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdWxsQ29uZGl0aW9uLCBsb2Nr
ZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyZdICgpIHsKZGlmZiAtLWdpdCBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL01ldGFBbGxvY2F0b3IuY3BwIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XVEYvTWV0YUFsbG9jYXRvci5jcHAKaW5kZXggYjkxZjY4ZWMwY2Mx
N2RkMzcwOGYyZTc4MDgzNjY1NTdkYjM4N2E2Ni4uNGVmNTgzYjNjMmJlOThlZWZkOTYxNTFjNzk2
OWNlNDNlYmEwNTc5MyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYv
TWV0YUFsbG9jYXRvci5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvTWV0
YUFsbG9jYXRvci5jcHAKQEAgLTEyOSw3ICsxMjksNyBAQCBwdWJsaWM6CiAgICAgICAgIH0KICAg
ICAgICAgCiAgICAgcHJpdmF0ZToKLSAgICAgICAgTG9jayBtX2xvY2s7CisgICAgICAgIFVuY2hl
Y2tlZExvY2sgbV9sb2NrOwogICAgICAgICBNZXRhQWxsb2NhdG9yVGVzdCogbV9wYXJlbnQ7CiAg
ICAgfTsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRs
ZS9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0lu
amVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyLmNwcAppbmRleCA5ODQ0ZTViNjMz
NWZiY2EyODZlMmMxMWM2YjNlOTg3OGQ5YzQwZDBiLi42ZWJhMTRhMWE3MGMwM2Q1NTdkYjIzYjYw
NzYyZGY3OWZmZWE0Y2FlIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyLmNwcAorKysgYi9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyLmNwcApAQCAt
MTk5LDcgKzE5OSw3IEBAIEFYVGhyZWFkJiBBWFRocmVhZDo6c2luZ2xldG9uKCkKIHZvaWQgQVhU
aHJlYWQ6OmNyZWF0ZVRocmVhZElmTmVlZGVkKCkKIHsKICAgICAvLyBXYWl0IGZvciB0aGUgdGhy
ZWFkIHRvIGluaXRpYWxpemUgdGhlIHJ1biBsb29wLgotICAgIHN0ZDo6dW5pcXVlX2xvY2s8TG9j
az4gbG9jayhtX2luaXRpYWxpemVSdW5Mb29wTXV0ZXgpOworICAgIExvY2tlciBsb2NrIHsgbV9p
bml0aWFsaXplUnVuTG9vcE11dGV4IH07CiAKICAgICBpZiAoIW1fdGhyZWFkKSB7CiAgICAgICAg
IG1fdGhyZWFkID0gVGhyZWFkOjpjcmVhdGUoIldLVFI6IEFjY2Vzc2liaWxpdHlDb250cm9sbGVy
IiwgW3RoaXNdIHsKQEAgLTIwOCw3ICsyMDgsNyBAQCB2b2lkIEFYVGhyZWFkOjpjcmVhdGVUaHJl
YWRJZk5lZWRlZCgpCiAgICAgICAgIH0pOwogICAgIH0KIAotICAgIG1faW5pdGlhbGl6ZVJ1bkxv
b3BDb25kaXRpb25WYXJpYWJsZS53YWl0KGxvY2ssIFt0aGlzXSB7CisgICAgbV9pbml0aWFsaXpl
UnVuTG9vcENvbmRpdGlvblZhcmlhYmxlLndhaXQobV9pbml0aWFsaXplUnVuTG9vcE11dGV4LCBb
dGhpc10gewogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgICAgICByZXR1cm4gbV90aHJlYWRSdW5M
b29wOwogI2Vsc2UK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>429487</attachid>
            <date>2021-05-23 16:51:21 -0700</date>
            <delta_ts>2021-05-23 17:08:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226157-20210523165120.patch</filename>
            <type>text/plain</type>
            <size>102733</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3OTM0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAw
YzRlNzliNTg2ZTkwMmM1MTBiY2NkMjdkOGMwYzA0MTU2MGNmMjhmLi45MzM2Mzg2OTAxOGFkODIy
NjhhZjUzMmE1OWMwMThjOTZjMjM1ZTY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw5NSBAQAorMjAyMS0wNS0yMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgor
CisgICAgICAgIE1ha2UgQ2hlY2tlZExvY2sgdGhlIGRlZmF1bHQgTG9jaworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI2MTU3CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWFrZSBDaGVja2VkTG9jayB0aGUg
ZGVmYXVsdCBMb2NrIHNvIHRoYXQgd2UgZ2V0IG1vcmUgYmVuZWZpdHMgZnJvbSBDbGFuZworICAg
ICAgICBUaHJlYWQgU2FmZXR5IEFuYWx5c2lzLiBOb3RlIHRoYXQgQ2hlY2tlZExvY2sgMTAwJSBy
ZWxpZXMgb24gdGhlIGV4aXN0aW5nCisgICAgICAgIExvY2sgaW1wbGVtZW50YXRpb24gYW5kIG1l
cmVseSBhZGRzIHRoZSBjbGFuZyBhbm90YXRpb25zIGZvciB0aHJlYWQgCisgICAgICAgIHNhZmV0
eS4KKworICAgICAgICBUaGF0IHRoaXMgcGF0Y2ggZG9lcyBpczoKKyAgICAgICAgMS4gUmVuYW1l
IHRoZSBMb2NrIGNsYXNzIHRvIFVuY2hlY2tlZExvY2sKKyAgICAgICAgMi4gUmVuYW1lIHRoZSBD
aGVja2VkTG9jayBjbGFzcyB0byBMb2NrCisgICAgICAgIDMuIFJlbmFtZSB0aGUgQ29uZGl0aW9u
IGNsYXNzIHRvIFVuY2hlY2tlZENvbmRpdGlvbgorICAgICAgICA0LiBSZW5hbWUgdGhlIENoZWNr
ZWRDb25kaXRpb24gY2xhc3MgdG8gQ29uZGl0aW9uCisgICAgICAgIDUuIFVwZGF0ZSB0aGUgdHlw
ZXMgb2YgY2VydGFpbiB2YXJpYWJsZXMgZnJvbSBMb2NrIC8gQ29uZGl0aW9uIHRvCisgICAgICAg
ICAgIFVuY2hlY2tlZExvY2sgLyBVbmNoZWNrZWRDb25kaXRpb24gaWYgSSBnb3QgYSBidWlsZCBm
YWlsdXJlLiBCdWlsZCAKKyAgICAgICAgICAgZmFpbHVyZXMgYXJlIHVzdWFsbHkgY2F1c2VkIGJ5
IHRoZSBmb2xsb3dpbmcgZmFjdHM6CisgICAgICAgICAgIC0gTG9ja2VyPENoZWNrZWRMb2NrPiBk
b2Vzbid0IHN1YmNsYXNzIEFic3RyYWN0TG9ja2VyIHdoaWNoIGEgbG90IG9mCisgICAgICAgICAg
ICAgSlNDIGNvZGUgcGFzc2VzIGFzIGFyZ3VtZW50CisgICAgICAgICAgIC0gTG9ja2VyPENoZWNr
ZWRMb2NrPiBoYXMgbm8gbW92ZSBjb25zdHJ1Y3RvcgorICAgICAgICAgICAtIExvY2tlcjxDaGVj
a2VkTG9jaz4gY2Fubm90IGJlIGNvbnN0cnVjdGVkIGZyb20gYSBsb2NrIHBvaW50ZXIsIG9ubHkK
KyAgICAgICAgICAgICBhIHJlZmVyZW5jZQorCisgICAgICAgIEZvciBub3csIENoZWNrZWRMb2Nr
IGFuZCBDaGVja2VkQ29uZGl0aW9uIHJlbWFpbiBhcyBhbGlhc2VzIHRvIExvY2sgYW5kIAorICAg
ICAgICBDb25kaXRpb24sIGluIHRoZWlyIHJlc3BlY3RpdmUgQ2hlY2tlZExvY2suaCAvIENoZWNr
ZWRDb25kaXRpb24uaCBoZWFkZXJzLgorICAgICAgICBJIHdpbGwgZHJvcCB0aGVtIGluIGEgZm9s
bG93LXVwIHRvIHJlZHVjZSBwYXRjaCBzaXplLgorCisgICAgICAgIEkgd2lsbCBhbHNvIGZvbGxv
dy11cCB0byB0cnkgYW5kIGdldCByaWQgb2YgYXMgbXVjaCB1c2FnZSBvZiBVbmNoZWNrZWRMb2Nr
CisgICAgICAgIGFuZCBVbmNoZWNrZWRDb25kaXRpb24gYXMgcG9zc2libGUuIEkgZGlkIG5vdCB0
cnkgdmVyeSBoYXJkIGluIHRoaXMgcGF0Y2gKKyAgICAgICAgdG8gcmVkdWNlIHBhdGNoIHNpemUu
IAorCisgICAgICAgICogYXNzZW1ibGVyL3Rlc3RtYXNtLmNwcDoKKyAgICAgICAgKiBkZmcvREZH
Q29tbW9uLmNwcDoKKyAgICAgICAgKiBkZmcvREZHVGhyZWFkRGF0YS5oOgorICAgICAgICAqIGRm
Zy9ERkdXb3JrbGlzdC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6V29ya2xpc3Q6OldvcmtsaXN0
KToKKyAgICAgICAgKiBkZmcvREZHV29ya2xpc3QuaDoKKyAgICAgICAgKiBkeW5iZW5jaC5jcHA6
CisgICAgICAgICogaGVhcC9CbG9ja0RpcmVjdG9yeS5oOgorICAgICAgICAoSlNDOjpCbG9ja0Rp
cmVjdG9yeTo6Yml0dmVjdG9yTG9jayk6CisgICAgICAgICogaGVhcC9Db2RlQmxvY2tTZXQuaDoK
KyAgICAgICAgKEpTQzo6Q29kZUJsb2NrU2V0OjpnZXRMb2NrKToKKyAgICAgICAgKiBoZWFwL0hl
YXAuY3BwOgorICAgICAgICAoSlNDOjpIZWFwOjpIZWFwKToKKyAgICAgICAgKiBoZWFwL0hlYXAu
aDoKKyAgICAgICAgKiBoZWFwL01hcmtlZFNwYWNlLmg6CisgICAgICAgIChKU0M6Ok1hcmtlZFNw
YWNlOjpkaXJlY3RvcnlMb2NrKToKKyAgICAgICAgKiBoZWFwL01hcmtpbmdDb25zdHJhaW50U29s
dmVyLmg6CisgICAgICAgICogaGVhcC9TbG90VmlzaXRvci5jcHA6CisgICAgICAgIChKU0M6OlNs
b3RWaXNpdG9yOjpkb25hdGVLbm93blBhcmFsbGVsKToKKyAgICAgICAgKiBoZWFwL1Nsb3RWaXNp
dG9yLmg6CisgICAgICAgICogaml0L0V4ZWN1dGFibGVBbGxvY2F0b3IuY3BwOgorICAgICAgICAo
SlNDOjpFeGVjdXRhYmxlQWxsb2NhdG9yOjpnZXRMb2NrIGNvbnN0KToKKyAgICAgICAgKEpTQzo6
ZHVtcEpJVE1lbW9yeSk6CisgICAgICAgICogaml0L0V4ZWN1dGFibGVBbGxvY2F0b3IuaDoKKyAg
ICAgICAgKEpTQzo6RXhlY3V0YWJsZUFsbG9jYXRvckJhc2U6OmdldExvY2sgY29uc3QpOgorICAg
ICAgICAqIGppdC9KSVRXb3JrbGlzdC5jcHA6CisgICAgICAgIChKU0M6OkpJVFdvcmtsaXN0OjpK
SVRXb3JrbGlzdCk6CisgICAgICAgICogaml0L0pJVFdvcmtsaXN0Lmg6CisgICAgICAgICoganNj
LmNwcDoKKyAgICAgICAgKiBwcm9maWxlci9Qcm9maWxlckRhdGFiYXNlLmg6CisgICAgICAgICog
cnVudGltZS9Db25jdXJyZW50SlNMb2NrLmg6CisgICAgICAgICogcnVudGltZS9EZWZlcnJlZFdv
cmtUaW1lci5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNMb2NrLmg6CisgICAgICAgICogcnVudGlt
ZS9TYW1wbGluZ1Byb2ZpbGVyLmNwcDoKKyAgICAgICAgKEpTQzo6RnJhbWVXYWxrZXI6OkZyYW1l
V2Fsa2VyKToKKyAgICAgICAgKEpTQzo6Q0ZyYW1lV2Fsa2VyOjpDRnJhbWVXYWxrZXIpOgorICAg
ICAgICAoSlNDOjpTYW1wbGluZ1Byb2ZpbGVyOjp0YWtlU2FtcGxlKToKKyAgICAgICAgKiBydW50
aW1lL1NhbXBsaW5nUHJvZmlsZXIuaDoKKyAgICAgICAgKEpTQzo6U2FtcGxpbmdQcm9maWxlcjo6
Z2V0TG9jayk6CisgICAgICAgICogcnVudGltZS9WTS5oOgorICAgICAgICAqIHJ1bnRpbWUvVk1U
cmFwcy5jcHA6CisgICAgICAgIChKU0M6OlZNVHJhcHM6OmludmFsaWRhdGVDb2RlQmxvY2tzT25T
dGFjayk6CisgICAgICAgIChKU0M6OlZNVHJhcHM6OlZNVHJhcHMpOgorICAgICAgICAqIHJ1bnRp
bWUvVk1UcmFwcy5oOgorICAgICAgICAqIHRvb2xzL0Z1bmN0aW9uT3ZlcnJpZGVzLmg6CisgICAg
ICAgICogdG9vbHMvVk1JbnNwZWN0b3IuY3BwOgorICAgICAgICAoSlNDOjplbnN1cmVJc1NhZmVU
b0xvY2spOgorICAgICAgICAqIHRvb2xzL1ZNSW5zcGVjdG9yLmg6CisgICAgICAgIChKU0M6OlZN
SW5zcGVjdG9yOjpnZXRMb2NrKToKKyAgICAgICAgKiB3YXNtL1dhc21DYWxsZWVSZWdpc3RyeS5o
OgorICAgICAgICAoSlNDOjpXYXNtOjpDYWxsZWVSZWdpc3RyeTo6Z2V0TG9jayk6CisgICAgICAg
ICogd2FzbS9XYXNtUGxhbi5oOgorICAgICAgICAqIHdhc20vV2FzbVN0cmVhbWluZ0NvbXBpbGVy
Lmg6CisgICAgICAgICogd2FzbS9XYXNtVGh1bmtzLmg6CisgICAgICAgICogd2FzbS9XYXNtV29y
a2xpc3QuY3BwOgorICAgICAgICAoSlNDOjpXYXNtOjpXb3JrbGlzdDo6V29ya2xpc3QpOgorICAg
ICAgICAqIHdhc20vV2FzbVdvcmtsaXN0Lmg6CisKIDIwMjEtMDUtMjMgIENocmlzIER1bWV6ICA8
Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBVc2UgQ2hlY2tlZExvY2sgaW4gZXZlbiBtb3Jl
IHBsYWNlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV1RGL0No
YW5nZUxvZwppbmRleCAxZGYzZjhlMGJhMWU3MjU3MWUwNmU2ZmE1ZDZjMjk5NzBkOTI2MmRmLi4w
MTczMDA1YThiMjg1MTRmZDU3NWM2NTdkMjk4YmZjY2QwNDhjNWQwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV1RGL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY2
IEBACisyMDIxLTA1LTIzICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAg
ICAgTWFrZSBDaGVja2VkTG9jayB0aGUgZGVmYXVsdCBMb2NrCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjYxNTcKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNYWtlIENoZWNrZWRMb2NrIHRoZSBkZWZhdWx0
IExvY2sgc28gdGhhdCB3ZSBnZXQgbW9yZSBiZW5lZml0cyBmcm9tIENsYW5nCisgICAgICAgIFRo
cmVhZCBTYWZldHkgQW5hbHlzaXMuIE5vdGUgdGhhdCBDaGVja2VkTG9jayAxMDAlIHJlbGllcyBv
biB0aGUgZXhpc3RpbmcKKyAgICAgICAgTG9jayBpbXBsZW1lbnRhdGlvbiBhbmQgbWVyZWx5IGFk
ZHMgdGhlIGNsYW5nIGFub3RhdGlvbnMgZm9yIHRocmVhZAorICAgICAgICBzYWZldHkuCisKKyAg
ICAgICAgVGhhdCB0aGlzIHBhdGNoIGRvZXMgaXM6CisgICAgICAgIDEuIFJlbmFtZSB0aGUgTG9j
ayBjbGFzcyB0byBVbmNoZWNrZWRMb2NrCisgICAgICAgIDIuIFJlbmFtZSB0aGUgQ2hlY2tlZExv
Y2sgY2xhc3MgdG8gTG9jaworICAgICAgICAzLiBSZW5hbWUgdGhlIENvbmRpdGlvbiBjbGFzcyB0
byBVbmNoZWNrZWRDb25kaXRpb24KKyAgICAgICAgNC4gUmVuYW1lIHRoZSBDaGVja2VkQ29uZGl0
aW9uIGNsYXNzIHRvIENvbmRpdGlvbgorICAgICAgICA1LiBVcGRhdGUgdGhlIHR5cGVzIG9mIGNl
cnRhaW4gdmFyaWFibGVzIGZyb20gTG9jayAvIENvbmRpdGlvbiB0bworICAgICAgICAgICBVbmNo
ZWNrZWRMb2NrIC8gVW5jaGVja2VkQ29uZGl0aW9uIGlmIEkgZ290IGEgYnVpbGQgZmFpbHVyZS4g
QnVpbGQKKyAgICAgICAgICAgZmFpbHVyZXMgYXJlIHVzdWFsbHkgY2F1c2VkIGJ5IHRoZSBmb2xs
b3dpbmcgZmFjdHM6CisgICAgICAgICAgIC0gTG9ja2VyPENoZWNrZWRMb2NrPiBkb2Vzbid0IHN1
YmNsYXNzIEFic3RyYWN0TG9ja2VyIHdoaWNoIGEgbG90IG9mCisgICAgICAgICAgICAgSlNDIGNv
ZGUgcGFzc2VzIGFzIGFyZ3VtZW50CisgICAgICAgICAgIC0gTG9ja2VyPENoZWNrZWRMb2NrPiBo
YXMgbm8gbW92ZSBjb25zdHJ1Y3RvcgorICAgICAgICAgICAtIExvY2tlcjxDaGVja2VkTG9jaz4g
Y2Fubm90IGJlIGNvbnN0cnVjdGVkIGZyb20gYSBsb2NrIHBvaW50ZXIsIG9ubHkKKyAgICAgICAg
ICAgICBhIHJlZmVyZW5jZQorICAgICAgICAKKyAgICAgICAgRm9yIG5vdywgQ2hlY2tlZExvY2sg
YW5kIENoZWNrZWRDb25kaXRpb24gcmVtYWluIGFzIGFsaWFzZXMgdG8gTG9jayBhbmQKKyAgICAg
ICAgQ29uZGl0aW9uLCBpbiB0aGVpciByZXNwZWN0aXZlIENoZWNrZWRMb2NrLmggLyBDaGVja2Vk
Q29uZGl0aW9uLmggaGVhZGVycy4KKyAgICAgICAgSSB3aWxsIGRyb3AgdGhlbSBpbiBhIGZvbGxv
dy11cCB0byByZWR1Y2UgcGF0Y2ggc2l6ZS4KKworICAgICAgICBJIHdpbGwgYWxzbyBmb2xsb3ct
dXAgdG8gdHJ5IGFuZCBnZXQgcmlkIG9mIGFzIG11Y2ggdXNhZ2Ugb2YgVW5jaGVja2VkTG9jawor
ICAgICAgICBhbmQgVW5jaGVja2VkQ29uZGl0aW9uIGFzIHBvc3NpYmxlLiBJIGRpZCBub3QgdHJ5
IHZlcnkgaGFyZCBpbiB0aGlzIHBhdGNoCisgICAgICAgIHRvIHJlZHVjZSBwYXRjaCBzaXplLgor
CisgICAgICAgICogd3RmL0F1dG9tYXRpY1RocmVhZC5jcHA6CisgICAgICAgIChXVEY6OkF1dG9t
YXRpY1RocmVhZENvbmRpdGlvbjo6d2FpdCk6CisgICAgICAgIChXVEY6OkF1dG9tYXRpY1RocmVh
ZENvbmRpdGlvbjo6d2FpdEZvcik6CisgICAgICAgIChXVEY6OkF1dG9tYXRpY1RocmVhZDo6QXV0
b21hdGljVGhyZWFkKToKKyAgICAgICAgKiB3dGYvQXV0b21hdGljVGhyZWFkLmg6CisgICAgICAg
ICogd3RmL0NoZWNrZWRDb25kaXRpb24uaDoKKyAgICAgICAgKiB3dGYvQ2hlY2tlZExvY2suaDoK
KyAgICAgICAgKiB3dGYvQ29uZGl0aW9uLmg6CisgICAgICAgICogd3RmL0xvY2suY3BwOgorICAg
ICAgICAoV1RGOjpVbmNoZWNrZWRMb2NrOjpsb2NrU2xvdyk6CisgICAgICAgIChXVEY6OlVuY2hl
Y2tlZExvY2s6OnVubG9ja1Nsb3cpOgorICAgICAgICAoV1RGOjpVbmNoZWNrZWRMb2NrOjp1bmxv
Y2tGYWlybHlTbG93KToKKyAgICAgICAgKFdURjo6VW5jaGVja2VkTG9jazo6c2FmZXBvaW50U2xv
dyk6CisgICAgICAgICogd3RmL0xvY2suaDoKKyAgICAgICAgKFdURjo6V1RGX0FTU0VSVFNfQUNR
VUlSRURfTE9DSyk6CisgICAgICAgICogd3RmL01ldGFBbGxvY2F0b3IuY3BwOgorICAgICAgICAo
V1RGOjpNZXRhQWxsb2NhdG9yOjpyZWxlYXNlKToKKyAgICAgICAgKFdURjo6TWV0YUFsbG9jYXRv
cjo6TWV0YUFsbG9jYXRvcik6CisgICAgICAgIChXVEY6Ok1ldGFBbGxvY2F0b3I6OmFsbG9jYXRl
KToKKyAgICAgICAgKFdURjo6TWV0YUFsbG9jYXRvcjo6Y3VycmVudFN0YXRpc3RpY3MpOgorICAg
ICAgICAqIHd0Zi9NZXRhQWxsb2NhdG9yLmg6CisgICAgICAgICogd3RmL1BhcmFsbGVsSGVscGVy
UG9vbC5jcHA6CisgICAgICAgIChXVEY6OlBhcmFsbGVsSGVscGVyUG9vbDo6UGFyYWxsZWxIZWxw
ZXJQb29sKToKKyAgICAgICAgKiB3dGYvUGFyYWxsZWxIZWxwZXJQb29sLmg6CisgICAgICAgICog
d3RmL1JlY3Vyc2l2ZUxvY2tBZGFwdGVyLmg6CisgICAgICAgICogd3RmL1dvcmtlclBvb2wuY3Bw
OgorICAgICAgICAoV1RGOjpXb3JrZXJQb29sOjpXb3JrZXJQb29sKToKKyAgICAgICAgKiB3dGYv
V29ya2VyUG9vbC5oOgorCiAyMDIxLTA1LTIzICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5j
b20+CiAKICAgICAgICAgRHJvcCBXVEY6OnRyeUhvbGRMb2NrKCkgYXMgaXQgaXMgaW5jb21wYXRp
YmxlIHdpdGggQ2xhbmcgVGhyZWFkIFNhZmV0eSBBbmFseXNpcwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDVkYmE1
ZmZmZmMwOTJiZDBjYTgyNmUxM2FiODBmMmQyYjJhZmNhZjEuLmMyMjkzNTI2NzI4NzU0NjUzMThm
MTU1ZGRhMTUyNGI4MGRkZWIxYTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2NyBAQAorMjAyMS0w
NS0yMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIE1ha2UgQ2hl
Y2tlZExvY2sgdGhlIGRlZmF1bHQgTG9jaworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjI2MTU3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgTWFrZSBDaGVja2VkTG9jayB0aGUgZGVmYXVsdCBMb2NrIHNvIHRo
YXQgd2UgZ2V0IG1vcmUgYmVuZWZpdHMgZnJvbSBDbGFuZworICAgICAgICBUaHJlYWQgU2FmZXR5
IEFuYWx5c2lzLiBOb3RlIHRoYXQgQ2hlY2tlZExvY2sgMTAwJSByZWxpZXMgb24gdGhlIGV4aXN0
aW5nCisgICAgICAgIExvY2sgaW1wbGVtZW50YXRpb24gYW5kIG1lcmVseSBhZGRzIHRoZSBjbGFu
ZyBhbm90YXRpb25zIGZvciB0aHJlYWQgCisgICAgICAgIHNhZmV0eS4KKworICAgICAgICBUaGF0
IHRoaXMgcGF0Y2ggZG9lcyBpczoKKyAgICAgICAgMS4gUmVuYW1lIHRoZSBMb2NrIGNsYXNzIHRv
IFVuY2hlY2tlZExvY2sKKyAgICAgICAgMi4gUmVuYW1lIHRoZSBDaGVja2VkTG9jayBjbGFzcyB0
byBMb2NrCisgICAgICAgIDMuIFJlbmFtZSB0aGUgQ29uZGl0aW9uIGNsYXNzIHRvIFVuY2hlY2tl
ZENvbmRpdGlvbgorICAgICAgICA0LiBSZW5hbWUgdGhlIENoZWNrZWRDb25kaXRpb24gY2xhc3Mg
dG8gQ29uZGl0aW9uCisgICAgICAgIDUuIFVwZGF0ZSB0aGUgdHlwZXMgb2YgY2VydGFpbiB2YXJp
YWJsZXMgZnJvbSBMb2NrIC8gQ29uZGl0aW9uIHRvCisgICAgICAgICAgIFVuY2hlY2tlZExvY2sg
LyBVbmNoZWNrZWRDb25kaXRpb24gaWYgSSBnb3QgYSBidWlsZCBmYWlsdXJlLiBCdWlsZCAKKyAg
ICAgICAgICAgZmFpbHVyZXMgYXJlIHVzdWFsbHkgY2F1c2VkIGJ5IHRoZSBmb2xsb3dpbmcgZmFj
dHM6CisgICAgICAgICAgIC0gTG9ja2VyPENoZWNrZWRMb2NrPiBkb2Vzbid0IHN1YmNsYXNzIEFi
c3RyYWN0TG9ja2VyIHdoaWNoIGEgbG90IG9mCisgICAgICAgICAgICAgSlNDIGNvZGUgcGFzc2Vz
IGFzIGFyZ3VtZW50CisgICAgICAgICAgIC0gTG9ja2VyPENoZWNrZWRMb2NrPiBoYXMgbm8gbW92
ZSBjb25zdHJ1Y3RvcgorICAgICAgICAgICAtIExvY2tlcjxDaGVja2VkTG9jaz4gY2Fubm90IGJl
IGNvbnN0cnVjdGVkIGZyb20gYSBsb2NrIHBvaW50ZXIsIG9ubHkKKyAgICAgICAgICAgICBhIHJl
ZmVyZW5jZQorCisgICAgICAgIEZvciBub3csIENoZWNrZWRMb2NrIGFuZCBDaGVja2VkQ29uZGl0
aW9uIHJlbWFpbiBhcyBhbGlhc2VzIHRvIExvY2sgYW5kIAorICAgICAgICBDb25kaXRpb24sIGlu
IHRoZWlyIHJlc3BlY3RpdmUgQ2hlY2tlZExvY2suaCAvIENoZWNrZWRDb25kaXRpb24uaCBoZWFk
ZXJzLgorICAgICAgICBJIHdpbGwgZHJvcCB0aGVtIGluIGEgZm9sbG93LXVwIHRvIHJlZHVjZSBw
YXRjaCBzaXplLgorCisgICAgICAgIEkgd2lsbCBhbHNvIGZvbGxvdy11cCB0byB0cnkgYW5kIGdl
dCByaWQgb2YgYXMgbXVjaCB1c2FnZSBvZiBVbmNoZWNrZWRMb2NrCisgICAgICAgIGFuZCBVbmNo
ZWNrZWRDb25kaXRpb24gYXMgcG9zc2libGUuIEkgZGlkIG5vdCB0cnkgdmVyeSBoYXJkIGluIHRo
aXMgcGF0Y2gKKyAgICAgICAgdG8gcmVkdWNlIHBhdGNoIHNpemUuIAorCisgICAgICAgICogTW9k
dWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQlNlcnZlci5jcHA6CisgICAgICAgICogTW9kdWxlcy93
ZWJhdWRpby9NZWRpYUVsZW1lbnRBdWRpb1NvdXJjZU5vZGUuaDoKKyAgICAgICAgKiBNb2R1bGVz
L3dlYmRhdGFiYXNlL09yaWdpbkxvY2suY3BwOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9N
R2xvYmFsT2JqZWN0Lmg6CisgICAgICAgICogZG9tL05vZGUuY3BwOgorICAgICAgICAqIGh0bWwv
SFRNTE1lZGlhRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50
OjpjcmVhdGVNZWRpYVBsYXllcik6CisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xDb250ZXh0
R3JvdXAuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xDb250ZXh0R3JvdXA6Om9iamVjdEdy
YXBoTG9ja0ZvckFDb250ZXh0KToKKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTENvbnRleHRH
cm91cC5oOgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMQ29udGV4dE9iamVjdC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpXZWJHTENvbnRleHRPYmplY3Q6Om9iamVjdEdyYXBoTG9ja0ZvckNv
bnRleHQpOgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMQ29udGV4dE9iamVjdC5oOgorICAg
ICAgICAqIGh0bWwvY2FudmFzL1dlYkdMT2JqZWN0Lmg6CisgICAgICAgICogaHRtbC9jYW52YXMv
V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJl
bmRlcmluZ0NvbnRleHRCYXNlOjpvYmplY3RHcmFwaExvY2spOgorICAgICAgICAqIGh0bWwvY2Fu
dmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuaDoKKyAgICAgICAgKiBodG1sL2NhbnZhcy9X
ZWJHTFNoYXJlZE9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFNoYXJlZE9iamVj
dDo6b2JqZWN0R3JhcGhMb2NrRm9yQ29udGV4dCk6CisgICAgICAgICogaHRtbC9jYW52YXMvV2Vi
R0xTaGFyZWRPYmplY3QuaDoKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5n
VHJlZU1hYy5oOgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL1JldmVyYkNvbnZvbHZlci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSZXZlcmJDb252b2x2ZXI6OmJhY2tncm91bmRUaHJlYWRFbnRy
eSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvU2hhZG93Qmx1ci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTY3JhdGNoQnVmZmVyOjpsb2NrKToKKyAgICAgICAgKFdlYkNvcmU6OlNoYWRv
d0JsdXI6OmRyYXdSZWN0U2hhZG93V2l0aFRpbGluZyk6CisgICAgICAgIChXZWJDb3JlOjpTaGFk
b3dCbHVyOjpkcmF3SW5zZXRTaGFkb3dXaXRoVGlsaW5nKToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvVmlkZW9TaW5rR1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvZW1lL1dlYktpdENvbW1vbkVuY3J5cHRpb25EZWNyeXB0
b3JHU3RyZWFtZXIuY3BwOgorCiAyMDIxLTA1LTIzICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBs
ZS5jb20+CiAKICAgICAgICAgVXNlIENoZWNrZWRMb2NrIGluIGV2ZW4gbW9yZSBwbGFjZXMKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cKaW5kZXggNDZkMzYwY2ZmMzRmMDI3ZWVkMzY5Nzg5ZjQ1NjI2M2EwMmFhY2YxOS4uMGRiZWEw
ZmVlN2YyODY5ZGYxMzkyZjMzMWRhMTRlZDRkYzNiYzQ4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0
NCBAQAorMjAyMS0wNS0yMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAg
ICAgIE1ha2UgQ2hlY2tlZExvY2sgdGhlIGRlZmF1bHQgTG9jaworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI2MTU3CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWFrZSBDaGVja2VkTG9jayB0aGUgZGVmYXVs
dCBMb2NrIHNvIHRoYXQgd2UgZ2V0IG1vcmUgYmVuZWZpdHMgZnJvbSBDbGFuZworICAgICAgICBU
aHJlYWQgU2FmZXR5IEFuYWx5c2lzLiBOb3RlIHRoYXQgQ2hlY2tlZExvY2sgMTAwJSByZWxpZXMg
b24gdGhlIGV4aXN0aW5nCisgICAgICAgIExvY2sgaW1wbGVtZW50YXRpb24gYW5kIG1lcmVseSBh
ZGRzIHRoZSBjbGFuZyBhbm90YXRpb25zIGZvciB0aHJlYWQgCisgICAgICAgIHNhZmV0eS4KKwor
ICAgICAgICBUaGF0IHRoaXMgcGF0Y2ggZG9lcyBpczoKKyAgICAgICAgMS4gUmVuYW1lIHRoZSBM
b2NrIGNsYXNzIHRvIFVuY2hlY2tlZExvY2sKKyAgICAgICAgMi4gUmVuYW1lIHRoZSBDaGVja2Vk
TG9jayBjbGFzcyB0byBMb2NrCisgICAgICAgIDMuIFJlbmFtZSB0aGUgQ29uZGl0aW9uIGNsYXNz
IHRvIFVuY2hlY2tlZENvbmRpdGlvbgorICAgICAgICA0LiBSZW5hbWUgdGhlIENoZWNrZWRDb25k
aXRpb24gY2xhc3MgdG8gQ29uZGl0aW9uCisgICAgICAgIDUuIFVwZGF0ZSB0aGUgdHlwZXMgb2Yg
Y2VydGFpbiB2YXJpYWJsZXMgZnJvbSBMb2NrIC8gQ29uZGl0aW9uIHRvCisgICAgICAgICAgIFVu
Y2hlY2tlZExvY2sgLyBVbmNoZWNrZWRDb25kaXRpb24gaWYgSSBnb3QgYSBidWlsZCBmYWlsdXJl
LiBCdWlsZCAKKyAgICAgICAgICAgZmFpbHVyZXMgYXJlIHVzdWFsbHkgY2F1c2VkIGJ5IHRoZSBm
b2xsb3dpbmcgZmFjdHM6CisgICAgICAgICAgIC0gTG9ja2VyPENoZWNrZWRMb2NrPiBkb2Vzbid0
IHN1YmNsYXNzIEFic3RyYWN0TG9ja2VyIHdoaWNoIGEgbG90IG9mCisgICAgICAgICAgICAgSlND
IGNvZGUgcGFzc2VzIGFzIGFyZ3VtZW50CisgICAgICAgICAgIC0gTG9ja2VyPENoZWNrZWRMb2Nr
PiBoYXMgbm8gbW92ZSBjb25zdHJ1Y3RvcgorICAgICAgICAgICAtIExvY2tlcjxDaGVja2VkTG9j
az4gY2Fubm90IGJlIGNvbnN0cnVjdGVkIGZyb20gYSBsb2NrIHBvaW50ZXIsIG9ubHkKKyAgICAg
ICAgICAgICBhIHJlZmVyZW5jZQorCisgICAgICAgIEZvciBub3csIENoZWNrZWRMb2NrIGFuZCBD
aGVja2VkQ29uZGl0aW9uIHJlbWFpbiBhcyBhbGlhc2VzIHRvIExvY2sgYW5kIAorICAgICAgICBD
b25kaXRpb24sIGluIHRoZWlyIHJlc3BlY3RpdmUgQ2hlY2tlZExvY2suaCAvIENoZWNrZWRDb25k
aXRpb24uaCBoZWFkZXJzLgorICAgICAgICBJIHdpbGwgZHJvcCB0aGVtIGluIGEgZm9sbG93LXVw
IHRvIHJlZHVjZSBwYXRjaCBzaXplLgorCisgICAgICAgIEkgd2lsbCBhbHNvIGZvbGxvdy11cCB0
byB0cnkgYW5kIGdldCByaWQgb2YgYXMgbXVjaCB1c2FnZSBvZiBVbmNoZWNrZWRMb2NrCisgICAg
ICAgIGFuZCBVbmNoZWNrZWRDb25kaXRpb24gYXMgcG9zc2libGUuIEkgZGlkIG5vdCB0cnkgdmVy
eSBoYXJkIGluIHRoaXMgcGF0Y2gKKyAgICAgICAgdG8gcmVkdWNlIHBhdGNoIHNpemUuIAorCisg
ICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTC5jcHA6
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMOjpwYWludFBpeGVsQnVm
ZmVyVG9JbWFnZUJ1ZmZlcik6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvSW5kZXhlZERCL1dl
YklEQlNlcnZlci5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9nbGliL0ljb25EYXRhYmFz
ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvV0tQcmludGluZ1ZpZXcubW06CisgICAgICAg
ICgtW1dLUHJpbnRpbmdWaWV3IGtub3dzUGFnZVJhbmdlOl0pOgorCiAyMDIxLTA1LTIzICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgVXNlIENoZWNrZWRMb2NrIGlu
IGV2ZW4gbW9yZSBwbGFjZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3Nl
bWJsZXIvUGVyZkxvZy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9QZXJmTG9n
LmgKaW5kZXggOGYyNGU4ZmE4YTNlMWI2YmM5NmQ1OThiNWQwZjI1MTUwYTdmZjcyMS4uOTc2MGRm
NjY1OGQyOTMzM2FmYTlhZGE4NzFhOTVjZTMyY2EwZDI0ZCAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9QZXJmTG9nLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2Fzc2VtYmxlci9QZXJmTG9nLmgKQEAgLTUwLDcgKzUwLDcgQEAgcHJpdmF0ZToKICAgICB2
b2lkKiBtX21hcmtlciB7IG51bGxwdHIgfTsKICAgICB1aW50NjRfdCBtX2NvZGVJbmRleCB7IDAg
fTsKICAgICBpbnQgbV9mZCB7IC0xIH07Ci0gICAgTG9jayBtX2xvY2s7CisgICAgVW5jaGVja2Vk
TG9jayBtX2xvY2s7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvdGVzdG1hc20uY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Fzc2VtYmxlci90ZXN0bWFzbS5jcHAKaW5kZXggMTkxZDE4MjkzNWFjMWE2ZTZmMGI1
MGI3YTMxM2JkOTg4N2FkYTQyMC4uZDM1M2U3MTJmODk5YzMwZTc5YmQ1MWM1ZGNjZDU3M2ExZDBl
YmM4MyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci90ZXN0bWFz
bS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci90ZXN0bWFzbS5jcHAK
QEAgLTE1Nyw3ICsxNTcsNyBAQCBuYW1lc3BhY2UgewogdXNpbmcgQ1BVU3RhdGUgPSBQcm9iZTo6
Q1BVU3RhdGU7CiAjZW5kaWYKIAotTG9jayBjcmFzaExvY2s7CitVbmNoZWNrZWRMb2NrIGNyYXNo
TG9jazsKIAogdHlwZWRlZiBXVEY6OkZ1bmN0aW9uPHZvaWQoQ0NhbGxIZWxwZXJzJik+IEdlbmVy
YXRvcjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDb21tb24u
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDb21tb24uY3BwCmluZGV4IGE3YWJj
NjQ3NDkzZDJiNjhkOThkYzJhNDAxNGJjMzNjN2RhYjg1ZmIuLjg3NjNjM2ZkNTFmYjE2NTRjNjk1
NDA0YTg1ZjY3YjBiOWU4MzcwNTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHQ29tbW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NvbW1v
bi5jcHAKQEAgLTM1LDcgKzM1LDcgQEAgbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBERkcgewog
CiBjb25zdCBjaGFyKiBjb25zdCB0aWVyTmFtZSA9ICJERkcgIjsKIAotc3RhdGljIExvY2sgY3Jh
c2hMb2NrOworc3RhdGljIFVuY2hlY2tlZExvY2sgY3Jhc2hMb2NrOwogCiB2b2lkIHN0YXJ0Q3Jh
c2hpbmcoKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdUaHJl
YWREYXRhLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1RocmVhZERhdGEuaAppbmRl
eCAzN2RmOWJkMTIxNTQ5Y2RlZDExZTk5ZjQyZmZkMmM1MGYwMjUyZDg2Li41MjJiN2QyYjdjMzYx
ZThiOWQzODBjNzI4Y2ZiOGEwNWIxNzQ2OWJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR1RocmVhZERhdGEuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1RocmVhZERhdGEuaApAQCAtNDcsNyArNDcsNyBAQCBwcml2YXRlOgogICAgIAogICAgIFdv
cmtsaXN0KiBtX3dvcmtsaXN0OwogICAgIFJlZlB0cjxBdXRvbWF0aWNUaHJlYWQ+IG1fdGhyZWFk
OwotICAgIExvY2sgbV9yaWdodFRvUnVuOworICAgIFVuY2hlY2tlZExvY2sgbV9yaWdodFRvUnVu
OwogICAgIFNhZmVwb2ludCogbV9zYWZlcG9pbnQ7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1dvcmtsaXN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHV29ya2xpc3QuY3BwCmluZGV4IDRkMjI4Y2ZlODdhZDk4MTkzNmMwN2MwOWQ0MWI3
Mjc1MTU1OTRhOTEuLmQxNTdhZGY4NzZkYzg0NjgzYTg2YzA0NmVhMmJlZWNiYWI5OWE5MzcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHV29ya2xpc3QuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHV29ya2xpc3QuY3BwCkBAIC0zOSw3ICszOSw3
IEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKIAogY2xhc3MgV29ya2xpc3Q6OlRo
cmVhZEJvZHkgZmluYWwgOiBwdWJsaWMgQXV0b21hdGljVGhyZWFkIHsKIHB1YmxpYzoKLSAgICBU
aHJlYWRCb2R5KGNvbnN0IEFic3RyYWN0TG9ja2VyJiBsb2NrZXIsIFdvcmtsaXN0JiB3b3JrbGlz
dCwgVGhyZWFkRGF0YSYgZGF0YSwgQm94PExvY2s+IGxvY2ssIFJlZjxBdXRvbWF0aWNUaHJlYWRD
b25kaXRpb24+JiYgY29uZGl0aW9uLCBpbnQgcmVsYXRpdmVQcmlvcml0eSkKKyAgICBUaHJlYWRC
b2R5KGNvbnN0IEFic3RyYWN0TG9ja2VyJiBsb2NrZXIsIFdvcmtsaXN0JiB3b3JrbGlzdCwgVGhy
ZWFkRGF0YSYgZGF0YSwgQm94PFVuY2hlY2tlZExvY2s+IGxvY2ssIFJlZjxBdXRvbWF0aWNUaHJl
YWRDb25kaXRpb24+JiYgY29uZGl0aW9uLCBpbnQgcmVsYXRpdmVQcmlvcml0eSkKICAgICAgICAg
OiBBdXRvbWF0aWNUaHJlYWQobG9ja2VyLCBsb2NrLCBXVEZNb3ZlKGNvbmRpdGlvbiksIFRocmVh
ZFR5cGU6OkNvbXBpbGVyKQogICAgICAgICAsIG1fd29ya2xpc3Qod29ya2xpc3QpCiAgICAgICAg
ICwgbV9kYXRhKGRhdGEpCkBAIC0xODEsNyArMTgxLDcgQEAgc3RhdGljIENTdHJpbmcgY3JlYXRl
V29ya2xpc3ROYW1lKENTdHJpbmcmJiB0aWVyTmFtZSkKIFdvcmtsaXN0OjpXb3JrbGlzdChDU3Ry
aW5nJiYgdGllck5hbWUpCiAgICAgOiBtX3RocmVhZE5hbWUoY3JlYXRlV29ya2xpc3ROYW1lKFdU
Rk1vdmUodGllck5hbWUpKSkKICAgICAsIG1fcGxhbkVucXVldWVkKEF1dG9tYXRpY1RocmVhZENv
bmRpdGlvbjo6Y3JlYXRlKCkpCi0gICAgLCBtX2xvY2soQm94PExvY2s+OjpjcmVhdGUoKSkKKyAg
ICAsIG1fbG9jayhCb3g8VW5jaGVja2VkTG9jaz46OmNyZWF0ZSgpKQogewogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1dvcmtsaXN0LmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1dvcmtsaXN0LmgKaW5kZXggMWNlMDJjMDdkOGIxMjgxOTRiY2Mw
M2M3ZjJhNTQxY2QwYTVmNDUyOS4uNTc2ZTAzZTQ3ZTZlZjUwM2M2ZDAxMTZlY2ZiZGMwYThjNmM3
NWM4OCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdXb3JrbGlzdC5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHV29ya2xpc3QuaApAQCAtMTEwLDEw
ICsxMTAsMTAgQEAgcHJpdmF0ZToKICAgICAvLyBiZSBjb21wbGV0ZWQuCiAgICAgVmVjdG9yPFJl
ZlB0cjxQbGFuPiwgMTY+IG1fcmVhZHlQbGFuczsKICAgICBSZWY8QXV0b21hdGljVGhyZWFkQ29u
ZGl0aW9uPiBtX3BsYW5FbnF1ZXVlZDsKLSAgICBDb25kaXRpb24gbV9wbGFuQ29tcGlsZWQ7Cisg
ICAgVW5jaGVja2VkQ29uZGl0aW9uIG1fcGxhbkNvbXBpbGVkOwogCi0gICAgTG9jayBtX3N1c3Bl
bnNpb25Mb2NrOwotICAgIEJveDxMb2NrPiBtX2xvY2s7CisgICAgVW5jaGVja2VkTG9jayBtX3N1
c3BlbnNpb25Mb2NrOworICAgIEJveDxVbmNoZWNrZWRMb2NrPiBtX2xvY2s7CiB9OwogCiBKU19F
WFBPUlRfUFJJVkFURSB1bnNpZ25lZCBzZXROdW1iZXJPZkRGR0NvbXBpbGVyVGhyZWFkcyh1bnNp
Z25lZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZHluYmVuY2guY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2R5bmJlbmNoLmNwcAppbmRleCA4ZjllNWViNzQxMDQ3NWZi
N2M4YjA4NjkyNjIzMzRmZTJhOTc4OTg1Li43OTUyNjExMGUyYTNhNjIwNTJkMTA5ZTliZGI4OGU5
ZWVhYmZmZjU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZHluYmVuY2guY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9keW5iZW5jaC5jcHAKQEAgLTQwLDcgKzQwLDcg
QEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAogbmFtZXNwYWNlIHsKIAotTG9jayBjcmFzaExvY2s7
CitVbmNoZWNrZWRMb2NrIGNyYXNoTG9jazsKIGNvbnN0IGNoYXIqIG5hbWVGaWx0ZXI7CiB1bnNp
Z25lZCByZXF1ZXN0ZWRJdGVyYXRpb25Db3VudDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2hlYXAvQmxvY2tEaXJlY3RvcnkuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9o
ZWFwL0Jsb2NrRGlyZWN0b3J5LmgKaW5kZXggZGFhMDNjNDdlZGY5ZDM2ZDE1NmJkNWQxYTY2MjFi
ZWU2YWFkZjhhZC4uOTAxNTg4Yzk0MzljMzVkZmM4MDRhMGI3NTdjNWU1YjU2M2Y0NGE0ZSAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvQmxvY2tEaXJlY3RvcnkuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9CbG9ja0RpcmVjdG9yeS5oCkBAIC05Myw3ICs5
Myw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgdXBkYXRlUGVyY2VudGFnZU9mUGFnZWRPdXRQYWdl
cyhXVEY6OlNpbXBsZVN0YXRzJik7CiAgICAgCi0gICAgTG9jayYgYml0dmVjdG9yTG9jaygpIHsg
cmV0dXJuIG1fYml0dmVjdG9yTG9jazsgfQorICAgIFVuY2hlY2tlZExvY2smIGJpdHZlY3Rvckxv
Y2soKSB7IHJldHVybiBtX2JpdHZlY3RvckxvY2s7IH0KIAogI2RlZmluZSBCTE9DS19ESVJFQ1RP
UllfQklUX0FDQ0VTU09SUyhsb3dlckJpdE5hbWUsIGNhcGl0YWxCaXROYW1lKSAgICAgXAogICAg
IGJvb2wgaXMgIyMgY2FwaXRhbEJpdE5hbWUoY29uc3QgQWJzdHJhY3RMb2NrZXImLCBzaXplX3Qg
aW5kZXgpIGNvbnN0IHsgcmV0dXJuIG1fYml0cy5pcyAjIyBjYXBpdGFsQml0TmFtZShpbmRleCk7
IH0gXApAQCAtMTU1LDcgKzE1NSw3IEBAIHByaXZhdGU6CiAgICAgLy8gTXV0YXRvciB1c2VzIHRo
aXMgdG8gZ3VhcmQgcmVzaXppbmcgdGhlIGJpdHZlY3RvcnMuIFRob3NlIHRoaW5ncyBpbiB0aGUg
R0MgdGhhdCBtYXkgcnVuCiAgICAgLy8gY29uY3VycmVudGx5IHRvIHRoZSBtdXRhdG9yIG11c3Qg
bG9jayB0aGlzIHdoZW4gYWNjZXNzaW5nIHRoZSBiaXR2ZWN0b3JzLgogICAgIEJsb2NrRGlyZWN0
b3J5Qml0cyBtX2JpdHM7Ci0gICAgTG9jayBtX2JpdHZlY3RvckxvY2s7CisgICAgVW5jaGVja2Vk
TG9jayBtX2JpdHZlY3RvckxvY2s7CiAgICAgTG9jayBtX2xvY2FsQWxsb2NhdG9yc0xvY2s7CiAg
ICAgQ2VsbEF0dHJpYnV0ZXMgbV9hdHRyaWJ1dGVzOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaGVhcC9Db2RlQmxvY2tTZXQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9o
ZWFwL0NvZGVCbG9ja1NldC5oCmluZGV4IGIwZGNiNmNjNzdjOWY5OWQzMDJjNzk5ZDk4ZTM5ZTk1
M2U2YWY0MTkuLjg1NmNjMWJiZjhiZDJkMTdjZGNkY2E3ZDNiNDRjNzFmMmZhNzBiMTggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0NvZGVCbG9ja1NldC5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0NvZGVCbG9ja1NldC5oCkBAIC01NCw3ICs1NCw3IEBA
IHB1YmxpYzoKICAgICB2b2lkIGNsZWFyQ3VycmVudGx5RXhlY3V0aW5nKCk7CiAKICAgICBib29s
IGNvbnRhaW5zKGNvbnN0IEFic3RyYWN0TG9ja2VyJiwgdm9pZCogY2FuZGlkYXRlQ29kZUJsb2Nr
KTsKLSAgICBMb2NrJiBnZXRMb2NrKCkgeyByZXR1cm4gbV9sb2NrOyB9CisgICAgVW5jaGVja2Vk
TG9jayYgZ2V0TG9jaygpIHsgcmV0dXJuIG1fbG9jazsgfQogCiAgICAgLy8gVGhpcyBpcyBleHBl
Y3RlZCB0byBydW4gb25seSB3aGVuIHdlJ3JlIG5vdCBhZGRpbmcgdG8gdGhlIHNldCBmb3Igbm93
LiBJZgogICAgIC8vIHRoaXMgbmVlZHMgdG8gcnVuIGNvbmN1cnJlbnRseSBpbiB0aGUgZnV0dXJl
LCB3ZSdsbCBuZWVkIHRvIGxvY2sgYXJvdW5kIHRoaXMuCkBAIC03OCw3ICs3OCw3IEBAIHB1Ymxp
YzoKIHByaXZhdGU6CiAgICAgSGFzaFNldDxDb2RlQmxvY2sqPiBtX2NvZGVCbG9ja3M7CiAgICAg
SGFzaFNldDxDb2RlQmxvY2sqPiBtX2N1cnJlbnRseUV4ZWN1dGluZzsKLSAgICBMb2NrIG1fbG9j
azsKKyAgICBVbmNoZWNrZWRMb2NrIG1fbG9jazsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNwcAppbmRleCA4YmM4NmQyY2E3NTE1YjRiOGUyZjc2
NGRlOTBlMmE2YzI0NzI2NjkxLi44NjFhNDAyZTUwZDBiY2MwZmVhZTYwMzA0N2NmMzVjMmVjZGM0
ZGU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNwcApAQCAtMzAyLDcgKzMwMiw3IEBA
IEhlYXA6OkhlYXAoVk0mIHZtLCBIZWFwVHlwZSBoZWFwVHlwZSkKICAgICAsIG1fc2hhcmVkQ29s
bGVjdG9yTWFya1N0YWNrKG1ha2VVbmlxdWU8TWFya1N0YWNrQXJyYXk+KCkpCiAgICAgLCBtX3No
YXJlZE11dGF0b3JNYXJrU3RhY2sobWFrZVVuaXF1ZTxNYXJrU3RhY2tBcnJheT4oKSkKICAgICAs
IG1faGVscGVyQ2xpZW50KCZoZWFwSGVscGVyUG9vbCgpKQotICAgICwgbV90aHJlYWRMb2NrKEJv
eDxMb2NrPjo6Y3JlYXRlKCkpCisgICAgLCBtX3RocmVhZExvY2soQm94PFVuY2hlY2tlZExvY2s+
OjpjcmVhdGUoKSkKICAgICAsIG1fdGhyZWFkQ29uZGl0aW9uKEF1dG9tYXRpY1RocmVhZENvbmRp
dGlvbjo6Y3JlYXRlKCkpCiB7CiAgICAgbV93b3JsZFN0YXRlLnN0b3JlKDApOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2hlYXAvSGVhcC5oCmluZGV4IDdhNTNlMDUxNWQwNjk2NTNkMDRmYjliYWMzNTU4ZDdlODFk
OTVmMmMuLjY4ZDkwNzRmZGYzZDhlYThmNDg3YjA2NDg3YjgwZDdhMmIxYjgwMzEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaGVhcC9IZWFwLmgKQEAgLTcyMiw4ICs3MjIsOCBAQCBwcml2YXRlOgogICAgIEF0
b21pYzx1bnNpZ25lZD4gbV93b3JsZFN0YXRlOwogICAgIGJvb2wgbV93b3JsZElzU3RvcHBlZCB7
IGZhbHNlIH07CiAgICAgTG9jayBtX3Zpc2l0UmFjZUxvY2s7Ci0gICAgTG9jayBtX21hcmtpbmdN
dXRleDsKLSAgICBDb25kaXRpb24gbV9tYXJraW5nQ29uZGl0aW9uVmFyaWFibGU7CisgICAgVW5j
aGVja2VkTG9jayBtX21hcmtpbmdNdXRleDsKKyAgICBVbmNoZWNrZWRDb25kaXRpb24gbV9tYXJr
aW5nQ29uZGl0aW9uVmFyaWFibGU7CiAKICAgICBNb25vdG9uaWNUaW1lIG1fYmVmb3JlR0M7CiAg
ICAgTW9ub3RvbmljVGltZSBtX2FmdGVyR0M7CkBAIC03NDYsNyArNzQ2LDcgQEAgcHJpdmF0ZToK
IAogICAgIHVpbnQ2NF90IG1fbXV0YXRvckV4ZWN1dGlvblZlcnNpb24geyAwIH07CiAgICAgdWlu
dDY0X3QgbV9waGFzZVZlcnNpb24geyAwIH07Ci0gICAgQm94PExvY2s+IG1fdGhyZWFkTG9jazsK
KyAgICBCb3g8VW5jaGVja2VkTG9jaz4gbV90aHJlYWRMb2NrOwogICAgIFJlZjxBdXRvbWF0aWNU
aHJlYWRDb25kaXRpb24+IG1fdGhyZWFkQ29uZGl0aW9uOyAvLyBUaGUgbXV0YXRvciBtdXN0IG5v
dCB3YWl0IG9uIHRoaXMuIEl0IHdvdWxkIGNhdXNlIGEgZGVhZGxvY2suCiAgICAgUmVmUHRyPEF1
dG9tYXRpY1RocmVhZD4gbV90aHJlYWQ7CiAKQEAgLTc2OCw4ICs3NjgsOCBAQCBwcml2YXRlOgog
I2VuZGlmCiAKICAgICBib29sIG1fcGFyYWxsZWxNYXJrZXJzU2hvdWxkRXhpdCB7IGZhbHNlIH07
Ci0gICAgTG9jayBtX2NvbGxlY3RDb250aW51b3VzbHlMb2NrOwotICAgIENvbmRpdGlvbiBtX2Nv
bGxlY3RDb250aW51b3VzbHlDb25kaXRpb247CisgICAgVW5jaGVja2VkTG9jayBtX2NvbGxlY3RD
b250aW51b3VzbHlMb2NrOworICAgIFVuY2hlY2tlZENvbmRpdGlvbiBtX2NvbGxlY3RDb250aW51
b3VzbHlDb25kaXRpb247CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hcmtlZFNwYWNlLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaGVhcC9NYXJrZWRTcGFjZS5oCmluZGV4IDViZTUxZGU3ZTRjZjk5YjNkNmY0Nzc3N2Yw
MGI2ZDJhOTdhYjgwNGYuLjI2OGI5NzBhNTk4YjQyNWI5ZmNlMzY3ZGIyZWJhZWE3MWViY2MzMWIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hcmtlZFNwYWNlLmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTWFya2VkU3BhY2UuaApAQCAtMTY4LDcgKzE2
OCw3IEBAIHB1YmxpYzoKICAgICAKICAgICBCbG9ja0RpcmVjdG9yeSogZmlyc3REaXJlY3Rvcnko
KSBjb25zdCB7IHJldHVybiBtX2RpcmVjdG9yaWVzLmZpcnN0KCk7IH0KICAgICAKLSAgICBMb2Nr
JiBkaXJlY3RvcnlMb2NrKCkgeyByZXR1cm4gbV9kaXJlY3RvcnlMb2NrOyB9CisgICAgVW5jaGVj
a2VkTG9jayYgZGlyZWN0b3J5TG9jaygpIHsgcmV0dXJuIG1fZGlyZWN0b3J5TG9jazsgfQogICAg
IHZvaWQgYWRkQmxvY2tEaXJlY3RvcnkoY29uc3QgQWJzdHJhY3RMb2NrZXImLCBCbG9ja0RpcmVj
dG9yeSopOwogICAgIAogICAgIC8vIFdoZW4gdGhpcyBpcyB0cnVlIGl0IG1lYW5zIHRoYXQgd2Ug
aGF2ZSBmbGlwcGVkIGJ1dCB0aGUgbWFyayBiaXRzIGhhdmVuJ3QgY29udmVyZ2VkIHlldC4KQEAg
LTIxNCw3ICsyMTQsNyBAQCBwcml2YXRlOgogICAgIEhlYXBWZXJzaW9uIG1fbmV3bHlBbGxvY2F0
ZWRWZXJzaW9uIHsgaW5pdGlhbFZlcnNpb24gfTsKICAgICBib29sIG1faXNJdGVyYXRpbmcgeyBm
YWxzZSB9OwogICAgIGJvb2wgbV9pc01hcmtpbmcgeyBmYWxzZSB9OwotICAgIExvY2sgbV9kaXJl
Y3RvcnlMb2NrOworICAgIFVuY2hlY2tlZExvY2sgbV9kaXJlY3RvcnlMb2NrOwogICAgIE1hcmtl
ZEJsb2NrU2V0IG1fYmxvY2tzOwogICAgIAogICAgIFNlbnRpbmVsTGlua2VkTGlzdDxXZWFrU2V0
LCBCYXNpY1Jhd1NlbnRpbmVsTm9kZTxXZWFrU2V0Pj4gbV9hY3RpdmVXZWFrU2V0czsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hcmtpbmdDb25zdHJhaW50U29sdmVy
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYXJraW5nQ29uc3RyYWludFNvbHZlci5o
CmluZGV4IDhlNGYyZjRkZGYzMWNmYzgwNzFjZjNiZWNiNmU1ZTI3OGFlY2IwMWUuLjM1MGU1NTY2
MjQyODRkYWJlNDczMTdmYzgwZDJmZGQ2YjlhNTg3N2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9oZWFwL01hcmtpbmdDb25zdHJhaW50U29sdmVyLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2hlYXAvTWFya2luZ0NvbnN0cmFpbnRTb2x2ZXIuaApAQCAtOTUsOCArOTUs
OCBAQCBwcml2YXRlOgogICAgIEJpdFZlY3RvciBtX2V4ZWN1dGVkOwogICAgIERlcXVlPFRhc2tX
aXRoQ29uc3RyYWludCwgMzI+IG1fdG9FeGVjdXRlSW5QYXJhbGxlbDsKICAgICBWZWN0b3I8dW5z
aWduZWQsIDMyPiBtX3RvRXhlY3V0ZVNlcXVlbnRpYWxseTsKLSAgICBMb2NrIG1fbG9jazsKLSAg
ICBDb25kaXRpb24gbV9jb25kaXRpb247CisgICAgVW5jaGVja2VkTG9jayBtX2xvY2s7CisgICAg
VW5jaGVja2VkQ29uZGl0aW9uIG1fY29uZGl0aW9uOwogICAgIGJvb2wgbV9waWNrTmV4dElzU3Rp
bGxBY3RpdmUgeyB0cnVlIH07CiAgICAgdW5zaWduZWQgbV9udW1UaHJlYWRzVGhhdE1heVByb2R1
Y2VXb3JrIHsgMCB9OwogICAgIFZlY3RvcjxWaXNpdENvdW50ZXIsIDE2PiBtX3Zpc2l0Q291bnRl
cnM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9TbG90VmlzaXRvci5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9TbG90VmlzaXRvci5jcHAKaW5kZXggZjlh
MTgzMjNjNzI4MzM0NzE5OGQ5Njg4OWRjNTlmNzQzNzhmMjA3Mi4uYWI3MzJjMjRlYzUwZTg5MDli
NDkxZWM5YjE2OWFmMzBmZWM4OTMzNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2hlYXAvU2xvdFZpc2l0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1Ns
b3RWaXNpdG9yLmNwcApAQCAtNDM2LDcgKzQzNiw3IEBAIHZvaWQgU2xvdFZpc2l0b3I6OmRvbmF0
ZUtub3duUGFyYWxsZWwoTWFya1N0YWNrQXJyYXkmIGZyb20sIE1hcmtTdGFja0FycmF5JiB0bykK
IAogICAgIC8vIElmIHdlJ3JlIGNvbnRlbmRpbmcgb24gdGhlIGxvY2ssIGJlIGNvbnNlcnZhdGl2
ZSBhbmQgYXNzdW1lIHRoYXQgYW5vdGhlcgogICAgIC8vIHRocmVhZCBpcyBhbHJlYWR5IGRvbmF0
aW5nLgotICAgIHN0ZDo6dW5pcXVlX2xvY2s8TG9jaz4gbG9jayhtX2hlYXAubV9tYXJraW5nTXV0
ZXgsIHN0ZDo6dHJ5X3RvX2xvY2spOworICAgIHN0ZDo6dW5pcXVlX2xvY2s8VW5jaGVja2VkTG9j
az4gbG9jayhtX2hlYXAubV9tYXJraW5nTXV0ZXgsIHN0ZDo6dHJ5X3RvX2xvY2spOwogICAgIGlm
ICghbG9jay5vd25zX2xvY2soKSkKICAgICAgICAgcmV0dXJuOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaGVhcC9TbG90VmlzaXRvci5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2hlYXAvU2xvdFZpc2l0b3IuaAppbmRleCA0MjMzM2FmM2UwMjAyNjdlNTM3ZTA5M2U0YjA2
MzMyMjFkZTNlNzNhLi5kNTVkYjYwMTdkZTczY2Y2YzJmMWNjY2Y0Y2YzY2Q1NDM4Mzk2NTM5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9TbG90VmlzaXRvci5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1Nsb3RWaXNpdG9yLmgKQEAgLTE2MSw3ICsxNjEs
NyBAQCBwdWJsaWM6CiAKICAgICBib29sIG11dGF0b3JJc1N0b3BwZWQoKSBjb25zdCBmaW5hbCB7
IHJldHVybiBtX211dGF0b3JJc1N0b3BwZWQ7IH0KICAgICAKLSAgICBMb2NrJiByaWdodFRvUnVu
KCkgeyByZXR1cm4gbV9yaWdodFRvUnVuOyB9CisgICAgVW5jaGVja2VkTG9jayYgcmlnaHRUb1J1
bigpIHsgcmV0dXJuIG1fcmlnaHRUb1J1bjsgfQogICAgIAogICAgIHZvaWQgdXBkYXRlTXV0YXRv
cklzU3RvcHBlZChjb25zdCBBYnN0cmFjdExvY2tlciYpOwogICAgIHZvaWQgdXBkYXRlTXV0YXRv
cklzU3RvcHBlZCgpOwpAQCAtMjMyLDcgKzIzMiw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX211
dGF0b3JJc1N0b3BwZWQgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9jYW5PcHRpbWl6ZUZvclN0b3Bw
ZWRNdXRhdG9yIHsgZmFsc2UgfTsKICAgICBib29sIG1faXNJblBhcmFsbGVsTW9kZSB7IGZhbHNl
IH07Ci0gICAgTG9jayBtX3JpZ2h0VG9SdW47CisgICAgVW5jaGVja2VkTG9jayBtX3JpZ2h0VG9S
dW47CiAgICAgCiAgICAgLy8gUHV0IHBhZGRpbmcgaGVyZSB0byBtaXRpZ2F0ZSBmYWxzZSBzaGFy
aW5nIGJldHdlZW4gbXVsdGlwbGUgU2xvdFZpc2l0b3JzLgogICAgIGNoYXIgcGFkZGluZ1s2NF07
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3JlbW90ZS9zb2Nr
ZXQvUmVtb3RlSW5zcGVjdG9yU29ja2V0RW5kcG9pbnQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9pbnNwZWN0b3IvcmVtb3RlL3NvY2tldC9SZW1vdGVJbnNwZWN0b3JTb2NrZXRFbmRwb2ludC5o
CmluZGV4IDI1YmMxOGNiNjhkODNkMmZiZmFiYmNkZjZkMzU0MTgyNzViOTYyMTguLjI0YTNlNThm
YzM2N2IzZjE5Mjk1MGZjNjhiZDdlZjkyZTg2OGUxZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL3NvY2tldC9SZW1vdGVJbnNwZWN0b3JTb2NrZXRF
bmRwb2ludC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL3Nv
Y2tldC9SZW1vdGVJbnNwZWN0b3JTb2NrZXRFbmRwb2ludC5oCkBAIC0xODIsNyArMTgyLDcgQEAg
cHJvdGVjdGVkOgogICAgIGJvb2wgaXNMaXN0ZW5pbmcoQ29ubmVjdGlvbklEKTsKICAgICBpbnQg
cG9sbGluZ1RpbWVvdXQoKTsKIAotICAgIG11dGFibGUgTG9jayBtX2Nvbm5lY3Rpb25zTG9jazsK
KyAgICBtdXRhYmxlIFVuY2hlY2tlZExvY2sgbV9jb25uZWN0aW9uc0xvY2s7CiAgICAgSGFzaE1h
cDxDb25uZWN0aW9uSUQsIHN0ZDo6dW5pcXVlX3B0cjxDbGllbnRDb25uZWN0aW9uPj4gbV9jbGll
bnRzOwogICAgIEhhc2hNYXA8Q29ubmVjdGlvbklELCBzdGQ6OnVuaXF1ZV9wdHI8TGlzdGVuZXJD
b25uZWN0aW9uPj4gbV9saXN0ZW5lcnM7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvRXhlY3V0YWJsZUFsbG9jYXRvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0V4ZWN1dGFibGVBbGxvY2F0b3IuY3BwCmluZGV4IDI3OWUwNzVlNGNiNjE3NzI5YzZlMmQ1
ZmVmZjk4NjI3YzcwNTJmMDEuLjYxOTQ1NWIxZjZkYmFjYTRhN2RkYWM3Y2JmNmQ5YzkyZmExNmNh
MmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvRXhlY3V0YWJsZUFsbG9j
YXRvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9FeGVjdXRhYmxlQWxsb2Nh
dG9yLmNwcApAQCAtNDg1LDcgKzQ4NSw3IEBAIHB1YmxpYzoKICNlbmRpZiAvLyBFTkFCTEUoSlVN
UF9JU0xBTkRTKQogICAgIH0KIAotICAgIExvY2smIGdldExvY2soKSB7IHJldHVybiBtX2xvY2s7
IH0KKyAgICBVbmNoZWNrZWRMb2NrJiBnZXRMb2NrKCkgeyByZXR1cm4gbV9sb2NrOyB9CiAKICAg
ICAvLyBOb24gYXRvbWljCiAgICAgc2l6ZV90IGJ5dGVzQWxsb2NhdGVkKCkgCkBAIC01NDcsNyAr
NTQ3LDcgQEAgcHVibGljOgogICAgIH0KIAogI2lmIEVOQUJMRShKVU1QX0lTTEFORFMpCi0gICAg
dm9pZCBoYW5kbGVXaWxsQmVSZWxlYXNlZChjb25zdCBMb2NrSG9sZGVyJiBsb2NrZXIsIE1ldGFB
bGxvY2F0b3JIYW5kbGUmIGhhbmRsZSkKKyAgICB2b2lkIGhhbmRsZVdpbGxCZVJlbGVhc2VkKGNv
bnN0IFVuY2hlY2tlZExvY2tIb2xkZXImIGxvY2tlciwgTWV0YUFsbG9jYXRvckhhbmRsZSYgaGFu
ZGxlKQogICAgIHsKICAgICAgICAgaWYgKG1faXNsYW5kc0Zvckp1bXBTb3VyY2VMb2NhdGlvbi5p
c0VtcHR5KCkpCiAgICAgICAgICAgICByZXR1cm47CkBAIC01OTksNyArNTk5LDcgQEAgcHJpdmF0
ZToKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICB9CiAKLSAgICB2b2lkIGZyZWVKdW1wSXNs
YW5kcyhjb25zdCBMb2NrSG9sZGVyJiwgSXNsYW5kcyogaXNsYW5kcykKKyAgICB2b2lkIGZyZWVK
dW1wSXNsYW5kcyhjb25zdCBVbmNoZWNrZWRMb2NrSG9sZGVyJiwgSXNsYW5kcyogaXNsYW5kcykK
ICAgICB7CiAgICAgICAgIGZvciAoQ29kZUxvY2F0aW9uTGFiZWw8RXhlY3V0YWJsZU1lbW9yeVB0
clRhZz4ganVtcElzbGFuZCA6IGlzbGFuZHMtPmp1bXBJc2xhbmRzKSB7CiAgICAgICAgICAgICB1
aW50cHRyX3QgdW50YWdnZWRKdW1wSXNsYW5kID0gYml0d2lzZV9jYXN0PHVpbnRwdHJfdD4oanVt
cElzbGFuZC5kYXRhTG9jYXRpb24oKSk7CkBAIC02MTAsMTQgKzYxMCwxNCBAQCBwcml2YXRlOgog
ICAgICAgICBpc2xhbmRzLT5qdW1wSXNsYW5kcy5jbGVhcigpOwogICAgIH0KIAotICAgIHZvaWQg
ZnJlZUlzbGFuZHMoY29uc3QgTG9ja0hvbGRlciYgbG9ja2VyLCBJc2xhbmRzKiBpc2xhbmRzKQor
ICAgIHZvaWQgZnJlZUlzbGFuZHMoY29uc3QgVW5jaGVja2VkTG9ja0hvbGRlciYgbG9ja2VyLCBJ
c2xhbmRzKiBpc2xhbmRzKQogICAgIHsKICAgICAgICAgZnJlZUp1bXBJc2xhbmRzKGxvY2tlciwg
aXNsYW5kcyk7CiAgICAgICAgIG1faXNsYW5kc0Zvckp1bXBTb3VyY2VMb2NhdGlvbi5yZW1vdmUo
aXNsYW5kcyk7CiAgICAgICAgIGRlbGV0ZSBpc2xhbmRzOwogICAgIH0KIAotICAgIHZvaWQqIGlz
bGFuZEZvckp1bXBMb2NhdGlvbihjb25zdCBMb2NrSG9sZGVyJiBsb2NrZXIsIHVpbnRwdHJfdCBq
dW1wTG9jYXRpb24sIHVpbnRwdHJfdCB0YXJnZXQsIGJvb2wgY29uY3VycmVudGx5KQorICAgIHZv
aWQqIGlzbGFuZEZvckp1bXBMb2NhdGlvbihjb25zdCBVbmNoZWNrZWRMb2NrSG9sZGVyJiBsb2Nr
ZXIsIHVpbnRwdHJfdCBqdW1wTG9jYXRpb24sIHVpbnRwdHJfdCB0YXJnZXQsIGJvb2wgY29uY3Vy
cmVudGx5KQogICAgIHsKICAgICAgICAgSXNsYW5kcyogaXNsYW5kcyA9IG1faXNsYW5kc0Zvckp1
bXBTb3VyY2VMb2NhdGlvbi5maW5kRXhhY3QoYml0d2lzZV9jYXN0PHZvaWQqPihqdW1wTG9jYXRp
b24pKTsKICAgICAgICAgaWYgKGlzbGFuZHMpIHsKQEAgLTc0Niw3ICs3NDYsNyBAQCBwcml2YXRl
OgogICAgICAgICAgICAgcmV0dXJuIGlzbGFuZHNQZXJQYWdlOwogICAgICAgICB9CiAKLSAgICAg
ICAgdm9pZCByZWxlYXNlKGNvbnN0IExvY2tIb2xkZXImIGxvY2tlciwgTWV0YUFsbG9jYXRvckhh
bmRsZSYgaGFuZGxlKSBmaW5hbAorICAgICAgICB2b2lkIHJlbGVhc2UoY29uc3QgVW5jaGVja2Vk
TG9ja0hvbGRlciYgbG9ja2VyLCBNZXRhQWxsb2NhdG9ySGFuZGxlJiBoYW5kbGUpIGZpbmFsCiAg
ICAgICAgIHsKICAgICAgICAgICAgIG1fZml4ZWRBbGxvY2F0b3IuaGFuZGxlV2lsbEJlUmVsZWFz
ZWQobG9ja2VyLCBoYW5kbGUpOwogICAgICAgICAgICAgQmFzZTo6cmVsZWFzZShsb2NrZXIsIGhh
bmRsZSk7CkBAIC04NDcsNyArODQ3LDcgQEAgcHJpdmF0ZToKICAgICB9OwogI2VuZGlmIC8vIEVO
QUJMRShKVU1QX0lTTEFORFMpCiAKLSAgICBMb2NrIG1fbG9jazsKKyAgICBVbmNoZWNrZWRMb2Nr
IG1fbG9jazsKICAgICBQYWdlUmVzZXJ2YXRpb24gbV9yZXNlcnZhdGlvbjsKICNpZiBFTkFCTEUo
SlVNUF9JU0xBTkRTKQogICAgIHN0ZDo6YXJyYXk8UmVnaW9uQWxsb2NhdG9yLCBtYXhOdW1iZXJP
ZlJlZ2lvbnM+IG1fYWxsb2NhdG9yczsKQEAgLTk2MSw3ICs5NjEsNyBAQCBib29sIEV4ZWN1dGFi
bGVBbGxvY2F0b3I6OmlzVmFsaWRFeGVjdXRhYmxlTWVtb3J5KGNvbnN0IEFic3RyYWN0TG9ja2Vy
JiBsb2NrZXIsCiAgICAgcmV0dXJuIGFsbG9jYXRvci0+aXNJbkFsbG9jYXRlZE1lbW9yeShsb2Nr
ZXIsIGFkZHJlc3MpOwogfQogCi1Mb2NrJiBFeGVjdXRhYmxlQWxsb2NhdG9yOjpnZXRMb2NrKCkg
Y29uc3QKK1VuY2hlY2tlZExvY2smIEV4ZWN1dGFibGVBbGxvY2F0b3I6OmdldExvY2soKSBjb25z
dAogewogICAgIEZpeGVkVk1Qb29sRXhlY3V0YWJsZUFsbG9jYXRvciogYWxsb2NhdG9yID0gZ19q
c2NDb25maWcuZml4ZWRWTVBvb2xFeGVjdXRhYmxlQWxsb2NhdG9yOwogICAgIGlmICghYWxsb2Nh
dG9yKQpAQCAtMTAzOCw3ICsxMDM4LDcgQEAgdm9pZCBkdW1wSklUTWVtb3J5KGNvbnN0IHZvaWQq
IGRzdCwgY29uc3Qgdm9pZCogc3JjLCBzaXplX3Qgc2l6ZSkKICAgICBzdGF0aWMgdWludDhfdCog
YnVmZmVyOwogICAgIHN0YXRpYyBjb25zdGV4cHIgc2l6ZV90IGJ1ZmZlclNpemUgPSBmaXhlZEV4
ZWN1dGFibGVNZW1vcnlQb29sU2l6ZTsKICAgICBzdGF0aWMgc2l6ZV90IG9mZnNldCA9IDA7Ci0g
ICAgc3RhdGljIExvY2sgZHVtcEpJVE1lbW9yeUxvY2s7CisgICAgc3RhdGljIFVuY2hlY2tlZExv
Y2sgZHVtcEpJVE1lbW9yeUxvY2s7CiAgICAgc3RhdGljIGJvb2wgbmVlZHNUb0ZsdXNoID0gZmFs
c2U7CiAgICAgc3RhdGljIGF1dG8gZmx1c2ggPSBbXShjb25zdCBBYnN0cmFjdExvY2tlciYpIHsK
ICAgICAgICAgaWYgKGZkID09IC0xKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0V4ZWN1dGFibGVBbGxvY2F0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
RXhlY3V0YWJsZUFsbG9jYXRvci5oCmluZGV4IDRmZmM0ODBlNDI0MDRkYzY2YjVlMjUxNDU3NzJi
YmNiMDlkNWYzNjguLjAzNzk5ZTQyN2IwOTdkNjRmZDk4Y2I4Zjk1YTY4YTkyNTE2ZjhhNTcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvRXhlY3V0YWJsZUFsbG9jYXRvci5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvRXhlY3V0YWJsZUFsbG9jYXRvci5oCkBA
IC03Nyw3ICs3Nyw3IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBzaXplX3QgY29tbWl0dGVkQnl0
ZUNvdW50KCkgeyByZXR1cm4gMDsgfQogCi0gICAgTG9jayYgZ2V0TG9jaygpIGNvbnN0CisgICAg
VW5jaGVja2VkTG9jayYgZ2V0TG9jaygpIGNvbnN0CiAgICAgewogICAgICAgICByZXR1cm4gbV9s
b2NrOwogICAgIH0KQEAgLTg3LDcgKzg3LDcgQEAgcHJvdGVjdGVkOgogICAgIH5FeGVjdXRhYmxl
QWxsb2NhdG9yQmFzZSgpID0gZGVmYXVsdDsKIAogcHJpdmF0ZToKLSAgICBtdXRhYmxlIExvY2sg
bV9sb2NrOworICAgIG11dGFibGUgVW5jaGVja2VkTG9jayBtX2xvY2s7CiB9OwogCiAjaWYgRU5B
QkxFKEpJVCkKQEAgLTE3Niw3ICsxNzYsNyBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgc2l6ZV90
IGNvbW1pdHRlZEJ5dGVDb3VudCgpOwogCi0gICAgTG9jayYgZ2V0TG9jaygpIGNvbnN0OworICAg
IFVuY2hlY2tlZExvY2smIGdldExvY2soKSBjb25zdDsKIAogI2lmIEVOQUJMRShKVU1QX0lTTEFO
RFMpCiAgICAgSlNfRVhQT1JUX1BSSVZBVEUgdm9pZCogZ2V0SnVtcElzbGFuZFRvKHZvaWQqIGZy
b20sIHZvaWQqIG5ld0Rlc3RpbmF0aW9uKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklUV29ya2xpc3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRX
b3JrbGlzdC5jcHAKaW5kZXggYTcwNTJlNzlmMGE3NDM2N2ZlM2ZkYzVhM2NmNmQ1MzhlNjkzMjAw
ZS4uYTk2ODk3NGJkNmE5ODIzYjkwYWFkYzQ0YTQxNGE1MzdhOTAzY2Y3YSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRXb3JrbGlzdC5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9KSVRXb3JrbGlzdC5jcHAKQEAgLTE2NSw3ICsxNjUsNyBAQCBwcml2
YXRlOgogfTsKIAogSklUV29ya2xpc3Q6OkpJVFdvcmtsaXN0KCkKLSAgICA6IG1fbG9jayhCb3g8
TG9jaz46OmNyZWF0ZSgpKQorICAgIDogbV9sb2NrKEJveDxVbmNoZWNrZWRMb2NrPjo6Y3JlYXRl
KCkpCiAgICAgLCBtX2NvbmRpdGlvbihBdXRvbWF0aWNUaHJlYWRDb25kaXRpb246OmNyZWF0ZSgp
KQogewogICAgIExvY2tlciBsb2NrZXIgeyAqbV9sb2NrIH07CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0pJVFdvcmtsaXN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0pJVFdvcmtsaXN0LmgKaW5kZXggYjlmNzdjYTFiM2RkZWZhNjE0OGIxMzY5NDJkNTdhMDlk
NjVlYTdhMy4uYTcyYTgzODcwYTAwODJmY2QzNDQ5NTI5MGVhNTBlYTE0MGQ4OWYyZiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRXb3JrbGlzdC5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUV29ya2xpc3QuaApAQCAtNzEsNyArNzEsNyBAQCBwcml2
YXRlOgogICAgIFBsYW5zIG1fcGxhbnM7CiAgICAgSGFzaFNldDxDb2RlQmxvY2sqPiBtX3BsYW5u
ZWQ7CiAgICAgCi0gICAgQm94PExvY2s+IG1fbG9jazsKKyAgICBCb3g8VW5jaGVja2VkTG9jaz4g
bV9sb2NrOwogICAgIFJlZjxBdXRvbWF0aWNUaHJlYWRDb25kaXRpb24+IG1fY29uZGl0aW9uOyAv
LyBXZSB1c2UgT25lIFRydWUgQ29uZGl0aW9uIGZvciBldmVyeXRoaW5nIGJlY2F1c2UgdGhhdCdz
IGVhc2llci4KICAgICBSZWZQdHI8QXV0b21hdGljVGhyZWFkPiBtX3RocmVhZDsKICAgICAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2pzYy5jcHAKaW5kZXggZDNhMjgxMTI3MDgwNTgxZjBlZDE1YjRmMzg1ODg1NTBjZjNl
ZTZlZS4uYWQxNTVlNmU4MjdjYzBkM2NhZjdjNTcyNjVmMGRiYzMyNTFiNTYxZSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2pzYy5jcHAKQEAgLTI1Nyw4ICsyNTcsOCBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIGZy
aWVuZCBjbGFzcyBXb3JrZXI7CiAgICAgCi0gICAgTG9jayBtX2xvY2s7Ci0gICAgQ29uZGl0aW9u
IG1fY29uZGl0aW9uOworICAgIFVuY2hlY2tlZExvY2sgbV9sb2NrOworICAgIFVuY2hlY2tlZENv
bmRpdGlvbiBtX2NvbmRpdGlvbjsKICAgICBTZW50aW5lbExpbmtlZExpc3Q8V29ya2VyLCBCYXNp
Y1Jhd1NlbnRpbmVsTm9kZTxXb3JrZXI+PiBtX3dvcmtlcnM7CiAgICAgRGVxdWU8U3RyaW5nPiBt
X3JlcG9ydHM7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVy
L1Byb2ZpbGVyRGF0YWJhc2UuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9m
aWxlckRhdGFiYXNlLmgKaW5kZXggYWU3ODVlNGUzZGNiN2MzZTA4MDI4N2JiNDU5OTdhMTMyYzI4
NWRkMy4uMmE4NzhjOTQ2YjY1MzQwZTc5MTM5YmUyMjM3NWM1MDYxNmE5YjJlMiAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVyRGF0YWJhc2UuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZXJEYXRhYmFzZS5oCkBAIC04
OCw3ICs4OCw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX3Nob3VsZFNhdmVBdEV4aXQ7CiAgICAg
Q1N0cmluZyBtX2F0RXhpdFNhdmVGaWxlbmFtZTsKICAgICBEYXRhYmFzZSogbV9uZXh0UmVnaXN0
ZXJlZERhdGFiYXNlOwotICAgIExvY2sgbV9sb2NrOworICAgIFVuY2hlY2tlZExvY2sgbV9sb2Nr
OwogfTsKIAogfSB9IC8vIG5hbWVzcGFjZSBKU0M6OlByb2ZpbGVyCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db25jdXJyZW50SlNMb2NrLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9Db25jdXJyZW50SlNMb2NrLmgKaW5kZXggYWEyNzNiYWRiZWZh
NzM3YTBlYWE1MzRmYmViYTlmNTAxZmRiODYyNy4uODYzMTE3ZDg5MTVjNDNlNGE2NzcyMDgyYjli
YzU1YjM5YTJkMWNhMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
Q29uY3VycmVudEpTTG9jay5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Nv
bmN1cnJlbnRKU0xvY2suaApAQCAtMzIsOCArMzIsOCBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAot
dXNpbmcgQ29uY3VycmVudEpTTG9jayA9IExvY2s7Ci11c2luZyBDb25jdXJyZW50SlNMb2NrZXJJ
bXBsID0gTG9ja0hvbGRlcjsKK3VzaW5nIENvbmN1cnJlbnRKU0xvY2sgPSBVbmNoZWNrZWRMb2Nr
OwordXNpbmcgQ29uY3VycmVudEpTTG9ja2VySW1wbCA9IFVuY2hlY2tlZExvY2tIb2xkZXI7CiAK
IHN0YXRpY19hc3NlcnQoc2l6ZW9mKENvbmN1cnJlbnRKU0xvY2spID09IDEsICJSZWdhcmRsZXNz
IG9mIHN0YXR1cyBvZiBjb25jdXJyZW50IEpTIGZsYWcsIHNpemUgb2YgQ29udXJyZW50SlNMb2Nr
IGlzIGFsd2F5cyBvbmUgYnl0ZS4iKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvRGVmZXJyZWRXb3JrVGltZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0RlZmVycmVkV29ya1RpbWVyLmgKaW5kZXggNmM5OGNhYWY1ODFiMWNmYzAxYWExOTEx
NzE0YjNkYjI3YmRmMDIxNy4uZWYwZWFjNzMwYjQyMmY3MGMyMGE2OGI1YzllOTY0ODY4NzZhMDEz
ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGVmZXJyZWRXb3Jr
VGltZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EZWZlcnJlZFdvcmtU
aW1lci5oCkBAIC03Miw3ICs3Miw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgRGVmZXJyZWRX
b3JrVGltZXIoVk0mKTsKIAotICAgIExvY2sgbV90YXNrTG9jazsKKyAgICBVbmNoZWNrZWRMb2Nr
IG1fdGFza0xvY2s7CiAgICAgYm9vbCBtX3J1blRhc2tzIHsgdHJ1ZSB9OwogICAgIGJvb2wgbV9z
aG91bGRTdG9wUnVuTG9vcFdoZW5BbGxUaWNrZXRzRmluaXNoIHsgZmFsc2UgfTsKICAgICBib29s
IG1fY3VycmVudGx5UnVubmluZ1Rhc2sgeyBmYWxzZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNMb2NrLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0xvY2suaAppbmRleCAyZTAyYmEzZDY0MDVlZTcyZGQ0YWRlMGJhNjdjYjk1OGYxYTY0
NjBiLi5hOTkxZGY1MGIxYzM3MjI2ZTVmMTI5OTBlNDBiNjdiMTBiMTk5YzI5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0xvY2suaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0xvY2suaApAQCAtMTM4LDcgKzEzOCw3IEBAIHByaXZhdGU6
CiAgICAgdW5zaWduZWQgZHJvcEFsbExvY2tzKERyb3BBbGxMb2NrcyopOwogICAgIHZvaWQgZ3Jh
YkFsbExvY2tzKERyb3BBbGxMb2NrcyosIHVuc2lnbmVkIGxvY2tDb3VudCk7CiAKLSAgICBMb2Nr
IG1fbG9jazsKKyAgICBVbmNoZWNrZWRMb2NrIG1fbG9jazsKICAgICBib29sIG1faXNXZWJUaHJl
YWRBd2FyZSB7IGZhbHNlIH07CiAgICAgLy8gV2UgY2Fubm90IG1ha2UgbV9vd25lclRocmVhZCBh
biBvcHRpb25hbCAoaW5zdGVhZCBvZiBwYWlyaW5nIGl0IHdpdGggYW4gZXhwbGljaXQKICAgICAv
LyBtX2hhc093bmVyVGhyZWFkKSBiZWNhdXNlIGN1cnJlbnRUaHJlYWRJc0hvbGRpbmdMb2NrKCkg
bWF5IGJlIGNhbGxlZCBmcm9tIGEKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1NhbXBsaW5nUHJvZmlsZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvU2FtcGxpbmdQcm9maWxlci5jcHAKaW5kZXggZDcxZjNlYzE5ZmYzNjc0Njc3MDdmZTUyYjg4
MDI0YzU2MjdhMTRhZC4uZTUzMTEyZDE4OGY3Y2NiOTBkMGFlNzg0MTQyNTAxZDI0NWM1ZTgzNSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2FtcGxpbmdQcm9maWxl
ci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2FtcGxpbmdQcm9maWxl
ci5jcHAKQEAgLTc1LDcgKzc1LDcgQEAgQUxXQVlTX0lOTElORSBzdGF0aWMgdm9pZCByZXBvcnRT
dGF0cygpCiAKIGNsYXNzIEZyYW1lV2Fsa2VyIHsKIHB1YmxpYzoKLSAgICBGcmFtZVdhbGtlcihW
TSYgdm0sIENhbGxGcmFtZSogY2FsbEZyYW1lLCBjb25zdCBBYnN0cmFjdExvY2tlciYgY29kZUJs
b2NrU2V0TG9ja2VyLCBjb25zdCBBYnN0cmFjdExvY2tlciYgbWFjaGluZVRocmVhZHNMb2NrZXIs
IGNvbnN0IE9wdGlvbmFsPExvY2tIb2xkZXI+JiB3YXNtQ2FsbGVlTG9ja2VyKQorICAgIEZyYW1l
V2Fsa2VyKFZNJiB2bSwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIGNvbnN0IEFic3RyYWN0TG9ja2Vy
JiBjb2RlQmxvY2tTZXRMb2NrZXIsIGNvbnN0IEFic3RyYWN0TG9ja2VyJiBtYWNoaW5lVGhyZWFk
c0xvY2tlciwgY29uc3QgT3B0aW9uYWw8VW5jaGVja2VkTG9ja0hvbGRlcj4mIHdhc21DYWxsZWVM
b2NrZXIpCiAgICAgICAgIDogbV92bSh2bSkKICAgICAgICAgLCBtX2NhbGxGcmFtZShjYWxsRnJh
bWUpCiAgICAgICAgICwgbV9lbnRyeUZyYW1lKHZtLnRvcEVudHJ5RnJhbWUpCkBAIC0yMDEsNyAr
MjAxLDcgQEAgcHJvdGVjdGVkOgogICAgIEVudHJ5RnJhbWUqIG1fZW50cnlGcmFtZTsKICAgICBj
b25zdCBBYnN0cmFjdExvY2tlciYgbV9jb2RlQmxvY2tTZXRMb2NrZXI7CiAgICAgY29uc3QgQWJz
dHJhY3RMb2NrZXImIG1fbWFjaGluZVRocmVhZHNMb2NrZXI7Ci0gICAgY29uc3QgT3B0aW9uYWw8
TG9ja0hvbGRlcj4mIG1fd2FzbUNhbGxlZUxvY2tlcjsKKyAgICBjb25zdCBPcHRpb25hbDxVbmNo
ZWNrZWRMb2NrSG9sZGVyPiYgbV93YXNtQ2FsbGVlTG9ja2VyOwogICAgIGJvb2wgbV9iYWlsaW5n
T3V0IHsgZmFsc2UgfTsKICAgICBzaXplX3QgbV9kZXB0aCB7IDAgfTsKIH07CkBAIC0yMTAsNyAr
MjEwLDcgQEAgY2xhc3MgQ0ZyYW1lV2Fsa2VyIDogcHVibGljIEZyYW1lV2Fsa2VyIHsKIHB1Ymxp
YzoKICAgICB0eXBlZGVmIEZyYW1lV2Fsa2VyIEJhc2U7CiAKLSAgICBDRnJhbWVXYWxrZXIoVk0m
IHZtLCB2b2lkKiBtYWNoaW5lRnJhbWUsIENhbGxGcmFtZSogY2FsbEZyYW1lLCBjb25zdCBBYnN0
cmFjdExvY2tlciYgY29kZUJsb2NrU2V0TG9ja2VyLCBjb25zdCBBYnN0cmFjdExvY2tlciYgbWFj
aGluZVRocmVhZHNMb2NrZXIsIGNvbnN0IE9wdGlvbmFsPExvY2tIb2xkZXI+JiB3YXNtQ2FsbGVl
TG9ja2VyKQorICAgIENGcmFtZVdhbGtlcihWTSYgdm0sIHZvaWQqIG1hY2hpbmVGcmFtZSwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUsIGNvbnN0IEFic3RyYWN0TG9ja2VyJiBjb2RlQmxvY2tTZXRMb2Nr
ZXIsIGNvbnN0IEFic3RyYWN0TG9ja2VyJiBtYWNoaW5lVGhyZWFkc0xvY2tlciwgY29uc3QgT3B0
aW9uYWw8VW5jaGVja2VkTG9ja0hvbGRlcj4mIHdhc21DYWxsZWVMb2NrZXIpCiAgICAgICAgIDog
QmFzZSh2bSwgY2FsbEZyYW1lLCBjb2RlQmxvY2tTZXRMb2NrZXIsIG1hY2hpbmVUaHJlYWRzTG9j
a2VyLCB3YXNtQ2FsbGVlTG9ja2VyKQogICAgICAgICAsIG1fbWFjaGluZUZyYW1lKG1hY2hpbmVG
cmFtZSkKICAgICB7CkBAIC0zNTMsNyArMzUzLDcgQEAgdm9pZCBTYW1wbGluZ1Byb2ZpbGVyOjp0
YWtlU2FtcGxlKGNvbnN0IEFic3RyYWN0TG9ja2VyJiwgU2Vjb25kcyYgc3RhY2tUcmFjZVByb2MK
ICAgICAgICAgTG9ja2VyIG1hY2hpbmVUaHJlYWRzTG9ja2VyIHsgbV92bS5oZWFwLm1hY2hpbmVU
aHJlYWRzKCkuZ2V0TG9jaygpIH07CiAgICAgICAgIExvY2tlciBjb2RlQmxvY2tTZXRMb2NrZXIg
eyBtX3ZtLmhlYXAuY29kZUJsb2NrU2V0KCkuZ2V0TG9jaygpIH07CiAgICAgICAgIExvY2tlciBl
eGVjdXRhYmxlQWxsb2NhdG9yTG9ja2VyIHsgRXhlY3V0YWJsZUFsbG9jYXRvcjo6c2luZ2xldG9u
KCkuZ2V0TG9jaygpIH07Ci0gICAgICAgIE9wdGlvbmFsPExvY2tIb2xkZXI+IHdhc21DYWxsZWVz
TG9ja2VyOworICAgICAgICBPcHRpb25hbDxVbmNoZWNrZWRMb2NrSG9sZGVyPiB3YXNtQ2FsbGVl
c0xvY2tlcjsKICNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCiAgICAgICAgIGlmIChXYXNtOjppc1N1
cHBvcnRlZCgpKQogICAgICAgICAgICAgd2FzbUNhbGxlZXNMb2NrZXIgPSBMb2NrZXIgeyBXYXNt
OjpDYWxsZWVSZWdpc3RyeTo6c2luZ2xldG9uKCkuZ2V0TG9jaygpIH07CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TYW1wbGluZ1Byb2ZpbGVyLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9TYW1wbGluZ1Byb2ZpbGVyLmgKaW5kZXggNjUxNzA3YTk0
NmYxNjFkZWE2Zjk4OGFiNWRkZTQ4YjMyYzc1YzdlZC4uOWYwNTcyNmE0ZTgwNGZjYjM1MzczNmEy
ZWQxZDY0MGI3NjRjOTRkYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvU2FtcGxpbmdQcm9maWxlci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1NhbXBsaW5nUHJvZmlsZXIuaApAQCAtMTcyLDcgKzE3Miw3IEBAIHB1YmxpYzoKICAgICB2b2lk
IG5vdGljZVZNRW50cnkoKTsKICAgICB2b2lkIHNodXRkb3duKCk7CiAgICAgdGVtcGxhdGU8dHlw
ZW5hbWUgVmlzaXRvcj4gdm9pZCB2aXNpdChWaXNpdG9yJik7Ci0gICAgTG9jayYgZ2V0TG9jaygp
IHsgcmV0dXJuIG1fbG9jazsgfQorICAgIFVuY2hlY2tlZExvY2smIGdldExvY2soKSB7IHJldHVy
biBtX2xvY2s7IH0KICAgICB2b2lkIHNldFRpbWluZ0ludGVydmFsKFNlY29uZHMgaW50ZXJ2YWwp
IHsgbV90aW1pbmdJbnRlcnZhbCA9IGludGVydmFsOyB9CiAgICAgSlNfRVhQT1JUX1BSSVZBVEUg
dm9pZCBzdGFydCgpOwogICAgIHZvaWQgc3RhcnQoY29uc3QgQWJzdHJhY3RMb2NrZXImKTsKQEAg
LTIwMCw3ICsyMDAsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgdGltZXJMb29wKCk7CiAgICAgdm9p
ZCB0YWtlU2FtcGxlKGNvbnN0IEFic3RyYWN0TG9ja2VyJiwgU2Vjb25kcyYgc3RhY2tUcmFjZVBy
b2Nlc3NpbmdUaW1lKTsKIAotICAgIExvY2sgbV9sb2NrOworICAgIFVuY2hlY2tlZExvY2sgbV9s
b2NrOwogICAgIGJvb2wgbV9pc1BhdXNlZDsKICAgICBib29sIG1faXNTaHV0RG93bjsKICAgICBi
b29sIG1fbmVlZHNSZXBvcnRBdEV4aXQgeyBmYWxzZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1ZNLmgKaW5kZXggZjhlOGQzZjU0N2U0ZmRlNjEzNGMzOGE4NjJkMmYyNWQ2MmEzMzFlMi4uYTFh
YjIyMzIxNjk4ZTU3MDAyOTk0NzM1MTRiZmEwNDFmODhkY2M1NCAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9WTS5oCkBAIC0xMDA0LDcgKzEwMDQsNyBAQCBwdWJsaWM6CiAjaWYgRU5BQkxFKFlB
UlJfSklUX0FMTF9QQVJFTlNfRVhQUkVTU0lPTlMpCiAgICAgc3RhdGljIGNvbnN0ZXhwciBzaXpl
X3QgcGF0dGVybkNvbnRleHRCdWZmZXJTaXplID0gODE5MjsgLy8gU3BhY2UgYWxsb2NhdGVkIHRv
IHNhdmUgbmVzdGVkIHBhcmVudGhlc2lzIGNvbnRleHQKICAgICBVbmlxdWVBcnJheTxjaGFyPiBt
X3JlZ0V4cFBhdHRlcm5Db250ZXhCdWZmZXI7Ci0gICAgTG9jayBtX3JlZ0V4cFBhdHRlcm5Db250
ZXh0TG9jazsKKyAgICBVbmNoZWNrZWRMb2NrIG1fcmVnRXhwUGF0dGVybkNvbnRleHRMb2NrOwog
ICAgIGNoYXIqIGFjcXVpcmVSZWdFeHBQYXR0ZXJuQ29udGV4QnVmZmVyKCk7CiAgICAgdm9pZCBy
ZWxlYXNlUmVnRXhwUGF0dGVybkNvbnRleEJ1ZmZlcigpOwogI2Vsc2UKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNVHJhcHMuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvVk1UcmFwcy5jcHAKaW5kZXggOWI0NDA2YjExNTYzZGFmNTczOWViMzM4
YWY4MjU5YTVlMThhNDE1OS4uNTdkYjMxOWNlY2ZiNzM3MTk3ZTI2ZDljZGQyZGI3YTU4YmIwOGM2
NyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk1UcmFwcy5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk1UcmFwcy5jcHAKQEAgLTE2Myw3
ICsxNjMsNyBAQCB2b2lkIFZNVHJhcHM6OmludmFsaWRhdGVDb2RlQmxvY2tzT25TdGFjayhDYWxs
RnJhbWUqIHRvcENhbGxGcmFtZSkKICAgICBpbnZhbGlkYXRlQ29kZUJsb2Nrc09uU3RhY2soY29k
ZUJsb2NrU2V0TG9ja2VyLCB0b3BDYWxsRnJhbWUpOwogfQogICAgIAotdm9pZCBWTVRyYXBzOjpp
bnZhbGlkYXRlQ29kZUJsb2Nrc09uU3RhY2soTG9ja2VyPExvY2s+JiwgQ2FsbEZyYW1lKiB0b3BD
YWxsRnJhbWUpCit2b2lkIFZNVHJhcHM6OmludmFsaWRhdGVDb2RlQmxvY2tzT25TdGFjayhMb2Nr
ZXI8VW5jaGVja2VkTG9jaz4mLCBDYWxsRnJhbWUqIHRvcENhbGxGcmFtZSkKIHsKICAgICBpZiAo
IW1fbmVlZFRvSW52YWxpZGF0ZWRDb2RlQmxvY2tzKQogICAgICAgICByZXR1cm47CkBAIC00Mzcs
NyArNDM3LDcgQEAgdm9pZCBWTVRyYXBzOjp1bmRvRGVmZXJUZXJtaW5hdGlvblNsb3coRGVmZXJB
Y3Rpb24gZGVmZXJBY3Rpb24pCiB9CiAKIFZNVHJhcHM6OlZNVHJhcHMoKQotICAgIDogbV9sb2Nr
KEJveDxMb2NrPjo6Y3JlYXRlKCkpCisgICAgOiBtX2xvY2soQm94PFVuY2hlY2tlZExvY2s+Ojpj
cmVhdGUoKSkKICAgICAsIG1fY29uZGl0aW9uKEF1dG9tYXRpY1RocmVhZENvbmRpdGlvbjo6Y3Jl
YXRlKCkpCiB7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9W
TVRyYXBzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTVRyYXBzLmgKaW5kZXgg
MGFmNTliYzk1YzE2ZjkyZDM0ZTU0YTYyMmIyNDJiODdjNTg0ZmQ2NS4uNWQxNWM5MmY3MDQxNzUx
ZDgwNGU0YzU3MmE1NTMwMTA3YmZlNDJkYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvVk1UcmFwcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1ZNVHJhcHMuaApAQCAtMjM2LDcgKzIzNiw3IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIGludmFs
aWRhdGVDb2RlQmxvY2tzT25TdGFjaygpOwogICAgIHZvaWQgaW52YWxpZGF0ZUNvZGVCbG9ja3NP
blN0YWNrKENhbGxGcmFtZSogdG9wQ2FsbEZyYW1lKTsKLSAgICB2b2lkIGludmFsaWRhdGVDb2Rl
QmxvY2tzT25TdGFjayhMb2NrZXI8TG9jaz4mIGNvZGVCbG9ja1NldExvY2tlciwgQ2FsbEZyYW1l
KiB0b3BDYWxsRnJhbWUpOworICAgIHZvaWQgaW52YWxpZGF0ZUNvZGVCbG9ja3NPblN0YWNrKExv
Y2tlcjxVbmNoZWNrZWRMb2NrPiYgY29kZUJsb2NrU2V0TG9ja2VyLCBDYWxsRnJhbWUqIHRvcENh
bGxGcmFtZSk7CiAKICAgICB2b2lkIGFkZFNpZ25hbFNlbmRlcihTaWduYWxTZW5kZXIqKTsKICAg
ICB2b2lkIHJlbW92ZVNpZ25hbFNlbmRlcihTaWduYWxTZW5kZXIqKTsKQEAgLTI0Nyw3ICsyNDcs
NyBAQCBwcml2YXRlOgogCiAgICAgc3RhdGljIGNvbnN0ZXhwciBCaXRGaWVsZCBOZWVkRXhjZXB0
aW9uSGFuZGxpbmdNYXNrID0gfigxIDw8IE5lZWRFeGNlcHRpb25IYW5kbGluZyk7CiAKLSAgICBC
b3g8TG9jaz4gbV9sb2NrOworICAgIEJveDxVbmNoZWNrZWRMb2NrPiBtX2xvY2s7CiAgICAgUmVm
PEF1dG9tYXRpY1RocmVhZENvbmRpdGlvbj4gbV9jb25kaXRpb247CiAgICAgQXRvbWljPEJpdEZp
ZWxkPiBtX3RyYXBCaXRzIHsgMCB9OwogICAgIGJvb2wgbV9uZWVkVG9JbnZhbGlkYXRlZENvZGVC
bG9ja3MgeyBmYWxzZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xz
L0Z1bmN0aW9uT3ZlcnJpZGVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdG9vbHMvRnVuY3Rp
b25PdmVycmlkZXMuaAppbmRleCA4ODI5NjcwMDczZGRmOWQ2ZDQ5Y2VlZjIwOGI2MzhjNzEzZjRl
ZDY5Li43NmE4MTNkNDhiM2Q0NTM1ODhkNTQzYWY4MzYwMzMxYzk4MmJmNDQwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdG9vbHMvRnVuY3Rpb25PdmVycmlkZXMuaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvdG9vbHMvRnVuY3Rpb25PdmVycmlkZXMuaApAQCAtNjEsNyAr
NjEsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgY2xlYXIoY29uc3QgQWJzdHJhY3RMb2NrZXImKSB7
IG1fZW50cmllcy5jbGVhcigpOyB9CiAKICAgICBIYXNoTWFwPFN0cmluZywgU3RyaW5nPiBtX2Vu
dHJpZXM7Ci0gICAgTG9jayBtX2xvY2s7CisgICAgVW5jaGVja2VkTG9jayBtX2xvY2s7CiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90
b29scy9WTUluc3BlY3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdG9vbHMvVk1JbnNw
ZWN0b3IuY3BwCmluZGV4IGU0OWRhZTFlMWJjOWRkNzBjOWViMjAyZDg3NzA5ZmNjNmNhNjcwOTAu
LjFmZjcyZDQ2ZDk2NDM5NDRhNzk0YmE0M2Y0YjYwYjhiMTE0NDhhODcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS90b29scy9WTUluc3BlY3Rvci5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3Rvb2xzL1ZNSW5zcGVjdG9yLmNwcApAQCAtODksNyArODksNyBAQCBhdXRv
IFZNSW5zcGVjdG9yOjpsb2NrKFNlY29uZHMgdGltZW91dCkgLT4gRXhwZWN0ZWQ8TG9ja2VyLCBF
cnJvcj4KIH0KIAogI2lmIEVOQUJMRShKSVQpCi1zdGF0aWMgYm9vbCBlbnN1cmVJc1NhZmVUb0xv
Y2soTG9jayYgbG9jaykKK3N0YXRpYyBib29sIGVuc3VyZUlzU2FmZVRvTG9jayhVbmNoZWNrZWRM
b2NrJiBsb2NrKQogewogICAgIHVuc2lnbmVkIG1heFJldHJpZXMgPSAyOwogICAgIHVuc2lnbmVk
IHRyeUNvdW50ID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90b29scy9W
TUluc3BlY3Rvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xzL1ZNSW5zcGVjdG9yLmgK
aW5kZXggODQ1NjMxYzY0ODE2OWQ3YTU1MWNlYjc4ZDRlYWUwM2I1NTY1ODljYS4uZGY0OTBkZTI4
NjJhYTE3OTlmZGY0Mzc3N2VkZTFkZWZhZGEwMTlkNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3Rvb2xzL1ZNSW5zcGVjdG9yLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3Rvb2xzL1ZNSW5zcGVjdG9yLmgKQEAgLTQzLDE0ICs0MywxNCBAQCBwdWJsaWM6CiAgICAgICAg
IFRpbWVkT3V0CiAgICAgfTsKIAotICAgIHR5cGVkZWYgV1RGOjpMb2NrZXI8TG9jaz4gTG9ja2Vy
OworICAgIHR5cGVkZWYgV1RGOjpMb2NrZXI8VW5jaGVja2VkTG9jaz4gTG9ja2VyOwogCiAgICAg
c3RhdGljIFZNSW5zcGVjdG9yJiBpbnN0YW5jZSgpOwogCiAgICAgdm9pZCBhZGQoVk0qKTsKICAg
ICB2b2lkIHJlbW92ZShWTSopOwogCi0gICAgTG9jayYgZ2V0TG9jaygpIHsgcmV0dXJuIG1fbG9j
azsgfQorICAgIFVuY2hlY2tlZExvY2smIGdldExvY2soKSB7IHJldHVybiBtX2xvY2s7IH0KIAog
ICAgIGVudW0gY2xhc3MgRnVuY3RvclN0YXR1cyB7CiAgICAgICAgIENvbnRpbnVlLApAQCAtMTAz
LDcgKzEwMyw3IEBAIHByaXZhdGU6CiAgICAgICAgIH0KICAgICB9CiAKLSAgICBMb2NrIG1fbG9j
azsKKyAgICBVbmNoZWNrZWRMb2NrIG1fbG9jazsKICAgICBEb3VibHlMaW5rZWRMaXN0PFZNPiBt
X3ZtTGlzdDsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dh
c21DYWxsZWVSZWdpc3RyeS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUNhbGxl
ZVJlZ2lzdHJ5LmgKaW5kZXggMTIxMzQxMWI3ZmMxMDY0YTk4MmM3NThiM2UwMzI4YTg0MTQ3OGU3
My4uZGM5MjJjZjNlYTg3MTcwMmNhNTIyYzIzMmY1NjJmMTc2NjExMzhkOSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUNhbGxlZVJlZ2lzdHJ5LmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUNhbGxlZVJlZ2lzdHJ5LmgKQEAgLTQxLDcgKzQx
LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyB2b2lkIGluaXRpYWxpemUoKTsKICAgICBzdGF0aWMg
Q2FsbGVlUmVnaXN0cnkmIHNpbmdsZXRvbigpOwogCi0gICAgTG9jayYgZ2V0TG9jaygpIHsgcmV0
dXJuIG1fbG9jazsgfQorICAgIFVuY2hlY2tlZExvY2smIGdldExvY2soKSB7IHJldHVybiBtX2xv
Y2s7IH0KIAogICAgIHZvaWQgcmVnaXN0ZXJDYWxsZWUoQ2FsbGVlKiBjYWxsZWUpCiAgICAgewpA
QCAtNzAsNyArNzAsNyBAQCBwdWJsaWM6CiAgICAgQ2FsbGVlUmVnaXN0cnkoKSA9IGRlZmF1bHQ7
CiAKIHByaXZhdGU6Ci0gICAgTG9jayBtX2xvY2s7CisgICAgVW5jaGVja2VkTG9jayBtX2xvY2s7
CiAgICAgSGFzaFNldDxDYWxsZWUqPiBtX2NhbGxlZVNldDsKIH07CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21QbGFuLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9XYXNtUGxhbi5oCmluZGV4IGFiOTRmOWU4OTAzODk2ZmQzMTE2YzYyNjkyYWQ3NmRk
Yzk0ZjVkNjEuLmM4MWYzYTZjOWY1ODZiOTFjMTdiNTk2NDc1MDE4ZWNjYTIzZmFkMWUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21QbGFuLmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVBsYW4uaApAQCAtOTQsOCArOTQsOCBAQCBwcm90ZWN0
ZWQ6CiAKICAgICBTdHJpbmcgbV9lcnJvck1lc3NhZ2U7CiAgICAgTWVtb3J5TW9kZSBtX21vZGUg
eyBNZW1vcnlNb2RlOjpCb3VuZHNDaGVja2luZyB9OwotICAgIExvY2sgbV9sb2NrOwotICAgIENv
bmRpdGlvbiBtX2NvbXBsZXRlZDsKKyAgICBVbmNoZWNrZWRMb2NrIG1fbG9jazsKKyAgICBVbmNo
ZWNrZWRDb25kaXRpb24gbV9jb21wbGV0ZWQ7CiB9OwogCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL1dhc21TdHJlYW1pbmdDb21waWxlci5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3dhc20vV2FzbVN0cmVhbWluZ0NvbXBpbGVyLmgKaW5kZXggODZhMTBkYzQ0NWI5
NGZmOTIzYjY2Y2JkNjFhNzExNjBlNzM2NmNlNS4uOTU3Zjc1ZmZmZmYwYzBmM2JlYTA0NDBkZWZh
OWRjODhlMGEyMzk0YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2Fz
bVN0cmVhbWluZ0NvbXBpbGVyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2Fz
bVN0cmVhbWluZ0NvbXBpbGVyLmgKQEAgLTcwLDcgKzcwLDcgQEAgcHJpdmF0ZToKICAgICBib29s
IG1fZWFnZXJGYWlsZWQgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9maW5hbGl6ZWQgeyBmYWxzZSB9
OwogICAgIGJvb2wgbV90aHJlYWRlZENvbXBpbGF0aW9uU3RhcnRlZCB7IGZhbHNlIH07Ci0gICAg
TG9jayBtX2xvY2s7CisgICAgVW5jaGVja2VkTG9jayBtX2xvY2s7CiAgICAgdW5zaWduZWQgbV9y
ZW1haW5pbmdDb21waWxhdGlvblJlcXVlc3RzIHsgMCB9OwogICAgIEpTUHJvbWlzZSogbV9wcm9t
aXNlOyAvLyBSYXcgcG9pbnRlciwgYnV0IGhlbGQgYnkgRGVmZXJyZWRXb3JrVGltZXIuCiAgICAg
UmVmPFdhc206Ok1vZHVsZUluZm9ybWF0aW9uPiBtX2luZm87CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtVGh1bmtzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d2FzbS9XYXNtVGh1bmtzLmgKaW5kZXggYzIzNWNmZTYyOTVlNjY5YWU1YTgwZWU4ZjI1MmVhNmNh
MjQzMWI4My4uZGU0Y2EzY2NmMGFiZTU0ZGQxMGRlMTgyMjZmNzgxN2MwNDc4MWYzYyAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVRodW5rcy5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21UaHVua3MuaApAQCAtNTUsNyArNTUsNyBAQCBwcml2
YXRlOgogICAgIFRodW5rcygpID0gZGVmYXVsdDsKIAogICAgIEhhc2hNYXA8VGh1bmtHZW5lcmF0
b3IsIE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxKSVRUaHVua1B0clRhZz4+IG1fc3R1YnM7Ci0gICAg
TG9jayBtX2xvY2s7CisgICAgVW5jaGVja2VkTG9jayBtX2xvY2s7CiB9OwogCiB9IH0gLy8gbmFt
ZXNwYWNlIEpTQzo6V2FzbQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20v
V2FzbVdvcmtsaXN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21Xb3JrbGlz
dC5jcHAKaW5kZXggNWJhZDBkOTBhNTYyZTI1ZGRlODE3YjU4MmMwNjA2NjU2YzkwNmViYS4uMzg5
OGVjYWI0YzA4ODdlMjVhMGEzNDgxYjQxMWI4ZjY3YzFlYmMyOSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVdvcmtsaXN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvd2FzbS9XYXNtV29ya2xpc3QuY3BwCkBAIC0xMjgsNyArMTI4LDcgQEAgcHJpdmF0
ZToKICAgICB9CiAKIHB1YmxpYzoKLSAgICBDb25kaXRpb24gc3luY2hyb25pemU7CisgICAgVW5j
aGVja2VkQ29uZGl0aW9uIHN5bmNocm9uaXplOwogICAgIFdvcmtsaXN0JiB3b3JrbGlzdDsKICAg
ICAvLyBXZSBjYW4gb25seSBtb2RpZnkgZWxlbWVudCB3aGVuIGhvbGRpbmcgdGhlIGxvY2suIEEg
c3luY2hyb25vdXMgY29tcGlsZSBtaWdodCBsb29rIGF0IGVhY2ggdGhyZWFkJ3MgdGFza3MgaW4g
b3JkZXIgdG8gYm9vc3QgdGhlIHByaW9yaXR5LgogICAgIFF1ZXVlRWxlbWVudCBlbGVtZW50OwpA
QCAtMjEzLDcgKzIxMyw3IEBAIHZvaWQgV29ya2xpc3Q6OnN0b3BBbGxQbGFuc0ZvckNvbnRleHQo
Q29udGV4dCYgY29udGV4dCkKIH0KIAogV29ya2xpc3Q6OldvcmtsaXN0KCkKLSAgICA6IG1fbG9j
ayhCb3g8TG9jaz46OmNyZWF0ZSgpKQorICAgIDogbV9sb2NrKEJveDxVbmNoZWNrZWRMb2NrPjo6
Y3JlYXRlKCkpCiAgICAgLCBtX3BsYW5FbnF1ZXVlZChBdXRvbWF0aWNUaHJlYWRDb25kaXRpb246
OmNyZWF0ZSgpKQogewogICAgIHVuc2lnbmVkIG51bWJlck9mQ29tcGlsYXRpb25UaHJlYWRzID0g
T3B0aW9uczo6dXNlQ29uY3VycmVudEpJVCgpID8ga2VyblRDU01Bd2FyZU51bWJlck9mUHJvY2Vz
c29yQ29yZXMoKSA6IDE7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9X
YXNtV29ya2xpc3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21Xb3JrbGlzdC5o
CmluZGV4IDU2ZDc5YTBlOTg5YTYwMmYyMTMzZDAzMDkwZmRiY2M2MzdjOTU2MzkuLjQ1YTZmYmI2
Y2Y5YTg1M2MyODFmZGJiYWNkNTZmYmVkZDFmYTU5Y2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS93YXNtL1dhc21Xb3JrbGlzdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93YXNtL1dhc21Xb3JrbGlzdC5oCkBAIC04NCw3ICs4NCw3IEBAIHByaXZhdGU6CiAgICAgICAg
IHJldHVybiBsZWZ0LnByaW9yaXR5ID4gcmlnaHQucHJpb3JpdHk7CiAgICAgfQogCi0gICAgQm94
PExvY2s+IG1fbG9jazsKKyAgICBCb3g8VW5jaGVja2VkTG9jaz4gbV9sb2NrOwogICAgIFJlZjxB
dXRvbWF0aWNUaHJlYWRDb25kaXRpb24+IG1fcGxhbkVucXVldWVkOwogICAgIC8vIFRlY2huaWNh
bGx5LCB0aGlzIGNvdWxkIG92ZXJmbG93IGJ1dCB0aGF0J3MgdW5saWtlbHkuIEV2ZW4gaWYgaXQg
ZGlkLCB3ZSB3aWxsIGp1c3QgY29tcGlsZSB0aGluZ3Mgb2YgdGhlIHNhbWUKICAgICAvLyBQcmlv
cml0eSBpdCB0aGUgd3Jvbmcgb3JkZXIsIHdoaWNoIGlzbid0IHdyb25nLCBqdXN0IHN1Ym9wdGlt
YWwuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9BdXRvbWF0aWNUaHJlYWQuY3BwIGIvU291
cmNlL1dURi93dGYvQXV0b21hdGljVGhyZWFkLmNwcAppbmRleCBmNGVhNzhkMTNlMWNkZGI2MTli
ODIyODY4ZDMzYzcyN2M5ZjJmOThiLi4zYzViZTUxM2MyNjNjYThiNGRhNmI3YzI2YzZmODM3Mzlk
YTMxZTBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9BdXRvbWF0aWNUaHJlYWQuY3BwCisr
KyBiL1NvdXJjZS9XVEYvd3RmL0F1dG9tYXRpY1RocmVhZC5jcHAKQEAgLTc3LDEyICs3NywxMiBA
QCB2b2lkIEF1dG9tYXRpY1RocmVhZENvbmRpdGlvbjo6bm90aWZ5QWxsKGNvbnN0IEFic3RyYWN0
TG9ja2VyJiBsb2NrZXIpCiAgICAgfQogfQogCi12b2lkIEF1dG9tYXRpY1RocmVhZENvbmRpdGlv
bjo6d2FpdChMb2NrJiBsb2NrKQordm9pZCBBdXRvbWF0aWNUaHJlYWRDb25kaXRpb246OndhaXQo
VW5jaGVja2VkTG9jayYgbG9jaykKIHsKICAgICBtX2NvbmRpdGlvbi53YWl0KGxvY2spOwogfQog
Ci1ib29sIEF1dG9tYXRpY1RocmVhZENvbmRpdGlvbjo6d2FpdEZvcihMb2NrJiBsb2NrLCBTZWNv
bmRzIHRpbWUpCitib29sIEF1dG9tYXRpY1RocmVhZENvbmRpdGlvbjo6d2FpdEZvcihVbmNoZWNr
ZWRMb2NrJiBsb2NrLCBTZWNvbmRzIHRpbWUpCiB7CiAgICAgcmV0dXJuIG1fY29uZGl0aW9uLndh
aXRGb3IobG9jaywgdGltZSk7CiB9CkBAIC0xMDQsMTIgKzEwNCwxMiBAQCBib29sIEF1dG9tYXRp
Y1RocmVhZENvbmRpdGlvbjo6Y29udGFpbnMoY29uc3QgQWJzdHJhY3RMb2NrZXImLCBBdXRvbWF0
aWNUaHJlYWQqCiAgICAgcmV0dXJuIG1fdGhyZWFkcy5jb250YWlucyh0aHJlYWQpOwogfQogCi1B
dXRvbWF0aWNUaHJlYWQ6OkF1dG9tYXRpY1RocmVhZChjb25zdCBBYnN0cmFjdExvY2tlciYgbG9j
a2VyLCBCb3g8TG9jaz4gbG9jaywgUmVmPEF1dG9tYXRpY1RocmVhZENvbmRpdGlvbj4mJiBjb25k
aXRpb24sIFNlY29uZHMgdGltZW91dCkKK0F1dG9tYXRpY1RocmVhZDo6QXV0b21hdGljVGhyZWFk
KGNvbnN0IEFic3RyYWN0TG9ja2VyJiBsb2NrZXIsIEJveDxVbmNoZWNrZWRMb2NrPiBsb2NrLCBS
ZWY8QXV0b21hdGljVGhyZWFkQ29uZGl0aW9uPiYmIGNvbmRpdGlvbiwgU2Vjb25kcyB0aW1lb3V0
KQogICAgIDogQXV0b21hdGljVGhyZWFkKGxvY2tlciwgbG9jaywgV1RGTW92ZShjb25kaXRpb24p
LCBUaHJlYWRUeXBlOjpVbmtub3duLCB0aW1lb3V0KQogewogfQogCi1BdXRvbWF0aWNUaHJlYWQ6
OkF1dG9tYXRpY1RocmVhZChjb25zdCBBYnN0cmFjdExvY2tlciYgbG9ja2VyLCBCb3g8TG9jaz4g
bG9jaywgUmVmPEF1dG9tYXRpY1RocmVhZENvbmRpdGlvbj4mJiBjb25kaXRpb24sIFRocmVhZFR5
cGUgdHlwZSwgU2Vjb25kcyB0aW1lb3V0KQorQXV0b21hdGljVGhyZWFkOjpBdXRvbWF0aWNUaHJl
YWQoY29uc3QgQWJzdHJhY3RMb2NrZXImIGxvY2tlciwgQm94PFVuY2hlY2tlZExvY2s+IGxvY2ss
IFJlZjxBdXRvbWF0aWNUaHJlYWRDb25kaXRpb24+JiYgY29uZGl0aW9uLCBUaHJlYWRUeXBlIHR5
cGUsIFNlY29uZHMgdGltZW91dCkKICAgICA6IG1fbG9jayhsb2NrKQogICAgICwgbV9jb25kaXRp
b24oV1RGTW92ZShjb25kaXRpb24pKQogICAgICwgbV90aW1lb3V0KHRpbWVvdXQpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV1RGL3d0Zi9BdXRvbWF0aWNUaHJlYWQuaCBiL1NvdXJjZS9XVEYvd3RmL0F1
dG9tYXRpY1RocmVhZC5oCmluZGV4IDhkN2MyYjUxNjgwYTNlYTY3MjhlNTE3NGZjODE4MDY4ZGVl
OTVjODYuLjA5ZmNhZmVmMjM5NTkxYjJlMTJjZGYwMmZkZjAwNmNjZGQ0MTJhNmIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XVEYvd3RmL0F1dG9tYXRpY1RocmVhZC5oCisrKyBiL1NvdXJjZS9XVEYvd3Rm
L0F1dG9tYXRpY1RocmVhZC5oCkBAIC04MSw4ICs4MSw4IEBAIHB1YmxpYzoKICAgICAvLyBPbmUg
a25vd24tZ29vZCBjYXNlIGZvciBvbmUtdHJ1ZS1jb25kaXRpb24gaXMgd2hlbiB0aGUgY29tbXVu
aWNhdGlvbiBpbnZvbHZlcyBqdXN0IHR3bwogICAgIC8vIHRocmVhZHMuIEluIHN1Y2ggY2FzZXMs
IHRoZSB0aHJlYWQgZG9pbmcgdGhlIG5vdGlmeUFsbCgpIGNhbiB3YWtlIHVwIGF0IG1vc3Qgb25l
IHRocmVhZCAtCiAgICAgLy8gaXRzIHBhcnRuZXIuCi0gICAgV1RGX0VYUE9SVF9QUklWQVRFIHZv
aWQgd2FpdChMb2NrJik7Ci0gICAgV1RGX0VYUE9SVF9QUklWQVRFIGJvb2wgd2FpdEZvcihMb2Nr
JiwgU2Vjb25kcyk7CisgICAgV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgd2FpdChVbmNoZWNrZWRM
b2NrJik7CisgICAgV1RGX0VYUE9SVF9QUklWQVRFIGJvb2wgd2FpdEZvcihVbmNoZWNrZWRMb2Nr
JiwgU2Vjb25kcyk7CiAgICAgCiBwcml2YXRlOgogICAgIGZyaWVuZCBjbGFzcyBBdXRvbWF0aWNU
aHJlYWQ7CkBAIC05Myw3ICs5Myw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCByZW1vdmUoY29uc3Qg
QWJzdHJhY3RMb2NrZXImLCBBdXRvbWF0aWNUaHJlYWQqKTsKICAgICBib29sIGNvbnRhaW5zKGNv
bnN0IEFic3RyYWN0TG9ja2VyJiwgQXV0b21hdGljVGhyZWFkKik7CiAgICAgCi0gICAgQ29uZGl0
aW9uIG1fY29uZGl0aW9uOworICAgIFVuY2hlY2tlZENvbmRpdGlvbiBtX2NvbmRpdGlvbjsKICAg
ICBWZWN0b3I8QXV0b21hdGljVGhyZWFkKj4gbV90aHJlYWRzOwogfTsKIApAQCAtMTMxLDkgKzEz
MSw5IEBAIHB1YmxpYzoKIHByb3RlY3RlZDoKICAgICAvLyBUaGlzIGxvZ2ljYWxseSBjcmVhdGVz
IHRoZSB0aHJlYWQsIGJ1dCBpbiByZWFsaXR5IHRoZSB0aHJlYWQgd29uJ3QgYmUgY3JlYXRlZCB1
bnRpbCBzb21lb25lCiAgICAgLy8gY2FsbHMgQXV0b21hdGljVGhyZWFkQ29uZGl0aW9uOjpub3Rp
ZnlPbmUoKSBvciBub3RpZnlBbGwoKS4KLSAgICBBdXRvbWF0aWNUaHJlYWQoY29uc3QgQWJzdHJh
Y3RMb2NrZXImLCBCb3g8TG9jaz4sIFJlZjxBdXRvbWF0aWNUaHJlYWRDb25kaXRpb24+JiYsIFNl
Y29uZHMgdGltZW91dCA9IDEwX3MpOworICAgIEF1dG9tYXRpY1RocmVhZChjb25zdCBBYnN0cmFj
dExvY2tlciYsIEJveDxVbmNoZWNrZWRMb2NrPiwgUmVmPEF1dG9tYXRpY1RocmVhZENvbmRpdGlv
bj4mJiwgU2Vjb25kcyB0aW1lb3V0ID0gMTBfcyk7CiAKLSAgICBBdXRvbWF0aWNUaHJlYWQoY29u
c3QgQWJzdHJhY3RMb2NrZXImLCBCb3g8TG9jaz4sIFJlZjxBdXRvbWF0aWNUaHJlYWRDb25kaXRp
b24+JiYsIFRocmVhZFR5cGUsIFNlY29uZHMgdGltZW91dCA9IDEwX3MpOworICAgIEF1dG9tYXRp
Y1RocmVhZChjb25zdCBBYnN0cmFjdExvY2tlciYsIEJveDxVbmNoZWNrZWRMb2NrPiwgUmVmPEF1
dG9tYXRpY1RocmVhZENvbmRpdGlvbj4mJiwgVGhyZWFkVHlwZSwgU2Vjb25kcyB0aW1lb3V0ID0g
MTBfcyk7CiAgICAgCiAgICAgLy8gVG8gdW5kZXJzdGFuZCBQb2xsUmVzdWx0IGFuZCBXb3JrUmVz
dWx0LCBpbWFnaW5lIHRoYXQgcG9sbCgpIGFuZCB3b3JrKCkgYXJlIGJlaW5nIGNhbGxlZCBsaWtl
CiAgICAgLy8gc286CkBAIC0xODMsMTUgKzE4MywxNSBAQCBwcml2YXRlOgogICAgIAogICAgIHZv
aWQgc3RhcnQoY29uc3QgQWJzdHJhY3RMb2NrZXImKTsKICAgICAKLSAgICBCb3g8TG9jaz4gbV9s
b2NrOworICAgIEJveDxVbmNoZWNrZWRMb2NrPiBtX2xvY2s7CiAgICAgUmVmPEF1dG9tYXRpY1Ro
cmVhZENvbmRpdGlvbj4gbV9jb25kaXRpb247CiAgICAgU2Vjb25kcyBtX3RpbWVvdXQ7CiAgICAg
VGhyZWFkVHlwZSBtX3RocmVhZFR5cGUgeyBUaHJlYWRUeXBlOjpVbmtub3duIH07CiAgICAgYm9v
bCBtX2lzUnVubmluZyB7IHRydWUgfTsKICAgICBib29sIG1faXNXYWl0aW5nIHsgZmFsc2UgfTsK
ICAgICBib29sIG1faGFzVW5kZXJseWluZ1RocmVhZCB7IGZhbHNlIH07Ci0gICAgQ29uZGl0aW9u
IG1fd2FpdENvbmRpdGlvbjsKLSAgICBDb25kaXRpb24gbV9pc1J1bm5pbmdDb25kaXRpb247Cisg
ICAgVW5jaGVja2VkQ29uZGl0aW9uIG1fd2FpdENvbmRpdGlvbjsKKyAgICBVbmNoZWNrZWRDb25k
aXRpb24gbV9pc1J1bm5pbmdDb25kaXRpb247CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXVEYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0NoZWNrZWRDb25kaXRpb24uaCBiL1NvdXJjZS9XVEYv
d3RmL0NoZWNrZWRDb25kaXRpb24uaAppbmRleCAxMTkxMGUwMzk5MTNiNGI2MGE0NDk0N2ViYzkx
ZDAxYWJjNzhiMjc5Li4xMDZiYmEyMmQwYTYxN2IwZGYwNGIyNzJmOGNhMmQwYjYxY2JhMGI2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9DaGVja2VkQ29uZGl0aW9uLmgKKysrIGIvU291cmNl
L1dURi93dGYvQ2hlY2tlZENvbmRpdGlvbi5oCkBAIC0yNSw1OCArMjUsMTIgQEAKIAogI3ByYWdt
YSBvbmNlCiAKLSNpbmNsdWRlIDx3dGYvQ2hlY2tlZExvY2suaD4KICNpbmNsdWRlIDx3dGYvQ29u
ZGl0aW9uLmg+CiAKIG5hbWVzcGFjZSBXVEYgewogCi0vLyBBIGNvbmRpdGlvbiB2YXJpYWJsZSB0
eXBlIGZvciBDaGVja2VkTG9jay4KLS8vIEZvciBwcmVkaWNhdGVzIHRoYXQgYWNjZXNzIHRoZSBn
dWFyZGVkIHZhcmlhYmxlcywgdXNlIGFzc2VydElzSGVsZChsb2NrKS4KLWNsYXNzIENoZWNrZWRD
b25kaXRpb24gZmluYWwgewotICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKENoZWNrZWRDb25kaXRp
b24pOwotICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwotcHVibGljOgotICAgIGNvbnN0ZXhw
ciBDaGVja2VkQ29uZGl0aW9uKCkgPSBkZWZhdWx0OwotCi0gICAgYm9vbCB3YWl0VW50aWwoQ2hl
Y2tlZExvY2smIGxvY2ssIGNvbnN0IFRpbWVXaXRoRHluYW1pY0Nsb2NrVHlwZSYgdGltZW91dCkg
V1RGX1JFUVVJUkVTX0xPQ0sobG9jaykKLSAgICB7Ci0gICAgICAgIHJldHVybiBtX2NvbmRpdGlv
bi53YWl0VW50aWwodW5jaGVja2VkQ2FzdChsb2NrKSwgdGltZW91dCk7Ci0gICAgfQotICAgIHRl
bXBsYXRlPHR5cGVuYW1lIEZ1bmN0b3I+Ci0gICAgYm9vbCB3YWl0VW50aWwoQ2hlY2tlZExvY2sm
IGxvY2ssIGNvbnN0IFRpbWVXaXRoRHluYW1pY0Nsb2NrVHlwZSYgdGltZW91dCwgY29uc3QgRnVu
Y3RvciYgcHJlZGljYXRlKSBXVEZfUkVRVUlSRVNfTE9DSyhsb2NrKQotICAgIHsKLSAgICAgICAg
cmV0dXJuIG1fY29uZGl0aW9uLndhaXRVbnRpbCh1bmNoZWNrZWRDYXN0KGxvY2spLCB0aW1lb3V0
LCBwcmVkaWNhdGUpOwotICAgIH0KLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBGdW5jdG9yPgotICAg
IGJvb2wgd2FpdEZvcihDaGVja2VkTG9jayYgbG9jaywgU2Vjb25kcyByZWxhdGl2ZVRpbWVvdXQs
IGNvbnN0IEZ1bmN0b3ImIHByZWRpY2F0ZSkgV1RGX1JFUVVJUkVTX0xPQ0sobG9jaykKLSAgICB7
Ci0gICAgICAgIHJldHVybiBtX2NvbmRpdGlvbi53YWl0Rm9yKHVuY2hlY2tlZENhc3QobG9jayks
IHJlbGF0aXZlVGltZW91dCwgcHJlZGljYXRlKTsKLSAgICB9Ci0gICAgYm9vbCB3YWl0Rm9yKENo
ZWNrZWRMb2NrJiBsb2NrLCBTZWNvbmRzIHJlbGF0aXZlVGltZW91dCkgV1RGX1JFUVVJUkVTX0xP
Q0sobG9jaykKLSAgICB7Ci0gICAgICAgIHJldHVybiBtX2NvbmRpdGlvbi53YWl0Rm9yKHVuY2hl
Y2tlZENhc3QobG9jayksIHJlbGF0aXZlVGltZW91dCk7Ci0gICAgfQotICAgIHZvaWQgd2FpdChD
aGVja2VkTG9jayYgbG9jaykgV1RGX1JFUVVJUkVTX0xPQ0sobG9jaykKLSAgICB7Ci0gICAgICAg
IG1fY29uZGl0aW9uLndhaXQodW5jaGVja2VkQ2FzdChsb2NrKSk7Ci0gICAgfQotICAgIHRlbXBs
YXRlPHR5cGVuYW1lIEZ1bmN0b3I+Ci0gICAgdm9pZCB3YWl0KENoZWNrZWRMb2NrJiBsb2NrLCBj
b25zdCBGdW5jdG9yJiBwcmVkaWNhdGUpIFdURl9SRVFVSVJFU19MT0NLKGxvY2spCi0gICAgewot
ICAgICAgICBtX2NvbmRpdGlvbi53YWl0KHVuY2hlY2tlZENhc3QobG9jayksIHByZWRpY2F0ZSk7
Ci0gICAgfQotICAgIGJvb2wgbm90aWZ5T25lKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiBtX2Nv
bmRpdGlvbi5ub3RpZnlPbmUoKTsKLSAgICB9Ci0gICAgdm9pZCBub3RpZnlBbGwoKQotICAgIHsK
LSAgICAgICAgbV9jb25kaXRpb24ubm90aWZ5QWxsKCk7Ci0gICAgfQotcHJpdmF0ZToKLSAgICBz
dGF0aWMgTG9jayYgdW5jaGVja2VkQ2FzdChDaGVja2VkTG9jayYgbG9jaykgeyByZXR1cm4gc3Rh
dGljX2Nhc3Q8TG9jayY+KGxvY2spOyB9Ci0gICAgQ29uZGl0aW9uIG1fY29uZGl0aW9uOwotfTsK
Ky8vIEZJWE1FOiBVcGRhdGUgY29kZSBiYXNlIHRvIHVzZSBDb25kaXRpb24gYW5kIHJlbW92ZSB0
aGlzIGhlYWRlci4KK3VzaW5nIENoZWNrZWRDb25kaXRpb24gPSBDb25kaXRpb247CiAKIH0gLy8g
bmFtZXNwYWNlIFdURgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9DaGVja2VkTG9jay5o
IGIvU291cmNlL1dURi93dGYvQ2hlY2tlZExvY2suaAppbmRleCAzYWI1Yzc3MGRlMTYxYjRmMDU5
ZDZjNzRiYjcxZWM5OGVmYTVmNThhLi45NGE5ODFkNzg4MTk2MDYxZTUzNzZkM2M0MmVhYTI0YjBi
NDJkMTg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9DaGVja2VkTG9jay5oCisrKyBiL1Nv
dXJjZS9XVEYvd3RmL0NoZWNrZWRMb2NrLmgKQEAgLTI2LDgzICsyNiwxMiBAQAogI3ByYWdtYSBv
bmNlCiAKICNpbmNsdWRlIDx3dGYvTG9jay5oPgotI2luY2x1ZGUgPHd0Zi9Mb2NrZXIuaD4KLSNp
bmNsdWRlIDx3dGYvVGhyZWFkU2FmZXR5QW5hbHlzaXMuaD4KIAogbmFtZXNwYWNlIFdURiB7CiAK
LS8vIEEgbG9jayB0eXBlIHdpdGggc3VwcG9ydCBmb3IgdGhyZWFkIHNhZmV0eSBhbmFseXNpcy4K
LS8vIFRvIGFubm90YXRlIGEgbWVtYmVyIHZhcmlhYmxlIG9yIGEgZ2xvYmFsIHZhcmlhYmxlIHdp
dGggdGhyZWFkIG93bmVyc2hpcCBpbmZvcm1hdGlvbiwKLS8vIHVzZSBsb2NrIGNhcGFiaWxpdHkg
YW5ub3RhdGlvbnMgZGVmaW5lZCBpbiBUaHJlYWRTYWZldHlBbmFseXNpcy5oLgotLy8KLS8vIEV4
YW1wbGU6Ci0vLyAgIGNsYXNzIE15VmFsdWUgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8
TXlWYWx1ZT4KLS8vICAgewotLy8gICBwdWJsaWM6Ci0vLyAgICAgICB2b2lkIHNldFZhbHVlKGlu
dCB2YWx1ZSkgeyBMb2NrZXIgaG9sZExvY2sgeyBtX2xvY2sgfTsgbV92YWx1ZSA9IHZhbHVlOyAg
fQotLy8gICAgICAgdm9pZCBtYXliZVNldE90aGVyVmFsdWUoaW50IHZhbHVlKQotLy8gICAgICAg
ewotLy8gICAgICAgICAgIGlmICghbV9sb2NrLnRyeUxvY2soKSkKLS8vICAgICAgICAgICAgICBy
ZXR1cm47Ci0vLyAgICAgICAgICAgTG9ja2VyIGxvY2tlciB7IEFkb3B0TG9jaywgbV9vdGhlckxv
Y2sgfTsKLS8vICAgICAgICAgICBtX290aGVyVmFsdWUgPSB2YWx1ZTsKLS8vICAgICAgIH0KLS8v
ICAgcHJpdmF0ZToKLS8vICAgICAgIENoZWNrZWRMb2NrIG1fbG9jazsKLS8vICAgICAgIGludCBt
X3ZhbHVlIFdURl9HVUFSREVEX0JZX0xPQ0sobV9sb2NrKSB7IDc3IH07Ci0vLyAgICAgICBpbnQg
bV9vdGhlclZhbHVlIFdURl9HVUFSREVEX0JZX0xPQ0sobV9sb2NrKSB7IDg4IH07Ci0vLyAgIH07
Ci0vLyBGSVhNRTogTWF5YmUgc2hvdWxkIGJlIGZvbGRlZCBiYWNrIHRvIExvY2sgb25jZSBob2xk
TG9jayBpcyBub3QgdXNlZCBnbG9iYWxseS4KLWNsYXNzIFdURl9DQVBBQklMSVRZX0xPQ0sgQ2hl
Y2tlZExvY2sgOiBMb2NrIHsKLSAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShDaGVja2VkTG9jayk7
Ci0gICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7Ci1wdWJsaWM6Ci0gICAgY29uc3RleHByIENo
ZWNrZWRMb2NrKCkgPSBkZWZhdWx0OwotICAgIHZvaWQgbG9jaygpIFdURl9BQ1FVSVJFU19MT0NL
KCkgeyBMb2NrOjpsb2NrKCk7IH0KLSAgICBib29sIHRyeUxvY2soKSBXVEZfQUNRVUlSRVNfTE9D
S19JRih0cnVlKSB7IHJldHVybiBMb2NrOjp0cnlMb2NrKCk7IH0KLSAgICBib29sIHRyeV9sb2Nr
KCkgV1RGX0FDUVVJUkVTX0xPQ0tfSUYodHJ1ZSkgeyByZXR1cm4gTG9jazo6dHJ5X2xvY2soKTsg
fSAvLyBOT0xJTlQ6IEludGVudGlvbmFsIGRldmlhdGlvbiB0byBzdXBwb3J0IHN0ZDo6c2NvcGVk
X2xvY2suCi0gICAgdm9pZCB1bmxvY2soKSBXVEZfUkVMRUFTRVNfTE9DSygpIHsgTG9jazo6dW5s
b2NrKCk7IH0KLSAgICB2b2lkIHVubG9ja0ZhaXJseSgpIFdURl9SRUxFQVNFU19MT0NLKCkgeyBM
b2NrOjp1bmxvY2tGYWlybHkoKTsgfQotICAgIHZvaWQgc2FmZXBvaW50KCkgeyBMb2NrOjpzYWZl
cG9pbnQoKTsgfQotICAgIGJvb2wgaXNIZWxkKCkgY29uc3QgeyByZXR1cm4gTG9jazo6aXNIZWxk
KCk7IH0KLSAgICBib29sIGlzTG9ja2VkKCkgY29uc3QgeyByZXR1cm4gTG9jazo6aXNMb2NrZWQo
KTsgfQotICAgIGZyaWVuZCBjbGFzcyBDaGVja2VkQ29uZGl0aW9uOwotfTsKLQotLy8gQXNzZXJ0
cyB0aGF0IHRoZSBsb2NrIGlzIGhlbGQuCi0vLyBUaGlzIGNhbiBiZSB1c2VkIGluIGNhc2VzIHdo
ZXJlIHRoZSBhbm5vdGF0aW9ucyBjYW5ub3QgYmUgYWRkZWQgdG8gdGhlIGZ1bmN0aW9uCi0vLyBk
ZWNsYXJhdGlvbi4KLWlubGluZSB2b2lkIGFzc2VydElzSGVsZChjb25zdCBDaGVja2VkTG9jayYg
bG9jaykgV1RGX0FTU0VSVFNfQUNRVUlSRURfTE9DSyhsb2NrKSB7IEFTU0VSVF9VTlVTRUQobG9j
aywgbG9jay5pc0hlbGQoKSk7IH0KLQotLy8gTG9ja2VyIHNwZWNpYWxpemF0aW9uIHRvIHVzZSB3
aXRoIENoZWNrZWRMb2NrLgotLy8gTm9uLW1vdmFibGUgc2ltcGxlIHNjb3BlZCBsb2NrIGhvbGRl
ci4KLS8vIEV4YW1wbGU6IExvY2tlciBsb2NrZXIgeyBtX2xvY2sgfTsKLXRlbXBsYXRlIDw+Ci1j
bGFzcyBXVEZfQ0FQQUJJTElUWV9TQ09QRURfTE9DSyBMb2NrZXI8Q2hlY2tlZExvY2s+IHsKLXB1
YmxpYzoKLSAgICBleHBsaWNpdCBMb2NrZXIoQ2hlY2tlZExvY2smIGxvY2spIFdURl9BQ1FVSVJF
U19MT0NLKGxvY2spCi0gICAgICAgIDogbV9sb2NrKGxvY2spCi0gICAgewotICAgICAgICBtX2xv
Y2subG9jaygpOwotICAgIH0KLSAgICBMb2NrZXIoQWRvcHRMb2NrVGFnLCBDaGVja2VkTG9jayYg
bG9jaykgV1RGX1JFUVVJUkVTX0xPQ0sobG9jaykKLSAgICAgICAgOiBtX2xvY2sobG9jaykKLSAg
ICB7Ci0gICAgfQotICAgIH5Mb2NrZXIoKSBXVEZfUkVMRUFTRVNfTE9DSygpCi0gICAgewotICAg
ICAgICBtX2xvY2sudW5sb2NrKCk7Ci0gICAgfQotICAgIExvY2tlcihjb25zdCBMb2NrZXI8Q2hl
Y2tlZExvY2s+JikgPSBkZWxldGU7Ci0gICAgTG9ja2VyJiBvcGVyYXRvcj0oY29uc3QgTG9ja2Vy
PENoZWNrZWRMb2NrPiYpID0gZGVsZXRlOwotcHJpdmF0ZToKLSAgICBDaGVja2VkTG9jayYgbV9s
b2NrOwotfTsKLQotTG9ja2VyKENoZWNrZWRMb2NrJikgLT4gTG9ja2VyPENoZWNrZWRMb2NrPjsK
LUxvY2tlcihBZG9wdExvY2tUYWcsIENoZWNrZWRMb2NrJikgLT4gTG9ja2VyPENoZWNrZWRMb2Nr
PjsKKy8vIEZJWE1FOiBVcGRhdGUgY29kZSBiYXNlIHRvIHVzZSBMb2NrIGFuZCByZW1vdmUgdGhp
cyBoZWFkZXIuCit1c2luZyBDaGVja2VkTG9jayA9IExvY2s7CiAKIH0gLy8gbmFtZXNwYWNlIFdU
RgogCi11c2luZyBXVEY6OmFzc2VydElzSGVsZDsKIHVzaW5nIFdURjo6Q2hlY2tlZExvY2s7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9Db25kaXRpb24uaCBiL1NvdXJjZS9XVEYvd3RmL0Nv
bmRpdGlvbi5oCmluZGV4IDgxNTUwMWYxN2QyNjc5OTJkZjRkNDRkZGI5OTMxY2NhMGU4ZmZlOTku
LjRlZWYxZjFhNjJhMWNiNTJjMWRlNTcyZTE3MWEzMTQzNTY5OGIzNjYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XVEYvd3RmL0NvbmRpdGlvbi5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL0NvbmRpdGlvbi5o
CkBAIC0yNSw2ICsyNSw3IEBACiAKICNwcmFnbWEgb25jZQogCisjaW5jbHVkZSA8d3RmL0xvY2su
aD4KICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KICNpbmNsdWRlIDx3dGYvUGFya2luZ0xv
dC5oPgogI2luY2x1ZGUgPHd0Zi9UaW1lV2l0aER5bmFtaWNDbG9ja1R5cGUuaD4KQEAgLTM5LDE2
ICs0MCwxNiBAQCBuYW1lc3BhY2UgV1RGIHsKIC8vIG5vdGlmeUFsbCgpIHJlcXVpcmUganVzdCBh
IGxvYWQgYW5kIGJyYW5jaCBmb3IgdGhlIGZhc3QgY2FzZSB3aGVyZSBubyB0aHJlYWQgaXMgd2Fp
dGluZy4KIC8vIFRoaXMgY29uZGl0aW9uIHZhcmlhYmxlLCB3aGVuIHVzZWQgd2l0aCBXVEY6Okxv
Y2ssIGNhbiBvdXRwZXJmb3JtIGEgc3lzdGVtIGNvbmRpdGlvbiB2YXJpYWJsZQogLy8gYW5kIGxv
Y2sgYnkgdXAgdG8gNTh4LgotY2xhc3MgQ29uZGl0aW9uIGZpbmFsIHsKLSAgICBXVEZfTUFLRV9O
T05DT1BZQUJMRShDb25kaXRpb24pOworY2xhc3MgVW5jaGVja2VkQ29uZGl0aW9uIGZpbmFsIHsK
KyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShVbmNoZWNrZWRDb25kaXRpb24pOwogICAgIFdURl9N
QUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIC8vIENvbmRpdGlvbiB3aWxsIGFjY2Vw
dCBhbnkga2luZCBvZiB0aW1lIGFuZCBjb252ZXJ0IGl0IGludGVybmFsbHksIGJ1dCB0aGlzIHR5
cGVkZWYgdGVsbHMKLSAgICAvLyB5b3Ugd2hhdCBraW5kIG9mIHRpbWUgQ29uZGl0aW9uIHdvdWxk
IGJlIGFibGUgdG8gdXNlIHdpdGhvdXQgY29udmVyc2lvbnMuIEhvd2V2ZXIsIGlmIHlvdQorICAg
IC8vIFVuY2hlY2tlZENvbmRpdGlvbiB3aWxsIGFjY2VwdCBhbnkga2luZCBvZiB0aW1lIGFuZCBj
b252ZXJ0IGl0IGludGVybmFsbHksIGJ1dCB0aGlzIHR5cGVkZWYgdGVsbHMKKyAgICAvLyB5b3Ug
d2hhdCBraW5kIG9mIHRpbWUgVW5jaGVja2VkQ29uZGl0aW9uIHdvdWxkIGJlIGFibGUgdG8gdXNl
IHdpdGhvdXQgY29udmVyc2lvbnMuIEhvd2V2ZXIsIGlmIHlvdQogICAgIC8vIGFyZSB1bmxpa2Vs
eSB0byBiZSBhZmZlY3RlZCBieSB0aGUgY29zdCBvZiBjb252ZXJzaW9ucywgaXQgaXMgYmV0dGVy
IHRvIHVzZSBNb25vdG9uaWNUaW1lLgogICAgIHVzaW5nIFRpbWUgPSBQYXJraW5nTG90OjpUaW1l
OwogCi0gICAgY29uc3RleHByIENvbmRpdGlvbigpID0gZGVmYXVsdDsKKyAgICBjb25zdGV4cHIg
VW5jaGVja2VkQ29uZGl0aW9uKCkgPSBkZWZhdWx0OwogCiAgICAgLy8gV2FpdCBvbiBhIHBhcmtp
bmcgcXVldWUgd2hpbGUgcmVsZWFzaW5nIHRoZSBnaXZlbiBsb2NrLiBJdCB3aWxsIHVubG9jayB0
aGUgbG9jayBqdXN0IGJlZm9yZQogICAgIC8vIHBhcmtpbmcsIGFuZCByZWxvY2sgaXQgdXBvbiB3
YWtldXAuIFJldHVybnMgdHJ1ZSBpZiB3ZSB3b2tlIHVwIGR1ZSB0byBzb21lIGNhbGwgdG8KQEAg
LTE3Miw5ICsxNzMsNjEgQEAgcHJpdmF0ZToKICAgICBBdG9taWM8Ym9vbD4gbV9oYXNXYWl0ZXJz
IHsgZmFsc2UgfTsKIH07CiAKKy8vIEEgY29uZGl0aW9uIHZhcmlhYmxlIHR5cGUgZm9yIExvY2su
CisvLyBGb3IgcHJlZGljYXRlcyB0aGF0IGFjY2VzcyB0aGUgZ3VhcmRlZCB2YXJpYWJsZXMsIHVz
ZSBhc3NlcnRJc0hlbGQobG9jaykuCitjbGFzcyBDb25kaXRpb24gZmluYWwgeworICAgIFdURl9N
QUtFX05PTkNPUFlBQkxFKENvbmRpdGlvbik7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7
CitwdWJsaWM6CisgICAgY29uc3RleHByIENvbmRpdGlvbigpID0gZGVmYXVsdDsKKworICAgIGJv
b2wgd2FpdFVudGlsKExvY2smIGxvY2ssIGNvbnN0IFRpbWVXaXRoRHluYW1pY0Nsb2NrVHlwZSYg
dGltZW91dCkgV1RGX1JFUVVJUkVTX0xPQ0sobG9jaykKKyAgICB7CisgICAgICAgIHJldHVybiBt
X2NvbmRpdGlvbi53YWl0VW50aWwodW5jaGVja2VkQ2FzdChsb2NrKSwgdGltZW91dCk7CisgICAg
fQorICAgIHRlbXBsYXRlPHR5cGVuYW1lIEZ1bmN0b3I+CisgICAgYm9vbCB3YWl0VW50aWwoTG9j
ayYgbG9jaywgY29uc3QgVGltZVdpdGhEeW5hbWljQ2xvY2tUeXBlJiB0aW1lb3V0LCBjb25zdCBG
dW5jdG9yJiBwcmVkaWNhdGUpIFdURl9SRVFVSVJFU19MT0NLKGxvY2spCisgICAgeworICAgICAg
ICByZXR1cm4gbV9jb25kaXRpb24ud2FpdFVudGlsKHVuY2hlY2tlZENhc3QobG9jayksIHRpbWVv
dXQsIHByZWRpY2F0ZSk7CisgICAgfQorICAgIHRlbXBsYXRlPHR5cGVuYW1lIEZ1bmN0b3I+Cisg
ICAgYm9vbCB3YWl0Rm9yKExvY2smIGxvY2ssIFNlY29uZHMgcmVsYXRpdmVUaW1lb3V0LCBjb25z
dCBGdW5jdG9yJiBwcmVkaWNhdGUpIFdURl9SRVFVSVJFU19MT0NLKGxvY2spCisgICAgeworICAg
ICAgICByZXR1cm4gbV9jb25kaXRpb24ud2FpdEZvcih1bmNoZWNrZWRDYXN0KGxvY2spLCByZWxh
dGl2ZVRpbWVvdXQsIHByZWRpY2F0ZSk7CisgICAgfQorICAgIGJvb2wgd2FpdEZvcihMb2NrJiBs
b2NrLCBTZWNvbmRzIHJlbGF0aXZlVGltZW91dCkgV1RGX1JFUVVJUkVTX0xPQ0sobG9jaykKKyAg
ICB7CisgICAgICAgIHJldHVybiBtX2NvbmRpdGlvbi53YWl0Rm9yKHVuY2hlY2tlZENhc3QobG9j
ayksIHJlbGF0aXZlVGltZW91dCk7CisgICAgfQorICAgIHZvaWQgd2FpdChMb2NrJiBsb2NrKSBX
VEZfUkVRVUlSRVNfTE9DSyhsb2NrKQorICAgIHsKKyAgICAgICAgbV9jb25kaXRpb24ud2FpdCh1
bmNoZWNrZWRDYXN0KGxvY2spKTsKKyAgICB9CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRnVuY3Rv
cj4KKyAgICB2b2lkIHdhaXQoTG9jayYgbG9jaywgY29uc3QgRnVuY3RvciYgcHJlZGljYXRlKSBX
VEZfUkVRVUlSRVNfTE9DSyhsb2NrKQorICAgIHsKKyAgICAgICAgbV9jb25kaXRpb24ud2FpdCh1
bmNoZWNrZWRDYXN0KGxvY2spLCBwcmVkaWNhdGUpOworICAgIH0KKyAgICBib29sIG5vdGlmeU9u
ZSgpCisgICAgeworICAgICAgICByZXR1cm4gbV9jb25kaXRpb24ubm90aWZ5T25lKCk7CisgICAg
fQorICAgIHZvaWQgbm90aWZ5QWxsKCkKKyAgICB7CisgICAgICAgIG1fY29uZGl0aW9uLm5vdGlm
eUFsbCgpOworICAgIH0KK3ByaXZhdGU6CisgICAgc3RhdGljIFVuY2hlY2tlZExvY2smIHVuY2hl
Y2tlZENhc3QoTG9jayYgbG9jaykgeyByZXR1cm4gc3RhdGljX2Nhc3Q8VW5jaGVja2VkTG9jayY+
KGxvY2spOyB9CisgICAgVW5jaGVja2VkQ29uZGl0aW9uIG1fY29uZGl0aW9uOworfTsKKwordXNp
bmcgU3RhdGljVW5jaGVja2VkQ29uZGl0aW9uID0gVW5jaGVja2VkQ29uZGl0aW9uOwogdXNpbmcg
U3RhdGljQ29uZGl0aW9uID0gQ29uZGl0aW9uOwogCiB9IC8vIG5hbWVzcGFjZSBXVEYKIAogdXNp
bmcgV1RGOjpDb25kaXRpb247Cit1c2luZyBXVEY6OlVuY2hlY2tlZENvbmRpdGlvbjsKIHVzaW5n
IFdURjo6U3RhdGljQ29uZGl0aW9uOwordXNpbmcgV1RGOjpTdGF0aWNVbmNoZWNrZWRDb25kaXRp
b247CisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0xvY2suY3BwIGIvU291cmNlL1dURi93
dGYvTG9jay5jcHAKaW5kZXggYjk5MzgzZDY5NDgwZDNhNGM5YjYyM2YwYzBiY2M3ZGY5MGVhYjA0
ZC4uZmY4NmUxMGE5YTJhNDE3YWI3MDY3MGEwNzg5Y2Y2NTBkNzE4YjE3MSAxMDA2NDQKLS0tIGEv
U291cmNlL1dURi93dGYvTG9jay5jcHAKKysrIGIvU291cmNlL1dURi93dGYvTG9jay5jcHAKQEAg
LTMzLDE0ICszMywxNCBAQCBuYW1lc3BhY2UgV1RGIHsKIAogc3RhdGljIGNvbnN0ZXhwciBib29s
IHByb2ZpbGVMb2NrQ29udGVudGlvbiA9IGZhbHNlOwogCi12b2lkIExvY2s6OmxvY2tTbG93KCkK
K3ZvaWQgVW5jaGVja2VkTG9jazo6bG9ja1Nsb3coKQogewogICAgIGlmIChwcm9maWxlTG9ja0Nv
bnRlbnRpb24pCiAgICAgICAgIFNUQUNLX1NIT1RfUFJPRklMRSg0LCAyLCA1KTsKICAgICBEZWZh
dWx0TG9ja0FsZ29yaXRobTo6bG9ja1Nsb3cobV9ieXRlKTsKIH0KIAotdm9pZCBMb2NrOjp1bmxv
Y2tTbG93KCkKK3ZvaWQgVW5jaGVja2VkTG9jazo6dW5sb2NrU2xvdygpCiB7CiAgICAgLy8gSGVh
cCBhbGxvY2F0aW9ucyBhcmUgZm9yYmlkZGVuIG9uIHRoZSBjZXJ0YWluIHRocmVhZHMgKGUuZy4g
YXVkaW8gcmVuZGVyaW5nIHRocmVhZCkgZm9yIHBlcmZvcm1hbmNlIHJlYXNvbnMgc28gd2UgbmVl
ZCB0bwogICAgIC8vIGV4cGxpY2l0bHkgYWxsb3cgdGhlIGZvbGxvd2luZyBhbGxvY2F0aW9uKHMp
LiBJbiBzb21lIHJhcmUgY2FzZXMsIHRoZSB1bmxvY2tTbG93KCkgYWxnb3JpdGggbWF5IGNhdXNl
IGFsbG9jYXRpb25zLgpAQCAtNDksNyArNDksNyBAQCB2b2lkIExvY2s6OnVubG9ja1Nsb3coKQog
ICAgIERlZmF1bHRMb2NrQWxnb3JpdGhtOjp1bmxvY2tTbG93KG1fYnl0ZSwgRGVmYXVsdExvY2tB
bGdvcml0aG06OlVuZmFpcik7CiB9CiAKLXZvaWQgTG9jazo6dW5sb2NrRmFpcmx5U2xvdygpCit2
b2lkIFVuY2hlY2tlZExvY2s6OnVubG9ja0ZhaXJseVNsb3coKQogewogICAgIC8vIEhlYXAgYWxs
b2NhdGlvbnMgYXJlIGZvcmJpZGRlbiBvbiB0aGUgY2VydGFpbiB0aHJlYWRzIChlLmcuIGF1ZGlv
IHJlbmRlcmluZyB0aHJlYWQpIGZvciBwZXJmb3JtYW5jZSByZWFzb25zIHNvIHdlIG5lZWQgdG8K
ICAgICAvLyBleHBsaWNpdGx5IGFsbG93IHRoZSBmb2xsb3dpbmcgYWxsb2NhdGlvbihzKS4gSW4g
c29tZSByYXJlIGNhc2VzLCB0aGUgdW5sb2NrU2xvdygpIGFsZ29yaXRoIG1heSBjYXVzZSBhbGxv
Y2F0aW9ucy4KQEAgLTU4LDcgKzU4LDcgQEAgdm9pZCBMb2NrOjp1bmxvY2tGYWlybHlTbG93KCkK
ICAgICBEZWZhdWx0TG9ja0FsZ29yaXRobTo6dW5sb2NrU2xvdyhtX2J5dGUsIERlZmF1bHRMb2Nr
QWxnb3JpdGhtOjpGYWlyKTsKIH0KIAotdm9pZCBMb2NrOjpzYWZlcG9pbnRTbG93KCkKK3ZvaWQg
VW5jaGVja2VkTG9jazo6c2FmZXBvaW50U2xvdygpCiB7CiAgICAgRGVmYXVsdExvY2tBbGdvcml0
aG06OnNhZmVwb2ludFNsb3cobV9ieXRlKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3Rm
L0xvY2suaCBiL1NvdXJjZS9XVEYvd3RmL0xvY2suaAppbmRleCA2MGZkYWFiZDkwZGFlN2YyZDRk
NDhmMzFiODAzNGRlM2JmOTVmNjdkLi5mZGMwYTRmNzcwY2U2MzJhMDFmMWJiMTM1YWNkYTliMzNj
ZmU0OTMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9Mb2NrLmgKKysrIGIvU291cmNlL1dU
Ri93dGYvTG9jay5oCkBAIC0yNSw5ICsyNSwxMSBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1
ZGUgPG11dGV4PgogI2luY2x1ZGUgPHd0Zi9Mb2NrQWxnb3JpdGhtLmg+CiAjaW5jbHVkZSA8d3Rm
L0xvY2tlci5oPgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgorI2luY2x1ZGUgPHd0Zi9U
aHJlYWRTYWZldHlBbmFseXNpcy5oPgogCiBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CiBzdHJ1
Y3QgTG9ja0luc3BlY3RvcjsKQEAgLTQ3LDExICs0OSwxMSBAQCB0eXBlZGVmIExvY2tBbGdvcml0
aG08dWludDhfdCwgMSwgMj4gRGVmYXVsdExvY2tBbGdvcml0aG07CiAvLyBhdCB3b3JzdCBvbmUg
Y2FsbCB0byB1bmxvY2soKSBwZXIgbWlsbGlzZWNvbmQgd2lsbCBkbyBhIGRpcmVjdCBoYW5kLW9m
ZiB0byB0aGUgdGhyZWFkIHRoYXQgaXMgYXQKIC8vIHRoZSBoZWFkIG9mIHRoZSBxdWV1ZS4gV2hl
biB0aGVyZSBhcmUgY29sbGlzaW9ucywgZWFjaCBjb2xsaXNpb24gaW5jcmVhc2VzIHRoZSBmYWly
IHVubG9jayBkZWxheQogLy8gYnkgb25lIG1pbGxpc2Vjb25kIGluIHRoZSB3b3JzdCBjYXNlLgot
Y2xhc3MgTG9jayB7Ci0gICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoTG9jayk7CitjbGFzcyBVbmNo
ZWNrZWRMb2NrIHsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShVbmNoZWNrZWRMb2NrKTsKICAg
ICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBjb25zdGV4cHIgTG9jaygp
ID0gZGVmYXVsdDsKKyAgICBjb25zdGV4cHIgVW5jaGVja2VkTG9jaygpID0gZGVmYXVsdDsKIAog
ICAgIHZvaWQgbG9jaygpCiAgICAgewpAQCAtMTMxLDkgKzEzMyw4NCBAQCBwcml2YXRlOgogICAg
IEF0b21pYzx1aW50OF90PiBtX2J5dGUgeyAwIH07CiB9OwogCisvLyBBIGxvY2sgdHlwZSB3aXRo
IHN1cHBvcnQgZm9yIHRocmVhZCBzYWZldHkgYW5hbHlzaXMuCisvLyBUbyBhbm5vdGF0ZSBhIG1l
bWJlciB2YXJpYWJsZSBvciBhIGdsb2JhbCB2YXJpYWJsZSB3aXRoIHRocmVhZCBvd25lcnNoaXAg
aW5mb3JtYXRpb24sCisvLyB1c2UgbG9jayBjYXBhYmlsaXR5IGFubm90YXRpb25zIGRlZmluZWQg
aW4gVGhyZWFkU2FmZXR5QW5hbHlzaXMuaC4KKy8vCisvLyBFeGFtcGxlOgorLy8gICBjbGFzcyBN
eVZhbHVlIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPE15VmFsdWU+CisvLyAgIHsKKy8v
ICAgcHVibGljOgorLy8gICAgICAgdm9pZCBzZXRWYWx1ZShpbnQgdmFsdWUpIHsgTG9ja2VyIGhv
bGRMb2NrIHsgbV9sb2NrIH07IG1fdmFsdWUgPSB2YWx1ZTsgIH0KKy8vICAgICAgIHZvaWQgbWF5
YmVTZXRPdGhlclZhbHVlKGludCB2YWx1ZSkKKy8vICAgICAgIHsKKy8vICAgICAgICAgICBpZiAo
IW1fbG9jay50cnlMb2NrKCkpCisvLyAgICAgICAgICAgICAgcmV0dXJuOworLy8gICAgICAgICAg
IExvY2tlciBsb2NrZXIgeyBBZG9wdExvY2ssIG1fb3RoZXJMb2NrIH07CisvLyAgICAgICAgICAg
bV9vdGhlclZhbHVlID0gdmFsdWU7CisvLyAgICAgICB9CisvLyAgIHByaXZhdGU6CisvLyAgICAg
ICBMb2NrIG1fbG9jazsKKy8vICAgICAgIGludCBtX3ZhbHVlIFdURl9HVUFSREVEX0JZX0xPQ0so
bV9sb2NrKSB7IDc3IH07CisvLyAgICAgICBpbnQgbV9vdGhlclZhbHVlIFdURl9HVUFSREVEX0JZ
X0xPQ0sobV9sb2NrKSB7IDg4IH07CisvLyAgIH07CitjbGFzcyBXVEZfQ0FQQUJJTElUWV9MT0NL
IExvY2sgOiBVbmNoZWNrZWRMb2NrIHsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShMb2NrKTsK
KyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICBjb25zdGV4cHIgTG9j
aygpID0gZGVmYXVsdDsKKyAgICB2b2lkIGxvY2soKSBXVEZfQUNRVUlSRVNfTE9DSygpIHsgVW5j
aGVja2VkTG9jazo6bG9jaygpOyB9CisgICAgYm9vbCB0cnlMb2NrKCkgV1RGX0FDUVVJUkVTX0xP
Q0tfSUYodHJ1ZSkgeyByZXR1cm4gVW5jaGVja2VkTG9jazo6dHJ5TG9jaygpOyB9CisgICAgYm9v
bCB0cnlfbG9jaygpIFdURl9BQ1FVSVJFU19MT0NLX0lGKHRydWUpIHsgcmV0dXJuIFVuY2hlY2tl
ZExvY2s6OnRyeV9sb2NrKCk7IH0gLy8gTk9MSU5UOiBJbnRlbnRpb25hbCBkZXZpYXRpb24gdG8g
c3VwcG9ydCBzdGQ6OnNjb3BlZF9sb2NrLgorICAgIHZvaWQgdW5sb2NrKCkgV1RGX1JFTEVBU0VT
X0xPQ0soKSB7IFVuY2hlY2tlZExvY2s6OnVubG9jaygpOyB9CisgICAgdm9pZCB1bmxvY2tGYWly
bHkoKSBXVEZfUkVMRUFTRVNfTE9DSygpIHsgVW5jaGVja2VkTG9jazo6dW5sb2NrRmFpcmx5KCk7
IH0KKyAgICB2b2lkIHNhZmVwb2ludCgpIHsgVW5jaGVja2VkTG9jazo6c2FmZXBvaW50KCk7IH0K
KyAgICBib29sIGlzSGVsZCgpIGNvbnN0IHsgcmV0dXJuIFVuY2hlY2tlZExvY2s6OmlzSGVsZCgp
OyB9CisgICAgYm9vbCBpc0xvY2tlZCgpIGNvbnN0IHsgcmV0dXJuIFVuY2hlY2tlZExvY2s6Omlz
TG9ja2VkKCk7IH0KKyAgICBmcmllbmQgY2xhc3MgQ29uZGl0aW9uOworICAgIGZyaWVuZCBzdHJ1
Y3QgVGVzdFdlYktpdEFQSTo6TG9ja0luc3BlY3RvcjsKK307CisKKy8vIEFzc2VydHMgdGhhdCB0
aGUgbG9jayBpcyBoZWxkLgorLy8gVGhpcyBjYW4gYmUgdXNlZCBpbiBjYXNlcyB3aGVyZSB0aGUg
YW5ub3RhdGlvbnMgY2Fubm90IGJlIGFkZGVkIHRvIHRoZSBmdW5jdGlvbgorLy8gZGVjbGFyYXRp
b24uCitpbmxpbmUgdm9pZCBhc3NlcnRJc0hlbGQoY29uc3QgTG9jayYgbG9jaykgV1RGX0FTU0VS
VFNfQUNRVUlSRURfTE9DSyhsb2NrKSB7IEFTU0VSVF9VTlVTRUQobG9jaywgbG9jay5pc0hlbGQo
KSk7IH0KKworLy8gTG9ja2VyIHNwZWNpYWxpemF0aW9uIHRvIHVzZSB3aXRoIExvY2suCisvLyBO
b24tbW92YWJsZSBzaW1wbGUgc2NvcGVkIGxvY2sgaG9sZGVyLgorLy8gRXhhbXBsZTogTG9ja2Vy
IGxvY2tlciB7IG1fbG9jayB9OwordGVtcGxhdGUgPD4KK2NsYXNzIFdURl9DQVBBQklMSVRZX1ND
T1BFRF9MT0NLIExvY2tlcjxMb2NrPiB7CitwdWJsaWM6CisgICAgZXhwbGljaXQgTG9ja2VyKExv
Y2smIGxvY2spIFdURl9BQ1FVSVJFU19MT0NLKGxvY2spCisgICAgICAgIDogbV9sb2NrKGxvY2sp
CisgICAgeworICAgICAgICBtX2xvY2subG9jaygpOworICAgIH0KKyAgICBMb2NrZXIoQWRvcHRM
b2NrVGFnLCBMb2NrJiBsb2NrKSBXVEZfUkVRVUlSRVNfTE9DSyhsb2NrKQorICAgICAgICA6IG1f
bG9jayhsb2NrKQorICAgIHsKKyAgICB9CisgICAgfkxvY2tlcigpIFdURl9SRUxFQVNFU19MT0NL
KCkKKyAgICB7CisgICAgICAgIG1fbG9jay51bmxvY2soKTsKKyAgICB9CisgICAgTG9ja2VyKGNv
bnN0IExvY2tlcjxMb2NrPiYpID0gZGVsZXRlOworICAgIExvY2tlciYgb3BlcmF0b3I9KGNvbnN0
IExvY2tlcjxMb2NrPiYpID0gZGVsZXRlOworcHJpdmF0ZToKKyAgICBMb2NrJiBtX2xvY2s7Cit9
OworCitMb2NrZXIoTG9jayYpIC0+IExvY2tlcjxMb2NrPjsKK0xvY2tlcihBZG9wdExvY2tUYWcs
IExvY2smKSAtPiBMb2NrZXI8TG9jaz47CisKIHVzaW5nIExvY2tIb2xkZXIgPSBMb2NrZXI8TG9j
az47Cit1c2luZyBVbmNoZWNrZWRMb2NrSG9sZGVyID0gTG9ja2VyPFVuY2hlY2tlZExvY2s+Owog
CiB9IC8vIG5hbWVzcGFjZSBXVEYKIAordXNpbmcgV1RGOjpVbmNoZWNrZWRMb2NrOwogdXNpbmcg
V1RGOjpMb2NrOwogdXNpbmcgV1RGOjpMb2NrSG9sZGVyOwordXNpbmcgV1RGOjpVbmNoZWNrZWRM
b2NrSG9sZGVyOwordXNpbmcgV1RGOjphc3NlcnRJc0hlbGQ7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V1RGL3d0Zi9NZXRhQWxsb2NhdG9yLmNwcCBiL1NvdXJjZS9XVEYvd3RmL01ldGFBbGxvY2F0b3Iu
Y3BwCmluZGV4IGVlZjg5Yjc3ZTdiZGRmY2Q2NzY1ZDY3M2FhNTY1YTA2NzdjZDcwYTQuLmQ5Y2Q1
OTkyZjNhMGQ1MWQwNDZlODcwMWExM2JkMjdhNzkwMjJhZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
VEYvd3RmL01ldGFBbGxvY2F0b3IuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL01ldGFBbGxvY2F0
b3IuY3BwCkBAIC02Miw3ICs2Miw3IEBAIHZvaWQgTWV0YUFsbG9jYXRvclRyYWNrZXI6OnJlbGVh
c2UoTWV0YUFsbG9jYXRvckhhbmRsZSYgaGFuZGxlKQogICAgIG1fYWxsb2NhdGlvbnMucmVtb3Zl
KCZoYW5kbGUpOwogfQogCi12b2lkIE1ldGFBbGxvY2F0b3I6OnJlbGVhc2UoY29uc3QgTG9ja0hv
bGRlciYsIE1ldGFBbGxvY2F0b3JIYW5kbGUmIGhhbmRsZSkKK3ZvaWQgTWV0YUFsbG9jYXRvcjo6
cmVsZWFzZShjb25zdCBVbmNoZWNrZWRMb2NrSG9sZGVyJiwgTWV0YUFsbG9jYXRvckhhbmRsZSYg
aGFuZGxlKQogewogICAgIGlmIChoYW5kbGUuc2l6ZUluQnl0ZXMoKSkgewogICAgICAgICBNZW1v
cnlQdHIgc3RhcnQgPSBoYW5kbGUuc3RhcnQoKTsKQEAgLTEyNCw3ICsxMjQsNyBAQCB2b2lkIE1l
dGFBbGxvY2F0b3JIYW5kbGU6OmR1bXAoUHJpbnRTdHJlYW0mIG91dCkgY29uc3QKICAgICBvdXQu
cHJpbnQoUmF3UG9pbnRlcihzdGFydCgpLnVudGFnZ2VkUHRyKCkpLCAiLi4uIiwgUmF3UG9pbnRl
cihlbmQoKS51bnRhZ2dlZFB0cigpKSk7CiB9CiAKLU1ldGFBbGxvY2F0b3I6Ok1ldGFBbGxvY2F0
b3IoTG9jayYgbG9jaywgc2l6ZV90IGFsbG9jYXRpb25HcmFudWxlLCBzaXplX3QgcGFnZVNpemUp
CitNZXRhQWxsb2NhdG9yOjpNZXRhQWxsb2NhdG9yKFVuY2hlY2tlZExvY2smIGxvY2ssIHNpemVf
dCBhbGxvY2F0aW9uR3JhbnVsZSwgc2l6ZV90IHBhZ2VTaXplKQogICAgIDogbV9hbGxvY2F0aW9u
R3JhbnVsZShhbGxvY2F0aW9uR3JhbnVsZSkKICAgICAsIG1fcGFnZVNpemUocGFnZVNpemUpCiAg
ICAgLCBtX2J5dGVzQWxsb2NhdGVkKDApCkBAIC0xNTQsNyArMTU0LDcgQEAgTWV0YUFsbG9jYXRv
cjo6TWV0YUFsbG9jYXRvcihMb2NrJiBsb2NrLCBzaXplX3QgYWxsb2NhdGlvbkdyYW51bGUsIHNp
emVfdCBwYWdlU2kKICAgICBBU1NFUlQoc3RhdGljX2Nhc3Q8c2l6ZV90PigxKSA8PCBtX2xvZ0Fs
bG9jYXRpb25HcmFudWxlID09IG1fYWxsb2NhdGlvbkdyYW51bGUpOwogfQogCi1SZWZQdHI8TWV0
YUFsbG9jYXRvckhhbmRsZT4gTWV0YUFsbG9jYXRvcjo6YWxsb2NhdGUoY29uc3QgTG9ja0hvbGRl
ciYsIHNpemVfdCBzaXplSW5CeXRlcykKK1JlZlB0cjxNZXRhQWxsb2NhdG9ySGFuZGxlPiBNZXRh
QWxsb2NhdG9yOjphbGxvY2F0ZShjb25zdCBVbmNoZWNrZWRMb2NrSG9sZGVyJiwgc2l6ZV90IHNp
emVJbkJ5dGVzKQogewogICAgIGlmICghc2l6ZUluQnl0ZXMpCiAgICAgICAgIHJldHVybiBudWxs
cHRyOwpAQCAtMTk4LDcgKzE5OCw3IEBAIFJlZlB0cjxNZXRhQWxsb2NhdG9ySGFuZGxlPiBNZXRh
QWxsb2NhdG9yOjphbGxvY2F0ZShjb25zdCBMb2NrSG9sZGVyJiwgc2l6ZV90IHNpCiAgICAgcmV0
dXJuIGhhbmRsZTsKIH0KIAotTWV0YUFsbG9jYXRvcjo6U3RhdGlzdGljcyBNZXRhQWxsb2NhdG9y
OjpjdXJyZW50U3RhdGlzdGljcyhjb25zdCBMb2NrSG9sZGVyJikKK01ldGFBbGxvY2F0b3I6OlN0
YXRpc3RpY3MgTWV0YUFsbG9jYXRvcjo6Y3VycmVudFN0YXRpc3RpY3MoY29uc3QgVW5jaGVja2Vk
TG9ja0hvbGRlciYpCiB7CiAgICAgU3RhdGlzdGljcyByZXN1bHQ7CiAgICAgcmVzdWx0LmJ5dGVz
QWxsb2NhdGVkID0gbV9ieXRlc0FsbG9jYXRlZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3Rm
L01ldGFBbGxvY2F0b3IuaCBiL1NvdXJjZS9XVEYvd3RmL01ldGFBbGxvY2F0b3IuaAppbmRleCA1
ZmI3MmMyODBlZGMwNmRlYTg5MzFiNmEzYzA5ZTFmZjdiZjVjOGQxLi5lZGZlYzdjM2I4OTk2Mjlm
MDdkZTdhYTA4ZDBjNjMyMjc2ZjhjNDBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9NZXRh
QWxsb2NhdG9yLmgKKysrIGIvU291cmNlL1dURi93dGYvTWV0YUFsbG9jYXRvci5oCkBAIC02NSw3
ICs2NSw3IEBAIHB1YmxpYzoKICAgICB1c2luZyBGcmVlU3BhY2VQdHIgPSBNZXRhQWxsb2NhdG9y
UHRyPEZyZWVTcGFjZVB0clRhZz47CiAgICAgdXNpbmcgTWVtb3J5UHRyID0gTWV0YUFsbG9jYXRv
ckhhbmRsZTo6TWVtb3J5UHRyOwogCi0gICAgV1RGX0VYUE9SVF9QUklWQVRFIE1ldGFBbGxvY2F0
b3IoTG9jayYsIHNpemVfdCBhbGxvY2F0aW9uR3JhbnVsZSwgc2l6ZV90IHBhZ2VTaXplID0gV1RG
OjpwYWdlU2l6ZSgpKTsKKyAgICBXVEZfRVhQT1JUX1BSSVZBVEUgTWV0YUFsbG9jYXRvcihVbmNo
ZWNrZWRMb2NrJiwgc2l6ZV90IGFsbG9jYXRpb25HcmFudWxlLCBzaXplX3QgcGFnZVNpemUgPSBX
VEY6OnBhZ2VTaXplKCkpOwogICAgIAogICAgIFdURl9FWFBPUlRfUFJJVkFURSB2aXJ0dWFsIH5N
ZXRhQWxsb2NhdG9yKCk7CiAgICAgCkBAIC03NCw3ICs3NCw3IEBAIHB1YmxpYzoKICAgICAgICAg
TG9ja2VyIGxvY2tlciB7IG1fbG9jayB9OwogICAgICAgICByZXR1cm4gYWxsb2NhdGUobG9ja2Vy
LCBzaXplSW5CeXRlcyk7CiAgICAgfQotICAgIFdURl9FWFBPUlRfUFJJVkFURSBSZWZQdHI8TWV0
YUFsbG9jYXRvckhhbmRsZT4gYWxsb2NhdGUoY29uc3QgTG9ja0hvbGRlciYsIHNpemVfdCBzaXpl
SW5CeXRlcyk7CisgICAgV1RGX0VYUE9SVF9QUklWQVRFIFJlZlB0cjxNZXRhQWxsb2NhdG9ySGFu
ZGxlPiBhbGxvY2F0ZShjb25zdCBVbmNoZWNrZWRMb2NrSG9sZGVyJiwgc2l6ZV90IHNpemVJbkJ5
dGVzKTsKIAogICAgIHZvaWQgdHJhY2tBbGxvY2F0aW9ucyhNZXRhQWxsb2NhdG9yVHJhY2tlciog
dHJhY2tlcikKICAgICB7CkBAIC05OCw3ICs5OCw3IEBAIHB1YmxpYzoKICAgICAgICAgTG9ja2Vy
IGxvY2tlciB7IG1fbG9jayB9OwogICAgICAgICByZXR1cm4gY3VycmVudFN0YXRpc3RpY3MobG9j
a2VyKTsKICAgICB9Ci0gICAgV1RGX0VYUE9SVF9QUklWQVRFIFN0YXRpc3RpY3MgY3VycmVudFN0
YXRpc3RpY3MoY29uc3QgTG9ja0hvbGRlciYpOworICAgIFdURl9FWFBPUlRfUFJJVkFURSBTdGF0
aXN0aWNzIGN1cnJlbnRTdGF0aXN0aWNzKGNvbnN0IFVuY2hlY2tlZExvY2tIb2xkZXImKTsKIAog
ICAgIC8vIEFkZCBtb3JlIGZyZWUgc3BhY2UgdG8gdGhlIGFsbG9jYXRvci4gQ2FsbCB0aGlzIGRp
cmVjdGx5IGZyb20KICAgICAvLyB0aGUgY29uc3RydWN0b3IgaWYgeW91IHdpc2ggdG8gb3BlcmF0
ZSB0aGUgYWxsb2NhdG9yIHdpdGhpbiBhCkBAIC0xMzQsNyArMTM0LDcgQEAgcHJvdGVjdGVkOgog
ICAgIC8vIGFzIHRoZXJlIGFyZSBIYW5kbGVzIHRoYXQgcmVmZXIgdG8gaXQuCiAKICAgICAvLyBS
ZWxlYXNlIGEgTWV0YUFsbG9jYXRvckhhbmRsZS4KLSAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdmly
dHVhbCB2b2lkIHJlbGVhc2UoY29uc3QgTG9ja0hvbGRlciYsIE1ldGFBbGxvY2F0b3JIYW5kbGUm
KTsKKyAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdmlydHVhbCB2b2lkIHJlbGVhc2UoY29uc3QgVW5j
aGVja2VkTG9ja0hvbGRlciYsIE1ldGFBbGxvY2F0b3JIYW5kbGUmKTsKIHByaXZhdGU6CiAgICAg
CiAgICAgZnJpZW5kIGNsYXNzIE1ldGFBbGxvY2F0b3JIYW5kbGU7CkBAIC0xOTcsNyArMTk3LDcg
QEAgcHJpdmF0ZToKICAgICBzaXplX3QgbV9ieXRlc1Jlc2VydmVkOwogICAgIHNpemVfdCBtX2J5
dGVzQ29tbWl0dGVkOwogICAgIAotICAgIExvY2smIG1fbG9jazsKKyAgICBVbmNoZWNrZWRMb2Nr
JiBtX2xvY2s7CiAKICAgICBNZXRhQWxsb2NhdG9yVHJhY2tlciogbV90cmFja2VyIHsgbnVsbHB0
ciB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9QYXJhbGxlbEhlbHBlclBvb2wuY3Bw
IGIvU291cmNlL1dURi93dGYvUGFyYWxsZWxIZWxwZXJQb29sLmNwcAppbmRleCA0NDNkNzMxM2U2
YmFkMDI4NDM0OWU2MTA3ZjIwMzk3ZjkzZjQzYThkLi5jNzM0Njg1NTkzMTRkMDk3MDBiZGQ4YTVk
MGE1NTIwMWUwZDUwYzljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9QYXJhbGxlbEhlbHBl
clBvb2wuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL1BhcmFsbGVsSGVscGVyUG9vbC5jcHAKQEAg
LTEyMiw3ICsxMjIsNyBAQCB2b2lkIFBhcmFsbGVsSGVscGVyQ2xpZW50OjpydW5UYXNrKGNvbnN0
IFJlZlB0cjxTaGFyZWRUYXNrPHZvaWQgKCk+PiYgdGFzaykKIH0KIAogUGFyYWxsZWxIZWxwZXJQ
b29sOjpQYXJhbGxlbEhlbHBlclBvb2woQ1N0cmluZyYmIHRocmVhZE5hbWUpCi0gICAgOiBtX2xv
Y2soQm94PExvY2s+OjpjcmVhdGUoKSkKKyAgICA6IG1fbG9jayhCb3g8VW5jaGVja2VkTG9jaz46
OmNyZWF0ZSgpKQogICAgICwgbV93b3JrQXZhaWxhYmxlQ29uZGl0aW9uKEF1dG9tYXRpY1RocmVh
ZENvbmRpdGlvbjo6Y3JlYXRlKCkpCiAgICAgLCBtX3RocmVhZE5hbWUoV1RGTW92ZSh0aHJlYWRO
YW1lKSkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1BhcmFsbGVsSGVscGVyUG9vbC5o
IGIvU291cmNlL1dURi93dGYvUGFyYWxsZWxIZWxwZXJQb29sLmgKaW5kZXggMWU3NTk5YzgzZDY3
MTIxYzdlNmJmZTg3Y2NhOTFlZjZjZTg2ZTQwNy4uNjY0ZmFkZTg1Mzk5M2FiNGIwNTk1NDg3MjIx
NGYzODdjOWE2ZDA1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvUGFyYWxsZWxIZWxwZXJQ
b29sLmgKKysrIGIvU291cmNlL1dURi93dGYvUGFyYWxsZWxIZWxwZXJQb29sLmgKQEAgLTE5OSw5
ICsxOTksOSBAQCBwcml2YXRlOgogICAgIFBhcmFsbGVsSGVscGVyQ2xpZW50KiBnZXRDbGllbnRX
aXRoVGFzayhjb25zdCBBYnN0cmFjdExvY2tlciYpOwogICAgIFBhcmFsbGVsSGVscGVyQ2xpZW50
KiB3YWl0Rm9yQ2xpZW50V2l0aFRhc2soY29uc3QgQWJzdHJhY3RMb2NrZXImKTsKICAgICAKLSAg
ICBCb3g8TG9jaz4gbV9sb2NrOyAvLyBBdXRvbWF0aWNUaHJlYWQgd2FudHMgdGhpcyBpbiBhIGJv
eCBmb3Igc2FmZXR5LgorICAgIEJveDxVbmNoZWNrZWRMb2NrPiBtX2xvY2s7IC8vIEF1dG9tYXRp
Y1RocmVhZCB3YW50cyB0aGlzIGluIGEgYm94IGZvciBzYWZldHkuCiAgICAgUmVmPEF1dG9tYXRp
Y1RocmVhZENvbmRpdGlvbj4gbV93b3JrQXZhaWxhYmxlQ29uZGl0aW9uOwotICAgIENvbmRpdGlv
biBtX3dvcmtDb21wbGV0ZUNvbmRpdGlvbjsKKyAgICBVbmNoZWNrZWRDb25kaXRpb24gbV93b3Jr
Q29tcGxldGVDb25kaXRpb247CiAKICAgICBXZWFrUmFuZG9tIG1fcmFuZG9tOwogICAgIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dURi93dGYvUmVjdXJzaXZlTG9ja0FkYXB0ZXIuaCBiL1NvdXJjZS9X
VEYvd3RmL1JlY3Vyc2l2ZUxvY2tBZGFwdGVyLmgKaW5kZXggMWVlMTJkNDE5NDcyNmQyMzI0OTJk
NjU0NDQxNmVmNjYxNDhiZDY2YS4uY2E3YmM0NTU0NDdiMTUyMjA3Y2UxYWI3ZjBjYjQ0ZDRlZDE4
ZThkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvUmVjdXJzaXZlTG9ja0FkYXB0ZXIuaAor
KysgYi9Tb3VyY2UvV1RGL3d0Zi9SZWN1cnNpdmVMb2NrQWRhcHRlci5oCkBAIC04OSw3ICs4OSw3
IEBAIHByaXZhdGU6CiAgICAgTG9ja1R5cGUgbV9sb2NrOwogfTsKIAotdXNpbmcgUmVjdXJzaXZl
TG9jayA9IFJlY3Vyc2l2ZUxvY2tBZGFwdGVyPExvY2s+OwordXNpbmcgUmVjdXJzaXZlTG9jayA9
IFJlY3Vyc2l2ZUxvY2tBZGFwdGVyPFVuY2hlY2tlZExvY2s+OwogCiB9IC8vIG5hbWVzcGFjZSBX
VEYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvV29ya2VyUG9vbC5jcHAgYi9Tb3VyY2Uv
V1RGL3d0Zi9Xb3JrZXJQb29sLmNwcAppbmRleCA4YTljMWZkYTc0YTczYjJjNWFiNWNkYTJkOGU0
NjA5YWJlODBhMzBiLi4yMTlkYmYxNTFkNjYzN2M2N2EzZTQ3NmZkMTNlM2QxYjg4YjQzNTdhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9Xb3JrZXJQb29sLmNwcAorKysgYi9Tb3VyY2UvV1RG
L3d0Zi9Xb3JrZXJQb29sLmNwcApAQCAtMzIsNyArMzIsNyBAQCBjbGFzcyBXb3JrZXJQb29sOjpX
b3JrZXIgZmluYWwgOiBwdWJsaWMgQXV0b21hdGljVGhyZWFkIHsKIHB1YmxpYzoKICAgICBmcmll
bmQgY2xhc3MgV29ya2VyUG9vbDsKIAotICAgIFdvcmtlcihjb25zdCBBYnN0cmFjdExvY2tlciYg
bG9ja2VyLCBXb3JrZXJQb29sJiBwb29sLCBCb3g8TG9jaz4gbG9jaywgUmVmPEF1dG9tYXRpY1Ro
cmVhZENvbmRpdGlvbj4mJiBjb25kaXRpb24sIFNlY29uZHMgdGltZW91dCkKKyAgICBXb3JrZXIo
Y29uc3QgQWJzdHJhY3RMb2NrZXImIGxvY2tlciwgV29ya2VyUG9vbCYgcG9vbCwgQm94PFVuY2hl
Y2tlZExvY2s+IGxvY2ssIFJlZjxBdXRvbWF0aWNUaHJlYWRDb25kaXRpb24+JiYgY29uZGl0aW9u
LCBTZWNvbmRzIHRpbWVvdXQpCiAgICAgICAgIDogQXV0b21hdGljVGhyZWFkKGxvY2tlciwgbG9j
aywgV1RGTW92ZShjb25kaXRpb24pLCB0aW1lb3V0KQogICAgICAgICAsIG1fcG9vbChwb29sKQog
ICAgIHsKQEAgLTgyLDcgKzgyLDcgQEAgcHJpdmF0ZToKIH07CiAKIFdvcmtlclBvb2w6Oldvcmtl
clBvb2woQVNDSUlMaXRlcmFsIG5hbWUsIHVuc2lnbmVkIG51bWJlck9mV29ya2VycywgU2Vjb25k
cyB0aW1lb3V0KQotICAgIDogbV9sb2NrKEJveDxMb2NrPjo6Y3JlYXRlKCkpCisgICAgOiBtX2xv
Y2soQm94PFVuY2hlY2tlZExvY2s+OjpjcmVhdGUoKSkKICAgICAsIG1fY29uZGl0aW9uKEF1dG9t
YXRpY1RocmVhZENvbmRpdGlvbjo6Y3JlYXRlKCkpCiAgICAgLCBtX3RpbWVvdXQodGltZW91dCkK
ICAgICAsIG1fbmFtZShuYW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvV29ya2VyUG9v
bC5oIGIvU291cmNlL1dURi93dGYvV29ya2VyUG9vbC5oCmluZGV4IDYyMzVlNzMxZWQ3NWI4MDEy
NTA5NTM1OTA2OGIwOGQ0YzFkY2ZlYzIuLjdhNDA0MmI0NmIxNjg4MDIzZjFjZWY5ZTY0MmFiMmM0
OGM4ODkzZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1dvcmtlclBvb2wuaAorKysgYi9T
b3VyY2UvV1RGL3d0Zi9Xb3JrZXJQb29sLmgKQEAgLTU3LDcgKzU3LDcgQEAgcHJpdmF0ZToKIAog
ICAgIGJvb2wgc2hvdWxkU2xlZXAoY29uc3QgQWJzdHJhY3RMb2NrZXImKTsKIAotICAgIEJveDxM
b2NrPiBtX2xvY2s7CisgICAgQm94PFVuY2hlY2tlZExvY2s+IG1fbG9jazsKICAgICBSZWY8QXV0
b21hdGljVGhyZWFkQ29uZGl0aW9uPiBtX2NvbmRpdGlvbjsKICAgICBTZWNvbmRzIG1fdGltZW91
dDsKICAgICBNb25vdG9uaWNUaW1lIG1fbGFzdFRpbWVvdXRUaW1lIHsgTW9ub3RvbmljVGltZTo6
bmFuKCkgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvQXRvbVN0cmluZ0ltcGwu
Y3BwIGIvU291cmNlL1dURi93dGYvdGV4dC9BdG9tU3RyaW5nSW1wbC5jcHAKaW5kZXggYTAyOGU0
MmEzNDY0MTk2ZmRhODc0M2Y3MTI3ZDhiNzNiM2QxYzI4Yy4uMDA5ZTJhMThmZmQyYTRhNDc0YTFl
ZGRmNTU4ZjZlY2FiODI3OTM0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvdGV4dC9BdG9t
U3RyaW5nSW1wbC5jcHAKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9BdG9tU3RyaW5nSW1wbC5j
cHAKQEAgLTQ1LDcgKzQ1LDcgQEAgY2xhc3MgQXRvbVN0cmluZ1RhYmxlTG9ja2VyIDogcHVibGlj
IExvY2tIb2xkZXIgewogICAgIHN0YXRpYyBMb2NrIHNfc3RyaW5nVGFibGVMb2NrOwogcHVibGlj
OgogICAgIEF0b21TdHJpbmdUYWJsZUxvY2tlcigpCi0gICAgICAgIDogTG9ja0hvbGRlcigmc19z
dHJpbmdUYWJsZUxvY2spCisgICAgICAgIDogTG9ja0hvbGRlcihzX3N0cmluZ1RhYmxlTG9jaykK
ICAgICB7CiAgICAgfQogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL3NlcnZlci9JREJTZXJ2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvc2VydmVyL0lEQlNlcnZlci5jcHAKaW5kZXggMWVkZWVkMmEzZmE2MjJjNTgyMjRiMDY4
MzBhM2FiNDM0NGMwNDZjYS4uNDlkODc2NjJmY2IzYTVhZTIzZjJhN2FiNTI3ZTY1NTdjMzI2ZWEz
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lE
QlNlcnZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVy
L0lEQlNlcnZlci5jcHAKQEAgLTczMyw3ICs3MzMsNyBAQCB2b2lkIElEQlNlcnZlcjo6cmVuYW1l
T3JpZ2luKGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgb2xkT3JpZ2luLCBjb25z
dAogICAgICAgICBGaWxlU3lzdGVtOjptb3ZlRmlsZShvbGRPcmlnaW5QYXRoLCBuZXdPcmlnaW5Q
YXRoKTsKIH0KIAotU3RvcmFnZVF1b3RhTWFuYWdlcjo6RGVjaXNpb24gSURCU2VydmVyOjpyZXF1
ZXN0U3BhY2UoY29uc3QgQ2xpZW50T3JpZ2luJiBvcmlnaW4sIHVpbnQ2NF90IHRhc2tTaXplKQor
U3RvcmFnZVF1b3RhTWFuYWdlcjo6RGVjaXNpb24gSURCU2VydmVyOjpyZXF1ZXN0U3BhY2UoY29u
c3QgQ2xpZW50T3JpZ2luJiBvcmlnaW4sIHVpbnQ2NF90IHRhc2tTaXplKSBXVEZfSUdOT1JFU19U
SFJFQURfU0FGRVRZX0FOQUxZU0lTCiB7CiAgICAgQVNTRVJUKCFpc01haW5UaHJlYWQoKSk7CiAg
ICAgQVNTRVJUKG1fbG9jay5pc0hlbGQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1ZGlvL01lZGlhRWxlbWVudEF1ZGlvU291cmNlTm9kZS5oIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdWRpby9NZWRpYUVsZW1lbnRBdWRpb1NvdXJjZU5vZGUuaAppbmRl
eCA3NDM5YTZkYjI4MmZiYjk0ZjQxMWU0NzE1YWRhMTU5OGNiMDRiYzM0Li4wNmZlNTFkOTQ0ZDBi
OGU5YzhkYjYxNDY3ZDFhMTg2YzVkZGY0MTRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1ZGlvL01lZGlhRWxlbWVudEF1ZGlvU291cmNlTm9kZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vTWVkaWFFbGVtZW50QXVkaW9Tb3VyY2VOb2RlLmgK
QEAgLTU0LDcgKzU0LDcgQEAgcHVibGljOgogICAgIC8vIEF1ZGlvU291cmNlUHJvdmlkZXJDbGll
bnQKICAgICB2b2lkIHNldEZvcm1hdChzaXplX3QgbnVtYmVyT2ZDaGFubmVscywgZmxvYXQgc2Ft
cGxlUmF0ZSkgb3ZlcnJpZGU7CiAKLSAgICBMb2NrJiBwcm9jZXNzTG9jaygpIHsgcmV0dXJuIG1f
cHJvY2Vzc0xvY2s7IH0KKyAgICBVbmNoZWNrZWRMb2NrJiBwcm9jZXNzTG9jaygpIHsgcmV0dXJu
IG1fcHJvY2Vzc0xvY2s7IH0KIAogcHJpdmF0ZToKICAgICBNZWRpYUVsZW1lbnRBdWRpb1NvdXJj
ZU5vZGUoQmFzZUF1ZGlvQ29udGV4dCYsIFJlZjxIVE1MTWVkaWFFbGVtZW50PiYmKTsKQEAgLTcw
LDcgKzcwLDcgQEAgcHJpdmF0ZToKICAgICBib29sIHdvdWxkVGFpbnRPcmlnaW4oKTsKIAogICAg
IFJlZjxIVE1MTWVkaWFFbGVtZW50PiBtX21lZGlhRWxlbWVudDsKLSAgICBMb2NrIG1fcHJvY2Vz
c0xvY2s7CisgICAgVW5jaGVja2VkTG9jayBtX3Byb2Nlc3NMb2NrOwogCiAgICAgdW5zaWduZWQg
bV9zb3VyY2VOdW1iZXJPZkNoYW5uZWxzIHsgMCB9OwogICAgIGRvdWJsZSBtX3NvdXJjZVNhbXBs
ZVJhdGUgeyAwIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFi
YXNlL0RhdGFiYXNlVHJhY2tlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFi
YXNlL0RhdGFiYXNlVHJhY2tlci5jcHAKaW5kZXggNDViMjdmOWQzNTE5YzExOTkyNDc2NmVjNGMy
N2U0MDEzNDI5MjA0OS4uYTlmMjgwYjljNTlmNDhiZGIyOGRhNzMwMTUzNzY0M2U5NGRkNjU2MCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRy
YWNrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJh
c2VUcmFja2VyLmNwcApAQCAtMTI4NSw4ICsxMjg1LDggQEAgYm9vbCBEYXRhYmFzZVRyYWNrZXI6
OmRlbGV0ZURhdGFiYXNlRmlsZUlmRW1wdHkoY29uc3QgU3RyaW5nJiBwYXRoKQogICAgIHJldHVy
biBTUUxpdGVGaWxlU3lzdGVtOjpkZWxldGVEYXRhYmFzZUZpbGUocGF0aCk7CiB9CiAKLXN0YXRp
YyBMb2NrIG9wZW5EYXRhYmFzZUxvY2s7Ci1Mb2NrJiBEYXRhYmFzZVRyYWNrZXI6Om9wZW5EYXRh
YmFzZU11dGV4KCkKK3N0YXRpYyBVbmNoZWNrZWRMb2NrIG9wZW5EYXRhYmFzZUxvY2s7CitVbmNo
ZWNrZWRMb2NrJiBEYXRhYmFzZVRyYWNrZXI6Om9wZW5EYXRhYmFzZU11dGV4KCkKIHsKICAgICBy
ZXR1cm4gb3BlbkRhdGFiYXNlTG9jazsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VUcmFja2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlVHJhY2tlci5oCmluZGV4IGRkOWM1ZDg3NzZiZDFkYzM4
OTY2ZTc1ZjU0ZjEzMWFkZDc2NjhiMzQuLmJkY2Y2ZDA3ZGQ4YTMzNjVkYzRhZmViOTQzZmNiOGI1
YWNlOTRmNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2Uv
RGF0YWJhc2VUcmFja2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFz
ZS9EYXRhYmFzZVRyYWNrZXIuaApAQCAtMTA0LDcgKzEwNCw3IEBAIHB1YmxpYzoKICAgICAvLyBN
b2JpbGVTYWZhcmkgd2lsbCBncmFiIHRoaXMgbXV0ZXggb24gdGhlIG1haW4gdGhyZWFkIGJlZm9y
ZSBkaXNwYXRjaGluZyB0aGUgdGFzayB0byAKICAgICAvLyBjbGVhbiB1cCB6ZXJvIGJ5dGUgZGF0
YWJhc2UgZmlsZXMuICBBbnkgb3BlcmF0aW9ucyB0byBvcGVuIG5ldyBkYXRhYmFzZSB3aWxsIGhh
dmUgdG8KICAgICAvLyB3YWl0IGZvciB0aGF0IHRhc2sgdG8gZmluaXNoIGJ5IHdhaXRpbmcgb24g
dGhpcyBtdXRleC4KLSAgICBzdGF0aWMgTG9jayYgb3BlbkRhdGFiYXNlTXV0ZXgoKTsKKyAgICBz
dGF0aWMgVW5jaGVja2VkTG9jayYgb3BlbkRhdGFiYXNlTXV0ZXgoKTsKICAgICAKICAgICBXRUJD
T1JFX0VYUE9SVCBzdGF0aWMgdm9pZCBlbXB0eURhdGFiYXNlRmlsZXNSZW1vdmFsVGFza1dpbGxC
ZVNjaGVkdWxlZCgpOwogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyB2b2lkIGVtcHR5RGF0YWJh
c2VGaWxlc1JlbW92YWxUYXNrRGlkRmluaXNoKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL09yaWdpbkxvY2suY3BwIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJkYXRhYmFzZS9PcmlnaW5Mb2NrLmNwcAppbmRleCBhMjFiY2RiNzgzODZjODEwZWM1
OTk0MWMyNzVmNGVmYmFmZjIzZmIzLi43NTNlNGU1YWM4NjYyODNhNGM3M2Y0NGFmOWFhNGVjZGY1
ZDE1YWVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL09y
aWdpbkxvY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvT3Jp
Z2luTG9jay5jcHAKQEAgLTQzLDcgKzQzLDcgQEAgT3JpZ2luTG9jazo6T3JpZ2luTG9jayhTdHJp
bmcgb3JpZ2luUGF0aCkKIAogT3JpZ2luTG9jazo6fk9yaWdpbkxvY2soKSA9IGRlZmF1bHQ7CiAK
LXZvaWQgT3JpZ2luTG9jazo6bG9jaygpCit2b2lkIE9yaWdpbkxvY2s6OmxvY2soKSBXVEZfSUdO
T1JFU19USFJFQURfU0FGRVRZX0FOQUxZU0lTCiB7CiAgICAgbV9tdXRleC5sb2NrKCk7CiAKQEAg
LTU5LDcgKzU5LDcgQEAgdm9pZCBPcmlnaW5Mb2NrOjpsb2NrKCkKICNlbmRpZgogfQogCi12b2lk
IE9yaWdpbkxvY2s6OnVubG9jaygpCit2b2lkIE9yaWdpbkxvY2s6OnVubG9jaygpIFdURl9JR05P
UkVTX1RIUkVBRF9TQUZFVFlfQU5BTFlTSVMKIHsKICNpZiBVU0UoRklMRV9MT0NLKQogICAgIC8v
IElmIHRoZSBmaWxlIGRlc2NyaXB0b3Igd2FzIHVuaW5pdGlhbGl6ZWQsIHRoZW4gdGhhdCBtZWFu
cyB0aGUgZGlyZWN0b3J5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0RPTUdsb2JhbE9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01HbG9i
YWxPYmplY3QuaAppbmRleCAxNjRjNzIzODY0NmEwMGEzZDA1ZWExYmE0MWM5NzA2MDU1ZDQxNGU0
Li45NTZkNTFhZDQ4MGQ0ZGQyYzBhODkzOGRlYWY0NGRhYWJhYTc1NmRmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9iamVjdC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0LmgKQEAgLTU4LDcgKzU4LDcg
QEAgcHVibGljOgogICAgIHN0YXRpYyB2b2lkIGRlc3Ryb3koSlNDOjpKU0NlbGwqKTsKIAogcHVi
bGljOgotICAgIExvY2smIGdjTG9jaygpIHsgcmV0dXJuIG1fZ2NMb2NrOyB9CisgICAgVW5jaGVj
a2VkTG9jayYgZ2NMb2NrKCkgeyByZXR1cm4gbV9nY0xvY2s7IH0KIAogICAgIEpTRE9NU3RydWN0
dXJlTWFwJiBzdHJ1Y3R1cmVzKGNvbnN0IEFic3RyYWN0TG9ja2VyJikgeyByZXR1cm4gbV9zdHJ1
Y3R1cmVzOyB9CiAgICAgSlNET01Db25zdHJ1Y3Rvck1hcCYgY29uc3RydWN0b3JzKGNvbnN0IEFi
c3RyYWN0TG9ja2VyJikgeyByZXR1cm4gbV9jb25zdHJ1Y3RvcnM7IH0KQEAgLTEyMSw3ICsxMjEs
NyBAQCBwcm90ZWN0ZWQ6CiAKICAgICBSZWY8RE9NV3JhcHBlcldvcmxkPiBtX3dvcmxkOwogICAg
IHVpbnQ4X3QgbV93b3JsZElzTm9ybWFsOwotICAgIExvY2sgbV9nY0xvY2s7CisgICAgVW5jaGVj
a2VkTG9jayBtX2djTG9jazsKICAgICBKU0M6OldyaXRlQmFycmllcjxKU0M6OkpTUHJveHk+IG1f
cHJveHk7CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKaW5kZXggN2VhZTNhMTFhZWNmYjJhYWQ5
OWZmMTkyYjQ1ODdkOTY3NWNmZGZiNy4uYTJlNWNhM2YxMjE2ODM4MDk4MzI0MGZmYmExZTRmZGE3
MDMyNWY0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcApAQCAtMjIxMSw3ICsyMjExLDcgQEAgc3RhdGljIEV2
ZW50VGFyZ2V0RGF0YU1hcCYgZXZlbnRUYXJnZXREYXRhTWFwKCkKICAgICByZXR1cm4gbWFwOwog
fQogCi1zdGF0aWMgTG9jayBzX2V2ZW50VGFyZ2V0RGF0YU1hcExvY2s7CitzdGF0aWMgVW5jaGVj
a2VkTG9jayBzX2V2ZW50VGFyZ2V0RGF0YU1hcExvY2s7CiAKIEV2ZW50VGFyZ2V0RGF0YSogTm9k
ZTo6ZXZlbnRUYXJnZXREYXRhKCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTE1lZGlhRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1l
bnQuY3BwCmluZGV4IDliZDQwMDEwYzM1YWEwZTk3YjZlMWRhZTQ4YjNlMTBkNGQ5NWQ2N2YuLjFi
Y2RjYTFhNzJjODAwMTVjNDQ4MDJmYWFmNDU2YTQ2ZDg0ZTNjNWMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcApAQCAtNjYyNiw3ICs2NjI2LDcgQEAgdm9pZCBIVE1M
TWVkaWFFbGVtZW50OjpjcmVhdGVNZWRpYVBsYXllcigpCiAKICNpZiBFTkFCTEUoV0VCX0FVRElP
KQogICAgIGF1dG8gcHJvdGVjdGVkQXVkaW9Tb3VyY2VOb2RlID0gbWFrZVJlZlB0cihtX2F1ZGlv
U291cmNlTm9kZSk7Ci0gICAgTG9ja2VyPExvY2s+IGF1ZGlvU291cmNlTm9kZUxvY2tlcihtX2F1
ZGlvU291cmNlTm9kZSA/ICZtX2F1ZGlvU291cmNlTm9kZS0+cHJvY2Vzc0xvY2soKSA6IG51bGxw
dHIpOworICAgIExvY2tlciBhdWRpb1NvdXJjZU5vZGVMb2NrZXIobV9hdWRpb1NvdXJjZU5vZGUg
PyAmbV9hdWRpb1NvdXJjZU5vZGUtPnByb2Nlc3NMb2NrKCkgOiBudWxscHRyKTsKICNlbmRpZgog
CiAjaWYgRU5BQkxFKE1FRElBX1NPVVJDRSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL1dlYkdMQ29udGV4dEdyb3VwLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2Fu
dmFzL1dlYkdMQ29udGV4dEdyb3VwLmNwcAppbmRleCBhYmQ4ZjI3MzY4MzkxZTNlMWQ3ZmNmOWQz
N2I5ZDc3OTZhZjMzNjFiLi4xNGMyYTA4OTk3ZDkwMWRhMTQwYTRiMDM3ODQ4ZTc0MTQ0M2Y2NTI1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTENvbnRleHRHcm91
cC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xDb250ZXh0R3JvdXAu
Y3BwCkBAIC01NSw3ICs1NSw3IEBAIEdyYXBoaWNzQ29udGV4dEdMJiBXZWJHTENvbnRleHRHcm91
cDo6Z2V0QUdyYXBoaWNzQ29udGV4dEdMKCkKICAgICByZXR1cm4gKigqbV9jb250ZXh0cy5iZWdp
bigpKS0+Z3JhcGhpY3NDb250ZXh0R0woKTsKIH0KIAotV1RGOjpMb2NrJiBXZWJHTENvbnRleHRH
cm91cDo6b2JqZWN0R3JhcGhMb2NrRm9yQUNvbnRleHQoKQorVW5jaGVja2VkTG9jayYgV2ViR0xD
b250ZXh0R3JvdXA6Om9iamVjdEdyYXBoTG9ja0ZvckFDb250ZXh0KCkKIHsKICAgICBBU1NFUlQo
IW1fY29udGV4dHMuaXNFbXB0eSgpKTsKICAgICAvLyBTaW5jZSB0aGUgV0VCR0xfc2hhcmVkX29i
amVjdHMgZXh0ZW5zaW9uIG5ldmVyIHNoaXBwZWQsIGFuZCBpcwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xDb250ZXh0R3JvdXAuaCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL1dlYkdMQ29udGV4dEdyb3VwLmgKaW5kZXggODU1Y2U3MjM5ODZmZTA3NzU5
OGYyNDY4MWFlODA4NmM4MWVkZmEwMy4uYjZhZmUwYWY5N2ViZGZmYWMxYTFjZDAwNDNmZmJmNzlj
Y2QxNzc4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xDb250
ZXh0R3JvdXAuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTENvbnRleHRH
cm91cC5oCkBAIC00NSw3ICs0NSw3IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgaGFzQUNvbnRleHQo
KSBjb25zdDsKICAgICBHcmFwaGljc0NvbnRleHRHTCYgZ2V0QUdyYXBoaWNzQ29udGV4dEdMKCk7
Ci0gICAgTG9jayYgb2JqZWN0R3JhcGhMb2NrRm9yQUNvbnRleHQoKTsKKyAgICBVbmNoZWNrZWRM
b2NrJiBvYmplY3RHcmFwaExvY2tGb3JBQ29udGV4dCgpOwogCiAgICAgdm9pZCBsb3NlQ29udGV4
dEdyb3VwKFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6Okxvc3RDb250ZXh0TW9kZSk7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMQ29udGV4dE9iamVjdC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTENvbnRleHRPYmplY3QuY3BwCmlu
ZGV4IDdjOTE5ZjJiNjY1NmI2N2IxNmNhNjM0MGIwYjJhNGI2NDVkMDQ2M2IuLjI0MzU0ZDA1Yjgx
YmM4NTIyYmU3N2QzYmI4ZjRjY2U0N2ViMzYzZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL1dlYkdMQ29udGV4dE9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvV2ViR0xDb250ZXh0T2JqZWN0LmNwcApAQCAtNTQsNyArNTQsNyBAQCB2b2lk
IFdlYkdMQ29udGV4dE9iamVjdDo6ZGV0YWNoQ29udGV4dChjb25zdCBBYnN0cmFjdExvY2tlciYg
bG9ja2VyKQogICAgIH0KIH0KIAotV1RGOjpMb2NrJiBXZWJHTENvbnRleHRPYmplY3Q6Om9iamVj
dEdyYXBoTG9ja0ZvckNvbnRleHQoKQorVW5jaGVja2VkTG9jayYgV2ViR0xDb250ZXh0T2JqZWN0
OjpvYmplY3RHcmFwaExvY2tGb3JDb250ZXh0KCkKIHsKICAgICAvLyBTaG91bGQgbm90IGNhbGwg
dGhpcyBpZiB0aGUgb2JqZWN0IG9yIGNvbnRleHQgaGFzIGJlZW4gZGVsZXRlZC4KICAgICBBU1NF
UlQobV9jb250ZXh0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dl
YkdMQ29udGV4dE9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xDb250
ZXh0T2JqZWN0LmgKaW5kZXggZGJmZGQ2YmZjMGVmNDRlYjg4MmViOWM1OWIwMDhkMjk4MTEyNjQ5
NS4uMGVhNzk5ZmZiYjNhOGFhZTAxMTNkOWE1NWNlM2U2M2JiYTJjOGVhZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xDb250ZXh0T2JqZWN0LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xDb250ZXh0T2JqZWN0LmgKQEAgLTQ5LDcgKzQ5
LDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBkZXRhY2hDb250ZXh0KGNvbnN0IFdURjo6QWJzdHJh
Y3RMb2NrZXImKTsKIAotICAgIFdURjo6TG9jayYgb2JqZWN0R3JhcGhMb2NrRm9yQ29udGV4dCgp
IG92ZXJyaWRlOworICAgIFVuY2hlY2tlZExvY2smIG9iamVjdEdyYXBoTG9ja0ZvckNvbnRleHQo
KSBvdmVycmlkZTsKIAogcHJvdGVjdGVkOgogICAgIFdlYkdMQ29udGV4dE9iamVjdChXZWJHTFJl
bmRlcmluZ0NvbnRleHRCYXNlJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2Nh
bnZhcy9XZWJHTE9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xPYmpl
Y3QuaAppbmRleCAwMGNkOGYwYzJiN2IyMWJiZjk3MmFmYTdjZmM1ZWU4NWUzZTA2MGRkLi41MzA3
NTU4ODQxMDQ3NTA0MmM2MWFlNTYwMDk1YThiNmY5ODI4OGM0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTE9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL1dlYkdMT2JqZWN0LmgKQEAgLTMyLDcgKzMyLDcgQEAKIAogbmFtZXNwYWNlIFdU
RiB7CiBjbGFzcyBBYnN0cmFjdExvY2tlcjsKLWNsYXNzIExvY2s7CitjbGFzcyBVbmNoZWNrZWRM
b2NrOwogfQogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC03MSw3ICs3MSw3IEBAIHB1YmxpYzoK
ICAgICAvLyBXRUJHTF9zaGFyZWRfb2JqZWN0cyBleHRlbnNpb24gc3BlY2lmaWNhdGlvbiBuZXZl
ciBzaGlwcGVkIChhbmQKICAgICAvLyBpcyB1bmxpa2VseSB0byksIHRoaXMgYmFzaWNhbGx5IHJl
dHVybnMgdGhlIHNhbWUgcmVzdWx0IGZvcgogICAgIC8vIGJvdGggY29udGV4dCBvYmplY3RzIGFu
ZCBzaGFyZWQgb2JqZWN0cy4KLSAgICB2aXJ0dWFsIFdURjo6TG9jayYgb2JqZWN0R3JhcGhMb2Nr
Rm9yQ29udGV4dCgpID0gMDsKKyAgICB2aXJ0dWFsIFVuY2hlY2tlZExvY2smIG9iamVjdEdyYXBo
TG9ja0ZvckNvbnRleHQoKSA9IDA7CiAKIHByb3RlY3RlZDoKICAgICBXZWJHTE9iamVjdCgpID0g
ZGVmYXVsdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVu
ZGVyaW5nQ29udGV4dEJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xS
ZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAKaW5kZXggNTE1NTQ4OGQ3ZWQxZGE5NTBkNWFmNjc4ZDQ2
ZDIzNDBiOGJhOWNlZS4uMzljMzJlODQ0OWE2YjhkNDBmYWJhZjA0ZmU5MDZjMGM1NDIwYjBjNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250
ZXh0QmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJp
bmdDb250ZXh0QmFzZS5jcHAKQEAgLTc5OTAsNyArNzk5MCw3IEBAIHZvaWQgV2ViR0xSZW5kZXJp
bmdDb250ZXh0QmFzZTo6YWRkTWVtYmVyc1RvT3BhcXVlUm9vdHMoSlNDOjpBYnN0cmFjdFNsb3RW
aXNpdG9yCiAgICAgLy8gcm9vdHMgZm9yIGV4dGVuc2lvbnMuCiB9CiAKLUxvY2smIFdlYkdMUmVu
ZGVyaW5nQ29udGV4dEJhc2U6Om9iamVjdEdyYXBoTG9jaygpCitVbmNoZWNrZWRMb2NrJiBXZWJH
TFJlbmRlcmluZ0NvbnRleHRCYXNlOjpvYmplY3RHcmFwaExvY2soKQogewogICAgIHJldHVybiBt
X29iamVjdEdyYXBoTG9jazsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2Fu
dmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2Fu
dmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuaAppbmRleCBmYWU4YTUzOWVjODkxNDM5Mjll
YWI0NmZjYTMzYzMxMjZhM2MxNjlmLi5kN2NiZWVkMzJjYmMwYjc5N2MxMDY4ZmQ1OTdkMTNlZDhl
NGMxOTczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRl
cmluZ0NvbnRleHRCYXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xS
ZW5kZXJpbmdDb250ZXh0QmFzZS5oCkBAIC00MjYsNyArNDI2LDcgQEAgcHVibGljOgogICAgIC8v
IGN1cnJlbnRseSBsYXRjaGVkIGludG8gdGhlIGNvbnRleHQgLSB3aXRob3V0IHRyYXZlcnNpbmcg
YWxsIG9mCiAgICAgLy8gdGhlIGxhdGNoZWQgb2JqZWN0cyB0byBmaW5kIHRoZSBjdXJyZW50IG9u
ZSwgd2hpY2ggd291bGQgYmUKICAgICAvLyBwcm9oaWJpdGl2ZWx5IGV4cGVuc2l2ZS4KLSAgICBM
b2NrJiBvYmplY3RHcmFwaExvY2soKTsKKyAgICBVbmNoZWNrZWRMb2NrJiBvYmplY3RHcmFwaExv
Y2soKTsKIAogcHJvdGVjdGVkOgogICAgIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UoQ2FudmFz
QmFzZSYsIFdlYkdMQ29udGV4dEF0dHJpYnV0ZXMpOwpAQCAtNTQwLDcgKzU0MCw3IEBAIHByb3Rl
Y3RlZDoKIAogICAgIFJlZlB0cjxHcmFwaGljc0NvbnRleHRHTD4gbV9jb250ZXh0OwogICAgIFJl
ZlB0cjxXZWJHTENvbnRleHRHcm91cD4gbV9jb250ZXh0R3JvdXA7Ci0gICAgTG9jayBtX29iamVj
dEdyYXBoTG9jazsKKyAgICBVbmNoZWNrZWRMb2NrIG1fb2JqZWN0R3JhcGhMb2NrOwogCiAgICAg
Ym9vbCBtX3Jlc3RvcmVBbGxvd2VkIHsgZmFsc2UgfTsKICAgICBTdXNwZW5kYWJsZVRpbWVyIG1f
cmVzdG9yZVRpbWVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2Vi
R0xTaGFyZWRPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xTaGFy
ZWRPYmplY3QuY3BwCmluZGV4IDkzNmM5ODFjOTkyOTBkOGU3Y2VmOThiMTNiNTY5M2NiZWIyMzc5
OGMuLjBhYjhjYjI0MWExYjNmMzg4ZmVmMzgyOTk3NmNlY2Y2ZDQ4N2QzNzggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMU2hhcmVkT2JqZWN0LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFNoYXJlZE9iamVjdC5jcHAKQEAgLTgyLDcg
KzgyLDcgQEAgR3JhcGhpY3NDb250ZXh0R0wqIFdlYkdMU2hhcmVkT2JqZWN0OjpnZXRBR3JhcGhp
Y3NDb250ZXh0R0woKSBjb25zdAogICAgIHJldHVybiBtX2NvbnRleHRHcm91cCA/ICZtX2NvbnRl
eHRHcm91cC0+Z2V0QUdyYXBoaWNzQ29udGV4dEdMKCkgOiBudWxscHRyOwogfQogCi1XVEY6Okxv
Y2smIFdlYkdMU2hhcmVkT2JqZWN0OjpvYmplY3RHcmFwaExvY2tGb3JDb250ZXh0KCkKK1VuY2hl
Y2tlZExvY2smIFdlYkdMU2hhcmVkT2JqZWN0OjpvYmplY3RHcmFwaExvY2tGb3JDb250ZXh0KCkK
IHsKICAgICAvLyBTaG91bGQgbm90IGNhbGwgdGhpcyBpZiB0aGUgb2JqZWN0IG9yIGNvbnRleHQg
aGFzIGJlZW4gZGVsZXRlZC4KICAgICBBU1NFUlQobV9jb250ZXh0R3JvdXApOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xTaGFyZWRPYmplY3QuaCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMU2hhcmVkT2JqZWN0LmgKaW5kZXggNWQxM2FmYTM4
NDZhYTIxNTMwYzBhYmQ1MzkwYWExZTc5OGU5ZTFkMC4uZjUzZGIxOWIwNjkyMjkwNmJkY2NiMTZj
MzkzNzM4NjE1ZjE3NjU3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
V2ViR0xTaGFyZWRPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJH
TFNoYXJlZE9iamVjdC5oCkBAIC01OSw3ICs1OSw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgZGV0
YWNoQ29udGV4dEdyb3VwV2l0aG91dERlbGV0aW5nT2JqZWN0KCk7CiAKLSAgICBXVEY6OkxvY2sm
IG9iamVjdEdyYXBoTG9ja0ZvckNvbnRleHQoKSBvdmVycmlkZTsKKyAgICBVbmNoZWNrZWRMb2Nr
JiBvYmplY3RHcmFwaExvY2tGb3JDb250ZXh0KCkgb3ZlcnJpZGU7CiAKIHByb3RlY3RlZDoKICAg
ICBXZWJHTFNoYXJlZE9iamVjdChXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZU1hYy5o
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVNYWMuaApp
bmRleCBiNDJiZjQxMTQ1NGZhMDM0YTdkYWE4NmMzMTUzYWExZDY2YTk4M2NlLi44OGRhZDFlZGQx
YjkwNTIwZDFmMGNiNmI3NzA2ZmVkMDIyNDA2N2FlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZU1hYy5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlTWFjLmgKQEAgLTU1LDggKzU1LDgg
QEAgcHJpdmF0ZToKICAgICB2b2lkIGRlZmVyV2hlZWxFdmVudFRlc3RDb21wbGV0aW9uRm9yUmVh
c29uKFdoZWVsRXZlbnRUZXN0TW9uaXRvcjo6U2Nyb2xsYWJsZUFyZWFJZGVudGlmaWVyLCBXaGVl
bEV2ZW50VGVzdE1vbml0b3I6OkRlZmVyUmVhc29uKSBmaW5hbDsKICAgICB2b2lkIHJlbW92ZVdo
ZWVsRXZlbnRUZXN0Q29tcGxldGlvbkRlZmVycmFsRm9yUmVhc29uKFdoZWVsRXZlbnRUZXN0TW9u
aXRvcjo6U2Nyb2xsYWJsZUFyZWFJZGVudGlmaWVyLCBXaGVlbEV2ZW50VGVzdE1vbml0b3I6OkRl
ZmVyUmVhc29uKSBmaW5hbDsKIAotICAgIHZvaWQgbG9ja0xheWVyc0ZvckhpdFRlc3RpbmcoKSBm
aW5hbDsKLSAgICB2b2lkIHVubG9ja0xheWVyc0ZvckhpdFRlc3RpbmcoKSBmaW5hbDsKKyAgICB2
b2lkIGxvY2tMYXllcnNGb3JIaXRUZXN0aW5nKCkgZmluYWwgV1RGX0FDUVVJUkVTX0xPQ0sobV9s
YXllckhpdFRlc3RNdXRleCk7CisgICAgdm9pZCB1bmxvY2tMYXllcnNGb3JIaXRUZXN0aW5nKCkg
ZmluYWwgV1RGX1JFTEVBU0VTX0xPQ0sobV9sYXllckhpdFRlc3RNdXRleCk7CiAKICAgICAvLyBU
aGlzIGxvY2sgcHJvdGVjdHMgdGhlIENBTGF5ZXIvUGxhdGZvcm1DQUxheWVyIHRyZWUuCiAgICAg
bXV0YWJsZSBMb2NrIG1fbGF5ZXJIaXRUZXN0TXV0ZXg7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9hdWRpby9SZXZlcmJDb252b2x2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vYXVkaW8vUmV2ZXJiQ29udm9sdmVyLmNwcAppbmRleCBjMjVjYWYwZDliYzQ2OTVj
NDgwZGRjYzk4NGZmOTE3ZWY1MjNjMGY2Li42MzVhOGY3N2IzMTQyMGRjMDVlZmY0NWY1ZjU4NTg4
OGZiYWJmYzk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9SZXZl
cmJDb252b2x2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1JldmVy
YkNvbnZvbHZlci5jcHAKQEAgLTE0OCw5ICsxNDgsOSBAQCB2b2lkIFJldmVyYkNvbnZvbHZlcjo6
YmFja2dyb3VuZFRocmVhZEVudHJ5KCkKICAgICAgICAgLy8gV2FpdCBmb3IgcmVhbHRpbWUgdGhy
ZWFkIHRvIGdpdmUgdXMgbW9yZSBpbnB1dAogICAgICAgICBtX21vcmVJbnB1dEJ1ZmZlcmVkID0g
ZmFsc2U7ICAgICAgICAKICAgICAgICAgewotICAgICAgICAgICAgc3RkOjp1bmlxdWVfbG9jazxM
b2NrPiBsb2NrKG1fYmFja2dyb3VuZFRocmVhZExvY2spOworICAgICAgICAgICAgTG9ja2VyIGxv
Y2tlciB7IG1fYmFja2dyb3VuZFRocmVhZExvY2sgfTsKIAotICAgICAgICAgICAgbV9iYWNrZ3Jv
dW5kVGhyZWFkQ29uZGl0aW9uVmFyaWFibGUud2FpdChsb2NrLCBbdGhpc10geyByZXR1cm4gbV9t
b3JlSW5wdXRCdWZmZXJlZCB8fCBtX3dhbnRzVG9FeGl0OyB9KTsKKyAgICAgICAgICAgIG1fYmFj
a2dyb3VuZFRocmVhZENvbmRpdGlvblZhcmlhYmxlLndhaXQobV9iYWNrZ3JvdW5kVGhyZWFkTG9j
aywgW3RoaXNdIHsgcmV0dXJuIG1fbW9yZUlucHV0QnVmZmVyZWQgfHwgbV93YW50c1RvRXhpdDsg
fSk7CiAgICAgICAgIH0KIAogICAgICAgICAvLyBQcm9jZXNzIGFsbCBvZiB0aGUgc3RhZ2VzIHVu
dGlsIHRoZWlyIHJlYWQgaW5kaWNlcyByZWFjaCB0aGUgaW5wdXQgYnVmZmVyJ3Mgd3JpdGUgaW5k
ZXgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1NoYWRvd0Js
dXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvU2hhZG93Qmx1ci5jcHAK
aW5kZXggYTNiMDU1ZDM4MzU2MmZmNGEwNjc4YTI4NWNiYmJhNzM0Yjg2ZjY5My4uMWRmODIwNDBk
ZjExNWVjYWM1OTZjMjMxY2YyZmQxZWI3YjhhMTIwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvU2hhZG93Qmx1ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvU2hhZG93Qmx1ci5jcHAKQEAgLTEyMiw3ICsxMjIsNyBAQCBwdWJs
aWM6CiAgICAgfQogCiAgICAgc3RhdGljIFNjcmF0Y2hCdWZmZXImIHNpbmdsZXRvbigpOwotICAg
IHN0YXRpYyBMb2NrJiBsb2NrKCk7CisgICAgc3RhdGljIFVuY2hlY2tlZExvY2smIGxvY2soKTsK
IAogcHJpdmF0ZToKICAgICB2b2lkIHNjaGVkdWxlU2NyYXRjaEJ1ZmZlclB1cmdlKCkKQEAgLTE2
OCw5ICsxNjgsOSBAQCBTY3JhdGNoQnVmZmVyJiBTY3JhdGNoQnVmZmVyOjpzaW5nbGV0b24oKQog
ICAgIHJldHVybiBzY3JhdGNoQnVmZmVyOwogfQogCi1Mb2NrJiBTY3JhdGNoQnVmZmVyOjpsb2Nr
KCkKK1VuY2hlY2tlZExvY2smIFNjcmF0Y2hCdWZmZXI6OmxvY2soKQogewotICAgIHN0YXRpYyBM
b2NrIGxvY2s7CisgICAgc3RhdGljIFVuY2hlY2tlZExvY2sgbG9jazsKICAgICByZXR1cm4gbG9j
azsKIH0KIApAQCAtNjk2LDcgKzY5Niw3IEBAIHZvaWQgU2hhZG93Qmx1cjo6ZHJhd1JlY3RTaGFk
b3dXaXRoVGlsaW5nKGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgdHJhbnNmb3JtLCBjb25zCiB7CiAg
ICAgUmVmUHRyPEltYWdlQnVmZmVyPiBsYXllckltYWdlQnVmZmVyOwogI2lmIFVTRShDRykKLSAg
ICBhdXRvIGxvY2tlciA9IExvY2tlcjxMb2NrPjo6dHJ5TG9jayhTY3JhdGNoQnVmZmVyOjpsb2Nr
KCkpOworICAgIGF1dG8gbG9ja2VyID0gTG9ja2VyPFVuY2hlY2tlZExvY2s+Ojp0cnlMb2NrKFNj
cmF0Y2hCdWZmZXI6OmxvY2soKSk7CiAgICAgaWYgKGxvY2tlcikgewogICAgICAgICBsYXllcklt
YWdlQnVmZmVyID0gU2NyYXRjaEJ1ZmZlcjo6c2luZ2xldG9uKCkuZ2V0U2NyYXRjaEJ1ZmZlcih0
ZW1wbGF0ZVNpemUpOwogICAgICAgICBpZiAoIWxheWVySW1hZ2VCdWZmZXIpCkBAIC03NTYsNyAr
NzU2LDcgQEAgdm9pZCBTaGFkb3dCbHVyOjpkcmF3SW5zZXRTaGFkb3dXaXRoVGlsaW5nKGNvbnN0
IEFmZmluZVRyYW5zZm9ybSYgdHJhbnNmb3JtLCBjb24KIHsKICAgICBSZWZQdHI8SW1hZ2VCdWZm
ZXI+IGxheWVySW1hZ2VCdWZmZXI7CiAjaWYgVVNFKENHKQotICAgIGF1dG8gbG9ja2VyID0gTG9j
a2VyPExvY2s+Ojp0cnlMb2NrKFNjcmF0Y2hCdWZmZXI6OmxvY2soKSk7CisgICAgYXV0byBsb2Nr
ZXIgPSBMb2NrZXI8VW5jaGVja2VkTG9jaz46OnRyeUxvY2soU2NyYXRjaEJ1ZmZlcjo6bG9jaygp
KTsKICAgICBpZiAobG9ja2VyKSB7CiAgICAgICAgIGxheWVySW1hZ2VCdWZmZXIgPSBTY3JhdGNo
QnVmZmVyOjpzaW5nbGV0b24oKS5nZXRTY3JhdGNoQnVmZmVyKHRlbXBsYXRlU2l6ZSk7CiAgICAg
ICAgIGlmICghbGF5ZXJJbWFnZUJ1ZmZlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb1NpbmtHU3RyZWFtZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1ZpZGVvU2lua0dTdHJlYW1lci5j
cHAKaW5kZXggMTFiZWExMmI2NmRjNTQ2MjVhODI5ZjkwNzRhOTJjMDM3NGNlMjg5NS4uNTdhNzJh
YzU4MGNlY2YxNmEwZTNhYjgwZmNmMzllMzk1ZmQwODhhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1ZpZGVvU2lua0dTdHJlYW1lci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1ZpZGVvU2lu
a0dTdHJlYW1lci5jcHAKQEAgLTEwNyw3ICsxMDcsNyBAQCBwdWJsaWM6CiAgICAgfQogCiBwcml2
YXRlOgotICAgIExvY2sgbV9zYW1wbGVNdXRleDsKKyAgICBVbmNoZWNrZWRMb2NrIG1fc2FtcGxl
TXV0ZXg7CiAgICAgR1JlZlB0cjxHc3RTYW1wbGU+IG1fc2FtcGxlOwogCiAgICAgLy8gSWYgdGhp
cyBpcyB0cnVlIGFsbCBwcm9jZXNzaW5nIHNob3VsZCBmaW5pc2ggQVNBUApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJj
ZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFt
ZXIvV2ViS2l0V2ViU291cmNlR1N0cmVhbWVyLmNwcAppbmRleCBkNDc2ZTQxNzcxZTI5YTEwZjg3
YTAyZDA2M2QyOWQ1Y2JhNjQ1YTAxLi41YzdjOTgwNmQzNGNiOGMxMzg1OWM5MWE5YzljYjJhZDk5
MTY3NzZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3Ry
ZWFtZXIvV2ViS2l0V2ViU291cmNlR1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvV2ViS2l0V2ViU291cmNlR1N0cmVhbWVyLmNwcApA
QCAtMTQwLDcgKzE0MCw3IEBAIHN0cnVjdCBXZWJLaXRXZWJTcmNQcml2YXRlIHsKIAogICAgICAg
ICAvLyBQcm9wZXJ0aWVzIHVzZWQgZm9yIEdTdHJlYW1lciBkYXRhLWZsb3cgaW4gY3JlYXRlKCku
CiAgICAgICAgIGJvb2wgaXNGbHVzaGluZyB7IGZhbHNlIH07Ci0gICAgICAgIENvbmRpdGlvbiBy
ZXNwb25zZUNvbmRpdGlvbjsgLy8gTXVzdCBiZSBzaWduYWxlZCBhZnRlciBhbnkgdXBkYXRlcyBv
biBIVFRQIHJlcXVlc3RzLCBhbmQgd2hlbiBmbHVzaGluZy4KKyAgICAgICAgVW5jaGVja2VkQ29u
ZGl0aW9uIHJlc3BvbnNlQ29uZGl0aW9uOyAvLyBNdXN0IGJlIHNpZ25hbGVkIGFmdGVyIGFueSB1
cGRhdGVzIG9uIEhUVFAgcmVxdWVzdHMsIGFuZCB3aGVuIGZsdXNoaW5nLgogICAgICAgICBHUmVm
UHRyPEdzdEFkYXB0ZXI+IGFkYXB0ZXI7CiAgICAgICAgIGJvb2wgaXNEdXJhdGlvblNldDsKICAg
ICAgICAgdWludDY0X3QgcmVhZFBvc2l0aW9uOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9XZWJLaXRDb21tb25FbmNyeXB0aW9uRGVj
cnlwdG9yR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dz
dHJlYW1lci9lbWUvV2ViS2l0Q29tbW9uRW5jcnlwdGlvbkRlY3J5cHRvckdTdHJlYW1lci5jcHAK
aW5kZXggMzIwMTc0ZDViZmU4NzZkYjhjMTQyMzU5YThlMWEwMWFhODZjMGZkYi4uZWIwODg1MWNj
ODYyMTJiNDZiYjgyOGM3YjM3ODNkYjMxNTY0YTdlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9XZWJLaXRDb21tb25FbmNyeXB0aW9u
RGVjcnlwdG9yR1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvZW1lL1dlYktpdENvbW1vbkVuY3J5cHRpb25EZWNyeXB0b3JHU3RyZWFt
ZXIuY3BwCkBAIC01Niw4ICs1Niw4IEBAIHN0cnVjdCBfV2ViS2l0TWVkaWFDb21tb25FbmNyeXB0
aW9uRGVjcnlwdFByaXZhdGUgewogICAgIFJlZlB0cjxDRE1Qcm94eT4gY2RtUHJveHk7CiAKICAg
ICAvLyBQcm90ZWN0IHRoZSBhY2Nlc3MgdG8gdGhlIHN0cnVjdHVyZSBtZW1iZXJzLgotICAgIExv
Y2sgbXV0ZXg7Ci0gICAgQ29uZGl0aW9uIGNvbmRpdGlvbjsKKyAgICBVbmNoZWNrZWRMb2NrIG11
dGV4OworICAgIFVuY2hlY2tlZENvbmRpdGlvbiBjb25kaXRpb247CiAKICAgICBib29sIGlzRmx1
c2hpbmcgeyBmYWxzZSB9OwogICAgIHN0ZDo6dW5pcXVlX3B0cjxDRE1Qcm94eURlY3J5cHRpb25D
bGllbnRJbXBsZW1lbnRhdGlvbj4gY2RtUHJveHlEZWNyeXB0aW9uQ2xpZW50SW1wbGVtZW50YXRp
b247CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFt
ZXIvbXNlL1dlYktpdE1lZGlhU291cmNlR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvV2ViS2l0TWVkaWFTb3VyY2VHU3RyZWFtZXIu
Y3BwCmluZGV4IDZkMDNkZjk2YWQ0Mzc5MGQ1YWYzZDJiNzJkNzcwMGQxNmZmMmE0ZmEuLmFhN2Nl
ZWI3Mzk4YWUxMTlkZGVhZjA1MTc2ZGUyZThmMWM0YzYyN2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvV2ViS2l0TWVkaWFTb3VyY2VH
U3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9tc2UvV2ViS2l0TWVkaWFTb3VyY2VHU3RyZWFtZXIuY3BwCkBAIC0xODQsOCArMTg0LDgg
QEAgc3RydWN0IFN0cmVhbSA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxTdHJlYW0+IHsK
ICAgICAgICAgR3N0U2VnbWVudCBzZWdtZW50OwogICAgICAgICBHUmVmUHRyPEdzdENhcHM+IHBl
bmRpbmdJbml0aWFsQ2FwczsKICAgICAgICAgR1JlZlB0cjxHc3RDYXBzPiBwcmV2aW91c0NhcHM7
IC8vIENhcHMgZnJvbSBlbnF1ZXVlZCBzYW1wbGVzIGFyZSBjb21wYXJlZCB0byB0aGVzZSB0byBw
dXNoIENBUFMgZXZlbnRzIGFzIG5lZWRlZC4KLSAgICAgICAgQ29uZGl0aW9uIHBhZExpbmtlZE9y
Rmx1c2hlZENvbmRpdGlvbjsKLSAgICAgICAgQ29uZGl0aW9uIHF1ZXVlQ2hhbmdlZE9yRmx1c2hl
ZENvbmRpdGlvbjsKKyAgICAgICAgVW5jaGVja2VkQ29uZGl0aW9uIHBhZExpbmtlZE9yRmx1c2hl
ZENvbmRpdGlvbjsKKyAgICAgICAgVW5jaGVja2VkQ29uZGl0aW9uIHF1ZXVlQ2hhbmdlZE9yRmx1
c2hlZENvbmRpdGlvbjsKICAgICAgICAgYm9vbCBpc0ZsdXNoaW5nIHsgZmFsc2UgfTsKIAogICAg
ICAgICAvLyBGbHVzaGVzIGJlZm9yZSBhbnkgYnVmZmVyIGhhcyBiZWVuIHBvcHBlZCBmcm9tIHRo
ZSBxdWV1ZSBhbmQgc2VudCBkb3duc3RyZWFtIGNhbiBiZSBhdm9pZGVkIGp1c3QKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy93YWsvV2ViQ29yZVRocmVhZFJ1bi5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3Mvd2FrL1dlYkNvcmVUaHJlYWRSdW4uY3BwCmlu
ZGV4IDhmODFkN2MxYWNhNDY5NTU1MWZjNDQwYjQ3ZTkwNjFkNGIzNWRmMmQuLjcyMDQxZTllMWZl
OWZlOWQ1NmFlMjc3YjcwZjhkZThiZjZhM2JmN2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2lvcy93YWsvV2ViQ29yZVRocmVhZFJ1bi5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vaW9zL3dhay9XZWJDb3JlVGhyZWFkUnVuLmNwcApAQCAtNDUsOSArNDUsOSBA
QCBwdWJsaWM6CiAKICAgICB2b2lkIHdhaXRGb3JDb21wbGV0aW9uKCkKICAgICB7Ci0gICAgICAg
IHN0ZDo6dW5pcXVlX2xvY2s8TG9jaz4gbG9jayhtX3N0YXRlTXV0ZXgpOworICAgICAgICBMb2Nr
ZXIgbG9jayB7IG1fc3RhdGVNdXRleCB9OwogCi0gICAgICAgIG1fY29tcGxldGlvbkNvbmRpdGlv
blZhcmlhYmxlLndhaXQobG9jaywgW3RoaXNdIHsgcmV0dXJuIG1fY29tcGxldGVkOyB9KTsKKyAg
ICAgICAgbV9jb21wbGV0aW9uQ29uZGl0aW9uVmFyaWFibGUud2FpdChtX3N0YXRlTXV0ZXgsIFt0
aGlzXSB7IHJldHVybiBtX2NvbXBsZXRlZDsgfSk7CiAgICAgfQogCiAgICAgdm9pZCBzZXRDb21w
bGV0ZWQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1Jl
bW90ZUdyYXBoaWNzQ29udGV4dEdMLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFw
aGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTC5jcHAKaW5kZXggNmQxZDFkYWU5N2E5YjVlNzZj
N2E0MWE1OTA4M2M5ZTBhODgzNGI2Zi4uMTU1M2RlZjAyNWZmZjkwZjEzNzVmNTEwZDUwY2E0NWQy
YzUxMzU0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1Jl
bW90ZUdyYXBoaWNzQ29udGV4dEdMLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
Z3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wuY3BwCkBAIC0yMTIsNyArMjEyLDcgQEAg
dm9pZCBSZW1vdGVHcmFwaGljc0NvbnRleHRHTDo6cGFpbnRQaXhlbEJ1ZmZlclRvSW1hZ2VCdWZm
ZXIoT3B0aW9uYWw8V2ViQ29yZTo6UGkKICAgICBhc3NlcnRJc0N1cnJlbnQobV9zdHJlYW1UaHJl
YWQpOwogICAgIC8vIEZJWE1FOiBXZSBkbyBub3QgaGF2ZSBmdW5jdGlvbmluZyByZWFkL3dyaXRl
IGZlbmNlcyBpbiBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kLiBUaHVzIHRoaXMgaXMgc3luY2hyb25v
dXMsCiAgICAgLy8gYXMgYXJlIHRoZSBtZXNzYWdlcyB0aGF0IGNhbGwgdGhlc2UuCi0gICAgTG9j
ayBtdXRleDsKKyAgICBMb2NrIGxvY2s7CiAgICAgQ29uZGl0aW9uIGNvbmRpdGlvblZhcmlhYmxl
OwogICAgIGJvb2wgaXNGaW5pc2hlZCA9IGZhbHNlOwogICAgIG1fcmVuZGVyaW5nQmFja2VuZC0+
ZGlzcGF0Y2goWyYsIGNvbnRleHRBdHRyaWJ1dGVzID0gbV9jb250ZXh0LT5jb250ZXh0QXR0cmli
dXRlcygpXSgpIG11dGFibGUgewpAQCAtMjI2LDExICsyMjYsMTEgQEAgdm9pZCBSZW1vdGVHcmFw
aGljc0NvbnRleHRHTDo6cGFpbnRQaXhlbEJ1ZmZlclRvSW1hZ2VCdWZmZXIoT3B0aW9uYWw8V2Vi
Q29yZTo6UGkKICAgICAgICAgICAgIC8vIFVuZm9ydHVuYXRlbHkgImZsdXNoIiBpbXBsZW1lbnRh
dGlvbiBpbiBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kIG92ZXJsb2FkcyBvcmRlcmluZyBhbmQgZWZm
ZWN0cy4KICAgICAgICAgICAgIGltYWdlQnVmZmVyLT5mbHVzaENvbnRleHQoKTsKICAgICAgICAg
fQotICAgICAgICBMb2NrZXIgbG9ja2VyIHsgbXV0ZXggfTsKKyAgICAgICAgTG9ja2VyIGxvY2tl
ciB7IGxvY2sgfTsKICAgICAgICAgaXNGaW5pc2hlZCA9IHRydWU7CiAgICAgICAgIGNvbmRpdGlv
blZhcmlhYmxlLm5vdGlmeU9uZSgpOwogICAgIH0pOwotICAgIHN0ZDo6dW5pcXVlX2xvY2s8TG9j
az4gbG9jayhtdXRleCk7CisgICAgTG9ja2VyIGxvY2tlciB7IGxvY2sgfTsKICAgICBjb25kaXRp
b25WYXJpYWJsZS53YWl0KGxvY2ssIFsmXSB7CiAgICAgICAgIHJldHVybiBpc0ZpbmlzaGVkOwog
ICAgIH0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9JbmRleGVk
REIvV2ViSURCU2VydmVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvSW5kZXhl
ZERCL1dlYklEQlNlcnZlci5jcHAKaW5kZXggOTFiODg5NDFhNzZhODA3MWQzMGQ3ZmVkNzQxNjNm
YjA5ZjdiODcyMS4uNTQ3ZGFhOGQ0ZTAwMTQwNmZjMjAxYWJhZDZjZjQ3NzBjOTFhNTU3OSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCU2Vy
dmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0luZGV4ZWREQi9XZWJJ
REJTZXJ2ZXIuY3BwCkBAIC0xMTksNyArMTE5LDcgQEAgdm9pZCBXZWJJREJTZXJ2ZXI6OnJlbmFt
ZU9yaWdpbihjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIG9sZE9yaWdpbiwgY28K
ICAgICB9KTsKIH0KIAotdm9pZCBXZWJJREJTZXJ2ZXI6OnN1c3BlbmQoKQordm9pZCBXZWJJREJT
ZXJ2ZXI6OnN1c3BlbmQoKSBXVEZfSUdOT1JFU19USFJFQURfU0FGRVRZX0FOQUxZU0lTCiB7CiAg
ICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKIApAQCAtMTMyLDcgKzEzMiw3IEBAIHZvaWQg
V2ViSURCU2VydmVyOjpzdXNwZW5kKCkKICAgICAgICAgbV9zZXJ2ZXItPnN0b3BEYXRhYmFzZUFj
dGl2aXRpZXNPbk1haW5UaHJlYWQoKTsKIH0KIAotdm9pZCBXZWJJREJTZXJ2ZXI6OnJlc3VtZSgp
Cit2b2lkIFdlYklEQlNlcnZlcjo6cmVzdW1lKCkgV1RGX0lHTk9SRVNfVEhSRUFEX1NBRkVUWV9B
TkFMWVNJUwogewogICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL0ljb25EYXRhYmFzZS5oIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvSWNvbkRhdGFiYXNlLmgKaW5kZXggYmViMmZiODA2
ZWM1NWM2NjM0Y2Q1ZTVhMDBkNTA3ODM2MTVmZWY0Yi4uODBlMTc4ZTYxZjUwZmFmZGYzZWFkNGQy
OThhMTg4MDFhZTAzYzcxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L2dsaWIvSWNvbkRhdGFiYXNlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2ds
aWIvSWNvbkRhdGFiYXNlLmgKQEAgLTcyLDcgKzcyLDcgQEAgcHJpdmF0ZToKICAgICBIYXNoTWFw
PFN0cmluZywgU3RyaW5nPiBtX3BhZ2VVUkxUb0ljb25VUkxNYXA7CiAgICAgTG9jayBtX3BhZ2VV
UkxUb0ljb25VUkxNYXBMb2NrOwogICAgIEhhc2hNYXA8U3RyaW5nLCBzdGQ6OnBhaXI8V2ViQ29y
ZTo6UGxhdGZvcm1JbWFnZVB0ciwgTW9ub3RvbmljVGltZT4+IG1fbG9hZGVkSWNvbnM7Ci0gICAg
TG9jayBtX2xvYWRlZEljb25zTG9jazsKKyAgICBVbmNoZWNrZWRMb2NrIG1fbG9hZGVkSWNvbnNM
b2NrOwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlNRTGl0ZVN0YXRlbWVudD4gbV9p
Y29uSURGb3JJY29uVVJMU3RhdGVtZW50OwogICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpT
UUxpdGVTdGF0ZW1lbnQ+IG1fc2V0SWNvbklERm9yUGFnZVVSTFN0YXRlbWVudDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS1ByaW50aW5nVmlldy5tbSBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS1ByaW50aW5nVmlldy5tbQppbmRleCA5Yjc0ZjNlYzUw
ZDAyMDE2NjRjNzMxMjk4OWM3ZjY4YzI5YTA0NTRjLi5mMThiYThmMDFiMjZkZTNmZDNjZGZiMDI4
MTI4NWNmMGQ0YTY2NjlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMv
V0tQcmludGluZ1ZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLUHJp
bnRpbmdWaWV3Lm1tCkBAIC00MTQsMTMgKzQxNCwxMyBAQCAtIChCT09MKWtub3dzUGFnZVJhbmdl
OihOU1JhbmdlUG9pbnRlcilyYW5nZQogICAgICAgICAqcmFuZ2UgPSBOU01ha2VSYW5nZSgxLCBf
cHJpbnRpbmdQYWdlUmVjdHMuc2l6ZSgpKTsKICAgICBlbHNlIGlmICghUnVuTG9vcDo6aXNNYWlu
KCkpIHsKICAgICAgICAgQVNTRVJUKCFbc2VsZiBfaXNQcmludGluZ1ByZXZpZXddKTsKLSAgICAg
ICAgc3RkOjp1bmlxdWVfbG9jazxMb2NrPiBsb2NrKF9wcmludGluZ0NhbGxiYWNrTXV0ZXgpOwor
ICAgICAgICBMb2NrZXIgbG9jayB7IF9wcmludGluZ0NhbGxiYWNrTXV0ZXggfTsKIAogICAgICAg
ICBSdW5Mb29wOjptYWluKCkuZGlzcGF0Y2goW3NlbGZdIHsKICAgICAgICAgICAgIHByZXBhcmVE
YXRhRm9yUHJpbnRpbmdPblNlY29uZGFyeVRocmVhZChzZWxmKTsKICAgICAgICAgfSk7CiAKLSAg
ICAgICAgX3ByaW50aW5nQ2FsbGJhY2tDb25kaXRpb24ud2FpdChsb2NrKTsKKyAgICAgICAgX3By
aW50aW5nQ2FsbGJhY2tDb25kaXRpb24ud2FpdChfcHJpbnRpbmdDYWxsYmFja011dGV4KTsKICAg
ICAgICAgKnJhbmdlID0gTlNNYWtlUmFuZ2UoMSwgX3ByaW50aW5nUGFnZVJlY3RzLnNpemUoKSk7
CiAgICAgfSBlbHNlIHsKICAgICAgICAgQVNTRVJUKFtzZWxmIF9pc1ByaW50aW5nUHJldmlld10p
OwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGVh
YjA4M2YxZTA3ZDQ1ZTg4YWRiMTQwMWRiYjRjMjE1YjUzNzg1NGEuLjg2MzkxMGZlNGZhZmVhMzMy
MzVhNDYyZjMwZDRkY2Q4ZGRhYjI4MzggMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysg
Yi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0MyBAQAorMjAyMS0wNS0yMyAgQ2hyaXMgRHVt
ZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIE1ha2UgQ2hlY2tlZExvY2sgdGhlIGRl
ZmF1bHQgTG9jaworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjI2MTU3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgTWFrZSBDaGVja2VkTG9jayB0aGUgZGVmYXVsdCBMb2NrIHNvIHRoYXQgd2UgZ2V0IG1vcmUg
YmVuZWZpdHMgZnJvbSBDbGFuZworICAgICAgICBUaHJlYWQgU2FmZXR5IEFuYWx5c2lzLiBOb3Rl
IHRoYXQgQ2hlY2tlZExvY2sgMTAwJSByZWxpZXMgb24gdGhlIGV4aXN0aW5nCisgICAgICAgIExv
Y2sgaW1wbGVtZW50YXRpb24gYW5kIG1lcmVseSBhZGRzIHRoZSBjbGFuZyBhbm90YXRpb25zIGZv
ciB0aHJlYWQgCisgICAgICAgIHNhZmV0eS4KKworICAgICAgICBUaGF0IHRoaXMgcGF0Y2ggZG9l
cyBpczoKKyAgICAgICAgMS4gUmVuYW1lIHRoZSBMb2NrIGNsYXNzIHRvIFVuY2hlY2tlZExvY2sK
KyAgICAgICAgMi4gUmVuYW1lIHRoZSBDaGVja2VkTG9jayBjbGFzcyB0byBMb2NrCisgICAgICAg
IDMuIFJlbmFtZSB0aGUgQ29uZGl0aW9uIGNsYXNzIHRvIFVuY2hlY2tlZENvbmRpdGlvbgorICAg
ICAgICA0LiBSZW5hbWUgdGhlIENoZWNrZWRDb25kaXRpb24gY2xhc3MgdG8gQ29uZGl0aW9uCisg
ICAgICAgIDUuIFVwZGF0ZSB0aGUgdHlwZXMgb2YgY2VydGFpbiB2YXJpYWJsZXMgZnJvbSBMb2Nr
IC8gQ29uZGl0aW9uIHRvCisgICAgICAgICAgIFVuY2hlY2tlZExvY2sgLyBVbmNoZWNrZWRDb25k
aXRpb24gaWYgSSBnb3QgYSBidWlsZCBmYWlsdXJlLiBCdWlsZCAKKyAgICAgICAgICAgZmFpbHVy
ZXMgYXJlIHVzdWFsbHkgY2F1c2VkIGJ5IHRoZSBmb2xsb3dpbmcgZmFjdHM6CisgICAgICAgICAg
IC0gTG9ja2VyPENoZWNrZWRMb2NrPiBkb2Vzbid0IHN1YmNsYXNzIEFic3RyYWN0TG9ja2VyIHdo
aWNoIGEgbG90IG9mCisgICAgICAgICAgICAgSlNDIGNvZGUgcGFzc2VzIGFzIGFyZ3VtZW50Cisg
ICAgICAgICAgIC0gTG9ja2VyPENoZWNrZWRMb2NrPiBoYXMgbm8gbW92ZSBjb25zdHJ1Y3Rvcgor
ICAgICAgICAgICAtIExvY2tlcjxDaGVja2VkTG9jaz4gY2Fubm90IGJlIGNvbnN0cnVjdGVkIGZy
b20gYSBsb2NrIHBvaW50ZXIsIG9ubHkKKyAgICAgICAgICAgICBhIHJlZmVyZW5jZQorCisgICAg
ICAgIEZvciBub3csIENoZWNrZWRMb2NrIGFuZCBDaGVja2VkQ29uZGl0aW9uIHJlbWFpbiBhcyBh
bGlhc2VzIHRvIExvY2sgYW5kIAorICAgICAgICBDb25kaXRpb24sIGluIHRoZWlyIHJlc3BlY3Rp
dmUgQ2hlY2tlZExvY2suaCAvIENoZWNrZWRDb25kaXRpb24uaCBoZWFkZXJzLgorICAgICAgICBJ
IHdpbGwgZHJvcCB0aGVtIGluIGEgZm9sbG93LXVwIHRvIHJlZHVjZSBwYXRjaCBzaXplLgorCisg
ICAgICAgIEkgd2lsbCBhbHNvIGZvbGxvdy11cCB0byB0cnkgYW5kIGdldCByaWQgb2YgYXMgbXVj
aCB1c2FnZSBvZiBVbmNoZWNrZWRMb2NrCisgICAgICAgIGFuZCBVbmNoZWNrZWRDb25kaXRpb24g
YXMgcG9zc2libGUuIEkgZGlkIG5vdCB0cnkgdmVyeSBoYXJkIGluIHRoaXMgcGF0Y2gKKyAgICAg
ICAgdG8gcmVkdWNlIHBhdGNoIHNpemUuIAorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0
cy9XVEYvQ2hlY2tlZENvbmRpdGlvblRlc3QuY3BwOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkv
VGVzdHMvV1RGL0NvbmRpdGlvbi5jcHA6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9X
VEYvTWV0YUFsbG9jYXRvci5jcHA6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3Rl
ZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXVFI6OkFYVGhy
ZWFkOjpjcmVhdGVUaHJlYWRJZk5lZWRlZCk6CisKIDIwMjEtMDUtMjIgIENocmlzIER1bWV6ICA8
Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBSZXBsYWNlIExvY2tIb2xkZXIgd2l0aCBMb2Nr
ZXIgaW4gbG9jYWwgdmFyaWFibGVzCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dURi9DaGVja2VkQ29uZGl0aW9uVGVzdC5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dURi9DaGVja2VkQ29uZGl0aW9uVGVzdC5jcHAKaW5kZXggOTI4YWExOTAzY2RlMzZlYTMy
ZGMxMDFmMjZiZjNjYzk5MjY5Yjg5My4uYWQ0MjU1ZTJhYzFhMmVmOWEwYzFjYTNjZjU2YzczODA3
NjYzMDUwOCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvQ2hlY2tl
ZENvbmRpdGlvblRlc3QuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0No
ZWNrZWRDb25kaXRpb25UZXN0LmNwcApAQCAtMjUsNiArMjUsNyBAQAogCiAjaW5jbHVkZSAiY29u
ZmlnLmgiCiAjaW5jbHVkZSA8d3RmL0NoZWNrZWRDb25kaXRpb24uaD4KKyNpbmNsdWRlIDx3dGYv
Q2hlY2tlZExvY2suaD4KIAogbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgewogCmRpZmYgLS1naXQg
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9Db25kaXRpb24uY3BwIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XVEYvQ29uZGl0aW9uLmNwcAppbmRleCAzYjM1YjA4Y2ExNGI4MTg4
NDdkNjZlZTU4N2ZmYWQxYTU5MGQ4MTI2Li41ZWVjM2UwMTU2NmI5MThkNjY3ZTE2NDgyNWYwMTIw
OGQ4NzliYmViIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9Db25k
aXRpb24uY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0NvbmRpdGlvbi5j
cHAKQEAgLTQ2LDcgKzQ2LDcgQEAgZW51bSBOb3RpZnlTdHlsZSB7CiB9OwogCiB0ZW1wbGF0ZTx0
eXBlbmFtZSBGdW5jdG9yPgotdm9pZCB3YWl0KENvbmRpdGlvbiYgY29uZGl0aW9uLCBzdGQ6OnVu
aXF1ZV9sb2NrPExvY2s+JiBsb2NrZXIsIGNvbnN0IEZ1bmN0b3ImIHByZWRpY2F0ZSwgU2Vjb25k
cyB0aW1lb3V0KQordm9pZCB3YWl0KFVuY2hlY2tlZENvbmRpdGlvbiYgY29uZGl0aW9uLCBzdGQ6
OnVuaXF1ZV9sb2NrPFVuY2hlY2tlZExvY2s+JiBsb2NrZXIsIGNvbnN0IEZ1bmN0b3ImIHByZWRp
Y2F0ZSwgU2Vjb25kcyB0aW1lb3V0KQogewogICAgIGlmICh0aW1lb3V0ID09IFNlY29uZHM6Omlu
ZmluaXR5KCkpCiAgICAgICAgIGNvbmRpdGlvbi53YWl0KGxvY2tlciwgcHJlZGljYXRlKTsKQEAg
LTU5LDcgKzU5LDcgQEAgdm9pZCB3YWl0KENvbmRpdGlvbiYgY29uZGl0aW9uLCBzdGQ6OnVuaXF1
ZV9sb2NrPExvY2s+JiBsb2NrZXIsIGNvbnN0IEZ1bmN0b3ImIHAKICAgICB9CiB9CiAKLXZvaWQg
bm90aWZ5KE5vdGlmeVN0eWxlIG5vdGlmeVN0eWxlLCBDb25kaXRpb24mIGNvbmRpdGlvbiwgYm9v
bCBzaG91bGROb3RpZnkpCit2b2lkIG5vdGlmeShOb3RpZnlTdHlsZSBub3RpZnlTdHlsZSwgVW5j
aGVja2VkQ29uZGl0aW9uJiBjb25kaXRpb24sIGJvb2wgc2hvdWxkTm90aWZ5KQogewogICAgIHN3
aXRjaCAobm90aWZ5U3R5bGUpIHsKICAgICBjYXNlIEFsd2F5c05vdGlmeU9uZToKQEAgLTgzLDkg
KzgzLDkgQEAgdm9pZCBydW5UZXN0KAogewogICAgIERlcXVlPHVuc2lnbmVkPiBxdWV1ZTsKICAg
ICBib29sIHNob3VsZENvbnRpbnVlID0gdHJ1ZTsKLSAgICBMb2NrIGxvY2s7Ci0gICAgQ29uZGl0
aW9uIGVtcHR5Q29uZGl0aW9uOwotICAgIENvbmRpdGlvbiBmdWxsQ29uZGl0aW9uOworICAgIFVu
Y2hlY2tlZExvY2sgbG9jazsKKyAgICBVbmNoZWNrZWRDb25kaXRpb24gZW1wdHlDb25kaXRpb247
CisgICAgVW5jaGVja2VkQ29uZGl0aW9uIGZ1bGxDb25kaXRpb247CiAKICAgICBWZWN0b3I8UmVm
PFRocmVhZD4+IGNvbnN1bWVyVGhyZWFkczsKICAgICBWZWN0b3I8UmVmPFRocmVhZD4+IHByb2R1
Y2VyVGhyZWFkczsKQEAgLTEwMSw3ICsxMDEsNyBAQCB2b2lkIHJ1blRlc3QoCiAgICAgICAgICAg
ICAgICAgICAgIHVuc2lnbmVkIHJlc3VsdDsKICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQg
c2hvdWxkTm90aWZ5ID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAg
ICAgICAgICAgICAgIHN0ZDo6dW5pcXVlX2xvY2s8TG9jaz4gbG9ja2VyKGxvY2spOworICAgICAg
ICAgICAgICAgICAgICAgICAgc3RkOjp1bmlxdWVfbG9jazxVbmNoZWNrZWRMb2NrPiBsb2NrZXIo
bG9jayk7CiAgICAgICAgICAgICAgICAgICAgICAgICB3YWl0KAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGVtcHR5Q29uZGl0aW9uLCBsb2NrZXIsIAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFsmXSAoKSB7CkBAIC0xMzQsNyArMTM0LDcgQEAgdm9pZCBydW5UZXN0KAogICAgICAg
ICAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBudW1NZXNzYWdlc1BlclByb2R1Y2Vy
OyArK2kpIHsKICAgICAgICAgICAgICAgICAgICAgYm9vbCBzaG91bGROb3RpZnkgPSBmYWxzZTsK
ICAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAgc3RkOjp1bmlx
dWVfbG9jazxMb2NrPiBsb2NrZXIobG9jayk7CisgICAgICAgICAgICAgICAgICAgICAgICBzdGQ6
OnVuaXF1ZV9sb2NrPFVuY2hlY2tlZExvY2s+IGxvY2tlcihsb2NrKTsKICAgICAgICAgICAgICAg
ICAgICAgICAgIHdhaXQoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnVsbENvbmRpdGlv
biwgbG9ja2VyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsmXSAoKSB7CmRpZmYgLS1n
aXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9NZXRhQWxsb2NhdG9yLmNwcCBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL01ldGFBbGxvY2F0b3IuY3BwCmluZGV4IGI5MWY2
OGVjMGNjMTdkZDM3MDhmMmU3ODA4MzY2NTU3ZGIzODdhNjYuLjRlZjU4M2IzYzJiZTk4ZWVmZDk2
MTUxYzc5NjljZTQzZWJhMDU3OTMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV1RGL01ldGFBbGxvY2F0b3IuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V1RGL01ldGFBbGxvY2F0b3IuY3BwCkBAIC0xMjksNyArMTI5LDcgQEAgcHVibGljOgogICAgICAg
ICB9CiAgICAgICAgIAogICAgIHByaXZhdGU6Ci0gICAgICAgIExvY2sgbV9sb2NrOworICAgICAg
ICBVbmNoZWNrZWRMb2NrIG1fbG9jazsKICAgICAgICAgTWV0YUFsbG9jYXRvclRlc3QqIG1fcGFy
ZW50OwogICAgIH07CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5jcHAKaW5kZXggOTg0
NGU1YjYzMzVmYmNhMjg2ZTJjMTFjNmIzZTk4NzhkOWM0MGQwYi4uNmViYTE0YTFhNzBjMDNkNTU3
ZGIyM2I2MDc2MmRmNzlmZmVhNGNhZSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5jcHAKKysrIGIvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5j
cHAKQEAgLTE5OSw3ICsxOTksNyBAQCBBWFRocmVhZCYgQVhUaHJlYWQ6OnNpbmdsZXRvbigpCiB2
b2lkIEFYVGhyZWFkOjpjcmVhdGVUaHJlYWRJZk5lZWRlZCgpCiB7CiAgICAgLy8gV2FpdCBmb3Ig
dGhlIHRocmVhZCB0byBpbml0aWFsaXplIHRoZSBydW4gbG9vcC4KLSAgICBzdGQ6OnVuaXF1ZV9s
b2NrPExvY2s+IGxvY2sobV9pbml0aWFsaXplUnVuTG9vcE11dGV4KTsKKyAgICBMb2NrZXIgbG9j
ayB7IG1faW5pdGlhbGl6ZVJ1bkxvb3BNdXRleCB9OwogCiAgICAgaWYgKCFtX3RocmVhZCkgewog
ICAgICAgICBtX3RocmVhZCA9IFRocmVhZDo6Y3JlYXRlKCJXS1RSOiBBY2Nlc3NpYmlsaXR5Q29u
dHJvbGxlciIsIFt0aGlzXSB7CkBAIC0yMDgsNyArMjA4LDcgQEAgdm9pZCBBWFRocmVhZDo6Y3Jl
YXRlVGhyZWFkSWZOZWVkZWQoKQogICAgICAgICB9KTsKICAgICB9CiAKLSAgICBtX2luaXRpYWxp
emVSdW5Mb29wQ29uZGl0aW9uVmFyaWFibGUud2FpdChsb2NrLCBbdGhpc10geworICAgIG1faW5p
dGlhbGl6ZVJ1bkxvb3BDb25kaXRpb25WYXJpYWJsZS53YWl0KG1faW5pdGlhbGl6ZVJ1bkxvb3BN
dXRleCwgW3RoaXNdIHsKICNpZiBQTEFURk9STShDT0NPQSkKICAgICAgICAgcmV0dXJuIG1fdGhy
ZWFkUnVuTG9vcDsKICNlbHNlCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>429488</attachid>
            <date>2021-05-23 17:08:44 -0700</date>
            <delta_ts>2021-05-23 18:14:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226157-20210523170843.patch</filename>
            <type>text/plain</type>
            <size>102816</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3OTM0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAw
YzRlNzliNTg2ZTkwMmM1MTBiY2NkMjdkOGMwYzA0MTU2MGNmMjhmLi45MzM2Mzg2OTAxOGFkODIy
NjhhZjUzMmE1OWMwMThjOTZjMjM1ZTY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw5NSBAQAorMjAyMS0wNS0yMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgor
CisgICAgICAgIE1ha2UgQ2hlY2tlZExvY2sgdGhlIGRlZmF1bHQgTG9jaworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI2MTU3CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWFrZSBDaGVja2VkTG9jayB0aGUg
ZGVmYXVsdCBMb2NrIHNvIHRoYXQgd2UgZ2V0IG1vcmUgYmVuZWZpdHMgZnJvbSBDbGFuZworICAg
ICAgICBUaHJlYWQgU2FmZXR5IEFuYWx5c2lzLiBOb3RlIHRoYXQgQ2hlY2tlZExvY2sgMTAwJSBy
ZWxpZXMgb24gdGhlIGV4aXN0aW5nCisgICAgICAgIExvY2sgaW1wbGVtZW50YXRpb24gYW5kIG1l
cmVseSBhZGRzIHRoZSBjbGFuZyBhbm90YXRpb25zIGZvciB0aHJlYWQgCisgICAgICAgIHNhZmV0
eS4KKworICAgICAgICBUaGF0IHRoaXMgcGF0Y2ggZG9lcyBpczoKKyAgICAgICAgMS4gUmVuYW1l
IHRoZSBMb2NrIGNsYXNzIHRvIFVuY2hlY2tlZExvY2sKKyAgICAgICAgMi4gUmVuYW1lIHRoZSBD
aGVja2VkTG9jayBjbGFzcyB0byBMb2NrCisgICAgICAgIDMuIFJlbmFtZSB0aGUgQ29uZGl0aW9u
IGNsYXNzIHRvIFVuY2hlY2tlZENvbmRpdGlvbgorICAgICAgICA0LiBSZW5hbWUgdGhlIENoZWNr
ZWRDb25kaXRpb24gY2xhc3MgdG8gQ29uZGl0aW9uCisgICAgICAgIDUuIFVwZGF0ZSB0aGUgdHlw
ZXMgb2YgY2VydGFpbiB2YXJpYWJsZXMgZnJvbSBMb2NrIC8gQ29uZGl0aW9uIHRvCisgICAgICAg
ICAgIFVuY2hlY2tlZExvY2sgLyBVbmNoZWNrZWRDb25kaXRpb24gaWYgSSBnb3QgYSBidWlsZCBm
YWlsdXJlLiBCdWlsZCAKKyAgICAgICAgICAgZmFpbHVyZXMgYXJlIHVzdWFsbHkgY2F1c2VkIGJ5
IHRoZSBmb2xsb3dpbmcgZmFjdHM6CisgICAgICAgICAgIC0gTG9ja2VyPENoZWNrZWRMb2NrPiBk
b2Vzbid0IHN1YmNsYXNzIEFic3RyYWN0TG9ja2VyIHdoaWNoIGEgbG90IG9mCisgICAgICAgICAg
ICAgSlNDIGNvZGUgcGFzc2VzIGFzIGFyZ3VtZW50CisgICAgICAgICAgIC0gTG9ja2VyPENoZWNr
ZWRMb2NrPiBoYXMgbm8gbW92ZSBjb25zdHJ1Y3RvcgorICAgICAgICAgICAtIExvY2tlcjxDaGVj
a2VkTG9jaz4gY2Fubm90IGJlIGNvbnN0cnVjdGVkIGZyb20gYSBsb2NrIHBvaW50ZXIsIG9ubHkK
KyAgICAgICAgICAgICBhIHJlZmVyZW5jZQorCisgICAgICAgIEZvciBub3csIENoZWNrZWRMb2Nr
IGFuZCBDaGVja2VkQ29uZGl0aW9uIHJlbWFpbiBhcyBhbGlhc2VzIHRvIExvY2sgYW5kIAorICAg
ICAgICBDb25kaXRpb24sIGluIHRoZWlyIHJlc3BlY3RpdmUgQ2hlY2tlZExvY2suaCAvIENoZWNr
ZWRDb25kaXRpb24uaCBoZWFkZXJzLgorICAgICAgICBJIHdpbGwgZHJvcCB0aGVtIGluIGEgZm9s
bG93LXVwIHRvIHJlZHVjZSBwYXRjaCBzaXplLgorCisgICAgICAgIEkgd2lsbCBhbHNvIGZvbGxv
dy11cCB0byB0cnkgYW5kIGdldCByaWQgb2YgYXMgbXVjaCB1c2FnZSBvZiBVbmNoZWNrZWRMb2Nr
CisgICAgICAgIGFuZCBVbmNoZWNrZWRDb25kaXRpb24gYXMgcG9zc2libGUuIEkgZGlkIG5vdCB0
cnkgdmVyeSBoYXJkIGluIHRoaXMgcGF0Y2gKKyAgICAgICAgdG8gcmVkdWNlIHBhdGNoIHNpemUu
IAorCisgICAgICAgICogYXNzZW1ibGVyL3Rlc3RtYXNtLmNwcDoKKyAgICAgICAgKiBkZmcvREZH
Q29tbW9uLmNwcDoKKyAgICAgICAgKiBkZmcvREZHVGhyZWFkRGF0YS5oOgorICAgICAgICAqIGRm
Zy9ERkdXb3JrbGlzdC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6V29ya2xpc3Q6OldvcmtsaXN0
KToKKyAgICAgICAgKiBkZmcvREZHV29ya2xpc3QuaDoKKyAgICAgICAgKiBkeW5iZW5jaC5jcHA6
CisgICAgICAgICogaGVhcC9CbG9ja0RpcmVjdG9yeS5oOgorICAgICAgICAoSlNDOjpCbG9ja0Rp
cmVjdG9yeTo6Yml0dmVjdG9yTG9jayk6CisgICAgICAgICogaGVhcC9Db2RlQmxvY2tTZXQuaDoK
KyAgICAgICAgKEpTQzo6Q29kZUJsb2NrU2V0OjpnZXRMb2NrKToKKyAgICAgICAgKiBoZWFwL0hl
YXAuY3BwOgorICAgICAgICAoSlNDOjpIZWFwOjpIZWFwKToKKyAgICAgICAgKiBoZWFwL0hlYXAu
aDoKKyAgICAgICAgKiBoZWFwL01hcmtlZFNwYWNlLmg6CisgICAgICAgIChKU0M6Ok1hcmtlZFNw
YWNlOjpkaXJlY3RvcnlMb2NrKToKKyAgICAgICAgKiBoZWFwL01hcmtpbmdDb25zdHJhaW50U29s
dmVyLmg6CisgICAgICAgICogaGVhcC9TbG90VmlzaXRvci5jcHA6CisgICAgICAgIChKU0M6OlNs
b3RWaXNpdG9yOjpkb25hdGVLbm93blBhcmFsbGVsKToKKyAgICAgICAgKiBoZWFwL1Nsb3RWaXNp
dG9yLmg6CisgICAgICAgICogaml0L0V4ZWN1dGFibGVBbGxvY2F0b3IuY3BwOgorICAgICAgICAo
SlNDOjpFeGVjdXRhYmxlQWxsb2NhdG9yOjpnZXRMb2NrIGNvbnN0KToKKyAgICAgICAgKEpTQzo6
ZHVtcEpJVE1lbW9yeSk6CisgICAgICAgICogaml0L0V4ZWN1dGFibGVBbGxvY2F0b3IuaDoKKyAg
ICAgICAgKEpTQzo6RXhlY3V0YWJsZUFsbG9jYXRvckJhc2U6OmdldExvY2sgY29uc3QpOgorICAg
ICAgICAqIGppdC9KSVRXb3JrbGlzdC5jcHA6CisgICAgICAgIChKU0M6OkpJVFdvcmtsaXN0OjpK
SVRXb3JrbGlzdCk6CisgICAgICAgICogaml0L0pJVFdvcmtsaXN0Lmg6CisgICAgICAgICoganNj
LmNwcDoKKyAgICAgICAgKiBwcm9maWxlci9Qcm9maWxlckRhdGFiYXNlLmg6CisgICAgICAgICog
cnVudGltZS9Db25jdXJyZW50SlNMb2NrLmg6CisgICAgICAgICogcnVudGltZS9EZWZlcnJlZFdv
cmtUaW1lci5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNMb2NrLmg6CisgICAgICAgICogcnVudGlt
ZS9TYW1wbGluZ1Byb2ZpbGVyLmNwcDoKKyAgICAgICAgKEpTQzo6RnJhbWVXYWxrZXI6OkZyYW1l
V2Fsa2VyKToKKyAgICAgICAgKEpTQzo6Q0ZyYW1lV2Fsa2VyOjpDRnJhbWVXYWxrZXIpOgorICAg
ICAgICAoSlNDOjpTYW1wbGluZ1Byb2ZpbGVyOjp0YWtlU2FtcGxlKToKKyAgICAgICAgKiBydW50
aW1lL1NhbXBsaW5nUHJvZmlsZXIuaDoKKyAgICAgICAgKEpTQzo6U2FtcGxpbmdQcm9maWxlcjo6
Z2V0TG9jayk6CisgICAgICAgICogcnVudGltZS9WTS5oOgorICAgICAgICAqIHJ1bnRpbWUvVk1U
cmFwcy5jcHA6CisgICAgICAgIChKU0M6OlZNVHJhcHM6OmludmFsaWRhdGVDb2RlQmxvY2tzT25T
dGFjayk6CisgICAgICAgIChKU0M6OlZNVHJhcHM6OlZNVHJhcHMpOgorICAgICAgICAqIHJ1bnRp
bWUvVk1UcmFwcy5oOgorICAgICAgICAqIHRvb2xzL0Z1bmN0aW9uT3ZlcnJpZGVzLmg6CisgICAg
ICAgICogdG9vbHMvVk1JbnNwZWN0b3IuY3BwOgorICAgICAgICAoSlNDOjplbnN1cmVJc1NhZmVU
b0xvY2spOgorICAgICAgICAqIHRvb2xzL1ZNSW5zcGVjdG9yLmg6CisgICAgICAgIChKU0M6OlZN
SW5zcGVjdG9yOjpnZXRMb2NrKToKKyAgICAgICAgKiB3YXNtL1dhc21DYWxsZWVSZWdpc3RyeS5o
OgorICAgICAgICAoSlNDOjpXYXNtOjpDYWxsZWVSZWdpc3RyeTo6Z2V0TG9jayk6CisgICAgICAg
ICogd2FzbS9XYXNtUGxhbi5oOgorICAgICAgICAqIHdhc20vV2FzbVN0cmVhbWluZ0NvbXBpbGVy
Lmg6CisgICAgICAgICogd2FzbS9XYXNtVGh1bmtzLmg6CisgICAgICAgICogd2FzbS9XYXNtV29y
a2xpc3QuY3BwOgorICAgICAgICAoSlNDOjpXYXNtOjpXb3JrbGlzdDo6V29ya2xpc3QpOgorICAg
ICAgICAqIHdhc20vV2FzbVdvcmtsaXN0Lmg6CisKIDIwMjEtMDUtMjMgIENocmlzIER1bWV6ICA8
Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBVc2UgQ2hlY2tlZExvY2sgaW4gZXZlbiBtb3Jl
IHBsYWNlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV1RGL0No
YW5nZUxvZwppbmRleCAxZGYzZjhlMGJhMWU3MjU3MWUwNmU2ZmE1ZDZjMjk5NzBkOTI2MmRmLi4w
MTczMDA1YThiMjg1MTRmZDU3NWM2NTdkMjk4YmZjY2QwNDhjNWQwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV1RGL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY2
IEBACisyMDIxLTA1LTIzICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAg
ICAgTWFrZSBDaGVja2VkTG9jayB0aGUgZGVmYXVsdCBMb2NrCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjYxNTcKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNYWtlIENoZWNrZWRMb2NrIHRoZSBkZWZhdWx0
IExvY2sgc28gdGhhdCB3ZSBnZXQgbW9yZSBiZW5lZml0cyBmcm9tIENsYW5nCisgICAgICAgIFRo
cmVhZCBTYWZldHkgQW5hbHlzaXMuIE5vdGUgdGhhdCBDaGVja2VkTG9jayAxMDAlIHJlbGllcyBv
biB0aGUgZXhpc3RpbmcKKyAgICAgICAgTG9jayBpbXBsZW1lbnRhdGlvbiBhbmQgbWVyZWx5IGFk
ZHMgdGhlIGNsYW5nIGFub3RhdGlvbnMgZm9yIHRocmVhZAorICAgICAgICBzYWZldHkuCisKKyAg
ICAgICAgVGhhdCB0aGlzIHBhdGNoIGRvZXMgaXM6CisgICAgICAgIDEuIFJlbmFtZSB0aGUgTG9j
ayBjbGFzcyB0byBVbmNoZWNrZWRMb2NrCisgICAgICAgIDIuIFJlbmFtZSB0aGUgQ2hlY2tlZExv
Y2sgY2xhc3MgdG8gTG9jaworICAgICAgICAzLiBSZW5hbWUgdGhlIENvbmRpdGlvbiBjbGFzcyB0
byBVbmNoZWNrZWRDb25kaXRpb24KKyAgICAgICAgNC4gUmVuYW1lIHRoZSBDaGVja2VkQ29uZGl0
aW9uIGNsYXNzIHRvIENvbmRpdGlvbgorICAgICAgICA1LiBVcGRhdGUgdGhlIHR5cGVzIG9mIGNl
cnRhaW4gdmFyaWFibGVzIGZyb20gTG9jayAvIENvbmRpdGlvbiB0bworICAgICAgICAgICBVbmNo
ZWNrZWRMb2NrIC8gVW5jaGVja2VkQ29uZGl0aW9uIGlmIEkgZ290IGEgYnVpbGQgZmFpbHVyZS4g
QnVpbGQKKyAgICAgICAgICAgZmFpbHVyZXMgYXJlIHVzdWFsbHkgY2F1c2VkIGJ5IHRoZSBmb2xs
b3dpbmcgZmFjdHM6CisgICAgICAgICAgIC0gTG9ja2VyPENoZWNrZWRMb2NrPiBkb2Vzbid0IHN1
YmNsYXNzIEFic3RyYWN0TG9ja2VyIHdoaWNoIGEgbG90IG9mCisgICAgICAgICAgICAgSlNDIGNv
ZGUgcGFzc2VzIGFzIGFyZ3VtZW50CisgICAgICAgICAgIC0gTG9ja2VyPENoZWNrZWRMb2NrPiBo
YXMgbm8gbW92ZSBjb25zdHJ1Y3RvcgorICAgICAgICAgICAtIExvY2tlcjxDaGVja2VkTG9jaz4g
Y2Fubm90IGJlIGNvbnN0cnVjdGVkIGZyb20gYSBsb2NrIHBvaW50ZXIsIG9ubHkKKyAgICAgICAg
ICAgICBhIHJlZmVyZW5jZQorICAgICAgICAKKyAgICAgICAgRm9yIG5vdywgQ2hlY2tlZExvY2sg
YW5kIENoZWNrZWRDb25kaXRpb24gcmVtYWluIGFzIGFsaWFzZXMgdG8gTG9jayBhbmQKKyAgICAg
ICAgQ29uZGl0aW9uLCBpbiB0aGVpciByZXNwZWN0aXZlIENoZWNrZWRMb2NrLmggLyBDaGVja2Vk
Q29uZGl0aW9uLmggaGVhZGVycy4KKyAgICAgICAgSSB3aWxsIGRyb3AgdGhlbSBpbiBhIGZvbGxv
dy11cCB0byByZWR1Y2UgcGF0Y2ggc2l6ZS4KKworICAgICAgICBJIHdpbGwgYWxzbyBmb2xsb3ct
dXAgdG8gdHJ5IGFuZCBnZXQgcmlkIG9mIGFzIG11Y2ggdXNhZ2Ugb2YgVW5jaGVja2VkTG9jawor
ICAgICAgICBhbmQgVW5jaGVja2VkQ29uZGl0aW9uIGFzIHBvc3NpYmxlLiBJIGRpZCBub3QgdHJ5
IHZlcnkgaGFyZCBpbiB0aGlzIHBhdGNoCisgICAgICAgIHRvIHJlZHVjZSBwYXRjaCBzaXplLgor
CisgICAgICAgICogd3RmL0F1dG9tYXRpY1RocmVhZC5jcHA6CisgICAgICAgIChXVEY6OkF1dG9t
YXRpY1RocmVhZENvbmRpdGlvbjo6d2FpdCk6CisgICAgICAgIChXVEY6OkF1dG9tYXRpY1RocmVh
ZENvbmRpdGlvbjo6d2FpdEZvcik6CisgICAgICAgIChXVEY6OkF1dG9tYXRpY1RocmVhZDo6QXV0
b21hdGljVGhyZWFkKToKKyAgICAgICAgKiB3dGYvQXV0b21hdGljVGhyZWFkLmg6CisgICAgICAg
ICogd3RmL0NoZWNrZWRDb25kaXRpb24uaDoKKyAgICAgICAgKiB3dGYvQ2hlY2tlZExvY2suaDoK
KyAgICAgICAgKiB3dGYvQ29uZGl0aW9uLmg6CisgICAgICAgICogd3RmL0xvY2suY3BwOgorICAg
ICAgICAoV1RGOjpVbmNoZWNrZWRMb2NrOjpsb2NrU2xvdyk6CisgICAgICAgIChXVEY6OlVuY2hl
Y2tlZExvY2s6OnVubG9ja1Nsb3cpOgorICAgICAgICAoV1RGOjpVbmNoZWNrZWRMb2NrOjp1bmxv
Y2tGYWlybHlTbG93KToKKyAgICAgICAgKFdURjo6VW5jaGVja2VkTG9jazo6c2FmZXBvaW50U2xv
dyk6CisgICAgICAgICogd3RmL0xvY2suaDoKKyAgICAgICAgKFdURjo6V1RGX0FTU0VSVFNfQUNR
VUlSRURfTE9DSyk6CisgICAgICAgICogd3RmL01ldGFBbGxvY2F0b3IuY3BwOgorICAgICAgICAo
V1RGOjpNZXRhQWxsb2NhdG9yOjpyZWxlYXNlKToKKyAgICAgICAgKFdURjo6TWV0YUFsbG9jYXRv
cjo6TWV0YUFsbG9jYXRvcik6CisgICAgICAgIChXVEY6Ok1ldGFBbGxvY2F0b3I6OmFsbG9jYXRl
KToKKyAgICAgICAgKFdURjo6TWV0YUFsbG9jYXRvcjo6Y3VycmVudFN0YXRpc3RpY3MpOgorICAg
ICAgICAqIHd0Zi9NZXRhQWxsb2NhdG9yLmg6CisgICAgICAgICogd3RmL1BhcmFsbGVsSGVscGVy
UG9vbC5jcHA6CisgICAgICAgIChXVEY6OlBhcmFsbGVsSGVscGVyUG9vbDo6UGFyYWxsZWxIZWxw
ZXJQb29sKToKKyAgICAgICAgKiB3dGYvUGFyYWxsZWxIZWxwZXJQb29sLmg6CisgICAgICAgICog
d3RmL1JlY3Vyc2l2ZUxvY2tBZGFwdGVyLmg6CisgICAgICAgICogd3RmL1dvcmtlclBvb2wuY3Bw
OgorICAgICAgICAoV1RGOjpXb3JrZXJQb29sOjpXb3JrZXJQb29sKToKKyAgICAgICAgKiB3dGYv
V29ya2VyUG9vbC5oOgorCiAyMDIxLTA1LTIzICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5j
b20+CiAKICAgICAgICAgRHJvcCBXVEY6OnRyeUhvbGRMb2NrKCkgYXMgaXQgaXMgaW5jb21wYXRp
YmxlIHdpdGggQ2xhbmcgVGhyZWFkIFNhZmV0eSBBbmFseXNpcwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDVkYmE1
ZmZmZmMwOTJiZDBjYTgyNmUxM2FiODBmMmQyYjJhZmNhZjEuLmMyMjkzNTI2NzI4NzU0NjUzMThm
MTU1ZGRhMTUyNGI4MGRkZWIxYTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2NyBAQAorMjAyMS0w
NS0yMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIE1ha2UgQ2hl
Y2tlZExvY2sgdGhlIGRlZmF1bHQgTG9jaworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjI2MTU3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgTWFrZSBDaGVja2VkTG9jayB0aGUgZGVmYXVsdCBMb2NrIHNvIHRo
YXQgd2UgZ2V0IG1vcmUgYmVuZWZpdHMgZnJvbSBDbGFuZworICAgICAgICBUaHJlYWQgU2FmZXR5
IEFuYWx5c2lzLiBOb3RlIHRoYXQgQ2hlY2tlZExvY2sgMTAwJSByZWxpZXMgb24gdGhlIGV4aXN0
aW5nCisgICAgICAgIExvY2sgaW1wbGVtZW50YXRpb24gYW5kIG1lcmVseSBhZGRzIHRoZSBjbGFu
ZyBhbm90YXRpb25zIGZvciB0aHJlYWQgCisgICAgICAgIHNhZmV0eS4KKworICAgICAgICBUaGF0
IHRoaXMgcGF0Y2ggZG9lcyBpczoKKyAgICAgICAgMS4gUmVuYW1lIHRoZSBMb2NrIGNsYXNzIHRv
IFVuY2hlY2tlZExvY2sKKyAgICAgICAgMi4gUmVuYW1lIHRoZSBDaGVja2VkTG9jayBjbGFzcyB0
byBMb2NrCisgICAgICAgIDMuIFJlbmFtZSB0aGUgQ29uZGl0aW9uIGNsYXNzIHRvIFVuY2hlY2tl
ZENvbmRpdGlvbgorICAgICAgICA0LiBSZW5hbWUgdGhlIENoZWNrZWRDb25kaXRpb24gY2xhc3Mg
dG8gQ29uZGl0aW9uCisgICAgICAgIDUuIFVwZGF0ZSB0aGUgdHlwZXMgb2YgY2VydGFpbiB2YXJp
YWJsZXMgZnJvbSBMb2NrIC8gQ29uZGl0aW9uIHRvCisgICAgICAgICAgIFVuY2hlY2tlZExvY2sg
LyBVbmNoZWNrZWRDb25kaXRpb24gaWYgSSBnb3QgYSBidWlsZCBmYWlsdXJlLiBCdWlsZCAKKyAg
ICAgICAgICAgZmFpbHVyZXMgYXJlIHVzdWFsbHkgY2F1c2VkIGJ5IHRoZSBmb2xsb3dpbmcgZmFj
dHM6CisgICAgICAgICAgIC0gTG9ja2VyPENoZWNrZWRMb2NrPiBkb2Vzbid0IHN1YmNsYXNzIEFi
c3RyYWN0TG9ja2VyIHdoaWNoIGEgbG90IG9mCisgICAgICAgICAgICAgSlNDIGNvZGUgcGFzc2Vz
IGFzIGFyZ3VtZW50CisgICAgICAgICAgIC0gTG9ja2VyPENoZWNrZWRMb2NrPiBoYXMgbm8gbW92
ZSBjb25zdHJ1Y3RvcgorICAgICAgICAgICAtIExvY2tlcjxDaGVja2VkTG9jaz4gY2Fubm90IGJl
IGNvbnN0cnVjdGVkIGZyb20gYSBsb2NrIHBvaW50ZXIsIG9ubHkKKyAgICAgICAgICAgICBhIHJl
ZmVyZW5jZQorCisgICAgICAgIEZvciBub3csIENoZWNrZWRMb2NrIGFuZCBDaGVja2VkQ29uZGl0
aW9uIHJlbWFpbiBhcyBhbGlhc2VzIHRvIExvY2sgYW5kIAorICAgICAgICBDb25kaXRpb24sIGlu
IHRoZWlyIHJlc3BlY3RpdmUgQ2hlY2tlZExvY2suaCAvIENoZWNrZWRDb25kaXRpb24uaCBoZWFk
ZXJzLgorICAgICAgICBJIHdpbGwgZHJvcCB0aGVtIGluIGEgZm9sbG93LXVwIHRvIHJlZHVjZSBw
YXRjaCBzaXplLgorCisgICAgICAgIEkgd2lsbCBhbHNvIGZvbGxvdy11cCB0byB0cnkgYW5kIGdl
dCByaWQgb2YgYXMgbXVjaCB1c2FnZSBvZiBVbmNoZWNrZWRMb2NrCisgICAgICAgIGFuZCBVbmNo
ZWNrZWRDb25kaXRpb24gYXMgcG9zc2libGUuIEkgZGlkIG5vdCB0cnkgdmVyeSBoYXJkIGluIHRo
aXMgcGF0Y2gKKyAgICAgICAgdG8gcmVkdWNlIHBhdGNoIHNpemUuIAorCisgICAgICAgICogTW9k
dWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQlNlcnZlci5jcHA6CisgICAgICAgICogTW9kdWxlcy93
ZWJhdWRpby9NZWRpYUVsZW1lbnRBdWRpb1NvdXJjZU5vZGUuaDoKKyAgICAgICAgKiBNb2R1bGVz
L3dlYmRhdGFiYXNlL09yaWdpbkxvY2suY3BwOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9N
R2xvYmFsT2JqZWN0Lmg6CisgICAgICAgICogZG9tL05vZGUuY3BwOgorICAgICAgICAqIGh0bWwv
SFRNTE1lZGlhRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50
OjpjcmVhdGVNZWRpYVBsYXllcik6CisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xDb250ZXh0
R3JvdXAuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xDb250ZXh0R3JvdXA6Om9iamVjdEdy
YXBoTG9ja0ZvckFDb250ZXh0KToKKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTENvbnRleHRH
cm91cC5oOgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMQ29udGV4dE9iamVjdC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpXZWJHTENvbnRleHRPYmplY3Q6Om9iamVjdEdyYXBoTG9ja0ZvckNv
bnRleHQpOgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMQ29udGV4dE9iamVjdC5oOgorICAg
ICAgICAqIGh0bWwvY2FudmFzL1dlYkdMT2JqZWN0Lmg6CisgICAgICAgICogaHRtbC9jYW52YXMv
V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJl
bmRlcmluZ0NvbnRleHRCYXNlOjpvYmplY3RHcmFwaExvY2spOgorICAgICAgICAqIGh0bWwvY2Fu
dmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuaDoKKyAgICAgICAgKiBodG1sL2NhbnZhcy9X
ZWJHTFNoYXJlZE9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFNoYXJlZE9iamVj
dDo6b2JqZWN0R3JhcGhMb2NrRm9yQ29udGV4dCk6CisgICAgICAgICogaHRtbC9jYW52YXMvV2Vi
R0xTaGFyZWRPYmplY3QuaDoKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5n
VHJlZU1hYy5oOgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL1JldmVyYkNvbnZvbHZlci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSZXZlcmJDb252b2x2ZXI6OmJhY2tncm91bmRUaHJlYWRFbnRy
eSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvU2hhZG93Qmx1ci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTY3JhdGNoQnVmZmVyOjpsb2NrKToKKyAgICAgICAgKFdlYkNvcmU6OlNoYWRv
d0JsdXI6OmRyYXdSZWN0U2hhZG93V2l0aFRpbGluZyk6CisgICAgICAgIChXZWJDb3JlOjpTaGFk
b3dCbHVyOjpkcmF3SW5zZXRTaGFkb3dXaXRoVGlsaW5nKToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvVmlkZW9TaW5rR1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvZW1lL1dlYktpdENvbW1vbkVuY3J5cHRpb25EZWNyeXB0
b3JHU3RyZWFtZXIuY3BwOgorCiAyMDIxLTA1LTIzICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBs
ZS5jb20+CiAKICAgICAgICAgVXNlIENoZWNrZWRMb2NrIGluIGV2ZW4gbW9yZSBwbGFjZXMKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cKaW5kZXggNDZkMzYwY2ZmMzRmMDI3ZWVkMzY5Nzg5ZjQ1NjI2M2EwMmFhY2YxOS4uMGRiZWEw
ZmVlN2YyODY5ZGYxMzkyZjMzMWRhMTRlZDRkYzNiYzQ4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0
NCBAQAorMjAyMS0wNS0yMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAg
ICAgIE1ha2UgQ2hlY2tlZExvY2sgdGhlIGRlZmF1bHQgTG9jaworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI2MTU3CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWFrZSBDaGVja2VkTG9jayB0aGUgZGVmYXVs
dCBMb2NrIHNvIHRoYXQgd2UgZ2V0IG1vcmUgYmVuZWZpdHMgZnJvbSBDbGFuZworICAgICAgICBU
aHJlYWQgU2FmZXR5IEFuYWx5c2lzLiBOb3RlIHRoYXQgQ2hlY2tlZExvY2sgMTAwJSByZWxpZXMg
b24gdGhlIGV4aXN0aW5nCisgICAgICAgIExvY2sgaW1wbGVtZW50YXRpb24gYW5kIG1lcmVseSBh
ZGRzIHRoZSBjbGFuZyBhbm90YXRpb25zIGZvciB0aHJlYWQgCisgICAgICAgIHNhZmV0eS4KKwor
ICAgICAgICBUaGF0IHRoaXMgcGF0Y2ggZG9lcyBpczoKKyAgICAgICAgMS4gUmVuYW1lIHRoZSBM
b2NrIGNsYXNzIHRvIFVuY2hlY2tlZExvY2sKKyAgICAgICAgMi4gUmVuYW1lIHRoZSBDaGVja2Vk
TG9jayBjbGFzcyB0byBMb2NrCisgICAgICAgIDMuIFJlbmFtZSB0aGUgQ29uZGl0aW9uIGNsYXNz
IHRvIFVuY2hlY2tlZENvbmRpdGlvbgorICAgICAgICA0LiBSZW5hbWUgdGhlIENoZWNrZWRDb25k
aXRpb24gY2xhc3MgdG8gQ29uZGl0aW9uCisgICAgICAgIDUuIFVwZGF0ZSB0aGUgdHlwZXMgb2Yg
Y2VydGFpbiB2YXJpYWJsZXMgZnJvbSBMb2NrIC8gQ29uZGl0aW9uIHRvCisgICAgICAgICAgIFVu
Y2hlY2tlZExvY2sgLyBVbmNoZWNrZWRDb25kaXRpb24gaWYgSSBnb3QgYSBidWlsZCBmYWlsdXJl
LiBCdWlsZCAKKyAgICAgICAgICAgZmFpbHVyZXMgYXJlIHVzdWFsbHkgY2F1c2VkIGJ5IHRoZSBm
b2xsb3dpbmcgZmFjdHM6CisgICAgICAgICAgIC0gTG9ja2VyPENoZWNrZWRMb2NrPiBkb2Vzbid0
IHN1YmNsYXNzIEFic3RyYWN0TG9ja2VyIHdoaWNoIGEgbG90IG9mCisgICAgICAgICAgICAgSlND
IGNvZGUgcGFzc2VzIGFzIGFyZ3VtZW50CisgICAgICAgICAgIC0gTG9ja2VyPENoZWNrZWRMb2Nr
PiBoYXMgbm8gbW92ZSBjb25zdHJ1Y3RvcgorICAgICAgICAgICAtIExvY2tlcjxDaGVja2VkTG9j
az4gY2Fubm90IGJlIGNvbnN0cnVjdGVkIGZyb20gYSBsb2NrIHBvaW50ZXIsIG9ubHkKKyAgICAg
ICAgICAgICBhIHJlZmVyZW5jZQorCisgICAgICAgIEZvciBub3csIENoZWNrZWRMb2NrIGFuZCBD
aGVja2VkQ29uZGl0aW9uIHJlbWFpbiBhcyBhbGlhc2VzIHRvIExvY2sgYW5kIAorICAgICAgICBD
b25kaXRpb24sIGluIHRoZWlyIHJlc3BlY3RpdmUgQ2hlY2tlZExvY2suaCAvIENoZWNrZWRDb25k
aXRpb24uaCBoZWFkZXJzLgorICAgICAgICBJIHdpbGwgZHJvcCB0aGVtIGluIGEgZm9sbG93LXVw
IHRvIHJlZHVjZSBwYXRjaCBzaXplLgorCisgICAgICAgIEkgd2lsbCBhbHNvIGZvbGxvdy11cCB0
byB0cnkgYW5kIGdldCByaWQgb2YgYXMgbXVjaCB1c2FnZSBvZiBVbmNoZWNrZWRMb2NrCisgICAg
ICAgIGFuZCBVbmNoZWNrZWRDb25kaXRpb24gYXMgcG9zc2libGUuIEkgZGlkIG5vdCB0cnkgdmVy
eSBoYXJkIGluIHRoaXMgcGF0Y2gKKyAgICAgICAgdG8gcmVkdWNlIHBhdGNoIHNpemUuIAorCisg
ICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTC5jcHA6
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMOjpwYWludFBpeGVsQnVm
ZmVyVG9JbWFnZUJ1ZmZlcik6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvSW5kZXhlZERCL1dl
YklEQlNlcnZlci5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9nbGliL0ljb25EYXRhYmFz
ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvV0tQcmludGluZ1ZpZXcubW06CisgICAgICAg
ICgtW1dLUHJpbnRpbmdWaWV3IGtub3dzUGFnZVJhbmdlOl0pOgorCiAyMDIxLTA1LTIzICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgVXNlIENoZWNrZWRMb2NrIGlu
IGV2ZW4gbW9yZSBwbGFjZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3Nl
bWJsZXIvUGVyZkxvZy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9QZXJmTG9n
LmgKaW5kZXggOGYyNGU4ZmE4YTNlMWI2YmM5NmQ1OThiNWQwZjI1MTUwYTdmZjcyMS4uOTc2MGRm
NjY1OGQyOTMzM2FmYTlhZGE4NzFhOTVjZTMyY2EwZDI0ZCAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9QZXJmTG9nLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2Fzc2VtYmxlci9QZXJmTG9nLmgKQEAgLTUwLDcgKzUwLDcgQEAgcHJpdmF0ZToKICAgICB2
b2lkKiBtX21hcmtlciB7IG51bGxwdHIgfTsKICAgICB1aW50NjRfdCBtX2NvZGVJbmRleCB7IDAg
fTsKICAgICBpbnQgbV9mZCB7IC0xIH07Ci0gICAgTG9jayBtX2xvY2s7CisgICAgVW5jaGVja2Vk
TG9jayBtX2xvY2s7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvdGVzdG1hc20uY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Fzc2VtYmxlci90ZXN0bWFzbS5jcHAKaW5kZXggMTkxZDE4MjkzNWFjMWE2ZTZmMGI1
MGI3YTMxM2JkOTg4N2FkYTQyMC4uZDM1M2U3MTJmODk5YzMwZTc5YmQ1MWM1ZGNjZDU3M2ExZDBl
YmM4MyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci90ZXN0bWFz
bS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci90ZXN0bWFzbS5jcHAK
QEAgLTE1Nyw3ICsxNTcsNyBAQCBuYW1lc3BhY2UgewogdXNpbmcgQ1BVU3RhdGUgPSBQcm9iZTo6
Q1BVU3RhdGU7CiAjZW5kaWYKIAotTG9jayBjcmFzaExvY2s7CitVbmNoZWNrZWRMb2NrIGNyYXNo
TG9jazsKIAogdHlwZWRlZiBXVEY6OkZ1bmN0aW9uPHZvaWQoQ0NhbGxIZWxwZXJzJik+IEdlbmVy
YXRvcjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDb21tb24u
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDb21tb24uY3BwCmluZGV4IGE3YWJj
NjQ3NDkzZDJiNjhkOThkYzJhNDAxNGJjMzNjN2RhYjg1ZmIuLjg3NjNjM2ZkNTFmYjE2NTRjNjk1
NDA0YTg1ZjY3YjBiOWU4MzcwNTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHQ29tbW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NvbW1v
bi5jcHAKQEAgLTM1LDcgKzM1LDcgQEAgbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBERkcgewog
CiBjb25zdCBjaGFyKiBjb25zdCB0aWVyTmFtZSA9ICJERkcgIjsKIAotc3RhdGljIExvY2sgY3Jh
c2hMb2NrOworc3RhdGljIFVuY2hlY2tlZExvY2sgY3Jhc2hMb2NrOwogCiB2b2lkIHN0YXJ0Q3Jh
c2hpbmcoKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdUaHJl
YWREYXRhLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1RocmVhZERhdGEuaAppbmRl
eCAzN2RmOWJkMTIxNTQ5Y2RlZDExZTk5ZjQyZmZkMmM1MGYwMjUyZDg2Li41MjJiN2QyYjdjMzYx
ZThiOWQzODBjNzI4Y2ZiOGEwNWIxNzQ2OWJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR1RocmVhZERhdGEuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1RocmVhZERhdGEuaApAQCAtNDcsNyArNDcsNyBAQCBwcml2YXRlOgogICAgIAogICAgIFdv
cmtsaXN0KiBtX3dvcmtsaXN0OwogICAgIFJlZlB0cjxBdXRvbWF0aWNUaHJlYWQ+IG1fdGhyZWFk
OwotICAgIExvY2sgbV9yaWdodFRvUnVuOworICAgIFVuY2hlY2tlZExvY2sgbV9yaWdodFRvUnVu
OwogICAgIFNhZmVwb2ludCogbV9zYWZlcG9pbnQ7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1dvcmtsaXN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHV29ya2xpc3QuY3BwCmluZGV4IDRkMjI4Y2ZlODdhZDk4MTkzNmMwN2MwOWQ0MWI3
Mjc1MTU1OTRhOTEuLmQxNTdhZGY4NzZkYzg0NjgzYTg2YzA0NmVhMmJlZWNiYWI5OWE5MzcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHV29ya2xpc3QuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHV29ya2xpc3QuY3BwCkBAIC0zOSw3ICszOSw3
IEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKIAogY2xhc3MgV29ya2xpc3Q6OlRo
cmVhZEJvZHkgZmluYWwgOiBwdWJsaWMgQXV0b21hdGljVGhyZWFkIHsKIHB1YmxpYzoKLSAgICBU
aHJlYWRCb2R5KGNvbnN0IEFic3RyYWN0TG9ja2VyJiBsb2NrZXIsIFdvcmtsaXN0JiB3b3JrbGlz
dCwgVGhyZWFkRGF0YSYgZGF0YSwgQm94PExvY2s+IGxvY2ssIFJlZjxBdXRvbWF0aWNUaHJlYWRD
b25kaXRpb24+JiYgY29uZGl0aW9uLCBpbnQgcmVsYXRpdmVQcmlvcml0eSkKKyAgICBUaHJlYWRC
b2R5KGNvbnN0IEFic3RyYWN0TG9ja2VyJiBsb2NrZXIsIFdvcmtsaXN0JiB3b3JrbGlzdCwgVGhy
ZWFkRGF0YSYgZGF0YSwgQm94PFVuY2hlY2tlZExvY2s+IGxvY2ssIFJlZjxBdXRvbWF0aWNUaHJl
YWRDb25kaXRpb24+JiYgY29uZGl0aW9uLCBpbnQgcmVsYXRpdmVQcmlvcml0eSkKICAgICAgICAg
OiBBdXRvbWF0aWNUaHJlYWQobG9ja2VyLCBsb2NrLCBXVEZNb3ZlKGNvbmRpdGlvbiksIFRocmVh
ZFR5cGU6OkNvbXBpbGVyKQogICAgICAgICAsIG1fd29ya2xpc3Qod29ya2xpc3QpCiAgICAgICAg
ICwgbV9kYXRhKGRhdGEpCkBAIC0xODEsNyArMTgxLDcgQEAgc3RhdGljIENTdHJpbmcgY3JlYXRl
V29ya2xpc3ROYW1lKENTdHJpbmcmJiB0aWVyTmFtZSkKIFdvcmtsaXN0OjpXb3JrbGlzdChDU3Ry
aW5nJiYgdGllck5hbWUpCiAgICAgOiBtX3RocmVhZE5hbWUoY3JlYXRlV29ya2xpc3ROYW1lKFdU
Rk1vdmUodGllck5hbWUpKSkKICAgICAsIG1fcGxhbkVucXVldWVkKEF1dG9tYXRpY1RocmVhZENv
bmRpdGlvbjo6Y3JlYXRlKCkpCi0gICAgLCBtX2xvY2soQm94PExvY2s+OjpjcmVhdGUoKSkKKyAg
ICAsIG1fbG9jayhCb3g8VW5jaGVja2VkTG9jaz46OmNyZWF0ZSgpKQogewogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1dvcmtsaXN0LmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1dvcmtsaXN0LmgKaW5kZXggMWNlMDJjMDdkOGIxMjgxOTRiY2Mw
M2M3ZjJhNTQxY2QwYTVmNDUyOS4uNTc2ZTAzZTQ3ZTZlZjUwM2M2ZDAxMTZlY2ZiZGMwYThjNmM3
NWM4OCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdXb3JrbGlzdC5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHV29ya2xpc3QuaApAQCAtMTEwLDEw
ICsxMTAsMTAgQEAgcHJpdmF0ZToKICAgICAvLyBiZSBjb21wbGV0ZWQuCiAgICAgVmVjdG9yPFJl
ZlB0cjxQbGFuPiwgMTY+IG1fcmVhZHlQbGFuczsKICAgICBSZWY8QXV0b21hdGljVGhyZWFkQ29u
ZGl0aW9uPiBtX3BsYW5FbnF1ZXVlZDsKLSAgICBDb25kaXRpb24gbV9wbGFuQ29tcGlsZWQ7Cisg
ICAgVW5jaGVja2VkQ29uZGl0aW9uIG1fcGxhbkNvbXBpbGVkOwogCi0gICAgTG9jayBtX3N1c3Bl
bnNpb25Mb2NrOwotICAgIEJveDxMb2NrPiBtX2xvY2s7CisgICAgVW5jaGVja2VkTG9jayBtX3N1
c3BlbnNpb25Mb2NrOworICAgIEJveDxVbmNoZWNrZWRMb2NrPiBtX2xvY2s7CiB9OwogCiBKU19F
WFBPUlRfUFJJVkFURSB1bnNpZ25lZCBzZXROdW1iZXJPZkRGR0NvbXBpbGVyVGhyZWFkcyh1bnNp
Z25lZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZHluYmVuY2guY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2R5bmJlbmNoLmNwcAppbmRleCA4ZjllNWViNzQxMDQ3NWZi
N2M4YjA4NjkyNjIzMzRmZTJhOTc4OTg1Li43OTUyNjExMGUyYTNhNjIwNTJkMTA5ZTliZGI4OGU5
ZWVhYmZmZjU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZHluYmVuY2guY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9keW5iZW5jaC5jcHAKQEAgLTQwLDcgKzQwLDcg
QEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAogbmFtZXNwYWNlIHsKIAotTG9jayBjcmFzaExvY2s7
CitVbmNoZWNrZWRMb2NrIGNyYXNoTG9jazsKIGNvbnN0IGNoYXIqIG5hbWVGaWx0ZXI7CiB1bnNp
Z25lZCByZXF1ZXN0ZWRJdGVyYXRpb25Db3VudDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2hlYXAvQmxvY2tEaXJlY3RvcnkuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9o
ZWFwL0Jsb2NrRGlyZWN0b3J5LmgKaW5kZXggZGFhMDNjNDdlZGY5ZDM2ZDE1NmJkNWQxYTY2MjFi
ZWU2YWFkZjhhZC4uOTAxNTg4Yzk0MzljMzVkZmM4MDRhMGI3NTdjNWU1YjU2M2Y0NGE0ZSAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvQmxvY2tEaXJlY3RvcnkuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9CbG9ja0RpcmVjdG9yeS5oCkBAIC05Myw3ICs5
Myw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgdXBkYXRlUGVyY2VudGFnZU9mUGFnZWRPdXRQYWdl
cyhXVEY6OlNpbXBsZVN0YXRzJik7CiAgICAgCi0gICAgTG9jayYgYml0dmVjdG9yTG9jaygpIHsg
cmV0dXJuIG1fYml0dmVjdG9yTG9jazsgfQorICAgIFVuY2hlY2tlZExvY2smIGJpdHZlY3Rvckxv
Y2soKSB7IHJldHVybiBtX2JpdHZlY3RvckxvY2s7IH0KIAogI2RlZmluZSBCTE9DS19ESVJFQ1RP
UllfQklUX0FDQ0VTU09SUyhsb3dlckJpdE5hbWUsIGNhcGl0YWxCaXROYW1lKSAgICAgXAogICAg
IGJvb2wgaXMgIyMgY2FwaXRhbEJpdE5hbWUoY29uc3QgQWJzdHJhY3RMb2NrZXImLCBzaXplX3Qg
aW5kZXgpIGNvbnN0IHsgcmV0dXJuIG1fYml0cy5pcyAjIyBjYXBpdGFsQml0TmFtZShpbmRleCk7
IH0gXApAQCAtMTU1LDcgKzE1NSw3IEBAIHByaXZhdGU6CiAgICAgLy8gTXV0YXRvciB1c2VzIHRo
aXMgdG8gZ3VhcmQgcmVzaXppbmcgdGhlIGJpdHZlY3RvcnMuIFRob3NlIHRoaW5ncyBpbiB0aGUg
R0MgdGhhdCBtYXkgcnVuCiAgICAgLy8gY29uY3VycmVudGx5IHRvIHRoZSBtdXRhdG9yIG11c3Qg
bG9jayB0aGlzIHdoZW4gYWNjZXNzaW5nIHRoZSBiaXR2ZWN0b3JzLgogICAgIEJsb2NrRGlyZWN0
b3J5Qml0cyBtX2JpdHM7Ci0gICAgTG9jayBtX2JpdHZlY3RvckxvY2s7CisgICAgVW5jaGVja2Vk
TG9jayBtX2JpdHZlY3RvckxvY2s7CiAgICAgTG9jayBtX2xvY2FsQWxsb2NhdG9yc0xvY2s7CiAg
ICAgQ2VsbEF0dHJpYnV0ZXMgbV9hdHRyaWJ1dGVzOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaGVhcC9Db2RlQmxvY2tTZXQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9o
ZWFwL0NvZGVCbG9ja1NldC5oCmluZGV4IGIwZGNiNmNjNzdjOWY5OWQzMDJjNzk5ZDk4ZTM5ZTk1
M2U2YWY0MTkuLjg1NmNjMWJiZjhiZDJkMTdjZGNkY2E3ZDNiNDRjNzFmMmZhNzBiMTggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0NvZGVCbG9ja1NldC5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0NvZGVCbG9ja1NldC5oCkBAIC01NCw3ICs1NCw3IEBA
IHB1YmxpYzoKICAgICB2b2lkIGNsZWFyQ3VycmVudGx5RXhlY3V0aW5nKCk7CiAKICAgICBib29s
IGNvbnRhaW5zKGNvbnN0IEFic3RyYWN0TG9ja2VyJiwgdm9pZCogY2FuZGlkYXRlQ29kZUJsb2Nr
KTsKLSAgICBMb2NrJiBnZXRMb2NrKCkgeyByZXR1cm4gbV9sb2NrOyB9CisgICAgVW5jaGVja2Vk
TG9jayYgZ2V0TG9jaygpIHsgcmV0dXJuIG1fbG9jazsgfQogCiAgICAgLy8gVGhpcyBpcyBleHBl
Y3RlZCB0byBydW4gb25seSB3aGVuIHdlJ3JlIG5vdCBhZGRpbmcgdG8gdGhlIHNldCBmb3Igbm93
LiBJZgogICAgIC8vIHRoaXMgbmVlZHMgdG8gcnVuIGNvbmN1cnJlbnRseSBpbiB0aGUgZnV0dXJl
LCB3ZSdsbCBuZWVkIHRvIGxvY2sgYXJvdW5kIHRoaXMuCkBAIC03OCw3ICs3OCw3IEBAIHB1Ymxp
YzoKIHByaXZhdGU6CiAgICAgSGFzaFNldDxDb2RlQmxvY2sqPiBtX2NvZGVCbG9ja3M7CiAgICAg
SGFzaFNldDxDb2RlQmxvY2sqPiBtX2N1cnJlbnRseUV4ZWN1dGluZzsKLSAgICBMb2NrIG1fbG9j
azsKKyAgICBVbmNoZWNrZWRMb2NrIG1fbG9jazsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNwcAppbmRleCA4YmM4NmQyY2E3NTE1YjRiOGUyZjc2
NGRlOTBlMmE2YzI0NzI2NjkxLi44NjFhNDAyZTUwZDBiY2MwZmVhZTYwMzA0N2NmMzVjMmVjZGM0
ZGU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNwcApAQCAtMzAyLDcgKzMwMiw3IEBA
IEhlYXA6OkhlYXAoVk0mIHZtLCBIZWFwVHlwZSBoZWFwVHlwZSkKICAgICAsIG1fc2hhcmVkQ29s
bGVjdG9yTWFya1N0YWNrKG1ha2VVbmlxdWU8TWFya1N0YWNrQXJyYXk+KCkpCiAgICAgLCBtX3No
YXJlZE11dGF0b3JNYXJrU3RhY2sobWFrZVVuaXF1ZTxNYXJrU3RhY2tBcnJheT4oKSkKICAgICAs
IG1faGVscGVyQ2xpZW50KCZoZWFwSGVscGVyUG9vbCgpKQotICAgICwgbV90aHJlYWRMb2NrKEJv
eDxMb2NrPjo6Y3JlYXRlKCkpCisgICAgLCBtX3RocmVhZExvY2soQm94PFVuY2hlY2tlZExvY2s+
OjpjcmVhdGUoKSkKICAgICAsIG1fdGhyZWFkQ29uZGl0aW9uKEF1dG9tYXRpY1RocmVhZENvbmRp
dGlvbjo6Y3JlYXRlKCkpCiB7CiAgICAgbV93b3JsZFN0YXRlLnN0b3JlKDApOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2hlYXAvSGVhcC5oCmluZGV4IDdhNTNlMDUxNWQwNjk2NTNkMDRmYjliYWMzNTU4ZDdlODFk
OTVmMmMuLjY4ZDkwNzRmZGYzZDhlYThmNDg3YjA2NDg3YjgwZDdhMmIxYjgwMzEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaGVhcC9IZWFwLmgKQEAgLTcyMiw4ICs3MjIsOCBAQCBwcml2YXRlOgogICAgIEF0
b21pYzx1bnNpZ25lZD4gbV93b3JsZFN0YXRlOwogICAgIGJvb2wgbV93b3JsZElzU3RvcHBlZCB7
IGZhbHNlIH07CiAgICAgTG9jayBtX3Zpc2l0UmFjZUxvY2s7Ci0gICAgTG9jayBtX21hcmtpbmdN
dXRleDsKLSAgICBDb25kaXRpb24gbV9tYXJraW5nQ29uZGl0aW9uVmFyaWFibGU7CisgICAgVW5j
aGVja2VkTG9jayBtX21hcmtpbmdNdXRleDsKKyAgICBVbmNoZWNrZWRDb25kaXRpb24gbV9tYXJr
aW5nQ29uZGl0aW9uVmFyaWFibGU7CiAKICAgICBNb25vdG9uaWNUaW1lIG1fYmVmb3JlR0M7CiAg
ICAgTW9ub3RvbmljVGltZSBtX2FmdGVyR0M7CkBAIC03NDYsNyArNzQ2LDcgQEAgcHJpdmF0ZToK
IAogICAgIHVpbnQ2NF90IG1fbXV0YXRvckV4ZWN1dGlvblZlcnNpb24geyAwIH07CiAgICAgdWlu
dDY0X3QgbV9waGFzZVZlcnNpb24geyAwIH07Ci0gICAgQm94PExvY2s+IG1fdGhyZWFkTG9jazsK
KyAgICBCb3g8VW5jaGVja2VkTG9jaz4gbV90aHJlYWRMb2NrOwogICAgIFJlZjxBdXRvbWF0aWNU
aHJlYWRDb25kaXRpb24+IG1fdGhyZWFkQ29uZGl0aW9uOyAvLyBUaGUgbXV0YXRvciBtdXN0IG5v
dCB3YWl0IG9uIHRoaXMuIEl0IHdvdWxkIGNhdXNlIGEgZGVhZGxvY2suCiAgICAgUmVmUHRyPEF1
dG9tYXRpY1RocmVhZD4gbV90aHJlYWQ7CiAKQEAgLTc2OCw4ICs3NjgsOCBAQCBwcml2YXRlOgog
I2VuZGlmCiAKICAgICBib29sIG1fcGFyYWxsZWxNYXJrZXJzU2hvdWxkRXhpdCB7IGZhbHNlIH07
Ci0gICAgTG9jayBtX2NvbGxlY3RDb250aW51b3VzbHlMb2NrOwotICAgIENvbmRpdGlvbiBtX2Nv
bGxlY3RDb250aW51b3VzbHlDb25kaXRpb247CisgICAgVW5jaGVja2VkTG9jayBtX2NvbGxlY3RD
b250aW51b3VzbHlMb2NrOworICAgIFVuY2hlY2tlZENvbmRpdGlvbiBtX2NvbGxlY3RDb250aW51
b3VzbHlDb25kaXRpb247CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hcmtlZFNwYWNlLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaGVhcC9NYXJrZWRTcGFjZS5oCmluZGV4IDViZTUxZGU3ZTRjZjk5YjNkNmY0Nzc3N2Yw
MGI2ZDJhOTdhYjgwNGYuLjI2OGI5NzBhNTk4YjQyNWI5ZmNlMzY3ZGIyZWJhZWE3MWViY2MzMWIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hcmtlZFNwYWNlLmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTWFya2VkU3BhY2UuaApAQCAtMTY4LDcgKzE2
OCw3IEBAIHB1YmxpYzoKICAgICAKICAgICBCbG9ja0RpcmVjdG9yeSogZmlyc3REaXJlY3Rvcnko
KSBjb25zdCB7IHJldHVybiBtX2RpcmVjdG9yaWVzLmZpcnN0KCk7IH0KICAgICAKLSAgICBMb2Nr
JiBkaXJlY3RvcnlMb2NrKCkgeyByZXR1cm4gbV9kaXJlY3RvcnlMb2NrOyB9CisgICAgVW5jaGVj
a2VkTG9jayYgZGlyZWN0b3J5TG9jaygpIHsgcmV0dXJuIG1fZGlyZWN0b3J5TG9jazsgfQogICAg
IHZvaWQgYWRkQmxvY2tEaXJlY3RvcnkoY29uc3QgQWJzdHJhY3RMb2NrZXImLCBCbG9ja0RpcmVj
dG9yeSopOwogICAgIAogICAgIC8vIFdoZW4gdGhpcyBpcyB0cnVlIGl0IG1lYW5zIHRoYXQgd2Ug
aGF2ZSBmbGlwcGVkIGJ1dCB0aGUgbWFyayBiaXRzIGhhdmVuJ3QgY29udmVyZ2VkIHlldC4KQEAg
LTIxNCw3ICsyMTQsNyBAQCBwcml2YXRlOgogICAgIEhlYXBWZXJzaW9uIG1fbmV3bHlBbGxvY2F0
ZWRWZXJzaW9uIHsgaW5pdGlhbFZlcnNpb24gfTsKICAgICBib29sIG1faXNJdGVyYXRpbmcgeyBm
YWxzZSB9OwogICAgIGJvb2wgbV9pc01hcmtpbmcgeyBmYWxzZSB9OwotICAgIExvY2sgbV9kaXJl
Y3RvcnlMb2NrOworICAgIFVuY2hlY2tlZExvY2sgbV9kaXJlY3RvcnlMb2NrOwogICAgIE1hcmtl
ZEJsb2NrU2V0IG1fYmxvY2tzOwogICAgIAogICAgIFNlbnRpbmVsTGlua2VkTGlzdDxXZWFrU2V0
LCBCYXNpY1Jhd1NlbnRpbmVsTm9kZTxXZWFrU2V0Pj4gbV9hY3RpdmVXZWFrU2V0czsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hcmtpbmdDb25zdHJhaW50U29sdmVy
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYXJraW5nQ29uc3RyYWludFNvbHZlci5o
CmluZGV4IDhlNGYyZjRkZGYzMWNmYzgwNzFjZjNiZWNiNmU1ZTI3OGFlY2IwMWUuLjM1MGU1NTY2
MjQyODRkYWJlNDczMTdmYzgwZDJmZGQ2YjlhNTg3N2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9oZWFwL01hcmtpbmdDb25zdHJhaW50U29sdmVyLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2hlYXAvTWFya2luZ0NvbnN0cmFpbnRTb2x2ZXIuaApAQCAtOTUsOCArOTUs
OCBAQCBwcml2YXRlOgogICAgIEJpdFZlY3RvciBtX2V4ZWN1dGVkOwogICAgIERlcXVlPFRhc2tX
aXRoQ29uc3RyYWludCwgMzI+IG1fdG9FeGVjdXRlSW5QYXJhbGxlbDsKICAgICBWZWN0b3I8dW5z
aWduZWQsIDMyPiBtX3RvRXhlY3V0ZVNlcXVlbnRpYWxseTsKLSAgICBMb2NrIG1fbG9jazsKLSAg
ICBDb25kaXRpb24gbV9jb25kaXRpb247CisgICAgVW5jaGVja2VkTG9jayBtX2xvY2s7CisgICAg
VW5jaGVja2VkQ29uZGl0aW9uIG1fY29uZGl0aW9uOwogICAgIGJvb2wgbV9waWNrTmV4dElzU3Rp
bGxBY3RpdmUgeyB0cnVlIH07CiAgICAgdW5zaWduZWQgbV9udW1UaHJlYWRzVGhhdE1heVByb2R1
Y2VXb3JrIHsgMCB9OwogICAgIFZlY3RvcjxWaXNpdENvdW50ZXIsIDE2PiBtX3Zpc2l0Q291bnRl
cnM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9TbG90VmlzaXRvci5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9TbG90VmlzaXRvci5jcHAKaW5kZXggZjlh
MTgzMjNjNzI4MzM0NzE5OGQ5Njg4OWRjNTlmNzQzNzhmMjA3Mi4uYWI3MzJjMjRlYzUwZTg5MDli
NDkxZWM5YjE2OWFmMzBmZWM4OTMzNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2hlYXAvU2xvdFZpc2l0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1Ns
b3RWaXNpdG9yLmNwcApAQCAtNDM2LDcgKzQzNiw3IEBAIHZvaWQgU2xvdFZpc2l0b3I6OmRvbmF0
ZUtub3duUGFyYWxsZWwoTWFya1N0YWNrQXJyYXkmIGZyb20sIE1hcmtTdGFja0FycmF5JiB0bykK
IAogICAgIC8vIElmIHdlJ3JlIGNvbnRlbmRpbmcgb24gdGhlIGxvY2ssIGJlIGNvbnNlcnZhdGl2
ZSBhbmQgYXNzdW1lIHRoYXQgYW5vdGhlcgogICAgIC8vIHRocmVhZCBpcyBhbHJlYWR5IGRvbmF0
aW5nLgotICAgIHN0ZDo6dW5pcXVlX2xvY2s8TG9jaz4gbG9jayhtX2hlYXAubV9tYXJraW5nTXV0
ZXgsIHN0ZDo6dHJ5X3RvX2xvY2spOworICAgIHN0ZDo6dW5pcXVlX2xvY2s8VW5jaGVja2VkTG9j
az4gbG9jayhtX2hlYXAubV9tYXJraW5nTXV0ZXgsIHN0ZDo6dHJ5X3RvX2xvY2spOwogICAgIGlm
ICghbG9jay5vd25zX2xvY2soKSkKICAgICAgICAgcmV0dXJuOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaGVhcC9TbG90VmlzaXRvci5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2hlYXAvU2xvdFZpc2l0b3IuaAppbmRleCA0MjMzM2FmM2UwMjAyNjdlNTM3ZTA5M2U0YjA2
MzMyMjFkZTNlNzNhLi5kNTVkYjYwMTdkZTczY2Y2YzJmMWNjY2Y0Y2YzY2Q1NDM4Mzk2NTM5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9TbG90VmlzaXRvci5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1Nsb3RWaXNpdG9yLmgKQEAgLTE2MSw3ICsxNjEs
NyBAQCBwdWJsaWM6CiAKICAgICBib29sIG11dGF0b3JJc1N0b3BwZWQoKSBjb25zdCBmaW5hbCB7
IHJldHVybiBtX211dGF0b3JJc1N0b3BwZWQ7IH0KICAgICAKLSAgICBMb2NrJiByaWdodFRvUnVu
KCkgeyByZXR1cm4gbV9yaWdodFRvUnVuOyB9CisgICAgVW5jaGVja2VkTG9jayYgcmlnaHRUb1J1
bigpIHsgcmV0dXJuIG1fcmlnaHRUb1J1bjsgfQogICAgIAogICAgIHZvaWQgdXBkYXRlTXV0YXRv
cklzU3RvcHBlZChjb25zdCBBYnN0cmFjdExvY2tlciYpOwogICAgIHZvaWQgdXBkYXRlTXV0YXRv
cklzU3RvcHBlZCgpOwpAQCAtMjMyLDcgKzIzMiw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX211
dGF0b3JJc1N0b3BwZWQgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9jYW5PcHRpbWl6ZUZvclN0b3Bw
ZWRNdXRhdG9yIHsgZmFsc2UgfTsKICAgICBib29sIG1faXNJblBhcmFsbGVsTW9kZSB7IGZhbHNl
IH07Ci0gICAgTG9jayBtX3JpZ2h0VG9SdW47CisgICAgVW5jaGVja2VkTG9jayBtX3JpZ2h0VG9S
dW47CiAgICAgCiAgICAgLy8gUHV0IHBhZGRpbmcgaGVyZSB0byBtaXRpZ2F0ZSBmYWxzZSBzaGFy
aW5nIGJldHdlZW4gbXVsdGlwbGUgU2xvdFZpc2l0b3JzLgogICAgIGNoYXIgcGFkZGluZ1s2NF07
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3JlbW90ZS9zb2Nr
ZXQvUmVtb3RlSW5zcGVjdG9yU29ja2V0RW5kcG9pbnQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9pbnNwZWN0b3IvcmVtb3RlL3NvY2tldC9SZW1vdGVJbnNwZWN0b3JTb2NrZXRFbmRwb2ludC5o
CmluZGV4IDI1YmMxOGNiNjhkODNkMmZiZmFiYmNkZjZkMzU0MTgyNzViOTYyMTguLjI0YTNlNThm
YzM2N2IzZjE5Mjk1MGZjNjhiZDdlZjkyZTg2OGUxZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL3NvY2tldC9SZW1vdGVJbnNwZWN0b3JTb2NrZXRF
bmRwb2ludC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL3Nv
Y2tldC9SZW1vdGVJbnNwZWN0b3JTb2NrZXRFbmRwb2ludC5oCkBAIC0xODIsNyArMTgyLDcgQEAg
cHJvdGVjdGVkOgogICAgIGJvb2wgaXNMaXN0ZW5pbmcoQ29ubmVjdGlvbklEKTsKICAgICBpbnQg
cG9sbGluZ1RpbWVvdXQoKTsKIAotICAgIG11dGFibGUgTG9jayBtX2Nvbm5lY3Rpb25zTG9jazsK
KyAgICBtdXRhYmxlIFVuY2hlY2tlZExvY2sgbV9jb25uZWN0aW9uc0xvY2s7CiAgICAgSGFzaE1h
cDxDb25uZWN0aW9uSUQsIHN0ZDo6dW5pcXVlX3B0cjxDbGllbnRDb25uZWN0aW9uPj4gbV9jbGll
bnRzOwogICAgIEhhc2hNYXA8Q29ubmVjdGlvbklELCBzdGQ6OnVuaXF1ZV9wdHI8TGlzdGVuZXJD
b25uZWN0aW9uPj4gbV9saXN0ZW5lcnM7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvRXhlY3V0YWJsZUFsbG9jYXRvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0V4ZWN1dGFibGVBbGxvY2F0b3IuY3BwCmluZGV4IDI3OWUwNzVlNGNiNjE3NzI5YzZlMmQ1
ZmVmZjk4NjI3YzcwNTJmMDEuLjYxOTQ1NWIxZjZkYmFjYTRhN2RkYWM3Y2JmNmQ5YzkyZmExNmNh
MmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvRXhlY3V0YWJsZUFsbG9j
YXRvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9FeGVjdXRhYmxlQWxsb2Nh
dG9yLmNwcApAQCAtNDg1LDcgKzQ4NSw3IEBAIHB1YmxpYzoKICNlbmRpZiAvLyBFTkFCTEUoSlVN
UF9JU0xBTkRTKQogICAgIH0KIAotICAgIExvY2smIGdldExvY2soKSB7IHJldHVybiBtX2xvY2s7
IH0KKyAgICBVbmNoZWNrZWRMb2NrJiBnZXRMb2NrKCkgeyByZXR1cm4gbV9sb2NrOyB9CiAKICAg
ICAvLyBOb24gYXRvbWljCiAgICAgc2l6ZV90IGJ5dGVzQWxsb2NhdGVkKCkgCkBAIC01NDcsNyAr
NTQ3LDcgQEAgcHVibGljOgogICAgIH0KIAogI2lmIEVOQUJMRShKVU1QX0lTTEFORFMpCi0gICAg
dm9pZCBoYW5kbGVXaWxsQmVSZWxlYXNlZChjb25zdCBMb2NrSG9sZGVyJiBsb2NrZXIsIE1ldGFB
bGxvY2F0b3JIYW5kbGUmIGhhbmRsZSkKKyAgICB2b2lkIGhhbmRsZVdpbGxCZVJlbGVhc2VkKGNv
bnN0IFVuY2hlY2tlZExvY2tIb2xkZXImIGxvY2tlciwgTWV0YUFsbG9jYXRvckhhbmRsZSYgaGFu
ZGxlKQogICAgIHsKICAgICAgICAgaWYgKG1faXNsYW5kc0Zvckp1bXBTb3VyY2VMb2NhdGlvbi5p
c0VtcHR5KCkpCiAgICAgICAgICAgICByZXR1cm47CkBAIC01OTksNyArNTk5LDcgQEAgcHJpdmF0
ZToKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICB9CiAKLSAgICB2b2lkIGZyZWVKdW1wSXNs
YW5kcyhjb25zdCBMb2NrSG9sZGVyJiwgSXNsYW5kcyogaXNsYW5kcykKKyAgICB2b2lkIGZyZWVK
dW1wSXNsYW5kcyhjb25zdCBVbmNoZWNrZWRMb2NrSG9sZGVyJiwgSXNsYW5kcyogaXNsYW5kcykK
ICAgICB7CiAgICAgICAgIGZvciAoQ29kZUxvY2F0aW9uTGFiZWw8RXhlY3V0YWJsZU1lbW9yeVB0
clRhZz4ganVtcElzbGFuZCA6IGlzbGFuZHMtPmp1bXBJc2xhbmRzKSB7CiAgICAgICAgICAgICB1
aW50cHRyX3QgdW50YWdnZWRKdW1wSXNsYW5kID0gYml0d2lzZV9jYXN0PHVpbnRwdHJfdD4oanVt
cElzbGFuZC5kYXRhTG9jYXRpb24oKSk7CkBAIC02MTAsMTQgKzYxMCwxNCBAQCBwcml2YXRlOgog
ICAgICAgICBpc2xhbmRzLT5qdW1wSXNsYW5kcy5jbGVhcigpOwogICAgIH0KIAotICAgIHZvaWQg
ZnJlZUlzbGFuZHMoY29uc3QgTG9ja0hvbGRlciYgbG9ja2VyLCBJc2xhbmRzKiBpc2xhbmRzKQor
ICAgIHZvaWQgZnJlZUlzbGFuZHMoY29uc3QgVW5jaGVja2VkTG9ja0hvbGRlciYgbG9ja2VyLCBJ
c2xhbmRzKiBpc2xhbmRzKQogICAgIHsKICAgICAgICAgZnJlZUp1bXBJc2xhbmRzKGxvY2tlciwg
aXNsYW5kcyk7CiAgICAgICAgIG1faXNsYW5kc0Zvckp1bXBTb3VyY2VMb2NhdGlvbi5yZW1vdmUo
aXNsYW5kcyk7CiAgICAgICAgIGRlbGV0ZSBpc2xhbmRzOwogICAgIH0KIAotICAgIHZvaWQqIGlz
bGFuZEZvckp1bXBMb2NhdGlvbihjb25zdCBMb2NrSG9sZGVyJiBsb2NrZXIsIHVpbnRwdHJfdCBq
dW1wTG9jYXRpb24sIHVpbnRwdHJfdCB0YXJnZXQsIGJvb2wgY29uY3VycmVudGx5KQorICAgIHZv
aWQqIGlzbGFuZEZvckp1bXBMb2NhdGlvbihjb25zdCBVbmNoZWNrZWRMb2NrSG9sZGVyJiBsb2Nr
ZXIsIHVpbnRwdHJfdCBqdW1wTG9jYXRpb24sIHVpbnRwdHJfdCB0YXJnZXQsIGJvb2wgY29uY3Vy
cmVudGx5KQogICAgIHsKICAgICAgICAgSXNsYW5kcyogaXNsYW5kcyA9IG1faXNsYW5kc0Zvckp1
bXBTb3VyY2VMb2NhdGlvbi5maW5kRXhhY3QoYml0d2lzZV9jYXN0PHZvaWQqPihqdW1wTG9jYXRp
b24pKTsKICAgICAgICAgaWYgKGlzbGFuZHMpIHsKQEAgLTc0Niw3ICs3NDYsNyBAQCBwcml2YXRl
OgogICAgICAgICAgICAgcmV0dXJuIGlzbGFuZHNQZXJQYWdlOwogICAgICAgICB9CiAKLSAgICAg
ICAgdm9pZCByZWxlYXNlKGNvbnN0IExvY2tIb2xkZXImIGxvY2tlciwgTWV0YUFsbG9jYXRvckhh
bmRsZSYgaGFuZGxlKSBmaW5hbAorICAgICAgICB2b2lkIHJlbGVhc2UoY29uc3QgVW5jaGVja2Vk
TG9ja0hvbGRlciYgbG9ja2VyLCBNZXRhQWxsb2NhdG9ySGFuZGxlJiBoYW5kbGUpIGZpbmFsCiAg
ICAgICAgIHsKICAgICAgICAgICAgIG1fZml4ZWRBbGxvY2F0b3IuaGFuZGxlV2lsbEJlUmVsZWFz
ZWQobG9ja2VyLCBoYW5kbGUpOwogICAgICAgICAgICAgQmFzZTo6cmVsZWFzZShsb2NrZXIsIGhh
bmRsZSk7CkBAIC04NDcsNyArODQ3LDcgQEAgcHJpdmF0ZToKICAgICB9OwogI2VuZGlmIC8vIEVO
QUJMRShKVU1QX0lTTEFORFMpCiAKLSAgICBMb2NrIG1fbG9jazsKKyAgICBVbmNoZWNrZWRMb2Nr
IG1fbG9jazsKICAgICBQYWdlUmVzZXJ2YXRpb24gbV9yZXNlcnZhdGlvbjsKICNpZiBFTkFCTEUo
SlVNUF9JU0xBTkRTKQogICAgIHN0ZDo6YXJyYXk8UmVnaW9uQWxsb2NhdG9yLCBtYXhOdW1iZXJP
ZlJlZ2lvbnM+IG1fYWxsb2NhdG9yczsKQEAgLTk2MSw3ICs5NjEsNyBAQCBib29sIEV4ZWN1dGFi
bGVBbGxvY2F0b3I6OmlzVmFsaWRFeGVjdXRhYmxlTWVtb3J5KGNvbnN0IEFic3RyYWN0TG9ja2Vy
JiBsb2NrZXIsCiAgICAgcmV0dXJuIGFsbG9jYXRvci0+aXNJbkFsbG9jYXRlZE1lbW9yeShsb2Nr
ZXIsIGFkZHJlc3MpOwogfQogCi1Mb2NrJiBFeGVjdXRhYmxlQWxsb2NhdG9yOjpnZXRMb2NrKCkg
Y29uc3QKK1VuY2hlY2tlZExvY2smIEV4ZWN1dGFibGVBbGxvY2F0b3I6OmdldExvY2soKSBjb25z
dAogewogICAgIEZpeGVkVk1Qb29sRXhlY3V0YWJsZUFsbG9jYXRvciogYWxsb2NhdG9yID0gZ19q
c2NDb25maWcuZml4ZWRWTVBvb2xFeGVjdXRhYmxlQWxsb2NhdG9yOwogICAgIGlmICghYWxsb2Nh
dG9yKQpAQCAtMTAzOCw3ICsxMDM4LDcgQEAgdm9pZCBkdW1wSklUTWVtb3J5KGNvbnN0IHZvaWQq
IGRzdCwgY29uc3Qgdm9pZCogc3JjLCBzaXplX3Qgc2l6ZSkKICAgICBzdGF0aWMgdWludDhfdCog
YnVmZmVyOwogICAgIHN0YXRpYyBjb25zdGV4cHIgc2l6ZV90IGJ1ZmZlclNpemUgPSBmaXhlZEV4
ZWN1dGFibGVNZW1vcnlQb29sU2l6ZTsKICAgICBzdGF0aWMgc2l6ZV90IG9mZnNldCA9IDA7Ci0g
ICAgc3RhdGljIExvY2sgZHVtcEpJVE1lbW9yeUxvY2s7CisgICAgc3RhdGljIFVuY2hlY2tlZExv
Y2sgZHVtcEpJVE1lbW9yeUxvY2s7CiAgICAgc3RhdGljIGJvb2wgbmVlZHNUb0ZsdXNoID0gZmFs
c2U7CiAgICAgc3RhdGljIGF1dG8gZmx1c2ggPSBbXShjb25zdCBBYnN0cmFjdExvY2tlciYpIHsK
ICAgICAgICAgaWYgKGZkID09IC0xKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0V4ZWN1dGFibGVBbGxvY2F0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
RXhlY3V0YWJsZUFsbG9jYXRvci5oCmluZGV4IDRmZmM0ODBlNDI0MDRkYzY2YjVlMjUxNDU3NzJi
YmNiMDlkNWYzNjguLjAzNzk5ZTQyN2IwOTdkNjRmZDk4Y2I4Zjk1YTY4YTkyNTE2ZjhhNTcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvRXhlY3V0YWJsZUFsbG9jYXRvci5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvRXhlY3V0YWJsZUFsbG9jYXRvci5oCkBA
IC03Nyw3ICs3Nyw3IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBzaXplX3QgY29tbWl0dGVkQnl0
ZUNvdW50KCkgeyByZXR1cm4gMDsgfQogCi0gICAgTG9jayYgZ2V0TG9jaygpIGNvbnN0CisgICAg
VW5jaGVja2VkTG9jayYgZ2V0TG9jaygpIGNvbnN0CiAgICAgewogICAgICAgICByZXR1cm4gbV9s
b2NrOwogICAgIH0KQEAgLTg3LDcgKzg3LDcgQEAgcHJvdGVjdGVkOgogICAgIH5FeGVjdXRhYmxl
QWxsb2NhdG9yQmFzZSgpID0gZGVmYXVsdDsKIAogcHJpdmF0ZToKLSAgICBtdXRhYmxlIExvY2sg
bV9sb2NrOworICAgIG11dGFibGUgVW5jaGVja2VkTG9jayBtX2xvY2s7CiB9OwogCiAjaWYgRU5B
QkxFKEpJVCkKQEAgLTE3Niw3ICsxNzYsNyBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgc2l6ZV90
IGNvbW1pdHRlZEJ5dGVDb3VudCgpOwogCi0gICAgTG9jayYgZ2V0TG9jaygpIGNvbnN0OworICAg
IFVuY2hlY2tlZExvY2smIGdldExvY2soKSBjb25zdDsKIAogI2lmIEVOQUJMRShKVU1QX0lTTEFO
RFMpCiAgICAgSlNfRVhQT1JUX1BSSVZBVEUgdm9pZCogZ2V0SnVtcElzbGFuZFRvKHZvaWQqIGZy
b20sIHZvaWQqIG5ld0Rlc3RpbmF0aW9uKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklUV29ya2xpc3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRX
b3JrbGlzdC5jcHAKaW5kZXggYTcwNTJlNzlmMGE3NDM2N2ZlM2ZkYzVhM2NmNmQ1MzhlNjkzMjAw
ZS4uYTk2ODk3NGJkNmE5ODIzYjkwYWFkYzQ0YTQxNGE1MzdhOTAzY2Y3YSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRXb3JrbGlzdC5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9KSVRXb3JrbGlzdC5jcHAKQEAgLTE2NSw3ICsxNjUsNyBAQCBwcml2
YXRlOgogfTsKIAogSklUV29ya2xpc3Q6OkpJVFdvcmtsaXN0KCkKLSAgICA6IG1fbG9jayhCb3g8
TG9jaz46OmNyZWF0ZSgpKQorICAgIDogbV9sb2NrKEJveDxVbmNoZWNrZWRMb2NrPjo6Y3JlYXRl
KCkpCiAgICAgLCBtX2NvbmRpdGlvbihBdXRvbWF0aWNUaHJlYWRDb25kaXRpb246OmNyZWF0ZSgp
KQogewogICAgIExvY2tlciBsb2NrZXIgeyAqbV9sb2NrIH07CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0pJVFdvcmtsaXN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0pJVFdvcmtsaXN0LmgKaW5kZXggYjlmNzdjYTFiM2RkZWZhNjE0OGIxMzY5NDJkNTdhMDlk
NjVlYTdhMy4uYTcyYTgzODcwYTAwODJmY2QzNDQ5NTI5MGVhNTBlYTE0MGQ4OWYyZiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRXb3JrbGlzdC5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUV29ya2xpc3QuaApAQCAtNzEsNyArNzEsNyBAQCBwcml2
YXRlOgogICAgIFBsYW5zIG1fcGxhbnM7CiAgICAgSGFzaFNldDxDb2RlQmxvY2sqPiBtX3BsYW5u
ZWQ7CiAgICAgCi0gICAgQm94PExvY2s+IG1fbG9jazsKKyAgICBCb3g8VW5jaGVja2VkTG9jaz4g
bV9sb2NrOwogICAgIFJlZjxBdXRvbWF0aWNUaHJlYWRDb25kaXRpb24+IG1fY29uZGl0aW9uOyAv
LyBXZSB1c2UgT25lIFRydWUgQ29uZGl0aW9uIGZvciBldmVyeXRoaW5nIGJlY2F1c2UgdGhhdCdz
IGVhc2llci4KICAgICBSZWZQdHI8QXV0b21hdGljVGhyZWFkPiBtX3RocmVhZDsKICAgICAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2pzYy5jcHAKaW5kZXggZDNhMjgxMTI3MDgwNTgxZjBlZDE1YjRmMzg1ODg1NTBjZjNl
ZTZlZS4uYWQxNTVlNmU4MjdjYzBkM2NhZjdjNTcyNjVmMGRiYzMyNTFiNTYxZSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2pzYy5jcHAKQEAgLTI1Nyw4ICsyNTcsOCBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIGZy
aWVuZCBjbGFzcyBXb3JrZXI7CiAgICAgCi0gICAgTG9jayBtX2xvY2s7Ci0gICAgQ29uZGl0aW9u
IG1fY29uZGl0aW9uOworICAgIFVuY2hlY2tlZExvY2sgbV9sb2NrOworICAgIFVuY2hlY2tlZENv
bmRpdGlvbiBtX2NvbmRpdGlvbjsKICAgICBTZW50aW5lbExpbmtlZExpc3Q8V29ya2VyLCBCYXNp
Y1Jhd1NlbnRpbmVsTm9kZTxXb3JrZXI+PiBtX3dvcmtlcnM7CiAgICAgRGVxdWU8U3RyaW5nPiBt
X3JlcG9ydHM7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVy
L1Byb2ZpbGVyRGF0YWJhc2UuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9m
aWxlckRhdGFiYXNlLmgKaW5kZXggYWU3ODVlNGUzZGNiN2MzZTA4MDI4N2JiNDU5OTdhMTMyYzI4
NWRkMy4uMmE4NzhjOTQ2YjY1MzQwZTc5MTM5YmUyMjM3NWM1MDYxNmE5YjJlMiAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVyRGF0YWJhc2UuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZXJEYXRhYmFzZS5oCkBAIC04
OCw3ICs4OCw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX3Nob3VsZFNhdmVBdEV4aXQ7CiAgICAg
Q1N0cmluZyBtX2F0RXhpdFNhdmVGaWxlbmFtZTsKICAgICBEYXRhYmFzZSogbV9uZXh0UmVnaXN0
ZXJlZERhdGFiYXNlOwotICAgIExvY2sgbV9sb2NrOworICAgIFVuY2hlY2tlZExvY2sgbV9sb2Nr
OwogfTsKIAogfSB9IC8vIG5hbWVzcGFjZSBKU0M6OlByb2ZpbGVyCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db25jdXJyZW50SlNMb2NrLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9Db25jdXJyZW50SlNMb2NrLmgKaW5kZXggYWEyNzNiYWRiZWZh
NzM3YTBlYWE1MzRmYmViYTlmNTAxZmRiODYyNy4uODYzMTE3ZDg5MTVjNDNlNGE2NzcyMDgyYjli
YzU1YjM5YTJkMWNhMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
Q29uY3VycmVudEpTTG9jay5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Nv
bmN1cnJlbnRKU0xvY2suaApAQCAtMzIsOCArMzIsOCBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAot
dXNpbmcgQ29uY3VycmVudEpTTG9jayA9IExvY2s7Ci11c2luZyBDb25jdXJyZW50SlNMb2NrZXJJ
bXBsID0gTG9ja0hvbGRlcjsKK3VzaW5nIENvbmN1cnJlbnRKU0xvY2sgPSBVbmNoZWNrZWRMb2Nr
OwordXNpbmcgQ29uY3VycmVudEpTTG9ja2VySW1wbCA9IFVuY2hlY2tlZExvY2tIb2xkZXI7CiAK
IHN0YXRpY19hc3NlcnQoc2l6ZW9mKENvbmN1cnJlbnRKU0xvY2spID09IDEsICJSZWdhcmRsZXNz
IG9mIHN0YXR1cyBvZiBjb25jdXJyZW50IEpTIGZsYWcsIHNpemUgb2YgQ29udXJyZW50SlNMb2Nr
IGlzIGFsd2F5cyBvbmUgYnl0ZS4iKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvRGVmZXJyZWRXb3JrVGltZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0RlZmVycmVkV29ya1RpbWVyLmgKaW5kZXggNmM5OGNhYWY1ODFiMWNmYzAxYWExOTEx
NzE0YjNkYjI3YmRmMDIxNy4uZWYwZWFjNzMwYjQyMmY3MGMyMGE2OGI1YzllOTY0ODY4NzZhMDEz
ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGVmZXJyZWRXb3Jr
VGltZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EZWZlcnJlZFdvcmtU
aW1lci5oCkBAIC03Miw3ICs3Miw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgRGVmZXJyZWRX
b3JrVGltZXIoVk0mKTsKIAotICAgIExvY2sgbV90YXNrTG9jazsKKyAgICBVbmNoZWNrZWRMb2Nr
IG1fdGFza0xvY2s7CiAgICAgYm9vbCBtX3J1blRhc2tzIHsgdHJ1ZSB9OwogICAgIGJvb2wgbV9z
aG91bGRTdG9wUnVuTG9vcFdoZW5BbGxUaWNrZXRzRmluaXNoIHsgZmFsc2UgfTsKICAgICBib29s
IG1fY3VycmVudGx5UnVubmluZ1Rhc2sgeyBmYWxzZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNMb2NrLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0xvY2suaAppbmRleCAyZTAyYmEzZDY0MDVlZTcyZGQ0YWRlMGJhNjdjYjk1OGYxYTY0
NjBiLi5hOTkxZGY1MGIxYzM3MjI2ZTVmMTI5OTBlNDBiNjdiMTBiMTk5YzI5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0xvY2suaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0xvY2suaApAQCAtMTM4LDcgKzEzOCw3IEBAIHByaXZhdGU6
CiAgICAgdW5zaWduZWQgZHJvcEFsbExvY2tzKERyb3BBbGxMb2NrcyopOwogICAgIHZvaWQgZ3Jh
YkFsbExvY2tzKERyb3BBbGxMb2NrcyosIHVuc2lnbmVkIGxvY2tDb3VudCk7CiAKLSAgICBMb2Nr
IG1fbG9jazsKKyAgICBVbmNoZWNrZWRMb2NrIG1fbG9jazsKICAgICBib29sIG1faXNXZWJUaHJl
YWRBd2FyZSB7IGZhbHNlIH07CiAgICAgLy8gV2UgY2Fubm90IG1ha2UgbV9vd25lclRocmVhZCBh
biBvcHRpb25hbCAoaW5zdGVhZCBvZiBwYWlyaW5nIGl0IHdpdGggYW4gZXhwbGljaXQKICAgICAv
LyBtX2hhc093bmVyVGhyZWFkKSBiZWNhdXNlIGN1cnJlbnRUaHJlYWRJc0hvbGRpbmdMb2NrKCkg
bWF5IGJlIGNhbGxlZCBmcm9tIGEKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1NhbXBsaW5nUHJvZmlsZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvU2FtcGxpbmdQcm9maWxlci5jcHAKaW5kZXggZDcxZjNlYzE5ZmYzNjc0Njc3MDdmZTUyYjg4
MDI0YzU2MjdhMTRhZC4uZTUzMTEyZDE4OGY3Y2NiOTBkMGFlNzg0MTQyNTAxZDI0NWM1ZTgzNSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2FtcGxpbmdQcm9maWxl
ci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2FtcGxpbmdQcm9maWxl
ci5jcHAKQEAgLTc1LDcgKzc1LDcgQEAgQUxXQVlTX0lOTElORSBzdGF0aWMgdm9pZCByZXBvcnRT
dGF0cygpCiAKIGNsYXNzIEZyYW1lV2Fsa2VyIHsKIHB1YmxpYzoKLSAgICBGcmFtZVdhbGtlcihW
TSYgdm0sIENhbGxGcmFtZSogY2FsbEZyYW1lLCBjb25zdCBBYnN0cmFjdExvY2tlciYgY29kZUJs
b2NrU2V0TG9ja2VyLCBjb25zdCBBYnN0cmFjdExvY2tlciYgbWFjaGluZVRocmVhZHNMb2NrZXIs
IGNvbnN0IE9wdGlvbmFsPExvY2tIb2xkZXI+JiB3YXNtQ2FsbGVlTG9ja2VyKQorICAgIEZyYW1l
V2Fsa2VyKFZNJiB2bSwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIGNvbnN0IEFic3RyYWN0TG9ja2Vy
JiBjb2RlQmxvY2tTZXRMb2NrZXIsIGNvbnN0IEFic3RyYWN0TG9ja2VyJiBtYWNoaW5lVGhyZWFk
c0xvY2tlciwgY29uc3QgT3B0aW9uYWw8VW5jaGVja2VkTG9ja0hvbGRlcj4mIHdhc21DYWxsZWVM
b2NrZXIpCiAgICAgICAgIDogbV92bSh2bSkKICAgICAgICAgLCBtX2NhbGxGcmFtZShjYWxsRnJh
bWUpCiAgICAgICAgICwgbV9lbnRyeUZyYW1lKHZtLnRvcEVudHJ5RnJhbWUpCkBAIC0yMDEsNyAr
MjAxLDcgQEAgcHJvdGVjdGVkOgogICAgIEVudHJ5RnJhbWUqIG1fZW50cnlGcmFtZTsKICAgICBj
b25zdCBBYnN0cmFjdExvY2tlciYgbV9jb2RlQmxvY2tTZXRMb2NrZXI7CiAgICAgY29uc3QgQWJz
dHJhY3RMb2NrZXImIG1fbWFjaGluZVRocmVhZHNMb2NrZXI7Ci0gICAgY29uc3QgT3B0aW9uYWw8
TG9ja0hvbGRlcj4mIG1fd2FzbUNhbGxlZUxvY2tlcjsKKyAgICBjb25zdCBPcHRpb25hbDxVbmNo
ZWNrZWRMb2NrSG9sZGVyPiYgbV93YXNtQ2FsbGVlTG9ja2VyOwogICAgIGJvb2wgbV9iYWlsaW5n
T3V0IHsgZmFsc2UgfTsKICAgICBzaXplX3QgbV9kZXB0aCB7IDAgfTsKIH07CkBAIC0yMTAsNyAr
MjEwLDcgQEAgY2xhc3MgQ0ZyYW1lV2Fsa2VyIDogcHVibGljIEZyYW1lV2Fsa2VyIHsKIHB1Ymxp
YzoKICAgICB0eXBlZGVmIEZyYW1lV2Fsa2VyIEJhc2U7CiAKLSAgICBDRnJhbWVXYWxrZXIoVk0m
IHZtLCB2b2lkKiBtYWNoaW5lRnJhbWUsIENhbGxGcmFtZSogY2FsbEZyYW1lLCBjb25zdCBBYnN0
cmFjdExvY2tlciYgY29kZUJsb2NrU2V0TG9ja2VyLCBjb25zdCBBYnN0cmFjdExvY2tlciYgbWFj
aGluZVRocmVhZHNMb2NrZXIsIGNvbnN0IE9wdGlvbmFsPExvY2tIb2xkZXI+JiB3YXNtQ2FsbGVl
TG9ja2VyKQorICAgIENGcmFtZVdhbGtlcihWTSYgdm0sIHZvaWQqIG1hY2hpbmVGcmFtZSwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUsIGNvbnN0IEFic3RyYWN0TG9ja2VyJiBjb2RlQmxvY2tTZXRMb2Nr
ZXIsIGNvbnN0IEFic3RyYWN0TG9ja2VyJiBtYWNoaW5lVGhyZWFkc0xvY2tlciwgY29uc3QgT3B0
aW9uYWw8VW5jaGVja2VkTG9ja0hvbGRlcj4mIHdhc21DYWxsZWVMb2NrZXIpCiAgICAgICAgIDog
QmFzZSh2bSwgY2FsbEZyYW1lLCBjb2RlQmxvY2tTZXRMb2NrZXIsIG1hY2hpbmVUaHJlYWRzTG9j
a2VyLCB3YXNtQ2FsbGVlTG9ja2VyKQogICAgICAgICAsIG1fbWFjaGluZUZyYW1lKG1hY2hpbmVG
cmFtZSkKICAgICB7CkBAIC0zNTMsNyArMzUzLDcgQEAgdm9pZCBTYW1wbGluZ1Byb2ZpbGVyOjp0
YWtlU2FtcGxlKGNvbnN0IEFic3RyYWN0TG9ja2VyJiwgU2Vjb25kcyYgc3RhY2tUcmFjZVByb2MK
ICAgICAgICAgTG9ja2VyIG1hY2hpbmVUaHJlYWRzTG9ja2VyIHsgbV92bS5oZWFwLm1hY2hpbmVU
aHJlYWRzKCkuZ2V0TG9jaygpIH07CiAgICAgICAgIExvY2tlciBjb2RlQmxvY2tTZXRMb2NrZXIg
eyBtX3ZtLmhlYXAuY29kZUJsb2NrU2V0KCkuZ2V0TG9jaygpIH07CiAgICAgICAgIExvY2tlciBl
eGVjdXRhYmxlQWxsb2NhdG9yTG9ja2VyIHsgRXhlY3V0YWJsZUFsbG9jYXRvcjo6c2luZ2xldG9u
KCkuZ2V0TG9jaygpIH07Ci0gICAgICAgIE9wdGlvbmFsPExvY2tIb2xkZXI+IHdhc21DYWxsZWVz
TG9ja2VyOworICAgICAgICBPcHRpb25hbDxVbmNoZWNrZWRMb2NrSG9sZGVyPiB3YXNtQ2FsbGVl
c0xvY2tlcjsKICNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCiAgICAgICAgIGlmIChXYXNtOjppc1N1
cHBvcnRlZCgpKQogICAgICAgICAgICAgd2FzbUNhbGxlZXNMb2NrZXIgPSBMb2NrZXIgeyBXYXNt
OjpDYWxsZWVSZWdpc3RyeTo6c2luZ2xldG9uKCkuZ2V0TG9jaygpIH07CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TYW1wbGluZ1Byb2ZpbGVyLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9TYW1wbGluZ1Byb2ZpbGVyLmgKaW5kZXggNjUxNzA3YTk0
NmYxNjFkZWE2Zjk4OGFiNWRkZTQ4YjMyYzc1YzdlZC4uOWYwNTcyNmE0ZTgwNGZjYjM1MzczNmEy
ZWQxZDY0MGI3NjRjOTRkYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvU2FtcGxpbmdQcm9maWxlci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1NhbXBsaW5nUHJvZmlsZXIuaApAQCAtMTcyLDcgKzE3Miw3IEBAIHB1YmxpYzoKICAgICB2b2lk
IG5vdGljZVZNRW50cnkoKTsKICAgICB2b2lkIHNodXRkb3duKCk7CiAgICAgdGVtcGxhdGU8dHlw
ZW5hbWUgVmlzaXRvcj4gdm9pZCB2aXNpdChWaXNpdG9yJik7Ci0gICAgTG9jayYgZ2V0TG9jaygp
IHsgcmV0dXJuIG1fbG9jazsgfQorICAgIFVuY2hlY2tlZExvY2smIGdldExvY2soKSB7IHJldHVy
biBtX2xvY2s7IH0KICAgICB2b2lkIHNldFRpbWluZ0ludGVydmFsKFNlY29uZHMgaW50ZXJ2YWwp
IHsgbV90aW1pbmdJbnRlcnZhbCA9IGludGVydmFsOyB9CiAgICAgSlNfRVhQT1JUX1BSSVZBVEUg
dm9pZCBzdGFydCgpOwogICAgIHZvaWQgc3RhcnQoY29uc3QgQWJzdHJhY3RMb2NrZXImKTsKQEAg
LTIwMCw3ICsyMDAsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgdGltZXJMb29wKCk7CiAgICAgdm9p
ZCB0YWtlU2FtcGxlKGNvbnN0IEFic3RyYWN0TG9ja2VyJiwgU2Vjb25kcyYgc3RhY2tUcmFjZVBy
b2Nlc3NpbmdUaW1lKTsKIAotICAgIExvY2sgbV9sb2NrOworICAgIFVuY2hlY2tlZExvY2sgbV9s
b2NrOwogICAgIGJvb2wgbV9pc1BhdXNlZDsKICAgICBib29sIG1faXNTaHV0RG93bjsKICAgICBi
b29sIG1fbmVlZHNSZXBvcnRBdEV4aXQgeyBmYWxzZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1ZNLmgKaW5kZXggZjhlOGQzZjU0N2U0ZmRlNjEzNGMzOGE4NjJkMmYyNWQ2MmEzMzFlMi4uYTFh
YjIyMzIxNjk4ZTU3MDAyOTk0NzM1MTRiZmEwNDFmODhkY2M1NCAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9WTS5oCkBAIC0xMDA0LDcgKzEwMDQsNyBAQCBwdWJsaWM6CiAjaWYgRU5BQkxFKFlB
UlJfSklUX0FMTF9QQVJFTlNfRVhQUkVTU0lPTlMpCiAgICAgc3RhdGljIGNvbnN0ZXhwciBzaXpl
X3QgcGF0dGVybkNvbnRleHRCdWZmZXJTaXplID0gODE5MjsgLy8gU3BhY2UgYWxsb2NhdGVkIHRv
IHNhdmUgbmVzdGVkIHBhcmVudGhlc2lzIGNvbnRleHQKICAgICBVbmlxdWVBcnJheTxjaGFyPiBt
X3JlZ0V4cFBhdHRlcm5Db250ZXhCdWZmZXI7Ci0gICAgTG9jayBtX3JlZ0V4cFBhdHRlcm5Db250
ZXh0TG9jazsKKyAgICBVbmNoZWNrZWRMb2NrIG1fcmVnRXhwUGF0dGVybkNvbnRleHRMb2NrOwog
ICAgIGNoYXIqIGFjcXVpcmVSZWdFeHBQYXR0ZXJuQ29udGV4QnVmZmVyKCk7CiAgICAgdm9pZCBy
ZWxlYXNlUmVnRXhwUGF0dGVybkNvbnRleEJ1ZmZlcigpOwogI2Vsc2UKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNVHJhcHMuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvVk1UcmFwcy5jcHAKaW5kZXggOWI0NDA2YjExNTYzZGFmNTczOWViMzM4
YWY4MjU5YTVlMThhNDE1OS4uNTdkYjMxOWNlY2ZiNzM3MTk3ZTI2ZDljZGQyZGI3YTU4YmIwOGM2
NyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk1UcmFwcy5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk1UcmFwcy5jcHAKQEAgLTE2Myw3
ICsxNjMsNyBAQCB2b2lkIFZNVHJhcHM6OmludmFsaWRhdGVDb2RlQmxvY2tzT25TdGFjayhDYWxs
RnJhbWUqIHRvcENhbGxGcmFtZSkKICAgICBpbnZhbGlkYXRlQ29kZUJsb2Nrc09uU3RhY2soY29k
ZUJsb2NrU2V0TG9ja2VyLCB0b3BDYWxsRnJhbWUpOwogfQogICAgIAotdm9pZCBWTVRyYXBzOjpp
bnZhbGlkYXRlQ29kZUJsb2Nrc09uU3RhY2soTG9ja2VyPExvY2s+JiwgQ2FsbEZyYW1lKiB0b3BD
YWxsRnJhbWUpCit2b2lkIFZNVHJhcHM6OmludmFsaWRhdGVDb2RlQmxvY2tzT25TdGFjayhMb2Nr
ZXI8VW5jaGVja2VkTG9jaz4mLCBDYWxsRnJhbWUqIHRvcENhbGxGcmFtZSkKIHsKICAgICBpZiAo
IW1fbmVlZFRvSW52YWxpZGF0ZWRDb2RlQmxvY2tzKQogICAgICAgICByZXR1cm47CkBAIC00Mzcs
NyArNDM3LDcgQEAgdm9pZCBWTVRyYXBzOjp1bmRvRGVmZXJUZXJtaW5hdGlvblNsb3coRGVmZXJB
Y3Rpb24gZGVmZXJBY3Rpb24pCiB9CiAKIFZNVHJhcHM6OlZNVHJhcHMoKQotICAgIDogbV9sb2Nr
KEJveDxMb2NrPjo6Y3JlYXRlKCkpCisgICAgOiBtX2xvY2soQm94PFVuY2hlY2tlZExvY2s+Ojpj
cmVhdGUoKSkKICAgICAsIG1fY29uZGl0aW9uKEF1dG9tYXRpY1RocmVhZENvbmRpdGlvbjo6Y3Jl
YXRlKCkpCiB7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9W
TVRyYXBzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTVRyYXBzLmgKaW5kZXgg
MGFmNTliYzk1YzE2ZjkyZDM0ZTU0YTYyMmIyNDJiODdjNTg0ZmQ2NS4uNWQxNWM5MmY3MDQxNzUx
ZDgwNGU0YzU3MmE1NTMwMTA3YmZlNDJkYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvVk1UcmFwcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1ZNVHJhcHMuaApAQCAtMjM2LDcgKzIzNiw3IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIGludmFs
aWRhdGVDb2RlQmxvY2tzT25TdGFjaygpOwogICAgIHZvaWQgaW52YWxpZGF0ZUNvZGVCbG9ja3NP
blN0YWNrKENhbGxGcmFtZSogdG9wQ2FsbEZyYW1lKTsKLSAgICB2b2lkIGludmFsaWRhdGVDb2Rl
QmxvY2tzT25TdGFjayhMb2NrZXI8TG9jaz4mIGNvZGVCbG9ja1NldExvY2tlciwgQ2FsbEZyYW1l
KiB0b3BDYWxsRnJhbWUpOworICAgIHZvaWQgaW52YWxpZGF0ZUNvZGVCbG9ja3NPblN0YWNrKExv
Y2tlcjxVbmNoZWNrZWRMb2NrPiYgY29kZUJsb2NrU2V0TG9ja2VyLCBDYWxsRnJhbWUqIHRvcENh
bGxGcmFtZSk7CiAKICAgICB2b2lkIGFkZFNpZ25hbFNlbmRlcihTaWduYWxTZW5kZXIqKTsKICAg
ICB2b2lkIHJlbW92ZVNpZ25hbFNlbmRlcihTaWduYWxTZW5kZXIqKTsKQEAgLTI0Nyw3ICsyNDcs
NyBAQCBwcml2YXRlOgogCiAgICAgc3RhdGljIGNvbnN0ZXhwciBCaXRGaWVsZCBOZWVkRXhjZXB0
aW9uSGFuZGxpbmdNYXNrID0gfigxIDw8IE5lZWRFeGNlcHRpb25IYW5kbGluZyk7CiAKLSAgICBC
b3g8TG9jaz4gbV9sb2NrOworICAgIEJveDxVbmNoZWNrZWRMb2NrPiBtX2xvY2s7CiAgICAgUmVm
PEF1dG9tYXRpY1RocmVhZENvbmRpdGlvbj4gbV9jb25kaXRpb247CiAgICAgQXRvbWljPEJpdEZp
ZWxkPiBtX3RyYXBCaXRzIHsgMCB9OwogICAgIGJvb2wgbV9uZWVkVG9JbnZhbGlkYXRlZENvZGVC
bG9ja3MgeyBmYWxzZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xz
L0Z1bmN0aW9uT3ZlcnJpZGVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdG9vbHMvRnVuY3Rp
b25PdmVycmlkZXMuaAppbmRleCA4ODI5NjcwMDczZGRmOWQ2ZDQ5Y2VlZjIwOGI2MzhjNzEzZjRl
ZDY5Li43NmE4MTNkNDhiM2Q0NTM1ODhkNTQzYWY4MzYwMzMxYzk4MmJmNDQwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdG9vbHMvRnVuY3Rpb25PdmVycmlkZXMuaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvdG9vbHMvRnVuY3Rpb25PdmVycmlkZXMuaApAQCAtNjEsNyAr
NjEsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgY2xlYXIoY29uc3QgQWJzdHJhY3RMb2NrZXImKSB7
IG1fZW50cmllcy5jbGVhcigpOyB9CiAKICAgICBIYXNoTWFwPFN0cmluZywgU3RyaW5nPiBtX2Vu
dHJpZXM7Ci0gICAgTG9jayBtX2xvY2s7CisgICAgVW5jaGVja2VkTG9jayBtX2xvY2s7CiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90
b29scy9WTUluc3BlY3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdG9vbHMvVk1JbnNw
ZWN0b3IuY3BwCmluZGV4IGU0OWRhZTFlMWJjOWRkNzBjOWViMjAyZDg3NzA5ZmNjNmNhNjcwOTAu
LjFmZjcyZDQ2ZDk2NDM5NDRhNzk0YmE0M2Y0YjYwYjhiMTE0NDhhODcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS90b29scy9WTUluc3BlY3Rvci5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3Rvb2xzL1ZNSW5zcGVjdG9yLmNwcApAQCAtODksNyArODksNyBAQCBhdXRv
IFZNSW5zcGVjdG9yOjpsb2NrKFNlY29uZHMgdGltZW91dCkgLT4gRXhwZWN0ZWQ8TG9ja2VyLCBF
cnJvcj4KIH0KIAogI2lmIEVOQUJMRShKSVQpCi1zdGF0aWMgYm9vbCBlbnN1cmVJc1NhZmVUb0xv
Y2soTG9jayYgbG9jaykKK3N0YXRpYyBib29sIGVuc3VyZUlzU2FmZVRvTG9jayhVbmNoZWNrZWRM
b2NrJiBsb2NrKQogewogICAgIHVuc2lnbmVkIG1heFJldHJpZXMgPSAyOwogICAgIHVuc2lnbmVk
IHRyeUNvdW50ID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90b29scy9W
TUluc3BlY3Rvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xzL1ZNSW5zcGVjdG9yLmgK
aW5kZXggODQ1NjMxYzY0ODE2OWQ3YTU1MWNlYjc4ZDRlYWUwM2I1NTY1ODljYS4uZGY0OTBkZTI4
NjJhYTE3OTlmZGY0Mzc3N2VkZTFkZWZhZGEwMTlkNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3Rvb2xzL1ZNSW5zcGVjdG9yLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3Rvb2xzL1ZNSW5zcGVjdG9yLmgKQEAgLTQzLDE0ICs0MywxNCBAQCBwdWJsaWM6CiAgICAgICAg
IFRpbWVkT3V0CiAgICAgfTsKIAotICAgIHR5cGVkZWYgV1RGOjpMb2NrZXI8TG9jaz4gTG9ja2Vy
OworICAgIHR5cGVkZWYgV1RGOjpMb2NrZXI8VW5jaGVja2VkTG9jaz4gTG9ja2VyOwogCiAgICAg
c3RhdGljIFZNSW5zcGVjdG9yJiBpbnN0YW5jZSgpOwogCiAgICAgdm9pZCBhZGQoVk0qKTsKICAg
ICB2b2lkIHJlbW92ZShWTSopOwogCi0gICAgTG9jayYgZ2V0TG9jaygpIHsgcmV0dXJuIG1fbG9j
azsgfQorICAgIFVuY2hlY2tlZExvY2smIGdldExvY2soKSB7IHJldHVybiBtX2xvY2s7IH0KIAog
ICAgIGVudW0gY2xhc3MgRnVuY3RvclN0YXR1cyB7CiAgICAgICAgIENvbnRpbnVlLApAQCAtMTAz
LDcgKzEwMyw3IEBAIHByaXZhdGU6CiAgICAgICAgIH0KICAgICB9CiAKLSAgICBMb2NrIG1fbG9j
azsKKyAgICBVbmNoZWNrZWRMb2NrIG1fbG9jazsKICAgICBEb3VibHlMaW5rZWRMaXN0PFZNPiBt
X3ZtTGlzdDsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dh
c21DYWxsZWVSZWdpc3RyeS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUNhbGxl
ZVJlZ2lzdHJ5LmgKaW5kZXggMTIxMzQxMWI3ZmMxMDY0YTk4MmM3NThiM2UwMzI4YTg0MTQ3OGU3
My4uZGM5MjJjZjNlYTg3MTcwMmNhNTIyYzIzMmY1NjJmMTc2NjExMzhkOSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUNhbGxlZVJlZ2lzdHJ5LmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUNhbGxlZVJlZ2lzdHJ5LmgKQEAgLTQxLDcgKzQx
LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyB2b2lkIGluaXRpYWxpemUoKTsKICAgICBzdGF0aWMg
Q2FsbGVlUmVnaXN0cnkmIHNpbmdsZXRvbigpOwogCi0gICAgTG9jayYgZ2V0TG9jaygpIHsgcmV0
dXJuIG1fbG9jazsgfQorICAgIFVuY2hlY2tlZExvY2smIGdldExvY2soKSB7IHJldHVybiBtX2xv
Y2s7IH0KIAogICAgIHZvaWQgcmVnaXN0ZXJDYWxsZWUoQ2FsbGVlKiBjYWxsZWUpCiAgICAgewpA
QCAtNzAsNyArNzAsNyBAQCBwdWJsaWM6CiAgICAgQ2FsbGVlUmVnaXN0cnkoKSA9IGRlZmF1bHQ7
CiAKIHByaXZhdGU6Ci0gICAgTG9jayBtX2xvY2s7CisgICAgVW5jaGVja2VkTG9jayBtX2xvY2s7
CiAgICAgSGFzaFNldDxDYWxsZWUqPiBtX2NhbGxlZVNldDsKIH07CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21QbGFuLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9XYXNtUGxhbi5oCmluZGV4IGFiOTRmOWU4OTAzODk2ZmQzMTE2YzYyNjkyYWQ3NmRk
Yzk0ZjVkNjEuLmM4MWYzYTZjOWY1ODZiOTFjMTdiNTk2NDc1MDE4ZWNjYTIzZmFkMWUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21QbGFuLmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVBsYW4uaApAQCAtOTQsOCArOTQsOCBAQCBwcm90ZWN0
ZWQ6CiAKICAgICBTdHJpbmcgbV9lcnJvck1lc3NhZ2U7CiAgICAgTWVtb3J5TW9kZSBtX21vZGUg
eyBNZW1vcnlNb2RlOjpCb3VuZHNDaGVja2luZyB9OwotICAgIExvY2sgbV9sb2NrOwotICAgIENv
bmRpdGlvbiBtX2NvbXBsZXRlZDsKKyAgICBVbmNoZWNrZWRMb2NrIG1fbG9jazsKKyAgICBVbmNo
ZWNrZWRDb25kaXRpb24gbV9jb21wbGV0ZWQ7CiB9OwogCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL1dhc21TdHJlYW1pbmdDb21waWxlci5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3dhc20vV2FzbVN0cmVhbWluZ0NvbXBpbGVyLmgKaW5kZXggODZhMTBkYzQ0NWI5
NGZmOTIzYjY2Y2JkNjFhNzExNjBlNzM2NmNlNS4uOTU3Zjc1ZmZmZmYwYzBmM2JlYTA0NDBkZWZh
OWRjODhlMGEyMzk0YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2Fz
bVN0cmVhbWluZ0NvbXBpbGVyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2Fz
bVN0cmVhbWluZ0NvbXBpbGVyLmgKQEAgLTcwLDcgKzcwLDcgQEAgcHJpdmF0ZToKICAgICBib29s
IG1fZWFnZXJGYWlsZWQgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9maW5hbGl6ZWQgeyBmYWxzZSB9
OwogICAgIGJvb2wgbV90aHJlYWRlZENvbXBpbGF0aW9uU3RhcnRlZCB7IGZhbHNlIH07Ci0gICAg
TG9jayBtX2xvY2s7CisgICAgVW5jaGVja2VkTG9jayBtX2xvY2s7CiAgICAgdW5zaWduZWQgbV9y
ZW1haW5pbmdDb21waWxhdGlvblJlcXVlc3RzIHsgMCB9OwogICAgIEpTUHJvbWlzZSogbV9wcm9t
aXNlOyAvLyBSYXcgcG9pbnRlciwgYnV0IGhlbGQgYnkgRGVmZXJyZWRXb3JrVGltZXIuCiAgICAg
UmVmPFdhc206Ok1vZHVsZUluZm9ybWF0aW9uPiBtX2luZm87CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtVGh1bmtzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d2FzbS9XYXNtVGh1bmtzLmgKaW5kZXggYzIzNWNmZTYyOTVlNjY5YWU1YTgwZWU4ZjI1MmVhNmNh
MjQzMWI4My4uZGU0Y2EzY2NmMGFiZTU0ZGQxMGRlMTgyMjZmNzgxN2MwNDc4MWYzYyAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVRodW5rcy5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21UaHVua3MuaApAQCAtNTUsNyArNTUsNyBAQCBwcml2
YXRlOgogICAgIFRodW5rcygpID0gZGVmYXVsdDsKIAogICAgIEhhc2hNYXA8VGh1bmtHZW5lcmF0
b3IsIE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxKSVRUaHVua1B0clRhZz4+IG1fc3R1YnM7Ci0gICAg
TG9jayBtX2xvY2s7CisgICAgVW5jaGVja2VkTG9jayBtX2xvY2s7CiB9OwogCiB9IH0gLy8gbmFt
ZXNwYWNlIEpTQzo6V2FzbQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20v
V2FzbVdvcmtsaXN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21Xb3JrbGlz
dC5jcHAKaW5kZXggNWJhZDBkOTBhNTYyZTI1ZGRlODE3YjU4MmMwNjA2NjU2YzkwNmViYS4uMzg5
OGVjYWI0YzA4ODdlMjVhMGEzNDgxYjQxMWI4ZjY3YzFlYmMyOSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVdvcmtsaXN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvd2FzbS9XYXNtV29ya2xpc3QuY3BwCkBAIC0xMjgsNyArMTI4LDcgQEAgcHJpdmF0
ZToKICAgICB9CiAKIHB1YmxpYzoKLSAgICBDb25kaXRpb24gc3luY2hyb25pemU7CisgICAgVW5j
aGVja2VkQ29uZGl0aW9uIHN5bmNocm9uaXplOwogICAgIFdvcmtsaXN0JiB3b3JrbGlzdDsKICAg
ICAvLyBXZSBjYW4gb25seSBtb2RpZnkgZWxlbWVudCB3aGVuIGhvbGRpbmcgdGhlIGxvY2suIEEg
c3luY2hyb25vdXMgY29tcGlsZSBtaWdodCBsb29rIGF0IGVhY2ggdGhyZWFkJ3MgdGFza3MgaW4g
b3JkZXIgdG8gYm9vc3QgdGhlIHByaW9yaXR5LgogICAgIFF1ZXVlRWxlbWVudCBlbGVtZW50OwpA
QCAtMjEzLDcgKzIxMyw3IEBAIHZvaWQgV29ya2xpc3Q6OnN0b3BBbGxQbGFuc0ZvckNvbnRleHQo
Q29udGV4dCYgY29udGV4dCkKIH0KIAogV29ya2xpc3Q6OldvcmtsaXN0KCkKLSAgICA6IG1fbG9j
ayhCb3g8TG9jaz46OmNyZWF0ZSgpKQorICAgIDogbV9sb2NrKEJveDxVbmNoZWNrZWRMb2NrPjo6
Y3JlYXRlKCkpCiAgICAgLCBtX3BsYW5FbnF1ZXVlZChBdXRvbWF0aWNUaHJlYWRDb25kaXRpb246
OmNyZWF0ZSgpKQogewogICAgIHVuc2lnbmVkIG51bWJlck9mQ29tcGlsYXRpb25UaHJlYWRzID0g
T3B0aW9uczo6dXNlQ29uY3VycmVudEpJVCgpID8ga2VyblRDU01Bd2FyZU51bWJlck9mUHJvY2Vz
c29yQ29yZXMoKSA6IDE7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9X
YXNtV29ya2xpc3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21Xb3JrbGlzdC5o
CmluZGV4IDU2ZDc5YTBlOTg5YTYwMmYyMTMzZDAzMDkwZmRiY2M2MzdjOTU2MzkuLjQ1YTZmYmI2
Y2Y5YTg1M2MyODFmZGJiYWNkNTZmYmVkZDFmYTU5Y2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS93YXNtL1dhc21Xb3JrbGlzdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93YXNtL1dhc21Xb3JrbGlzdC5oCkBAIC04NCw3ICs4NCw3IEBAIHByaXZhdGU6CiAgICAgICAg
IHJldHVybiBsZWZ0LnByaW9yaXR5ID4gcmlnaHQucHJpb3JpdHk7CiAgICAgfQogCi0gICAgQm94
PExvY2s+IG1fbG9jazsKKyAgICBCb3g8VW5jaGVja2VkTG9jaz4gbV9sb2NrOwogICAgIFJlZjxB
dXRvbWF0aWNUaHJlYWRDb25kaXRpb24+IG1fcGxhbkVucXVldWVkOwogICAgIC8vIFRlY2huaWNh
bGx5LCB0aGlzIGNvdWxkIG92ZXJmbG93IGJ1dCB0aGF0J3MgdW5saWtlbHkuIEV2ZW4gaWYgaXQg
ZGlkLCB3ZSB3aWxsIGp1c3QgY29tcGlsZSB0aGluZ3Mgb2YgdGhlIHNhbWUKICAgICAvLyBQcmlv
cml0eSBpdCB0aGUgd3Jvbmcgb3JkZXIsIHdoaWNoIGlzbid0IHdyb25nLCBqdXN0IHN1Ym9wdGlt
YWwuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9BdXRvbWF0aWNUaHJlYWQuY3BwIGIvU291
cmNlL1dURi93dGYvQXV0b21hdGljVGhyZWFkLmNwcAppbmRleCBmNGVhNzhkMTNlMWNkZGI2MTli
ODIyODY4ZDMzYzcyN2M5ZjJmOThiLi4zYzViZTUxM2MyNjNjYThiNGRhNmI3YzI2YzZmODM3Mzlk
YTMxZTBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9BdXRvbWF0aWNUaHJlYWQuY3BwCisr
KyBiL1NvdXJjZS9XVEYvd3RmL0F1dG9tYXRpY1RocmVhZC5jcHAKQEAgLTc3LDEyICs3NywxMiBA
QCB2b2lkIEF1dG9tYXRpY1RocmVhZENvbmRpdGlvbjo6bm90aWZ5QWxsKGNvbnN0IEFic3RyYWN0
TG9ja2VyJiBsb2NrZXIpCiAgICAgfQogfQogCi12b2lkIEF1dG9tYXRpY1RocmVhZENvbmRpdGlv
bjo6d2FpdChMb2NrJiBsb2NrKQordm9pZCBBdXRvbWF0aWNUaHJlYWRDb25kaXRpb246OndhaXQo
VW5jaGVja2VkTG9jayYgbG9jaykKIHsKICAgICBtX2NvbmRpdGlvbi53YWl0KGxvY2spOwogfQog
Ci1ib29sIEF1dG9tYXRpY1RocmVhZENvbmRpdGlvbjo6d2FpdEZvcihMb2NrJiBsb2NrLCBTZWNv
bmRzIHRpbWUpCitib29sIEF1dG9tYXRpY1RocmVhZENvbmRpdGlvbjo6d2FpdEZvcihVbmNoZWNr
ZWRMb2NrJiBsb2NrLCBTZWNvbmRzIHRpbWUpCiB7CiAgICAgcmV0dXJuIG1fY29uZGl0aW9uLndh
aXRGb3IobG9jaywgdGltZSk7CiB9CkBAIC0xMDQsMTIgKzEwNCwxMiBAQCBib29sIEF1dG9tYXRp
Y1RocmVhZENvbmRpdGlvbjo6Y29udGFpbnMoY29uc3QgQWJzdHJhY3RMb2NrZXImLCBBdXRvbWF0
aWNUaHJlYWQqCiAgICAgcmV0dXJuIG1fdGhyZWFkcy5jb250YWlucyh0aHJlYWQpOwogfQogCi1B
dXRvbWF0aWNUaHJlYWQ6OkF1dG9tYXRpY1RocmVhZChjb25zdCBBYnN0cmFjdExvY2tlciYgbG9j
a2VyLCBCb3g8TG9jaz4gbG9jaywgUmVmPEF1dG9tYXRpY1RocmVhZENvbmRpdGlvbj4mJiBjb25k
aXRpb24sIFNlY29uZHMgdGltZW91dCkKK0F1dG9tYXRpY1RocmVhZDo6QXV0b21hdGljVGhyZWFk
KGNvbnN0IEFic3RyYWN0TG9ja2VyJiBsb2NrZXIsIEJveDxVbmNoZWNrZWRMb2NrPiBsb2NrLCBS
ZWY8QXV0b21hdGljVGhyZWFkQ29uZGl0aW9uPiYmIGNvbmRpdGlvbiwgU2Vjb25kcyB0aW1lb3V0
KQogICAgIDogQXV0b21hdGljVGhyZWFkKGxvY2tlciwgbG9jaywgV1RGTW92ZShjb25kaXRpb24p
LCBUaHJlYWRUeXBlOjpVbmtub3duLCB0aW1lb3V0KQogewogfQogCi1BdXRvbWF0aWNUaHJlYWQ6
OkF1dG9tYXRpY1RocmVhZChjb25zdCBBYnN0cmFjdExvY2tlciYgbG9ja2VyLCBCb3g8TG9jaz4g
bG9jaywgUmVmPEF1dG9tYXRpY1RocmVhZENvbmRpdGlvbj4mJiBjb25kaXRpb24sIFRocmVhZFR5
cGUgdHlwZSwgU2Vjb25kcyB0aW1lb3V0KQorQXV0b21hdGljVGhyZWFkOjpBdXRvbWF0aWNUaHJl
YWQoY29uc3QgQWJzdHJhY3RMb2NrZXImIGxvY2tlciwgQm94PFVuY2hlY2tlZExvY2s+IGxvY2ss
IFJlZjxBdXRvbWF0aWNUaHJlYWRDb25kaXRpb24+JiYgY29uZGl0aW9uLCBUaHJlYWRUeXBlIHR5
cGUsIFNlY29uZHMgdGltZW91dCkKICAgICA6IG1fbG9jayhsb2NrKQogICAgICwgbV9jb25kaXRp
b24oV1RGTW92ZShjb25kaXRpb24pKQogICAgICwgbV90aW1lb3V0KHRpbWVvdXQpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV1RGL3d0Zi9BdXRvbWF0aWNUaHJlYWQuaCBiL1NvdXJjZS9XVEYvd3RmL0F1
dG9tYXRpY1RocmVhZC5oCmluZGV4IDhkN2MyYjUxNjgwYTNlYTY3MjhlNTE3NGZjODE4MDY4ZGVl
OTVjODYuLjA5ZmNhZmVmMjM5NTkxYjJlMTJjZGYwMmZkZjAwNmNjZGQ0MTJhNmIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XVEYvd3RmL0F1dG9tYXRpY1RocmVhZC5oCisrKyBiL1NvdXJjZS9XVEYvd3Rm
L0F1dG9tYXRpY1RocmVhZC5oCkBAIC04MSw4ICs4MSw4IEBAIHB1YmxpYzoKICAgICAvLyBPbmUg
a25vd24tZ29vZCBjYXNlIGZvciBvbmUtdHJ1ZS1jb25kaXRpb24gaXMgd2hlbiB0aGUgY29tbXVu
aWNhdGlvbiBpbnZvbHZlcyBqdXN0IHR3bwogICAgIC8vIHRocmVhZHMuIEluIHN1Y2ggY2FzZXMs
IHRoZSB0aHJlYWQgZG9pbmcgdGhlIG5vdGlmeUFsbCgpIGNhbiB3YWtlIHVwIGF0IG1vc3Qgb25l
IHRocmVhZCAtCiAgICAgLy8gaXRzIHBhcnRuZXIuCi0gICAgV1RGX0VYUE9SVF9QUklWQVRFIHZv
aWQgd2FpdChMb2NrJik7Ci0gICAgV1RGX0VYUE9SVF9QUklWQVRFIGJvb2wgd2FpdEZvcihMb2Nr
JiwgU2Vjb25kcyk7CisgICAgV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgd2FpdChVbmNoZWNrZWRM
b2NrJik7CisgICAgV1RGX0VYUE9SVF9QUklWQVRFIGJvb2wgd2FpdEZvcihVbmNoZWNrZWRMb2Nr
JiwgU2Vjb25kcyk7CiAgICAgCiBwcml2YXRlOgogICAgIGZyaWVuZCBjbGFzcyBBdXRvbWF0aWNU
aHJlYWQ7CkBAIC05Myw3ICs5Myw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCByZW1vdmUoY29uc3Qg
QWJzdHJhY3RMb2NrZXImLCBBdXRvbWF0aWNUaHJlYWQqKTsKICAgICBib29sIGNvbnRhaW5zKGNv
bnN0IEFic3RyYWN0TG9ja2VyJiwgQXV0b21hdGljVGhyZWFkKik7CiAgICAgCi0gICAgQ29uZGl0
aW9uIG1fY29uZGl0aW9uOworICAgIFVuY2hlY2tlZENvbmRpdGlvbiBtX2NvbmRpdGlvbjsKICAg
ICBWZWN0b3I8QXV0b21hdGljVGhyZWFkKj4gbV90aHJlYWRzOwogfTsKIApAQCAtMTMxLDkgKzEz
MSw5IEBAIHB1YmxpYzoKIHByb3RlY3RlZDoKICAgICAvLyBUaGlzIGxvZ2ljYWxseSBjcmVhdGVz
IHRoZSB0aHJlYWQsIGJ1dCBpbiByZWFsaXR5IHRoZSB0aHJlYWQgd29uJ3QgYmUgY3JlYXRlZCB1
bnRpbCBzb21lb25lCiAgICAgLy8gY2FsbHMgQXV0b21hdGljVGhyZWFkQ29uZGl0aW9uOjpub3Rp
ZnlPbmUoKSBvciBub3RpZnlBbGwoKS4KLSAgICBBdXRvbWF0aWNUaHJlYWQoY29uc3QgQWJzdHJh
Y3RMb2NrZXImLCBCb3g8TG9jaz4sIFJlZjxBdXRvbWF0aWNUaHJlYWRDb25kaXRpb24+JiYsIFNl
Y29uZHMgdGltZW91dCA9IDEwX3MpOworICAgIEF1dG9tYXRpY1RocmVhZChjb25zdCBBYnN0cmFj
dExvY2tlciYsIEJveDxVbmNoZWNrZWRMb2NrPiwgUmVmPEF1dG9tYXRpY1RocmVhZENvbmRpdGlv
bj4mJiwgU2Vjb25kcyB0aW1lb3V0ID0gMTBfcyk7CiAKLSAgICBBdXRvbWF0aWNUaHJlYWQoY29u
c3QgQWJzdHJhY3RMb2NrZXImLCBCb3g8TG9jaz4sIFJlZjxBdXRvbWF0aWNUaHJlYWRDb25kaXRp
b24+JiYsIFRocmVhZFR5cGUsIFNlY29uZHMgdGltZW91dCA9IDEwX3MpOworICAgIEF1dG9tYXRp
Y1RocmVhZChjb25zdCBBYnN0cmFjdExvY2tlciYsIEJveDxVbmNoZWNrZWRMb2NrPiwgUmVmPEF1
dG9tYXRpY1RocmVhZENvbmRpdGlvbj4mJiwgVGhyZWFkVHlwZSwgU2Vjb25kcyB0aW1lb3V0ID0g
MTBfcyk7CiAgICAgCiAgICAgLy8gVG8gdW5kZXJzdGFuZCBQb2xsUmVzdWx0IGFuZCBXb3JrUmVz
dWx0LCBpbWFnaW5lIHRoYXQgcG9sbCgpIGFuZCB3b3JrKCkgYXJlIGJlaW5nIGNhbGxlZCBsaWtl
CiAgICAgLy8gc286CkBAIC0xODMsMTUgKzE4MywxNSBAQCBwcml2YXRlOgogICAgIAogICAgIHZv
aWQgc3RhcnQoY29uc3QgQWJzdHJhY3RMb2NrZXImKTsKICAgICAKLSAgICBCb3g8TG9jaz4gbV9s
b2NrOworICAgIEJveDxVbmNoZWNrZWRMb2NrPiBtX2xvY2s7CiAgICAgUmVmPEF1dG9tYXRpY1Ro
cmVhZENvbmRpdGlvbj4gbV9jb25kaXRpb247CiAgICAgU2Vjb25kcyBtX3RpbWVvdXQ7CiAgICAg
VGhyZWFkVHlwZSBtX3RocmVhZFR5cGUgeyBUaHJlYWRUeXBlOjpVbmtub3duIH07CiAgICAgYm9v
bCBtX2lzUnVubmluZyB7IHRydWUgfTsKICAgICBib29sIG1faXNXYWl0aW5nIHsgZmFsc2UgfTsK
ICAgICBib29sIG1faGFzVW5kZXJseWluZ1RocmVhZCB7IGZhbHNlIH07Ci0gICAgQ29uZGl0aW9u
IG1fd2FpdENvbmRpdGlvbjsKLSAgICBDb25kaXRpb24gbV9pc1J1bm5pbmdDb25kaXRpb247Cisg
ICAgVW5jaGVja2VkQ29uZGl0aW9uIG1fd2FpdENvbmRpdGlvbjsKKyAgICBVbmNoZWNrZWRDb25k
aXRpb24gbV9pc1J1bm5pbmdDb25kaXRpb247CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXVEYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0NoZWNrZWRDb25kaXRpb24uaCBiL1NvdXJjZS9XVEYv
d3RmL0NoZWNrZWRDb25kaXRpb24uaAppbmRleCAxMTkxMGUwMzk5MTNiNGI2MGE0NDk0N2ViYzkx
ZDAxYWJjNzhiMjc5Li4xMDZiYmEyMmQwYTYxN2IwZGYwNGIyNzJmOGNhMmQwYjYxY2JhMGI2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9DaGVja2VkQ29uZGl0aW9uLmgKKysrIGIvU291cmNl
L1dURi93dGYvQ2hlY2tlZENvbmRpdGlvbi5oCkBAIC0yNSw1OCArMjUsMTIgQEAKIAogI3ByYWdt
YSBvbmNlCiAKLSNpbmNsdWRlIDx3dGYvQ2hlY2tlZExvY2suaD4KICNpbmNsdWRlIDx3dGYvQ29u
ZGl0aW9uLmg+CiAKIG5hbWVzcGFjZSBXVEYgewogCi0vLyBBIGNvbmRpdGlvbiB2YXJpYWJsZSB0
eXBlIGZvciBDaGVja2VkTG9jay4KLS8vIEZvciBwcmVkaWNhdGVzIHRoYXQgYWNjZXNzIHRoZSBn
dWFyZGVkIHZhcmlhYmxlcywgdXNlIGFzc2VydElzSGVsZChsb2NrKS4KLWNsYXNzIENoZWNrZWRD
b25kaXRpb24gZmluYWwgewotICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKENoZWNrZWRDb25kaXRp
b24pOwotICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwotcHVibGljOgotICAgIGNvbnN0ZXhw
ciBDaGVja2VkQ29uZGl0aW9uKCkgPSBkZWZhdWx0OwotCi0gICAgYm9vbCB3YWl0VW50aWwoQ2hl
Y2tlZExvY2smIGxvY2ssIGNvbnN0IFRpbWVXaXRoRHluYW1pY0Nsb2NrVHlwZSYgdGltZW91dCkg
V1RGX1JFUVVJUkVTX0xPQ0sobG9jaykKLSAgICB7Ci0gICAgICAgIHJldHVybiBtX2NvbmRpdGlv
bi53YWl0VW50aWwodW5jaGVja2VkQ2FzdChsb2NrKSwgdGltZW91dCk7Ci0gICAgfQotICAgIHRl
bXBsYXRlPHR5cGVuYW1lIEZ1bmN0b3I+Ci0gICAgYm9vbCB3YWl0VW50aWwoQ2hlY2tlZExvY2sm
IGxvY2ssIGNvbnN0IFRpbWVXaXRoRHluYW1pY0Nsb2NrVHlwZSYgdGltZW91dCwgY29uc3QgRnVu
Y3RvciYgcHJlZGljYXRlKSBXVEZfUkVRVUlSRVNfTE9DSyhsb2NrKQotICAgIHsKLSAgICAgICAg
cmV0dXJuIG1fY29uZGl0aW9uLndhaXRVbnRpbCh1bmNoZWNrZWRDYXN0KGxvY2spLCB0aW1lb3V0
LCBwcmVkaWNhdGUpOwotICAgIH0KLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBGdW5jdG9yPgotICAg
IGJvb2wgd2FpdEZvcihDaGVja2VkTG9jayYgbG9jaywgU2Vjb25kcyByZWxhdGl2ZVRpbWVvdXQs
IGNvbnN0IEZ1bmN0b3ImIHByZWRpY2F0ZSkgV1RGX1JFUVVJUkVTX0xPQ0sobG9jaykKLSAgICB7
Ci0gICAgICAgIHJldHVybiBtX2NvbmRpdGlvbi53YWl0Rm9yKHVuY2hlY2tlZENhc3QobG9jayks
IHJlbGF0aXZlVGltZW91dCwgcHJlZGljYXRlKTsKLSAgICB9Ci0gICAgYm9vbCB3YWl0Rm9yKENo
ZWNrZWRMb2NrJiBsb2NrLCBTZWNvbmRzIHJlbGF0aXZlVGltZW91dCkgV1RGX1JFUVVJUkVTX0xP
Q0sobG9jaykKLSAgICB7Ci0gICAgICAgIHJldHVybiBtX2NvbmRpdGlvbi53YWl0Rm9yKHVuY2hl
Y2tlZENhc3QobG9jayksIHJlbGF0aXZlVGltZW91dCk7Ci0gICAgfQotICAgIHZvaWQgd2FpdChD
aGVja2VkTG9jayYgbG9jaykgV1RGX1JFUVVJUkVTX0xPQ0sobG9jaykKLSAgICB7Ci0gICAgICAg
IG1fY29uZGl0aW9uLndhaXQodW5jaGVja2VkQ2FzdChsb2NrKSk7Ci0gICAgfQotICAgIHRlbXBs
YXRlPHR5cGVuYW1lIEZ1bmN0b3I+Ci0gICAgdm9pZCB3YWl0KENoZWNrZWRMb2NrJiBsb2NrLCBj
b25zdCBGdW5jdG9yJiBwcmVkaWNhdGUpIFdURl9SRVFVSVJFU19MT0NLKGxvY2spCi0gICAgewot
ICAgICAgICBtX2NvbmRpdGlvbi53YWl0KHVuY2hlY2tlZENhc3QobG9jayksIHByZWRpY2F0ZSk7
Ci0gICAgfQotICAgIGJvb2wgbm90aWZ5T25lKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiBtX2Nv
bmRpdGlvbi5ub3RpZnlPbmUoKTsKLSAgICB9Ci0gICAgdm9pZCBub3RpZnlBbGwoKQotICAgIHsK
LSAgICAgICAgbV9jb25kaXRpb24ubm90aWZ5QWxsKCk7Ci0gICAgfQotcHJpdmF0ZToKLSAgICBz
dGF0aWMgTG9jayYgdW5jaGVja2VkQ2FzdChDaGVja2VkTG9jayYgbG9jaykgeyByZXR1cm4gc3Rh
dGljX2Nhc3Q8TG9jayY+KGxvY2spOyB9Ci0gICAgQ29uZGl0aW9uIG1fY29uZGl0aW9uOwotfTsK
Ky8vIEZJWE1FOiBVcGRhdGUgY29kZSBiYXNlIHRvIHVzZSBDb25kaXRpb24gYW5kIHJlbW92ZSB0
aGlzIGhlYWRlci4KK3VzaW5nIENoZWNrZWRDb25kaXRpb24gPSBDb25kaXRpb247CiAKIH0gLy8g
bmFtZXNwYWNlIFdURgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9DaGVja2VkTG9jay5o
IGIvU291cmNlL1dURi93dGYvQ2hlY2tlZExvY2suaAppbmRleCAzYWI1Yzc3MGRlMTYxYjRmMDU5
ZDZjNzRiYjcxZWM5OGVmYTVmNThhLi45NGE5ODFkNzg4MTk2MDYxZTUzNzZkM2M0MmVhYTI0YjBi
NDJkMTg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9DaGVja2VkTG9jay5oCisrKyBiL1Nv
dXJjZS9XVEYvd3RmL0NoZWNrZWRMb2NrLmgKQEAgLTI2LDgzICsyNiwxMiBAQAogI3ByYWdtYSBv
bmNlCiAKICNpbmNsdWRlIDx3dGYvTG9jay5oPgotI2luY2x1ZGUgPHd0Zi9Mb2NrZXIuaD4KLSNp
bmNsdWRlIDx3dGYvVGhyZWFkU2FmZXR5QW5hbHlzaXMuaD4KIAogbmFtZXNwYWNlIFdURiB7CiAK
LS8vIEEgbG9jayB0eXBlIHdpdGggc3VwcG9ydCBmb3IgdGhyZWFkIHNhZmV0eSBhbmFseXNpcy4K
LS8vIFRvIGFubm90YXRlIGEgbWVtYmVyIHZhcmlhYmxlIG9yIGEgZ2xvYmFsIHZhcmlhYmxlIHdp
dGggdGhyZWFkIG93bmVyc2hpcCBpbmZvcm1hdGlvbiwKLS8vIHVzZSBsb2NrIGNhcGFiaWxpdHkg
YW5ub3RhdGlvbnMgZGVmaW5lZCBpbiBUaHJlYWRTYWZldHlBbmFseXNpcy5oLgotLy8KLS8vIEV4
YW1wbGU6Ci0vLyAgIGNsYXNzIE15VmFsdWUgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8
TXlWYWx1ZT4KLS8vICAgewotLy8gICBwdWJsaWM6Ci0vLyAgICAgICB2b2lkIHNldFZhbHVlKGlu
dCB2YWx1ZSkgeyBMb2NrZXIgaG9sZExvY2sgeyBtX2xvY2sgfTsgbV92YWx1ZSA9IHZhbHVlOyAg
fQotLy8gICAgICAgdm9pZCBtYXliZVNldE90aGVyVmFsdWUoaW50IHZhbHVlKQotLy8gICAgICAg
ewotLy8gICAgICAgICAgIGlmICghbV9sb2NrLnRyeUxvY2soKSkKLS8vICAgICAgICAgICAgICBy
ZXR1cm47Ci0vLyAgICAgICAgICAgTG9ja2VyIGxvY2tlciB7IEFkb3B0TG9jaywgbV9vdGhlckxv
Y2sgfTsKLS8vICAgICAgICAgICBtX290aGVyVmFsdWUgPSB2YWx1ZTsKLS8vICAgICAgIH0KLS8v
ICAgcHJpdmF0ZToKLS8vICAgICAgIENoZWNrZWRMb2NrIG1fbG9jazsKLS8vICAgICAgIGludCBt
X3ZhbHVlIFdURl9HVUFSREVEX0JZX0xPQ0sobV9sb2NrKSB7IDc3IH07Ci0vLyAgICAgICBpbnQg
bV9vdGhlclZhbHVlIFdURl9HVUFSREVEX0JZX0xPQ0sobV9sb2NrKSB7IDg4IH07Ci0vLyAgIH07
Ci0vLyBGSVhNRTogTWF5YmUgc2hvdWxkIGJlIGZvbGRlZCBiYWNrIHRvIExvY2sgb25jZSBob2xk
TG9jayBpcyBub3QgdXNlZCBnbG9iYWxseS4KLWNsYXNzIFdURl9DQVBBQklMSVRZX0xPQ0sgQ2hl
Y2tlZExvY2sgOiBMb2NrIHsKLSAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShDaGVja2VkTG9jayk7
Ci0gICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7Ci1wdWJsaWM6Ci0gICAgY29uc3RleHByIENo
ZWNrZWRMb2NrKCkgPSBkZWZhdWx0OwotICAgIHZvaWQgbG9jaygpIFdURl9BQ1FVSVJFU19MT0NL
KCkgeyBMb2NrOjpsb2NrKCk7IH0KLSAgICBib29sIHRyeUxvY2soKSBXVEZfQUNRVUlSRVNfTE9D
S19JRih0cnVlKSB7IHJldHVybiBMb2NrOjp0cnlMb2NrKCk7IH0KLSAgICBib29sIHRyeV9sb2Nr
KCkgV1RGX0FDUVVJUkVTX0xPQ0tfSUYodHJ1ZSkgeyByZXR1cm4gTG9jazo6dHJ5X2xvY2soKTsg
fSAvLyBOT0xJTlQ6IEludGVudGlvbmFsIGRldmlhdGlvbiB0byBzdXBwb3J0IHN0ZDo6c2NvcGVk
X2xvY2suCi0gICAgdm9pZCB1bmxvY2soKSBXVEZfUkVMRUFTRVNfTE9DSygpIHsgTG9jazo6dW5s
b2NrKCk7IH0KLSAgICB2b2lkIHVubG9ja0ZhaXJseSgpIFdURl9SRUxFQVNFU19MT0NLKCkgeyBM
b2NrOjp1bmxvY2tGYWlybHkoKTsgfQotICAgIHZvaWQgc2FmZXBvaW50KCkgeyBMb2NrOjpzYWZl
cG9pbnQoKTsgfQotICAgIGJvb2wgaXNIZWxkKCkgY29uc3QgeyByZXR1cm4gTG9jazo6aXNIZWxk
KCk7IH0KLSAgICBib29sIGlzTG9ja2VkKCkgY29uc3QgeyByZXR1cm4gTG9jazo6aXNMb2NrZWQo
KTsgfQotICAgIGZyaWVuZCBjbGFzcyBDaGVja2VkQ29uZGl0aW9uOwotfTsKLQotLy8gQXNzZXJ0
cyB0aGF0IHRoZSBsb2NrIGlzIGhlbGQuCi0vLyBUaGlzIGNhbiBiZSB1c2VkIGluIGNhc2VzIHdo
ZXJlIHRoZSBhbm5vdGF0aW9ucyBjYW5ub3QgYmUgYWRkZWQgdG8gdGhlIGZ1bmN0aW9uCi0vLyBk
ZWNsYXJhdGlvbi4KLWlubGluZSB2b2lkIGFzc2VydElzSGVsZChjb25zdCBDaGVja2VkTG9jayYg
bG9jaykgV1RGX0FTU0VSVFNfQUNRVUlSRURfTE9DSyhsb2NrKSB7IEFTU0VSVF9VTlVTRUQobG9j
aywgbG9jay5pc0hlbGQoKSk7IH0KLQotLy8gTG9ja2VyIHNwZWNpYWxpemF0aW9uIHRvIHVzZSB3
aXRoIENoZWNrZWRMb2NrLgotLy8gTm9uLW1vdmFibGUgc2ltcGxlIHNjb3BlZCBsb2NrIGhvbGRl
ci4KLS8vIEV4YW1wbGU6IExvY2tlciBsb2NrZXIgeyBtX2xvY2sgfTsKLXRlbXBsYXRlIDw+Ci1j
bGFzcyBXVEZfQ0FQQUJJTElUWV9TQ09QRURfTE9DSyBMb2NrZXI8Q2hlY2tlZExvY2s+IHsKLXB1
YmxpYzoKLSAgICBleHBsaWNpdCBMb2NrZXIoQ2hlY2tlZExvY2smIGxvY2spIFdURl9BQ1FVSVJF
U19MT0NLKGxvY2spCi0gICAgICAgIDogbV9sb2NrKGxvY2spCi0gICAgewotICAgICAgICBtX2xv
Y2subG9jaygpOwotICAgIH0KLSAgICBMb2NrZXIoQWRvcHRMb2NrVGFnLCBDaGVja2VkTG9jayYg
bG9jaykgV1RGX1JFUVVJUkVTX0xPQ0sobG9jaykKLSAgICAgICAgOiBtX2xvY2sobG9jaykKLSAg
ICB7Ci0gICAgfQotICAgIH5Mb2NrZXIoKSBXVEZfUkVMRUFTRVNfTE9DSygpCi0gICAgewotICAg
ICAgICBtX2xvY2sudW5sb2NrKCk7Ci0gICAgfQotICAgIExvY2tlcihjb25zdCBMb2NrZXI8Q2hl
Y2tlZExvY2s+JikgPSBkZWxldGU7Ci0gICAgTG9ja2VyJiBvcGVyYXRvcj0oY29uc3QgTG9ja2Vy
PENoZWNrZWRMb2NrPiYpID0gZGVsZXRlOwotcHJpdmF0ZToKLSAgICBDaGVja2VkTG9jayYgbV9s
b2NrOwotfTsKLQotTG9ja2VyKENoZWNrZWRMb2NrJikgLT4gTG9ja2VyPENoZWNrZWRMb2NrPjsK
LUxvY2tlcihBZG9wdExvY2tUYWcsIENoZWNrZWRMb2NrJikgLT4gTG9ja2VyPENoZWNrZWRMb2Nr
PjsKKy8vIEZJWE1FOiBVcGRhdGUgY29kZSBiYXNlIHRvIHVzZSBMb2NrIGFuZCByZW1vdmUgdGhp
cyBoZWFkZXIuCit1c2luZyBDaGVja2VkTG9jayA9IExvY2s7CiAKIH0gLy8gbmFtZXNwYWNlIFdU
RgogCi11c2luZyBXVEY6OmFzc2VydElzSGVsZDsKIHVzaW5nIFdURjo6Q2hlY2tlZExvY2s7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9Db25kaXRpb24uaCBiL1NvdXJjZS9XVEYvd3RmL0Nv
bmRpdGlvbi5oCmluZGV4IDgxNTUwMWYxN2QyNjc5OTJkZjRkNDRkZGI5OTMxY2NhMGU4ZmZlOTku
LjRlZWYxZjFhNjJhMWNiNTJjMWRlNTcyZTE3MWEzMTQzNTY5OGIzNjYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XVEYvd3RmL0NvbmRpdGlvbi5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL0NvbmRpdGlvbi5o
CkBAIC0yNSw2ICsyNSw3IEBACiAKICNwcmFnbWEgb25jZQogCisjaW5jbHVkZSA8d3RmL0xvY2su
aD4KICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KICNpbmNsdWRlIDx3dGYvUGFya2luZ0xv
dC5oPgogI2luY2x1ZGUgPHd0Zi9UaW1lV2l0aER5bmFtaWNDbG9ja1R5cGUuaD4KQEAgLTM5LDE2
ICs0MCwxNiBAQCBuYW1lc3BhY2UgV1RGIHsKIC8vIG5vdGlmeUFsbCgpIHJlcXVpcmUganVzdCBh
IGxvYWQgYW5kIGJyYW5jaCBmb3IgdGhlIGZhc3QgY2FzZSB3aGVyZSBubyB0aHJlYWQgaXMgd2Fp
dGluZy4KIC8vIFRoaXMgY29uZGl0aW9uIHZhcmlhYmxlLCB3aGVuIHVzZWQgd2l0aCBXVEY6Okxv
Y2ssIGNhbiBvdXRwZXJmb3JtIGEgc3lzdGVtIGNvbmRpdGlvbiB2YXJpYWJsZQogLy8gYW5kIGxv
Y2sgYnkgdXAgdG8gNTh4LgotY2xhc3MgQ29uZGl0aW9uIGZpbmFsIHsKLSAgICBXVEZfTUFLRV9O
T05DT1BZQUJMRShDb25kaXRpb24pOworY2xhc3MgVW5jaGVja2VkQ29uZGl0aW9uIGZpbmFsIHsK
KyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShVbmNoZWNrZWRDb25kaXRpb24pOwogICAgIFdURl9N
QUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIC8vIENvbmRpdGlvbiB3aWxsIGFjY2Vw
dCBhbnkga2luZCBvZiB0aW1lIGFuZCBjb252ZXJ0IGl0IGludGVybmFsbHksIGJ1dCB0aGlzIHR5
cGVkZWYgdGVsbHMKLSAgICAvLyB5b3Ugd2hhdCBraW5kIG9mIHRpbWUgQ29uZGl0aW9uIHdvdWxk
IGJlIGFibGUgdG8gdXNlIHdpdGhvdXQgY29udmVyc2lvbnMuIEhvd2V2ZXIsIGlmIHlvdQorICAg
IC8vIFVuY2hlY2tlZENvbmRpdGlvbiB3aWxsIGFjY2VwdCBhbnkga2luZCBvZiB0aW1lIGFuZCBj
b252ZXJ0IGl0IGludGVybmFsbHksIGJ1dCB0aGlzIHR5cGVkZWYgdGVsbHMKKyAgICAvLyB5b3Ug
d2hhdCBraW5kIG9mIHRpbWUgVW5jaGVja2VkQ29uZGl0aW9uIHdvdWxkIGJlIGFibGUgdG8gdXNl
IHdpdGhvdXQgY29udmVyc2lvbnMuIEhvd2V2ZXIsIGlmIHlvdQogICAgIC8vIGFyZSB1bmxpa2Vs
eSB0byBiZSBhZmZlY3RlZCBieSB0aGUgY29zdCBvZiBjb252ZXJzaW9ucywgaXQgaXMgYmV0dGVy
IHRvIHVzZSBNb25vdG9uaWNUaW1lLgogICAgIHVzaW5nIFRpbWUgPSBQYXJraW5nTG90OjpUaW1l
OwogCi0gICAgY29uc3RleHByIENvbmRpdGlvbigpID0gZGVmYXVsdDsKKyAgICBjb25zdGV4cHIg
VW5jaGVja2VkQ29uZGl0aW9uKCkgPSBkZWZhdWx0OwogCiAgICAgLy8gV2FpdCBvbiBhIHBhcmtp
bmcgcXVldWUgd2hpbGUgcmVsZWFzaW5nIHRoZSBnaXZlbiBsb2NrLiBJdCB3aWxsIHVubG9jayB0
aGUgbG9jayBqdXN0IGJlZm9yZQogICAgIC8vIHBhcmtpbmcsIGFuZCByZWxvY2sgaXQgdXBvbiB3
YWtldXAuIFJldHVybnMgdHJ1ZSBpZiB3ZSB3b2tlIHVwIGR1ZSB0byBzb21lIGNhbGwgdG8KQEAg
LTE3Miw5ICsxNzMsNjEgQEAgcHJpdmF0ZToKICAgICBBdG9taWM8Ym9vbD4gbV9oYXNXYWl0ZXJz
IHsgZmFsc2UgfTsKIH07CiAKKy8vIEEgY29uZGl0aW9uIHZhcmlhYmxlIHR5cGUgZm9yIExvY2su
CisvLyBGb3IgcHJlZGljYXRlcyB0aGF0IGFjY2VzcyB0aGUgZ3VhcmRlZCB2YXJpYWJsZXMsIHVz
ZSBhc3NlcnRJc0hlbGQobG9jaykuCitjbGFzcyBDb25kaXRpb24gZmluYWwgeworICAgIFdURl9N
QUtFX05PTkNPUFlBQkxFKENvbmRpdGlvbik7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7
CitwdWJsaWM6CisgICAgY29uc3RleHByIENvbmRpdGlvbigpID0gZGVmYXVsdDsKKworICAgIGJv
b2wgd2FpdFVudGlsKExvY2smIGxvY2ssIGNvbnN0IFRpbWVXaXRoRHluYW1pY0Nsb2NrVHlwZSYg
dGltZW91dCkgV1RGX1JFUVVJUkVTX0xPQ0sobG9jaykKKyAgICB7CisgICAgICAgIHJldHVybiBt
X2NvbmRpdGlvbi53YWl0VW50aWwodW5jaGVja2VkQ2FzdChsb2NrKSwgdGltZW91dCk7CisgICAg
fQorICAgIHRlbXBsYXRlPHR5cGVuYW1lIEZ1bmN0b3I+CisgICAgYm9vbCB3YWl0VW50aWwoTG9j
ayYgbG9jaywgY29uc3QgVGltZVdpdGhEeW5hbWljQ2xvY2tUeXBlJiB0aW1lb3V0LCBjb25zdCBG
dW5jdG9yJiBwcmVkaWNhdGUpIFdURl9SRVFVSVJFU19MT0NLKGxvY2spCisgICAgeworICAgICAg
ICByZXR1cm4gbV9jb25kaXRpb24ud2FpdFVudGlsKHVuY2hlY2tlZENhc3QobG9jayksIHRpbWVv
dXQsIHByZWRpY2F0ZSk7CisgICAgfQorICAgIHRlbXBsYXRlPHR5cGVuYW1lIEZ1bmN0b3I+Cisg
ICAgYm9vbCB3YWl0Rm9yKExvY2smIGxvY2ssIFNlY29uZHMgcmVsYXRpdmVUaW1lb3V0LCBjb25z
dCBGdW5jdG9yJiBwcmVkaWNhdGUpIFdURl9SRVFVSVJFU19MT0NLKGxvY2spCisgICAgeworICAg
ICAgICByZXR1cm4gbV9jb25kaXRpb24ud2FpdEZvcih1bmNoZWNrZWRDYXN0KGxvY2spLCByZWxh
dGl2ZVRpbWVvdXQsIHByZWRpY2F0ZSk7CisgICAgfQorICAgIGJvb2wgd2FpdEZvcihMb2NrJiBs
b2NrLCBTZWNvbmRzIHJlbGF0aXZlVGltZW91dCkgV1RGX1JFUVVJUkVTX0xPQ0sobG9jaykKKyAg
ICB7CisgICAgICAgIHJldHVybiBtX2NvbmRpdGlvbi53YWl0Rm9yKHVuY2hlY2tlZENhc3QobG9j
ayksIHJlbGF0aXZlVGltZW91dCk7CisgICAgfQorICAgIHZvaWQgd2FpdChMb2NrJiBsb2NrKSBX
VEZfUkVRVUlSRVNfTE9DSyhsb2NrKQorICAgIHsKKyAgICAgICAgbV9jb25kaXRpb24ud2FpdCh1
bmNoZWNrZWRDYXN0KGxvY2spKTsKKyAgICB9CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRnVuY3Rv
cj4KKyAgICB2b2lkIHdhaXQoTG9jayYgbG9jaywgY29uc3QgRnVuY3RvciYgcHJlZGljYXRlKSBX
VEZfUkVRVUlSRVNfTE9DSyhsb2NrKQorICAgIHsKKyAgICAgICAgbV9jb25kaXRpb24ud2FpdCh1
bmNoZWNrZWRDYXN0KGxvY2spLCBwcmVkaWNhdGUpOworICAgIH0KKyAgICBib29sIG5vdGlmeU9u
ZSgpCisgICAgeworICAgICAgICByZXR1cm4gbV9jb25kaXRpb24ubm90aWZ5T25lKCk7CisgICAg
fQorICAgIHZvaWQgbm90aWZ5QWxsKCkKKyAgICB7CisgICAgICAgIG1fY29uZGl0aW9uLm5vdGlm
eUFsbCgpOworICAgIH0KK3ByaXZhdGU6CisgICAgc3RhdGljIFVuY2hlY2tlZExvY2smIHVuY2hl
Y2tlZENhc3QoTG9jayYgbG9jaykgeyByZXR1cm4gc3RhdGljX2Nhc3Q8VW5jaGVja2VkTG9jayY+
KGxvY2spOyB9CisgICAgVW5jaGVja2VkQ29uZGl0aW9uIG1fY29uZGl0aW9uOworfTsKKwordXNp
bmcgU3RhdGljVW5jaGVja2VkQ29uZGl0aW9uID0gVW5jaGVja2VkQ29uZGl0aW9uOwogdXNpbmcg
U3RhdGljQ29uZGl0aW9uID0gQ29uZGl0aW9uOwogCiB9IC8vIG5hbWVzcGFjZSBXVEYKIAogdXNp
bmcgV1RGOjpDb25kaXRpb247Cit1c2luZyBXVEY6OlVuY2hlY2tlZENvbmRpdGlvbjsKIHVzaW5n
IFdURjo6U3RhdGljQ29uZGl0aW9uOwordXNpbmcgV1RGOjpTdGF0aWNVbmNoZWNrZWRDb25kaXRp
b247CisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0xvY2suY3BwIGIvU291cmNlL1dURi93
dGYvTG9jay5jcHAKaW5kZXggYjk5MzgzZDY5NDgwZDNhNGM5YjYyM2YwYzBiY2M3ZGY5MGVhYjA0
ZC4uZmY4NmUxMGE5YTJhNDE3YWI3MDY3MGEwNzg5Y2Y2NTBkNzE4YjE3MSAxMDA2NDQKLS0tIGEv
U291cmNlL1dURi93dGYvTG9jay5jcHAKKysrIGIvU291cmNlL1dURi93dGYvTG9jay5jcHAKQEAg
LTMzLDE0ICszMywxNCBAQCBuYW1lc3BhY2UgV1RGIHsKIAogc3RhdGljIGNvbnN0ZXhwciBib29s
IHByb2ZpbGVMb2NrQ29udGVudGlvbiA9IGZhbHNlOwogCi12b2lkIExvY2s6OmxvY2tTbG93KCkK
K3ZvaWQgVW5jaGVja2VkTG9jazo6bG9ja1Nsb3coKQogewogICAgIGlmIChwcm9maWxlTG9ja0Nv
bnRlbnRpb24pCiAgICAgICAgIFNUQUNLX1NIT1RfUFJPRklMRSg0LCAyLCA1KTsKICAgICBEZWZh
dWx0TG9ja0FsZ29yaXRobTo6bG9ja1Nsb3cobV9ieXRlKTsKIH0KIAotdm9pZCBMb2NrOjp1bmxv
Y2tTbG93KCkKK3ZvaWQgVW5jaGVja2VkTG9jazo6dW5sb2NrU2xvdygpCiB7CiAgICAgLy8gSGVh
cCBhbGxvY2F0aW9ucyBhcmUgZm9yYmlkZGVuIG9uIHRoZSBjZXJ0YWluIHRocmVhZHMgKGUuZy4g
YXVkaW8gcmVuZGVyaW5nIHRocmVhZCkgZm9yIHBlcmZvcm1hbmNlIHJlYXNvbnMgc28gd2UgbmVl
ZCB0bwogICAgIC8vIGV4cGxpY2l0bHkgYWxsb3cgdGhlIGZvbGxvd2luZyBhbGxvY2F0aW9uKHMp
LiBJbiBzb21lIHJhcmUgY2FzZXMsIHRoZSB1bmxvY2tTbG93KCkgYWxnb3JpdGggbWF5IGNhdXNl
IGFsbG9jYXRpb25zLgpAQCAtNDksNyArNDksNyBAQCB2b2lkIExvY2s6OnVubG9ja1Nsb3coKQog
ICAgIERlZmF1bHRMb2NrQWxnb3JpdGhtOjp1bmxvY2tTbG93KG1fYnl0ZSwgRGVmYXVsdExvY2tB
bGdvcml0aG06OlVuZmFpcik7CiB9CiAKLXZvaWQgTG9jazo6dW5sb2NrRmFpcmx5U2xvdygpCit2
b2lkIFVuY2hlY2tlZExvY2s6OnVubG9ja0ZhaXJseVNsb3coKQogewogICAgIC8vIEhlYXAgYWxs
b2NhdGlvbnMgYXJlIGZvcmJpZGRlbiBvbiB0aGUgY2VydGFpbiB0aHJlYWRzIChlLmcuIGF1ZGlv
IHJlbmRlcmluZyB0aHJlYWQpIGZvciBwZXJmb3JtYW5jZSByZWFzb25zIHNvIHdlIG5lZWQgdG8K
ICAgICAvLyBleHBsaWNpdGx5IGFsbG93IHRoZSBmb2xsb3dpbmcgYWxsb2NhdGlvbihzKS4gSW4g
c29tZSByYXJlIGNhc2VzLCB0aGUgdW5sb2NrU2xvdygpIGFsZ29yaXRoIG1heSBjYXVzZSBhbGxv
Y2F0aW9ucy4KQEAgLTU4LDcgKzU4LDcgQEAgdm9pZCBMb2NrOjp1bmxvY2tGYWlybHlTbG93KCkK
ICAgICBEZWZhdWx0TG9ja0FsZ29yaXRobTo6dW5sb2NrU2xvdyhtX2J5dGUsIERlZmF1bHRMb2Nr
QWxnb3JpdGhtOjpGYWlyKTsKIH0KIAotdm9pZCBMb2NrOjpzYWZlcG9pbnRTbG93KCkKK3ZvaWQg
VW5jaGVja2VkTG9jazo6c2FmZXBvaW50U2xvdygpCiB7CiAgICAgRGVmYXVsdExvY2tBbGdvcml0
aG06OnNhZmVwb2ludFNsb3cobV9ieXRlKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3Rm
L0xvY2suaCBiL1NvdXJjZS9XVEYvd3RmL0xvY2suaAppbmRleCA2MGZkYWFiZDkwZGFlN2YyZDRk
NDhmMzFiODAzNGRlM2JmOTVmNjdkLi5mZGMwYTRmNzcwY2U2MzJhMDFmMWJiMTM1YWNkYTliMzNj
ZmU0OTMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9Mb2NrLmgKKysrIGIvU291cmNlL1dU
Ri93dGYvTG9jay5oCkBAIC0yNSw5ICsyNSwxMSBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1
ZGUgPG11dGV4PgogI2luY2x1ZGUgPHd0Zi9Mb2NrQWxnb3JpdGhtLmg+CiAjaW5jbHVkZSA8d3Rm
L0xvY2tlci5oPgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgorI2luY2x1ZGUgPHd0Zi9U
aHJlYWRTYWZldHlBbmFseXNpcy5oPgogCiBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CiBzdHJ1
Y3QgTG9ja0luc3BlY3RvcjsKQEAgLTQ3LDExICs0OSwxMSBAQCB0eXBlZGVmIExvY2tBbGdvcml0
aG08dWludDhfdCwgMSwgMj4gRGVmYXVsdExvY2tBbGdvcml0aG07CiAvLyBhdCB3b3JzdCBvbmUg
Y2FsbCB0byB1bmxvY2soKSBwZXIgbWlsbGlzZWNvbmQgd2lsbCBkbyBhIGRpcmVjdCBoYW5kLW9m
ZiB0byB0aGUgdGhyZWFkIHRoYXQgaXMgYXQKIC8vIHRoZSBoZWFkIG9mIHRoZSBxdWV1ZS4gV2hl
biB0aGVyZSBhcmUgY29sbGlzaW9ucywgZWFjaCBjb2xsaXNpb24gaW5jcmVhc2VzIHRoZSBmYWly
IHVubG9jayBkZWxheQogLy8gYnkgb25lIG1pbGxpc2Vjb25kIGluIHRoZSB3b3JzdCBjYXNlLgot
Y2xhc3MgTG9jayB7Ci0gICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoTG9jayk7CitjbGFzcyBVbmNo
ZWNrZWRMb2NrIHsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShVbmNoZWNrZWRMb2NrKTsKICAg
ICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBjb25zdGV4cHIgTG9jaygp
ID0gZGVmYXVsdDsKKyAgICBjb25zdGV4cHIgVW5jaGVja2VkTG9jaygpID0gZGVmYXVsdDsKIAog
ICAgIHZvaWQgbG9jaygpCiAgICAgewpAQCAtMTMxLDkgKzEzMyw4NCBAQCBwcml2YXRlOgogICAg
IEF0b21pYzx1aW50OF90PiBtX2J5dGUgeyAwIH07CiB9OwogCisvLyBBIGxvY2sgdHlwZSB3aXRo
IHN1cHBvcnQgZm9yIHRocmVhZCBzYWZldHkgYW5hbHlzaXMuCisvLyBUbyBhbm5vdGF0ZSBhIG1l
bWJlciB2YXJpYWJsZSBvciBhIGdsb2JhbCB2YXJpYWJsZSB3aXRoIHRocmVhZCBvd25lcnNoaXAg
aW5mb3JtYXRpb24sCisvLyB1c2UgbG9jayBjYXBhYmlsaXR5IGFubm90YXRpb25zIGRlZmluZWQg
aW4gVGhyZWFkU2FmZXR5QW5hbHlzaXMuaC4KKy8vCisvLyBFeGFtcGxlOgorLy8gICBjbGFzcyBN
eVZhbHVlIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPE15VmFsdWU+CisvLyAgIHsKKy8v
ICAgcHVibGljOgorLy8gICAgICAgdm9pZCBzZXRWYWx1ZShpbnQgdmFsdWUpIHsgTG9ja2VyIGhv
bGRMb2NrIHsgbV9sb2NrIH07IG1fdmFsdWUgPSB2YWx1ZTsgIH0KKy8vICAgICAgIHZvaWQgbWF5
YmVTZXRPdGhlclZhbHVlKGludCB2YWx1ZSkKKy8vICAgICAgIHsKKy8vICAgICAgICAgICBpZiAo
IW1fbG9jay50cnlMb2NrKCkpCisvLyAgICAgICAgICAgICAgcmV0dXJuOworLy8gICAgICAgICAg
IExvY2tlciBsb2NrZXIgeyBBZG9wdExvY2ssIG1fb3RoZXJMb2NrIH07CisvLyAgICAgICAgICAg
bV9vdGhlclZhbHVlID0gdmFsdWU7CisvLyAgICAgICB9CisvLyAgIHByaXZhdGU6CisvLyAgICAg
ICBMb2NrIG1fbG9jazsKKy8vICAgICAgIGludCBtX3ZhbHVlIFdURl9HVUFSREVEX0JZX0xPQ0so
bV9sb2NrKSB7IDc3IH07CisvLyAgICAgICBpbnQgbV9vdGhlclZhbHVlIFdURl9HVUFSREVEX0JZ
X0xPQ0sobV9sb2NrKSB7IDg4IH07CisvLyAgIH07CitjbGFzcyBXVEZfQ0FQQUJJTElUWV9MT0NL
IExvY2sgOiBVbmNoZWNrZWRMb2NrIHsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShMb2NrKTsK
KyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICBjb25zdGV4cHIgTG9j
aygpID0gZGVmYXVsdDsKKyAgICB2b2lkIGxvY2soKSBXVEZfQUNRVUlSRVNfTE9DSygpIHsgVW5j
aGVja2VkTG9jazo6bG9jaygpOyB9CisgICAgYm9vbCB0cnlMb2NrKCkgV1RGX0FDUVVJUkVTX0xP
Q0tfSUYodHJ1ZSkgeyByZXR1cm4gVW5jaGVja2VkTG9jazo6dHJ5TG9jaygpOyB9CisgICAgYm9v
bCB0cnlfbG9jaygpIFdURl9BQ1FVSVJFU19MT0NLX0lGKHRydWUpIHsgcmV0dXJuIFVuY2hlY2tl
ZExvY2s6OnRyeV9sb2NrKCk7IH0gLy8gTk9MSU5UOiBJbnRlbnRpb25hbCBkZXZpYXRpb24gdG8g
c3VwcG9ydCBzdGQ6OnNjb3BlZF9sb2NrLgorICAgIHZvaWQgdW5sb2NrKCkgV1RGX1JFTEVBU0VT
X0xPQ0soKSB7IFVuY2hlY2tlZExvY2s6OnVubG9jaygpOyB9CisgICAgdm9pZCB1bmxvY2tGYWly
bHkoKSBXVEZfUkVMRUFTRVNfTE9DSygpIHsgVW5jaGVja2VkTG9jazo6dW5sb2NrRmFpcmx5KCk7
IH0KKyAgICB2b2lkIHNhZmVwb2ludCgpIHsgVW5jaGVja2VkTG9jazo6c2FmZXBvaW50KCk7IH0K
KyAgICBib29sIGlzSGVsZCgpIGNvbnN0IHsgcmV0dXJuIFVuY2hlY2tlZExvY2s6OmlzSGVsZCgp
OyB9CisgICAgYm9vbCBpc0xvY2tlZCgpIGNvbnN0IHsgcmV0dXJuIFVuY2hlY2tlZExvY2s6Omlz
TG9ja2VkKCk7IH0KKyAgICBmcmllbmQgY2xhc3MgQ29uZGl0aW9uOworICAgIGZyaWVuZCBzdHJ1
Y3QgVGVzdFdlYktpdEFQSTo6TG9ja0luc3BlY3RvcjsKK307CisKKy8vIEFzc2VydHMgdGhhdCB0
aGUgbG9jayBpcyBoZWxkLgorLy8gVGhpcyBjYW4gYmUgdXNlZCBpbiBjYXNlcyB3aGVyZSB0aGUg
YW5ub3RhdGlvbnMgY2Fubm90IGJlIGFkZGVkIHRvIHRoZSBmdW5jdGlvbgorLy8gZGVjbGFyYXRp
b24uCitpbmxpbmUgdm9pZCBhc3NlcnRJc0hlbGQoY29uc3QgTG9jayYgbG9jaykgV1RGX0FTU0VS
VFNfQUNRVUlSRURfTE9DSyhsb2NrKSB7IEFTU0VSVF9VTlVTRUQobG9jaywgbG9jay5pc0hlbGQo
KSk7IH0KKworLy8gTG9ja2VyIHNwZWNpYWxpemF0aW9uIHRvIHVzZSB3aXRoIExvY2suCisvLyBO
b24tbW92YWJsZSBzaW1wbGUgc2NvcGVkIGxvY2sgaG9sZGVyLgorLy8gRXhhbXBsZTogTG9ja2Vy
IGxvY2tlciB7IG1fbG9jayB9OwordGVtcGxhdGUgPD4KK2NsYXNzIFdURl9DQVBBQklMSVRZX1ND
T1BFRF9MT0NLIExvY2tlcjxMb2NrPiB7CitwdWJsaWM6CisgICAgZXhwbGljaXQgTG9ja2VyKExv
Y2smIGxvY2spIFdURl9BQ1FVSVJFU19MT0NLKGxvY2spCisgICAgICAgIDogbV9sb2NrKGxvY2sp
CisgICAgeworICAgICAgICBtX2xvY2subG9jaygpOworICAgIH0KKyAgICBMb2NrZXIoQWRvcHRM
b2NrVGFnLCBMb2NrJiBsb2NrKSBXVEZfUkVRVUlSRVNfTE9DSyhsb2NrKQorICAgICAgICA6IG1f
bG9jayhsb2NrKQorICAgIHsKKyAgICB9CisgICAgfkxvY2tlcigpIFdURl9SRUxFQVNFU19MT0NL
KCkKKyAgICB7CisgICAgICAgIG1fbG9jay51bmxvY2soKTsKKyAgICB9CisgICAgTG9ja2VyKGNv
bnN0IExvY2tlcjxMb2NrPiYpID0gZGVsZXRlOworICAgIExvY2tlciYgb3BlcmF0b3I9KGNvbnN0
IExvY2tlcjxMb2NrPiYpID0gZGVsZXRlOworcHJpdmF0ZToKKyAgICBMb2NrJiBtX2xvY2s7Cit9
OworCitMb2NrZXIoTG9jayYpIC0+IExvY2tlcjxMb2NrPjsKK0xvY2tlcihBZG9wdExvY2tUYWcs
IExvY2smKSAtPiBMb2NrZXI8TG9jaz47CisKIHVzaW5nIExvY2tIb2xkZXIgPSBMb2NrZXI8TG9j
az47Cit1c2luZyBVbmNoZWNrZWRMb2NrSG9sZGVyID0gTG9ja2VyPFVuY2hlY2tlZExvY2s+Owog
CiB9IC8vIG5hbWVzcGFjZSBXVEYKIAordXNpbmcgV1RGOjpVbmNoZWNrZWRMb2NrOwogdXNpbmcg
V1RGOjpMb2NrOwogdXNpbmcgV1RGOjpMb2NrSG9sZGVyOwordXNpbmcgV1RGOjpVbmNoZWNrZWRM
b2NrSG9sZGVyOwordXNpbmcgV1RGOjphc3NlcnRJc0hlbGQ7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V1RGL3d0Zi9NZXRhQWxsb2NhdG9yLmNwcCBiL1NvdXJjZS9XVEYvd3RmL01ldGFBbGxvY2F0b3Iu
Y3BwCmluZGV4IGVlZjg5Yjc3ZTdiZGRmY2Q2NzY1ZDY3M2FhNTY1YTA2NzdjZDcwYTQuLmQ5Y2Q1
OTkyZjNhMGQ1MWQwNDZlODcwMWExM2JkMjdhNzkwMjJhZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
VEYvd3RmL01ldGFBbGxvY2F0b3IuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL01ldGFBbGxvY2F0
b3IuY3BwCkBAIC02Miw3ICs2Miw3IEBAIHZvaWQgTWV0YUFsbG9jYXRvclRyYWNrZXI6OnJlbGVh
c2UoTWV0YUFsbG9jYXRvckhhbmRsZSYgaGFuZGxlKQogICAgIG1fYWxsb2NhdGlvbnMucmVtb3Zl
KCZoYW5kbGUpOwogfQogCi12b2lkIE1ldGFBbGxvY2F0b3I6OnJlbGVhc2UoY29uc3QgTG9ja0hv
bGRlciYsIE1ldGFBbGxvY2F0b3JIYW5kbGUmIGhhbmRsZSkKK3ZvaWQgTWV0YUFsbG9jYXRvcjo6
cmVsZWFzZShjb25zdCBVbmNoZWNrZWRMb2NrSG9sZGVyJiwgTWV0YUFsbG9jYXRvckhhbmRsZSYg
aGFuZGxlKQogewogICAgIGlmIChoYW5kbGUuc2l6ZUluQnl0ZXMoKSkgewogICAgICAgICBNZW1v
cnlQdHIgc3RhcnQgPSBoYW5kbGUuc3RhcnQoKTsKQEAgLTEyNCw3ICsxMjQsNyBAQCB2b2lkIE1l
dGFBbGxvY2F0b3JIYW5kbGU6OmR1bXAoUHJpbnRTdHJlYW0mIG91dCkgY29uc3QKICAgICBvdXQu
cHJpbnQoUmF3UG9pbnRlcihzdGFydCgpLnVudGFnZ2VkUHRyKCkpLCAiLi4uIiwgUmF3UG9pbnRl
cihlbmQoKS51bnRhZ2dlZFB0cigpKSk7CiB9CiAKLU1ldGFBbGxvY2F0b3I6Ok1ldGFBbGxvY2F0
b3IoTG9jayYgbG9jaywgc2l6ZV90IGFsbG9jYXRpb25HcmFudWxlLCBzaXplX3QgcGFnZVNpemUp
CitNZXRhQWxsb2NhdG9yOjpNZXRhQWxsb2NhdG9yKFVuY2hlY2tlZExvY2smIGxvY2ssIHNpemVf
dCBhbGxvY2F0aW9uR3JhbnVsZSwgc2l6ZV90IHBhZ2VTaXplKQogICAgIDogbV9hbGxvY2F0aW9u
R3JhbnVsZShhbGxvY2F0aW9uR3JhbnVsZSkKICAgICAsIG1fcGFnZVNpemUocGFnZVNpemUpCiAg
ICAgLCBtX2J5dGVzQWxsb2NhdGVkKDApCkBAIC0xNTQsNyArMTU0LDcgQEAgTWV0YUFsbG9jYXRv
cjo6TWV0YUFsbG9jYXRvcihMb2NrJiBsb2NrLCBzaXplX3QgYWxsb2NhdGlvbkdyYW51bGUsIHNp
emVfdCBwYWdlU2kKICAgICBBU1NFUlQoc3RhdGljX2Nhc3Q8c2l6ZV90PigxKSA8PCBtX2xvZ0Fs
bG9jYXRpb25HcmFudWxlID09IG1fYWxsb2NhdGlvbkdyYW51bGUpOwogfQogCi1SZWZQdHI8TWV0
YUFsbG9jYXRvckhhbmRsZT4gTWV0YUFsbG9jYXRvcjo6YWxsb2NhdGUoY29uc3QgTG9ja0hvbGRl
ciYsIHNpemVfdCBzaXplSW5CeXRlcykKK1JlZlB0cjxNZXRhQWxsb2NhdG9ySGFuZGxlPiBNZXRh
QWxsb2NhdG9yOjphbGxvY2F0ZShjb25zdCBVbmNoZWNrZWRMb2NrSG9sZGVyJiwgc2l6ZV90IHNp
emVJbkJ5dGVzKQogewogICAgIGlmICghc2l6ZUluQnl0ZXMpCiAgICAgICAgIHJldHVybiBudWxs
cHRyOwpAQCAtMTk4LDcgKzE5OCw3IEBAIFJlZlB0cjxNZXRhQWxsb2NhdG9ySGFuZGxlPiBNZXRh
QWxsb2NhdG9yOjphbGxvY2F0ZShjb25zdCBMb2NrSG9sZGVyJiwgc2l6ZV90IHNpCiAgICAgcmV0
dXJuIGhhbmRsZTsKIH0KIAotTWV0YUFsbG9jYXRvcjo6U3RhdGlzdGljcyBNZXRhQWxsb2NhdG9y
OjpjdXJyZW50U3RhdGlzdGljcyhjb25zdCBMb2NrSG9sZGVyJikKK01ldGFBbGxvY2F0b3I6OlN0
YXRpc3RpY3MgTWV0YUFsbG9jYXRvcjo6Y3VycmVudFN0YXRpc3RpY3MoY29uc3QgVW5jaGVja2Vk
TG9ja0hvbGRlciYpCiB7CiAgICAgU3RhdGlzdGljcyByZXN1bHQ7CiAgICAgcmVzdWx0LmJ5dGVz
QWxsb2NhdGVkID0gbV9ieXRlc0FsbG9jYXRlZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3Rm
L01ldGFBbGxvY2F0b3IuaCBiL1NvdXJjZS9XVEYvd3RmL01ldGFBbGxvY2F0b3IuaAppbmRleCA1
ZmI3MmMyODBlZGMwNmRlYTg5MzFiNmEzYzA5ZTFmZjdiZjVjOGQxLi5lZGZlYzdjM2I4OTk2Mjlm
MDdkZTdhYTA4ZDBjNjMyMjc2ZjhjNDBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9NZXRh
QWxsb2NhdG9yLmgKKysrIGIvU291cmNlL1dURi93dGYvTWV0YUFsbG9jYXRvci5oCkBAIC02NSw3
ICs2NSw3IEBAIHB1YmxpYzoKICAgICB1c2luZyBGcmVlU3BhY2VQdHIgPSBNZXRhQWxsb2NhdG9y
UHRyPEZyZWVTcGFjZVB0clRhZz47CiAgICAgdXNpbmcgTWVtb3J5UHRyID0gTWV0YUFsbG9jYXRv
ckhhbmRsZTo6TWVtb3J5UHRyOwogCi0gICAgV1RGX0VYUE9SVF9QUklWQVRFIE1ldGFBbGxvY2F0
b3IoTG9jayYsIHNpemVfdCBhbGxvY2F0aW9uR3JhbnVsZSwgc2l6ZV90IHBhZ2VTaXplID0gV1RG
OjpwYWdlU2l6ZSgpKTsKKyAgICBXVEZfRVhQT1JUX1BSSVZBVEUgTWV0YUFsbG9jYXRvcihVbmNo
ZWNrZWRMb2NrJiwgc2l6ZV90IGFsbG9jYXRpb25HcmFudWxlLCBzaXplX3QgcGFnZVNpemUgPSBX
VEY6OnBhZ2VTaXplKCkpOwogICAgIAogICAgIFdURl9FWFBPUlRfUFJJVkFURSB2aXJ0dWFsIH5N
ZXRhQWxsb2NhdG9yKCk7CiAgICAgCkBAIC03NCw3ICs3NCw3IEBAIHB1YmxpYzoKICAgICAgICAg
TG9ja2VyIGxvY2tlciB7IG1fbG9jayB9OwogICAgICAgICByZXR1cm4gYWxsb2NhdGUobG9ja2Vy
LCBzaXplSW5CeXRlcyk7CiAgICAgfQotICAgIFdURl9FWFBPUlRfUFJJVkFURSBSZWZQdHI8TWV0
YUFsbG9jYXRvckhhbmRsZT4gYWxsb2NhdGUoY29uc3QgTG9ja0hvbGRlciYsIHNpemVfdCBzaXpl
SW5CeXRlcyk7CisgICAgV1RGX0VYUE9SVF9QUklWQVRFIFJlZlB0cjxNZXRhQWxsb2NhdG9ySGFu
ZGxlPiBhbGxvY2F0ZShjb25zdCBVbmNoZWNrZWRMb2NrSG9sZGVyJiwgc2l6ZV90IHNpemVJbkJ5
dGVzKTsKIAogICAgIHZvaWQgdHJhY2tBbGxvY2F0aW9ucyhNZXRhQWxsb2NhdG9yVHJhY2tlciog
dHJhY2tlcikKICAgICB7CkBAIC05OCw3ICs5OCw3IEBAIHB1YmxpYzoKICAgICAgICAgTG9ja2Vy
IGxvY2tlciB7IG1fbG9jayB9OwogICAgICAgICByZXR1cm4gY3VycmVudFN0YXRpc3RpY3MobG9j
a2VyKTsKICAgICB9Ci0gICAgV1RGX0VYUE9SVF9QUklWQVRFIFN0YXRpc3RpY3MgY3VycmVudFN0
YXRpc3RpY3MoY29uc3QgTG9ja0hvbGRlciYpOworICAgIFdURl9FWFBPUlRfUFJJVkFURSBTdGF0
aXN0aWNzIGN1cnJlbnRTdGF0aXN0aWNzKGNvbnN0IFVuY2hlY2tlZExvY2tIb2xkZXImKTsKIAog
ICAgIC8vIEFkZCBtb3JlIGZyZWUgc3BhY2UgdG8gdGhlIGFsbG9jYXRvci4gQ2FsbCB0aGlzIGRp
cmVjdGx5IGZyb20KICAgICAvLyB0aGUgY29uc3RydWN0b3IgaWYgeW91IHdpc2ggdG8gb3BlcmF0
ZSB0aGUgYWxsb2NhdG9yIHdpdGhpbiBhCkBAIC0xMzQsNyArMTM0LDcgQEAgcHJvdGVjdGVkOgog
ICAgIC8vIGFzIHRoZXJlIGFyZSBIYW5kbGVzIHRoYXQgcmVmZXIgdG8gaXQuCiAKICAgICAvLyBS
ZWxlYXNlIGEgTWV0YUFsbG9jYXRvckhhbmRsZS4KLSAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdmly
dHVhbCB2b2lkIHJlbGVhc2UoY29uc3QgTG9ja0hvbGRlciYsIE1ldGFBbGxvY2F0b3JIYW5kbGUm
KTsKKyAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdmlydHVhbCB2b2lkIHJlbGVhc2UoY29uc3QgVW5j
aGVja2VkTG9ja0hvbGRlciYsIE1ldGFBbGxvY2F0b3JIYW5kbGUmKTsKIHByaXZhdGU6CiAgICAg
CiAgICAgZnJpZW5kIGNsYXNzIE1ldGFBbGxvY2F0b3JIYW5kbGU7CkBAIC0xOTcsNyArMTk3LDcg
QEAgcHJpdmF0ZToKICAgICBzaXplX3QgbV9ieXRlc1Jlc2VydmVkOwogICAgIHNpemVfdCBtX2J5
dGVzQ29tbWl0dGVkOwogICAgIAotICAgIExvY2smIG1fbG9jazsKKyAgICBVbmNoZWNrZWRMb2Nr
JiBtX2xvY2s7CiAKICAgICBNZXRhQWxsb2NhdG9yVHJhY2tlciogbV90cmFja2VyIHsgbnVsbHB0
ciB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9QYXJhbGxlbEhlbHBlclBvb2wuY3Bw
IGIvU291cmNlL1dURi93dGYvUGFyYWxsZWxIZWxwZXJQb29sLmNwcAppbmRleCA0NDNkNzMxM2U2
YmFkMDI4NDM0OWU2MTA3ZjIwMzk3ZjkzZjQzYThkLi5jNzM0Njg1NTkzMTRkMDk3MDBiZGQ4YTVk
MGE1NTIwMWUwZDUwYzljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9QYXJhbGxlbEhlbHBl
clBvb2wuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL1BhcmFsbGVsSGVscGVyUG9vbC5jcHAKQEAg
LTEyMiw3ICsxMjIsNyBAQCB2b2lkIFBhcmFsbGVsSGVscGVyQ2xpZW50OjpydW5UYXNrKGNvbnN0
IFJlZlB0cjxTaGFyZWRUYXNrPHZvaWQgKCk+PiYgdGFzaykKIH0KIAogUGFyYWxsZWxIZWxwZXJQ
b29sOjpQYXJhbGxlbEhlbHBlclBvb2woQ1N0cmluZyYmIHRocmVhZE5hbWUpCi0gICAgOiBtX2xv
Y2soQm94PExvY2s+OjpjcmVhdGUoKSkKKyAgICA6IG1fbG9jayhCb3g8VW5jaGVja2VkTG9jaz46
OmNyZWF0ZSgpKQogICAgICwgbV93b3JrQXZhaWxhYmxlQ29uZGl0aW9uKEF1dG9tYXRpY1RocmVh
ZENvbmRpdGlvbjo6Y3JlYXRlKCkpCiAgICAgLCBtX3RocmVhZE5hbWUoV1RGTW92ZSh0aHJlYWRO
YW1lKSkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1BhcmFsbGVsSGVscGVyUG9vbC5o
IGIvU291cmNlL1dURi93dGYvUGFyYWxsZWxIZWxwZXJQb29sLmgKaW5kZXggMWU3NTk5YzgzZDY3
MTIxYzdlNmJmZTg3Y2NhOTFlZjZjZTg2ZTQwNy4uNjY0ZmFkZTg1Mzk5M2FiNGIwNTk1NDg3MjIx
NGYzODdjOWE2ZDA1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvUGFyYWxsZWxIZWxwZXJQ
b29sLmgKKysrIGIvU291cmNlL1dURi93dGYvUGFyYWxsZWxIZWxwZXJQb29sLmgKQEAgLTE5OSw5
ICsxOTksOSBAQCBwcml2YXRlOgogICAgIFBhcmFsbGVsSGVscGVyQ2xpZW50KiBnZXRDbGllbnRX
aXRoVGFzayhjb25zdCBBYnN0cmFjdExvY2tlciYpOwogICAgIFBhcmFsbGVsSGVscGVyQ2xpZW50
KiB3YWl0Rm9yQ2xpZW50V2l0aFRhc2soY29uc3QgQWJzdHJhY3RMb2NrZXImKTsKICAgICAKLSAg
ICBCb3g8TG9jaz4gbV9sb2NrOyAvLyBBdXRvbWF0aWNUaHJlYWQgd2FudHMgdGhpcyBpbiBhIGJv
eCBmb3Igc2FmZXR5LgorICAgIEJveDxVbmNoZWNrZWRMb2NrPiBtX2xvY2s7IC8vIEF1dG9tYXRp
Y1RocmVhZCB3YW50cyB0aGlzIGluIGEgYm94IGZvciBzYWZldHkuCiAgICAgUmVmPEF1dG9tYXRp
Y1RocmVhZENvbmRpdGlvbj4gbV93b3JrQXZhaWxhYmxlQ29uZGl0aW9uOwotICAgIENvbmRpdGlv
biBtX3dvcmtDb21wbGV0ZUNvbmRpdGlvbjsKKyAgICBVbmNoZWNrZWRDb25kaXRpb24gbV93b3Jr
Q29tcGxldGVDb25kaXRpb247CiAKICAgICBXZWFrUmFuZG9tIG1fcmFuZG9tOwogICAgIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dURi93dGYvUmVjdXJzaXZlTG9ja0FkYXB0ZXIuaCBiL1NvdXJjZS9X
VEYvd3RmL1JlY3Vyc2l2ZUxvY2tBZGFwdGVyLmgKaW5kZXggMWVlMTJkNDE5NDcyNmQyMzI0OTJk
NjU0NDQxNmVmNjYxNDhiZDY2YS4uY2E3YmM0NTU0NDdiMTUyMjA3Y2UxYWI3ZjBjYjQ0ZDRlZDE4
ZThkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvUmVjdXJzaXZlTG9ja0FkYXB0ZXIuaAor
KysgYi9Tb3VyY2UvV1RGL3d0Zi9SZWN1cnNpdmVMb2NrQWRhcHRlci5oCkBAIC04OSw3ICs4OSw3
IEBAIHByaXZhdGU6CiAgICAgTG9ja1R5cGUgbV9sb2NrOwogfTsKIAotdXNpbmcgUmVjdXJzaXZl
TG9jayA9IFJlY3Vyc2l2ZUxvY2tBZGFwdGVyPExvY2s+OwordXNpbmcgUmVjdXJzaXZlTG9jayA9
IFJlY3Vyc2l2ZUxvY2tBZGFwdGVyPFVuY2hlY2tlZExvY2s+OwogCiB9IC8vIG5hbWVzcGFjZSBX
VEYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvV29ya2VyUG9vbC5jcHAgYi9Tb3VyY2Uv
V1RGL3d0Zi9Xb3JrZXJQb29sLmNwcAppbmRleCA4YTljMWZkYTc0YTczYjJjNWFiNWNkYTJkOGU0
NjA5YWJlODBhMzBiLi4yMTlkYmYxNTFkNjYzN2M2N2EzZTQ3NmZkMTNlM2QxYjg4YjQzNTdhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9Xb3JrZXJQb29sLmNwcAorKysgYi9Tb3VyY2UvV1RG
L3d0Zi9Xb3JrZXJQb29sLmNwcApAQCAtMzIsNyArMzIsNyBAQCBjbGFzcyBXb3JrZXJQb29sOjpX
b3JrZXIgZmluYWwgOiBwdWJsaWMgQXV0b21hdGljVGhyZWFkIHsKIHB1YmxpYzoKICAgICBmcmll
bmQgY2xhc3MgV29ya2VyUG9vbDsKIAotICAgIFdvcmtlcihjb25zdCBBYnN0cmFjdExvY2tlciYg
bG9ja2VyLCBXb3JrZXJQb29sJiBwb29sLCBCb3g8TG9jaz4gbG9jaywgUmVmPEF1dG9tYXRpY1Ro
cmVhZENvbmRpdGlvbj4mJiBjb25kaXRpb24sIFNlY29uZHMgdGltZW91dCkKKyAgICBXb3JrZXIo
Y29uc3QgQWJzdHJhY3RMb2NrZXImIGxvY2tlciwgV29ya2VyUG9vbCYgcG9vbCwgQm94PFVuY2hl
Y2tlZExvY2s+IGxvY2ssIFJlZjxBdXRvbWF0aWNUaHJlYWRDb25kaXRpb24+JiYgY29uZGl0aW9u
LCBTZWNvbmRzIHRpbWVvdXQpCiAgICAgICAgIDogQXV0b21hdGljVGhyZWFkKGxvY2tlciwgbG9j
aywgV1RGTW92ZShjb25kaXRpb24pLCB0aW1lb3V0KQogICAgICAgICAsIG1fcG9vbChwb29sKQog
ICAgIHsKQEAgLTgyLDcgKzgyLDcgQEAgcHJpdmF0ZToKIH07CiAKIFdvcmtlclBvb2w6Oldvcmtl
clBvb2woQVNDSUlMaXRlcmFsIG5hbWUsIHVuc2lnbmVkIG51bWJlck9mV29ya2VycywgU2Vjb25k
cyB0aW1lb3V0KQotICAgIDogbV9sb2NrKEJveDxMb2NrPjo6Y3JlYXRlKCkpCisgICAgOiBtX2xv
Y2soQm94PFVuY2hlY2tlZExvY2s+OjpjcmVhdGUoKSkKICAgICAsIG1fY29uZGl0aW9uKEF1dG9t
YXRpY1RocmVhZENvbmRpdGlvbjo6Y3JlYXRlKCkpCiAgICAgLCBtX3RpbWVvdXQodGltZW91dCkK
ICAgICAsIG1fbmFtZShuYW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvV29ya2VyUG9v
bC5oIGIvU291cmNlL1dURi93dGYvV29ya2VyUG9vbC5oCmluZGV4IDYyMzVlNzMxZWQ3NWI4MDEy
NTA5NTM1OTA2OGIwOGQ0YzFkY2ZlYzIuLjdhNDA0MmI0NmIxNjg4MDIzZjFjZWY5ZTY0MmFiMmM0
OGM4ODkzZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1dvcmtlclBvb2wuaAorKysgYi9T
b3VyY2UvV1RGL3d0Zi9Xb3JrZXJQb29sLmgKQEAgLTU3LDcgKzU3LDcgQEAgcHJpdmF0ZToKIAog
ICAgIGJvb2wgc2hvdWxkU2xlZXAoY29uc3QgQWJzdHJhY3RMb2NrZXImKTsKIAotICAgIEJveDxM
b2NrPiBtX2xvY2s7CisgICAgQm94PFVuY2hlY2tlZExvY2s+IG1fbG9jazsKICAgICBSZWY8QXV0
b21hdGljVGhyZWFkQ29uZGl0aW9uPiBtX2NvbmRpdGlvbjsKICAgICBTZWNvbmRzIG1fdGltZW91
dDsKICAgICBNb25vdG9uaWNUaW1lIG1fbGFzdFRpbWVvdXRUaW1lIHsgTW9ub3RvbmljVGltZTo6
bmFuKCkgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvQXRvbVN0cmluZ0ltcGwu
Y3BwIGIvU291cmNlL1dURi93dGYvdGV4dC9BdG9tU3RyaW5nSW1wbC5jcHAKaW5kZXggYTAyOGU0
MmEzNDY0MTk2ZmRhODc0M2Y3MTI3ZDhiNzNiM2QxYzI4Yy4uMDA5ZTJhMThmZmQyYTRhNDc0YTFl
ZGRmNTU4ZjZlY2FiODI3OTM0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvdGV4dC9BdG9t
U3RyaW5nSW1wbC5jcHAKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9BdG9tU3RyaW5nSW1wbC5j
cHAKQEAgLTQ1LDcgKzQ1LDcgQEAgY2xhc3MgQXRvbVN0cmluZ1RhYmxlTG9ja2VyIDogcHVibGlj
IExvY2tIb2xkZXIgewogICAgIHN0YXRpYyBMb2NrIHNfc3RyaW5nVGFibGVMb2NrOwogcHVibGlj
OgogICAgIEF0b21TdHJpbmdUYWJsZUxvY2tlcigpCi0gICAgICAgIDogTG9ja0hvbGRlcigmc19z
dHJpbmdUYWJsZUxvY2spCisgICAgICAgIDogTG9ja0hvbGRlcihzX3N0cmluZ1RhYmxlTG9jaykK
ICAgICB7CiAgICAgfQogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL3NlcnZlci9JREJTZXJ2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvc2VydmVyL0lEQlNlcnZlci5jcHAKaW5kZXggMWVkZWVkMmEzZmE2MjJjNTgyMjRiMDY4
MzBhM2FiNDM0NGMwNDZjYS4uNDlkODc2NjJmY2IzYTVhZTIzZjJhN2FiNTI3ZTY1NTdjMzI2ZWEz
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lE
QlNlcnZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVy
L0lEQlNlcnZlci5jcHAKQEAgLTczMyw3ICs3MzMsNyBAQCB2b2lkIElEQlNlcnZlcjo6cmVuYW1l
T3JpZ2luKGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgb2xkT3JpZ2luLCBjb25z
dAogICAgICAgICBGaWxlU3lzdGVtOjptb3ZlRmlsZShvbGRPcmlnaW5QYXRoLCBuZXdPcmlnaW5Q
YXRoKTsKIH0KIAotU3RvcmFnZVF1b3RhTWFuYWdlcjo6RGVjaXNpb24gSURCU2VydmVyOjpyZXF1
ZXN0U3BhY2UoY29uc3QgQ2xpZW50T3JpZ2luJiBvcmlnaW4sIHVpbnQ2NF90IHRhc2tTaXplKQor
U3RvcmFnZVF1b3RhTWFuYWdlcjo6RGVjaXNpb24gSURCU2VydmVyOjpyZXF1ZXN0U3BhY2UoY29u
c3QgQ2xpZW50T3JpZ2luJiBvcmlnaW4sIHVpbnQ2NF90IHRhc2tTaXplKSBXVEZfSUdOT1JFU19U
SFJFQURfU0FGRVRZX0FOQUxZU0lTCiB7CiAgICAgQVNTRVJUKCFpc01haW5UaHJlYWQoKSk7CiAg
ICAgQVNTRVJUKG1fbG9jay5pc0hlbGQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1ZGlvL01lZGlhRWxlbWVudEF1ZGlvU291cmNlTm9kZS5oIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdWRpby9NZWRpYUVsZW1lbnRBdWRpb1NvdXJjZU5vZGUuaAppbmRl
eCA3NDM5YTZkYjI4MmZiYjk0ZjQxMWU0NzE1YWRhMTU5OGNiMDRiYzM0Li4wNmZlNTFkOTQ0ZDBi
OGU5YzhkYjYxNDY3ZDFhMTg2YzVkZGY0MTRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1ZGlvL01lZGlhRWxlbWVudEF1ZGlvU291cmNlTm9kZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vTWVkaWFFbGVtZW50QXVkaW9Tb3VyY2VOb2RlLmgK
QEAgLTU0LDcgKzU0LDcgQEAgcHVibGljOgogICAgIC8vIEF1ZGlvU291cmNlUHJvdmlkZXJDbGll
bnQKICAgICB2b2lkIHNldEZvcm1hdChzaXplX3QgbnVtYmVyT2ZDaGFubmVscywgZmxvYXQgc2Ft
cGxlUmF0ZSkgb3ZlcnJpZGU7CiAKLSAgICBMb2NrJiBwcm9jZXNzTG9jaygpIHsgcmV0dXJuIG1f
cHJvY2Vzc0xvY2s7IH0KKyAgICBVbmNoZWNrZWRMb2NrJiBwcm9jZXNzTG9jaygpIHsgcmV0dXJu
IG1fcHJvY2Vzc0xvY2s7IH0KIAogcHJpdmF0ZToKICAgICBNZWRpYUVsZW1lbnRBdWRpb1NvdXJj
ZU5vZGUoQmFzZUF1ZGlvQ29udGV4dCYsIFJlZjxIVE1MTWVkaWFFbGVtZW50PiYmKTsKQEAgLTcw
LDcgKzcwLDcgQEAgcHJpdmF0ZToKICAgICBib29sIHdvdWxkVGFpbnRPcmlnaW4oKTsKIAogICAg
IFJlZjxIVE1MTWVkaWFFbGVtZW50PiBtX21lZGlhRWxlbWVudDsKLSAgICBMb2NrIG1fcHJvY2Vz
c0xvY2s7CisgICAgVW5jaGVja2VkTG9jayBtX3Byb2Nlc3NMb2NrOwogCiAgICAgdW5zaWduZWQg
bV9zb3VyY2VOdW1iZXJPZkNoYW5uZWxzIHsgMCB9OwogICAgIGRvdWJsZSBtX3NvdXJjZVNhbXBs
ZVJhdGUgeyAwIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFi
YXNlL0RhdGFiYXNlVHJhY2tlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFi
YXNlL0RhdGFiYXNlVHJhY2tlci5jcHAKaW5kZXggNDViMjdmOWQzNTE5YzExOTkyNDc2NmVjNGMy
N2U0MDEzNDI5MjA0OS4uYTlmMjgwYjljNTlmNDhiZGIyOGRhNzMwMTUzNzY0M2U5NGRkNjU2MCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRy
YWNrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJh
c2VUcmFja2VyLmNwcApAQCAtMTI4NSw4ICsxMjg1LDggQEAgYm9vbCBEYXRhYmFzZVRyYWNrZXI6
OmRlbGV0ZURhdGFiYXNlRmlsZUlmRW1wdHkoY29uc3QgU3RyaW5nJiBwYXRoKQogICAgIHJldHVy
biBTUUxpdGVGaWxlU3lzdGVtOjpkZWxldGVEYXRhYmFzZUZpbGUocGF0aCk7CiB9CiAKLXN0YXRp
YyBMb2NrIG9wZW5EYXRhYmFzZUxvY2s7Ci1Mb2NrJiBEYXRhYmFzZVRyYWNrZXI6Om9wZW5EYXRh
YmFzZU11dGV4KCkKK3N0YXRpYyBVbmNoZWNrZWRMb2NrIG9wZW5EYXRhYmFzZUxvY2s7CitVbmNo
ZWNrZWRMb2NrJiBEYXRhYmFzZVRyYWNrZXI6Om9wZW5EYXRhYmFzZU11dGV4KCkKIHsKICAgICBy
ZXR1cm4gb3BlbkRhdGFiYXNlTG9jazsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VUcmFja2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlVHJhY2tlci5oCmluZGV4IGRkOWM1ZDg3NzZiZDFkYzM4
OTY2ZTc1ZjU0ZjEzMWFkZDc2NjhiMzQuLmJkY2Y2ZDA3ZGQ4YTMzNjVkYzRhZmViOTQzZmNiOGI1
YWNlOTRmNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2Uv
RGF0YWJhc2VUcmFja2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFz
ZS9EYXRhYmFzZVRyYWNrZXIuaApAQCAtMTA0LDcgKzEwNCw3IEBAIHB1YmxpYzoKICAgICAvLyBN
b2JpbGVTYWZhcmkgd2lsbCBncmFiIHRoaXMgbXV0ZXggb24gdGhlIG1haW4gdGhyZWFkIGJlZm9y
ZSBkaXNwYXRjaGluZyB0aGUgdGFzayB0byAKICAgICAvLyBjbGVhbiB1cCB6ZXJvIGJ5dGUgZGF0
YWJhc2UgZmlsZXMuICBBbnkgb3BlcmF0aW9ucyB0byBvcGVuIG5ldyBkYXRhYmFzZSB3aWxsIGhh
dmUgdG8KICAgICAvLyB3YWl0IGZvciB0aGF0IHRhc2sgdG8gZmluaXNoIGJ5IHdhaXRpbmcgb24g
dGhpcyBtdXRleC4KLSAgICBzdGF0aWMgTG9jayYgb3BlbkRhdGFiYXNlTXV0ZXgoKTsKKyAgICBz
dGF0aWMgVW5jaGVja2VkTG9jayYgb3BlbkRhdGFiYXNlTXV0ZXgoKTsKICAgICAKICAgICBXRUJD
T1JFX0VYUE9SVCBzdGF0aWMgdm9pZCBlbXB0eURhdGFiYXNlRmlsZXNSZW1vdmFsVGFza1dpbGxC
ZVNjaGVkdWxlZCgpOwogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyB2b2lkIGVtcHR5RGF0YWJh
c2VGaWxlc1JlbW92YWxUYXNrRGlkRmluaXNoKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL09yaWdpbkxvY2suY3BwIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJkYXRhYmFzZS9PcmlnaW5Mb2NrLmNwcAppbmRleCBhMjFiY2RiNzgzODZjODEwZWM1
OTk0MWMyNzVmNGVmYmFmZjIzZmIzLi43NTNlNGU1YWM4NjYyODNhNGM3M2Y0NGFmOWFhNGVjZGY1
ZDE1YWVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL09y
aWdpbkxvY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvT3Jp
Z2luTG9jay5jcHAKQEAgLTQzLDcgKzQzLDcgQEAgT3JpZ2luTG9jazo6T3JpZ2luTG9jayhTdHJp
bmcgb3JpZ2luUGF0aCkKIAogT3JpZ2luTG9jazo6fk9yaWdpbkxvY2soKSA9IGRlZmF1bHQ7CiAK
LXZvaWQgT3JpZ2luTG9jazo6bG9jaygpCit2b2lkIE9yaWdpbkxvY2s6OmxvY2soKSBXVEZfSUdO
T1JFU19USFJFQURfU0FGRVRZX0FOQUxZU0lTCiB7CiAgICAgbV9tdXRleC5sb2NrKCk7CiAKQEAg
LTU5LDcgKzU5LDcgQEAgdm9pZCBPcmlnaW5Mb2NrOjpsb2NrKCkKICNlbmRpZgogfQogCi12b2lk
IE9yaWdpbkxvY2s6OnVubG9jaygpCit2b2lkIE9yaWdpbkxvY2s6OnVubG9jaygpIFdURl9JR05P
UkVTX1RIUkVBRF9TQUZFVFlfQU5BTFlTSVMKIHsKICNpZiBVU0UoRklMRV9MT0NLKQogICAgIC8v
IElmIHRoZSBmaWxlIGRlc2NyaXB0b3Igd2FzIHVuaW5pdGlhbGl6ZWQsIHRoZW4gdGhhdCBtZWFu
cyB0aGUgZGlyZWN0b3J5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0RPTUdsb2JhbE9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01HbG9i
YWxPYmplY3QuaAppbmRleCAxNjRjNzIzODY0NmEwMGEzZDA1ZWExYmE0MWM5NzA2MDU1ZDQxNGU0
Li45NTZkNTFhZDQ4MGQ0ZGQyYzBhODkzOGRlYWY0NGRhYWJhYTc1NmRmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9iamVjdC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0LmgKQEAgLTU4LDcgKzU4LDcg
QEAgcHVibGljOgogICAgIHN0YXRpYyB2b2lkIGRlc3Ryb3koSlNDOjpKU0NlbGwqKTsKIAogcHVi
bGljOgotICAgIExvY2smIGdjTG9jaygpIHsgcmV0dXJuIG1fZ2NMb2NrOyB9CisgICAgVW5jaGVj
a2VkTG9jayYgZ2NMb2NrKCkgeyByZXR1cm4gbV9nY0xvY2s7IH0KIAogICAgIEpTRE9NU3RydWN0
dXJlTWFwJiBzdHJ1Y3R1cmVzKGNvbnN0IEFic3RyYWN0TG9ja2VyJikgeyByZXR1cm4gbV9zdHJ1
Y3R1cmVzOyB9CiAgICAgSlNET01Db25zdHJ1Y3Rvck1hcCYgY29uc3RydWN0b3JzKGNvbnN0IEFi
c3RyYWN0TG9ja2VyJikgeyByZXR1cm4gbV9jb25zdHJ1Y3RvcnM7IH0KQEAgLTEyMSw3ICsxMjEs
NyBAQCBwcm90ZWN0ZWQ6CiAKICAgICBSZWY8RE9NV3JhcHBlcldvcmxkPiBtX3dvcmxkOwogICAg
IHVpbnQ4X3QgbV93b3JsZElzTm9ybWFsOwotICAgIExvY2sgbV9nY0xvY2s7CisgICAgVW5jaGVj
a2VkTG9jayBtX2djTG9jazsKICAgICBKU0M6OldyaXRlQmFycmllcjxKU0M6OkpTUHJveHk+IG1f
cHJveHk7CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKaW5kZXggN2VhZTNhMTFhZWNmYjJhYWQ5
OWZmMTkyYjQ1ODdkOTY3NWNmZGZiNy4uYTJlNWNhM2YxMjE2ODM4MDk4MzI0MGZmYmExZTRmZGE3
MDMyNWY0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcApAQCAtMjIxMSw3ICsyMjExLDcgQEAgc3RhdGljIEV2
ZW50VGFyZ2V0RGF0YU1hcCYgZXZlbnRUYXJnZXREYXRhTWFwKCkKICAgICByZXR1cm4gbWFwOwog
fQogCi1zdGF0aWMgTG9jayBzX2V2ZW50VGFyZ2V0RGF0YU1hcExvY2s7CitzdGF0aWMgVW5jaGVj
a2VkTG9jayBzX2V2ZW50VGFyZ2V0RGF0YU1hcExvY2s7CiAKIEV2ZW50VGFyZ2V0RGF0YSogTm9k
ZTo6ZXZlbnRUYXJnZXREYXRhKCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTE1lZGlhRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1l
bnQuY3BwCmluZGV4IDliZDQwMDEwYzM1YWEwZTk3YjZlMWRhZTQ4YjNlMTBkNGQ5NWQ2N2YuLjFi
Y2RjYTFhNzJjODAwMTVjNDQ4MDJmYWFmNDU2YTQ2ZDg0ZTNjNWMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcApAQCAtNjYyNiw3ICs2NjI2LDcgQEAgdm9pZCBIVE1M
TWVkaWFFbGVtZW50OjpjcmVhdGVNZWRpYVBsYXllcigpCiAKICNpZiBFTkFCTEUoV0VCX0FVRElP
KQogICAgIGF1dG8gcHJvdGVjdGVkQXVkaW9Tb3VyY2VOb2RlID0gbWFrZVJlZlB0cihtX2F1ZGlv
U291cmNlTm9kZSk7Ci0gICAgTG9ja2VyPExvY2s+IGF1ZGlvU291cmNlTm9kZUxvY2tlcihtX2F1
ZGlvU291cmNlTm9kZSA/ICZtX2F1ZGlvU291cmNlTm9kZS0+cHJvY2Vzc0xvY2soKSA6IG51bGxw
dHIpOworICAgIExvY2tlciBhdWRpb1NvdXJjZU5vZGVMb2NrZXIobV9hdWRpb1NvdXJjZU5vZGUg
PyAmbV9hdWRpb1NvdXJjZU5vZGUtPnByb2Nlc3NMb2NrKCkgOiBudWxscHRyKTsKICNlbmRpZgog
CiAjaWYgRU5BQkxFKE1FRElBX1NPVVJDRSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL1dlYkdMQ29udGV4dEdyb3VwLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2Fu
dmFzL1dlYkdMQ29udGV4dEdyb3VwLmNwcAppbmRleCBhYmQ4ZjI3MzY4MzkxZTNlMWQ3ZmNmOWQz
N2I5ZDc3OTZhZjMzNjFiLi4xNGMyYTA4OTk3ZDkwMWRhMTQwYTRiMDM3ODQ4ZTc0MTQ0M2Y2NTI1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTENvbnRleHRHcm91
cC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xDb250ZXh0R3JvdXAu
Y3BwCkBAIC01NSw3ICs1NSw3IEBAIEdyYXBoaWNzQ29udGV4dEdMJiBXZWJHTENvbnRleHRHcm91
cDo6Z2V0QUdyYXBoaWNzQ29udGV4dEdMKCkKICAgICByZXR1cm4gKigqbV9jb250ZXh0cy5iZWdp
bigpKS0+Z3JhcGhpY3NDb250ZXh0R0woKTsKIH0KIAotV1RGOjpMb2NrJiBXZWJHTENvbnRleHRH
cm91cDo6b2JqZWN0R3JhcGhMb2NrRm9yQUNvbnRleHQoKQorVW5jaGVja2VkTG9jayYgV2ViR0xD
b250ZXh0R3JvdXA6Om9iamVjdEdyYXBoTG9ja0ZvckFDb250ZXh0KCkKIHsKICAgICBBU1NFUlQo
IW1fY29udGV4dHMuaXNFbXB0eSgpKTsKICAgICAvLyBTaW5jZSB0aGUgV0VCR0xfc2hhcmVkX29i
amVjdHMgZXh0ZW5zaW9uIG5ldmVyIHNoaXBwZWQsIGFuZCBpcwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xDb250ZXh0R3JvdXAuaCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL1dlYkdMQ29udGV4dEdyb3VwLmgKaW5kZXggODU1Y2U3MjM5ODZmZTA3NzU5
OGYyNDY4MWFlODA4NmM4MWVkZmEwMy4uYjZhZmUwYWY5N2ViZGZmYWMxYTFjZDAwNDNmZmJmNzlj
Y2QxNzc4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xDb250
ZXh0R3JvdXAuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTENvbnRleHRH
cm91cC5oCkBAIC00NSw3ICs0NSw3IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgaGFzQUNvbnRleHQo
KSBjb25zdDsKICAgICBHcmFwaGljc0NvbnRleHRHTCYgZ2V0QUdyYXBoaWNzQ29udGV4dEdMKCk7
Ci0gICAgTG9jayYgb2JqZWN0R3JhcGhMb2NrRm9yQUNvbnRleHQoKTsKKyAgICBVbmNoZWNrZWRM
b2NrJiBvYmplY3RHcmFwaExvY2tGb3JBQ29udGV4dCgpOwogCiAgICAgdm9pZCBsb3NlQ29udGV4
dEdyb3VwKFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6Okxvc3RDb250ZXh0TW9kZSk7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMQ29udGV4dE9iamVjdC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTENvbnRleHRPYmplY3QuY3BwCmlu
ZGV4IDdjOTE5ZjJiNjY1NmI2N2IxNmNhNjM0MGIwYjJhNGI2NDVkMDQ2M2IuLjI0MzU0ZDA1Yjgx
YmM4NTIyYmU3N2QzYmI4ZjRjY2U0N2ViMzYzZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL1dlYkdMQ29udGV4dE9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvV2ViR0xDb250ZXh0T2JqZWN0LmNwcApAQCAtNTQsNyArNTQsNyBAQCB2b2lk
IFdlYkdMQ29udGV4dE9iamVjdDo6ZGV0YWNoQ29udGV4dChjb25zdCBBYnN0cmFjdExvY2tlciYg
bG9ja2VyKQogICAgIH0KIH0KIAotV1RGOjpMb2NrJiBXZWJHTENvbnRleHRPYmplY3Q6Om9iamVj
dEdyYXBoTG9ja0ZvckNvbnRleHQoKQorVW5jaGVja2VkTG9jayYgV2ViR0xDb250ZXh0T2JqZWN0
OjpvYmplY3RHcmFwaExvY2tGb3JDb250ZXh0KCkKIHsKICAgICAvLyBTaG91bGQgbm90IGNhbGwg
dGhpcyBpZiB0aGUgb2JqZWN0IG9yIGNvbnRleHQgaGFzIGJlZW4gZGVsZXRlZC4KICAgICBBU1NF
UlQobV9jb250ZXh0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dl
YkdMQ29udGV4dE9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xDb250
ZXh0T2JqZWN0LmgKaW5kZXggZGJmZGQ2YmZjMGVmNDRlYjg4MmViOWM1OWIwMDhkMjk4MTEyNjQ5
NS4uMGVhNzk5ZmZiYjNhOGFhZTAxMTNkOWE1NWNlM2U2M2JiYTJjOGVhZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xDb250ZXh0T2JqZWN0LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xDb250ZXh0T2JqZWN0LmgKQEAgLTQ5LDcgKzQ5
LDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBkZXRhY2hDb250ZXh0KGNvbnN0IFdURjo6QWJzdHJh
Y3RMb2NrZXImKTsKIAotICAgIFdURjo6TG9jayYgb2JqZWN0R3JhcGhMb2NrRm9yQ29udGV4dCgp
IG92ZXJyaWRlOworICAgIFVuY2hlY2tlZExvY2smIG9iamVjdEdyYXBoTG9ja0ZvckNvbnRleHQo
KSBvdmVycmlkZTsKIAogcHJvdGVjdGVkOgogICAgIFdlYkdMQ29udGV4dE9iamVjdChXZWJHTFJl
bmRlcmluZ0NvbnRleHRCYXNlJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2Nh
bnZhcy9XZWJHTE9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xPYmpl
Y3QuaAppbmRleCAwMGNkOGYwYzJiN2IyMWJiZjk3MmFmYTdjZmM1ZWU4NWUzZTA2MGRkLi5lNDg1
ZDcyMzM4NGJlYjE4ODdmYjI5NmI3NmMwMmJmMmY1MWU0OGMzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTE9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL1dlYkdMT2JqZWN0LmgKQEAgLTI4LDExICsyOCwxMSBAQAogI2lmIEVOQUJMRShX
RUJHTCkKIAogI2luY2x1ZGUgIkdyYXBoaWNzVHlwZXNHTC5oIgorI2luY2x1ZGUgPHd0Zi9Mb2Nr
Lmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KIAogbmFtZXNwYWNlIFdURiB7CiBjbGFz
cyBBYnN0cmFjdExvY2tlcjsKLWNsYXNzIExvY2s7CiB9CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
QEAgLTcxLDcgKzcxLDcgQEAgcHVibGljOgogICAgIC8vIFdFQkdMX3NoYXJlZF9vYmplY3RzIGV4
dGVuc2lvbiBzcGVjaWZpY2F0aW9uIG5ldmVyIHNoaXBwZWQgKGFuZAogICAgIC8vIGlzIHVubGlr
ZWx5IHRvKSwgdGhpcyBiYXNpY2FsbHkgcmV0dXJucyB0aGUgc2FtZSByZXN1bHQgZm9yCiAgICAg
Ly8gYm90aCBjb250ZXh0IG9iamVjdHMgYW5kIHNoYXJlZCBvYmplY3RzLgotICAgIHZpcnR1YWwg
V1RGOjpMb2NrJiBvYmplY3RHcmFwaExvY2tGb3JDb250ZXh0KCkgPSAwOworICAgIHZpcnR1YWwg
VW5jaGVja2VkTG9jayYgb2JqZWN0R3JhcGhMb2NrRm9yQ29udGV4dCgpID0gMDsKIAogcHJvdGVj
dGVkOgogICAgIFdlYkdMT2JqZWN0KCkgPSBkZWZhdWx0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcAppbmRleCA1
MTU1NDg4ZDdlZDFkYTk1MGQ1YWY2NzhkNDZkMjM0MGI4YmE5Y2VlLi4zOWMzMmU4NDQ5YTZiOGQ0
MGZhYmFmMDRmZTkwNmMwYzU0MjBiMGM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcApAQCAtNzk5MCw3ICs3
OTkwLDcgQEAgdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjphZGRNZW1iZXJzVG9PcGFx
dWVSb290cyhKU0M6OkFic3RyYWN0U2xvdFZpc2l0b3IKICAgICAvLyByb290cyBmb3IgZXh0ZW5z
aW9ucy4KIH0KIAotTG9jayYgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6b2JqZWN0R3JhcGhM
b2NrKCkKK1VuY2hlY2tlZExvY2smIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6Om9iamVjdEdy
YXBoTG9jaygpCiB7CiAgICAgcmV0dXJuIG1fb2JqZWN0R3JhcGhMb2NrOwogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5o
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5o
CmluZGV4IGZhZThhNTM5ZWM4OTE0MzkyOWVhYjQ2ZmNhMzNjMzEyNmEzYzE2OWYuLmQ3Y2JlZWQz
MmNiYzBiNzk3YzEwNjhmZDU5N2QxM2VkOGU0YzE5NzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmgKQEAgLTQyNiw3
ICs0MjYsNyBAQCBwdWJsaWM6CiAgICAgLy8gY3VycmVudGx5IGxhdGNoZWQgaW50byB0aGUgY29u
dGV4dCAtIHdpdGhvdXQgdHJhdmVyc2luZyBhbGwgb2YKICAgICAvLyB0aGUgbGF0Y2hlZCBvYmpl
Y3RzIHRvIGZpbmQgdGhlIGN1cnJlbnQgb25lLCB3aGljaCB3b3VsZCBiZQogICAgIC8vIHByb2hp
Yml0aXZlbHkgZXhwZW5zaXZlLgotICAgIExvY2smIG9iamVjdEdyYXBoTG9jaygpOworICAgIFVu
Y2hlY2tlZExvY2smIG9iamVjdEdyYXBoTG9jaygpOwogCiBwcm90ZWN0ZWQ6CiAgICAgV2ViR0xS
ZW5kZXJpbmdDb250ZXh0QmFzZShDYW52YXNCYXNlJiwgV2ViR0xDb250ZXh0QXR0cmlidXRlcyk7
CkBAIC01NDAsNyArNTQwLDcgQEAgcHJvdGVjdGVkOgogCiAgICAgUmVmUHRyPEdyYXBoaWNzQ29u
dGV4dEdMPiBtX2NvbnRleHQ7CiAgICAgUmVmUHRyPFdlYkdMQ29udGV4dEdyb3VwPiBtX2NvbnRl
eHRHcm91cDsKLSAgICBMb2NrIG1fb2JqZWN0R3JhcGhMb2NrOworICAgIFVuY2hlY2tlZExvY2sg
bV9vYmplY3RHcmFwaExvY2s7CiAKICAgICBib29sIG1fcmVzdG9yZUFsbG93ZWQgeyBmYWxzZSB9
OwogICAgIFN1c3BlbmRhYmxlVGltZXIgbV9yZXN0b3JlVGltZXI7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFNoYXJlZE9iamVjdC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL2NhbnZhcy9XZWJHTFNoYXJlZE9iamVjdC5jcHAKaW5kZXggOTM2Yzk4MWM5OTI5
MGQ4ZTdjZWY5OGIxM2I1NjkzY2JlYjIzNzk4Yy4uMGFiOGNiMjQxYTFiM2YzODhmZWYzODI5OTc2
Y2VjZjZkNDg3ZDM3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2Vi
R0xTaGFyZWRPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdM
U2hhcmVkT2JqZWN0LmNwcApAQCAtODIsNyArODIsNyBAQCBHcmFwaGljc0NvbnRleHRHTCogV2Vi
R0xTaGFyZWRPYmplY3Q6OmdldEFHcmFwaGljc0NvbnRleHRHTCgpIGNvbnN0CiAgICAgcmV0dXJu
IG1fY29udGV4dEdyb3VwID8gJm1fY29udGV4dEdyb3VwLT5nZXRBR3JhcGhpY3NDb250ZXh0R0wo
KSA6IG51bGxwdHI7CiB9CiAKLVdURjo6TG9jayYgV2ViR0xTaGFyZWRPYmplY3Q6Om9iamVjdEdy
YXBoTG9ja0ZvckNvbnRleHQoKQorVW5jaGVja2VkTG9jayYgV2ViR0xTaGFyZWRPYmplY3Q6Om9i
amVjdEdyYXBoTG9ja0ZvckNvbnRleHQoKQogewogICAgIC8vIFNob3VsZCBub3QgY2FsbCB0aGlz
IGlmIHRoZSBvYmplY3Qgb3IgY29udGV4dCBoYXMgYmVlbiBkZWxldGVkLgogICAgIEFTU0VSVCht
X2NvbnRleHRHcm91cCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9X
ZWJHTFNoYXJlZE9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xTaGFy
ZWRPYmplY3QuaAppbmRleCA1ZDEzYWZhMzg0NmFhMjE1MzBjMGFiZDUzOTBhYTFlNzk4ZTllMWQw
Li5mNTNkYjE5YjA2OTIyOTA2YmRjY2IxNmMzOTM3Mzg2MTVmMTc2NTc5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFNoYXJlZE9iamVjdC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMU2hhcmVkT2JqZWN0LmgKQEAgLTU5LDcgKzU5LDcg
QEAgcHVibGljOgogCiAgICAgdm9pZCBkZXRhY2hDb250ZXh0R3JvdXBXaXRob3V0RGVsZXRpbmdP
YmplY3QoKTsKIAotICAgIFdURjo6TG9jayYgb2JqZWN0R3JhcGhMb2NrRm9yQ29udGV4dCgpIG92
ZXJyaWRlOworICAgIFVuY2hlY2tlZExvY2smIG9iamVjdEdyYXBoTG9ja0ZvckNvbnRleHQoKSBv
dmVycmlkZTsKIAogcHJvdGVjdGVkOgogICAgIFdlYkdMU2hhcmVkT2JqZWN0KFdlYkdMUmVuZGVy
aW5nQ29udGV4dEJhc2UmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xs
aW5nL21hYy9TY3JvbGxpbmdUcmVlTWFjLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGlu
Zy9tYWMvU2Nyb2xsaW5nVHJlZU1hYy5oCmluZGV4IGI0MmJmNDExNDU0ZmEwMzRhN2RhYTg2YzMx
NTNhYTFkNjZhOTgzY2UuLjg4ZGFkMWVkZDFiOTA1MjBkMWYwY2I2Yjc3MDZmZWQwMjI0MDY3YWUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdU
cmVlTWFjLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGlu
Z1RyZWVNYWMuaApAQCAtNTUsOCArNTUsOCBAQCBwcml2YXRlOgogICAgIHZvaWQgZGVmZXJXaGVl
bEV2ZW50VGVzdENvbXBsZXRpb25Gb3JSZWFzb24oV2hlZWxFdmVudFRlc3RNb25pdG9yOjpTY3Jv
bGxhYmxlQXJlYUlkZW50aWZpZXIsIFdoZWVsRXZlbnRUZXN0TW9uaXRvcjo6RGVmZXJSZWFzb24p
IGZpbmFsOwogICAgIHZvaWQgcmVtb3ZlV2hlZWxFdmVudFRlc3RDb21wbGV0aW9uRGVmZXJyYWxG
b3JSZWFzb24oV2hlZWxFdmVudFRlc3RNb25pdG9yOjpTY3JvbGxhYmxlQXJlYUlkZW50aWZpZXIs
IFdoZWVsRXZlbnRUZXN0TW9uaXRvcjo6RGVmZXJSZWFzb24pIGZpbmFsOwogCi0gICAgdm9pZCBs
b2NrTGF5ZXJzRm9ySGl0VGVzdGluZygpIGZpbmFsOwotICAgIHZvaWQgdW5sb2NrTGF5ZXJzRm9y
SGl0VGVzdGluZygpIGZpbmFsOworICAgIHZvaWQgbG9ja0xheWVyc0ZvckhpdFRlc3RpbmcoKSBm
aW5hbCBXVEZfQUNRVUlSRVNfTE9DSyhtX2xheWVySGl0VGVzdE11dGV4KTsKKyAgICB2b2lkIHVu
bG9ja0xheWVyc0ZvckhpdFRlc3RpbmcoKSBmaW5hbCBXVEZfUkVMRUFTRVNfTE9DSyhtX2xheWVy
SGl0VGVzdE11dGV4KTsKIAogICAgIC8vIFRoaXMgbG9jayBwcm90ZWN0cyB0aGUgQ0FMYXllci9Q
bGF0Zm9ybUNBTGF5ZXIgdHJlZS4KICAgICBtdXRhYmxlIExvY2sgbV9sYXllckhpdFRlc3RNdXRl
eDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1JldmVyYkNvbnZv
bHZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9SZXZlcmJDb252b2x2ZXIu
Y3BwCmluZGV4IGMyNWNhZjBkOWJjNDY5NWM0ODBkZGNjOTg0ZmY5MTdlZjUyM2MwZjYuLjYzNWE4
Zjc3YjMxNDIwZGMwNWVmZjQ1ZjVmNTg1ODg4ZmJhYmZjOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1JldmVyYkNvbnZvbHZlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vYXVkaW8vUmV2ZXJiQ29udm9sdmVyLmNwcApAQCAtMTQ4LDkgKzE0OCw5
IEBAIHZvaWQgUmV2ZXJiQ29udm9sdmVyOjpiYWNrZ3JvdW5kVGhyZWFkRW50cnkoKQogICAgICAg
ICAvLyBXYWl0IGZvciByZWFsdGltZSB0aHJlYWQgdG8gZ2l2ZSB1cyBtb3JlIGlucHV0CiAgICAg
ICAgIG1fbW9yZUlucHV0QnVmZmVyZWQgPSBmYWxzZTsgICAgICAgIAogICAgICAgICB7Ci0gICAg
ICAgICAgICBzdGQ6OnVuaXF1ZV9sb2NrPExvY2s+IGxvY2sobV9iYWNrZ3JvdW5kVGhyZWFkTG9j
ayk7CisgICAgICAgICAgICBMb2NrZXIgbG9ja2VyIHsgbV9iYWNrZ3JvdW5kVGhyZWFkTG9jayB9
OwogCi0gICAgICAgICAgICBtX2JhY2tncm91bmRUaHJlYWRDb25kaXRpb25WYXJpYWJsZS53YWl0
KGxvY2ssIFt0aGlzXSB7IHJldHVybiBtX21vcmVJbnB1dEJ1ZmZlcmVkIHx8IG1fd2FudHNUb0V4
aXQ7IH0pOworICAgICAgICAgICAgbV9iYWNrZ3JvdW5kVGhyZWFkQ29uZGl0aW9uVmFyaWFibGUu
d2FpdChtX2JhY2tncm91bmRUaHJlYWRMb2NrLCBbdGhpc10geyByZXR1cm4gbV9tb3JlSW5wdXRC
dWZmZXJlZCB8fCBtX3dhbnRzVG9FeGl0OyB9KTsKICAgICAgICAgfQogCiAgICAgICAgIC8vIFBy
b2Nlc3MgYWxsIG9mIHRoZSBzdGFnZXMgdW50aWwgdGhlaXIgcmVhZCBpbmRpY2VzIHJlYWNoIHRo
ZSBpbnB1dCBidWZmZXIncyB3cml0ZSBpbmRleApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvU2hhZG93Qmx1ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9TaGFkb3dCbHVyLmNwcAppbmRleCBhM2IwNTVkMzgzNTYyZmY0YTA2NzhhMjg1
Y2JiYmE3MzRiODZmNjkzLi4xZGY4MjA0MGRmMTE1ZWNhYzU5NmMyMzFjZjJmZDFlYjdiOGExMjA4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9TaGFkb3dCbHVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9TaGFkb3dCbHVyLmNw
cApAQCAtMTIyLDcgKzEyMiw3IEBAIHB1YmxpYzoKICAgICB9CiAKICAgICBzdGF0aWMgU2NyYXRj
aEJ1ZmZlciYgc2luZ2xldG9uKCk7Ci0gICAgc3RhdGljIExvY2smIGxvY2soKTsKKyAgICBzdGF0
aWMgVW5jaGVja2VkTG9jayYgbG9jaygpOwogCiBwcml2YXRlOgogICAgIHZvaWQgc2NoZWR1bGVT
Y3JhdGNoQnVmZmVyUHVyZ2UoKQpAQCAtMTY4LDkgKzE2OCw5IEBAIFNjcmF0Y2hCdWZmZXImIFNj
cmF0Y2hCdWZmZXI6OnNpbmdsZXRvbigpCiAgICAgcmV0dXJuIHNjcmF0Y2hCdWZmZXI7CiB9CiAK
LUxvY2smIFNjcmF0Y2hCdWZmZXI6OmxvY2soKQorVW5jaGVja2VkTG9jayYgU2NyYXRjaEJ1ZmZl
cjo6bG9jaygpCiB7Ci0gICAgc3RhdGljIExvY2sgbG9jazsKKyAgICBzdGF0aWMgVW5jaGVja2Vk
TG9jayBsb2NrOwogICAgIHJldHVybiBsb2NrOwogfQogCkBAIC02OTYsNyArNjk2LDcgQEAgdm9p
ZCBTaGFkb3dCbHVyOjpkcmF3UmVjdFNoYWRvd1dpdGhUaWxpbmcoY29uc3QgQWZmaW5lVHJhbnNm
b3JtJiB0cmFuc2Zvcm0sIGNvbnMKIHsKICAgICBSZWZQdHI8SW1hZ2VCdWZmZXI+IGxheWVySW1h
Z2VCdWZmZXI7CiAjaWYgVVNFKENHKQotICAgIGF1dG8gbG9ja2VyID0gTG9ja2VyPExvY2s+Ojp0
cnlMb2NrKFNjcmF0Y2hCdWZmZXI6OmxvY2soKSk7CisgICAgYXV0byBsb2NrZXIgPSBMb2NrZXI8
VW5jaGVja2VkTG9jaz46OnRyeUxvY2soU2NyYXRjaEJ1ZmZlcjo6bG9jaygpKTsKICAgICBpZiAo
bG9ja2VyKSB7CiAgICAgICAgIGxheWVySW1hZ2VCdWZmZXIgPSBTY3JhdGNoQnVmZmVyOjpzaW5n
bGV0b24oKS5nZXRTY3JhdGNoQnVmZmVyKHRlbXBsYXRlU2l6ZSk7CiAgICAgICAgIGlmICghbGF5
ZXJJbWFnZUJ1ZmZlcikKQEAgLTc1Niw3ICs3NTYsNyBAQCB2b2lkIFNoYWRvd0JsdXI6OmRyYXdJ
bnNldFNoYWRvd1dpdGhUaWxpbmcoY29uc3QgQWZmaW5lVHJhbnNmb3JtJiB0cmFuc2Zvcm0sIGNv
bgogewogICAgIFJlZlB0cjxJbWFnZUJ1ZmZlcj4gbGF5ZXJJbWFnZUJ1ZmZlcjsKICNpZiBVU0Uo
Q0cpCi0gICAgYXV0byBsb2NrZXIgPSBMb2NrZXI8TG9jaz46OnRyeUxvY2soU2NyYXRjaEJ1ZmZl
cjo6bG9jaygpKTsKKyAgICBhdXRvIGxvY2tlciA9IExvY2tlcjxVbmNoZWNrZWRMb2NrPjo6dHJ5
TG9jayhTY3JhdGNoQnVmZmVyOjpsb2NrKCkpOwogICAgIGlmIChsb2NrZXIpIHsKICAgICAgICAg
bGF5ZXJJbWFnZUJ1ZmZlciA9IFNjcmF0Y2hCdWZmZXI6OnNpbmdsZXRvbigpLmdldFNjcmF0Y2hC
dWZmZXIodGVtcGxhdGVTaXplKTsKICAgICAgICAgaWYgKCFsYXllckltYWdlQnVmZmVyKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1ZpZGVv
U2lua0dTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3Ry
ZWFtZXIvVmlkZW9TaW5rR1N0cmVhbWVyLmNwcAppbmRleCAxMWJlYTEyYjY2ZGM1NDYyNWE4Mjlm
OTA3NGE5MmMwMzc0Y2UyODk1Li41N2E3MmFjNTgwY2VjZjE2YTBlM2FiODBmY2YzOWUzOTVmZDA4
OGFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFt
ZXIvVmlkZW9TaW5rR1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvVmlkZW9TaW5rR1N0cmVhbWVyLmNwcApAQCAtMTA3LDcgKzEwNyw3
IEBAIHB1YmxpYzoKICAgICB9CiAKIHByaXZhdGU6Ci0gICAgTG9jayBtX3NhbXBsZU11dGV4Owor
ICAgIFVuY2hlY2tlZExvY2sgbV9zYW1wbGVNdXRleDsKICAgICBHUmVmUHRyPEdzdFNhbXBsZT4g
bV9zYW1wbGU7CiAKICAgICAvLyBJZiB0aGlzIGlzIHRydWUgYWxsIHByb2Nlc3Npbmcgc2hvdWxk
IGZpbmlzaCBBU0FQCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvV2ViS2l0V2ViU291cmNlR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3Bw
CmluZGV4IGQ0NzZlNDE3NzFlMjlhMTBmODdhMDJkMDYzZDI5ZDVjYmE2NDVhMDEuLjVjN2M5ODA2
ZDM0Y2I4YzEzODU5YzkxYTljOWNiMmFkOTkxNjc3NmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9XZWJL
aXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwCkBAIC0xNDAsNyArMTQwLDcgQEAgc3RydWN0IFdlYktp
dFdlYlNyY1ByaXZhdGUgewogCiAgICAgICAgIC8vIFByb3BlcnRpZXMgdXNlZCBmb3IgR1N0cmVh
bWVyIGRhdGEtZmxvdyBpbiBjcmVhdGUoKS4KICAgICAgICAgYm9vbCBpc0ZsdXNoaW5nIHsgZmFs
c2UgfTsKLSAgICAgICAgQ29uZGl0aW9uIHJlc3BvbnNlQ29uZGl0aW9uOyAvLyBNdXN0IGJlIHNp
Z25hbGVkIGFmdGVyIGFueSB1cGRhdGVzIG9uIEhUVFAgcmVxdWVzdHMsIGFuZCB3aGVuIGZsdXNo
aW5nLgorICAgICAgICBVbmNoZWNrZWRDb25kaXRpb24gcmVzcG9uc2VDb25kaXRpb247IC8vIE11
c3QgYmUgc2lnbmFsZWQgYWZ0ZXIgYW55IHVwZGF0ZXMgb24gSFRUUCByZXF1ZXN0cywgYW5kIHdo
ZW4gZmx1c2hpbmcuCiAgICAgICAgIEdSZWZQdHI8R3N0QWRhcHRlcj4gYWRhcHRlcjsKICAgICAg
ICAgYm9vbCBpc0R1cmF0aW9uU2V0OwogICAgICAgICB1aW50NjRfdCByZWFkUG9zaXRpb247CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvZW1l
L1dlYktpdENvbW1vbkVuY3J5cHRpb25EZWNyeXB0b3JHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9XZWJLaXRDb21tb25FbmNyeXB0
aW9uRGVjcnlwdG9yR1N0cmVhbWVyLmNwcAppbmRleCAzMjAxNzRkNWJmZTg3NmRiOGMxNDIzNTlh
OGUxYTAxYWE4NmMwZmRiLi5lYjA4ODUxY2M4NjIxMmI0NmJiODI4YzdiMzc4M2RiMzE1NjRhN2Vk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIv
ZW1lL1dlYktpdENvbW1vbkVuY3J5cHRpb25EZWNyeXB0b3JHU3RyZWFtZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUvV2ViS2l0Q29tbW9u
RW5jcnlwdGlvbkRlY3J5cHRvckdTdHJlYW1lci5jcHAKQEAgLTU2LDggKzU2LDggQEAgc3RydWN0
IF9XZWJLaXRNZWRpYUNvbW1vbkVuY3J5cHRpb25EZWNyeXB0UHJpdmF0ZSB7CiAgICAgUmVmUHRy
PENETVByb3h5PiBjZG1Qcm94eTsKIAogICAgIC8vIFByb3RlY3QgdGhlIGFjY2VzcyB0byB0aGUg
c3RydWN0dXJlIG1lbWJlcnMuCi0gICAgTG9jayBtdXRleDsKLSAgICBDb25kaXRpb24gY29uZGl0
aW9uOworICAgIFVuY2hlY2tlZExvY2sgbXV0ZXg7CisgICAgVW5jaGVja2VkQ29uZGl0aW9uIGNv
bmRpdGlvbjsKIAogICAgIGJvb2wgaXNGbHVzaGluZyB7IGZhbHNlIH07CiAgICAgc3RkOjp1bmlx
dWVfcHRyPENETVByb3h5RGVjcnlwdGlvbkNsaWVudEltcGxlbWVudGF0aW9uPiBjZG1Qcm94eURl
Y3J5cHRpb25DbGllbnRJbXBsZW1lbnRhdGlvbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvV2ViS2l0TWVkaWFTb3VyY2VHU3RyZWFt
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9X
ZWJLaXRNZWRpYVNvdXJjZUdTdHJlYW1lci5jcHAKaW5kZXggNmQwM2RmOTZhZDQzNzkwZDVhZjNk
MmI3MmQ3NzAwZDE2ZmYyYTRmYS4uYWE3Y2VlYjczOThhZTExOWRkZWFmMDUxNzZkZTJlOGYxYzRj
NjI3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVh
bWVyL21zZS9XZWJLaXRNZWRpYVNvdXJjZUdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9XZWJLaXRNZWRpYVNvdXJjZUdTdHJl
YW1lci5jcHAKQEAgLTE4NCw4ICsxODQsOCBAQCBzdHJ1Y3QgU3RyZWFtIDogcHVibGljIFRocmVh
ZFNhZmVSZWZDb3VudGVkPFN0cmVhbT4gewogICAgICAgICBHc3RTZWdtZW50IHNlZ21lbnQ7CiAg
ICAgICAgIEdSZWZQdHI8R3N0Q2Fwcz4gcGVuZGluZ0luaXRpYWxDYXBzOwogICAgICAgICBHUmVm
UHRyPEdzdENhcHM+IHByZXZpb3VzQ2FwczsgLy8gQ2FwcyBmcm9tIGVucXVldWVkIHNhbXBsZXMg
YXJlIGNvbXBhcmVkIHRvIHRoZXNlIHRvIHB1c2ggQ0FQUyBldmVudHMgYXMgbmVlZGVkLgotICAg
ICAgICBDb25kaXRpb24gcGFkTGlua2VkT3JGbHVzaGVkQ29uZGl0aW9uOwotICAgICAgICBDb25k
aXRpb24gcXVldWVDaGFuZ2VkT3JGbHVzaGVkQ29uZGl0aW9uOworICAgICAgICBVbmNoZWNrZWRD
b25kaXRpb24gcGFkTGlua2VkT3JGbHVzaGVkQ29uZGl0aW9uOworICAgICAgICBVbmNoZWNrZWRD
b25kaXRpb24gcXVldWVDaGFuZ2VkT3JGbHVzaGVkQ29uZGl0aW9uOwogICAgICAgICBib29sIGlz
Rmx1c2hpbmcgeyBmYWxzZSB9OwogCiAgICAgICAgIC8vIEZsdXNoZXMgYmVmb3JlIGFueSBidWZm
ZXIgaGFzIGJlZW4gcG9wcGVkIGZyb20gdGhlIHF1ZXVlIGFuZCBzZW50IGRvd25zdHJlYW0gY2Fu
IGJlIGF2b2lkZWQganVzdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9z
L3dhay9XZWJDb3JlVGhyZWFkUnVuLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy93
YWsvV2ViQ29yZVRocmVhZFJ1bi5jcHAKaW5kZXggOGY4MWQ3YzFhY2E0Njk1NTUxZmM0NDBiNDdl
OTA2MWQ0YjM1ZGYyZC4uNzIwNDFlOWUxZmU5ZmU5ZDU2YWUyNzdiNzBmOGRlOGJmNmEzYmY3YyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL3dhay9XZWJDb3JlVGhyZWFk
UnVuLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3Mvd2FrL1dlYkNvcmVUaHJl
YWRSdW4uY3BwCkBAIC00NSw5ICs0NSw5IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgd2FpdEZvckNv
bXBsZXRpb24oKQogICAgIHsKLSAgICAgICAgc3RkOjp1bmlxdWVfbG9jazxMb2NrPiBsb2NrKG1f
c3RhdGVNdXRleCk7CisgICAgICAgIExvY2tlciBsb2NrIHsgbV9zdGF0ZU11dGV4IH07CiAKLSAg
ICAgICAgbV9jb21wbGV0aW9uQ29uZGl0aW9uVmFyaWFibGUud2FpdChsb2NrLCBbdGhpc10geyBy
ZXR1cm4gbV9jb21wbGV0ZWQ7IH0pOworICAgICAgICBtX2NvbXBsZXRpb25Db25kaXRpb25WYXJp
YWJsZS53YWl0KG1fc3RhdGVNdXRleCwgW3RoaXNdIHsgcmV0dXJuIG1fY29tcGxldGVkOyB9KTsK
ICAgICB9CiAKICAgICB2b2lkIHNldENvbXBsZXRlZCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wuY3BwIGIvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMLmNw
cAppbmRleCA2ZDFkMWRhZTk3YTliNWU3NmM3YTQxYTU5MDgzYzllMGE4ODM0YjZmLi4xNTUzZGVm
MDI1ZmZmOTBmMTM3NWY1MTBkNTBjYTQ1ZDJjNTEzNTRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRH
TC5jcHAKQEAgLTIxMiw3ICsyMTIsNyBAQCB2b2lkIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMOjpw
YWludFBpeGVsQnVmZmVyVG9JbWFnZUJ1ZmZlcihPcHRpb25hbDxXZWJDb3JlOjpQaQogICAgIGFz
c2VydElzQ3VycmVudChtX3N0cmVhbVRocmVhZCk7CiAgICAgLy8gRklYTUU6IFdlIGRvIG5vdCBo
YXZlIGZ1bmN0aW9uaW5nIHJlYWQvd3JpdGUgZmVuY2VzIGluIFJlbW90ZVJlbmRlcmluZ0JhY2tl
bmQuIFRodXMgdGhpcyBpcyBzeW5jaHJvbm91cywKICAgICAvLyBhcyBhcmUgdGhlIG1lc3NhZ2Vz
IHRoYXQgY2FsbCB0aGVzZS4KLSAgICBMb2NrIG11dGV4OworICAgIExvY2sgbG9jazsKICAgICBD
b25kaXRpb24gY29uZGl0aW9uVmFyaWFibGU7CiAgICAgYm9vbCBpc0ZpbmlzaGVkID0gZmFsc2U7
CiAgICAgbV9yZW5kZXJpbmdCYWNrZW5kLT5kaXNwYXRjaChbJiwgY29udGV4dEF0dHJpYnV0ZXMg
PSBtX2NvbnRleHQtPmNvbnRleHRBdHRyaWJ1dGVzKCldKCkgbXV0YWJsZSB7CkBAIC0yMjYsMTEg
KzIyNiwxMSBAQCB2b2lkIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMOjpwYWludFBpeGVsQnVmZmVy
VG9JbWFnZUJ1ZmZlcihPcHRpb25hbDxXZWJDb3JlOjpQaQogICAgICAgICAgICAgLy8gVW5mb3J0
dW5hdGVseSAiZmx1c2giIGltcGxlbWVudGF0aW9uIGluIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQg
b3ZlcmxvYWRzIG9yZGVyaW5nIGFuZCBlZmZlY3RzLgogICAgICAgICAgICAgaW1hZ2VCdWZmZXIt
PmZsdXNoQ29udGV4dCgpOwogICAgICAgICB9Ci0gICAgICAgIExvY2tlciBsb2NrZXIgeyBtdXRl
eCB9OworICAgICAgICBMb2NrZXIgbG9ja2VyIHsgbG9jayB9OwogICAgICAgICBpc0ZpbmlzaGVk
ID0gdHJ1ZTsKICAgICAgICAgY29uZGl0aW9uVmFyaWFibGUubm90aWZ5T25lKCk7CiAgICAgfSk7
Ci0gICAgc3RkOjp1bmlxdWVfbG9jazxMb2NrPiBsb2NrKG11dGV4KTsKKyAgICBMb2NrZXIgbG9j
a2VyIHsgbG9jayB9OwogICAgIGNvbmRpdGlvblZhcmlhYmxlLndhaXQobG9jaywgWyZdIHsKICAg
ICAgICAgcmV0dXJuIGlzRmluaXNoZWQ7CiAgICAgfSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL0luZGV4ZWREQi9XZWJJREJTZXJ2ZXIuY3BwIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCU2VydmVyLmNwcAppbmRleCA5MWI4
ODk0MWE3NmE4MDcxZDMwZDdmZWQ3NDE2M2ZiMDlmN2I4NzIxLi41NDdkYWE4ZDRlMDAxNDA2ZmMy
MDFhYmFkNmNmNDc3MGM5MWE1NTc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL0luZGV4ZWREQi9XZWJJREJTZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvSW5kZXhlZERCL1dlYklEQlNlcnZlci5jcHAKQEAgLTExOSw3ICsxMTksNyBA
QCB2b2lkIFdlYklEQlNlcnZlcjo6cmVuYW1lT3JpZ2luKGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5
T3JpZ2luRGF0YSYgb2xkT3JpZ2luLCBjbwogICAgIH0pOwogfQogCi12b2lkIFdlYklEQlNlcnZl
cjo6c3VzcGVuZCgpCit2b2lkIFdlYklEQlNlcnZlcjo6c3VzcGVuZCgpIFdURl9JR05PUkVTX1RI
UkVBRF9TQUZFVFlfQU5BTFlTSVMKIHsKICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwog
CkBAIC0xMzIsNyArMTMyLDcgQEAgdm9pZCBXZWJJREJTZXJ2ZXI6OnN1c3BlbmQoKQogICAgICAg
ICBtX3NlcnZlci0+c3RvcERhdGFiYXNlQWN0aXZpdGllc09uTWFpblRocmVhZCgpOwogfQogCi12
b2lkIFdlYklEQlNlcnZlcjo6cmVzdW1lKCkKK3ZvaWQgV2ViSURCU2VydmVyOjpyZXN1bWUoKSBX
VEZfSUdOT1JFU19USFJFQURfU0FGRVRZX0FOQUxZU0lTCiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6
OmlzTWFpbigpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2ds
aWIvSWNvbkRhdGFiYXNlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9JY29u
RGF0YWJhc2UuaAppbmRleCBiZWIyZmI4MDZlYzU1YzY2MzRjZDVlNWEwMGQ1MDc4MzYxNWZlZjRi
Li44MGUxNzhlNjFmNTBmYWZkZjNlYWQ0ZDI5OGExODgwMWFlMDNjNzE3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9JY29uRGF0YWJhc2UuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9JY29uRGF0YWJhc2UuaApAQCAtNzIsNyArNzIs
NyBAQCBwcml2YXRlOgogICAgIEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+IG1fcGFnZVVSTFRvSWNv
blVSTE1hcDsKICAgICBMb2NrIG1fcGFnZVVSTFRvSWNvblVSTE1hcExvY2s7CiAgICAgSGFzaE1h
cDxTdHJpbmcsIHN0ZDo6cGFpcjxXZWJDb3JlOjpQbGF0Zm9ybUltYWdlUHRyLCBNb25vdG9uaWNU
aW1lPj4gbV9sb2FkZWRJY29uczsKLSAgICBMb2NrIG1fbG9hZGVkSWNvbnNMb2NrOworICAgIFVu
Y2hlY2tlZExvY2sgbV9sb2FkZWRJY29uc0xvY2s7CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8V2Vi
Q29yZTo6U1FMaXRlU3RhdGVtZW50PiBtX2ljb25JREZvckljb25VUkxTdGF0ZW1lbnQ7CiAgICAg
c3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlNRTGl0ZVN0YXRlbWVudD4gbV9zZXRJY29uSURGb3JQ
YWdlVVJMU3RhdGVtZW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFj
L1dLUHJpbnRpbmdWaWV3Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLUHJpbnRp
bmdWaWV3Lm1tCmluZGV4IDliNzRmM2VjNTBkMDIwMTY2NGM3MzEyOTg5YzdmNjhjMjlhMDQ1NGMu
LmYxOGJhOGYwMWIyNmRlM2ZkM2NkZmIwMjgxMjg1Y2YwZDRhNjY2OWYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS1ByaW50aW5nVmlldy5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tQcmludGluZ1ZpZXcubW0KQEAgLTQxNCwxMyArNDE0LDEz
IEBAIC0gKEJPT0wpa25vd3NQYWdlUmFuZ2U6KE5TUmFuZ2VQb2ludGVyKXJhbmdlCiAgICAgICAg
ICpyYW5nZSA9IE5TTWFrZVJhbmdlKDEsIF9wcmludGluZ1BhZ2VSZWN0cy5zaXplKCkpOwogICAg
IGVsc2UgaWYgKCFSdW5Mb29wOjppc01haW4oKSkgewogICAgICAgICBBU1NFUlQoIVtzZWxmIF9p
c1ByaW50aW5nUHJldmlld10pOwotICAgICAgICBzdGQ6OnVuaXF1ZV9sb2NrPExvY2s+IGxvY2so
X3ByaW50aW5nQ2FsbGJhY2tNdXRleCk7CisgICAgICAgIExvY2tlciBsb2NrIHsgX3ByaW50aW5n
Q2FsbGJhY2tNdXRleCB9OwogCiAgICAgICAgIFJ1bkxvb3A6Om1haW4oKS5kaXNwYXRjaChbc2Vs
Zl0gewogICAgICAgICAgICAgcHJlcGFyZURhdGFGb3JQcmludGluZ09uU2Vjb25kYXJ5VGhyZWFk
KHNlbGYpOwogICAgICAgICB9KTsKIAotICAgICAgICBfcHJpbnRpbmdDYWxsYmFja0NvbmRpdGlv
bi53YWl0KGxvY2spOworICAgICAgICBfcHJpbnRpbmdDYWxsYmFja0NvbmRpdGlvbi53YWl0KF9w
cmludGluZ0NhbGxiYWNrTXV0ZXgpOwogICAgICAgICAqcmFuZ2UgPSBOU01ha2VSYW5nZSgxLCBf
cHJpbnRpbmdQYWdlUmVjdHMuc2l6ZSgpKTsKICAgICB9IGVsc2UgewogICAgICAgICBBU1NFUlQo
W3NlbGYgX2lzUHJpbnRpbmdQcmV2aWV3XSk7CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZWFiMDgzZjFlMDdkNDVlODhhZGIxNDAxZGJiNGMyMTVi
NTM3ODU0YS4uODYzOTEwZmU0ZmFmZWEzMzIzNWE0NjJmMzBkNGRjZDhkZGFiMjgzOCAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQz
IEBACisyMDIxLTA1LTIzICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAg
ICAgTWFrZSBDaGVja2VkTG9jayB0aGUgZGVmYXVsdCBMb2NrCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjYxNTcKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNYWtlIENoZWNrZWRMb2NrIHRoZSBkZWZhdWx0
IExvY2sgc28gdGhhdCB3ZSBnZXQgbW9yZSBiZW5lZml0cyBmcm9tIENsYW5nCisgICAgICAgIFRo
cmVhZCBTYWZldHkgQW5hbHlzaXMuIE5vdGUgdGhhdCBDaGVja2VkTG9jayAxMDAlIHJlbGllcyBv
biB0aGUgZXhpc3RpbmcKKyAgICAgICAgTG9jayBpbXBsZW1lbnRhdGlvbiBhbmQgbWVyZWx5IGFk
ZHMgdGhlIGNsYW5nIGFub3RhdGlvbnMgZm9yIHRocmVhZCAKKyAgICAgICAgc2FmZXR5LgorCisg
ICAgICAgIFRoYXQgdGhpcyBwYXRjaCBkb2VzIGlzOgorICAgICAgICAxLiBSZW5hbWUgdGhlIExv
Y2sgY2xhc3MgdG8gVW5jaGVja2VkTG9jaworICAgICAgICAyLiBSZW5hbWUgdGhlIENoZWNrZWRM
b2NrIGNsYXNzIHRvIExvY2sKKyAgICAgICAgMy4gUmVuYW1lIHRoZSBDb25kaXRpb24gY2xhc3Mg
dG8gVW5jaGVja2VkQ29uZGl0aW9uCisgICAgICAgIDQuIFJlbmFtZSB0aGUgQ2hlY2tlZENvbmRp
dGlvbiBjbGFzcyB0byBDb25kaXRpb24KKyAgICAgICAgNS4gVXBkYXRlIHRoZSB0eXBlcyBvZiBj
ZXJ0YWluIHZhcmlhYmxlcyBmcm9tIExvY2sgLyBDb25kaXRpb24gdG8KKyAgICAgICAgICAgVW5j
aGVja2VkTG9jayAvIFVuY2hlY2tlZENvbmRpdGlvbiBpZiBJIGdvdCBhIGJ1aWxkIGZhaWx1cmUu
IEJ1aWxkIAorICAgICAgICAgICBmYWlsdXJlcyBhcmUgdXN1YWxseSBjYXVzZWQgYnkgdGhlIGZv
bGxvd2luZyBmYWN0czoKKyAgICAgICAgICAgLSBMb2NrZXI8Q2hlY2tlZExvY2s+IGRvZXNuJ3Qg
c3ViY2xhc3MgQWJzdHJhY3RMb2NrZXIgd2hpY2ggYSBsb3Qgb2YKKyAgICAgICAgICAgICBKU0Mg
Y29kZSBwYXNzZXMgYXMgYXJndW1lbnQKKyAgICAgICAgICAgLSBMb2NrZXI8Q2hlY2tlZExvY2s+
IGhhcyBubyBtb3ZlIGNvbnN0cnVjdG9yCisgICAgICAgICAgIC0gTG9ja2VyPENoZWNrZWRMb2Nr
PiBjYW5ub3QgYmUgY29uc3RydWN0ZWQgZnJvbSBhIGxvY2sgcG9pbnRlciwgb25seQorICAgICAg
ICAgICAgIGEgcmVmZXJlbmNlCisKKyAgICAgICAgRm9yIG5vdywgQ2hlY2tlZExvY2sgYW5kIENo
ZWNrZWRDb25kaXRpb24gcmVtYWluIGFzIGFsaWFzZXMgdG8gTG9jayBhbmQgCisgICAgICAgIENv
bmRpdGlvbiwgaW4gdGhlaXIgcmVzcGVjdGl2ZSBDaGVja2VkTG9jay5oIC8gQ2hlY2tlZENvbmRp
dGlvbi5oIGhlYWRlcnMuCisgICAgICAgIEkgd2lsbCBkcm9wIHRoZW0gaW4gYSBmb2xsb3ctdXAg
dG8gcmVkdWNlIHBhdGNoIHNpemUuCisKKyAgICAgICAgSSB3aWxsIGFsc28gZm9sbG93LXVwIHRv
IHRyeSBhbmQgZ2V0IHJpZCBvZiBhcyBtdWNoIHVzYWdlIG9mIFVuY2hlY2tlZExvY2sKKyAgICAg
ICAgYW5kIFVuY2hlY2tlZENvbmRpdGlvbiBhcyBwb3NzaWJsZS4gSSBkaWQgbm90IHRyeSB2ZXJ5
IGhhcmQgaW4gdGhpcyBwYXRjaAorICAgICAgICB0byByZWR1Y2UgcGF0Y2ggc2l6ZS4gCisKKyAg
ICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9DaGVja2VkQ29uZGl0aW9uVGVzdC5jcHA6
CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvQ29uZGl0aW9uLmNwcDoKKyAgICAg
ICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9NZXRhQWxsb2NhdG9yLmNwcDoKKyAgICAgICAg
KiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlDb250cm9sbGVy
LmNwcDoKKyAgICAgICAgKFdUUjo6QVhUaHJlYWQ6OmNyZWF0ZVRocmVhZElmTmVlZGVkKToKKwog
MjAyMS0wNS0yMiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFJl
cGxhY2UgTG9ja0hvbGRlciB3aXRoIExvY2tlciBpbiBsb2NhbCB2YXJpYWJsZXMKZGlmZiAtLWdp
dCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0NoZWNrZWRDb25kaXRpb25UZXN0LmNw
cCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0NoZWNrZWRDb25kaXRpb25UZXN0LmNw
cAppbmRleCA5MjhhYTE5MDNjZGUzNmVhMzJkYzEwMWYyNmJmM2NjOTkyNjliODkzLi5hZDQyNTVl
MmFjMWEyZWY5YTBjMWNhM2NmNTZjNzM4MDc2NjMwNTA4IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dURi9DaGVja2VkQ29uZGl0aW9uVGVzdC5jcHAKKysrIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvQ2hlY2tlZENvbmRpdGlvblRlc3QuY3BwCkBAIC0yNSw2
ICsyNSw3IEBACiAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlIDx3dGYvQ2hlY2tlZENv
bmRpdGlvbi5oPgorI2luY2x1ZGUgPHd0Zi9DaGVja2VkTG9jay5oPgogCiBuYW1lc3BhY2UgVGVz
dFdlYktpdEFQSSB7CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RG
L0NvbmRpdGlvbi5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9Db25kaXRpb24u
Y3BwCmluZGV4IDNiMzViMDhjYTE0YjgxODg0N2Q2NmVlNTg3ZmZhZDFhNTkwZDgxMjYuLjVlZWMz
ZTAxNTY2YjkxOGQ2NjdlMTY0ODI1ZjAxMjA4ZDg3OWJiZWIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV1RGL0NvbmRpdGlvbi5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XVEYvQ29uZGl0aW9uLmNwcApAQCAtNDYsNyArNDYsNyBAQCBlbnVtIE5vdGlm
eVN0eWxlIHsKIH07CiAKIHRlbXBsYXRlPHR5cGVuYW1lIEZ1bmN0b3I+Ci12b2lkIHdhaXQoQ29u
ZGl0aW9uJiBjb25kaXRpb24sIHN0ZDo6dW5pcXVlX2xvY2s8TG9jaz4mIGxvY2tlciwgY29uc3Qg
RnVuY3RvciYgcHJlZGljYXRlLCBTZWNvbmRzIHRpbWVvdXQpCit2b2lkIHdhaXQoVW5jaGVja2Vk
Q29uZGl0aW9uJiBjb25kaXRpb24sIHN0ZDo6dW5pcXVlX2xvY2s8VW5jaGVja2VkTG9jaz4mIGxv
Y2tlciwgY29uc3QgRnVuY3RvciYgcHJlZGljYXRlLCBTZWNvbmRzIHRpbWVvdXQpCiB7CiAgICAg
aWYgKHRpbWVvdXQgPT0gU2Vjb25kczo6aW5maW5pdHkoKSkKICAgICAgICAgY29uZGl0aW9uLndh
aXQobG9ja2VyLCBwcmVkaWNhdGUpOwpAQCAtNTksNyArNTksNyBAQCB2b2lkIHdhaXQoQ29uZGl0
aW9uJiBjb25kaXRpb24sIHN0ZDo6dW5pcXVlX2xvY2s8TG9jaz4mIGxvY2tlciwgY29uc3QgRnVu
Y3RvciYgcAogICAgIH0KIH0KIAotdm9pZCBub3RpZnkoTm90aWZ5U3R5bGUgbm90aWZ5U3R5bGUs
IENvbmRpdGlvbiYgY29uZGl0aW9uLCBib29sIHNob3VsZE5vdGlmeSkKK3ZvaWQgbm90aWZ5KE5v
dGlmeVN0eWxlIG5vdGlmeVN0eWxlLCBVbmNoZWNrZWRDb25kaXRpb24mIGNvbmRpdGlvbiwgYm9v
bCBzaG91bGROb3RpZnkpCiB7CiAgICAgc3dpdGNoIChub3RpZnlTdHlsZSkgewogICAgIGNhc2Ug
QWx3YXlzTm90aWZ5T25lOgpAQCAtODMsOSArODMsOSBAQCB2b2lkIHJ1blRlc3QoCiB7CiAgICAg
RGVxdWU8dW5zaWduZWQ+IHF1ZXVlOwogICAgIGJvb2wgc2hvdWxkQ29udGludWUgPSB0cnVlOwot
ICAgIExvY2sgbG9jazsKLSAgICBDb25kaXRpb24gZW1wdHlDb25kaXRpb247Ci0gICAgQ29uZGl0
aW9uIGZ1bGxDb25kaXRpb247CisgICAgVW5jaGVja2VkTG9jayBsb2NrOworICAgIFVuY2hlY2tl
ZENvbmRpdGlvbiBlbXB0eUNvbmRpdGlvbjsKKyAgICBVbmNoZWNrZWRDb25kaXRpb24gZnVsbENv
bmRpdGlvbjsKIAogICAgIFZlY3RvcjxSZWY8VGhyZWFkPj4gY29uc3VtZXJUaHJlYWRzOwogICAg
IFZlY3RvcjxSZWY8VGhyZWFkPj4gcHJvZHVjZXJUaHJlYWRzOwpAQCAtMTAxLDcgKzEwMSw3IEBA
IHZvaWQgcnVuVGVzdCgKICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgcmVzdWx0OwogICAg
ICAgICAgICAgICAgICAgICB1bnNpZ25lZCBzaG91bGROb3RpZnkgPSBmYWxzZTsKICAgICAgICAg
ICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAgc3RkOjp1bmlxdWVfbG9jazxM
b2NrPiBsb2NrZXIobG9jayk7CisgICAgICAgICAgICAgICAgICAgICAgICBzdGQ6OnVuaXF1ZV9s
b2NrPFVuY2hlY2tlZExvY2s+IGxvY2tlcihsb2NrKTsKICAgICAgICAgICAgICAgICAgICAgICAg
IHdhaXQoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW1wdHlDb25kaXRpb24sIGxvY2tl
ciwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyZdICgpIHsKQEAgLTEzNCw3ICsxMzQs
NyBAQCB2b2lkIHJ1blRlc3QoCiAgICAgICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsg
aSA8IG51bU1lc3NhZ2VzUGVyUHJvZHVjZXI7ICsraSkgewogICAgICAgICAgICAgICAgICAgICBi
b29sIHNob3VsZE5vdGlmeSA9IGZhbHNlOwogICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICBzdGQ6OnVuaXF1ZV9sb2NrPExvY2s+IGxvY2tlcihsb2NrKTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIHN0ZDo6dW5pcXVlX2xvY2s8VW5jaGVja2VkTG9jaz4gbG9j
a2VyKGxvY2spOwogICAgICAgICAgICAgICAgICAgICAgICAgd2FpdCgKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBmdWxsQ29uZGl0aW9uLCBsb2NrZXIsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgWyZdICgpIHsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V1RGL01ldGFBbGxvY2F0b3IuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvTWV0
YUFsbG9jYXRvci5jcHAKaW5kZXggYjkxZjY4ZWMwY2MxN2RkMzcwOGYyZTc4MDgzNjY1NTdkYjM4
N2E2Ni4uNGVmNTgzYjNjMmJlOThlZWZkOTYxNTFjNzk2OWNlNDNlYmEwNTc5MyAxMDA2NDQKLS0t
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvTWV0YUFsbG9jYXRvci5jcHAKKysrIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvTWV0YUFsbG9jYXRvci5jcHAKQEAgLTEyOSw3
ICsxMjksNyBAQCBwdWJsaWM6CiAgICAgICAgIH0KICAgICAgICAgCiAgICAgcHJpdmF0ZToKLSAg
ICAgICAgTG9jayBtX2xvY2s7CisgICAgICAgIFVuY2hlY2tlZExvY2sgbV9sb2NrOwogICAgICAg
ICBNZXRhQWxsb2NhdG9yVGVzdCogbV9wYXJlbnQ7CiAgICAgfTsKIApkaWZmIC0tZ2l0IGEvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5Q29udHJvbGxl
ci5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxp
dHlDb250cm9sbGVyLmNwcAppbmRleCA5ODQ0ZTViNjMzNWZiY2EyODZlMmMxMWM2YjNlOTg3OGQ5
YzQwZDBiLi42ZWJhMTRhMWE3MGMwM2Q1NTdkYjIzYjYwNzYyZGY3OWZmZWE0Y2FlIDEwMDY0NAot
LS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlD
b250cm9sbGVyLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxl
L0FjY2Vzc2liaWxpdHlDb250cm9sbGVyLmNwcApAQCAtMTk5LDcgKzE5OSw3IEBAIEFYVGhyZWFk
JiBBWFRocmVhZDo6c2luZ2xldG9uKCkKIHZvaWQgQVhUaHJlYWQ6OmNyZWF0ZVRocmVhZElmTmVl
ZGVkKCkKIHsKICAgICAvLyBXYWl0IGZvciB0aGUgdGhyZWFkIHRvIGluaXRpYWxpemUgdGhlIHJ1
biBsb29wLgotICAgIHN0ZDo6dW5pcXVlX2xvY2s8TG9jaz4gbG9jayhtX2luaXRpYWxpemVSdW5M
b29wTXV0ZXgpOworICAgIExvY2tlciBsb2NrIHsgbV9pbml0aWFsaXplUnVuTG9vcE11dGV4IH07
CiAKICAgICBpZiAoIW1fdGhyZWFkKSB7CiAgICAgICAgIG1fdGhyZWFkID0gVGhyZWFkOjpjcmVh
dGUoIldLVFI6IEFjY2Vzc2liaWxpdHlDb250cm9sbGVyIiwgW3RoaXNdIHsKQEAgLTIwOCw3ICsy
MDgsNyBAQCB2b2lkIEFYVGhyZWFkOjpjcmVhdGVUaHJlYWRJZk5lZWRlZCgpCiAgICAgICAgIH0p
OwogICAgIH0KIAotICAgIG1faW5pdGlhbGl6ZVJ1bkxvb3BDb25kaXRpb25WYXJpYWJsZS53YWl0
KGxvY2ssIFt0aGlzXSB7CisgICAgbV9pbml0aWFsaXplUnVuTG9vcENvbmRpdGlvblZhcmlhYmxl
LndhaXQobV9pbml0aWFsaXplUnVuTG9vcE11dGV4LCBbdGhpc10gewogI2lmIFBMQVRGT1JNKENP
Q09BKQogICAgICAgICByZXR1cm4gbV90aHJlYWRSdW5Mb29wOwogI2Vsc2UK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>429493</attachid>
            <date>2021-05-23 18:14:39 -0700</date>
            <delta_ts>2021-05-23 21:17:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226157-20210523181438.patch</filename>
            <type>text/plain</type>
            <size>103835</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3OTM0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAw
YzRlNzliNTg2ZTkwMmM1MTBiY2NkMjdkOGMwYzA0MTU2MGNmMjhmLi45MzM2Mzg2OTAxOGFkODIy
NjhhZjUzMmE1OWMwMThjOTZjMjM1ZTY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw5NSBAQAorMjAyMS0wNS0yMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgor
CisgICAgICAgIE1ha2UgQ2hlY2tlZExvY2sgdGhlIGRlZmF1bHQgTG9jaworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI2MTU3CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWFrZSBDaGVja2VkTG9jayB0aGUg
ZGVmYXVsdCBMb2NrIHNvIHRoYXQgd2UgZ2V0IG1vcmUgYmVuZWZpdHMgZnJvbSBDbGFuZworICAg
ICAgICBUaHJlYWQgU2FmZXR5IEFuYWx5c2lzLiBOb3RlIHRoYXQgQ2hlY2tlZExvY2sgMTAwJSBy
ZWxpZXMgb24gdGhlIGV4aXN0aW5nCisgICAgICAgIExvY2sgaW1wbGVtZW50YXRpb24gYW5kIG1l
cmVseSBhZGRzIHRoZSBjbGFuZyBhbm90YXRpb25zIGZvciB0aHJlYWQgCisgICAgICAgIHNhZmV0
eS4KKworICAgICAgICBUaGF0IHRoaXMgcGF0Y2ggZG9lcyBpczoKKyAgICAgICAgMS4gUmVuYW1l
IHRoZSBMb2NrIGNsYXNzIHRvIFVuY2hlY2tlZExvY2sKKyAgICAgICAgMi4gUmVuYW1lIHRoZSBD
aGVja2VkTG9jayBjbGFzcyB0byBMb2NrCisgICAgICAgIDMuIFJlbmFtZSB0aGUgQ29uZGl0aW9u
IGNsYXNzIHRvIFVuY2hlY2tlZENvbmRpdGlvbgorICAgICAgICA0LiBSZW5hbWUgdGhlIENoZWNr
ZWRDb25kaXRpb24gY2xhc3MgdG8gQ29uZGl0aW9uCisgICAgICAgIDUuIFVwZGF0ZSB0aGUgdHlw
ZXMgb2YgY2VydGFpbiB2YXJpYWJsZXMgZnJvbSBMb2NrIC8gQ29uZGl0aW9uIHRvCisgICAgICAg
ICAgIFVuY2hlY2tlZExvY2sgLyBVbmNoZWNrZWRDb25kaXRpb24gaWYgSSBnb3QgYSBidWlsZCBm
YWlsdXJlLiBCdWlsZCAKKyAgICAgICAgICAgZmFpbHVyZXMgYXJlIHVzdWFsbHkgY2F1c2VkIGJ5
IHRoZSBmb2xsb3dpbmcgZmFjdHM6CisgICAgICAgICAgIC0gTG9ja2VyPENoZWNrZWRMb2NrPiBk
b2Vzbid0IHN1YmNsYXNzIEFic3RyYWN0TG9ja2VyIHdoaWNoIGEgbG90IG9mCisgICAgICAgICAg
ICAgSlNDIGNvZGUgcGFzc2VzIGFzIGFyZ3VtZW50CisgICAgICAgICAgIC0gTG9ja2VyPENoZWNr
ZWRMb2NrPiBoYXMgbm8gbW92ZSBjb25zdHJ1Y3RvcgorICAgICAgICAgICAtIExvY2tlcjxDaGVj
a2VkTG9jaz4gY2Fubm90IGJlIGNvbnN0cnVjdGVkIGZyb20gYSBsb2NrIHBvaW50ZXIsIG9ubHkK
KyAgICAgICAgICAgICBhIHJlZmVyZW5jZQorCisgICAgICAgIEZvciBub3csIENoZWNrZWRMb2Nr
IGFuZCBDaGVja2VkQ29uZGl0aW9uIHJlbWFpbiBhcyBhbGlhc2VzIHRvIExvY2sgYW5kIAorICAg
ICAgICBDb25kaXRpb24sIGluIHRoZWlyIHJlc3BlY3RpdmUgQ2hlY2tlZExvY2suaCAvIENoZWNr
ZWRDb25kaXRpb24uaCBoZWFkZXJzLgorICAgICAgICBJIHdpbGwgZHJvcCB0aGVtIGluIGEgZm9s
bG93LXVwIHRvIHJlZHVjZSBwYXRjaCBzaXplLgorCisgICAgICAgIEkgd2lsbCBhbHNvIGZvbGxv
dy11cCB0byB0cnkgYW5kIGdldCByaWQgb2YgYXMgbXVjaCB1c2FnZSBvZiBVbmNoZWNrZWRMb2Nr
CisgICAgICAgIGFuZCBVbmNoZWNrZWRDb25kaXRpb24gYXMgcG9zc2libGUuIEkgZGlkIG5vdCB0
cnkgdmVyeSBoYXJkIGluIHRoaXMgcGF0Y2gKKyAgICAgICAgdG8gcmVkdWNlIHBhdGNoIHNpemUu
IAorCisgICAgICAgICogYXNzZW1ibGVyL3Rlc3RtYXNtLmNwcDoKKyAgICAgICAgKiBkZmcvREZH
Q29tbW9uLmNwcDoKKyAgICAgICAgKiBkZmcvREZHVGhyZWFkRGF0YS5oOgorICAgICAgICAqIGRm
Zy9ERkdXb3JrbGlzdC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6V29ya2xpc3Q6OldvcmtsaXN0
KToKKyAgICAgICAgKiBkZmcvREZHV29ya2xpc3QuaDoKKyAgICAgICAgKiBkeW5iZW5jaC5jcHA6
CisgICAgICAgICogaGVhcC9CbG9ja0RpcmVjdG9yeS5oOgorICAgICAgICAoSlNDOjpCbG9ja0Rp
cmVjdG9yeTo6Yml0dmVjdG9yTG9jayk6CisgICAgICAgICogaGVhcC9Db2RlQmxvY2tTZXQuaDoK
KyAgICAgICAgKEpTQzo6Q29kZUJsb2NrU2V0OjpnZXRMb2NrKToKKyAgICAgICAgKiBoZWFwL0hl
YXAuY3BwOgorICAgICAgICAoSlNDOjpIZWFwOjpIZWFwKToKKyAgICAgICAgKiBoZWFwL0hlYXAu
aDoKKyAgICAgICAgKiBoZWFwL01hcmtlZFNwYWNlLmg6CisgICAgICAgIChKU0M6Ok1hcmtlZFNw
YWNlOjpkaXJlY3RvcnlMb2NrKToKKyAgICAgICAgKiBoZWFwL01hcmtpbmdDb25zdHJhaW50U29s
dmVyLmg6CisgICAgICAgICogaGVhcC9TbG90VmlzaXRvci5jcHA6CisgICAgICAgIChKU0M6OlNs
b3RWaXNpdG9yOjpkb25hdGVLbm93blBhcmFsbGVsKToKKyAgICAgICAgKiBoZWFwL1Nsb3RWaXNp
dG9yLmg6CisgICAgICAgICogaml0L0V4ZWN1dGFibGVBbGxvY2F0b3IuY3BwOgorICAgICAgICAo
SlNDOjpFeGVjdXRhYmxlQWxsb2NhdG9yOjpnZXRMb2NrIGNvbnN0KToKKyAgICAgICAgKEpTQzo6
ZHVtcEpJVE1lbW9yeSk6CisgICAgICAgICogaml0L0V4ZWN1dGFibGVBbGxvY2F0b3IuaDoKKyAg
ICAgICAgKEpTQzo6RXhlY3V0YWJsZUFsbG9jYXRvckJhc2U6OmdldExvY2sgY29uc3QpOgorICAg
ICAgICAqIGppdC9KSVRXb3JrbGlzdC5jcHA6CisgICAgICAgIChKU0M6OkpJVFdvcmtsaXN0OjpK
SVRXb3JrbGlzdCk6CisgICAgICAgICogaml0L0pJVFdvcmtsaXN0Lmg6CisgICAgICAgICoganNj
LmNwcDoKKyAgICAgICAgKiBwcm9maWxlci9Qcm9maWxlckRhdGFiYXNlLmg6CisgICAgICAgICog
cnVudGltZS9Db25jdXJyZW50SlNMb2NrLmg6CisgICAgICAgICogcnVudGltZS9EZWZlcnJlZFdv
cmtUaW1lci5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNMb2NrLmg6CisgICAgICAgICogcnVudGlt
ZS9TYW1wbGluZ1Byb2ZpbGVyLmNwcDoKKyAgICAgICAgKEpTQzo6RnJhbWVXYWxrZXI6OkZyYW1l
V2Fsa2VyKToKKyAgICAgICAgKEpTQzo6Q0ZyYW1lV2Fsa2VyOjpDRnJhbWVXYWxrZXIpOgorICAg
ICAgICAoSlNDOjpTYW1wbGluZ1Byb2ZpbGVyOjp0YWtlU2FtcGxlKToKKyAgICAgICAgKiBydW50
aW1lL1NhbXBsaW5nUHJvZmlsZXIuaDoKKyAgICAgICAgKEpTQzo6U2FtcGxpbmdQcm9maWxlcjo6
Z2V0TG9jayk6CisgICAgICAgICogcnVudGltZS9WTS5oOgorICAgICAgICAqIHJ1bnRpbWUvVk1U
cmFwcy5jcHA6CisgICAgICAgIChKU0M6OlZNVHJhcHM6OmludmFsaWRhdGVDb2RlQmxvY2tzT25T
dGFjayk6CisgICAgICAgIChKU0M6OlZNVHJhcHM6OlZNVHJhcHMpOgorICAgICAgICAqIHJ1bnRp
bWUvVk1UcmFwcy5oOgorICAgICAgICAqIHRvb2xzL0Z1bmN0aW9uT3ZlcnJpZGVzLmg6CisgICAg
ICAgICogdG9vbHMvVk1JbnNwZWN0b3IuY3BwOgorICAgICAgICAoSlNDOjplbnN1cmVJc1NhZmVU
b0xvY2spOgorICAgICAgICAqIHRvb2xzL1ZNSW5zcGVjdG9yLmg6CisgICAgICAgIChKU0M6OlZN
SW5zcGVjdG9yOjpnZXRMb2NrKToKKyAgICAgICAgKiB3YXNtL1dhc21DYWxsZWVSZWdpc3RyeS5o
OgorICAgICAgICAoSlNDOjpXYXNtOjpDYWxsZWVSZWdpc3RyeTo6Z2V0TG9jayk6CisgICAgICAg
ICogd2FzbS9XYXNtUGxhbi5oOgorICAgICAgICAqIHdhc20vV2FzbVN0cmVhbWluZ0NvbXBpbGVy
Lmg6CisgICAgICAgICogd2FzbS9XYXNtVGh1bmtzLmg6CisgICAgICAgICogd2FzbS9XYXNtV29y
a2xpc3QuY3BwOgorICAgICAgICAoSlNDOjpXYXNtOjpXb3JrbGlzdDo6V29ya2xpc3QpOgorICAg
ICAgICAqIHdhc20vV2FzbVdvcmtsaXN0Lmg6CisKIDIwMjEtMDUtMjMgIENocmlzIER1bWV6ICA8
Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBVc2UgQ2hlY2tlZExvY2sgaW4gZXZlbiBtb3Jl
IHBsYWNlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV1RGL0No
YW5nZUxvZwppbmRleCAxZGYzZjhlMGJhMWU3MjU3MWUwNmU2ZmE1ZDZjMjk5NzBkOTI2MmRmLi4w
MTczMDA1YThiMjg1MTRmZDU3NWM2NTdkMjk4YmZjY2QwNDhjNWQwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV1RGL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY2
IEBACisyMDIxLTA1LTIzICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAg
ICAgTWFrZSBDaGVja2VkTG9jayB0aGUgZGVmYXVsdCBMb2NrCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjYxNTcKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNYWtlIENoZWNrZWRMb2NrIHRoZSBkZWZhdWx0
IExvY2sgc28gdGhhdCB3ZSBnZXQgbW9yZSBiZW5lZml0cyBmcm9tIENsYW5nCisgICAgICAgIFRo
cmVhZCBTYWZldHkgQW5hbHlzaXMuIE5vdGUgdGhhdCBDaGVja2VkTG9jayAxMDAlIHJlbGllcyBv
biB0aGUgZXhpc3RpbmcKKyAgICAgICAgTG9jayBpbXBsZW1lbnRhdGlvbiBhbmQgbWVyZWx5IGFk
ZHMgdGhlIGNsYW5nIGFub3RhdGlvbnMgZm9yIHRocmVhZAorICAgICAgICBzYWZldHkuCisKKyAg
ICAgICAgVGhhdCB0aGlzIHBhdGNoIGRvZXMgaXM6CisgICAgICAgIDEuIFJlbmFtZSB0aGUgTG9j
ayBjbGFzcyB0byBVbmNoZWNrZWRMb2NrCisgICAgICAgIDIuIFJlbmFtZSB0aGUgQ2hlY2tlZExv
Y2sgY2xhc3MgdG8gTG9jaworICAgICAgICAzLiBSZW5hbWUgdGhlIENvbmRpdGlvbiBjbGFzcyB0
byBVbmNoZWNrZWRDb25kaXRpb24KKyAgICAgICAgNC4gUmVuYW1lIHRoZSBDaGVja2VkQ29uZGl0
aW9uIGNsYXNzIHRvIENvbmRpdGlvbgorICAgICAgICA1LiBVcGRhdGUgdGhlIHR5cGVzIG9mIGNl
cnRhaW4gdmFyaWFibGVzIGZyb20gTG9jayAvIENvbmRpdGlvbiB0bworICAgICAgICAgICBVbmNo
ZWNrZWRMb2NrIC8gVW5jaGVja2VkQ29uZGl0aW9uIGlmIEkgZ290IGEgYnVpbGQgZmFpbHVyZS4g
QnVpbGQKKyAgICAgICAgICAgZmFpbHVyZXMgYXJlIHVzdWFsbHkgY2F1c2VkIGJ5IHRoZSBmb2xs
b3dpbmcgZmFjdHM6CisgICAgICAgICAgIC0gTG9ja2VyPENoZWNrZWRMb2NrPiBkb2Vzbid0IHN1
YmNsYXNzIEFic3RyYWN0TG9ja2VyIHdoaWNoIGEgbG90IG9mCisgICAgICAgICAgICAgSlNDIGNv
ZGUgcGFzc2VzIGFzIGFyZ3VtZW50CisgICAgICAgICAgIC0gTG9ja2VyPENoZWNrZWRMb2NrPiBo
YXMgbm8gbW92ZSBjb25zdHJ1Y3RvcgorICAgICAgICAgICAtIExvY2tlcjxDaGVja2VkTG9jaz4g
Y2Fubm90IGJlIGNvbnN0cnVjdGVkIGZyb20gYSBsb2NrIHBvaW50ZXIsIG9ubHkKKyAgICAgICAg
ICAgICBhIHJlZmVyZW5jZQorICAgICAgICAKKyAgICAgICAgRm9yIG5vdywgQ2hlY2tlZExvY2sg
YW5kIENoZWNrZWRDb25kaXRpb24gcmVtYWluIGFzIGFsaWFzZXMgdG8gTG9jayBhbmQKKyAgICAg
ICAgQ29uZGl0aW9uLCBpbiB0aGVpciByZXNwZWN0aXZlIENoZWNrZWRMb2NrLmggLyBDaGVja2Vk
Q29uZGl0aW9uLmggaGVhZGVycy4KKyAgICAgICAgSSB3aWxsIGRyb3AgdGhlbSBpbiBhIGZvbGxv
dy11cCB0byByZWR1Y2UgcGF0Y2ggc2l6ZS4KKworICAgICAgICBJIHdpbGwgYWxzbyBmb2xsb3ct
dXAgdG8gdHJ5IGFuZCBnZXQgcmlkIG9mIGFzIG11Y2ggdXNhZ2Ugb2YgVW5jaGVja2VkTG9jawor
ICAgICAgICBhbmQgVW5jaGVja2VkQ29uZGl0aW9uIGFzIHBvc3NpYmxlLiBJIGRpZCBub3QgdHJ5
IHZlcnkgaGFyZCBpbiB0aGlzIHBhdGNoCisgICAgICAgIHRvIHJlZHVjZSBwYXRjaCBzaXplLgor
CisgICAgICAgICogd3RmL0F1dG9tYXRpY1RocmVhZC5jcHA6CisgICAgICAgIChXVEY6OkF1dG9t
YXRpY1RocmVhZENvbmRpdGlvbjo6d2FpdCk6CisgICAgICAgIChXVEY6OkF1dG9tYXRpY1RocmVh
ZENvbmRpdGlvbjo6d2FpdEZvcik6CisgICAgICAgIChXVEY6OkF1dG9tYXRpY1RocmVhZDo6QXV0
b21hdGljVGhyZWFkKToKKyAgICAgICAgKiB3dGYvQXV0b21hdGljVGhyZWFkLmg6CisgICAgICAg
ICogd3RmL0NoZWNrZWRDb25kaXRpb24uaDoKKyAgICAgICAgKiB3dGYvQ2hlY2tlZExvY2suaDoK
KyAgICAgICAgKiB3dGYvQ29uZGl0aW9uLmg6CisgICAgICAgICogd3RmL0xvY2suY3BwOgorICAg
ICAgICAoV1RGOjpVbmNoZWNrZWRMb2NrOjpsb2NrU2xvdyk6CisgICAgICAgIChXVEY6OlVuY2hl
Y2tlZExvY2s6OnVubG9ja1Nsb3cpOgorICAgICAgICAoV1RGOjpVbmNoZWNrZWRMb2NrOjp1bmxv
Y2tGYWlybHlTbG93KToKKyAgICAgICAgKFdURjo6VW5jaGVja2VkTG9jazo6c2FmZXBvaW50U2xv
dyk6CisgICAgICAgICogd3RmL0xvY2suaDoKKyAgICAgICAgKFdURjo6V1RGX0FTU0VSVFNfQUNR
VUlSRURfTE9DSyk6CisgICAgICAgICogd3RmL01ldGFBbGxvY2F0b3IuY3BwOgorICAgICAgICAo
V1RGOjpNZXRhQWxsb2NhdG9yOjpyZWxlYXNlKToKKyAgICAgICAgKFdURjo6TWV0YUFsbG9jYXRv
cjo6TWV0YUFsbG9jYXRvcik6CisgICAgICAgIChXVEY6Ok1ldGFBbGxvY2F0b3I6OmFsbG9jYXRl
KToKKyAgICAgICAgKFdURjo6TWV0YUFsbG9jYXRvcjo6Y3VycmVudFN0YXRpc3RpY3MpOgorICAg
ICAgICAqIHd0Zi9NZXRhQWxsb2NhdG9yLmg6CisgICAgICAgICogd3RmL1BhcmFsbGVsSGVscGVy
UG9vbC5jcHA6CisgICAgICAgIChXVEY6OlBhcmFsbGVsSGVscGVyUG9vbDo6UGFyYWxsZWxIZWxw
ZXJQb29sKToKKyAgICAgICAgKiB3dGYvUGFyYWxsZWxIZWxwZXJQb29sLmg6CisgICAgICAgICog
d3RmL1JlY3Vyc2l2ZUxvY2tBZGFwdGVyLmg6CisgICAgICAgICogd3RmL1dvcmtlclBvb2wuY3Bw
OgorICAgICAgICAoV1RGOjpXb3JrZXJQb29sOjpXb3JrZXJQb29sKToKKyAgICAgICAgKiB3dGYv
V29ya2VyUG9vbC5oOgorCiAyMDIxLTA1LTIzICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5j
b20+CiAKICAgICAgICAgRHJvcCBXVEY6OnRyeUhvbGRMb2NrKCkgYXMgaXQgaXMgaW5jb21wYXRp
YmxlIHdpdGggQ2xhbmcgVGhyZWFkIFNhZmV0eSBBbmFseXNpcwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDVkYmE1
ZmZmZmMwOTJiZDBjYTgyNmUxM2FiODBmMmQyYjJhZmNhZjEuLmMyMjkzNTI2NzI4NzU0NjUzMThm
MTU1ZGRhMTUyNGI4MGRkZWIxYTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2NyBAQAorMjAyMS0w
NS0yMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIE1ha2UgQ2hl
Y2tlZExvY2sgdGhlIGRlZmF1bHQgTG9jaworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjI2MTU3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgTWFrZSBDaGVja2VkTG9jayB0aGUgZGVmYXVsdCBMb2NrIHNvIHRo
YXQgd2UgZ2V0IG1vcmUgYmVuZWZpdHMgZnJvbSBDbGFuZworICAgICAgICBUaHJlYWQgU2FmZXR5
IEFuYWx5c2lzLiBOb3RlIHRoYXQgQ2hlY2tlZExvY2sgMTAwJSByZWxpZXMgb24gdGhlIGV4aXN0
aW5nCisgICAgICAgIExvY2sgaW1wbGVtZW50YXRpb24gYW5kIG1lcmVseSBhZGRzIHRoZSBjbGFu
ZyBhbm90YXRpb25zIGZvciB0aHJlYWQgCisgICAgICAgIHNhZmV0eS4KKworICAgICAgICBUaGF0
IHRoaXMgcGF0Y2ggZG9lcyBpczoKKyAgICAgICAgMS4gUmVuYW1lIHRoZSBMb2NrIGNsYXNzIHRv
IFVuY2hlY2tlZExvY2sKKyAgICAgICAgMi4gUmVuYW1lIHRoZSBDaGVja2VkTG9jayBjbGFzcyB0
byBMb2NrCisgICAgICAgIDMuIFJlbmFtZSB0aGUgQ29uZGl0aW9uIGNsYXNzIHRvIFVuY2hlY2tl
ZENvbmRpdGlvbgorICAgICAgICA0LiBSZW5hbWUgdGhlIENoZWNrZWRDb25kaXRpb24gY2xhc3Mg
dG8gQ29uZGl0aW9uCisgICAgICAgIDUuIFVwZGF0ZSB0aGUgdHlwZXMgb2YgY2VydGFpbiB2YXJp
YWJsZXMgZnJvbSBMb2NrIC8gQ29uZGl0aW9uIHRvCisgICAgICAgICAgIFVuY2hlY2tlZExvY2sg
LyBVbmNoZWNrZWRDb25kaXRpb24gaWYgSSBnb3QgYSBidWlsZCBmYWlsdXJlLiBCdWlsZCAKKyAg
ICAgICAgICAgZmFpbHVyZXMgYXJlIHVzdWFsbHkgY2F1c2VkIGJ5IHRoZSBmb2xsb3dpbmcgZmFj
dHM6CisgICAgICAgICAgIC0gTG9ja2VyPENoZWNrZWRMb2NrPiBkb2Vzbid0IHN1YmNsYXNzIEFi
c3RyYWN0TG9ja2VyIHdoaWNoIGEgbG90IG9mCisgICAgICAgICAgICAgSlNDIGNvZGUgcGFzc2Vz
IGFzIGFyZ3VtZW50CisgICAgICAgICAgIC0gTG9ja2VyPENoZWNrZWRMb2NrPiBoYXMgbm8gbW92
ZSBjb25zdHJ1Y3RvcgorICAgICAgICAgICAtIExvY2tlcjxDaGVja2VkTG9jaz4gY2Fubm90IGJl
IGNvbnN0cnVjdGVkIGZyb20gYSBsb2NrIHBvaW50ZXIsIG9ubHkKKyAgICAgICAgICAgICBhIHJl
ZmVyZW5jZQorCisgICAgICAgIEZvciBub3csIENoZWNrZWRMb2NrIGFuZCBDaGVja2VkQ29uZGl0
aW9uIHJlbWFpbiBhcyBhbGlhc2VzIHRvIExvY2sgYW5kIAorICAgICAgICBDb25kaXRpb24sIGlu
IHRoZWlyIHJlc3BlY3RpdmUgQ2hlY2tlZExvY2suaCAvIENoZWNrZWRDb25kaXRpb24uaCBoZWFk
ZXJzLgorICAgICAgICBJIHdpbGwgZHJvcCB0aGVtIGluIGEgZm9sbG93LXVwIHRvIHJlZHVjZSBw
YXRjaCBzaXplLgorCisgICAgICAgIEkgd2lsbCBhbHNvIGZvbGxvdy11cCB0byB0cnkgYW5kIGdl
dCByaWQgb2YgYXMgbXVjaCB1c2FnZSBvZiBVbmNoZWNrZWRMb2NrCisgICAgICAgIGFuZCBVbmNo
ZWNrZWRDb25kaXRpb24gYXMgcG9zc2libGUuIEkgZGlkIG5vdCB0cnkgdmVyeSBoYXJkIGluIHRo
aXMgcGF0Y2gKKyAgICAgICAgdG8gcmVkdWNlIHBhdGNoIHNpemUuIAorCisgICAgICAgICogTW9k
dWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQlNlcnZlci5jcHA6CisgICAgICAgICogTW9kdWxlcy93
ZWJhdWRpby9NZWRpYUVsZW1lbnRBdWRpb1NvdXJjZU5vZGUuaDoKKyAgICAgICAgKiBNb2R1bGVz
L3dlYmRhdGFiYXNlL09yaWdpbkxvY2suY3BwOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9N
R2xvYmFsT2JqZWN0Lmg6CisgICAgICAgICogZG9tL05vZGUuY3BwOgorICAgICAgICAqIGh0bWwv
SFRNTE1lZGlhRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50
OjpjcmVhdGVNZWRpYVBsYXllcik6CisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xDb250ZXh0
R3JvdXAuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xDb250ZXh0R3JvdXA6Om9iamVjdEdy
YXBoTG9ja0ZvckFDb250ZXh0KToKKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTENvbnRleHRH
cm91cC5oOgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMQ29udGV4dE9iamVjdC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpXZWJHTENvbnRleHRPYmplY3Q6Om9iamVjdEdyYXBoTG9ja0ZvckNv
bnRleHQpOgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMQ29udGV4dE9iamVjdC5oOgorICAg
ICAgICAqIGh0bWwvY2FudmFzL1dlYkdMT2JqZWN0Lmg6CisgICAgICAgICogaHRtbC9jYW52YXMv
V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJl
bmRlcmluZ0NvbnRleHRCYXNlOjpvYmplY3RHcmFwaExvY2spOgorICAgICAgICAqIGh0bWwvY2Fu
dmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuaDoKKyAgICAgICAgKiBodG1sL2NhbnZhcy9X
ZWJHTFNoYXJlZE9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFNoYXJlZE9iamVj
dDo6b2JqZWN0R3JhcGhMb2NrRm9yQ29udGV4dCk6CisgICAgICAgICogaHRtbC9jYW52YXMvV2Vi
R0xTaGFyZWRPYmplY3QuaDoKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5n
VHJlZU1hYy5oOgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL1JldmVyYkNvbnZvbHZlci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSZXZlcmJDb252b2x2ZXI6OmJhY2tncm91bmRUaHJlYWRFbnRy
eSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvU2hhZG93Qmx1ci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTY3JhdGNoQnVmZmVyOjpsb2NrKToKKyAgICAgICAgKFdlYkNvcmU6OlNoYWRv
d0JsdXI6OmRyYXdSZWN0U2hhZG93V2l0aFRpbGluZyk6CisgICAgICAgIChXZWJDb3JlOjpTaGFk
b3dCbHVyOjpkcmF3SW5zZXRTaGFkb3dXaXRoVGlsaW5nKToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvVmlkZW9TaW5rR1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvZW1lL1dlYktpdENvbW1vbkVuY3J5cHRpb25EZWNyeXB0
b3JHU3RyZWFtZXIuY3BwOgorCiAyMDIxLTA1LTIzICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBs
ZS5jb20+CiAKICAgICAgICAgVXNlIENoZWNrZWRMb2NrIGluIGV2ZW4gbW9yZSBwbGFjZXMKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cKaW5kZXggNDZkMzYwY2ZmMzRmMDI3ZWVkMzY5Nzg5ZjQ1NjI2M2EwMmFhY2YxOS4uMGRiZWEw
ZmVlN2YyODY5ZGYxMzkyZjMzMWRhMTRlZDRkYzNiYzQ4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0
NCBAQAorMjAyMS0wNS0yMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAg
ICAgIE1ha2UgQ2hlY2tlZExvY2sgdGhlIGRlZmF1bHQgTG9jaworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI2MTU3CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWFrZSBDaGVja2VkTG9jayB0aGUgZGVmYXVs
dCBMb2NrIHNvIHRoYXQgd2UgZ2V0IG1vcmUgYmVuZWZpdHMgZnJvbSBDbGFuZworICAgICAgICBU
aHJlYWQgU2FmZXR5IEFuYWx5c2lzLiBOb3RlIHRoYXQgQ2hlY2tlZExvY2sgMTAwJSByZWxpZXMg
b24gdGhlIGV4aXN0aW5nCisgICAgICAgIExvY2sgaW1wbGVtZW50YXRpb24gYW5kIG1lcmVseSBh
ZGRzIHRoZSBjbGFuZyBhbm90YXRpb25zIGZvciB0aHJlYWQgCisgICAgICAgIHNhZmV0eS4KKwor
ICAgICAgICBUaGF0IHRoaXMgcGF0Y2ggZG9lcyBpczoKKyAgICAgICAgMS4gUmVuYW1lIHRoZSBM
b2NrIGNsYXNzIHRvIFVuY2hlY2tlZExvY2sKKyAgICAgICAgMi4gUmVuYW1lIHRoZSBDaGVja2Vk
TG9jayBjbGFzcyB0byBMb2NrCisgICAgICAgIDMuIFJlbmFtZSB0aGUgQ29uZGl0aW9uIGNsYXNz
IHRvIFVuY2hlY2tlZENvbmRpdGlvbgorICAgICAgICA0LiBSZW5hbWUgdGhlIENoZWNrZWRDb25k
aXRpb24gY2xhc3MgdG8gQ29uZGl0aW9uCisgICAgICAgIDUuIFVwZGF0ZSB0aGUgdHlwZXMgb2Yg
Y2VydGFpbiB2YXJpYWJsZXMgZnJvbSBMb2NrIC8gQ29uZGl0aW9uIHRvCisgICAgICAgICAgIFVu
Y2hlY2tlZExvY2sgLyBVbmNoZWNrZWRDb25kaXRpb24gaWYgSSBnb3QgYSBidWlsZCBmYWlsdXJl
LiBCdWlsZCAKKyAgICAgICAgICAgZmFpbHVyZXMgYXJlIHVzdWFsbHkgY2F1c2VkIGJ5IHRoZSBm
b2xsb3dpbmcgZmFjdHM6CisgICAgICAgICAgIC0gTG9ja2VyPENoZWNrZWRMb2NrPiBkb2Vzbid0
IHN1YmNsYXNzIEFic3RyYWN0TG9ja2VyIHdoaWNoIGEgbG90IG9mCisgICAgICAgICAgICAgSlND
IGNvZGUgcGFzc2VzIGFzIGFyZ3VtZW50CisgICAgICAgICAgIC0gTG9ja2VyPENoZWNrZWRMb2Nr
PiBoYXMgbm8gbW92ZSBjb25zdHJ1Y3RvcgorICAgICAgICAgICAtIExvY2tlcjxDaGVja2VkTG9j
az4gY2Fubm90IGJlIGNvbnN0cnVjdGVkIGZyb20gYSBsb2NrIHBvaW50ZXIsIG9ubHkKKyAgICAg
ICAgICAgICBhIHJlZmVyZW5jZQorCisgICAgICAgIEZvciBub3csIENoZWNrZWRMb2NrIGFuZCBD
aGVja2VkQ29uZGl0aW9uIHJlbWFpbiBhcyBhbGlhc2VzIHRvIExvY2sgYW5kIAorICAgICAgICBD
b25kaXRpb24sIGluIHRoZWlyIHJlc3BlY3RpdmUgQ2hlY2tlZExvY2suaCAvIENoZWNrZWRDb25k
aXRpb24uaCBoZWFkZXJzLgorICAgICAgICBJIHdpbGwgZHJvcCB0aGVtIGluIGEgZm9sbG93LXVw
IHRvIHJlZHVjZSBwYXRjaCBzaXplLgorCisgICAgICAgIEkgd2lsbCBhbHNvIGZvbGxvdy11cCB0
byB0cnkgYW5kIGdldCByaWQgb2YgYXMgbXVjaCB1c2FnZSBvZiBVbmNoZWNrZWRMb2NrCisgICAg
ICAgIGFuZCBVbmNoZWNrZWRDb25kaXRpb24gYXMgcG9zc2libGUuIEkgZGlkIG5vdCB0cnkgdmVy
eSBoYXJkIGluIHRoaXMgcGF0Y2gKKyAgICAgICAgdG8gcmVkdWNlIHBhdGNoIHNpemUuIAorCisg
ICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTC5jcHA6
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMOjpwYWludFBpeGVsQnVm
ZmVyVG9JbWFnZUJ1ZmZlcik6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvSW5kZXhlZERCL1dl
YklEQlNlcnZlci5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9nbGliL0ljb25EYXRhYmFz
ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvV0tQcmludGluZ1ZpZXcubW06CisgICAgICAg
ICgtW1dLUHJpbnRpbmdWaWV3IGtub3dzUGFnZVJhbmdlOl0pOgorCiAyMDIxLTA1LTIzICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgVXNlIENoZWNrZWRMb2NrIGlu
IGV2ZW4gbW9yZSBwbGFjZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3Nl
bWJsZXIvUGVyZkxvZy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9QZXJmTG9n
LmgKaW5kZXggOGYyNGU4ZmE4YTNlMWI2YmM5NmQ1OThiNWQwZjI1MTUwYTdmZjcyMS4uOTc2MGRm
NjY1OGQyOTMzM2FmYTlhZGE4NzFhOTVjZTMyY2EwZDI0ZCAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9QZXJmTG9nLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2Fzc2VtYmxlci9QZXJmTG9nLmgKQEAgLTUwLDcgKzUwLDcgQEAgcHJpdmF0ZToKICAgICB2
b2lkKiBtX21hcmtlciB7IG51bGxwdHIgfTsKICAgICB1aW50NjRfdCBtX2NvZGVJbmRleCB7IDAg
fTsKICAgICBpbnQgbV9mZCB7IC0xIH07Ci0gICAgTG9jayBtX2xvY2s7CisgICAgVW5jaGVja2Vk
TG9jayBtX2xvY2s7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvdGVzdG1hc20uY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Fzc2VtYmxlci90ZXN0bWFzbS5jcHAKaW5kZXggMTkxZDE4MjkzNWFjMWE2ZTZmMGI1
MGI3YTMxM2JkOTg4N2FkYTQyMC4uZDM1M2U3MTJmODk5YzMwZTc5YmQ1MWM1ZGNjZDU3M2ExZDBl
YmM4MyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci90ZXN0bWFz
bS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci90ZXN0bWFzbS5jcHAK
QEAgLTE1Nyw3ICsxNTcsNyBAQCBuYW1lc3BhY2UgewogdXNpbmcgQ1BVU3RhdGUgPSBQcm9iZTo6
Q1BVU3RhdGU7CiAjZW5kaWYKIAotTG9jayBjcmFzaExvY2s7CitVbmNoZWNrZWRMb2NrIGNyYXNo
TG9jazsKIAogdHlwZWRlZiBXVEY6OkZ1bmN0aW9uPHZvaWQoQ0NhbGxIZWxwZXJzJik+IEdlbmVy
YXRvcjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDb21tb24u
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDb21tb24uY3BwCmluZGV4IGE3YWJj
NjQ3NDkzZDJiNjhkOThkYzJhNDAxNGJjMzNjN2RhYjg1ZmIuLjg3NjNjM2ZkNTFmYjE2NTRjNjk1
NDA0YTg1ZjY3YjBiOWU4MzcwNTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHQ29tbW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NvbW1v
bi5jcHAKQEAgLTM1LDcgKzM1LDcgQEAgbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBERkcgewog
CiBjb25zdCBjaGFyKiBjb25zdCB0aWVyTmFtZSA9ICJERkcgIjsKIAotc3RhdGljIExvY2sgY3Jh
c2hMb2NrOworc3RhdGljIFVuY2hlY2tlZExvY2sgY3Jhc2hMb2NrOwogCiB2b2lkIHN0YXJ0Q3Jh
c2hpbmcoKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdUaHJl
YWREYXRhLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1RocmVhZERhdGEuaAppbmRl
eCAzN2RmOWJkMTIxNTQ5Y2RlZDExZTk5ZjQyZmZkMmM1MGYwMjUyZDg2Li41MjJiN2QyYjdjMzYx
ZThiOWQzODBjNzI4Y2ZiOGEwNWIxNzQ2OWJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR1RocmVhZERhdGEuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1RocmVhZERhdGEuaApAQCAtNDcsNyArNDcsNyBAQCBwcml2YXRlOgogICAgIAogICAgIFdv
cmtsaXN0KiBtX3dvcmtsaXN0OwogICAgIFJlZlB0cjxBdXRvbWF0aWNUaHJlYWQ+IG1fdGhyZWFk
OwotICAgIExvY2sgbV9yaWdodFRvUnVuOworICAgIFVuY2hlY2tlZExvY2sgbV9yaWdodFRvUnVu
OwogICAgIFNhZmVwb2ludCogbV9zYWZlcG9pbnQ7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1dvcmtsaXN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHV29ya2xpc3QuY3BwCmluZGV4IDRkMjI4Y2ZlODdhZDk4MTkzNmMwN2MwOWQ0MWI3
Mjc1MTU1OTRhOTEuLmQxNTdhZGY4NzZkYzg0NjgzYTg2YzA0NmVhMmJlZWNiYWI5OWE5MzcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHV29ya2xpc3QuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHV29ya2xpc3QuY3BwCkBAIC0zOSw3ICszOSw3
IEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKIAogY2xhc3MgV29ya2xpc3Q6OlRo
cmVhZEJvZHkgZmluYWwgOiBwdWJsaWMgQXV0b21hdGljVGhyZWFkIHsKIHB1YmxpYzoKLSAgICBU
aHJlYWRCb2R5KGNvbnN0IEFic3RyYWN0TG9ja2VyJiBsb2NrZXIsIFdvcmtsaXN0JiB3b3JrbGlz
dCwgVGhyZWFkRGF0YSYgZGF0YSwgQm94PExvY2s+IGxvY2ssIFJlZjxBdXRvbWF0aWNUaHJlYWRD
b25kaXRpb24+JiYgY29uZGl0aW9uLCBpbnQgcmVsYXRpdmVQcmlvcml0eSkKKyAgICBUaHJlYWRC
b2R5KGNvbnN0IEFic3RyYWN0TG9ja2VyJiBsb2NrZXIsIFdvcmtsaXN0JiB3b3JrbGlzdCwgVGhy
ZWFkRGF0YSYgZGF0YSwgQm94PFVuY2hlY2tlZExvY2s+IGxvY2ssIFJlZjxBdXRvbWF0aWNUaHJl
YWRDb25kaXRpb24+JiYgY29uZGl0aW9uLCBpbnQgcmVsYXRpdmVQcmlvcml0eSkKICAgICAgICAg
OiBBdXRvbWF0aWNUaHJlYWQobG9ja2VyLCBsb2NrLCBXVEZNb3ZlKGNvbmRpdGlvbiksIFRocmVh
ZFR5cGU6OkNvbXBpbGVyKQogICAgICAgICAsIG1fd29ya2xpc3Qod29ya2xpc3QpCiAgICAgICAg
ICwgbV9kYXRhKGRhdGEpCkBAIC0xODEsNyArMTgxLDcgQEAgc3RhdGljIENTdHJpbmcgY3JlYXRl
V29ya2xpc3ROYW1lKENTdHJpbmcmJiB0aWVyTmFtZSkKIFdvcmtsaXN0OjpXb3JrbGlzdChDU3Ry
aW5nJiYgdGllck5hbWUpCiAgICAgOiBtX3RocmVhZE5hbWUoY3JlYXRlV29ya2xpc3ROYW1lKFdU
Rk1vdmUodGllck5hbWUpKSkKICAgICAsIG1fcGxhbkVucXVldWVkKEF1dG9tYXRpY1RocmVhZENv
bmRpdGlvbjo6Y3JlYXRlKCkpCi0gICAgLCBtX2xvY2soQm94PExvY2s+OjpjcmVhdGUoKSkKKyAg
ICAsIG1fbG9jayhCb3g8VW5jaGVja2VkTG9jaz46OmNyZWF0ZSgpKQogewogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1dvcmtsaXN0LmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1dvcmtsaXN0LmgKaW5kZXggMWNlMDJjMDdkOGIxMjgxOTRiY2Mw
M2M3ZjJhNTQxY2QwYTVmNDUyOS4uNTc2ZTAzZTQ3ZTZlZjUwM2M2ZDAxMTZlY2ZiZGMwYThjNmM3
NWM4OCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdXb3JrbGlzdC5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHV29ya2xpc3QuaApAQCAtMTEwLDEw
ICsxMTAsMTAgQEAgcHJpdmF0ZToKICAgICAvLyBiZSBjb21wbGV0ZWQuCiAgICAgVmVjdG9yPFJl
ZlB0cjxQbGFuPiwgMTY+IG1fcmVhZHlQbGFuczsKICAgICBSZWY8QXV0b21hdGljVGhyZWFkQ29u
ZGl0aW9uPiBtX3BsYW5FbnF1ZXVlZDsKLSAgICBDb25kaXRpb24gbV9wbGFuQ29tcGlsZWQ7Cisg
ICAgVW5jaGVja2VkQ29uZGl0aW9uIG1fcGxhbkNvbXBpbGVkOwogCi0gICAgTG9jayBtX3N1c3Bl
bnNpb25Mb2NrOwotICAgIEJveDxMb2NrPiBtX2xvY2s7CisgICAgVW5jaGVja2VkTG9jayBtX3N1
c3BlbnNpb25Mb2NrOworICAgIEJveDxVbmNoZWNrZWRMb2NrPiBtX2xvY2s7CiB9OwogCiBKU19F
WFBPUlRfUFJJVkFURSB1bnNpZ25lZCBzZXROdW1iZXJPZkRGR0NvbXBpbGVyVGhyZWFkcyh1bnNp
Z25lZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZHluYmVuY2guY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2R5bmJlbmNoLmNwcAppbmRleCA4ZjllNWViNzQxMDQ3NWZi
N2M4YjA4NjkyNjIzMzRmZTJhOTc4OTg1Li43OTUyNjExMGUyYTNhNjIwNTJkMTA5ZTliZGI4OGU5
ZWVhYmZmZjU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZHluYmVuY2guY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9keW5iZW5jaC5jcHAKQEAgLTQwLDcgKzQwLDcg
QEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAogbmFtZXNwYWNlIHsKIAotTG9jayBjcmFzaExvY2s7
CitVbmNoZWNrZWRMb2NrIGNyYXNoTG9jazsKIGNvbnN0IGNoYXIqIG5hbWVGaWx0ZXI7CiB1bnNp
Z25lZCByZXF1ZXN0ZWRJdGVyYXRpb25Db3VudDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2hlYXAvQmxvY2tEaXJlY3RvcnkuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9o
ZWFwL0Jsb2NrRGlyZWN0b3J5LmgKaW5kZXggZGFhMDNjNDdlZGY5ZDM2ZDE1NmJkNWQxYTY2MjFi
ZWU2YWFkZjhhZC4uOTAxNTg4Yzk0MzljMzVkZmM4MDRhMGI3NTdjNWU1YjU2M2Y0NGE0ZSAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvQmxvY2tEaXJlY3RvcnkuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9CbG9ja0RpcmVjdG9yeS5oCkBAIC05Myw3ICs5
Myw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgdXBkYXRlUGVyY2VudGFnZU9mUGFnZWRPdXRQYWdl
cyhXVEY6OlNpbXBsZVN0YXRzJik7CiAgICAgCi0gICAgTG9jayYgYml0dmVjdG9yTG9jaygpIHsg
cmV0dXJuIG1fYml0dmVjdG9yTG9jazsgfQorICAgIFVuY2hlY2tlZExvY2smIGJpdHZlY3Rvckxv
Y2soKSB7IHJldHVybiBtX2JpdHZlY3RvckxvY2s7IH0KIAogI2RlZmluZSBCTE9DS19ESVJFQ1RP
UllfQklUX0FDQ0VTU09SUyhsb3dlckJpdE5hbWUsIGNhcGl0YWxCaXROYW1lKSAgICAgXAogICAg
IGJvb2wgaXMgIyMgY2FwaXRhbEJpdE5hbWUoY29uc3QgQWJzdHJhY3RMb2NrZXImLCBzaXplX3Qg
aW5kZXgpIGNvbnN0IHsgcmV0dXJuIG1fYml0cy5pcyAjIyBjYXBpdGFsQml0TmFtZShpbmRleCk7
IH0gXApAQCAtMTU1LDcgKzE1NSw3IEBAIHByaXZhdGU6CiAgICAgLy8gTXV0YXRvciB1c2VzIHRo
aXMgdG8gZ3VhcmQgcmVzaXppbmcgdGhlIGJpdHZlY3RvcnMuIFRob3NlIHRoaW5ncyBpbiB0aGUg
R0MgdGhhdCBtYXkgcnVuCiAgICAgLy8gY29uY3VycmVudGx5IHRvIHRoZSBtdXRhdG9yIG11c3Qg
bG9jayB0aGlzIHdoZW4gYWNjZXNzaW5nIHRoZSBiaXR2ZWN0b3JzLgogICAgIEJsb2NrRGlyZWN0
b3J5Qml0cyBtX2JpdHM7Ci0gICAgTG9jayBtX2JpdHZlY3RvckxvY2s7CisgICAgVW5jaGVja2Vk
TG9jayBtX2JpdHZlY3RvckxvY2s7CiAgICAgTG9jayBtX2xvY2FsQWxsb2NhdG9yc0xvY2s7CiAg
ICAgQ2VsbEF0dHJpYnV0ZXMgbV9hdHRyaWJ1dGVzOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaGVhcC9Db2RlQmxvY2tTZXQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9o
ZWFwL0NvZGVCbG9ja1NldC5oCmluZGV4IGIwZGNiNmNjNzdjOWY5OWQzMDJjNzk5ZDk4ZTM5ZTk1
M2U2YWY0MTkuLjg1NmNjMWJiZjhiZDJkMTdjZGNkY2E3ZDNiNDRjNzFmMmZhNzBiMTggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0NvZGVCbG9ja1NldC5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0NvZGVCbG9ja1NldC5oCkBAIC01NCw3ICs1NCw3IEBA
IHB1YmxpYzoKICAgICB2b2lkIGNsZWFyQ3VycmVudGx5RXhlY3V0aW5nKCk7CiAKICAgICBib29s
IGNvbnRhaW5zKGNvbnN0IEFic3RyYWN0TG9ja2VyJiwgdm9pZCogY2FuZGlkYXRlQ29kZUJsb2Nr
KTsKLSAgICBMb2NrJiBnZXRMb2NrKCkgeyByZXR1cm4gbV9sb2NrOyB9CisgICAgVW5jaGVja2Vk
TG9jayYgZ2V0TG9jaygpIHsgcmV0dXJuIG1fbG9jazsgfQogCiAgICAgLy8gVGhpcyBpcyBleHBl
Y3RlZCB0byBydW4gb25seSB3aGVuIHdlJ3JlIG5vdCBhZGRpbmcgdG8gdGhlIHNldCBmb3Igbm93
LiBJZgogICAgIC8vIHRoaXMgbmVlZHMgdG8gcnVuIGNvbmN1cnJlbnRseSBpbiB0aGUgZnV0dXJl
LCB3ZSdsbCBuZWVkIHRvIGxvY2sgYXJvdW5kIHRoaXMuCkBAIC03OCw3ICs3OCw3IEBAIHB1Ymxp
YzoKIHByaXZhdGU6CiAgICAgSGFzaFNldDxDb2RlQmxvY2sqPiBtX2NvZGVCbG9ja3M7CiAgICAg
SGFzaFNldDxDb2RlQmxvY2sqPiBtX2N1cnJlbnRseUV4ZWN1dGluZzsKLSAgICBMb2NrIG1fbG9j
azsKKyAgICBVbmNoZWNrZWRMb2NrIG1fbG9jazsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNwcAppbmRleCA4YmM4NmQyY2E3NTE1YjRiOGUyZjc2
NGRlOTBlMmE2YzI0NzI2NjkxLi44NjFhNDAyZTUwZDBiY2MwZmVhZTYwMzA0N2NmMzVjMmVjZGM0
ZGU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNwcApAQCAtMzAyLDcgKzMwMiw3IEBA
IEhlYXA6OkhlYXAoVk0mIHZtLCBIZWFwVHlwZSBoZWFwVHlwZSkKICAgICAsIG1fc2hhcmVkQ29s
bGVjdG9yTWFya1N0YWNrKG1ha2VVbmlxdWU8TWFya1N0YWNrQXJyYXk+KCkpCiAgICAgLCBtX3No
YXJlZE11dGF0b3JNYXJrU3RhY2sobWFrZVVuaXF1ZTxNYXJrU3RhY2tBcnJheT4oKSkKICAgICAs
IG1faGVscGVyQ2xpZW50KCZoZWFwSGVscGVyUG9vbCgpKQotICAgICwgbV90aHJlYWRMb2NrKEJv
eDxMb2NrPjo6Y3JlYXRlKCkpCisgICAgLCBtX3RocmVhZExvY2soQm94PFVuY2hlY2tlZExvY2s+
OjpjcmVhdGUoKSkKICAgICAsIG1fdGhyZWFkQ29uZGl0aW9uKEF1dG9tYXRpY1RocmVhZENvbmRp
dGlvbjo6Y3JlYXRlKCkpCiB7CiAgICAgbV93b3JsZFN0YXRlLnN0b3JlKDApOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2hlYXAvSGVhcC5oCmluZGV4IDdhNTNlMDUxNWQwNjk2NTNkMDRmYjliYWMzNTU4ZDdlODFk
OTVmMmMuLjY4ZDkwNzRmZGYzZDhlYThmNDg3YjA2NDg3YjgwZDdhMmIxYjgwMzEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaGVhcC9IZWFwLmgKQEAgLTcyMiw4ICs3MjIsOCBAQCBwcml2YXRlOgogICAgIEF0
b21pYzx1bnNpZ25lZD4gbV93b3JsZFN0YXRlOwogICAgIGJvb2wgbV93b3JsZElzU3RvcHBlZCB7
IGZhbHNlIH07CiAgICAgTG9jayBtX3Zpc2l0UmFjZUxvY2s7Ci0gICAgTG9jayBtX21hcmtpbmdN
dXRleDsKLSAgICBDb25kaXRpb24gbV9tYXJraW5nQ29uZGl0aW9uVmFyaWFibGU7CisgICAgVW5j
aGVja2VkTG9jayBtX21hcmtpbmdNdXRleDsKKyAgICBVbmNoZWNrZWRDb25kaXRpb24gbV9tYXJr
aW5nQ29uZGl0aW9uVmFyaWFibGU7CiAKICAgICBNb25vdG9uaWNUaW1lIG1fYmVmb3JlR0M7CiAg
ICAgTW9ub3RvbmljVGltZSBtX2FmdGVyR0M7CkBAIC03NDYsNyArNzQ2LDcgQEAgcHJpdmF0ZToK
IAogICAgIHVpbnQ2NF90IG1fbXV0YXRvckV4ZWN1dGlvblZlcnNpb24geyAwIH07CiAgICAgdWlu
dDY0X3QgbV9waGFzZVZlcnNpb24geyAwIH07Ci0gICAgQm94PExvY2s+IG1fdGhyZWFkTG9jazsK
KyAgICBCb3g8VW5jaGVja2VkTG9jaz4gbV90aHJlYWRMb2NrOwogICAgIFJlZjxBdXRvbWF0aWNU
aHJlYWRDb25kaXRpb24+IG1fdGhyZWFkQ29uZGl0aW9uOyAvLyBUaGUgbXV0YXRvciBtdXN0IG5v
dCB3YWl0IG9uIHRoaXMuIEl0IHdvdWxkIGNhdXNlIGEgZGVhZGxvY2suCiAgICAgUmVmUHRyPEF1
dG9tYXRpY1RocmVhZD4gbV90aHJlYWQ7CiAKQEAgLTc2OCw4ICs3NjgsOCBAQCBwcml2YXRlOgog
I2VuZGlmCiAKICAgICBib29sIG1fcGFyYWxsZWxNYXJrZXJzU2hvdWxkRXhpdCB7IGZhbHNlIH07
Ci0gICAgTG9jayBtX2NvbGxlY3RDb250aW51b3VzbHlMb2NrOwotICAgIENvbmRpdGlvbiBtX2Nv
bGxlY3RDb250aW51b3VzbHlDb25kaXRpb247CisgICAgVW5jaGVja2VkTG9jayBtX2NvbGxlY3RD
b250aW51b3VzbHlMb2NrOworICAgIFVuY2hlY2tlZENvbmRpdGlvbiBtX2NvbGxlY3RDb250aW51
b3VzbHlDb25kaXRpb247CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hcmtlZFNwYWNlLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaGVhcC9NYXJrZWRTcGFjZS5oCmluZGV4IDViZTUxZGU3ZTRjZjk5YjNkNmY0Nzc3N2Yw
MGI2ZDJhOTdhYjgwNGYuLjI2OGI5NzBhNTk4YjQyNWI5ZmNlMzY3ZGIyZWJhZWE3MWViY2MzMWIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hcmtlZFNwYWNlLmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTWFya2VkU3BhY2UuaApAQCAtMTY4LDcgKzE2
OCw3IEBAIHB1YmxpYzoKICAgICAKICAgICBCbG9ja0RpcmVjdG9yeSogZmlyc3REaXJlY3Rvcnko
KSBjb25zdCB7IHJldHVybiBtX2RpcmVjdG9yaWVzLmZpcnN0KCk7IH0KICAgICAKLSAgICBMb2Nr
JiBkaXJlY3RvcnlMb2NrKCkgeyByZXR1cm4gbV9kaXJlY3RvcnlMb2NrOyB9CisgICAgVW5jaGVj
a2VkTG9jayYgZGlyZWN0b3J5TG9jaygpIHsgcmV0dXJuIG1fZGlyZWN0b3J5TG9jazsgfQogICAg
IHZvaWQgYWRkQmxvY2tEaXJlY3RvcnkoY29uc3QgQWJzdHJhY3RMb2NrZXImLCBCbG9ja0RpcmVj
dG9yeSopOwogICAgIAogICAgIC8vIFdoZW4gdGhpcyBpcyB0cnVlIGl0IG1lYW5zIHRoYXQgd2Ug
aGF2ZSBmbGlwcGVkIGJ1dCB0aGUgbWFyayBiaXRzIGhhdmVuJ3QgY29udmVyZ2VkIHlldC4KQEAg
LTIxNCw3ICsyMTQsNyBAQCBwcml2YXRlOgogICAgIEhlYXBWZXJzaW9uIG1fbmV3bHlBbGxvY2F0
ZWRWZXJzaW9uIHsgaW5pdGlhbFZlcnNpb24gfTsKICAgICBib29sIG1faXNJdGVyYXRpbmcgeyBm
YWxzZSB9OwogICAgIGJvb2wgbV9pc01hcmtpbmcgeyBmYWxzZSB9OwotICAgIExvY2sgbV9kaXJl
Y3RvcnlMb2NrOworICAgIFVuY2hlY2tlZExvY2sgbV9kaXJlY3RvcnlMb2NrOwogICAgIE1hcmtl
ZEJsb2NrU2V0IG1fYmxvY2tzOwogICAgIAogICAgIFNlbnRpbmVsTGlua2VkTGlzdDxXZWFrU2V0
LCBCYXNpY1Jhd1NlbnRpbmVsTm9kZTxXZWFrU2V0Pj4gbV9hY3RpdmVXZWFrU2V0czsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hcmtpbmdDb25zdHJhaW50U29sdmVy
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYXJraW5nQ29uc3RyYWludFNvbHZlci5o
CmluZGV4IDhlNGYyZjRkZGYzMWNmYzgwNzFjZjNiZWNiNmU1ZTI3OGFlY2IwMWUuLjM1MGU1NTY2
MjQyODRkYWJlNDczMTdmYzgwZDJmZGQ2YjlhNTg3N2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9oZWFwL01hcmtpbmdDb25zdHJhaW50U29sdmVyLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2hlYXAvTWFya2luZ0NvbnN0cmFpbnRTb2x2ZXIuaApAQCAtOTUsOCArOTUs
OCBAQCBwcml2YXRlOgogICAgIEJpdFZlY3RvciBtX2V4ZWN1dGVkOwogICAgIERlcXVlPFRhc2tX
aXRoQ29uc3RyYWludCwgMzI+IG1fdG9FeGVjdXRlSW5QYXJhbGxlbDsKICAgICBWZWN0b3I8dW5z
aWduZWQsIDMyPiBtX3RvRXhlY3V0ZVNlcXVlbnRpYWxseTsKLSAgICBMb2NrIG1fbG9jazsKLSAg
ICBDb25kaXRpb24gbV9jb25kaXRpb247CisgICAgVW5jaGVja2VkTG9jayBtX2xvY2s7CisgICAg
VW5jaGVja2VkQ29uZGl0aW9uIG1fY29uZGl0aW9uOwogICAgIGJvb2wgbV9waWNrTmV4dElzU3Rp
bGxBY3RpdmUgeyB0cnVlIH07CiAgICAgdW5zaWduZWQgbV9udW1UaHJlYWRzVGhhdE1heVByb2R1
Y2VXb3JrIHsgMCB9OwogICAgIFZlY3RvcjxWaXNpdENvdW50ZXIsIDE2PiBtX3Zpc2l0Q291bnRl
cnM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9TbG90VmlzaXRvci5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9TbG90VmlzaXRvci5jcHAKaW5kZXggZjlh
MTgzMjNjNzI4MzM0NzE5OGQ5Njg4OWRjNTlmNzQzNzhmMjA3Mi4uYWI3MzJjMjRlYzUwZTg5MDli
NDkxZWM5YjE2OWFmMzBmZWM4OTMzNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2hlYXAvU2xvdFZpc2l0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1Ns
b3RWaXNpdG9yLmNwcApAQCAtNDM2LDcgKzQzNiw3IEBAIHZvaWQgU2xvdFZpc2l0b3I6OmRvbmF0
ZUtub3duUGFyYWxsZWwoTWFya1N0YWNrQXJyYXkmIGZyb20sIE1hcmtTdGFja0FycmF5JiB0bykK
IAogICAgIC8vIElmIHdlJ3JlIGNvbnRlbmRpbmcgb24gdGhlIGxvY2ssIGJlIGNvbnNlcnZhdGl2
ZSBhbmQgYXNzdW1lIHRoYXQgYW5vdGhlcgogICAgIC8vIHRocmVhZCBpcyBhbHJlYWR5IGRvbmF0
aW5nLgotICAgIHN0ZDo6dW5pcXVlX2xvY2s8TG9jaz4gbG9jayhtX2hlYXAubV9tYXJraW5nTXV0
ZXgsIHN0ZDo6dHJ5X3RvX2xvY2spOworICAgIHN0ZDo6dW5pcXVlX2xvY2s8VW5jaGVja2VkTG9j
az4gbG9jayhtX2hlYXAubV9tYXJraW5nTXV0ZXgsIHN0ZDo6dHJ5X3RvX2xvY2spOwogICAgIGlm
ICghbG9jay5vd25zX2xvY2soKSkKICAgICAgICAgcmV0dXJuOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaGVhcC9TbG90VmlzaXRvci5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2hlYXAvU2xvdFZpc2l0b3IuaAppbmRleCA0MjMzM2FmM2UwMjAyNjdlNTM3ZTA5M2U0YjA2
MzMyMjFkZTNlNzNhLi5kNTVkYjYwMTdkZTczY2Y2YzJmMWNjY2Y0Y2YzY2Q1NDM4Mzk2NTM5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9TbG90VmlzaXRvci5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1Nsb3RWaXNpdG9yLmgKQEAgLTE2MSw3ICsxNjEs
NyBAQCBwdWJsaWM6CiAKICAgICBib29sIG11dGF0b3JJc1N0b3BwZWQoKSBjb25zdCBmaW5hbCB7
IHJldHVybiBtX211dGF0b3JJc1N0b3BwZWQ7IH0KICAgICAKLSAgICBMb2NrJiByaWdodFRvUnVu
KCkgeyByZXR1cm4gbV9yaWdodFRvUnVuOyB9CisgICAgVW5jaGVja2VkTG9jayYgcmlnaHRUb1J1
bigpIHsgcmV0dXJuIG1fcmlnaHRUb1J1bjsgfQogICAgIAogICAgIHZvaWQgdXBkYXRlTXV0YXRv
cklzU3RvcHBlZChjb25zdCBBYnN0cmFjdExvY2tlciYpOwogICAgIHZvaWQgdXBkYXRlTXV0YXRv
cklzU3RvcHBlZCgpOwpAQCAtMjMyLDcgKzIzMiw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX211
dGF0b3JJc1N0b3BwZWQgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9jYW5PcHRpbWl6ZUZvclN0b3Bw
ZWRNdXRhdG9yIHsgZmFsc2UgfTsKICAgICBib29sIG1faXNJblBhcmFsbGVsTW9kZSB7IGZhbHNl
IH07Ci0gICAgTG9jayBtX3JpZ2h0VG9SdW47CisgICAgVW5jaGVja2VkTG9jayBtX3JpZ2h0VG9S
dW47CiAgICAgCiAgICAgLy8gUHV0IHBhZGRpbmcgaGVyZSB0byBtaXRpZ2F0ZSBmYWxzZSBzaGFy
aW5nIGJldHdlZW4gbXVsdGlwbGUgU2xvdFZpc2l0b3JzLgogICAgIGNoYXIgcGFkZGluZ1s2NF07
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3JlbW90ZS9zb2Nr
ZXQvUmVtb3RlSW5zcGVjdG9yU29ja2V0RW5kcG9pbnQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9pbnNwZWN0b3IvcmVtb3RlL3NvY2tldC9SZW1vdGVJbnNwZWN0b3JTb2NrZXRFbmRwb2ludC5o
CmluZGV4IDI1YmMxOGNiNjhkODNkMmZiZmFiYmNkZjZkMzU0MTgyNzViOTYyMTguLjI0YTNlNThm
YzM2N2IzZjE5Mjk1MGZjNjhiZDdlZjkyZTg2OGUxZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL3NvY2tldC9SZW1vdGVJbnNwZWN0b3JTb2NrZXRF
bmRwb2ludC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL3Nv
Y2tldC9SZW1vdGVJbnNwZWN0b3JTb2NrZXRFbmRwb2ludC5oCkBAIC0xODIsNyArMTgyLDcgQEAg
cHJvdGVjdGVkOgogICAgIGJvb2wgaXNMaXN0ZW5pbmcoQ29ubmVjdGlvbklEKTsKICAgICBpbnQg
cG9sbGluZ1RpbWVvdXQoKTsKIAotICAgIG11dGFibGUgTG9jayBtX2Nvbm5lY3Rpb25zTG9jazsK
KyAgICBtdXRhYmxlIFVuY2hlY2tlZExvY2sgbV9jb25uZWN0aW9uc0xvY2s7CiAgICAgSGFzaE1h
cDxDb25uZWN0aW9uSUQsIHN0ZDo6dW5pcXVlX3B0cjxDbGllbnRDb25uZWN0aW9uPj4gbV9jbGll
bnRzOwogICAgIEhhc2hNYXA8Q29ubmVjdGlvbklELCBzdGQ6OnVuaXF1ZV9wdHI8TGlzdGVuZXJD
b25uZWN0aW9uPj4gbV9saXN0ZW5lcnM7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvRXhlY3V0YWJsZUFsbG9jYXRvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0V4ZWN1dGFibGVBbGxvY2F0b3IuY3BwCmluZGV4IDI3OWUwNzVlNGNiNjE3NzI5YzZlMmQ1
ZmVmZjk4NjI3YzcwNTJmMDEuLjYxOTQ1NWIxZjZkYmFjYTRhN2RkYWM3Y2JmNmQ5YzkyZmExNmNh
MmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvRXhlY3V0YWJsZUFsbG9j
YXRvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9FeGVjdXRhYmxlQWxsb2Nh
dG9yLmNwcApAQCAtNDg1LDcgKzQ4NSw3IEBAIHB1YmxpYzoKICNlbmRpZiAvLyBFTkFCTEUoSlVN
UF9JU0xBTkRTKQogICAgIH0KIAotICAgIExvY2smIGdldExvY2soKSB7IHJldHVybiBtX2xvY2s7
IH0KKyAgICBVbmNoZWNrZWRMb2NrJiBnZXRMb2NrKCkgeyByZXR1cm4gbV9sb2NrOyB9CiAKICAg
ICAvLyBOb24gYXRvbWljCiAgICAgc2l6ZV90IGJ5dGVzQWxsb2NhdGVkKCkgCkBAIC01NDcsNyAr
NTQ3LDcgQEAgcHVibGljOgogICAgIH0KIAogI2lmIEVOQUJMRShKVU1QX0lTTEFORFMpCi0gICAg
dm9pZCBoYW5kbGVXaWxsQmVSZWxlYXNlZChjb25zdCBMb2NrSG9sZGVyJiBsb2NrZXIsIE1ldGFB
bGxvY2F0b3JIYW5kbGUmIGhhbmRsZSkKKyAgICB2b2lkIGhhbmRsZVdpbGxCZVJlbGVhc2VkKGNv
bnN0IFVuY2hlY2tlZExvY2tIb2xkZXImIGxvY2tlciwgTWV0YUFsbG9jYXRvckhhbmRsZSYgaGFu
ZGxlKQogICAgIHsKICAgICAgICAgaWYgKG1faXNsYW5kc0Zvckp1bXBTb3VyY2VMb2NhdGlvbi5p
c0VtcHR5KCkpCiAgICAgICAgICAgICByZXR1cm47CkBAIC01OTksNyArNTk5LDcgQEAgcHJpdmF0
ZToKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICB9CiAKLSAgICB2b2lkIGZyZWVKdW1wSXNs
YW5kcyhjb25zdCBMb2NrSG9sZGVyJiwgSXNsYW5kcyogaXNsYW5kcykKKyAgICB2b2lkIGZyZWVK
dW1wSXNsYW5kcyhjb25zdCBVbmNoZWNrZWRMb2NrSG9sZGVyJiwgSXNsYW5kcyogaXNsYW5kcykK
ICAgICB7CiAgICAgICAgIGZvciAoQ29kZUxvY2F0aW9uTGFiZWw8RXhlY3V0YWJsZU1lbW9yeVB0
clRhZz4ganVtcElzbGFuZCA6IGlzbGFuZHMtPmp1bXBJc2xhbmRzKSB7CiAgICAgICAgICAgICB1
aW50cHRyX3QgdW50YWdnZWRKdW1wSXNsYW5kID0gYml0d2lzZV9jYXN0PHVpbnRwdHJfdD4oanVt
cElzbGFuZC5kYXRhTG9jYXRpb24oKSk7CkBAIC02MTAsMTQgKzYxMCwxNCBAQCBwcml2YXRlOgog
ICAgICAgICBpc2xhbmRzLT5qdW1wSXNsYW5kcy5jbGVhcigpOwogICAgIH0KIAotICAgIHZvaWQg
ZnJlZUlzbGFuZHMoY29uc3QgTG9ja0hvbGRlciYgbG9ja2VyLCBJc2xhbmRzKiBpc2xhbmRzKQor
ICAgIHZvaWQgZnJlZUlzbGFuZHMoY29uc3QgVW5jaGVja2VkTG9ja0hvbGRlciYgbG9ja2VyLCBJ
c2xhbmRzKiBpc2xhbmRzKQogICAgIHsKICAgICAgICAgZnJlZUp1bXBJc2xhbmRzKGxvY2tlciwg
aXNsYW5kcyk7CiAgICAgICAgIG1faXNsYW5kc0Zvckp1bXBTb3VyY2VMb2NhdGlvbi5yZW1vdmUo
aXNsYW5kcyk7CiAgICAgICAgIGRlbGV0ZSBpc2xhbmRzOwogICAgIH0KIAotICAgIHZvaWQqIGlz
bGFuZEZvckp1bXBMb2NhdGlvbihjb25zdCBMb2NrSG9sZGVyJiBsb2NrZXIsIHVpbnRwdHJfdCBq
dW1wTG9jYXRpb24sIHVpbnRwdHJfdCB0YXJnZXQsIGJvb2wgY29uY3VycmVudGx5KQorICAgIHZv
aWQqIGlzbGFuZEZvckp1bXBMb2NhdGlvbihjb25zdCBVbmNoZWNrZWRMb2NrSG9sZGVyJiBsb2Nr
ZXIsIHVpbnRwdHJfdCBqdW1wTG9jYXRpb24sIHVpbnRwdHJfdCB0YXJnZXQsIGJvb2wgY29uY3Vy
cmVudGx5KQogICAgIHsKICAgICAgICAgSXNsYW5kcyogaXNsYW5kcyA9IG1faXNsYW5kc0Zvckp1
bXBTb3VyY2VMb2NhdGlvbi5maW5kRXhhY3QoYml0d2lzZV9jYXN0PHZvaWQqPihqdW1wTG9jYXRp
b24pKTsKICAgICAgICAgaWYgKGlzbGFuZHMpIHsKQEAgLTc0Niw3ICs3NDYsNyBAQCBwcml2YXRl
OgogICAgICAgICAgICAgcmV0dXJuIGlzbGFuZHNQZXJQYWdlOwogICAgICAgICB9CiAKLSAgICAg
ICAgdm9pZCByZWxlYXNlKGNvbnN0IExvY2tIb2xkZXImIGxvY2tlciwgTWV0YUFsbG9jYXRvckhh
bmRsZSYgaGFuZGxlKSBmaW5hbAorICAgICAgICB2b2lkIHJlbGVhc2UoY29uc3QgVW5jaGVja2Vk
TG9ja0hvbGRlciYgbG9ja2VyLCBNZXRhQWxsb2NhdG9ySGFuZGxlJiBoYW5kbGUpIGZpbmFsCiAg
ICAgICAgIHsKICAgICAgICAgICAgIG1fZml4ZWRBbGxvY2F0b3IuaGFuZGxlV2lsbEJlUmVsZWFz
ZWQobG9ja2VyLCBoYW5kbGUpOwogICAgICAgICAgICAgQmFzZTo6cmVsZWFzZShsb2NrZXIsIGhh
bmRsZSk7CkBAIC04NDcsNyArODQ3LDcgQEAgcHJpdmF0ZToKICAgICB9OwogI2VuZGlmIC8vIEVO
QUJMRShKVU1QX0lTTEFORFMpCiAKLSAgICBMb2NrIG1fbG9jazsKKyAgICBVbmNoZWNrZWRMb2Nr
IG1fbG9jazsKICAgICBQYWdlUmVzZXJ2YXRpb24gbV9yZXNlcnZhdGlvbjsKICNpZiBFTkFCTEUo
SlVNUF9JU0xBTkRTKQogICAgIHN0ZDo6YXJyYXk8UmVnaW9uQWxsb2NhdG9yLCBtYXhOdW1iZXJP
ZlJlZ2lvbnM+IG1fYWxsb2NhdG9yczsKQEAgLTk2MSw3ICs5NjEsNyBAQCBib29sIEV4ZWN1dGFi
bGVBbGxvY2F0b3I6OmlzVmFsaWRFeGVjdXRhYmxlTWVtb3J5KGNvbnN0IEFic3RyYWN0TG9ja2Vy
JiBsb2NrZXIsCiAgICAgcmV0dXJuIGFsbG9jYXRvci0+aXNJbkFsbG9jYXRlZE1lbW9yeShsb2Nr
ZXIsIGFkZHJlc3MpOwogfQogCi1Mb2NrJiBFeGVjdXRhYmxlQWxsb2NhdG9yOjpnZXRMb2NrKCkg
Y29uc3QKK1VuY2hlY2tlZExvY2smIEV4ZWN1dGFibGVBbGxvY2F0b3I6OmdldExvY2soKSBjb25z
dAogewogICAgIEZpeGVkVk1Qb29sRXhlY3V0YWJsZUFsbG9jYXRvciogYWxsb2NhdG9yID0gZ19q
c2NDb25maWcuZml4ZWRWTVBvb2xFeGVjdXRhYmxlQWxsb2NhdG9yOwogICAgIGlmICghYWxsb2Nh
dG9yKQpAQCAtMTAzOCw3ICsxMDM4LDcgQEAgdm9pZCBkdW1wSklUTWVtb3J5KGNvbnN0IHZvaWQq
IGRzdCwgY29uc3Qgdm9pZCogc3JjLCBzaXplX3Qgc2l6ZSkKICAgICBzdGF0aWMgdWludDhfdCog
YnVmZmVyOwogICAgIHN0YXRpYyBjb25zdGV4cHIgc2l6ZV90IGJ1ZmZlclNpemUgPSBmaXhlZEV4
ZWN1dGFibGVNZW1vcnlQb29sU2l6ZTsKICAgICBzdGF0aWMgc2l6ZV90IG9mZnNldCA9IDA7Ci0g
ICAgc3RhdGljIExvY2sgZHVtcEpJVE1lbW9yeUxvY2s7CisgICAgc3RhdGljIFVuY2hlY2tlZExv
Y2sgZHVtcEpJVE1lbW9yeUxvY2s7CiAgICAgc3RhdGljIGJvb2wgbmVlZHNUb0ZsdXNoID0gZmFs
c2U7CiAgICAgc3RhdGljIGF1dG8gZmx1c2ggPSBbXShjb25zdCBBYnN0cmFjdExvY2tlciYpIHsK
ICAgICAgICAgaWYgKGZkID09IC0xKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0V4ZWN1dGFibGVBbGxvY2F0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
RXhlY3V0YWJsZUFsbG9jYXRvci5oCmluZGV4IDRmZmM0ODBlNDI0MDRkYzY2YjVlMjUxNDU3NzJi
YmNiMDlkNWYzNjguLjAzNzk5ZTQyN2IwOTdkNjRmZDk4Y2I4Zjk1YTY4YTkyNTE2ZjhhNTcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvRXhlY3V0YWJsZUFsbG9jYXRvci5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvRXhlY3V0YWJsZUFsbG9jYXRvci5oCkBA
IC03Nyw3ICs3Nyw3IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBzaXplX3QgY29tbWl0dGVkQnl0
ZUNvdW50KCkgeyByZXR1cm4gMDsgfQogCi0gICAgTG9jayYgZ2V0TG9jaygpIGNvbnN0CisgICAg
VW5jaGVja2VkTG9jayYgZ2V0TG9jaygpIGNvbnN0CiAgICAgewogICAgICAgICByZXR1cm4gbV9s
b2NrOwogICAgIH0KQEAgLTg3LDcgKzg3LDcgQEAgcHJvdGVjdGVkOgogICAgIH5FeGVjdXRhYmxl
QWxsb2NhdG9yQmFzZSgpID0gZGVmYXVsdDsKIAogcHJpdmF0ZToKLSAgICBtdXRhYmxlIExvY2sg
bV9sb2NrOworICAgIG11dGFibGUgVW5jaGVja2VkTG9jayBtX2xvY2s7CiB9OwogCiAjaWYgRU5B
QkxFKEpJVCkKQEAgLTE3Niw3ICsxNzYsNyBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgc2l6ZV90
IGNvbW1pdHRlZEJ5dGVDb3VudCgpOwogCi0gICAgTG9jayYgZ2V0TG9jaygpIGNvbnN0OworICAg
IFVuY2hlY2tlZExvY2smIGdldExvY2soKSBjb25zdDsKIAogI2lmIEVOQUJMRShKVU1QX0lTTEFO
RFMpCiAgICAgSlNfRVhQT1JUX1BSSVZBVEUgdm9pZCogZ2V0SnVtcElzbGFuZFRvKHZvaWQqIGZy
b20sIHZvaWQqIG5ld0Rlc3RpbmF0aW9uKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklUV29ya2xpc3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRX
b3JrbGlzdC5jcHAKaW5kZXggYTcwNTJlNzlmMGE3NDM2N2ZlM2ZkYzVhM2NmNmQ1MzhlNjkzMjAw
ZS4uYTk2ODk3NGJkNmE5ODIzYjkwYWFkYzQ0YTQxNGE1MzdhOTAzY2Y3YSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRXb3JrbGlzdC5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9KSVRXb3JrbGlzdC5jcHAKQEAgLTE2NSw3ICsxNjUsNyBAQCBwcml2
YXRlOgogfTsKIAogSklUV29ya2xpc3Q6OkpJVFdvcmtsaXN0KCkKLSAgICA6IG1fbG9jayhCb3g8
TG9jaz46OmNyZWF0ZSgpKQorICAgIDogbV9sb2NrKEJveDxVbmNoZWNrZWRMb2NrPjo6Y3JlYXRl
KCkpCiAgICAgLCBtX2NvbmRpdGlvbihBdXRvbWF0aWNUaHJlYWRDb25kaXRpb246OmNyZWF0ZSgp
KQogewogICAgIExvY2tlciBsb2NrZXIgeyAqbV9sb2NrIH07CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0pJVFdvcmtsaXN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0pJVFdvcmtsaXN0LmgKaW5kZXggYjlmNzdjYTFiM2RkZWZhNjE0OGIxMzY5NDJkNTdhMDlk
NjVlYTdhMy4uYTcyYTgzODcwYTAwODJmY2QzNDQ5NTI5MGVhNTBlYTE0MGQ4OWYyZiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRXb3JrbGlzdC5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUV29ya2xpc3QuaApAQCAtNzEsNyArNzEsNyBAQCBwcml2
YXRlOgogICAgIFBsYW5zIG1fcGxhbnM7CiAgICAgSGFzaFNldDxDb2RlQmxvY2sqPiBtX3BsYW5u
ZWQ7CiAgICAgCi0gICAgQm94PExvY2s+IG1fbG9jazsKKyAgICBCb3g8VW5jaGVja2VkTG9jaz4g
bV9sb2NrOwogICAgIFJlZjxBdXRvbWF0aWNUaHJlYWRDb25kaXRpb24+IG1fY29uZGl0aW9uOyAv
LyBXZSB1c2UgT25lIFRydWUgQ29uZGl0aW9uIGZvciBldmVyeXRoaW5nIGJlY2F1c2UgdGhhdCdz
IGVhc2llci4KICAgICBSZWZQdHI8QXV0b21hdGljVGhyZWFkPiBtX3RocmVhZDsKICAgICAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2pzYy5jcHAKaW5kZXggZDNhMjgxMTI3MDgwNTgxZjBlZDE1YjRmMzg1ODg1NTBjZjNl
ZTZlZS4uYWQxNTVlNmU4MjdjYzBkM2NhZjdjNTcyNjVmMGRiYzMyNTFiNTYxZSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2pzYy5jcHAKQEAgLTI1Nyw4ICsyNTcsOCBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIGZy
aWVuZCBjbGFzcyBXb3JrZXI7CiAgICAgCi0gICAgTG9jayBtX2xvY2s7Ci0gICAgQ29uZGl0aW9u
IG1fY29uZGl0aW9uOworICAgIFVuY2hlY2tlZExvY2sgbV9sb2NrOworICAgIFVuY2hlY2tlZENv
bmRpdGlvbiBtX2NvbmRpdGlvbjsKICAgICBTZW50aW5lbExpbmtlZExpc3Q8V29ya2VyLCBCYXNp
Y1Jhd1NlbnRpbmVsTm9kZTxXb3JrZXI+PiBtX3dvcmtlcnM7CiAgICAgRGVxdWU8U3RyaW5nPiBt
X3JlcG9ydHM7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVy
L1Byb2ZpbGVyRGF0YWJhc2UuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9m
aWxlckRhdGFiYXNlLmgKaW5kZXggYWU3ODVlNGUzZGNiN2MzZTA4MDI4N2JiNDU5OTdhMTMyYzI4
NWRkMy4uMmE4NzhjOTQ2YjY1MzQwZTc5MTM5YmUyMjM3NWM1MDYxNmE5YjJlMiAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVyRGF0YWJhc2UuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZXJEYXRhYmFzZS5oCkBAIC04
OCw3ICs4OCw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX3Nob3VsZFNhdmVBdEV4aXQ7CiAgICAg
Q1N0cmluZyBtX2F0RXhpdFNhdmVGaWxlbmFtZTsKICAgICBEYXRhYmFzZSogbV9uZXh0UmVnaXN0
ZXJlZERhdGFiYXNlOwotICAgIExvY2sgbV9sb2NrOworICAgIFVuY2hlY2tlZExvY2sgbV9sb2Nr
OwogfTsKIAogfSB9IC8vIG5hbWVzcGFjZSBKU0M6OlByb2ZpbGVyCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db25jdXJyZW50SlNMb2NrLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9Db25jdXJyZW50SlNMb2NrLmgKaW5kZXggYWEyNzNiYWRiZWZh
NzM3YTBlYWE1MzRmYmViYTlmNTAxZmRiODYyNy4uODYzMTE3ZDg5MTVjNDNlNGE2NzcyMDgyYjli
YzU1YjM5YTJkMWNhMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
Q29uY3VycmVudEpTTG9jay5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Nv
bmN1cnJlbnRKU0xvY2suaApAQCAtMzIsOCArMzIsOCBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAot
dXNpbmcgQ29uY3VycmVudEpTTG9jayA9IExvY2s7Ci11c2luZyBDb25jdXJyZW50SlNMb2NrZXJJ
bXBsID0gTG9ja0hvbGRlcjsKK3VzaW5nIENvbmN1cnJlbnRKU0xvY2sgPSBVbmNoZWNrZWRMb2Nr
OwordXNpbmcgQ29uY3VycmVudEpTTG9ja2VySW1wbCA9IFVuY2hlY2tlZExvY2tIb2xkZXI7CiAK
IHN0YXRpY19hc3NlcnQoc2l6ZW9mKENvbmN1cnJlbnRKU0xvY2spID09IDEsICJSZWdhcmRsZXNz
IG9mIHN0YXR1cyBvZiBjb25jdXJyZW50IEpTIGZsYWcsIHNpemUgb2YgQ29udXJyZW50SlNMb2Nr
IGlzIGFsd2F5cyBvbmUgYnl0ZS4iKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvRGVmZXJyZWRXb3JrVGltZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0RlZmVycmVkV29ya1RpbWVyLmgKaW5kZXggNmM5OGNhYWY1ODFiMWNmYzAxYWExOTEx
NzE0YjNkYjI3YmRmMDIxNy4uZWYwZWFjNzMwYjQyMmY3MGMyMGE2OGI1YzllOTY0ODY4NzZhMDEz
ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGVmZXJyZWRXb3Jr
VGltZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EZWZlcnJlZFdvcmtU
aW1lci5oCkBAIC03Miw3ICs3Miw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgRGVmZXJyZWRX
b3JrVGltZXIoVk0mKTsKIAotICAgIExvY2sgbV90YXNrTG9jazsKKyAgICBVbmNoZWNrZWRMb2Nr
IG1fdGFza0xvY2s7CiAgICAgYm9vbCBtX3J1blRhc2tzIHsgdHJ1ZSB9OwogICAgIGJvb2wgbV9z
aG91bGRTdG9wUnVuTG9vcFdoZW5BbGxUaWNrZXRzRmluaXNoIHsgZmFsc2UgfTsKICAgICBib29s
IG1fY3VycmVudGx5UnVubmluZ1Rhc2sgeyBmYWxzZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNMb2NrLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0xvY2suaAppbmRleCAyZTAyYmEzZDY0MDVlZTcyZGQ0YWRlMGJhNjdjYjk1OGYxYTY0
NjBiLi5hOTkxZGY1MGIxYzM3MjI2ZTVmMTI5OTBlNDBiNjdiMTBiMTk5YzI5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0xvY2suaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0xvY2suaApAQCAtMTM4LDcgKzEzOCw3IEBAIHByaXZhdGU6
CiAgICAgdW5zaWduZWQgZHJvcEFsbExvY2tzKERyb3BBbGxMb2NrcyopOwogICAgIHZvaWQgZ3Jh
YkFsbExvY2tzKERyb3BBbGxMb2NrcyosIHVuc2lnbmVkIGxvY2tDb3VudCk7CiAKLSAgICBMb2Nr
IG1fbG9jazsKKyAgICBVbmNoZWNrZWRMb2NrIG1fbG9jazsKICAgICBib29sIG1faXNXZWJUaHJl
YWRBd2FyZSB7IGZhbHNlIH07CiAgICAgLy8gV2UgY2Fubm90IG1ha2UgbV9vd25lclRocmVhZCBh
biBvcHRpb25hbCAoaW5zdGVhZCBvZiBwYWlyaW5nIGl0IHdpdGggYW4gZXhwbGljaXQKICAgICAv
LyBtX2hhc093bmVyVGhyZWFkKSBiZWNhdXNlIGN1cnJlbnRUaHJlYWRJc0hvbGRpbmdMb2NrKCkg
bWF5IGJlIGNhbGxlZCBmcm9tIGEKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1NhbXBsaW5nUHJvZmlsZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvU2FtcGxpbmdQcm9maWxlci5jcHAKaW5kZXggZDcxZjNlYzE5ZmYzNjc0Njc3MDdmZTUyYjg4
MDI0YzU2MjdhMTRhZC4uZTUzMTEyZDE4OGY3Y2NiOTBkMGFlNzg0MTQyNTAxZDI0NWM1ZTgzNSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2FtcGxpbmdQcm9maWxl
ci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2FtcGxpbmdQcm9maWxl
ci5jcHAKQEAgLTc1LDcgKzc1LDcgQEAgQUxXQVlTX0lOTElORSBzdGF0aWMgdm9pZCByZXBvcnRT
dGF0cygpCiAKIGNsYXNzIEZyYW1lV2Fsa2VyIHsKIHB1YmxpYzoKLSAgICBGcmFtZVdhbGtlcihW
TSYgdm0sIENhbGxGcmFtZSogY2FsbEZyYW1lLCBjb25zdCBBYnN0cmFjdExvY2tlciYgY29kZUJs
b2NrU2V0TG9ja2VyLCBjb25zdCBBYnN0cmFjdExvY2tlciYgbWFjaGluZVRocmVhZHNMb2NrZXIs
IGNvbnN0IE9wdGlvbmFsPExvY2tIb2xkZXI+JiB3YXNtQ2FsbGVlTG9ja2VyKQorICAgIEZyYW1l
V2Fsa2VyKFZNJiB2bSwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIGNvbnN0IEFic3RyYWN0TG9ja2Vy
JiBjb2RlQmxvY2tTZXRMb2NrZXIsIGNvbnN0IEFic3RyYWN0TG9ja2VyJiBtYWNoaW5lVGhyZWFk
c0xvY2tlciwgY29uc3QgT3B0aW9uYWw8VW5jaGVja2VkTG9ja0hvbGRlcj4mIHdhc21DYWxsZWVM
b2NrZXIpCiAgICAgICAgIDogbV92bSh2bSkKICAgICAgICAgLCBtX2NhbGxGcmFtZShjYWxsRnJh
bWUpCiAgICAgICAgICwgbV9lbnRyeUZyYW1lKHZtLnRvcEVudHJ5RnJhbWUpCkBAIC0yMDEsNyAr
MjAxLDcgQEAgcHJvdGVjdGVkOgogICAgIEVudHJ5RnJhbWUqIG1fZW50cnlGcmFtZTsKICAgICBj
b25zdCBBYnN0cmFjdExvY2tlciYgbV9jb2RlQmxvY2tTZXRMb2NrZXI7CiAgICAgY29uc3QgQWJz
dHJhY3RMb2NrZXImIG1fbWFjaGluZVRocmVhZHNMb2NrZXI7Ci0gICAgY29uc3QgT3B0aW9uYWw8
TG9ja0hvbGRlcj4mIG1fd2FzbUNhbGxlZUxvY2tlcjsKKyAgICBjb25zdCBPcHRpb25hbDxVbmNo
ZWNrZWRMb2NrSG9sZGVyPiYgbV93YXNtQ2FsbGVlTG9ja2VyOwogICAgIGJvb2wgbV9iYWlsaW5n
T3V0IHsgZmFsc2UgfTsKICAgICBzaXplX3QgbV9kZXB0aCB7IDAgfTsKIH07CkBAIC0yMTAsNyAr
MjEwLDcgQEAgY2xhc3MgQ0ZyYW1lV2Fsa2VyIDogcHVibGljIEZyYW1lV2Fsa2VyIHsKIHB1Ymxp
YzoKICAgICB0eXBlZGVmIEZyYW1lV2Fsa2VyIEJhc2U7CiAKLSAgICBDRnJhbWVXYWxrZXIoVk0m
IHZtLCB2b2lkKiBtYWNoaW5lRnJhbWUsIENhbGxGcmFtZSogY2FsbEZyYW1lLCBjb25zdCBBYnN0
cmFjdExvY2tlciYgY29kZUJsb2NrU2V0TG9ja2VyLCBjb25zdCBBYnN0cmFjdExvY2tlciYgbWFj
aGluZVRocmVhZHNMb2NrZXIsIGNvbnN0IE9wdGlvbmFsPExvY2tIb2xkZXI+JiB3YXNtQ2FsbGVl
TG9ja2VyKQorICAgIENGcmFtZVdhbGtlcihWTSYgdm0sIHZvaWQqIG1hY2hpbmVGcmFtZSwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUsIGNvbnN0IEFic3RyYWN0TG9ja2VyJiBjb2RlQmxvY2tTZXRMb2Nr
ZXIsIGNvbnN0IEFic3RyYWN0TG9ja2VyJiBtYWNoaW5lVGhyZWFkc0xvY2tlciwgY29uc3QgT3B0
aW9uYWw8VW5jaGVja2VkTG9ja0hvbGRlcj4mIHdhc21DYWxsZWVMb2NrZXIpCiAgICAgICAgIDog
QmFzZSh2bSwgY2FsbEZyYW1lLCBjb2RlQmxvY2tTZXRMb2NrZXIsIG1hY2hpbmVUaHJlYWRzTG9j
a2VyLCB3YXNtQ2FsbGVlTG9ja2VyKQogICAgICAgICAsIG1fbWFjaGluZUZyYW1lKG1hY2hpbmVG
cmFtZSkKICAgICB7CkBAIC0zNTMsNyArMzUzLDcgQEAgdm9pZCBTYW1wbGluZ1Byb2ZpbGVyOjp0
YWtlU2FtcGxlKGNvbnN0IEFic3RyYWN0TG9ja2VyJiwgU2Vjb25kcyYgc3RhY2tUcmFjZVByb2MK
ICAgICAgICAgTG9ja2VyIG1hY2hpbmVUaHJlYWRzTG9ja2VyIHsgbV92bS5oZWFwLm1hY2hpbmVU
aHJlYWRzKCkuZ2V0TG9jaygpIH07CiAgICAgICAgIExvY2tlciBjb2RlQmxvY2tTZXRMb2NrZXIg
eyBtX3ZtLmhlYXAuY29kZUJsb2NrU2V0KCkuZ2V0TG9jaygpIH07CiAgICAgICAgIExvY2tlciBl
eGVjdXRhYmxlQWxsb2NhdG9yTG9ja2VyIHsgRXhlY3V0YWJsZUFsbG9jYXRvcjo6c2luZ2xldG9u
KCkuZ2V0TG9jaygpIH07Ci0gICAgICAgIE9wdGlvbmFsPExvY2tIb2xkZXI+IHdhc21DYWxsZWVz
TG9ja2VyOworICAgICAgICBPcHRpb25hbDxVbmNoZWNrZWRMb2NrSG9sZGVyPiB3YXNtQ2FsbGVl
c0xvY2tlcjsKICNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCiAgICAgICAgIGlmIChXYXNtOjppc1N1
cHBvcnRlZCgpKQogICAgICAgICAgICAgd2FzbUNhbGxlZXNMb2NrZXIgPSBMb2NrZXIgeyBXYXNt
OjpDYWxsZWVSZWdpc3RyeTo6c2luZ2xldG9uKCkuZ2V0TG9jaygpIH07CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TYW1wbGluZ1Byb2ZpbGVyLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9TYW1wbGluZ1Byb2ZpbGVyLmgKaW5kZXggNjUxNzA3YTk0
NmYxNjFkZWE2Zjk4OGFiNWRkZTQ4YjMyYzc1YzdlZC4uOWYwNTcyNmE0ZTgwNGZjYjM1MzczNmEy
ZWQxZDY0MGI3NjRjOTRkYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvU2FtcGxpbmdQcm9maWxlci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1NhbXBsaW5nUHJvZmlsZXIuaApAQCAtMTcyLDcgKzE3Miw3IEBAIHB1YmxpYzoKICAgICB2b2lk
IG5vdGljZVZNRW50cnkoKTsKICAgICB2b2lkIHNodXRkb3duKCk7CiAgICAgdGVtcGxhdGU8dHlw
ZW5hbWUgVmlzaXRvcj4gdm9pZCB2aXNpdChWaXNpdG9yJik7Ci0gICAgTG9jayYgZ2V0TG9jaygp
IHsgcmV0dXJuIG1fbG9jazsgfQorICAgIFVuY2hlY2tlZExvY2smIGdldExvY2soKSB7IHJldHVy
biBtX2xvY2s7IH0KICAgICB2b2lkIHNldFRpbWluZ0ludGVydmFsKFNlY29uZHMgaW50ZXJ2YWwp
IHsgbV90aW1pbmdJbnRlcnZhbCA9IGludGVydmFsOyB9CiAgICAgSlNfRVhQT1JUX1BSSVZBVEUg
dm9pZCBzdGFydCgpOwogICAgIHZvaWQgc3RhcnQoY29uc3QgQWJzdHJhY3RMb2NrZXImKTsKQEAg
LTIwMCw3ICsyMDAsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgdGltZXJMb29wKCk7CiAgICAgdm9p
ZCB0YWtlU2FtcGxlKGNvbnN0IEFic3RyYWN0TG9ja2VyJiwgU2Vjb25kcyYgc3RhY2tUcmFjZVBy
b2Nlc3NpbmdUaW1lKTsKIAotICAgIExvY2sgbV9sb2NrOworICAgIFVuY2hlY2tlZExvY2sgbV9s
b2NrOwogICAgIGJvb2wgbV9pc1BhdXNlZDsKICAgICBib29sIG1faXNTaHV0RG93bjsKICAgICBi
b29sIG1fbmVlZHNSZXBvcnRBdEV4aXQgeyBmYWxzZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1ZNLmgKaW5kZXggZjhlOGQzZjU0N2U0ZmRlNjEzNGMzOGE4NjJkMmYyNWQ2MmEzMzFlMi4uYTFh
YjIyMzIxNjk4ZTU3MDAyOTk0NzM1MTRiZmEwNDFmODhkY2M1NCAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9WTS5oCkBAIC0xMDA0LDcgKzEwMDQsNyBAQCBwdWJsaWM6CiAjaWYgRU5BQkxFKFlB
UlJfSklUX0FMTF9QQVJFTlNfRVhQUkVTU0lPTlMpCiAgICAgc3RhdGljIGNvbnN0ZXhwciBzaXpl
X3QgcGF0dGVybkNvbnRleHRCdWZmZXJTaXplID0gODE5MjsgLy8gU3BhY2UgYWxsb2NhdGVkIHRv
IHNhdmUgbmVzdGVkIHBhcmVudGhlc2lzIGNvbnRleHQKICAgICBVbmlxdWVBcnJheTxjaGFyPiBt
X3JlZ0V4cFBhdHRlcm5Db250ZXhCdWZmZXI7Ci0gICAgTG9jayBtX3JlZ0V4cFBhdHRlcm5Db250
ZXh0TG9jazsKKyAgICBVbmNoZWNrZWRMb2NrIG1fcmVnRXhwUGF0dGVybkNvbnRleHRMb2NrOwog
ICAgIGNoYXIqIGFjcXVpcmVSZWdFeHBQYXR0ZXJuQ29udGV4QnVmZmVyKCk7CiAgICAgdm9pZCBy
ZWxlYXNlUmVnRXhwUGF0dGVybkNvbnRleEJ1ZmZlcigpOwogI2Vsc2UKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNVHJhcHMuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvVk1UcmFwcy5jcHAKaW5kZXggOWI0NDA2YjExNTYzZGFmNTczOWViMzM4
YWY4MjU5YTVlMThhNDE1OS4uNTdkYjMxOWNlY2ZiNzM3MTk3ZTI2ZDljZGQyZGI3YTU4YmIwOGM2
NyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk1UcmFwcy5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk1UcmFwcy5jcHAKQEAgLTE2Myw3
ICsxNjMsNyBAQCB2b2lkIFZNVHJhcHM6OmludmFsaWRhdGVDb2RlQmxvY2tzT25TdGFjayhDYWxs
RnJhbWUqIHRvcENhbGxGcmFtZSkKICAgICBpbnZhbGlkYXRlQ29kZUJsb2Nrc09uU3RhY2soY29k
ZUJsb2NrU2V0TG9ja2VyLCB0b3BDYWxsRnJhbWUpOwogfQogICAgIAotdm9pZCBWTVRyYXBzOjpp
bnZhbGlkYXRlQ29kZUJsb2Nrc09uU3RhY2soTG9ja2VyPExvY2s+JiwgQ2FsbEZyYW1lKiB0b3BD
YWxsRnJhbWUpCit2b2lkIFZNVHJhcHM6OmludmFsaWRhdGVDb2RlQmxvY2tzT25TdGFjayhMb2Nr
ZXI8VW5jaGVja2VkTG9jaz4mLCBDYWxsRnJhbWUqIHRvcENhbGxGcmFtZSkKIHsKICAgICBpZiAo
IW1fbmVlZFRvSW52YWxpZGF0ZWRDb2RlQmxvY2tzKQogICAgICAgICByZXR1cm47CkBAIC00Mzcs
NyArNDM3LDcgQEAgdm9pZCBWTVRyYXBzOjp1bmRvRGVmZXJUZXJtaW5hdGlvblNsb3coRGVmZXJB
Y3Rpb24gZGVmZXJBY3Rpb24pCiB9CiAKIFZNVHJhcHM6OlZNVHJhcHMoKQotICAgIDogbV9sb2Nr
KEJveDxMb2NrPjo6Y3JlYXRlKCkpCisgICAgOiBtX2xvY2soQm94PFVuY2hlY2tlZExvY2s+Ojpj
cmVhdGUoKSkKICAgICAsIG1fY29uZGl0aW9uKEF1dG9tYXRpY1RocmVhZENvbmRpdGlvbjo6Y3Jl
YXRlKCkpCiB7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9W
TVRyYXBzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTVRyYXBzLmgKaW5kZXgg
MGFmNTliYzk1YzE2ZjkyZDM0ZTU0YTYyMmIyNDJiODdjNTg0ZmQ2NS4uNWQxNWM5MmY3MDQxNzUx
ZDgwNGU0YzU3MmE1NTMwMTA3YmZlNDJkYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvVk1UcmFwcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1ZNVHJhcHMuaApAQCAtMjM2LDcgKzIzNiw3IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIGludmFs
aWRhdGVDb2RlQmxvY2tzT25TdGFjaygpOwogICAgIHZvaWQgaW52YWxpZGF0ZUNvZGVCbG9ja3NP
blN0YWNrKENhbGxGcmFtZSogdG9wQ2FsbEZyYW1lKTsKLSAgICB2b2lkIGludmFsaWRhdGVDb2Rl
QmxvY2tzT25TdGFjayhMb2NrZXI8TG9jaz4mIGNvZGVCbG9ja1NldExvY2tlciwgQ2FsbEZyYW1l
KiB0b3BDYWxsRnJhbWUpOworICAgIHZvaWQgaW52YWxpZGF0ZUNvZGVCbG9ja3NPblN0YWNrKExv
Y2tlcjxVbmNoZWNrZWRMb2NrPiYgY29kZUJsb2NrU2V0TG9ja2VyLCBDYWxsRnJhbWUqIHRvcENh
bGxGcmFtZSk7CiAKICAgICB2b2lkIGFkZFNpZ25hbFNlbmRlcihTaWduYWxTZW5kZXIqKTsKICAg
ICB2b2lkIHJlbW92ZVNpZ25hbFNlbmRlcihTaWduYWxTZW5kZXIqKTsKQEAgLTI0Nyw3ICsyNDcs
NyBAQCBwcml2YXRlOgogCiAgICAgc3RhdGljIGNvbnN0ZXhwciBCaXRGaWVsZCBOZWVkRXhjZXB0
aW9uSGFuZGxpbmdNYXNrID0gfigxIDw8IE5lZWRFeGNlcHRpb25IYW5kbGluZyk7CiAKLSAgICBC
b3g8TG9jaz4gbV9sb2NrOworICAgIEJveDxVbmNoZWNrZWRMb2NrPiBtX2xvY2s7CiAgICAgUmVm
PEF1dG9tYXRpY1RocmVhZENvbmRpdGlvbj4gbV9jb25kaXRpb247CiAgICAgQXRvbWljPEJpdEZp
ZWxkPiBtX3RyYXBCaXRzIHsgMCB9OwogICAgIGJvb2wgbV9uZWVkVG9JbnZhbGlkYXRlZENvZGVC
bG9ja3MgeyBmYWxzZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xz
L0Z1bmN0aW9uT3ZlcnJpZGVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdG9vbHMvRnVuY3Rp
b25PdmVycmlkZXMuaAppbmRleCA4ODI5NjcwMDczZGRmOWQ2ZDQ5Y2VlZjIwOGI2MzhjNzEzZjRl
ZDY5Li43NmE4MTNkNDhiM2Q0NTM1ODhkNTQzYWY4MzYwMzMxYzk4MmJmNDQwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdG9vbHMvRnVuY3Rpb25PdmVycmlkZXMuaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvdG9vbHMvRnVuY3Rpb25PdmVycmlkZXMuaApAQCAtNjEsNyAr
NjEsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgY2xlYXIoY29uc3QgQWJzdHJhY3RMb2NrZXImKSB7
IG1fZW50cmllcy5jbGVhcigpOyB9CiAKICAgICBIYXNoTWFwPFN0cmluZywgU3RyaW5nPiBtX2Vu
dHJpZXM7Ci0gICAgTG9jayBtX2xvY2s7CisgICAgVW5jaGVja2VkTG9jayBtX2xvY2s7CiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90
b29scy9WTUluc3BlY3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdG9vbHMvVk1JbnNw
ZWN0b3IuY3BwCmluZGV4IGU0OWRhZTFlMWJjOWRkNzBjOWViMjAyZDg3NzA5ZmNjNmNhNjcwOTAu
LjFmZjcyZDQ2ZDk2NDM5NDRhNzk0YmE0M2Y0YjYwYjhiMTE0NDhhODcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS90b29scy9WTUluc3BlY3Rvci5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3Rvb2xzL1ZNSW5zcGVjdG9yLmNwcApAQCAtODksNyArODksNyBAQCBhdXRv
IFZNSW5zcGVjdG9yOjpsb2NrKFNlY29uZHMgdGltZW91dCkgLT4gRXhwZWN0ZWQ8TG9ja2VyLCBF
cnJvcj4KIH0KIAogI2lmIEVOQUJMRShKSVQpCi1zdGF0aWMgYm9vbCBlbnN1cmVJc1NhZmVUb0xv
Y2soTG9jayYgbG9jaykKK3N0YXRpYyBib29sIGVuc3VyZUlzU2FmZVRvTG9jayhVbmNoZWNrZWRM
b2NrJiBsb2NrKQogewogICAgIHVuc2lnbmVkIG1heFJldHJpZXMgPSAyOwogICAgIHVuc2lnbmVk
IHRyeUNvdW50ID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90b29scy9W
TUluc3BlY3Rvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xzL1ZNSW5zcGVjdG9yLmgK
aW5kZXggODQ1NjMxYzY0ODE2OWQ3YTU1MWNlYjc4ZDRlYWUwM2I1NTY1ODljYS4uZGY0OTBkZTI4
NjJhYTE3OTlmZGY0Mzc3N2VkZTFkZWZhZGEwMTlkNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3Rvb2xzL1ZNSW5zcGVjdG9yLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3Rvb2xzL1ZNSW5zcGVjdG9yLmgKQEAgLTQzLDE0ICs0MywxNCBAQCBwdWJsaWM6CiAgICAgICAg
IFRpbWVkT3V0CiAgICAgfTsKIAotICAgIHR5cGVkZWYgV1RGOjpMb2NrZXI8TG9jaz4gTG9ja2Vy
OworICAgIHR5cGVkZWYgV1RGOjpMb2NrZXI8VW5jaGVja2VkTG9jaz4gTG9ja2VyOwogCiAgICAg
c3RhdGljIFZNSW5zcGVjdG9yJiBpbnN0YW5jZSgpOwogCiAgICAgdm9pZCBhZGQoVk0qKTsKICAg
ICB2b2lkIHJlbW92ZShWTSopOwogCi0gICAgTG9jayYgZ2V0TG9jaygpIHsgcmV0dXJuIG1fbG9j
azsgfQorICAgIFVuY2hlY2tlZExvY2smIGdldExvY2soKSB7IHJldHVybiBtX2xvY2s7IH0KIAog
ICAgIGVudW0gY2xhc3MgRnVuY3RvclN0YXR1cyB7CiAgICAgICAgIENvbnRpbnVlLApAQCAtMTAz
LDcgKzEwMyw3IEBAIHByaXZhdGU6CiAgICAgICAgIH0KICAgICB9CiAKLSAgICBMb2NrIG1fbG9j
azsKKyAgICBVbmNoZWNrZWRMb2NrIG1fbG9jazsKICAgICBEb3VibHlMaW5rZWRMaXN0PFZNPiBt
X3ZtTGlzdDsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dh
c21DYWxsZWVSZWdpc3RyeS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUNhbGxl
ZVJlZ2lzdHJ5LmgKaW5kZXggMTIxMzQxMWI3ZmMxMDY0YTk4MmM3NThiM2UwMzI4YTg0MTQ3OGU3
My4uZGM5MjJjZjNlYTg3MTcwMmNhNTIyYzIzMmY1NjJmMTc2NjExMzhkOSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUNhbGxlZVJlZ2lzdHJ5LmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUNhbGxlZVJlZ2lzdHJ5LmgKQEAgLTQxLDcgKzQx
LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyB2b2lkIGluaXRpYWxpemUoKTsKICAgICBzdGF0aWMg
Q2FsbGVlUmVnaXN0cnkmIHNpbmdsZXRvbigpOwogCi0gICAgTG9jayYgZ2V0TG9jaygpIHsgcmV0
dXJuIG1fbG9jazsgfQorICAgIFVuY2hlY2tlZExvY2smIGdldExvY2soKSB7IHJldHVybiBtX2xv
Y2s7IH0KIAogICAgIHZvaWQgcmVnaXN0ZXJDYWxsZWUoQ2FsbGVlKiBjYWxsZWUpCiAgICAgewpA
QCAtNzAsNyArNzAsNyBAQCBwdWJsaWM6CiAgICAgQ2FsbGVlUmVnaXN0cnkoKSA9IGRlZmF1bHQ7
CiAKIHByaXZhdGU6Ci0gICAgTG9jayBtX2xvY2s7CisgICAgVW5jaGVja2VkTG9jayBtX2xvY2s7
CiAgICAgSGFzaFNldDxDYWxsZWUqPiBtX2NhbGxlZVNldDsKIH07CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21QbGFuLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9XYXNtUGxhbi5oCmluZGV4IGFiOTRmOWU4OTAzODk2ZmQzMTE2YzYyNjkyYWQ3NmRk
Yzk0ZjVkNjEuLmM4MWYzYTZjOWY1ODZiOTFjMTdiNTk2NDc1MDE4ZWNjYTIzZmFkMWUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21QbGFuLmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVBsYW4uaApAQCAtOTQsOCArOTQsOCBAQCBwcm90ZWN0
ZWQ6CiAKICAgICBTdHJpbmcgbV9lcnJvck1lc3NhZ2U7CiAgICAgTWVtb3J5TW9kZSBtX21vZGUg
eyBNZW1vcnlNb2RlOjpCb3VuZHNDaGVja2luZyB9OwotICAgIExvY2sgbV9sb2NrOwotICAgIENv
bmRpdGlvbiBtX2NvbXBsZXRlZDsKKyAgICBVbmNoZWNrZWRMb2NrIG1fbG9jazsKKyAgICBVbmNo
ZWNrZWRDb25kaXRpb24gbV9jb21wbGV0ZWQ7CiB9OwogCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL1dhc21TdHJlYW1pbmdDb21waWxlci5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3dhc20vV2FzbVN0cmVhbWluZ0NvbXBpbGVyLmgKaW5kZXggODZhMTBkYzQ0NWI5
NGZmOTIzYjY2Y2JkNjFhNzExNjBlNzM2NmNlNS4uOTU3Zjc1ZmZmZmYwYzBmM2JlYTA0NDBkZWZh
OWRjODhlMGEyMzk0YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2Fz
bVN0cmVhbWluZ0NvbXBpbGVyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2Fz
bVN0cmVhbWluZ0NvbXBpbGVyLmgKQEAgLTcwLDcgKzcwLDcgQEAgcHJpdmF0ZToKICAgICBib29s
IG1fZWFnZXJGYWlsZWQgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9maW5hbGl6ZWQgeyBmYWxzZSB9
OwogICAgIGJvb2wgbV90aHJlYWRlZENvbXBpbGF0aW9uU3RhcnRlZCB7IGZhbHNlIH07Ci0gICAg
TG9jayBtX2xvY2s7CisgICAgVW5jaGVja2VkTG9jayBtX2xvY2s7CiAgICAgdW5zaWduZWQgbV9y
ZW1haW5pbmdDb21waWxhdGlvblJlcXVlc3RzIHsgMCB9OwogICAgIEpTUHJvbWlzZSogbV9wcm9t
aXNlOyAvLyBSYXcgcG9pbnRlciwgYnV0IGhlbGQgYnkgRGVmZXJyZWRXb3JrVGltZXIuCiAgICAg
UmVmPFdhc206Ok1vZHVsZUluZm9ybWF0aW9uPiBtX2luZm87CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtVGh1bmtzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d2FzbS9XYXNtVGh1bmtzLmgKaW5kZXggYzIzNWNmZTYyOTVlNjY5YWU1YTgwZWU4ZjI1MmVhNmNh
MjQzMWI4My4uZGU0Y2EzY2NmMGFiZTU0ZGQxMGRlMTgyMjZmNzgxN2MwNDc4MWYzYyAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVRodW5rcy5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21UaHVua3MuaApAQCAtNTUsNyArNTUsNyBAQCBwcml2
YXRlOgogICAgIFRodW5rcygpID0gZGVmYXVsdDsKIAogICAgIEhhc2hNYXA8VGh1bmtHZW5lcmF0
b3IsIE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxKSVRUaHVua1B0clRhZz4+IG1fc3R1YnM7Ci0gICAg
TG9jayBtX2xvY2s7CisgICAgVW5jaGVja2VkTG9jayBtX2xvY2s7CiB9OwogCiB9IH0gLy8gbmFt
ZXNwYWNlIEpTQzo6V2FzbQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20v
V2FzbVdvcmtsaXN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21Xb3JrbGlz
dC5jcHAKaW5kZXggNWJhZDBkOTBhNTYyZTI1ZGRlODE3YjU4MmMwNjA2NjU2YzkwNmViYS4uMzg5
OGVjYWI0YzA4ODdlMjVhMGEzNDgxYjQxMWI4ZjY3YzFlYmMyOSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVdvcmtsaXN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvd2FzbS9XYXNtV29ya2xpc3QuY3BwCkBAIC0xMjgsNyArMTI4LDcgQEAgcHJpdmF0
ZToKICAgICB9CiAKIHB1YmxpYzoKLSAgICBDb25kaXRpb24gc3luY2hyb25pemU7CisgICAgVW5j
aGVja2VkQ29uZGl0aW9uIHN5bmNocm9uaXplOwogICAgIFdvcmtsaXN0JiB3b3JrbGlzdDsKICAg
ICAvLyBXZSBjYW4gb25seSBtb2RpZnkgZWxlbWVudCB3aGVuIGhvbGRpbmcgdGhlIGxvY2suIEEg
c3luY2hyb25vdXMgY29tcGlsZSBtaWdodCBsb29rIGF0IGVhY2ggdGhyZWFkJ3MgdGFza3MgaW4g
b3JkZXIgdG8gYm9vc3QgdGhlIHByaW9yaXR5LgogICAgIFF1ZXVlRWxlbWVudCBlbGVtZW50OwpA
QCAtMjEzLDcgKzIxMyw3IEBAIHZvaWQgV29ya2xpc3Q6OnN0b3BBbGxQbGFuc0ZvckNvbnRleHQo
Q29udGV4dCYgY29udGV4dCkKIH0KIAogV29ya2xpc3Q6OldvcmtsaXN0KCkKLSAgICA6IG1fbG9j
ayhCb3g8TG9jaz46OmNyZWF0ZSgpKQorICAgIDogbV9sb2NrKEJveDxVbmNoZWNrZWRMb2NrPjo6
Y3JlYXRlKCkpCiAgICAgLCBtX3BsYW5FbnF1ZXVlZChBdXRvbWF0aWNUaHJlYWRDb25kaXRpb246
OmNyZWF0ZSgpKQogewogICAgIHVuc2lnbmVkIG51bWJlck9mQ29tcGlsYXRpb25UaHJlYWRzID0g
T3B0aW9uczo6dXNlQ29uY3VycmVudEpJVCgpID8ga2VyblRDU01Bd2FyZU51bWJlck9mUHJvY2Vz
c29yQ29yZXMoKSA6IDE7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9X
YXNtV29ya2xpc3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21Xb3JrbGlzdC5o
CmluZGV4IDU2ZDc5YTBlOTg5YTYwMmYyMTMzZDAzMDkwZmRiY2M2MzdjOTU2MzkuLjQ1YTZmYmI2
Y2Y5YTg1M2MyODFmZGJiYWNkNTZmYmVkZDFmYTU5Y2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS93YXNtL1dhc21Xb3JrbGlzdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93YXNtL1dhc21Xb3JrbGlzdC5oCkBAIC04NCw3ICs4NCw3IEBAIHByaXZhdGU6CiAgICAgICAg
IHJldHVybiBsZWZ0LnByaW9yaXR5ID4gcmlnaHQucHJpb3JpdHk7CiAgICAgfQogCi0gICAgQm94
PExvY2s+IG1fbG9jazsKKyAgICBCb3g8VW5jaGVja2VkTG9jaz4gbV9sb2NrOwogICAgIFJlZjxB
dXRvbWF0aWNUaHJlYWRDb25kaXRpb24+IG1fcGxhbkVucXVldWVkOwogICAgIC8vIFRlY2huaWNh
bGx5LCB0aGlzIGNvdWxkIG92ZXJmbG93IGJ1dCB0aGF0J3MgdW5saWtlbHkuIEV2ZW4gaWYgaXQg
ZGlkLCB3ZSB3aWxsIGp1c3QgY29tcGlsZSB0aGluZ3Mgb2YgdGhlIHNhbWUKICAgICAvLyBQcmlv
cml0eSBpdCB0aGUgd3Jvbmcgb3JkZXIsIHdoaWNoIGlzbid0IHdyb25nLCBqdXN0IHN1Ym9wdGlt
YWwuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9BdXRvbWF0aWNUaHJlYWQuY3BwIGIvU291
cmNlL1dURi93dGYvQXV0b21hdGljVGhyZWFkLmNwcAppbmRleCBmNGVhNzhkMTNlMWNkZGI2MTli
ODIyODY4ZDMzYzcyN2M5ZjJmOThiLi4zYzViZTUxM2MyNjNjYThiNGRhNmI3YzI2YzZmODM3Mzlk
YTMxZTBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9BdXRvbWF0aWNUaHJlYWQuY3BwCisr
KyBiL1NvdXJjZS9XVEYvd3RmL0F1dG9tYXRpY1RocmVhZC5jcHAKQEAgLTc3LDEyICs3NywxMiBA
QCB2b2lkIEF1dG9tYXRpY1RocmVhZENvbmRpdGlvbjo6bm90aWZ5QWxsKGNvbnN0IEFic3RyYWN0
TG9ja2VyJiBsb2NrZXIpCiAgICAgfQogfQogCi12b2lkIEF1dG9tYXRpY1RocmVhZENvbmRpdGlv
bjo6d2FpdChMb2NrJiBsb2NrKQordm9pZCBBdXRvbWF0aWNUaHJlYWRDb25kaXRpb246OndhaXQo
VW5jaGVja2VkTG9jayYgbG9jaykKIHsKICAgICBtX2NvbmRpdGlvbi53YWl0KGxvY2spOwogfQog
Ci1ib29sIEF1dG9tYXRpY1RocmVhZENvbmRpdGlvbjo6d2FpdEZvcihMb2NrJiBsb2NrLCBTZWNv
bmRzIHRpbWUpCitib29sIEF1dG9tYXRpY1RocmVhZENvbmRpdGlvbjo6d2FpdEZvcihVbmNoZWNr
ZWRMb2NrJiBsb2NrLCBTZWNvbmRzIHRpbWUpCiB7CiAgICAgcmV0dXJuIG1fY29uZGl0aW9uLndh
aXRGb3IobG9jaywgdGltZSk7CiB9CkBAIC0xMDQsMTIgKzEwNCwxMiBAQCBib29sIEF1dG9tYXRp
Y1RocmVhZENvbmRpdGlvbjo6Y29udGFpbnMoY29uc3QgQWJzdHJhY3RMb2NrZXImLCBBdXRvbWF0
aWNUaHJlYWQqCiAgICAgcmV0dXJuIG1fdGhyZWFkcy5jb250YWlucyh0aHJlYWQpOwogfQogCi1B
dXRvbWF0aWNUaHJlYWQ6OkF1dG9tYXRpY1RocmVhZChjb25zdCBBYnN0cmFjdExvY2tlciYgbG9j
a2VyLCBCb3g8TG9jaz4gbG9jaywgUmVmPEF1dG9tYXRpY1RocmVhZENvbmRpdGlvbj4mJiBjb25k
aXRpb24sIFNlY29uZHMgdGltZW91dCkKK0F1dG9tYXRpY1RocmVhZDo6QXV0b21hdGljVGhyZWFk
KGNvbnN0IEFic3RyYWN0TG9ja2VyJiBsb2NrZXIsIEJveDxVbmNoZWNrZWRMb2NrPiBsb2NrLCBS
ZWY8QXV0b21hdGljVGhyZWFkQ29uZGl0aW9uPiYmIGNvbmRpdGlvbiwgU2Vjb25kcyB0aW1lb3V0
KQogICAgIDogQXV0b21hdGljVGhyZWFkKGxvY2tlciwgbG9jaywgV1RGTW92ZShjb25kaXRpb24p
LCBUaHJlYWRUeXBlOjpVbmtub3duLCB0aW1lb3V0KQogewogfQogCi1BdXRvbWF0aWNUaHJlYWQ6
OkF1dG9tYXRpY1RocmVhZChjb25zdCBBYnN0cmFjdExvY2tlciYgbG9ja2VyLCBCb3g8TG9jaz4g
bG9jaywgUmVmPEF1dG9tYXRpY1RocmVhZENvbmRpdGlvbj4mJiBjb25kaXRpb24sIFRocmVhZFR5
cGUgdHlwZSwgU2Vjb25kcyB0aW1lb3V0KQorQXV0b21hdGljVGhyZWFkOjpBdXRvbWF0aWNUaHJl
YWQoY29uc3QgQWJzdHJhY3RMb2NrZXImIGxvY2tlciwgQm94PFVuY2hlY2tlZExvY2s+IGxvY2ss
IFJlZjxBdXRvbWF0aWNUaHJlYWRDb25kaXRpb24+JiYgY29uZGl0aW9uLCBUaHJlYWRUeXBlIHR5
cGUsIFNlY29uZHMgdGltZW91dCkKICAgICA6IG1fbG9jayhsb2NrKQogICAgICwgbV9jb25kaXRp
b24oV1RGTW92ZShjb25kaXRpb24pKQogICAgICwgbV90aW1lb3V0KHRpbWVvdXQpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV1RGL3d0Zi9BdXRvbWF0aWNUaHJlYWQuaCBiL1NvdXJjZS9XVEYvd3RmL0F1
dG9tYXRpY1RocmVhZC5oCmluZGV4IDhkN2MyYjUxNjgwYTNlYTY3MjhlNTE3NGZjODE4MDY4ZGVl
OTVjODYuLjA5ZmNhZmVmMjM5NTkxYjJlMTJjZGYwMmZkZjAwNmNjZGQ0MTJhNmIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XVEYvd3RmL0F1dG9tYXRpY1RocmVhZC5oCisrKyBiL1NvdXJjZS9XVEYvd3Rm
L0F1dG9tYXRpY1RocmVhZC5oCkBAIC04MSw4ICs4MSw4IEBAIHB1YmxpYzoKICAgICAvLyBPbmUg
a25vd24tZ29vZCBjYXNlIGZvciBvbmUtdHJ1ZS1jb25kaXRpb24gaXMgd2hlbiB0aGUgY29tbXVu
aWNhdGlvbiBpbnZvbHZlcyBqdXN0IHR3bwogICAgIC8vIHRocmVhZHMuIEluIHN1Y2ggY2FzZXMs
IHRoZSB0aHJlYWQgZG9pbmcgdGhlIG5vdGlmeUFsbCgpIGNhbiB3YWtlIHVwIGF0IG1vc3Qgb25l
IHRocmVhZCAtCiAgICAgLy8gaXRzIHBhcnRuZXIuCi0gICAgV1RGX0VYUE9SVF9QUklWQVRFIHZv
aWQgd2FpdChMb2NrJik7Ci0gICAgV1RGX0VYUE9SVF9QUklWQVRFIGJvb2wgd2FpdEZvcihMb2Nr
JiwgU2Vjb25kcyk7CisgICAgV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgd2FpdChVbmNoZWNrZWRM
b2NrJik7CisgICAgV1RGX0VYUE9SVF9QUklWQVRFIGJvb2wgd2FpdEZvcihVbmNoZWNrZWRMb2Nr
JiwgU2Vjb25kcyk7CiAgICAgCiBwcml2YXRlOgogICAgIGZyaWVuZCBjbGFzcyBBdXRvbWF0aWNU
aHJlYWQ7CkBAIC05Myw3ICs5Myw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCByZW1vdmUoY29uc3Qg
QWJzdHJhY3RMb2NrZXImLCBBdXRvbWF0aWNUaHJlYWQqKTsKICAgICBib29sIGNvbnRhaW5zKGNv
bnN0IEFic3RyYWN0TG9ja2VyJiwgQXV0b21hdGljVGhyZWFkKik7CiAgICAgCi0gICAgQ29uZGl0
aW9uIG1fY29uZGl0aW9uOworICAgIFVuY2hlY2tlZENvbmRpdGlvbiBtX2NvbmRpdGlvbjsKICAg
ICBWZWN0b3I8QXV0b21hdGljVGhyZWFkKj4gbV90aHJlYWRzOwogfTsKIApAQCAtMTMxLDkgKzEz
MSw5IEBAIHB1YmxpYzoKIHByb3RlY3RlZDoKICAgICAvLyBUaGlzIGxvZ2ljYWxseSBjcmVhdGVz
IHRoZSB0aHJlYWQsIGJ1dCBpbiByZWFsaXR5IHRoZSB0aHJlYWQgd29uJ3QgYmUgY3JlYXRlZCB1
bnRpbCBzb21lb25lCiAgICAgLy8gY2FsbHMgQXV0b21hdGljVGhyZWFkQ29uZGl0aW9uOjpub3Rp
ZnlPbmUoKSBvciBub3RpZnlBbGwoKS4KLSAgICBBdXRvbWF0aWNUaHJlYWQoY29uc3QgQWJzdHJh
Y3RMb2NrZXImLCBCb3g8TG9jaz4sIFJlZjxBdXRvbWF0aWNUaHJlYWRDb25kaXRpb24+JiYsIFNl
Y29uZHMgdGltZW91dCA9IDEwX3MpOworICAgIEF1dG9tYXRpY1RocmVhZChjb25zdCBBYnN0cmFj
dExvY2tlciYsIEJveDxVbmNoZWNrZWRMb2NrPiwgUmVmPEF1dG9tYXRpY1RocmVhZENvbmRpdGlv
bj4mJiwgU2Vjb25kcyB0aW1lb3V0ID0gMTBfcyk7CiAKLSAgICBBdXRvbWF0aWNUaHJlYWQoY29u
c3QgQWJzdHJhY3RMb2NrZXImLCBCb3g8TG9jaz4sIFJlZjxBdXRvbWF0aWNUaHJlYWRDb25kaXRp
b24+JiYsIFRocmVhZFR5cGUsIFNlY29uZHMgdGltZW91dCA9IDEwX3MpOworICAgIEF1dG9tYXRp
Y1RocmVhZChjb25zdCBBYnN0cmFjdExvY2tlciYsIEJveDxVbmNoZWNrZWRMb2NrPiwgUmVmPEF1
dG9tYXRpY1RocmVhZENvbmRpdGlvbj4mJiwgVGhyZWFkVHlwZSwgU2Vjb25kcyB0aW1lb3V0ID0g
MTBfcyk7CiAgICAgCiAgICAgLy8gVG8gdW5kZXJzdGFuZCBQb2xsUmVzdWx0IGFuZCBXb3JrUmVz
dWx0LCBpbWFnaW5lIHRoYXQgcG9sbCgpIGFuZCB3b3JrKCkgYXJlIGJlaW5nIGNhbGxlZCBsaWtl
CiAgICAgLy8gc286CkBAIC0xODMsMTUgKzE4MywxNSBAQCBwcml2YXRlOgogICAgIAogICAgIHZv
aWQgc3RhcnQoY29uc3QgQWJzdHJhY3RMb2NrZXImKTsKICAgICAKLSAgICBCb3g8TG9jaz4gbV9s
b2NrOworICAgIEJveDxVbmNoZWNrZWRMb2NrPiBtX2xvY2s7CiAgICAgUmVmPEF1dG9tYXRpY1Ro
cmVhZENvbmRpdGlvbj4gbV9jb25kaXRpb247CiAgICAgU2Vjb25kcyBtX3RpbWVvdXQ7CiAgICAg
VGhyZWFkVHlwZSBtX3RocmVhZFR5cGUgeyBUaHJlYWRUeXBlOjpVbmtub3duIH07CiAgICAgYm9v
bCBtX2lzUnVubmluZyB7IHRydWUgfTsKICAgICBib29sIG1faXNXYWl0aW5nIHsgZmFsc2UgfTsK
ICAgICBib29sIG1faGFzVW5kZXJseWluZ1RocmVhZCB7IGZhbHNlIH07Ci0gICAgQ29uZGl0aW9u
IG1fd2FpdENvbmRpdGlvbjsKLSAgICBDb25kaXRpb24gbV9pc1J1bm5pbmdDb25kaXRpb247Cisg
ICAgVW5jaGVja2VkQ29uZGl0aW9uIG1fd2FpdENvbmRpdGlvbjsKKyAgICBVbmNoZWNrZWRDb25k
aXRpb24gbV9pc1J1bm5pbmdDb25kaXRpb247CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXVEYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0NoZWNrZWRDb25kaXRpb24uaCBiL1NvdXJjZS9XVEYv
d3RmL0NoZWNrZWRDb25kaXRpb24uaAppbmRleCAxMTkxMGUwMzk5MTNiNGI2MGE0NDk0N2ViYzkx
ZDAxYWJjNzhiMjc5Li4xMDZiYmEyMmQwYTYxN2IwZGYwNGIyNzJmOGNhMmQwYjYxY2JhMGI2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9DaGVja2VkQ29uZGl0aW9uLmgKKysrIGIvU291cmNl
L1dURi93dGYvQ2hlY2tlZENvbmRpdGlvbi5oCkBAIC0yNSw1OCArMjUsMTIgQEAKIAogI3ByYWdt
YSBvbmNlCiAKLSNpbmNsdWRlIDx3dGYvQ2hlY2tlZExvY2suaD4KICNpbmNsdWRlIDx3dGYvQ29u
ZGl0aW9uLmg+CiAKIG5hbWVzcGFjZSBXVEYgewogCi0vLyBBIGNvbmRpdGlvbiB2YXJpYWJsZSB0
eXBlIGZvciBDaGVja2VkTG9jay4KLS8vIEZvciBwcmVkaWNhdGVzIHRoYXQgYWNjZXNzIHRoZSBn
dWFyZGVkIHZhcmlhYmxlcywgdXNlIGFzc2VydElzSGVsZChsb2NrKS4KLWNsYXNzIENoZWNrZWRD
b25kaXRpb24gZmluYWwgewotICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKENoZWNrZWRDb25kaXRp
b24pOwotICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwotcHVibGljOgotICAgIGNvbnN0ZXhw
ciBDaGVja2VkQ29uZGl0aW9uKCkgPSBkZWZhdWx0OwotCi0gICAgYm9vbCB3YWl0VW50aWwoQ2hl
Y2tlZExvY2smIGxvY2ssIGNvbnN0IFRpbWVXaXRoRHluYW1pY0Nsb2NrVHlwZSYgdGltZW91dCkg
V1RGX1JFUVVJUkVTX0xPQ0sobG9jaykKLSAgICB7Ci0gICAgICAgIHJldHVybiBtX2NvbmRpdGlv
bi53YWl0VW50aWwodW5jaGVja2VkQ2FzdChsb2NrKSwgdGltZW91dCk7Ci0gICAgfQotICAgIHRl
bXBsYXRlPHR5cGVuYW1lIEZ1bmN0b3I+Ci0gICAgYm9vbCB3YWl0VW50aWwoQ2hlY2tlZExvY2sm
IGxvY2ssIGNvbnN0IFRpbWVXaXRoRHluYW1pY0Nsb2NrVHlwZSYgdGltZW91dCwgY29uc3QgRnVu
Y3RvciYgcHJlZGljYXRlKSBXVEZfUkVRVUlSRVNfTE9DSyhsb2NrKQotICAgIHsKLSAgICAgICAg
cmV0dXJuIG1fY29uZGl0aW9uLndhaXRVbnRpbCh1bmNoZWNrZWRDYXN0KGxvY2spLCB0aW1lb3V0
LCBwcmVkaWNhdGUpOwotICAgIH0KLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBGdW5jdG9yPgotICAg
IGJvb2wgd2FpdEZvcihDaGVja2VkTG9jayYgbG9jaywgU2Vjb25kcyByZWxhdGl2ZVRpbWVvdXQs
IGNvbnN0IEZ1bmN0b3ImIHByZWRpY2F0ZSkgV1RGX1JFUVVJUkVTX0xPQ0sobG9jaykKLSAgICB7
Ci0gICAgICAgIHJldHVybiBtX2NvbmRpdGlvbi53YWl0Rm9yKHVuY2hlY2tlZENhc3QobG9jayks
IHJlbGF0aXZlVGltZW91dCwgcHJlZGljYXRlKTsKLSAgICB9Ci0gICAgYm9vbCB3YWl0Rm9yKENo
ZWNrZWRMb2NrJiBsb2NrLCBTZWNvbmRzIHJlbGF0aXZlVGltZW91dCkgV1RGX1JFUVVJUkVTX0xP
Q0sobG9jaykKLSAgICB7Ci0gICAgICAgIHJldHVybiBtX2NvbmRpdGlvbi53YWl0Rm9yKHVuY2hl
Y2tlZENhc3QobG9jayksIHJlbGF0aXZlVGltZW91dCk7Ci0gICAgfQotICAgIHZvaWQgd2FpdChD
aGVja2VkTG9jayYgbG9jaykgV1RGX1JFUVVJUkVTX0xPQ0sobG9jaykKLSAgICB7Ci0gICAgICAg
IG1fY29uZGl0aW9uLndhaXQodW5jaGVja2VkQ2FzdChsb2NrKSk7Ci0gICAgfQotICAgIHRlbXBs
YXRlPHR5cGVuYW1lIEZ1bmN0b3I+Ci0gICAgdm9pZCB3YWl0KENoZWNrZWRMb2NrJiBsb2NrLCBj
b25zdCBGdW5jdG9yJiBwcmVkaWNhdGUpIFdURl9SRVFVSVJFU19MT0NLKGxvY2spCi0gICAgewot
ICAgICAgICBtX2NvbmRpdGlvbi53YWl0KHVuY2hlY2tlZENhc3QobG9jayksIHByZWRpY2F0ZSk7
Ci0gICAgfQotICAgIGJvb2wgbm90aWZ5T25lKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiBtX2Nv
bmRpdGlvbi5ub3RpZnlPbmUoKTsKLSAgICB9Ci0gICAgdm9pZCBub3RpZnlBbGwoKQotICAgIHsK
LSAgICAgICAgbV9jb25kaXRpb24ubm90aWZ5QWxsKCk7Ci0gICAgfQotcHJpdmF0ZToKLSAgICBz
dGF0aWMgTG9jayYgdW5jaGVja2VkQ2FzdChDaGVja2VkTG9jayYgbG9jaykgeyByZXR1cm4gc3Rh
dGljX2Nhc3Q8TG9jayY+KGxvY2spOyB9Ci0gICAgQ29uZGl0aW9uIG1fY29uZGl0aW9uOwotfTsK
Ky8vIEZJWE1FOiBVcGRhdGUgY29kZSBiYXNlIHRvIHVzZSBDb25kaXRpb24gYW5kIHJlbW92ZSB0
aGlzIGhlYWRlci4KK3VzaW5nIENoZWNrZWRDb25kaXRpb24gPSBDb25kaXRpb247CiAKIH0gLy8g
bmFtZXNwYWNlIFdURgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9DaGVja2VkTG9jay5o
IGIvU291cmNlL1dURi93dGYvQ2hlY2tlZExvY2suaAppbmRleCAzYWI1Yzc3MGRlMTYxYjRmMDU5
ZDZjNzRiYjcxZWM5OGVmYTVmNThhLi45NGE5ODFkNzg4MTk2MDYxZTUzNzZkM2M0MmVhYTI0YjBi
NDJkMTg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9DaGVja2VkTG9jay5oCisrKyBiL1Nv
dXJjZS9XVEYvd3RmL0NoZWNrZWRMb2NrLmgKQEAgLTI2LDgzICsyNiwxMiBAQAogI3ByYWdtYSBv
bmNlCiAKICNpbmNsdWRlIDx3dGYvTG9jay5oPgotI2luY2x1ZGUgPHd0Zi9Mb2NrZXIuaD4KLSNp
bmNsdWRlIDx3dGYvVGhyZWFkU2FmZXR5QW5hbHlzaXMuaD4KIAogbmFtZXNwYWNlIFdURiB7CiAK
LS8vIEEgbG9jayB0eXBlIHdpdGggc3VwcG9ydCBmb3IgdGhyZWFkIHNhZmV0eSBhbmFseXNpcy4K
LS8vIFRvIGFubm90YXRlIGEgbWVtYmVyIHZhcmlhYmxlIG9yIGEgZ2xvYmFsIHZhcmlhYmxlIHdp
dGggdGhyZWFkIG93bmVyc2hpcCBpbmZvcm1hdGlvbiwKLS8vIHVzZSBsb2NrIGNhcGFiaWxpdHkg
YW5ub3RhdGlvbnMgZGVmaW5lZCBpbiBUaHJlYWRTYWZldHlBbmFseXNpcy5oLgotLy8KLS8vIEV4
YW1wbGU6Ci0vLyAgIGNsYXNzIE15VmFsdWUgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8
TXlWYWx1ZT4KLS8vICAgewotLy8gICBwdWJsaWM6Ci0vLyAgICAgICB2b2lkIHNldFZhbHVlKGlu
dCB2YWx1ZSkgeyBMb2NrZXIgaG9sZExvY2sgeyBtX2xvY2sgfTsgbV92YWx1ZSA9IHZhbHVlOyAg
fQotLy8gICAgICAgdm9pZCBtYXliZVNldE90aGVyVmFsdWUoaW50IHZhbHVlKQotLy8gICAgICAg
ewotLy8gICAgICAgICAgIGlmICghbV9sb2NrLnRyeUxvY2soKSkKLS8vICAgICAgICAgICAgICBy
ZXR1cm47Ci0vLyAgICAgICAgICAgTG9ja2VyIGxvY2tlciB7IEFkb3B0TG9jaywgbV9vdGhlckxv
Y2sgfTsKLS8vICAgICAgICAgICBtX290aGVyVmFsdWUgPSB2YWx1ZTsKLS8vICAgICAgIH0KLS8v
ICAgcHJpdmF0ZToKLS8vICAgICAgIENoZWNrZWRMb2NrIG1fbG9jazsKLS8vICAgICAgIGludCBt
X3ZhbHVlIFdURl9HVUFSREVEX0JZX0xPQ0sobV9sb2NrKSB7IDc3IH07Ci0vLyAgICAgICBpbnQg
bV9vdGhlclZhbHVlIFdURl9HVUFSREVEX0JZX0xPQ0sobV9sb2NrKSB7IDg4IH07Ci0vLyAgIH07
Ci0vLyBGSVhNRTogTWF5YmUgc2hvdWxkIGJlIGZvbGRlZCBiYWNrIHRvIExvY2sgb25jZSBob2xk
TG9jayBpcyBub3QgdXNlZCBnbG9iYWxseS4KLWNsYXNzIFdURl9DQVBBQklMSVRZX0xPQ0sgQ2hl
Y2tlZExvY2sgOiBMb2NrIHsKLSAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShDaGVja2VkTG9jayk7
Ci0gICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7Ci1wdWJsaWM6Ci0gICAgY29uc3RleHByIENo
ZWNrZWRMb2NrKCkgPSBkZWZhdWx0OwotICAgIHZvaWQgbG9jaygpIFdURl9BQ1FVSVJFU19MT0NL
KCkgeyBMb2NrOjpsb2NrKCk7IH0KLSAgICBib29sIHRyeUxvY2soKSBXVEZfQUNRVUlSRVNfTE9D
S19JRih0cnVlKSB7IHJldHVybiBMb2NrOjp0cnlMb2NrKCk7IH0KLSAgICBib29sIHRyeV9sb2Nr
KCkgV1RGX0FDUVVJUkVTX0xPQ0tfSUYodHJ1ZSkgeyByZXR1cm4gTG9jazo6dHJ5X2xvY2soKTsg
fSAvLyBOT0xJTlQ6IEludGVudGlvbmFsIGRldmlhdGlvbiB0byBzdXBwb3J0IHN0ZDo6c2NvcGVk
X2xvY2suCi0gICAgdm9pZCB1bmxvY2soKSBXVEZfUkVMRUFTRVNfTE9DSygpIHsgTG9jazo6dW5s
b2NrKCk7IH0KLSAgICB2b2lkIHVubG9ja0ZhaXJseSgpIFdURl9SRUxFQVNFU19MT0NLKCkgeyBM
b2NrOjp1bmxvY2tGYWlybHkoKTsgfQotICAgIHZvaWQgc2FmZXBvaW50KCkgeyBMb2NrOjpzYWZl
cG9pbnQoKTsgfQotICAgIGJvb2wgaXNIZWxkKCkgY29uc3QgeyByZXR1cm4gTG9jazo6aXNIZWxk
KCk7IH0KLSAgICBib29sIGlzTG9ja2VkKCkgY29uc3QgeyByZXR1cm4gTG9jazo6aXNMb2NrZWQo
KTsgfQotICAgIGZyaWVuZCBjbGFzcyBDaGVja2VkQ29uZGl0aW9uOwotfTsKLQotLy8gQXNzZXJ0
cyB0aGF0IHRoZSBsb2NrIGlzIGhlbGQuCi0vLyBUaGlzIGNhbiBiZSB1c2VkIGluIGNhc2VzIHdo
ZXJlIHRoZSBhbm5vdGF0aW9ucyBjYW5ub3QgYmUgYWRkZWQgdG8gdGhlIGZ1bmN0aW9uCi0vLyBk
ZWNsYXJhdGlvbi4KLWlubGluZSB2b2lkIGFzc2VydElzSGVsZChjb25zdCBDaGVja2VkTG9jayYg
bG9jaykgV1RGX0FTU0VSVFNfQUNRVUlSRURfTE9DSyhsb2NrKSB7IEFTU0VSVF9VTlVTRUQobG9j
aywgbG9jay5pc0hlbGQoKSk7IH0KLQotLy8gTG9ja2VyIHNwZWNpYWxpemF0aW9uIHRvIHVzZSB3
aXRoIENoZWNrZWRMb2NrLgotLy8gTm9uLW1vdmFibGUgc2ltcGxlIHNjb3BlZCBsb2NrIGhvbGRl
ci4KLS8vIEV4YW1wbGU6IExvY2tlciBsb2NrZXIgeyBtX2xvY2sgfTsKLXRlbXBsYXRlIDw+Ci1j
bGFzcyBXVEZfQ0FQQUJJTElUWV9TQ09QRURfTE9DSyBMb2NrZXI8Q2hlY2tlZExvY2s+IHsKLXB1
YmxpYzoKLSAgICBleHBsaWNpdCBMb2NrZXIoQ2hlY2tlZExvY2smIGxvY2spIFdURl9BQ1FVSVJF
U19MT0NLKGxvY2spCi0gICAgICAgIDogbV9sb2NrKGxvY2spCi0gICAgewotICAgICAgICBtX2xv
Y2subG9jaygpOwotICAgIH0KLSAgICBMb2NrZXIoQWRvcHRMb2NrVGFnLCBDaGVja2VkTG9jayYg
bG9jaykgV1RGX1JFUVVJUkVTX0xPQ0sobG9jaykKLSAgICAgICAgOiBtX2xvY2sobG9jaykKLSAg
ICB7Ci0gICAgfQotICAgIH5Mb2NrZXIoKSBXVEZfUkVMRUFTRVNfTE9DSygpCi0gICAgewotICAg
ICAgICBtX2xvY2sudW5sb2NrKCk7Ci0gICAgfQotICAgIExvY2tlcihjb25zdCBMb2NrZXI8Q2hl
Y2tlZExvY2s+JikgPSBkZWxldGU7Ci0gICAgTG9ja2VyJiBvcGVyYXRvcj0oY29uc3QgTG9ja2Vy
PENoZWNrZWRMb2NrPiYpID0gZGVsZXRlOwotcHJpdmF0ZToKLSAgICBDaGVja2VkTG9jayYgbV9s
b2NrOwotfTsKLQotTG9ja2VyKENoZWNrZWRMb2NrJikgLT4gTG9ja2VyPENoZWNrZWRMb2NrPjsK
LUxvY2tlcihBZG9wdExvY2tUYWcsIENoZWNrZWRMb2NrJikgLT4gTG9ja2VyPENoZWNrZWRMb2Nr
PjsKKy8vIEZJWE1FOiBVcGRhdGUgY29kZSBiYXNlIHRvIHVzZSBMb2NrIGFuZCByZW1vdmUgdGhp
cyBoZWFkZXIuCit1c2luZyBDaGVja2VkTG9jayA9IExvY2s7CiAKIH0gLy8gbmFtZXNwYWNlIFdU
RgogCi11c2luZyBXVEY6OmFzc2VydElzSGVsZDsKIHVzaW5nIFdURjo6Q2hlY2tlZExvY2s7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9Db25kaXRpb24uaCBiL1NvdXJjZS9XVEYvd3RmL0Nv
bmRpdGlvbi5oCmluZGV4IDgxNTUwMWYxN2QyNjc5OTJkZjRkNDRkZGI5OTMxY2NhMGU4ZmZlOTku
LjRlZWYxZjFhNjJhMWNiNTJjMWRlNTcyZTE3MWEzMTQzNTY5OGIzNjYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XVEYvd3RmL0NvbmRpdGlvbi5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL0NvbmRpdGlvbi5o
CkBAIC0yNSw2ICsyNSw3IEBACiAKICNwcmFnbWEgb25jZQogCisjaW5jbHVkZSA8d3RmL0xvY2su
aD4KICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KICNpbmNsdWRlIDx3dGYvUGFya2luZ0xv
dC5oPgogI2luY2x1ZGUgPHd0Zi9UaW1lV2l0aER5bmFtaWNDbG9ja1R5cGUuaD4KQEAgLTM5LDE2
ICs0MCwxNiBAQCBuYW1lc3BhY2UgV1RGIHsKIC8vIG5vdGlmeUFsbCgpIHJlcXVpcmUganVzdCBh
IGxvYWQgYW5kIGJyYW5jaCBmb3IgdGhlIGZhc3QgY2FzZSB3aGVyZSBubyB0aHJlYWQgaXMgd2Fp
dGluZy4KIC8vIFRoaXMgY29uZGl0aW9uIHZhcmlhYmxlLCB3aGVuIHVzZWQgd2l0aCBXVEY6Okxv
Y2ssIGNhbiBvdXRwZXJmb3JtIGEgc3lzdGVtIGNvbmRpdGlvbiB2YXJpYWJsZQogLy8gYW5kIGxv
Y2sgYnkgdXAgdG8gNTh4LgotY2xhc3MgQ29uZGl0aW9uIGZpbmFsIHsKLSAgICBXVEZfTUFLRV9O
T05DT1BZQUJMRShDb25kaXRpb24pOworY2xhc3MgVW5jaGVja2VkQ29uZGl0aW9uIGZpbmFsIHsK
KyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShVbmNoZWNrZWRDb25kaXRpb24pOwogICAgIFdURl9N
QUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIC8vIENvbmRpdGlvbiB3aWxsIGFjY2Vw
dCBhbnkga2luZCBvZiB0aW1lIGFuZCBjb252ZXJ0IGl0IGludGVybmFsbHksIGJ1dCB0aGlzIHR5
cGVkZWYgdGVsbHMKLSAgICAvLyB5b3Ugd2hhdCBraW5kIG9mIHRpbWUgQ29uZGl0aW9uIHdvdWxk
IGJlIGFibGUgdG8gdXNlIHdpdGhvdXQgY29udmVyc2lvbnMuIEhvd2V2ZXIsIGlmIHlvdQorICAg
IC8vIFVuY2hlY2tlZENvbmRpdGlvbiB3aWxsIGFjY2VwdCBhbnkga2luZCBvZiB0aW1lIGFuZCBj
b252ZXJ0IGl0IGludGVybmFsbHksIGJ1dCB0aGlzIHR5cGVkZWYgdGVsbHMKKyAgICAvLyB5b3Ug
d2hhdCBraW5kIG9mIHRpbWUgVW5jaGVja2VkQ29uZGl0aW9uIHdvdWxkIGJlIGFibGUgdG8gdXNl
IHdpdGhvdXQgY29udmVyc2lvbnMuIEhvd2V2ZXIsIGlmIHlvdQogICAgIC8vIGFyZSB1bmxpa2Vs
eSB0byBiZSBhZmZlY3RlZCBieSB0aGUgY29zdCBvZiBjb252ZXJzaW9ucywgaXQgaXMgYmV0dGVy
IHRvIHVzZSBNb25vdG9uaWNUaW1lLgogICAgIHVzaW5nIFRpbWUgPSBQYXJraW5nTG90OjpUaW1l
OwogCi0gICAgY29uc3RleHByIENvbmRpdGlvbigpID0gZGVmYXVsdDsKKyAgICBjb25zdGV4cHIg
VW5jaGVja2VkQ29uZGl0aW9uKCkgPSBkZWZhdWx0OwogCiAgICAgLy8gV2FpdCBvbiBhIHBhcmtp
bmcgcXVldWUgd2hpbGUgcmVsZWFzaW5nIHRoZSBnaXZlbiBsb2NrLiBJdCB3aWxsIHVubG9jayB0
aGUgbG9jayBqdXN0IGJlZm9yZQogICAgIC8vIHBhcmtpbmcsIGFuZCByZWxvY2sgaXQgdXBvbiB3
YWtldXAuIFJldHVybnMgdHJ1ZSBpZiB3ZSB3b2tlIHVwIGR1ZSB0byBzb21lIGNhbGwgdG8KQEAg
LTE3Miw5ICsxNzMsNjEgQEAgcHJpdmF0ZToKICAgICBBdG9taWM8Ym9vbD4gbV9oYXNXYWl0ZXJz
IHsgZmFsc2UgfTsKIH07CiAKKy8vIEEgY29uZGl0aW9uIHZhcmlhYmxlIHR5cGUgZm9yIExvY2su
CisvLyBGb3IgcHJlZGljYXRlcyB0aGF0IGFjY2VzcyB0aGUgZ3VhcmRlZCB2YXJpYWJsZXMsIHVz
ZSBhc3NlcnRJc0hlbGQobG9jaykuCitjbGFzcyBDb25kaXRpb24gZmluYWwgeworICAgIFdURl9N
QUtFX05PTkNPUFlBQkxFKENvbmRpdGlvbik7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7
CitwdWJsaWM6CisgICAgY29uc3RleHByIENvbmRpdGlvbigpID0gZGVmYXVsdDsKKworICAgIGJv
b2wgd2FpdFVudGlsKExvY2smIGxvY2ssIGNvbnN0IFRpbWVXaXRoRHluYW1pY0Nsb2NrVHlwZSYg
dGltZW91dCkgV1RGX1JFUVVJUkVTX0xPQ0sobG9jaykKKyAgICB7CisgICAgICAgIHJldHVybiBt
X2NvbmRpdGlvbi53YWl0VW50aWwodW5jaGVja2VkQ2FzdChsb2NrKSwgdGltZW91dCk7CisgICAg
fQorICAgIHRlbXBsYXRlPHR5cGVuYW1lIEZ1bmN0b3I+CisgICAgYm9vbCB3YWl0VW50aWwoTG9j
ayYgbG9jaywgY29uc3QgVGltZVdpdGhEeW5hbWljQ2xvY2tUeXBlJiB0aW1lb3V0LCBjb25zdCBG
dW5jdG9yJiBwcmVkaWNhdGUpIFdURl9SRVFVSVJFU19MT0NLKGxvY2spCisgICAgeworICAgICAg
ICByZXR1cm4gbV9jb25kaXRpb24ud2FpdFVudGlsKHVuY2hlY2tlZENhc3QobG9jayksIHRpbWVv
dXQsIHByZWRpY2F0ZSk7CisgICAgfQorICAgIHRlbXBsYXRlPHR5cGVuYW1lIEZ1bmN0b3I+Cisg
ICAgYm9vbCB3YWl0Rm9yKExvY2smIGxvY2ssIFNlY29uZHMgcmVsYXRpdmVUaW1lb3V0LCBjb25z
dCBGdW5jdG9yJiBwcmVkaWNhdGUpIFdURl9SRVFVSVJFU19MT0NLKGxvY2spCisgICAgeworICAg
ICAgICByZXR1cm4gbV9jb25kaXRpb24ud2FpdEZvcih1bmNoZWNrZWRDYXN0KGxvY2spLCByZWxh
dGl2ZVRpbWVvdXQsIHByZWRpY2F0ZSk7CisgICAgfQorICAgIGJvb2wgd2FpdEZvcihMb2NrJiBs
b2NrLCBTZWNvbmRzIHJlbGF0aXZlVGltZW91dCkgV1RGX1JFUVVJUkVTX0xPQ0sobG9jaykKKyAg
ICB7CisgICAgICAgIHJldHVybiBtX2NvbmRpdGlvbi53YWl0Rm9yKHVuY2hlY2tlZENhc3QobG9j
ayksIHJlbGF0aXZlVGltZW91dCk7CisgICAgfQorICAgIHZvaWQgd2FpdChMb2NrJiBsb2NrKSBX
VEZfUkVRVUlSRVNfTE9DSyhsb2NrKQorICAgIHsKKyAgICAgICAgbV9jb25kaXRpb24ud2FpdCh1
bmNoZWNrZWRDYXN0KGxvY2spKTsKKyAgICB9CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRnVuY3Rv
cj4KKyAgICB2b2lkIHdhaXQoTG9jayYgbG9jaywgY29uc3QgRnVuY3RvciYgcHJlZGljYXRlKSBX
VEZfUkVRVUlSRVNfTE9DSyhsb2NrKQorICAgIHsKKyAgICAgICAgbV9jb25kaXRpb24ud2FpdCh1
bmNoZWNrZWRDYXN0KGxvY2spLCBwcmVkaWNhdGUpOworICAgIH0KKyAgICBib29sIG5vdGlmeU9u
ZSgpCisgICAgeworICAgICAgICByZXR1cm4gbV9jb25kaXRpb24ubm90aWZ5T25lKCk7CisgICAg
fQorICAgIHZvaWQgbm90aWZ5QWxsKCkKKyAgICB7CisgICAgICAgIG1fY29uZGl0aW9uLm5vdGlm
eUFsbCgpOworICAgIH0KK3ByaXZhdGU6CisgICAgc3RhdGljIFVuY2hlY2tlZExvY2smIHVuY2hl
Y2tlZENhc3QoTG9jayYgbG9jaykgeyByZXR1cm4gc3RhdGljX2Nhc3Q8VW5jaGVja2VkTG9jayY+
KGxvY2spOyB9CisgICAgVW5jaGVja2VkQ29uZGl0aW9uIG1fY29uZGl0aW9uOworfTsKKwordXNp
bmcgU3RhdGljVW5jaGVja2VkQ29uZGl0aW9uID0gVW5jaGVja2VkQ29uZGl0aW9uOwogdXNpbmcg
U3RhdGljQ29uZGl0aW9uID0gQ29uZGl0aW9uOwogCiB9IC8vIG5hbWVzcGFjZSBXVEYKIAogdXNp
bmcgV1RGOjpDb25kaXRpb247Cit1c2luZyBXVEY6OlVuY2hlY2tlZENvbmRpdGlvbjsKIHVzaW5n
IFdURjo6U3RhdGljQ29uZGl0aW9uOwordXNpbmcgV1RGOjpTdGF0aWNVbmNoZWNrZWRDb25kaXRp
b247CisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0xvY2suY3BwIGIvU291cmNlL1dURi93
dGYvTG9jay5jcHAKaW5kZXggYjk5MzgzZDY5NDgwZDNhNGM5YjYyM2YwYzBiY2M3ZGY5MGVhYjA0
ZC4uZmY4NmUxMGE5YTJhNDE3YWI3MDY3MGEwNzg5Y2Y2NTBkNzE4YjE3MSAxMDA2NDQKLS0tIGEv
U291cmNlL1dURi93dGYvTG9jay5jcHAKKysrIGIvU291cmNlL1dURi93dGYvTG9jay5jcHAKQEAg
LTMzLDE0ICszMywxNCBAQCBuYW1lc3BhY2UgV1RGIHsKIAogc3RhdGljIGNvbnN0ZXhwciBib29s
IHByb2ZpbGVMb2NrQ29udGVudGlvbiA9IGZhbHNlOwogCi12b2lkIExvY2s6OmxvY2tTbG93KCkK
K3ZvaWQgVW5jaGVja2VkTG9jazo6bG9ja1Nsb3coKQogewogICAgIGlmIChwcm9maWxlTG9ja0Nv
bnRlbnRpb24pCiAgICAgICAgIFNUQUNLX1NIT1RfUFJPRklMRSg0LCAyLCA1KTsKICAgICBEZWZh
dWx0TG9ja0FsZ29yaXRobTo6bG9ja1Nsb3cobV9ieXRlKTsKIH0KIAotdm9pZCBMb2NrOjp1bmxv
Y2tTbG93KCkKK3ZvaWQgVW5jaGVja2VkTG9jazo6dW5sb2NrU2xvdygpCiB7CiAgICAgLy8gSGVh
cCBhbGxvY2F0aW9ucyBhcmUgZm9yYmlkZGVuIG9uIHRoZSBjZXJ0YWluIHRocmVhZHMgKGUuZy4g
YXVkaW8gcmVuZGVyaW5nIHRocmVhZCkgZm9yIHBlcmZvcm1hbmNlIHJlYXNvbnMgc28gd2UgbmVl
ZCB0bwogICAgIC8vIGV4cGxpY2l0bHkgYWxsb3cgdGhlIGZvbGxvd2luZyBhbGxvY2F0aW9uKHMp
LiBJbiBzb21lIHJhcmUgY2FzZXMsIHRoZSB1bmxvY2tTbG93KCkgYWxnb3JpdGggbWF5IGNhdXNl
IGFsbG9jYXRpb25zLgpAQCAtNDksNyArNDksNyBAQCB2b2lkIExvY2s6OnVubG9ja1Nsb3coKQog
ICAgIERlZmF1bHRMb2NrQWxnb3JpdGhtOjp1bmxvY2tTbG93KG1fYnl0ZSwgRGVmYXVsdExvY2tB
bGdvcml0aG06OlVuZmFpcik7CiB9CiAKLXZvaWQgTG9jazo6dW5sb2NrRmFpcmx5U2xvdygpCit2
b2lkIFVuY2hlY2tlZExvY2s6OnVubG9ja0ZhaXJseVNsb3coKQogewogICAgIC8vIEhlYXAgYWxs
b2NhdGlvbnMgYXJlIGZvcmJpZGRlbiBvbiB0aGUgY2VydGFpbiB0aHJlYWRzIChlLmcuIGF1ZGlv
IHJlbmRlcmluZyB0aHJlYWQpIGZvciBwZXJmb3JtYW5jZSByZWFzb25zIHNvIHdlIG5lZWQgdG8K
ICAgICAvLyBleHBsaWNpdGx5IGFsbG93IHRoZSBmb2xsb3dpbmcgYWxsb2NhdGlvbihzKS4gSW4g
c29tZSByYXJlIGNhc2VzLCB0aGUgdW5sb2NrU2xvdygpIGFsZ29yaXRoIG1heSBjYXVzZSBhbGxv
Y2F0aW9ucy4KQEAgLTU4LDcgKzU4LDcgQEAgdm9pZCBMb2NrOjp1bmxvY2tGYWlybHlTbG93KCkK
ICAgICBEZWZhdWx0TG9ja0FsZ29yaXRobTo6dW5sb2NrU2xvdyhtX2J5dGUsIERlZmF1bHRMb2Nr
QWxnb3JpdGhtOjpGYWlyKTsKIH0KIAotdm9pZCBMb2NrOjpzYWZlcG9pbnRTbG93KCkKK3ZvaWQg
VW5jaGVja2VkTG9jazo6c2FmZXBvaW50U2xvdygpCiB7CiAgICAgRGVmYXVsdExvY2tBbGdvcml0
aG06OnNhZmVwb2ludFNsb3cobV9ieXRlKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3Rm
L0xvY2suaCBiL1NvdXJjZS9XVEYvd3RmL0xvY2suaAppbmRleCA2MGZkYWFiZDkwZGFlN2YyZDRk
NDhmMzFiODAzNGRlM2JmOTVmNjdkLi5mZGMwYTRmNzcwY2U2MzJhMDFmMWJiMTM1YWNkYTliMzNj
ZmU0OTMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9Mb2NrLmgKKysrIGIvU291cmNlL1dU
Ri93dGYvTG9jay5oCkBAIC0yNSw5ICsyNSwxMSBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1
ZGUgPG11dGV4PgogI2luY2x1ZGUgPHd0Zi9Mb2NrQWxnb3JpdGhtLmg+CiAjaW5jbHVkZSA8d3Rm
L0xvY2tlci5oPgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgorI2luY2x1ZGUgPHd0Zi9U
aHJlYWRTYWZldHlBbmFseXNpcy5oPgogCiBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CiBzdHJ1
Y3QgTG9ja0luc3BlY3RvcjsKQEAgLTQ3LDExICs0OSwxMSBAQCB0eXBlZGVmIExvY2tBbGdvcml0
aG08dWludDhfdCwgMSwgMj4gRGVmYXVsdExvY2tBbGdvcml0aG07CiAvLyBhdCB3b3JzdCBvbmUg
Y2FsbCB0byB1bmxvY2soKSBwZXIgbWlsbGlzZWNvbmQgd2lsbCBkbyBhIGRpcmVjdCBoYW5kLW9m
ZiB0byB0aGUgdGhyZWFkIHRoYXQgaXMgYXQKIC8vIHRoZSBoZWFkIG9mIHRoZSBxdWV1ZS4gV2hl
biB0aGVyZSBhcmUgY29sbGlzaW9ucywgZWFjaCBjb2xsaXNpb24gaW5jcmVhc2VzIHRoZSBmYWly
IHVubG9jayBkZWxheQogLy8gYnkgb25lIG1pbGxpc2Vjb25kIGluIHRoZSB3b3JzdCBjYXNlLgot
Y2xhc3MgTG9jayB7Ci0gICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoTG9jayk7CitjbGFzcyBVbmNo
ZWNrZWRMb2NrIHsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShVbmNoZWNrZWRMb2NrKTsKICAg
ICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBjb25zdGV4cHIgTG9jaygp
ID0gZGVmYXVsdDsKKyAgICBjb25zdGV4cHIgVW5jaGVja2VkTG9jaygpID0gZGVmYXVsdDsKIAog
ICAgIHZvaWQgbG9jaygpCiAgICAgewpAQCAtMTMxLDkgKzEzMyw4NCBAQCBwcml2YXRlOgogICAg
IEF0b21pYzx1aW50OF90PiBtX2J5dGUgeyAwIH07CiB9OwogCisvLyBBIGxvY2sgdHlwZSB3aXRo
IHN1cHBvcnQgZm9yIHRocmVhZCBzYWZldHkgYW5hbHlzaXMuCisvLyBUbyBhbm5vdGF0ZSBhIG1l
bWJlciB2YXJpYWJsZSBvciBhIGdsb2JhbCB2YXJpYWJsZSB3aXRoIHRocmVhZCBvd25lcnNoaXAg
aW5mb3JtYXRpb24sCisvLyB1c2UgbG9jayBjYXBhYmlsaXR5IGFubm90YXRpb25zIGRlZmluZWQg
aW4gVGhyZWFkU2FmZXR5QW5hbHlzaXMuaC4KKy8vCisvLyBFeGFtcGxlOgorLy8gICBjbGFzcyBN
eVZhbHVlIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPE15VmFsdWU+CisvLyAgIHsKKy8v
ICAgcHVibGljOgorLy8gICAgICAgdm9pZCBzZXRWYWx1ZShpbnQgdmFsdWUpIHsgTG9ja2VyIGhv
bGRMb2NrIHsgbV9sb2NrIH07IG1fdmFsdWUgPSB2YWx1ZTsgIH0KKy8vICAgICAgIHZvaWQgbWF5
YmVTZXRPdGhlclZhbHVlKGludCB2YWx1ZSkKKy8vICAgICAgIHsKKy8vICAgICAgICAgICBpZiAo
IW1fbG9jay50cnlMb2NrKCkpCisvLyAgICAgICAgICAgICAgcmV0dXJuOworLy8gICAgICAgICAg
IExvY2tlciBsb2NrZXIgeyBBZG9wdExvY2ssIG1fb3RoZXJMb2NrIH07CisvLyAgICAgICAgICAg
bV9vdGhlclZhbHVlID0gdmFsdWU7CisvLyAgICAgICB9CisvLyAgIHByaXZhdGU6CisvLyAgICAg
ICBMb2NrIG1fbG9jazsKKy8vICAgICAgIGludCBtX3ZhbHVlIFdURl9HVUFSREVEX0JZX0xPQ0so
bV9sb2NrKSB7IDc3IH07CisvLyAgICAgICBpbnQgbV9vdGhlclZhbHVlIFdURl9HVUFSREVEX0JZ
X0xPQ0sobV9sb2NrKSB7IDg4IH07CisvLyAgIH07CitjbGFzcyBXVEZfQ0FQQUJJTElUWV9MT0NL
IExvY2sgOiBVbmNoZWNrZWRMb2NrIHsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShMb2NrKTsK
KyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICBjb25zdGV4cHIgTG9j
aygpID0gZGVmYXVsdDsKKyAgICB2b2lkIGxvY2soKSBXVEZfQUNRVUlSRVNfTE9DSygpIHsgVW5j
aGVja2VkTG9jazo6bG9jaygpOyB9CisgICAgYm9vbCB0cnlMb2NrKCkgV1RGX0FDUVVJUkVTX0xP
Q0tfSUYodHJ1ZSkgeyByZXR1cm4gVW5jaGVja2VkTG9jazo6dHJ5TG9jaygpOyB9CisgICAgYm9v
bCB0cnlfbG9jaygpIFdURl9BQ1FVSVJFU19MT0NLX0lGKHRydWUpIHsgcmV0dXJuIFVuY2hlY2tl
ZExvY2s6OnRyeV9sb2NrKCk7IH0gLy8gTk9MSU5UOiBJbnRlbnRpb25hbCBkZXZpYXRpb24gdG8g
c3VwcG9ydCBzdGQ6OnNjb3BlZF9sb2NrLgorICAgIHZvaWQgdW5sb2NrKCkgV1RGX1JFTEVBU0VT
X0xPQ0soKSB7IFVuY2hlY2tlZExvY2s6OnVubG9jaygpOyB9CisgICAgdm9pZCB1bmxvY2tGYWly
bHkoKSBXVEZfUkVMRUFTRVNfTE9DSygpIHsgVW5jaGVja2VkTG9jazo6dW5sb2NrRmFpcmx5KCk7
IH0KKyAgICB2b2lkIHNhZmVwb2ludCgpIHsgVW5jaGVja2VkTG9jazo6c2FmZXBvaW50KCk7IH0K
KyAgICBib29sIGlzSGVsZCgpIGNvbnN0IHsgcmV0dXJuIFVuY2hlY2tlZExvY2s6OmlzSGVsZCgp
OyB9CisgICAgYm9vbCBpc0xvY2tlZCgpIGNvbnN0IHsgcmV0dXJuIFVuY2hlY2tlZExvY2s6Omlz
TG9ja2VkKCk7IH0KKyAgICBmcmllbmQgY2xhc3MgQ29uZGl0aW9uOworICAgIGZyaWVuZCBzdHJ1
Y3QgVGVzdFdlYktpdEFQSTo6TG9ja0luc3BlY3RvcjsKK307CisKKy8vIEFzc2VydHMgdGhhdCB0
aGUgbG9jayBpcyBoZWxkLgorLy8gVGhpcyBjYW4gYmUgdXNlZCBpbiBjYXNlcyB3aGVyZSB0aGUg
YW5ub3RhdGlvbnMgY2Fubm90IGJlIGFkZGVkIHRvIHRoZSBmdW5jdGlvbgorLy8gZGVjbGFyYXRp
b24uCitpbmxpbmUgdm9pZCBhc3NlcnRJc0hlbGQoY29uc3QgTG9jayYgbG9jaykgV1RGX0FTU0VS
VFNfQUNRVUlSRURfTE9DSyhsb2NrKSB7IEFTU0VSVF9VTlVTRUQobG9jaywgbG9jay5pc0hlbGQo
KSk7IH0KKworLy8gTG9ja2VyIHNwZWNpYWxpemF0aW9uIHRvIHVzZSB3aXRoIExvY2suCisvLyBO
b24tbW92YWJsZSBzaW1wbGUgc2NvcGVkIGxvY2sgaG9sZGVyLgorLy8gRXhhbXBsZTogTG9ja2Vy
IGxvY2tlciB7IG1fbG9jayB9OwordGVtcGxhdGUgPD4KK2NsYXNzIFdURl9DQVBBQklMSVRZX1ND
T1BFRF9MT0NLIExvY2tlcjxMb2NrPiB7CitwdWJsaWM6CisgICAgZXhwbGljaXQgTG9ja2VyKExv
Y2smIGxvY2spIFdURl9BQ1FVSVJFU19MT0NLKGxvY2spCisgICAgICAgIDogbV9sb2NrKGxvY2sp
CisgICAgeworICAgICAgICBtX2xvY2subG9jaygpOworICAgIH0KKyAgICBMb2NrZXIoQWRvcHRM
b2NrVGFnLCBMb2NrJiBsb2NrKSBXVEZfUkVRVUlSRVNfTE9DSyhsb2NrKQorICAgICAgICA6IG1f
bG9jayhsb2NrKQorICAgIHsKKyAgICB9CisgICAgfkxvY2tlcigpIFdURl9SRUxFQVNFU19MT0NL
KCkKKyAgICB7CisgICAgICAgIG1fbG9jay51bmxvY2soKTsKKyAgICB9CisgICAgTG9ja2VyKGNv
bnN0IExvY2tlcjxMb2NrPiYpID0gZGVsZXRlOworICAgIExvY2tlciYgb3BlcmF0b3I9KGNvbnN0
IExvY2tlcjxMb2NrPiYpID0gZGVsZXRlOworcHJpdmF0ZToKKyAgICBMb2NrJiBtX2xvY2s7Cit9
OworCitMb2NrZXIoTG9jayYpIC0+IExvY2tlcjxMb2NrPjsKK0xvY2tlcihBZG9wdExvY2tUYWcs
IExvY2smKSAtPiBMb2NrZXI8TG9jaz47CisKIHVzaW5nIExvY2tIb2xkZXIgPSBMb2NrZXI8TG9j
az47Cit1c2luZyBVbmNoZWNrZWRMb2NrSG9sZGVyID0gTG9ja2VyPFVuY2hlY2tlZExvY2s+Owog
CiB9IC8vIG5hbWVzcGFjZSBXVEYKIAordXNpbmcgV1RGOjpVbmNoZWNrZWRMb2NrOwogdXNpbmcg
V1RGOjpMb2NrOwogdXNpbmcgV1RGOjpMb2NrSG9sZGVyOwordXNpbmcgV1RGOjpVbmNoZWNrZWRM
b2NrSG9sZGVyOwordXNpbmcgV1RGOjphc3NlcnRJc0hlbGQ7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V1RGL3d0Zi9NZXRhQWxsb2NhdG9yLmNwcCBiL1NvdXJjZS9XVEYvd3RmL01ldGFBbGxvY2F0b3Iu
Y3BwCmluZGV4IGVlZjg5Yjc3ZTdiZGRmY2Q2NzY1ZDY3M2FhNTY1YTA2NzdjZDcwYTQuLmQ5Y2Q1
OTkyZjNhMGQ1MWQwNDZlODcwMWExM2JkMjdhNzkwMjJhZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
VEYvd3RmL01ldGFBbGxvY2F0b3IuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL01ldGFBbGxvY2F0
b3IuY3BwCkBAIC02Miw3ICs2Miw3IEBAIHZvaWQgTWV0YUFsbG9jYXRvclRyYWNrZXI6OnJlbGVh
c2UoTWV0YUFsbG9jYXRvckhhbmRsZSYgaGFuZGxlKQogICAgIG1fYWxsb2NhdGlvbnMucmVtb3Zl
KCZoYW5kbGUpOwogfQogCi12b2lkIE1ldGFBbGxvY2F0b3I6OnJlbGVhc2UoY29uc3QgTG9ja0hv
bGRlciYsIE1ldGFBbGxvY2F0b3JIYW5kbGUmIGhhbmRsZSkKK3ZvaWQgTWV0YUFsbG9jYXRvcjo6
cmVsZWFzZShjb25zdCBVbmNoZWNrZWRMb2NrSG9sZGVyJiwgTWV0YUFsbG9jYXRvckhhbmRsZSYg
aGFuZGxlKQogewogICAgIGlmIChoYW5kbGUuc2l6ZUluQnl0ZXMoKSkgewogICAgICAgICBNZW1v
cnlQdHIgc3RhcnQgPSBoYW5kbGUuc3RhcnQoKTsKQEAgLTEyNCw3ICsxMjQsNyBAQCB2b2lkIE1l
dGFBbGxvY2F0b3JIYW5kbGU6OmR1bXAoUHJpbnRTdHJlYW0mIG91dCkgY29uc3QKICAgICBvdXQu
cHJpbnQoUmF3UG9pbnRlcihzdGFydCgpLnVudGFnZ2VkUHRyKCkpLCAiLi4uIiwgUmF3UG9pbnRl
cihlbmQoKS51bnRhZ2dlZFB0cigpKSk7CiB9CiAKLU1ldGFBbGxvY2F0b3I6Ok1ldGFBbGxvY2F0
b3IoTG9jayYgbG9jaywgc2l6ZV90IGFsbG9jYXRpb25HcmFudWxlLCBzaXplX3QgcGFnZVNpemUp
CitNZXRhQWxsb2NhdG9yOjpNZXRhQWxsb2NhdG9yKFVuY2hlY2tlZExvY2smIGxvY2ssIHNpemVf
dCBhbGxvY2F0aW9uR3JhbnVsZSwgc2l6ZV90IHBhZ2VTaXplKQogICAgIDogbV9hbGxvY2F0aW9u
R3JhbnVsZShhbGxvY2F0aW9uR3JhbnVsZSkKICAgICAsIG1fcGFnZVNpemUocGFnZVNpemUpCiAg
ICAgLCBtX2J5dGVzQWxsb2NhdGVkKDApCkBAIC0xNTQsNyArMTU0LDcgQEAgTWV0YUFsbG9jYXRv
cjo6TWV0YUFsbG9jYXRvcihMb2NrJiBsb2NrLCBzaXplX3QgYWxsb2NhdGlvbkdyYW51bGUsIHNp
emVfdCBwYWdlU2kKICAgICBBU1NFUlQoc3RhdGljX2Nhc3Q8c2l6ZV90PigxKSA8PCBtX2xvZ0Fs
bG9jYXRpb25HcmFudWxlID09IG1fYWxsb2NhdGlvbkdyYW51bGUpOwogfQogCi1SZWZQdHI8TWV0
YUFsbG9jYXRvckhhbmRsZT4gTWV0YUFsbG9jYXRvcjo6YWxsb2NhdGUoY29uc3QgTG9ja0hvbGRl
ciYsIHNpemVfdCBzaXplSW5CeXRlcykKK1JlZlB0cjxNZXRhQWxsb2NhdG9ySGFuZGxlPiBNZXRh
QWxsb2NhdG9yOjphbGxvY2F0ZShjb25zdCBVbmNoZWNrZWRMb2NrSG9sZGVyJiwgc2l6ZV90IHNp
emVJbkJ5dGVzKQogewogICAgIGlmICghc2l6ZUluQnl0ZXMpCiAgICAgICAgIHJldHVybiBudWxs
cHRyOwpAQCAtMTk4LDcgKzE5OCw3IEBAIFJlZlB0cjxNZXRhQWxsb2NhdG9ySGFuZGxlPiBNZXRh
QWxsb2NhdG9yOjphbGxvY2F0ZShjb25zdCBMb2NrSG9sZGVyJiwgc2l6ZV90IHNpCiAgICAgcmV0
dXJuIGhhbmRsZTsKIH0KIAotTWV0YUFsbG9jYXRvcjo6U3RhdGlzdGljcyBNZXRhQWxsb2NhdG9y
OjpjdXJyZW50U3RhdGlzdGljcyhjb25zdCBMb2NrSG9sZGVyJikKK01ldGFBbGxvY2F0b3I6OlN0
YXRpc3RpY3MgTWV0YUFsbG9jYXRvcjo6Y3VycmVudFN0YXRpc3RpY3MoY29uc3QgVW5jaGVja2Vk
TG9ja0hvbGRlciYpCiB7CiAgICAgU3RhdGlzdGljcyByZXN1bHQ7CiAgICAgcmVzdWx0LmJ5dGVz
QWxsb2NhdGVkID0gbV9ieXRlc0FsbG9jYXRlZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3Rm
L01ldGFBbGxvY2F0b3IuaCBiL1NvdXJjZS9XVEYvd3RmL01ldGFBbGxvY2F0b3IuaAppbmRleCA1
ZmI3MmMyODBlZGMwNmRlYTg5MzFiNmEzYzA5ZTFmZjdiZjVjOGQxLi5lZGZlYzdjM2I4OTk2Mjlm
MDdkZTdhYTA4ZDBjNjMyMjc2ZjhjNDBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9NZXRh
QWxsb2NhdG9yLmgKKysrIGIvU291cmNlL1dURi93dGYvTWV0YUFsbG9jYXRvci5oCkBAIC02NSw3
ICs2NSw3IEBAIHB1YmxpYzoKICAgICB1c2luZyBGcmVlU3BhY2VQdHIgPSBNZXRhQWxsb2NhdG9y
UHRyPEZyZWVTcGFjZVB0clRhZz47CiAgICAgdXNpbmcgTWVtb3J5UHRyID0gTWV0YUFsbG9jYXRv
ckhhbmRsZTo6TWVtb3J5UHRyOwogCi0gICAgV1RGX0VYUE9SVF9QUklWQVRFIE1ldGFBbGxvY2F0
b3IoTG9jayYsIHNpemVfdCBhbGxvY2F0aW9uR3JhbnVsZSwgc2l6ZV90IHBhZ2VTaXplID0gV1RG
OjpwYWdlU2l6ZSgpKTsKKyAgICBXVEZfRVhQT1JUX1BSSVZBVEUgTWV0YUFsbG9jYXRvcihVbmNo
ZWNrZWRMb2NrJiwgc2l6ZV90IGFsbG9jYXRpb25HcmFudWxlLCBzaXplX3QgcGFnZVNpemUgPSBX
VEY6OnBhZ2VTaXplKCkpOwogICAgIAogICAgIFdURl9FWFBPUlRfUFJJVkFURSB2aXJ0dWFsIH5N
ZXRhQWxsb2NhdG9yKCk7CiAgICAgCkBAIC03NCw3ICs3NCw3IEBAIHB1YmxpYzoKICAgICAgICAg
TG9ja2VyIGxvY2tlciB7IG1fbG9jayB9OwogICAgICAgICByZXR1cm4gYWxsb2NhdGUobG9ja2Vy
LCBzaXplSW5CeXRlcyk7CiAgICAgfQotICAgIFdURl9FWFBPUlRfUFJJVkFURSBSZWZQdHI8TWV0
YUFsbG9jYXRvckhhbmRsZT4gYWxsb2NhdGUoY29uc3QgTG9ja0hvbGRlciYsIHNpemVfdCBzaXpl
SW5CeXRlcyk7CisgICAgV1RGX0VYUE9SVF9QUklWQVRFIFJlZlB0cjxNZXRhQWxsb2NhdG9ySGFu
ZGxlPiBhbGxvY2F0ZShjb25zdCBVbmNoZWNrZWRMb2NrSG9sZGVyJiwgc2l6ZV90IHNpemVJbkJ5
dGVzKTsKIAogICAgIHZvaWQgdHJhY2tBbGxvY2F0aW9ucyhNZXRhQWxsb2NhdG9yVHJhY2tlciog
dHJhY2tlcikKICAgICB7CkBAIC05OCw3ICs5OCw3IEBAIHB1YmxpYzoKICAgICAgICAgTG9ja2Vy
IGxvY2tlciB7IG1fbG9jayB9OwogICAgICAgICByZXR1cm4gY3VycmVudFN0YXRpc3RpY3MobG9j
a2VyKTsKICAgICB9Ci0gICAgV1RGX0VYUE9SVF9QUklWQVRFIFN0YXRpc3RpY3MgY3VycmVudFN0
YXRpc3RpY3MoY29uc3QgTG9ja0hvbGRlciYpOworICAgIFdURl9FWFBPUlRfUFJJVkFURSBTdGF0
aXN0aWNzIGN1cnJlbnRTdGF0aXN0aWNzKGNvbnN0IFVuY2hlY2tlZExvY2tIb2xkZXImKTsKIAog
ICAgIC8vIEFkZCBtb3JlIGZyZWUgc3BhY2UgdG8gdGhlIGFsbG9jYXRvci4gQ2FsbCB0aGlzIGRp
cmVjdGx5IGZyb20KICAgICAvLyB0aGUgY29uc3RydWN0b3IgaWYgeW91IHdpc2ggdG8gb3BlcmF0
ZSB0aGUgYWxsb2NhdG9yIHdpdGhpbiBhCkBAIC0xMzQsNyArMTM0LDcgQEAgcHJvdGVjdGVkOgog
ICAgIC8vIGFzIHRoZXJlIGFyZSBIYW5kbGVzIHRoYXQgcmVmZXIgdG8gaXQuCiAKICAgICAvLyBS
ZWxlYXNlIGEgTWV0YUFsbG9jYXRvckhhbmRsZS4KLSAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdmly
dHVhbCB2b2lkIHJlbGVhc2UoY29uc3QgTG9ja0hvbGRlciYsIE1ldGFBbGxvY2F0b3JIYW5kbGUm
KTsKKyAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdmlydHVhbCB2b2lkIHJlbGVhc2UoY29uc3QgVW5j
aGVja2VkTG9ja0hvbGRlciYsIE1ldGFBbGxvY2F0b3JIYW5kbGUmKTsKIHByaXZhdGU6CiAgICAg
CiAgICAgZnJpZW5kIGNsYXNzIE1ldGFBbGxvY2F0b3JIYW5kbGU7CkBAIC0xOTcsNyArMTk3LDcg
QEAgcHJpdmF0ZToKICAgICBzaXplX3QgbV9ieXRlc1Jlc2VydmVkOwogICAgIHNpemVfdCBtX2J5
dGVzQ29tbWl0dGVkOwogICAgIAotICAgIExvY2smIG1fbG9jazsKKyAgICBVbmNoZWNrZWRMb2Nr
JiBtX2xvY2s7CiAKICAgICBNZXRhQWxsb2NhdG9yVHJhY2tlciogbV90cmFja2VyIHsgbnVsbHB0
ciB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9QYXJhbGxlbEhlbHBlclBvb2wuY3Bw
IGIvU291cmNlL1dURi93dGYvUGFyYWxsZWxIZWxwZXJQb29sLmNwcAppbmRleCA0NDNkNzMxM2U2
YmFkMDI4NDM0OWU2MTA3ZjIwMzk3ZjkzZjQzYThkLi5jNzM0Njg1NTkzMTRkMDk3MDBiZGQ4YTVk
MGE1NTIwMWUwZDUwYzljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9QYXJhbGxlbEhlbHBl
clBvb2wuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL1BhcmFsbGVsSGVscGVyUG9vbC5jcHAKQEAg
LTEyMiw3ICsxMjIsNyBAQCB2b2lkIFBhcmFsbGVsSGVscGVyQ2xpZW50OjpydW5UYXNrKGNvbnN0
IFJlZlB0cjxTaGFyZWRUYXNrPHZvaWQgKCk+PiYgdGFzaykKIH0KIAogUGFyYWxsZWxIZWxwZXJQ
b29sOjpQYXJhbGxlbEhlbHBlclBvb2woQ1N0cmluZyYmIHRocmVhZE5hbWUpCi0gICAgOiBtX2xv
Y2soQm94PExvY2s+OjpjcmVhdGUoKSkKKyAgICA6IG1fbG9jayhCb3g8VW5jaGVja2VkTG9jaz46
OmNyZWF0ZSgpKQogICAgICwgbV93b3JrQXZhaWxhYmxlQ29uZGl0aW9uKEF1dG9tYXRpY1RocmVh
ZENvbmRpdGlvbjo6Y3JlYXRlKCkpCiAgICAgLCBtX3RocmVhZE5hbWUoV1RGTW92ZSh0aHJlYWRO
YW1lKSkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1BhcmFsbGVsSGVscGVyUG9vbC5o
IGIvU291cmNlL1dURi93dGYvUGFyYWxsZWxIZWxwZXJQb29sLmgKaW5kZXggMWU3NTk5YzgzZDY3
MTIxYzdlNmJmZTg3Y2NhOTFlZjZjZTg2ZTQwNy4uNjY0ZmFkZTg1Mzk5M2FiNGIwNTk1NDg3MjIx
NGYzODdjOWE2ZDA1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvUGFyYWxsZWxIZWxwZXJQ
b29sLmgKKysrIGIvU291cmNlL1dURi93dGYvUGFyYWxsZWxIZWxwZXJQb29sLmgKQEAgLTE5OSw5
ICsxOTksOSBAQCBwcml2YXRlOgogICAgIFBhcmFsbGVsSGVscGVyQ2xpZW50KiBnZXRDbGllbnRX
aXRoVGFzayhjb25zdCBBYnN0cmFjdExvY2tlciYpOwogICAgIFBhcmFsbGVsSGVscGVyQ2xpZW50
KiB3YWl0Rm9yQ2xpZW50V2l0aFRhc2soY29uc3QgQWJzdHJhY3RMb2NrZXImKTsKICAgICAKLSAg
ICBCb3g8TG9jaz4gbV9sb2NrOyAvLyBBdXRvbWF0aWNUaHJlYWQgd2FudHMgdGhpcyBpbiBhIGJv
eCBmb3Igc2FmZXR5LgorICAgIEJveDxVbmNoZWNrZWRMb2NrPiBtX2xvY2s7IC8vIEF1dG9tYXRp
Y1RocmVhZCB3YW50cyB0aGlzIGluIGEgYm94IGZvciBzYWZldHkuCiAgICAgUmVmPEF1dG9tYXRp
Y1RocmVhZENvbmRpdGlvbj4gbV93b3JrQXZhaWxhYmxlQ29uZGl0aW9uOwotICAgIENvbmRpdGlv
biBtX3dvcmtDb21wbGV0ZUNvbmRpdGlvbjsKKyAgICBVbmNoZWNrZWRDb25kaXRpb24gbV93b3Jr
Q29tcGxldGVDb25kaXRpb247CiAKICAgICBXZWFrUmFuZG9tIG1fcmFuZG9tOwogICAgIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dURi93dGYvUmVjdXJzaXZlTG9ja0FkYXB0ZXIuaCBiL1NvdXJjZS9X
VEYvd3RmL1JlY3Vyc2l2ZUxvY2tBZGFwdGVyLmgKaW5kZXggMWVlMTJkNDE5NDcyNmQyMzI0OTJk
NjU0NDQxNmVmNjYxNDhiZDY2YS4uY2E3YmM0NTU0NDdiMTUyMjA3Y2UxYWI3ZjBjYjQ0ZDRlZDE4
ZThkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvUmVjdXJzaXZlTG9ja0FkYXB0ZXIuaAor
KysgYi9Tb3VyY2UvV1RGL3d0Zi9SZWN1cnNpdmVMb2NrQWRhcHRlci5oCkBAIC04OSw3ICs4OSw3
IEBAIHByaXZhdGU6CiAgICAgTG9ja1R5cGUgbV9sb2NrOwogfTsKIAotdXNpbmcgUmVjdXJzaXZl
TG9jayA9IFJlY3Vyc2l2ZUxvY2tBZGFwdGVyPExvY2s+OwordXNpbmcgUmVjdXJzaXZlTG9jayA9
IFJlY3Vyc2l2ZUxvY2tBZGFwdGVyPFVuY2hlY2tlZExvY2s+OwogCiB9IC8vIG5hbWVzcGFjZSBX
VEYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvV29ya2VyUG9vbC5jcHAgYi9Tb3VyY2Uv
V1RGL3d0Zi9Xb3JrZXJQb29sLmNwcAppbmRleCA4YTljMWZkYTc0YTczYjJjNWFiNWNkYTJkOGU0
NjA5YWJlODBhMzBiLi4yMTlkYmYxNTFkNjYzN2M2N2EzZTQ3NmZkMTNlM2QxYjg4YjQzNTdhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9Xb3JrZXJQb29sLmNwcAorKysgYi9Tb3VyY2UvV1RG
L3d0Zi9Xb3JrZXJQb29sLmNwcApAQCAtMzIsNyArMzIsNyBAQCBjbGFzcyBXb3JrZXJQb29sOjpX
b3JrZXIgZmluYWwgOiBwdWJsaWMgQXV0b21hdGljVGhyZWFkIHsKIHB1YmxpYzoKICAgICBmcmll
bmQgY2xhc3MgV29ya2VyUG9vbDsKIAotICAgIFdvcmtlcihjb25zdCBBYnN0cmFjdExvY2tlciYg
bG9ja2VyLCBXb3JrZXJQb29sJiBwb29sLCBCb3g8TG9jaz4gbG9jaywgUmVmPEF1dG9tYXRpY1Ro
cmVhZENvbmRpdGlvbj4mJiBjb25kaXRpb24sIFNlY29uZHMgdGltZW91dCkKKyAgICBXb3JrZXIo
Y29uc3QgQWJzdHJhY3RMb2NrZXImIGxvY2tlciwgV29ya2VyUG9vbCYgcG9vbCwgQm94PFVuY2hl
Y2tlZExvY2s+IGxvY2ssIFJlZjxBdXRvbWF0aWNUaHJlYWRDb25kaXRpb24+JiYgY29uZGl0aW9u
LCBTZWNvbmRzIHRpbWVvdXQpCiAgICAgICAgIDogQXV0b21hdGljVGhyZWFkKGxvY2tlciwgbG9j
aywgV1RGTW92ZShjb25kaXRpb24pLCB0aW1lb3V0KQogICAgICAgICAsIG1fcG9vbChwb29sKQog
ICAgIHsKQEAgLTgyLDcgKzgyLDcgQEAgcHJpdmF0ZToKIH07CiAKIFdvcmtlclBvb2w6Oldvcmtl
clBvb2woQVNDSUlMaXRlcmFsIG5hbWUsIHVuc2lnbmVkIG51bWJlck9mV29ya2VycywgU2Vjb25k
cyB0aW1lb3V0KQotICAgIDogbV9sb2NrKEJveDxMb2NrPjo6Y3JlYXRlKCkpCisgICAgOiBtX2xv
Y2soQm94PFVuY2hlY2tlZExvY2s+OjpjcmVhdGUoKSkKICAgICAsIG1fY29uZGl0aW9uKEF1dG9t
YXRpY1RocmVhZENvbmRpdGlvbjo6Y3JlYXRlKCkpCiAgICAgLCBtX3RpbWVvdXQodGltZW91dCkK
ICAgICAsIG1fbmFtZShuYW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvV29ya2VyUG9v
bC5oIGIvU291cmNlL1dURi93dGYvV29ya2VyUG9vbC5oCmluZGV4IDYyMzVlNzMxZWQ3NWI4MDEy
NTA5NTM1OTA2OGIwOGQ0YzFkY2ZlYzIuLjdhNDA0MmI0NmIxNjg4MDIzZjFjZWY5ZTY0MmFiMmM0
OGM4ODkzZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1dvcmtlclBvb2wuaAorKysgYi9T
b3VyY2UvV1RGL3d0Zi9Xb3JrZXJQb29sLmgKQEAgLTU3LDcgKzU3LDcgQEAgcHJpdmF0ZToKIAog
ICAgIGJvb2wgc2hvdWxkU2xlZXAoY29uc3QgQWJzdHJhY3RMb2NrZXImKTsKIAotICAgIEJveDxM
b2NrPiBtX2xvY2s7CisgICAgQm94PFVuY2hlY2tlZExvY2s+IG1fbG9jazsKICAgICBSZWY8QXV0
b21hdGljVGhyZWFkQ29uZGl0aW9uPiBtX2NvbmRpdGlvbjsKICAgICBTZWNvbmRzIG1fdGltZW91
dDsKICAgICBNb25vdG9uaWNUaW1lIG1fbGFzdFRpbWVvdXRUaW1lIHsgTW9ub3RvbmljVGltZTo6
bmFuKCkgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvQXRvbVN0cmluZ0ltcGwu
Y3BwIGIvU291cmNlL1dURi93dGYvdGV4dC9BdG9tU3RyaW5nSW1wbC5jcHAKaW5kZXggYTAyOGU0
MmEzNDY0MTk2ZmRhODc0M2Y3MTI3ZDhiNzNiM2QxYzI4Yy4uMDA5ZTJhMThmZmQyYTRhNDc0YTFl
ZGRmNTU4ZjZlY2FiODI3OTM0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvdGV4dC9BdG9t
U3RyaW5nSW1wbC5jcHAKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9BdG9tU3RyaW5nSW1wbC5j
cHAKQEAgLTQ1LDcgKzQ1LDcgQEAgY2xhc3MgQXRvbVN0cmluZ1RhYmxlTG9ja2VyIDogcHVibGlj
IExvY2tIb2xkZXIgewogICAgIHN0YXRpYyBMb2NrIHNfc3RyaW5nVGFibGVMb2NrOwogcHVibGlj
OgogICAgIEF0b21TdHJpbmdUYWJsZUxvY2tlcigpCi0gICAgICAgIDogTG9ja0hvbGRlcigmc19z
dHJpbmdUYWJsZUxvY2spCisgICAgICAgIDogTG9ja0hvbGRlcihzX3N0cmluZ1RhYmxlTG9jaykK
ICAgICB7CiAgICAgfQogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL3NlcnZlci9JREJTZXJ2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvc2VydmVyL0lEQlNlcnZlci5jcHAKaW5kZXggMWVkZWVkMmEzZmE2MjJjNTgyMjRiMDY4
MzBhM2FiNDM0NGMwNDZjYS4uNDlkODc2NjJmY2IzYTVhZTIzZjJhN2FiNTI3ZTY1NTdjMzI2ZWEz
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lE
QlNlcnZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVy
L0lEQlNlcnZlci5jcHAKQEAgLTczMyw3ICs3MzMsNyBAQCB2b2lkIElEQlNlcnZlcjo6cmVuYW1l
T3JpZ2luKGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgb2xkT3JpZ2luLCBjb25z
dAogICAgICAgICBGaWxlU3lzdGVtOjptb3ZlRmlsZShvbGRPcmlnaW5QYXRoLCBuZXdPcmlnaW5Q
YXRoKTsKIH0KIAotU3RvcmFnZVF1b3RhTWFuYWdlcjo6RGVjaXNpb24gSURCU2VydmVyOjpyZXF1
ZXN0U3BhY2UoY29uc3QgQ2xpZW50T3JpZ2luJiBvcmlnaW4sIHVpbnQ2NF90IHRhc2tTaXplKQor
U3RvcmFnZVF1b3RhTWFuYWdlcjo6RGVjaXNpb24gSURCU2VydmVyOjpyZXF1ZXN0U3BhY2UoY29u
c3QgQ2xpZW50T3JpZ2luJiBvcmlnaW4sIHVpbnQ2NF90IHRhc2tTaXplKSBXVEZfSUdOT1JFU19U
SFJFQURfU0FGRVRZX0FOQUxZU0lTCiB7CiAgICAgQVNTRVJUKCFpc01haW5UaHJlYWQoKSk7CiAg
ICAgQVNTRVJUKG1fbG9jay5pc0hlbGQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1ZGlvL01lZGlhRWxlbWVudEF1ZGlvU291cmNlTm9kZS5oIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdWRpby9NZWRpYUVsZW1lbnRBdWRpb1NvdXJjZU5vZGUuaAppbmRl
eCA3NDM5YTZkYjI4MmZiYjk0ZjQxMWU0NzE1YWRhMTU5OGNiMDRiYzM0Li4wNmZlNTFkOTQ0ZDBi
OGU5YzhkYjYxNDY3ZDFhMTg2YzVkZGY0MTRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1ZGlvL01lZGlhRWxlbWVudEF1ZGlvU291cmNlTm9kZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vTWVkaWFFbGVtZW50QXVkaW9Tb3VyY2VOb2RlLmgK
QEAgLTU0LDcgKzU0LDcgQEAgcHVibGljOgogICAgIC8vIEF1ZGlvU291cmNlUHJvdmlkZXJDbGll
bnQKICAgICB2b2lkIHNldEZvcm1hdChzaXplX3QgbnVtYmVyT2ZDaGFubmVscywgZmxvYXQgc2Ft
cGxlUmF0ZSkgb3ZlcnJpZGU7CiAKLSAgICBMb2NrJiBwcm9jZXNzTG9jaygpIHsgcmV0dXJuIG1f
cHJvY2Vzc0xvY2s7IH0KKyAgICBVbmNoZWNrZWRMb2NrJiBwcm9jZXNzTG9jaygpIHsgcmV0dXJu
IG1fcHJvY2Vzc0xvY2s7IH0KIAogcHJpdmF0ZToKICAgICBNZWRpYUVsZW1lbnRBdWRpb1NvdXJj
ZU5vZGUoQmFzZUF1ZGlvQ29udGV4dCYsIFJlZjxIVE1MTWVkaWFFbGVtZW50PiYmKTsKQEAgLTcw
LDcgKzcwLDcgQEAgcHJpdmF0ZToKICAgICBib29sIHdvdWxkVGFpbnRPcmlnaW4oKTsKIAogICAg
IFJlZjxIVE1MTWVkaWFFbGVtZW50PiBtX21lZGlhRWxlbWVudDsKLSAgICBMb2NrIG1fcHJvY2Vz
c0xvY2s7CisgICAgVW5jaGVja2VkTG9jayBtX3Byb2Nlc3NMb2NrOwogCiAgICAgdW5zaWduZWQg
bV9zb3VyY2VOdW1iZXJPZkNoYW5uZWxzIHsgMCB9OwogICAgIGRvdWJsZSBtX3NvdXJjZVNhbXBs
ZVJhdGUgeyAwIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFi
YXNlL0RhdGFiYXNlVHJhY2tlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFi
YXNlL0RhdGFiYXNlVHJhY2tlci5jcHAKaW5kZXggNDViMjdmOWQzNTE5YzExOTkyNDc2NmVjNGMy
N2U0MDEzNDI5MjA0OS4uYTlmMjgwYjljNTlmNDhiZGIyOGRhNzMwMTUzNzY0M2U5NGRkNjU2MCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRy
YWNrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJh
c2VUcmFja2VyLmNwcApAQCAtMTI4NSw4ICsxMjg1LDggQEAgYm9vbCBEYXRhYmFzZVRyYWNrZXI6
OmRlbGV0ZURhdGFiYXNlRmlsZUlmRW1wdHkoY29uc3QgU3RyaW5nJiBwYXRoKQogICAgIHJldHVy
biBTUUxpdGVGaWxlU3lzdGVtOjpkZWxldGVEYXRhYmFzZUZpbGUocGF0aCk7CiB9CiAKLXN0YXRp
YyBMb2NrIG9wZW5EYXRhYmFzZUxvY2s7Ci1Mb2NrJiBEYXRhYmFzZVRyYWNrZXI6Om9wZW5EYXRh
YmFzZU11dGV4KCkKK3N0YXRpYyBVbmNoZWNrZWRMb2NrIG9wZW5EYXRhYmFzZUxvY2s7CitVbmNo
ZWNrZWRMb2NrJiBEYXRhYmFzZVRyYWNrZXI6Om9wZW5EYXRhYmFzZU11dGV4KCkKIHsKICAgICBy
ZXR1cm4gb3BlbkRhdGFiYXNlTG9jazsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VUcmFja2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlVHJhY2tlci5oCmluZGV4IGRkOWM1ZDg3NzZiZDFkYzM4
OTY2ZTc1ZjU0ZjEzMWFkZDc2NjhiMzQuLmJkY2Y2ZDA3ZGQ4YTMzNjVkYzRhZmViOTQzZmNiOGI1
YWNlOTRmNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2Uv
RGF0YWJhc2VUcmFja2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFz
ZS9EYXRhYmFzZVRyYWNrZXIuaApAQCAtMTA0LDcgKzEwNCw3IEBAIHB1YmxpYzoKICAgICAvLyBN
b2JpbGVTYWZhcmkgd2lsbCBncmFiIHRoaXMgbXV0ZXggb24gdGhlIG1haW4gdGhyZWFkIGJlZm9y
ZSBkaXNwYXRjaGluZyB0aGUgdGFzayB0byAKICAgICAvLyBjbGVhbiB1cCB6ZXJvIGJ5dGUgZGF0
YWJhc2UgZmlsZXMuICBBbnkgb3BlcmF0aW9ucyB0byBvcGVuIG5ldyBkYXRhYmFzZSB3aWxsIGhh
dmUgdG8KICAgICAvLyB3YWl0IGZvciB0aGF0IHRhc2sgdG8gZmluaXNoIGJ5IHdhaXRpbmcgb24g
dGhpcyBtdXRleC4KLSAgICBzdGF0aWMgTG9jayYgb3BlbkRhdGFiYXNlTXV0ZXgoKTsKKyAgICBz
dGF0aWMgVW5jaGVja2VkTG9jayYgb3BlbkRhdGFiYXNlTXV0ZXgoKTsKICAgICAKICAgICBXRUJD
T1JFX0VYUE9SVCBzdGF0aWMgdm9pZCBlbXB0eURhdGFiYXNlRmlsZXNSZW1vdmFsVGFza1dpbGxC
ZVNjaGVkdWxlZCgpOwogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyB2b2lkIGVtcHR5RGF0YWJh
c2VGaWxlc1JlbW92YWxUYXNrRGlkRmluaXNoKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL09yaWdpbkxvY2suY3BwIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJkYXRhYmFzZS9PcmlnaW5Mb2NrLmNwcAppbmRleCBhMjFiY2RiNzgzODZjODEwZWM1
OTk0MWMyNzVmNGVmYmFmZjIzZmIzLi43NTNlNGU1YWM4NjYyODNhNGM3M2Y0NGFmOWFhNGVjZGY1
ZDE1YWVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL09y
aWdpbkxvY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvT3Jp
Z2luTG9jay5jcHAKQEAgLTQzLDcgKzQzLDcgQEAgT3JpZ2luTG9jazo6T3JpZ2luTG9jayhTdHJp
bmcgb3JpZ2luUGF0aCkKIAogT3JpZ2luTG9jazo6fk9yaWdpbkxvY2soKSA9IGRlZmF1bHQ7CiAK
LXZvaWQgT3JpZ2luTG9jazo6bG9jaygpCit2b2lkIE9yaWdpbkxvY2s6OmxvY2soKSBXVEZfSUdO
T1JFU19USFJFQURfU0FGRVRZX0FOQUxZU0lTCiB7CiAgICAgbV9tdXRleC5sb2NrKCk7CiAKQEAg
LTU5LDcgKzU5LDcgQEAgdm9pZCBPcmlnaW5Mb2NrOjpsb2NrKCkKICNlbmRpZgogfQogCi12b2lk
IE9yaWdpbkxvY2s6OnVubG9jaygpCit2b2lkIE9yaWdpbkxvY2s6OnVubG9jaygpIFdURl9JR05P
UkVTX1RIUkVBRF9TQUZFVFlfQU5BTFlTSVMKIHsKICNpZiBVU0UoRklMRV9MT0NLKQogICAgIC8v
IElmIHRoZSBmaWxlIGRlc2NyaXB0b3Igd2FzIHVuaW5pdGlhbGl6ZWQsIHRoZW4gdGhhdCBtZWFu
cyB0aGUgZGlyZWN0b3J5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0RPTUdsb2JhbE9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01HbG9i
YWxPYmplY3QuaAppbmRleCAxNjRjNzIzODY0NmEwMGEzZDA1ZWExYmE0MWM5NzA2MDU1ZDQxNGU0
Li45NTZkNTFhZDQ4MGQ0ZGQyYzBhODkzOGRlYWY0NGRhYWJhYTc1NmRmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9iamVjdC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0LmgKQEAgLTU4LDcgKzU4LDcg
QEAgcHVibGljOgogICAgIHN0YXRpYyB2b2lkIGRlc3Ryb3koSlNDOjpKU0NlbGwqKTsKIAogcHVi
bGljOgotICAgIExvY2smIGdjTG9jaygpIHsgcmV0dXJuIG1fZ2NMb2NrOyB9CisgICAgVW5jaGVj
a2VkTG9jayYgZ2NMb2NrKCkgeyByZXR1cm4gbV9nY0xvY2s7IH0KIAogICAgIEpTRE9NU3RydWN0
dXJlTWFwJiBzdHJ1Y3R1cmVzKGNvbnN0IEFic3RyYWN0TG9ja2VyJikgeyByZXR1cm4gbV9zdHJ1
Y3R1cmVzOyB9CiAgICAgSlNET01Db25zdHJ1Y3Rvck1hcCYgY29uc3RydWN0b3JzKGNvbnN0IEFi
c3RyYWN0TG9ja2VyJikgeyByZXR1cm4gbV9jb25zdHJ1Y3RvcnM7IH0KQEAgLTEyMSw3ICsxMjEs
NyBAQCBwcm90ZWN0ZWQ6CiAKICAgICBSZWY8RE9NV3JhcHBlcldvcmxkPiBtX3dvcmxkOwogICAg
IHVpbnQ4X3QgbV93b3JsZElzTm9ybWFsOwotICAgIExvY2sgbV9nY0xvY2s7CisgICAgVW5jaGVj
a2VkTG9jayBtX2djTG9jazsKICAgICBKU0M6OldyaXRlQmFycmllcjxKU0M6OkpTUHJveHk+IG1f
cHJveHk7CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKaW5kZXggN2VhZTNhMTFhZWNmYjJhYWQ5
OWZmMTkyYjQ1ODdkOTY3NWNmZGZiNy4uYTJlNWNhM2YxMjE2ODM4MDk4MzI0MGZmYmExZTRmZGE3
MDMyNWY0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcApAQCAtMjIxMSw3ICsyMjExLDcgQEAgc3RhdGljIEV2
ZW50VGFyZ2V0RGF0YU1hcCYgZXZlbnRUYXJnZXREYXRhTWFwKCkKICAgICByZXR1cm4gbWFwOwog
fQogCi1zdGF0aWMgTG9jayBzX2V2ZW50VGFyZ2V0RGF0YU1hcExvY2s7CitzdGF0aWMgVW5jaGVj
a2VkTG9jayBzX2V2ZW50VGFyZ2V0RGF0YU1hcExvY2s7CiAKIEV2ZW50VGFyZ2V0RGF0YSogTm9k
ZTo6ZXZlbnRUYXJnZXREYXRhKCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTE1lZGlhRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1l
bnQuY3BwCmluZGV4IDliZDQwMDEwYzM1YWEwZTk3YjZlMWRhZTQ4YjNlMTBkNGQ5NWQ2N2YuLjFi
Y2RjYTFhNzJjODAwMTVjNDQ4MDJmYWFmNDU2YTQ2ZDg0ZTNjNWMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcApAQCAtNjYyNiw3ICs2NjI2LDcgQEAgdm9pZCBIVE1M
TWVkaWFFbGVtZW50OjpjcmVhdGVNZWRpYVBsYXllcigpCiAKICNpZiBFTkFCTEUoV0VCX0FVRElP
KQogICAgIGF1dG8gcHJvdGVjdGVkQXVkaW9Tb3VyY2VOb2RlID0gbWFrZVJlZlB0cihtX2F1ZGlv
U291cmNlTm9kZSk7Ci0gICAgTG9ja2VyPExvY2s+IGF1ZGlvU291cmNlTm9kZUxvY2tlcihtX2F1
ZGlvU291cmNlTm9kZSA/ICZtX2F1ZGlvU291cmNlTm9kZS0+cHJvY2Vzc0xvY2soKSA6IG51bGxw
dHIpOworICAgIExvY2tlciBhdWRpb1NvdXJjZU5vZGVMb2NrZXIobV9hdWRpb1NvdXJjZU5vZGUg
PyAmbV9hdWRpb1NvdXJjZU5vZGUtPnByb2Nlc3NMb2NrKCkgOiBudWxscHRyKTsKICNlbmRpZgog
CiAjaWYgRU5BQkxFKE1FRElBX1NPVVJDRSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL1dlYkdMQ29udGV4dEdyb3VwLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2Fu
dmFzL1dlYkdMQ29udGV4dEdyb3VwLmNwcAppbmRleCBhYmQ4ZjI3MzY4MzkxZTNlMWQ3ZmNmOWQz
N2I5ZDc3OTZhZjMzNjFiLi4xNGMyYTA4OTk3ZDkwMWRhMTQwYTRiMDM3ODQ4ZTc0MTQ0M2Y2NTI1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTENvbnRleHRHcm91
cC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xDb250ZXh0R3JvdXAu
Y3BwCkBAIC01NSw3ICs1NSw3IEBAIEdyYXBoaWNzQ29udGV4dEdMJiBXZWJHTENvbnRleHRHcm91
cDo6Z2V0QUdyYXBoaWNzQ29udGV4dEdMKCkKICAgICByZXR1cm4gKigqbV9jb250ZXh0cy5iZWdp
bigpKS0+Z3JhcGhpY3NDb250ZXh0R0woKTsKIH0KIAotV1RGOjpMb2NrJiBXZWJHTENvbnRleHRH
cm91cDo6b2JqZWN0R3JhcGhMb2NrRm9yQUNvbnRleHQoKQorVW5jaGVja2VkTG9jayYgV2ViR0xD
b250ZXh0R3JvdXA6Om9iamVjdEdyYXBoTG9ja0ZvckFDb250ZXh0KCkKIHsKICAgICBBU1NFUlQo
IW1fY29udGV4dHMuaXNFbXB0eSgpKTsKICAgICAvLyBTaW5jZSB0aGUgV0VCR0xfc2hhcmVkX29i
amVjdHMgZXh0ZW5zaW9uIG5ldmVyIHNoaXBwZWQsIGFuZCBpcwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xDb250ZXh0R3JvdXAuaCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL1dlYkdMQ29udGV4dEdyb3VwLmgKaW5kZXggODU1Y2U3MjM5ODZmZTA3NzU5
OGYyNDY4MWFlODA4NmM4MWVkZmEwMy4uYjZhZmUwYWY5N2ViZGZmYWMxYTFjZDAwNDNmZmJmNzlj
Y2QxNzc4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xDb250
ZXh0R3JvdXAuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTENvbnRleHRH
cm91cC5oCkBAIC00NSw3ICs0NSw3IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgaGFzQUNvbnRleHQo
KSBjb25zdDsKICAgICBHcmFwaGljc0NvbnRleHRHTCYgZ2V0QUdyYXBoaWNzQ29udGV4dEdMKCk7
Ci0gICAgTG9jayYgb2JqZWN0R3JhcGhMb2NrRm9yQUNvbnRleHQoKTsKKyAgICBVbmNoZWNrZWRM
b2NrJiBvYmplY3RHcmFwaExvY2tGb3JBQ29udGV4dCgpOwogCiAgICAgdm9pZCBsb3NlQ29udGV4
dEdyb3VwKFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6Okxvc3RDb250ZXh0TW9kZSk7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMQ29udGV4dE9iamVjdC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTENvbnRleHRPYmplY3QuY3BwCmlu
ZGV4IDdjOTE5ZjJiNjY1NmI2N2IxNmNhNjM0MGIwYjJhNGI2NDVkMDQ2M2IuLjI0MzU0ZDA1Yjgx
YmM4NTIyYmU3N2QzYmI4ZjRjY2U0N2ViMzYzZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL1dlYkdMQ29udGV4dE9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvV2ViR0xDb250ZXh0T2JqZWN0LmNwcApAQCAtNTQsNyArNTQsNyBAQCB2b2lk
IFdlYkdMQ29udGV4dE9iamVjdDo6ZGV0YWNoQ29udGV4dChjb25zdCBBYnN0cmFjdExvY2tlciYg
bG9ja2VyKQogICAgIH0KIH0KIAotV1RGOjpMb2NrJiBXZWJHTENvbnRleHRPYmplY3Q6Om9iamVj
dEdyYXBoTG9ja0ZvckNvbnRleHQoKQorVW5jaGVja2VkTG9jayYgV2ViR0xDb250ZXh0T2JqZWN0
OjpvYmplY3RHcmFwaExvY2tGb3JDb250ZXh0KCkKIHsKICAgICAvLyBTaG91bGQgbm90IGNhbGwg
dGhpcyBpZiB0aGUgb2JqZWN0IG9yIGNvbnRleHQgaGFzIGJlZW4gZGVsZXRlZC4KICAgICBBU1NF
UlQobV9jb250ZXh0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dl
YkdMQ29udGV4dE9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xDb250
ZXh0T2JqZWN0LmgKaW5kZXggZGJmZGQ2YmZjMGVmNDRlYjg4MmViOWM1OWIwMDhkMjk4MTEyNjQ5
NS4uMGVhNzk5ZmZiYjNhOGFhZTAxMTNkOWE1NWNlM2U2M2JiYTJjOGVhZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xDb250ZXh0T2JqZWN0LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xDb250ZXh0T2JqZWN0LmgKQEAgLTQ5LDcgKzQ5
LDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBkZXRhY2hDb250ZXh0KGNvbnN0IFdURjo6QWJzdHJh
Y3RMb2NrZXImKTsKIAotICAgIFdURjo6TG9jayYgb2JqZWN0R3JhcGhMb2NrRm9yQ29udGV4dCgp
IG92ZXJyaWRlOworICAgIFVuY2hlY2tlZExvY2smIG9iamVjdEdyYXBoTG9ja0ZvckNvbnRleHQo
KSBvdmVycmlkZTsKIAogcHJvdGVjdGVkOgogICAgIFdlYkdMQ29udGV4dE9iamVjdChXZWJHTFJl
bmRlcmluZ0NvbnRleHRCYXNlJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2Nh
bnZhcy9XZWJHTE9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xPYmpl
Y3QuaAppbmRleCAwMGNkOGYwYzJiN2IyMWJiZjk3MmFmYTdjZmM1ZWU4NWUzZTA2MGRkLi5lNDg1
ZDcyMzM4NGJlYjE4ODdmYjI5NmI3NmMwMmJmMmY1MWU0OGMzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTE9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL1dlYkdMT2JqZWN0LmgKQEAgLTI4LDExICsyOCwxMSBAQAogI2lmIEVOQUJMRShX
RUJHTCkKIAogI2luY2x1ZGUgIkdyYXBoaWNzVHlwZXNHTC5oIgorI2luY2x1ZGUgPHd0Zi9Mb2Nr
Lmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KIAogbmFtZXNwYWNlIFdURiB7CiBjbGFz
cyBBYnN0cmFjdExvY2tlcjsKLWNsYXNzIExvY2s7CiB9CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
QEAgLTcxLDcgKzcxLDcgQEAgcHVibGljOgogICAgIC8vIFdFQkdMX3NoYXJlZF9vYmplY3RzIGV4
dGVuc2lvbiBzcGVjaWZpY2F0aW9uIG5ldmVyIHNoaXBwZWQgKGFuZAogICAgIC8vIGlzIHVubGlr
ZWx5IHRvKSwgdGhpcyBiYXNpY2FsbHkgcmV0dXJucyB0aGUgc2FtZSByZXN1bHQgZm9yCiAgICAg
Ly8gYm90aCBjb250ZXh0IG9iamVjdHMgYW5kIHNoYXJlZCBvYmplY3RzLgotICAgIHZpcnR1YWwg
V1RGOjpMb2NrJiBvYmplY3RHcmFwaExvY2tGb3JDb250ZXh0KCkgPSAwOworICAgIHZpcnR1YWwg
VW5jaGVja2VkTG9jayYgb2JqZWN0R3JhcGhMb2NrRm9yQ29udGV4dCgpID0gMDsKIAogcHJvdGVj
dGVkOgogICAgIFdlYkdMT2JqZWN0KCkgPSBkZWZhdWx0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcAppbmRleCA1
MTU1NDg4ZDdlZDFkYTk1MGQ1YWY2NzhkNDZkMjM0MGI4YmE5Y2VlLi4zOWMzMmU4NDQ5YTZiOGQ0
MGZhYmFmMDRmZTkwNmMwYzU0MjBiMGM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcApAQCAtNzk5MCw3ICs3
OTkwLDcgQEAgdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjphZGRNZW1iZXJzVG9PcGFx
dWVSb290cyhKU0M6OkFic3RyYWN0U2xvdFZpc2l0b3IKICAgICAvLyByb290cyBmb3IgZXh0ZW5z
aW9ucy4KIH0KIAotTG9jayYgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6b2JqZWN0R3JhcGhM
b2NrKCkKK1VuY2hlY2tlZExvY2smIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6Om9iamVjdEdy
YXBoTG9jaygpCiB7CiAgICAgcmV0dXJuIG1fb2JqZWN0R3JhcGhMb2NrOwogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5o
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5o
CmluZGV4IGZhZThhNTM5ZWM4OTE0MzkyOWVhYjQ2ZmNhMzNjMzEyNmEzYzE2OWYuLmQ3Y2JlZWQz
MmNiYzBiNzk3YzEwNjhmZDU5N2QxM2VkOGU0YzE5NzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmgKQEAgLTQyNiw3
ICs0MjYsNyBAQCBwdWJsaWM6CiAgICAgLy8gY3VycmVudGx5IGxhdGNoZWQgaW50byB0aGUgY29u
dGV4dCAtIHdpdGhvdXQgdHJhdmVyc2luZyBhbGwgb2YKICAgICAvLyB0aGUgbGF0Y2hlZCBvYmpl
Y3RzIHRvIGZpbmQgdGhlIGN1cnJlbnQgb25lLCB3aGljaCB3b3VsZCBiZQogICAgIC8vIHByb2hp
Yml0aXZlbHkgZXhwZW5zaXZlLgotICAgIExvY2smIG9iamVjdEdyYXBoTG9jaygpOworICAgIFVu
Y2hlY2tlZExvY2smIG9iamVjdEdyYXBoTG9jaygpOwogCiBwcm90ZWN0ZWQ6CiAgICAgV2ViR0xS
ZW5kZXJpbmdDb250ZXh0QmFzZShDYW52YXNCYXNlJiwgV2ViR0xDb250ZXh0QXR0cmlidXRlcyk7
CkBAIC01NDAsNyArNTQwLDcgQEAgcHJvdGVjdGVkOgogCiAgICAgUmVmUHRyPEdyYXBoaWNzQ29u
dGV4dEdMPiBtX2NvbnRleHQ7CiAgICAgUmVmUHRyPFdlYkdMQ29udGV4dEdyb3VwPiBtX2NvbnRl
eHRHcm91cDsKLSAgICBMb2NrIG1fb2JqZWN0R3JhcGhMb2NrOworICAgIFVuY2hlY2tlZExvY2sg
bV9vYmplY3RHcmFwaExvY2s7CiAKICAgICBib29sIG1fcmVzdG9yZUFsbG93ZWQgeyBmYWxzZSB9
OwogICAgIFN1c3BlbmRhYmxlVGltZXIgbV9yZXN0b3JlVGltZXI7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFNoYXJlZE9iamVjdC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL2NhbnZhcy9XZWJHTFNoYXJlZE9iamVjdC5jcHAKaW5kZXggOTM2Yzk4MWM5OTI5
MGQ4ZTdjZWY5OGIxM2I1NjkzY2JlYjIzNzk4Yy4uMGFiOGNiMjQxYTFiM2YzODhmZWYzODI5OTc2
Y2VjZjZkNDg3ZDM3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2Vi
R0xTaGFyZWRPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdM
U2hhcmVkT2JqZWN0LmNwcApAQCAtODIsNyArODIsNyBAQCBHcmFwaGljc0NvbnRleHRHTCogV2Vi
R0xTaGFyZWRPYmplY3Q6OmdldEFHcmFwaGljc0NvbnRleHRHTCgpIGNvbnN0CiAgICAgcmV0dXJu
IG1fY29udGV4dEdyb3VwID8gJm1fY29udGV4dEdyb3VwLT5nZXRBR3JhcGhpY3NDb250ZXh0R0wo
KSA6IG51bGxwdHI7CiB9CiAKLVdURjo6TG9jayYgV2ViR0xTaGFyZWRPYmplY3Q6Om9iamVjdEdy
YXBoTG9ja0ZvckNvbnRleHQoKQorVW5jaGVja2VkTG9jayYgV2ViR0xTaGFyZWRPYmplY3Q6Om9i
amVjdEdyYXBoTG9ja0ZvckNvbnRleHQoKQogewogICAgIC8vIFNob3VsZCBub3QgY2FsbCB0aGlz
IGlmIHRoZSBvYmplY3Qgb3IgY29udGV4dCBoYXMgYmVlbiBkZWxldGVkLgogICAgIEFTU0VSVCht
X2NvbnRleHRHcm91cCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9X
ZWJHTFNoYXJlZE9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xTaGFy
ZWRPYmplY3QuaAppbmRleCA1ZDEzYWZhMzg0NmFhMjE1MzBjMGFiZDUzOTBhYTFlNzk4ZTllMWQw
Li5mNTNkYjE5YjA2OTIyOTA2YmRjY2IxNmMzOTM3Mzg2MTVmMTc2NTc5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFNoYXJlZE9iamVjdC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMU2hhcmVkT2JqZWN0LmgKQEAgLTU5LDcgKzU5LDcg
QEAgcHVibGljOgogCiAgICAgdm9pZCBkZXRhY2hDb250ZXh0R3JvdXBXaXRob3V0RGVsZXRpbmdP
YmplY3QoKTsKIAotICAgIFdURjo6TG9jayYgb2JqZWN0R3JhcGhMb2NrRm9yQ29udGV4dCgpIG92
ZXJyaWRlOworICAgIFVuY2hlY2tlZExvY2smIG9iamVjdEdyYXBoTG9ja0ZvckNvbnRleHQoKSBv
dmVycmlkZTsKIAogcHJvdGVjdGVkOgogICAgIFdlYkdMU2hhcmVkT2JqZWN0KFdlYkdMUmVuZGVy
aW5nQ29udGV4dEJhc2UmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xs
aW5nL21hYy9TY3JvbGxpbmdUcmVlTWFjLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGlu
Zy9tYWMvU2Nyb2xsaW5nVHJlZU1hYy5oCmluZGV4IGI0MmJmNDExNDU0ZmEwMzRhN2RhYTg2YzMx
NTNhYTFkNjZhOTgzY2UuLjg4ZGFkMWVkZDFiOTA1MjBkMWYwY2I2Yjc3MDZmZWQwMjI0MDY3YWUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdU
cmVlTWFjLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGlu
Z1RyZWVNYWMuaApAQCAtNTUsOCArNTUsOCBAQCBwcml2YXRlOgogICAgIHZvaWQgZGVmZXJXaGVl
bEV2ZW50VGVzdENvbXBsZXRpb25Gb3JSZWFzb24oV2hlZWxFdmVudFRlc3RNb25pdG9yOjpTY3Jv
bGxhYmxlQXJlYUlkZW50aWZpZXIsIFdoZWVsRXZlbnRUZXN0TW9uaXRvcjo6RGVmZXJSZWFzb24p
IGZpbmFsOwogICAgIHZvaWQgcmVtb3ZlV2hlZWxFdmVudFRlc3RDb21wbGV0aW9uRGVmZXJyYWxG
b3JSZWFzb24oV2hlZWxFdmVudFRlc3RNb25pdG9yOjpTY3JvbGxhYmxlQXJlYUlkZW50aWZpZXIs
IFdoZWVsRXZlbnRUZXN0TW9uaXRvcjo6RGVmZXJSZWFzb24pIGZpbmFsOwogCi0gICAgdm9pZCBs
b2NrTGF5ZXJzRm9ySGl0VGVzdGluZygpIGZpbmFsOwotICAgIHZvaWQgdW5sb2NrTGF5ZXJzRm9y
SGl0VGVzdGluZygpIGZpbmFsOworICAgIHZvaWQgbG9ja0xheWVyc0ZvckhpdFRlc3RpbmcoKSBm
aW5hbCBXVEZfQUNRVUlSRVNfTE9DSyhtX2xheWVySGl0VGVzdE11dGV4KTsKKyAgICB2b2lkIHVu
bG9ja0xheWVyc0ZvckhpdFRlc3RpbmcoKSBmaW5hbCBXVEZfUkVMRUFTRVNfTE9DSyhtX2xheWVy
SGl0VGVzdE11dGV4KTsKIAogICAgIC8vIFRoaXMgbG9jayBwcm90ZWN0cyB0aGUgQ0FMYXllci9Q
bGF0Zm9ybUNBTGF5ZXIgdHJlZS4KICAgICBtdXRhYmxlIExvY2sgbV9sYXllckhpdFRlc3RNdXRl
eDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1JldmVyYkNvbnZv
bHZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9SZXZlcmJDb252b2x2ZXIu
Y3BwCmluZGV4IGMyNWNhZjBkOWJjNDY5NWM0ODBkZGNjOTg0ZmY5MTdlZjUyM2MwZjYuLjYzNWE4
Zjc3YjMxNDIwZGMwNWVmZjQ1ZjVmNTg1ODg4ZmJhYmZjOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1JldmVyYkNvbnZvbHZlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vYXVkaW8vUmV2ZXJiQ29udm9sdmVyLmNwcApAQCAtMTQ4LDkgKzE0OCw5
IEBAIHZvaWQgUmV2ZXJiQ29udm9sdmVyOjpiYWNrZ3JvdW5kVGhyZWFkRW50cnkoKQogICAgICAg
ICAvLyBXYWl0IGZvciByZWFsdGltZSB0aHJlYWQgdG8gZ2l2ZSB1cyBtb3JlIGlucHV0CiAgICAg
ICAgIG1fbW9yZUlucHV0QnVmZmVyZWQgPSBmYWxzZTsgICAgICAgIAogICAgICAgICB7Ci0gICAg
ICAgICAgICBzdGQ6OnVuaXF1ZV9sb2NrPExvY2s+IGxvY2sobV9iYWNrZ3JvdW5kVGhyZWFkTG9j
ayk7CisgICAgICAgICAgICBMb2NrZXIgbG9ja2VyIHsgbV9iYWNrZ3JvdW5kVGhyZWFkTG9jayB9
OwogCi0gICAgICAgICAgICBtX2JhY2tncm91bmRUaHJlYWRDb25kaXRpb25WYXJpYWJsZS53YWl0
KGxvY2ssIFt0aGlzXSB7IHJldHVybiBtX21vcmVJbnB1dEJ1ZmZlcmVkIHx8IG1fd2FudHNUb0V4
aXQ7IH0pOworICAgICAgICAgICAgbV9iYWNrZ3JvdW5kVGhyZWFkQ29uZGl0aW9uVmFyaWFibGUu
d2FpdChtX2JhY2tncm91bmRUaHJlYWRMb2NrLCBbdGhpc10geyByZXR1cm4gbV9tb3JlSW5wdXRC
dWZmZXJlZCB8fCBtX3dhbnRzVG9FeGl0OyB9KTsKICAgICAgICAgfQogCiAgICAgICAgIC8vIFBy
b2Nlc3MgYWxsIG9mIHRoZSBzdGFnZXMgdW50aWwgdGhlaXIgcmVhZCBpbmRpY2VzIHJlYWNoIHRo
ZSBpbnB1dCBidWZmZXIncyB3cml0ZSBpbmRleApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvU2hhZG93Qmx1ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9TaGFkb3dCbHVyLmNwcAppbmRleCBhM2IwNTVkMzgzNTYyZmY0YTA2NzhhMjg1
Y2JiYmE3MzRiODZmNjkzLi4xZGY4MjA0MGRmMTE1ZWNhYzU5NmMyMzFjZjJmZDFlYjdiOGExMjA4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9TaGFkb3dCbHVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9TaGFkb3dCbHVyLmNw
cApAQCAtMTIyLDcgKzEyMiw3IEBAIHB1YmxpYzoKICAgICB9CiAKICAgICBzdGF0aWMgU2NyYXRj
aEJ1ZmZlciYgc2luZ2xldG9uKCk7Ci0gICAgc3RhdGljIExvY2smIGxvY2soKTsKKyAgICBzdGF0
aWMgVW5jaGVja2VkTG9jayYgbG9jaygpOwogCiBwcml2YXRlOgogICAgIHZvaWQgc2NoZWR1bGVT
Y3JhdGNoQnVmZmVyUHVyZ2UoKQpAQCAtMTY4LDkgKzE2OCw5IEBAIFNjcmF0Y2hCdWZmZXImIFNj
cmF0Y2hCdWZmZXI6OnNpbmdsZXRvbigpCiAgICAgcmV0dXJuIHNjcmF0Y2hCdWZmZXI7CiB9CiAK
LUxvY2smIFNjcmF0Y2hCdWZmZXI6OmxvY2soKQorVW5jaGVja2VkTG9jayYgU2NyYXRjaEJ1ZmZl
cjo6bG9jaygpCiB7Ci0gICAgc3RhdGljIExvY2sgbG9jazsKKyAgICBzdGF0aWMgVW5jaGVja2Vk
TG9jayBsb2NrOwogICAgIHJldHVybiBsb2NrOwogfQogCkBAIC02OTYsNyArNjk2LDcgQEAgdm9p
ZCBTaGFkb3dCbHVyOjpkcmF3UmVjdFNoYWRvd1dpdGhUaWxpbmcoY29uc3QgQWZmaW5lVHJhbnNm
b3JtJiB0cmFuc2Zvcm0sIGNvbnMKIHsKICAgICBSZWZQdHI8SW1hZ2VCdWZmZXI+IGxheWVySW1h
Z2VCdWZmZXI7CiAjaWYgVVNFKENHKQotICAgIGF1dG8gbG9ja2VyID0gTG9ja2VyPExvY2s+Ojp0
cnlMb2NrKFNjcmF0Y2hCdWZmZXI6OmxvY2soKSk7CisgICAgYXV0byBsb2NrZXIgPSBMb2NrZXI8
VW5jaGVja2VkTG9jaz46OnRyeUxvY2soU2NyYXRjaEJ1ZmZlcjo6bG9jaygpKTsKICAgICBpZiAo
bG9ja2VyKSB7CiAgICAgICAgIGxheWVySW1hZ2VCdWZmZXIgPSBTY3JhdGNoQnVmZmVyOjpzaW5n
bGV0b24oKS5nZXRTY3JhdGNoQnVmZmVyKHRlbXBsYXRlU2l6ZSk7CiAgICAgICAgIGlmICghbGF5
ZXJJbWFnZUJ1ZmZlcikKQEAgLTc1Niw3ICs3NTYsNyBAQCB2b2lkIFNoYWRvd0JsdXI6OmRyYXdJ
bnNldFNoYWRvd1dpdGhUaWxpbmcoY29uc3QgQWZmaW5lVHJhbnNmb3JtJiB0cmFuc2Zvcm0sIGNv
bgogewogICAgIFJlZlB0cjxJbWFnZUJ1ZmZlcj4gbGF5ZXJJbWFnZUJ1ZmZlcjsKICNpZiBVU0Uo
Q0cpCi0gICAgYXV0byBsb2NrZXIgPSBMb2NrZXI8TG9jaz46OnRyeUxvY2soU2NyYXRjaEJ1ZmZl
cjo6bG9jaygpKTsKKyAgICBhdXRvIGxvY2tlciA9IExvY2tlcjxVbmNoZWNrZWRMb2NrPjo6dHJ5
TG9jayhTY3JhdGNoQnVmZmVyOjpsb2NrKCkpOwogICAgIGlmIChsb2NrZXIpIHsKICAgICAgICAg
bGF5ZXJJbWFnZUJ1ZmZlciA9IFNjcmF0Y2hCdWZmZXI6OnNpbmdsZXRvbigpLmdldFNjcmF0Y2hC
dWZmZXIodGVtcGxhdGVTaXplKTsKICAgICAgICAgaWYgKCFsYXllckltYWdlQnVmZmVyKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1ZpZGVv
U2lua0dTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3Ry
ZWFtZXIvVmlkZW9TaW5rR1N0cmVhbWVyLmNwcAppbmRleCAxMWJlYTEyYjY2ZGM1NDYyNWE4Mjlm
OTA3NGE5MmMwMzc0Y2UyODk1Li41N2E3MmFjNTgwY2VjZjE2YTBlM2FiODBmY2YzOWUzOTVmZDA4
OGFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFt
ZXIvVmlkZW9TaW5rR1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvVmlkZW9TaW5rR1N0cmVhbWVyLmNwcApAQCAtMTA3LDcgKzEwNyw3
IEBAIHB1YmxpYzoKICAgICB9CiAKIHByaXZhdGU6Ci0gICAgTG9jayBtX3NhbXBsZU11dGV4Owor
ICAgIFVuY2hlY2tlZExvY2sgbV9zYW1wbGVNdXRleDsKICAgICBHUmVmUHRyPEdzdFNhbXBsZT4g
bV9zYW1wbGU7CiAKICAgICAvLyBJZiB0aGlzIGlzIHRydWUgYWxsIHByb2Nlc3Npbmcgc2hvdWxk
IGZpbmlzaCBBU0FQCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvV2ViS2l0V2ViU291cmNlR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3Bw
CmluZGV4IGQ0NzZlNDE3NzFlMjlhMTBmODdhMDJkMDYzZDI5ZDVjYmE2NDVhMDEuLjVjN2M5ODA2
ZDM0Y2I4YzEzODU5YzkxYTljOWNiMmFkOTkxNjc3NmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9XZWJL
aXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwCkBAIC0xNDAsNyArMTQwLDcgQEAgc3RydWN0IFdlYktp
dFdlYlNyY1ByaXZhdGUgewogCiAgICAgICAgIC8vIFByb3BlcnRpZXMgdXNlZCBmb3IgR1N0cmVh
bWVyIGRhdGEtZmxvdyBpbiBjcmVhdGUoKS4KICAgICAgICAgYm9vbCBpc0ZsdXNoaW5nIHsgZmFs
c2UgfTsKLSAgICAgICAgQ29uZGl0aW9uIHJlc3BvbnNlQ29uZGl0aW9uOyAvLyBNdXN0IGJlIHNp
Z25hbGVkIGFmdGVyIGFueSB1cGRhdGVzIG9uIEhUVFAgcmVxdWVzdHMsIGFuZCB3aGVuIGZsdXNo
aW5nLgorICAgICAgICBVbmNoZWNrZWRDb25kaXRpb24gcmVzcG9uc2VDb25kaXRpb247IC8vIE11
c3QgYmUgc2lnbmFsZWQgYWZ0ZXIgYW55IHVwZGF0ZXMgb24gSFRUUCByZXF1ZXN0cywgYW5kIHdo
ZW4gZmx1c2hpbmcuCiAgICAgICAgIEdSZWZQdHI8R3N0QWRhcHRlcj4gYWRhcHRlcjsKICAgICAg
ICAgYm9vbCBpc0R1cmF0aW9uU2V0OwogICAgICAgICB1aW50NjRfdCByZWFkUG9zaXRpb247CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvZW1l
L1dlYktpdENvbW1vbkVuY3J5cHRpb25EZWNyeXB0b3JHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9XZWJLaXRDb21tb25FbmNyeXB0
aW9uRGVjcnlwdG9yR1N0cmVhbWVyLmNwcAppbmRleCAzMjAxNzRkNWJmZTg3NmRiOGMxNDIzNTlh
OGUxYTAxYWE4NmMwZmRiLi5lYjA4ODUxY2M4NjIxMmI0NmJiODI4YzdiMzc4M2RiMzE1NjRhN2Vk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIv
ZW1lL1dlYktpdENvbW1vbkVuY3J5cHRpb25EZWNyeXB0b3JHU3RyZWFtZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUvV2ViS2l0Q29tbW9u
RW5jcnlwdGlvbkRlY3J5cHRvckdTdHJlYW1lci5jcHAKQEAgLTU2LDggKzU2LDggQEAgc3RydWN0
IF9XZWJLaXRNZWRpYUNvbW1vbkVuY3J5cHRpb25EZWNyeXB0UHJpdmF0ZSB7CiAgICAgUmVmUHRy
PENETVByb3h5PiBjZG1Qcm94eTsKIAogICAgIC8vIFByb3RlY3QgdGhlIGFjY2VzcyB0byB0aGUg
c3RydWN0dXJlIG1lbWJlcnMuCi0gICAgTG9jayBtdXRleDsKLSAgICBDb25kaXRpb24gY29uZGl0
aW9uOworICAgIFVuY2hlY2tlZExvY2sgbXV0ZXg7CisgICAgVW5jaGVja2VkQ29uZGl0aW9uIGNv
bmRpdGlvbjsKIAogICAgIGJvb2wgaXNGbHVzaGluZyB7IGZhbHNlIH07CiAgICAgc3RkOjp1bmlx
dWVfcHRyPENETVByb3h5RGVjcnlwdGlvbkNsaWVudEltcGxlbWVudGF0aW9uPiBjZG1Qcm94eURl
Y3J5cHRpb25DbGllbnRJbXBsZW1lbnRhdGlvbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvV2ViS2l0TWVkaWFTb3VyY2VHU3RyZWFt
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9X
ZWJLaXRNZWRpYVNvdXJjZUdTdHJlYW1lci5jcHAKaW5kZXggNmQwM2RmOTZhZDQzNzkwZDVhZjNk
MmI3MmQ3NzAwZDE2ZmYyYTRmYS4uYWE3Y2VlYjczOThhZTExOWRkZWFmMDUxNzZkZTJlOGYxYzRj
NjI3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVh
bWVyL21zZS9XZWJLaXRNZWRpYVNvdXJjZUdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9XZWJLaXRNZWRpYVNvdXJjZUdTdHJl
YW1lci5jcHAKQEAgLTE4NCw4ICsxODQsOCBAQCBzdHJ1Y3QgU3RyZWFtIDogcHVibGljIFRocmVh
ZFNhZmVSZWZDb3VudGVkPFN0cmVhbT4gewogICAgICAgICBHc3RTZWdtZW50IHNlZ21lbnQ7CiAg
ICAgICAgIEdSZWZQdHI8R3N0Q2Fwcz4gcGVuZGluZ0luaXRpYWxDYXBzOwogICAgICAgICBHUmVm
UHRyPEdzdENhcHM+IHByZXZpb3VzQ2FwczsgLy8gQ2FwcyBmcm9tIGVucXVldWVkIHNhbXBsZXMg
YXJlIGNvbXBhcmVkIHRvIHRoZXNlIHRvIHB1c2ggQ0FQUyBldmVudHMgYXMgbmVlZGVkLgotICAg
ICAgICBDb25kaXRpb24gcGFkTGlua2VkT3JGbHVzaGVkQ29uZGl0aW9uOwotICAgICAgICBDb25k
aXRpb24gcXVldWVDaGFuZ2VkT3JGbHVzaGVkQ29uZGl0aW9uOworICAgICAgICBVbmNoZWNrZWRD
b25kaXRpb24gcGFkTGlua2VkT3JGbHVzaGVkQ29uZGl0aW9uOworICAgICAgICBVbmNoZWNrZWRD
b25kaXRpb24gcXVldWVDaGFuZ2VkT3JGbHVzaGVkQ29uZGl0aW9uOwogICAgICAgICBib29sIGlz
Rmx1c2hpbmcgeyBmYWxzZSB9OwogCiAgICAgICAgIC8vIEZsdXNoZXMgYmVmb3JlIGFueSBidWZm
ZXIgaGFzIGJlZW4gcG9wcGVkIGZyb20gdGhlIHF1ZXVlIGFuZCBzZW50IGRvd25zdHJlYW0gY2Fu
IGJlIGF2b2lkZWQganVzdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9z
L3dhay9XZWJDb3JlVGhyZWFkUnVuLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy93
YWsvV2ViQ29yZVRocmVhZFJ1bi5jcHAKaW5kZXggOGY4MWQ3YzFhY2E0Njk1NTUxZmM0NDBiNDdl
OTA2MWQ0YjM1ZGYyZC4uNzIwNDFlOWUxZmU5ZmU5ZDU2YWUyNzdiNzBmOGRlOGJmNmEzYmY3YyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL3dhay9XZWJDb3JlVGhyZWFk
UnVuLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3Mvd2FrL1dlYkNvcmVUaHJl
YWRSdW4uY3BwCkBAIC00NSw5ICs0NSw5IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgd2FpdEZvckNv
bXBsZXRpb24oKQogICAgIHsKLSAgICAgICAgc3RkOjp1bmlxdWVfbG9jazxMb2NrPiBsb2NrKG1f
c3RhdGVNdXRleCk7CisgICAgICAgIExvY2tlciBsb2NrIHsgbV9zdGF0ZU11dGV4IH07CiAKLSAg
ICAgICAgbV9jb21wbGV0aW9uQ29uZGl0aW9uVmFyaWFibGUud2FpdChsb2NrLCBbdGhpc10geyBy
ZXR1cm4gbV9jb21wbGV0ZWQ7IH0pOworICAgICAgICBtX2NvbXBsZXRpb25Db25kaXRpb25WYXJp
YWJsZS53YWl0KG1fc3RhdGVNdXRleCwgW3RoaXNdIHsgcmV0dXJuIG1fY29tcGxldGVkOyB9KTsK
ICAgICB9CiAKICAgICB2b2lkIHNldENvbXBsZXRlZCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL0xvYWRlclJ1bkxvb3BDRi5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL0xvYWRlclJ1bkxvb3BDRi5jcHAKaW5kZXggMDVhMjRm
NTI1MjViNTRiN2ZmODFkNDcxMWM1ZWMwMGM5ODZjOTg0OC4uNmZlNDNhYjk0ZGQ3MGI5OTUwNGU0
OTBlY2RkMjJjYjA0ZGRhOTI1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9jZi9Mb2FkZXJSdW5Mb29wQ0YuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvY2YvTG9hZGVyUnVuTG9vcENGLmNwcApAQCAtNTMsNyArNTMsNyBAQCBDRlJ1
bkxvb3BSZWYgbG9hZGVyUnVuTG9vcCgpCiB7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsK
IAotICAgIHN0ZDo6dW5pcXVlX2xvY2s8TG9jaz4gbG9jayhsb2FkZXJSdW5Mb29wTXV0ZXgpOwor
ICAgIExvY2tlciBsb2NrZXIgeyBsb2FkZXJSdW5Mb29wTXV0ZXggfTsKIAogICAgIGlmICghbG9h
ZGVyUnVuTG9vcE9iamVjdCkgewogICAgICAgICBUaHJlYWQ6OmNyZWF0ZSgiV2ViQ29yZTogQ0ZO
ZXR3b3JrIExvYWRlciIsIFtdIHsKQEAgLTc3LDcgKzc3LDcgQEAgQ0ZSdW5Mb29wUmVmIGxvYWRl
clJ1bkxvb3AoKQogICAgICAgICAgICAgfSB3aGlsZSAocmVzdWx0ICE9IGtDRlJ1bkxvb3BSdW5T
dG9wcGVkICYmIHJlc3VsdCAhPSBrQ0ZSdW5Mb29wUnVuRmluaXNoZWQpOwogICAgICAgICB9LCBU
aHJlYWRUeXBlOjpOZXR3b3JrKTsKIAotICAgICAgICBsb2FkZXJSdW5Mb29wQ29uZGl0aW9uVmFy
aWFibGUud2FpdChsb2NrLCBbXSB7IHJldHVybiBsb2FkZXJSdW5Mb29wT2JqZWN0OyB9KTsKKyAg
ICAgICAgbG9hZGVyUnVuTG9vcENvbmRpdGlvblZhcmlhYmxlLndhaXQobG9hZGVyUnVuTG9vcE11
dGV4LCBbXSB7IHJldHVybiBsb2FkZXJSdW5Mb29wT2JqZWN0OyB9KTsKICAgICB9CiAKICAgICBy
ZXR1cm4gbG9hZGVyUnVuTG9vcE9iamVjdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTC5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wuY3BwCmluZGV4
IDZkMWQxZGFlOTdhOWI1ZTc2YzdhNDFhNTkwODNjOWUwYTg4MzRiNmYuLjE1NTNkZWYwMjVmZmY5
MGYxMzc1ZjUxMGQ1MGNhNDVkMmM1MTM1NGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTC5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMLmNwcApA
QCAtMjEyLDcgKzIxMiw3IEBAIHZvaWQgUmVtb3RlR3JhcGhpY3NDb250ZXh0R0w6OnBhaW50UGl4
ZWxCdWZmZXJUb0ltYWdlQnVmZmVyKE9wdGlvbmFsPFdlYkNvcmU6OlBpCiAgICAgYXNzZXJ0SXND
dXJyZW50KG1fc3RyZWFtVGhyZWFkKTsKICAgICAvLyBGSVhNRTogV2UgZG8gbm90IGhhdmUgZnVu
Y3Rpb25pbmcgcmVhZC93cml0ZSBmZW5jZXMgaW4gUmVtb3RlUmVuZGVyaW5nQmFja2VuZC4gVGh1
cyB0aGlzIGlzIHN5bmNocm9ub3VzLAogICAgIC8vIGFzIGFyZSB0aGUgbWVzc2FnZXMgdGhhdCBj
YWxsIHRoZXNlLgotICAgIExvY2sgbXV0ZXg7CisgICAgTG9jayBsb2NrOwogICAgIENvbmRpdGlv
biBjb25kaXRpb25WYXJpYWJsZTsKICAgICBib29sIGlzRmluaXNoZWQgPSBmYWxzZTsKICAgICBt
X3JlbmRlcmluZ0JhY2tlbmQtPmRpc3BhdGNoKFsmLCBjb250ZXh0QXR0cmlidXRlcyA9IG1fY29u
dGV4dC0+Y29udGV4dEF0dHJpYnV0ZXMoKV0oKSBtdXRhYmxlIHsKQEAgLTIyNiwxMSArMjI2LDEx
IEBAIHZvaWQgUmVtb3RlR3JhcGhpY3NDb250ZXh0R0w6OnBhaW50UGl4ZWxCdWZmZXJUb0ltYWdl
QnVmZmVyKE9wdGlvbmFsPFdlYkNvcmU6OlBpCiAgICAgICAgICAgICAvLyBVbmZvcnR1bmF0ZWx5
ICJmbHVzaCIgaW1wbGVtZW50YXRpb24gaW4gUmVtb3RlUmVuZGVyaW5nQmFja2VuZCBvdmVybG9h
ZHMgb3JkZXJpbmcgYW5kIGVmZmVjdHMuCiAgICAgICAgICAgICBpbWFnZUJ1ZmZlci0+Zmx1c2hD
b250ZXh0KCk7CiAgICAgICAgIH0KLSAgICAgICAgTG9ja2VyIGxvY2tlciB7IG11dGV4IH07Cisg
ICAgICAgIExvY2tlciBsb2NrZXIgeyBsb2NrIH07CiAgICAgICAgIGlzRmluaXNoZWQgPSB0cnVl
OwogICAgICAgICBjb25kaXRpb25WYXJpYWJsZS5ub3RpZnlPbmUoKTsKICAgICB9KTsKLSAgICBz
dGQ6OnVuaXF1ZV9sb2NrPExvY2s+IGxvY2sobXV0ZXgpOworICAgIExvY2tlciBsb2NrZXIgeyBs
b2NrIH07CiAgICAgY29uZGl0aW9uVmFyaWFibGUud2FpdChsb2NrLCBbJl0gewogICAgICAgICBy
ZXR1cm4gaXNGaW5pc2hlZDsKICAgICB9KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvSW5kZXhlZERCL1dlYklEQlNlcnZlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL0luZGV4ZWREQi9XZWJJREJTZXJ2ZXIuY3BwCmluZGV4IDkxYjg4OTQxYTc2
YTgwNzFkMzBkN2ZlZDc0MTYzZmIwOWY3Yjg3MjEuLjU0N2RhYThkNGUwMDE0MDZmYzIwMWFiYWQ2
Y2Y0NzcwYzkxYTU1NzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
SW5kZXhlZERCL1dlYklEQlNlcnZlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9JbmRleGVkREIvV2ViSURCU2VydmVyLmNwcApAQCAtMTE5LDcgKzExOSw3IEBAIHZvaWQg
V2ViSURCU2VydmVyOjpyZW5hbWVPcmlnaW4oY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5E
YXRhJiBvbGRPcmlnaW4sIGNvCiAgICAgfSk7CiB9CiAKLXZvaWQgV2ViSURCU2VydmVyOjpzdXNw
ZW5kKCkKK3ZvaWQgV2ViSURCU2VydmVyOjpzdXNwZW5kKCkgV1RGX0lHTk9SRVNfVEhSRUFEX1NB
RkVUWV9BTkFMWVNJUwogewogICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CiAKQEAgLTEz
Miw3ICsxMzIsNyBAQCB2b2lkIFdlYklEQlNlcnZlcjo6c3VzcGVuZCgpCiAgICAgICAgIG1fc2Vy
dmVyLT5zdG9wRGF0YWJhc2VBY3Rpdml0aWVzT25NYWluVGhyZWFkKCk7CiB9CiAKLXZvaWQgV2Vi
SURCU2VydmVyOjpyZXN1bWUoKQordm9pZCBXZWJJREJTZXJ2ZXI6OnJlc3VtZSgpIFdURl9JR05P
UkVTX1RIUkVBRF9TQUZFVFlfQU5BTFlTSVMKIHsKICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWlu
KCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9JY29u
RGF0YWJhc2UuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL0ljb25EYXRhYmFz
ZS5oCmluZGV4IGJlYjJmYjgwNmVjNTVjNjYzNGNkNWU1YTAwZDUwNzgzNjE1ZmVmNGIuLjgwZTE3
OGU2MWY1MGZhZmRmM2VhZDRkMjk4YTE4ODAxYWUwM2M3MTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL0ljb25EYXRhYmFzZS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9nbGliL0ljb25EYXRhYmFzZS5oCkBAIC03Miw3ICs3Miw3IEBAIHBy
aXZhdGU6CiAgICAgSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4gbV9wYWdlVVJMVG9JY29uVVJMTWFw
OwogICAgIExvY2sgbV9wYWdlVVJMVG9JY29uVVJMTWFwTG9jazsKICAgICBIYXNoTWFwPFN0cmlu
Zywgc3RkOjpwYWlyPFdlYkNvcmU6OlBsYXRmb3JtSW1hZ2VQdHIsIE1vbm90b25pY1RpbWU+PiBt
X2xvYWRlZEljb25zOwotICAgIExvY2sgbV9sb2FkZWRJY29uc0xvY2s7CisgICAgVW5jaGVja2Vk
TG9jayBtX2xvYWRlZEljb25zTG9jazsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpT
UUxpdGVTdGF0ZW1lbnQ+IG1faWNvbklERm9ySWNvblVSTFN0YXRlbWVudDsKICAgICBzdGQ6OnVu
aXF1ZV9wdHI8V2ViQ29yZTo6U1FMaXRlU3RhdGVtZW50PiBtX3NldEljb25JREZvclBhZ2VVUkxT
dGF0ZW1lbnQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tQcmlu
dGluZ1ZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tQcmludGluZ1ZpZXcu
bW0KaW5kZXggOWI3NGYzZWM1MGQwMjAxNjY0YzczMTI5ODljN2Y2OGMyOWEwNDU0Yy4uZjE4YmE4
ZjAxYjI2ZGUzZmQzY2RmYjAyODEyODVjZjBkNGE2NjY5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvbWFjL1dLUHJpbnRpbmdWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL21hYy9XS1ByaW50aW5nVmlldy5tbQpAQCAtNDE0LDEzICs0MTQsMTMgQEAgLSAo
Qk9PTClrbm93c1BhZ2VSYW5nZTooTlNSYW5nZVBvaW50ZXIpcmFuZ2UKICAgICAgICAgKnJhbmdl
ID0gTlNNYWtlUmFuZ2UoMSwgX3ByaW50aW5nUGFnZVJlY3RzLnNpemUoKSk7CiAgICAgZWxzZSBp
ZiAoIVJ1bkxvb3A6OmlzTWFpbigpKSB7CiAgICAgICAgIEFTU0VSVCghW3NlbGYgX2lzUHJpbnRp
bmdQcmV2aWV3XSk7Ci0gICAgICAgIHN0ZDo6dW5pcXVlX2xvY2s8TG9jaz4gbG9jayhfcHJpbnRp
bmdDYWxsYmFja011dGV4KTsKKyAgICAgICAgTG9ja2VyIGxvY2sgeyBfcHJpbnRpbmdDYWxsYmFj
a011dGV4IH07CiAKICAgICAgICAgUnVuTG9vcDo6bWFpbigpLmRpc3BhdGNoKFtzZWxmXSB7CiAg
ICAgICAgICAgICBwcmVwYXJlRGF0YUZvclByaW50aW5nT25TZWNvbmRhcnlUaHJlYWQoc2VsZik7
CiAgICAgICAgIH0pOwogCi0gICAgICAgIF9wcmludGluZ0NhbGxiYWNrQ29uZGl0aW9uLndhaXQo
bG9jayk7CisgICAgICAgIF9wcmludGluZ0NhbGxiYWNrQ29uZGl0aW9uLndhaXQoX3ByaW50aW5n
Q2FsbGJhY2tNdXRleCk7CiAgICAgICAgICpyYW5nZSA9IE5TTWFrZVJhbmdlKDEsIF9wcmludGlu
Z1BhZ2VSZWN0cy5zaXplKCkpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIEFTU0VSVChbc2VsZiBf
aXNQcmludGluZ1ByZXZpZXddKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xz
L0NoYW5nZUxvZwppbmRleCBlYWIwODNmMWUwN2Q0NWU4OGFkYjE0MDFkYmI0YzIxNWI1Mzc4NTRh
Li44NjM5MTBmZTRmYWZlYTMzMjM1YTQ2MmYzMGQ0ZGNkOGRkYWIyODM4IDEwMDY0NAotLS0gYS9U
b29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDMgQEAKKzIw
MjEtMDUtMjMgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBNYWtl
IENoZWNrZWRMb2NrIHRoZSBkZWZhdWx0IExvY2sKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNjE1NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIE1ha2UgQ2hlY2tlZExvY2sgdGhlIGRlZmF1bHQgTG9jayBz
byB0aGF0IHdlIGdldCBtb3JlIGJlbmVmaXRzIGZyb20gQ2xhbmcKKyAgICAgICAgVGhyZWFkIFNh
ZmV0eSBBbmFseXNpcy4gTm90ZSB0aGF0IENoZWNrZWRMb2NrIDEwMCUgcmVsaWVzIG9uIHRoZSBl
eGlzdGluZworICAgICAgICBMb2NrIGltcGxlbWVudGF0aW9uIGFuZCBtZXJlbHkgYWRkcyB0aGUg
Y2xhbmcgYW5vdGF0aW9ucyBmb3IgdGhyZWFkIAorICAgICAgICBzYWZldHkuCisKKyAgICAgICAg
VGhhdCB0aGlzIHBhdGNoIGRvZXMgaXM6CisgICAgICAgIDEuIFJlbmFtZSB0aGUgTG9jayBjbGFz
cyB0byBVbmNoZWNrZWRMb2NrCisgICAgICAgIDIuIFJlbmFtZSB0aGUgQ2hlY2tlZExvY2sgY2xh
c3MgdG8gTG9jaworICAgICAgICAzLiBSZW5hbWUgdGhlIENvbmRpdGlvbiBjbGFzcyB0byBVbmNo
ZWNrZWRDb25kaXRpb24KKyAgICAgICAgNC4gUmVuYW1lIHRoZSBDaGVja2VkQ29uZGl0aW9uIGNs
YXNzIHRvIENvbmRpdGlvbgorICAgICAgICA1LiBVcGRhdGUgdGhlIHR5cGVzIG9mIGNlcnRhaW4g
dmFyaWFibGVzIGZyb20gTG9jayAvIENvbmRpdGlvbiB0bworICAgICAgICAgICBVbmNoZWNrZWRM
b2NrIC8gVW5jaGVja2VkQ29uZGl0aW9uIGlmIEkgZ290IGEgYnVpbGQgZmFpbHVyZS4gQnVpbGQg
CisgICAgICAgICAgIGZhaWx1cmVzIGFyZSB1c3VhbGx5IGNhdXNlZCBieSB0aGUgZm9sbG93aW5n
IGZhY3RzOgorICAgICAgICAgICAtIExvY2tlcjxDaGVja2VkTG9jaz4gZG9lc24ndCBzdWJjbGFz
cyBBYnN0cmFjdExvY2tlciB3aGljaCBhIGxvdCBvZgorICAgICAgICAgICAgIEpTQyBjb2RlIHBh
c3NlcyBhcyBhcmd1bWVudAorICAgICAgICAgICAtIExvY2tlcjxDaGVja2VkTG9jaz4gaGFzIG5v
IG1vdmUgY29uc3RydWN0b3IKKyAgICAgICAgICAgLSBMb2NrZXI8Q2hlY2tlZExvY2s+IGNhbm5v
dCBiZSBjb25zdHJ1Y3RlZCBmcm9tIGEgbG9jayBwb2ludGVyLCBvbmx5CisgICAgICAgICAgICAg
YSByZWZlcmVuY2UKKworICAgICAgICBGb3Igbm93LCBDaGVja2VkTG9jayBhbmQgQ2hlY2tlZENv
bmRpdGlvbiByZW1haW4gYXMgYWxpYXNlcyB0byBMb2NrIGFuZCAKKyAgICAgICAgQ29uZGl0aW9u
LCBpbiB0aGVpciByZXNwZWN0aXZlIENoZWNrZWRMb2NrLmggLyBDaGVja2VkQ29uZGl0aW9uLmgg
aGVhZGVycy4KKyAgICAgICAgSSB3aWxsIGRyb3AgdGhlbSBpbiBhIGZvbGxvdy11cCB0byByZWR1
Y2UgcGF0Y2ggc2l6ZS4KKworICAgICAgICBJIHdpbGwgYWxzbyBmb2xsb3ctdXAgdG8gdHJ5IGFu
ZCBnZXQgcmlkIG9mIGFzIG11Y2ggdXNhZ2Ugb2YgVW5jaGVja2VkTG9jaworICAgICAgICBhbmQg
VW5jaGVja2VkQ29uZGl0aW9uIGFzIHBvc3NpYmxlLiBJIGRpZCBub3QgdHJ5IHZlcnkgaGFyZCBp
biB0aGlzIHBhdGNoCisgICAgICAgIHRvIHJlZHVjZSBwYXRjaCBzaXplLiAKKworICAgICAgICAq
IFRlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0NoZWNrZWRDb25kaXRpb25UZXN0LmNwcDoKKyAgICAg
ICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9Db25kaXRpb24uY3BwOgorICAgICAgICAqIFRl
c3RXZWJLaXRBUEkvVGVzdHMvV1RGL01ldGFBbGxvY2F0b3IuY3BwOgorICAgICAgICAqIFdlYktp
dFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuY3BwOgor
ICAgICAgICAoV1RSOjpBWFRocmVhZDo6Y3JlYXRlVGhyZWFkSWZOZWVkZWQpOgorCiAyMDIxLTA1
LTIyICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgUmVwbGFjZSBM
b2NrSG9sZGVyIHdpdGggTG9ja2VyIGluIGxvY2FsIHZhcmlhYmxlcwpkaWZmIC0tZ2l0IGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvQ2hlY2tlZENvbmRpdGlvblRlc3QuY3BwIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvQ2hlY2tlZENvbmRpdGlvblRlc3QuY3BwCmluZGV4
IDkyOGFhMTkwM2NkZTM2ZWEzMmRjMTAxZjI2YmYzY2M5OTI2OWI4OTMuLmFkNDI1NWUyYWMxYTJl
ZjlhMGMxY2EzY2Y1NmM3MzgwNzY2MzA1MDggMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV1RGL0NoZWNrZWRDb25kaXRpb25UZXN0LmNwcAorKysgYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dURi9DaGVja2VkQ29uZGl0aW9uVGVzdC5jcHAKQEAgLTI1LDYgKzI1LDcg
QEAKIAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgPHd0Zi9DaGVja2VkQ29uZGl0aW9u
Lmg+CisjaW5jbHVkZSA8d3RmL0NoZWNrZWRMb2NrLmg+CiAKIG5hbWVzcGFjZSBUZXN0V2ViS2l0
QVBJIHsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvQ29uZGl0
aW9uLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0NvbmRpdGlvbi5jcHAKaW5k
ZXggM2IzNWIwOGNhMTRiODE4ODQ3ZDY2ZWU1ODdmZmFkMWE1OTBkODEyNi4uNWVlYzNlMDE1NjZi
OTE4ZDY2N2UxNjQ4MjVmMDEyMDhkODc5YmJlYiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XVEYvQ29uZGl0aW9uLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dURi9Db25kaXRpb24uY3BwCkBAIC00Niw3ICs0Niw3IEBAIGVudW0gTm90aWZ5U3R5bGUg
ewogfTsKIAogdGVtcGxhdGU8dHlwZW5hbWUgRnVuY3Rvcj4KLXZvaWQgd2FpdChDb25kaXRpb24m
IGNvbmRpdGlvbiwgc3RkOjp1bmlxdWVfbG9jazxMb2NrPiYgbG9ja2VyLCBjb25zdCBGdW5jdG9y
JiBwcmVkaWNhdGUsIFNlY29uZHMgdGltZW91dCkKK3ZvaWQgd2FpdChVbmNoZWNrZWRDb25kaXRp
b24mIGNvbmRpdGlvbiwgc3RkOjp1bmlxdWVfbG9jazxVbmNoZWNrZWRMb2NrPiYgbG9ja2VyLCBj
b25zdCBGdW5jdG9yJiBwcmVkaWNhdGUsIFNlY29uZHMgdGltZW91dCkKIHsKICAgICBpZiAodGlt
ZW91dCA9PSBTZWNvbmRzOjppbmZpbml0eSgpKQogICAgICAgICBjb25kaXRpb24ud2FpdChsb2Nr
ZXIsIHByZWRpY2F0ZSk7CkBAIC01OSw3ICs1OSw3IEBAIHZvaWQgd2FpdChDb25kaXRpb24mIGNv
bmRpdGlvbiwgc3RkOjp1bmlxdWVfbG9jazxMb2NrPiYgbG9ja2VyLCBjb25zdCBGdW5jdG9yJiBw
CiAgICAgfQogfQogCi12b2lkIG5vdGlmeShOb3RpZnlTdHlsZSBub3RpZnlTdHlsZSwgQ29uZGl0
aW9uJiBjb25kaXRpb24sIGJvb2wgc2hvdWxkTm90aWZ5KQordm9pZCBub3RpZnkoTm90aWZ5U3R5
bGUgbm90aWZ5U3R5bGUsIFVuY2hlY2tlZENvbmRpdGlvbiYgY29uZGl0aW9uLCBib29sIHNob3Vs
ZE5vdGlmeSkKIHsKICAgICBzd2l0Y2ggKG5vdGlmeVN0eWxlKSB7CiAgICAgY2FzZSBBbHdheXNO
b3RpZnlPbmU6CkBAIC04Myw5ICs4Myw5IEBAIHZvaWQgcnVuVGVzdCgKIHsKICAgICBEZXF1ZTx1
bnNpZ25lZD4gcXVldWU7CiAgICAgYm9vbCBzaG91bGRDb250aW51ZSA9IHRydWU7Ci0gICAgTG9j
ayBsb2NrOwotICAgIENvbmRpdGlvbiBlbXB0eUNvbmRpdGlvbjsKLSAgICBDb25kaXRpb24gZnVs
bENvbmRpdGlvbjsKKyAgICBVbmNoZWNrZWRMb2NrIGxvY2s7CisgICAgVW5jaGVja2VkQ29uZGl0
aW9uIGVtcHR5Q29uZGl0aW9uOworICAgIFVuY2hlY2tlZENvbmRpdGlvbiBmdWxsQ29uZGl0aW9u
OwogCiAgICAgVmVjdG9yPFJlZjxUaHJlYWQ+PiBjb25zdW1lclRocmVhZHM7CiAgICAgVmVjdG9y
PFJlZjxUaHJlYWQ+PiBwcm9kdWNlclRocmVhZHM7CkBAIC0xMDEsNyArMTAxLDcgQEAgdm9pZCBy
dW5UZXN0KAogICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCByZXN1bHQ7CiAgICAgICAgICAg
ICAgICAgICAgIHVuc2lnbmVkIHNob3VsZE5vdGlmeSA9IGZhbHNlOwogICAgICAgICAgICAgICAg
ICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBzdGQ6OnVuaXF1ZV9sb2NrPExvY2s+IGxv
Y2tlcihsb2NrKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHN0ZDo6dW5pcXVlX2xvY2s8VW5j
aGVja2VkTG9jaz4gbG9ja2VyKGxvY2spOwogICAgICAgICAgICAgICAgICAgICAgICAgd2FpdCgK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbXB0eUNvbmRpdGlvbiwgbG9ja2VyLCAKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBbJl0gKCkgewpAQCAtMTM0LDcgKzEzNCw3IEBAIHZv
aWQgcnVuVGVzdCgKICAgICAgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbnVt
TWVzc2FnZXNQZXJQcm9kdWNlcjsgKytpKSB7CiAgICAgICAgICAgICAgICAgICAgIGJvb2wgc2hv
dWxkTm90aWZ5ID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAg
ICAgICAgICAgIHN0ZDo6dW5pcXVlX2xvY2s8TG9jaz4gbG9ja2VyKGxvY2spOworICAgICAgICAg
ICAgICAgICAgICAgICAgc3RkOjp1bmlxdWVfbG9jazxVbmNoZWNrZWRMb2NrPiBsb2NrZXIobG9j
ayk7CiAgICAgICAgICAgICAgICAgICAgICAgICB3YWl0KAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGZ1bGxDb25kaXRpb24sIGxvY2tlciwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBbJl0gKCkgewpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvTWV0
YUFsbG9jYXRvci5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9NZXRhQWxsb2Nh
dG9yLmNwcAppbmRleCBiOTFmNjhlYzBjYzE3ZGQzNzA4ZjJlNzgwODM2NjU1N2RiMzg3YTY2Li40
ZWY1ODNiM2MyYmU5OGVlZmQ5NjE1MWM3OTY5Y2U0M2ViYTA1NzkzIDEwMDY0NAotLS0gYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9NZXRhQWxsb2NhdG9yLmNwcAorKysgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9NZXRhQWxsb2NhdG9yLmNwcApAQCAtMTI5LDcgKzEyOSw3
IEBAIHB1YmxpYzoKICAgICAgICAgfQogICAgICAgICAKICAgICBwcml2YXRlOgotICAgICAgICBM
b2NrIG1fbG9jazsKKyAgICAgICAgVW5jaGVja2VkTG9jayBtX2xvY2s7CiAgICAgICAgIE1ldGFB
bGxvY2F0b3JUZXN0KiBtX3BhcmVudDsKICAgICB9OwogCmRpZmYgLS1naXQgYS9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyLmNwcCBi
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eUNvbnRy
b2xsZXIuY3BwCmluZGV4IDk4NDRlNWI2MzM1ZmJjYTI4NmUyYzExYzZiM2U5ODc4ZDljNDBkMGIu
LjZlYmExNGExYTcwYzAzZDU1N2RiMjNiNjA3NjJkZjc5ZmZlYTRjYWUgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eUNvbnRyb2xs
ZXIuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNz
aWJpbGl0eUNvbnRyb2xsZXIuY3BwCkBAIC0xOTksNyArMTk5LDcgQEAgQVhUaHJlYWQmIEFYVGhy
ZWFkOjpzaW5nbGV0b24oKQogdm9pZCBBWFRocmVhZDo6Y3JlYXRlVGhyZWFkSWZOZWVkZWQoKQog
ewogICAgIC8vIFdhaXQgZm9yIHRoZSB0aHJlYWQgdG8gaW5pdGlhbGl6ZSB0aGUgcnVuIGxvb3Au
Ci0gICAgc3RkOjp1bmlxdWVfbG9jazxMb2NrPiBsb2NrKG1faW5pdGlhbGl6ZVJ1bkxvb3BNdXRl
eCk7CisgICAgTG9ja2VyIGxvY2sgeyBtX2luaXRpYWxpemVSdW5Mb29wTXV0ZXggfTsKIAogICAg
IGlmICghbV90aHJlYWQpIHsKICAgICAgICAgbV90aHJlYWQgPSBUaHJlYWQ6OmNyZWF0ZSgiV0tU
UjogQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIiLCBbdGhpc10gewpAQCAtMjA4LDcgKzIwOCw3IEBA
IHZvaWQgQVhUaHJlYWQ6OmNyZWF0ZVRocmVhZElmTmVlZGVkKCkKICAgICAgICAgfSk7CiAgICAg
fQogCi0gICAgbV9pbml0aWFsaXplUnVuTG9vcENvbmRpdGlvblZhcmlhYmxlLndhaXQobG9jaywg
W3RoaXNdIHsKKyAgICBtX2luaXRpYWxpemVSdW5Mb29wQ29uZGl0aW9uVmFyaWFibGUud2FpdCht
X2luaXRpYWxpemVSdW5Mb29wTXV0ZXgsIFt0aGlzXSB7CiAjaWYgUExBVEZPUk0oQ09DT0EpCiAg
ICAgICAgIHJldHVybiBtX3RocmVhZFJ1bkxvb3A7CiAjZWxzZQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>429499</attachid>
            <date>2021-05-23 21:17:24 -0700</date>
            <delta_ts>2021-05-23 22:37:52 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226157-20210523211724.patch</filename>
            <type>text/plain</type>
            <size>105308</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3OTQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBj
ZTc4NDNmMmVjOTYxNDllMzQwOGVjNjJiMjNiOGZmYWVjMzE3NDdjLi40MTc1MDk5NmU1OGE0YTM1
MjJjZWMwYzY1NzkzYWJlZDMyMWM1MmEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw5NSBAQAorMjAyMS0wNS0yMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgor
CisgICAgICAgIE1ha2UgQ2hlY2tlZExvY2sgdGhlIGRlZmF1bHQgTG9jaworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI2MTU3CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAgICAgTWFrZSBDaGVja2VkTG9jayB0aGUgZGVm
YXVsdCBMb2NrIHNvIHRoYXQgd2UgZ2V0IG1vcmUgYmVuZWZpdHMgZnJvbSBDbGFuZworICAgICAg
ICBUaHJlYWQgU2FmZXR5IEFuYWx5c2lzLiBOb3RlIHRoYXQgQ2hlY2tlZExvY2sgMTAwJSByZWxp
ZXMgb24gdGhlIGV4aXN0aW5nCisgICAgICAgIExvY2sgaW1wbGVtZW50YXRpb24gYW5kIG1lcmVs
eSBhZGRzIHRoZSBjbGFuZyBhbm90YXRpb25zIGZvciB0aHJlYWQgCisgICAgICAgIHNhZmV0eS4K
KworICAgICAgICBUaGF0IHRoaXMgcGF0Y2ggZG9lcyBpczoKKyAgICAgICAgMS4gUmVuYW1lIHRo
ZSBMb2NrIGNsYXNzIHRvIFVuY2hlY2tlZExvY2sKKyAgICAgICAgMi4gUmVuYW1lIHRoZSBDaGVj
a2VkTG9jayBjbGFzcyB0byBMb2NrCisgICAgICAgIDMuIFJlbmFtZSB0aGUgQ29uZGl0aW9uIGNs
YXNzIHRvIFVuY2hlY2tlZENvbmRpdGlvbgorICAgICAgICA0LiBSZW5hbWUgdGhlIENoZWNrZWRD
b25kaXRpb24gY2xhc3MgdG8gQ29uZGl0aW9uCisgICAgICAgIDUuIFVwZGF0ZSB0aGUgdHlwZXMg
b2YgY2VydGFpbiB2YXJpYWJsZXMgZnJvbSBMb2NrIC8gQ29uZGl0aW9uIHRvCisgICAgICAgICAg
IFVuY2hlY2tlZExvY2sgLyBVbmNoZWNrZWRDb25kaXRpb24gaWYgSSBnb3QgYSBidWlsZCBmYWls
dXJlLiBCdWlsZCAKKyAgICAgICAgICAgZmFpbHVyZXMgYXJlIHVzdWFsbHkgY2F1c2VkIGJ5IHRo
ZSBmb2xsb3dpbmcgZmFjdHM6CisgICAgICAgICAgIC0gTG9ja2VyPENoZWNrZWRMb2NrPiBkb2Vz
bid0IHN1YmNsYXNzIEFic3RyYWN0TG9ja2VyIHdoaWNoIGEgbG90IG9mCisgICAgICAgICAgICAg
SlNDIGNvZGUgcGFzc2VzIGFzIGFyZ3VtZW50CisgICAgICAgICAgIC0gTG9ja2VyPENoZWNrZWRM
b2NrPiBoYXMgbm8gbW92ZSBjb25zdHJ1Y3RvcgorICAgICAgICAgICAtIExvY2tlcjxDaGVja2Vk
TG9jaz4gY2Fubm90IGJlIGNvbnN0cnVjdGVkIGZyb20gYSBsb2NrIHBvaW50ZXIsIG9ubHkKKyAg
ICAgICAgICAgICBhIHJlZmVyZW5jZQorCisgICAgICAgIEZvciBub3csIENoZWNrZWRMb2NrIGFu
ZCBDaGVja2VkQ29uZGl0aW9uIHJlbWFpbiBhcyBhbGlhc2VzIHRvIExvY2sgYW5kIAorICAgICAg
ICBDb25kaXRpb24sIGluIHRoZWlyIHJlc3BlY3RpdmUgQ2hlY2tlZExvY2suaCAvIENoZWNrZWRD
b25kaXRpb24uaCBoZWFkZXJzLgorICAgICAgICBJIHdpbGwgZHJvcCB0aGVtIGluIGEgZm9sbG93
LXVwIHRvIHJlZHVjZSBwYXRjaCBzaXplLgorCisgICAgICAgIEkgd2lsbCBhbHNvIGZvbGxvdy11
cCB0byB0cnkgYW5kIGdldCByaWQgb2YgYXMgbXVjaCB1c2FnZSBvZiBVbmNoZWNrZWRMb2NrCisg
ICAgICAgIGFuZCBVbmNoZWNrZWRDb25kaXRpb24gYXMgcG9zc2libGUuIEkgZGlkIG5vdCB0cnkg
dmVyeSBoYXJkIGluIHRoaXMgcGF0Y2gKKyAgICAgICAgdG8gcmVkdWNlIHBhdGNoIHNpemUuIAor
CisgICAgICAgICogYXNzZW1ibGVyL3Rlc3RtYXNtLmNwcDoKKyAgICAgICAgKiBkZmcvREZHQ29t
bW9uLmNwcDoKKyAgICAgICAgKiBkZmcvREZHVGhyZWFkRGF0YS5oOgorICAgICAgICAqIGRmZy9E
RkdXb3JrbGlzdC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6V29ya2xpc3Q6OldvcmtsaXN0KToK
KyAgICAgICAgKiBkZmcvREZHV29ya2xpc3QuaDoKKyAgICAgICAgKiBkeW5iZW5jaC5jcHA6Cisg
ICAgICAgICogaGVhcC9CbG9ja0RpcmVjdG9yeS5oOgorICAgICAgICAoSlNDOjpCbG9ja0RpcmVj
dG9yeTo6Yml0dmVjdG9yTG9jayk6CisgICAgICAgICogaGVhcC9Db2RlQmxvY2tTZXQuaDoKKyAg
ICAgICAgKEpTQzo6Q29kZUJsb2NrU2V0OjpnZXRMb2NrKToKKyAgICAgICAgKiBoZWFwL0hlYXAu
Y3BwOgorICAgICAgICAoSlNDOjpIZWFwOjpIZWFwKToKKyAgICAgICAgKiBoZWFwL0hlYXAuaDoK
KyAgICAgICAgKiBoZWFwL01hcmtlZFNwYWNlLmg6CisgICAgICAgIChKU0M6Ok1hcmtlZFNwYWNl
OjpkaXJlY3RvcnlMb2NrKToKKyAgICAgICAgKiBoZWFwL01hcmtpbmdDb25zdHJhaW50U29sdmVy
Lmg6CisgICAgICAgICogaGVhcC9TbG90VmlzaXRvci5jcHA6CisgICAgICAgIChKU0M6OlNsb3RW
aXNpdG9yOjpkb25hdGVLbm93blBhcmFsbGVsKToKKyAgICAgICAgKiBoZWFwL1Nsb3RWaXNpdG9y
Lmg6CisgICAgICAgICogaml0L0V4ZWN1dGFibGVBbGxvY2F0b3IuY3BwOgorICAgICAgICAoSlND
OjpFeGVjdXRhYmxlQWxsb2NhdG9yOjpnZXRMb2NrIGNvbnN0KToKKyAgICAgICAgKEpTQzo6ZHVt
cEpJVE1lbW9yeSk6CisgICAgICAgICogaml0L0V4ZWN1dGFibGVBbGxvY2F0b3IuaDoKKyAgICAg
ICAgKEpTQzo6RXhlY3V0YWJsZUFsbG9jYXRvckJhc2U6OmdldExvY2sgY29uc3QpOgorICAgICAg
ICAqIGppdC9KSVRXb3JrbGlzdC5jcHA6CisgICAgICAgIChKU0M6OkpJVFdvcmtsaXN0OjpKSVRX
b3JrbGlzdCk6CisgICAgICAgICogaml0L0pJVFdvcmtsaXN0Lmg6CisgICAgICAgICoganNjLmNw
cDoKKyAgICAgICAgKiBwcm9maWxlci9Qcm9maWxlckRhdGFiYXNlLmg6CisgICAgICAgICogcnVu
dGltZS9Db25jdXJyZW50SlNMb2NrLmg6CisgICAgICAgICogcnVudGltZS9EZWZlcnJlZFdvcmtU
aW1lci5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNMb2NrLmg6CisgICAgICAgICogcnVudGltZS9T
YW1wbGluZ1Byb2ZpbGVyLmNwcDoKKyAgICAgICAgKEpTQzo6RnJhbWVXYWxrZXI6OkZyYW1lV2Fs
a2VyKToKKyAgICAgICAgKEpTQzo6Q0ZyYW1lV2Fsa2VyOjpDRnJhbWVXYWxrZXIpOgorICAgICAg
ICAoSlNDOjpTYW1wbGluZ1Byb2ZpbGVyOjp0YWtlU2FtcGxlKToKKyAgICAgICAgKiBydW50aW1l
L1NhbXBsaW5nUHJvZmlsZXIuaDoKKyAgICAgICAgKEpTQzo6U2FtcGxpbmdQcm9maWxlcjo6Z2V0
TG9jayk6CisgICAgICAgICogcnVudGltZS9WTS5oOgorICAgICAgICAqIHJ1bnRpbWUvVk1UcmFw
cy5jcHA6CisgICAgICAgIChKU0M6OlZNVHJhcHM6OmludmFsaWRhdGVDb2RlQmxvY2tzT25TdGFj
ayk6CisgICAgICAgIChKU0M6OlZNVHJhcHM6OlZNVHJhcHMpOgorICAgICAgICAqIHJ1bnRpbWUv
Vk1UcmFwcy5oOgorICAgICAgICAqIHRvb2xzL0Z1bmN0aW9uT3ZlcnJpZGVzLmg6CisgICAgICAg
ICogdG9vbHMvVk1JbnNwZWN0b3IuY3BwOgorICAgICAgICAoSlNDOjplbnN1cmVJc1NhZmVUb0xv
Y2spOgorICAgICAgICAqIHRvb2xzL1ZNSW5zcGVjdG9yLmg6CisgICAgICAgIChKU0M6OlZNSW5z
cGVjdG9yOjpnZXRMb2NrKToKKyAgICAgICAgKiB3YXNtL1dhc21DYWxsZWVSZWdpc3RyeS5oOgor
ICAgICAgICAoSlNDOjpXYXNtOjpDYWxsZWVSZWdpc3RyeTo6Z2V0TG9jayk6CisgICAgICAgICog
d2FzbS9XYXNtUGxhbi5oOgorICAgICAgICAqIHdhc20vV2FzbVN0cmVhbWluZ0NvbXBpbGVyLmg6
CisgICAgICAgICogd2FzbS9XYXNtVGh1bmtzLmg6CisgICAgICAgICogd2FzbS9XYXNtV29ya2xp
c3QuY3BwOgorICAgICAgICAoSlNDOjpXYXNtOjpXb3JrbGlzdDo6V29ya2xpc3QpOgorICAgICAg
ICAqIHdhc20vV2FzbVdvcmtsaXN0Lmg6CisKIDIwMjEtMDUtMjMgIE1hcmsgTGFtICA8bWFyay5s
YW1AYXBwbGUuY29tPgogCiAgICAgICAgIFJlbW92ZSBFTkFCTEUoTUFTTV9QUk9CRSkgZmxhZy4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cK
aW5kZXggNWIxMTM5OWFmZDlkOTczNmU1OGY1MGE5YzE1ZTdhY2E0ZWU4MzM0Yy4uMTYzZGM2Njlk
ZGMwY2IwNGYyOGJiOWU5Y2U5MGYyZWY1ODU2ZTVjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2NiBAQAorMjAy
MS0wNS0yMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIE1ha2Ug
Q2hlY2tlZExvY2sgdGhlIGRlZmF1bHQgTG9jaworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI2MTU3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4g
QWRsZXIuCisKKyAgICAgICAgTWFrZSBDaGVja2VkTG9jayB0aGUgZGVmYXVsdCBMb2NrIHNvIHRo
YXQgd2UgZ2V0IG1vcmUgYmVuZWZpdHMgZnJvbSBDbGFuZworICAgICAgICBUaHJlYWQgU2FmZXR5
IEFuYWx5c2lzLiBOb3RlIHRoYXQgQ2hlY2tlZExvY2sgMTAwJSByZWxpZXMgb24gdGhlIGV4aXN0
aW5nCisgICAgICAgIExvY2sgaW1wbGVtZW50YXRpb24gYW5kIG1lcmVseSBhZGRzIHRoZSBjbGFu
ZyBhbm90YXRpb25zIGZvciB0aHJlYWQKKyAgICAgICAgc2FmZXR5LgorCisgICAgICAgIFRoYXQg
dGhpcyBwYXRjaCBkb2VzIGlzOgorICAgICAgICAxLiBSZW5hbWUgdGhlIExvY2sgY2xhc3MgdG8g
VW5jaGVja2VkTG9jaworICAgICAgICAyLiBSZW5hbWUgdGhlIENoZWNrZWRMb2NrIGNsYXNzIHRv
IExvY2sKKyAgICAgICAgMy4gUmVuYW1lIHRoZSBDb25kaXRpb24gY2xhc3MgdG8gVW5jaGVja2Vk
Q29uZGl0aW9uCisgICAgICAgIDQuIFJlbmFtZSB0aGUgQ2hlY2tlZENvbmRpdGlvbiBjbGFzcyB0
byBDb25kaXRpb24KKyAgICAgICAgNS4gVXBkYXRlIHRoZSB0eXBlcyBvZiBjZXJ0YWluIHZhcmlh
YmxlcyBmcm9tIExvY2sgLyBDb25kaXRpb24gdG8KKyAgICAgICAgICAgVW5jaGVja2VkTG9jayAv
IFVuY2hlY2tlZENvbmRpdGlvbiBpZiBJIGdvdCBhIGJ1aWxkIGZhaWx1cmUuIEJ1aWxkCisgICAg
ICAgICAgIGZhaWx1cmVzIGFyZSB1c3VhbGx5IGNhdXNlZCBieSB0aGUgZm9sbG93aW5nIGZhY3Rz
OgorICAgICAgICAgICAtIExvY2tlcjxDaGVja2VkTG9jaz4gZG9lc24ndCBzdWJjbGFzcyBBYnN0
cmFjdExvY2tlciB3aGljaCBhIGxvdCBvZgorICAgICAgICAgICAgIEpTQyBjb2RlIHBhc3NlcyBh
cyBhcmd1bWVudAorICAgICAgICAgICAtIExvY2tlcjxDaGVja2VkTG9jaz4gaGFzIG5vIG1vdmUg
Y29uc3RydWN0b3IKKyAgICAgICAgICAgLSBMb2NrZXI8Q2hlY2tlZExvY2s+IGNhbm5vdCBiZSBj
b25zdHJ1Y3RlZCBmcm9tIGEgbG9jayBwb2ludGVyLCBvbmx5CisgICAgICAgICAgICAgYSByZWZl
cmVuY2UKKyAgICAgICAgCisgICAgICAgIEZvciBub3csIENoZWNrZWRMb2NrIGFuZCBDaGVja2Vk
Q29uZGl0aW9uIHJlbWFpbiBhcyBhbGlhc2VzIHRvIExvY2sgYW5kCisgICAgICAgIENvbmRpdGlv
biwgaW4gdGhlaXIgcmVzcGVjdGl2ZSBDaGVja2VkTG9jay5oIC8gQ2hlY2tlZENvbmRpdGlvbi5o
IGhlYWRlcnMuCisgICAgICAgIEkgd2lsbCBkcm9wIHRoZW0gaW4gYSBmb2xsb3ctdXAgdG8gcmVk
dWNlIHBhdGNoIHNpemUuCisKKyAgICAgICAgSSB3aWxsIGFsc28gZm9sbG93LXVwIHRvIHRyeSBh
bmQgZ2V0IHJpZCBvZiBhcyBtdWNoIHVzYWdlIG9mIFVuY2hlY2tlZExvY2sKKyAgICAgICAgYW5k
IFVuY2hlY2tlZENvbmRpdGlvbiBhcyBwb3NzaWJsZS4gSSBkaWQgbm90IHRyeSB2ZXJ5IGhhcmQg
aW4gdGhpcyBwYXRjaAorICAgICAgICB0byByZWR1Y2UgcGF0Y2ggc2l6ZS4KKworICAgICAgICAq
IHd0Zi9BdXRvbWF0aWNUaHJlYWQuY3BwOgorICAgICAgICAoV1RGOjpBdXRvbWF0aWNUaHJlYWRD
b25kaXRpb246OndhaXQpOgorICAgICAgICAoV1RGOjpBdXRvbWF0aWNUaHJlYWRDb25kaXRpb246
OndhaXRGb3IpOgorICAgICAgICAoV1RGOjpBdXRvbWF0aWNUaHJlYWQ6OkF1dG9tYXRpY1RocmVh
ZCk6CisgICAgICAgICogd3RmL0F1dG9tYXRpY1RocmVhZC5oOgorICAgICAgICAqIHd0Zi9DaGVj
a2VkQ29uZGl0aW9uLmg6CisgICAgICAgICogd3RmL0NoZWNrZWRMb2NrLmg6CisgICAgICAgICog
d3RmL0NvbmRpdGlvbi5oOgorICAgICAgICAqIHd0Zi9Mb2NrLmNwcDoKKyAgICAgICAgKFdURjo6
VW5jaGVja2VkTG9jazo6bG9ja1Nsb3cpOgorICAgICAgICAoV1RGOjpVbmNoZWNrZWRMb2NrOjp1
bmxvY2tTbG93KToKKyAgICAgICAgKFdURjo6VW5jaGVja2VkTG9jazo6dW5sb2NrRmFpcmx5U2xv
dyk6CisgICAgICAgIChXVEY6OlVuY2hlY2tlZExvY2s6OnNhZmVwb2ludFNsb3cpOgorICAgICAg
ICAqIHd0Zi9Mb2NrLmg6CisgICAgICAgIChXVEY6OldURl9BU1NFUlRTX0FDUVVJUkVEX0xPQ0sp
OgorICAgICAgICAqIHd0Zi9NZXRhQWxsb2NhdG9yLmNwcDoKKyAgICAgICAgKFdURjo6TWV0YUFs
bG9jYXRvcjo6cmVsZWFzZSk6CisgICAgICAgIChXVEY6Ok1ldGFBbGxvY2F0b3I6Ok1ldGFBbGxv
Y2F0b3IpOgorICAgICAgICAoV1RGOjpNZXRhQWxsb2NhdG9yOjphbGxvY2F0ZSk6CisgICAgICAg
IChXVEY6Ok1ldGFBbGxvY2F0b3I6OmN1cnJlbnRTdGF0aXN0aWNzKToKKyAgICAgICAgKiB3dGYv
TWV0YUFsbG9jYXRvci5oOgorICAgICAgICAqIHd0Zi9QYXJhbGxlbEhlbHBlclBvb2wuY3BwOgor
ICAgICAgICAoV1RGOjpQYXJhbGxlbEhlbHBlclBvb2w6OlBhcmFsbGVsSGVscGVyUG9vbCk6Cisg
ICAgICAgICogd3RmL1BhcmFsbGVsSGVscGVyUG9vbC5oOgorICAgICAgICAqIHd0Zi9SZWN1cnNp
dmVMb2NrQWRhcHRlci5oOgorICAgICAgICAqIHd0Zi9Xb3JrZXJQb29sLmNwcDoKKyAgICAgICAg
KFdURjo6V29ya2VyUG9vbDo6V29ya2VyUG9vbCk6CisgICAgICAgICogd3RmL1dvcmtlclBvb2wu
aDoKKwogMjAyMS0wNS0yMyAgTWFyayBMYW0gIDxtYXJrLmxhbUBhcHBsZS5jb20+CiAKICAgICAg
ICAgUmVtb3ZlIEVOQUJMRShNQVNNX1BST0JFKSBmbGFnLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDRmNDViMTQ0
YmE1OGUwNjM5OTY4ZjZmY2RhYzY2N2VmNWNhM2NlZTAuLjA4ZDhhZTVjMGNjZmJlNzZjODRiOGVm
ODhkZjgxZTJkNGFlYWUyMjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2NyBAQAorMjAyMS0wNS0y
MyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIE1ha2UgQ2hlY2tl
ZExvY2sgdGhlIGRlZmF1bHQgTG9jaworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjI2MTU3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIu
CisKKyAgICAgICAgTWFrZSBDaGVja2VkTG9jayB0aGUgZGVmYXVsdCBMb2NrIHNvIHRoYXQgd2Ug
Z2V0IG1vcmUgYmVuZWZpdHMgZnJvbSBDbGFuZworICAgICAgICBUaHJlYWQgU2FmZXR5IEFuYWx5
c2lzLiBOb3RlIHRoYXQgQ2hlY2tlZExvY2sgMTAwJSByZWxpZXMgb24gdGhlIGV4aXN0aW5nCisg
ICAgICAgIExvY2sgaW1wbGVtZW50YXRpb24gYW5kIG1lcmVseSBhZGRzIHRoZSBjbGFuZyBhbm90
YXRpb25zIGZvciB0aHJlYWQgCisgICAgICAgIHNhZmV0eS4KKworICAgICAgICBUaGF0IHRoaXMg
cGF0Y2ggZG9lcyBpczoKKyAgICAgICAgMS4gUmVuYW1lIHRoZSBMb2NrIGNsYXNzIHRvIFVuY2hl
Y2tlZExvY2sKKyAgICAgICAgMi4gUmVuYW1lIHRoZSBDaGVja2VkTG9jayBjbGFzcyB0byBMb2Nr
CisgICAgICAgIDMuIFJlbmFtZSB0aGUgQ29uZGl0aW9uIGNsYXNzIHRvIFVuY2hlY2tlZENvbmRp
dGlvbgorICAgICAgICA0LiBSZW5hbWUgdGhlIENoZWNrZWRDb25kaXRpb24gY2xhc3MgdG8gQ29u
ZGl0aW9uCisgICAgICAgIDUuIFVwZGF0ZSB0aGUgdHlwZXMgb2YgY2VydGFpbiB2YXJpYWJsZXMg
ZnJvbSBMb2NrIC8gQ29uZGl0aW9uIHRvCisgICAgICAgICAgIFVuY2hlY2tlZExvY2sgLyBVbmNo
ZWNrZWRDb25kaXRpb24gaWYgSSBnb3QgYSBidWlsZCBmYWlsdXJlLiBCdWlsZCAKKyAgICAgICAg
ICAgZmFpbHVyZXMgYXJlIHVzdWFsbHkgY2F1c2VkIGJ5IHRoZSBmb2xsb3dpbmcgZmFjdHM6Cisg
ICAgICAgICAgIC0gTG9ja2VyPENoZWNrZWRMb2NrPiBkb2Vzbid0IHN1YmNsYXNzIEFic3RyYWN0
TG9ja2VyIHdoaWNoIGEgbG90IG9mCisgICAgICAgICAgICAgSlNDIGNvZGUgcGFzc2VzIGFzIGFy
Z3VtZW50CisgICAgICAgICAgIC0gTG9ja2VyPENoZWNrZWRMb2NrPiBoYXMgbm8gbW92ZSBjb25z
dHJ1Y3RvcgorICAgICAgICAgICAtIExvY2tlcjxDaGVja2VkTG9jaz4gY2Fubm90IGJlIGNvbnN0
cnVjdGVkIGZyb20gYSBsb2NrIHBvaW50ZXIsIG9ubHkKKyAgICAgICAgICAgICBhIHJlZmVyZW5j
ZQorCisgICAgICAgIEZvciBub3csIENoZWNrZWRMb2NrIGFuZCBDaGVja2VkQ29uZGl0aW9uIHJl
bWFpbiBhcyBhbGlhc2VzIHRvIExvY2sgYW5kIAorICAgICAgICBDb25kaXRpb24sIGluIHRoZWly
IHJlc3BlY3RpdmUgQ2hlY2tlZExvY2suaCAvIENoZWNrZWRDb25kaXRpb24uaCBoZWFkZXJzLgor
ICAgICAgICBJIHdpbGwgZHJvcCB0aGVtIGluIGEgZm9sbG93LXVwIHRvIHJlZHVjZSBwYXRjaCBz
aXplLgorCisgICAgICAgIEkgd2lsbCBhbHNvIGZvbGxvdy11cCB0byB0cnkgYW5kIGdldCByaWQg
b2YgYXMgbXVjaCB1c2FnZSBvZiBVbmNoZWNrZWRMb2NrCisgICAgICAgIGFuZCBVbmNoZWNrZWRD
b25kaXRpb24gYXMgcG9zc2libGUuIEkgZGlkIG5vdCB0cnkgdmVyeSBoYXJkIGluIHRoaXMgcGF0
Y2gKKyAgICAgICAgdG8gcmVkdWNlIHBhdGNoIHNpemUuIAorCisgICAgICAgICogTW9kdWxlcy9p
bmRleGVkZGIvc2VydmVyL0lEQlNlcnZlci5jcHA6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRp
by9NZWRpYUVsZW1lbnRBdWRpb1NvdXJjZU5vZGUuaDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYmRh
dGFiYXNlL09yaWdpbkxvY2suY3BwOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NR2xvYmFs
T2JqZWN0Lmg6CisgICAgICAgICogZG9tL05vZGUuY3BwOgorICAgICAgICAqIGh0bWwvSFRNTE1l
ZGlhRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpjcmVh
dGVNZWRpYVBsYXllcik6CisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xDb250ZXh0R3JvdXAu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xDb250ZXh0R3JvdXA6Om9iamVjdEdyYXBoTG9j
a0ZvckFDb250ZXh0KToKKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTENvbnRleHRHcm91cC5o
OgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMQ29udGV4dE9iamVjdC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpXZWJHTENvbnRleHRPYmplY3Q6Om9iamVjdEdyYXBoTG9ja0ZvckNvbnRleHQp
OgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMQ29udGV4dE9iamVjdC5oOgorICAgICAgICAq
IGh0bWwvY2FudmFzL1dlYkdMT2JqZWN0Lmg6CisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xS
ZW5kZXJpbmdDb250ZXh0QmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmlu
Z0NvbnRleHRCYXNlOjpvYmplY3RHcmFwaExvY2spOgorICAgICAgICAqIGh0bWwvY2FudmFzL1dl
YkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuaDoKKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTFNo
YXJlZE9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFNoYXJlZE9iamVjdDo6b2Jq
ZWN0R3JhcGhMb2NrRm9yQ29udGV4dCk6CisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xTaGFy
ZWRPYmplY3QuaDoKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZU1h
Yy5oOgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL1JldmVyYkNvbnZvbHZlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpSZXZlcmJDb252b2x2ZXI6OmJhY2tncm91bmRUaHJlYWRFbnRyeSk6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvU2hhZG93Qmx1ci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpTY3JhdGNoQnVmZmVyOjpsb2NrKToKKyAgICAgICAgKFdlYkNvcmU6OlNoYWRvd0JsdXI6
OmRyYXdSZWN0U2hhZG93V2l0aFRpbGluZyk6CisgICAgICAgIChXZWJDb3JlOjpTaGFkb3dCbHVy
OjpkcmF3SW5zZXRTaGFkb3dXaXRoVGlsaW5nKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvVmlkZW9TaW5rR1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvZW1lL1dlYktpdENvbW1vbkVuY3J5cHRpb25EZWNyeXB0b3JHU3Ry
ZWFtZXIuY3BwOgorCiAyMDIxLTA1LTIzICBTYW0gV2VpbmlnICA8d2VpbmlnQGFwcGxlLmNvbT4K
IAogICAgICAgICBDb252ZXJ0IERlc3RpbmF0aW9uQ29sb3JTcGFjZSBmcm9tIGFuIGVudW0gdG8g
Y2xhc3Mgd3JhcHBpbmcgYSBwbGF0Zm9ybSBjb2xvciBzcGFjZSAoQ0dDb2xvclNwYWNlUmVmIGZv
ciBDRyBwb3J0cywgZXRjLikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggNzAzOGFhOTVlNTc0NTE1YzM0MDQyZjY0MTk4
MzI1MDVjNmMyMjY2ZS4uNDkwZmYxNjVlMTk3MTQwNTU1MThiYTMyYzVjMjRmMjdlZGRlZmEwMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cKQEAgLTEsMyArMSw0NCBAQAorMjAyMS0wNS0yMyAgQ2hyaXMgRHVtZXogIDxjZHVt
ZXpAYXBwbGUuY29tPgorCisgICAgICAgIE1ha2UgQ2hlY2tlZExvY2sgdGhlIGRlZmF1bHQgTG9j
aworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI2MTU3
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAgICAgTWFrZSBDaGVj
a2VkTG9jayB0aGUgZGVmYXVsdCBMb2NrIHNvIHRoYXQgd2UgZ2V0IG1vcmUgYmVuZWZpdHMgZnJv
bSBDbGFuZworICAgICAgICBUaHJlYWQgU2FmZXR5IEFuYWx5c2lzLiBOb3RlIHRoYXQgQ2hlY2tl
ZExvY2sgMTAwJSByZWxpZXMgb24gdGhlIGV4aXN0aW5nCisgICAgICAgIExvY2sgaW1wbGVtZW50
YXRpb24gYW5kIG1lcmVseSBhZGRzIHRoZSBjbGFuZyBhbm90YXRpb25zIGZvciB0aHJlYWQgCisg
ICAgICAgIHNhZmV0eS4KKworICAgICAgICBUaGF0IHRoaXMgcGF0Y2ggZG9lcyBpczoKKyAgICAg
ICAgMS4gUmVuYW1lIHRoZSBMb2NrIGNsYXNzIHRvIFVuY2hlY2tlZExvY2sKKyAgICAgICAgMi4g
UmVuYW1lIHRoZSBDaGVja2VkTG9jayBjbGFzcyB0byBMb2NrCisgICAgICAgIDMuIFJlbmFtZSB0
aGUgQ29uZGl0aW9uIGNsYXNzIHRvIFVuY2hlY2tlZENvbmRpdGlvbgorICAgICAgICA0LiBSZW5h
bWUgdGhlIENoZWNrZWRDb25kaXRpb24gY2xhc3MgdG8gQ29uZGl0aW9uCisgICAgICAgIDUuIFVw
ZGF0ZSB0aGUgdHlwZXMgb2YgY2VydGFpbiB2YXJpYWJsZXMgZnJvbSBMb2NrIC8gQ29uZGl0aW9u
IHRvCisgICAgICAgICAgIFVuY2hlY2tlZExvY2sgLyBVbmNoZWNrZWRDb25kaXRpb24gaWYgSSBn
b3QgYSBidWlsZCBmYWlsdXJlLiBCdWlsZCAKKyAgICAgICAgICAgZmFpbHVyZXMgYXJlIHVzdWFs
bHkgY2F1c2VkIGJ5IHRoZSBmb2xsb3dpbmcgZmFjdHM6CisgICAgICAgICAgIC0gTG9ja2VyPENo
ZWNrZWRMb2NrPiBkb2Vzbid0IHN1YmNsYXNzIEFic3RyYWN0TG9ja2VyIHdoaWNoIGEgbG90IG9m
CisgICAgICAgICAgICAgSlNDIGNvZGUgcGFzc2VzIGFzIGFyZ3VtZW50CisgICAgICAgICAgIC0g
TG9ja2VyPENoZWNrZWRMb2NrPiBoYXMgbm8gbW92ZSBjb25zdHJ1Y3RvcgorICAgICAgICAgICAt
IExvY2tlcjxDaGVja2VkTG9jaz4gY2Fubm90IGJlIGNvbnN0cnVjdGVkIGZyb20gYSBsb2NrIHBv
aW50ZXIsIG9ubHkKKyAgICAgICAgICAgICBhIHJlZmVyZW5jZQorCisgICAgICAgIEZvciBub3cs
IENoZWNrZWRMb2NrIGFuZCBDaGVja2VkQ29uZGl0aW9uIHJlbWFpbiBhcyBhbGlhc2VzIHRvIExv
Y2sgYW5kIAorICAgICAgICBDb25kaXRpb24sIGluIHRoZWlyIHJlc3BlY3RpdmUgQ2hlY2tlZExv
Y2suaCAvIENoZWNrZWRDb25kaXRpb24uaCBoZWFkZXJzLgorICAgICAgICBJIHdpbGwgZHJvcCB0
aGVtIGluIGEgZm9sbG93LXVwIHRvIHJlZHVjZSBwYXRjaCBzaXplLgorCisgICAgICAgIEkgd2ls
bCBhbHNvIGZvbGxvdy11cCB0byB0cnkgYW5kIGdldCByaWQgb2YgYXMgbXVjaCB1c2FnZSBvZiBV
bmNoZWNrZWRMb2NrCisgICAgICAgIGFuZCBVbmNoZWNrZWRDb25kaXRpb24gYXMgcG9zc2libGUu
IEkgZGlkIG5vdCB0cnkgdmVyeSBoYXJkIGluIHRoaXMgcGF0Y2gKKyAgICAgICAgdG8gcmVkdWNl
IHBhdGNoIHNpemUuIAorCisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFw
aGljc0NvbnRleHRHTC5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUdyYXBoaWNzQ29udGV4
dEdMOjpwYWludFBpeGVsQnVmZmVyVG9JbWFnZUJ1ZmZlcik6CisgICAgICAgICogTmV0d29ya1By
b2Nlc3MvSW5kZXhlZERCL1dlYklEQlNlcnZlci5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9nbGliL0ljb25EYXRhYmFzZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvV0tQcmludGlu
Z1ZpZXcubW06CisgICAgICAgICgtW1dLUHJpbnRpbmdWaWV3IGtub3dzUGFnZVJhbmdlOl0pOgor
CiAyMDIxLTA1LTIzICBTYW0gV2VpbmlnICA8d2VpbmlnQGFwcGxlLmNvbT4KIAogICAgICAgICBD
b252ZXJ0IERlc3RpbmF0aW9uQ29sb3JTcGFjZSBmcm9tIGFuIGVudW0gdG8gY2xhc3Mgd3JhcHBp
bmcgYSBwbGF0Zm9ybSBjb2xvciBzcGFjZSAoQ0dDb2xvclNwYWNlUmVmIGZvciBDRyBwb3J0cywg
ZXRjLikKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvUGVyZkxv
Zy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9QZXJmTG9nLmgKaW5kZXggOGYy
NGU4ZmE4YTNlMWI2YmM5NmQ1OThiNWQwZjI1MTUwYTdmZjcyMS4uOTc2MGRmNjY1OGQyOTMzM2Fm
YTlhZGE4NzFhOTVjZTMyY2EwZDI0ZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2Fzc2VtYmxlci9QZXJmTG9nLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxl
ci9QZXJmTG9nLmgKQEAgLTUwLDcgKzUwLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkKiBtX21hcmtl
ciB7IG51bGxwdHIgfTsKICAgICB1aW50NjRfdCBtX2NvZGVJbmRleCB7IDAgfTsKICAgICBpbnQg
bV9mZCB7IC0xIH07Ci0gICAgTG9jayBtX2xvY2s7CisgICAgVW5jaGVja2VkTG9jayBtX2xvY2s7
CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9hc3NlbWJsZXIvdGVzdG1hc20uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2Vt
Ymxlci90ZXN0bWFzbS5jcHAKaW5kZXggY2Y2YWFkZDI5NTcyZjcwM2M4N2E4ODNjNjBlZjEwODY2
MmNjZjY0Mi4uZDQ0ODgwZjZmNDgxMWZjYzdhN2M3YTdlODJhNmIwOGVhY2UzMmQwOSAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci90ZXN0bWFzbS5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci90ZXN0bWFzbS5jcHAKQEAgLTE1Myw3ICsx
NTMsNyBAQCBuYW1lc3BhY2UgewogCiB1c2luZyBDUFVTdGF0ZSA9IFByb2JlOjpDUFVTdGF0ZTsK
IAotTG9jayBjcmFzaExvY2s7CitVbmNoZWNrZWRMb2NrIGNyYXNoTG9jazsKIAogdHlwZWRlZiBX
VEY6OkZ1bmN0aW9uPHZvaWQoQ0NhbGxIZWxwZXJzJik+IEdlbmVyYXRvcjsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDb21tb24uY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdDb21tb24uY3BwCmluZGV4IGE3YWJjNjQ3NDkzZDJiNjhkOThkYzJh
NDAxNGJjMzNjN2RhYjg1ZmIuLjg3NjNjM2ZkNTFmYjE2NTRjNjk1NDA0YTg1ZjY3YjBiOWU4Mzcw
NTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ29tbW9uLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NvbW1vbi5jcHAKQEAgLTM1LDcgKzM1
LDcgQEAgbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBERkcgewogCiBjb25zdCBjaGFyKiBjb25z
dCB0aWVyTmFtZSA9ICJERkcgIjsKIAotc3RhdGljIExvY2sgY3Jhc2hMb2NrOworc3RhdGljIFVu
Y2hlY2tlZExvY2sgY3Jhc2hMb2NrOwogCiB2b2lkIHN0YXJ0Q3Jhc2hpbmcoKQogewpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdUaHJlYWREYXRhLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1RocmVhZERhdGEuaAppbmRleCAzN2RmOWJkMTIxNTQ5Y2Rl
ZDExZTk5ZjQyZmZkMmM1MGYwMjUyZDg2Li41MjJiN2QyYjdjMzYxZThiOWQzODBjNzI4Y2ZiOGEw
NWIxNzQ2OWJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1RocmVh
ZERhdGEuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1RocmVhZERhdGEuaApA
QCAtNDcsNyArNDcsNyBAQCBwcml2YXRlOgogICAgIAogICAgIFdvcmtsaXN0KiBtX3dvcmtsaXN0
OwogICAgIFJlZlB0cjxBdXRvbWF0aWNUaHJlYWQ+IG1fdGhyZWFkOwotICAgIExvY2sgbV9yaWdo
dFRvUnVuOworICAgIFVuY2hlY2tlZExvY2sgbV9yaWdodFRvUnVuOwogICAgIFNhZmVwb2ludCog
bV9zYWZlcG9pbnQ7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1dvcmtsaXN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHV29ya2xpc3Qu
Y3BwCmluZGV4IDRkMjI4Y2ZlODdhZDk4MTkzNmMwN2MwOWQ0MWI3Mjc1MTU1OTRhOTEuLmQxNTdh
ZGY4NzZkYzg0NjgzYTg2YzA0NmVhMmJlZWNiYWI5OWE5MzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHV29ya2xpc3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHV29ya2xpc3QuY3BwCkBAIC0zOSw3ICszOSw3IEBAIG5hbWVzcGFjZSBKU0Mg
eyBuYW1lc3BhY2UgREZHIHsKIAogY2xhc3MgV29ya2xpc3Q6OlRocmVhZEJvZHkgZmluYWwgOiBw
dWJsaWMgQXV0b21hdGljVGhyZWFkIHsKIHB1YmxpYzoKLSAgICBUaHJlYWRCb2R5KGNvbnN0IEFi
c3RyYWN0TG9ja2VyJiBsb2NrZXIsIFdvcmtsaXN0JiB3b3JrbGlzdCwgVGhyZWFkRGF0YSYgZGF0
YSwgQm94PExvY2s+IGxvY2ssIFJlZjxBdXRvbWF0aWNUaHJlYWRDb25kaXRpb24+JiYgY29uZGl0
aW9uLCBpbnQgcmVsYXRpdmVQcmlvcml0eSkKKyAgICBUaHJlYWRCb2R5KGNvbnN0IEFic3RyYWN0
TG9ja2VyJiBsb2NrZXIsIFdvcmtsaXN0JiB3b3JrbGlzdCwgVGhyZWFkRGF0YSYgZGF0YSwgQm94
PFVuY2hlY2tlZExvY2s+IGxvY2ssIFJlZjxBdXRvbWF0aWNUaHJlYWRDb25kaXRpb24+JiYgY29u
ZGl0aW9uLCBpbnQgcmVsYXRpdmVQcmlvcml0eSkKICAgICAgICAgOiBBdXRvbWF0aWNUaHJlYWQo
bG9ja2VyLCBsb2NrLCBXVEZNb3ZlKGNvbmRpdGlvbiksIFRocmVhZFR5cGU6OkNvbXBpbGVyKQog
ICAgICAgICAsIG1fd29ya2xpc3Qod29ya2xpc3QpCiAgICAgICAgICwgbV9kYXRhKGRhdGEpCkBA
IC0xODEsNyArMTgxLDcgQEAgc3RhdGljIENTdHJpbmcgY3JlYXRlV29ya2xpc3ROYW1lKENTdHJp
bmcmJiB0aWVyTmFtZSkKIFdvcmtsaXN0OjpXb3JrbGlzdChDU3RyaW5nJiYgdGllck5hbWUpCiAg
ICAgOiBtX3RocmVhZE5hbWUoY3JlYXRlV29ya2xpc3ROYW1lKFdURk1vdmUodGllck5hbWUpKSkK
ICAgICAsIG1fcGxhbkVucXVldWVkKEF1dG9tYXRpY1RocmVhZENvbmRpdGlvbjo6Y3JlYXRlKCkp
Ci0gICAgLCBtX2xvY2soQm94PExvY2s+OjpjcmVhdGUoKSkKKyAgICAsIG1fbG9jayhCb3g8VW5j
aGVja2VkTG9jaz46OmNyZWF0ZSgpKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR1dvcmtsaXN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R1dvcmtsaXN0LmgKaW5kZXggMWNlMDJjMDdkOGIxMjgxOTRiY2MwM2M3ZjJhNTQxY2QwYTVmNDUy
OS4uNTc2ZTAzZTQ3ZTZlZjUwM2M2ZDAxMTZlY2ZiZGMwYThjNmM3NWM4OCAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdXb3JrbGlzdC5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHV29ya2xpc3QuaApAQCAtMTEwLDEwICsxMTAsMTAgQEAgcHJpdmF0
ZToKICAgICAvLyBiZSBjb21wbGV0ZWQuCiAgICAgVmVjdG9yPFJlZlB0cjxQbGFuPiwgMTY+IG1f
cmVhZHlQbGFuczsKICAgICBSZWY8QXV0b21hdGljVGhyZWFkQ29uZGl0aW9uPiBtX3BsYW5FbnF1
ZXVlZDsKLSAgICBDb25kaXRpb24gbV9wbGFuQ29tcGlsZWQ7CisgICAgVW5jaGVja2VkQ29uZGl0
aW9uIG1fcGxhbkNvbXBpbGVkOwogCi0gICAgTG9jayBtX3N1c3BlbnNpb25Mb2NrOwotICAgIEJv
eDxMb2NrPiBtX2xvY2s7CisgICAgVW5jaGVja2VkTG9jayBtX3N1c3BlbnNpb25Mb2NrOworICAg
IEJveDxVbmNoZWNrZWRMb2NrPiBtX2xvY2s7CiB9OwogCiBKU19FWFBPUlRfUFJJVkFURSB1bnNp
Z25lZCBzZXROdW1iZXJPZkRGR0NvbXBpbGVyVGhyZWFkcyh1bnNpZ25lZCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZHluYmVuY2guY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2R5bmJlbmNoLmNwcAppbmRleCA4ZjllNWViNzQxMDQ3NWZiN2M4YjA4NjkyNjIzMzRmZTJh
OTc4OTg1Li43OTUyNjExMGUyYTNhNjIwNTJkMTA5ZTliZGI4OGU5ZWVhYmZmZjU0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZHluYmVuY2guY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9keW5iZW5jaC5jcHAKQEAgLTQwLDcgKzQwLDcgQEAgdXNpbmcgbmFtZXNwYWNl
IEpTQzsKIAogbmFtZXNwYWNlIHsKIAotTG9jayBjcmFzaExvY2s7CitVbmNoZWNrZWRMb2NrIGNy
YXNoTG9jazsKIGNvbnN0IGNoYXIqIG5hbWVGaWx0ZXI7CiB1bnNpZ25lZCByZXF1ZXN0ZWRJdGVy
YXRpb25Db3VudDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvQmxv
Y2tEaXJlY3RvcnkuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0Jsb2NrRGlyZWN0b3J5
LmgKaW5kZXggZGFhMDNjNDdlZGY5ZDM2ZDE1NmJkNWQxYTY2MjFiZWU2YWFkZjhhZC4uOTAxNTg4
Yzk0MzljMzVkZmM4MDRhMGI3NTdjNWU1YjU2M2Y0NGE0ZSAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2hlYXAvQmxvY2tEaXJlY3RvcnkuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaGVhcC9CbG9ja0RpcmVjdG9yeS5oCkBAIC05Myw3ICs5Myw3IEBAIHB1YmxpYzoKIAog
ICAgIHZvaWQgdXBkYXRlUGVyY2VudGFnZU9mUGFnZWRPdXRQYWdlcyhXVEY6OlNpbXBsZVN0YXRz
Jik7CiAgICAgCi0gICAgTG9jayYgYml0dmVjdG9yTG9jaygpIHsgcmV0dXJuIG1fYml0dmVjdG9y
TG9jazsgfQorICAgIFVuY2hlY2tlZExvY2smIGJpdHZlY3RvckxvY2soKSB7IHJldHVybiBtX2Jp
dHZlY3RvckxvY2s7IH0KIAogI2RlZmluZSBCTE9DS19ESVJFQ1RPUllfQklUX0FDQ0VTU09SUyhs
b3dlckJpdE5hbWUsIGNhcGl0YWxCaXROYW1lKSAgICAgXAogICAgIGJvb2wgaXMgIyMgY2FwaXRh
bEJpdE5hbWUoY29uc3QgQWJzdHJhY3RMb2NrZXImLCBzaXplX3QgaW5kZXgpIGNvbnN0IHsgcmV0
dXJuIG1fYml0cy5pcyAjIyBjYXBpdGFsQml0TmFtZShpbmRleCk7IH0gXApAQCAtMTU1LDcgKzE1
NSw3IEBAIHByaXZhdGU6CiAgICAgLy8gTXV0YXRvciB1c2VzIHRoaXMgdG8gZ3VhcmQgcmVzaXpp
bmcgdGhlIGJpdHZlY3RvcnMuIFRob3NlIHRoaW5ncyBpbiB0aGUgR0MgdGhhdCBtYXkgcnVuCiAg
ICAgLy8gY29uY3VycmVudGx5IHRvIHRoZSBtdXRhdG9yIG11c3QgbG9jayB0aGlzIHdoZW4gYWNj
ZXNzaW5nIHRoZSBiaXR2ZWN0b3JzLgogICAgIEJsb2NrRGlyZWN0b3J5Qml0cyBtX2JpdHM7Ci0g
ICAgTG9jayBtX2JpdHZlY3RvckxvY2s7CisgICAgVW5jaGVja2VkTG9jayBtX2JpdHZlY3Rvckxv
Y2s7CiAgICAgTG9jayBtX2xvY2FsQWxsb2NhdG9yc0xvY2s7CiAgICAgQ2VsbEF0dHJpYnV0ZXMg
bV9hdHRyaWJ1dGVzOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9D
b2RlQmxvY2tTZXQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0NvZGVCbG9ja1NldC5o
CmluZGV4IGIwZGNiNmNjNzdjOWY5OWQzMDJjNzk5ZDk4ZTM5ZTk1M2U2YWY0MTkuLjg1NmNjMWJi
ZjhiZDJkMTdjZGNkY2E3ZDNiNDRjNzFmMmZhNzBiMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9oZWFwL0NvZGVCbG9ja1NldC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9oZWFwL0NvZGVCbG9ja1NldC5oCkBAIC01NCw3ICs1NCw3IEBAIHB1YmxpYzoKICAgICB2b2lk
IGNsZWFyQ3VycmVudGx5RXhlY3V0aW5nKCk7CiAKICAgICBib29sIGNvbnRhaW5zKGNvbnN0IEFi
c3RyYWN0TG9ja2VyJiwgdm9pZCogY2FuZGlkYXRlQ29kZUJsb2NrKTsKLSAgICBMb2NrJiBnZXRM
b2NrKCkgeyByZXR1cm4gbV9sb2NrOyB9CisgICAgVW5jaGVja2VkTG9jayYgZ2V0TG9jaygpIHsg
cmV0dXJuIG1fbG9jazsgfQogCiAgICAgLy8gVGhpcyBpcyBleHBlY3RlZCB0byBydW4gb25seSB3
aGVuIHdlJ3JlIG5vdCBhZGRpbmcgdG8gdGhlIHNldCBmb3Igbm93LiBJZgogICAgIC8vIHRoaXMg
bmVlZHMgdG8gcnVuIGNvbmN1cnJlbnRseSBpbiB0aGUgZnV0dXJlLCB3ZSdsbCBuZWVkIHRvIGxv
Y2sgYXJvdW5kIHRoaXMuCkBAIC03OCw3ICs3OCw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAg
SGFzaFNldDxDb2RlQmxvY2sqPiBtX2NvZGVCbG9ja3M7CiAgICAgSGFzaFNldDxDb2RlQmxvY2sq
PiBtX2N1cnJlbnRseUV4ZWN1dGluZzsKLSAgICBMb2NrIG1fbG9jazsKKyAgICBVbmNoZWNrZWRM
b2NrIG1fbG9jazsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVh
cC9IZWFwLmNwcAppbmRleCA4YmM4NmQyY2E3NTE1YjRiOGUyZjc2NGRlOTBlMmE2YzI0NzI2Njkx
Li44NjFhNDAyZTUwZDBiY2MwZmVhZTYwMzA0N2NmMzVjMmVjZGM0ZGU3IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaGVhcC9IZWFwLmNwcApAQCAtMzAyLDcgKzMwMiw3IEBAIEhlYXA6OkhlYXAoVk0mIHZt
LCBIZWFwVHlwZSBoZWFwVHlwZSkKICAgICAsIG1fc2hhcmVkQ29sbGVjdG9yTWFya1N0YWNrKG1h
a2VVbmlxdWU8TWFya1N0YWNrQXJyYXk+KCkpCiAgICAgLCBtX3NoYXJlZE11dGF0b3JNYXJrU3Rh
Y2sobWFrZVVuaXF1ZTxNYXJrU3RhY2tBcnJheT4oKSkKICAgICAsIG1faGVscGVyQ2xpZW50KCZo
ZWFwSGVscGVyUG9vbCgpKQotICAgICwgbV90aHJlYWRMb2NrKEJveDxMb2NrPjo6Y3JlYXRlKCkp
CisgICAgLCBtX3RocmVhZExvY2soQm94PFVuY2hlY2tlZExvY2s+OjpjcmVhdGUoKSkKICAgICAs
IG1fdGhyZWFkQ29uZGl0aW9uKEF1dG9tYXRpY1RocmVhZENvbmRpdGlvbjo6Y3JlYXRlKCkpCiB7
CiAgICAgbV93b3JsZFN0YXRlLnN0b3JlKDApOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2hlYXAvSGVhcC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5oCmlu
ZGV4IDdhNTNlMDUxNWQwNjk2NTNkMDRmYjliYWMzNTU4ZDdlODFkOTVmMmMuLjY4ZDkwNzRmZGYz
ZDhlYThmNDg3YjA2NDg3YjgwZDdhMmIxYjgwMzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9oZWFwL0hlYXAuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFw
LmgKQEAgLTcyMiw4ICs3MjIsOCBAQCBwcml2YXRlOgogICAgIEF0b21pYzx1bnNpZ25lZD4gbV93
b3JsZFN0YXRlOwogICAgIGJvb2wgbV93b3JsZElzU3RvcHBlZCB7IGZhbHNlIH07CiAgICAgTG9j
ayBtX3Zpc2l0UmFjZUxvY2s7Ci0gICAgTG9jayBtX21hcmtpbmdNdXRleDsKLSAgICBDb25kaXRp
b24gbV9tYXJraW5nQ29uZGl0aW9uVmFyaWFibGU7CisgICAgVW5jaGVja2VkTG9jayBtX21hcmtp
bmdNdXRleDsKKyAgICBVbmNoZWNrZWRDb25kaXRpb24gbV9tYXJraW5nQ29uZGl0aW9uVmFyaWFi
bGU7CiAKICAgICBNb25vdG9uaWNUaW1lIG1fYmVmb3JlR0M7CiAgICAgTW9ub3RvbmljVGltZSBt
X2FmdGVyR0M7CkBAIC03NDYsNyArNzQ2LDcgQEAgcHJpdmF0ZToKIAogICAgIHVpbnQ2NF90IG1f
bXV0YXRvckV4ZWN1dGlvblZlcnNpb24geyAwIH07CiAgICAgdWludDY0X3QgbV9waGFzZVZlcnNp
b24geyAwIH07Ci0gICAgQm94PExvY2s+IG1fdGhyZWFkTG9jazsKKyAgICBCb3g8VW5jaGVja2Vk
TG9jaz4gbV90aHJlYWRMb2NrOwogICAgIFJlZjxBdXRvbWF0aWNUaHJlYWRDb25kaXRpb24+IG1f
dGhyZWFkQ29uZGl0aW9uOyAvLyBUaGUgbXV0YXRvciBtdXN0IG5vdCB3YWl0IG9uIHRoaXMuIEl0
IHdvdWxkIGNhdXNlIGEgZGVhZGxvY2suCiAgICAgUmVmUHRyPEF1dG9tYXRpY1RocmVhZD4gbV90
aHJlYWQ7CiAKQEAgLTc2OCw4ICs3NjgsOCBAQCBwcml2YXRlOgogI2VuZGlmCiAKICAgICBib29s
IG1fcGFyYWxsZWxNYXJrZXJzU2hvdWxkRXhpdCB7IGZhbHNlIH07Ci0gICAgTG9jayBtX2NvbGxl
Y3RDb250aW51b3VzbHlMb2NrOwotICAgIENvbmRpdGlvbiBtX2NvbGxlY3RDb250aW51b3VzbHlD
b25kaXRpb247CisgICAgVW5jaGVja2VkTG9jayBtX2NvbGxlY3RDb250aW51b3VzbHlMb2NrOwor
ICAgIFVuY2hlY2tlZENvbmRpdGlvbiBtX2NvbGxlY3RDb250aW51b3VzbHlDb25kaXRpb247CiB9
OwogCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9oZWFwL01hcmtlZFNwYWNlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYXJrZWRT
cGFjZS5oCmluZGV4IDViZTUxZGU3ZTRjZjk5YjNkNmY0Nzc3N2YwMGI2ZDJhOTdhYjgwNGYuLjI2
OGI5NzBhNTk4YjQyNWI5ZmNlMzY3ZGIyZWJhZWE3MWViY2MzMWIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hcmtlZFNwYWNlLmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2hlYXAvTWFya2VkU3BhY2UuaApAQCAtMTY4LDcgKzE2OCw3IEBAIHB1YmxpYzoKICAg
ICAKICAgICBCbG9ja0RpcmVjdG9yeSogZmlyc3REaXJlY3RvcnkoKSBjb25zdCB7IHJldHVybiBt
X2RpcmVjdG9yaWVzLmZpcnN0KCk7IH0KICAgICAKLSAgICBMb2NrJiBkaXJlY3RvcnlMb2NrKCkg
eyByZXR1cm4gbV9kaXJlY3RvcnlMb2NrOyB9CisgICAgVW5jaGVja2VkTG9jayYgZGlyZWN0b3J5
TG9jaygpIHsgcmV0dXJuIG1fZGlyZWN0b3J5TG9jazsgfQogICAgIHZvaWQgYWRkQmxvY2tEaXJl
Y3RvcnkoY29uc3QgQWJzdHJhY3RMb2NrZXImLCBCbG9ja0RpcmVjdG9yeSopOwogICAgIAogICAg
IC8vIFdoZW4gdGhpcyBpcyB0cnVlIGl0IG1lYW5zIHRoYXQgd2UgaGF2ZSBmbGlwcGVkIGJ1dCB0
aGUgbWFyayBiaXRzIGhhdmVuJ3QgY29udmVyZ2VkIHlldC4KQEAgLTIxNCw3ICsyMTQsNyBAQCBw
cml2YXRlOgogICAgIEhlYXBWZXJzaW9uIG1fbmV3bHlBbGxvY2F0ZWRWZXJzaW9uIHsgaW5pdGlh
bFZlcnNpb24gfTsKICAgICBib29sIG1faXNJdGVyYXRpbmcgeyBmYWxzZSB9OwogICAgIGJvb2wg
bV9pc01hcmtpbmcgeyBmYWxzZSB9OwotICAgIExvY2sgbV9kaXJlY3RvcnlMb2NrOworICAgIFVu
Y2hlY2tlZExvY2sgbV9kaXJlY3RvcnlMb2NrOwogICAgIE1hcmtlZEJsb2NrU2V0IG1fYmxvY2tz
OwogICAgIAogICAgIFNlbnRpbmVsTGlua2VkTGlzdDxXZWFrU2V0LCBCYXNpY1Jhd1NlbnRpbmVs
Tm9kZTxXZWFrU2V0Pj4gbV9hY3RpdmVXZWFrU2V0czsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9oZWFwL01hcmtpbmdDb25zdHJhaW50U29sdmVyLmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaGVhcC9NYXJraW5nQ29uc3RyYWludFNvbHZlci5oCmluZGV4IDhlNGYyZjRkZGYz
MWNmYzgwNzFjZjNiZWNiNmU1ZTI3OGFlY2IwMWUuLjM1MGU1NTY2MjQyODRkYWJlNDczMTdmYzgw
ZDJmZGQ2YjlhNTg3N2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01h
cmtpbmdDb25zdHJhaW50U29sdmVyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAv
TWFya2luZ0NvbnN0cmFpbnRTb2x2ZXIuaApAQCAtOTUsOCArOTUsOCBAQCBwcml2YXRlOgogICAg
IEJpdFZlY3RvciBtX2V4ZWN1dGVkOwogICAgIERlcXVlPFRhc2tXaXRoQ29uc3RyYWludCwgMzI+
IG1fdG9FeGVjdXRlSW5QYXJhbGxlbDsKICAgICBWZWN0b3I8dW5zaWduZWQsIDMyPiBtX3RvRXhl
Y3V0ZVNlcXVlbnRpYWxseTsKLSAgICBMb2NrIG1fbG9jazsKLSAgICBDb25kaXRpb24gbV9jb25k
aXRpb247CisgICAgVW5jaGVja2VkTG9jayBtX2xvY2s7CisgICAgVW5jaGVja2VkQ29uZGl0aW9u
IG1fY29uZGl0aW9uOwogICAgIGJvb2wgbV9waWNrTmV4dElzU3RpbGxBY3RpdmUgeyB0cnVlIH07
CiAgICAgdW5zaWduZWQgbV9udW1UaHJlYWRzVGhhdE1heVByb2R1Y2VXb3JrIHsgMCB9OwogICAg
IFZlY3RvcjxWaXNpdENvdW50ZXIsIDE2PiBtX3Zpc2l0Q291bnRlcnM7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9TbG90VmlzaXRvci5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaGVhcC9TbG90VmlzaXRvci5jcHAKaW5kZXggZjlhMTgzMjNjNzI4MzM0NzE5OGQ5
Njg4OWRjNTlmNzQzNzhmMjA3Mi4uYWI3MzJjMjRlYzUwZTg5MDliNDkxZWM5YjE2OWFmMzBmZWM4
OTMzNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvU2xvdFZpc2l0b3Iu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1Nsb3RWaXNpdG9yLmNwcApAQCAt
NDM2LDcgKzQzNiw3IEBAIHZvaWQgU2xvdFZpc2l0b3I6OmRvbmF0ZUtub3duUGFyYWxsZWwoTWFy
a1N0YWNrQXJyYXkmIGZyb20sIE1hcmtTdGFja0FycmF5JiB0bykKIAogICAgIC8vIElmIHdlJ3Jl
IGNvbnRlbmRpbmcgb24gdGhlIGxvY2ssIGJlIGNvbnNlcnZhdGl2ZSBhbmQgYXNzdW1lIHRoYXQg
YW5vdGhlcgogICAgIC8vIHRocmVhZCBpcyBhbHJlYWR5IGRvbmF0aW5nLgotICAgIHN0ZDo6dW5p
cXVlX2xvY2s8TG9jaz4gbG9jayhtX2hlYXAubV9tYXJraW5nTXV0ZXgsIHN0ZDo6dHJ5X3RvX2xv
Y2spOworICAgIHN0ZDo6dW5pcXVlX2xvY2s8VW5jaGVja2VkTG9jaz4gbG9jayhtX2hlYXAubV9t
YXJraW5nTXV0ZXgsIHN0ZDo6dHJ5X3RvX2xvY2spOwogICAgIGlmICghbG9jay5vd25zX2xvY2so
KSkKICAgICAgICAgcmV0dXJuOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aGVhcC9TbG90VmlzaXRvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvU2xvdFZpc2l0
b3IuaAppbmRleCA0MjMzM2FmM2UwMjAyNjdlNTM3ZTA5M2U0YjA2MzMyMjFkZTNlNzNhLi5kNTVk
YjYwMTdkZTczY2Y2YzJmMWNjY2Y0Y2YzY2Q1NDM4Mzk2NTM5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaGVhcC9TbG90VmlzaXRvci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9oZWFwL1Nsb3RWaXNpdG9yLmgKQEAgLTE2MSw3ICsxNjEsNyBAQCBwdWJsaWM6CiAKICAg
ICBib29sIG11dGF0b3JJc1N0b3BwZWQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX211dGF0b3JJ
c1N0b3BwZWQ7IH0KICAgICAKLSAgICBMb2NrJiByaWdodFRvUnVuKCkgeyByZXR1cm4gbV9yaWdo
dFRvUnVuOyB9CisgICAgVW5jaGVja2VkTG9jayYgcmlnaHRUb1J1bigpIHsgcmV0dXJuIG1fcmln
aHRUb1J1bjsgfQogICAgIAogICAgIHZvaWQgdXBkYXRlTXV0YXRvcklzU3RvcHBlZChjb25zdCBB
YnN0cmFjdExvY2tlciYpOwogICAgIHZvaWQgdXBkYXRlTXV0YXRvcklzU3RvcHBlZCgpOwpAQCAt
MjMyLDcgKzIzMiw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX211dGF0b3JJc1N0b3BwZWQgeyBm
YWxzZSB9OwogICAgIGJvb2wgbV9jYW5PcHRpbWl6ZUZvclN0b3BwZWRNdXRhdG9yIHsgZmFsc2Ug
fTsKICAgICBib29sIG1faXNJblBhcmFsbGVsTW9kZSB7IGZhbHNlIH07Ci0gICAgTG9jayBtX3Jp
Z2h0VG9SdW47CisgICAgVW5jaGVja2VkTG9jayBtX3JpZ2h0VG9SdW47CiAgICAgCiAgICAgLy8g
UHV0IHBhZGRpbmcgaGVyZSB0byBtaXRpZ2F0ZSBmYWxzZSBzaGFyaW5nIGJldHdlZW4gbXVsdGlw
bGUgU2xvdFZpc2l0b3JzLgogICAgIGNoYXIgcGFkZGluZ1s2NF07CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3JlbW90ZS9zb2NrZXQvUmVtb3RlSW5zcGVjdG9y
U29ja2V0RW5kcG9pbnQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3Rl
L3NvY2tldC9SZW1vdGVJbnNwZWN0b3JTb2NrZXRFbmRwb2ludC5oCmluZGV4IDI1YmMxOGNiNjhk
ODNkMmZiZmFiYmNkZjZkMzU0MTgyNzViOTYyMTguLjI0YTNlNThmYzM2N2IzZjE5Mjk1MGZjNjhi
ZDdlZjkyZTg2OGUxZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0
b3IvcmVtb3RlL3NvY2tldC9SZW1vdGVJbnNwZWN0b3JTb2NrZXRFbmRwb2ludC5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL3NvY2tldC9SZW1vdGVJbnNwZWN0
b3JTb2NrZXRFbmRwb2ludC5oCkBAIC0xODIsNyArMTgyLDcgQEAgcHJvdGVjdGVkOgogICAgIGJv
b2wgaXNMaXN0ZW5pbmcoQ29ubmVjdGlvbklEKTsKICAgICBpbnQgcG9sbGluZ1RpbWVvdXQoKTsK
IAotICAgIG11dGFibGUgTG9jayBtX2Nvbm5lY3Rpb25zTG9jazsKKyAgICBtdXRhYmxlIFVuY2hl
Y2tlZExvY2sgbV9jb25uZWN0aW9uc0xvY2s7CiAgICAgSGFzaE1hcDxDb25uZWN0aW9uSUQsIHN0
ZDo6dW5pcXVlX3B0cjxDbGllbnRDb25uZWN0aW9uPj4gbV9jbGllbnRzOwogICAgIEhhc2hNYXA8
Q29ubmVjdGlvbklELCBzdGQ6OnVuaXF1ZV9wdHI8TGlzdGVuZXJDb25uZWN0aW9uPj4gbV9saXN0
ZW5lcnM7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvRXhlY3V0YWJs
ZUFsbG9jYXRvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0V4ZWN1dGFibGVBbGxv
Y2F0b3IuY3BwCmluZGV4IDI3OWUwNzVlNGNiNjE3NzI5YzZlMmQ1ZmVmZjk4NjI3YzcwNTJmMDEu
LjYxOTQ1NWIxZjZkYmFjYTRhN2RkYWM3Y2JmNmQ5YzkyZmExNmNhMmQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvRXhlY3V0YWJsZUFsbG9jYXRvci5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9FeGVjdXRhYmxlQWxsb2NhdG9yLmNwcApAQCAtNDg1LDcg
KzQ4NSw3IEBAIHB1YmxpYzoKICNlbmRpZiAvLyBFTkFCTEUoSlVNUF9JU0xBTkRTKQogICAgIH0K
IAotICAgIExvY2smIGdldExvY2soKSB7IHJldHVybiBtX2xvY2s7IH0KKyAgICBVbmNoZWNrZWRM
b2NrJiBnZXRMb2NrKCkgeyByZXR1cm4gbV9sb2NrOyB9CiAKICAgICAvLyBOb24gYXRvbWljCiAg
ICAgc2l6ZV90IGJ5dGVzQWxsb2NhdGVkKCkgCkBAIC01NDcsNyArNTQ3LDcgQEAgcHVibGljOgog
ICAgIH0KIAogI2lmIEVOQUJMRShKVU1QX0lTTEFORFMpCi0gICAgdm9pZCBoYW5kbGVXaWxsQmVS
ZWxlYXNlZChjb25zdCBMb2NrSG9sZGVyJiBsb2NrZXIsIE1ldGFBbGxvY2F0b3JIYW5kbGUmIGhh
bmRsZSkKKyAgICB2b2lkIGhhbmRsZVdpbGxCZVJlbGVhc2VkKGNvbnN0IFVuY2hlY2tlZExvY2tI
b2xkZXImIGxvY2tlciwgTWV0YUFsbG9jYXRvckhhbmRsZSYgaGFuZGxlKQogICAgIHsKICAgICAg
ICAgaWYgKG1faXNsYW5kc0Zvckp1bXBTb3VyY2VMb2NhdGlvbi5pc0VtcHR5KCkpCiAgICAgICAg
ICAgICByZXR1cm47CkBAIC01OTksNyArNTk5LDcgQEAgcHJpdmF0ZToKICAgICAgICAgcmV0dXJu
IHJlc3VsdDsKICAgICB9CiAKLSAgICB2b2lkIGZyZWVKdW1wSXNsYW5kcyhjb25zdCBMb2NrSG9s
ZGVyJiwgSXNsYW5kcyogaXNsYW5kcykKKyAgICB2b2lkIGZyZWVKdW1wSXNsYW5kcyhjb25zdCBV
bmNoZWNrZWRMb2NrSG9sZGVyJiwgSXNsYW5kcyogaXNsYW5kcykKICAgICB7CiAgICAgICAgIGZv
ciAoQ29kZUxvY2F0aW9uTGFiZWw8RXhlY3V0YWJsZU1lbW9yeVB0clRhZz4ganVtcElzbGFuZCA6
IGlzbGFuZHMtPmp1bXBJc2xhbmRzKSB7CiAgICAgICAgICAgICB1aW50cHRyX3QgdW50YWdnZWRK
dW1wSXNsYW5kID0gYml0d2lzZV9jYXN0PHVpbnRwdHJfdD4oanVtcElzbGFuZC5kYXRhTG9jYXRp
b24oKSk7CkBAIC02MTAsMTQgKzYxMCwxNCBAQCBwcml2YXRlOgogICAgICAgICBpc2xhbmRzLT5q
dW1wSXNsYW5kcy5jbGVhcigpOwogICAgIH0KIAotICAgIHZvaWQgZnJlZUlzbGFuZHMoY29uc3Qg
TG9ja0hvbGRlciYgbG9ja2VyLCBJc2xhbmRzKiBpc2xhbmRzKQorICAgIHZvaWQgZnJlZUlzbGFu
ZHMoY29uc3QgVW5jaGVja2VkTG9ja0hvbGRlciYgbG9ja2VyLCBJc2xhbmRzKiBpc2xhbmRzKQog
ICAgIHsKICAgICAgICAgZnJlZUp1bXBJc2xhbmRzKGxvY2tlciwgaXNsYW5kcyk7CiAgICAgICAg
IG1faXNsYW5kc0Zvckp1bXBTb3VyY2VMb2NhdGlvbi5yZW1vdmUoaXNsYW5kcyk7CiAgICAgICAg
IGRlbGV0ZSBpc2xhbmRzOwogICAgIH0KIAotICAgIHZvaWQqIGlzbGFuZEZvckp1bXBMb2NhdGlv
bihjb25zdCBMb2NrSG9sZGVyJiBsb2NrZXIsIHVpbnRwdHJfdCBqdW1wTG9jYXRpb24sIHVpbnRw
dHJfdCB0YXJnZXQsIGJvb2wgY29uY3VycmVudGx5KQorICAgIHZvaWQqIGlzbGFuZEZvckp1bXBM
b2NhdGlvbihjb25zdCBVbmNoZWNrZWRMb2NrSG9sZGVyJiBsb2NrZXIsIHVpbnRwdHJfdCBqdW1w
TG9jYXRpb24sIHVpbnRwdHJfdCB0YXJnZXQsIGJvb2wgY29uY3VycmVudGx5KQogICAgIHsKICAg
ICAgICAgSXNsYW5kcyogaXNsYW5kcyA9IG1faXNsYW5kc0Zvckp1bXBTb3VyY2VMb2NhdGlvbi5m
aW5kRXhhY3QoYml0d2lzZV9jYXN0PHZvaWQqPihqdW1wTG9jYXRpb24pKTsKICAgICAgICAgaWYg
KGlzbGFuZHMpIHsKQEAgLTc0Niw3ICs3NDYsNyBAQCBwcml2YXRlOgogICAgICAgICAgICAgcmV0
dXJuIGlzbGFuZHNQZXJQYWdlOwogICAgICAgICB9CiAKLSAgICAgICAgdm9pZCByZWxlYXNlKGNv
bnN0IExvY2tIb2xkZXImIGxvY2tlciwgTWV0YUFsbG9jYXRvckhhbmRsZSYgaGFuZGxlKSBmaW5h
bAorICAgICAgICB2b2lkIHJlbGVhc2UoY29uc3QgVW5jaGVja2VkTG9ja0hvbGRlciYgbG9ja2Vy
LCBNZXRhQWxsb2NhdG9ySGFuZGxlJiBoYW5kbGUpIGZpbmFsCiAgICAgICAgIHsKICAgICAgICAg
ICAgIG1fZml4ZWRBbGxvY2F0b3IuaGFuZGxlV2lsbEJlUmVsZWFzZWQobG9ja2VyLCBoYW5kbGUp
OwogICAgICAgICAgICAgQmFzZTo6cmVsZWFzZShsb2NrZXIsIGhhbmRsZSk7CkBAIC04NDcsNyAr
ODQ3LDcgQEAgcHJpdmF0ZToKICAgICB9OwogI2VuZGlmIC8vIEVOQUJMRShKVU1QX0lTTEFORFMp
CiAKLSAgICBMb2NrIG1fbG9jazsKKyAgICBVbmNoZWNrZWRMb2NrIG1fbG9jazsKICAgICBQYWdl
UmVzZXJ2YXRpb24gbV9yZXNlcnZhdGlvbjsKICNpZiBFTkFCTEUoSlVNUF9JU0xBTkRTKQogICAg
IHN0ZDo6YXJyYXk8UmVnaW9uQWxsb2NhdG9yLCBtYXhOdW1iZXJPZlJlZ2lvbnM+IG1fYWxsb2Nh
dG9yczsKQEAgLTk2MSw3ICs5NjEsNyBAQCBib29sIEV4ZWN1dGFibGVBbGxvY2F0b3I6OmlzVmFs
aWRFeGVjdXRhYmxlTWVtb3J5KGNvbnN0IEFic3RyYWN0TG9ja2VyJiBsb2NrZXIsCiAgICAgcmV0
dXJuIGFsbG9jYXRvci0+aXNJbkFsbG9jYXRlZE1lbW9yeShsb2NrZXIsIGFkZHJlc3MpOwogfQog
Ci1Mb2NrJiBFeGVjdXRhYmxlQWxsb2NhdG9yOjpnZXRMb2NrKCkgY29uc3QKK1VuY2hlY2tlZExv
Y2smIEV4ZWN1dGFibGVBbGxvY2F0b3I6OmdldExvY2soKSBjb25zdAogewogICAgIEZpeGVkVk1Q
b29sRXhlY3V0YWJsZUFsbG9jYXRvciogYWxsb2NhdG9yID0gZ19qc2NDb25maWcuZml4ZWRWTVBv
b2xFeGVjdXRhYmxlQWxsb2NhdG9yOwogICAgIGlmICghYWxsb2NhdG9yKQpAQCAtMTAzOCw3ICsx
MDM4LDcgQEAgdm9pZCBkdW1wSklUTWVtb3J5KGNvbnN0IHZvaWQqIGRzdCwgY29uc3Qgdm9pZCog
c3JjLCBzaXplX3Qgc2l6ZSkKICAgICBzdGF0aWMgdWludDhfdCogYnVmZmVyOwogICAgIHN0YXRp
YyBjb25zdGV4cHIgc2l6ZV90IGJ1ZmZlclNpemUgPSBmaXhlZEV4ZWN1dGFibGVNZW1vcnlQb29s
U2l6ZTsKICAgICBzdGF0aWMgc2l6ZV90IG9mZnNldCA9IDA7Ci0gICAgc3RhdGljIExvY2sgZHVt
cEpJVE1lbW9yeUxvY2s7CisgICAgc3RhdGljIFVuY2hlY2tlZExvY2sgZHVtcEpJVE1lbW9yeUxv
Y2s7CiAgICAgc3RhdGljIGJvb2wgbmVlZHNUb0ZsdXNoID0gZmFsc2U7CiAgICAgc3RhdGljIGF1
dG8gZmx1c2ggPSBbXShjb25zdCBBYnN0cmFjdExvY2tlciYpIHsKICAgICAgICAgaWYgKGZkID09
IC0xKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0V4ZWN1dGFibGVB
bGxvY2F0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvRXhlY3V0YWJsZUFsbG9jYXRv
ci5oCmluZGV4IDRmZmM0ODBlNDI0MDRkYzY2YjVlMjUxNDU3NzJiYmNiMDlkNWYzNjguLjAzNzk5
ZTQyN2IwOTdkNjRmZDk4Y2I4Zjk1YTY4YTkyNTE2ZjhhNTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvRXhlY3V0YWJsZUFsbG9jYXRvci5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvRXhlY3V0YWJsZUFsbG9jYXRvci5oCkBAIC03Nyw3ICs3Nyw3IEBAIHB1
YmxpYzoKIAogICAgIHN0YXRpYyBzaXplX3QgY29tbWl0dGVkQnl0ZUNvdW50KCkgeyByZXR1cm4g
MDsgfQogCi0gICAgTG9jayYgZ2V0TG9jaygpIGNvbnN0CisgICAgVW5jaGVja2VkTG9jayYgZ2V0
TG9jaygpIGNvbnN0CiAgICAgewogICAgICAgICByZXR1cm4gbV9sb2NrOwogICAgIH0KQEAgLTg3
LDcgKzg3LDcgQEAgcHJvdGVjdGVkOgogICAgIH5FeGVjdXRhYmxlQWxsb2NhdG9yQmFzZSgpID0g
ZGVmYXVsdDsKIAogcHJpdmF0ZToKLSAgICBtdXRhYmxlIExvY2sgbV9sb2NrOworICAgIG11dGFi
bGUgVW5jaGVja2VkTG9jayBtX2xvY2s7CiB9OwogCiAjaWYgRU5BQkxFKEpJVCkKQEAgLTE3Niw3
ICsxNzYsNyBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgc2l6ZV90IGNvbW1pdHRlZEJ5dGVDb3Vu
dCgpOwogCi0gICAgTG9jayYgZ2V0TG9jaygpIGNvbnN0OworICAgIFVuY2hlY2tlZExvY2smIGdl
dExvY2soKSBjb25zdDsKIAogI2lmIEVOQUJMRShKVU1QX0lTTEFORFMpCiAgICAgSlNfRVhQT1JU
X1BSSVZBVEUgdm9pZCogZ2V0SnVtcElzbGFuZFRvKHZvaWQqIGZyb20sIHZvaWQqIG5ld0Rlc3Rp
bmF0aW9uKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUV29ya2xp
c3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRXb3JrbGlzdC5jcHAKaW5kZXgg
YTcwNTJlNzlmMGE3NDM2N2ZlM2ZkYzVhM2NmNmQ1MzhlNjkzMjAwZS4uYTk2ODk3NGJkNmE5ODIz
YjkwYWFkYzQ0YTQxNGE1MzdhOTAzY2Y3YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9KSVRXb3JrbGlzdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9K
SVRXb3JrbGlzdC5jcHAKQEAgLTE2NSw3ICsxNjUsNyBAQCBwcml2YXRlOgogfTsKIAogSklUV29y
a2xpc3Q6OkpJVFdvcmtsaXN0KCkKLSAgICA6IG1fbG9jayhCb3g8TG9jaz46OmNyZWF0ZSgpKQor
ICAgIDogbV9sb2NrKEJveDxVbmNoZWNrZWRMb2NrPjo6Y3JlYXRlKCkpCiAgICAgLCBtX2NvbmRp
dGlvbihBdXRvbWF0aWNUaHJlYWRDb25kaXRpb246OmNyZWF0ZSgpKQogewogICAgIExvY2tlciBs
b2NrZXIgeyAqbV9sb2NrIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0pJVFdvcmtsaXN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFdvcmtsaXN0LmgK
aW5kZXggYjlmNzdjYTFiM2RkZWZhNjE0OGIxMzY5NDJkNTdhMDlkNjVlYTdhMy4uYTcyYTgzODcw
YTAwODJmY2QzNDQ5NTI5MGVhNTBlYTE0MGQ4OWYyZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9KSVRXb3JrbGlzdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvSklUV29ya2xpc3QuaApAQCAtNzEsNyArNzEsNyBAQCBwcml2YXRlOgogICAgIFBsYW5zIG1f
cGxhbnM7CiAgICAgSGFzaFNldDxDb2RlQmxvY2sqPiBtX3BsYW5uZWQ7CiAgICAgCi0gICAgQm94
PExvY2s+IG1fbG9jazsKKyAgICBCb3g8VW5jaGVja2VkTG9jaz4gbV9sb2NrOwogICAgIFJlZjxB
dXRvbWF0aWNUaHJlYWRDb25kaXRpb24+IG1fY29uZGl0aW9uOyAvLyBXZSB1c2UgT25lIFRydWUg
Q29uZGl0aW9uIGZvciBldmVyeXRoaW5nIGJlY2F1c2UgdGhhdCdzIGVhc2llci4KICAgICBSZWZQ
dHI8QXV0b21hdGljVGhyZWFkPiBtX3RocmVhZDsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qc2MuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAKaW5k
ZXggZDNhMjgxMTI3MDgwNTgxZjBlZDE1YjRmMzg1ODg1NTBjZjNlZTZlZS4uYWQxNTVlNmU4Mjdj
YzBkM2NhZjdjNTcyNjVmMGRiYzMyNTFiNTYxZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2pzYy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAKQEAgLTI1
Nyw4ICsyNTcsOCBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIGZyaWVuZCBjbGFzcyBXb3JrZXI7
CiAgICAgCi0gICAgTG9jayBtX2xvY2s7Ci0gICAgQ29uZGl0aW9uIG1fY29uZGl0aW9uOworICAg
IFVuY2hlY2tlZExvY2sgbV9sb2NrOworICAgIFVuY2hlY2tlZENvbmRpdGlvbiBtX2NvbmRpdGlv
bjsKICAgICBTZW50aW5lbExpbmtlZExpc3Q8V29ya2VyLCBCYXNpY1Jhd1NlbnRpbmVsTm9kZTxX
b3JrZXI+PiBtX3dvcmtlcnM7CiAgICAgRGVxdWU8U3RyaW5nPiBtX3JlcG9ydHM7CiB9OwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVyRGF0YWJhc2Uu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlckRhdGFiYXNlLmgKaW5k
ZXggYWU3ODVlNGUzZGNiN2MzZTA4MDI4N2JiNDU5OTdhMTMyYzI4NWRkMy4uMmE4NzhjOTQ2YjY1
MzQwZTc5MTM5YmUyMjM3NWM1MDYxNmE5YjJlMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVyRGF0YWJhc2UuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcHJvZmlsZXIvUHJvZmlsZXJEYXRhYmFzZS5oCkBAIC04OCw3ICs4OCw3IEBAIHByaXZh
dGU6CiAgICAgYm9vbCBtX3Nob3VsZFNhdmVBdEV4aXQ7CiAgICAgQ1N0cmluZyBtX2F0RXhpdFNh
dmVGaWxlbmFtZTsKICAgICBEYXRhYmFzZSogbV9uZXh0UmVnaXN0ZXJlZERhdGFiYXNlOwotICAg
IExvY2sgbV9sb2NrOworICAgIFVuY2hlY2tlZExvY2sgbV9sb2NrOwogfTsKIAogfSB9IC8vIG5h
bWVzcGFjZSBKU0M6OlByb2ZpbGVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9Db25jdXJyZW50SlNMb2NrLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9Db25jdXJyZW50SlNMb2NrLmgKaW5kZXggYWEyNzNiYWRiZWZhNzM3YTBlYWE1MzRmYmViYTlm
NTAxZmRiODYyNy4uODYzMTE3ZDg5MTVjNDNlNGE2NzcyMDgyYjliYzU1YjM5YTJkMWNhMSAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29uY3VycmVudEpTTG9jay5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbmN1cnJlbnRKU0xvY2suaApA
QCAtMzIsOCArMzIsOCBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAotdXNpbmcgQ29uY3VycmVudEpT
TG9jayA9IExvY2s7Ci11c2luZyBDb25jdXJyZW50SlNMb2NrZXJJbXBsID0gTG9ja0hvbGRlcjsK
K3VzaW5nIENvbmN1cnJlbnRKU0xvY2sgPSBVbmNoZWNrZWRMb2NrOwordXNpbmcgQ29uY3VycmVu
dEpTTG9ja2VySW1wbCA9IFVuY2hlY2tlZExvY2tIb2xkZXI7CiAKIHN0YXRpY19hc3NlcnQoc2l6
ZW9mKENvbmN1cnJlbnRKU0xvY2spID09IDEsICJSZWdhcmRsZXNzIG9mIHN0YXR1cyBvZiBjb25j
dXJyZW50IEpTIGZsYWcsIHNpemUgb2YgQ29udXJyZW50SlNMb2NrIGlzIGFsd2F5cyBvbmUgYnl0
ZS4iKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGVmZXJy
ZWRXb3JrVGltZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RlZmVycmVkV29y
a1RpbWVyLmgKaW5kZXggNmM5OGNhYWY1ODFiMWNmYzAxYWExOTExNzE0YjNkYjI3YmRmMDIxNy4u
ZWYwZWFjNzMwYjQyMmY3MGMyMGE2OGI1YzllOTY0ODY4NzZhMDEzZiAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGVmZXJyZWRXb3JrVGltZXIuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EZWZlcnJlZFdvcmtUaW1lci5oCkBAIC03Miw3ICs3
Miw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgRGVmZXJyZWRXb3JrVGltZXIoVk0mKTsKIAot
ICAgIExvY2sgbV90YXNrTG9jazsKKyAgICBVbmNoZWNrZWRMb2NrIG1fdGFza0xvY2s7CiAgICAg
Ym9vbCBtX3J1blRhc2tzIHsgdHJ1ZSB9OwogICAgIGJvb2wgbV9zaG91bGRTdG9wUnVuTG9vcFdo
ZW5BbGxUaWNrZXRzRmluaXNoIHsgZmFsc2UgfTsKICAgICBib29sIG1fY3VycmVudGx5UnVubmlu
Z1Rhc2sgeyBmYWxzZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNMb2NrLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0xvY2suaAppbmRl
eCAyZTAyYmEzZDY0MDVlZTcyZGQ0YWRlMGJhNjdjYjk1OGYxYTY0NjBiLi5hOTkxZGY1MGIxYzM3
MjI2ZTVmMTI5OTBlNDBiNjdiMTBiMTk5YzI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0xvY2suaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0xvY2suaApAQCAtMTM4LDcgKzEzOCw3IEBAIHByaXZhdGU6CiAgICAgdW5zaWduZWQgZHJv
cEFsbExvY2tzKERyb3BBbGxMb2NrcyopOwogICAgIHZvaWQgZ3JhYkFsbExvY2tzKERyb3BBbGxM
b2NrcyosIHVuc2lnbmVkIGxvY2tDb3VudCk7CiAKLSAgICBMb2NrIG1fbG9jazsKKyAgICBVbmNo
ZWNrZWRMb2NrIG1fbG9jazsKICAgICBib29sIG1faXNXZWJUaHJlYWRBd2FyZSB7IGZhbHNlIH07
CiAgICAgLy8gV2UgY2Fubm90IG1ha2UgbV9vd25lclRocmVhZCBhbiBvcHRpb25hbCAoaW5zdGVh
ZCBvZiBwYWlyaW5nIGl0IHdpdGggYW4gZXhwbGljaXQKICAgICAvLyBtX2hhc093bmVyVGhyZWFk
KSBiZWNhdXNlIGN1cnJlbnRUaHJlYWRJc0hvbGRpbmdMb2NrKCkgbWF5IGJlIGNhbGxlZCBmcm9t
IGEKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NhbXBsaW5nUHJv
ZmlsZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2FtcGxpbmdQcm9maWxl
ci5jcHAKaW5kZXggZDcxZjNlYzE5ZmYzNjc0Njc3MDdmZTUyYjg4MDI0YzU2MjdhMTRhZC4uZTUz
MTEyZDE4OGY3Y2NiOTBkMGFlNzg0MTQyNTAxZDI0NWM1ZTgzNSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2FtcGxpbmdQcm9maWxlci5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2FtcGxpbmdQcm9maWxlci5jcHAKQEAgLTc1LDcgKzc1
LDcgQEAgQUxXQVlTX0lOTElORSBzdGF0aWMgdm9pZCByZXBvcnRTdGF0cygpCiAKIGNsYXNzIEZy
YW1lV2Fsa2VyIHsKIHB1YmxpYzoKLSAgICBGcmFtZVdhbGtlcihWTSYgdm0sIENhbGxGcmFtZSog
Y2FsbEZyYW1lLCBjb25zdCBBYnN0cmFjdExvY2tlciYgY29kZUJsb2NrU2V0TG9ja2VyLCBjb25z
dCBBYnN0cmFjdExvY2tlciYgbWFjaGluZVRocmVhZHNMb2NrZXIsIGNvbnN0IE9wdGlvbmFsPExv
Y2tIb2xkZXI+JiB3YXNtQ2FsbGVlTG9ja2VyKQorICAgIEZyYW1lV2Fsa2VyKFZNJiB2bSwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUsIGNvbnN0IEFic3RyYWN0TG9ja2VyJiBjb2RlQmxvY2tTZXRMb2Nr
ZXIsIGNvbnN0IEFic3RyYWN0TG9ja2VyJiBtYWNoaW5lVGhyZWFkc0xvY2tlciwgY29uc3QgT3B0
aW9uYWw8VW5jaGVja2VkTG9ja0hvbGRlcj4mIHdhc21DYWxsZWVMb2NrZXIpCiAgICAgICAgIDog
bV92bSh2bSkKICAgICAgICAgLCBtX2NhbGxGcmFtZShjYWxsRnJhbWUpCiAgICAgICAgICwgbV9l
bnRyeUZyYW1lKHZtLnRvcEVudHJ5RnJhbWUpCkBAIC0yMDEsNyArMjAxLDcgQEAgcHJvdGVjdGVk
OgogICAgIEVudHJ5RnJhbWUqIG1fZW50cnlGcmFtZTsKICAgICBjb25zdCBBYnN0cmFjdExvY2tl
ciYgbV9jb2RlQmxvY2tTZXRMb2NrZXI7CiAgICAgY29uc3QgQWJzdHJhY3RMb2NrZXImIG1fbWFj
aGluZVRocmVhZHNMb2NrZXI7Ci0gICAgY29uc3QgT3B0aW9uYWw8TG9ja0hvbGRlcj4mIG1fd2Fz
bUNhbGxlZUxvY2tlcjsKKyAgICBjb25zdCBPcHRpb25hbDxVbmNoZWNrZWRMb2NrSG9sZGVyPiYg
bV93YXNtQ2FsbGVlTG9ja2VyOwogICAgIGJvb2wgbV9iYWlsaW5nT3V0IHsgZmFsc2UgfTsKICAg
ICBzaXplX3QgbV9kZXB0aCB7IDAgfTsKIH07CkBAIC0yMTAsNyArMjEwLDcgQEAgY2xhc3MgQ0Zy
YW1lV2Fsa2VyIDogcHVibGljIEZyYW1lV2Fsa2VyIHsKIHB1YmxpYzoKICAgICB0eXBlZGVmIEZy
YW1lV2Fsa2VyIEJhc2U7CiAKLSAgICBDRnJhbWVXYWxrZXIoVk0mIHZtLCB2b2lkKiBtYWNoaW5l
RnJhbWUsIENhbGxGcmFtZSogY2FsbEZyYW1lLCBjb25zdCBBYnN0cmFjdExvY2tlciYgY29kZUJs
b2NrU2V0TG9ja2VyLCBjb25zdCBBYnN0cmFjdExvY2tlciYgbWFjaGluZVRocmVhZHNMb2NrZXIs
IGNvbnN0IE9wdGlvbmFsPExvY2tIb2xkZXI+JiB3YXNtQ2FsbGVlTG9ja2VyKQorICAgIENGcmFt
ZVdhbGtlcihWTSYgdm0sIHZvaWQqIG1hY2hpbmVGcmFtZSwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUs
IGNvbnN0IEFic3RyYWN0TG9ja2VyJiBjb2RlQmxvY2tTZXRMb2NrZXIsIGNvbnN0IEFic3RyYWN0
TG9ja2VyJiBtYWNoaW5lVGhyZWFkc0xvY2tlciwgY29uc3QgT3B0aW9uYWw8VW5jaGVja2VkTG9j
a0hvbGRlcj4mIHdhc21DYWxsZWVMb2NrZXIpCiAgICAgICAgIDogQmFzZSh2bSwgY2FsbEZyYW1l
LCBjb2RlQmxvY2tTZXRMb2NrZXIsIG1hY2hpbmVUaHJlYWRzTG9ja2VyLCB3YXNtQ2FsbGVlTG9j
a2VyKQogICAgICAgICAsIG1fbWFjaGluZUZyYW1lKG1hY2hpbmVGcmFtZSkKICAgICB7CkBAIC0z
NTMsNyArMzUzLDcgQEAgdm9pZCBTYW1wbGluZ1Byb2ZpbGVyOjp0YWtlU2FtcGxlKGNvbnN0IEFi
c3RyYWN0TG9ja2VyJiwgU2Vjb25kcyYgc3RhY2tUcmFjZVByb2MKICAgICAgICAgTG9ja2VyIG1h
Y2hpbmVUaHJlYWRzTG9ja2VyIHsgbV92bS5oZWFwLm1hY2hpbmVUaHJlYWRzKCkuZ2V0TG9jaygp
IH07CiAgICAgICAgIExvY2tlciBjb2RlQmxvY2tTZXRMb2NrZXIgeyBtX3ZtLmhlYXAuY29kZUJs
b2NrU2V0KCkuZ2V0TG9jaygpIH07CiAgICAgICAgIExvY2tlciBleGVjdXRhYmxlQWxsb2NhdG9y
TG9ja2VyIHsgRXhlY3V0YWJsZUFsbG9jYXRvcjo6c2luZ2xldG9uKCkuZ2V0TG9jaygpIH07Ci0g
ICAgICAgIE9wdGlvbmFsPExvY2tIb2xkZXI+IHdhc21DYWxsZWVzTG9ja2VyOworICAgICAgICBP
cHRpb25hbDxVbmNoZWNrZWRMb2NrSG9sZGVyPiB3YXNtQ2FsbGVlc0xvY2tlcjsKICNpZiBFTkFC
TEUoV0VCQVNTRU1CTFkpCiAgICAgICAgIGlmIChXYXNtOjppc1N1cHBvcnRlZCgpKQogICAgICAg
ICAgICAgd2FzbUNhbGxlZXNMb2NrZXIgPSBMb2NrZXIgeyBXYXNtOjpDYWxsZWVSZWdpc3RyeTo6
c2luZ2xldG9uKCkuZ2V0TG9jaygpIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9TYW1wbGluZ1Byb2ZpbGVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9TYW1wbGluZ1Byb2ZpbGVyLmgKaW5kZXggNjUxNzA3YTk0NmYxNjFkZWE2Zjk4OGFiNWRk
ZTQ4YjMyYzc1YzdlZC4uOWYwNTcyNmE0ZTgwNGZjYjM1MzczNmEyZWQxZDY0MGI3NjRjOTRkYyAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2FtcGxpbmdQcm9maWxl
ci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NhbXBsaW5nUHJvZmlsZXIu
aApAQCAtMTcyLDcgKzE3Miw3IEBAIHB1YmxpYzoKICAgICB2b2lkIG5vdGljZVZNRW50cnkoKTsK
ICAgICB2b2lkIHNodXRkb3duKCk7CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVmlzaXRvcj4gdm9p
ZCB2aXNpdChWaXNpdG9yJik7Ci0gICAgTG9jayYgZ2V0TG9jaygpIHsgcmV0dXJuIG1fbG9jazsg
fQorICAgIFVuY2hlY2tlZExvY2smIGdldExvY2soKSB7IHJldHVybiBtX2xvY2s7IH0KICAgICB2
b2lkIHNldFRpbWluZ0ludGVydmFsKFNlY29uZHMgaW50ZXJ2YWwpIHsgbV90aW1pbmdJbnRlcnZh
bCA9IGludGVydmFsOyB9CiAgICAgSlNfRVhQT1JUX1BSSVZBVEUgdm9pZCBzdGFydCgpOwogICAg
IHZvaWQgc3RhcnQoY29uc3QgQWJzdHJhY3RMb2NrZXImKTsKQEAgLTIwMCw3ICsyMDAsNyBAQCBw
cml2YXRlOgogICAgIHZvaWQgdGltZXJMb29wKCk7CiAgICAgdm9pZCB0YWtlU2FtcGxlKGNvbnN0
IEFic3RyYWN0TG9ja2VyJiwgU2Vjb25kcyYgc3RhY2tUcmFjZVByb2Nlc3NpbmdUaW1lKTsKIAot
ICAgIExvY2sgbV9sb2NrOworICAgIFVuY2hlY2tlZExvY2sgbV9sb2NrOwogICAgIGJvb2wgbV9p
c1BhdXNlZDsKICAgICBib29sIG1faXNTaHV0RG93bjsKICAgICBib29sIG1fbmVlZHNSZXBvcnRB
dEV4aXQgeyBmYWxzZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvVk0uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmgKaW5kZXggZjhlOGQz
ZjU0N2U0ZmRlNjEzNGMzOGE4NjJkMmYyNWQ2MmEzMzFlMi4uYTFhYjIyMzIxNjk4ZTU3MDAyOTk0
NzM1MTRiZmEwNDFmODhkY2M1NCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvVk0uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5oCkBAIC0x
MDA0LDcgKzEwMDQsNyBAQCBwdWJsaWM6CiAjaWYgRU5BQkxFKFlBUlJfSklUX0FMTF9QQVJFTlNf
RVhQUkVTU0lPTlMpCiAgICAgc3RhdGljIGNvbnN0ZXhwciBzaXplX3QgcGF0dGVybkNvbnRleHRC
dWZmZXJTaXplID0gODE5MjsgLy8gU3BhY2UgYWxsb2NhdGVkIHRvIHNhdmUgbmVzdGVkIHBhcmVu
dGhlc2lzIGNvbnRleHQKICAgICBVbmlxdWVBcnJheTxjaGFyPiBtX3JlZ0V4cFBhdHRlcm5Db250
ZXhCdWZmZXI7Ci0gICAgTG9jayBtX3JlZ0V4cFBhdHRlcm5Db250ZXh0TG9jazsKKyAgICBVbmNo
ZWNrZWRMb2NrIG1fcmVnRXhwUGF0dGVybkNvbnRleHRMb2NrOwogICAgIGNoYXIqIGFjcXVpcmVS
ZWdFeHBQYXR0ZXJuQ29udGV4QnVmZmVyKCk7CiAgICAgdm9pZCByZWxlYXNlUmVnRXhwUGF0dGVy
bkNvbnRleEJ1ZmZlcigpOwogI2Vsc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1ZNVHJhcHMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk1U
cmFwcy5jcHAKaW5kZXggOWI0NDA2YjExNTYzZGFmNTczOWViMzM4YWY4MjU5YTVlMThhNDE1OS4u
NTdkYjMxOWNlY2ZiNzM3MTk3ZTI2ZDljZGQyZGI3YTU4YmIwOGM2NyAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk1UcmFwcy5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvVk1UcmFwcy5jcHAKQEAgLTE2Myw3ICsxNjMsNyBAQCB2b2lkIFZN
VHJhcHM6OmludmFsaWRhdGVDb2RlQmxvY2tzT25TdGFjayhDYWxsRnJhbWUqIHRvcENhbGxGcmFt
ZSkKICAgICBpbnZhbGlkYXRlQ29kZUJsb2Nrc09uU3RhY2soY29kZUJsb2NrU2V0TG9ja2VyLCB0
b3BDYWxsRnJhbWUpOwogfQogICAgIAotdm9pZCBWTVRyYXBzOjppbnZhbGlkYXRlQ29kZUJsb2Nr
c09uU3RhY2soTG9ja2VyPExvY2s+JiwgQ2FsbEZyYW1lKiB0b3BDYWxsRnJhbWUpCit2b2lkIFZN
VHJhcHM6OmludmFsaWRhdGVDb2RlQmxvY2tzT25TdGFjayhMb2NrZXI8VW5jaGVja2VkTG9jaz4m
LCBDYWxsRnJhbWUqIHRvcENhbGxGcmFtZSkKIHsKICAgICBpZiAoIW1fbmVlZFRvSW52YWxpZGF0
ZWRDb2RlQmxvY2tzKQogICAgICAgICByZXR1cm47CkBAIC00MzcsNyArNDM3LDcgQEAgdm9pZCBW
TVRyYXBzOjp1bmRvRGVmZXJUZXJtaW5hdGlvblNsb3coRGVmZXJBY3Rpb24gZGVmZXJBY3Rpb24p
CiB9CiAKIFZNVHJhcHM6OlZNVHJhcHMoKQotICAgIDogbV9sb2NrKEJveDxMb2NrPjo6Y3JlYXRl
KCkpCisgICAgOiBtX2xvY2soQm94PFVuY2hlY2tlZExvY2s+OjpjcmVhdGUoKSkKICAgICAsIG1f
Y29uZGl0aW9uKEF1dG9tYXRpY1RocmVhZENvbmRpdGlvbjo6Y3JlYXRlKCkpCiB7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTVRyYXBzLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9WTVRyYXBzLmgKaW5kZXggMGFmNTliYzk1YzE2ZjkyZDM0
ZTU0YTYyMmIyNDJiODdjNTg0ZmQ2NS4uNWQxNWM5MmY3MDQxNzUxZDgwNGU0YzU3MmE1NTMwMTA3
YmZlNDJkYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk1UcmFw
cy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNVHJhcHMuaApAQCAtMjM2
LDcgKzIzNiw3IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIGludmFsaWRhdGVDb2RlQmxvY2tzT25T
dGFjaygpOwogICAgIHZvaWQgaW52YWxpZGF0ZUNvZGVCbG9ja3NPblN0YWNrKENhbGxGcmFtZSog
dG9wQ2FsbEZyYW1lKTsKLSAgICB2b2lkIGludmFsaWRhdGVDb2RlQmxvY2tzT25TdGFjayhMb2Nr
ZXI8TG9jaz4mIGNvZGVCbG9ja1NldExvY2tlciwgQ2FsbEZyYW1lKiB0b3BDYWxsRnJhbWUpOwor
ICAgIHZvaWQgaW52YWxpZGF0ZUNvZGVCbG9ja3NPblN0YWNrKExvY2tlcjxVbmNoZWNrZWRMb2Nr
PiYgY29kZUJsb2NrU2V0TG9ja2VyLCBDYWxsRnJhbWUqIHRvcENhbGxGcmFtZSk7CiAKICAgICB2
b2lkIGFkZFNpZ25hbFNlbmRlcihTaWduYWxTZW5kZXIqKTsKICAgICB2b2lkIHJlbW92ZVNpZ25h
bFNlbmRlcihTaWduYWxTZW5kZXIqKTsKQEAgLTI0Nyw3ICsyNDcsNyBAQCBwcml2YXRlOgogCiAg
ICAgc3RhdGljIGNvbnN0ZXhwciBCaXRGaWVsZCBOZWVkRXhjZXB0aW9uSGFuZGxpbmdNYXNrID0g
figxIDw8IE5lZWRFeGNlcHRpb25IYW5kbGluZyk7CiAKLSAgICBCb3g8TG9jaz4gbV9sb2NrOwor
ICAgIEJveDxVbmNoZWNrZWRMb2NrPiBtX2xvY2s7CiAgICAgUmVmPEF1dG9tYXRpY1RocmVhZENv
bmRpdGlvbj4gbV9jb25kaXRpb247CiAgICAgQXRvbWljPEJpdEZpZWxkPiBtX3RyYXBCaXRzIHsg
MCB9OwogICAgIGJvb2wgbV9uZWVkVG9JbnZhbGlkYXRlZENvZGVCbG9ja3MgeyBmYWxzZSB9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xzL0Z1bmN0aW9uT3ZlcnJpZGVz
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdG9vbHMvRnVuY3Rpb25PdmVycmlkZXMuaAppbmRl
eCA4ODI5NjcwMDczZGRmOWQ2ZDQ5Y2VlZjIwOGI2MzhjNzEzZjRlZDY5Li43NmE4MTNkNDhiM2Q0
NTM1ODhkNTQzYWY4MzYwMzMxYzk4MmJmNDQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvdG9vbHMvRnVuY3Rpb25PdmVycmlkZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvdG9vbHMvRnVuY3Rpb25PdmVycmlkZXMuaApAQCAtNjEsNyArNjEsNyBAQCBwcml2YXRlOgog
ICAgIHZvaWQgY2xlYXIoY29uc3QgQWJzdHJhY3RMb2NrZXImKSB7IG1fZW50cmllcy5jbGVhcigp
OyB9CiAKICAgICBIYXNoTWFwPFN0cmluZywgU3RyaW5nPiBtX2VudHJpZXM7Ci0gICAgTG9jayBt
X2xvY2s7CisgICAgVW5jaGVja2VkTG9jayBtX2xvY2s7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBK
U0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90b29scy9WTUluc3BlY3Rvci5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdG9vbHMvVk1JbnNwZWN0b3IuY3BwCmluZGV4IGU0
OWRhZTFlMWJjOWRkNzBjOWViMjAyZDg3NzA5ZmNjNmNhNjcwOTAuLjFmZjcyZDQ2ZDk2NDM5NDRh
Nzk0YmE0M2Y0YjYwYjhiMTE0NDhhODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS90b29scy9WTUluc3BlY3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xz
L1ZNSW5zcGVjdG9yLmNwcApAQCAtODksNyArODksNyBAQCBhdXRvIFZNSW5zcGVjdG9yOjpsb2Nr
KFNlY29uZHMgdGltZW91dCkgLT4gRXhwZWN0ZWQ8TG9ja2VyLCBFcnJvcj4KIH0KIAogI2lmIEVO
QUJMRShKSVQpCi1zdGF0aWMgYm9vbCBlbnN1cmVJc1NhZmVUb0xvY2soTG9jayYgbG9jaykKK3N0
YXRpYyBib29sIGVuc3VyZUlzU2FmZVRvTG9jayhVbmNoZWNrZWRMb2NrJiBsb2NrKQogewogICAg
IHVuc2lnbmVkIG1heFJldHJpZXMgPSAyOwogICAgIHVuc2lnbmVkIHRyeUNvdW50ID0gMDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90b29scy9WTUluc3BlY3Rvci5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xzL1ZNSW5zcGVjdG9yLmgKaW5kZXggODQ1NjMxYzY0ODE2
OWQ3YTU1MWNlYjc4ZDRlYWUwM2I1NTY1ODljYS4uZGY0OTBkZTI4NjJhYTE3OTlmZGY0Mzc3N2Vk
ZTFkZWZhZGEwMTlkNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xzL1ZN
SW5zcGVjdG9yLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xzL1ZNSW5zcGVjdG9y
LmgKQEAgLTQzLDE0ICs0MywxNCBAQCBwdWJsaWM6CiAgICAgICAgIFRpbWVkT3V0CiAgICAgfTsK
IAotICAgIHR5cGVkZWYgV1RGOjpMb2NrZXI8TG9jaz4gTG9ja2VyOworICAgIHR5cGVkZWYgV1RG
OjpMb2NrZXI8VW5jaGVja2VkTG9jaz4gTG9ja2VyOwogCiAgICAgc3RhdGljIFZNSW5zcGVjdG9y
JiBpbnN0YW5jZSgpOwogCiAgICAgdm9pZCBhZGQoVk0qKTsKICAgICB2b2lkIHJlbW92ZShWTSop
OwogCi0gICAgTG9jayYgZ2V0TG9jaygpIHsgcmV0dXJuIG1fbG9jazsgfQorICAgIFVuY2hlY2tl
ZExvY2smIGdldExvY2soKSB7IHJldHVybiBtX2xvY2s7IH0KIAogICAgIGVudW0gY2xhc3MgRnVu
Y3RvclN0YXR1cyB7CiAgICAgICAgIENvbnRpbnVlLApAQCAtMTAzLDcgKzEwMyw3IEBAIHByaXZh
dGU6CiAgICAgICAgIH0KICAgICB9CiAKLSAgICBMb2NrIG1fbG9jazsKKyAgICBVbmNoZWNrZWRM
b2NrIG1fbG9jazsKICAgICBEb3VibHlMaW5rZWRMaXN0PFZNPiBtX3ZtTGlzdDsKIH07CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21DYWxsZWVSZWdpc3RyeS5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUNhbGxlZVJlZ2lzdHJ5LmgKaW5kZXgg
MTIxMzQxMWI3ZmMxMDY0YTk4MmM3NThiM2UwMzI4YTg0MTQ3OGU3My4uZGM5MjJjZjNlYTg3MTcw
MmNhNTIyYzIzMmY1NjJmMTc2NjExMzhkOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3dhc20vV2FzbUNhbGxlZVJlZ2lzdHJ5LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3dhc20vV2FzbUNhbGxlZVJlZ2lzdHJ5LmgKQEAgLTQxLDcgKzQxLDcgQEAgcHVibGljOgogICAg
IHN0YXRpYyB2b2lkIGluaXRpYWxpemUoKTsKICAgICBzdGF0aWMgQ2FsbGVlUmVnaXN0cnkmIHNp
bmdsZXRvbigpOwogCi0gICAgTG9jayYgZ2V0TG9jaygpIHsgcmV0dXJuIG1fbG9jazsgfQorICAg
IFVuY2hlY2tlZExvY2smIGdldExvY2soKSB7IHJldHVybiBtX2xvY2s7IH0KIAogICAgIHZvaWQg
cmVnaXN0ZXJDYWxsZWUoQ2FsbGVlKiBjYWxsZWUpCiAgICAgewpAQCAtNzAsNyArNzAsNyBAQCBw
dWJsaWM6CiAgICAgQ2FsbGVlUmVnaXN0cnkoKSA9IGRlZmF1bHQ7CiAKIHByaXZhdGU6Ci0gICAg
TG9jayBtX2xvY2s7CisgICAgVW5jaGVja2VkTG9jayBtX2xvY2s7CiAgICAgSGFzaFNldDxDYWxs
ZWUqPiBtX2NhbGxlZVNldDsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93YXNtL1dhc21QbGFuLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtUGxhbi5o
CmluZGV4IGFiOTRmOWU4OTAzODk2ZmQzMTE2YzYyNjkyYWQ3NmRkYzk0ZjVkNjEuLmM4MWYzYTZj
OWY1ODZiOTFjMTdiNTk2NDc1MDE4ZWNjYTIzZmFkMWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS93YXNtL1dhc21QbGFuLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vV2FzbVBsYW4uaApAQCAtOTQsOCArOTQsOCBAQCBwcm90ZWN0ZWQ6CiAKICAgICBTdHJpbmcg
bV9lcnJvck1lc3NhZ2U7CiAgICAgTWVtb3J5TW9kZSBtX21vZGUgeyBNZW1vcnlNb2RlOjpCb3Vu
ZHNDaGVja2luZyB9OwotICAgIExvY2sgbV9sb2NrOwotICAgIENvbmRpdGlvbiBtX2NvbXBsZXRl
ZDsKKyAgICBVbmNoZWNrZWRMb2NrIG1fbG9jazsKKyAgICBVbmNoZWNrZWRDb25kaXRpb24gbV9j
b21wbGV0ZWQ7CiB9OwogCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNt
L1dhc21TdHJlYW1pbmdDb21waWxlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2Fz
bVN0cmVhbWluZ0NvbXBpbGVyLmgKaW5kZXggODZhMTBkYzQ0NWI5NGZmOTIzYjY2Y2JkNjFhNzEx
NjBlNzM2NmNlNS4uOTU3Zjc1ZmZmZmYwYzBmM2JlYTA0NDBkZWZhOWRjODhlMGEyMzk0YiAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVN0cmVhbWluZ0NvbXBpbGVy
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVN0cmVhbWluZ0NvbXBpbGVy
LmgKQEAgLTcwLDcgKzcwLDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1fZWFnZXJGYWlsZWQgeyBm
YWxzZSB9OwogICAgIGJvb2wgbV9maW5hbGl6ZWQgeyBmYWxzZSB9OwogICAgIGJvb2wgbV90aHJl
YWRlZENvbXBpbGF0aW9uU3RhcnRlZCB7IGZhbHNlIH07Ci0gICAgTG9jayBtX2xvY2s7CisgICAg
VW5jaGVja2VkTG9jayBtX2xvY2s7CiAgICAgdW5zaWduZWQgbV9yZW1haW5pbmdDb21waWxhdGlv
blJlcXVlc3RzIHsgMCB9OwogICAgIEpTUHJvbWlzZSogbV9wcm9taXNlOyAvLyBSYXcgcG9pbnRl
ciwgYnV0IGhlbGQgYnkgRGVmZXJyZWRXb3JrVGltZXIuCiAgICAgUmVmPFdhc206Ok1vZHVsZUlu
Zm9ybWF0aW9uPiBtX2luZm87CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9XYXNtVGh1bmtzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtVGh1bmtzLmgK
aW5kZXggYzIzNWNmZTYyOTVlNjY5YWU1YTgwZWU4ZjI1MmVhNmNhMjQzMWI4My4uZGU0Y2EzY2Nm
MGFiZTU0ZGQxMGRlMTgyMjZmNzgxN2MwNDc4MWYzYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3dhc20vV2FzbVRodW5rcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
YXNtL1dhc21UaHVua3MuaApAQCAtNTUsNyArNTUsNyBAQCBwcml2YXRlOgogICAgIFRodW5rcygp
ID0gZGVmYXVsdDsKIAogICAgIEhhc2hNYXA8VGh1bmtHZW5lcmF0b3IsIE1hY3JvQXNzZW1ibGVy
Q29kZVJlZjxKSVRUaHVua1B0clRhZz4+IG1fc3R1YnM7Ci0gICAgTG9jayBtX2xvY2s7CisgICAg
VW5jaGVja2VkTG9jayBtX2xvY2s7CiB9OwogCiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6V2FzbQpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVdvcmtsaXN0LmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21Xb3JrbGlzdC5jcHAKaW5kZXggNWJhZDBk
OTBhNTYyZTI1ZGRlODE3YjU4MmMwNjA2NjU2YzkwNmViYS4uMzg5OGVjYWI0YzA4ODdlMjVhMGEz
NDgxYjQxMWI4ZjY3YzFlYmMyOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vV2FzbVdvcmtsaXN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNt
V29ya2xpc3QuY3BwCkBAIC0xMjgsNyArMTI4LDcgQEAgcHJpdmF0ZToKICAgICB9CiAKIHB1Ymxp
YzoKLSAgICBDb25kaXRpb24gc3luY2hyb25pemU7CisgICAgVW5jaGVja2VkQ29uZGl0aW9uIHN5
bmNocm9uaXplOwogICAgIFdvcmtsaXN0JiB3b3JrbGlzdDsKICAgICAvLyBXZSBjYW4gb25seSBt
b2RpZnkgZWxlbWVudCB3aGVuIGhvbGRpbmcgdGhlIGxvY2suIEEgc3luY2hyb25vdXMgY29tcGls
ZSBtaWdodCBsb29rIGF0IGVhY2ggdGhyZWFkJ3MgdGFza3MgaW4gb3JkZXIgdG8gYm9vc3QgdGhl
IHByaW9yaXR5LgogICAgIFF1ZXVlRWxlbWVudCBlbGVtZW50OwpAQCAtMjEzLDcgKzIxMyw3IEBA
IHZvaWQgV29ya2xpc3Q6OnN0b3BBbGxQbGFuc0ZvckNvbnRleHQoQ29udGV4dCYgY29udGV4dCkK
IH0KIAogV29ya2xpc3Q6OldvcmtsaXN0KCkKLSAgICA6IG1fbG9jayhCb3g8TG9jaz46OmNyZWF0
ZSgpKQorICAgIDogbV9sb2NrKEJveDxVbmNoZWNrZWRMb2NrPjo6Y3JlYXRlKCkpCiAgICAgLCBt
X3BsYW5FbnF1ZXVlZChBdXRvbWF0aWNUaHJlYWRDb25kaXRpb246OmNyZWF0ZSgpKQogewogICAg
IHVuc2lnbmVkIG51bWJlck9mQ29tcGlsYXRpb25UaHJlYWRzID0gT3B0aW9uczo6dXNlQ29uY3Vy
cmVudEpJVCgpID8ga2VyblRDU01Bd2FyZU51bWJlck9mUHJvY2Vzc29yQ29yZXMoKSA6IDE7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtV29ya2xpc3QuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21Xb3JrbGlzdC5oCmluZGV4IDU2ZDc5YTBlOTg5
YTYwMmYyMTMzZDAzMDkwZmRiY2M2MzdjOTU2MzkuLjQ1YTZmYmI2Y2Y5YTg1M2MyODFmZGJiYWNk
NTZmYmVkZDFmYTU5Y2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dh
c21Xb3JrbGlzdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21Xb3JrbGlz
dC5oCkBAIC04NCw3ICs4NCw3IEBAIHByaXZhdGU6CiAgICAgICAgIHJldHVybiBsZWZ0LnByaW9y
aXR5ID4gcmlnaHQucHJpb3JpdHk7CiAgICAgfQogCi0gICAgQm94PExvY2s+IG1fbG9jazsKKyAg
ICBCb3g8VW5jaGVja2VkTG9jaz4gbV9sb2NrOwogICAgIFJlZjxBdXRvbWF0aWNUaHJlYWRDb25k
aXRpb24+IG1fcGxhbkVucXVldWVkOwogICAgIC8vIFRlY2huaWNhbGx5LCB0aGlzIGNvdWxkIG92
ZXJmbG93IGJ1dCB0aGF0J3MgdW5saWtlbHkuIEV2ZW4gaWYgaXQgZGlkLCB3ZSB3aWxsIGp1c3Qg
Y29tcGlsZSB0aGluZ3Mgb2YgdGhlIHNhbWUKICAgICAvLyBQcmlvcml0eSBpdCB0aGUgd3Jvbmcg
b3JkZXIsIHdoaWNoIGlzbid0IHdyb25nLCBqdXN0IHN1Ym9wdGltYWwuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV1RGL3d0Zi9BdXRvbWF0aWNUaHJlYWQuY3BwIGIvU291cmNlL1dURi93dGYvQXV0b21h
dGljVGhyZWFkLmNwcAppbmRleCBmNGVhNzhkMTNlMWNkZGI2MTliODIyODY4ZDMzYzcyN2M5ZjJm
OThiLi4zYzViZTUxM2MyNjNjYThiNGRhNmI3YzI2YzZmODM3MzlkYTMxZTBjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV1RGL3d0Zi9BdXRvbWF0aWNUaHJlYWQuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3Rm
L0F1dG9tYXRpY1RocmVhZC5jcHAKQEAgLTc3LDEyICs3NywxMiBAQCB2b2lkIEF1dG9tYXRpY1Ro
cmVhZENvbmRpdGlvbjo6bm90aWZ5QWxsKGNvbnN0IEFic3RyYWN0TG9ja2VyJiBsb2NrZXIpCiAg
ICAgfQogfQogCi12b2lkIEF1dG9tYXRpY1RocmVhZENvbmRpdGlvbjo6d2FpdChMb2NrJiBsb2Nr
KQordm9pZCBBdXRvbWF0aWNUaHJlYWRDb25kaXRpb246OndhaXQoVW5jaGVja2VkTG9jayYgbG9j
aykKIHsKICAgICBtX2NvbmRpdGlvbi53YWl0KGxvY2spOwogfQogCi1ib29sIEF1dG9tYXRpY1Ro
cmVhZENvbmRpdGlvbjo6d2FpdEZvcihMb2NrJiBsb2NrLCBTZWNvbmRzIHRpbWUpCitib29sIEF1
dG9tYXRpY1RocmVhZENvbmRpdGlvbjo6d2FpdEZvcihVbmNoZWNrZWRMb2NrJiBsb2NrLCBTZWNv
bmRzIHRpbWUpCiB7CiAgICAgcmV0dXJuIG1fY29uZGl0aW9uLndhaXRGb3IobG9jaywgdGltZSk7
CiB9CkBAIC0xMDQsMTIgKzEwNCwxMiBAQCBib29sIEF1dG9tYXRpY1RocmVhZENvbmRpdGlvbjo6
Y29udGFpbnMoY29uc3QgQWJzdHJhY3RMb2NrZXImLCBBdXRvbWF0aWNUaHJlYWQqCiAgICAgcmV0
dXJuIG1fdGhyZWFkcy5jb250YWlucyh0aHJlYWQpOwogfQogCi1BdXRvbWF0aWNUaHJlYWQ6OkF1
dG9tYXRpY1RocmVhZChjb25zdCBBYnN0cmFjdExvY2tlciYgbG9ja2VyLCBCb3g8TG9jaz4gbG9j
aywgUmVmPEF1dG9tYXRpY1RocmVhZENvbmRpdGlvbj4mJiBjb25kaXRpb24sIFNlY29uZHMgdGlt
ZW91dCkKK0F1dG9tYXRpY1RocmVhZDo6QXV0b21hdGljVGhyZWFkKGNvbnN0IEFic3RyYWN0TG9j
a2VyJiBsb2NrZXIsIEJveDxVbmNoZWNrZWRMb2NrPiBsb2NrLCBSZWY8QXV0b21hdGljVGhyZWFk
Q29uZGl0aW9uPiYmIGNvbmRpdGlvbiwgU2Vjb25kcyB0aW1lb3V0KQogICAgIDogQXV0b21hdGlj
VGhyZWFkKGxvY2tlciwgbG9jaywgV1RGTW92ZShjb25kaXRpb24pLCBUaHJlYWRUeXBlOjpVbmtu
b3duLCB0aW1lb3V0KQogewogfQogCi1BdXRvbWF0aWNUaHJlYWQ6OkF1dG9tYXRpY1RocmVhZChj
b25zdCBBYnN0cmFjdExvY2tlciYgbG9ja2VyLCBCb3g8TG9jaz4gbG9jaywgUmVmPEF1dG9tYXRp
Y1RocmVhZENvbmRpdGlvbj4mJiBjb25kaXRpb24sIFRocmVhZFR5cGUgdHlwZSwgU2Vjb25kcyB0
aW1lb3V0KQorQXV0b21hdGljVGhyZWFkOjpBdXRvbWF0aWNUaHJlYWQoY29uc3QgQWJzdHJhY3RM
b2NrZXImIGxvY2tlciwgQm94PFVuY2hlY2tlZExvY2s+IGxvY2ssIFJlZjxBdXRvbWF0aWNUaHJl
YWRDb25kaXRpb24+JiYgY29uZGl0aW9uLCBUaHJlYWRUeXBlIHR5cGUsIFNlY29uZHMgdGltZW91
dCkKICAgICA6IG1fbG9jayhsb2NrKQogICAgICwgbV9jb25kaXRpb24oV1RGTW92ZShjb25kaXRp
b24pKQogICAgICwgbV90aW1lb3V0KHRpbWVvdXQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0
Zi9BdXRvbWF0aWNUaHJlYWQuaCBiL1NvdXJjZS9XVEYvd3RmL0F1dG9tYXRpY1RocmVhZC5oCmlu
ZGV4IDhkN2MyYjUxNjgwYTNlYTY3MjhlNTE3NGZjODE4MDY4ZGVlOTVjODYuLjA5ZmNhZmVmMjM5
NTkxYjJlMTJjZGYwMmZkZjAwNmNjZGQ0MTJhNmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3Rm
L0F1dG9tYXRpY1RocmVhZC5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL0F1dG9tYXRpY1RocmVhZC5o
CkBAIC04MSw4ICs4MSw4IEBAIHB1YmxpYzoKICAgICAvLyBPbmUga25vd24tZ29vZCBjYXNlIGZv
ciBvbmUtdHJ1ZS1jb25kaXRpb24gaXMgd2hlbiB0aGUgY29tbXVuaWNhdGlvbiBpbnZvbHZlcyBq
dXN0IHR3bwogICAgIC8vIHRocmVhZHMuIEluIHN1Y2ggY2FzZXMsIHRoZSB0aHJlYWQgZG9pbmcg
dGhlIG5vdGlmeUFsbCgpIGNhbiB3YWtlIHVwIGF0IG1vc3Qgb25lIHRocmVhZCAtCiAgICAgLy8g
aXRzIHBhcnRuZXIuCi0gICAgV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgd2FpdChMb2NrJik7Ci0g
ICAgV1RGX0VYUE9SVF9QUklWQVRFIGJvb2wgd2FpdEZvcihMb2NrJiwgU2Vjb25kcyk7CisgICAg
V1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgd2FpdChVbmNoZWNrZWRMb2NrJik7CisgICAgV1RGX0VY
UE9SVF9QUklWQVRFIGJvb2wgd2FpdEZvcihVbmNoZWNrZWRMb2NrJiwgU2Vjb25kcyk7CiAgICAg
CiBwcml2YXRlOgogICAgIGZyaWVuZCBjbGFzcyBBdXRvbWF0aWNUaHJlYWQ7CkBAIC05Myw3ICs5
Myw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCByZW1vdmUoY29uc3QgQWJzdHJhY3RMb2NrZXImLCBB
dXRvbWF0aWNUaHJlYWQqKTsKICAgICBib29sIGNvbnRhaW5zKGNvbnN0IEFic3RyYWN0TG9ja2Vy
JiwgQXV0b21hdGljVGhyZWFkKik7CiAgICAgCi0gICAgQ29uZGl0aW9uIG1fY29uZGl0aW9uOwor
ICAgIFVuY2hlY2tlZENvbmRpdGlvbiBtX2NvbmRpdGlvbjsKICAgICBWZWN0b3I8QXV0b21hdGlj
VGhyZWFkKj4gbV90aHJlYWRzOwogfTsKIApAQCAtMTMxLDkgKzEzMSw5IEBAIHB1YmxpYzoKIHBy
b3RlY3RlZDoKICAgICAvLyBUaGlzIGxvZ2ljYWxseSBjcmVhdGVzIHRoZSB0aHJlYWQsIGJ1dCBp
biByZWFsaXR5IHRoZSB0aHJlYWQgd29uJ3QgYmUgY3JlYXRlZCB1bnRpbCBzb21lb25lCiAgICAg
Ly8gY2FsbHMgQXV0b21hdGljVGhyZWFkQ29uZGl0aW9uOjpub3RpZnlPbmUoKSBvciBub3RpZnlB
bGwoKS4KLSAgICBBdXRvbWF0aWNUaHJlYWQoY29uc3QgQWJzdHJhY3RMb2NrZXImLCBCb3g8TG9j
az4sIFJlZjxBdXRvbWF0aWNUaHJlYWRDb25kaXRpb24+JiYsIFNlY29uZHMgdGltZW91dCA9IDEw
X3MpOworICAgIEF1dG9tYXRpY1RocmVhZChjb25zdCBBYnN0cmFjdExvY2tlciYsIEJveDxVbmNo
ZWNrZWRMb2NrPiwgUmVmPEF1dG9tYXRpY1RocmVhZENvbmRpdGlvbj4mJiwgU2Vjb25kcyB0aW1l
b3V0ID0gMTBfcyk7CiAKLSAgICBBdXRvbWF0aWNUaHJlYWQoY29uc3QgQWJzdHJhY3RMb2NrZXIm
LCBCb3g8TG9jaz4sIFJlZjxBdXRvbWF0aWNUaHJlYWRDb25kaXRpb24+JiYsIFRocmVhZFR5cGUs
IFNlY29uZHMgdGltZW91dCA9IDEwX3MpOworICAgIEF1dG9tYXRpY1RocmVhZChjb25zdCBBYnN0
cmFjdExvY2tlciYsIEJveDxVbmNoZWNrZWRMb2NrPiwgUmVmPEF1dG9tYXRpY1RocmVhZENvbmRp
dGlvbj4mJiwgVGhyZWFkVHlwZSwgU2Vjb25kcyB0aW1lb3V0ID0gMTBfcyk7CiAgICAgCiAgICAg
Ly8gVG8gdW5kZXJzdGFuZCBQb2xsUmVzdWx0IGFuZCBXb3JrUmVzdWx0LCBpbWFnaW5lIHRoYXQg
cG9sbCgpIGFuZCB3b3JrKCkgYXJlIGJlaW5nIGNhbGxlZCBsaWtlCiAgICAgLy8gc286CkBAIC0x
ODMsMTUgKzE4MywxNSBAQCBwcml2YXRlOgogICAgIAogICAgIHZvaWQgc3RhcnQoY29uc3QgQWJz
dHJhY3RMb2NrZXImKTsKICAgICAKLSAgICBCb3g8TG9jaz4gbV9sb2NrOworICAgIEJveDxVbmNo
ZWNrZWRMb2NrPiBtX2xvY2s7CiAgICAgUmVmPEF1dG9tYXRpY1RocmVhZENvbmRpdGlvbj4gbV9j
b25kaXRpb247CiAgICAgU2Vjb25kcyBtX3RpbWVvdXQ7CiAgICAgVGhyZWFkVHlwZSBtX3RocmVh
ZFR5cGUgeyBUaHJlYWRUeXBlOjpVbmtub3duIH07CiAgICAgYm9vbCBtX2lzUnVubmluZyB7IHRy
dWUgfTsKICAgICBib29sIG1faXNXYWl0aW5nIHsgZmFsc2UgfTsKICAgICBib29sIG1faGFzVW5k
ZXJseWluZ1RocmVhZCB7IGZhbHNlIH07Ci0gICAgQ29uZGl0aW9uIG1fd2FpdENvbmRpdGlvbjsK
LSAgICBDb25kaXRpb24gbV9pc1J1bm5pbmdDb25kaXRpb247CisgICAgVW5jaGVja2VkQ29uZGl0
aW9uIG1fd2FpdENvbmRpdGlvbjsKKyAgICBVbmNoZWNrZWRDb25kaXRpb24gbV9pc1J1bm5pbmdD
b25kaXRpb247CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
VEYvd3RmL0NoZWNrZWRDb25kaXRpb24uaCBiL1NvdXJjZS9XVEYvd3RmL0NoZWNrZWRDb25kaXRp
b24uaAppbmRleCAxMTkxMGUwMzk5MTNiNGI2MGE0NDk0N2ViYzkxZDAxYWJjNzhiMjc5Li4xMDZi
YmEyMmQwYTYxN2IwZGYwNGIyNzJmOGNhMmQwYjYxY2JhMGI2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V1RGL3d0Zi9DaGVja2VkQ29uZGl0aW9uLmgKKysrIGIvU291cmNlL1dURi93dGYvQ2hlY2tlZENv
bmRpdGlvbi5oCkBAIC0yNSw1OCArMjUsMTIgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpbmNsdWRl
IDx3dGYvQ2hlY2tlZExvY2suaD4KICNpbmNsdWRlIDx3dGYvQ29uZGl0aW9uLmg+CiAKIG5hbWVz
cGFjZSBXVEYgewogCi0vLyBBIGNvbmRpdGlvbiB2YXJpYWJsZSB0eXBlIGZvciBDaGVja2VkTG9j
ay4KLS8vIEZvciBwcmVkaWNhdGVzIHRoYXQgYWNjZXNzIHRoZSBndWFyZGVkIHZhcmlhYmxlcywg
dXNlIGFzc2VydElzSGVsZChsb2NrKS4KLWNsYXNzIENoZWNrZWRDb25kaXRpb24gZmluYWwgewot
ICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKENoZWNrZWRDb25kaXRpb24pOwotICAgIFdURl9NQUtF
X0ZBU1RfQUxMT0NBVEVEOwotcHVibGljOgotICAgIGNvbnN0ZXhwciBDaGVja2VkQ29uZGl0aW9u
KCkgPSBkZWZhdWx0OwotCi0gICAgYm9vbCB3YWl0VW50aWwoQ2hlY2tlZExvY2smIGxvY2ssIGNv
bnN0IFRpbWVXaXRoRHluYW1pY0Nsb2NrVHlwZSYgdGltZW91dCkgV1RGX1JFUVVJUkVTX0xPQ0so
bG9jaykKLSAgICB7Ci0gICAgICAgIHJldHVybiBtX2NvbmRpdGlvbi53YWl0VW50aWwodW5jaGVj
a2VkQ2FzdChsb2NrKSwgdGltZW91dCk7Ci0gICAgfQotICAgIHRlbXBsYXRlPHR5cGVuYW1lIEZ1
bmN0b3I+Ci0gICAgYm9vbCB3YWl0VW50aWwoQ2hlY2tlZExvY2smIGxvY2ssIGNvbnN0IFRpbWVX
aXRoRHluYW1pY0Nsb2NrVHlwZSYgdGltZW91dCwgY29uc3QgRnVuY3RvciYgcHJlZGljYXRlKSBX
VEZfUkVRVUlSRVNfTE9DSyhsb2NrKQotICAgIHsKLSAgICAgICAgcmV0dXJuIG1fY29uZGl0aW9u
LndhaXRVbnRpbCh1bmNoZWNrZWRDYXN0KGxvY2spLCB0aW1lb3V0LCBwcmVkaWNhdGUpOwotICAg
IH0KLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBGdW5jdG9yPgotICAgIGJvb2wgd2FpdEZvcihDaGVj
a2VkTG9jayYgbG9jaywgU2Vjb25kcyByZWxhdGl2ZVRpbWVvdXQsIGNvbnN0IEZ1bmN0b3ImIHBy
ZWRpY2F0ZSkgV1RGX1JFUVVJUkVTX0xPQ0sobG9jaykKLSAgICB7Ci0gICAgICAgIHJldHVybiBt
X2NvbmRpdGlvbi53YWl0Rm9yKHVuY2hlY2tlZENhc3QobG9jayksIHJlbGF0aXZlVGltZW91dCwg
cHJlZGljYXRlKTsKLSAgICB9Ci0gICAgYm9vbCB3YWl0Rm9yKENoZWNrZWRMb2NrJiBsb2NrLCBT
ZWNvbmRzIHJlbGF0aXZlVGltZW91dCkgV1RGX1JFUVVJUkVTX0xPQ0sobG9jaykKLSAgICB7Ci0g
ICAgICAgIHJldHVybiBtX2NvbmRpdGlvbi53YWl0Rm9yKHVuY2hlY2tlZENhc3QobG9jayksIHJl
bGF0aXZlVGltZW91dCk7Ci0gICAgfQotICAgIHZvaWQgd2FpdChDaGVja2VkTG9jayYgbG9jaykg
V1RGX1JFUVVJUkVTX0xPQ0sobG9jaykKLSAgICB7Ci0gICAgICAgIG1fY29uZGl0aW9uLndhaXQo
dW5jaGVja2VkQ2FzdChsb2NrKSk7Ci0gICAgfQotICAgIHRlbXBsYXRlPHR5cGVuYW1lIEZ1bmN0
b3I+Ci0gICAgdm9pZCB3YWl0KENoZWNrZWRMb2NrJiBsb2NrLCBjb25zdCBGdW5jdG9yJiBwcmVk
aWNhdGUpIFdURl9SRVFVSVJFU19MT0NLKGxvY2spCi0gICAgewotICAgICAgICBtX2NvbmRpdGlv
bi53YWl0KHVuY2hlY2tlZENhc3QobG9jayksIHByZWRpY2F0ZSk7Ci0gICAgfQotICAgIGJvb2wg
bm90aWZ5T25lKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiBtX2NvbmRpdGlvbi5ub3RpZnlPbmUo
KTsKLSAgICB9Ci0gICAgdm9pZCBub3RpZnlBbGwoKQotICAgIHsKLSAgICAgICAgbV9jb25kaXRp
b24ubm90aWZ5QWxsKCk7Ci0gICAgfQotcHJpdmF0ZToKLSAgICBzdGF0aWMgTG9jayYgdW5jaGVj
a2VkQ2FzdChDaGVja2VkTG9jayYgbG9jaykgeyByZXR1cm4gc3RhdGljX2Nhc3Q8TG9jayY+KGxv
Y2spOyB9Ci0gICAgQ29uZGl0aW9uIG1fY29uZGl0aW9uOwotfTsKKy8vIEZJWE1FOiBVcGRhdGUg
Y29kZSBiYXNlIHRvIHVzZSBDb25kaXRpb24gYW5kIHJlbW92ZSB0aGlzIGhlYWRlci4KK3VzaW5n
IENoZWNrZWRDb25kaXRpb24gPSBDb25kaXRpb247CiAKIH0gLy8gbmFtZXNwYWNlIFdURgogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9DaGVja2VkTG9jay5oIGIvU291cmNlL1dURi93dGYv
Q2hlY2tlZExvY2suaAppbmRleCAzYWI1Yzc3MGRlMTYxYjRmMDU5ZDZjNzRiYjcxZWM5OGVmYTVm
NThhLi45NGE5ODFkNzg4MTk2MDYxZTUzNzZkM2M0MmVhYTI0YjBiNDJkMTg2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV1RGL3d0Zi9DaGVja2VkTG9jay5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL0NoZWNr
ZWRMb2NrLmgKQEAgLTI2LDgzICsyNiwxMiBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlIDx3
dGYvTG9jay5oPgotI2luY2x1ZGUgPHd0Zi9Mb2NrZXIuaD4KLSNpbmNsdWRlIDx3dGYvVGhyZWFk
U2FmZXR5QW5hbHlzaXMuaD4KIAogbmFtZXNwYWNlIFdURiB7CiAKLS8vIEEgbG9jayB0eXBlIHdp
dGggc3VwcG9ydCBmb3IgdGhyZWFkIHNhZmV0eSBhbmFseXNpcy4KLS8vIFRvIGFubm90YXRlIGEg
bWVtYmVyIHZhcmlhYmxlIG9yIGEgZ2xvYmFsIHZhcmlhYmxlIHdpdGggdGhyZWFkIG93bmVyc2hp
cCBpbmZvcm1hdGlvbiwKLS8vIHVzZSBsb2NrIGNhcGFiaWxpdHkgYW5ub3RhdGlvbnMgZGVmaW5l
ZCBpbiBUaHJlYWRTYWZldHlBbmFseXNpcy5oLgotLy8KLS8vIEV4YW1wbGU6Ci0vLyAgIGNsYXNz
IE15VmFsdWUgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8TXlWYWx1ZT4KLS8vICAgewot
Ly8gICBwdWJsaWM6Ci0vLyAgICAgICB2b2lkIHNldFZhbHVlKGludCB2YWx1ZSkgeyBMb2NrZXIg
aG9sZExvY2sgeyBtX2xvY2sgfTsgbV92YWx1ZSA9IHZhbHVlOyAgfQotLy8gICAgICAgdm9pZCBt
YXliZVNldE90aGVyVmFsdWUoaW50IHZhbHVlKQotLy8gICAgICAgewotLy8gICAgICAgICAgIGlm
ICghbV9sb2NrLnRyeUxvY2soKSkKLS8vICAgICAgICAgICAgICByZXR1cm47Ci0vLyAgICAgICAg
ICAgTG9ja2VyIGxvY2tlciB7IEFkb3B0TG9jaywgbV9vdGhlckxvY2sgfTsKLS8vICAgICAgICAg
ICBtX290aGVyVmFsdWUgPSB2YWx1ZTsKLS8vICAgICAgIH0KLS8vICAgcHJpdmF0ZToKLS8vICAg
ICAgIENoZWNrZWRMb2NrIG1fbG9jazsKLS8vICAgICAgIGludCBtX3ZhbHVlIFdURl9HVUFSREVE
X0JZX0xPQ0sobV9sb2NrKSB7IDc3IH07Ci0vLyAgICAgICBpbnQgbV9vdGhlclZhbHVlIFdURl9H
VUFSREVEX0JZX0xPQ0sobV9sb2NrKSB7IDg4IH07Ci0vLyAgIH07Ci0vLyBGSVhNRTogTWF5YmUg
c2hvdWxkIGJlIGZvbGRlZCBiYWNrIHRvIExvY2sgb25jZSBob2xkTG9jayBpcyBub3QgdXNlZCBn
bG9iYWxseS4KLWNsYXNzIFdURl9DQVBBQklMSVRZX0xPQ0sgQ2hlY2tlZExvY2sgOiBMb2NrIHsK
LSAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShDaGVja2VkTG9jayk7Ci0gICAgV1RGX01BS0VfRkFT
VF9BTExPQ0FURUQ7Ci1wdWJsaWM6Ci0gICAgY29uc3RleHByIENoZWNrZWRMb2NrKCkgPSBkZWZh
dWx0OwotICAgIHZvaWQgbG9jaygpIFdURl9BQ1FVSVJFU19MT0NLKCkgeyBMb2NrOjpsb2NrKCk7
IH0KLSAgICBib29sIHRyeUxvY2soKSBXVEZfQUNRVUlSRVNfTE9DS19JRih0cnVlKSB7IHJldHVy
biBMb2NrOjp0cnlMb2NrKCk7IH0KLSAgICBib29sIHRyeV9sb2NrKCkgV1RGX0FDUVVJUkVTX0xP
Q0tfSUYodHJ1ZSkgeyByZXR1cm4gTG9jazo6dHJ5X2xvY2soKTsgfSAvLyBOT0xJTlQ6IEludGVu
dGlvbmFsIGRldmlhdGlvbiB0byBzdXBwb3J0IHN0ZDo6c2NvcGVkX2xvY2suCi0gICAgdm9pZCB1
bmxvY2soKSBXVEZfUkVMRUFTRVNfTE9DSygpIHsgTG9jazo6dW5sb2NrKCk7IH0KLSAgICB2b2lk
IHVubG9ja0ZhaXJseSgpIFdURl9SRUxFQVNFU19MT0NLKCkgeyBMb2NrOjp1bmxvY2tGYWlybHko
KTsgfQotICAgIHZvaWQgc2FmZXBvaW50KCkgeyBMb2NrOjpzYWZlcG9pbnQoKTsgfQotICAgIGJv
b2wgaXNIZWxkKCkgY29uc3QgeyByZXR1cm4gTG9jazo6aXNIZWxkKCk7IH0KLSAgICBib29sIGlz
TG9ja2VkKCkgY29uc3QgeyByZXR1cm4gTG9jazo6aXNMb2NrZWQoKTsgfQotICAgIGZyaWVuZCBj
bGFzcyBDaGVja2VkQ29uZGl0aW9uOwotfTsKLQotLy8gQXNzZXJ0cyB0aGF0IHRoZSBsb2NrIGlz
IGhlbGQuCi0vLyBUaGlzIGNhbiBiZSB1c2VkIGluIGNhc2VzIHdoZXJlIHRoZSBhbm5vdGF0aW9u
cyBjYW5ub3QgYmUgYWRkZWQgdG8gdGhlIGZ1bmN0aW9uCi0vLyBkZWNsYXJhdGlvbi4KLWlubGlu
ZSB2b2lkIGFzc2VydElzSGVsZChjb25zdCBDaGVja2VkTG9jayYgbG9jaykgV1RGX0FTU0VSVFNf
QUNRVUlSRURfTE9DSyhsb2NrKSB7IEFTU0VSVF9VTlVTRUQobG9jaywgbG9jay5pc0hlbGQoKSk7
IH0KLQotLy8gTG9ja2VyIHNwZWNpYWxpemF0aW9uIHRvIHVzZSB3aXRoIENoZWNrZWRMb2NrLgot
Ly8gTm9uLW1vdmFibGUgc2ltcGxlIHNjb3BlZCBsb2NrIGhvbGRlci4KLS8vIEV4YW1wbGU6IExv
Y2tlciBsb2NrZXIgeyBtX2xvY2sgfTsKLXRlbXBsYXRlIDw+Ci1jbGFzcyBXVEZfQ0FQQUJJTElU
WV9TQ09QRURfTE9DSyBMb2NrZXI8Q2hlY2tlZExvY2s+IHsKLXB1YmxpYzoKLSAgICBleHBsaWNp
dCBMb2NrZXIoQ2hlY2tlZExvY2smIGxvY2spIFdURl9BQ1FVSVJFU19MT0NLKGxvY2spCi0gICAg
ICAgIDogbV9sb2NrKGxvY2spCi0gICAgewotICAgICAgICBtX2xvY2subG9jaygpOwotICAgIH0K
LSAgICBMb2NrZXIoQWRvcHRMb2NrVGFnLCBDaGVja2VkTG9jayYgbG9jaykgV1RGX1JFUVVJUkVT
X0xPQ0sobG9jaykKLSAgICAgICAgOiBtX2xvY2sobG9jaykKLSAgICB7Ci0gICAgfQotICAgIH5M
b2NrZXIoKSBXVEZfUkVMRUFTRVNfTE9DSygpCi0gICAgewotICAgICAgICBtX2xvY2sudW5sb2Nr
KCk7Ci0gICAgfQotICAgIExvY2tlcihjb25zdCBMb2NrZXI8Q2hlY2tlZExvY2s+JikgPSBkZWxl
dGU7Ci0gICAgTG9ja2VyJiBvcGVyYXRvcj0oY29uc3QgTG9ja2VyPENoZWNrZWRMb2NrPiYpID0g
ZGVsZXRlOwotcHJpdmF0ZToKLSAgICBDaGVja2VkTG9jayYgbV9sb2NrOwotfTsKLQotTG9ja2Vy
KENoZWNrZWRMb2NrJikgLT4gTG9ja2VyPENoZWNrZWRMb2NrPjsKLUxvY2tlcihBZG9wdExvY2tU
YWcsIENoZWNrZWRMb2NrJikgLT4gTG9ja2VyPENoZWNrZWRMb2NrPjsKKy8vIEZJWE1FOiBVcGRh
dGUgY29kZSBiYXNlIHRvIHVzZSBMb2NrIGFuZCByZW1vdmUgdGhpcyBoZWFkZXIuCit1c2luZyBD
aGVja2VkTG9jayA9IExvY2s7CiAKIH0gLy8gbmFtZXNwYWNlIFdURgogCi11c2luZyBXVEY6OmFz
c2VydElzSGVsZDsKIHVzaW5nIFdURjo6Q2hlY2tlZExvY2s7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V1RGL3d0Zi9Db25kaXRpb24uaCBiL1NvdXJjZS9XVEYvd3RmL0NvbmRpdGlvbi5oCmluZGV4IDgx
NTUwMWYxN2QyNjc5OTJkZjRkNDRkZGI5OTMxY2NhMGU4ZmZlOTkuLjRlZWYxZjFhNjJhMWNiNTJj
MWRlNTcyZTE3MWEzMTQzNTY5OGIzNjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0NvbmRp
dGlvbi5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL0NvbmRpdGlvbi5oCkBAIC0yNSw2ICsyNSw3IEBA
CiAKICNwcmFnbWEgb25jZQogCisjaW5jbHVkZSA8d3RmL0xvY2suaD4KICNpbmNsdWRlIDx3dGYv
Tm9uY29weWFibGUuaD4KICNpbmNsdWRlIDx3dGYvUGFya2luZ0xvdC5oPgogI2luY2x1ZGUgPHd0
Zi9UaW1lV2l0aER5bmFtaWNDbG9ja1R5cGUuaD4KQEAgLTM5LDE2ICs0MCwxNiBAQCBuYW1lc3Bh
Y2UgV1RGIHsKIC8vIG5vdGlmeUFsbCgpIHJlcXVpcmUganVzdCBhIGxvYWQgYW5kIGJyYW5jaCBm
b3IgdGhlIGZhc3QgY2FzZSB3aGVyZSBubyB0aHJlYWQgaXMgd2FpdGluZy4KIC8vIFRoaXMgY29u
ZGl0aW9uIHZhcmlhYmxlLCB3aGVuIHVzZWQgd2l0aCBXVEY6OkxvY2ssIGNhbiBvdXRwZXJmb3Jt
IGEgc3lzdGVtIGNvbmRpdGlvbiB2YXJpYWJsZQogLy8gYW5kIGxvY2sgYnkgdXAgdG8gNTh4Lgot
Y2xhc3MgQ29uZGl0aW9uIGZpbmFsIHsKLSAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShDb25kaXRp
b24pOworY2xhc3MgVW5jaGVja2VkQ29uZGl0aW9uIGZpbmFsIHsKKyAgICBXVEZfTUFLRV9OT05D
T1BZQUJMRShVbmNoZWNrZWRDb25kaXRpb24pOwogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVE
OwogcHVibGljOgotICAgIC8vIENvbmRpdGlvbiB3aWxsIGFjY2VwdCBhbnkga2luZCBvZiB0aW1l
IGFuZCBjb252ZXJ0IGl0IGludGVybmFsbHksIGJ1dCB0aGlzIHR5cGVkZWYgdGVsbHMKLSAgICAv
LyB5b3Ugd2hhdCBraW5kIG9mIHRpbWUgQ29uZGl0aW9uIHdvdWxkIGJlIGFibGUgdG8gdXNlIHdp
dGhvdXQgY29udmVyc2lvbnMuIEhvd2V2ZXIsIGlmIHlvdQorICAgIC8vIFVuY2hlY2tlZENvbmRp
dGlvbiB3aWxsIGFjY2VwdCBhbnkga2luZCBvZiB0aW1lIGFuZCBjb252ZXJ0IGl0IGludGVybmFs
bHksIGJ1dCB0aGlzIHR5cGVkZWYgdGVsbHMKKyAgICAvLyB5b3Ugd2hhdCBraW5kIG9mIHRpbWUg
VW5jaGVja2VkQ29uZGl0aW9uIHdvdWxkIGJlIGFibGUgdG8gdXNlIHdpdGhvdXQgY29udmVyc2lv
bnMuIEhvd2V2ZXIsIGlmIHlvdQogICAgIC8vIGFyZSB1bmxpa2VseSB0byBiZSBhZmZlY3RlZCBi
eSB0aGUgY29zdCBvZiBjb252ZXJzaW9ucywgaXQgaXMgYmV0dGVyIHRvIHVzZSBNb25vdG9uaWNU
aW1lLgogICAgIHVzaW5nIFRpbWUgPSBQYXJraW5nTG90OjpUaW1lOwogCi0gICAgY29uc3RleHBy
IENvbmRpdGlvbigpID0gZGVmYXVsdDsKKyAgICBjb25zdGV4cHIgVW5jaGVja2VkQ29uZGl0aW9u
KCkgPSBkZWZhdWx0OwogCiAgICAgLy8gV2FpdCBvbiBhIHBhcmtpbmcgcXVldWUgd2hpbGUgcmVs
ZWFzaW5nIHRoZSBnaXZlbiBsb2NrLiBJdCB3aWxsIHVubG9jayB0aGUgbG9jayBqdXN0IGJlZm9y
ZQogICAgIC8vIHBhcmtpbmcsIGFuZCByZWxvY2sgaXQgdXBvbiB3YWtldXAuIFJldHVybnMgdHJ1
ZSBpZiB3ZSB3b2tlIHVwIGR1ZSB0byBzb21lIGNhbGwgdG8KQEAgLTE3Miw5ICsxNzMsNjEgQEAg
cHJpdmF0ZToKICAgICBBdG9taWM8Ym9vbD4gbV9oYXNXYWl0ZXJzIHsgZmFsc2UgfTsKIH07CiAK
Ky8vIEEgY29uZGl0aW9uIHZhcmlhYmxlIHR5cGUgZm9yIExvY2suCisvLyBGb3IgcHJlZGljYXRl
cyB0aGF0IGFjY2VzcyB0aGUgZ3VhcmRlZCB2YXJpYWJsZXMsIHVzZSBhc3NlcnRJc0hlbGQobG9j
aykuCitjbGFzcyBDb25kaXRpb24gZmluYWwgeworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKENv
bmRpdGlvbik7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgY29u
c3RleHByIENvbmRpdGlvbigpID0gZGVmYXVsdDsKKworICAgIGJvb2wgd2FpdFVudGlsKExvY2sm
IGxvY2ssIGNvbnN0IFRpbWVXaXRoRHluYW1pY0Nsb2NrVHlwZSYgdGltZW91dCkgV1RGX1JFUVVJ
UkVTX0xPQ0sobG9jaykKKyAgICB7CisgICAgICAgIHJldHVybiBtX2NvbmRpdGlvbi53YWl0VW50
aWwodW5jaGVja2VkQ2FzdChsb2NrKSwgdGltZW91dCk7CisgICAgfQorICAgIHRlbXBsYXRlPHR5
cGVuYW1lIEZ1bmN0b3I+CisgICAgYm9vbCB3YWl0VW50aWwoTG9jayYgbG9jaywgY29uc3QgVGlt
ZVdpdGhEeW5hbWljQ2xvY2tUeXBlJiB0aW1lb3V0LCBjb25zdCBGdW5jdG9yJiBwcmVkaWNhdGUp
IFdURl9SRVFVSVJFU19MT0NLKGxvY2spCisgICAgeworICAgICAgICByZXR1cm4gbV9jb25kaXRp
b24ud2FpdFVudGlsKHVuY2hlY2tlZENhc3QobG9jayksIHRpbWVvdXQsIHByZWRpY2F0ZSk7Cisg
ICAgfQorICAgIHRlbXBsYXRlPHR5cGVuYW1lIEZ1bmN0b3I+CisgICAgYm9vbCB3YWl0Rm9yKExv
Y2smIGxvY2ssIFNlY29uZHMgcmVsYXRpdmVUaW1lb3V0LCBjb25zdCBGdW5jdG9yJiBwcmVkaWNh
dGUpIFdURl9SRVFVSVJFU19MT0NLKGxvY2spCisgICAgeworICAgICAgICByZXR1cm4gbV9jb25k
aXRpb24ud2FpdEZvcih1bmNoZWNrZWRDYXN0KGxvY2spLCByZWxhdGl2ZVRpbWVvdXQsIHByZWRp
Y2F0ZSk7CisgICAgfQorICAgIGJvb2wgd2FpdEZvcihMb2NrJiBsb2NrLCBTZWNvbmRzIHJlbGF0
aXZlVGltZW91dCkgV1RGX1JFUVVJUkVTX0xPQ0sobG9jaykKKyAgICB7CisgICAgICAgIHJldHVy
biBtX2NvbmRpdGlvbi53YWl0Rm9yKHVuY2hlY2tlZENhc3QobG9jayksIHJlbGF0aXZlVGltZW91
dCk7CisgICAgfQorICAgIHZvaWQgd2FpdChMb2NrJiBsb2NrKSBXVEZfUkVRVUlSRVNfTE9DSyhs
b2NrKQorICAgIHsKKyAgICAgICAgbV9jb25kaXRpb24ud2FpdCh1bmNoZWNrZWRDYXN0KGxvY2sp
KTsKKyAgICB9CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRnVuY3Rvcj4KKyAgICB2b2lkIHdhaXQo
TG9jayYgbG9jaywgY29uc3QgRnVuY3RvciYgcHJlZGljYXRlKSBXVEZfUkVRVUlSRVNfTE9DSyhs
b2NrKQorICAgIHsKKyAgICAgICAgbV9jb25kaXRpb24ud2FpdCh1bmNoZWNrZWRDYXN0KGxvY2sp
LCBwcmVkaWNhdGUpOworICAgIH0KKyAgICBib29sIG5vdGlmeU9uZSgpCisgICAgeworICAgICAg
ICByZXR1cm4gbV9jb25kaXRpb24ubm90aWZ5T25lKCk7CisgICAgfQorICAgIHZvaWQgbm90aWZ5
QWxsKCkKKyAgICB7CisgICAgICAgIG1fY29uZGl0aW9uLm5vdGlmeUFsbCgpOworICAgIH0KK3By
aXZhdGU6CisgICAgc3RhdGljIFVuY2hlY2tlZExvY2smIHVuY2hlY2tlZENhc3QoTG9jayYgbG9j
aykgeyByZXR1cm4gc3RhdGljX2Nhc3Q8VW5jaGVja2VkTG9jayY+KGxvY2spOyB9CisgICAgVW5j
aGVja2VkQ29uZGl0aW9uIG1fY29uZGl0aW9uOworfTsKKwordXNpbmcgU3RhdGljVW5jaGVja2Vk
Q29uZGl0aW9uID0gVW5jaGVja2VkQ29uZGl0aW9uOwogdXNpbmcgU3RhdGljQ29uZGl0aW9uID0g
Q29uZGl0aW9uOwogCiB9IC8vIG5hbWVzcGFjZSBXVEYKIAogdXNpbmcgV1RGOjpDb25kaXRpb247
Cit1c2luZyBXVEY6OlVuY2hlY2tlZENvbmRpdGlvbjsKIHVzaW5nIFdURjo6U3RhdGljQ29uZGl0
aW9uOwordXNpbmcgV1RGOjpTdGF0aWNVbmNoZWNrZWRDb25kaXRpb247CisKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XVEYvd3RmL0ZvcndhcmQuaCBiL1NvdXJjZS9XVEYvd3RmL0ZvcndhcmQuaAppbmRl
eCBmNmJjZDA1Zjc3MzBjYWU3MDZiNGVkYTk3N2JhMjA3YzlhZDhmNDhiLi5jNDdjYzVkYzdkOGIw
NzFhMjFlYjNmN2JhMjgzOTk4NWUxY2RiM2VmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9G
b3J3YXJkLmgKKysrIGIvU291cmNlL1dURi93dGYvRm9yd2FyZC5oCkBAIC0yNSw2ICsyNSw3IEBA
CiAKIG5hbWVzcGFjZSBXVEYgewogCitjbGFzcyBBYnN0cmFjdExvY2tlcjsKIGNsYXNzIEF0b21T
dHJpbmc7CiBjbGFzcyBBdG9tU3RyaW5nSW1wbDsKIGNsYXNzIEJpbmFyeVNlbWFwaG9yZTsKQEAg
LTMyLDYgKzMzLDcgQEAgY2xhc3MgQ1N0cmluZzsKIGNsYXNzIENyYXNoT25PdmVyZmxvdzsKIGNs
YXNzIEZ1bmN0aW9uRGlzcGF0Y2hlcjsKIGNsYXNzIEhhc2hlcjsKK2NsYXNzIExvY2s7CiBjbGFz
cyBMb2dnZXI7CiBjbGFzcyBNb25vdG9uaWNUaW1lOwogY2xhc3MgT3JkaW5hbE51bWJlcjsKQEAg
LTQ2LDYgKzQ4LDcgQEAgY2xhc3MgVGV4dFBvc2l0aW9uOwogY2xhc3MgVGV4dFN0cmVhbTsKIGNs
YXNzIFVuaXF1ZWRTdHJpbmdJbXBsOwogY2xhc3MgVVJMOworY2xhc3MgVW5jaGVja2VkTG9jazsK
IGNsYXNzIFdhbGxUaW1lOwogCiBzdHJ1Y3QgQW55VGhyZWFkc0FjY2Vzc1RyYWl0czsKQEAgLTEx
NSw2ICsxMTgsNyBAQCB0ZW1wbGF0ZTxjbGFzcywgY2xhc3M+IGNsYXNzIGV4cGVjdGVkOwogdGVt
cGxhdGU8Y2xhc3M+IGNsYXNzIHVuZXhwZWN0ZWQ7CiB9fX0gLy8gbmFtZXNwYWNlIHN0ZDo6ZXhw
ZXJpbWVudGFsOjpmdW5kYW1lbnRhbHNfdjMKIAordXNpbmcgV1RGOjpBYnN0cmFjdExvY2tlcjsK
IHVzaW5nIFdURjo6QXRvbVN0cmluZzsKIHVzaW5nIFdURjo6QXRvbVN0cmluZ0ltcGw7CiB1c2lu
ZyBXVEY6OkJpbmFyeVNlbWFwaG9yZTsKQEAgLTEyOCw2ICsxMzIsNyBAQCB1c2luZyBXVEY6Okhh
c2hNYXA7CiB1c2luZyBXVEY6Okhhc2hTZXQ7CiB1c2luZyBXVEY6Okhhc2hlcjsKIHVzaW5nIFdU
Rjo6TGF6eU5ldmVyRGVzdHJveWVkOwordXNpbmcgV1RGOjpMb2NrOwogdXNpbmcgV1RGOjpMb2dn
ZXI7CiB1c2luZyBXVEY6Ok5ldmVyRGVzdHJveWVkOwogdXNpbmcgV1RGOjpPcHRpb25TZXQ7CkBA
IC0xNTAsNiArMTU1LDcgQEAgdXNpbmcgV1RGOjpTdHJpbmdWaWV3OwogdXNpbmcgV1RGOjpUZXh0
UG9zaXRpb247CiB1c2luZyBXVEY6OlRleHRTdHJlYW07CiB1c2luZyBXVEY6OlVSTDsKK3VzaW5n
IFdURjo6VW5jaGVja2VkTG9jazsKIHVzaW5nIFdURjo6VW5pcXVlUmVmOwogdXNpbmcgV1RGOjpW
YXJpYW50OwogdXNpbmcgV1RGOjpWZWN0b3I7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9M
b2NrLmNwcCBiL1NvdXJjZS9XVEYvd3RmL0xvY2suY3BwCmluZGV4IGI5OTM4M2Q2OTQ4MGQzYTRj
OWI2MjNmMGMwYmNjN2RmOTBlYWIwNGQuLmZmODZlMTBhOWEyYTQxN2FiNzA2NzBhMDc4OWNmNjUw
ZDcxOGIxNzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0xvY2suY3BwCisrKyBiL1NvdXJj
ZS9XVEYvd3RmL0xvY2suY3BwCkBAIC0zMywxNCArMzMsMTQgQEAgbmFtZXNwYWNlIFdURiB7CiAK
IHN0YXRpYyBjb25zdGV4cHIgYm9vbCBwcm9maWxlTG9ja0NvbnRlbnRpb24gPSBmYWxzZTsKIAot
dm9pZCBMb2NrOjpsb2NrU2xvdygpCit2b2lkIFVuY2hlY2tlZExvY2s6OmxvY2tTbG93KCkKIHsK
ICAgICBpZiAocHJvZmlsZUxvY2tDb250ZW50aW9uKQogICAgICAgICBTVEFDS19TSE9UX1BST0ZJ
TEUoNCwgMiwgNSk7CiAgICAgRGVmYXVsdExvY2tBbGdvcml0aG06OmxvY2tTbG93KG1fYnl0ZSk7
CiB9CiAKLXZvaWQgTG9jazo6dW5sb2NrU2xvdygpCit2b2lkIFVuY2hlY2tlZExvY2s6OnVubG9j
a1Nsb3coKQogewogICAgIC8vIEhlYXAgYWxsb2NhdGlvbnMgYXJlIGZvcmJpZGRlbiBvbiB0aGUg
Y2VydGFpbiB0aHJlYWRzIChlLmcuIGF1ZGlvIHJlbmRlcmluZyB0aHJlYWQpIGZvciBwZXJmb3Jt
YW5jZSByZWFzb25zIHNvIHdlIG5lZWQgdG8KICAgICAvLyBleHBsaWNpdGx5IGFsbG93IHRoZSBm
b2xsb3dpbmcgYWxsb2NhdGlvbihzKS4gSW4gc29tZSByYXJlIGNhc2VzLCB0aGUgdW5sb2NrU2xv
dygpIGFsZ29yaXRoIG1heSBjYXVzZSBhbGxvY2F0aW9ucy4KQEAgLTQ5LDcgKzQ5LDcgQEAgdm9p
ZCBMb2NrOjp1bmxvY2tTbG93KCkKICAgICBEZWZhdWx0TG9ja0FsZ29yaXRobTo6dW5sb2NrU2xv
dyhtX2J5dGUsIERlZmF1bHRMb2NrQWxnb3JpdGhtOjpVbmZhaXIpOwogfQogCi12b2lkIExvY2s6
OnVubG9ja0ZhaXJseVNsb3coKQordm9pZCBVbmNoZWNrZWRMb2NrOjp1bmxvY2tGYWlybHlTbG93
KCkKIHsKICAgICAvLyBIZWFwIGFsbG9jYXRpb25zIGFyZSBmb3JiaWRkZW4gb24gdGhlIGNlcnRh
aW4gdGhyZWFkcyAoZS5nLiBhdWRpbyByZW5kZXJpbmcgdGhyZWFkKSBmb3IgcGVyZm9ybWFuY2Ug
cmVhc29ucyBzbyB3ZSBuZWVkIHRvCiAgICAgLy8gZXhwbGljaXRseSBhbGxvdyB0aGUgZm9sbG93
aW5nIGFsbG9jYXRpb24ocykuIEluIHNvbWUgcmFyZSBjYXNlcywgdGhlIHVubG9ja1Nsb3coKSBh
bGdvcml0aCBtYXkgY2F1c2UgYWxsb2NhdGlvbnMuCkBAIC01OCw3ICs1OCw3IEBAIHZvaWQgTG9j
azo6dW5sb2NrRmFpcmx5U2xvdygpCiAgICAgRGVmYXVsdExvY2tBbGdvcml0aG06OnVubG9ja1Ns
b3cobV9ieXRlLCBEZWZhdWx0TG9ja0FsZ29yaXRobTo6RmFpcik7CiB9CiAKLXZvaWQgTG9jazo6
c2FmZXBvaW50U2xvdygpCit2b2lkIFVuY2hlY2tlZExvY2s6OnNhZmVwb2ludFNsb3coKQogewog
ICAgIERlZmF1bHRMb2NrQWxnb3JpdGhtOjpzYWZlcG9pbnRTbG93KG1fYnl0ZSk7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9Mb2NrLmggYi9Tb3VyY2UvV1RGL3d0Zi9Mb2NrLmgKaW5k
ZXggNjBmZGFhYmQ5MGRhZTdmMmQ0ZDQ4ZjMxYjgwMzRkZTNiZjk1ZjY3ZC4uMjhjODgzZjUwM2Q4
MDg2ODhjOGFkYTA4NTk3YmQ0NjkzYWY2OTk0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYv
TG9jay5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL0xvY2suaApAQCAtMjUsOSArMjUsMTEgQEAKIAog
I3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlIDxtdXRleD4KICNpbmNsdWRlIDx3dGYvTG9ja0FsZ29y
aXRobS5oPgogI2luY2x1ZGUgPHd0Zi9Mb2NrZXIuaD4KICNpbmNsdWRlIDx3dGYvTm9uY29weWFi
bGUuaD4KKyNpbmNsdWRlIDx3dGYvVGhyZWFkU2FmZXR5QW5hbHlzaXMuaD4KIAogbmFtZXNwYWNl
IFRlc3RXZWJLaXRBUEkgewogc3RydWN0IExvY2tJbnNwZWN0b3I7CkBAIC00NywxMSArNDksMTEg
QEAgdHlwZWRlZiBMb2NrQWxnb3JpdGhtPHVpbnQ4X3QsIDEsIDI+IERlZmF1bHRMb2NrQWxnb3Jp
dGhtOwogLy8gYXQgd29yc3Qgb25lIGNhbGwgdG8gdW5sb2NrKCkgcGVyIG1pbGxpc2Vjb25kIHdp
bGwgZG8gYSBkaXJlY3QgaGFuZC1vZmYgdG8gdGhlIHRocmVhZCB0aGF0IGlzIGF0CiAvLyB0aGUg
aGVhZCBvZiB0aGUgcXVldWUuIFdoZW4gdGhlcmUgYXJlIGNvbGxpc2lvbnMsIGVhY2ggY29sbGlz
aW9uIGluY3JlYXNlcyB0aGUgZmFpciB1bmxvY2sgZGVsYXkKIC8vIGJ5IG9uZSBtaWxsaXNlY29u
ZCBpbiB0aGUgd29yc3QgY2FzZS4KLWNsYXNzIExvY2sgewotICAgIFdURl9NQUtFX05PTkNPUFlB
QkxFKExvY2spOworY2xhc3MgVW5jaGVja2VkTG9jayB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFC
TEUoVW5jaGVja2VkTG9jayk7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6
Ci0gICAgY29uc3RleHByIExvY2soKSA9IGRlZmF1bHQ7CisgICAgY29uc3RleHByIFVuY2hlY2tl
ZExvY2soKSA9IGRlZmF1bHQ7CiAKICAgICB2b2lkIGxvY2soKQogICAgIHsKQEAgLTEzMSw5ICsx
MzMsODMgQEAgcHJpdmF0ZToKICAgICBBdG9taWM8dWludDhfdD4gbV9ieXRlIHsgMCB9OwogfTsK
IAorLy8gQSBsb2NrIHR5cGUgd2l0aCBzdXBwb3J0IGZvciB0aHJlYWQgc2FmZXR5IGFuYWx5c2lz
LgorLy8gVG8gYW5ub3RhdGUgYSBtZW1iZXIgdmFyaWFibGUgb3IgYSBnbG9iYWwgdmFyaWFibGUg
d2l0aCB0aHJlYWQgb3duZXJzaGlwIGluZm9ybWF0aW9uLAorLy8gdXNlIGxvY2sgY2FwYWJpbGl0
eSBhbm5vdGF0aW9ucyBkZWZpbmVkIGluIFRocmVhZFNhZmV0eUFuYWx5c2lzLmguCisvLworLy8g
RXhhbXBsZToKKy8vICAgY2xhc3MgTXlWYWx1ZSA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRl
ZDxNeVZhbHVlPgorLy8gICB7CisvLyAgIHB1YmxpYzoKKy8vICAgICAgIHZvaWQgc2V0VmFsdWUo
aW50IHZhbHVlKSB7IExvY2tlciBob2xkTG9jayB7IG1fbG9jayB9OyBtX3ZhbHVlID0gdmFsdWU7
ICB9CisvLyAgICAgICB2b2lkIG1heWJlU2V0T3RoZXJWYWx1ZShpbnQgdmFsdWUpCisvLyAgICAg
ICB7CisvLyAgICAgICAgICAgaWYgKCFtX2xvY2sudHJ5TG9jaygpKQorLy8gICAgICAgICAgICAg
IHJldHVybjsKKy8vICAgICAgICAgICBMb2NrZXIgbG9ja2VyIHsgQWRvcHRMb2NrLCBtX290aGVy
TG9jayB9OworLy8gICAgICAgICAgIG1fb3RoZXJWYWx1ZSA9IHZhbHVlOworLy8gICAgICAgfQor
Ly8gICBwcml2YXRlOgorLy8gICAgICAgTG9jayBtX2xvY2s7CisvLyAgICAgICBpbnQgbV92YWx1
ZSBXVEZfR1VBUkRFRF9CWV9MT0NLKG1fbG9jaykgeyA3NyB9OworLy8gICAgICAgaW50IG1fb3Ro
ZXJWYWx1ZSBXVEZfR1VBUkRFRF9CWV9MT0NLKG1fbG9jaykgeyA4OCB9OworLy8gICB9OworY2xh
c3MgV1RGX0NBUEFCSUxJVFlfTE9DSyBMb2NrIDogVW5jaGVja2VkTG9jayB7CisgICAgV1RGX01B
S0VfTk9OQ09QWUFCTEUoTG9jayk7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJs
aWM6CisgICAgY29uc3RleHByIExvY2soKSA9IGRlZmF1bHQ7CisgICAgdm9pZCBsb2NrKCkgV1RG
X0FDUVVJUkVTX0xPQ0soKSB7IFVuY2hlY2tlZExvY2s6OmxvY2soKTsgfQorICAgIGJvb2wgdHJ5
TG9jaygpIFdURl9BQ1FVSVJFU19MT0NLX0lGKHRydWUpIHsgcmV0dXJuIFVuY2hlY2tlZExvY2s6
OnRyeUxvY2soKTsgfQorICAgIGJvb2wgdHJ5X2xvY2soKSBXVEZfQUNRVUlSRVNfTE9DS19JRih0
cnVlKSB7IHJldHVybiBVbmNoZWNrZWRMb2NrOjp0cnlfbG9jaygpOyB9IC8vIE5PTElOVDogSW50
ZW50aW9uYWwgZGV2aWF0aW9uIHRvIHN1cHBvcnQgc3RkOjpzY29wZWRfbG9jay4KKyAgICB2b2lk
IHVubG9jaygpIFdURl9SRUxFQVNFU19MT0NLKCkgeyBVbmNoZWNrZWRMb2NrOjp1bmxvY2soKTsg
fQorICAgIHZvaWQgdW5sb2NrRmFpcmx5KCkgV1RGX1JFTEVBU0VTX0xPQ0soKSB7IFVuY2hlY2tl
ZExvY2s6OnVubG9ja0ZhaXJseSgpOyB9CisgICAgdm9pZCBzYWZlcG9pbnQoKSB7IFVuY2hlY2tl
ZExvY2s6OnNhZmVwb2ludCgpOyB9CisgICAgYm9vbCBpc0hlbGQoKSBjb25zdCB7IHJldHVybiBV
bmNoZWNrZWRMb2NrOjppc0hlbGQoKTsgfQorICAgIGJvb2wgaXNMb2NrZWQoKSBjb25zdCB7IHJl
dHVybiBVbmNoZWNrZWRMb2NrOjppc0xvY2tlZCgpOyB9CisgICAgZnJpZW5kIGNsYXNzIENvbmRp
dGlvbjsKKyAgICBmcmllbmQgc3RydWN0IFRlc3RXZWJLaXRBUEk6OkxvY2tJbnNwZWN0b3I7Cit9
OworCisvLyBBc3NlcnRzIHRoYXQgdGhlIGxvY2sgaXMgaGVsZC4KKy8vIFRoaXMgY2FuIGJlIHVz
ZWQgaW4gY2FzZXMgd2hlcmUgdGhlIGFubm90YXRpb25zIGNhbm5vdCBiZSBhZGRlZCB0byB0aGUg
ZnVuY3Rpb24KKy8vIGRlY2xhcmF0aW9uLgoraW5saW5lIHZvaWQgYXNzZXJ0SXNIZWxkKGNvbnN0
IExvY2smIGxvY2spIFdURl9BU1NFUlRTX0FDUVVJUkVEX0xPQ0sobG9jaykgeyBBU1NFUlRfVU5V
U0VEKGxvY2ssIGxvY2suaXNIZWxkKCkpOyB9CisKKy8vIExvY2tlciBzcGVjaWFsaXphdGlvbiB0
byB1c2Ugd2l0aCBMb2NrLgorLy8gTm9uLW1vdmFibGUgc2ltcGxlIHNjb3BlZCBsb2NrIGhvbGRl
ci4KKy8vIEV4YW1wbGU6IExvY2tlciBsb2NrZXIgeyBtX2xvY2sgfTsKK3RlbXBsYXRlIDw+Citj
bGFzcyBXVEZfQ0FQQUJJTElUWV9TQ09QRURfTE9DSyBMb2NrZXI8TG9jaz4geworcHVibGljOgor
ICAgIGV4cGxpY2l0IExvY2tlcihMb2NrJiBsb2NrKSBXVEZfQUNRVUlSRVNfTE9DSyhsb2NrKQor
ICAgICAgICA6IG1fbG9jayhsb2NrKQorICAgIHsKKyAgICAgICAgbV9sb2NrLmxvY2soKTsKKyAg
ICB9CisgICAgTG9ja2VyKEFkb3B0TG9ja1RhZywgTG9jayYgbG9jaykgV1RGX1JFUVVJUkVTX0xP
Q0sobG9jaykKKyAgICAgICAgOiBtX2xvY2sobG9jaykKKyAgICB7CisgICAgfQorICAgIH5Mb2Nr
ZXIoKSBXVEZfUkVMRUFTRVNfTE9DSygpCisgICAgeworICAgICAgICBtX2xvY2sudW5sb2NrKCk7
CisgICAgfQorICAgIExvY2tlcihjb25zdCBMb2NrZXI8TG9jaz4mKSA9IGRlbGV0ZTsKKyAgICBM
b2NrZXImIG9wZXJhdG9yPShjb25zdCBMb2NrZXI8TG9jaz4mKSA9IGRlbGV0ZTsKK3ByaXZhdGU6
CisgICAgTG9jayYgbV9sb2NrOworfTsKKworTG9ja2VyKExvY2smKSAtPiBMb2NrZXI8TG9jaz47
CitMb2NrZXIoQWRvcHRMb2NrVGFnLCBMb2NrJikgLT4gTG9ja2VyPExvY2s+OworCiB1c2luZyBM
b2NrSG9sZGVyID0gTG9ja2VyPExvY2s+OwordXNpbmcgVW5jaGVja2VkTG9ja0hvbGRlciA9IExv
Y2tlcjxVbmNoZWNrZWRMb2NrPjsKIAogfSAvLyBuYW1lc3BhY2UgV1RGCiAKK3VzaW5nIFdURjo6
VW5jaGVja2VkTG9jazsKIHVzaW5nIFdURjo6TG9jazsKIHVzaW5nIFdURjo6TG9ja0hvbGRlcjsK
K3VzaW5nIFdURjo6VW5jaGVja2VkTG9ja0hvbGRlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYv
d3RmL01ldGFBbGxvY2F0b3IuY3BwIGIvU291cmNlL1dURi93dGYvTWV0YUFsbG9jYXRvci5jcHAK
aW5kZXggZWVmODliNzdlN2JkZGZjZDY3NjVkNjczYWE1NjVhMDY3N2NkNzBhNC4uZDljZDU5OTJm
M2EwZDUxZDA0NmU4NzAxYTEzYmQyN2E3OTAyMmFkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93
dGYvTWV0YUFsbG9jYXRvci5jcHAKKysrIGIvU291cmNlL1dURi93dGYvTWV0YUFsbG9jYXRvci5j
cHAKQEAgLTYyLDcgKzYyLDcgQEAgdm9pZCBNZXRhQWxsb2NhdG9yVHJhY2tlcjo6cmVsZWFzZShN
ZXRhQWxsb2NhdG9ySGFuZGxlJiBoYW5kbGUpCiAgICAgbV9hbGxvY2F0aW9ucy5yZW1vdmUoJmhh
bmRsZSk7CiB9CiAKLXZvaWQgTWV0YUFsbG9jYXRvcjo6cmVsZWFzZShjb25zdCBMb2NrSG9sZGVy
JiwgTWV0YUFsbG9jYXRvckhhbmRsZSYgaGFuZGxlKQordm9pZCBNZXRhQWxsb2NhdG9yOjpyZWxl
YXNlKGNvbnN0IFVuY2hlY2tlZExvY2tIb2xkZXImLCBNZXRhQWxsb2NhdG9ySGFuZGxlJiBoYW5k
bGUpCiB7CiAgICAgaWYgKGhhbmRsZS5zaXplSW5CeXRlcygpKSB7CiAgICAgICAgIE1lbW9yeVB0
ciBzdGFydCA9IGhhbmRsZS5zdGFydCgpOwpAQCAtMTI0LDcgKzEyNCw3IEBAIHZvaWQgTWV0YUFs
bG9jYXRvckhhbmRsZTo6ZHVtcChQcmludFN0cmVhbSYgb3V0KSBjb25zdAogICAgIG91dC5wcmlu
dChSYXdQb2ludGVyKHN0YXJ0KCkudW50YWdnZWRQdHIoKSksICIuLi4iLCBSYXdQb2ludGVyKGVu
ZCgpLnVudGFnZ2VkUHRyKCkpKTsKIH0KIAotTWV0YUFsbG9jYXRvcjo6TWV0YUFsbG9jYXRvcihM
b2NrJiBsb2NrLCBzaXplX3QgYWxsb2NhdGlvbkdyYW51bGUsIHNpemVfdCBwYWdlU2l6ZSkKK01l
dGFBbGxvY2F0b3I6Ok1ldGFBbGxvY2F0b3IoVW5jaGVja2VkTG9jayYgbG9jaywgc2l6ZV90IGFs
bG9jYXRpb25HcmFudWxlLCBzaXplX3QgcGFnZVNpemUpCiAgICAgOiBtX2FsbG9jYXRpb25HcmFu
dWxlKGFsbG9jYXRpb25HcmFudWxlKQogICAgICwgbV9wYWdlU2l6ZShwYWdlU2l6ZSkKICAgICAs
IG1fYnl0ZXNBbGxvY2F0ZWQoMCkKQEAgLTE1NCw3ICsxNTQsNyBAQCBNZXRhQWxsb2NhdG9yOjpN
ZXRhQWxsb2NhdG9yKExvY2smIGxvY2ssIHNpemVfdCBhbGxvY2F0aW9uR3JhbnVsZSwgc2l6ZV90
IHBhZ2VTaQogICAgIEFTU0VSVChzdGF0aWNfY2FzdDxzaXplX3Q+KDEpIDw8IG1fbG9nQWxsb2Nh
dGlvbkdyYW51bGUgPT0gbV9hbGxvY2F0aW9uR3JhbnVsZSk7CiB9CiAKLVJlZlB0cjxNZXRhQWxs
b2NhdG9ySGFuZGxlPiBNZXRhQWxsb2NhdG9yOjphbGxvY2F0ZShjb25zdCBMb2NrSG9sZGVyJiwg
c2l6ZV90IHNpemVJbkJ5dGVzKQorUmVmUHRyPE1ldGFBbGxvY2F0b3JIYW5kbGU+IE1ldGFBbGxv
Y2F0b3I6OmFsbG9jYXRlKGNvbnN0IFVuY2hlY2tlZExvY2tIb2xkZXImLCBzaXplX3Qgc2l6ZUlu
Qnl0ZXMpCiB7CiAgICAgaWYgKCFzaXplSW5CeXRlcykKICAgICAgICAgcmV0dXJuIG51bGxwdHI7
CkBAIC0xOTgsNyArMTk4LDcgQEAgUmVmUHRyPE1ldGFBbGxvY2F0b3JIYW5kbGU+IE1ldGFBbGxv
Y2F0b3I6OmFsbG9jYXRlKGNvbnN0IExvY2tIb2xkZXImLCBzaXplX3Qgc2kKICAgICByZXR1cm4g
aGFuZGxlOwogfQogCi1NZXRhQWxsb2NhdG9yOjpTdGF0aXN0aWNzIE1ldGFBbGxvY2F0b3I6OmN1
cnJlbnRTdGF0aXN0aWNzKGNvbnN0IExvY2tIb2xkZXImKQorTWV0YUFsbG9jYXRvcjo6U3RhdGlz
dGljcyBNZXRhQWxsb2NhdG9yOjpjdXJyZW50U3RhdGlzdGljcyhjb25zdCBVbmNoZWNrZWRMb2Nr
SG9sZGVyJikKIHsKICAgICBTdGF0aXN0aWNzIHJlc3VsdDsKICAgICByZXN1bHQuYnl0ZXNBbGxv
Y2F0ZWQgPSBtX2J5dGVzQWxsb2NhdGVkOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvTWV0
YUFsbG9jYXRvci5oIGIvU291cmNlL1dURi93dGYvTWV0YUFsbG9jYXRvci5oCmluZGV4IDVmYjcy
YzI4MGVkYzA2ZGVhODkzMWI2YTNjMDllMWZmN2JmNWM4ZDEuLmVkZmVjN2MzYjg5OTYyOWYwN2Rl
N2FhMDhkMGM2MzIyNzZmOGM0MGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL01ldGFBbGxv
Y2F0b3IuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9NZXRhQWxsb2NhdG9yLmgKQEAgLTY1LDcgKzY1
LDcgQEAgcHVibGljOgogICAgIHVzaW5nIEZyZWVTcGFjZVB0ciA9IE1ldGFBbGxvY2F0b3JQdHI8
RnJlZVNwYWNlUHRyVGFnPjsKICAgICB1c2luZyBNZW1vcnlQdHIgPSBNZXRhQWxsb2NhdG9ySGFu
ZGxlOjpNZW1vcnlQdHI7CiAKLSAgICBXVEZfRVhQT1JUX1BSSVZBVEUgTWV0YUFsbG9jYXRvcihM
b2NrJiwgc2l6ZV90IGFsbG9jYXRpb25HcmFudWxlLCBzaXplX3QgcGFnZVNpemUgPSBXVEY6OnBh
Z2VTaXplKCkpOworICAgIFdURl9FWFBPUlRfUFJJVkFURSBNZXRhQWxsb2NhdG9yKFVuY2hlY2tl
ZExvY2smLCBzaXplX3QgYWxsb2NhdGlvbkdyYW51bGUsIHNpemVfdCBwYWdlU2l6ZSA9IFdURjo6
cGFnZVNpemUoKSk7CiAgICAgCiAgICAgV1RGX0VYUE9SVF9QUklWQVRFIHZpcnR1YWwgfk1ldGFB
bGxvY2F0b3IoKTsKICAgICAKQEAgLTc0LDcgKzc0LDcgQEAgcHVibGljOgogICAgICAgICBMb2Nr
ZXIgbG9ja2VyIHsgbV9sb2NrIH07CiAgICAgICAgIHJldHVybiBhbGxvY2F0ZShsb2NrZXIsIHNp
emVJbkJ5dGVzKTsKICAgICB9Ci0gICAgV1RGX0VYUE9SVF9QUklWQVRFIFJlZlB0cjxNZXRhQWxs
b2NhdG9ySGFuZGxlPiBhbGxvY2F0ZShjb25zdCBMb2NrSG9sZGVyJiwgc2l6ZV90IHNpemVJbkJ5
dGVzKTsKKyAgICBXVEZfRVhQT1JUX1BSSVZBVEUgUmVmUHRyPE1ldGFBbGxvY2F0b3JIYW5kbGU+
IGFsbG9jYXRlKGNvbnN0IFVuY2hlY2tlZExvY2tIb2xkZXImLCBzaXplX3Qgc2l6ZUluQnl0ZXMp
OwogCiAgICAgdm9pZCB0cmFja0FsbG9jYXRpb25zKE1ldGFBbGxvY2F0b3JUcmFja2VyKiB0cmFj
a2VyKQogICAgIHsKQEAgLTk4LDcgKzk4LDcgQEAgcHVibGljOgogICAgICAgICBMb2NrZXIgbG9j
a2VyIHsgbV9sb2NrIH07CiAgICAgICAgIHJldHVybiBjdXJyZW50U3RhdGlzdGljcyhsb2NrZXIp
OwogICAgIH0KLSAgICBXVEZfRVhQT1JUX1BSSVZBVEUgU3RhdGlzdGljcyBjdXJyZW50U3RhdGlz
dGljcyhjb25zdCBMb2NrSG9sZGVyJik7CisgICAgV1RGX0VYUE9SVF9QUklWQVRFIFN0YXRpc3Rp
Y3MgY3VycmVudFN0YXRpc3RpY3MoY29uc3QgVW5jaGVja2VkTG9ja0hvbGRlciYpOwogCiAgICAg
Ly8gQWRkIG1vcmUgZnJlZSBzcGFjZSB0byB0aGUgYWxsb2NhdG9yLiBDYWxsIHRoaXMgZGlyZWN0
bHkgZnJvbQogICAgIC8vIHRoZSBjb25zdHJ1Y3RvciBpZiB5b3Ugd2lzaCB0byBvcGVyYXRlIHRo
ZSBhbGxvY2F0b3Igd2l0aGluIGEKQEAgLTEzNCw3ICsxMzQsNyBAQCBwcm90ZWN0ZWQ6CiAgICAg
Ly8gYXMgdGhlcmUgYXJlIEhhbmRsZXMgdGhhdCByZWZlciB0byBpdC4KIAogICAgIC8vIFJlbGVh
c2UgYSBNZXRhQWxsb2NhdG9ySGFuZGxlLgotICAgIFdURl9FWFBPUlRfUFJJVkFURSB2aXJ0dWFs
IHZvaWQgcmVsZWFzZShjb25zdCBMb2NrSG9sZGVyJiwgTWV0YUFsbG9jYXRvckhhbmRsZSYpOwor
ICAgIFdURl9FWFBPUlRfUFJJVkFURSB2aXJ0dWFsIHZvaWQgcmVsZWFzZShjb25zdCBVbmNoZWNr
ZWRMb2NrSG9sZGVyJiwgTWV0YUFsbG9jYXRvckhhbmRsZSYpOwogcHJpdmF0ZToKICAgICAKICAg
ICBmcmllbmQgY2xhc3MgTWV0YUFsbG9jYXRvckhhbmRsZTsKQEAgLTE5Nyw3ICsxOTcsNyBAQCBw
cml2YXRlOgogICAgIHNpemVfdCBtX2J5dGVzUmVzZXJ2ZWQ7CiAgICAgc2l6ZV90IG1fYnl0ZXND
b21taXR0ZWQ7CiAgICAgCi0gICAgTG9jayYgbV9sb2NrOworICAgIFVuY2hlY2tlZExvY2smIG1f
bG9jazsKIAogICAgIE1ldGFBbGxvY2F0b3JUcmFja2VyKiBtX3RyYWNrZXIgeyBudWxscHRyIH07
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1BhcmFsbGVsSGVscGVyUG9vbC5jcHAgYi9T
b3VyY2UvV1RGL3d0Zi9QYXJhbGxlbEhlbHBlclBvb2wuY3BwCmluZGV4IDQ0M2Q3MzEzZTZiYWQw
Mjg0MzQ5ZTYxMDdmMjAzOTdmOTNmNDNhOGQuLmM3MzQ2ODU1OTMxNGQwOTcwMGJkZDhhNWQwYTU1
MjAxZTBkNTBjOWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1BhcmFsbGVsSGVscGVyUG9v
bC5jcHAKKysrIGIvU291cmNlL1dURi93dGYvUGFyYWxsZWxIZWxwZXJQb29sLmNwcApAQCAtMTIy
LDcgKzEyMiw3IEBAIHZvaWQgUGFyYWxsZWxIZWxwZXJDbGllbnQ6OnJ1blRhc2soY29uc3QgUmVm
UHRyPFNoYXJlZFRhc2s8dm9pZCAoKT4+JiB0YXNrKQogfQogCiBQYXJhbGxlbEhlbHBlclBvb2w6
OlBhcmFsbGVsSGVscGVyUG9vbChDU3RyaW5nJiYgdGhyZWFkTmFtZSkKLSAgICA6IG1fbG9jayhC
b3g8TG9jaz46OmNyZWF0ZSgpKQorICAgIDogbV9sb2NrKEJveDxVbmNoZWNrZWRMb2NrPjo6Y3Jl
YXRlKCkpCiAgICAgLCBtX3dvcmtBdmFpbGFibGVDb25kaXRpb24oQXV0b21hdGljVGhyZWFkQ29u
ZGl0aW9uOjpjcmVhdGUoKSkKICAgICAsIG1fdGhyZWFkTmFtZShXVEZNb3ZlKHRocmVhZE5hbWUp
KQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvUGFyYWxsZWxIZWxwZXJQb29sLmggYi9T
b3VyY2UvV1RGL3d0Zi9QYXJhbGxlbEhlbHBlclBvb2wuaAppbmRleCAxZTc1OTljODNkNjcxMjFj
N2U2YmZlODdjY2E5MWVmNmNlODZlNDA3Li42NjRmYWRlODUzOTkzYWI0YjA1OTU0ODcyMjE0ZjM4
N2M5YTZkMDUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9QYXJhbGxlbEhlbHBlclBvb2wu
aAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9QYXJhbGxlbEhlbHBlclBvb2wuaApAQCAtMTk5LDkgKzE5
OSw5IEBAIHByaXZhdGU6CiAgICAgUGFyYWxsZWxIZWxwZXJDbGllbnQqIGdldENsaWVudFdpdGhU
YXNrKGNvbnN0IEFic3RyYWN0TG9ja2VyJik7CiAgICAgUGFyYWxsZWxIZWxwZXJDbGllbnQqIHdh
aXRGb3JDbGllbnRXaXRoVGFzayhjb25zdCBBYnN0cmFjdExvY2tlciYpOwogICAgIAotICAgIEJv
eDxMb2NrPiBtX2xvY2s7IC8vIEF1dG9tYXRpY1RocmVhZCB3YW50cyB0aGlzIGluIGEgYm94IGZv
ciBzYWZldHkuCisgICAgQm94PFVuY2hlY2tlZExvY2s+IG1fbG9jazsgLy8gQXV0b21hdGljVGhy
ZWFkIHdhbnRzIHRoaXMgaW4gYSBib3ggZm9yIHNhZmV0eS4KICAgICBSZWY8QXV0b21hdGljVGhy
ZWFkQ29uZGl0aW9uPiBtX3dvcmtBdmFpbGFibGVDb25kaXRpb247Ci0gICAgQ29uZGl0aW9uIG1f
d29ya0NvbXBsZXRlQ29uZGl0aW9uOworICAgIFVuY2hlY2tlZENvbmRpdGlvbiBtX3dvcmtDb21w
bGV0ZUNvbmRpdGlvbjsKIAogICAgIFdlYWtSYW5kb20gbV9yYW5kb207CiAgICAgCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV1RGL3d0Zi9SZWN1cnNpdmVMb2NrQWRhcHRlci5oIGIvU291cmNlL1dURi93
dGYvUmVjdXJzaXZlTG9ja0FkYXB0ZXIuaAppbmRleCAxZWUxMmQ0MTk0NzI2ZDIzMjQ5MmQ2NTQ0
NDE2ZWY2NjE0OGJkNjZhLi5jYTdiYzQ1NTQ0N2IxNTIyMDdjZTFhYjdmMGNiNDRkNGVkMThlOGRl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9SZWN1cnNpdmVMb2NrQWRhcHRlci5oCisrKyBi
L1NvdXJjZS9XVEYvd3RmL1JlY3Vyc2l2ZUxvY2tBZGFwdGVyLmgKQEAgLTg5LDcgKzg5LDcgQEAg
cHJpdmF0ZToKICAgICBMb2NrVHlwZSBtX2xvY2s7CiB9OwogCi11c2luZyBSZWN1cnNpdmVMb2Nr
ID0gUmVjdXJzaXZlTG9ja0FkYXB0ZXI8TG9jaz47Cit1c2luZyBSZWN1cnNpdmVMb2NrID0gUmVj
dXJzaXZlTG9ja0FkYXB0ZXI8VW5jaGVja2VkTG9jaz47CiAKIH0gLy8gbmFtZXNwYWNlIFdURgog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9Xb3JrZXJQb29sLmNwcCBiL1NvdXJjZS9XVEYv
d3RmL1dvcmtlclBvb2wuY3BwCmluZGV4IDhhOWMxZmRhNzRhNzNiMmM1YWI1Y2RhMmQ4ZTQ2MDlh
YmU4MGEzMGIuLjIxOWRiZjE1MWQ2NjM3YzY3YTNlNDc2ZmQxM2UzZDFiODhiNDM1N2EgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1dvcmtlclBvb2wuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3Rm
L1dvcmtlclBvb2wuY3BwCkBAIC0zMiw3ICszMiw3IEBAIGNsYXNzIFdvcmtlclBvb2w6Oldvcmtl
ciBmaW5hbCA6IHB1YmxpYyBBdXRvbWF0aWNUaHJlYWQgewogcHVibGljOgogICAgIGZyaWVuZCBj
bGFzcyBXb3JrZXJQb29sOwogCi0gICAgV29ya2VyKGNvbnN0IEFic3RyYWN0TG9ja2VyJiBsb2Nr
ZXIsIFdvcmtlclBvb2wmIHBvb2wsIEJveDxMb2NrPiBsb2NrLCBSZWY8QXV0b21hdGljVGhyZWFk
Q29uZGl0aW9uPiYmIGNvbmRpdGlvbiwgU2Vjb25kcyB0aW1lb3V0KQorICAgIFdvcmtlcihjb25z
dCBBYnN0cmFjdExvY2tlciYgbG9ja2VyLCBXb3JrZXJQb29sJiBwb29sLCBCb3g8VW5jaGVja2Vk
TG9jaz4gbG9jaywgUmVmPEF1dG9tYXRpY1RocmVhZENvbmRpdGlvbj4mJiBjb25kaXRpb24sIFNl
Y29uZHMgdGltZW91dCkKICAgICAgICAgOiBBdXRvbWF0aWNUaHJlYWQobG9ja2VyLCBsb2NrLCBX
VEZNb3ZlKGNvbmRpdGlvbiksIHRpbWVvdXQpCiAgICAgICAgICwgbV9wb29sKHBvb2wpCiAgICAg
ewpAQCAtODIsNyArODIsNyBAQCBwcml2YXRlOgogfTsKIAogV29ya2VyUG9vbDo6V29ya2VyUG9v
bChBU0NJSUxpdGVyYWwgbmFtZSwgdW5zaWduZWQgbnVtYmVyT2ZXb3JrZXJzLCBTZWNvbmRzIHRp
bWVvdXQpCi0gICAgOiBtX2xvY2soQm94PExvY2s+OjpjcmVhdGUoKSkKKyAgICA6IG1fbG9jayhC
b3g8VW5jaGVja2VkTG9jaz46OmNyZWF0ZSgpKQogICAgICwgbV9jb25kaXRpb24oQXV0b21hdGlj
VGhyZWFkQ29uZGl0aW9uOjpjcmVhdGUoKSkKICAgICAsIG1fdGltZW91dCh0aW1lb3V0KQogICAg
ICwgbV9uYW1lKG5hbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9Xb3JrZXJQb29sLmgg
Yi9Tb3VyY2UvV1RGL3d0Zi9Xb3JrZXJQb29sLmgKaW5kZXggNjIzNWU3MzFlZDc1YjgwMTI1MDk1
MzU5MDY4YjA4ZDRjMWRjZmVjMi4uN2E0MDQyYjQ2YjE2ODgwMjNmMWNlZjllNjQyYWIyYzQ4Yzg4
OTNkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvV29ya2VyUG9vbC5oCisrKyBiL1NvdXJj
ZS9XVEYvd3RmL1dvcmtlclBvb2wuaApAQCAtNTcsNyArNTcsNyBAQCBwcml2YXRlOgogCiAgICAg
Ym9vbCBzaG91bGRTbGVlcChjb25zdCBBYnN0cmFjdExvY2tlciYpOwogCi0gICAgQm94PExvY2s+
IG1fbG9jazsKKyAgICBCb3g8VW5jaGVja2VkTG9jaz4gbV9sb2NrOwogICAgIFJlZjxBdXRvbWF0
aWNUaHJlYWRDb25kaXRpb24+IG1fY29uZGl0aW9uOwogICAgIFNlY29uZHMgbV90aW1lb3V0Owog
ICAgIE1vbm90b25pY1RpbWUgbV9sYXN0VGltZW91dFRpbWUgeyBNb25vdG9uaWNUaW1lOjpuYW4o
KSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9BdG9tU3RyaW5nSW1wbC5jcHAg
Yi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0F0b21TdHJpbmdJbXBsLmNwcAppbmRleCBhMDI4ZTQyYTM0
NjQxOTZmZGE4NzQzZjcxMjdkOGI3M2IzZDFjMjhjLi4wMDllMmExOGZmZDJhNGE0NzRhMWVkZGY1
NThmNmVjYWI4Mjc5MzRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0F0b21TdHJp
bmdJbXBsLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0F0b21TdHJpbmdJbXBsLmNwcApA
QCAtNDUsNyArNDUsNyBAQCBjbGFzcyBBdG9tU3RyaW5nVGFibGVMb2NrZXIgOiBwdWJsaWMgTG9j
a0hvbGRlciB7CiAgICAgc3RhdGljIExvY2sgc19zdHJpbmdUYWJsZUxvY2s7CiBwdWJsaWM6CiAg
ICAgQXRvbVN0cmluZ1RhYmxlTG9ja2VyKCkKLSAgICAgICAgOiBMb2NrSG9sZGVyKCZzX3N0cmlu
Z1RhYmxlTG9jaykKKyAgICAgICAgOiBMb2NrSG9sZGVyKHNfc3RyaW5nVGFibGVMb2NrKQogICAg
IHsKICAgICB9CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvc2VydmVyL0lEQlNlcnZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9zZXJ2ZXIvSURCU2VydmVyLmNwcAppbmRleCAxZWRlZWQyYTNmYTYyMmM1ODIyNGIwNjgzMGEz
YWI0MzQ0YzA0NmNhLi40OWQ4NzY2MmZjYjNhNWFlMjNmMmE3YWI1MjdlNjU1N2MzMjZlYTNiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCU2Vy
dmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURC
U2VydmVyLmNwcApAQCAtNzMzLDcgKzczMyw3IEBAIHZvaWQgSURCU2VydmVyOjpyZW5hbWVPcmln
aW4oY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiBvbGRPcmlnaW4sIGNvbnN0CiAg
ICAgICAgIEZpbGVTeXN0ZW06Om1vdmVGaWxlKG9sZE9yaWdpblBhdGgsIG5ld09yaWdpblBhdGgp
OwogfQogCi1TdG9yYWdlUXVvdGFNYW5hZ2VyOjpEZWNpc2lvbiBJREJTZXJ2ZXI6OnJlcXVlc3RT
cGFjZShjb25zdCBDbGllbnRPcmlnaW4mIG9yaWdpbiwgdWludDY0X3QgdGFza1NpemUpCitTdG9y
YWdlUXVvdGFNYW5hZ2VyOjpEZWNpc2lvbiBJREJTZXJ2ZXI6OnJlcXVlc3RTcGFjZShjb25zdCBD
bGllbnRPcmlnaW4mIG9yaWdpbiwgdWludDY0X3QgdGFza1NpemUpIFdURl9JR05PUkVTX1RIUkVB
RF9TQUZFVFlfQU5BTFlTSVMKIHsKICAgICBBU1NFUlQoIWlzTWFpblRocmVhZCgpKTsKICAgICBB
U1NFUlQobV9sb2NrLmlzSGVsZCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXVkaW8vTWVkaWFFbGVtZW50QXVkaW9Tb3VyY2VOb2RlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1ZGlvL01lZGlhRWxlbWVudEF1ZGlvU291cmNlTm9kZS5oCmluZGV4IDc0
MzlhNmRiMjgyZmJiOTRmNDExZTQ3MTVhZGExNTk4Y2IwNGJjMzQuLjA2ZmU1MWQ5NDRkMGI4ZTlj
OGRiNjE0NjdkMWExODZjNWRkZjQxNGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXVkaW8vTWVkaWFFbGVtZW50QXVkaW9Tb3VyY2VOb2RlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdWRpby9NZWRpYUVsZW1lbnRBdWRpb1NvdXJjZU5vZGUuaApAQCAt
NTQsNyArNTQsNyBAQCBwdWJsaWM6CiAgICAgLy8gQXVkaW9Tb3VyY2VQcm92aWRlckNsaWVudAog
ICAgIHZvaWQgc2V0Rm9ybWF0KHNpemVfdCBudW1iZXJPZkNoYW5uZWxzLCBmbG9hdCBzYW1wbGVS
YXRlKSBvdmVycmlkZTsKIAotICAgIExvY2smIHByb2Nlc3NMb2NrKCkgeyByZXR1cm4gbV9wcm9j
ZXNzTG9jazsgfQorICAgIFVuY2hlY2tlZExvY2smIHByb2Nlc3NMb2NrKCkgeyByZXR1cm4gbV9w
cm9jZXNzTG9jazsgfQogCiBwcml2YXRlOgogICAgIE1lZGlhRWxlbWVudEF1ZGlvU291cmNlTm9k
ZShCYXNlQXVkaW9Db250ZXh0JiwgUmVmPEhUTUxNZWRpYUVsZW1lbnQ+JiYpOwpAQCAtNzAsNyAr
NzAsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgd291bGRUYWludE9yaWdpbigpOwogCiAgICAgUmVm
PEhUTUxNZWRpYUVsZW1lbnQ+IG1fbWVkaWFFbGVtZW50OwotICAgIExvY2sgbV9wcm9jZXNzTG9j
azsKKyAgICBVbmNoZWNrZWRMb2NrIG1fcHJvY2Vzc0xvY2s7CiAKICAgICB1bnNpZ25lZCBtX3Nv
dXJjZU51bWJlck9mQ2hhbm5lbHMgeyAwIH07CiAgICAgZG91YmxlIG1fc291cmNlU2FtcGxlUmF0
ZSB7IDAgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2Uv
RGF0YWJhc2VUcmFja2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2Uv
RGF0YWJhc2VUcmFja2VyLmNwcAppbmRleCA0NWIyN2Y5ZDM1MTljMTE5OTI0NzY2ZWM0YzI3ZTQw
MTM0MjkyMDQ5Li5hOWYyODBiOWM1OWY0OGJkYjI4ZGE3MzAxNTM3NjQzZTk0ZGQ2NTYwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlVHJhY2tl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRy
YWNrZXIuY3BwCkBAIC0xMjg1LDggKzEyODUsOCBAQCBib29sIERhdGFiYXNlVHJhY2tlcjo6ZGVs
ZXRlRGF0YWJhc2VGaWxlSWZFbXB0eShjb25zdCBTdHJpbmcmIHBhdGgpCiAgICAgcmV0dXJuIFNR
TGl0ZUZpbGVTeXN0ZW06OmRlbGV0ZURhdGFiYXNlRmlsZShwYXRoKTsKIH0KIAotc3RhdGljIExv
Y2sgb3BlbkRhdGFiYXNlTG9jazsKLUxvY2smIERhdGFiYXNlVHJhY2tlcjo6b3BlbkRhdGFiYXNl
TXV0ZXgoKQorc3RhdGljIFVuY2hlY2tlZExvY2sgb3BlbkRhdGFiYXNlTG9jazsKK1VuY2hlY2tl
ZExvY2smIERhdGFiYXNlVHJhY2tlcjo6b3BlbkRhdGFiYXNlTXV0ZXgoKQogewogICAgIHJldHVy
biBvcGVuRGF0YWJhc2VMb2NrOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRyYWNrZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViZGF0YWJhc2UvRGF0YWJhc2VUcmFja2VyLmgKaW5kZXggZGQ5YzVkODc3NmJkMWRjMzg5NjZl
NzVmNTRmMTMxYWRkNzY2OGIzNC4uYmRjZjZkMDdkZDhhMzM2NWRjNGFmZWI5NDNmY2I4YjVhY2U5
NGY2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRh
YmFzZVRyYWNrZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0Rh
dGFiYXNlVHJhY2tlci5oCkBAIC0xMDQsNyArMTA0LDcgQEAgcHVibGljOgogICAgIC8vIE1vYmls
ZVNhZmFyaSB3aWxsIGdyYWIgdGhpcyBtdXRleCBvbiB0aGUgbWFpbiB0aHJlYWQgYmVmb3JlIGRp
c3BhdGNoaW5nIHRoZSB0YXNrIHRvIAogICAgIC8vIGNsZWFuIHVwIHplcm8gYnl0ZSBkYXRhYmFz
ZSBmaWxlcy4gIEFueSBvcGVyYXRpb25zIHRvIG9wZW4gbmV3IGRhdGFiYXNlIHdpbGwgaGF2ZSB0
bwogICAgIC8vIHdhaXQgZm9yIHRoYXQgdGFzayB0byBmaW5pc2ggYnkgd2FpdGluZyBvbiB0aGlz
IG11dGV4LgotICAgIHN0YXRpYyBMb2NrJiBvcGVuRGF0YWJhc2VNdXRleCgpOworICAgIHN0YXRp
YyBVbmNoZWNrZWRMb2NrJiBvcGVuRGF0YWJhc2VNdXRleCgpOwogICAgIAogICAgIFdFQkNPUkVf
RVhQT1JUIHN0YXRpYyB2b2lkIGVtcHR5RGF0YWJhc2VGaWxlc1JlbW92YWxUYXNrV2lsbEJlU2No
ZWR1bGVkKCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHZvaWQgZW1wdHlEYXRhYmFzZUZp
bGVzUmVtb3ZhbFRhc2tEaWRGaW5pc2goKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViZGF0YWJhc2UvT3JpZ2luTG9jay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmRhdGFiYXNlL09yaWdpbkxvY2suY3BwCmluZGV4IGEyMWJjZGI3ODM4NmM4MTBlYzU5OTQx
YzI3NWY0ZWZiYWZmMjNmYjMuLjc1M2U0ZTVhYzg2NjI4M2E0YzczZjQ0YWY5YWE0ZWNkZjVkMTVh
ZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvT3JpZ2lu
TG9jay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9PcmlnaW5M
b2NrLmNwcApAQCAtNDMsNyArNDMsNyBAQCBPcmlnaW5Mb2NrOjpPcmlnaW5Mb2NrKFN0cmluZyBv
cmlnaW5QYXRoKQogCiBPcmlnaW5Mb2NrOjp+T3JpZ2luTG9jaygpID0gZGVmYXVsdDsKIAotdm9p
ZCBPcmlnaW5Mb2NrOjpsb2NrKCkKK3ZvaWQgT3JpZ2luTG9jazo6bG9jaygpIFdURl9JR05PUkVT
X1RIUkVBRF9TQUZFVFlfQU5BTFlTSVMKIHsKICAgICBtX211dGV4LmxvY2soKTsKIApAQCAtNTks
NyArNTksNyBAQCB2b2lkIE9yaWdpbkxvY2s6OmxvY2soKQogI2VuZGlmCiB9CiAKLXZvaWQgT3Jp
Z2luTG9jazo6dW5sb2NrKCkKK3ZvaWQgT3JpZ2luTG9jazo6dW5sb2NrKCkgV1RGX0lHTk9SRVNf
VEhSRUFEX1NBRkVUWV9BTkFMWVNJUwogewogI2lmIFVTRShGSUxFX0xPQ0spCiAgICAgLy8gSWYg
dGhlIGZpbGUgZGVzY3JpcHRvciB3YXMgdW5pbml0aWFsaXplZCwgdGhlbiB0aGF0IG1lYW5zIHRo
ZSBkaXJlY3RvcnkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9N
R2xvYmFsT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9i
amVjdC5oCmluZGV4IDE2NGM3MjM4NjQ2YTAwYTNkMDVlYTFiYTQxYzk3MDYwNTVkNDE0ZTQuLjk1
NmQ1MWFkNDgwZDRkZDJjMGE4OTM4ZGVhZjQ0ZGFhYmFhNzU2ZGYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3QuaApAQCAtNTgsNyArNTgsNyBAQCBw
dWJsaWM6CiAgICAgc3RhdGljIHZvaWQgZGVzdHJveShKU0M6OkpTQ2VsbCopOwogCiBwdWJsaWM6
Ci0gICAgTG9jayYgZ2NMb2NrKCkgeyByZXR1cm4gbV9nY0xvY2s7IH0KKyAgICBVbmNoZWNrZWRM
b2NrJiBnY0xvY2soKSB7IHJldHVybiBtX2djTG9jazsgfQogCiAgICAgSlNET01TdHJ1Y3R1cmVN
YXAmIHN0cnVjdHVyZXMoY29uc3QgQWJzdHJhY3RMb2NrZXImKSB7IHJldHVybiBtX3N0cnVjdHVy
ZXM7IH0KICAgICBKU0RPTUNvbnN0cnVjdG9yTWFwJiBjb25zdHJ1Y3RvcnMoY29uc3QgQWJzdHJh
Y3RMb2NrZXImKSB7IHJldHVybiBtX2NvbnN0cnVjdG9yczsgfQpAQCAtMTIxLDcgKzEyMSw3IEBA
IHByb3RlY3RlZDoKIAogICAgIFJlZjxET01XcmFwcGVyV29ybGQ+IG1fd29ybGQ7CiAgICAgdWlu
dDhfdCBtX3dvcmxkSXNOb3JtYWw7Ci0gICAgTG9jayBtX2djTG9jazsKKyAgICBVbmNoZWNrZWRM
b2NrIG1fZ2NMb2NrOwogICAgIEpTQzo6V3JpdGVCYXJyaWVyPEpTQzo6SlNQcm94eT4gbV9wcm94
eTsKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAppbmRleCA3ZWFlM2ExMWFlY2ZiMmFhZDk5ZmYx
OTJiNDU4N2Q5Njc1Y2ZkZmI3Li5hMmU1Y2EzZjEyMTY4MzgwOTgzMjQwZmZiYTFlNGZkYTcwMzI1
ZjRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL05vZGUuY3BwCkBAIC0yMjExLDcgKzIyMTEsNyBAQCBzdGF0aWMgRXZlbnRU
YXJnZXREYXRhTWFwJiBldmVudFRhcmdldERhdGFNYXAoKQogICAgIHJldHVybiBtYXA7CiB9CiAK
LXN0YXRpYyBMb2NrIHNfZXZlbnRUYXJnZXREYXRhTWFwTG9jazsKK3N0YXRpYyBVbmNoZWNrZWRM
b2NrIHNfZXZlbnRUYXJnZXREYXRhTWFwTG9jazsKIAogRXZlbnRUYXJnZXREYXRhKiBOb2RlOjpl
dmVudFRhcmdldERhdGEoKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
TWVkaWFFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5j
cHAKaW5kZXggOWJkNDAwMTBjMzVhYTBlOTdiNmUxZGFlNDhiM2UxMGQ0ZDk1ZDY3Zi4uMWJjZGNh
MWE3MmM4MDAxNWM0NDgwMmZhYWY0NTZhNDZkODRlM2M1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxNZWRpYUVsZW1lbnQuY3BwCkBAIC02NjI2LDcgKzY2MjYsNyBAQCB2b2lkIEhUTUxNZWRp
YUVsZW1lbnQ6OmNyZWF0ZU1lZGlhUGxheWVyKCkKIAogI2lmIEVOQUJMRShXRUJfQVVESU8pCiAg
ICAgYXV0byBwcm90ZWN0ZWRBdWRpb1NvdXJjZU5vZGUgPSBtYWtlUmVmUHRyKG1fYXVkaW9Tb3Vy
Y2VOb2RlKTsKLSAgICBMb2NrZXI8TG9jaz4gYXVkaW9Tb3VyY2VOb2RlTG9ja2VyKG1fYXVkaW9T
b3VyY2VOb2RlID8gJm1fYXVkaW9Tb3VyY2VOb2RlLT5wcm9jZXNzTG9jaygpIDogbnVsbHB0cik7
CisgICAgTG9ja2VyIGF1ZGlvU291cmNlTm9kZUxvY2tlcihtX2F1ZGlvU291cmNlTm9kZSA/ICZt
X2F1ZGlvU291cmNlTm9kZS0+cHJvY2Vzc0xvY2soKSA6IG51bGxwdHIpOwogI2VuZGlmCiAKICNp
ZiBFTkFCTEUoTUVESUFfU09VUkNFKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9j
YW52YXMvV2ViR0xDb250ZXh0R3JvdXAuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
V2ViR0xDb250ZXh0R3JvdXAuY3BwCmluZGV4IGFiZDhmMjczNjgzOTFlM2UxZDdmY2Y5ZDM3Yjlk
Nzc5NmFmMzM2MWIuLjE0YzJhMDg5OTdkOTAxZGExNDBhNGIwMzc4NDhlNzQxNDQzZjY1MjUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMQ29udGV4dEdyb3VwLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTENvbnRleHRHcm91cC5jcHAK
QEAgLTU1LDcgKzU1LDcgQEAgR3JhcGhpY3NDb250ZXh0R0wmIFdlYkdMQ29udGV4dEdyb3VwOjpn
ZXRBR3JhcGhpY3NDb250ZXh0R0woKQogICAgIHJldHVybiAqKCptX2NvbnRleHRzLmJlZ2luKCkp
LT5ncmFwaGljc0NvbnRleHRHTCgpOwogfQogCi1XVEY6OkxvY2smIFdlYkdMQ29udGV4dEdyb3Vw
OjpvYmplY3RHcmFwaExvY2tGb3JBQ29udGV4dCgpCitVbmNoZWNrZWRMb2NrJiBXZWJHTENvbnRl
eHRHcm91cDo6b2JqZWN0R3JhcGhMb2NrRm9yQUNvbnRleHQoKQogewogICAgIEFTU0VSVCghbV9j
b250ZXh0cy5pc0VtcHR5KCkpOwogICAgIC8vIFNpbmNlIHRoZSBXRUJHTF9zaGFyZWRfb2JqZWN0
cyBleHRlbnNpb24gbmV2ZXIgc2hpcHBlZCwgYW5kIGlzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL2NhbnZhcy9XZWJHTENvbnRleHRHcm91cC5oIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9jYW52YXMvV2ViR0xDb250ZXh0R3JvdXAuaAppbmRleCA4NTVjZTcyMzk4NmZlMDc3NTk4ZjI0
NjgxYWU4MDg2YzgxZWRmYTAzLi5iNmFmZTBhZjk3ZWJkZmZhYzFhMWNkMDA0M2ZmYmY3OWNjZDE3
NzhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTENvbnRleHRH
cm91cC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMQ29udGV4dEdyb3Vw
LmgKQEAgLTQ1LDcgKzQ1LDcgQEAgcHVibGljOgogCiAgICAgYm9vbCBoYXNBQ29udGV4dCgpIGNv
bnN0OwogICAgIEdyYXBoaWNzQ29udGV4dEdMJiBnZXRBR3JhcGhpY3NDb250ZXh0R0woKTsKLSAg
ICBMb2NrJiBvYmplY3RHcmFwaExvY2tGb3JBQ29udGV4dCgpOworICAgIFVuY2hlY2tlZExvY2sm
IG9iamVjdEdyYXBoTG9ja0ZvckFDb250ZXh0KCk7CiAKICAgICB2b2lkIGxvc2VDb250ZXh0R3Jv
dXAoV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6TG9zdENvbnRleHRNb2RlKTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xDb250ZXh0T2JqZWN0LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMQ29udGV4dE9iamVjdC5jcHAKaW5kZXgg
N2M5MTlmMmI2NjU2YjY3YjE2Y2E2MzQwYjBiMmE0YjY0NWQwNDYzYi4uMjQzNTRkMDViODFiYzg1
MjJiZTc3ZDNiYjhmNGNjZTQ3ZWIzNjNmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9jYW52YXMvV2ViR0xDb250ZXh0T2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L2NhbnZhcy9XZWJHTENvbnRleHRPYmplY3QuY3BwCkBAIC01NCw3ICs1NCw3IEBAIHZvaWQgV2Vi
R0xDb250ZXh0T2JqZWN0OjpkZXRhY2hDb250ZXh0KGNvbnN0IEFic3RyYWN0TG9ja2VyJiBsb2Nr
ZXIpCiAgICAgfQogfQogCi1XVEY6OkxvY2smIFdlYkdMQ29udGV4dE9iamVjdDo6b2JqZWN0R3Jh
cGhMb2NrRm9yQ29udGV4dCgpCitVbmNoZWNrZWRMb2NrJiBXZWJHTENvbnRleHRPYmplY3Q6Om9i
amVjdEdyYXBoTG9ja0ZvckNvbnRleHQoKQogewogICAgIC8vIFNob3VsZCBub3QgY2FsbCB0aGlz
IGlmIHRoZSBvYmplY3Qgb3IgY29udGV4dCBoYXMgYmVlbiBkZWxldGVkLgogICAgIEFTU0VSVCht
X2NvbnRleHQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xD
b250ZXh0T2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTENvbnRleHRP
YmplY3QuaAppbmRleCBkYmZkZDZiZmMwZWY0NGViODgyZWI5YzU5YjAwOGQyOTgxMTI2NDk1Li4w
ZWE3OTlmZmJiM2E4YWFlMDExM2Q5YTU1Y2UzZTYzYmJhMmM4ZWFmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTENvbnRleHRPYmplY3QuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTENvbnRleHRPYmplY3QuaApAQCAtNDksNyArNDksNyBA
QCBwdWJsaWM6CiAKICAgICB2b2lkIGRldGFjaENvbnRleHQoY29uc3QgV1RGOjpBYnN0cmFjdExv
Y2tlciYpOwogCi0gICAgV1RGOjpMb2NrJiBvYmplY3RHcmFwaExvY2tGb3JDb250ZXh0KCkgb3Zl
cnJpZGU7CisgICAgVW5jaGVja2VkTG9jayYgb2JqZWN0R3JhcGhMb2NrRm9yQ29udGV4dCgpIG92
ZXJyaWRlOwogCiBwcm90ZWN0ZWQ6CiAgICAgV2ViR0xDb250ZXh0T2JqZWN0KFdlYkdMUmVuZGVy
aW5nQ29udGV4dEJhc2UmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFz
L1dlYkdMT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTE9iamVjdC5o
CmluZGV4IDAwY2Q4ZjBjMmI3YjIxYmJmOTcyYWZhN2NmYzVlZTg1ZTNlMDYwZGQuLjYyYjM4ZmUy
ZmVlNzgzZTNiYjMxZDc1NTNhODgwNzNhYjg2YTNhOTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL1dlYkdMT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9j
YW52YXMvV2ViR0xPYmplY3QuaApAQCAtMjksMTEgKzI5LDcgQEAKIAogI2luY2x1ZGUgIkdyYXBo
aWNzVHlwZXNHTC5oIgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+Ci0KLW5hbWVzcGFjZSBX
VEYgewotY2xhc3MgQWJzdHJhY3RMb2NrZXI7Ci1jbGFzcyBMb2NrOwotfQorI2luY2x1ZGUgPHd0
Zi9Gb3J3YXJkLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNzEsNyArNjcsNyBAQCBw
dWJsaWM6CiAgICAgLy8gV0VCR0xfc2hhcmVkX29iamVjdHMgZXh0ZW5zaW9uIHNwZWNpZmljYXRp
b24gbmV2ZXIgc2hpcHBlZCAoYW5kCiAgICAgLy8gaXMgdW5saWtlbHkgdG8pLCB0aGlzIGJhc2lj
YWxseSByZXR1cm5zIHRoZSBzYW1lIHJlc3VsdCBmb3IKICAgICAvLyBib3RoIGNvbnRleHQgb2Jq
ZWN0cyBhbmQgc2hhcmVkIG9iamVjdHMuCi0gICAgdmlydHVhbCBXVEY6OkxvY2smIG9iamVjdEdy
YXBoTG9ja0ZvckNvbnRleHQoKSA9IDA7CisgICAgdmlydHVhbCBVbmNoZWNrZWRMb2NrJiBvYmpl
Y3RHcmFwaExvY2tGb3JDb250ZXh0KCkgPSAwOwogCiBwcm90ZWN0ZWQ6CiAgICAgV2ViR0xPYmpl
Y3QoKSA9IGRlZmF1bHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9X
ZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFz
L1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwCmluZGV4IDBhMTQ5Mjk5N2Q3OGE1YjE5YTIz
NTViYzg1NjkyOTg0OGE4MTg3ODYuLmEwYjY3OWU3ZjI4YjFiMWU0YThlZjJhYjhlMTcxNTBjMDlm
NGVmNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVy
aW5nQ29udGV4dEJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdM
UmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwCkBAIC03OTkwLDcgKzc5OTAsNyBAQCB2b2lkIFdlYkdM
UmVuZGVyaW5nQ29udGV4dEJhc2U6OmFkZE1lbWJlcnNUb09wYXF1ZVJvb3RzKEpTQzo6QWJzdHJh
Y3RTbG90VmlzaXRvcgogICAgIC8vIHJvb3RzIGZvciBleHRlbnNpb25zLgogfQogCi1Mb2NrJiBX
ZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpvYmplY3RHcmFwaExvY2soKQorVW5jaGVja2VkTG9j
ayYgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6b2JqZWN0R3JhcGhMb2NrKCkKIHsKICAgICBy
ZXR1cm4gbV9vYmplY3RHcmFwaExvY2s7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmgKaW5kZXggZmFlOGE1MzllYzg5
MTQzOTI5ZWFiNDZmY2EzM2MzMTI2YTNjMTY5Zi4uZDdjYmVlZDMyY2JjMGI3OTdjMTA2OGZkNTk3
ZDEzZWQ4ZTRjMTk3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2Vi
R0xSZW5kZXJpbmdDb250ZXh0QmFzZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFz
L1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuaApAQCAtNDI2LDcgKzQyNiw3IEBAIHB1YmxpYzoK
ICAgICAvLyBjdXJyZW50bHkgbGF0Y2hlZCBpbnRvIHRoZSBjb250ZXh0IC0gd2l0aG91dCB0cmF2
ZXJzaW5nIGFsbCBvZgogICAgIC8vIHRoZSBsYXRjaGVkIG9iamVjdHMgdG8gZmluZCB0aGUgY3Vy
cmVudCBvbmUsIHdoaWNoIHdvdWxkIGJlCiAgICAgLy8gcHJvaGliaXRpdmVseSBleHBlbnNpdmUu
Ci0gICAgTG9jayYgb2JqZWN0R3JhcGhMb2NrKCk7CisgICAgVW5jaGVja2VkTG9jayYgb2JqZWN0
R3JhcGhMb2NrKCk7CiAKIHByb3RlY3RlZDoKICAgICBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNl
KENhbnZhc0Jhc2UmLCBXZWJHTENvbnRleHRBdHRyaWJ1dGVzKTsKQEAgLTU0MCw3ICs1NDAsNyBA
QCBwcm90ZWN0ZWQ6CiAKICAgICBSZWZQdHI8R3JhcGhpY3NDb250ZXh0R0w+IG1fY29udGV4dDsK
ICAgICBSZWZQdHI8V2ViR0xDb250ZXh0R3JvdXA+IG1fY29udGV4dEdyb3VwOwotICAgIExvY2sg
bV9vYmplY3RHcmFwaExvY2s7CisgICAgVW5jaGVja2VkTG9jayBtX29iamVjdEdyYXBoTG9jazsK
IAogICAgIGJvb2wgbV9yZXN0b3JlQWxsb3dlZCB7IGZhbHNlIH07CiAgICAgU3VzcGVuZGFibGVU
aW1lciBtX3Jlc3RvcmVUaW1lcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2Fu
dmFzL1dlYkdMU2hhcmVkT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dl
YkdMU2hhcmVkT2JqZWN0LmNwcAppbmRleCA5MzZjOTgxYzk5MjkwZDhlN2NlZjk4YjEzYjU2OTNj
YmViMjM3OThjLi4wYWI4Y2IyNDFhMWIzZjM4OGZlZjM4Mjk5NzZjZWNmNmQ0ODdkMzc4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFNoYXJlZE9iamVjdC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xTaGFyZWRPYmplY3QuY3BwCkBA
IC04Miw3ICs4Miw3IEBAIEdyYXBoaWNzQ29udGV4dEdMKiBXZWJHTFNoYXJlZE9iamVjdDo6Z2V0
QUdyYXBoaWNzQ29udGV4dEdMKCkgY29uc3QKICAgICByZXR1cm4gbV9jb250ZXh0R3JvdXAgPyAm
bV9jb250ZXh0R3JvdXAtPmdldEFHcmFwaGljc0NvbnRleHRHTCgpIDogbnVsbHB0cjsKIH0KIAot
V1RGOjpMb2NrJiBXZWJHTFNoYXJlZE9iamVjdDo6b2JqZWN0R3JhcGhMb2NrRm9yQ29udGV4dCgp
CitVbmNoZWNrZWRMb2NrJiBXZWJHTFNoYXJlZE9iamVjdDo6b2JqZWN0R3JhcGhMb2NrRm9yQ29u
dGV4dCgpCiB7CiAgICAgLy8gU2hvdWxkIG5vdCBjYWxsIHRoaXMgaWYgdGhlIG9iamVjdCBvciBj
b250ZXh0IGhhcyBiZWVuIGRlbGV0ZWQuCiAgICAgQVNTRVJUKG1fY29udGV4dEdyb3VwKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMU2hhcmVkT2JqZWN0Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFNoYXJlZE9iamVjdC5oCmluZGV4IDVk
MTNhZmEzODQ2YWEyMTUzMGMwYWJkNTM5MGFhMWU3OThlOWUxZDAuLmY1M2RiMTliMDY5MjI5MDZi
ZGNjYjE2YzM5MzczODYxNWYxNzY1NzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL1dlYkdMU2hhcmVkT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvV2ViR0xTaGFyZWRPYmplY3QuaApAQCAtNTksNyArNTksNyBAQCBwdWJsaWM6CiAKICAgICB2
b2lkIGRldGFjaENvbnRleHRHcm91cFdpdGhvdXREZWxldGluZ09iamVjdCgpOwogCi0gICAgV1RG
OjpMb2NrJiBvYmplY3RHcmFwaExvY2tGb3JDb250ZXh0KCkgb3ZlcnJpZGU7CisgICAgVW5jaGVj
a2VkTG9jayYgb2JqZWN0R3JhcGhMb2NrRm9yQ29udGV4dCgpIG92ZXJyaWRlOwogCiBwcm90ZWN0
ZWQ6CiAgICAgV2ViR0xTaGFyZWRPYmplY3QoV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1Ry
ZWVNYWMuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVl
TWFjLmgKaW5kZXggYjQyYmY0MTE0NTRmYTAzNGE3ZGFhODZjMzE1M2FhMWQ2NmE5ODNjZS4uODhk
YWQxZWRkMWI5MDUyMGQxZjBjYjZiNzcwNmZlZDAyMjQwNjdhZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVNYWMuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZU1hYy5oCkBAIC01NSw4
ICs1NSw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkZWZlcldoZWVsRXZlbnRUZXN0Q29tcGxldGlv
bkZvclJlYXNvbihXaGVlbEV2ZW50VGVzdE1vbml0b3I6OlNjcm9sbGFibGVBcmVhSWRlbnRpZmll
ciwgV2hlZWxFdmVudFRlc3RNb25pdG9yOjpEZWZlclJlYXNvbikgZmluYWw7CiAgICAgdm9pZCBy
ZW1vdmVXaGVlbEV2ZW50VGVzdENvbXBsZXRpb25EZWZlcnJhbEZvclJlYXNvbihXaGVlbEV2ZW50
VGVzdE1vbml0b3I6OlNjcm9sbGFibGVBcmVhSWRlbnRpZmllciwgV2hlZWxFdmVudFRlc3RNb25p
dG9yOjpEZWZlclJlYXNvbikgZmluYWw7CiAKLSAgICB2b2lkIGxvY2tMYXllcnNGb3JIaXRUZXN0
aW5nKCkgZmluYWw7Ci0gICAgdm9pZCB1bmxvY2tMYXllcnNGb3JIaXRUZXN0aW5nKCkgZmluYWw7
CisgICAgdm9pZCBsb2NrTGF5ZXJzRm9ySGl0VGVzdGluZygpIGZpbmFsIFdURl9BQ1FVSVJFU19M
T0NLKG1fbGF5ZXJIaXRUZXN0TXV0ZXgpOworICAgIHZvaWQgdW5sb2NrTGF5ZXJzRm9ySGl0VGVz
dGluZygpIGZpbmFsIFdURl9SRUxFQVNFU19MT0NLKG1fbGF5ZXJIaXRUZXN0TXV0ZXgpOwogCiAg
ICAgLy8gVGhpcyBsb2NrIHByb3RlY3RzIHRoZSBDQUxheWVyL1BsYXRmb3JtQ0FMYXllciB0cmVl
LgogICAgIG11dGFibGUgTG9jayBtX2xheWVySGl0VGVzdE11dGV4OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vUmV2ZXJiQ29udm9sdmVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1JldmVyYkNvbnZvbHZlci5jcHAKaW5kZXggYzI1Y2FmMGQ5
YmM0Njk1YzQ4MGRkY2M5ODRmZjkxN2VmNTIzYzBmNi4uNjM1YThmNzdiMzE0MjBkYzA1ZWZmNDVm
NWY1ODU4ODhmYmFiZmM5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVk
aW8vUmV2ZXJiQ29udm9sdmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRp
by9SZXZlcmJDb252b2x2ZXIuY3BwCkBAIC0xNDgsOSArMTQ4LDkgQEAgdm9pZCBSZXZlcmJDb252
b2x2ZXI6OmJhY2tncm91bmRUaHJlYWRFbnRyeSgpCiAgICAgICAgIC8vIFdhaXQgZm9yIHJlYWx0
aW1lIHRocmVhZCB0byBnaXZlIHVzIG1vcmUgaW5wdXQKICAgICAgICAgbV9tb3JlSW5wdXRCdWZm
ZXJlZCA9IGZhbHNlOyAgICAgICAgCiAgICAgICAgIHsKLSAgICAgICAgICAgIHN0ZDo6dW5pcXVl
X2xvY2s8TG9jaz4gbG9jayhtX2JhY2tncm91bmRUaHJlYWRMb2NrKTsKKyAgICAgICAgICAgIExv
Y2tlciBsb2NrZXIgeyBtX2JhY2tncm91bmRUaHJlYWRMb2NrIH07CiAKLSAgICAgICAgICAgIG1f
YmFja2dyb3VuZFRocmVhZENvbmRpdGlvblZhcmlhYmxlLndhaXQobG9jaywgW3RoaXNdIHsgcmV0
dXJuIG1fbW9yZUlucHV0QnVmZmVyZWQgfHwgbV93YW50c1RvRXhpdDsgfSk7CisgICAgICAgICAg
ICBtX2JhY2tncm91bmRUaHJlYWRDb25kaXRpb25WYXJpYWJsZS53YWl0KG1fYmFja2dyb3VuZFRo
cmVhZExvY2ssIFt0aGlzXSB7IHJldHVybiBtX21vcmVJbnB1dEJ1ZmZlcmVkIHx8IG1fd2FudHNU
b0V4aXQ7IH0pOwogICAgICAgICB9CiAKICAgICAgICAgLy8gUHJvY2VzcyBhbGwgb2YgdGhlIHN0
YWdlcyB1bnRpbCB0aGVpciByZWFkIGluZGljZXMgcmVhY2ggdGhlIGlucHV0IGJ1ZmZlcidzIHdy
aXRlIGluZGV4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9T
aGFkb3dCbHVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1NoYWRvd0Js
dXIuY3BwCmluZGV4IDYxNGRmYzY1Y2VhNGYyY2VmNjI5MTM4OTk0OTJmZDYwNDQxMGE4NTguLjdh
N2Y2NzBhMjgxNDI0NDM4NTM3NzE5NzFmMzkxNzY0ZjIxOWUyNjAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1NoYWRvd0JsdXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1NoYWRvd0JsdXIuY3BwCkBAIC0xMjIsNyArMTIyLDcg
QEAgcHVibGljOgogICAgIH0KIAogICAgIHN0YXRpYyBTY3JhdGNoQnVmZmVyJiBzaW5nbGV0b24o
KTsKLSAgICBzdGF0aWMgTG9jayYgbG9jaygpOworICAgIHN0YXRpYyBVbmNoZWNrZWRMb2NrJiBs
b2NrKCk7CiAKIHByaXZhdGU6CiAgICAgdm9pZCBzY2hlZHVsZVNjcmF0Y2hCdWZmZXJQdXJnZSgp
CkBAIC0xNjgsOSArMTY4LDkgQEAgU2NyYXRjaEJ1ZmZlciYgU2NyYXRjaEJ1ZmZlcjo6c2luZ2xl
dG9uKCkKICAgICByZXR1cm4gc2NyYXRjaEJ1ZmZlcjsKIH0KIAotTG9jayYgU2NyYXRjaEJ1ZmZl
cjo6bG9jaygpCitVbmNoZWNrZWRMb2NrJiBTY3JhdGNoQnVmZmVyOjpsb2NrKCkKIHsKLSAgICBz
dGF0aWMgTG9jayBsb2NrOworICAgIHN0YXRpYyBVbmNoZWNrZWRMb2NrIGxvY2s7CiAgICAgcmV0
dXJuIGxvY2s7CiB9CiAKQEAgLTY5Niw3ICs2OTYsNyBAQCB2b2lkIFNoYWRvd0JsdXI6OmRyYXdS
ZWN0U2hhZG93V2l0aFRpbGluZyhjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIHRyYW5zZm9ybSwgY29u
cwogewogICAgIFJlZlB0cjxJbWFnZUJ1ZmZlcj4gbGF5ZXJJbWFnZUJ1ZmZlcjsKICNpZiBVU0Uo
Q0cpCi0gICAgYXV0byBsb2NrZXIgPSBMb2NrZXI8TG9jaz46OnRyeUxvY2soU2NyYXRjaEJ1ZmZl
cjo6bG9jaygpKTsKKyAgICBhdXRvIGxvY2tlciA9IExvY2tlcjxVbmNoZWNrZWRMb2NrPjo6dHJ5
TG9jayhTY3JhdGNoQnVmZmVyOjpsb2NrKCkpOwogICAgIGlmIChsb2NrZXIpIHsKICAgICAgICAg
bGF5ZXJJbWFnZUJ1ZmZlciA9IFNjcmF0Y2hCdWZmZXI6OnNpbmdsZXRvbigpLmdldFNjcmF0Y2hC
dWZmZXIodGVtcGxhdGVTaXplKTsKICAgICAgICAgaWYgKCFsYXllckltYWdlQnVmZmVyKQpAQCAt
NzU2LDcgKzc1Niw3IEBAIHZvaWQgU2hhZG93Qmx1cjo6ZHJhd0luc2V0U2hhZG93V2l0aFRpbGlu
Zyhjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIHRyYW5zZm9ybSwgY29uCiB7CiAgICAgUmVmUHRyPElt
YWdlQnVmZmVyPiBsYXllckltYWdlQnVmZmVyOwogI2lmIFVTRShDRykKLSAgICBhdXRvIGxvY2tl
ciA9IExvY2tlcjxMb2NrPjo6dHJ5TG9jayhTY3JhdGNoQnVmZmVyOjpsb2NrKCkpOworICAgIGF1
dG8gbG9ja2VyID0gTG9ja2VyPFVuY2hlY2tlZExvY2s+Ojp0cnlMb2NrKFNjcmF0Y2hCdWZmZXI6
OmxvY2soKSk7CiAgICAgaWYgKGxvY2tlcikgewogICAgICAgICBsYXllckltYWdlQnVmZmVyID0g
U2NyYXRjaEJ1ZmZlcjo6c2luZ2xldG9uKCkuZ2V0U2NyYXRjaEJ1ZmZlcih0ZW1wbGF0ZVNpemUp
OwogICAgICAgICBpZiAoIWxheWVySW1hZ2VCdWZmZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVmlkZW9TaW5rR1N0cmVhbWVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb1NpbmtHU3Ry
ZWFtZXIuY3BwCmluZGV4IDExYmVhMTJiNjZkYzU0NjI1YTgyOWY5MDc0YTkyYzAzNzRjZTI4OTUu
LjU3YTcyYWM1ODBjZWNmMTZhMGUzYWI4MGZjZjM5ZTM5NWZkMDg4YWMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb1NpbmtHU3RyZWFt
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9W
aWRlb1NpbmtHU3RyZWFtZXIuY3BwCkBAIC0xMDcsNyArMTA3LDcgQEAgcHVibGljOgogICAgIH0K
IAogcHJpdmF0ZToKLSAgICBMb2NrIG1fc2FtcGxlTXV0ZXg7CisgICAgVW5jaGVja2VkTG9jayBt
X3NhbXBsZU11dGV4OwogICAgIEdSZWZQdHI8R3N0U2FtcGxlPiBtX3NhbXBsZTsKIAogICAgIC8v
IElmIHRoaXMgaXMgdHJ1ZSBhbGwgcHJvY2Vzc2luZyBzaG91bGQgZmluaXNoIEFTQVAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9XZWJLaXRX
ZWJTb3VyY2VHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHAKaW5kZXggZDQ3NmU0MTc3MWUy
OWExMGY4N2EwMmQwNjNkMjlkNWNiYTY0NWEwMS4uNWM3Yzk4MDZkMzRjYjhjMTM4NTljOTFhOWM5
Y2IyYWQ5OTE2Nzc2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1l
ci5jcHAKQEAgLTE0MCw3ICsxNDAsNyBAQCBzdHJ1Y3QgV2ViS2l0V2ViU3JjUHJpdmF0ZSB7CiAK
ICAgICAgICAgLy8gUHJvcGVydGllcyB1c2VkIGZvciBHU3RyZWFtZXIgZGF0YS1mbG93IGluIGNy
ZWF0ZSgpLgogICAgICAgICBib29sIGlzRmx1c2hpbmcgeyBmYWxzZSB9OwotICAgICAgICBDb25k
aXRpb24gcmVzcG9uc2VDb25kaXRpb247IC8vIE11c3QgYmUgc2lnbmFsZWQgYWZ0ZXIgYW55IHVw
ZGF0ZXMgb24gSFRUUCByZXF1ZXN0cywgYW5kIHdoZW4gZmx1c2hpbmcuCisgICAgICAgIFVuY2hl
Y2tlZENvbmRpdGlvbiByZXNwb25zZUNvbmRpdGlvbjsgLy8gTXVzdCBiZSBzaWduYWxlZCBhZnRl
ciBhbnkgdXBkYXRlcyBvbiBIVFRQIHJlcXVlc3RzLCBhbmQgd2hlbiBmbHVzaGluZy4KICAgICAg
ICAgR1JlZlB0cjxHc3RBZGFwdGVyPiBhZGFwdGVyOwogICAgICAgICBib29sIGlzRHVyYXRpb25T
ZXQ7CiAgICAgICAgIHVpbnQ2NF90IHJlYWRQb3NpdGlvbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUvV2ViS2l0Q29tbW9uRW5jcnlw
dGlvbkRlY3J5cHRvckdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvZW1lL1dlYktpdENvbW1vbkVuY3J5cHRpb25EZWNyeXB0b3JHU3RyZWFt
ZXIuY3BwCmluZGV4IDMyMDE3NGQ1YmZlODc2ZGI4YzE0MjM1OWE4ZTFhMDFhYTg2YzBmZGIuLmVi
MDg4NTFjYzg2MjEyYjQ2YmI4MjhjN2IzNzgzZGIzMTU2NGE3ZWQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUvV2ViS2l0Q29tbW9uRW5j
cnlwdGlvbkRlY3J5cHRvckdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9XZWJLaXRDb21tb25FbmNyeXB0aW9uRGVjcnlwdG9y
R1N0cmVhbWVyLmNwcApAQCAtNTYsOCArNTYsOCBAQCBzdHJ1Y3QgX1dlYktpdE1lZGlhQ29tbW9u
RW5jcnlwdGlvbkRlY3J5cHRQcml2YXRlIHsKICAgICBSZWZQdHI8Q0RNUHJveHk+IGNkbVByb3h5
OwogCiAgICAgLy8gUHJvdGVjdCB0aGUgYWNjZXNzIHRvIHRoZSBzdHJ1Y3R1cmUgbWVtYmVycy4K
LSAgICBMb2NrIG11dGV4OwotICAgIENvbmRpdGlvbiBjb25kaXRpb247CisgICAgVW5jaGVja2Vk
TG9jayBtdXRleDsKKyAgICBVbmNoZWNrZWRDb25kaXRpb24gY29uZGl0aW9uOwogCiAgICAgYm9v
bCBpc0ZsdXNoaW5nIHsgZmFsc2UgfTsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8Q0RNUHJveHlEZWNy
eXB0aW9uQ2xpZW50SW1wbGVtZW50YXRpb24+IGNkbVByb3h5RGVjcnlwdGlvbkNsaWVudEltcGxl
bWVudGF0aW9uOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3N0cmVhbWVyL21zZS9XZWJLaXRNZWRpYVNvdXJjZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL1dlYktpdE1lZGlhU291cmNlR1N0
cmVhbWVyLmNwcAppbmRleCA2ZDAzZGY5NmFkNDM3OTBkNWFmM2QyYjcyZDc3MDBkMTZmZjJhNGZh
Li5hYTdjZWViNzM5OGFlMTE5ZGRlYWYwNTE3NmRlMmU4ZjFjNGM2MjdkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL1dlYktpdE1lZGlh
U291cmNlR1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvbXNlL1dlYktpdE1lZGlhU291cmNlR1N0cmVhbWVyLmNwcApAQCAtMTg0LDgg
KzE4NCw4IEBAIHN0cnVjdCBTdHJlYW0gOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8U3Ry
ZWFtPiB7CiAgICAgICAgIEdzdFNlZ21lbnQgc2VnbWVudDsKICAgICAgICAgR1JlZlB0cjxHc3RD
YXBzPiBwZW5kaW5nSW5pdGlhbENhcHM7CiAgICAgICAgIEdSZWZQdHI8R3N0Q2Fwcz4gcHJldmlv
dXNDYXBzOyAvLyBDYXBzIGZyb20gZW5xdWV1ZWQgc2FtcGxlcyBhcmUgY29tcGFyZWQgdG8gdGhl
c2UgdG8gcHVzaCBDQVBTIGV2ZW50cyBhcyBuZWVkZWQuCi0gICAgICAgIENvbmRpdGlvbiBwYWRM
aW5rZWRPckZsdXNoZWRDb25kaXRpb247Ci0gICAgICAgIENvbmRpdGlvbiBxdWV1ZUNoYW5nZWRP
ckZsdXNoZWRDb25kaXRpb247CisgICAgICAgIFVuY2hlY2tlZENvbmRpdGlvbiBwYWRMaW5rZWRP
ckZsdXNoZWRDb25kaXRpb247CisgICAgICAgIFVuY2hlY2tlZENvbmRpdGlvbiBxdWV1ZUNoYW5n
ZWRPckZsdXNoZWRDb25kaXRpb247CiAgICAgICAgIGJvb2wgaXNGbHVzaGluZyB7IGZhbHNlIH07
CiAKICAgICAgICAgLy8gRmx1c2hlcyBiZWZvcmUgYW55IGJ1ZmZlciBoYXMgYmVlbiBwb3BwZWQg
ZnJvbSB0aGUgcXVldWUgYW5kIHNlbnQgZG93bnN0cmVhbSBjYW4gYmUgYXZvaWRlZCBqdXN0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3Mvd2FrL1dlYkNvcmVUaHJlYWRS
dW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL3dhay9XZWJDb3JlVGhyZWFkUnVu
LmNwcAppbmRleCA4ZjgxZDdjMWFjYTQ2OTU1NTFmYzQ0MGI0N2U5MDYxZDRiMzVkZjJkLi43MjA0
MWU5ZTFmZTlmZTlkNTZhZTI3N2I3MGY4ZGU4YmY2YTNiZjdjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9pb3Mvd2FrL1dlYkNvcmVUaHJlYWRSdW4uY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy93YWsvV2ViQ29yZVRocmVhZFJ1bi5jcHAKQEAgLTQ1LDkg
KzQ1LDkgQEAgcHVibGljOgogCiAgICAgdm9pZCB3YWl0Rm9yQ29tcGxldGlvbigpCiAgICAgewot
ICAgICAgICBzdGQ6OnVuaXF1ZV9sb2NrPExvY2s+IGxvY2sobV9zdGF0ZU11dGV4KTsKKyAgICAg
ICAgTG9ja2VyIGxvY2sgeyBtX3N0YXRlTXV0ZXggfTsKIAotICAgICAgICBtX2NvbXBsZXRpb25D
b25kaXRpb25WYXJpYWJsZS53YWl0KGxvY2ssIFt0aGlzXSB7IHJldHVybiBtX2NvbXBsZXRlZDsg
fSk7CisgICAgICAgIG1fY29tcGxldGlvbkNvbmRpdGlvblZhcmlhYmxlLndhaXQobV9zdGF0ZU11
dGV4LCBbdGhpc10geyByZXR1cm4gbV9jb21wbGV0ZWQ7IH0pOwogICAgIH0KIAogICAgIHZvaWQg
c2V0Q29tcGxldGVkKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvY2YvTG9hZGVyUnVuTG9vcENGLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvY2YvTG9hZGVyUnVuTG9vcENGLmNwcAppbmRleCAwNWEyNGY1MjUyNWI1NGI3ZmY4MWQ0NzEx
YzVlYzAwYzk4NmM5ODQ4Li42ZmU0M2FiOTRkZDcwYjk5NTA0ZTQ5MGVjZGQyMmNiMDRkZGE5MjUw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL0xvYWRlclJ1
bkxvb3BDRi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9Mb2Fk
ZXJSdW5Mb29wQ0YuY3BwCkBAIC01Myw3ICs1Myw3IEBAIENGUnVuTG9vcFJlZiBsb2FkZXJSdW5M
b29wKCkKIHsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogCi0gICAgc3RkOjp1bmlxdWVf
bG9jazxMb2NrPiBsb2NrKGxvYWRlclJ1bkxvb3BNdXRleCk7CisgICAgTG9ja2VyIGxvY2tlciB7
IGxvYWRlclJ1bkxvb3BNdXRleCB9OwogCiAgICAgaWYgKCFsb2FkZXJSdW5Mb29wT2JqZWN0KSB7
CiAgICAgICAgIFRocmVhZDo6Y3JlYXRlKCJXZWJDb3JlOiBDRk5ldHdvcmsgTG9hZGVyIiwgW10g
ewpAQCAtNzcsNyArNzcsNyBAQCBDRlJ1bkxvb3BSZWYgbG9hZGVyUnVuTG9vcCgpCiAgICAgICAg
ICAgICB9IHdoaWxlIChyZXN1bHQgIT0ga0NGUnVuTG9vcFJ1blN0b3BwZWQgJiYgcmVzdWx0ICE9
IGtDRlJ1bkxvb3BSdW5GaW5pc2hlZCk7CiAgICAgICAgIH0sIFRocmVhZFR5cGU6Ok5ldHdvcmsp
OwogCi0gICAgICAgIGxvYWRlclJ1bkxvb3BDb25kaXRpb25WYXJpYWJsZS53YWl0KGxvY2ssIFtd
IHsgcmV0dXJuIGxvYWRlclJ1bkxvb3BPYmplY3Q7IH0pOworICAgICAgICBsb2FkZXJSdW5Mb29w
Q29uZGl0aW9uVmFyaWFibGUud2FpdChsb2FkZXJSdW5Mb29wTXV0ZXgsIFtdIHsgcmV0dXJuIGxv
YWRlclJ1bkxvb3BPYmplY3Q7IH0pOwogICAgIH0KIAogICAgIHJldHVybiBsb2FkZXJSdW5Mb29w
T2JqZWN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1Jl
bW90ZUdyYXBoaWNzQ29udGV4dEdMLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFw
aGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTC5jcHAKaW5kZXggNmQxZDFkYWU5N2E5YjVlNzZj
N2E0MWE1OTA4M2M5ZTBhODgzNGI2Zi4uMTU1M2RlZjAyNWZmZjkwZjEzNzVmNTEwZDUwY2E0NWQy
YzUxMzU0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1Jl
bW90ZUdyYXBoaWNzQ29udGV4dEdMLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
Z3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wuY3BwCkBAIC0yMTIsNyArMjEyLDcgQEAg
dm9pZCBSZW1vdGVHcmFwaGljc0NvbnRleHRHTDo6cGFpbnRQaXhlbEJ1ZmZlclRvSW1hZ2VCdWZm
ZXIoT3B0aW9uYWw8V2ViQ29yZTo6UGkKICAgICBhc3NlcnRJc0N1cnJlbnQobV9zdHJlYW1UaHJl
YWQpOwogICAgIC8vIEZJWE1FOiBXZSBkbyBub3QgaGF2ZSBmdW5jdGlvbmluZyByZWFkL3dyaXRl
IGZlbmNlcyBpbiBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kLiBUaHVzIHRoaXMgaXMgc3luY2hyb25v
dXMsCiAgICAgLy8gYXMgYXJlIHRoZSBtZXNzYWdlcyB0aGF0IGNhbGwgdGhlc2UuCi0gICAgTG9j
ayBtdXRleDsKKyAgICBMb2NrIGxvY2s7CiAgICAgQ29uZGl0aW9uIGNvbmRpdGlvblZhcmlhYmxl
OwogICAgIGJvb2wgaXNGaW5pc2hlZCA9IGZhbHNlOwogICAgIG1fcmVuZGVyaW5nQmFja2VuZC0+
ZGlzcGF0Y2goWyYsIGNvbnRleHRBdHRyaWJ1dGVzID0gbV9jb250ZXh0LT5jb250ZXh0QXR0cmli
dXRlcygpXSgpIG11dGFibGUgewpAQCAtMjI2LDExICsyMjYsMTEgQEAgdm9pZCBSZW1vdGVHcmFw
aGljc0NvbnRleHRHTDo6cGFpbnRQaXhlbEJ1ZmZlclRvSW1hZ2VCdWZmZXIoT3B0aW9uYWw8V2Vi
Q29yZTo6UGkKICAgICAgICAgICAgIC8vIFVuZm9ydHVuYXRlbHkgImZsdXNoIiBpbXBsZW1lbnRh
dGlvbiBpbiBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kIG92ZXJsb2FkcyBvcmRlcmluZyBhbmQgZWZm
ZWN0cy4KICAgICAgICAgICAgIGltYWdlQnVmZmVyLT5mbHVzaENvbnRleHQoKTsKICAgICAgICAg
fQotICAgICAgICBMb2NrZXIgbG9ja2VyIHsgbXV0ZXggfTsKKyAgICAgICAgTG9ja2VyIGxvY2tl
ciB7IGxvY2sgfTsKICAgICAgICAgaXNGaW5pc2hlZCA9IHRydWU7CiAgICAgICAgIGNvbmRpdGlv
blZhcmlhYmxlLm5vdGlmeU9uZSgpOwogICAgIH0pOwotICAgIHN0ZDo6dW5pcXVlX2xvY2s8TG9j
az4gbG9jayhtdXRleCk7CisgICAgTG9ja2VyIGxvY2tlciB7IGxvY2sgfTsKICAgICBjb25kaXRp
b25WYXJpYWJsZS53YWl0KGxvY2ssIFsmXSB7CiAgICAgICAgIHJldHVybiBpc0ZpbmlzaGVkOwog
ICAgIH0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9JbmRleGVk
REIvV2ViSURCU2VydmVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvSW5kZXhl
ZERCL1dlYklEQlNlcnZlci5jcHAKaW5kZXggOTFiODg5NDFhNzZhODA3MWQzMGQ3ZmVkNzQxNjNm
YjA5ZjdiODcyMS4uNTQ3ZGFhOGQ0ZTAwMTQwNmZjMjAxYWJhZDZjZjQ3NzBjOTFhNTU3OSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCU2Vy
dmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0luZGV4ZWREQi9XZWJJ
REJTZXJ2ZXIuY3BwCkBAIC0xMTksNyArMTE5LDcgQEAgdm9pZCBXZWJJREJTZXJ2ZXI6OnJlbmFt
ZU9yaWdpbihjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIG9sZE9yaWdpbiwgY28K
ICAgICB9KTsKIH0KIAotdm9pZCBXZWJJREJTZXJ2ZXI6OnN1c3BlbmQoKQordm9pZCBXZWJJREJT
ZXJ2ZXI6OnN1c3BlbmQoKSBXVEZfSUdOT1JFU19USFJFQURfU0FGRVRZX0FOQUxZU0lTCiB7CiAg
ICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKIApAQCAtMTMyLDcgKzEzMiw3IEBAIHZvaWQg
V2ViSURCU2VydmVyOjpzdXNwZW5kKCkKICAgICAgICAgbV9zZXJ2ZXItPnN0b3BEYXRhYmFzZUFj
dGl2aXRpZXNPbk1haW5UaHJlYWQoKTsKIH0KIAotdm9pZCBXZWJJREJTZXJ2ZXI6OnJlc3VtZSgp
Cit2b2lkIFdlYklEQlNlcnZlcjo6cmVzdW1lKCkgV1RGX0lHTk9SRVNfVEhSRUFEX1NBRkVUWV9B
TkFMWVNJUwogewogICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL0ljb25EYXRhYmFzZS5oIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvSWNvbkRhdGFiYXNlLmgKaW5kZXggYmViMmZiODA2
ZWM1NWM2NjM0Y2Q1ZTVhMDBkNTA3ODM2MTVmZWY0Yi4uODBlMTc4ZTYxZjUwZmFmZGYzZWFkNGQy
OThhMTg4MDFhZTAzYzcxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L2dsaWIvSWNvbkRhdGFiYXNlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2ds
aWIvSWNvbkRhdGFiYXNlLmgKQEAgLTcyLDcgKzcyLDcgQEAgcHJpdmF0ZToKICAgICBIYXNoTWFw
PFN0cmluZywgU3RyaW5nPiBtX3BhZ2VVUkxUb0ljb25VUkxNYXA7CiAgICAgTG9jayBtX3BhZ2VV
UkxUb0ljb25VUkxNYXBMb2NrOwogICAgIEhhc2hNYXA8U3RyaW5nLCBzdGQ6OnBhaXI8V2ViQ29y
ZTo6UGxhdGZvcm1JbWFnZVB0ciwgTW9ub3RvbmljVGltZT4+IG1fbG9hZGVkSWNvbnM7Ci0gICAg
TG9jayBtX2xvYWRlZEljb25zTG9jazsKKyAgICBVbmNoZWNrZWRMb2NrIG1fbG9hZGVkSWNvbnNM
b2NrOwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlNRTGl0ZVN0YXRlbWVudD4gbV9p
Y29uSURGb3JJY29uVVJMU3RhdGVtZW50OwogICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpT
UUxpdGVTdGF0ZW1lbnQ+IG1fc2V0SWNvbklERm9yUGFnZVVSTFN0YXRlbWVudDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS1ByaW50aW5nVmlldy5tbSBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS1ByaW50aW5nVmlldy5tbQppbmRleCA5Yjc0ZjNlYzUw
ZDAyMDE2NjRjNzMxMjk4OWM3ZjY4YzI5YTA0NTRjLi5mMThiYThmMDFiMjZkZTNmZDNjZGZiMDI4
MTI4NWNmMGQ0YTY2NjlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMv
V0tQcmludGluZ1ZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLUHJp
bnRpbmdWaWV3Lm1tCkBAIC00MTQsMTMgKzQxNCwxMyBAQCAtIChCT09MKWtub3dzUGFnZVJhbmdl
OihOU1JhbmdlUG9pbnRlcilyYW5nZQogICAgICAgICAqcmFuZ2UgPSBOU01ha2VSYW5nZSgxLCBf
cHJpbnRpbmdQYWdlUmVjdHMuc2l6ZSgpKTsKICAgICBlbHNlIGlmICghUnVuTG9vcDo6aXNNYWlu
KCkpIHsKICAgICAgICAgQVNTRVJUKCFbc2VsZiBfaXNQcmludGluZ1ByZXZpZXddKTsKLSAgICAg
ICAgc3RkOjp1bmlxdWVfbG9jazxMb2NrPiBsb2NrKF9wcmludGluZ0NhbGxiYWNrTXV0ZXgpOwor
ICAgICAgICBMb2NrZXIgbG9jayB7IF9wcmludGluZ0NhbGxiYWNrTXV0ZXggfTsKIAogICAgICAg
ICBSdW5Mb29wOjptYWluKCkuZGlzcGF0Y2goW3NlbGZdIHsKICAgICAgICAgICAgIHByZXBhcmVE
YXRhRm9yUHJpbnRpbmdPblNlY29uZGFyeVRocmVhZChzZWxmKTsKICAgICAgICAgfSk7CiAKLSAg
ICAgICAgX3ByaW50aW5nQ2FsbGJhY2tDb25kaXRpb24ud2FpdChsb2NrKTsKKyAgICAgICAgX3By
aW50aW5nQ2FsbGJhY2tDb25kaXRpb24ud2FpdChfcHJpbnRpbmdDYWxsYmFja011dGV4KTsKICAg
ICAgICAgKnJhbmdlID0gTlNNYWtlUmFuZ2UoMSwgX3ByaW50aW5nUGFnZVJlY3RzLnNpemUoKSk7
CiAgICAgfSBlbHNlIHsKICAgICAgICAgQVNTRVJUKFtzZWxmIF9pc1ByaW50aW5nUHJldmlld10p
OwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDFh
ZTI3NjY0MWU2Nzk3YWMzMTk0MjlmMjIzNzQ1ZTlmMGJkNWRjMmIuLjUxNWFkMmI1YjM4YzE2OGEx
YmQ3OGU5ZTkzYWMwMzYyNTY4NmUzMmIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysg
Yi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0MyBAQAorMjAyMS0wNS0yMyAgQ2hyaXMgRHVt
ZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIE1ha2UgQ2hlY2tlZExvY2sgdGhlIGRl
ZmF1bHQgTG9jaworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjI2MTU3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAgICAg
TWFrZSBDaGVja2VkTG9jayB0aGUgZGVmYXVsdCBMb2NrIHNvIHRoYXQgd2UgZ2V0IG1vcmUgYmVu
ZWZpdHMgZnJvbSBDbGFuZworICAgICAgICBUaHJlYWQgU2FmZXR5IEFuYWx5c2lzLiBOb3RlIHRo
YXQgQ2hlY2tlZExvY2sgMTAwJSByZWxpZXMgb24gdGhlIGV4aXN0aW5nCisgICAgICAgIExvY2sg
aW1wbGVtZW50YXRpb24gYW5kIG1lcmVseSBhZGRzIHRoZSBjbGFuZyBhbm90YXRpb25zIGZvciB0
aHJlYWQgCisgICAgICAgIHNhZmV0eS4KKworICAgICAgICBUaGF0IHRoaXMgcGF0Y2ggZG9lcyBp
czoKKyAgICAgICAgMS4gUmVuYW1lIHRoZSBMb2NrIGNsYXNzIHRvIFVuY2hlY2tlZExvY2sKKyAg
ICAgICAgMi4gUmVuYW1lIHRoZSBDaGVja2VkTG9jayBjbGFzcyB0byBMb2NrCisgICAgICAgIDMu
IFJlbmFtZSB0aGUgQ29uZGl0aW9uIGNsYXNzIHRvIFVuY2hlY2tlZENvbmRpdGlvbgorICAgICAg
ICA0LiBSZW5hbWUgdGhlIENoZWNrZWRDb25kaXRpb24gY2xhc3MgdG8gQ29uZGl0aW9uCisgICAg
ICAgIDUuIFVwZGF0ZSB0aGUgdHlwZXMgb2YgY2VydGFpbiB2YXJpYWJsZXMgZnJvbSBMb2NrIC8g
Q29uZGl0aW9uIHRvCisgICAgICAgICAgIFVuY2hlY2tlZExvY2sgLyBVbmNoZWNrZWRDb25kaXRp
b24gaWYgSSBnb3QgYSBidWlsZCBmYWlsdXJlLiBCdWlsZCAKKyAgICAgICAgICAgZmFpbHVyZXMg
YXJlIHVzdWFsbHkgY2F1c2VkIGJ5IHRoZSBmb2xsb3dpbmcgZmFjdHM6CisgICAgICAgICAgIC0g
TG9ja2VyPENoZWNrZWRMb2NrPiBkb2Vzbid0IHN1YmNsYXNzIEFic3RyYWN0TG9ja2VyIHdoaWNo
IGEgbG90IG9mCisgICAgICAgICAgICAgSlNDIGNvZGUgcGFzc2VzIGFzIGFyZ3VtZW50CisgICAg
ICAgICAgIC0gTG9ja2VyPENoZWNrZWRMb2NrPiBoYXMgbm8gbW92ZSBjb25zdHJ1Y3RvcgorICAg
ICAgICAgICAtIExvY2tlcjxDaGVja2VkTG9jaz4gY2Fubm90IGJlIGNvbnN0cnVjdGVkIGZyb20g
YSBsb2NrIHBvaW50ZXIsIG9ubHkKKyAgICAgICAgICAgICBhIHJlZmVyZW5jZQorCisgICAgICAg
IEZvciBub3csIENoZWNrZWRMb2NrIGFuZCBDaGVja2VkQ29uZGl0aW9uIHJlbWFpbiBhcyBhbGlh
c2VzIHRvIExvY2sgYW5kIAorICAgICAgICBDb25kaXRpb24sIGluIHRoZWlyIHJlc3BlY3RpdmUg
Q2hlY2tlZExvY2suaCAvIENoZWNrZWRDb25kaXRpb24uaCBoZWFkZXJzLgorICAgICAgICBJIHdp
bGwgZHJvcCB0aGVtIGluIGEgZm9sbG93LXVwIHRvIHJlZHVjZSBwYXRjaCBzaXplLgorCisgICAg
ICAgIEkgd2lsbCBhbHNvIGZvbGxvdy11cCB0byB0cnkgYW5kIGdldCByaWQgb2YgYXMgbXVjaCB1
c2FnZSBvZiBVbmNoZWNrZWRMb2NrCisgICAgICAgIGFuZCBVbmNoZWNrZWRDb25kaXRpb24gYXMg
cG9zc2libGUuIEkgZGlkIG5vdCB0cnkgdmVyeSBoYXJkIGluIHRoaXMgcGF0Y2gKKyAgICAgICAg
dG8gcmVkdWNlIHBhdGNoIHNpemUuIAorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9X
VEYvQ2hlY2tlZENvbmRpdGlvblRlc3QuY3BwOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVz
dHMvV1RGL0NvbmRpdGlvbi5jcHA6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYv
TWV0YUFsbG9jYXRvci5jcHA6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1
bmRsZS9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXVFI6OkFYVGhyZWFk
OjpjcmVhdGVUaHJlYWRJZk5lZWRlZCk6CisKIDIwMjEtMDUtMjMgIFNhbSBXZWluaWcgIDx3ZWlu
aWdAYXBwbGUuY29tPgogCiAgICAgICAgIENvbnZlcnQgRGVzdGluYXRpb25Db2xvclNwYWNlIGZy
b20gYW4gZW51bSB0byBjbGFzcyB3cmFwcGluZyBhIHBsYXRmb3JtIGNvbG9yIHNwYWNlIChDR0Nv
bG9yU3BhY2VSZWYgZm9yIENHIHBvcnRzLCBldGMuKQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XVEYvQ2hlY2tlZENvbmRpdGlvblRlc3QuY3BwIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XVEYvQ2hlY2tlZENvbmRpdGlvblRlc3QuY3BwCmluZGV4IDkyOGFhMTkw
M2NkZTM2ZWEzMmRjMTAxZjI2YmYzY2M5OTI2OWI4OTMuLmFkNDI1NWUyYWMxYTJlZjlhMGMxY2Ez
Y2Y1NmM3MzgwNzY2MzA1MDggMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V1RGL0NoZWNrZWRDb25kaXRpb25UZXN0LmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dURi9DaGVja2VkQ29uZGl0aW9uVGVzdC5jcHAKQEAgLTI1LDYgKzI1LDcgQEAKIAogI2lu
Y2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgPHd0Zi9DaGVja2VkQ29uZGl0aW9uLmg+CisjaW5j
bHVkZSA8d3RmL0NoZWNrZWRMb2NrLmg+CiAKIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKIApk
aWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvQ29uZGl0aW9uLmNwcCBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0NvbmRpdGlvbi5jcHAKaW5kZXggM2IzNWIw
OGNhMTRiODE4ODQ3ZDY2ZWU1ODdmZmFkMWE1OTBkODEyNi4uNWVlYzNlMDE1NjZiOTE4ZDY2N2Ux
NjQ4MjVmMDEyMDhkODc5YmJlYiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XVEYvQ29uZGl0aW9uLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9D
b25kaXRpb24uY3BwCkBAIC00Niw3ICs0Niw3IEBAIGVudW0gTm90aWZ5U3R5bGUgewogfTsKIAog
dGVtcGxhdGU8dHlwZW5hbWUgRnVuY3Rvcj4KLXZvaWQgd2FpdChDb25kaXRpb24mIGNvbmRpdGlv
biwgc3RkOjp1bmlxdWVfbG9jazxMb2NrPiYgbG9ja2VyLCBjb25zdCBGdW5jdG9yJiBwcmVkaWNh
dGUsIFNlY29uZHMgdGltZW91dCkKK3ZvaWQgd2FpdChVbmNoZWNrZWRDb25kaXRpb24mIGNvbmRp
dGlvbiwgc3RkOjp1bmlxdWVfbG9jazxVbmNoZWNrZWRMb2NrPiYgbG9ja2VyLCBjb25zdCBGdW5j
dG9yJiBwcmVkaWNhdGUsIFNlY29uZHMgdGltZW91dCkKIHsKICAgICBpZiAodGltZW91dCA9PSBT
ZWNvbmRzOjppbmZpbml0eSgpKQogICAgICAgICBjb25kaXRpb24ud2FpdChsb2NrZXIsIHByZWRp
Y2F0ZSk7CkBAIC01OSw3ICs1OSw3IEBAIHZvaWQgd2FpdChDb25kaXRpb24mIGNvbmRpdGlvbiwg
c3RkOjp1bmlxdWVfbG9jazxMb2NrPiYgbG9ja2VyLCBjb25zdCBGdW5jdG9yJiBwCiAgICAgfQog
fQogCi12b2lkIG5vdGlmeShOb3RpZnlTdHlsZSBub3RpZnlTdHlsZSwgQ29uZGl0aW9uJiBjb25k
aXRpb24sIGJvb2wgc2hvdWxkTm90aWZ5KQordm9pZCBub3RpZnkoTm90aWZ5U3R5bGUgbm90aWZ5
U3R5bGUsIFVuY2hlY2tlZENvbmRpdGlvbiYgY29uZGl0aW9uLCBib29sIHNob3VsZE5vdGlmeSkK
IHsKICAgICBzd2l0Y2ggKG5vdGlmeVN0eWxlKSB7CiAgICAgY2FzZSBBbHdheXNOb3RpZnlPbmU6
CkBAIC04Myw5ICs4Myw5IEBAIHZvaWQgcnVuVGVzdCgKIHsKICAgICBEZXF1ZTx1bnNpZ25lZD4g
cXVldWU7CiAgICAgYm9vbCBzaG91bGRDb250aW51ZSA9IHRydWU7Ci0gICAgTG9jayBsb2NrOwot
ICAgIENvbmRpdGlvbiBlbXB0eUNvbmRpdGlvbjsKLSAgICBDb25kaXRpb24gZnVsbENvbmRpdGlv
bjsKKyAgICBVbmNoZWNrZWRMb2NrIGxvY2s7CisgICAgVW5jaGVja2VkQ29uZGl0aW9uIGVtcHR5
Q29uZGl0aW9uOworICAgIFVuY2hlY2tlZENvbmRpdGlvbiBmdWxsQ29uZGl0aW9uOwogCiAgICAg
VmVjdG9yPFJlZjxUaHJlYWQ+PiBjb25zdW1lclRocmVhZHM7CiAgICAgVmVjdG9yPFJlZjxUaHJl
YWQ+PiBwcm9kdWNlclRocmVhZHM7CkBAIC0xMDEsNyArMTAxLDcgQEAgdm9pZCBydW5UZXN0KAog
ICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCByZXN1bHQ7CiAgICAgICAgICAgICAgICAgICAg
IHVuc2lnbmVkIHNob3VsZE5vdGlmeSA9IGZhbHNlOwogICAgICAgICAgICAgICAgICAgICB7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICBzdGQ6OnVuaXF1ZV9sb2NrPExvY2s+IGxvY2tlcihsb2Nr
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHN0ZDo6dW5pcXVlX2xvY2s8VW5jaGVja2VkTG9j
az4gbG9ja2VyKGxvY2spOwogICAgICAgICAgICAgICAgICAgICAgICAgd2FpdCgKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBlbXB0eUNvbmRpdGlvbiwgbG9ja2VyLCAKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBbJl0gKCkgewpAQCAtMTM0LDcgKzEzNCw3IEBAIHZvaWQgcnVuVGVz
dCgKICAgICAgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbnVtTWVzc2FnZXNQ
ZXJQcm9kdWNlcjsgKytpKSB7CiAgICAgICAgICAgICAgICAgICAgIGJvb2wgc2hvdWxkTm90aWZ5
ID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAg
IHN0ZDo6dW5pcXVlX2xvY2s8TG9jaz4gbG9ja2VyKGxvY2spOworICAgICAgICAgICAgICAgICAg
ICAgICAgc3RkOjp1bmlxdWVfbG9jazxVbmNoZWNrZWRMb2NrPiBsb2NrZXIobG9jayk7CiAgICAg
ICAgICAgICAgICAgICAgICAgICB3YWl0KAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1
bGxDb25kaXRpb24sIGxvY2tlciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJl0gKCkg
ewpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvTWV0YUFsbG9jYXRv
ci5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9NZXRhQWxsb2NhdG9yLmNwcApp
bmRleCBiOTFmNjhlYzBjYzE3ZGQzNzA4ZjJlNzgwODM2NjU1N2RiMzg3YTY2Li40ZWY1ODNiM2My
YmU5OGVlZmQ5NjE1MWM3OTY5Y2U0M2ViYTA1NzkzIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dURi9NZXRhQWxsb2NhdG9yLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dURi9NZXRhQWxsb2NhdG9yLmNwcApAQCAtMTI5LDcgKzEyOSw3IEBAIHB1Ymxp
YzoKICAgICAgICAgfQogICAgICAgICAKICAgICBwcml2YXRlOgotICAgICAgICBMb2NrIG1fbG9j
azsKKyAgICAgICAgVW5jaGVja2VkTG9jayBtX2xvY2s7CiAgICAgICAgIE1ldGFBbGxvY2F0b3JU
ZXN0KiBtX3BhcmVudDsKICAgICB9OwogCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyLmNwcCBiL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuY3Bw
CmluZGV4IDk4NDRlNWI2MzM1ZmJjYTI4NmUyYzExYzZiM2U5ODc4ZDljNDBkMGIuLjZlYmExNGEx
YTcwYzAzZDU1N2RiMjNiNjA3NjJkZjc5ZmZlYTRjYWUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuY3BwCisr
KyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eUNv
bnRyb2xsZXIuY3BwCkBAIC0xOTksNyArMTk5LDcgQEAgQVhUaHJlYWQmIEFYVGhyZWFkOjpzaW5n
bGV0b24oKQogdm9pZCBBWFRocmVhZDo6Y3JlYXRlVGhyZWFkSWZOZWVkZWQoKQogewogICAgIC8v
IFdhaXQgZm9yIHRoZSB0aHJlYWQgdG8gaW5pdGlhbGl6ZSB0aGUgcnVuIGxvb3AuCi0gICAgc3Rk
Ojp1bmlxdWVfbG9jazxMb2NrPiBsb2NrKG1faW5pdGlhbGl6ZVJ1bkxvb3BNdXRleCk7CisgICAg
TG9ja2VyIGxvY2sgeyBtX2luaXRpYWxpemVSdW5Mb29wTXV0ZXggfTsKIAogICAgIGlmICghbV90
aHJlYWQpIHsKICAgICAgICAgbV90aHJlYWQgPSBUaHJlYWQ6OmNyZWF0ZSgiV0tUUjogQWNjZXNz
aWJpbGl0eUNvbnRyb2xsZXIiLCBbdGhpc10gewpAQCAtMjA4LDcgKzIwOCw3IEBAIHZvaWQgQVhU
aHJlYWQ6OmNyZWF0ZVRocmVhZElmTmVlZGVkKCkKICAgICAgICAgfSk7CiAgICAgfQogCi0gICAg
bV9pbml0aWFsaXplUnVuTG9vcENvbmRpdGlvblZhcmlhYmxlLndhaXQobG9jaywgW3RoaXNdIHsK
KyAgICBtX2luaXRpYWxpemVSdW5Mb29wQ29uZGl0aW9uVmFyaWFibGUud2FpdChtX2luaXRpYWxp
emVSdW5Mb29wTXV0ZXgsIFt0aGlzXSB7CiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgICAgIHJl
dHVybiBtX3RocmVhZFJ1bkxvb3A7CiAjZWxzZQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>