<?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>145280</bug_id>
          
          <creation_ts>2015-05-21 13:18:34 -0700</creation_ts>
          <short_desc>WebKit policy delegate should suggest if a navigation should be allowed to open URLs externally</short_desc>
          <delta_ts>2015-08-04 21:35:27 -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>WebKit API</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>145281</dependson>
    
    <dependson>145417</dependson>
          <blocked>147678</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Brady Eidson">beidson</reporter>
          <assigned_to name="Brady Eidson">beidson</assigned_to>
          <cc>achristensen</cc>
    
    <cc>ggaren</cc>
    
    <cc>mitz</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1096659</commentid>
    <comment_count>0</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2015-05-21 13:18:34 -0700</bug_when>
    <thetext>WebKit policy delegate should indicate ongoing user navigations.

This includes carrying the &quot;was this load the result of a user gesture?&quot; carrying forward over redirects and subsequent main frame navigations.

&lt;rdar://problem/21025301&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1097742</commentid>
    <comment_count>1</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2015-05-27 15:37:32 -0700</bug_when>
    <thetext>Title change:
WebKit policy delegate should suggest if a navigation should be allowed to open URLs externally</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1097743</commentid>
    <comment_count>2</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2015-05-27 15:41:44 -0700</bug_when>
    <thetext>Two further patches:

1 - Add a &quot;should open URLs externally&quot; flag to DocumentLoader. The flag gets there from FrameLoadRequest. The flag is propagated out to WebKit navigation delegate API. In step 1, the flag will only ever be set from the WKWebView loadRequest: API

2 - Propagate that flag from one DocumentLoader to its descendant DocumentLoader under certain circumstances. Also, WebCore will sometimes decide to set the flag on a DocumentLoader by itself when a navigation meets certain criteria (Such as the navigation is in the main frame, and is the result of a user gesture)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1097745</commentid>
    <comment_count>3</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2015-05-27 15:45:05 -0700</bug_when>
    <thetext>Step 1 mentioned above tracked in https://bugs.webkit.org/show_bug.cgi?id=145417</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1098610</commentid>
    <comment_count>4</comment_count>
      <attachid>254018</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2015-06-01 15:30:47 -0700</bug_when>
    <thetext>Created attachment 254018
Patch v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1098625</commentid>
    <comment_count>5</comment_count>
      <attachid>254018</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2015-06-01 16:10:16 -0700</bug_when>
    <thetext>Comment on attachment 254018
Patch v1

Nevermind on the review for now - Obviously the tests aren&apos;t in good shape yet.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1098635</commentid>
    <comment_count>6</comment_count>
      <attachid>254018</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2015-06-01 16:29:56 -0700</bug_when>
    <thetext>Comment on attachment 254018
Patch v1

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

This is missing a change to Source/WebKit/ios/WebView/WebPDFViewPlaceholder.mm and this patch causes lots of crashes.  You&apos;re probably dereferencing a null pointer somewhere.

&gt; Source/WebCore/loader/FrameLoader.cpp:1326
&gt;      RefPtr&lt;DocumentLoader&gt; loader = m_client.createDocumentLoader(request, defaultSubstituteDataForURL(request.url()));

Does createDocumentLoader always succeed?

&gt; Source/WebCore/page/DOMWindow.cpp:2139
&gt; +    Frame* activeFrame = activeWindow.frame();
&gt; +    if (!activeFrame)
&gt; +        return nullptr;

This isn&apos;t used.  Is it helpful to return early if there is no active frame?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1098649</commentid>
    <comment_count>7</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2015-06-01 16:55:11 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; Comment on attachment 254018 [details]
&gt; Patch v1
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=254018&amp;action=review
&gt; 
&gt; This is missing a change to
&gt; Source/WebKit/ios/WebView/WebPDFViewPlaceholder.mm and this patch causes
&gt; lots of crashes.  You&apos;re probably dereferencing a null pointer somewhere.

That&apos;s why I pulled it from review :)

&gt; 
&gt; &gt; Source/WebCore/loader/FrameLoader.cpp:1326
&gt; &gt;      RefPtr&lt;DocumentLoader&gt; loader = m_client.createDocumentLoader(request, defaultSubstituteDataForURL(request.url()));
&gt; 
&gt; Does createDocumentLoader always succeed?

Yup.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1098658</commentid>
    <comment_count>8</comment_count>
      <attachid>254030</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2015-06-01 17:15:03 -0700</bug_when>
    <thetext>Created attachment 254030
Patch v2

This is for EWS and, if it passes, for review.

But not yet for landing, as I haven&apos;t updated the ChangeLogs yet.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1098721</commentid>
    <comment_count>9</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2015-06-01 21:31:15 -0700</bug_when>
    <thetext>Messed up the iOS build fix, and now that windows EWS is finally helping, will fix that one too.

Rest of the patch is still reviewable at this point.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1098786</commentid>
    <comment_count>10</comment_count>
      <attachid>254070</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2015-06-02 10:08:03 -0700</bug_when>
    <thetext>Created attachment 254070
Patch v3 - More build fixing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1098794</commentid>
    <comment_count>11</comment_count>
      <attachid>254073</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2015-06-02 10:44:58 -0700</bug_when>
    <thetext>Created attachment 254073
Patch v4 - More correct build fixing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1098803</commentid>
    <comment_count>12</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2015-06-02 11:31:14 -0700</bug_when>
    <thetext>r=me.  Media and font test failures are unrelated.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1098805</commentid>
    <comment_count>13</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2015-06-02 11:32:05 -0700</bug_when>
    <thetext>The test failures on mac/mac-wk2 are unrelated (Those tester bots are in a non-green status right now, anyways)

I&apos;ll fix up the ChangeLogs then land.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1098808</commentid>
    <comment_count>14</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2015-06-02 11:43:54 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/185111</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1098812</commentid>
    <comment_count>15</comment_count>
      <attachid>254073</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2015-06-02 11:58:45 -0700</bug_when>
    <thetext>Comment on attachment 254073
Patch v4 - More correct build fixing

Other interesting test cases:

(1) Do a top-level (Safari-like) navigation that sets the flag to true, then another that sets it to false. Flag should be false.

(2) Do a top-level (Safari-like) navigation that sets the flag to false, then another that sets it to true. Flag should be true.

(3) Do a top-level (Safari-like) navigation that sets the flag to false, then a programmatic click event on a link. Flag should be false.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1098820</commentid>
    <comment_count>16</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2015-06-02 12:13:26 -0700</bug_when>
    <thetext>(In reply to comment #15)
&gt; Comment on attachment 254073 [details]
&gt; Patch v4 - More correct build fixing
&gt; 
&gt; Other interesting test cases:
&gt; 
&gt; (1) Do a top-level (Safari-like) navigation that sets the flag to true, then
&gt; another that sets it to false. Flag should be false.
&gt; 
&gt; (2) Do a top-level (Safari-like) navigation that sets the flag to false,
&gt; then another that sets it to true. Flag should be true.
&gt; 
&gt; (3) Do a top-level (Safari-like) navigation that sets the flag to false,
&gt; then a programmatic click event on a link. Flag should be false.

Great suggestions.

Following up in https://bugs.webkit.org/show_bug.cgi?id=145558</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>254018</attachid>
            <date>2015-06-01 15:30:47 -0700</date>
            <delta_ts>2015-06-01 17:15:03 -0700</delta_ts>
            <desc>Patch v1</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>135259</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA3OTJlMjE1Li43MjEyYWY0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsNjIgQEAKIDIwMTUtMDYt
MDEgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgogCisgICAgICAgIFdlYktpdCBw
b2xpY3kgZGVsZWdhdGUgc2hvdWxkIHN1Z2dlc3QgaWYgYSBuYXZpZ2F0aW9uIHNob3VsZCBiZSBh
bGxvd2VkIHRvIG9wZW4gVVJMcyBleHRlcm5hbGx5LgorICAgICAgICByZGFyOi8vcHJvYmxlbS8y
MTAyNTMwMSBhbmQgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NTI4
MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogbG9h
ZGVyL25hdmlnYXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvbWFpbi1mcmFt
ZS1jbGljay1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGxvYWRlci9uYXZpZ2F0aW9u
LXBvbGljeS9zaG91bGQtb3Blbi1leHRlcm5hbC11cmxzL21haW4tZnJhbWUtY2xpY2suaHRtbDog
QWRkZWQuCisgICAgICAgICogbG9hZGVyL25hdmlnYXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4
dGVybmFsLXVybHMvbWFpbi1mcmFtZS1uYXZpZ2F0ZWQtcHJvZ3JhbWF0aWNhbGx5LWJ5LXN1YmZy
YW1lLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogbG9hZGVyL25hdmlnYXRpb24tcG9s
aWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvbWFpbi1mcmFtZS1uYXZpZ2F0ZWQtcHJvZ3Jh
bWF0aWNhbGx5LWJ5LXN1YmZyYW1lLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGxvYWRlci9uYXZp
Z2F0aW9uLXBvbGljeS9zaG91bGQtb3Blbi1leHRlcm5hbC11cmxzL21haW4tZnJhbWUtd2l0aC1m
bGFnLXByb2dhbWF0aWMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBsb2FkZXIvbmF2
aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJscy9tYWluLWZyYW1lLXdpdGgt
ZmxhZy1wcm9nYW1hdGljLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGxvYWRlci9uYXZpZ2F0aW9u
LXBvbGljeS9zaG91bGQtb3Blbi1leHRlcm5hbC11cmxzL21haW4tZnJhbWUtd2l0aG91dC1mbGFn
LXByb2dyYW1hdGljLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogbG9hZGVyL25hdmln
YXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvbWFpbi1mcmFtZS13aXRob3V0
LWZsYWctcHJvZ3JhbWF0aWMuaHRtbDogQWRkZWQuCisgICAgICAgICogbG9hZGVyL25hdmlnYXRp
b24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvcmVzb3VyY2VzL2NsaWNrLW5vdGlm
eS1kb25lLWluLW1haW4uaHRtbDogQWRkZWQuCisgICAgICAgICogbG9hZGVyL25hdmlnYXRpb24t
cG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvcmVzb3VyY2VzL2lmcmFtZS1jbGljay1u
b3RpZnktZG9uZS10YXJnZXQtc2VsZi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBsb2FkZXIvbmF2
aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJscy9yZXNvdXJjZXMvaWZyYW1l
LWNsaWNrLW5vdGlmeS1kb25lLXRhcmdldC10b3AuaHRtbDogQWRkZWQuCisgICAgICAgICogbG9h
ZGVyL25hdmlnYXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvcmVzb3VyY2Vz
L21haW4tZnJhbWUtd2l0aC1zdWJmcmFtZS1jbGljay10YXJnZXRzLXN1YmZyYW1lLmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIGxvYWRlci9uYXZpZ2F0aW9uLXBvbGljeS9zaG91bGQtb3Blbi1leHRl
cm5hbC11cmxzL3Jlc291cmNlcy9tYWluLWZyYW1lLXdpdGgtc3ViZnJhbWUtcHJvZ3JhbWF0aWNh
bGx5LW5hdmlnYXRlcy1tYWluLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGxvYWRlci9uYXZpZ2F0
aW9uLXBvbGljeS9zaG91bGQtb3Blbi1leHRlcm5hbC11cmxzL3Jlc291cmNlcy9wcm9ncmFtYXRp
Y2FsbHktbmF2aWdhdGUtdG8tbm90aWZ5LWRvbmUtdGFyZ2V0LXRvcC5odG1sOiBBZGRlZC4KKyAg
ICAgICAgKiBsb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJs
cy9yZXNvdXJjZXMvcHJvZ3JhbWF0aWNhbGx5LW5hdmlnYXRlLXRvLW5vdGlmeS1kb25lLmh0bWw6
IEFkZGVkLgorICAgICAgICAqIGxvYWRlci9uYXZpZ2F0aW9uLXBvbGljeS9zaG91bGQtb3Blbi1l
eHRlcm5hbC11cmxzL3Jlc291cmNlcy91c2VyLWdlc3R1cmUtdGFyZ2V0LWJsYW5rLXRvLW5vdGlm
eS1kb25lLWZyb20tc3ViZnJhbWUuaHRtbDogQWRkZWQuCisgICAgICAgICogbG9hZGVyL25hdmln
YXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvcmVzb3VyY2VzL3VzZXItZ2Vz
dHVyZS10YXJnZXQtYmxhbmstdG8tbm90aWZ5LWRvbmUuaHRtbDogQWRkZWQuCisgICAgICAgICog
bG9hZGVyL25hdmlnYXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvcmVzb3Vy
Y2VzL3VzZXItZ2VzdHVyZS13aW5kb3ctb3Blbi10by1ub3RpZnktZG9uZS1mcm9tLXN1YmZyYW1l
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGxvYWRlci9uYXZpZ2F0aW9uLXBvbGljeS9zaG91bGQt
b3Blbi1leHRlcm5hbC11cmxzL3Jlc291cmNlcy91c2VyLWdlc3R1cmUtd2luZG93LW9wZW4tdG8t
bm90aWZ5LWRvbmUuaHRtbDogQWRkZWQuCisgICAgICAgICogbG9hZGVyL25hdmlnYXRpb24tcG9s
aWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvcmVzb3VyY2VzL3dpbmRvdy1vcGVuLXRvLW5v
dGlmeS1kb25lLWZyb20tc3ViZnJhbWUuaHRtbDogQWRkZWQuCisgICAgICAgICogbG9hZGVyL25h
dmlnYXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvcmVzb3VyY2VzL3dpbmRv
dy1vcGVuLXRvLW5vdGlmeS1kb25lLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGxvYWRlci9uYXZp
Z2F0aW9uLXBvbGljeS9zaG91bGQtb3Blbi1leHRlcm5hbC11cmxzL3N1YmZyYW1lLWNsaWNrLXRh
cmdldC1zZWxmLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogbG9hZGVyL25hdmlnYXRp
b24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvc3ViZnJhbWUtY2xpY2stdGFyZ2V0
LXNlbGYuaHRtbDogQWRkZWQuCisgICAgICAgICogbG9hZGVyL25hdmlnYXRpb24tcG9saWN5L3No
b3VsZC1vcGVuLWV4dGVybmFsLXVybHMvc3ViZnJhbWUtY2xpY2stdGFyZ2V0LXRvcC1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGxvYWRlci9uYXZpZ2F0aW9uLXBvbGljeS9zaG91bGQt
b3Blbi1leHRlcm5hbC11cmxzL3N1YmZyYW1lLWNsaWNrLXRhcmdldC10b3AuaHRtbDogQWRkZWQu
CisgICAgICAgICogbG9hZGVyL25hdmlnYXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFs
LXVybHMvdXNlci1nZXN0dXJlLXRhcmdldC1ibGFuay13aXRoLWZsYWctZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBsb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0
ZXJuYWwtdXJscy91c2VyLWdlc3R1cmUtdGFyZ2V0LWJsYW5rLXdpdGgtZmxhZy1mcm9tLXN1YmZy
YW1lLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogbG9hZGVyL25hdmlnYXRpb24tcG9s
aWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvdXNlci1nZXN0dXJlLXRhcmdldC1ibGFuay13
aXRoLWZsYWctZnJvbS1zdWJmcmFtZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBsb2FkZXIvbmF2
aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJscy91c2VyLWdlc3R1cmUtdGFy
Z2V0LWJsYW5rLXdpdGgtZmxhZy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBsb2FkZXIvbmF2aWdh
dGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJscy91c2VyLWdlc3R1cmUtdGFyZ2V0
LWJsYW5rLXdpdGhvdXQtZmxhZy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGxvYWRl
ci9uYXZpZ2F0aW9uLXBvbGljeS9zaG91bGQtb3Blbi1leHRlcm5hbC11cmxzL3VzZXItZ2VzdHVy
ZS10YXJnZXQtYmxhbmstd2l0aG91dC1mbGFnLWZyb20tc3ViZnJhbWUtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBsb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0
ZXJuYWwtdXJscy91c2VyLWdlc3R1cmUtdGFyZ2V0LWJsYW5rLXdpdGhvdXQtZmxhZy1mcm9tLXN1
YmZyYW1lLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGxvYWRlci9uYXZpZ2F0aW9uLXBvbGljeS9z
aG91bGQtb3Blbi1leHRlcm5hbC11cmxzL3VzZXItZ2VzdHVyZS10YXJnZXQtYmxhbmstd2l0aG91
dC1mbGFnLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGxvYWRlci9uYXZpZ2F0aW9uLXBvbGljeS9z
aG91bGQtb3Blbi1leHRlcm5hbC11cmxzL3VzZXItZ2VzdHVyZS13aW5kb3ctb3Blbi13aXRoLWZs
YWctZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBsb2FkZXIvbmF2aWdhdGlvbi1wb2xp
Y3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJscy91c2VyLWdlc3R1cmUtd2luZG93LW9wZW4td2l0
aC1mbGFnLWZyb20tc3ViZnJhbWUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBsb2Fk
ZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJscy91c2VyLWdlc3R1
cmUtd2luZG93LW9wZW4td2l0aC1mbGFnLWZyb20tc3ViZnJhbWUuaHRtbDogQWRkZWQuCisgICAg
ICAgICogbG9hZGVyL25hdmlnYXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMv
dXNlci1nZXN0dXJlLXdpbmRvdy1vcGVuLXdpdGgtZmxhZy5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBsb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJscy91c2Vy
LWdlc3R1cmUtd2luZG93LW9wZW4td2l0aG91dC1mbGFnLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogbG9hZGVyL25hdmlnYXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVy
bHMvdXNlci1nZXN0dXJlLXdpbmRvdy1vcGVuLXdpdGhvdXQtZmxhZy1mcm9tLXN1YmZyYW1lLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogbG9hZGVyL25hdmlnYXRpb24tcG9saWN5L3No
b3VsZC1vcGVuLWV4dGVybmFsLXVybHMvdXNlci1nZXN0dXJlLXdpbmRvdy1vcGVuLXdpdGhvdXQt
ZmxhZy1mcm9tLXN1YmZyYW1lLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGxvYWRlci9uYXZpZ2F0
aW9uLXBvbGljeS9zaG91bGQtb3Blbi1leHRlcm5hbC11cmxzL3VzZXItZ2VzdHVyZS13aW5kb3ct
b3Blbi13aXRob3V0LWZsYWcuaHRtbDogQWRkZWQuCisgICAgICAgICogbG9hZGVyL25hdmlnYXRp
b24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvd2luZG93LW9wZW4td2l0aC1mbGFn
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogbG9hZGVyL25hdmlnYXRpb24tcG9saWN5
L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvd2luZG93LW9wZW4td2l0aC1mbGFnLWZyb20tc3Vi
ZnJhbWUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBsb2FkZXIvbmF2aWdhdGlvbi1w
b2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJscy93aW5kb3ctb3Blbi13aXRoLWZsYWctZnJv
bS1zdWJmcmFtZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBsb2FkZXIvbmF2aWdhdGlvbi1wb2xp
Y3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJscy93aW5kb3ctb3Blbi13aXRoLWZsYWcuaHRtbDog
QWRkZWQuCisgICAgICAgICogbG9hZGVyL25hdmlnYXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4
dGVybmFsLXVybHMvd2luZG93LW9wZW4td2l0aG91dC1mbGFnLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogbG9hZGVyL25hdmlnYXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFs
LXVybHMvd2luZG93LW9wZW4td2l0aG91dC1mbGFnLWZyb20tc3ViZnJhbWUtZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBsb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4t
ZXh0ZXJuYWwtdXJscy93aW5kb3ctb3Blbi13aXRob3V0LWZsYWctZnJvbS1zdWJmcmFtZS5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiBsb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4t
ZXh0ZXJuYWwtdXJscy93aW5kb3ctb3Blbi13aXRob3V0LWZsYWcuaHRtbDogQWRkZWQuCisKKzIw
MTUtMDYtMDEgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCiAgICAgICAgIEFk
ZCBXS1RSIHN1cHBvcnQgZm9yICJzaG91bGQgb3BlbiBleHRlcm5hbCBVUkxzIi4KICAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NTUwNQogCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0
ZXJuYWwtdXJscy9tYWluLWZyYW1lLWNsaWNrLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2xv
YWRlci9uYXZpZ2F0aW9uLXBvbGljeS9zaG91bGQtb3Blbi1leHRlcm5hbC11cmxzL21haW4tZnJh
bWUtY2xpY2stZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LjFhYTJhYjEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdhdGlv
bi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJscy9tYWluLWZyYW1lLWNsaWNrLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDUgQEAKKyAtIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rp
b24gCis8TlNVUkxSZXF1ZXN0IFVSTCByZXNvdXJjZXMvY2xpY2stbm90aWZ5LWRvbmUtaW4tbWFp
bi5odG1sLCBtYWluIGRvY3VtZW50IFVSTCByZXNvdXJjZXMvY2xpY2stbm90aWZ5LWRvbmUtaW4t
bWFpbi5odG1sLCBodHRwIG1ldGhvZCBHRVQ+IGlzIG1haW4gZnJhbWUgLSB5ZXMgc2hvdWxkIG9w
ZW4gVVJMcyBleHRlcm5hbGx5IC0gbm8KKyAtIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rp
b24gCis8TlNVUkxSZXF1ZXN0IFVSTCBub3RpZnktZG9uZS5odG1sLCBtYWluIGRvY3VtZW50IFVS
TCBub3RpZnktZG9uZS5odG1sLCBodHRwIG1ldGhvZCBHRVQ+IGlzIG1haW4gZnJhbWUgLSB5ZXMg
c2hvdWxkIG9wZW4gVVJMcyBleHRlcm5hbGx5IC0geWVzCisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2xvYWRlci9uYXZpZ2F0aW9uLXBvbGljeS9zaG91bGQtb3Blbi1leHRlcm5hbC11cmxzL21h
aW4tZnJhbWUtY2xpY2suaHRtbCBiL0xheW91dFRlc3RzL2xvYWRlci9uYXZpZ2F0aW9uLXBvbGlj
eS9zaG91bGQtb3Blbi1leHRlcm5hbC11cmxzL21haW4tZnJhbWUtY2xpY2suaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42MGRiOTU5Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvbG9hZGVyL25hdmlnYXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFs
LXVybHMvbWFpbi1mcmFtZS1jbGljay5odG1sCkBAIC0wLDAgKzEsMTkgQEAKKzxzY3JpcHQ+CisK
K2lmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwor
ICAgIHRlc3RSdW5uZXIuZHVtcFBvbGljeURlbGVnYXRlQ2FsbGJhY2tzKCk7CisgICAgdGVzdFJ1
bm5lci53YWl0VW50aWxEb25lKCk7Cit9CisKK2Z1bmN0aW9uIHJ1blRlc3QoKQoreworICAgIHdp
bmRvdy5sb2NhdGlvbi5ocmVmID0gInJlc291cmNlcy9jbGljay1ub3RpZnktZG9uZS1pbi1tYWlu
Lmh0bWwiOworfQorCis8L3NjcmlwdD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpOyI+CitUaGlz
IG1haW4gZnJhbWUgbG9hZCBzdGFydHMgd2l0aCB0aGUgc2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJs
cyBmbGFnIHNldCB0byBmYWxzZS48YnI+CitJdCBsb2FkcyBhIG5ldyBwYWdlIHByb2dyYW1tYXRp
Y2FsbHksIGxlYXZpbmcgdGhlIGZsYWcgZmFsc2UuPGJyPgorVGhhdCBuZXcgcGFnZSBjbGlja3Mg
YSBsaW5rLCB3aGljaCBzaG91bGQgc2V0IHRoZSBmbGFnIHRvIHRydWUuCis8L2JvZHk+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4t
ZXh0ZXJuYWwtdXJscy9tYWluLWZyYW1lLW5hdmlnYXRlZC1wcm9ncmFtYXRpY2FsbHktYnktc3Vi
ZnJhbWUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvbG9hZGVyL25hdmlnYXRpb24tcG9saWN5
L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvbWFpbi1mcmFtZS1uYXZpZ2F0ZWQtcHJvZ3JhbWF0
aWNhbGx5LWJ5LXN1YmZyYW1lLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi5mZmUwNzgyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbG9hZGVy
L25hdmlnYXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvbWFpbi1mcmFtZS1u
YXZpZ2F0ZWQtcHJvZ3JhbWF0aWNhbGx5LWJ5LXN1YmZyYW1lLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDcgQEAKKyAtIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24gCis8TlNVUkxSZXF1
ZXN0IFVSTCByZXNvdXJjZXMvbWFpbi1mcmFtZS13aXRoLXN1YmZyYW1lLXByb2dyYW1hdGljYWxs
eS1uYXZpZ2F0ZXMtbWFpbi5odG1sLCBtYWluIGRvY3VtZW50IFVSTCByZXNvdXJjZXMvbWFpbi1m
cmFtZS13aXRoLXN1YmZyYW1lLXByb2dyYW1hdGljYWxseS1uYXZpZ2F0ZXMtbWFpbi5odG1sLCBo
dHRwIG1ldGhvZCBHRVQ+IGlzIG1haW4gZnJhbWUgLSB5ZXMgc2hvdWxkIG9wZW4gVVJMcyBleHRl
cm5hbGx5IC0geWVzCisgLSBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uIAorPE5TVVJM
UmVxdWVzdCBVUkwgcHJvZ3JhbWF0aWNhbGx5LW5hdmlnYXRlLXRvLW5vdGlmeS1kb25lLXRhcmdl
dC10b3AuaHRtbCwgbWFpbiBkb2N1bWVudCBVUkwgbWFpbi1mcmFtZS13aXRoLXN1YmZyYW1lLXBy
b2dyYW1hdGljYWxseS1uYXZpZ2F0ZXMtbWFpbi5odG1sLCBodHRwIG1ldGhvZCBHRVQ+IGlzIG1h
aW4gZnJhbWUgLSBubyBzaG91bGQgb3BlbiBVUkxzIGV4dGVybmFsbHkgLSBubworIC0gZGVjaWRl
UG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbiAKKzxOU1VSTFJlcXVlc3QgVVJMIG5vdGlmeS1kb25l
Lmh0bWwsIG1haW4gZG9jdW1lbnQgVVJMIG5vdGlmeS1kb25lLmh0bWwsIGh0dHAgbWV0aG9kIEdF
VD4gaXMgbWFpbiBmcmFtZSAtIHllcyBzaG91bGQgb3BlbiBVUkxzIGV4dGVybmFsbHkgLSBubwor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxk
LW9wZW4tZXh0ZXJuYWwtdXJscy9tYWluLWZyYW1lLW5hdmlnYXRlZC1wcm9ncmFtYXRpY2FsbHkt
Ynktc3ViZnJhbWUuaHRtbCBiL0xheW91dFRlc3RzL2xvYWRlci9uYXZpZ2F0aW9uLXBvbGljeS9z
aG91bGQtb3Blbi1leHRlcm5hbC11cmxzL21haW4tZnJhbWUtbmF2aWdhdGVkLXByb2dyYW1hdGlj
YWxseS1ieS1zdWJmcmFtZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LjNiYTNlM2QKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdhdGlv
bi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJscy9tYWluLWZyYW1lLW5hdmlnYXRlZC1w
cm9ncmFtYXRpY2FsbHktYnktc3ViZnJhbWUuaHRtbApAQCAtMCwwICsxLDEzIEBACis8c2NyaXB0
PgorCitpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQo
KTsKKyAgICB0ZXN0UnVubmVyLmR1bXBQb2xpY3lEZWxlZ2F0ZUNhbGxiYWNrcygpOworICAgIHRl
c3RSdW5uZXIucXVldWVMb2FkKCJyZXNvdXJjZXMvbWFpbi1mcmFtZS13aXRoLXN1YmZyYW1lLXBy
b2dyYW1hdGljYWxseS1uYXZpZ2F0ZXMtbWFpbi5odG1sIiwgIiIsIHRydWUpOworfQorCis8L3Nj
cmlwdD4KK1RoaXMgcGFnZSBoYXMgZG9lcyBub3QgaGF2ZSB0aGUgInNob3VsZCBvcGVuIGV4dGVy
bmFsIFVSTHMiIGZsYWcgc2V0Ljxicj4KK0l0IG5hdmlnYXRlcyB0byBhIDJuZCBwYWdlIHRoYXQg
ZG9lcyBoYXZlIHRoZSBmbGFnIHNldC48YnI+CitUaGF0IDJuZCBwYWdlIGNvbnRhaW5zIGFuIGlm
cmFtZSB3aGljaCBwcm9ncmFtYXRpY2FsbHkgbmF2aWdhdGVzIHRoZSBtYWluIGZyYW1lIHRvIGEg
M3JkIHBhZ2UuPGJyPgorVGhlICJzaG91bGQgb3BlbiBleHRlcm5hbCBVUkxzIiBmbGFnIHNob3Vs
ZCBiZSB1bnNldCBiZWNhdXNlIHRoZSBzdWJmcmFtZS0+bWFpbiBmcmFtZSBuYXZpZ2F0aW9uIHdh
cyBwcm9ncmFtYXRpYy48YnI+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdh
dGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJscy9tYWluLWZyYW1lLXdpdGgtZmxh
Zy1wcm9nYW1hdGljLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2xvYWRlci9uYXZpZ2F0aW9u
LXBvbGljeS9zaG91bGQtb3Blbi1leHRlcm5hbC11cmxzL21haW4tZnJhbWUtd2l0aC1mbGFnLXBy
b2dhbWF0aWMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LjI2NDFhZGQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdhdGlv
bi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJscy9tYWluLWZyYW1lLXdpdGgtZmxhZy1w
cm9nYW1hdGljLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKKyAtIGRlY2lkZVBvbGljeUZv
ck5hdmlnYXRpb25BY3Rpb24gCis8TlNVUkxSZXF1ZXN0IFVSTCByZXNvdXJjZXMvcHJvZ3JhbWF0
aWNhbGx5LW5hdmlnYXRlLXRvLW5vdGlmeS1kb25lLmh0bWwsIG1haW4gZG9jdW1lbnQgVVJMIHJl
c291cmNlcy9wcm9ncmFtYXRpY2FsbHktbmF2aWdhdGUtdG8tbm90aWZ5LWRvbmUuaHRtbCwgaHR0
cCBtZXRob2QgR0VUPiBpcyBtYWluIGZyYW1lIC0geWVzIHNob3VsZCBvcGVuIFVSTHMgZXh0ZXJu
YWxseSAtIHllcworIC0gZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbiAKKzxOU1VSTFJl
cXVlc3QgVVJMIG5vdGlmeS1kb25lLmh0bWwsIG1haW4gZG9jdW1lbnQgVVJMIG5vdGlmeS1kb25l
Lmh0bWwsIGh0dHAgbWV0aG9kIEdFVD4gaXMgbWFpbiBmcmFtZSAtIHllcyBzaG91bGQgb3BlbiBV
UkxzIGV4dGVybmFsbHkgLSB5ZXMKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbG9hZGVyL25h
dmlnYXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvbWFpbi1mcmFtZS13aXRo
LWZsYWctcHJvZ2FtYXRpYy5odG1sIGIvTGF5b3V0VGVzdHMvbG9hZGVyL25hdmlnYXRpb24tcG9s
aWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvbWFpbi1mcmFtZS13aXRoLWZsYWctcHJvZ2Ft
YXRpYy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjllM2RlMzgKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hv
dWxkLW9wZW4tZXh0ZXJuYWwtdXJscy9tYWluLWZyYW1lLXdpdGgtZmxhZy1wcm9nYW1hdGljLmh0
bWwKQEAgLTAsMCArMSwxMiBAQAorPHNjcmlwdD4KKworaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7
CisgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgdGVzdFJ1bm5lci5kdW1wUG9saWN5
RGVsZWdhdGVDYWxsYmFja3MoKTsKKyAgICB0ZXN0UnVubmVyLnF1ZXVlTG9hZCgicmVzb3VyY2Vz
L3Byb2dyYW1hdGljYWxseS1uYXZpZ2F0ZS10by1ub3RpZnktZG9uZS5odG1sIiwgIiIsIHRydWUp
OworfQorCis8L3NjcmlwdD4KK1RoaXMgcGFnZSBuYXZpZ2F0ZXMgdG8gYSAybmQgcGFnZSB1c2lu
ZyB0aGUgQVBJIHRoYXQgc2V0cyB0aGUgInNob3VsZCBvcGVuIGV4dGVybmFsIFVSTHMiIGZsYWcg
dG8gdHJ1ZS48YnI+CitUaGF0IHBhZ2UgdGhlbiBwcm9ncmFtYXRpY2FsbHkgcmVkaXJlY3RzIHRv
IGEgM3JkIHBhZ2UuPGJyPgorVGhhdCBuYXZpZ2F0aW9uIGZyb20gdGhlIDJuZCBwYWdlIHRvIHRo
ZSAzcmQgcGFnZSBzaG91bGQgc3RpbGwgaGF2ZSB0aGUgZmxhZyBzZXQsIGJlY2F1c2UgdGhlIGZs
YWcgcHJvcGFnYXRlcyB0aHJvdWdoIG1haW4gZnJhbWUgbG9hZHMuPGJyPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvbG9hZGVyL25hdmlnYXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFs
LXVybHMvbWFpbi1mcmFtZS13aXRob3V0LWZsYWctcHJvZ3JhbWF0aWMtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvbG9hZGVyL25hdmlnYXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFs
LXVybHMvbWFpbi1mcmFtZS13aXRob3V0LWZsYWctcHJvZ3JhbWF0aWMtZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNjNDk4MGEKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0
ZXJuYWwtdXJscy9tYWluLWZyYW1lLXdpdGhvdXQtZmxhZy1wcm9ncmFtYXRpYy1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSw1IEBACisgLSBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uIAor
PE5TVVJMUmVxdWVzdCBVUkwgcmVzb3VyY2VzL3Byb2dyYW1hdGljYWxseS1uYXZpZ2F0ZS10by1u
b3RpZnktZG9uZS5odG1sLCBtYWluIGRvY3VtZW50IFVSTCByZXNvdXJjZXMvcHJvZ3JhbWF0aWNh
bGx5LW5hdmlnYXRlLXRvLW5vdGlmeS1kb25lLmh0bWwsIGh0dHAgbWV0aG9kIEdFVD4gaXMgbWFp
biBmcmFtZSAtIHllcyBzaG91bGQgb3BlbiBVUkxzIGV4dGVybmFsbHkgLSBubworIC0gZGVjaWRl
UG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbiAKKzxOU1VSTFJlcXVlc3QgVVJMIG5vdGlmeS1kb25l
Lmh0bWwsIG1haW4gZG9jdW1lbnQgVVJMIG5vdGlmeS1kb25lLmh0bWwsIGh0dHAgbWV0aG9kIEdF
VD4gaXMgbWFpbiBmcmFtZSAtIHllcyBzaG91bGQgb3BlbiBVUkxzIGV4dGVybmFsbHkgLSBubwor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxk
LW9wZW4tZXh0ZXJuYWwtdXJscy9tYWluLWZyYW1lLXdpdGhvdXQtZmxhZy1wcm9ncmFtYXRpYy5o
dG1sIGIvTGF5b3V0VGVzdHMvbG9hZGVyL25hdmlnYXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4
dGVybmFsLXVybHMvbWFpbi1mcmFtZS13aXRob3V0LWZsYWctcHJvZ3JhbWF0aWMuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40YjU5ODAwCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvbG9hZGVyL25hdmlnYXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVy
bmFsLXVybHMvbWFpbi1mcmFtZS13aXRob3V0LWZsYWctcHJvZ3JhbWF0aWMuaHRtbApAQCAtMCww
ICsxLDEyIEBACis8c2NyaXB0PgorCitpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICB0ZXN0
UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICB0ZXN0UnVubmVyLmR1bXBQb2xpY3lEZWxlZ2F0ZUNh
bGxiYWNrcygpOworICAgIHRlc3RSdW5uZXIucXVldWVMb2FkKCJyZXNvdXJjZXMvcHJvZ3JhbWF0
aWNhbGx5LW5hdmlnYXRlLXRvLW5vdGlmeS1kb25lLmh0bWwiKTsKK30KKworPC9zY3JpcHQ+CitU
aGlzIHBhZ2UgbmF2aWdhdGVzIHRvIGEgMm5kIHBhZ2Ugd2l0aCB0aGUgInNob3VsZCBvcGVuIGV4
dGVybmFsIFVSTHMiIGZsYWcgc2V0IHRvIGZhbHNlLjxicj4KK1RoYXQgcGFnZSB0aGVuIHByb2dy
YW1hdGljYWxseSByZWRpcmVjdHMgdG8gYSAzcmQgcGFnZS48YnI+CitEdXJpbmcgdGhlIG5hdmln
YXRpb24gZnJvbSB0aGUgMm5kIHBhZ2UgdG8gdGhlIDNyZCBwYWdlIHRoZSBmbGFnIHNob3VsZCBz
dGlsbCBiZSBmYWxzZSwgYmVjYXVzZSBubyB1c2VyIGdlc3R1cmUgd2FzIGludm9sdmVkLjxicj4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2xvYWRlci9uYXZpZ2F0aW9uLXBvbGljeS9zaG91bGQt
b3Blbi1leHRlcm5hbC11cmxzL3Jlc291cmNlcy9jbGljay1ub3RpZnktZG9uZS1pbi1tYWluLmh0
bWwgYi9MYXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0
ZXJuYWwtdXJscy9yZXNvdXJjZXMvY2xpY2stbm90aWZ5LWRvbmUtaW4tbWFpbi5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAyNzAxZDcKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJu
YWwtdXJscy9yZXNvdXJjZXMvY2xpY2stbm90aWZ5LWRvbmUtaW4tbWFpbi5odG1sCkBAIC0wLDAg
KzEsMTQgQEAKKzxzY3JpcHQ+CitmdW5jdGlvbiBydW5UZXN0KCkKK3sKKyAgICBpZiAod2luZG93
LmV2ZW50U2VuZGVyKSB7CisgICAgICAgIHZhciBhID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
ImEiKTsKKyAgICAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oYS5vZmZzZXRMZWZ0ICsgMiwg
YS5vZmZzZXRUb3AgKyAyKTsKKyAgICAgICAgZXZlbnRTZW5kZXIubW91c2VEb3duKCk7CisgICAg
ICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAoKTsKKyAgICB9Cit9Cis8L3NjcmlwdD4KKzxib2R5IG9u
bG9hZD0icnVuVGVzdCgpOyI+Cis8YSBpZD0iYSIgaHJlZj0ibm90aWZ5LWRvbmUuaHRtbCIgdGFy
Z2V0PSJfdG9wIj5DbGljayBmb3Igbm90aWZ5IGRvbmUgaW4gbWFpbiBmcmFtZTwvYT4KKzwvYm9k
eT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2xvYWRlci9uYXZpZ2F0aW9uLXBvbGljeS9zaG91
bGQtb3Blbi1leHRlcm5hbC11cmxzL3Jlc291cmNlcy9pZnJhbWUtY2xpY2stbm90aWZ5LWRvbmUt
dGFyZ2V0LXNlbGYuaHRtbCBiL0xheW91dFRlc3RzL2xvYWRlci9uYXZpZ2F0aW9uLXBvbGljeS9z
aG91bGQtb3Blbi1leHRlcm5hbC11cmxzL3Jlc291cmNlcy9pZnJhbWUtY2xpY2stbm90aWZ5LWRv
bmUtdGFyZ2V0LXNlbGYuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41
ZTAwMjUxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbG9hZGVyL25hdmlnYXRpb24t
cG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvcmVzb3VyY2VzL2lmcmFtZS1jbGljay1u
b3RpZnktZG9uZS10YXJnZXQtc2VsZi5odG1sCkBAIC0wLDAgKzEsMTggQEAKKzxzY3JpcHQ+CisK
K2Z1bmN0aW9uIHJ1blRlc3QoKQoreworICAgIGlmICghd2luZG93LmV2ZW50U2VuZGVyKQorICAg
ICAgICByZXR1cm47CisKKyAgICB2YXIgYSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhIik7
CisgICAgdmFyIGlmcmFtZSA9IHdpbmRvdy5wYXJlbnQuZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRh
Z05hbWUoImlmcmFtZSIpWzBdOworICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKGEub2Zmc2V0
TGVmdCArIGlmcmFtZS5vZmZzZXRMZWZ0ICsgMiwgYS5vZmZzZXRUb3AgKyBpZnJhbWUub2Zmc2V0
VG9wICsgMik7CisgICAgZXZlbnRTZW5kZXIubW91c2VEb3duKCk7CisgICAgZXZlbnRTZW5kZXIu
bW91c2VVcCgpOworfQorCis8L3NjcmlwdD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpOyI+Cis8
YSBpZD0iYSIgaHJlZj0ibm90aWZ5LWRvbmUuaHRtbCIgdGFyZ2V0PSJfc2VsZiI+Q2xpY2sgZm9y
IG5vdGlmeSBkb25lIGluIHRoaXMgZnJhbWU8L2E+Cis8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9sb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJs
cy9yZXNvdXJjZXMvaWZyYW1lLWNsaWNrLW5vdGlmeS1kb25lLXRhcmdldC10b3AuaHRtbCBiL0xh
eW91dFRlc3RzL2xvYWRlci9uYXZpZ2F0aW9uLXBvbGljeS9zaG91bGQtb3Blbi1leHRlcm5hbC11
cmxzL3Jlc291cmNlcy9pZnJhbWUtY2xpY2stbm90aWZ5LWRvbmUtdGFyZ2V0LXRvcC5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU2YThmYTEKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0
ZXJuYWwtdXJscy9yZXNvdXJjZXMvaWZyYW1lLWNsaWNrLW5vdGlmeS1kb25lLXRhcmdldC10b3Au
aHRtbApAQCAtMCwwICsxLDE4IEBACis8c2NyaXB0PgorCitmdW5jdGlvbiBydW5UZXN0KCkKK3sK
KyAgICBpZiAoIXdpbmRvdy5ldmVudFNlbmRlcikKKyAgICAgICAgcmV0dXJuOworCisgICAgdmFy
IGEgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYSIpOworICAgIHZhciBpZnJhbWUgPSB3aW5k
b3cucGFyZW50LmRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJpZnJhbWUiKVswXTsKKyAg
ICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyhhLm9mZnNldExlZnQgKyBpZnJhbWUub2Zmc2V0TGVm
dCArIDIsIGEub2Zmc2V0VG9wICsgaWZyYW1lLm9mZnNldFRvcCArIDIpOworICAgIGV2ZW50U2Vu
ZGVyLm1vdXNlRG93bigpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAoKTsKK30KKworPC9zY3Jp
cHQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKTsiPgorPGEgaWQ9ImEiIGhyZWY9Im5vdGlmeS1k
b25lLmh0bWwiIHRhcmdldD0iX3RvcCI+Q2xpY2sgZm9yIG5vdGlmeSBkb25lIGluIHRoZSBtYWlu
IGZyYW1lPC9hPgorPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbG9hZGVyL25hdmln
YXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvcmVzb3VyY2VzL21haW4tZnJh
bWUtd2l0aC1zdWJmcmFtZS1jbGljay10YXJnZXRzLXN1YmZyYW1lLmh0bWwgYi9MYXlvdXRUZXN0
cy9sb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJscy9yZXNv
dXJjZXMvbWFpbi1mcmFtZS13aXRoLXN1YmZyYW1lLWNsaWNrLXRhcmdldHMtc3ViZnJhbWUuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iMTEzMDE1Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvbG9hZGVyL25hdmlnYXRpb24tcG9saWN5L3Nob3VsZC1vcGVu
LWV4dGVybmFsLXVybHMvcmVzb3VyY2VzL21haW4tZnJhbWUtd2l0aC1zdWJmcmFtZS1jbGljay10
YXJnZXRzLXN1YmZyYW1lLmh0bWwKQEAgLTAsMCArMSw1IEBACitUaGlzIHBhZ2UgY29udGFpbnMg
YSBzdWJmcmFtZS48YnI+CitDbGlja2luZyB0aGUgbGluayBpbiB0aGUgc3ViZnJhbWUgbmF2aWdh
dGVzIHRoZSBzdWJmcmFtZS48YnI+CitUaGUgInNob3VsZCBvcGVuIGV4dGVybmFsIFVSTHMiIGZs
YWcgb24gdGhhdCBuYXZpZ2F0aW9uIHNob3VsZCBiZSBmYWxzZS4gRXZlbiB0aG91Z2ggaXQgd2Fz
IGEgbGluayBjbGljaywgaXQgd2FzIHdpdGhpbiBhIHN1YmZyYW1lIHdoaWNoIHNob3VsZCBuZXZl
ciBnZXQgdGhlIGZsYWcgc2V0IHRvIHRydWUuPGJyPgorPGlmcmFtZSBzcmM9ImNsaWNrLW5vdGlm
eS1kb25lLWluLXNlbGYuaHRtbCI+PC9pZnJhbWU+CisgClwgTm8gbmV3bGluZSBhdCBlbmQgb2Yg
ZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbG9hZGVyL25hdmlnYXRpb24tcG9saWN5L3No
b3VsZC1vcGVuLWV4dGVybmFsLXVybHMvcmVzb3VyY2VzL21haW4tZnJhbWUtd2l0aC1zdWJmcmFt
ZS1wcm9ncmFtYXRpY2FsbHktbmF2aWdhdGVzLW1haW4uaHRtbCBiL0xheW91dFRlc3RzL2xvYWRl
ci9uYXZpZ2F0aW9uLXBvbGljeS9zaG91bGQtb3Blbi1leHRlcm5hbC11cmxzL3Jlc291cmNlcy9t
YWluLWZyYW1lLXdpdGgtc3ViZnJhbWUtcHJvZ3JhbWF0aWNhbGx5LW5hdmlnYXRlcy1tYWluLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODY2NjM4MgotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2xvYWRlci9uYXZpZ2F0aW9uLXBvbGljeS9zaG91bGQtb3Bl
bi1leHRlcm5hbC11cmxzL3Jlc291cmNlcy9tYWluLWZyYW1lLXdpdGgtc3ViZnJhbWUtcHJvZ3Jh
bWF0aWNhbGx5LW5hdmlnYXRlcy1tYWluLmh0bWwKQEAgLTAsMCArMSw2IEBACis8c2NyaXB0Pgor
aWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwor
PC9zY3JpcHQ+CisKKzxpZnJhbWUgc3JjPSJwcm9ncmFtYXRpY2FsbHktbmF2aWdhdGUtdG8tbm90
aWZ5LWRvbmUtdGFyZ2V0LXRvcC5odG1sIj48L2lmcmFtZT4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2xvYWRlci9uYXZpZ2F0aW9uLXBvbGljeS9zaG91bGQtb3Blbi1leHRlcm5hbC11cmxzL3Jl
c291cmNlcy9wcm9ncmFtYXRpY2FsbHktbmF2aWdhdGUtdG8tbm90aWZ5LWRvbmUtdGFyZ2V0LXRv
cC5odG1sIGIvTGF5b3V0VGVzdHMvbG9hZGVyL25hdmlnYXRpb24tcG9saWN5L3Nob3VsZC1vcGVu
LWV4dGVybmFsLXVybHMvcmVzb3VyY2VzL3Byb2dyYW1hdGljYWxseS1uYXZpZ2F0ZS10by1ub3Rp
ZnktZG9uZS10YXJnZXQtdG9wLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uMTk3YTQzMjYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdh
dGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJscy9yZXNvdXJjZXMvcHJvZ3JhbWF0
aWNhbGx5LW5hdmlnYXRlLXRvLW5vdGlmeS1kb25lLXRhcmdldC10b3AuaHRtbApAQCAtMCwwICsx
LDE0IEBACis8c2NyaXB0PgorCitpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgdGVzdFJ1bm5l
ci53YWl0VW50aWxEb25lKCk7CisgICAgCitmdW5jdGlvbiBsb2FkZWQoKQoreworICAgIHdpbmRv
dy50b3AubG9jYXRpb24uaHJlZiA9ICJub3RpZnktZG9uZS5odG1sIjsKK30KKworPC9zY3JpcHQ+
Cis8Ym9keSBvbmxvYWQ9ImxvYWRlZCgpOyI+CitUaGlzIHBhZ2UgZG9lcyBhIGphdmFzY3JpcHQg
Y2xpZW50IHJlZGlyZWN0IHRvIG5vdGlmeS1kb25lLmh0bWwgaW4gdGhlIG1haW4gZnJhbWUuCis8
L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kv
c2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJscy9yZXNvdXJjZXMvcHJvZ3JhbWF0aWNhbGx5LW5hdmln
YXRlLXRvLW5vdGlmeS1kb25lLmh0bWwgYi9MYXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdhdGlvbi1w
b2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJscy9yZXNvdXJjZXMvcHJvZ3JhbWF0aWNhbGx5
LW5hdmlnYXRlLXRvLW5vdGlmeS1kb25lLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMC4uYjU5YjliYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2xvYWRlci9u
YXZpZ2F0aW9uLXBvbGljeS9zaG91bGQtb3Blbi1leHRlcm5hbC11cmxzL3Jlc291cmNlcy9wcm9n
cmFtYXRpY2FsbHktbmF2aWdhdGUtdG8tbm90aWZ5LWRvbmUuaHRtbApAQCAtMCwwICsxLDE0IEBA
Cis8c2NyaXB0PgorCitpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgdGVzdFJ1bm5lci53YWl0
VW50aWxEb25lKCk7CisgICAgCitmdW5jdGlvbiBsb2FkZWQoKQoreworICAgIHdpbmRvdy5sb2Nh
dGlvbi5ocmVmID0gIm5vdGlmeS1kb25lLmh0bWwiOworfQorCis8L3NjcmlwdD4KKzxib2R5IG9u
bG9hZD0ibG9hZGVkKCk7Ij4KK1RoaXMgcGFnZSBkb2VzIGEgamF2YXNjcmlwdCBjbGllbnQgcmVk
aXJlY3QgdG8gbm90aWZ5LWRvbmUuaHRtbC4KKzwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2xvYWRlci9uYXZpZ2F0aW9uLXBvbGljeS9zaG91bGQtb3Blbi1leHRlcm5hbC11cmxzL3Jl
c291cmNlcy91c2VyLWdlc3R1cmUtdGFyZ2V0LWJsYW5rLXRvLW5vdGlmeS1kb25lLWZyb20tc3Vi
ZnJhbWUuaHRtbCBiL0xheW91dFRlc3RzL2xvYWRlci9uYXZpZ2F0aW9uLXBvbGljeS9zaG91bGQt
b3Blbi1leHRlcm5hbC11cmxzL3Jlc291cmNlcy91c2VyLWdlc3R1cmUtdGFyZ2V0LWJsYW5rLXRv
LW5vdGlmeS1kb25lLWZyb20tc3ViZnJhbWUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi4wMmM3NDM1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbG9hZGVy
L25hdmlnYXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvcmVzb3VyY2VzL3Vz
ZXItZ2VzdHVyZS10YXJnZXQtYmxhbmstdG8tbm90aWZ5LWRvbmUtZnJvbS1zdWJmcmFtZS5odG1s
CkBAIC0wLDAgKzEgQEAKKzxpZnJhbWUgc3JjPSJ1c2VyLWdlc3R1cmUtdGFyZ2V0LWJsYW5rLXRv
LW5vdGlmeS1kb25lLmh0bWwiPjwvaWZyYW1lPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2xvYWRlci9uYXZpZ2F0aW9uLXBvbGljeS9zaG91bGQt
b3Blbi1leHRlcm5hbC11cmxzL3Jlc291cmNlcy91c2VyLWdlc3R1cmUtdGFyZ2V0LWJsYW5rLXRv
LW5vdGlmeS1kb25lLmh0bWwgYi9MYXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kv
c2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJscy9yZXNvdXJjZXMvdXNlci1nZXN0dXJlLXRhcmdldC1i
bGFuay10by1ub3RpZnktZG9uZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLmIzOWRkOGYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdh
dGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJscy9yZXNvdXJjZXMvdXNlci1nZXN0
dXJlLXRhcmdldC1ibGFuay10by1ub3RpZnktZG9uZS5odG1sCkBAIC0wLDAgKzEsMjggQEAKKzxz
Y3JpcHQ+CisKK2lmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgIHRlc3RSdW5uZXIud2FpdFVu
dGlsRG9uZSgpOworICAgIHRlc3RSdW5uZXIuc2V0Q2FuT3BlbldpbmRvd3MoKTsKK30KKworZnVu
Y3Rpb24gbG9hZGVkKCkKK3sKKyAgICBpZiAoIXdpbmRvdy5ldmVudFNlbmRlcikKKyAgICAgICAg
cmV0dXJuOworCisgICAgdmFyIGEgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYSIpOworICAg
IHZhciBpZnJhbWUgPSB3aW5kb3cucGFyZW50LmRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1l
KCJpZnJhbWUiKVswXTsKKworICAgIGlmIChpZnJhbWUpCisgICAgICAgIGV2ZW50U2VuZGVyLm1v
dXNlTW92ZVRvKGEub2Zmc2V0TGVmdCArIGlmcmFtZS5vZmZzZXRMZWZ0ICsgMiwgYS5vZmZzZXRU
b3AgKyBpZnJhbWUub2Zmc2V0VG9wICsgMik7CisgICAgZWxzZQorICAgICAgICBldmVudFNlbmRl
ci5tb3VzZU1vdmVUbyhhLm9mZnNldExlZnQgKyAyLCBhLm9mZnNldFRvcCArIDIpOworCisgICAg
ZXZlbnRTZW5kZXIubW91c2VEb3duKCk7CisgICAgZXZlbnRTZW5kZXIubW91c2VVcCgpOworfQor
Cis8L3NjcmlwdD4KKzxib2R5IG9ubG9hZD0ibG9hZGVkKCk7Ij4KKzxhIGlkPSJhIiBocmVmPSJu
b3RpZnktZG9uZS5odG1sIiB0YXJnZXQ9Il9ibGFuayI+Q2xpY2sgdG8gb3BlbiBsaW5rIGluIG5l
dyB3aW5kb3cuPC9hPgorPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbG9hZGVyL25h
dmlnYXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvcmVzb3VyY2VzL3VzZXIt
Z2VzdHVyZS13aW5kb3ctb3Blbi10by1ub3RpZnktZG9uZS1mcm9tLXN1YmZyYW1lLmh0bWwgYi9M
YXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwt
dXJscy9yZXNvdXJjZXMvdXNlci1nZXN0dXJlLXdpbmRvdy1vcGVuLXRvLW5vdGlmeS1kb25lLWZy
b20tc3ViZnJhbWUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41MGZj
NmVmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbG9hZGVyL25hdmlnYXRpb24tcG9s
aWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvcmVzb3VyY2VzL3VzZXItZ2VzdHVyZS13aW5k
b3ctb3Blbi10by1ub3RpZnktZG9uZS1mcm9tLXN1YmZyYW1lLmh0bWwKQEAgLTAsMCArMSBAQAor
PGlmcmFtZSBzcmM9InVzZXItZ2VzdHVyZS13aW5kb3ctb3Blbi10by1ub3RpZnktZG9uZS5odG1s
Ij48L2lmcmFtZT4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9sb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJs
cy9yZXNvdXJjZXMvdXNlci1nZXN0dXJlLXdpbmRvdy1vcGVuLXRvLW5vdGlmeS1kb25lLmh0bWwg
Yi9MYXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJu
YWwtdXJscy9yZXNvdXJjZXMvdXNlci1nZXN0dXJlLXdpbmRvdy1vcGVuLXRvLW5vdGlmeS1kb25l
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjk2MzhjNAotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2xvYWRlci9uYXZpZ2F0aW9uLXBvbGljeS9zaG91bGQt
b3Blbi1leHRlcm5hbC11cmxzL3Jlc291cmNlcy91c2VyLWdlc3R1cmUtd2luZG93LW9wZW4tdG8t
bm90aWZ5LWRvbmUuaHRtbApAQCAtMCwwICsxLDMzIEBACis8c2NyaXB0PgorCitpZiAod2luZG93
LnRlc3RSdW5uZXIpIHsKKyAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICB0ZXN0
UnVubmVyLnNldENhbk9wZW5XaW5kb3dzKCk7Cit9CisKK2Z1bmN0aW9uIGxvYWRlZCgpCit7Cisg
ICAgaWYgKCF3aW5kb3cuZXZlbnRTZW5kZXIpCisgICAgICAgIHJldHVybjsKKworICAgIHZhciBh
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImEiKTsKKyAgICB2YXIgaWZyYW1lID0gd2luZG93
LnBhcmVudC5kb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaWZyYW1lIilbMF07CisKKyAg
ICBpZiAoaWZyYW1lKQorICAgICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyhhLm9mZnNldExl
ZnQgKyBpZnJhbWUub2Zmc2V0TGVmdCArIDIsIGEub2Zmc2V0VG9wICsgaWZyYW1lLm9mZnNldFRv
cCArIDIpOworICAgIGVsc2UKKyAgICAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oYS5vZmZz
ZXRMZWZ0ICsgMiwgYS5vZmZzZXRUb3AgKyAyKTsKKworICAgIGV2ZW50U2VuZGVyLm1vdXNlRG93
bigpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAoKTsKK30KKworZnVuY3Rpb24gY2xpY2tlZCgp
Cit7CisgICAgd2luZG93Lm9wZW4oIm5vdGlmeS1kb25lLmh0bWwiKTsKK30KKworPC9zY3JpcHQ+
Cis8Ym9keSBvbmxvYWQ9ImxvYWRlZCgpOyI+Cis8YSBpZD0iYSIgb25jbGljaz0iY2xpY2tlZCgp
OyI+Q2xpY2sgdG8gZG8gYSB3aW5kb3cub3BlbjwvYT4KKzwvYm9keT4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2xvYWRlci9uYXZpZ2F0aW9uLXBvbGljeS9zaG91bGQtb3Blbi1leHRlcm5hbC11
cmxzL3Jlc291cmNlcy93aW5kb3ctb3Blbi10by1ub3RpZnktZG9uZS1mcm9tLXN1YmZyYW1lLmh0
bWwgYi9MYXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0
ZXJuYWwtdXJscy9yZXNvdXJjZXMvd2luZG93LW9wZW4tdG8tbm90aWZ5LWRvbmUtZnJvbS1zdWJm
cmFtZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNlZGQ1MTcKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hv
dWxkLW9wZW4tZXh0ZXJuYWwtdXJscy9yZXNvdXJjZXMvd2luZG93LW9wZW4tdG8tbm90aWZ5LWRv
bmUtZnJvbS1zdWJmcmFtZS5odG1sCkBAIC0wLDAgKzEgQEAKKzxpZnJhbWUgc3JjPSJ3aW5kb3ct
b3Blbi10by1ub3RpZnktZG9uZS5odG1sIj48L2lmcmFtZT4KXCBObyBuZXdsaW5lIGF0IGVuZCBv
ZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kv
c2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJscy9yZXNvdXJjZXMvd2luZG93LW9wZW4tdG8tbm90aWZ5
LWRvbmUuaHRtbCBiL0xheW91dFRlc3RzL2xvYWRlci9uYXZpZ2F0aW9uLXBvbGljeS9zaG91bGQt
b3Blbi1leHRlcm5hbC11cmxzL3Jlc291cmNlcy93aW5kb3ctb3Blbi10by1ub3RpZnktZG9uZS5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdkMmQwOTAKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9w
ZW4tZXh0ZXJuYWwtdXJscy9yZXNvdXJjZXMvd2luZG93LW9wZW4tdG8tbm90aWZ5LWRvbmUuaHRt
bApAQCAtMCwwICsxLDE1IEBACis8c2NyaXB0PgorCitpZiAod2luZG93LnRlc3RSdW5uZXIpIHsK
KyAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICB0ZXN0UnVubmVyLnNldENhbk9w
ZW5XaW5kb3dzKCk7Cit9CisKK2Z1bmN0aW9uIGxvYWRlZCgpCit7CisgICAgd2luZG93Lm9wZW4o
Im5vdGlmeS1kb25lLmh0bWwiKTsKK30KKworPC9zY3JpcHQ+Cis8Ym9keSBvbmxvYWQ9ImxvYWRl
ZCgpOyI+Cis8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdhdGlv
bi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJscy9zdWJmcmFtZS1jbGljay10YXJnZXQt
c2VsZi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kv
c2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJscy9zdWJmcmFtZS1jbGljay10YXJnZXQtc2VsZi1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzA1NTUzMwotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2xvYWRlci9uYXZpZ2F0aW9uLXBvbGljeS9zaG91
bGQtb3Blbi1leHRlcm5hbC11cmxzL3N1YmZyYW1lLWNsaWNrLXRhcmdldC1zZWxmLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDkgQEAKKyAtIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24g
Cis8TlNVUkxSZXF1ZXN0IFVSTCBhYm91dDpibGFuaywgbWFpbiBkb2N1bWVudCBVUkwgc3ViZnJh
bWUtY2xpY2stdGFyZ2V0LXNlbGYuaHRtbCwgaHR0cCBtZXRob2QgR0VUPiBpcyBtYWluIGZyYW1l
IC0gbm8gc2hvdWxkIG9wZW4gVVJMcyBleHRlcm5hbGx5IC0gbm8KKyAtIGRlY2lkZVBvbGljeUZv
ck5hdmlnYXRpb25BY3Rpb24gCis8TlNVUkxSZXF1ZXN0IFVSTCByZXNvdXJjZXMvaWZyYW1lLWNs
aWNrLW5vdGlmeS1kb25lLXRhcmdldC1zZWxmLmh0bWwsIG1haW4gZG9jdW1lbnQgVVJMIHN1YmZy
YW1lLWNsaWNrLXRhcmdldC1zZWxmLmh0bWwsIGh0dHAgbWV0aG9kIEdFVD4gaXMgbWFpbiBmcmFt
ZSAtIG5vIHNob3VsZCBvcGVuIFVSTHMgZXh0ZXJuYWxseSAtIG5vCisgLSBkZWNpZGVQb2xpY3lG
b3JOYXZpZ2F0aW9uQWN0aW9uIAorPE5TVVJMUmVxdWVzdCBVUkwgcmVzb3VyY2VzL25vdGlmeS1k
b25lLmh0bWwsIG1haW4gZG9jdW1lbnQgVVJMIHN1YmZyYW1lLWNsaWNrLXRhcmdldC1zZWxmLmh0
bWwsIGh0dHAgbWV0aG9kIEdFVD4gaXMgbWFpbiBmcmFtZSAtIG5vIHNob3VsZCBvcGVuIFVSTHMg
ZXh0ZXJuYWxseSAtIG5vCitUaGlzIHBhZ2UgaGFzIGEgc3ViZnJhbWUgd2l0aCBhIGxpbmsuCitU
aGVuIGEgbGluayBpcyBjbGlja2VkIGluIHRoYXQgc3ViZnJhbWUgdGhhdCBuYXZpZ2F0ZXMgaW5z
aWRlIHRoYXQgc3ViZnJhbWUsIGFuZCB0aGF0IG5hdmlnYXRpb24gc2hvdWxkIGhhdmUgdGhlICJz
aG91bGQgb3BlbiBleHRlcm5hbCB1cmxzIiBmbGFnIHNldCB0byBmYWxzZSBldmVuIHRob3VnaCBp
dCB3YXMgZnJvbSBhIHVzZXIgZ2VzdHVyZS4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbG9h
ZGVyL25hdmlnYXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvc3ViZnJhbWUt
Y2xpY2stdGFyZ2V0LXNlbGYuaHRtbCBiL0xheW91dFRlc3RzL2xvYWRlci9uYXZpZ2F0aW9uLXBv
bGljeS9zaG91bGQtb3Blbi1leHRlcm5hbC11cmxzL3N1YmZyYW1lLWNsaWNrLXRhcmdldC1zZWxm
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTRlZDdkZQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2xvYWRlci9uYXZpZ2F0aW9uLXBvbGljeS9zaG91bGQt
b3Blbi1leHRlcm5hbC11cmxzL3N1YmZyYW1lLWNsaWNrLXRhcmdldC1zZWxmLmh0bWwKQEAgLTAs
MCArMSwxOSBAQAorPHNjcmlwdD4KKworaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgdGVz
dFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgdGVzdFJ1bm5lci5kdW1wUG9saWN5RGVsZWdhdGVD
YWxsYmFja3MoKTsKKyAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKK30KKworZnVuY3Rp
b24gcnVuVGVzdCgpCit7CisgICAgd2luZG93LmZyYW1lc1swXS5sb2NhdGlvbiA9ICJyZXNvdXJj
ZXMvaWZyYW1lLWNsaWNrLW5vdGlmeS1kb25lLXRhcmdldC1zZWxmLmh0bWwiOworfQorCis8L3Nj
cmlwdD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpOyI+CitUaGlzIHBhZ2UgaGFzIGEgc3ViZnJh
bWUgd2l0aCBhIGxpbmsuPGJyPgorVGhlbiBhIGxpbmsgaXMgY2xpY2tlZCBpbiB0aGF0IHN1YmZy
YW1lIHRoYXQgbmF2aWdhdGVzIGluc2lkZSB0aGF0IHN1YmZyYW1lLCBhbmQgdGhhdCBuYXZpZ2F0
aW9uIHNob3VsZCBoYXZlIHRoZSAic2hvdWxkIG9wZW4gZXh0ZXJuYWwgdXJscyIgZmxhZyBzZXQg
dG8gZmFsc2UgZXZlbiB0aG91Z2ggaXQgd2FzIGZyb20gYSB1c2VyIGdlc3R1cmUuPGJyPgorPGlm
cmFtZT48L2lmcmFtZT4KKzwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2xvYWRlci9u
YXZpZ2F0aW9uLXBvbGljeS9zaG91bGQtb3Blbi1leHRlcm5hbC11cmxzL3N1YmZyYW1lLWNsaWNr
LXRhcmdldC10b3AtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvbG9hZGVyL25hdmlnYXRpb24t
cG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvc3ViZnJhbWUtY2xpY2stdGFyZ2V0LXRv
cC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWI1ZDNm
NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2xvYWRlci9uYXZpZ2F0aW9uLXBvbGlj
eS9zaG91bGQtb3Blbi1leHRlcm5hbC11cmxzL3N1YmZyYW1lLWNsaWNrLXRhcmdldC10b3AtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsNyBAQAorIC0gZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFj
dGlvbiAKKzxOU1VSTFJlcXVlc3QgVVJMIGFib3V0OmJsYW5rLCBtYWluIGRvY3VtZW50IFVSTCBz
dWJmcmFtZS1jbGljay10YXJnZXQtdG9wLmh0bWwsIGh0dHAgbWV0aG9kIEdFVD4gaXMgbWFpbiBm
cmFtZSAtIG5vIHNob3VsZCBvcGVuIFVSTHMgZXh0ZXJuYWxseSAtIG5vCisgLSBkZWNpZGVQb2xp
Y3lGb3JOYXZpZ2F0aW9uQWN0aW9uIAorPE5TVVJMUmVxdWVzdCBVUkwgcmVzb3VyY2VzL2lmcmFt
ZS1jbGljay1ub3RpZnktZG9uZS10YXJnZXQtdG9wLmh0bWwsIG1haW4gZG9jdW1lbnQgVVJMIHN1
YmZyYW1lLWNsaWNrLXRhcmdldC10b3AuaHRtbCwgaHR0cCBtZXRob2QgR0VUPiBpcyBtYWluIGZy
YW1lIC0gbm8gc2hvdWxkIG9wZW4gVVJMcyBleHRlcm5hbGx5IC0gbm8KKyAtIGRlY2lkZVBvbGlj
eUZvck5hdmlnYXRpb25BY3Rpb24gCis8TlNVUkxSZXF1ZXN0IFVSTCByZXNvdXJjZXMvbm90aWZ5
LWRvbmUuaHRtbCwgbWFpbiBkb2N1bWVudCBVUkwgcmVzb3VyY2VzL25vdGlmeS1kb25lLmh0bWws
IGh0dHAgbWV0aG9kIEdFVD4gaXMgbWFpbiBmcmFtZSAtIHllcyBzaG91bGQgb3BlbiBVUkxzIGV4
dGVybmFsbHkgLSB5ZXMKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbG9hZGVyL25hdmlnYXRp
b24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvc3ViZnJhbWUtY2xpY2stdGFyZ2V0
LXRvcC5odG1sIGIvTGF5b3V0VGVzdHMvbG9hZGVyL25hdmlnYXRpb24tcG9saWN5L3Nob3VsZC1v
cGVuLWV4dGVybmFsLXVybHMvc3ViZnJhbWUtY2xpY2stdGFyZ2V0LXRvcC5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNiMmE2YWEKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwt
dXJscy9zdWJmcmFtZS1jbGljay10YXJnZXQtdG9wLmh0bWwKQEAgLTAsMCArMSwxOSBAQAorPHNj
cmlwdD4KKworaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgdGVzdFJ1bm5lci5kdW1wQXNU
ZXh0KCk7CisgICAgdGVzdFJ1bm5lci5kdW1wUG9saWN5RGVsZWdhdGVDYWxsYmFja3MoKTsKKyAg
ICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKK30KKworZnVuY3Rpb24gcnVuVGVzdCgpCit7
CisgICAgd2luZG93LmZyYW1lc1swXS5sb2NhdGlvbiA9ICJyZXNvdXJjZXMvaWZyYW1lLWNsaWNr
LW5vdGlmeS1kb25lLXRhcmdldC10b3AuaHRtbCI7Cit9CisKKzwvc2NyaXB0PgorPGJvZHkgb25s
b2FkPSJydW5UZXN0KCk7Ij4KK1RoaXMgcGFnZSBoYXMgYSBzdWJmcmFtZSB3aXRoIGEgbGluay48
YnI+CitUaGVuIGEgbGluayBpcyBjbGlja2VkIGluIHRoYXQgc3ViZnJhbWUgdGhhdCBuYXZpZ2F0
ZXMgdGhlIG1haW4gZnJhbWUsIGFuZCB0aGF0IG5hdmlnYXRpb24gc2hvdWxkIGhhdmUgdGhlICJz
aG91bGQgb3BlbiBleHRlcm5hbCB1cmxzIiBmbGFnIHNldCB0byB0cnVlIGJlY2F1c2UgaXQgd2Fz
IGZyb20gYSB1c2VyIGdlc3R1cmUuPGJyPgorPGlmcmFtZT48L2lmcmFtZT4KKzwvYm9keT4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2xvYWRlci9uYXZpZ2F0aW9uLXBvbGljeS9zaG91bGQtb3Bl
bi1leHRlcm5hbC11cmxzL3VzZXItZ2VzdHVyZS10YXJnZXQtYmxhbmstd2l0aC1mbGFnLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2xvYWRlci9uYXZpZ2F0aW9uLXBvbGljeS9zaG91bGQtb3Bl
bi1leHRlcm5hbC11cmxzL3VzZXItZ2VzdHVyZS10YXJnZXQtYmxhbmstd2l0aC1mbGFnLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lZjAwNjliCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbG9hZGVyL25hdmlnYXRpb24tcG9saWN5L3Nob3Vs
ZC1vcGVuLWV4dGVybmFsLXVybHMvdXNlci1nZXN0dXJlLXRhcmdldC1ibGFuay13aXRoLWZsYWct
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorIC0gZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlv
bkFjdGlvbiAKKzxOU1VSTFJlcXVlc3QgVVJMIHJlc291cmNlcy91c2VyLWdlc3R1cmUtdGFyZ2V0
LWJsYW5rLXRvLW5vdGlmeS1kb25lLmh0bWwsIG1haW4gZG9jdW1lbnQgVVJMIHJlc291cmNlcy91
c2VyLWdlc3R1cmUtdGFyZ2V0LWJsYW5rLXRvLW5vdGlmeS1kb25lLmh0bWwsIGh0dHAgbWV0aG9k
IEdFVD4gaXMgbWFpbiBmcmFtZSAtIHllcyBzaG91bGQgb3BlbiBVUkxzIGV4dGVybmFsbHkgLSB5
ZXMKKyAtIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24gCis8TlNVUkxSZXF1ZXN0IFVS
TCBub3RpZnktZG9uZS5odG1sLCBtYWluIGRvY3VtZW50IFVSTCBub3RpZnktZG9uZS5odG1sLCBo
dHRwIG1ldGhvZCBHRVQ+IGlzIG1haW4gZnJhbWUgLSB5ZXMgc2hvdWxkIG9wZW4gVVJMcyBleHRl
cm5hbGx5IC0geWVzCitDbGljayB0byBvcGVuIGxpbmsgaW4gbmV3IHdpbmRvdy4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2xvYWRlci9uYXZpZ2F0aW9uLXBvbGljeS9zaG91bGQtb3Blbi1leHRl
cm5hbC11cmxzL3VzZXItZ2VzdHVyZS10YXJnZXQtYmxhbmstd2l0aC1mbGFnLWZyb20tc3ViZnJh
bWUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvbG9hZGVyL25hdmlnYXRpb24tcG9saWN5L3No
b3VsZC1vcGVuLWV4dGVybmFsLXVybHMvdXNlci1nZXN0dXJlLXRhcmdldC1ibGFuay13aXRoLWZs
YWctZnJvbS1zdWJmcmFtZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMC4uMjk5NDgzYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2xvYWRlci9u
YXZpZ2F0aW9uLXBvbGljeS9zaG91bGQtb3Blbi1leHRlcm5hbC11cmxzL3VzZXItZ2VzdHVyZS10
YXJnZXQtYmxhbmstd2l0aC1mbGFnLWZyb20tc3ViZnJhbWUtZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsNyBAQAorIC0gZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbiAKKzxOU1VSTFJlcXVl
c3QgVVJMIHJlc291cmNlcy91c2VyLWdlc3R1cmUtdGFyZ2V0LWJsYW5rLXRvLW5vdGlmeS1kb25l
LWZyb20tc3ViZnJhbWUuaHRtbCwgbWFpbiBkb2N1bWVudCBVUkwgcmVzb3VyY2VzL3VzZXItZ2Vz
dHVyZS10YXJnZXQtYmxhbmstdG8tbm90aWZ5LWRvbmUtZnJvbS1zdWJmcmFtZS5odG1sLCBodHRw
IG1ldGhvZCBHRVQ+IGlzIG1haW4gZnJhbWUgLSB5ZXMgc2hvdWxkIG9wZW4gVVJMcyBleHRlcm5h
bGx5IC0geWVzCisgLSBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uIAorPE5TVVJMUmVx
dWVzdCBVUkwgdXNlci1nZXN0dXJlLXRhcmdldC1ibGFuay10by1ub3RpZnktZG9uZS5odG1sLCBt
YWluIGRvY3VtZW50IFVSTCB1c2VyLWdlc3R1cmUtdGFyZ2V0LWJsYW5rLXRvLW5vdGlmeS1kb25l
LWZyb20tc3ViZnJhbWUuaHRtbCwgaHR0cCBtZXRob2QgR0VUPiBpcyBtYWluIGZyYW1lIC0gbm8g
c2hvdWxkIG9wZW4gVVJMcyBleHRlcm5hbGx5IC0gbm8KKyAtIGRlY2lkZVBvbGljeUZvck5hdmln
YXRpb25BY3Rpb24gCis8TlNVUkxSZXF1ZXN0IFVSTCBub3RpZnktZG9uZS5odG1sLCBtYWluIGRv
Y3VtZW50IFVSTCB1c2VyLWdlc3R1cmUtdGFyZ2V0LWJsYW5rLXRvLW5vdGlmeS1kb25lLWZyb20t
c3ViZnJhbWUuaHRtbCwgaHR0cCBtZXRob2QgR0VUPiBpcyBtYWluIGZyYW1lIC0geWVzIHNob3Vs
ZCBvcGVuIFVSTHMgZXh0ZXJuYWxseSAtIHllcworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9s
b2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJscy91c2VyLWdl
c3R1cmUtdGFyZ2V0LWJsYW5rLXdpdGgtZmxhZy1mcm9tLXN1YmZyYW1lLmh0bWwgYi9MYXlvdXRU
ZXN0cy9sb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJscy91
c2VyLWdlc3R1cmUtdGFyZ2V0LWJsYW5rLXdpdGgtZmxhZy1mcm9tLXN1YmZyYW1lLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWVmYjg5NgotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2xvYWRlci9uYXZpZ2F0aW9uLXBvbGljeS9zaG91bGQtb3Blbi1leHRl
cm5hbC11cmxzL3VzZXItZ2VzdHVyZS10YXJnZXQtYmxhbmstd2l0aC1mbGFnLWZyb20tc3ViZnJh
bWUuaHRtbApAQCAtMCwwICsxLDEwIEBACis8c2NyaXB0PgoraWYgKHdpbmRvdy50ZXN0UnVubmVy
KSB7CisgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgdGVzdFJ1bm5lci5kdW1wUG9s
aWN5RGVsZWdhdGVDYWxsYmFja3MoKTsKKyAgICB0ZXN0UnVubmVyLnF1ZXVlTG9hZCgicmVzb3Vy
Y2VzL3VzZXItZ2VzdHVyZS10YXJnZXQtYmxhbmstdG8tbm90aWZ5LWRvbmUtZnJvbS1zdWJmcmFt
ZS5odG1sIiwgIiIsIHRydWUpOworfQorPC9zY3JpcHQ+CitUaGlzIHBhZ2Ugb3BlbnMgYSAybmQg
cGFnZSB3aXRoIHRoZSAic2hvdWxkIG9wZW4gZXh0ZXJuYWwgVVJMcyIgZmxhZyBzZXQgdG8gdHJ1
ZS48YnI+CitUaGF0IHBhZ2UgaGFzIGEgc3ViZnJhbWUgd2l0aCBhIGxpbmsgdGhhdCAtIHdoZW4g
Y2xpY2tlZCAtIG9wZW5zIGEgbGluayB0byBhIDNyZCBwYWdlIGluIGEgbmV3IHdpbmRvdy48YnI+
CitUaGF0IDNyZCBwYWdlIHNob3VsZCBoYXZlIHRoZSBmbGFnIHNldCB0byB0cnVlIGJlY2F1c2Ug
aXQgd2FzIGZyb20gYSB1c2VyIGdlc3R1cmUuPGJyPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
bG9hZGVyL25hdmlnYXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvdXNlci1n
ZXN0dXJlLXRhcmdldC1ibGFuay13aXRoLWZsYWcuaHRtbCBiL0xheW91dFRlc3RzL2xvYWRlci9u
YXZpZ2F0aW9uLXBvbGljeS9zaG91bGQtb3Blbi1leHRlcm5hbC11cmxzL3VzZXItZ2VzdHVyZS10
YXJnZXQtYmxhbmstd2l0aC1mbGFnLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uMGM4N2Y0MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2xvYWRlci9uYXZp
Z2F0aW9uLXBvbGljeS9zaG91bGQtb3Blbi1leHRlcm5hbC11cmxzL3VzZXItZ2VzdHVyZS10YXJn
ZXQtYmxhbmstd2l0aC1mbGFnLmh0bWwKQEAgLTAsMCArMSwxMCBAQAorPHNjcmlwdD4KK2lmICh3
aW5kb3cudGVzdFJ1bm5lcikgeworICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAgIHRl
c3RSdW5uZXIuZHVtcFBvbGljeURlbGVnYXRlQ2FsbGJhY2tzKCk7CisgICAgdGVzdFJ1bm5lci5x
dWV1ZUxvYWQoInJlc291cmNlcy91c2VyLWdlc3R1cmUtdGFyZ2V0LWJsYW5rLXRvLW5vdGlmeS1k
b25lLmh0bWwiLCAiIiwgdHJ1ZSk7Cit9Cis8L3NjcmlwdD4KK1RoaXMgcGFnZSBvcGVucyBhIDJu
ZCBwYWdlIHdpdGggdGhlICJzaG91bGQgb3BlbiBleHRlcm5hbCBVUkxzIiBmbGFnIHNldCB0byB0
cnVlLjxicj4KK1RoYXQgcGFnZSBoYXMgYSBsaW5rIHRoYXQgLSB3aGVuIGNsaWNrZWQgLSBvcGVu
cyBhIGxpbmsgdG8gYSAzcmQgcGFnZSBpbiBhIG5ldyB3aW5kb3cuPGJyPgorVGhhdCAzcmQgcGFn
ZSBzaG91bGQgaGF2ZSB0aGUgZmxhZyBzZXQgdG8gdHJ1ZSBiZWNhdXNlIGl0IHdhcyBmcm9tIGEg
dXNlciBnZXN0dXJlLjxicj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2xvYWRlci9uYXZpZ2F0
aW9uLXBvbGljeS9zaG91bGQtb3Blbi1leHRlcm5hbC11cmxzL3VzZXItZ2VzdHVyZS10YXJnZXQt
Ymxhbmstd2l0aG91dC1mbGFnLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2xvYWRlci9uYXZp
Z2F0aW9uLXBvbGljeS9zaG91bGQtb3Blbi1leHRlcm5hbC11cmxzL3VzZXItZ2VzdHVyZS10YXJn
ZXQtYmxhbmstd2l0aG91dC1mbGFnLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwLi5jNzM3MTMyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbG9h
ZGVyL25hdmlnYXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvdXNlci1nZXN0
dXJlLXRhcmdldC1ibGFuay13aXRob3V0LWZsYWctZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBA
QAorIC0gZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbiAKKzxOU1VSTFJlcXVlc3QgVVJM
IHJlc291cmNlcy91c2VyLWdlc3R1cmUtdGFyZ2V0LWJsYW5rLXRvLW5vdGlmeS1kb25lLmh0bWws
IG1haW4gZG9jdW1lbnQgVVJMIHJlc291cmNlcy91c2VyLWdlc3R1cmUtdGFyZ2V0LWJsYW5rLXRv
LW5vdGlmeS1kb25lLmh0bWwsIGh0dHAgbWV0aG9kIEdFVD4gaXMgbWFpbiBmcmFtZSAtIHllcyBz
aG91bGQgb3BlbiBVUkxzIGV4dGVybmFsbHkgLSBubworIC0gZGVjaWRlUG9saWN5Rm9yTmF2aWdh
dGlvbkFjdGlvbiAKKzxOU1VSTFJlcXVlc3QgVVJMIG5vdGlmeS1kb25lLmh0bWwsIG1haW4gZG9j
dW1lbnQgVVJMIG5vdGlmeS1kb25lLmh0bWwsIGh0dHAgbWV0aG9kIEdFVD4gaXMgbWFpbiBmcmFt
ZSAtIHllcyBzaG91bGQgb3BlbiBVUkxzIGV4dGVybmFsbHkgLSB5ZXMKK0NsaWNrIHRvIG9wZW4g
bGluayBpbiBuZXcgd2luZG93LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbG9hZGVyL25hdmln
YXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvdXNlci1nZXN0dXJlLXRhcmdl
dC1ibGFuay13aXRob3V0LWZsYWctZnJvbS1zdWJmcmFtZS1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9sb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJscy91
c2VyLWdlc3R1cmUtdGFyZ2V0LWJsYW5rLXdpdGhvdXQtZmxhZy1mcm9tLXN1YmZyYW1lLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kZDUxZTNmCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbG9hZGVyL25hdmlnYXRpb24tcG9saWN5L3Nob3Vs
ZC1vcGVuLWV4dGVybmFsLXVybHMvdXNlci1nZXN0dXJlLXRhcmdldC1ibGFuay13aXRob3V0LWZs
YWctZnJvbS1zdWJmcmFtZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw3IEBACisgLSBkZWNpZGVQ
b2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uIAorPE5TVVJMUmVxdWVzdCBVUkwgcmVzb3VyY2VzL3Vz
ZXItZ2VzdHVyZS10YXJnZXQtYmxhbmstdG8tbm90aWZ5LWRvbmUtZnJvbS1zdWJmcmFtZS5odG1s
LCBtYWluIGRvY3VtZW50IFVSTCByZXNvdXJjZXMvdXNlci1nZXN0dXJlLXRhcmdldC1ibGFuay10
by1ub3RpZnktZG9uZS1mcm9tLXN1YmZyYW1lLmh0bWwsIGh0dHAgbWV0aG9kIEdFVD4gaXMgbWFp
biBmcmFtZSAtIHllcyBzaG91bGQgb3BlbiBVUkxzIGV4dGVybmFsbHkgLSBubworIC0gZGVjaWRl
UG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbiAKKzxOU1VSTFJlcXVlc3QgVVJMIHVzZXItZ2VzdHVy
ZS10YXJnZXQtYmxhbmstdG8tbm90aWZ5LWRvbmUuaHRtbCwgbWFpbiBkb2N1bWVudCBVUkwgdXNl
ci1nZXN0dXJlLXRhcmdldC1ibGFuay10by1ub3RpZnktZG9uZS1mcm9tLXN1YmZyYW1lLmh0bWws
IGh0dHAgbWV0aG9kIEdFVD4gaXMgbWFpbiBmcmFtZSAtIG5vIHNob3VsZCBvcGVuIFVSTHMgZXh0
ZXJuYWxseSAtIG5vCisgLSBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uIAorPE5TVVJM
UmVxdWVzdCBVUkwgbm90aWZ5LWRvbmUuaHRtbCwgbWFpbiBkb2N1bWVudCBVUkwgdXNlci1nZXN0
dXJlLXRhcmdldC1ibGFuay10by1ub3RpZnktZG9uZS1mcm9tLXN1YmZyYW1lLmh0bWwsIGh0dHAg
bWV0aG9kIEdFVD4gaXMgbWFpbiBmcmFtZSAtIHllcyBzaG91bGQgb3BlbiBVUkxzIGV4dGVybmFs
bHkgLSB5ZXMKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbG9hZGVyL25hdmlnYXRpb24tcG9s
aWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvdXNlci1nZXN0dXJlLXRhcmdldC1ibGFuay13
aXRob3V0LWZsYWctZnJvbS1zdWJmcmFtZS5odG1sIGIvTGF5b3V0VGVzdHMvbG9hZGVyL25hdmln
YXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvdXNlci1nZXN0dXJlLXRhcmdl
dC1ibGFuay13aXRob3V0LWZsYWctZnJvbS1zdWJmcmFtZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLmQ0ODY4MjcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9sb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJscy91c2Vy
LWdlc3R1cmUtdGFyZ2V0LWJsYW5rLXdpdGhvdXQtZmxhZy1mcm9tLXN1YmZyYW1lLmh0bWwKQEAg
LTAsMCArMSwxMCBAQAorPHNjcmlwdD4KK2lmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgIHRl
c3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAgIHRlc3RSdW5uZXIuZHVtcFBvbGljeURlbGVnYXRl
Q2FsbGJhY2tzKCk7CisgICAgdGVzdFJ1bm5lci5xdWV1ZUxvYWQoInJlc291cmNlcy91c2VyLWdl
c3R1cmUtdGFyZ2V0LWJsYW5rLXRvLW5vdGlmeS1kb25lLWZyb20tc3ViZnJhbWUuaHRtbCIpOwor
fQorPC9zY3JpcHQ+CitUaGlzIHBhZ2Ugb3BlbnMgYSAybmQgcGFnZSB3aXRoIHRoZSAic2hvdWxk
IG9wZW4gZXh0ZXJuYWwgVVJMcyIgZmxhZyBzZXQgdG8gZmFsc2UuPGJyPgorVGhhdCBwYWdlIGhh
cyBhIHN1YmZyYW1lIHdpdGggYSBsaW5rIHRoYXQgLSB3aGVuIGNsaWNrZWQgLSBvcGVucyBhIGxp
bmsgdG8gYSAzcmQgcGFnZSBpbiBhIG5ldyB3aW5kb3cuPGJyPgorVGhhdCAzcmQgcGFnZSBzaG91
bGQgaGF2ZSB0aGUgZmxhZyBzZXQgdG8gdHJ1ZSBiZWNhdXNlIGl0IHdhcyBmcm9tIGEgdXNlciBn
ZXN0dXJlLjxicj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2xvYWRlci9uYXZpZ2F0aW9uLXBv
bGljeS9zaG91bGQtb3Blbi1leHRlcm5hbC11cmxzL3VzZXItZ2VzdHVyZS10YXJnZXQtYmxhbmst
d2l0aG91dC1mbGFnLmh0bWwgYi9MYXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kv
c2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJscy91c2VyLWdlc3R1cmUtdGFyZ2V0LWJsYW5rLXdpdGhv
dXQtZmxhZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYwNGJlZTQK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kv
c2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJscy91c2VyLWdlc3R1cmUtdGFyZ2V0LWJsYW5rLXdpdGhv
dXQtZmxhZy5odG1sCkBAIC0wLDAgKzEsMTAgQEAKKzxzY3JpcHQ+CitpZiAod2luZG93LnRlc3RS
dW5uZXIpIHsKKyAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICB0ZXN0UnVubmVyLmR1
bXBQb2xpY3lEZWxlZ2F0ZUNhbGxiYWNrcygpOworICAgIHRlc3RSdW5uZXIucXVldWVMb2FkKCJy
ZXNvdXJjZXMvdXNlci1nZXN0dXJlLXRhcmdldC1ibGFuay10by1ub3RpZnktZG9uZS5odG1sIik7
Cit9Cis8L3NjcmlwdD4KK1RoaXMgcGFnZSBvcGVucyBhIDJuZCBwYWdlIHdpdGggdGhlICJzaG91
bGQgb3BlbiBleHRlcm5hbCBVUkxzIiBmbGFnIHNldCB0byBmYWxzZS48YnI+CitUaGF0IHBhZ2Ug
aGFzIGEgbGluayB0aGF0IC0gd2hlbiBjbGlja2VkIC0gb3BlbnMgYSBsaW5rIHRvIGEgM3JkIHBh
Z2UgaW4gYSBuZXcgd2luZG93Ljxicj4KK1RoYXQgM3JkIHBhZ2Ugc2hvdWxkIGhhdmUgdGhlIGZs
YWcgc2V0IHRvIHRydWUgYmVjYXVzZSBpdCB3YXMgZnJvbSBhIHVzZXIgZ2VzdHVyZS48YnI+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9w
ZW4tZXh0ZXJuYWwtdXJscy91c2VyLWdlc3R1cmUtd2luZG93LW9wZW4td2l0aC1mbGFnLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2xvYWRlci9uYXZpZ2F0aW9uLXBvbGljeS9zaG91bGQtb3Bl
bi1leHRlcm5hbC11cmxzL3VzZXItZ2VzdHVyZS13aW5kb3ctb3Blbi13aXRoLWZsYWctZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFjNTM5YjcKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxk
LW9wZW4tZXh0ZXJuYWwtdXJscy91c2VyLWdlc3R1cmUtd2luZG93LW9wZW4td2l0aC1mbGFnLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKKyAtIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25B
Y3Rpb24gCis8TlNVUkxSZXF1ZXN0IFVSTCByZXNvdXJjZXMvdXNlci1nZXN0dXJlLXdpbmRvdy1v
cGVuLXRvLW5vdGlmeS1kb25lLmh0bWwsIG1haW4gZG9jdW1lbnQgVVJMIHJlc291cmNlcy91c2Vy
LWdlc3R1cmUtd2luZG93LW9wZW4tdG8tbm90aWZ5LWRvbmUuaHRtbCwgaHR0cCBtZXRob2QgR0VU
PiBpcyBtYWluIGZyYW1lIC0geWVzIHNob3VsZCBvcGVuIFVSTHMgZXh0ZXJuYWxseSAtIHllcwor
IC0gZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbiAKKzxOU1VSTFJlcXVlc3QgVVJMIG5v
dGlmeS1kb25lLmh0bWwsIG1haW4gZG9jdW1lbnQgVVJMIG5vdGlmeS1kb25lLmh0bWwsIGh0dHAg
bWV0aG9kIEdFVD4gaXMgbWFpbiBmcmFtZSAtIHllcyBzaG91bGQgb3BlbiBVUkxzIGV4dGVybmFs
bHkgLSB5ZXMKK0NsaWNrIHRvIGRvIGEgd2luZG93Lm9wZW4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2xvYWRlci9uYXZpZ2F0aW9uLXBvbGljeS9zaG91bGQtb3Blbi1leHRlcm5hbC11cmxzL3Vz
ZXItZ2VzdHVyZS13aW5kb3ctb3Blbi13aXRoLWZsYWctZnJvbS1zdWJmcmFtZS1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0
ZXJuYWwtdXJscy91c2VyLWdlc3R1cmUtd2luZG93LW9wZW4td2l0aC1mbGFnLWZyb20tc3ViZnJh
bWUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhmNDU2
OWEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdhdGlvbi1wb2xp
Y3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJscy91c2VyLWdlc3R1cmUtd2luZG93LW9wZW4td2l0
aC1mbGFnLWZyb20tc3ViZnJhbWUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNyBAQAorIC0gZGVj
aWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbiAKKzxOU1VSTFJlcXVlc3QgVVJMIHJlc291cmNl
cy91c2VyLWdlc3R1cmUtd2luZG93LW9wZW4tdG8tbm90aWZ5LWRvbmUtZnJvbS1zdWJmcmFtZS5o
dG1sLCBtYWluIGRvY3VtZW50IFVSTCByZXNvdXJjZXMvdXNlci1nZXN0dXJlLXdpbmRvdy1vcGVu
LXRvLW5vdGlmeS1kb25lLWZyb20tc3ViZnJhbWUuaHRtbCwgaHR0cCBtZXRob2QgR0VUPiBpcyBt
YWluIGZyYW1lIC0geWVzIHNob3VsZCBvcGVuIFVSTHMgZXh0ZXJuYWxseSAtIHllcworIC0gZGVj
aWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbiAKKzxOU1VSTFJlcXVlc3QgVVJMIHVzZXItZ2Vz
dHVyZS13aW5kb3ctb3Blbi10by1ub3RpZnktZG9uZS5odG1sLCBtYWluIGRvY3VtZW50IFVSTCB1
c2VyLWdlc3R1cmUtd2luZG93LW9wZW4tdG8tbm90aWZ5LWRvbmUtZnJvbS1zdWJmcmFtZS5odG1s
LCBodHRwIG1ldGhvZCBHRVQ+IGlzIG1haW4gZnJhbWUgLSBubyBzaG91bGQgb3BlbiBVUkxzIGV4
dGVybmFsbHkgLSBubworIC0gZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbiAKKzxOU1VS
TFJlcXVlc3QgVVJMIG5vdGlmeS1kb25lLmh0bWwsIG1haW4gZG9jdW1lbnQgVVJMIG5vdGlmeS1k
b25lLmh0bWwsIGh0dHAgbWV0aG9kIEdFVD4gaXMgbWFpbiBmcmFtZSAtIHllcyBzaG91bGQgb3Bl
biBVUkxzIGV4dGVybmFsbHkgLSB5ZXMKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbG9hZGVy
L25hdmlnYXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvdXNlci1nZXN0dXJl
LXdpbmRvdy1vcGVuLXdpdGgtZmxhZy1mcm9tLXN1YmZyYW1lLmh0bWwgYi9MYXlvdXRUZXN0cy9s
b2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJscy91c2VyLWdl
c3R1cmUtd2luZG93LW9wZW4td2l0aC1mbGFnLWZyb20tc3ViZnJhbWUuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45NzgyNzMyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvbG9hZGVyL25hdmlnYXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVy
bHMvdXNlci1nZXN0dXJlLXdpbmRvdy1vcGVuLXdpdGgtZmxhZy1mcm9tLXN1YmZyYW1lLmh0bWwK
QEAgLTAsMCArMSwxMCBAQAorPHNjcmlwdD4KK2lmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAg
IHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAgIHRlc3RSdW5uZXIuZHVtcFBvbGljeURlbGVn
YXRlQ2FsbGJhY2tzKCk7CisgICAgdGVzdFJ1bm5lci5xdWV1ZUxvYWQoInJlc291cmNlcy91c2Vy
LWdlc3R1cmUtd2luZG93LW9wZW4tdG8tbm90aWZ5LWRvbmUtZnJvbS1zdWJmcmFtZS5odG1sIiwg
IiIsIHRydWUpOworfQorPC9zY3JpcHQ+CitUaGlzIHBhZ2Ugb3BlbnMgYSAybmQgcGFnZSB3aXRo
IHRoZSAic2hvdWxkIG9wZW4gZXh0ZXJuYWwgVVJMcyIgZmxhZyBzZXQgdG8gdHJ1ZS48YnI+CitU
aGF0IHBhZ2UgaGFzIGEgc3ViZnJhbWUgd2l0aCBhIGxpbmsgdGhhdCAtIHdoZW4gY2xpY2tlZCAt
IGNhbGxzIHdpbmRvdy5vcGVuIHRvIGEgM3JkIHBhZ2UuPGJyPgorVGhhdCAzcmQgcGFnZSBzaG91
bGQgaGF2ZSB0aGUgZmxhZyBzZXQgdG8gdHJ1ZSBiZWNhdXNlIGl0IHdhcyBmcm9tIGEgdXNlciBn
ZXN0dXJlLjxicj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2xvYWRlci9uYXZpZ2F0aW9uLXBv
bGljeS9zaG91bGQtb3Blbi1leHRlcm5hbC11cmxzL3VzZXItZ2VzdHVyZS13aW5kb3ctb3Blbi13
aXRoLWZsYWcuaHRtbCBiL0xheW91dFRlc3RzL2xvYWRlci9uYXZpZ2F0aW9uLXBvbGljeS9zaG91
bGQtb3Blbi1leHRlcm5hbC11cmxzL3VzZXItZ2VzdHVyZS13aW5kb3ctb3Blbi13aXRoLWZsYWcu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44YzQ0ZTdhCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbG9hZGVyL25hdmlnYXRpb24tcG9saWN5L3Nob3VsZC1v
cGVuLWV4dGVybmFsLXVybHMvdXNlci1nZXN0dXJlLXdpbmRvdy1vcGVuLXdpdGgtZmxhZy5odG1s
CkBAIC0wLDAgKzEsMTAgQEAKKzxzY3JpcHQ+CitpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAg
ICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICB0ZXN0UnVubmVyLmR1bXBQb2xpY3lEZWxl
Z2F0ZUNhbGxiYWNrcygpOworICAgIHRlc3RSdW5uZXIucXVldWVMb2FkKCJyZXNvdXJjZXMvdXNl
ci1nZXN0dXJlLXdpbmRvdy1vcGVuLXRvLW5vdGlmeS1kb25lLmh0bWwiLCAiIiwgdHJ1ZSk7Cit9
Cis8L3NjcmlwdD4KK1RoaXMgcGFnZSBvcGVucyBhIDJuZCBwYWdlIHdpdGggdGhlICJzaG91bGQg
b3BlbiBleHRlcm5hbCBVUkxzIiBmbGFnIHNldCB0byB0cnVlLjxicj4KK1RoYXQgcGFnZSBoYXMg
YSBsaW5rIHRoYXQgLSB3aGVuIGNsaWNrZWQgLSBkb2VzIGEgd2luZG93Lm9wZW4gdG8gb3BlbiBh
IDNyZCBwYWdlLjxicj4KK1RoYXQgM3JkIHBhZ2Ugc2hvdWxkIGhhdmUgdGhlIGZsYWcgc2V0IHRv
IHRydWUgYmVjYXVzZSBpdCB3YXMgZnJvbSBhIHVzZXIgZ2VzdHVyZS48YnI+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJu
YWwtdXJscy91c2VyLWdlc3R1cmUtd2luZG93LW9wZW4td2l0aG91dC1mbGFnLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2xvYWRlci9uYXZpZ2F0aW9uLXBvbGljeS9zaG91bGQtb3Blbi1leHRl
cm5hbC11cmxzL3VzZXItZ2VzdHVyZS13aW5kb3ctb3Blbi13aXRob3V0LWZsYWctZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc3NDY2ZmMKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9w
ZW4tZXh0ZXJuYWwtdXJscy91c2VyLWdlc3R1cmUtd2luZG93LW9wZW4td2l0aG91dC1mbGFnLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKKyAtIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25B
Y3Rpb24gCis8TlNVUkxSZXF1ZXN0IFVSTCByZXNvdXJjZXMvdXNlci1nZXN0dXJlLXdpbmRvdy1v
cGVuLXRvLW5vdGlmeS1kb25lLmh0bWwsIG1haW4gZG9jdW1lbnQgVVJMIHJlc291cmNlcy91c2Vy
LWdlc3R1cmUtd2luZG93LW9wZW4tdG8tbm90aWZ5LWRvbmUuaHRtbCwgaHR0cCBtZXRob2QgR0VU
PiBpcyBtYWluIGZyYW1lIC0geWVzIHNob3VsZCBvcGVuIFVSTHMgZXh0ZXJuYWxseSAtIG5vCisg
LSBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uIAorPE5TVVJMUmVxdWVzdCBVUkwgbm90
aWZ5LWRvbmUuaHRtbCwgbWFpbiBkb2N1bWVudCBVUkwgbm90aWZ5LWRvbmUuaHRtbCwgaHR0cCBt
ZXRob2QgR0VUPiBpcyBtYWluIGZyYW1lIC0geWVzIHNob3VsZCBvcGVuIFVSTHMgZXh0ZXJuYWxs
eSAtIHllcworQ2xpY2sgdG8gZG8gYSB3aW5kb3cub3BlbgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvbG9hZGVyL25hdmlnYXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvdXNl
ci1nZXN0dXJlLXdpbmRvdy1vcGVuLXdpdGhvdXQtZmxhZy1mcm9tLXN1YmZyYW1lLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2xvYWRlci9uYXZpZ2F0aW9uLXBvbGljeS9zaG91bGQtb3Blbi1l
eHRlcm5hbC11cmxzL3VzZXItZ2VzdHVyZS13aW5kb3ctb3Blbi13aXRob3V0LWZsYWctZnJvbS1z
dWJmcmFtZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
Y2NmZTVkYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2xvYWRlci9uYXZpZ2F0aW9u
LXBvbGljeS9zaG91bGQtb3Blbi1leHRlcm5hbC11cmxzL3VzZXItZ2VzdHVyZS13aW5kb3ctb3Bl
bi13aXRob3V0LWZsYWctZnJvbS1zdWJmcmFtZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw3IEBA
CisgLSBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uIAorPE5TVVJMUmVxdWVzdCBVUkwg
cmVzb3VyY2VzL3VzZXItZ2VzdHVyZS13aW5kb3ctb3Blbi10by1ub3RpZnktZG9uZS1mcm9tLXN1
YmZyYW1lLmh0bWwsIG1haW4gZG9jdW1lbnQgVVJMIHJlc291cmNlcy91c2VyLWdlc3R1cmUtd2lu
ZG93LW9wZW4tdG8tbm90aWZ5LWRvbmUtZnJvbS1zdWJmcmFtZS5odG1sLCBodHRwIG1ldGhvZCBH
RVQ+IGlzIG1haW4gZnJhbWUgLSB5ZXMgc2hvdWxkIG9wZW4gVVJMcyBleHRlcm5hbGx5IC0gbm8K
KyAtIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24gCis8TlNVUkxSZXF1ZXN0IFVSTCB1
c2VyLWdlc3R1cmUtd2luZG93LW9wZW4tdG8tbm90aWZ5LWRvbmUuaHRtbCwgbWFpbiBkb2N1bWVu
dCBVUkwgdXNlci1nZXN0dXJlLXdpbmRvdy1vcGVuLXRvLW5vdGlmeS1kb25lLWZyb20tc3ViZnJh
bWUuaHRtbCwgaHR0cCBtZXRob2QgR0VUPiBpcyBtYWluIGZyYW1lIC0gbm8gc2hvdWxkIG9wZW4g
VVJMcyBleHRlcm5hbGx5IC0gbm8KKyAtIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24g
Cis8TlNVUkxSZXF1ZXN0IFVSTCBub3RpZnktZG9uZS5odG1sLCBtYWluIGRvY3VtZW50IFVSTCBu
b3RpZnktZG9uZS5odG1sLCBodHRwIG1ldGhvZCBHRVQ+IGlzIG1haW4gZnJhbWUgLSB5ZXMgc2hv
dWxkIG9wZW4gVVJMcyBleHRlcm5hbGx5IC0geWVzCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2xvYWRlci9uYXZpZ2F0aW9uLXBvbGljeS9zaG91bGQtb3Blbi1leHRlcm5hbC11cmxzL3VzZXIt
Z2VzdHVyZS13aW5kb3ctb3Blbi13aXRob3V0LWZsYWctZnJvbS1zdWJmcmFtZS5odG1sIGIvTGF5
b3V0VGVzdHMvbG9hZGVyL25hdmlnYXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVy
bHMvdXNlci1nZXN0dXJlLXdpbmRvdy1vcGVuLXdpdGhvdXQtZmxhZy1mcm9tLXN1YmZyYW1lLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDk0YjRmYQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2xvYWRlci9uYXZpZ2F0aW9uLXBvbGljeS9zaG91bGQtb3Bl
bi1leHRlcm5hbC11cmxzL3VzZXItZ2VzdHVyZS13aW5kb3ctb3Blbi13aXRob3V0LWZsYWctZnJv
bS1zdWJmcmFtZS5odG1sCkBAIC0wLDAgKzEsMTAgQEAKKzxzY3JpcHQ+CitpZiAod2luZG93LnRl
c3RSdW5uZXIpIHsKKyAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICB0ZXN0UnVubmVy
LmR1bXBQb2xpY3lEZWxlZ2F0ZUNhbGxiYWNrcygpOworICAgIHRlc3RSdW5uZXIucXVldWVMb2Fk
KCJyZXNvdXJjZXMvdXNlci1nZXN0dXJlLXdpbmRvdy1vcGVuLXRvLW5vdGlmeS1kb25lLWZyb20t
c3ViZnJhbWUuaHRtbCIpOworfQorPC9zY3JpcHQ+CitUaGlzIHBhZ2Ugb3BlbnMgYSAybmQgcGFn
ZSB3aXRoIHRoZSAic2hvdWxkIG9wZW4gZXh0ZXJuYWwgVVJMcyIgZmxhZyBzZXQgdG8gZmFsc2Uu
PGJyPgorVGhhdCBwYWdlIGhhcyBhIHN1YmZyYW1lIHdpdGggYSBsaW5rIHRoYXQgLSB3aGVuIGNs
aWNrZWQgLSBjYWxscyB3aW5kb3cub3BlbiB0byBhIDNyZCBwYWdlLjxicj4KK1RoYXQgM3JkIHBh
Z2Ugc2hvdWxkIGhhdmUgdGhlIGZsYWcgc2V0IHRvIHRydWUgYmVjYXVzZSBpdCB3YXMgZnJvbSBh
IHVzZXIgZ2VzdHVyZS48YnI+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdh
dGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJscy91c2VyLWdlc3R1cmUtd2luZG93
LW9wZW4td2l0aG91dC1mbGFnLmh0bWwgYi9MYXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdhdGlvbi1w
b2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJscy91c2VyLWdlc3R1cmUtd2luZG93LW9wZW4t
d2l0aG91dC1mbGFnLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTg3
MDg4OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2xvYWRlci9uYXZpZ2F0aW9uLXBv
bGljeS9zaG91bGQtb3Blbi1leHRlcm5hbC11cmxzL3VzZXItZ2VzdHVyZS13aW5kb3ctb3Blbi13
aXRob3V0LWZsYWcuaHRtbApAQCAtMCwwICsxLDEwIEBACis8c2NyaXB0PgoraWYgKHdpbmRvdy50
ZXN0UnVubmVyKSB7CisgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgdGVzdFJ1bm5l
ci5kdW1wUG9saWN5RGVsZWdhdGVDYWxsYmFja3MoKTsKKyAgICB0ZXN0UnVubmVyLnF1ZXVlTG9h
ZCgicmVzb3VyY2VzL3VzZXItZ2VzdHVyZS13aW5kb3ctb3Blbi10by1ub3RpZnktZG9uZS5odG1s
Iik7Cit9Cis8L3NjcmlwdD4KK1RoaXMgcGFnZSBvcGVucyBhIDJuZCBwYWdlIHdpdGggdGhlICJz
aG91bGQgb3BlbiBleHRlcm5hbCBVUkxzIiBmbGFnIHNldCB0byBmYWxzZS48YnI+CitUaGF0IHBh
Z2UgaGFzIGEgbGluayB0aGF0IC0gd2hlbiBjbGlja2VkIC0gZG9lcyBhIHdpbmRvdy5vcGVuIHRv
IG9wZW4gYSAzcmQgcGFnZS48YnI+CitUaGF0IDNyZCBwYWdlIHNob3VsZCBoYXZlIHRoZSBmbGFn
IHNldCB0byB0cnVlIGJlY2F1c2UgaXQgd2FzIGZyb20gYSB1c2VyIGdlc3R1cmUuPGJyPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvbG9hZGVyL25hdmlnYXRpb24tcG9saWN5L3Nob3VsZC1vcGVu
LWV4dGVybmFsLXVybHMvd2luZG93LW9wZW4td2l0aC1mbGFnLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2xvYWRlci9uYXZpZ2F0aW9uLXBvbGljeS9zaG91bGQtb3Blbi1leHRlcm5hbC11cmxz
L3dpbmRvdy1vcGVuLXdpdGgtZmxhZy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uMGRmOTAyMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2xv
YWRlci9uYXZpZ2F0aW9uLXBvbGljeS9zaG91bGQtb3Blbi1leHRlcm5hbC11cmxzL3dpbmRvdy1v
cGVuLXdpdGgtZmxhZy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1IEBACisgLSBkZWNpZGVQb2xp
Y3lGb3JOYXZpZ2F0aW9uQWN0aW9uIAorPE5TVVJMUmVxdWVzdCBVUkwgcmVzb3VyY2VzL3dpbmRv
dy1vcGVuLXRvLW5vdGlmeS1kb25lLmh0bWwsIG1haW4gZG9jdW1lbnQgVVJMIHJlc291cmNlcy93
aW5kb3ctb3Blbi10by1ub3RpZnktZG9uZS5odG1sLCBodHRwIG1ldGhvZCBHRVQ+IGlzIG1haW4g
ZnJhbWUgLSB5ZXMgc2hvdWxkIG9wZW4gVVJMcyBleHRlcm5hbGx5IC0geWVzCisgLSBkZWNpZGVQ
b2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uIAorPE5TVVJMUmVxdWVzdCBVUkwgbm90aWZ5LWRvbmUu
aHRtbCwgbWFpbiBkb2N1bWVudCBVUkwgbm90aWZ5LWRvbmUuaHRtbCwgaHR0cCBtZXRob2QgR0VU
PiBpcyBtYWluIGZyYW1lIC0geWVzIHNob3VsZCBvcGVuIFVSTHMgZXh0ZXJuYWxseSAtIHllcwor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxk
LW9wZW4tZXh0ZXJuYWwtdXJscy93aW5kb3ctb3Blbi13aXRoLWZsYWctZnJvbS1zdWJmcmFtZS1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxk
LW9wZW4tZXh0ZXJuYWwtdXJscy93aW5kb3ctb3Blbi13aXRoLWZsYWctZnJvbS1zdWJmcmFtZS1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmNiZWY2NAot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2xvYWRlci9uYXZpZ2F0aW9uLXBvbGljeS9z
aG91bGQtb3Blbi1leHRlcm5hbC11cmxzL3dpbmRvdy1vcGVuLXdpdGgtZmxhZy1mcm9tLXN1YmZy
YW1lLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDcgQEAKKyAtIGRlY2lkZVBvbGljeUZvck5hdmln
YXRpb25BY3Rpb24gCis8TlNVUkxSZXF1ZXN0IFVSTCByZXNvdXJjZXMvd2luZG93LW9wZW4tdG8t
bm90aWZ5LWRvbmUtZnJvbS1zdWJmcmFtZS5odG1sLCBtYWluIGRvY3VtZW50IFVSTCByZXNvdXJj
ZXMvd2luZG93LW9wZW4tdG8tbm90aWZ5LWRvbmUtZnJvbS1zdWJmcmFtZS5odG1sLCBodHRwIG1l
dGhvZCBHRVQ+IGlzIG1haW4gZnJhbWUgLSB5ZXMgc2hvdWxkIG9wZW4gVVJMcyBleHRlcm5hbGx5
IC0geWVzCisgLSBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uIAorPE5TVVJMUmVxdWVz
dCBVUkwgd2luZG93LW9wZW4tdG8tbm90aWZ5LWRvbmUuaHRtbCwgbWFpbiBkb2N1bWVudCBVUkwg
d2luZG93LW9wZW4tdG8tbm90aWZ5LWRvbmUtZnJvbS1zdWJmcmFtZS5odG1sLCBodHRwIG1ldGhv
ZCBHRVQ+IGlzIG1haW4gZnJhbWUgLSBubyBzaG91bGQgb3BlbiBVUkxzIGV4dGVybmFsbHkgLSBu
bworIC0gZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbiAKKzxOU1VSTFJlcXVlc3QgVVJM
IG5vdGlmeS1kb25lLmh0bWwsIG1haW4gZG9jdW1lbnQgVVJMIG5vdGlmeS1kb25lLmh0bWwsIGh0
dHAgbWV0aG9kIEdFVD4gaXMgbWFpbiBmcmFtZSAtIHllcyBzaG91bGQgb3BlbiBVUkxzIGV4dGVy
bmFsbHkgLSBubworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdhdGlvbi1w
b2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJscy93aW5kb3ctb3Blbi13aXRoLWZsYWctZnJv
bS1zdWJmcmFtZS5odG1sIGIvTGF5b3V0VGVzdHMvbG9hZGVyL25hdmlnYXRpb24tcG9saWN5L3No
b3VsZC1vcGVuLWV4dGVybmFsLXVybHMvd2luZG93LW9wZW4td2l0aC1mbGFnLWZyb20tc3ViZnJh
bWUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44MWE1N2Y3Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbG9hZGVyL25hdmlnYXRpb24tcG9saWN5L3Nob3Vs
ZC1vcGVuLWV4dGVybmFsLXVybHMvd2luZG93LW9wZW4td2l0aC1mbGFnLWZyb20tc3ViZnJhbWUu
aHRtbApAQCAtMCwwICsxLDEwIEBACis8c2NyaXB0PgoraWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7
CisgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgdGVzdFJ1bm5lci5kdW1wUG9saWN5
RGVsZWdhdGVDYWxsYmFja3MoKTsKKyAgICB0ZXN0UnVubmVyLnF1ZXVlTG9hZCgicmVzb3VyY2Vz
L3dpbmRvdy1vcGVuLXRvLW5vdGlmeS1kb25lLWZyb20tc3ViZnJhbWUuaHRtbCIsICIiLCB0cnVl
KTsKK30KKzwvc2NyaXB0PgorVGhpcyBwYWdlIG9wZW5zIGEgMm5kIHBhZ2Ugd2l0aCB0aGUgInNo
b3VsZCBvcGVuIGV4dGVybmFsIFVSTHMiIGZsYWcgc2V0IHRvIHRydWUuPGJyPgorVGhhdCBwYWdl
IGhhcyBhIHN1YmZyYW1lIHdoaWNoIGNhbGxzIHdpbmRvdy5vcGVuIHRvIGEgM3JkIHBhZ2UuPGJy
PgorVGhhdCAzcmQgcGFnZSBzaG91bGQgaGF2ZSB0aGUgZmxhZyBzZXQgdG8gZmFsc2UgYmVjYXVz
ZSB0aGUgc3ViZnJhbWUgaW5pdGlhdGVkIHRoZSBsb2FkLjxicj4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2xvYWRlci9uYXZpZ2F0aW9uLXBvbGljeS9zaG91bGQtb3Blbi1leHRlcm5hbC11cmxz
L3dpbmRvdy1vcGVuLXdpdGgtZmxhZy5odG1sIGIvTGF5b3V0VGVzdHMvbG9hZGVyL25hdmlnYXRp
b24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvd2luZG93LW9wZW4td2l0aC1mbGFn
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2UzZDk0OQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2xvYWRlci9uYXZpZ2F0aW9uLXBvbGljeS9zaG91bGQt
b3Blbi1leHRlcm5hbC11cmxzL3dpbmRvdy1vcGVuLXdpdGgtZmxhZy5odG1sCkBAIC0wLDAgKzEs
MTAgQEAKKzxzY3JpcHQ+CitpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICB0ZXN0UnVubmVy
LmR1bXBBc1RleHQoKTsKKyAgICB0ZXN0UnVubmVyLmR1bXBQb2xpY3lEZWxlZ2F0ZUNhbGxiYWNr
cygpOworICAgIHRlc3RSdW5uZXIucXVldWVMb2FkKCJyZXNvdXJjZXMvd2luZG93LW9wZW4tdG8t
bm90aWZ5LWRvbmUuaHRtbCIsICIiLCB0cnVlKTsKK30KKzwvc2NyaXB0PgorVGhpcyBwYWdlIG9w
ZW5zIGEgMm5kIHBhZ2Ugd2l0aCB0aGUgInNob3VsZCBvcGVuIGV4dGVybmFsIFVSTHMiIGZsYWcg
c2V0IHRvIHRydWUuPGJyPgorVGhhdCBwYWdlIGRvZXMgYSB3aW5kb3cub3BlbiB0byBvcGVuIGEg
M3JkIHBhZ2UuPGJyPgorVGhhdCAzcmQgcGFnZSBzaG91bGQgaGF2ZSB0aGUgZmxhZyBzZXQgdG8g
dHJ1ZSBiZWNhdXNlIGl0IHNob3VsZCBwcm9wYWdhdGUgZnJvbSBtYWluIGZyYW1lIHRvIG1haW4g
ZnJhbWUuPGJyPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbG9hZGVyL25hdmlnYXRpb24tcG9s
aWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvd2luZG93LW9wZW4td2l0aG91dC1mbGFnLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2xvYWRlci9uYXZpZ2F0aW9uLXBvbGljeS9zaG91bGQt
b3Blbi1leHRlcm5hbC11cmxzL3dpbmRvdy1vcGVuLXdpdGhvdXQtZmxhZy1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDY4Yzg4YQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2xvYWRlci9uYXZpZ2F0aW9uLXBvbGljeS9zaG91bGQtb3Blbi1l
eHRlcm5hbC11cmxzL3dpbmRvdy1vcGVuLXdpdGhvdXQtZmxhZy1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSw1IEBACisgLSBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uIAorPE5TVVJMUmVx
dWVzdCBVUkwgcmVzb3VyY2VzL3dpbmRvdy1vcGVuLXRvLW5vdGlmeS1kb25lLmh0bWwsIG1haW4g
ZG9jdW1lbnQgVVJMIHJlc291cmNlcy93aW5kb3ctb3Blbi10by1ub3RpZnktZG9uZS5odG1sLCBo
dHRwIG1ldGhvZCBHRVQ+IGlzIG1haW4gZnJhbWUgLSB5ZXMgc2hvdWxkIG9wZW4gVVJMcyBleHRl
cm5hbGx5IC0gbm8KKyAtIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24gCis8TlNVUkxS
ZXF1ZXN0IFVSTCBub3RpZnktZG9uZS5odG1sLCBtYWluIGRvY3VtZW50IFVSTCBub3RpZnktZG9u
ZS5odG1sLCBodHRwIG1ldGhvZCBHRVQ+IGlzIG1haW4gZnJhbWUgLSB5ZXMgc2hvdWxkIG9wZW4g
VVJMcyBleHRlcm5hbGx5IC0gbm8KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbG9hZGVyL25h
dmlnYXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvd2luZG93LW9wZW4td2l0
aG91dC1mbGFnLWZyb20tc3ViZnJhbWUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvbG9hZGVy
L25hdmlnYXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvd2luZG93LW9wZW4t
d2l0aG91dC1mbGFnLWZyb20tc3ViZnJhbWUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLjljODQ0MmUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9sb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJscy93aW5k
b3ctb3Blbi13aXRob3V0LWZsYWctZnJvbS1zdWJmcmFtZS1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSw3IEBACisgLSBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uIAorPE5TVVJMUmVxdWVz
dCBVUkwgcmVzb3VyY2VzL3dpbmRvdy1vcGVuLXRvLW5vdGlmeS1kb25lLWZyb20tc3ViZnJhbWUu
aHRtbCwgbWFpbiBkb2N1bWVudCBVUkwgcmVzb3VyY2VzL3dpbmRvdy1vcGVuLXRvLW5vdGlmeS1k
b25lLWZyb20tc3ViZnJhbWUuaHRtbCwgaHR0cCBtZXRob2QgR0VUPiBpcyBtYWluIGZyYW1lIC0g
eWVzIHNob3VsZCBvcGVuIFVSTHMgZXh0ZXJuYWxseSAtIG5vCisgLSBkZWNpZGVQb2xpY3lGb3JO
YXZpZ2F0aW9uQWN0aW9uIAorPE5TVVJMUmVxdWVzdCBVUkwgd2luZG93LW9wZW4tdG8tbm90aWZ5
LWRvbmUuaHRtbCwgbWFpbiBkb2N1bWVudCBVUkwgd2luZG93LW9wZW4tdG8tbm90aWZ5LWRvbmUt
ZnJvbS1zdWJmcmFtZS5odG1sLCBodHRwIG1ldGhvZCBHRVQ+IGlzIG1haW4gZnJhbWUgLSBubyBz
aG91bGQgb3BlbiBVUkxzIGV4dGVybmFsbHkgLSBubworIC0gZGVjaWRlUG9saWN5Rm9yTmF2aWdh
dGlvbkFjdGlvbiAKKzxOU1VSTFJlcXVlc3QgVVJMIG5vdGlmeS1kb25lLmh0bWwsIG1haW4gZG9j
dW1lbnQgVVJMIG5vdGlmeS1kb25lLmh0bWwsIGh0dHAgbWV0aG9kIEdFVD4gaXMgbWFpbiBmcmFt
ZSAtIHllcyBzaG91bGQgb3BlbiBVUkxzIGV4dGVybmFsbHkgLSBubworCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwt
dXJscy93aW5kb3ctb3Blbi13aXRob3V0LWZsYWctZnJvbS1zdWJmcmFtZS5odG1sIGIvTGF5b3V0
VGVzdHMvbG9hZGVyL25hdmlnYXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMv
d2luZG93LW9wZW4td2l0aG91dC1mbGFnLWZyb20tc3ViZnJhbWUuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi45N2U1M2I1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvbG9hZGVyL25hdmlnYXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMv
d2luZG93LW9wZW4td2l0aG91dC1mbGFnLWZyb20tc3ViZnJhbWUuaHRtbApAQCAtMCwwICsxLDEw
IEBACis8c2NyaXB0PgoraWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgdGVzdFJ1bm5lci5k
dW1wQXNUZXh0KCk7CisgICAgdGVzdFJ1bm5lci5kdW1wUG9saWN5RGVsZWdhdGVDYWxsYmFja3Mo
KTsKKyAgICB0ZXN0UnVubmVyLnF1ZXVlTG9hZCgicmVzb3VyY2VzL3dpbmRvdy1vcGVuLXRvLW5v
dGlmeS1kb25lLWZyb20tc3ViZnJhbWUuaHRtbCIpOworfQorPC9zY3JpcHQ+CitUaGlzIHBhZ2Ug
b3BlbnMgYSAybmQgcGFnZSB3aXRoIHRoZSAic2hvdWxkIG9wZW4gZXh0ZXJuYWwgVVJMcyIgZmxh
ZyBzZXQgdG8gZmFsc2UuPGJyPgorVGhhdCBwYWdlIGhhcyBhIHN1YmZyYW1lIHdoaWNoIGNhbGxz
IHdpbmRvdy5vcGVuIHRvIGEgM3JkIHBhZ2UuPGJyPgorVGhhdCAzcmQgcGFnZSBzaG91bGQgaGF2
ZSB0aGUgZmxhZyBzZXQgdG8gZmFsc2UgYmVjYXVzZSB0aGUgc3ViZnJhbWUgaW5pdGlhdGVkIHRo
ZSBsb2FkLCAqYW5kKiBiZWNhdXNlIHRoZSBtYWluIGZyYW1lIGRpZCBub3QgaGF2ZSB0aGUgZmxh
ZyBzZXQuPGJyPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbG9hZGVyL25hdmlnYXRpb24tcG9s
aWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvd2luZG93LW9wZW4td2l0aG91dC1mbGFnLmh0
bWwgYi9MYXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0
ZXJuYWwtdXJscy93aW5kb3ctb3Blbi13aXRob3V0LWZsYWcuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi44MDAxN2QwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvbG9hZGVyL25hdmlnYXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvd2lu
ZG93LW9wZW4td2l0aG91dC1mbGFnLmh0bWwKQEAgLTAsMCArMSwxMCBAQAorPHNjcmlwdD4KK2lm
ICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAg
IHRlc3RSdW5uZXIuZHVtcFBvbGljeURlbGVnYXRlQ2FsbGJhY2tzKCk7CisgICAgdGVzdFJ1bm5l
ci5xdWV1ZUxvYWQoInJlc291cmNlcy93aW5kb3ctb3Blbi10by1ub3RpZnktZG9uZS5odG1sIik7
Cit9Cis8L3NjcmlwdD4KK1RoaXMgcGFnZSBvcGVucyBhIDJuZCBwYWdlIHdpdGggdGhlICJzaG91
bGQgb3BlbiBleHRlcm5hbCBVUkxzIiBmbGFnIHNldCB0byBmYWxzZS48YnI+CitUaGF0IHBhZ2Ug
ZG9lcyBhIHdpbmRvdy5vcGVuIHRvIG9wZW4gYSAzcmQgcGFnZS48YnI+CitUaGF0IDNyZCBwYWdl
IHNob3VsZCBhbHNvIGhhdmUgdGhlIGZsYWcgc2V0IHRvIGZhbHNlLjxicj4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRl
eCBkZGY0OWI3Li5hMTM4MDRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQwIEBACisyMDE1LTA2
LTAxICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KKworICAgICAgICBXZWJLaXQg
cG9saWN5IGRlbGVnYXRlIHNob3VsZCBzdWdnZXN0IGlmIGEgbmF2aWdhdGlvbiBzaG91bGQgYmUg
YWxsb3dlZCB0byBvcGVuIFVSTHMgZXh0ZXJuYWxseS4KKyAgICAgICAgcmRhcjovL3Byb2JsZW0v
MjEwMjUzMDEgYW5kIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDUy
ODAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0
czogbG9hZGVyL25hdmlnYXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvbWFp
bi1mcmFtZS1jbGljay5odG1sCisgICAgICAgICAgICAgICBsb2FkZXIvbmF2aWdhdGlvbi1wb2xp
Y3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJscy9tYWluLWZyYW1lLW5hdmlnYXRlZC1wcm9ncmFt
YXRpY2FsbHktYnktc3ViZnJhbWUuaHRtbAorICAgICAgICAgICAgICAgbG9hZGVyL25hdmlnYXRp
b24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvbWFpbi1mcmFtZS13aXRoLWZsYWct
cHJvZ2FtYXRpYy5odG1sCisgICAgICAgICAgICAgICBsb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kv
c2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJscy9tYWluLWZyYW1lLXdpdGhvdXQtZmxhZy1wcm9ncmFt
YXRpYy5odG1sCisgICAgICAgICAgICAgICBsb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxk
LW9wZW4tZXh0ZXJuYWwtdXJscy9zdWJmcmFtZS1jbGljay10YXJnZXQtc2VsZi5odG1sCisgICAg
ICAgICAgICAgICBsb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwt
dXJscy9zdWJmcmFtZS1jbGljay10YXJnZXQtdG9wLmh0bWwKKyAgICAgICAgICAgICAgIGxvYWRl
ci9uYXZpZ2F0aW9uLXBvbGljeS9zaG91bGQtb3Blbi1leHRlcm5hbC11cmxzL3VzZXItZ2VzdHVy
ZS10YXJnZXQtYmxhbmstd2l0aC1mbGFnLWZyb20tc3ViZnJhbWUuaHRtbAorICAgICAgICAgICAg
ICAgbG9hZGVyL25hdmlnYXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvdXNl
ci1nZXN0dXJlLXRhcmdldC1ibGFuay13aXRoLWZsYWcuaHRtbAorICAgICAgICAgICAgICAgbG9h
ZGVyL25hdmlnYXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvdXNlci1nZXN0
dXJlLXRhcmdldC1ibGFuay13aXRob3V0LWZsYWctZnJvbS1zdWJmcmFtZS5odG1sCisgICAgICAg
ICAgICAgICBsb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJs
cy91c2VyLWdlc3R1cmUtdGFyZ2V0LWJsYW5rLXdpdGhvdXQtZmxhZy5odG1sCisgICAgICAgICAg
ICAgICBsb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJscy91
c2VyLWdlc3R1cmUtd2luZG93LW9wZW4td2l0aC1mbGFnLWZyb20tc3ViZnJhbWUuaHRtbAorICAg
ICAgICAgICAgICAgbG9hZGVyL25hdmlnYXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFs
LXVybHMvdXNlci1nZXN0dXJlLXdpbmRvdy1vcGVuLXdpdGgtZmxhZy5odG1sCisgICAgICAgICAg
ICAgICBsb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJscy91
c2VyLWdlc3R1cmUtd2luZG93LW9wZW4td2l0aG91dC1mbGFnLWZyb20tc3ViZnJhbWUuaHRtbAor
ICAgICAgICAgICAgICAgbG9hZGVyL25hdmlnYXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVy
bmFsLXVybHMvdXNlci1nZXN0dXJlLXdpbmRvdy1vcGVuLXdpdGhvdXQtZmxhZy5odG1sCisgICAg
ICAgICAgICAgICBsb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwt
dXJscy93aW5kb3ctb3Blbi13aXRoLWZsYWctZnJvbS1zdWJmcmFtZS5odG1sCisgICAgICAgICAg
ICAgICBsb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJscy93
aW5kb3ctb3Blbi13aXRoLWZsYWcuaHRtbAorICAgICAgICAgICAgICAgbG9hZGVyL25hdmlnYXRp
b24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvd2luZG93LW9wZW4td2l0aG91dC1m
bGFnLWZyb20tc3ViZnJhbWUuaHRtbAorICAgICAgICAgICAgICAgbG9hZGVyL25hdmlnYXRpb24t
cG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvd2luZG93LW9wZW4td2l0aG91dC1mbGFn
Lmh0bWwKKworICAgICAgICBUaGUgInNob3VsZCBvcGVuIGV4dGVybmFsIFVSTHMiIGZsYWcgaXMg
b25seSBmb3IgbWFpbiBmcmFtZXMuCisgICAgICAgIEl0IGRvZXNuJ3QgZW5mb3JjZSBhbnkgc29y
dCBvZiBwb2xpY3kgaW50ZXJuYWwgdG8gV2ViS2l0LCBidXQgcmF0aGVyIGlzIGZvciBub3RpZmlj
YXRpb25zIHRvIHRoZSBwb2xpY3kgZGVsZWdhdGUuCisgICAgICAgIAorICAgICAgICBJdCBpcyBz
ZXQgZnJvbSBvbmUgb2YgdHdvIHBsYWNlczoKKyAgICAgICAgMSAtIEEgbWFpbiBmcmFtZSBpcyBu
YXZpZ2F0ZWQgYnkgYW55IGZyYW1lIGFzIHRoZSByZXN1bHQgb2YgYSB1c2VyIGdlc3R1cmUuCisg
ICAgICAgIDIgLSBXZWJLaXQyIEFQSSBleHBsaWNpdGx5IHN0YXRlcyB0aGUgZmxhZyBpcyB0cnVl
LgorICAgICAgICAKKyAgICAgICAgVGhlIGZsYWcgdmFsdWUgcHJvcGFnYXRlcyB3aGVuOgorICAg
ICAgICAxIC0gV2hlbiBhIG1haW4gZnJhbWUgZG9jdW1lbnQgaXMgbmF2aWdhdGVkIHRvIGEgbmV3
IG1haW4gZnJhbWUgZG9jdW1lbnQuCisgICAgICAgIDIgLSBXaGVuIGEgbmV3IHdpbmRvdyBpcyBv
cGVuZWQgZnJvbSBhIHBhZ2Ugd2hvc2UgbWFpbiBmcmFtZSBoYWQgdGhlIGZsYWcgc2V0LgorICAg
ICAgICAKKyAgICAgICAgVGhlIGZsYWcgcmVzZXRzIHRvIGZhbHNlIHdoZW46CisgICAgICAgIDEg
LSBBIHN1YmZyYW1lIG5hdmlnYXRlcyBhIG1haW4gZnJhbWUgd2l0aG91dCBhIHVzZXIgZ2VzdHVy
ZS4KKyAgICAgICAgCisgICAgICAgIFRoaXMgcGF0Y2ggaXMgbGFyZ2UsIGJ1dCBkb2VzIGxpdHRs
ZSBtb3JlIHRoYW4gdGhlIGZvbGxvd2luZzoKKyAgICAgICAgMSAtIEFkZHMgYSBTaG91bGRPcGVu
RXh0ZXJuYWxVUkxzIGZsYWcgdG8gYm90aCBGcmFtZUxvYWRSZXF1ZXN0IGFuZCBOYXZpZ2F0aW9u
QWN0aW9uLgorICAgICAgICAyIC0gTWFrZXMgc3VyZSBhbnlib2R5IHdobyBjcmVhdGVzIGVpdGhl
ciBvZiB0aG9zZSBvYmplY3RzIHNldHMgYSBzZW5zaWJsZSBmb3IgdGhhdCBmbGFnLgorICAgICAg
ICAzIC0gV2hlbiBGcmFtZUxvYWRlciBjcmVhdGVzIGEgbmV3IERvY3VtZW50TG9hZGVyLCBpdCBz
ZXRzIGl0cyBmbGFnIGJhc2VkIG9uIHdoZXRoZXIgb3Igbm90IHRoZSBsb2FkIGlzIGluIGEgbWFp
biBmcmFtZSwKKyAgICAgICAgICAgIHdoZXRoZXIgb3Igbm90IHRoZSBsb2FkIGlzIGZyb20gYSB1
c2VyIGdlc3R1cmUsIGFuZCBiYXNlZCBvbiB0aGUgaW5pdGlhdG9yJ3MgdmFsdWUgb2YgdGhlIGZs
YWcuIAorCisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRv
Y3VtZW50Ojpwcm9jZXNzSHR0cEVxdWl2KToKKyAgICAgICAgCisgICAgICAgICogaHRtbC9IVE1M
QW5jaG9yRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQW5jaG9yRWxlbWVudDo6
aGFuZGxlQ2xpY2spOgorICAgICAgICAKKyAgICAgICAgKiBodG1sL0hUTUxMaW5rRWxlbWVudC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTGlua0VsZW1lbnQ6OmhhbmRsZUNsaWNrKToKKyAg
ICAgICAgCisgICAgICAgICogaHRtbC9wYXJzZXIvWFNTQXVkaXRvckRlbGVnYXRlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlhTU0F1ZGl0b3JEZWxlZ2F0ZTo6ZGlkQmxvY2tTY3JpcHQpOgorICAg
ICAgICAKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsOjpvcGVu
SW5OZXdUYWIpOgorICAgICAgICAKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFn
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclBhZ2VBZ2VudDo6bmF2aWdhdGUp
OgorICAgICAgICAKKyAgICAgICAgKiBsb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXI6OnNldFRyaWdnZXJpbmdBY3Rpb24pOgorICAgICAg
ICAoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXI6OnNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3lU
b1Byb3BhZ2F0ZSk6CisgICAgICAgICogbG9hZGVyL0RvY3VtZW50TG9hZGVyLmg6CisgICAgICAg
IChXZWJDb3JlOjpEb2N1bWVudExvYWRlcjo6c2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSk6
IERlbGV0ZWQuCisgICAgICAgIAorICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRSZXF1ZXN0LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZFJlcXVlc3Q6OkZyYW1lTG9hZFJlcXVlc3Qp
OgorICAgICAgICAKKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkUmVxdWVzdC5oOgorICAgICAg
ICAoV2ViQ29yZTo6RnJhbWVMb2FkUmVxdWVzdDo6RnJhbWVMb2FkUmVxdWVzdCk6CisgICAgICAg
IAorICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpG
cmFtZUxvYWRlcjo6dXJsU2VsZWN0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6
OnJlY2VpdmVkRmlyc3REYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpsb2Fk
VVJMSW50b0NoaWxkRnJhbWUpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmxvYWRV
UkwpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmxvYWQpOgorICAgICAgICAoV2Vi
Q29yZTo6RnJhbWVMb2FkZXI6OmxvYWRXaXRoTmF2aWdhdGlvbkFjdGlvbik6CisgICAgICAgIChX
ZWJDb3JlOjpGcmFtZUxvYWRlcjo6cmVsb2FkV2l0aE92ZXJyaWRlRW5jb2RpbmcpOgorICAgICAg
ICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OnJlbG9hZCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFt
ZUxvYWRlcjo6bG9hZFBvc3RSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVy
Ojpjb250aW51ZUxvYWRBZnRlck5ld1dpbmRvd1BvbGljeSk6CisgICAgICAgIChXZWJDb3JlOjpG
cmFtZUxvYWRlcjo6YXBwbHlTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5VG9OZXdEb2N1bWVu
dExvYWRlcik6CisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyLmg6CisgICAgICAgIAorICAg
ICAgICAqIGxvYWRlci9OYXZpZ2F0aW9uQWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5h
dmlnYXRpb25BY3Rpb246Ok5hdmlnYXRpb25BY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6TmF2
aWdhdGlvbkFjdGlvbjo6Y29weVdpdGhTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5KToKKyAg
ICAgICAgKiBsb2FkZXIvTmF2aWdhdGlvbkFjdGlvbi5oOgorICAgICAgICAoV2ViQ29yZTo6TmF2
aWdhdGlvbkFjdGlvbjo6c2V0U2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSk6IERlbGV0ZWQu
CisgICAgICAgIAorICAgICAgICAqIGxvYWRlci9OYXZpZ2F0aW9uU2NoZWR1bGVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNjaGVkdWxlZFVSTE5hdmlnYXRpb246OlNjaGVkdWxlZFVSTE5hdmln
YXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6U2NoZWR1bGVkUmVkaXJlY3Q6OlNjaGVkdWxlZFJl
ZGlyZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNjaGVkdWxlZExvY2F0aW9uQ2hhbmdlOjpTY2hl
ZHVsZWRMb2NhdGlvbkNoYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpTY2hlZHVsZWRSZWZyZXNo
OjpTY2hlZHVsZWRSZWZyZXNoKToKKyAgICAgICAgKFdlYkNvcmU6OlNjaGVkdWxlZEZvcm1TdWJt
aXNzaW9uOjpTY2hlZHVsZWRGb3JtU3VibWlzc2lvbik6CisgICAgICAgIChXZWJDb3JlOjpOYXZp
Z2F0aW9uU2NoZWR1bGVyOjpzY2hlZHVsZVJlZGlyZWN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok5h
dmlnYXRpb25TY2hlZHVsZXI6OnNjaGVkdWxlTG9jYXRpb25DaGFuZ2UpOgorICAgICAgICAoV2Vi
Q29yZTo6TmF2aWdhdGlvblNjaGVkdWxlcjo6c2NoZWR1bGVSZWZyZXNoKToKKyAgICAgICAgKiBs
b2FkZXIvTmF2aWdhdGlvblNjaGVkdWxlci5oOgorICAgICAgICAKKyAgICAgICAgKiBsb2FkZXIv
UG9saWN5Q2hlY2tlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQb2xpY3lDaGVja2VyOjpjaGVj
a05hdmlnYXRpb25Qb2xpY3kpOgorICAgICAgICAKKyAgICAgICAgKiBsb2FkZXIvU3ViZnJhbWVM
b2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3ViZnJhbWVMb2FkZXI6OmxvYWRPclJlZGly
ZWN0U3ViZnJhbWUpOgorICAgICAgICAKKyAgICAgICAgKiBsb2FkZXIvYXBwY2FjaGUvQXBwbGlj
YXRpb25DYWNoZUdyb3VwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFwcGxpY2F0aW9uQ2FjaGVH
cm91cDo6c2VsZWN0Q2FjaGUpOgorICAgICAgICAKKyAgICAgICAgKiBwYWdlL0NvbnRleHRNZW51
Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpvcGVuTmV3V2luZG93KToKKyAgICAg
ICAgKFdlYkNvcmU6OkNvbnRleHRNZW51Q29udHJvbGxlcjo6Y29udGV4dE1lbnVJdGVtU2VsZWN0
ZWQpOgorICAgICAgICAKKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpET01XaW5kb3c6OnNldExvY2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdp
bmRvdzo6Y3JlYXRlV2luZG93KToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6b3Blbik6
CisgICAgICAgIAorICAgICAgICAqIHBhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RHJhZ0NvbnRyb2xsZXI6OnBlcmZvcm1EcmFnT3BlcmF0aW9uKToKKyAgICAgICAg
CisgICAgICAgICogcGFnZS9Mb2NhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMb2NhdGlv
bjo6cmVsb2FkKToKKyAgICAgICAgCisgICAgICAgICogcmVwbGF5L1JlcGxheUlucHV0RGlzcGF0
Y2hNZXRob2RzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkluaXRpYWxOYXZpZ2F0aW9uOjpkaXNw
YXRjaCk6CisgICAgICAgIAorICAgICAgICAqIHN2Zy9TVkdBRWxlbWVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTVkdBRWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxlcik6CisKIDIwMTUtMDYt
MDEgIEJlbmphbWluIFBvdWxhaW4gIDxicG91bGFpbkBhcHBsZS5jb20+CiAKICAgICAgICAgW0NT
UyBKSVRdIEZhaWwgdG8gY29tcGlsZSB3aGVuIHdlIGFyZSBvdXQgb2YgZXhlY3V0YWJsZSBtZW1v
cnkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IDQ2YTEzZDUuLmEwZGJhNzQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0RvY3VtZW50LmNwcApAQCAtMzA0OSw3ICszMDQ5LDcgQEAgdm9pZCBEb2N1bWVudDo6cHJv
Y2Vzc0h0dHBFcXVpdihjb25zdCBTdHJpbmcmIGVxdWl2LCBjb25zdCBTdHJpbmcmIGNvbnRlbnQp
CiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgY29tcGxldGVkVVJMID0gY29tcGxl
dGVVUkwodXJsU3RyaW5nKTsKICAgICAgICAgICAgIGlmICghcHJvdG9jb2xJc0phdmFTY3JpcHQo
Y29tcGxldGVkVVJMKSkKLSAgICAgICAgICAgICAgICBmcmFtZS0+bmF2aWdhdGlvblNjaGVkdWxl
cigpLnNjaGVkdWxlUmVkaXJlY3QoZGVsYXksIGNvbXBsZXRlZFVSTCk7CisgICAgICAgICAgICAg
ICAgZnJhbWUtPm5hdmlnYXRpb25TY2hlZHVsZXIoKS5zY2hlZHVsZVJlZGlyZWN0KHRoaXMsIGRl
bGF5LCBjb21wbGV0ZWRVUkwpOwogICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAg
U3RyaW5nIG1lc3NhZ2UgPSAiUmVmdXNlZCB0byByZWZyZXNoICIgKyBtX3VybC5zdHJpbmdDZW50
ZXJFbGxpcHNpemVkVG9MZW5ndGgoKSArICIgdG8gYSBqYXZhc2NyaXB0OiBVUkwiOwogICAgICAg
ICAgICAgICAgIGFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OlNlY3VyaXR5LCBNZXNz
YWdlTGV2ZWw6OkVycm9yLCBtZXNzYWdlKTsKQEAgLTMwODcsNyArMzA4Nyw3IEBAIHZvaWQgRG9j
dW1lbnQ6OnByb2Nlc3NIdHRwRXF1aXYoY29uc3QgU3RyaW5nJiBlcXVpdiwgY29uc3QgU3RyaW5n
JiBjb250ZW50KQogICAgICAgICAgICAgICAgIC8vIFN0b3BwaW5nIHRoZSBsb2FkZXIgaXNuJ3Qg
ZW5vdWdoLCBhcyB3ZSdyZSBhbHJlYWR5IHBhcnNpbmcgdGhlIGRvY3VtZW50OyB0byBob25vciB0
aGUgaGVhZGVyJ3MKICAgICAgICAgICAgICAgICAvLyBpbnRlbnQsIHdlIG11c3QgbmF2aWdhdGUg
YXdheSBmcm9tIHRoZSBwb3NzaWJseSBwYXJ0aWFsbHktcmVuZGVyZWQgZG9jdW1lbnQgdG8gYSBs
b2NhdGlvbiB0aGF0CiAgICAgICAgICAgICAgICAgLy8gZG9lc24ndCBpbmhlcml0IHRoZSBwYXJl
bnQncyBTZWN1cml0eU9yaWdpbi4KLSAgICAgICAgICAgICAgICBmcmFtZS0+bmF2aWdhdGlvblNj
aGVkdWxlcigpLnNjaGVkdWxlTG9jYXRpb25DaGFuZ2Uoc2VjdXJpdHlPcmlnaW4oKSwgU2VjdXJp
dHlPcmlnaW46OnVybFdpdGhVbmlxdWVTZWN1cml0eU9yaWdpbigpLCBTdHJpbmcoKSk7CisgICAg
ICAgICAgICAgICAgZnJhbWUtPm5hdmlnYXRpb25TY2hlZHVsZXIoKS5zY2hlZHVsZUxvY2F0aW9u
Q2hhbmdlKHRoaXMsIHNlY3VyaXR5T3JpZ2luKCksIFNlY3VyaXR5T3JpZ2luOjp1cmxXaXRoVW5p
cXVlU2VjdXJpdHlPcmlnaW4oKSwgU3RyaW5nKCkpOwogICAgICAgICAgICAgICAgIGFkZENvbnNv
bGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OlNlY3VyaXR5LCBNZXNzYWdlTGV2ZWw6OkVycm9yLCBt
ZXNzYWdlLCByZXF1ZXN0SWRlbnRpZmllcik7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5jcHAKaW5kZXggNTQ5MDQ3My4uZjdm
OWViNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5jcHAKQEAgLTU1
OCw3ICs1NTgsOCBAQCB2b2lkIEhUTUxBbmNob3JFbGVtZW50OjpoYW5kbGVDbGljayhFdmVudCog
ZXZlbnQpCiAgICAgICAgIGZyYW1lLT5sb2FkZXIoKS5jbGllbnQoKS5zdGFydERvd25sb2FkKHJl
cXVlc3QsIGZhc3RHZXRBdHRyaWJ1dGUoZG93bmxvYWRBdHRyKSk7CiAgICAgfSBlbHNlCiAjZW5k
aWYKLSAgICAgICAgZnJhbWUtPmxvYWRlcigpLnVybFNlbGVjdGVkKGt1cmwsIHRhcmdldCgpLCBl
dmVudCwgTG9ja0hpc3Rvcnk6Ok5vLCBMb2NrQmFja0ZvcndhcmRMaXN0OjpObywgaGFzUmVsKFJl
bGF0aW9uTm9SZWZlcnJlcikgPyBOZXZlclNlbmRSZWZlcnJlciA6IE1heWJlU2VuZFJlZmVycmVy
KTsKKworICAgIGZyYW1lLT5sb2FkZXIoKS51cmxTZWxlY3RlZChrdXJsLCB0YXJnZXQoKSwgZXZl
bnQsIExvY2tIaXN0b3J5OjpObywgTG9ja0JhY2tGb3J3YXJkTGlzdDo6Tm8sIGhhc1JlbChSZWxh
dGlvbk5vUmVmZXJyZXIpID8gTmV2ZXJTZW5kUmVmZXJyZXIgOiBNYXliZVNlbmRSZWZlcnJlciwg
ZG9jdW1lbnQoKS5sb2FkZXIoKS0+c2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeVRvUHJvcGFn
YXRlKCkpOwogCiAgICAgc2VuZFBpbmdzKGt1cmwpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MTGlua0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
TGlua0VsZW1lbnQuY3BwCmluZGV4IDFlZGZmZDAuLjczMzAxOWIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxMaW5rRWxlbWVudC5jcHAKQEAgLTQ0MSw3ICs0NDEsNyBAQCB2b2lkIEhUTUxMaW5r
RWxlbWVudDo6aGFuZGxlQ2xpY2soRXZlbnQmIGV2ZW50KQogICAgIEZyYW1lKiBmcmFtZSA9IGRv
Y3VtZW50KCkuZnJhbWUoKTsKICAgICBpZiAoIWZyYW1lKQogICAgICAgICByZXR1cm47Ci0gICAg
ZnJhbWUtPmxvYWRlcigpLnVybFNlbGVjdGVkKHVybCwgdGFyZ2V0KCksICZldmVudCwgTG9ja0hp
c3Rvcnk6Ok5vLCBMb2NrQmFja0ZvcndhcmRMaXN0OjpObywgTWF5YmVTZW5kUmVmZXJyZXIpOwor
ICAgIGZyYW1lLT5sb2FkZXIoKS51cmxTZWxlY3RlZCh1cmwsIHRhcmdldCgpLCAmZXZlbnQsIExv
Y2tIaXN0b3J5OjpObywgTG9ja0JhY2tGb3J3YXJkTGlzdDo6Tm8sIE1heWJlU2VuZFJlZmVycmVy
LCBkb2N1bWVudCgpLmxvYWRlcigpLT5zaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5VG9Qcm9w
YWdhdGUoKSk7CiB9CiAKIFVSTCBIVE1MTGlua0VsZW1lbnQ6OmhyZWYoKSBjb25zdApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvWFNTQXVkaXRvckRlbGVnYXRlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL1hTU0F1ZGl0b3JEZWxlZ2F0ZS5jcHAKaW5kZXgg
MDRkZDA0My4uZjU0ZDkyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIv
WFNTQXVkaXRvckRlbGVnYXRlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9Y
U1NBdWRpdG9yRGVsZWdhdGUuY3BwCkBAIC0xMTIsNyArMTEyLDcgQEAgdm9pZCBYU1NBdWRpdG9y
RGVsZWdhdGU6OmRpZEJsb2NrU2NyaXB0KGNvbnN0IFhTU0luZm8mIHhzc0luZm8pCiAgICAgfQog
CiAgICAgaWYgKHhzc0luZm8ubV9kaWRCbG9ja0VudGlyZVBhZ2UpCi0gICAgICAgIG1fZG9jdW1l
bnQuZnJhbWUoKS0+bmF2aWdhdGlvblNjaGVkdWxlcigpLnNjaGVkdWxlTG9jYXRpb25DaGFuZ2Uo
bV9kb2N1bWVudC5zZWN1cml0eU9yaWdpbigpLCBTZWN1cml0eU9yaWdpbjo6dXJsV2l0aFVuaXF1
ZVNlY3VyaXR5T3JpZ2luKCksIFN0cmluZygpKTsKKyAgICAgICAgbV9kb2N1bWVudC5mcmFtZSgp
LT5uYXZpZ2F0aW9uU2NoZWR1bGVyKCkuc2NoZWR1bGVMb2NhdGlvbkNoYW5nZSgmbV9kb2N1bWVu
dCwgbV9kb2N1bWVudC5zZWN1cml0eU9yaWdpbigpLCBTZWN1cml0eU9yaWdpbjo6dXJsV2l0aFVu
aXF1ZVNlY3VyaXR5T3JpZ2luKCksIFN0cmluZygpKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250
ZW5kQ2xpZW50TG9jYWwuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZy
b250ZW5kQ2xpZW50TG9jYWwuY3BwCmluZGV4IDM3NGRjYzEuLmJjMzk0ZDMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRM
b2NhbC5jcHAKQEAgLTIxMCw3ICsyMTAsNyBAQCB2b2lkIEluc3BlY3RvckZyb250ZW5kQ2xpZW50
TG9jYWw6Om9wZW5Jbk5ld1RhYihjb25zdCBTdHJpbmcmIHVybCkKIHsKICAgICBVc2VyR2VzdHVy
ZUluZGljYXRvciBpbmRpY2F0b3IoRGVmaW5pdGVseVByb2Nlc3NpbmdVc2VyR2VzdHVyZSk7CiAg
ICAgRnJhbWUmIG1haW5GcmFtZSA9IG1faW5zcGVjdG9yQ29udHJvbGxlci0+aW5zcGVjdGVkUGFn
ZSgpLm1haW5GcmFtZSgpOwotICAgIEZyYW1lTG9hZFJlcXVlc3QgcmVxdWVzdChtYWluRnJhbWUu
ZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKSwgUmVzb3VyY2VSZXF1ZXN0KCksICJfYmxhbmsi
LCBMb2NrSGlzdG9yeTo6Tm8sIExvY2tCYWNrRm9yd2FyZExpc3Q6Ok5vLCBNYXliZVNlbmRSZWZl
cnJlciwgQWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJMOjpZZXMsIE5ld0ZyYW1lT3BlbmVyUG9s
aWN5OjpBbGxvdywgUmVwbGFjZURvY3VtZW50SWZKYXZhU2NyaXB0VVJMKTsKKyAgICBGcmFtZUxv
YWRSZXF1ZXN0IHJlcXVlc3QobWFpbkZyYW1lLmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCks
IFJlc291cmNlUmVxdWVzdCgpLCAiX2JsYW5rIiwgTG9ja0hpc3Rvcnk6Ok5vLCBMb2NrQmFja0Zv
cndhcmRMaXN0OjpObywgTWF5YmVTZW5kUmVmZXJyZXIsIEFsbG93TmF2aWdhdGlvblRvSW52YWxp
ZFVSTDo6WWVzLCBOZXdGcmFtZU9wZW5lclBvbGljeTo6QWxsb3csIFJlcGxhY2VEb2N1bWVudElm
SmF2YVNjcmlwdFVSTCwgU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeTo6U2hvdWxkTm90QWxs
b3cpOwogCiAgICAgYm9vbCBjcmVhdGVkOwogICAgIFdpbmRvd0ZlYXR1cmVzIHdpbmRvd0ZlYXR1
cmVzOwpAQCAtMjIzLDcgKzIyMyw3IEBAIHZvaWQgSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2Nh
bDo6b3BlbkluTmV3VGFiKGNvbnN0IFN0cmluZyYgdXJsKQogCiAgICAgLy8gRklYTUU6IFdoeSBk
b2VzIG9uZSB1c2UgbWFpbkZyYW1lIGFuZCB0aGUgb3RoZXIgZnJhbWU/CiAgICAgUmVzb3VyY2VS
ZXF1ZXN0IHJlc291cmNlUmVxdWVzdChmcmFtZS0+ZG9jdW1lbnQoKS0+Y29tcGxldGVVUkwodXJs
KSk7Ci0gICAgRnJhbWVMb2FkUmVxdWVzdCBmcmFtZVJlcXVlc3QobWFpbkZyYW1lLmRvY3VtZW50
KCktPnNlY3VyaXR5T3JpZ2luKCksIHJlc291cmNlUmVxdWVzdCwgZW1wdHlTdHJpbmcoKSwgTG9j
a0hpc3Rvcnk6Ok5vLCBMb2NrQmFja0ZvcndhcmRMaXN0OjpObywgTWF5YmVTZW5kUmVmZXJyZXIs
IEFsbG93TmF2aWdhdGlvblRvSW52YWxpZFVSTDo6WWVzLCBOZXdGcmFtZU9wZW5lclBvbGljeTo6
QWxsb3csIFJlcGxhY2VEb2N1bWVudElmSmF2YVNjcmlwdFVSTCk7CisgICAgRnJhbWVMb2FkUmVx
dWVzdCBmcmFtZVJlcXVlc3QobWFpbkZyYW1lLmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCks
IHJlc291cmNlUmVxdWVzdCwgZW1wdHlTdHJpbmcoKSwgTG9ja0hpc3Rvcnk6Ok5vLCBMb2NrQmFj
a0ZvcndhcmRMaXN0OjpObywgTWF5YmVTZW5kUmVmZXJyZXIsIEFsbG93TmF2aWdhdGlvblRvSW52
YWxpZFVSTDo6WWVzLCBOZXdGcmFtZU9wZW5lclBvbGljeTo6QWxsb3csIFJlcGxhY2VEb2N1bWVu
dElmSmF2YVNjcmlwdFVSTCwgU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeTo6U2hvdWxkTm90
QWxsb3cpOwogICAgIGZyYW1lLT5sb2FkZXIoKS5jaGFuZ2VMb2NhdGlvbihmcmFtZVJlcXVlc3Qp
OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFn
ZUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQu
Y3BwCmluZGV4IDcxNmY0MGYuLjE4YzA0MzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuY3BwCkBAIC00MTksNyArNDE5LDcgQEAgdm9pZCBJbnNw
ZWN0b3JQYWdlQWdlbnQ6Om5hdmlnYXRlKEVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiB1cmwp
CiAgICAgRnJhbWUmIGZyYW1lID0gbV9wYWdlLT5tYWluRnJhbWUoKTsKIAogICAgIFJlc291cmNl
UmVxdWVzdCByZXNvdXJjZVJlcXVlc3QoZnJhbWUuZG9jdW1lbnQoKS0+Y29tcGxldGVVUkwodXJs
KSk7Ci0gICAgRnJhbWVMb2FkUmVxdWVzdCBmcmFtZVJlcXVlc3QoZnJhbWUuZG9jdW1lbnQoKS0+
c2VjdXJpdHlPcmlnaW4oKSwgcmVzb3VyY2VSZXF1ZXN0LCBlbXB0eVN0cmluZygpLCBMb2NrSGlz
dG9yeTo6Tm8sIExvY2tCYWNrRm9yd2FyZExpc3Q6Ok5vLCBNYXliZVNlbmRSZWZlcnJlciwgQWxs
b3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJMOjpObywgTmV3RnJhbWVPcGVuZXJQb2xpY3k6OkFsbG93
LCBTaG91bGRSZXBsYWNlRG9jdW1lbnRJZkphdmFTY3JpcHRVUkw6OlJlcGxhY2VEb2N1bWVudElm
SmF2YVNjcmlwdFVSTCk7CisgICAgRnJhbWVMb2FkUmVxdWVzdCBmcmFtZVJlcXVlc3QoZnJhbWUu
ZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKSwgcmVzb3VyY2VSZXF1ZXN0LCBlbXB0eVN0cmlu
ZygpLCBMb2NrSGlzdG9yeTo6Tm8sIExvY2tCYWNrRm9yd2FyZExpc3Q6Ok5vLCBNYXliZVNlbmRS
ZWZlcnJlciwgQWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJMOjpObywgTmV3RnJhbWVPcGVuZXJQ
b2xpY3k6OkFsbG93LCBTaG91bGRSZXBsYWNlRG9jdW1lbnRJZkphdmFTY3JpcHRVUkw6OlJlcGxh
Y2VEb2N1bWVudElmSmF2YVNjcmlwdFVSTCwgU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeTo6
U2hvdWxkTm90QWxsb3cpOwogICAgIGZyYW1lLmxvYWRlcigpLmNoYW5nZUxvY2F0aW9uKGZyYW1l
UmVxdWVzdCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVu
dExvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwCmlu
ZGV4IGNiMTk4Y2IuLjUyZjYwZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9E
b2N1bWVudExvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9h
ZGVyLmNwcApAQCAtMTU0OSw5ICsxNTQ5LDE1IEBAIHZvaWQgRG9jdW1lbnRMb2FkZXI6OmhhbmRs
ZWRPbmxvYWRFdmVudHMoKQogCiB2b2lkIERvY3VtZW50TG9hZGVyOjpzZXRUcmlnZ2VyaW5nQWN0
aW9uKGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mIGFjdGlvbikKIHsKLSAgICBtX3RyaWdnZXJpbmdB
Y3Rpb24gPSBhY3Rpb247Ci0gICAgaWYgKCFtX3RyaWdnZXJpbmdBY3Rpb24uaXNFbXB0eSgpKQot
ICAgICAgICBtX3RyaWdnZXJpbmdBY3Rpb24uc2V0U2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGlj
eShtX3Nob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kpOworICAgIG1fdHJpZ2dlcmluZ0FjdGlv
biA9IGFjdGlvbi5jb3B5V2l0aFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kobV9mcmFtZSA/
IHNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3lUb1Byb3BhZ2F0ZSgpIDogbV9zaG91bGRPcGVu
RXh0ZXJuYWxVUkxzUG9saWN5KTsKK30KKworU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSBE
b2N1bWVudExvYWRlcjo6c2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeVRvUHJvcGFnYXRlKCkg
Y29uc3QKK3sKKyAgICBpZiAoIW1fZnJhbWUgfHwgIW1fZnJhbWUtPmlzTWFpbkZyYW1lKCkpCisg
ICAgICAgIHJldHVybiBTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5OjpTaG91bGROb3RBbGxv
dzsKKworICAgIHJldHVybiBtX3Nob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3k7CiB9CiAKICNp
ZiBFTkFCTEUoQ09OVEVOVF9FWFRFTlNJT05TKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0RvY3VtZW50TG9hZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRM
b2FkZXIuaAppbmRleCA2NGJmMzVhLi45MzVlODgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9j
dW1lbnRMb2FkZXIuaApAQCAtMjc2LDcgKzI3Niw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICNl
bmRpZgogCiAgICAgICAgIHZvaWQgc2V0U2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeShTaG91
bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5IHNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kpIHsg
bV9zaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5ID0gc2hvdWxkT3BlbkV4dGVybmFsVVJMc1Bv
bGljeTsgfQotICAgICAgICBTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5IHNob3VsZE9wZW5F
eHRlcm5hbFVSTHNQb2xpY3koKSBjb25zdCB7IHJldHVybiBtX3Nob3VsZE9wZW5FeHRlcm5hbFVS
THNQb2xpY3k7IH0KKyAgICAgICAgU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSBzaG91bGRP
cGVuRXh0ZXJuYWxVUkxzUG9saWN5VG9Qcm9wYWdhdGUoKSBjb25zdDsKIAogICAgIHByb3RlY3Rl
ZDoKICAgICAgICAgV0VCQ09SRV9FWFBPUlQgRG9jdW1lbnRMb2FkZXIoY29uc3QgUmVzb3VyY2VS
ZXF1ZXN0JiwgY29uc3QgU3Vic3RpdHV0ZURhdGEmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9GcmFtZUxvYWRSZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9G
cmFtZUxvYWRSZXF1ZXN0LmNwcAppbmRleCA3Yjk3NGIwLi41ZDk5MjZmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkUmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvbG9hZGVyL0ZyYW1lTG9hZFJlcXVlc3QuY3BwCkBAIC0zNiw3ICszNiw3IEBACiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAotRnJhbWVMb2FkUmVxdWVzdDo6RnJhbWVMb2FkUmVxdWVzdChG
cmFtZSogZnJhbWUsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVzb3VyY2VSZXF1ZXN0LCBjb25z
dCBTdWJzdGl0dXRlRGF0YSYgc3Vic3RpdHV0ZURhdGEpCitGcmFtZUxvYWRSZXF1ZXN0OjpGcmFt
ZUxvYWRSZXF1ZXN0KEZyYW1lKiBmcmFtZSwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXNvdXJj
ZVJlcXVlc3QsIFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kgc2hvdWxkT3BlbkV4dGVybmFs
VVJMc1BvbGljeSwgY29uc3QgU3Vic3RpdHV0ZURhdGEmIHN1YnN0aXR1dGVEYXRhKQogICAgIDog
bV9yZXF1ZXN0ZXIoZnJhbWUtPmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCkpCiAgICAgLCBt
X3Jlc291cmNlUmVxdWVzdChyZXNvdXJjZVJlcXVlc3QpCiAgICAgLCBtX3Nob3VsZENoZWNrTmV3
V2luZG93UG9saWN5KGZhbHNlKQpAQCAtNDcsNiArNDcsNyBAQCBGcmFtZUxvYWRSZXF1ZXN0OjpG
cmFtZUxvYWRSZXF1ZXN0KEZyYW1lKiBmcmFtZSwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXNv
dXJjZQogICAgICwgbV9hbGxvd05hdmlnYXRpb25Ub0ludmFsaWRVUkwoQWxsb3dOYXZpZ2F0aW9u
VG9JbnZhbGlkVVJMOjpZZXMpCiAgICAgLCBtX25ld0ZyYW1lT3BlbmVyUG9saWN5KE5ld0ZyYW1l
T3BlbmVyUG9saWN5OjpBbGxvdykKICAgICAsIG1fc2hvdWxkUmVwbGFjZURvY3VtZW50SWZKYXZh
U2NyaXB0VVJMKFJlcGxhY2VEb2N1bWVudElmSmF2YVNjcmlwdFVSTCkKKyAgICAsIG1fc2hvdWxk
T3BlbkV4dGVybmFsVVJMc1BvbGljeShzaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5KQogewog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkUmVxdWVzdC5o
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZFJlcXVlc3QuaAppbmRleCAyYzgxNTll
Li45NTE4OWVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkUmVx
dWVzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRSZXF1ZXN0LmgKQEAg
LTM2LDcgKzM2LDcgQEAgY2xhc3MgRnJhbWU7CiAKIHN0cnVjdCBGcmFtZUxvYWRSZXF1ZXN0IHsK
IHB1YmxpYzoKLSAgICBGcmFtZUxvYWRSZXF1ZXN0KFNlY3VyaXR5T3JpZ2luKiByZXF1ZXN0ZXIs
IExvY2tIaXN0b3J5IGxvY2tIaXN0b3J5LCBMb2NrQmFja0ZvcndhcmRMaXN0IGxvY2tCYWNrRm9y
d2FyZExpc3QsIFNob3VsZFNlbmRSZWZlcnJlciBzaG91bGRTZW5kUmVmZXJyZXIsIEFsbG93TmF2
aWdhdGlvblRvSW52YWxpZFVSTCBhbGxvd05hdmlnYXRpb25Ub0ludmFsaWRVUkwsIE5ld0ZyYW1l
T3BlbmVyUG9saWN5IG5ld0ZyYW1lT3BlbmVyUG9saWN5KQorICAgIEZyYW1lTG9hZFJlcXVlc3Qo
U2VjdXJpdHlPcmlnaW4qIHJlcXVlc3RlciwgTG9ja0hpc3RvcnkgbG9ja0hpc3RvcnksIExvY2tC
YWNrRm9yd2FyZExpc3QgbG9ja0JhY2tGb3J3YXJkTGlzdCwgU2hvdWxkU2VuZFJlZmVycmVyIHNo
b3VsZFNlbmRSZWZlcnJlciwgQWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJMIGFsbG93TmF2aWdh
dGlvblRvSW52YWxpZFVSTCwgTmV3RnJhbWVPcGVuZXJQb2xpY3kgbmV3RnJhbWVPcGVuZXJQb2xp
Y3ksIFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kgc2hvdWxkT3BlbkV4dGVybmFsVVJMc1Bv
bGljeSkKICAgICAgICAgOiBtX3JlcXVlc3RlcihyZXF1ZXN0ZXIpCiAgICAgICAgICwgbV9zaG91
bGRDaGVja05ld1dpbmRvd1BvbGljeShmYWxzZSkKICAgICAgICAgLCBtX2xvY2tIaXN0b3J5KGxv
Y2tIaXN0b3J5KQpAQCAtNDUsMTAgKzQ1LDExIEBAIHB1YmxpYzoKICAgICAgICAgLCBtX2FsbG93
TmF2aWdhdGlvblRvSW52YWxpZFVSTChhbGxvd05hdmlnYXRpb25Ub0ludmFsaWRVUkwpCiAgICAg
ICAgICwgbV9uZXdGcmFtZU9wZW5lclBvbGljeShuZXdGcmFtZU9wZW5lclBvbGljeSkKICAgICAg
ICAgLCBtX3Nob3VsZFJlcGxhY2VEb2N1bWVudElmSmF2YVNjcmlwdFVSTChSZXBsYWNlRG9jdW1l
bnRJZkphdmFTY3JpcHRVUkwpCisgICAgICAgICwgbV9zaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9s
aWN5KHNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kpCiAgICAgewogICAgIH0KIAotICAgIEZy
YW1lTG9hZFJlcXVlc3QoU2VjdXJpdHlPcmlnaW4qIHJlcXVlc3RlciwgY29uc3QgUmVzb3VyY2VS
ZXF1ZXN0JiByZXNvdXJjZVJlcXVlc3QsIExvY2tIaXN0b3J5IGxvY2tIaXN0b3J5LCBMb2NrQmFj
a0ZvcndhcmRMaXN0IGxvY2tCYWNrRm9yd2FyZExpc3QsIFNob3VsZFNlbmRSZWZlcnJlciBzaG91
bGRTZW5kUmVmZXJyZXIsIEFsbG93TmF2aWdhdGlvblRvSW52YWxpZFVSTCBhbGxvd05hdmlnYXRp
b25Ub0ludmFsaWRVUkwsIE5ld0ZyYW1lT3BlbmVyUG9saWN5IG5ld0ZyYW1lT3BlbmVyUG9saWN5
KQorICAgIEZyYW1lTG9hZFJlcXVlc3QoU2VjdXJpdHlPcmlnaW4qIHJlcXVlc3RlciwgY29uc3Qg
UmVzb3VyY2VSZXF1ZXN0JiByZXNvdXJjZVJlcXVlc3QsIExvY2tIaXN0b3J5IGxvY2tIaXN0b3J5
LCBMb2NrQmFja0ZvcndhcmRMaXN0IGxvY2tCYWNrRm9yd2FyZExpc3QsIFNob3VsZFNlbmRSZWZl
cnJlciBzaG91bGRTZW5kUmVmZXJyZXIsIEFsbG93TmF2aWdhdGlvblRvSW52YWxpZFVSTCBhbGxv
d05hdmlnYXRpb25Ub0ludmFsaWRVUkwsIE5ld0ZyYW1lT3BlbmVyUG9saWN5IG5ld0ZyYW1lT3Bl
bmVyUG9saWN5LCBTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5IHNob3VsZE9wZW5FeHRlcm5h
bFVSTHNQb2xpY3kpCiAgICAgICAgIDogbV9yZXF1ZXN0ZXIocmVxdWVzdGVyKQogICAgICAgICAs
IG1fcmVzb3VyY2VSZXF1ZXN0KHJlc291cmNlUmVxdWVzdCkKICAgICAgICAgLCBtX3Nob3VsZENo
ZWNrTmV3V2luZG93UG9saWN5KGZhbHNlKQpAQCAtNTgsMTAgKzU5LDExIEBAIHB1YmxpYzoKICAg
ICAgICAgLCBtX2FsbG93TmF2aWdhdGlvblRvSW52YWxpZFVSTChhbGxvd05hdmlnYXRpb25Ub0lu
dmFsaWRVUkwpCiAgICAgICAgICwgbV9uZXdGcmFtZU9wZW5lclBvbGljeShuZXdGcmFtZU9wZW5l
clBvbGljeSkKICAgICAgICAgLCBtX3Nob3VsZFJlcGxhY2VEb2N1bWVudElmSmF2YVNjcmlwdFVS
TChSZXBsYWNlRG9jdW1lbnRJZkphdmFTY3JpcHRVUkwpCisgICAgICAgICwgbV9zaG91bGRPcGVu
RXh0ZXJuYWxVUkxzUG9saWN5KHNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kpCiAgICAgewog
ICAgIH0KIAotICAgIEZyYW1lTG9hZFJlcXVlc3QoU2VjdXJpdHlPcmlnaW4qIHJlcXVlc3Rlciwg
Y29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXNvdXJjZVJlcXVlc3QsIGNvbnN0IFN0cmluZyYgZnJh
bWVOYW1lLCBMb2NrSGlzdG9yeSBsb2NrSGlzdG9yeSwgTG9ja0JhY2tGb3J3YXJkTGlzdCBsb2Nr
QmFja0ZvcndhcmRMaXN0LCBTaG91bGRTZW5kUmVmZXJyZXIgc2hvdWxkU2VuZFJlZmVycmVyLCBB
bGxvd05hdmlnYXRpb25Ub0ludmFsaWRVUkwgYWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJMLCBO
ZXdGcmFtZU9wZW5lclBvbGljeSBuZXdGcmFtZU9wZW5lclBvbGljeSwgU2hvdWxkUmVwbGFjZURv
Y3VtZW50SWZKYXZhU2NyaXB0VVJMIHNob3VsZFJlcGxhY2VEb2N1bWVudElmSmF2YVNjcmlwdFVS
TCkKKyAgICBGcmFtZUxvYWRSZXF1ZXN0KFNlY3VyaXR5T3JpZ2luKiByZXF1ZXN0ZXIsIGNvbnN0
IFJlc291cmNlUmVxdWVzdCYgcmVzb3VyY2VSZXF1ZXN0LCBjb25zdCBTdHJpbmcmIGZyYW1lTmFt
ZSwgTG9ja0hpc3RvcnkgbG9ja0hpc3RvcnksIExvY2tCYWNrRm9yd2FyZExpc3QgbG9ja0JhY2tG
b3J3YXJkTGlzdCwgU2hvdWxkU2VuZFJlZmVycmVyIHNob3VsZFNlbmRSZWZlcnJlciwgQWxsb3dO
YXZpZ2F0aW9uVG9JbnZhbGlkVVJMIGFsbG93TmF2aWdhdGlvblRvSW52YWxpZFVSTCwgTmV3RnJh
bWVPcGVuZXJQb2xpY3kgbmV3RnJhbWVPcGVuZXJQb2xpY3ksIFNob3VsZFJlcGxhY2VEb2N1bWVu
dElmSmF2YVNjcmlwdFVSTCBzaG91bGRSZXBsYWNlRG9jdW1lbnRJZkphdmFTY3JpcHRVUkwsIFNo
b3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kgc2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSkK
ICAgICAgICAgOiBtX3JlcXVlc3RlcihyZXF1ZXN0ZXIpCiAgICAgICAgICwgbV9yZXNvdXJjZVJl
cXVlc3QocmVzb3VyY2VSZXF1ZXN0KQogICAgICAgICAsIG1fZnJhbWVOYW1lKGZyYW1lTmFtZSkK
QEAgLTcyLDEwICs3NCwxMSBAQCBwdWJsaWM6CiAgICAgICAgICwgbV9hbGxvd05hdmlnYXRpb25U
b0ludmFsaWRVUkwoYWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJMKQogICAgICAgICAsIG1fbmV3
RnJhbWVPcGVuZXJQb2xpY3kobmV3RnJhbWVPcGVuZXJQb2xpY3kpCiAgICAgICAgICwgbV9zaG91
bGRSZXBsYWNlRG9jdW1lbnRJZkphdmFTY3JpcHRVUkwoc2hvdWxkUmVwbGFjZURvY3VtZW50SWZK
YXZhU2NyaXB0VVJMKQorICAgICAgICAsIG1fc2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeShz
aG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5KQogICAgIHsKICAgICB9CiAKLSAgICBXRUJDT1JF
X0VYUE9SVCBGcmFtZUxvYWRSZXF1ZXN0KEZyYW1lKiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0Jiwg
Y29uc3QgU3Vic3RpdHV0ZURhdGEmID0gU3Vic3RpdHV0ZURhdGEoKSk7CisgICAgV0VCQ09SRV9F
WFBPUlQgRnJhbWVMb2FkUmVxdWVzdChGcmFtZSosIGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIFNo
b3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3ksIGNvbnN0IFN1YnN0aXR1dGVEYXRhJiA9IFN1YnN0
aXR1dGVEYXRhKCkpOwogCiAgICAgYm9vbCBpc0VtcHR5KCkgY29uc3QgeyByZXR1cm4gbV9yZXNv
dXJjZVJlcXVlc3QuaXNFbXB0eSgpOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9GcmFtZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIu
Y3BwCmluZGV4IDY1MjFhM2MuLmM5YzU5MTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9GcmFtZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9h
ZGVyLmNwcApAQCAtMzE3LDExICszMTcsMTEgQEAgdm9pZCBGcmFtZUxvYWRlcjo6Y2hhbmdlTG9j
YXRpb24oY29uc3QgRnJhbWVMb2FkUmVxdWVzdCYgcmVxdWVzdCkKICAgICB1cmxTZWxlY3RlZChy
ZXF1ZXN0LCBudWxscHRyKTsKIH0KIAotdm9pZCBGcmFtZUxvYWRlcjo6dXJsU2VsZWN0ZWQoY29u
c3QgVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgcGFzc2VkVGFyZ2V0LCBFdmVudCogdHJpZ2dlcmlu
Z0V2ZW50LCBMb2NrSGlzdG9yeSBsb2NrSGlzdG9yeSwgTG9ja0JhY2tGb3J3YXJkTGlzdCBsb2Nr
QmFja0ZvcndhcmRMaXN0LCBTaG91bGRTZW5kUmVmZXJyZXIgc2hvdWxkU2VuZFJlZmVycmVyKQor
dm9pZCBGcmFtZUxvYWRlcjo6dXJsU2VsZWN0ZWQoY29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0cmlu
ZyYgcGFzc2VkVGFyZ2V0LCBFdmVudCogdHJpZ2dlcmluZ0V2ZW50LCBMb2NrSGlzdG9yeSBsb2Nr
SGlzdG9yeSwgTG9ja0JhY2tGb3J3YXJkTGlzdCBsb2NrQmFja0ZvcndhcmRMaXN0LCBTaG91bGRT
ZW5kUmVmZXJyZXIgc2hvdWxkU2VuZFJlZmVycmVyLCBTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9s
aWN5IHNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kpCiB7CiAgICAgTmV3RnJhbWVPcGVuZXJQ
b2xpY3kgbmV3RnJhbWVPcGVuZXJQb2xpY3kgPSBzaG91bGRTZW5kUmVmZXJyZXIgPT0gTmV2ZXJT
ZW5kUmVmZXJyZXIgPyBOZXdGcmFtZU9wZW5lclBvbGljeTo6U3VwcHJlc3MgOiBOZXdGcmFtZU9w
ZW5lclBvbGljeTo6QWxsb3c7CiAKLSAgICB1cmxTZWxlY3RlZChGcmFtZUxvYWRSZXF1ZXN0KG1f
ZnJhbWUuZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKSwgUmVzb3VyY2VSZXF1ZXN0KHVybCks
IHBhc3NlZFRhcmdldCwgbG9ja0hpc3RvcnksIGxvY2tCYWNrRm9yd2FyZExpc3QsIHNob3VsZFNl
bmRSZWZlcnJlciwgQWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJMOjpZZXMsIG5ld0ZyYW1lT3Bl
bmVyUG9saWN5LCBEb05vdFJlcGxhY2VEb2N1bWVudElmSmF2YVNjcmlwdFVSTCksIHRyaWdnZXJp
bmdFdmVudCk7CisgICAgdXJsU2VsZWN0ZWQoRnJhbWVMb2FkUmVxdWVzdChtX2ZyYW1lLmRvY3Vt
ZW50KCktPnNlY3VyaXR5T3JpZ2luKCksIFJlc291cmNlUmVxdWVzdCh1cmwpLCBwYXNzZWRUYXJn
ZXQsIGxvY2tIaXN0b3J5LCBsb2NrQmFja0ZvcndhcmRMaXN0LCBzaG91bGRTZW5kUmVmZXJyZXIs
IEFsbG93TmF2aWdhdGlvblRvSW52YWxpZFVSTDo6WWVzLCBuZXdGcmFtZU9wZW5lclBvbGljeSwg
RG9Ob3RSZXBsYWNlRG9jdW1lbnRJZkphdmFTY3JpcHRVUkwsIHNob3VsZE9wZW5FeHRlcm5hbFVS
THNQb2xpY3kpLCB0cmlnZ2VyaW5nRXZlbnQpOwogfQogCiB2b2lkIEZyYW1lTG9hZGVyOjp1cmxT
ZWxlY3RlZChjb25zdCBGcmFtZUxvYWRSZXF1ZXN0JiBwYXNzZWRSZXF1ZXN0LCBFdmVudCogdHJp
Z2dlcmluZ0V2ZW50KQpAQCAtNjcxLDcgKzY3MSw3IEBAIHZvaWQgRnJhbWVMb2FkZXI6OnJlY2Vp
dmVkRmlyc3REYXRhKCkKICAgICAgICAgY29tcGxldGVkVVJMID0gbV9mcmFtZS5kb2N1bWVudCgp
LT5jb21wbGV0ZVVSTCh1cmxTdHJpbmcpOwogCiAgICAgaWYgKCFwcm90b2NvbElzSmF2YVNjcmlw
dChjb21wbGV0ZWRVUkwpKQotICAgICAgICBtX2ZyYW1lLm5hdmlnYXRpb25TY2hlZHVsZXIoKS5z
Y2hlZHVsZVJlZGlyZWN0KGRlbGF5LCBjb21wbGV0ZWRVUkwpOworICAgICAgICBtX2ZyYW1lLm5h
dmlnYXRpb25TY2hlZHVsZXIoKS5zY2hlZHVsZVJlZGlyZWN0KG1fZnJhbWUuZG9jdW1lbnQoKSwg
ZGVsYXksIGNvbXBsZXRlZFVSTCk7CiAgICAgZWxzZSB7CiAgICAgICAgIFN0cmluZyBtZXNzYWdl
ID0gIlJlZnVzZWQgdG8gcmVmcmVzaCAiICsgbV9mcmFtZS5kb2N1bWVudCgpLT51cmwoKS5zdHJp
bmdDZW50ZXJFbGxpcHNpemVkVG9MZW5ndGgoKSArICIgdG8gYSBqYXZhc2NyaXB0OiBVUkwiOwog
ICAgICAgICBtX2ZyYW1lLmRvY3VtZW50KCktPmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3Vy
Y2U6OlNlY3VyaXR5LCBNZXNzYWdlTGV2ZWw6OkVycm9yLCBtZXNzYWdlKTsKQEAgLTkxNSw3ICs5
MTUsNyBAQCB2b2lkIEZyYW1lTG9hZGVyOjpsb2FkVVJMSW50b0NoaWxkRnJhbWUoY29uc3QgVVJM
JiB1cmwsIGNvbnN0IFN0cmluZyYgcmVmZXJlciwgRgogICAgICAgICB9CiAgICAgfQogCi0gICAg
RnJhbWVMb2FkUmVxdWVzdCBmcmFtZUxvYWRSZXF1ZXN0KG1fZnJhbWUuZG9jdW1lbnQoKS0+c2Vj
dXJpdHlPcmlnaW4oKSwgUmVzb3VyY2VSZXF1ZXN0KHVybCksICJfc2VsZiIsIExvY2tIaXN0b3J5
OjpObywgTG9ja0JhY2tGb3J3YXJkTGlzdDo6WWVzLCBTaG91bGRTZW5kUmVmZXJyZXI6Ok1heWJl
U2VuZFJlZmVycmVyLCBBbGxvd05hdmlnYXRpb25Ub0ludmFsaWRVUkw6OlllcywgTmV3RnJhbWVP
cGVuZXJQb2xpY3k6OlN1cHByZXNzLCBSZXBsYWNlRG9jdW1lbnRJZkphdmFTY3JpcHRVUkwpOwor
ICAgIEZyYW1lTG9hZFJlcXVlc3QgZnJhbWVMb2FkUmVxdWVzdChtX2ZyYW1lLmRvY3VtZW50KCkt
PnNlY3VyaXR5T3JpZ2luKCksIFJlc291cmNlUmVxdWVzdCh1cmwpLCAiX3NlbGYiLCBMb2NrSGlz
dG9yeTo6Tm8sIExvY2tCYWNrRm9yd2FyZExpc3Q6OlllcywgU2hvdWxkU2VuZFJlZmVycmVyOjpN
YXliZVNlbmRSZWZlcnJlciwgQWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJMOjpZZXMsIE5ld0Zy
YW1lT3BlbmVyUG9saWN5OjpTdXBwcmVzcywgUmVwbGFjZURvY3VtZW50SWZKYXZhU2NyaXB0VVJM
LCBTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5OjpTaG91bGROb3RBbGxvdyk7CiAgICAgY2hp
bGRGcmFtZS0+bG9hZGVyKCkubG9hZFVSTChmcmFtZUxvYWRSZXF1ZXN0LCByZWZlcmVyLCBGcmFt
ZUxvYWRUeXBlOjpSZWRpcmVjdFdpdGhMb2NrZWRCYWNrRm9yd2FyZExpc3QsIDAsIDApOwogfQog
CkBAIC0xMjMwLDcgKzEyMzAsNyBAQCB2b2lkIEZyYW1lTG9hZGVyOjpsb2FkVVJMKGNvbnN0IEZy
YW1lTG9hZFJlcXVlc3QmIGZyYW1lTG9hZFJlcXVlc3QsIGNvbnN0IFN0cmluZwogICAgIGlmICht
X3BhZ2VEaXNtaXNzYWxFdmVudEJlaW5nRGlzcGF0Y2hlZCAhPSBOb0Rpc21pc3NhbCkKICAgICAg
ICAgcmV0dXJuOwogCi0gICAgTmF2aWdhdGlvbkFjdGlvbiBhY3Rpb24ocmVxdWVzdCwgbmV3TG9h
ZFR5cGUsIGlzRm9ybVN1Ym1pc3Npb24sIGV2ZW50KTsKKyAgICBOYXZpZ2F0aW9uQWN0aW9uIGFj
dGlvbihyZXF1ZXN0LCBuZXdMb2FkVHlwZSwgaXNGb3JtU3VibWlzc2lvbiwgZXZlbnQsIGZyYW1l
TG9hZFJlcXVlc3Quc2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSgpKTsKIAogICAgIGlmICgh
dGFyZ2V0RnJhbWUgJiYgIWZyYW1lTmFtZS5pc0VtcHR5KCkpIHsKICAgICAgICAgcG9saWN5Q2hl
Y2tlcigpLmNoZWNrTmV3V2luZG93UG9saWN5KGFjdGlvbiwgcmVxdWVzdCwgZm9ybVN0YXRlLnJl
bGVhc2UoKSwgZnJhbWVOYW1lLCBbdGhpcywgYWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJMLCBv
cGVuZXJQb2xpY3ldKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgUGFzc1JlZlB0cjxG
b3JtU3RhdGU+IGZvcm1TdGF0ZSwgY29uc3QgU3RyaW5nJiBmcmFtZU5hbWUsIGNvbnN0IE5hdmln
YXRpb25BY3Rpb24mIGFjdGlvbiwgYm9vbCBzaG91bGRDb250aW51ZSkgewpAQCAtMTMwNCw3ICsx
MzA0LDggQEAgdm9pZCBGcmFtZUxvYWRlcjo6bG9hZChjb25zdCBGcmFtZUxvYWRSZXF1ZXN0JiBw
YXNzZWRSZXF1ZXN0KQogICAgIH0KIAogICAgIGlmIChyZXF1ZXN0LnNob3VsZENoZWNrTmV3V2lu
ZG93UG9saWN5KCkpIHsKLSAgICAgICAgcG9saWN5Q2hlY2tlcigpLmNoZWNrTmV3V2luZG93UG9s
aWN5KE5hdmlnYXRpb25BY3Rpb24ocmVxdWVzdC5yZXNvdXJjZVJlcXVlc3QoKSwgTmF2aWdhdGlv
blR5cGU6Ok90aGVyKSwgcmVxdWVzdC5yZXNvdXJjZVJlcXVlc3QoKSwgbnVsbHB0ciwgcmVxdWVz
dC5mcmFtZU5hbWUoKSwgW3RoaXNdKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgUGFz
c1JlZlB0cjxGb3JtU3RhdGU+IGZvcm1TdGF0ZSwgY29uc3QgU3RyaW5nJiBmcmFtZU5hbWUsIGNv
bnN0IE5hdmlnYXRpb25BY3Rpb24mIGFjdGlvbiwgYm9vbCBzaG91bGRDb250aW51ZSkgeworICAg
ICAgICBOYXZpZ2F0aW9uQWN0aW9uIGFjdGlvbihyZXF1ZXN0LnJlc291cmNlUmVxdWVzdCgpLCBO
YXZpZ2F0aW9uVHlwZTo6T3RoZXIsIHBhc3NlZFJlcXVlc3Quc2hvdWxkT3BlbkV4dGVybmFsVVJM
c1BvbGljeSgpKTsKKyAgICAgICAgcG9saWN5Q2hlY2tlcigpLmNoZWNrTmV3V2luZG93UG9saWN5
KGFjdGlvbiwgcmVxdWVzdC5yZXNvdXJjZVJlcXVlc3QoKSwgbnVsbHB0ciwgcmVxdWVzdC5mcmFt
ZU5hbWUoKSwgW3RoaXNdKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgUGFzc1JlZlB0
cjxGb3JtU3RhdGU+IGZvcm1TdGF0ZSwgY29uc3QgU3RyaW5nJiBmcmFtZU5hbWUsIGNvbnN0IE5h
dmlnYXRpb25BY3Rpb24mIGFjdGlvbiwgYm9vbCBzaG91bGRDb250aW51ZSkgewogICAgICAgICAg
ICAgY29udGludWVMb2FkQWZ0ZXJOZXdXaW5kb3dQb2xpY3kocmVxdWVzdCwgZm9ybVN0YXRlLCBm
cmFtZU5hbWUsIGFjdGlvbiwgc2hvdWxkQ29udGludWUsIEFsbG93TmF2aWdhdGlvblRvSW52YWxp
ZFVSTDo6WWVzLCBOZXdGcmFtZU9wZW5lclBvbGljeTo6U3VwcHJlc3MpOwogICAgICAgICB9KTsK
IApAQCAtMTMxNSw4ICsxMzE2LDcgQEAgdm9pZCBGcmFtZUxvYWRlcjo6bG9hZChjb25zdCBGcmFt
ZUxvYWRSZXF1ZXN0JiBwYXNzZWRSZXF1ZXN0KQogICAgICAgICByZXF1ZXN0LnNldFN1YnN0aXR1
dGVEYXRhKGRlZmF1bHRTdWJzdGl0dXRlRGF0YUZvclVSTChyZXF1ZXN0LnJlc291cmNlUmVxdWVz
dCgpLnVybCgpKSk7CiAKICAgICBSZWZQdHI8RG9jdW1lbnRMb2FkZXI+IGxvYWRlciA9IG1fY2xp
ZW50LmNyZWF0ZURvY3VtZW50TG9hZGVyKHJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCksIHJlcXVl
c3Quc3Vic3RpdHV0ZURhdGEoKSk7Ci0gICAgaWYgKG1fZnJhbWUuaXNNYWluRnJhbWUoKSkKLSAg
ICAgICAgbG9hZGVyLT5zZXRTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5KHJlcXVlc3Quc2hv
dWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSgpKTsKKyAgICBhcHBseVNob3VsZE9wZW5FeHRlcm5h
bFVSTHNQb2xpY3lUb05ld0RvY3VtZW50TG9hZGVyKCpsb2FkZXIsIHJlcXVlc3Quc2hvdWxkT3Bl
bkV4dGVybmFsVVJMc1BvbGljeSgpKTsKIAogICAgIGxvYWQobG9hZGVyLmdldCgpKTsKIH0KQEAg
LTEzMjQsNiArMTMyNCw4IEBAIHZvaWQgRnJhbWVMb2FkZXI6OmxvYWQoY29uc3QgRnJhbWVMb2Fk
UmVxdWVzdCYgcGFzc2VkUmVxdWVzdCkKIHZvaWQgRnJhbWVMb2FkZXI6OmxvYWRXaXRoTmF2aWdh
dGlvbkFjdGlvbihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IE5hdmlnYXRp
b25BY3Rpb24mIGFjdGlvbiwgTG9ja0hpc3RvcnkgbG9ja0hpc3RvcnksIEZyYW1lTG9hZFR5cGUg
dHlwZSwgUGFzc1JlZlB0cjxGb3JtU3RhdGU+IGZvcm1TdGF0ZSwgQWxsb3dOYXZpZ2F0aW9uVG9J
bnZhbGlkVVJMIGFsbG93TmF2aWdhdGlvblRvSW52YWxpZFVSTCkKIHsKICAgICBSZWZQdHI8RG9j
dW1lbnRMb2FkZXI+IGxvYWRlciA9IG1fY2xpZW50LmNyZWF0ZURvY3VtZW50TG9hZGVyKHJlcXVl
c3QsIGRlZmF1bHRTdWJzdGl0dXRlRGF0YUZvclVSTChyZXF1ZXN0LnVybCgpKSk7CisgICAgYXBw
bHlTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5VG9OZXdEb2N1bWVudExvYWRlcigqbG9hZGVy
LCBhY3Rpb24uc2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSgpKTsKKwogICAgIGlmIChsb2Nr
SGlzdG9yeSA9PSBMb2NrSGlzdG9yeTo6WWVzICYmIG1fZG9jdW1lbnRMb2FkZXIpCiAgICAgICAg
IGxvYWRlci0+c2V0Q2xpZW50UmVkaXJlY3RTb3VyY2VGb3JIaXN0b3J5KG1fZG9jdW1lbnRMb2Fk
ZXItPmRpZENyZWF0ZUdsb2JhbEhpc3RvcnlFbnRyeSgpID8gbV9kb2N1bWVudExvYWRlci0+dXJs
Rm9ySGlzdG9yeSgpLnN0cmluZygpIDogbV9kb2N1bWVudExvYWRlci0+Y2xpZW50UmVkaXJlY3RT
b3VyY2VGb3JIaXN0b3J5KCkpOwogCkBAIC0xNTQzLDYgKzE1NDUsOCBAQCB2b2lkIEZyYW1lTG9h
ZGVyOjpyZWxvYWRXaXRoT3ZlcnJpZGVFbmNvZGluZyhjb25zdCBTdHJpbmcmIGVuY29kaW5nKQog
ICAgIHJlcXVlc3Quc2V0Q2FjaGVQb2xpY3koUmV0dXJuQ2FjaGVEYXRhRWxzZUxvYWQpOwogCiAg
ICAgUmVmUHRyPERvY3VtZW50TG9hZGVyPiBsb2FkZXIgPSBtX2NsaWVudC5jcmVhdGVEb2N1bWVu
dExvYWRlcihyZXF1ZXN0LCBkZWZhdWx0U3Vic3RpdHV0ZURhdGFGb3JVUkwocmVxdWVzdC51cmwo
KSkpOworICAgIGFwcGx5U2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeVRvTmV3RG9jdW1lbnRM
b2FkZXIoKmxvYWRlciwgbV9kb2N1bWVudExvYWRlci0+c2hvdWxkT3BlbkV4dGVybmFsVVJMc1Bv
bGljeVRvUHJvcGFnYXRlKCkpOworCiAgICAgc2V0UG9saWN5RG9jdW1lbnRMb2FkZXIobG9hZGVy
LmdldCgpKTsKIAogICAgIGxvYWRlci0+c2V0T3ZlcnJpZGVFbmNvZGluZyhlbmNvZGluZyk7CkBA
IC0xNTY5LDYgKzE1NzMsNyBAQCB2b2lkIEZyYW1lTG9hZGVyOjpyZWxvYWQoYm9vbCBlbmRUb0Vu
ZFJlbG9hZCkKICAgICAvLyBDcmVhdGUgYSBuZXcgZG9jdW1lbnQgbG9hZGVyIGZvciB0aGUgcmVs
b2FkLCB0aGlzIHdpbGwgYmVjb21lIG1fZG9jdW1lbnRMb2FkZXIgZXZlbnR1YWxseSwKICAgICAv
LyBidXQgZmlyc3QgaXQgaGFzIHRvIGJlIHRoZSAicG9saWN5IiBkb2N1bWVudCBsb2FkZXIsIGFu
ZCB0aGVuIHRoZSAicHJvdmlzaW9uYWwiIGRvY3VtZW50IGxvYWRlci4KICAgICBSZWZQdHI8RG9j
dW1lbnRMb2FkZXI+IGxvYWRlciA9IG1fY2xpZW50LmNyZWF0ZURvY3VtZW50TG9hZGVyKGluaXRp
YWxSZXF1ZXN0LCBkZWZhdWx0U3Vic3RpdHV0ZURhdGFGb3JVUkwoaW5pdGlhbFJlcXVlc3QudXJs
KCkpKTsKKyAgICBhcHBseVNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3lUb05ld0RvY3VtZW50
TG9hZGVyKCpsb2FkZXIsIG1fZG9jdW1lbnRMb2FkZXItPnNob3VsZE9wZW5FeHRlcm5hbFVSTHNQ
b2xpY3lUb1Byb3BhZ2F0ZSgpKTsKIAogICAgIFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCA9IGxv
YWRlci0+cmVxdWVzdCgpOwogCkBAIC0yNjQzLDcgKzI2NDgsNyBAQCB2b2lkIEZyYW1lTG9hZGVy
Ojpsb2FkUG9zdFJlcXVlc3QoY29uc3QgRnJhbWVMb2FkUmVxdWVzdCYgcmVxdWVzdCwgY29uc3Qg
U3RyaW5nJgogICAgIHdvcmtpbmdSZXNvdXJjZVJlcXVlc3Quc2V0SFRUUENvbnRlbnRUeXBlKGNv
bnRlbnRUeXBlKTsKICAgICBhZGRFeHRyYUZpZWxkc1RvUmVxdWVzdCh3b3JraW5nUmVzb3VyY2VS
ZXF1ZXN0LCBsb2FkVHlwZSwgdHJ1ZSk7CiAKLSAgICBOYXZpZ2F0aW9uQWN0aW9uIGFjdGlvbih3
b3JraW5nUmVzb3VyY2VSZXF1ZXN0LCBsb2FkVHlwZSwgdHJ1ZSwgZXZlbnQpOworICAgIE5hdmln
YXRpb25BY3Rpb24gYWN0aW9uKHdvcmtpbmdSZXNvdXJjZVJlcXVlc3QsIGxvYWRUeXBlLCB0cnVl
LCBldmVudCwgcmVxdWVzdC5zaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5KCkpOwogCiAgICAg
aWYgKCFmcmFtZU5hbWUuaXNFbXB0eSgpKSB7CiAgICAgICAgIC8vIFRoZSBzZWFyY2ggZm9yIGEg
dGFyZ2V0IGZyYW1lIGlzIGRvbmUgZWFybGllciBpbiB0aGUgY2FzZSBvZiBmb3JtIHN1Ym1pc3Np
b24uCkBAIC0yOTkxLDcgKzI5OTYsOSBAQCB2b2lkIEZyYW1lTG9hZGVyOjpjb250aW51ZUxvYWRB
ZnRlck5ld1dpbmRvd1BvbGljeShjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlcwogICAgICAg
ICBtYWluRnJhbWUtPmxvYWRlcigpLnNldE9wZW5lcihmcmFtZS5wdHIoKSk7CiAgICAgICAgIG1h
aW5GcmFtZS0+ZG9jdW1lbnQoKS0+c2V0UmVmZXJyZXJQb2xpY3koZnJhbWUtPmRvY3VtZW50KCkt
PnJlZmVycmVyUG9saWN5KCkpOwogICAgIH0KLSAgICBtYWluRnJhbWUtPmxvYWRlcigpLmxvYWRX
aXRoTmF2aWdhdGlvbkFjdGlvbihyZXF1ZXN0LCBOYXZpZ2F0aW9uQWN0aW9uKHJlcXVlc3QpLCBM
b2NrSGlzdG9yeTo6Tm8sIEZyYW1lTG9hZFR5cGU6OlN0YW5kYXJkLCBmb3JtU3RhdGUsIGFsbG93
TmF2aWdhdGlvblRvSW52YWxpZFVSTCk7CisKKyAgICBOYXZpZ2F0aW9uQWN0aW9uIG5ld0FjdGlv
bihyZXF1ZXN0LCBhY3Rpb24uc2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSgpKTsKKyAgICBt
YWluRnJhbWUtPmxvYWRlcigpLmxvYWRXaXRoTmF2aWdhdGlvbkFjdGlvbihyZXF1ZXN0LCBuZXdB
Y3Rpb24sIExvY2tIaXN0b3J5OjpObywgRnJhbWVMb2FkVHlwZTo6U3RhbmRhcmQsIGZvcm1TdGF0
ZSwgYWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJMKTsKIH0KIAogdm9pZCBGcmFtZUxvYWRlcjo6
cmVxdWVzdEZyb21EZWxlZ2F0ZShSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIHVuc2lnbmVkIGxv
bmcmIGlkZW50aWZpZXIsIFJlc291cmNlRXJyb3ImIGVycm9yKQpAQCAtMzQyNSw2ICszNDMyLDE2
IEBAIHZvaWQgRnJhbWVMb2FkZXI6OmNsZWFyVGVzdGluZ092ZXJyaWRlcygpCiAgICAgbV9vdmVy
cmlkZVJlc291cmNlTG9hZFByaW9yaXR5Rm9yVGVzdGluZyA9IE51bGxvcHQ7CiB9CiAKK3ZvaWQg
RnJhbWVMb2FkZXI6OmFwcGx5U2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeVRvTmV3RG9jdW1l
bnRMb2FkZXIoRG9jdW1lbnRMb2FkZXImIGRvY3VtZW50TG9hZGVyLCBTaG91bGRPcGVuRXh0ZXJu
YWxVUkxzUG9saWN5IHByb3BhZ2F0ZWRQb2xpY3kpCit7CisgICAgaWYgKCFtX2ZyYW1lLmlzTWFp
bkZyYW1lKCkpCisgICAgICAgIGRvY3VtZW50TG9hZGVyLnNldFNob3VsZE9wZW5FeHRlcm5hbFVS
THNQb2xpY3koU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeTo6U2hvdWxkTm90QWxsb3cpOwor
ICAgIGVsc2UgaWYgKFNjcmlwdENvbnRyb2xsZXI6OnByb2Nlc3NpbmdVc2VyR2VzdHVyZSgpKQor
ICAgICAgICBkb2N1bWVudExvYWRlci5zZXRTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5KFNo
b3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3k6OlNob3VsZEFsbG93KTsKKyAgICBlbHNlCisgICAg
ICAgIGRvY3VtZW50TG9hZGVyLnNldFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kocHJvcGFn
YXRlZFBvbGljeSk7Cit9CisKIGJvb2wgRnJhbWVMb2FkZXJDbGllbnQ6Omhhc0hUTUxWaWV3KCkg
Y29uc3QKIHsKICAgICByZXR1cm4gdHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9GcmFtZUxvYWRlci5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmgK
aW5kZXggYWJlZjg0My4uM2VhYjNmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L0ZyYW1lTG9hZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmgK
QEAgLTExOSw3ICsxMTksNyBAQCBwdWJsaWM6CiAgICAgdW5zaWduZWQgbG9uZyBsb2FkUmVzb3Vy
Y2VTeW5jaHJvbm91c2x5KGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIFN0b3JlZENyZWRlbnRpYWxz
LCBDbGllbnRDcmVkZW50aWFsUG9saWN5LCBSZXNvdXJjZUVycm9yJiwgUmVzb3VyY2VSZXNwb25z
ZSYsIFJlZlB0cjxTaGFyZWRCdWZmZXI+JiBkYXRhKTsKIAogICAgIHZvaWQgY2hhbmdlTG9jYXRp
b24oY29uc3QgRnJhbWVMb2FkUmVxdWVzdCYpOwotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgdXJs
U2VsZWN0ZWQoY29uc3QgVVJMJiwgY29uc3QgU3RyaW5nJiB0YXJnZXQsIEV2ZW50KiwgTG9ja0hp
c3RvcnksIExvY2tCYWNrRm9yd2FyZExpc3QsIFNob3VsZFNlbmRSZWZlcnJlcik7CisgICAgV0VC
Q09SRV9FWFBPUlQgdm9pZCB1cmxTZWxlY3RlZChjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcmIHRh
cmdldCwgRXZlbnQqLCBMb2NrSGlzdG9yeSwgTG9ja0JhY2tGb3J3YXJkTGlzdCwgU2hvdWxkU2Vu
ZFJlZmVycmVyLCBTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5KTsKICAgICB2b2lkIHN1Ym1p
dEZvcm0oUGFzc1JlZlB0cjxGb3JtU3VibWlzc2lvbj4pOwogCiAgICAgV0VCQ09SRV9FWFBPUlQg
dm9pZCByZWxvYWQoYm9vbCBlbmRUb0VuZFJlbG9hZCA9IGZhbHNlKTsKQEAgLTM3OCw2ICszNzgs
OCBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBkaXNwYXRjaEdsb2JhbE9iamVjdEF2YWlsYWJsZUlu
QWxsV29ybGRzKCk7CiAKKyAgICB2b2lkIGFwcGx5U2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGlj
eVRvTmV3RG9jdW1lbnRMb2FkZXIoRG9jdW1lbnRMb2FkZXImLCBTaG91bGRPcGVuRXh0ZXJuYWxV
UkxzUG9saWN5IHByb3BhZ2F0ZWRQb2xpY3kpOworCiAgICAgRnJhbWUmIG1fZnJhbWU7CiAgICAg
RnJhbWVMb2FkZXJDbGllbnQmIG1fY2xpZW50OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvTmF2aWdhdGlvbkFjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTmF2
aWdhdGlvbkFjdGlvbi5jcHAKaW5kZXggNmQzZTQ2ZS4uN2MxMGRjZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL05hdmlnYXRpb25BY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9OYXZpZ2F0aW9uQWN0aW9uLmNwcApAQCAtNjcsNiArNjcsMTEgQEAgTmF2aWdh
dGlvbkFjdGlvbjo6TmF2aWdhdGlvbkFjdGlvbihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlc291
cmNlUmVxdWVzdCkKIHsKIH0KIAorTmF2aWdhdGlvbkFjdGlvbjo6TmF2aWdhdGlvbkFjdGlvbihj
b25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlc291cmNlUmVxdWVzdCwgU2hvdWxkT3BlbkV4dGVybmFs
VVJMc1BvbGljeSBzaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5KQorICAgIDogTmF2aWdhdGlv
bkFjdGlvbihyZXNvdXJjZVJlcXVlc3QsIE5hdmlnYXRpb25UeXBlOjpPdGhlciwgbnVsbHB0ciwg
c2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSkKK3sKK30KKwogTmF2aWdhdGlvbkFjdGlvbjo6
TmF2aWdhdGlvbkFjdGlvbihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlc291cmNlUmVxdWVzdCwg
TmF2aWdhdGlvblR5cGUgdHlwZSkKICAgICA6IE5hdmlnYXRpb25BY3Rpb24ocmVzb3VyY2VSZXF1
ZXN0LCB0eXBlLCBudWxscHRyLCBTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5OjpTaG91bGRO
b3RBbGxvdykKIHsKQEAgLTkyLDQgKzk3LDE2IEBAIE5hdmlnYXRpb25BY3Rpb246Ok5hdmlnYXRp
b25BY3Rpb24oY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXNvdXJjZVJlcXVlc3QsIEZyYW1lCiB7
CiB9CiAKK05hdmlnYXRpb25BY3Rpb246Ok5hdmlnYXRpb25BY3Rpb24oY29uc3QgUmVzb3VyY2VS
ZXF1ZXN0JiByZXNvdXJjZVJlcXVlc3QsIEZyYW1lTG9hZFR5cGUgZnJhbWVMb2FkVHlwZSwgYm9v
bCBpc0Zvcm1TdWJtaXNzaW9uLCBFdmVudCogZXZlbnQsIFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQ
b2xpY3kgc2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSkKKyAgICA6IE5hdmlnYXRpb25BY3Rp
b24ocmVzb3VyY2VSZXF1ZXN0LCBuYXZpZ2F0aW9uVHlwZShmcmFtZUxvYWRUeXBlLCBpc0Zvcm1T
dWJtaXNzaW9uLCBldmVudCksIGV2ZW50LCBzaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5KQor
eworfQorCitOYXZpZ2F0aW9uQWN0aW9uIE5hdmlnYXRpb25BY3Rpb246OmNvcHlXaXRoU2hvdWxk
T3BlbkV4dGVybmFsVVJMc1BvbGljeShTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5IHNob3Vs
ZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kpIGNvbnN0Cit7CisgICAgTmF2aWdhdGlvbkFjdGlvbiBy
ZXN1bHQoKnRoaXMpOworICAgIHJlc3VsdC5tX3Nob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kg
PSBzaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5OworICAgIHJldHVybiBXVEY6Om1vdmUocmVz
dWx0KTsKK30KKwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL05hdmlnYXRp
b25BY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9OYXZpZ2F0aW9uQWN0aW9uLmgKaW5k
ZXggOWI1MDMwYy4uNDhlODczMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL05h
dmlnYXRpb25BY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTmF2aWdhdGlvbkFj
dGlvbi5oCkBAIC00MywxMCArNDMsMTUgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIGV4
cGxpY2l0IE5hdmlnYXRpb25BY3Rpb24oY29uc3QgUmVzb3VyY2VSZXF1ZXN0Jik7CiAgICAgV0VC
Q09SRV9FWFBPUlQgTmF2aWdhdGlvbkFjdGlvbihjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBOYXZp
Z2F0aW9uVHlwZSk7CiAgICAgV0VCQ09SRV9FWFBPUlQgTmF2aWdhdGlvbkFjdGlvbihjb25zdCBS
ZXNvdXJjZVJlcXVlc3QmLCBGcmFtZUxvYWRUeXBlLCBib29sIGlzRm9ybVN1Ym1pc3Npb24pOwor
CisgICAgTmF2aWdhdGlvbkFjdGlvbihjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBTaG91bGRPcGVu
RXh0ZXJuYWxVUkxzUG9saWN5KTsKICAgICBOYXZpZ2F0aW9uQWN0aW9uKGNvbnN0IFJlc291cmNl
UmVxdWVzdCYsIE5hdmlnYXRpb25UeXBlLCBFdmVudCopOwogICAgIE5hdmlnYXRpb25BY3Rpb24o
Y29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgTmF2aWdhdGlvblR5cGUsIEV2ZW50KiwgU2hvdWxkT3Bl
bkV4dGVybmFsVVJMc1BvbGljeSk7CiAgICAgTmF2aWdhdGlvbkFjdGlvbihjb25zdCBSZXNvdXJj
ZVJlcXVlc3QmLCBOYXZpZ2F0aW9uVHlwZSwgU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSk7
CiAgICAgTmF2aWdhdGlvbkFjdGlvbihjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBGcmFtZUxvYWRU
eXBlLCBib29sIGlzRm9ybVN1Ym1pc3Npb24sIEV2ZW50Kik7CisgICAgTmF2aWdhdGlvbkFjdGlv
bihjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBGcmFtZUxvYWRUeXBlLCBib29sIGlzRm9ybVN1Ym1p
c3Npb24sIEV2ZW50KiwgU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSk7CisKKyAgICBOYXZp
Z2F0aW9uQWN0aW9uIGNvcHlXaXRoU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeShTaG91bGRP
cGVuRXh0ZXJuYWxVUkxzUG9saWN5KSBjb25zdDsKIAogICAgIGJvb2wgaXNFbXB0eSgpIGNvbnN0
IHsgcmV0dXJuIG1fcmVzb3VyY2VSZXF1ZXN0LnVybCgpLmlzRW1wdHkoKTsgfQogCkBAIC01OSw3
ICs2NCw2IEBAIHB1YmxpYzoKICAgICBib29sIHByb2Nlc3NpbmdVc2VyR2VzdHVyZSgpIGNvbnN0
IHsgcmV0dXJuIG1fcHJvY2Vzc2luZ1VzZXJHZXN0dXJlOyB9CiAKICAgICBTaG91bGRPcGVuRXh0
ZXJuYWxVUkxzUG9saWN5IHNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3koKSBjb25zdCB7IHJl
dHVybiBtX3Nob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3k7IH0KLSAgICB2b2lkIHNldFNob3Vs
ZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3koU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSBwb2xp
Y3kpIHsgbV9zaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5ID0gcG9saWN5OyB9CiAKIHByaXZh
dGU6CiAgICAgUmVzb3VyY2VSZXF1ZXN0IG1fcmVzb3VyY2VSZXF1ZXN0OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL05hdmlnYXRpb25TY2hlZHVsZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvbG9hZGVyL05hdmlnYXRpb25TY2hlZHVsZXIuY3BwCmluZGV4IGNmN2JkYWIuLjkxZjdh
NzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9OYXZpZ2F0aW9uU2NoZWR1bGVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTmF2aWdhdGlvblNjaGVkdWxlci5jcHAK
QEAgLTg3LDYgKzg3LDggQEAgcHVibGljOgogcHJvdGVjdGVkOgogICAgIHZvaWQgY2xlYXJVc2Vy
R2VzdHVyZSgpIHsgbV93YXNVc2VyR2VzdHVyZSA9IGZhbHNlOyB9CiAKKyAgICBTaG91bGRPcGVu
RXh0ZXJuYWxVUkxzUG9saWN5IG1fc2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSB7IFNob3Vs
ZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3k6OlNob3VsZE5vdEFsbG93IH07CisKIHByaXZhdGU6CiAg
ICAgZG91YmxlIG1fZGVsYXk7CiAgICAgTG9ja0hpc3RvcnkgbV9sb2NrSGlzdG9yeTsKQEAgLTk4
LDEzICsxMDAsMTUgQEAgcHJpdmF0ZToKIAogY2xhc3MgU2NoZWR1bGVkVVJMTmF2aWdhdGlvbiA6
IHB1YmxpYyBTY2hlZHVsZWROYXZpZ2F0aW9uIHsKIHByb3RlY3RlZDoKLSAgICBTY2hlZHVsZWRV
UkxOYXZpZ2F0aW9uKGRvdWJsZSBkZWxheSwgU2VjdXJpdHlPcmlnaW4qIHNlY3VyaXR5T3JpZ2lu
LCBjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiByZWZlcnJlciwgTG9ja0hpc3RvcnkgbG9j
a0hpc3RvcnksIExvY2tCYWNrRm9yd2FyZExpc3QgbG9ja0JhY2tGb3J3YXJkTGlzdCwgYm9vbCBk
dXJpbmdMb2FkLCBib29sIGlzTG9jYXRpb25DaGFuZ2UpCisgICAgU2NoZWR1bGVkVVJMTmF2aWdh
dGlvbihEb2N1bWVudCogaW5pdGlhdGluZ0RvY3VtZW50LCBkb3VibGUgZGVsYXksIFNlY3VyaXR5
T3JpZ2luKiBzZWN1cml0eU9yaWdpbiwgY29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgcmVm
ZXJyZXIsIExvY2tIaXN0b3J5IGxvY2tIaXN0b3J5LCBMb2NrQmFja0ZvcndhcmRMaXN0IGxvY2tC
YWNrRm9yd2FyZExpc3QsIGJvb2wgZHVyaW5nTG9hZCwgYm9vbCBpc0xvY2F0aW9uQ2hhbmdlKQog
ICAgICAgICA6IFNjaGVkdWxlZE5hdmlnYXRpb24oZGVsYXksIGxvY2tIaXN0b3J5LCBsb2NrQmFj
a0ZvcndhcmRMaXN0LCBkdXJpbmdMb2FkLCBpc0xvY2F0aW9uQ2hhbmdlKQogICAgICAgICAsIG1f
c2VjdXJpdHlPcmlnaW4oc2VjdXJpdHlPcmlnaW4pCiAgICAgICAgICwgbV91cmwodXJsKQogICAg
ICAgICAsIG1fcmVmZXJyZXIocmVmZXJyZXIpCiAgICAgICAgICwgbV9oYXZlVG9sZENsaWVudChm
YWxzZSkKICAgICB7CisgICAgICAgIGlmIChpbml0aWF0aW5nRG9jdW1lbnQpCisgICAgICAgICAg
ICBtX3Nob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kgPSBpbml0aWF0aW5nRG9jdW1lbnQtPmxv
YWRlcigpLT5zaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5VG9Qcm9wYWdhdGUoKTsKICAgICB9
CiAKICAgICB2aXJ0dWFsIHZvaWQgZmlyZShGcmFtZSYgZnJhbWUpIG92ZXJyaWRlCkBAIC0xMTIs
NyArMTE2LDcgQEAgcHJvdGVjdGVkOgogICAgICAgICBVc2VyR2VzdHVyZUluZGljYXRvciBnZXN0
dXJlSW5kaWNhdG9yKHdhc1VzZXJHZXN0dXJlKCkgPyBEZWZpbml0ZWx5UHJvY2Vzc2luZ1VzZXJH
ZXN0dXJlIDogRGVmaW5pdGVseU5vdFByb2Nlc3NpbmdVc2VyR2VzdHVyZSk7CiAKICAgICAgICAg
UmVzb3VyY2VSZXF1ZXN0IHJlc291cmNlUmVxdWVzdChtX3VybCwgbV9yZWZlcnJlciwgVXNlUHJv
dG9jb2xDYWNoZVBvbGljeSk7Ci0gICAgICAgIEZyYW1lTG9hZFJlcXVlc3QgZnJhbWVSZXF1ZXN0
KG1fc2VjdXJpdHlPcmlnaW4uZ2V0KCksIHJlc291cmNlUmVxdWVzdCwgbG9ja0hpc3RvcnkoKSwg
bG9ja0JhY2tGb3J3YXJkTGlzdCgpLCBNYXliZVNlbmRSZWZlcnJlciwgQWxsb3dOYXZpZ2F0aW9u
VG9JbnZhbGlkVVJMOjpZZXMsIE5ld0ZyYW1lT3BlbmVyUG9saWN5OjpBbGxvdyk7CisgICAgICAg
IEZyYW1lTG9hZFJlcXVlc3QgZnJhbWVSZXF1ZXN0KG1fc2VjdXJpdHlPcmlnaW4uZ2V0KCksIHJl
c291cmNlUmVxdWVzdCwgbG9ja0hpc3RvcnkoKSwgbG9ja0JhY2tGb3J3YXJkTGlzdCgpLCBNYXli
ZVNlbmRSZWZlcnJlciwgQWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJMOjpZZXMsIE5ld0ZyYW1l
T3BlbmVyUG9saWN5OjpBbGxvdywgbV9zaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5KTsKIAog
ICAgICAgICBmcmFtZS5sb2FkZXIoKS5jaGFuZ2VMb2NhdGlvbihmcmFtZVJlcXVlc3QpOwogICAg
IH0KQEAgLTE1NCw4ICsxNTgsOCBAQCBwcml2YXRlOgogCiBjbGFzcyBTY2hlZHVsZWRSZWRpcmVj
dCA6IHB1YmxpYyBTY2hlZHVsZWRVUkxOYXZpZ2F0aW9uIHsKIHB1YmxpYzoKLSAgICBTY2hlZHVs
ZWRSZWRpcmVjdChkb3VibGUgZGVsYXksIFNlY3VyaXR5T3JpZ2luKiBzZWN1cml0eU9yaWdpbiwg
Y29uc3QgVVJMJiB1cmwsIExvY2tIaXN0b3J5IGxvY2tIaXN0b3J5LCBMb2NrQmFja0ZvcndhcmRM
aXN0IGxvY2tCYWNrRm9yd2FyZExpc3QpCi0gICAgICAgIDogU2NoZWR1bGVkVVJMTmF2aWdhdGlv
bihkZWxheSwgc2VjdXJpdHlPcmlnaW4sIHVybCwgU3RyaW5nKCksIGxvY2tIaXN0b3J5LCBsb2Nr
QmFja0ZvcndhcmRMaXN0LCBmYWxzZSwgZmFsc2UpCisgICAgU2NoZWR1bGVkUmVkaXJlY3QoRG9j
dW1lbnQqIGluaXRpYXRpbmdEb2N1bWVudCwgZG91YmxlIGRlbGF5LCBTZWN1cml0eU9yaWdpbiog
c2VjdXJpdHlPcmlnaW4sIGNvbnN0IFVSTCYgdXJsLCBMb2NrSGlzdG9yeSBsb2NrSGlzdG9yeSwg
TG9ja0JhY2tGb3J3YXJkTGlzdCBsb2NrQmFja0ZvcndhcmRMaXN0KQorICAgICAgICA6IFNjaGVk
dWxlZFVSTE5hdmlnYXRpb24oaW5pdGlhdGluZ0RvY3VtZW50LCBkZWxheSwgc2VjdXJpdHlPcmln
aW4sIHVybCwgU3RyaW5nKCksIGxvY2tIaXN0b3J5LCBsb2NrQmFja0ZvcndhcmRMaXN0LCBmYWxz
ZSwgZmFsc2UpCiAgICAgewogICAgICAgICBjbGVhclVzZXJHZXN0dXJlKCk7CiAgICAgfQpAQCAt
MTcwLDcgKzE3NCw3IEBAIHB1YmxpYzoKICAgICAgICAgVXNlckdlc3R1cmVJbmRpY2F0b3IgZ2Vz
dHVyZUluZGljYXRvcih3YXNVc2VyR2VzdHVyZSgpID8gRGVmaW5pdGVseVByb2Nlc3NpbmdVc2Vy
R2VzdHVyZSA6IERlZmluaXRlbHlOb3RQcm9jZXNzaW5nVXNlckdlc3R1cmUpOwogICAgICAgICBi
b29sIHJlZnJlc2ggPSBlcXVhbElnbm9yaW5nRnJhZ21lbnRJZGVudGlmaWVyKGZyYW1lLmRvY3Vt
ZW50KCktPnVybCgpLCB1cmwoKSk7CiAgICAgICAgIFJlc291cmNlUmVxdWVzdCByZXNvdXJjZVJl
cXVlc3QodXJsKCksIHJlZmVycmVyKCksIHJlZnJlc2ggPyBSZWxvYWRJZ25vcmluZ0NhY2hlRGF0
YSA6IFVzZVByb3RvY29sQ2FjaGVQb2xpY3kpOwotICAgICAgICBGcmFtZUxvYWRSZXF1ZXN0IGZy
YW1lUmVxdWVzdChzZWN1cml0eU9yaWdpbigpLCByZXNvdXJjZVJlcXVlc3QsIGxvY2tIaXN0b3J5
KCksIGxvY2tCYWNrRm9yd2FyZExpc3QoKSwgTWF5YmVTZW5kUmVmZXJyZXIsIEFsbG93TmF2aWdh
dGlvblRvSW52YWxpZFVSTDo6Tm8sIE5ld0ZyYW1lT3BlbmVyUG9saWN5OjpBbGxvdyk7CisgICAg
ICAgIEZyYW1lTG9hZFJlcXVlc3QgZnJhbWVSZXF1ZXN0KHNlY3VyaXR5T3JpZ2luKCksIHJlc291
cmNlUmVxdWVzdCwgbG9ja0hpc3RvcnkoKSwgbG9ja0JhY2tGb3J3YXJkTGlzdCgpLCBNYXliZVNl
bmRSZWZlcnJlciwgQWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJMOjpObywgTmV3RnJhbWVPcGVu
ZXJQb2xpY3k6OkFsbG93LCBtX3Nob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kpOwogCiAgICAg
ICAgIGZyYW1lLmxvYWRlcigpLmNoYW5nZUxvY2F0aW9uKGZyYW1lUmVxdWVzdCk7CiAgICAgfQpA
QCAtMTc4LDIzICsxODIsMjMgQEAgcHVibGljOgogCiBjbGFzcyBTY2hlZHVsZWRMb2NhdGlvbkNo
YW5nZSA6IHB1YmxpYyBTY2hlZHVsZWRVUkxOYXZpZ2F0aW9uIHsKIHB1YmxpYzoKLSAgICBTY2hl
ZHVsZWRMb2NhdGlvbkNoYW5nZShTZWN1cml0eU9yaWdpbiogc2VjdXJpdHlPcmlnaW4sIGNvbnN0
IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIHJlZmVycmVyLCBMb2NrSGlzdG9yeSBsb2NrSGlzdG9y
eSwgTG9ja0JhY2tGb3J3YXJkTGlzdCBsb2NrQmFja0ZvcndhcmRMaXN0LCBib29sIGR1cmluZ0xv
YWQpCi0gICAgICAgIDogU2NoZWR1bGVkVVJMTmF2aWdhdGlvbigwLjAsIHNlY3VyaXR5T3JpZ2lu
LCB1cmwsIHJlZmVycmVyLCBsb2NrSGlzdG9yeSwgbG9ja0JhY2tGb3J3YXJkTGlzdCwgZHVyaW5n
TG9hZCwgdHJ1ZSkgeyB9CisgICAgU2NoZWR1bGVkTG9jYXRpb25DaGFuZ2UoRG9jdW1lbnQqIGlu
aXRpYXRpbmdEb2N1bWVudCwgU2VjdXJpdHlPcmlnaW4qIHNlY3VyaXR5T3JpZ2luLCBjb25zdCBV
UkwmIHVybCwgY29uc3QgU3RyaW5nJiByZWZlcnJlciwgTG9ja0hpc3RvcnkgbG9ja0hpc3Rvcnks
IExvY2tCYWNrRm9yd2FyZExpc3QgbG9ja0JhY2tGb3J3YXJkTGlzdCwgYm9vbCBkdXJpbmdMb2Fk
KQorICAgICAgICA6IFNjaGVkdWxlZFVSTE5hdmlnYXRpb24oaW5pdGlhdGluZ0RvY3VtZW50LCAw
LjAsIHNlY3VyaXR5T3JpZ2luLCB1cmwsIHJlZmVycmVyLCBsb2NrSGlzdG9yeSwgbG9ja0JhY2tG
b3J3YXJkTGlzdCwgZHVyaW5nTG9hZCwgdHJ1ZSkgeyB9CiAKICAgICB2aXJ0dWFsIHZvaWQgZmly
ZShGcmFtZSYgZnJhbWUpIG92ZXJyaWRlCiAgICAgewogICAgICAgICBVc2VyR2VzdHVyZUluZGlj
YXRvciBnZXN0dXJlSW5kaWNhdG9yKHdhc1VzZXJHZXN0dXJlKCkgPyBEZWZpbml0ZWx5UHJvY2Vz
c2luZ1VzZXJHZXN0dXJlIDogRGVmaW5pdGVseU5vdFByb2Nlc3NpbmdVc2VyR2VzdHVyZSk7CiAK
ICAgICAgICAgUmVzb3VyY2VSZXF1ZXN0IHJlc291cmNlUmVxdWVzdCh1cmwoKSwgcmVmZXJyZXIo
KSwgVXNlUHJvdG9jb2xDYWNoZVBvbGljeSk7Ci0gICAgICAgIEZyYW1lTG9hZFJlcXVlc3QgZnJh
bWVSZXF1ZXN0KHNlY3VyaXR5T3JpZ2luKCksIHJlc291cmNlUmVxdWVzdCwgbG9ja0hpc3Rvcnko
KSwgbG9ja0JhY2tGb3J3YXJkTGlzdCgpLCBNYXliZVNlbmRSZWZlcnJlciwgQWxsb3dOYXZpZ2F0
aW9uVG9JbnZhbGlkVVJMOjpObywgTmV3RnJhbWVPcGVuZXJQb2xpY3k6OkFsbG93KTsKKyAgICAg
ICAgRnJhbWVMb2FkUmVxdWVzdCBmcmFtZVJlcXVlc3Qoc2VjdXJpdHlPcmlnaW4oKSwgcmVzb3Vy
Y2VSZXF1ZXN0LCBsb2NrSGlzdG9yeSgpLCBsb2NrQmFja0ZvcndhcmRMaXN0KCksIE1heWJlU2Vu
ZFJlZmVycmVyLCBBbGxvd05hdmlnYXRpb25Ub0ludmFsaWRVUkw6Ok5vLCBOZXdGcmFtZU9wZW5l
clBvbGljeTo6QWxsb3csIG1fc2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSk7CiAgICAgICAg
IGZyYW1lLmxvYWRlcigpLmNoYW5nZUxvY2F0aW9uKGZyYW1lUmVxdWVzdCk7CiAgICAgfQogfTsK
IAogY2xhc3MgU2NoZWR1bGVkUmVmcmVzaCA6IHB1YmxpYyBTY2hlZHVsZWRVUkxOYXZpZ2F0aW9u
IHsKIHB1YmxpYzoKLSAgICBTY2hlZHVsZWRSZWZyZXNoKFNlY3VyaXR5T3JpZ2luKiBzZWN1cml0
eU9yaWdpbiwgY29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgcmVmZXJyZXIpCi0gICAgICAg
IDogU2NoZWR1bGVkVVJMTmF2aWdhdGlvbigwLjAsIHNlY3VyaXR5T3JpZ2luLCB1cmwsIHJlZmVy
cmVyLCBMb2NrSGlzdG9yeTo6WWVzLCBMb2NrQmFja0ZvcndhcmRMaXN0OjpZZXMsIGZhbHNlLCB0
cnVlKQorICAgIFNjaGVkdWxlZFJlZnJlc2goRG9jdW1lbnQqIGluaXRpYXRpbmdEb2N1bWVudCwg
U2VjdXJpdHlPcmlnaW4qIHNlY3VyaXR5T3JpZ2luLCBjb25zdCBVUkwmIHVybCwgY29uc3QgU3Ry
aW5nJiByZWZlcnJlcikKKyAgICAgICAgOiBTY2hlZHVsZWRVUkxOYXZpZ2F0aW9uKGluaXRpYXRp
bmdEb2N1bWVudCwgMC4wLCBzZWN1cml0eU9yaWdpbiwgdXJsLCByZWZlcnJlciwgTG9ja0hpc3Rv
cnk6OlllcywgTG9ja0JhY2tGb3J3YXJkTGlzdDo6WWVzLCBmYWxzZSwgdHJ1ZSkKICAgICB7CiAg
ICAgfQogCkBAIC0yMDMsNyArMjA3LDcgQEAgcHVibGljOgogICAgICAgICBVc2VyR2VzdHVyZUlu
ZGljYXRvciBnZXN0dXJlSW5kaWNhdG9yKHdhc1VzZXJHZXN0dXJlKCkgPyBEZWZpbml0ZWx5UHJv
Y2Vzc2luZ1VzZXJHZXN0dXJlIDogRGVmaW5pdGVseU5vdFByb2Nlc3NpbmdVc2VyR2VzdHVyZSk7
CiAKICAgICAgICAgUmVzb3VyY2VSZXF1ZXN0IHJlc291cmNlUmVxdWVzdCh1cmwoKSwgcmVmZXJy
ZXIoKSwgUmVsb2FkSWdub3JpbmdDYWNoZURhdGEpOwotICAgICAgICBGcmFtZUxvYWRSZXF1ZXN0
IGZyYW1lUmVxdWVzdChzZWN1cml0eU9yaWdpbigpLCByZXNvdXJjZVJlcXVlc3QsIGxvY2tIaXN0
b3J5KCksIGxvY2tCYWNrRm9yd2FyZExpc3QoKSwgTWF5YmVTZW5kUmVmZXJyZXIsIEFsbG93TmF2
aWdhdGlvblRvSW52YWxpZFVSTDo6WWVzLCBOZXdGcmFtZU9wZW5lclBvbGljeTo6QWxsb3cpOwor
ICAgICAgICBGcmFtZUxvYWRSZXF1ZXN0IGZyYW1lUmVxdWVzdChzZWN1cml0eU9yaWdpbigpLCBy
ZXNvdXJjZVJlcXVlc3QsIGxvY2tIaXN0b3J5KCksIGxvY2tCYWNrRm9yd2FyZExpc3QoKSwgTWF5
YmVTZW5kUmVmZXJyZXIsIEFsbG93TmF2aWdhdGlvblRvSW52YWxpZFVSTDo6WWVzLCBOZXdGcmFt
ZU9wZW5lclBvbGljeTo6QWxsb3csIG1fc2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSk7CiAg
ICAgICAgIGZyYW1lLmxvYWRlcigpLmNoYW5nZUxvY2F0aW9uKGZyYW1lUmVxdWVzdCk7CiAgICAg
fQogfTsKQEAgLTIyMyw3ICsyMjcsNyBAQCBwdWJsaWM6CiAgICAgICAgIGlmICghbV9oaXN0b3J5
U3RlcHMpIHsKICAgICAgICAgICAgIC8vIFNwZWNpYWwgY2FzZSBmb3IgZ28oMCkgZnJvbSBhIGZy
YW1lIC0+IHJlbG9hZCBvbmx5IHRoZSBmcmFtZQogICAgICAgICAgICAgLy8gVG8gZm9sbG93IEZp
cmVmb3ggYW5kIElFJ3MgYmVoYXZpb3IsIGhpc3RvcnkgcmVsb2FkIGNhbiBvbmx5IG5hdmlnYXRl
IHRoZSBzZWxmIGZyYW1lLgotICAgICAgICAgICAgZnJhbWUubG9hZGVyKCkudXJsU2VsZWN0ZWQo
ZnJhbWUuZG9jdW1lbnQoKS0+dXJsKCksICJfc2VsZiIsIDAsIGxvY2tIaXN0b3J5KCksIGxvY2tC
YWNrRm9yd2FyZExpc3QoKSwgTWF5YmVTZW5kUmVmZXJyZXIpOworICAgICAgICAgICAgZnJhbWUu
bG9hZGVyKCkudXJsU2VsZWN0ZWQoZnJhbWUuZG9jdW1lbnQoKS0+dXJsKCksICJfc2VsZiIsIDAs
IGxvY2tIaXN0b3J5KCksIGxvY2tCYWNrRm9yd2FyZExpc3QoKSwgTWF5YmVTZW5kUmVmZXJyZXIs
IG1fc2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSk7CiAgICAgICAgICAgICByZXR1cm47CiAg
ICAgICAgIH0KICAgICAgICAgCkBAIC0yNDQsNiArMjQ4LDkgQEAgcHVibGljOgogICAgICAgICAs
IG1faGF2ZVRvbGRDbGllbnQoZmFsc2UpCiAgICAgewogICAgICAgICBBU1NFUlQobV9zdWJtaXNz
aW9uLT5zdGF0ZSgpKTsKKworICAgICAgICBpZiAoRG9jdW1lbnQqIGRvY3VtZW50ID0gc3VibWlz
c2lvbi0+c3RhdGUoKS0+c291cmNlRG9jdW1lbnQoKSkKKyAgICAgICAgICAgIG1fc2hvdWxkT3Bl
bkV4dGVybmFsVVJMc1BvbGljeSA9IGRvY3VtZW50LT5sb2FkZXIoKS0+c2hvdWxkT3BlbkV4dGVy
bmFsVVJMc1BvbGljeVRvUHJvcGFnYXRlKCk7CiAgICAgfQogCiAgICAgdmlydHVhbCB2b2lkIGZp
cmUoRnJhbWUmIGZyYW1lKSBvdmVycmlkZQpAQCAtMjU3LDcgKzI2NCw3IEBAIHB1YmxpYzoKICAg
ICAgICAgRG9jdW1lbnQqIHJlcXVlc3RpbmdEb2N1bWVudCA9IG1fc3VibWlzc2lvbi0+c3RhdGUo
KS0+c291cmNlRG9jdW1lbnQoKTsKICAgICAgICAgaWYgKCFyZXF1ZXN0aW5nRG9jdW1lbnQtPmNh
bk5hdmlnYXRlKCZmcmFtZSkpCiAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIEZyYW1lTG9h
ZFJlcXVlc3QgZnJhbWVSZXF1ZXN0KHJlcXVlc3RpbmdEb2N1bWVudC0+c2VjdXJpdHlPcmlnaW4o
KSwgbG9ja0hpc3RvcnkoKSwgbG9ja0JhY2tGb3J3YXJkTGlzdCgpLCBNYXliZVNlbmRSZWZlcnJl
ciwgQWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJMOjpZZXMsIE5ld0ZyYW1lT3BlbmVyUG9saWN5
OjpBbGxvdyk7CisgICAgICAgIEZyYW1lTG9hZFJlcXVlc3QgZnJhbWVSZXF1ZXN0KHJlcXVlc3Rp
bmdEb2N1bWVudC0+c2VjdXJpdHlPcmlnaW4oKSwgbG9ja0hpc3RvcnkoKSwgbG9ja0JhY2tGb3J3
YXJkTGlzdCgpLCBNYXliZVNlbmRSZWZlcnJlciwgQWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJM
OjpZZXMsIE5ld0ZyYW1lT3BlbmVyUG9saWN5OjpBbGxvdywgbV9zaG91bGRPcGVuRXh0ZXJuYWxV
UkxzUG9saWN5KTsKICAgICAgICAgbV9zdWJtaXNzaW9uLT5wb3B1bGF0ZUZyYW1lTG9hZFJlcXVl
c3QoZnJhbWVSZXF1ZXN0KTsKICAgICAgICAgZnJhbWUubG9hZGVyKCkubG9hZEZyYW1lUmVxdWVz
dChmcmFtZVJlcXVlc3QsIG1fc3VibWlzc2lvbi0+ZXZlbnQoKSwgbV9zdWJtaXNzaW9uLT5zdGF0
ZSgpKTsKICAgICB9CkBAIC0zMDMsNyArMzEwLDcgQEAgcHVibGljOgogICAgIHZvaWQgZmlyZShG
cmFtZSYgZnJhbWUpIG92ZXJyaWRlCiAgICAgewogICAgICAgICBVc2VyR2VzdHVyZUluZGljYXRv
ciBnZXN0dXJlSW5kaWNhdG9yIHsgd2FzVXNlckdlc3R1cmUoKSA/IERlZmluaXRlbHlQcm9jZXNz
aW5nVXNlckdlc3R1cmUgOiBEZWZpbml0ZWx5Tm90UHJvY2Vzc2luZ1VzZXJHZXN0dXJlIH07Ci0g
ICAgICAgIGZyYW1lLmxvYWRlcigpLmxvYWQoRnJhbWVMb2FkUmVxdWVzdCB7ICZmcmFtZSwgbV9i
YXNlVVJMLCBtX3N1YnN0aXR1dGVEYXRhIH0pOworICAgICAgICBmcmFtZS5sb2FkZXIoKS5sb2Fk
KEZyYW1lTG9hZFJlcXVlc3QgeyAmZnJhbWUsIG1fYmFzZVVSTCwgbV9zaG91bGRPcGVuRXh0ZXJu
YWxVUkxzUG9saWN5LCBtX3N1YnN0aXR1dGVEYXRhIH0pOwogICAgIH0KIAogcHJpdmF0ZToKQEAg
LTM1Myw3ICszNjAsNyBAQCBpbmxpbmUgYm9vbCBOYXZpZ2F0aW9uU2NoZWR1bGVyOjpzaG91bGRT
Y2hlZHVsZU5hdmlnYXRpb24oY29uc3QgVVJMJiB1cmwpIGNvbnN0CiAgICAgcmV0dXJuIE5hdmln
YXRpb25EaXNhYmxlckZvckJlZm9yZVVubG9hZDo6aXNOYXZpZ2F0aW9uQWxsb3dlZCgpOwogfQog
Ci12b2lkIE5hdmlnYXRpb25TY2hlZHVsZXI6OnNjaGVkdWxlUmVkaXJlY3QoZG91YmxlIGRlbGF5
LCBjb25zdCBVUkwmIHVybCkKK3ZvaWQgTmF2aWdhdGlvblNjaGVkdWxlcjo6c2NoZWR1bGVSZWRp
cmVjdChEb2N1bWVudCogaW5pdGlhdGluZ0RvY3VtZW50LCBkb3VibGUgZGVsYXksIGNvbnN0IFVS
TCYgdXJsKQogewogICAgIGlmICghc2hvdWxkU2NoZWR1bGVOYXZpZ2F0aW9uKHVybCkpCiAgICAg
ICAgIHJldHVybjsKQEAgLTM2NSw3ICszNzIsNyBAQCB2b2lkIE5hdmlnYXRpb25TY2hlZHVsZXI6
OnNjaGVkdWxlUmVkaXJlY3QoZG91YmxlIGRlbGF5LCBjb25zdCBVUkwmIHVybCkKICAgICAvLyBX
ZSB3YW50IGEgbmV3IGJhY2svZm9yd2FyZCBsaXN0IGl0ZW0gaWYgdGhlIHJlZnJlc2ggdGltZW91
dCBpcyA+IDEgc2Vjb25kLgogICAgIGlmICghbV9yZWRpcmVjdCB8fCBkZWxheSA8PSBtX3JlZGly
ZWN0LT5kZWxheSgpKSB7CiAgICAgICAgIExvY2tCYWNrRm9yd2FyZExpc3QgbG9ja0JhY2tGb3J3
YXJkTGlzdCA9IGRlbGF5IDw9IDEgPyBMb2NrQmFja0ZvcndhcmRMaXN0OjpZZXMgOiBMb2NrQmFj
a0ZvcndhcmRMaXN0OjpObzsKLSAgICAgICAgc2NoZWR1bGUoc3RkOjptYWtlX3VuaXF1ZTxTY2hl
ZHVsZWRSZWRpcmVjdD4oZGVsYXksIG1fZnJhbWUuZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4o
KSwgdXJsLCBMb2NrSGlzdG9yeTo6WWVzLCBsb2NrQmFja0ZvcndhcmRMaXN0KSk7CisgICAgICAg
IHNjaGVkdWxlKHN0ZDo6bWFrZV91bmlxdWU8U2NoZWR1bGVkUmVkaXJlY3Q+KGluaXRpYXRpbmdE
b2N1bWVudCwgZGVsYXksIG1fZnJhbWUuZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKSwgdXJs
LCBMb2NrSGlzdG9yeTo6WWVzLCBsb2NrQmFja0ZvcndhcmRMaXN0KSk7CiAgICAgfQogfQogCkBA
IC0zODcsNyArMzk0LDcgQEAgTG9ja0JhY2tGb3J3YXJkTGlzdCBOYXZpZ2F0aW9uU2NoZWR1bGVy
OjptdXN0TG9ja0JhY2tGb3J3YXJkTGlzdChGcmFtZSYgdGFyZ2V0RnIKICAgICByZXR1cm4gTG9j
a0JhY2tGb3J3YXJkTGlzdDo6Tm87CiB9CiAKLXZvaWQgTmF2aWdhdGlvblNjaGVkdWxlcjo6c2No
ZWR1bGVMb2NhdGlvbkNoYW5nZShTZWN1cml0eU9yaWdpbiogc2VjdXJpdHlPcmlnaW4sIGNvbnN0
IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIHJlZmVycmVyLCBMb2NrSGlzdG9yeSBsb2NrSGlzdG9y
eSwgTG9ja0JhY2tGb3J3YXJkTGlzdCBsb2NrQmFja0ZvcndhcmRMaXN0KQordm9pZCBOYXZpZ2F0
aW9uU2NoZWR1bGVyOjpzY2hlZHVsZUxvY2F0aW9uQ2hhbmdlKERvY3VtZW50KiBpbml0aWF0aW5n
RG9jdW1lbnQsIFNlY3VyaXR5T3JpZ2luKiBzZWN1cml0eU9yaWdpbiwgY29uc3QgVVJMJiB1cmws
IGNvbnN0IFN0cmluZyYgcmVmZXJyZXIsIExvY2tIaXN0b3J5IGxvY2tIaXN0b3J5LCBMb2NrQmFj
a0ZvcndhcmRMaXN0IGxvY2tCYWNrRm9yd2FyZExpc3QpCiB7CiAgICAgaWYgKCFzaG91bGRTY2hl
ZHVsZU5hdmlnYXRpb24odXJsKSkKICAgICAgICAgcmV0dXJuOwpAQCAtNDAxLDcgKzQwOCwxMCBA
QCB2b2lkIE5hdmlnYXRpb25TY2hlZHVsZXI6OnNjaGVkdWxlTG9jYXRpb25DaGFuZ2UoU2VjdXJp
dHlPcmlnaW4qIHNlY3VyaXR5T3JpZ2luLAogICAgIC8vIGZyYWdtZW50IHBhcnQsIHdlIGRvbid0
IG5lZWQgdG8gc2NoZWR1bGUgdGhlIGxvY2F0aW9uIGNoYW5nZS4KICAgICBpZiAodXJsLmhhc0Zy
YWdtZW50SWRlbnRpZmllcigpICYmIGVxdWFsSWdub3JpbmdGcmFnbWVudElkZW50aWZpZXIobV9m
cmFtZS5kb2N1bWVudCgpLT51cmwoKSwgdXJsKSkgewogICAgICAgICBSZXNvdXJjZVJlcXVlc3Qg
cmVzb3VyY2VSZXF1ZXN0KG1fZnJhbWUuZG9jdW1lbnQoKS0+Y29tcGxldGVVUkwodXJsKSwgcmVm
ZXJyZXIsIFVzZVByb3RvY29sQ2FjaGVQb2xpY3kpOwotICAgICAgICBGcmFtZUxvYWRSZXF1ZXN0
IGZyYW1lUmVxdWVzdChzZWN1cml0eU9yaWdpbiwgcmVzb3VyY2VSZXF1ZXN0LCBlbXB0eVN0cmlu
ZygpLCBsb2NrSGlzdG9yeSwgbG9ja0JhY2tGb3J3YXJkTGlzdCwgTWF5YmVTZW5kUmVmZXJyZXIs
IEFsbG93TmF2aWdhdGlvblRvSW52YWxpZFVSTDo6Tm8sIE5ld0ZyYW1lT3BlbmVyUG9saWN5OjpB
bGxvdywgUmVwbGFjZURvY3VtZW50SWZKYXZhU2NyaXB0VVJMKTsKKyAgICAgICAgU2hvdWxkT3Bl
bkV4dGVybmFsVVJMc1BvbGljeSBzaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5ID0gU2hvdWxk
T3BlbkV4dGVybmFsVVJMc1BvbGljeTo6U2hvdWxkTm90QWxsb3c7CisgICAgICAgIGlmIChpbml0
aWF0aW5nRG9jdW1lbnQpCisgICAgICAgICAgICBzaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5
ID0gaW5pdGlhdGluZ0RvY3VtZW50LT5sb2FkZXIoKS0+c2hvdWxkT3BlbkV4dGVybmFsVVJMc1Bv
bGljeVRvUHJvcGFnYXRlKCk7CisgICAgICAgIEZyYW1lTG9hZFJlcXVlc3QgZnJhbWVSZXF1ZXN0
KHNlY3VyaXR5T3JpZ2luLCByZXNvdXJjZVJlcXVlc3QsIGVtcHR5U3RyaW5nKCksIGxvY2tIaXN0
b3J5LCBsb2NrQmFja0ZvcndhcmRMaXN0LCBNYXliZVNlbmRSZWZlcnJlciwgQWxsb3dOYXZpZ2F0
aW9uVG9JbnZhbGlkVVJMOjpObywgTmV3RnJhbWVPcGVuZXJQb2xpY3k6OkFsbG93LCBSZXBsYWNl
RG9jdW1lbnRJZkphdmFTY3JpcHRVUkwsIHNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kpOwog
ICAgICAgICBsb2FkZXIuY2hhbmdlTG9jYXRpb24oZnJhbWVSZXF1ZXN0KTsKICAgICAgICAgcmV0
dXJuOwogICAgIH0KQEAgLTQxMCw3ICs0MjAsNyBAQCB2b2lkIE5hdmlnYXRpb25TY2hlZHVsZXI6
OnNjaGVkdWxlTG9jYXRpb25DaGFuZ2UoU2VjdXJpdHlPcmlnaW4qIHNlY3VyaXR5T3JpZ2luLAog
ICAgIC8vIFRoaXMgbWF5IGhhcHBlbiB3aGVuIGEgZnJhbWUgY2hhbmdlcyB0aGUgbG9jYXRpb24g
b2YgYW5vdGhlciBmcmFtZS4KICAgICBib29sIGR1cmluZ0xvYWQgPSAhbG9hZGVyLnN0YXRlTWFj
aGluZSgpLmNvbW1pdHRlZEZpcnN0UmVhbERvY3VtZW50TG9hZCgpOwogCi0gICAgc2NoZWR1bGUo
c3RkOjptYWtlX3VuaXF1ZTxTY2hlZHVsZWRMb2NhdGlvbkNoYW5nZT4oc2VjdXJpdHlPcmlnaW4s
IHVybCwgcmVmZXJyZXIsIGxvY2tIaXN0b3J5LCBsb2NrQmFja0ZvcndhcmRMaXN0LCBkdXJpbmdM
b2FkKSk7CisgICAgc2NoZWR1bGUoc3RkOjptYWtlX3VuaXF1ZTxTY2hlZHVsZWRMb2NhdGlvbkNo
YW5nZT4oaW5pdGlhdGluZ0RvY3VtZW50LCBzZWN1cml0eU9yaWdpbiwgdXJsLCByZWZlcnJlciwg
bG9ja0hpc3RvcnksIGxvY2tCYWNrRm9yd2FyZExpc3QsIGR1cmluZ0xvYWQpKTsKIH0KIAogdm9p
ZCBOYXZpZ2F0aW9uU2NoZWR1bGVyOjpzY2hlZHVsZUZvcm1TdWJtaXNzaW9uKFBhc3NSZWZQdHI8
Rm9ybVN1Ym1pc3Npb24+IHN1Ym1pc3Npb24pCkBAIC00MzYsNyArNDQ2LDcgQEAgdm9pZCBOYXZp
Z2F0aW9uU2NoZWR1bGVyOjpzY2hlZHVsZUZvcm1TdWJtaXNzaW9uKFBhc3NSZWZQdHI8Rm9ybVN1
Ym1pc3Npb24+IHN1Ym0KICAgICBzY2hlZHVsZShzdGQ6Om1ha2VfdW5pcXVlPFNjaGVkdWxlZEZv
cm1TdWJtaXNzaW9uPihzdWJtaXNzaW9uLCBsb2NrQmFja0ZvcndhcmRMaXN0LCBkdXJpbmdMb2Fk
KSk7CiB9CiAKLXZvaWQgTmF2aWdhdGlvblNjaGVkdWxlcjo6c2NoZWR1bGVSZWZyZXNoKCkKK3Zv
aWQgTmF2aWdhdGlvblNjaGVkdWxlcjo6c2NoZWR1bGVSZWZyZXNoKERvY3VtZW50KiBpbml0aWF0
aW5nRG9jdW1lbnQpCiB7CiAgICAgaWYgKCFzaG91bGRTY2hlZHVsZU5hdmlnYXRpb24oKSkKICAg
ICAgICAgcmV0dXJuOwpAQCAtNDQ0LDcgKzQ1NCw3IEBAIHZvaWQgTmF2aWdhdGlvblNjaGVkdWxl
cjo6c2NoZWR1bGVSZWZyZXNoKCkKICAgICBpZiAodXJsLmlzRW1wdHkoKSkKICAgICAgICAgcmV0
dXJuOwogCi0gICAgc2NoZWR1bGUoc3RkOjptYWtlX3VuaXF1ZTxTY2hlZHVsZWRSZWZyZXNoPiht
X2ZyYW1lLmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCksIHVybCwgbV9mcmFtZS5sb2FkZXIo
KS5vdXRnb2luZ1JlZmVycmVyKCkpKTsKKyAgICBzY2hlZHVsZShzdGQ6Om1ha2VfdW5pcXVlPFNj
aGVkdWxlZFJlZnJlc2g+KGluaXRpYXRpbmdEb2N1bWVudCwgbV9mcmFtZS5kb2N1bWVudCgpLT5z
ZWN1cml0eU9yaWdpbigpLCB1cmwsIG1fZnJhbWUubG9hZGVyKCkub3V0Z29pbmdSZWZlcnJlcigp
KSk7CiB9CiAKIHZvaWQgTmF2aWdhdGlvblNjaGVkdWxlcjo6c2NoZWR1bGVIaXN0b3J5TmF2aWdh
dGlvbihpbnQgc3RlcHMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTmF2aWdh
dGlvblNjaGVkdWxlci5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL05hdmlnYXRpb25TY2hlZHVs
ZXIuaAppbmRleCA0YWU1YjEwLi5kZDYxYTc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvTmF2aWdhdGlvblNjaGVkdWxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9O
YXZpZ2F0aW9uU2NoZWR1bGVyLmgKQEAgLTM3LDYgKzM3LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCitjbGFzcyBEb2N1bWVudDsKIGNsYXNzIEZvcm1TdWJtaXNzaW9uOwogY2xhc3MgRnJh
bWU7CiBjbGFzcyBTY2hlZHVsZWROYXZpZ2F0aW9uOwpAQCAtNjksMTAgKzcwLDEwIEBAIHB1Ymxp
YzoKICAgICBib29sIHJlZGlyZWN0U2NoZWR1bGVkRHVyaW5nTG9hZCgpOwogICAgIGJvb2wgbG9j
YXRpb25DaGFuZ2VQZW5kaW5nKCk7CiAKLSAgICB2b2lkIHNjaGVkdWxlUmVkaXJlY3QoZG91Ymxl
IGRlbGF5LCBjb25zdCBVUkwmKTsKLSAgICB2b2lkIHNjaGVkdWxlTG9jYXRpb25DaGFuZ2UoU2Vj
dXJpdHlPcmlnaW4qLCBjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcmIHJlZmVycmVyLCBMb2NrSGlz
dG9yeSA9IExvY2tIaXN0b3J5OjpZZXMsIExvY2tCYWNrRm9yd2FyZExpc3QgPSBMb2NrQmFja0Zv
cndhcmRMaXN0OjpZZXMpOworICAgIHZvaWQgc2NoZWR1bGVSZWRpcmVjdChEb2N1bWVudCogaW5p
dGlhdGluZ0RvY3VtZW50LCBkb3VibGUgZGVsYXksIGNvbnN0IFVSTCYpOworICAgIHZvaWQgc2No
ZWR1bGVMb2NhdGlvbkNoYW5nZShEb2N1bWVudCogaW5pdGlhdGluZ0RvY3VtZW50LCBTZWN1cml0
eU9yaWdpbiosIGNvbnN0IFVSTCYsIGNvbnN0IFN0cmluZyYgcmVmZXJyZXIsIExvY2tIaXN0b3J5
ID0gTG9ja0hpc3Rvcnk6OlllcywgTG9ja0JhY2tGb3J3YXJkTGlzdCA9IExvY2tCYWNrRm9yd2Fy
ZExpc3Q6Olllcyk7CiAgICAgdm9pZCBzY2hlZHVsZUZvcm1TdWJtaXNzaW9uKFBhc3NSZWZQdHI8
Rm9ybVN1Ym1pc3Npb24+KTsKLSAgICB2b2lkIHNjaGVkdWxlUmVmcmVzaCgpOworICAgIHZvaWQg
c2NoZWR1bGVSZWZyZXNoKERvY3VtZW50KiBpbml0aWF0aW5nRG9jdW1lbnQpOwogICAgIHZvaWQg
c2NoZWR1bGVIaXN0b3J5TmF2aWdhdGlvbihpbnQgc3RlcHMpOwogICAgIHZvaWQgc2NoZWR1bGVT
dWJzdGl0dXRlRGF0YUxvYWQoY29uc3QgVVJMJiBiYXNlVVJMLCBjb25zdCBTdWJzdGl0dXRlRGF0
YSYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUG9saWN5Q2hlY2tlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUG9saWN5Q2hlY2tlci5jcHAKaW5kZXggMWJiOTlh
Ni4uYTIxNmU1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1BvbGljeUNoZWNr
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Qb2xpY3lDaGVja2VyLmNwcApAQCAt
NjUsNyArNjUsNyBAQCB2b2lkIFBvbGljeUNoZWNrZXI6OmNoZWNrTmF2aWdhdGlvblBvbGljeShj
b25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIERvY3VtZQogewogICAgIE5hdmlnYXRpb25B
Y3Rpb24gYWN0aW9uID0gbG9hZGVyLT50cmlnZ2VyaW5nQWN0aW9uKCk7CiAgICAgaWYgKGFjdGlv
bi5pc0VtcHR5KCkpIHsKLSAgICAgICAgYWN0aW9uID0gTmF2aWdhdGlvbkFjdGlvbihyZXF1ZXN0
LCBOYXZpZ2F0aW9uVHlwZTo6T3RoZXIsIGxvYWRlci0+c2hvdWxkT3BlbkV4dGVybmFsVVJMc1Bv
bGljeSgpKTsKKyAgICAgICAgYWN0aW9uID0gTmF2aWdhdGlvbkFjdGlvbihyZXF1ZXN0LCBOYXZp
Z2F0aW9uVHlwZTo6T3RoZXIsIGxvYWRlci0+c2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeVRv
UHJvcGFnYXRlKCkpOwogICAgICAgICBsb2FkZXItPnNldFRyaWdnZXJpbmdBY3Rpb24oYWN0aW9u
KTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJmcmFtZUxv
YWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvU3ViZnJhbWVMb2FkZXIuY3BwCmluZGV4
IGIwZmQ1MmYuLjdmMGNmMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJm
cmFtZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1N1YmZyYW1lTG9hZGVy
LmNwcApAQCAtMjg0LDcgKzI4NCw3IEBAIEZyYW1lKiBTdWJmcmFtZUxvYWRlcjo6bG9hZE9yUmVk
aXJlY3RTdWJmcmFtZShIVE1MRnJhbWVPd25lckVsZW1lbnQmIG93bmVyRWxlbWVuCiB7CiAgICAg
RnJhbWUqIGZyYW1lID0gb3duZXJFbGVtZW50LmNvbnRlbnRGcmFtZSgpOwogICAgIGlmIChmcmFt
ZSkKLSAgICAgICAgZnJhbWUtPm5hdmlnYXRpb25TY2hlZHVsZXIoKS5zY2hlZHVsZUxvY2F0aW9u
Q2hhbmdlKG1fZnJhbWUuZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKSwgdXJsLCBtX2ZyYW1l
LmxvYWRlcigpLm91dGdvaW5nUmVmZXJyZXIoKSwgbG9ja0hpc3RvcnksIGxvY2tCYWNrRm9yd2Fy
ZExpc3QpOworICAgICAgICBmcmFtZS0+bmF2aWdhdGlvblNjaGVkdWxlcigpLnNjaGVkdWxlTG9j
YXRpb25DaGFuZ2UobV9mcmFtZS5kb2N1bWVudCgpLCBtX2ZyYW1lLmRvY3VtZW50KCktPnNlY3Vy
aXR5T3JpZ2luKCksIHVybCwgbV9mcmFtZS5sb2FkZXIoKS5vdXRnb2luZ1JlZmVycmVyKCksIGxv
Y2tIaXN0b3J5LCBsb2NrQmFja0ZvcndhcmRMaXN0KTsKICAgICBlbHNlCiAgICAgICAgIGZyYW1l
ID0gbG9hZFN1YmZyYW1lKG93bmVyRWxlbWVudCwgdXJsLCBmcmFtZU5hbWUsIG1fZnJhbWUubG9h
ZGVyKCkub3V0Z29pbmdSZWZlcnJlcigpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVHcm91cC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUdyb3VwLmNwcAppbmRleCA3NjhmNGY5
Li42MjdjMGZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBw
bGljYXRpb25DYWNoZUdyb3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2Fj
aGUvQXBwbGljYXRpb25DYWNoZUdyb3VwLmNwcApAQCAtMTczLDcgKzE3Myw3IEBAIHZvaWQgQXBw
bGljYXRpb25DYWNoZUdyb3VwOjpzZWxlY3RDYWNoZShGcmFtZSogZnJhbWUsIGNvbnN0IFVSTCYg
cGFzc2VkTWFuaWZlc3RVCiAgICAgICAgICAgICAvLyBSZXN0YXJ0IHRoZSBjdXJyZW50IG5hdmln
YXRpb24gZnJvbSB0aGUgdG9wIG9mIHRoZSBuYXZpZ2F0aW9uIGFsZ29yaXRobSwgdW5kb2luZyBh
bnkgY2hhbmdlcyB0aGF0IHdlcmUgbWFkZQogICAgICAgICAgICAgLy8gYXMgcGFydCBvZiB0aGUg
aW5pdGlhbCBsb2FkLgogICAgICAgICAgICAgLy8gVGhlIG5hdmlnYXRpb24gd2lsbCBub3QgcmVz
dWx0IGluIHRoZSBzYW1lIHJlc291cmNlIGJlaW5nIGxvYWRlZCwgYmVjYXVzZSAiZm9yZWlnbiIg
ZW50cmllcyBhcmUgbmV2ZXIgcGlja2VkIGR1cmluZyBuYXZpZ2F0aW9uLgotICAgICAgICAgICAg
ZnJhbWUtPm5hdmlnYXRpb25TY2hlZHVsZXIoKS5zY2hlZHVsZUxvY2F0aW9uQ2hhbmdlKGZyYW1l
LT5kb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpLCBkb2N1bWVudExvYWRlci0+dXJsKCksIGZy
YW1lLT5sb2FkZXIoKS5yZWZlcnJlcigpKTsKKyAgICAgICAgICAgIGZyYW1lLT5uYXZpZ2F0aW9u
U2NoZWR1bGVyKCkuc2NoZWR1bGVMb2NhdGlvbkNoYW5nZShmcmFtZS0+ZG9jdW1lbnQoKSwgZnJh
bWUtPmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCksIGRvY3VtZW50TG9hZGVyLT51cmwoKSwg
ZnJhbWUtPmxvYWRlcigpLnJlZmVycmVyKCkpOwogICAgICAgICB9CiAgICAgICAgIAogICAgICAg
ICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRleHRNZW51Q29u
dHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRleHRNZW51Q29udHJvbGxlci5j
cHAKaW5kZXggMzg5MmQ2NC4uZDI0ZmIzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9Db250ZXh0TWVudUNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29u
dGV4dE1lbnVDb250cm9sbGVyLmNwcApAQCAtMTkwLDEzICsxOTAsMTMgQEAgdm9pZCBDb250ZXh0
TWVudUNvbnRyb2xsZXI6OnNob3dDb250ZXh0TWVudShFdmVudCogZXZlbnQpCiAgICAgZXZlbnQt
PnNldERlZmF1bHRIYW5kbGVkKCk7CiB9CiAKLXN0YXRpYyB2b2lkIG9wZW5OZXdXaW5kb3coY29u
c3QgVVJMJiB1cmxUb0xvYWQsIEZyYW1lKiBmcmFtZSkKK3N0YXRpYyB2b2lkIG9wZW5OZXdXaW5k
b3coY29uc3QgVVJMJiB1cmxUb0xvYWQsIEZyYW1lKiBmcmFtZSwgU2hvdWxkT3BlbkV4dGVybmFs
VVJMc1BvbGljeSBzaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5KQogewogICAgIFBhZ2UqIG9s
ZFBhZ2UgPSBmcmFtZS0+cGFnZSgpOwogICAgIGlmICghb2xkUGFnZSkKICAgICAgICAgcmV0dXJu
OwotICAgIAotICAgIEZyYW1lTG9hZFJlcXVlc3QgcmVxdWVzdChmcmFtZS0+ZG9jdW1lbnQoKS0+
c2VjdXJpdHlPcmlnaW4oKSwgUmVzb3VyY2VSZXF1ZXN0KHVybFRvTG9hZCwgZnJhbWUtPmxvYWRl
cigpLm91dGdvaW5nUmVmZXJyZXIoKSksIExvY2tIaXN0b3J5OjpObywgTG9ja0JhY2tGb3J3YXJk
TGlzdDo6Tm8sIE1heWJlU2VuZFJlZmVycmVyLCBBbGxvd05hdmlnYXRpb25Ub0ludmFsaWRVUkw6
OlllcywgTmV3RnJhbWVPcGVuZXJQb2xpY3k6OlN1cHByZXNzKTsKKworICAgIEZyYW1lTG9hZFJl
cXVlc3QgcmVxdWVzdChmcmFtZS0+ZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKSwgUmVzb3Vy
Y2VSZXF1ZXN0KHVybFRvTG9hZCwgZnJhbWUtPmxvYWRlcigpLm91dGdvaW5nUmVmZXJyZXIoKSks
IExvY2tIaXN0b3J5OjpObywgTG9ja0JhY2tGb3J3YXJkTGlzdDo6Tm8sIE1heWJlU2VuZFJlZmVy
cmVyLCBBbGxvd05hdmlnYXRpb25Ub0ludmFsaWRVUkw6OlllcywgTmV3RnJhbWVPcGVuZXJQb2xp
Y3k6OlN1cHByZXNzLCBzaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5KTsKIAogICAgIFBhZ2Uq
IG5ld1BhZ2UgPSBvbGRQYWdlLT5jaHJvbWUoKS5jcmVhdGVXaW5kb3coZnJhbWUsIHJlcXVlc3Qs
IFdpbmRvd0ZlYXR1cmVzKCksIE5hdmlnYXRpb25BY3Rpb24ocmVxdWVzdC5yZXNvdXJjZVJlcXVl
c3QoKSkpOwogICAgIGlmICghbmV3UGFnZSkKQEAgLTIzOCw3ICsyMzgsNyBAQCB2b2lkIENvbnRl
eHRNZW51Q29udHJvbGxlcjo6Y29udGV4dE1lbnVJdGVtU2VsZWN0ZWQoQ29udGV4dE1lbnVJdGVt
KiBpdGVtKQogCiAgICAgc3dpdGNoIChpdGVtLT5hY3Rpb24oKSkgewogICAgIGNhc2UgQ29udGV4
dE1lbnVJdGVtVGFnT3BlbkxpbmtJbk5ld1dpbmRvdzoKLSAgICAgICAgb3Blbk5ld1dpbmRvdyht
X2NvbnRleHQuaGl0VGVzdFJlc3VsdCgpLmFic29sdXRlTGlua1VSTCgpLCBmcmFtZSk7CisgICAg
ICAgIG9wZW5OZXdXaW5kb3cobV9jb250ZXh0LmhpdFRlc3RSZXN1bHQoKS5hYnNvbHV0ZUxpbmtV
UkwoKSwgZnJhbWUsIFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3k6OlNob3VsZEFsbG93KTsK
ICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdEb3dubG9hZExpbmtU
b0Rpc2s6CiAgICAgICAgIC8vIEZJWE1FOiBTb21lIGRheSB3ZSBzaG91bGQgYmUgYWJsZSB0byBk
byB0aGlzIGZyb20gd2l0aGluIFdlYkNvcmUuIChCdWcgMTE3NzA5KQpAQCAtMjQ4LDcgKzI0OCw3
IEBAIHZvaWQgQ29udGV4dE1lbnVDb250cm9sbGVyOjpjb250ZXh0TWVudUl0ZW1TZWxlY3RlZChD
b250ZXh0TWVudUl0ZW0qIGl0ZW0pCiAgICAgICAgIGZyYW1lLT5lZGl0b3IoKS5jb3B5VVJMKG1f
Y29udGV4dC5oaXRUZXN0UmVzdWx0KCkuYWJzb2x1dGVMaW5rVVJMKCksIG1fY29udGV4dC5oaXRU
ZXN0UmVzdWx0KCkudGV4dENvbnRlbnQoKSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ29u
dGV4dE1lbnVJdGVtVGFnT3BlbkltYWdlSW5OZXdXaW5kb3c6Ci0gICAgICAgIG9wZW5OZXdXaW5k
b3cobV9jb250ZXh0LmhpdFRlc3RSZXN1bHQoKS5hYnNvbHV0ZUltYWdlVVJMKCksIGZyYW1lKTsK
KyAgICAgICAgb3Blbk5ld1dpbmRvdyhtX2NvbnRleHQuaGl0VGVzdFJlc3VsdCgpLmFic29sdXRl
SW1hZ2VVUkwoKSwgZnJhbWUsIFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3k6OlNob3VsZE5v
dEFsbG93KTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdEb3du
bG9hZEltYWdlVG9EaXNrOgogICAgICAgICAvLyBGSVhNRTogU29tZSBkYXkgd2Ugc2hvdWxkIGJl
IGFibGUgdG8gZG8gdGhpcyBmcm9tIHdpdGhpbiBXZWJDb3JlLiAoQnVnIDExNzcwOSkKQEAgLTI2
NSw3ICsyNjUsNyBAQCB2b2lkIENvbnRleHRNZW51Q29udHJvbGxlcjo6Y29udGV4dE1lbnVJdGVt
U2VsZWN0ZWQoQ29udGV4dE1lbnVJdGVtKiBpdGVtKQogICAgICAgICBicmVhazsKICNlbmRpZgog
ICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnT3Blbk1lZGlhSW5OZXdXaW5kb3c6Ci0gICAgICAg
IG9wZW5OZXdXaW5kb3cobV9jb250ZXh0LmhpdFRlc3RSZXN1bHQoKS5hYnNvbHV0ZU1lZGlhVVJM
KCksIGZyYW1lKTsKKyAgICAgICAgb3Blbk5ld1dpbmRvdyhtX2NvbnRleHQuaGl0VGVzdFJlc3Vs
dCgpLmFic29sdXRlTWVkaWFVUkwoKSwgZnJhbWUsIFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xp
Y3k6OlNob3VsZE5vdEFsbG93KTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDb250ZXh0TWVu
dUl0ZW1UYWdEb3dubG9hZE1lZGlhVG9EaXNrOgogICAgICAgICAvLyBGSVhNRTogU29tZSBkYXkg
d2Ugc2hvdWxkIGJlIGFibGUgdG8gZG8gdGhpcyBmcm9tIHdpdGhpbiBXZWJDb3JlLiAoQnVnIDEx
NzcwOSkKQEAgLTI5NSw5ICsyOTUsOSBAQCB2b2lkIENvbnRleHRNZW51Q29udHJvbGxlcjo6Y29u
dGV4dE1lbnVJdGVtU2VsZWN0ZWQoQ29udGV4dE1lbnVJdGVtKiBpdGVtKQogICAgIGNhc2UgQ29u
dGV4dE1lbnVJdGVtVGFnT3BlbkZyYW1lSW5OZXdXaW5kb3c6IHsKICAgICAgICAgRG9jdW1lbnRM
b2FkZXIqIGxvYWRlciA9IGZyYW1lLT5sb2FkZXIoKS5kb2N1bWVudExvYWRlcigpOwogICAgICAg
ICBpZiAoIWxvYWRlci0+dW5yZWFjaGFibGVVUkwoKS5pc0VtcHR5KCkpCi0gICAgICAgICAgICBv
cGVuTmV3V2luZG93KGxvYWRlci0+dW5yZWFjaGFibGVVUkwoKSwgZnJhbWUpOworICAgICAgICAg
ICAgb3Blbk5ld1dpbmRvdyhsb2FkZXItPnVucmVhY2hhYmxlVVJMKCksIGZyYW1lLCBTaG91bGRP
cGVuRXh0ZXJuYWxVUkxzUG9saWN5OjpTaG91bGROb3RBbGxvdyk7CiAgICAgICAgIGVsc2UKLSAg
ICAgICAgICAgIG9wZW5OZXdXaW5kb3cobG9hZGVyLT51cmwoKSwgZnJhbWUpOworICAgICAgICAg
ICAgb3Blbk5ld1dpbmRvdyhsb2FkZXItPnVybCgpLCBmcmFtZSwgU2hvdWxkT3BlbkV4dGVybmFs
VVJMc1BvbGljeTo6U2hvdWxkTm90QWxsb3cpOwogICAgICAgICBicmVhazsKICAgICB9CiAgICAg
Y2FzZSBDb250ZXh0TWVudUl0ZW1UYWdDb3B5OgpAQCAtNDAxLDEyICs0MDEsMTIgQEAgdm9pZCBD
b250ZXh0TWVudUNvbnRyb2xsZXI6OmNvbnRleHRNZW51SXRlbVNlbGVjdGVkKENvbnRleHRNZW51
SXRlbSogaXRlbSkKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdP
cGVuTGluazoKICAgICAgICAgaWYgKEZyYW1lKiB0YXJnZXRGcmFtZSA9IG1fY29udGV4dC5oaXRU
ZXN0UmVzdWx0KCkudGFyZ2V0RnJhbWUoKSkKLSAgICAgICAgICAgIHRhcmdldEZyYW1lLT5sb2Fk
ZXIoKS5sb2FkRnJhbWVSZXF1ZXN0KEZyYW1lTG9hZFJlcXVlc3QoZnJhbWUtPmRvY3VtZW50KCkt
PnNlY3VyaXR5T3JpZ2luKCksIFJlc291cmNlUmVxdWVzdChtX2NvbnRleHQuaGl0VGVzdFJlc3Vs
dCgpLmFic29sdXRlTGlua1VSTCgpLCBmcmFtZS0+bG9hZGVyKCkub3V0Z29pbmdSZWZlcnJlcigp
KSwgTG9ja0hpc3Rvcnk6Ok5vLCBMb2NrQmFja0ZvcndhcmRMaXN0OjpObywgTWF5YmVTZW5kUmVm
ZXJyZXIsIEFsbG93TmF2aWdhdGlvblRvSW52YWxpZFVSTDo6WWVzLCBOZXdGcmFtZU9wZW5lclBv
bGljeTo6U3VwcHJlc3MpLCBudWxscHRyLCBudWxscHRyKTsKKyAgICAgICAgICAgIHRhcmdldEZy
YW1lLT5sb2FkZXIoKS5sb2FkRnJhbWVSZXF1ZXN0KEZyYW1lTG9hZFJlcXVlc3QoZnJhbWUtPmRv
Y3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCksIFJlc291cmNlUmVxdWVzdChtX2NvbnRleHQuaGl0
VGVzdFJlc3VsdCgpLmFic29sdXRlTGlua1VSTCgpLCBmcmFtZS0+bG9hZGVyKCkub3V0Z29pbmdS
ZWZlcnJlcigpKSwgTG9ja0hpc3Rvcnk6Ok5vLCBMb2NrQmFja0ZvcndhcmRMaXN0OjpObywgTWF5
YmVTZW5kUmVmZXJyZXIsIEFsbG93TmF2aWdhdGlvblRvSW52YWxpZFVSTDo6WWVzLCBOZXdGcmFt
ZU9wZW5lclBvbGljeTo6U3VwcHJlc3MsIHRhcmdldEZyYW1lLT5pc01haW5GcmFtZSgpID8gU2hv
dWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeTo6U2hvdWxkQWxsb3cgOiBTaG91bGRPcGVuRXh0ZXJu
YWxVUkxzUG9saWN5OjpTaG91bGROb3RBbGxvdyksIG51bGxwdHIsIG51bGxwdHIpOwogICAgICAg
ICBlbHNlCi0gICAgICAgICAgICBvcGVuTmV3V2luZG93KG1fY29udGV4dC5oaXRUZXN0UmVzdWx0
KCkuYWJzb2x1dGVMaW5rVVJMKCksIGZyYW1lKTsKKyAgICAgICAgICAgIG9wZW5OZXdXaW5kb3co
bV9jb250ZXh0LmhpdFRlc3RSZXN1bHQoKS5hYnNvbHV0ZUxpbmtVUkwoKSwgZnJhbWUsIFNob3Vs
ZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3k6OlNob3VsZEFsbG93KTsKICAgICAgICAgYnJlYWs7CiAg
ICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdPcGVuTGlua0luVGhpc1dpbmRvdzoKLSAgICAgICAg
ZnJhbWUtPmxvYWRlcigpLmxvYWRGcmFtZVJlcXVlc3QoRnJhbWVMb2FkUmVxdWVzdChmcmFtZS0+
ZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKSwgUmVzb3VyY2VSZXF1ZXN0KG1fY29udGV4dC5o
aXRUZXN0UmVzdWx0KCkuYWJzb2x1dGVMaW5rVVJMKCksIGZyYW1lLT5sb2FkZXIoKS5vdXRnb2lu
Z1JlZmVycmVyKCkpLCBMb2NrSGlzdG9yeTo6Tm8sIExvY2tCYWNrRm9yd2FyZExpc3Q6Ok5vLCBN
YXliZVNlbmRSZWZlcnJlciwgQWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJMOjpZZXMsIE5ld0Zy
YW1lT3BlbmVyUG9saWN5OjpTdXBwcmVzcyksIG51bGxwdHIsIG51bGxwdHIpOworICAgICAgICBm
cmFtZS0+bG9hZGVyKCkubG9hZEZyYW1lUmVxdWVzdChGcmFtZUxvYWRSZXF1ZXN0KGZyYW1lLT5k
b2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpLCBSZXNvdXJjZVJlcXVlc3QobV9jb250ZXh0Lmhp
dFRlc3RSZXN1bHQoKS5hYnNvbHV0ZUxpbmtVUkwoKSwgZnJhbWUtPmxvYWRlcigpLm91dGdvaW5n
UmVmZXJyZXIoKSksIExvY2tIaXN0b3J5OjpObywgTG9ja0JhY2tGb3J3YXJkTGlzdDo6Tm8sIE1h
eWJlU2VuZFJlZmVycmVyLCBBbGxvd05hdmlnYXRpb25Ub0ludmFsaWRVUkw6OlllcywgTmV3RnJh
bWVPcGVuZXJQb2xpY3k6OlN1cHByZXNzLCBTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5OjpT
aG91bGRBbGxvdyksIG51bGxwdHIsIG51bGxwdHIpOwogICAgICAgICBicmVhazsKICAgICBjYXNl
IENvbnRleHRNZW51SXRlbVRhZ0JvbGQ6CiAgICAgICAgIGZyYW1lLT5lZGl0b3IoKS5jb21tYW5k
KCJUb2dnbGVCb2xkIikuZXhlY3V0ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9ET01XaW5kb3cuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCmluZGV4
IGIyYTdkN2MuLmZhNmRjODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2lu
ZG93LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKQEAgLTE5OTIs
NyArMTk5Miw3IEBAIHZvaWQgRE9NV2luZG93OjpzZXRMb2NhdGlvbihjb25zdCBTdHJpbmcmIHVy
bFN0cmluZywgRE9NV2luZG93JiBhY3RpdmVXaW5kb3csIERPCiAgICAgLy8gV2Ugd2FudCBhIG5l
dyBoaXN0b3J5IGl0ZW0gaWYgd2UgYXJlIHByb2Nlc3NpbmcgYSB1c2VyIGdlc3R1cmUuCiAgICAg
TG9ja0hpc3RvcnkgbG9ja0hpc3RvcnkgPSAobG9ja2luZyAhPSBMb2NrSGlzdG9yeUJhc2VkT25H
ZXN0dXJlU3RhdGUgfHwgIVNjcmlwdENvbnRyb2xsZXI6OnByb2Nlc3NpbmdVc2VyR2VzdHVyZSgp
KSA/IExvY2tIaXN0b3J5OjpZZXMgOiBMb2NrSGlzdG9yeTo6Tm87CiAgICAgTG9ja0JhY2tGb3J3
YXJkTGlzdCBsb2NrQmFja0ZvcndhcmRMaXN0ID0gKGxvY2tpbmcgIT0gTG9ja0hpc3RvcnlCYXNl
ZE9uR2VzdHVyZVN0YXRlKSA/IExvY2tCYWNrRm9yd2FyZExpc3Q6OlllcyA6IExvY2tCYWNrRm9y
d2FyZExpc3Q6Ok5vOwotICAgIG1fZnJhbWUtPm5hdmlnYXRpb25TY2hlZHVsZXIoKS5zY2hlZHVs
ZUxvY2F0aW9uQ2hhbmdlKGFjdGl2ZURvY3VtZW50LT5zZWN1cml0eU9yaWdpbigpLAorICAgIG1f
ZnJhbWUtPm5hdmlnYXRpb25TY2hlZHVsZXIoKS5zY2hlZHVsZUxvY2F0aW9uQ2hhbmdlKGFjdGl2
ZURvY3VtZW50LCBhY3RpdmVEb2N1bWVudC0+c2VjdXJpdHlPcmlnaW4oKSwKICAgICAgICAgLy8g
RklYTUU6IFdoYXQgaWYgYWN0aXZlRG9jdW1lbnQoKS0+ZnJhbWUoKSBpcyAwPwogICAgICAgICBj
b21wbGV0ZWRVUkwsIGFjdGl2ZURvY3VtZW50LT5mcmFtZSgpLT5sb2FkZXIoKS5vdXRnb2luZ1Jl
ZmVycmVyKCksCiAgICAgICAgIGxvY2tIaXN0b3J5LCBsb2NrQmFja0ZvcndhcmRMaXN0KTsKQEAg
LTIwOTAsNyArMjA5MCw3IEBAIFJlZlB0cjxGcmFtZT4gRE9NV2luZG93OjpjcmVhdGVXaW5kb3co
Y29uc3QgU3RyaW5nJiB1cmxTdHJpbmcsIGNvbnN0IEF0b21pY1N0cmluCiAKICAgICBSZXNvdXJj
ZVJlcXVlc3QgcmVxdWVzdChjb21wbGV0ZWRVUkwsIHJlZmVycmVyKTsKICAgICBGcmFtZUxvYWRl
cjo6YWRkSFRUUE9yaWdpbklmTmVlZGVkKHJlcXVlc3QsIGZpcnN0RnJhbWUubG9hZGVyKCkub3V0
Z29pbmdPcmlnaW4oKSk7Ci0gICAgRnJhbWVMb2FkUmVxdWVzdCBmcmFtZVJlcXVlc3QoYWN0aXZl
V2luZG93LmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCksIHJlcXVlc3QsIGZyYW1lTmFtZSwg
TG9ja0hpc3Rvcnk6Ok5vLCBMb2NrQmFja0ZvcndhcmRMaXN0OjpObywgTWF5YmVTZW5kUmVmZXJy
ZXIsIEFsbG93TmF2aWdhdGlvblRvSW52YWxpZFVSTDo6WWVzLCBOZXdGcmFtZU9wZW5lclBvbGlj
eTo6QWxsb3csIFJlcGxhY2VEb2N1bWVudElmSmF2YVNjcmlwdFVSTCk7CisgICAgRnJhbWVMb2Fk
UmVxdWVzdCBmcmFtZVJlcXVlc3QoYWN0aXZlV2luZG93LmRvY3VtZW50KCktPnNlY3VyaXR5T3Jp
Z2luKCksIHJlcXVlc3QsIGZyYW1lTmFtZSwgTG9ja0hpc3Rvcnk6Ok5vLCBMb2NrQmFja0Zvcndh
cmRMaXN0OjpObywgTWF5YmVTZW5kUmVmZXJyZXIsIEFsbG93TmF2aWdhdGlvblRvSW52YWxpZFVS
TDo6WWVzLCBOZXdGcmFtZU9wZW5lclBvbGljeTo6QWxsb3csIFJlcGxhY2VEb2N1bWVudElmSmF2
YVNjcmlwdFVSTCwgYWN0aXZlV2luZG93LmRvY3VtZW50KCktPmxvYWRlcigpLT5zaG91bGRPcGVu
RXh0ZXJuYWxVUkxzUG9saWN5VG9Qcm9wYWdhdGUoKSk7CiAKICAgICAvLyBXZSBwYXNzIHRoZSBv
cGVuZXIgZnJhbWUgZm9yIHRoZSBsb29rdXBGcmFtZSBpbiBjYXNlIHRoZSBhY3RpdmUgZnJhbWUg
aXMgZGlmZmVyZW50IGZyb20KICAgICAvLyB0aGUgb3BlbmVyIGZyYW1lLCBhbmQgdGhlIG5hbWUg
cmVmZXJlbmNlcyBhIGZyYW1lIHJlbGF0aXZlIHRvIHRoZSBvcGVuZXIgZnJhbWUuCkBAIC0yMTEw
LDExICsyMTEwLDExIEBAIFJlZlB0cjxGcmFtZT4gRE9NV2luZG93OjpjcmVhdGVXaW5kb3coY29u
c3QgU3RyaW5nJiB1cmxTdHJpbmcsIGNvbnN0IEF0b21pY1N0cmluCiAKICAgICBpZiAoY3JlYXRl
ZCkgewogICAgICAgICBSZXNvdXJjZVJlcXVlc3QgcmVzb3VyY2VSZXF1ZXN0KGNvbXBsZXRlZFVS
TCwgcmVmZXJyZXIsIFVzZVByb3RvY29sQ2FjaGVQb2xpY3kpOwotICAgICAgICBGcmFtZUxvYWRS
ZXF1ZXN0IGZyYW1lUmVxdWVzdChhY3RpdmVXaW5kb3cuZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmln
aW4oKSwgcmVzb3VyY2VSZXF1ZXN0LCBMb2NrSGlzdG9yeTo6Tm8sIExvY2tCYWNrRm9yd2FyZExp
c3Q6Ok5vLCBNYXliZVNlbmRSZWZlcnJlciwgQWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJMOjpZ
ZXMsIE5ld0ZyYW1lT3BlbmVyUG9saWN5OjpBbGxvdyk7CisgICAgICAgIEZyYW1lTG9hZFJlcXVl
c3QgZnJhbWVSZXF1ZXN0KGFjdGl2ZVdpbmRvdy5kb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigp
LCByZXNvdXJjZVJlcXVlc3QsIExvY2tIaXN0b3J5OjpObywgTG9ja0JhY2tGb3J3YXJkTGlzdDo6
Tm8sIE1heWJlU2VuZFJlZmVycmVyLCBBbGxvd05hdmlnYXRpb25Ub0ludmFsaWRVUkw6Olllcywg
TmV3RnJhbWVPcGVuZXJQb2xpY3k6OkFsbG93LCBhY3RpdmVXaW5kb3cuZG9jdW1lbnQoKS0+bG9h
ZGVyKCktPnNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3lUb1Byb3BhZ2F0ZSgpKTsKICAgICAg
ICAgbmV3RnJhbWUtPmxvYWRlcigpLmNoYW5nZUxvY2F0aW9uKGZyYW1lUmVxdWVzdCk7CiAgICAg
fSBlbHNlIGlmICghdXJsU3RyaW5nLmlzRW1wdHkoKSkgewogICAgICAgICBMb2NrSGlzdG9yeSBs
b2NrSGlzdG9yeSA9IFNjcmlwdENvbnRyb2xsZXI6OnByb2Nlc3NpbmdVc2VyR2VzdHVyZSgpID8g
TG9ja0hpc3Rvcnk6Ok5vIDogTG9ja0hpc3Rvcnk6OlllczsKLSAgICAgICAgbmV3RnJhbWUtPm5h
dmlnYXRpb25TY2hlZHVsZXIoKS5zY2hlZHVsZUxvY2F0aW9uQ2hhbmdlKGFjdGl2ZVdpbmRvdy5k
b2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpLCBjb21wbGV0ZWRVUkwsIHJlZmVycmVyLCBsb2Nr
SGlzdG9yeSwgTG9ja0JhY2tGb3J3YXJkTGlzdDo6Tm8pOworICAgICAgICBuZXdGcmFtZS0+bmF2
aWdhdGlvblNjaGVkdWxlcigpLnNjaGVkdWxlTG9jYXRpb25DaGFuZ2UoYWN0aXZlV2luZG93LmRv
Y3VtZW50KCksIGFjdGl2ZVdpbmRvdy5kb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpLCBjb21w
bGV0ZWRVUkwsIHJlZmVycmVyLCBsb2NrSGlzdG9yeSwgTG9ja0JhY2tGb3J3YXJkTGlzdDo6Tm8p
OwogICAgIH0KIAogICAgIC8vIE5hdmlnYXRpbmcgdGhlIG5ldyBmcmFtZSBjb3VsZCByZXN1bHQg
aW4gaXQgYmVpbmcgZGV0YWNoZWQgZnJvbSBpdHMgcGFnZSBieSBhIG5hdmlnYXRpb24gcG9saWN5
IGRlbGVnYXRlLgpAQCAtMjEyOSw5ICsyMTI5LDE1IEBAIFBhc3NSZWZQdHI8RE9NV2luZG93PiBE
T01XaW5kb3c6Om9wZW4oY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcsIGNvbnN0IEF0b21pY1N0cmlu
CiB7CiAgICAgaWYgKCFpc0N1cnJlbnRseURpc3BsYXllZEluRnJhbWUoKSkKICAgICAgICAgcmV0
dXJuIG51bGxwdHI7CisKICAgICBEb2N1bWVudCogYWN0aXZlRG9jdW1lbnQgPSBhY3RpdmVXaW5k
b3cuZG9jdW1lbnQoKTsKICAgICBpZiAoIWFjdGl2ZURvY3VtZW50KQogICAgICAgICByZXR1cm4g
bnVsbHB0cjsKKworICAgIEZyYW1lKiBhY3RpdmVGcmFtZSA9IGFjdGl2ZVdpbmRvdy5mcmFtZSgp
OworICAgIGlmICghYWN0aXZlRnJhbWUpCisgICAgICAgIHJldHVybiBudWxscHRyOworCiAgICAg
RnJhbWUqIGZpcnN0RnJhbWUgPSBmaXJzdFdpbmRvdy5mcmFtZSgpOwogICAgIGlmICghZmlyc3RG
cmFtZSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CkBAIC0yMTgzLDcgKzIxODksNyBAQCBQYXNz
UmVmUHRyPERPTVdpbmRvdz4gRE9NV2luZG93OjpvcGVuKGNvbnN0IFN0cmluZyYgdXJsU3RyaW5n
LCBjb25zdCBBdG9taWNTdHJpbgogICAgICAgICAvLyBGb3Igd2hhdGV2ZXIgcmVhc29uLCBGaXJl
Zm94IHVzZXMgdGhlIGZpcnN0IHdpbmRvdyByYXRoZXIgdGhhbiB0aGUgYWN0aXZlIHdpbmRvdyB0
bwogICAgICAgICAvLyBkZXRlcm1pbmUgdGhlIG91dGdvaW5nIHJlZmVycmVyLiBXZSByZXBsaWNh
dGUgdGhhdCBiZWhhdmlvciBoZXJlLgogICAgICAgICBMb2NrSGlzdG9yeSBsb2NrSGlzdG9yeSA9
IFNjcmlwdENvbnRyb2xsZXI6OnByb2Nlc3NpbmdVc2VyR2VzdHVyZSgpID8gTG9ja0hpc3Rvcnk6
Ok5vIDogTG9ja0hpc3Rvcnk6OlllczsKLSAgICAgICAgdGFyZ2V0RnJhbWUtPm5hdmlnYXRpb25T
Y2hlZHVsZXIoKS5zY2hlZHVsZUxvY2F0aW9uQ2hhbmdlKGFjdGl2ZURvY3VtZW50LT5zZWN1cml0
eU9yaWdpbigpLCBjb21wbGV0ZWRVUkwsIGZpcnN0RnJhbWUtPmxvYWRlcigpLm91dGdvaW5nUmVm
ZXJyZXIoKSwKKyAgICAgICAgdGFyZ2V0RnJhbWUtPm5hdmlnYXRpb25TY2hlZHVsZXIoKS5zY2hl
ZHVsZUxvY2F0aW9uQ2hhbmdlKGFjdGl2ZURvY3VtZW50LCBhY3RpdmVEb2N1bWVudC0+c2VjdXJp
dHlPcmlnaW4oKSwgY29tcGxldGVkVVJMLCBmaXJzdEZyYW1lLT5sb2FkZXIoKS5vdXRnb2luZ1Jl
ZmVycmVyKCksCiAgICAgICAgICAgICBsb2NrSGlzdG9yeSwgTG9ja0JhY2tGb3J3YXJkTGlzdDo6
Tm8pOwogICAgICAgICByZXR1cm4gdGFyZ2V0RnJhbWUtPmRvY3VtZW50KCktPmRvbVdpbmRvdygp
OwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5jcHAKaW5kZXggMjgzZDIz
YS4uYTM0ZTM3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5jcHAKQEAgLTIx
Niw2ICsyMTYsMTEgQEAgRHJhZ09wZXJhdGlvbiBEcmFnQ29udHJvbGxlcjo6ZHJhZ1VwZGF0ZWQo
RHJhZ0RhdGEmIGRyYWdEYXRhKQogYm9vbCBEcmFnQ29udHJvbGxlcjo6cGVyZm9ybURyYWdPcGVy
YXRpb24oRHJhZ0RhdGEmIGRyYWdEYXRhKQogewogICAgIG1fZG9jdW1lbnRVbmRlck1vdXNlID0g
bV9wYWdlLm1haW5GcmFtZSgpLmRvY3VtZW50QXRQb2ludChkcmFnRGF0YS5jbGllbnRQb3NpdGlv
bigpKTsKKworICAgIFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kgc2hvdWxkT3BlbkV4dGVy
bmFsVVJMc1BvbGljeSA9IFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3k6OlNob3VsZE5vdEFs
bG93OworICAgIGlmIChtX2RvY3VtZW50VW5kZXJNb3VzZSkKKyAgICAgICAgc2hvdWxkT3BlbkV4
dGVybmFsVVJMc1BvbGljeSA9IG1fZG9jdW1lbnRVbmRlck1vdXNlLT5sb2FkZXIoKS0+c2hvdWxk
T3BlbkV4dGVybmFsVVJMc1BvbGljeVRvUHJvcGFnYXRlKCk7CisKICAgICBpZiAoKG1fZHJhZ0Rl
c3RpbmF0aW9uQWN0aW9uICYgRHJhZ0Rlc3RpbmF0aW9uQWN0aW9uREhUTUwpICYmIG1fZG9jdW1l
bnRJc0hhbmRsaW5nRHJhZykgewogICAgICAgICBtX2NsaWVudC53aWxsUGVyZm9ybURyYWdEZXN0
aW5hdGlvbkFjdGlvbihEcmFnRGVzdGluYXRpb25BY3Rpb25ESFRNTCwgZHJhZ0RhdGEpOwogICAg
ICAgICBSZWY8TWFpbkZyYW1lPiBtYWluRnJhbWUobV9wYWdlLm1haW5GcmFtZSgpKTsKQEAgLTI0
NSw3ICsyNTAsNyBAQCBib29sIERyYWdDb250cm9sbGVyOjpwZXJmb3JtRHJhZ09wZXJhdGlvbihE
cmFnRGF0YSYgZHJhZ0RhdGEpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIG1fY2xpZW50
LndpbGxQZXJmb3JtRHJhZ0Rlc3RpbmF0aW9uQWN0aW9uKERyYWdEZXN0aW5hdGlvbkFjdGlvbkxv
YWQsIGRyYWdEYXRhKTsKLSAgICBtX3BhZ2UubWFpbkZyYW1lKCkubG9hZGVyKCkubG9hZChGcmFt
ZUxvYWRSZXF1ZXN0KCZtX3BhZ2UubWFpbkZyYW1lKCksIFJlc291cmNlUmVxdWVzdChkcmFnRGF0
YS5hc1VSTCgpKSkpOworICAgIG1fcGFnZS5tYWluRnJhbWUoKS5sb2FkZXIoKS5sb2FkKEZyYW1l
TG9hZFJlcXVlc3QoJm1fcGFnZS5tYWluRnJhbWUoKSwgUmVzb3VyY2VSZXF1ZXN0KGRyYWdEYXRh
LmFzVVJMKCkpLCBzaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5KSk7CiAgICAgcmV0dXJuIHRy
dWU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTG9jYXRpb24uY3BwIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9Mb2NhdGlvbi5jcHAKaW5kZXggNDRmNTIyMC4uNDMxN2Q4MCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9Mb2NhdGlvbi5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9Mb2NhdGlvbi5jcHAKQEAgLTI1OCw3ICsyNTgsNyBAQCB2b2lkIExvY2F0
aW9uOjpyZWxvYWQoRE9NV2luZG93JiBhY3RpdmVXaW5kb3cpCiAgICAgfQogICAgIGlmIChwcm90
b2NvbElzSmF2YVNjcmlwdChtX2ZyYW1lLT5kb2N1bWVudCgpLT51cmwoKSkpCiAgICAgICAgIHJl
dHVybjsKLSAgICBtX2ZyYW1lLT5uYXZpZ2F0aW9uU2NoZWR1bGVyKCkuc2NoZWR1bGVSZWZyZXNo
KCk7CisgICAgbV9mcmFtZS0+bmF2aWdhdGlvblNjaGVkdWxlcigpLnNjaGVkdWxlUmVmcmVzaChh
Y3RpdmVXaW5kb3cuZG9jdW1lbnQoKSk7CiB9CiAKIHZvaWQgTG9jYXRpb246OnNldExvY2F0aW9u
KGNvbnN0IFN0cmluZyYgdXJsLCBET01XaW5kb3cmIGFjdGl2ZVdpbmRvdywgRE9NV2luZG93JiBm
aXJzdFdpbmRvdykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlcGxheS9SZXBsYXlJbnB1
dERpc3BhdGNoTWV0aG9kcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZXBsYXkvUmVwbGF5SW5wdXRE
aXNwYXRjaE1ldGhvZHMuY3BwCmluZGV4IDY0NTRhNDguLjg0NzUyYTIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlcGxheS9SZXBsYXlJbnB1dERpc3BhdGNoTWV0aG9kcy5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVwbGF5L1JlcGxheUlucHV0RGlzcGF0Y2hNZXRob2RzLmNwcApAQCAt
NTAsNyArNTAsOCBAQCB2b2lkIEVuZFNlZ21lbnRTZW50aW5lbDo6ZGlzcGF0Y2goUmVwbGF5Q29u
dHJvbGxlciYpCiAvLyBOYXZpZ2F0aW9uIGlucHV0cy4KIHZvaWQgSW5pdGlhbE5hdmlnYXRpb246
OmRpc3BhdGNoKFJlcGxheUNvbnRyb2xsZXImIGNvbnRyb2xsZXIpCiB7Ci0gICAgY29udHJvbGxl
ci5wYWdlKCkubWFpbkZyYW1lKCkubmF2aWdhdGlvblNjaGVkdWxlcigpLnNjaGVkdWxlTG9jYXRp
b25DaGFuZ2UobV9zZWN1cml0eU9yaWdpbi5nZXQoKSwgbV91cmwsIG1fcmVmZXJyZXIpOworICAg
IEZyYW1lJiBmcmFtZSA9IGNvbnRyb2xsZXIucGFnZSgpLm1haW5GcmFtZSgpOworICAgIGZyYW1l
Lm5hdmlnYXRpb25TY2hlZHVsZXIoKS5zY2hlZHVsZUxvY2F0aW9uQ2hhbmdlKGZyYW1lLmRvY3Vt
ZW50KCksIG1fc2VjdXJpdHlPcmlnaW4uZ2V0KCksIG1fdXJsLCBtX3JlZmVycmVyKTsKIH0KIAog
dm9pZCBIYW5kbGVLZXlQcmVzczo6ZGlzcGF0Y2goUmVwbGF5Q29udHJvbGxlciYgY29udHJvbGxl
cikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBRWxlbWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHQUVsZW1lbnQuY3BwCmluZGV4IDFhMjg0NmIuLmNhOWU4NjEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBRWxlbWVudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0FFbGVtZW50LmNwcApAQCAtMTQ1LDcgKzE0NSw3IEBAIHZvaWQgU1ZH
QUVsZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqIGV2ZW50KQogICAgICAgICAgICAg
RnJhbWUqIGZyYW1lID0gZG9jdW1lbnQoKS5mcmFtZSgpOwogICAgICAgICAgICAgaWYgKCFmcmFt
ZSkKICAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICBmcmFtZS0+bG9hZGVyKCku
dXJsU2VsZWN0ZWQoZG9jdW1lbnQoKS5jb21wbGV0ZVVSTCh1cmwpLCB0YXJnZXQsIGV2ZW50LCBM
b2NrSGlzdG9yeTo6Tm8sIExvY2tCYWNrRm9yd2FyZExpc3Q6Ok5vLCBNYXliZVNlbmRSZWZlcnJl
cik7CisgICAgICAgICAgICBmcmFtZS0+bG9hZGVyKCkudXJsU2VsZWN0ZWQoZG9jdW1lbnQoKS5j
b21wbGV0ZVVSTCh1cmwpLCB0YXJnZXQsIGV2ZW50LCBMb2NrSGlzdG9yeTo6Tm8sIExvY2tCYWNr
Rm9yd2FyZExpc3Q6Ok5vLCBNYXliZVNlbmRSZWZlcnJlciwgZG9jdW1lbnQoKS5sb2FkZXIoKS0+
c2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeVRvUHJvcGFnYXRlKCkpOwogICAgICAgICAgICAg
cmV0dXJuOwogICAgICAgICB9CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4IDAzMTczMDAuLmZl
NGNmMjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAxNS0wNi0wMSAgQnJh
ZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CisKKyAgICAgICAgV2ViS2l0IHBvbGljeSBk
ZWxlZ2F0ZSBzaG91bGQgc3VnZ2VzdCBpZiBhIG5hdmlnYXRpb24gc2hvdWxkIGJlIGFsbG93ZWQg
dG8gb3BlbiBVUkxzIGV4dGVybmFsbHkuCisgICAgICAgIHJkYXI6Ly9wcm9ibGVtLzIxMDI1MzAx
IGFuZCBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ1MjgwCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBQbHVnaW5zL1dl
YlBsdWdpbkNvbnRyb2xsZXIubW06CisgICAgICAgICgtW1dlYlBsdWdpbkNvbnRyb2xsZXIgd2Vi
UGx1Z0luQ29udGFpbmVyTG9hZFJlcXVlc3Q6aW5GcmFtZTpdKToKKyAgICAgICAgCisgICAgICAg
ICogV2ViVmlldy9XZWJGcmFtZS5tbToKKyAgICAgICAgKC1bV2ViRnJhbWUgbG9hZFJlcXVlc3Q6
XSk6CisgICAgICAgICgtW1dlYkZyYW1lIF9sb2FkRGF0YTpNSU1FVHlwZTp0ZXh0RW5jb2RpbmdO
YW1lOmJhc2VVUkw6dW5yZWFjaGFibGVVUkw6XSk6CisgICAgICAgIAorICAgICAgICAqIFdlYlZp
ZXcvV2ViUERGVmlldy5tbToKKyAgICAgICAgKC1bV2ViUERGVmlldyBQREZWaWV3V2lsbENsaWNr
T25MaW5rOndpdGhVUkw6XSk6CisKIDIwMTUtMDUtMjkgIEFuZGVycyBDYXJsc3NvbiAgPGFuZGVy
c2NhQGFwcGxlLmNvbT4KIAogICAgICAgICBNYWtlIHRoZSBoZWFkZXIgcmVwbGFjZSBydWxlIG1v
cmUgcmVzdHJpY3RpdmUgYW5kIGdldCByaWQgb2YgYSBzcGVjaWFsIGNhc2UKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvV2ViUGx1Z2luQ29udHJvbGxlci5tbSBiL1NvdXJj
ZS9XZWJLaXQvbWFjL1BsdWdpbnMvV2ViUGx1Z2luQ29udHJvbGxlci5tbQppbmRleCA4ZGIwMmY3
Li43N2U5YThmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL1dlYlBsdWdp
bkNvbnRyb2xsZXIubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9XZWJQbHVnaW5D
b250cm9sbGVyLm1tCkBAIC01MTYsNyArNTE2LDcgQEAgc3RhdGljIHZvaWQgY2FuY2VsT3V0c3Rh
bmRpbmdDaGVjayhjb25zdCB2b2lkICppdGVtLCB2b2lkICpjb250ZXh0KQogICAgICAgICAgICAg
TE9HX0VSUk9SKCJjb3VsZCBub3QgbG9hZCBVUkwgJUAiLCBbcmVxdWVzdCBVUkxdKTsKICAgICAg
ICAgICAgIHJldHVybjsKICAgICAgICAgfQotICAgICAgICBGcmFtZUxvYWRSZXF1ZXN0IGZyYW1l
UmVxdWVzdChjb3JlKGZyYW1lKSwgcmVxdWVzdCk7CisgICAgICAgIEZyYW1lTG9hZFJlcXVlc3Qg
ZnJhbWVSZXF1ZXN0KGNvcmUoZnJhbWUpLCByZXF1ZXN0LCBTaG91bGRPcGVuRXh0ZXJuYWxVUkxz
UG9saWN5OjpTaG91bGROb3RBbGxvdyk7CiAgICAgICAgIGZyYW1lUmVxdWVzdC5zZXRGcmFtZU5h
bWUodGFyZ2V0KTsKICAgICAgICAgZnJhbWVSZXF1ZXN0LnNldFNob3VsZENoZWNrTmV3V2luZG93
UG9saWN5KHRydWUpOwogICAgICAgICBjb3JlKGZyYW1lKS0+bG9hZGVyKCkubG9hZChmcmFtZVJl
cXVlc3QpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZS5t
bSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWUubW0KaW5kZXggNjI5ZmE4ZS4u
NGE5MzJiYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZS5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lLm1tCkBAIC0yNDc5LDcg
KzI0NzksNyBAQCBzdGF0aWMgYm9vbCBuZWVkc01pY3Jvc29mdE1lc3NlbmdlckRPTURvY3VtZW50
V29ya2Fyb3VuZCgpCiAgICAgaWYgKCFyZXNvdXJjZVJlcXVlc3QudXJsKCkuaXNWYWxpZCgpICYm
ICFyZXNvdXJjZVJlcXVlc3QudXJsKCkuaXNFbXB0eSgpKQogICAgICAgICByZXNvdXJjZVJlcXVl
c3Quc2V0VVJMKFtOU1VSTCBVUkxXaXRoU3RyaW5nOltAImZpbGU6IiBzdHJpbmdCeUFwcGVuZGlu
Z1N0cmluZzpbW3JlcXVlc3QgVVJMXSBhYnNvbHV0ZVN0cmluZ11dXSk7CiAKLSAgICBjb3JlRnJh
bWUtPmxvYWRlcigpLmxvYWQoRnJhbWVMb2FkUmVxdWVzdChjb3JlRnJhbWUsIHJlc291cmNlUmVx
dWVzdCkpOworICAgIGNvcmVGcmFtZS0+bG9hZGVyKCkubG9hZChGcmFtZUxvYWRSZXF1ZXN0KGNv
cmVGcmFtZSwgcmVzb3VyY2VSZXF1ZXN0LCBTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5OjpT
aG91bGROb3RBbGxvdykpOwogfQogCiBzdGF0aWMgTlNVUkwgKmNyZWF0ZVVuaXF1ZVdlYkRhdGFV
UkwoKQpAQCAtMjUyNyw3ICsyNTI3LDcgQEAgc3RhdGljIE5TVVJMICpjcmVhdGVVbmlxdWVXZWJE
YXRhVVJMKCkKICAgICBSZXNvdXJjZVJlc3BvbnNlIHJlc3BvbnNlKHJlc3BvbnNlVVJMLCBNSU1F
VHlwZSwgW2RhdGEgbGVuZ3RoXSwgZW5jb2RpbmdOYW1lKTsKICAgICBTdWJzdGl0dXRlRGF0YSBz
dWJzdGl0dXRlRGF0YShXZWJDb3JlOjpTaGFyZWRCdWZmZXI6OndyYXBOU0RhdGEoZGF0YSksIFt1
bnJlYWNoYWJsZVVSTCBhYnNvbHV0ZVVSTF0sIHJlc3BvbnNlLCBTdWJzdGl0dXRlRGF0YTo6U2Vz
c2lvbkhpc3RvcnlWaXNpYmlsaXR5OjpIaWRkZW4pOwogCi0gICAgX3ByaXZhdGUtPmNvcmVGcmFt
ZS0+bG9hZGVyKCkubG9hZChGcmFtZUxvYWRSZXF1ZXN0KF9wcml2YXRlLT5jb3JlRnJhbWUsIHJl
cXVlc3QsIHN1YnN0aXR1dGVEYXRhKSk7CisgICAgX3ByaXZhdGUtPmNvcmVGcmFtZS0+bG9hZGVy
KCkubG9hZChGcmFtZUxvYWRSZXF1ZXN0KF9wcml2YXRlLT5jb3JlRnJhbWUsIHJlcXVlc3QsIFNo
b3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3k6OlNob3VsZE5vdEFsbG93LCBzdWJzdGl0dXRlRGF0
YSkpOwogfQogCiAtICh2b2lkKWxvYWREYXRhOihOU0RhdGEgKilkYXRhIE1JTUVUeXBlOihOU1N0
cmluZyAqKU1JTUVUeXBlIHRleHRFbmNvZGluZ05hbWU6KE5TU3RyaW5nICopZW5jb2RpbmdOYW1l
IGJhc2VVUkw6KE5TVVJMICopYmFzZVVSTApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMv
V2ViVmlldy9XZWJQREZWaWV3Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJQREZW
aWV3Lm1tCmluZGV4IDVlN2JiMTQuLjFlZjFhZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
bWFjL1dlYlZpZXcvV2ViUERGVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3
L1dlYlBERlZpZXcubW0KQEAgLTEwMzcsNyArMTAzNyw3IEBAIHN0YXRpYyBCT09MIGlzRnJhbWVJ
blJhbmdlKFdlYkZyYW1lICpmcmFtZSwgRE9NUmFuZ2UgKnJhbmdlKQogCiAgICAgLy8gQ2FsbCB0
byB0aGUgZnJhbWUgbG9hZGVyIGJlY2F1c2UgdGhpcyBpcyB3aGVyZSBvdXIgc2VjdXJpdHkgY2hl
Y2tzIGFyZSBtYWRlLgogICAgIEZyYW1lKiBmcmFtZSA9IGNvcmUoW2RhdGFTb3VyY2Ugd2ViRnJh
bWVdKTsKLSAgICBmcmFtZS0+bG9hZGVyKCkubG9hZEZyYW1lUmVxdWVzdChGcmFtZUxvYWRSZXF1
ZXN0KGZyYW1lLT5kb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpLCBSZXNvdXJjZVJlcXVlc3Qo
VVJMKSwgTG9ja0hpc3Rvcnk6Ok5vLCBMb2NrQmFja0ZvcndhcmRMaXN0OjpObywgTWF5YmVTZW5k
UmVmZXJyZXIsIEFsbG93TmF2aWdhdGlvblRvSW52YWxpZFVSTDo6WWVzLCBOZXdGcmFtZU9wZW5l
clBvbGljeTo6QWxsb3cpLCBldmVudC5nZXQoKSwgbnVsbHB0cik7CisgICAgZnJhbWUtPmxvYWRl
cigpLmxvYWRGcmFtZVJlcXVlc3QoRnJhbWVMb2FkUmVxdWVzdChmcmFtZS0+ZG9jdW1lbnQoKS0+
c2VjdXJpdHlPcmlnaW4oKSwgUmVzb3VyY2VSZXF1ZXN0KFVSTCksIExvY2tIaXN0b3J5OjpObywg
TG9ja0JhY2tGb3J3YXJkTGlzdDo6Tm8sIE1heWJlU2VuZFJlZmVycmVyLCBBbGxvd05hdmlnYXRp
b25Ub0ludmFsaWRVUkw6OlllcywgTmV3RnJhbWVPcGVuZXJQb2xpY3k6OkFsbG93LCBTaG91bGRP
cGVuRXh0ZXJuYWxVUkxzUG9saWN5OjpTaG91bGROb3RBbGxvdyksIGV2ZW50LmdldCgpLCBudWxs
cHRyKTsKIH0KIAogLSAodm9pZClQREZWaWV3T3BlblBERkluTmF0aXZlQXBwbGljYXRpb246KFBE
RlZpZXcgKilzZW5kZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwppbmRleCA0MmE1YjU0Li42Mjk4ODA1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC93
aW4vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTUtMDYtMDEgIEJyYWR5IEVpZHNvbiAg
PGJlaWRzb25AYXBwbGUuY29tPgorCisgICAgICAgIFdlYktpdCBwb2xpY3kgZGVsZWdhdGUgc2hv
dWxkIHN1Z2dlc3QgaWYgYSBuYXZpZ2F0aW9uIHNob3VsZCBiZSBhbGxvd2VkIHRvIG9wZW4gVVJM
cyBleHRlcm5hbGx5LgorICAgICAgICByZGFyOi8vcHJvYmxlbS8yMTAyNTMwMSBhbmQgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NTI4MAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViQ29u
dGV4dE1lbnVDbGllbnQuY3BwOgorICAgICAgICAoV2ViQ29udGV4dE1lbnVDbGllbnQ6OnNlYXJj
aFdpdGhHb29nbGUpOgorCiAyMDE1LTA1LTI2ICBKb24gSG9uZXljdXR0ICA8amhvbmV5Y3V0dEBh
cHBsZS5jb20+CiAKICAgICAgICAgW2lPU10gV2hlbiB2aWV3aW5nIGFuIE1KUEVHIHN0cmVhbSBh
cyB0aGUgbWFpbiByZXNvdXJjZSwgb25seSB0aGUgZmlyc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNvbnRleHRNZW51Q2xpZW50LmNwcCBiL1NvdXJj
ZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNvbnRleHRNZW51Q2xpZW50LmNwcAppbmRl
eCBiMjYxYjk3Li4zNzRmZTZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3Jl
U3VwcG9ydC9XZWJDb250ZXh0TWVudUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC93aW4v
V2ViQ29yZVN1cHBvcnQvV2ViQ29udGV4dE1lbnVDbGllbnQuY3BwCkBAIC0xMjAsNyArMTIwLDcg
QEAgdm9pZCBXZWJDb250ZXh0TWVudUNsaWVudDo6c2VhcmNoV2l0aEdvb2dsZShjb25zdCBGcmFt
ZSogZnJhbWUpCiAKICAgICBpZiAoUGFnZSogcGFnZSA9IGZyYW1lLT5wYWdlKCkpIHsKICAgICAg
ICAgVXNlckdlc3R1cmVJbmRpY2F0b3IgaW5kaWNhdG9yKERlZmluaXRlbHlQcm9jZXNzaW5nVXNl
ckdlc3R1cmUpOwotICAgICAgICBwYWdlLT5tYWluRnJhbWUoKS5sb2FkZXIoKS51cmxTZWxlY3Rl
ZChVUkwoUGFyc2VkVVJMU3RyaW5nLCB1cmwpLCBTdHJpbmcoKSwgMCwgTG9ja0hpc3Rvcnk6Ok5v
LCBMb2NrQmFja0ZvcndhcmRMaXN0OjpObywgTWF5YmVTZW5kUmVmZXJyZXIpOworICAgICAgICBw
YWdlLT5tYWluRnJhbWUoKS5sb2FkZXIoKS51cmxTZWxlY3RlZChVUkwoUGFyc2VkVVJMU3RyaW5n
LCB1cmwpLCBTdHJpbmcoKSwgMCwgTG9ja0hpc3Rvcnk6Ok5vLCBMb2NrQmFja0ZvcndhcmRMaXN0
OjpObywgTWF5YmVTZW5kUmVmZXJyZXIsIFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3k6OlNo
b3VsZE5vdEFsbG93KTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCAwYTNlZDUwLi5iZmM2NjBm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMzQgQEAKIDIwMTUtMDYtMDEgIEJyYWR5IEVpZHNvbiAg
PGJlaWRzb25AYXBwbGUuY29tPgogCisgICAgICAgIFdlYktpdCBwb2xpY3kgZGVsZWdhdGUgc2hv
dWxkIHN1Z2dlc3QgaWYgYSBuYXZpZ2F0aW9uIHNob3VsZCBiZSBhbGxvd2VkIHRvIG9wZW4gVVJM
cyBleHRlcm5hbGx5LgorICAgICAgICByZGFyOi8vcHJvYmxlbS8yMTAyNTMwMSBhbmQgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NTI4MAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL1BE
Ri9QREZQbHVnaW4ubW06CisgICAgICAgIChXZWJLaXQ6OlBERlBsdWdpbjo6Y2xpY2tlZExpbmsp
OgorICAgICAgICAKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5jcHA6
CisgICAgICAgIChXZWJLaXQ6OlBsdWdpblZpZXc6OnBlcmZvcm1GcmFtZUxvYWRVUkxSZXF1ZXN0
KToKKyAgICAgICAgKFdlYktpdDo6UGx1Z2luVmlldzo6bG9hZFVSTCk6CisgICAgICAgIAorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ29udGV4dE1lbnVDbGllbnQuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0TWVudUNsaWVudDo6c2VhcmNoV2l0aEdvb2ds
ZSk6CisgICAgICAgIAorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJh
bWVMb2FkZXJDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZUxvYWRlckNsaWVu
dDo6ZGlzcGF0Y2hDcmVhdGVQYWdlKToKKyAgICAgICAgCisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYkluc3BlY3Rvci5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3Rvcjo6
b3BlbkluTmV3VGFiKToKKyAgICAgICAgCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpsb2FkVVJMSW5GcmFtZSk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmxvYWRSZXF1ZXN0KToKKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZTo6bG9hZERhdGFJbXBsKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6bmF2aWdh
dGVUb1BERkxpbmtXaXRoU2ltdWxhdGVkQ2xpY2spOgorCisyMDE1LTA2LTAxICBCcmFkeSBFaWRz
b24gIDxiZWlkc29uQGFwcGxlLmNvbT4KKwogICAgICAgICBBZGQgV0tUUiBzdXBwb3J0IGZvciAi
c2hvdWxkIG9wZW4gZXh0ZXJuYWwgVVJMcyIuCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNDU1MDUKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW4ubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5tbQppbmRleCBjN2E1ZTdlLi5kY2NjNTQxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdp
bi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdp
bi5tbQpAQCAtMTU5MSw3ICsxNTkxLDcgQEAgdm9pZCBQREZQbHVnaW46OmNsaWNrZWRMaW5rKE5T
VVJMICp1cmwpCiAgICAgaWYgKG1fbGFzdE1vdXNlRXZlbnQudHlwZSgpICE9IFdlYkV2ZW50OjpO
b1R5cGUpCiAgICAgICAgIGNvcmVFdmVudCA9IE1vdXNlRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVz
KCkuY2xpY2tFdmVudCwgZnJhbWUtPmRvY3VtZW50KCktPmRlZmF1bHRWaWV3KCksIHBsYXRmb3Jt
KG1fbGFzdE1vdXNlRXZlbnQpLCAwLCAwKTsKIAotICAgIGZyYW1lLT5sb2FkZXIoKS51cmxTZWxl
Y3RlZChjb3JlVVJMLCBlbXB0eVN0cmluZygpLCBjb3JlRXZlbnQuZ2V0KCksIExvY2tIaXN0b3J5
OjpObywgTG9ja0JhY2tGb3J3YXJkTGlzdDo6Tm8sIE1heWJlU2VuZFJlZmVycmVyKTsKKyAgICBm
cmFtZS0+bG9hZGVyKCkudXJsU2VsZWN0ZWQoY29yZVVSTCwgZW1wdHlTdHJpbmcoKSwgY29yZUV2
ZW50LmdldCgpLCBMb2NrSGlzdG9yeTo6Tm8sIExvY2tCYWNrRm9yd2FyZExpc3Q6Ok5vLCBNYXli
ZVNlbmRSZWZlcnJlciwgU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeTo6U2hvdWxkQWxsb3cp
OwogfQogCiB2b2lkIFBERlBsdWdpbjo6c2V0QWN0aXZlQW5ub3RhdGlvbihQREZBbm5vdGF0aW9u
ICphbm5vdGF0aW9uKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVn
aW5zL1BsdWdpblZpZXcuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1Bs
dWdpblZpZXcuY3BwCmluZGV4IDk0OTQwZmYuLjMwMThkNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5jcHAKQEAgLTExNzYsNyArMTE3Niw3
IEBAIHZvaWQgUGx1Z2luVmlldzo6cGVyZm9ybUZyYW1lTG9hZFVSTFJlcXVlc3QoVVJMUmVxdWVz
dCogcmVxdWVzdCkKICAgICBGcmFtZSogdGFyZ2V0RnJhbWUgPSBmcmFtZS0+bG9hZGVyKCkuZmlu
ZEZyYW1lRm9yTmF2aWdhdGlvbihyZXF1ZXN0LT50YXJnZXQoKSk7CiAgICAgaWYgKCF0YXJnZXRG
cmFtZSkgewogICAgICAgICAvLyBXZSBkaWQgbm90IGZpbmQgYSB0YXJnZXQgZnJhbWUuIEFzayBv
dXIgZnJhbWUgdG8gbG9hZCB0aGUgcGFnZS4gVGhpcyBtYXkgb3IgbWF5IG5vdCBjcmVhdGUgYSBw
b3B1cCB3aW5kb3cuCi0gICAgICAgIEZyYW1lTG9hZFJlcXVlc3QgZnJhbWVSZXF1ZXN0KGZyYW1l
LCByZXF1ZXN0LT5yZXF1ZXN0KCkpOworICAgICAgICBGcmFtZUxvYWRSZXF1ZXN0IGZyYW1lUmVx
dWVzdChmcmFtZSwgcmVxdWVzdC0+cmVxdWVzdCgpLCBTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9s
aWN5OjpTaG91bGROb3RBbGxvdyk7CiAgICAgICAgIGZyYW1lUmVxdWVzdC5zZXRGcmFtZU5hbWUo
cmVxdWVzdC0+dGFyZ2V0KCkpOwogICAgICAgICBmcmFtZVJlcXVlc3Quc2V0U2hvdWxkQ2hlY2tO
ZXdXaW5kb3dQb2xpY3kodHJ1ZSk7CiAgICAgICAgIGZyYW1lLT5sb2FkZXIoKS5sb2FkKGZyYW1l
UmVxdWVzdCk7CkBAIC0xMTg4LDcgKzExODgsNyBAQCB2b2lkIFBsdWdpblZpZXc6OnBlcmZvcm1G
cmFtZUxvYWRVUkxSZXF1ZXN0KFVSTFJlcXVlc3QqIHJlcXVlc3QpCiAgICAgfQogCiAgICAgLy8g
Tm93IGFzayB0aGUgZnJhbWUgdG8gbG9hZCB0aGUgcmVxdWVzdC4KLSAgICB0YXJnZXRGcmFtZS0+
bG9hZGVyKCkubG9hZChGcmFtZUxvYWRSZXF1ZXN0KHRhcmdldEZyYW1lLCByZXF1ZXN0LT5yZXF1
ZXN0KCkpKTsKKyAgICB0YXJnZXRGcmFtZS0+bG9hZGVyKCkubG9hZChGcmFtZUxvYWRSZXF1ZXN0
KHRhcmdldEZyYW1lLCByZXF1ZXN0LT5yZXF1ZXN0KCksIFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQ
b2xpY3k6OlNob3VsZE5vdEFsbG93KSk7CiAKICAgICBhdXRvKiB0YXJnZXRXZWJGcmFtZSA9IFdl
YkZyYW1lOjpmcm9tQ29yZUZyYW1lKCp0YXJnZXRGcmFtZSk7CiAgICAgQVNTRVJUKHRhcmdldFdl
YkZyYW1lKTsKQEAgLTEzNjcsNyArMTM2Nyw3IEBAIFN0cmluZyBQbHVnaW5WaWV3Ojp1c2VyQWdl
bnQoKQogCiB2b2lkIFBsdWdpblZpZXc6OmxvYWRVUkwodWludDY0X3QgcmVxdWVzdElELCBjb25z
dCBTdHJpbmcmIG1ldGhvZCwgY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcsIGNvbnN0IFN0cmluZyYg
dGFyZ2V0LCBjb25zdCBIVFRQSGVhZGVyTWFwJiBoZWFkZXJGaWVsZHMsIGNvbnN0IFZlY3Rvcjx1
aW50OF90PiYgaHR0cEJvZHksIGJvb2wgYWxsb3dQb3B1cHMpCiB7Ci0gICAgRnJhbWVMb2FkUmVx
dWVzdCBmcmFtZUxvYWRSZXF1ZXN0KG1fcGx1Z2luRWxlbWVudC0+ZG9jdW1lbnQoKS5zZWN1cml0
eU9yaWdpbigpLCBMb2NrSGlzdG9yeTo6Tm8sIExvY2tCYWNrRm9yd2FyZExpc3Q6Ok5vLCBNYXli
ZVNlbmRSZWZlcnJlciwgQWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJMOjpZZXMsIE5ld0ZyYW1l
T3BlbmVyUG9saWN5OjpBbGxvdyk7CisgICAgRnJhbWVMb2FkUmVxdWVzdCBmcmFtZUxvYWRSZXF1
ZXN0KG1fcGx1Z2luRWxlbWVudC0+ZG9jdW1lbnQoKS5zZWN1cml0eU9yaWdpbigpLCBMb2NrSGlz
dG9yeTo6Tm8sIExvY2tCYWNrRm9yd2FyZExpc3Q6Ok5vLCBNYXliZVNlbmRSZWZlcnJlciwgQWxs
b3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJMOjpZZXMsIE5ld0ZyYW1lT3BlbmVyUG9saWN5OjpBbGxv
dywgU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeTo6U2hvdWxkTm90QWxsb3cpOwogICAgIGZy
YW1lTG9hZFJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCkuc2V0SFRUUE1ldGhvZChtZXRob2QpOwog
ICAgIGZyYW1lTG9hZFJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCkuc2V0VVJMKG1fcGx1Z2luRWxl
bWVudC0+ZG9jdW1lbnQoKS5jb21wbGV0ZVVSTCh1cmxTdHJpbmcpKTsKICAgICBmcmFtZUxvYWRS
ZXF1ZXN0LnJlc291cmNlUmVxdWVzdCgpLnNldEhUVFBIZWFkZXJGaWVsZHMoaGVhZGVyRmllbGRz
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViQ29udGV4dE1lbnVDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJDb250ZXh0TWVudUNsaWVudC5jcHAKaW5kZXggNDBhNjBkOC4uNjU2OTQ4
NmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViQ29udGV4dE1lbnVDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViQ29udGV4dE1lbnVDbGllbnQuY3BwCkBAIC04Niw3ICs4Niw3IEBA
IHZvaWQgV2ViQ29udGV4dE1lbnVDbGllbnQ6OnNlYXJjaFdpdGhHb29nbGUoY29uc3QgRnJhbWUq
IGZyYW1lKQogCiAgICAgaWYgKFBhZ2UqIHBhZ2UgPSBmcmFtZS0+cGFnZSgpKSB7CiAgICAgICAg
IFVzZXJHZXN0dXJlSW5kaWNhdG9yIGluZGljYXRvcihEZWZpbml0ZWx5UHJvY2Vzc2luZ1VzZXJH
ZXN0dXJlKTsKLSAgICAgICAgcGFnZS0+bWFpbkZyYW1lKCkubG9hZGVyKCkudXJsU2VsZWN0ZWQo
VVJMKFBhcnNlZFVSTFN0cmluZywgdXJsKSwgU3RyaW5nKCksIDAsIExvY2tIaXN0b3J5OjpObywg
TG9ja0JhY2tGb3J3YXJkTGlzdDo6Tm8sIE1heWJlU2VuZFJlZmVycmVyKTsKKyAgICAgICAgcGFn
ZS0+bWFpbkZyYW1lKCkubG9hZGVyKCkudXJsU2VsZWN0ZWQoVVJMKFBhcnNlZFVSTFN0cmluZywg
dXJsKSwgU3RyaW5nKCksIDAsIExvY2tIaXN0b3J5OjpObywgTG9ja0JhY2tGb3J3YXJkTGlzdDo6
Tm8sIE1heWJlU2VuZFJlZmVycmVyLCBTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5OjpTaG91
bGROb3RBbGxvdyk7CiAgICAgfQogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGll
bnQuY3BwCmluZGV4IGQ2NWIxMDUuLjYxYjE0ZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJD
bGllbnQuY3BwCkBAIC02NTAsNyArNjUwLDcgQEAgRnJhbWUqIFdlYkZyYW1lTG9hZGVyQ2xpZW50
OjpkaXNwYXRjaENyZWF0ZVBhZ2UoY29uc3QgTmF2aWdhdGlvbkFjdGlvbiYgbmF2aWdhdGkKICAg
ICAgICAgcmV0dXJuIDA7CiAKICAgICAvLyBKdXN0IGNhbGwgdGhyb3VnaCB0byB0aGUgY2hyb21l
IGNsaWVudC4KLSAgICBGcmFtZUxvYWRSZXF1ZXN0IHJlcXVlc3QobV9mcmFtZS0+Y29yZUZyYW1l
KCktPmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCksIG5hdmlnYXRpb25BY3Rpb24ucmVzb3Vy
Y2VSZXF1ZXN0KCksIExvY2tIaXN0b3J5OjpObywgTG9ja0JhY2tGb3J3YXJkTGlzdDo6Tm8sIE1h
eWJlU2VuZFJlZmVycmVyLCBBbGxvd05hdmlnYXRpb25Ub0ludmFsaWRVUkw6OlllcywgTmV3RnJh
bWVPcGVuZXJQb2xpY3k6OkFsbG93KTsKKyAgICBGcmFtZUxvYWRSZXF1ZXN0IHJlcXVlc3QobV9m
cmFtZS0+Y29yZUZyYW1lKCktPmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCksIG5hdmlnYXRp
b25BY3Rpb24ucmVzb3VyY2VSZXF1ZXN0KCksIExvY2tIaXN0b3J5OjpObywgTG9ja0JhY2tGb3J3
YXJkTGlzdDo6Tm8sIE1heWJlU2VuZFJlZmVycmVyLCBBbGxvd05hdmlnYXRpb25Ub0ludmFsaWRV
Ukw6OlllcywgTmV3RnJhbWVPcGVuZXJQb2xpY3k6OkFsbG93LCBuYXZpZ2F0aW9uQWN0aW9uLnNo
b3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3koKSk7CiAgICAgUGFnZSogbmV3UGFnZSA9IHdlYlBh
Z2UtPmNvcmVQYWdlKCktPmNocm9tZSgpLmNyZWF0ZVdpbmRvdyhtX2ZyYW1lLT5jb3JlRnJhbWUo
KSwgcmVxdWVzdCwgV2luZG93RmVhdHVyZXMoKSwgbmF2aWdhdGlvbkFjdGlvbik7CiAgICAgaWYg
KCFuZXdQYWdlKQogICAgICAgICByZXR1cm4gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJJbnNwZWN0b3IuY3BwIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3Rvci5jcHAKaW5kZXggMWVhOTEyOC4uMmQwYzI1NCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3Rv
ci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3Rv
ci5jcHAKQEAgLTEzOCw3ICsxMzgsNyBAQCB2b2lkIFdlYkluc3BlY3Rvcjo6b3BlbkluTmV3VGFi
KGNvbnN0IFN0cmluZyYgdXJsU3RyaW5nKQogICAgICAgICByZXR1cm47CiAKICAgICBGcmFtZSYg
aW5zcGVjdGVkTWFpbkZyYW1lID0gaW5zcGVjdGVkUGFnZS0+bWFpbkZyYW1lKCk7Ci0gICAgRnJh
bWVMb2FkUmVxdWVzdCByZXF1ZXN0KGluc3BlY3RlZE1haW5GcmFtZS5kb2N1bWVudCgpLT5zZWN1
cml0eU9yaWdpbigpLCBSZXNvdXJjZVJlcXVlc3QodXJsU3RyaW5nKSwgIl9ibGFuayIsIExvY2tI
aXN0b3J5OjpObywgTG9ja0JhY2tGb3J3YXJkTGlzdDo6Tm8sIE1heWJlU2VuZFJlZmVycmVyLCBB
bGxvd05hdmlnYXRpb25Ub0ludmFsaWRVUkw6OlllcywgTmV3RnJhbWVPcGVuZXJQb2xpY3k6OkFs
bG93LCBSZXBsYWNlRG9jdW1lbnRJZkphdmFTY3JpcHRVUkwpOworICAgIEZyYW1lTG9hZFJlcXVl
c3QgcmVxdWVzdChpbnNwZWN0ZWRNYWluRnJhbWUuZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4o
KSwgUmVzb3VyY2VSZXF1ZXN0KHVybFN0cmluZyksICJfYmxhbmsiLCBMb2NrSGlzdG9yeTo6Tm8s
IExvY2tCYWNrRm9yd2FyZExpc3Q6Ok5vLCBNYXliZVNlbmRSZWZlcnJlciwgQWxsb3dOYXZpZ2F0
aW9uVG9JbnZhbGlkVVJMOjpZZXMsIE5ld0ZyYW1lT3BlbmVyUG9saWN5OjpBbGxvdywgUmVwbGFj
ZURvY3VtZW50SWZKYXZhU2NyaXB0VVJMLCBTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5OjpT
aG91bGROb3RBbGxvdyk7CiAKICAgICBQYWdlKiBuZXdQYWdlID0gaW5zcGVjdGVkUGFnZS0+Y2hy
b21lKCkuY3JlYXRlV2luZG93KCZpbnNwZWN0ZWRNYWluRnJhbWUsIHJlcXVlc3QsIFdpbmRvd0Zl
YXR1cmVzKCksIE5hdmlnYXRpb25BY3Rpb24ocmVxdWVzdC5yZXNvdXJjZVJlcXVlc3QoKSwgTmF2
aWdhdGlvblR5cGU6OkxpbmtDbGlja2VkKSk7CiAgICAgaWYgKCFuZXdQYWdlKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IGQ4MWRiOGUuLjYx
MDgwZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5j
cHAKQEAgLTEwMTEsNyArMTAxMSw3IEBAIHZvaWQgV2ViUGFnZTo6bG9hZFVSTEluRnJhbWUoY29u
c3QgU3RyaW5nJiB1cmwsIHVpbnQ2NF90IGZyYW1lSUQpCiAgICAgaWYgKCFmcmFtZSkKICAgICAg
ICAgcmV0dXJuOwogCi0gICAgZnJhbWUtPmNvcmVGcmFtZSgpLT5sb2FkZXIoKS5sb2FkKEZyYW1l
TG9hZFJlcXVlc3QoZnJhbWUtPmNvcmVGcmFtZSgpLCBSZXNvdXJjZVJlcXVlc3QoVVJMKFVSTCgp
LCB1cmwpKSkpOworICAgIGZyYW1lLT5jb3JlRnJhbWUoKS0+bG9hZGVyKCkubG9hZChGcmFtZUxv
YWRSZXF1ZXN0KGZyYW1lLT5jb3JlRnJhbWUoKSwgUmVzb3VyY2VSZXF1ZXN0KFVSTChVUkwoKSwg
dXJsKSksIFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3k6OlNob3VsZE5vdEFsbG93KSk7CiB9
CiAKIHZvaWQgV2ViUGFnZTo6bG9hZFJlcXVlc3QodWludDY0X3QgbmF2aWdhdGlvbklELCBjb25z
dCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFNhbmRib3hFeHRlbnNpb246OkhhbmRs
ZSYgc2FuZGJveEV4dGVuc2lvbkhhbmRsZSwgdWludDY0X3Qgc2hvdWxkT3BlbkV4dGVybmFsVVJM
c1BvbGljeSwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQpAQCAtMTAyNyw3ICsxMDI3LDcgQEAg
dm9pZCBXZWJQYWdlOjpsb2FkUmVxdWVzdCh1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFJl
c291cmNlUmVxdWVzdCYgcmVxdWVzdCwKICAgICBtX2xvYWRlckNsaWVudC53aWxsTG9hZFVSTFJl
cXVlc3QodGhpcywgcmVxdWVzdCwgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkudHJhbnNmb3JtSGFu
ZGxlc1RvT2JqZWN0cyh1c2VyRGF0YS5vYmplY3QoKSkuZ2V0KCkpOwogCiAgICAgLy8gSW5pdGF0
ZSB0aGUgbG9hZCBpbiBXZWJDb3JlLgotICAgIEZyYW1lTG9hZFJlcXVlc3QgZnJhbWVMb2FkUmVx
dWVzdChtX21haW5GcmFtZS0+Y29yZUZyYW1lKCksIHJlcXVlc3QpOworICAgIEZyYW1lTG9hZFJl
cXVlc3QgZnJhbWVMb2FkUmVxdWVzdChtX21haW5GcmFtZS0+Y29yZUZyYW1lKCksIHJlcXVlc3Qs
IFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3k6OlNob3VsZE5vdEFsbG93KTsKICAgICBTaG91
bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5IGV4dGVybmFsVVJMc1BvbGljeSA9IHN0YXRpY19jYXN0
PFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3k+KHNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xp
Y3kpOwogICAgIGZyYW1lTG9hZFJlcXVlc3Quc2V0U2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGlj
eShleHRlcm5hbFVSTHNQb2xpY3kpOwogCkBAIC0xMDUxLDcgKzEwNTEsNyBAQCB2b2lkIFdlYlBh
Z2U6OmxvYWREYXRhSW1wbCh1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFBhc3NSZWZQdHI8U2hhcmVk
QnVmZmVyPiBzaGFyZQogICAgIG1fbG9hZGVyQ2xpZW50LndpbGxMb2FkRGF0YVJlcXVlc3QodGhp
cywgcmVxdWVzdCwgY29uc3RfY2FzdDxTaGFyZWRCdWZmZXIqPihzdWJzdGl0dXRlRGF0YS5jb250
ZW50KCkpLCBzdWJzdGl0dXRlRGF0YS5taW1lVHlwZSgpLCBzdWJzdGl0dXRlRGF0YS50ZXh0RW5j
b2RpbmcoKSwgc3Vic3RpdHV0ZURhdGEuZmFpbGluZ1VSTCgpLCBXZWJQcm9jZXNzOjpzaW5nbGV0
b24oKS50cmFuc2Zvcm1IYW5kbGVzVG9PYmplY3RzKHVzZXJEYXRhLm9iamVjdCgpKS5nZXQoKSk7
CiAKICAgICAvLyBJbml0YXRlIHRoZSBsb2FkIGluIFdlYkNvcmUuCi0gICAgbV9tYWluRnJhbWUt
PmNvcmVGcmFtZSgpLT5sb2FkZXIoKS5sb2FkKEZyYW1lTG9hZFJlcXVlc3QobV9tYWluRnJhbWUt
PmNvcmVGcmFtZSgpLCByZXF1ZXN0LCBzdWJzdGl0dXRlRGF0YSkpOworICAgIG1fbWFpbkZyYW1l
LT5jb3JlRnJhbWUoKS0+bG9hZGVyKCkubG9hZChGcmFtZUxvYWRSZXF1ZXN0KG1fbWFpbkZyYW1l
LT5jb3JlRnJhbWUoKSwgcmVxdWVzdCwgU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeTo6U2hv
dWxkTm90QWxsb3csIHN1YnN0aXR1dGVEYXRhKSk7CiB9CiAKIHZvaWQgV2ViUGFnZTo6bG9hZFN0
cmluZyh1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFN0cmluZyYgaHRtbFN0cmluZywgY29u
c3QgU3RyaW5nJiBNSU1FVHlwZSwgY29uc3QgVVJMJiBiYXNlVVJMLCBjb25zdCBVUkwmIHVucmVh
Y2hhYmxlVVJMLCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCkBAIC0xMTA4LDcgKzExMDgsOCBA
QCB2b2lkIFdlYlBhZ2U6Om5hdmlnYXRlVG9QREZMaW5rV2l0aFNpbXVsYXRlZENsaWNrKGNvbnN0
IFN0cmluZyYgdXJsLCBJbnRQb2ludCBkbwogCiAgICAgY29uc3QgaW50IHNpbmdsZUNsaWNrID0g
MTsKICAgICBSZWZQdHI8TW91c2VFdmVudD4gbW91c2VFdmVudCA9IE1vdXNlRXZlbnQ6OmNyZWF0
ZShldmVudE5hbWVzKCkuY2xpY2tFdmVudCwgdHJ1ZSwgdHJ1ZSwgY3VycmVudFRpbWUoKSwgbnVs
bHB0ciwgc2luZ2xlQ2xpY2ssIHNjcmVlblBvaW50LngoKSwgc2NyZWVuUG9pbnQueSgpLCBkb2N1
bWVudFBvaW50LngoKSwgZG9jdW1lbnRQb2ludC55KCksIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZh
bHNlLCAwLCBudWxscHRyLCAwLCBudWxscHRyKTsKLSAgICBtYWluRnJhbWUtPmxvYWRlcigpLnVy
bFNlbGVjdGVkKG1haW5GcmFtZURvY3VtZW50LT5jb21wbGV0ZVVSTCh1cmwpLCBlbXB0eVN0cmlu
ZygpLCBtb3VzZUV2ZW50LmdldCgpLCBMb2NrSGlzdG9yeTo6Tm8sIExvY2tCYWNrRm9yd2FyZExp
c3Q6Ok5vLCBTaG91bGRTZW5kUmVmZXJyZXI6Ok1heWJlU2VuZFJlZmVycmVyKTsKKworICAgIG1h
aW5GcmFtZS0+bG9hZGVyKCkudXJsU2VsZWN0ZWQobWFpbkZyYW1lRG9jdW1lbnQtPmNvbXBsZXRl
VVJMKHVybCksIGVtcHR5U3RyaW5nKCksIG1vdXNlRXZlbnQuZ2V0KCksIExvY2tIaXN0b3J5OjpO
bywgTG9ja0JhY2tGb3J3YXJkTGlzdDo6Tm8sIFNob3VsZFNlbmRSZWZlcnJlcjo6TWF5YmVTZW5k
UmVmZXJyZXIsIFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3k6OlNob3VsZE5vdEFsbG93KTsK
IH0KIAogdm9pZCBXZWJQYWdlOjpzdG9wTG9hZGluZ0ZyYW1lKHVpbnQ2NF90IGZyYW1lSUQpCg==
</data>
<flag name="review"
          id="278995"
          type_id="1"
          status="-"
          setter="beidson"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>254030</attachid>
            <date>2015-06-01 17:15:03 -0700</date>
            <delta_ts>2015-06-02 10:08:03 -0700</delta_ts>
            <desc>Patch v2</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>138373</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA3OTJlMjE1Li43MjEyYWY0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsNjIgQEAKIDIwMTUtMDYt
MDEgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgogCisgICAgICAgIFdlYktpdCBw
b2xpY3kgZGVsZWdhdGUgc2hvdWxkIHN1Z2dlc3QgaWYgYSBuYXZpZ2F0aW9uIHNob3VsZCBiZSBh
bGxvd2VkIHRvIG9wZW4gVVJMcyBleHRlcm5hbGx5LgorICAgICAgICByZGFyOi8vcHJvYmxlbS8y
MTAyNTMwMSBhbmQgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NTI4
MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogbG9h
ZGVyL25hdmlnYXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvbWFpbi1mcmFt
ZS1jbGljay1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGxvYWRlci9uYXZpZ2F0aW9u
LXBvbGljeS9zaG91bGQtb3Blbi1leHRlcm5hbC11cmxzL21haW4tZnJhbWUtY2xpY2suaHRtbDog
QWRkZWQuCisgICAgICAgICogbG9hZGVyL25hdmlnYXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4
dGVybmFsLXVybHMvbWFpbi1mcmFtZS1uYXZpZ2F0ZWQtcHJvZ3JhbWF0aWNhbGx5LWJ5LXN1YmZy
YW1lLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogbG9hZGVyL25hdmlnYXRpb24tcG9s
aWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvbWFpbi1mcmFtZS1uYXZpZ2F0ZWQtcHJvZ3Jh
bWF0aWNhbGx5LWJ5LXN1YmZyYW1lLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGxvYWRlci9uYXZp
Z2F0aW9uLXBvbGljeS9zaG91bGQtb3Blbi1leHRlcm5hbC11cmxzL21haW4tZnJhbWUtd2l0aC1m
bGFnLXByb2dhbWF0aWMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBsb2FkZXIvbmF2
aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJscy9tYWluLWZyYW1lLXdpdGgt
ZmxhZy1wcm9nYW1hdGljLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGxvYWRlci9uYXZpZ2F0aW9u
LXBvbGljeS9zaG91bGQtb3Blbi1leHRlcm5hbC11cmxzL21haW4tZnJhbWUtd2l0aG91dC1mbGFn
LXByb2dyYW1hdGljLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogbG9hZGVyL25hdmln
YXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvbWFpbi1mcmFtZS13aXRob3V0
LWZsYWctcHJvZ3JhbWF0aWMuaHRtbDogQWRkZWQuCisgICAgICAgICogbG9hZGVyL25hdmlnYXRp
b24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvcmVzb3VyY2VzL2NsaWNrLW5vdGlm
eS1kb25lLWluLW1haW4uaHRtbDogQWRkZWQuCisgICAgICAgICogbG9hZGVyL25hdmlnYXRpb24t
cG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvcmVzb3VyY2VzL2lmcmFtZS1jbGljay1u
b3RpZnktZG9uZS10YXJnZXQtc2VsZi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBsb2FkZXIvbmF2
aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJscy9yZXNvdXJjZXMvaWZyYW1l
LWNsaWNrLW5vdGlmeS1kb25lLXRhcmdldC10b3AuaHRtbDogQWRkZWQuCisgICAgICAgICogbG9h
ZGVyL25hdmlnYXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvcmVzb3VyY2Vz
L21haW4tZnJhbWUtd2l0aC1zdWJmcmFtZS1jbGljay10YXJnZXRzLXN1YmZyYW1lLmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIGxvYWRlci9uYXZpZ2F0aW9uLXBvbGljeS9zaG91bGQtb3Blbi1leHRl
cm5hbC11cmxzL3Jlc291cmNlcy9tYWluLWZyYW1lLXdpdGgtc3ViZnJhbWUtcHJvZ3JhbWF0aWNh
bGx5LW5hdmlnYXRlcy1tYWluLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGxvYWRlci9uYXZpZ2F0
aW9uLXBvbGljeS9zaG91bGQtb3Blbi1leHRlcm5hbC11cmxzL3Jlc291cmNlcy9wcm9ncmFtYXRp
Y2FsbHktbmF2aWdhdGUtdG8tbm90aWZ5LWRvbmUtdGFyZ2V0LXRvcC5odG1sOiBBZGRlZC4KKyAg
ICAgICAgKiBsb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJs
cy9yZXNvdXJjZXMvcHJvZ3JhbWF0aWNhbGx5LW5hdmlnYXRlLXRvLW5vdGlmeS1kb25lLmh0bWw6
IEFkZGVkLgorICAgICAgICAqIGxvYWRlci9uYXZpZ2F0aW9uLXBvbGljeS9zaG91bGQtb3Blbi1l
eHRlcm5hbC11cmxzL3Jlc291cmNlcy91c2VyLWdlc3R1cmUtdGFyZ2V0LWJsYW5rLXRvLW5vdGlm
eS1kb25lLWZyb20tc3ViZnJhbWUuaHRtbDogQWRkZWQuCisgICAgICAgICogbG9hZGVyL25hdmln
YXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvcmVzb3VyY2VzL3VzZXItZ2Vz
dHVyZS10YXJnZXQtYmxhbmstdG8tbm90aWZ5LWRvbmUuaHRtbDogQWRkZWQuCisgICAgICAgICog
bG9hZGVyL25hdmlnYXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvcmVzb3Vy
Y2VzL3VzZXItZ2VzdHVyZS13aW5kb3ctb3Blbi10by1ub3RpZnktZG9uZS1mcm9tLXN1YmZyYW1l
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGxvYWRlci9uYXZpZ2F0aW9uLXBvbGljeS9zaG91bGQt
b3Blbi1leHRlcm5hbC11cmxzL3Jlc291cmNlcy91c2VyLWdlc3R1cmUtd2luZG93LW9wZW4tdG8t
bm90aWZ5LWRvbmUuaHRtbDogQWRkZWQuCisgICAgICAgICogbG9hZGVyL25hdmlnYXRpb24tcG9s
aWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvcmVzb3VyY2VzL3dpbmRvdy1vcGVuLXRvLW5v
dGlmeS1kb25lLWZyb20tc3ViZnJhbWUuaHRtbDogQWRkZWQuCisgICAgICAgICogbG9hZGVyL25h
dmlnYXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvcmVzb3VyY2VzL3dpbmRv
dy1vcGVuLXRvLW5vdGlmeS1kb25lLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGxvYWRlci9uYXZp
Z2F0aW9uLXBvbGljeS9zaG91bGQtb3Blbi1leHRlcm5hbC11cmxzL3N1YmZyYW1lLWNsaWNrLXRh
cmdldC1zZWxmLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogbG9hZGVyL25hdmlnYXRp
b24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvc3ViZnJhbWUtY2xpY2stdGFyZ2V0
LXNlbGYuaHRtbDogQWRkZWQuCisgICAgICAgICogbG9hZGVyL25hdmlnYXRpb24tcG9saWN5L3No
b3VsZC1vcGVuLWV4dGVybmFsLXVybHMvc3ViZnJhbWUtY2xpY2stdGFyZ2V0LXRvcC1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGxvYWRlci9uYXZpZ2F0aW9uLXBvbGljeS9zaG91bGQt
b3Blbi1leHRlcm5hbC11cmxzL3N1YmZyYW1lLWNsaWNrLXRhcmdldC10b3AuaHRtbDogQWRkZWQu
CisgICAgICAgICogbG9hZGVyL25hdmlnYXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFs
LXVybHMvdXNlci1nZXN0dXJlLXRhcmdldC1ibGFuay13aXRoLWZsYWctZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBsb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0
ZXJuYWwtdXJscy91c2VyLWdlc3R1cmUtdGFyZ2V0LWJsYW5rLXdpdGgtZmxhZy1mcm9tLXN1YmZy
YW1lLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogbG9hZGVyL25hdmlnYXRpb24tcG9s
aWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvdXNlci1nZXN0dXJlLXRhcmdldC1ibGFuay13
aXRoLWZsYWctZnJvbS1zdWJmcmFtZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBsb2FkZXIvbmF2
aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJscy91c2VyLWdlc3R1cmUtdGFy
Z2V0LWJsYW5rLXdpdGgtZmxhZy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBsb2FkZXIvbmF2aWdh
dGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJscy91c2VyLWdlc3R1cmUtdGFyZ2V0
LWJsYW5rLXdpdGhvdXQtZmxhZy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGxvYWRl
ci9uYXZpZ2F0aW9uLXBvbGljeS9zaG91bGQtb3Blbi1leHRlcm5hbC11cmxzL3VzZXItZ2VzdHVy
ZS10YXJnZXQtYmxhbmstd2l0aG91dC1mbGFnLWZyb20tc3ViZnJhbWUtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBsb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0
ZXJuYWwtdXJscy91c2VyLWdlc3R1cmUtdGFyZ2V0LWJsYW5rLXdpdGhvdXQtZmxhZy1mcm9tLXN1
YmZyYW1lLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGxvYWRlci9uYXZpZ2F0aW9uLXBvbGljeS9z
aG91bGQtb3Blbi1leHRlcm5hbC11cmxzL3VzZXItZ2VzdHVyZS10YXJnZXQtYmxhbmstd2l0aG91
dC1mbGFnLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGxvYWRlci9uYXZpZ2F0aW9uLXBvbGljeS9z
aG91bGQtb3Blbi1leHRlcm5hbC11cmxzL3VzZXItZ2VzdHVyZS13aW5kb3ctb3Blbi13aXRoLWZs
YWctZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBsb2FkZXIvbmF2aWdhdGlvbi1wb2xp
Y3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJscy91c2VyLWdlc3R1cmUtd2luZG93LW9wZW4td2l0
aC1mbGFnLWZyb20tc3ViZnJhbWUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBsb2Fk
ZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJscy91c2VyLWdlc3R1
cmUtd2luZG93LW9wZW4td2l0aC1mbGFnLWZyb20tc3ViZnJhbWUuaHRtbDogQWRkZWQuCisgICAg
ICAgICogbG9hZGVyL25hdmlnYXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMv
dXNlci1nZXN0dXJlLXdpbmRvdy1vcGVuLXdpdGgtZmxhZy5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBsb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJscy91c2Vy
LWdlc3R1cmUtd2luZG93LW9wZW4td2l0aG91dC1mbGFnLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogbG9hZGVyL25hdmlnYXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVy
bHMvdXNlci1nZXN0dXJlLXdpbmRvdy1vcGVuLXdpdGhvdXQtZmxhZy1mcm9tLXN1YmZyYW1lLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogbG9hZGVyL25hdmlnYXRpb24tcG9saWN5L3No
b3VsZC1vcGVuLWV4dGVybmFsLXVybHMvdXNlci1nZXN0dXJlLXdpbmRvdy1vcGVuLXdpdGhvdXQt
ZmxhZy1mcm9tLXN1YmZyYW1lLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGxvYWRlci9uYXZpZ2F0
aW9uLXBvbGljeS9zaG91bGQtb3Blbi1leHRlcm5hbC11cmxzL3VzZXItZ2VzdHVyZS13aW5kb3ct
b3Blbi13aXRob3V0LWZsYWcuaHRtbDogQWRkZWQuCisgICAgICAgICogbG9hZGVyL25hdmlnYXRp
b24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvd2luZG93LW9wZW4td2l0aC1mbGFn
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogbG9hZGVyL25hdmlnYXRpb24tcG9saWN5
L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvd2luZG93LW9wZW4td2l0aC1mbGFnLWZyb20tc3Vi
ZnJhbWUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBsb2FkZXIvbmF2aWdhdGlvbi1w
b2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJscy93aW5kb3ctb3Blbi13aXRoLWZsYWctZnJv
bS1zdWJmcmFtZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBsb2FkZXIvbmF2aWdhdGlvbi1wb2xp
Y3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJscy93aW5kb3ctb3Blbi13aXRoLWZsYWcuaHRtbDog
QWRkZWQuCisgICAgICAgICogbG9hZGVyL25hdmlnYXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4
dGVybmFsLXVybHMvd2luZG93LW9wZW4td2l0aG91dC1mbGFnLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogbG9hZGVyL25hdmlnYXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFs
LXVybHMvd2luZG93LW9wZW4td2l0aG91dC1mbGFnLWZyb20tc3ViZnJhbWUtZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBsb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4t
ZXh0ZXJuYWwtdXJscy93aW5kb3ctb3Blbi13aXRob3V0LWZsYWctZnJvbS1zdWJmcmFtZS5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiBsb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4t
ZXh0ZXJuYWwtdXJscy93aW5kb3ctb3Blbi13aXRob3V0LWZsYWcuaHRtbDogQWRkZWQuCisKKzIw
MTUtMDYtMDEgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCiAgICAgICAgIEFk
ZCBXS1RSIHN1cHBvcnQgZm9yICJzaG91bGQgb3BlbiBleHRlcm5hbCBVUkxzIi4KICAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NTUwNQogCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0
ZXJuYWwtdXJscy9tYWluLWZyYW1lLWNsaWNrLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2xv
YWRlci9uYXZpZ2F0aW9uLXBvbGljeS9zaG91bGQtb3Blbi1leHRlcm5hbC11cmxzL21haW4tZnJh
bWUtY2xpY2stZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LjFhYTJhYjEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdhdGlv
bi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJscy9tYWluLWZyYW1lLWNsaWNrLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDUgQEAKKyAtIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rp
b24gCis8TlNVUkxSZXF1ZXN0IFVSTCByZXNvdXJjZXMvY2xpY2stbm90aWZ5LWRvbmUtaW4tbWFp
bi5odG1sLCBtYWluIGRvY3VtZW50IFVSTCByZXNvdXJjZXMvY2xpY2stbm90aWZ5LWRvbmUtaW4t
bWFpbi5odG1sLCBodHRwIG1ldGhvZCBHRVQ+IGlzIG1haW4gZnJhbWUgLSB5ZXMgc2hvdWxkIG9w
ZW4gVVJMcyBleHRlcm5hbGx5IC0gbm8KKyAtIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rp
b24gCis8TlNVUkxSZXF1ZXN0IFVSTCBub3RpZnktZG9uZS5odG1sLCBtYWluIGRvY3VtZW50IFVS
TCBub3RpZnktZG9uZS5odG1sLCBodHRwIG1ldGhvZCBHRVQ+IGlzIG1haW4gZnJhbWUgLSB5ZXMg
c2hvdWxkIG9wZW4gVVJMcyBleHRlcm5hbGx5IC0geWVzCisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2xvYWRlci9uYXZpZ2F0aW9uLXBvbGljeS9zaG91bGQtb3Blbi1leHRlcm5hbC11cmxzL21h
aW4tZnJhbWUtY2xpY2suaHRtbCBiL0xheW91dFRlc3RzL2xvYWRlci9uYXZpZ2F0aW9uLXBvbGlj
eS9zaG91bGQtb3Blbi1leHRlcm5hbC11cmxzL21haW4tZnJhbWUtY2xpY2suaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42MGRiOTU5Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvbG9hZGVyL25hdmlnYXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFs
LXVybHMvbWFpbi1mcmFtZS1jbGljay5odG1sCkBAIC0wLDAgKzEsMTkgQEAKKzxzY3JpcHQ+CisK
K2lmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwor
ICAgIHRlc3RSdW5uZXIuZHVtcFBvbGljeURlbGVnYXRlQ2FsbGJhY2tzKCk7CisgICAgdGVzdFJ1
bm5lci53YWl0VW50aWxEb25lKCk7Cit9CisKK2Z1bmN0aW9uIHJ1blRlc3QoKQoreworICAgIHdp
bmRvdy5sb2NhdGlvbi5ocmVmID0gInJlc291cmNlcy9jbGljay1ub3RpZnktZG9uZS1pbi1tYWlu
Lmh0bWwiOworfQorCis8L3NjcmlwdD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpOyI+CitUaGlz
IG1haW4gZnJhbWUgbG9hZCBzdGFydHMgd2l0aCB0aGUgc2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJs
cyBmbGFnIHNldCB0byBmYWxzZS48YnI+CitJdCBsb2FkcyBhIG5ldyBwYWdlIHByb2dyYW1tYXRp
Y2FsbHksIGxlYXZpbmcgdGhlIGZsYWcgZmFsc2UuPGJyPgorVGhhdCBuZXcgcGFnZSBjbGlja3Mg
YSBsaW5rLCB3aGljaCBzaG91bGQgc2V0IHRoZSBmbGFnIHRvIHRydWUuCis8L2JvZHk+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4t
ZXh0ZXJuYWwtdXJscy9tYWluLWZyYW1lLW5hdmlnYXRlZC1wcm9ncmFtYXRpY2FsbHktYnktc3Vi
ZnJhbWUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvbG9hZGVyL25hdmlnYXRpb24tcG9saWN5
L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvbWFpbi1mcmFtZS1uYXZpZ2F0ZWQtcHJvZ3JhbWF0
aWNhbGx5LWJ5LXN1YmZyYW1lLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi5mZmUwNzgyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbG9hZGVy
L25hdmlnYXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvbWFpbi1mcmFtZS1u
YXZpZ2F0ZWQtcHJvZ3JhbWF0aWNhbGx5LWJ5LXN1YmZyYW1lLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDcgQEAKKyAtIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24gCis8TlNVUkxSZXF1
ZXN0IFVSTCByZXNvdXJjZXMvbWFpbi1mcmFtZS13aXRoLXN1YmZyYW1lLXByb2dyYW1hdGljYWxs
eS1uYXZpZ2F0ZXMtbWFpbi5odG1sLCBtYWluIGRvY3VtZW50IFVSTCByZXNvdXJjZXMvbWFpbi1m
cmFtZS13aXRoLXN1YmZyYW1lLXByb2dyYW1hdGljYWxseS1uYXZpZ2F0ZXMtbWFpbi5odG1sLCBo
dHRwIG1ldGhvZCBHRVQ+IGlzIG1haW4gZnJhbWUgLSB5ZXMgc2hvdWxkIG9wZW4gVVJMcyBleHRl
cm5hbGx5IC0geWVzCisgLSBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uIAorPE5TVVJM
UmVxdWVzdCBVUkwgcHJvZ3JhbWF0aWNhbGx5LW5hdmlnYXRlLXRvLW5vdGlmeS1kb25lLXRhcmdl
dC10b3AuaHRtbCwgbWFpbiBkb2N1bWVudCBVUkwgbWFpbi1mcmFtZS13aXRoLXN1YmZyYW1lLXBy
b2dyYW1hdGljYWxseS1uYXZpZ2F0ZXMtbWFpbi5odG1sLCBodHRwIG1ldGhvZCBHRVQ+IGlzIG1h
aW4gZnJhbWUgLSBubyBzaG91bGQgb3BlbiBVUkxzIGV4dGVybmFsbHkgLSBubworIC0gZGVjaWRl
UG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbiAKKzxOU1VSTFJlcXVlc3QgVVJMIG5vdGlmeS1kb25l
Lmh0bWwsIG1haW4gZG9jdW1lbnQgVVJMIG5vdGlmeS1kb25lLmh0bWwsIGh0dHAgbWV0aG9kIEdF
VD4gaXMgbWFpbiBmcmFtZSAtIHllcyBzaG91bGQgb3BlbiBVUkxzIGV4dGVybmFsbHkgLSBubwor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxk
LW9wZW4tZXh0ZXJuYWwtdXJscy9tYWluLWZyYW1lLW5hdmlnYXRlZC1wcm9ncmFtYXRpY2FsbHkt
Ynktc3ViZnJhbWUuaHRtbCBiL0xheW91dFRlc3RzL2xvYWRlci9uYXZpZ2F0aW9uLXBvbGljeS9z
aG91bGQtb3Blbi1leHRlcm5hbC11cmxzL21haW4tZnJhbWUtbmF2aWdhdGVkLXByb2dyYW1hdGlj
YWxseS1ieS1zdWJmcmFtZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LjNiYTNlM2QKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdhdGlv
bi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJscy9tYWluLWZyYW1lLW5hdmlnYXRlZC1w
cm9ncmFtYXRpY2FsbHktYnktc3ViZnJhbWUuaHRtbApAQCAtMCwwICsxLDEzIEBACis8c2NyaXB0
PgorCitpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQo
KTsKKyAgICB0ZXN0UnVubmVyLmR1bXBQb2xpY3lEZWxlZ2F0ZUNhbGxiYWNrcygpOworICAgIHRl
c3RSdW5uZXIucXVldWVMb2FkKCJyZXNvdXJjZXMvbWFpbi1mcmFtZS13aXRoLXN1YmZyYW1lLXBy
b2dyYW1hdGljYWxseS1uYXZpZ2F0ZXMtbWFpbi5odG1sIiwgIiIsIHRydWUpOworfQorCis8L3Nj
cmlwdD4KK1RoaXMgcGFnZSBoYXMgZG9lcyBub3QgaGF2ZSB0aGUgInNob3VsZCBvcGVuIGV4dGVy
bmFsIFVSTHMiIGZsYWcgc2V0Ljxicj4KK0l0IG5hdmlnYXRlcyB0byBhIDJuZCBwYWdlIHRoYXQg
ZG9lcyBoYXZlIHRoZSBmbGFnIHNldC48YnI+CitUaGF0IDJuZCBwYWdlIGNvbnRhaW5zIGFuIGlm
cmFtZSB3aGljaCBwcm9ncmFtYXRpY2FsbHkgbmF2aWdhdGVzIHRoZSBtYWluIGZyYW1lIHRvIGEg
M3JkIHBhZ2UuPGJyPgorVGhlICJzaG91bGQgb3BlbiBleHRlcm5hbCBVUkxzIiBmbGFnIHNob3Vs
ZCBiZSB1bnNldCBiZWNhdXNlIHRoZSBzdWJmcmFtZS0+bWFpbiBmcmFtZSBuYXZpZ2F0aW9uIHdh
cyBwcm9ncmFtYXRpYy48YnI+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdh
dGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJscy9tYWluLWZyYW1lLXdpdGgtZmxh
Zy1wcm9nYW1hdGljLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2xvYWRlci9uYXZpZ2F0aW9u
LXBvbGljeS9zaG91bGQtb3Blbi1leHRlcm5hbC11cmxzL21haW4tZnJhbWUtd2l0aC1mbGFnLXBy
b2dhbWF0aWMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LjI2NDFhZGQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdhdGlv
bi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJscy9tYWluLWZyYW1lLXdpdGgtZmxhZy1w
cm9nYW1hdGljLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKKyAtIGRlY2lkZVBvbGljeUZv
ck5hdmlnYXRpb25BY3Rpb24gCis8TlNVUkxSZXF1ZXN0IFVSTCByZXNvdXJjZXMvcHJvZ3JhbWF0
aWNhbGx5LW5hdmlnYXRlLXRvLW5vdGlmeS1kb25lLmh0bWwsIG1haW4gZG9jdW1lbnQgVVJMIHJl
c291cmNlcy9wcm9ncmFtYXRpY2FsbHktbmF2aWdhdGUtdG8tbm90aWZ5LWRvbmUuaHRtbCwgaHR0
cCBtZXRob2QgR0VUPiBpcyBtYWluIGZyYW1lIC0geWVzIHNob3VsZCBvcGVuIFVSTHMgZXh0ZXJu
YWxseSAtIHllcworIC0gZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbiAKKzxOU1VSTFJl
cXVlc3QgVVJMIG5vdGlmeS1kb25lLmh0bWwsIG1haW4gZG9jdW1lbnQgVVJMIG5vdGlmeS1kb25l
Lmh0bWwsIGh0dHAgbWV0aG9kIEdFVD4gaXMgbWFpbiBmcmFtZSAtIHllcyBzaG91bGQgb3BlbiBV
UkxzIGV4dGVybmFsbHkgLSB5ZXMKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbG9hZGVyL25h
dmlnYXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvbWFpbi1mcmFtZS13aXRo
LWZsYWctcHJvZ2FtYXRpYy5odG1sIGIvTGF5b3V0VGVzdHMvbG9hZGVyL25hdmlnYXRpb24tcG9s
aWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvbWFpbi1mcmFtZS13aXRoLWZsYWctcHJvZ2Ft
YXRpYy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjllM2RlMzgKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hv
dWxkLW9wZW4tZXh0ZXJuYWwtdXJscy9tYWluLWZyYW1lLXdpdGgtZmxhZy1wcm9nYW1hdGljLmh0
bWwKQEAgLTAsMCArMSwxMiBAQAorPHNjcmlwdD4KKworaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7
CisgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgdGVzdFJ1bm5lci5kdW1wUG9saWN5
RGVsZWdhdGVDYWxsYmFja3MoKTsKKyAgICB0ZXN0UnVubmVyLnF1ZXVlTG9hZCgicmVzb3VyY2Vz
L3Byb2dyYW1hdGljYWxseS1uYXZpZ2F0ZS10by1ub3RpZnktZG9uZS5odG1sIiwgIiIsIHRydWUp
OworfQorCis8L3NjcmlwdD4KK1RoaXMgcGFnZSBuYXZpZ2F0ZXMgdG8gYSAybmQgcGFnZSB1c2lu
ZyB0aGUgQVBJIHRoYXQgc2V0cyB0aGUgInNob3VsZCBvcGVuIGV4dGVybmFsIFVSTHMiIGZsYWcg
dG8gdHJ1ZS48YnI+CitUaGF0IHBhZ2UgdGhlbiBwcm9ncmFtYXRpY2FsbHkgcmVkaXJlY3RzIHRv
IGEgM3JkIHBhZ2UuPGJyPgorVGhhdCBuYXZpZ2F0aW9uIGZyb20gdGhlIDJuZCBwYWdlIHRvIHRo
ZSAzcmQgcGFnZSBzaG91bGQgc3RpbGwgaGF2ZSB0aGUgZmxhZyBzZXQsIGJlY2F1c2UgdGhlIGZs
YWcgcHJvcGFnYXRlcyB0aHJvdWdoIG1haW4gZnJhbWUgbG9hZHMuPGJyPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvbG9hZGVyL25hdmlnYXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFs
LXVybHMvbWFpbi1mcmFtZS13aXRob3V0LWZsYWctcHJvZ3JhbWF0aWMtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvbG9hZGVyL25hdmlnYXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFs
LXVybHMvbWFpbi1mcmFtZS13aXRob3V0LWZsYWctcHJvZ3JhbWF0aWMtZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNjNDk4MGEKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0
ZXJuYWwtdXJscy9tYWluLWZyYW1lLXdpdGhvdXQtZmxhZy1wcm9ncmFtYXRpYy1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSw1IEBACisgLSBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uIAor
PE5TVVJMUmVxdWVzdCBVUkwgcmVzb3VyY2VzL3Byb2dyYW1hdGljYWxseS1uYXZpZ2F0ZS10by1u
b3RpZnktZG9uZS5odG1sLCBtYWluIGRvY3VtZW50IFVSTCByZXNvdXJjZXMvcHJvZ3JhbWF0aWNh
bGx5LW5hdmlnYXRlLXRvLW5vdGlmeS1kb25lLmh0bWwsIGh0dHAgbWV0aG9kIEdFVD4gaXMgbWFp
biBmcmFtZSAtIHllcyBzaG91bGQgb3BlbiBVUkxzIGV4dGVybmFsbHkgLSBubworIC0gZGVjaWRl
UG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbiAKKzxOU1VSTFJlcXVlc3QgVVJMIG5vdGlmeS1kb25l
Lmh0bWwsIG1haW4gZG9jdW1lbnQgVVJMIG5vdGlmeS1kb25lLmh0bWwsIGh0dHAgbWV0aG9kIEdF
VD4gaXMgbWFpbiBmcmFtZSAtIHllcyBzaG91bGQgb3BlbiBVUkxzIGV4dGVybmFsbHkgLSBubwor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxk
LW9wZW4tZXh0ZXJuYWwtdXJscy9tYWluLWZyYW1lLXdpdGhvdXQtZmxhZy1wcm9ncmFtYXRpYy5o
dG1sIGIvTGF5b3V0VGVzdHMvbG9hZGVyL25hdmlnYXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4
dGVybmFsLXVybHMvbWFpbi1mcmFtZS13aXRob3V0LWZsYWctcHJvZ3JhbWF0aWMuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40YjU5ODAwCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvbG9hZGVyL25hdmlnYXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVy
bmFsLXVybHMvbWFpbi1mcmFtZS13aXRob3V0LWZsYWctcHJvZ3JhbWF0aWMuaHRtbApAQCAtMCww
ICsxLDEyIEBACis8c2NyaXB0PgorCitpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICB0ZXN0
UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICB0ZXN0UnVubmVyLmR1bXBQb2xpY3lEZWxlZ2F0ZUNh
bGxiYWNrcygpOworICAgIHRlc3RSdW5uZXIucXVldWVMb2FkKCJyZXNvdXJjZXMvcHJvZ3JhbWF0
aWNhbGx5LW5hdmlnYXRlLXRvLW5vdGlmeS1kb25lLmh0bWwiKTsKK30KKworPC9zY3JpcHQ+CitU
aGlzIHBhZ2UgbmF2aWdhdGVzIHRvIGEgMm5kIHBhZ2Ugd2l0aCB0aGUgInNob3VsZCBvcGVuIGV4
dGVybmFsIFVSTHMiIGZsYWcgc2V0IHRvIGZhbHNlLjxicj4KK1RoYXQgcGFnZSB0aGVuIHByb2dy
YW1hdGljYWxseSByZWRpcmVjdHMgdG8gYSAzcmQgcGFnZS48YnI+CitEdXJpbmcgdGhlIG5hdmln
YXRpb24gZnJvbSB0aGUgMm5kIHBhZ2UgdG8gdGhlIDNyZCBwYWdlIHRoZSBmbGFnIHNob3VsZCBz
dGlsbCBiZSBmYWxzZSwgYmVjYXVzZSBubyB1c2VyIGdlc3R1cmUgd2FzIGludm9sdmVkLjxicj4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2xvYWRlci9uYXZpZ2F0aW9uLXBvbGljeS9zaG91bGQt
b3Blbi1leHRlcm5hbC11cmxzL3Jlc291cmNlcy9jbGljay1ub3RpZnktZG9uZS1pbi1tYWluLmh0
bWwgYi9MYXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0
ZXJuYWwtdXJscy9yZXNvdXJjZXMvY2xpY2stbm90aWZ5LWRvbmUtaW4tbWFpbi5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAyNzAxZDcKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJu
YWwtdXJscy9yZXNvdXJjZXMvY2xpY2stbm90aWZ5LWRvbmUtaW4tbWFpbi5odG1sCkBAIC0wLDAg
KzEsMTQgQEAKKzxzY3JpcHQ+CitmdW5jdGlvbiBydW5UZXN0KCkKK3sKKyAgICBpZiAod2luZG93
LmV2ZW50U2VuZGVyKSB7CisgICAgICAgIHZhciBhID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
ImEiKTsKKyAgICAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oYS5vZmZzZXRMZWZ0ICsgMiwg
YS5vZmZzZXRUb3AgKyAyKTsKKyAgICAgICAgZXZlbnRTZW5kZXIubW91c2VEb3duKCk7CisgICAg
ICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAoKTsKKyAgICB9Cit9Cis8L3NjcmlwdD4KKzxib2R5IG9u
bG9hZD0icnVuVGVzdCgpOyI+Cis8YSBpZD0iYSIgaHJlZj0ibm90aWZ5LWRvbmUuaHRtbCIgdGFy
Z2V0PSJfdG9wIj5DbGljayBmb3Igbm90aWZ5IGRvbmUgaW4gbWFpbiBmcmFtZTwvYT4KKzwvYm9k
eT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2xvYWRlci9uYXZpZ2F0aW9uLXBvbGljeS9zaG91
bGQtb3Blbi1leHRlcm5hbC11cmxzL3Jlc291cmNlcy9pZnJhbWUtY2xpY2stbm90aWZ5LWRvbmUt
dGFyZ2V0LXNlbGYuaHRtbCBiL0xheW91dFRlc3RzL2xvYWRlci9uYXZpZ2F0aW9uLXBvbGljeS9z
aG91bGQtb3Blbi1leHRlcm5hbC11cmxzL3Jlc291cmNlcy9pZnJhbWUtY2xpY2stbm90aWZ5LWRv
bmUtdGFyZ2V0LXNlbGYuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41
ZTAwMjUxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbG9hZGVyL25hdmlnYXRpb24t
cG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvcmVzb3VyY2VzL2lmcmFtZS1jbGljay1u
b3RpZnktZG9uZS10YXJnZXQtc2VsZi5odG1sCkBAIC0wLDAgKzEsMTggQEAKKzxzY3JpcHQ+CisK
K2Z1bmN0aW9uIHJ1blRlc3QoKQoreworICAgIGlmICghd2luZG93LmV2ZW50U2VuZGVyKQorICAg
ICAgICByZXR1cm47CisKKyAgICB2YXIgYSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhIik7
CisgICAgdmFyIGlmcmFtZSA9IHdpbmRvdy5wYXJlbnQuZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRh
Z05hbWUoImlmcmFtZSIpWzBdOworICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKGEub2Zmc2V0
TGVmdCArIGlmcmFtZS5vZmZzZXRMZWZ0ICsgMiwgYS5vZmZzZXRUb3AgKyBpZnJhbWUub2Zmc2V0
VG9wICsgMik7CisgICAgZXZlbnRTZW5kZXIubW91c2VEb3duKCk7CisgICAgZXZlbnRTZW5kZXIu
bW91c2VVcCgpOworfQorCis8L3NjcmlwdD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpOyI+Cis8
YSBpZD0iYSIgaHJlZj0ibm90aWZ5LWRvbmUuaHRtbCIgdGFyZ2V0PSJfc2VsZiI+Q2xpY2sgZm9y
IG5vdGlmeSBkb25lIGluIHRoaXMgZnJhbWU8L2E+Cis8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9sb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJs
cy9yZXNvdXJjZXMvaWZyYW1lLWNsaWNrLW5vdGlmeS1kb25lLXRhcmdldC10b3AuaHRtbCBiL0xh
eW91dFRlc3RzL2xvYWRlci9uYXZpZ2F0aW9uLXBvbGljeS9zaG91bGQtb3Blbi1leHRlcm5hbC11
cmxzL3Jlc291cmNlcy9pZnJhbWUtY2xpY2stbm90aWZ5LWRvbmUtdGFyZ2V0LXRvcC5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU2YThmYTEKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0
ZXJuYWwtdXJscy9yZXNvdXJjZXMvaWZyYW1lLWNsaWNrLW5vdGlmeS1kb25lLXRhcmdldC10b3Au
aHRtbApAQCAtMCwwICsxLDE4IEBACis8c2NyaXB0PgorCitmdW5jdGlvbiBydW5UZXN0KCkKK3sK
KyAgICBpZiAoIXdpbmRvdy5ldmVudFNlbmRlcikKKyAgICAgICAgcmV0dXJuOworCisgICAgdmFy
IGEgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYSIpOworICAgIHZhciBpZnJhbWUgPSB3aW5k
b3cucGFyZW50LmRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJpZnJhbWUiKVswXTsKKyAg
ICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyhhLm9mZnNldExlZnQgKyBpZnJhbWUub2Zmc2V0TGVm
dCArIDIsIGEub2Zmc2V0VG9wICsgaWZyYW1lLm9mZnNldFRvcCArIDIpOworICAgIGV2ZW50U2Vu
ZGVyLm1vdXNlRG93bigpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAoKTsKK30KKworPC9zY3Jp
cHQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKTsiPgorPGEgaWQ9ImEiIGhyZWY9Im5vdGlmeS1k
b25lLmh0bWwiIHRhcmdldD0iX3RvcCI+Q2xpY2sgZm9yIG5vdGlmeSBkb25lIGluIHRoZSBtYWlu
IGZyYW1lPC9hPgorPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbG9hZGVyL25hdmln
YXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvcmVzb3VyY2VzL21haW4tZnJh
bWUtd2l0aC1zdWJmcmFtZS1jbGljay10YXJnZXRzLXN1YmZyYW1lLmh0bWwgYi9MYXlvdXRUZXN0
cy9sb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJscy9yZXNv
dXJjZXMvbWFpbi1mcmFtZS13aXRoLXN1YmZyYW1lLWNsaWNrLXRhcmdldHMtc3ViZnJhbWUuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iMTEzMDE1Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvbG9hZGVyL25hdmlnYXRpb24tcG9saWN5L3Nob3VsZC1vcGVu
LWV4dGVybmFsLXVybHMvcmVzb3VyY2VzL21haW4tZnJhbWUtd2l0aC1zdWJmcmFtZS1jbGljay10
YXJnZXRzLXN1YmZyYW1lLmh0bWwKQEAgLTAsMCArMSw1IEBACitUaGlzIHBhZ2UgY29udGFpbnMg
YSBzdWJmcmFtZS48YnI+CitDbGlja2luZyB0aGUgbGluayBpbiB0aGUgc3ViZnJhbWUgbmF2aWdh
dGVzIHRoZSBzdWJmcmFtZS48YnI+CitUaGUgInNob3VsZCBvcGVuIGV4dGVybmFsIFVSTHMiIGZs
YWcgb24gdGhhdCBuYXZpZ2F0aW9uIHNob3VsZCBiZSBmYWxzZS4gRXZlbiB0aG91Z2ggaXQgd2Fz
IGEgbGluayBjbGljaywgaXQgd2FzIHdpdGhpbiBhIHN1YmZyYW1lIHdoaWNoIHNob3VsZCBuZXZl
ciBnZXQgdGhlIGZsYWcgc2V0IHRvIHRydWUuPGJyPgorPGlmcmFtZSBzcmM9ImNsaWNrLW5vdGlm
eS1kb25lLWluLXNlbGYuaHRtbCI+PC9pZnJhbWU+CisgClwgTm8gbmV3bGluZSBhdCBlbmQgb2Yg
ZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbG9hZGVyL25hdmlnYXRpb24tcG9saWN5L3No
b3VsZC1vcGVuLWV4dGVybmFsLXVybHMvcmVzb3VyY2VzL21haW4tZnJhbWUtd2l0aC1zdWJmcmFt
ZS1wcm9ncmFtYXRpY2FsbHktbmF2aWdhdGVzLW1haW4uaHRtbCBiL0xheW91dFRlc3RzL2xvYWRl
ci9uYXZpZ2F0aW9uLXBvbGljeS9zaG91bGQtb3Blbi1leHRlcm5hbC11cmxzL3Jlc291cmNlcy9t
YWluLWZyYW1lLXdpdGgtc3ViZnJhbWUtcHJvZ3JhbWF0aWNhbGx5LW5hdmlnYXRlcy1tYWluLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODY2NjM4MgotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2xvYWRlci9uYXZpZ2F0aW9uLXBvbGljeS9zaG91bGQtb3Bl
bi1leHRlcm5hbC11cmxzL3Jlc291cmNlcy9tYWluLWZyYW1lLXdpdGgtc3ViZnJhbWUtcHJvZ3Jh
bWF0aWNhbGx5LW5hdmlnYXRlcy1tYWluLmh0bWwKQEAgLTAsMCArMSw2IEBACis8c2NyaXB0Pgor
aWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwor
PC9zY3JpcHQ+CisKKzxpZnJhbWUgc3JjPSJwcm9ncmFtYXRpY2FsbHktbmF2aWdhdGUtdG8tbm90
aWZ5LWRvbmUtdGFyZ2V0LXRvcC5odG1sIj48L2lmcmFtZT4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2xvYWRlci9uYXZpZ2F0aW9uLXBvbGljeS9zaG91bGQtb3Blbi1leHRlcm5hbC11cmxzL3Jl
c291cmNlcy9wcm9ncmFtYXRpY2FsbHktbmF2aWdhdGUtdG8tbm90aWZ5LWRvbmUtdGFyZ2V0LXRv
cC5odG1sIGIvTGF5b3V0VGVzdHMvbG9hZGVyL25hdmlnYXRpb24tcG9saWN5L3Nob3VsZC1vcGVu
LWV4dGVybmFsLXVybHMvcmVzb3VyY2VzL3Byb2dyYW1hdGljYWxseS1uYXZpZ2F0ZS10by1ub3Rp
ZnktZG9uZS10YXJnZXQtdG9wLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uMTk3YTQzMjYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdh
dGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJscy9yZXNvdXJjZXMvcHJvZ3JhbWF0
aWNhbGx5LW5hdmlnYXRlLXRvLW5vdGlmeS1kb25lLXRhcmdldC10b3AuaHRtbApAQCAtMCwwICsx
LDE0IEBACis8c2NyaXB0PgorCitpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgdGVzdFJ1bm5l
ci53YWl0VW50aWxEb25lKCk7CisgICAgCitmdW5jdGlvbiBsb2FkZWQoKQoreworICAgIHdpbmRv
dy50b3AubG9jYXRpb24uaHJlZiA9ICJub3RpZnktZG9uZS5odG1sIjsKK30KKworPC9zY3JpcHQ+
Cis8Ym9keSBvbmxvYWQ9ImxvYWRlZCgpOyI+CitUaGlzIHBhZ2UgZG9lcyBhIGphdmFzY3JpcHQg
Y2xpZW50IHJlZGlyZWN0IHRvIG5vdGlmeS1kb25lLmh0bWwgaW4gdGhlIG1haW4gZnJhbWUuCis8
L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kv
c2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJscy9yZXNvdXJjZXMvcHJvZ3JhbWF0aWNhbGx5LW5hdmln
YXRlLXRvLW5vdGlmeS1kb25lLmh0bWwgYi9MYXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdhdGlvbi1w
b2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJscy9yZXNvdXJjZXMvcHJvZ3JhbWF0aWNhbGx5
LW5hdmlnYXRlLXRvLW5vdGlmeS1kb25lLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMC4uYjU5YjliYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2xvYWRlci9u
YXZpZ2F0aW9uLXBvbGljeS9zaG91bGQtb3Blbi1leHRlcm5hbC11cmxzL3Jlc291cmNlcy9wcm9n
cmFtYXRpY2FsbHktbmF2aWdhdGUtdG8tbm90aWZ5LWRvbmUuaHRtbApAQCAtMCwwICsxLDE0IEBA
Cis8c2NyaXB0PgorCitpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgdGVzdFJ1bm5lci53YWl0
VW50aWxEb25lKCk7CisgICAgCitmdW5jdGlvbiBsb2FkZWQoKQoreworICAgIHdpbmRvdy5sb2Nh
dGlvbi5ocmVmID0gIm5vdGlmeS1kb25lLmh0bWwiOworfQorCis8L3NjcmlwdD4KKzxib2R5IG9u
bG9hZD0ibG9hZGVkKCk7Ij4KK1RoaXMgcGFnZSBkb2VzIGEgamF2YXNjcmlwdCBjbGllbnQgcmVk
aXJlY3QgdG8gbm90aWZ5LWRvbmUuaHRtbC4KKzwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2xvYWRlci9uYXZpZ2F0aW9uLXBvbGljeS9zaG91bGQtb3Blbi1leHRlcm5hbC11cmxzL3Jl
c291cmNlcy91c2VyLWdlc3R1cmUtdGFyZ2V0LWJsYW5rLXRvLW5vdGlmeS1kb25lLWZyb20tc3Vi
ZnJhbWUuaHRtbCBiL0xheW91dFRlc3RzL2xvYWRlci9uYXZpZ2F0aW9uLXBvbGljeS9zaG91bGQt
b3Blbi1leHRlcm5hbC11cmxzL3Jlc291cmNlcy91c2VyLWdlc3R1cmUtdGFyZ2V0LWJsYW5rLXRv
LW5vdGlmeS1kb25lLWZyb20tc3ViZnJhbWUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi4wMmM3NDM1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbG9hZGVy
L25hdmlnYXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvcmVzb3VyY2VzL3Vz
ZXItZ2VzdHVyZS10YXJnZXQtYmxhbmstdG8tbm90aWZ5LWRvbmUtZnJvbS1zdWJmcmFtZS5odG1s
CkBAIC0wLDAgKzEgQEAKKzxpZnJhbWUgc3JjPSJ1c2VyLWdlc3R1cmUtdGFyZ2V0LWJsYW5rLXRv
LW5vdGlmeS1kb25lLmh0bWwiPjwvaWZyYW1lPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2xvYWRlci9uYXZpZ2F0aW9uLXBvbGljeS9zaG91bGQt
b3Blbi1leHRlcm5hbC11cmxzL3Jlc291cmNlcy91c2VyLWdlc3R1cmUtdGFyZ2V0LWJsYW5rLXRv
LW5vdGlmeS1kb25lLmh0bWwgYi9MYXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kv
c2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJscy9yZXNvdXJjZXMvdXNlci1nZXN0dXJlLXRhcmdldC1i
bGFuay10by1ub3RpZnktZG9uZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLmIzOWRkOGYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdh
dGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJscy9yZXNvdXJjZXMvdXNlci1nZXN0
dXJlLXRhcmdldC1ibGFuay10by1ub3RpZnktZG9uZS5odG1sCkBAIC0wLDAgKzEsMjggQEAKKzxz
Y3JpcHQ+CisKK2lmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgIHRlc3RSdW5uZXIud2FpdFVu
dGlsRG9uZSgpOworICAgIHRlc3RSdW5uZXIuc2V0Q2FuT3BlbldpbmRvd3MoKTsKK30KKworZnVu
Y3Rpb24gbG9hZGVkKCkKK3sKKyAgICBpZiAoIXdpbmRvdy5ldmVudFNlbmRlcikKKyAgICAgICAg
cmV0dXJuOworCisgICAgdmFyIGEgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYSIpOworICAg
IHZhciBpZnJhbWUgPSB3aW5kb3cucGFyZW50LmRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1l
KCJpZnJhbWUiKVswXTsKKworICAgIGlmIChpZnJhbWUpCisgICAgICAgIGV2ZW50U2VuZGVyLm1v
dXNlTW92ZVRvKGEub2Zmc2V0TGVmdCArIGlmcmFtZS5vZmZzZXRMZWZ0ICsgMiwgYS5vZmZzZXRU
b3AgKyBpZnJhbWUub2Zmc2V0VG9wICsgMik7CisgICAgZWxzZQorICAgICAgICBldmVudFNlbmRl
ci5tb3VzZU1vdmVUbyhhLm9mZnNldExlZnQgKyAyLCBhLm9mZnNldFRvcCArIDIpOworCisgICAg
ZXZlbnRTZW5kZXIubW91c2VEb3duKCk7CisgICAgZXZlbnRTZW5kZXIubW91c2VVcCgpOworfQor
Cis8L3NjcmlwdD4KKzxib2R5IG9ubG9hZD0ibG9hZGVkKCk7Ij4KKzxhIGlkPSJhIiBocmVmPSJu
b3RpZnktZG9uZS5odG1sIiB0YXJnZXQ9Il9ibGFuayI+Q2xpY2sgdG8gb3BlbiBsaW5rIGluIG5l
dyB3aW5kb3cuPC9hPgorPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbG9hZGVyL25h
dmlnYXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvcmVzb3VyY2VzL3VzZXIt
Z2VzdHVyZS13aW5kb3ctb3Blbi10by1ub3RpZnktZG9uZS1mcm9tLXN1YmZyYW1lLmh0bWwgYi9M
YXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwt
dXJscy9yZXNvdXJjZXMvdXNlci1nZXN0dXJlLXdpbmRvdy1vcGVuLXRvLW5vdGlmeS1kb25lLWZy
b20tc3ViZnJhbWUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41MGZj
NmVmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbG9hZGVyL25hdmlnYXRpb24tcG9s
aWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvcmVzb3VyY2VzL3VzZXItZ2VzdHVyZS13aW5k
b3ctb3Blbi10by1ub3RpZnktZG9uZS1mcm9tLXN1YmZyYW1lLmh0bWwKQEAgLTAsMCArMSBAQAor
PGlmcmFtZSBzcmM9InVzZXItZ2VzdHVyZS13aW5kb3ctb3Blbi10by1ub3RpZnktZG9uZS5odG1s
Ij48L2lmcmFtZT4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9sb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJs
cy9yZXNvdXJjZXMvdXNlci1nZXN0dXJlLXdpbmRvdy1vcGVuLXRvLW5vdGlmeS1kb25lLmh0bWwg
Yi9MYXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJu
YWwtdXJscy9yZXNvdXJjZXMvdXNlci1nZXN0dXJlLXdpbmRvdy1vcGVuLXRvLW5vdGlmeS1kb25l
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjk2MzhjNAotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2xvYWRlci9uYXZpZ2F0aW9uLXBvbGljeS9zaG91bGQt
b3Blbi1leHRlcm5hbC11cmxzL3Jlc291cmNlcy91c2VyLWdlc3R1cmUtd2luZG93LW9wZW4tdG8t
bm90aWZ5LWRvbmUuaHRtbApAQCAtMCwwICsxLDMzIEBACis8c2NyaXB0PgorCitpZiAod2luZG93
LnRlc3RSdW5uZXIpIHsKKyAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICB0ZXN0
UnVubmVyLnNldENhbk9wZW5XaW5kb3dzKCk7Cit9CisKK2Z1bmN0aW9uIGxvYWRlZCgpCit7Cisg
ICAgaWYgKCF3aW5kb3cuZXZlbnRTZW5kZXIpCisgICAgICAgIHJldHVybjsKKworICAgIHZhciBh
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImEiKTsKKyAgICB2YXIgaWZyYW1lID0gd2luZG93
LnBhcmVudC5kb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaWZyYW1lIilbMF07CisKKyAg
ICBpZiAoaWZyYW1lKQorICAgICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyhhLm9mZnNldExl
ZnQgKyBpZnJhbWUub2Zmc2V0TGVmdCArIDIsIGEub2Zmc2V0VG9wICsgaWZyYW1lLm9mZnNldFRv
cCArIDIpOworICAgIGVsc2UKKyAgICAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oYS5vZmZz
ZXRMZWZ0ICsgMiwgYS5vZmZzZXRUb3AgKyAyKTsKKworICAgIGV2ZW50U2VuZGVyLm1vdXNlRG93
bigpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAoKTsKK30KKworZnVuY3Rpb24gY2xpY2tlZCgp
Cit7CisgICAgd2luZG93Lm9wZW4oIm5vdGlmeS1kb25lLmh0bWwiKTsKK30KKworPC9zY3JpcHQ+
Cis8Ym9keSBvbmxvYWQ9ImxvYWRlZCgpOyI+Cis8YSBpZD0iYSIgb25jbGljaz0iY2xpY2tlZCgp
OyI+Q2xpY2sgdG8gZG8gYSB3aW5kb3cub3BlbjwvYT4KKzwvYm9keT4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2xvYWRlci9uYXZpZ2F0aW9uLXBvbGljeS9zaG91bGQtb3Blbi1leHRlcm5hbC11
cmxzL3Jlc291cmNlcy93aW5kb3ctb3Blbi10by1ub3RpZnktZG9uZS1mcm9tLXN1YmZyYW1lLmh0
bWwgYi9MYXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0
ZXJuYWwtdXJscy9yZXNvdXJjZXMvd2luZG93LW9wZW4tdG8tbm90aWZ5LWRvbmUtZnJvbS1zdWJm
cmFtZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNlZGQ1MTcKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hv
dWxkLW9wZW4tZXh0ZXJuYWwtdXJscy9yZXNvdXJjZXMvd2luZG93LW9wZW4tdG8tbm90aWZ5LWRv
bmUtZnJvbS1zdWJmcmFtZS5odG1sCkBAIC0wLDAgKzEgQEAKKzxpZnJhbWUgc3JjPSJ3aW5kb3ct
b3Blbi10by1ub3RpZnktZG9uZS5odG1sIj48L2lmcmFtZT4KXCBObyBuZXdsaW5lIGF0IGVuZCBv
ZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kv
c2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJscy9yZXNvdXJjZXMvd2luZG93LW9wZW4tdG8tbm90aWZ5
LWRvbmUuaHRtbCBiL0xheW91dFRlc3RzL2xvYWRlci9uYXZpZ2F0aW9uLXBvbGljeS9zaG91bGQt
b3Blbi1leHRlcm5hbC11cmxzL3Jlc291cmNlcy93aW5kb3ctb3Blbi10by1ub3RpZnktZG9uZS5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdkMmQwOTAKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9w
ZW4tZXh0ZXJuYWwtdXJscy9yZXNvdXJjZXMvd2luZG93LW9wZW4tdG8tbm90aWZ5LWRvbmUuaHRt
bApAQCAtMCwwICsxLDE1IEBACis8c2NyaXB0PgorCitpZiAod2luZG93LnRlc3RSdW5uZXIpIHsK
KyAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICB0ZXN0UnVubmVyLnNldENhbk9w
ZW5XaW5kb3dzKCk7Cit9CisKK2Z1bmN0aW9uIGxvYWRlZCgpCit7CisgICAgd2luZG93Lm9wZW4o
Im5vdGlmeS1kb25lLmh0bWwiKTsKK30KKworPC9zY3JpcHQ+Cis8Ym9keSBvbmxvYWQ9ImxvYWRl
ZCgpOyI+Cis8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdhdGlv
bi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJscy9zdWJmcmFtZS1jbGljay10YXJnZXQt
c2VsZi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kv
c2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJscy9zdWJmcmFtZS1jbGljay10YXJnZXQtc2VsZi1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzA1NTUzMwotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2xvYWRlci9uYXZpZ2F0aW9uLXBvbGljeS9zaG91
bGQtb3Blbi1leHRlcm5hbC11cmxzL3N1YmZyYW1lLWNsaWNrLXRhcmdldC1zZWxmLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDkgQEAKKyAtIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24g
Cis8TlNVUkxSZXF1ZXN0IFVSTCBhYm91dDpibGFuaywgbWFpbiBkb2N1bWVudCBVUkwgc3ViZnJh
bWUtY2xpY2stdGFyZ2V0LXNlbGYuaHRtbCwgaHR0cCBtZXRob2QgR0VUPiBpcyBtYWluIGZyYW1l
IC0gbm8gc2hvdWxkIG9wZW4gVVJMcyBleHRlcm5hbGx5IC0gbm8KKyAtIGRlY2lkZVBvbGljeUZv
ck5hdmlnYXRpb25BY3Rpb24gCis8TlNVUkxSZXF1ZXN0IFVSTCByZXNvdXJjZXMvaWZyYW1lLWNs
aWNrLW5vdGlmeS1kb25lLXRhcmdldC1zZWxmLmh0bWwsIG1haW4gZG9jdW1lbnQgVVJMIHN1YmZy
YW1lLWNsaWNrLXRhcmdldC1zZWxmLmh0bWwsIGh0dHAgbWV0aG9kIEdFVD4gaXMgbWFpbiBmcmFt
ZSAtIG5vIHNob3VsZCBvcGVuIFVSTHMgZXh0ZXJuYWxseSAtIG5vCisgLSBkZWNpZGVQb2xpY3lG
b3JOYXZpZ2F0aW9uQWN0aW9uIAorPE5TVVJMUmVxdWVzdCBVUkwgcmVzb3VyY2VzL25vdGlmeS1k
b25lLmh0bWwsIG1haW4gZG9jdW1lbnQgVVJMIHN1YmZyYW1lLWNsaWNrLXRhcmdldC1zZWxmLmh0
bWwsIGh0dHAgbWV0aG9kIEdFVD4gaXMgbWFpbiBmcmFtZSAtIG5vIHNob3VsZCBvcGVuIFVSTHMg
ZXh0ZXJuYWxseSAtIG5vCitUaGlzIHBhZ2UgaGFzIGEgc3ViZnJhbWUgd2l0aCBhIGxpbmsuCitU
aGVuIGEgbGluayBpcyBjbGlja2VkIGluIHRoYXQgc3ViZnJhbWUgdGhhdCBuYXZpZ2F0ZXMgaW5z
aWRlIHRoYXQgc3ViZnJhbWUsIGFuZCB0aGF0IG5hdmlnYXRpb24gc2hvdWxkIGhhdmUgdGhlICJz
aG91bGQgb3BlbiBleHRlcm5hbCB1cmxzIiBmbGFnIHNldCB0byBmYWxzZSBldmVuIHRob3VnaCBp
dCB3YXMgZnJvbSBhIHVzZXIgZ2VzdHVyZS4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbG9h
ZGVyL25hdmlnYXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvc3ViZnJhbWUt
Y2xpY2stdGFyZ2V0LXNlbGYuaHRtbCBiL0xheW91dFRlc3RzL2xvYWRlci9uYXZpZ2F0aW9uLXBv
bGljeS9zaG91bGQtb3Blbi1leHRlcm5hbC11cmxzL3N1YmZyYW1lLWNsaWNrLXRhcmdldC1zZWxm
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTRlZDdkZQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2xvYWRlci9uYXZpZ2F0aW9uLXBvbGljeS9zaG91bGQt
b3Blbi1leHRlcm5hbC11cmxzL3N1YmZyYW1lLWNsaWNrLXRhcmdldC1zZWxmLmh0bWwKQEAgLTAs
MCArMSwxOSBAQAorPHNjcmlwdD4KKworaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgdGVz
dFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgdGVzdFJ1bm5lci5kdW1wUG9saWN5RGVsZWdhdGVD
YWxsYmFja3MoKTsKKyAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKK30KKworZnVuY3Rp
b24gcnVuVGVzdCgpCit7CisgICAgd2luZG93LmZyYW1lc1swXS5sb2NhdGlvbiA9ICJyZXNvdXJj
ZXMvaWZyYW1lLWNsaWNrLW5vdGlmeS1kb25lLXRhcmdldC1zZWxmLmh0bWwiOworfQorCis8L3Nj
cmlwdD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpOyI+CitUaGlzIHBhZ2UgaGFzIGEgc3ViZnJh
bWUgd2l0aCBhIGxpbmsuPGJyPgorVGhlbiBhIGxpbmsgaXMgY2xpY2tlZCBpbiB0aGF0IHN1YmZy
YW1lIHRoYXQgbmF2aWdhdGVzIGluc2lkZSB0aGF0IHN1YmZyYW1lLCBhbmQgdGhhdCBuYXZpZ2F0
aW9uIHNob3VsZCBoYXZlIHRoZSAic2hvdWxkIG9wZW4gZXh0ZXJuYWwgdXJscyIgZmxhZyBzZXQg
dG8gZmFsc2UgZXZlbiB0aG91Z2ggaXQgd2FzIGZyb20gYSB1c2VyIGdlc3R1cmUuPGJyPgorPGlm
cmFtZT48L2lmcmFtZT4KKzwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2xvYWRlci9u
YXZpZ2F0aW9uLXBvbGljeS9zaG91bGQtb3Blbi1leHRlcm5hbC11cmxzL3N1YmZyYW1lLWNsaWNr
LXRhcmdldC10b3AtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvbG9hZGVyL25hdmlnYXRpb24t
cG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvc3ViZnJhbWUtY2xpY2stdGFyZ2V0LXRv
cC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWI1ZDNm
NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2xvYWRlci9uYXZpZ2F0aW9uLXBvbGlj
eS9zaG91bGQtb3Blbi1leHRlcm5hbC11cmxzL3N1YmZyYW1lLWNsaWNrLXRhcmdldC10b3AtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsNyBAQAorIC0gZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFj
dGlvbiAKKzxOU1VSTFJlcXVlc3QgVVJMIGFib3V0OmJsYW5rLCBtYWluIGRvY3VtZW50IFVSTCBz
dWJmcmFtZS1jbGljay10YXJnZXQtdG9wLmh0bWwsIGh0dHAgbWV0aG9kIEdFVD4gaXMgbWFpbiBm
cmFtZSAtIG5vIHNob3VsZCBvcGVuIFVSTHMgZXh0ZXJuYWxseSAtIG5vCisgLSBkZWNpZGVQb2xp
Y3lGb3JOYXZpZ2F0aW9uQWN0aW9uIAorPE5TVVJMUmVxdWVzdCBVUkwgcmVzb3VyY2VzL2lmcmFt
ZS1jbGljay1ub3RpZnktZG9uZS10YXJnZXQtdG9wLmh0bWwsIG1haW4gZG9jdW1lbnQgVVJMIHN1
YmZyYW1lLWNsaWNrLXRhcmdldC10b3AuaHRtbCwgaHR0cCBtZXRob2QgR0VUPiBpcyBtYWluIGZy
YW1lIC0gbm8gc2hvdWxkIG9wZW4gVVJMcyBleHRlcm5hbGx5IC0gbm8KKyAtIGRlY2lkZVBvbGlj
eUZvck5hdmlnYXRpb25BY3Rpb24gCis8TlNVUkxSZXF1ZXN0IFVSTCByZXNvdXJjZXMvbm90aWZ5
LWRvbmUuaHRtbCwgbWFpbiBkb2N1bWVudCBVUkwgcmVzb3VyY2VzL25vdGlmeS1kb25lLmh0bWws
IGh0dHAgbWV0aG9kIEdFVD4gaXMgbWFpbiBmcmFtZSAtIHllcyBzaG91bGQgb3BlbiBVUkxzIGV4
dGVybmFsbHkgLSB5ZXMKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbG9hZGVyL25hdmlnYXRp
b24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvc3ViZnJhbWUtY2xpY2stdGFyZ2V0
LXRvcC5odG1sIGIvTGF5b3V0VGVzdHMvbG9hZGVyL25hdmlnYXRpb24tcG9saWN5L3Nob3VsZC1v
cGVuLWV4dGVybmFsLXVybHMvc3ViZnJhbWUtY2xpY2stdGFyZ2V0LXRvcC5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNiMmE2YWEKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwt
dXJscy9zdWJmcmFtZS1jbGljay10YXJnZXQtdG9wLmh0bWwKQEAgLTAsMCArMSwxOSBAQAorPHNj
cmlwdD4KKworaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgdGVzdFJ1bm5lci5kdW1wQXNU
ZXh0KCk7CisgICAgdGVzdFJ1bm5lci5kdW1wUG9saWN5RGVsZWdhdGVDYWxsYmFja3MoKTsKKyAg
ICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKK30KKworZnVuY3Rpb24gcnVuVGVzdCgpCit7
CisgICAgd2luZG93LmZyYW1lc1swXS5sb2NhdGlvbiA9ICJyZXNvdXJjZXMvaWZyYW1lLWNsaWNr
LW5vdGlmeS1kb25lLXRhcmdldC10b3AuaHRtbCI7Cit9CisKKzwvc2NyaXB0PgorPGJvZHkgb25s
b2FkPSJydW5UZXN0KCk7Ij4KK1RoaXMgcGFnZSBoYXMgYSBzdWJmcmFtZSB3aXRoIGEgbGluay48
YnI+CitUaGVuIGEgbGluayBpcyBjbGlja2VkIGluIHRoYXQgc3ViZnJhbWUgdGhhdCBuYXZpZ2F0
ZXMgdGhlIG1haW4gZnJhbWUsIGFuZCB0aGF0IG5hdmlnYXRpb24gc2hvdWxkIGhhdmUgdGhlICJz
aG91bGQgb3BlbiBleHRlcm5hbCB1cmxzIiBmbGFnIHNldCB0byB0cnVlIGJlY2F1c2UgaXQgd2Fz
IGZyb20gYSB1c2VyIGdlc3R1cmUuPGJyPgorPGlmcmFtZT48L2lmcmFtZT4KKzwvYm9keT4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2xvYWRlci9uYXZpZ2F0aW9uLXBvbGljeS9zaG91bGQtb3Bl
bi1leHRlcm5hbC11cmxzL3VzZXItZ2VzdHVyZS10YXJnZXQtYmxhbmstd2l0aC1mbGFnLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2xvYWRlci9uYXZpZ2F0aW9uLXBvbGljeS9zaG91bGQtb3Bl
bi1leHRlcm5hbC11cmxzL3VzZXItZ2VzdHVyZS10YXJnZXQtYmxhbmstd2l0aC1mbGFnLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lZjAwNjliCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbG9hZGVyL25hdmlnYXRpb24tcG9saWN5L3Nob3Vs
ZC1vcGVuLWV4dGVybmFsLXVybHMvdXNlci1nZXN0dXJlLXRhcmdldC1ibGFuay13aXRoLWZsYWct
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorIC0gZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlv
bkFjdGlvbiAKKzxOU1VSTFJlcXVlc3QgVVJMIHJlc291cmNlcy91c2VyLWdlc3R1cmUtdGFyZ2V0
LWJsYW5rLXRvLW5vdGlmeS1kb25lLmh0bWwsIG1haW4gZG9jdW1lbnQgVVJMIHJlc291cmNlcy91
c2VyLWdlc3R1cmUtdGFyZ2V0LWJsYW5rLXRvLW5vdGlmeS1kb25lLmh0bWwsIGh0dHAgbWV0aG9k
IEdFVD4gaXMgbWFpbiBmcmFtZSAtIHllcyBzaG91bGQgb3BlbiBVUkxzIGV4dGVybmFsbHkgLSB5
ZXMKKyAtIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24gCis8TlNVUkxSZXF1ZXN0IFVS
TCBub3RpZnktZG9uZS5odG1sLCBtYWluIGRvY3VtZW50IFVSTCBub3RpZnktZG9uZS5odG1sLCBo
dHRwIG1ldGhvZCBHRVQ+IGlzIG1haW4gZnJhbWUgLSB5ZXMgc2hvdWxkIG9wZW4gVVJMcyBleHRl
cm5hbGx5IC0geWVzCitDbGljayB0byBvcGVuIGxpbmsgaW4gbmV3IHdpbmRvdy4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2xvYWRlci9uYXZpZ2F0aW9uLXBvbGljeS9zaG91bGQtb3Blbi1leHRl
cm5hbC11cmxzL3VzZXItZ2VzdHVyZS10YXJnZXQtYmxhbmstd2l0aC1mbGFnLWZyb20tc3ViZnJh
bWUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvbG9hZGVyL25hdmlnYXRpb24tcG9saWN5L3No
b3VsZC1vcGVuLWV4dGVybmFsLXVybHMvdXNlci1nZXN0dXJlLXRhcmdldC1ibGFuay13aXRoLWZs
YWctZnJvbS1zdWJmcmFtZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMC4uMjk5NDgzYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2xvYWRlci9u
YXZpZ2F0aW9uLXBvbGljeS9zaG91bGQtb3Blbi1leHRlcm5hbC11cmxzL3VzZXItZ2VzdHVyZS10
YXJnZXQtYmxhbmstd2l0aC1mbGFnLWZyb20tc3ViZnJhbWUtZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsNyBAQAorIC0gZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbiAKKzxOU1VSTFJlcXVl
c3QgVVJMIHJlc291cmNlcy91c2VyLWdlc3R1cmUtdGFyZ2V0LWJsYW5rLXRvLW5vdGlmeS1kb25l
LWZyb20tc3ViZnJhbWUuaHRtbCwgbWFpbiBkb2N1bWVudCBVUkwgcmVzb3VyY2VzL3VzZXItZ2Vz
dHVyZS10YXJnZXQtYmxhbmstdG8tbm90aWZ5LWRvbmUtZnJvbS1zdWJmcmFtZS5odG1sLCBodHRw
IG1ldGhvZCBHRVQ+IGlzIG1haW4gZnJhbWUgLSB5ZXMgc2hvdWxkIG9wZW4gVVJMcyBleHRlcm5h
bGx5IC0geWVzCisgLSBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uIAorPE5TVVJMUmVx
dWVzdCBVUkwgdXNlci1nZXN0dXJlLXRhcmdldC1ibGFuay10by1ub3RpZnktZG9uZS5odG1sLCBt
YWluIGRvY3VtZW50IFVSTCB1c2VyLWdlc3R1cmUtdGFyZ2V0LWJsYW5rLXRvLW5vdGlmeS1kb25l
LWZyb20tc3ViZnJhbWUuaHRtbCwgaHR0cCBtZXRob2QgR0VUPiBpcyBtYWluIGZyYW1lIC0gbm8g
c2hvdWxkIG9wZW4gVVJMcyBleHRlcm5hbGx5IC0gbm8KKyAtIGRlY2lkZVBvbGljeUZvck5hdmln
YXRpb25BY3Rpb24gCis8TlNVUkxSZXF1ZXN0IFVSTCBub3RpZnktZG9uZS5odG1sLCBtYWluIGRv
Y3VtZW50IFVSTCB1c2VyLWdlc3R1cmUtdGFyZ2V0LWJsYW5rLXRvLW5vdGlmeS1kb25lLWZyb20t
c3ViZnJhbWUuaHRtbCwgaHR0cCBtZXRob2QgR0VUPiBpcyBtYWluIGZyYW1lIC0geWVzIHNob3Vs
ZCBvcGVuIFVSTHMgZXh0ZXJuYWxseSAtIHllcworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9s
b2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJscy91c2VyLWdl
c3R1cmUtdGFyZ2V0LWJsYW5rLXdpdGgtZmxhZy1mcm9tLXN1YmZyYW1lLmh0bWwgYi9MYXlvdXRU
ZXN0cy9sb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJscy91
c2VyLWdlc3R1cmUtdGFyZ2V0LWJsYW5rLXdpdGgtZmxhZy1mcm9tLXN1YmZyYW1lLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWVmYjg5NgotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2xvYWRlci9uYXZpZ2F0aW9uLXBvbGljeS9zaG91bGQtb3Blbi1leHRl
cm5hbC11cmxzL3VzZXItZ2VzdHVyZS10YXJnZXQtYmxhbmstd2l0aC1mbGFnLWZyb20tc3ViZnJh
bWUuaHRtbApAQCAtMCwwICsxLDEwIEBACis8c2NyaXB0PgoraWYgKHdpbmRvdy50ZXN0UnVubmVy
KSB7CisgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgdGVzdFJ1bm5lci5kdW1wUG9s
aWN5RGVsZWdhdGVDYWxsYmFja3MoKTsKKyAgICB0ZXN0UnVubmVyLnF1ZXVlTG9hZCgicmVzb3Vy
Y2VzL3VzZXItZ2VzdHVyZS10YXJnZXQtYmxhbmstdG8tbm90aWZ5LWRvbmUtZnJvbS1zdWJmcmFt
ZS5odG1sIiwgIiIsIHRydWUpOworfQorPC9zY3JpcHQ+CitUaGlzIHBhZ2Ugb3BlbnMgYSAybmQg
cGFnZSB3aXRoIHRoZSAic2hvdWxkIG9wZW4gZXh0ZXJuYWwgVVJMcyIgZmxhZyBzZXQgdG8gdHJ1
ZS48YnI+CitUaGF0IHBhZ2UgaGFzIGEgc3ViZnJhbWUgd2l0aCBhIGxpbmsgdGhhdCAtIHdoZW4g
Y2xpY2tlZCAtIG9wZW5zIGEgbGluayB0byBhIDNyZCBwYWdlIGluIGEgbmV3IHdpbmRvdy48YnI+
CitUaGF0IDNyZCBwYWdlIHNob3VsZCBoYXZlIHRoZSBmbGFnIHNldCB0byB0cnVlIGJlY2F1c2Ug
aXQgd2FzIGZyb20gYSB1c2VyIGdlc3R1cmUuPGJyPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
bG9hZGVyL25hdmlnYXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvdXNlci1n
ZXN0dXJlLXRhcmdldC1ibGFuay13aXRoLWZsYWcuaHRtbCBiL0xheW91dFRlc3RzL2xvYWRlci9u
YXZpZ2F0aW9uLXBvbGljeS9zaG91bGQtb3Blbi1leHRlcm5hbC11cmxzL3VzZXItZ2VzdHVyZS10
YXJnZXQtYmxhbmstd2l0aC1mbGFnLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uMGM4N2Y0MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2xvYWRlci9uYXZp
Z2F0aW9uLXBvbGljeS9zaG91bGQtb3Blbi1leHRlcm5hbC11cmxzL3VzZXItZ2VzdHVyZS10YXJn
ZXQtYmxhbmstd2l0aC1mbGFnLmh0bWwKQEAgLTAsMCArMSwxMCBAQAorPHNjcmlwdD4KK2lmICh3
aW5kb3cudGVzdFJ1bm5lcikgeworICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAgIHRl
c3RSdW5uZXIuZHVtcFBvbGljeURlbGVnYXRlQ2FsbGJhY2tzKCk7CisgICAgdGVzdFJ1bm5lci5x
dWV1ZUxvYWQoInJlc291cmNlcy91c2VyLWdlc3R1cmUtdGFyZ2V0LWJsYW5rLXRvLW5vdGlmeS1k
b25lLmh0bWwiLCAiIiwgdHJ1ZSk7Cit9Cis8L3NjcmlwdD4KK1RoaXMgcGFnZSBvcGVucyBhIDJu
ZCBwYWdlIHdpdGggdGhlICJzaG91bGQgb3BlbiBleHRlcm5hbCBVUkxzIiBmbGFnIHNldCB0byB0
cnVlLjxicj4KK1RoYXQgcGFnZSBoYXMgYSBsaW5rIHRoYXQgLSB3aGVuIGNsaWNrZWQgLSBvcGVu
cyBhIGxpbmsgdG8gYSAzcmQgcGFnZSBpbiBhIG5ldyB3aW5kb3cuPGJyPgorVGhhdCAzcmQgcGFn
ZSBzaG91bGQgaGF2ZSB0aGUgZmxhZyBzZXQgdG8gdHJ1ZSBiZWNhdXNlIGl0IHdhcyBmcm9tIGEg
dXNlciBnZXN0dXJlLjxicj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2xvYWRlci9uYXZpZ2F0
aW9uLXBvbGljeS9zaG91bGQtb3Blbi1leHRlcm5hbC11cmxzL3VzZXItZ2VzdHVyZS10YXJnZXQt
Ymxhbmstd2l0aG91dC1mbGFnLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2xvYWRlci9uYXZp
Z2F0aW9uLXBvbGljeS9zaG91bGQtb3Blbi1leHRlcm5hbC11cmxzL3VzZXItZ2VzdHVyZS10YXJn
ZXQtYmxhbmstd2l0aG91dC1mbGFnLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwLi5jNzM3MTMyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbG9h
ZGVyL25hdmlnYXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvdXNlci1nZXN0
dXJlLXRhcmdldC1ibGFuay13aXRob3V0LWZsYWctZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBA
QAorIC0gZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbiAKKzxOU1VSTFJlcXVlc3QgVVJM
IHJlc291cmNlcy91c2VyLWdlc3R1cmUtdGFyZ2V0LWJsYW5rLXRvLW5vdGlmeS1kb25lLmh0bWws
IG1haW4gZG9jdW1lbnQgVVJMIHJlc291cmNlcy91c2VyLWdlc3R1cmUtdGFyZ2V0LWJsYW5rLXRv
LW5vdGlmeS1kb25lLmh0bWwsIGh0dHAgbWV0aG9kIEdFVD4gaXMgbWFpbiBmcmFtZSAtIHllcyBz
aG91bGQgb3BlbiBVUkxzIGV4dGVybmFsbHkgLSBubworIC0gZGVjaWRlUG9saWN5Rm9yTmF2aWdh
dGlvbkFjdGlvbiAKKzxOU1VSTFJlcXVlc3QgVVJMIG5vdGlmeS1kb25lLmh0bWwsIG1haW4gZG9j
dW1lbnQgVVJMIG5vdGlmeS1kb25lLmh0bWwsIGh0dHAgbWV0aG9kIEdFVD4gaXMgbWFpbiBmcmFt
ZSAtIHllcyBzaG91bGQgb3BlbiBVUkxzIGV4dGVybmFsbHkgLSB5ZXMKK0NsaWNrIHRvIG9wZW4g
bGluayBpbiBuZXcgd2luZG93LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbG9hZGVyL25hdmln
YXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvdXNlci1nZXN0dXJlLXRhcmdl
dC1ibGFuay13aXRob3V0LWZsYWctZnJvbS1zdWJmcmFtZS1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9sb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJscy91
c2VyLWdlc3R1cmUtdGFyZ2V0LWJsYW5rLXdpdGhvdXQtZmxhZy1mcm9tLXN1YmZyYW1lLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kZDUxZTNmCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbG9hZGVyL25hdmlnYXRpb24tcG9saWN5L3Nob3Vs
ZC1vcGVuLWV4dGVybmFsLXVybHMvdXNlci1nZXN0dXJlLXRhcmdldC1ibGFuay13aXRob3V0LWZs
YWctZnJvbS1zdWJmcmFtZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw3IEBACisgLSBkZWNpZGVQ
b2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uIAorPE5TVVJMUmVxdWVzdCBVUkwgcmVzb3VyY2VzL3Vz
ZXItZ2VzdHVyZS10YXJnZXQtYmxhbmstdG8tbm90aWZ5LWRvbmUtZnJvbS1zdWJmcmFtZS5odG1s
LCBtYWluIGRvY3VtZW50IFVSTCByZXNvdXJjZXMvdXNlci1nZXN0dXJlLXRhcmdldC1ibGFuay10
by1ub3RpZnktZG9uZS1mcm9tLXN1YmZyYW1lLmh0bWwsIGh0dHAgbWV0aG9kIEdFVD4gaXMgbWFp
biBmcmFtZSAtIHllcyBzaG91bGQgb3BlbiBVUkxzIGV4dGVybmFsbHkgLSBubworIC0gZGVjaWRl
UG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbiAKKzxOU1VSTFJlcXVlc3QgVVJMIHVzZXItZ2VzdHVy
ZS10YXJnZXQtYmxhbmstdG8tbm90aWZ5LWRvbmUuaHRtbCwgbWFpbiBkb2N1bWVudCBVUkwgdXNl
ci1nZXN0dXJlLXRhcmdldC1ibGFuay10by1ub3RpZnktZG9uZS1mcm9tLXN1YmZyYW1lLmh0bWws
IGh0dHAgbWV0aG9kIEdFVD4gaXMgbWFpbiBmcmFtZSAtIG5vIHNob3VsZCBvcGVuIFVSTHMgZXh0
ZXJuYWxseSAtIG5vCisgLSBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uIAorPE5TVVJM
UmVxdWVzdCBVUkwgbm90aWZ5LWRvbmUuaHRtbCwgbWFpbiBkb2N1bWVudCBVUkwgdXNlci1nZXN0
dXJlLXRhcmdldC1ibGFuay10by1ub3RpZnktZG9uZS1mcm9tLXN1YmZyYW1lLmh0bWwsIGh0dHAg
bWV0aG9kIEdFVD4gaXMgbWFpbiBmcmFtZSAtIHllcyBzaG91bGQgb3BlbiBVUkxzIGV4dGVybmFs
bHkgLSB5ZXMKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbG9hZGVyL25hdmlnYXRpb24tcG9s
aWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvdXNlci1nZXN0dXJlLXRhcmdldC1ibGFuay13
aXRob3V0LWZsYWctZnJvbS1zdWJmcmFtZS5odG1sIGIvTGF5b3V0VGVzdHMvbG9hZGVyL25hdmln
YXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvdXNlci1nZXN0dXJlLXRhcmdl
dC1ibGFuay13aXRob3V0LWZsYWctZnJvbS1zdWJmcmFtZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLmQ0ODY4MjcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9sb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJscy91c2Vy
LWdlc3R1cmUtdGFyZ2V0LWJsYW5rLXdpdGhvdXQtZmxhZy1mcm9tLXN1YmZyYW1lLmh0bWwKQEAg
LTAsMCArMSwxMCBAQAorPHNjcmlwdD4KK2lmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgIHRl
c3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAgIHRlc3RSdW5uZXIuZHVtcFBvbGljeURlbGVnYXRl
Q2FsbGJhY2tzKCk7CisgICAgdGVzdFJ1bm5lci5xdWV1ZUxvYWQoInJlc291cmNlcy91c2VyLWdl
c3R1cmUtdGFyZ2V0LWJsYW5rLXRvLW5vdGlmeS1kb25lLWZyb20tc3ViZnJhbWUuaHRtbCIpOwor
fQorPC9zY3JpcHQ+CitUaGlzIHBhZ2Ugb3BlbnMgYSAybmQgcGFnZSB3aXRoIHRoZSAic2hvdWxk
IG9wZW4gZXh0ZXJuYWwgVVJMcyIgZmxhZyBzZXQgdG8gZmFsc2UuPGJyPgorVGhhdCBwYWdlIGhh
cyBhIHN1YmZyYW1lIHdpdGggYSBsaW5rIHRoYXQgLSB3aGVuIGNsaWNrZWQgLSBvcGVucyBhIGxp
bmsgdG8gYSAzcmQgcGFnZSBpbiBhIG5ldyB3aW5kb3cuPGJyPgorVGhhdCAzcmQgcGFnZSBzaG91
bGQgaGF2ZSB0aGUgZmxhZyBzZXQgdG8gdHJ1ZSBiZWNhdXNlIGl0IHdhcyBmcm9tIGEgdXNlciBn
ZXN0dXJlLjxicj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2xvYWRlci9uYXZpZ2F0aW9uLXBv
bGljeS9zaG91bGQtb3Blbi1leHRlcm5hbC11cmxzL3VzZXItZ2VzdHVyZS10YXJnZXQtYmxhbmst
d2l0aG91dC1mbGFnLmh0bWwgYi9MYXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kv
c2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJscy91c2VyLWdlc3R1cmUtdGFyZ2V0LWJsYW5rLXdpdGhv
dXQtZmxhZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYwNGJlZTQK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kv
c2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJscy91c2VyLWdlc3R1cmUtdGFyZ2V0LWJsYW5rLXdpdGhv
dXQtZmxhZy5odG1sCkBAIC0wLDAgKzEsMTAgQEAKKzxzY3JpcHQ+CitpZiAod2luZG93LnRlc3RS
dW5uZXIpIHsKKyAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICB0ZXN0UnVubmVyLmR1
bXBQb2xpY3lEZWxlZ2F0ZUNhbGxiYWNrcygpOworICAgIHRlc3RSdW5uZXIucXVldWVMb2FkKCJy
ZXNvdXJjZXMvdXNlci1nZXN0dXJlLXRhcmdldC1ibGFuay10by1ub3RpZnktZG9uZS5odG1sIik7
Cit9Cis8L3NjcmlwdD4KK1RoaXMgcGFnZSBvcGVucyBhIDJuZCBwYWdlIHdpdGggdGhlICJzaG91
bGQgb3BlbiBleHRlcm5hbCBVUkxzIiBmbGFnIHNldCB0byBmYWxzZS48YnI+CitUaGF0IHBhZ2Ug
aGFzIGEgbGluayB0aGF0IC0gd2hlbiBjbGlja2VkIC0gb3BlbnMgYSBsaW5rIHRvIGEgM3JkIHBh
Z2UgaW4gYSBuZXcgd2luZG93Ljxicj4KK1RoYXQgM3JkIHBhZ2Ugc2hvdWxkIGhhdmUgdGhlIGZs
YWcgc2V0IHRvIHRydWUgYmVjYXVzZSBpdCB3YXMgZnJvbSBhIHVzZXIgZ2VzdHVyZS48YnI+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9w
ZW4tZXh0ZXJuYWwtdXJscy91c2VyLWdlc3R1cmUtd2luZG93LW9wZW4td2l0aC1mbGFnLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2xvYWRlci9uYXZpZ2F0aW9uLXBvbGljeS9zaG91bGQtb3Bl
bi1leHRlcm5hbC11cmxzL3VzZXItZ2VzdHVyZS13aW5kb3ctb3Blbi13aXRoLWZsYWctZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFjNTM5YjcKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxk
LW9wZW4tZXh0ZXJuYWwtdXJscy91c2VyLWdlc3R1cmUtd2luZG93LW9wZW4td2l0aC1mbGFnLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKKyAtIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25B
Y3Rpb24gCis8TlNVUkxSZXF1ZXN0IFVSTCByZXNvdXJjZXMvdXNlci1nZXN0dXJlLXdpbmRvdy1v
cGVuLXRvLW5vdGlmeS1kb25lLmh0bWwsIG1haW4gZG9jdW1lbnQgVVJMIHJlc291cmNlcy91c2Vy
LWdlc3R1cmUtd2luZG93LW9wZW4tdG8tbm90aWZ5LWRvbmUuaHRtbCwgaHR0cCBtZXRob2QgR0VU
PiBpcyBtYWluIGZyYW1lIC0geWVzIHNob3VsZCBvcGVuIFVSTHMgZXh0ZXJuYWxseSAtIHllcwor
IC0gZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbiAKKzxOU1VSTFJlcXVlc3QgVVJMIG5v
dGlmeS1kb25lLmh0bWwsIG1haW4gZG9jdW1lbnQgVVJMIG5vdGlmeS1kb25lLmh0bWwsIGh0dHAg
bWV0aG9kIEdFVD4gaXMgbWFpbiBmcmFtZSAtIHllcyBzaG91bGQgb3BlbiBVUkxzIGV4dGVybmFs
bHkgLSB5ZXMKK0NsaWNrIHRvIGRvIGEgd2luZG93Lm9wZW4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2xvYWRlci9uYXZpZ2F0aW9uLXBvbGljeS9zaG91bGQtb3Blbi1leHRlcm5hbC11cmxzL3Vz
ZXItZ2VzdHVyZS13aW5kb3ctb3Blbi13aXRoLWZsYWctZnJvbS1zdWJmcmFtZS1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0
ZXJuYWwtdXJscy91c2VyLWdlc3R1cmUtd2luZG93LW9wZW4td2l0aC1mbGFnLWZyb20tc3ViZnJh
bWUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhmNDU2
OWEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdhdGlvbi1wb2xp
Y3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJscy91c2VyLWdlc3R1cmUtd2luZG93LW9wZW4td2l0
aC1mbGFnLWZyb20tc3ViZnJhbWUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNyBAQAorIC0gZGVj
aWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbiAKKzxOU1VSTFJlcXVlc3QgVVJMIHJlc291cmNl
cy91c2VyLWdlc3R1cmUtd2luZG93LW9wZW4tdG8tbm90aWZ5LWRvbmUtZnJvbS1zdWJmcmFtZS5o
dG1sLCBtYWluIGRvY3VtZW50IFVSTCByZXNvdXJjZXMvdXNlci1nZXN0dXJlLXdpbmRvdy1vcGVu
LXRvLW5vdGlmeS1kb25lLWZyb20tc3ViZnJhbWUuaHRtbCwgaHR0cCBtZXRob2QgR0VUPiBpcyBt
YWluIGZyYW1lIC0geWVzIHNob3VsZCBvcGVuIFVSTHMgZXh0ZXJuYWxseSAtIHllcworIC0gZGVj
aWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbiAKKzxOU1VSTFJlcXVlc3QgVVJMIHVzZXItZ2Vz
dHVyZS13aW5kb3ctb3Blbi10by1ub3RpZnktZG9uZS5odG1sLCBtYWluIGRvY3VtZW50IFVSTCB1
c2VyLWdlc3R1cmUtd2luZG93LW9wZW4tdG8tbm90aWZ5LWRvbmUtZnJvbS1zdWJmcmFtZS5odG1s
LCBodHRwIG1ldGhvZCBHRVQ+IGlzIG1haW4gZnJhbWUgLSBubyBzaG91bGQgb3BlbiBVUkxzIGV4
dGVybmFsbHkgLSBubworIC0gZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbiAKKzxOU1VS
TFJlcXVlc3QgVVJMIG5vdGlmeS1kb25lLmh0bWwsIG1haW4gZG9jdW1lbnQgVVJMIG5vdGlmeS1k
b25lLmh0bWwsIGh0dHAgbWV0aG9kIEdFVD4gaXMgbWFpbiBmcmFtZSAtIHllcyBzaG91bGQgb3Bl
biBVUkxzIGV4dGVybmFsbHkgLSB5ZXMKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbG9hZGVy
L25hdmlnYXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvdXNlci1nZXN0dXJl
LXdpbmRvdy1vcGVuLXdpdGgtZmxhZy1mcm9tLXN1YmZyYW1lLmh0bWwgYi9MYXlvdXRUZXN0cy9s
b2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJscy91c2VyLWdl
c3R1cmUtd2luZG93LW9wZW4td2l0aC1mbGFnLWZyb20tc3ViZnJhbWUuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45NzgyNzMyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvbG9hZGVyL25hdmlnYXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVy
bHMvdXNlci1nZXN0dXJlLXdpbmRvdy1vcGVuLXdpdGgtZmxhZy1mcm9tLXN1YmZyYW1lLmh0bWwK
QEAgLTAsMCArMSwxMCBAQAorPHNjcmlwdD4KK2lmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAg
IHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAgIHRlc3RSdW5uZXIuZHVtcFBvbGljeURlbGVn
YXRlQ2FsbGJhY2tzKCk7CisgICAgdGVzdFJ1bm5lci5xdWV1ZUxvYWQoInJlc291cmNlcy91c2Vy
LWdlc3R1cmUtd2luZG93LW9wZW4tdG8tbm90aWZ5LWRvbmUtZnJvbS1zdWJmcmFtZS5odG1sIiwg
IiIsIHRydWUpOworfQorPC9zY3JpcHQ+CitUaGlzIHBhZ2Ugb3BlbnMgYSAybmQgcGFnZSB3aXRo
IHRoZSAic2hvdWxkIG9wZW4gZXh0ZXJuYWwgVVJMcyIgZmxhZyBzZXQgdG8gdHJ1ZS48YnI+CitU
aGF0IHBhZ2UgaGFzIGEgc3ViZnJhbWUgd2l0aCBhIGxpbmsgdGhhdCAtIHdoZW4gY2xpY2tlZCAt
IGNhbGxzIHdpbmRvdy5vcGVuIHRvIGEgM3JkIHBhZ2UuPGJyPgorVGhhdCAzcmQgcGFnZSBzaG91
bGQgaGF2ZSB0aGUgZmxhZyBzZXQgdG8gdHJ1ZSBiZWNhdXNlIGl0IHdhcyBmcm9tIGEgdXNlciBn
ZXN0dXJlLjxicj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2xvYWRlci9uYXZpZ2F0aW9uLXBv
bGljeS9zaG91bGQtb3Blbi1leHRlcm5hbC11cmxzL3VzZXItZ2VzdHVyZS13aW5kb3ctb3Blbi13
aXRoLWZsYWcuaHRtbCBiL0xheW91dFRlc3RzL2xvYWRlci9uYXZpZ2F0aW9uLXBvbGljeS9zaG91
bGQtb3Blbi1leHRlcm5hbC11cmxzL3VzZXItZ2VzdHVyZS13aW5kb3ctb3Blbi13aXRoLWZsYWcu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44YzQ0ZTdhCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbG9hZGVyL25hdmlnYXRpb24tcG9saWN5L3Nob3VsZC1v
cGVuLWV4dGVybmFsLXVybHMvdXNlci1nZXN0dXJlLXdpbmRvdy1vcGVuLXdpdGgtZmxhZy5odG1s
CkBAIC0wLDAgKzEsMTAgQEAKKzxzY3JpcHQ+CitpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAg
ICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICB0ZXN0UnVubmVyLmR1bXBQb2xpY3lEZWxl
Z2F0ZUNhbGxiYWNrcygpOworICAgIHRlc3RSdW5uZXIucXVldWVMb2FkKCJyZXNvdXJjZXMvdXNl
ci1nZXN0dXJlLXdpbmRvdy1vcGVuLXRvLW5vdGlmeS1kb25lLmh0bWwiLCAiIiwgdHJ1ZSk7Cit9
Cis8L3NjcmlwdD4KK1RoaXMgcGFnZSBvcGVucyBhIDJuZCBwYWdlIHdpdGggdGhlICJzaG91bGQg
b3BlbiBleHRlcm5hbCBVUkxzIiBmbGFnIHNldCB0byB0cnVlLjxicj4KK1RoYXQgcGFnZSBoYXMg
YSBsaW5rIHRoYXQgLSB3aGVuIGNsaWNrZWQgLSBkb2VzIGEgd2luZG93Lm9wZW4gdG8gb3BlbiBh
IDNyZCBwYWdlLjxicj4KK1RoYXQgM3JkIHBhZ2Ugc2hvdWxkIGhhdmUgdGhlIGZsYWcgc2V0IHRv
IHRydWUgYmVjYXVzZSBpdCB3YXMgZnJvbSBhIHVzZXIgZ2VzdHVyZS48YnI+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJu
YWwtdXJscy91c2VyLWdlc3R1cmUtd2luZG93LW9wZW4td2l0aG91dC1mbGFnLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2xvYWRlci9uYXZpZ2F0aW9uLXBvbGljeS9zaG91bGQtb3Blbi1leHRl
cm5hbC11cmxzL3VzZXItZ2VzdHVyZS13aW5kb3ctb3Blbi13aXRob3V0LWZsYWctZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc3NDY2ZmMKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9w
ZW4tZXh0ZXJuYWwtdXJscy91c2VyLWdlc3R1cmUtd2luZG93LW9wZW4td2l0aG91dC1mbGFnLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKKyAtIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25B
Y3Rpb24gCis8TlNVUkxSZXF1ZXN0IFVSTCByZXNvdXJjZXMvdXNlci1nZXN0dXJlLXdpbmRvdy1v
cGVuLXRvLW5vdGlmeS1kb25lLmh0bWwsIG1haW4gZG9jdW1lbnQgVVJMIHJlc291cmNlcy91c2Vy
LWdlc3R1cmUtd2luZG93LW9wZW4tdG8tbm90aWZ5LWRvbmUuaHRtbCwgaHR0cCBtZXRob2QgR0VU
PiBpcyBtYWluIGZyYW1lIC0geWVzIHNob3VsZCBvcGVuIFVSTHMgZXh0ZXJuYWxseSAtIG5vCisg
LSBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uIAorPE5TVVJMUmVxdWVzdCBVUkwgbm90
aWZ5LWRvbmUuaHRtbCwgbWFpbiBkb2N1bWVudCBVUkwgbm90aWZ5LWRvbmUuaHRtbCwgaHR0cCBt
ZXRob2QgR0VUPiBpcyBtYWluIGZyYW1lIC0geWVzIHNob3VsZCBvcGVuIFVSTHMgZXh0ZXJuYWxs
eSAtIHllcworQ2xpY2sgdG8gZG8gYSB3aW5kb3cub3BlbgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvbG9hZGVyL25hdmlnYXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvdXNl
ci1nZXN0dXJlLXdpbmRvdy1vcGVuLXdpdGhvdXQtZmxhZy1mcm9tLXN1YmZyYW1lLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2xvYWRlci9uYXZpZ2F0aW9uLXBvbGljeS9zaG91bGQtb3Blbi1l
eHRlcm5hbC11cmxzL3VzZXItZ2VzdHVyZS13aW5kb3ctb3Blbi13aXRob3V0LWZsYWctZnJvbS1z
dWJmcmFtZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
Y2NmZTVkYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2xvYWRlci9uYXZpZ2F0aW9u
LXBvbGljeS9zaG91bGQtb3Blbi1leHRlcm5hbC11cmxzL3VzZXItZ2VzdHVyZS13aW5kb3ctb3Bl
bi13aXRob3V0LWZsYWctZnJvbS1zdWJmcmFtZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw3IEBA
CisgLSBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uIAorPE5TVVJMUmVxdWVzdCBVUkwg
cmVzb3VyY2VzL3VzZXItZ2VzdHVyZS13aW5kb3ctb3Blbi10by1ub3RpZnktZG9uZS1mcm9tLXN1
YmZyYW1lLmh0bWwsIG1haW4gZG9jdW1lbnQgVVJMIHJlc291cmNlcy91c2VyLWdlc3R1cmUtd2lu
ZG93LW9wZW4tdG8tbm90aWZ5LWRvbmUtZnJvbS1zdWJmcmFtZS5odG1sLCBodHRwIG1ldGhvZCBH
RVQ+IGlzIG1haW4gZnJhbWUgLSB5ZXMgc2hvdWxkIG9wZW4gVVJMcyBleHRlcm5hbGx5IC0gbm8K
KyAtIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24gCis8TlNVUkxSZXF1ZXN0IFVSTCB1
c2VyLWdlc3R1cmUtd2luZG93LW9wZW4tdG8tbm90aWZ5LWRvbmUuaHRtbCwgbWFpbiBkb2N1bWVu
dCBVUkwgdXNlci1nZXN0dXJlLXdpbmRvdy1vcGVuLXRvLW5vdGlmeS1kb25lLWZyb20tc3ViZnJh
bWUuaHRtbCwgaHR0cCBtZXRob2QgR0VUPiBpcyBtYWluIGZyYW1lIC0gbm8gc2hvdWxkIG9wZW4g
VVJMcyBleHRlcm5hbGx5IC0gbm8KKyAtIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24g
Cis8TlNVUkxSZXF1ZXN0IFVSTCBub3RpZnktZG9uZS5odG1sLCBtYWluIGRvY3VtZW50IFVSTCBu
b3RpZnktZG9uZS5odG1sLCBodHRwIG1ldGhvZCBHRVQ+IGlzIG1haW4gZnJhbWUgLSB5ZXMgc2hv
dWxkIG9wZW4gVVJMcyBleHRlcm5hbGx5IC0geWVzCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2xvYWRlci9uYXZpZ2F0aW9uLXBvbGljeS9zaG91bGQtb3Blbi1leHRlcm5hbC11cmxzL3VzZXIt
Z2VzdHVyZS13aW5kb3ctb3Blbi13aXRob3V0LWZsYWctZnJvbS1zdWJmcmFtZS5odG1sIGIvTGF5
b3V0VGVzdHMvbG9hZGVyL25hdmlnYXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVy
bHMvdXNlci1nZXN0dXJlLXdpbmRvdy1vcGVuLXdpdGhvdXQtZmxhZy1mcm9tLXN1YmZyYW1lLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDk0YjRmYQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2xvYWRlci9uYXZpZ2F0aW9uLXBvbGljeS9zaG91bGQtb3Bl
bi1leHRlcm5hbC11cmxzL3VzZXItZ2VzdHVyZS13aW5kb3ctb3Blbi13aXRob3V0LWZsYWctZnJv
bS1zdWJmcmFtZS5odG1sCkBAIC0wLDAgKzEsMTAgQEAKKzxzY3JpcHQ+CitpZiAod2luZG93LnRl
c3RSdW5uZXIpIHsKKyAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICB0ZXN0UnVubmVy
LmR1bXBQb2xpY3lEZWxlZ2F0ZUNhbGxiYWNrcygpOworICAgIHRlc3RSdW5uZXIucXVldWVMb2Fk
KCJyZXNvdXJjZXMvdXNlci1nZXN0dXJlLXdpbmRvdy1vcGVuLXRvLW5vdGlmeS1kb25lLWZyb20t
c3ViZnJhbWUuaHRtbCIpOworfQorPC9zY3JpcHQ+CitUaGlzIHBhZ2Ugb3BlbnMgYSAybmQgcGFn
ZSB3aXRoIHRoZSAic2hvdWxkIG9wZW4gZXh0ZXJuYWwgVVJMcyIgZmxhZyBzZXQgdG8gZmFsc2Uu
PGJyPgorVGhhdCBwYWdlIGhhcyBhIHN1YmZyYW1lIHdpdGggYSBsaW5rIHRoYXQgLSB3aGVuIGNs
aWNrZWQgLSBjYWxscyB3aW5kb3cub3BlbiB0byBhIDNyZCBwYWdlLjxicj4KK1RoYXQgM3JkIHBh
Z2Ugc2hvdWxkIGhhdmUgdGhlIGZsYWcgc2V0IHRvIHRydWUgYmVjYXVzZSBpdCB3YXMgZnJvbSBh
IHVzZXIgZ2VzdHVyZS48YnI+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdh
dGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJscy91c2VyLWdlc3R1cmUtd2luZG93
LW9wZW4td2l0aG91dC1mbGFnLmh0bWwgYi9MYXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdhdGlvbi1w
b2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJscy91c2VyLWdlc3R1cmUtd2luZG93LW9wZW4t
d2l0aG91dC1mbGFnLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTg3
MDg4OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2xvYWRlci9uYXZpZ2F0aW9uLXBv
bGljeS9zaG91bGQtb3Blbi1leHRlcm5hbC11cmxzL3VzZXItZ2VzdHVyZS13aW5kb3ctb3Blbi13
aXRob3V0LWZsYWcuaHRtbApAQCAtMCwwICsxLDEwIEBACis8c2NyaXB0PgoraWYgKHdpbmRvdy50
ZXN0UnVubmVyKSB7CisgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgdGVzdFJ1bm5l
ci5kdW1wUG9saWN5RGVsZWdhdGVDYWxsYmFja3MoKTsKKyAgICB0ZXN0UnVubmVyLnF1ZXVlTG9h
ZCgicmVzb3VyY2VzL3VzZXItZ2VzdHVyZS13aW5kb3ctb3Blbi10by1ub3RpZnktZG9uZS5odG1s
Iik7Cit9Cis8L3NjcmlwdD4KK1RoaXMgcGFnZSBvcGVucyBhIDJuZCBwYWdlIHdpdGggdGhlICJz
aG91bGQgb3BlbiBleHRlcm5hbCBVUkxzIiBmbGFnIHNldCB0byBmYWxzZS48YnI+CitUaGF0IHBh
Z2UgaGFzIGEgbGluayB0aGF0IC0gd2hlbiBjbGlja2VkIC0gZG9lcyBhIHdpbmRvdy5vcGVuIHRv
IG9wZW4gYSAzcmQgcGFnZS48YnI+CitUaGF0IDNyZCBwYWdlIHNob3VsZCBoYXZlIHRoZSBmbGFn
IHNldCB0byB0cnVlIGJlY2F1c2UgaXQgd2FzIGZyb20gYSB1c2VyIGdlc3R1cmUuPGJyPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvbG9hZGVyL25hdmlnYXRpb24tcG9saWN5L3Nob3VsZC1vcGVu
LWV4dGVybmFsLXVybHMvd2luZG93LW9wZW4td2l0aC1mbGFnLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2xvYWRlci9uYXZpZ2F0aW9uLXBvbGljeS9zaG91bGQtb3Blbi1leHRlcm5hbC11cmxz
L3dpbmRvdy1vcGVuLXdpdGgtZmxhZy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uMGRmOTAyMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2xv
YWRlci9uYXZpZ2F0aW9uLXBvbGljeS9zaG91bGQtb3Blbi1leHRlcm5hbC11cmxzL3dpbmRvdy1v
cGVuLXdpdGgtZmxhZy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1IEBACisgLSBkZWNpZGVQb2xp
Y3lGb3JOYXZpZ2F0aW9uQWN0aW9uIAorPE5TVVJMUmVxdWVzdCBVUkwgcmVzb3VyY2VzL3dpbmRv
dy1vcGVuLXRvLW5vdGlmeS1kb25lLmh0bWwsIG1haW4gZG9jdW1lbnQgVVJMIHJlc291cmNlcy93
aW5kb3ctb3Blbi10by1ub3RpZnktZG9uZS5odG1sLCBodHRwIG1ldGhvZCBHRVQ+IGlzIG1haW4g
ZnJhbWUgLSB5ZXMgc2hvdWxkIG9wZW4gVVJMcyBleHRlcm5hbGx5IC0geWVzCisgLSBkZWNpZGVQ
b2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uIAorPE5TVVJMUmVxdWVzdCBVUkwgbm90aWZ5LWRvbmUu
aHRtbCwgbWFpbiBkb2N1bWVudCBVUkwgbm90aWZ5LWRvbmUuaHRtbCwgaHR0cCBtZXRob2QgR0VU
PiBpcyBtYWluIGZyYW1lIC0geWVzIHNob3VsZCBvcGVuIFVSTHMgZXh0ZXJuYWxseSAtIHllcwor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxk
LW9wZW4tZXh0ZXJuYWwtdXJscy93aW5kb3ctb3Blbi13aXRoLWZsYWctZnJvbS1zdWJmcmFtZS1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxk
LW9wZW4tZXh0ZXJuYWwtdXJscy93aW5kb3ctb3Blbi13aXRoLWZsYWctZnJvbS1zdWJmcmFtZS1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmNiZWY2NAot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2xvYWRlci9uYXZpZ2F0aW9uLXBvbGljeS9z
aG91bGQtb3Blbi1leHRlcm5hbC11cmxzL3dpbmRvdy1vcGVuLXdpdGgtZmxhZy1mcm9tLXN1YmZy
YW1lLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDcgQEAKKyAtIGRlY2lkZVBvbGljeUZvck5hdmln
YXRpb25BY3Rpb24gCis8TlNVUkxSZXF1ZXN0IFVSTCByZXNvdXJjZXMvd2luZG93LW9wZW4tdG8t
bm90aWZ5LWRvbmUtZnJvbS1zdWJmcmFtZS5odG1sLCBtYWluIGRvY3VtZW50IFVSTCByZXNvdXJj
ZXMvd2luZG93LW9wZW4tdG8tbm90aWZ5LWRvbmUtZnJvbS1zdWJmcmFtZS5odG1sLCBodHRwIG1l
dGhvZCBHRVQ+IGlzIG1haW4gZnJhbWUgLSB5ZXMgc2hvdWxkIG9wZW4gVVJMcyBleHRlcm5hbGx5
IC0geWVzCisgLSBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uIAorPE5TVVJMUmVxdWVz
dCBVUkwgd2luZG93LW9wZW4tdG8tbm90aWZ5LWRvbmUuaHRtbCwgbWFpbiBkb2N1bWVudCBVUkwg
d2luZG93LW9wZW4tdG8tbm90aWZ5LWRvbmUtZnJvbS1zdWJmcmFtZS5odG1sLCBodHRwIG1ldGhv
ZCBHRVQ+IGlzIG1haW4gZnJhbWUgLSBubyBzaG91bGQgb3BlbiBVUkxzIGV4dGVybmFsbHkgLSBu
bworIC0gZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbiAKKzxOU1VSTFJlcXVlc3QgVVJM
IG5vdGlmeS1kb25lLmh0bWwsIG1haW4gZG9jdW1lbnQgVVJMIG5vdGlmeS1kb25lLmh0bWwsIGh0
dHAgbWV0aG9kIEdFVD4gaXMgbWFpbiBmcmFtZSAtIHllcyBzaG91bGQgb3BlbiBVUkxzIGV4dGVy
bmFsbHkgLSBubworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdhdGlvbi1w
b2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJscy93aW5kb3ctb3Blbi13aXRoLWZsYWctZnJv
bS1zdWJmcmFtZS5odG1sIGIvTGF5b3V0VGVzdHMvbG9hZGVyL25hdmlnYXRpb24tcG9saWN5L3No
b3VsZC1vcGVuLWV4dGVybmFsLXVybHMvd2luZG93LW9wZW4td2l0aC1mbGFnLWZyb20tc3ViZnJh
bWUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44MWE1N2Y3Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbG9hZGVyL25hdmlnYXRpb24tcG9saWN5L3Nob3Vs
ZC1vcGVuLWV4dGVybmFsLXVybHMvd2luZG93LW9wZW4td2l0aC1mbGFnLWZyb20tc3ViZnJhbWUu
aHRtbApAQCAtMCwwICsxLDEwIEBACis8c2NyaXB0PgoraWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7
CisgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgdGVzdFJ1bm5lci5kdW1wUG9saWN5
RGVsZWdhdGVDYWxsYmFja3MoKTsKKyAgICB0ZXN0UnVubmVyLnF1ZXVlTG9hZCgicmVzb3VyY2Vz
L3dpbmRvdy1vcGVuLXRvLW5vdGlmeS1kb25lLWZyb20tc3ViZnJhbWUuaHRtbCIsICIiLCB0cnVl
KTsKK30KKzwvc2NyaXB0PgorVGhpcyBwYWdlIG9wZW5zIGEgMm5kIHBhZ2Ugd2l0aCB0aGUgInNo
b3VsZCBvcGVuIGV4dGVybmFsIFVSTHMiIGZsYWcgc2V0IHRvIHRydWUuPGJyPgorVGhhdCBwYWdl
IGhhcyBhIHN1YmZyYW1lIHdoaWNoIGNhbGxzIHdpbmRvdy5vcGVuIHRvIGEgM3JkIHBhZ2UuPGJy
PgorVGhhdCAzcmQgcGFnZSBzaG91bGQgaGF2ZSB0aGUgZmxhZyBzZXQgdG8gZmFsc2UgYmVjYXVz
ZSB0aGUgc3ViZnJhbWUgaW5pdGlhdGVkIHRoZSBsb2FkLjxicj4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2xvYWRlci9uYXZpZ2F0aW9uLXBvbGljeS9zaG91bGQtb3Blbi1leHRlcm5hbC11cmxz
L3dpbmRvdy1vcGVuLXdpdGgtZmxhZy5odG1sIGIvTGF5b3V0VGVzdHMvbG9hZGVyL25hdmlnYXRp
b24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvd2luZG93LW9wZW4td2l0aC1mbGFn
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2UzZDk0OQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2xvYWRlci9uYXZpZ2F0aW9uLXBvbGljeS9zaG91bGQt
b3Blbi1leHRlcm5hbC11cmxzL3dpbmRvdy1vcGVuLXdpdGgtZmxhZy5odG1sCkBAIC0wLDAgKzEs
MTAgQEAKKzxzY3JpcHQ+CitpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICB0ZXN0UnVubmVy
LmR1bXBBc1RleHQoKTsKKyAgICB0ZXN0UnVubmVyLmR1bXBQb2xpY3lEZWxlZ2F0ZUNhbGxiYWNr
cygpOworICAgIHRlc3RSdW5uZXIucXVldWVMb2FkKCJyZXNvdXJjZXMvd2luZG93LW9wZW4tdG8t
bm90aWZ5LWRvbmUuaHRtbCIsICIiLCB0cnVlKTsKK30KKzwvc2NyaXB0PgorVGhpcyBwYWdlIG9w
ZW5zIGEgMm5kIHBhZ2Ugd2l0aCB0aGUgInNob3VsZCBvcGVuIGV4dGVybmFsIFVSTHMiIGZsYWcg
c2V0IHRvIHRydWUuPGJyPgorVGhhdCBwYWdlIGRvZXMgYSB3aW5kb3cub3BlbiB0byBvcGVuIGEg
M3JkIHBhZ2UuPGJyPgorVGhhdCAzcmQgcGFnZSBzaG91bGQgaGF2ZSB0aGUgZmxhZyBzZXQgdG8g
dHJ1ZSBiZWNhdXNlIGl0IHNob3VsZCBwcm9wYWdhdGUgZnJvbSBtYWluIGZyYW1lIHRvIG1haW4g
ZnJhbWUuPGJyPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbG9hZGVyL25hdmlnYXRpb24tcG9s
aWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvd2luZG93LW9wZW4td2l0aG91dC1mbGFnLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2xvYWRlci9uYXZpZ2F0aW9uLXBvbGljeS9zaG91bGQt
b3Blbi1leHRlcm5hbC11cmxzL3dpbmRvdy1vcGVuLXdpdGhvdXQtZmxhZy1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDY4Yzg4YQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2xvYWRlci9uYXZpZ2F0aW9uLXBvbGljeS9zaG91bGQtb3Blbi1l
eHRlcm5hbC11cmxzL3dpbmRvdy1vcGVuLXdpdGhvdXQtZmxhZy1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSw1IEBACisgLSBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uIAorPE5TVVJMUmVx
dWVzdCBVUkwgcmVzb3VyY2VzL3dpbmRvdy1vcGVuLXRvLW5vdGlmeS1kb25lLmh0bWwsIG1haW4g
ZG9jdW1lbnQgVVJMIHJlc291cmNlcy93aW5kb3ctb3Blbi10by1ub3RpZnktZG9uZS5odG1sLCBo
dHRwIG1ldGhvZCBHRVQ+IGlzIG1haW4gZnJhbWUgLSB5ZXMgc2hvdWxkIG9wZW4gVVJMcyBleHRl
cm5hbGx5IC0gbm8KKyAtIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24gCis8TlNVUkxS
ZXF1ZXN0IFVSTCBub3RpZnktZG9uZS5odG1sLCBtYWluIGRvY3VtZW50IFVSTCBub3RpZnktZG9u
ZS5odG1sLCBodHRwIG1ldGhvZCBHRVQ+IGlzIG1haW4gZnJhbWUgLSB5ZXMgc2hvdWxkIG9wZW4g
VVJMcyBleHRlcm5hbGx5IC0gbm8KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbG9hZGVyL25h
dmlnYXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvd2luZG93LW9wZW4td2l0
aG91dC1mbGFnLWZyb20tc3ViZnJhbWUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvbG9hZGVy
L25hdmlnYXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvd2luZG93LW9wZW4t
d2l0aG91dC1mbGFnLWZyb20tc3ViZnJhbWUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLjljODQ0MmUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9sb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJscy93aW5k
b3ctb3Blbi13aXRob3V0LWZsYWctZnJvbS1zdWJmcmFtZS1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSw3IEBACisgLSBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uIAorPE5TVVJMUmVxdWVz
dCBVUkwgcmVzb3VyY2VzL3dpbmRvdy1vcGVuLXRvLW5vdGlmeS1kb25lLWZyb20tc3ViZnJhbWUu
aHRtbCwgbWFpbiBkb2N1bWVudCBVUkwgcmVzb3VyY2VzL3dpbmRvdy1vcGVuLXRvLW5vdGlmeS1k
b25lLWZyb20tc3ViZnJhbWUuaHRtbCwgaHR0cCBtZXRob2QgR0VUPiBpcyBtYWluIGZyYW1lIC0g
eWVzIHNob3VsZCBvcGVuIFVSTHMgZXh0ZXJuYWxseSAtIG5vCisgLSBkZWNpZGVQb2xpY3lGb3JO
YXZpZ2F0aW9uQWN0aW9uIAorPE5TVVJMUmVxdWVzdCBVUkwgd2luZG93LW9wZW4tdG8tbm90aWZ5
LWRvbmUuaHRtbCwgbWFpbiBkb2N1bWVudCBVUkwgd2luZG93LW9wZW4tdG8tbm90aWZ5LWRvbmUt
ZnJvbS1zdWJmcmFtZS5odG1sLCBodHRwIG1ldGhvZCBHRVQ+IGlzIG1haW4gZnJhbWUgLSBubyBz
aG91bGQgb3BlbiBVUkxzIGV4dGVybmFsbHkgLSBubworIC0gZGVjaWRlUG9saWN5Rm9yTmF2aWdh
dGlvbkFjdGlvbiAKKzxOU1VSTFJlcXVlc3QgVVJMIG5vdGlmeS1kb25lLmh0bWwsIG1haW4gZG9j
dW1lbnQgVVJMIG5vdGlmeS1kb25lLmh0bWwsIGh0dHAgbWV0aG9kIEdFVD4gaXMgbWFpbiBmcmFt
ZSAtIHllcyBzaG91bGQgb3BlbiBVUkxzIGV4dGVybmFsbHkgLSBubworCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwt
dXJscy93aW5kb3ctb3Blbi13aXRob3V0LWZsYWctZnJvbS1zdWJmcmFtZS5odG1sIGIvTGF5b3V0
VGVzdHMvbG9hZGVyL25hdmlnYXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMv
d2luZG93LW9wZW4td2l0aG91dC1mbGFnLWZyb20tc3ViZnJhbWUuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi45N2U1M2I1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvbG9hZGVyL25hdmlnYXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMv
d2luZG93LW9wZW4td2l0aG91dC1mbGFnLWZyb20tc3ViZnJhbWUuaHRtbApAQCAtMCwwICsxLDEw
IEBACis8c2NyaXB0PgoraWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgdGVzdFJ1bm5lci5k
dW1wQXNUZXh0KCk7CisgICAgdGVzdFJ1bm5lci5kdW1wUG9saWN5RGVsZWdhdGVDYWxsYmFja3Mo
KTsKKyAgICB0ZXN0UnVubmVyLnF1ZXVlTG9hZCgicmVzb3VyY2VzL3dpbmRvdy1vcGVuLXRvLW5v
dGlmeS1kb25lLWZyb20tc3ViZnJhbWUuaHRtbCIpOworfQorPC9zY3JpcHQ+CitUaGlzIHBhZ2Ug
b3BlbnMgYSAybmQgcGFnZSB3aXRoIHRoZSAic2hvdWxkIG9wZW4gZXh0ZXJuYWwgVVJMcyIgZmxh
ZyBzZXQgdG8gZmFsc2UuPGJyPgorVGhhdCBwYWdlIGhhcyBhIHN1YmZyYW1lIHdoaWNoIGNhbGxz
IHdpbmRvdy5vcGVuIHRvIGEgM3JkIHBhZ2UuPGJyPgorVGhhdCAzcmQgcGFnZSBzaG91bGQgaGF2
ZSB0aGUgZmxhZyBzZXQgdG8gZmFsc2UgYmVjYXVzZSB0aGUgc3ViZnJhbWUgaW5pdGlhdGVkIHRo
ZSBsb2FkLCAqYW5kKiBiZWNhdXNlIHRoZSBtYWluIGZyYW1lIGRpZCBub3QgaGF2ZSB0aGUgZmxh
ZyBzZXQuPGJyPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbG9hZGVyL25hdmlnYXRpb24tcG9s
aWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvd2luZG93LW9wZW4td2l0aG91dC1mbGFnLmh0
bWwgYi9MYXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0
ZXJuYWwtdXJscy93aW5kb3ctb3Blbi13aXRob3V0LWZsYWcuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi44MDAxN2QwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvbG9hZGVyL25hdmlnYXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvd2lu
ZG93LW9wZW4td2l0aG91dC1mbGFnLmh0bWwKQEAgLTAsMCArMSwxMCBAQAorPHNjcmlwdD4KK2lm
ICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAg
IHRlc3RSdW5uZXIuZHVtcFBvbGljeURlbGVnYXRlQ2FsbGJhY2tzKCk7CisgICAgdGVzdFJ1bm5l
ci5xdWV1ZUxvYWQoInJlc291cmNlcy93aW5kb3ctb3Blbi10by1ub3RpZnktZG9uZS5odG1sIik7
Cit9Cis8L3NjcmlwdD4KK1RoaXMgcGFnZSBvcGVucyBhIDJuZCBwYWdlIHdpdGggdGhlICJzaG91
bGQgb3BlbiBleHRlcm5hbCBVUkxzIiBmbGFnIHNldCB0byBmYWxzZS48YnI+CitUaGF0IHBhZ2Ug
ZG9lcyBhIHdpbmRvdy5vcGVuIHRvIG9wZW4gYSAzcmQgcGFnZS48YnI+CitUaGF0IDNyZCBwYWdl
IHNob3VsZCBhbHNvIGhhdmUgdGhlIGZsYWcgc2V0IHRvIGZhbHNlLjxicj4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRl
eCBkZGY0OWI3Li5hMTM4MDRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQwIEBACisyMDE1LTA2
LTAxICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KKworICAgICAgICBXZWJLaXQg
cG9saWN5IGRlbGVnYXRlIHNob3VsZCBzdWdnZXN0IGlmIGEgbmF2aWdhdGlvbiBzaG91bGQgYmUg
YWxsb3dlZCB0byBvcGVuIFVSTHMgZXh0ZXJuYWxseS4KKyAgICAgICAgcmRhcjovL3Byb2JsZW0v
MjEwMjUzMDEgYW5kIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDUy
ODAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0
czogbG9hZGVyL25hdmlnYXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvbWFp
bi1mcmFtZS1jbGljay5odG1sCisgICAgICAgICAgICAgICBsb2FkZXIvbmF2aWdhdGlvbi1wb2xp
Y3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJscy9tYWluLWZyYW1lLW5hdmlnYXRlZC1wcm9ncmFt
YXRpY2FsbHktYnktc3ViZnJhbWUuaHRtbAorICAgICAgICAgICAgICAgbG9hZGVyL25hdmlnYXRp
b24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvbWFpbi1mcmFtZS13aXRoLWZsYWct
cHJvZ2FtYXRpYy5odG1sCisgICAgICAgICAgICAgICBsb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kv
c2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJscy9tYWluLWZyYW1lLXdpdGhvdXQtZmxhZy1wcm9ncmFt
YXRpYy5odG1sCisgICAgICAgICAgICAgICBsb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxk
LW9wZW4tZXh0ZXJuYWwtdXJscy9zdWJmcmFtZS1jbGljay10YXJnZXQtc2VsZi5odG1sCisgICAg
ICAgICAgICAgICBsb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwt
dXJscy9zdWJmcmFtZS1jbGljay10YXJnZXQtdG9wLmh0bWwKKyAgICAgICAgICAgICAgIGxvYWRl
ci9uYXZpZ2F0aW9uLXBvbGljeS9zaG91bGQtb3Blbi1leHRlcm5hbC11cmxzL3VzZXItZ2VzdHVy
ZS10YXJnZXQtYmxhbmstd2l0aC1mbGFnLWZyb20tc3ViZnJhbWUuaHRtbAorICAgICAgICAgICAg
ICAgbG9hZGVyL25hdmlnYXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvdXNl
ci1nZXN0dXJlLXRhcmdldC1ibGFuay13aXRoLWZsYWcuaHRtbAorICAgICAgICAgICAgICAgbG9h
ZGVyL25hdmlnYXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvdXNlci1nZXN0
dXJlLXRhcmdldC1ibGFuay13aXRob3V0LWZsYWctZnJvbS1zdWJmcmFtZS5odG1sCisgICAgICAg
ICAgICAgICBsb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJs
cy91c2VyLWdlc3R1cmUtdGFyZ2V0LWJsYW5rLXdpdGhvdXQtZmxhZy5odG1sCisgICAgICAgICAg
ICAgICBsb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJscy91
c2VyLWdlc3R1cmUtd2luZG93LW9wZW4td2l0aC1mbGFnLWZyb20tc3ViZnJhbWUuaHRtbAorICAg
ICAgICAgICAgICAgbG9hZGVyL25hdmlnYXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFs
LXVybHMvdXNlci1nZXN0dXJlLXdpbmRvdy1vcGVuLXdpdGgtZmxhZy5odG1sCisgICAgICAgICAg
ICAgICBsb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJscy91
c2VyLWdlc3R1cmUtd2luZG93LW9wZW4td2l0aG91dC1mbGFnLWZyb20tc3ViZnJhbWUuaHRtbAor
ICAgICAgICAgICAgICAgbG9hZGVyL25hdmlnYXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVy
bmFsLXVybHMvdXNlci1nZXN0dXJlLXdpbmRvdy1vcGVuLXdpdGhvdXQtZmxhZy5odG1sCisgICAg
ICAgICAgICAgICBsb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwt
dXJscy93aW5kb3ctb3Blbi13aXRoLWZsYWctZnJvbS1zdWJmcmFtZS5odG1sCisgICAgICAgICAg
ICAgICBsb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJscy93
aW5kb3ctb3Blbi13aXRoLWZsYWcuaHRtbAorICAgICAgICAgICAgICAgbG9hZGVyL25hdmlnYXRp
b24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvd2luZG93LW9wZW4td2l0aG91dC1m
bGFnLWZyb20tc3ViZnJhbWUuaHRtbAorICAgICAgICAgICAgICAgbG9hZGVyL25hdmlnYXRpb24t
cG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvd2luZG93LW9wZW4td2l0aG91dC1mbGFn
Lmh0bWwKKworICAgICAgICBUaGUgInNob3VsZCBvcGVuIGV4dGVybmFsIFVSTHMiIGZsYWcgaXMg
b25seSBmb3IgbWFpbiBmcmFtZXMuCisgICAgICAgIEl0IGRvZXNuJ3QgZW5mb3JjZSBhbnkgc29y
dCBvZiBwb2xpY3kgaW50ZXJuYWwgdG8gV2ViS2l0LCBidXQgcmF0aGVyIGlzIGZvciBub3RpZmlj
YXRpb25zIHRvIHRoZSBwb2xpY3kgZGVsZWdhdGUuCisgICAgICAgIAorICAgICAgICBJdCBpcyBz
ZXQgZnJvbSBvbmUgb2YgdHdvIHBsYWNlczoKKyAgICAgICAgMSAtIEEgbWFpbiBmcmFtZSBpcyBu
YXZpZ2F0ZWQgYnkgYW55IGZyYW1lIGFzIHRoZSByZXN1bHQgb2YgYSB1c2VyIGdlc3R1cmUuCisg
ICAgICAgIDIgLSBXZWJLaXQyIEFQSSBleHBsaWNpdGx5IHN0YXRlcyB0aGUgZmxhZyBpcyB0cnVl
LgorICAgICAgICAKKyAgICAgICAgVGhlIGZsYWcgdmFsdWUgcHJvcGFnYXRlcyB3aGVuOgorICAg
ICAgICAxIC0gV2hlbiBhIG1haW4gZnJhbWUgZG9jdW1lbnQgaXMgbmF2aWdhdGVkIHRvIGEgbmV3
IG1haW4gZnJhbWUgZG9jdW1lbnQuCisgICAgICAgIDIgLSBXaGVuIGEgbmV3IHdpbmRvdyBpcyBv
cGVuZWQgZnJvbSBhIHBhZ2Ugd2hvc2UgbWFpbiBmcmFtZSBoYWQgdGhlIGZsYWcgc2V0LgorICAg
ICAgICAKKyAgICAgICAgVGhlIGZsYWcgcmVzZXRzIHRvIGZhbHNlIHdoZW46CisgICAgICAgIDEg
LSBBIHN1YmZyYW1lIG5hdmlnYXRlcyBhIG1haW4gZnJhbWUgd2l0aG91dCBhIHVzZXIgZ2VzdHVy
ZS4KKyAgICAgICAgCisgICAgICAgIFRoaXMgcGF0Y2ggaXMgbGFyZ2UsIGJ1dCBkb2VzIGxpdHRs
ZSBtb3JlIHRoYW4gdGhlIGZvbGxvd2luZzoKKyAgICAgICAgMSAtIEFkZHMgYSBTaG91bGRPcGVu
RXh0ZXJuYWxVUkxzIGZsYWcgdG8gYm90aCBGcmFtZUxvYWRSZXF1ZXN0IGFuZCBOYXZpZ2F0aW9u
QWN0aW9uLgorICAgICAgICAyIC0gTWFrZXMgc3VyZSBhbnlib2R5IHdobyBjcmVhdGVzIGVpdGhl
ciBvZiB0aG9zZSBvYmplY3RzIHNldHMgYSBzZW5zaWJsZSBmb3IgdGhhdCBmbGFnLgorICAgICAg
ICAzIC0gV2hlbiBGcmFtZUxvYWRlciBjcmVhdGVzIGEgbmV3IERvY3VtZW50TG9hZGVyLCBpdCBz
ZXRzIGl0cyBmbGFnIGJhc2VkIG9uIHdoZXRoZXIgb3Igbm90IHRoZSBsb2FkIGlzIGluIGEgbWFp
biBmcmFtZSwKKyAgICAgICAgICAgIHdoZXRoZXIgb3Igbm90IHRoZSBsb2FkIGlzIGZyb20gYSB1
c2VyIGdlc3R1cmUsIGFuZCBiYXNlZCBvbiB0aGUgaW5pdGlhdG9yJ3MgdmFsdWUgb2YgdGhlIGZs
YWcuIAorCisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRv
Y3VtZW50Ojpwcm9jZXNzSHR0cEVxdWl2KToKKyAgICAgICAgCisgICAgICAgICogaHRtbC9IVE1M
QW5jaG9yRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQW5jaG9yRWxlbWVudDo6
aGFuZGxlQ2xpY2spOgorICAgICAgICAKKyAgICAgICAgKiBodG1sL0hUTUxMaW5rRWxlbWVudC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTGlua0VsZW1lbnQ6OmhhbmRsZUNsaWNrKToKKyAg
ICAgICAgCisgICAgICAgICogaHRtbC9wYXJzZXIvWFNTQXVkaXRvckRlbGVnYXRlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlhTU0F1ZGl0b3JEZWxlZ2F0ZTo6ZGlkQmxvY2tTY3JpcHQpOgorICAg
ICAgICAKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsOjpvcGVu
SW5OZXdUYWIpOgorICAgICAgICAKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFn
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclBhZ2VBZ2VudDo6bmF2aWdhdGUp
OgorICAgICAgICAKKyAgICAgICAgKiBsb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXI6OnNldFRyaWdnZXJpbmdBY3Rpb24pOgorICAgICAg
ICAoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXI6OnNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3lU
b1Byb3BhZ2F0ZSk6CisgICAgICAgICogbG9hZGVyL0RvY3VtZW50TG9hZGVyLmg6CisgICAgICAg
IChXZWJDb3JlOjpEb2N1bWVudExvYWRlcjo6c2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSk6
IERlbGV0ZWQuCisgICAgICAgIAorICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRSZXF1ZXN0LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZFJlcXVlc3Q6OkZyYW1lTG9hZFJlcXVlc3Qp
OgorICAgICAgICAKKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkUmVxdWVzdC5oOgorICAgICAg
ICAoV2ViQ29yZTo6RnJhbWVMb2FkUmVxdWVzdDo6RnJhbWVMb2FkUmVxdWVzdCk6CisgICAgICAg
IAorICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpG
cmFtZUxvYWRlcjo6dXJsU2VsZWN0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6
OnJlY2VpdmVkRmlyc3REYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpsb2Fk
VVJMSW50b0NoaWxkRnJhbWUpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmxvYWRV
UkwpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmxvYWQpOgorICAgICAgICAoV2Vi
Q29yZTo6RnJhbWVMb2FkZXI6OmxvYWRXaXRoTmF2aWdhdGlvbkFjdGlvbik6CisgICAgICAgIChX
ZWJDb3JlOjpGcmFtZUxvYWRlcjo6cmVsb2FkV2l0aE92ZXJyaWRlRW5jb2RpbmcpOgorICAgICAg
ICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OnJlbG9hZCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFt
ZUxvYWRlcjo6bG9hZFBvc3RSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVy
Ojpjb250aW51ZUxvYWRBZnRlck5ld1dpbmRvd1BvbGljeSk6CisgICAgICAgIChXZWJDb3JlOjpG
cmFtZUxvYWRlcjo6YXBwbHlTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5VG9OZXdEb2N1bWVu
dExvYWRlcik6CisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyLmg6CisgICAgICAgIAorICAg
ICAgICAqIGxvYWRlci9OYXZpZ2F0aW9uQWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5h
dmlnYXRpb25BY3Rpb246Ok5hdmlnYXRpb25BY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6TmF2
aWdhdGlvbkFjdGlvbjo6Y29weVdpdGhTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5KToKKyAg
ICAgICAgKiBsb2FkZXIvTmF2aWdhdGlvbkFjdGlvbi5oOgorICAgICAgICAoV2ViQ29yZTo6TmF2
aWdhdGlvbkFjdGlvbjo6c2V0U2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSk6IERlbGV0ZWQu
CisgICAgICAgIAorICAgICAgICAqIGxvYWRlci9OYXZpZ2F0aW9uU2NoZWR1bGVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNjaGVkdWxlZFVSTE5hdmlnYXRpb246OlNjaGVkdWxlZFVSTE5hdmln
YXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6U2NoZWR1bGVkUmVkaXJlY3Q6OlNjaGVkdWxlZFJl
ZGlyZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNjaGVkdWxlZExvY2F0aW9uQ2hhbmdlOjpTY2hl
ZHVsZWRMb2NhdGlvbkNoYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpTY2hlZHVsZWRSZWZyZXNo
OjpTY2hlZHVsZWRSZWZyZXNoKToKKyAgICAgICAgKFdlYkNvcmU6OlNjaGVkdWxlZEZvcm1TdWJt
aXNzaW9uOjpTY2hlZHVsZWRGb3JtU3VibWlzc2lvbik6CisgICAgICAgIChXZWJDb3JlOjpOYXZp
Z2F0aW9uU2NoZWR1bGVyOjpzY2hlZHVsZVJlZGlyZWN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok5h
dmlnYXRpb25TY2hlZHVsZXI6OnNjaGVkdWxlTG9jYXRpb25DaGFuZ2UpOgorICAgICAgICAoV2Vi
Q29yZTo6TmF2aWdhdGlvblNjaGVkdWxlcjo6c2NoZWR1bGVSZWZyZXNoKToKKyAgICAgICAgKiBs
b2FkZXIvTmF2aWdhdGlvblNjaGVkdWxlci5oOgorICAgICAgICAKKyAgICAgICAgKiBsb2FkZXIv
UG9saWN5Q2hlY2tlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQb2xpY3lDaGVja2VyOjpjaGVj
a05hdmlnYXRpb25Qb2xpY3kpOgorICAgICAgICAKKyAgICAgICAgKiBsb2FkZXIvU3ViZnJhbWVM
b2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3ViZnJhbWVMb2FkZXI6OmxvYWRPclJlZGly
ZWN0U3ViZnJhbWUpOgorICAgICAgICAKKyAgICAgICAgKiBsb2FkZXIvYXBwY2FjaGUvQXBwbGlj
YXRpb25DYWNoZUdyb3VwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFwcGxpY2F0aW9uQ2FjaGVH
cm91cDo6c2VsZWN0Q2FjaGUpOgorICAgICAgICAKKyAgICAgICAgKiBwYWdlL0NvbnRleHRNZW51
Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpvcGVuTmV3V2luZG93KToKKyAgICAg
ICAgKFdlYkNvcmU6OkNvbnRleHRNZW51Q29udHJvbGxlcjo6Y29udGV4dE1lbnVJdGVtU2VsZWN0
ZWQpOgorICAgICAgICAKKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpET01XaW5kb3c6OnNldExvY2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdp
bmRvdzo6Y3JlYXRlV2luZG93KToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6b3Blbik6
CisgICAgICAgIAorICAgICAgICAqIHBhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RHJhZ0NvbnRyb2xsZXI6OnBlcmZvcm1EcmFnT3BlcmF0aW9uKToKKyAgICAgICAg
CisgICAgICAgICogcGFnZS9Mb2NhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMb2NhdGlv
bjo6cmVsb2FkKToKKyAgICAgICAgCisgICAgICAgICogcmVwbGF5L1JlcGxheUlucHV0RGlzcGF0
Y2hNZXRob2RzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkluaXRpYWxOYXZpZ2F0aW9uOjpkaXNw
YXRjaCk6CisgICAgICAgIAorICAgICAgICAqIHN2Zy9TVkdBRWxlbWVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTVkdBRWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxlcik6CisKIDIwMTUtMDYt
MDEgIEJlbmphbWluIFBvdWxhaW4gIDxicG91bGFpbkBhcHBsZS5jb20+CiAKICAgICAgICAgW0NT
UyBKSVRdIEZhaWwgdG8gY29tcGlsZSB3aGVuIHdlIGFyZSBvdXQgb2YgZXhlY3V0YWJsZSBtZW1v
cnkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IDQ2YTEzZDUuLmZlZmE5YjYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0RvY3VtZW50LmNwcApAQCAtMzA0OSw3ICszMDQ5LDcgQEAgdm9pZCBEb2N1bWVudDo6cHJv
Y2Vzc0h0dHBFcXVpdihjb25zdCBTdHJpbmcmIGVxdWl2LCBjb25zdCBTdHJpbmcmIGNvbnRlbnQp
CiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgY29tcGxldGVkVVJMID0gY29tcGxl
dGVVUkwodXJsU3RyaW5nKTsKICAgICAgICAgICAgIGlmICghcHJvdG9jb2xJc0phdmFTY3JpcHQo
Y29tcGxldGVkVVJMKSkKLSAgICAgICAgICAgICAgICBmcmFtZS0+bmF2aWdhdGlvblNjaGVkdWxl
cigpLnNjaGVkdWxlUmVkaXJlY3QoZGVsYXksIGNvbXBsZXRlZFVSTCk7CisgICAgICAgICAgICAg
ICAgZnJhbWUtPm5hdmlnYXRpb25TY2hlZHVsZXIoKS5zY2hlZHVsZVJlZGlyZWN0KHRoaXMsIGRl
bGF5LCBjb21wbGV0ZWRVUkwpOwogICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAg
U3RyaW5nIG1lc3NhZ2UgPSAiUmVmdXNlZCB0byByZWZyZXNoICIgKyBtX3VybC5zdHJpbmdDZW50
ZXJFbGxpcHNpemVkVG9MZW5ndGgoKSArICIgdG8gYSBqYXZhc2NyaXB0OiBVUkwiOwogICAgICAg
ICAgICAgICAgIGFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OlNlY3VyaXR5LCBNZXNz
YWdlTGV2ZWw6OkVycm9yLCBtZXNzYWdlKTsKQEAgLTMwODcsNyArMzA4Nyw3IEBAIHZvaWQgRG9j
dW1lbnQ6OnByb2Nlc3NIdHRwRXF1aXYoY29uc3QgU3RyaW5nJiBlcXVpdiwgY29uc3QgU3RyaW5n
JiBjb250ZW50KQogICAgICAgICAgICAgICAgIC8vIFN0b3BwaW5nIHRoZSBsb2FkZXIgaXNuJ3Qg
ZW5vdWdoLCBhcyB3ZSdyZSBhbHJlYWR5IHBhcnNpbmcgdGhlIGRvY3VtZW50OyB0byBob25vciB0
aGUgaGVhZGVyJ3MKICAgICAgICAgICAgICAgICAvLyBpbnRlbnQsIHdlIG11c3QgbmF2aWdhdGUg
YXdheSBmcm9tIHRoZSBwb3NzaWJseSBwYXJ0aWFsbHktcmVuZGVyZWQgZG9jdW1lbnQgdG8gYSBs
b2NhdGlvbiB0aGF0CiAgICAgICAgICAgICAgICAgLy8gZG9lc24ndCBpbmhlcml0IHRoZSBwYXJl
bnQncyBTZWN1cml0eU9yaWdpbi4KLSAgICAgICAgICAgICAgICBmcmFtZS0+bmF2aWdhdGlvblNj
aGVkdWxlcigpLnNjaGVkdWxlTG9jYXRpb25DaGFuZ2Uoc2VjdXJpdHlPcmlnaW4oKSwgU2VjdXJp
dHlPcmlnaW46OnVybFdpdGhVbmlxdWVTZWN1cml0eU9yaWdpbigpLCBTdHJpbmcoKSk7CisgICAg
ICAgICAgICAgICAgZnJhbWUtPm5hdmlnYXRpb25TY2hlZHVsZXIoKS5zY2hlZHVsZUxvY2F0aW9u
Q2hhbmdlKHRoaXMsIHNlY3VyaXR5T3JpZ2luKCksIFNlY3VyaXR5T3JpZ2luOjp1cmxXaXRoVW5p
cXVlU2VjdXJpdHlPcmlnaW4oKSwgU3RyaW5nKCkpOwogICAgICAgICAgICAgICAgIGFkZENvbnNv
bGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OlNlY3VyaXR5LCBNZXNzYWdlTGV2ZWw6OkVycm9yLCBt
ZXNzYWdlLCByZXF1ZXN0SWRlbnRpZmllcik7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KQEAg
LTY2NDgsNCArNjY0OCwxMiBAQCB2b2lkIERvY3VtZW50OjpzZXRTaG91bGRQbGF5VG9QbGF5YmFj
a1RhcmdldCh1aW50NjRfdCBjbGllbnRJZCwgYm9vbCBzaG91bGRQbGF5KQogfQogI2VuZGlmIC8v
IEVOQUJMRShXSVJFTEVTU19QTEFZQkFDS19UQVJHRVQpCiAKK1Nob3VsZE9wZW5FeHRlcm5hbFVS
THNQb2xpY3kgRG9jdW1lbnQ6OnNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3lUb1Byb3BhZ2F0
ZSgpIGNvbnN0Cit7CisgICAgaWYgKERvY3VtZW50TG9hZGVyKiBkb2N1bWVudExvYWRlciA9IGxv
YWRlcigpKQorICAgICAgICByZXR1cm4gZG9jdW1lbnRMb2FkZXItPnNob3VsZE9wZW5FeHRlcm5h
bFVSTHNQb2xpY3lUb1Byb3BhZ2F0ZSgpOworCisgICAgcmV0dXJuIFNob3VsZE9wZW5FeHRlcm5h
bFVSTHNQb2xpY3k6OlNob3VsZE5vdEFsbG93OworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4IGFjMzk5OWEuLmJhYTJjNGYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5oCkBAIC0xNjUsNiArMTY1LDggQEAgY2xhc3MgWFBhdGhFeHByZXNzaW9uOwogY2xhc3Mg
WFBhdGhOU1Jlc29sdmVyOwogY2xhc3MgWFBhdGhSZXN1bHQ7CiAKK2VudW0gY2xhc3MgU2hvdWxk
T3BlbkV4dGVybmFsVVJMc1BvbGljeTsKKwogI2lmIEVOQUJMRShYU0xUKQogY2xhc3MgVHJhbnNm
b3JtU291cmNlOwogI2VuZGlmCkBAIC0xMjU0LDYgKzEyNTYsOCBAQCBwdWJsaWM6CiAgICAgdm9p
ZCBzZXRTaG91bGRQbGF5VG9QbGF5YmFja1RhcmdldCh1aW50NjRfdCwgYm9vbCk7CiAjZW5kaWYK
IAorICAgIFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kgc2hvdWxkT3BlbkV4dGVybmFsVVJM
c1BvbGljeVRvUHJvcGFnYXRlKCkgY29uc3Q7CisKIHByb3RlY3RlZDoKICAgICBlbnVtIENvbnN0
cnVjdGlvbkZsYWdzIHsgU3ludGhlc2l6ZWQgPSAxLCBOb25SZW5kZXJlZFBsYWNlaG9sZGVyID0g
MSA8PCAxIH07CiAgICAgRG9jdW1lbnQoRnJhbWUqLCBjb25zdCBVUkwmLCB1bnNpZ25lZCA9IERl
ZmF1bHREb2N1bWVudENsYXNzLCB1bnNpZ25lZCBjb25zdHJ1Y3Rpb25GbGFncyA9IDApOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmNwcAppbmRleCA1NDkwNDczLi41YmQ3
ZTU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmNwcApAQCAtNTU4
LDcgKzU1OCw4IEBAIHZvaWQgSFRNTEFuY2hvckVsZW1lbnQ6OmhhbmRsZUNsaWNrKEV2ZW50KiBl
dmVudCkKICAgICAgICAgZnJhbWUtPmxvYWRlcigpLmNsaWVudCgpLnN0YXJ0RG93bmxvYWQocmVx
dWVzdCwgZmFzdEdldEF0dHJpYnV0ZShkb3dubG9hZEF0dHIpKTsKICAgICB9IGVsc2UKICNlbmRp
ZgotICAgICAgICBmcmFtZS0+bG9hZGVyKCkudXJsU2VsZWN0ZWQoa3VybCwgdGFyZ2V0KCksIGV2
ZW50LCBMb2NrSGlzdG9yeTo6Tm8sIExvY2tCYWNrRm9yd2FyZExpc3Q6Ok5vLCBoYXNSZWwoUmVs
YXRpb25Ob1JlZmVycmVyKSA/IE5ldmVyU2VuZFJlZmVycmVyIDogTWF5YmVTZW5kUmVmZXJyZXIp
OworCisgICAgZnJhbWUtPmxvYWRlcigpLnVybFNlbGVjdGVkKGt1cmwsIHRhcmdldCgpLCBldmVu
dCwgTG9ja0hpc3Rvcnk6Ok5vLCBMb2NrQmFja0ZvcndhcmRMaXN0OjpObywgaGFzUmVsKFJlbGF0
aW9uTm9SZWZlcnJlcikgPyBOZXZlclNlbmRSZWZlcnJlciA6IE1heWJlU2VuZFJlZmVycmVyLCBk
b2N1bWVudCgpLnNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3lUb1Byb3BhZ2F0ZSgpKTsKIAog
ICAgIHNlbmRQaW5ncyhrdXJsKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTExpbmtFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVtZW50
LmNwcAppbmRleCAxZWRmZmQwLi5hNmY3OTViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxMaW5rRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGlu
a0VsZW1lbnQuY3BwCkBAIC00NDEsNyArNDQxLDcgQEAgdm9pZCBIVE1MTGlua0VsZW1lbnQ6Omhh
bmRsZUNsaWNrKEV2ZW50JiBldmVudCkKICAgICBGcmFtZSogZnJhbWUgPSBkb2N1bWVudCgpLmZy
YW1lKCk7CiAgICAgaWYgKCFmcmFtZSkKICAgICAgICAgcmV0dXJuOwotICAgIGZyYW1lLT5sb2Fk
ZXIoKS51cmxTZWxlY3RlZCh1cmwsIHRhcmdldCgpLCAmZXZlbnQsIExvY2tIaXN0b3J5OjpObywg
TG9ja0JhY2tGb3J3YXJkTGlzdDo6Tm8sIE1heWJlU2VuZFJlZmVycmVyKTsKKyAgICBmcmFtZS0+
bG9hZGVyKCkudXJsU2VsZWN0ZWQodXJsLCB0YXJnZXQoKSwgJmV2ZW50LCBMb2NrSGlzdG9yeTo6
Tm8sIExvY2tCYWNrRm9yd2FyZExpc3Q6Ok5vLCBNYXliZVNlbmRSZWZlcnJlciwgZG9jdW1lbnQo
KS5zaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5VG9Qcm9wYWdhdGUoKSk7CiB9CiAKIFVSTCBI
VE1MTGlua0VsZW1lbnQ6OmhyZWYoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9wYXJzZXIvWFNTQXVkaXRvckRlbGVnYXRlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
cGFyc2VyL1hTU0F1ZGl0b3JEZWxlZ2F0ZS5jcHAKaW5kZXggMDRkZDA0My4uZjU0ZDkyYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvWFNTQXVkaXRvckRlbGVnYXRlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9YU1NBdWRpdG9yRGVsZWdhdGUuY3Bw
CkBAIC0xMTIsNyArMTEyLDcgQEAgdm9pZCBYU1NBdWRpdG9yRGVsZWdhdGU6OmRpZEJsb2NrU2Ny
aXB0KGNvbnN0IFhTU0luZm8mIHhzc0luZm8pCiAgICAgfQogCiAgICAgaWYgKHhzc0luZm8ubV9k
aWRCbG9ja0VudGlyZVBhZ2UpCi0gICAgICAgIG1fZG9jdW1lbnQuZnJhbWUoKS0+bmF2aWdhdGlv
blNjaGVkdWxlcigpLnNjaGVkdWxlTG9jYXRpb25DaGFuZ2UobV9kb2N1bWVudC5zZWN1cml0eU9y
aWdpbigpLCBTZWN1cml0eU9yaWdpbjo6dXJsV2l0aFVuaXF1ZVNlY3VyaXR5T3JpZ2luKCksIFN0
cmluZygpKTsKKyAgICAgICAgbV9kb2N1bWVudC5mcmFtZSgpLT5uYXZpZ2F0aW9uU2NoZWR1bGVy
KCkuc2NoZWR1bGVMb2NhdGlvbkNoYW5nZSgmbV9kb2N1bWVudCwgbV9kb2N1bWVudC5zZWN1cml0
eU9yaWdpbigpLCBTZWN1cml0eU9yaWdpbjo6dXJsV2l0aFVuaXF1ZVNlY3VyaXR5T3JpZ2luKCks
IFN0cmluZygpKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWwuY3BwIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWwuY3Bw
CmluZGV4IDM3NGRjYzEuLmJjMzk0ZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbC5jcHAKQEAgLTIxMCw3ICsy
MTAsNyBAQCB2b2lkIEluc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWw6Om9wZW5Jbk5ld1RhYihj
b25zdCBTdHJpbmcmIHVybCkKIHsKICAgICBVc2VyR2VzdHVyZUluZGljYXRvciBpbmRpY2F0b3Io
RGVmaW5pdGVseVByb2Nlc3NpbmdVc2VyR2VzdHVyZSk7CiAgICAgRnJhbWUmIG1haW5GcmFtZSA9
IG1faW5zcGVjdG9yQ29udHJvbGxlci0+aW5zcGVjdGVkUGFnZSgpLm1haW5GcmFtZSgpOwotICAg
IEZyYW1lTG9hZFJlcXVlc3QgcmVxdWVzdChtYWluRnJhbWUuZG9jdW1lbnQoKS0+c2VjdXJpdHlP
cmlnaW4oKSwgUmVzb3VyY2VSZXF1ZXN0KCksICJfYmxhbmsiLCBMb2NrSGlzdG9yeTo6Tm8sIExv
Y2tCYWNrRm9yd2FyZExpc3Q6Ok5vLCBNYXliZVNlbmRSZWZlcnJlciwgQWxsb3dOYXZpZ2F0aW9u
VG9JbnZhbGlkVVJMOjpZZXMsIE5ld0ZyYW1lT3BlbmVyUG9saWN5OjpBbGxvdywgUmVwbGFjZURv
Y3VtZW50SWZKYXZhU2NyaXB0VVJMKTsKKyAgICBGcmFtZUxvYWRSZXF1ZXN0IHJlcXVlc3QobWFp
bkZyYW1lLmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCksIFJlc291cmNlUmVxdWVzdCgpLCAi
X2JsYW5rIiwgTG9ja0hpc3Rvcnk6Ok5vLCBMb2NrQmFja0ZvcndhcmRMaXN0OjpObywgTWF5YmVT
ZW5kUmVmZXJyZXIsIEFsbG93TmF2aWdhdGlvblRvSW52YWxpZFVSTDo6WWVzLCBOZXdGcmFtZU9w
ZW5lclBvbGljeTo6QWxsb3csIFJlcGxhY2VEb2N1bWVudElmSmF2YVNjcmlwdFVSTCwgU2hvdWxk
T3BlbkV4dGVybmFsVVJMc1BvbGljeTo6U2hvdWxkTm90QWxsb3cpOwogCiAgICAgYm9vbCBjcmVh
dGVkOwogICAgIFdpbmRvd0ZlYXR1cmVzIHdpbmRvd0ZlYXR1cmVzOwpAQCAtMjIzLDcgKzIyMyw3
IEBAIHZvaWQgSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbDo6b3BlbkluTmV3VGFiKGNvbnN0
IFN0cmluZyYgdXJsKQogCiAgICAgLy8gRklYTUU6IFdoeSBkb2VzIG9uZSB1c2UgbWFpbkZyYW1l
IGFuZCB0aGUgb3RoZXIgZnJhbWU/CiAgICAgUmVzb3VyY2VSZXF1ZXN0IHJlc291cmNlUmVxdWVz
dChmcmFtZS0+ZG9jdW1lbnQoKS0+Y29tcGxldGVVUkwodXJsKSk7Ci0gICAgRnJhbWVMb2FkUmVx
dWVzdCBmcmFtZVJlcXVlc3QobWFpbkZyYW1lLmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCks
IHJlc291cmNlUmVxdWVzdCwgZW1wdHlTdHJpbmcoKSwgTG9ja0hpc3Rvcnk6Ok5vLCBMb2NrQmFj
a0ZvcndhcmRMaXN0OjpObywgTWF5YmVTZW5kUmVmZXJyZXIsIEFsbG93TmF2aWdhdGlvblRvSW52
YWxpZFVSTDo6WWVzLCBOZXdGcmFtZU9wZW5lclBvbGljeTo6QWxsb3csIFJlcGxhY2VEb2N1bWVu
dElmSmF2YVNjcmlwdFVSTCk7CisgICAgRnJhbWVMb2FkUmVxdWVzdCBmcmFtZVJlcXVlc3QobWFp
bkZyYW1lLmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCksIHJlc291cmNlUmVxdWVzdCwgZW1w
dHlTdHJpbmcoKSwgTG9ja0hpc3Rvcnk6Ok5vLCBMb2NrQmFja0ZvcndhcmRMaXN0OjpObywgTWF5
YmVTZW5kUmVmZXJyZXIsIEFsbG93TmF2aWdhdGlvblRvSW52YWxpZFVSTDo6WWVzLCBOZXdGcmFt
ZU9wZW5lclBvbGljeTo6QWxsb3csIFJlcGxhY2VEb2N1bWVudElmSmF2YVNjcmlwdFVSTCwgU2hv
dWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeTo6U2hvdWxkTm90QWxsb3cpOwogICAgIGZyYW1lLT5s
b2FkZXIoKS5jaGFuZ2VMb2NhdGlvbihmcmFtZVJlcXVlc3QpOwogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuY3BwCmluZGV4IDcxNmY0MGYuLjE4
YzA0MzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdl
QWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdl
bnQuY3BwCkBAIC00MTksNyArNDE5LDcgQEAgdm9pZCBJbnNwZWN0b3JQYWdlQWdlbnQ6Om5hdmln
YXRlKEVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiB1cmwpCiAgICAgRnJhbWUmIGZyYW1lID0g
bV9wYWdlLT5tYWluRnJhbWUoKTsKIAogICAgIFJlc291cmNlUmVxdWVzdCByZXNvdXJjZVJlcXVl
c3QoZnJhbWUuZG9jdW1lbnQoKS0+Y29tcGxldGVVUkwodXJsKSk7Ci0gICAgRnJhbWVMb2FkUmVx
dWVzdCBmcmFtZVJlcXVlc3QoZnJhbWUuZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKSwgcmVz
b3VyY2VSZXF1ZXN0LCBlbXB0eVN0cmluZygpLCBMb2NrSGlzdG9yeTo6Tm8sIExvY2tCYWNrRm9y
d2FyZExpc3Q6Ok5vLCBNYXliZVNlbmRSZWZlcnJlciwgQWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlk
VVJMOjpObywgTmV3RnJhbWVPcGVuZXJQb2xpY3k6OkFsbG93LCBTaG91bGRSZXBsYWNlRG9jdW1l
bnRJZkphdmFTY3JpcHRVUkw6OlJlcGxhY2VEb2N1bWVudElmSmF2YVNjcmlwdFVSTCk7CisgICAg
RnJhbWVMb2FkUmVxdWVzdCBmcmFtZVJlcXVlc3QoZnJhbWUuZG9jdW1lbnQoKS0+c2VjdXJpdHlP
cmlnaW4oKSwgcmVzb3VyY2VSZXF1ZXN0LCBlbXB0eVN0cmluZygpLCBMb2NrSGlzdG9yeTo6Tm8s
IExvY2tCYWNrRm9yd2FyZExpc3Q6Ok5vLCBNYXliZVNlbmRSZWZlcnJlciwgQWxsb3dOYXZpZ2F0
aW9uVG9JbnZhbGlkVVJMOjpObywgTmV3RnJhbWVPcGVuZXJQb2xpY3k6OkFsbG93LCBTaG91bGRS
ZXBsYWNlRG9jdW1lbnRJZkphdmFTY3JpcHRVUkw6OlJlcGxhY2VEb2N1bWVudElmSmF2YVNjcmlw
dFVSTCwgU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeTo6U2hvdWxkTm90QWxsb3cpOwogICAg
IGZyYW1lLmxvYWRlcigpLmNoYW5nZUxvY2F0aW9uKGZyYW1lUmVxdWVzdCk7CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwCmluZGV4IGNiMTk4Y2IuLjUyZjYwZjUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcApAQCAtMTU0OSw5ICsx
NTQ5LDE1IEBAIHZvaWQgRG9jdW1lbnRMb2FkZXI6OmhhbmRsZWRPbmxvYWRFdmVudHMoKQogCiB2
b2lkIERvY3VtZW50TG9hZGVyOjpzZXRUcmlnZ2VyaW5nQWN0aW9uKGNvbnN0IE5hdmlnYXRpb25B
Y3Rpb24mIGFjdGlvbikKIHsKLSAgICBtX3RyaWdnZXJpbmdBY3Rpb24gPSBhY3Rpb247Ci0gICAg
aWYgKCFtX3RyaWdnZXJpbmdBY3Rpb24uaXNFbXB0eSgpKQotICAgICAgICBtX3RyaWdnZXJpbmdB
Y3Rpb24uc2V0U2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeShtX3Nob3VsZE9wZW5FeHRlcm5h
bFVSTHNQb2xpY3kpOworICAgIG1fdHJpZ2dlcmluZ0FjdGlvbiA9IGFjdGlvbi5jb3B5V2l0aFNo
b3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kobV9mcmFtZSA/IHNob3VsZE9wZW5FeHRlcm5hbFVS
THNQb2xpY3lUb1Byb3BhZ2F0ZSgpIDogbV9zaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5KTsK
K30KKworU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSBEb2N1bWVudExvYWRlcjo6c2hvdWxk
T3BlbkV4dGVybmFsVVJMc1BvbGljeVRvUHJvcGFnYXRlKCkgY29uc3QKK3sKKyAgICBpZiAoIW1f
ZnJhbWUgfHwgIW1fZnJhbWUtPmlzTWFpbkZyYW1lKCkpCisgICAgICAgIHJldHVybiBTaG91bGRP
cGVuRXh0ZXJuYWxVUkxzUG9saWN5OjpTaG91bGROb3RBbGxvdzsKKworICAgIHJldHVybiBtX3No
b3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3k7CiB9CiAKICNpZiBFTkFCTEUoQ09OVEVOVF9FWFRF
TlNJT05TKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVy
LmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuaAppbmRleCA2NGJmMzVh
Li45MzVlODgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2Fk
ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuaApAQCAtMjc2
LDcgKzI3Niw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICNlbmRpZgogCiAgICAgICAgIHZvaWQg
c2V0U2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeShTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9s
aWN5IHNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kpIHsgbV9zaG91bGRPcGVuRXh0ZXJuYWxV
UkxzUG9saWN5ID0gc2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeTsgfQotICAgICAgICBTaG91
bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5IHNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3koKSBj
b25zdCB7IHJldHVybiBtX3Nob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3k7IH0KKyAgICAgICAg
U2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSBzaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5
VG9Qcm9wYWdhdGUoKSBjb25zdDsKIAogICAgIHByb3RlY3RlZDoKICAgICAgICAgV0VCQ09SRV9F
WFBPUlQgRG9jdW1lbnRMb2FkZXIoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgU3Vic3Rp
dHV0ZURhdGEmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRS
ZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRSZXF1ZXN0LmNwcApp
bmRleCA3Yjk3NGIwLi41ZDk5MjZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
RnJhbWVMb2FkUmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9h
ZFJlcXVlc3QuY3BwCkBAIC0zNiw3ICszNiw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAot
RnJhbWVMb2FkUmVxdWVzdDo6RnJhbWVMb2FkUmVxdWVzdChGcmFtZSogZnJhbWUsIGNvbnN0IFJl
c291cmNlUmVxdWVzdCYgcmVzb3VyY2VSZXF1ZXN0LCBjb25zdCBTdWJzdGl0dXRlRGF0YSYgc3Vi
c3RpdHV0ZURhdGEpCitGcmFtZUxvYWRSZXF1ZXN0OjpGcmFtZUxvYWRSZXF1ZXN0KEZyYW1lKiBm
cmFtZSwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXNvdXJjZVJlcXVlc3QsIFNob3VsZE9wZW5F
eHRlcm5hbFVSTHNQb2xpY3kgc2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSwgY29uc3QgU3Vi
c3RpdHV0ZURhdGEmIHN1YnN0aXR1dGVEYXRhKQogICAgIDogbV9yZXF1ZXN0ZXIoZnJhbWUtPmRv
Y3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCkpCiAgICAgLCBtX3Jlc291cmNlUmVxdWVzdChyZXNv
dXJjZVJlcXVlc3QpCiAgICAgLCBtX3Nob3VsZENoZWNrTmV3V2luZG93UG9saWN5KGZhbHNlKQpA
QCAtNDcsNiArNDcsNyBAQCBGcmFtZUxvYWRSZXF1ZXN0OjpGcmFtZUxvYWRSZXF1ZXN0KEZyYW1l
KiBmcmFtZSwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXNvdXJjZQogICAgICwgbV9hbGxvd05h
dmlnYXRpb25Ub0ludmFsaWRVUkwoQWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJMOjpZZXMpCiAg
ICAgLCBtX25ld0ZyYW1lT3BlbmVyUG9saWN5KE5ld0ZyYW1lT3BlbmVyUG9saWN5OjpBbGxvdykK
ICAgICAsIG1fc2hvdWxkUmVwbGFjZURvY3VtZW50SWZKYXZhU2NyaXB0VVJMKFJlcGxhY2VEb2N1
bWVudElmSmF2YVNjcmlwdFVSTCkKKyAgICAsIG1fc2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGlj
eShzaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5KQogewogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkUmVxdWVzdC5oIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0ZyYW1lTG9hZFJlcXVlc3QuaAppbmRleCAyYzgxNTllLi45NTE4OWVjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkUmVxdWVzdC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRSZXF1ZXN0LmgKQEAgLTM2LDcgKzM2LDcgQEAgY2xhc3Mg
RnJhbWU7CiAKIHN0cnVjdCBGcmFtZUxvYWRSZXF1ZXN0IHsKIHB1YmxpYzoKLSAgICBGcmFtZUxv
YWRSZXF1ZXN0KFNlY3VyaXR5T3JpZ2luKiByZXF1ZXN0ZXIsIExvY2tIaXN0b3J5IGxvY2tIaXN0
b3J5LCBMb2NrQmFja0ZvcndhcmRMaXN0IGxvY2tCYWNrRm9yd2FyZExpc3QsIFNob3VsZFNlbmRS
ZWZlcnJlciBzaG91bGRTZW5kUmVmZXJyZXIsIEFsbG93TmF2aWdhdGlvblRvSW52YWxpZFVSTCBh
bGxvd05hdmlnYXRpb25Ub0ludmFsaWRVUkwsIE5ld0ZyYW1lT3BlbmVyUG9saWN5IG5ld0ZyYW1l
T3BlbmVyUG9saWN5KQorICAgIEZyYW1lTG9hZFJlcXVlc3QoU2VjdXJpdHlPcmlnaW4qIHJlcXVl
c3RlciwgTG9ja0hpc3RvcnkgbG9ja0hpc3RvcnksIExvY2tCYWNrRm9yd2FyZExpc3QgbG9ja0Jh
Y2tGb3J3YXJkTGlzdCwgU2hvdWxkU2VuZFJlZmVycmVyIHNob3VsZFNlbmRSZWZlcnJlciwgQWxs
b3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJMIGFsbG93TmF2aWdhdGlvblRvSW52YWxpZFVSTCwgTmV3
RnJhbWVPcGVuZXJQb2xpY3kgbmV3RnJhbWVPcGVuZXJQb2xpY3ksIFNob3VsZE9wZW5FeHRlcm5h
bFVSTHNQb2xpY3kgc2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSkKICAgICAgICAgOiBtX3Jl
cXVlc3RlcihyZXF1ZXN0ZXIpCiAgICAgICAgICwgbV9zaG91bGRDaGVja05ld1dpbmRvd1BvbGlj
eShmYWxzZSkKICAgICAgICAgLCBtX2xvY2tIaXN0b3J5KGxvY2tIaXN0b3J5KQpAQCAtNDUsMTAg
KzQ1LDExIEBAIHB1YmxpYzoKICAgICAgICAgLCBtX2FsbG93TmF2aWdhdGlvblRvSW52YWxpZFVS
TChhbGxvd05hdmlnYXRpb25Ub0ludmFsaWRVUkwpCiAgICAgICAgICwgbV9uZXdGcmFtZU9wZW5l
clBvbGljeShuZXdGcmFtZU9wZW5lclBvbGljeSkKICAgICAgICAgLCBtX3Nob3VsZFJlcGxhY2VE
b2N1bWVudElmSmF2YVNjcmlwdFVSTChSZXBsYWNlRG9jdW1lbnRJZkphdmFTY3JpcHRVUkwpCisg
ICAgICAgICwgbV9zaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5KHNob3VsZE9wZW5FeHRlcm5h
bFVSTHNQb2xpY3kpCiAgICAgewogICAgIH0KIAotICAgIEZyYW1lTG9hZFJlcXVlc3QoU2VjdXJp
dHlPcmlnaW4qIHJlcXVlc3RlciwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXNvdXJjZVJlcXVl
c3QsIExvY2tIaXN0b3J5IGxvY2tIaXN0b3J5LCBMb2NrQmFja0ZvcndhcmRMaXN0IGxvY2tCYWNr
Rm9yd2FyZExpc3QsIFNob3VsZFNlbmRSZWZlcnJlciBzaG91bGRTZW5kUmVmZXJyZXIsIEFsbG93
TmF2aWdhdGlvblRvSW52YWxpZFVSTCBhbGxvd05hdmlnYXRpb25Ub0ludmFsaWRVUkwsIE5ld0Zy
YW1lT3BlbmVyUG9saWN5IG5ld0ZyYW1lT3BlbmVyUG9saWN5KQorICAgIEZyYW1lTG9hZFJlcXVl
c3QoU2VjdXJpdHlPcmlnaW4qIHJlcXVlc3RlciwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXNv
dXJjZVJlcXVlc3QsIExvY2tIaXN0b3J5IGxvY2tIaXN0b3J5LCBMb2NrQmFja0ZvcndhcmRMaXN0
IGxvY2tCYWNrRm9yd2FyZExpc3QsIFNob3VsZFNlbmRSZWZlcnJlciBzaG91bGRTZW5kUmVmZXJy
ZXIsIEFsbG93TmF2aWdhdGlvblRvSW52YWxpZFVSTCBhbGxvd05hdmlnYXRpb25Ub0ludmFsaWRV
UkwsIE5ld0ZyYW1lT3BlbmVyUG9saWN5IG5ld0ZyYW1lT3BlbmVyUG9saWN5LCBTaG91bGRPcGVu
RXh0ZXJuYWxVUkxzUG9saWN5IHNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kpCiAgICAgICAg
IDogbV9yZXF1ZXN0ZXIocmVxdWVzdGVyKQogICAgICAgICAsIG1fcmVzb3VyY2VSZXF1ZXN0KHJl
c291cmNlUmVxdWVzdCkKICAgICAgICAgLCBtX3Nob3VsZENoZWNrTmV3V2luZG93UG9saWN5KGZh
bHNlKQpAQCAtNTgsMTAgKzU5LDExIEBAIHB1YmxpYzoKICAgICAgICAgLCBtX2FsbG93TmF2aWdh
dGlvblRvSW52YWxpZFVSTChhbGxvd05hdmlnYXRpb25Ub0ludmFsaWRVUkwpCiAgICAgICAgICwg
bV9uZXdGcmFtZU9wZW5lclBvbGljeShuZXdGcmFtZU9wZW5lclBvbGljeSkKICAgICAgICAgLCBt
X3Nob3VsZFJlcGxhY2VEb2N1bWVudElmSmF2YVNjcmlwdFVSTChSZXBsYWNlRG9jdW1lbnRJZkph
dmFTY3JpcHRVUkwpCisgICAgICAgICwgbV9zaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5KHNo
b3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kpCiAgICAgewogICAgIH0KIAotICAgIEZyYW1lTG9h
ZFJlcXVlc3QoU2VjdXJpdHlPcmlnaW4qIHJlcXVlc3RlciwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0
JiByZXNvdXJjZVJlcXVlc3QsIGNvbnN0IFN0cmluZyYgZnJhbWVOYW1lLCBMb2NrSGlzdG9yeSBs
b2NrSGlzdG9yeSwgTG9ja0JhY2tGb3J3YXJkTGlzdCBsb2NrQmFja0ZvcndhcmRMaXN0LCBTaG91
bGRTZW5kUmVmZXJyZXIgc2hvdWxkU2VuZFJlZmVycmVyLCBBbGxvd05hdmlnYXRpb25Ub0ludmFs
aWRVUkwgYWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJMLCBOZXdGcmFtZU9wZW5lclBvbGljeSBu
ZXdGcmFtZU9wZW5lclBvbGljeSwgU2hvdWxkUmVwbGFjZURvY3VtZW50SWZKYXZhU2NyaXB0VVJM
IHNob3VsZFJlcGxhY2VEb2N1bWVudElmSmF2YVNjcmlwdFVSTCkKKyAgICBGcmFtZUxvYWRSZXF1
ZXN0KFNlY3VyaXR5T3JpZ2luKiByZXF1ZXN0ZXIsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVz
b3VyY2VSZXF1ZXN0LCBjb25zdCBTdHJpbmcmIGZyYW1lTmFtZSwgTG9ja0hpc3RvcnkgbG9ja0hp
c3RvcnksIExvY2tCYWNrRm9yd2FyZExpc3QgbG9ja0JhY2tGb3J3YXJkTGlzdCwgU2hvdWxkU2Vu
ZFJlZmVycmVyIHNob3VsZFNlbmRSZWZlcnJlciwgQWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJM
IGFsbG93TmF2aWdhdGlvblRvSW52YWxpZFVSTCwgTmV3RnJhbWVPcGVuZXJQb2xpY3kgbmV3RnJh
bWVPcGVuZXJQb2xpY3ksIFNob3VsZFJlcGxhY2VEb2N1bWVudElmSmF2YVNjcmlwdFVSTCBzaG91
bGRSZXBsYWNlRG9jdW1lbnRJZkphdmFTY3JpcHRVUkwsIFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQ
b2xpY3kgc2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSkKICAgICAgICAgOiBtX3JlcXVlc3Rl
cihyZXF1ZXN0ZXIpCiAgICAgICAgICwgbV9yZXNvdXJjZVJlcXVlc3QocmVzb3VyY2VSZXF1ZXN0
KQogICAgICAgICAsIG1fZnJhbWVOYW1lKGZyYW1lTmFtZSkKQEAgLTcyLDEwICs3NCwxMSBAQCBw
dWJsaWM6CiAgICAgICAgICwgbV9hbGxvd05hdmlnYXRpb25Ub0ludmFsaWRVUkwoYWxsb3dOYXZp
Z2F0aW9uVG9JbnZhbGlkVVJMKQogICAgICAgICAsIG1fbmV3RnJhbWVPcGVuZXJQb2xpY3kobmV3
RnJhbWVPcGVuZXJQb2xpY3kpCiAgICAgICAgICwgbV9zaG91bGRSZXBsYWNlRG9jdW1lbnRJZkph
dmFTY3JpcHRVUkwoc2hvdWxkUmVwbGFjZURvY3VtZW50SWZKYXZhU2NyaXB0VVJMKQorICAgICAg
ICAsIG1fc2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeShzaG91bGRPcGVuRXh0ZXJuYWxVUkxz
UG9saWN5KQogICAgIHsKICAgICB9CiAKLSAgICBXRUJDT1JFX0VYUE9SVCBGcmFtZUxvYWRSZXF1
ZXN0KEZyYW1lKiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgU3Vic3RpdHV0ZURhdGEm
ID0gU3Vic3RpdHV0ZURhdGEoKSk7CisgICAgV0VCQ09SRV9FWFBPUlQgRnJhbWVMb2FkUmVxdWVz
dChGcmFtZSosIGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQ
b2xpY3ksIGNvbnN0IFN1YnN0aXR1dGVEYXRhJiA9IFN1YnN0aXR1dGVEYXRhKCkpOwogCiAgICAg
Ym9vbCBpc0VtcHR5KCkgY29uc3QgeyByZXR1cm4gbV9yZXNvdXJjZVJlcXVlc3QuaXNFbXB0eSgp
OyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCmluZGV4IDY1MjFhM2MuLmM5
YzU5MTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcApAQCAtMzE3LDExICsz
MTcsMTEgQEAgdm9pZCBGcmFtZUxvYWRlcjo6Y2hhbmdlTG9jYXRpb24oY29uc3QgRnJhbWVMb2Fk
UmVxdWVzdCYgcmVxdWVzdCkKICAgICB1cmxTZWxlY3RlZChyZXF1ZXN0LCBudWxscHRyKTsKIH0K
IAotdm9pZCBGcmFtZUxvYWRlcjo6dXJsU2VsZWN0ZWQoY29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0
cmluZyYgcGFzc2VkVGFyZ2V0LCBFdmVudCogdHJpZ2dlcmluZ0V2ZW50LCBMb2NrSGlzdG9yeSBs
b2NrSGlzdG9yeSwgTG9ja0JhY2tGb3J3YXJkTGlzdCBsb2NrQmFja0ZvcndhcmRMaXN0LCBTaG91
bGRTZW5kUmVmZXJyZXIgc2hvdWxkU2VuZFJlZmVycmVyKQordm9pZCBGcmFtZUxvYWRlcjo6dXJs
U2VsZWN0ZWQoY29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgcGFzc2VkVGFyZ2V0LCBFdmVu
dCogdHJpZ2dlcmluZ0V2ZW50LCBMb2NrSGlzdG9yeSBsb2NrSGlzdG9yeSwgTG9ja0JhY2tGb3J3
YXJkTGlzdCBsb2NrQmFja0ZvcndhcmRMaXN0LCBTaG91bGRTZW5kUmVmZXJyZXIgc2hvdWxkU2Vu
ZFJlZmVycmVyLCBTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5IHNob3VsZE9wZW5FeHRlcm5h
bFVSTHNQb2xpY3kpCiB7CiAgICAgTmV3RnJhbWVPcGVuZXJQb2xpY3kgbmV3RnJhbWVPcGVuZXJQ
b2xpY3kgPSBzaG91bGRTZW5kUmVmZXJyZXIgPT0gTmV2ZXJTZW5kUmVmZXJyZXIgPyBOZXdGcmFt
ZU9wZW5lclBvbGljeTo6U3VwcHJlc3MgOiBOZXdGcmFtZU9wZW5lclBvbGljeTo6QWxsb3c7CiAK
LSAgICB1cmxTZWxlY3RlZChGcmFtZUxvYWRSZXF1ZXN0KG1fZnJhbWUuZG9jdW1lbnQoKS0+c2Vj
dXJpdHlPcmlnaW4oKSwgUmVzb3VyY2VSZXF1ZXN0KHVybCksIHBhc3NlZFRhcmdldCwgbG9ja0hp
c3RvcnksIGxvY2tCYWNrRm9yd2FyZExpc3QsIHNob3VsZFNlbmRSZWZlcnJlciwgQWxsb3dOYXZp
Z2F0aW9uVG9JbnZhbGlkVVJMOjpZZXMsIG5ld0ZyYW1lT3BlbmVyUG9saWN5LCBEb05vdFJlcGxh
Y2VEb2N1bWVudElmSmF2YVNjcmlwdFVSTCksIHRyaWdnZXJpbmdFdmVudCk7CisgICAgdXJsU2Vs
ZWN0ZWQoRnJhbWVMb2FkUmVxdWVzdChtX2ZyYW1lLmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2lu
KCksIFJlc291cmNlUmVxdWVzdCh1cmwpLCBwYXNzZWRUYXJnZXQsIGxvY2tIaXN0b3J5LCBsb2Nr
QmFja0ZvcndhcmRMaXN0LCBzaG91bGRTZW5kUmVmZXJyZXIsIEFsbG93TmF2aWdhdGlvblRvSW52
YWxpZFVSTDo6WWVzLCBuZXdGcmFtZU9wZW5lclBvbGljeSwgRG9Ob3RSZXBsYWNlRG9jdW1lbnRJ
ZkphdmFTY3JpcHRVUkwsIHNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kpLCB0cmlnZ2VyaW5n
RXZlbnQpOwogfQogCiB2b2lkIEZyYW1lTG9hZGVyOjp1cmxTZWxlY3RlZChjb25zdCBGcmFtZUxv
YWRSZXF1ZXN0JiBwYXNzZWRSZXF1ZXN0LCBFdmVudCogdHJpZ2dlcmluZ0V2ZW50KQpAQCAtNjcx
LDcgKzY3MSw3IEBAIHZvaWQgRnJhbWVMb2FkZXI6OnJlY2VpdmVkRmlyc3REYXRhKCkKICAgICAg
ICAgY29tcGxldGVkVVJMID0gbV9mcmFtZS5kb2N1bWVudCgpLT5jb21wbGV0ZVVSTCh1cmxTdHJp
bmcpOwogCiAgICAgaWYgKCFwcm90b2NvbElzSmF2YVNjcmlwdChjb21wbGV0ZWRVUkwpKQotICAg
ICAgICBtX2ZyYW1lLm5hdmlnYXRpb25TY2hlZHVsZXIoKS5zY2hlZHVsZVJlZGlyZWN0KGRlbGF5
LCBjb21wbGV0ZWRVUkwpOworICAgICAgICBtX2ZyYW1lLm5hdmlnYXRpb25TY2hlZHVsZXIoKS5z
Y2hlZHVsZVJlZGlyZWN0KG1fZnJhbWUuZG9jdW1lbnQoKSwgZGVsYXksIGNvbXBsZXRlZFVSTCk7
CiAgICAgZWxzZSB7CiAgICAgICAgIFN0cmluZyBtZXNzYWdlID0gIlJlZnVzZWQgdG8gcmVmcmVz
aCAiICsgbV9mcmFtZS5kb2N1bWVudCgpLT51cmwoKS5zdHJpbmdDZW50ZXJFbGxpcHNpemVkVG9M
ZW5ndGgoKSArICIgdG8gYSBqYXZhc2NyaXB0OiBVUkwiOwogICAgICAgICBtX2ZyYW1lLmRvY3Vt
ZW50KCktPmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OlNlY3VyaXR5LCBNZXNzYWdl
TGV2ZWw6OkVycm9yLCBtZXNzYWdlKTsKQEAgLTkxNSw3ICs5MTUsNyBAQCB2b2lkIEZyYW1lTG9h
ZGVyOjpsb2FkVVJMSW50b0NoaWxkRnJhbWUoY29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYg
cmVmZXJlciwgRgogICAgICAgICB9CiAgICAgfQogCi0gICAgRnJhbWVMb2FkUmVxdWVzdCBmcmFt
ZUxvYWRSZXF1ZXN0KG1fZnJhbWUuZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKSwgUmVzb3Vy
Y2VSZXF1ZXN0KHVybCksICJfc2VsZiIsIExvY2tIaXN0b3J5OjpObywgTG9ja0JhY2tGb3J3YXJk
TGlzdDo6WWVzLCBTaG91bGRTZW5kUmVmZXJyZXI6Ok1heWJlU2VuZFJlZmVycmVyLCBBbGxvd05h
dmlnYXRpb25Ub0ludmFsaWRVUkw6OlllcywgTmV3RnJhbWVPcGVuZXJQb2xpY3k6OlN1cHByZXNz
LCBSZXBsYWNlRG9jdW1lbnRJZkphdmFTY3JpcHRVUkwpOworICAgIEZyYW1lTG9hZFJlcXVlc3Qg
ZnJhbWVMb2FkUmVxdWVzdChtX2ZyYW1lLmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCksIFJl
c291cmNlUmVxdWVzdCh1cmwpLCAiX3NlbGYiLCBMb2NrSGlzdG9yeTo6Tm8sIExvY2tCYWNrRm9y
d2FyZExpc3Q6OlllcywgU2hvdWxkU2VuZFJlZmVycmVyOjpNYXliZVNlbmRSZWZlcnJlciwgQWxs
b3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJMOjpZZXMsIE5ld0ZyYW1lT3BlbmVyUG9saWN5OjpTdXBw
cmVzcywgUmVwbGFjZURvY3VtZW50SWZKYXZhU2NyaXB0VVJMLCBTaG91bGRPcGVuRXh0ZXJuYWxV
UkxzUG9saWN5OjpTaG91bGROb3RBbGxvdyk7CiAgICAgY2hpbGRGcmFtZS0+bG9hZGVyKCkubG9h
ZFVSTChmcmFtZUxvYWRSZXF1ZXN0LCByZWZlcmVyLCBGcmFtZUxvYWRUeXBlOjpSZWRpcmVjdFdp
dGhMb2NrZWRCYWNrRm9yd2FyZExpc3QsIDAsIDApOwogfQogCkBAIC0xMjMwLDcgKzEyMzAsNyBA
QCB2b2lkIEZyYW1lTG9hZGVyOjpsb2FkVVJMKGNvbnN0IEZyYW1lTG9hZFJlcXVlc3QmIGZyYW1l
TG9hZFJlcXVlc3QsIGNvbnN0IFN0cmluZwogICAgIGlmIChtX3BhZ2VEaXNtaXNzYWxFdmVudEJl
aW5nRGlzcGF0Y2hlZCAhPSBOb0Rpc21pc3NhbCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgTmF2
aWdhdGlvbkFjdGlvbiBhY3Rpb24ocmVxdWVzdCwgbmV3TG9hZFR5cGUsIGlzRm9ybVN1Ym1pc3Np
b24sIGV2ZW50KTsKKyAgICBOYXZpZ2F0aW9uQWN0aW9uIGFjdGlvbihyZXF1ZXN0LCBuZXdMb2Fk
VHlwZSwgaXNGb3JtU3VibWlzc2lvbiwgZXZlbnQsIGZyYW1lTG9hZFJlcXVlc3Quc2hvdWxkT3Bl
bkV4dGVybmFsVVJMc1BvbGljeSgpKTsKIAogICAgIGlmICghdGFyZ2V0RnJhbWUgJiYgIWZyYW1l
TmFtZS5pc0VtcHR5KCkpIHsKICAgICAgICAgcG9saWN5Q2hlY2tlcigpLmNoZWNrTmV3V2luZG93
UG9saWN5KGFjdGlvbiwgcmVxdWVzdCwgZm9ybVN0YXRlLnJlbGVhc2UoKSwgZnJhbWVOYW1lLCBb
dGhpcywgYWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJMLCBvcGVuZXJQb2xpY3ldKGNvbnN0IFJl
c291cmNlUmVxdWVzdCYgcmVxdWVzdCwgUGFzc1JlZlB0cjxGb3JtU3RhdGU+IGZvcm1TdGF0ZSwg
Y29uc3QgU3RyaW5nJiBmcmFtZU5hbWUsIGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mIGFjdGlvbiwg
Ym9vbCBzaG91bGRDb250aW51ZSkgewpAQCAtMTMwNCw3ICsxMzA0LDggQEAgdm9pZCBGcmFtZUxv
YWRlcjo6bG9hZChjb25zdCBGcmFtZUxvYWRSZXF1ZXN0JiBwYXNzZWRSZXF1ZXN0KQogICAgIH0K
IAogICAgIGlmIChyZXF1ZXN0LnNob3VsZENoZWNrTmV3V2luZG93UG9saWN5KCkpIHsKLSAgICAg
ICAgcG9saWN5Q2hlY2tlcigpLmNoZWNrTmV3V2luZG93UG9saWN5KE5hdmlnYXRpb25BY3Rpb24o
cmVxdWVzdC5yZXNvdXJjZVJlcXVlc3QoKSwgTmF2aWdhdGlvblR5cGU6Ok90aGVyKSwgcmVxdWVz
dC5yZXNvdXJjZVJlcXVlc3QoKSwgbnVsbHB0ciwgcmVxdWVzdC5mcmFtZU5hbWUoKSwgW3RoaXNd
KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgUGFzc1JlZlB0cjxGb3JtU3RhdGU+IGZv
cm1TdGF0ZSwgY29uc3QgU3RyaW5nJiBmcmFtZU5hbWUsIGNvbnN0IE5hdmlnYXRpb25BY3Rpb24m
IGFjdGlvbiwgYm9vbCBzaG91bGRDb250aW51ZSkgeworICAgICAgICBOYXZpZ2F0aW9uQWN0aW9u
IGFjdGlvbihyZXF1ZXN0LnJlc291cmNlUmVxdWVzdCgpLCBOYXZpZ2F0aW9uVHlwZTo6T3RoZXIs
IHBhc3NlZFJlcXVlc3Quc2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSgpKTsKKyAgICAgICAg
cG9saWN5Q2hlY2tlcigpLmNoZWNrTmV3V2luZG93UG9saWN5KGFjdGlvbiwgcmVxdWVzdC5yZXNv
dXJjZVJlcXVlc3QoKSwgbnVsbHB0ciwgcmVxdWVzdC5mcmFtZU5hbWUoKSwgW3RoaXNdKGNvbnN0
IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgUGFzc1JlZlB0cjxGb3JtU3RhdGU+IGZvcm1TdGF0
ZSwgY29uc3QgU3RyaW5nJiBmcmFtZU5hbWUsIGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mIGFjdGlv
biwgYm9vbCBzaG91bGRDb250aW51ZSkgewogICAgICAgICAgICAgY29udGludWVMb2FkQWZ0ZXJO
ZXdXaW5kb3dQb2xpY3kocmVxdWVzdCwgZm9ybVN0YXRlLCBmcmFtZU5hbWUsIGFjdGlvbiwgc2hv
dWxkQ29udGludWUsIEFsbG93TmF2aWdhdGlvblRvSW52YWxpZFVSTDo6WWVzLCBOZXdGcmFtZU9w
ZW5lclBvbGljeTo6U3VwcHJlc3MpOwogICAgICAgICB9KTsKIApAQCAtMTMxNSw4ICsxMzE2LDcg
QEAgdm9pZCBGcmFtZUxvYWRlcjo6bG9hZChjb25zdCBGcmFtZUxvYWRSZXF1ZXN0JiBwYXNzZWRS
ZXF1ZXN0KQogICAgICAgICByZXF1ZXN0LnNldFN1YnN0aXR1dGVEYXRhKGRlZmF1bHRTdWJzdGl0
dXRlRGF0YUZvclVSTChyZXF1ZXN0LnJlc291cmNlUmVxdWVzdCgpLnVybCgpKSk7CiAKICAgICBS
ZWZQdHI8RG9jdW1lbnRMb2FkZXI+IGxvYWRlciA9IG1fY2xpZW50LmNyZWF0ZURvY3VtZW50TG9h
ZGVyKHJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCksIHJlcXVlc3Quc3Vic3RpdHV0ZURhdGEoKSk7
Ci0gICAgaWYgKG1fZnJhbWUuaXNNYWluRnJhbWUoKSkKLSAgICAgICAgbG9hZGVyLT5zZXRTaG91
bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5KHJlcXVlc3Quc2hvdWxkT3BlbkV4dGVybmFsVVJMc1Bv
bGljeSgpKTsKKyAgICBhcHBseVNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3lUb05ld0RvY3Vt
ZW50TG9hZGVyKCpsb2FkZXIsIHJlcXVlc3Quc2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSgp
KTsKIAogICAgIGxvYWQobG9hZGVyLmdldCgpKTsKIH0KQEAgLTEzMjQsNiArMTMyNCw4IEBAIHZv
aWQgRnJhbWVMb2FkZXI6OmxvYWQoY29uc3QgRnJhbWVMb2FkUmVxdWVzdCYgcGFzc2VkUmVxdWVz
dCkKIHZvaWQgRnJhbWVMb2FkZXI6OmxvYWRXaXRoTmF2aWdhdGlvbkFjdGlvbihjb25zdCBSZXNv
dXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mIGFjdGlvbiwgTG9j
a0hpc3RvcnkgbG9ja0hpc3RvcnksIEZyYW1lTG9hZFR5cGUgdHlwZSwgUGFzc1JlZlB0cjxGb3Jt
U3RhdGU+IGZvcm1TdGF0ZSwgQWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJMIGFsbG93TmF2aWdh
dGlvblRvSW52YWxpZFVSTCkKIHsKICAgICBSZWZQdHI8RG9jdW1lbnRMb2FkZXI+IGxvYWRlciA9
IG1fY2xpZW50LmNyZWF0ZURvY3VtZW50TG9hZGVyKHJlcXVlc3QsIGRlZmF1bHRTdWJzdGl0dXRl
RGF0YUZvclVSTChyZXF1ZXN0LnVybCgpKSk7CisgICAgYXBwbHlTaG91bGRPcGVuRXh0ZXJuYWxV
UkxzUG9saWN5VG9OZXdEb2N1bWVudExvYWRlcigqbG9hZGVyLCBhY3Rpb24uc2hvdWxkT3BlbkV4
dGVybmFsVVJMc1BvbGljeSgpKTsKKwogICAgIGlmIChsb2NrSGlzdG9yeSA9PSBMb2NrSGlzdG9y
eTo6WWVzICYmIG1fZG9jdW1lbnRMb2FkZXIpCiAgICAgICAgIGxvYWRlci0+c2V0Q2xpZW50UmVk
aXJlY3RTb3VyY2VGb3JIaXN0b3J5KG1fZG9jdW1lbnRMb2FkZXItPmRpZENyZWF0ZUdsb2JhbEhp
c3RvcnlFbnRyeSgpID8gbV9kb2N1bWVudExvYWRlci0+dXJsRm9ySGlzdG9yeSgpLnN0cmluZygp
IDogbV9kb2N1bWVudExvYWRlci0+Y2xpZW50UmVkaXJlY3RTb3VyY2VGb3JIaXN0b3J5KCkpOwog
CkBAIC0xNTQzLDYgKzE1NDUsOCBAQCB2b2lkIEZyYW1lTG9hZGVyOjpyZWxvYWRXaXRoT3ZlcnJp
ZGVFbmNvZGluZyhjb25zdCBTdHJpbmcmIGVuY29kaW5nKQogICAgIHJlcXVlc3Quc2V0Q2FjaGVQ
b2xpY3koUmV0dXJuQ2FjaGVEYXRhRWxzZUxvYWQpOwogCiAgICAgUmVmUHRyPERvY3VtZW50TG9h
ZGVyPiBsb2FkZXIgPSBtX2NsaWVudC5jcmVhdGVEb2N1bWVudExvYWRlcihyZXF1ZXN0LCBkZWZh
dWx0U3Vic3RpdHV0ZURhdGFGb3JVUkwocmVxdWVzdC51cmwoKSkpOworICAgIGFwcGx5U2hvdWxk
T3BlbkV4dGVybmFsVVJMc1BvbGljeVRvTmV3RG9jdW1lbnRMb2FkZXIoKmxvYWRlciwgbV9kb2N1
bWVudExvYWRlci0+c2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeVRvUHJvcGFnYXRlKCkpOwor
CiAgICAgc2V0UG9saWN5RG9jdW1lbnRMb2FkZXIobG9hZGVyLmdldCgpKTsKIAogICAgIGxvYWRl
ci0+c2V0T3ZlcnJpZGVFbmNvZGluZyhlbmNvZGluZyk7CkBAIC0xNTY5LDYgKzE1NzMsNyBAQCB2
b2lkIEZyYW1lTG9hZGVyOjpyZWxvYWQoYm9vbCBlbmRUb0VuZFJlbG9hZCkKICAgICAvLyBDcmVh
dGUgYSBuZXcgZG9jdW1lbnQgbG9hZGVyIGZvciB0aGUgcmVsb2FkLCB0aGlzIHdpbGwgYmVjb21l
IG1fZG9jdW1lbnRMb2FkZXIgZXZlbnR1YWxseSwKICAgICAvLyBidXQgZmlyc3QgaXQgaGFzIHRv
IGJlIHRoZSAicG9saWN5IiBkb2N1bWVudCBsb2FkZXIsIGFuZCB0aGVuIHRoZSAicHJvdmlzaW9u
YWwiIGRvY3VtZW50IGxvYWRlci4KICAgICBSZWZQdHI8RG9jdW1lbnRMb2FkZXI+IGxvYWRlciA9
IG1fY2xpZW50LmNyZWF0ZURvY3VtZW50TG9hZGVyKGluaXRpYWxSZXF1ZXN0LCBkZWZhdWx0U3Vi
c3RpdHV0ZURhdGFGb3JVUkwoaW5pdGlhbFJlcXVlc3QudXJsKCkpKTsKKyAgICBhcHBseVNob3Vs
ZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3lUb05ld0RvY3VtZW50TG9hZGVyKCpsb2FkZXIsIG1fZG9j
dW1lbnRMb2FkZXItPnNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3lUb1Byb3BhZ2F0ZSgpKTsK
IAogICAgIFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCA9IGxvYWRlci0+cmVxdWVzdCgpOwogCkBA
IC0yNjQzLDcgKzI2NDgsNyBAQCB2b2lkIEZyYW1lTG9hZGVyOjpsb2FkUG9zdFJlcXVlc3QoY29u
c3QgRnJhbWVMb2FkUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgU3RyaW5nJgogICAgIHdvcmtpbmdS
ZXNvdXJjZVJlcXVlc3Quc2V0SFRUUENvbnRlbnRUeXBlKGNvbnRlbnRUeXBlKTsKICAgICBhZGRF
eHRyYUZpZWxkc1RvUmVxdWVzdCh3b3JraW5nUmVzb3VyY2VSZXF1ZXN0LCBsb2FkVHlwZSwgdHJ1
ZSk7CiAKLSAgICBOYXZpZ2F0aW9uQWN0aW9uIGFjdGlvbih3b3JraW5nUmVzb3VyY2VSZXF1ZXN0
LCBsb2FkVHlwZSwgdHJ1ZSwgZXZlbnQpOworICAgIE5hdmlnYXRpb25BY3Rpb24gYWN0aW9uKHdv
cmtpbmdSZXNvdXJjZVJlcXVlc3QsIGxvYWRUeXBlLCB0cnVlLCBldmVudCwgcmVxdWVzdC5zaG91
bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5KCkpOwogCiAgICAgaWYgKCFmcmFtZU5hbWUuaXNFbXB0
eSgpKSB7CiAgICAgICAgIC8vIFRoZSBzZWFyY2ggZm9yIGEgdGFyZ2V0IGZyYW1lIGlzIGRvbmUg
ZWFybGllciBpbiB0aGUgY2FzZSBvZiBmb3JtIHN1Ym1pc3Npb24uCkBAIC0yOTkxLDcgKzI5OTYs
OSBAQCB2b2lkIEZyYW1lTG9hZGVyOjpjb250aW51ZUxvYWRBZnRlck5ld1dpbmRvd1BvbGljeShj
b25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlcwogICAgICAgICBtYWluRnJhbWUtPmxvYWRlcigp
LnNldE9wZW5lcihmcmFtZS5wdHIoKSk7CiAgICAgICAgIG1haW5GcmFtZS0+ZG9jdW1lbnQoKS0+
c2V0UmVmZXJyZXJQb2xpY3koZnJhbWUtPmRvY3VtZW50KCktPnJlZmVycmVyUG9saWN5KCkpOwog
ICAgIH0KLSAgICBtYWluRnJhbWUtPmxvYWRlcigpLmxvYWRXaXRoTmF2aWdhdGlvbkFjdGlvbihy
ZXF1ZXN0LCBOYXZpZ2F0aW9uQWN0aW9uKHJlcXVlc3QpLCBMb2NrSGlzdG9yeTo6Tm8sIEZyYW1l
TG9hZFR5cGU6OlN0YW5kYXJkLCBmb3JtU3RhdGUsIGFsbG93TmF2aWdhdGlvblRvSW52YWxpZFVS
TCk7CisKKyAgICBOYXZpZ2F0aW9uQWN0aW9uIG5ld0FjdGlvbihyZXF1ZXN0LCBhY3Rpb24uc2hv
dWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSgpKTsKKyAgICBtYWluRnJhbWUtPmxvYWRlcigpLmxv
YWRXaXRoTmF2aWdhdGlvbkFjdGlvbihyZXF1ZXN0LCBuZXdBY3Rpb24sIExvY2tIaXN0b3J5OjpO
bywgRnJhbWVMb2FkVHlwZTo6U3RhbmRhcmQsIGZvcm1TdGF0ZSwgYWxsb3dOYXZpZ2F0aW9uVG9J
bnZhbGlkVVJMKTsKIH0KIAogdm9pZCBGcmFtZUxvYWRlcjo6cmVxdWVzdEZyb21EZWxlZ2F0ZShS
ZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIHVuc2lnbmVkIGxvbmcmIGlkZW50aWZpZXIsIFJlc291
cmNlRXJyb3ImIGVycm9yKQpAQCAtMzQyNSw2ICszNDMyLDE2IEBAIHZvaWQgRnJhbWVMb2FkZXI6
OmNsZWFyVGVzdGluZ092ZXJyaWRlcygpCiAgICAgbV9vdmVycmlkZVJlc291cmNlTG9hZFByaW9y
aXR5Rm9yVGVzdGluZyA9IE51bGxvcHQ7CiB9CiAKK3ZvaWQgRnJhbWVMb2FkZXI6OmFwcGx5U2hv
dWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeVRvTmV3RG9jdW1lbnRMb2FkZXIoRG9jdW1lbnRMb2Fk
ZXImIGRvY3VtZW50TG9hZGVyLCBTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5IHByb3BhZ2F0
ZWRQb2xpY3kpCit7CisgICAgaWYgKCFtX2ZyYW1lLmlzTWFpbkZyYW1lKCkpCisgICAgICAgIGRv
Y3VtZW50TG9hZGVyLnNldFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3koU2hvdWxkT3BlbkV4
dGVybmFsVVJMc1BvbGljeTo6U2hvdWxkTm90QWxsb3cpOworICAgIGVsc2UgaWYgKFNjcmlwdENv
bnRyb2xsZXI6OnByb2Nlc3NpbmdVc2VyR2VzdHVyZSgpKQorICAgICAgICBkb2N1bWVudExvYWRl
ci5zZXRTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5KFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQ
b2xpY3k6OlNob3VsZEFsbG93KTsKKyAgICBlbHNlCisgICAgICAgIGRvY3VtZW50TG9hZGVyLnNl
dFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kocHJvcGFnYXRlZFBvbGljeSk7Cit9CisKIGJv
b2wgRnJhbWVMb2FkZXJDbGllbnQ6Omhhc0hUTUxWaWV3KCkgY29uc3QKIHsKICAgICByZXR1cm4g
dHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5oIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmgKaW5kZXggYWJlZjg0My4uM2VhYjNm
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmgKQEAgLTExOSw3ICsxMTksNyBAQCBw
dWJsaWM6CiAgICAgdW5zaWduZWQgbG9uZyBsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KGNvbnN0
IFJlc291cmNlUmVxdWVzdCYsIFN0b3JlZENyZWRlbnRpYWxzLCBDbGllbnRDcmVkZW50aWFsUG9s
aWN5LCBSZXNvdXJjZUVycm9yJiwgUmVzb3VyY2VSZXNwb25zZSYsIFJlZlB0cjxTaGFyZWRCdWZm
ZXI+JiBkYXRhKTsKIAogICAgIHZvaWQgY2hhbmdlTG9jYXRpb24oY29uc3QgRnJhbWVMb2FkUmVx
dWVzdCYpOwotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgdXJsU2VsZWN0ZWQoY29uc3QgVVJMJiwg
Y29uc3QgU3RyaW5nJiB0YXJnZXQsIEV2ZW50KiwgTG9ja0hpc3RvcnksIExvY2tCYWNrRm9yd2Fy
ZExpc3QsIFNob3VsZFNlbmRSZWZlcnJlcik7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCB1cmxT
ZWxlY3RlZChjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcmIHRhcmdldCwgRXZlbnQqLCBMb2NrSGlz
dG9yeSwgTG9ja0JhY2tGb3J3YXJkTGlzdCwgU2hvdWxkU2VuZFJlZmVycmVyLCBTaG91bGRPcGVu
RXh0ZXJuYWxVUkxzUG9saWN5KTsKICAgICB2b2lkIHN1Ym1pdEZvcm0oUGFzc1JlZlB0cjxGb3Jt
U3VibWlzc2lvbj4pOwogCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCByZWxvYWQoYm9vbCBlbmRU
b0VuZFJlbG9hZCA9IGZhbHNlKTsKQEAgLTM3OCw2ICszNzgsOCBAQCBwcml2YXRlOgogCiAgICAg
dm9pZCBkaXNwYXRjaEdsb2JhbE9iamVjdEF2YWlsYWJsZUluQWxsV29ybGRzKCk7CiAKKyAgICB2
b2lkIGFwcGx5U2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeVRvTmV3RG9jdW1lbnRMb2FkZXIo
RG9jdW1lbnRMb2FkZXImLCBTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5IHByb3BhZ2F0ZWRQ
b2xpY3kpOworCiAgICAgRnJhbWUmIG1fZnJhbWU7CiAgICAgRnJhbWVMb2FkZXJDbGllbnQmIG1f
Y2xpZW50OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTmF2aWdhdGlvbkFj
dGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTmF2aWdhdGlvbkFjdGlvbi5jcHAKaW5k
ZXggNmQzZTQ2ZS4uN2MxMGRjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL05h
dmlnYXRpb25BY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9OYXZpZ2F0aW9u
QWN0aW9uLmNwcApAQCAtNjcsNiArNjcsMTEgQEAgTmF2aWdhdGlvbkFjdGlvbjo6TmF2aWdhdGlv
bkFjdGlvbihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlc291cmNlUmVxdWVzdCkKIHsKIH0KIAor
TmF2aWdhdGlvbkFjdGlvbjo6TmF2aWdhdGlvbkFjdGlvbihjb25zdCBSZXNvdXJjZVJlcXVlc3Qm
IHJlc291cmNlUmVxdWVzdCwgU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSBzaG91bGRPcGVu
RXh0ZXJuYWxVUkxzUG9saWN5KQorICAgIDogTmF2aWdhdGlvbkFjdGlvbihyZXNvdXJjZVJlcXVl
c3QsIE5hdmlnYXRpb25UeXBlOjpPdGhlciwgbnVsbHB0ciwgc2hvdWxkT3BlbkV4dGVybmFsVVJM
c1BvbGljeSkKK3sKK30KKwogTmF2aWdhdGlvbkFjdGlvbjo6TmF2aWdhdGlvbkFjdGlvbihjb25z
dCBSZXNvdXJjZVJlcXVlc3QmIHJlc291cmNlUmVxdWVzdCwgTmF2aWdhdGlvblR5cGUgdHlwZSkK
ICAgICA6IE5hdmlnYXRpb25BY3Rpb24ocmVzb3VyY2VSZXF1ZXN0LCB0eXBlLCBudWxscHRyLCBT
aG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5OjpTaG91bGROb3RBbGxvdykKIHsKQEAgLTkyLDQg
Kzk3LDE2IEBAIE5hdmlnYXRpb25BY3Rpb246Ok5hdmlnYXRpb25BY3Rpb24oY29uc3QgUmVzb3Vy
Y2VSZXF1ZXN0JiByZXNvdXJjZVJlcXVlc3QsIEZyYW1lCiB7CiB9CiAKK05hdmlnYXRpb25BY3Rp
b246Ok5hdmlnYXRpb25BY3Rpb24oY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXNvdXJjZVJlcXVl
c3QsIEZyYW1lTG9hZFR5cGUgZnJhbWVMb2FkVHlwZSwgYm9vbCBpc0Zvcm1TdWJtaXNzaW9uLCBF
dmVudCogZXZlbnQsIFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kgc2hvdWxkT3BlbkV4dGVy
bmFsVVJMc1BvbGljeSkKKyAgICA6IE5hdmlnYXRpb25BY3Rpb24ocmVzb3VyY2VSZXF1ZXN0LCBu
YXZpZ2F0aW9uVHlwZShmcmFtZUxvYWRUeXBlLCBpc0Zvcm1TdWJtaXNzaW9uLCBldmVudCksIGV2
ZW50LCBzaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5KQoreworfQorCitOYXZpZ2F0aW9uQWN0
aW9uIE5hdmlnYXRpb25BY3Rpb246OmNvcHlXaXRoU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGlj
eShTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5IHNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xp
Y3kpIGNvbnN0Cit7CisgICAgTmF2aWdhdGlvbkFjdGlvbiByZXN1bHQoKnRoaXMpOworICAgIHJl
c3VsdC5tX3Nob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kgPSBzaG91bGRPcGVuRXh0ZXJuYWxV
UkxzUG9saWN5OworICAgIHJldHVybiBXVEY6Om1vdmUocmVzdWx0KTsKK30KKwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL05hdmlnYXRpb25BY3Rpb24uaCBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9OYXZpZ2F0aW9uQWN0aW9uLmgKaW5kZXggOWI1MDMwYy4uNDhlODczMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL05hdmlnYXRpb25BY3Rpb24uaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTmF2aWdhdGlvbkFjdGlvbi5oCkBAIC00MywxMCArNDMs
MTUgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIGV4cGxpY2l0IE5hdmlnYXRpb25BY3Rp
b24oY29uc3QgUmVzb3VyY2VSZXF1ZXN0Jik7CiAgICAgV0VCQ09SRV9FWFBPUlQgTmF2aWdhdGlv
bkFjdGlvbihjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBOYXZpZ2F0aW9uVHlwZSk7CiAgICAgV0VC
Q09SRV9FWFBPUlQgTmF2aWdhdGlvbkFjdGlvbihjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBGcmFt
ZUxvYWRUeXBlLCBib29sIGlzRm9ybVN1Ym1pc3Npb24pOworCisgICAgTmF2aWdhdGlvbkFjdGlv
bihjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5KTsK
ICAgICBOYXZpZ2F0aW9uQWN0aW9uKGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIE5hdmlnYXRpb25U
eXBlLCBFdmVudCopOwogICAgIE5hdmlnYXRpb25BY3Rpb24oY29uc3QgUmVzb3VyY2VSZXF1ZXN0
JiwgTmF2aWdhdGlvblR5cGUsIEV2ZW50KiwgU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSk7
CiAgICAgTmF2aWdhdGlvbkFjdGlvbihjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBOYXZpZ2F0aW9u
VHlwZSwgU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSk7CiAgICAgTmF2aWdhdGlvbkFjdGlv
bihjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBGcmFtZUxvYWRUeXBlLCBib29sIGlzRm9ybVN1Ym1p
c3Npb24sIEV2ZW50Kik7CisgICAgTmF2aWdhdGlvbkFjdGlvbihjb25zdCBSZXNvdXJjZVJlcXVl
c3QmLCBGcmFtZUxvYWRUeXBlLCBib29sIGlzRm9ybVN1Ym1pc3Npb24sIEV2ZW50KiwgU2hvdWxk
T3BlbkV4dGVybmFsVVJMc1BvbGljeSk7CisKKyAgICBOYXZpZ2F0aW9uQWN0aW9uIGNvcHlXaXRo
U2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeShTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5
KSBjb25zdDsKIAogICAgIGJvb2wgaXNFbXB0eSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVzb3VyY2VS
ZXF1ZXN0LnVybCgpLmlzRW1wdHkoKTsgfQogCkBAIC01OSw3ICs2NCw2IEBAIHB1YmxpYzoKICAg
ICBib29sIHByb2Nlc3NpbmdVc2VyR2VzdHVyZSgpIGNvbnN0IHsgcmV0dXJuIG1fcHJvY2Vzc2lu
Z1VzZXJHZXN0dXJlOyB9CiAKICAgICBTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5IHNob3Vs
ZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3koKSBjb25zdCB7IHJldHVybiBtX3Nob3VsZE9wZW5FeHRl
cm5hbFVSTHNQb2xpY3k7IH0KLSAgICB2b2lkIHNldFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xp
Y3koU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSBwb2xpY3kpIHsgbV9zaG91bGRPcGVuRXh0
ZXJuYWxVUkxzUG9saWN5ID0gcG9saWN5OyB9CiAKIHByaXZhdGU6CiAgICAgUmVzb3VyY2VSZXF1
ZXN0IG1fcmVzb3VyY2VSZXF1ZXN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L05hdmlnYXRpb25TY2hlZHVsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL05hdmlnYXRp
b25TY2hlZHVsZXIuY3BwCmluZGV4IGNmN2JkYWIuLmQ5NWNlZGIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9OYXZpZ2F0aW9uU2NoZWR1bGVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvTmF2aWdhdGlvblNjaGVkdWxlci5jcHAKQEAgLTg3LDYgKzg3LDggQEAgcHVi
bGljOgogcHJvdGVjdGVkOgogICAgIHZvaWQgY2xlYXJVc2VyR2VzdHVyZSgpIHsgbV93YXNVc2Vy
R2VzdHVyZSA9IGZhbHNlOyB9CiAKKyAgICBTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5IG1f
c2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSB7IFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xp
Y3k6OlNob3VsZE5vdEFsbG93IH07CisKIHByaXZhdGU6CiAgICAgZG91YmxlIG1fZGVsYXk7CiAg
ICAgTG9ja0hpc3RvcnkgbV9sb2NrSGlzdG9yeTsKQEAgLTk4LDEzICsxMDAsMTUgQEAgcHJpdmF0
ZToKIAogY2xhc3MgU2NoZWR1bGVkVVJMTmF2aWdhdGlvbiA6IHB1YmxpYyBTY2hlZHVsZWROYXZp
Z2F0aW9uIHsKIHByb3RlY3RlZDoKLSAgICBTY2hlZHVsZWRVUkxOYXZpZ2F0aW9uKGRvdWJsZSBk
ZWxheSwgU2VjdXJpdHlPcmlnaW4qIHNlY3VyaXR5T3JpZ2luLCBjb25zdCBVUkwmIHVybCwgY29u
c3QgU3RyaW5nJiByZWZlcnJlciwgTG9ja0hpc3RvcnkgbG9ja0hpc3RvcnksIExvY2tCYWNrRm9y
d2FyZExpc3QgbG9ja0JhY2tGb3J3YXJkTGlzdCwgYm9vbCBkdXJpbmdMb2FkLCBib29sIGlzTG9j
YXRpb25DaGFuZ2UpCisgICAgU2NoZWR1bGVkVVJMTmF2aWdhdGlvbihEb2N1bWVudCogaW5pdGlh
dGluZ0RvY3VtZW50LCBkb3VibGUgZGVsYXksIFNlY3VyaXR5T3JpZ2luKiBzZWN1cml0eU9yaWdp
biwgY29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgcmVmZXJyZXIsIExvY2tIaXN0b3J5IGxv
Y2tIaXN0b3J5LCBMb2NrQmFja0ZvcndhcmRMaXN0IGxvY2tCYWNrRm9yd2FyZExpc3QsIGJvb2wg
ZHVyaW5nTG9hZCwgYm9vbCBpc0xvY2F0aW9uQ2hhbmdlKQogICAgICAgICA6IFNjaGVkdWxlZE5h
dmlnYXRpb24oZGVsYXksIGxvY2tIaXN0b3J5LCBsb2NrQmFja0ZvcndhcmRMaXN0LCBkdXJpbmdM
b2FkLCBpc0xvY2F0aW9uQ2hhbmdlKQogICAgICAgICAsIG1fc2VjdXJpdHlPcmlnaW4oc2VjdXJp
dHlPcmlnaW4pCiAgICAgICAgICwgbV91cmwodXJsKQogICAgICAgICAsIG1fcmVmZXJyZXIocmVm
ZXJyZXIpCiAgICAgICAgICwgbV9oYXZlVG9sZENsaWVudChmYWxzZSkKICAgICB7CisgICAgICAg
IGlmIChpbml0aWF0aW5nRG9jdW1lbnQpCisgICAgICAgICAgICBtX3Nob3VsZE9wZW5FeHRlcm5h
bFVSTHNQb2xpY3kgPSBpbml0aWF0aW5nRG9jdW1lbnQtPnNob3VsZE9wZW5FeHRlcm5hbFVSTHNQ
b2xpY3lUb1Byb3BhZ2F0ZSgpOwogICAgIH0KIAogICAgIHZpcnR1YWwgdm9pZCBmaXJlKEZyYW1l
JiBmcmFtZSkgb3ZlcnJpZGUKQEAgLTExMiw3ICsxMTYsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgICAg
IFVzZXJHZXN0dXJlSW5kaWNhdG9yIGdlc3R1cmVJbmRpY2F0b3Iod2FzVXNlckdlc3R1cmUoKSA/
IERlZmluaXRlbHlQcm9jZXNzaW5nVXNlckdlc3R1cmUgOiBEZWZpbml0ZWx5Tm90UHJvY2Vzc2lu
Z1VzZXJHZXN0dXJlKTsKIAogICAgICAgICBSZXNvdXJjZVJlcXVlc3QgcmVzb3VyY2VSZXF1ZXN0
KG1fdXJsLCBtX3JlZmVycmVyLCBVc2VQcm90b2NvbENhY2hlUG9saWN5KTsKLSAgICAgICAgRnJh
bWVMb2FkUmVxdWVzdCBmcmFtZVJlcXVlc3QobV9zZWN1cml0eU9yaWdpbi5nZXQoKSwgcmVzb3Vy
Y2VSZXF1ZXN0LCBsb2NrSGlzdG9yeSgpLCBsb2NrQmFja0ZvcndhcmRMaXN0KCksIE1heWJlU2Vu
ZFJlZmVycmVyLCBBbGxvd05hdmlnYXRpb25Ub0ludmFsaWRVUkw6OlllcywgTmV3RnJhbWVPcGVu
ZXJQb2xpY3k6OkFsbG93KTsKKyAgICAgICAgRnJhbWVMb2FkUmVxdWVzdCBmcmFtZVJlcXVlc3Qo
bV9zZWN1cml0eU9yaWdpbi5nZXQoKSwgcmVzb3VyY2VSZXF1ZXN0LCBsb2NrSGlzdG9yeSgpLCBs
b2NrQmFja0ZvcndhcmRMaXN0KCksIE1heWJlU2VuZFJlZmVycmVyLCBBbGxvd05hdmlnYXRpb25U
b0ludmFsaWRVUkw6OlllcywgTmV3RnJhbWVPcGVuZXJQb2xpY3k6OkFsbG93LCBtX3Nob3VsZE9w
ZW5FeHRlcm5hbFVSTHNQb2xpY3kpOwogCiAgICAgICAgIGZyYW1lLmxvYWRlcigpLmNoYW5nZUxv
Y2F0aW9uKGZyYW1lUmVxdWVzdCk7CiAgICAgfQpAQCAtMTU0LDggKzE1OCw4IEBAIHByaXZhdGU6
CiAKIGNsYXNzIFNjaGVkdWxlZFJlZGlyZWN0IDogcHVibGljIFNjaGVkdWxlZFVSTE5hdmlnYXRp
b24gewogcHVibGljOgotICAgIFNjaGVkdWxlZFJlZGlyZWN0KGRvdWJsZSBkZWxheSwgU2VjdXJp
dHlPcmlnaW4qIHNlY3VyaXR5T3JpZ2luLCBjb25zdCBVUkwmIHVybCwgTG9ja0hpc3RvcnkgbG9j
a0hpc3RvcnksIExvY2tCYWNrRm9yd2FyZExpc3QgbG9ja0JhY2tGb3J3YXJkTGlzdCkKLSAgICAg
ICAgOiBTY2hlZHVsZWRVUkxOYXZpZ2F0aW9uKGRlbGF5LCBzZWN1cml0eU9yaWdpbiwgdXJsLCBT
dHJpbmcoKSwgbG9ja0hpc3RvcnksIGxvY2tCYWNrRm9yd2FyZExpc3QsIGZhbHNlLCBmYWxzZSkK
KyAgICBTY2hlZHVsZWRSZWRpcmVjdChEb2N1bWVudCogaW5pdGlhdGluZ0RvY3VtZW50LCBkb3Vi
bGUgZGVsYXksIFNlY3VyaXR5T3JpZ2luKiBzZWN1cml0eU9yaWdpbiwgY29uc3QgVVJMJiB1cmws
IExvY2tIaXN0b3J5IGxvY2tIaXN0b3J5LCBMb2NrQmFja0ZvcndhcmRMaXN0IGxvY2tCYWNrRm9y
d2FyZExpc3QpCisgICAgICAgIDogU2NoZWR1bGVkVVJMTmF2aWdhdGlvbihpbml0aWF0aW5nRG9j
dW1lbnQsIGRlbGF5LCBzZWN1cml0eU9yaWdpbiwgdXJsLCBTdHJpbmcoKSwgbG9ja0hpc3Rvcnks
IGxvY2tCYWNrRm9yd2FyZExpc3QsIGZhbHNlLCBmYWxzZSkKICAgICB7CiAgICAgICAgIGNsZWFy
VXNlckdlc3R1cmUoKTsKICAgICB9CkBAIC0xNzAsNyArMTc0LDcgQEAgcHVibGljOgogICAgICAg
ICBVc2VyR2VzdHVyZUluZGljYXRvciBnZXN0dXJlSW5kaWNhdG9yKHdhc1VzZXJHZXN0dXJlKCkg
PyBEZWZpbml0ZWx5UHJvY2Vzc2luZ1VzZXJHZXN0dXJlIDogRGVmaW5pdGVseU5vdFByb2Nlc3Np
bmdVc2VyR2VzdHVyZSk7CiAgICAgICAgIGJvb2wgcmVmcmVzaCA9IGVxdWFsSWdub3JpbmdGcmFn
bWVudElkZW50aWZpZXIoZnJhbWUuZG9jdW1lbnQoKS0+dXJsKCksIHVybCgpKTsKICAgICAgICAg
UmVzb3VyY2VSZXF1ZXN0IHJlc291cmNlUmVxdWVzdCh1cmwoKSwgcmVmZXJyZXIoKSwgcmVmcmVz
aCA/IFJlbG9hZElnbm9yaW5nQ2FjaGVEYXRhIDogVXNlUHJvdG9jb2xDYWNoZVBvbGljeSk7Ci0g
ICAgICAgIEZyYW1lTG9hZFJlcXVlc3QgZnJhbWVSZXF1ZXN0KHNlY3VyaXR5T3JpZ2luKCksIHJl
c291cmNlUmVxdWVzdCwgbG9ja0hpc3RvcnkoKSwgbG9ja0JhY2tGb3J3YXJkTGlzdCgpLCBNYXli
ZVNlbmRSZWZlcnJlciwgQWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJMOjpObywgTmV3RnJhbWVP
cGVuZXJQb2xpY3k6OkFsbG93KTsKKyAgICAgICAgRnJhbWVMb2FkUmVxdWVzdCBmcmFtZVJlcXVl
c3Qoc2VjdXJpdHlPcmlnaW4oKSwgcmVzb3VyY2VSZXF1ZXN0LCBsb2NrSGlzdG9yeSgpLCBsb2Nr
QmFja0ZvcndhcmRMaXN0KCksIE1heWJlU2VuZFJlZmVycmVyLCBBbGxvd05hdmlnYXRpb25Ub0lu
dmFsaWRVUkw6Ok5vLCBOZXdGcmFtZU9wZW5lclBvbGljeTo6QWxsb3csIG1fc2hvdWxkT3BlbkV4
dGVybmFsVVJMc1BvbGljeSk7CiAKICAgICAgICAgZnJhbWUubG9hZGVyKCkuY2hhbmdlTG9jYXRp
b24oZnJhbWVSZXF1ZXN0KTsKICAgICB9CkBAIC0xNzgsMjMgKzE4MiwyMyBAQCBwdWJsaWM6CiAK
IGNsYXNzIFNjaGVkdWxlZExvY2F0aW9uQ2hhbmdlIDogcHVibGljIFNjaGVkdWxlZFVSTE5hdmln
YXRpb24gewogcHVibGljOgotICAgIFNjaGVkdWxlZExvY2F0aW9uQ2hhbmdlKFNlY3VyaXR5T3Jp
Z2luKiBzZWN1cml0eU9yaWdpbiwgY29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgcmVmZXJy
ZXIsIExvY2tIaXN0b3J5IGxvY2tIaXN0b3J5LCBMb2NrQmFja0ZvcndhcmRMaXN0IGxvY2tCYWNr
Rm9yd2FyZExpc3QsIGJvb2wgZHVyaW5nTG9hZCkKLSAgICAgICAgOiBTY2hlZHVsZWRVUkxOYXZp
Z2F0aW9uKDAuMCwgc2VjdXJpdHlPcmlnaW4sIHVybCwgcmVmZXJyZXIsIGxvY2tIaXN0b3J5LCBs
b2NrQmFja0ZvcndhcmRMaXN0LCBkdXJpbmdMb2FkLCB0cnVlKSB7IH0KKyAgICBTY2hlZHVsZWRM
b2NhdGlvbkNoYW5nZShEb2N1bWVudCogaW5pdGlhdGluZ0RvY3VtZW50LCBTZWN1cml0eU9yaWdp
biogc2VjdXJpdHlPcmlnaW4sIGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIHJlZmVycmVy
LCBMb2NrSGlzdG9yeSBsb2NrSGlzdG9yeSwgTG9ja0JhY2tGb3J3YXJkTGlzdCBsb2NrQmFja0Zv
cndhcmRMaXN0LCBib29sIGR1cmluZ0xvYWQpCisgICAgICAgIDogU2NoZWR1bGVkVVJMTmF2aWdh
dGlvbihpbml0aWF0aW5nRG9jdW1lbnQsIDAuMCwgc2VjdXJpdHlPcmlnaW4sIHVybCwgcmVmZXJy
ZXIsIGxvY2tIaXN0b3J5LCBsb2NrQmFja0ZvcndhcmRMaXN0LCBkdXJpbmdMb2FkLCB0cnVlKSB7
IH0KIAogICAgIHZpcnR1YWwgdm9pZCBmaXJlKEZyYW1lJiBmcmFtZSkgb3ZlcnJpZGUKICAgICB7
CiAgICAgICAgIFVzZXJHZXN0dXJlSW5kaWNhdG9yIGdlc3R1cmVJbmRpY2F0b3Iod2FzVXNlckdl
c3R1cmUoKSA/IERlZmluaXRlbHlQcm9jZXNzaW5nVXNlckdlc3R1cmUgOiBEZWZpbml0ZWx5Tm90
UHJvY2Vzc2luZ1VzZXJHZXN0dXJlKTsKIAogICAgICAgICBSZXNvdXJjZVJlcXVlc3QgcmVzb3Vy
Y2VSZXF1ZXN0KHVybCgpLCByZWZlcnJlcigpLCBVc2VQcm90b2NvbENhY2hlUG9saWN5KTsKLSAg
ICAgICAgRnJhbWVMb2FkUmVxdWVzdCBmcmFtZVJlcXVlc3Qoc2VjdXJpdHlPcmlnaW4oKSwgcmVz
b3VyY2VSZXF1ZXN0LCBsb2NrSGlzdG9yeSgpLCBsb2NrQmFja0ZvcndhcmRMaXN0KCksIE1heWJl
U2VuZFJlZmVycmVyLCBBbGxvd05hdmlnYXRpb25Ub0ludmFsaWRVUkw6Ok5vLCBOZXdGcmFtZU9w
ZW5lclBvbGljeTo6QWxsb3cpOworICAgICAgICBGcmFtZUxvYWRSZXF1ZXN0IGZyYW1lUmVxdWVz
dChzZWN1cml0eU9yaWdpbigpLCByZXNvdXJjZVJlcXVlc3QsIGxvY2tIaXN0b3J5KCksIGxvY2tC
YWNrRm9yd2FyZExpc3QoKSwgTWF5YmVTZW5kUmVmZXJyZXIsIEFsbG93TmF2aWdhdGlvblRvSW52
YWxpZFVSTDo6Tm8sIE5ld0ZyYW1lT3BlbmVyUG9saWN5OjpBbGxvdywgbV9zaG91bGRPcGVuRXh0
ZXJuYWxVUkxzUG9saWN5KTsKICAgICAgICAgZnJhbWUubG9hZGVyKCkuY2hhbmdlTG9jYXRpb24o
ZnJhbWVSZXF1ZXN0KTsKICAgICB9CiB9OwogCiBjbGFzcyBTY2hlZHVsZWRSZWZyZXNoIDogcHVi
bGljIFNjaGVkdWxlZFVSTE5hdmlnYXRpb24gewogcHVibGljOgotICAgIFNjaGVkdWxlZFJlZnJl
c2goU2VjdXJpdHlPcmlnaW4qIHNlY3VyaXR5T3JpZ2luLCBjb25zdCBVUkwmIHVybCwgY29uc3Qg
U3RyaW5nJiByZWZlcnJlcikKLSAgICAgICAgOiBTY2hlZHVsZWRVUkxOYXZpZ2F0aW9uKDAuMCwg
c2VjdXJpdHlPcmlnaW4sIHVybCwgcmVmZXJyZXIsIExvY2tIaXN0b3J5OjpZZXMsIExvY2tCYWNr
Rm9yd2FyZExpc3Q6OlllcywgZmFsc2UsIHRydWUpCisgICAgU2NoZWR1bGVkUmVmcmVzaChEb2N1
bWVudCogaW5pdGlhdGluZ0RvY3VtZW50LCBTZWN1cml0eU9yaWdpbiogc2VjdXJpdHlPcmlnaW4s
IGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIHJlZmVycmVyKQorICAgICAgICA6IFNjaGVk
dWxlZFVSTE5hdmlnYXRpb24oaW5pdGlhdGluZ0RvY3VtZW50LCAwLjAsIHNlY3VyaXR5T3JpZ2lu
LCB1cmwsIHJlZmVycmVyLCBMb2NrSGlzdG9yeTo6WWVzLCBMb2NrQmFja0ZvcndhcmRMaXN0OjpZ
ZXMsIGZhbHNlLCB0cnVlKQogICAgIHsKICAgICB9CiAKQEAgLTIwMyw3ICsyMDcsNyBAQCBwdWJs
aWM6CiAgICAgICAgIFVzZXJHZXN0dXJlSW5kaWNhdG9yIGdlc3R1cmVJbmRpY2F0b3Iod2FzVXNl
ckdlc3R1cmUoKSA/IERlZmluaXRlbHlQcm9jZXNzaW5nVXNlckdlc3R1cmUgOiBEZWZpbml0ZWx5
Tm90UHJvY2Vzc2luZ1VzZXJHZXN0dXJlKTsKIAogICAgICAgICBSZXNvdXJjZVJlcXVlc3QgcmVz
b3VyY2VSZXF1ZXN0KHVybCgpLCByZWZlcnJlcigpLCBSZWxvYWRJZ25vcmluZ0NhY2hlRGF0YSk7
Ci0gICAgICAgIEZyYW1lTG9hZFJlcXVlc3QgZnJhbWVSZXF1ZXN0KHNlY3VyaXR5T3JpZ2luKCks
IHJlc291cmNlUmVxdWVzdCwgbG9ja0hpc3RvcnkoKSwgbG9ja0JhY2tGb3J3YXJkTGlzdCgpLCBN
YXliZVNlbmRSZWZlcnJlciwgQWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJMOjpZZXMsIE5ld0Zy
YW1lT3BlbmVyUG9saWN5OjpBbGxvdyk7CisgICAgICAgIEZyYW1lTG9hZFJlcXVlc3QgZnJhbWVS
ZXF1ZXN0KHNlY3VyaXR5T3JpZ2luKCksIHJlc291cmNlUmVxdWVzdCwgbG9ja0hpc3RvcnkoKSwg
bG9ja0JhY2tGb3J3YXJkTGlzdCgpLCBNYXliZVNlbmRSZWZlcnJlciwgQWxsb3dOYXZpZ2F0aW9u
VG9JbnZhbGlkVVJMOjpZZXMsIE5ld0ZyYW1lT3BlbmVyUG9saWN5OjpBbGxvdywgbV9zaG91bGRP
cGVuRXh0ZXJuYWxVUkxzUG9saWN5KTsKICAgICAgICAgZnJhbWUubG9hZGVyKCkuY2hhbmdlTG9j
YXRpb24oZnJhbWVSZXF1ZXN0KTsKICAgICB9CiB9OwpAQCAtMjIzLDcgKzIyNyw3IEBAIHB1Ymxp
YzoKICAgICAgICAgaWYgKCFtX2hpc3RvcnlTdGVwcykgewogICAgICAgICAgICAgLy8gU3BlY2lh
bCBjYXNlIGZvciBnbygwKSBmcm9tIGEgZnJhbWUgLT4gcmVsb2FkIG9ubHkgdGhlIGZyYW1lCiAg
ICAgICAgICAgICAvLyBUbyBmb2xsb3cgRmlyZWZveCBhbmQgSUUncyBiZWhhdmlvciwgaGlzdG9y
eSByZWxvYWQgY2FuIG9ubHkgbmF2aWdhdGUgdGhlIHNlbGYgZnJhbWUuCi0gICAgICAgICAgICBm
cmFtZS5sb2FkZXIoKS51cmxTZWxlY3RlZChmcmFtZS5kb2N1bWVudCgpLT51cmwoKSwgIl9zZWxm
IiwgMCwgbG9ja0hpc3RvcnkoKSwgbG9ja0JhY2tGb3J3YXJkTGlzdCgpLCBNYXliZVNlbmRSZWZl
cnJlcik7CisgICAgICAgICAgICBmcmFtZS5sb2FkZXIoKS51cmxTZWxlY3RlZChmcmFtZS5kb2N1
bWVudCgpLT51cmwoKSwgIl9zZWxmIiwgMCwgbG9ja0hpc3RvcnkoKSwgbG9ja0JhY2tGb3J3YXJk
TGlzdCgpLCBNYXliZVNlbmRSZWZlcnJlciwgbV9zaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5
KTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAgICAgICAKQEAgLTI0NCw2ICsy
NDgsOSBAQCBwdWJsaWM6CiAgICAgICAgICwgbV9oYXZlVG9sZENsaWVudChmYWxzZSkKICAgICB7
CiAgICAgICAgIEFTU0VSVChtX3N1Ym1pc3Npb24tPnN0YXRlKCkpOworCisgICAgICAgIGlmIChE
b2N1bWVudCogZG9jdW1lbnQgPSBtX3N1Ym1pc3Npb24tPnN0YXRlKCktPnNvdXJjZURvY3VtZW50
KCkpCisgICAgICAgICAgICBtX3Nob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kgPSBkb2N1bWVu
dC0+c2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeVRvUHJvcGFnYXRlKCk7CiAgICAgfQogCiAg
ICAgdmlydHVhbCB2b2lkIGZpcmUoRnJhbWUmIGZyYW1lKSBvdmVycmlkZQpAQCAtMjU3LDcgKzI2
NCw3IEBAIHB1YmxpYzoKICAgICAgICAgRG9jdW1lbnQqIHJlcXVlc3RpbmdEb2N1bWVudCA9IG1f
c3VibWlzc2lvbi0+c3RhdGUoKS0+c291cmNlRG9jdW1lbnQoKTsKICAgICAgICAgaWYgKCFyZXF1
ZXN0aW5nRG9jdW1lbnQtPmNhbk5hdmlnYXRlKCZmcmFtZSkpCiAgICAgICAgICAgICByZXR1cm47
Ci0gICAgICAgIEZyYW1lTG9hZFJlcXVlc3QgZnJhbWVSZXF1ZXN0KHJlcXVlc3RpbmdEb2N1bWVu
dC0+c2VjdXJpdHlPcmlnaW4oKSwgbG9ja0hpc3RvcnkoKSwgbG9ja0JhY2tGb3J3YXJkTGlzdCgp
LCBNYXliZVNlbmRSZWZlcnJlciwgQWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJMOjpZZXMsIE5l
d0ZyYW1lT3BlbmVyUG9saWN5OjpBbGxvdyk7CisgICAgICAgIEZyYW1lTG9hZFJlcXVlc3QgZnJh
bWVSZXF1ZXN0KHJlcXVlc3RpbmdEb2N1bWVudC0+c2VjdXJpdHlPcmlnaW4oKSwgbG9ja0hpc3Rv
cnkoKSwgbG9ja0JhY2tGb3J3YXJkTGlzdCgpLCBNYXliZVNlbmRSZWZlcnJlciwgQWxsb3dOYXZp
Z2F0aW9uVG9JbnZhbGlkVVJMOjpZZXMsIE5ld0ZyYW1lT3BlbmVyUG9saWN5OjpBbGxvdywgbV9z
aG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5KTsKICAgICAgICAgbV9zdWJtaXNzaW9uLT5wb3B1
bGF0ZUZyYW1lTG9hZFJlcXVlc3QoZnJhbWVSZXF1ZXN0KTsKICAgICAgICAgZnJhbWUubG9hZGVy
KCkubG9hZEZyYW1lUmVxdWVzdChmcmFtZVJlcXVlc3QsIG1fc3VibWlzc2lvbi0+ZXZlbnQoKSwg
bV9zdWJtaXNzaW9uLT5zdGF0ZSgpKTsKICAgICB9CkBAIC0zMDMsNyArMzEwLDcgQEAgcHVibGlj
OgogICAgIHZvaWQgZmlyZShGcmFtZSYgZnJhbWUpIG92ZXJyaWRlCiAgICAgewogICAgICAgICBV
c2VyR2VzdHVyZUluZGljYXRvciBnZXN0dXJlSW5kaWNhdG9yIHsgd2FzVXNlckdlc3R1cmUoKSA/
IERlZmluaXRlbHlQcm9jZXNzaW5nVXNlckdlc3R1cmUgOiBEZWZpbml0ZWx5Tm90UHJvY2Vzc2lu
Z1VzZXJHZXN0dXJlIH07Ci0gICAgICAgIGZyYW1lLmxvYWRlcigpLmxvYWQoRnJhbWVMb2FkUmVx
dWVzdCB7ICZmcmFtZSwgbV9iYXNlVVJMLCBtX3N1YnN0aXR1dGVEYXRhIH0pOworICAgICAgICBm
cmFtZS5sb2FkZXIoKS5sb2FkKEZyYW1lTG9hZFJlcXVlc3QgeyAmZnJhbWUsIG1fYmFzZVVSTCwg
bV9zaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5LCBtX3N1YnN0aXR1dGVEYXRhIH0pOwogICAg
IH0KIAogcHJpdmF0ZToKQEAgLTM1Myw3ICszNjAsNyBAQCBpbmxpbmUgYm9vbCBOYXZpZ2F0aW9u
U2NoZWR1bGVyOjpzaG91bGRTY2hlZHVsZU5hdmlnYXRpb24oY29uc3QgVVJMJiB1cmwpIGNvbnN0
CiAgICAgcmV0dXJuIE5hdmlnYXRpb25EaXNhYmxlckZvckJlZm9yZVVubG9hZDo6aXNOYXZpZ2F0
aW9uQWxsb3dlZCgpOwogfQogCi12b2lkIE5hdmlnYXRpb25TY2hlZHVsZXI6OnNjaGVkdWxlUmVk
aXJlY3QoZG91YmxlIGRlbGF5LCBjb25zdCBVUkwmIHVybCkKK3ZvaWQgTmF2aWdhdGlvblNjaGVk
dWxlcjo6c2NoZWR1bGVSZWRpcmVjdChEb2N1bWVudCogaW5pdGlhdGluZ0RvY3VtZW50LCBkb3Vi
bGUgZGVsYXksIGNvbnN0IFVSTCYgdXJsKQogewogICAgIGlmICghc2hvdWxkU2NoZWR1bGVOYXZp
Z2F0aW9uKHVybCkpCiAgICAgICAgIHJldHVybjsKQEAgLTM2NSw3ICszNzIsNyBAQCB2b2lkIE5h
dmlnYXRpb25TY2hlZHVsZXI6OnNjaGVkdWxlUmVkaXJlY3QoZG91YmxlIGRlbGF5LCBjb25zdCBV
UkwmIHVybCkKICAgICAvLyBXZSB3YW50IGEgbmV3IGJhY2svZm9yd2FyZCBsaXN0IGl0ZW0gaWYg
dGhlIHJlZnJlc2ggdGltZW91dCBpcyA+IDEgc2Vjb25kLgogICAgIGlmICghbV9yZWRpcmVjdCB8
fCBkZWxheSA8PSBtX3JlZGlyZWN0LT5kZWxheSgpKSB7CiAgICAgICAgIExvY2tCYWNrRm9yd2Fy
ZExpc3QgbG9ja0JhY2tGb3J3YXJkTGlzdCA9IGRlbGF5IDw9IDEgPyBMb2NrQmFja0ZvcndhcmRM
aXN0OjpZZXMgOiBMb2NrQmFja0ZvcndhcmRMaXN0OjpObzsKLSAgICAgICAgc2NoZWR1bGUoc3Rk
OjptYWtlX3VuaXF1ZTxTY2hlZHVsZWRSZWRpcmVjdD4oZGVsYXksIG1fZnJhbWUuZG9jdW1lbnQo
KS0+c2VjdXJpdHlPcmlnaW4oKSwgdXJsLCBMb2NrSGlzdG9yeTo6WWVzLCBsb2NrQmFja0Zvcndh
cmRMaXN0KSk7CisgICAgICAgIHNjaGVkdWxlKHN0ZDo6bWFrZV91bmlxdWU8U2NoZWR1bGVkUmVk
aXJlY3Q+KGluaXRpYXRpbmdEb2N1bWVudCwgZGVsYXksIG1fZnJhbWUuZG9jdW1lbnQoKS0+c2Vj
dXJpdHlPcmlnaW4oKSwgdXJsLCBMb2NrSGlzdG9yeTo6WWVzLCBsb2NrQmFja0ZvcndhcmRMaXN0
KSk7CiAgICAgfQogfQogCkBAIC0zODcsNyArMzk0LDcgQEAgTG9ja0JhY2tGb3J3YXJkTGlzdCBO
YXZpZ2F0aW9uU2NoZWR1bGVyOjptdXN0TG9ja0JhY2tGb3J3YXJkTGlzdChGcmFtZSYgdGFyZ2V0
RnIKICAgICByZXR1cm4gTG9ja0JhY2tGb3J3YXJkTGlzdDo6Tm87CiB9CiAKLXZvaWQgTmF2aWdh
dGlvblNjaGVkdWxlcjo6c2NoZWR1bGVMb2NhdGlvbkNoYW5nZShTZWN1cml0eU9yaWdpbiogc2Vj
dXJpdHlPcmlnaW4sIGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIHJlZmVycmVyLCBMb2Nr
SGlzdG9yeSBsb2NrSGlzdG9yeSwgTG9ja0JhY2tGb3J3YXJkTGlzdCBsb2NrQmFja0ZvcndhcmRM
aXN0KQordm9pZCBOYXZpZ2F0aW9uU2NoZWR1bGVyOjpzY2hlZHVsZUxvY2F0aW9uQ2hhbmdlKERv
Y3VtZW50KiBpbml0aWF0aW5nRG9jdW1lbnQsIFNlY3VyaXR5T3JpZ2luKiBzZWN1cml0eU9yaWdp
biwgY29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgcmVmZXJyZXIsIExvY2tIaXN0b3J5IGxv
Y2tIaXN0b3J5LCBMb2NrQmFja0ZvcndhcmRMaXN0IGxvY2tCYWNrRm9yd2FyZExpc3QpCiB7CiAg
ICAgaWYgKCFzaG91bGRTY2hlZHVsZU5hdmlnYXRpb24odXJsKSkKICAgICAgICAgcmV0dXJuOwpA
QCAtNDAxLDcgKzQwOCwxMCBAQCB2b2lkIE5hdmlnYXRpb25TY2hlZHVsZXI6OnNjaGVkdWxlTG9j
YXRpb25DaGFuZ2UoU2VjdXJpdHlPcmlnaW4qIHNlY3VyaXR5T3JpZ2luLAogICAgIC8vIGZyYWdt
ZW50IHBhcnQsIHdlIGRvbid0IG5lZWQgdG8gc2NoZWR1bGUgdGhlIGxvY2F0aW9uIGNoYW5nZS4K
ICAgICBpZiAodXJsLmhhc0ZyYWdtZW50SWRlbnRpZmllcigpICYmIGVxdWFsSWdub3JpbmdGcmFn
bWVudElkZW50aWZpZXIobV9mcmFtZS5kb2N1bWVudCgpLT51cmwoKSwgdXJsKSkgewogICAgICAg
ICBSZXNvdXJjZVJlcXVlc3QgcmVzb3VyY2VSZXF1ZXN0KG1fZnJhbWUuZG9jdW1lbnQoKS0+Y29t
cGxldGVVUkwodXJsKSwgcmVmZXJyZXIsIFVzZVByb3RvY29sQ2FjaGVQb2xpY3kpOwotICAgICAg
ICBGcmFtZUxvYWRSZXF1ZXN0IGZyYW1lUmVxdWVzdChzZWN1cml0eU9yaWdpbiwgcmVzb3VyY2VS
ZXF1ZXN0LCBlbXB0eVN0cmluZygpLCBsb2NrSGlzdG9yeSwgbG9ja0JhY2tGb3J3YXJkTGlzdCwg
TWF5YmVTZW5kUmVmZXJyZXIsIEFsbG93TmF2aWdhdGlvblRvSW52YWxpZFVSTDo6Tm8sIE5ld0Zy
YW1lT3BlbmVyUG9saWN5OjpBbGxvdywgUmVwbGFjZURvY3VtZW50SWZKYXZhU2NyaXB0VVJMKTsK
KyAgICAgICAgU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSBzaG91bGRPcGVuRXh0ZXJuYWxV
UkxzUG9saWN5ID0gU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeTo6U2hvdWxkTm90QWxsb3c7
CisgICAgICAgIGlmIChpbml0aWF0aW5nRG9jdW1lbnQpCisgICAgICAgICAgICBzaG91bGRPcGVu
RXh0ZXJuYWxVUkxzUG9saWN5ID0gaW5pdGlhdGluZ0RvY3VtZW50LT5zaG91bGRPcGVuRXh0ZXJu
YWxVUkxzUG9saWN5VG9Qcm9wYWdhdGUoKTsKKyAgICAgICAgRnJhbWVMb2FkUmVxdWVzdCBmcmFt
ZVJlcXVlc3Qoc2VjdXJpdHlPcmlnaW4sIHJlc291cmNlUmVxdWVzdCwgZW1wdHlTdHJpbmcoKSwg
bG9ja0hpc3RvcnksIGxvY2tCYWNrRm9yd2FyZExpc3QsIE1heWJlU2VuZFJlZmVycmVyLCBBbGxv
d05hdmlnYXRpb25Ub0ludmFsaWRVUkw6Ok5vLCBOZXdGcmFtZU9wZW5lclBvbGljeTo6QWxsb3cs
IFJlcGxhY2VEb2N1bWVudElmSmF2YVNjcmlwdFVSTCwgc2hvdWxkT3BlbkV4dGVybmFsVVJMc1Bv
bGljeSk7CiAgICAgICAgIGxvYWRlci5jaGFuZ2VMb2NhdGlvbihmcmFtZVJlcXVlc3QpOwogICAg
ICAgICByZXR1cm47CiAgICAgfQpAQCAtNDEwLDcgKzQyMCw3IEBAIHZvaWQgTmF2aWdhdGlvblNj
aGVkdWxlcjo6c2NoZWR1bGVMb2NhdGlvbkNoYW5nZShTZWN1cml0eU9yaWdpbiogc2VjdXJpdHlP
cmlnaW4sCiAgICAgLy8gVGhpcyBtYXkgaGFwcGVuIHdoZW4gYSBmcmFtZSBjaGFuZ2VzIHRoZSBs
b2NhdGlvbiBvZiBhbm90aGVyIGZyYW1lLgogICAgIGJvb2wgZHVyaW5nTG9hZCA9ICFsb2FkZXIu
c3RhdGVNYWNoaW5lKCkuY29tbWl0dGVkRmlyc3RSZWFsRG9jdW1lbnRMb2FkKCk7CiAKLSAgICBz
Y2hlZHVsZShzdGQ6Om1ha2VfdW5pcXVlPFNjaGVkdWxlZExvY2F0aW9uQ2hhbmdlPihzZWN1cml0
eU9yaWdpbiwgdXJsLCByZWZlcnJlciwgbG9ja0hpc3RvcnksIGxvY2tCYWNrRm9yd2FyZExpc3Qs
IGR1cmluZ0xvYWQpKTsKKyAgICBzY2hlZHVsZShzdGQ6Om1ha2VfdW5pcXVlPFNjaGVkdWxlZExv
Y2F0aW9uQ2hhbmdlPihpbml0aWF0aW5nRG9jdW1lbnQsIHNlY3VyaXR5T3JpZ2luLCB1cmwsIHJl
ZmVycmVyLCBsb2NrSGlzdG9yeSwgbG9ja0JhY2tGb3J3YXJkTGlzdCwgZHVyaW5nTG9hZCkpOwog
fQogCiB2b2lkIE5hdmlnYXRpb25TY2hlZHVsZXI6OnNjaGVkdWxlRm9ybVN1Ym1pc3Npb24oUGFz
c1JlZlB0cjxGb3JtU3VibWlzc2lvbj4gc3VibWlzc2lvbikKQEAgLTQzNiw3ICs0NDYsNyBAQCB2
b2lkIE5hdmlnYXRpb25TY2hlZHVsZXI6OnNjaGVkdWxlRm9ybVN1Ym1pc3Npb24oUGFzc1JlZlB0
cjxGb3JtU3VibWlzc2lvbj4gc3VibQogICAgIHNjaGVkdWxlKHN0ZDo6bWFrZV91bmlxdWU8U2No
ZWR1bGVkRm9ybVN1Ym1pc3Npb24+KHN1Ym1pc3Npb24sIGxvY2tCYWNrRm9yd2FyZExpc3QsIGR1
cmluZ0xvYWQpKTsKIH0KIAotdm9pZCBOYXZpZ2F0aW9uU2NoZWR1bGVyOjpzY2hlZHVsZVJlZnJl
c2goKQordm9pZCBOYXZpZ2F0aW9uU2NoZWR1bGVyOjpzY2hlZHVsZVJlZnJlc2goRG9jdW1lbnQq
IGluaXRpYXRpbmdEb2N1bWVudCkKIHsKICAgICBpZiAoIXNob3VsZFNjaGVkdWxlTmF2aWdhdGlv
bigpKQogICAgICAgICByZXR1cm47CkBAIC00NDQsNyArNDU0LDcgQEAgdm9pZCBOYXZpZ2F0aW9u
U2NoZWR1bGVyOjpzY2hlZHVsZVJlZnJlc2goKQogICAgIGlmICh1cmwuaXNFbXB0eSgpKQogICAg
ICAgICByZXR1cm47CiAKLSAgICBzY2hlZHVsZShzdGQ6Om1ha2VfdW5pcXVlPFNjaGVkdWxlZFJl
ZnJlc2g+KG1fZnJhbWUuZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKSwgdXJsLCBtX2ZyYW1l
LmxvYWRlcigpLm91dGdvaW5nUmVmZXJyZXIoKSkpOworICAgIHNjaGVkdWxlKHN0ZDo6bWFrZV91
bmlxdWU8U2NoZWR1bGVkUmVmcmVzaD4oaW5pdGlhdGluZ0RvY3VtZW50LCBtX2ZyYW1lLmRvY3Vt
ZW50KCktPnNlY3VyaXR5T3JpZ2luKCksIHVybCwgbV9mcmFtZS5sb2FkZXIoKS5vdXRnb2luZ1Jl
ZmVycmVyKCkpKTsKIH0KIAogdm9pZCBOYXZpZ2F0aW9uU2NoZWR1bGVyOjpzY2hlZHVsZUhpc3Rv
cnlOYXZpZ2F0aW9uKGludCBzdGVwcykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9OYXZpZ2F0aW9uU2NoZWR1bGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTmF2aWdhdGlv
blNjaGVkdWxlci5oCmluZGV4IDRhZTViMTAuLmRkNjFhNzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9OYXZpZ2F0aW9uU2NoZWR1bGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL05hdmlnYXRpb25TY2hlZHVsZXIuaApAQCAtMzcsNiArMzcsNyBAQAogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKK2NsYXNzIERvY3VtZW50OwogY2xhc3MgRm9ybVN1Ym1pc3Npb247CiBj
bGFzcyBGcmFtZTsKIGNsYXNzIFNjaGVkdWxlZE5hdmlnYXRpb247CkBAIC02OSwxMCArNzAsMTAg
QEAgcHVibGljOgogICAgIGJvb2wgcmVkaXJlY3RTY2hlZHVsZWREdXJpbmdMb2FkKCk7CiAgICAg
Ym9vbCBsb2NhdGlvbkNoYW5nZVBlbmRpbmcoKTsKIAotICAgIHZvaWQgc2NoZWR1bGVSZWRpcmVj
dChkb3VibGUgZGVsYXksIGNvbnN0IFVSTCYpOwotICAgIHZvaWQgc2NoZWR1bGVMb2NhdGlvbkNo
YW5nZShTZWN1cml0eU9yaWdpbiosIGNvbnN0IFVSTCYsIGNvbnN0IFN0cmluZyYgcmVmZXJyZXIs
IExvY2tIaXN0b3J5ID0gTG9ja0hpc3Rvcnk6OlllcywgTG9ja0JhY2tGb3J3YXJkTGlzdCA9IExv
Y2tCYWNrRm9yd2FyZExpc3Q6Olllcyk7CisgICAgdm9pZCBzY2hlZHVsZVJlZGlyZWN0KERvY3Vt
ZW50KiBpbml0aWF0aW5nRG9jdW1lbnQsIGRvdWJsZSBkZWxheSwgY29uc3QgVVJMJik7CisgICAg
dm9pZCBzY2hlZHVsZUxvY2F0aW9uQ2hhbmdlKERvY3VtZW50KiBpbml0aWF0aW5nRG9jdW1lbnQs
IFNlY3VyaXR5T3JpZ2luKiwgY29uc3QgVVJMJiwgY29uc3QgU3RyaW5nJiByZWZlcnJlciwgTG9j
a0hpc3RvcnkgPSBMb2NrSGlzdG9yeTo6WWVzLCBMb2NrQmFja0ZvcndhcmRMaXN0ID0gTG9ja0Jh
Y2tGb3J3YXJkTGlzdDo6WWVzKTsKICAgICB2b2lkIHNjaGVkdWxlRm9ybVN1Ym1pc3Npb24oUGFz
c1JlZlB0cjxGb3JtU3VibWlzc2lvbj4pOwotICAgIHZvaWQgc2NoZWR1bGVSZWZyZXNoKCk7Cisg
ICAgdm9pZCBzY2hlZHVsZVJlZnJlc2goRG9jdW1lbnQqIGluaXRpYXRpbmdEb2N1bWVudCk7CiAg
ICAgdm9pZCBzY2hlZHVsZUhpc3RvcnlOYXZpZ2F0aW9uKGludCBzdGVwcyk7CiAgICAgdm9pZCBz
Y2hlZHVsZVN1YnN0aXR1dGVEYXRhTG9hZChjb25zdCBVUkwmIGJhc2VVUkwsIGNvbnN0IFN1YnN0
aXR1dGVEYXRhJik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Qb2xpY3lD
aGVja2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Qb2xpY3lDaGVja2VyLmNwcAppbmRl
eCAxYmI5OWE2Li5hMjE2ZTUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUG9s
aWN5Q2hlY2tlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1BvbGljeUNoZWNrZXIu
Y3BwCkBAIC02NSw3ICs2NSw3IEBAIHZvaWQgUG9saWN5Q2hlY2tlcjo6Y2hlY2tOYXZpZ2F0aW9u
UG9saWN5KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgRG9jdW1lCiB7CiAgICAgTmF2
aWdhdGlvbkFjdGlvbiBhY3Rpb24gPSBsb2FkZXItPnRyaWdnZXJpbmdBY3Rpb24oKTsKICAgICBp
ZiAoYWN0aW9uLmlzRW1wdHkoKSkgewotICAgICAgICBhY3Rpb24gPSBOYXZpZ2F0aW9uQWN0aW9u
KHJlcXVlc3QsIE5hdmlnYXRpb25UeXBlOjpPdGhlciwgbG9hZGVyLT5zaG91bGRPcGVuRXh0ZXJu
YWxVUkxzUG9saWN5KCkpOworICAgICAgICBhY3Rpb24gPSBOYXZpZ2F0aW9uQWN0aW9uKHJlcXVl
c3QsIE5hdmlnYXRpb25UeXBlOjpPdGhlciwgbG9hZGVyLT5zaG91bGRPcGVuRXh0ZXJuYWxVUkxz
UG9saWN5VG9Qcm9wYWdhdGUoKSk7CiAgICAgICAgIGxvYWRlci0+c2V0VHJpZ2dlcmluZ0FjdGlv
bihhY3Rpb24pOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1N1
YmZyYW1lTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJmcmFtZUxvYWRlci5j
cHAKaW5kZXggYjBmZDUyZi4uN2YwY2YwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL1N1YmZyYW1lTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvU3ViZnJh
bWVMb2FkZXIuY3BwCkBAIC0yODQsNyArMjg0LDcgQEAgRnJhbWUqIFN1YmZyYW1lTG9hZGVyOjps
b2FkT3JSZWRpcmVjdFN1YmZyYW1lKEhUTUxGcmFtZU93bmVyRWxlbWVudCYgb3duZXJFbGVtZW4K
IHsKICAgICBGcmFtZSogZnJhbWUgPSBvd25lckVsZW1lbnQuY29udGVudEZyYW1lKCk7CiAgICAg
aWYgKGZyYW1lKQotICAgICAgICBmcmFtZS0+bmF2aWdhdGlvblNjaGVkdWxlcigpLnNjaGVkdWxl
TG9jYXRpb25DaGFuZ2UobV9mcmFtZS5kb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpLCB1cmws
IG1fZnJhbWUubG9hZGVyKCkub3V0Z29pbmdSZWZlcnJlcigpLCBsb2NrSGlzdG9yeSwgbG9ja0Jh
Y2tGb3J3YXJkTGlzdCk7CisgICAgICAgIGZyYW1lLT5uYXZpZ2F0aW9uU2NoZWR1bGVyKCkuc2No
ZWR1bGVMb2NhdGlvbkNoYW5nZShtX2ZyYW1lLmRvY3VtZW50KCksIG1fZnJhbWUuZG9jdW1lbnQo
KS0+c2VjdXJpdHlPcmlnaW4oKSwgdXJsLCBtX2ZyYW1lLmxvYWRlcigpLm91dGdvaW5nUmVmZXJy
ZXIoKSwgbG9ja0hpc3RvcnksIGxvY2tCYWNrRm9yd2FyZExpc3QpOwogICAgIGVsc2UKICAgICAg
ICAgZnJhbWUgPSBsb2FkU3ViZnJhbWUob3duZXJFbGVtZW50LCB1cmwsIGZyYW1lTmFtZSwgbV9m
cmFtZS5sb2FkZXIoKS5vdXRnb2luZ1JlZmVycmVyKCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUdyb3VwLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlR3JvdXAuY3BwCmluZGV4
IDc2OGY0ZjkuLjYyN2MwZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBj
YWNoZS9BcHBsaWNhdGlvbkNhY2hlR3JvdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlR3JvdXAuY3BwCkBAIC0xNzMsNyArMTczLDcgQEAg
dm9pZCBBcHBsaWNhdGlvbkNhY2hlR3JvdXA6OnNlbGVjdENhY2hlKEZyYW1lKiBmcmFtZSwgY29u
c3QgVVJMJiBwYXNzZWRNYW5pZmVzdFUKICAgICAgICAgICAgIC8vIFJlc3RhcnQgdGhlIGN1cnJl
bnQgbmF2aWdhdGlvbiBmcm9tIHRoZSB0b3Agb2YgdGhlIG5hdmlnYXRpb24gYWxnb3JpdGhtLCB1
bmRvaW5nIGFueSBjaGFuZ2VzIHRoYXQgd2VyZSBtYWRlCiAgICAgICAgICAgICAvLyBhcyBwYXJ0
IG9mIHRoZSBpbml0aWFsIGxvYWQuCiAgICAgICAgICAgICAvLyBUaGUgbmF2aWdhdGlvbiB3aWxs
IG5vdCByZXN1bHQgaW4gdGhlIHNhbWUgcmVzb3VyY2UgYmVpbmcgbG9hZGVkLCBiZWNhdXNlICJm
b3JlaWduIiBlbnRyaWVzIGFyZSBuZXZlciBwaWNrZWQgZHVyaW5nIG5hdmlnYXRpb24uCi0gICAg
ICAgICAgICBmcmFtZS0+bmF2aWdhdGlvblNjaGVkdWxlcigpLnNjaGVkdWxlTG9jYXRpb25DaGFu
Z2UoZnJhbWUtPmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCksIGRvY3VtZW50TG9hZGVyLT51
cmwoKSwgZnJhbWUtPmxvYWRlcigpLnJlZmVycmVyKCkpOworICAgICAgICAgICAgZnJhbWUtPm5h
dmlnYXRpb25TY2hlZHVsZXIoKS5zY2hlZHVsZUxvY2F0aW9uQ2hhbmdlKGZyYW1lLT5kb2N1bWVu
dCgpLCBmcmFtZS0+ZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKSwgZG9jdW1lbnRMb2FkZXIt
PnVybCgpLCBmcmFtZS0+bG9hZGVyKCkucmVmZXJyZXIoKSk7CiAgICAgICAgIH0KICAgICAgICAg
CiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGV4
dE1lbnVDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGV4dE1lbnVDb250
cm9sbGVyLmNwcAppbmRleCAzODkyZDY0Li5kMjRmYjMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0NvbnRleHRNZW51Q29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9Db250ZXh0TWVudUNvbnRyb2xsZXIuY3BwCkBAIC0xOTAsMTMgKzE5MCwxMyBAQCB2b2lk
IENvbnRleHRNZW51Q29udHJvbGxlcjo6c2hvd0NvbnRleHRNZW51KEV2ZW50KiBldmVudCkKICAg
ICBldmVudC0+c2V0RGVmYXVsdEhhbmRsZWQoKTsKIH0KIAotc3RhdGljIHZvaWQgb3Blbk5ld1dp
bmRvdyhjb25zdCBVUkwmIHVybFRvTG9hZCwgRnJhbWUqIGZyYW1lKQorc3RhdGljIHZvaWQgb3Bl
bk5ld1dpbmRvdyhjb25zdCBVUkwmIHVybFRvTG9hZCwgRnJhbWUqIGZyYW1lLCBTaG91bGRPcGVu
RXh0ZXJuYWxVUkxzUG9saWN5IHNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kpCiB7CiAgICAg
UGFnZSogb2xkUGFnZSA9IGZyYW1lLT5wYWdlKCk7CiAgICAgaWYgKCFvbGRQYWdlKQogICAgICAg
ICByZXR1cm47Ci0gICAgCi0gICAgRnJhbWVMb2FkUmVxdWVzdCByZXF1ZXN0KGZyYW1lLT5kb2N1
bWVudCgpLT5zZWN1cml0eU9yaWdpbigpLCBSZXNvdXJjZVJlcXVlc3QodXJsVG9Mb2FkLCBmcmFt
ZS0+bG9hZGVyKCkub3V0Z29pbmdSZWZlcnJlcigpKSwgTG9ja0hpc3Rvcnk6Ok5vLCBMb2NrQmFj
a0ZvcndhcmRMaXN0OjpObywgTWF5YmVTZW5kUmVmZXJyZXIsIEFsbG93TmF2aWdhdGlvblRvSW52
YWxpZFVSTDo6WWVzLCBOZXdGcmFtZU9wZW5lclBvbGljeTo6U3VwcHJlc3MpOworCisgICAgRnJh
bWVMb2FkUmVxdWVzdCByZXF1ZXN0KGZyYW1lLT5kb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigp
LCBSZXNvdXJjZVJlcXVlc3QodXJsVG9Mb2FkLCBmcmFtZS0+bG9hZGVyKCkub3V0Z29pbmdSZWZl
cnJlcigpKSwgTG9ja0hpc3Rvcnk6Ok5vLCBMb2NrQmFja0ZvcndhcmRMaXN0OjpObywgTWF5YmVT
ZW5kUmVmZXJyZXIsIEFsbG93TmF2aWdhdGlvblRvSW52YWxpZFVSTDo6WWVzLCBOZXdGcmFtZU9w
ZW5lclBvbGljeTo6U3VwcHJlc3MsIHNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kpOwogCiAg
ICAgUGFnZSogbmV3UGFnZSA9IG9sZFBhZ2UtPmNocm9tZSgpLmNyZWF0ZVdpbmRvdyhmcmFtZSwg
cmVxdWVzdCwgV2luZG93RmVhdHVyZXMoKSwgTmF2aWdhdGlvbkFjdGlvbihyZXF1ZXN0LnJlc291
cmNlUmVxdWVzdCgpKSk7CiAgICAgaWYgKCFuZXdQYWdlKQpAQCAtMjM4LDcgKzIzOCw3IEBAIHZv
aWQgQ29udGV4dE1lbnVDb250cm9sbGVyOjpjb250ZXh0TWVudUl0ZW1TZWxlY3RlZChDb250ZXh0
TWVudUl0ZW0qIGl0ZW0pCiAKICAgICBzd2l0Y2ggKGl0ZW0tPmFjdGlvbigpKSB7CiAgICAgY2Fz
ZSBDb250ZXh0TWVudUl0ZW1UYWdPcGVuTGlua0luTmV3V2luZG93OgotICAgICAgICBvcGVuTmV3
V2luZG93KG1fY29udGV4dC5oaXRUZXN0UmVzdWx0KCkuYWJzb2x1dGVMaW5rVVJMKCksIGZyYW1l
KTsKKyAgICAgICAgb3Blbk5ld1dpbmRvdyhtX2NvbnRleHQuaGl0VGVzdFJlc3VsdCgpLmFic29s
dXRlTGlua1VSTCgpLCBmcmFtZSwgU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeTo6U2hvdWxk
QWxsb3cpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ0Rvd25s
b2FkTGlua1RvRGlzazoKICAgICAgICAgLy8gRklYTUU6IFNvbWUgZGF5IHdlIHNob3VsZCBiZSBh
YmxlIHRvIGRvIHRoaXMgZnJvbSB3aXRoaW4gV2ViQ29yZS4gKEJ1ZyAxMTc3MDkpCkBAIC0yNDgs
NyArMjQ4LDcgQEAgdm9pZCBDb250ZXh0TWVudUNvbnRyb2xsZXI6OmNvbnRleHRNZW51SXRlbVNl
bGVjdGVkKENvbnRleHRNZW51SXRlbSogaXRlbSkKICAgICAgICAgZnJhbWUtPmVkaXRvcigpLmNv
cHlVUkwobV9jb250ZXh0LmhpdFRlc3RSZXN1bHQoKS5hYnNvbHV0ZUxpbmtVUkwoKSwgbV9jb250
ZXh0LmhpdFRlc3RSZXN1bHQoKS50ZXh0Q29udGVudCgpKTsKICAgICAgICAgYnJlYWs7CiAgICAg
Y2FzZSBDb250ZXh0TWVudUl0ZW1UYWdPcGVuSW1hZ2VJbk5ld1dpbmRvdzoKLSAgICAgICAgb3Bl
bk5ld1dpbmRvdyhtX2NvbnRleHQuaGl0VGVzdFJlc3VsdCgpLmFic29sdXRlSW1hZ2VVUkwoKSwg
ZnJhbWUpOworICAgICAgICBvcGVuTmV3V2luZG93KG1fY29udGV4dC5oaXRUZXN0UmVzdWx0KCku
YWJzb2x1dGVJbWFnZVVSTCgpLCBmcmFtZSwgU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeTo6
U2hvdWxkTm90QWxsb3cpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIENvbnRleHRNZW51SXRl
bVRhZ0Rvd25sb2FkSW1hZ2VUb0Rpc2s6CiAgICAgICAgIC8vIEZJWE1FOiBTb21lIGRheSB3ZSBz
aG91bGQgYmUgYWJsZSB0byBkbyB0aGlzIGZyb20gd2l0aGluIFdlYkNvcmUuIChCdWcgMTE3NzA5
KQpAQCAtMjY1LDcgKzI2NSw3IEBAIHZvaWQgQ29udGV4dE1lbnVDb250cm9sbGVyOjpjb250ZXh0
TWVudUl0ZW1TZWxlY3RlZChDb250ZXh0TWVudUl0ZW0qIGl0ZW0pCiAgICAgICAgIGJyZWFrOwog
I2VuZGlmCiAgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdPcGVuTWVkaWFJbk5ld1dpbmRvdzoK
LSAgICAgICAgb3Blbk5ld1dpbmRvdyhtX2NvbnRleHQuaGl0VGVzdFJlc3VsdCgpLmFic29sdXRl
TWVkaWFVUkwoKSwgZnJhbWUpOworICAgICAgICBvcGVuTmV3V2luZG93KG1fY29udGV4dC5oaXRU
ZXN0UmVzdWx0KCkuYWJzb2x1dGVNZWRpYVVSTCgpLCBmcmFtZSwgU2hvdWxkT3BlbkV4dGVybmFs
VVJMc1BvbGljeTo6U2hvdWxkTm90QWxsb3cpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIENv
bnRleHRNZW51SXRlbVRhZ0Rvd25sb2FkTWVkaWFUb0Rpc2s6CiAgICAgICAgIC8vIEZJWE1FOiBT
b21lIGRheSB3ZSBzaG91bGQgYmUgYWJsZSB0byBkbyB0aGlzIGZyb20gd2l0aGluIFdlYkNvcmUu
IChCdWcgMTE3NzA5KQpAQCAtMjk1LDkgKzI5NSw5IEBAIHZvaWQgQ29udGV4dE1lbnVDb250cm9s
bGVyOjpjb250ZXh0TWVudUl0ZW1TZWxlY3RlZChDb250ZXh0TWVudUl0ZW0qIGl0ZW0pCiAgICAg
Y2FzZSBDb250ZXh0TWVudUl0ZW1UYWdPcGVuRnJhbWVJbk5ld1dpbmRvdzogewogICAgICAgICBE
b2N1bWVudExvYWRlciogbG9hZGVyID0gZnJhbWUtPmxvYWRlcigpLmRvY3VtZW50TG9hZGVyKCk7
CiAgICAgICAgIGlmICghbG9hZGVyLT51bnJlYWNoYWJsZVVSTCgpLmlzRW1wdHkoKSkKLSAgICAg
ICAgICAgIG9wZW5OZXdXaW5kb3cobG9hZGVyLT51bnJlYWNoYWJsZVVSTCgpLCBmcmFtZSk7Cisg
ICAgICAgICAgICBvcGVuTmV3V2luZG93KGxvYWRlci0+dW5yZWFjaGFibGVVUkwoKSwgZnJhbWUs
IFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3k6OlNob3VsZE5vdEFsbG93KTsKICAgICAgICAg
ZWxzZQotICAgICAgICAgICAgb3Blbk5ld1dpbmRvdyhsb2FkZXItPnVybCgpLCBmcmFtZSk7Cisg
ICAgICAgICAgICBvcGVuTmV3V2luZG93KGxvYWRlci0+dXJsKCksIGZyYW1lLCBTaG91bGRPcGVu
RXh0ZXJuYWxVUkxzUG9saWN5OjpTaG91bGROb3RBbGxvdyk7CiAgICAgICAgIGJyZWFrOwogICAg
IH0KICAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ0NvcHk6CkBAIC00MDEsMTIgKzQwMSwxMiBA
QCB2b2lkIENvbnRleHRNZW51Q29udHJvbGxlcjo6Y29udGV4dE1lbnVJdGVtU2VsZWN0ZWQoQ29u
dGV4dE1lbnVJdGVtKiBpdGVtKQogICAgICAgICBicmVhazsKICAgICBjYXNlIENvbnRleHRNZW51
SXRlbVRhZ09wZW5MaW5rOgogICAgICAgICBpZiAoRnJhbWUqIHRhcmdldEZyYW1lID0gbV9jb250
ZXh0LmhpdFRlc3RSZXN1bHQoKS50YXJnZXRGcmFtZSgpKQotICAgICAgICAgICAgdGFyZ2V0RnJh
bWUtPmxvYWRlcigpLmxvYWRGcmFtZVJlcXVlc3QoRnJhbWVMb2FkUmVxdWVzdChmcmFtZS0+ZG9j
dW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKSwgUmVzb3VyY2VSZXF1ZXN0KG1fY29udGV4dC5oaXRU
ZXN0UmVzdWx0KCkuYWJzb2x1dGVMaW5rVVJMKCksIGZyYW1lLT5sb2FkZXIoKS5vdXRnb2luZ1Jl
ZmVycmVyKCkpLCBMb2NrSGlzdG9yeTo6Tm8sIExvY2tCYWNrRm9yd2FyZExpc3Q6Ok5vLCBNYXli
ZVNlbmRSZWZlcnJlciwgQWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJMOjpZZXMsIE5ld0ZyYW1l
T3BlbmVyUG9saWN5OjpTdXBwcmVzcyksIG51bGxwdHIsIG51bGxwdHIpOworICAgICAgICAgICAg
dGFyZ2V0RnJhbWUtPmxvYWRlcigpLmxvYWRGcmFtZVJlcXVlc3QoRnJhbWVMb2FkUmVxdWVzdChm
cmFtZS0+ZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKSwgUmVzb3VyY2VSZXF1ZXN0KG1fY29u
dGV4dC5oaXRUZXN0UmVzdWx0KCkuYWJzb2x1dGVMaW5rVVJMKCksIGZyYW1lLT5sb2FkZXIoKS5v
dXRnb2luZ1JlZmVycmVyKCkpLCBMb2NrSGlzdG9yeTo6Tm8sIExvY2tCYWNrRm9yd2FyZExpc3Q6
Ok5vLCBNYXliZVNlbmRSZWZlcnJlciwgQWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJMOjpZZXMs
IE5ld0ZyYW1lT3BlbmVyUG9saWN5OjpTdXBwcmVzcywgdGFyZ2V0RnJhbWUtPmlzTWFpbkZyYW1l
KCkgPyBTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5OjpTaG91bGRBbGxvdyA6IFNob3VsZE9w
ZW5FeHRlcm5hbFVSTHNQb2xpY3k6OlNob3VsZE5vdEFsbG93KSwgbnVsbHB0ciwgbnVsbHB0cik7
CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIG9wZW5OZXdXaW5kb3cobV9jb250ZXh0LmhpdFRl
c3RSZXN1bHQoKS5hYnNvbHV0ZUxpbmtVUkwoKSwgZnJhbWUpOworICAgICAgICAgICAgb3Blbk5l
d1dpbmRvdyhtX2NvbnRleHQuaGl0VGVzdFJlc3VsdCgpLmFic29sdXRlTGlua1VSTCgpLCBmcmFt
ZSwgU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeTo6U2hvdWxkQWxsb3cpOwogICAgICAgICBi
cmVhazsKICAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ09wZW5MaW5rSW5UaGlzV2luZG93Ogot
ICAgICAgICBmcmFtZS0+bG9hZGVyKCkubG9hZEZyYW1lUmVxdWVzdChGcmFtZUxvYWRSZXF1ZXN0
KGZyYW1lLT5kb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpLCBSZXNvdXJjZVJlcXVlc3QobV9j
b250ZXh0LmhpdFRlc3RSZXN1bHQoKS5hYnNvbHV0ZUxpbmtVUkwoKSwgZnJhbWUtPmxvYWRlcigp
Lm91dGdvaW5nUmVmZXJyZXIoKSksIExvY2tIaXN0b3J5OjpObywgTG9ja0JhY2tGb3J3YXJkTGlz
dDo6Tm8sIE1heWJlU2VuZFJlZmVycmVyLCBBbGxvd05hdmlnYXRpb25Ub0ludmFsaWRVUkw6Olll
cywgTmV3RnJhbWVPcGVuZXJQb2xpY3k6OlN1cHByZXNzKSwgbnVsbHB0ciwgbnVsbHB0cik7Cisg
ICAgICAgIGZyYW1lLT5sb2FkZXIoKS5sb2FkRnJhbWVSZXF1ZXN0KEZyYW1lTG9hZFJlcXVlc3Qo
ZnJhbWUtPmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCksIFJlc291cmNlUmVxdWVzdChtX2Nv
bnRleHQuaGl0VGVzdFJlc3VsdCgpLmFic29sdXRlTGlua1VSTCgpLCBmcmFtZS0+bG9hZGVyKCku
b3V0Z29pbmdSZWZlcnJlcigpKSwgTG9ja0hpc3Rvcnk6Ok5vLCBMb2NrQmFja0ZvcndhcmRMaXN0
OjpObywgTWF5YmVTZW5kUmVmZXJyZXIsIEFsbG93TmF2aWdhdGlvblRvSW52YWxpZFVSTDo6WWVz
LCBOZXdGcmFtZU9wZW5lclBvbGljeTo6U3VwcHJlc3MsIFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQ
b2xpY3k6OlNob3VsZEFsbG93KSwgbnVsbHB0ciwgbnVsbHB0cik7CiAgICAgICAgIGJyZWFrOwog
ICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnQm9sZDoKICAgICAgICAgZnJhbWUtPmVkaXRvcigp
LmNvbW1hbmQoIlRvZ2dsZUJvbGQiKS5leGVjdXRlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0RPTVdpbmRvdy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5j
cHAKaW5kZXggYjJhN2Q3Yy4uMzYzOWQ2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9ET01XaW5kb3cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcApA
QCAtMTk5Miw3ICsxOTkyLDcgQEAgdm9pZCBET01XaW5kb3c6OnNldExvY2F0aW9uKGNvbnN0IFN0
cmluZyYgdXJsU3RyaW5nLCBET01XaW5kb3cmIGFjdGl2ZVdpbmRvdywgRE8KICAgICAvLyBXZSB3
YW50IGEgbmV3IGhpc3RvcnkgaXRlbSBpZiB3ZSBhcmUgcHJvY2Vzc2luZyBhIHVzZXIgZ2VzdHVy
ZS4KICAgICBMb2NrSGlzdG9yeSBsb2NrSGlzdG9yeSA9IChsb2NraW5nICE9IExvY2tIaXN0b3J5
QmFzZWRPbkdlc3R1cmVTdGF0ZSB8fCAhU2NyaXB0Q29udHJvbGxlcjo6cHJvY2Vzc2luZ1VzZXJH
ZXN0dXJlKCkpID8gTG9ja0hpc3Rvcnk6OlllcyA6IExvY2tIaXN0b3J5OjpObzsKICAgICBMb2Nr
QmFja0ZvcndhcmRMaXN0IGxvY2tCYWNrRm9yd2FyZExpc3QgPSAobG9ja2luZyAhPSBMb2NrSGlz
dG9yeUJhc2VkT25HZXN0dXJlU3RhdGUpID8gTG9ja0JhY2tGb3J3YXJkTGlzdDo6WWVzIDogTG9j
a0JhY2tGb3J3YXJkTGlzdDo6Tm87Ci0gICAgbV9mcmFtZS0+bmF2aWdhdGlvblNjaGVkdWxlcigp
LnNjaGVkdWxlTG9jYXRpb25DaGFuZ2UoYWN0aXZlRG9jdW1lbnQtPnNlY3VyaXR5T3JpZ2luKCks
CisgICAgbV9mcmFtZS0+bmF2aWdhdGlvblNjaGVkdWxlcigpLnNjaGVkdWxlTG9jYXRpb25DaGFu
Z2UoYWN0aXZlRG9jdW1lbnQsIGFjdGl2ZURvY3VtZW50LT5zZWN1cml0eU9yaWdpbigpLAogICAg
ICAgICAvLyBGSVhNRTogV2hhdCBpZiBhY3RpdmVEb2N1bWVudCgpLT5mcmFtZSgpIGlzIDA/CiAg
ICAgICAgIGNvbXBsZXRlZFVSTCwgYWN0aXZlRG9jdW1lbnQtPmZyYW1lKCktPmxvYWRlcigpLm91
dGdvaW5nUmVmZXJyZXIoKSwKICAgICAgICAgbG9ja0hpc3RvcnksIGxvY2tCYWNrRm9yd2FyZExp
c3QpOwpAQCAtMjA3OCw2ICsyMDc4LDEwIEBAIFJlZlB0cjxGcmFtZT4gRE9NV2luZG93OjpjcmVh
dGVXaW5kb3coY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcsIGNvbnN0IEF0b21pY1N0cmluCiAgICAg
aWYgKCFhY3RpdmVGcmFtZSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKKyAgICBEb2N1bWVu
dCogYWN0aXZlRG9jdW1lbnQgPSBhY3RpdmVXaW5kb3cuZG9jdW1lbnQoKTsKKyAgICBpZiAoIWFj
dGl2ZURvY3VtZW50KQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKwogICAgIFVSTCBjb21wbGV0
ZWRVUkwgPSB1cmxTdHJpbmcuaXNFbXB0eSgpID8gVVJMKFBhcnNlZFVSTFN0cmluZywgZW1wdHlT
dHJpbmcoKSkgOiBmaXJzdEZyYW1lLmRvY3VtZW50KCktPmNvbXBsZXRlVVJMKHVybFN0cmluZyk7
CiAgICAgaWYgKCFjb21wbGV0ZWRVUkwuaXNFbXB0eSgpICYmICFjb21wbGV0ZWRVUkwuaXNWYWxp
ZCgpKSB7CiAgICAgICAgIC8vIERvbid0IGV4cG9zZSBjbGllbnQgY29kZSB0byBpbnZhbGlkIFVS
THMuCkBAIC0yMDkwLDcgKzIwOTQsNyBAQCBSZWZQdHI8RnJhbWU+IERPTVdpbmRvdzo6Y3JlYXRl
V2luZG93KGNvbnN0IFN0cmluZyYgdXJsU3RyaW5nLCBjb25zdCBBdG9taWNTdHJpbgogCiAgICAg
UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QoY29tcGxldGVkVVJMLCByZWZlcnJlcik7CiAgICAgRnJh
bWVMb2FkZXI6OmFkZEhUVFBPcmlnaW5JZk5lZWRlZChyZXF1ZXN0LCBmaXJzdEZyYW1lLmxvYWRl
cigpLm91dGdvaW5nT3JpZ2luKCkpOwotICAgIEZyYW1lTG9hZFJlcXVlc3QgZnJhbWVSZXF1ZXN0
KGFjdGl2ZVdpbmRvdy5kb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpLCByZXF1ZXN0LCBmcmFt
ZU5hbWUsIExvY2tIaXN0b3J5OjpObywgTG9ja0JhY2tGb3J3YXJkTGlzdDo6Tm8sIE1heWJlU2Vu
ZFJlZmVycmVyLCBBbGxvd05hdmlnYXRpb25Ub0ludmFsaWRVUkw6OlllcywgTmV3RnJhbWVPcGVu
ZXJQb2xpY3k6OkFsbG93LCBSZXBsYWNlRG9jdW1lbnRJZkphdmFTY3JpcHRVUkwpOworICAgIEZy
YW1lTG9hZFJlcXVlc3QgZnJhbWVSZXF1ZXN0KGFjdGl2ZURvY3VtZW50LT5zZWN1cml0eU9yaWdp
bigpLCByZXF1ZXN0LCBmcmFtZU5hbWUsIExvY2tIaXN0b3J5OjpObywgTG9ja0JhY2tGb3J3YXJk
TGlzdDo6Tm8sIE1heWJlU2VuZFJlZmVycmVyLCBBbGxvd05hdmlnYXRpb25Ub0ludmFsaWRVUkw6
OlllcywgTmV3RnJhbWVPcGVuZXJQb2xpY3k6OkFsbG93LCBSZXBsYWNlRG9jdW1lbnRJZkphdmFT
Y3JpcHRVUkwsIGFjdGl2ZURvY3VtZW50LT5zaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5VG9Q
cm9wYWdhdGUoKSk7CiAKICAgICAvLyBXZSBwYXNzIHRoZSBvcGVuZXIgZnJhbWUgZm9yIHRoZSBs
b29rdXBGcmFtZSBpbiBjYXNlIHRoZSBhY3RpdmUgZnJhbWUgaXMgZGlmZmVyZW50IGZyb20KICAg
ICAvLyB0aGUgb3BlbmVyIGZyYW1lLCBhbmQgdGhlIG5hbWUgcmVmZXJlbmNlcyBhIGZyYW1lIHJl
bGF0aXZlIHRvIHRoZSBvcGVuZXIgZnJhbWUuCkBAIC0yMTEwLDExICsyMTE0LDExIEBAIFJlZlB0
cjxGcmFtZT4gRE9NV2luZG93OjpjcmVhdGVXaW5kb3coY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcs
IGNvbnN0IEF0b21pY1N0cmluCiAKICAgICBpZiAoY3JlYXRlZCkgewogICAgICAgICBSZXNvdXJj
ZVJlcXVlc3QgcmVzb3VyY2VSZXF1ZXN0KGNvbXBsZXRlZFVSTCwgcmVmZXJyZXIsIFVzZVByb3Rv
Y29sQ2FjaGVQb2xpY3kpOwotICAgICAgICBGcmFtZUxvYWRSZXF1ZXN0IGZyYW1lUmVxdWVzdChh
Y3RpdmVXaW5kb3cuZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKSwgcmVzb3VyY2VSZXF1ZXN0
LCBMb2NrSGlzdG9yeTo6Tm8sIExvY2tCYWNrRm9yd2FyZExpc3Q6Ok5vLCBNYXliZVNlbmRSZWZl
cnJlciwgQWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJMOjpZZXMsIE5ld0ZyYW1lT3BlbmVyUG9s
aWN5OjpBbGxvdyk7CisgICAgICAgIEZyYW1lTG9hZFJlcXVlc3QgZnJhbWVSZXF1ZXN0KGFjdGl2
ZVdpbmRvdy5kb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpLCByZXNvdXJjZVJlcXVlc3QsIExv
Y2tIaXN0b3J5OjpObywgTG9ja0JhY2tGb3J3YXJkTGlzdDo6Tm8sIE1heWJlU2VuZFJlZmVycmVy
LCBBbGxvd05hdmlnYXRpb25Ub0ludmFsaWRVUkw6OlllcywgTmV3RnJhbWVPcGVuZXJQb2xpY3k6
OkFsbG93LCBhY3RpdmVEb2N1bWVudC0+c2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeVRvUHJv
cGFnYXRlKCkpOwogICAgICAgICBuZXdGcmFtZS0+bG9hZGVyKCkuY2hhbmdlTG9jYXRpb24oZnJh
bWVSZXF1ZXN0KTsKICAgICB9IGVsc2UgaWYgKCF1cmxTdHJpbmcuaXNFbXB0eSgpKSB7CiAgICAg
ICAgIExvY2tIaXN0b3J5IGxvY2tIaXN0b3J5ID0gU2NyaXB0Q29udHJvbGxlcjo6cHJvY2Vzc2lu
Z1VzZXJHZXN0dXJlKCkgPyBMb2NrSGlzdG9yeTo6Tm8gOiBMb2NrSGlzdG9yeTo6WWVzOwotICAg
ICAgICBuZXdGcmFtZS0+bmF2aWdhdGlvblNjaGVkdWxlcigpLnNjaGVkdWxlTG9jYXRpb25DaGFu
Z2UoYWN0aXZlV2luZG93LmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCksIGNvbXBsZXRlZFVS
TCwgcmVmZXJyZXIsIGxvY2tIaXN0b3J5LCBMb2NrQmFja0ZvcndhcmRMaXN0OjpObyk7CisgICAg
ICAgIG5ld0ZyYW1lLT5uYXZpZ2F0aW9uU2NoZWR1bGVyKCkuc2NoZWR1bGVMb2NhdGlvbkNoYW5n
ZShhY3RpdmVXaW5kb3cuZG9jdW1lbnQoKSwgYWN0aXZlV2luZG93LmRvY3VtZW50KCktPnNlY3Vy
aXR5T3JpZ2luKCksIGNvbXBsZXRlZFVSTCwgcmVmZXJyZXIsIGxvY2tIaXN0b3J5LCBMb2NrQmFj
a0ZvcndhcmRMaXN0OjpObyk7CiAgICAgfQogCiAgICAgLy8gTmF2aWdhdGluZyB0aGUgbmV3IGZy
YW1lIGNvdWxkIHJlc3VsdCBpbiBpdCBiZWluZyBkZXRhY2hlZCBmcm9tIGl0cyBwYWdlIGJ5IGEg
bmF2aWdhdGlvbiBwb2xpY3kgZGVsZWdhdGUuCkBAIC0yMTI5LDkgKzIxMzMsMTEgQEAgUGFzc1Jl
ZlB0cjxET01XaW5kb3c+IERPTVdpbmRvdzo6b3Blbihjb25zdCBTdHJpbmcmIHVybFN0cmluZywg
Y29uc3QgQXRvbWljU3RyaW4KIHsKICAgICBpZiAoIWlzQ3VycmVudGx5RGlzcGxheWVkSW5GcmFt
ZSgpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKKwogICAgIERvY3VtZW50KiBhY3RpdmVEb2N1
bWVudCA9IGFjdGl2ZVdpbmRvdy5kb2N1bWVudCgpOwogICAgIGlmICghYWN0aXZlRG9jdW1lbnQp
CiAgICAgICAgIHJldHVybiBudWxscHRyOworCiAgICAgRnJhbWUqIGZpcnN0RnJhbWUgPSBmaXJz
dFdpbmRvdy5mcmFtZSgpOwogICAgIGlmICghZmlyc3RGcmFtZSkKICAgICAgICAgcmV0dXJuIG51
bGxwdHI7CkBAIC0yMTgzLDcgKzIxODksNyBAQCBQYXNzUmVmUHRyPERPTVdpbmRvdz4gRE9NV2lu
ZG93OjpvcGVuKGNvbnN0IFN0cmluZyYgdXJsU3RyaW5nLCBjb25zdCBBdG9taWNTdHJpbgogICAg
ICAgICAvLyBGb3Igd2hhdGV2ZXIgcmVhc29uLCBGaXJlZm94IHVzZXMgdGhlIGZpcnN0IHdpbmRv
dyByYXRoZXIgdGhhbiB0aGUgYWN0aXZlIHdpbmRvdyB0bwogICAgICAgICAvLyBkZXRlcm1pbmUg
dGhlIG91dGdvaW5nIHJlZmVycmVyLiBXZSByZXBsaWNhdGUgdGhhdCBiZWhhdmlvciBoZXJlLgog
ICAgICAgICBMb2NrSGlzdG9yeSBsb2NrSGlzdG9yeSA9IFNjcmlwdENvbnRyb2xsZXI6OnByb2Nl
c3NpbmdVc2VyR2VzdHVyZSgpID8gTG9ja0hpc3Rvcnk6Ok5vIDogTG9ja0hpc3Rvcnk6OlllczsK
LSAgICAgICAgdGFyZ2V0RnJhbWUtPm5hdmlnYXRpb25TY2hlZHVsZXIoKS5zY2hlZHVsZUxvY2F0
aW9uQ2hhbmdlKGFjdGl2ZURvY3VtZW50LT5zZWN1cml0eU9yaWdpbigpLCBjb21wbGV0ZWRVUkws
IGZpcnN0RnJhbWUtPmxvYWRlcigpLm91dGdvaW5nUmVmZXJyZXIoKSwKKyAgICAgICAgdGFyZ2V0
RnJhbWUtPm5hdmlnYXRpb25TY2hlZHVsZXIoKS5zY2hlZHVsZUxvY2F0aW9uQ2hhbmdlKGFjdGl2
ZURvY3VtZW50LCBhY3RpdmVEb2N1bWVudC0+c2VjdXJpdHlPcmlnaW4oKSwgY29tcGxldGVkVVJM
LCBmaXJzdEZyYW1lLT5sb2FkZXIoKS5vdXRnb2luZ1JlZmVycmVyKCksCiAgICAgICAgICAgICBs
b2NrSGlzdG9yeSwgTG9ja0JhY2tGb3J3YXJkTGlzdDo6Tm8pOwogICAgICAgICByZXR1cm4gdGFy
Z2V0RnJhbWUtPmRvY3VtZW50KCktPmRvbVdpbmRvdygpOwogICAgIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9EcmFnQ29udHJvbGxlci5jcHAKaW5kZXggMjgzZDIzYS4uMWUzZjQzYyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9EcmFnQ29udHJvbGxlci5jcHAKQEAgLTIxNiw2ICsyMTYsMTEgQEAgRHJhZ09wZXJh
dGlvbiBEcmFnQ29udHJvbGxlcjo6ZHJhZ1VwZGF0ZWQoRHJhZ0RhdGEmIGRyYWdEYXRhKQogYm9v
bCBEcmFnQ29udHJvbGxlcjo6cGVyZm9ybURyYWdPcGVyYXRpb24oRHJhZ0RhdGEmIGRyYWdEYXRh
KQogewogICAgIG1fZG9jdW1lbnRVbmRlck1vdXNlID0gbV9wYWdlLm1haW5GcmFtZSgpLmRvY3Vt
ZW50QXRQb2ludChkcmFnRGF0YS5jbGllbnRQb3NpdGlvbigpKTsKKworICAgIFNob3VsZE9wZW5F
eHRlcm5hbFVSTHNQb2xpY3kgc2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSA9IFNob3VsZE9w
ZW5FeHRlcm5hbFVSTHNQb2xpY3k6OlNob3VsZE5vdEFsbG93OworICAgIGlmIChtX2RvY3VtZW50
VW5kZXJNb3VzZSkKKyAgICAgICAgc2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSA9IG1fZG9j
dW1lbnRVbmRlck1vdXNlLT5zaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5VG9Qcm9wYWdhdGUo
KTsKKwogICAgIGlmICgobV9kcmFnRGVzdGluYXRpb25BY3Rpb24gJiBEcmFnRGVzdGluYXRpb25B
Y3Rpb25ESFRNTCkgJiYgbV9kb2N1bWVudElzSGFuZGxpbmdEcmFnKSB7CiAgICAgICAgIG1fY2xp
ZW50LndpbGxQZXJmb3JtRHJhZ0Rlc3RpbmF0aW9uQWN0aW9uKERyYWdEZXN0aW5hdGlvbkFjdGlv
bkRIVE1MLCBkcmFnRGF0YSk7CiAgICAgICAgIFJlZjxNYWluRnJhbWU+IG1haW5GcmFtZShtX3Bh
Z2UubWFpbkZyYW1lKCkpOwpAQCAtMjQ1LDcgKzI1MCw3IEBAIGJvb2wgRHJhZ0NvbnRyb2xsZXI6
OnBlcmZvcm1EcmFnT3BlcmF0aW9uKERyYWdEYXRhJiBkcmFnRGF0YSkKICAgICAgICAgcmV0dXJu
IGZhbHNlOwogCiAgICAgbV9jbGllbnQud2lsbFBlcmZvcm1EcmFnRGVzdGluYXRpb25BY3Rpb24o
RHJhZ0Rlc3RpbmF0aW9uQWN0aW9uTG9hZCwgZHJhZ0RhdGEpOwotICAgIG1fcGFnZS5tYWluRnJh
bWUoKS5sb2FkZXIoKS5sb2FkKEZyYW1lTG9hZFJlcXVlc3QoJm1fcGFnZS5tYWluRnJhbWUoKSwg
UmVzb3VyY2VSZXF1ZXN0KGRyYWdEYXRhLmFzVVJMKCkpKSk7CisgICAgbV9wYWdlLm1haW5GcmFt
ZSgpLmxvYWRlcigpLmxvYWQoRnJhbWVMb2FkUmVxdWVzdCgmbV9wYWdlLm1haW5GcmFtZSgpLCBS
ZXNvdXJjZVJlcXVlc3QoZHJhZ0RhdGEuYXNVUkwoKSksIHNob3VsZE9wZW5FeHRlcm5hbFVSTHNQ
b2xpY3kpKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9Mb2NhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0xvY2F0aW9uLmNwcApp
bmRleCA0NGY1MjIwLi40MzE3ZDgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0xv
Y2F0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0xvY2F0aW9uLmNwcApAQCAtMjU4
LDcgKzI1OCw3IEBAIHZvaWQgTG9jYXRpb246OnJlbG9hZChET01XaW5kb3cmIGFjdGl2ZVdpbmRv
dykKICAgICB9CiAgICAgaWYgKHByb3RvY29sSXNKYXZhU2NyaXB0KG1fZnJhbWUtPmRvY3VtZW50
KCktPnVybCgpKSkKICAgICAgICAgcmV0dXJuOwotICAgIG1fZnJhbWUtPm5hdmlnYXRpb25TY2hl
ZHVsZXIoKS5zY2hlZHVsZVJlZnJlc2goKTsKKyAgICBtX2ZyYW1lLT5uYXZpZ2F0aW9uU2NoZWR1
bGVyKCkuc2NoZWR1bGVSZWZyZXNoKGFjdGl2ZVdpbmRvdy5kb2N1bWVudCgpKTsKIH0KIAogdm9p
ZCBMb2NhdGlvbjo6c2V0TG9jYXRpb24oY29uc3QgU3RyaW5nJiB1cmwsIERPTVdpbmRvdyYgYWN0
aXZlV2luZG93LCBET01XaW5kb3cmIGZpcnN0V2luZG93KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVwbGF5L1JlcGxheUlucHV0RGlzcGF0Y2hNZXRob2RzLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3JlcGxheS9SZXBsYXlJbnB1dERpc3BhdGNoTWV0aG9kcy5jcHAKaW5kZXggNjQ1NGE0OC4u
ODQ3NTJhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVwbGF5L1JlcGxheUlucHV0RGlz
cGF0Y2hNZXRob2RzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZXBsYXkvUmVwbGF5SW5wdXRE
aXNwYXRjaE1ldGhvZHMuY3BwCkBAIC01MCw3ICs1MCw4IEBAIHZvaWQgRW5kU2VnbWVudFNlbnRp
bmVsOjpkaXNwYXRjaChSZXBsYXlDb250cm9sbGVyJikKIC8vIE5hdmlnYXRpb24gaW5wdXRzLgog
dm9pZCBJbml0aWFsTmF2aWdhdGlvbjo6ZGlzcGF0Y2goUmVwbGF5Q29udHJvbGxlciYgY29udHJv
bGxlcikKIHsKLSAgICBjb250cm9sbGVyLnBhZ2UoKS5tYWluRnJhbWUoKS5uYXZpZ2F0aW9uU2No
ZWR1bGVyKCkuc2NoZWR1bGVMb2NhdGlvbkNoYW5nZShtX3NlY3VyaXR5T3JpZ2luLmdldCgpLCBt
X3VybCwgbV9yZWZlcnJlcik7CisgICAgRnJhbWUmIGZyYW1lID0gY29udHJvbGxlci5wYWdlKCku
bWFpbkZyYW1lKCk7CisgICAgZnJhbWUubmF2aWdhdGlvblNjaGVkdWxlcigpLnNjaGVkdWxlTG9j
YXRpb25DaGFuZ2UoZnJhbWUuZG9jdW1lbnQoKSwgbV9zZWN1cml0eU9yaWdpbi5nZXQoKSwgbV91
cmwsIG1fcmVmZXJyZXIpOwogfQogCiB2b2lkIEhhbmRsZUtleVByZXNzOjpkaXNwYXRjaChSZXBs
YXlDb250cm9sbGVyJiBjb250cm9sbGVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0FFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBRWxlbWVudC5jcHAKaW5k
ZXggMWEyODQ2Yi4uZTVjZTUxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FF
bGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQUVsZW1lbnQuY3BwCkBAIC0x
NDUsNyArMTQ1LDcgQEAgdm9pZCBTVkdBRWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVu
dCogZXZlbnQpCiAgICAgICAgICAgICBGcmFtZSogZnJhbWUgPSBkb2N1bWVudCgpLmZyYW1lKCk7
CiAgICAgICAgICAgICBpZiAoIWZyYW1lKQogICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAg
ICAgICAgIGZyYW1lLT5sb2FkZXIoKS51cmxTZWxlY3RlZChkb2N1bWVudCgpLmNvbXBsZXRlVVJM
KHVybCksIHRhcmdldCwgZXZlbnQsIExvY2tIaXN0b3J5OjpObywgTG9ja0JhY2tGb3J3YXJkTGlz
dDo6Tm8sIE1heWJlU2VuZFJlZmVycmVyKTsKKyAgICAgICAgICAgIGZyYW1lLT5sb2FkZXIoKS51
cmxTZWxlY3RlZChkb2N1bWVudCgpLmNvbXBsZXRlVVJMKHVybCksIHRhcmdldCwgZXZlbnQsIExv
Y2tIaXN0b3J5OjpObywgTG9ja0JhY2tGb3J3YXJkTGlzdDo6Tm8sIE1heWJlU2VuZFJlZmVycmVy
LCBkb2N1bWVudCgpLnNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3lUb1Byb3BhZ2F0ZSgpKTsK
ICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvaW9zL1dlYlZpZXcvV2ViUERGVmlld1BsYWNlaG9sZGVyLm1tIGIvU291cmNlL1dl
YktpdC9pb3MvV2ViVmlldy9XZWJQREZWaWV3UGxhY2Vob2xkZXIubW0KaW5kZXggYTgwNTcxMC4u
M2RhNDQyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9pb3MvV2ViVmlldy9XZWJQREZWaWV3
UGxhY2Vob2xkZXIubW0KKysrIGIvU291cmNlL1dlYktpdC9pb3MvV2ViVmlldy9XZWJQREZWaWV3
UGxhY2Vob2xkZXIubW0KQEAgLTQ3NSw3ICs0NzUsNyBAQCBzdGF0aWMgY29uc3QgZmxvYXQgUEFH
RV9IRUlHSFRfSU5TRVQgPSA0LjBmICogMi4wZjsKIAogICAgIC8vIENhbGwgdG8gdGhlIGZyYW1l
IGxvYWRlciBiZWNhdXNlIHRoaXMgaXMgd2hlcmUgb3VyIHNlY3VyaXR5IGNoZWNrcyBhcmUgbWFk
ZS4KICAgICBGcmFtZSogZnJhbWUgPSBjb3JlKFtfZGF0YVNvdXJjZSB3ZWJGcmFtZV0pOwotICAg
IGZyYW1lLT5sb2FkZXIoKS5sb2FkRnJhbWVSZXF1ZXN0KEZyYW1lTG9hZFJlcXVlc3QoZnJhbWUt
PmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCksIFJlc291cmNlUmVxdWVzdChVUkwpLCBMb2Nr
SGlzdG9yeTo6Tm8sIExvY2tCYWNrRm9yd2FyZExpc3Q6Ok5vLCBNYXliZVNlbmRSZWZlcnJlciwg
QWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJMOjpZZXMsIE5ld0ZyYW1lT3BlbmVyUG9saWN5OjpB
bGxvdyksIGV2ZW50LmdldCgpLCBudWxscHRyKTsKKyAgICBmcmFtZS0+bG9hZGVyKCkubG9hZEZy
YW1lUmVxdWVzdChGcmFtZUxvYWRSZXF1ZXN0KGZyYW1lLT5kb2N1bWVudCgpLT5zZWN1cml0eU9y
aWdpbigpLCBSZXNvdXJjZVJlcXVlc3QoVVJMKSwgTG9ja0hpc3Rvcnk6Ok5vLCBMb2NrQmFja0Zv
cndhcmRMaXN0OjpObywgTWF5YmVTZW5kUmVmZXJyZXIsIEFsbG93TmF2aWdhdGlvblRvSW52YWxp
ZFVSTDo6WWVzLCBOZXdGcmFtZU9wZW5lclBvbGljeTo6QWxsb3csIFNob3VsZE9wZW5FeHRlcm5h
bFVSTHNQb2xpY3k6OlNob3VsZE5vdEFsbG93KSwgZXZlbnQuZ2V0KCksIG51bGxwdHIpOwogfQog
CiBAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggMDMxNzMwMC4uZmU0Y2YyOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDE1LTA2LTAxICBCcmFkeSBFaWRzb24gIDxiZWlkc29u
QGFwcGxlLmNvbT4KKworICAgICAgICBXZWJLaXQgcG9saWN5IGRlbGVnYXRlIHNob3VsZCBzdWdn
ZXN0IGlmIGEgbmF2aWdhdGlvbiBzaG91bGQgYmUgYWxsb3dlZCB0byBvcGVuIFVSTHMgZXh0ZXJu
YWxseS4KKyAgICAgICAgcmRhcjovL3Byb2JsZW0vMjEwMjUzMDEgYW5kIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDUyODAKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFBsdWdpbnMvV2ViUGx1Z2luQ29udHJvbGxlci5t
bToKKyAgICAgICAgKC1bV2ViUGx1Z2luQ29udHJvbGxlciB3ZWJQbHVnSW5Db250YWluZXJMb2Fk
UmVxdWVzdDppbkZyYW1lOl0pOgorICAgICAgICAKKyAgICAgICAgKiBXZWJWaWV3L1dlYkZyYW1l
Lm1tOgorICAgICAgICAoLVtXZWJGcmFtZSBsb2FkUmVxdWVzdDpdKToKKyAgICAgICAgKC1bV2Vi
RnJhbWUgX2xvYWREYXRhOk1JTUVUeXBlOnRleHRFbmNvZGluZ05hbWU6YmFzZVVSTDp1bnJlYWNo
YWJsZVVSTDpdKToKKyAgICAgICAgCisgICAgICAgICogV2ViVmlldy9XZWJQREZWaWV3Lm1tOgor
ICAgICAgICAoLVtXZWJQREZWaWV3IFBERlZpZXdXaWxsQ2xpY2tPbkxpbms6d2l0aFVSTDpdKToK
KwogMjAxNS0wNS0yOSAgQW5kZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUuY29tPgogCiAg
ICAgICAgIE1ha2UgdGhlIGhlYWRlciByZXBsYWNlIHJ1bGUgbW9yZSByZXN0cmljdGl2ZSBhbmQg
Z2V0IHJpZCBvZiBhIHNwZWNpYWwgY2FzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMv
UGx1Z2lucy9XZWJQbHVnaW5Db250cm9sbGVyLm1tIGIvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lu
cy9XZWJQbHVnaW5Db250cm9sbGVyLm1tCmluZGV4IDhkYjAyZjcuLjc3ZTlhOGYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvV2ViUGx1Z2luQ29udHJvbGxlci5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL1dlYlBsdWdpbkNvbnRyb2xsZXIubW0KQEAgLTUx
Niw3ICs1MTYsNyBAQCBzdGF0aWMgdm9pZCBjYW5jZWxPdXRzdGFuZGluZ0NoZWNrKGNvbnN0IHZv
aWQgKml0ZW0sIHZvaWQgKmNvbnRleHQpCiAgICAgICAgICAgICBMT0dfRVJST1IoImNvdWxkIG5v
dCBsb2FkIFVSTCAlQCIsIFtyZXF1ZXN0IFVSTF0pOwogICAgICAgICAgICAgcmV0dXJuOwogICAg
ICAgICB9Ci0gICAgICAgIEZyYW1lTG9hZFJlcXVlc3QgZnJhbWVSZXF1ZXN0KGNvcmUoZnJhbWUp
LCByZXF1ZXN0KTsKKyAgICAgICAgRnJhbWVMb2FkUmVxdWVzdCBmcmFtZVJlcXVlc3QoY29yZShm
cmFtZSksIHJlcXVlc3QsIFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3k6OlNob3VsZE5vdEFs
bG93KTsKICAgICAgICAgZnJhbWVSZXF1ZXN0LnNldEZyYW1lTmFtZSh0YXJnZXQpOwogICAgICAg
ICBmcmFtZVJlcXVlc3Quc2V0U2hvdWxkQ2hlY2tOZXdXaW5kb3dQb2xpY3kodHJ1ZSk7CiAgICAg
ICAgIGNvcmUoZnJhbWUpLT5sb2FkZXIoKS5sb2FkKGZyYW1lUmVxdWVzdCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lLm1tIGIvU291cmNlL1dlYktpdC9t
YWMvV2ViVmlldy9XZWJGcmFtZS5tbQppbmRleCA2MjlmYThlLi5lY2MyMzJmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lLm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQvbWFjL1dlYlZpZXcvV2ViRnJhbWUubW0KQEAgLTI0NzksNyArMjQ3OSw3IEBAIHN0YXRpYyBi
b29sIG5lZWRzTWljcm9zb2Z0TWVzc2VuZ2VyRE9NRG9jdW1lbnRXb3JrYXJvdW5kKCkKICAgICBp
ZiAoIXJlc291cmNlUmVxdWVzdC51cmwoKS5pc1ZhbGlkKCkgJiYgIXJlc291cmNlUmVxdWVzdC51
cmwoKS5pc0VtcHR5KCkpCiAgICAgICAgIHJlc291cmNlUmVxdWVzdC5zZXRVUkwoW05TVVJMIFVS
TFdpdGhTdHJpbmc6W0AiZmlsZToiIHN0cmluZ0J5QXBwZW5kaW5nU3RyaW5nOltbcmVxdWVzdCBV
UkxdIGFic29sdXRlU3RyaW5nXV1dKTsKIAotICAgIGNvcmVGcmFtZS0+bG9hZGVyKCkubG9hZChG
cmFtZUxvYWRSZXF1ZXN0KGNvcmVGcmFtZSwgcmVzb3VyY2VSZXF1ZXN0KSk7CisgICAgY29yZUZy
YW1lLT5sb2FkZXIoKS5sb2FkKEZyYW1lTG9hZFJlcXVlc3QoY29yZUZyYW1lLCByZXNvdXJjZVJl
cXVlc3QsIFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3k6OlNob3VsZE5vdEFsbG93KSk7CiB9
CiAKIHN0YXRpYyBOU1VSTCAqY3JlYXRlVW5pcXVlV2ViRGF0YVVSTCgpCkBAIC0yNTExLDcgKzI1
MTEsNyBAQCBzdGF0aWMgTlNVUkwgKmNyZWF0ZVVuaXF1ZVdlYkRhdGFVUkwoKQogICAgIGlmIChz
aG91bGRVc2VRdWlja0xvb2tGb3JNSU1FVHlwZShNSU1FVHlwZSkpIHsKICAgICAgICAgTlNVUkwg
KnF1aWNrTG9va1VSTCA9IHJlc3BvbnNlVVJMID8gcmVzcG9uc2VVUkwgOiBiYXNlVVJMOwogICAg
ICAgICBpZiAoYXV0byByZXF1ZXN0ID0gcmVnaXN0ZXJRTFByZXZpZXdDb252ZXJ0ZXJJZk5lZWRl
ZChxdWlja0xvb2tVUkwsIE1JTUVUeXBlLCBkYXRhKSkgewotICAgICAgICAgICAgX3ByaXZhdGUt
PmNvcmVGcmFtZS0+bG9hZGVyKCkubG9hZChGcmFtZUxvYWRSZXF1ZXN0KF9wcml2YXRlLT5jb3Jl
RnJhbWUsIHJlcXVlc3QuZ2V0KCkpKTsKKyAgICAgICAgICAgIF9wcml2YXRlLT5jb3JlRnJhbWUt
PmxvYWRlcigpLmxvYWQoRnJhbWVMb2FkUmVxdWVzdChfcHJpdmF0ZS0+Y29yZUZyYW1lLCByZXF1
ZXN0LmdldCgpKSwgU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeTo6U2hvdWxkTm90QWxsb3cp
OwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgfQpAQCAtMjUyNyw3ICsyNTI3
LDcgQEAgc3RhdGljIE5TVVJMICpjcmVhdGVVbmlxdWVXZWJEYXRhVVJMKCkKICAgICBSZXNvdXJj
ZVJlc3BvbnNlIHJlc3BvbnNlKHJlc3BvbnNlVVJMLCBNSU1FVHlwZSwgW2RhdGEgbGVuZ3RoXSwg
ZW5jb2RpbmdOYW1lKTsKICAgICBTdWJzdGl0dXRlRGF0YSBzdWJzdGl0dXRlRGF0YShXZWJDb3Jl
OjpTaGFyZWRCdWZmZXI6OndyYXBOU0RhdGEoZGF0YSksIFt1bnJlYWNoYWJsZVVSTCBhYnNvbHV0
ZVVSTF0sIHJlc3BvbnNlLCBTdWJzdGl0dXRlRGF0YTo6U2Vzc2lvbkhpc3RvcnlWaXNpYmlsaXR5
OjpIaWRkZW4pOwogCi0gICAgX3ByaXZhdGUtPmNvcmVGcmFtZS0+bG9hZGVyKCkubG9hZChGcmFt
ZUxvYWRSZXF1ZXN0KF9wcml2YXRlLT5jb3JlRnJhbWUsIHJlcXVlc3QsIHN1YnN0aXR1dGVEYXRh
KSk7CisgICAgX3ByaXZhdGUtPmNvcmVGcmFtZS0+bG9hZGVyKCkubG9hZChGcmFtZUxvYWRSZXF1
ZXN0KF9wcml2YXRlLT5jb3JlRnJhbWUsIHJlcXVlc3QsIFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQ
b2xpY3k6OlNob3VsZE5vdEFsbG93LCBzdWJzdGl0dXRlRGF0YSkpOwogfQogCiAtICh2b2lkKWxv
YWREYXRhOihOU0RhdGEgKilkYXRhIE1JTUVUeXBlOihOU1N0cmluZyAqKU1JTUVUeXBlIHRleHRF
bmNvZGluZ05hbWU6KE5TU3RyaW5nICopZW5jb2RpbmdOYW1lIGJhc2VVUkw6KE5TVVJMICopYmFz
ZVVSTApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJQREZWaWV3Lm1t
IGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJQREZWaWV3Lm1tCmluZGV4IDVlN2JiMTQu
LjFlZjFhZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUERGVmll
dy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlBERlZpZXcubW0KQEAgLTEw
MzcsNyArMTAzNyw3IEBAIHN0YXRpYyBCT09MIGlzRnJhbWVJblJhbmdlKFdlYkZyYW1lICpmcmFt
ZSwgRE9NUmFuZ2UgKnJhbmdlKQogCiAgICAgLy8gQ2FsbCB0byB0aGUgZnJhbWUgbG9hZGVyIGJl
Y2F1c2UgdGhpcyBpcyB3aGVyZSBvdXIgc2VjdXJpdHkgY2hlY2tzIGFyZSBtYWRlLgogICAgIEZy
YW1lKiBmcmFtZSA9IGNvcmUoW2RhdGFTb3VyY2Ugd2ViRnJhbWVdKTsKLSAgICBmcmFtZS0+bG9h
ZGVyKCkubG9hZEZyYW1lUmVxdWVzdChGcmFtZUxvYWRSZXF1ZXN0KGZyYW1lLT5kb2N1bWVudCgp
LT5zZWN1cml0eU9yaWdpbigpLCBSZXNvdXJjZVJlcXVlc3QoVVJMKSwgTG9ja0hpc3Rvcnk6Ok5v
LCBMb2NrQmFja0ZvcndhcmRMaXN0OjpObywgTWF5YmVTZW5kUmVmZXJyZXIsIEFsbG93TmF2aWdh
dGlvblRvSW52YWxpZFVSTDo6WWVzLCBOZXdGcmFtZU9wZW5lclBvbGljeTo6QWxsb3cpLCBldmVu
dC5nZXQoKSwgbnVsbHB0cik7CisgICAgZnJhbWUtPmxvYWRlcigpLmxvYWRGcmFtZVJlcXVlc3Qo
RnJhbWVMb2FkUmVxdWVzdChmcmFtZS0+ZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKSwgUmVz
b3VyY2VSZXF1ZXN0KFVSTCksIExvY2tIaXN0b3J5OjpObywgTG9ja0JhY2tGb3J3YXJkTGlzdDo6
Tm8sIE1heWJlU2VuZFJlZmVycmVyLCBBbGxvd05hdmlnYXRpb25Ub0ludmFsaWRVUkw6Olllcywg
TmV3RnJhbWVPcGVuZXJQb2xpY3k6OkFsbG93LCBTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5
OjpTaG91bGROb3RBbGxvdyksIGV2ZW50LmdldCgpLCBudWxscHRyKTsKIH0KIAogLSAodm9pZClQ
REZWaWV3T3BlblBERkluTmF0aXZlQXBwbGljYXRpb246KFBERlZpZXcgKilzZW5kZXIKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvd2luL0No
YW5nZUxvZwppbmRleCA0MmE1YjU0Li42Mjk4ODA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L3dpbi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTMgQEAKKzIwMTUtMDYtMDEgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgor
CisgICAgICAgIFdlYktpdCBwb2xpY3kgZGVsZWdhdGUgc2hvdWxkIHN1Z2dlc3QgaWYgYSBuYXZp
Z2F0aW9uIHNob3VsZCBiZSBhbGxvd2VkIHRvIG9wZW4gVVJMcyBleHRlcm5hbGx5LgorICAgICAg
ICByZGFyOi8vcHJvYmxlbS8yMTAyNTMwMSBhbmQgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE0NTI4MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViQ29udGV4dE1lbnVDbGllbnQuY3BwOgor
ICAgICAgICAoV2ViQ29udGV4dE1lbnVDbGllbnQ6OnNlYXJjaFdpdGhHb29nbGUpOgorCiAyMDE1
LTA1LTI2ICBKb24gSG9uZXljdXR0ICA8amhvbmV5Y3V0dEBhcHBsZS5jb20+CiAKICAgICAgICAg
W2lPU10gV2hlbiB2aWV3aW5nIGFuIE1KUEVHIHN0cmVhbSBhcyB0aGUgbWFpbiByZXNvdXJjZSwg
b25seSB0aGUgZmlyc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBw
b3J0L1dlYkNvbnRleHRNZW51Q2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVT
dXBwb3J0L1dlYkNvbnRleHRNZW51Q2xpZW50LmNwcAppbmRleCBiMjYxYjk3Li4zNzRmZTZlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDb250ZXh0TWVu
dUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ29u
dGV4dE1lbnVDbGllbnQuY3BwCkBAIC0xMjAsNyArMTIwLDcgQEAgdm9pZCBXZWJDb250ZXh0TWVu
dUNsaWVudDo6c2VhcmNoV2l0aEdvb2dsZShjb25zdCBGcmFtZSogZnJhbWUpCiAKICAgICBpZiAo
UGFnZSogcGFnZSA9IGZyYW1lLT5wYWdlKCkpIHsKICAgICAgICAgVXNlckdlc3R1cmVJbmRpY2F0
b3IgaW5kaWNhdG9yKERlZmluaXRlbHlQcm9jZXNzaW5nVXNlckdlc3R1cmUpOwotICAgICAgICBw
YWdlLT5tYWluRnJhbWUoKS5sb2FkZXIoKS51cmxTZWxlY3RlZChVUkwoUGFyc2VkVVJMU3RyaW5n
LCB1cmwpLCBTdHJpbmcoKSwgMCwgTG9ja0hpc3Rvcnk6Ok5vLCBMb2NrQmFja0ZvcndhcmRMaXN0
OjpObywgTWF5YmVTZW5kUmVmZXJyZXIpOworICAgICAgICBwYWdlLT5tYWluRnJhbWUoKS5sb2Fk
ZXIoKS51cmxTZWxlY3RlZChVUkwoUGFyc2VkVVJMU3RyaW5nLCB1cmwpLCBTdHJpbmcoKSwgMCwg
TG9ja0hpc3Rvcnk6Ok5vLCBMb2NrQmFja0ZvcndhcmRMaXN0OjpObywgTWF5YmVTZW5kUmVmZXJy
ZXIsIFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3k6OlNob3VsZE5vdEFsbG93KTsKICAgICB9
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXQyL0NoYW5nZUxvZwppbmRleCAwYTNlZDUwLi5iZmM2NjBmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDUg
KzEsMzQgQEAKIDIwMTUtMDYtMDEgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgog
CisgICAgICAgIFdlYktpdCBwb2xpY3kgZGVsZWdhdGUgc2hvdWxkIHN1Z2dlc3QgaWYgYSBuYXZp
Z2F0aW9uIHNob3VsZCBiZSBhbGxvd2VkIHRvIG9wZW4gVVJMcyBleHRlcm5hbGx5LgorICAgICAg
ICByZGFyOi8vcHJvYmxlbS8yMTAyNTMwMSBhbmQgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE0NTI4MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW4ubW06CisgICAg
ICAgIChXZWJLaXQ6OlBERlBsdWdpbjo6Y2xpY2tlZExpbmspOgorICAgICAgICAKKyAgICAgICAg
KiBXZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBs
dWdpblZpZXc6OnBlcmZvcm1GcmFtZUxvYWRVUkxSZXF1ZXN0KToKKyAgICAgICAgKFdlYktpdDo6
UGx1Z2luVmlldzo6bG9hZFVSTCk6CisgICAgICAgIAorICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViQ29udGV4dE1lbnVDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJDb250ZXh0TWVudUNsaWVudDo6c2VhcmNoV2l0aEdvb2dsZSk6CisgICAgICAgIAorICAgICAg
ICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hDcmVhdGVQYWdl
KToKKyAgICAgICAgCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3Rvci5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3Rvcjo6b3BlbkluTmV3VGFiKToKKyAgICAg
ICAgCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJQYWdlOjpsb2FkVVJMSW5GcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBh
Z2U6OmxvYWRSZXF1ZXN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6bG9hZERhdGFJbXBs
KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6bmF2aWdhdGVUb1BERkxpbmtXaXRoU2ltdWxh
dGVkQ2xpY2spOgorCisyMDE1LTA2LTAxICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNv
bT4KKwogICAgICAgICBBZGQgV0tUUiBzdXBwb3J0IGZvciAic2hvdWxkIG9wZW4gZXh0ZXJuYWwg
VVJMcyIuCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NDU1MDUKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BE
Ri9QREZQbHVnaW4ubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BE
RlBsdWdpbi5tbQppbmRleCBjN2E1ZTdlLi5kY2NjNTQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5tbQpAQCAtMTU5MSw3ICsxNTkx
LDcgQEAgdm9pZCBQREZQbHVnaW46OmNsaWNrZWRMaW5rKE5TVVJMICp1cmwpCiAgICAgaWYgKG1f
bGFzdE1vdXNlRXZlbnQudHlwZSgpICE9IFdlYkV2ZW50OjpOb1R5cGUpCiAgICAgICAgIGNvcmVF
dmVudCA9IE1vdXNlRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuY2xpY2tFdmVudCwgZnJhbWUt
PmRvY3VtZW50KCktPmRlZmF1bHRWaWV3KCksIHBsYXRmb3JtKG1fbGFzdE1vdXNlRXZlbnQpLCAw
LCAwKTsKIAotICAgIGZyYW1lLT5sb2FkZXIoKS51cmxTZWxlY3RlZChjb3JlVVJMLCBlbXB0eVN0
cmluZygpLCBjb3JlRXZlbnQuZ2V0KCksIExvY2tIaXN0b3J5OjpObywgTG9ja0JhY2tGb3J3YXJk
TGlzdDo6Tm8sIE1heWJlU2VuZFJlZmVycmVyKTsKKyAgICBmcmFtZS0+bG9hZGVyKCkudXJsU2Vs
ZWN0ZWQoY29yZVVSTCwgZW1wdHlTdHJpbmcoKSwgY29yZUV2ZW50LmdldCgpLCBMb2NrSGlzdG9y
eTo6Tm8sIExvY2tCYWNrRm9yd2FyZExpc3Q6Ok5vLCBNYXliZVNlbmRSZWZlcnJlciwgU2hvdWxk
T3BlbkV4dGVybmFsVVJMc1BvbGljeTo6U2hvdWxkQWxsb3cpOwogfQogCiB2b2lkIFBERlBsdWdp
bjo6c2V0QWN0aXZlQW5ub3RhdGlvbihQREZBbm5vdGF0aW9uICphbm5vdGF0aW9uKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3BwIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3BwCmluZGV4IDk0
OTQwZmYuLjMwMThkNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1
Z2lucy9QbHVnaW5WaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdp
bnMvUGx1Z2luVmlldy5jcHAKQEAgLTExNzYsNyArMTE3Niw3IEBAIHZvaWQgUGx1Z2luVmlldzo6
cGVyZm9ybUZyYW1lTG9hZFVSTFJlcXVlc3QoVVJMUmVxdWVzdCogcmVxdWVzdCkKICAgICBGcmFt
ZSogdGFyZ2V0RnJhbWUgPSBmcmFtZS0+bG9hZGVyKCkuZmluZEZyYW1lRm9yTmF2aWdhdGlvbihy
ZXF1ZXN0LT50YXJnZXQoKSk7CiAgICAgaWYgKCF0YXJnZXRGcmFtZSkgewogICAgICAgICAvLyBX
ZSBkaWQgbm90IGZpbmQgYSB0YXJnZXQgZnJhbWUuIEFzayBvdXIgZnJhbWUgdG8gbG9hZCB0aGUg
cGFnZS4gVGhpcyBtYXkgb3IgbWF5IG5vdCBjcmVhdGUgYSBwb3B1cCB3aW5kb3cuCi0gICAgICAg
IEZyYW1lTG9hZFJlcXVlc3QgZnJhbWVSZXF1ZXN0KGZyYW1lLCByZXF1ZXN0LT5yZXF1ZXN0KCkp
OworICAgICAgICBGcmFtZUxvYWRSZXF1ZXN0IGZyYW1lUmVxdWVzdChmcmFtZSwgcmVxdWVzdC0+
cmVxdWVzdCgpLCBTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5OjpTaG91bGROb3RBbGxvdyk7
CiAgICAgICAgIGZyYW1lUmVxdWVzdC5zZXRGcmFtZU5hbWUocmVxdWVzdC0+dGFyZ2V0KCkpOwog
ICAgICAgICBmcmFtZVJlcXVlc3Quc2V0U2hvdWxkQ2hlY2tOZXdXaW5kb3dQb2xpY3kodHJ1ZSk7
CiAgICAgICAgIGZyYW1lLT5sb2FkZXIoKS5sb2FkKGZyYW1lUmVxdWVzdCk7CkBAIC0xMTg4LDcg
KzExODgsNyBAQCB2b2lkIFBsdWdpblZpZXc6OnBlcmZvcm1GcmFtZUxvYWRVUkxSZXF1ZXN0KFVS
TFJlcXVlc3QqIHJlcXVlc3QpCiAgICAgfQogCiAgICAgLy8gTm93IGFzayB0aGUgZnJhbWUgdG8g
bG9hZCB0aGUgcmVxdWVzdC4KLSAgICB0YXJnZXRGcmFtZS0+bG9hZGVyKCkubG9hZChGcmFtZUxv
YWRSZXF1ZXN0KHRhcmdldEZyYW1lLCByZXF1ZXN0LT5yZXF1ZXN0KCkpKTsKKyAgICB0YXJnZXRG
cmFtZS0+bG9hZGVyKCkubG9hZChGcmFtZUxvYWRSZXF1ZXN0KHRhcmdldEZyYW1lLCByZXF1ZXN0
LT5yZXF1ZXN0KCksIFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3k6OlNob3VsZE5vdEFsbG93
KSk7CiAKICAgICBhdXRvKiB0YXJnZXRXZWJGcmFtZSA9IFdlYkZyYW1lOjpmcm9tQ29yZUZyYW1l
KCp0YXJnZXRGcmFtZSk7CiAgICAgQVNTRVJUKHRhcmdldFdlYkZyYW1lKTsKQEAgLTEzNjcsNyAr
MTM2Nyw3IEBAIFN0cmluZyBQbHVnaW5WaWV3Ojp1c2VyQWdlbnQoKQogCiB2b2lkIFBsdWdpblZp
ZXc6OmxvYWRVUkwodWludDY0X3QgcmVxdWVzdElELCBjb25zdCBTdHJpbmcmIG1ldGhvZCwgY29u
c3QgU3RyaW5nJiB1cmxTdHJpbmcsIGNvbnN0IFN0cmluZyYgdGFyZ2V0LCBjb25zdCBIVFRQSGVh
ZGVyTWFwJiBoZWFkZXJGaWVsZHMsIGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgaHR0cEJvZHksIGJv
b2wgYWxsb3dQb3B1cHMpCiB7Ci0gICAgRnJhbWVMb2FkUmVxdWVzdCBmcmFtZUxvYWRSZXF1ZXN0
KG1fcGx1Z2luRWxlbWVudC0+ZG9jdW1lbnQoKS5zZWN1cml0eU9yaWdpbigpLCBMb2NrSGlzdG9y
eTo6Tm8sIExvY2tCYWNrRm9yd2FyZExpc3Q6Ok5vLCBNYXliZVNlbmRSZWZlcnJlciwgQWxsb3dO
YXZpZ2F0aW9uVG9JbnZhbGlkVVJMOjpZZXMsIE5ld0ZyYW1lT3BlbmVyUG9saWN5OjpBbGxvdyk7
CisgICAgRnJhbWVMb2FkUmVxdWVzdCBmcmFtZUxvYWRSZXF1ZXN0KG1fcGx1Z2luRWxlbWVudC0+
ZG9jdW1lbnQoKS5zZWN1cml0eU9yaWdpbigpLCBMb2NrSGlzdG9yeTo6Tm8sIExvY2tCYWNrRm9y
d2FyZExpc3Q6Ok5vLCBNYXliZVNlbmRSZWZlcnJlciwgQWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlk
VVJMOjpZZXMsIE5ld0ZyYW1lT3BlbmVyUG9saWN5OjpBbGxvdywgU2hvdWxkT3BlbkV4dGVybmFs
VVJMc1BvbGljeTo6U2hvdWxkTm90QWxsb3cpOwogICAgIGZyYW1lTG9hZFJlcXVlc3QucmVzb3Vy
Y2VSZXF1ZXN0KCkuc2V0SFRUUE1ldGhvZChtZXRob2QpOwogICAgIGZyYW1lTG9hZFJlcXVlc3Qu
cmVzb3VyY2VSZXF1ZXN0KCkuc2V0VVJMKG1fcGx1Z2luRWxlbWVudC0+ZG9jdW1lbnQoKS5jb21w
bGV0ZVVSTCh1cmxTdHJpbmcpKTsKICAgICBmcmFtZUxvYWRSZXF1ZXN0LnJlc291cmNlUmVxdWVz
dCgpLnNldEhUVFBIZWFkZXJGaWVsZHMoaGVhZGVyRmllbGRzKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ29udGV4dE1lbnVDbGllbnQu
Y3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDb250ZXh0
TWVudUNsaWVudC5jcHAKaW5kZXggNDBhNjBkOC4uNjU2OTQ4NmEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ29udGV4dE1lbnVDbGllbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ29u
dGV4dE1lbnVDbGllbnQuY3BwCkBAIC04Niw3ICs4Niw3IEBAIHZvaWQgV2ViQ29udGV4dE1lbnVD
bGllbnQ6OnNlYXJjaFdpdGhHb29nbGUoY29uc3QgRnJhbWUqIGZyYW1lKQogCiAgICAgaWYgKFBh
Z2UqIHBhZ2UgPSBmcmFtZS0+cGFnZSgpKSB7CiAgICAgICAgIFVzZXJHZXN0dXJlSW5kaWNhdG9y
IGluZGljYXRvcihEZWZpbml0ZWx5UHJvY2Vzc2luZ1VzZXJHZXN0dXJlKTsKLSAgICAgICAgcGFn
ZS0+bWFpbkZyYW1lKCkubG9hZGVyKCkudXJsU2VsZWN0ZWQoVVJMKFBhcnNlZFVSTFN0cmluZywg
dXJsKSwgU3RyaW5nKCksIDAsIExvY2tIaXN0b3J5OjpObywgTG9ja0JhY2tGb3J3YXJkTGlzdDo6
Tm8sIE1heWJlU2VuZFJlZmVycmVyKTsKKyAgICAgICAgcGFnZS0+bWFpbkZyYW1lKCkubG9hZGVy
KCkudXJsU2VsZWN0ZWQoVVJMKFBhcnNlZFVSTFN0cmluZywgdXJsKSwgU3RyaW5nKCksIDAsIExv
Y2tIaXN0b3J5OjpObywgTG9ja0JhY2tGb3J3YXJkTGlzdDo6Tm8sIE1heWJlU2VuZFJlZmVycmVy
LCBTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5OjpTaG91bGROb3RBbGxvdyk7CiAgICAgfQog
fQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCmluZGV4IGQ2NWIxMDUu
LjYxYjE0ZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCkBAIC02NTAsNyAr
NjUwLDcgQEAgRnJhbWUqIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaENyZWF0ZVBhZ2Uo
Y29uc3QgTmF2aWdhdGlvbkFjdGlvbiYgbmF2aWdhdGkKICAgICAgICAgcmV0dXJuIDA7CiAKICAg
ICAvLyBKdXN0IGNhbGwgdGhyb3VnaCB0byB0aGUgY2hyb21lIGNsaWVudC4KLSAgICBGcmFtZUxv
YWRSZXF1ZXN0IHJlcXVlc3QobV9mcmFtZS0+Y29yZUZyYW1lKCktPmRvY3VtZW50KCktPnNlY3Vy
aXR5T3JpZ2luKCksIG5hdmlnYXRpb25BY3Rpb24ucmVzb3VyY2VSZXF1ZXN0KCksIExvY2tIaXN0
b3J5OjpObywgTG9ja0JhY2tGb3J3YXJkTGlzdDo6Tm8sIE1heWJlU2VuZFJlZmVycmVyLCBBbGxv
d05hdmlnYXRpb25Ub0ludmFsaWRVUkw6OlllcywgTmV3RnJhbWVPcGVuZXJQb2xpY3k6OkFsbG93
KTsKKyAgICBGcmFtZUxvYWRSZXF1ZXN0IHJlcXVlc3QobV9mcmFtZS0+Y29yZUZyYW1lKCktPmRv
Y3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCksIG5hdmlnYXRpb25BY3Rpb24ucmVzb3VyY2VSZXF1
ZXN0KCksIExvY2tIaXN0b3J5OjpObywgTG9ja0JhY2tGb3J3YXJkTGlzdDo6Tm8sIE1heWJlU2Vu
ZFJlZmVycmVyLCBBbGxvd05hdmlnYXRpb25Ub0ludmFsaWRVUkw6OlllcywgTmV3RnJhbWVPcGVu
ZXJQb2xpY3k6OkFsbG93LCBuYXZpZ2F0aW9uQWN0aW9uLnNob3VsZE9wZW5FeHRlcm5hbFVSTHNQ
b2xpY3koKSk7CiAgICAgUGFnZSogbmV3UGFnZSA9IHdlYlBhZ2UtPmNvcmVQYWdlKCktPmNocm9t
ZSgpLmNyZWF0ZVdpbmRvdyhtX2ZyYW1lLT5jb3JlRnJhbWUoKSwgcmVxdWVzdCwgV2luZG93RmVh
dHVyZXMoKSwgbmF2aWdhdGlvbkFjdGlvbik7CiAgICAgaWYgKCFuZXdQYWdlKQogICAgICAgICBy
ZXR1cm4gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJJbnNwZWN0b3IuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYklu
c3BlY3Rvci5jcHAKaW5kZXggMWVhOTEyOC4uMmQwYzI1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3Rvci5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3Rvci5jcHAKQEAgLTEzOCw3ICsxMzgs
NyBAQCB2b2lkIFdlYkluc3BlY3Rvcjo6b3BlbkluTmV3VGFiKGNvbnN0IFN0cmluZyYgdXJsU3Ry
aW5nKQogICAgICAgICByZXR1cm47CiAKICAgICBGcmFtZSYgaW5zcGVjdGVkTWFpbkZyYW1lID0g
aW5zcGVjdGVkUGFnZS0+bWFpbkZyYW1lKCk7Ci0gICAgRnJhbWVMb2FkUmVxdWVzdCByZXF1ZXN0
KGluc3BlY3RlZE1haW5GcmFtZS5kb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpLCBSZXNvdXJj
ZVJlcXVlc3QodXJsU3RyaW5nKSwgIl9ibGFuayIsIExvY2tIaXN0b3J5OjpObywgTG9ja0JhY2tG
b3J3YXJkTGlzdDo6Tm8sIE1heWJlU2VuZFJlZmVycmVyLCBBbGxvd05hdmlnYXRpb25Ub0ludmFs
aWRVUkw6OlllcywgTmV3RnJhbWVPcGVuZXJQb2xpY3k6OkFsbG93LCBSZXBsYWNlRG9jdW1lbnRJ
ZkphdmFTY3JpcHRVUkwpOworICAgIEZyYW1lTG9hZFJlcXVlc3QgcmVxdWVzdChpbnNwZWN0ZWRN
YWluRnJhbWUuZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKSwgUmVzb3VyY2VSZXF1ZXN0KHVy
bFN0cmluZyksICJfYmxhbmsiLCBMb2NrSGlzdG9yeTo6Tm8sIExvY2tCYWNrRm9yd2FyZExpc3Q6
Ok5vLCBNYXliZVNlbmRSZWZlcnJlciwgQWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJMOjpZZXMs
IE5ld0ZyYW1lT3BlbmVyUG9saWN5OjpBbGxvdywgUmVwbGFjZURvY3VtZW50SWZKYXZhU2NyaXB0
VVJMLCBTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5OjpTaG91bGROb3RBbGxvdyk7CiAKICAg
ICBQYWdlKiBuZXdQYWdlID0gaW5zcGVjdGVkUGFnZS0+Y2hyb21lKCkuY3JlYXRlV2luZG93KCZp
bnNwZWN0ZWRNYWluRnJhbWUsIHJlcXVlc3QsIFdpbmRvd0ZlYXR1cmVzKCksIE5hdmlnYXRpb25B
Y3Rpb24ocmVxdWVzdC5yZXNvdXJjZVJlcXVlc3QoKSwgTmF2aWdhdGlvblR5cGU6OkxpbmtDbGlj
a2VkKSk7CiAgICAgaWYgKCFuZXdQYWdlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IGQ4MWRiOGUuLjYxMDgwZDQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTEwMTEsNyArMTAxMSw3
IEBAIHZvaWQgV2ViUGFnZTo6bG9hZFVSTEluRnJhbWUoY29uc3QgU3RyaW5nJiB1cmwsIHVpbnQ2
NF90IGZyYW1lSUQpCiAgICAgaWYgKCFmcmFtZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgZnJh
bWUtPmNvcmVGcmFtZSgpLT5sb2FkZXIoKS5sb2FkKEZyYW1lTG9hZFJlcXVlc3QoZnJhbWUtPmNv
cmVGcmFtZSgpLCBSZXNvdXJjZVJlcXVlc3QoVVJMKFVSTCgpLCB1cmwpKSkpOworICAgIGZyYW1l
LT5jb3JlRnJhbWUoKS0+bG9hZGVyKCkubG9hZChGcmFtZUxvYWRSZXF1ZXN0KGZyYW1lLT5jb3Jl
RnJhbWUoKSwgUmVzb3VyY2VSZXF1ZXN0KFVSTChVUkwoKSwgdXJsKSksIFNob3VsZE9wZW5FeHRl
cm5hbFVSTHNQb2xpY3k6OlNob3VsZE5vdEFsbG93KSk7CiB9CiAKIHZvaWQgV2ViUGFnZTo6bG9h
ZFJlcXVlc3QodWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJl
cXVlc3QsIGNvbnN0IFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSYgc2FuZGJveEV4dGVuc2lvbkhh
bmRsZSwgdWludDY0X3Qgc2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSwgY29uc3QgVXNlckRh
dGEmIHVzZXJEYXRhKQpAQCAtMTAyNyw3ICsxMDI3LDcgQEAgdm9pZCBXZWJQYWdlOjpsb2FkUmVx
dWVzdCh1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVz
dCwKICAgICBtX2xvYWRlckNsaWVudC53aWxsTG9hZFVSTFJlcXVlc3QodGhpcywgcmVxdWVzdCwg
V2ViUHJvY2Vzczo6c2luZ2xldG9uKCkudHJhbnNmb3JtSGFuZGxlc1RvT2JqZWN0cyh1c2VyRGF0
YS5vYmplY3QoKSkuZ2V0KCkpOwogCiAgICAgLy8gSW5pdGF0ZSB0aGUgbG9hZCBpbiBXZWJDb3Jl
LgotICAgIEZyYW1lTG9hZFJlcXVlc3QgZnJhbWVMb2FkUmVxdWVzdChtX21haW5GcmFtZS0+Y29y
ZUZyYW1lKCksIHJlcXVlc3QpOworICAgIEZyYW1lTG9hZFJlcXVlc3QgZnJhbWVMb2FkUmVxdWVz
dChtX21haW5GcmFtZS0+Y29yZUZyYW1lKCksIHJlcXVlc3QsIFNob3VsZE9wZW5FeHRlcm5hbFVS
THNQb2xpY3k6OlNob3VsZE5vdEFsbG93KTsKICAgICBTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9s
aWN5IGV4dGVybmFsVVJMc1BvbGljeSA9IHN0YXRpY19jYXN0PFNob3VsZE9wZW5FeHRlcm5hbFVS
THNQb2xpY3k+KHNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kpOwogICAgIGZyYW1lTG9hZFJl
cXVlc3Quc2V0U2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeShleHRlcm5hbFVSTHNQb2xpY3kp
OwogCkBAIC0xMDUxLDcgKzEwNTEsNyBAQCB2b2lkIFdlYlBhZ2U6OmxvYWREYXRhSW1wbCh1aW50
NjRfdCBuYXZpZ2F0aW9uSUQsIFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPiBzaGFyZQogICAgIG1f
bG9hZGVyQ2xpZW50LndpbGxMb2FkRGF0YVJlcXVlc3QodGhpcywgcmVxdWVzdCwgY29uc3RfY2Fz
dDxTaGFyZWRCdWZmZXIqPihzdWJzdGl0dXRlRGF0YS5jb250ZW50KCkpLCBzdWJzdGl0dXRlRGF0
YS5taW1lVHlwZSgpLCBzdWJzdGl0dXRlRGF0YS50ZXh0RW5jb2RpbmcoKSwgc3Vic3RpdHV0ZURh
dGEuZmFpbGluZ1VSTCgpLCBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS50cmFuc2Zvcm1IYW5kbGVz
VG9PYmplY3RzKHVzZXJEYXRhLm9iamVjdCgpKS5nZXQoKSk7CiAKICAgICAvLyBJbml0YXRlIHRo
ZSBsb2FkIGluIFdlYkNvcmUuCi0gICAgbV9tYWluRnJhbWUtPmNvcmVGcmFtZSgpLT5sb2FkZXIo
KS5sb2FkKEZyYW1lTG9hZFJlcXVlc3QobV9tYWluRnJhbWUtPmNvcmVGcmFtZSgpLCByZXF1ZXN0
LCBzdWJzdGl0dXRlRGF0YSkpOworICAgIG1fbWFpbkZyYW1lLT5jb3JlRnJhbWUoKS0+bG9hZGVy
KCkubG9hZChGcmFtZUxvYWRSZXF1ZXN0KG1fbWFpbkZyYW1lLT5jb3JlRnJhbWUoKSwgcmVxdWVz
dCwgU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeTo6U2hvdWxkTm90QWxsb3csIHN1YnN0aXR1
dGVEYXRhKSk7CiB9CiAKIHZvaWQgV2ViUGFnZTo6bG9hZFN0cmluZyh1aW50NjRfdCBuYXZpZ2F0
aW9uSUQsIGNvbnN0IFN0cmluZyYgaHRtbFN0cmluZywgY29uc3QgU3RyaW5nJiBNSU1FVHlwZSwg
Y29uc3QgVVJMJiBiYXNlVVJMLCBjb25zdCBVUkwmIHVucmVhY2hhYmxlVVJMLCBjb25zdCBVc2Vy
RGF0YSYgdXNlckRhdGEpCkBAIC0xMTA4LDcgKzExMDgsOCBAQCB2b2lkIFdlYlBhZ2U6Om5hdmln
YXRlVG9QREZMaW5rV2l0aFNpbXVsYXRlZENsaWNrKGNvbnN0IFN0cmluZyYgdXJsLCBJbnRQb2lu
dCBkbwogCiAgICAgY29uc3QgaW50IHNpbmdsZUNsaWNrID0gMTsKICAgICBSZWZQdHI8TW91c2VF
dmVudD4gbW91c2VFdmVudCA9IE1vdXNlRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuY2xpY2tF
dmVudCwgdHJ1ZSwgdHJ1ZSwgY3VycmVudFRpbWUoKSwgbnVsbHB0ciwgc2luZ2xlQ2xpY2ssIHNj
cmVlblBvaW50LngoKSwgc2NyZWVuUG9pbnQueSgpLCBkb2N1bWVudFBvaW50LngoKSwgZG9jdW1l
bnRQb2ludC55KCksIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCAwLCBudWxscHRyLCAwLCBu
dWxscHRyKTsKLSAgICBtYWluRnJhbWUtPmxvYWRlcigpLnVybFNlbGVjdGVkKG1haW5GcmFtZURv
Y3VtZW50LT5jb21wbGV0ZVVSTCh1cmwpLCBlbXB0eVN0cmluZygpLCBtb3VzZUV2ZW50LmdldCgp
LCBMb2NrSGlzdG9yeTo6Tm8sIExvY2tCYWNrRm9yd2FyZExpc3Q6Ok5vLCBTaG91bGRTZW5kUmVm
ZXJyZXI6Ok1heWJlU2VuZFJlZmVycmVyKTsKKworICAgIG1haW5GcmFtZS0+bG9hZGVyKCkudXJs
U2VsZWN0ZWQobWFpbkZyYW1lRG9jdW1lbnQtPmNvbXBsZXRlVVJMKHVybCksIGVtcHR5U3RyaW5n
KCksIG1vdXNlRXZlbnQuZ2V0KCksIExvY2tIaXN0b3J5OjpObywgTG9ja0JhY2tGb3J3YXJkTGlz
dDo6Tm8sIFNob3VsZFNlbmRSZWZlcnJlcjo6TWF5YmVTZW5kUmVmZXJyZXIsIFNob3VsZE9wZW5F
eHRlcm5hbFVSTHNQb2xpY3k6OlNob3VsZE5vdEFsbG93KTsKIH0KIAogdm9pZCBXZWJQYWdlOjpz
dG9wTG9hZGluZ0ZyYW1lKHVpbnQ2NF90IGZyYW1lSUQpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>254070</attachid>
            <date>2015-06-02 10:08:03 -0700</date>
            <delta_ts>2015-06-02 10:44:58 -0700</delta_ts>
            <desc>Patch v3 - More build fixing</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>143346</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA3OTJlMjE1Li43MjEyYWY0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsNjIgQEAKIDIwMTUtMDYt
MDEgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgogCisgICAgICAgIFdlYktpdCBw
b2xpY3kgZGVsZWdhdGUgc2hvdWxkIHN1Z2dlc3QgaWYgYSBuYXZpZ2F0aW9uIHNob3VsZCBiZSBh
bGxvd2VkIHRvIG9wZW4gVVJMcyBleHRlcm5hbGx5LgorICAgICAgICByZGFyOi8vcHJvYmxlbS8y
MTAyNTMwMSBhbmQgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NTI4
MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogbG9h
ZGVyL25hdmlnYXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvbWFpbi1mcmFt
ZS1jbGljay1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGxvYWRlci9uYXZpZ2F0aW9u
LXBvbGljeS9zaG91bGQtb3Blbi1leHRlcm5hbC11cmxzL21haW4tZnJhbWUtY2xpY2suaHRtbDog
QWRkZWQuCisgICAgICAgICogbG9hZGVyL25hdmlnYXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4
dGVybmFsLXVybHMvbWFpbi1mcmFtZS1uYXZpZ2F0ZWQtcHJvZ3JhbWF0aWNhbGx5LWJ5LXN1YmZy
YW1lLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogbG9hZGVyL25hdmlnYXRpb24tcG9s
aWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvbWFpbi1mcmFtZS1uYXZpZ2F0ZWQtcHJvZ3Jh
bWF0aWNhbGx5LWJ5LXN1YmZyYW1lLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGxvYWRlci9uYXZp
Z2F0aW9uLXBvbGljeS9zaG91bGQtb3Blbi1leHRlcm5hbC11cmxzL21haW4tZnJhbWUtd2l0aC1m
bGFnLXByb2dhbWF0aWMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBsb2FkZXIvbmF2
aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJscy9tYWluLWZyYW1lLXdpdGgt
ZmxhZy1wcm9nYW1hdGljLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGxvYWRlci9uYXZpZ2F0aW9u
LXBvbGljeS9zaG91bGQtb3Blbi1leHRlcm5hbC11cmxzL21haW4tZnJhbWUtd2l0aG91dC1mbGFn
LXByb2dyYW1hdGljLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogbG9hZGVyL25hdmln
YXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvbWFpbi1mcmFtZS13aXRob3V0
LWZsYWctcHJvZ3JhbWF0aWMuaHRtbDogQWRkZWQuCisgICAgICAgICogbG9hZGVyL25hdmlnYXRp
b24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvcmVzb3VyY2VzL2NsaWNrLW5vdGlm
eS1kb25lLWluLW1haW4uaHRtbDogQWRkZWQuCisgICAgICAgICogbG9hZGVyL25hdmlnYXRpb24t
cG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvcmVzb3VyY2VzL2lmcmFtZS1jbGljay1u
b3RpZnktZG9uZS10YXJnZXQtc2VsZi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBsb2FkZXIvbmF2
aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJscy9yZXNvdXJjZXMvaWZyYW1l
LWNsaWNrLW5vdGlmeS1kb25lLXRhcmdldC10b3AuaHRtbDogQWRkZWQuCisgICAgICAgICogbG9h
ZGVyL25hdmlnYXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvcmVzb3VyY2Vz
L21haW4tZnJhbWUtd2l0aC1zdWJmcmFtZS1jbGljay10YXJnZXRzLXN1YmZyYW1lLmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIGxvYWRlci9uYXZpZ2F0aW9uLXBvbGljeS9zaG91bGQtb3Blbi1leHRl
cm5hbC11cmxzL3Jlc291cmNlcy9tYWluLWZyYW1lLXdpdGgtc3ViZnJhbWUtcHJvZ3JhbWF0aWNh
bGx5LW5hdmlnYXRlcy1tYWluLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGxvYWRlci9uYXZpZ2F0
aW9uLXBvbGljeS9zaG91bGQtb3Blbi1leHRlcm5hbC11cmxzL3Jlc291cmNlcy9wcm9ncmFtYXRp
Y2FsbHktbmF2aWdhdGUtdG8tbm90aWZ5LWRvbmUtdGFyZ2V0LXRvcC5odG1sOiBBZGRlZC4KKyAg
ICAgICAgKiBsb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJs
cy9yZXNvdXJjZXMvcHJvZ3JhbWF0aWNhbGx5LW5hdmlnYXRlLXRvLW5vdGlmeS1kb25lLmh0bWw6
IEFkZGVkLgorICAgICAgICAqIGxvYWRlci9uYXZpZ2F0aW9uLXBvbGljeS9zaG91bGQtb3Blbi1l
eHRlcm5hbC11cmxzL3Jlc291cmNlcy91c2VyLWdlc3R1cmUtdGFyZ2V0LWJsYW5rLXRvLW5vdGlm
eS1kb25lLWZyb20tc3ViZnJhbWUuaHRtbDogQWRkZWQuCisgICAgICAgICogbG9hZGVyL25hdmln
YXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvcmVzb3VyY2VzL3VzZXItZ2Vz
dHVyZS10YXJnZXQtYmxhbmstdG8tbm90aWZ5LWRvbmUuaHRtbDogQWRkZWQuCisgICAgICAgICog
bG9hZGVyL25hdmlnYXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvcmVzb3Vy
Y2VzL3VzZXItZ2VzdHVyZS13aW5kb3ctb3Blbi10by1ub3RpZnktZG9uZS1mcm9tLXN1YmZyYW1l
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGxvYWRlci9uYXZpZ2F0aW9uLXBvbGljeS9zaG91bGQt
b3Blbi1leHRlcm5hbC11cmxzL3Jlc291cmNlcy91c2VyLWdlc3R1cmUtd2luZG93LW9wZW4tdG8t
bm90aWZ5LWRvbmUuaHRtbDogQWRkZWQuCisgICAgICAgICogbG9hZGVyL25hdmlnYXRpb24tcG9s
aWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvcmVzb3VyY2VzL3dpbmRvdy1vcGVuLXRvLW5v
dGlmeS1kb25lLWZyb20tc3ViZnJhbWUuaHRtbDogQWRkZWQuCisgICAgICAgICogbG9hZGVyL25h
dmlnYXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvcmVzb3VyY2VzL3dpbmRv
dy1vcGVuLXRvLW5vdGlmeS1kb25lLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGxvYWRlci9uYXZp
Z2F0aW9uLXBvbGljeS9zaG91bGQtb3Blbi1leHRlcm5hbC11cmxzL3N1YmZyYW1lLWNsaWNrLXRh
cmdldC1zZWxmLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogbG9hZGVyL25hdmlnYXRp
b24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvc3ViZnJhbWUtY2xpY2stdGFyZ2V0
LXNlbGYuaHRtbDogQWRkZWQuCisgICAgICAgICogbG9hZGVyL25hdmlnYXRpb24tcG9saWN5L3No
b3VsZC1vcGVuLWV4dGVybmFsLXVybHMvc3ViZnJhbWUtY2xpY2stdGFyZ2V0LXRvcC1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGxvYWRlci9uYXZpZ2F0aW9uLXBvbGljeS9zaG91bGQt
b3Blbi1leHRlcm5hbC11cmxzL3N1YmZyYW1lLWNsaWNrLXRhcmdldC10b3AuaHRtbDogQWRkZWQu
CisgICAgICAgICogbG9hZGVyL25hdmlnYXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFs
LXVybHMvdXNlci1nZXN0dXJlLXRhcmdldC1ibGFuay13aXRoLWZsYWctZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBsb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0
ZXJuYWwtdXJscy91c2VyLWdlc3R1cmUtdGFyZ2V0LWJsYW5rLXdpdGgtZmxhZy1mcm9tLXN1YmZy
YW1lLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogbG9hZGVyL25hdmlnYXRpb24tcG9s
aWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvdXNlci1nZXN0dXJlLXRhcmdldC1ibGFuay13
aXRoLWZsYWctZnJvbS1zdWJmcmFtZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBsb2FkZXIvbmF2
aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJscy91c2VyLWdlc3R1cmUtdGFy
Z2V0LWJsYW5rLXdpdGgtZmxhZy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBsb2FkZXIvbmF2aWdh
dGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJscy91c2VyLWdlc3R1cmUtdGFyZ2V0
LWJsYW5rLXdpdGhvdXQtZmxhZy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGxvYWRl
ci9uYXZpZ2F0aW9uLXBvbGljeS9zaG91bGQtb3Blbi1leHRlcm5hbC11cmxzL3VzZXItZ2VzdHVy
ZS10YXJnZXQtYmxhbmstd2l0aG91dC1mbGFnLWZyb20tc3ViZnJhbWUtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBsb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0
ZXJuYWwtdXJscy91c2VyLWdlc3R1cmUtdGFyZ2V0LWJsYW5rLXdpdGhvdXQtZmxhZy1mcm9tLXN1
YmZyYW1lLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGxvYWRlci9uYXZpZ2F0aW9uLXBvbGljeS9z
aG91bGQtb3Blbi1leHRlcm5hbC11cmxzL3VzZXItZ2VzdHVyZS10YXJnZXQtYmxhbmstd2l0aG91
dC1mbGFnLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGxvYWRlci9uYXZpZ2F0aW9uLXBvbGljeS9z
aG91bGQtb3Blbi1leHRlcm5hbC11cmxzL3VzZXItZ2VzdHVyZS13aW5kb3ctb3Blbi13aXRoLWZs
YWctZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBsb2FkZXIvbmF2aWdhdGlvbi1wb2xp
Y3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJscy91c2VyLWdlc3R1cmUtd2luZG93LW9wZW4td2l0
aC1mbGFnLWZyb20tc3ViZnJhbWUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBsb2Fk
ZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJscy91c2VyLWdlc3R1
cmUtd2luZG93LW9wZW4td2l0aC1mbGFnLWZyb20tc3ViZnJhbWUuaHRtbDogQWRkZWQuCisgICAg
ICAgICogbG9hZGVyL25hdmlnYXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMv
dXNlci1nZXN0dXJlLXdpbmRvdy1vcGVuLXdpdGgtZmxhZy5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBsb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJscy91c2Vy
LWdlc3R1cmUtd2luZG93LW9wZW4td2l0aG91dC1mbGFnLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogbG9hZGVyL25hdmlnYXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVy
bHMvdXNlci1nZXN0dXJlLXdpbmRvdy1vcGVuLXdpdGhvdXQtZmxhZy1mcm9tLXN1YmZyYW1lLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogbG9hZGVyL25hdmlnYXRpb24tcG9saWN5L3No
b3VsZC1vcGVuLWV4dGVybmFsLXVybHMvdXNlci1nZXN0dXJlLXdpbmRvdy1vcGVuLXdpdGhvdXQt
ZmxhZy1mcm9tLXN1YmZyYW1lLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGxvYWRlci9uYXZpZ2F0
aW9uLXBvbGljeS9zaG91bGQtb3Blbi1leHRlcm5hbC11cmxzL3VzZXItZ2VzdHVyZS13aW5kb3ct
b3Blbi13aXRob3V0LWZsYWcuaHRtbDogQWRkZWQuCisgICAgICAgICogbG9hZGVyL25hdmlnYXRp
b24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvd2luZG93LW9wZW4td2l0aC1mbGFn
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogbG9hZGVyL25hdmlnYXRpb24tcG9saWN5
L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvd2luZG93LW9wZW4td2l0aC1mbGFnLWZyb20tc3Vi
ZnJhbWUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBsb2FkZXIvbmF2aWdhdGlvbi1w
b2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJscy93aW5kb3ctb3Blbi13aXRoLWZsYWctZnJv
bS1zdWJmcmFtZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBsb2FkZXIvbmF2aWdhdGlvbi1wb2xp
Y3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJscy93aW5kb3ctb3Blbi13aXRoLWZsYWcuaHRtbDog
QWRkZWQuCisgICAgICAgICogbG9hZGVyL25hdmlnYXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4
dGVybmFsLXVybHMvd2luZG93LW9wZW4td2l0aG91dC1mbGFnLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogbG9hZGVyL25hdmlnYXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFs
LXVybHMvd2luZG93LW9wZW4td2l0aG91dC1mbGFnLWZyb20tc3ViZnJhbWUtZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBsb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4t
ZXh0ZXJuYWwtdXJscy93aW5kb3ctb3Blbi13aXRob3V0LWZsYWctZnJvbS1zdWJmcmFtZS5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiBsb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4t
ZXh0ZXJuYWwtdXJscy93aW5kb3ctb3Blbi13aXRob3V0LWZsYWcuaHRtbDogQWRkZWQuCisKKzIw
MTUtMDYtMDEgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCiAgICAgICAgIEFk
ZCBXS1RSIHN1cHBvcnQgZm9yICJzaG91bGQgb3BlbiBleHRlcm5hbCBVUkxzIi4KICAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NTUwNQogCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0
ZXJuYWwtdXJscy9tYWluLWZyYW1lLWNsaWNrLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2xv
YWRlci9uYXZpZ2F0aW9uLXBvbGljeS9zaG91bGQtb3Blbi1leHRlcm5hbC11cmxzL21haW4tZnJh
bWUtY2xpY2stZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LjFhYTJhYjEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdhdGlv
bi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJscy9tYWluLWZyYW1lLWNsaWNrLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDUgQEAKKyAtIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rp
b24gCis8TlNVUkxSZXF1ZXN0IFVSTCByZXNvdXJjZXMvY2xpY2stbm90aWZ5LWRvbmUtaW4tbWFp
bi5odG1sLCBtYWluIGRvY3VtZW50IFVSTCByZXNvdXJjZXMvY2xpY2stbm90aWZ5LWRvbmUtaW4t
bWFpbi5odG1sLCBodHRwIG1ldGhvZCBHRVQ+IGlzIG1haW4gZnJhbWUgLSB5ZXMgc2hvdWxkIG9w
ZW4gVVJMcyBleHRlcm5hbGx5IC0gbm8KKyAtIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rp
b24gCis8TlNVUkxSZXF1ZXN0IFVSTCBub3RpZnktZG9uZS5odG1sLCBtYWluIGRvY3VtZW50IFVS
TCBub3RpZnktZG9uZS5odG1sLCBodHRwIG1ldGhvZCBHRVQ+IGlzIG1haW4gZnJhbWUgLSB5ZXMg
c2hvdWxkIG9wZW4gVVJMcyBleHRlcm5hbGx5IC0geWVzCisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2xvYWRlci9uYXZpZ2F0aW9uLXBvbGljeS9zaG91bGQtb3Blbi1leHRlcm5hbC11cmxzL21h
aW4tZnJhbWUtY2xpY2suaHRtbCBiL0xheW91dFRlc3RzL2xvYWRlci9uYXZpZ2F0aW9uLXBvbGlj
eS9zaG91bGQtb3Blbi1leHRlcm5hbC11cmxzL21haW4tZnJhbWUtY2xpY2suaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42MGRiOTU5Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvbG9hZGVyL25hdmlnYXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFs
LXVybHMvbWFpbi1mcmFtZS1jbGljay5odG1sCkBAIC0wLDAgKzEsMTkgQEAKKzxzY3JpcHQ+CisK
K2lmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwor
ICAgIHRlc3RSdW5uZXIuZHVtcFBvbGljeURlbGVnYXRlQ2FsbGJhY2tzKCk7CisgICAgdGVzdFJ1
bm5lci53YWl0VW50aWxEb25lKCk7Cit9CisKK2Z1bmN0aW9uIHJ1blRlc3QoKQoreworICAgIHdp
bmRvdy5sb2NhdGlvbi5ocmVmID0gInJlc291cmNlcy9jbGljay1ub3RpZnktZG9uZS1pbi1tYWlu
Lmh0bWwiOworfQorCis8L3NjcmlwdD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpOyI+CitUaGlz
IG1haW4gZnJhbWUgbG9hZCBzdGFydHMgd2l0aCB0aGUgc2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJs
cyBmbGFnIHNldCB0byBmYWxzZS48YnI+CitJdCBsb2FkcyBhIG5ldyBwYWdlIHByb2dyYW1tYXRp
Y2FsbHksIGxlYXZpbmcgdGhlIGZsYWcgZmFsc2UuPGJyPgorVGhhdCBuZXcgcGFnZSBjbGlja3Mg
YSBsaW5rLCB3aGljaCBzaG91bGQgc2V0IHRoZSBmbGFnIHRvIHRydWUuCis8L2JvZHk+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4t
ZXh0ZXJuYWwtdXJscy9tYWluLWZyYW1lLW5hdmlnYXRlZC1wcm9ncmFtYXRpY2FsbHktYnktc3Vi
ZnJhbWUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvbG9hZGVyL25hdmlnYXRpb24tcG9saWN5
L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvbWFpbi1mcmFtZS1uYXZpZ2F0ZWQtcHJvZ3JhbWF0
aWNhbGx5LWJ5LXN1YmZyYW1lLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi5mZmUwNzgyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbG9hZGVy
L25hdmlnYXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvbWFpbi1mcmFtZS1u
YXZpZ2F0ZWQtcHJvZ3JhbWF0aWNhbGx5LWJ5LXN1YmZyYW1lLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDcgQEAKKyAtIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24gCis8TlNVUkxSZXF1
ZXN0IFVSTCByZXNvdXJjZXMvbWFpbi1mcmFtZS13aXRoLXN1YmZyYW1lLXByb2dyYW1hdGljYWxs
eS1uYXZpZ2F0ZXMtbWFpbi5odG1sLCBtYWluIGRvY3VtZW50IFVSTCByZXNvdXJjZXMvbWFpbi1m
cmFtZS13aXRoLXN1YmZyYW1lLXByb2dyYW1hdGljYWxseS1uYXZpZ2F0ZXMtbWFpbi5odG1sLCBo
dHRwIG1ldGhvZCBHRVQ+IGlzIG1haW4gZnJhbWUgLSB5ZXMgc2hvdWxkIG9wZW4gVVJMcyBleHRl
cm5hbGx5IC0geWVzCisgLSBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uIAorPE5TVVJM
UmVxdWVzdCBVUkwgcHJvZ3JhbWF0aWNhbGx5LW5hdmlnYXRlLXRvLW5vdGlmeS1kb25lLXRhcmdl
dC10b3AuaHRtbCwgbWFpbiBkb2N1bWVudCBVUkwgbWFpbi1mcmFtZS13aXRoLXN1YmZyYW1lLXBy
b2dyYW1hdGljYWxseS1uYXZpZ2F0ZXMtbWFpbi5odG1sLCBodHRwIG1ldGhvZCBHRVQ+IGlzIG1h
aW4gZnJhbWUgLSBubyBzaG91bGQgb3BlbiBVUkxzIGV4dGVybmFsbHkgLSBubworIC0gZGVjaWRl
UG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbiAKKzxOU1VSTFJlcXVlc3QgVVJMIG5vdGlmeS1kb25l
Lmh0bWwsIG1haW4gZG9jdW1lbnQgVVJMIG5vdGlmeS1kb25lLmh0bWwsIGh0dHAgbWV0aG9kIEdF
VD4gaXMgbWFpbiBmcmFtZSAtIHllcyBzaG91bGQgb3BlbiBVUkxzIGV4dGVybmFsbHkgLSBubwor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxk
LW9wZW4tZXh0ZXJuYWwtdXJscy9tYWluLWZyYW1lLW5hdmlnYXRlZC1wcm9ncmFtYXRpY2FsbHkt
Ynktc3ViZnJhbWUuaHRtbCBiL0xheW91dFRlc3RzL2xvYWRlci9uYXZpZ2F0aW9uLXBvbGljeS9z
aG91bGQtb3Blbi1leHRlcm5hbC11cmxzL21haW4tZnJhbWUtbmF2aWdhdGVkLXByb2dyYW1hdGlj
YWxseS1ieS1zdWJmcmFtZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LjNiYTNlM2QKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdhdGlv
bi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJscy9tYWluLWZyYW1lLW5hdmlnYXRlZC1w
cm9ncmFtYXRpY2FsbHktYnktc3ViZnJhbWUuaHRtbApAQCAtMCwwICsxLDEzIEBACis8c2NyaXB0
PgorCitpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQo
KTsKKyAgICB0ZXN0UnVubmVyLmR1bXBQb2xpY3lEZWxlZ2F0ZUNhbGxiYWNrcygpOworICAgIHRl
c3RSdW5uZXIucXVldWVMb2FkKCJyZXNvdXJjZXMvbWFpbi1mcmFtZS13aXRoLXN1YmZyYW1lLXBy
b2dyYW1hdGljYWxseS1uYXZpZ2F0ZXMtbWFpbi5odG1sIiwgIiIsIHRydWUpOworfQorCis8L3Nj
cmlwdD4KK1RoaXMgcGFnZSBoYXMgZG9lcyBub3QgaGF2ZSB0aGUgInNob3VsZCBvcGVuIGV4dGVy
bmFsIFVSTHMiIGZsYWcgc2V0Ljxicj4KK0l0IG5hdmlnYXRlcyB0byBhIDJuZCBwYWdlIHRoYXQg
ZG9lcyBoYXZlIHRoZSBmbGFnIHNldC48YnI+CitUaGF0IDJuZCBwYWdlIGNvbnRhaW5zIGFuIGlm
cmFtZSB3aGljaCBwcm9ncmFtYXRpY2FsbHkgbmF2aWdhdGVzIHRoZSBtYWluIGZyYW1lIHRvIGEg
M3JkIHBhZ2UuPGJyPgorVGhlICJzaG91bGQgb3BlbiBleHRlcm5hbCBVUkxzIiBmbGFnIHNob3Vs
ZCBiZSB1bnNldCBiZWNhdXNlIHRoZSBzdWJmcmFtZS0+bWFpbiBmcmFtZSBuYXZpZ2F0aW9uIHdh
cyBwcm9ncmFtYXRpYy48YnI+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdh
dGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJscy9tYWluLWZyYW1lLXdpdGgtZmxh
Zy1wcm9nYW1hdGljLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2xvYWRlci9uYXZpZ2F0aW9u
LXBvbGljeS9zaG91bGQtb3Blbi1leHRlcm5hbC11cmxzL21haW4tZnJhbWUtd2l0aC1mbGFnLXBy
b2dhbWF0aWMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LjI2NDFhZGQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdhdGlv
bi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJscy9tYWluLWZyYW1lLXdpdGgtZmxhZy1w
cm9nYW1hdGljLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKKyAtIGRlY2lkZVBvbGljeUZv
ck5hdmlnYXRpb25BY3Rpb24gCis8TlNVUkxSZXF1ZXN0IFVSTCByZXNvdXJjZXMvcHJvZ3JhbWF0
aWNhbGx5LW5hdmlnYXRlLXRvLW5vdGlmeS1kb25lLmh0bWwsIG1haW4gZG9jdW1lbnQgVVJMIHJl
c291cmNlcy9wcm9ncmFtYXRpY2FsbHktbmF2aWdhdGUtdG8tbm90aWZ5LWRvbmUuaHRtbCwgaHR0
cCBtZXRob2QgR0VUPiBpcyBtYWluIGZyYW1lIC0geWVzIHNob3VsZCBvcGVuIFVSTHMgZXh0ZXJu
YWxseSAtIHllcworIC0gZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbiAKKzxOU1VSTFJl
cXVlc3QgVVJMIG5vdGlmeS1kb25lLmh0bWwsIG1haW4gZG9jdW1lbnQgVVJMIG5vdGlmeS1kb25l
Lmh0bWwsIGh0dHAgbWV0aG9kIEdFVD4gaXMgbWFpbiBmcmFtZSAtIHllcyBzaG91bGQgb3BlbiBV
UkxzIGV4dGVybmFsbHkgLSB5ZXMKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbG9hZGVyL25h
dmlnYXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvbWFpbi1mcmFtZS13aXRo
LWZsYWctcHJvZ2FtYXRpYy5odG1sIGIvTGF5b3V0VGVzdHMvbG9hZGVyL25hdmlnYXRpb24tcG9s
aWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvbWFpbi1mcmFtZS13aXRoLWZsYWctcHJvZ2Ft
YXRpYy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjllM2RlMzgKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hv
dWxkLW9wZW4tZXh0ZXJuYWwtdXJscy9tYWluLWZyYW1lLXdpdGgtZmxhZy1wcm9nYW1hdGljLmh0
bWwKQEAgLTAsMCArMSwxMiBAQAorPHNjcmlwdD4KKworaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7
CisgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgdGVzdFJ1bm5lci5kdW1wUG9saWN5
RGVsZWdhdGVDYWxsYmFja3MoKTsKKyAgICB0ZXN0UnVubmVyLnF1ZXVlTG9hZCgicmVzb3VyY2Vz
L3Byb2dyYW1hdGljYWxseS1uYXZpZ2F0ZS10by1ub3RpZnktZG9uZS5odG1sIiwgIiIsIHRydWUp
OworfQorCis8L3NjcmlwdD4KK1RoaXMgcGFnZSBuYXZpZ2F0ZXMgdG8gYSAybmQgcGFnZSB1c2lu
ZyB0aGUgQVBJIHRoYXQgc2V0cyB0aGUgInNob3VsZCBvcGVuIGV4dGVybmFsIFVSTHMiIGZsYWcg
dG8gdHJ1ZS48YnI+CitUaGF0IHBhZ2UgdGhlbiBwcm9ncmFtYXRpY2FsbHkgcmVkaXJlY3RzIHRv
IGEgM3JkIHBhZ2UuPGJyPgorVGhhdCBuYXZpZ2F0aW9uIGZyb20gdGhlIDJuZCBwYWdlIHRvIHRo
ZSAzcmQgcGFnZSBzaG91bGQgc3RpbGwgaGF2ZSB0aGUgZmxhZyBzZXQsIGJlY2F1c2UgdGhlIGZs
YWcgcHJvcGFnYXRlcyB0aHJvdWdoIG1haW4gZnJhbWUgbG9hZHMuPGJyPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvbG9hZGVyL25hdmlnYXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFs
LXVybHMvbWFpbi1mcmFtZS13aXRob3V0LWZsYWctcHJvZ3JhbWF0aWMtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvbG9hZGVyL25hdmlnYXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFs
LXVybHMvbWFpbi1mcmFtZS13aXRob3V0LWZsYWctcHJvZ3JhbWF0aWMtZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNjNDk4MGEKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0
ZXJuYWwtdXJscy9tYWluLWZyYW1lLXdpdGhvdXQtZmxhZy1wcm9ncmFtYXRpYy1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSw1IEBACisgLSBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uIAor
PE5TVVJMUmVxdWVzdCBVUkwgcmVzb3VyY2VzL3Byb2dyYW1hdGljYWxseS1uYXZpZ2F0ZS10by1u
b3RpZnktZG9uZS5odG1sLCBtYWluIGRvY3VtZW50IFVSTCByZXNvdXJjZXMvcHJvZ3JhbWF0aWNh
bGx5LW5hdmlnYXRlLXRvLW5vdGlmeS1kb25lLmh0bWwsIGh0dHAgbWV0aG9kIEdFVD4gaXMgbWFp
biBmcmFtZSAtIHllcyBzaG91bGQgb3BlbiBVUkxzIGV4dGVybmFsbHkgLSBubworIC0gZGVjaWRl
UG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbiAKKzxOU1VSTFJlcXVlc3QgVVJMIG5vdGlmeS1kb25l
Lmh0bWwsIG1haW4gZG9jdW1lbnQgVVJMIG5vdGlmeS1kb25lLmh0bWwsIGh0dHAgbWV0aG9kIEdF
VD4gaXMgbWFpbiBmcmFtZSAtIHllcyBzaG91bGQgb3BlbiBVUkxzIGV4dGVybmFsbHkgLSBubwor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxk
LW9wZW4tZXh0ZXJuYWwtdXJscy9tYWluLWZyYW1lLXdpdGhvdXQtZmxhZy1wcm9ncmFtYXRpYy5o
dG1sIGIvTGF5b3V0VGVzdHMvbG9hZGVyL25hdmlnYXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4
dGVybmFsLXVybHMvbWFpbi1mcmFtZS13aXRob3V0LWZsYWctcHJvZ3JhbWF0aWMuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40YjU5ODAwCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvbG9hZGVyL25hdmlnYXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVy
bmFsLXVybHMvbWFpbi1mcmFtZS13aXRob3V0LWZsYWctcHJvZ3JhbWF0aWMuaHRtbApAQCAtMCww
ICsxLDEyIEBACis8c2NyaXB0PgorCitpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICB0ZXN0
UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICB0ZXN0UnVubmVyLmR1bXBQb2xpY3lEZWxlZ2F0ZUNh
bGxiYWNrcygpOworICAgIHRlc3RSdW5uZXIucXVldWVMb2FkKCJyZXNvdXJjZXMvcHJvZ3JhbWF0
aWNhbGx5LW5hdmlnYXRlLXRvLW5vdGlmeS1kb25lLmh0bWwiKTsKK30KKworPC9zY3JpcHQ+CitU
aGlzIHBhZ2UgbmF2aWdhdGVzIHRvIGEgMm5kIHBhZ2Ugd2l0aCB0aGUgInNob3VsZCBvcGVuIGV4
dGVybmFsIFVSTHMiIGZsYWcgc2V0IHRvIGZhbHNlLjxicj4KK1RoYXQgcGFnZSB0aGVuIHByb2dy
YW1hdGljYWxseSByZWRpcmVjdHMgdG8gYSAzcmQgcGFnZS48YnI+CitEdXJpbmcgdGhlIG5hdmln
YXRpb24gZnJvbSB0aGUgMm5kIHBhZ2UgdG8gdGhlIDNyZCBwYWdlIHRoZSBmbGFnIHNob3VsZCBz
dGlsbCBiZSBmYWxzZSwgYmVjYXVzZSBubyB1c2VyIGdlc3R1cmUgd2FzIGludm9sdmVkLjxicj4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2xvYWRlci9uYXZpZ2F0aW9uLXBvbGljeS9zaG91bGQt
b3Blbi1leHRlcm5hbC11cmxzL3Jlc291cmNlcy9jbGljay1ub3RpZnktZG9uZS1pbi1tYWluLmh0
bWwgYi9MYXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0
ZXJuYWwtdXJscy9yZXNvdXJjZXMvY2xpY2stbm90aWZ5LWRvbmUtaW4tbWFpbi5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAyNzAxZDcKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJu
YWwtdXJscy9yZXNvdXJjZXMvY2xpY2stbm90aWZ5LWRvbmUtaW4tbWFpbi5odG1sCkBAIC0wLDAg
KzEsMTQgQEAKKzxzY3JpcHQ+CitmdW5jdGlvbiBydW5UZXN0KCkKK3sKKyAgICBpZiAod2luZG93
LmV2ZW50U2VuZGVyKSB7CisgICAgICAgIHZhciBhID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
ImEiKTsKKyAgICAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oYS5vZmZzZXRMZWZ0ICsgMiwg
YS5vZmZzZXRUb3AgKyAyKTsKKyAgICAgICAgZXZlbnRTZW5kZXIubW91c2VEb3duKCk7CisgICAg
ICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAoKTsKKyAgICB9Cit9Cis8L3NjcmlwdD4KKzxib2R5IG9u
bG9hZD0icnVuVGVzdCgpOyI+Cis8YSBpZD0iYSIgaHJlZj0ibm90aWZ5LWRvbmUuaHRtbCIgdGFy
Z2V0PSJfdG9wIj5DbGljayBmb3Igbm90aWZ5IGRvbmUgaW4gbWFpbiBmcmFtZTwvYT4KKzwvYm9k
eT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2xvYWRlci9uYXZpZ2F0aW9uLXBvbGljeS9zaG91
bGQtb3Blbi1leHRlcm5hbC11cmxzL3Jlc291cmNlcy9pZnJhbWUtY2xpY2stbm90aWZ5LWRvbmUt
dGFyZ2V0LXNlbGYuaHRtbCBiL0xheW91dFRlc3RzL2xvYWRlci9uYXZpZ2F0aW9uLXBvbGljeS9z
aG91bGQtb3Blbi1leHRlcm5hbC11cmxzL3Jlc291cmNlcy9pZnJhbWUtY2xpY2stbm90aWZ5LWRv
bmUtdGFyZ2V0LXNlbGYuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41
ZTAwMjUxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbG9hZGVyL25hdmlnYXRpb24t
cG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvcmVzb3VyY2VzL2lmcmFtZS1jbGljay1u
b3RpZnktZG9uZS10YXJnZXQtc2VsZi5odG1sCkBAIC0wLDAgKzEsMTggQEAKKzxzY3JpcHQ+CisK
K2Z1bmN0aW9uIHJ1blRlc3QoKQoreworICAgIGlmICghd2luZG93LmV2ZW50U2VuZGVyKQorICAg
ICAgICByZXR1cm47CisKKyAgICB2YXIgYSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhIik7
CisgICAgdmFyIGlmcmFtZSA9IHdpbmRvdy5wYXJlbnQuZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRh
Z05hbWUoImlmcmFtZSIpWzBdOworICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKGEub2Zmc2V0
TGVmdCArIGlmcmFtZS5vZmZzZXRMZWZ0ICsgMiwgYS5vZmZzZXRUb3AgKyBpZnJhbWUub2Zmc2V0
VG9wICsgMik7CisgICAgZXZlbnRTZW5kZXIubW91c2VEb3duKCk7CisgICAgZXZlbnRTZW5kZXIu
bW91c2VVcCgpOworfQorCis8L3NjcmlwdD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpOyI+Cis8
YSBpZD0iYSIgaHJlZj0ibm90aWZ5LWRvbmUuaHRtbCIgdGFyZ2V0PSJfc2VsZiI+Q2xpY2sgZm9y
IG5vdGlmeSBkb25lIGluIHRoaXMgZnJhbWU8L2E+Cis8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9sb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJs
cy9yZXNvdXJjZXMvaWZyYW1lLWNsaWNrLW5vdGlmeS1kb25lLXRhcmdldC10b3AuaHRtbCBiL0xh
eW91dFRlc3RzL2xvYWRlci9uYXZpZ2F0aW9uLXBvbGljeS9zaG91bGQtb3Blbi1leHRlcm5hbC11
cmxzL3Jlc291cmNlcy9pZnJhbWUtY2xpY2stbm90aWZ5LWRvbmUtdGFyZ2V0LXRvcC5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU2YThmYTEKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0
ZXJuYWwtdXJscy9yZXNvdXJjZXMvaWZyYW1lLWNsaWNrLW5vdGlmeS1kb25lLXRhcmdldC10b3Au
aHRtbApAQCAtMCwwICsxLDE4IEBACis8c2NyaXB0PgorCitmdW5jdGlvbiBydW5UZXN0KCkKK3sK
KyAgICBpZiAoIXdpbmRvdy5ldmVudFNlbmRlcikKKyAgICAgICAgcmV0dXJuOworCisgICAgdmFy
IGEgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYSIpOworICAgIHZhciBpZnJhbWUgPSB3aW5k
b3cucGFyZW50LmRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJpZnJhbWUiKVswXTsKKyAg
ICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyhhLm9mZnNldExlZnQgKyBpZnJhbWUub2Zmc2V0TGVm
dCArIDIsIGEub2Zmc2V0VG9wICsgaWZyYW1lLm9mZnNldFRvcCArIDIpOworICAgIGV2ZW50U2Vu
ZGVyLm1vdXNlRG93bigpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAoKTsKK30KKworPC9zY3Jp
cHQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKTsiPgorPGEgaWQ9ImEiIGhyZWY9Im5vdGlmeS1k
b25lLmh0bWwiIHRhcmdldD0iX3RvcCI+Q2xpY2sgZm9yIG5vdGlmeSBkb25lIGluIHRoZSBtYWlu
IGZyYW1lPC9hPgorPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbG9hZGVyL25hdmln
YXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvcmVzb3VyY2VzL21haW4tZnJh
bWUtd2l0aC1zdWJmcmFtZS1jbGljay10YXJnZXRzLXN1YmZyYW1lLmh0bWwgYi9MYXlvdXRUZXN0
cy9sb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJscy9yZXNv
dXJjZXMvbWFpbi1mcmFtZS13aXRoLXN1YmZyYW1lLWNsaWNrLXRhcmdldHMtc3ViZnJhbWUuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iMTEzMDE1Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvbG9hZGVyL25hdmlnYXRpb24tcG9saWN5L3Nob3VsZC1vcGVu
LWV4dGVybmFsLXVybHMvcmVzb3VyY2VzL21haW4tZnJhbWUtd2l0aC1zdWJmcmFtZS1jbGljay10
YXJnZXRzLXN1YmZyYW1lLmh0bWwKQEAgLTAsMCArMSw1IEBACitUaGlzIHBhZ2UgY29udGFpbnMg
YSBzdWJmcmFtZS48YnI+CitDbGlja2luZyB0aGUgbGluayBpbiB0aGUgc3ViZnJhbWUgbmF2aWdh
dGVzIHRoZSBzdWJmcmFtZS48YnI+CitUaGUgInNob3VsZCBvcGVuIGV4dGVybmFsIFVSTHMiIGZs
YWcgb24gdGhhdCBuYXZpZ2F0aW9uIHNob3VsZCBiZSBmYWxzZS4gRXZlbiB0aG91Z2ggaXQgd2Fz
IGEgbGluayBjbGljaywgaXQgd2FzIHdpdGhpbiBhIHN1YmZyYW1lIHdoaWNoIHNob3VsZCBuZXZl
ciBnZXQgdGhlIGZsYWcgc2V0IHRvIHRydWUuPGJyPgorPGlmcmFtZSBzcmM9ImNsaWNrLW5vdGlm
eS1kb25lLWluLXNlbGYuaHRtbCI+PC9pZnJhbWU+CisgClwgTm8gbmV3bGluZSBhdCBlbmQgb2Yg
ZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbG9hZGVyL25hdmlnYXRpb24tcG9saWN5L3No
b3VsZC1vcGVuLWV4dGVybmFsLXVybHMvcmVzb3VyY2VzL21haW4tZnJhbWUtd2l0aC1zdWJmcmFt
ZS1wcm9ncmFtYXRpY2FsbHktbmF2aWdhdGVzLW1haW4uaHRtbCBiL0xheW91dFRlc3RzL2xvYWRl
ci9uYXZpZ2F0aW9uLXBvbGljeS9zaG91bGQtb3Blbi1leHRlcm5hbC11cmxzL3Jlc291cmNlcy9t
YWluLWZyYW1lLXdpdGgtc3ViZnJhbWUtcHJvZ3JhbWF0aWNhbGx5LW5hdmlnYXRlcy1tYWluLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODY2NjM4MgotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2xvYWRlci9uYXZpZ2F0aW9uLXBvbGljeS9zaG91bGQtb3Bl
bi1leHRlcm5hbC11cmxzL3Jlc291cmNlcy9tYWluLWZyYW1lLXdpdGgtc3ViZnJhbWUtcHJvZ3Jh
bWF0aWNhbGx5LW5hdmlnYXRlcy1tYWluLmh0bWwKQEAgLTAsMCArMSw2IEBACis8c2NyaXB0Pgor
aWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwor
PC9zY3JpcHQ+CisKKzxpZnJhbWUgc3JjPSJwcm9ncmFtYXRpY2FsbHktbmF2aWdhdGUtdG8tbm90
aWZ5LWRvbmUtdGFyZ2V0LXRvcC5odG1sIj48L2lmcmFtZT4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2xvYWRlci9uYXZpZ2F0aW9uLXBvbGljeS9zaG91bGQtb3Blbi1leHRlcm5hbC11cmxzL3Jl
c291cmNlcy9wcm9ncmFtYXRpY2FsbHktbmF2aWdhdGUtdG8tbm90aWZ5LWRvbmUtdGFyZ2V0LXRv
cC5odG1sIGIvTGF5b3V0VGVzdHMvbG9hZGVyL25hdmlnYXRpb24tcG9saWN5L3Nob3VsZC1vcGVu
LWV4dGVybmFsLXVybHMvcmVzb3VyY2VzL3Byb2dyYW1hdGljYWxseS1uYXZpZ2F0ZS10by1ub3Rp
ZnktZG9uZS10YXJnZXQtdG9wLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uMTk3YTQzMjYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdh
dGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJscy9yZXNvdXJjZXMvcHJvZ3JhbWF0
aWNhbGx5LW5hdmlnYXRlLXRvLW5vdGlmeS1kb25lLXRhcmdldC10b3AuaHRtbApAQCAtMCwwICsx
LDE0IEBACis8c2NyaXB0PgorCitpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgdGVzdFJ1bm5l
ci53YWl0VW50aWxEb25lKCk7CisgICAgCitmdW5jdGlvbiBsb2FkZWQoKQoreworICAgIHdpbmRv
dy50b3AubG9jYXRpb24uaHJlZiA9ICJub3RpZnktZG9uZS5odG1sIjsKK30KKworPC9zY3JpcHQ+
Cis8Ym9keSBvbmxvYWQ9ImxvYWRlZCgpOyI+CitUaGlzIHBhZ2UgZG9lcyBhIGphdmFzY3JpcHQg
Y2xpZW50IHJlZGlyZWN0IHRvIG5vdGlmeS1kb25lLmh0bWwgaW4gdGhlIG1haW4gZnJhbWUuCis8
L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kv
c2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJscy9yZXNvdXJjZXMvcHJvZ3JhbWF0aWNhbGx5LW5hdmln
YXRlLXRvLW5vdGlmeS1kb25lLmh0bWwgYi9MYXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdhdGlvbi1w
b2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJscy9yZXNvdXJjZXMvcHJvZ3JhbWF0aWNhbGx5
LW5hdmlnYXRlLXRvLW5vdGlmeS1kb25lLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMC4uYjU5YjliYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2xvYWRlci9u
YXZpZ2F0aW9uLXBvbGljeS9zaG91bGQtb3Blbi1leHRlcm5hbC11cmxzL3Jlc291cmNlcy9wcm9n
cmFtYXRpY2FsbHktbmF2aWdhdGUtdG8tbm90aWZ5LWRvbmUuaHRtbApAQCAtMCwwICsxLDE0IEBA
Cis8c2NyaXB0PgorCitpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgdGVzdFJ1bm5lci53YWl0
VW50aWxEb25lKCk7CisgICAgCitmdW5jdGlvbiBsb2FkZWQoKQoreworICAgIHdpbmRvdy5sb2Nh
dGlvbi5ocmVmID0gIm5vdGlmeS1kb25lLmh0bWwiOworfQorCis8L3NjcmlwdD4KKzxib2R5IG9u
bG9hZD0ibG9hZGVkKCk7Ij4KK1RoaXMgcGFnZSBkb2VzIGEgamF2YXNjcmlwdCBjbGllbnQgcmVk
aXJlY3QgdG8gbm90aWZ5LWRvbmUuaHRtbC4KKzwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2xvYWRlci9uYXZpZ2F0aW9uLXBvbGljeS9zaG91bGQtb3Blbi1leHRlcm5hbC11cmxzL3Jl
c291cmNlcy91c2VyLWdlc3R1cmUtdGFyZ2V0LWJsYW5rLXRvLW5vdGlmeS1kb25lLWZyb20tc3Vi
ZnJhbWUuaHRtbCBiL0xheW91dFRlc3RzL2xvYWRlci9uYXZpZ2F0aW9uLXBvbGljeS9zaG91bGQt
b3Blbi1leHRlcm5hbC11cmxzL3Jlc291cmNlcy91c2VyLWdlc3R1cmUtdGFyZ2V0LWJsYW5rLXRv
LW5vdGlmeS1kb25lLWZyb20tc3ViZnJhbWUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi4wMmM3NDM1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbG9hZGVy
L25hdmlnYXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvcmVzb3VyY2VzL3Vz
ZXItZ2VzdHVyZS10YXJnZXQtYmxhbmstdG8tbm90aWZ5LWRvbmUtZnJvbS1zdWJmcmFtZS5odG1s
CkBAIC0wLDAgKzEgQEAKKzxpZnJhbWUgc3JjPSJ1c2VyLWdlc3R1cmUtdGFyZ2V0LWJsYW5rLXRv
LW5vdGlmeS1kb25lLmh0bWwiPjwvaWZyYW1lPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2xvYWRlci9uYXZpZ2F0aW9uLXBvbGljeS9zaG91bGQt
b3Blbi1leHRlcm5hbC11cmxzL3Jlc291cmNlcy91c2VyLWdlc3R1cmUtdGFyZ2V0LWJsYW5rLXRv
LW5vdGlmeS1kb25lLmh0bWwgYi9MYXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kv
c2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJscy9yZXNvdXJjZXMvdXNlci1nZXN0dXJlLXRhcmdldC1i
bGFuay10by1ub3RpZnktZG9uZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLmIzOWRkOGYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdh
dGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJscy9yZXNvdXJjZXMvdXNlci1nZXN0
dXJlLXRhcmdldC1ibGFuay10by1ub3RpZnktZG9uZS5odG1sCkBAIC0wLDAgKzEsMjggQEAKKzxz
Y3JpcHQ+CisKK2lmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgIHRlc3RSdW5uZXIud2FpdFVu
dGlsRG9uZSgpOworICAgIHRlc3RSdW5uZXIuc2V0Q2FuT3BlbldpbmRvd3MoKTsKK30KKworZnVu
Y3Rpb24gbG9hZGVkKCkKK3sKKyAgICBpZiAoIXdpbmRvdy5ldmVudFNlbmRlcikKKyAgICAgICAg
cmV0dXJuOworCisgICAgdmFyIGEgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYSIpOworICAg
IHZhciBpZnJhbWUgPSB3aW5kb3cucGFyZW50LmRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1l
KCJpZnJhbWUiKVswXTsKKworICAgIGlmIChpZnJhbWUpCisgICAgICAgIGV2ZW50U2VuZGVyLm1v
dXNlTW92ZVRvKGEub2Zmc2V0TGVmdCArIGlmcmFtZS5vZmZzZXRMZWZ0ICsgMiwgYS5vZmZzZXRU
b3AgKyBpZnJhbWUub2Zmc2V0VG9wICsgMik7CisgICAgZWxzZQorICAgICAgICBldmVudFNlbmRl
ci5tb3VzZU1vdmVUbyhhLm9mZnNldExlZnQgKyAyLCBhLm9mZnNldFRvcCArIDIpOworCisgICAg
ZXZlbnRTZW5kZXIubW91c2VEb3duKCk7CisgICAgZXZlbnRTZW5kZXIubW91c2VVcCgpOworfQor
Cis8L3NjcmlwdD4KKzxib2R5IG9ubG9hZD0ibG9hZGVkKCk7Ij4KKzxhIGlkPSJhIiBocmVmPSJu
b3RpZnktZG9uZS5odG1sIiB0YXJnZXQ9Il9ibGFuayI+Q2xpY2sgdG8gb3BlbiBsaW5rIGluIG5l
dyB3aW5kb3cuPC9hPgorPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbG9hZGVyL25h
dmlnYXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvcmVzb3VyY2VzL3VzZXIt
Z2VzdHVyZS13aW5kb3ctb3Blbi10by1ub3RpZnktZG9uZS1mcm9tLXN1YmZyYW1lLmh0bWwgYi9M
YXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwt
dXJscy9yZXNvdXJjZXMvdXNlci1nZXN0dXJlLXdpbmRvdy1vcGVuLXRvLW5vdGlmeS1kb25lLWZy
b20tc3ViZnJhbWUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41MGZj
NmVmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbG9hZGVyL25hdmlnYXRpb24tcG9s
aWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvcmVzb3VyY2VzL3VzZXItZ2VzdHVyZS13aW5k
b3ctb3Blbi10by1ub3RpZnktZG9uZS1mcm9tLXN1YmZyYW1lLmh0bWwKQEAgLTAsMCArMSBAQAor
PGlmcmFtZSBzcmM9InVzZXItZ2VzdHVyZS13aW5kb3ctb3Blbi10by1ub3RpZnktZG9uZS5odG1s
Ij48L2lmcmFtZT4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9sb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJs
cy9yZXNvdXJjZXMvdXNlci1nZXN0dXJlLXdpbmRvdy1vcGVuLXRvLW5vdGlmeS1kb25lLmh0bWwg
Yi9MYXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJu
YWwtdXJscy9yZXNvdXJjZXMvdXNlci1nZXN0dXJlLXdpbmRvdy1vcGVuLXRvLW5vdGlmeS1kb25l
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjk2MzhjNAotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2xvYWRlci9uYXZpZ2F0aW9uLXBvbGljeS9zaG91bGQt
b3Blbi1leHRlcm5hbC11cmxzL3Jlc291cmNlcy91c2VyLWdlc3R1cmUtd2luZG93LW9wZW4tdG8t
bm90aWZ5LWRvbmUuaHRtbApAQCAtMCwwICsxLDMzIEBACis8c2NyaXB0PgorCitpZiAod2luZG93
LnRlc3RSdW5uZXIpIHsKKyAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICB0ZXN0
UnVubmVyLnNldENhbk9wZW5XaW5kb3dzKCk7Cit9CisKK2Z1bmN0aW9uIGxvYWRlZCgpCit7Cisg
ICAgaWYgKCF3aW5kb3cuZXZlbnRTZW5kZXIpCisgICAgICAgIHJldHVybjsKKworICAgIHZhciBh
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImEiKTsKKyAgICB2YXIgaWZyYW1lID0gd2luZG93
LnBhcmVudC5kb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaWZyYW1lIilbMF07CisKKyAg
ICBpZiAoaWZyYW1lKQorICAgICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyhhLm9mZnNldExl
ZnQgKyBpZnJhbWUub2Zmc2V0TGVmdCArIDIsIGEub2Zmc2V0VG9wICsgaWZyYW1lLm9mZnNldFRv
cCArIDIpOworICAgIGVsc2UKKyAgICAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oYS5vZmZz
ZXRMZWZ0ICsgMiwgYS5vZmZzZXRUb3AgKyAyKTsKKworICAgIGV2ZW50U2VuZGVyLm1vdXNlRG93
bigpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAoKTsKK30KKworZnVuY3Rpb24gY2xpY2tlZCgp
Cit7CisgICAgd2luZG93Lm9wZW4oIm5vdGlmeS1kb25lLmh0bWwiKTsKK30KKworPC9zY3JpcHQ+
Cis8Ym9keSBvbmxvYWQ9ImxvYWRlZCgpOyI+Cis8YSBpZD0iYSIgb25jbGljaz0iY2xpY2tlZCgp
OyI+Q2xpY2sgdG8gZG8gYSB3aW5kb3cub3BlbjwvYT4KKzwvYm9keT4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2xvYWRlci9uYXZpZ2F0aW9uLXBvbGljeS9zaG91bGQtb3Blbi1leHRlcm5hbC11
cmxzL3Jlc291cmNlcy93aW5kb3ctb3Blbi10by1ub3RpZnktZG9uZS1mcm9tLXN1YmZyYW1lLmh0
bWwgYi9MYXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0
ZXJuYWwtdXJscy9yZXNvdXJjZXMvd2luZG93LW9wZW4tdG8tbm90aWZ5LWRvbmUtZnJvbS1zdWJm
cmFtZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNlZGQ1MTcKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hv
dWxkLW9wZW4tZXh0ZXJuYWwtdXJscy9yZXNvdXJjZXMvd2luZG93LW9wZW4tdG8tbm90aWZ5LWRv
bmUtZnJvbS1zdWJmcmFtZS5odG1sCkBAIC0wLDAgKzEgQEAKKzxpZnJhbWUgc3JjPSJ3aW5kb3ct
b3Blbi10by1ub3RpZnktZG9uZS5odG1sIj48L2lmcmFtZT4KXCBObyBuZXdsaW5lIGF0IGVuZCBv
ZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kv
c2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJscy9yZXNvdXJjZXMvd2luZG93LW9wZW4tdG8tbm90aWZ5
LWRvbmUuaHRtbCBiL0xheW91dFRlc3RzL2xvYWRlci9uYXZpZ2F0aW9uLXBvbGljeS9zaG91bGQt
b3Blbi1leHRlcm5hbC11cmxzL3Jlc291cmNlcy93aW5kb3ctb3Blbi10by1ub3RpZnktZG9uZS5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdkMmQwOTAKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9w
ZW4tZXh0ZXJuYWwtdXJscy9yZXNvdXJjZXMvd2luZG93LW9wZW4tdG8tbm90aWZ5LWRvbmUuaHRt
bApAQCAtMCwwICsxLDE1IEBACis8c2NyaXB0PgorCitpZiAod2luZG93LnRlc3RSdW5uZXIpIHsK
KyAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICB0ZXN0UnVubmVyLnNldENhbk9w
ZW5XaW5kb3dzKCk7Cit9CisKK2Z1bmN0aW9uIGxvYWRlZCgpCit7CisgICAgd2luZG93Lm9wZW4o
Im5vdGlmeS1kb25lLmh0bWwiKTsKK30KKworPC9zY3JpcHQ+Cis8Ym9keSBvbmxvYWQ9ImxvYWRl
ZCgpOyI+Cis8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdhdGlv
bi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJscy9zdWJmcmFtZS1jbGljay10YXJnZXQt
c2VsZi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kv
c2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJscy9zdWJmcmFtZS1jbGljay10YXJnZXQtc2VsZi1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzA1NTUzMwotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2xvYWRlci9uYXZpZ2F0aW9uLXBvbGljeS9zaG91
bGQtb3Blbi1leHRlcm5hbC11cmxzL3N1YmZyYW1lLWNsaWNrLXRhcmdldC1zZWxmLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDkgQEAKKyAtIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24g
Cis8TlNVUkxSZXF1ZXN0IFVSTCBhYm91dDpibGFuaywgbWFpbiBkb2N1bWVudCBVUkwgc3ViZnJh
bWUtY2xpY2stdGFyZ2V0LXNlbGYuaHRtbCwgaHR0cCBtZXRob2QgR0VUPiBpcyBtYWluIGZyYW1l
IC0gbm8gc2hvdWxkIG9wZW4gVVJMcyBleHRlcm5hbGx5IC0gbm8KKyAtIGRlY2lkZVBvbGljeUZv
ck5hdmlnYXRpb25BY3Rpb24gCis8TlNVUkxSZXF1ZXN0IFVSTCByZXNvdXJjZXMvaWZyYW1lLWNs
aWNrLW5vdGlmeS1kb25lLXRhcmdldC1zZWxmLmh0bWwsIG1haW4gZG9jdW1lbnQgVVJMIHN1YmZy
YW1lLWNsaWNrLXRhcmdldC1zZWxmLmh0bWwsIGh0dHAgbWV0aG9kIEdFVD4gaXMgbWFpbiBmcmFt
ZSAtIG5vIHNob3VsZCBvcGVuIFVSTHMgZXh0ZXJuYWxseSAtIG5vCisgLSBkZWNpZGVQb2xpY3lG
b3JOYXZpZ2F0aW9uQWN0aW9uIAorPE5TVVJMUmVxdWVzdCBVUkwgcmVzb3VyY2VzL25vdGlmeS1k
b25lLmh0bWwsIG1haW4gZG9jdW1lbnQgVVJMIHN1YmZyYW1lLWNsaWNrLXRhcmdldC1zZWxmLmh0
bWwsIGh0dHAgbWV0aG9kIEdFVD4gaXMgbWFpbiBmcmFtZSAtIG5vIHNob3VsZCBvcGVuIFVSTHMg
ZXh0ZXJuYWxseSAtIG5vCitUaGlzIHBhZ2UgaGFzIGEgc3ViZnJhbWUgd2l0aCBhIGxpbmsuCitU
aGVuIGEgbGluayBpcyBjbGlja2VkIGluIHRoYXQgc3ViZnJhbWUgdGhhdCBuYXZpZ2F0ZXMgaW5z
aWRlIHRoYXQgc3ViZnJhbWUsIGFuZCB0aGF0IG5hdmlnYXRpb24gc2hvdWxkIGhhdmUgdGhlICJz
aG91bGQgb3BlbiBleHRlcm5hbCB1cmxzIiBmbGFnIHNldCB0byBmYWxzZSBldmVuIHRob3VnaCBp
dCB3YXMgZnJvbSBhIHVzZXIgZ2VzdHVyZS4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbG9h
ZGVyL25hdmlnYXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvc3ViZnJhbWUt
Y2xpY2stdGFyZ2V0LXNlbGYuaHRtbCBiL0xheW91dFRlc3RzL2xvYWRlci9uYXZpZ2F0aW9uLXBv
bGljeS9zaG91bGQtb3Blbi1leHRlcm5hbC11cmxzL3N1YmZyYW1lLWNsaWNrLXRhcmdldC1zZWxm
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTRlZDdkZQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2xvYWRlci9uYXZpZ2F0aW9uLXBvbGljeS9zaG91bGQt
b3Blbi1leHRlcm5hbC11cmxzL3N1YmZyYW1lLWNsaWNrLXRhcmdldC1zZWxmLmh0bWwKQEAgLTAs
MCArMSwxOSBAQAorPHNjcmlwdD4KKworaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgdGVz
dFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgdGVzdFJ1bm5lci5kdW1wUG9saWN5RGVsZWdhdGVD
YWxsYmFja3MoKTsKKyAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKK30KKworZnVuY3Rp
b24gcnVuVGVzdCgpCit7CisgICAgd2luZG93LmZyYW1lc1swXS5sb2NhdGlvbiA9ICJyZXNvdXJj
ZXMvaWZyYW1lLWNsaWNrLW5vdGlmeS1kb25lLXRhcmdldC1zZWxmLmh0bWwiOworfQorCis8L3Nj
cmlwdD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpOyI+CitUaGlzIHBhZ2UgaGFzIGEgc3ViZnJh
bWUgd2l0aCBhIGxpbmsuPGJyPgorVGhlbiBhIGxpbmsgaXMgY2xpY2tlZCBpbiB0aGF0IHN1YmZy
YW1lIHRoYXQgbmF2aWdhdGVzIGluc2lkZSB0aGF0IHN1YmZyYW1lLCBhbmQgdGhhdCBuYXZpZ2F0
aW9uIHNob3VsZCBoYXZlIHRoZSAic2hvdWxkIG9wZW4gZXh0ZXJuYWwgdXJscyIgZmxhZyBzZXQg
dG8gZmFsc2UgZXZlbiB0aG91Z2ggaXQgd2FzIGZyb20gYSB1c2VyIGdlc3R1cmUuPGJyPgorPGlm
cmFtZT48L2lmcmFtZT4KKzwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2xvYWRlci9u
YXZpZ2F0aW9uLXBvbGljeS9zaG91bGQtb3Blbi1leHRlcm5hbC11cmxzL3N1YmZyYW1lLWNsaWNr
LXRhcmdldC10b3AtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvbG9hZGVyL25hdmlnYXRpb24t
cG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvc3ViZnJhbWUtY2xpY2stdGFyZ2V0LXRv
cC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWI1ZDNm
NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2xvYWRlci9uYXZpZ2F0aW9uLXBvbGlj
eS9zaG91bGQtb3Blbi1leHRlcm5hbC11cmxzL3N1YmZyYW1lLWNsaWNrLXRhcmdldC10b3AtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsNyBAQAorIC0gZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFj
dGlvbiAKKzxOU1VSTFJlcXVlc3QgVVJMIGFib3V0OmJsYW5rLCBtYWluIGRvY3VtZW50IFVSTCBz
dWJmcmFtZS1jbGljay10YXJnZXQtdG9wLmh0bWwsIGh0dHAgbWV0aG9kIEdFVD4gaXMgbWFpbiBm
cmFtZSAtIG5vIHNob3VsZCBvcGVuIFVSTHMgZXh0ZXJuYWxseSAtIG5vCisgLSBkZWNpZGVQb2xp
Y3lGb3JOYXZpZ2F0aW9uQWN0aW9uIAorPE5TVVJMUmVxdWVzdCBVUkwgcmVzb3VyY2VzL2lmcmFt
ZS1jbGljay1ub3RpZnktZG9uZS10YXJnZXQtdG9wLmh0bWwsIG1haW4gZG9jdW1lbnQgVVJMIHN1
YmZyYW1lLWNsaWNrLXRhcmdldC10b3AuaHRtbCwgaHR0cCBtZXRob2QgR0VUPiBpcyBtYWluIGZy
YW1lIC0gbm8gc2hvdWxkIG9wZW4gVVJMcyBleHRlcm5hbGx5IC0gbm8KKyAtIGRlY2lkZVBvbGlj
eUZvck5hdmlnYXRpb25BY3Rpb24gCis8TlNVUkxSZXF1ZXN0IFVSTCByZXNvdXJjZXMvbm90aWZ5
LWRvbmUuaHRtbCwgbWFpbiBkb2N1bWVudCBVUkwgcmVzb3VyY2VzL25vdGlmeS1kb25lLmh0bWws
IGh0dHAgbWV0aG9kIEdFVD4gaXMgbWFpbiBmcmFtZSAtIHllcyBzaG91bGQgb3BlbiBVUkxzIGV4
dGVybmFsbHkgLSB5ZXMKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbG9hZGVyL25hdmlnYXRp
b24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvc3ViZnJhbWUtY2xpY2stdGFyZ2V0
LXRvcC5odG1sIGIvTGF5b3V0VGVzdHMvbG9hZGVyL25hdmlnYXRpb24tcG9saWN5L3Nob3VsZC1v
cGVuLWV4dGVybmFsLXVybHMvc3ViZnJhbWUtY2xpY2stdGFyZ2V0LXRvcC5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNiMmE2YWEKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwt
dXJscy9zdWJmcmFtZS1jbGljay10YXJnZXQtdG9wLmh0bWwKQEAgLTAsMCArMSwxOSBAQAorPHNj
cmlwdD4KKworaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgdGVzdFJ1bm5lci5kdW1wQXNU
ZXh0KCk7CisgICAgdGVzdFJ1bm5lci5kdW1wUG9saWN5RGVsZWdhdGVDYWxsYmFja3MoKTsKKyAg
ICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKK30KKworZnVuY3Rpb24gcnVuVGVzdCgpCit7
CisgICAgd2luZG93LmZyYW1lc1swXS5sb2NhdGlvbiA9ICJyZXNvdXJjZXMvaWZyYW1lLWNsaWNr
LW5vdGlmeS1kb25lLXRhcmdldC10b3AuaHRtbCI7Cit9CisKKzwvc2NyaXB0PgorPGJvZHkgb25s
b2FkPSJydW5UZXN0KCk7Ij4KK1RoaXMgcGFnZSBoYXMgYSBzdWJmcmFtZSB3aXRoIGEgbGluay48
YnI+CitUaGVuIGEgbGluayBpcyBjbGlja2VkIGluIHRoYXQgc3ViZnJhbWUgdGhhdCBuYXZpZ2F0
ZXMgdGhlIG1haW4gZnJhbWUsIGFuZCB0aGF0IG5hdmlnYXRpb24gc2hvdWxkIGhhdmUgdGhlICJz
aG91bGQgb3BlbiBleHRlcm5hbCB1cmxzIiBmbGFnIHNldCB0byB0cnVlIGJlY2F1c2UgaXQgd2Fz
IGZyb20gYSB1c2VyIGdlc3R1cmUuPGJyPgorPGlmcmFtZT48L2lmcmFtZT4KKzwvYm9keT4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2xvYWRlci9uYXZpZ2F0aW9uLXBvbGljeS9zaG91bGQtb3Bl
bi1leHRlcm5hbC11cmxzL3VzZXItZ2VzdHVyZS10YXJnZXQtYmxhbmstd2l0aC1mbGFnLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2xvYWRlci9uYXZpZ2F0aW9uLXBvbGljeS9zaG91bGQtb3Bl
bi1leHRlcm5hbC11cmxzL3VzZXItZ2VzdHVyZS10YXJnZXQtYmxhbmstd2l0aC1mbGFnLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lZjAwNjliCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbG9hZGVyL25hdmlnYXRpb24tcG9saWN5L3Nob3Vs
ZC1vcGVuLWV4dGVybmFsLXVybHMvdXNlci1nZXN0dXJlLXRhcmdldC1ibGFuay13aXRoLWZsYWct
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorIC0gZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlv
bkFjdGlvbiAKKzxOU1VSTFJlcXVlc3QgVVJMIHJlc291cmNlcy91c2VyLWdlc3R1cmUtdGFyZ2V0
LWJsYW5rLXRvLW5vdGlmeS1kb25lLmh0bWwsIG1haW4gZG9jdW1lbnQgVVJMIHJlc291cmNlcy91
c2VyLWdlc3R1cmUtdGFyZ2V0LWJsYW5rLXRvLW5vdGlmeS1kb25lLmh0bWwsIGh0dHAgbWV0aG9k
IEdFVD4gaXMgbWFpbiBmcmFtZSAtIHllcyBzaG91bGQgb3BlbiBVUkxzIGV4dGVybmFsbHkgLSB5
ZXMKKyAtIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24gCis8TlNVUkxSZXF1ZXN0IFVS
TCBub3RpZnktZG9uZS5odG1sLCBtYWluIGRvY3VtZW50IFVSTCBub3RpZnktZG9uZS5odG1sLCBo
dHRwIG1ldGhvZCBHRVQ+IGlzIG1haW4gZnJhbWUgLSB5ZXMgc2hvdWxkIG9wZW4gVVJMcyBleHRl
cm5hbGx5IC0geWVzCitDbGljayB0byBvcGVuIGxpbmsgaW4gbmV3IHdpbmRvdy4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2xvYWRlci9uYXZpZ2F0aW9uLXBvbGljeS9zaG91bGQtb3Blbi1leHRl
cm5hbC11cmxzL3VzZXItZ2VzdHVyZS10YXJnZXQtYmxhbmstd2l0aC1mbGFnLWZyb20tc3ViZnJh
bWUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvbG9hZGVyL25hdmlnYXRpb24tcG9saWN5L3No
b3VsZC1vcGVuLWV4dGVybmFsLXVybHMvdXNlci1nZXN0dXJlLXRhcmdldC1ibGFuay13aXRoLWZs
YWctZnJvbS1zdWJmcmFtZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMC4uMjk5NDgzYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2xvYWRlci9u
YXZpZ2F0aW9uLXBvbGljeS9zaG91bGQtb3Blbi1leHRlcm5hbC11cmxzL3VzZXItZ2VzdHVyZS10
YXJnZXQtYmxhbmstd2l0aC1mbGFnLWZyb20tc3ViZnJhbWUtZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsNyBAQAorIC0gZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbiAKKzxOU1VSTFJlcXVl
c3QgVVJMIHJlc291cmNlcy91c2VyLWdlc3R1cmUtdGFyZ2V0LWJsYW5rLXRvLW5vdGlmeS1kb25l
LWZyb20tc3ViZnJhbWUuaHRtbCwgbWFpbiBkb2N1bWVudCBVUkwgcmVzb3VyY2VzL3VzZXItZ2Vz
dHVyZS10YXJnZXQtYmxhbmstdG8tbm90aWZ5LWRvbmUtZnJvbS1zdWJmcmFtZS5odG1sLCBodHRw
IG1ldGhvZCBHRVQ+IGlzIG1haW4gZnJhbWUgLSB5ZXMgc2hvdWxkIG9wZW4gVVJMcyBleHRlcm5h
bGx5IC0geWVzCisgLSBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uIAorPE5TVVJMUmVx
dWVzdCBVUkwgdXNlci1nZXN0dXJlLXRhcmdldC1ibGFuay10by1ub3RpZnktZG9uZS5odG1sLCBt
YWluIGRvY3VtZW50IFVSTCB1c2VyLWdlc3R1cmUtdGFyZ2V0LWJsYW5rLXRvLW5vdGlmeS1kb25l
LWZyb20tc3ViZnJhbWUuaHRtbCwgaHR0cCBtZXRob2QgR0VUPiBpcyBtYWluIGZyYW1lIC0gbm8g
c2hvdWxkIG9wZW4gVVJMcyBleHRlcm5hbGx5IC0gbm8KKyAtIGRlY2lkZVBvbGljeUZvck5hdmln
YXRpb25BY3Rpb24gCis8TlNVUkxSZXF1ZXN0IFVSTCBub3RpZnktZG9uZS5odG1sLCBtYWluIGRv
Y3VtZW50IFVSTCB1c2VyLWdlc3R1cmUtdGFyZ2V0LWJsYW5rLXRvLW5vdGlmeS1kb25lLWZyb20t
c3ViZnJhbWUuaHRtbCwgaHR0cCBtZXRob2QgR0VUPiBpcyBtYWluIGZyYW1lIC0geWVzIHNob3Vs
ZCBvcGVuIFVSTHMgZXh0ZXJuYWxseSAtIHllcworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9s
b2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJscy91c2VyLWdl
c3R1cmUtdGFyZ2V0LWJsYW5rLXdpdGgtZmxhZy1mcm9tLXN1YmZyYW1lLmh0bWwgYi9MYXlvdXRU
ZXN0cy9sb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJscy91
c2VyLWdlc3R1cmUtdGFyZ2V0LWJsYW5rLXdpdGgtZmxhZy1mcm9tLXN1YmZyYW1lLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWVmYjg5NgotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2xvYWRlci9uYXZpZ2F0aW9uLXBvbGljeS9zaG91bGQtb3Blbi1leHRl
cm5hbC11cmxzL3VzZXItZ2VzdHVyZS10YXJnZXQtYmxhbmstd2l0aC1mbGFnLWZyb20tc3ViZnJh
bWUuaHRtbApAQCAtMCwwICsxLDEwIEBACis8c2NyaXB0PgoraWYgKHdpbmRvdy50ZXN0UnVubmVy
KSB7CisgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgdGVzdFJ1bm5lci5kdW1wUG9s
aWN5RGVsZWdhdGVDYWxsYmFja3MoKTsKKyAgICB0ZXN0UnVubmVyLnF1ZXVlTG9hZCgicmVzb3Vy
Y2VzL3VzZXItZ2VzdHVyZS10YXJnZXQtYmxhbmstdG8tbm90aWZ5LWRvbmUtZnJvbS1zdWJmcmFt
ZS5odG1sIiwgIiIsIHRydWUpOworfQorPC9zY3JpcHQ+CitUaGlzIHBhZ2Ugb3BlbnMgYSAybmQg
cGFnZSB3aXRoIHRoZSAic2hvdWxkIG9wZW4gZXh0ZXJuYWwgVVJMcyIgZmxhZyBzZXQgdG8gdHJ1
ZS48YnI+CitUaGF0IHBhZ2UgaGFzIGEgc3ViZnJhbWUgd2l0aCBhIGxpbmsgdGhhdCAtIHdoZW4g
Y2xpY2tlZCAtIG9wZW5zIGEgbGluayB0byBhIDNyZCBwYWdlIGluIGEgbmV3IHdpbmRvdy48YnI+
CitUaGF0IDNyZCBwYWdlIHNob3VsZCBoYXZlIHRoZSBmbGFnIHNldCB0byB0cnVlIGJlY2F1c2Ug
aXQgd2FzIGZyb20gYSB1c2VyIGdlc3R1cmUuPGJyPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
bG9hZGVyL25hdmlnYXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvdXNlci1n
ZXN0dXJlLXRhcmdldC1ibGFuay13aXRoLWZsYWcuaHRtbCBiL0xheW91dFRlc3RzL2xvYWRlci9u
YXZpZ2F0aW9uLXBvbGljeS9zaG91bGQtb3Blbi1leHRlcm5hbC11cmxzL3VzZXItZ2VzdHVyZS10
YXJnZXQtYmxhbmstd2l0aC1mbGFnLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uMGM4N2Y0MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2xvYWRlci9uYXZp
Z2F0aW9uLXBvbGljeS9zaG91bGQtb3Blbi1leHRlcm5hbC11cmxzL3VzZXItZ2VzdHVyZS10YXJn
ZXQtYmxhbmstd2l0aC1mbGFnLmh0bWwKQEAgLTAsMCArMSwxMCBAQAorPHNjcmlwdD4KK2lmICh3
aW5kb3cudGVzdFJ1bm5lcikgeworICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAgIHRl
c3RSdW5uZXIuZHVtcFBvbGljeURlbGVnYXRlQ2FsbGJhY2tzKCk7CisgICAgdGVzdFJ1bm5lci5x
dWV1ZUxvYWQoInJlc291cmNlcy91c2VyLWdlc3R1cmUtdGFyZ2V0LWJsYW5rLXRvLW5vdGlmeS1k
b25lLmh0bWwiLCAiIiwgdHJ1ZSk7Cit9Cis8L3NjcmlwdD4KK1RoaXMgcGFnZSBvcGVucyBhIDJu
ZCBwYWdlIHdpdGggdGhlICJzaG91bGQgb3BlbiBleHRlcm5hbCBVUkxzIiBmbGFnIHNldCB0byB0
cnVlLjxicj4KK1RoYXQgcGFnZSBoYXMgYSBsaW5rIHRoYXQgLSB3aGVuIGNsaWNrZWQgLSBvcGVu
cyBhIGxpbmsgdG8gYSAzcmQgcGFnZSBpbiBhIG5ldyB3aW5kb3cuPGJyPgorVGhhdCAzcmQgcGFn
ZSBzaG91bGQgaGF2ZSB0aGUgZmxhZyBzZXQgdG8gdHJ1ZSBiZWNhdXNlIGl0IHdhcyBmcm9tIGEg
dXNlciBnZXN0dXJlLjxicj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2xvYWRlci9uYXZpZ2F0
aW9uLXBvbGljeS9zaG91bGQtb3Blbi1leHRlcm5hbC11cmxzL3VzZXItZ2VzdHVyZS10YXJnZXQt
Ymxhbmstd2l0aG91dC1mbGFnLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2xvYWRlci9uYXZp
Z2F0aW9uLXBvbGljeS9zaG91bGQtb3Blbi1leHRlcm5hbC11cmxzL3VzZXItZ2VzdHVyZS10YXJn
ZXQtYmxhbmstd2l0aG91dC1mbGFnLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwLi5jNzM3MTMyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbG9h
ZGVyL25hdmlnYXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvdXNlci1nZXN0
dXJlLXRhcmdldC1ibGFuay13aXRob3V0LWZsYWctZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBA
QAorIC0gZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbiAKKzxOU1VSTFJlcXVlc3QgVVJM
IHJlc291cmNlcy91c2VyLWdlc3R1cmUtdGFyZ2V0LWJsYW5rLXRvLW5vdGlmeS1kb25lLmh0bWws
IG1haW4gZG9jdW1lbnQgVVJMIHJlc291cmNlcy91c2VyLWdlc3R1cmUtdGFyZ2V0LWJsYW5rLXRv
LW5vdGlmeS1kb25lLmh0bWwsIGh0dHAgbWV0aG9kIEdFVD4gaXMgbWFpbiBmcmFtZSAtIHllcyBz
aG91bGQgb3BlbiBVUkxzIGV4dGVybmFsbHkgLSBubworIC0gZGVjaWRlUG9saWN5Rm9yTmF2aWdh
dGlvbkFjdGlvbiAKKzxOU1VSTFJlcXVlc3QgVVJMIG5vdGlmeS1kb25lLmh0bWwsIG1haW4gZG9j
dW1lbnQgVVJMIG5vdGlmeS1kb25lLmh0bWwsIGh0dHAgbWV0aG9kIEdFVD4gaXMgbWFpbiBmcmFt
ZSAtIHllcyBzaG91bGQgb3BlbiBVUkxzIGV4dGVybmFsbHkgLSB5ZXMKK0NsaWNrIHRvIG9wZW4g
bGluayBpbiBuZXcgd2luZG93LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbG9hZGVyL25hdmln
YXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvdXNlci1nZXN0dXJlLXRhcmdl
dC1ibGFuay13aXRob3V0LWZsYWctZnJvbS1zdWJmcmFtZS1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9sb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJscy91
c2VyLWdlc3R1cmUtdGFyZ2V0LWJsYW5rLXdpdGhvdXQtZmxhZy1mcm9tLXN1YmZyYW1lLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kZDUxZTNmCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbG9hZGVyL25hdmlnYXRpb24tcG9saWN5L3Nob3Vs
ZC1vcGVuLWV4dGVybmFsLXVybHMvdXNlci1nZXN0dXJlLXRhcmdldC1ibGFuay13aXRob3V0LWZs
YWctZnJvbS1zdWJmcmFtZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw3IEBACisgLSBkZWNpZGVQ
b2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uIAorPE5TVVJMUmVxdWVzdCBVUkwgcmVzb3VyY2VzL3Vz
ZXItZ2VzdHVyZS10YXJnZXQtYmxhbmstdG8tbm90aWZ5LWRvbmUtZnJvbS1zdWJmcmFtZS5odG1s
LCBtYWluIGRvY3VtZW50IFVSTCByZXNvdXJjZXMvdXNlci1nZXN0dXJlLXRhcmdldC1ibGFuay10
by1ub3RpZnktZG9uZS1mcm9tLXN1YmZyYW1lLmh0bWwsIGh0dHAgbWV0aG9kIEdFVD4gaXMgbWFp
biBmcmFtZSAtIHllcyBzaG91bGQgb3BlbiBVUkxzIGV4dGVybmFsbHkgLSBubworIC0gZGVjaWRl
UG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbiAKKzxOU1VSTFJlcXVlc3QgVVJMIHVzZXItZ2VzdHVy
ZS10YXJnZXQtYmxhbmstdG8tbm90aWZ5LWRvbmUuaHRtbCwgbWFpbiBkb2N1bWVudCBVUkwgdXNl
ci1nZXN0dXJlLXRhcmdldC1ibGFuay10by1ub3RpZnktZG9uZS1mcm9tLXN1YmZyYW1lLmh0bWws
IGh0dHAgbWV0aG9kIEdFVD4gaXMgbWFpbiBmcmFtZSAtIG5vIHNob3VsZCBvcGVuIFVSTHMgZXh0
ZXJuYWxseSAtIG5vCisgLSBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uIAorPE5TVVJM
UmVxdWVzdCBVUkwgbm90aWZ5LWRvbmUuaHRtbCwgbWFpbiBkb2N1bWVudCBVUkwgdXNlci1nZXN0
dXJlLXRhcmdldC1ibGFuay10by1ub3RpZnktZG9uZS1mcm9tLXN1YmZyYW1lLmh0bWwsIGh0dHAg
bWV0aG9kIEdFVD4gaXMgbWFpbiBmcmFtZSAtIHllcyBzaG91bGQgb3BlbiBVUkxzIGV4dGVybmFs
bHkgLSB5ZXMKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbG9hZGVyL25hdmlnYXRpb24tcG9s
aWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvdXNlci1nZXN0dXJlLXRhcmdldC1ibGFuay13
aXRob3V0LWZsYWctZnJvbS1zdWJmcmFtZS5odG1sIGIvTGF5b3V0VGVzdHMvbG9hZGVyL25hdmln
YXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvdXNlci1nZXN0dXJlLXRhcmdl
dC1ibGFuay13aXRob3V0LWZsYWctZnJvbS1zdWJmcmFtZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLmQ0ODY4MjcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9sb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJscy91c2Vy
LWdlc3R1cmUtdGFyZ2V0LWJsYW5rLXdpdGhvdXQtZmxhZy1mcm9tLXN1YmZyYW1lLmh0bWwKQEAg
LTAsMCArMSwxMCBAQAorPHNjcmlwdD4KK2lmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgIHRl
c3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAgIHRlc3RSdW5uZXIuZHVtcFBvbGljeURlbGVnYXRl
Q2FsbGJhY2tzKCk7CisgICAgdGVzdFJ1bm5lci5xdWV1ZUxvYWQoInJlc291cmNlcy91c2VyLWdl
c3R1cmUtdGFyZ2V0LWJsYW5rLXRvLW5vdGlmeS1kb25lLWZyb20tc3ViZnJhbWUuaHRtbCIpOwor
fQorPC9zY3JpcHQ+CitUaGlzIHBhZ2Ugb3BlbnMgYSAybmQgcGFnZSB3aXRoIHRoZSAic2hvdWxk
IG9wZW4gZXh0ZXJuYWwgVVJMcyIgZmxhZyBzZXQgdG8gZmFsc2UuPGJyPgorVGhhdCBwYWdlIGhh
cyBhIHN1YmZyYW1lIHdpdGggYSBsaW5rIHRoYXQgLSB3aGVuIGNsaWNrZWQgLSBvcGVucyBhIGxp
bmsgdG8gYSAzcmQgcGFnZSBpbiBhIG5ldyB3aW5kb3cuPGJyPgorVGhhdCAzcmQgcGFnZSBzaG91
bGQgaGF2ZSB0aGUgZmxhZyBzZXQgdG8gdHJ1ZSBiZWNhdXNlIGl0IHdhcyBmcm9tIGEgdXNlciBn
ZXN0dXJlLjxicj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2xvYWRlci9uYXZpZ2F0aW9uLXBv
bGljeS9zaG91bGQtb3Blbi1leHRlcm5hbC11cmxzL3VzZXItZ2VzdHVyZS10YXJnZXQtYmxhbmst
d2l0aG91dC1mbGFnLmh0bWwgYi9MYXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kv
c2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJscy91c2VyLWdlc3R1cmUtdGFyZ2V0LWJsYW5rLXdpdGhv
dXQtZmxhZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYwNGJlZTQK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kv
c2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJscy91c2VyLWdlc3R1cmUtdGFyZ2V0LWJsYW5rLXdpdGhv
dXQtZmxhZy5odG1sCkBAIC0wLDAgKzEsMTAgQEAKKzxzY3JpcHQ+CitpZiAod2luZG93LnRlc3RS
dW5uZXIpIHsKKyAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICB0ZXN0UnVubmVyLmR1
bXBQb2xpY3lEZWxlZ2F0ZUNhbGxiYWNrcygpOworICAgIHRlc3RSdW5uZXIucXVldWVMb2FkKCJy
ZXNvdXJjZXMvdXNlci1nZXN0dXJlLXRhcmdldC1ibGFuay10by1ub3RpZnktZG9uZS5odG1sIik7
Cit9Cis8L3NjcmlwdD4KK1RoaXMgcGFnZSBvcGVucyBhIDJuZCBwYWdlIHdpdGggdGhlICJzaG91
bGQgb3BlbiBleHRlcm5hbCBVUkxzIiBmbGFnIHNldCB0byBmYWxzZS48YnI+CitUaGF0IHBhZ2Ug
aGFzIGEgbGluayB0aGF0IC0gd2hlbiBjbGlja2VkIC0gb3BlbnMgYSBsaW5rIHRvIGEgM3JkIHBh
Z2UgaW4gYSBuZXcgd2luZG93Ljxicj4KK1RoYXQgM3JkIHBhZ2Ugc2hvdWxkIGhhdmUgdGhlIGZs
YWcgc2V0IHRvIHRydWUgYmVjYXVzZSBpdCB3YXMgZnJvbSBhIHVzZXIgZ2VzdHVyZS48YnI+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9w
ZW4tZXh0ZXJuYWwtdXJscy91c2VyLWdlc3R1cmUtd2luZG93LW9wZW4td2l0aC1mbGFnLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2xvYWRlci9uYXZpZ2F0aW9uLXBvbGljeS9zaG91bGQtb3Bl
bi1leHRlcm5hbC11cmxzL3VzZXItZ2VzdHVyZS13aW5kb3ctb3Blbi13aXRoLWZsYWctZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFjNTM5YjcKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxk
LW9wZW4tZXh0ZXJuYWwtdXJscy91c2VyLWdlc3R1cmUtd2luZG93LW9wZW4td2l0aC1mbGFnLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKKyAtIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25B
Y3Rpb24gCis8TlNVUkxSZXF1ZXN0IFVSTCByZXNvdXJjZXMvdXNlci1nZXN0dXJlLXdpbmRvdy1v
cGVuLXRvLW5vdGlmeS1kb25lLmh0bWwsIG1haW4gZG9jdW1lbnQgVVJMIHJlc291cmNlcy91c2Vy
LWdlc3R1cmUtd2luZG93LW9wZW4tdG8tbm90aWZ5LWRvbmUuaHRtbCwgaHR0cCBtZXRob2QgR0VU
PiBpcyBtYWluIGZyYW1lIC0geWVzIHNob3VsZCBvcGVuIFVSTHMgZXh0ZXJuYWxseSAtIHllcwor
IC0gZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbiAKKzxOU1VSTFJlcXVlc3QgVVJMIG5v
dGlmeS1kb25lLmh0bWwsIG1haW4gZG9jdW1lbnQgVVJMIG5vdGlmeS1kb25lLmh0bWwsIGh0dHAg
bWV0aG9kIEdFVD4gaXMgbWFpbiBmcmFtZSAtIHllcyBzaG91bGQgb3BlbiBVUkxzIGV4dGVybmFs
bHkgLSB5ZXMKK0NsaWNrIHRvIGRvIGEgd2luZG93Lm9wZW4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2xvYWRlci9uYXZpZ2F0aW9uLXBvbGljeS9zaG91bGQtb3Blbi1leHRlcm5hbC11cmxzL3Vz
ZXItZ2VzdHVyZS13aW5kb3ctb3Blbi13aXRoLWZsYWctZnJvbS1zdWJmcmFtZS1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0
ZXJuYWwtdXJscy91c2VyLWdlc3R1cmUtd2luZG93LW9wZW4td2l0aC1mbGFnLWZyb20tc3ViZnJh
bWUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhmNDU2
OWEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdhdGlvbi1wb2xp
Y3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJscy91c2VyLWdlc3R1cmUtd2luZG93LW9wZW4td2l0
aC1mbGFnLWZyb20tc3ViZnJhbWUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNyBAQAorIC0gZGVj
aWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbiAKKzxOU1VSTFJlcXVlc3QgVVJMIHJlc291cmNl
cy91c2VyLWdlc3R1cmUtd2luZG93LW9wZW4tdG8tbm90aWZ5LWRvbmUtZnJvbS1zdWJmcmFtZS5o
dG1sLCBtYWluIGRvY3VtZW50IFVSTCByZXNvdXJjZXMvdXNlci1nZXN0dXJlLXdpbmRvdy1vcGVu
LXRvLW5vdGlmeS1kb25lLWZyb20tc3ViZnJhbWUuaHRtbCwgaHR0cCBtZXRob2QgR0VUPiBpcyBt
YWluIGZyYW1lIC0geWVzIHNob3VsZCBvcGVuIFVSTHMgZXh0ZXJuYWxseSAtIHllcworIC0gZGVj
aWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbiAKKzxOU1VSTFJlcXVlc3QgVVJMIHVzZXItZ2Vz
dHVyZS13aW5kb3ctb3Blbi10by1ub3RpZnktZG9uZS5odG1sLCBtYWluIGRvY3VtZW50IFVSTCB1
c2VyLWdlc3R1cmUtd2luZG93LW9wZW4tdG8tbm90aWZ5LWRvbmUtZnJvbS1zdWJmcmFtZS5odG1s
LCBodHRwIG1ldGhvZCBHRVQ+IGlzIG1haW4gZnJhbWUgLSBubyBzaG91bGQgb3BlbiBVUkxzIGV4
dGVybmFsbHkgLSBubworIC0gZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbiAKKzxOU1VS
TFJlcXVlc3QgVVJMIG5vdGlmeS1kb25lLmh0bWwsIG1haW4gZG9jdW1lbnQgVVJMIG5vdGlmeS1k
b25lLmh0bWwsIGh0dHAgbWV0aG9kIEdFVD4gaXMgbWFpbiBmcmFtZSAtIHllcyBzaG91bGQgb3Bl
biBVUkxzIGV4dGVybmFsbHkgLSB5ZXMKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbG9hZGVy
L25hdmlnYXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvdXNlci1nZXN0dXJl
LXdpbmRvdy1vcGVuLXdpdGgtZmxhZy1mcm9tLXN1YmZyYW1lLmh0bWwgYi9MYXlvdXRUZXN0cy9s
b2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJscy91c2VyLWdl
c3R1cmUtd2luZG93LW9wZW4td2l0aC1mbGFnLWZyb20tc3ViZnJhbWUuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45NzgyNzMyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvbG9hZGVyL25hdmlnYXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVy
bHMvdXNlci1nZXN0dXJlLXdpbmRvdy1vcGVuLXdpdGgtZmxhZy1mcm9tLXN1YmZyYW1lLmh0bWwK
QEAgLTAsMCArMSwxMCBAQAorPHNjcmlwdD4KK2lmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAg
IHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAgIHRlc3RSdW5uZXIuZHVtcFBvbGljeURlbGVn
YXRlQ2FsbGJhY2tzKCk7CisgICAgdGVzdFJ1bm5lci5xdWV1ZUxvYWQoInJlc291cmNlcy91c2Vy
LWdlc3R1cmUtd2luZG93LW9wZW4tdG8tbm90aWZ5LWRvbmUtZnJvbS1zdWJmcmFtZS5odG1sIiwg
IiIsIHRydWUpOworfQorPC9zY3JpcHQ+CitUaGlzIHBhZ2Ugb3BlbnMgYSAybmQgcGFnZSB3aXRo
IHRoZSAic2hvdWxkIG9wZW4gZXh0ZXJuYWwgVVJMcyIgZmxhZyBzZXQgdG8gdHJ1ZS48YnI+CitU
aGF0IHBhZ2UgaGFzIGEgc3ViZnJhbWUgd2l0aCBhIGxpbmsgdGhhdCAtIHdoZW4gY2xpY2tlZCAt
IGNhbGxzIHdpbmRvdy5vcGVuIHRvIGEgM3JkIHBhZ2UuPGJyPgorVGhhdCAzcmQgcGFnZSBzaG91
bGQgaGF2ZSB0aGUgZmxhZyBzZXQgdG8gdHJ1ZSBiZWNhdXNlIGl0IHdhcyBmcm9tIGEgdXNlciBn
ZXN0dXJlLjxicj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2xvYWRlci9uYXZpZ2F0aW9uLXBv
bGljeS9zaG91bGQtb3Blbi1leHRlcm5hbC11cmxzL3VzZXItZ2VzdHVyZS13aW5kb3ctb3Blbi13
aXRoLWZsYWcuaHRtbCBiL0xheW91dFRlc3RzL2xvYWRlci9uYXZpZ2F0aW9uLXBvbGljeS9zaG91
bGQtb3Blbi1leHRlcm5hbC11cmxzL3VzZXItZ2VzdHVyZS13aW5kb3ctb3Blbi13aXRoLWZsYWcu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44YzQ0ZTdhCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbG9hZGVyL25hdmlnYXRpb24tcG9saWN5L3Nob3VsZC1v
cGVuLWV4dGVybmFsLXVybHMvdXNlci1nZXN0dXJlLXdpbmRvdy1vcGVuLXdpdGgtZmxhZy5odG1s
CkBAIC0wLDAgKzEsMTAgQEAKKzxzY3JpcHQ+CitpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAg
ICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICB0ZXN0UnVubmVyLmR1bXBQb2xpY3lEZWxl
Z2F0ZUNhbGxiYWNrcygpOworICAgIHRlc3RSdW5uZXIucXVldWVMb2FkKCJyZXNvdXJjZXMvdXNl
ci1nZXN0dXJlLXdpbmRvdy1vcGVuLXRvLW5vdGlmeS1kb25lLmh0bWwiLCAiIiwgdHJ1ZSk7Cit9
Cis8L3NjcmlwdD4KK1RoaXMgcGFnZSBvcGVucyBhIDJuZCBwYWdlIHdpdGggdGhlICJzaG91bGQg
b3BlbiBleHRlcm5hbCBVUkxzIiBmbGFnIHNldCB0byB0cnVlLjxicj4KK1RoYXQgcGFnZSBoYXMg
YSBsaW5rIHRoYXQgLSB3aGVuIGNsaWNrZWQgLSBkb2VzIGEgd2luZG93Lm9wZW4gdG8gb3BlbiBh
IDNyZCBwYWdlLjxicj4KK1RoYXQgM3JkIHBhZ2Ugc2hvdWxkIGhhdmUgdGhlIGZsYWcgc2V0IHRv
IHRydWUgYmVjYXVzZSBpdCB3YXMgZnJvbSBhIHVzZXIgZ2VzdHVyZS48YnI+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJu
YWwtdXJscy91c2VyLWdlc3R1cmUtd2luZG93LW9wZW4td2l0aG91dC1mbGFnLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2xvYWRlci9uYXZpZ2F0aW9uLXBvbGljeS9zaG91bGQtb3Blbi1leHRl
cm5hbC11cmxzL3VzZXItZ2VzdHVyZS13aW5kb3ctb3Blbi13aXRob3V0LWZsYWctZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc3NDY2ZmMKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9w
ZW4tZXh0ZXJuYWwtdXJscy91c2VyLWdlc3R1cmUtd2luZG93LW9wZW4td2l0aG91dC1mbGFnLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKKyAtIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25B
Y3Rpb24gCis8TlNVUkxSZXF1ZXN0IFVSTCByZXNvdXJjZXMvdXNlci1nZXN0dXJlLXdpbmRvdy1v
cGVuLXRvLW5vdGlmeS1kb25lLmh0bWwsIG1haW4gZG9jdW1lbnQgVVJMIHJlc291cmNlcy91c2Vy
LWdlc3R1cmUtd2luZG93LW9wZW4tdG8tbm90aWZ5LWRvbmUuaHRtbCwgaHR0cCBtZXRob2QgR0VU
PiBpcyBtYWluIGZyYW1lIC0geWVzIHNob3VsZCBvcGVuIFVSTHMgZXh0ZXJuYWxseSAtIG5vCisg
LSBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uIAorPE5TVVJMUmVxdWVzdCBVUkwgbm90
aWZ5LWRvbmUuaHRtbCwgbWFpbiBkb2N1bWVudCBVUkwgbm90aWZ5LWRvbmUuaHRtbCwgaHR0cCBt
ZXRob2QgR0VUPiBpcyBtYWluIGZyYW1lIC0geWVzIHNob3VsZCBvcGVuIFVSTHMgZXh0ZXJuYWxs
eSAtIHllcworQ2xpY2sgdG8gZG8gYSB3aW5kb3cub3BlbgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvbG9hZGVyL25hdmlnYXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvdXNl
ci1nZXN0dXJlLXdpbmRvdy1vcGVuLXdpdGhvdXQtZmxhZy1mcm9tLXN1YmZyYW1lLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2xvYWRlci9uYXZpZ2F0aW9uLXBvbGljeS9zaG91bGQtb3Blbi1l
eHRlcm5hbC11cmxzL3VzZXItZ2VzdHVyZS13aW5kb3ctb3Blbi13aXRob3V0LWZsYWctZnJvbS1z
dWJmcmFtZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
Y2NmZTVkYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2xvYWRlci9uYXZpZ2F0aW9u
LXBvbGljeS9zaG91bGQtb3Blbi1leHRlcm5hbC11cmxzL3VzZXItZ2VzdHVyZS13aW5kb3ctb3Bl
bi13aXRob3V0LWZsYWctZnJvbS1zdWJmcmFtZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw3IEBA
CisgLSBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uIAorPE5TVVJMUmVxdWVzdCBVUkwg
cmVzb3VyY2VzL3VzZXItZ2VzdHVyZS13aW5kb3ctb3Blbi10by1ub3RpZnktZG9uZS1mcm9tLXN1
YmZyYW1lLmh0bWwsIG1haW4gZG9jdW1lbnQgVVJMIHJlc291cmNlcy91c2VyLWdlc3R1cmUtd2lu
ZG93LW9wZW4tdG8tbm90aWZ5LWRvbmUtZnJvbS1zdWJmcmFtZS5odG1sLCBodHRwIG1ldGhvZCBH
RVQ+IGlzIG1haW4gZnJhbWUgLSB5ZXMgc2hvdWxkIG9wZW4gVVJMcyBleHRlcm5hbGx5IC0gbm8K
KyAtIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24gCis8TlNVUkxSZXF1ZXN0IFVSTCB1
c2VyLWdlc3R1cmUtd2luZG93LW9wZW4tdG8tbm90aWZ5LWRvbmUuaHRtbCwgbWFpbiBkb2N1bWVu
dCBVUkwgdXNlci1nZXN0dXJlLXdpbmRvdy1vcGVuLXRvLW5vdGlmeS1kb25lLWZyb20tc3ViZnJh
bWUuaHRtbCwgaHR0cCBtZXRob2QgR0VUPiBpcyBtYWluIGZyYW1lIC0gbm8gc2hvdWxkIG9wZW4g
VVJMcyBleHRlcm5hbGx5IC0gbm8KKyAtIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24g
Cis8TlNVUkxSZXF1ZXN0IFVSTCBub3RpZnktZG9uZS5odG1sLCBtYWluIGRvY3VtZW50IFVSTCBu
b3RpZnktZG9uZS5odG1sLCBodHRwIG1ldGhvZCBHRVQ+IGlzIG1haW4gZnJhbWUgLSB5ZXMgc2hv
dWxkIG9wZW4gVVJMcyBleHRlcm5hbGx5IC0geWVzCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2xvYWRlci9uYXZpZ2F0aW9uLXBvbGljeS9zaG91bGQtb3Blbi1leHRlcm5hbC11cmxzL3VzZXIt
Z2VzdHVyZS13aW5kb3ctb3Blbi13aXRob3V0LWZsYWctZnJvbS1zdWJmcmFtZS5odG1sIGIvTGF5
b3V0VGVzdHMvbG9hZGVyL25hdmlnYXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVy
bHMvdXNlci1nZXN0dXJlLXdpbmRvdy1vcGVuLXdpdGhvdXQtZmxhZy1mcm9tLXN1YmZyYW1lLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDk0YjRmYQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2xvYWRlci9uYXZpZ2F0aW9uLXBvbGljeS9zaG91bGQtb3Bl
bi1leHRlcm5hbC11cmxzL3VzZXItZ2VzdHVyZS13aW5kb3ctb3Blbi13aXRob3V0LWZsYWctZnJv
bS1zdWJmcmFtZS5odG1sCkBAIC0wLDAgKzEsMTAgQEAKKzxzY3JpcHQ+CitpZiAod2luZG93LnRl
c3RSdW5uZXIpIHsKKyAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICB0ZXN0UnVubmVy
LmR1bXBQb2xpY3lEZWxlZ2F0ZUNhbGxiYWNrcygpOworICAgIHRlc3RSdW5uZXIucXVldWVMb2Fk
KCJyZXNvdXJjZXMvdXNlci1nZXN0dXJlLXdpbmRvdy1vcGVuLXRvLW5vdGlmeS1kb25lLWZyb20t
c3ViZnJhbWUuaHRtbCIpOworfQorPC9zY3JpcHQ+CitUaGlzIHBhZ2Ugb3BlbnMgYSAybmQgcGFn
ZSB3aXRoIHRoZSAic2hvdWxkIG9wZW4gZXh0ZXJuYWwgVVJMcyIgZmxhZyBzZXQgdG8gZmFsc2Uu
PGJyPgorVGhhdCBwYWdlIGhhcyBhIHN1YmZyYW1lIHdpdGggYSBsaW5rIHRoYXQgLSB3aGVuIGNs
aWNrZWQgLSBjYWxscyB3aW5kb3cub3BlbiB0byBhIDNyZCBwYWdlLjxicj4KK1RoYXQgM3JkIHBh
Z2Ugc2hvdWxkIGhhdmUgdGhlIGZsYWcgc2V0IHRvIHRydWUgYmVjYXVzZSBpdCB3YXMgZnJvbSBh
IHVzZXIgZ2VzdHVyZS48YnI+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdh
dGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJscy91c2VyLWdlc3R1cmUtd2luZG93
LW9wZW4td2l0aG91dC1mbGFnLmh0bWwgYi9MYXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdhdGlvbi1w
b2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJscy91c2VyLWdlc3R1cmUtd2luZG93LW9wZW4t
d2l0aG91dC1mbGFnLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTg3
MDg4OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2xvYWRlci9uYXZpZ2F0aW9uLXBv
bGljeS9zaG91bGQtb3Blbi1leHRlcm5hbC11cmxzL3VzZXItZ2VzdHVyZS13aW5kb3ctb3Blbi13
aXRob3V0LWZsYWcuaHRtbApAQCAtMCwwICsxLDEwIEBACis8c2NyaXB0PgoraWYgKHdpbmRvdy50
ZXN0UnVubmVyKSB7CisgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgdGVzdFJ1bm5l
ci5kdW1wUG9saWN5RGVsZWdhdGVDYWxsYmFja3MoKTsKKyAgICB0ZXN0UnVubmVyLnF1ZXVlTG9h
ZCgicmVzb3VyY2VzL3VzZXItZ2VzdHVyZS13aW5kb3ctb3Blbi10by1ub3RpZnktZG9uZS5odG1s
Iik7Cit9Cis8L3NjcmlwdD4KK1RoaXMgcGFnZSBvcGVucyBhIDJuZCBwYWdlIHdpdGggdGhlICJz
aG91bGQgb3BlbiBleHRlcm5hbCBVUkxzIiBmbGFnIHNldCB0byBmYWxzZS48YnI+CitUaGF0IHBh
Z2UgaGFzIGEgbGluayB0aGF0IC0gd2hlbiBjbGlja2VkIC0gZG9lcyBhIHdpbmRvdy5vcGVuIHRv
IG9wZW4gYSAzcmQgcGFnZS48YnI+CitUaGF0IDNyZCBwYWdlIHNob3VsZCBoYXZlIHRoZSBmbGFn
IHNldCB0byB0cnVlIGJlY2F1c2UgaXQgd2FzIGZyb20gYSB1c2VyIGdlc3R1cmUuPGJyPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvbG9hZGVyL25hdmlnYXRpb24tcG9saWN5L3Nob3VsZC1vcGVu
LWV4dGVybmFsLXVybHMvd2luZG93LW9wZW4td2l0aC1mbGFnLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2xvYWRlci9uYXZpZ2F0aW9uLXBvbGljeS9zaG91bGQtb3Blbi1leHRlcm5hbC11cmxz
L3dpbmRvdy1vcGVuLXdpdGgtZmxhZy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uMGRmOTAyMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2xv
YWRlci9uYXZpZ2F0aW9uLXBvbGljeS9zaG91bGQtb3Blbi1leHRlcm5hbC11cmxzL3dpbmRvdy1v
cGVuLXdpdGgtZmxhZy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1IEBACisgLSBkZWNpZGVQb2xp
Y3lGb3JOYXZpZ2F0aW9uQWN0aW9uIAorPE5TVVJMUmVxdWVzdCBVUkwgcmVzb3VyY2VzL3dpbmRv
dy1vcGVuLXRvLW5vdGlmeS1kb25lLmh0bWwsIG1haW4gZG9jdW1lbnQgVVJMIHJlc291cmNlcy93
aW5kb3ctb3Blbi10by1ub3RpZnktZG9uZS5odG1sLCBodHRwIG1ldGhvZCBHRVQ+IGlzIG1haW4g
ZnJhbWUgLSB5ZXMgc2hvdWxkIG9wZW4gVVJMcyBleHRlcm5hbGx5IC0geWVzCisgLSBkZWNpZGVQ
b2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uIAorPE5TVVJMUmVxdWVzdCBVUkwgbm90aWZ5LWRvbmUu
aHRtbCwgbWFpbiBkb2N1bWVudCBVUkwgbm90aWZ5LWRvbmUuaHRtbCwgaHR0cCBtZXRob2QgR0VU
PiBpcyBtYWluIGZyYW1lIC0geWVzIHNob3VsZCBvcGVuIFVSTHMgZXh0ZXJuYWxseSAtIHllcwor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxk
LW9wZW4tZXh0ZXJuYWwtdXJscy93aW5kb3ctb3Blbi13aXRoLWZsYWctZnJvbS1zdWJmcmFtZS1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxk
LW9wZW4tZXh0ZXJuYWwtdXJscy93aW5kb3ctb3Blbi13aXRoLWZsYWctZnJvbS1zdWJmcmFtZS1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmNiZWY2NAot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2xvYWRlci9uYXZpZ2F0aW9uLXBvbGljeS9z
aG91bGQtb3Blbi1leHRlcm5hbC11cmxzL3dpbmRvdy1vcGVuLXdpdGgtZmxhZy1mcm9tLXN1YmZy
YW1lLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDcgQEAKKyAtIGRlY2lkZVBvbGljeUZvck5hdmln
YXRpb25BY3Rpb24gCis8TlNVUkxSZXF1ZXN0IFVSTCByZXNvdXJjZXMvd2luZG93LW9wZW4tdG8t
bm90aWZ5LWRvbmUtZnJvbS1zdWJmcmFtZS5odG1sLCBtYWluIGRvY3VtZW50IFVSTCByZXNvdXJj
ZXMvd2luZG93LW9wZW4tdG8tbm90aWZ5LWRvbmUtZnJvbS1zdWJmcmFtZS5odG1sLCBodHRwIG1l
dGhvZCBHRVQ+IGlzIG1haW4gZnJhbWUgLSB5ZXMgc2hvdWxkIG9wZW4gVVJMcyBleHRlcm5hbGx5
IC0geWVzCisgLSBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uIAorPE5TVVJMUmVxdWVz
dCBVUkwgd2luZG93LW9wZW4tdG8tbm90aWZ5LWRvbmUuaHRtbCwgbWFpbiBkb2N1bWVudCBVUkwg
d2luZG93LW9wZW4tdG8tbm90aWZ5LWRvbmUtZnJvbS1zdWJmcmFtZS5odG1sLCBodHRwIG1ldGhv
ZCBHRVQ+IGlzIG1haW4gZnJhbWUgLSBubyBzaG91bGQgb3BlbiBVUkxzIGV4dGVybmFsbHkgLSBu
bworIC0gZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbiAKKzxOU1VSTFJlcXVlc3QgVVJM
IG5vdGlmeS1kb25lLmh0bWwsIG1haW4gZG9jdW1lbnQgVVJMIG5vdGlmeS1kb25lLmh0bWwsIGh0
dHAgbWV0aG9kIEdFVD4gaXMgbWFpbiBmcmFtZSAtIHllcyBzaG91bGQgb3BlbiBVUkxzIGV4dGVy
bmFsbHkgLSBubworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdhdGlvbi1w
b2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJscy93aW5kb3ctb3Blbi13aXRoLWZsYWctZnJv
bS1zdWJmcmFtZS5odG1sIGIvTGF5b3V0VGVzdHMvbG9hZGVyL25hdmlnYXRpb24tcG9saWN5L3No
b3VsZC1vcGVuLWV4dGVybmFsLXVybHMvd2luZG93LW9wZW4td2l0aC1mbGFnLWZyb20tc3ViZnJh
bWUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44MWE1N2Y3Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbG9hZGVyL25hdmlnYXRpb24tcG9saWN5L3Nob3Vs
ZC1vcGVuLWV4dGVybmFsLXVybHMvd2luZG93LW9wZW4td2l0aC1mbGFnLWZyb20tc3ViZnJhbWUu
aHRtbApAQCAtMCwwICsxLDEwIEBACis8c2NyaXB0PgoraWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7
CisgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgdGVzdFJ1bm5lci5kdW1wUG9saWN5
RGVsZWdhdGVDYWxsYmFja3MoKTsKKyAgICB0ZXN0UnVubmVyLnF1ZXVlTG9hZCgicmVzb3VyY2Vz
L3dpbmRvdy1vcGVuLXRvLW5vdGlmeS1kb25lLWZyb20tc3ViZnJhbWUuaHRtbCIsICIiLCB0cnVl
KTsKK30KKzwvc2NyaXB0PgorVGhpcyBwYWdlIG9wZW5zIGEgMm5kIHBhZ2Ugd2l0aCB0aGUgInNo
b3VsZCBvcGVuIGV4dGVybmFsIFVSTHMiIGZsYWcgc2V0IHRvIHRydWUuPGJyPgorVGhhdCBwYWdl
IGhhcyBhIHN1YmZyYW1lIHdoaWNoIGNhbGxzIHdpbmRvdy5vcGVuIHRvIGEgM3JkIHBhZ2UuPGJy
PgorVGhhdCAzcmQgcGFnZSBzaG91bGQgaGF2ZSB0aGUgZmxhZyBzZXQgdG8gZmFsc2UgYmVjYXVz
ZSB0aGUgc3ViZnJhbWUgaW5pdGlhdGVkIHRoZSBsb2FkLjxicj4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2xvYWRlci9uYXZpZ2F0aW9uLXBvbGljeS9zaG91bGQtb3Blbi1leHRlcm5hbC11cmxz
L3dpbmRvdy1vcGVuLXdpdGgtZmxhZy5odG1sIGIvTGF5b3V0VGVzdHMvbG9hZGVyL25hdmlnYXRp
b24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvd2luZG93LW9wZW4td2l0aC1mbGFn
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2UzZDk0OQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2xvYWRlci9uYXZpZ2F0aW9uLXBvbGljeS9zaG91bGQt
b3Blbi1leHRlcm5hbC11cmxzL3dpbmRvdy1vcGVuLXdpdGgtZmxhZy5odG1sCkBAIC0wLDAgKzEs
MTAgQEAKKzxzY3JpcHQ+CitpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICB0ZXN0UnVubmVy
LmR1bXBBc1RleHQoKTsKKyAgICB0ZXN0UnVubmVyLmR1bXBQb2xpY3lEZWxlZ2F0ZUNhbGxiYWNr
cygpOworICAgIHRlc3RSdW5uZXIucXVldWVMb2FkKCJyZXNvdXJjZXMvd2luZG93LW9wZW4tdG8t
bm90aWZ5LWRvbmUuaHRtbCIsICIiLCB0cnVlKTsKK30KKzwvc2NyaXB0PgorVGhpcyBwYWdlIG9w
ZW5zIGEgMm5kIHBhZ2Ugd2l0aCB0aGUgInNob3VsZCBvcGVuIGV4dGVybmFsIFVSTHMiIGZsYWcg
c2V0IHRvIHRydWUuPGJyPgorVGhhdCBwYWdlIGRvZXMgYSB3aW5kb3cub3BlbiB0byBvcGVuIGEg
M3JkIHBhZ2UuPGJyPgorVGhhdCAzcmQgcGFnZSBzaG91bGQgaGF2ZSB0aGUgZmxhZyBzZXQgdG8g
dHJ1ZSBiZWNhdXNlIGl0IHNob3VsZCBwcm9wYWdhdGUgZnJvbSBtYWluIGZyYW1lIHRvIG1haW4g
ZnJhbWUuPGJyPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbG9hZGVyL25hdmlnYXRpb24tcG9s
aWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvd2luZG93LW9wZW4td2l0aG91dC1mbGFnLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2xvYWRlci9uYXZpZ2F0aW9uLXBvbGljeS9zaG91bGQt
b3Blbi1leHRlcm5hbC11cmxzL3dpbmRvdy1vcGVuLXdpdGhvdXQtZmxhZy1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDY4Yzg4YQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2xvYWRlci9uYXZpZ2F0aW9uLXBvbGljeS9zaG91bGQtb3Blbi1l
eHRlcm5hbC11cmxzL3dpbmRvdy1vcGVuLXdpdGhvdXQtZmxhZy1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSw1IEBACisgLSBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uIAorPE5TVVJMUmVx
dWVzdCBVUkwgcmVzb3VyY2VzL3dpbmRvdy1vcGVuLXRvLW5vdGlmeS1kb25lLmh0bWwsIG1haW4g
ZG9jdW1lbnQgVVJMIHJlc291cmNlcy93aW5kb3ctb3Blbi10by1ub3RpZnktZG9uZS5odG1sLCBo
dHRwIG1ldGhvZCBHRVQ+IGlzIG1haW4gZnJhbWUgLSB5ZXMgc2hvdWxkIG9wZW4gVVJMcyBleHRl
cm5hbGx5IC0gbm8KKyAtIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24gCis8TlNVUkxS
ZXF1ZXN0IFVSTCBub3RpZnktZG9uZS5odG1sLCBtYWluIGRvY3VtZW50IFVSTCBub3RpZnktZG9u
ZS5odG1sLCBodHRwIG1ldGhvZCBHRVQ+IGlzIG1haW4gZnJhbWUgLSB5ZXMgc2hvdWxkIG9wZW4g
VVJMcyBleHRlcm5hbGx5IC0gbm8KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbG9hZGVyL25h
dmlnYXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvd2luZG93LW9wZW4td2l0
aG91dC1mbGFnLWZyb20tc3ViZnJhbWUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvbG9hZGVy
L25hdmlnYXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvd2luZG93LW9wZW4t
d2l0aG91dC1mbGFnLWZyb20tc3ViZnJhbWUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLjljODQ0MmUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9sb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJscy93aW5k
b3ctb3Blbi13aXRob3V0LWZsYWctZnJvbS1zdWJmcmFtZS1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSw3IEBACisgLSBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uIAorPE5TVVJMUmVxdWVz
dCBVUkwgcmVzb3VyY2VzL3dpbmRvdy1vcGVuLXRvLW5vdGlmeS1kb25lLWZyb20tc3ViZnJhbWUu
aHRtbCwgbWFpbiBkb2N1bWVudCBVUkwgcmVzb3VyY2VzL3dpbmRvdy1vcGVuLXRvLW5vdGlmeS1k
b25lLWZyb20tc3ViZnJhbWUuaHRtbCwgaHR0cCBtZXRob2QgR0VUPiBpcyBtYWluIGZyYW1lIC0g
eWVzIHNob3VsZCBvcGVuIFVSTHMgZXh0ZXJuYWxseSAtIG5vCisgLSBkZWNpZGVQb2xpY3lGb3JO
YXZpZ2F0aW9uQWN0aW9uIAorPE5TVVJMUmVxdWVzdCBVUkwgd2luZG93LW9wZW4tdG8tbm90aWZ5
LWRvbmUuaHRtbCwgbWFpbiBkb2N1bWVudCBVUkwgd2luZG93LW9wZW4tdG8tbm90aWZ5LWRvbmUt
ZnJvbS1zdWJmcmFtZS5odG1sLCBodHRwIG1ldGhvZCBHRVQ+IGlzIG1haW4gZnJhbWUgLSBubyBz
aG91bGQgb3BlbiBVUkxzIGV4dGVybmFsbHkgLSBubworIC0gZGVjaWRlUG9saWN5Rm9yTmF2aWdh
dGlvbkFjdGlvbiAKKzxOU1VSTFJlcXVlc3QgVVJMIG5vdGlmeS1kb25lLmh0bWwsIG1haW4gZG9j
dW1lbnQgVVJMIG5vdGlmeS1kb25lLmh0bWwsIGh0dHAgbWV0aG9kIEdFVD4gaXMgbWFpbiBmcmFt
ZSAtIHllcyBzaG91bGQgb3BlbiBVUkxzIGV4dGVybmFsbHkgLSBubworCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwt
dXJscy93aW5kb3ctb3Blbi13aXRob3V0LWZsYWctZnJvbS1zdWJmcmFtZS5odG1sIGIvTGF5b3V0
VGVzdHMvbG9hZGVyL25hdmlnYXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMv
d2luZG93LW9wZW4td2l0aG91dC1mbGFnLWZyb20tc3ViZnJhbWUuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi45N2U1M2I1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvbG9hZGVyL25hdmlnYXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMv
d2luZG93LW9wZW4td2l0aG91dC1mbGFnLWZyb20tc3ViZnJhbWUuaHRtbApAQCAtMCwwICsxLDEw
IEBACis8c2NyaXB0PgoraWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgdGVzdFJ1bm5lci5k
dW1wQXNUZXh0KCk7CisgICAgdGVzdFJ1bm5lci5kdW1wUG9saWN5RGVsZWdhdGVDYWxsYmFja3Mo
KTsKKyAgICB0ZXN0UnVubmVyLnF1ZXVlTG9hZCgicmVzb3VyY2VzL3dpbmRvdy1vcGVuLXRvLW5v
dGlmeS1kb25lLWZyb20tc3ViZnJhbWUuaHRtbCIpOworfQorPC9zY3JpcHQ+CitUaGlzIHBhZ2Ug
b3BlbnMgYSAybmQgcGFnZSB3aXRoIHRoZSAic2hvdWxkIG9wZW4gZXh0ZXJuYWwgVVJMcyIgZmxh
ZyBzZXQgdG8gZmFsc2UuPGJyPgorVGhhdCBwYWdlIGhhcyBhIHN1YmZyYW1lIHdoaWNoIGNhbGxz
IHdpbmRvdy5vcGVuIHRvIGEgM3JkIHBhZ2UuPGJyPgorVGhhdCAzcmQgcGFnZSBzaG91bGQgaGF2
ZSB0aGUgZmxhZyBzZXQgdG8gZmFsc2UgYmVjYXVzZSB0aGUgc3ViZnJhbWUgaW5pdGlhdGVkIHRo
ZSBsb2FkLCAqYW5kKiBiZWNhdXNlIHRoZSBtYWluIGZyYW1lIGRpZCBub3QgaGF2ZSB0aGUgZmxh
ZyBzZXQuPGJyPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbG9hZGVyL25hdmlnYXRpb24tcG9s
aWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvd2luZG93LW9wZW4td2l0aG91dC1mbGFnLmh0
bWwgYi9MYXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0
ZXJuYWwtdXJscy93aW5kb3ctb3Blbi13aXRob3V0LWZsYWcuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi44MDAxN2QwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvbG9hZGVyL25hdmlnYXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvd2lu
ZG93LW9wZW4td2l0aG91dC1mbGFnLmh0bWwKQEAgLTAsMCArMSwxMCBAQAorPHNjcmlwdD4KK2lm
ICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAg
IHRlc3RSdW5uZXIuZHVtcFBvbGljeURlbGVnYXRlQ2FsbGJhY2tzKCk7CisgICAgdGVzdFJ1bm5l
ci5xdWV1ZUxvYWQoInJlc291cmNlcy93aW5kb3ctb3Blbi10by1ub3RpZnktZG9uZS5odG1sIik7
Cit9Cis8L3NjcmlwdD4KK1RoaXMgcGFnZSBvcGVucyBhIDJuZCBwYWdlIHdpdGggdGhlICJzaG91
bGQgb3BlbiBleHRlcm5hbCBVUkxzIiBmbGFnIHNldCB0byBmYWxzZS48YnI+CitUaGF0IHBhZ2Ug
ZG9lcyBhIHdpbmRvdy5vcGVuIHRvIG9wZW4gYSAzcmQgcGFnZS48YnI+CitUaGF0IDNyZCBwYWdl
IHNob3VsZCBhbHNvIGhhdmUgdGhlIGZsYWcgc2V0IHRvIGZhbHNlLjxicj4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRl
eCBkZGY0OWI3Li5hMTM4MDRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQwIEBACisyMDE1LTA2
LTAxICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KKworICAgICAgICBXZWJLaXQg
cG9saWN5IGRlbGVnYXRlIHNob3VsZCBzdWdnZXN0IGlmIGEgbmF2aWdhdGlvbiBzaG91bGQgYmUg
YWxsb3dlZCB0byBvcGVuIFVSTHMgZXh0ZXJuYWxseS4KKyAgICAgICAgcmRhcjovL3Byb2JsZW0v
MjEwMjUzMDEgYW5kIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDUy
ODAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0
czogbG9hZGVyL25hdmlnYXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvbWFp
bi1mcmFtZS1jbGljay5odG1sCisgICAgICAgICAgICAgICBsb2FkZXIvbmF2aWdhdGlvbi1wb2xp
Y3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJscy9tYWluLWZyYW1lLW5hdmlnYXRlZC1wcm9ncmFt
YXRpY2FsbHktYnktc3ViZnJhbWUuaHRtbAorICAgICAgICAgICAgICAgbG9hZGVyL25hdmlnYXRp
b24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvbWFpbi1mcmFtZS13aXRoLWZsYWct
cHJvZ2FtYXRpYy5odG1sCisgICAgICAgICAgICAgICBsb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kv
c2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJscy9tYWluLWZyYW1lLXdpdGhvdXQtZmxhZy1wcm9ncmFt
YXRpYy5odG1sCisgICAgICAgICAgICAgICBsb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxk
LW9wZW4tZXh0ZXJuYWwtdXJscy9zdWJmcmFtZS1jbGljay10YXJnZXQtc2VsZi5odG1sCisgICAg
ICAgICAgICAgICBsb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwt
dXJscy9zdWJmcmFtZS1jbGljay10YXJnZXQtdG9wLmh0bWwKKyAgICAgICAgICAgICAgIGxvYWRl
ci9uYXZpZ2F0aW9uLXBvbGljeS9zaG91bGQtb3Blbi1leHRlcm5hbC11cmxzL3VzZXItZ2VzdHVy
ZS10YXJnZXQtYmxhbmstd2l0aC1mbGFnLWZyb20tc3ViZnJhbWUuaHRtbAorICAgICAgICAgICAg
ICAgbG9hZGVyL25hdmlnYXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvdXNl
ci1nZXN0dXJlLXRhcmdldC1ibGFuay13aXRoLWZsYWcuaHRtbAorICAgICAgICAgICAgICAgbG9h
ZGVyL25hdmlnYXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvdXNlci1nZXN0
dXJlLXRhcmdldC1ibGFuay13aXRob3V0LWZsYWctZnJvbS1zdWJmcmFtZS5odG1sCisgICAgICAg
ICAgICAgICBsb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJs
cy91c2VyLWdlc3R1cmUtdGFyZ2V0LWJsYW5rLXdpdGhvdXQtZmxhZy5odG1sCisgICAgICAgICAg
ICAgICBsb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJscy91
c2VyLWdlc3R1cmUtd2luZG93LW9wZW4td2l0aC1mbGFnLWZyb20tc3ViZnJhbWUuaHRtbAorICAg
ICAgICAgICAgICAgbG9hZGVyL25hdmlnYXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFs
LXVybHMvdXNlci1nZXN0dXJlLXdpbmRvdy1vcGVuLXdpdGgtZmxhZy5odG1sCisgICAgICAgICAg
ICAgICBsb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJscy91
c2VyLWdlc3R1cmUtd2luZG93LW9wZW4td2l0aG91dC1mbGFnLWZyb20tc3ViZnJhbWUuaHRtbAor
ICAgICAgICAgICAgICAgbG9hZGVyL25hdmlnYXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVy
bmFsLXVybHMvdXNlci1nZXN0dXJlLXdpbmRvdy1vcGVuLXdpdGhvdXQtZmxhZy5odG1sCisgICAg
ICAgICAgICAgICBsb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwt
dXJscy93aW5kb3ctb3Blbi13aXRoLWZsYWctZnJvbS1zdWJmcmFtZS5odG1sCisgICAgICAgICAg
ICAgICBsb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJscy93
aW5kb3ctb3Blbi13aXRoLWZsYWcuaHRtbAorICAgICAgICAgICAgICAgbG9hZGVyL25hdmlnYXRp
b24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvd2luZG93LW9wZW4td2l0aG91dC1m
bGFnLWZyb20tc3ViZnJhbWUuaHRtbAorICAgICAgICAgICAgICAgbG9hZGVyL25hdmlnYXRpb24t
cG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvd2luZG93LW9wZW4td2l0aG91dC1mbGFn
Lmh0bWwKKworICAgICAgICBUaGUgInNob3VsZCBvcGVuIGV4dGVybmFsIFVSTHMiIGZsYWcgaXMg
b25seSBmb3IgbWFpbiBmcmFtZXMuCisgICAgICAgIEl0IGRvZXNuJ3QgZW5mb3JjZSBhbnkgc29y
dCBvZiBwb2xpY3kgaW50ZXJuYWwgdG8gV2ViS2l0LCBidXQgcmF0aGVyIGlzIGZvciBub3RpZmlj
YXRpb25zIHRvIHRoZSBwb2xpY3kgZGVsZWdhdGUuCisgICAgICAgIAorICAgICAgICBJdCBpcyBz
ZXQgZnJvbSBvbmUgb2YgdHdvIHBsYWNlczoKKyAgICAgICAgMSAtIEEgbWFpbiBmcmFtZSBpcyBu
YXZpZ2F0ZWQgYnkgYW55IGZyYW1lIGFzIHRoZSByZXN1bHQgb2YgYSB1c2VyIGdlc3R1cmUuCisg
ICAgICAgIDIgLSBXZWJLaXQyIEFQSSBleHBsaWNpdGx5IHN0YXRlcyB0aGUgZmxhZyBpcyB0cnVl
LgorICAgICAgICAKKyAgICAgICAgVGhlIGZsYWcgdmFsdWUgcHJvcGFnYXRlcyB3aGVuOgorICAg
ICAgICAxIC0gV2hlbiBhIG1haW4gZnJhbWUgZG9jdW1lbnQgaXMgbmF2aWdhdGVkIHRvIGEgbmV3
IG1haW4gZnJhbWUgZG9jdW1lbnQuCisgICAgICAgIDIgLSBXaGVuIGEgbmV3IHdpbmRvdyBpcyBv
cGVuZWQgZnJvbSBhIHBhZ2Ugd2hvc2UgbWFpbiBmcmFtZSBoYWQgdGhlIGZsYWcgc2V0LgorICAg
ICAgICAKKyAgICAgICAgVGhlIGZsYWcgcmVzZXRzIHRvIGZhbHNlIHdoZW46CisgICAgICAgIDEg
LSBBIHN1YmZyYW1lIG5hdmlnYXRlcyBhIG1haW4gZnJhbWUgd2l0aG91dCBhIHVzZXIgZ2VzdHVy
ZS4KKyAgICAgICAgCisgICAgICAgIFRoaXMgcGF0Y2ggaXMgbGFyZ2UsIGJ1dCBkb2VzIGxpdHRs
ZSBtb3JlIHRoYW4gdGhlIGZvbGxvd2luZzoKKyAgICAgICAgMSAtIEFkZHMgYSBTaG91bGRPcGVu
RXh0ZXJuYWxVUkxzIGZsYWcgdG8gYm90aCBGcmFtZUxvYWRSZXF1ZXN0IGFuZCBOYXZpZ2F0aW9u
QWN0aW9uLgorICAgICAgICAyIC0gTWFrZXMgc3VyZSBhbnlib2R5IHdobyBjcmVhdGVzIGVpdGhl
ciBvZiB0aG9zZSBvYmplY3RzIHNldHMgYSBzZW5zaWJsZSBmb3IgdGhhdCBmbGFnLgorICAgICAg
ICAzIC0gV2hlbiBGcmFtZUxvYWRlciBjcmVhdGVzIGEgbmV3IERvY3VtZW50TG9hZGVyLCBpdCBz
ZXRzIGl0cyBmbGFnIGJhc2VkIG9uIHdoZXRoZXIgb3Igbm90IHRoZSBsb2FkIGlzIGluIGEgbWFp
biBmcmFtZSwKKyAgICAgICAgICAgIHdoZXRoZXIgb3Igbm90IHRoZSBsb2FkIGlzIGZyb20gYSB1
c2VyIGdlc3R1cmUsIGFuZCBiYXNlZCBvbiB0aGUgaW5pdGlhdG9yJ3MgdmFsdWUgb2YgdGhlIGZs
YWcuIAorCisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRv
Y3VtZW50Ojpwcm9jZXNzSHR0cEVxdWl2KToKKyAgICAgICAgCisgICAgICAgICogaHRtbC9IVE1M
QW5jaG9yRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQW5jaG9yRWxlbWVudDo6
aGFuZGxlQ2xpY2spOgorICAgICAgICAKKyAgICAgICAgKiBodG1sL0hUTUxMaW5rRWxlbWVudC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTGlua0VsZW1lbnQ6OmhhbmRsZUNsaWNrKToKKyAg
ICAgICAgCisgICAgICAgICogaHRtbC9wYXJzZXIvWFNTQXVkaXRvckRlbGVnYXRlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlhTU0F1ZGl0b3JEZWxlZ2F0ZTo6ZGlkQmxvY2tTY3JpcHQpOgorICAg
ICAgICAKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsOjpvcGVu
SW5OZXdUYWIpOgorICAgICAgICAKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFn
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclBhZ2VBZ2VudDo6bmF2aWdhdGUp
OgorICAgICAgICAKKyAgICAgICAgKiBsb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXI6OnNldFRyaWdnZXJpbmdBY3Rpb24pOgorICAgICAg
ICAoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXI6OnNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3lU
b1Byb3BhZ2F0ZSk6CisgICAgICAgICogbG9hZGVyL0RvY3VtZW50TG9hZGVyLmg6CisgICAgICAg
IChXZWJDb3JlOjpEb2N1bWVudExvYWRlcjo6c2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSk6
IERlbGV0ZWQuCisgICAgICAgIAorICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRSZXF1ZXN0LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZFJlcXVlc3Q6OkZyYW1lTG9hZFJlcXVlc3Qp
OgorICAgICAgICAKKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkUmVxdWVzdC5oOgorICAgICAg
ICAoV2ViQ29yZTo6RnJhbWVMb2FkUmVxdWVzdDo6RnJhbWVMb2FkUmVxdWVzdCk6CisgICAgICAg
IAorICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpG
cmFtZUxvYWRlcjo6dXJsU2VsZWN0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6
OnJlY2VpdmVkRmlyc3REYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpsb2Fk
VVJMSW50b0NoaWxkRnJhbWUpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmxvYWRV
UkwpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmxvYWQpOgorICAgICAgICAoV2Vi
Q29yZTo6RnJhbWVMb2FkZXI6OmxvYWRXaXRoTmF2aWdhdGlvbkFjdGlvbik6CisgICAgICAgIChX
ZWJDb3JlOjpGcmFtZUxvYWRlcjo6cmVsb2FkV2l0aE92ZXJyaWRlRW5jb2RpbmcpOgorICAgICAg
ICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OnJlbG9hZCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFt
ZUxvYWRlcjo6bG9hZFBvc3RSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVy
Ojpjb250aW51ZUxvYWRBZnRlck5ld1dpbmRvd1BvbGljeSk6CisgICAgICAgIChXZWJDb3JlOjpG
cmFtZUxvYWRlcjo6YXBwbHlTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5VG9OZXdEb2N1bWVu
dExvYWRlcik6CisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyLmg6CisgICAgICAgIAorICAg
ICAgICAqIGxvYWRlci9OYXZpZ2F0aW9uQWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5h
dmlnYXRpb25BY3Rpb246Ok5hdmlnYXRpb25BY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6TmF2
aWdhdGlvbkFjdGlvbjo6Y29weVdpdGhTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5KToKKyAg
ICAgICAgKiBsb2FkZXIvTmF2aWdhdGlvbkFjdGlvbi5oOgorICAgICAgICAoV2ViQ29yZTo6TmF2
aWdhdGlvbkFjdGlvbjo6c2V0U2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSk6IERlbGV0ZWQu
CisgICAgICAgIAorICAgICAgICAqIGxvYWRlci9OYXZpZ2F0aW9uU2NoZWR1bGVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNjaGVkdWxlZFVSTE5hdmlnYXRpb246OlNjaGVkdWxlZFVSTE5hdmln
YXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6U2NoZWR1bGVkUmVkaXJlY3Q6OlNjaGVkdWxlZFJl
ZGlyZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNjaGVkdWxlZExvY2F0aW9uQ2hhbmdlOjpTY2hl
ZHVsZWRMb2NhdGlvbkNoYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpTY2hlZHVsZWRSZWZyZXNo
OjpTY2hlZHVsZWRSZWZyZXNoKToKKyAgICAgICAgKFdlYkNvcmU6OlNjaGVkdWxlZEZvcm1TdWJt
aXNzaW9uOjpTY2hlZHVsZWRGb3JtU3VibWlzc2lvbik6CisgICAgICAgIChXZWJDb3JlOjpOYXZp
Z2F0aW9uU2NoZWR1bGVyOjpzY2hlZHVsZVJlZGlyZWN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok5h
dmlnYXRpb25TY2hlZHVsZXI6OnNjaGVkdWxlTG9jYXRpb25DaGFuZ2UpOgorICAgICAgICAoV2Vi
Q29yZTo6TmF2aWdhdGlvblNjaGVkdWxlcjo6c2NoZWR1bGVSZWZyZXNoKToKKyAgICAgICAgKiBs
b2FkZXIvTmF2aWdhdGlvblNjaGVkdWxlci5oOgorICAgICAgICAKKyAgICAgICAgKiBsb2FkZXIv
UG9saWN5Q2hlY2tlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQb2xpY3lDaGVja2VyOjpjaGVj
a05hdmlnYXRpb25Qb2xpY3kpOgorICAgICAgICAKKyAgICAgICAgKiBsb2FkZXIvU3ViZnJhbWVM
b2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3ViZnJhbWVMb2FkZXI6OmxvYWRPclJlZGly
ZWN0U3ViZnJhbWUpOgorICAgICAgICAKKyAgICAgICAgKiBsb2FkZXIvYXBwY2FjaGUvQXBwbGlj
YXRpb25DYWNoZUdyb3VwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFwcGxpY2F0aW9uQ2FjaGVH
cm91cDo6c2VsZWN0Q2FjaGUpOgorICAgICAgICAKKyAgICAgICAgKiBwYWdlL0NvbnRleHRNZW51
Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpvcGVuTmV3V2luZG93KToKKyAgICAg
ICAgKFdlYkNvcmU6OkNvbnRleHRNZW51Q29udHJvbGxlcjo6Y29udGV4dE1lbnVJdGVtU2VsZWN0
ZWQpOgorICAgICAgICAKKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpET01XaW5kb3c6OnNldExvY2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdp
bmRvdzo6Y3JlYXRlV2luZG93KToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6b3Blbik6
CisgICAgICAgIAorICAgICAgICAqIHBhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RHJhZ0NvbnRyb2xsZXI6OnBlcmZvcm1EcmFnT3BlcmF0aW9uKToKKyAgICAgICAg
CisgICAgICAgICogcGFnZS9Mb2NhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMb2NhdGlv
bjo6cmVsb2FkKToKKyAgICAgICAgCisgICAgICAgICogcmVwbGF5L1JlcGxheUlucHV0RGlzcGF0
Y2hNZXRob2RzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkluaXRpYWxOYXZpZ2F0aW9uOjpkaXNw
YXRjaCk6CisgICAgICAgIAorICAgICAgICAqIHN2Zy9TVkdBRWxlbWVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTVkdBRWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxlcik6CisKIDIwMTUtMDYt
MDEgIEJlbmphbWluIFBvdWxhaW4gIDxicG91bGFpbkBhcHBsZS5jb20+CiAKICAgICAgICAgW0NT
UyBKSVRdIEZhaWwgdG8gY29tcGlsZSB3aGVuIHdlIGFyZSBvdXQgb2YgZXhlY3V0YWJsZSBtZW1v
cnkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IDQ2YTEzZDUuLmZlZmE5YjYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0RvY3VtZW50LmNwcApAQCAtMzA0OSw3ICszMDQ5LDcgQEAgdm9pZCBEb2N1bWVudDo6cHJv
Y2Vzc0h0dHBFcXVpdihjb25zdCBTdHJpbmcmIGVxdWl2LCBjb25zdCBTdHJpbmcmIGNvbnRlbnQp
CiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgY29tcGxldGVkVVJMID0gY29tcGxl
dGVVUkwodXJsU3RyaW5nKTsKICAgICAgICAgICAgIGlmICghcHJvdG9jb2xJc0phdmFTY3JpcHQo
Y29tcGxldGVkVVJMKSkKLSAgICAgICAgICAgICAgICBmcmFtZS0+bmF2aWdhdGlvblNjaGVkdWxl
cigpLnNjaGVkdWxlUmVkaXJlY3QoZGVsYXksIGNvbXBsZXRlZFVSTCk7CisgICAgICAgICAgICAg
ICAgZnJhbWUtPm5hdmlnYXRpb25TY2hlZHVsZXIoKS5zY2hlZHVsZVJlZGlyZWN0KHRoaXMsIGRl
bGF5LCBjb21wbGV0ZWRVUkwpOwogICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAg
U3RyaW5nIG1lc3NhZ2UgPSAiUmVmdXNlZCB0byByZWZyZXNoICIgKyBtX3VybC5zdHJpbmdDZW50
ZXJFbGxpcHNpemVkVG9MZW5ndGgoKSArICIgdG8gYSBqYXZhc2NyaXB0OiBVUkwiOwogICAgICAg
ICAgICAgICAgIGFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OlNlY3VyaXR5LCBNZXNz
YWdlTGV2ZWw6OkVycm9yLCBtZXNzYWdlKTsKQEAgLTMwODcsNyArMzA4Nyw3IEBAIHZvaWQgRG9j
dW1lbnQ6OnByb2Nlc3NIdHRwRXF1aXYoY29uc3QgU3RyaW5nJiBlcXVpdiwgY29uc3QgU3RyaW5n
JiBjb250ZW50KQogICAgICAgICAgICAgICAgIC8vIFN0b3BwaW5nIHRoZSBsb2FkZXIgaXNuJ3Qg
ZW5vdWdoLCBhcyB3ZSdyZSBhbHJlYWR5IHBhcnNpbmcgdGhlIGRvY3VtZW50OyB0byBob25vciB0
aGUgaGVhZGVyJ3MKICAgICAgICAgICAgICAgICAvLyBpbnRlbnQsIHdlIG11c3QgbmF2aWdhdGUg
YXdheSBmcm9tIHRoZSBwb3NzaWJseSBwYXJ0aWFsbHktcmVuZGVyZWQgZG9jdW1lbnQgdG8gYSBs
b2NhdGlvbiB0aGF0CiAgICAgICAgICAgICAgICAgLy8gZG9lc24ndCBpbmhlcml0IHRoZSBwYXJl
bnQncyBTZWN1cml0eU9yaWdpbi4KLSAgICAgICAgICAgICAgICBmcmFtZS0+bmF2aWdhdGlvblNj
aGVkdWxlcigpLnNjaGVkdWxlTG9jYXRpb25DaGFuZ2Uoc2VjdXJpdHlPcmlnaW4oKSwgU2VjdXJp
dHlPcmlnaW46OnVybFdpdGhVbmlxdWVTZWN1cml0eU9yaWdpbigpLCBTdHJpbmcoKSk7CisgICAg
ICAgICAgICAgICAgZnJhbWUtPm5hdmlnYXRpb25TY2hlZHVsZXIoKS5zY2hlZHVsZUxvY2F0aW9u
Q2hhbmdlKHRoaXMsIHNlY3VyaXR5T3JpZ2luKCksIFNlY3VyaXR5T3JpZ2luOjp1cmxXaXRoVW5p
cXVlU2VjdXJpdHlPcmlnaW4oKSwgU3RyaW5nKCkpOwogICAgICAgICAgICAgICAgIGFkZENvbnNv
bGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OlNlY3VyaXR5LCBNZXNzYWdlTGV2ZWw6OkVycm9yLCBt
ZXNzYWdlLCByZXF1ZXN0SWRlbnRpZmllcik7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KQEAg
LTY2NDgsNCArNjY0OCwxMiBAQCB2b2lkIERvY3VtZW50OjpzZXRTaG91bGRQbGF5VG9QbGF5YmFj
a1RhcmdldCh1aW50NjRfdCBjbGllbnRJZCwgYm9vbCBzaG91bGRQbGF5KQogfQogI2VuZGlmIC8v
IEVOQUJMRShXSVJFTEVTU19QTEFZQkFDS19UQVJHRVQpCiAKK1Nob3VsZE9wZW5FeHRlcm5hbFVS
THNQb2xpY3kgRG9jdW1lbnQ6OnNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3lUb1Byb3BhZ2F0
ZSgpIGNvbnN0Cit7CisgICAgaWYgKERvY3VtZW50TG9hZGVyKiBkb2N1bWVudExvYWRlciA9IGxv
YWRlcigpKQorICAgICAgICByZXR1cm4gZG9jdW1lbnRMb2FkZXItPnNob3VsZE9wZW5FeHRlcm5h
bFVSTHNQb2xpY3lUb1Byb3BhZ2F0ZSgpOworCisgICAgcmV0dXJuIFNob3VsZE9wZW5FeHRlcm5h
bFVSTHNQb2xpY3k6OlNob3VsZE5vdEFsbG93OworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4IGFjMzk5OWEuLmJhYTJjNGYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5oCkBAIC0xNjUsNiArMTY1LDggQEAgY2xhc3MgWFBhdGhFeHByZXNzaW9uOwogY2xhc3Mg
WFBhdGhOU1Jlc29sdmVyOwogY2xhc3MgWFBhdGhSZXN1bHQ7CiAKK2VudW0gY2xhc3MgU2hvdWxk
T3BlbkV4dGVybmFsVVJMc1BvbGljeTsKKwogI2lmIEVOQUJMRShYU0xUKQogY2xhc3MgVHJhbnNm
b3JtU291cmNlOwogI2VuZGlmCkBAIC0xMjU0LDYgKzEyNTYsOCBAQCBwdWJsaWM6CiAgICAgdm9p
ZCBzZXRTaG91bGRQbGF5VG9QbGF5YmFja1RhcmdldCh1aW50NjRfdCwgYm9vbCk7CiAjZW5kaWYK
IAorICAgIFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kgc2hvdWxkT3BlbkV4dGVybmFsVVJM
c1BvbGljeVRvUHJvcGFnYXRlKCkgY29uc3Q7CisKIHByb3RlY3RlZDoKICAgICBlbnVtIENvbnN0
cnVjdGlvbkZsYWdzIHsgU3ludGhlc2l6ZWQgPSAxLCBOb25SZW5kZXJlZFBsYWNlaG9sZGVyID0g
MSA8PCAxIH07CiAgICAgRG9jdW1lbnQoRnJhbWUqLCBjb25zdCBVUkwmLCB1bnNpZ25lZCA9IERl
ZmF1bHREb2N1bWVudENsYXNzLCB1bnNpZ25lZCBjb25zdHJ1Y3Rpb25GbGFncyA9IDApOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmNwcAppbmRleCA1NDkwNDczLi41YmQ3
ZTU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmNwcApAQCAtNTU4
LDcgKzU1OCw4IEBAIHZvaWQgSFRNTEFuY2hvckVsZW1lbnQ6OmhhbmRsZUNsaWNrKEV2ZW50KiBl
dmVudCkKICAgICAgICAgZnJhbWUtPmxvYWRlcigpLmNsaWVudCgpLnN0YXJ0RG93bmxvYWQocmVx
dWVzdCwgZmFzdEdldEF0dHJpYnV0ZShkb3dubG9hZEF0dHIpKTsKICAgICB9IGVsc2UKICNlbmRp
ZgotICAgICAgICBmcmFtZS0+bG9hZGVyKCkudXJsU2VsZWN0ZWQoa3VybCwgdGFyZ2V0KCksIGV2
ZW50LCBMb2NrSGlzdG9yeTo6Tm8sIExvY2tCYWNrRm9yd2FyZExpc3Q6Ok5vLCBoYXNSZWwoUmVs
YXRpb25Ob1JlZmVycmVyKSA/IE5ldmVyU2VuZFJlZmVycmVyIDogTWF5YmVTZW5kUmVmZXJyZXIp
OworCisgICAgZnJhbWUtPmxvYWRlcigpLnVybFNlbGVjdGVkKGt1cmwsIHRhcmdldCgpLCBldmVu
dCwgTG9ja0hpc3Rvcnk6Ok5vLCBMb2NrQmFja0ZvcndhcmRMaXN0OjpObywgaGFzUmVsKFJlbGF0
aW9uTm9SZWZlcnJlcikgPyBOZXZlclNlbmRSZWZlcnJlciA6IE1heWJlU2VuZFJlZmVycmVyLCBk
b2N1bWVudCgpLnNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3lUb1Byb3BhZ2F0ZSgpKTsKIAog
ICAgIHNlbmRQaW5ncyhrdXJsKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTExpbmtFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVtZW50
LmNwcAppbmRleCAxZWRmZmQwLi5hNmY3OTViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxMaW5rRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGlu
a0VsZW1lbnQuY3BwCkBAIC00NDEsNyArNDQxLDcgQEAgdm9pZCBIVE1MTGlua0VsZW1lbnQ6Omhh
bmRsZUNsaWNrKEV2ZW50JiBldmVudCkKICAgICBGcmFtZSogZnJhbWUgPSBkb2N1bWVudCgpLmZy
YW1lKCk7CiAgICAgaWYgKCFmcmFtZSkKICAgICAgICAgcmV0dXJuOwotICAgIGZyYW1lLT5sb2Fk
ZXIoKS51cmxTZWxlY3RlZCh1cmwsIHRhcmdldCgpLCAmZXZlbnQsIExvY2tIaXN0b3J5OjpObywg
TG9ja0JhY2tGb3J3YXJkTGlzdDo6Tm8sIE1heWJlU2VuZFJlZmVycmVyKTsKKyAgICBmcmFtZS0+
bG9hZGVyKCkudXJsU2VsZWN0ZWQodXJsLCB0YXJnZXQoKSwgJmV2ZW50LCBMb2NrSGlzdG9yeTo6
Tm8sIExvY2tCYWNrRm9yd2FyZExpc3Q6Ok5vLCBNYXliZVNlbmRSZWZlcnJlciwgZG9jdW1lbnQo
KS5zaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5VG9Qcm9wYWdhdGUoKSk7CiB9CiAKIFVSTCBI
VE1MTGlua0VsZW1lbnQ6OmhyZWYoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9wYXJzZXIvWFNTQXVkaXRvckRlbGVnYXRlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
cGFyc2VyL1hTU0F1ZGl0b3JEZWxlZ2F0ZS5jcHAKaW5kZXggMDRkZDA0My4uZjU0ZDkyYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvWFNTQXVkaXRvckRlbGVnYXRlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9YU1NBdWRpdG9yRGVsZWdhdGUuY3Bw
CkBAIC0xMTIsNyArMTEyLDcgQEAgdm9pZCBYU1NBdWRpdG9yRGVsZWdhdGU6OmRpZEJsb2NrU2Ny
aXB0KGNvbnN0IFhTU0luZm8mIHhzc0luZm8pCiAgICAgfQogCiAgICAgaWYgKHhzc0luZm8ubV9k
aWRCbG9ja0VudGlyZVBhZ2UpCi0gICAgICAgIG1fZG9jdW1lbnQuZnJhbWUoKS0+bmF2aWdhdGlv
blNjaGVkdWxlcigpLnNjaGVkdWxlTG9jYXRpb25DaGFuZ2UobV9kb2N1bWVudC5zZWN1cml0eU9y
aWdpbigpLCBTZWN1cml0eU9yaWdpbjo6dXJsV2l0aFVuaXF1ZVNlY3VyaXR5T3JpZ2luKCksIFN0
cmluZygpKTsKKyAgICAgICAgbV9kb2N1bWVudC5mcmFtZSgpLT5uYXZpZ2F0aW9uU2NoZWR1bGVy
KCkuc2NoZWR1bGVMb2NhdGlvbkNoYW5nZSgmbV9kb2N1bWVudCwgbV9kb2N1bWVudC5zZWN1cml0
eU9yaWdpbigpLCBTZWN1cml0eU9yaWdpbjo6dXJsV2l0aFVuaXF1ZVNlY3VyaXR5T3JpZ2luKCks
IFN0cmluZygpKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWwuY3BwIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWwuY3Bw
CmluZGV4IDM3NGRjYzEuLmJjMzk0ZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbC5jcHAKQEAgLTIxMCw3ICsy
MTAsNyBAQCB2b2lkIEluc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWw6Om9wZW5Jbk5ld1RhYihj
b25zdCBTdHJpbmcmIHVybCkKIHsKICAgICBVc2VyR2VzdHVyZUluZGljYXRvciBpbmRpY2F0b3Io
RGVmaW5pdGVseVByb2Nlc3NpbmdVc2VyR2VzdHVyZSk7CiAgICAgRnJhbWUmIG1haW5GcmFtZSA9
IG1faW5zcGVjdG9yQ29udHJvbGxlci0+aW5zcGVjdGVkUGFnZSgpLm1haW5GcmFtZSgpOwotICAg
IEZyYW1lTG9hZFJlcXVlc3QgcmVxdWVzdChtYWluRnJhbWUuZG9jdW1lbnQoKS0+c2VjdXJpdHlP
cmlnaW4oKSwgUmVzb3VyY2VSZXF1ZXN0KCksICJfYmxhbmsiLCBMb2NrSGlzdG9yeTo6Tm8sIExv
Y2tCYWNrRm9yd2FyZExpc3Q6Ok5vLCBNYXliZVNlbmRSZWZlcnJlciwgQWxsb3dOYXZpZ2F0aW9u
VG9JbnZhbGlkVVJMOjpZZXMsIE5ld0ZyYW1lT3BlbmVyUG9saWN5OjpBbGxvdywgUmVwbGFjZURv
Y3VtZW50SWZKYXZhU2NyaXB0VVJMKTsKKyAgICBGcmFtZUxvYWRSZXF1ZXN0IHJlcXVlc3QobWFp
bkZyYW1lLmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCksIFJlc291cmNlUmVxdWVzdCgpLCAi
X2JsYW5rIiwgTG9ja0hpc3Rvcnk6Ok5vLCBMb2NrQmFja0ZvcndhcmRMaXN0OjpObywgTWF5YmVT
ZW5kUmVmZXJyZXIsIEFsbG93TmF2aWdhdGlvblRvSW52YWxpZFVSTDo6WWVzLCBOZXdGcmFtZU9w
ZW5lclBvbGljeTo6QWxsb3csIFJlcGxhY2VEb2N1bWVudElmSmF2YVNjcmlwdFVSTCwgU2hvdWxk
T3BlbkV4dGVybmFsVVJMc1BvbGljeTo6U2hvdWxkTm90QWxsb3cpOwogCiAgICAgYm9vbCBjcmVh
dGVkOwogICAgIFdpbmRvd0ZlYXR1cmVzIHdpbmRvd0ZlYXR1cmVzOwpAQCAtMjIzLDcgKzIyMyw3
IEBAIHZvaWQgSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbDo6b3BlbkluTmV3VGFiKGNvbnN0
IFN0cmluZyYgdXJsKQogCiAgICAgLy8gRklYTUU6IFdoeSBkb2VzIG9uZSB1c2UgbWFpbkZyYW1l
IGFuZCB0aGUgb3RoZXIgZnJhbWU/CiAgICAgUmVzb3VyY2VSZXF1ZXN0IHJlc291cmNlUmVxdWVz
dChmcmFtZS0+ZG9jdW1lbnQoKS0+Y29tcGxldGVVUkwodXJsKSk7Ci0gICAgRnJhbWVMb2FkUmVx
dWVzdCBmcmFtZVJlcXVlc3QobWFpbkZyYW1lLmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCks
IHJlc291cmNlUmVxdWVzdCwgZW1wdHlTdHJpbmcoKSwgTG9ja0hpc3Rvcnk6Ok5vLCBMb2NrQmFj
a0ZvcndhcmRMaXN0OjpObywgTWF5YmVTZW5kUmVmZXJyZXIsIEFsbG93TmF2aWdhdGlvblRvSW52
YWxpZFVSTDo6WWVzLCBOZXdGcmFtZU9wZW5lclBvbGljeTo6QWxsb3csIFJlcGxhY2VEb2N1bWVu
dElmSmF2YVNjcmlwdFVSTCk7CisgICAgRnJhbWVMb2FkUmVxdWVzdCBmcmFtZVJlcXVlc3QobWFp
bkZyYW1lLmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCksIHJlc291cmNlUmVxdWVzdCwgZW1w
dHlTdHJpbmcoKSwgTG9ja0hpc3Rvcnk6Ok5vLCBMb2NrQmFja0ZvcndhcmRMaXN0OjpObywgTWF5
YmVTZW5kUmVmZXJyZXIsIEFsbG93TmF2aWdhdGlvblRvSW52YWxpZFVSTDo6WWVzLCBOZXdGcmFt
ZU9wZW5lclBvbGljeTo6QWxsb3csIFJlcGxhY2VEb2N1bWVudElmSmF2YVNjcmlwdFVSTCwgU2hv
dWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeTo6U2hvdWxkTm90QWxsb3cpOwogICAgIGZyYW1lLT5s
b2FkZXIoKS5jaGFuZ2VMb2NhdGlvbihmcmFtZVJlcXVlc3QpOwogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuY3BwCmluZGV4IDcxNmY0MGYuLjE4
YzA0MzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdl
QWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdl
bnQuY3BwCkBAIC00MTksNyArNDE5LDcgQEAgdm9pZCBJbnNwZWN0b3JQYWdlQWdlbnQ6Om5hdmln
YXRlKEVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiB1cmwpCiAgICAgRnJhbWUmIGZyYW1lID0g
bV9wYWdlLT5tYWluRnJhbWUoKTsKIAogICAgIFJlc291cmNlUmVxdWVzdCByZXNvdXJjZVJlcXVl
c3QoZnJhbWUuZG9jdW1lbnQoKS0+Y29tcGxldGVVUkwodXJsKSk7Ci0gICAgRnJhbWVMb2FkUmVx
dWVzdCBmcmFtZVJlcXVlc3QoZnJhbWUuZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKSwgcmVz
b3VyY2VSZXF1ZXN0LCBlbXB0eVN0cmluZygpLCBMb2NrSGlzdG9yeTo6Tm8sIExvY2tCYWNrRm9y
d2FyZExpc3Q6Ok5vLCBNYXliZVNlbmRSZWZlcnJlciwgQWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlk
VVJMOjpObywgTmV3RnJhbWVPcGVuZXJQb2xpY3k6OkFsbG93LCBTaG91bGRSZXBsYWNlRG9jdW1l
bnRJZkphdmFTY3JpcHRVUkw6OlJlcGxhY2VEb2N1bWVudElmSmF2YVNjcmlwdFVSTCk7CisgICAg
RnJhbWVMb2FkUmVxdWVzdCBmcmFtZVJlcXVlc3QoZnJhbWUuZG9jdW1lbnQoKS0+c2VjdXJpdHlP
cmlnaW4oKSwgcmVzb3VyY2VSZXF1ZXN0LCBlbXB0eVN0cmluZygpLCBMb2NrSGlzdG9yeTo6Tm8s
IExvY2tCYWNrRm9yd2FyZExpc3Q6Ok5vLCBNYXliZVNlbmRSZWZlcnJlciwgQWxsb3dOYXZpZ2F0
aW9uVG9JbnZhbGlkVVJMOjpObywgTmV3RnJhbWVPcGVuZXJQb2xpY3k6OkFsbG93LCBTaG91bGRS
ZXBsYWNlRG9jdW1lbnRJZkphdmFTY3JpcHRVUkw6OlJlcGxhY2VEb2N1bWVudElmSmF2YVNjcmlw
dFVSTCwgU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeTo6U2hvdWxkTm90QWxsb3cpOwogICAg
IGZyYW1lLmxvYWRlcigpLmNoYW5nZUxvY2F0aW9uKGZyYW1lUmVxdWVzdCk7CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwCmluZGV4IGNiMTk4Y2IuLjUyZjYwZjUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcApAQCAtMTU0OSw5ICsx
NTQ5LDE1IEBAIHZvaWQgRG9jdW1lbnRMb2FkZXI6OmhhbmRsZWRPbmxvYWRFdmVudHMoKQogCiB2
b2lkIERvY3VtZW50TG9hZGVyOjpzZXRUcmlnZ2VyaW5nQWN0aW9uKGNvbnN0IE5hdmlnYXRpb25B
Y3Rpb24mIGFjdGlvbikKIHsKLSAgICBtX3RyaWdnZXJpbmdBY3Rpb24gPSBhY3Rpb247Ci0gICAg
aWYgKCFtX3RyaWdnZXJpbmdBY3Rpb24uaXNFbXB0eSgpKQotICAgICAgICBtX3RyaWdnZXJpbmdB
Y3Rpb24uc2V0U2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeShtX3Nob3VsZE9wZW5FeHRlcm5h
bFVSTHNQb2xpY3kpOworICAgIG1fdHJpZ2dlcmluZ0FjdGlvbiA9IGFjdGlvbi5jb3B5V2l0aFNo
b3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kobV9mcmFtZSA/IHNob3VsZE9wZW5FeHRlcm5hbFVS
THNQb2xpY3lUb1Byb3BhZ2F0ZSgpIDogbV9zaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5KTsK
K30KKworU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSBEb2N1bWVudExvYWRlcjo6c2hvdWxk
T3BlbkV4dGVybmFsVVJMc1BvbGljeVRvUHJvcGFnYXRlKCkgY29uc3QKK3sKKyAgICBpZiAoIW1f
ZnJhbWUgfHwgIW1fZnJhbWUtPmlzTWFpbkZyYW1lKCkpCisgICAgICAgIHJldHVybiBTaG91bGRP
cGVuRXh0ZXJuYWxVUkxzUG9saWN5OjpTaG91bGROb3RBbGxvdzsKKworICAgIHJldHVybiBtX3No
b3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3k7CiB9CiAKICNpZiBFTkFCTEUoQ09OVEVOVF9FWFRF
TlNJT05TKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVy
LmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuaAppbmRleCA2NGJmMzVh
Li45MzVlODgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2Fk
ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuaApAQCAtMjc2
LDcgKzI3Niw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICNlbmRpZgogCiAgICAgICAgIHZvaWQg
c2V0U2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeShTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9s
aWN5IHNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kpIHsgbV9zaG91bGRPcGVuRXh0ZXJuYWxV
UkxzUG9saWN5ID0gc2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeTsgfQotICAgICAgICBTaG91
bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5IHNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3koKSBj
b25zdCB7IHJldHVybiBtX3Nob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3k7IH0KKyAgICAgICAg
U2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSBzaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5
VG9Qcm9wYWdhdGUoKSBjb25zdDsKIAogICAgIHByb3RlY3RlZDoKICAgICAgICAgV0VCQ09SRV9F
WFBPUlQgRG9jdW1lbnRMb2FkZXIoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgU3Vic3Rp
dHV0ZURhdGEmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRS
ZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRSZXF1ZXN0LmNwcApp
bmRleCA3Yjk3NGIwLi41ZDk5MjZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
RnJhbWVMb2FkUmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9h
ZFJlcXVlc3QuY3BwCkBAIC0zNiw3ICszNiw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAot
RnJhbWVMb2FkUmVxdWVzdDo6RnJhbWVMb2FkUmVxdWVzdChGcmFtZSogZnJhbWUsIGNvbnN0IFJl
c291cmNlUmVxdWVzdCYgcmVzb3VyY2VSZXF1ZXN0LCBjb25zdCBTdWJzdGl0dXRlRGF0YSYgc3Vi
c3RpdHV0ZURhdGEpCitGcmFtZUxvYWRSZXF1ZXN0OjpGcmFtZUxvYWRSZXF1ZXN0KEZyYW1lKiBm
cmFtZSwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXNvdXJjZVJlcXVlc3QsIFNob3VsZE9wZW5F
eHRlcm5hbFVSTHNQb2xpY3kgc2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSwgY29uc3QgU3Vi
c3RpdHV0ZURhdGEmIHN1YnN0aXR1dGVEYXRhKQogICAgIDogbV9yZXF1ZXN0ZXIoZnJhbWUtPmRv
Y3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCkpCiAgICAgLCBtX3Jlc291cmNlUmVxdWVzdChyZXNv
dXJjZVJlcXVlc3QpCiAgICAgLCBtX3Nob3VsZENoZWNrTmV3V2luZG93UG9saWN5KGZhbHNlKQpA
QCAtNDcsNiArNDcsNyBAQCBGcmFtZUxvYWRSZXF1ZXN0OjpGcmFtZUxvYWRSZXF1ZXN0KEZyYW1l
KiBmcmFtZSwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXNvdXJjZQogICAgICwgbV9hbGxvd05h
dmlnYXRpb25Ub0ludmFsaWRVUkwoQWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJMOjpZZXMpCiAg
ICAgLCBtX25ld0ZyYW1lT3BlbmVyUG9saWN5KE5ld0ZyYW1lT3BlbmVyUG9saWN5OjpBbGxvdykK
ICAgICAsIG1fc2hvdWxkUmVwbGFjZURvY3VtZW50SWZKYXZhU2NyaXB0VVJMKFJlcGxhY2VEb2N1
bWVudElmSmF2YVNjcmlwdFVSTCkKKyAgICAsIG1fc2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGlj
eShzaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5KQogewogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkUmVxdWVzdC5oIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0ZyYW1lTG9hZFJlcXVlc3QuaAppbmRleCAyYzgxNTllLi45NTE4OWVjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkUmVxdWVzdC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRSZXF1ZXN0LmgKQEAgLTM2LDcgKzM2LDcgQEAgY2xhc3Mg
RnJhbWU7CiAKIHN0cnVjdCBGcmFtZUxvYWRSZXF1ZXN0IHsKIHB1YmxpYzoKLSAgICBGcmFtZUxv
YWRSZXF1ZXN0KFNlY3VyaXR5T3JpZ2luKiByZXF1ZXN0ZXIsIExvY2tIaXN0b3J5IGxvY2tIaXN0
b3J5LCBMb2NrQmFja0ZvcndhcmRMaXN0IGxvY2tCYWNrRm9yd2FyZExpc3QsIFNob3VsZFNlbmRS
ZWZlcnJlciBzaG91bGRTZW5kUmVmZXJyZXIsIEFsbG93TmF2aWdhdGlvblRvSW52YWxpZFVSTCBh
bGxvd05hdmlnYXRpb25Ub0ludmFsaWRVUkwsIE5ld0ZyYW1lT3BlbmVyUG9saWN5IG5ld0ZyYW1l
T3BlbmVyUG9saWN5KQorICAgIEZyYW1lTG9hZFJlcXVlc3QoU2VjdXJpdHlPcmlnaW4qIHJlcXVl
c3RlciwgTG9ja0hpc3RvcnkgbG9ja0hpc3RvcnksIExvY2tCYWNrRm9yd2FyZExpc3QgbG9ja0Jh
Y2tGb3J3YXJkTGlzdCwgU2hvdWxkU2VuZFJlZmVycmVyIHNob3VsZFNlbmRSZWZlcnJlciwgQWxs
b3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJMIGFsbG93TmF2aWdhdGlvblRvSW52YWxpZFVSTCwgTmV3
RnJhbWVPcGVuZXJQb2xpY3kgbmV3RnJhbWVPcGVuZXJQb2xpY3ksIFNob3VsZE9wZW5FeHRlcm5h
bFVSTHNQb2xpY3kgc2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSkKICAgICAgICAgOiBtX3Jl
cXVlc3RlcihyZXF1ZXN0ZXIpCiAgICAgICAgICwgbV9zaG91bGRDaGVja05ld1dpbmRvd1BvbGlj
eShmYWxzZSkKICAgICAgICAgLCBtX2xvY2tIaXN0b3J5KGxvY2tIaXN0b3J5KQpAQCAtNDUsMTAg
KzQ1LDExIEBAIHB1YmxpYzoKICAgICAgICAgLCBtX2FsbG93TmF2aWdhdGlvblRvSW52YWxpZFVS
TChhbGxvd05hdmlnYXRpb25Ub0ludmFsaWRVUkwpCiAgICAgICAgICwgbV9uZXdGcmFtZU9wZW5l
clBvbGljeShuZXdGcmFtZU9wZW5lclBvbGljeSkKICAgICAgICAgLCBtX3Nob3VsZFJlcGxhY2VE
b2N1bWVudElmSmF2YVNjcmlwdFVSTChSZXBsYWNlRG9jdW1lbnRJZkphdmFTY3JpcHRVUkwpCisg
ICAgICAgICwgbV9zaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5KHNob3VsZE9wZW5FeHRlcm5h
bFVSTHNQb2xpY3kpCiAgICAgewogICAgIH0KIAotICAgIEZyYW1lTG9hZFJlcXVlc3QoU2VjdXJp
dHlPcmlnaW4qIHJlcXVlc3RlciwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXNvdXJjZVJlcXVl
c3QsIExvY2tIaXN0b3J5IGxvY2tIaXN0b3J5LCBMb2NrQmFja0ZvcndhcmRMaXN0IGxvY2tCYWNr
Rm9yd2FyZExpc3QsIFNob3VsZFNlbmRSZWZlcnJlciBzaG91bGRTZW5kUmVmZXJyZXIsIEFsbG93
TmF2aWdhdGlvblRvSW52YWxpZFVSTCBhbGxvd05hdmlnYXRpb25Ub0ludmFsaWRVUkwsIE5ld0Zy
YW1lT3BlbmVyUG9saWN5IG5ld0ZyYW1lT3BlbmVyUG9saWN5KQorICAgIEZyYW1lTG9hZFJlcXVl
c3QoU2VjdXJpdHlPcmlnaW4qIHJlcXVlc3RlciwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXNv
dXJjZVJlcXVlc3QsIExvY2tIaXN0b3J5IGxvY2tIaXN0b3J5LCBMb2NrQmFja0ZvcndhcmRMaXN0
IGxvY2tCYWNrRm9yd2FyZExpc3QsIFNob3VsZFNlbmRSZWZlcnJlciBzaG91bGRTZW5kUmVmZXJy
ZXIsIEFsbG93TmF2aWdhdGlvblRvSW52YWxpZFVSTCBhbGxvd05hdmlnYXRpb25Ub0ludmFsaWRV
UkwsIE5ld0ZyYW1lT3BlbmVyUG9saWN5IG5ld0ZyYW1lT3BlbmVyUG9saWN5LCBTaG91bGRPcGVu
RXh0ZXJuYWxVUkxzUG9saWN5IHNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kpCiAgICAgICAg
IDogbV9yZXF1ZXN0ZXIocmVxdWVzdGVyKQogICAgICAgICAsIG1fcmVzb3VyY2VSZXF1ZXN0KHJl
c291cmNlUmVxdWVzdCkKICAgICAgICAgLCBtX3Nob3VsZENoZWNrTmV3V2luZG93UG9saWN5KGZh
bHNlKQpAQCAtNTgsMTAgKzU5LDExIEBAIHB1YmxpYzoKICAgICAgICAgLCBtX2FsbG93TmF2aWdh
dGlvblRvSW52YWxpZFVSTChhbGxvd05hdmlnYXRpb25Ub0ludmFsaWRVUkwpCiAgICAgICAgICwg
bV9uZXdGcmFtZU9wZW5lclBvbGljeShuZXdGcmFtZU9wZW5lclBvbGljeSkKICAgICAgICAgLCBt
X3Nob3VsZFJlcGxhY2VEb2N1bWVudElmSmF2YVNjcmlwdFVSTChSZXBsYWNlRG9jdW1lbnRJZkph
dmFTY3JpcHRVUkwpCisgICAgICAgICwgbV9zaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5KHNo
b3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kpCiAgICAgewogICAgIH0KIAotICAgIEZyYW1lTG9h
ZFJlcXVlc3QoU2VjdXJpdHlPcmlnaW4qIHJlcXVlc3RlciwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0
JiByZXNvdXJjZVJlcXVlc3QsIGNvbnN0IFN0cmluZyYgZnJhbWVOYW1lLCBMb2NrSGlzdG9yeSBs
b2NrSGlzdG9yeSwgTG9ja0JhY2tGb3J3YXJkTGlzdCBsb2NrQmFja0ZvcndhcmRMaXN0LCBTaG91
bGRTZW5kUmVmZXJyZXIgc2hvdWxkU2VuZFJlZmVycmVyLCBBbGxvd05hdmlnYXRpb25Ub0ludmFs
aWRVUkwgYWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJMLCBOZXdGcmFtZU9wZW5lclBvbGljeSBu
ZXdGcmFtZU9wZW5lclBvbGljeSwgU2hvdWxkUmVwbGFjZURvY3VtZW50SWZKYXZhU2NyaXB0VVJM
IHNob3VsZFJlcGxhY2VEb2N1bWVudElmSmF2YVNjcmlwdFVSTCkKKyAgICBGcmFtZUxvYWRSZXF1
ZXN0KFNlY3VyaXR5T3JpZ2luKiByZXF1ZXN0ZXIsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVz
b3VyY2VSZXF1ZXN0LCBjb25zdCBTdHJpbmcmIGZyYW1lTmFtZSwgTG9ja0hpc3RvcnkgbG9ja0hp
c3RvcnksIExvY2tCYWNrRm9yd2FyZExpc3QgbG9ja0JhY2tGb3J3YXJkTGlzdCwgU2hvdWxkU2Vu
ZFJlZmVycmVyIHNob3VsZFNlbmRSZWZlcnJlciwgQWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJM
IGFsbG93TmF2aWdhdGlvblRvSW52YWxpZFVSTCwgTmV3RnJhbWVPcGVuZXJQb2xpY3kgbmV3RnJh
bWVPcGVuZXJQb2xpY3ksIFNob3VsZFJlcGxhY2VEb2N1bWVudElmSmF2YVNjcmlwdFVSTCBzaG91
bGRSZXBsYWNlRG9jdW1lbnRJZkphdmFTY3JpcHRVUkwsIFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQ
b2xpY3kgc2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSkKICAgICAgICAgOiBtX3JlcXVlc3Rl
cihyZXF1ZXN0ZXIpCiAgICAgICAgICwgbV9yZXNvdXJjZVJlcXVlc3QocmVzb3VyY2VSZXF1ZXN0
KQogICAgICAgICAsIG1fZnJhbWVOYW1lKGZyYW1lTmFtZSkKQEAgLTcyLDEwICs3NCwxMSBAQCBw
dWJsaWM6CiAgICAgICAgICwgbV9hbGxvd05hdmlnYXRpb25Ub0ludmFsaWRVUkwoYWxsb3dOYXZp
Z2F0aW9uVG9JbnZhbGlkVVJMKQogICAgICAgICAsIG1fbmV3RnJhbWVPcGVuZXJQb2xpY3kobmV3
RnJhbWVPcGVuZXJQb2xpY3kpCiAgICAgICAgICwgbV9zaG91bGRSZXBsYWNlRG9jdW1lbnRJZkph
dmFTY3JpcHRVUkwoc2hvdWxkUmVwbGFjZURvY3VtZW50SWZKYXZhU2NyaXB0VVJMKQorICAgICAg
ICAsIG1fc2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeShzaG91bGRPcGVuRXh0ZXJuYWxVUkxz
UG9saWN5KQogICAgIHsKICAgICB9CiAKLSAgICBXRUJDT1JFX0VYUE9SVCBGcmFtZUxvYWRSZXF1
ZXN0KEZyYW1lKiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgU3Vic3RpdHV0ZURhdGEm
ID0gU3Vic3RpdHV0ZURhdGEoKSk7CisgICAgV0VCQ09SRV9FWFBPUlQgRnJhbWVMb2FkUmVxdWVz
dChGcmFtZSosIGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQ
b2xpY3ksIGNvbnN0IFN1YnN0aXR1dGVEYXRhJiA9IFN1YnN0aXR1dGVEYXRhKCkpOwogCiAgICAg
Ym9vbCBpc0VtcHR5KCkgY29uc3QgeyByZXR1cm4gbV9yZXNvdXJjZVJlcXVlc3QuaXNFbXB0eSgp
OyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCmluZGV4IDY1MjFhM2MuLmM5
YzU5MTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcApAQCAtMzE3LDExICsz
MTcsMTEgQEAgdm9pZCBGcmFtZUxvYWRlcjo6Y2hhbmdlTG9jYXRpb24oY29uc3QgRnJhbWVMb2Fk
UmVxdWVzdCYgcmVxdWVzdCkKICAgICB1cmxTZWxlY3RlZChyZXF1ZXN0LCBudWxscHRyKTsKIH0K
IAotdm9pZCBGcmFtZUxvYWRlcjo6dXJsU2VsZWN0ZWQoY29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0
cmluZyYgcGFzc2VkVGFyZ2V0LCBFdmVudCogdHJpZ2dlcmluZ0V2ZW50LCBMb2NrSGlzdG9yeSBs
b2NrSGlzdG9yeSwgTG9ja0JhY2tGb3J3YXJkTGlzdCBsb2NrQmFja0ZvcndhcmRMaXN0LCBTaG91
bGRTZW5kUmVmZXJyZXIgc2hvdWxkU2VuZFJlZmVycmVyKQordm9pZCBGcmFtZUxvYWRlcjo6dXJs
U2VsZWN0ZWQoY29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgcGFzc2VkVGFyZ2V0LCBFdmVu
dCogdHJpZ2dlcmluZ0V2ZW50LCBMb2NrSGlzdG9yeSBsb2NrSGlzdG9yeSwgTG9ja0JhY2tGb3J3
YXJkTGlzdCBsb2NrQmFja0ZvcndhcmRMaXN0LCBTaG91bGRTZW5kUmVmZXJyZXIgc2hvdWxkU2Vu
ZFJlZmVycmVyLCBTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5IHNob3VsZE9wZW5FeHRlcm5h
bFVSTHNQb2xpY3kpCiB7CiAgICAgTmV3RnJhbWVPcGVuZXJQb2xpY3kgbmV3RnJhbWVPcGVuZXJQ
b2xpY3kgPSBzaG91bGRTZW5kUmVmZXJyZXIgPT0gTmV2ZXJTZW5kUmVmZXJyZXIgPyBOZXdGcmFt
ZU9wZW5lclBvbGljeTo6U3VwcHJlc3MgOiBOZXdGcmFtZU9wZW5lclBvbGljeTo6QWxsb3c7CiAK
LSAgICB1cmxTZWxlY3RlZChGcmFtZUxvYWRSZXF1ZXN0KG1fZnJhbWUuZG9jdW1lbnQoKS0+c2Vj
dXJpdHlPcmlnaW4oKSwgUmVzb3VyY2VSZXF1ZXN0KHVybCksIHBhc3NlZFRhcmdldCwgbG9ja0hp
c3RvcnksIGxvY2tCYWNrRm9yd2FyZExpc3QsIHNob3VsZFNlbmRSZWZlcnJlciwgQWxsb3dOYXZp
Z2F0aW9uVG9JbnZhbGlkVVJMOjpZZXMsIG5ld0ZyYW1lT3BlbmVyUG9saWN5LCBEb05vdFJlcGxh
Y2VEb2N1bWVudElmSmF2YVNjcmlwdFVSTCksIHRyaWdnZXJpbmdFdmVudCk7CisgICAgdXJsU2Vs
ZWN0ZWQoRnJhbWVMb2FkUmVxdWVzdChtX2ZyYW1lLmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2lu
KCksIFJlc291cmNlUmVxdWVzdCh1cmwpLCBwYXNzZWRUYXJnZXQsIGxvY2tIaXN0b3J5LCBsb2Nr
QmFja0ZvcndhcmRMaXN0LCBzaG91bGRTZW5kUmVmZXJyZXIsIEFsbG93TmF2aWdhdGlvblRvSW52
YWxpZFVSTDo6WWVzLCBuZXdGcmFtZU9wZW5lclBvbGljeSwgRG9Ob3RSZXBsYWNlRG9jdW1lbnRJ
ZkphdmFTY3JpcHRVUkwsIHNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kpLCB0cmlnZ2VyaW5n
RXZlbnQpOwogfQogCiB2b2lkIEZyYW1lTG9hZGVyOjp1cmxTZWxlY3RlZChjb25zdCBGcmFtZUxv
YWRSZXF1ZXN0JiBwYXNzZWRSZXF1ZXN0LCBFdmVudCogdHJpZ2dlcmluZ0V2ZW50KQpAQCAtNjcx
LDcgKzY3MSw3IEBAIHZvaWQgRnJhbWVMb2FkZXI6OnJlY2VpdmVkRmlyc3REYXRhKCkKICAgICAg
ICAgY29tcGxldGVkVVJMID0gbV9mcmFtZS5kb2N1bWVudCgpLT5jb21wbGV0ZVVSTCh1cmxTdHJp
bmcpOwogCiAgICAgaWYgKCFwcm90b2NvbElzSmF2YVNjcmlwdChjb21wbGV0ZWRVUkwpKQotICAg
ICAgICBtX2ZyYW1lLm5hdmlnYXRpb25TY2hlZHVsZXIoKS5zY2hlZHVsZVJlZGlyZWN0KGRlbGF5
LCBjb21wbGV0ZWRVUkwpOworICAgICAgICBtX2ZyYW1lLm5hdmlnYXRpb25TY2hlZHVsZXIoKS5z
Y2hlZHVsZVJlZGlyZWN0KG1fZnJhbWUuZG9jdW1lbnQoKSwgZGVsYXksIGNvbXBsZXRlZFVSTCk7
CiAgICAgZWxzZSB7CiAgICAgICAgIFN0cmluZyBtZXNzYWdlID0gIlJlZnVzZWQgdG8gcmVmcmVz
aCAiICsgbV9mcmFtZS5kb2N1bWVudCgpLT51cmwoKS5zdHJpbmdDZW50ZXJFbGxpcHNpemVkVG9M
ZW5ndGgoKSArICIgdG8gYSBqYXZhc2NyaXB0OiBVUkwiOwogICAgICAgICBtX2ZyYW1lLmRvY3Vt
ZW50KCktPmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OlNlY3VyaXR5LCBNZXNzYWdl
TGV2ZWw6OkVycm9yLCBtZXNzYWdlKTsKQEAgLTkxNSw3ICs5MTUsNyBAQCB2b2lkIEZyYW1lTG9h
ZGVyOjpsb2FkVVJMSW50b0NoaWxkRnJhbWUoY29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYg
cmVmZXJlciwgRgogICAgICAgICB9CiAgICAgfQogCi0gICAgRnJhbWVMb2FkUmVxdWVzdCBmcmFt
ZUxvYWRSZXF1ZXN0KG1fZnJhbWUuZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKSwgUmVzb3Vy
Y2VSZXF1ZXN0KHVybCksICJfc2VsZiIsIExvY2tIaXN0b3J5OjpObywgTG9ja0JhY2tGb3J3YXJk
TGlzdDo6WWVzLCBTaG91bGRTZW5kUmVmZXJyZXI6Ok1heWJlU2VuZFJlZmVycmVyLCBBbGxvd05h
dmlnYXRpb25Ub0ludmFsaWRVUkw6OlllcywgTmV3RnJhbWVPcGVuZXJQb2xpY3k6OlN1cHByZXNz
LCBSZXBsYWNlRG9jdW1lbnRJZkphdmFTY3JpcHRVUkwpOworICAgIEZyYW1lTG9hZFJlcXVlc3Qg
ZnJhbWVMb2FkUmVxdWVzdChtX2ZyYW1lLmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCksIFJl
c291cmNlUmVxdWVzdCh1cmwpLCAiX3NlbGYiLCBMb2NrSGlzdG9yeTo6Tm8sIExvY2tCYWNrRm9y
d2FyZExpc3Q6OlllcywgU2hvdWxkU2VuZFJlZmVycmVyOjpNYXliZVNlbmRSZWZlcnJlciwgQWxs
b3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJMOjpZZXMsIE5ld0ZyYW1lT3BlbmVyUG9saWN5OjpTdXBw
cmVzcywgUmVwbGFjZURvY3VtZW50SWZKYXZhU2NyaXB0VVJMLCBTaG91bGRPcGVuRXh0ZXJuYWxV
UkxzUG9saWN5OjpTaG91bGROb3RBbGxvdyk7CiAgICAgY2hpbGRGcmFtZS0+bG9hZGVyKCkubG9h
ZFVSTChmcmFtZUxvYWRSZXF1ZXN0LCByZWZlcmVyLCBGcmFtZUxvYWRUeXBlOjpSZWRpcmVjdFdp
dGhMb2NrZWRCYWNrRm9yd2FyZExpc3QsIDAsIDApOwogfQogCkBAIC0xMjMwLDcgKzEyMzAsNyBA
QCB2b2lkIEZyYW1lTG9hZGVyOjpsb2FkVVJMKGNvbnN0IEZyYW1lTG9hZFJlcXVlc3QmIGZyYW1l
TG9hZFJlcXVlc3QsIGNvbnN0IFN0cmluZwogICAgIGlmIChtX3BhZ2VEaXNtaXNzYWxFdmVudEJl
aW5nRGlzcGF0Y2hlZCAhPSBOb0Rpc21pc3NhbCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgTmF2
aWdhdGlvbkFjdGlvbiBhY3Rpb24ocmVxdWVzdCwgbmV3TG9hZFR5cGUsIGlzRm9ybVN1Ym1pc3Np
b24sIGV2ZW50KTsKKyAgICBOYXZpZ2F0aW9uQWN0aW9uIGFjdGlvbihyZXF1ZXN0LCBuZXdMb2Fk
VHlwZSwgaXNGb3JtU3VibWlzc2lvbiwgZXZlbnQsIGZyYW1lTG9hZFJlcXVlc3Quc2hvdWxkT3Bl
bkV4dGVybmFsVVJMc1BvbGljeSgpKTsKIAogICAgIGlmICghdGFyZ2V0RnJhbWUgJiYgIWZyYW1l
TmFtZS5pc0VtcHR5KCkpIHsKICAgICAgICAgcG9saWN5Q2hlY2tlcigpLmNoZWNrTmV3V2luZG93
UG9saWN5KGFjdGlvbiwgcmVxdWVzdCwgZm9ybVN0YXRlLnJlbGVhc2UoKSwgZnJhbWVOYW1lLCBb
dGhpcywgYWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJMLCBvcGVuZXJQb2xpY3ldKGNvbnN0IFJl
c291cmNlUmVxdWVzdCYgcmVxdWVzdCwgUGFzc1JlZlB0cjxGb3JtU3RhdGU+IGZvcm1TdGF0ZSwg
Y29uc3QgU3RyaW5nJiBmcmFtZU5hbWUsIGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mIGFjdGlvbiwg
Ym9vbCBzaG91bGRDb250aW51ZSkgewpAQCAtMTMwNCw3ICsxMzA0LDggQEAgdm9pZCBGcmFtZUxv
YWRlcjo6bG9hZChjb25zdCBGcmFtZUxvYWRSZXF1ZXN0JiBwYXNzZWRSZXF1ZXN0KQogICAgIH0K
IAogICAgIGlmIChyZXF1ZXN0LnNob3VsZENoZWNrTmV3V2luZG93UG9saWN5KCkpIHsKLSAgICAg
ICAgcG9saWN5Q2hlY2tlcigpLmNoZWNrTmV3V2luZG93UG9saWN5KE5hdmlnYXRpb25BY3Rpb24o
cmVxdWVzdC5yZXNvdXJjZVJlcXVlc3QoKSwgTmF2aWdhdGlvblR5cGU6Ok90aGVyKSwgcmVxdWVz
dC5yZXNvdXJjZVJlcXVlc3QoKSwgbnVsbHB0ciwgcmVxdWVzdC5mcmFtZU5hbWUoKSwgW3RoaXNd
KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgUGFzc1JlZlB0cjxGb3JtU3RhdGU+IGZv
cm1TdGF0ZSwgY29uc3QgU3RyaW5nJiBmcmFtZU5hbWUsIGNvbnN0IE5hdmlnYXRpb25BY3Rpb24m
IGFjdGlvbiwgYm9vbCBzaG91bGRDb250aW51ZSkgeworICAgICAgICBOYXZpZ2F0aW9uQWN0aW9u
IGFjdGlvbihyZXF1ZXN0LnJlc291cmNlUmVxdWVzdCgpLCBOYXZpZ2F0aW9uVHlwZTo6T3RoZXIs
IHBhc3NlZFJlcXVlc3Quc2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSgpKTsKKyAgICAgICAg
cG9saWN5Q2hlY2tlcigpLmNoZWNrTmV3V2luZG93UG9saWN5KGFjdGlvbiwgcmVxdWVzdC5yZXNv
dXJjZVJlcXVlc3QoKSwgbnVsbHB0ciwgcmVxdWVzdC5mcmFtZU5hbWUoKSwgW3RoaXNdKGNvbnN0
IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgUGFzc1JlZlB0cjxGb3JtU3RhdGU+IGZvcm1TdGF0
ZSwgY29uc3QgU3RyaW5nJiBmcmFtZU5hbWUsIGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mIGFjdGlv
biwgYm9vbCBzaG91bGRDb250aW51ZSkgewogICAgICAgICAgICAgY29udGludWVMb2FkQWZ0ZXJO
ZXdXaW5kb3dQb2xpY3kocmVxdWVzdCwgZm9ybVN0YXRlLCBmcmFtZU5hbWUsIGFjdGlvbiwgc2hv
dWxkQ29udGludWUsIEFsbG93TmF2aWdhdGlvblRvSW52YWxpZFVSTDo6WWVzLCBOZXdGcmFtZU9w
ZW5lclBvbGljeTo6U3VwcHJlc3MpOwogICAgICAgICB9KTsKIApAQCAtMTMxNSw4ICsxMzE2LDcg
QEAgdm9pZCBGcmFtZUxvYWRlcjo6bG9hZChjb25zdCBGcmFtZUxvYWRSZXF1ZXN0JiBwYXNzZWRS
ZXF1ZXN0KQogICAgICAgICByZXF1ZXN0LnNldFN1YnN0aXR1dGVEYXRhKGRlZmF1bHRTdWJzdGl0
dXRlRGF0YUZvclVSTChyZXF1ZXN0LnJlc291cmNlUmVxdWVzdCgpLnVybCgpKSk7CiAKICAgICBS
ZWZQdHI8RG9jdW1lbnRMb2FkZXI+IGxvYWRlciA9IG1fY2xpZW50LmNyZWF0ZURvY3VtZW50TG9h
ZGVyKHJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCksIHJlcXVlc3Quc3Vic3RpdHV0ZURhdGEoKSk7
Ci0gICAgaWYgKG1fZnJhbWUuaXNNYWluRnJhbWUoKSkKLSAgICAgICAgbG9hZGVyLT5zZXRTaG91
bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5KHJlcXVlc3Quc2hvdWxkT3BlbkV4dGVybmFsVVJMc1Bv
bGljeSgpKTsKKyAgICBhcHBseVNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3lUb05ld0RvY3Vt
ZW50TG9hZGVyKCpsb2FkZXIsIHJlcXVlc3Quc2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSgp
KTsKIAogICAgIGxvYWQobG9hZGVyLmdldCgpKTsKIH0KQEAgLTEzMjQsNiArMTMyNCw4IEBAIHZv
aWQgRnJhbWVMb2FkZXI6OmxvYWQoY29uc3QgRnJhbWVMb2FkUmVxdWVzdCYgcGFzc2VkUmVxdWVz
dCkKIHZvaWQgRnJhbWVMb2FkZXI6OmxvYWRXaXRoTmF2aWdhdGlvbkFjdGlvbihjb25zdCBSZXNv
dXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mIGFjdGlvbiwgTG9j
a0hpc3RvcnkgbG9ja0hpc3RvcnksIEZyYW1lTG9hZFR5cGUgdHlwZSwgUGFzc1JlZlB0cjxGb3Jt
U3RhdGU+IGZvcm1TdGF0ZSwgQWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJMIGFsbG93TmF2aWdh
dGlvblRvSW52YWxpZFVSTCkKIHsKICAgICBSZWZQdHI8RG9jdW1lbnRMb2FkZXI+IGxvYWRlciA9
IG1fY2xpZW50LmNyZWF0ZURvY3VtZW50TG9hZGVyKHJlcXVlc3QsIGRlZmF1bHRTdWJzdGl0dXRl
RGF0YUZvclVSTChyZXF1ZXN0LnVybCgpKSk7CisgICAgYXBwbHlTaG91bGRPcGVuRXh0ZXJuYWxV
UkxzUG9saWN5VG9OZXdEb2N1bWVudExvYWRlcigqbG9hZGVyLCBhY3Rpb24uc2hvdWxkT3BlbkV4
dGVybmFsVVJMc1BvbGljeSgpKTsKKwogICAgIGlmIChsb2NrSGlzdG9yeSA9PSBMb2NrSGlzdG9y
eTo6WWVzICYmIG1fZG9jdW1lbnRMb2FkZXIpCiAgICAgICAgIGxvYWRlci0+c2V0Q2xpZW50UmVk
aXJlY3RTb3VyY2VGb3JIaXN0b3J5KG1fZG9jdW1lbnRMb2FkZXItPmRpZENyZWF0ZUdsb2JhbEhp
c3RvcnlFbnRyeSgpID8gbV9kb2N1bWVudExvYWRlci0+dXJsRm9ySGlzdG9yeSgpLnN0cmluZygp
IDogbV9kb2N1bWVudExvYWRlci0+Y2xpZW50UmVkaXJlY3RTb3VyY2VGb3JIaXN0b3J5KCkpOwog
CkBAIC0xNTQzLDYgKzE1NDUsOCBAQCB2b2lkIEZyYW1lTG9hZGVyOjpyZWxvYWRXaXRoT3ZlcnJp
ZGVFbmNvZGluZyhjb25zdCBTdHJpbmcmIGVuY29kaW5nKQogICAgIHJlcXVlc3Quc2V0Q2FjaGVQ
b2xpY3koUmV0dXJuQ2FjaGVEYXRhRWxzZUxvYWQpOwogCiAgICAgUmVmUHRyPERvY3VtZW50TG9h
ZGVyPiBsb2FkZXIgPSBtX2NsaWVudC5jcmVhdGVEb2N1bWVudExvYWRlcihyZXF1ZXN0LCBkZWZh
dWx0U3Vic3RpdHV0ZURhdGFGb3JVUkwocmVxdWVzdC51cmwoKSkpOworICAgIGFwcGx5U2hvdWxk
T3BlbkV4dGVybmFsVVJMc1BvbGljeVRvTmV3RG9jdW1lbnRMb2FkZXIoKmxvYWRlciwgbV9kb2N1
bWVudExvYWRlci0+c2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeVRvUHJvcGFnYXRlKCkpOwor
CiAgICAgc2V0UG9saWN5RG9jdW1lbnRMb2FkZXIobG9hZGVyLmdldCgpKTsKIAogICAgIGxvYWRl
ci0+c2V0T3ZlcnJpZGVFbmNvZGluZyhlbmNvZGluZyk7CkBAIC0xNTY5LDYgKzE1NzMsNyBAQCB2
b2lkIEZyYW1lTG9hZGVyOjpyZWxvYWQoYm9vbCBlbmRUb0VuZFJlbG9hZCkKICAgICAvLyBDcmVh
dGUgYSBuZXcgZG9jdW1lbnQgbG9hZGVyIGZvciB0aGUgcmVsb2FkLCB0aGlzIHdpbGwgYmVjb21l
IG1fZG9jdW1lbnRMb2FkZXIgZXZlbnR1YWxseSwKICAgICAvLyBidXQgZmlyc3QgaXQgaGFzIHRv
IGJlIHRoZSAicG9saWN5IiBkb2N1bWVudCBsb2FkZXIsIGFuZCB0aGVuIHRoZSAicHJvdmlzaW9u
YWwiIGRvY3VtZW50IGxvYWRlci4KICAgICBSZWZQdHI8RG9jdW1lbnRMb2FkZXI+IGxvYWRlciA9
IG1fY2xpZW50LmNyZWF0ZURvY3VtZW50TG9hZGVyKGluaXRpYWxSZXF1ZXN0LCBkZWZhdWx0U3Vi
c3RpdHV0ZURhdGFGb3JVUkwoaW5pdGlhbFJlcXVlc3QudXJsKCkpKTsKKyAgICBhcHBseVNob3Vs
ZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3lUb05ld0RvY3VtZW50TG9hZGVyKCpsb2FkZXIsIG1fZG9j
dW1lbnRMb2FkZXItPnNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3lUb1Byb3BhZ2F0ZSgpKTsK
IAogICAgIFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCA9IGxvYWRlci0+cmVxdWVzdCgpOwogCkBA
IC0yNjQzLDcgKzI2NDgsNyBAQCB2b2lkIEZyYW1lTG9hZGVyOjpsb2FkUG9zdFJlcXVlc3QoY29u
c3QgRnJhbWVMb2FkUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgU3RyaW5nJgogICAgIHdvcmtpbmdS
ZXNvdXJjZVJlcXVlc3Quc2V0SFRUUENvbnRlbnRUeXBlKGNvbnRlbnRUeXBlKTsKICAgICBhZGRF
eHRyYUZpZWxkc1RvUmVxdWVzdCh3b3JraW5nUmVzb3VyY2VSZXF1ZXN0LCBsb2FkVHlwZSwgdHJ1
ZSk7CiAKLSAgICBOYXZpZ2F0aW9uQWN0aW9uIGFjdGlvbih3b3JraW5nUmVzb3VyY2VSZXF1ZXN0
LCBsb2FkVHlwZSwgdHJ1ZSwgZXZlbnQpOworICAgIE5hdmlnYXRpb25BY3Rpb24gYWN0aW9uKHdv
cmtpbmdSZXNvdXJjZVJlcXVlc3QsIGxvYWRUeXBlLCB0cnVlLCBldmVudCwgcmVxdWVzdC5zaG91
bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5KCkpOwogCiAgICAgaWYgKCFmcmFtZU5hbWUuaXNFbXB0
eSgpKSB7CiAgICAgICAgIC8vIFRoZSBzZWFyY2ggZm9yIGEgdGFyZ2V0IGZyYW1lIGlzIGRvbmUg
ZWFybGllciBpbiB0aGUgY2FzZSBvZiBmb3JtIHN1Ym1pc3Npb24uCkBAIC0yOTkxLDcgKzI5OTYs
OSBAQCB2b2lkIEZyYW1lTG9hZGVyOjpjb250aW51ZUxvYWRBZnRlck5ld1dpbmRvd1BvbGljeShj
b25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlcwogICAgICAgICBtYWluRnJhbWUtPmxvYWRlcigp
LnNldE9wZW5lcihmcmFtZS5wdHIoKSk7CiAgICAgICAgIG1haW5GcmFtZS0+ZG9jdW1lbnQoKS0+
c2V0UmVmZXJyZXJQb2xpY3koZnJhbWUtPmRvY3VtZW50KCktPnJlZmVycmVyUG9saWN5KCkpOwog
ICAgIH0KLSAgICBtYWluRnJhbWUtPmxvYWRlcigpLmxvYWRXaXRoTmF2aWdhdGlvbkFjdGlvbihy
ZXF1ZXN0LCBOYXZpZ2F0aW9uQWN0aW9uKHJlcXVlc3QpLCBMb2NrSGlzdG9yeTo6Tm8sIEZyYW1l
TG9hZFR5cGU6OlN0YW5kYXJkLCBmb3JtU3RhdGUsIGFsbG93TmF2aWdhdGlvblRvSW52YWxpZFVS
TCk7CisKKyAgICBOYXZpZ2F0aW9uQWN0aW9uIG5ld0FjdGlvbihyZXF1ZXN0LCBhY3Rpb24uc2hv
dWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSgpKTsKKyAgICBtYWluRnJhbWUtPmxvYWRlcigpLmxv
YWRXaXRoTmF2aWdhdGlvbkFjdGlvbihyZXF1ZXN0LCBuZXdBY3Rpb24sIExvY2tIaXN0b3J5OjpO
bywgRnJhbWVMb2FkVHlwZTo6U3RhbmRhcmQsIGZvcm1TdGF0ZSwgYWxsb3dOYXZpZ2F0aW9uVG9J
bnZhbGlkVVJMKTsKIH0KIAogdm9pZCBGcmFtZUxvYWRlcjo6cmVxdWVzdEZyb21EZWxlZ2F0ZShS
ZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIHVuc2lnbmVkIGxvbmcmIGlkZW50aWZpZXIsIFJlc291
cmNlRXJyb3ImIGVycm9yKQpAQCAtMzQyNSw2ICszNDMyLDE2IEBAIHZvaWQgRnJhbWVMb2FkZXI6
OmNsZWFyVGVzdGluZ092ZXJyaWRlcygpCiAgICAgbV9vdmVycmlkZVJlc291cmNlTG9hZFByaW9y
aXR5Rm9yVGVzdGluZyA9IE51bGxvcHQ7CiB9CiAKK3ZvaWQgRnJhbWVMb2FkZXI6OmFwcGx5U2hv
dWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeVRvTmV3RG9jdW1lbnRMb2FkZXIoRG9jdW1lbnRMb2Fk
ZXImIGRvY3VtZW50TG9hZGVyLCBTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5IHByb3BhZ2F0
ZWRQb2xpY3kpCit7CisgICAgaWYgKCFtX2ZyYW1lLmlzTWFpbkZyYW1lKCkpCisgICAgICAgIGRv
Y3VtZW50TG9hZGVyLnNldFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3koU2hvdWxkT3BlbkV4
dGVybmFsVVJMc1BvbGljeTo6U2hvdWxkTm90QWxsb3cpOworICAgIGVsc2UgaWYgKFNjcmlwdENv
bnRyb2xsZXI6OnByb2Nlc3NpbmdVc2VyR2VzdHVyZSgpKQorICAgICAgICBkb2N1bWVudExvYWRl
ci5zZXRTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5KFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQ
b2xpY3k6OlNob3VsZEFsbG93KTsKKyAgICBlbHNlCisgICAgICAgIGRvY3VtZW50TG9hZGVyLnNl
dFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kocHJvcGFnYXRlZFBvbGljeSk7Cit9CisKIGJv
b2wgRnJhbWVMb2FkZXJDbGllbnQ6Omhhc0hUTUxWaWV3KCkgY29uc3QKIHsKICAgICByZXR1cm4g
dHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5oIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmgKaW5kZXggYWJlZjg0My4uM2VhYjNm
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmgKQEAgLTExOSw3ICsxMTksNyBAQCBw
dWJsaWM6CiAgICAgdW5zaWduZWQgbG9uZyBsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KGNvbnN0
IFJlc291cmNlUmVxdWVzdCYsIFN0b3JlZENyZWRlbnRpYWxzLCBDbGllbnRDcmVkZW50aWFsUG9s
aWN5LCBSZXNvdXJjZUVycm9yJiwgUmVzb3VyY2VSZXNwb25zZSYsIFJlZlB0cjxTaGFyZWRCdWZm
ZXI+JiBkYXRhKTsKIAogICAgIHZvaWQgY2hhbmdlTG9jYXRpb24oY29uc3QgRnJhbWVMb2FkUmVx
dWVzdCYpOwotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgdXJsU2VsZWN0ZWQoY29uc3QgVVJMJiwg
Y29uc3QgU3RyaW5nJiB0YXJnZXQsIEV2ZW50KiwgTG9ja0hpc3RvcnksIExvY2tCYWNrRm9yd2Fy
ZExpc3QsIFNob3VsZFNlbmRSZWZlcnJlcik7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCB1cmxT
ZWxlY3RlZChjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcmIHRhcmdldCwgRXZlbnQqLCBMb2NrSGlz
dG9yeSwgTG9ja0JhY2tGb3J3YXJkTGlzdCwgU2hvdWxkU2VuZFJlZmVycmVyLCBTaG91bGRPcGVu
RXh0ZXJuYWxVUkxzUG9saWN5KTsKICAgICB2b2lkIHN1Ym1pdEZvcm0oUGFzc1JlZlB0cjxGb3Jt
U3VibWlzc2lvbj4pOwogCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCByZWxvYWQoYm9vbCBlbmRU
b0VuZFJlbG9hZCA9IGZhbHNlKTsKQEAgLTM3OCw2ICszNzgsOCBAQCBwcml2YXRlOgogCiAgICAg
dm9pZCBkaXNwYXRjaEdsb2JhbE9iamVjdEF2YWlsYWJsZUluQWxsV29ybGRzKCk7CiAKKyAgICB2
b2lkIGFwcGx5U2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeVRvTmV3RG9jdW1lbnRMb2FkZXIo
RG9jdW1lbnRMb2FkZXImLCBTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5IHByb3BhZ2F0ZWRQ
b2xpY3kpOworCiAgICAgRnJhbWUmIG1fZnJhbWU7CiAgICAgRnJhbWVMb2FkZXJDbGllbnQmIG1f
Y2xpZW50OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTmF2aWdhdGlvbkFj
dGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTmF2aWdhdGlvbkFjdGlvbi5jcHAKaW5k
ZXggNmQzZTQ2ZS4uN2MxMGRjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL05h
dmlnYXRpb25BY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9OYXZpZ2F0aW9u
QWN0aW9uLmNwcApAQCAtNjcsNiArNjcsMTEgQEAgTmF2aWdhdGlvbkFjdGlvbjo6TmF2aWdhdGlv
bkFjdGlvbihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlc291cmNlUmVxdWVzdCkKIHsKIH0KIAor
TmF2aWdhdGlvbkFjdGlvbjo6TmF2aWdhdGlvbkFjdGlvbihjb25zdCBSZXNvdXJjZVJlcXVlc3Qm
IHJlc291cmNlUmVxdWVzdCwgU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSBzaG91bGRPcGVu
RXh0ZXJuYWxVUkxzUG9saWN5KQorICAgIDogTmF2aWdhdGlvbkFjdGlvbihyZXNvdXJjZVJlcXVl
c3QsIE5hdmlnYXRpb25UeXBlOjpPdGhlciwgbnVsbHB0ciwgc2hvdWxkT3BlbkV4dGVybmFsVVJM
c1BvbGljeSkKK3sKK30KKwogTmF2aWdhdGlvbkFjdGlvbjo6TmF2aWdhdGlvbkFjdGlvbihjb25z
dCBSZXNvdXJjZVJlcXVlc3QmIHJlc291cmNlUmVxdWVzdCwgTmF2aWdhdGlvblR5cGUgdHlwZSkK
ICAgICA6IE5hdmlnYXRpb25BY3Rpb24ocmVzb3VyY2VSZXF1ZXN0LCB0eXBlLCBudWxscHRyLCBT
aG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5OjpTaG91bGROb3RBbGxvdykKIHsKQEAgLTkyLDQg
Kzk3LDE2IEBAIE5hdmlnYXRpb25BY3Rpb246Ok5hdmlnYXRpb25BY3Rpb24oY29uc3QgUmVzb3Vy
Y2VSZXF1ZXN0JiByZXNvdXJjZVJlcXVlc3QsIEZyYW1lCiB7CiB9CiAKK05hdmlnYXRpb25BY3Rp
b246Ok5hdmlnYXRpb25BY3Rpb24oY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXNvdXJjZVJlcXVl
c3QsIEZyYW1lTG9hZFR5cGUgZnJhbWVMb2FkVHlwZSwgYm9vbCBpc0Zvcm1TdWJtaXNzaW9uLCBF
dmVudCogZXZlbnQsIFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kgc2hvdWxkT3BlbkV4dGVy
bmFsVVJMc1BvbGljeSkKKyAgICA6IE5hdmlnYXRpb25BY3Rpb24ocmVzb3VyY2VSZXF1ZXN0LCBu
YXZpZ2F0aW9uVHlwZShmcmFtZUxvYWRUeXBlLCBpc0Zvcm1TdWJtaXNzaW9uLCBldmVudCksIGV2
ZW50LCBzaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5KQoreworfQorCitOYXZpZ2F0aW9uQWN0
aW9uIE5hdmlnYXRpb25BY3Rpb246OmNvcHlXaXRoU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGlj
eShTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5IHNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xp
Y3kpIGNvbnN0Cit7CisgICAgTmF2aWdhdGlvbkFjdGlvbiByZXN1bHQoKnRoaXMpOworICAgIHJl
c3VsdC5tX3Nob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kgPSBzaG91bGRPcGVuRXh0ZXJuYWxV
UkxzUG9saWN5OworICAgIHJldHVybiBXVEY6Om1vdmUocmVzdWx0KTsKK30KKwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL05hdmlnYXRpb25BY3Rpb24uaCBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9OYXZpZ2F0aW9uQWN0aW9uLmgKaW5kZXggOWI1MDMwYy4uNDhlODczMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL05hdmlnYXRpb25BY3Rpb24uaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTmF2aWdhdGlvbkFjdGlvbi5oCkBAIC00MywxMCArNDMs
MTUgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIGV4cGxpY2l0IE5hdmlnYXRpb25BY3Rp
b24oY29uc3QgUmVzb3VyY2VSZXF1ZXN0Jik7CiAgICAgV0VCQ09SRV9FWFBPUlQgTmF2aWdhdGlv
bkFjdGlvbihjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBOYXZpZ2F0aW9uVHlwZSk7CiAgICAgV0VC
Q09SRV9FWFBPUlQgTmF2aWdhdGlvbkFjdGlvbihjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBGcmFt
ZUxvYWRUeXBlLCBib29sIGlzRm9ybVN1Ym1pc3Npb24pOworCisgICAgTmF2aWdhdGlvbkFjdGlv
bihjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5KTsK
ICAgICBOYXZpZ2F0aW9uQWN0aW9uKGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIE5hdmlnYXRpb25U
eXBlLCBFdmVudCopOwogICAgIE5hdmlnYXRpb25BY3Rpb24oY29uc3QgUmVzb3VyY2VSZXF1ZXN0
JiwgTmF2aWdhdGlvblR5cGUsIEV2ZW50KiwgU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSk7
CiAgICAgTmF2aWdhdGlvbkFjdGlvbihjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBOYXZpZ2F0aW9u
VHlwZSwgU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSk7CiAgICAgTmF2aWdhdGlvbkFjdGlv
bihjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBGcmFtZUxvYWRUeXBlLCBib29sIGlzRm9ybVN1Ym1p
c3Npb24sIEV2ZW50Kik7CisgICAgTmF2aWdhdGlvbkFjdGlvbihjb25zdCBSZXNvdXJjZVJlcXVl
c3QmLCBGcmFtZUxvYWRUeXBlLCBib29sIGlzRm9ybVN1Ym1pc3Npb24sIEV2ZW50KiwgU2hvdWxk
T3BlbkV4dGVybmFsVVJMc1BvbGljeSk7CisKKyAgICBOYXZpZ2F0aW9uQWN0aW9uIGNvcHlXaXRo
U2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeShTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5
KSBjb25zdDsKIAogICAgIGJvb2wgaXNFbXB0eSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVzb3VyY2VS
ZXF1ZXN0LnVybCgpLmlzRW1wdHkoKTsgfQogCkBAIC01OSw3ICs2NCw2IEBAIHB1YmxpYzoKICAg
ICBib29sIHByb2Nlc3NpbmdVc2VyR2VzdHVyZSgpIGNvbnN0IHsgcmV0dXJuIG1fcHJvY2Vzc2lu
Z1VzZXJHZXN0dXJlOyB9CiAKICAgICBTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5IHNob3Vs
ZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3koKSBjb25zdCB7IHJldHVybiBtX3Nob3VsZE9wZW5FeHRl
cm5hbFVSTHNQb2xpY3k7IH0KLSAgICB2b2lkIHNldFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xp
Y3koU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSBwb2xpY3kpIHsgbV9zaG91bGRPcGVuRXh0
ZXJuYWxVUkxzUG9saWN5ID0gcG9saWN5OyB9CiAKIHByaXZhdGU6CiAgICAgUmVzb3VyY2VSZXF1
ZXN0IG1fcmVzb3VyY2VSZXF1ZXN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L05hdmlnYXRpb25TY2hlZHVsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL05hdmlnYXRp
b25TY2hlZHVsZXIuY3BwCmluZGV4IGNmN2JkYWIuLmQ5NWNlZGIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9OYXZpZ2F0aW9uU2NoZWR1bGVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvTmF2aWdhdGlvblNjaGVkdWxlci5jcHAKQEAgLTg3LDYgKzg3LDggQEAgcHVi
bGljOgogcHJvdGVjdGVkOgogICAgIHZvaWQgY2xlYXJVc2VyR2VzdHVyZSgpIHsgbV93YXNVc2Vy
R2VzdHVyZSA9IGZhbHNlOyB9CiAKKyAgICBTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5IG1f
c2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSB7IFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xp
Y3k6OlNob3VsZE5vdEFsbG93IH07CisKIHByaXZhdGU6CiAgICAgZG91YmxlIG1fZGVsYXk7CiAg
ICAgTG9ja0hpc3RvcnkgbV9sb2NrSGlzdG9yeTsKQEAgLTk4LDEzICsxMDAsMTUgQEAgcHJpdmF0
ZToKIAogY2xhc3MgU2NoZWR1bGVkVVJMTmF2aWdhdGlvbiA6IHB1YmxpYyBTY2hlZHVsZWROYXZp
Z2F0aW9uIHsKIHByb3RlY3RlZDoKLSAgICBTY2hlZHVsZWRVUkxOYXZpZ2F0aW9uKGRvdWJsZSBk
ZWxheSwgU2VjdXJpdHlPcmlnaW4qIHNlY3VyaXR5T3JpZ2luLCBjb25zdCBVUkwmIHVybCwgY29u
c3QgU3RyaW5nJiByZWZlcnJlciwgTG9ja0hpc3RvcnkgbG9ja0hpc3RvcnksIExvY2tCYWNrRm9y
d2FyZExpc3QgbG9ja0JhY2tGb3J3YXJkTGlzdCwgYm9vbCBkdXJpbmdMb2FkLCBib29sIGlzTG9j
YXRpb25DaGFuZ2UpCisgICAgU2NoZWR1bGVkVVJMTmF2aWdhdGlvbihEb2N1bWVudCogaW5pdGlh
dGluZ0RvY3VtZW50LCBkb3VibGUgZGVsYXksIFNlY3VyaXR5T3JpZ2luKiBzZWN1cml0eU9yaWdp
biwgY29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgcmVmZXJyZXIsIExvY2tIaXN0b3J5IGxv
Y2tIaXN0b3J5LCBMb2NrQmFja0ZvcndhcmRMaXN0IGxvY2tCYWNrRm9yd2FyZExpc3QsIGJvb2wg
ZHVyaW5nTG9hZCwgYm9vbCBpc0xvY2F0aW9uQ2hhbmdlKQogICAgICAgICA6IFNjaGVkdWxlZE5h
dmlnYXRpb24oZGVsYXksIGxvY2tIaXN0b3J5LCBsb2NrQmFja0ZvcndhcmRMaXN0LCBkdXJpbmdM
b2FkLCBpc0xvY2F0aW9uQ2hhbmdlKQogICAgICAgICAsIG1fc2VjdXJpdHlPcmlnaW4oc2VjdXJp
dHlPcmlnaW4pCiAgICAgICAgICwgbV91cmwodXJsKQogICAgICAgICAsIG1fcmVmZXJyZXIocmVm
ZXJyZXIpCiAgICAgICAgICwgbV9oYXZlVG9sZENsaWVudChmYWxzZSkKICAgICB7CisgICAgICAg
IGlmIChpbml0aWF0aW5nRG9jdW1lbnQpCisgICAgICAgICAgICBtX3Nob3VsZE9wZW5FeHRlcm5h
bFVSTHNQb2xpY3kgPSBpbml0aWF0aW5nRG9jdW1lbnQtPnNob3VsZE9wZW5FeHRlcm5hbFVSTHNQ
b2xpY3lUb1Byb3BhZ2F0ZSgpOwogICAgIH0KIAogICAgIHZpcnR1YWwgdm9pZCBmaXJlKEZyYW1l
JiBmcmFtZSkgb3ZlcnJpZGUKQEAgLTExMiw3ICsxMTYsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgICAg
IFVzZXJHZXN0dXJlSW5kaWNhdG9yIGdlc3R1cmVJbmRpY2F0b3Iod2FzVXNlckdlc3R1cmUoKSA/
IERlZmluaXRlbHlQcm9jZXNzaW5nVXNlckdlc3R1cmUgOiBEZWZpbml0ZWx5Tm90UHJvY2Vzc2lu
Z1VzZXJHZXN0dXJlKTsKIAogICAgICAgICBSZXNvdXJjZVJlcXVlc3QgcmVzb3VyY2VSZXF1ZXN0
KG1fdXJsLCBtX3JlZmVycmVyLCBVc2VQcm90b2NvbENhY2hlUG9saWN5KTsKLSAgICAgICAgRnJh
bWVMb2FkUmVxdWVzdCBmcmFtZVJlcXVlc3QobV9zZWN1cml0eU9yaWdpbi5nZXQoKSwgcmVzb3Vy
Y2VSZXF1ZXN0LCBsb2NrSGlzdG9yeSgpLCBsb2NrQmFja0ZvcndhcmRMaXN0KCksIE1heWJlU2Vu
ZFJlZmVycmVyLCBBbGxvd05hdmlnYXRpb25Ub0ludmFsaWRVUkw6OlllcywgTmV3RnJhbWVPcGVu
ZXJQb2xpY3k6OkFsbG93KTsKKyAgICAgICAgRnJhbWVMb2FkUmVxdWVzdCBmcmFtZVJlcXVlc3Qo
bV9zZWN1cml0eU9yaWdpbi5nZXQoKSwgcmVzb3VyY2VSZXF1ZXN0LCBsb2NrSGlzdG9yeSgpLCBs
b2NrQmFja0ZvcndhcmRMaXN0KCksIE1heWJlU2VuZFJlZmVycmVyLCBBbGxvd05hdmlnYXRpb25U
b0ludmFsaWRVUkw6OlllcywgTmV3RnJhbWVPcGVuZXJQb2xpY3k6OkFsbG93LCBtX3Nob3VsZE9w
ZW5FeHRlcm5hbFVSTHNQb2xpY3kpOwogCiAgICAgICAgIGZyYW1lLmxvYWRlcigpLmNoYW5nZUxv
Y2F0aW9uKGZyYW1lUmVxdWVzdCk7CiAgICAgfQpAQCAtMTU0LDggKzE1OCw4IEBAIHByaXZhdGU6
CiAKIGNsYXNzIFNjaGVkdWxlZFJlZGlyZWN0IDogcHVibGljIFNjaGVkdWxlZFVSTE5hdmlnYXRp
b24gewogcHVibGljOgotICAgIFNjaGVkdWxlZFJlZGlyZWN0KGRvdWJsZSBkZWxheSwgU2VjdXJp
dHlPcmlnaW4qIHNlY3VyaXR5T3JpZ2luLCBjb25zdCBVUkwmIHVybCwgTG9ja0hpc3RvcnkgbG9j
a0hpc3RvcnksIExvY2tCYWNrRm9yd2FyZExpc3QgbG9ja0JhY2tGb3J3YXJkTGlzdCkKLSAgICAg
ICAgOiBTY2hlZHVsZWRVUkxOYXZpZ2F0aW9uKGRlbGF5LCBzZWN1cml0eU9yaWdpbiwgdXJsLCBT
dHJpbmcoKSwgbG9ja0hpc3RvcnksIGxvY2tCYWNrRm9yd2FyZExpc3QsIGZhbHNlLCBmYWxzZSkK
KyAgICBTY2hlZHVsZWRSZWRpcmVjdChEb2N1bWVudCogaW5pdGlhdGluZ0RvY3VtZW50LCBkb3Vi
bGUgZGVsYXksIFNlY3VyaXR5T3JpZ2luKiBzZWN1cml0eU9yaWdpbiwgY29uc3QgVVJMJiB1cmws
IExvY2tIaXN0b3J5IGxvY2tIaXN0b3J5LCBMb2NrQmFja0ZvcndhcmRMaXN0IGxvY2tCYWNrRm9y
d2FyZExpc3QpCisgICAgICAgIDogU2NoZWR1bGVkVVJMTmF2aWdhdGlvbihpbml0aWF0aW5nRG9j
dW1lbnQsIGRlbGF5LCBzZWN1cml0eU9yaWdpbiwgdXJsLCBTdHJpbmcoKSwgbG9ja0hpc3Rvcnks
IGxvY2tCYWNrRm9yd2FyZExpc3QsIGZhbHNlLCBmYWxzZSkKICAgICB7CiAgICAgICAgIGNsZWFy
VXNlckdlc3R1cmUoKTsKICAgICB9CkBAIC0xNzAsNyArMTc0LDcgQEAgcHVibGljOgogICAgICAg
ICBVc2VyR2VzdHVyZUluZGljYXRvciBnZXN0dXJlSW5kaWNhdG9yKHdhc1VzZXJHZXN0dXJlKCkg
PyBEZWZpbml0ZWx5UHJvY2Vzc2luZ1VzZXJHZXN0dXJlIDogRGVmaW5pdGVseU5vdFByb2Nlc3Np
bmdVc2VyR2VzdHVyZSk7CiAgICAgICAgIGJvb2wgcmVmcmVzaCA9IGVxdWFsSWdub3JpbmdGcmFn
bWVudElkZW50aWZpZXIoZnJhbWUuZG9jdW1lbnQoKS0+dXJsKCksIHVybCgpKTsKICAgICAgICAg
UmVzb3VyY2VSZXF1ZXN0IHJlc291cmNlUmVxdWVzdCh1cmwoKSwgcmVmZXJyZXIoKSwgcmVmcmVz
aCA/IFJlbG9hZElnbm9yaW5nQ2FjaGVEYXRhIDogVXNlUHJvdG9jb2xDYWNoZVBvbGljeSk7Ci0g
ICAgICAgIEZyYW1lTG9hZFJlcXVlc3QgZnJhbWVSZXF1ZXN0KHNlY3VyaXR5T3JpZ2luKCksIHJl
c291cmNlUmVxdWVzdCwgbG9ja0hpc3RvcnkoKSwgbG9ja0JhY2tGb3J3YXJkTGlzdCgpLCBNYXli
ZVNlbmRSZWZlcnJlciwgQWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJMOjpObywgTmV3RnJhbWVP
cGVuZXJQb2xpY3k6OkFsbG93KTsKKyAgICAgICAgRnJhbWVMb2FkUmVxdWVzdCBmcmFtZVJlcXVl
c3Qoc2VjdXJpdHlPcmlnaW4oKSwgcmVzb3VyY2VSZXF1ZXN0LCBsb2NrSGlzdG9yeSgpLCBsb2Nr
QmFja0ZvcndhcmRMaXN0KCksIE1heWJlU2VuZFJlZmVycmVyLCBBbGxvd05hdmlnYXRpb25Ub0lu
dmFsaWRVUkw6Ok5vLCBOZXdGcmFtZU9wZW5lclBvbGljeTo6QWxsb3csIG1fc2hvdWxkT3BlbkV4
dGVybmFsVVJMc1BvbGljeSk7CiAKICAgICAgICAgZnJhbWUubG9hZGVyKCkuY2hhbmdlTG9jYXRp
b24oZnJhbWVSZXF1ZXN0KTsKICAgICB9CkBAIC0xNzgsMjMgKzE4MiwyMyBAQCBwdWJsaWM6CiAK
IGNsYXNzIFNjaGVkdWxlZExvY2F0aW9uQ2hhbmdlIDogcHVibGljIFNjaGVkdWxlZFVSTE5hdmln
YXRpb24gewogcHVibGljOgotICAgIFNjaGVkdWxlZExvY2F0aW9uQ2hhbmdlKFNlY3VyaXR5T3Jp
Z2luKiBzZWN1cml0eU9yaWdpbiwgY29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgcmVmZXJy
ZXIsIExvY2tIaXN0b3J5IGxvY2tIaXN0b3J5LCBMb2NrQmFja0ZvcndhcmRMaXN0IGxvY2tCYWNr
Rm9yd2FyZExpc3QsIGJvb2wgZHVyaW5nTG9hZCkKLSAgICAgICAgOiBTY2hlZHVsZWRVUkxOYXZp
Z2F0aW9uKDAuMCwgc2VjdXJpdHlPcmlnaW4sIHVybCwgcmVmZXJyZXIsIGxvY2tIaXN0b3J5LCBs
b2NrQmFja0ZvcndhcmRMaXN0LCBkdXJpbmdMb2FkLCB0cnVlKSB7IH0KKyAgICBTY2hlZHVsZWRM
b2NhdGlvbkNoYW5nZShEb2N1bWVudCogaW5pdGlhdGluZ0RvY3VtZW50LCBTZWN1cml0eU9yaWdp
biogc2VjdXJpdHlPcmlnaW4sIGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIHJlZmVycmVy
LCBMb2NrSGlzdG9yeSBsb2NrSGlzdG9yeSwgTG9ja0JhY2tGb3J3YXJkTGlzdCBsb2NrQmFja0Zv
cndhcmRMaXN0LCBib29sIGR1cmluZ0xvYWQpCisgICAgICAgIDogU2NoZWR1bGVkVVJMTmF2aWdh
dGlvbihpbml0aWF0aW5nRG9jdW1lbnQsIDAuMCwgc2VjdXJpdHlPcmlnaW4sIHVybCwgcmVmZXJy
ZXIsIGxvY2tIaXN0b3J5LCBsb2NrQmFja0ZvcndhcmRMaXN0LCBkdXJpbmdMb2FkLCB0cnVlKSB7
IH0KIAogICAgIHZpcnR1YWwgdm9pZCBmaXJlKEZyYW1lJiBmcmFtZSkgb3ZlcnJpZGUKICAgICB7
CiAgICAgICAgIFVzZXJHZXN0dXJlSW5kaWNhdG9yIGdlc3R1cmVJbmRpY2F0b3Iod2FzVXNlckdl
c3R1cmUoKSA/IERlZmluaXRlbHlQcm9jZXNzaW5nVXNlckdlc3R1cmUgOiBEZWZpbml0ZWx5Tm90
UHJvY2Vzc2luZ1VzZXJHZXN0dXJlKTsKIAogICAgICAgICBSZXNvdXJjZVJlcXVlc3QgcmVzb3Vy
Y2VSZXF1ZXN0KHVybCgpLCByZWZlcnJlcigpLCBVc2VQcm90b2NvbENhY2hlUG9saWN5KTsKLSAg
ICAgICAgRnJhbWVMb2FkUmVxdWVzdCBmcmFtZVJlcXVlc3Qoc2VjdXJpdHlPcmlnaW4oKSwgcmVz
b3VyY2VSZXF1ZXN0LCBsb2NrSGlzdG9yeSgpLCBsb2NrQmFja0ZvcndhcmRMaXN0KCksIE1heWJl
U2VuZFJlZmVycmVyLCBBbGxvd05hdmlnYXRpb25Ub0ludmFsaWRVUkw6Ok5vLCBOZXdGcmFtZU9w
ZW5lclBvbGljeTo6QWxsb3cpOworICAgICAgICBGcmFtZUxvYWRSZXF1ZXN0IGZyYW1lUmVxdWVz
dChzZWN1cml0eU9yaWdpbigpLCByZXNvdXJjZVJlcXVlc3QsIGxvY2tIaXN0b3J5KCksIGxvY2tC
YWNrRm9yd2FyZExpc3QoKSwgTWF5YmVTZW5kUmVmZXJyZXIsIEFsbG93TmF2aWdhdGlvblRvSW52
YWxpZFVSTDo6Tm8sIE5ld0ZyYW1lT3BlbmVyUG9saWN5OjpBbGxvdywgbV9zaG91bGRPcGVuRXh0
ZXJuYWxVUkxzUG9saWN5KTsKICAgICAgICAgZnJhbWUubG9hZGVyKCkuY2hhbmdlTG9jYXRpb24o
ZnJhbWVSZXF1ZXN0KTsKICAgICB9CiB9OwogCiBjbGFzcyBTY2hlZHVsZWRSZWZyZXNoIDogcHVi
bGljIFNjaGVkdWxlZFVSTE5hdmlnYXRpb24gewogcHVibGljOgotICAgIFNjaGVkdWxlZFJlZnJl
c2goU2VjdXJpdHlPcmlnaW4qIHNlY3VyaXR5T3JpZ2luLCBjb25zdCBVUkwmIHVybCwgY29uc3Qg
U3RyaW5nJiByZWZlcnJlcikKLSAgICAgICAgOiBTY2hlZHVsZWRVUkxOYXZpZ2F0aW9uKDAuMCwg
c2VjdXJpdHlPcmlnaW4sIHVybCwgcmVmZXJyZXIsIExvY2tIaXN0b3J5OjpZZXMsIExvY2tCYWNr
Rm9yd2FyZExpc3Q6OlllcywgZmFsc2UsIHRydWUpCisgICAgU2NoZWR1bGVkUmVmcmVzaChEb2N1
bWVudCogaW5pdGlhdGluZ0RvY3VtZW50LCBTZWN1cml0eU9yaWdpbiogc2VjdXJpdHlPcmlnaW4s
IGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIHJlZmVycmVyKQorICAgICAgICA6IFNjaGVk
dWxlZFVSTE5hdmlnYXRpb24oaW5pdGlhdGluZ0RvY3VtZW50LCAwLjAsIHNlY3VyaXR5T3JpZ2lu
LCB1cmwsIHJlZmVycmVyLCBMb2NrSGlzdG9yeTo6WWVzLCBMb2NrQmFja0ZvcndhcmRMaXN0OjpZ
ZXMsIGZhbHNlLCB0cnVlKQogICAgIHsKICAgICB9CiAKQEAgLTIwMyw3ICsyMDcsNyBAQCBwdWJs
aWM6CiAgICAgICAgIFVzZXJHZXN0dXJlSW5kaWNhdG9yIGdlc3R1cmVJbmRpY2F0b3Iod2FzVXNl
ckdlc3R1cmUoKSA/IERlZmluaXRlbHlQcm9jZXNzaW5nVXNlckdlc3R1cmUgOiBEZWZpbml0ZWx5
Tm90UHJvY2Vzc2luZ1VzZXJHZXN0dXJlKTsKIAogICAgICAgICBSZXNvdXJjZVJlcXVlc3QgcmVz
b3VyY2VSZXF1ZXN0KHVybCgpLCByZWZlcnJlcigpLCBSZWxvYWRJZ25vcmluZ0NhY2hlRGF0YSk7
Ci0gICAgICAgIEZyYW1lTG9hZFJlcXVlc3QgZnJhbWVSZXF1ZXN0KHNlY3VyaXR5T3JpZ2luKCks
IHJlc291cmNlUmVxdWVzdCwgbG9ja0hpc3RvcnkoKSwgbG9ja0JhY2tGb3J3YXJkTGlzdCgpLCBN
YXliZVNlbmRSZWZlcnJlciwgQWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJMOjpZZXMsIE5ld0Zy
YW1lT3BlbmVyUG9saWN5OjpBbGxvdyk7CisgICAgICAgIEZyYW1lTG9hZFJlcXVlc3QgZnJhbWVS
ZXF1ZXN0KHNlY3VyaXR5T3JpZ2luKCksIHJlc291cmNlUmVxdWVzdCwgbG9ja0hpc3RvcnkoKSwg
bG9ja0JhY2tGb3J3YXJkTGlzdCgpLCBNYXliZVNlbmRSZWZlcnJlciwgQWxsb3dOYXZpZ2F0aW9u
VG9JbnZhbGlkVVJMOjpZZXMsIE5ld0ZyYW1lT3BlbmVyUG9saWN5OjpBbGxvdywgbV9zaG91bGRP
cGVuRXh0ZXJuYWxVUkxzUG9saWN5KTsKICAgICAgICAgZnJhbWUubG9hZGVyKCkuY2hhbmdlTG9j
YXRpb24oZnJhbWVSZXF1ZXN0KTsKICAgICB9CiB9OwpAQCAtMjIzLDcgKzIyNyw3IEBAIHB1Ymxp
YzoKICAgICAgICAgaWYgKCFtX2hpc3RvcnlTdGVwcykgewogICAgICAgICAgICAgLy8gU3BlY2lh
bCBjYXNlIGZvciBnbygwKSBmcm9tIGEgZnJhbWUgLT4gcmVsb2FkIG9ubHkgdGhlIGZyYW1lCiAg
ICAgICAgICAgICAvLyBUbyBmb2xsb3cgRmlyZWZveCBhbmQgSUUncyBiZWhhdmlvciwgaGlzdG9y
eSByZWxvYWQgY2FuIG9ubHkgbmF2aWdhdGUgdGhlIHNlbGYgZnJhbWUuCi0gICAgICAgICAgICBm
cmFtZS5sb2FkZXIoKS51cmxTZWxlY3RlZChmcmFtZS5kb2N1bWVudCgpLT51cmwoKSwgIl9zZWxm
IiwgMCwgbG9ja0hpc3RvcnkoKSwgbG9ja0JhY2tGb3J3YXJkTGlzdCgpLCBNYXliZVNlbmRSZWZl
cnJlcik7CisgICAgICAgICAgICBmcmFtZS5sb2FkZXIoKS51cmxTZWxlY3RlZChmcmFtZS5kb2N1
bWVudCgpLT51cmwoKSwgIl9zZWxmIiwgMCwgbG9ja0hpc3RvcnkoKSwgbG9ja0JhY2tGb3J3YXJk
TGlzdCgpLCBNYXliZVNlbmRSZWZlcnJlciwgbV9zaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5
KTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAgICAgICAKQEAgLTI0NCw2ICsy
NDgsOSBAQCBwdWJsaWM6CiAgICAgICAgICwgbV9oYXZlVG9sZENsaWVudChmYWxzZSkKICAgICB7
CiAgICAgICAgIEFTU0VSVChtX3N1Ym1pc3Npb24tPnN0YXRlKCkpOworCisgICAgICAgIGlmIChE
b2N1bWVudCogZG9jdW1lbnQgPSBtX3N1Ym1pc3Npb24tPnN0YXRlKCktPnNvdXJjZURvY3VtZW50
KCkpCisgICAgICAgICAgICBtX3Nob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kgPSBkb2N1bWVu
dC0+c2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeVRvUHJvcGFnYXRlKCk7CiAgICAgfQogCiAg
ICAgdmlydHVhbCB2b2lkIGZpcmUoRnJhbWUmIGZyYW1lKSBvdmVycmlkZQpAQCAtMjU3LDcgKzI2
NCw3IEBAIHB1YmxpYzoKICAgICAgICAgRG9jdW1lbnQqIHJlcXVlc3RpbmdEb2N1bWVudCA9IG1f
c3VibWlzc2lvbi0+c3RhdGUoKS0+c291cmNlRG9jdW1lbnQoKTsKICAgICAgICAgaWYgKCFyZXF1
ZXN0aW5nRG9jdW1lbnQtPmNhbk5hdmlnYXRlKCZmcmFtZSkpCiAgICAgICAgICAgICByZXR1cm47
Ci0gICAgICAgIEZyYW1lTG9hZFJlcXVlc3QgZnJhbWVSZXF1ZXN0KHJlcXVlc3RpbmdEb2N1bWVu
dC0+c2VjdXJpdHlPcmlnaW4oKSwgbG9ja0hpc3RvcnkoKSwgbG9ja0JhY2tGb3J3YXJkTGlzdCgp
LCBNYXliZVNlbmRSZWZlcnJlciwgQWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJMOjpZZXMsIE5l
d0ZyYW1lT3BlbmVyUG9saWN5OjpBbGxvdyk7CisgICAgICAgIEZyYW1lTG9hZFJlcXVlc3QgZnJh
bWVSZXF1ZXN0KHJlcXVlc3RpbmdEb2N1bWVudC0+c2VjdXJpdHlPcmlnaW4oKSwgbG9ja0hpc3Rv
cnkoKSwgbG9ja0JhY2tGb3J3YXJkTGlzdCgpLCBNYXliZVNlbmRSZWZlcnJlciwgQWxsb3dOYXZp
Z2F0aW9uVG9JbnZhbGlkVVJMOjpZZXMsIE5ld0ZyYW1lT3BlbmVyUG9saWN5OjpBbGxvdywgbV9z
aG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5KTsKICAgICAgICAgbV9zdWJtaXNzaW9uLT5wb3B1
bGF0ZUZyYW1lTG9hZFJlcXVlc3QoZnJhbWVSZXF1ZXN0KTsKICAgICAgICAgZnJhbWUubG9hZGVy
KCkubG9hZEZyYW1lUmVxdWVzdChmcmFtZVJlcXVlc3QsIG1fc3VibWlzc2lvbi0+ZXZlbnQoKSwg
bV9zdWJtaXNzaW9uLT5zdGF0ZSgpKTsKICAgICB9CkBAIC0zMDMsNyArMzEwLDcgQEAgcHVibGlj
OgogICAgIHZvaWQgZmlyZShGcmFtZSYgZnJhbWUpIG92ZXJyaWRlCiAgICAgewogICAgICAgICBV
c2VyR2VzdHVyZUluZGljYXRvciBnZXN0dXJlSW5kaWNhdG9yIHsgd2FzVXNlckdlc3R1cmUoKSA/
IERlZmluaXRlbHlQcm9jZXNzaW5nVXNlckdlc3R1cmUgOiBEZWZpbml0ZWx5Tm90UHJvY2Vzc2lu
Z1VzZXJHZXN0dXJlIH07Ci0gICAgICAgIGZyYW1lLmxvYWRlcigpLmxvYWQoRnJhbWVMb2FkUmVx
dWVzdCB7ICZmcmFtZSwgbV9iYXNlVVJMLCBtX3N1YnN0aXR1dGVEYXRhIH0pOworICAgICAgICBm
cmFtZS5sb2FkZXIoKS5sb2FkKEZyYW1lTG9hZFJlcXVlc3QgeyAmZnJhbWUsIG1fYmFzZVVSTCwg
bV9zaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5LCBtX3N1YnN0aXR1dGVEYXRhIH0pOwogICAg
IH0KIAogcHJpdmF0ZToKQEAgLTM1Myw3ICszNjAsNyBAQCBpbmxpbmUgYm9vbCBOYXZpZ2F0aW9u
U2NoZWR1bGVyOjpzaG91bGRTY2hlZHVsZU5hdmlnYXRpb24oY29uc3QgVVJMJiB1cmwpIGNvbnN0
CiAgICAgcmV0dXJuIE5hdmlnYXRpb25EaXNhYmxlckZvckJlZm9yZVVubG9hZDo6aXNOYXZpZ2F0
aW9uQWxsb3dlZCgpOwogfQogCi12b2lkIE5hdmlnYXRpb25TY2hlZHVsZXI6OnNjaGVkdWxlUmVk
aXJlY3QoZG91YmxlIGRlbGF5LCBjb25zdCBVUkwmIHVybCkKK3ZvaWQgTmF2aWdhdGlvblNjaGVk
dWxlcjo6c2NoZWR1bGVSZWRpcmVjdChEb2N1bWVudCogaW5pdGlhdGluZ0RvY3VtZW50LCBkb3Vi
bGUgZGVsYXksIGNvbnN0IFVSTCYgdXJsKQogewogICAgIGlmICghc2hvdWxkU2NoZWR1bGVOYXZp
Z2F0aW9uKHVybCkpCiAgICAgICAgIHJldHVybjsKQEAgLTM2NSw3ICszNzIsNyBAQCB2b2lkIE5h
dmlnYXRpb25TY2hlZHVsZXI6OnNjaGVkdWxlUmVkaXJlY3QoZG91YmxlIGRlbGF5LCBjb25zdCBV
UkwmIHVybCkKICAgICAvLyBXZSB3YW50IGEgbmV3IGJhY2svZm9yd2FyZCBsaXN0IGl0ZW0gaWYg
dGhlIHJlZnJlc2ggdGltZW91dCBpcyA+IDEgc2Vjb25kLgogICAgIGlmICghbV9yZWRpcmVjdCB8
fCBkZWxheSA8PSBtX3JlZGlyZWN0LT5kZWxheSgpKSB7CiAgICAgICAgIExvY2tCYWNrRm9yd2Fy
ZExpc3QgbG9ja0JhY2tGb3J3YXJkTGlzdCA9IGRlbGF5IDw9IDEgPyBMb2NrQmFja0ZvcndhcmRM
aXN0OjpZZXMgOiBMb2NrQmFja0ZvcndhcmRMaXN0OjpObzsKLSAgICAgICAgc2NoZWR1bGUoc3Rk
OjptYWtlX3VuaXF1ZTxTY2hlZHVsZWRSZWRpcmVjdD4oZGVsYXksIG1fZnJhbWUuZG9jdW1lbnQo
KS0+c2VjdXJpdHlPcmlnaW4oKSwgdXJsLCBMb2NrSGlzdG9yeTo6WWVzLCBsb2NrQmFja0Zvcndh
cmRMaXN0KSk7CisgICAgICAgIHNjaGVkdWxlKHN0ZDo6bWFrZV91bmlxdWU8U2NoZWR1bGVkUmVk
aXJlY3Q+KGluaXRpYXRpbmdEb2N1bWVudCwgZGVsYXksIG1fZnJhbWUuZG9jdW1lbnQoKS0+c2Vj
dXJpdHlPcmlnaW4oKSwgdXJsLCBMb2NrSGlzdG9yeTo6WWVzLCBsb2NrQmFja0ZvcndhcmRMaXN0
KSk7CiAgICAgfQogfQogCkBAIC0zODcsNyArMzk0LDcgQEAgTG9ja0JhY2tGb3J3YXJkTGlzdCBO
YXZpZ2F0aW9uU2NoZWR1bGVyOjptdXN0TG9ja0JhY2tGb3J3YXJkTGlzdChGcmFtZSYgdGFyZ2V0
RnIKICAgICByZXR1cm4gTG9ja0JhY2tGb3J3YXJkTGlzdDo6Tm87CiB9CiAKLXZvaWQgTmF2aWdh
dGlvblNjaGVkdWxlcjo6c2NoZWR1bGVMb2NhdGlvbkNoYW5nZShTZWN1cml0eU9yaWdpbiogc2Vj
dXJpdHlPcmlnaW4sIGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIHJlZmVycmVyLCBMb2Nr
SGlzdG9yeSBsb2NrSGlzdG9yeSwgTG9ja0JhY2tGb3J3YXJkTGlzdCBsb2NrQmFja0ZvcndhcmRM
aXN0KQordm9pZCBOYXZpZ2F0aW9uU2NoZWR1bGVyOjpzY2hlZHVsZUxvY2F0aW9uQ2hhbmdlKERv
Y3VtZW50KiBpbml0aWF0aW5nRG9jdW1lbnQsIFNlY3VyaXR5T3JpZ2luKiBzZWN1cml0eU9yaWdp
biwgY29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgcmVmZXJyZXIsIExvY2tIaXN0b3J5IGxv
Y2tIaXN0b3J5LCBMb2NrQmFja0ZvcndhcmRMaXN0IGxvY2tCYWNrRm9yd2FyZExpc3QpCiB7CiAg
ICAgaWYgKCFzaG91bGRTY2hlZHVsZU5hdmlnYXRpb24odXJsKSkKICAgICAgICAgcmV0dXJuOwpA
QCAtNDAxLDcgKzQwOCwxMCBAQCB2b2lkIE5hdmlnYXRpb25TY2hlZHVsZXI6OnNjaGVkdWxlTG9j
YXRpb25DaGFuZ2UoU2VjdXJpdHlPcmlnaW4qIHNlY3VyaXR5T3JpZ2luLAogICAgIC8vIGZyYWdt
ZW50IHBhcnQsIHdlIGRvbid0IG5lZWQgdG8gc2NoZWR1bGUgdGhlIGxvY2F0aW9uIGNoYW5nZS4K
ICAgICBpZiAodXJsLmhhc0ZyYWdtZW50SWRlbnRpZmllcigpICYmIGVxdWFsSWdub3JpbmdGcmFn
bWVudElkZW50aWZpZXIobV9mcmFtZS5kb2N1bWVudCgpLT51cmwoKSwgdXJsKSkgewogICAgICAg
ICBSZXNvdXJjZVJlcXVlc3QgcmVzb3VyY2VSZXF1ZXN0KG1fZnJhbWUuZG9jdW1lbnQoKS0+Y29t
cGxldGVVUkwodXJsKSwgcmVmZXJyZXIsIFVzZVByb3RvY29sQ2FjaGVQb2xpY3kpOwotICAgICAg
ICBGcmFtZUxvYWRSZXF1ZXN0IGZyYW1lUmVxdWVzdChzZWN1cml0eU9yaWdpbiwgcmVzb3VyY2VS
ZXF1ZXN0LCBlbXB0eVN0cmluZygpLCBsb2NrSGlzdG9yeSwgbG9ja0JhY2tGb3J3YXJkTGlzdCwg
TWF5YmVTZW5kUmVmZXJyZXIsIEFsbG93TmF2aWdhdGlvblRvSW52YWxpZFVSTDo6Tm8sIE5ld0Zy
YW1lT3BlbmVyUG9saWN5OjpBbGxvdywgUmVwbGFjZURvY3VtZW50SWZKYXZhU2NyaXB0VVJMKTsK
KyAgICAgICAgU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSBzaG91bGRPcGVuRXh0ZXJuYWxV
UkxzUG9saWN5ID0gU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeTo6U2hvdWxkTm90QWxsb3c7
CisgICAgICAgIGlmIChpbml0aWF0aW5nRG9jdW1lbnQpCisgICAgICAgICAgICBzaG91bGRPcGVu
RXh0ZXJuYWxVUkxzUG9saWN5ID0gaW5pdGlhdGluZ0RvY3VtZW50LT5zaG91bGRPcGVuRXh0ZXJu
YWxVUkxzUG9saWN5VG9Qcm9wYWdhdGUoKTsKKyAgICAgICAgRnJhbWVMb2FkUmVxdWVzdCBmcmFt
ZVJlcXVlc3Qoc2VjdXJpdHlPcmlnaW4sIHJlc291cmNlUmVxdWVzdCwgZW1wdHlTdHJpbmcoKSwg
bG9ja0hpc3RvcnksIGxvY2tCYWNrRm9yd2FyZExpc3QsIE1heWJlU2VuZFJlZmVycmVyLCBBbGxv
d05hdmlnYXRpb25Ub0ludmFsaWRVUkw6Ok5vLCBOZXdGcmFtZU9wZW5lclBvbGljeTo6QWxsb3cs
IFJlcGxhY2VEb2N1bWVudElmSmF2YVNjcmlwdFVSTCwgc2hvdWxkT3BlbkV4dGVybmFsVVJMc1Bv
bGljeSk7CiAgICAgICAgIGxvYWRlci5jaGFuZ2VMb2NhdGlvbihmcmFtZVJlcXVlc3QpOwogICAg
ICAgICByZXR1cm47CiAgICAgfQpAQCAtNDEwLDcgKzQyMCw3IEBAIHZvaWQgTmF2aWdhdGlvblNj
aGVkdWxlcjo6c2NoZWR1bGVMb2NhdGlvbkNoYW5nZShTZWN1cml0eU9yaWdpbiogc2VjdXJpdHlP
cmlnaW4sCiAgICAgLy8gVGhpcyBtYXkgaGFwcGVuIHdoZW4gYSBmcmFtZSBjaGFuZ2VzIHRoZSBs
b2NhdGlvbiBvZiBhbm90aGVyIGZyYW1lLgogICAgIGJvb2wgZHVyaW5nTG9hZCA9ICFsb2FkZXIu
c3RhdGVNYWNoaW5lKCkuY29tbWl0dGVkRmlyc3RSZWFsRG9jdW1lbnRMb2FkKCk7CiAKLSAgICBz
Y2hlZHVsZShzdGQ6Om1ha2VfdW5pcXVlPFNjaGVkdWxlZExvY2F0aW9uQ2hhbmdlPihzZWN1cml0
eU9yaWdpbiwgdXJsLCByZWZlcnJlciwgbG9ja0hpc3RvcnksIGxvY2tCYWNrRm9yd2FyZExpc3Qs
IGR1cmluZ0xvYWQpKTsKKyAgICBzY2hlZHVsZShzdGQ6Om1ha2VfdW5pcXVlPFNjaGVkdWxlZExv
Y2F0aW9uQ2hhbmdlPihpbml0aWF0aW5nRG9jdW1lbnQsIHNlY3VyaXR5T3JpZ2luLCB1cmwsIHJl
ZmVycmVyLCBsb2NrSGlzdG9yeSwgbG9ja0JhY2tGb3J3YXJkTGlzdCwgZHVyaW5nTG9hZCkpOwog
fQogCiB2b2lkIE5hdmlnYXRpb25TY2hlZHVsZXI6OnNjaGVkdWxlRm9ybVN1Ym1pc3Npb24oUGFz
c1JlZlB0cjxGb3JtU3VibWlzc2lvbj4gc3VibWlzc2lvbikKQEAgLTQzNiw3ICs0NDYsNyBAQCB2
b2lkIE5hdmlnYXRpb25TY2hlZHVsZXI6OnNjaGVkdWxlRm9ybVN1Ym1pc3Npb24oUGFzc1JlZlB0
cjxGb3JtU3VibWlzc2lvbj4gc3VibQogICAgIHNjaGVkdWxlKHN0ZDo6bWFrZV91bmlxdWU8U2No
ZWR1bGVkRm9ybVN1Ym1pc3Npb24+KHN1Ym1pc3Npb24sIGxvY2tCYWNrRm9yd2FyZExpc3QsIGR1
cmluZ0xvYWQpKTsKIH0KIAotdm9pZCBOYXZpZ2F0aW9uU2NoZWR1bGVyOjpzY2hlZHVsZVJlZnJl
c2goKQordm9pZCBOYXZpZ2F0aW9uU2NoZWR1bGVyOjpzY2hlZHVsZVJlZnJlc2goRG9jdW1lbnQq
IGluaXRpYXRpbmdEb2N1bWVudCkKIHsKICAgICBpZiAoIXNob3VsZFNjaGVkdWxlTmF2aWdhdGlv
bigpKQogICAgICAgICByZXR1cm47CkBAIC00NDQsNyArNDU0LDcgQEAgdm9pZCBOYXZpZ2F0aW9u
U2NoZWR1bGVyOjpzY2hlZHVsZVJlZnJlc2goKQogICAgIGlmICh1cmwuaXNFbXB0eSgpKQogICAg
ICAgICByZXR1cm47CiAKLSAgICBzY2hlZHVsZShzdGQ6Om1ha2VfdW5pcXVlPFNjaGVkdWxlZFJl
ZnJlc2g+KG1fZnJhbWUuZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKSwgdXJsLCBtX2ZyYW1l
LmxvYWRlcigpLm91dGdvaW5nUmVmZXJyZXIoKSkpOworICAgIHNjaGVkdWxlKHN0ZDo6bWFrZV91
bmlxdWU8U2NoZWR1bGVkUmVmcmVzaD4oaW5pdGlhdGluZ0RvY3VtZW50LCBtX2ZyYW1lLmRvY3Vt
ZW50KCktPnNlY3VyaXR5T3JpZ2luKCksIHVybCwgbV9mcmFtZS5sb2FkZXIoKS5vdXRnb2luZ1Jl
ZmVycmVyKCkpKTsKIH0KIAogdm9pZCBOYXZpZ2F0aW9uU2NoZWR1bGVyOjpzY2hlZHVsZUhpc3Rv
cnlOYXZpZ2F0aW9uKGludCBzdGVwcykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9OYXZpZ2F0aW9uU2NoZWR1bGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTmF2aWdhdGlv
blNjaGVkdWxlci5oCmluZGV4IDRhZTViMTAuLmRkNjFhNzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9OYXZpZ2F0aW9uU2NoZWR1bGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL05hdmlnYXRpb25TY2hlZHVsZXIuaApAQCAtMzcsNiArMzcsNyBAQAogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKK2NsYXNzIERvY3VtZW50OwogY2xhc3MgRm9ybVN1Ym1pc3Npb247CiBj
bGFzcyBGcmFtZTsKIGNsYXNzIFNjaGVkdWxlZE5hdmlnYXRpb247CkBAIC02OSwxMCArNzAsMTAg
QEAgcHVibGljOgogICAgIGJvb2wgcmVkaXJlY3RTY2hlZHVsZWREdXJpbmdMb2FkKCk7CiAgICAg
Ym9vbCBsb2NhdGlvbkNoYW5nZVBlbmRpbmcoKTsKIAotICAgIHZvaWQgc2NoZWR1bGVSZWRpcmVj
dChkb3VibGUgZGVsYXksIGNvbnN0IFVSTCYpOwotICAgIHZvaWQgc2NoZWR1bGVMb2NhdGlvbkNo
YW5nZShTZWN1cml0eU9yaWdpbiosIGNvbnN0IFVSTCYsIGNvbnN0IFN0cmluZyYgcmVmZXJyZXIs
IExvY2tIaXN0b3J5ID0gTG9ja0hpc3Rvcnk6OlllcywgTG9ja0JhY2tGb3J3YXJkTGlzdCA9IExv
Y2tCYWNrRm9yd2FyZExpc3Q6Olllcyk7CisgICAgdm9pZCBzY2hlZHVsZVJlZGlyZWN0KERvY3Vt
ZW50KiBpbml0aWF0aW5nRG9jdW1lbnQsIGRvdWJsZSBkZWxheSwgY29uc3QgVVJMJik7CisgICAg
dm9pZCBzY2hlZHVsZUxvY2F0aW9uQ2hhbmdlKERvY3VtZW50KiBpbml0aWF0aW5nRG9jdW1lbnQs
IFNlY3VyaXR5T3JpZ2luKiwgY29uc3QgVVJMJiwgY29uc3QgU3RyaW5nJiByZWZlcnJlciwgTG9j
a0hpc3RvcnkgPSBMb2NrSGlzdG9yeTo6WWVzLCBMb2NrQmFja0ZvcndhcmRMaXN0ID0gTG9ja0Jh
Y2tGb3J3YXJkTGlzdDo6WWVzKTsKICAgICB2b2lkIHNjaGVkdWxlRm9ybVN1Ym1pc3Npb24oUGFz
c1JlZlB0cjxGb3JtU3VibWlzc2lvbj4pOwotICAgIHZvaWQgc2NoZWR1bGVSZWZyZXNoKCk7Cisg
ICAgdm9pZCBzY2hlZHVsZVJlZnJlc2goRG9jdW1lbnQqIGluaXRpYXRpbmdEb2N1bWVudCk7CiAg
ICAgdm9pZCBzY2hlZHVsZUhpc3RvcnlOYXZpZ2F0aW9uKGludCBzdGVwcyk7CiAgICAgdm9pZCBz
Y2hlZHVsZVN1YnN0aXR1dGVEYXRhTG9hZChjb25zdCBVUkwmIGJhc2VVUkwsIGNvbnN0IFN1YnN0
aXR1dGVEYXRhJik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Qb2xpY3lD
aGVja2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Qb2xpY3lDaGVja2VyLmNwcAppbmRl
eCAxYmI5OWE2Li5hMjE2ZTUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUG9s
aWN5Q2hlY2tlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1BvbGljeUNoZWNrZXIu
Y3BwCkBAIC02NSw3ICs2NSw3IEBAIHZvaWQgUG9saWN5Q2hlY2tlcjo6Y2hlY2tOYXZpZ2F0aW9u
UG9saWN5KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgRG9jdW1lCiB7CiAgICAgTmF2
aWdhdGlvbkFjdGlvbiBhY3Rpb24gPSBsb2FkZXItPnRyaWdnZXJpbmdBY3Rpb24oKTsKICAgICBp
ZiAoYWN0aW9uLmlzRW1wdHkoKSkgewotICAgICAgICBhY3Rpb24gPSBOYXZpZ2F0aW9uQWN0aW9u
KHJlcXVlc3QsIE5hdmlnYXRpb25UeXBlOjpPdGhlciwgbG9hZGVyLT5zaG91bGRPcGVuRXh0ZXJu
YWxVUkxzUG9saWN5KCkpOworICAgICAgICBhY3Rpb24gPSBOYXZpZ2F0aW9uQWN0aW9uKHJlcXVl
c3QsIE5hdmlnYXRpb25UeXBlOjpPdGhlciwgbG9hZGVyLT5zaG91bGRPcGVuRXh0ZXJuYWxVUkxz
UG9saWN5VG9Qcm9wYWdhdGUoKSk7CiAgICAgICAgIGxvYWRlci0+c2V0VHJpZ2dlcmluZ0FjdGlv
bihhY3Rpb24pOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1N1
YmZyYW1lTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJmcmFtZUxvYWRlci5j
cHAKaW5kZXggYjBmZDUyZi4uN2YwY2YwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL1N1YmZyYW1lTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvU3ViZnJh
bWVMb2FkZXIuY3BwCkBAIC0yODQsNyArMjg0LDcgQEAgRnJhbWUqIFN1YmZyYW1lTG9hZGVyOjps
b2FkT3JSZWRpcmVjdFN1YmZyYW1lKEhUTUxGcmFtZU93bmVyRWxlbWVudCYgb3duZXJFbGVtZW4K
IHsKICAgICBGcmFtZSogZnJhbWUgPSBvd25lckVsZW1lbnQuY29udGVudEZyYW1lKCk7CiAgICAg
aWYgKGZyYW1lKQotICAgICAgICBmcmFtZS0+bmF2aWdhdGlvblNjaGVkdWxlcigpLnNjaGVkdWxl
TG9jYXRpb25DaGFuZ2UobV9mcmFtZS5kb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpLCB1cmws
IG1fZnJhbWUubG9hZGVyKCkub3V0Z29pbmdSZWZlcnJlcigpLCBsb2NrSGlzdG9yeSwgbG9ja0Jh
Y2tGb3J3YXJkTGlzdCk7CisgICAgICAgIGZyYW1lLT5uYXZpZ2F0aW9uU2NoZWR1bGVyKCkuc2No
ZWR1bGVMb2NhdGlvbkNoYW5nZShtX2ZyYW1lLmRvY3VtZW50KCksIG1fZnJhbWUuZG9jdW1lbnQo
KS0+c2VjdXJpdHlPcmlnaW4oKSwgdXJsLCBtX2ZyYW1lLmxvYWRlcigpLm91dGdvaW5nUmVmZXJy
ZXIoKSwgbG9ja0hpc3RvcnksIGxvY2tCYWNrRm9yd2FyZExpc3QpOwogICAgIGVsc2UKICAgICAg
ICAgZnJhbWUgPSBsb2FkU3ViZnJhbWUob3duZXJFbGVtZW50LCB1cmwsIGZyYW1lTmFtZSwgbV9m
cmFtZS5sb2FkZXIoKS5vdXRnb2luZ1JlZmVycmVyKCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUdyb3VwLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlR3JvdXAuY3BwCmluZGV4
IDc2OGY0ZjkuLjYyN2MwZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBj
YWNoZS9BcHBsaWNhdGlvbkNhY2hlR3JvdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlR3JvdXAuY3BwCkBAIC0xNzMsNyArMTczLDcgQEAg
dm9pZCBBcHBsaWNhdGlvbkNhY2hlR3JvdXA6OnNlbGVjdENhY2hlKEZyYW1lKiBmcmFtZSwgY29u
c3QgVVJMJiBwYXNzZWRNYW5pZmVzdFUKICAgICAgICAgICAgIC8vIFJlc3RhcnQgdGhlIGN1cnJl
bnQgbmF2aWdhdGlvbiBmcm9tIHRoZSB0b3Agb2YgdGhlIG5hdmlnYXRpb24gYWxnb3JpdGhtLCB1
bmRvaW5nIGFueSBjaGFuZ2VzIHRoYXQgd2VyZSBtYWRlCiAgICAgICAgICAgICAvLyBhcyBwYXJ0
IG9mIHRoZSBpbml0aWFsIGxvYWQuCiAgICAgICAgICAgICAvLyBUaGUgbmF2aWdhdGlvbiB3aWxs
IG5vdCByZXN1bHQgaW4gdGhlIHNhbWUgcmVzb3VyY2UgYmVpbmcgbG9hZGVkLCBiZWNhdXNlICJm
b3JlaWduIiBlbnRyaWVzIGFyZSBuZXZlciBwaWNrZWQgZHVyaW5nIG5hdmlnYXRpb24uCi0gICAg
ICAgICAgICBmcmFtZS0+bmF2aWdhdGlvblNjaGVkdWxlcigpLnNjaGVkdWxlTG9jYXRpb25DaGFu
Z2UoZnJhbWUtPmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCksIGRvY3VtZW50TG9hZGVyLT51
cmwoKSwgZnJhbWUtPmxvYWRlcigpLnJlZmVycmVyKCkpOworICAgICAgICAgICAgZnJhbWUtPm5h
dmlnYXRpb25TY2hlZHVsZXIoKS5zY2hlZHVsZUxvY2F0aW9uQ2hhbmdlKGZyYW1lLT5kb2N1bWVu
dCgpLCBmcmFtZS0+ZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKSwgZG9jdW1lbnRMb2FkZXIt
PnVybCgpLCBmcmFtZS0+bG9hZGVyKCkucmVmZXJyZXIoKSk7CiAgICAgICAgIH0KICAgICAgICAg
CiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGV4
dE1lbnVDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGV4dE1lbnVDb250
cm9sbGVyLmNwcAppbmRleCAzODkyZDY0Li5kMjRmYjMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0NvbnRleHRNZW51Q29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9Db250ZXh0TWVudUNvbnRyb2xsZXIuY3BwCkBAIC0xOTAsMTMgKzE5MCwxMyBAQCB2b2lk
IENvbnRleHRNZW51Q29udHJvbGxlcjo6c2hvd0NvbnRleHRNZW51KEV2ZW50KiBldmVudCkKICAg
ICBldmVudC0+c2V0RGVmYXVsdEhhbmRsZWQoKTsKIH0KIAotc3RhdGljIHZvaWQgb3Blbk5ld1dp
bmRvdyhjb25zdCBVUkwmIHVybFRvTG9hZCwgRnJhbWUqIGZyYW1lKQorc3RhdGljIHZvaWQgb3Bl
bk5ld1dpbmRvdyhjb25zdCBVUkwmIHVybFRvTG9hZCwgRnJhbWUqIGZyYW1lLCBTaG91bGRPcGVu
RXh0ZXJuYWxVUkxzUG9saWN5IHNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kpCiB7CiAgICAg
UGFnZSogb2xkUGFnZSA9IGZyYW1lLT5wYWdlKCk7CiAgICAgaWYgKCFvbGRQYWdlKQogICAgICAg
ICByZXR1cm47Ci0gICAgCi0gICAgRnJhbWVMb2FkUmVxdWVzdCByZXF1ZXN0KGZyYW1lLT5kb2N1
bWVudCgpLT5zZWN1cml0eU9yaWdpbigpLCBSZXNvdXJjZVJlcXVlc3QodXJsVG9Mb2FkLCBmcmFt
ZS0+bG9hZGVyKCkub3V0Z29pbmdSZWZlcnJlcigpKSwgTG9ja0hpc3Rvcnk6Ok5vLCBMb2NrQmFj
a0ZvcndhcmRMaXN0OjpObywgTWF5YmVTZW5kUmVmZXJyZXIsIEFsbG93TmF2aWdhdGlvblRvSW52
YWxpZFVSTDo6WWVzLCBOZXdGcmFtZU9wZW5lclBvbGljeTo6U3VwcHJlc3MpOworCisgICAgRnJh
bWVMb2FkUmVxdWVzdCByZXF1ZXN0KGZyYW1lLT5kb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigp
LCBSZXNvdXJjZVJlcXVlc3QodXJsVG9Mb2FkLCBmcmFtZS0+bG9hZGVyKCkub3V0Z29pbmdSZWZl
cnJlcigpKSwgTG9ja0hpc3Rvcnk6Ok5vLCBMb2NrQmFja0ZvcndhcmRMaXN0OjpObywgTWF5YmVT
ZW5kUmVmZXJyZXIsIEFsbG93TmF2aWdhdGlvblRvSW52YWxpZFVSTDo6WWVzLCBOZXdGcmFtZU9w
ZW5lclBvbGljeTo6U3VwcHJlc3MsIHNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kpOwogCiAg
ICAgUGFnZSogbmV3UGFnZSA9IG9sZFBhZ2UtPmNocm9tZSgpLmNyZWF0ZVdpbmRvdyhmcmFtZSwg
cmVxdWVzdCwgV2luZG93RmVhdHVyZXMoKSwgTmF2aWdhdGlvbkFjdGlvbihyZXF1ZXN0LnJlc291
cmNlUmVxdWVzdCgpKSk7CiAgICAgaWYgKCFuZXdQYWdlKQpAQCAtMjM4LDcgKzIzOCw3IEBAIHZv
aWQgQ29udGV4dE1lbnVDb250cm9sbGVyOjpjb250ZXh0TWVudUl0ZW1TZWxlY3RlZChDb250ZXh0
TWVudUl0ZW0qIGl0ZW0pCiAKICAgICBzd2l0Y2ggKGl0ZW0tPmFjdGlvbigpKSB7CiAgICAgY2Fz
ZSBDb250ZXh0TWVudUl0ZW1UYWdPcGVuTGlua0luTmV3V2luZG93OgotICAgICAgICBvcGVuTmV3
V2luZG93KG1fY29udGV4dC5oaXRUZXN0UmVzdWx0KCkuYWJzb2x1dGVMaW5rVVJMKCksIGZyYW1l
KTsKKyAgICAgICAgb3Blbk5ld1dpbmRvdyhtX2NvbnRleHQuaGl0VGVzdFJlc3VsdCgpLmFic29s
dXRlTGlua1VSTCgpLCBmcmFtZSwgU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeTo6U2hvdWxk
QWxsb3cpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ0Rvd25s
b2FkTGlua1RvRGlzazoKICAgICAgICAgLy8gRklYTUU6IFNvbWUgZGF5IHdlIHNob3VsZCBiZSBh
YmxlIHRvIGRvIHRoaXMgZnJvbSB3aXRoaW4gV2ViQ29yZS4gKEJ1ZyAxMTc3MDkpCkBAIC0yNDgs
NyArMjQ4LDcgQEAgdm9pZCBDb250ZXh0TWVudUNvbnRyb2xsZXI6OmNvbnRleHRNZW51SXRlbVNl
bGVjdGVkKENvbnRleHRNZW51SXRlbSogaXRlbSkKICAgICAgICAgZnJhbWUtPmVkaXRvcigpLmNv
cHlVUkwobV9jb250ZXh0LmhpdFRlc3RSZXN1bHQoKS5hYnNvbHV0ZUxpbmtVUkwoKSwgbV9jb250
ZXh0LmhpdFRlc3RSZXN1bHQoKS50ZXh0Q29udGVudCgpKTsKICAgICAgICAgYnJlYWs7CiAgICAg
Y2FzZSBDb250ZXh0TWVudUl0ZW1UYWdPcGVuSW1hZ2VJbk5ld1dpbmRvdzoKLSAgICAgICAgb3Bl
bk5ld1dpbmRvdyhtX2NvbnRleHQuaGl0VGVzdFJlc3VsdCgpLmFic29sdXRlSW1hZ2VVUkwoKSwg
ZnJhbWUpOworICAgICAgICBvcGVuTmV3V2luZG93KG1fY29udGV4dC5oaXRUZXN0UmVzdWx0KCku
YWJzb2x1dGVJbWFnZVVSTCgpLCBmcmFtZSwgU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeTo6
U2hvdWxkTm90QWxsb3cpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIENvbnRleHRNZW51SXRl
bVRhZ0Rvd25sb2FkSW1hZ2VUb0Rpc2s6CiAgICAgICAgIC8vIEZJWE1FOiBTb21lIGRheSB3ZSBz
aG91bGQgYmUgYWJsZSB0byBkbyB0aGlzIGZyb20gd2l0aGluIFdlYkNvcmUuIChCdWcgMTE3NzA5
KQpAQCAtMjY1LDcgKzI2NSw3IEBAIHZvaWQgQ29udGV4dE1lbnVDb250cm9sbGVyOjpjb250ZXh0
TWVudUl0ZW1TZWxlY3RlZChDb250ZXh0TWVudUl0ZW0qIGl0ZW0pCiAgICAgICAgIGJyZWFrOwog
I2VuZGlmCiAgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdPcGVuTWVkaWFJbk5ld1dpbmRvdzoK
LSAgICAgICAgb3Blbk5ld1dpbmRvdyhtX2NvbnRleHQuaGl0VGVzdFJlc3VsdCgpLmFic29sdXRl
TWVkaWFVUkwoKSwgZnJhbWUpOworICAgICAgICBvcGVuTmV3V2luZG93KG1fY29udGV4dC5oaXRU
ZXN0UmVzdWx0KCkuYWJzb2x1dGVNZWRpYVVSTCgpLCBmcmFtZSwgU2hvdWxkT3BlbkV4dGVybmFs
VVJMc1BvbGljeTo6U2hvdWxkTm90QWxsb3cpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIENv
bnRleHRNZW51SXRlbVRhZ0Rvd25sb2FkTWVkaWFUb0Rpc2s6CiAgICAgICAgIC8vIEZJWE1FOiBT
b21lIGRheSB3ZSBzaG91bGQgYmUgYWJsZSB0byBkbyB0aGlzIGZyb20gd2l0aGluIFdlYkNvcmUu
IChCdWcgMTE3NzA5KQpAQCAtMjk1LDkgKzI5NSw5IEBAIHZvaWQgQ29udGV4dE1lbnVDb250cm9s
bGVyOjpjb250ZXh0TWVudUl0ZW1TZWxlY3RlZChDb250ZXh0TWVudUl0ZW0qIGl0ZW0pCiAgICAg
Y2FzZSBDb250ZXh0TWVudUl0ZW1UYWdPcGVuRnJhbWVJbk5ld1dpbmRvdzogewogICAgICAgICBE
b2N1bWVudExvYWRlciogbG9hZGVyID0gZnJhbWUtPmxvYWRlcigpLmRvY3VtZW50TG9hZGVyKCk7
CiAgICAgICAgIGlmICghbG9hZGVyLT51bnJlYWNoYWJsZVVSTCgpLmlzRW1wdHkoKSkKLSAgICAg
ICAgICAgIG9wZW5OZXdXaW5kb3cobG9hZGVyLT51bnJlYWNoYWJsZVVSTCgpLCBmcmFtZSk7Cisg
ICAgICAgICAgICBvcGVuTmV3V2luZG93KGxvYWRlci0+dW5yZWFjaGFibGVVUkwoKSwgZnJhbWUs
IFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3k6OlNob3VsZE5vdEFsbG93KTsKICAgICAgICAg
ZWxzZQotICAgICAgICAgICAgb3Blbk5ld1dpbmRvdyhsb2FkZXItPnVybCgpLCBmcmFtZSk7Cisg
ICAgICAgICAgICBvcGVuTmV3V2luZG93KGxvYWRlci0+dXJsKCksIGZyYW1lLCBTaG91bGRPcGVu
RXh0ZXJuYWxVUkxzUG9saWN5OjpTaG91bGROb3RBbGxvdyk7CiAgICAgICAgIGJyZWFrOwogICAg
IH0KICAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ0NvcHk6CkBAIC00MDEsMTIgKzQwMSwxMiBA
QCB2b2lkIENvbnRleHRNZW51Q29udHJvbGxlcjo6Y29udGV4dE1lbnVJdGVtU2VsZWN0ZWQoQ29u
dGV4dE1lbnVJdGVtKiBpdGVtKQogICAgICAgICBicmVhazsKICAgICBjYXNlIENvbnRleHRNZW51
SXRlbVRhZ09wZW5MaW5rOgogICAgICAgICBpZiAoRnJhbWUqIHRhcmdldEZyYW1lID0gbV9jb250
ZXh0LmhpdFRlc3RSZXN1bHQoKS50YXJnZXRGcmFtZSgpKQotICAgICAgICAgICAgdGFyZ2V0RnJh
bWUtPmxvYWRlcigpLmxvYWRGcmFtZVJlcXVlc3QoRnJhbWVMb2FkUmVxdWVzdChmcmFtZS0+ZG9j
dW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKSwgUmVzb3VyY2VSZXF1ZXN0KG1fY29udGV4dC5oaXRU
ZXN0UmVzdWx0KCkuYWJzb2x1dGVMaW5rVVJMKCksIGZyYW1lLT5sb2FkZXIoKS5vdXRnb2luZ1Jl
ZmVycmVyKCkpLCBMb2NrSGlzdG9yeTo6Tm8sIExvY2tCYWNrRm9yd2FyZExpc3Q6Ok5vLCBNYXli
ZVNlbmRSZWZlcnJlciwgQWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJMOjpZZXMsIE5ld0ZyYW1l
T3BlbmVyUG9saWN5OjpTdXBwcmVzcyksIG51bGxwdHIsIG51bGxwdHIpOworICAgICAgICAgICAg
dGFyZ2V0RnJhbWUtPmxvYWRlcigpLmxvYWRGcmFtZVJlcXVlc3QoRnJhbWVMb2FkUmVxdWVzdChm
cmFtZS0+ZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKSwgUmVzb3VyY2VSZXF1ZXN0KG1fY29u
dGV4dC5oaXRUZXN0UmVzdWx0KCkuYWJzb2x1dGVMaW5rVVJMKCksIGZyYW1lLT5sb2FkZXIoKS5v
dXRnb2luZ1JlZmVycmVyKCkpLCBMb2NrSGlzdG9yeTo6Tm8sIExvY2tCYWNrRm9yd2FyZExpc3Q6
Ok5vLCBNYXliZVNlbmRSZWZlcnJlciwgQWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJMOjpZZXMs
IE5ld0ZyYW1lT3BlbmVyUG9saWN5OjpTdXBwcmVzcywgdGFyZ2V0RnJhbWUtPmlzTWFpbkZyYW1l
KCkgPyBTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5OjpTaG91bGRBbGxvdyA6IFNob3VsZE9w
ZW5FeHRlcm5hbFVSTHNQb2xpY3k6OlNob3VsZE5vdEFsbG93KSwgbnVsbHB0ciwgbnVsbHB0cik7
CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIG9wZW5OZXdXaW5kb3cobV9jb250ZXh0LmhpdFRl
c3RSZXN1bHQoKS5hYnNvbHV0ZUxpbmtVUkwoKSwgZnJhbWUpOworICAgICAgICAgICAgb3Blbk5l
d1dpbmRvdyhtX2NvbnRleHQuaGl0VGVzdFJlc3VsdCgpLmFic29sdXRlTGlua1VSTCgpLCBmcmFt
ZSwgU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeTo6U2hvdWxkQWxsb3cpOwogICAgICAgICBi
cmVhazsKICAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ09wZW5MaW5rSW5UaGlzV2luZG93Ogot
ICAgICAgICBmcmFtZS0+bG9hZGVyKCkubG9hZEZyYW1lUmVxdWVzdChGcmFtZUxvYWRSZXF1ZXN0
KGZyYW1lLT5kb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpLCBSZXNvdXJjZVJlcXVlc3QobV9j
b250ZXh0LmhpdFRlc3RSZXN1bHQoKS5hYnNvbHV0ZUxpbmtVUkwoKSwgZnJhbWUtPmxvYWRlcigp
Lm91dGdvaW5nUmVmZXJyZXIoKSksIExvY2tIaXN0b3J5OjpObywgTG9ja0JhY2tGb3J3YXJkTGlz
dDo6Tm8sIE1heWJlU2VuZFJlZmVycmVyLCBBbGxvd05hdmlnYXRpb25Ub0ludmFsaWRVUkw6Olll
cywgTmV3RnJhbWVPcGVuZXJQb2xpY3k6OlN1cHByZXNzKSwgbnVsbHB0ciwgbnVsbHB0cik7Cisg
ICAgICAgIGZyYW1lLT5sb2FkZXIoKS5sb2FkRnJhbWVSZXF1ZXN0KEZyYW1lTG9hZFJlcXVlc3Qo
ZnJhbWUtPmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCksIFJlc291cmNlUmVxdWVzdChtX2Nv
bnRleHQuaGl0VGVzdFJlc3VsdCgpLmFic29sdXRlTGlua1VSTCgpLCBmcmFtZS0+bG9hZGVyKCku
b3V0Z29pbmdSZWZlcnJlcigpKSwgTG9ja0hpc3Rvcnk6Ok5vLCBMb2NrQmFja0ZvcndhcmRMaXN0
OjpObywgTWF5YmVTZW5kUmVmZXJyZXIsIEFsbG93TmF2aWdhdGlvblRvSW52YWxpZFVSTDo6WWVz
LCBOZXdGcmFtZU9wZW5lclBvbGljeTo6U3VwcHJlc3MsIFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQ
b2xpY3k6OlNob3VsZEFsbG93KSwgbnVsbHB0ciwgbnVsbHB0cik7CiAgICAgICAgIGJyZWFrOwog
ICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnQm9sZDoKICAgICAgICAgZnJhbWUtPmVkaXRvcigp
LmNvbW1hbmQoIlRvZ2dsZUJvbGQiKS5leGVjdXRlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0RPTVdpbmRvdy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5j
cHAKaW5kZXggYjJhN2Q3Yy4uMzYzOWQ2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9ET01XaW5kb3cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcApA
QCAtMTk5Miw3ICsxOTkyLDcgQEAgdm9pZCBET01XaW5kb3c6OnNldExvY2F0aW9uKGNvbnN0IFN0
cmluZyYgdXJsU3RyaW5nLCBET01XaW5kb3cmIGFjdGl2ZVdpbmRvdywgRE8KICAgICAvLyBXZSB3
YW50IGEgbmV3IGhpc3RvcnkgaXRlbSBpZiB3ZSBhcmUgcHJvY2Vzc2luZyBhIHVzZXIgZ2VzdHVy
ZS4KICAgICBMb2NrSGlzdG9yeSBsb2NrSGlzdG9yeSA9IChsb2NraW5nICE9IExvY2tIaXN0b3J5
QmFzZWRPbkdlc3R1cmVTdGF0ZSB8fCAhU2NyaXB0Q29udHJvbGxlcjo6cHJvY2Vzc2luZ1VzZXJH
ZXN0dXJlKCkpID8gTG9ja0hpc3Rvcnk6OlllcyA6IExvY2tIaXN0b3J5OjpObzsKICAgICBMb2Nr
QmFja0ZvcndhcmRMaXN0IGxvY2tCYWNrRm9yd2FyZExpc3QgPSAobG9ja2luZyAhPSBMb2NrSGlz
dG9yeUJhc2VkT25HZXN0dXJlU3RhdGUpID8gTG9ja0JhY2tGb3J3YXJkTGlzdDo6WWVzIDogTG9j
a0JhY2tGb3J3YXJkTGlzdDo6Tm87Ci0gICAgbV9mcmFtZS0+bmF2aWdhdGlvblNjaGVkdWxlcigp
LnNjaGVkdWxlTG9jYXRpb25DaGFuZ2UoYWN0aXZlRG9jdW1lbnQtPnNlY3VyaXR5T3JpZ2luKCks
CisgICAgbV9mcmFtZS0+bmF2aWdhdGlvblNjaGVkdWxlcigpLnNjaGVkdWxlTG9jYXRpb25DaGFu
Z2UoYWN0aXZlRG9jdW1lbnQsIGFjdGl2ZURvY3VtZW50LT5zZWN1cml0eU9yaWdpbigpLAogICAg
ICAgICAvLyBGSVhNRTogV2hhdCBpZiBhY3RpdmVEb2N1bWVudCgpLT5mcmFtZSgpIGlzIDA/CiAg
ICAgICAgIGNvbXBsZXRlZFVSTCwgYWN0aXZlRG9jdW1lbnQtPmZyYW1lKCktPmxvYWRlcigpLm91
dGdvaW5nUmVmZXJyZXIoKSwKICAgICAgICAgbG9ja0hpc3RvcnksIGxvY2tCYWNrRm9yd2FyZExp
c3QpOwpAQCAtMjA3OCw2ICsyMDc4LDEwIEBAIFJlZlB0cjxGcmFtZT4gRE9NV2luZG93OjpjcmVh
dGVXaW5kb3coY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcsIGNvbnN0IEF0b21pY1N0cmluCiAgICAg
aWYgKCFhY3RpdmVGcmFtZSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKKyAgICBEb2N1bWVu
dCogYWN0aXZlRG9jdW1lbnQgPSBhY3RpdmVXaW5kb3cuZG9jdW1lbnQoKTsKKyAgICBpZiAoIWFj
dGl2ZURvY3VtZW50KQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKwogICAgIFVSTCBjb21wbGV0
ZWRVUkwgPSB1cmxTdHJpbmcuaXNFbXB0eSgpID8gVVJMKFBhcnNlZFVSTFN0cmluZywgZW1wdHlT
dHJpbmcoKSkgOiBmaXJzdEZyYW1lLmRvY3VtZW50KCktPmNvbXBsZXRlVVJMKHVybFN0cmluZyk7
CiAgICAgaWYgKCFjb21wbGV0ZWRVUkwuaXNFbXB0eSgpICYmICFjb21wbGV0ZWRVUkwuaXNWYWxp
ZCgpKSB7CiAgICAgICAgIC8vIERvbid0IGV4cG9zZSBjbGllbnQgY29kZSB0byBpbnZhbGlkIFVS
THMuCkBAIC0yMDkwLDcgKzIwOTQsNyBAQCBSZWZQdHI8RnJhbWU+IERPTVdpbmRvdzo6Y3JlYXRl
V2luZG93KGNvbnN0IFN0cmluZyYgdXJsU3RyaW5nLCBjb25zdCBBdG9taWNTdHJpbgogCiAgICAg
UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QoY29tcGxldGVkVVJMLCByZWZlcnJlcik7CiAgICAgRnJh
bWVMb2FkZXI6OmFkZEhUVFBPcmlnaW5JZk5lZWRlZChyZXF1ZXN0LCBmaXJzdEZyYW1lLmxvYWRl
cigpLm91dGdvaW5nT3JpZ2luKCkpOwotICAgIEZyYW1lTG9hZFJlcXVlc3QgZnJhbWVSZXF1ZXN0
KGFjdGl2ZVdpbmRvdy5kb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpLCByZXF1ZXN0LCBmcmFt
ZU5hbWUsIExvY2tIaXN0b3J5OjpObywgTG9ja0JhY2tGb3J3YXJkTGlzdDo6Tm8sIE1heWJlU2Vu
ZFJlZmVycmVyLCBBbGxvd05hdmlnYXRpb25Ub0ludmFsaWRVUkw6OlllcywgTmV3RnJhbWVPcGVu
ZXJQb2xpY3k6OkFsbG93LCBSZXBsYWNlRG9jdW1lbnRJZkphdmFTY3JpcHRVUkwpOworICAgIEZy
YW1lTG9hZFJlcXVlc3QgZnJhbWVSZXF1ZXN0KGFjdGl2ZURvY3VtZW50LT5zZWN1cml0eU9yaWdp
bigpLCByZXF1ZXN0LCBmcmFtZU5hbWUsIExvY2tIaXN0b3J5OjpObywgTG9ja0JhY2tGb3J3YXJk
TGlzdDo6Tm8sIE1heWJlU2VuZFJlZmVycmVyLCBBbGxvd05hdmlnYXRpb25Ub0ludmFsaWRVUkw6
OlllcywgTmV3RnJhbWVPcGVuZXJQb2xpY3k6OkFsbG93LCBSZXBsYWNlRG9jdW1lbnRJZkphdmFT
Y3JpcHRVUkwsIGFjdGl2ZURvY3VtZW50LT5zaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5VG9Q
cm9wYWdhdGUoKSk7CiAKICAgICAvLyBXZSBwYXNzIHRoZSBvcGVuZXIgZnJhbWUgZm9yIHRoZSBs
b29rdXBGcmFtZSBpbiBjYXNlIHRoZSBhY3RpdmUgZnJhbWUgaXMgZGlmZmVyZW50IGZyb20KICAg
ICAvLyB0aGUgb3BlbmVyIGZyYW1lLCBhbmQgdGhlIG5hbWUgcmVmZXJlbmNlcyBhIGZyYW1lIHJl
bGF0aXZlIHRvIHRoZSBvcGVuZXIgZnJhbWUuCkBAIC0yMTEwLDExICsyMTE0LDExIEBAIFJlZlB0
cjxGcmFtZT4gRE9NV2luZG93OjpjcmVhdGVXaW5kb3coY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcs
IGNvbnN0IEF0b21pY1N0cmluCiAKICAgICBpZiAoY3JlYXRlZCkgewogICAgICAgICBSZXNvdXJj
ZVJlcXVlc3QgcmVzb3VyY2VSZXF1ZXN0KGNvbXBsZXRlZFVSTCwgcmVmZXJyZXIsIFVzZVByb3Rv
Y29sQ2FjaGVQb2xpY3kpOwotICAgICAgICBGcmFtZUxvYWRSZXF1ZXN0IGZyYW1lUmVxdWVzdChh
Y3RpdmVXaW5kb3cuZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKSwgcmVzb3VyY2VSZXF1ZXN0
LCBMb2NrSGlzdG9yeTo6Tm8sIExvY2tCYWNrRm9yd2FyZExpc3Q6Ok5vLCBNYXliZVNlbmRSZWZl
cnJlciwgQWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJMOjpZZXMsIE5ld0ZyYW1lT3BlbmVyUG9s
aWN5OjpBbGxvdyk7CisgICAgICAgIEZyYW1lTG9hZFJlcXVlc3QgZnJhbWVSZXF1ZXN0KGFjdGl2
ZVdpbmRvdy5kb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpLCByZXNvdXJjZVJlcXVlc3QsIExv
Y2tIaXN0b3J5OjpObywgTG9ja0JhY2tGb3J3YXJkTGlzdDo6Tm8sIE1heWJlU2VuZFJlZmVycmVy
LCBBbGxvd05hdmlnYXRpb25Ub0ludmFsaWRVUkw6OlllcywgTmV3RnJhbWVPcGVuZXJQb2xpY3k6
OkFsbG93LCBhY3RpdmVEb2N1bWVudC0+c2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeVRvUHJv
cGFnYXRlKCkpOwogICAgICAgICBuZXdGcmFtZS0+bG9hZGVyKCkuY2hhbmdlTG9jYXRpb24oZnJh
bWVSZXF1ZXN0KTsKICAgICB9IGVsc2UgaWYgKCF1cmxTdHJpbmcuaXNFbXB0eSgpKSB7CiAgICAg
ICAgIExvY2tIaXN0b3J5IGxvY2tIaXN0b3J5ID0gU2NyaXB0Q29udHJvbGxlcjo6cHJvY2Vzc2lu
Z1VzZXJHZXN0dXJlKCkgPyBMb2NrSGlzdG9yeTo6Tm8gOiBMb2NrSGlzdG9yeTo6WWVzOwotICAg
ICAgICBuZXdGcmFtZS0+bmF2aWdhdGlvblNjaGVkdWxlcigpLnNjaGVkdWxlTG9jYXRpb25DaGFu
Z2UoYWN0aXZlV2luZG93LmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCksIGNvbXBsZXRlZFVS
TCwgcmVmZXJyZXIsIGxvY2tIaXN0b3J5LCBMb2NrQmFja0ZvcndhcmRMaXN0OjpObyk7CisgICAg
ICAgIG5ld0ZyYW1lLT5uYXZpZ2F0aW9uU2NoZWR1bGVyKCkuc2NoZWR1bGVMb2NhdGlvbkNoYW5n
ZShhY3RpdmVXaW5kb3cuZG9jdW1lbnQoKSwgYWN0aXZlV2luZG93LmRvY3VtZW50KCktPnNlY3Vy
aXR5T3JpZ2luKCksIGNvbXBsZXRlZFVSTCwgcmVmZXJyZXIsIGxvY2tIaXN0b3J5LCBMb2NrQmFj
a0ZvcndhcmRMaXN0OjpObyk7CiAgICAgfQogCiAgICAgLy8gTmF2aWdhdGluZyB0aGUgbmV3IGZy
YW1lIGNvdWxkIHJlc3VsdCBpbiBpdCBiZWluZyBkZXRhY2hlZCBmcm9tIGl0cyBwYWdlIGJ5IGEg
bmF2aWdhdGlvbiBwb2xpY3kgZGVsZWdhdGUuCkBAIC0yMTI5LDkgKzIxMzMsMTEgQEAgUGFzc1Jl
ZlB0cjxET01XaW5kb3c+IERPTVdpbmRvdzo6b3Blbihjb25zdCBTdHJpbmcmIHVybFN0cmluZywg
Y29uc3QgQXRvbWljU3RyaW4KIHsKICAgICBpZiAoIWlzQ3VycmVudGx5RGlzcGxheWVkSW5GcmFt
ZSgpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKKwogICAgIERvY3VtZW50KiBhY3RpdmVEb2N1
bWVudCA9IGFjdGl2ZVdpbmRvdy5kb2N1bWVudCgpOwogICAgIGlmICghYWN0aXZlRG9jdW1lbnQp
CiAgICAgICAgIHJldHVybiBudWxscHRyOworCiAgICAgRnJhbWUqIGZpcnN0RnJhbWUgPSBmaXJz
dFdpbmRvdy5mcmFtZSgpOwogICAgIGlmICghZmlyc3RGcmFtZSkKICAgICAgICAgcmV0dXJuIG51
bGxwdHI7CkBAIC0yMTgzLDcgKzIxODksNyBAQCBQYXNzUmVmUHRyPERPTVdpbmRvdz4gRE9NV2lu
ZG93OjpvcGVuKGNvbnN0IFN0cmluZyYgdXJsU3RyaW5nLCBjb25zdCBBdG9taWNTdHJpbgogICAg
ICAgICAvLyBGb3Igd2hhdGV2ZXIgcmVhc29uLCBGaXJlZm94IHVzZXMgdGhlIGZpcnN0IHdpbmRv
dyByYXRoZXIgdGhhbiB0aGUgYWN0aXZlIHdpbmRvdyB0bwogICAgICAgICAvLyBkZXRlcm1pbmUg
dGhlIG91dGdvaW5nIHJlZmVycmVyLiBXZSByZXBsaWNhdGUgdGhhdCBiZWhhdmlvciBoZXJlLgog
ICAgICAgICBMb2NrSGlzdG9yeSBsb2NrSGlzdG9yeSA9IFNjcmlwdENvbnRyb2xsZXI6OnByb2Nl
c3NpbmdVc2VyR2VzdHVyZSgpID8gTG9ja0hpc3Rvcnk6Ok5vIDogTG9ja0hpc3Rvcnk6OlllczsK
LSAgICAgICAgdGFyZ2V0RnJhbWUtPm5hdmlnYXRpb25TY2hlZHVsZXIoKS5zY2hlZHVsZUxvY2F0
aW9uQ2hhbmdlKGFjdGl2ZURvY3VtZW50LT5zZWN1cml0eU9yaWdpbigpLCBjb21wbGV0ZWRVUkws
IGZpcnN0RnJhbWUtPmxvYWRlcigpLm91dGdvaW5nUmVmZXJyZXIoKSwKKyAgICAgICAgdGFyZ2V0
RnJhbWUtPm5hdmlnYXRpb25TY2hlZHVsZXIoKS5zY2hlZHVsZUxvY2F0aW9uQ2hhbmdlKGFjdGl2
ZURvY3VtZW50LCBhY3RpdmVEb2N1bWVudC0+c2VjdXJpdHlPcmlnaW4oKSwgY29tcGxldGVkVVJM
LCBmaXJzdEZyYW1lLT5sb2FkZXIoKS5vdXRnb2luZ1JlZmVycmVyKCksCiAgICAgICAgICAgICBs
b2NrSGlzdG9yeSwgTG9ja0JhY2tGb3J3YXJkTGlzdDo6Tm8pOwogICAgICAgICByZXR1cm4gdGFy
Z2V0RnJhbWUtPmRvY3VtZW50KCktPmRvbVdpbmRvdygpOwogICAgIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9EcmFnQ29udHJvbGxlci5jcHAKaW5kZXggMjgzZDIzYS4uMWUzZjQzYyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9EcmFnQ29udHJvbGxlci5jcHAKQEAgLTIxNiw2ICsyMTYsMTEgQEAgRHJhZ09wZXJh
dGlvbiBEcmFnQ29udHJvbGxlcjo6ZHJhZ1VwZGF0ZWQoRHJhZ0RhdGEmIGRyYWdEYXRhKQogYm9v
bCBEcmFnQ29udHJvbGxlcjo6cGVyZm9ybURyYWdPcGVyYXRpb24oRHJhZ0RhdGEmIGRyYWdEYXRh
KQogewogICAgIG1fZG9jdW1lbnRVbmRlck1vdXNlID0gbV9wYWdlLm1haW5GcmFtZSgpLmRvY3Vt
ZW50QXRQb2ludChkcmFnRGF0YS5jbGllbnRQb3NpdGlvbigpKTsKKworICAgIFNob3VsZE9wZW5F
eHRlcm5hbFVSTHNQb2xpY3kgc2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSA9IFNob3VsZE9w
ZW5FeHRlcm5hbFVSTHNQb2xpY3k6OlNob3VsZE5vdEFsbG93OworICAgIGlmIChtX2RvY3VtZW50
VW5kZXJNb3VzZSkKKyAgICAgICAgc2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSA9IG1fZG9j
dW1lbnRVbmRlck1vdXNlLT5zaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5VG9Qcm9wYWdhdGUo
KTsKKwogICAgIGlmICgobV9kcmFnRGVzdGluYXRpb25BY3Rpb24gJiBEcmFnRGVzdGluYXRpb25B
Y3Rpb25ESFRNTCkgJiYgbV9kb2N1bWVudElzSGFuZGxpbmdEcmFnKSB7CiAgICAgICAgIG1fY2xp
ZW50LndpbGxQZXJmb3JtRHJhZ0Rlc3RpbmF0aW9uQWN0aW9uKERyYWdEZXN0aW5hdGlvbkFjdGlv
bkRIVE1MLCBkcmFnRGF0YSk7CiAgICAgICAgIFJlZjxNYWluRnJhbWU+IG1haW5GcmFtZShtX3Bh
Z2UubWFpbkZyYW1lKCkpOwpAQCAtMjQ1LDcgKzI1MCw3IEBAIGJvb2wgRHJhZ0NvbnRyb2xsZXI6
OnBlcmZvcm1EcmFnT3BlcmF0aW9uKERyYWdEYXRhJiBkcmFnRGF0YSkKICAgICAgICAgcmV0dXJu
IGZhbHNlOwogCiAgICAgbV9jbGllbnQud2lsbFBlcmZvcm1EcmFnRGVzdGluYXRpb25BY3Rpb24o
RHJhZ0Rlc3RpbmF0aW9uQWN0aW9uTG9hZCwgZHJhZ0RhdGEpOwotICAgIG1fcGFnZS5tYWluRnJh
bWUoKS5sb2FkZXIoKS5sb2FkKEZyYW1lTG9hZFJlcXVlc3QoJm1fcGFnZS5tYWluRnJhbWUoKSwg
UmVzb3VyY2VSZXF1ZXN0KGRyYWdEYXRhLmFzVVJMKCkpKSk7CisgICAgbV9wYWdlLm1haW5GcmFt
ZSgpLmxvYWRlcigpLmxvYWQoRnJhbWVMb2FkUmVxdWVzdCgmbV9wYWdlLm1haW5GcmFtZSgpLCBS
ZXNvdXJjZVJlcXVlc3QoZHJhZ0RhdGEuYXNVUkwoKSksIHNob3VsZE9wZW5FeHRlcm5hbFVSTHNQ
b2xpY3kpKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9Mb2NhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0xvY2F0aW9uLmNwcApp
bmRleCA0NGY1MjIwLi40MzE3ZDgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0xv
Y2F0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0xvY2F0aW9uLmNwcApAQCAtMjU4
LDcgKzI1OCw3IEBAIHZvaWQgTG9jYXRpb246OnJlbG9hZChET01XaW5kb3cmIGFjdGl2ZVdpbmRv
dykKICAgICB9CiAgICAgaWYgKHByb3RvY29sSXNKYXZhU2NyaXB0KG1fZnJhbWUtPmRvY3VtZW50
KCktPnVybCgpKSkKICAgICAgICAgcmV0dXJuOwotICAgIG1fZnJhbWUtPm5hdmlnYXRpb25TY2hl
ZHVsZXIoKS5zY2hlZHVsZVJlZnJlc2goKTsKKyAgICBtX2ZyYW1lLT5uYXZpZ2F0aW9uU2NoZWR1
bGVyKCkuc2NoZWR1bGVSZWZyZXNoKGFjdGl2ZVdpbmRvdy5kb2N1bWVudCgpKTsKIH0KIAogdm9p
ZCBMb2NhdGlvbjo6c2V0TG9jYXRpb24oY29uc3QgU3RyaW5nJiB1cmwsIERPTVdpbmRvdyYgYWN0
aXZlV2luZG93LCBET01XaW5kb3cmIGZpcnN0V2luZG93KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVwbGF5L1JlcGxheUlucHV0RGlzcGF0Y2hNZXRob2RzLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3JlcGxheS9SZXBsYXlJbnB1dERpc3BhdGNoTWV0aG9kcy5jcHAKaW5kZXggNjQ1NGE0OC4u
ODQ3NTJhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVwbGF5L1JlcGxheUlucHV0RGlz
cGF0Y2hNZXRob2RzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZXBsYXkvUmVwbGF5SW5wdXRE
aXNwYXRjaE1ldGhvZHMuY3BwCkBAIC01MCw3ICs1MCw4IEBAIHZvaWQgRW5kU2VnbWVudFNlbnRp
bmVsOjpkaXNwYXRjaChSZXBsYXlDb250cm9sbGVyJikKIC8vIE5hdmlnYXRpb24gaW5wdXRzLgog
dm9pZCBJbml0aWFsTmF2aWdhdGlvbjo6ZGlzcGF0Y2goUmVwbGF5Q29udHJvbGxlciYgY29udHJv
bGxlcikKIHsKLSAgICBjb250cm9sbGVyLnBhZ2UoKS5tYWluRnJhbWUoKS5uYXZpZ2F0aW9uU2No
ZWR1bGVyKCkuc2NoZWR1bGVMb2NhdGlvbkNoYW5nZShtX3NlY3VyaXR5T3JpZ2luLmdldCgpLCBt
X3VybCwgbV9yZWZlcnJlcik7CisgICAgRnJhbWUmIGZyYW1lID0gY29udHJvbGxlci5wYWdlKCku
bWFpbkZyYW1lKCk7CisgICAgZnJhbWUubmF2aWdhdGlvblNjaGVkdWxlcigpLnNjaGVkdWxlTG9j
YXRpb25DaGFuZ2UoZnJhbWUuZG9jdW1lbnQoKSwgbV9zZWN1cml0eU9yaWdpbi5nZXQoKSwgbV91
cmwsIG1fcmVmZXJyZXIpOwogfQogCiB2b2lkIEhhbmRsZUtleVByZXNzOjpkaXNwYXRjaChSZXBs
YXlDb250cm9sbGVyJiBjb250cm9sbGVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0FFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBRWxlbWVudC5jcHAKaW5k
ZXggMWEyODQ2Yi4uZTVjZTUxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FF
bGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQUVsZW1lbnQuY3BwCkBAIC0x
NDUsNyArMTQ1LDcgQEAgdm9pZCBTVkdBRWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVu
dCogZXZlbnQpCiAgICAgICAgICAgICBGcmFtZSogZnJhbWUgPSBkb2N1bWVudCgpLmZyYW1lKCk7
CiAgICAgICAgICAgICBpZiAoIWZyYW1lKQogICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAg
ICAgICAgIGZyYW1lLT5sb2FkZXIoKS51cmxTZWxlY3RlZChkb2N1bWVudCgpLmNvbXBsZXRlVVJM
KHVybCksIHRhcmdldCwgZXZlbnQsIExvY2tIaXN0b3J5OjpObywgTG9ja0JhY2tGb3J3YXJkTGlz
dDo6Tm8sIE1heWJlU2VuZFJlZmVycmVyKTsKKyAgICAgICAgICAgIGZyYW1lLT5sb2FkZXIoKS51
cmxTZWxlY3RlZChkb2N1bWVudCgpLmNvbXBsZXRlVVJMKHVybCksIHRhcmdldCwgZXZlbnQsIExv
Y2tIaXN0b3J5OjpObywgTG9ja0JhY2tGb3J3YXJkTGlzdDo6Tm8sIE1heWJlU2VuZFJlZmVycmVy
LCBkb2N1bWVudCgpLnNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3lUb1Byb3BhZ2F0ZSgpKTsK
ICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvaW9zL1dlYlZpZXcvV2ViUERGVmlld1BsYWNlaG9sZGVyLm1tIGIvU291cmNlL1dl
YktpdC9pb3MvV2ViVmlldy9XZWJQREZWaWV3UGxhY2Vob2xkZXIubW0KaW5kZXggYTgwNTcxMC4u
M2RhNDQyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9pb3MvV2ViVmlldy9XZWJQREZWaWV3
UGxhY2Vob2xkZXIubW0KKysrIGIvU291cmNlL1dlYktpdC9pb3MvV2ViVmlldy9XZWJQREZWaWV3
UGxhY2Vob2xkZXIubW0KQEAgLTQ3NSw3ICs0NzUsNyBAQCBzdGF0aWMgY29uc3QgZmxvYXQgUEFH
RV9IRUlHSFRfSU5TRVQgPSA0LjBmICogMi4wZjsKIAogICAgIC8vIENhbGwgdG8gdGhlIGZyYW1l
IGxvYWRlciBiZWNhdXNlIHRoaXMgaXMgd2hlcmUgb3VyIHNlY3VyaXR5IGNoZWNrcyBhcmUgbWFk
ZS4KICAgICBGcmFtZSogZnJhbWUgPSBjb3JlKFtfZGF0YVNvdXJjZSB3ZWJGcmFtZV0pOwotICAg
IGZyYW1lLT5sb2FkZXIoKS5sb2FkRnJhbWVSZXF1ZXN0KEZyYW1lTG9hZFJlcXVlc3QoZnJhbWUt
PmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCksIFJlc291cmNlUmVxdWVzdChVUkwpLCBMb2Nr
SGlzdG9yeTo6Tm8sIExvY2tCYWNrRm9yd2FyZExpc3Q6Ok5vLCBNYXliZVNlbmRSZWZlcnJlciwg
QWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJMOjpZZXMsIE5ld0ZyYW1lT3BlbmVyUG9saWN5OjpB
bGxvdyksIGV2ZW50LmdldCgpLCBudWxscHRyKTsKKyAgICBmcmFtZS0+bG9hZGVyKCkubG9hZEZy
YW1lUmVxdWVzdChGcmFtZUxvYWRSZXF1ZXN0KGZyYW1lLT5kb2N1bWVudCgpLT5zZWN1cml0eU9y
aWdpbigpLCBSZXNvdXJjZVJlcXVlc3QoVVJMKSwgTG9ja0hpc3Rvcnk6Ok5vLCBMb2NrQmFja0Zv
cndhcmRMaXN0OjpObywgTWF5YmVTZW5kUmVmZXJyZXIsIEFsbG93TmF2aWdhdGlvblRvSW52YWxp
ZFVSTDo6WWVzLCBOZXdGcmFtZU9wZW5lclBvbGljeTo6QWxsb3csIFNob3VsZE9wZW5FeHRlcm5h
bFVSTHNQb2xpY3k6OlNob3VsZE5vdEFsbG93KSwgZXZlbnQuZ2V0KCksIG51bGxwdHIpOwogfQog
CiBAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggMDMxNzMwMC4uZmU0Y2YyOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDE1LTA2LTAxICBCcmFkeSBFaWRzb24gIDxiZWlkc29u
QGFwcGxlLmNvbT4KKworICAgICAgICBXZWJLaXQgcG9saWN5IGRlbGVnYXRlIHNob3VsZCBzdWdn
ZXN0IGlmIGEgbmF2aWdhdGlvbiBzaG91bGQgYmUgYWxsb3dlZCB0byBvcGVuIFVSTHMgZXh0ZXJu
YWxseS4KKyAgICAgICAgcmRhcjovL3Byb2JsZW0vMjEwMjUzMDEgYW5kIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDUyODAKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFBsdWdpbnMvV2ViUGx1Z2luQ29udHJvbGxlci5t
bToKKyAgICAgICAgKC1bV2ViUGx1Z2luQ29udHJvbGxlciB3ZWJQbHVnSW5Db250YWluZXJMb2Fk
UmVxdWVzdDppbkZyYW1lOl0pOgorICAgICAgICAKKyAgICAgICAgKiBXZWJWaWV3L1dlYkZyYW1l
Lm1tOgorICAgICAgICAoLVtXZWJGcmFtZSBsb2FkUmVxdWVzdDpdKToKKyAgICAgICAgKC1bV2Vi
RnJhbWUgX2xvYWREYXRhOk1JTUVUeXBlOnRleHRFbmNvZGluZ05hbWU6YmFzZVVSTDp1bnJlYWNo
YWJsZVVSTDpdKToKKyAgICAgICAgCisgICAgICAgICogV2ViVmlldy9XZWJQREZWaWV3Lm1tOgor
ICAgICAgICAoLVtXZWJQREZWaWV3IFBERlZpZXdXaWxsQ2xpY2tPbkxpbms6d2l0aFVSTDpdKToK
KwogMjAxNS0wNS0yOSAgQW5kZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUuY29tPgogCiAg
ICAgICAgIE1ha2UgdGhlIGhlYWRlciByZXBsYWNlIHJ1bGUgbW9yZSByZXN0cmljdGl2ZSBhbmQg
Z2V0IHJpZCBvZiBhIHNwZWNpYWwgY2FzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMv
UGx1Z2lucy9XZWJQbHVnaW5Db250cm9sbGVyLm1tIGIvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lu
cy9XZWJQbHVnaW5Db250cm9sbGVyLm1tCmluZGV4IDhkYjAyZjcuLjc3ZTlhOGYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvV2ViUGx1Z2luQ29udHJvbGxlci5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL1dlYlBsdWdpbkNvbnRyb2xsZXIubW0KQEAgLTUx
Niw3ICs1MTYsNyBAQCBzdGF0aWMgdm9pZCBjYW5jZWxPdXRzdGFuZGluZ0NoZWNrKGNvbnN0IHZv
aWQgKml0ZW0sIHZvaWQgKmNvbnRleHQpCiAgICAgICAgICAgICBMT0dfRVJST1IoImNvdWxkIG5v
dCBsb2FkIFVSTCAlQCIsIFtyZXF1ZXN0IFVSTF0pOwogICAgICAgICAgICAgcmV0dXJuOwogICAg
ICAgICB9Ci0gICAgICAgIEZyYW1lTG9hZFJlcXVlc3QgZnJhbWVSZXF1ZXN0KGNvcmUoZnJhbWUp
LCByZXF1ZXN0KTsKKyAgICAgICAgRnJhbWVMb2FkUmVxdWVzdCBmcmFtZVJlcXVlc3QoY29yZShm
cmFtZSksIHJlcXVlc3QsIFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3k6OlNob3VsZE5vdEFs
bG93KTsKICAgICAgICAgZnJhbWVSZXF1ZXN0LnNldEZyYW1lTmFtZSh0YXJnZXQpOwogICAgICAg
ICBmcmFtZVJlcXVlc3Quc2V0U2hvdWxkQ2hlY2tOZXdXaW5kb3dQb2xpY3kodHJ1ZSk7CiAgICAg
ICAgIGNvcmUoZnJhbWUpLT5sb2FkZXIoKS5sb2FkKGZyYW1lUmVxdWVzdCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lLm1tIGIvU291cmNlL1dlYktpdC9t
YWMvV2ViVmlldy9XZWJGcmFtZS5tbQppbmRleCA2MjlmYThlLi43OTlhNGI2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lLm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQvbWFjL1dlYlZpZXcvV2ViRnJhbWUubW0KQEAgLTI0NzksNyArMjQ3OSw3IEBAIHN0YXRpYyBi
b29sIG5lZWRzTWljcm9zb2Z0TWVzc2VuZ2VyRE9NRG9jdW1lbnRXb3JrYXJvdW5kKCkKICAgICBp
ZiAoIXJlc291cmNlUmVxdWVzdC51cmwoKS5pc1ZhbGlkKCkgJiYgIXJlc291cmNlUmVxdWVzdC51
cmwoKS5pc0VtcHR5KCkpCiAgICAgICAgIHJlc291cmNlUmVxdWVzdC5zZXRVUkwoW05TVVJMIFVS
TFdpdGhTdHJpbmc6W0AiZmlsZToiIHN0cmluZ0J5QXBwZW5kaW5nU3RyaW5nOltbcmVxdWVzdCBV
UkxdIGFic29sdXRlU3RyaW5nXV1dKTsKIAotICAgIGNvcmVGcmFtZS0+bG9hZGVyKCkubG9hZChG
cmFtZUxvYWRSZXF1ZXN0KGNvcmVGcmFtZSwgcmVzb3VyY2VSZXF1ZXN0KSk7CisgICAgY29yZUZy
YW1lLT5sb2FkZXIoKS5sb2FkKEZyYW1lTG9hZFJlcXVlc3QoY29yZUZyYW1lLCByZXNvdXJjZVJl
cXVlc3QsIFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3k6OlNob3VsZE5vdEFsbG93KSk7CiB9
CiAKIHN0YXRpYyBOU1VSTCAqY3JlYXRlVW5pcXVlV2ViRGF0YVVSTCgpCkBAIC0yNTExLDcgKzI1
MTEsNyBAQCBzdGF0aWMgTlNVUkwgKmNyZWF0ZVVuaXF1ZVdlYkRhdGFVUkwoKQogICAgIGlmIChz
aG91bGRVc2VRdWlja0xvb2tGb3JNSU1FVHlwZShNSU1FVHlwZSkpIHsKICAgICAgICAgTlNVUkwg
KnF1aWNrTG9va1VSTCA9IHJlc3BvbnNlVVJMID8gcmVzcG9uc2VVUkwgOiBiYXNlVVJMOwogICAg
ICAgICBpZiAoYXV0byByZXF1ZXN0ID0gcmVnaXN0ZXJRTFByZXZpZXdDb252ZXJ0ZXJJZk5lZWRl
ZChxdWlja0xvb2tVUkwsIE1JTUVUeXBlLCBkYXRhKSkgewotICAgICAgICAgICAgX3ByaXZhdGUt
PmNvcmVGcmFtZS0+bG9hZGVyKCkubG9hZChGcmFtZUxvYWRSZXF1ZXN0KF9wcml2YXRlLT5jb3Jl
RnJhbWUsIHJlcXVlc3QuZ2V0KCkpKTsKKyAgICAgICAgICAgIF9wcml2YXRlLT5jb3JlRnJhbWUt
PmxvYWRlcigpLmxvYWQoRnJhbWVMb2FkUmVxdWVzdChfcHJpdmF0ZS0+Y29yZUZyYW1lLCByZXF1
ZXN0LmdldCgpLCBTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5OjpTaG91bGROb3RBbGxvdykp
OwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgfQpAQCAtMjUyNyw3ICsyNTI3
LDcgQEAgc3RhdGljIE5TVVJMICpjcmVhdGVVbmlxdWVXZWJEYXRhVVJMKCkKICAgICBSZXNvdXJj
ZVJlc3BvbnNlIHJlc3BvbnNlKHJlc3BvbnNlVVJMLCBNSU1FVHlwZSwgW2RhdGEgbGVuZ3RoXSwg
ZW5jb2RpbmdOYW1lKTsKICAgICBTdWJzdGl0dXRlRGF0YSBzdWJzdGl0dXRlRGF0YShXZWJDb3Jl
OjpTaGFyZWRCdWZmZXI6OndyYXBOU0RhdGEoZGF0YSksIFt1bnJlYWNoYWJsZVVSTCBhYnNvbHV0
ZVVSTF0sIHJlc3BvbnNlLCBTdWJzdGl0dXRlRGF0YTo6U2Vzc2lvbkhpc3RvcnlWaXNpYmlsaXR5
OjpIaWRkZW4pOwogCi0gICAgX3ByaXZhdGUtPmNvcmVGcmFtZS0+bG9hZGVyKCkubG9hZChGcmFt
ZUxvYWRSZXF1ZXN0KF9wcml2YXRlLT5jb3JlRnJhbWUsIHJlcXVlc3QsIHN1YnN0aXR1dGVEYXRh
KSk7CisgICAgX3ByaXZhdGUtPmNvcmVGcmFtZS0+bG9hZGVyKCkubG9hZChGcmFtZUxvYWRSZXF1
ZXN0KF9wcml2YXRlLT5jb3JlRnJhbWUsIHJlcXVlc3QsIFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQ
b2xpY3k6OlNob3VsZE5vdEFsbG93LCBzdWJzdGl0dXRlRGF0YSkpOwogfQogCiAtICh2b2lkKWxv
YWREYXRhOihOU0RhdGEgKilkYXRhIE1JTUVUeXBlOihOU1N0cmluZyAqKU1JTUVUeXBlIHRleHRF
bmNvZGluZ05hbWU6KE5TU3RyaW5nICopZW5jb2RpbmdOYW1lIGJhc2VVUkw6KE5TVVJMICopYmFz
ZVVSTApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJQREZWaWV3Lm1t
IGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJQREZWaWV3Lm1tCmluZGV4IDVlN2JiMTQu
LjFlZjFhZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUERGVmll
dy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlBERlZpZXcubW0KQEAgLTEw
MzcsNyArMTAzNyw3IEBAIHN0YXRpYyBCT09MIGlzRnJhbWVJblJhbmdlKFdlYkZyYW1lICpmcmFt
ZSwgRE9NUmFuZ2UgKnJhbmdlKQogCiAgICAgLy8gQ2FsbCB0byB0aGUgZnJhbWUgbG9hZGVyIGJl
Y2F1c2UgdGhpcyBpcyB3aGVyZSBvdXIgc2VjdXJpdHkgY2hlY2tzIGFyZSBtYWRlLgogICAgIEZy
YW1lKiBmcmFtZSA9IGNvcmUoW2RhdGFTb3VyY2Ugd2ViRnJhbWVdKTsKLSAgICBmcmFtZS0+bG9h
ZGVyKCkubG9hZEZyYW1lUmVxdWVzdChGcmFtZUxvYWRSZXF1ZXN0KGZyYW1lLT5kb2N1bWVudCgp
LT5zZWN1cml0eU9yaWdpbigpLCBSZXNvdXJjZVJlcXVlc3QoVVJMKSwgTG9ja0hpc3Rvcnk6Ok5v
LCBMb2NrQmFja0ZvcndhcmRMaXN0OjpObywgTWF5YmVTZW5kUmVmZXJyZXIsIEFsbG93TmF2aWdh
dGlvblRvSW52YWxpZFVSTDo6WWVzLCBOZXdGcmFtZU9wZW5lclBvbGljeTo6QWxsb3cpLCBldmVu
dC5nZXQoKSwgbnVsbHB0cik7CisgICAgZnJhbWUtPmxvYWRlcigpLmxvYWRGcmFtZVJlcXVlc3Qo
RnJhbWVMb2FkUmVxdWVzdChmcmFtZS0+ZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKSwgUmVz
b3VyY2VSZXF1ZXN0KFVSTCksIExvY2tIaXN0b3J5OjpObywgTG9ja0JhY2tGb3J3YXJkTGlzdDo6
Tm8sIE1heWJlU2VuZFJlZmVycmVyLCBBbGxvd05hdmlnYXRpb25Ub0ludmFsaWRVUkw6Olllcywg
TmV3RnJhbWVPcGVuZXJQb2xpY3k6OkFsbG93LCBTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5
OjpTaG91bGROb3RBbGxvdyksIGV2ZW50LmdldCgpLCBudWxscHRyKTsKIH0KIAogLSAodm9pZClQ
REZWaWV3T3BlblBERkluTmF0aXZlQXBwbGljYXRpb246KFBERlZpZXcgKilzZW5kZXIKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvd2luL0No
YW5nZUxvZwppbmRleCA0MmE1YjU0Li42Mjk4ODA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L3dpbi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTMgQEAKKzIwMTUtMDYtMDEgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgor
CisgICAgICAgIFdlYktpdCBwb2xpY3kgZGVsZWdhdGUgc2hvdWxkIHN1Z2dlc3QgaWYgYSBuYXZp
Z2F0aW9uIHNob3VsZCBiZSBhbGxvd2VkIHRvIG9wZW4gVVJMcyBleHRlcm5hbGx5LgorICAgICAg
ICByZGFyOi8vcHJvYmxlbS8yMTAyNTMwMSBhbmQgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE0NTI4MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViQ29udGV4dE1lbnVDbGllbnQuY3BwOgor
ICAgICAgICAoV2ViQ29udGV4dE1lbnVDbGllbnQ6OnNlYXJjaFdpdGhHb29nbGUpOgorCiAyMDE1
LTA1LTI2ICBKb24gSG9uZXljdXR0ICA8amhvbmV5Y3V0dEBhcHBsZS5jb20+CiAKICAgICAgICAg
W2lPU10gV2hlbiB2aWV3aW5nIGFuIE1KUEVHIHN0cmVhbSBhcyB0aGUgbWFpbiByZXNvdXJjZSwg
b25seSB0aGUgZmlyc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL1BsdWdpbnMvUGx1
Z2luVmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0L3dpbi9QbHVnaW5zL1BsdWdpblZpZXcuY3BwCmlu
ZGV4IGJmYmVmZTYuLmY4NTc2YTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL1BsdWdp
bnMvUGx1Z2luVmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdC93aW4vUGx1Z2lucy9QbHVnaW5W
aWV3LmNwcApAQCAtMjQ5LDcgKzI0OSw3IEBAIGJvb2wgUGx1Z2luVmlldzo6c3RhcnQoKQogICAg
IG1faXNTdGFydGVkID0gdHJ1ZTsKIAogICAgIGlmICghbV91cmwuaXNFbXB0eSgpICYmICFtX2xv
YWRNYW51YWxseSkgewotICAgICAgICBGcmFtZUxvYWRSZXF1ZXN0IGZyYW1lTG9hZFJlcXVlc3Qo
bV9wYXJlbnRGcmFtZS0+ZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKSwgTG9ja0hpc3Rvcnk6
Ok5vLCBMb2NrQmFja0ZvcndhcmRMaXN0OjpObywgU2hvdWxkU2VuZFJlZmVycmVyOjpNYXliZVNl
bmRSZWZlcnJlciwgQWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJMOjpZZXMsIE5ld0ZyYW1lT3Bl
bmVyUG9saWN5OjpBbGxvdyk7CisgICAgICAgIEZyYW1lTG9hZFJlcXVlc3QgZnJhbWVMb2FkUmVx
dWVzdChtX3BhcmVudEZyYW1lLT5kb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpLCBMb2NrSGlz
dG9yeTo6Tm8sIExvY2tCYWNrRm9yd2FyZExpc3Q6Ok5vLCBTaG91bGRTZW5kUmVmZXJyZXI6Ok1h
eWJlU2VuZFJlZmVycmVyLCBBbGxvd05hdmlnYXRpb25Ub0ludmFsaWRVUkw6OlllcywgTmV3RnJh
bWVPcGVuZXJQb2xpY3k6OkFsbG93LCBTaG91bGRPcGVuRXh0ZXJuYWxVUkxzOjpTaG91bGROb3RB
bGxvdyk7CiAgICAgICAgIGZyYW1lTG9hZFJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCkuc2V0SFRU
UE1ldGhvZCgiR0VUIik7CiAgICAgICAgIGZyYW1lTG9hZFJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0
KCkuc2V0VVJMKG1fdXJsKTsKICAgICAgICAgbG9hZChmcmFtZUxvYWRSZXF1ZXN0LCBmYWxzZSwg
MCk7CkBAIC00MTMsNyArNDEzLDcgQEAgdm9pZCBQbHVnaW5WaWV3OjpwZXJmb3JtUmVxdWVzdChQ
bHVnaW5SZXF1ZXN0KiByZXF1ZXN0KQogICAgICAgICAgICAgLy8gUGx1Z2luVmlldywgc28gd2Ug
cHJvdGVjdCBpdC4gPHJkYXI6Ly9wcm9ibGVtLzY5OTEyNTE+CiAgICAgICAgICAgICBSZWZQdHI8
UGx1Z2luVmlldz4gcHJvdGVjdCh0aGlzKTsKIAotICAgICAgICAgICAgRnJhbWVMb2FkUmVxdWVz
dCBmcmFtZVJlcXVlc3QobV9wYXJlbnRGcmFtZS5nZXQoKSwgcmVxdWVzdC0+ZnJhbWVMb2FkUmVx
dWVzdCgpLnJlc291cmNlUmVxdWVzdCgpKTsKKyAgICAgICAgICAgIEZyYW1lTG9hZFJlcXVlc3Qg
ZnJhbWVSZXF1ZXN0KG1fcGFyZW50RnJhbWUuZ2V0KCksIHJlcXVlc3QtPmZyYW1lTG9hZFJlcXVl
c3QoKS5yZXNvdXJjZVJlcXVlc3QoKSwgU2hvdWxkT3BlbkV4dGVybmFsVVJMczo6U2hvdWxkTm90
QWxsb3cpOwogICAgICAgICAgICAgZnJhbWVSZXF1ZXN0LnNldEZyYW1lTmFtZSh0YXJnZXRGcmFt
ZU5hbWUpOwogICAgICAgICAgICAgZnJhbWVSZXF1ZXN0LnNldFNob3VsZENoZWNrTmV3V2luZG93
UG9saWN5KHRydWUpOwogICAgICAgICAgICAgbV9wYXJlbnRGcmFtZS0+bG9hZGVyKCkubG9hZChm
cmFtZVJlcXVlc3QpOwpAQCAtNTIzLDcgKzUyMyw3IEBAIHN0YXRpYyBVUkwgbWFrZVVSTChjb25z
dCBVUkwmIGJhc2VVUkwsIGNvbnN0IGNoYXIqIHJlbGF0aXZlVVJMU3RyaW5nKQogCiBOUEVycm9y
IFBsdWdpblZpZXc6OmdldFVSTE5vdGlmeShjb25zdCBjaGFyKiB1cmwsIGNvbnN0IGNoYXIqIHRh
cmdldCwgdm9pZCogbm90aWZ5RGF0YSkKIHsKLSAgICBGcmFtZUxvYWRSZXF1ZXN0IGZyYW1lTG9h
ZFJlcXVlc3QobV9wYXJlbnRGcmFtZS0+ZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKSwgTG9j
a0hpc3Rvcnk6Ok5vLCBMb2NrQmFja0ZvcndhcmRMaXN0OjpObywgU2hvdWxkU2VuZFJlZmVycmVy
OjpNYXliZVNlbmRSZWZlcnJlciwgQWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJMOjpZZXMsIE5l
d0ZyYW1lT3BlbmVyUG9saWN5OjpBbGxvdyk7CisgICAgRnJhbWVMb2FkUmVxdWVzdCBmcmFtZUxv
YWRSZXF1ZXN0KG1fcGFyZW50RnJhbWUtPmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCksIExv
Y2tIaXN0b3J5OjpObywgTG9ja0JhY2tGb3J3YXJkTGlzdDo6Tm8sIFNob3VsZFNlbmRSZWZlcnJl
cjo6TWF5YmVTZW5kUmVmZXJyZXIsIEFsbG93TmF2aWdhdGlvblRvSW52YWxpZFVSTDo6WWVzLCBO
ZXdGcmFtZU9wZW5lclBvbGljeTo6QWxsb3csIFNob3VsZE9wZW5FeHRlcm5hbFVSTHM6OlNob3Vs
ZE5vdEFsbG93KTsKIAogICAgIGZyYW1lTG9hZFJlcXVlc3Quc2V0RnJhbWVOYW1lKHRhcmdldCk7
CiAgICAgZnJhbWVMb2FkUmVxdWVzdC5yZXNvdXJjZVJlcXVlc3QoKS5zZXRIVFRQTWV0aG9kKCJH
RVQiKTsKQEAgLTUzNCw3ICs1MzQsNyBAQCBOUEVycm9yIFBsdWdpblZpZXc6OmdldFVSTE5vdGlm
eShjb25zdCBjaGFyKiB1cmwsIGNvbnN0IGNoYXIqIHRhcmdldCwgdm9pZCogbm90aQogCiBOUEVy
cm9yIFBsdWdpblZpZXc6OmdldFVSTChjb25zdCBjaGFyKiB1cmwsIGNvbnN0IGNoYXIqIHRhcmdl
dCkKIHsKLSAgICBGcmFtZUxvYWRSZXF1ZXN0IGZyYW1lTG9hZFJlcXVlc3QobV9wYXJlbnRGcmFt
ZS0+ZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKSwgTG9ja0hpc3Rvcnk6Ok5vLCBMb2NrQmFj
a0ZvcndhcmRMaXN0OjpObywgU2hvdWxkU2VuZFJlZmVycmVyOjpNYXliZVNlbmRSZWZlcnJlciwg
QWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJMOjpZZXMsIE5ld0ZyYW1lT3BlbmVyUG9saWN5OjpB
bGxvdyk7CisgICAgRnJhbWVMb2FkUmVxdWVzdCBmcmFtZUxvYWRSZXF1ZXN0KG1fcGFyZW50RnJh
bWUtPmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCksIExvY2tIaXN0b3J5OjpObywgTG9ja0Jh
Y2tGb3J3YXJkTGlzdDo6Tm8sIFNob3VsZFNlbmRSZWZlcnJlcjo6TWF5YmVTZW5kUmVmZXJyZXIs
IEFsbG93TmF2aWdhdGlvblRvSW52YWxpZFVSTDo6WWVzLCBOZXdGcmFtZU9wZW5lclBvbGljeTo6
QWxsb3csIFNob3VsZE9wZW5FeHRlcm5hbFVSTHM6OlNob3VsZE5vdEFsbG93KTsKIAogICAgIGZy
YW1lTG9hZFJlcXVlc3Quc2V0RnJhbWVOYW1lKHRhcmdldCk7CiAgICAgZnJhbWVMb2FkUmVxdWVz
dC5yZXNvdXJjZVJlcXVlc3QoKS5zZXRIVFRQTWV0aG9kKCJHRVQiKTsKQEAgLTEwMzYsNyArMTAz
Niw3IEBAIE5QRXJyb3IgUGx1Z2luVmlldzo6aGFuZGxlUG9zdChjb25zdCBjaGFyKiB1cmwsIGNv
bnN0IGNoYXIqIHRhcmdldCwgdWludDMyX3QgbGVuCiAgICAgaWYgKCF1cmwgfHwgIWxlbiB8fCAh
YnVmKQogICAgICAgICByZXR1cm4gTlBFUlJfSU5WQUxJRF9QQVJBTTsKIAotICAgIEZyYW1lTG9h
ZFJlcXVlc3QgZnJhbWVMb2FkUmVxdWVzdChtX3BhcmVudEZyYW1lLT5kb2N1bWVudCgpLT5zZWN1
cml0eU9yaWdpbigpLCBMb2NrSGlzdG9yeTo6Tm8sIExvY2tCYWNrRm9yd2FyZExpc3Q6Ok5vLCBT
aG91bGRTZW5kUmVmZXJyZXI6Ok1heWJlU2VuZFJlZmVycmVyLCBBbGxvd05hdmlnYXRpb25Ub0lu
dmFsaWRVUkw6OlllcywgTmV3RnJhbWVPcGVuZXJQb2xpY3k6OkFsbG93KTsKKyAgICBGcmFtZUxv
YWRSZXF1ZXN0IGZyYW1lTG9hZFJlcXVlc3QobV9wYXJlbnRGcmFtZS0+ZG9jdW1lbnQoKS0+c2Vj
dXJpdHlPcmlnaW4oKSwgTG9ja0hpc3Rvcnk6Ok5vLCBMb2NrQmFja0ZvcndhcmRMaXN0OjpObywg
U2hvdWxkU2VuZFJlZmVycmVyOjpNYXliZVNlbmRSZWZlcnJlciwgQWxsb3dOYXZpZ2F0aW9uVG9J
bnZhbGlkVVJMOjpZZXMsIE5ld0ZyYW1lT3BlbmVyUG9saWN5OjpBbGxvdywgU2hvdWxkT3BlbkV4
dGVybmFsVVJMczo6U2hvdWxkTm90QWxsb3cpOwogCiAgICAgSFRUUEhlYWRlck1hcCBoZWFkZXJG
aWVsZHM7CiAgICAgVmVjdG9yPGNoYXI+IGJ1ZmZlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNvbnRleHRNZW51Q2xpZW50LmNwcCBiL1NvdXJjZS9X
ZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNvbnRleHRNZW51Q2xpZW50LmNwcAppbmRleCBi
MjYxYjk3Li4zNzRmZTZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3Vw
cG9ydC9XZWJDb250ZXh0TWVudUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC93aW4vV2Vi
Q29yZVN1cHBvcnQvV2ViQ29udGV4dE1lbnVDbGllbnQuY3BwCkBAIC0xMjAsNyArMTIwLDcgQEAg
dm9pZCBXZWJDb250ZXh0TWVudUNsaWVudDo6c2VhcmNoV2l0aEdvb2dsZShjb25zdCBGcmFtZSog
ZnJhbWUpCiAKICAgICBpZiAoUGFnZSogcGFnZSA9IGZyYW1lLT5wYWdlKCkpIHsKICAgICAgICAg
VXNlckdlc3R1cmVJbmRpY2F0b3IgaW5kaWNhdG9yKERlZmluaXRlbHlQcm9jZXNzaW5nVXNlckdl
c3R1cmUpOwotICAgICAgICBwYWdlLT5tYWluRnJhbWUoKS5sb2FkZXIoKS51cmxTZWxlY3RlZChV
UkwoUGFyc2VkVVJMU3RyaW5nLCB1cmwpLCBTdHJpbmcoKSwgMCwgTG9ja0hpc3Rvcnk6Ok5vLCBM
b2NrQmFja0ZvcndhcmRMaXN0OjpObywgTWF5YmVTZW5kUmVmZXJyZXIpOworICAgICAgICBwYWdl
LT5tYWluRnJhbWUoKS5sb2FkZXIoKS51cmxTZWxlY3RlZChVUkwoUGFyc2VkVVJMU3RyaW5nLCB1
cmwpLCBTdHJpbmcoKSwgMCwgTG9ja0hpc3Rvcnk6Ok5vLCBMb2NrQmFja0ZvcndhcmRMaXN0OjpO
bywgTWF5YmVTZW5kUmVmZXJyZXIsIFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3k6OlNob3Vs
ZE5vdEFsbG93KTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL1dl
YkZyYW1lLmNwcCBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYkZyYW1lLmNwcAppbmRleCBiNzU4ZDBk
Li45NGM3ZTllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJGcmFtZS5jcHAKKysr
IGIvU291cmNlL1dlYktpdC93aW4vV2ViRnJhbWUuY3BwCkBAIC01NDYsNyArNTQ2LDcgQEAgSFJF
U1VMVCBTVERNRVRIT0RDQUxMVFlQRSBXZWJGcmFtZTo6bG9hZFJlcXVlc3QoCiAgICAgaWYgKCFj
b3JlRnJhbWUpCiAgICAgICAgIHJldHVybiBFX0ZBSUw7CiAKLSAgICBjb3JlRnJhbWUtPmxvYWRl
cigpLmxvYWQoRnJhbWVMb2FkUmVxdWVzdChjb3JlRnJhbWUsIHJlcXVlc3RJbXBsLT5yZXNvdXJj
ZVJlcXVlc3QoKSkpOworICAgIGNvcmVGcmFtZS0+bG9hZGVyKCkubG9hZChGcmFtZUxvYWRSZXF1
ZXN0KGNvcmVGcmFtZSwgcmVxdWVzdEltcGwtPnJlc291cmNlUmVxdWVzdCgpLCBTaG91bGRPcGVu
RXh0ZXJuYWxVUkxzOjpTaG91bGROb3RBbGxvdykpOwogICAgIHJldHVybiBTX09LOwogfQogCkBA
IC01NzEsNyArNTcxLDcgQEAgdm9pZCBXZWJGcmFtZTo6bG9hZERhdGEoUGFzc1JlZlB0cjxXZWJD
b3JlOjpTaGFyZWRCdWZmZXI+IGRhdGEsIEJTVFIgbWltZVR5cGUsIEIKIAogICAgIC8vIFRoaXMg
bWV0aG9kIGlzIG9ubHkgY2FsbGVkIGZyb20gSVdlYkZyYW1lIG1ldGhvZHMsIHNvIGRvbid0IEFT
U0VSVCB0aGF0IHRoZSBGcmFtZSBwb2ludGVyIGlzbid0IG51bGwuCiAgICAgaWYgKEZyYW1lKiBj
b3JlRnJhbWUgPSBjb3JlKHRoaXMpKQotICAgICAgICBjb3JlRnJhbWUtPmxvYWRlcigpLmxvYWQo
RnJhbWVMb2FkUmVxdWVzdChjb3JlRnJhbWUsIHJlcXVlc3QsIHN1YnN0aXR1dGVEYXRhKSk7Cisg
ICAgICAgIGNvcmVGcmFtZS0+bG9hZGVyKCkubG9hZChGcmFtZUxvYWRSZXF1ZXN0KGNvcmVGcmFt
ZSwgcmVxdWVzdCwgU2hvdWxkT3BlbkV4dGVybmFsVVJMczo6U2hvdWxkTm90QWxsb3csIHN1YnN0
aXR1dGVEYXRhKSk7CiB9CiAKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDBhM2VkNTAuLmJmYzY2MGYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cKQEAgLTEsNSArMSwzNCBAQAogMjAxNS0wNi0wMSAgQnJhZHkgRWlkc29uICA8YmVpZHNv
bkBhcHBsZS5jb20+CiAKKyAgICAgICAgV2ViS2l0IHBvbGljeSBkZWxlZ2F0ZSBzaG91bGQgc3Vn
Z2VzdCBpZiBhIG5hdmlnYXRpb24gc2hvdWxkIGJlIGFsbG93ZWQgdG8gb3BlbiBVUkxzIGV4dGVy
bmFsbHkuCisgICAgICAgIHJkYXI6Ly9wcm9ibGVtLzIxMDI1MzAxIGFuZCBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ1MjgwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBs
dWdpbi5tbToKKyAgICAgICAgKFdlYktpdDo6UERGUGx1Z2luOjpjbGlja2VkTGluayk6CisgICAg
ICAgIAorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6UGx1Z2luVmlldzo6cGVyZm9ybUZyYW1lTG9hZFVSTFJlcXVlc3QpOgorICAg
ICAgICAoV2ViS2l0OjpQbHVnaW5WaWV3Ojpsb2FkVVJMKToKKyAgICAgICAgCisgICAgICAgICog
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDb250ZXh0TWVudUNsaWVudC5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OldlYkNvbnRleHRNZW51Q2xpZW50OjpzZWFyY2hXaXRoR29vZ2xlKToKKyAg
ICAgICAgCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRl
ckNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNw
YXRjaENyZWF0ZVBhZ2UpOgorICAgICAgICAKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViSW5zcGVjdG9yLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yOjpvcGVuSW5O
ZXdUYWIpOgorICAgICAgICAKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmxvYWRVUkxJbkZyYW1lKToKKyAgICAgICAg
KFdlYktpdDo6V2ViUGFnZTo6bG9hZFJlcXVlc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdl
Ojpsb2FkRGF0YUltcGwpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpuYXZpZ2F0ZVRvUERG
TGlua1dpdGhTaW11bGF0ZWRDbGljayk6CisKKzIwMTUtMDYtMDEgIEJyYWR5IEVpZHNvbiAgPGJl
aWRzb25AYXBwbGUuY29tPgorCiAgICAgICAgIEFkZCBXS1RSIHN1cHBvcnQgZm9yICJzaG91bGQg
b3BlbiBleHRlcm5hbCBVUkxzIi4KICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE0NTUwNQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5tbSBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
UGx1Z2lucy9QREYvUERGUGx1Z2luLm1tCmluZGV4IGM3YTVlN2UuLmRjY2M1NDEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luLm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luLm1tCkBA
IC0xNTkxLDcgKzE1OTEsNyBAQCB2b2lkIFBERlBsdWdpbjo6Y2xpY2tlZExpbmsoTlNVUkwgKnVy
bCkKICAgICBpZiAobV9sYXN0TW91c2VFdmVudC50eXBlKCkgIT0gV2ViRXZlbnQ6Ok5vVHlwZSkK
ICAgICAgICAgY29yZUV2ZW50ID0gTW91c2VFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5jbGlj
a0V2ZW50LCBmcmFtZS0+ZG9jdW1lbnQoKS0+ZGVmYXVsdFZpZXcoKSwgcGxhdGZvcm0obV9sYXN0
TW91c2VFdmVudCksIDAsIDApOwogCi0gICAgZnJhbWUtPmxvYWRlcigpLnVybFNlbGVjdGVkKGNv
cmVVUkwsIGVtcHR5U3RyaW5nKCksIGNvcmVFdmVudC5nZXQoKSwgTG9ja0hpc3Rvcnk6Ok5vLCBM
b2NrQmFja0ZvcndhcmRMaXN0OjpObywgTWF5YmVTZW5kUmVmZXJyZXIpOworICAgIGZyYW1lLT5s
b2FkZXIoKS51cmxTZWxlY3RlZChjb3JlVVJMLCBlbXB0eVN0cmluZygpLCBjb3JlRXZlbnQuZ2V0
KCksIExvY2tIaXN0b3J5OjpObywgTG9ja0JhY2tGb3J3YXJkTGlzdDo6Tm8sIE1heWJlU2VuZFJl
ZmVycmVyLCBTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5OjpTaG91bGRBbGxvdyk7CiB9CiAK
IHZvaWQgUERGUGx1Z2luOjpzZXRBY3RpdmVBbm5vdGF0aW9uKFBERkFubm90YXRpb24gKmFubm90
YXRpb24pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1
Z2luVmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmll
dy5jcHAKaW5kZXggOTQ5NDBmZi4uMzAxOGQ2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcApAQCAtMTE3Niw3ICsxMTc2LDcgQEAgdm9p
ZCBQbHVnaW5WaWV3OjpwZXJmb3JtRnJhbWVMb2FkVVJMUmVxdWVzdChVUkxSZXF1ZXN0KiByZXF1
ZXN0KQogICAgIEZyYW1lKiB0YXJnZXRGcmFtZSA9IGZyYW1lLT5sb2FkZXIoKS5maW5kRnJhbWVG
b3JOYXZpZ2F0aW9uKHJlcXVlc3QtPnRhcmdldCgpKTsKICAgICBpZiAoIXRhcmdldEZyYW1lKSB7
CiAgICAgICAgIC8vIFdlIGRpZCBub3QgZmluZCBhIHRhcmdldCBmcmFtZS4gQXNrIG91ciBmcmFt
ZSB0byBsb2FkIHRoZSBwYWdlLiBUaGlzIG1heSBvciBtYXkgbm90IGNyZWF0ZSBhIHBvcHVwIHdp
bmRvdy4KLSAgICAgICAgRnJhbWVMb2FkUmVxdWVzdCBmcmFtZVJlcXVlc3QoZnJhbWUsIHJlcXVl
c3QtPnJlcXVlc3QoKSk7CisgICAgICAgIEZyYW1lTG9hZFJlcXVlc3QgZnJhbWVSZXF1ZXN0KGZy
YW1lLCByZXF1ZXN0LT5yZXF1ZXN0KCksIFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3k6OlNo
b3VsZE5vdEFsbG93KTsKICAgICAgICAgZnJhbWVSZXF1ZXN0LnNldEZyYW1lTmFtZShyZXF1ZXN0
LT50YXJnZXQoKSk7CiAgICAgICAgIGZyYW1lUmVxdWVzdC5zZXRTaG91bGRDaGVja05ld1dpbmRv
d1BvbGljeSh0cnVlKTsKICAgICAgICAgZnJhbWUtPmxvYWRlcigpLmxvYWQoZnJhbWVSZXF1ZXN0
KTsKQEAgLTExODgsNyArMTE4OCw3IEBAIHZvaWQgUGx1Z2luVmlldzo6cGVyZm9ybUZyYW1lTG9h
ZFVSTFJlcXVlc3QoVVJMUmVxdWVzdCogcmVxdWVzdCkKICAgICB9CiAKICAgICAvLyBOb3cgYXNr
IHRoZSBmcmFtZSB0byBsb2FkIHRoZSByZXF1ZXN0LgotICAgIHRhcmdldEZyYW1lLT5sb2FkZXIo
KS5sb2FkKEZyYW1lTG9hZFJlcXVlc3QodGFyZ2V0RnJhbWUsIHJlcXVlc3QtPnJlcXVlc3QoKSkp
OworICAgIHRhcmdldEZyYW1lLT5sb2FkZXIoKS5sb2FkKEZyYW1lTG9hZFJlcXVlc3QodGFyZ2V0
RnJhbWUsIHJlcXVlc3QtPnJlcXVlc3QoKSwgU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeTo6
U2hvdWxkTm90QWxsb3cpKTsKIAogICAgIGF1dG8qIHRhcmdldFdlYkZyYW1lID0gV2ViRnJhbWU6
OmZyb21Db3JlRnJhbWUoKnRhcmdldEZyYW1lKTsKICAgICBBU1NFUlQodGFyZ2V0V2ViRnJhbWUp
OwpAQCAtMTM2Nyw3ICsxMzY3LDcgQEAgU3RyaW5nIFBsdWdpblZpZXc6OnVzZXJBZ2VudCgpCiAK
IHZvaWQgUGx1Z2luVmlldzo6bG9hZFVSTCh1aW50NjRfdCByZXF1ZXN0SUQsIGNvbnN0IFN0cmlu
ZyYgbWV0aG9kLCBjb25zdCBTdHJpbmcmIHVybFN0cmluZywgY29uc3QgU3RyaW5nJiB0YXJnZXQs
IGNvbnN0IEhUVFBIZWFkZXJNYXAmIGhlYWRlckZpZWxkcywgY29uc3QgVmVjdG9yPHVpbnQ4X3Q+
JiBodHRwQm9keSwgYm9vbCBhbGxvd1BvcHVwcykKIHsKLSAgICBGcmFtZUxvYWRSZXF1ZXN0IGZy
YW1lTG9hZFJlcXVlc3QobV9wbHVnaW5FbGVtZW50LT5kb2N1bWVudCgpLnNlY3VyaXR5T3JpZ2lu
KCksIExvY2tIaXN0b3J5OjpObywgTG9ja0JhY2tGb3J3YXJkTGlzdDo6Tm8sIE1heWJlU2VuZFJl
ZmVycmVyLCBBbGxvd05hdmlnYXRpb25Ub0ludmFsaWRVUkw6OlllcywgTmV3RnJhbWVPcGVuZXJQ
b2xpY3k6OkFsbG93KTsKKyAgICBGcmFtZUxvYWRSZXF1ZXN0IGZyYW1lTG9hZFJlcXVlc3QobV9w
bHVnaW5FbGVtZW50LT5kb2N1bWVudCgpLnNlY3VyaXR5T3JpZ2luKCksIExvY2tIaXN0b3J5OjpO
bywgTG9ja0JhY2tGb3J3YXJkTGlzdDo6Tm8sIE1heWJlU2VuZFJlZmVycmVyLCBBbGxvd05hdmln
YXRpb25Ub0ludmFsaWRVUkw6OlllcywgTmV3RnJhbWVPcGVuZXJQb2xpY3k6OkFsbG93LCBTaG91
bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5OjpTaG91bGROb3RBbGxvdyk7CiAgICAgZnJhbWVMb2Fk
UmVxdWVzdC5yZXNvdXJjZVJlcXVlc3QoKS5zZXRIVFRQTWV0aG9kKG1ldGhvZCk7CiAgICAgZnJh
bWVMb2FkUmVxdWVzdC5yZXNvdXJjZVJlcXVlc3QoKS5zZXRVUkwobV9wbHVnaW5FbGVtZW50LT5k
b2N1bWVudCgpLmNvbXBsZXRlVVJMKHVybFN0cmluZykpOwogICAgIGZyYW1lTG9hZFJlcXVlc3Qu
cmVzb3VyY2VSZXF1ZXN0KCkuc2V0SFRUUEhlYWRlckZpZWxkcyhoZWFkZXJGaWVsZHMpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDb250
ZXh0TWVudUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkNvbnRleHRNZW51Q2xpZW50LmNwcAppbmRleCA0MGE2MGQ4Li42NTY5NDg2YSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDb250
ZXh0TWVudUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJDb250ZXh0TWVudUNsaWVudC5jcHAKQEAgLTg2LDcgKzg2LDcgQEAgdm9pZCBX
ZWJDb250ZXh0TWVudUNsaWVudDo6c2VhcmNoV2l0aEdvb2dsZShjb25zdCBGcmFtZSogZnJhbWUp
CiAKICAgICBpZiAoUGFnZSogcGFnZSA9IGZyYW1lLT5wYWdlKCkpIHsKICAgICAgICAgVXNlckdl
c3R1cmVJbmRpY2F0b3IgaW5kaWNhdG9yKERlZmluaXRlbHlQcm9jZXNzaW5nVXNlckdlc3R1cmUp
OwotICAgICAgICBwYWdlLT5tYWluRnJhbWUoKS5sb2FkZXIoKS51cmxTZWxlY3RlZChVUkwoUGFy
c2VkVVJMU3RyaW5nLCB1cmwpLCBTdHJpbmcoKSwgMCwgTG9ja0hpc3Rvcnk6Ok5vLCBMb2NrQmFj
a0ZvcndhcmRMaXN0OjpObywgTWF5YmVTZW5kUmVmZXJyZXIpOworICAgICAgICBwYWdlLT5tYWlu
RnJhbWUoKS5sb2FkZXIoKS51cmxTZWxlY3RlZChVUkwoUGFyc2VkVVJMU3RyaW5nLCB1cmwpLCBT
dHJpbmcoKSwgMCwgTG9ja0hpc3Rvcnk6Ok5vLCBMb2NrQmFja0ZvcndhcmRMaXN0OjpObywgTWF5
YmVTZW5kUmVmZXJyZXIsIFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3k6OlNob3VsZE5vdEFs
bG93KTsKICAgICB9CiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAK
aW5kZXggZDY1YjEwNS4uNjFiMTRlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5j
cHAKQEAgLTY1MCw3ICs2NTAsNyBAQCBGcmFtZSogV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3Bh
dGNoQ3JlYXRlUGFnZShjb25zdCBOYXZpZ2F0aW9uQWN0aW9uJiBuYXZpZ2F0aQogICAgICAgICBy
ZXR1cm4gMDsKIAogICAgIC8vIEp1c3QgY2FsbCB0aHJvdWdoIHRvIHRoZSBjaHJvbWUgY2xpZW50
LgotICAgIEZyYW1lTG9hZFJlcXVlc3QgcmVxdWVzdChtX2ZyYW1lLT5jb3JlRnJhbWUoKS0+ZG9j
dW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKSwgbmF2aWdhdGlvbkFjdGlvbi5yZXNvdXJjZVJlcXVl
c3QoKSwgTG9ja0hpc3Rvcnk6Ok5vLCBMb2NrQmFja0ZvcndhcmRMaXN0OjpObywgTWF5YmVTZW5k
UmVmZXJyZXIsIEFsbG93TmF2aWdhdGlvblRvSW52YWxpZFVSTDo6WWVzLCBOZXdGcmFtZU9wZW5l
clBvbGljeTo6QWxsb3cpOworICAgIEZyYW1lTG9hZFJlcXVlc3QgcmVxdWVzdChtX2ZyYW1lLT5j
b3JlRnJhbWUoKS0+ZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKSwgbmF2aWdhdGlvbkFjdGlv
bi5yZXNvdXJjZVJlcXVlc3QoKSwgTG9ja0hpc3Rvcnk6Ok5vLCBMb2NrQmFja0ZvcndhcmRMaXN0
OjpObywgTWF5YmVTZW5kUmVmZXJyZXIsIEFsbG93TmF2aWdhdGlvblRvSW52YWxpZFVSTDo6WWVz
LCBOZXdGcmFtZU9wZW5lclBvbGljeTo6QWxsb3csIG5hdmlnYXRpb25BY3Rpb24uc2hvdWxkT3Bl
bkV4dGVybmFsVVJMc1BvbGljeSgpKTsKICAgICBQYWdlKiBuZXdQYWdlID0gd2ViUGFnZS0+Y29y
ZVBhZ2UoKS0+Y2hyb21lKCkuY3JlYXRlV2luZG93KG1fZnJhbWUtPmNvcmVGcmFtZSgpLCByZXF1
ZXN0LCBXaW5kb3dGZWF0dXJlcygpLCBuYXZpZ2F0aW9uQWN0aW9uKTsKICAgICBpZiAoIW5ld1Bh
Z2UpCiAgICAgICAgIHJldHVybiAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYkluc3BlY3Rvci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViSW5zcGVjdG9yLmNwcAppbmRleCAxZWE5MTI4Li4yZDBjMjU0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9yLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9yLmNwcApA
QCAtMTM4LDcgKzEzOCw3IEBAIHZvaWQgV2ViSW5zcGVjdG9yOjpvcGVuSW5OZXdUYWIoY29uc3Qg
U3RyaW5nJiB1cmxTdHJpbmcpCiAgICAgICAgIHJldHVybjsKIAogICAgIEZyYW1lJiBpbnNwZWN0
ZWRNYWluRnJhbWUgPSBpbnNwZWN0ZWRQYWdlLT5tYWluRnJhbWUoKTsKLSAgICBGcmFtZUxvYWRS
ZXF1ZXN0IHJlcXVlc3QoaW5zcGVjdGVkTWFpbkZyYW1lLmRvY3VtZW50KCktPnNlY3VyaXR5T3Jp
Z2luKCksIFJlc291cmNlUmVxdWVzdCh1cmxTdHJpbmcpLCAiX2JsYW5rIiwgTG9ja0hpc3Rvcnk6
Ok5vLCBMb2NrQmFja0ZvcndhcmRMaXN0OjpObywgTWF5YmVTZW5kUmVmZXJyZXIsIEFsbG93TmF2
aWdhdGlvblRvSW52YWxpZFVSTDo6WWVzLCBOZXdGcmFtZU9wZW5lclBvbGljeTo6QWxsb3csIFJl
cGxhY2VEb2N1bWVudElmSmF2YVNjcmlwdFVSTCk7CisgICAgRnJhbWVMb2FkUmVxdWVzdCByZXF1
ZXN0KGluc3BlY3RlZE1haW5GcmFtZS5kb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpLCBSZXNv
dXJjZVJlcXVlc3QodXJsU3RyaW5nKSwgIl9ibGFuayIsIExvY2tIaXN0b3J5OjpObywgTG9ja0Jh
Y2tGb3J3YXJkTGlzdDo6Tm8sIE1heWJlU2VuZFJlZmVycmVyLCBBbGxvd05hdmlnYXRpb25Ub0lu
dmFsaWRVUkw6OlllcywgTmV3RnJhbWVPcGVuZXJQb2xpY3k6OkFsbG93LCBSZXBsYWNlRG9jdW1l
bnRJZkphdmFTY3JpcHRVUkwsIFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3k6OlNob3VsZE5v
dEFsbG93KTsKIAogICAgIFBhZ2UqIG5ld1BhZ2UgPSBpbnNwZWN0ZWRQYWdlLT5jaHJvbWUoKS5j
cmVhdGVXaW5kb3coJmluc3BlY3RlZE1haW5GcmFtZSwgcmVxdWVzdCwgV2luZG93RmVhdHVyZXMo
KSwgTmF2aWdhdGlvbkFjdGlvbihyZXF1ZXN0LnJlc291cmNlUmVxdWVzdCgpLCBOYXZpZ2F0aW9u
VHlwZTo6TGlua0NsaWNrZWQpKTsKICAgICBpZiAoIW5ld1BhZ2UpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggZDgxZGI4ZS4uNjEwODBkNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAt
MTAxMSw3ICsxMDExLDcgQEAgdm9pZCBXZWJQYWdlOjpsb2FkVVJMSW5GcmFtZShjb25zdCBTdHJp
bmcmIHVybCwgdWludDY0X3QgZnJhbWVJRCkKICAgICBpZiAoIWZyYW1lKQogICAgICAgICByZXR1
cm47CiAKLSAgICBmcmFtZS0+Y29yZUZyYW1lKCktPmxvYWRlcigpLmxvYWQoRnJhbWVMb2FkUmVx
dWVzdChmcmFtZS0+Y29yZUZyYW1lKCksIFJlc291cmNlUmVxdWVzdChVUkwoVVJMKCksIHVybCkp
KSk7CisgICAgZnJhbWUtPmNvcmVGcmFtZSgpLT5sb2FkZXIoKS5sb2FkKEZyYW1lTG9hZFJlcXVl
c3QoZnJhbWUtPmNvcmVGcmFtZSgpLCBSZXNvdXJjZVJlcXVlc3QoVVJMKFVSTCgpLCB1cmwpKSwg
U2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeTo6U2hvdWxkTm90QWxsb3cpKTsKIH0KIAogdm9p
ZCBXZWJQYWdlOjpsb2FkUmVxdWVzdCh1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFJlc291
cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlJiBzYW5k
Ym94RXh0ZW5zaW9uSGFuZGxlLCB1aW50NjRfdCBzaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5
LCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCkBAIC0xMDI3LDcgKzEwMjcsNyBAQCB2b2lkIFdl
YlBhZ2U6OmxvYWRSZXF1ZXN0KHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgUmVzb3VyY2VS
ZXF1ZXN0JiByZXF1ZXN0LAogICAgIG1fbG9hZGVyQ2xpZW50LndpbGxMb2FkVVJMUmVxdWVzdCh0
aGlzLCByZXF1ZXN0LCBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS50cmFuc2Zvcm1IYW5kbGVzVG9P
YmplY3RzKHVzZXJEYXRhLm9iamVjdCgpKS5nZXQoKSk7CiAKICAgICAvLyBJbml0YXRlIHRoZSBs
b2FkIGluIFdlYkNvcmUuCi0gICAgRnJhbWVMb2FkUmVxdWVzdCBmcmFtZUxvYWRSZXF1ZXN0KG1f
bWFpbkZyYW1lLT5jb3JlRnJhbWUoKSwgcmVxdWVzdCk7CisgICAgRnJhbWVMb2FkUmVxdWVzdCBm
cmFtZUxvYWRSZXF1ZXN0KG1fbWFpbkZyYW1lLT5jb3JlRnJhbWUoKSwgcmVxdWVzdCwgU2hvdWxk
T3BlbkV4dGVybmFsVVJMc1BvbGljeTo6U2hvdWxkTm90QWxsb3cpOwogICAgIFNob3VsZE9wZW5F
eHRlcm5hbFVSTHNQb2xpY3kgZXh0ZXJuYWxVUkxzUG9saWN5ID0gc3RhdGljX2Nhc3Q8U2hvdWxk
T3BlbkV4dGVybmFsVVJMc1BvbGljeT4oc2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSk7CiAg
ICAgZnJhbWVMb2FkUmVxdWVzdC5zZXRTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5KGV4dGVy
bmFsVVJMc1BvbGljeSk7CiAKQEAgLTEwNTEsNyArMTA1MSw3IEBAIHZvaWQgV2ViUGFnZTo6bG9h
ZERhdGFJbXBsKHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+
IHNoYXJlCiAgICAgbV9sb2FkZXJDbGllbnQud2lsbExvYWREYXRhUmVxdWVzdCh0aGlzLCByZXF1
ZXN0LCBjb25zdF9jYXN0PFNoYXJlZEJ1ZmZlcio+KHN1YnN0aXR1dGVEYXRhLmNvbnRlbnQoKSks
IHN1YnN0aXR1dGVEYXRhLm1pbWVUeXBlKCksIHN1YnN0aXR1dGVEYXRhLnRleHRFbmNvZGluZygp
LCBzdWJzdGl0dXRlRGF0YS5mYWlsaW5nVVJMKCksIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnRy
YW5zZm9ybUhhbmRsZXNUb09iamVjdHModXNlckRhdGEub2JqZWN0KCkpLmdldCgpKTsKIAogICAg
IC8vIEluaXRhdGUgdGhlIGxvYWQgaW4gV2ViQ29yZS4KLSAgICBtX21haW5GcmFtZS0+Y29yZUZy
YW1lKCktPmxvYWRlcigpLmxvYWQoRnJhbWVMb2FkUmVxdWVzdChtX21haW5GcmFtZS0+Y29yZUZy
YW1lKCksIHJlcXVlc3QsIHN1YnN0aXR1dGVEYXRhKSk7CisgICAgbV9tYWluRnJhbWUtPmNvcmVG
cmFtZSgpLT5sb2FkZXIoKS5sb2FkKEZyYW1lTG9hZFJlcXVlc3QobV9tYWluRnJhbWUtPmNvcmVG
cmFtZSgpLCByZXF1ZXN0LCBTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5OjpTaG91bGROb3RB
bGxvdywgc3Vic3RpdHV0ZURhdGEpKTsKIH0KIAogdm9pZCBXZWJQYWdlOjpsb2FkU3RyaW5nKHVp
bnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgU3RyaW5nJiBodG1sU3RyaW5nLCBjb25zdCBTdHJp
bmcmIE1JTUVUeXBlLCBjb25zdCBVUkwmIGJhc2VVUkwsIGNvbnN0IFVSTCYgdW5yZWFjaGFibGVV
UkwsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKQEAgLTExMDgsNyArMTEwOCw4IEBAIHZvaWQg
V2ViUGFnZTo6bmF2aWdhdGVUb1BERkxpbmtXaXRoU2ltdWxhdGVkQ2xpY2soY29uc3QgU3RyaW5n
JiB1cmwsIEludFBvaW50IGRvCiAKICAgICBjb25zdCBpbnQgc2luZ2xlQ2xpY2sgPSAxOwogICAg
IFJlZlB0cjxNb3VzZUV2ZW50PiBtb3VzZUV2ZW50ID0gTW91c2VFdmVudDo6Y3JlYXRlKGV2ZW50
TmFtZXMoKS5jbGlja0V2ZW50LCB0cnVlLCB0cnVlLCBjdXJyZW50VGltZSgpLCBudWxscHRyLCBz
aW5nbGVDbGljaywgc2NyZWVuUG9pbnQueCgpLCBzY3JlZW5Qb2ludC55KCksIGRvY3VtZW50UG9p
bnQueCgpLCBkb2N1bWVudFBvaW50LnkoKSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIDAs
IG51bGxwdHIsIDAsIG51bGxwdHIpOwotICAgIG1haW5GcmFtZS0+bG9hZGVyKCkudXJsU2VsZWN0
ZWQobWFpbkZyYW1lRG9jdW1lbnQtPmNvbXBsZXRlVVJMKHVybCksIGVtcHR5U3RyaW5nKCksIG1v
dXNlRXZlbnQuZ2V0KCksIExvY2tIaXN0b3J5OjpObywgTG9ja0JhY2tGb3J3YXJkTGlzdDo6Tm8s
IFNob3VsZFNlbmRSZWZlcnJlcjo6TWF5YmVTZW5kUmVmZXJyZXIpOworCisgICAgbWFpbkZyYW1l
LT5sb2FkZXIoKS51cmxTZWxlY3RlZChtYWluRnJhbWVEb2N1bWVudC0+Y29tcGxldGVVUkwodXJs
KSwgZW1wdHlTdHJpbmcoKSwgbW91c2VFdmVudC5nZXQoKSwgTG9ja0hpc3Rvcnk6Ok5vLCBMb2Nr
QmFja0ZvcndhcmRMaXN0OjpObywgU2hvdWxkU2VuZFJlZmVycmVyOjpNYXliZVNlbmRSZWZlcnJl
ciwgU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeTo6U2hvdWxkTm90QWxsb3cpOwogfQogCiB2
b2lkIFdlYlBhZ2U6OnN0b3BMb2FkaW5nRnJhbWUodWludDY0X3QgZnJhbWVJRCkK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>254073</attachid>
            <date>2015-06-02 10:44:58 -0700</date>
            <delta_ts>2015-06-02 11:29:17 -0700</delta_ts>
            <desc>Patch v4 - More correct build fixing</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>143388</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA3OTJlMjE1Li43MjEyYWY0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsNjIgQEAKIDIwMTUtMDYt
MDEgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgogCisgICAgICAgIFdlYktpdCBw
b2xpY3kgZGVsZWdhdGUgc2hvdWxkIHN1Z2dlc3QgaWYgYSBuYXZpZ2F0aW9uIHNob3VsZCBiZSBh
bGxvd2VkIHRvIG9wZW4gVVJMcyBleHRlcm5hbGx5LgorICAgICAgICByZGFyOi8vcHJvYmxlbS8y
MTAyNTMwMSBhbmQgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NTI4
MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogbG9h
ZGVyL25hdmlnYXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvbWFpbi1mcmFt
ZS1jbGljay1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGxvYWRlci9uYXZpZ2F0aW9u
LXBvbGljeS9zaG91bGQtb3Blbi1leHRlcm5hbC11cmxzL21haW4tZnJhbWUtY2xpY2suaHRtbDog
QWRkZWQuCisgICAgICAgICogbG9hZGVyL25hdmlnYXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4
dGVybmFsLXVybHMvbWFpbi1mcmFtZS1uYXZpZ2F0ZWQtcHJvZ3JhbWF0aWNhbGx5LWJ5LXN1YmZy
YW1lLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogbG9hZGVyL25hdmlnYXRpb24tcG9s
aWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvbWFpbi1mcmFtZS1uYXZpZ2F0ZWQtcHJvZ3Jh
bWF0aWNhbGx5LWJ5LXN1YmZyYW1lLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGxvYWRlci9uYXZp
Z2F0aW9uLXBvbGljeS9zaG91bGQtb3Blbi1leHRlcm5hbC11cmxzL21haW4tZnJhbWUtd2l0aC1m
bGFnLXByb2dhbWF0aWMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBsb2FkZXIvbmF2
aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJscy9tYWluLWZyYW1lLXdpdGgt
ZmxhZy1wcm9nYW1hdGljLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGxvYWRlci9uYXZpZ2F0aW9u
LXBvbGljeS9zaG91bGQtb3Blbi1leHRlcm5hbC11cmxzL21haW4tZnJhbWUtd2l0aG91dC1mbGFn
LXByb2dyYW1hdGljLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogbG9hZGVyL25hdmln
YXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvbWFpbi1mcmFtZS13aXRob3V0
LWZsYWctcHJvZ3JhbWF0aWMuaHRtbDogQWRkZWQuCisgICAgICAgICogbG9hZGVyL25hdmlnYXRp
b24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvcmVzb3VyY2VzL2NsaWNrLW5vdGlm
eS1kb25lLWluLW1haW4uaHRtbDogQWRkZWQuCisgICAgICAgICogbG9hZGVyL25hdmlnYXRpb24t
cG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvcmVzb3VyY2VzL2lmcmFtZS1jbGljay1u
b3RpZnktZG9uZS10YXJnZXQtc2VsZi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBsb2FkZXIvbmF2
aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJscy9yZXNvdXJjZXMvaWZyYW1l
LWNsaWNrLW5vdGlmeS1kb25lLXRhcmdldC10b3AuaHRtbDogQWRkZWQuCisgICAgICAgICogbG9h
ZGVyL25hdmlnYXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvcmVzb3VyY2Vz
L21haW4tZnJhbWUtd2l0aC1zdWJmcmFtZS1jbGljay10YXJnZXRzLXN1YmZyYW1lLmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIGxvYWRlci9uYXZpZ2F0aW9uLXBvbGljeS9zaG91bGQtb3Blbi1leHRl
cm5hbC11cmxzL3Jlc291cmNlcy9tYWluLWZyYW1lLXdpdGgtc3ViZnJhbWUtcHJvZ3JhbWF0aWNh
bGx5LW5hdmlnYXRlcy1tYWluLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGxvYWRlci9uYXZpZ2F0
aW9uLXBvbGljeS9zaG91bGQtb3Blbi1leHRlcm5hbC11cmxzL3Jlc291cmNlcy9wcm9ncmFtYXRp
Y2FsbHktbmF2aWdhdGUtdG8tbm90aWZ5LWRvbmUtdGFyZ2V0LXRvcC5odG1sOiBBZGRlZC4KKyAg
ICAgICAgKiBsb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJs
cy9yZXNvdXJjZXMvcHJvZ3JhbWF0aWNhbGx5LW5hdmlnYXRlLXRvLW5vdGlmeS1kb25lLmh0bWw6
IEFkZGVkLgorICAgICAgICAqIGxvYWRlci9uYXZpZ2F0aW9uLXBvbGljeS9zaG91bGQtb3Blbi1l
eHRlcm5hbC11cmxzL3Jlc291cmNlcy91c2VyLWdlc3R1cmUtdGFyZ2V0LWJsYW5rLXRvLW5vdGlm
eS1kb25lLWZyb20tc3ViZnJhbWUuaHRtbDogQWRkZWQuCisgICAgICAgICogbG9hZGVyL25hdmln
YXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvcmVzb3VyY2VzL3VzZXItZ2Vz
dHVyZS10YXJnZXQtYmxhbmstdG8tbm90aWZ5LWRvbmUuaHRtbDogQWRkZWQuCisgICAgICAgICog
bG9hZGVyL25hdmlnYXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvcmVzb3Vy
Y2VzL3VzZXItZ2VzdHVyZS13aW5kb3ctb3Blbi10by1ub3RpZnktZG9uZS1mcm9tLXN1YmZyYW1l
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGxvYWRlci9uYXZpZ2F0aW9uLXBvbGljeS9zaG91bGQt
b3Blbi1leHRlcm5hbC11cmxzL3Jlc291cmNlcy91c2VyLWdlc3R1cmUtd2luZG93LW9wZW4tdG8t
bm90aWZ5LWRvbmUuaHRtbDogQWRkZWQuCisgICAgICAgICogbG9hZGVyL25hdmlnYXRpb24tcG9s
aWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvcmVzb3VyY2VzL3dpbmRvdy1vcGVuLXRvLW5v
dGlmeS1kb25lLWZyb20tc3ViZnJhbWUuaHRtbDogQWRkZWQuCisgICAgICAgICogbG9hZGVyL25h
dmlnYXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvcmVzb3VyY2VzL3dpbmRv
dy1vcGVuLXRvLW5vdGlmeS1kb25lLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGxvYWRlci9uYXZp
Z2F0aW9uLXBvbGljeS9zaG91bGQtb3Blbi1leHRlcm5hbC11cmxzL3N1YmZyYW1lLWNsaWNrLXRh
cmdldC1zZWxmLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogbG9hZGVyL25hdmlnYXRp
b24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvc3ViZnJhbWUtY2xpY2stdGFyZ2V0
LXNlbGYuaHRtbDogQWRkZWQuCisgICAgICAgICogbG9hZGVyL25hdmlnYXRpb24tcG9saWN5L3No
b3VsZC1vcGVuLWV4dGVybmFsLXVybHMvc3ViZnJhbWUtY2xpY2stdGFyZ2V0LXRvcC1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGxvYWRlci9uYXZpZ2F0aW9uLXBvbGljeS9zaG91bGQt
b3Blbi1leHRlcm5hbC11cmxzL3N1YmZyYW1lLWNsaWNrLXRhcmdldC10b3AuaHRtbDogQWRkZWQu
CisgICAgICAgICogbG9hZGVyL25hdmlnYXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFs
LXVybHMvdXNlci1nZXN0dXJlLXRhcmdldC1ibGFuay13aXRoLWZsYWctZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBsb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0
ZXJuYWwtdXJscy91c2VyLWdlc3R1cmUtdGFyZ2V0LWJsYW5rLXdpdGgtZmxhZy1mcm9tLXN1YmZy
YW1lLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogbG9hZGVyL25hdmlnYXRpb24tcG9s
aWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvdXNlci1nZXN0dXJlLXRhcmdldC1ibGFuay13
aXRoLWZsYWctZnJvbS1zdWJmcmFtZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBsb2FkZXIvbmF2
aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJscy91c2VyLWdlc3R1cmUtdGFy
Z2V0LWJsYW5rLXdpdGgtZmxhZy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBsb2FkZXIvbmF2aWdh
dGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJscy91c2VyLWdlc3R1cmUtdGFyZ2V0
LWJsYW5rLXdpdGhvdXQtZmxhZy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGxvYWRl
ci9uYXZpZ2F0aW9uLXBvbGljeS9zaG91bGQtb3Blbi1leHRlcm5hbC11cmxzL3VzZXItZ2VzdHVy
ZS10YXJnZXQtYmxhbmstd2l0aG91dC1mbGFnLWZyb20tc3ViZnJhbWUtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBsb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0
ZXJuYWwtdXJscy91c2VyLWdlc3R1cmUtdGFyZ2V0LWJsYW5rLXdpdGhvdXQtZmxhZy1mcm9tLXN1
YmZyYW1lLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGxvYWRlci9uYXZpZ2F0aW9uLXBvbGljeS9z
aG91bGQtb3Blbi1leHRlcm5hbC11cmxzL3VzZXItZ2VzdHVyZS10YXJnZXQtYmxhbmstd2l0aG91
dC1mbGFnLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGxvYWRlci9uYXZpZ2F0aW9uLXBvbGljeS9z
aG91bGQtb3Blbi1leHRlcm5hbC11cmxzL3VzZXItZ2VzdHVyZS13aW5kb3ctb3Blbi13aXRoLWZs
YWctZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBsb2FkZXIvbmF2aWdhdGlvbi1wb2xp
Y3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJscy91c2VyLWdlc3R1cmUtd2luZG93LW9wZW4td2l0
aC1mbGFnLWZyb20tc3ViZnJhbWUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBsb2Fk
ZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJscy91c2VyLWdlc3R1
cmUtd2luZG93LW9wZW4td2l0aC1mbGFnLWZyb20tc3ViZnJhbWUuaHRtbDogQWRkZWQuCisgICAg
ICAgICogbG9hZGVyL25hdmlnYXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMv
dXNlci1nZXN0dXJlLXdpbmRvdy1vcGVuLXdpdGgtZmxhZy5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBsb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJscy91c2Vy
LWdlc3R1cmUtd2luZG93LW9wZW4td2l0aG91dC1mbGFnLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogbG9hZGVyL25hdmlnYXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVy
bHMvdXNlci1nZXN0dXJlLXdpbmRvdy1vcGVuLXdpdGhvdXQtZmxhZy1mcm9tLXN1YmZyYW1lLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogbG9hZGVyL25hdmlnYXRpb24tcG9saWN5L3No
b3VsZC1vcGVuLWV4dGVybmFsLXVybHMvdXNlci1nZXN0dXJlLXdpbmRvdy1vcGVuLXdpdGhvdXQt
ZmxhZy1mcm9tLXN1YmZyYW1lLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGxvYWRlci9uYXZpZ2F0
aW9uLXBvbGljeS9zaG91bGQtb3Blbi1leHRlcm5hbC11cmxzL3VzZXItZ2VzdHVyZS13aW5kb3ct
b3Blbi13aXRob3V0LWZsYWcuaHRtbDogQWRkZWQuCisgICAgICAgICogbG9hZGVyL25hdmlnYXRp
b24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvd2luZG93LW9wZW4td2l0aC1mbGFn
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogbG9hZGVyL25hdmlnYXRpb24tcG9saWN5
L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvd2luZG93LW9wZW4td2l0aC1mbGFnLWZyb20tc3Vi
ZnJhbWUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBsb2FkZXIvbmF2aWdhdGlvbi1w
b2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJscy93aW5kb3ctb3Blbi13aXRoLWZsYWctZnJv
bS1zdWJmcmFtZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBsb2FkZXIvbmF2aWdhdGlvbi1wb2xp
Y3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJscy93aW5kb3ctb3Blbi13aXRoLWZsYWcuaHRtbDog
QWRkZWQuCisgICAgICAgICogbG9hZGVyL25hdmlnYXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4
dGVybmFsLXVybHMvd2luZG93LW9wZW4td2l0aG91dC1mbGFnLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogbG9hZGVyL25hdmlnYXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFs
LXVybHMvd2luZG93LW9wZW4td2l0aG91dC1mbGFnLWZyb20tc3ViZnJhbWUtZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBsb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4t
ZXh0ZXJuYWwtdXJscy93aW5kb3ctb3Blbi13aXRob3V0LWZsYWctZnJvbS1zdWJmcmFtZS5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiBsb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4t
ZXh0ZXJuYWwtdXJscy93aW5kb3ctb3Blbi13aXRob3V0LWZsYWcuaHRtbDogQWRkZWQuCisKKzIw
MTUtMDYtMDEgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCiAgICAgICAgIEFk
ZCBXS1RSIHN1cHBvcnQgZm9yICJzaG91bGQgb3BlbiBleHRlcm5hbCBVUkxzIi4KICAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NTUwNQogCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0
ZXJuYWwtdXJscy9tYWluLWZyYW1lLWNsaWNrLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2xv
YWRlci9uYXZpZ2F0aW9uLXBvbGljeS9zaG91bGQtb3Blbi1leHRlcm5hbC11cmxzL21haW4tZnJh
bWUtY2xpY2stZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LjFhYTJhYjEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdhdGlv
bi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJscy9tYWluLWZyYW1lLWNsaWNrLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDUgQEAKKyAtIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rp
b24gCis8TlNVUkxSZXF1ZXN0IFVSTCByZXNvdXJjZXMvY2xpY2stbm90aWZ5LWRvbmUtaW4tbWFp
bi5odG1sLCBtYWluIGRvY3VtZW50IFVSTCByZXNvdXJjZXMvY2xpY2stbm90aWZ5LWRvbmUtaW4t
bWFpbi5odG1sLCBodHRwIG1ldGhvZCBHRVQ+IGlzIG1haW4gZnJhbWUgLSB5ZXMgc2hvdWxkIG9w
ZW4gVVJMcyBleHRlcm5hbGx5IC0gbm8KKyAtIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rp
b24gCis8TlNVUkxSZXF1ZXN0IFVSTCBub3RpZnktZG9uZS5odG1sLCBtYWluIGRvY3VtZW50IFVS
TCBub3RpZnktZG9uZS5odG1sLCBodHRwIG1ldGhvZCBHRVQ+IGlzIG1haW4gZnJhbWUgLSB5ZXMg
c2hvdWxkIG9wZW4gVVJMcyBleHRlcm5hbGx5IC0geWVzCisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2xvYWRlci9uYXZpZ2F0aW9uLXBvbGljeS9zaG91bGQtb3Blbi1leHRlcm5hbC11cmxzL21h
aW4tZnJhbWUtY2xpY2suaHRtbCBiL0xheW91dFRlc3RzL2xvYWRlci9uYXZpZ2F0aW9uLXBvbGlj
eS9zaG91bGQtb3Blbi1leHRlcm5hbC11cmxzL21haW4tZnJhbWUtY2xpY2suaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42MGRiOTU5Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvbG9hZGVyL25hdmlnYXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFs
LXVybHMvbWFpbi1mcmFtZS1jbGljay5odG1sCkBAIC0wLDAgKzEsMTkgQEAKKzxzY3JpcHQ+CisK
K2lmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwor
ICAgIHRlc3RSdW5uZXIuZHVtcFBvbGljeURlbGVnYXRlQ2FsbGJhY2tzKCk7CisgICAgdGVzdFJ1
bm5lci53YWl0VW50aWxEb25lKCk7Cit9CisKK2Z1bmN0aW9uIHJ1blRlc3QoKQoreworICAgIHdp
bmRvdy5sb2NhdGlvbi5ocmVmID0gInJlc291cmNlcy9jbGljay1ub3RpZnktZG9uZS1pbi1tYWlu
Lmh0bWwiOworfQorCis8L3NjcmlwdD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpOyI+CitUaGlz
IG1haW4gZnJhbWUgbG9hZCBzdGFydHMgd2l0aCB0aGUgc2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJs
cyBmbGFnIHNldCB0byBmYWxzZS48YnI+CitJdCBsb2FkcyBhIG5ldyBwYWdlIHByb2dyYW1tYXRp
Y2FsbHksIGxlYXZpbmcgdGhlIGZsYWcgZmFsc2UuPGJyPgorVGhhdCBuZXcgcGFnZSBjbGlja3Mg
YSBsaW5rLCB3aGljaCBzaG91bGQgc2V0IHRoZSBmbGFnIHRvIHRydWUuCis8L2JvZHk+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4t
ZXh0ZXJuYWwtdXJscy9tYWluLWZyYW1lLW5hdmlnYXRlZC1wcm9ncmFtYXRpY2FsbHktYnktc3Vi
ZnJhbWUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvbG9hZGVyL25hdmlnYXRpb24tcG9saWN5
L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvbWFpbi1mcmFtZS1uYXZpZ2F0ZWQtcHJvZ3JhbWF0
aWNhbGx5LWJ5LXN1YmZyYW1lLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi5mZmUwNzgyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbG9hZGVy
L25hdmlnYXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvbWFpbi1mcmFtZS1u
YXZpZ2F0ZWQtcHJvZ3JhbWF0aWNhbGx5LWJ5LXN1YmZyYW1lLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDcgQEAKKyAtIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24gCis8TlNVUkxSZXF1
ZXN0IFVSTCByZXNvdXJjZXMvbWFpbi1mcmFtZS13aXRoLXN1YmZyYW1lLXByb2dyYW1hdGljYWxs
eS1uYXZpZ2F0ZXMtbWFpbi5odG1sLCBtYWluIGRvY3VtZW50IFVSTCByZXNvdXJjZXMvbWFpbi1m
cmFtZS13aXRoLXN1YmZyYW1lLXByb2dyYW1hdGljYWxseS1uYXZpZ2F0ZXMtbWFpbi5odG1sLCBo
dHRwIG1ldGhvZCBHRVQ+IGlzIG1haW4gZnJhbWUgLSB5ZXMgc2hvdWxkIG9wZW4gVVJMcyBleHRl
cm5hbGx5IC0geWVzCisgLSBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uIAorPE5TVVJM
UmVxdWVzdCBVUkwgcHJvZ3JhbWF0aWNhbGx5LW5hdmlnYXRlLXRvLW5vdGlmeS1kb25lLXRhcmdl
dC10b3AuaHRtbCwgbWFpbiBkb2N1bWVudCBVUkwgbWFpbi1mcmFtZS13aXRoLXN1YmZyYW1lLXBy
b2dyYW1hdGljYWxseS1uYXZpZ2F0ZXMtbWFpbi5odG1sLCBodHRwIG1ldGhvZCBHRVQ+IGlzIG1h
aW4gZnJhbWUgLSBubyBzaG91bGQgb3BlbiBVUkxzIGV4dGVybmFsbHkgLSBubworIC0gZGVjaWRl
UG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbiAKKzxOU1VSTFJlcXVlc3QgVVJMIG5vdGlmeS1kb25l
Lmh0bWwsIG1haW4gZG9jdW1lbnQgVVJMIG5vdGlmeS1kb25lLmh0bWwsIGh0dHAgbWV0aG9kIEdF
VD4gaXMgbWFpbiBmcmFtZSAtIHllcyBzaG91bGQgb3BlbiBVUkxzIGV4dGVybmFsbHkgLSBubwor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxk
LW9wZW4tZXh0ZXJuYWwtdXJscy9tYWluLWZyYW1lLW5hdmlnYXRlZC1wcm9ncmFtYXRpY2FsbHkt
Ynktc3ViZnJhbWUuaHRtbCBiL0xheW91dFRlc3RzL2xvYWRlci9uYXZpZ2F0aW9uLXBvbGljeS9z
aG91bGQtb3Blbi1leHRlcm5hbC11cmxzL21haW4tZnJhbWUtbmF2aWdhdGVkLXByb2dyYW1hdGlj
YWxseS1ieS1zdWJmcmFtZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LjNiYTNlM2QKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdhdGlv
bi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJscy9tYWluLWZyYW1lLW5hdmlnYXRlZC1w
cm9ncmFtYXRpY2FsbHktYnktc3ViZnJhbWUuaHRtbApAQCAtMCwwICsxLDEzIEBACis8c2NyaXB0
PgorCitpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQo
KTsKKyAgICB0ZXN0UnVubmVyLmR1bXBQb2xpY3lEZWxlZ2F0ZUNhbGxiYWNrcygpOworICAgIHRl
c3RSdW5uZXIucXVldWVMb2FkKCJyZXNvdXJjZXMvbWFpbi1mcmFtZS13aXRoLXN1YmZyYW1lLXBy
b2dyYW1hdGljYWxseS1uYXZpZ2F0ZXMtbWFpbi5odG1sIiwgIiIsIHRydWUpOworfQorCis8L3Nj
cmlwdD4KK1RoaXMgcGFnZSBoYXMgZG9lcyBub3QgaGF2ZSB0aGUgInNob3VsZCBvcGVuIGV4dGVy
bmFsIFVSTHMiIGZsYWcgc2V0Ljxicj4KK0l0IG5hdmlnYXRlcyB0byBhIDJuZCBwYWdlIHRoYXQg
ZG9lcyBoYXZlIHRoZSBmbGFnIHNldC48YnI+CitUaGF0IDJuZCBwYWdlIGNvbnRhaW5zIGFuIGlm
cmFtZSB3aGljaCBwcm9ncmFtYXRpY2FsbHkgbmF2aWdhdGVzIHRoZSBtYWluIGZyYW1lIHRvIGEg
M3JkIHBhZ2UuPGJyPgorVGhlICJzaG91bGQgb3BlbiBleHRlcm5hbCBVUkxzIiBmbGFnIHNob3Vs
ZCBiZSB1bnNldCBiZWNhdXNlIHRoZSBzdWJmcmFtZS0+bWFpbiBmcmFtZSBuYXZpZ2F0aW9uIHdh
cyBwcm9ncmFtYXRpYy48YnI+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdh
dGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJscy9tYWluLWZyYW1lLXdpdGgtZmxh
Zy1wcm9nYW1hdGljLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2xvYWRlci9uYXZpZ2F0aW9u
LXBvbGljeS9zaG91bGQtb3Blbi1leHRlcm5hbC11cmxzL21haW4tZnJhbWUtd2l0aC1mbGFnLXBy
b2dhbWF0aWMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LjI2NDFhZGQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdhdGlv
bi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJscy9tYWluLWZyYW1lLXdpdGgtZmxhZy1w
cm9nYW1hdGljLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKKyAtIGRlY2lkZVBvbGljeUZv
ck5hdmlnYXRpb25BY3Rpb24gCis8TlNVUkxSZXF1ZXN0IFVSTCByZXNvdXJjZXMvcHJvZ3JhbWF0
aWNhbGx5LW5hdmlnYXRlLXRvLW5vdGlmeS1kb25lLmh0bWwsIG1haW4gZG9jdW1lbnQgVVJMIHJl
c291cmNlcy9wcm9ncmFtYXRpY2FsbHktbmF2aWdhdGUtdG8tbm90aWZ5LWRvbmUuaHRtbCwgaHR0
cCBtZXRob2QgR0VUPiBpcyBtYWluIGZyYW1lIC0geWVzIHNob3VsZCBvcGVuIFVSTHMgZXh0ZXJu
YWxseSAtIHllcworIC0gZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbiAKKzxOU1VSTFJl
cXVlc3QgVVJMIG5vdGlmeS1kb25lLmh0bWwsIG1haW4gZG9jdW1lbnQgVVJMIG5vdGlmeS1kb25l
Lmh0bWwsIGh0dHAgbWV0aG9kIEdFVD4gaXMgbWFpbiBmcmFtZSAtIHllcyBzaG91bGQgb3BlbiBV
UkxzIGV4dGVybmFsbHkgLSB5ZXMKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbG9hZGVyL25h
dmlnYXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvbWFpbi1mcmFtZS13aXRo
LWZsYWctcHJvZ2FtYXRpYy5odG1sIGIvTGF5b3V0VGVzdHMvbG9hZGVyL25hdmlnYXRpb24tcG9s
aWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvbWFpbi1mcmFtZS13aXRoLWZsYWctcHJvZ2Ft
YXRpYy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjllM2RlMzgKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hv
dWxkLW9wZW4tZXh0ZXJuYWwtdXJscy9tYWluLWZyYW1lLXdpdGgtZmxhZy1wcm9nYW1hdGljLmh0
bWwKQEAgLTAsMCArMSwxMiBAQAorPHNjcmlwdD4KKworaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7
CisgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgdGVzdFJ1bm5lci5kdW1wUG9saWN5
RGVsZWdhdGVDYWxsYmFja3MoKTsKKyAgICB0ZXN0UnVubmVyLnF1ZXVlTG9hZCgicmVzb3VyY2Vz
L3Byb2dyYW1hdGljYWxseS1uYXZpZ2F0ZS10by1ub3RpZnktZG9uZS5odG1sIiwgIiIsIHRydWUp
OworfQorCis8L3NjcmlwdD4KK1RoaXMgcGFnZSBuYXZpZ2F0ZXMgdG8gYSAybmQgcGFnZSB1c2lu
ZyB0aGUgQVBJIHRoYXQgc2V0cyB0aGUgInNob3VsZCBvcGVuIGV4dGVybmFsIFVSTHMiIGZsYWcg
dG8gdHJ1ZS48YnI+CitUaGF0IHBhZ2UgdGhlbiBwcm9ncmFtYXRpY2FsbHkgcmVkaXJlY3RzIHRv
IGEgM3JkIHBhZ2UuPGJyPgorVGhhdCBuYXZpZ2F0aW9uIGZyb20gdGhlIDJuZCBwYWdlIHRvIHRo
ZSAzcmQgcGFnZSBzaG91bGQgc3RpbGwgaGF2ZSB0aGUgZmxhZyBzZXQsIGJlY2F1c2UgdGhlIGZs
YWcgcHJvcGFnYXRlcyB0aHJvdWdoIG1haW4gZnJhbWUgbG9hZHMuPGJyPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvbG9hZGVyL25hdmlnYXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFs
LXVybHMvbWFpbi1mcmFtZS13aXRob3V0LWZsYWctcHJvZ3JhbWF0aWMtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvbG9hZGVyL25hdmlnYXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFs
LXVybHMvbWFpbi1mcmFtZS13aXRob3V0LWZsYWctcHJvZ3JhbWF0aWMtZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNjNDk4MGEKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0
ZXJuYWwtdXJscy9tYWluLWZyYW1lLXdpdGhvdXQtZmxhZy1wcm9ncmFtYXRpYy1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSw1IEBACisgLSBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uIAor
PE5TVVJMUmVxdWVzdCBVUkwgcmVzb3VyY2VzL3Byb2dyYW1hdGljYWxseS1uYXZpZ2F0ZS10by1u
b3RpZnktZG9uZS5odG1sLCBtYWluIGRvY3VtZW50IFVSTCByZXNvdXJjZXMvcHJvZ3JhbWF0aWNh
bGx5LW5hdmlnYXRlLXRvLW5vdGlmeS1kb25lLmh0bWwsIGh0dHAgbWV0aG9kIEdFVD4gaXMgbWFp
biBmcmFtZSAtIHllcyBzaG91bGQgb3BlbiBVUkxzIGV4dGVybmFsbHkgLSBubworIC0gZGVjaWRl
UG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbiAKKzxOU1VSTFJlcXVlc3QgVVJMIG5vdGlmeS1kb25l
Lmh0bWwsIG1haW4gZG9jdW1lbnQgVVJMIG5vdGlmeS1kb25lLmh0bWwsIGh0dHAgbWV0aG9kIEdF
VD4gaXMgbWFpbiBmcmFtZSAtIHllcyBzaG91bGQgb3BlbiBVUkxzIGV4dGVybmFsbHkgLSBubwor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxk
LW9wZW4tZXh0ZXJuYWwtdXJscy9tYWluLWZyYW1lLXdpdGhvdXQtZmxhZy1wcm9ncmFtYXRpYy5o
dG1sIGIvTGF5b3V0VGVzdHMvbG9hZGVyL25hdmlnYXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4
dGVybmFsLXVybHMvbWFpbi1mcmFtZS13aXRob3V0LWZsYWctcHJvZ3JhbWF0aWMuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40YjU5ODAwCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvbG9hZGVyL25hdmlnYXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVy
bmFsLXVybHMvbWFpbi1mcmFtZS13aXRob3V0LWZsYWctcHJvZ3JhbWF0aWMuaHRtbApAQCAtMCww
ICsxLDEyIEBACis8c2NyaXB0PgorCitpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICB0ZXN0
UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICB0ZXN0UnVubmVyLmR1bXBQb2xpY3lEZWxlZ2F0ZUNh
bGxiYWNrcygpOworICAgIHRlc3RSdW5uZXIucXVldWVMb2FkKCJyZXNvdXJjZXMvcHJvZ3JhbWF0
aWNhbGx5LW5hdmlnYXRlLXRvLW5vdGlmeS1kb25lLmh0bWwiKTsKK30KKworPC9zY3JpcHQ+CitU
aGlzIHBhZ2UgbmF2aWdhdGVzIHRvIGEgMm5kIHBhZ2Ugd2l0aCB0aGUgInNob3VsZCBvcGVuIGV4
dGVybmFsIFVSTHMiIGZsYWcgc2V0IHRvIGZhbHNlLjxicj4KK1RoYXQgcGFnZSB0aGVuIHByb2dy
YW1hdGljYWxseSByZWRpcmVjdHMgdG8gYSAzcmQgcGFnZS48YnI+CitEdXJpbmcgdGhlIG5hdmln
YXRpb24gZnJvbSB0aGUgMm5kIHBhZ2UgdG8gdGhlIDNyZCBwYWdlIHRoZSBmbGFnIHNob3VsZCBz
dGlsbCBiZSBmYWxzZSwgYmVjYXVzZSBubyB1c2VyIGdlc3R1cmUgd2FzIGludm9sdmVkLjxicj4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2xvYWRlci9uYXZpZ2F0aW9uLXBvbGljeS9zaG91bGQt
b3Blbi1leHRlcm5hbC11cmxzL3Jlc291cmNlcy9jbGljay1ub3RpZnktZG9uZS1pbi1tYWluLmh0
bWwgYi9MYXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0
ZXJuYWwtdXJscy9yZXNvdXJjZXMvY2xpY2stbm90aWZ5LWRvbmUtaW4tbWFpbi5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAyNzAxZDcKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJu
YWwtdXJscy9yZXNvdXJjZXMvY2xpY2stbm90aWZ5LWRvbmUtaW4tbWFpbi5odG1sCkBAIC0wLDAg
KzEsMTQgQEAKKzxzY3JpcHQ+CitmdW5jdGlvbiBydW5UZXN0KCkKK3sKKyAgICBpZiAod2luZG93
LmV2ZW50U2VuZGVyKSB7CisgICAgICAgIHZhciBhID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
ImEiKTsKKyAgICAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oYS5vZmZzZXRMZWZ0ICsgMiwg
YS5vZmZzZXRUb3AgKyAyKTsKKyAgICAgICAgZXZlbnRTZW5kZXIubW91c2VEb3duKCk7CisgICAg
ICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAoKTsKKyAgICB9Cit9Cis8L3NjcmlwdD4KKzxib2R5IG9u
bG9hZD0icnVuVGVzdCgpOyI+Cis8YSBpZD0iYSIgaHJlZj0ibm90aWZ5LWRvbmUuaHRtbCIgdGFy
Z2V0PSJfdG9wIj5DbGljayBmb3Igbm90aWZ5IGRvbmUgaW4gbWFpbiBmcmFtZTwvYT4KKzwvYm9k
eT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2xvYWRlci9uYXZpZ2F0aW9uLXBvbGljeS9zaG91
bGQtb3Blbi1leHRlcm5hbC11cmxzL3Jlc291cmNlcy9pZnJhbWUtY2xpY2stbm90aWZ5LWRvbmUt
dGFyZ2V0LXNlbGYuaHRtbCBiL0xheW91dFRlc3RzL2xvYWRlci9uYXZpZ2F0aW9uLXBvbGljeS9z
aG91bGQtb3Blbi1leHRlcm5hbC11cmxzL3Jlc291cmNlcy9pZnJhbWUtY2xpY2stbm90aWZ5LWRv
bmUtdGFyZ2V0LXNlbGYuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41
ZTAwMjUxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbG9hZGVyL25hdmlnYXRpb24t
cG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvcmVzb3VyY2VzL2lmcmFtZS1jbGljay1u
b3RpZnktZG9uZS10YXJnZXQtc2VsZi5odG1sCkBAIC0wLDAgKzEsMTggQEAKKzxzY3JpcHQ+CisK
K2Z1bmN0aW9uIHJ1blRlc3QoKQoreworICAgIGlmICghd2luZG93LmV2ZW50U2VuZGVyKQorICAg
ICAgICByZXR1cm47CisKKyAgICB2YXIgYSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhIik7
CisgICAgdmFyIGlmcmFtZSA9IHdpbmRvdy5wYXJlbnQuZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRh
Z05hbWUoImlmcmFtZSIpWzBdOworICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKGEub2Zmc2V0
TGVmdCArIGlmcmFtZS5vZmZzZXRMZWZ0ICsgMiwgYS5vZmZzZXRUb3AgKyBpZnJhbWUub2Zmc2V0
VG9wICsgMik7CisgICAgZXZlbnRTZW5kZXIubW91c2VEb3duKCk7CisgICAgZXZlbnRTZW5kZXIu
bW91c2VVcCgpOworfQorCis8L3NjcmlwdD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpOyI+Cis8
YSBpZD0iYSIgaHJlZj0ibm90aWZ5LWRvbmUuaHRtbCIgdGFyZ2V0PSJfc2VsZiI+Q2xpY2sgZm9y
IG5vdGlmeSBkb25lIGluIHRoaXMgZnJhbWU8L2E+Cis8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9sb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJs
cy9yZXNvdXJjZXMvaWZyYW1lLWNsaWNrLW5vdGlmeS1kb25lLXRhcmdldC10b3AuaHRtbCBiL0xh
eW91dFRlc3RzL2xvYWRlci9uYXZpZ2F0aW9uLXBvbGljeS9zaG91bGQtb3Blbi1leHRlcm5hbC11
cmxzL3Jlc291cmNlcy9pZnJhbWUtY2xpY2stbm90aWZ5LWRvbmUtdGFyZ2V0LXRvcC5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU2YThmYTEKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0
ZXJuYWwtdXJscy9yZXNvdXJjZXMvaWZyYW1lLWNsaWNrLW5vdGlmeS1kb25lLXRhcmdldC10b3Au
aHRtbApAQCAtMCwwICsxLDE4IEBACis8c2NyaXB0PgorCitmdW5jdGlvbiBydW5UZXN0KCkKK3sK
KyAgICBpZiAoIXdpbmRvdy5ldmVudFNlbmRlcikKKyAgICAgICAgcmV0dXJuOworCisgICAgdmFy
IGEgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYSIpOworICAgIHZhciBpZnJhbWUgPSB3aW5k
b3cucGFyZW50LmRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJpZnJhbWUiKVswXTsKKyAg
ICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyhhLm9mZnNldExlZnQgKyBpZnJhbWUub2Zmc2V0TGVm
dCArIDIsIGEub2Zmc2V0VG9wICsgaWZyYW1lLm9mZnNldFRvcCArIDIpOworICAgIGV2ZW50U2Vu
ZGVyLm1vdXNlRG93bigpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAoKTsKK30KKworPC9zY3Jp
cHQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKTsiPgorPGEgaWQ9ImEiIGhyZWY9Im5vdGlmeS1k
b25lLmh0bWwiIHRhcmdldD0iX3RvcCI+Q2xpY2sgZm9yIG5vdGlmeSBkb25lIGluIHRoZSBtYWlu
IGZyYW1lPC9hPgorPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbG9hZGVyL25hdmln
YXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvcmVzb3VyY2VzL21haW4tZnJh
bWUtd2l0aC1zdWJmcmFtZS1jbGljay10YXJnZXRzLXN1YmZyYW1lLmh0bWwgYi9MYXlvdXRUZXN0
cy9sb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJscy9yZXNv
dXJjZXMvbWFpbi1mcmFtZS13aXRoLXN1YmZyYW1lLWNsaWNrLXRhcmdldHMtc3ViZnJhbWUuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iMTEzMDE1Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvbG9hZGVyL25hdmlnYXRpb24tcG9saWN5L3Nob3VsZC1vcGVu
LWV4dGVybmFsLXVybHMvcmVzb3VyY2VzL21haW4tZnJhbWUtd2l0aC1zdWJmcmFtZS1jbGljay10
YXJnZXRzLXN1YmZyYW1lLmh0bWwKQEAgLTAsMCArMSw1IEBACitUaGlzIHBhZ2UgY29udGFpbnMg
YSBzdWJmcmFtZS48YnI+CitDbGlja2luZyB0aGUgbGluayBpbiB0aGUgc3ViZnJhbWUgbmF2aWdh
dGVzIHRoZSBzdWJmcmFtZS48YnI+CitUaGUgInNob3VsZCBvcGVuIGV4dGVybmFsIFVSTHMiIGZs
YWcgb24gdGhhdCBuYXZpZ2F0aW9uIHNob3VsZCBiZSBmYWxzZS4gRXZlbiB0aG91Z2ggaXQgd2Fz
IGEgbGluayBjbGljaywgaXQgd2FzIHdpdGhpbiBhIHN1YmZyYW1lIHdoaWNoIHNob3VsZCBuZXZl
ciBnZXQgdGhlIGZsYWcgc2V0IHRvIHRydWUuPGJyPgorPGlmcmFtZSBzcmM9ImNsaWNrLW5vdGlm
eS1kb25lLWluLXNlbGYuaHRtbCI+PC9pZnJhbWU+CisgClwgTm8gbmV3bGluZSBhdCBlbmQgb2Yg
ZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbG9hZGVyL25hdmlnYXRpb24tcG9saWN5L3No
b3VsZC1vcGVuLWV4dGVybmFsLXVybHMvcmVzb3VyY2VzL21haW4tZnJhbWUtd2l0aC1zdWJmcmFt
ZS1wcm9ncmFtYXRpY2FsbHktbmF2aWdhdGVzLW1haW4uaHRtbCBiL0xheW91dFRlc3RzL2xvYWRl
ci9uYXZpZ2F0aW9uLXBvbGljeS9zaG91bGQtb3Blbi1leHRlcm5hbC11cmxzL3Jlc291cmNlcy9t
YWluLWZyYW1lLXdpdGgtc3ViZnJhbWUtcHJvZ3JhbWF0aWNhbGx5LW5hdmlnYXRlcy1tYWluLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODY2NjM4MgotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2xvYWRlci9uYXZpZ2F0aW9uLXBvbGljeS9zaG91bGQtb3Bl
bi1leHRlcm5hbC11cmxzL3Jlc291cmNlcy9tYWluLWZyYW1lLXdpdGgtc3ViZnJhbWUtcHJvZ3Jh
bWF0aWNhbGx5LW5hdmlnYXRlcy1tYWluLmh0bWwKQEAgLTAsMCArMSw2IEBACis8c2NyaXB0Pgor
aWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwor
PC9zY3JpcHQ+CisKKzxpZnJhbWUgc3JjPSJwcm9ncmFtYXRpY2FsbHktbmF2aWdhdGUtdG8tbm90
aWZ5LWRvbmUtdGFyZ2V0LXRvcC5odG1sIj48L2lmcmFtZT4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2xvYWRlci9uYXZpZ2F0aW9uLXBvbGljeS9zaG91bGQtb3Blbi1leHRlcm5hbC11cmxzL3Jl
c291cmNlcy9wcm9ncmFtYXRpY2FsbHktbmF2aWdhdGUtdG8tbm90aWZ5LWRvbmUtdGFyZ2V0LXRv
cC5odG1sIGIvTGF5b3V0VGVzdHMvbG9hZGVyL25hdmlnYXRpb24tcG9saWN5L3Nob3VsZC1vcGVu
LWV4dGVybmFsLXVybHMvcmVzb3VyY2VzL3Byb2dyYW1hdGljYWxseS1uYXZpZ2F0ZS10by1ub3Rp
ZnktZG9uZS10YXJnZXQtdG9wLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uMTk3YTQzMjYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdh
dGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJscy9yZXNvdXJjZXMvcHJvZ3JhbWF0
aWNhbGx5LW5hdmlnYXRlLXRvLW5vdGlmeS1kb25lLXRhcmdldC10b3AuaHRtbApAQCAtMCwwICsx
LDE0IEBACis8c2NyaXB0PgorCitpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgdGVzdFJ1bm5l
ci53YWl0VW50aWxEb25lKCk7CisgICAgCitmdW5jdGlvbiBsb2FkZWQoKQoreworICAgIHdpbmRv
dy50b3AubG9jYXRpb24uaHJlZiA9ICJub3RpZnktZG9uZS5odG1sIjsKK30KKworPC9zY3JpcHQ+
Cis8Ym9keSBvbmxvYWQ9ImxvYWRlZCgpOyI+CitUaGlzIHBhZ2UgZG9lcyBhIGphdmFzY3JpcHQg
Y2xpZW50IHJlZGlyZWN0IHRvIG5vdGlmeS1kb25lLmh0bWwgaW4gdGhlIG1haW4gZnJhbWUuCis8
L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kv
c2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJscy9yZXNvdXJjZXMvcHJvZ3JhbWF0aWNhbGx5LW5hdmln
YXRlLXRvLW5vdGlmeS1kb25lLmh0bWwgYi9MYXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdhdGlvbi1w
b2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJscy9yZXNvdXJjZXMvcHJvZ3JhbWF0aWNhbGx5
LW5hdmlnYXRlLXRvLW5vdGlmeS1kb25lLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMC4uYjU5YjliYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2xvYWRlci9u
YXZpZ2F0aW9uLXBvbGljeS9zaG91bGQtb3Blbi1leHRlcm5hbC11cmxzL3Jlc291cmNlcy9wcm9n
cmFtYXRpY2FsbHktbmF2aWdhdGUtdG8tbm90aWZ5LWRvbmUuaHRtbApAQCAtMCwwICsxLDE0IEBA
Cis8c2NyaXB0PgorCitpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgdGVzdFJ1bm5lci53YWl0
VW50aWxEb25lKCk7CisgICAgCitmdW5jdGlvbiBsb2FkZWQoKQoreworICAgIHdpbmRvdy5sb2Nh
dGlvbi5ocmVmID0gIm5vdGlmeS1kb25lLmh0bWwiOworfQorCis8L3NjcmlwdD4KKzxib2R5IG9u
bG9hZD0ibG9hZGVkKCk7Ij4KK1RoaXMgcGFnZSBkb2VzIGEgamF2YXNjcmlwdCBjbGllbnQgcmVk
aXJlY3QgdG8gbm90aWZ5LWRvbmUuaHRtbC4KKzwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2xvYWRlci9uYXZpZ2F0aW9uLXBvbGljeS9zaG91bGQtb3Blbi1leHRlcm5hbC11cmxzL3Jl
c291cmNlcy91c2VyLWdlc3R1cmUtdGFyZ2V0LWJsYW5rLXRvLW5vdGlmeS1kb25lLWZyb20tc3Vi
ZnJhbWUuaHRtbCBiL0xheW91dFRlc3RzL2xvYWRlci9uYXZpZ2F0aW9uLXBvbGljeS9zaG91bGQt
b3Blbi1leHRlcm5hbC11cmxzL3Jlc291cmNlcy91c2VyLWdlc3R1cmUtdGFyZ2V0LWJsYW5rLXRv
LW5vdGlmeS1kb25lLWZyb20tc3ViZnJhbWUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi4wMmM3NDM1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbG9hZGVy
L25hdmlnYXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvcmVzb3VyY2VzL3Vz
ZXItZ2VzdHVyZS10YXJnZXQtYmxhbmstdG8tbm90aWZ5LWRvbmUtZnJvbS1zdWJmcmFtZS5odG1s
CkBAIC0wLDAgKzEgQEAKKzxpZnJhbWUgc3JjPSJ1c2VyLWdlc3R1cmUtdGFyZ2V0LWJsYW5rLXRv
LW5vdGlmeS1kb25lLmh0bWwiPjwvaWZyYW1lPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2xvYWRlci9uYXZpZ2F0aW9uLXBvbGljeS9zaG91bGQt
b3Blbi1leHRlcm5hbC11cmxzL3Jlc291cmNlcy91c2VyLWdlc3R1cmUtdGFyZ2V0LWJsYW5rLXRv
LW5vdGlmeS1kb25lLmh0bWwgYi9MYXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kv
c2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJscy9yZXNvdXJjZXMvdXNlci1nZXN0dXJlLXRhcmdldC1i
bGFuay10by1ub3RpZnktZG9uZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLmIzOWRkOGYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdh
dGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJscy9yZXNvdXJjZXMvdXNlci1nZXN0
dXJlLXRhcmdldC1ibGFuay10by1ub3RpZnktZG9uZS5odG1sCkBAIC0wLDAgKzEsMjggQEAKKzxz
Y3JpcHQ+CisKK2lmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgIHRlc3RSdW5uZXIud2FpdFVu
dGlsRG9uZSgpOworICAgIHRlc3RSdW5uZXIuc2V0Q2FuT3BlbldpbmRvd3MoKTsKK30KKworZnVu
Y3Rpb24gbG9hZGVkKCkKK3sKKyAgICBpZiAoIXdpbmRvdy5ldmVudFNlbmRlcikKKyAgICAgICAg
cmV0dXJuOworCisgICAgdmFyIGEgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYSIpOworICAg
IHZhciBpZnJhbWUgPSB3aW5kb3cucGFyZW50LmRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1l
KCJpZnJhbWUiKVswXTsKKworICAgIGlmIChpZnJhbWUpCisgICAgICAgIGV2ZW50U2VuZGVyLm1v
dXNlTW92ZVRvKGEub2Zmc2V0TGVmdCArIGlmcmFtZS5vZmZzZXRMZWZ0ICsgMiwgYS5vZmZzZXRU
b3AgKyBpZnJhbWUub2Zmc2V0VG9wICsgMik7CisgICAgZWxzZQorICAgICAgICBldmVudFNlbmRl
ci5tb3VzZU1vdmVUbyhhLm9mZnNldExlZnQgKyAyLCBhLm9mZnNldFRvcCArIDIpOworCisgICAg
ZXZlbnRTZW5kZXIubW91c2VEb3duKCk7CisgICAgZXZlbnRTZW5kZXIubW91c2VVcCgpOworfQor
Cis8L3NjcmlwdD4KKzxib2R5IG9ubG9hZD0ibG9hZGVkKCk7Ij4KKzxhIGlkPSJhIiBocmVmPSJu
b3RpZnktZG9uZS5odG1sIiB0YXJnZXQ9Il9ibGFuayI+Q2xpY2sgdG8gb3BlbiBsaW5rIGluIG5l
dyB3aW5kb3cuPC9hPgorPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbG9hZGVyL25h
dmlnYXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvcmVzb3VyY2VzL3VzZXIt
Z2VzdHVyZS13aW5kb3ctb3Blbi10by1ub3RpZnktZG9uZS1mcm9tLXN1YmZyYW1lLmh0bWwgYi9M
YXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwt
dXJscy9yZXNvdXJjZXMvdXNlci1nZXN0dXJlLXdpbmRvdy1vcGVuLXRvLW5vdGlmeS1kb25lLWZy
b20tc3ViZnJhbWUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41MGZj
NmVmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbG9hZGVyL25hdmlnYXRpb24tcG9s
aWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvcmVzb3VyY2VzL3VzZXItZ2VzdHVyZS13aW5k
b3ctb3Blbi10by1ub3RpZnktZG9uZS1mcm9tLXN1YmZyYW1lLmh0bWwKQEAgLTAsMCArMSBAQAor
PGlmcmFtZSBzcmM9InVzZXItZ2VzdHVyZS13aW5kb3ctb3Blbi10by1ub3RpZnktZG9uZS5odG1s
Ij48L2lmcmFtZT4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9sb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJs
cy9yZXNvdXJjZXMvdXNlci1nZXN0dXJlLXdpbmRvdy1vcGVuLXRvLW5vdGlmeS1kb25lLmh0bWwg
Yi9MYXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJu
YWwtdXJscy9yZXNvdXJjZXMvdXNlci1nZXN0dXJlLXdpbmRvdy1vcGVuLXRvLW5vdGlmeS1kb25l
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjk2MzhjNAotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2xvYWRlci9uYXZpZ2F0aW9uLXBvbGljeS9zaG91bGQt
b3Blbi1leHRlcm5hbC11cmxzL3Jlc291cmNlcy91c2VyLWdlc3R1cmUtd2luZG93LW9wZW4tdG8t
bm90aWZ5LWRvbmUuaHRtbApAQCAtMCwwICsxLDMzIEBACis8c2NyaXB0PgorCitpZiAod2luZG93
LnRlc3RSdW5uZXIpIHsKKyAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICB0ZXN0
UnVubmVyLnNldENhbk9wZW5XaW5kb3dzKCk7Cit9CisKK2Z1bmN0aW9uIGxvYWRlZCgpCit7Cisg
ICAgaWYgKCF3aW5kb3cuZXZlbnRTZW5kZXIpCisgICAgICAgIHJldHVybjsKKworICAgIHZhciBh
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImEiKTsKKyAgICB2YXIgaWZyYW1lID0gd2luZG93
LnBhcmVudC5kb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaWZyYW1lIilbMF07CisKKyAg
ICBpZiAoaWZyYW1lKQorICAgICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyhhLm9mZnNldExl
ZnQgKyBpZnJhbWUub2Zmc2V0TGVmdCArIDIsIGEub2Zmc2V0VG9wICsgaWZyYW1lLm9mZnNldFRv
cCArIDIpOworICAgIGVsc2UKKyAgICAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oYS5vZmZz
ZXRMZWZ0ICsgMiwgYS5vZmZzZXRUb3AgKyAyKTsKKworICAgIGV2ZW50U2VuZGVyLm1vdXNlRG93
bigpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAoKTsKK30KKworZnVuY3Rpb24gY2xpY2tlZCgp
Cit7CisgICAgd2luZG93Lm9wZW4oIm5vdGlmeS1kb25lLmh0bWwiKTsKK30KKworPC9zY3JpcHQ+
Cis8Ym9keSBvbmxvYWQ9ImxvYWRlZCgpOyI+Cis8YSBpZD0iYSIgb25jbGljaz0iY2xpY2tlZCgp
OyI+Q2xpY2sgdG8gZG8gYSB3aW5kb3cub3BlbjwvYT4KKzwvYm9keT4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2xvYWRlci9uYXZpZ2F0aW9uLXBvbGljeS9zaG91bGQtb3Blbi1leHRlcm5hbC11
cmxzL3Jlc291cmNlcy93aW5kb3ctb3Blbi10by1ub3RpZnktZG9uZS1mcm9tLXN1YmZyYW1lLmh0
bWwgYi9MYXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0
ZXJuYWwtdXJscy9yZXNvdXJjZXMvd2luZG93LW9wZW4tdG8tbm90aWZ5LWRvbmUtZnJvbS1zdWJm
cmFtZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNlZGQ1MTcKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hv
dWxkLW9wZW4tZXh0ZXJuYWwtdXJscy9yZXNvdXJjZXMvd2luZG93LW9wZW4tdG8tbm90aWZ5LWRv
bmUtZnJvbS1zdWJmcmFtZS5odG1sCkBAIC0wLDAgKzEgQEAKKzxpZnJhbWUgc3JjPSJ3aW5kb3ct
b3Blbi10by1ub3RpZnktZG9uZS5odG1sIj48L2lmcmFtZT4KXCBObyBuZXdsaW5lIGF0IGVuZCBv
ZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kv
c2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJscy9yZXNvdXJjZXMvd2luZG93LW9wZW4tdG8tbm90aWZ5
LWRvbmUuaHRtbCBiL0xheW91dFRlc3RzL2xvYWRlci9uYXZpZ2F0aW9uLXBvbGljeS9zaG91bGQt
b3Blbi1leHRlcm5hbC11cmxzL3Jlc291cmNlcy93aW5kb3ctb3Blbi10by1ub3RpZnktZG9uZS5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdkMmQwOTAKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9w
ZW4tZXh0ZXJuYWwtdXJscy9yZXNvdXJjZXMvd2luZG93LW9wZW4tdG8tbm90aWZ5LWRvbmUuaHRt
bApAQCAtMCwwICsxLDE1IEBACis8c2NyaXB0PgorCitpZiAod2luZG93LnRlc3RSdW5uZXIpIHsK
KyAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICB0ZXN0UnVubmVyLnNldENhbk9w
ZW5XaW5kb3dzKCk7Cit9CisKK2Z1bmN0aW9uIGxvYWRlZCgpCit7CisgICAgd2luZG93Lm9wZW4o
Im5vdGlmeS1kb25lLmh0bWwiKTsKK30KKworPC9zY3JpcHQ+Cis8Ym9keSBvbmxvYWQ9ImxvYWRl
ZCgpOyI+Cis8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdhdGlv
bi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJscy9zdWJmcmFtZS1jbGljay10YXJnZXQt
c2VsZi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kv
c2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJscy9zdWJmcmFtZS1jbGljay10YXJnZXQtc2VsZi1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzA1NTUzMwotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2xvYWRlci9uYXZpZ2F0aW9uLXBvbGljeS9zaG91
bGQtb3Blbi1leHRlcm5hbC11cmxzL3N1YmZyYW1lLWNsaWNrLXRhcmdldC1zZWxmLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDkgQEAKKyAtIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24g
Cis8TlNVUkxSZXF1ZXN0IFVSTCBhYm91dDpibGFuaywgbWFpbiBkb2N1bWVudCBVUkwgc3ViZnJh
bWUtY2xpY2stdGFyZ2V0LXNlbGYuaHRtbCwgaHR0cCBtZXRob2QgR0VUPiBpcyBtYWluIGZyYW1l
IC0gbm8gc2hvdWxkIG9wZW4gVVJMcyBleHRlcm5hbGx5IC0gbm8KKyAtIGRlY2lkZVBvbGljeUZv
ck5hdmlnYXRpb25BY3Rpb24gCis8TlNVUkxSZXF1ZXN0IFVSTCByZXNvdXJjZXMvaWZyYW1lLWNs
aWNrLW5vdGlmeS1kb25lLXRhcmdldC1zZWxmLmh0bWwsIG1haW4gZG9jdW1lbnQgVVJMIHN1YmZy
YW1lLWNsaWNrLXRhcmdldC1zZWxmLmh0bWwsIGh0dHAgbWV0aG9kIEdFVD4gaXMgbWFpbiBmcmFt
ZSAtIG5vIHNob3VsZCBvcGVuIFVSTHMgZXh0ZXJuYWxseSAtIG5vCisgLSBkZWNpZGVQb2xpY3lG
b3JOYXZpZ2F0aW9uQWN0aW9uIAorPE5TVVJMUmVxdWVzdCBVUkwgcmVzb3VyY2VzL25vdGlmeS1k
b25lLmh0bWwsIG1haW4gZG9jdW1lbnQgVVJMIHN1YmZyYW1lLWNsaWNrLXRhcmdldC1zZWxmLmh0
bWwsIGh0dHAgbWV0aG9kIEdFVD4gaXMgbWFpbiBmcmFtZSAtIG5vIHNob3VsZCBvcGVuIFVSTHMg
ZXh0ZXJuYWxseSAtIG5vCitUaGlzIHBhZ2UgaGFzIGEgc3ViZnJhbWUgd2l0aCBhIGxpbmsuCitU
aGVuIGEgbGluayBpcyBjbGlja2VkIGluIHRoYXQgc3ViZnJhbWUgdGhhdCBuYXZpZ2F0ZXMgaW5z
aWRlIHRoYXQgc3ViZnJhbWUsIGFuZCB0aGF0IG5hdmlnYXRpb24gc2hvdWxkIGhhdmUgdGhlICJz
aG91bGQgb3BlbiBleHRlcm5hbCB1cmxzIiBmbGFnIHNldCB0byBmYWxzZSBldmVuIHRob3VnaCBp
dCB3YXMgZnJvbSBhIHVzZXIgZ2VzdHVyZS4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbG9h
ZGVyL25hdmlnYXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvc3ViZnJhbWUt
Y2xpY2stdGFyZ2V0LXNlbGYuaHRtbCBiL0xheW91dFRlc3RzL2xvYWRlci9uYXZpZ2F0aW9uLXBv
bGljeS9zaG91bGQtb3Blbi1leHRlcm5hbC11cmxzL3N1YmZyYW1lLWNsaWNrLXRhcmdldC1zZWxm
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTRlZDdkZQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2xvYWRlci9uYXZpZ2F0aW9uLXBvbGljeS9zaG91bGQt
b3Blbi1leHRlcm5hbC11cmxzL3N1YmZyYW1lLWNsaWNrLXRhcmdldC1zZWxmLmh0bWwKQEAgLTAs
MCArMSwxOSBAQAorPHNjcmlwdD4KKworaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgdGVz
dFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgdGVzdFJ1bm5lci5kdW1wUG9saWN5RGVsZWdhdGVD
YWxsYmFja3MoKTsKKyAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKK30KKworZnVuY3Rp
b24gcnVuVGVzdCgpCit7CisgICAgd2luZG93LmZyYW1lc1swXS5sb2NhdGlvbiA9ICJyZXNvdXJj
ZXMvaWZyYW1lLWNsaWNrLW5vdGlmeS1kb25lLXRhcmdldC1zZWxmLmh0bWwiOworfQorCis8L3Nj
cmlwdD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpOyI+CitUaGlzIHBhZ2UgaGFzIGEgc3ViZnJh
bWUgd2l0aCBhIGxpbmsuPGJyPgorVGhlbiBhIGxpbmsgaXMgY2xpY2tlZCBpbiB0aGF0IHN1YmZy
YW1lIHRoYXQgbmF2aWdhdGVzIGluc2lkZSB0aGF0IHN1YmZyYW1lLCBhbmQgdGhhdCBuYXZpZ2F0
aW9uIHNob3VsZCBoYXZlIHRoZSAic2hvdWxkIG9wZW4gZXh0ZXJuYWwgdXJscyIgZmxhZyBzZXQg
dG8gZmFsc2UgZXZlbiB0aG91Z2ggaXQgd2FzIGZyb20gYSB1c2VyIGdlc3R1cmUuPGJyPgorPGlm
cmFtZT48L2lmcmFtZT4KKzwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2xvYWRlci9u
YXZpZ2F0aW9uLXBvbGljeS9zaG91bGQtb3Blbi1leHRlcm5hbC11cmxzL3N1YmZyYW1lLWNsaWNr
LXRhcmdldC10b3AtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvbG9hZGVyL25hdmlnYXRpb24t
cG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvc3ViZnJhbWUtY2xpY2stdGFyZ2V0LXRv
cC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWI1ZDNm
NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2xvYWRlci9uYXZpZ2F0aW9uLXBvbGlj
eS9zaG91bGQtb3Blbi1leHRlcm5hbC11cmxzL3N1YmZyYW1lLWNsaWNrLXRhcmdldC10b3AtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsNyBAQAorIC0gZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFj
dGlvbiAKKzxOU1VSTFJlcXVlc3QgVVJMIGFib3V0OmJsYW5rLCBtYWluIGRvY3VtZW50IFVSTCBz
dWJmcmFtZS1jbGljay10YXJnZXQtdG9wLmh0bWwsIGh0dHAgbWV0aG9kIEdFVD4gaXMgbWFpbiBm
cmFtZSAtIG5vIHNob3VsZCBvcGVuIFVSTHMgZXh0ZXJuYWxseSAtIG5vCisgLSBkZWNpZGVQb2xp
Y3lGb3JOYXZpZ2F0aW9uQWN0aW9uIAorPE5TVVJMUmVxdWVzdCBVUkwgcmVzb3VyY2VzL2lmcmFt
ZS1jbGljay1ub3RpZnktZG9uZS10YXJnZXQtdG9wLmh0bWwsIG1haW4gZG9jdW1lbnQgVVJMIHN1
YmZyYW1lLWNsaWNrLXRhcmdldC10b3AuaHRtbCwgaHR0cCBtZXRob2QgR0VUPiBpcyBtYWluIGZy
YW1lIC0gbm8gc2hvdWxkIG9wZW4gVVJMcyBleHRlcm5hbGx5IC0gbm8KKyAtIGRlY2lkZVBvbGlj
eUZvck5hdmlnYXRpb25BY3Rpb24gCis8TlNVUkxSZXF1ZXN0IFVSTCByZXNvdXJjZXMvbm90aWZ5
LWRvbmUuaHRtbCwgbWFpbiBkb2N1bWVudCBVUkwgcmVzb3VyY2VzL25vdGlmeS1kb25lLmh0bWws
IGh0dHAgbWV0aG9kIEdFVD4gaXMgbWFpbiBmcmFtZSAtIHllcyBzaG91bGQgb3BlbiBVUkxzIGV4
dGVybmFsbHkgLSB5ZXMKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbG9hZGVyL25hdmlnYXRp
b24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvc3ViZnJhbWUtY2xpY2stdGFyZ2V0
LXRvcC5odG1sIGIvTGF5b3V0VGVzdHMvbG9hZGVyL25hdmlnYXRpb24tcG9saWN5L3Nob3VsZC1v
cGVuLWV4dGVybmFsLXVybHMvc3ViZnJhbWUtY2xpY2stdGFyZ2V0LXRvcC5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNiMmE2YWEKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwt
dXJscy9zdWJmcmFtZS1jbGljay10YXJnZXQtdG9wLmh0bWwKQEAgLTAsMCArMSwxOSBAQAorPHNj
cmlwdD4KKworaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgdGVzdFJ1bm5lci5kdW1wQXNU
ZXh0KCk7CisgICAgdGVzdFJ1bm5lci5kdW1wUG9saWN5RGVsZWdhdGVDYWxsYmFja3MoKTsKKyAg
ICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKK30KKworZnVuY3Rpb24gcnVuVGVzdCgpCit7
CisgICAgd2luZG93LmZyYW1lc1swXS5sb2NhdGlvbiA9ICJyZXNvdXJjZXMvaWZyYW1lLWNsaWNr
LW5vdGlmeS1kb25lLXRhcmdldC10b3AuaHRtbCI7Cit9CisKKzwvc2NyaXB0PgorPGJvZHkgb25s
b2FkPSJydW5UZXN0KCk7Ij4KK1RoaXMgcGFnZSBoYXMgYSBzdWJmcmFtZSB3aXRoIGEgbGluay48
YnI+CitUaGVuIGEgbGluayBpcyBjbGlja2VkIGluIHRoYXQgc3ViZnJhbWUgdGhhdCBuYXZpZ2F0
ZXMgdGhlIG1haW4gZnJhbWUsIGFuZCB0aGF0IG5hdmlnYXRpb24gc2hvdWxkIGhhdmUgdGhlICJz
aG91bGQgb3BlbiBleHRlcm5hbCB1cmxzIiBmbGFnIHNldCB0byB0cnVlIGJlY2F1c2UgaXQgd2Fz
IGZyb20gYSB1c2VyIGdlc3R1cmUuPGJyPgorPGlmcmFtZT48L2lmcmFtZT4KKzwvYm9keT4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2xvYWRlci9uYXZpZ2F0aW9uLXBvbGljeS9zaG91bGQtb3Bl
bi1leHRlcm5hbC11cmxzL3VzZXItZ2VzdHVyZS10YXJnZXQtYmxhbmstd2l0aC1mbGFnLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2xvYWRlci9uYXZpZ2F0aW9uLXBvbGljeS9zaG91bGQtb3Bl
bi1leHRlcm5hbC11cmxzL3VzZXItZ2VzdHVyZS10YXJnZXQtYmxhbmstd2l0aC1mbGFnLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lZjAwNjliCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbG9hZGVyL25hdmlnYXRpb24tcG9saWN5L3Nob3Vs
ZC1vcGVuLWV4dGVybmFsLXVybHMvdXNlci1nZXN0dXJlLXRhcmdldC1ibGFuay13aXRoLWZsYWct
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorIC0gZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlv
bkFjdGlvbiAKKzxOU1VSTFJlcXVlc3QgVVJMIHJlc291cmNlcy91c2VyLWdlc3R1cmUtdGFyZ2V0
LWJsYW5rLXRvLW5vdGlmeS1kb25lLmh0bWwsIG1haW4gZG9jdW1lbnQgVVJMIHJlc291cmNlcy91
c2VyLWdlc3R1cmUtdGFyZ2V0LWJsYW5rLXRvLW5vdGlmeS1kb25lLmh0bWwsIGh0dHAgbWV0aG9k
IEdFVD4gaXMgbWFpbiBmcmFtZSAtIHllcyBzaG91bGQgb3BlbiBVUkxzIGV4dGVybmFsbHkgLSB5
ZXMKKyAtIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24gCis8TlNVUkxSZXF1ZXN0IFVS
TCBub3RpZnktZG9uZS5odG1sLCBtYWluIGRvY3VtZW50IFVSTCBub3RpZnktZG9uZS5odG1sLCBo
dHRwIG1ldGhvZCBHRVQ+IGlzIG1haW4gZnJhbWUgLSB5ZXMgc2hvdWxkIG9wZW4gVVJMcyBleHRl
cm5hbGx5IC0geWVzCitDbGljayB0byBvcGVuIGxpbmsgaW4gbmV3IHdpbmRvdy4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2xvYWRlci9uYXZpZ2F0aW9uLXBvbGljeS9zaG91bGQtb3Blbi1leHRl
cm5hbC11cmxzL3VzZXItZ2VzdHVyZS10YXJnZXQtYmxhbmstd2l0aC1mbGFnLWZyb20tc3ViZnJh
bWUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvbG9hZGVyL25hdmlnYXRpb24tcG9saWN5L3No
b3VsZC1vcGVuLWV4dGVybmFsLXVybHMvdXNlci1nZXN0dXJlLXRhcmdldC1ibGFuay13aXRoLWZs
YWctZnJvbS1zdWJmcmFtZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMC4uMjk5NDgzYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2xvYWRlci9u
YXZpZ2F0aW9uLXBvbGljeS9zaG91bGQtb3Blbi1leHRlcm5hbC11cmxzL3VzZXItZ2VzdHVyZS10
YXJnZXQtYmxhbmstd2l0aC1mbGFnLWZyb20tc3ViZnJhbWUtZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsNyBAQAorIC0gZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbiAKKzxOU1VSTFJlcXVl
c3QgVVJMIHJlc291cmNlcy91c2VyLWdlc3R1cmUtdGFyZ2V0LWJsYW5rLXRvLW5vdGlmeS1kb25l
LWZyb20tc3ViZnJhbWUuaHRtbCwgbWFpbiBkb2N1bWVudCBVUkwgcmVzb3VyY2VzL3VzZXItZ2Vz
dHVyZS10YXJnZXQtYmxhbmstdG8tbm90aWZ5LWRvbmUtZnJvbS1zdWJmcmFtZS5odG1sLCBodHRw
IG1ldGhvZCBHRVQ+IGlzIG1haW4gZnJhbWUgLSB5ZXMgc2hvdWxkIG9wZW4gVVJMcyBleHRlcm5h
bGx5IC0geWVzCisgLSBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uIAorPE5TVVJMUmVx
dWVzdCBVUkwgdXNlci1nZXN0dXJlLXRhcmdldC1ibGFuay10by1ub3RpZnktZG9uZS5odG1sLCBt
YWluIGRvY3VtZW50IFVSTCB1c2VyLWdlc3R1cmUtdGFyZ2V0LWJsYW5rLXRvLW5vdGlmeS1kb25l
LWZyb20tc3ViZnJhbWUuaHRtbCwgaHR0cCBtZXRob2QgR0VUPiBpcyBtYWluIGZyYW1lIC0gbm8g
c2hvdWxkIG9wZW4gVVJMcyBleHRlcm5hbGx5IC0gbm8KKyAtIGRlY2lkZVBvbGljeUZvck5hdmln
YXRpb25BY3Rpb24gCis8TlNVUkxSZXF1ZXN0IFVSTCBub3RpZnktZG9uZS5odG1sLCBtYWluIGRv
Y3VtZW50IFVSTCB1c2VyLWdlc3R1cmUtdGFyZ2V0LWJsYW5rLXRvLW5vdGlmeS1kb25lLWZyb20t
c3ViZnJhbWUuaHRtbCwgaHR0cCBtZXRob2QgR0VUPiBpcyBtYWluIGZyYW1lIC0geWVzIHNob3Vs
ZCBvcGVuIFVSTHMgZXh0ZXJuYWxseSAtIHllcworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9s
b2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJscy91c2VyLWdl
c3R1cmUtdGFyZ2V0LWJsYW5rLXdpdGgtZmxhZy1mcm9tLXN1YmZyYW1lLmh0bWwgYi9MYXlvdXRU
ZXN0cy9sb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJscy91
c2VyLWdlc3R1cmUtdGFyZ2V0LWJsYW5rLXdpdGgtZmxhZy1mcm9tLXN1YmZyYW1lLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWVmYjg5NgotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2xvYWRlci9uYXZpZ2F0aW9uLXBvbGljeS9zaG91bGQtb3Blbi1leHRl
cm5hbC11cmxzL3VzZXItZ2VzdHVyZS10YXJnZXQtYmxhbmstd2l0aC1mbGFnLWZyb20tc3ViZnJh
bWUuaHRtbApAQCAtMCwwICsxLDEwIEBACis8c2NyaXB0PgoraWYgKHdpbmRvdy50ZXN0UnVubmVy
KSB7CisgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgdGVzdFJ1bm5lci5kdW1wUG9s
aWN5RGVsZWdhdGVDYWxsYmFja3MoKTsKKyAgICB0ZXN0UnVubmVyLnF1ZXVlTG9hZCgicmVzb3Vy
Y2VzL3VzZXItZ2VzdHVyZS10YXJnZXQtYmxhbmstdG8tbm90aWZ5LWRvbmUtZnJvbS1zdWJmcmFt
ZS5odG1sIiwgIiIsIHRydWUpOworfQorPC9zY3JpcHQ+CitUaGlzIHBhZ2Ugb3BlbnMgYSAybmQg
cGFnZSB3aXRoIHRoZSAic2hvdWxkIG9wZW4gZXh0ZXJuYWwgVVJMcyIgZmxhZyBzZXQgdG8gdHJ1
ZS48YnI+CitUaGF0IHBhZ2UgaGFzIGEgc3ViZnJhbWUgd2l0aCBhIGxpbmsgdGhhdCAtIHdoZW4g
Y2xpY2tlZCAtIG9wZW5zIGEgbGluayB0byBhIDNyZCBwYWdlIGluIGEgbmV3IHdpbmRvdy48YnI+
CitUaGF0IDNyZCBwYWdlIHNob3VsZCBoYXZlIHRoZSBmbGFnIHNldCB0byB0cnVlIGJlY2F1c2Ug
aXQgd2FzIGZyb20gYSB1c2VyIGdlc3R1cmUuPGJyPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
bG9hZGVyL25hdmlnYXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvdXNlci1n
ZXN0dXJlLXRhcmdldC1ibGFuay13aXRoLWZsYWcuaHRtbCBiL0xheW91dFRlc3RzL2xvYWRlci9u
YXZpZ2F0aW9uLXBvbGljeS9zaG91bGQtb3Blbi1leHRlcm5hbC11cmxzL3VzZXItZ2VzdHVyZS10
YXJnZXQtYmxhbmstd2l0aC1mbGFnLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uMGM4N2Y0MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2xvYWRlci9uYXZp
Z2F0aW9uLXBvbGljeS9zaG91bGQtb3Blbi1leHRlcm5hbC11cmxzL3VzZXItZ2VzdHVyZS10YXJn
ZXQtYmxhbmstd2l0aC1mbGFnLmh0bWwKQEAgLTAsMCArMSwxMCBAQAorPHNjcmlwdD4KK2lmICh3
aW5kb3cudGVzdFJ1bm5lcikgeworICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAgIHRl
c3RSdW5uZXIuZHVtcFBvbGljeURlbGVnYXRlQ2FsbGJhY2tzKCk7CisgICAgdGVzdFJ1bm5lci5x
dWV1ZUxvYWQoInJlc291cmNlcy91c2VyLWdlc3R1cmUtdGFyZ2V0LWJsYW5rLXRvLW5vdGlmeS1k
b25lLmh0bWwiLCAiIiwgdHJ1ZSk7Cit9Cis8L3NjcmlwdD4KK1RoaXMgcGFnZSBvcGVucyBhIDJu
ZCBwYWdlIHdpdGggdGhlICJzaG91bGQgb3BlbiBleHRlcm5hbCBVUkxzIiBmbGFnIHNldCB0byB0
cnVlLjxicj4KK1RoYXQgcGFnZSBoYXMgYSBsaW5rIHRoYXQgLSB3aGVuIGNsaWNrZWQgLSBvcGVu
cyBhIGxpbmsgdG8gYSAzcmQgcGFnZSBpbiBhIG5ldyB3aW5kb3cuPGJyPgorVGhhdCAzcmQgcGFn
ZSBzaG91bGQgaGF2ZSB0aGUgZmxhZyBzZXQgdG8gdHJ1ZSBiZWNhdXNlIGl0IHdhcyBmcm9tIGEg
dXNlciBnZXN0dXJlLjxicj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2xvYWRlci9uYXZpZ2F0
aW9uLXBvbGljeS9zaG91bGQtb3Blbi1leHRlcm5hbC11cmxzL3VzZXItZ2VzdHVyZS10YXJnZXQt
Ymxhbmstd2l0aG91dC1mbGFnLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2xvYWRlci9uYXZp
Z2F0aW9uLXBvbGljeS9zaG91bGQtb3Blbi1leHRlcm5hbC11cmxzL3VzZXItZ2VzdHVyZS10YXJn
ZXQtYmxhbmstd2l0aG91dC1mbGFnLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwLi5jNzM3MTMyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbG9h
ZGVyL25hdmlnYXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvdXNlci1nZXN0
dXJlLXRhcmdldC1ibGFuay13aXRob3V0LWZsYWctZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBA
QAorIC0gZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbiAKKzxOU1VSTFJlcXVlc3QgVVJM
IHJlc291cmNlcy91c2VyLWdlc3R1cmUtdGFyZ2V0LWJsYW5rLXRvLW5vdGlmeS1kb25lLmh0bWws
IG1haW4gZG9jdW1lbnQgVVJMIHJlc291cmNlcy91c2VyLWdlc3R1cmUtdGFyZ2V0LWJsYW5rLXRv
LW5vdGlmeS1kb25lLmh0bWwsIGh0dHAgbWV0aG9kIEdFVD4gaXMgbWFpbiBmcmFtZSAtIHllcyBz
aG91bGQgb3BlbiBVUkxzIGV4dGVybmFsbHkgLSBubworIC0gZGVjaWRlUG9saWN5Rm9yTmF2aWdh
dGlvbkFjdGlvbiAKKzxOU1VSTFJlcXVlc3QgVVJMIG5vdGlmeS1kb25lLmh0bWwsIG1haW4gZG9j
dW1lbnQgVVJMIG5vdGlmeS1kb25lLmh0bWwsIGh0dHAgbWV0aG9kIEdFVD4gaXMgbWFpbiBmcmFt
ZSAtIHllcyBzaG91bGQgb3BlbiBVUkxzIGV4dGVybmFsbHkgLSB5ZXMKK0NsaWNrIHRvIG9wZW4g
bGluayBpbiBuZXcgd2luZG93LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbG9hZGVyL25hdmln
YXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvdXNlci1nZXN0dXJlLXRhcmdl
dC1ibGFuay13aXRob3V0LWZsYWctZnJvbS1zdWJmcmFtZS1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9sb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJscy91
c2VyLWdlc3R1cmUtdGFyZ2V0LWJsYW5rLXdpdGhvdXQtZmxhZy1mcm9tLXN1YmZyYW1lLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kZDUxZTNmCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbG9hZGVyL25hdmlnYXRpb24tcG9saWN5L3Nob3Vs
ZC1vcGVuLWV4dGVybmFsLXVybHMvdXNlci1nZXN0dXJlLXRhcmdldC1ibGFuay13aXRob3V0LWZs
YWctZnJvbS1zdWJmcmFtZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw3IEBACisgLSBkZWNpZGVQ
b2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uIAorPE5TVVJMUmVxdWVzdCBVUkwgcmVzb3VyY2VzL3Vz
ZXItZ2VzdHVyZS10YXJnZXQtYmxhbmstdG8tbm90aWZ5LWRvbmUtZnJvbS1zdWJmcmFtZS5odG1s
LCBtYWluIGRvY3VtZW50IFVSTCByZXNvdXJjZXMvdXNlci1nZXN0dXJlLXRhcmdldC1ibGFuay10
by1ub3RpZnktZG9uZS1mcm9tLXN1YmZyYW1lLmh0bWwsIGh0dHAgbWV0aG9kIEdFVD4gaXMgbWFp
biBmcmFtZSAtIHllcyBzaG91bGQgb3BlbiBVUkxzIGV4dGVybmFsbHkgLSBubworIC0gZGVjaWRl
UG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbiAKKzxOU1VSTFJlcXVlc3QgVVJMIHVzZXItZ2VzdHVy
ZS10YXJnZXQtYmxhbmstdG8tbm90aWZ5LWRvbmUuaHRtbCwgbWFpbiBkb2N1bWVudCBVUkwgdXNl
ci1nZXN0dXJlLXRhcmdldC1ibGFuay10by1ub3RpZnktZG9uZS1mcm9tLXN1YmZyYW1lLmh0bWws
IGh0dHAgbWV0aG9kIEdFVD4gaXMgbWFpbiBmcmFtZSAtIG5vIHNob3VsZCBvcGVuIFVSTHMgZXh0
ZXJuYWxseSAtIG5vCisgLSBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uIAorPE5TVVJM
UmVxdWVzdCBVUkwgbm90aWZ5LWRvbmUuaHRtbCwgbWFpbiBkb2N1bWVudCBVUkwgdXNlci1nZXN0
dXJlLXRhcmdldC1ibGFuay10by1ub3RpZnktZG9uZS1mcm9tLXN1YmZyYW1lLmh0bWwsIGh0dHAg
bWV0aG9kIEdFVD4gaXMgbWFpbiBmcmFtZSAtIHllcyBzaG91bGQgb3BlbiBVUkxzIGV4dGVybmFs
bHkgLSB5ZXMKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbG9hZGVyL25hdmlnYXRpb24tcG9s
aWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvdXNlci1nZXN0dXJlLXRhcmdldC1ibGFuay13
aXRob3V0LWZsYWctZnJvbS1zdWJmcmFtZS5odG1sIGIvTGF5b3V0VGVzdHMvbG9hZGVyL25hdmln
YXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvdXNlci1nZXN0dXJlLXRhcmdl
dC1ibGFuay13aXRob3V0LWZsYWctZnJvbS1zdWJmcmFtZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLmQ0ODY4MjcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9sb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJscy91c2Vy
LWdlc3R1cmUtdGFyZ2V0LWJsYW5rLXdpdGhvdXQtZmxhZy1mcm9tLXN1YmZyYW1lLmh0bWwKQEAg
LTAsMCArMSwxMCBAQAorPHNjcmlwdD4KK2lmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgIHRl
c3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAgIHRlc3RSdW5uZXIuZHVtcFBvbGljeURlbGVnYXRl
Q2FsbGJhY2tzKCk7CisgICAgdGVzdFJ1bm5lci5xdWV1ZUxvYWQoInJlc291cmNlcy91c2VyLWdl
c3R1cmUtdGFyZ2V0LWJsYW5rLXRvLW5vdGlmeS1kb25lLWZyb20tc3ViZnJhbWUuaHRtbCIpOwor
fQorPC9zY3JpcHQ+CitUaGlzIHBhZ2Ugb3BlbnMgYSAybmQgcGFnZSB3aXRoIHRoZSAic2hvdWxk
IG9wZW4gZXh0ZXJuYWwgVVJMcyIgZmxhZyBzZXQgdG8gZmFsc2UuPGJyPgorVGhhdCBwYWdlIGhh
cyBhIHN1YmZyYW1lIHdpdGggYSBsaW5rIHRoYXQgLSB3aGVuIGNsaWNrZWQgLSBvcGVucyBhIGxp
bmsgdG8gYSAzcmQgcGFnZSBpbiBhIG5ldyB3aW5kb3cuPGJyPgorVGhhdCAzcmQgcGFnZSBzaG91
bGQgaGF2ZSB0aGUgZmxhZyBzZXQgdG8gdHJ1ZSBiZWNhdXNlIGl0IHdhcyBmcm9tIGEgdXNlciBn
ZXN0dXJlLjxicj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2xvYWRlci9uYXZpZ2F0aW9uLXBv
bGljeS9zaG91bGQtb3Blbi1leHRlcm5hbC11cmxzL3VzZXItZ2VzdHVyZS10YXJnZXQtYmxhbmst
d2l0aG91dC1mbGFnLmh0bWwgYi9MYXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kv
c2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJscy91c2VyLWdlc3R1cmUtdGFyZ2V0LWJsYW5rLXdpdGhv
dXQtZmxhZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYwNGJlZTQK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kv
c2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJscy91c2VyLWdlc3R1cmUtdGFyZ2V0LWJsYW5rLXdpdGhv
dXQtZmxhZy5odG1sCkBAIC0wLDAgKzEsMTAgQEAKKzxzY3JpcHQ+CitpZiAod2luZG93LnRlc3RS
dW5uZXIpIHsKKyAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICB0ZXN0UnVubmVyLmR1
bXBQb2xpY3lEZWxlZ2F0ZUNhbGxiYWNrcygpOworICAgIHRlc3RSdW5uZXIucXVldWVMb2FkKCJy
ZXNvdXJjZXMvdXNlci1nZXN0dXJlLXRhcmdldC1ibGFuay10by1ub3RpZnktZG9uZS5odG1sIik7
Cit9Cis8L3NjcmlwdD4KK1RoaXMgcGFnZSBvcGVucyBhIDJuZCBwYWdlIHdpdGggdGhlICJzaG91
bGQgb3BlbiBleHRlcm5hbCBVUkxzIiBmbGFnIHNldCB0byBmYWxzZS48YnI+CitUaGF0IHBhZ2Ug
aGFzIGEgbGluayB0aGF0IC0gd2hlbiBjbGlja2VkIC0gb3BlbnMgYSBsaW5rIHRvIGEgM3JkIHBh
Z2UgaW4gYSBuZXcgd2luZG93Ljxicj4KK1RoYXQgM3JkIHBhZ2Ugc2hvdWxkIGhhdmUgdGhlIGZs
YWcgc2V0IHRvIHRydWUgYmVjYXVzZSBpdCB3YXMgZnJvbSBhIHVzZXIgZ2VzdHVyZS48YnI+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9w
ZW4tZXh0ZXJuYWwtdXJscy91c2VyLWdlc3R1cmUtd2luZG93LW9wZW4td2l0aC1mbGFnLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2xvYWRlci9uYXZpZ2F0aW9uLXBvbGljeS9zaG91bGQtb3Bl
bi1leHRlcm5hbC11cmxzL3VzZXItZ2VzdHVyZS13aW5kb3ctb3Blbi13aXRoLWZsYWctZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFjNTM5YjcKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxk
LW9wZW4tZXh0ZXJuYWwtdXJscy91c2VyLWdlc3R1cmUtd2luZG93LW9wZW4td2l0aC1mbGFnLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKKyAtIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25B
Y3Rpb24gCis8TlNVUkxSZXF1ZXN0IFVSTCByZXNvdXJjZXMvdXNlci1nZXN0dXJlLXdpbmRvdy1v
cGVuLXRvLW5vdGlmeS1kb25lLmh0bWwsIG1haW4gZG9jdW1lbnQgVVJMIHJlc291cmNlcy91c2Vy
LWdlc3R1cmUtd2luZG93LW9wZW4tdG8tbm90aWZ5LWRvbmUuaHRtbCwgaHR0cCBtZXRob2QgR0VU
PiBpcyBtYWluIGZyYW1lIC0geWVzIHNob3VsZCBvcGVuIFVSTHMgZXh0ZXJuYWxseSAtIHllcwor
IC0gZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbiAKKzxOU1VSTFJlcXVlc3QgVVJMIG5v
dGlmeS1kb25lLmh0bWwsIG1haW4gZG9jdW1lbnQgVVJMIG5vdGlmeS1kb25lLmh0bWwsIGh0dHAg
bWV0aG9kIEdFVD4gaXMgbWFpbiBmcmFtZSAtIHllcyBzaG91bGQgb3BlbiBVUkxzIGV4dGVybmFs
bHkgLSB5ZXMKK0NsaWNrIHRvIGRvIGEgd2luZG93Lm9wZW4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2xvYWRlci9uYXZpZ2F0aW9uLXBvbGljeS9zaG91bGQtb3Blbi1leHRlcm5hbC11cmxzL3Vz
ZXItZ2VzdHVyZS13aW5kb3ctb3Blbi13aXRoLWZsYWctZnJvbS1zdWJmcmFtZS1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0
ZXJuYWwtdXJscy91c2VyLWdlc3R1cmUtd2luZG93LW9wZW4td2l0aC1mbGFnLWZyb20tc3ViZnJh
bWUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhmNDU2
OWEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdhdGlvbi1wb2xp
Y3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJscy91c2VyLWdlc3R1cmUtd2luZG93LW9wZW4td2l0
aC1mbGFnLWZyb20tc3ViZnJhbWUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNyBAQAorIC0gZGVj
aWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbiAKKzxOU1VSTFJlcXVlc3QgVVJMIHJlc291cmNl
cy91c2VyLWdlc3R1cmUtd2luZG93LW9wZW4tdG8tbm90aWZ5LWRvbmUtZnJvbS1zdWJmcmFtZS5o
dG1sLCBtYWluIGRvY3VtZW50IFVSTCByZXNvdXJjZXMvdXNlci1nZXN0dXJlLXdpbmRvdy1vcGVu
LXRvLW5vdGlmeS1kb25lLWZyb20tc3ViZnJhbWUuaHRtbCwgaHR0cCBtZXRob2QgR0VUPiBpcyBt
YWluIGZyYW1lIC0geWVzIHNob3VsZCBvcGVuIFVSTHMgZXh0ZXJuYWxseSAtIHllcworIC0gZGVj
aWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbiAKKzxOU1VSTFJlcXVlc3QgVVJMIHVzZXItZ2Vz
dHVyZS13aW5kb3ctb3Blbi10by1ub3RpZnktZG9uZS5odG1sLCBtYWluIGRvY3VtZW50IFVSTCB1
c2VyLWdlc3R1cmUtd2luZG93LW9wZW4tdG8tbm90aWZ5LWRvbmUtZnJvbS1zdWJmcmFtZS5odG1s
LCBodHRwIG1ldGhvZCBHRVQ+IGlzIG1haW4gZnJhbWUgLSBubyBzaG91bGQgb3BlbiBVUkxzIGV4
dGVybmFsbHkgLSBubworIC0gZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbiAKKzxOU1VS
TFJlcXVlc3QgVVJMIG5vdGlmeS1kb25lLmh0bWwsIG1haW4gZG9jdW1lbnQgVVJMIG5vdGlmeS1k
b25lLmh0bWwsIGh0dHAgbWV0aG9kIEdFVD4gaXMgbWFpbiBmcmFtZSAtIHllcyBzaG91bGQgb3Bl
biBVUkxzIGV4dGVybmFsbHkgLSB5ZXMKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbG9hZGVy
L25hdmlnYXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvdXNlci1nZXN0dXJl
LXdpbmRvdy1vcGVuLXdpdGgtZmxhZy1mcm9tLXN1YmZyYW1lLmh0bWwgYi9MYXlvdXRUZXN0cy9s
b2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJscy91c2VyLWdl
c3R1cmUtd2luZG93LW9wZW4td2l0aC1mbGFnLWZyb20tc3ViZnJhbWUuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45NzgyNzMyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvbG9hZGVyL25hdmlnYXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVy
bHMvdXNlci1nZXN0dXJlLXdpbmRvdy1vcGVuLXdpdGgtZmxhZy1mcm9tLXN1YmZyYW1lLmh0bWwK
QEAgLTAsMCArMSwxMCBAQAorPHNjcmlwdD4KK2lmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAg
IHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAgIHRlc3RSdW5uZXIuZHVtcFBvbGljeURlbGVn
YXRlQ2FsbGJhY2tzKCk7CisgICAgdGVzdFJ1bm5lci5xdWV1ZUxvYWQoInJlc291cmNlcy91c2Vy
LWdlc3R1cmUtd2luZG93LW9wZW4tdG8tbm90aWZ5LWRvbmUtZnJvbS1zdWJmcmFtZS5odG1sIiwg
IiIsIHRydWUpOworfQorPC9zY3JpcHQ+CitUaGlzIHBhZ2Ugb3BlbnMgYSAybmQgcGFnZSB3aXRo
IHRoZSAic2hvdWxkIG9wZW4gZXh0ZXJuYWwgVVJMcyIgZmxhZyBzZXQgdG8gdHJ1ZS48YnI+CitU
aGF0IHBhZ2UgaGFzIGEgc3ViZnJhbWUgd2l0aCBhIGxpbmsgdGhhdCAtIHdoZW4gY2xpY2tlZCAt
IGNhbGxzIHdpbmRvdy5vcGVuIHRvIGEgM3JkIHBhZ2UuPGJyPgorVGhhdCAzcmQgcGFnZSBzaG91
bGQgaGF2ZSB0aGUgZmxhZyBzZXQgdG8gdHJ1ZSBiZWNhdXNlIGl0IHdhcyBmcm9tIGEgdXNlciBn
ZXN0dXJlLjxicj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2xvYWRlci9uYXZpZ2F0aW9uLXBv
bGljeS9zaG91bGQtb3Blbi1leHRlcm5hbC11cmxzL3VzZXItZ2VzdHVyZS13aW5kb3ctb3Blbi13
aXRoLWZsYWcuaHRtbCBiL0xheW91dFRlc3RzL2xvYWRlci9uYXZpZ2F0aW9uLXBvbGljeS9zaG91
bGQtb3Blbi1leHRlcm5hbC11cmxzL3VzZXItZ2VzdHVyZS13aW5kb3ctb3Blbi13aXRoLWZsYWcu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44YzQ0ZTdhCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbG9hZGVyL25hdmlnYXRpb24tcG9saWN5L3Nob3VsZC1v
cGVuLWV4dGVybmFsLXVybHMvdXNlci1nZXN0dXJlLXdpbmRvdy1vcGVuLXdpdGgtZmxhZy5odG1s
CkBAIC0wLDAgKzEsMTAgQEAKKzxzY3JpcHQ+CitpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAg
ICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICB0ZXN0UnVubmVyLmR1bXBQb2xpY3lEZWxl
Z2F0ZUNhbGxiYWNrcygpOworICAgIHRlc3RSdW5uZXIucXVldWVMb2FkKCJyZXNvdXJjZXMvdXNl
ci1nZXN0dXJlLXdpbmRvdy1vcGVuLXRvLW5vdGlmeS1kb25lLmh0bWwiLCAiIiwgdHJ1ZSk7Cit9
Cis8L3NjcmlwdD4KK1RoaXMgcGFnZSBvcGVucyBhIDJuZCBwYWdlIHdpdGggdGhlICJzaG91bGQg
b3BlbiBleHRlcm5hbCBVUkxzIiBmbGFnIHNldCB0byB0cnVlLjxicj4KK1RoYXQgcGFnZSBoYXMg
YSBsaW5rIHRoYXQgLSB3aGVuIGNsaWNrZWQgLSBkb2VzIGEgd2luZG93Lm9wZW4gdG8gb3BlbiBh
IDNyZCBwYWdlLjxicj4KK1RoYXQgM3JkIHBhZ2Ugc2hvdWxkIGhhdmUgdGhlIGZsYWcgc2V0IHRv
IHRydWUgYmVjYXVzZSBpdCB3YXMgZnJvbSBhIHVzZXIgZ2VzdHVyZS48YnI+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJu
YWwtdXJscy91c2VyLWdlc3R1cmUtd2luZG93LW9wZW4td2l0aG91dC1mbGFnLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2xvYWRlci9uYXZpZ2F0aW9uLXBvbGljeS9zaG91bGQtb3Blbi1leHRl
cm5hbC11cmxzL3VzZXItZ2VzdHVyZS13aW5kb3ctb3Blbi13aXRob3V0LWZsYWctZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc3NDY2ZmMKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9w
ZW4tZXh0ZXJuYWwtdXJscy91c2VyLWdlc3R1cmUtd2luZG93LW9wZW4td2l0aG91dC1mbGFnLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKKyAtIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25B
Y3Rpb24gCis8TlNVUkxSZXF1ZXN0IFVSTCByZXNvdXJjZXMvdXNlci1nZXN0dXJlLXdpbmRvdy1v
cGVuLXRvLW5vdGlmeS1kb25lLmh0bWwsIG1haW4gZG9jdW1lbnQgVVJMIHJlc291cmNlcy91c2Vy
LWdlc3R1cmUtd2luZG93LW9wZW4tdG8tbm90aWZ5LWRvbmUuaHRtbCwgaHR0cCBtZXRob2QgR0VU
PiBpcyBtYWluIGZyYW1lIC0geWVzIHNob3VsZCBvcGVuIFVSTHMgZXh0ZXJuYWxseSAtIG5vCisg
LSBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uIAorPE5TVVJMUmVxdWVzdCBVUkwgbm90
aWZ5LWRvbmUuaHRtbCwgbWFpbiBkb2N1bWVudCBVUkwgbm90aWZ5LWRvbmUuaHRtbCwgaHR0cCBt
ZXRob2QgR0VUPiBpcyBtYWluIGZyYW1lIC0geWVzIHNob3VsZCBvcGVuIFVSTHMgZXh0ZXJuYWxs
eSAtIHllcworQ2xpY2sgdG8gZG8gYSB3aW5kb3cub3BlbgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvbG9hZGVyL25hdmlnYXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvdXNl
ci1nZXN0dXJlLXdpbmRvdy1vcGVuLXdpdGhvdXQtZmxhZy1mcm9tLXN1YmZyYW1lLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2xvYWRlci9uYXZpZ2F0aW9uLXBvbGljeS9zaG91bGQtb3Blbi1l
eHRlcm5hbC11cmxzL3VzZXItZ2VzdHVyZS13aW5kb3ctb3Blbi13aXRob3V0LWZsYWctZnJvbS1z
dWJmcmFtZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
Y2NmZTVkYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2xvYWRlci9uYXZpZ2F0aW9u
LXBvbGljeS9zaG91bGQtb3Blbi1leHRlcm5hbC11cmxzL3VzZXItZ2VzdHVyZS13aW5kb3ctb3Bl
bi13aXRob3V0LWZsYWctZnJvbS1zdWJmcmFtZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw3IEBA
CisgLSBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uIAorPE5TVVJMUmVxdWVzdCBVUkwg
cmVzb3VyY2VzL3VzZXItZ2VzdHVyZS13aW5kb3ctb3Blbi10by1ub3RpZnktZG9uZS1mcm9tLXN1
YmZyYW1lLmh0bWwsIG1haW4gZG9jdW1lbnQgVVJMIHJlc291cmNlcy91c2VyLWdlc3R1cmUtd2lu
ZG93LW9wZW4tdG8tbm90aWZ5LWRvbmUtZnJvbS1zdWJmcmFtZS5odG1sLCBodHRwIG1ldGhvZCBH
RVQ+IGlzIG1haW4gZnJhbWUgLSB5ZXMgc2hvdWxkIG9wZW4gVVJMcyBleHRlcm5hbGx5IC0gbm8K
KyAtIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24gCis8TlNVUkxSZXF1ZXN0IFVSTCB1
c2VyLWdlc3R1cmUtd2luZG93LW9wZW4tdG8tbm90aWZ5LWRvbmUuaHRtbCwgbWFpbiBkb2N1bWVu
dCBVUkwgdXNlci1nZXN0dXJlLXdpbmRvdy1vcGVuLXRvLW5vdGlmeS1kb25lLWZyb20tc3ViZnJh
bWUuaHRtbCwgaHR0cCBtZXRob2QgR0VUPiBpcyBtYWluIGZyYW1lIC0gbm8gc2hvdWxkIG9wZW4g
VVJMcyBleHRlcm5hbGx5IC0gbm8KKyAtIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24g
Cis8TlNVUkxSZXF1ZXN0IFVSTCBub3RpZnktZG9uZS5odG1sLCBtYWluIGRvY3VtZW50IFVSTCBu
b3RpZnktZG9uZS5odG1sLCBodHRwIG1ldGhvZCBHRVQ+IGlzIG1haW4gZnJhbWUgLSB5ZXMgc2hv
dWxkIG9wZW4gVVJMcyBleHRlcm5hbGx5IC0geWVzCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2xvYWRlci9uYXZpZ2F0aW9uLXBvbGljeS9zaG91bGQtb3Blbi1leHRlcm5hbC11cmxzL3VzZXIt
Z2VzdHVyZS13aW5kb3ctb3Blbi13aXRob3V0LWZsYWctZnJvbS1zdWJmcmFtZS5odG1sIGIvTGF5
b3V0VGVzdHMvbG9hZGVyL25hdmlnYXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVy
bHMvdXNlci1nZXN0dXJlLXdpbmRvdy1vcGVuLXdpdGhvdXQtZmxhZy1mcm9tLXN1YmZyYW1lLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDk0YjRmYQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2xvYWRlci9uYXZpZ2F0aW9uLXBvbGljeS9zaG91bGQtb3Bl
bi1leHRlcm5hbC11cmxzL3VzZXItZ2VzdHVyZS13aW5kb3ctb3Blbi13aXRob3V0LWZsYWctZnJv
bS1zdWJmcmFtZS5odG1sCkBAIC0wLDAgKzEsMTAgQEAKKzxzY3JpcHQ+CitpZiAod2luZG93LnRl
c3RSdW5uZXIpIHsKKyAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICB0ZXN0UnVubmVy
LmR1bXBQb2xpY3lEZWxlZ2F0ZUNhbGxiYWNrcygpOworICAgIHRlc3RSdW5uZXIucXVldWVMb2Fk
KCJyZXNvdXJjZXMvdXNlci1nZXN0dXJlLXdpbmRvdy1vcGVuLXRvLW5vdGlmeS1kb25lLWZyb20t
c3ViZnJhbWUuaHRtbCIpOworfQorPC9zY3JpcHQ+CitUaGlzIHBhZ2Ugb3BlbnMgYSAybmQgcGFn
ZSB3aXRoIHRoZSAic2hvdWxkIG9wZW4gZXh0ZXJuYWwgVVJMcyIgZmxhZyBzZXQgdG8gZmFsc2Uu
PGJyPgorVGhhdCBwYWdlIGhhcyBhIHN1YmZyYW1lIHdpdGggYSBsaW5rIHRoYXQgLSB3aGVuIGNs
aWNrZWQgLSBjYWxscyB3aW5kb3cub3BlbiB0byBhIDNyZCBwYWdlLjxicj4KK1RoYXQgM3JkIHBh
Z2Ugc2hvdWxkIGhhdmUgdGhlIGZsYWcgc2V0IHRvIHRydWUgYmVjYXVzZSBpdCB3YXMgZnJvbSBh
IHVzZXIgZ2VzdHVyZS48YnI+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdh
dGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJscy91c2VyLWdlc3R1cmUtd2luZG93
LW9wZW4td2l0aG91dC1mbGFnLmh0bWwgYi9MYXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdhdGlvbi1w
b2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJscy91c2VyLWdlc3R1cmUtd2luZG93LW9wZW4t
d2l0aG91dC1mbGFnLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTg3
MDg4OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2xvYWRlci9uYXZpZ2F0aW9uLXBv
bGljeS9zaG91bGQtb3Blbi1leHRlcm5hbC11cmxzL3VzZXItZ2VzdHVyZS13aW5kb3ctb3Blbi13
aXRob3V0LWZsYWcuaHRtbApAQCAtMCwwICsxLDEwIEBACis8c2NyaXB0PgoraWYgKHdpbmRvdy50
ZXN0UnVubmVyKSB7CisgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgdGVzdFJ1bm5l
ci5kdW1wUG9saWN5RGVsZWdhdGVDYWxsYmFja3MoKTsKKyAgICB0ZXN0UnVubmVyLnF1ZXVlTG9h
ZCgicmVzb3VyY2VzL3VzZXItZ2VzdHVyZS13aW5kb3ctb3Blbi10by1ub3RpZnktZG9uZS5odG1s
Iik7Cit9Cis8L3NjcmlwdD4KK1RoaXMgcGFnZSBvcGVucyBhIDJuZCBwYWdlIHdpdGggdGhlICJz
aG91bGQgb3BlbiBleHRlcm5hbCBVUkxzIiBmbGFnIHNldCB0byBmYWxzZS48YnI+CitUaGF0IHBh
Z2UgaGFzIGEgbGluayB0aGF0IC0gd2hlbiBjbGlja2VkIC0gZG9lcyBhIHdpbmRvdy5vcGVuIHRv
IG9wZW4gYSAzcmQgcGFnZS48YnI+CitUaGF0IDNyZCBwYWdlIHNob3VsZCBoYXZlIHRoZSBmbGFn
IHNldCB0byB0cnVlIGJlY2F1c2UgaXQgd2FzIGZyb20gYSB1c2VyIGdlc3R1cmUuPGJyPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvbG9hZGVyL25hdmlnYXRpb24tcG9saWN5L3Nob3VsZC1vcGVu
LWV4dGVybmFsLXVybHMvd2luZG93LW9wZW4td2l0aC1mbGFnLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2xvYWRlci9uYXZpZ2F0aW9uLXBvbGljeS9zaG91bGQtb3Blbi1leHRlcm5hbC11cmxz
L3dpbmRvdy1vcGVuLXdpdGgtZmxhZy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uMGRmOTAyMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2xv
YWRlci9uYXZpZ2F0aW9uLXBvbGljeS9zaG91bGQtb3Blbi1leHRlcm5hbC11cmxzL3dpbmRvdy1v
cGVuLXdpdGgtZmxhZy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1IEBACisgLSBkZWNpZGVQb2xp
Y3lGb3JOYXZpZ2F0aW9uQWN0aW9uIAorPE5TVVJMUmVxdWVzdCBVUkwgcmVzb3VyY2VzL3dpbmRv
dy1vcGVuLXRvLW5vdGlmeS1kb25lLmh0bWwsIG1haW4gZG9jdW1lbnQgVVJMIHJlc291cmNlcy93
aW5kb3ctb3Blbi10by1ub3RpZnktZG9uZS5odG1sLCBodHRwIG1ldGhvZCBHRVQ+IGlzIG1haW4g
ZnJhbWUgLSB5ZXMgc2hvdWxkIG9wZW4gVVJMcyBleHRlcm5hbGx5IC0geWVzCisgLSBkZWNpZGVQ
b2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uIAorPE5TVVJMUmVxdWVzdCBVUkwgbm90aWZ5LWRvbmUu
aHRtbCwgbWFpbiBkb2N1bWVudCBVUkwgbm90aWZ5LWRvbmUuaHRtbCwgaHR0cCBtZXRob2QgR0VU
PiBpcyBtYWluIGZyYW1lIC0geWVzIHNob3VsZCBvcGVuIFVSTHMgZXh0ZXJuYWxseSAtIHllcwor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxk
LW9wZW4tZXh0ZXJuYWwtdXJscy93aW5kb3ctb3Blbi13aXRoLWZsYWctZnJvbS1zdWJmcmFtZS1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxk
LW9wZW4tZXh0ZXJuYWwtdXJscy93aW5kb3ctb3Blbi13aXRoLWZsYWctZnJvbS1zdWJmcmFtZS1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmNiZWY2NAot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2xvYWRlci9uYXZpZ2F0aW9uLXBvbGljeS9z
aG91bGQtb3Blbi1leHRlcm5hbC11cmxzL3dpbmRvdy1vcGVuLXdpdGgtZmxhZy1mcm9tLXN1YmZy
YW1lLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDcgQEAKKyAtIGRlY2lkZVBvbGljeUZvck5hdmln
YXRpb25BY3Rpb24gCis8TlNVUkxSZXF1ZXN0IFVSTCByZXNvdXJjZXMvd2luZG93LW9wZW4tdG8t
bm90aWZ5LWRvbmUtZnJvbS1zdWJmcmFtZS5odG1sLCBtYWluIGRvY3VtZW50IFVSTCByZXNvdXJj
ZXMvd2luZG93LW9wZW4tdG8tbm90aWZ5LWRvbmUtZnJvbS1zdWJmcmFtZS5odG1sLCBodHRwIG1l
dGhvZCBHRVQ+IGlzIG1haW4gZnJhbWUgLSB5ZXMgc2hvdWxkIG9wZW4gVVJMcyBleHRlcm5hbGx5
IC0geWVzCisgLSBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uIAorPE5TVVJMUmVxdWVz
dCBVUkwgd2luZG93LW9wZW4tdG8tbm90aWZ5LWRvbmUuaHRtbCwgbWFpbiBkb2N1bWVudCBVUkwg
d2luZG93LW9wZW4tdG8tbm90aWZ5LWRvbmUtZnJvbS1zdWJmcmFtZS5odG1sLCBodHRwIG1ldGhv
ZCBHRVQ+IGlzIG1haW4gZnJhbWUgLSBubyBzaG91bGQgb3BlbiBVUkxzIGV4dGVybmFsbHkgLSBu
bworIC0gZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbiAKKzxOU1VSTFJlcXVlc3QgVVJM
IG5vdGlmeS1kb25lLmh0bWwsIG1haW4gZG9jdW1lbnQgVVJMIG5vdGlmeS1kb25lLmh0bWwsIGh0
dHAgbWV0aG9kIEdFVD4gaXMgbWFpbiBmcmFtZSAtIHllcyBzaG91bGQgb3BlbiBVUkxzIGV4dGVy
bmFsbHkgLSBubworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdhdGlvbi1w
b2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJscy93aW5kb3ctb3Blbi13aXRoLWZsYWctZnJv
bS1zdWJmcmFtZS5odG1sIGIvTGF5b3V0VGVzdHMvbG9hZGVyL25hdmlnYXRpb24tcG9saWN5L3No
b3VsZC1vcGVuLWV4dGVybmFsLXVybHMvd2luZG93LW9wZW4td2l0aC1mbGFnLWZyb20tc3ViZnJh
bWUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44MWE1N2Y3Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbG9hZGVyL25hdmlnYXRpb24tcG9saWN5L3Nob3Vs
ZC1vcGVuLWV4dGVybmFsLXVybHMvd2luZG93LW9wZW4td2l0aC1mbGFnLWZyb20tc3ViZnJhbWUu
aHRtbApAQCAtMCwwICsxLDEwIEBACis8c2NyaXB0PgoraWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7
CisgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgdGVzdFJ1bm5lci5kdW1wUG9saWN5
RGVsZWdhdGVDYWxsYmFja3MoKTsKKyAgICB0ZXN0UnVubmVyLnF1ZXVlTG9hZCgicmVzb3VyY2Vz
L3dpbmRvdy1vcGVuLXRvLW5vdGlmeS1kb25lLWZyb20tc3ViZnJhbWUuaHRtbCIsICIiLCB0cnVl
KTsKK30KKzwvc2NyaXB0PgorVGhpcyBwYWdlIG9wZW5zIGEgMm5kIHBhZ2Ugd2l0aCB0aGUgInNo
b3VsZCBvcGVuIGV4dGVybmFsIFVSTHMiIGZsYWcgc2V0IHRvIHRydWUuPGJyPgorVGhhdCBwYWdl
IGhhcyBhIHN1YmZyYW1lIHdoaWNoIGNhbGxzIHdpbmRvdy5vcGVuIHRvIGEgM3JkIHBhZ2UuPGJy
PgorVGhhdCAzcmQgcGFnZSBzaG91bGQgaGF2ZSB0aGUgZmxhZyBzZXQgdG8gZmFsc2UgYmVjYXVz
ZSB0aGUgc3ViZnJhbWUgaW5pdGlhdGVkIHRoZSBsb2FkLjxicj4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2xvYWRlci9uYXZpZ2F0aW9uLXBvbGljeS9zaG91bGQtb3Blbi1leHRlcm5hbC11cmxz
L3dpbmRvdy1vcGVuLXdpdGgtZmxhZy5odG1sIGIvTGF5b3V0VGVzdHMvbG9hZGVyL25hdmlnYXRp
b24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvd2luZG93LW9wZW4td2l0aC1mbGFn
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2UzZDk0OQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2xvYWRlci9uYXZpZ2F0aW9uLXBvbGljeS9zaG91bGQt
b3Blbi1leHRlcm5hbC11cmxzL3dpbmRvdy1vcGVuLXdpdGgtZmxhZy5odG1sCkBAIC0wLDAgKzEs
MTAgQEAKKzxzY3JpcHQ+CitpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICB0ZXN0UnVubmVy
LmR1bXBBc1RleHQoKTsKKyAgICB0ZXN0UnVubmVyLmR1bXBQb2xpY3lEZWxlZ2F0ZUNhbGxiYWNr
cygpOworICAgIHRlc3RSdW5uZXIucXVldWVMb2FkKCJyZXNvdXJjZXMvd2luZG93LW9wZW4tdG8t
bm90aWZ5LWRvbmUuaHRtbCIsICIiLCB0cnVlKTsKK30KKzwvc2NyaXB0PgorVGhpcyBwYWdlIG9w
ZW5zIGEgMm5kIHBhZ2Ugd2l0aCB0aGUgInNob3VsZCBvcGVuIGV4dGVybmFsIFVSTHMiIGZsYWcg
c2V0IHRvIHRydWUuPGJyPgorVGhhdCBwYWdlIGRvZXMgYSB3aW5kb3cub3BlbiB0byBvcGVuIGEg
M3JkIHBhZ2UuPGJyPgorVGhhdCAzcmQgcGFnZSBzaG91bGQgaGF2ZSB0aGUgZmxhZyBzZXQgdG8g
dHJ1ZSBiZWNhdXNlIGl0IHNob3VsZCBwcm9wYWdhdGUgZnJvbSBtYWluIGZyYW1lIHRvIG1haW4g
ZnJhbWUuPGJyPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbG9hZGVyL25hdmlnYXRpb24tcG9s
aWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvd2luZG93LW9wZW4td2l0aG91dC1mbGFnLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2xvYWRlci9uYXZpZ2F0aW9uLXBvbGljeS9zaG91bGQt
b3Blbi1leHRlcm5hbC11cmxzL3dpbmRvdy1vcGVuLXdpdGhvdXQtZmxhZy1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDY4Yzg4YQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2xvYWRlci9uYXZpZ2F0aW9uLXBvbGljeS9zaG91bGQtb3Blbi1l
eHRlcm5hbC11cmxzL3dpbmRvdy1vcGVuLXdpdGhvdXQtZmxhZy1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSw1IEBACisgLSBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uIAorPE5TVVJMUmVx
dWVzdCBVUkwgcmVzb3VyY2VzL3dpbmRvdy1vcGVuLXRvLW5vdGlmeS1kb25lLmh0bWwsIG1haW4g
ZG9jdW1lbnQgVVJMIHJlc291cmNlcy93aW5kb3ctb3Blbi10by1ub3RpZnktZG9uZS5odG1sLCBo
dHRwIG1ldGhvZCBHRVQ+IGlzIG1haW4gZnJhbWUgLSB5ZXMgc2hvdWxkIG9wZW4gVVJMcyBleHRl
cm5hbGx5IC0gbm8KKyAtIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24gCis8TlNVUkxS
ZXF1ZXN0IFVSTCBub3RpZnktZG9uZS5odG1sLCBtYWluIGRvY3VtZW50IFVSTCBub3RpZnktZG9u
ZS5odG1sLCBodHRwIG1ldGhvZCBHRVQ+IGlzIG1haW4gZnJhbWUgLSB5ZXMgc2hvdWxkIG9wZW4g
VVJMcyBleHRlcm5hbGx5IC0gbm8KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbG9hZGVyL25h
dmlnYXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvd2luZG93LW9wZW4td2l0
aG91dC1mbGFnLWZyb20tc3ViZnJhbWUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvbG9hZGVy
L25hdmlnYXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvd2luZG93LW9wZW4t
d2l0aG91dC1mbGFnLWZyb20tc3ViZnJhbWUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLjljODQ0MmUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9sb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJscy93aW5k
b3ctb3Blbi13aXRob3V0LWZsYWctZnJvbS1zdWJmcmFtZS1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSw3IEBACisgLSBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uIAorPE5TVVJMUmVxdWVz
dCBVUkwgcmVzb3VyY2VzL3dpbmRvdy1vcGVuLXRvLW5vdGlmeS1kb25lLWZyb20tc3ViZnJhbWUu
aHRtbCwgbWFpbiBkb2N1bWVudCBVUkwgcmVzb3VyY2VzL3dpbmRvdy1vcGVuLXRvLW5vdGlmeS1k
b25lLWZyb20tc3ViZnJhbWUuaHRtbCwgaHR0cCBtZXRob2QgR0VUPiBpcyBtYWluIGZyYW1lIC0g
eWVzIHNob3VsZCBvcGVuIFVSTHMgZXh0ZXJuYWxseSAtIG5vCisgLSBkZWNpZGVQb2xpY3lGb3JO
YXZpZ2F0aW9uQWN0aW9uIAorPE5TVVJMUmVxdWVzdCBVUkwgd2luZG93LW9wZW4tdG8tbm90aWZ5
LWRvbmUuaHRtbCwgbWFpbiBkb2N1bWVudCBVUkwgd2luZG93LW9wZW4tdG8tbm90aWZ5LWRvbmUt
ZnJvbS1zdWJmcmFtZS5odG1sLCBodHRwIG1ldGhvZCBHRVQ+IGlzIG1haW4gZnJhbWUgLSBubyBz
aG91bGQgb3BlbiBVUkxzIGV4dGVybmFsbHkgLSBubworIC0gZGVjaWRlUG9saWN5Rm9yTmF2aWdh
dGlvbkFjdGlvbiAKKzxOU1VSTFJlcXVlc3QgVVJMIG5vdGlmeS1kb25lLmh0bWwsIG1haW4gZG9j
dW1lbnQgVVJMIG5vdGlmeS1kb25lLmh0bWwsIGh0dHAgbWV0aG9kIEdFVD4gaXMgbWFpbiBmcmFt
ZSAtIHllcyBzaG91bGQgb3BlbiBVUkxzIGV4dGVybmFsbHkgLSBubworCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwt
dXJscy93aW5kb3ctb3Blbi13aXRob3V0LWZsYWctZnJvbS1zdWJmcmFtZS5odG1sIGIvTGF5b3V0
VGVzdHMvbG9hZGVyL25hdmlnYXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMv
d2luZG93LW9wZW4td2l0aG91dC1mbGFnLWZyb20tc3ViZnJhbWUuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi45N2U1M2I1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvbG9hZGVyL25hdmlnYXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMv
d2luZG93LW9wZW4td2l0aG91dC1mbGFnLWZyb20tc3ViZnJhbWUuaHRtbApAQCAtMCwwICsxLDEw
IEBACis8c2NyaXB0PgoraWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgdGVzdFJ1bm5lci5k
dW1wQXNUZXh0KCk7CisgICAgdGVzdFJ1bm5lci5kdW1wUG9saWN5RGVsZWdhdGVDYWxsYmFja3Mo
KTsKKyAgICB0ZXN0UnVubmVyLnF1ZXVlTG9hZCgicmVzb3VyY2VzL3dpbmRvdy1vcGVuLXRvLW5v
dGlmeS1kb25lLWZyb20tc3ViZnJhbWUuaHRtbCIpOworfQorPC9zY3JpcHQ+CitUaGlzIHBhZ2Ug
b3BlbnMgYSAybmQgcGFnZSB3aXRoIHRoZSAic2hvdWxkIG9wZW4gZXh0ZXJuYWwgVVJMcyIgZmxh
ZyBzZXQgdG8gZmFsc2UuPGJyPgorVGhhdCBwYWdlIGhhcyBhIHN1YmZyYW1lIHdoaWNoIGNhbGxz
IHdpbmRvdy5vcGVuIHRvIGEgM3JkIHBhZ2UuPGJyPgorVGhhdCAzcmQgcGFnZSBzaG91bGQgaGF2
ZSB0aGUgZmxhZyBzZXQgdG8gZmFsc2UgYmVjYXVzZSB0aGUgc3ViZnJhbWUgaW5pdGlhdGVkIHRo
ZSBsb2FkLCAqYW5kKiBiZWNhdXNlIHRoZSBtYWluIGZyYW1lIGRpZCBub3QgaGF2ZSB0aGUgZmxh
ZyBzZXQuPGJyPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbG9hZGVyL25hdmlnYXRpb24tcG9s
aWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvd2luZG93LW9wZW4td2l0aG91dC1mbGFnLmh0
bWwgYi9MYXlvdXRUZXN0cy9sb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0
ZXJuYWwtdXJscy93aW5kb3ctb3Blbi13aXRob3V0LWZsYWcuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi44MDAxN2QwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvbG9hZGVyL25hdmlnYXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvd2lu
ZG93LW9wZW4td2l0aG91dC1mbGFnLmh0bWwKQEAgLTAsMCArMSwxMCBAQAorPHNjcmlwdD4KK2lm
ICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAg
IHRlc3RSdW5uZXIuZHVtcFBvbGljeURlbGVnYXRlQ2FsbGJhY2tzKCk7CisgICAgdGVzdFJ1bm5l
ci5xdWV1ZUxvYWQoInJlc291cmNlcy93aW5kb3ctb3Blbi10by1ub3RpZnktZG9uZS5odG1sIik7
Cit9Cis8L3NjcmlwdD4KK1RoaXMgcGFnZSBvcGVucyBhIDJuZCBwYWdlIHdpdGggdGhlICJzaG91
bGQgb3BlbiBleHRlcm5hbCBVUkxzIiBmbGFnIHNldCB0byBmYWxzZS48YnI+CitUaGF0IHBhZ2Ug
ZG9lcyBhIHdpbmRvdy5vcGVuIHRvIG9wZW4gYSAzcmQgcGFnZS48YnI+CitUaGF0IDNyZCBwYWdl
IHNob3VsZCBhbHNvIGhhdmUgdGhlIGZsYWcgc2V0IHRvIGZhbHNlLjxicj4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRl
eCBkZGY0OWI3Li5hMTM4MDRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQwIEBACisyMDE1LTA2
LTAxICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KKworICAgICAgICBXZWJLaXQg
cG9saWN5IGRlbGVnYXRlIHNob3VsZCBzdWdnZXN0IGlmIGEgbmF2aWdhdGlvbiBzaG91bGQgYmUg
YWxsb3dlZCB0byBvcGVuIFVSTHMgZXh0ZXJuYWxseS4KKyAgICAgICAgcmRhcjovL3Byb2JsZW0v
MjEwMjUzMDEgYW5kIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDUy
ODAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0
czogbG9hZGVyL25hdmlnYXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvbWFp
bi1mcmFtZS1jbGljay5odG1sCisgICAgICAgICAgICAgICBsb2FkZXIvbmF2aWdhdGlvbi1wb2xp
Y3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJscy9tYWluLWZyYW1lLW5hdmlnYXRlZC1wcm9ncmFt
YXRpY2FsbHktYnktc3ViZnJhbWUuaHRtbAorICAgICAgICAgICAgICAgbG9hZGVyL25hdmlnYXRp
b24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvbWFpbi1mcmFtZS13aXRoLWZsYWct
cHJvZ2FtYXRpYy5odG1sCisgICAgICAgICAgICAgICBsb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kv
c2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJscy9tYWluLWZyYW1lLXdpdGhvdXQtZmxhZy1wcm9ncmFt
YXRpYy5odG1sCisgICAgICAgICAgICAgICBsb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxk
LW9wZW4tZXh0ZXJuYWwtdXJscy9zdWJmcmFtZS1jbGljay10YXJnZXQtc2VsZi5odG1sCisgICAg
ICAgICAgICAgICBsb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwt
dXJscy9zdWJmcmFtZS1jbGljay10YXJnZXQtdG9wLmh0bWwKKyAgICAgICAgICAgICAgIGxvYWRl
ci9uYXZpZ2F0aW9uLXBvbGljeS9zaG91bGQtb3Blbi1leHRlcm5hbC11cmxzL3VzZXItZ2VzdHVy
ZS10YXJnZXQtYmxhbmstd2l0aC1mbGFnLWZyb20tc3ViZnJhbWUuaHRtbAorICAgICAgICAgICAg
ICAgbG9hZGVyL25hdmlnYXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvdXNl
ci1nZXN0dXJlLXRhcmdldC1ibGFuay13aXRoLWZsYWcuaHRtbAorICAgICAgICAgICAgICAgbG9h
ZGVyL25hdmlnYXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvdXNlci1nZXN0
dXJlLXRhcmdldC1ibGFuay13aXRob3V0LWZsYWctZnJvbS1zdWJmcmFtZS5odG1sCisgICAgICAg
ICAgICAgICBsb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJs
cy91c2VyLWdlc3R1cmUtdGFyZ2V0LWJsYW5rLXdpdGhvdXQtZmxhZy5odG1sCisgICAgICAgICAg
ICAgICBsb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJscy91
c2VyLWdlc3R1cmUtd2luZG93LW9wZW4td2l0aC1mbGFnLWZyb20tc3ViZnJhbWUuaHRtbAorICAg
ICAgICAgICAgICAgbG9hZGVyL25hdmlnYXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFs
LXVybHMvdXNlci1nZXN0dXJlLXdpbmRvdy1vcGVuLXdpdGgtZmxhZy5odG1sCisgICAgICAgICAg
ICAgICBsb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJscy91
c2VyLWdlc3R1cmUtd2luZG93LW9wZW4td2l0aG91dC1mbGFnLWZyb20tc3ViZnJhbWUuaHRtbAor
ICAgICAgICAgICAgICAgbG9hZGVyL25hdmlnYXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVy
bmFsLXVybHMvdXNlci1nZXN0dXJlLXdpbmRvdy1vcGVuLXdpdGhvdXQtZmxhZy5odG1sCisgICAg
ICAgICAgICAgICBsb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwt
dXJscy93aW5kb3ctb3Blbi13aXRoLWZsYWctZnJvbS1zdWJmcmFtZS5odG1sCisgICAgICAgICAg
ICAgICBsb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJscy93
aW5kb3ctb3Blbi13aXRoLWZsYWcuaHRtbAorICAgICAgICAgICAgICAgbG9hZGVyL25hdmlnYXRp
b24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvd2luZG93LW9wZW4td2l0aG91dC1m
bGFnLWZyb20tc3ViZnJhbWUuaHRtbAorICAgICAgICAgICAgICAgbG9hZGVyL25hdmlnYXRpb24t
cG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvd2luZG93LW9wZW4td2l0aG91dC1mbGFn
Lmh0bWwKKworICAgICAgICBUaGUgInNob3VsZCBvcGVuIGV4dGVybmFsIFVSTHMiIGZsYWcgaXMg
b25seSBmb3IgbWFpbiBmcmFtZXMuCisgICAgICAgIEl0IGRvZXNuJ3QgZW5mb3JjZSBhbnkgc29y
dCBvZiBwb2xpY3kgaW50ZXJuYWwgdG8gV2ViS2l0LCBidXQgcmF0aGVyIGlzIGZvciBub3RpZmlj
YXRpb25zIHRvIHRoZSBwb2xpY3kgZGVsZWdhdGUuCisgICAgICAgIAorICAgICAgICBJdCBpcyBz
ZXQgZnJvbSBvbmUgb2YgdHdvIHBsYWNlczoKKyAgICAgICAgMSAtIEEgbWFpbiBmcmFtZSBpcyBu
YXZpZ2F0ZWQgYnkgYW55IGZyYW1lIGFzIHRoZSByZXN1bHQgb2YgYSB1c2VyIGdlc3R1cmUuCisg
ICAgICAgIDIgLSBXZWJLaXQyIEFQSSBleHBsaWNpdGx5IHN0YXRlcyB0aGUgZmxhZyBpcyB0cnVl
LgorICAgICAgICAKKyAgICAgICAgVGhlIGZsYWcgdmFsdWUgcHJvcGFnYXRlcyB3aGVuOgorICAg
ICAgICAxIC0gV2hlbiBhIG1haW4gZnJhbWUgZG9jdW1lbnQgaXMgbmF2aWdhdGVkIHRvIGEgbmV3
IG1haW4gZnJhbWUgZG9jdW1lbnQuCisgICAgICAgIDIgLSBXaGVuIGEgbmV3IHdpbmRvdyBpcyBv
cGVuZWQgZnJvbSBhIHBhZ2Ugd2hvc2UgbWFpbiBmcmFtZSBoYWQgdGhlIGZsYWcgc2V0LgorICAg
ICAgICAKKyAgICAgICAgVGhlIGZsYWcgcmVzZXRzIHRvIGZhbHNlIHdoZW46CisgICAgICAgIDEg
LSBBIHN1YmZyYW1lIG5hdmlnYXRlcyBhIG1haW4gZnJhbWUgd2l0aG91dCBhIHVzZXIgZ2VzdHVy
ZS4KKyAgICAgICAgCisgICAgICAgIFRoaXMgcGF0Y2ggaXMgbGFyZ2UsIGJ1dCBkb2VzIGxpdHRs
ZSBtb3JlIHRoYW4gdGhlIGZvbGxvd2luZzoKKyAgICAgICAgMSAtIEFkZHMgYSBTaG91bGRPcGVu
RXh0ZXJuYWxVUkxzIGZsYWcgdG8gYm90aCBGcmFtZUxvYWRSZXF1ZXN0IGFuZCBOYXZpZ2F0aW9u
QWN0aW9uLgorICAgICAgICAyIC0gTWFrZXMgc3VyZSBhbnlib2R5IHdobyBjcmVhdGVzIGVpdGhl
ciBvZiB0aG9zZSBvYmplY3RzIHNldHMgYSBzZW5zaWJsZSBmb3IgdGhhdCBmbGFnLgorICAgICAg
ICAzIC0gV2hlbiBGcmFtZUxvYWRlciBjcmVhdGVzIGEgbmV3IERvY3VtZW50TG9hZGVyLCBpdCBz
ZXRzIGl0cyBmbGFnIGJhc2VkIG9uIHdoZXRoZXIgb3Igbm90IHRoZSBsb2FkIGlzIGluIGEgbWFp
biBmcmFtZSwKKyAgICAgICAgICAgIHdoZXRoZXIgb3Igbm90IHRoZSBsb2FkIGlzIGZyb20gYSB1
c2VyIGdlc3R1cmUsIGFuZCBiYXNlZCBvbiB0aGUgaW5pdGlhdG9yJ3MgdmFsdWUgb2YgdGhlIGZs
YWcuIAorCisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRv
Y3VtZW50Ojpwcm9jZXNzSHR0cEVxdWl2KToKKyAgICAgICAgCisgICAgICAgICogaHRtbC9IVE1M
QW5jaG9yRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQW5jaG9yRWxlbWVudDo6
aGFuZGxlQ2xpY2spOgorICAgICAgICAKKyAgICAgICAgKiBodG1sL0hUTUxMaW5rRWxlbWVudC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTGlua0VsZW1lbnQ6OmhhbmRsZUNsaWNrKToKKyAg
ICAgICAgCisgICAgICAgICogaHRtbC9wYXJzZXIvWFNTQXVkaXRvckRlbGVnYXRlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlhTU0F1ZGl0b3JEZWxlZ2F0ZTo6ZGlkQmxvY2tTY3JpcHQpOgorICAg
ICAgICAKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsOjpvcGVu
SW5OZXdUYWIpOgorICAgICAgICAKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFn
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclBhZ2VBZ2VudDo6bmF2aWdhdGUp
OgorICAgICAgICAKKyAgICAgICAgKiBsb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXI6OnNldFRyaWdnZXJpbmdBY3Rpb24pOgorICAgICAg
ICAoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXI6OnNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3lU
b1Byb3BhZ2F0ZSk6CisgICAgICAgICogbG9hZGVyL0RvY3VtZW50TG9hZGVyLmg6CisgICAgICAg
IChXZWJDb3JlOjpEb2N1bWVudExvYWRlcjo6c2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSk6
IERlbGV0ZWQuCisgICAgICAgIAorICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRSZXF1ZXN0LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZFJlcXVlc3Q6OkZyYW1lTG9hZFJlcXVlc3Qp
OgorICAgICAgICAKKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkUmVxdWVzdC5oOgorICAgICAg
ICAoV2ViQ29yZTo6RnJhbWVMb2FkUmVxdWVzdDo6RnJhbWVMb2FkUmVxdWVzdCk6CisgICAgICAg
IAorICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpG
cmFtZUxvYWRlcjo6dXJsU2VsZWN0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6
OnJlY2VpdmVkRmlyc3REYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpsb2Fk
VVJMSW50b0NoaWxkRnJhbWUpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmxvYWRV
UkwpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmxvYWQpOgorICAgICAgICAoV2Vi
Q29yZTo6RnJhbWVMb2FkZXI6OmxvYWRXaXRoTmF2aWdhdGlvbkFjdGlvbik6CisgICAgICAgIChX
ZWJDb3JlOjpGcmFtZUxvYWRlcjo6cmVsb2FkV2l0aE92ZXJyaWRlRW5jb2RpbmcpOgorICAgICAg
ICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OnJlbG9hZCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFt
ZUxvYWRlcjo6bG9hZFBvc3RSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVy
Ojpjb250aW51ZUxvYWRBZnRlck5ld1dpbmRvd1BvbGljeSk6CisgICAgICAgIChXZWJDb3JlOjpG
cmFtZUxvYWRlcjo6YXBwbHlTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5VG9OZXdEb2N1bWVu
dExvYWRlcik6CisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyLmg6CisgICAgICAgIAorICAg
ICAgICAqIGxvYWRlci9OYXZpZ2F0aW9uQWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5h
dmlnYXRpb25BY3Rpb246Ok5hdmlnYXRpb25BY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6TmF2
aWdhdGlvbkFjdGlvbjo6Y29weVdpdGhTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5KToKKyAg
ICAgICAgKiBsb2FkZXIvTmF2aWdhdGlvbkFjdGlvbi5oOgorICAgICAgICAoV2ViQ29yZTo6TmF2
aWdhdGlvbkFjdGlvbjo6c2V0U2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSk6IERlbGV0ZWQu
CisgICAgICAgIAorICAgICAgICAqIGxvYWRlci9OYXZpZ2F0aW9uU2NoZWR1bGVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNjaGVkdWxlZFVSTE5hdmlnYXRpb246OlNjaGVkdWxlZFVSTE5hdmln
YXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6U2NoZWR1bGVkUmVkaXJlY3Q6OlNjaGVkdWxlZFJl
ZGlyZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNjaGVkdWxlZExvY2F0aW9uQ2hhbmdlOjpTY2hl
ZHVsZWRMb2NhdGlvbkNoYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpTY2hlZHVsZWRSZWZyZXNo
OjpTY2hlZHVsZWRSZWZyZXNoKToKKyAgICAgICAgKFdlYkNvcmU6OlNjaGVkdWxlZEZvcm1TdWJt
aXNzaW9uOjpTY2hlZHVsZWRGb3JtU3VibWlzc2lvbik6CisgICAgICAgIChXZWJDb3JlOjpOYXZp
Z2F0aW9uU2NoZWR1bGVyOjpzY2hlZHVsZVJlZGlyZWN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok5h
dmlnYXRpb25TY2hlZHVsZXI6OnNjaGVkdWxlTG9jYXRpb25DaGFuZ2UpOgorICAgICAgICAoV2Vi
Q29yZTo6TmF2aWdhdGlvblNjaGVkdWxlcjo6c2NoZWR1bGVSZWZyZXNoKToKKyAgICAgICAgKiBs
b2FkZXIvTmF2aWdhdGlvblNjaGVkdWxlci5oOgorICAgICAgICAKKyAgICAgICAgKiBsb2FkZXIv
UG9saWN5Q2hlY2tlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQb2xpY3lDaGVja2VyOjpjaGVj
a05hdmlnYXRpb25Qb2xpY3kpOgorICAgICAgICAKKyAgICAgICAgKiBsb2FkZXIvU3ViZnJhbWVM
b2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3ViZnJhbWVMb2FkZXI6OmxvYWRPclJlZGly
ZWN0U3ViZnJhbWUpOgorICAgICAgICAKKyAgICAgICAgKiBsb2FkZXIvYXBwY2FjaGUvQXBwbGlj
YXRpb25DYWNoZUdyb3VwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFwcGxpY2F0aW9uQ2FjaGVH
cm91cDo6c2VsZWN0Q2FjaGUpOgorICAgICAgICAKKyAgICAgICAgKiBwYWdlL0NvbnRleHRNZW51
Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpvcGVuTmV3V2luZG93KToKKyAgICAg
ICAgKFdlYkNvcmU6OkNvbnRleHRNZW51Q29udHJvbGxlcjo6Y29udGV4dE1lbnVJdGVtU2VsZWN0
ZWQpOgorICAgICAgICAKKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpET01XaW5kb3c6OnNldExvY2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdp
bmRvdzo6Y3JlYXRlV2luZG93KToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6b3Blbik6
CisgICAgICAgIAorICAgICAgICAqIHBhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RHJhZ0NvbnRyb2xsZXI6OnBlcmZvcm1EcmFnT3BlcmF0aW9uKToKKyAgICAgICAg
CisgICAgICAgICogcGFnZS9Mb2NhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMb2NhdGlv
bjo6cmVsb2FkKToKKyAgICAgICAgCisgICAgICAgICogcmVwbGF5L1JlcGxheUlucHV0RGlzcGF0
Y2hNZXRob2RzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkluaXRpYWxOYXZpZ2F0aW9uOjpkaXNw
YXRjaCk6CisgICAgICAgIAorICAgICAgICAqIHN2Zy9TVkdBRWxlbWVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTVkdBRWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxlcik6CisKIDIwMTUtMDYt
MDEgIEJlbmphbWluIFBvdWxhaW4gIDxicG91bGFpbkBhcHBsZS5jb20+CiAKICAgICAgICAgW0NT
UyBKSVRdIEZhaWwgdG8gY29tcGlsZSB3aGVuIHdlIGFyZSBvdXQgb2YgZXhlY3V0YWJsZSBtZW1v
cnkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IDQ2YTEzZDUuLmZlZmE5YjYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0RvY3VtZW50LmNwcApAQCAtMzA0OSw3ICszMDQ5LDcgQEAgdm9pZCBEb2N1bWVudDo6cHJv
Y2Vzc0h0dHBFcXVpdihjb25zdCBTdHJpbmcmIGVxdWl2LCBjb25zdCBTdHJpbmcmIGNvbnRlbnQp
CiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgY29tcGxldGVkVVJMID0gY29tcGxl
dGVVUkwodXJsU3RyaW5nKTsKICAgICAgICAgICAgIGlmICghcHJvdG9jb2xJc0phdmFTY3JpcHQo
Y29tcGxldGVkVVJMKSkKLSAgICAgICAgICAgICAgICBmcmFtZS0+bmF2aWdhdGlvblNjaGVkdWxl
cigpLnNjaGVkdWxlUmVkaXJlY3QoZGVsYXksIGNvbXBsZXRlZFVSTCk7CisgICAgICAgICAgICAg
ICAgZnJhbWUtPm5hdmlnYXRpb25TY2hlZHVsZXIoKS5zY2hlZHVsZVJlZGlyZWN0KHRoaXMsIGRl
bGF5LCBjb21wbGV0ZWRVUkwpOwogICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAg
U3RyaW5nIG1lc3NhZ2UgPSAiUmVmdXNlZCB0byByZWZyZXNoICIgKyBtX3VybC5zdHJpbmdDZW50
ZXJFbGxpcHNpemVkVG9MZW5ndGgoKSArICIgdG8gYSBqYXZhc2NyaXB0OiBVUkwiOwogICAgICAg
ICAgICAgICAgIGFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OlNlY3VyaXR5LCBNZXNz
YWdlTGV2ZWw6OkVycm9yLCBtZXNzYWdlKTsKQEAgLTMwODcsNyArMzA4Nyw3IEBAIHZvaWQgRG9j
dW1lbnQ6OnByb2Nlc3NIdHRwRXF1aXYoY29uc3QgU3RyaW5nJiBlcXVpdiwgY29uc3QgU3RyaW5n
JiBjb250ZW50KQogICAgICAgICAgICAgICAgIC8vIFN0b3BwaW5nIHRoZSBsb2FkZXIgaXNuJ3Qg
ZW5vdWdoLCBhcyB3ZSdyZSBhbHJlYWR5IHBhcnNpbmcgdGhlIGRvY3VtZW50OyB0byBob25vciB0
aGUgaGVhZGVyJ3MKICAgICAgICAgICAgICAgICAvLyBpbnRlbnQsIHdlIG11c3QgbmF2aWdhdGUg
YXdheSBmcm9tIHRoZSBwb3NzaWJseSBwYXJ0aWFsbHktcmVuZGVyZWQgZG9jdW1lbnQgdG8gYSBs
b2NhdGlvbiB0aGF0CiAgICAgICAgICAgICAgICAgLy8gZG9lc24ndCBpbmhlcml0IHRoZSBwYXJl
bnQncyBTZWN1cml0eU9yaWdpbi4KLSAgICAgICAgICAgICAgICBmcmFtZS0+bmF2aWdhdGlvblNj
aGVkdWxlcigpLnNjaGVkdWxlTG9jYXRpb25DaGFuZ2Uoc2VjdXJpdHlPcmlnaW4oKSwgU2VjdXJp
dHlPcmlnaW46OnVybFdpdGhVbmlxdWVTZWN1cml0eU9yaWdpbigpLCBTdHJpbmcoKSk7CisgICAg
ICAgICAgICAgICAgZnJhbWUtPm5hdmlnYXRpb25TY2hlZHVsZXIoKS5zY2hlZHVsZUxvY2F0aW9u
Q2hhbmdlKHRoaXMsIHNlY3VyaXR5T3JpZ2luKCksIFNlY3VyaXR5T3JpZ2luOjp1cmxXaXRoVW5p
cXVlU2VjdXJpdHlPcmlnaW4oKSwgU3RyaW5nKCkpOwogICAgICAgICAgICAgICAgIGFkZENvbnNv
bGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OlNlY3VyaXR5LCBNZXNzYWdlTGV2ZWw6OkVycm9yLCBt
ZXNzYWdlLCByZXF1ZXN0SWRlbnRpZmllcik7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KQEAg
LTY2NDgsNCArNjY0OCwxMiBAQCB2b2lkIERvY3VtZW50OjpzZXRTaG91bGRQbGF5VG9QbGF5YmFj
a1RhcmdldCh1aW50NjRfdCBjbGllbnRJZCwgYm9vbCBzaG91bGRQbGF5KQogfQogI2VuZGlmIC8v
IEVOQUJMRShXSVJFTEVTU19QTEFZQkFDS19UQVJHRVQpCiAKK1Nob3VsZE9wZW5FeHRlcm5hbFVS
THNQb2xpY3kgRG9jdW1lbnQ6OnNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3lUb1Byb3BhZ2F0
ZSgpIGNvbnN0Cit7CisgICAgaWYgKERvY3VtZW50TG9hZGVyKiBkb2N1bWVudExvYWRlciA9IGxv
YWRlcigpKQorICAgICAgICByZXR1cm4gZG9jdW1lbnRMb2FkZXItPnNob3VsZE9wZW5FeHRlcm5h
bFVSTHNQb2xpY3lUb1Byb3BhZ2F0ZSgpOworCisgICAgcmV0dXJuIFNob3VsZE9wZW5FeHRlcm5h
bFVSTHNQb2xpY3k6OlNob3VsZE5vdEFsbG93OworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4IGFjMzk5OWEuLmJhYTJjNGYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5oCkBAIC0xNjUsNiArMTY1LDggQEAgY2xhc3MgWFBhdGhFeHByZXNzaW9uOwogY2xhc3Mg
WFBhdGhOU1Jlc29sdmVyOwogY2xhc3MgWFBhdGhSZXN1bHQ7CiAKK2VudW0gY2xhc3MgU2hvdWxk
T3BlbkV4dGVybmFsVVJMc1BvbGljeTsKKwogI2lmIEVOQUJMRShYU0xUKQogY2xhc3MgVHJhbnNm
b3JtU291cmNlOwogI2VuZGlmCkBAIC0xMjU0LDYgKzEyNTYsOCBAQCBwdWJsaWM6CiAgICAgdm9p
ZCBzZXRTaG91bGRQbGF5VG9QbGF5YmFja1RhcmdldCh1aW50NjRfdCwgYm9vbCk7CiAjZW5kaWYK
IAorICAgIFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kgc2hvdWxkT3BlbkV4dGVybmFsVVJM
c1BvbGljeVRvUHJvcGFnYXRlKCkgY29uc3Q7CisKIHByb3RlY3RlZDoKICAgICBlbnVtIENvbnN0
cnVjdGlvbkZsYWdzIHsgU3ludGhlc2l6ZWQgPSAxLCBOb25SZW5kZXJlZFBsYWNlaG9sZGVyID0g
MSA8PCAxIH07CiAgICAgRG9jdW1lbnQoRnJhbWUqLCBjb25zdCBVUkwmLCB1bnNpZ25lZCA9IERl
ZmF1bHREb2N1bWVudENsYXNzLCB1bnNpZ25lZCBjb25zdHJ1Y3Rpb25GbGFncyA9IDApOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmNwcAppbmRleCA1NDkwNDczLi41YmQ3
ZTU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmNwcApAQCAtNTU4
LDcgKzU1OCw4IEBAIHZvaWQgSFRNTEFuY2hvckVsZW1lbnQ6OmhhbmRsZUNsaWNrKEV2ZW50KiBl
dmVudCkKICAgICAgICAgZnJhbWUtPmxvYWRlcigpLmNsaWVudCgpLnN0YXJ0RG93bmxvYWQocmVx
dWVzdCwgZmFzdEdldEF0dHJpYnV0ZShkb3dubG9hZEF0dHIpKTsKICAgICB9IGVsc2UKICNlbmRp
ZgotICAgICAgICBmcmFtZS0+bG9hZGVyKCkudXJsU2VsZWN0ZWQoa3VybCwgdGFyZ2V0KCksIGV2
ZW50LCBMb2NrSGlzdG9yeTo6Tm8sIExvY2tCYWNrRm9yd2FyZExpc3Q6Ok5vLCBoYXNSZWwoUmVs
YXRpb25Ob1JlZmVycmVyKSA/IE5ldmVyU2VuZFJlZmVycmVyIDogTWF5YmVTZW5kUmVmZXJyZXIp
OworCisgICAgZnJhbWUtPmxvYWRlcigpLnVybFNlbGVjdGVkKGt1cmwsIHRhcmdldCgpLCBldmVu
dCwgTG9ja0hpc3Rvcnk6Ok5vLCBMb2NrQmFja0ZvcndhcmRMaXN0OjpObywgaGFzUmVsKFJlbGF0
aW9uTm9SZWZlcnJlcikgPyBOZXZlclNlbmRSZWZlcnJlciA6IE1heWJlU2VuZFJlZmVycmVyLCBk
b2N1bWVudCgpLnNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3lUb1Byb3BhZ2F0ZSgpKTsKIAog
ICAgIHNlbmRQaW5ncyhrdXJsKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTExpbmtFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVtZW50
LmNwcAppbmRleCAxZWRmZmQwLi5hNmY3OTViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxMaW5rRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGlu
a0VsZW1lbnQuY3BwCkBAIC00NDEsNyArNDQxLDcgQEAgdm9pZCBIVE1MTGlua0VsZW1lbnQ6Omhh
bmRsZUNsaWNrKEV2ZW50JiBldmVudCkKICAgICBGcmFtZSogZnJhbWUgPSBkb2N1bWVudCgpLmZy
YW1lKCk7CiAgICAgaWYgKCFmcmFtZSkKICAgICAgICAgcmV0dXJuOwotICAgIGZyYW1lLT5sb2Fk
ZXIoKS51cmxTZWxlY3RlZCh1cmwsIHRhcmdldCgpLCAmZXZlbnQsIExvY2tIaXN0b3J5OjpObywg
TG9ja0JhY2tGb3J3YXJkTGlzdDo6Tm8sIE1heWJlU2VuZFJlZmVycmVyKTsKKyAgICBmcmFtZS0+
bG9hZGVyKCkudXJsU2VsZWN0ZWQodXJsLCB0YXJnZXQoKSwgJmV2ZW50LCBMb2NrSGlzdG9yeTo6
Tm8sIExvY2tCYWNrRm9yd2FyZExpc3Q6Ok5vLCBNYXliZVNlbmRSZWZlcnJlciwgZG9jdW1lbnQo
KS5zaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5VG9Qcm9wYWdhdGUoKSk7CiB9CiAKIFVSTCBI
VE1MTGlua0VsZW1lbnQ6OmhyZWYoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9wYXJzZXIvWFNTQXVkaXRvckRlbGVnYXRlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
cGFyc2VyL1hTU0F1ZGl0b3JEZWxlZ2F0ZS5jcHAKaW5kZXggMDRkZDA0My4uZjU0ZDkyYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvWFNTQXVkaXRvckRlbGVnYXRlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9YU1NBdWRpdG9yRGVsZWdhdGUuY3Bw
CkBAIC0xMTIsNyArMTEyLDcgQEAgdm9pZCBYU1NBdWRpdG9yRGVsZWdhdGU6OmRpZEJsb2NrU2Ny
aXB0KGNvbnN0IFhTU0luZm8mIHhzc0luZm8pCiAgICAgfQogCiAgICAgaWYgKHhzc0luZm8ubV9k
aWRCbG9ja0VudGlyZVBhZ2UpCi0gICAgICAgIG1fZG9jdW1lbnQuZnJhbWUoKS0+bmF2aWdhdGlv
blNjaGVkdWxlcigpLnNjaGVkdWxlTG9jYXRpb25DaGFuZ2UobV9kb2N1bWVudC5zZWN1cml0eU9y
aWdpbigpLCBTZWN1cml0eU9yaWdpbjo6dXJsV2l0aFVuaXF1ZVNlY3VyaXR5T3JpZ2luKCksIFN0
cmluZygpKTsKKyAgICAgICAgbV9kb2N1bWVudC5mcmFtZSgpLT5uYXZpZ2F0aW9uU2NoZWR1bGVy
KCkuc2NoZWR1bGVMb2NhdGlvbkNoYW5nZSgmbV9kb2N1bWVudCwgbV9kb2N1bWVudC5zZWN1cml0
eU9yaWdpbigpLCBTZWN1cml0eU9yaWdpbjo6dXJsV2l0aFVuaXF1ZVNlY3VyaXR5T3JpZ2luKCks
IFN0cmluZygpKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWwuY3BwIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWwuY3Bw
CmluZGV4IDM3NGRjYzEuLmJjMzk0ZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbC5jcHAKQEAgLTIxMCw3ICsy
MTAsNyBAQCB2b2lkIEluc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWw6Om9wZW5Jbk5ld1RhYihj
b25zdCBTdHJpbmcmIHVybCkKIHsKICAgICBVc2VyR2VzdHVyZUluZGljYXRvciBpbmRpY2F0b3Io
RGVmaW5pdGVseVByb2Nlc3NpbmdVc2VyR2VzdHVyZSk7CiAgICAgRnJhbWUmIG1haW5GcmFtZSA9
IG1faW5zcGVjdG9yQ29udHJvbGxlci0+aW5zcGVjdGVkUGFnZSgpLm1haW5GcmFtZSgpOwotICAg
IEZyYW1lTG9hZFJlcXVlc3QgcmVxdWVzdChtYWluRnJhbWUuZG9jdW1lbnQoKS0+c2VjdXJpdHlP
cmlnaW4oKSwgUmVzb3VyY2VSZXF1ZXN0KCksICJfYmxhbmsiLCBMb2NrSGlzdG9yeTo6Tm8sIExv
Y2tCYWNrRm9yd2FyZExpc3Q6Ok5vLCBNYXliZVNlbmRSZWZlcnJlciwgQWxsb3dOYXZpZ2F0aW9u
VG9JbnZhbGlkVVJMOjpZZXMsIE5ld0ZyYW1lT3BlbmVyUG9saWN5OjpBbGxvdywgUmVwbGFjZURv
Y3VtZW50SWZKYXZhU2NyaXB0VVJMKTsKKyAgICBGcmFtZUxvYWRSZXF1ZXN0IHJlcXVlc3QobWFp
bkZyYW1lLmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCksIFJlc291cmNlUmVxdWVzdCgpLCAi
X2JsYW5rIiwgTG9ja0hpc3Rvcnk6Ok5vLCBMb2NrQmFja0ZvcndhcmRMaXN0OjpObywgTWF5YmVT
ZW5kUmVmZXJyZXIsIEFsbG93TmF2aWdhdGlvblRvSW52YWxpZFVSTDo6WWVzLCBOZXdGcmFtZU9w
ZW5lclBvbGljeTo6QWxsb3csIFJlcGxhY2VEb2N1bWVudElmSmF2YVNjcmlwdFVSTCwgU2hvdWxk
T3BlbkV4dGVybmFsVVJMc1BvbGljeTo6U2hvdWxkTm90QWxsb3cpOwogCiAgICAgYm9vbCBjcmVh
dGVkOwogICAgIFdpbmRvd0ZlYXR1cmVzIHdpbmRvd0ZlYXR1cmVzOwpAQCAtMjIzLDcgKzIyMyw3
IEBAIHZvaWQgSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbDo6b3BlbkluTmV3VGFiKGNvbnN0
IFN0cmluZyYgdXJsKQogCiAgICAgLy8gRklYTUU6IFdoeSBkb2VzIG9uZSB1c2UgbWFpbkZyYW1l
IGFuZCB0aGUgb3RoZXIgZnJhbWU/CiAgICAgUmVzb3VyY2VSZXF1ZXN0IHJlc291cmNlUmVxdWVz
dChmcmFtZS0+ZG9jdW1lbnQoKS0+Y29tcGxldGVVUkwodXJsKSk7Ci0gICAgRnJhbWVMb2FkUmVx
dWVzdCBmcmFtZVJlcXVlc3QobWFpbkZyYW1lLmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCks
IHJlc291cmNlUmVxdWVzdCwgZW1wdHlTdHJpbmcoKSwgTG9ja0hpc3Rvcnk6Ok5vLCBMb2NrQmFj
a0ZvcndhcmRMaXN0OjpObywgTWF5YmVTZW5kUmVmZXJyZXIsIEFsbG93TmF2aWdhdGlvblRvSW52
YWxpZFVSTDo6WWVzLCBOZXdGcmFtZU9wZW5lclBvbGljeTo6QWxsb3csIFJlcGxhY2VEb2N1bWVu
dElmSmF2YVNjcmlwdFVSTCk7CisgICAgRnJhbWVMb2FkUmVxdWVzdCBmcmFtZVJlcXVlc3QobWFp
bkZyYW1lLmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCksIHJlc291cmNlUmVxdWVzdCwgZW1w
dHlTdHJpbmcoKSwgTG9ja0hpc3Rvcnk6Ok5vLCBMb2NrQmFja0ZvcndhcmRMaXN0OjpObywgTWF5
YmVTZW5kUmVmZXJyZXIsIEFsbG93TmF2aWdhdGlvblRvSW52YWxpZFVSTDo6WWVzLCBOZXdGcmFt
ZU9wZW5lclBvbGljeTo6QWxsb3csIFJlcGxhY2VEb2N1bWVudElmSmF2YVNjcmlwdFVSTCwgU2hv
dWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeTo6U2hvdWxkTm90QWxsb3cpOwogICAgIGZyYW1lLT5s
b2FkZXIoKS5jaGFuZ2VMb2NhdGlvbihmcmFtZVJlcXVlc3QpOwogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuY3BwCmluZGV4IDcxNmY0MGYuLjE4
YzA0MzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdl
QWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdl
bnQuY3BwCkBAIC00MTksNyArNDE5LDcgQEAgdm9pZCBJbnNwZWN0b3JQYWdlQWdlbnQ6Om5hdmln
YXRlKEVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiB1cmwpCiAgICAgRnJhbWUmIGZyYW1lID0g
bV9wYWdlLT5tYWluRnJhbWUoKTsKIAogICAgIFJlc291cmNlUmVxdWVzdCByZXNvdXJjZVJlcXVl
c3QoZnJhbWUuZG9jdW1lbnQoKS0+Y29tcGxldGVVUkwodXJsKSk7Ci0gICAgRnJhbWVMb2FkUmVx
dWVzdCBmcmFtZVJlcXVlc3QoZnJhbWUuZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKSwgcmVz
b3VyY2VSZXF1ZXN0LCBlbXB0eVN0cmluZygpLCBMb2NrSGlzdG9yeTo6Tm8sIExvY2tCYWNrRm9y
d2FyZExpc3Q6Ok5vLCBNYXliZVNlbmRSZWZlcnJlciwgQWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlk
VVJMOjpObywgTmV3RnJhbWVPcGVuZXJQb2xpY3k6OkFsbG93LCBTaG91bGRSZXBsYWNlRG9jdW1l
bnRJZkphdmFTY3JpcHRVUkw6OlJlcGxhY2VEb2N1bWVudElmSmF2YVNjcmlwdFVSTCk7CisgICAg
RnJhbWVMb2FkUmVxdWVzdCBmcmFtZVJlcXVlc3QoZnJhbWUuZG9jdW1lbnQoKS0+c2VjdXJpdHlP
cmlnaW4oKSwgcmVzb3VyY2VSZXF1ZXN0LCBlbXB0eVN0cmluZygpLCBMb2NrSGlzdG9yeTo6Tm8s
IExvY2tCYWNrRm9yd2FyZExpc3Q6Ok5vLCBNYXliZVNlbmRSZWZlcnJlciwgQWxsb3dOYXZpZ2F0
aW9uVG9JbnZhbGlkVVJMOjpObywgTmV3RnJhbWVPcGVuZXJQb2xpY3k6OkFsbG93LCBTaG91bGRS
ZXBsYWNlRG9jdW1lbnRJZkphdmFTY3JpcHRVUkw6OlJlcGxhY2VEb2N1bWVudElmSmF2YVNjcmlw
dFVSTCwgU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeTo6U2hvdWxkTm90QWxsb3cpOwogICAg
IGZyYW1lLmxvYWRlcigpLmNoYW5nZUxvY2F0aW9uKGZyYW1lUmVxdWVzdCk7CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwCmluZGV4IGNiMTk4Y2IuLjUyZjYwZjUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcApAQCAtMTU0OSw5ICsx
NTQ5LDE1IEBAIHZvaWQgRG9jdW1lbnRMb2FkZXI6OmhhbmRsZWRPbmxvYWRFdmVudHMoKQogCiB2
b2lkIERvY3VtZW50TG9hZGVyOjpzZXRUcmlnZ2VyaW5nQWN0aW9uKGNvbnN0IE5hdmlnYXRpb25B
Y3Rpb24mIGFjdGlvbikKIHsKLSAgICBtX3RyaWdnZXJpbmdBY3Rpb24gPSBhY3Rpb247Ci0gICAg
aWYgKCFtX3RyaWdnZXJpbmdBY3Rpb24uaXNFbXB0eSgpKQotICAgICAgICBtX3RyaWdnZXJpbmdB
Y3Rpb24uc2V0U2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeShtX3Nob3VsZE9wZW5FeHRlcm5h
bFVSTHNQb2xpY3kpOworICAgIG1fdHJpZ2dlcmluZ0FjdGlvbiA9IGFjdGlvbi5jb3B5V2l0aFNo
b3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kobV9mcmFtZSA/IHNob3VsZE9wZW5FeHRlcm5hbFVS
THNQb2xpY3lUb1Byb3BhZ2F0ZSgpIDogbV9zaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5KTsK
K30KKworU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSBEb2N1bWVudExvYWRlcjo6c2hvdWxk
T3BlbkV4dGVybmFsVVJMc1BvbGljeVRvUHJvcGFnYXRlKCkgY29uc3QKK3sKKyAgICBpZiAoIW1f
ZnJhbWUgfHwgIW1fZnJhbWUtPmlzTWFpbkZyYW1lKCkpCisgICAgICAgIHJldHVybiBTaG91bGRP
cGVuRXh0ZXJuYWxVUkxzUG9saWN5OjpTaG91bGROb3RBbGxvdzsKKworICAgIHJldHVybiBtX3No
b3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3k7CiB9CiAKICNpZiBFTkFCTEUoQ09OVEVOVF9FWFRF
TlNJT05TKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVy
LmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuaAppbmRleCA2NGJmMzVh
Li45MzVlODgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2Fk
ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuaApAQCAtMjc2
LDcgKzI3Niw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICNlbmRpZgogCiAgICAgICAgIHZvaWQg
c2V0U2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeShTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9s
aWN5IHNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kpIHsgbV9zaG91bGRPcGVuRXh0ZXJuYWxV
UkxzUG9saWN5ID0gc2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeTsgfQotICAgICAgICBTaG91
bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5IHNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3koKSBj
b25zdCB7IHJldHVybiBtX3Nob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3k7IH0KKyAgICAgICAg
U2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSBzaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5
VG9Qcm9wYWdhdGUoKSBjb25zdDsKIAogICAgIHByb3RlY3RlZDoKICAgICAgICAgV0VCQ09SRV9F
WFBPUlQgRG9jdW1lbnRMb2FkZXIoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgU3Vic3Rp
dHV0ZURhdGEmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRS
ZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRSZXF1ZXN0LmNwcApp
bmRleCA3Yjk3NGIwLi41ZDk5MjZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
RnJhbWVMb2FkUmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9h
ZFJlcXVlc3QuY3BwCkBAIC0zNiw3ICszNiw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAot
RnJhbWVMb2FkUmVxdWVzdDo6RnJhbWVMb2FkUmVxdWVzdChGcmFtZSogZnJhbWUsIGNvbnN0IFJl
c291cmNlUmVxdWVzdCYgcmVzb3VyY2VSZXF1ZXN0LCBjb25zdCBTdWJzdGl0dXRlRGF0YSYgc3Vi
c3RpdHV0ZURhdGEpCitGcmFtZUxvYWRSZXF1ZXN0OjpGcmFtZUxvYWRSZXF1ZXN0KEZyYW1lKiBm
cmFtZSwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXNvdXJjZVJlcXVlc3QsIFNob3VsZE9wZW5F
eHRlcm5hbFVSTHNQb2xpY3kgc2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSwgY29uc3QgU3Vi
c3RpdHV0ZURhdGEmIHN1YnN0aXR1dGVEYXRhKQogICAgIDogbV9yZXF1ZXN0ZXIoZnJhbWUtPmRv
Y3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCkpCiAgICAgLCBtX3Jlc291cmNlUmVxdWVzdChyZXNv
dXJjZVJlcXVlc3QpCiAgICAgLCBtX3Nob3VsZENoZWNrTmV3V2luZG93UG9saWN5KGZhbHNlKQpA
QCAtNDcsNiArNDcsNyBAQCBGcmFtZUxvYWRSZXF1ZXN0OjpGcmFtZUxvYWRSZXF1ZXN0KEZyYW1l
KiBmcmFtZSwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXNvdXJjZQogICAgICwgbV9hbGxvd05h
dmlnYXRpb25Ub0ludmFsaWRVUkwoQWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJMOjpZZXMpCiAg
ICAgLCBtX25ld0ZyYW1lT3BlbmVyUG9saWN5KE5ld0ZyYW1lT3BlbmVyUG9saWN5OjpBbGxvdykK
ICAgICAsIG1fc2hvdWxkUmVwbGFjZURvY3VtZW50SWZKYXZhU2NyaXB0VVJMKFJlcGxhY2VEb2N1
bWVudElmSmF2YVNjcmlwdFVSTCkKKyAgICAsIG1fc2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGlj
eShzaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5KQogewogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkUmVxdWVzdC5oIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0ZyYW1lTG9hZFJlcXVlc3QuaAppbmRleCAyYzgxNTllLi45NTE4OWVjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkUmVxdWVzdC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRSZXF1ZXN0LmgKQEAgLTM2LDcgKzM2LDcgQEAgY2xhc3Mg
RnJhbWU7CiAKIHN0cnVjdCBGcmFtZUxvYWRSZXF1ZXN0IHsKIHB1YmxpYzoKLSAgICBGcmFtZUxv
YWRSZXF1ZXN0KFNlY3VyaXR5T3JpZ2luKiByZXF1ZXN0ZXIsIExvY2tIaXN0b3J5IGxvY2tIaXN0
b3J5LCBMb2NrQmFja0ZvcndhcmRMaXN0IGxvY2tCYWNrRm9yd2FyZExpc3QsIFNob3VsZFNlbmRS
ZWZlcnJlciBzaG91bGRTZW5kUmVmZXJyZXIsIEFsbG93TmF2aWdhdGlvblRvSW52YWxpZFVSTCBh
bGxvd05hdmlnYXRpb25Ub0ludmFsaWRVUkwsIE5ld0ZyYW1lT3BlbmVyUG9saWN5IG5ld0ZyYW1l
T3BlbmVyUG9saWN5KQorICAgIEZyYW1lTG9hZFJlcXVlc3QoU2VjdXJpdHlPcmlnaW4qIHJlcXVl
c3RlciwgTG9ja0hpc3RvcnkgbG9ja0hpc3RvcnksIExvY2tCYWNrRm9yd2FyZExpc3QgbG9ja0Jh
Y2tGb3J3YXJkTGlzdCwgU2hvdWxkU2VuZFJlZmVycmVyIHNob3VsZFNlbmRSZWZlcnJlciwgQWxs
b3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJMIGFsbG93TmF2aWdhdGlvblRvSW52YWxpZFVSTCwgTmV3
RnJhbWVPcGVuZXJQb2xpY3kgbmV3RnJhbWVPcGVuZXJQb2xpY3ksIFNob3VsZE9wZW5FeHRlcm5h
bFVSTHNQb2xpY3kgc2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSkKICAgICAgICAgOiBtX3Jl
cXVlc3RlcihyZXF1ZXN0ZXIpCiAgICAgICAgICwgbV9zaG91bGRDaGVja05ld1dpbmRvd1BvbGlj
eShmYWxzZSkKICAgICAgICAgLCBtX2xvY2tIaXN0b3J5KGxvY2tIaXN0b3J5KQpAQCAtNDUsMTAg
KzQ1LDExIEBAIHB1YmxpYzoKICAgICAgICAgLCBtX2FsbG93TmF2aWdhdGlvblRvSW52YWxpZFVS
TChhbGxvd05hdmlnYXRpb25Ub0ludmFsaWRVUkwpCiAgICAgICAgICwgbV9uZXdGcmFtZU9wZW5l
clBvbGljeShuZXdGcmFtZU9wZW5lclBvbGljeSkKICAgICAgICAgLCBtX3Nob3VsZFJlcGxhY2VE
b2N1bWVudElmSmF2YVNjcmlwdFVSTChSZXBsYWNlRG9jdW1lbnRJZkphdmFTY3JpcHRVUkwpCisg
ICAgICAgICwgbV9zaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5KHNob3VsZE9wZW5FeHRlcm5h
bFVSTHNQb2xpY3kpCiAgICAgewogICAgIH0KIAotICAgIEZyYW1lTG9hZFJlcXVlc3QoU2VjdXJp
dHlPcmlnaW4qIHJlcXVlc3RlciwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXNvdXJjZVJlcXVl
c3QsIExvY2tIaXN0b3J5IGxvY2tIaXN0b3J5LCBMb2NrQmFja0ZvcndhcmRMaXN0IGxvY2tCYWNr
Rm9yd2FyZExpc3QsIFNob3VsZFNlbmRSZWZlcnJlciBzaG91bGRTZW5kUmVmZXJyZXIsIEFsbG93
TmF2aWdhdGlvblRvSW52YWxpZFVSTCBhbGxvd05hdmlnYXRpb25Ub0ludmFsaWRVUkwsIE5ld0Zy
YW1lT3BlbmVyUG9saWN5IG5ld0ZyYW1lT3BlbmVyUG9saWN5KQorICAgIEZyYW1lTG9hZFJlcXVl
c3QoU2VjdXJpdHlPcmlnaW4qIHJlcXVlc3RlciwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXNv
dXJjZVJlcXVlc3QsIExvY2tIaXN0b3J5IGxvY2tIaXN0b3J5LCBMb2NrQmFja0ZvcndhcmRMaXN0
IGxvY2tCYWNrRm9yd2FyZExpc3QsIFNob3VsZFNlbmRSZWZlcnJlciBzaG91bGRTZW5kUmVmZXJy
ZXIsIEFsbG93TmF2aWdhdGlvblRvSW52YWxpZFVSTCBhbGxvd05hdmlnYXRpb25Ub0ludmFsaWRV
UkwsIE5ld0ZyYW1lT3BlbmVyUG9saWN5IG5ld0ZyYW1lT3BlbmVyUG9saWN5LCBTaG91bGRPcGVu
RXh0ZXJuYWxVUkxzUG9saWN5IHNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kpCiAgICAgICAg
IDogbV9yZXF1ZXN0ZXIocmVxdWVzdGVyKQogICAgICAgICAsIG1fcmVzb3VyY2VSZXF1ZXN0KHJl
c291cmNlUmVxdWVzdCkKICAgICAgICAgLCBtX3Nob3VsZENoZWNrTmV3V2luZG93UG9saWN5KGZh
bHNlKQpAQCAtNTgsMTAgKzU5LDExIEBAIHB1YmxpYzoKICAgICAgICAgLCBtX2FsbG93TmF2aWdh
dGlvblRvSW52YWxpZFVSTChhbGxvd05hdmlnYXRpb25Ub0ludmFsaWRVUkwpCiAgICAgICAgICwg
bV9uZXdGcmFtZU9wZW5lclBvbGljeShuZXdGcmFtZU9wZW5lclBvbGljeSkKICAgICAgICAgLCBt
X3Nob3VsZFJlcGxhY2VEb2N1bWVudElmSmF2YVNjcmlwdFVSTChSZXBsYWNlRG9jdW1lbnRJZkph
dmFTY3JpcHRVUkwpCisgICAgICAgICwgbV9zaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5KHNo
b3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kpCiAgICAgewogICAgIH0KIAotICAgIEZyYW1lTG9h
ZFJlcXVlc3QoU2VjdXJpdHlPcmlnaW4qIHJlcXVlc3RlciwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0
JiByZXNvdXJjZVJlcXVlc3QsIGNvbnN0IFN0cmluZyYgZnJhbWVOYW1lLCBMb2NrSGlzdG9yeSBs
b2NrSGlzdG9yeSwgTG9ja0JhY2tGb3J3YXJkTGlzdCBsb2NrQmFja0ZvcndhcmRMaXN0LCBTaG91
bGRTZW5kUmVmZXJyZXIgc2hvdWxkU2VuZFJlZmVycmVyLCBBbGxvd05hdmlnYXRpb25Ub0ludmFs
aWRVUkwgYWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJMLCBOZXdGcmFtZU9wZW5lclBvbGljeSBu
ZXdGcmFtZU9wZW5lclBvbGljeSwgU2hvdWxkUmVwbGFjZURvY3VtZW50SWZKYXZhU2NyaXB0VVJM
IHNob3VsZFJlcGxhY2VEb2N1bWVudElmSmF2YVNjcmlwdFVSTCkKKyAgICBGcmFtZUxvYWRSZXF1
ZXN0KFNlY3VyaXR5T3JpZ2luKiByZXF1ZXN0ZXIsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVz
b3VyY2VSZXF1ZXN0LCBjb25zdCBTdHJpbmcmIGZyYW1lTmFtZSwgTG9ja0hpc3RvcnkgbG9ja0hp
c3RvcnksIExvY2tCYWNrRm9yd2FyZExpc3QgbG9ja0JhY2tGb3J3YXJkTGlzdCwgU2hvdWxkU2Vu
ZFJlZmVycmVyIHNob3VsZFNlbmRSZWZlcnJlciwgQWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJM
IGFsbG93TmF2aWdhdGlvblRvSW52YWxpZFVSTCwgTmV3RnJhbWVPcGVuZXJQb2xpY3kgbmV3RnJh
bWVPcGVuZXJQb2xpY3ksIFNob3VsZFJlcGxhY2VEb2N1bWVudElmSmF2YVNjcmlwdFVSTCBzaG91
bGRSZXBsYWNlRG9jdW1lbnRJZkphdmFTY3JpcHRVUkwsIFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQ
b2xpY3kgc2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSkKICAgICAgICAgOiBtX3JlcXVlc3Rl
cihyZXF1ZXN0ZXIpCiAgICAgICAgICwgbV9yZXNvdXJjZVJlcXVlc3QocmVzb3VyY2VSZXF1ZXN0
KQogICAgICAgICAsIG1fZnJhbWVOYW1lKGZyYW1lTmFtZSkKQEAgLTcyLDEwICs3NCwxMSBAQCBw
dWJsaWM6CiAgICAgICAgICwgbV9hbGxvd05hdmlnYXRpb25Ub0ludmFsaWRVUkwoYWxsb3dOYXZp
Z2F0aW9uVG9JbnZhbGlkVVJMKQogICAgICAgICAsIG1fbmV3RnJhbWVPcGVuZXJQb2xpY3kobmV3
RnJhbWVPcGVuZXJQb2xpY3kpCiAgICAgICAgICwgbV9zaG91bGRSZXBsYWNlRG9jdW1lbnRJZkph
dmFTY3JpcHRVUkwoc2hvdWxkUmVwbGFjZURvY3VtZW50SWZKYXZhU2NyaXB0VVJMKQorICAgICAg
ICAsIG1fc2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeShzaG91bGRPcGVuRXh0ZXJuYWxVUkxz
UG9saWN5KQogICAgIHsKICAgICB9CiAKLSAgICBXRUJDT1JFX0VYUE9SVCBGcmFtZUxvYWRSZXF1
ZXN0KEZyYW1lKiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgU3Vic3RpdHV0ZURhdGEm
ID0gU3Vic3RpdHV0ZURhdGEoKSk7CisgICAgV0VCQ09SRV9FWFBPUlQgRnJhbWVMb2FkUmVxdWVz
dChGcmFtZSosIGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQ
b2xpY3ksIGNvbnN0IFN1YnN0aXR1dGVEYXRhJiA9IFN1YnN0aXR1dGVEYXRhKCkpOwogCiAgICAg
Ym9vbCBpc0VtcHR5KCkgY29uc3QgeyByZXR1cm4gbV9yZXNvdXJjZVJlcXVlc3QuaXNFbXB0eSgp
OyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCmluZGV4IDY1MjFhM2MuLmM5
YzU5MTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcApAQCAtMzE3LDExICsz
MTcsMTEgQEAgdm9pZCBGcmFtZUxvYWRlcjo6Y2hhbmdlTG9jYXRpb24oY29uc3QgRnJhbWVMb2Fk
UmVxdWVzdCYgcmVxdWVzdCkKICAgICB1cmxTZWxlY3RlZChyZXF1ZXN0LCBudWxscHRyKTsKIH0K
IAotdm9pZCBGcmFtZUxvYWRlcjo6dXJsU2VsZWN0ZWQoY29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0
cmluZyYgcGFzc2VkVGFyZ2V0LCBFdmVudCogdHJpZ2dlcmluZ0V2ZW50LCBMb2NrSGlzdG9yeSBs
b2NrSGlzdG9yeSwgTG9ja0JhY2tGb3J3YXJkTGlzdCBsb2NrQmFja0ZvcndhcmRMaXN0LCBTaG91
bGRTZW5kUmVmZXJyZXIgc2hvdWxkU2VuZFJlZmVycmVyKQordm9pZCBGcmFtZUxvYWRlcjo6dXJs
U2VsZWN0ZWQoY29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgcGFzc2VkVGFyZ2V0LCBFdmVu
dCogdHJpZ2dlcmluZ0V2ZW50LCBMb2NrSGlzdG9yeSBsb2NrSGlzdG9yeSwgTG9ja0JhY2tGb3J3
YXJkTGlzdCBsb2NrQmFja0ZvcndhcmRMaXN0LCBTaG91bGRTZW5kUmVmZXJyZXIgc2hvdWxkU2Vu
ZFJlZmVycmVyLCBTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5IHNob3VsZE9wZW5FeHRlcm5h
bFVSTHNQb2xpY3kpCiB7CiAgICAgTmV3RnJhbWVPcGVuZXJQb2xpY3kgbmV3RnJhbWVPcGVuZXJQ
b2xpY3kgPSBzaG91bGRTZW5kUmVmZXJyZXIgPT0gTmV2ZXJTZW5kUmVmZXJyZXIgPyBOZXdGcmFt
ZU9wZW5lclBvbGljeTo6U3VwcHJlc3MgOiBOZXdGcmFtZU9wZW5lclBvbGljeTo6QWxsb3c7CiAK
LSAgICB1cmxTZWxlY3RlZChGcmFtZUxvYWRSZXF1ZXN0KG1fZnJhbWUuZG9jdW1lbnQoKS0+c2Vj
dXJpdHlPcmlnaW4oKSwgUmVzb3VyY2VSZXF1ZXN0KHVybCksIHBhc3NlZFRhcmdldCwgbG9ja0hp
c3RvcnksIGxvY2tCYWNrRm9yd2FyZExpc3QsIHNob3VsZFNlbmRSZWZlcnJlciwgQWxsb3dOYXZp
Z2F0aW9uVG9JbnZhbGlkVVJMOjpZZXMsIG5ld0ZyYW1lT3BlbmVyUG9saWN5LCBEb05vdFJlcGxh
Y2VEb2N1bWVudElmSmF2YVNjcmlwdFVSTCksIHRyaWdnZXJpbmdFdmVudCk7CisgICAgdXJsU2Vs
ZWN0ZWQoRnJhbWVMb2FkUmVxdWVzdChtX2ZyYW1lLmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2lu
KCksIFJlc291cmNlUmVxdWVzdCh1cmwpLCBwYXNzZWRUYXJnZXQsIGxvY2tIaXN0b3J5LCBsb2Nr
QmFja0ZvcndhcmRMaXN0LCBzaG91bGRTZW5kUmVmZXJyZXIsIEFsbG93TmF2aWdhdGlvblRvSW52
YWxpZFVSTDo6WWVzLCBuZXdGcmFtZU9wZW5lclBvbGljeSwgRG9Ob3RSZXBsYWNlRG9jdW1lbnRJ
ZkphdmFTY3JpcHRVUkwsIHNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kpLCB0cmlnZ2VyaW5n
RXZlbnQpOwogfQogCiB2b2lkIEZyYW1lTG9hZGVyOjp1cmxTZWxlY3RlZChjb25zdCBGcmFtZUxv
YWRSZXF1ZXN0JiBwYXNzZWRSZXF1ZXN0LCBFdmVudCogdHJpZ2dlcmluZ0V2ZW50KQpAQCAtNjcx
LDcgKzY3MSw3IEBAIHZvaWQgRnJhbWVMb2FkZXI6OnJlY2VpdmVkRmlyc3REYXRhKCkKICAgICAg
ICAgY29tcGxldGVkVVJMID0gbV9mcmFtZS5kb2N1bWVudCgpLT5jb21wbGV0ZVVSTCh1cmxTdHJp
bmcpOwogCiAgICAgaWYgKCFwcm90b2NvbElzSmF2YVNjcmlwdChjb21wbGV0ZWRVUkwpKQotICAg
ICAgICBtX2ZyYW1lLm5hdmlnYXRpb25TY2hlZHVsZXIoKS5zY2hlZHVsZVJlZGlyZWN0KGRlbGF5
LCBjb21wbGV0ZWRVUkwpOworICAgICAgICBtX2ZyYW1lLm5hdmlnYXRpb25TY2hlZHVsZXIoKS5z
Y2hlZHVsZVJlZGlyZWN0KG1fZnJhbWUuZG9jdW1lbnQoKSwgZGVsYXksIGNvbXBsZXRlZFVSTCk7
CiAgICAgZWxzZSB7CiAgICAgICAgIFN0cmluZyBtZXNzYWdlID0gIlJlZnVzZWQgdG8gcmVmcmVz
aCAiICsgbV9mcmFtZS5kb2N1bWVudCgpLT51cmwoKS5zdHJpbmdDZW50ZXJFbGxpcHNpemVkVG9M
ZW5ndGgoKSArICIgdG8gYSBqYXZhc2NyaXB0OiBVUkwiOwogICAgICAgICBtX2ZyYW1lLmRvY3Vt
ZW50KCktPmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OlNlY3VyaXR5LCBNZXNzYWdl
TGV2ZWw6OkVycm9yLCBtZXNzYWdlKTsKQEAgLTkxNSw3ICs5MTUsNyBAQCB2b2lkIEZyYW1lTG9h
ZGVyOjpsb2FkVVJMSW50b0NoaWxkRnJhbWUoY29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYg
cmVmZXJlciwgRgogICAgICAgICB9CiAgICAgfQogCi0gICAgRnJhbWVMb2FkUmVxdWVzdCBmcmFt
ZUxvYWRSZXF1ZXN0KG1fZnJhbWUuZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKSwgUmVzb3Vy
Y2VSZXF1ZXN0KHVybCksICJfc2VsZiIsIExvY2tIaXN0b3J5OjpObywgTG9ja0JhY2tGb3J3YXJk
TGlzdDo6WWVzLCBTaG91bGRTZW5kUmVmZXJyZXI6Ok1heWJlU2VuZFJlZmVycmVyLCBBbGxvd05h
dmlnYXRpb25Ub0ludmFsaWRVUkw6OlllcywgTmV3RnJhbWVPcGVuZXJQb2xpY3k6OlN1cHByZXNz
LCBSZXBsYWNlRG9jdW1lbnRJZkphdmFTY3JpcHRVUkwpOworICAgIEZyYW1lTG9hZFJlcXVlc3Qg
ZnJhbWVMb2FkUmVxdWVzdChtX2ZyYW1lLmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCksIFJl
c291cmNlUmVxdWVzdCh1cmwpLCAiX3NlbGYiLCBMb2NrSGlzdG9yeTo6Tm8sIExvY2tCYWNrRm9y
d2FyZExpc3Q6OlllcywgU2hvdWxkU2VuZFJlZmVycmVyOjpNYXliZVNlbmRSZWZlcnJlciwgQWxs
b3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJMOjpZZXMsIE5ld0ZyYW1lT3BlbmVyUG9saWN5OjpTdXBw
cmVzcywgUmVwbGFjZURvY3VtZW50SWZKYXZhU2NyaXB0VVJMLCBTaG91bGRPcGVuRXh0ZXJuYWxV
UkxzUG9saWN5OjpTaG91bGROb3RBbGxvdyk7CiAgICAgY2hpbGRGcmFtZS0+bG9hZGVyKCkubG9h
ZFVSTChmcmFtZUxvYWRSZXF1ZXN0LCByZWZlcmVyLCBGcmFtZUxvYWRUeXBlOjpSZWRpcmVjdFdp
dGhMb2NrZWRCYWNrRm9yd2FyZExpc3QsIDAsIDApOwogfQogCkBAIC0xMjMwLDcgKzEyMzAsNyBA
QCB2b2lkIEZyYW1lTG9hZGVyOjpsb2FkVVJMKGNvbnN0IEZyYW1lTG9hZFJlcXVlc3QmIGZyYW1l
TG9hZFJlcXVlc3QsIGNvbnN0IFN0cmluZwogICAgIGlmIChtX3BhZ2VEaXNtaXNzYWxFdmVudEJl
aW5nRGlzcGF0Y2hlZCAhPSBOb0Rpc21pc3NhbCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgTmF2
aWdhdGlvbkFjdGlvbiBhY3Rpb24ocmVxdWVzdCwgbmV3TG9hZFR5cGUsIGlzRm9ybVN1Ym1pc3Np
b24sIGV2ZW50KTsKKyAgICBOYXZpZ2F0aW9uQWN0aW9uIGFjdGlvbihyZXF1ZXN0LCBuZXdMb2Fk
VHlwZSwgaXNGb3JtU3VibWlzc2lvbiwgZXZlbnQsIGZyYW1lTG9hZFJlcXVlc3Quc2hvdWxkT3Bl
bkV4dGVybmFsVVJMc1BvbGljeSgpKTsKIAogICAgIGlmICghdGFyZ2V0RnJhbWUgJiYgIWZyYW1l
TmFtZS5pc0VtcHR5KCkpIHsKICAgICAgICAgcG9saWN5Q2hlY2tlcigpLmNoZWNrTmV3V2luZG93
UG9saWN5KGFjdGlvbiwgcmVxdWVzdCwgZm9ybVN0YXRlLnJlbGVhc2UoKSwgZnJhbWVOYW1lLCBb
dGhpcywgYWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJMLCBvcGVuZXJQb2xpY3ldKGNvbnN0IFJl
c291cmNlUmVxdWVzdCYgcmVxdWVzdCwgUGFzc1JlZlB0cjxGb3JtU3RhdGU+IGZvcm1TdGF0ZSwg
Y29uc3QgU3RyaW5nJiBmcmFtZU5hbWUsIGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mIGFjdGlvbiwg
Ym9vbCBzaG91bGRDb250aW51ZSkgewpAQCAtMTMwNCw3ICsxMzA0LDggQEAgdm9pZCBGcmFtZUxv
YWRlcjo6bG9hZChjb25zdCBGcmFtZUxvYWRSZXF1ZXN0JiBwYXNzZWRSZXF1ZXN0KQogICAgIH0K
IAogICAgIGlmIChyZXF1ZXN0LnNob3VsZENoZWNrTmV3V2luZG93UG9saWN5KCkpIHsKLSAgICAg
ICAgcG9saWN5Q2hlY2tlcigpLmNoZWNrTmV3V2luZG93UG9saWN5KE5hdmlnYXRpb25BY3Rpb24o
cmVxdWVzdC5yZXNvdXJjZVJlcXVlc3QoKSwgTmF2aWdhdGlvblR5cGU6Ok90aGVyKSwgcmVxdWVz
dC5yZXNvdXJjZVJlcXVlc3QoKSwgbnVsbHB0ciwgcmVxdWVzdC5mcmFtZU5hbWUoKSwgW3RoaXNd
KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgUGFzc1JlZlB0cjxGb3JtU3RhdGU+IGZv
cm1TdGF0ZSwgY29uc3QgU3RyaW5nJiBmcmFtZU5hbWUsIGNvbnN0IE5hdmlnYXRpb25BY3Rpb24m
IGFjdGlvbiwgYm9vbCBzaG91bGRDb250aW51ZSkgeworICAgICAgICBOYXZpZ2F0aW9uQWN0aW9u
IGFjdGlvbihyZXF1ZXN0LnJlc291cmNlUmVxdWVzdCgpLCBOYXZpZ2F0aW9uVHlwZTo6T3RoZXIs
IHBhc3NlZFJlcXVlc3Quc2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSgpKTsKKyAgICAgICAg
cG9saWN5Q2hlY2tlcigpLmNoZWNrTmV3V2luZG93UG9saWN5KGFjdGlvbiwgcmVxdWVzdC5yZXNv
dXJjZVJlcXVlc3QoKSwgbnVsbHB0ciwgcmVxdWVzdC5mcmFtZU5hbWUoKSwgW3RoaXNdKGNvbnN0
IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgUGFzc1JlZlB0cjxGb3JtU3RhdGU+IGZvcm1TdGF0
ZSwgY29uc3QgU3RyaW5nJiBmcmFtZU5hbWUsIGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mIGFjdGlv
biwgYm9vbCBzaG91bGRDb250aW51ZSkgewogICAgICAgICAgICAgY29udGludWVMb2FkQWZ0ZXJO
ZXdXaW5kb3dQb2xpY3kocmVxdWVzdCwgZm9ybVN0YXRlLCBmcmFtZU5hbWUsIGFjdGlvbiwgc2hv
dWxkQ29udGludWUsIEFsbG93TmF2aWdhdGlvblRvSW52YWxpZFVSTDo6WWVzLCBOZXdGcmFtZU9w
ZW5lclBvbGljeTo6U3VwcHJlc3MpOwogICAgICAgICB9KTsKIApAQCAtMTMxNSw4ICsxMzE2LDcg
QEAgdm9pZCBGcmFtZUxvYWRlcjo6bG9hZChjb25zdCBGcmFtZUxvYWRSZXF1ZXN0JiBwYXNzZWRS
ZXF1ZXN0KQogICAgICAgICByZXF1ZXN0LnNldFN1YnN0aXR1dGVEYXRhKGRlZmF1bHRTdWJzdGl0
dXRlRGF0YUZvclVSTChyZXF1ZXN0LnJlc291cmNlUmVxdWVzdCgpLnVybCgpKSk7CiAKICAgICBS
ZWZQdHI8RG9jdW1lbnRMb2FkZXI+IGxvYWRlciA9IG1fY2xpZW50LmNyZWF0ZURvY3VtZW50TG9h
ZGVyKHJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCksIHJlcXVlc3Quc3Vic3RpdHV0ZURhdGEoKSk7
Ci0gICAgaWYgKG1fZnJhbWUuaXNNYWluRnJhbWUoKSkKLSAgICAgICAgbG9hZGVyLT5zZXRTaG91
bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5KHJlcXVlc3Quc2hvdWxkT3BlbkV4dGVybmFsVVJMc1Bv
bGljeSgpKTsKKyAgICBhcHBseVNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3lUb05ld0RvY3Vt
ZW50TG9hZGVyKCpsb2FkZXIsIHJlcXVlc3Quc2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSgp
KTsKIAogICAgIGxvYWQobG9hZGVyLmdldCgpKTsKIH0KQEAgLTEzMjQsNiArMTMyNCw4IEBAIHZv
aWQgRnJhbWVMb2FkZXI6OmxvYWQoY29uc3QgRnJhbWVMb2FkUmVxdWVzdCYgcGFzc2VkUmVxdWVz
dCkKIHZvaWQgRnJhbWVMb2FkZXI6OmxvYWRXaXRoTmF2aWdhdGlvbkFjdGlvbihjb25zdCBSZXNv
dXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mIGFjdGlvbiwgTG9j
a0hpc3RvcnkgbG9ja0hpc3RvcnksIEZyYW1lTG9hZFR5cGUgdHlwZSwgUGFzc1JlZlB0cjxGb3Jt
U3RhdGU+IGZvcm1TdGF0ZSwgQWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJMIGFsbG93TmF2aWdh
dGlvblRvSW52YWxpZFVSTCkKIHsKICAgICBSZWZQdHI8RG9jdW1lbnRMb2FkZXI+IGxvYWRlciA9
IG1fY2xpZW50LmNyZWF0ZURvY3VtZW50TG9hZGVyKHJlcXVlc3QsIGRlZmF1bHRTdWJzdGl0dXRl
RGF0YUZvclVSTChyZXF1ZXN0LnVybCgpKSk7CisgICAgYXBwbHlTaG91bGRPcGVuRXh0ZXJuYWxV
UkxzUG9saWN5VG9OZXdEb2N1bWVudExvYWRlcigqbG9hZGVyLCBhY3Rpb24uc2hvdWxkT3BlbkV4
dGVybmFsVVJMc1BvbGljeSgpKTsKKwogICAgIGlmIChsb2NrSGlzdG9yeSA9PSBMb2NrSGlzdG9y
eTo6WWVzICYmIG1fZG9jdW1lbnRMb2FkZXIpCiAgICAgICAgIGxvYWRlci0+c2V0Q2xpZW50UmVk
aXJlY3RTb3VyY2VGb3JIaXN0b3J5KG1fZG9jdW1lbnRMb2FkZXItPmRpZENyZWF0ZUdsb2JhbEhp
c3RvcnlFbnRyeSgpID8gbV9kb2N1bWVudExvYWRlci0+dXJsRm9ySGlzdG9yeSgpLnN0cmluZygp
IDogbV9kb2N1bWVudExvYWRlci0+Y2xpZW50UmVkaXJlY3RTb3VyY2VGb3JIaXN0b3J5KCkpOwog
CkBAIC0xNTQzLDYgKzE1NDUsOCBAQCB2b2lkIEZyYW1lTG9hZGVyOjpyZWxvYWRXaXRoT3ZlcnJp
ZGVFbmNvZGluZyhjb25zdCBTdHJpbmcmIGVuY29kaW5nKQogICAgIHJlcXVlc3Quc2V0Q2FjaGVQ
b2xpY3koUmV0dXJuQ2FjaGVEYXRhRWxzZUxvYWQpOwogCiAgICAgUmVmUHRyPERvY3VtZW50TG9h
ZGVyPiBsb2FkZXIgPSBtX2NsaWVudC5jcmVhdGVEb2N1bWVudExvYWRlcihyZXF1ZXN0LCBkZWZh
dWx0U3Vic3RpdHV0ZURhdGFGb3JVUkwocmVxdWVzdC51cmwoKSkpOworICAgIGFwcGx5U2hvdWxk
T3BlbkV4dGVybmFsVVJMc1BvbGljeVRvTmV3RG9jdW1lbnRMb2FkZXIoKmxvYWRlciwgbV9kb2N1
bWVudExvYWRlci0+c2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeVRvUHJvcGFnYXRlKCkpOwor
CiAgICAgc2V0UG9saWN5RG9jdW1lbnRMb2FkZXIobG9hZGVyLmdldCgpKTsKIAogICAgIGxvYWRl
ci0+c2V0T3ZlcnJpZGVFbmNvZGluZyhlbmNvZGluZyk7CkBAIC0xNTY5LDYgKzE1NzMsNyBAQCB2
b2lkIEZyYW1lTG9hZGVyOjpyZWxvYWQoYm9vbCBlbmRUb0VuZFJlbG9hZCkKICAgICAvLyBDcmVh
dGUgYSBuZXcgZG9jdW1lbnQgbG9hZGVyIGZvciB0aGUgcmVsb2FkLCB0aGlzIHdpbGwgYmVjb21l
IG1fZG9jdW1lbnRMb2FkZXIgZXZlbnR1YWxseSwKICAgICAvLyBidXQgZmlyc3QgaXQgaGFzIHRv
IGJlIHRoZSAicG9saWN5IiBkb2N1bWVudCBsb2FkZXIsIGFuZCB0aGVuIHRoZSAicHJvdmlzaW9u
YWwiIGRvY3VtZW50IGxvYWRlci4KICAgICBSZWZQdHI8RG9jdW1lbnRMb2FkZXI+IGxvYWRlciA9
IG1fY2xpZW50LmNyZWF0ZURvY3VtZW50TG9hZGVyKGluaXRpYWxSZXF1ZXN0LCBkZWZhdWx0U3Vi
c3RpdHV0ZURhdGFGb3JVUkwoaW5pdGlhbFJlcXVlc3QudXJsKCkpKTsKKyAgICBhcHBseVNob3Vs
ZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3lUb05ld0RvY3VtZW50TG9hZGVyKCpsb2FkZXIsIG1fZG9j
dW1lbnRMb2FkZXItPnNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3lUb1Byb3BhZ2F0ZSgpKTsK
IAogICAgIFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCA9IGxvYWRlci0+cmVxdWVzdCgpOwogCkBA
IC0yNjQzLDcgKzI2NDgsNyBAQCB2b2lkIEZyYW1lTG9hZGVyOjpsb2FkUG9zdFJlcXVlc3QoY29u
c3QgRnJhbWVMb2FkUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgU3RyaW5nJgogICAgIHdvcmtpbmdS
ZXNvdXJjZVJlcXVlc3Quc2V0SFRUUENvbnRlbnRUeXBlKGNvbnRlbnRUeXBlKTsKICAgICBhZGRF
eHRyYUZpZWxkc1RvUmVxdWVzdCh3b3JraW5nUmVzb3VyY2VSZXF1ZXN0LCBsb2FkVHlwZSwgdHJ1
ZSk7CiAKLSAgICBOYXZpZ2F0aW9uQWN0aW9uIGFjdGlvbih3b3JraW5nUmVzb3VyY2VSZXF1ZXN0
LCBsb2FkVHlwZSwgdHJ1ZSwgZXZlbnQpOworICAgIE5hdmlnYXRpb25BY3Rpb24gYWN0aW9uKHdv
cmtpbmdSZXNvdXJjZVJlcXVlc3QsIGxvYWRUeXBlLCB0cnVlLCBldmVudCwgcmVxdWVzdC5zaG91
bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5KCkpOwogCiAgICAgaWYgKCFmcmFtZU5hbWUuaXNFbXB0
eSgpKSB7CiAgICAgICAgIC8vIFRoZSBzZWFyY2ggZm9yIGEgdGFyZ2V0IGZyYW1lIGlzIGRvbmUg
ZWFybGllciBpbiB0aGUgY2FzZSBvZiBmb3JtIHN1Ym1pc3Npb24uCkBAIC0yOTkxLDcgKzI5OTYs
OSBAQCB2b2lkIEZyYW1lTG9hZGVyOjpjb250aW51ZUxvYWRBZnRlck5ld1dpbmRvd1BvbGljeShj
b25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlcwogICAgICAgICBtYWluRnJhbWUtPmxvYWRlcigp
LnNldE9wZW5lcihmcmFtZS5wdHIoKSk7CiAgICAgICAgIG1haW5GcmFtZS0+ZG9jdW1lbnQoKS0+
c2V0UmVmZXJyZXJQb2xpY3koZnJhbWUtPmRvY3VtZW50KCktPnJlZmVycmVyUG9saWN5KCkpOwog
ICAgIH0KLSAgICBtYWluRnJhbWUtPmxvYWRlcigpLmxvYWRXaXRoTmF2aWdhdGlvbkFjdGlvbihy
ZXF1ZXN0LCBOYXZpZ2F0aW9uQWN0aW9uKHJlcXVlc3QpLCBMb2NrSGlzdG9yeTo6Tm8sIEZyYW1l
TG9hZFR5cGU6OlN0YW5kYXJkLCBmb3JtU3RhdGUsIGFsbG93TmF2aWdhdGlvblRvSW52YWxpZFVS
TCk7CisKKyAgICBOYXZpZ2F0aW9uQWN0aW9uIG5ld0FjdGlvbihyZXF1ZXN0LCBhY3Rpb24uc2hv
dWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSgpKTsKKyAgICBtYWluRnJhbWUtPmxvYWRlcigpLmxv
YWRXaXRoTmF2aWdhdGlvbkFjdGlvbihyZXF1ZXN0LCBuZXdBY3Rpb24sIExvY2tIaXN0b3J5OjpO
bywgRnJhbWVMb2FkVHlwZTo6U3RhbmRhcmQsIGZvcm1TdGF0ZSwgYWxsb3dOYXZpZ2F0aW9uVG9J
bnZhbGlkVVJMKTsKIH0KIAogdm9pZCBGcmFtZUxvYWRlcjo6cmVxdWVzdEZyb21EZWxlZ2F0ZShS
ZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIHVuc2lnbmVkIGxvbmcmIGlkZW50aWZpZXIsIFJlc291
cmNlRXJyb3ImIGVycm9yKQpAQCAtMzQyNSw2ICszNDMyLDE2IEBAIHZvaWQgRnJhbWVMb2FkZXI6
OmNsZWFyVGVzdGluZ092ZXJyaWRlcygpCiAgICAgbV9vdmVycmlkZVJlc291cmNlTG9hZFByaW9y
aXR5Rm9yVGVzdGluZyA9IE51bGxvcHQ7CiB9CiAKK3ZvaWQgRnJhbWVMb2FkZXI6OmFwcGx5U2hv
dWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeVRvTmV3RG9jdW1lbnRMb2FkZXIoRG9jdW1lbnRMb2Fk
ZXImIGRvY3VtZW50TG9hZGVyLCBTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5IHByb3BhZ2F0
ZWRQb2xpY3kpCit7CisgICAgaWYgKCFtX2ZyYW1lLmlzTWFpbkZyYW1lKCkpCisgICAgICAgIGRv
Y3VtZW50TG9hZGVyLnNldFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3koU2hvdWxkT3BlbkV4
dGVybmFsVVJMc1BvbGljeTo6U2hvdWxkTm90QWxsb3cpOworICAgIGVsc2UgaWYgKFNjcmlwdENv
bnRyb2xsZXI6OnByb2Nlc3NpbmdVc2VyR2VzdHVyZSgpKQorICAgICAgICBkb2N1bWVudExvYWRl
ci5zZXRTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5KFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQ
b2xpY3k6OlNob3VsZEFsbG93KTsKKyAgICBlbHNlCisgICAgICAgIGRvY3VtZW50TG9hZGVyLnNl
dFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kocHJvcGFnYXRlZFBvbGljeSk7Cit9CisKIGJv
b2wgRnJhbWVMb2FkZXJDbGllbnQ6Omhhc0hUTUxWaWV3KCkgY29uc3QKIHsKICAgICByZXR1cm4g
dHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5oIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmgKaW5kZXggYWJlZjg0My4uM2VhYjNm
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmgKQEAgLTExOSw3ICsxMTksNyBAQCBw
dWJsaWM6CiAgICAgdW5zaWduZWQgbG9uZyBsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KGNvbnN0
IFJlc291cmNlUmVxdWVzdCYsIFN0b3JlZENyZWRlbnRpYWxzLCBDbGllbnRDcmVkZW50aWFsUG9s
aWN5LCBSZXNvdXJjZUVycm9yJiwgUmVzb3VyY2VSZXNwb25zZSYsIFJlZlB0cjxTaGFyZWRCdWZm
ZXI+JiBkYXRhKTsKIAogICAgIHZvaWQgY2hhbmdlTG9jYXRpb24oY29uc3QgRnJhbWVMb2FkUmVx
dWVzdCYpOwotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgdXJsU2VsZWN0ZWQoY29uc3QgVVJMJiwg
Y29uc3QgU3RyaW5nJiB0YXJnZXQsIEV2ZW50KiwgTG9ja0hpc3RvcnksIExvY2tCYWNrRm9yd2Fy
ZExpc3QsIFNob3VsZFNlbmRSZWZlcnJlcik7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCB1cmxT
ZWxlY3RlZChjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcmIHRhcmdldCwgRXZlbnQqLCBMb2NrSGlz
dG9yeSwgTG9ja0JhY2tGb3J3YXJkTGlzdCwgU2hvdWxkU2VuZFJlZmVycmVyLCBTaG91bGRPcGVu
RXh0ZXJuYWxVUkxzUG9saWN5KTsKICAgICB2b2lkIHN1Ym1pdEZvcm0oUGFzc1JlZlB0cjxGb3Jt
U3VibWlzc2lvbj4pOwogCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCByZWxvYWQoYm9vbCBlbmRU
b0VuZFJlbG9hZCA9IGZhbHNlKTsKQEAgLTM3OCw2ICszNzgsOCBAQCBwcml2YXRlOgogCiAgICAg
dm9pZCBkaXNwYXRjaEdsb2JhbE9iamVjdEF2YWlsYWJsZUluQWxsV29ybGRzKCk7CiAKKyAgICB2
b2lkIGFwcGx5U2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeVRvTmV3RG9jdW1lbnRMb2FkZXIo
RG9jdW1lbnRMb2FkZXImLCBTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5IHByb3BhZ2F0ZWRQ
b2xpY3kpOworCiAgICAgRnJhbWUmIG1fZnJhbWU7CiAgICAgRnJhbWVMb2FkZXJDbGllbnQmIG1f
Y2xpZW50OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTmF2aWdhdGlvbkFj
dGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTmF2aWdhdGlvbkFjdGlvbi5jcHAKaW5k
ZXggNmQzZTQ2ZS4uN2MxMGRjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL05h
dmlnYXRpb25BY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9OYXZpZ2F0aW9u
QWN0aW9uLmNwcApAQCAtNjcsNiArNjcsMTEgQEAgTmF2aWdhdGlvbkFjdGlvbjo6TmF2aWdhdGlv
bkFjdGlvbihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlc291cmNlUmVxdWVzdCkKIHsKIH0KIAor
TmF2aWdhdGlvbkFjdGlvbjo6TmF2aWdhdGlvbkFjdGlvbihjb25zdCBSZXNvdXJjZVJlcXVlc3Qm
IHJlc291cmNlUmVxdWVzdCwgU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSBzaG91bGRPcGVu
RXh0ZXJuYWxVUkxzUG9saWN5KQorICAgIDogTmF2aWdhdGlvbkFjdGlvbihyZXNvdXJjZVJlcXVl
c3QsIE5hdmlnYXRpb25UeXBlOjpPdGhlciwgbnVsbHB0ciwgc2hvdWxkT3BlbkV4dGVybmFsVVJM
c1BvbGljeSkKK3sKK30KKwogTmF2aWdhdGlvbkFjdGlvbjo6TmF2aWdhdGlvbkFjdGlvbihjb25z
dCBSZXNvdXJjZVJlcXVlc3QmIHJlc291cmNlUmVxdWVzdCwgTmF2aWdhdGlvblR5cGUgdHlwZSkK
ICAgICA6IE5hdmlnYXRpb25BY3Rpb24ocmVzb3VyY2VSZXF1ZXN0LCB0eXBlLCBudWxscHRyLCBT
aG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5OjpTaG91bGROb3RBbGxvdykKIHsKQEAgLTkyLDQg
Kzk3LDE2IEBAIE5hdmlnYXRpb25BY3Rpb246Ok5hdmlnYXRpb25BY3Rpb24oY29uc3QgUmVzb3Vy
Y2VSZXF1ZXN0JiByZXNvdXJjZVJlcXVlc3QsIEZyYW1lCiB7CiB9CiAKK05hdmlnYXRpb25BY3Rp
b246Ok5hdmlnYXRpb25BY3Rpb24oY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXNvdXJjZVJlcXVl
c3QsIEZyYW1lTG9hZFR5cGUgZnJhbWVMb2FkVHlwZSwgYm9vbCBpc0Zvcm1TdWJtaXNzaW9uLCBF
dmVudCogZXZlbnQsIFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kgc2hvdWxkT3BlbkV4dGVy
bmFsVVJMc1BvbGljeSkKKyAgICA6IE5hdmlnYXRpb25BY3Rpb24ocmVzb3VyY2VSZXF1ZXN0LCBu
YXZpZ2F0aW9uVHlwZShmcmFtZUxvYWRUeXBlLCBpc0Zvcm1TdWJtaXNzaW9uLCBldmVudCksIGV2
ZW50LCBzaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5KQoreworfQorCitOYXZpZ2F0aW9uQWN0
aW9uIE5hdmlnYXRpb25BY3Rpb246OmNvcHlXaXRoU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGlj
eShTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5IHNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xp
Y3kpIGNvbnN0Cit7CisgICAgTmF2aWdhdGlvbkFjdGlvbiByZXN1bHQoKnRoaXMpOworICAgIHJl
c3VsdC5tX3Nob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kgPSBzaG91bGRPcGVuRXh0ZXJuYWxV
UkxzUG9saWN5OworICAgIHJldHVybiBXVEY6Om1vdmUocmVzdWx0KTsKK30KKwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL05hdmlnYXRpb25BY3Rpb24uaCBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9OYXZpZ2F0aW9uQWN0aW9uLmgKaW5kZXggOWI1MDMwYy4uNDhlODczMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL05hdmlnYXRpb25BY3Rpb24uaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTmF2aWdhdGlvbkFjdGlvbi5oCkBAIC00MywxMCArNDMs
MTUgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIGV4cGxpY2l0IE5hdmlnYXRpb25BY3Rp
b24oY29uc3QgUmVzb3VyY2VSZXF1ZXN0Jik7CiAgICAgV0VCQ09SRV9FWFBPUlQgTmF2aWdhdGlv
bkFjdGlvbihjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBOYXZpZ2F0aW9uVHlwZSk7CiAgICAgV0VC
Q09SRV9FWFBPUlQgTmF2aWdhdGlvbkFjdGlvbihjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBGcmFt
ZUxvYWRUeXBlLCBib29sIGlzRm9ybVN1Ym1pc3Npb24pOworCisgICAgTmF2aWdhdGlvbkFjdGlv
bihjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5KTsK
ICAgICBOYXZpZ2F0aW9uQWN0aW9uKGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIE5hdmlnYXRpb25U
eXBlLCBFdmVudCopOwogICAgIE5hdmlnYXRpb25BY3Rpb24oY29uc3QgUmVzb3VyY2VSZXF1ZXN0
JiwgTmF2aWdhdGlvblR5cGUsIEV2ZW50KiwgU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSk7
CiAgICAgTmF2aWdhdGlvbkFjdGlvbihjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBOYXZpZ2F0aW9u
VHlwZSwgU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSk7CiAgICAgTmF2aWdhdGlvbkFjdGlv
bihjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBGcmFtZUxvYWRUeXBlLCBib29sIGlzRm9ybVN1Ym1p
c3Npb24sIEV2ZW50Kik7CisgICAgTmF2aWdhdGlvbkFjdGlvbihjb25zdCBSZXNvdXJjZVJlcXVl
c3QmLCBGcmFtZUxvYWRUeXBlLCBib29sIGlzRm9ybVN1Ym1pc3Npb24sIEV2ZW50KiwgU2hvdWxk
T3BlbkV4dGVybmFsVVJMc1BvbGljeSk7CisKKyAgICBOYXZpZ2F0aW9uQWN0aW9uIGNvcHlXaXRo
U2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeShTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5
KSBjb25zdDsKIAogICAgIGJvb2wgaXNFbXB0eSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVzb3VyY2VS
ZXF1ZXN0LnVybCgpLmlzRW1wdHkoKTsgfQogCkBAIC01OSw3ICs2NCw2IEBAIHB1YmxpYzoKICAg
ICBib29sIHByb2Nlc3NpbmdVc2VyR2VzdHVyZSgpIGNvbnN0IHsgcmV0dXJuIG1fcHJvY2Vzc2lu
Z1VzZXJHZXN0dXJlOyB9CiAKICAgICBTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5IHNob3Vs
ZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3koKSBjb25zdCB7IHJldHVybiBtX3Nob3VsZE9wZW5FeHRl
cm5hbFVSTHNQb2xpY3k7IH0KLSAgICB2b2lkIHNldFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xp
Y3koU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSBwb2xpY3kpIHsgbV9zaG91bGRPcGVuRXh0
ZXJuYWxVUkxzUG9saWN5ID0gcG9saWN5OyB9CiAKIHByaXZhdGU6CiAgICAgUmVzb3VyY2VSZXF1
ZXN0IG1fcmVzb3VyY2VSZXF1ZXN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L05hdmlnYXRpb25TY2hlZHVsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL05hdmlnYXRp
b25TY2hlZHVsZXIuY3BwCmluZGV4IGNmN2JkYWIuLmQ5NWNlZGIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9OYXZpZ2F0aW9uU2NoZWR1bGVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvTmF2aWdhdGlvblNjaGVkdWxlci5jcHAKQEAgLTg3LDYgKzg3LDggQEAgcHVi
bGljOgogcHJvdGVjdGVkOgogICAgIHZvaWQgY2xlYXJVc2VyR2VzdHVyZSgpIHsgbV93YXNVc2Vy
R2VzdHVyZSA9IGZhbHNlOyB9CiAKKyAgICBTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5IG1f
c2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSB7IFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xp
Y3k6OlNob3VsZE5vdEFsbG93IH07CisKIHByaXZhdGU6CiAgICAgZG91YmxlIG1fZGVsYXk7CiAg
ICAgTG9ja0hpc3RvcnkgbV9sb2NrSGlzdG9yeTsKQEAgLTk4LDEzICsxMDAsMTUgQEAgcHJpdmF0
ZToKIAogY2xhc3MgU2NoZWR1bGVkVVJMTmF2aWdhdGlvbiA6IHB1YmxpYyBTY2hlZHVsZWROYXZp
Z2F0aW9uIHsKIHByb3RlY3RlZDoKLSAgICBTY2hlZHVsZWRVUkxOYXZpZ2F0aW9uKGRvdWJsZSBk
ZWxheSwgU2VjdXJpdHlPcmlnaW4qIHNlY3VyaXR5T3JpZ2luLCBjb25zdCBVUkwmIHVybCwgY29u
c3QgU3RyaW5nJiByZWZlcnJlciwgTG9ja0hpc3RvcnkgbG9ja0hpc3RvcnksIExvY2tCYWNrRm9y
d2FyZExpc3QgbG9ja0JhY2tGb3J3YXJkTGlzdCwgYm9vbCBkdXJpbmdMb2FkLCBib29sIGlzTG9j
YXRpb25DaGFuZ2UpCisgICAgU2NoZWR1bGVkVVJMTmF2aWdhdGlvbihEb2N1bWVudCogaW5pdGlh
dGluZ0RvY3VtZW50LCBkb3VibGUgZGVsYXksIFNlY3VyaXR5T3JpZ2luKiBzZWN1cml0eU9yaWdp
biwgY29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgcmVmZXJyZXIsIExvY2tIaXN0b3J5IGxv
Y2tIaXN0b3J5LCBMb2NrQmFja0ZvcndhcmRMaXN0IGxvY2tCYWNrRm9yd2FyZExpc3QsIGJvb2wg
ZHVyaW5nTG9hZCwgYm9vbCBpc0xvY2F0aW9uQ2hhbmdlKQogICAgICAgICA6IFNjaGVkdWxlZE5h
dmlnYXRpb24oZGVsYXksIGxvY2tIaXN0b3J5LCBsb2NrQmFja0ZvcndhcmRMaXN0LCBkdXJpbmdM
b2FkLCBpc0xvY2F0aW9uQ2hhbmdlKQogICAgICAgICAsIG1fc2VjdXJpdHlPcmlnaW4oc2VjdXJp
dHlPcmlnaW4pCiAgICAgICAgICwgbV91cmwodXJsKQogICAgICAgICAsIG1fcmVmZXJyZXIocmVm
ZXJyZXIpCiAgICAgICAgICwgbV9oYXZlVG9sZENsaWVudChmYWxzZSkKICAgICB7CisgICAgICAg
IGlmIChpbml0aWF0aW5nRG9jdW1lbnQpCisgICAgICAgICAgICBtX3Nob3VsZE9wZW5FeHRlcm5h
bFVSTHNQb2xpY3kgPSBpbml0aWF0aW5nRG9jdW1lbnQtPnNob3VsZE9wZW5FeHRlcm5hbFVSTHNQ
b2xpY3lUb1Byb3BhZ2F0ZSgpOwogICAgIH0KIAogICAgIHZpcnR1YWwgdm9pZCBmaXJlKEZyYW1l
JiBmcmFtZSkgb3ZlcnJpZGUKQEAgLTExMiw3ICsxMTYsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgICAg
IFVzZXJHZXN0dXJlSW5kaWNhdG9yIGdlc3R1cmVJbmRpY2F0b3Iod2FzVXNlckdlc3R1cmUoKSA/
IERlZmluaXRlbHlQcm9jZXNzaW5nVXNlckdlc3R1cmUgOiBEZWZpbml0ZWx5Tm90UHJvY2Vzc2lu
Z1VzZXJHZXN0dXJlKTsKIAogICAgICAgICBSZXNvdXJjZVJlcXVlc3QgcmVzb3VyY2VSZXF1ZXN0
KG1fdXJsLCBtX3JlZmVycmVyLCBVc2VQcm90b2NvbENhY2hlUG9saWN5KTsKLSAgICAgICAgRnJh
bWVMb2FkUmVxdWVzdCBmcmFtZVJlcXVlc3QobV9zZWN1cml0eU9yaWdpbi5nZXQoKSwgcmVzb3Vy
Y2VSZXF1ZXN0LCBsb2NrSGlzdG9yeSgpLCBsb2NrQmFja0ZvcndhcmRMaXN0KCksIE1heWJlU2Vu
ZFJlZmVycmVyLCBBbGxvd05hdmlnYXRpb25Ub0ludmFsaWRVUkw6OlllcywgTmV3RnJhbWVPcGVu
ZXJQb2xpY3k6OkFsbG93KTsKKyAgICAgICAgRnJhbWVMb2FkUmVxdWVzdCBmcmFtZVJlcXVlc3Qo
bV9zZWN1cml0eU9yaWdpbi5nZXQoKSwgcmVzb3VyY2VSZXF1ZXN0LCBsb2NrSGlzdG9yeSgpLCBs
b2NrQmFja0ZvcndhcmRMaXN0KCksIE1heWJlU2VuZFJlZmVycmVyLCBBbGxvd05hdmlnYXRpb25U
b0ludmFsaWRVUkw6OlllcywgTmV3RnJhbWVPcGVuZXJQb2xpY3k6OkFsbG93LCBtX3Nob3VsZE9w
ZW5FeHRlcm5hbFVSTHNQb2xpY3kpOwogCiAgICAgICAgIGZyYW1lLmxvYWRlcigpLmNoYW5nZUxv
Y2F0aW9uKGZyYW1lUmVxdWVzdCk7CiAgICAgfQpAQCAtMTU0LDggKzE1OCw4IEBAIHByaXZhdGU6
CiAKIGNsYXNzIFNjaGVkdWxlZFJlZGlyZWN0IDogcHVibGljIFNjaGVkdWxlZFVSTE5hdmlnYXRp
b24gewogcHVibGljOgotICAgIFNjaGVkdWxlZFJlZGlyZWN0KGRvdWJsZSBkZWxheSwgU2VjdXJp
dHlPcmlnaW4qIHNlY3VyaXR5T3JpZ2luLCBjb25zdCBVUkwmIHVybCwgTG9ja0hpc3RvcnkgbG9j
a0hpc3RvcnksIExvY2tCYWNrRm9yd2FyZExpc3QgbG9ja0JhY2tGb3J3YXJkTGlzdCkKLSAgICAg
ICAgOiBTY2hlZHVsZWRVUkxOYXZpZ2F0aW9uKGRlbGF5LCBzZWN1cml0eU9yaWdpbiwgdXJsLCBT
dHJpbmcoKSwgbG9ja0hpc3RvcnksIGxvY2tCYWNrRm9yd2FyZExpc3QsIGZhbHNlLCBmYWxzZSkK
KyAgICBTY2hlZHVsZWRSZWRpcmVjdChEb2N1bWVudCogaW5pdGlhdGluZ0RvY3VtZW50LCBkb3Vi
bGUgZGVsYXksIFNlY3VyaXR5T3JpZ2luKiBzZWN1cml0eU9yaWdpbiwgY29uc3QgVVJMJiB1cmws
IExvY2tIaXN0b3J5IGxvY2tIaXN0b3J5LCBMb2NrQmFja0ZvcndhcmRMaXN0IGxvY2tCYWNrRm9y
d2FyZExpc3QpCisgICAgICAgIDogU2NoZWR1bGVkVVJMTmF2aWdhdGlvbihpbml0aWF0aW5nRG9j
dW1lbnQsIGRlbGF5LCBzZWN1cml0eU9yaWdpbiwgdXJsLCBTdHJpbmcoKSwgbG9ja0hpc3Rvcnks
IGxvY2tCYWNrRm9yd2FyZExpc3QsIGZhbHNlLCBmYWxzZSkKICAgICB7CiAgICAgICAgIGNsZWFy
VXNlckdlc3R1cmUoKTsKICAgICB9CkBAIC0xNzAsNyArMTc0LDcgQEAgcHVibGljOgogICAgICAg
ICBVc2VyR2VzdHVyZUluZGljYXRvciBnZXN0dXJlSW5kaWNhdG9yKHdhc1VzZXJHZXN0dXJlKCkg
PyBEZWZpbml0ZWx5UHJvY2Vzc2luZ1VzZXJHZXN0dXJlIDogRGVmaW5pdGVseU5vdFByb2Nlc3Np
bmdVc2VyR2VzdHVyZSk7CiAgICAgICAgIGJvb2wgcmVmcmVzaCA9IGVxdWFsSWdub3JpbmdGcmFn
bWVudElkZW50aWZpZXIoZnJhbWUuZG9jdW1lbnQoKS0+dXJsKCksIHVybCgpKTsKICAgICAgICAg
UmVzb3VyY2VSZXF1ZXN0IHJlc291cmNlUmVxdWVzdCh1cmwoKSwgcmVmZXJyZXIoKSwgcmVmcmVz
aCA/IFJlbG9hZElnbm9yaW5nQ2FjaGVEYXRhIDogVXNlUHJvdG9jb2xDYWNoZVBvbGljeSk7Ci0g
ICAgICAgIEZyYW1lTG9hZFJlcXVlc3QgZnJhbWVSZXF1ZXN0KHNlY3VyaXR5T3JpZ2luKCksIHJl
c291cmNlUmVxdWVzdCwgbG9ja0hpc3RvcnkoKSwgbG9ja0JhY2tGb3J3YXJkTGlzdCgpLCBNYXli
ZVNlbmRSZWZlcnJlciwgQWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJMOjpObywgTmV3RnJhbWVP
cGVuZXJQb2xpY3k6OkFsbG93KTsKKyAgICAgICAgRnJhbWVMb2FkUmVxdWVzdCBmcmFtZVJlcXVl
c3Qoc2VjdXJpdHlPcmlnaW4oKSwgcmVzb3VyY2VSZXF1ZXN0LCBsb2NrSGlzdG9yeSgpLCBsb2Nr
QmFja0ZvcndhcmRMaXN0KCksIE1heWJlU2VuZFJlZmVycmVyLCBBbGxvd05hdmlnYXRpb25Ub0lu
dmFsaWRVUkw6Ok5vLCBOZXdGcmFtZU9wZW5lclBvbGljeTo6QWxsb3csIG1fc2hvdWxkT3BlbkV4
dGVybmFsVVJMc1BvbGljeSk7CiAKICAgICAgICAgZnJhbWUubG9hZGVyKCkuY2hhbmdlTG9jYXRp
b24oZnJhbWVSZXF1ZXN0KTsKICAgICB9CkBAIC0xNzgsMjMgKzE4MiwyMyBAQCBwdWJsaWM6CiAK
IGNsYXNzIFNjaGVkdWxlZExvY2F0aW9uQ2hhbmdlIDogcHVibGljIFNjaGVkdWxlZFVSTE5hdmln
YXRpb24gewogcHVibGljOgotICAgIFNjaGVkdWxlZExvY2F0aW9uQ2hhbmdlKFNlY3VyaXR5T3Jp
Z2luKiBzZWN1cml0eU9yaWdpbiwgY29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgcmVmZXJy
ZXIsIExvY2tIaXN0b3J5IGxvY2tIaXN0b3J5LCBMb2NrQmFja0ZvcndhcmRMaXN0IGxvY2tCYWNr
Rm9yd2FyZExpc3QsIGJvb2wgZHVyaW5nTG9hZCkKLSAgICAgICAgOiBTY2hlZHVsZWRVUkxOYXZp
Z2F0aW9uKDAuMCwgc2VjdXJpdHlPcmlnaW4sIHVybCwgcmVmZXJyZXIsIGxvY2tIaXN0b3J5LCBs
b2NrQmFja0ZvcndhcmRMaXN0LCBkdXJpbmdMb2FkLCB0cnVlKSB7IH0KKyAgICBTY2hlZHVsZWRM
b2NhdGlvbkNoYW5nZShEb2N1bWVudCogaW5pdGlhdGluZ0RvY3VtZW50LCBTZWN1cml0eU9yaWdp
biogc2VjdXJpdHlPcmlnaW4sIGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIHJlZmVycmVy
LCBMb2NrSGlzdG9yeSBsb2NrSGlzdG9yeSwgTG9ja0JhY2tGb3J3YXJkTGlzdCBsb2NrQmFja0Zv
cndhcmRMaXN0LCBib29sIGR1cmluZ0xvYWQpCisgICAgICAgIDogU2NoZWR1bGVkVVJMTmF2aWdh
dGlvbihpbml0aWF0aW5nRG9jdW1lbnQsIDAuMCwgc2VjdXJpdHlPcmlnaW4sIHVybCwgcmVmZXJy
ZXIsIGxvY2tIaXN0b3J5LCBsb2NrQmFja0ZvcndhcmRMaXN0LCBkdXJpbmdMb2FkLCB0cnVlKSB7
IH0KIAogICAgIHZpcnR1YWwgdm9pZCBmaXJlKEZyYW1lJiBmcmFtZSkgb3ZlcnJpZGUKICAgICB7
CiAgICAgICAgIFVzZXJHZXN0dXJlSW5kaWNhdG9yIGdlc3R1cmVJbmRpY2F0b3Iod2FzVXNlckdl
c3R1cmUoKSA/IERlZmluaXRlbHlQcm9jZXNzaW5nVXNlckdlc3R1cmUgOiBEZWZpbml0ZWx5Tm90
UHJvY2Vzc2luZ1VzZXJHZXN0dXJlKTsKIAogICAgICAgICBSZXNvdXJjZVJlcXVlc3QgcmVzb3Vy
Y2VSZXF1ZXN0KHVybCgpLCByZWZlcnJlcigpLCBVc2VQcm90b2NvbENhY2hlUG9saWN5KTsKLSAg
ICAgICAgRnJhbWVMb2FkUmVxdWVzdCBmcmFtZVJlcXVlc3Qoc2VjdXJpdHlPcmlnaW4oKSwgcmVz
b3VyY2VSZXF1ZXN0LCBsb2NrSGlzdG9yeSgpLCBsb2NrQmFja0ZvcndhcmRMaXN0KCksIE1heWJl
U2VuZFJlZmVycmVyLCBBbGxvd05hdmlnYXRpb25Ub0ludmFsaWRVUkw6Ok5vLCBOZXdGcmFtZU9w
ZW5lclBvbGljeTo6QWxsb3cpOworICAgICAgICBGcmFtZUxvYWRSZXF1ZXN0IGZyYW1lUmVxdWVz
dChzZWN1cml0eU9yaWdpbigpLCByZXNvdXJjZVJlcXVlc3QsIGxvY2tIaXN0b3J5KCksIGxvY2tC
YWNrRm9yd2FyZExpc3QoKSwgTWF5YmVTZW5kUmVmZXJyZXIsIEFsbG93TmF2aWdhdGlvblRvSW52
YWxpZFVSTDo6Tm8sIE5ld0ZyYW1lT3BlbmVyUG9saWN5OjpBbGxvdywgbV9zaG91bGRPcGVuRXh0
ZXJuYWxVUkxzUG9saWN5KTsKICAgICAgICAgZnJhbWUubG9hZGVyKCkuY2hhbmdlTG9jYXRpb24o
ZnJhbWVSZXF1ZXN0KTsKICAgICB9CiB9OwogCiBjbGFzcyBTY2hlZHVsZWRSZWZyZXNoIDogcHVi
bGljIFNjaGVkdWxlZFVSTE5hdmlnYXRpb24gewogcHVibGljOgotICAgIFNjaGVkdWxlZFJlZnJl
c2goU2VjdXJpdHlPcmlnaW4qIHNlY3VyaXR5T3JpZ2luLCBjb25zdCBVUkwmIHVybCwgY29uc3Qg
U3RyaW5nJiByZWZlcnJlcikKLSAgICAgICAgOiBTY2hlZHVsZWRVUkxOYXZpZ2F0aW9uKDAuMCwg
c2VjdXJpdHlPcmlnaW4sIHVybCwgcmVmZXJyZXIsIExvY2tIaXN0b3J5OjpZZXMsIExvY2tCYWNr
Rm9yd2FyZExpc3Q6OlllcywgZmFsc2UsIHRydWUpCisgICAgU2NoZWR1bGVkUmVmcmVzaChEb2N1
bWVudCogaW5pdGlhdGluZ0RvY3VtZW50LCBTZWN1cml0eU9yaWdpbiogc2VjdXJpdHlPcmlnaW4s
IGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIHJlZmVycmVyKQorICAgICAgICA6IFNjaGVk
dWxlZFVSTE5hdmlnYXRpb24oaW5pdGlhdGluZ0RvY3VtZW50LCAwLjAsIHNlY3VyaXR5T3JpZ2lu
LCB1cmwsIHJlZmVycmVyLCBMb2NrSGlzdG9yeTo6WWVzLCBMb2NrQmFja0ZvcndhcmRMaXN0OjpZ
ZXMsIGZhbHNlLCB0cnVlKQogICAgIHsKICAgICB9CiAKQEAgLTIwMyw3ICsyMDcsNyBAQCBwdWJs
aWM6CiAgICAgICAgIFVzZXJHZXN0dXJlSW5kaWNhdG9yIGdlc3R1cmVJbmRpY2F0b3Iod2FzVXNl
ckdlc3R1cmUoKSA/IERlZmluaXRlbHlQcm9jZXNzaW5nVXNlckdlc3R1cmUgOiBEZWZpbml0ZWx5
Tm90UHJvY2Vzc2luZ1VzZXJHZXN0dXJlKTsKIAogICAgICAgICBSZXNvdXJjZVJlcXVlc3QgcmVz
b3VyY2VSZXF1ZXN0KHVybCgpLCByZWZlcnJlcigpLCBSZWxvYWRJZ25vcmluZ0NhY2hlRGF0YSk7
Ci0gICAgICAgIEZyYW1lTG9hZFJlcXVlc3QgZnJhbWVSZXF1ZXN0KHNlY3VyaXR5T3JpZ2luKCks
IHJlc291cmNlUmVxdWVzdCwgbG9ja0hpc3RvcnkoKSwgbG9ja0JhY2tGb3J3YXJkTGlzdCgpLCBN
YXliZVNlbmRSZWZlcnJlciwgQWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJMOjpZZXMsIE5ld0Zy
YW1lT3BlbmVyUG9saWN5OjpBbGxvdyk7CisgICAgICAgIEZyYW1lTG9hZFJlcXVlc3QgZnJhbWVS
ZXF1ZXN0KHNlY3VyaXR5T3JpZ2luKCksIHJlc291cmNlUmVxdWVzdCwgbG9ja0hpc3RvcnkoKSwg
bG9ja0JhY2tGb3J3YXJkTGlzdCgpLCBNYXliZVNlbmRSZWZlcnJlciwgQWxsb3dOYXZpZ2F0aW9u
VG9JbnZhbGlkVVJMOjpZZXMsIE5ld0ZyYW1lT3BlbmVyUG9saWN5OjpBbGxvdywgbV9zaG91bGRP
cGVuRXh0ZXJuYWxVUkxzUG9saWN5KTsKICAgICAgICAgZnJhbWUubG9hZGVyKCkuY2hhbmdlTG9j
YXRpb24oZnJhbWVSZXF1ZXN0KTsKICAgICB9CiB9OwpAQCAtMjIzLDcgKzIyNyw3IEBAIHB1Ymxp
YzoKICAgICAgICAgaWYgKCFtX2hpc3RvcnlTdGVwcykgewogICAgICAgICAgICAgLy8gU3BlY2lh
bCBjYXNlIGZvciBnbygwKSBmcm9tIGEgZnJhbWUgLT4gcmVsb2FkIG9ubHkgdGhlIGZyYW1lCiAg
ICAgICAgICAgICAvLyBUbyBmb2xsb3cgRmlyZWZveCBhbmQgSUUncyBiZWhhdmlvciwgaGlzdG9y
eSByZWxvYWQgY2FuIG9ubHkgbmF2aWdhdGUgdGhlIHNlbGYgZnJhbWUuCi0gICAgICAgICAgICBm
cmFtZS5sb2FkZXIoKS51cmxTZWxlY3RlZChmcmFtZS5kb2N1bWVudCgpLT51cmwoKSwgIl9zZWxm
IiwgMCwgbG9ja0hpc3RvcnkoKSwgbG9ja0JhY2tGb3J3YXJkTGlzdCgpLCBNYXliZVNlbmRSZWZl
cnJlcik7CisgICAgICAgICAgICBmcmFtZS5sb2FkZXIoKS51cmxTZWxlY3RlZChmcmFtZS5kb2N1
bWVudCgpLT51cmwoKSwgIl9zZWxmIiwgMCwgbG9ja0hpc3RvcnkoKSwgbG9ja0JhY2tGb3J3YXJk
TGlzdCgpLCBNYXliZVNlbmRSZWZlcnJlciwgbV9zaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5
KTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAgICAgICAKQEAgLTI0NCw2ICsy
NDgsOSBAQCBwdWJsaWM6CiAgICAgICAgICwgbV9oYXZlVG9sZENsaWVudChmYWxzZSkKICAgICB7
CiAgICAgICAgIEFTU0VSVChtX3N1Ym1pc3Npb24tPnN0YXRlKCkpOworCisgICAgICAgIGlmIChE
b2N1bWVudCogZG9jdW1lbnQgPSBtX3N1Ym1pc3Npb24tPnN0YXRlKCktPnNvdXJjZURvY3VtZW50
KCkpCisgICAgICAgICAgICBtX3Nob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kgPSBkb2N1bWVu
dC0+c2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeVRvUHJvcGFnYXRlKCk7CiAgICAgfQogCiAg
ICAgdmlydHVhbCB2b2lkIGZpcmUoRnJhbWUmIGZyYW1lKSBvdmVycmlkZQpAQCAtMjU3LDcgKzI2
NCw3IEBAIHB1YmxpYzoKICAgICAgICAgRG9jdW1lbnQqIHJlcXVlc3RpbmdEb2N1bWVudCA9IG1f
c3VibWlzc2lvbi0+c3RhdGUoKS0+c291cmNlRG9jdW1lbnQoKTsKICAgICAgICAgaWYgKCFyZXF1
ZXN0aW5nRG9jdW1lbnQtPmNhbk5hdmlnYXRlKCZmcmFtZSkpCiAgICAgICAgICAgICByZXR1cm47
Ci0gICAgICAgIEZyYW1lTG9hZFJlcXVlc3QgZnJhbWVSZXF1ZXN0KHJlcXVlc3RpbmdEb2N1bWVu
dC0+c2VjdXJpdHlPcmlnaW4oKSwgbG9ja0hpc3RvcnkoKSwgbG9ja0JhY2tGb3J3YXJkTGlzdCgp
LCBNYXliZVNlbmRSZWZlcnJlciwgQWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJMOjpZZXMsIE5l
d0ZyYW1lT3BlbmVyUG9saWN5OjpBbGxvdyk7CisgICAgICAgIEZyYW1lTG9hZFJlcXVlc3QgZnJh
bWVSZXF1ZXN0KHJlcXVlc3RpbmdEb2N1bWVudC0+c2VjdXJpdHlPcmlnaW4oKSwgbG9ja0hpc3Rv
cnkoKSwgbG9ja0JhY2tGb3J3YXJkTGlzdCgpLCBNYXliZVNlbmRSZWZlcnJlciwgQWxsb3dOYXZp
Z2F0aW9uVG9JbnZhbGlkVVJMOjpZZXMsIE5ld0ZyYW1lT3BlbmVyUG9saWN5OjpBbGxvdywgbV9z
aG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5KTsKICAgICAgICAgbV9zdWJtaXNzaW9uLT5wb3B1
bGF0ZUZyYW1lTG9hZFJlcXVlc3QoZnJhbWVSZXF1ZXN0KTsKICAgICAgICAgZnJhbWUubG9hZGVy
KCkubG9hZEZyYW1lUmVxdWVzdChmcmFtZVJlcXVlc3QsIG1fc3VibWlzc2lvbi0+ZXZlbnQoKSwg
bV9zdWJtaXNzaW9uLT5zdGF0ZSgpKTsKICAgICB9CkBAIC0zMDMsNyArMzEwLDcgQEAgcHVibGlj
OgogICAgIHZvaWQgZmlyZShGcmFtZSYgZnJhbWUpIG92ZXJyaWRlCiAgICAgewogICAgICAgICBV
c2VyR2VzdHVyZUluZGljYXRvciBnZXN0dXJlSW5kaWNhdG9yIHsgd2FzVXNlckdlc3R1cmUoKSA/
IERlZmluaXRlbHlQcm9jZXNzaW5nVXNlckdlc3R1cmUgOiBEZWZpbml0ZWx5Tm90UHJvY2Vzc2lu
Z1VzZXJHZXN0dXJlIH07Ci0gICAgICAgIGZyYW1lLmxvYWRlcigpLmxvYWQoRnJhbWVMb2FkUmVx
dWVzdCB7ICZmcmFtZSwgbV9iYXNlVVJMLCBtX3N1YnN0aXR1dGVEYXRhIH0pOworICAgICAgICBm
cmFtZS5sb2FkZXIoKS5sb2FkKEZyYW1lTG9hZFJlcXVlc3QgeyAmZnJhbWUsIG1fYmFzZVVSTCwg
bV9zaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5LCBtX3N1YnN0aXR1dGVEYXRhIH0pOwogICAg
IH0KIAogcHJpdmF0ZToKQEAgLTM1Myw3ICszNjAsNyBAQCBpbmxpbmUgYm9vbCBOYXZpZ2F0aW9u
U2NoZWR1bGVyOjpzaG91bGRTY2hlZHVsZU5hdmlnYXRpb24oY29uc3QgVVJMJiB1cmwpIGNvbnN0
CiAgICAgcmV0dXJuIE5hdmlnYXRpb25EaXNhYmxlckZvckJlZm9yZVVubG9hZDo6aXNOYXZpZ2F0
aW9uQWxsb3dlZCgpOwogfQogCi12b2lkIE5hdmlnYXRpb25TY2hlZHVsZXI6OnNjaGVkdWxlUmVk
aXJlY3QoZG91YmxlIGRlbGF5LCBjb25zdCBVUkwmIHVybCkKK3ZvaWQgTmF2aWdhdGlvblNjaGVk
dWxlcjo6c2NoZWR1bGVSZWRpcmVjdChEb2N1bWVudCogaW5pdGlhdGluZ0RvY3VtZW50LCBkb3Vi
bGUgZGVsYXksIGNvbnN0IFVSTCYgdXJsKQogewogICAgIGlmICghc2hvdWxkU2NoZWR1bGVOYXZp
Z2F0aW9uKHVybCkpCiAgICAgICAgIHJldHVybjsKQEAgLTM2NSw3ICszNzIsNyBAQCB2b2lkIE5h
dmlnYXRpb25TY2hlZHVsZXI6OnNjaGVkdWxlUmVkaXJlY3QoZG91YmxlIGRlbGF5LCBjb25zdCBV
UkwmIHVybCkKICAgICAvLyBXZSB3YW50IGEgbmV3IGJhY2svZm9yd2FyZCBsaXN0IGl0ZW0gaWYg
dGhlIHJlZnJlc2ggdGltZW91dCBpcyA+IDEgc2Vjb25kLgogICAgIGlmICghbV9yZWRpcmVjdCB8
fCBkZWxheSA8PSBtX3JlZGlyZWN0LT5kZWxheSgpKSB7CiAgICAgICAgIExvY2tCYWNrRm9yd2Fy
ZExpc3QgbG9ja0JhY2tGb3J3YXJkTGlzdCA9IGRlbGF5IDw9IDEgPyBMb2NrQmFja0ZvcndhcmRM
aXN0OjpZZXMgOiBMb2NrQmFja0ZvcndhcmRMaXN0OjpObzsKLSAgICAgICAgc2NoZWR1bGUoc3Rk
OjptYWtlX3VuaXF1ZTxTY2hlZHVsZWRSZWRpcmVjdD4oZGVsYXksIG1fZnJhbWUuZG9jdW1lbnQo
KS0+c2VjdXJpdHlPcmlnaW4oKSwgdXJsLCBMb2NrSGlzdG9yeTo6WWVzLCBsb2NrQmFja0Zvcndh
cmRMaXN0KSk7CisgICAgICAgIHNjaGVkdWxlKHN0ZDo6bWFrZV91bmlxdWU8U2NoZWR1bGVkUmVk
aXJlY3Q+KGluaXRpYXRpbmdEb2N1bWVudCwgZGVsYXksIG1fZnJhbWUuZG9jdW1lbnQoKS0+c2Vj
dXJpdHlPcmlnaW4oKSwgdXJsLCBMb2NrSGlzdG9yeTo6WWVzLCBsb2NrQmFja0ZvcndhcmRMaXN0
KSk7CiAgICAgfQogfQogCkBAIC0zODcsNyArMzk0LDcgQEAgTG9ja0JhY2tGb3J3YXJkTGlzdCBO
YXZpZ2F0aW9uU2NoZWR1bGVyOjptdXN0TG9ja0JhY2tGb3J3YXJkTGlzdChGcmFtZSYgdGFyZ2V0
RnIKICAgICByZXR1cm4gTG9ja0JhY2tGb3J3YXJkTGlzdDo6Tm87CiB9CiAKLXZvaWQgTmF2aWdh
dGlvblNjaGVkdWxlcjo6c2NoZWR1bGVMb2NhdGlvbkNoYW5nZShTZWN1cml0eU9yaWdpbiogc2Vj
dXJpdHlPcmlnaW4sIGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIHJlZmVycmVyLCBMb2Nr
SGlzdG9yeSBsb2NrSGlzdG9yeSwgTG9ja0JhY2tGb3J3YXJkTGlzdCBsb2NrQmFja0ZvcndhcmRM
aXN0KQordm9pZCBOYXZpZ2F0aW9uU2NoZWR1bGVyOjpzY2hlZHVsZUxvY2F0aW9uQ2hhbmdlKERv
Y3VtZW50KiBpbml0aWF0aW5nRG9jdW1lbnQsIFNlY3VyaXR5T3JpZ2luKiBzZWN1cml0eU9yaWdp
biwgY29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgcmVmZXJyZXIsIExvY2tIaXN0b3J5IGxv
Y2tIaXN0b3J5LCBMb2NrQmFja0ZvcndhcmRMaXN0IGxvY2tCYWNrRm9yd2FyZExpc3QpCiB7CiAg
ICAgaWYgKCFzaG91bGRTY2hlZHVsZU5hdmlnYXRpb24odXJsKSkKICAgICAgICAgcmV0dXJuOwpA
QCAtNDAxLDcgKzQwOCwxMCBAQCB2b2lkIE5hdmlnYXRpb25TY2hlZHVsZXI6OnNjaGVkdWxlTG9j
YXRpb25DaGFuZ2UoU2VjdXJpdHlPcmlnaW4qIHNlY3VyaXR5T3JpZ2luLAogICAgIC8vIGZyYWdt
ZW50IHBhcnQsIHdlIGRvbid0IG5lZWQgdG8gc2NoZWR1bGUgdGhlIGxvY2F0aW9uIGNoYW5nZS4K
ICAgICBpZiAodXJsLmhhc0ZyYWdtZW50SWRlbnRpZmllcigpICYmIGVxdWFsSWdub3JpbmdGcmFn
bWVudElkZW50aWZpZXIobV9mcmFtZS5kb2N1bWVudCgpLT51cmwoKSwgdXJsKSkgewogICAgICAg
ICBSZXNvdXJjZVJlcXVlc3QgcmVzb3VyY2VSZXF1ZXN0KG1fZnJhbWUuZG9jdW1lbnQoKS0+Y29t
cGxldGVVUkwodXJsKSwgcmVmZXJyZXIsIFVzZVByb3RvY29sQ2FjaGVQb2xpY3kpOwotICAgICAg
ICBGcmFtZUxvYWRSZXF1ZXN0IGZyYW1lUmVxdWVzdChzZWN1cml0eU9yaWdpbiwgcmVzb3VyY2VS
ZXF1ZXN0LCBlbXB0eVN0cmluZygpLCBsb2NrSGlzdG9yeSwgbG9ja0JhY2tGb3J3YXJkTGlzdCwg
TWF5YmVTZW5kUmVmZXJyZXIsIEFsbG93TmF2aWdhdGlvblRvSW52YWxpZFVSTDo6Tm8sIE5ld0Zy
YW1lT3BlbmVyUG9saWN5OjpBbGxvdywgUmVwbGFjZURvY3VtZW50SWZKYXZhU2NyaXB0VVJMKTsK
KyAgICAgICAgU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSBzaG91bGRPcGVuRXh0ZXJuYWxV
UkxzUG9saWN5ID0gU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeTo6U2hvdWxkTm90QWxsb3c7
CisgICAgICAgIGlmIChpbml0aWF0aW5nRG9jdW1lbnQpCisgICAgICAgICAgICBzaG91bGRPcGVu
RXh0ZXJuYWxVUkxzUG9saWN5ID0gaW5pdGlhdGluZ0RvY3VtZW50LT5zaG91bGRPcGVuRXh0ZXJu
YWxVUkxzUG9saWN5VG9Qcm9wYWdhdGUoKTsKKyAgICAgICAgRnJhbWVMb2FkUmVxdWVzdCBmcmFt
ZVJlcXVlc3Qoc2VjdXJpdHlPcmlnaW4sIHJlc291cmNlUmVxdWVzdCwgZW1wdHlTdHJpbmcoKSwg
bG9ja0hpc3RvcnksIGxvY2tCYWNrRm9yd2FyZExpc3QsIE1heWJlU2VuZFJlZmVycmVyLCBBbGxv
d05hdmlnYXRpb25Ub0ludmFsaWRVUkw6Ok5vLCBOZXdGcmFtZU9wZW5lclBvbGljeTo6QWxsb3cs
IFJlcGxhY2VEb2N1bWVudElmSmF2YVNjcmlwdFVSTCwgc2hvdWxkT3BlbkV4dGVybmFsVVJMc1Bv
bGljeSk7CiAgICAgICAgIGxvYWRlci5jaGFuZ2VMb2NhdGlvbihmcmFtZVJlcXVlc3QpOwogICAg
ICAgICByZXR1cm47CiAgICAgfQpAQCAtNDEwLDcgKzQyMCw3IEBAIHZvaWQgTmF2aWdhdGlvblNj
aGVkdWxlcjo6c2NoZWR1bGVMb2NhdGlvbkNoYW5nZShTZWN1cml0eU9yaWdpbiogc2VjdXJpdHlP
cmlnaW4sCiAgICAgLy8gVGhpcyBtYXkgaGFwcGVuIHdoZW4gYSBmcmFtZSBjaGFuZ2VzIHRoZSBs
b2NhdGlvbiBvZiBhbm90aGVyIGZyYW1lLgogICAgIGJvb2wgZHVyaW5nTG9hZCA9ICFsb2FkZXIu
c3RhdGVNYWNoaW5lKCkuY29tbWl0dGVkRmlyc3RSZWFsRG9jdW1lbnRMb2FkKCk7CiAKLSAgICBz
Y2hlZHVsZShzdGQ6Om1ha2VfdW5pcXVlPFNjaGVkdWxlZExvY2F0aW9uQ2hhbmdlPihzZWN1cml0
eU9yaWdpbiwgdXJsLCByZWZlcnJlciwgbG9ja0hpc3RvcnksIGxvY2tCYWNrRm9yd2FyZExpc3Qs
IGR1cmluZ0xvYWQpKTsKKyAgICBzY2hlZHVsZShzdGQ6Om1ha2VfdW5pcXVlPFNjaGVkdWxlZExv
Y2F0aW9uQ2hhbmdlPihpbml0aWF0aW5nRG9jdW1lbnQsIHNlY3VyaXR5T3JpZ2luLCB1cmwsIHJl
ZmVycmVyLCBsb2NrSGlzdG9yeSwgbG9ja0JhY2tGb3J3YXJkTGlzdCwgZHVyaW5nTG9hZCkpOwog
fQogCiB2b2lkIE5hdmlnYXRpb25TY2hlZHVsZXI6OnNjaGVkdWxlRm9ybVN1Ym1pc3Npb24oUGFz
c1JlZlB0cjxGb3JtU3VibWlzc2lvbj4gc3VibWlzc2lvbikKQEAgLTQzNiw3ICs0NDYsNyBAQCB2
b2lkIE5hdmlnYXRpb25TY2hlZHVsZXI6OnNjaGVkdWxlRm9ybVN1Ym1pc3Npb24oUGFzc1JlZlB0
cjxGb3JtU3VibWlzc2lvbj4gc3VibQogICAgIHNjaGVkdWxlKHN0ZDo6bWFrZV91bmlxdWU8U2No
ZWR1bGVkRm9ybVN1Ym1pc3Npb24+KHN1Ym1pc3Npb24sIGxvY2tCYWNrRm9yd2FyZExpc3QsIGR1
cmluZ0xvYWQpKTsKIH0KIAotdm9pZCBOYXZpZ2F0aW9uU2NoZWR1bGVyOjpzY2hlZHVsZVJlZnJl
c2goKQordm9pZCBOYXZpZ2F0aW9uU2NoZWR1bGVyOjpzY2hlZHVsZVJlZnJlc2goRG9jdW1lbnQq
IGluaXRpYXRpbmdEb2N1bWVudCkKIHsKICAgICBpZiAoIXNob3VsZFNjaGVkdWxlTmF2aWdhdGlv
bigpKQogICAgICAgICByZXR1cm47CkBAIC00NDQsNyArNDU0LDcgQEAgdm9pZCBOYXZpZ2F0aW9u
U2NoZWR1bGVyOjpzY2hlZHVsZVJlZnJlc2goKQogICAgIGlmICh1cmwuaXNFbXB0eSgpKQogICAg
ICAgICByZXR1cm47CiAKLSAgICBzY2hlZHVsZShzdGQ6Om1ha2VfdW5pcXVlPFNjaGVkdWxlZFJl
ZnJlc2g+KG1fZnJhbWUuZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKSwgdXJsLCBtX2ZyYW1l
LmxvYWRlcigpLm91dGdvaW5nUmVmZXJyZXIoKSkpOworICAgIHNjaGVkdWxlKHN0ZDo6bWFrZV91
bmlxdWU8U2NoZWR1bGVkUmVmcmVzaD4oaW5pdGlhdGluZ0RvY3VtZW50LCBtX2ZyYW1lLmRvY3Vt
ZW50KCktPnNlY3VyaXR5T3JpZ2luKCksIHVybCwgbV9mcmFtZS5sb2FkZXIoKS5vdXRnb2luZ1Jl
ZmVycmVyKCkpKTsKIH0KIAogdm9pZCBOYXZpZ2F0aW9uU2NoZWR1bGVyOjpzY2hlZHVsZUhpc3Rv
cnlOYXZpZ2F0aW9uKGludCBzdGVwcykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9OYXZpZ2F0aW9uU2NoZWR1bGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTmF2aWdhdGlv
blNjaGVkdWxlci5oCmluZGV4IDRhZTViMTAuLmRkNjFhNzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9OYXZpZ2F0aW9uU2NoZWR1bGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL05hdmlnYXRpb25TY2hlZHVsZXIuaApAQCAtMzcsNiArMzcsNyBAQAogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKK2NsYXNzIERvY3VtZW50OwogY2xhc3MgRm9ybVN1Ym1pc3Npb247CiBj
bGFzcyBGcmFtZTsKIGNsYXNzIFNjaGVkdWxlZE5hdmlnYXRpb247CkBAIC02OSwxMCArNzAsMTAg
QEAgcHVibGljOgogICAgIGJvb2wgcmVkaXJlY3RTY2hlZHVsZWREdXJpbmdMb2FkKCk7CiAgICAg
Ym9vbCBsb2NhdGlvbkNoYW5nZVBlbmRpbmcoKTsKIAotICAgIHZvaWQgc2NoZWR1bGVSZWRpcmVj
dChkb3VibGUgZGVsYXksIGNvbnN0IFVSTCYpOwotICAgIHZvaWQgc2NoZWR1bGVMb2NhdGlvbkNo
YW5nZShTZWN1cml0eU9yaWdpbiosIGNvbnN0IFVSTCYsIGNvbnN0IFN0cmluZyYgcmVmZXJyZXIs
IExvY2tIaXN0b3J5ID0gTG9ja0hpc3Rvcnk6OlllcywgTG9ja0JhY2tGb3J3YXJkTGlzdCA9IExv
Y2tCYWNrRm9yd2FyZExpc3Q6Olllcyk7CisgICAgdm9pZCBzY2hlZHVsZVJlZGlyZWN0KERvY3Vt
ZW50KiBpbml0aWF0aW5nRG9jdW1lbnQsIGRvdWJsZSBkZWxheSwgY29uc3QgVVJMJik7CisgICAg
dm9pZCBzY2hlZHVsZUxvY2F0aW9uQ2hhbmdlKERvY3VtZW50KiBpbml0aWF0aW5nRG9jdW1lbnQs
IFNlY3VyaXR5T3JpZ2luKiwgY29uc3QgVVJMJiwgY29uc3QgU3RyaW5nJiByZWZlcnJlciwgTG9j
a0hpc3RvcnkgPSBMb2NrSGlzdG9yeTo6WWVzLCBMb2NrQmFja0ZvcndhcmRMaXN0ID0gTG9ja0Jh
Y2tGb3J3YXJkTGlzdDo6WWVzKTsKICAgICB2b2lkIHNjaGVkdWxlRm9ybVN1Ym1pc3Npb24oUGFz
c1JlZlB0cjxGb3JtU3VibWlzc2lvbj4pOwotICAgIHZvaWQgc2NoZWR1bGVSZWZyZXNoKCk7Cisg
ICAgdm9pZCBzY2hlZHVsZVJlZnJlc2goRG9jdW1lbnQqIGluaXRpYXRpbmdEb2N1bWVudCk7CiAg
ICAgdm9pZCBzY2hlZHVsZUhpc3RvcnlOYXZpZ2F0aW9uKGludCBzdGVwcyk7CiAgICAgdm9pZCBz
Y2hlZHVsZVN1YnN0aXR1dGVEYXRhTG9hZChjb25zdCBVUkwmIGJhc2VVUkwsIGNvbnN0IFN1YnN0
aXR1dGVEYXRhJik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Qb2xpY3lD
aGVja2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Qb2xpY3lDaGVja2VyLmNwcAppbmRl
eCAxYmI5OWE2Li5hMjE2ZTUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUG9s
aWN5Q2hlY2tlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1BvbGljeUNoZWNrZXIu
Y3BwCkBAIC02NSw3ICs2NSw3IEBAIHZvaWQgUG9saWN5Q2hlY2tlcjo6Y2hlY2tOYXZpZ2F0aW9u
UG9saWN5KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgRG9jdW1lCiB7CiAgICAgTmF2
aWdhdGlvbkFjdGlvbiBhY3Rpb24gPSBsb2FkZXItPnRyaWdnZXJpbmdBY3Rpb24oKTsKICAgICBp
ZiAoYWN0aW9uLmlzRW1wdHkoKSkgewotICAgICAgICBhY3Rpb24gPSBOYXZpZ2F0aW9uQWN0aW9u
KHJlcXVlc3QsIE5hdmlnYXRpb25UeXBlOjpPdGhlciwgbG9hZGVyLT5zaG91bGRPcGVuRXh0ZXJu
YWxVUkxzUG9saWN5KCkpOworICAgICAgICBhY3Rpb24gPSBOYXZpZ2F0aW9uQWN0aW9uKHJlcXVl
c3QsIE5hdmlnYXRpb25UeXBlOjpPdGhlciwgbG9hZGVyLT5zaG91bGRPcGVuRXh0ZXJuYWxVUkxz
UG9saWN5VG9Qcm9wYWdhdGUoKSk7CiAgICAgICAgIGxvYWRlci0+c2V0VHJpZ2dlcmluZ0FjdGlv
bihhY3Rpb24pOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1N1
YmZyYW1lTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJmcmFtZUxvYWRlci5j
cHAKaW5kZXggYjBmZDUyZi4uN2YwY2YwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL1N1YmZyYW1lTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvU3ViZnJh
bWVMb2FkZXIuY3BwCkBAIC0yODQsNyArMjg0LDcgQEAgRnJhbWUqIFN1YmZyYW1lTG9hZGVyOjps
b2FkT3JSZWRpcmVjdFN1YmZyYW1lKEhUTUxGcmFtZU93bmVyRWxlbWVudCYgb3duZXJFbGVtZW4K
IHsKICAgICBGcmFtZSogZnJhbWUgPSBvd25lckVsZW1lbnQuY29udGVudEZyYW1lKCk7CiAgICAg
aWYgKGZyYW1lKQotICAgICAgICBmcmFtZS0+bmF2aWdhdGlvblNjaGVkdWxlcigpLnNjaGVkdWxl
TG9jYXRpb25DaGFuZ2UobV9mcmFtZS5kb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpLCB1cmws
IG1fZnJhbWUubG9hZGVyKCkub3V0Z29pbmdSZWZlcnJlcigpLCBsb2NrSGlzdG9yeSwgbG9ja0Jh
Y2tGb3J3YXJkTGlzdCk7CisgICAgICAgIGZyYW1lLT5uYXZpZ2F0aW9uU2NoZWR1bGVyKCkuc2No
ZWR1bGVMb2NhdGlvbkNoYW5nZShtX2ZyYW1lLmRvY3VtZW50KCksIG1fZnJhbWUuZG9jdW1lbnQo
KS0+c2VjdXJpdHlPcmlnaW4oKSwgdXJsLCBtX2ZyYW1lLmxvYWRlcigpLm91dGdvaW5nUmVmZXJy
ZXIoKSwgbG9ja0hpc3RvcnksIGxvY2tCYWNrRm9yd2FyZExpc3QpOwogICAgIGVsc2UKICAgICAg
ICAgZnJhbWUgPSBsb2FkU3ViZnJhbWUob3duZXJFbGVtZW50LCB1cmwsIGZyYW1lTmFtZSwgbV9m
cmFtZS5sb2FkZXIoKS5vdXRnb2luZ1JlZmVycmVyKCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUdyb3VwLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlR3JvdXAuY3BwCmluZGV4
IDc2OGY0ZjkuLjYyN2MwZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBj
YWNoZS9BcHBsaWNhdGlvbkNhY2hlR3JvdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlR3JvdXAuY3BwCkBAIC0xNzMsNyArMTczLDcgQEAg
dm9pZCBBcHBsaWNhdGlvbkNhY2hlR3JvdXA6OnNlbGVjdENhY2hlKEZyYW1lKiBmcmFtZSwgY29u
c3QgVVJMJiBwYXNzZWRNYW5pZmVzdFUKICAgICAgICAgICAgIC8vIFJlc3RhcnQgdGhlIGN1cnJl
bnQgbmF2aWdhdGlvbiBmcm9tIHRoZSB0b3Agb2YgdGhlIG5hdmlnYXRpb24gYWxnb3JpdGhtLCB1
bmRvaW5nIGFueSBjaGFuZ2VzIHRoYXQgd2VyZSBtYWRlCiAgICAgICAgICAgICAvLyBhcyBwYXJ0
IG9mIHRoZSBpbml0aWFsIGxvYWQuCiAgICAgICAgICAgICAvLyBUaGUgbmF2aWdhdGlvbiB3aWxs
IG5vdCByZXN1bHQgaW4gdGhlIHNhbWUgcmVzb3VyY2UgYmVpbmcgbG9hZGVkLCBiZWNhdXNlICJm
b3JlaWduIiBlbnRyaWVzIGFyZSBuZXZlciBwaWNrZWQgZHVyaW5nIG5hdmlnYXRpb24uCi0gICAg
ICAgICAgICBmcmFtZS0+bmF2aWdhdGlvblNjaGVkdWxlcigpLnNjaGVkdWxlTG9jYXRpb25DaGFu
Z2UoZnJhbWUtPmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCksIGRvY3VtZW50TG9hZGVyLT51
cmwoKSwgZnJhbWUtPmxvYWRlcigpLnJlZmVycmVyKCkpOworICAgICAgICAgICAgZnJhbWUtPm5h
dmlnYXRpb25TY2hlZHVsZXIoKS5zY2hlZHVsZUxvY2F0aW9uQ2hhbmdlKGZyYW1lLT5kb2N1bWVu
dCgpLCBmcmFtZS0+ZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKSwgZG9jdW1lbnRMb2FkZXIt
PnVybCgpLCBmcmFtZS0+bG9hZGVyKCkucmVmZXJyZXIoKSk7CiAgICAgICAgIH0KICAgICAgICAg
CiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGV4
dE1lbnVDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGV4dE1lbnVDb250
cm9sbGVyLmNwcAppbmRleCAzODkyZDY0Li5kMjRmYjMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0NvbnRleHRNZW51Q29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9Db250ZXh0TWVudUNvbnRyb2xsZXIuY3BwCkBAIC0xOTAsMTMgKzE5MCwxMyBAQCB2b2lk
IENvbnRleHRNZW51Q29udHJvbGxlcjo6c2hvd0NvbnRleHRNZW51KEV2ZW50KiBldmVudCkKICAg
ICBldmVudC0+c2V0RGVmYXVsdEhhbmRsZWQoKTsKIH0KIAotc3RhdGljIHZvaWQgb3Blbk5ld1dp
bmRvdyhjb25zdCBVUkwmIHVybFRvTG9hZCwgRnJhbWUqIGZyYW1lKQorc3RhdGljIHZvaWQgb3Bl
bk5ld1dpbmRvdyhjb25zdCBVUkwmIHVybFRvTG9hZCwgRnJhbWUqIGZyYW1lLCBTaG91bGRPcGVu
RXh0ZXJuYWxVUkxzUG9saWN5IHNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kpCiB7CiAgICAg
UGFnZSogb2xkUGFnZSA9IGZyYW1lLT5wYWdlKCk7CiAgICAgaWYgKCFvbGRQYWdlKQogICAgICAg
ICByZXR1cm47Ci0gICAgCi0gICAgRnJhbWVMb2FkUmVxdWVzdCByZXF1ZXN0KGZyYW1lLT5kb2N1
bWVudCgpLT5zZWN1cml0eU9yaWdpbigpLCBSZXNvdXJjZVJlcXVlc3QodXJsVG9Mb2FkLCBmcmFt
ZS0+bG9hZGVyKCkub3V0Z29pbmdSZWZlcnJlcigpKSwgTG9ja0hpc3Rvcnk6Ok5vLCBMb2NrQmFj
a0ZvcndhcmRMaXN0OjpObywgTWF5YmVTZW5kUmVmZXJyZXIsIEFsbG93TmF2aWdhdGlvblRvSW52
YWxpZFVSTDo6WWVzLCBOZXdGcmFtZU9wZW5lclBvbGljeTo6U3VwcHJlc3MpOworCisgICAgRnJh
bWVMb2FkUmVxdWVzdCByZXF1ZXN0KGZyYW1lLT5kb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigp
LCBSZXNvdXJjZVJlcXVlc3QodXJsVG9Mb2FkLCBmcmFtZS0+bG9hZGVyKCkub3V0Z29pbmdSZWZl
cnJlcigpKSwgTG9ja0hpc3Rvcnk6Ok5vLCBMb2NrQmFja0ZvcndhcmRMaXN0OjpObywgTWF5YmVT
ZW5kUmVmZXJyZXIsIEFsbG93TmF2aWdhdGlvblRvSW52YWxpZFVSTDo6WWVzLCBOZXdGcmFtZU9w
ZW5lclBvbGljeTo6U3VwcHJlc3MsIHNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kpOwogCiAg
ICAgUGFnZSogbmV3UGFnZSA9IG9sZFBhZ2UtPmNocm9tZSgpLmNyZWF0ZVdpbmRvdyhmcmFtZSwg
cmVxdWVzdCwgV2luZG93RmVhdHVyZXMoKSwgTmF2aWdhdGlvbkFjdGlvbihyZXF1ZXN0LnJlc291
cmNlUmVxdWVzdCgpKSk7CiAgICAgaWYgKCFuZXdQYWdlKQpAQCAtMjM4LDcgKzIzOCw3IEBAIHZv
aWQgQ29udGV4dE1lbnVDb250cm9sbGVyOjpjb250ZXh0TWVudUl0ZW1TZWxlY3RlZChDb250ZXh0
TWVudUl0ZW0qIGl0ZW0pCiAKICAgICBzd2l0Y2ggKGl0ZW0tPmFjdGlvbigpKSB7CiAgICAgY2Fz
ZSBDb250ZXh0TWVudUl0ZW1UYWdPcGVuTGlua0luTmV3V2luZG93OgotICAgICAgICBvcGVuTmV3
V2luZG93KG1fY29udGV4dC5oaXRUZXN0UmVzdWx0KCkuYWJzb2x1dGVMaW5rVVJMKCksIGZyYW1l
KTsKKyAgICAgICAgb3Blbk5ld1dpbmRvdyhtX2NvbnRleHQuaGl0VGVzdFJlc3VsdCgpLmFic29s
dXRlTGlua1VSTCgpLCBmcmFtZSwgU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeTo6U2hvdWxk
QWxsb3cpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ0Rvd25s
b2FkTGlua1RvRGlzazoKICAgICAgICAgLy8gRklYTUU6IFNvbWUgZGF5IHdlIHNob3VsZCBiZSBh
YmxlIHRvIGRvIHRoaXMgZnJvbSB3aXRoaW4gV2ViQ29yZS4gKEJ1ZyAxMTc3MDkpCkBAIC0yNDgs
NyArMjQ4LDcgQEAgdm9pZCBDb250ZXh0TWVudUNvbnRyb2xsZXI6OmNvbnRleHRNZW51SXRlbVNl
bGVjdGVkKENvbnRleHRNZW51SXRlbSogaXRlbSkKICAgICAgICAgZnJhbWUtPmVkaXRvcigpLmNv
cHlVUkwobV9jb250ZXh0LmhpdFRlc3RSZXN1bHQoKS5hYnNvbHV0ZUxpbmtVUkwoKSwgbV9jb250
ZXh0LmhpdFRlc3RSZXN1bHQoKS50ZXh0Q29udGVudCgpKTsKICAgICAgICAgYnJlYWs7CiAgICAg
Y2FzZSBDb250ZXh0TWVudUl0ZW1UYWdPcGVuSW1hZ2VJbk5ld1dpbmRvdzoKLSAgICAgICAgb3Bl
bk5ld1dpbmRvdyhtX2NvbnRleHQuaGl0VGVzdFJlc3VsdCgpLmFic29sdXRlSW1hZ2VVUkwoKSwg
ZnJhbWUpOworICAgICAgICBvcGVuTmV3V2luZG93KG1fY29udGV4dC5oaXRUZXN0UmVzdWx0KCku
YWJzb2x1dGVJbWFnZVVSTCgpLCBmcmFtZSwgU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeTo6
U2hvdWxkTm90QWxsb3cpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIENvbnRleHRNZW51SXRl
bVRhZ0Rvd25sb2FkSW1hZ2VUb0Rpc2s6CiAgICAgICAgIC8vIEZJWE1FOiBTb21lIGRheSB3ZSBz
aG91bGQgYmUgYWJsZSB0byBkbyB0aGlzIGZyb20gd2l0aGluIFdlYkNvcmUuIChCdWcgMTE3NzA5
KQpAQCAtMjY1LDcgKzI2NSw3IEBAIHZvaWQgQ29udGV4dE1lbnVDb250cm9sbGVyOjpjb250ZXh0
TWVudUl0ZW1TZWxlY3RlZChDb250ZXh0TWVudUl0ZW0qIGl0ZW0pCiAgICAgICAgIGJyZWFrOwog
I2VuZGlmCiAgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdPcGVuTWVkaWFJbk5ld1dpbmRvdzoK
LSAgICAgICAgb3Blbk5ld1dpbmRvdyhtX2NvbnRleHQuaGl0VGVzdFJlc3VsdCgpLmFic29sdXRl
TWVkaWFVUkwoKSwgZnJhbWUpOworICAgICAgICBvcGVuTmV3V2luZG93KG1fY29udGV4dC5oaXRU
ZXN0UmVzdWx0KCkuYWJzb2x1dGVNZWRpYVVSTCgpLCBmcmFtZSwgU2hvdWxkT3BlbkV4dGVybmFs
VVJMc1BvbGljeTo6U2hvdWxkTm90QWxsb3cpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIENv
bnRleHRNZW51SXRlbVRhZ0Rvd25sb2FkTWVkaWFUb0Rpc2s6CiAgICAgICAgIC8vIEZJWE1FOiBT
b21lIGRheSB3ZSBzaG91bGQgYmUgYWJsZSB0byBkbyB0aGlzIGZyb20gd2l0aGluIFdlYkNvcmUu
IChCdWcgMTE3NzA5KQpAQCAtMjk1LDkgKzI5NSw5IEBAIHZvaWQgQ29udGV4dE1lbnVDb250cm9s
bGVyOjpjb250ZXh0TWVudUl0ZW1TZWxlY3RlZChDb250ZXh0TWVudUl0ZW0qIGl0ZW0pCiAgICAg
Y2FzZSBDb250ZXh0TWVudUl0ZW1UYWdPcGVuRnJhbWVJbk5ld1dpbmRvdzogewogICAgICAgICBE
b2N1bWVudExvYWRlciogbG9hZGVyID0gZnJhbWUtPmxvYWRlcigpLmRvY3VtZW50TG9hZGVyKCk7
CiAgICAgICAgIGlmICghbG9hZGVyLT51bnJlYWNoYWJsZVVSTCgpLmlzRW1wdHkoKSkKLSAgICAg
ICAgICAgIG9wZW5OZXdXaW5kb3cobG9hZGVyLT51bnJlYWNoYWJsZVVSTCgpLCBmcmFtZSk7Cisg
ICAgICAgICAgICBvcGVuTmV3V2luZG93KGxvYWRlci0+dW5yZWFjaGFibGVVUkwoKSwgZnJhbWUs
IFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3k6OlNob3VsZE5vdEFsbG93KTsKICAgICAgICAg
ZWxzZQotICAgICAgICAgICAgb3Blbk5ld1dpbmRvdyhsb2FkZXItPnVybCgpLCBmcmFtZSk7Cisg
ICAgICAgICAgICBvcGVuTmV3V2luZG93KGxvYWRlci0+dXJsKCksIGZyYW1lLCBTaG91bGRPcGVu
RXh0ZXJuYWxVUkxzUG9saWN5OjpTaG91bGROb3RBbGxvdyk7CiAgICAgICAgIGJyZWFrOwogICAg
IH0KICAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ0NvcHk6CkBAIC00MDEsMTIgKzQwMSwxMiBA
QCB2b2lkIENvbnRleHRNZW51Q29udHJvbGxlcjo6Y29udGV4dE1lbnVJdGVtU2VsZWN0ZWQoQ29u
dGV4dE1lbnVJdGVtKiBpdGVtKQogICAgICAgICBicmVhazsKICAgICBjYXNlIENvbnRleHRNZW51
SXRlbVRhZ09wZW5MaW5rOgogICAgICAgICBpZiAoRnJhbWUqIHRhcmdldEZyYW1lID0gbV9jb250
ZXh0LmhpdFRlc3RSZXN1bHQoKS50YXJnZXRGcmFtZSgpKQotICAgICAgICAgICAgdGFyZ2V0RnJh
bWUtPmxvYWRlcigpLmxvYWRGcmFtZVJlcXVlc3QoRnJhbWVMb2FkUmVxdWVzdChmcmFtZS0+ZG9j
dW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKSwgUmVzb3VyY2VSZXF1ZXN0KG1fY29udGV4dC5oaXRU
ZXN0UmVzdWx0KCkuYWJzb2x1dGVMaW5rVVJMKCksIGZyYW1lLT5sb2FkZXIoKS5vdXRnb2luZ1Jl
ZmVycmVyKCkpLCBMb2NrSGlzdG9yeTo6Tm8sIExvY2tCYWNrRm9yd2FyZExpc3Q6Ok5vLCBNYXli
ZVNlbmRSZWZlcnJlciwgQWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJMOjpZZXMsIE5ld0ZyYW1l
T3BlbmVyUG9saWN5OjpTdXBwcmVzcyksIG51bGxwdHIsIG51bGxwdHIpOworICAgICAgICAgICAg
dGFyZ2V0RnJhbWUtPmxvYWRlcigpLmxvYWRGcmFtZVJlcXVlc3QoRnJhbWVMb2FkUmVxdWVzdChm
cmFtZS0+ZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKSwgUmVzb3VyY2VSZXF1ZXN0KG1fY29u
dGV4dC5oaXRUZXN0UmVzdWx0KCkuYWJzb2x1dGVMaW5rVVJMKCksIGZyYW1lLT5sb2FkZXIoKS5v
dXRnb2luZ1JlZmVycmVyKCkpLCBMb2NrSGlzdG9yeTo6Tm8sIExvY2tCYWNrRm9yd2FyZExpc3Q6
Ok5vLCBNYXliZVNlbmRSZWZlcnJlciwgQWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJMOjpZZXMs
IE5ld0ZyYW1lT3BlbmVyUG9saWN5OjpTdXBwcmVzcywgdGFyZ2V0RnJhbWUtPmlzTWFpbkZyYW1l
KCkgPyBTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5OjpTaG91bGRBbGxvdyA6IFNob3VsZE9w
ZW5FeHRlcm5hbFVSTHNQb2xpY3k6OlNob3VsZE5vdEFsbG93KSwgbnVsbHB0ciwgbnVsbHB0cik7
CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIG9wZW5OZXdXaW5kb3cobV9jb250ZXh0LmhpdFRl
c3RSZXN1bHQoKS5hYnNvbHV0ZUxpbmtVUkwoKSwgZnJhbWUpOworICAgICAgICAgICAgb3Blbk5l
d1dpbmRvdyhtX2NvbnRleHQuaGl0VGVzdFJlc3VsdCgpLmFic29sdXRlTGlua1VSTCgpLCBmcmFt
ZSwgU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeTo6U2hvdWxkQWxsb3cpOwogICAgICAgICBi
cmVhazsKICAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ09wZW5MaW5rSW5UaGlzV2luZG93Ogot
ICAgICAgICBmcmFtZS0+bG9hZGVyKCkubG9hZEZyYW1lUmVxdWVzdChGcmFtZUxvYWRSZXF1ZXN0
KGZyYW1lLT5kb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpLCBSZXNvdXJjZVJlcXVlc3QobV9j
b250ZXh0LmhpdFRlc3RSZXN1bHQoKS5hYnNvbHV0ZUxpbmtVUkwoKSwgZnJhbWUtPmxvYWRlcigp
Lm91dGdvaW5nUmVmZXJyZXIoKSksIExvY2tIaXN0b3J5OjpObywgTG9ja0JhY2tGb3J3YXJkTGlz
dDo6Tm8sIE1heWJlU2VuZFJlZmVycmVyLCBBbGxvd05hdmlnYXRpb25Ub0ludmFsaWRVUkw6Olll
cywgTmV3RnJhbWVPcGVuZXJQb2xpY3k6OlN1cHByZXNzKSwgbnVsbHB0ciwgbnVsbHB0cik7Cisg
ICAgICAgIGZyYW1lLT5sb2FkZXIoKS5sb2FkRnJhbWVSZXF1ZXN0KEZyYW1lTG9hZFJlcXVlc3Qo
ZnJhbWUtPmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCksIFJlc291cmNlUmVxdWVzdChtX2Nv
bnRleHQuaGl0VGVzdFJlc3VsdCgpLmFic29sdXRlTGlua1VSTCgpLCBmcmFtZS0+bG9hZGVyKCku
b3V0Z29pbmdSZWZlcnJlcigpKSwgTG9ja0hpc3Rvcnk6Ok5vLCBMb2NrQmFja0ZvcndhcmRMaXN0
OjpObywgTWF5YmVTZW5kUmVmZXJyZXIsIEFsbG93TmF2aWdhdGlvblRvSW52YWxpZFVSTDo6WWVz
LCBOZXdGcmFtZU9wZW5lclBvbGljeTo6U3VwcHJlc3MsIFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQ
b2xpY3k6OlNob3VsZEFsbG93KSwgbnVsbHB0ciwgbnVsbHB0cik7CiAgICAgICAgIGJyZWFrOwog
ICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnQm9sZDoKICAgICAgICAgZnJhbWUtPmVkaXRvcigp
LmNvbW1hbmQoIlRvZ2dsZUJvbGQiKS5leGVjdXRlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0RPTVdpbmRvdy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5j
cHAKaW5kZXggYjJhN2Q3Yy4uMzYzOWQ2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9ET01XaW5kb3cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcApA
QCAtMTk5Miw3ICsxOTkyLDcgQEAgdm9pZCBET01XaW5kb3c6OnNldExvY2F0aW9uKGNvbnN0IFN0
cmluZyYgdXJsU3RyaW5nLCBET01XaW5kb3cmIGFjdGl2ZVdpbmRvdywgRE8KICAgICAvLyBXZSB3
YW50IGEgbmV3IGhpc3RvcnkgaXRlbSBpZiB3ZSBhcmUgcHJvY2Vzc2luZyBhIHVzZXIgZ2VzdHVy
ZS4KICAgICBMb2NrSGlzdG9yeSBsb2NrSGlzdG9yeSA9IChsb2NraW5nICE9IExvY2tIaXN0b3J5
QmFzZWRPbkdlc3R1cmVTdGF0ZSB8fCAhU2NyaXB0Q29udHJvbGxlcjo6cHJvY2Vzc2luZ1VzZXJH
ZXN0dXJlKCkpID8gTG9ja0hpc3Rvcnk6OlllcyA6IExvY2tIaXN0b3J5OjpObzsKICAgICBMb2Nr
QmFja0ZvcndhcmRMaXN0IGxvY2tCYWNrRm9yd2FyZExpc3QgPSAobG9ja2luZyAhPSBMb2NrSGlz
dG9yeUJhc2VkT25HZXN0dXJlU3RhdGUpID8gTG9ja0JhY2tGb3J3YXJkTGlzdDo6WWVzIDogTG9j
a0JhY2tGb3J3YXJkTGlzdDo6Tm87Ci0gICAgbV9mcmFtZS0+bmF2aWdhdGlvblNjaGVkdWxlcigp
LnNjaGVkdWxlTG9jYXRpb25DaGFuZ2UoYWN0aXZlRG9jdW1lbnQtPnNlY3VyaXR5T3JpZ2luKCks
CisgICAgbV9mcmFtZS0+bmF2aWdhdGlvblNjaGVkdWxlcigpLnNjaGVkdWxlTG9jYXRpb25DaGFu
Z2UoYWN0aXZlRG9jdW1lbnQsIGFjdGl2ZURvY3VtZW50LT5zZWN1cml0eU9yaWdpbigpLAogICAg
ICAgICAvLyBGSVhNRTogV2hhdCBpZiBhY3RpdmVEb2N1bWVudCgpLT5mcmFtZSgpIGlzIDA/CiAg
ICAgICAgIGNvbXBsZXRlZFVSTCwgYWN0aXZlRG9jdW1lbnQtPmZyYW1lKCktPmxvYWRlcigpLm91
dGdvaW5nUmVmZXJyZXIoKSwKICAgICAgICAgbG9ja0hpc3RvcnksIGxvY2tCYWNrRm9yd2FyZExp
c3QpOwpAQCAtMjA3OCw2ICsyMDc4LDEwIEBAIFJlZlB0cjxGcmFtZT4gRE9NV2luZG93OjpjcmVh
dGVXaW5kb3coY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcsIGNvbnN0IEF0b21pY1N0cmluCiAgICAg
aWYgKCFhY3RpdmVGcmFtZSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKKyAgICBEb2N1bWVu
dCogYWN0aXZlRG9jdW1lbnQgPSBhY3RpdmVXaW5kb3cuZG9jdW1lbnQoKTsKKyAgICBpZiAoIWFj
dGl2ZURvY3VtZW50KQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKwogICAgIFVSTCBjb21wbGV0
ZWRVUkwgPSB1cmxTdHJpbmcuaXNFbXB0eSgpID8gVVJMKFBhcnNlZFVSTFN0cmluZywgZW1wdHlT
dHJpbmcoKSkgOiBmaXJzdEZyYW1lLmRvY3VtZW50KCktPmNvbXBsZXRlVVJMKHVybFN0cmluZyk7
CiAgICAgaWYgKCFjb21wbGV0ZWRVUkwuaXNFbXB0eSgpICYmICFjb21wbGV0ZWRVUkwuaXNWYWxp
ZCgpKSB7CiAgICAgICAgIC8vIERvbid0IGV4cG9zZSBjbGllbnQgY29kZSB0byBpbnZhbGlkIFVS
THMuCkBAIC0yMDkwLDcgKzIwOTQsNyBAQCBSZWZQdHI8RnJhbWU+IERPTVdpbmRvdzo6Y3JlYXRl
V2luZG93KGNvbnN0IFN0cmluZyYgdXJsU3RyaW5nLCBjb25zdCBBdG9taWNTdHJpbgogCiAgICAg
UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QoY29tcGxldGVkVVJMLCByZWZlcnJlcik7CiAgICAgRnJh
bWVMb2FkZXI6OmFkZEhUVFBPcmlnaW5JZk5lZWRlZChyZXF1ZXN0LCBmaXJzdEZyYW1lLmxvYWRl
cigpLm91dGdvaW5nT3JpZ2luKCkpOwotICAgIEZyYW1lTG9hZFJlcXVlc3QgZnJhbWVSZXF1ZXN0
KGFjdGl2ZVdpbmRvdy5kb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpLCByZXF1ZXN0LCBmcmFt
ZU5hbWUsIExvY2tIaXN0b3J5OjpObywgTG9ja0JhY2tGb3J3YXJkTGlzdDo6Tm8sIE1heWJlU2Vu
ZFJlZmVycmVyLCBBbGxvd05hdmlnYXRpb25Ub0ludmFsaWRVUkw6OlllcywgTmV3RnJhbWVPcGVu
ZXJQb2xpY3k6OkFsbG93LCBSZXBsYWNlRG9jdW1lbnRJZkphdmFTY3JpcHRVUkwpOworICAgIEZy
YW1lTG9hZFJlcXVlc3QgZnJhbWVSZXF1ZXN0KGFjdGl2ZURvY3VtZW50LT5zZWN1cml0eU9yaWdp
bigpLCByZXF1ZXN0LCBmcmFtZU5hbWUsIExvY2tIaXN0b3J5OjpObywgTG9ja0JhY2tGb3J3YXJk
TGlzdDo6Tm8sIE1heWJlU2VuZFJlZmVycmVyLCBBbGxvd05hdmlnYXRpb25Ub0ludmFsaWRVUkw6
OlllcywgTmV3RnJhbWVPcGVuZXJQb2xpY3k6OkFsbG93LCBSZXBsYWNlRG9jdW1lbnRJZkphdmFT
Y3JpcHRVUkwsIGFjdGl2ZURvY3VtZW50LT5zaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5VG9Q
cm9wYWdhdGUoKSk7CiAKICAgICAvLyBXZSBwYXNzIHRoZSBvcGVuZXIgZnJhbWUgZm9yIHRoZSBs
b29rdXBGcmFtZSBpbiBjYXNlIHRoZSBhY3RpdmUgZnJhbWUgaXMgZGlmZmVyZW50IGZyb20KICAg
ICAvLyB0aGUgb3BlbmVyIGZyYW1lLCBhbmQgdGhlIG5hbWUgcmVmZXJlbmNlcyBhIGZyYW1lIHJl
bGF0aXZlIHRvIHRoZSBvcGVuZXIgZnJhbWUuCkBAIC0yMTEwLDExICsyMTE0LDExIEBAIFJlZlB0
cjxGcmFtZT4gRE9NV2luZG93OjpjcmVhdGVXaW5kb3coY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcs
IGNvbnN0IEF0b21pY1N0cmluCiAKICAgICBpZiAoY3JlYXRlZCkgewogICAgICAgICBSZXNvdXJj
ZVJlcXVlc3QgcmVzb3VyY2VSZXF1ZXN0KGNvbXBsZXRlZFVSTCwgcmVmZXJyZXIsIFVzZVByb3Rv
Y29sQ2FjaGVQb2xpY3kpOwotICAgICAgICBGcmFtZUxvYWRSZXF1ZXN0IGZyYW1lUmVxdWVzdChh
Y3RpdmVXaW5kb3cuZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKSwgcmVzb3VyY2VSZXF1ZXN0
LCBMb2NrSGlzdG9yeTo6Tm8sIExvY2tCYWNrRm9yd2FyZExpc3Q6Ok5vLCBNYXliZVNlbmRSZWZl
cnJlciwgQWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJMOjpZZXMsIE5ld0ZyYW1lT3BlbmVyUG9s
aWN5OjpBbGxvdyk7CisgICAgICAgIEZyYW1lTG9hZFJlcXVlc3QgZnJhbWVSZXF1ZXN0KGFjdGl2
ZVdpbmRvdy5kb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpLCByZXNvdXJjZVJlcXVlc3QsIExv
Y2tIaXN0b3J5OjpObywgTG9ja0JhY2tGb3J3YXJkTGlzdDo6Tm8sIE1heWJlU2VuZFJlZmVycmVy
LCBBbGxvd05hdmlnYXRpb25Ub0ludmFsaWRVUkw6OlllcywgTmV3RnJhbWVPcGVuZXJQb2xpY3k6
OkFsbG93LCBhY3RpdmVEb2N1bWVudC0+c2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeVRvUHJv
cGFnYXRlKCkpOwogICAgICAgICBuZXdGcmFtZS0+bG9hZGVyKCkuY2hhbmdlTG9jYXRpb24oZnJh
bWVSZXF1ZXN0KTsKICAgICB9IGVsc2UgaWYgKCF1cmxTdHJpbmcuaXNFbXB0eSgpKSB7CiAgICAg
ICAgIExvY2tIaXN0b3J5IGxvY2tIaXN0b3J5ID0gU2NyaXB0Q29udHJvbGxlcjo6cHJvY2Vzc2lu
Z1VzZXJHZXN0dXJlKCkgPyBMb2NrSGlzdG9yeTo6Tm8gOiBMb2NrSGlzdG9yeTo6WWVzOwotICAg
ICAgICBuZXdGcmFtZS0+bmF2aWdhdGlvblNjaGVkdWxlcigpLnNjaGVkdWxlTG9jYXRpb25DaGFu
Z2UoYWN0aXZlV2luZG93LmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCksIGNvbXBsZXRlZFVS
TCwgcmVmZXJyZXIsIGxvY2tIaXN0b3J5LCBMb2NrQmFja0ZvcndhcmRMaXN0OjpObyk7CisgICAg
ICAgIG5ld0ZyYW1lLT5uYXZpZ2F0aW9uU2NoZWR1bGVyKCkuc2NoZWR1bGVMb2NhdGlvbkNoYW5n
ZShhY3RpdmVXaW5kb3cuZG9jdW1lbnQoKSwgYWN0aXZlV2luZG93LmRvY3VtZW50KCktPnNlY3Vy
aXR5T3JpZ2luKCksIGNvbXBsZXRlZFVSTCwgcmVmZXJyZXIsIGxvY2tIaXN0b3J5LCBMb2NrQmFj
a0ZvcndhcmRMaXN0OjpObyk7CiAgICAgfQogCiAgICAgLy8gTmF2aWdhdGluZyB0aGUgbmV3IGZy
YW1lIGNvdWxkIHJlc3VsdCBpbiBpdCBiZWluZyBkZXRhY2hlZCBmcm9tIGl0cyBwYWdlIGJ5IGEg
bmF2aWdhdGlvbiBwb2xpY3kgZGVsZWdhdGUuCkBAIC0yMTI5LDkgKzIxMzMsMTEgQEAgUGFzc1Jl
ZlB0cjxET01XaW5kb3c+IERPTVdpbmRvdzo6b3Blbihjb25zdCBTdHJpbmcmIHVybFN0cmluZywg
Y29uc3QgQXRvbWljU3RyaW4KIHsKICAgICBpZiAoIWlzQ3VycmVudGx5RGlzcGxheWVkSW5GcmFt
ZSgpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKKwogICAgIERvY3VtZW50KiBhY3RpdmVEb2N1
bWVudCA9IGFjdGl2ZVdpbmRvdy5kb2N1bWVudCgpOwogICAgIGlmICghYWN0aXZlRG9jdW1lbnQp
CiAgICAgICAgIHJldHVybiBudWxscHRyOworCiAgICAgRnJhbWUqIGZpcnN0RnJhbWUgPSBmaXJz
dFdpbmRvdy5mcmFtZSgpOwogICAgIGlmICghZmlyc3RGcmFtZSkKICAgICAgICAgcmV0dXJuIG51
bGxwdHI7CkBAIC0yMTgzLDcgKzIxODksNyBAQCBQYXNzUmVmUHRyPERPTVdpbmRvdz4gRE9NV2lu
ZG93OjpvcGVuKGNvbnN0IFN0cmluZyYgdXJsU3RyaW5nLCBjb25zdCBBdG9taWNTdHJpbgogICAg
ICAgICAvLyBGb3Igd2hhdGV2ZXIgcmVhc29uLCBGaXJlZm94IHVzZXMgdGhlIGZpcnN0IHdpbmRv
dyByYXRoZXIgdGhhbiB0aGUgYWN0aXZlIHdpbmRvdyB0bwogICAgICAgICAvLyBkZXRlcm1pbmUg
dGhlIG91dGdvaW5nIHJlZmVycmVyLiBXZSByZXBsaWNhdGUgdGhhdCBiZWhhdmlvciBoZXJlLgog
ICAgICAgICBMb2NrSGlzdG9yeSBsb2NrSGlzdG9yeSA9IFNjcmlwdENvbnRyb2xsZXI6OnByb2Nl
c3NpbmdVc2VyR2VzdHVyZSgpID8gTG9ja0hpc3Rvcnk6Ok5vIDogTG9ja0hpc3Rvcnk6OlllczsK
LSAgICAgICAgdGFyZ2V0RnJhbWUtPm5hdmlnYXRpb25TY2hlZHVsZXIoKS5zY2hlZHVsZUxvY2F0
aW9uQ2hhbmdlKGFjdGl2ZURvY3VtZW50LT5zZWN1cml0eU9yaWdpbigpLCBjb21wbGV0ZWRVUkws
IGZpcnN0RnJhbWUtPmxvYWRlcigpLm91dGdvaW5nUmVmZXJyZXIoKSwKKyAgICAgICAgdGFyZ2V0
RnJhbWUtPm5hdmlnYXRpb25TY2hlZHVsZXIoKS5zY2hlZHVsZUxvY2F0aW9uQ2hhbmdlKGFjdGl2
ZURvY3VtZW50LCBhY3RpdmVEb2N1bWVudC0+c2VjdXJpdHlPcmlnaW4oKSwgY29tcGxldGVkVVJM
LCBmaXJzdEZyYW1lLT5sb2FkZXIoKS5vdXRnb2luZ1JlZmVycmVyKCksCiAgICAgICAgICAgICBs
b2NrSGlzdG9yeSwgTG9ja0JhY2tGb3J3YXJkTGlzdDo6Tm8pOwogICAgICAgICByZXR1cm4gdGFy
Z2V0RnJhbWUtPmRvY3VtZW50KCktPmRvbVdpbmRvdygpOwogICAgIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9EcmFnQ29udHJvbGxlci5jcHAKaW5kZXggMjgzZDIzYS4uMWUzZjQzYyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9EcmFnQ29udHJvbGxlci5jcHAKQEAgLTIxNiw2ICsyMTYsMTEgQEAgRHJhZ09wZXJh
dGlvbiBEcmFnQ29udHJvbGxlcjo6ZHJhZ1VwZGF0ZWQoRHJhZ0RhdGEmIGRyYWdEYXRhKQogYm9v
bCBEcmFnQ29udHJvbGxlcjo6cGVyZm9ybURyYWdPcGVyYXRpb24oRHJhZ0RhdGEmIGRyYWdEYXRh
KQogewogICAgIG1fZG9jdW1lbnRVbmRlck1vdXNlID0gbV9wYWdlLm1haW5GcmFtZSgpLmRvY3Vt
ZW50QXRQb2ludChkcmFnRGF0YS5jbGllbnRQb3NpdGlvbigpKTsKKworICAgIFNob3VsZE9wZW5F
eHRlcm5hbFVSTHNQb2xpY3kgc2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSA9IFNob3VsZE9w
ZW5FeHRlcm5hbFVSTHNQb2xpY3k6OlNob3VsZE5vdEFsbG93OworICAgIGlmIChtX2RvY3VtZW50
VW5kZXJNb3VzZSkKKyAgICAgICAgc2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSA9IG1fZG9j
dW1lbnRVbmRlck1vdXNlLT5zaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5VG9Qcm9wYWdhdGUo
KTsKKwogICAgIGlmICgobV9kcmFnRGVzdGluYXRpb25BY3Rpb24gJiBEcmFnRGVzdGluYXRpb25B
Y3Rpb25ESFRNTCkgJiYgbV9kb2N1bWVudElzSGFuZGxpbmdEcmFnKSB7CiAgICAgICAgIG1fY2xp
ZW50LndpbGxQZXJmb3JtRHJhZ0Rlc3RpbmF0aW9uQWN0aW9uKERyYWdEZXN0aW5hdGlvbkFjdGlv
bkRIVE1MLCBkcmFnRGF0YSk7CiAgICAgICAgIFJlZjxNYWluRnJhbWU+IG1haW5GcmFtZShtX3Bh
Z2UubWFpbkZyYW1lKCkpOwpAQCAtMjQ1LDcgKzI1MCw3IEBAIGJvb2wgRHJhZ0NvbnRyb2xsZXI6
OnBlcmZvcm1EcmFnT3BlcmF0aW9uKERyYWdEYXRhJiBkcmFnRGF0YSkKICAgICAgICAgcmV0dXJu
IGZhbHNlOwogCiAgICAgbV9jbGllbnQud2lsbFBlcmZvcm1EcmFnRGVzdGluYXRpb25BY3Rpb24o
RHJhZ0Rlc3RpbmF0aW9uQWN0aW9uTG9hZCwgZHJhZ0RhdGEpOwotICAgIG1fcGFnZS5tYWluRnJh
bWUoKS5sb2FkZXIoKS5sb2FkKEZyYW1lTG9hZFJlcXVlc3QoJm1fcGFnZS5tYWluRnJhbWUoKSwg
UmVzb3VyY2VSZXF1ZXN0KGRyYWdEYXRhLmFzVVJMKCkpKSk7CisgICAgbV9wYWdlLm1haW5GcmFt
ZSgpLmxvYWRlcigpLmxvYWQoRnJhbWVMb2FkUmVxdWVzdCgmbV9wYWdlLm1haW5GcmFtZSgpLCBS
ZXNvdXJjZVJlcXVlc3QoZHJhZ0RhdGEuYXNVUkwoKSksIHNob3VsZE9wZW5FeHRlcm5hbFVSTHNQ
b2xpY3kpKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9Mb2NhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0xvY2F0aW9uLmNwcApp
bmRleCA0NGY1MjIwLi40MzE3ZDgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0xv
Y2F0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0xvY2F0aW9uLmNwcApAQCAtMjU4
LDcgKzI1OCw3IEBAIHZvaWQgTG9jYXRpb246OnJlbG9hZChET01XaW5kb3cmIGFjdGl2ZVdpbmRv
dykKICAgICB9CiAgICAgaWYgKHByb3RvY29sSXNKYXZhU2NyaXB0KG1fZnJhbWUtPmRvY3VtZW50
KCktPnVybCgpKSkKICAgICAgICAgcmV0dXJuOwotICAgIG1fZnJhbWUtPm5hdmlnYXRpb25TY2hl
ZHVsZXIoKS5zY2hlZHVsZVJlZnJlc2goKTsKKyAgICBtX2ZyYW1lLT5uYXZpZ2F0aW9uU2NoZWR1
bGVyKCkuc2NoZWR1bGVSZWZyZXNoKGFjdGl2ZVdpbmRvdy5kb2N1bWVudCgpKTsKIH0KIAogdm9p
ZCBMb2NhdGlvbjo6c2V0TG9jYXRpb24oY29uc3QgU3RyaW5nJiB1cmwsIERPTVdpbmRvdyYgYWN0
aXZlV2luZG93LCBET01XaW5kb3cmIGZpcnN0V2luZG93KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVwbGF5L1JlcGxheUlucHV0RGlzcGF0Y2hNZXRob2RzLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3JlcGxheS9SZXBsYXlJbnB1dERpc3BhdGNoTWV0aG9kcy5jcHAKaW5kZXggNjQ1NGE0OC4u
ODQ3NTJhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVwbGF5L1JlcGxheUlucHV0RGlz
cGF0Y2hNZXRob2RzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZXBsYXkvUmVwbGF5SW5wdXRE
aXNwYXRjaE1ldGhvZHMuY3BwCkBAIC01MCw3ICs1MCw4IEBAIHZvaWQgRW5kU2VnbWVudFNlbnRp
bmVsOjpkaXNwYXRjaChSZXBsYXlDb250cm9sbGVyJikKIC8vIE5hdmlnYXRpb24gaW5wdXRzLgog
dm9pZCBJbml0aWFsTmF2aWdhdGlvbjo6ZGlzcGF0Y2goUmVwbGF5Q29udHJvbGxlciYgY29udHJv
bGxlcikKIHsKLSAgICBjb250cm9sbGVyLnBhZ2UoKS5tYWluRnJhbWUoKS5uYXZpZ2F0aW9uU2No
ZWR1bGVyKCkuc2NoZWR1bGVMb2NhdGlvbkNoYW5nZShtX3NlY3VyaXR5T3JpZ2luLmdldCgpLCBt
X3VybCwgbV9yZWZlcnJlcik7CisgICAgRnJhbWUmIGZyYW1lID0gY29udHJvbGxlci5wYWdlKCku
bWFpbkZyYW1lKCk7CisgICAgZnJhbWUubmF2aWdhdGlvblNjaGVkdWxlcigpLnNjaGVkdWxlTG9j
YXRpb25DaGFuZ2UoZnJhbWUuZG9jdW1lbnQoKSwgbV9zZWN1cml0eU9yaWdpbi5nZXQoKSwgbV91
cmwsIG1fcmVmZXJyZXIpOwogfQogCiB2b2lkIEhhbmRsZUtleVByZXNzOjpkaXNwYXRjaChSZXBs
YXlDb250cm9sbGVyJiBjb250cm9sbGVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0FFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBRWxlbWVudC5jcHAKaW5k
ZXggMWEyODQ2Yi4uZTVjZTUxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FF
bGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQUVsZW1lbnQuY3BwCkBAIC0x
NDUsNyArMTQ1LDcgQEAgdm9pZCBTVkdBRWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVu
dCogZXZlbnQpCiAgICAgICAgICAgICBGcmFtZSogZnJhbWUgPSBkb2N1bWVudCgpLmZyYW1lKCk7
CiAgICAgICAgICAgICBpZiAoIWZyYW1lKQogICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAg
ICAgICAgIGZyYW1lLT5sb2FkZXIoKS51cmxTZWxlY3RlZChkb2N1bWVudCgpLmNvbXBsZXRlVVJM
KHVybCksIHRhcmdldCwgZXZlbnQsIExvY2tIaXN0b3J5OjpObywgTG9ja0JhY2tGb3J3YXJkTGlz
dDo6Tm8sIE1heWJlU2VuZFJlZmVycmVyKTsKKyAgICAgICAgICAgIGZyYW1lLT5sb2FkZXIoKS51
cmxTZWxlY3RlZChkb2N1bWVudCgpLmNvbXBsZXRlVVJMKHVybCksIHRhcmdldCwgZXZlbnQsIExv
Y2tIaXN0b3J5OjpObywgTG9ja0JhY2tGb3J3YXJkTGlzdDo6Tm8sIE1heWJlU2VuZFJlZmVycmVy
LCBkb2N1bWVudCgpLnNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3lUb1Byb3BhZ2F0ZSgpKTsK
ICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvaW9zL1dlYlZpZXcvV2ViUERGVmlld1BsYWNlaG9sZGVyLm1tIGIvU291cmNlL1dl
YktpdC9pb3MvV2ViVmlldy9XZWJQREZWaWV3UGxhY2Vob2xkZXIubW0KaW5kZXggYTgwNTcxMC4u
M2RhNDQyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9pb3MvV2ViVmlldy9XZWJQREZWaWV3
UGxhY2Vob2xkZXIubW0KKysrIGIvU291cmNlL1dlYktpdC9pb3MvV2ViVmlldy9XZWJQREZWaWV3
UGxhY2Vob2xkZXIubW0KQEAgLTQ3NSw3ICs0NzUsNyBAQCBzdGF0aWMgY29uc3QgZmxvYXQgUEFH
RV9IRUlHSFRfSU5TRVQgPSA0LjBmICogMi4wZjsKIAogICAgIC8vIENhbGwgdG8gdGhlIGZyYW1l
IGxvYWRlciBiZWNhdXNlIHRoaXMgaXMgd2hlcmUgb3VyIHNlY3VyaXR5IGNoZWNrcyBhcmUgbWFk
ZS4KICAgICBGcmFtZSogZnJhbWUgPSBjb3JlKFtfZGF0YVNvdXJjZSB3ZWJGcmFtZV0pOwotICAg
IGZyYW1lLT5sb2FkZXIoKS5sb2FkRnJhbWVSZXF1ZXN0KEZyYW1lTG9hZFJlcXVlc3QoZnJhbWUt
PmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCksIFJlc291cmNlUmVxdWVzdChVUkwpLCBMb2Nr
SGlzdG9yeTo6Tm8sIExvY2tCYWNrRm9yd2FyZExpc3Q6Ok5vLCBNYXliZVNlbmRSZWZlcnJlciwg
QWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJMOjpZZXMsIE5ld0ZyYW1lT3BlbmVyUG9saWN5OjpB
bGxvdyksIGV2ZW50LmdldCgpLCBudWxscHRyKTsKKyAgICBmcmFtZS0+bG9hZGVyKCkubG9hZEZy
YW1lUmVxdWVzdChGcmFtZUxvYWRSZXF1ZXN0KGZyYW1lLT5kb2N1bWVudCgpLT5zZWN1cml0eU9y
aWdpbigpLCBSZXNvdXJjZVJlcXVlc3QoVVJMKSwgTG9ja0hpc3Rvcnk6Ok5vLCBMb2NrQmFja0Zv
cndhcmRMaXN0OjpObywgTWF5YmVTZW5kUmVmZXJyZXIsIEFsbG93TmF2aWdhdGlvblRvSW52YWxp
ZFVSTDo6WWVzLCBOZXdGcmFtZU9wZW5lclBvbGljeTo6QWxsb3csIFNob3VsZE9wZW5FeHRlcm5h
bFVSTHNQb2xpY3k6OlNob3VsZE5vdEFsbG93KSwgZXZlbnQuZ2V0KCksIG51bGxwdHIpOwogfQog
CiBAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggMDMxNzMwMC4uZmU0Y2YyOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDE1LTA2LTAxICBCcmFkeSBFaWRzb24gIDxiZWlkc29u
QGFwcGxlLmNvbT4KKworICAgICAgICBXZWJLaXQgcG9saWN5IGRlbGVnYXRlIHNob3VsZCBzdWdn
ZXN0IGlmIGEgbmF2aWdhdGlvbiBzaG91bGQgYmUgYWxsb3dlZCB0byBvcGVuIFVSTHMgZXh0ZXJu
YWxseS4KKyAgICAgICAgcmRhcjovL3Byb2JsZW0vMjEwMjUzMDEgYW5kIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDUyODAKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFBsdWdpbnMvV2ViUGx1Z2luQ29udHJvbGxlci5t
bToKKyAgICAgICAgKC1bV2ViUGx1Z2luQ29udHJvbGxlciB3ZWJQbHVnSW5Db250YWluZXJMb2Fk
UmVxdWVzdDppbkZyYW1lOl0pOgorICAgICAgICAKKyAgICAgICAgKiBXZWJWaWV3L1dlYkZyYW1l
Lm1tOgorICAgICAgICAoLVtXZWJGcmFtZSBsb2FkUmVxdWVzdDpdKToKKyAgICAgICAgKC1bV2Vi
RnJhbWUgX2xvYWREYXRhOk1JTUVUeXBlOnRleHRFbmNvZGluZ05hbWU6YmFzZVVSTDp1bnJlYWNo
YWJsZVVSTDpdKToKKyAgICAgICAgCisgICAgICAgICogV2ViVmlldy9XZWJQREZWaWV3Lm1tOgor
ICAgICAgICAoLVtXZWJQREZWaWV3IFBERlZpZXdXaWxsQ2xpY2tPbkxpbms6d2l0aFVSTDpdKToK
KwogMjAxNS0wNS0yOSAgQW5kZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUuY29tPgogCiAg
ICAgICAgIE1ha2UgdGhlIGhlYWRlciByZXBsYWNlIHJ1bGUgbW9yZSByZXN0cmljdGl2ZSBhbmQg
Z2V0IHJpZCBvZiBhIHNwZWNpYWwgY2FzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMv
UGx1Z2lucy9XZWJQbHVnaW5Db250cm9sbGVyLm1tIGIvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lu
cy9XZWJQbHVnaW5Db250cm9sbGVyLm1tCmluZGV4IDhkYjAyZjcuLjc3ZTlhOGYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvV2ViUGx1Z2luQ29udHJvbGxlci5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL1dlYlBsdWdpbkNvbnRyb2xsZXIubW0KQEAgLTUx
Niw3ICs1MTYsNyBAQCBzdGF0aWMgdm9pZCBjYW5jZWxPdXRzdGFuZGluZ0NoZWNrKGNvbnN0IHZv
aWQgKml0ZW0sIHZvaWQgKmNvbnRleHQpCiAgICAgICAgICAgICBMT0dfRVJST1IoImNvdWxkIG5v
dCBsb2FkIFVSTCAlQCIsIFtyZXF1ZXN0IFVSTF0pOwogICAgICAgICAgICAgcmV0dXJuOwogICAg
ICAgICB9Ci0gICAgICAgIEZyYW1lTG9hZFJlcXVlc3QgZnJhbWVSZXF1ZXN0KGNvcmUoZnJhbWUp
LCByZXF1ZXN0KTsKKyAgICAgICAgRnJhbWVMb2FkUmVxdWVzdCBmcmFtZVJlcXVlc3QoY29yZShm
cmFtZSksIHJlcXVlc3QsIFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3k6OlNob3VsZE5vdEFs
bG93KTsKICAgICAgICAgZnJhbWVSZXF1ZXN0LnNldEZyYW1lTmFtZSh0YXJnZXQpOwogICAgICAg
ICBmcmFtZVJlcXVlc3Quc2V0U2hvdWxkQ2hlY2tOZXdXaW5kb3dQb2xpY3kodHJ1ZSk7CiAgICAg
ICAgIGNvcmUoZnJhbWUpLT5sb2FkZXIoKS5sb2FkKGZyYW1lUmVxdWVzdCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lLm1tIGIvU291cmNlL1dlYktpdC9t
YWMvV2ViVmlldy9XZWJGcmFtZS5tbQppbmRleCA2MjlmYThlLi43OTlhNGI2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lLm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQvbWFjL1dlYlZpZXcvV2ViRnJhbWUubW0KQEAgLTI0NzksNyArMjQ3OSw3IEBAIHN0YXRpYyBi
b29sIG5lZWRzTWljcm9zb2Z0TWVzc2VuZ2VyRE9NRG9jdW1lbnRXb3JrYXJvdW5kKCkKICAgICBp
ZiAoIXJlc291cmNlUmVxdWVzdC51cmwoKS5pc1ZhbGlkKCkgJiYgIXJlc291cmNlUmVxdWVzdC51
cmwoKS5pc0VtcHR5KCkpCiAgICAgICAgIHJlc291cmNlUmVxdWVzdC5zZXRVUkwoW05TVVJMIFVS
TFdpdGhTdHJpbmc6W0AiZmlsZToiIHN0cmluZ0J5QXBwZW5kaW5nU3RyaW5nOltbcmVxdWVzdCBV
UkxdIGFic29sdXRlU3RyaW5nXV1dKTsKIAotICAgIGNvcmVGcmFtZS0+bG9hZGVyKCkubG9hZChG
cmFtZUxvYWRSZXF1ZXN0KGNvcmVGcmFtZSwgcmVzb3VyY2VSZXF1ZXN0KSk7CisgICAgY29yZUZy
YW1lLT5sb2FkZXIoKS5sb2FkKEZyYW1lTG9hZFJlcXVlc3QoY29yZUZyYW1lLCByZXNvdXJjZVJl
cXVlc3QsIFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3k6OlNob3VsZE5vdEFsbG93KSk7CiB9
CiAKIHN0YXRpYyBOU1VSTCAqY3JlYXRlVW5pcXVlV2ViRGF0YVVSTCgpCkBAIC0yNTExLDcgKzI1
MTEsNyBAQCBzdGF0aWMgTlNVUkwgKmNyZWF0ZVVuaXF1ZVdlYkRhdGFVUkwoKQogICAgIGlmIChz
aG91bGRVc2VRdWlja0xvb2tGb3JNSU1FVHlwZShNSU1FVHlwZSkpIHsKICAgICAgICAgTlNVUkwg
KnF1aWNrTG9va1VSTCA9IHJlc3BvbnNlVVJMID8gcmVzcG9uc2VVUkwgOiBiYXNlVVJMOwogICAg
ICAgICBpZiAoYXV0byByZXF1ZXN0ID0gcmVnaXN0ZXJRTFByZXZpZXdDb252ZXJ0ZXJJZk5lZWRl
ZChxdWlja0xvb2tVUkwsIE1JTUVUeXBlLCBkYXRhKSkgewotICAgICAgICAgICAgX3ByaXZhdGUt
PmNvcmVGcmFtZS0+bG9hZGVyKCkubG9hZChGcmFtZUxvYWRSZXF1ZXN0KF9wcml2YXRlLT5jb3Jl
RnJhbWUsIHJlcXVlc3QuZ2V0KCkpKTsKKyAgICAgICAgICAgIF9wcml2YXRlLT5jb3JlRnJhbWUt
PmxvYWRlcigpLmxvYWQoRnJhbWVMb2FkUmVxdWVzdChfcHJpdmF0ZS0+Y29yZUZyYW1lLCByZXF1
ZXN0LmdldCgpLCBTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5OjpTaG91bGROb3RBbGxvdykp
OwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgfQpAQCAtMjUyNyw3ICsyNTI3
LDcgQEAgc3RhdGljIE5TVVJMICpjcmVhdGVVbmlxdWVXZWJEYXRhVVJMKCkKICAgICBSZXNvdXJj
ZVJlc3BvbnNlIHJlc3BvbnNlKHJlc3BvbnNlVVJMLCBNSU1FVHlwZSwgW2RhdGEgbGVuZ3RoXSwg
ZW5jb2RpbmdOYW1lKTsKICAgICBTdWJzdGl0dXRlRGF0YSBzdWJzdGl0dXRlRGF0YShXZWJDb3Jl
OjpTaGFyZWRCdWZmZXI6OndyYXBOU0RhdGEoZGF0YSksIFt1bnJlYWNoYWJsZVVSTCBhYnNvbHV0
ZVVSTF0sIHJlc3BvbnNlLCBTdWJzdGl0dXRlRGF0YTo6U2Vzc2lvbkhpc3RvcnlWaXNpYmlsaXR5
OjpIaWRkZW4pOwogCi0gICAgX3ByaXZhdGUtPmNvcmVGcmFtZS0+bG9hZGVyKCkubG9hZChGcmFt
ZUxvYWRSZXF1ZXN0KF9wcml2YXRlLT5jb3JlRnJhbWUsIHJlcXVlc3QsIHN1YnN0aXR1dGVEYXRh
KSk7CisgICAgX3ByaXZhdGUtPmNvcmVGcmFtZS0+bG9hZGVyKCkubG9hZChGcmFtZUxvYWRSZXF1
ZXN0KF9wcml2YXRlLT5jb3JlRnJhbWUsIHJlcXVlc3QsIFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQ
b2xpY3k6OlNob3VsZE5vdEFsbG93LCBzdWJzdGl0dXRlRGF0YSkpOwogfQogCiAtICh2b2lkKWxv
YWREYXRhOihOU0RhdGEgKilkYXRhIE1JTUVUeXBlOihOU1N0cmluZyAqKU1JTUVUeXBlIHRleHRF
bmNvZGluZ05hbWU6KE5TU3RyaW5nICopZW5jb2RpbmdOYW1lIGJhc2VVUkw6KE5TVVJMICopYmFz
ZVVSTApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJQREZWaWV3Lm1t
IGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJQREZWaWV3Lm1tCmluZGV4IDVlN2JiMTQu
LjFlZjFhZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUERGVmll
dy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlBERlZpZXcubW0KQEAgLTEw
MzcsNyArMTAzNyw3IEBAIHN0YXRpYyBCT09MIGlzRnJhbWVJblJhbmdlKFdlYkZyYW1lICpmcmFt
ZSwgRE9NUmFuZ2UgKnJhbmdlKQogCiAgICAgLy8gQ2FsbCB0byB0aGUgZnJhbWUgbG9hZGVyIGJl
Y2F1c2UgdGhpcyBpcyB3aGVyZSBvdXIgc2VjdXJpdHkgY2hlY2tzIGFyZSBtYWRlLgogICAgIEZy
YW1lKiBmcmFtZSA9IGNvcmUoW2RhdGFTb3VyY2Ugd2ViRnJhbWVdKTsKLSAgICBmcmFtZS0+bG9h
ZGVyKCkubG9hZEZyYW1lUmVxdWVzdChGcmFtZUxvYWRSZXF1ZXN0KGZyYW1lLT5kb2N1bWVudCgp
LT5zZWN1cml0eU9yaWdpbigpLCBSZXNvdXJjZVJlcXVlc3QoVVJMKSwgTG9ja0hpc3Rvcnk6Ok5v
LCBMb2NrQmFja0ZvcndhcmRMaXN0OjpObywgTWF5YmVTZW5kUmVmZXJyZXIsIEFsbG93TmF2aWdh
dGlvblRvSW52YWxpZFVSTDo6WWVzLCBOZXdGcmFtZU9wZW5lclBvbGljeTo6QWxsb3cpLCBldmVu
dC5nZXQoKSwgbnVsbHB0cik7CisgICAgZnJhbWUtPmxvYWRlcigpLmxvYWRGcmFtZVJlcXVlc3Qo
RnJhbWVMb2FkUmVxdWVzdChmcmFtZS0+ZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKSwgUmVz
b3VyY2VSZXF1ZXN0KFVSTCksIExvY2tIaXN0b3J5OjpObywgTG9ja0JhY2tGb3J3YXJkTGlzdDo6
Tm8sIE1heWJlU2VuZFJlZmVycmVyLCBBbGxvd05hdmlnYXRpb25Ub0ludmFsaWRVUkw6Olllcywg
TmV3RnJhbWVPcGVuZXJQb2xpY3k6OkFsbG93LCBTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5
OjpTaG91bGROb3RBbGxvdyksIGV2ZW50LmdldCgpLCBudWxscHRyKTsKIH0KIAogLSAodm9pZClQ
REZWaWV3T3BlblBERkluTmF0aXZlQXBwbGljYXRpb246KFBERlZpZXcgKilzZW5kZXIKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvd2luL0No
YW5nZUxvZwppbmRleCA0MmE1YjU0Li42Mjk4ODA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L3dpbi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTMgQEAKKzIwMTUtMDYtMDEgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgor
CisgICAgICAgIFdlYktpdCBwb2xpY3kgZGVsZWdhdGUgc2hvdWxkIHN1Z2dlc3QgaWYgYSBuYXZp
Z2F0aW9uIHNob3VsZCBiZSBhbGxvd2VkIHRvIG9wZW4gVVJMcyBleHRlcm5hbGx5LgorICAgICAg
ICByZGFyOi8vcHJvYmxlbS8yMTAyNTMwMSBhbmQgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE0NTI4MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViQ29udGV4dE1lbnVDbGllbnQuY3BwOgor
ICAgICAgICAoV2ViQ29udGV4dE1lbnVDbGllbnQ6OnNlYXJjaFdpdGhHb29nbGUpOgorCiAyMDE1
LTA1LTI2ICBKb24gSG9uZXljdXR0ICA8amhvbmV5Y3V0dEBhcHBsZS5jb20+CiAKICAgICAgICAg
W2lPU10gV2hlbiB2aWV3aW5nIGFuIE1KUEVHIHN0cmVhbSBhcyB0aGUgbWFpbiByZXNvdXJjZSwg
b25seSB0aGUgZmlyc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL1BsdWdpbnMvUGx1
Z2luVmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0L3dpbi9QbHVnaW5zL1BsdWdpblZpZXcuY3BwCmlu
ZGV4IGJmYmVmZTYuLjU5NDIwYjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL1BsdWdp
bnMvUGx1Z2luVmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdC93aW4vUGx1Z2lucy9QbHVnaW5W
aWV3LmNwcApAQCAtMjQ5LDcgKzI0OSw3IEBAIGJvb2wgUGx1Z2luVmlldzo6c3RhcnQoKQogICAg
IG1faXNTdGFydGVkID0gdHJ1ZTsKIAogICAgIGlmICghbV91cmwuaXNFbXB0eSgpICYmICFtX2xv
YWRNYW51YWxseSkgewotICAgICAgICBGcmFtZUxvYWRSZXF1ZXN0IGZyYW1lTG9hZFJlcXVlc3Qo
bV9wYXJlbnRGcmFtZS0+ZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKSwgTG9ja0hpc3Rvcnk6
Ok5vLCBMb2NrQmFja0ZvcndhcmRMaXN0OjpObywgU2hvdWxkU2VuZFJlZmVycmVyOjpNYXliZVNl
bmRSZWZlcnJlciwgQWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJMOjpZZXMsIE5ld0ZyYW1lT3Bl
bmVyUG9saWN5OjpBbGxvdyk7CisgICAgICAgIEZyYW1lTG9hZFJlcXVlc3QgZnJhbWVMb2FkUmVx
dWVzdChtX3BhcmVudEZyYW1lLT5kb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpLCBMb2NrSGlz
dG9yeTo6Tm8sIExvY2tCYWNrRm9yd2FyZExpc3Q6Ok5vLCBTaG91bGRTZW5kUmVmZXJyZXI6Ok1h
eWJlU2VuZFJlZmVycmVyLCBBbGxvd05hdmlnYXRpb25Ub0ludmFsaWRVUkw6OlllcywgTmV3RnJh
bWVPcGVuZXJQb2xpY3k6OkFsbG93LCBTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5OjpTaG91
bGROb3RBbGxvdyk7CiAgICAgICAgIGZyYW1lTG9hZFJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCku
c2V0SFRUUE1ldGhvZCgiR0VUIik7CiAgICAgICAgIGZyYW1lTG9hZFJlcXVlc3QucmVzb3VyY2VS
ZXF1ZXN0KCkuc2V0VVJMKG1fdXJsKTsKICAgICAgICAgbG9hZChmcmFtZUxvYWRSZXF1ZXN0LCBm
YWxzZSwgMCk7CkBAIC00MTMsNyArNDEzLDcgQEAgdm9pZCBQbHVnaW5WaWV3OjpwZXJmb3JtUmVx
dWVzdChQbHVnaW5SZXF1ZXN0KiByZXF1ZXN0KQogICAgICAgICAgICAgLy8gUGx1Z2luVmlldywg
c28gd2UgcHJvdGVjdCBpdC4gPHJkYXI6Ly9wcm9ibGVtLzY5OTEyNTE+CiAgICAgICAgICAgICBS
ZWZQdHI8UGx1Z2luVmlldz4gcHJvdGVjdCh0aGlzKTsKIAotICAgICAgICAgICAgRnJhbWVMb2Fk
UmVxdWVzdCBmcmFtZVJlcXVlc3QobV9wYXJlbnRGcmFtZS5nZXQoKSwgcmVxdWVzdC0+ZnJhbWVM
b2FkUmVxdWVzdCgpLnJlc291cmNlUmVxdWVzdCgpKTsKKyAgICAgICAgICAgIEZyYW1lTG9hZFJl
cXVlc3QgZnJhbWVSZXF1ZXN0KG1fcGFyZW50RnJhbWUuZ2V0KCksIHJlcXVlc3QtPmZyYW1lTG9h
ZFJlcXVlc3QoKS5yZXNvdXJjZVJlcXVlc3QoKSwgU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGlj
eTo6U2hvdWxkTm90QWxsb3cpOwogICAgICAgICAgICAgZnJhbWVSZXF1ZXN0LnNldEZyYW1lTmFt
ZSh0YXJnZXRGcmFtZU5hbWUpOwogICAgICAgICAgICAgZnJhbWVSZXF1ZXN0LnNldFNob3VsZENo
ZWNrTmV3V2luZG93UG9saWN5KHRydWUpOwogICAgICAgICAgICAgbV9wYXJlbnRGcmFtZS0+bG9h
ZGVyKCkubG9hZChmcmFtZVJlcXVlc3QpOwpAQCAtNTIzLDcgKzUyMyw3IEBAIHN0YXRpYyBVUkwg
bWFrZVVSTChjb25zdCBVUkwmIGJhc2VVUkwsIGNvbnN0IGNoYXIqIHJlbGF0aXZlVVJMU3RyaW5n
KQogCiBOUEVycm9yIFBsdWdpblZpZXc6OmdldFVSTE5vdGlmeShjb25zdCBjaGFyKiB1cmwsIGNv
bnN0IGNoYXIqIHRhcmdldCwgdm9pZCogbm90aWZ5RGF0YSkKIHsKLSAgICBGcmFtZUxvYWRSZXF1
ZXN0IGZyYW1lTG9hZFJlcXVlc3QobV9wYXJlbnRGcmFtZS0+ZG9jdW1lbnQoKS0+c2VjdXJpdHlP
cmlnaW4oKSwgTG9ja0hpc3Rvcnk6Ok5vLCBMb2NrQmFja0ZvcndhcmRMaXN0OjpObywgU2hvdWxk
U2VuZFJlZmVycmVyOjpNYXliZVNlbmRSZWZlcnJlciwgQWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlk
VVJMOjpZZXMsIE5ld0ZyYW1lT3BlbmVyUG9saWN5OjpBbGxvdyk7CisgICAgRnJhbWVMb2FkUmVx
dWVzdCBmcmFtZUxvYWRSZXF1ZXN0KG1fcGFyZW50RnJhbWUtPmRvY3VtZW50KCktPnNlY3VyaXR5
T3JpZ2luKCksIExvY2tIaXN0b3J5OjpObywgTG9ja0JhY2tGb3J3YXJkTGlzdDo6Tm8sIFNob3Vs
ZFNlbmRSZWZlcnJlcjo6TWF5YmVTZW5kUmVmZXJyZXIsIEFsbG93TmF2aWdhdGlvblRvSW52YWxp
ZFVSTDo6WWVzLCBOZXdGcmFtZU9wZW5lclBvbGljeTo6QWxsb3csIFNob3VsZE9wZW5FeHRlcm5h
bFVSTHNQb2xpY3k6OlNob3VsZE5vdEFsbG93KTsKIAogICAgIGZyYW1lTG9hZFJlcXVlc3Quc2V0
RnJhbWVOYW1lKHRhcmdldCk7CiAgICAgZnJhbWVMb2FkUmVxdWVzdC5yZXNvdXJjZVJlcXVlc3Qo
KS5zZXRIVFRQTWV0aG9kKCJHRVQiKTsKQEAgLTUzNCw3ICs1MzQsNyBAQCBOUEVycm9yIFBsdWdp
blZpZXc6OmdldFVSTE5vdGlmeShjb25zdCBjaGFyKiB1cmwsIGNvbnN0IGNoYXIqIHRhcmdldCwg
dm9pZCogbm90aQogCiBOUEVycm9yIFBsdWdpblZpZXc6OmdldFVSTChjb25zdCBjaGFyKiB1cmws
IGNvbnN0IGNoYXIqIHRhcmdldCkKIHsKLSAgICBGcmFtZUxvYWRSZXF1ZXN0IGZyYW1lTG9hZFJl
cXVlc3QobV9wYXJlbnRGcmFtZS0+ZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKSwgTG9ja0hp
c3Rvcnk6Ok5vLCBMb2NrQmFja0ZvcndhcmRMaXN0OjpObywgU2hvdWxkU2VuZFJlZmVycmVyOjpN
YXliZVNlbmRSZWZlcnJlciwgQWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJMOjpZZXMsIE5ld0Zy
YW1lT3BlbmVyUG9saWN5OjpBbGxvdyk7CisgICAgRnJhbWVMb2FkUmVxdWVzdCBmcmFtZUxvYWRS
ZXF1ZXN0KG1fcGFyZW50RnJhbWUtPmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCksIExvY2tI
aXN0b3J5OjpObywgTG9ja0JhY2tGb3J3YXJkTGlzdDo6Tm8sIFNob3VsZFNlbmRSZWZlcnJlcjo6
TWF5YmVTZW5kUmVmZXJyZXIsIEFsbG93TmF2aWdhdGlvblRvSW52YWxpZFVSTDo6WWVzLCBOZXdG
cmFtZU9wZW5lclBvbGljeTo6QWxsb3csIFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3k6OlNo
b3VsZE5vdEFsbG93KTsKIAogICAgIGZyYW1lTG9hZFJlcXVlc3Quc2V0RnJhbWVOYW1lKHRhcmdl
dCk7CiAgICAgZnJhbWVMb2FkUmVxdWVzdC5yZXNvdXJjZVJlcXVlc3QoKS5zZXRIVFRQTWV0aG9k
KCJHRVQiKTsKQEAgLTEwMzYsNyArMTAzNiw3IEBAIE5QRXJyb3IgUGx1Z2luVmlldzo6aGFuZGxl
UG9zdChjb25zdCBjaGFyKiB1cmwsIGNvbnN0IGNoYXIqIHRhcmdldCwgdWludDMyX3QgbGVuCiAg
ICAgaWYgKCF1cmwgfHwgIWxlbiB8fCAhYnVmKQogICAgICAgICByZXR1cm4gTlBFUlJfSU5WQUxJ
RF9QQVJBTTsKIAotICAgIEZyYW1lTG9hZFJlcXVlc3QgZnJhbWVMb2FkUmVxdWVzdChtX3BhcmVu
dEZyYW1lLT5kb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpLCBMb2NrSGlzdG9yeTo6Tm8sIExv
Y2tCYWNrRm9yd2FyZExpc3Q6Ok5vLCBTaG91bGRTZW5kUmVmZXJyZXI6Ok1heWJlU2VuZFJlZmVy
cmVyLCBBbGxvd05hdmlnYXRpb25Ub0ludmFsaWRVUkw6OlllcywgTmV3RnJhbWVPcGVuZXJQb2xp
Y3k6OkFsbG93KTsKKyAgICBGcmFtZUxvYWRSZXF1ZXN0IGZyYW1lTG9hZFJlcXVlc3QobV9wYXJl
bnRGcmFtZS0+ZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKSwgTG9ja0hpc3Rvcnk6Ok5vLCBM
b2NrQmFja0ZvcndhcmRMaXN0OjpObywgU2hvdWxkU2VuZFJlZmVycmVyOjpNYXliZVNlbmRSZWZl
cnJlciwgQWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJMOjpZZXMsIE5ld0ZyYW1lT3BlbmVyUG9s
aWN5OjpBbGxvdywgU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeTo6U2hvdWxkTm90QWxsb3cp
OwogCiAgICAgSFRUUEhlYWRlck1hcCBoZWFkZXJGaWVsZHM7CiAgICAgVmVjdG9yPGNoYXI+IGJ1
ZmZlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNv
bnRleHRNZW51Q2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dl
YkNvbnRleHRNZW51Q2xpZW50LmNwcAppbmRleCBiMjYxYjk3Li4zNzRmZTZlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDb250ZXh0TWVudUNsaWVudC5j
cHAKKysrIGIvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ29udGV4dE1lbnVD
bGllbnQuY3BwCkBAIC0xMjAsNyArMTIwLDcgQEAgdm9pZCBXZWJDb250ZXh0TWVudUNsaWVudDo6
c2VhcmNoV2l0aEdvb2dsZShjb25zdCBGcmFtZSogZnJhbWUpCiAKICAgICBpZiAoUGFnZSogcGFn
ZSA9IGZyYW1lLT5wYWdlKCkpIHsKICAgICAgICAgVXNlckdlc3R1cmVJbmRpY2F0b3IgaW5kaWNh
dG9yKERlZmluaXRlbHlQcm9jZXNzaW5nVXNlckdlc3R1cmUpOwotICAgICAgICBwYWdlLT5tYWlu
RnJhbWUoKS5sb2FkZXIoKS51cmxTZWxlY3RlZChVUkwoUGFyc2VkVVJMU3RyaW5nLCB1cmwpLCBT
dHJpbmcoKSwgMCwgTG9ja0hpc3Rvcnk6Ok5vLCBMb2NrQmFja0ZvcndhcmRMaXN0OjpObywgTWF5
YmVTZW5kUmVmZXJyZXIpOworICAgICAgICBwYWdlLT5tYWluRnJhbWUoKS5sb2FkZXIoKS51cmxT
ZWxlY3RlZChVUkwoUGFyc2VkVVJMU3RyaW5nLCB1cmwpLCBTdHJpbmcoKSwgMCwgTG9ja0hpc3Rv
cnk6Ok5vLCBMb2NrQmFja0ZvcndhcmRMaXN0OjpObywgTWF5YmVTZW5kUmVmZXJyZXIsIFNob3Vs
ZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3k6OlNob3VsZE5vdEFsbG93KTsKICAgICB9CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYkZyYW1lLmNwcCBiL1NvdXJjZS9XZWJLaXQv
d2luL1dlYkZyYW1lLmNwcAppbmRleCBiNzU4ZDBkLi5mNDc2NDcwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L3dpbi9XZWJGcmFtZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC93aW4vV2ViRnJh
bWUuY3BwCkBAIC01NDYsNyArNTQ2LDcgQEAgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBXZWJG
cmFtZTo6bG9hZFJlcXVlc3QoCiAgICAgaWYgKCFjb3JlRnJhbWUpCiAgICAgICAgIHJldHVybiBF
X0ZBSUw7CiAKLSAgICBjb3JlRnJhbWUtPmxvYWRlcigpLmxvYWQoRnJhbWVMb2FkUmVxdWVzdChj
b3JlRnJhbWUsIHJlcXVlc3RJbXBsLT5yZXNvdXJjZVJlcXVlc3QoKSkpOworICAgIGNvcmVGcmFt
ZS0+bG9hZGVyKCkubG9hZChGcmFtZUxvYWRSZXF1ZXN0KGNvcmVGcmFtZSwgcmVxdWVzdEltcGwt
PnJlc291cmNlUmVxdWVzdCgpLCBTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5OjpTaG91bGRO
b3RBbGxvdykpOwogICAgIHJldHVybiBTX09LOwogfQogCkBAIC01NzEsNyArNTcxLDcgQEAgdm9p
ZCBXZWJGcmFtZTo6bG9hZERhdGEoUGFzc1JlZlB0cjxXZWJDb3JlOjpTaGFyZWRCdWZmZXI+IGRh
dGEsIEJTVFIgbWltZVR5cGUsIEIKIAogICAgIC8vIFRoaXMgbWV0aG9kIGlzIG9ubHkgY2FsbGVk
IGZyb20gSVdlYkZyYW1lIG1ldGhvZHMsIHNvIGRvbid0IEFTU0VSVCB0aGF0IHRoZSBGcmFtZSBw
b2ludGVyIGlzbid0IG51bGwuCiAgICAgaWYgKEZyYW1lKiBjb3JlRnJhbWUgPSBjb3JlKHRoaXMp
KQotICAgICAgICBjb3JlRnJhbWUtPmxvYWRlcigpLmxvYWQoRnJhbWVMb2FkUmVxdWVzdChjb3Jl
RnJhbWUsIHJlcXVlc3QsIHN1YnN0aXR1dGVEYXRhKSk7CisgICAgICAgIGNvcmVGcmFtZS0+bG9h
ZGVyKCkubG9hZChGcmFtZUxvYWRSZXF1ZXN0KGNvcmVGcmFtZSwgcmVxdWVzdCwgU2hvdWxkT3Bl
bkV4dGVybmFsVVJMc1BvbGljeTo6U2hvdWxkTm90QWxsb3csIHN1YnN0aXR1dGVEYXRhKSk7CiB9
CiAKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nCmluZGV4IDBhM2VkNTAuLmJmYzY2MGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsNSAr
MSwzNCBAQAogMjAxNS0wNi0wMSAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CiAK
KyAgICAgICAgV2ViS2l0IHBvbGljeSBkZWxlZ2F0ZSBzaG91bGQgc3VnZ2VzdCBpZiBhIG5hdmln
YXRpb24gc2hvdWxkIGJlIGFsbG93ZWQgdG8gb3BlbiBVUkxzIGV4dGVybmFsbHkuCisgICAgICAg
IHJkYXI6Ly9wcm9ibGVtLzIxMDI1MzAxIGFuZCBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTQ1MjgwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5tbToKKyAgICAg
ICAgKFdlYktpdDo6UERGUGx1Z2luOjpjbGlja2VkTGluayk6CisgICAgICAgIAorICAgICAgICAq
IFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UGx1
Z2luVmlldzo6cGVyZm9ybUZyYW1lTG9hZFVSTFJlcXVlc3QpOgorICAgICAgICAoV2ViS2l0OjpQ
bHVnaW5WaWV3Ojpsb2FkVVJMKToKKyAgICAgICAgCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJDb250ZXh0TWVudUNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
YkNvbnRleHRNZW51Q2xpZW50OjpzZWFyY2hXaXRoR29vZ2xlKToKKyAgICAgICAgCisgICAgICAg
ICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaENyZWF0ZVBhZ2Up
OgorICAgICAgICAKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9yLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yOjpvcGVuSW5OZXdUYWIpOgorICAgICAg
ICAKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2U6OmxvYWRVUkxJbkZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFn
ZTo6bG9hZFJlcXVlc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpsb2FkRGF0YUltcGwp
OgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpuYXZpZ2F0ZVRvUERGTGlua1dpdGhTaW11bGF0
ZWRDbGljayk6CisKKzIwMTUtMDYtMDEgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29t
PgorCiAgICAgICAgIEFkZCBXS1RSIHN1cHBvcnQgZm9yICJzaG91bGQgb3BlbiBleHRlcm5hbCBV
UkxzIi4KICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0
NTUwNQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUERG
L1BERlBsdWdpbi5tbSBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERG
UGx1Z2luLm1tCmluZGV4IGM3YTVlN2UuLmRjY2M1NDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luLm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luLm1tCkBAIC0xNTkxLDcgKzE1OTEs
NyBAQCB2b2lkIFBERlBsdWdpbjo6Y2xpY2tlZExpbmsoTlNVUkwgKnVybCkKICAgICBpZiAobV9s
YXN0TW91c2VFdmVudC50eXBlKCkgIT0gV2ViRXZlbnQ6Ok5vVHlwZSkKICAgICAgICAgY29yZUV2
ZW50ID0gTW91c2VFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5jbGlja0V2ZW50LCBmcmFtZS0+
ZG9jdW1lbnQoKS0+ZGVmYXVsdFZpZXcoKSwgcGxhdGZvcm0obV9sYXN0TW91c2VFdmVudCksIDAs
IDApOwogCi0gICAgZnJhbWUtPmxvYWRlcigpLnVybFNlbGVjdGVkKGNvcmVVUkwsIGVtcHR5U3Ry
aW5nKCksIGNvcmVFdmVudC5nZXQoKSwgTG9ja0hpc3Rvcnk6Ok5vLCBMb2NrQmFja0ZvcndhcmRM
aXN0OjpObywgTWF5YmVTZW5kUmVmZXJyZXIpOworICAgIGZyYW1lLT5sb2FkZXIoKS51cmxTZWxl
Y3RlZChjb3JlVVJMLCBlbXB0eVN0cmluZygpLCBjb3JlRXZlbnQuZ2V0KCksIExvY2tIaXN0b3J5
OjpObywgTG9ja0JhY2tGb3J3YXJkTGlzdDo6Tm8sIE1heWJlU2VuZFJlZmVycmVyLCBTaG91bGRP
cGVuRXh0ZXJuYWxVUkxzUG9saWN5OjpTaG91bGRBbGxvdyk7CiB9CiAKIHZvaWQgUERGUGx1Z2lu
OjpzZXRBY3RpdmVBbm5vdGF0aW9uKFBERkFubm90YXRpb24gKmFubm90YXRpb24pCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5jcHAKaW5kZXggOTQ5
NDBmZi4uMzAxOGQ2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVn
aW5zL1BsdWdpblZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lu
cy9QbHVnaW5WaWV3LmNwcApAQCAtMTE3Niw3ICsxMTc2LDcgQEAgdm9pZCBQbHVnaW5WaWV3Ojpw
ZXJmb3JtRnJhbWVMb2FkVVJMUmVxdWVzdChVUkxSZXF1ZXN0KiByZXF1ZXN0KQogICAgIEZyYW1l
KiB0YXJnZXRGcmFtZSA9IGZyYW1lLT5sb2FkZXIoKS5maW5kRnJhbWVGb3JOYXZpZ2F0aW9uKHJl
cXVlc3QtPnRhcmdldCgpKTsKICAgICBpZiAoIXRhcmdldEZyYW1lKSB7CiAgICAgICAgIC8vIFdl
IGRpZCBub3QgZmluZCBhIHRhcmdldCBmcmFtZS4gQXNrIG91ciBmcmFtZSB0byBsb2FkIHRoZSBw
YWdlLiBUaGlzIG1heSBvciBtYXkgbm90IGNyZWF0ZSBhIHBvcHVwIHdpbmRvdy4KLSAgICAgICAg
RnJhbWVMb2FkUmVxdWVzdCBmcmFtZVJlcXVlc3QoZnJhbWUsIHJlcXVlc3QtPnJlcXVlc3QoKSk7
CisgICAgICAgIEZyYW1lTG9hZFJlcXVlc3QgZnJhbWVSZXF1ZXN0KGZyYW1lLCByZXF1ZXN0LT5y
ZXF1ZXN0KCksIFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3k6OlNob3VsZE5vdEFsbG93KTsK
ICAgICAgICAgZnJhbWVSZXF1ZXN0LnNldEZyYW1lTmFtZShyZXF1ZXN0LT50YXJnZXQoKSk7CiAg
ICAgICAgIGZyYW1lUmVxdWVzdC5zZXRTaG91bGRDaGVja05ld1dpbmRvd1BvbGljeSh0cnVlKTsK
ICAgICAgICAgZnJhbWUtPmxvYWRlcigpLmxvYWQoZnJhbWVSZXF1ZXN0KTsKQEAgLTExODgsNyAr
MTE4OCw3IEBAIHZvaWQgUGx1Z2luVmlldzo6cGVyZm9ybUZyYW1lTG9hZFVSTFJlcXVlc3QoVVJM
UmVxdWVzdCogcmVxdWVzdCkKICAgICB9CiAKICAgICAvLyBOb3cgYXNrIHRoZSBmcmFtZSB0byBs
b2FkIHRoZSByZXF1ZXN0LgotICAgIHRhcmdldEZyYW1lLT5sb2FkZXIoKS5sb2FkKEZyYW1lTG9h
ZFJlcXVlc3QodGFyZ2V0RnJhbWUsIHJlcXVlc3QtPnJlcXVlc3QoKSkpOworICAgIHRhcmdldEZy
YW1lLT5sb2FkZXIoKS5sb2FkKEZyYW1lTG9hZFJlcXVlc3QodGFyZ2V0RnJhbWUsIHJlcXVlc3Qt
PnJlcXVlc3QoKSwgU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeTo6U2hvdWxkTm90QWxsb3cp
KTsKIAogICAgIGF1dG8qIHRhcmdldFdlYkZyYW1lID0gV2ViRnJhbWU6OmZyb21Db3JlRnJhbWUo
KnRhcmdldEZyYW1lKTsKICAgICBBU1NFUlQodGFyZ2V0V2ViRnJhbWUpOwpAQCAtMTM2Nyw3ICsx
MzY3LDcgQEAgU3RyaW5nIFBsdWdpblZpZXc6OnVzZXJBZ2VudCgpCiAKIHZvaWQgUGx1Z2luVmll
dzo6bG9hZFVSTCh1aW50NjRfdCByZXF1ZXN0SUQsIGNvbnN0IFN0cmluZyYgbWV0aG9kLCBjb25z
dCBTdHJpbmcmIHVybFN0cmluZywgY29uc3QgU3RyaW5nJiB0YXJnZXQsIGNvbnN0IEhUVFBIZWFk
ZXJNYXAmIGhlYWRlckZpZWxkcywgY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBodHRwQm9keSwgYm9v
bCBhbGxvd1BvcHVwcykKIHsKLSAgICBGcmFtZUxvYWRSZXF1ZXN0IGZyYW1lTG9hZFJlcXVlc3Qo
bV9wbHVnaW5FbGVtZW50LT5kb2N1bWVudCgpLnNlY3VyaXR5T3JpZ2luKCksIExvY2tIaXN0b3J5
OjpObywgTG9ja0JhY2tGb3J3YXJkTGlzdDo6Tm8sIE1heWJlU2VuZFJlZmVycmVyLCBBbGxvd05h
dmlnYXRpb25Ub0ludmFsaWRVUkw6OlllcywgTmV3RnJhbWVPcGVuZXJQb2xpY3k6OkFsbG93KTsK
KyAgICBGcmFtZUxvYWRSZXF1ZXN0IGZyYW1lTG9hZFJlcXVlc3QobV9wbHVnaW5FbGVtZW50LT5k
b2N1bWVudCgpLnNlY3VyaXR5T3JpZ2luKCksIExvY2tIaXN0b3J5OjpObywgTG9ja0JhY2tGb3J3
YXJkTGlzdDo6Tm8sIE1heWJlU2VuZFJlZmVycmVyLCBBbGxvd05hdmlnYXRpb25Ub0ludmFsaWRV
Ukw6OlllcywgTmV3RnJhbWVPcGVuZXJQb2xpY3k6OkFsbG93LCBTaG91bGRPcGVuRXh0ZXJuYWxV
UkxzUG9saWN5OjpTaG91bGROb3RBbGxvdyk7CiAgICAgZnJhbWVMb2FkUmVxdWVzdC5yZXNvdXJj
ZVJlcXVlc3QoKS5zZXRIVFRQTWV0aG9kKG1ldGhvZCk7CiAgICAgZnJhbWVMb2FkUmVxdWVzdC5y
ZXNvdXJjZVJlcXVlc3QoKS5zZXRVUkwobV9wbHVnaW5FbGVtZW50LT5kb2N1bWVudCgpLmNvbXBs
ZXRlVVJMKHVybFN0cmluZykpOwogICAgIGZyYW1lTG9hZFJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0
KCkuc2V0SFRUUEhlYWRlckZpZWxkcyhoZWFkZXJGaWVsZHMpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDb250ZXh0TWVudUNsaWVudC5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNvbnRleHRN
ZW51Q2xpZW50LmNwcAppbmRleCA0MGE2MGQ4Li42NTY5NDg2YSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDb250ZXh0TWVudUNsaWVudC5j
cHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDb250
ZXh0TWVudUNsaWVudC5jcHAKQEAgLTg2LDcgKzg2LDcgQEAgdm9pZCBXZWJDb250ZXh0TWVudUNs
aWVudDo6c2VhcmNoV2l0aEdvb2dsZShjb25zdCBGcmFtZSogZnJhbWUpCiAKICAgICBpZiAoUGFn
ZSogcGFnZSA9IGZyYW1lLT5wYWdlKCkpIHsKICAgICAgICAgVXNlckdlc3R1cmVJbmRpY2F0b3Ig
aW5kaWNhdG9yKERlZmluaXRlbHlQcm9jZXNzaW5nVXNlckdlc3R1cmUpOwotICAgICAgICBwYWdl
LT5tYWluRnJhbWUoKS5sb2FkZXIoKS51cmxTZWxlY3RlZChVUkwoUGFyc2VkVVJMU3RyaW5nLCB1
cmwpLCBTdHJpbmcoKSwgMCwgTG9ja0hpc3Rvcnk6Ok5vLCBMb2NrQmFja0ZvcndhcmRMaXN0OjpO
bywgTWF5YmVTZW5kUmVmZXJyZXIpOworICAgICAgICBwYWdlLT5tYWluRnJhbWUoKS5sb2FkZXIo
KS51cmxTZWxlY3RlZChVUkwoUGFyc2VkVVJMU3RyaW5nLCB1cmwpLCBTdHJpbmcoKSwgMCwgTG9j
a0hpc3Rvcnk6Ok5vLCBMb2NrQmFja0ZvcndhcmRMaXN0OjpObywgTWF5YmVTZW5kUmVmZXJyZXIs
IFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3k6OlNob3VsZE5vdEFsbG93KTsKICAgICB9CiB9
CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKaW5kZXggZDY1YjEwNS4u
NjFiMTRlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKQEAgLTY1MCw3ICs2
NTAsNyBAQCBGcmFtZSogV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoQ3JlYXRlUGFnZShj
b25zdCBOYXZpZ2F0aW9uQWN0aW9uJiBuYXZpZ2F0aQogICAgICAgICByZXR1cm4gMDsKIAogICAg
IC8vIEp1c3QgY2FsbCB0aHJvdWdoIHRvIHRoZSBjaHJvbWUgY2xpZW50LgotICAgIEZyYW1lTG9h
ZFJlcXVlc3QgcmVxdWVzdChtX2ZyYW1lLT5jb3JlRnJhbWUoKS0+ZG9jdW1lbnQoKS0+c2VjdXJp
dHlPcmlnaW4oKSwgbmF2aWdhdGlvbkFjdGlvbi5yZXNvdXJjZVJlcXVlc3QoKSwgTG9ja0hpc3Rv
cnk6Ok5vLCBMb2NrQmFja0ZvcndhcmRMaXN0OjpObywgTWF5YmVTZW5kUmVmZXJyZXIsIEFsbG93
TmF2aWdhdGlvblRvSW52YWxpZFVSTDo6WWVzLCBOZXdGcmFtZU9wZW5lclBvbGljeTo6QWxsb3cp
OworICAgIEZyYW1lTG9hZFJlcXVlc3QgcmVxdWVzdChtX2ZyYW1lLT5jb3JlRnJhbWUoKS0+ZG9j
dW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKSwgbmF2aWdhdGlvbkFjdGlvbi5yZXNvdXJjZVJlcXVl
c3QoKSwgTG9ja0hpc3Rvcnk6Ok5vLCBMb2NrQmFja0ZvcndhcmRMaXN0OjpObywgTWF5YmVTZW5k
UmVmZXJyZXIsIEFsbG93TmF2aWdhdGlvblRvSW52YWxpZFVSTDo6WWVzLCBOZXdGcmFtZU9wZW5l
clBvbGljeTo6QWxsb3csIG5hdmlnYXRpb25BY3Rpb24uc2hvdWxkT3BlbkV4dGVybmFsVVJMc1Bv
bGljeSgpKTsKICAgICBQYWdlKiBuZXdQYWdlID0gd2ViUGFnZS0+Y29yZVBhZ2UoKS0+Y2hyb21l
KCkuY3JlYXRlV2luZG93KG1fZnJhbWUtPmNvcmVGcmFtZSgpLCByZXF1ZXN0LCBXaW5kb3dGZWF0
dXJlcygpLCBuYXZpZ2F0aW9uQWN0aW9uKTsKICAgICBpZiAoIW5ld1BhZ2UpCiAgICAgICAgIHJl
dHVybiAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
Ykluc3BlY3Rvci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViSW5z
cGVjdG9yLmNwcAppbmRleCAxZWE5MTI4Li4yZDBjMjU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9yLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9yLmNwcApAQCAtMTM4LDcgKzEzOCw3
IEBAIHZvaWQgV2ViSW5zcGVjdG9yOjpvcGVuSW5OZXdUYWIoY29uc3QgU3RyaW5nJiB1cmxTdHJp
bmcpCiAgICAgICAgIHJldHVybjsKIAogICAgIEZyYW1lJiBpbnNwZWN0ZWRNYWluRnJhbWUgPSBp
bnNwZWN0ZWRQYWdlLT5tYWluRnJhbWUoKTsKLSAgICBGcmFtZUxvYWRSZXF1ZXN0IHJlcXVlc3Qo
aW5zcGVjdGVkTWFpbkZyYW1lLmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCksIFJlc291cmNl
UmVxdWVzdCh1cmxTdHJpbmcpLCAiX2JsYW5rIiwgTG9ja0hpc3Rvcnk6Ok5vLCBMb2NrQmFja0Zv
cndhcmRMaXN0OjpObywgTWF5YmVTZW5kUmVmZXJyZXIsIEFsbG93TmF2aWdhdGlvblRvSW52YWxp
ZFVSTDo6WWVzLCBOZXdGcmFtZU9wZW5lclBvbGljeTo6QWxsb3csIFJlcGxhY2VEb2N1bWVudElm
SmF2YVNjcmlwdFVSTCk7CisgICAgRnJhbWVMb2FkUmVxdWVzdCByZXF1ZXN0KGluc3BlY3RlZE1h
aW5GcmFtZS5kb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpLCBSZXNvdXJjZVJlcXVlc3QodXJs
U3RyaW5nKSwgIl9ibGFuayIsIExvY2tIaXN0b3J5OjpObywgTG9ja0JhY2tGb3J3YXJkTGlzdDo6
Tm8sIE1heWJlU2VuZFJlZmVycmVyLCBBbGxvd05hdmlnYXRpb25Ub0ludmFsaWRVUkw6Olllcywg
TmV3RnJhbWVPcGVuZXJQb2xpY3k6OkFsbG93LCBSZXBsYWNlRG9jdW1lbnRJZkphdmFTY3JpcHRV
UkwsIFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3k6OlNob3VsZE5vdEFsbG93KTsKIAogICAg
IFBhZ2UqIG5ld1BhZ2UgPSBpbnNwZWN0ZWRQYWdlLT5jaHJvbWUoKS5jcmVhdGVXaW5kb3coJmlu
c3BlY3RlZE1haW5GcmFtZSwgcmVxdWVzdCwgV2luZG93RmVhdHVyZXMoKSwgTmF2aWdhdGlvbkFj
dGlvbihyZXF1ZXN0LnJlc291cmNlUmVxdWVzdCgpLCBOYXZpZ2F0aW9uVHlwZTo6TGlua0NsaWNr
ZWQpKTsKICAgICBpZiAoIW5ld1BhZ2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggZDgxZGI4ZS4uNjEwODBkNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtMTAxMSw3ICsxMDExLDcg
QEAgdm9pZCBXZWJQYWdlOjpsb2FkVVJMSW5GcmFtZShjb25zdCBTdHJpbmcmIHVybCwgdWludDY0
X3QgZnJhbWVJRCkKICAgICBpZiAoIWZyYW1lKQogICAgICAgICByZXR1cm47CiAKLSAgICBmcmFt
ZS0+Y29yZUZyYW1lKCktPmxvYWRlcigpLmxvYWQoRnJhbWVMb2FkUmVxdWVzdChmcmFtZS0+Y29y
ZUZyYW1lKCksIFJlc291cmNlUmVxdWVzdChVUkwoVVJMKCksIHVybCkpKSk7CisgICAgZnJhbWUt
PmNvcmVGcmFtZSgpLT5sb2FkZXIoKS5sb2FkKEZyYW1lTG9hZFJlcXVlc3QoZnJhbWUtPmNvcmVG
cmFtZSgpLCBSZXNvdXJjZVJlcXVlc3QoVVJMKFVSTCgpLCB1cmwpKSwgU2hvdWxkT3BlbkV4dGVy
bmFsVVJMc1BvbGljeTo6U2hvdWxkTm90QWxsb3cpKTsKIH0KIAogdm9pZCBXZWJQYWdlOjpsb2Fk
UmVxdWVzdCh1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVx
dWVzdCwgY29uc3QgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlJiBzYW5kYm94RXh0ZW5zaW9uSGFu
ZGxlLCB1aW50NjRfdCBzaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5LCBjb25zdCBVc2VyRGF0
YSYgdXNlckRhdGEpCkBAIC0xMDI3LDcgKzEwMjcsNyBAQCB2b2lkIFdlYlBhZ2U6OmxvYWRSZXF1
ZXN0KHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0
LAogICAgIG1fbG9hZGVyQ2xpZW50LndpbGxMb2FkVVJMUmVxdWVzdCh0aGlzLCByZXF1ZXN0LCBX
ZWJQcm9jZXNzOjpzaW5nbGV0b24oKS50cmFuc2Zvcm1IYW5kbGVzVG9PYmplY3RzKHVzZXJEYXRh
Lm9iamVjdCgpKS5nZXQoKSk7CiAKICAgICAvLyBJbml0YXRlIHRoZSBsb2FkIGluIFdlYkNvcmUu
Ci0gICAgRnJhbWVMb2FkUmVxdWVzdCBmcmFtZUxvYWRSZXF1ZXN0KG1fbWFpbkZyYW1lLT5jb3Jl
RnJhbWUoKSwgcmVxdWVzdCk7CisgICAgRnJhbWVMb2FkUmVxdWVzdCBmcmFtZUxvYWRSZXF1ZXN0
KG1fbWFpbkZyYW1lLT5jb3JlRnJhbWUoKSwgcmVxdWVzdCwgU2hvdWxkT3BlbkV4dGVybmFsVVJM
c1BvbGljeTo6U2hvdWxkTm90QWxsb3cpOwogICAgIFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xp
Y3kgZXh0ZXJuYWxVUkxzUG9saWN5ID0gc3RhdGljX2Nhc3Q8U2hvdWxkT3BlbkV4dGVybmFsVVJM
c1BvbGljeT4oc2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSk7CiAgICAgZnJhbWVMb2FkUmVx
dWVzdC5zZXRTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5KGV4dGVybmFsVVJMc1BvbGljeSk7
CiAKQEAgLTEwNTEsNyArMTA1MSw3IEBAIHZvaWQgV2ViUGFnZTo6bG9hZERhdGFJbXBsKHVpbnQ2
NF90IG5hdmlnYXRpb25JRCwgUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+IHNoYXJlCiAgICAgbV9s
b2FkZXJDbGllbnQud2lsbExvYWREYXRhUmVxdWVzdCh0aGlzLCByZXF1ZXN0LCBjb25zdF9jYXN0
PFNoYXJlZEJ1ZmZlcio+KHN1YnN0aXR1dGVEYXRhLmNvbnRlbnQoKSksIHN1YnN0aXR1dGVEYXRh
Lm1pbWVUeXBlKCksIHN1YnN0aXR1dGVEYXRhLnRleHRFbmNvZGluZygpLCBzdWJzdGl0dXRlRGF0
YS5mYWlsaW5nVVJMKCksIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnRyYW5zZm9ybUhhbmRsZXNU
b09iamVjdHModXNlckRhdGEub2JqZWN0KCkpLmdldCgpKTsKIAogICAgIC8vIEluaXRhdGUgdGhl
IGxvYWQgaW4gV2ViQ29yZS4KLSAgICBtX21haW5GcmFtZS0+Y29yZUZyYW1lKCktPmxvYWRlcigp
LmxvYWQoRnJhbWVMb2FkUmVxdWVzdChtX21haW5GcmFtZS0+Y29yZUZyYW1lKCksIHJlcXVlc3Qs
IHN1YnN0aXR1dGVEYXRhKSk7CisgICAgbV9tYWluRnJhbWUtPmNvcmVGcmFtZSgpLT5sb2FkZXIo
KS5sb2FkKEZyYW1lTG9hZFJlcXVlc3QobV9tYWluRnJhbWUtPmNvcmVGcmFtZSgpLCByZXF1ZXN0
LCBTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5OjpTaG91bGROb3RBbGxvdywgc3Vic3RpdHV0
ZURhdGEpKTsKIH0KIAogdm9pZCBXZWJQYWdlOjpsb2FkU3RyaW5nKHVpbnQ2NF90IG5hdmlnYXRp
b25JRCwgY29uc3QgU3RyaW5nJiBodG1sU3RyaW5nLCBjb25zdCBTdHJpbmcmIE1JTUVUeXBlLCBj
b25zdCBVUkwmIGJhc2VVUkwsIGNvbnN0IFVSTCYgdW5yZWFjaGFibGVVUkwsIGNvbnN0IFVzZXJE
YXRhJiB1c2VyRGF0YSkKQEAgLTExMDgsNyArMTEwOCw4IEBAIHZvaWQgV2ViUGFnZTo6bmF2aWdh
dGVUb1BERkxpbmtXaXRoU2ltdWxhdGVkQ2xpY2soY29uc3QgU3RyaW5nJiB1cmwsIEludFBvaW50
IGRvCiAKICAgICBjb25zdCBpbnQgc2luZ2xlQ2xpY2sgPSAxOwogICAgIFJlZlB0cjxNb3VzZUV2
ZW50PiBtb3VzZUV2ZW50ID0gTW91c2VFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5jbGlja0V2
ZW50LCB0cnVlLCB0cnVlLCBjdXJyZW50VGltZSgpLCBudWxscHRyLCBzaW5nbGVDbGljaywgc2Ny
ZWVuUG9pbnQueCgpLCBzY3JlZW5Qb2ludC55KCksIGRvY3VtZW50UG9pbnQueCgpLCBkb2N1bWVu
dFBvaW50LnkoKSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIDAsIG51bGxwdHIsIDAsIG51
bGxwdHIpOwotICAgIG1haW5GcmFtZS0+bG9hZGVyKCkudXJsU2VsZWN0ZWQobWFpbkZyYW1lRG9j
dW1lbnQtPmNvbXBsZXRlVVJMKHVybCksIGVtcHR5U3RyaW5nKCksIG1vdXNlRXZlbnQuZ2V0KCks
IExvY2tIaXN0b3J5OjpObywgTG9ja0JhY2tGb3J3YXJkTGlzdDo6Tm8sIFNob3VsZFNlbmRSZWZl
cnJlcjo6TWF5YmVTZW5kUmVmZXJyZXIpOworCisgICAgbWFpbkZyYW1lLT5sb2FkZXIoKS51cmxT
ZWxlY3RlZChtYWluRnJhbWVEb2N1bWVudC0+Y29tcGxldGVVUkwodXJsKSwgZW1wdHlTdHJpbmco
KSwgbW91c2VFdmVudC5nZXQoKSwgTG9ja0hpc3Rvcnk6Ok5vLCBMb2NrQmFja0ZvcndhcmRMaXN0
OjpObywgU2hvdWxkU2VuZFJlZmVycmVyOjpNYXliZVNlbmRSZWZlcnJlciwgU2hvdWxkT3BlbkV4
dGVybmFsVVJMc1BvbGljeTo6U2hvdWxkTm90QWxsb3cpOwogfQogCiB2b2lkIFdlYlBhZ2U6OnN0
b3BMb2FkaW5nRnJhbWUodWludDY0X3QgZnJhbWVJRCkK
</data>
<flag name="review"
          id="279047"
          type_id="1"
          status="+"
          setter="achristensen"
    />
          </attachment>
      

    </bug>

</bugzilla>