<?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>69676</bug_id>
          
          <creation_ts>2011-10-07 15:59:42 -0700</creation_ts>
          <short_desc>[Chromium] Improve AccessibilityController and AccessibilityUIElement</short_desc>
          <delta_ts>2011-10-11 00:28:09 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Accessibility</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Dominic Mazzoni">dmazzoni</reporter>
          <assigned_to name="Dominic Mazzoni">dmazzoni</assigned_to>
          <cc>aboxhall</cc>
    
    <cc>cfleizach</cc>
    
    <cc>dglazkov</cc>
    
    <cc>fishd</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>480360</commentid>
    <comment_count>0</comment_count>
    <who name="Dominic Mazzoni">dmazzoni</who>
    <bug_when>2011-10-07 15:59:42 -0700</bug_when>
    <thetext>Specifically, I have a couple of WebCore/accessibility patches that need layout tests, and we should have tests that assert that we get exactly the notifications we need for Chromium, since the same notifications aren&apos;t necessarily needed on Mac OS X or other platforms.

The initial goal is to implement enough functionality to make those tests work and get as many other accessibility layout tests to pass at the same time.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>480475</commentid>
    <comment_count>1</comment_count>
      <attachid>110253</attachid>
    <who name="Dominic Mazzoni">dmazzoni</who>
    <bug_when>2011-10-07 21:44:04 -0700</bug_when>
    <thetext>Created attachment 110253
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>480568</commentid>
    <comment_count>2</comment_count>
      <attachid>110253</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2011-10-08 09:41:50 -0700</bug_when>
    <thetext>Comment on attachment 110253
Patch

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

seems ok overall. a few minor things interspersed.

&gt; Tools/DumpRenderTree/chromium/AccessibilityUIElement.cpp:374
&gt; +        CppVariant notificationNameArgument;

you should declare  m_notificationCallbacks.size(); outside the loop so it&apos;s not called on every iteration

&gt; Tools/DumpRenderTree/chromium/AccessibilityUIElement.cpp:454
&gt; +    CppVariant* result)

this seems like it should be on the same line as the method declaration

&gt; Tools/DumpRenderTree/chromium/AccessibilityUIElement.cpp:725
&gt; +        result-&gt;setNull();

this if statement seems like it could lead to crashes in DRT
ie) if arguments.size == 0, then the first half of the argument evaluates to true, then the second half ( arguments[0] ) is evaluated, which will crash since size == 0

&gt; Tools/DumpRenderTree/chromium/AccessibilityUIElement.cpp:791
&gt; +        if (m_elements[i]-&gt;isEqual(object))

You should move m_elements.size() outside the food loop

&gt; Tools/DumpRenderTree/chromium/AccessibilityUIElement.h:50
&gt; +    virtual bool isEqual(const WebKit::WebAccessibilityObject&amp; other);

&quot;other&quot; is unnecessary here

&gt; Tools/DumpRenderTree/chromium/AccessibilityUIElement.h:126
&gt; +        const CppArgumentList&amp;, CppVariant*);

does not seem necessary to put this on a separate line</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>481201</commentid>
    <comment_count>3</comment_count>
      <attachid>110253</attachid>
    <who name="Dominic Mazzoni">dmazzoni</who>
    <bug_when>2011-10-10 15:09:16 -0700</bug_when>
    <thetext>Comment on attachment 110253
Patch

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

&gt;&gt; Tools/DumpRenderTree/chromium/AccessibilityUIElement.cpp:374
&gt;&gt; +        CppVariant notificationNameArgument;
&gt; 
&gt; you should declare  m_notificationCallbacks.size(); outside the loop so it&apos;s not called on every iteration

Sure, done. I know older compilers couldn&apos;t do this automatically, but maybe clang can? Either way I want to match the webkit style.

&gt;&gt; Tools/DumpRenderTree/chromium/AccessibilityUIElement.cpp:454
&gt;&gt; +    CppVariant* result)
&gt; 
&gt; this seems like it should be on the same line as the method declaration

Done

&gt;&gt; Tools/DumpRenderTree/chromium/AccessibilityUIElement.cpp:725
&gt;&gt; +        result-&gt;setNull();
&gt; 
&gt; this if statement seems like it could lead to crashes in DRT
&gt; ie) if arguments.size == 0, then the first half of the argument evaluates to true, then the second half ( arguments[0] ) is evaluated, which will crash since size == 0

Good catch. This should have been an || not an &amp;&amp;. Same with the function below.

&gt;&gt; Tools/DumpRenderTree/chromium/AccessibilityUIElement.cpp:791
&gt;&gt; +        if (m_elements[i]-&gt;isEqual(object))
&gt; 
&gt; You should move m_elements.size() outside the food loop

I wonder if you were hungry when you wrote this. :) Done.

&gt;&gt; Tools/DumpRenderTree/chromium/AccessibilityUIElement.h:50
&gt;&gt; +    virtual bool isEqual(const WebKit::WebAccessibilityObject&amp; other);
&gt; 
&gt; &quot;other&quot; is unnecessary here

Done. If I understand correctly, I do want an argument name when the argument is nonobvious, like in notificationReceived, below - but not when there&apos;s a single argument and the meaning is obvious from the name of the method, is that right?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>481204</commentid>
    <comment_count>4</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2011-10-10 15:11:13 -0700</bug_when>
    <thetext>(In reply to comment #3)

&gt; Done. If I understand correctly, I do want an argument name when the argument is nonobvious, like in notificationReceived, below - but not when there&apos;s a single argument and the meaning is obvious from the name of the method, is that right?

Yes, I believe that is the standard. Thanks</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>481219</commentid>
    <comment_count>5</comment_count>
      <attachid>110418</attachid>
    <who name="Dominic Mazzoni">dmazzoni</who>
    <bug_when>2011-10-10 15:22:17 -0700</bug_when>
    <thetext>Created attachment 110418
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>481221</commentid>
    <comment_count>6</comment_count>
      <attachid>110418</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2011-10-10 15:24:23 -0700</bug_when>
    <thetext>Comment on attachment 110418
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>481225</commentid>
    <comment_count>7</comment_count>
      <attachid>110420</attachid>
    <who name="Dominic Mazzoni">dmazzoni</who>
    <bug_when>2011-10-10 15:25:38 -0700</bug_when>
    <thetext>Created attachment 110420
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>481226</commentid>
    <comment_count>8</comment_count>
      <attachid>110420</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-10-10 15:25:54 -0700</bug_when>
    <thetext>Comment on attachment 110420
Patch for landing

Rejecting attachment 110420 from commit-queue.

dmazzoni@google.com does not have committer permissions according to http://trac.webkit.org/browser/trunk/Tools/Scripts/webkitpy/common/config/committers.py.

- If you do not have committer rights please read http://webkit.org/coding/contributing.html for instructions on how to use bugzilla flags.

- If you have committer rights please correct the error in Tools/Scripts/webkitpy/common/config/committers.py by adding yourself to the file (no review needed).  The commit-queue restarts itself every 2 hours.  After restart the commit-queue will correctly respect your committer rights.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>481476</commentid>
    <comment_count>9</comment_count>
      <attachid>110420</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-10-11 00:28:04 -0700</bug_when>
    <thetext>Comment on attachment 110420
Patch for landing

Clearing flags on attachment: 110420

Committed r97128: &lt;http://trac.webkit.org/changeset/97128&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>481477</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-10-11 00:28:09 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>110253</attachid>
            <date>2011-10-07 21:44:04 -0700</date>
            <delta_ts>2011-10-10 15:22:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-69676-20111007214403.patch</filename>
            <type>text/plain</type>
            <size>50326</size>
            <attacher name="Dominic Mazzoni">dmazzoni</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDk3MDAwKQorKysgVG9vbHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMg
KzEsODAgQEAKKzIwMTEtMTAtMDcgIERvbWluaWMgTWF6em9uaSAgPGRtYXp6b25pQGdvb2dsZS5j
b20+CisKKyAgICAgICAgVXBkYXRlIENocm9taXVtIGFjY2Vzc2liaWxpdHkgc3VwcG9ydCBpbiBE
UlQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02OTY2
OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZHMg
c2V2ZXJhbCBtaXNzaW5nIHByb3BlcnRpZXMgYW5kIG1ldGhvZHMgdG8gZW5hYmxlIG1vcmUKKyAg
ICAgICAgdGVzdHMgdG8gcGFzcywgYW5kIGluIHBhcnRpY3VsYXIgYWRkcyBzdXBwb3J0IGZvciBu
b3RpZmljYXRpb24KKyAgICAgICAgY2FsbGJhY2tzLgorCisgICAgICAgICogRHVtcFJlbmRlclRy
ZWUvY2hyb21pdW0vQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuY3BwOgorICAgICAgICAoQWNjZXNz
aWJpbGl0eUNvbnRyb2xsZXI6OkFjY2Vzc2liaWxpdHlDb250cm9sbGVyKToKKyAgICAgICAgKEFj
Y2Vzc2liaWxpdHlDb250cm9sbGVyOjpyZXNldCk6CisgICAgICAgIChBY2Nlc3NpYmlsaXR5Q29u
dHJvbGxlcjo6Z2V0Rm9jdXNlZEVsZW1lbnQpOgorICAgICAgICAoQWNjZXNzaWJpbGl0eUNvbnRy
b2xsZXI6OnNob3VsZExvZ0FjY2Vzc2liaWxpdHlFdmVudHMpOgorICAgICAgICAoQWNjZXNzaWJp
bGl0eUNvbnRyb2xsZXI6Om5vdGlmaWNhdGlvblJlY2VpdmVkKToKKyAgICAgICAgKEFjY2Vzc2li
aWxpdHlDb250cm9sbGVyOjpsb2dBY2Nlc3NpYmlsaXR5RXZlbnRzQ2FsbGJhY2spOgorICAgICAg
ICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyLmg6Cisg
ICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5j
cHA6CisgICAgICAgIChnZXRIZWxwVGV4dCk6CisgICAgICAgIChnZXRTdHJpbmdWYWx1ZSk6Cisg
ICAgICAgIChnZXRPcmllbnRhdGlvbik6CisgICAgICAgIChBY2Nlc3NpYmlsaXR5VUlFbGVtZW50
OjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50KToKKyAgICAgICAgKEFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQ6OmdldENoaWxkQXRJbmRleCk6CisgICAgICAgIChBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpp
c0VxdWFsKToKKyAgICAgICAgKEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6Om5vdGlmaWNhdGlvblJl
Y2VpdmVkKToKKyAgICAgICAgKEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnJvbGVHZXR0ZXJDYWxs
YmFjayk6CisgICAgICAgIChBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojp0aXRsZUdldHRlckNhbGxi
YWNrKToKKyAgICAgICAgKEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmRlc2NyaXB0aW9uR2V0dGVy
Q2FsbGJhY2spOgorICAgICAgICAoQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aGVscFRleHRHZXR0
ZXJDYWxsYmFjayk6CisgICAgICAgIChBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzdHJpbmdWYWx1
ZUdldHRlckNhbGxiYWNrKToKKyAgICAgICAgKEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnhHZXR0
ZXJDYWxsYmFjayk6CisgICAgICAgIChBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojp5R2V0dGVyQ2Fs
bGJhY2spOgorICAgICAgICAoQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6d2lkdGhHZXR0ZXJDYWxs
YmFjayk6CisgICAgICAgIChBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpoZWlnaHRHZXR0ZXJDYWxs
YmFjayk6CisgICAgICAgIChBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjppbnRWYWx1ZUdldHRlckNh
bGxiYWNrKToKKyAgICAgICAgKEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6Om1pblZhbHVlR2V0dGVy
Q2FsbGJhY2spOgorICAgICAgICAoQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6bWF4VmFsdWVHZXR0
ZXJDYWxsYmFjayk6CisgICAgICAgIChBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpjaGlsZHJlbkNv
dW50R2V0dGVyQ2FsbGJhY2spOgorICAgICAgICAoQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aW5z
ZXJ0aW9uUG9pbnRMaW5lTnVtYmVyR2V0dGVyQ2FsbGJhY2spOgorICAgICAgICAoQWNjZXNzaWJp
bGl0eVVJRWxlbWVudDo6c2VsZWN0ZWRUZXh0UmFuZ2VHZXR0ZXJDYWxsYmFjayk6CisgICAgICAg
IChBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojppc0VuYWJsZWRHZXR0ZXJDYWxsYmFjayk6CisgICAg
ICAgIChBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojppc1JlcXVpcmVkR2V0dGVyQ2FsbGJhY2spOgor
ICAgICAgICAoQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNGb2N1c2VkR2V0dGVyQ2FsbGJhY2sp
OgorICAgICAgICAoQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNGb2N1c2FibGVHZXR0ZXJDYWxs
YmFjayk6CisgICAgICAgIChBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojppc1NlbGVjdGVkR2V0dGVy
Q2FsbGJhY2spOgorICAgICAgICAoQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNTZWxlY3RhYmxl
R2V0dGVyQ2FsbGJhY2spOgorICAgICAgICAoQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNNdWx0
aVNlbGVjdGFibGVHZXR0ZXJDYWxsYmFjayk6CisgICAgICAgIChBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50Ojppc0V4cGFuZGVkR2V0dGVyQ2FsbGJhY2spOgorICAgICAgICAoQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudDo6aXNDaGVja2VkR2V0dGVyQ2FsbGJhY2spOgorICAgICAgICAoQWNjZXNzaWJpbGl0
eVVJRWxlbWVudDo6aXNWaXNpYmxlR2V0dGVyQ2FsbGJhY2spOgorICAgICAgICAoQWNjZXNzaWJp
bGl0eVVJRWxlbWVudDo6aXNPZmZTY3JlZW5HZXR0ZXJDYWxsYmFjayk6CisgICAgICAgIChBY2Nl
c3NpYmlsaXR5VUlFbGVtZW50Ojppc0NvbGxhcHNlZEdldHRlckNhbGxiYWNrKToKKyAgICAgICAg
KEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6Omhhc1BvcHVwR2V0dGVyQ2FsbGJhY2spOgorICAgICAg
ICAoQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNWYWxpZEdldHRlckNhbGxiYWNrKToKKyAgICAg
ICAgKEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6Om9yaWVudGF0aW9uR2V0dGVyQ2FsbGJhY2spOgor
ICAgICAgICAoQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2hvd01lbnVDYWxsYmFjayk6CisgICAg
ICAgIChBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpwcmVzc0NhbGxiYWNrKToKKyAgICAgICAgKEFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzRXF1YWxDYWxsYmFjayk6CisgICAgICAgIChBY2Nlc3Np
YmlsaXR5VUlFbGVtZW50OjphZGROb3RpZmljYXRpb25MaXN0ZW5lckNhbGxiYWNrKToKKyAgICAg
ICAgKEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnJlbW92ZU5vdGlmaWNhdGlvbkxpc3RlbmVyQ2Fs
bGJhY2spOgorICAgICAgICAoQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6dGFrZUZvY3VzQ2FsbGJh
Y2spOgorICAgICAgICAoQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6ZmFsbGJhY2tDYWxsYmFjayk6
CisgICAgICAgIChSb290QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6Z2V0Q2hpbGRBdEluZGV4KToK
KyAgICAgICAgKEFjY2Vzc2liaWxpdHlVSUVsZW1lbnRMaXN0OjpnZXRPckNyZWF0ZSk6CisgICAg
ICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5oOgor
ICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0NwcFZhcmlhbnQuY3BwOgorICAgICAg
ICAoQ3BwVmFyaWFudDo6aW52b2tlRGVmYXVsdCk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUv
Y2hyb21pdW0vQ3BwVmFyaWFudC5oOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVt
L0xheW91dFRlc3RDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKExheW91dFRlc3RDb250cm9sbGVy
OjpMYXlvdXRUZXN0Q29udHJvbGxlcik6CisgICAgICAgIChMYXlvdXRUZXN0Q29udHJvbGxlcjo6
cmVzZXQpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250
cm9sbGVyLmg6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3Qu
Y3BwOgorICAgICAgICAoV2ViVmlld0hvc3Q6OnBvc3RBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9u
KToKKwogMjAxMS0xMC0wNyAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgogCiAgICAg
ICAgIEFkZCBhIENvbnRlbnQtU2VjdXJpdHktUG9saWN5IHRvIGdhcmRlbi1vLW1hdGljCkluZGV4
OiBUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vQWNjZXNzaWJp
bGl0eUNvbnRyb2xsZXIuY3BwCShyZXZpc2lvbiA5Njk5MCkKKysrIFRvb2xzL0R1bXBSZW5kZXJU
cmVlL2Nocm9taXVtL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtNDEsMTMgKzQxLDExIEBACiB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogCiBBY2Nlc3NpYmls
aXR5Q29udHJvbGxlcjo6QWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIoVGVzdFNoZWxsKiBzaGVsbCkK
LSAgICA6IG1fZHVtcEFjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25zKGZhbHNlKQorICAgIDogbV9s
b2dBY2Nlc3NpYmlsaXR5RXZlbnRzKGZhbHNlKQogICAgICwgbV9zaGVsbChzaGVsbCkKIHsKIAot
ICAgIGJpbmRNZXRob2QoImR1bXBBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9ucyIsICZBY2Nlc3Np
YmlsaXR5Q29udHJvbGxlcjo6ZHVtcEFjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25zKTsKLSAgICBi
aW5kTWV0aG9kKCJsb2dGb2N1c0V2ZW50cyIsICZBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6bG9n
Rm9jdXNFdmVudHNDYWxsYmFjayk7Ci0gICAgYmluZE1ldGhvZCgibG9nU2Nyb2xsaW5nU3RhcnRF
dmVudHMiLCAmQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6OmxvZ1Njcm9sbGluZ1N0YXJ0RXZlbnRz
Q2FsbGJhY2spOworICAgIGJpbmRNZXRob2QoImxvZ0FjY2Vzc2liaWxpdHlFdmVudHMiLCAmQWNj
ZXNzaWJpbGl0eUNvbnRyb2xsZXI6OmxvZ0FjY2Vzc2liaWxpdHlFdmVudHNDYWxsYmFjayk7CiAK
ICAgICBiaW5kUHJvcGVydHkoImZvY3VzZWRFbGVtZW50IiwgJkFjY2Vzc2liaWxpdHlDb250cm9s
bGVyOjpmb2N1c2VkRWxlbWVudEdldHRlckNhbGxiYWNrKTsKICAgICBiaW5kUHJvcGVydHkoInJv
b3RFbGVtZW50IiwgJkFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjpyb290RWxlbWVudEdldHRlckNh
bGxiYWNrKTsKQEAgLTY2LDggKzY0LDggQEAgdm9pZCBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6
cmVzZXQoKQogICAgIG1fcm9vdEVsZW1lbnQgPSBXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0KCk7CiAg
ICAgbV9mb2N1c2VkRWxlbWVudCA9IFdlYkFjY2Vzc2liaWxpdHlPYmplY3QoKTsKICAgICBtX2Vs
ZW1lbnRzLmNsZWFyKCk7Ci0gICAgCi0gICAgbV9kdW1wQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlv
bnMgPSBmYWxzZTsKKworICAgIG1fbG9nQWNjZXNzaWJpbGl0eUV2ZW50cyA9IGZhbHNlOwogfQog
CiB2b2lkIEFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjpzZXRGb2N1c2VkRWxlbWVudChjb25zdCBX
ZWJBY2Nlc3NpYmlsaXR5T2JqZWN0JiBmb2N1c2VkRWxlbWVudCkKQEAgLTc5LDcgKzc3LDcgQEAg
QWNjZXNzaWJpbGl0eVVJRWxlbWVudCogQWNjZXNzaWJpbGl0eUNvbgogewogICAgIGlmIChtX2Zv
Y3VzZWRFbGVtZW50LmlzTnVsbCgpKQogICAgICAgICBtX2ZvY3VzZWRFbGVtZW50ID0gbV9zaGVs
bC0+d2ViVmlldygpLT5hY2Nlc3NpYmlsaXR5T2JqZWN0KCk7Ci0gICAgcmV0dXJuIG1fZWxlbWVu
dHMuY3JlYXRlKG1fZm9jdXNlZEVsZW1lbnQpOworICAgIHJldHVybiBtX2VsZW1lbnRzLmdldE9y
Q3JlYXRlKG1fZm9jdXNlZEVsZW1lbnQpOwogfQogCiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50KiBB
Y2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6Z2V0Um9vdEVsZW1lbnQoKQpAQCAtODksMjEgKzg3LDIw
IEBAIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQqIEFjY2Vzc2liaWxpdHlDb24KICAgICByZXR1cm4g
bV9lbGVtZW50cy5jcmVhdGVSb290KG1fcm9vdEVsZW1lbnQpOwogfQogCi12b2lkIEFjY2Vzc2li
aWxpdHlDb250cm9sbGVyOjpkdW1wQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbnMoY29uc3QgQ3Bw
QXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCogcmVzdWx0KQorYm9vbCBBY2Nlc3NpYmlsaXR5Q29u
dHJvbGxlcjo6c2hvdWxkTG9nQWNjZXNzaWJpbGl0eUV2ZW50cygpCiB7Ci0gICAgbV9kdW1wQWNj
ZXNzaWJpbGl0eU5vdGlmaWNhdGlvbnMgPSB0cnVlOwotICAgIHJlc3VsdC0+c2V0TnVsbCgpOwor
ICAgIHJldHVybiBtX2xvZ0FjY2Vzc2liaWxpdHlFdmVudHM7CiB9CiAKLXZvaWQgQWNjZXNzaWJp
bGl0eUNvbnRyb2xsZXI6OmxvZ0ZvY3VzRXZlbnRzQ2FsbGJhY2soY29uc3QgQ3BwQXJndW1lbnRM
aXN0JiwgQ3BwVmFyaWFudCogcmVzdWx0KQordm9pZCBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6
bm90aWZpY2F0aW9uUmVjZWl2ZWQoY29uc3QgV2ViS2l0OjpXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0
JiB0YXJnZXQsIGNvbnN0IGNoYXIqIG5vdGlmaWNhdGlvbk5hbWUpCiB7Ci0gICAgLy8gQXMgb2Yg
cjQ5MDMxLCB0aGlzIGlzIG5vdCBiZWluZyB1c2VkIHVwc3RyZWFtLgotICAgIHJlc3VsdC0+c2V0
TnVsbCgpOworICAgIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQqIGVsZW1lbnQgPSBtX2VsZW1lbnRz
LmdldE9yQ3JlYXRlKHRhcmdldCk7CisgICAgZWxlbWVudC0+bm90aWZpY2F0aW9uUmVjZWl2ZWQo
bm90aWZpY2F0aW9uTmFtZSk7CiB9CiAKLXZvaWQgQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6Omxv
Z1Njcm9sbGluZ1N0YXJ0RXZlbnRzQ2FsbGJhY2soY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3Bw
VmFyaWFudCogcmVzdWx0KQordm9pZCBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6bG9nQWNjZXNz
aWJpbGl0eUV2ZW50c0NhbGxiYWNrKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQq
IHJlc3VsdCkKIHsKLSAgICAvLyBBcyBvZiByNDkwMzEsIHRoaXMgaXMgbm90IGJlaW5nIHVzZWQg
dXBzdHJlYW0uCisgICAgbV9sb2dBY2Nlc3NpYmlsaXR5RXZlbnRzID0gdHJ1ZTsKICAgICByZXN1
bHQtPnNldE51bGwoKTsKIH0KIApJbmRleDogVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0v
QWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9EdW1wUmVuZGVy
VHJlZS9jaHJvbWl1bS9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5oCShyZXZpc2lvbiA5Njk5MCkK
KysrIFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0FjY2Vzc2liaWxpdHlDb250cm9sbGVy
LmgJKHdvcmtpbmcgY29weSkKQEAgLTUyLDIyICs1MiwxNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBz
ZXRGb2N1c2VkRWxlbWVudChjb25zdCBXZWJLaXQ6OldlYkFjY2Vzc2liaWxpdHlPYmplY3QmKTsK
ICAgICBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50KiBnZXRGb2N1c2VkRWxlbWVudCgpOwogICAgIEFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQqIGdldFJvb3RFbGVtZW50KCk7Ci0gICAgCi0gICAgLy8gVGhp
cyBmdW5jdGlvbiBzZXRzIGEgZmxhZyB0aGF0IHRlbGxzIHRoZSB0ZXN0X3NoZWxsIHRvIGR1bXAg
YWxsIAotICAgIC8vIGFjY2Vzc2liaWxpdHkgbm90aWZpY2F0aW9ucy4KLSAgICB2b2lkIGR1bXBB
Y2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9ucyhjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJp
YW50Kik7Ci0KLXB1YmxpYzoKLSAgICAvLyBUaGUgZm9sbG93aW5nIG1ldGhvZHMgYXJlIG5vdCBl
eHBvc2VkIHRvIEphdmFTY3JpcHQuCi0gICAgYm9vbCBzaG91bGREdW1wQWNjZXNzaWJpbGl0eU5v
dGlmaWNhdGlvbnMoKSB7IHJldHVybiBtX2R1bXBBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uczsg
fQorCisgICAgYm9vbCBzaG91bGRMb2dBY2Nlc3NpYmlsaXR5RXZlbnRzKCk7CisKKyAgICB2b2lk
IG5vdGlmaWNhdGlvblJlY2VpdmVkKGNvbnN0IFdlYktpdDo6V2ViQWNjZXNzaWJpbGl0eU9iamVj
dCYgdGFyZ2V0LCBjb25zdCBjaGFyKiBub3RpZmljYXRpb25OYW1lKTsKIAogcHJpdmF0ZToKLSAg
ICAvLyBJZiB0cnVlLCB0aGUgdGVzdF9zaGVsbCB3aWxsIGR1bXAgYWxsIGFjY2Vzc2liaWxpdHkg
bm90aWZpY2F0aW9ucy4KLSAgICBib29sIG1fZHVtcEFjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25z
OworICAgIC8vIElmIHRydWUsIHdpbGwgbG9nIGFsbCBhY2Nlc3NpYmlsaXR5IG5vdGlmaWNhdGlv
bnMuCisgICAgYm9vbCBtX2xvZ0FjY2Vzc2liaWxpdHlFdmVudHM7CiAKICAgICAvLyBCb3VuZCBt
ZXRob2RzIGFuZCBwcm9wZXJ0aWVzCi0gICAgdm9pZCBsb2dGb2N1c0V2ZW50c0NhbGxiYWNrKGNv
bnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKLSAgICB2b2lkIGxvZ1Njcm9sbGlu
Z1N0YXJ0RXZlbnRzQ2FsbGJhY2soY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCop
OworICAgIHZvaWQgbG9nQWNjZXNzaWJpbGl0eUV2ZW50c0NhbGxiYWNrKGNvbnN0IENwcEFyZ3Vt
ZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKICAgICB2b2lkIGZhbGxiYWNrQ2FsbGJhY2soY29uc3Qg
Q3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOwogCiAgICAgdm9pZCBmb2N1c2VkRWxlbWVu
dEdldHRlckNhbGxiYWNrKENwcFZhcmlhbnQqKTsKSW5kZXg6IFRvb2xzL0R1bXBSZW5kZXJUcmVl
L2Nocm9taXVtL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xz
L0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuY3BwCShyZXZp
c2lvbiA5Njk5MCkKKysrIFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0FjY2Vzc2liaWxp
dHlVSUVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw2ICszMyw3IEBACiAKICNpbmNs
dWRlICJXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0LmgiCiAjaW5jbHVkZSAiV2ViQ1N0cmluZy5oIgor
I2luY2x1ZGUgIldlYlJlY3QuaCIKICNpbmNsdWRlICJXZWJTdHJpbmcuaCIKICNpbmNsdWRlIDx3
dGYvQXNzZXJ0aW9ucy5oPgogCkBAIC0yMTQsNiArMjE1LDE4IEBAIHN0cmluZyBnZXREZXNjcmlw
dGlvbihjb25zdCBXZWJBY2Nlc3NpYmkKICAgICByZXR1cm4gZGVzY3JpcHRpb24uaW5zZXJ0KDAs
ICJBWERlc2NyaXB0aW9uOiAiKTsKIH0KIAorc3RyaW5nIGdldEhlbHBUZXh0KGNvbnN0IFdlYkFj
Y2Vzc2liaWxpdHlPYmplY3QmIG9iamVjdCkKK3sKKyAgICBzdHJpbmcgaGVscFRleHQgPSBvYmpl
Y3QuaGVscFRleHQoKS51dGY4KCk7CisgICAgcmV0dXJuIGhlbHBUZXh0Lmluc2VydCgwLCAiQVhI
ZWxwOiAiKTsKK30KKworc3RyaW5nIGdldFN0cmluZ1ZhbHVlKGNvbnN0IFdlYkFjY2Vzc2liaWxp
dHlPYmplY3QmIG9iamVjdCkKK3sKKyAgICBzdHJpbmcgdmFsdWUgPSBvYmplY3Quc3RyaW5nVmFs
dWUoKS51dGY4KCk7CisgICAgcmV0dXJuIHZhbHVlLmluc2VydCgwLCAiQVhWYWx1ZTogIik7Cit9
CisKIHN0cmluZyBnZXRSb2xlKGNvbnN0IFdlYkFjY2Vzc2liaWxpdHlPYmplY3QmIG9iamVjdCkK
IHsKICAgICByZXR1cm4gcm9sZVRvU3RyaW5nKG9iamVjdC5yb2xlVmFsdWUoKSk7CkBAIC0yMjUs
NiArMjM4LDE0IEBAIHN0cmluZyBnZXRUaXRsZShjb25zdCBXZWJBY2Nlc3NpYmlsaXR5T2IKICAg
ICByZXR1cm4gdGl0bGUuaW5zZXJ0KDAsICJBWFRpdGxlOiAiKTsKIH0KIAorc3RyaW5nIGdldE9y
aWVudGF0aW9uKGNvbnN0IFdlYkFjY2Vzc2liaWxpdHlPYmplY3QmIG9iamVjdCkKK3sKKyAgICBp
ZiAob2JqZWN0LmlzVmVydGljYWwoKSkKKyAgICAgICAgcmV0dXJuICJBWE9yaWVudGF0aW9uOiBB
WFZlcnRpY2FsT3JpZW50YXRpb24iOworCisgICAgcmV0dXJuICJBWE9yaWVudGF0aW9uOiBBWEhv
cml6b250YWxPcmllbnRhdGlvbiI7Cit9CisKIHN0cmluZyBnZXRBdHRyaWJ1dGVzKGNvbnN0IFdl
YkFjY2Vzc2liaWxpdHlPYmplY3QmIG9iamVjdCkKIHsKICAgICAvLyBGSVhNRTogQ29uY2F0ZW5h
dGUgYWxsIGF0dHJpYnV0ZXMgb2YgdGhlIEFjY2Vzc2liaWxpdHlPYmplY3QuCkBAIC0yNjEsODIg
KzI4MiwyNjYgQEAgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6QWNjZXNzaWJpbGl0eVVJRQogCiAg
ICAgQVNTRVJUKGZhY3RvcnkpOwogCisgICAgLy8KKyAgICAvLyBQcm9wZXJ0aWVzCisgICAgLy8K
KworICAgIGJpbmRQcm9wZXJ0eSgicm9sZSIsICZBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpyb2xl
R2V0dGVyQ2FsbGJhY2spOworICAgIGJpbmRQcm9wZXJ0eSgidGl0bGUiLCAmQWNjZXNzaWJpbGl0
eVVJRWxlbWVudDo6dGl0bGVHZXR0ZXJDYWxsYmFjayk7CisgICAgYmluZFByb3BlcnR5KCJkZXNj
cmlwdGlvbiIsICZBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpkZXNjcmlwdGlvbkdldHRlckNhbGxi
YWNrKTsKKyAgICBiaW5kUHJvcGVydHkoImhlbHBUZXh0IiwgJkFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQ6OmhlbHBUZXh0R2V0dGVyQ2FsbGJhY2spOworICAgIGJpbmRQcm9wZXJ0eSgic3RyaW5nVmFs
dWUiLCAmQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c3RyaW5nVmFsdWVHZXR0ZXJDYWxsYmFjayk7
CisgICAgYmluZFByb3BlcnR5KCJ4IiwgJkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnhHZXR0ZXJD
YWxsYmFjayk7CisgICAgYmluZFByb3BlcnR5KCJ5IiwgJkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6
OnlHZXR0ZXJDYWxsYmFjayk7CisgICAgYmluZFByb3BlcnR5KCJ3aWR0aCIsICZBY2Nlc3NpYmls
aXR5VUlFbGVtZW50Ojp3aWR0aEdldHRlckNhbGxiYWNrKTsKKyAgICBiaW5kUHJvcGVydHkoImhl
aWdodCIsICZBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpoZWlnaHRHZXR0ZXJDYWxsYmFjayk7Cisg
ICAgYmluZFByb3BlcnR5KCJpbnRWYWx1ZSIsICZBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjppbnRW
YWx1ZUdldHRlckNhbGxiYWNrKTsKKyAgICBiaW5kUHJvcGVydHkoIm1pblZhbHVlIiwgJkFjY2Vz
c2liaWxpdHlVSUVsZW1lbnQ6Om1pblZhbHVlR2V0dGVyQ2FsbGJhY2spOworICAgIGJpbmRQcm9w
ZXJ0eSgibWF4VmFsdWUiLCAmQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6bWF4VmFsdWVHZXR0ZXJD
YWxsYmFjayk7CisgICAgYmluZFByb3BlcnR5KCJjaGlsZHJlbkNvdW50IiwgJkFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQ6OmNoaWxkcmVuQ291bnRHZXR0ZXJDYWxsYmFjayk7CisgICAgYmluZFByb3Bl
cnR5KCJpbnNlcnRpb25Qb2ludExpbmVOdW1iZXIiLCAmQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6
aW5zZXJ0aW9uUG9pbnRMaW5lTnVtYmVyR2V0dGVyQ2FsbGJhY2spOworICAgIGJpbmRQcm9wZXJ0
eSgic2VsZWN0ZWRUZXh0UmFuZ2UiLCAmQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2VsZWN0ZWRU
ZXh0UmFuZ2VHZXR0ZXJDYWxsYmFjayk7CisgICAgYmluZFByb3BlcnR5KCJpc0VuYWJsZWQiLCAm
QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNFbmFibGVkR2V0dGVyQ2FsbGJhY2spOworICAgIGJp
bmRQcm9wZXJ0eSgiaXNSZXF1aXJlZCIsICZBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojppc1JlcXVp
cmVkR2V0dGVyQ2FsbGJhY2spOworICAgIGJpbmRQcm9wZXJ0eSgiaXNGb2N1c2VkIiwgJkFjY2Vz
c2liaWxpdHlVSUVsZW1lbnQ6OmlzRm9jdXNlZEdldHRlckNhbGxiYWNrKTsKKyAgICBiaW5kUHJv
cGVydHkoImlzRm9jdXNhYmxlIiwgJkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzRm9jdXNhYmxl
R2V0dGVyQ2FsbGJhY2spOworICAgIGJpbmRQcm9wZXJ0eSgiaXNTZWxlY3RlZCIsICZBY2Nlc3Np
YmlsaXR5VUlFbGVtZW50Ojppc1NlbGVjdGVkR2V0dGVyQ2FsbGJhY2spOworICAgIGJpbmRQcm9w
ZXJ0eSgiaXNTZWxlY3RhYmxlIiwgJkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzU2VsZWN0YWJs
ZUdldHRlckNhbGxiYWNrKTsKKyAgICBiaW5kUHJvcGVydHkoImlzTXVsdGlTZWxlY3RhYmxlIiwg
JkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzTXVsdGlTZWxlY3RhYmxlR2V0dGVyQ2FsbGJhY2sp
OworICAgIGJpbmRQcm9wZXJ0eSgiaXNFeHBhbmRlZCIsICZBY2Nlc3NpYmlsaXR5VUlFbGVtZW50
Ojppc0V4cGFuZGVkR2V0dGVyQ2FsbGJhY2spOworICAgIGJpbmRQcm9wZXJ0eSgiaXNDaGVja2Vk
IiwgJkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzQ2hlY2tlZEdldHRlckNhbGxiYWNrKTsKKyAg
ICBiaW5kUHJvcGVydHkoImlzVmlzaWJsZSIsICZBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojppc1Zp
c2libGVHZXR0ZXJDYWxsYmFjayk7CisgICAgYmluZFByb3BlcnR5KCJpc09mZlNjcmVlbiIsICZB
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojppc09mZlNjcmVlbkdldHRlckNhbGxiYWNrKTsKKyAgICBi
aW5kUHJvcGVydHkoImlzQ29sbGFwc2VkIiwgJkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzQ29s
bGFwc2VkR2V0dGVyQ2FsbGJhY2spOworICAgIGJpbmRQcm9wZXJ0eSgiaGFzUG9wdXAiLCAmQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudDo6aGFzUG9wdXBHZXR0ZXJDYWxsYmFjayk7CisgICAgYmluZFBy
b3BlcnR5KCJpc1ZhbGlkIiwgJkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzVmFsaWRHZXR0ZXJD
YWxsYmFjayk7CisgICAgYmluZFByb3BlcnR5KCJvcmllbnRhdGlvbiIsICZBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50OjpvcmllbnRhdGlvbkdldHRlckNhbGxiYWNrKTsKKworICAgIC8vCisgICAgLy8g
TWV0aG9kcworICAgIC8vCisKICAgICBiaW5kTWV0aG9kKCJhbGxBdHRyaWJ1dGVzIiwgJkFjY2Vz
c2liaWxpdHlVSUVsZW1lbnQ6OmFsbEF0dHJpYnV0ZXNDYWxsYmFjayk7Ci0gICAgYmluZE1ldGhv
ZCgiYXR0cmlidXRlc09mTGlua2VkVUlFbGVtZW50cyIsCi0gICAgICAgICAgICAgICAmQWNjZXNz
aWJpbGl0eVVJRWxlbWVudDo6YXR0cmlidXRlc09mTGlua2VkVUlFbGVtZW50c0NhbGxiYWNrKTsK
LSAgICBiaW5kTWV0aG9kKCJhdHRyaWJ1dGVzT2ZEb2N1bWVudExpbmtzIiwKLSAgICAgICAgICAg
ICAgICZBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphdHRyaWJ1dGVzT2ZEb2N1bWVudExpbmtzQ2Fs
bGJhY2spOwotICAgIGJpbmRNZXRob2QoImF0dHJpYnV0ZXNPZkNoaWxkcmVuIiwKLSAgICAgICAg
ICAgICAgICZBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphdHRyaWJ1dGVzT2ZDaGlsZHJlbkNhbGxi
YWNrKTsKLSAgICBiaW5kTWV0aG9kKCJwYXJhbWV0ZXJpemVkQXR0cmlidXRlTmFtZXMiLAotICAg
ICAgICAgICAgICAgJkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnBhcmFtZXRyaXplZEF0dHJpYnV0
ZU5hbWVzQ2FsbGJhY2spOworICAgIGJpbmRNZXRob2QoImF0dHJpYnV0ZXNPZkxpbmtlZFVJRWxl
bWVudHMiLCAmQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YXR0cmlidXRlc09mTGlua2VkVUlFbGVt
ZW50c0NhbGxiYWNrKTsKKyAgICBiaW5kTWV0aG9kKCJhdHRyaWJ1dGVzT2ZEb2N1bWVudExpbmtz
IiwgJkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmF0dHJpYnV0ZXNPZkRvY3VtZW50TGlua3NDYWxs
YmFjayk7CisgICAgYmluZE1ldGhvZCgiYXR0cmlidXRlc09mQ2hpbGRyZW4iLCAmQWNjZXNzaWJp
bGl0eVVJRWxlbWVudDo6YXR0cmlidXRlc09mQ2hpbGRyZW5DYWxsYmFjayk7CiAgICAgYmluZE1l
dGhvZCgibGluZUZvckluZGV4IiwgJkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmxpbmVGb3JJbmRl
eENhbGxiYWNrKTsKICAgICBiaW5kTWV0aG9kKCJib3VuZHNGb3JSYW5nZSIsICZBY2Nlc3NpYmls
aXR5VUlFbGVtZW50Ojpib3VuZHNGb3JSYW5nZUNhbGxiYWNrKTsKICAgICBiaW5kTWV0aG9kKCJz
dHJpbmdGb3JSYW5nZSIsICZBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzdHJpbmdGb3JSYW5nZUNh
bGxiYWNrKTsKICAgICBiaW5kTWV0aG9kKCJjaGlsZEF0SW5kZXgiLCAmQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudDo6Y2hpbGRBdEluZGV4Q2FsbGJhY2spOwogICAgIGJpbmRNZXRob2QoImVsZW1lbnRB
dFBvaW50IiwgJkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmVsZW1lbnRBdFBvaW50Q2FsbGJhY2sp
OwotICAgIGJpbmRNZXRob2QoImF0dHJpYnV0ZXNPZkNvbHVtbkhlYWRlcnMiLAotICAgICAgICAg
ICAgICAgJkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmF0dHJpYnV0ZXNPZkNvbHVtbkhlYWRlcnND
YWxsYmFjayk7Ci0gICAgYmluZE1ldGhvZCgiYXR0cmlidXRlc09mUm93SGVhZGVycyIsCi0gICAg
ICAgICAgICAgICAmQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YXR0cmlidXRlc09mUm93SGVhZGVy
c0NhbGxiYWNrKTsKLSAgICBiaW5kTWV0aG9kKCJhdHRyaWJ1dGVzT2ZDb2x1bW5zIiwKLSAgICAg
ICAgICAgICAgICZBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphdHRyaWJ1dGVzT2ZDb2x1bW5zQ2Fs
bGJhY2spOwotICAgIGJpbmRNZXRob2QoImF0dHJpYnV0ZXNPZlJvd3MiLAotICAgICAgICAgICAg
ICAgJkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmF0dHJpYnV0ZXNPZlJvd3NDYWxsYmFjayk7Ci0g
ICAgYmluZE1ldGhvZCgiYXR0cmlidXRlc09mVmlzaWJsZUNlbGxzIiwKLSAgICAgICAgICAgICAg
ICZBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphdHRyaWJ1dGVzT2ZWaXNpYmxlQ2VsbHNDYWxsYmFj
ayk7Ci0gICAgYmluZE1ldGhvZCgiYXR0cmlidXRlc09mSGVhZGVyIiwKLSAgICAgICAgICAgICAg
ICZBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphdHRyaWJ1dGVzT2ZIZWFkZXJDYWxsYmFjayk7Cisg
ICAgYmluZE1ldGhvZCgiYXR0cmlidXRlc09mQ29sdW1uSGVhZGVycyIsICZBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50OjphdHRyaWJ1dGVzT2ZDb2x1bW5IZWFkZXJzQ2FsbGJhY2spOworICAgIGJpbmRN
ZXRob2QoImF0dHJpYnV0ZXNPZlJvd0hlYWRlcnMiLCAmQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6
YXR0cmlidXRlc09mUm93SGVhZGVyc0NhbGxiYWNrKTsKKyAgICBiaW5kTWV0aG9kKCJhdHRyaWJ1
dGVzT2ZDb2x1bW5zIiwgJkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmF0dHJpYnV0ZXNPZkNvbHVt
bnNDYWxsYmFjayk7CisgICAgYmluZE1ldGhvZCgiYXR0cmlidXRlc09mUm93cyIsICZBY2Nlc3Np
YmlsaXR5VUlFbGVtZW50OjphdHRyaWJ1dGVzT2ZSb3dzQ2FsbGJhY2spOworICAgIGJpbmRNZXRo
b2QoImF0dHJpYnV0ZXNPZlZpc2libGVDZWxscyIsICZBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojph
dHRyaWJ1dGVzT2ZWaXNpYmxlQ2VsbHNDYWxsYmFjayk7CisgICAgYmluZE1ldGhvZCgiYXR0cmli
dXRlc09mSGVhZGVyIiwgJkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmF0dHJpYnV0ZXNPZkhlYWRl
ckNhbGxiYWNrKTsKICAgICBiaW5kTWV0aG9kKCJpbmRleEluVGFibGUiLCAmQWNjZXNzaWJpbGl0
eVVJRWxlbWVudDo6aW5kZXhJblRhYmxlQ2FsbGJhY2spOwogICAgIGJpbmRNZXRob2QoInJvd0lu
ZGV4UmFuZ2UiLCAmQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6cm93SW5kZXhSYW5nZUNhbGxiYWNr
KTsKLSAgICBiaW5kTWV0aG9kKCJjb2x1bW5JbmRleFJhbmdlIiwKLSAgICAgICAgICAgICAgICZB
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpjb2x1bW5JbmRleFJhbmdlQ2FsbGJhY2spOwotICAgIGJp
bmRNZXRob2QoImNlbGxGb3JDb2x1bW5BbmRSb3ciLAotICAgICAgICAgICAgICAgJkFjY2Vzc2li
aWxpdHlVSUVsZW1lbnQ6OmNlbGxGb3JDb2x1bW5BbmRSb3dDYWxsYmFjayk7CisgICAgYmluZE1l
dGhvZCgiY29sdW1uSW5kZXhSYW5nZSIsICZBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpjb2x1bW5J
bmRleFJhbmdlQ2FsbGJhY2spOworICAgIGJpbmRNZXRob2QoImNlbGxGb3JDb2x1bW5BbmRSb3ci
LCAmQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6Y2VsbEZvckNvbHVtbkFuZFJvd0NhbGxiYWNrKTsK
ICAgICBiaW5kTWV0aG9kKCJ0aXRsZVVJRWxlbWVudCIsICZBY2Nlc3NpYmlsaXR5VUlFbGVtZW50
Ojp0aXRsZVVJRWxlbWVudENhbGxiYWNrKTsKLSAgICBiaW5kTWV0aG9kKCJzZXRTZWxlY3RlZFRl
eHRSYW5nZSIsCi0gICAgICAgICAgICAgICAmQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2V0U2Vs
ZWN0ZWRUZXh0UmFuZ2VDYWxsYmFjayk7CisgICAgYmluZE1ldGhvZCgic2V0U2VsZWN0ZWRUZXh0
UmFuZ2UiLCAmQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2V0U2VsZWN0ZWRUZXh0UmFuZ2VDYWxs
YmFjayk7CiAgICAgYmluZE1ldGhvZCgiYXR0cmlidXRlVmFsdWUiLCAmQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudDo6YXR0cmlidXRlVmFsdWVDYWxsYmFjayk7Ci0gICAgYmluZE1ldGhvZCgiaXNBdHRy
aWJ1dGVTZXR0YWJsZSIsCi0gICAgICAgICAgICAgICAmQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6
aXNBdHRyaWJ1dGVTZXR0YWJsZUNhbGxiYWNrKTsKLSAgICBiaW5kTWV0aG9kKCJpc0FjdGlvblN1
cHBvcnRlZCIsCi0gICAgICAgICAgICAgICAmQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNBY3Rp
b25TdXBwb3J0ZWRDYWxsYmFjayk7CisgICAgYmluZE1ldGhvZCgiaXNBdHRyaWJ1dGVTZXR0YWJs
ZSIsICZBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojppc0F0dHJpYnV0ZVNldHRhYmxlQ2FsbGJhY2sp
OworICAgIGJpbmRNZXRob2QoImlzQWN0aW9uU3VwcG9ydGVkIiwgJkFjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQ6OmlzQWN0aW9uU3VwcG9ydGVkQ2FsbGJhY2spOwogICAgIGJpbmRNZXRob2QoInBhcmVu
dEVsZW1lbnQiLCAmQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6cGFyZW50RWxlbWVudENhbGxiYWNr
KTsKICAgICBiaW5kTWV0aG9kKCJpbmNyZW1lbnQiLCAmQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6
aW5jcmVtZW50Q2FsbGJhY2spOwogICAgIGJpbmRNZXRob2QoImRlY3JlbWVudCIsICZBY2Nlc3Np
YmlsaXR5VUlFbGVtZW50OjpkZWNyZW1lbnRDYWxsYmFjayk7Ci0KLSAgICBiaW5kUHJvcGVydHko
InJvbGUiLCAmQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6cm9sZUdldHRlckNhbGxiYWNrKTsKLSAg
ICBiaW5kUHJvcGVydHkoInN1YnJvbGUiLCAmbV9zdWJyb2xlKTsKLSAgICBiaW5kUHJvcGVydHko
InRpdGxlIiwgJkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnRpdGxlR2V0dGVyQ2FsbGJhY2spOwot
ICAgIGJpbmRQcm9wZXJ0eSgiZGVzY3JpcHRpb24iLAotICAgICAgICAgICAgICAgICAmQWNjZXNz
aWJpbGl0eVVJRWxlbWVudDo6ZGVzY3JpcHRpb25HZXR0ZXJDYWxsYmFjayk7Ci0gICAgYmluZFBy
b3BlcnR5KCJsYW5ndWFnZSIsICZtX2xhbmd1YWdlKTsKLSAgICBiaW5kUHJvcGVydHkoIngiLCAm
bV94KTsKLSAgICBiaW5kUHJvcGVydHkoInkiLCAmbV95KTsKLSAgICBiaW5kUHJvcGVydHkoIndp
ZHRoIiwgJm1fd2lkdGgpOwotICAgIGJpbmRQcm9wZXJ0eSgiaGVpZ2h0IiwgJm1faGVpZ2h0KTsK
LSAgICBiaW5kUHJvcGVydHkoImNsaWNrUG9pbnRYIiwgJm1fY2xpY2tQb2ludFgpOwotICAgIGJp
bmRQcm9wZXJ0eSgiY2xpY2tQb2ludFkiLCAmbV9jbGlja1BvaW50WSk7Ci0gICAgYmluZFByb3Bl
cnR5KCJpbnRWYWx1ZSIsICZtX2ludFZhbHVlKTsKLSAgICBiaW5kUHJvcGVydHkoIm1pblZhbHVl
IiwgJm1fbWluVmFsdWUpOwotICAgIGJpbmRQcm9wZXJ0eSgibWF4VmFsdWUiLCAmbV9tYXhWYWx1
ZSk7Ci0gICAgYmluZFByb3BlcnR5KCJjaGlsZHJlbkNvdW50IiwKLSAgICAgICAgICAgICAgICAg
JkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmNoaWxkcmVuQ291bnRHZXR0ZXJDYWxsYmFjayk7Ci0g
ICAgYmluZFByb3BlcnR5KCJpbnNlcnRpb25Qb2ludExpbmVOdW1iZXIiLCAmbV9pbnNlcnRpb25Q
b2ludExpbmVOdW1iZXIpOwotICAgIGJpbmRQcm9wZXJ0eSgic2VsZWN0ZWRUZXh0UmFuZ2UiLCAm
bV9zZWxlY3RlZFRleHRSYW5nZSk7Ci0gICAgYmluZFByb3BlcnR5KCJpc0VuYWJsZWQiLCAmQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNFbmFibGVkR2V0dGVyQ2FsbGJhY2spOwotICAgIGJpbmRQ
cm9wZXJ0eSgiaXNSZXF1aXJlZCIsICZtX2lzUmVxdWlyZWQpOwotICAgIGJpbmRQcm9wZXJ0eSgi
aXNTZWxlY3RlZCIsICZBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojppc1NlbGVjdGVkR2V0dGVyQ2Fs
bGJhY2spOwotICAgIGJpbmRQcm9wZXJ0eSgidmFsdWVEZXNjcmlwdGlvbiIsICZtX3ZhbHVlRGVz
Y3JpcHRpb24pOworICAgIGJpbmRNZXRob2QoInNob3dNZW51IiwgJkFjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQ6OnNob3dNZW51Q2FsbGJhY2spOworICAgIGJpbmRNZXRob2QoInByZXNzIiwgJkFjY2Vz
c2liaWxpdHlVSUVsZW1lbnQ6OnByZXNzQ2FsbGJhY2spOworICAgIGJpbmRNZXRob2QoImlzRXF1
YWwiLCAmQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNFcXVhbENhbGxiYWNrKTsKKyAgICBiaW5k
TWV0aG9kKCJhZGROb3RpZmljYXRpb25MaXN0ZW5lciIsICZBY2Nlc3NpYmlsaXR5VUlFbGVtZW50
OjphZGROb3RpZmljYXRpb25MaXN0ZW5lckNhbGxiYWNrKTsKKyAgICBiaW5kTWV0aG9kKCJyZW1v
dmVOb3RpZmljYXRpb25MaXN0ZW5lciIsICZBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpyZW1vdmVO
b3RpZmljYXRpb25MaXN0ZW5lckNhbGxiYWNrKTsKKyAgICBiaW5kTWV0aG9kKCJ0YWtlRm9jdXMi
LCAmQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6dGFrZUZvY3VzQ2FsbGJhY2spOwogCiAgICAgYmlu
ZEZhbGxiYWNrTWV0aG9kKCZBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpmYWxsYmFja0NhbGxiYWNr
KTsKIH0KIAogQWNjZXNzaWJpbGl0eVVJRWxlbWVudCogQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6
Z2V0Q2hpbGRBdEluZGV4KHVuc2lnbmVkIGluZGV4KQogewotICAgIHJldHVybiBtX2ZhY3Rvcnkt
PmNyZWF0ZShhY2Nlc3NpYmlsaXR5T2JqZWN0KCkuY2hpbGRBdChpbmRleCkpOworICAgIHJldHVy
biBtX2ZhY3RvcnktPmdldE9yQ3JlYXRlKGFjY2Vzc2liaWxpdHlPYmplY3QoKS5jaGlsZEF0KGlu
ZGV4KSk7Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNFcXVhbChjb25zdCBX
ZWJLaXQ6OldlYkFjY2Vzc2liaWxpdHlPYmplY3QmIG90aGVyKQoreworICAgIHJldHVybiBhY2Nl
c3NpYmlsaXR5T2JqZWN0KCkuZXF1YWxzKG90aGVyKTsKK30KKwordm9pZCBBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50Ojpub3RpZmljYXRpb25SZWNlaXZlZChjb25zdCBjaGFyKiBub3RpZmljYXRpb25O
YW1lKQoreworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV9ub3RpZmljYXRpb25DYWxsYmFj
a3Muc2l6ZSgpOyBpKyspIHsKKyAgICAgICAgQ3BwVmFyaWFudCBub3RpZmljYXRpb25OYW1lQXJn
dW1lbnQ7CisgICAgICAgIG5vdGlmaWNhdGlvbk5hbWVBcmd1bWVudC5zZXQobm90aWZpY2F0aW9u
TmFtZSk7CisgICAgICAgIENwcFZhcmlhbnQgaW52b2tlUmVzdWx0OworICAgICAgICBtX25vdGlm
aWNhdGlvbkNhbGxiYWNrc1tpXS5pbnZva2VEZWZhdWx0KCZub3RpZmljYXRpb25OYW1lQXJndW1l
bnQsIDEsIGludm9rZVJlc3VsdCk7CisgICAgfQorfQorCisvLworLy8gUHJvcGVydGllcworLy8K
Kwordm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpyb2xlR2V0dGVyQ2FsbGJhY2soQ3BwVmFy
aWFudCogcmVzdWx0KQoreworICAgIHJlc3VsdC0+c2V0KGdldFJvbGUoYWNjZXNzaWJpbGl0eU9i
amVjdCgpKSk7Cit9CisKK3ZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6dGl0bGVHZXR0ZXJD
YWxsYmFjayhDcHBWYXJpYW50KiByZXN1bHQpCit7CisgICAgcmVzdWx0LT5zZXQoZ2V0VGl0bGUo
YWNjZXNzaWJpbGl0eU9iamVjdCgpKSk7Cit9CisKK3ZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVu
dDo6ZGVzY3JpcHRpb25HZXR0ZXJDYWxsYmFjayhDcHBWYXJpYW50KiByZXN1bHQpCit7CisgICAg
cmVzdWx0LT5zZXQoZ2V0RGVzY3JpcHRpb24oYWNjZXNzaWJpbGl0eU9iamVjdCgpKSk7Cit9CisK
K3ZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aGVscFRleHRHZXR0ZXJDYWxsYmFjayhDcHBW
YXJpYW50KiByZXN1bHQpCit7CisgICAgcmVzdWx0LT5zZXQoZ2V0SGVscFRleHQoYWNjZXNzaWJp
bGl0eU9iamVjdCgpKSk7Cit9CisKK3ZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c3RyaW5n
VmFsdWVHZXR0ZXJDYWxsYmFjayhDcHBWYXJpYW50KiByZXN1bHQpCit7CisgICAgcmVzdWx0LT5z
ZXQoZ2V0U3RyaW5nVmFsdWUoYWNjZXNzaWJpbGl0eU9iamVjdCgpKSk7Cit9CisKK3ZvaWQgQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudDo6eEdldHRlckNhbGxiYWNrKENwcFZhcmlhbnQqIHJlc3VsdCkK
K3sKKyAgICByZXN1bHQtPnNldChhY2Nlc3NpYmlsaXR5T2JqZWN0KCkuYm91bmRpbmdCb3hSZWN0
KCkueCk7Cit9CisKK3ZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6eUdldHRlckNhbGxiYWNr
KENwcFZhcmlhbnQqIHJlc3VsdCkKK3sKKyAgICByZXN1bHQtPnNldChhY2Nlc3NpYmlsaXR5T2Jq
ZWN0KCkuYm91bmRpbmdCb3hSZWN0KCkueSk7Cit9CisKK3ZvaWQgQWNjZXNzaWJpbGl0eVVJRWxl
bWVudDo6d2lkdGhHZXR0ZXJDYWxsYmFjayhDcHBWYXJpYW50KiByZXN1bHQpCit7CisgICAgcmVz
dWx0LT5zZXQoYWNjZXNzaWJpbGl0eU9iamVjdCgpLmJvdW5kaW5nQm94UmVjdCgpLndpZHRoKTsK
K30KKwordm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpoZWlnaHRHZXR0ZXJDYWxsYmFjayhD
cHBWYXJpYW50KiByZXN1bHQpCit7CisgICAgcmVzdWx0LT5zZXQoYWNjZXNzaWJpbGl0eU9iamVj
dCgpLmJvdW5kaW5nQm94UmVjdCgpLmhlaWdodCk7Cit9CisKK3ZvaWQgQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudDo6aW50VmFsdWVHZXR0ZXJDYWxsYmFjayhDcHBWYXJpYW50KiByZXN1bHQpCit7Cisg
ICAgcmVzdWx0LT5zZXQoYWNjZXNzaWJpbGl0eU9iamVjdCgpLnZhbHVlRm9yUmFuZ2UoKSk7Cit9
CisKK3ZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6bWluVmFsdWVHZXR0ZXJDYWxsYmFjayhD
cHBWYXJpYW50KiByZXN1bHQpCit7CisgICAgcmVzdWx0LT5zZXQoYWNjZXNzaWJpbGl0eU9iamVj
dCgpLm1pblZhbHVlRm9yUmFuZ2UoKSk7Cit9CisKK3ZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVu
dDo6bWF4VmFsdWVHZXR0ZXJDYWxsYmFjayhDcHBWYXJpYW50KiByZXN1bHQpCit7CisgICAgcmVz
dWx0LT5zZXQoYWNjZXNzaWJpbGl0eU9iamVjdCgpLm1heFZhbHVlRm9yUmFuZ2UoKSk7Cit9CisK
K3ZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6Y2hpbGRyZW5Db3VudEdldHRlckNhbGxiYWNr
KENwcFZhcmlhbnQqIHJlc3VsdCkKK3sKKyAgICBpbnQgY291bnQgPSAxOyAvLyBSb290IG9iamVj
dCBhbHdheXMgaGFzIG9ubHkgb25lIGNoaWxkLCB0aGUgV2ViVmlldy4KKyAgICBpZiAoIWlzUm9v
dCgpKQorICAgICAgICBjb3VudCA9IGFjY2Vzc2liaWxpdHlPYmplY3QoKS5jaGlsZENvdW50KCk7
CisgICAgcmVzdWx0LT5zZXQoY291bnQpOworfQorCit2b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQ6Omluc2VydGlvblBvaW50TGluZU51bWJlckdldHRlckNhbGxiYWNrKAorICAgIENwcFZhcmlh
bnQqIHJlc3VsdCkKK3sKKyAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRoaXMuCisgICAgcmVzdWx0
LT5zZXQoMCk7Cit9CisKK3ZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2VsZWN0ZWRUZXh0
UmFuZ2VHZXR0ZXJDYWxsYmFjayhDcHBWYXJpYW50KiByZXN1bHQpCit7CisgICAgLy8gRklYTUU6
IEltcGxlbWVudCB0aGlzLgorICAgIHJlc3VsdC0+c2V0KHN0ZDo6c3RyaW5nKCkpOworfQorCit2
b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzRW5hYmxlZEdldHRlckNhbGxiYWNrKENwcFZh
cmlhbnQqIHJlc3VsdCkKK3sKKyAgICByZXN1bHQtPnNldChhY2Nlc3NpYmlsaXR5T2JqZWN0KCku
aXNFbmFibGVkKCkpOworfQorCit2b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzUmVxdWly
ZWRHZXR0ZXJDYWxsYmFjayhDcHBWYXJpYW50KiByZXN1bHQpCit7CisgICAgcmVzdWx0LT5zZXQo
YWNjZXNzaWJpbGl0eU9iamVjdCgpLmlzUmVxdWlyZWQoKSk7Cit9CisKK3ZvaWQgQWNjZXNzaWJp
bGl0eVVJRWxlbWVudDo6aXNGb2N1c2VkR2V0dGVyQ2FsbGJhY2soQ3BwVmFyaWFudCogcmVzdWx0
KQoreworICAgIHJlc3VsdC0+c2V0KGFjY2Vzc2liaWxpdHlPYmplY3QoKS5pc0ZvY3VzZWQoKSk7
Cit9CisKK3ZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNGb2N1c2FibGVHZXR0ZXJDYWxs
YmFjayhDcHBWYXJpYW50KiByZXN1bHQpCit7CisgICAgcmVzdWx0LT5zZXQoYWNjZXNzaWJpbGl0
eU9iamVjdCgpLmNhblNldEZvY3VzQXR0cmlidXRlKCkpOwogfQogCit2b2lkIEFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQ6OmlzU2VsZWN0ZWRHZXR0ZXJDYWxsYmFjayhDcHBWYXJpYW50KiByZXN1bHQp
Cit7CisgICAgcmVzdWx0LT5zZXQoYWNjZXNzaWJpbGl0eU9iamVjdCgpLmlzU2VsZWN0ZWQoKSk7
Cit9CisKK3ZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNTZWxlY3RhYmxlR2V0dGVyQ2Fs
bGJhY2soQ3BwVmFyaWFudCogcmVzdWx0KQoreworICAgIHJlc3VsdC0+c2V0KGFjY2Vzc2liaWxp
dHlPYmplY3QoKS5jYW5TZXRTZWxlY3RlZEF0dHJpYnV0ZSgpKTsKK30KKwordm9pZCBBY2Nlc3Np
YmlsaXR5VUlFbGVtZW50Ojppc011bHRpU2VsZWN0YWJsZUdldHRlckNhbGxiYWNrKENwcFZhcmlh
bnQqIHJlc3VsdCkKK3sKKyAgICByZXN1bHQtPnNldChhY2Nlc3NpYmlsaXR5T2JqZWN0KCkuaXNN
dWx0aVNlbGVjdGFibGUoKSk7Cit9CisKK3ZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNF
eHBhbmRlZEdldHRlckNhbGxiYWNrKENwcFZhcmlhbnQqIHJlc3VsdCkKK3sKKyAgICByZXN1bHQt
PnNldCghYWNjZXNzaWJpbGl0eU9iamVjdCgpLmlzQ29sbGFwc2VkKCkpOworfQorCit2b2lkIEFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzQ2hlY2tlZEdldHRlckNhbGxiYWNrKENwcFZhcmlhbnQq
IHJlc3VsdCkKK3sKKyAgICByZXN1bHQtPnNldChhY2Nlc3NpYmlsaXR5T2JqZWN0KCkuaXNDaGVj
a2VkKCkpOworfQorCit2b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzVmlzaWJsZUdldHRl
ckNhbGxiYWNrKENwcFZhcmlhbnQqIHJlc3VsdCkKK3sKKyAgICByZXN1bHQtPnNldChhY2Nlc3Np
YmlsaXR5T2JqZWN0KCkuaXNWaXNpYmxlKCkpOworfQorCit2b2lkIEFjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQ6OmlzT2ZmU2NyZWVuR2V0dGVyQ2FsbGJhY2soQ3BwVmFyaWFudCogcmVzdWx0KQorewor
ICAgIHJlc3VsdC0+c2V0KGFjY2Vzc2liaWxpdHlPYmplY3QoKS5pc09mZlNjcmVlbigpKTsKK30K
Kwordm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojppc0NvbGxhcHNlZEdldHRlckNhbGxiYWNr
KENwcFZhcmlhbnQqIHJlc3VsdCkKK3sKKyAgICByZXN1bHQtPnNldChhY2Nlc3NpYmlsaXR5T2Jq
ZWN0KCkuaXNDb2xsYXBzZWQoKSk7Cit9CisKK3ZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6
aGFzUG9wdXBHZXR0ZXJDYWxsYmFjayhDcHBWYXJpYW50KiByZXN1bHQpCit7CisgICAgcmVzdWx0
LT5zZXQoYWNjZXNzaWJpbGl0eU9iamVjdCgpLmFyaWFIYXNQb3B1cCgpKTsKK30KKwordm9pZCBB
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojppc1ZhbGlkR2V0dGVyQ2FsbGJhY2soQ3BwVmFyaWFudCog
cmVzdWx0KQoreworICAgIHJlc3VsdC0+c2V0KGFjY2Vzc2liaWxpdHlPYmplY3QoKS5pc1ZhbGlk
KCkpOworfQorCit2b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6Om9yaWVudGF0aW9uR2V0dGVy
Q2FsbGJhY2soQ3BwVmFyaWFudCogcmVzdWx0KQoreworICAgIHJlc3VsdC0+c2V0KGdldE9yaWVu
dGF0aW9uKGFjY2Vzc2liaWxpdHlPYmplY3QoKSkpOworfQorCisvLworLy8gTWV0aG9kcworLy8K
Kwogdm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphbGxBdHRyaWJ1dGVzQ2FsbGJhY2soY29u
c3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCogcmVzdWx0KQogewogICAgIHJlc3VsdC0+
c2V0KGdldEF0dHJpYnV0ZXMoYWNjZXNzaWJpbGl0eU9iamVjdCgpKSk7CkBAIC01MDMsNDYgKzcw
OCw1NiBAQCB2b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmRlY3JlbWVudENhCiAgICAgcmVz
dWx0LT5zZXROdWxsKCk7CiB9CiAKLXZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6ZmFsbGJh
Y2tDYWxsYmFjayhjb25zdCBDcHBBcmd1bWVudExpc3QgJiwgQ3BwVmFyaWFudCogcmVzdWx0KQor
dm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzaG93TWVudUNhbGxiYWNrKGNvbnN0IENwcEFy
Z3VtZW50TGlzdCYsIENwcFZhcmlhbnQqIHJlc3VsdCkKIHsKLSAgICAvLyBGSVhNRTogSW1wbGVt
ZW50IHRoaXMuCiAgICAgcmVzdWx0LT5zZXROdWxsKCk7CiB9CiAKLXZvaWQgQWNjZXNzaWJpbGl0
eVVJRWxlbWVudDo6Y2hpbGRyZW5Db3VudEdldHRlckNhbGxiYWNrKENwcFZhcmlhbnQqIHJlc3Vs
dCkKK3ZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6cHJlc3NDYWxsYmFjayhjb25zdCBDcHBB
cmd1bWVudExpc3QmLCBDcHBWYXJpYW50KiByZXN1bHQpCiB7Ci0gICAgaW50IGNvdW50ID0gMTsg
Ly8gUm9vdCBvYmplY3QgYWx3YXlzIGhhcyBvbmx5IG9uZSBjaGlsZCwgdGhlIFdlYlZpZXcuCi0g
ICAgaWYgKCFpc1Jvb3QoKSkKLSAgICAgICAgY291bnQgPSBhY2Nlc3NpYmlsaXR5T2JqZWN0KCku
Y2hpbGRDb3VudCgpOwotICAgIHJlc3VsdC0+c2V0KGNvdW50KTsKKyAgICBhY2Nlc3NpYmlsaXR5
T2JqZWN0KCkucGVyZm9ybURlZmF1bHRBY3Rpb24oKTsKKyAgICByZXN1bHQtPnNldE51bGwoKTsK
IH0KIAotdm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpkZXNjcmlwdGlvbkdldHRlckNhbGxi
YWNrKENwcFZhcmlhbnQqIHJlc3VsdCkKK3ZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNF
cXVhbENhbGxiYWNrKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYgYXJndW1lbnRzLCBDcHBWYXJpYW50
KiByZXN1bHQpCiB7Ci0gICAgcmVzdWx0LT5zZXQoZ2V0RGVzY3JpcHRpb24oYWNjZXNzaWJpbGl0
eU9iamVjdCgpKSk7CisgICAgaWYgKGFyZ3VtZW50cy5zaXplKCkgPCAxICYmICFhcmd1bWVudHNb
MF0uaXNPYmplY3QoKSkgeworICAgICAgICByZXN1bHQtPnNldE51bGwoKTsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKworICAgIHJlc3VsdC0+c2V0KGFyZ3VtZW50c1swXS5pc0VxdWFsKCpnZXRB
c0NwcFZhcmlhbnQoKSkpOwogfQogCi12b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzRW5h
YmxlZEdldHRlckNhbGxiYWNrKENwcFZhcmlhbnQqIHJlc3VsdCkKK3ZvaWQgQWNjZXNzaWJpbGl0
eVVJRWxlbWVudDo6YWRkTm90aWZpY2F0aW9uTGlzdGVuZXJDYWxsYmFjayhjb25zdCBDcHBBcmd1
bWVudExpc3QmIGFyZ3VtZW50cywgQ3BwVmFyaWFudCogcmVzdWx0KQogewotICAgIHJlc3VsdC0+
c2V0KGFjY2Vzc2liaWxpdHlPYmplY3QoKS5pc0VuYWJsZWQoKSk7CisgICAgaWYgKGFyZ3VtZW50
cy5zaXplKCkgPCAxICYmICFhcmd1bWVudHNbMF0uaXNPYmplY3QoKSkgeworICAgICAgICByZXN1
bHQtPnNldE51bGwoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIG1fbm90aWZpY2F0
aW9uQ2FsbGJhY2tzLnB1c2hfYmFjayhhcmd1bWVudHNbMF0pOworICAgIHJlc3VsdC0+c2V0TnVs
bCgpOwogfQogCi12b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzU2VsZWN0ZWRHZXR0ZXJD
YWxsYmFjayhDcHBWYXJpYW50KiByZXN1bHQpCit2b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6
OnJlbW92ZU5vdGlmaWNhdGlvbkxpc3RlbmVyQ2FsbGJhY2soY29uc3QgQ3BwQXJndW1lbnRMaXN0
JiwgQ3BwVmFyaWFudCogcmVzdWx0KQogeworICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdGhpcy4K
ICAgICByZXN1bHQtPnNldE51bGwoKTsKIH0KIAotdm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50
Ojpyb2xlR2V0dGVyQ2FsbGJhY2soQ3BwVmFyaWFudCogcmVzdWx0KQordm9pZCBBY2Nlc3NpYmls
aXR5VUlFbGVtZW50Ojp0YWtlRm9jdXNDYWxsYmFjayhjb25zdCBDcHBBcmd1bWVudExpc3QmLCBD
cHBWYXJpYW50KiByZXN1bHQpCiB7Ci0gICAgcmVzdWx0LT5zZXQoZ2V0Um9sZShhY2Nlc3NpYmls
aXR5T2JqZWN0KCkpKTsKKyAgICBhY2Nlc3NpYmlsaXR5T2JqZWN0KCkuc2V0Rm9jdXNlZCh0cnVl
KTsKKyAgICByZXN1bHQtPnNldE51bGwoKTsKIH0KIAotdm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50Ojp0aXRsZUdldHRlckNhbGxiYWNrKENwcFZhcmlhbnQqIHJlc3VsdCkKK3ZvaWQgQWNjZXNz
aWJpbGl0eVVJRWxlbWVudDo6ZmFsbGJhY2tDYWxsYmFjayhjb25zdCBDcHBBcmd1bWVudExpc3Qg
JiwgQ3BwVmFyaWFudCogcmVzdWx0KQogewotICAgIHJlc3VsdC0+c2V0KGdldFRpdGxlKGFjY2Vz
c2liaWxpdHlPYmplY3QoKSkpOworICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdGhpcy4KKyAgICBy
ZXN1bHQtPnNldE51bGwoKTsKIH0KIAotCiBSb290QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6Um9v
dEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQoY29uc3QgV2ViQWNjZXNzaWJpbGl0eU9iamVjdCAmb2Jq
ZWN0LCBGYWN0b3J5ICpmYWN0b3J5KQogICAgIDogQWNjZXNzaWJpbGl0eVVJRWxlbWVudChvYmpl
Y3QsIGZhY3RvcnkpIHsgfQogCkBAIC01NTEsNyArNzY2LDcgQEAgQWNjZXNzaWJpbGl0eVVJRWxl
bWVudCogUm9vdEFjY2Vzc2liaWxpdAogICAgIGlmIChpbmRleCkKICAgICAgICAgcmV0dXJuIDA7
CiAKLSAgICByZXR1cm4gZmFjdG9yeSgpLT5jcmVhdGUoYWNjZXNzaWJpbGl0eU9iamVjdCgpKTsK
KyAgICByZXR1cm4gZmFjdG9yeSgpLT5nZXRPckNyZWF0ZShhY2Nlc3NpYmlsaXR5T2JqZWN0KCkp
OwogfQogCiAKQEAgLTU2NywxMSArNzgyLDE2IEBAIHZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVu
dExpc3Q6OmNsZWFyKCkKICAgICBtX2VsZW1lbnRzLmNsZWFyKCk7CiB9CiAKLUFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQqIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnRMaXN0OjpjcmVhdGUoY29uc3QgV2Vi
QWNjZXNzaWJpbGl0eU9iamVjdCYgb2JqZWN0KQorQWNjZXNzaWJpbGl0eVVJRWxlbWVudCogQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudExpc3Q6OmdldE9yQ3JlYXRlKGNvbnN0IFdlYkFjY2Vzc2liaWxp
dHlPYmplY3QmIG9iamVjdCkKIHsKICAgICBpZiAob2JqZWN0LmlzTnVsbCgpKQogICAgICAgICBy
ZXR1cm4gMDsKIAorICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV9lbGVtZW50cy5zaXplKCk7
IGkrKykgeworICAgICAgICBpZiAobV9lbGVtZW50c1tpXS0+aXNFcXVhbChvYmplY3QpKQorICAg
ICAgICAgICAgcmV0dXJuIG1fZWxlbWVudHNbaV07CisgICAgfQorCiAgICAgQWNjZXNzaWJpbGl0
eVVJRWxlbWVudCogZWxlbWVudCA9IG5ldyBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50KG9iamVjdCwg
dGhpcyk7CiAgICAgbV9lbGVtZW50cy5hcHBlbmQoZWxlbWVudCk7CiAgICAgcmV0dXJuIGVsZW1l
bnQ7CkluZGV4OiBUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9BY2Nlc3NpYmlsaXR5VUlF
bGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudC5oCShyZXZpc2lvbiA5Njk5MCkKKysrIFRvb2xzL0R1bXBSZW5k
ZXJUcmVlL2Nocm9taXVtL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpA
QCAtNDAsMjAgKzQwLDU2IEBAIHB1YmxpYzoKICAgICBjbGFzcyBGYWN0b3J5IHsKICAgICBwdWJs
aWM6CiAgICAgICAgIHZpcnR1YWwgfkZhY3RvcnkoKSB7IH0KLSAgICAgICAgdmlydHVhbCBBY2Nl
c3NpYmlsaXR5VUlFbGVtZW50KiBjcmVhdGUoY29uc3QgV2ViS2l0OjpXZWJBY2Nlc3NpYmlsaXR5
T2JqZWN0JikgPSAwOworICAgICAgICB2aXJ0dWFsIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQqIGdl
dE9yQ3JlYXRlKGNvbnN0IFdlYktpdDo6V2ViQWNjZXNzaWJpbGl0eU9iamVjdCYpID0gMDsKICAg
ICB9OwogCiAgICAgQWNjZXNzaWJpbGl0eVVJRWxlbWVudChjb25zdCBXZWJLaXQ6OldlYkFjY2Vz
c2liaWxpdHlPYmplY3QmLCBGYWN0b3J5Kik7CiAKICAgICB2aXJ0dWFsIEFjY2Vzc2liaWxpdHlV
SUVsZW1lbnQqIGdldENoaWxkQXRJbmRleCh1bnNpZ25lZCk7CiAgICAgdmlydHVhbCBib29sIGlz
Um9vdCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCBib29sIGlzRXF1YWwo
Y29uc3QgV2ViS2l0OjpXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0JiBvdGhlcik7CisKKyAgICB2aXJ0
dWFsIHZvaWQgbm90aWZpY2F0aW9uUmVjZWl2ZWQoY29uc3QgY2hhciAqbm90aWZpY2F0aW9uTmFt
ZSk7CiAKIHByb3RlY3RlZDoKICAgICBjb25zdCBXZWJLaXQ6OldlYkFjY2Vzc2liaWxpdHlPYmpl
Y3QmIGFjY2Vzc2liaWxpdHlPYmplY3QoKSBjb25zdCB7IHJldHVybiBtX2FjY2Vzc2liaWxpdHlP
YmplY3Q7IH0KKwogICAgIEZhY3RvcnkqIGZhY3RvcnkoKSBjb25zdCB7IHJldHVybiBtX2ZhY3Rv
cnk7IH0KIAogcHJpdmF0ZToKLSAgICAvLyBCb3VuZCBtZXRob2RzIGFuZCBwcm9wZXJ0aWVzLgor
ICAgIC8vIEJvdW5kIHByb3BlcnRpZXMuCisgICAgdm9pZCByb2xlR2V0dGVyQ2FsbGJhY2soQ3Bw
VmFyaWFudCopOworICAgIHZvaWQgdGl0bGVHZXR0ZXJDYWxsYmFjayhDcHBWYXJpYW50Kik7Cisg
ICAgdm9pZCBkZXNjcmlwdGlvbkdldHRlckNhbGxiYWNrKENwcFZhcmlhbnQqKTsKKyAgICB2b2lk
IGhlbHBUZXh0R2V0dGVyQ2FsbGJhY2soQ3BwVmFyaWFudCopOworICAgIHZvaWQgc3RyaW5nVmFs
dWVHZXR0ZXJDYWxsYmFjayhDcHBWYXJpYW50Kik7CisgICAgdm9pZCB4R2V0dGVyQ2FsbGJhY2so
Q3BwVmFyaWFudCopOworICAgIHZvaWQgeUdldHRlckNhbGxiYWNrKENwcFZhcmlhbnQqKTsKKyAg
ICB2b2lkIHdpZHRoR2V0dGVyQ2FsbGJhY2soQ3BwVmFyaWFudCopOworICAgIHZvaWQgaGVpZ2h0
R2V0dGVyQ2FsbGJhY2soQ3BwVmFyaWFudCopOworICAgIHZvaWQgaW50VmFsdWVHZXR0ZXJDYWxs
YmFjayhDcHBWYXJpYW50Kik7CisgICAgdm9pZCBtaW5WYWx1ZUdldHRlckNhbGxiYWNrKENwcFZh
cmlhbnQqKTsKKyAgICB2b2lkIG1heFZhbHVlR2V0dGVyQ2FsbGJhY2soQ3BwVmFyaWFudCopOwor
ICAgIHZvaWQgY2hpbGRyZW5Db3VudEdldHRlckNhbGxiYWNrKENwcFZhcmlhbnQqKTsKKyAgICB2
b2lkIGluc2VydGlvblBvaW50TGluZU51bWJlckdldHRlckNhbGxiYWNrKENwcFZhcmlhbnQqKTsK
KyAgICB2b2lkIHNlbGVjdGVkVGV4dFJhbmdlR2V0dGVyQ2FsbGJhY2soQ3BwVmFyaWFudCopOwor
ICAgIHZvaWQgaXNFbmFibGVkR2V0dGVyQ2FsbGJhY2soQ3BwVmFyaWFudCopOworICAgIHZvaWQg
aXNSZXF1aXJlZEdldHRlckNhbGxiYWNrKENwcFZhcmlhbnQqKTsKKyAgICB2b2lkIGlzRm9jdXNl
ZEdldHRlckNhbGxiYWNrKENwcFZhcmlhbnQqKTsKKyAgICB2b2lkIGlzRm9jdXNhYmxlR2V0dGVy
Q2FsbGJhY2soQ3BwVmFyaWFudCopOworICAgIHZvaWQgaXNTZWxlY3RlZEdldHRlckNhbGxiYWNr
KENwcFZhcmlhbnQqKTsKKyAgICB2b2lkIGlzU2VsZWN0YWJsZUdldHRlckNhbGxiYWNrKENwcFZh
cmlhbnQqKTsKKyAgICB2b2lkIGlzTXVsdGlTZWxlY3RhYmxlR2V0dGVyQ2FsbGJhY2soQ3BwVmFy
aWFudCopOworICAgIHZvaWQgaXNFeHBhbmRlZEdldHRlckNhbGxiYWNrKENwcFZhcmlhbnQqKTsK
KyAgICB2b2lkIGlzQ2hlY2tlZEdldHRlckNhbGxiYWNrKENwcFZhcmlhbnQqKTsKKyAgICB2b2lk
IGlzVmlzaWJsZUdldHRlckNhbGxiYWNrKENwcFZhcmlhbnQqKTsKKyAgICB2b2lkIGlzT2ZmU2Ny
ZWVuR2V0dGVyQ2FsbGJhY2soQ3BwVmFyaWFudCopOworICAgIHZvaWQgaXNDb2xsYXBzZWRHZXR0
ZXJDYWxsYmFjayhDcHBWYXJpYW50Kik7CisgICAgdm9pZCBoYXNQb3B1cEdldHRlckNhbGxiYWNr
KENwcFZhcmlhbnQqKTsKKyAgICB2b2lkIGlzVmFsaWRHZXR0ZXJDYWxsYmFjayhDcHBWYXJpYW50
Kik7CisgICAgdm9pZCBvcmllbnRhdGlvbkdldHRlckNhbGxiYWNrKENwcFZhcmlhbnQqKTsKKwor
ICAgIC8vIEJvdW5kIG1ldGhvZHMuCiAgICAgdm9pZCBhbGxBdHRyaWJ1dGVzQ2FsbGJhY2soY29u
c3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOwogICAgIHZvaWQgYXR0cmlidXRlc09m
TGlua2VkVUlFbGVtZW50c0NhbGxiYWNrKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlh
bnQqKTsKICAgICB2b2lkIGF0dHJpYnV0ZXNPZkRvY3VtZW50TGlua3NDYWxsYmFjayhjb25zdCBD
cHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7CkBAIC04MiwzNCArMTE4LDE5IEBAIHByaXZh
dGU6CiAgICAgdm9pZCBwYXJlbnRFbGVtZW50Q2FsbGJhY2soY29uc3QgQ3BwQXJndW1lbnRMaXN0
JiwgQ3BwVmFyaWFudCopOwogICAgIHZvaWQgaW5jcmVtZW50Q2FsbGJhY2soY29uc3QgQ3BwQXJn
dW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOwogICAgIHZvaWQgZGVjcmVtZW50Q2FsbGJhY2soY29u
c3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOwotICAgIHZvaWQgZmFsbGJhY2tDYWxs
YmFjayhjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7CisgICAgdm9pZCBzaG93
TWVudUNhbGxiYWNrKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKKyAgICB2
b2lkIHByZXNzQ2FsbGJhY2soY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOwor
ICAgIHZvaWQgaXNFcXVhbENhbGxiYWNrKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlh
bnQqKTsKKyAgICB2b2lkIGFkZE5vdGlmaWNhdGlvbkxpc3RlbmVyQ2FsbGJhY2soY29uc3QgQ3Bw
QXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOworICAgIHZvaWQgcmVtb3ZlTm90aWZpY2F0aW9u
TGlzdGVuZXJDYWxsYmFjaygKKyAgICAgICAgY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFy
aWFudCopOworICAgIHZvaWQgdGFrZUZvY3VzQ2FsbGJhY2soY29uc3QgQ3BwQXJndW1lbnRMaXN0
JiwgQ3BwVmFyaWFudCopOwogCi0gICAgdm9pZCBjaGlsZHJlbkNvdW50R2V0dGVyQ2FsbGJhY2so
Q3BwVmFyaWFudCopOwotICAgIHZvaWQgZGVzY3JpcHRpb25HZXR0ZXJDYWxsYmFjayhDcHBWYXJp
YW50Kik7Ci0gICAgdm9pZCBpc0VuYWJsZWRHZXR0ZXJDYWxsYmFjayhDcHBWYXJpYW50Kik7Ci0g
ICAgdm9pZCBpc1NlbGVjdGVkR2V0dGVyQ2FsbGJhY2soQ3BwVmFyaWFudCopOwotICAgIHZvaWQg
cm9sZUdldHRlckNhbGxiYWNrKENwcFZhcmlhbnQqKTsKLSAgICB2b2lkIHRpdGxlR2V0dGVyQ2Fs
bGJhY2soQ3BwVmFyaWFudCopOwotCi0gICAgQ3BwVmFyaWFudCBtX3N1YnJvbGU7Ci0gICAgQ3Bw
VmFyaWFudCBtX2xhbmd1YWdlOwotICAgIENwcFZhcmlhbnQgbV94OwotICAgIENwcFZhcmlhbnQg
bV95OwotICAgIENwcFZhcmlhbnQgbV93aWR0aDsKLSAgICBDcHBWYXJpYW50IG1faGVpZ2h0Owot
ICAgIENwcFZhcmlhbnQgbV9jbGlja1BvaW50WDsKLSAgICBDcHBWYXJpYW50IG1fY2xpY2tQb2lu
dFk7Ci0gICAgQ3BwVmFyaWFudCBtX2ludFZhbHVlOwotICAgIENwcFZhcmlhbnQgbV9taW5WYWx1
ZTsKLSAgICBDcHBWYXJpYW50IG1fbWF4VmFsdWU7Ci0gICAgQ3BwVmFyaWFudCBtX2NoaWxkcmVu
Q291bnQ7Ci0gICAgQ3BwVmFyaWFudCBtX2luc2VydGlvblBvaW50TGluZU51bWJlcjsKLSAgICBD
cHBWYXJpYW50IG1fc2VsZWN0ZWRUZXh0UmFuZ2U7Ci0gICAgQ3BwVmFyaWFudCBtX2lzUmVxdWly
ZWQ7Ci0gICAgQ3BwVmFyaWFudCBtX3ZhbHVlRGVzY3JpcHRpb247CisgICAgdm9pZCBmYWxsYmFj
a0NhbGxiYWNrKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKIAogICAgIFdl
YktpdDo6V2ViQWNjZXNzaWJpbGl0eU9iamVjdCBtX2FjY2Vzc2liaWxpdHlPYmplY3Q7CiAgICAg
RmFjdG9yeSogbV9mYWN0b3J5OworICAgIHN0ZDo6dmVjdG9yPENwcFZhcmlhbnQ+IG1fbm90aWZp
Y2F0aW9uQ2FsbGJhY2tzOwogfTsKIAogCkBAIC0xMzEsNyArMTUyLDcgQEAgcHVibGljOgogICAg
IHZpcnR1YWwgfkFjY2Vzc2liaWxpdHlVSUVsZW1lbnRMaXN0KCk7CiAKICAgICB2b2lkIGNsZWFy
KCk7Ci0gICAgdmlydHVhbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50KiBjcmVhdGUoY29uc3QgV2Vi
S2l0OjpXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0Jik7CisgICAgdmlydHVhbCBBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50KiBnZXRPckNyZWF0ZShjb25zdCBXZWJLaXQ6OldlYkFjY2Vzc2liaWxpdHlPYmpl
Y3QmKTsKICAgICBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50KiBjcmVhdGVSb290KGNvbnN0IFdlYktp
dDo6V2ViQWNjZXNzaWJpbGl0eU9iamVjdCYpOwogCiBwcml2YXRlOgpJbmRleDogVG9vbHMvRHVt
cFJlbmRlclRyZWUvY2hyb21pdW0vQ3BwVmFyaWFudC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMv
RHVtcFJlbmRlclRyZWUvY2hyb21pdW0vQ3BwVmFyaWFudC5jcHAJKHJldmlzaW9uIDk2OTkwKQor
KysgVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vQ3BwVmFyaWFudC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTMwOCwzICszMDgsMTQgQEAgYm9vbCBDcHBWYXJpYW50OjppbnZva2UoY29uc3Qg
c3RyaW5nJiBtZQogICAgIHJlc3VsdC5zZXQocik7CiAgICAgcmV0dXJuIHN0YXR1czsKIH0KKwor
Ym9vbCBDcHBWYXJpYW50OjppbnZva2VEZWZhdWx0KGNvbnN0IENwcFZhcmlhbnQqIGFyZ3VtZW50
cywgdWludDMyX3QgYXJndW1lbnRDb3VudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBDcHBWYXJpYW50JiByZXN1bHQpIGNvbnN0Cit7CisgICAgQVNTRVJUKGlzT2JqZWN0KCkpOwor
ICAgIE5QT2JqZWN0KiBucE9iamVjdCA9IHZhbHVlLm9iamVjdFZhbHVlOworICAgIE5QVmFyaWFu
dCByOworICAgIGJvb2wgc3RhdHVzID0gV2ViQmluZGluZ3M6Omludm9rZURlZmF1bHQoMCwgbnBP
YmplY3QsIGFyZ3VtZW50cywgYXJndW1lbnRDb3VudCwgJnIpOworICAgIHJlc3VsdC5zZXQocik7
CisgICAgcmV0dXJuIHN0YXR1czsKK30KSW5kZXg6IFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9t
aXVtL0NwcFZhcmlhbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJv
bWl1bS9DcHBWYXJpYW50LmgJKHJldmlzaW9uIDk2OTkwKQorKysgVG9vbHMvRHVtcFJlbmRlclRy
ZWUvY2hyb21pdW0vQ3BwVmFyaWFudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMjgsNiArMTI4LDE0
IEBAIHB1YmxpYzoKICAgICAvLyBDcHBWYXJpYW50IHNwZWNpZmllZCBieSByZXN1bHQuCiAgICAg
Ym9vbCBpbnZva2UoY29uc3Qgc3RkOjpzdHJpbmcmLCBjb25zdCBDcHBWYXJpYW50KiBhcmd1bWVu
dHMsCiAgICAgICAgICAgICAgICAgdWludDMyX3QgYXJndW1lbnRDb3VudCwgQ3BwVmFyaWFudCYg
cmVzdWx0KSBjb25zdDsKKworICAgIC8vIEludm9rZSBhbiBvYmplY3QncyBkZWZhdWx0IG1ldGhv
ZCB3aXRoIHRoZSBzdXBwbGllZCBhcmd1bWVudHMuCisgICAgLy8gVGhlIGZpcnN0IGFyZ3VtZW50
IHNob3VsZCBiZSB0aGUgb2JqZWN0IG9uIHdoaWNoIHRoZSBtZXRob2QgaXMgdG8gYmUKKyAgICAv
LyBpbnZva2VkLiBSZXR1cm5zIHdoZXRoZXIgdGhlIG1ldGhvZCB3YXMgc3VjY2Vzc2Z1bGx5IGlu
dm9rZWQuIElmIHRoZQorICAgIC8vIG1ldGhvZCB3YXMgaW52b2tlZCBzdWNjZXNzZnVsbHksIGFu
eSByZXR1cm4gdmFsdWUgaXMgc3RvcmVkIGluIHRoZQorICAgIC8vIENwcFZhcmlhbnQgc3BlY2lm
aWVkIGJ5IHJlc3VsdC4KKyAgICBib29sIGludm9rZURlZmF1bHQoY29uc3QgQ3BwVmFyaWFudCog
YXJndW1lbnRzLAorICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBhcmd1bWVudENvdW50
LCBDcHBWYXJpYW50JiByZXN1bHQpIGNvbnN0OwogfTsKIAogI2VuZGlmIC8vIENwcFZhcmlhbnRf
aApJbmRleDogVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xs
ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91
dFRlc3RDb250cm9sbGVyLmNwcAkocmV2aXNpb24gOTY5OTApCisrKyBUb29scy9EdW1wUmVuZGVy
VHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTIzOSw2ICsyMzksNyBAQCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6TGF5b3V0VGVzdENvbnRyb2xs
CiAgICAgLy8gd2ViSGlzdG9yeUl0ZW1Db3VudCBpcyB1c2VkIGJ5IHRlc3RzIGluIExheW91dFRl
c3RzXGh0dHBcdGVzdHNcaGlzdG9yeQogICAgIGJpbmRQcm9wZXJ0eSgid2ViSGlzdG9yeUl0ZW1D
b3VudCIsICZtX3dlYkhpc3RvcnlJdGVtQ291bnQpOwogICAgIGJpbmRQcm9wZXJ0eSgidGl0bGVU
ZXh0RGlyZWN0aW9uIiwgJm1fdGl0bGVUZXh0RGlyZWN0aW9uKTsKKyAgICBiaW5kUHJvcGVydHko
InBsYXRmb3JtTmFtZSIsICZtX3BsYXRmb3JtTmFtZSk7CiB9CiAKIExheW91dFRlc3RDb250cm9s
bGVyOjp+TGF5b3V0VGVzdENvbnRyb2xsZXIoKQpAQCAtNjE4LDYgKzYxOSw3IEBAIHZvaWQgTGF5
b3V0VGVzdENvbnRyb2xsZXI6OnJlc2V0KCkKICAgICBtX2dsb2JhbEZsYWcuc2V0KGZhbHNlKTsK
ICAgICBtX3dlYkhpc3RvcnlJdGVtQ291bnQuc2V0KDApOwogICAgIG1fdGl0bGVUZXh0RGlyZWN0
aW9uLnNldCgibHRyIik7CisgICAgbV9wbGF0Zm9ybU5hbWUuc2V0KCJjaHJvbWl1bSIpOwogICAg
IG1fdXNlclN0eWxlU2hlZXRMb2NhdGlvbiA9IFdlYlVSTCgpOwogCiAgICAgd2Via2l0X3N1cHBv
cnQ6OlNldEFjY2VwdEFsbENvb2tpZXMoZmFsc2UpOwpJbmRleDogVG9vbHMvRHVtcFJlbmRlclRy
ZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9E
dW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5oCShyZXZpc2lvbiA5
Njk5MCkKKysrIFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9s
bGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTY0Miw2ICs2NDIsOSBAQCBwcml2YXRlOgogICAgIC8v
IEJvdW5kIHZhcmlhYmxlIHRyYWNraW5nIHRoZSBkaXJlY3Rpb25hbGl0eSBvZiB0aGUgPHRpdGxl
PiB0YWcuCiAgICAgQ3BwVmFyaWFudCBtX3RpdGxlVGV4dERpcmVjdGlvbjsKIAorICAgIC8vIEJv
dW5kIHZhcmlhYmxlIHRvIHJldHVybiB0aGUgbmFtZSBvZiB0aGlzIHBsYXRmb3JtIChjaHJvbWl1
bSkuCisgICAgQ3BwVmFyaWFudCBtX3BsYXRmb3JtTmFtZTsKKwogICAgIFdlYktpdDo6V2ViVVJM
IG1fdXNlclN0eWxlU2hlZXRMb2NhdGlvbjsKIAogICAgIE93blB0cjxXZWJLaXQ6OldlYlNwZWVj
aElucHV0Q29udHJvbGxlck1vY2s+IG1fc3BlZWNoSW5wdXRDb250cm9sbGVyTW9jazsKSW5kZXg6
IFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0LmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5jcHAJKHJldmlz
aW9uIDk2OTkwKQorKysgVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3Qu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC01NTAsNTggKzU1MCw2MiBAQCB2b2lkIFdlYlZpZXdIb3N0
Ojpwb3N0QWNjZXNzaWJpbGl0eU5vdGlmCiAgICAgaWYgKG5vdGlmaWNhdGlvbiA9PSBXZWJBY2Nl
c3NpYmlsaXR5Tm90aWZpY2F0aW9uRm9jdXNlZFVJRWxlbWVudENoYW5nZWQpCiAgICAgICAgIG1f
c2hlbGwtPmFjY2Vzc2liaWxpdHlDb250cm9sbGVyKCktPnNldEZvY3VzZWRFbGVtZW50KG9iaik7
CiAKLSAgICBpZiAobV9zaGVsbC0+YWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIoKS0+c2hvdWxkRHVt
cEFjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25zKCkpIHsKLSAgICAgICAgcHJpbnRmKCJBY2Nlc3Np
YmlsaXR5Tm90aWZpY2F0aW9uIC0gIik7CisgICAgY29uc3QgY2hhciogbm90aWZpY2F0aW9uTmFt
ZTsKKyAgICBzd2l0Y2ggKG5vdGlmaWNhdGlvbikgeworICAgIGNhc2UgV2ViQWNjZXNzaWJpbGl0
eU5vdGlmaWNhdGlvbkFjdGl2ZURlc2NlbmRhbnRDaGFuZ2VkOgorICAgICAgICBub3RpZmljYXRp
b25OYW1lID0gIkFjdGl2ZURlc2NlbmRhbnRDaGFuZ2VkIjsKKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBXZWJBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uQ2hlY2tlZFN0YXRlQ2hhbmdlZDoKKyAg
ICAgICAgbm90aWZpY2F0aW9uTmFtZSA9ICJDaGVja2VkU3RhdGVDaGFuZ2VkIjsKKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBXZWJBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uQ2hpbGRyZW5DaGFu
Z2VkOgorICAgICAgICBub3RpZmljYXRpb25OYW1lID0gIkNoaWxkcmVuQ2hhbmdlZCI7CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgV2ViQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkZvY3VzZWRV
SUVsZW1lbnRDaGFuZ2VkOgorICAgICAgICBub3RpZmljYXRpb25OYW1lID0gIkZvY3VzZWRVSUVs
ZW1lbnRDaGFuZ2VkIjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBXZWJBY2Nlc3NpYmlsaXR5
Tm90aWZpY2F0aW9uTGF5b3V0Q29tcGxldGU6CisgICAgICAgIG5vdGlmaWNhdGlvbk5hbWUgPSAi
TGF5b3V0Q29tcGxldGUiOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFdlYkFjY2Vzc2liaWxp
dHlOb3RpZmljYXRpb25Mb2FkQ29tcGxldGU6CisgICAgICAgIG5vdGlmaWNhdGlvbk5hbWUgPSAi
TG9hZENvbXBsZXRlIjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBXZWJBY2Nlc3NpYmlsaXR5
Tm90aWZpY2F0aW9uU2VsZWN0ZWRDaGlsZHJlbkNoYW5nZWQ6CisgICAgICAgIG5vdGlmaWNhdGlv
bk5hbWUgPSAiU2VsZWN0ZWRDaGlsZHJlbkNoYW5nZWQiOworICAgICAgICBicmVhazsKKyAgICBj
YXNlIFdlYkFjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25TZWxlY3RlZFRleHRDaGFuZ2VkOgorICAg
ICAgICBub3RpZmljYXRpb25OYW1lID0gIlNlbGVjdGVkVGV4dENoYW5nZWQiOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIFdlYkFjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25WYWx1ZUNoYW5nZWQ6
CisgICAgICAgIG5vdGlmaWNhdGlvbk5hbWUgPSAiVmFsdWVDaGFuZ2VkIjsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBXZWJBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uU2Nyb2xsZWRUb0FuY2hv
cjoKKyAgICAgICAgbm90aWZpY2F0aW9uTmFtZSA9ICJTY3JvbGxlZFRvQW5jaG9yIjsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBXZWJBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uTGl2ZVJlZ2lv
bkNoYW5nZWQ6CisgICAgICAgIG5vdGlmaWNhdGlvbk5hbWUgPSAiTGl2ZVJlZ2lvbkNoYW5nZWQi
OworICAgICAgICBicmVhazsKKyAgICBjYXNlIFdlYkFjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25N
ZW51TGlzdFZhbHVlQ2hhbmdlZDoKKyAgICAgICAgbm90aWZpY2F0aW9uTmFtZSA9ICJNZW51TGlz
dFZhbHVlQ2hhbmdlZCI7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgV2ViQWNjZXNzaWJpbGl0
eU5vdGlmaWNhdGlvblJvd0NvdW50Q2hhbmdlZDoKKyAgICAgICAgbm90aWZpY2F0aW9uTmFtZSA9
ICJSb3dDb3VudENoYW5nZWQiOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFdlYkFjY2Vzc2li
aWxpdHlOb3RpZmljYXRpb25Sb3dDb2xsYXBzZWQ6CisgICAgICAgIG5vdGlmaWNhdGlvbk5hbWUg
PSAiUm93Q29sbGFwc2VkIjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBXZWJBY2Nlc3NpYmls
aXR5Tm90aWZpY2F0aW9uUm93RXhwYW5kZWQ6CisgICAgICAgIG5vdGlmaWNhdGlvbk5hbWUgPSAi
Um93RXhwYW5kZWQiOworICAgICAgICBicmVhazsKKyAgICBkZWZhdWx0OgorICAgICAgICBub3Rp
ZmljYXRpb25OYW1lID0gIlVua25vd25Ob3RpZmljYXRpb24iOworICAgICAgICBicmVhazsKKyAg
ICB9CiAKLSAgICAgICAgc3dpdGNoIChub3RpZmljYXRpb24pIHsKLSAgICAgICAgY2FzZSBXZWJB
Y2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uQWN0aXZlRGVzY2VuZGFudENoYW5nZWQ6Ci0gICAgICAg
ICAgICBwcmludGYoIkFjdGl2ZURlc2NlbmRhbnRDaGFuZ2VkIik7Ci0gICAgICAgICAgICBicmVh
azsKLSAgICAgICAgY2FzZSBXZWJBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uQ2hlY2tlZFN0YXRl
Q2hhbmdlZDoKLSAgICAgICAgICAgIHByaW50ZigiQ2hlY2tlZFN0YXRlQ2hhbmdlZCIpOwotICAg
ICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgV2ViQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlv
bkNoaWxkcmVuQ2hhbmdlZDoKLSAgICAgICAgICAgIHByaW50ZigiQ2hpbGRyZW5DaGFuZ2VkIik7
Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBXZWJBY2Nlc3NpYmlsaXR5Tm90aWZp
Y2F0aW9uRm9jdXNlZFVJRWxlbWVudENoYW5nZWQ6Ci0gICAgICAgICAgICBwcmludGYoIkZvY3Vz
ZWRVSUVsZW1lbnRDaGFuZ2VkIik7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBX
ZWJBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uTGF5b3V0Q29tcGxldGU6Ci0gICAgICAgICAgICBw
cmludGYoIkxheW91dENvbXBsZXRlIik7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2Fz
ZSBXZWJBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uTG9hZENvbXBsZXRlOgotICAgICAgICAgICAg
cHJpbnRmKCJMb2FkQ29tcGxldGUiKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNl
IFdlYkFjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25TZWxlY3RlZENoaWxkcmVuQ2hhbmdlZDoKLSAg
ICAgICAgICAgIHByaW50ZigiU2VsZWN0ZWRDaGlsZHJlbkNoYW5nZWQiKTsKLSAgICAgICAgICAg
IGJyZWFrOwotICAgICAgICBjYXNlIFdlYkFjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25TZWxlY3Rl
ZFRleHRDaGFuZ2VkOgotICAgICAgICAgICAgcHJpbnRmKCJTZWxlY3RlZFRleHRDaGFuZ2VkIik7
Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBXZWJBY2Nlc3NpYmlsaXR5Tm90aWZp
Y2F0aW9uVmFsdWVDaGFuZ2VkOgotICAgICAgICAgICAgcHJpbnRmKCJWYWx1ZUNoYW5nZWQiKTsK
LSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIFdlYkFjY2Vzc2liaWxpdHlOb3RpZmlj
YXRpb25TY3JvbGxlZFRvQW5jaG9yOgotICAgICAgICAgICAgcHJpbnRmKCJTY3JvbGxlZFRvQW5j
aG9yIik7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBXZWJBY2Nlc3NpYmlsaXR5
Tm90aWZpY2F0aW9uTGl2ZVJlZ2lvbkNoYW5nZWQ6Ci0gICAgICAgICAgICBwcmludGYoIkxpdmVS
ZWdpb25DaGFuZ2VkIik7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBXZWJBY2Nl
c3NpYmlsaXR5Tm90aWZpY2F0aW9uTWVudUxpc3RWYWx1ZUNoYW5nZWQ6Ci0gICAgICAgICAgICBw
cmludGYoIk1lbnVMaXN0VmFsdWVDaGFuZ2VkIik7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAg
ICAgY2FzZSBXZWJBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uUm93Q291bnRDaGFuZ2VkOgotICAg
ICAgICAgICAgcHJpbnRmKCJSb3dDb3VudENoYW5nZWQiKTsKLSAgICAgICAgICAgIGJyZWFrOwot
ICAgICAgICBjYXNlIFdlYkFjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25Sb3dDb2xsYXBzZWQ6Ci0g
ICAgICAgICAgICBwcmludGYoIlJvd0NvbGxhcHNlZCIpOwotICAgICAgICAgICAgYnJlYWs7Ci0g
ICAgICAgIGNhc2UgV2ViQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvblJvd0V4cGFuZGVkOgotICAg
ICAgICAgICAgcHJpbnRmKCJSb3dFeHBhbmRlZCIpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAg
ICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQorICAgIG1fc2hlbGwt
PmFjY2Vzc2liaWxpdHlDb250cm9sbGVyKCktPm5vdGlmaWNhdGlvblJlY2VpdmVkKG9iaiwgbm90
aWZpY2F0aW9uTmFtZSk7CisKKyAgICBpZiAobV9zaGVsbC0+YWNjZXNzaWJpbGl0eUNvbnRyb2xs
ZXIoKS0+c2hvdWxkTG9nQWNjZXNzaWJpbGl0eUV2ZW50cygpKSB7CisgICAgICAgIHByaW50Zigi
QWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbiAtICVzIiwgbm90aWZpY2F0aW9uTmFtZSk7CiAKICAg
ICAgICAgV2ViS2l0OjpXZWJOb2RlIG5vZGUgPSBvYmoubm9kZSgpOwogICAgICAgICBpZiAoIW5v
ZGUuaXNOdWxsKCkgJiYgbm9kZS5pc0VsZW1lbnROb2RlKCkpIHsKSW5kZXg6IExheW91dFRlc3Rz
L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9u
IDk3MDAwKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMg
KzEsMTYgQEAKKzIwMTEtMTAtMDcgIERvbWluaWMgTWF6em9uaSAgPGRtYXp6b25pQGdvb2dsZS5j
b20+CisKKyAgICAgICAgRW5hYmxlIGFjY2Vzc2liaWxpdHkgdGVzdHMgb24gY2hyb21pdW0gYW5k
IHVwZGF0ZSB0ZXN0IGV4cGVjdGF0aW9ucy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTY5Njc2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9hY2Nlc3NpYmlsaXR5L2FkamFj
ZW50LWNvbnRpbnVhdGlvbnMtY2F1c2UtYXNzZXJ0aW9uLWZhaWx1cmUtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9hY2Nlc3NpYmlsaXR5L2FyaWEtbGFi
ZWxsZWRieS1vdmVycmlkZXMtYXJpYS1sYWJlbC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIHBsYXRmb3JtL2Nocm9taXVtL2FjY2Vzc2liaWxpdHkvZGl2LXdpdGhpbi1hbmNob3JzLWNh
dXNlcy1jcmFzaC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9t
aXVtL2FjY2Vzc2liaWxpdHkvcGxhdGZvcm0tbmFtZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dDoKKwogMjAxMS0x
MC0wNyAgSnVzdGluIFNjaHVoICA8anNjaHVoQGNocm9taXVtLm9yZz4KIAogICAgICAgICBNYWtl
IGlzWE1MTUlNRVR5cGUgcmVnZXggdXNlIFRMUwpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Y2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L3BsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dAkocmV2aXNpb24gOTY5OTAp
CisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQJ
KHdvcmtpbmcgY29weSkKQEAgLTk0NCwxNiArOTQ0LDYwIEBAIEJVR1dLNjYzODYgOiBzdmcvY3Vz
dG9tL3JlcGFpbnQtc2hhZG93LnMKIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAvLyBBY2Nlc3NpYmlsaXR5IGxheW91
dCB0ZXN0cwogLy8KLS8vIEluIGFkZGl0aW9uIHRvIFdlYkNvcmUsIHRoZXNlIGFyZSBtZWFudCB0
byBleGVyY2lzZSBwbGF0Zm9ybSBBUElzCi0vLyAoTVNBQSwgTlNBY2Nlc3NpYmlsaXR5LCBBVEsp
LiBTaW5jZSB3ZSBkb24ndCBoYXZlIGFjY2VzcyB0byB0aGVzZSBpbiB0aGUKLS8vIHNhbmRib3gs
IG1ha2luZyB0aGVzZSB0ZXN0cyBwYXNzIGludm9sdmVzIGZha2luZyBpbnRlcmFjdGlvbnMgd2l0
aCB0aGVzZSBBUElzCi0vLyBhbmQgZG9lc24ndCBzZWVtIGxpa2UgYSBnb29kIHVzZSBvZiBvdXIg
dGltZS4KLS8vIFdlIG5lZWQgdG8gaWRlbnRpZnkgYSBnb29kIHRlc3Rpbmcgc3RyYXRlZ3kgZm9y
IENocm9taXVtIGFjY2Vzc2liaWxpdHkuCi0vLyBJdCBpcyBwb3NzaWJsZSB3ZSB3b24ndCB1c2Ug
dGhlc2UgYXQgYWxsLgotCi1CVUdDUjEwMzIyIFNLSVAgOiBhY2Nlc3NpYmlsaXR5ID0gUEFTUyBG
QUlMCi1CVUdDUjEwMzIyIFNLSVAgOiBwbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eSA9IFBBU1Mg
RkFJTAotQlVHQ1IxMDMyMiBTS0lQIDogcGxhdGZvcm0vd2luL2FjY2Vzc2liaWxpdHkgPSBQQVNT
IEZBSUwKKy8vIEFjY2Vzc2liaWxpdHlDb250cm9sbGVyIGFuZCBBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50IGFyZSBvbmx5CisvLyBwYXJ0aWFsbHkgZmluaXNoZWQgLSBhYm91dCBoYWxmIHRoZSB0ZXN0
cyBjYW4ndCBydW4geWV0LgorCitCVUdDUjEwMzIyIFNLSVAgOiBhY2Nlc3NpYmlsaXR5L2FyaWEt
YWN0aXZlZGVzY2VuZGFudC1jcmFzaC5odG1sID0gVEVYVAorQlVHQ1IxMDMyMiBTS0lQIDogYWNj
ZXNzaWJpbGl0eS9hcmlhLWNvbWJvYm94Lmh0bWwgPSBURVhUCitCVUdDUjEwMzIyIFNLSVAgOiBh
Y2Nlc3NpYmlsaXR5L2FyaWEtY29udHJvbHMtd2l0aC10YWJzLmh0bWwgPSBURVhUCitCVUdDUjEw
MzIyIFNLSVAgOiBhY2Nlc3NpYmlsaXR5L2FyaWEtZmFsbGJhY2stcm9sZXMuaHRtbCA9IFRFWFQK
K0JVR0NSMTAzMjIgU0tJUCA6IGFjY2Vzc2liaWxpdHkvYXJpYS1oaWRkZW4tdXBkYXRlLmh0bWwg
PSBURVhUCitCVUdDUjEwMzIyIFNLSVAgOiBhY2Nlc3NpYmlsaXR5L2FyaWEtaGlkZGVuLXdpdGgt
ZWxlbWVudHMuaHRtbCA9IFRFWFQKK0JVR0NSMTAzMjIgU0tJUCA6IGFjY2Vzc2liaWxpdHkvYXJp
YS1sYWJlbGxlZGJ5LW92ZXJyaWRlcy1sYWJlbC5odG1sID0gVEVYVAorQlVHQ1IxMDMyMiBTS0lQ
IDogYWNjZXNzaWJpbGl0eS9hcmlhLWxpbmstc3VwcG9ydHMtcHJlc3MuaHRtbCA9IFRFWFQKK0JV
R0NSMTAzMjIgU0tJUCA6IGFjY2Vzc2liaWxpdHkvYXJpYS1saXN0LWFuZC1saXN0aXRlbS5odG1s
ID0gVEVYVAorQlVHQ1IxMDMyMiBTS0lQIDogYWNjZXNzaWJpbGl0eS9hcmlhLW1lbnViYXItbWVu
dWl0ZW1zLmh0bWwgPSBURVhUCitCVUdDUjEwMzIyIFNLSVAgOiBhY2Nlc3NpYmlsaXR5L2FyaWEt
b3B0aW9uLXJvbGUuaHRtbCA9IFRFWFQKK0JVR0NSMTAzMjIgU0tJUCA6IGFjY2Vzc2liaWxpdHkv
YXJpYS10YWItcm9sZXMuaHRtbCA9IFRFWFQKK0JVR0NSMTAzMjIgU0tJUCA6IGFjY2Vzc2liaWxp
dHkvYXJpYS10YWJsZXMuaHRtbCA9IFRFWFQKK0JVR0NSMTAzMjIgU0tJUCA6IGFjY2Vzc2liaWxp
dHkvYXJpYS10ZXh0LXJvbGUuaHRtbCA9IFRFWFQKK0JVR0NSMTAzMjIgU0tJUCA6IGFjY2Vzc2li
aWxpdHkvYXJpYS11c2VkLW9uLWltYWdlLW1hcHMuaHRtbCA9IFRFWFQKK0JVR0NSMTAzMjIgU0tJ
UCA6IGFjY2Vzc2liaWxpdHkvYnV0dG9uLXByZXNzLWFjdGlvbi5odG1sID0gVEVYVAorQlVHQ1Ix
MDMyMiBTS0lQIDogYWNjZXNzaWJpbGl0eS9kZWxldGluZy1pZnJhbWUtZGVzdHJveXMtYXhjYWNo
ZS5odG1sID0gVEVYVAorQlVHQ1IxMDMyMiBTS0lQIDogYWNjZXNzaWJpbGl0eS9kb2N1bWVudC1h
dHRyaWJ1dGVzLmh0bWwgPSBURVhUCitCVUdDUjEwMzIyIFNLSVAgOiBhY2Nlc3NpYmlsaXR5L2Vk
aXRhYmxlLXdlYmFyZWEtY29udGV4dC1tZW51LXBvaW50Lmh0bWwgPSBURVhUCitCVUdDUjEwMzIy
IFNLSVAgOiBhY2Nlc3NpYmlsaXR5L2lmcmFtZS1iYXN0YXJkaXphdGlvbi5odG1sID0gVEVYVAor
QlVHQ1IxMDMyMiBTS0lQIDogYWNjZXNzaWJpbGl0eS9pbWFnZS1saW5rLmh0bWwgPSBURVhUCitC
VUdDUjEwMzIyIFNLSVAgOiBhY2Nlc3NpYmlsaXR5L2ltYWdlLW1hcDIuaHRtbCA9IFRFWFQKK0JV
R0NSMTAzMjIgU0tJUCA6IGFjY2Vzc2liaWxpdHkvaW50ZXJuYWwtbGluay1hbmNob3JzMi5odG1s
ID0gVEVYVAorQlVHQ1IxMDMyMiBTS0lQIDogYWNjZXNzaWJpbGl0eS9sYWJlbC1mb3ItY29udHJv
bC1oaXR0ZXN0Lmh0bWwgPSBURVhUCitCVUdDUjEwMzIyIFNLSVAgOiBhY2Nlc3NpYmlsaXR5L2xh
bmd1YWdlLWF0dHJpYnV0ZS5odG1sID0gVEVYVAorQlVHQ1IxMDMyMiBTS0lQIDogYWNjZXNzaWJp
bGl0eS9sZWdlbmQuaHRtbCA9IFRFWFQKK0JVR0NSMTAzMjIgU0tJUCA6IGFjY2Vzc2liaWxpdHkv
bGlzdHMuaHRtbCA9IFRFWFQKK0JVR0NSMTAzMjIgU0tJUCA6IGFjY2Vzc2liaWxpdHkvbWVkaWEt
ZWxlbWVudC5odG1sID0gVElNRU9VVAorQlVHQ1IxMDMyMiBTS0lQIDogYWNjZXNzaWJpbGl0eS9u
b24tZGF0YS10YWJsZS1jZWxsLXRpdGxlLXVpLWVsZW1lbnQuaHRtbCA9IFRFWFQKK0JVR0NSMTAz
MjIgU0tJUCA6IGFjY2Vzc2liaWxpdHkvb25jbGljay1oYW5kbGVycy5odG1sID0gVEVYVAorQlVH
Q1IxMDMyMiBTS0lQIDogYWNjZXNzaWJpbGl0eS9wbGFjZWhvbGRlci5odG1sID0gVEVYVAorQlVH
Q1IxMDMyMiBTS0lQIDogYWNjZXNzaWJpbGl0eS9wbHVnaW4uaHRtbCA9IFRFWFQKK0JVR0NSMTAz
MjIgU0tJUCA6IGFjY2Vzc2liaWxpdHkvcmFkaW8tYnV0dG9uLWNoZWNrYm94LXNpemUuaHRtbCA9
IFRFWFQKK0JVR0NSMTAzMjIgU0tJUCA6IGFjY2Vzc2liaWxpdHkvcmFkaW8tYnV0dG9uLWdyb3Vw
LW1lbWJlcnMuaHRtbCA9IFRFWFQKK0JVR0NSMTAzMjIgU0tJUCA6IGFjY2Vzc2liaWxpdHkvcmFk
aW8tYnV0dG9uLXRpdGxlLWxhYmVsLmh0bWwgPSBURVhUCitCVUdDUjEwMzIyIFNLSVAgOiBhY2Nl
c3NpYmlsaXR5L3NlY3VyZS10ZXh0ZmllbGQtdGl0bGUtdWkuaHRtbCA9IFRFWFQKK0JVR0NSMTAz
MjIgU0tJUCA6IGFjY2Vzc2liaWxpdHkvdGFibGUtYXR0cmlidXRlcy5odG1sID0gVEVYVAorQlVH
Q1IxMDMyMiBTS0lQIDogYWNjZXNzaWJpbGl0eS90YWJsZS1jZWxsLXNwYW5zLmh0bWwgPSBURVhU
CitCVUdDUjEwMzIyIFNLSVAgOiBhY2Nlc3NpYmlsaXR5L3RhYmxlLWNlbGxzLmh0bWwgPSBURVhU
CitCVUdDUjEwMzIyIFNLSVAgOiBhY2Nlc3NpYmlsaXR5L3RhYmxlLWRldGVjdGlvbi5odG1sID0g
VEVYVAorQlVHQ1IxMDMyMiBTS0lQIDogYWNjZXNzaWJpbGl0eS90YWJsZS1vbmUtY2VsbC5odG1s
ID0gVEVYVAorQlVHQ1IxMDMyMiBTS0lQIDogYWNjZXNzaWJpbGl0eS90YWJsZS1zZWN0aW9ucy5o
dG1sID0gVEVYVAorQlVHQ1IxMDMyMiBTS0lQIDogYWNjZXNzaWJpbGl0eS90YWJsZS13aXRoLWFy
aWEtcm9sZS5odG1sID0gVEVYVAorQlVHQ1IxMDMyMiBTS0lQIDogYWNjZXNzaWJpbGl0eS90YWJs
ZS13aXRoLXJ1bGVzLmh0bWwgPSBURVhUCitCVUdDUjEwMzIyIFNLSVAgOiBhY2Nlc3NpYmlsaXR5
L3RleHRhcmVhLWluc2VydGlvbi1wb2ludC1saW5lLW51bWJlci5odG1sID0gVEVYVAorQlVHQ1Ix
MDMyMiBTS0lQIDogYWNjZXNzaWJpbGl0eS90ZXh0YXJlYS1saW5lLWZvci1pbmRleC5odG1sID0g
VEVYVAorQlVHQ1IxMDMyMiBTS0lQIDogYWNjZXNzaWJpbGl0eS90ZXh0YXJlYS1zZWxlY3RlZC10
ZXh0LXJhbmdlLmh0bWwgPSBURVhUCitCVUdDUjEwMzIyIFNLSVAgOiBhY2Nlc3NpYmlsaXR5L3Rl
eHRib3gtcm9sZS1yZXBvcnRzLXNlbGVjdGlvbi5odG1sID0gVEVYVAorQlVHQ1IxMDMyMiBTS0lQ
IDogYWNjZXNzaWJpbGl0eS90aC1hcy10aXRsZS11aS5odG1sID0gVEVYVAorQlVHQ1IxMDMyMiBT
S0lQIDogYWNjZXNzaWJpbGl0eS90cmFuc2Zvcm1lZC1lbGVtZW50Lmh0bWwgPSBURVhUCitCVUdD
UjEwMzIyIFNLSVAgOiBhY2Nlc3NpYmlsaXR5L3Zpc2libGUtZWxlbWVudHMuaHRtbCA9IFRFWFQK
IAogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KIC8vIFRlc3QgZmFpbHVyZXMgd2l0aCBTa2lhIEdQVSByZW5kZXJpbmcg
b2YgY2FudmFzIDJECkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9hY2Nlc3Np
YmlsaXR5L2FkamFjZW50LWNvbnRpbnVhdGlvbnMtY2F1c2UtYXNzZXJ0aW9uLWZhaWx1cmUtZXhw
ZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Fj
Y2Vzc2liaWxpdHkvYWRqYWNlbnQtY29udGludWF0aW9ucy1jYXVzZS1hc3NlcnRpb24tZmFpbHVy
ZS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJv
bWl1bS9hY2Nlc3NpYmlsaXR5L2FkamFjZW50LWNvbnRpbnVhdGlvbnMtY2F1c2UtYXNzZXJ0aW9u
LWZhaWx1cmUtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDIwIEBACit4Cit5
Cit6CitFbmQgb2YgdGVzdAorTWFrZSBzdXJlIHRoYXQgYSBkZWJ1ZyBhc3NlcnQgaXMgbm90IHRy
aWdnZXJlZCB3aGVuIGNvbnN0cnVjdGluZyB0aGUgYWNjZXNzaWJpbGl0eSB0cmVlIGZvciB0aGlz
IHBhZ2UuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVz
c2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitBWFJvbGU6IEFYV2ViQXJl
YSBBWFZhbHVlOiAKKyAgICBBWFJvbGU6IEFYU3RhdGljVGV4dCBBWFZhbHVlOiB4CisgICAgQVhS
b2xlOiBBWEdyb3VwIEFYVmFsdWU6IAorICAgICAgICBBWFJvbGU6IEFYU3RhdGljVGV4dCBBWFZh
bHVlOiB5CisgICAgQVhSb2xlOiBBWFN0YXRpY1RleHQgQVhWYWx1ZTogegorICAgIEFYUm9sZTog
QVhHcm91cCBBWFZhbHVlOiAKKyAgICAgICAgQVhSb2xlOiBBWFN0YXRpY1RleHQgQVhWYWx1ZTog
RW5kIG9mIHRlc3QKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01Q
TEVURQorCgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1
bS9hY2Nlc3NpYmlsaXR5L2FkamFjZW50LWNvbnRpbnVhdGlvbnMtY2F1c2UtYXNzZXJ0aW9uLWZh
aWx1cmUtZXhwZWN0ZWQudHh0Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KQWRkZWQ6IHN2bjplb2wtc3R5bGUKICAgKyBM
RgoKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2FjY2Vzc2liaWxpdHkvYXJp
YS1sYWJlbGxlZGJ5LW92ZXJyaWRlcy1hcmlhLWxhYmVsLWV4cGVjdGVkLnR4dAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9hY2Nlc3NpYmlsaXR5L2FyaWEtbGFi
ZWxsZWRieS1vdmVycmlkZXMtYXJpYS1sYWJlbC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisr
KyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9hY2Nlc3NpYmlsaXR5L2FyaWEtbGFiZWxs
ZWRieS1vdmVycmlkZXMtYXJpYS1sYWJlbC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0w
LDAgKzEsMTIgQEAKK1RoaXMgdGVzdHMgdGhhdCBpZiBhcmlhLWxhYmVsbGVkYnkgaXMgdXNlZCwg
dGhlbiBhcmlhLWxhYmVsIGF0dHJpYnV0ZXMgYXJlIG5vdCB1c2VkLgorCitBbHBoYSBCZXRhIERl
bHRhIEV0YSBFcHNpbG9uIFRoZXRhCit1c2luZ05vbmUudGl0bGU6IFtBWFRpdGxlOiBBbHBoYV0K
K3VzaW5nTm9uZS5kZXNjcmlwdGlvbjogW0FYRGVzY3JpcHRpb246IF0KK3VzaW5nTGFiZWwudGl0
bGU6IFtBWFRpdGxlOiBCZXRhXQordXNpbmdMYWJlbC5kZXNjcmlwdGlvbjogW0FYRGVzY3JpcHRp
b246IEdhbW1hXQordXNpbmdMYWJlbGxlZGJ5LnRpdGxlOiBbQVhUaXRsZTogRGVsdGFdCit1c2lu
Z0xhYmVsbGVkYnkuZGVzY3JpcHRpb246IFtBWERlc2NyaXB0aW9uOiBFcHNpbG9uXQordXNpbmdM
YWJlbGVkYnkudGl0bGU6IFtBWFRpdGxlOiBFdGFdCit1c2luZ0xhYmVsZWRieS5kZXNjcmlwdGlv
bjogW0FYRGVzY3JpcHRpb246IFRoZXRhXQorCgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBMYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9hY2Nlc3NpYmlsaXR5L2FyaWEtbGFiZWxsZWRieS1vdmVy
cmlkZXMtYXJpYS1sYWJlbC1leHBlY3RlZC50eHQKX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpBZGRlZDogc3ZuOmVvbC1z
dHlsZQogICArIExGCgpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vYWNjZXNz
aWJpbGl0eS9kaXYtd2l0aGluLWFuY2hvcnMtY2F1c2VzLWNyYXNoLWV4cGVjdGVkLnR4dAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9hY2Nlc3NpYmlsaXR5L2Rp
di13aXRoaW4tYW5jaG9ycy1jYXVzZXMtY3Jhc2gtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQor
KysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vYWNjZXNzaWJpbGl0eS9kaXYtd2l0aGlu
LWFuY2hvcnMtY2F1c2VzLWNyYXNoLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCAr
MSwxOSBAQAorRW5kIG9mIHRlc3QKK0JlZm9yZToKK0FYUm9sZTogQVhXZWJBcmVhIEFYVmFsdWU6
IAorICAgIEFYUm9sZTogQVhMaW5rIEFYVmFsdWU6IAorICAgIEFYUm9sZTogQVhHcm91cCBBWFZh
bHVlOiAKKyAgICAgICAgQVhSb2xlOiBBWFN0YXRpY1RleHQgQVhWYWx1ZTogRW5kIG9mIHRlc3QK
K0FmdGVyOgorQVhSb2xlOiBBWFdlYkFyZWEgQVhWYWx1ZTogCisgICAgQVhSb2xlOiBBWEdyb3Vw
IEFYVmFsdWU6IAorICAgICAgICBBWFJvbGU6IEFYU3RhdGljVGV4dCBBWFZhbHVlOiBFbmQgb2Yg
dGVzdAorVGhpcyBjYW4gY2F1c2UgYSBjcmFzaC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2Vl
IGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUi
LgorCisKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQor
CgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9hY2Nl
c3NpYmlsaXR5L2Rpdi13aXRoaW4tYW5jaG9ycy1jYXVzZXMtY3Jhc2gtZXhwZWN0ZWQudHh0Cl9f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX18KQWRkZWQ6IHN2bjplb2wtc3R5bGUKICAgKyBMRgoKSW5kZXg6IExheW91dFRlc3Rz
L3BsYXRmb3JtL2Nocm9taXVtL2FjY2Vzc2liaWxpdHkvcGxhdGZvcm0tbmFtZS1leHBlY3RlZC50
eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vYWNjZXNzaWJp
bGl0eS9wbGF0Zm9ybS1uYW1lLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRl
c3RzL3BsYXRmb3JtL2Nocm9taXVtL2FjY2Vzc2liaWxpdHkvcGxhdGZvcm0tbmFtZS1leHBlY3Rl
ZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTAgQEAKK1RoaXMgdGVzdCBqdXN0IHByaW50
cyB0aGUgbmFtZSBvZiB0aGUgY3VycmVudCBwbGF0Zm9ybS4KKworT24gc3VjY2VzcywgeW91IHdp
bGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09N
UExFVEUiLgorCisKK1BsYXRmb3JtIG5hbWU6IGNocm9taXVtCitQQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwoKUHJvcGVydHkgY2hhbmdlcyBvbjogTGF5
b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vYWNjZXNzaWJpbGl0eS9wbGF0Zm9ybS1uYW1lLWV4
cGVjdGVkLnR4dApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fCkFkZGVkOiBzdm46ZW9sLXN0eWxlCiAgICsgTEYKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>110418</attachid>
            <date>2011-10-10 15:22:17 -0700</date>
            <delta_ts>2011-10-10 15:25:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-69676-20111010152216.patch</filename>
            <type>text/plain</type>
            <size>50450</size>
            <attacher name="Dominic Mazzoni">dmazzoni</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDk3MDk1KQorKysgVG9vbHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMg
KzEsODAgQEAKKzIwMTEtMTAtMDcgIERvbWluaWMgTWF6em9uaSAgPGRtYXp6b25pQGdvb2dsZS5j
b20+CisKKyAgICAgICAgVXBkYXRlIENocm9taXVtIGFjY2Vzc2liaWxpdHkgc3VwcG9ydCBpbiBE
UlQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02OTY3
NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZHMg
c2V2ZXJhbCBtaXNzaW5nIHByb3BlcnRpZXMgYW5kIG1ldGhvZHMgdG8gZW5hYmxlIG1vcmUKKyAg
ICAgICAgdGVzdHMgdG8gcGFzcywgYW5kIGluIHBhcnRpY3VsYXIgYWRkcyBzdXBwb3J0IGZvciBu
b3RpZmljYXRpb24KKyAgICAgICAgY2FsbGJhY2tzLgorCisgICAgICAgICogRHVtcFJlbmRlclRy
ZWUvY2hyb21pdW0vQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuY3BwOgorICAgICAgICAoQWNjZXNz
aWJpbGl0eUNvbnRyb2xsZXI6OkFjY2Vzc2liaWxpdHlDb250cm9sbGVyKToKKyAgICAgICAgKEFj
Y2Vzc2liaWxpdHlDb250cm9sbGVyOjpyZXNldCk6CisgICAgICAgIChBY2Nlc3NpYmlsaXR5Q29u
dHJvbGxlcjo6Z2V0Rm9jdXNlZEVsZW1lbnQpOgorICAgICAgICAoQWNjZXNzaWJpbGl0eUNvbnRy
b2xsZXI6OnNob3VsZExvZ0FjY2Vzc2liaWxpdHlFdmVudHMpOgorICAgICAgICAoQWNjZXNzaWJp
bGl0eUNvbnRyb2xsZXI6Om5vdGlmaWNhdGlvblJlY2VpdmVkKToKKyAgICAgICAgKEFjY2Vzc2li
aWxpdHlDb250cm9sbGVyOjpsb2dBY2Nlc3NpYmlsaXR5RXZlbnRzQ2FsbGJhY2spOgorICAgICAg
ICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyLmg6Cisg
ICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5j
cHA6CisgICAgICAgIChnZXRIZWxwVGV4dCk6CisgICAgICAgIChnZXRTdHJpbmdWYWx1ZSk6Cisg
ICAgICAgIChnZXRPcmllbnRhdGlvbik6CisgICAgICAgIChBY2Nlc3NpYmlsaXR5VUlFbGVtZW50
OjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50KToKKyAgICAgICAgKEFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQ6OmdldENoaWxkQXRJbmRleCk6CisgICAgICAgIChBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpp
c0VxdWFsKToKKyAgICAgICAgKEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6Om5vdGlmaWNhdGlvblJl
Y2VpdmVkKToKKyAgICAgICAgKEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnJvbGVHZXR0ZXJDYWxs
YmFjayk6CisgICAgICAgIChBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojp0aXRsZUdldHRlckNhbGxi
YWNrKToKKyAgICAgICAgKEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmRlc2NyaXB0aW9uR2V0dGVy
Q2FsbGJhY2spOgorICAgICAgICAoQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aGVscFRleHRHZXR0
ZXJDYWxsYmFjayk6CisgICAgICAgIChBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzdHJpbmdWYWx1
ZUdldHRlckNhbGxiYWNrKToKKyAgICAgICAgKEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnhHZXR0
ZXJDYWxsYmFjayk6CisgICAgICAgIChBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojp5R2V0dGVyQ2Fs
bGJhY2spOgorICAgICAgICAoQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6d2lkdGhHZXR0ZXJDYWxs
YmFjayk6CisgICAgICAgIChBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpoZWlnaHRHZXR0ZXJDYWxs
YmFjayk6CisgICAgICAgIChBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjppbnRWYWx1ZUdldHRlckNh
bGxiYWNrKToKKyAgICAgICAgKEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6Om1pblZhbHVlR2V0dGVy
Q2FsbGJhY2spOgorICAgICAgICAoQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6bWF4VmFsdWVHZXR0
ZXJDYWxsYmFjayk6CisgICAgICAgIChBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpjaGlsZHJlbkNv
dW50R2V0dGVyQ2FsbGJhY2spOgorICAgICAgICAoQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aW5z
ZXJ0aW9uUG9pbnRMaW5lTnVtYmVyR2V0dGVyQ2FsbGJhY2spOgorICAgICAgICAoQWNjZXNzaWJp
bGl0eVVJRWxlbWVudDo6c2VsZWN0ZWRUZXh0UmFuZ2VHZXR0ZXJDYWxsYmFjayk6CisgICAgICAg
IChBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojppc0VuYWJsZWRHZXR0ZXJDYWxsYmFjayk6CisgICAg
ICAgIChBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojppc1JlcXVpcmVkR2V0dGVyQ2FsbGJhY2spOgor
ICAgICAgICAoQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNGb2N1c2VkR2V0dGVyQ2FsbGJhY2sp
OgorICAgICAgICAoQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNGb2N1c2FibGVHZXR0ZXJDYWxs
YmFjayk6CisgICAgICAgIChBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojppc1NlbGVjdGVkR2V0dGVy
Q2FsbGJhY2spOgorICAgICAgICAoQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNTZWxlY3RhYmxl
R2V0dGVyQ2FsbGJhY2spOgorICAgICAgICAoQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNNdWx0
aVNlbGVjdGFibGVHZXR0ZXJDYWxsYmFjayk6CisgICAgICAgIChBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50Ojppc0V4cGFuZGVkR2V0dGVyQ2FsbGJhY2spOgorICAgICAgICAoQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudDo6aXNDaGVja2VkR2V0dGVyQ2FsbGJhY2spOgorICAgICAgICAoQWNjZXNzaWJpbGl0
eVVJRWxlbWVudDo6aXNWaXNpYmxlR2V0dGVyQ2FsbGJhY2spOgorICAgICAgICAoQWNjZXNzaWJp
bGl0eVVJRWxlbWVudDo6aXNPZmZTY3JlZW5HZXR0ZXJDYWxsYmFjayk6CisgICAgICAgIChBY2Nl
c3NpYmlsaXR5VUlFbGVtZW50Ojppc0NvbGxhcHNlZEdldHRlckNhbGxiYWNrKToKKyAgICAgICAg
KEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6Omhhc1BvcHVwR2V0dGVyQ2FsbGJhY2spOgorICAgICAg
ICAoQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNWYWxpZEdldHRlckNhbGxiYWNrKToKKyAgICAg
ICAgKEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6Om9yaWVudGF0aW9uR2V0dGVyQ2FsbGJhY2spOgor
ICAgICAgICAoQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2hvd01lbnVDYWxsYmFjayk6CisgICAg
ICAgIChBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpwcmVzc0NhbGxiYWNrKToKKyAgICAgICAgKEFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzRXF1YWxDYWxsYmFjayk6CisgICAgICAgIChBY2Nlc3Np
YmlsaXR5VUlFbGVtZW50OjphZGROb3RpZmljYXRpb25MaXN0ZW5lckNhbGxiYWNrKToKKyAgICAg
ICAgKEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnJlbW92ZU5vdGlmaWNhdGlvbkxpc3RlbmVyQ2Fs
bGJhY2spOgorICAgICAgICAoQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6dGFrZUZvY3VzQ2FsbGJh
Y2spOgorICAgICAgICAoQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6ZmFsbGJhY2tDYWxsYmFjayk6
CisgICAgICAgIChSb290QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6Z2V0Q2hpbGRBdEluZGV4KToK
KyAgICAgICAgKEFjY2Vzc2liaWxpdHlVSUVsZW1lbnRMaXN0OjpnZXRPckNyZWF0ZSk6CisgICAg
ICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5oOgor
ICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0NwcFZhcmlhbnQuY3BwOgorICAgICAg
ICAoQ3BwVmFyaWFudDo6aW52b2tlRGVmYXVsdCk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUv
Y2hyb21pdW0vQ3BwVmFyaWFudC5oOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVt
L0xheW91dFRlc3RDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKExheW91dFRlc3RDb250cm9sbGVy
OjpMYXlvdXRUZXN0Q29udHJvbGxlcik6CisgICAgICAgIChMYXlvdXRUZXN0Q29udHJvbGxlcjo6
cmVzZXQpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250
cm9sbGVyLmg6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3Qu
Y3BwOgorICAgICAgICAoV2ViVmlld0hvc3Q6OnBvc3RBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9u
KToKKwogMjAxMS0xMC0xMCAgRGF2aWQgTGV2aW4gIDxsZXZpbkBjaHJvbWl1bS5vcmc+CiAKICAg
ICAgICAgUXVpY2sgZml4IGZvciB3YXRjaGxpc3QgdW5pdCB0ZXN0IGZhaWx1cmVzIHdoZW4gdXNp
bmcgUHl0aG9uIDIuNysKSW5kZXg6IFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0FjY2Vz
c2liaWxpdHlDb250cm9sbGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9EdW1wUmVuZGVyVHJl
ZS9jaHJvbWl1bS9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5jcHAJKHJldmlzaW9uIDk3MDk1KQor
KysgVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MCwxMyArNDAsMTEgQEAKIHVzaW5nIG5hbWVzcGFjZSBX
ZWJLaXQ7CiAKIEFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjpBY2Nlc3NpYmlsaXR5Q29udHJvbGxl
cihUZXN0U2hlbGwqIHNoZWxsKQotICAgIDogbV9kdW1wQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlv
bnMoZmFsc2UpCisgICAgOiBtX2xvZ0FjY2Vzc2liaWxpdHlFdmVudHMoZmFsc2UpCiAgICAgLCBt
X3NoZWxsKHNoZWxsKQogewogCi0gICAgYmluZE1ldGhvZCgiZHVtcEFjY2Vzc2liaWxpdHlOb3Rp
ZmljYXRpb25zIiwgJkFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjpkdW1wQWNjZXNzaWJpbGl0eU5v
dGlmaWNhdGlvbnMpOwotICAgIGJpbmRNZXRob2QoImxvZ0ZvY3VzRXZlbnRzIiwgJkFjY2Vzc2li
aWxpdHlDb250cm9sbGVyOjpsb2dGb2N1c0V2ZW50c0NhbGxiYWNrKTsKLSAgICBiaW5kTWV0aG9k
KCJsb2dTY3JvbGxpbmdTdGFydEV2ZW50cyIsICZBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6bG9n
U2Nyb2xsaW5nU3RhcnRFdmVudHNDYWxsYmFjayk7CisgICAgYmluZE1ldGhvZCgibG9nQWNjZXNz
aWJpbGl0eUV2ZW50cyIsICZBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6bG9nQWNjZXNzaWJpbGl0
eUV2ZW50c0NhbGxiYWNrKTsKIAogICAgIGJpbmRQcm9wZXJ0eSgiZm9jdXNlZEVsZW1lbnQiLCAm
QWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6OmZvY3VzZWRFbGVtZW50R2V0dGVyQ2FsbGJhY2spOwog
ICAgIGJpbmRQcm9wZXJ0eSgicm9vdEVsZW1lbnQiLCAmQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6
OnJvb3RFbGVtZW50R2V0dGVyQ2FsbGJhY2spOwpAQCAtNjUsOCArNjMsOCBAQCB2b2lkIEFjY2Vz
c2liaWxpdHlDb250cm9sbGVyOjpyZXNldCgpCiAgICAgbV9yb290RWxlbWVudCA9IFdlYkFjY2Vz
c2liaWxpdHlPYmplY3QoKTsKICAgICBtX2ZvY3VzZWRFbGVtZW50ID0gV2ViQWNjZXNzaWJpbGl0
eU9iamVjdCgpOwogICAgIG1fZWxlbWVudHMuY2xlYXIoKTsKLSAgICAKLSAgICBtX2R1bXBBY2Nl
c3NpYmlsaXR5Tm90aWZpY2F0aW9ucyA9IGZhbHNlOworCisgICAgbV9sb2dBY2Nlc3NpYmlsaXR5
RXZlbnRzID0gZmFsc2U7CiB9CiAKIHZvaWQgQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6OnNldEZv
Y3VzZWRFbGVtZW50KGNvbnN0IFdlYkFjY2Vzc2liaWxpdHlPYmplY3QmIGZvY3VzZWRFbGVtZW50
KQpAQCAtNzgsNyArNzYsNyBAQCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50KiBBY2Nlc3NpYmlsaXR5
Q29uCiB7CiAgICAgaWYgKG1fZm9jdXNlZEVsZW1lbnQuaXNOdWxsKCkpCiAgICAgICAgIG1fZm9j
dXNlZEVsZW1lbnQgPSBtX3NoZWxsLT53ZWJWaWV3KCktPmFjY2Vzc2liaWxpdHlPYmplY3QoKTsK
LSAgICByZXR1cm4gbV9lbGVtZW50cy5jcmVhdGUobV9mb2N1c2VkRWxlbWVudCk7CisgICAgcmV0
dXJuIG1fZWxlbWVudHMuZ2V0T3JDcmVhdGUobV9mb2N1c2VkRWxlbWVudCk7CiB9CiAKIEFjY2Vz
c2liaWxpdHlVSUVsZW1lbnQqIEFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjpnZXRSb290RWxlbWVu
dCgpCkBAIC04OCwyMSArODYsMjAgQEAgQWNjZXNzaWJpbGl0eVVJRWxlbWVudCogQWNjZXNzaWJp
bGl0eUNvbgogICAgIHJldHVybiBtX2VsZW1lbnRzLmNyZWF0ZVJvb3QobV9yb290RWxlbWVudCk7
CiB9CiAKLXZvaWQgQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6OmR1bXBBY2Nlc3NpYmlsaXR5Tm90
aWZpY2F0aW9ucyhjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50KiByZXN1bHQpCiti
b29sIEFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjpzaG91bGRMb2dBY2Nlc3NpYmlsaXR5RXZlbnRz
KCkKIHsKLSAgICBtX2R1bXBBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9ucyA9IHRydWU7Ci0gICAg
cmVzdWx0LT5zZXROdWxsKCk7CisgICAgcmV0dXJuIG1fbG9nQWNjZXNzaWJpbGl0eUV2ZW50czsK
IH0KIAotdm9pZCBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6bG9nRm9jdXNFdmVudHNDYWxsYmFj
ayhjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50KiByZXN1bHQpCit2b2lkIEFjY2Vz
c2liaWxpdHlDb250cm9sbGVyOjpub3RpZmljYXRpb25SZWNlaXZlZChjb25zdCBXZWJLaXQ6Oldl
YkFjY2Vzc2liaWxpdHlPYmplY3QmIHRhcmdldCwgY29uc3QgY2hhciogbm90aWZpY2F0aW9uTmFt
ZSkKIHsKLSAgICAvLyBBcyBvZiByNDkwMzEsIHRoaXMgaXMgbm90IGJlaW5nIHVzZWQgdXBzdHJl
YW0uCi0gICAgcmVzdWx0LT5zZXROdWxsKCk7CisgICAgQWNjZXNzaWJpbGl0eVVJRWxlbWVudCog
ZWxlbWVudCA9IG1fZWxlbWVudHMuZ2V0T3JDcmVhdGUodGFyZ2V0KTsKKyAgICBlbGVtZW50LT5u
b3RpZmljYXRpb25SZWNlaXZlZChub3RpZmljYXRpb25OYW1lKTsKIH0KIAotdm9pZCBBY2Nlc3Np
YmlsaXR5Q29udHJvbGxlcjo6bG9nU2Nyb2xsaW5nU3RhcnRFdmVudHNDYWxsYmFjayhjb25zdCBD
cHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50KiByZXN1bHQpCit2b2lkIEFjY2Vzc2liaWxpdHlD
b250cm9sbGVyOjpsb2dBY2Nlc3NpYmlsaXR5RXZlbnRzQ2FsbGJhY2soY29uc3QgQ3BwQXJndW1l
bnRMaXN0JiwgQ3BwVmFyaWFudCogcmVzdWx0KQogewotICAgIC8vIEFzIG9mIHI0OTAzMSwgdGhp
cyBpcyBub3QgYmVpbmcgdXNlZCB1cHN0cmVhbS4KKyAgICBtX2xvZ0FjY2Vzc2liaWxpdHlFdmVu
dHMgPSB0cnVlOwogICAgIHJlc3VsdC0+c2V0TnVsbCgpOwogfQogCkluZGV4OiBUb29scy9EdW1w
UmVuZGVyVHJlZS9jaHJvbWl1bS9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0FjY2Vzc2liaWxpdHlDb250cm9sbGVy
LmgJKHJldmlzaW9uIDk3MDk1KQorKysgVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vQWNj
ZXNzaWJpbGl0eUNvbnRyb2xsZXIuaAkod29ya2luZyBjb3B5KQpAQCAtNTIsMjIgKzUyLDE3IEBA
IHB1YmxpYzoKICAgICB2b2lkIHNldEZvY3VzZWRFbGVtZW50KGNvbnN0IFdlYktpdDo6V2ViQWNj
ZXNzaWJpbGl0eU9iamVjdCYpOwogICAgIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQqIGdldEZvY3Vz
ZWRFbGVtZW50KCk7CiAgICAgQWNjZXNzaWJpbGl0eVVJRWxlbWVudCogZ2V0Um9vdEVsZW1lbnQo
KTsKLSAgICAKLSAgICAvLyBUaGlzIGZ1bmN0aW9uIHNldHMgYSBmbGFnIHRoYXQgdGVsbHMgdGhl
IHRlc3Rfc2hlbGwgdG8gZHVtcCBhbGwgCi0gICAgLy8gYWNjZXNzaWJpbGl0eSBub3RpZmljYXRp
b25zLgotICAgIHZvaWQgZHVtcEFjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25zKGNvbnN0IENwcEFy
Z3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKLQotcHVibGljOgotICAgIC8vIFRoZSBmb2xsb3dp
bmcgbWV0aG9kcyBhcmUgbm90IGV4cG9zZWQgdG8gSmF2YVNjcmlwdC4KLSAgICBib29sIHNob3Vs
ZER1bXBBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9ucygpIHsgcmV0dXJuIG1fZHVtcEFjY2Vzc2li
aWxpdHlOb3RpZmljYXRpb25zOyB9CisKKyAgICBib29sIHNob3VsZExvZ0FjY2Vzc2liaWxpdHlF
dmVudHMoKTsKKworICAgIHZvaWQgbm90aWZpY2F0aW9uUmVjZWl2ZWQoY29uc3QgV2ViS2l0OjpX
ZWJBY2Nlc3NpYmlsaXR5T2JqZWN0JiB0YXJnZXQsIGNvbnN0IGNoYXIqIG5vdGlmaWNhdGlvbk5h
bWUpOwogCiBwcml2YXRlOgotICAgIC8vIElmIHRydWUsIHRoZSB0ZXN0X3NoZWxsIHdpbGwgZHVt
cCBhbGwgYWNjZXNzaWJpbGl0eSBub3RpZmljYXRpb25zLgotICAgIGJvb2wgbV9kdW1wQWNjZXNz
aWJpbGl0eU5vdGlmaWNhdGlvbnM7CisgICAgLy8gSWYgdHJ1ZSwgd2lsbCBsb2cgYWxsIGFjY2Vz
c2liaWxpdHkgbm90aWZpY2F0aW9ucy4KKyAgICBib29sIG1fbG9nQWNjZXNzaWJpbGl0eUV2ZW50
czsKIAogICAgIC8vIEJvdW5kIG1ldGhvZHMgYW5kIHByb3BlcnRpZXMKLSAgICB2b2lkIGxvZ0Zv
Y3VzRXZlbnRzQ2FsbGJhY2soY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOwot
ICAgIHZvaWQgbG9nU2Nyb2xsaW5nU3RhcnRFdmVudHNDYWxsYmFjayhjb25zdCBDcHBBcmd1bWVu
dExpc3QmLCBDcHBWYXJpYW50Kik7CisgICAgdm9pZCBsb2dBY2Nlc3NpYmlsaXR5RXZlbnRzQ2Fs
bGJhY2soY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOwogICAgIHZvaWQgZmFs
bGJhY2tDYWxsYmFjayhjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7CiAKICAg
ICB2b2lkIGZvY3VzZWRFbGVtZW50R2V0dGVyQ2FsbGJhY2soQ3BwVmFyaWFudCopOwpJbmRleDog
VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vQWNjZXNzaWJpbGl0
eVVJRWxlbWVudC5jcHAJKHJldmlzaW9uIDk3MDk1KQorKysgVG9vbHMvRHVtcFJlbmRlclRyZWUv
Y2hyb21pdW0vQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMz
LDYgKzMzLDcgQEAKIAogI2luY2x1ZGUgIldlYkFjY2Vzc2liaWxpdHlPYmplY3QuaCIKICNpbmNs
dWRlICJXZWJDU3RyaW5nLmgiCisjaW5jbHVkZSAiV2ViUmVjdC5oIgogI2luY2x1ZGUgIldlYlN0
cmluZy5oIgogI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+CiAKQEAgLTIxNCw2ICsyMTUsMTgg
QEAgc3RyaW5nIGdldERlc2NyaXB0aW9uKGNvbnN0IFdlYkFjY2Vzc2liaQogICAgIHJldHVybiBk
ZXNjcmlwdGlvbi5pbnNlcnQoMCwgIkFYRGVzY3JpcHRpb246ICIpOwogfQogCitzdHJpbmcgZ2V0
SGVscFRleHQoY29uc3QgV2ViQWNjZXNzaWJpbGl0eU9iamVjdCYgb2JqZWN0KQoreworICAgIHN0
cmluZyBoZWxwVGV4dCA9IG9iamVjdC5oZWxwVGV4dCgpLnV0ZjgoKTsKKyAgICByZXR1cm4gaGVs
cFRleHQuaW5zZXJ0KDAsICJBWEhlbHA6ICIpOworfQorCitzdHJpbmcgZ2V0U3RyaW5nVmFsdWUo
Y29uc3QgV2ViQWNjZXNzaWJpbGl0eU9iamVjdCYgb2JqZWN0KQoreworICAgIHN0cmluZyB2YWx1
ZSA9IG9iamVjdC5zdHJpbmdWYWx1ZSgpLnV0ZjgoKTsKKyAgICByZXR1cm4gdmFsdWUuaW5zZXJ0
KDAsICJBWFZhbHVlOiAiKTsKK30KKwogc3RyaW5nIGdldFJvbGUoY29uc3QgV2ViQWNjZXNzaWJp
bGl0eU9iamVjdCYgb2JqZWN0KQogewogICAgIHJldHVybiByb2xlVG9TdHJpbmcob2JqZWN0LnJv
bGVWYWx1ZSgpKTsKQEAgLTIyNSw2ICsyMzgsMTQgQEAgc3RyaW5nIGdldFRpdGxlKGNvbnN0IFdl
YkFjY2Vzc2liaWxpdHlPYgogICAgIHJldHVybiB0aXRsZS5pbnNlcnQoMCwgIkFYVGl0bGU6ICIp
OwogfQogCitzdHJpbmcgZ2V0T3JpZW50YXRpb24oY29uc3QgV2ViQWNjZXNzaWJpbGl0eU9iamVj
dCYgb2JqZWN0KQoreworICAgIGlmIChvYmplY3QuaXNWZXJ0aWNhbCgpKQorICAgICAgICByZXR1
cm4gIkFYT3JpZW50YXRpb246IEFYVmVydGljYWxPcmllbnRhdGlvbiI7CisKKyAgICByZXR1cm4g
IkFYT3JpZW50YXRpb246IEFYSG9yaXpvbnRhbE9yaWVudGF0aW9uIjsKK30KKwogc3RyaW5nIGdl
dEF0dHJpYnV0ZXMoY29uc3QgV2ViQWNjZXNzaWJpbGl0eU9iamVjdCYgb2JqZWN0KQogewogICAg
IC8vIEZJWE1FOiBDb25jYXRlbmF0ZSBhbGwgYXR0cmlidXRlcyBvZiB0aGUgQWNjZXNzaWJpbGl0
eU9iamVjdC4KQEAgLTI2MSw4MiArMjgyLDI2NiBAQCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpB
Y2Nlc3NpYmlsaXR5VUlFCiAKICAgICBBU1NFUlQoZmFjdG9yeSk7CiAKKyAgICAvLworICAgIC8v
IFByb3BlcnRpZXMKKyAgICAvLworCisgICAgYmluZFByb3BlcnR5KCJyb2xlIiwgJkFjY2Vzc2li
aWxpdHlVSUVsZW1lbnQ6OnJvbGVHZXR0ZXJDYWxsYmFjayk7CisgICAgYmluZFByb3BlcnR5KCJ0
aXRsZSIsICZBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojp0aXRsZUdldHRlckNhbGxiYWNrKTsKKyAg
ICBiaW5kUHJvcGVydHkoImRlc2NyaXB0aW9uIiwgJkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmRl
c2NyaXB0aW9uR2V0dGVyQ2FsbGJhY2spOworICAgIGJpbmRQcm9wZXJ0eSgiaGVscFRleHQiLCAm
QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aGVscFRleHRHZXR0ZXJDYWxsYmFjayk7CisgICAgYmlu
ZFByb3BlcnR5KCJzdHJpbmdWYWx1ZSIsICZBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzdHJpbmdW
YWx1ZUdldHRlckNhbGxiYWNrKTsKKyAgICBiaW5kUHJvcGVydHkoIngiLCAmQWNjZXNzaWJpbGl0
eVVJRWxlbWVudDo6eEdldHRlckNhbGxiYWNrKTsKKyAgICBiaW5kUHJvcGVydHkoInkiLCAmQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudDo6eUdldHRlckNhbGxiYWNrKTsKKyAgICBiaW5kUHJvcGVydHko
IndpZHRoIiwgJkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OndpZHRoR2V0dGVyQ2FsbGJhY2spOwor
ICAgIGJpbmRQcm9wZXJ0eSgiaGVpZ2h0IiwgJkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmhlaWdo
dEdldHRlckNhbGxiYWNrKTsKKyAgICBiaW5kUHJvcGVydHkoImludFZhbHVlIiwgJkFjY2Vzc2li
aWxpdHlVSUVsZW1lbnQ6OmludFZhbHVlR2V0dGVyQ2FsbGJhY2spOworICAgIGJpbmRQcm9wZXJ0
eSgibWluVmFsdWUiLCAmQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6bWluVmFsdWVHZXR0ZXJDYWxs
YmFjayk7CisgICAgYmluZFByb3BlcnR5KCJtYXhWYWx1ZSIsICZBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50OjptYXhWYWx1ZUdldHRlckNhbGxiYWNrKTsKKyAgICBiaW5kUHJvcGVydHkoImNoaWxkcmVu
Q291bnQiLCAmQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6Y2hpbGRyZW5Db3VudEdldHRlckNhbGxi
YWNrKTsKKyAgICBiaW5kUHJvcGVydHkoImluc2VydGlvblBvaW50TGluZU51bWJlciIsICZBY2Nl
c3NpYmlsaXR5VUlFbGVtZW50OjppbnNlcnRpb25Qb2ludExpbmVOdW1iZXJHZXR0ZXJDYWxsYmFj
ayk7CisgICAgYmluZFByb3BlcnR5KCJzZWxlY3RlZFRleHRSYW5nZSIsICZBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50OjpzZWxlY3RlZFRleHRSYW5nZUdldHRlckNhbGxiYWNrKTsKKyAgICBiaW5kUHJv
cGVydHkoImlzRW5hYmxlZCIsICZBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojppc0VuYWJsZWRHZXR0
ZXJDYWxsYmFjayk7CisgICAgYmluZFByb3BlcnR5KCJpc1JlcXVpcmVkIiwgJkFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQ6OmlzUmVxdWlyZWRHZXR0ZXJDYWxsYmFjayk7CisgICAgYmluZFByb3BlcnR5
KCJpc0ZvY3VzZWQiLCAmQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNGb2N1c2VkR2V0dGVyQ2Fs
bGJhY2spOworICAgIGJpbmRQcm9wZXJ0eSgiaXNGb2N1c2FibGUiLCAmQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudDo6aXNGb2N1c2FibGVHZXR0ZXJDYWxsYmFjayk7CisgICAgYmluZFByb3BlcnR5KCJp
c1NlbGVjdGVkIiwgJkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzU2VsZWN0ZWRHZXR0ZXJDYWxs
YmFjayk7CisgICAgYmluZFByb3BlcnR5KCJpc1NlbGVjdGFibGUiLCAmQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudDo6aXNTZWxlY3RhYmxlR2V0dGVyQ2FsbGJhY2spOworICAgIGJpbmRQcm9wZXJ0eSgi
aXNNdWx0aVNlbGVjdGFibGUiLCAmQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNNdWx0aVNlbGVj
dGFibGVHZXR0ZXJDYWxsYmFjayk7CisgICAgYmluZFByb3BlcnR5KCJpc0V4cGFuZGVkIiwgJkFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzRXhwYW5kZWRHZXR0ZXJDYWxsYmFjayk7CisgICAgYmlu
ZFByb3BlcnR5KCJpc0NoZWNrZWQiLCAmQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNDaGVja2Vk
R2V0dGVyQ2FsbGJhY2spOworICAgIGJpbmRQcm9wZXJ0eSgiaXNWaXNpYmxlIiwgJkFjY2Vzc2li
aWxpdHlVSUVsZW1lbnQ6OmlzVmlzaWJsZUdldHRlckNhbGxiYWNrKTsKKyAgICBiaW5kUHJvcGVy
dHkoImlzT2ZmU2NyZWVuIiwgJkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzT2ZmU2NyZWVuR2V0
dGVyQ2FsbGJhY2spOworICAgIGJpbmRQcm9wZXJ0eSgiaXNDb2xsYXBzZWQiLCAmQWNjZXNzaWJp
bGl0eVVJRWxlbWVudDo6aXNDb2xsYXBzZWRHZXR0ZXJDYWxsYmFjayk7CisgICAgYmluZFByb3Bl
cnR5KCJoYXNQb3B1cCIsICZBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpoYXNQb3B1cEdldHRlckNh
bGxiYWNrKTsKKyAgICBiaW5kUHJvcGVydHkoImlzVmFsaWQiLCAmQWNjZXNzaWJpbGl0eVVJRWxl
bWVudDo6aXNWYWxpZEdldHRlckNhbGxiYWNrKTsKKyAgICBiaW5kUHJvcGVydHkoIm9yaWVudGF0
aW9uIiwgJkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6Om9yaWVudGF0aW9uR2V0dGVyQ2FsbGJhY2sp
OworCisgICAgLy8KKyAgICAvLyBNZXRob2RzCisgICAgLy8KKwogICAgIGJpbmRNZXRob2QoImFs
bEF0dHJpYnV0ZXMiLCAmQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YWxsQXR0cmlidXRlc0NhbGxi
YWNrKTsKLSAgICBiaW5kTWV0aG9kKCJhdHRyaWJ1dGVzT2ZMaW5rZWRVSUVsZW1lbnRzIiwKLSAg
ICAgICAgICAgICAgICZBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphdHRyaWJ1dGVzT2ZMaW5rZWRV
SUVsZW1lbnRzQ2FsbGJhY2spOwotICAgIGJpbmRNZXRob2QoImF0dHJpYnV0ZXNPZkRvY3VtZW50
TGlua3MiLAotICAgICAgICAgICAgICAgJkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmF0dHJpYnV0
ZXNPZkRvY3VtZW50TGlua3NDYWxsYmFjayk7Ci0gICAgYmluZE1ldGhvZCgiYXR0cmlidXRlc09m
Q2hpbGRyZW4iLAotICAgICAgICAgICAgICAgJkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmF0dHJp
YnV0ZXNPZkNoaWxkcmVuQ2FsbGJhY2spOwotICAgIGJpbmRNZXRob2QoInBhcmFtZXRlcml6ZWRB
dHRyaWJ1dGVOYW1lcyIsCi0gICAgICAgICAgICAgICAmQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6
cGFyYW1ldHJpemVkQXR0cmlidXRlTmFtZXNDYWxsYmFjayk7CisgICAgYmluZE1ldGhvZCgiYXR0
cmlidXRlc09mTGlua2VkVUlFbGVtZW50cyIsICZBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphdHRy
aWJ1dGVzT2ZMaW5rZWRVSUVsZW1lbnRzQ2FsbGJhY2spOworICAgIGJpbmRNZXRob2QoImF0dHJp
YnV0ZXNPZkRvY3VtZW50TGlua3MiLCAmQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YXR0cmlidXRl
c09mRG9jdW1lbnRMaW5rc0NhbGxiYWNrKTsKKyAgICBiaW5kTWV0aG9kKCJhdHRyaWJ1dGVzT2ZD
aGlsZHJlbiIsICZBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphdHRyaWJ1dGVzT2ZDaGlsZHJlbkNh
bGxiYWNrKTsKICAgICBiaW5kTWV0aG9kKCJsaW5lRm9ySW5kZXgiLCAmQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudDo6bGluZUZvckluZGV4Q2FsbGJhY2spOwogICAgIGJpbmRNZXRob2QoImJvdW5kc0Zv
clJhbmdlIiwgJkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmJvdW5kc0ZvclJhbmdlQ2FsbGJhY2sp
OwogICAgIGJpbmRNZXRob2QoInN0cmluZ0ZvclJhbmdlIiwgJkFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQ6OnN0cmluZ0ZvclJhbmdlQ2FsbGJhY2spOwogICAgIGJpbmRNZXRob2QoImNoaWxkQXRJbmRl
eCIsICZBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpjaGlsZEF0SW5kZXhDYWxsYmFjayk7CiAgICAg
YmluZE1ldGhvZCgiZWxlbWVudEF0UG9pbnQiLCAmQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6ZWxl
bWVudEF0UG9pbnRDYWxsYmFjayk7Ci0gICAgYmluZE1ldGhvZCgiYXR0cmlidXRlc09mQ29sdW1u
SGVhZGVycyIsCi0gICAgICAgICAgICAgICAmQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YXR0cmli
dXRlc09mQ29sdW1uSGVhZGVyc0NhbGxiYWNrKTsKLSAgICBiaW5kTWV0aG9kKCJhdHRyaWJ1dGVz
T2ZSb3dIZWFkZXJzIiwKLSAgICAgICAgICAgICAgICZBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojph
dHRyaWJ1dGVzT2ZSb3dIZWFkZXJzQ2FsbGJhY2spOwotICAgIGJpbmRNZXRob2QoImF0dHJpYnV0
ZXNPZkNvbHVtbnMiLAotICAgICAgICAgICAgICAgJkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmF0
dHJpYnV0ZXNPZkNvbHVtbnNDYWxsYmFjayk7Ci0gICAgYmluZE1ldGhvZCgiYXR0cmlidXRlc09m
Um93cyIsCi0gICAgICAgICAgICAgICAmQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YXR0cmlidXRl
c09mUm93c0NhbGxiYWNrKTsKLSAgICBiaW5kTWV0aG9kKCJhdHRyaWJ1dGVzT2ZWaXNpYmxlQ2Vs
bHMiLAotICAgICAgICAgICAgICAgJkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmF0dHJpYnV0ZXNP
ZlZpc2libGVDZWxsc0NhbGxiYWNrKTsKLSAgICBiaW5kTWV0aG9kKCJhdHRyaWJ1dGVzT2ZIZWFk
ZXIiLAotICAgICAgICAgICAgICAgJkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmF0dHJpYnV0ZXNP
ZkhlYWRlckNhbGxiYWNrKTsKKyAgICBiaW5kTWV0aG9kKCJhdHRyaWJ1dGVzT2ZDb2x1bW5IZWFk
ZXJzIiwgJkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmF0dHJpYnV0ZXNPZkNvbHVtbkhlYWRlcnND
YWxsYmFjayk7CisgICAgYmluZE1ldGhvZCgiYXR0cmlidXRlc09mUm93SGVhZGVycyIsICZBY2Nl
c3NpYmlsaXR5VUlFbGVtZW50OjphdHRyaWJ1dGVzT2ZSb3dIZWFkZXJzQ2FsbGJhY2spOworICAg
IGJpbmRNZXRob2QoImF0dHJpYnV0ZXNPZkNvbHVtbnMiLCAmQWNjZXNzaWJpbGl0eVVJRWxlbWVu
dDo6YXR0cmlidXRlc09mQ29sdW1uc0NhbGxiYWNrKTsKKyAgICBiaW5kTWV0aG9kKCJhdHRyaWJ1
dGVzT2ZSb3dzIiwgJkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmF0dHJpYnV0ZXNPZlJvd3NDYWxs
YmFjayk7CisgICAgYmluZE1ldGhvZCgiYXR0cmlidXRlc09mVmlzaWJsZUNlbGxzIiwgJkFjY2Vz
c2liaWxpdHlVSUVsZW1lbnQ6OmF0dHJpYnV0ZXNPZlZpc2libGVDZWxsc0NhbGxiYWNrKTsKKyAg
ICBiaW5kTWV0aG9kKCJhdHRyaWJ1dGVzT2ZIZWFkZXIiLCAmQWNjZXNzaWJpbGl0eVVJRWxlbWVu
dDo6YXR0cmlidXRlc09mSGVhZGVyQ2FsbGJhY2spOwogICAgIGJpbmRNZXRob2QoImluZGV4SW5U
YWJsZSIsICZBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjppbmRleEluVGFibGVDYWxsYmFjayk7CiAg
ICAgYmluZE1ldGhvZCgicm93SW5kZXhSYW5nZSIsICZBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpy
b3dJbmRleFJhbmdlQ2FsbGJhY2spOwotICAgIGJpbmRNZXRob2QoImNvbHVtbkluZGV4UmFuZ2Ui
LAotICAgICAgICAgICAgICAgJkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmNvbHVtbkluZGV4UmFu
Z2VDYWxsYmFjayk7Ci0gICAgYmluZE1ldGhvZCgiY2VsbEZvckNvbHVtbkFuZFJvdyIsCi0gICAg
ICAgICAgICAgICAmQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6Y2VsbEZvckNvbHVtbkFuZFJvd0Nh
bGxiYWNrKTsKKyAgICBiaW5kTWV0aG9kKCJjb2x1bW5JbmRleFJhbmdlIiwgJkFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQ6OmNvbHVtbkluZGV4UmFuZ2VDYWxsYmFjayk7CisgICAgYmluZE1ldGhvZCgi
Y2VsbEZvckNvbHVtbkFuZFJvdyIsICZBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpjZWxsRm9yQ29s
dW1uQW5kUm93Q2FsbGJhY2spOwogICAgIGJpbmRNZXRob2QoInRpdGxlVUlFbGVtZW50IiwgJkFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnRpdGxlVUlFbGVtZW50Q2FsbGJhY2spOwotICAgIGJpbmRN
ZXRob2QoInNldFNlbGVjdGVkVGV4dFJhbmdlIiwKLSAgICAgICAgICAgICAgICZBY2Nlc3NpYmls
aXR5VUlFbGVtZW50OjpzZXRTZWxlY3RlZFRleHRSYW5nZUNhbGxiYWNrKTsKKyAgICBiaW5kTWV0
aG9kKCJzZXRTZWxlY3RlZFRleHRSYW5nZSIsICZBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzZXRT
ZWxlY3RlZFRleHRSYW5nZUNhbGxiYWNrKTsKICAgICBiaW5kTWV0aG9kKCJhdHRyaWJ1dGVWYWx1
ZSIsICZBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphdHRyaWJ1dGVWYWx1ZUNhbGxiYWNrKTsKLSAg
ICBiaW5kTWV0aG9kKCJpc0F0dHJpYnV0ZVNldHRhYmxlIiwKLSAgICAgICAgICAgICAgICZBY2Nl
c3NpYmlsaXR5VUlFbGVtZW50Ojppc0F0dHJpYnV0ZVNldHRhYmxlQ2FsbGJhY2spOwotICAgIGJp
bmRNZXRob2QoImlzQWN0aW9uU3VwcG9ydGVkIiwKLSAgICAgICAgICAgICAgICZBY2Nlc3NpYmls
aXR5VUlFbGVtZW50Ojppc0FjdGlvblN1cHBvcnRlZENhbGxiYWNrKTsKKyAgICBiaW5kTWV0aG9k
KCJpc0F0dHJpYnV0ZVNldHRhYmxlIiwgJkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzQXR0cmli
dXRlU2V0dGFibGVDYWxsYmFjayk7CisgICAgYmluZE1ldGhvZCgiaXNBY3Rpb25TdXBwb3J0ZWQi
LCAmQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNBY3Rpb25TdXBwb3J0ZWRDYWxsYmFjayk7CiAg
ICAgYmluZE1ldGhvZCgicGFyZW50RWxlbWVudCIsICZBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpw
YXJlbnRFbGVtZW50Q2FsbGJhY2spOwogICAgIGJpbmRNZXRob2QoImluY3JlbWVudCIsICZBY2Nl
c3NpYmlsaXR5VUlFbGVtZW50OjppbmNyZW1lbnRDYWxsYmFjayk7CiAgICAgYmluZE1ldGhvZCgi
ZGVjcmVtZW50IiwgJkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmRlY3JlbWVudENhbGxiYWNrKTsK
LQotICAgIGJpbmRQcm9wZXJ0eSgicm9sZSIsICZBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpyb2xl
R2V0dGVyQ2FsbGJhY2spOwotICAgIGJpbmRQcm9wZXJ0eSgic3Vicm9sZSIsICZtX3N1YnJvbGUp
OwotICAgIGJpbmRQcm9wZXJ0eSgidGl0bGUiLCAmQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6dGl0
bGVHZXR0ZXJDYWxsYmFjayk7Ci0gICAgYmluZFByb3BlcnR5KCJkZXNjcmlwdGlvbiIsCi0gICAg
ICAgICAgICAgICAgICZBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpkZXNjcmlwdGlvbkdldHRlckNh
bGxiYWNrKTsKLSAgICBiaW5kUHJvcGVydHkoImxhbmd1YWdlIiwgJm1fbGFuZ3VhZ2UpOwotICAg
IGJpbmRQcm9wZXJ0eSgieCIsICZtX3gpOwotICAgIGJpbmRQcm9wZXJ0eSgieSIsICZtX3kpOwot
ICAgIGJpbmRQcm9wZXJ0eSgid2lkdGgiLCAmbV93aWR0aCk7Ci0gICAgYmluZFByb3BlcnR5KCJo
ZWlnaHQiLCAmbV9oZWlnaHQpOwotICAgIGJpbmRQcm9wZXJ0eSgiY2xpY2tQb2ludFgiLCAmbV9j
bGlja1BvaW50WCk7Ci0gICAgYmluZFByb3BlcnR5KCJjbGlja1BvaW50WSIsICZtX2NsaWNrUG9p
bnRZKTsKLSAgICBiaW5kUHJvcGVydHkoImludFZhbHVlIiwgJm1faW50VmFsdWUpOwotICAgIGJp
bmRQcm9wZXJ0eSgibWluVmFsdWUiLCAmbV9taW5WYWx1ZSk7Ci0gICAgYmluZFByb3BlcnR5KCJt
YXhWYWx1ZSIsICZtX21heFZhbHVlKTsKLSAgICBiaW5kUHJvcGVydHkoImNoaWxkcmVuQ291bnQi
LAotICAgICAgICAgICAgICAgICAmQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6Y2hpbGRyZW5Db3Vu
dEdldHRlckNhbGxiYWNrKTsKLSAgICBiaW5kUHJvcGVydHkoImluc2VydGlvblBvaW50TGluZU51
bWJlciIsICZtX2luc2VydGlvblBvaW50TGluZU51bWJlcik7Ci0gICAgYmluZFByb3BlcnR5KCJz
ZWxlY3RlZFRleHRSYW5nZSIsICZtX3NlbGVjdGVkVGV4dFJhbmdlKTsKLSAgICBiaW5kUHJvcGVy
dHkoImlzRW5hYmxlZCIsICZBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojppc0VuYWJsZWRHZXR0ZXJD
YWxsYmFjayk7Ci0gICAgYmluZFByb3BlcnR5KCJpc1JlcXVpcmVkIiwgJm1faXNSZXF1aXJlZCk7
Ci0gICAgYmluZFByb3BlcnR5KCJpc1NlbGVjdGVkIiwgJkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6
OmlzU2VsZWN0ZWRHZXR0ZXJDYWxsYmFjayk7Ci0gICAgYmluZFByb3BlcnR5KCJ2YWx1ZURlc2Ny
aXB0aW9uIiwgJm1fdmFsdWVEZXNjcmlwdGlvbik7CisgICAgYmluZE1ldGhvZCgic2hvd01lbnUi
LCAmQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2hvd01lbnVDYWxsYmFjayk7CisgICAgYmluZE1l
dGhvZCgicHJlc3MiLCAmQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6cHJlc3NDYWxsYmFjayk7Cisg
ICAgYmluZE1ldGhvZCgiaXNFcXVhbCIsICZBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojppc0VxdWFs
Q2FsbGJhY2spOworICAgIGJpbmRNZXRob2QoImFkZE5vdGlmaWNhdGlvbkxpc3RlbmVyIiwgJkFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmFkZE5vdGlmaWNhdGlvbkxpc3RlbmVyQ2FsbGJhY2spOwor
ICAgIGJpbmRNZXRob2QoInJlbW92ZU5vdGlmaWNhdGlvbkxpc3RlbmVyIiwgJkFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQ6OnJlbW92ZU5vdGlmaWNhdGlvbkxpc3RlbmVyQ2FsbGJhY2spOworICAgIGJp
bmRNZXRob2QoInRha2VGb2N1cyIsICZBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojp0YWtlRm9jdXND
YWxsYmFjayk7CiAKICAgICBiaW5kRmFsbGJhY2tNZXRob2QoJkFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQ6OmZhbGxiYWNrQ2FsbGJhY2spOwogfQogCiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50KiBBY2Nl
c3NpYmlsaXR5VUlFbGVtZW50OjpnZXRDaGlsZEF0SW5kZXgodW5zaWduZWQgaW5kZXgpCiB7Ci0g
ICAgcmV0dXJuIG1fZmFjdG9yeS0+Y3JlYXRlKGFjY2Vzc2liaWxpdHlPYmplY3QoKS5jaGlsZEF0
KGluZGV4KSk7CisgICAgcmV0dXJuIG1fZmFjdG9yeS0+Z2V0T3JDcmVhdGUoYWNjZXNzaWJpbGl0
eU9iamVjdCgpLmNoaWxkQXQoaW5kZXgpKTsKK30KKworYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50Ojppc0VxdWFsKGNvbnN0IFdlYktpdDo6V2ViQWNjZXNzaWJpbGl0eU9iamVjdCYgb3RoZXIp
Cit7CisgICAgcmV0dXJuIGFjY2Vzc2liaWxpdHlPYmplY3QoKS5lcXVhbHMob3RoZXIpOworfQor
Cit2b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6Om5vdGlmaWNhdGlvblJlY2VpdmVkKGNvbnN0
IGNoYXIqIG5vdGlmaWNhdGlvbk5hbWUpCit7CisgICAgc2l6ZV90IGNhbGxiYWNrQ291bnQgPSBt
X25vdGlmaWNhdGlvbkNhbGxiYWNrcy5zaXplKCk7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkg
PCBjYWxsYmFja0NvdW50OyBpKyspIHsKKyAgICAgICAgQ3BwVmFyaWFudCBub3RpZmljYXRpb25O
YW1lQXJndW1lbnQ7CisgICAgICAgIG5vdGlmaWNhdGlvbk5hbWVBcmd1bWVudC5zZXQobm90aWZp
Y2F0aW9uTmFtZSk7CisgICAgICAgIENwcFZhcmlhbnQgaW52b2tlUmVzdWx0OworICAgICAgICBt
X25vdGlmaWNhdGlvbkNhbGxiYWNrc1tpXS5pbnZva2VEZWZhdWx0KCZub3RpZmljYXRpb25OYW1l
QXJndW1lbnQsIDEsIGludm9rZVJlc3VsdCk7CisgICAgfQorfQorCisvLworLy8gUHJvcGVydGll
cworLy8KKwordm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpyb2xlR2V0dGVyQ2FsbGJhY2so
Q3BwVmFyaWFudCogcmVzdWx0KQoreworICAgIHJlc3VsdC0+c2V0KGdldFJvbGUoYWNjZXNzaWJp
bGl0eU9iamVjdCgpKSk7Cit9CisKK3ZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6dGl0bGVH
ZXR0ZXJDYWxsYmFjayhDcHBWYXJpYW50KiByZXN1bHQpCit7CisgICAgcmVzdWx0LT5zZXQoZ2V0
VGl0bGUoYWNjZXNzaWJpbGl0eU9iamVjdCgpKSk7Cit9CisKK3ZvaWQgQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudDo6ZGVzY3JpcHRpb25HZXR0ZXJDYWxsYmFjayhDcHBWYXJpYW50KiByZXN1bHQpCit7
CisgICAgcmVzdWx0LT5zZXQoZ2V0RGVzY3JpcHRpb24oYWNjZXNzaWJpbGl0eU9iamVjdCgpKSk7
Cit9CisKK3ZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aGVscFRleHRHZXR0ZXJDYWxsYmFj
ayhDcHBWYXJpYW50KiByZXN1bHQpCit7CisgICAgcmVzdWx0LT5zZXQoZ2V0SGVscFRleHQoYWNj
ZXNzaWJpbGl0eU9iamVjdCgpKSk7Cit9CisKK3ZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6
c3RyaW5nVmFsdWVHZXR0ZXJDYWxsYmFjayhDcHBWYXJpYW50KiByZXN1bHQpCit7CisgICAgcmVz
dWx0LT5zZXQoZ2V0U3RyaW5nVmFsdWUoYWNjZXNzaWJpbGl0eU9iamVjdCgpKSk7Cit9CisKK3Zv
aWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6eEdldHRlckNhbGxiYWNrKENwcFZhcmlhbnQqIHJl
c3VsdCkKK3sKKyAgICByZXN1bHQtPnNldChhY2Nlc3NpYmlsaXR5T2JqZWN0KCkuYm91bmRpbmdC
b3hSZWN0KCkueCk7Cit9CisKK3ZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6eUdldHRlckNh
bGxiYWNrKENwcFZhcmlhbnQqIHJlc3VsdCkKK3sKKyAgICByZXN1bHQtPnNldChhY2Nlc3NpYmls
aXR5T2JqZWN0KCkuYm91bmRpbmdCb3hSZWN0KCkueSk7Cit9CisKK3ZvaWQgQWNjZXNzaWJpbGl0
eVVJRWxlbWVudDo6d2lkdGhHZXR0ZXJDYWxsYmFjayhDcHBWYXJpYW50KiByZXN1bHQpCit7Cisg
ICAgcmVzdWx0LT5zZXQoYWNjZXNzaWJpbGl0eU9iamVjdCgpLmJvdW5kaW5nQm94UmVjdCgpLndp
ZHRoKTsKK30KKwordm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpoZWlnaHRHZXR0ZXJDYWxs
YmFjayhDcHBWYXJpYW50KiByZXN1bHQpCit7CisgICAgcmVzdWx0LT5zZXQoYWNjZXNzaWJpbGl0
eU9iamVjdCgpLmJvdW5kaW5nQm94UmVjdCgpLmhlaWdodCk7Cit9CisKK3ZvaWQgQWNjZXNzaWJp
bGl0eVVJRWxlbWVudDo6aW50VmFsdWVHZXR0ZXJDYWxsYmFjayhDcHBWYXJpYW50KiByZXN1bHQp
Cit7CisgICAgcmVzdWx0LT5zZXQoYWNjZXNzaWJpbGl0eU9iamVjdCgpLnZhbHVlRm9yUmFuZ2Uo
KSk7Cit9CisKK3ZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6bWluVmFsdWVHZXR0ZXJDYWxs
YmFjayhDcHBWYXJpYW50KiByZXN1bHQpCit7CisgICAgcmVzdWx0LT5zZXQoYWNjZXNzaWJpbGl0
eU9iamVjdCgpLm1pblZhbHVlRm9yUmFuZ2UoKSk7Cit9CisKK3ZvaWQgQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudDo6bWF4VmFsdWVHZXR0ZXJDYWxsYmFjayhDcHBWYXJpYW50KiByZXN1bHQpCit7Cisg
ICAgcmVzdWx0LT5zZXQoYWNjZXNzaWJpbGl0eU9iamVjdCgpLm1heFZhbHVlRm9yUmFuZ2UoKSk7
Cit9CisKK3ZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6Y2hpbGRyZW5Db3VudEdldHRlckNh
bGxiYWNrKENwcFZhcmlhbnQqIHJlc3VsdCkKK3sKKyAgICBpbnQgY291bnQgPSAxOyAvLyBSb290
IG9iamVjdCBhbHdheXMgaGFzIG9ubHkgb25lIGNoaWxkLCB0aGUgV2ViVmlldy4KKyAgICBpZiAo
IWlzUm9vdCgpKQorICAgICAgICBjb3VudCA9IGFjY2Vzc2liaWxpdHlPYmplY3QoKS5jaGlsZENv
dW50KCk7CisgICAgcmVzdWx0LT5zZXQoY291bnQpOworfQorCit2b2lkIEFjY2Vzc2liaWxpdHlV
SUVsZW1lbnQ6Omluc2VydGlvblBvaW50TGluZU51bWJlckdldHRlckNhbGxiYWNrKENwcFZhcmlh
bnQqIHJlc3VsdCkKK3sKKyAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRoaXMuCisgICAgcmVzdWx0
LT5zZXQoMCk7Cit9CisKK3ZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2VsZWN0ZWRUZXh0
UmFuZ2VHZXR0ZXJDYWxsYmFjayhDcHBWYXJpYW50KiByZXN1bHQpCit7CisgICAgLy8gRklYTUU6
IEltcGxlbWVudCB0aGlzLgorICAgIHJlc3VsdC0+c2V0KHN0ZDo6c3RyaW5nKCkpOworfQorCit2
b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzRW5hYmxlZEdldHRlckNhbGxiYWNrKENwcFZh
cmlhbnQqIHJlc3VsdCkKK3sKKyAgICByZXN1bHQtPnNldChhY2Nlc3NpYmlsaXR5T2JqZWN0KCku
aXNFbmFibGVkKCkpOworfQorCit2b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzUmVxdWly
ZWRHZXR0ZXJDYWxsYmFjayhDcHBWYXJpYW50KiByZXN1bHQpCit7CisgICAgcmVzdWx0LT5zZXQo
YWNjZXNzaWJpbGl0eU9iamVjdCgpLmlzUmVxdWlyZWQoKSk7Cit9CisKK3ZvaWQgQWNjZXNzaWJp
bGl0eVVJRWxlbWVudDo6aXNGb2N1c2VkR2V0dGVyQ2FsbGJhY2soQ3BwVmFyaWFudCogcmVzdWx0
KQoreworICAgIHJlc3VsdC0+c2V0KGFjY2Vzc2liaWxpdHlPYmplY3QoKS5pc0ZvY3VzZWQoKSk7
Cit9CisKK3ZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNGb2N1c2FibGVHZXR0ZXJDYWxs
YmFjayhDcHBWYXJpYW50KiByZXN1bHQpCit7CisgICAgcmVzdWx0LT5zZXQoYWNjZXNzaWJpbGl0
eU9iamVjdCgpLmNhblNldEZvY3VzQXR0cmlidXRlKCkpOwogfQogCit2b2lkIEFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQ6OmlzU2VsZWN0ZWRHZXR0ZXJDYWxsYmFjayhDcHBWYXJpYW50KiByZXN1bHQp
Cit7CisgICAgcmVzdWx0LT5zZXQoYWNjZXNzaWJpbGl0eU9iamVjdCgpLmlzU2VsZWN0ZWQoKSk7
Cit9CisKK3ZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNTZWxlY3RhYmxlR2V0dGVyQ2Fs
bGJhY2soQ3BwVmFyaWFudCogcmVzdWx0KQoreworICAgIHJlc3VsdC0+c2V0KGFjY2Vzc2liaWxp
dHlPYmplY3QoKS5jYW5TZXRTZWxlY3RlZEF0dHJpYnV0ZSgpKTsKK30KKwordm9pZCBBY2Nlc3Np
YmlsaXR5VUlFbGVtZW50Ojppc011bHRpU2VsZWN0YWJsZUdldHRlckNhbGxiYWNrKENwcFZhcmlh
bnQqIHJlc3VsdCkKK3sKKyAgICByZXN1bHQtPnNldChhY2Nlc3NpYmlsaXR5T2JqZWN0KCkuaXNN
dWx0aVNlbGVjdGFibGUoKSk7Cit9CisKK3ZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNF
eHBhbmRlZEdldHRlckNhbGxiYWNrKENwcFZhcmlhbnQqIHJlc3VsdCkKK3sKKyAgICByZXN1bHQt
PnNldCghYWNjZXNzaWJpbGl0eU9iamVjdCgpLmlzQ29sbGFwc2VkKCkpOworfQorCit2b2lkIEFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzQ2hlY2tlZEdldHRlckNhbGxiYWNrKENwcFZhcmlhbnQq
IHJlc3VsdCkKK3sKKyAgICByZXN1bHQtPnNldChhY2Nlc3NpYmlsaXR5T2JqZWN0KCkuaXNDaGVj
a2VkKCkpOworfQorCit2b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzVmlzaWJsZUdldHRl
ckNhbGxiYWNrKENwcFZhcmlhbnQqIHJlc3VsdCkKK3sKKyAgICByZXN1bHQtPnNldChhY2Nlc3Np
YmlsaXR5T2JqZWN0KCkuaXNWaXNpYmxlKCkpOworfQorCit2b2lkIEFjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQ6OmlzT2ZmU2NyZWVuR2V0dGVyQ2FsbGJhY2soQ3BwVmFyaWFudCogcmVzdWx0KQorewor
ICAgIHJlc3VsdC0+c2V0KGFjY2Vzc2liaWxpdHlPYmplY3QoKS5pc09mZlNjcmVlbigpKTsKK30K
Kwordm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojppc0NvbGxhcHNlZEdldHRlckNhbGxiYWNr
KENwcFZhcmlhbnQqIHJlc3VsdCkKK3sKKyAgICByZXN1bHQtPnNldChhY2Nlc3NpYmlsaXR5T2Jq
ZWN0KCkuaXNDb2xsYXBzZWQoKSk7Cit9CisKK3ZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6
aGFzUG9wdXBHZXR0ZXJDYWxsYmFjayhDcHBWYXJpYW50KiByZXN1bHQpCit7CisgICAgcmVzdWx0
LT5zZXQoYWNjZXNzaWJpbGl0eU9iamVjdCgpLmFyaWFIYXNQb3B1cCgpKTsKK30KKwordm9pZCBB
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojppc1ZhbGlkR2V0dGVyQ2FsbGJhY2soQ3BwVmFyaWFudCog
cmVzdWx0KQoreworICAgIHJlc3VsdC0+c2V0KGFjY2Vzc2liaWxpdHlPYmplY3QoKS5pc1ZhbGlk
KCkpOworfQorCit2b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6Om9yaWVudGF0aW9uR2V0dGVy
Q2FsbGJhY2soQ3BwVmFyaWFudCogcmVzdWx0KQoreworICAgIHJlc3VsdC0+c2V0KGdldE9yaWVu
dGF0aW9uKGFjY2Vzc2liaWxpdHlPYmplY3QoKSkpOworfQorCisvLworLy8gTWV0aG9kcworLy8K
Kwogdm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphbGxBdHRyaWJ1dGVzQ2FsbGJhY2soY29u
c3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCogcmVzdWx0KQogewogICAgIHJlc3VsdC0+
c2V0KGdldEF0dHJpYnV0ZXMoYWNjZXNzaWJpbGl0eU9iamVjdCgpKSk7CkBAIC01MDMsNDYgKzcw
OCw1NiBAQCB2b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmRlY3JlbWVudENhCiAgICAgcmVz
dWx0LT5zZXROdWxsKCk7CiB9CiAKLXZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6ZmFsbGJh
Y2tDYWxsYmFjayhjb25zdCBDcHBBcmd1bWVudExpc3QgJiwgQ3BwVmFyaWFudCogcmVzdWx0KQor
dm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzaG93TWVudUNhbGxiYWNrKGNvbnN0IENwcEFy
Z3VtZW50TGlzdCYsIENwcFZhcmlhbnQqIHJlc3VsdCkKIHsKLSAgICAvLyBGSVhNRTogSW1wbGVt
ZW50IHRoaXMuCiAgICAgcmVzdWx0LT5zZXROdWxsKCk7CiB9CiAKLXZvaWQgQWNjZXNzaWJpbGl0
eVVJRWxlbWVudDo6Y2hpbGRyZW5Db3VudEdldHRlckNhbGxiYWNrKENwcFZhcmlhbnQqIHJlc3Vs
dCkKK3ZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6cHJlc3NDYWxsYmFjayhjb25zdCBDcHBB
cmd1bWVudExpc3QmLCBDcHBWYXJpYW50KiByZXN1bHQpCiB7Ci0gICAgaW50IGNvdW50ID0gMTsg
Ly8gUm9vdCBvYmplY3QgYWx3YXlzIGhhcyBvbmx5IG9uZSBjaGlsZCwgdGhlIFdlYlZpZXcuCi0g
ICAgaWYgKCFpc1Jvb3QoKSkKLSAgICAgICAgY291bnQgPSBhY2Nlc3NpYmlsaXR5T2JqZWN0KCku
Y2hpbGRDb3VudCgpOwotICAgIHJlc3VsdC0+c2V0KGNvdW50KTsKKyAgICBhY2Nlc3NpYmlsaXR5
T2JqZWN0KCkucGVyZm9ybURlZmF1bHRBY3Rpb24oKTsKKyAgICByZXN1bHQtPnNldE51bGwoKTsK
IH0KIAotdm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpkZXNjcmlwdGlvbkdldHRlckNhbGxi
YWNrKENwcFZhcmlhbnQqIHJlc3VsdCkKK3ZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNF
cXVhbENhbGxiYWNrKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYgYXJndW1lbnRzLCBDcHBWYXJpYW50
KiByZXN1bHQpCiB7Ci0gICAgcmVzdWx0LT5zZXQoZ2V0RGVzY3JpcHRpb24oYWNjZXNzaWJpbGl0
eU9iamVjdCgpKSk7CisgICAgaWYgKGFyZ3VtZW50cy5zaXplKCkgPCAxIHx8ICFhcmd1bWVudHNb
MF0uaXNPYmplY3QoKSkgeworICAgICAgICByZXN1bHQtPnNldE51bGwoKTsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKworICAgIHJlc3VsdC0+c2V0KGFyZ3VtZW50c1swXS5pc0VxdWFsKCpnZXRB
c0NwcFZhcmlhbnQoKSkpOwogfQogCi12b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzRW5h
YmxlZEdldHRlckNhbGxiYWNrKENwcFZhcmlhbnQqIHJlc3VsdCkKK3ZvaWQgQWNjZXNzaWJpbGl0
eVVJRWxlbWVudDo6YWRkTm90aWZpY2F0aW9uTGlzdGVuZXJDYWxsYmFjayhjb25zdCBDcHBBcmd1
bWVudExpc3QmIGFyZ3VtZW50cywgQ3BwVmFyaWFudCogcmVzdWx0KQogewotICAgIHJlc3VsdC0+
c2V0KGFjY2Vzc2liaWxpdHlPYmplY3QoKS5pc0VuYWJsZWQoKSk7CisgICAgaWYgKGFyZ3VtZW50
cy5zaXplKCkgPCAxIHx8ICFhcmd1bWVudHNbMF0uaXNPYmplY3QoKSkgeworICAgICAgICByZXN1
bHQtPnNldE51bGwoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIG1fbm90aWZpY2F0
aW9uQ2FsbGJhY2tzLnB1c2hfYmFjayhhcmd1bWVudHNbMF0pOworICAgIHJlc3VsdC0+c2V0TnVs
bCgpOwogfQogCi12b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzU2VsZWN0ZWRHZXR0ZXJD
YWxsYmFjayhDcHBWYXJpYW50KiByZXN1bHQpCit2b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6
OnJlbW92ZU5vdGlmaWNhdGlvbkxpc3RlbmVyQ2FsbGJhY2soY29uc3QgQ3BwQXJndW1lbnRMaXN0
JiwgQ3BwVmFyaWFudCogcmVzdWx0KQogeworICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdGhpcy4K
ICAgICByZXN1bHQtPnNldE51bGwoKTsKIH0KIAotdm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50
Ojpyb2xlR2V0dGVyQ2FsbGJhY2soQ3BwVmFyaWFudCogcmVzdWx0KQordm9pZCBBY2Nlc3NpYmls
aXR5VUlFbGVtZW50Ojp0YWtlRm9jdXNDYWxsYmFjayhjb25zdCBDcHBBcmd1bWVudExpc3QmLCBD
cHBWYXJpYW50KiByZXN1bHQpCiB7Ci0gICAgcmVzdWx0LT5zZXQoZ2V0Um9sZShhY2Nlc3NpYmls
aXR5T2JqZWN0KCkpKTsKKyAgICBhY2Nlc3NpYmlsaXR5T2JqZWN0KCkuc2V0Rm9jdXNlZCh0cnVl
KTsKKyAgICByZXN1bHQtPnNldE51bGwoKTsKIH0KIAotdm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50Ojp0aXRsZUdldHRlckNhbGxiYWNrKENwcFZhcmlhbnQqIHJlc3VsdCkKK3ZvaWQgQWNjZXNz
aWJpbGl0eVVJRWxlbWVudDo6ZmFsbGJhY2tDYWxsYmFjayhjb25zdCBDcHBBcmd1bWVudExpc3Qg
JiwgQ3BwVmFyaWFudCogcmVzdWx0KQogewotICAgIHJlc3VsdC0+c2V0KGdldFRpdGxlKGFjY2Vz
c2liaWxpdHlPYmplY3QoKSkpOworICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdGhpcy4KKyAgICBy
ZXN1bHQtPnNldE51bGwoKTsKIH0KIAotCiBSb290QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6Um9v
dEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQoY29uc3QgV2ViQWNjZXNzaWJpbGl0eU9iamVjdCAmb2Jq
ZWN0LCBGYWN0b3J5ICpmYWN0b3J5KQogICAgIDogQWNjZXNzaWJpbGl0eVVJRWxlbWVudChvYmpl
Y3QsIGZhY3RvcnkpIHsgfQogCkBAIC01NTEsNyArNzY2LDcgQEAgQWNjZXNzaWJpbGl0eVVJRWxl
bWVudCogUm9vdEFjY2Vzc2liaWxpdAogICAgIGlmIChpbmRleCkKICAgICAgICAgcmV0dXJuIDA7
CiAKLSAgICByZXR1cm4gZmFjdG9yeSgpLT5jcmVhdGUoYWNjZXNzaWJpbGl0eU9iamVjdCgpKTsK
KyAgICByZXR1cm4gZmFjdG9yeSgpLT5nZXRPckNyZWF0ZShhY2Nlc3NpYmlsaXR5T2JqZWN0KCkp
OwogfQogCiAKQEAgLTU2NywxMSArNzgyLDE3IEBAIHZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVu
dExpc3Q6OmNsZWFyKCkKICAgICBtX2VsZW1lbnRzLmNsZWFyKCk7CiB9CiAKLUFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQqIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnRMaXN0OjpjcmVhdGUoY29uc3QgV2Vi
QWNjZXNzaWJpbGl0eU9iamVjdCYgb2JqZWN0KQorQWNjZXNzaWJpbGl0eVVJRWxlbWVudCogQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudExpc3Q6OmdldE9yQ3JlYXRlKGNvbnN0IFdlYkFjY2Vzc2liaWxp
dHlPYmplY3QmIG9iamVjdCkKIHsKICAgICBpZiAob2JqZWN0LmlzTnVsbCgpKQogICAgICAgICBy
ZXR1cm4gMDsKIAorICAgIHNpemVfdCBlbGVtZW50Q291bnQgPSBtX2VsZW1lbnRzLnNpemUoKTsK
KyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGVsZW1lbnRDb3VudDsgaSsrKSB7CisgICAgICAg
IGlmIChtX2VsZW1lbnRzW2ldLT5pc0VxdWFsKG9iamVjdCkpCisgICAgICAgICAgICByZXR1cm4g
bV9lbGVtZW50c1tpXTsKKyAgICB9CisKICAgICBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50KiBlbGVt
ZW50ID0gbmV3IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQob2JqZWN0LCB0aGlzKTsKICAgICBtX2Vs
ZW1lbnRzLmFwcGVuZChlbGVtZW50KTsKICAgICByZXR1cm4gZWxlbWVudDsKSW5kZXg6IFRvb2xz
L0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9BY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50LmgJKHJldmlzaW9uIDk3MDk1KQorKysgVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0v
QWNjZXNzaWJpbGl0eVVJRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC00MCwyMCArNDAsNTYg
QEAgcHVibGljOgogICAgIGNsYXNzIEZhY3RvcnkgewogICAgIHB1YmxpYzoKICAgICAgICAgdmly
dHVhbCB+RmFjdG9yeSgpIHsgfQotICAgICAgICB2aXJ0dWFsIEFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQqIGNyZWF0ZShjb25zdCBXZWJLaXQ6OldlYkFjY2Vzc2liaWxpdHlPYmplY3QmKSA9IDA7Cisg
ICAgICAgIHZpcnR1YWwgQWNjZXNzaWJpbGl0eVVJRWxlbWVudCogZ2V0T3JDcmVhdGUoY29uc3Qg
V2ViS2l0OjpXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0JikgPSAwOwogICAgIH07CiAKICAgICBBY2Nl
c3NpYmlsaXR5VUlFbGVtZW50KGNvbnN0IFdlYktpdDo6V2ViQWNjZXNzaWJpbGl0eU9iamVjdCYs
IEZhY3RvcnkqKTsKIAogICAgIHZpcnR1YWwgQWNjZXNzaWJpbGl0eVVJRWxlbWVudCogZ2V0Q2hp
bGRBdEluZGV4KHVuc2lnbmVkKTsKICAgICB2aXJ0dWFsIGJvb2wgaXNSb290KCkgY29uc3QgeyBy
ZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNFcXVhbChjb25zdCBXZWJLaXQ6Oldl
YkFjY2Vzc2liaWxpdHlPYmplY3QmKTsKKworICAgIHZpcnR1YWwgdm9pZCBub3RpZmljYXRpb25S
ZWNlaXZlZChjb25zdCBjaGFyICpub3RpZmljYXRpb25OYW1lKTsKIAogcHJvdGVjdGVkOgogICAg
IGNvbnN0IFdlYktpdDo6V2ViQWNjZXNzaWJpbGl0eU9iamVjdCYgYWNjZXNzaWJpbGl0eU9iamVj
dCgpIGNvbnN0IHsgcmV0dXJuIG1fYWNjZXNzaWJpbGl0eU9iamVjdDsgfQorCiAgICAgRmFjdG9y
eSogZmFjdG9yeSgpIGNvbnN0IHsgcmV0dXJuIG1fZmFjdG9yeTsgfQogCiBwcml2YXRlOgotICAg
IC8vIEJvdW5kIG1ldGhvZHMgYW5kIHByb3BlcnRpZXMuCisgICAgLy8gQm91bmQgcHJvcGVydGll
cy4KKyAgICB2b2lkIHJvbGVHZXR0ZXJDYWxsYmFjayhDcHBWYXJpYW50Kik7CisgICAgdm9pZCB0
aXRsZUdldHRlckNhbGxiYWNrKENwcFZhcmlhbnQqKTsKKyAgICB2b2lkIGRlc2NyaXB0aW9uR2V0
dGVyQ2FsbGJhY2soQ3BwVmFyaWFudCopOworICAgIHZvaWQgaGVscFRleHRHZXR0ZXJDYWxsYmFj
ayhDcHBWYXJpYW50Kik7CisgICAgdm9pZCBzdHJpbmdWYWx1ZUdldHRlckNhbGxiYWNrKENwcFZh
cmlhbnQqKTsKKyAgICB2b2lkIHhHZXR0ZXJDYWxsYmFjayhDcHBWYXJpYW50Kik7CisgICAgdm9p
ZCB5R2V0dGVyQ2FsbGJhY2soQ3BwVmFyaWFudCopOworICAgIHZvaWQgd2lkdGhHZXR0ZXJDYWxs
YmFjayhDcHBWYXJpYW50Kik7CisgICAgdm9pZCBoZWlnaHRHZXR0ZXJDYWxsYmFjayhDcHBWYXJp
YW50Kik7CisgICAgdm9pZCBpbnRWYWx1ZUdldHRlckNhbGxiYWNrKENwcFZhcmlhbnQqKTsKKyAg
ICB2b2lkIG1pblZhbHVlR2V0dGVyQ2FsbGJhY2soQ3BwVmFyaWFudCopOworICAgIHZvaWQgbWF4
VmFsdWVHZXR0ZXJDYWxsYmFjayhDcHBWYXJpYW50Kik7CisgICAgdm9pZCBjaGlsZHJlbkNvdW50
R2V0dGVyQ2FsbGJhY2soQ3BwVmFyaWFudCopOworICAgIHZvaWQgaW5zZXJ0aW9uUG9pbnRMaW5l
TnVtYmVyR2V0dGVyQ2FsbGJhY2soQ3BwVmFyaWFudCopOworICAgIHZvaWQgc2VsZWN0ZWRUZXh0
UmFuZ2VHZXR0ZXJDYWxsYmFjayhDcHBWYXJpYW50Kik7CisgICAgdm9pZCBpc0VuYWJsZWRHZXR0
ZXJDYWxsYmFjayhDcHBWYXJpYW50Kik7CisgICAgdm9pZCBpc1JlcXVpcmVkR2V0dGVyQ2FsbGJh
Y2soQ3BwVmFyaWFudCopOworICAgIHZvaWQgaXNGb2N1c2VkR2V0dGVyQ2FsbGJhY2soQ3BwVmFy
aWFudCopOworICAgIHZvaWQgaXNGb2N1c2FibGVHZXR0ZXJDYWxsYmFjayhDcHBWYXJpYW50Kik7
CisgICAgdm9pZCBpc1NlbGVjdGVkR2V0dGVyQ2FsbGJhY2soQ3BwVmFyaWFudCopOworICAgIHZv
aWQgaXNTZWxlY3RhYmxlR2V0dGVyQ2FsbGJhY2soQ3BwVmFyaWFudCopOworICAgIHZvaWQgaXNN
dWx0aVNlbGVjdGFibGVHZXR0ZXJDYWxsYmFjayhDcHBWYXJpYW50Kik7CisgICAgdm9pZCBpc0V4
cGFuZGVkR2V0dGVyQ2FsbGJhY2soQ3BwVmFyaWFudCopOworICAgIHZvaWQgaXNDaGVja2VkR2V0
dGVyQ2FsbGJhY2soQ3BwVmFyaWFudCopOworICAgIHZvaWQgaXNWaXNpYmxlR2V0dGVyQ2FsbGJh
Y2soQ3BwVmFyaWFudCopOworICAgIHZvaWQgaXNPZmZTY3JlZW5HZXR0ZXJDYWxsYmFjayhDcHBW
YXJpYW50Kik7CisgICAgdm9pZCBpc0NvbGxhcHNlZEdldHRlckNhbGxiYWNrKENwcFZhcmlhbnQq
KTsKKyAgICB2b2lkIGhhc1BvcHVwR2V0dGVyQ2FsbGJhY2soQ3BwVmFyaWFudCopOworICAgIHZv
aWQgaXNWYWxpZEdldHRlckNhbGxiYWNrKENwcFZhcmlhbnQqKTsKKyAgICB2b2lkIG9yaWVudGF0
aW9uR2V0dGVyQ2FsbGJhY2soQ3BwVmFyaWFudCopOworCisgICAgLy8gQm91bmQgbWV0aG9kcy4K
ICAgICB2b2lkIGFsbEF0dHJpYnV0ZXNDYWxsYmFjayhjb25zdCBDcHBBcmd1bWVudExpc3QmLCBD
cHBWYXJpYW50Kik7CiAgICAgdm9pZCBhdHRyaWJ1dGVzT2ZMaW5rZWRVSUVsZW1lbnRzQ2FsbGJh
Y2soY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOwogICAgIHZvaWQgYXR0cmli
dXRlc09mRG9jdW1lbnRMaW5rc0NhbGxiYWNrKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZh
cmlhbnQqKTsKQEAgLTgyLDM0ICsxMTgsMTggQEAgcHJpdmF0ZToKICAgICB2b2lkIHBhcmVudEVs
ZW1lbnRDYWxsYmFjayhjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7CiAgICAg
dm9pZCBpbmNyZW1lbnRDYWxsYmFjayhjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50
Kik7CiAgICAgdm9pZCBkZWNyZW1lbnRDYWxsYmFjayhjb25zdCBDcHBBcmd1bWVudExpc3QmLCBD
cHBWYXJpYW50Kik7Ci0gICAgdm9pZCBmYWxsYmFja0NhbGxiYWNrKGNvbnN0IENwcEFyZ3VtZW50
TGlzdCYsIENwcFZhcmlhbnQqKTsKKyAgICB2b2lkIHNob3dNZW51Q2FsbGJhY2soY29uc3QgQ3Bw
QXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOworICAgIHZvaWQgcHJlc3NDYWxsYmFjayhjb25z
dCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7CisgICAgdm9pZCBpc0VxdWFsQ2FsbGJh
Y2soY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOworICAgIHZvaWQgYWRkTm90
aWZpY2F0aW9uTGlzdGVuZXJDYWxsYmFjayhjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJp
YW50Kik7CisgICAgdm9pZCByZW1vdmVOb3RpZmljYXRpb25MaXN0ZW5lckNhbGxiYWNrKGNvbnN0
IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKKyAgICB2b2lkIHRha2VGb2N1c0NhbGxi
YWNrKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKIAotICAgIHZvaWQgY2hp
bGRyZW5Db3VudEdldHRlckNhbGxiYWNrKENwcFZhcmlhbnQqKTsKLSAgICB2b2lkIGRlc2NyaXB0
aW9uR2V0dGVyQ2FsbGJhY2soQ3BwVmFyaWFudCopOwotICAgIHZvaWQgaXNFbmFibGVkR2V0dGVy
Q2FsbGJhY2soQ3BwVmFyaWFudCopOwotICAgIHZvaWQgaXNTZWxlY3RlZEdldHRlckNhbGxiYWNr
KENwcFZhcmlhbnQqKTsKLSAgICB2b2lkIHJvbGVHZXR0ZXJDYWxsYmFjayhDcHBWYXJpYW50Kik7
Ci0gICAgdm9pZCB0aXRsZUdldHRlckNhbGxiYWNrKENwcFZhcmlhbnQqKTsKLQotICAgIENwcFZh
cmlhbnQgbV9zdWJyb2xlOwotICAgIENwcFZhcmlhbnQgbV9sYW5ndWFnZTsKLSAgICBDcHBWYXJp
YW50IG1feDsKLSAgICBDcHBWYXJpYW50IG1feTsKLSAgICBDcHBWYXJpYW50IG1fd2lkdGg7Ci0g
ICAgQ3BwVmFyaWFudCBtX2hlaWdodDsKLSAgICBDcHBWYXJpYW50IG1fY2xpY2tQb2ludFg7Ci0g
ICAgQ3BwVmFyaWFudCBtX2NsaWNrUG9pbnRZOwotICAgIENwcFZhcmlhbnQgbV9pbnRWYWx1ZTsK
LSAgICBDcHBWYXJpYW50IG1fbWluVmFsdWU7Ci0gICAgQ3BwVmFyaWFudCBtX21heFZhbHVlOwot
ICAgIENwcFZhcmlhbnQgbV9jaGlsZHJlbkNvdW50OwotICAgIENwcFZhcmlhbnQgbV9pbnNlcnRp
b25Qb2ludExpbmVOdW1iZXI7Ci0gICAgQ3BwVmFyaWFudCBtX3NlbGVjdGVkVGV4dFJhbmdlOwot
ICAgIENwcFZhcmlhbnQgbV9pc1JlcXVpcmVkOwotICAgIENwcFZhcmlhbnQgbV92YWx1ZURlc2Ny
aXB0aW9uOworICAgIHZvaWQgZmFsbGJhY2tDYWxsYmFjayhjb25zdCBDcHBBcmd1bWVudExpc3Qm
LCBDcHBWYXJpYW50Kik7CiAKICAgICBXZWJLaXQ6OldlYkFjY2Vzc2liaWxpdHlPYmplY3QgbV9h
Y2Nlc3NpYmlsaXR5T2JqZWN0OwogICAgIEZhY3RvcnkqIG1fZmFjdG9yeTsKKyAgICBzdGQ6OnZl
Y3RvcjxDcHBWYXJpYW50PiBtX25vdGlmaWNhdGlvbkNhbGxiYWNrczsKIH07CiAKIApAQCAtMTMx
LDcgKzE1MSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5BY2Nlc3NpYmlsaXR5VUlFbGVtZW50
TGlzdCgpOwogCiAgICAgdm9pZCBjbGVhcigpOwotICAgIHZpcnR1YWwgQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudCogY3JlYXRlKGNvbnN0IFdlYktpdDo6V2ViQWNjZXNzaWJpbGl0eU9iamVjdCYpOwor
ICAgIHZpcnR1YWwgQWNjZXNzaWJpbGl0eVVJRWxlbWVudCogZ2V0T3JDcmVhdGUoY29uc3QgV2Vi
S2l0OjpXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0Jik7CiAgICAgQWNjZXNzaWJpbGl0eVVJRWxlbWVu
dCogY3JlYXRlUm9vdChjb25zdCBXZWJLaXQ6OldlYkFjY2Vzc2liaWxpdHlPYmplY3QmKTsKIAog
cHJpdmF0ZToKSW5kZXg6IFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0NwcFZhcmlhbnQu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0NwcFZhcmlh
bnQuY3BwCShyZXZpc2lvbiA5NzA5NSkKKysrIFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVt
L0NwcFZhcmlhbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMDgsMyArMzA4LDE0IEBAIGJvb2wg
Q3BwVmFyaWFudDo6aW52b2tlKGNvbnN0IHN0cmluZyYgbWUKICAgICByZXN1bHQuc2V0KHIpOwog
ICAgIHJldHVybiBzdGF0dXM7CiB9CisKK2Jvb2wgQ3BwVmFyaWFudDo6aW52b2tlRGVmYXVsdChj
b25zdCBDcHBWYXJpYW50KiBhcmd1bWVudHMsIHVpbnQzMl90IGFyZ3VtZW50Q291bnQsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgQ3BwVmFyaWFudCYgcmVzdWx0KSBjb25zdAorewor
ICAgIEFTU0VSVChpc09iamVjdCgpKTsKKyAgICBOUE9iamVjdCogbnBPYmplY3QgPSB2YWx1ZS5v
YmplY3RWYWx1ZTsKKyAgICBOUFZhcmlhbnQgcjsKKyAgICBib29sIHN0YXR1cyA9IFdlYkJpbmRp
bmdzOjppbnZva2VEZWZhdWx0KDAsIG5wT2JqZWN0LCBhcmd1bWVudHMsIGFyZ3VtZW50Q291bnQs
ICZyKTsKKyAgICByZXN1bHQuc2V0KHIpOworICAgIHJldHVybiBzdGF0dXM7Cit9CkluZGV4OiBU
b29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9DcHBWYXJpYW50LmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vQ3BwVmFyaWFudC5oCShyZXZpc2lvbiA5NzA5
NSkKKysrIFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0NwcFZhcmlhbnQuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMTI4LDYgKzEyOCwxNCBAQCBwdWJsaWM6CiAgICAgLy8gQ3BwVmFyaWFudCBz
cGVjaWZpZWQgYnkgcmVzdWx0LgogICAgIGJvb2wgaW52b2tlKGNvbnN0IHN0ZDo6c3RyaW5nJiwg
Y29uc3QgQ3BwVmFyaWFudCogYXJndW1lbnRzLAogICAgICAgICAgICAgICAgIHVpbnQzMl90IGFy
Z3VtZW50Q291bnQsIENwcFZhcmlhbnQmIHJlc3VsdCkgY29uc3Q7CisKKyAgICAvLyBJbnZva2Ug
YW4gb2JqZWN0J3MgZGVmYXVsdCBtZXRob2Qgd2l0aCB0aGUgc3VwcGxpZWQgYXJndW1lbnRzLgor
ICAgIC8vIFRoZSBmaXJzdCBhcmd1bWVudCBzaG91bGQgYmUgdGhlIG9iamVjdCBvbiB3aGljaCB0
aGUgbWV0aG9kIGlzIHRvIGJlCisgICAgLy8gaW52b2tlZC4gUmV0dXJucyB3aGV0aGVyIHRoZSBt
ZXRob2Qgd2FzIHN1Y2Nlc3NmdWxseSBpbnZva2VkLiBJZiB0aGUKKyAgICAvLyBtZXRob2Qgd2Fz
IGludm9rZWQgc3VjY2Vzc2Z1bGx5LCBhbnkgcmV0dXJuIHZhbHVlIGlzIHN0b3JlZCBpbiB0aGUK
KyAgICAvLyBDcHBWYXJpYW50IHNwZWNpZmllZCBieSByZXN1bHQuCisgICAgYm9vbCBpbnZva2VE
ZWZhdWx0KGNvbnN0IENwcFZhcmlhbnQqIGFyZ3VtZW50cywKKyAgICAgICAgICAgICAgICAgICAg
ICAgdWludDMyX3QgYXJndW1lbnRDb3VudCwgQ3BwVmFyaWFudCYgcmVzdWx0KSBjb25zdDsKIH07
CiAKICNlbmRpZiAvLyBDcHBWYXJpYW50X2gKSW5kZXg6IFRvb2xzL0R1bXBSZW5kZXJUcmVlL2No
cm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9EdW1w
UmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAJKHJldmlzaW9uIDk3
MDk1KQorKysgVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xs
ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMzksNiArMjM5LDcgQEAgTGF5b3V0VGVzdENvbnRy
b2xsZXI6OkxheW91dFRlc3RDb250cm9sbAogICAgIC8vIHdlYkhpc3RvcnlJdGVtQ291bnQgaXMg
dXNlZCBieSB0ZXN0cyBpbiBMYXlvdXRUZXN0c1xodHRwXHRlc3RzXGhpc3RvcnkKICAgICBiaW5k
UHJvcGVydHkoIndlYkhpc3RvcnlJdGVtQ291bnQiLCAmbV93ZWJIaXN0b3J5SXRlbUNvdW50KTsK
ICAgICBiaW5kUHJvcGVydHkoInRpdGxlVGV4dERpcmVjdGlvbiIsICZtX3RpdGxlVGV4dERpcmVj
dGlvbik7CisgICAgYmluZFByb3BlcnR5KCJwbGF0Zm9ybU5hbWUiLCAmbV9wbGF0Zm9ybU5hbWUp
OwogfQogCiBMYXlvdXRUZXN0Q29udHJvbGxlcjo6fkxheW91dFRlc3RDb250cm9sbGVyKCkKQEAg
LTYxOCw2ICs2MTksNyBAQCB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpyZXNldCgpCiAgICAg
bV9nbG9iYWxGbGFnLnNldChmYWxzZSk7CiAgICAgbV93ZWJIaXN0b3J5SXRlbUNvdW50LnNldCgw
KTsKICAgICBtX3RpdGxlVGV4dERpcmVjdGlvbi5zZXQoImx0ciIpOworICAgIG1fcGxhdGZvcm1O
YW1lLnNldCgiY2hyb21pdW0iKTsKICAgICBtX3VzZXJTdHlsZVNoZWV0TG9jYXRpb24gPSBXZWJV
UkwoKTsKIAogICAgIHdlYmtpdF9zdXBwb3J0OjpTZXRBY2NlcHRBbGxDb29raWVzKGZhbHNlKTsK
SW5kZXg6IFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVy
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVz
dENvbnRyb2xsZXIuaAkocmV2aXNpb24gOTcwOTUpCisrKyBUb29scy9EdW1wUmVuZGVyVHJlZS9j
aHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5oCSh3b3JraW5nIGNvcHkpCkBAIC02NDIsNiAr
NjQyLDkgQEAgcHJpdmF0ZToKICAgICAvLyBCb3VuZCB2YXJpYWJsZSB0cmFja2luZyB0aGUgZGly
ZWN0aW9uYWxpdHkgb2YgdGhlIDx0aXRsZT4gdGFnLgogICAgIENwcFZhcmlhbnQgbV90aXRsZVRl
eHREaXJlY3Rpb247CiAKKyAgICAvLyBCb3VuZCB2YXJpYWJsZSB0byByZXR1cm4gdGhlIG5hbWUg
b2YgdGhpcyBwbGF0Zm9ybSAoY2hyb21pdW0pLgorICAgIENwcFZhcmlhbnQgbV9wbGF0Zm9ybU5h
bWU7CisKICAgICBXZWJLaXQ6OldlYlVSTCBtX3VzZXJTdHlsZVNoZWV0TG9jYXRpb247CiAKICAg
ICBPd25QdHI8V2ViS2l0OjpXZWJTcGVlY2hJbnB1dENvbnRyb2xsZXJNb2NrPiBtX3NwZWVjaElu
cHV0Q29udHJvbGxlck1vY2s7CkluZGV4OiBUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9X
ZWJWaWV3SG9zdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21p
dW0vV2ViVmlld0hvc3QuY3BwCShyZXZpc2lvbiA5NzA5NSkKKysrIFRvb2xzL0R1bXBSZW5kZXJU
cmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTUwLDU4ICs1
NTAsNjIgQEAgdm9pZCBXZWJWaWV3SG9zdDo6cG9zdEFjY2Vzc2liaWxpdHlOb3RpZgogICAgIGlm
IChub3RpZmljYXRpb24gPT0gV2ViQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkZvY3VzZWRVSUVs
ZW1lbnRDaGFuZ2VkKQogICAgICAgICBtX3NoZWxsLT5hY2Nlc3NpYmlsaXR5Q29udHJvbGxlcigp
LT5zZXRGb2N1c2VkRWxlbWVudChvYmopOwogCi0gICAgaWYgKG1fc2hlbGwtPmFjY2Vzc2liaWxp
dHlDb250cm9sbGVyKCktPnNob3VsZER1bXBBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9ucygpKSB7
Ci0gICAgICAgIHByaW50ZigiQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbiAtICIpOworICAgIGNv
bnN0IGNoYXIqIG5vdGlmaWNhdGlvbk5hbWU7CisgICAgc3dpdGNoIChub3RpZmljYXRpb24pIHsK
KyAgICBjYXNlIFdlYkFjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25BY3RpdmVEZXNjZW5kYW50Q2hh
bmdlZDoKKyAgICAgICAgbm90aWZpY2F0aW9uTmFtZSA9ICJBY3RpdmVEZXNjZW5kYW50Q2hhbmdl
ZCI7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgV2ViQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlv
bkNoZWNrZWRTdGF0ZUNoYW5nZWQ6CisgICAgICAgIG5vdGlmaWNhdGlvbk5hbWUgPSAiQ2hlY2tl
ZFN0YXRlQ2hhbmdlZCI7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgV2ViQWNjZXNzaWJpbGl0
eU5vdGlmaWNhdGlvbkNoaWxkcmVuQ2hhbmdlZDoKKyAgICAgICAgbm90aWZpY2F0aW9uTmFtZSA9
ICJDaGlsZHJlbkNoYW5nZWQiOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFdlYkFjY2Vzc2li
aWxpdHlOb3RpZmljYXRpb25Gb2N1c2VkVUlFbGVtZW50Q2hhbmdlZDoKKyAgICAgICAgbm90aWZp
Y2F0aW9uTmFtZSA9ICJGb2N1c2VkVUlFbGVtZW50Q2hhbmdlZCI7CisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgV2ViQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkxheW91dENvbXBsZXRlOgorICAg
ICAgICBub3RpZmljYXRpb25OYW1lID0gIkxheW91dENvbXBsZXRlIjsKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBXZWJBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uTG9hZENvbXBsZXRlOgorICAg
ICAgICBub3RpZmljYXRpb25OYW1lID0gIkxvYWRDb21wbGV0ZSI7CisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgV2ViQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvblNlbGVjdGVkQ2hpbGRyZW5DaGFu
Z2VkOgorICAgICAgICBub3RpZmljYXRpb25OYW1lID0gIlNlbGVjdGVkQ2hpbGRyZW5DaGFuZ2Vk
IjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBXZWJBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9u
U2VsZWN0ZWRUZXh0Q2hhbmdlZDoKKyAgICAgICAgbm90aWZpY2F0aW9uTmFtZSA9ICJTZWxlY3Rl
ZFRleHRDaGFuZ2VkIjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBXZWJBY2Nlc3NpYmlsaXR5
Tm90aWZpY2F0aW9uVmFsdWVDaGFuZ2VkOgorICAgICAgICBub3RpZmljYXRpb25OYW1lID0gIlZh
bHVlQ2hhbmdlZCI7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgV2ViQWNjZXNzaWJpbGl0eU5v
dGlmaWNhdGlvblNjcm9sbGVkVG9BbmNob3I6CisgICAgICAgIG5vdGlmaWNhdGlvbk5hbWUgPSAi
U2Nyb2xsZWRUb0FuY2hvciI7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgV2ViQWNjZXNzaWJp
bGl0eU5vdGlmaWNhdGlvbkxpdmVSZWdpb25DaGFuZ2VkOgorICAgICAgICBub3RpZmljYXRpb25O
YW1lID0gIkxpdmVSZWdpb25DaGFuZ2VkIjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBXZWJB
Y2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uTWVudUxpc3RWYWx1ZUNoYW5nZWQ6CisgICAgICAgIG5v
dGlmaWNhdGlvbk5hbWUgPSAiTWVudUxpc3RWYWx1ZUNoYW5nZWQiOworICAgICAgICBicmVhazsK
KyAgICBjYXNlIFdlYkFjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25Sb3dDb3VudENoYW5nZWQ6Cisg
ICAgICAgIG5vdGlmaWNhdGlvbk5hbWUgPSAiUm93Q291bnRDaGFuZ2VkIjsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBXZWJBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uUm93Q29sbGFwc2VkOgor
ICAgICAgICBub3RpZmljYXRpb25OYW1lID0gIlJvd0NvbGxhcHNlZCI7CisgICAgICAgIGJyZWFr
OworICAgIGNhc2UgV2ViQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvblJvd0V4cGFuZGVkOgorICAg
ICAgICBub3RpZmljYXRpb25OYW1lID0gIlJvd0V4cGFuZGVkIjsKKyAgICAgICAgYnJlYWs7Cisg
ICAgZGVmYXVsdDoKKyAgICAgICAgbm90aWZpY2F0aW9uTmFtZSA9ICJVbmtub3duTm90aWZpY2F0
aW9uIjsKKyAgICAgICAgYnJlYWs7CisgICAgfQogCi0gICAgICAgIHN3aXRjaCAobm90aWZpY2F0
aW9uKSB7Ci0gICAgICAgIGNhc2UgV2ViQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkFjdGl2ZURl
c2NlbmRhbnRDaGFuZ2VkOgotICAgICAgICAgICAgcHJpbnRmKCJBY3RpdmVEZXNjZW5kYW50Q2hh
bmdlZCIpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgV2ViQWNjZXNzaWJpbGl0
eU5vdGlmaWNhdGlvbkNoZWNrZWRTdGF0ZUNoYW5nZWQ6Ci0gICAgICAgICAgICBwcmludGYoIkNo
ZWNrZWRTdGF0ZUNoYW5nZWQiKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIFdl
YkFjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25DaGlsZHJlbkNoYW5nZWQ6Ci0gICAgICAgICAgICBw
cmludGYoIkNoaWxkcmVuQ2hhbmdlZCIpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNh
c2UgV2ViQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkZvY3VzZWRVSUVsZW1lbnRDaGFuZ2VkOgot
ICAgICAgICAgICAgcHJpbnRmKCJGb2N1c2VkVUlFbGVtZW50Q2hhbmdlZCIpOwotICAgICAgICAg
ICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgV2ViQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkxheW91
dENvbXBsZXRlOgotICAgICAgICAgICAgcHJpbnRmKCJMYXlvdXRDb21wbGV0ZSIpOwotICAgICAg
ICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgV2ViQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkxv
YWRDb21wbGV0ZToKLSAgICAgICAgICAgIHByaW50ZigiTG9hZENvbXBsZXRlIik7Ci0gICAgICAg
ICAgICBicmVhazsKLSAgICAgICAgY2FzZSBXZWJBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uU2Vs
ZWN0ZWRDaGlsZHJlbkNoYW5nZWQ6Ci0gICAgICAgICAgICBwcmludGYoIlNlbGVjdGVkQ2hpbGRy
ZW5DaGFuZ2VkIik7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBXZWJBY2Nlc3Np
YmlsaXR5Tm90aWZpY2F0aW9uU2VsZWN0ZWRUZXh0Q2hhbmdlZDoKLSAgICAgICAgICAgIHByaW50
ZigiU2VsZWN0ZWRUZXh0Q2hhbmdlZCIpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNh
c2UgV2ViQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvblZhbHVlQ2hhbmdlZDoKLSAgICAgICAgICAg
IHByaW50ZigiVmFsdWVDaGFuZ2VkIik7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2Fz
ZSBXZWJBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uU2Nyb2xsZWRUb0FuY2hvcjoKLSAgICAgICAg
ICAgIHByaW50ZigiU2Nyb2xsZWRUb0FuY2hvciIpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAg
ICAgIGNhc2UgV2ViQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkxpdmVSZWdpb25DaGFuZ2VkOgot
ICAgICAgICAgICAgcHJpbnRmKCJMaXZlUmVnaW9uQ2hhbmdlZCIpOwotICAgICAgICAgICAgYnJl
YWs7Ci0gICAgICAgIGNhc2UgV2ViQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbk1lbnVMaXN0VmFs
dWVDaGFuZ2VkOgotICAgICAgICAgICAgcHJpbnRmKCJNZW51TGlzdFZhbHVlQ2hhbmdlZCIpOwot
ICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgV2ViQWNjZXNzaWJpbGl0eU5vdGlmaWNh
dGlvblJvd0NvdW50Q2hhbmdlZDoKLSAgICAgICAgICAgIHByaW50ZigiUm93Q291bnRDaGFuZ2Vk
Iik7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBXZWJBY2Nlc3NpYmlsaXR5Tm90
aWZpY2F0aW9uUm93Q29sbGFwc2VkOgotICAgICAgICAgICAgcHJpbnRmKCJSb3dDb2xsYXBzZWQi
KTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIFdlYkFjY2Vzc2liaWxpdHlOb3Rp
ZmljYXRpb25Sb3dFeHBhbmRlZDoKLSAgICAgICAgICAgIHByaW50ZigiUm93RXhwYW5kZWQiKTsK
LSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgYnJlYWs7
Ci0gICAgICAgIH0KKyAgICBtX3NoZWxsLT5hY2Nlc3NpYmlsaXR5Q29udHJvbGxlcigpLT5ub3Rp
ZmljYXRpb25SZWNlaXZlZChvYmosIG5vdGlmaWNhdGlvbk5hbWUpOworCisgICAgaWYgKG1fc2hl
bGwtPmFjY2Vzc2liaWxpdHlDb250cm9sbGVyKCktPnNob3VsZExvZ0FjY2Vzc2liaWxpdHlFdmVu
dHMoKSkgeworICAgICAgICBwcmludGYoIkFjY2Vzc2liaWxpdHlOb3RpZmljYXRpb24gLSAlcyIs
IG5vdGlmaWNhdGlvbk5hbWUpOwogCiAgICAgICAgIFdlYktpdDo6V2ViTm9kZSBub2RlID0gb2Jq
Lm5vZGUoKTsKICAgICAgICAgaWYgKCFub2RlLmlzTnVsbCgpICYmIG5vZGUuaXNFbGVtZW50Tm9k
ZSgpKSB7CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA5NzA5NSkKKysrIExheW91dFRlc3RzL0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE2IEBACisyMDExLTEwLTEwICBEb21pbmljIE1h
enpvbmkgIDxkbWF6em9uaUBnb29nbGUuY29tPgorCisgICAgICAgIEVuYWJsZSBhY2Nlc3NpYmls
aXR5IHRlc3RzIG9uIGNocm9taXVtIGFuZCB1cGRhdGUgdGVzdCBleHBlY3RhdGlvbnMuCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02OTY3NgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogcGxhdGZvcm0vY2hy
b21pdW0vYWNjZXNzaWJpbGl0eS9hZGphY2VudC1jb250aW51YXRpb25zLWNhdXNlLWFzc2VydGlv
bi1mYWlsdXJlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vY2hyb21p
dW0vYWNjZXNzaWJpbGl0eS9hcmlhLWxhYmVsbGVkYnktb3ZlcnJpZGVzLWFyaWEtbGFiZWwtZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9hY2Nlc3NpYmls
aXR5L2Rpdi13aXRoaW4tYW5jaG9ycy1jYXVzZXMtY3Jhc2gtZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9hY2Nlc3NpYmlsaXR5L3BsYXRmb3JtLW5hbWUt
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4
cGVjdGF0aW9ucy50eHQ6CisKIDIwMTEtMTAtMTAgIEplcmVteSBBcHRob3JwICA8amVyZW15YUBj
aHJvbWl1bS5vcmc+CiAKICAgICAgICAgRXhpdGluZyBmdWxsc2NyZWVuIHNob3VsZG4ndCBjcmFz
aCBpZiB0aGUgZWxlbWVudCB0aGF0IHdhcyBmdWxsc2NyZWVuZWQKSW5kZXg6IExheW91dFRlc3Rz
L3BsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQJKHJldmlz
aW9uIDk3MDk1KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3Rh
dGlvbnMudHh0CSh3b3JraW5nIGNvcHkpCkBAIC05NDMsMTYgKzk0Myw2MCBAQCBCVUdXSzY2Mzg2
IDogc3ZnL2N1c3RvbS9yZXBhaW50LXNoYWRvdy5zCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogLy8gQWNjZXNzaWJp
bGl0eSBsYXlvdXQgdGVzdHMKIC8vCi0vLyBJbiBhZGRpdGlvbiB0byBXZWJDb3JlLCB0aGVzZSBh
cmUgbWVhbnQgdG8gZXhlcmNpc2UgcGxhdGZvcm0gQVBJcwotLy8gKE1TQUEsIE5TQWNjZXNzaWJp
bGl0eSwgQVRLKS4gU2luY2Ugd2UgZG9uJ3QgaGF2ZSBhY2Nlc3MgdG8gdGhlc2UgaW4gdGhlCi0v
LyBzYW5kYm94LCBtYWtpbmcgdGhlc2UgdGVzdHMgcGFzcyBpbnZvbHZlcyBmYWtpbmcgaW50ZXJh
Y3Rpb25zIHdpdGggdGhlc2UgQVBJcwotLy8gYW5kIGRvZXNuJ3Qgc2VlbSBsaWtlIGEgZ29vZCB1
c2Ugb2Ygb3VyIHRpbWUuCi0vLyBXZSBuZWVkIHRvIGlkZW50aWZ5IGEgZ29vZCB0ZXN0aW5nIHN0
cmF0ZWd5IGZvciBDaHJvbWl1bSBhY2Nlc3NpYmlsaXR5LgotLy8gSXQgaXMgcG9zc2libGUgd2Ug
d29uJ3QgdXNlIHRoZXNlIGF0IGFsbC4KLQotQlVHQ1IxMDMyMiBTS0lQIDogYWNjZXNzaWJpbGl0
eSA9IFBBU1MgRkFJTAotQlVHQ1IxMDMyMiBTS0lQIDogcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxp
dHkgPSBQQVNTIEZBSUwKLUJVR0NSMTAzMjIgU0tJUCA6IHBsYXRmb3JtL3dpbi9hY2Nlc3NpYmls
aXR5ID0gUEFTUyBGQUlMCisvLyBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlciBhbmQgQWNjZXNzaWJp
bGl0eVVJRWxlbWVudCBhcmUgb25seQorLy8gcGFydGlhbGx5IGZpbmlzaGVkIC0gYWJvdXQgaGFs
ZiB0aGUgdGVzdHMgY2FuJ3QgcnVuIHlldC4KKworQlVHQ1IxMDMyMiBTS0lQIDogYWNjZXNzaWJp
bGl0eS9hcmlhLWFjdGl2ZWRlc2NlbmRhbnQtY3Jhc2guaHRtbCA9IFRFWFQKK0JVR0NSMTAzMjIg
U0tJUCA6IGFjY2Vzc2liaWxpdHkvYXJpYS1jb21ib2JveC5odG1sID0gVEVYVAorQlVHQ1IxMDMy
MiBTS0lQIDogYWNjZXNzaWJpbGl0eS9hcmlhLWNvbnRyb2xzLXdpdGgtdGFicy5odG1sID0gVEVY
VAorQlVHQ1IxMDMyMiBTS0lQIDogYWNjZXNzaWJpbGl0eS9hcmlhLWZhbGxiYWNrLXJvbGVzLmh0
bWwgPSBURVhUCitCVUdDUjEwMzIyIFNLSVAgOiBhY2Nlc3NpYmlsaXR5L2FyaWEtaGlkZGVuLXVw
ZGF0ZS5odG1sID0gVEVYVAorQlVHQ1IxMDMyMiBTS0lQIDogYWNjZXNzaWJpbGl0eS9hcmlhLWhp
ZGRlbi13aXRoLWVsZW1lbnRzLmh0bWwgPSBURVhUCitCVUdDUjEwMzIyIFNLSVAgOiBhY2Nlc3Np
YmlsaXR5L2FyaWEtbGFiZWxsZWRieS1vdmVycmlkZXMtbGFiZWwuaHRtbCA9IFRFWFQKK0JVR0NS
MTAzMjIgU0tJUCA6IGFjY2Vzc2liaWxpdHkvYXJpYS1saW5rLXN1cHBvcnRzLXByZXNzLmh0bWwg
PSBURVhUCitCVUdDUjEwMzIyIFNLSVAgOiBhY2Nlc3NpYmlsaXR5L2FyaWEtbGlzdC1hbmQtbGlz
dGl0ZW0uaHRtbCA9IFRFWFQKK0JVR0NSMTAzMjIgU0tJUCA6IGFjY2Vzc2liaWxpdHkvYXJpYS1t
ZW51YmFyLW1lbnVpdGVtcy5odG1sID0gVEVYVAorQlVHQ1IxMDMyMiBTS0lQIDogYWNjZXNzaWJp
bGl0eS9hcmlhLW9wdGlvbi1yb2xlLmh0bWwgPSBURVhUCitCVUdDUjEwMzIyIFNLSVAgOiBhY2Nl
c3NpYmlsaXR5L2FyaWEtdGFiLXJvbGVzLmh0bWwgPSBURVhUCitCVUdDUjEwMzIyIFNLSVAgOiBh
Y2Nlc3NpYmlsaXR5L2FyaWEtdGFibGVzLmh0bWwgPSBURVhUCitCVUdDUjEwMzIyIFNLSVAgOiBh
Y2Nlc3NpYmlsaXR5L2FyaWEtdGV4dC1yb2xlLmh0bWwgPSBURVhUCitCVUdDUjEwMzIyIFNLSVAg
OiBhY2Nlc3NpYmlsaXR5L2FyaWEtdXNlZC1vbi1pbWFnZS1tYXBzLmh0bWwgPSBURVhUCitCVUdD
UjEwMzIyIFNLSVAgOiBhY2Nlc3NpYmlsaXR5L2J1dHRvbi1wcmVzcy1hY3Rpb24uaHRtbCA9IFRF
WFQKK0JVR0NSMTAzMjIgU0tJUCA6IGFjY2Vzc2liaWxpdHkvZGVsZXRpbmctaWZyYW1lLWRlc3Ry
b3lzLWF4Y2FjaGUuaHRtbCA9IFRFWFQKK0JVR0NSMTAzMjIgU0tJUCA6IGFjY2Vzc2liaWxpdHkv
ZG9jdW1lbnQtYXR0cmlidXRlcy5odG1sID0gVEVYVAorQlVHQ1IxMDMyMiBTS0lQIDogYWNjZXNz
aWJpbGl0eS9lZGl0YWJsZS13ZWJhcmVhLWNvbnRleHQtbWVudS1wb2ludC5odG1sID0gVEVYVAor
QlVHQ1IxMDMyMiBTS0lQIDogYWNjZXNzaWJpbGl0eS9pZnJhbWUtYmFzdGFyZGl6YXRpb24uaHRt
bCA9IFRFWFQKK0JVR0NSMTAzMjIgU0tJUCA6IGFjY2Vzc2liaWxpdHkvaW1hZ2UtbGluay5odG1s
ID0gVEVYVAorQlVHQ1IxMDMyMiBTS0lQIDogYWNjZXNzaWJpbGl0eS9pbWFnZS1tYXAyLmh0bWwg
PSBURVhUCitCVUdDUjEwMzIyIFNLSVAgOiBhY2Nlc3NpYmlsaXR5L2ludGVybmFsLWxpbmstYW5j
aG9yczIuaHRtbCA9IFRFWFQKK0JVR0NSMTAzMjIgU0tJUCA6IGFjY2Vzc2liaWxpdHkvbGFiZWwt
Zm9yLWNvbnRyb2wtaGl0dGVzdC5odG1sID0gVEVYVAorQlVHQ1IxMDMyMiBTS0lQIDogYWNjZXNz
aWJpbGl0eS9sYW5ndWFnZS1hdHRyaWJ1dGUuaHRtbCA9IFRFWFQKK0JVR0NSMTAzMjIgU0tJUCA6
IGFjY2Vzc2liaWxpdHkvbGVnZW5kLmh0bWwgPSBURVhUCitCVUdDUjEwMzIyIFNLSVAgOiBhY2Nl
c3NpYmlsaXR5L2xpc3RzLmh0bWwgPSBURVhUCitCVUdDUjEwMzIyIFNLSVAgOiBhY2Nlc3NpYmls
aXR5L21lZGlhLWVsZW1lbnQuaHRtbCA9IFRJTUVPVVQKK0JVR0NSMTAzMjIgU0tJUCA6IGFjY2Vz
c2liaWxpdHkvbm9uLWRhdGEtdGFibGUtY2VsbC10aXRsZS11aS1lbGVtZW50Lmh0bWwgPSBURVhU
CitCVUdDUjEwMzIyIFNLSVAgOiBhY2Nlc3NpYmlsaXR5L29uY2xpY2staGFuZGxlcnMuaHRtbCA9
IFRFWFQKK0JVR0NSMTAzMjIgU0tJUCA6IGFjY2Vzc2liaWxpdHkvcGxhY2Vob2xkZXIuaHRtbCA9
IFRFWFQKK0JVR0NSMTAzMjIgU0tJUCA6IGFjY2Vzc2liaWxpdHkvcGx1Z2luLmh0bWwgPSBURVhU
CitCVUdDUjEwMzIyIFNLSVAgOiBhY2Nlc3NpYmlsaXR5L3JhZGlvLWJ1dHRvbi1jaGVja2JveC1z
aXplLmh0bWwgPSBURVhUCitCVUdDUjEwMzIyIFNLSVAgOiBhY2Nlc3NpYmlsaXR5L3JhZGlvLWJ1
dHRvbi1ncm91cC1tZW1iZXJzLmh0bWwgPSBURVhUCitCVUdDUjEwMzIyIFNLSVAgOiBhY2Nlc3Np
YmlsaXR5L3JhZGlvLWJ1dHRvbi10aXRsZS1sYWJlbC5odG1sID0gVEVYVAorQlVHQ1IxMDMyMiBT
S0lQIDogYWNjZXNzaWJpbGl0eS9zZWN1cmUtdGV4dGZpZWxkLXRpdGxlLXVpLmh0bWwgPSBURVhU
CitCVUdDUjEwMzIyIFNLSVAgOiBhY2Nlc3NpYmlsaXR5L3RhYmxlLWF0dHJpYnV0ZXMuaHRtbCA9
IFRFWFQKK0JVR0NSMTAzMjIgU0tJUCA6IGFjY2Vzc2liaWxpdHkvdGFibGUtY2VsbC1zcGFucy5o
dG1sID0gVEVYVAorQlVHQ1IxMDMyMiBTS0lQIDogYWNjZXNzaWJpbGl0eS90YWJsZS1jZWxscy5o
dG1sID0gVEVYVAorQlVHQ1IxMDMyMiBTS0lQIDogYWNjZXNzaWJpbGl0eS90YWJsZS1kZXRlY3Rp
b24uaHRtbCA9IFRFWFQKK0JVR0NSMTAzMjIgU0tJUCA6IGFjY2Vzc2liaWxpdHkvdGFibGUtb25l
LWNlbGwuaHRtbCA9IFRFWFQKK0JVR0NSMTAzMjIgU0tJUCA6IGFjY2Vzc2liaWxpdHkvdGFibGUt
c2VjdGlvbnMuaHRtbCA9IFRFWFQKK0JVR0NSMTAzMjIgU0tJUCA6IGFjY2Vzc2liaWxpdHkvdGFi
bGUtd2l0aC1hcmlhLXJvbGUuaHRtbCA9IFRFWFQKK0JVR0NSMTAzMjIgU0tJUCA6IGFjY2Vzc2li
aWxpdHkvdGFibGUtd2l0aC1ydWxlcy5odG1sID0gVEVYVAorQlVHQ1IxMDMyMiBTS0lQIDogYWNj
ZXNzaWJpbGl0eS90ZXh0YXJlYS1pbnNlcnRpb24tcG9pbnQtbGluZS1udW1iZXIuaHRtbCA9IFRF
WFQKK0JVR0NSMTAzMjIgU0tJUCA6IGFjY2Vzc2liaWxpdHkvdGV4dGFyZWEtbGluZS1mb3ItaW5k
ZXguaHRtbCA9IFRFWFQKK0JVR0NSMTAzMjIgU0tJUCA6IGFjY2Vzc2liaWxpdHkvdGV4dGFyZWEt
c2VsZWN0ZWQtdGV4dC1yYW5nZS5odG1sID0gVEVYVAorQlVHQ1IxMDMyMiBTS0lQIDogYWNjZXNz
aWJpbGl0eS90ZXh0Ym94LXJvbGUtcmVwb3J0cy1zZWxlY3Rpb24uaHRtbCA9IFRFWFQKK0JVR0NS
MTAzMjIgU0tJUCA6IGFjY2Vzc2liaWxpdHkvdGgtYXMtdGl0bGUtdWkuaHRtbCA9IFRFWFQKK0JV
R0NSMTAzMjIgU0tJUCA6IGFjY2Vzc2liaWxpdHkvdHJhbnNmb3JtZWQtZWxlbWVudC5odG1sID0g
VEVYVAorQlVHQ1IxMDMyMiBTS0lQIDogYWNjZXNzaWJpbGl0eS92aXNpYmxlLWVsZW1lbnRzLmh0
bWwgPSBURVhUCiAKIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAvLyBUZXN0IGZhaWx1cmVzIHdpdGggU2tpYSBHUFUg
cmVuZGVyaW5nIG9mIGNhbnZhcyAyRApJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21p
dW0vYWNjZXNzaWJpbGl0eS9hZGphY2VudC1jb250aW51YXRpb25zLWNhdXNlLWFzc2VydGlvbi1m
YWlsdXJlLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9j
aHJvbWl1bS9hY2Nlc3NpYmlsaXR5L2FkamFjZW50LWNvbnRpbnVhdGlvbnMtY2F1c2UtYXNzZXJ0
aW9uLWZhaWx1cmUtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvcGxh
dGZvcm0vY2hyb21pdW0vYWNjZXNzaWJpbGl0eS9hZGphY2VudC1jb250aW51YXRpb25zLWNhdXNl
LWFzc2VydGlvbi1mYWlsdXJlLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwy
MCBAQAoreAoreQoregorRW5kIG9mIHRlc3QKK01ha2Ugc3VyZSB0aGF0IGEgZGVidWcgYXNzZXJ0
IGlzIG5vdCB0cmlnZ2VyZWQgd2hlbiBjb25zdHJ1Y3RpbmcgdGhlIGFjY2Vzc2liaWxpdHkgdHJl
ZSBmb3IgdGhpcyBwYWdlLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2Yg
IlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworQVhSb2xl
OiBBWFdlYkFyZWEgQVhWYWx1ZTogCisgICAgQVhSb2xlOiBBWFN0YXRpY1RleHQgQVhWYWx1ZTog
eAorICAgIEFYUm9sZTogQVhHcm91cCBBWFZhbHVlOiAKKyAgICAgICAgQVhSb2xlOiBBWFN0YXRp
Y1RleHQgQVhWYWx1ZTogeQorICAgIEFYUm9sZTogQVhTdGF0aWNUZXh0IEFYVmFsdWU6IHoKKyAg
ICBBWFJvbGU6IEFYR3JvdXAgQVhWYWx1ZTogCisgICAgICAgIEFYUm9sZTogQVhTdGF0aWNUZXh0
IEFYVmFsdWU6IEVuZCBvZiB0ZXN0CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisK
K1RFU1QgQ09NUExFVEUKKwoKUHJvcGVydHkgY2hhbmdlcyBvbjogTGF5b3V0VGVzdHMvcGxhdGZv
cm0vY2hyb21pdW0vYWNjZXNzaWJpbGl0eS9hZGphY2VudC1jb250aW51YXRpb25zLWNhdXNlLWFz
c2VydGlvbi1mYWlsdXJlLWV4cGVjdGVkLnR4dApfX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkFkZGVkOiBzdm46ZW9sLXN0
eWxlCiAgICsgTEYKCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9hY2Nlc3Np
YmlsaXR5L2FyaWEtbGFiZWxsZWRieS1vdmVycmlkZXMtYXJpYS1sYWJlbC1leHBlY3RlZC50eHQK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vYWNjZXNzaWJpbGl0
eS9hcmlhLWxhYmVsbGVkYnktb3ZlcnJpZGVzLWFyaWEtbGFiZWwtZXhwZWN0ZWQudHh0CShyZXZp
c2lvbiAwKQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vYWNjZXNzaWJpbGl0eS9h
cmlhLWxhYmVsbGVkYnktb3ZlcnJpZGVzLWFyaWEtbGFiZWwtZXhwZWN0ZWQudHh0CShyZXZpc2lv
biAwKQpAQCAtMCwwICsxLDEyIEBACitUaGlzIHRlc3RzIHRoYXQgaWYgYXJpYS1sYWJlbGxlZGJ5
IGlzIHVzZWQsIHRoZW4gYXJpYS1sYWJlbCBhdHRyaWJ1dGVzIGFyZSBub3QgdXNlZC4KKworQWxw
aGEgQmV0YSBEZWx0YSBFdGEgRXBzaWxvbiBUaGV0YQordXNpbmdOb25lLnRpdGxlOiBbQVhUaXRs
ZTogQWxwaGFdCit1c2luZ05vbmUuZGVzY3JpcHRpb246IFtBWERlc2NyaXB0aW9uOiBdCit1c2lu
Z0xhYmVsLnRpdGxlOiBbQVhUaXRsZTogQmV0YV0KK3VzaW5nTGFiZWwuZGVzY3JpcHRpb246IFtB
WERlc2NyaXB0aW9uOiBHYW1tYV0KK3VzaW5nTGFiZWxsZWRieS50aXRsZTogW0FYVGl0bGU6IERl
bHRhXQordXNpbmdMYWJlbGxlZGJ5LmRlc2NyaXB0aW9uOiBbQVhEZXNjcmlwdGlvbjogRXBzaWxv
bl0KK3VzaW5nTGFiZWxlZGJ5LnRpdGxlOiBbQVhUaXRsZTogRXRhXQordXNpbmdMYWJlbGVkYnku
ZGVzY3JpcHRpb246IFtBWERlc2NyaXB0aW9uOiBUaGV0YV0KKwoKUHJvcGVydHkgY2hhbmdlcyBv
bjogTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vYWNjZXNzaWJpbGl0eS9hcmlhLWxhYmVs
bGVkYnktb3ZlcnJpZGVzLWFyaWEtbGFiZWwtZXhwZWN0ZWQudHh0Cl9fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KQWRkZWQ6
IHN2bjplb2wtc3R5bGUKICAgKyBMRgoKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9t
aXVtL2FjY2Vzc2liaWxpdHkvZGl2LXdpdGhpbi1hbmNob3JzLWNhdXNlcy1jcmFzaC1leHBlY3Rl
ZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vYWNjZXNz
aWJpbGl0eS9kaXYtd2l0aGluLWFuY2hvcnMtY2F1c2VzLWNyYXNoLWV4cGVjdGVkLnR4dAkocmV2
aXNpb24gMCkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2FjY2Vzc2liaWxpdHkv
ZGl2LXdpdGhpbi1hbmNob3JzLWNhdXNlcy1jcmFzaC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDAp
CkBAIC0wLDAgKzEsMTkgQEAKK0VuZCBvZiB0ZXN0CitCZWZvcmU6CitBWFJvbGU6IEFYV2ViQXJl
YSBBWFZhbHVlOiAKKyAgICBBWFJvbGU6IEFYTGluayBBWFZhbHVlOiAKKyAgICBBWFJvbGU6IEFY
R3JvdXAgQVhWYWx1ZTogCisgICAgICAgIEFYUm9sZTogQVhTdGF0aWNUZXh0IEFYVmFsdWU6IEVu
ZCBvZiB0ZXN0CitBZnRlcjoKK0FYUm9sZTogQVhXZWJBcmVhIEFYVmFsdWU6IAorICAgIEFYUm9s
ZTogQVhHcm91cCBBWFZhbHVlOiAKKyAgICAgICAgQVhSb2xlOiBBWFN0YXRpY1RleHQgQVhWYWx1
ZTogRW5kIG9mIHRlc3QKK1RoaXMgY2FuIGNhdXNlIGEgY3Jhc2guCisKK09uIHN1Y2Nlc3MsIHlv
dSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNU
IENPTVBMRVRFIi4KKworCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1Qg
Q09NUExFVEUKKwoKUHJvcGVydHkgY2hhbmdlcyBvbjogTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hy
b21pdW0vYWNjZXNzaWJpbGl0eS9kaXYtd2l0aGluLWFuY2hvcnMtY2F1c2VzLWNyYXNoLWV4cGVj
dGVkLnR4dApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fCkFkZGVkOiBzdm46ZW9sLXN0eWxlCiAgICsgTEYKCkluZGV4OiBM
YXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9hY2Nlc3NpYmlsaXR5L3BsYXRmb3JtLW5hbWUt
ZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVt
L2FjY2Vzc2liaWxpdHkvcGxhdGZvcm0tbmFtZS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisr
KyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9hY2Nlc3NpYmlsaXR5L3BsYXRmb3JtLW5h
bWUtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDEwIEBACitUaGlzIHRlc3Qg
anVzdCBwcmludHMgdGhlIG5hbWUgb2YgdGhlIGN1cnJlbnQgcGxhdGZvcm0uCisKK09uIHN1Y2Nl
c3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5
ICJURVNUIENPTVBMRVRFIi4KKworCitQbGF0Zm9ybSBuYW1lOiBjaHJvbWl1bQorUEFTUyBzdWNj
ZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKClByb3BlcnR5IGNoYW5n
ZXMgb246IExheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2FjY2Vzc2liaWxpdHkvcGxhdGZv
cm0tbmFtZS1leHBlY3RlZC50eHQKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpBZGRlZDogc3ZuOmVvbC1zdHlsZQogICAr
IExGCgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>110420</attachid>
            <date>2011-10-10 15:25:38 -0700</date>
            <delta_ts>2011-10-11 00:28:04 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-69676-20111010152537.patch</filename>
            <type>text/plain</type>
            <size>50450</size>
            <attacher name="Dominic Mazzoni">dmazzoni</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDk3MDk1KQorKysgVG9vbHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMg
KzEsODAgQEAKKzIwMTEtMTAtMDcgIERvbWluaWMgTWF6em9uaSAgPGRtYXp6b25pQGdvb2dsZS5j
b20+CisKKyAgICAgICAgVXBkYXRlIENocm9taXVtIGFjY2Vzc2liaWxpdHkgc3VwcG9ydCBpbiBE
UlQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02OTY3
NgorCisgICAgICAgIFJldmlld2VkIGJ5IENocmlzIEZsZWl6YWNoLgorCisgICAgICAgIEFkZHMg
c2V2ZXJhbCBtaXNzaW5nIHByb3BlcnRpZXMgYW5kIG1ldGhvZHMgdG8gZW5hYmxlIG1vcmUKKyAg
ICAgICAgdGVzdHMgdG8gcGFzcywgYW5kIGluIHBhcnRpY3VsYXIgYWRkcyBzdXBwb3J0IGZvciBu
b3RpZmljYXRpb24KKyAgICAgICAgY2FsbGJhY2tzLgorCisgICAgICAgICogRHVtcFJlbmRlclRy
ZWUvY2hyb21pdW0vQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuY3BwOgorICAgICAgICAoQWNjZXNz
aWJpbGl0eUNvbnRyb2xsZXI6OkFjY2Vzc2liaWxpdHlDb250cm9sbGVyKToKKyAgICAgICAgKEFj
Y2Vzc2liaWxpdHlDb250cm9sbGVyOjpyZXNldCk6CisgICAgICAgIChBY2Nlc3NpYmlsaXR5Q29u
dHJvbGxlcjo6Z2V0Rm9jdXNlZEVsZW1lbnQpOgorICAgICAgICAoQWNjZXNzaWJpbGl0eUNvbnRy
b2xsZXI6OnNob3VsZExvZ0FjY2Vzc2liaWxpdHlFdmVudHMpOgorICAgICAgICAoQWNjZXNzaWJp
bGl0eUNvbnRyb2xsZXI6Om5vdGlmaWNhdGlvblJlY2VpdmVkKToKKyAgICAgICAgKEFjY2Vzc2li
aWxpdHlDb250cm9sbGVyOjpsb2dBY2Nlc3NpYmlsaXR5RXZlbnRzQ2FsbGJhY2spOgorICAgICAg
ICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyLmg6Cisg
ICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5j
cHA6CisgICAgICAgIChnZXRIZWxwVGV4dCk6CisgICAgICAgIChnZXRTdHJpbmdWYWx1ZSk6Cisg
ICAgICAgIChnZXRPcmllbnRhdGlvbik6CisgICAgICAgIChBY2Nlc3NpYmlsaXR5VUlFbGVtZW50
OjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50KToKKyAgICAgICAgKEFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQ6OmdldENoaWxkQXRJbmRleCk6CisgICAgICAgIChBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpp
c0VxdWFsKToKKyAgICAgICAgKEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6Om5vdGlmaWNhdGlvblJl
Y2VpdmVkKToKKyAgICAgICAgKEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnJvbGVHZXR0ZXJDYWxs
YmFjayk6CisgICAgICAgIChBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojp0aXRsZUdldHRlckNhbGxi
YWNrKToKKyAgICAgICAgKEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmRlc2NyaXB0aW9uR2V0dGVy
Q2FsbGJhY2spOgorICAgICAgICAoQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aGVscFRleHRHZXR0
ZXJDYWxsYmFjayk6CisgICAgICAgIChBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzdHJpbmdWYWx1
ZUdldHRlckNhbGxiYWNrKToKKyAgICAgICAgKEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnhHZXR0
ZXJDYWxsYmFjayk6CisgICAgICAgIChBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojp5R2V0dGVyQ2Fs
bGJhY2spOgorICAgICAgICAoQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6d2lkdGhHZXR0ZXJDYWxs
YmFjayk6CisgICAgICAgIChBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpoZWlnaHRHZXR0ZXJDYWxs
YmFjayk6CisgICAgICAgIChBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjppbnRWYWx1ZUdldHRlckNh
bGxiYWNrKToKKyAgICAgICAgKEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6Om1pblZhbHVlR2V0dGVy
Q2FsbGJhY2spOgorICAgICAgICAoQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6bWF4VmFsdWVHZXR0
ZXJDYWxsYmFjayk6CisgICAgICAgIChBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpjaGlsZHJlbkNv
dW50R2V0dGVyQ2FsbGJhY2spOgorICAgICAgICAoQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aW5z
ZXJ0aW9uUG9pbnRMaW5lTnVtYmVyR2V0dGVyQ2FsbGJhY2spOgorICAgICAgICAoQWNjZXNzaWJp
bGl0eVVJRWxlbWVudDo6c2VsZWN0ZWRUZXh0UmFuZ2VHZXR0ZXJDYWxsYmFjayk6CisgICAgICAg
IChBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojppc0VuYWJsZWRHZXR0ZXJDYWxsYmFjayk6CisgICAg
ICAgIChBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojppc1JlcXVpcmVkR2V0dGVyQ2FsbGJhY2spOgor
ICAgICAgICAoQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNGb2N1c2VkR2V0dGVyQ2FsbGJhY2sp
OgorICAgICAgICAoQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNGb2N1c2FibGVHZXR0ZXJDYWxs
YmFjayk6CisgICAgICAgIChBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojppc1NlbGVjdGVkR2V0dGVy
Q2FsbGJhY2spOgorICAgICAgICAoQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNTZWxlY3RhYmxl
R2V0dGVyQ2FsbGJhY2spOgorICAgICAgICAoQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNNdWx0
aVNlbGVjdGFibGVHZXR0ZXJDYWxsYmFjayk6CisgICAgICAgIChBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50Ojppc0V4cGFuZGVkR2V0dGVyQ2FsbGJhY2spOgorICAgICAgICAoQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudDo6aXNDaGVja2VkR2V0dGVyQ2FsbGJhY2spOgorICAgICAgICAoQWNjZXNzaWJpbGl0
eVVJRWxlbWVudDo6aXNWaXNpYmxlR2V0dGVyQ2FsbGJhY2spOgorICAgICAgICAoQWNjZXNzaWJp
bGl0eVVJRWxlbWVudDo6aXNPZmZTY3JlZW5HZXR0ZXJDYWxsYmFjayk6CisgICAgICAgIChBY2Nl
c3NpYmlsaXR5VUlFbGVtZW50Ojppc0NvbGxhcHNlZEdldHRlckNhbGxiYWNrKToKKyAgICAgICAg
KEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6Omhhc1BvcHVwR2V0dGVyQ2FsbGJhY2spOgorICAgICAg
ICAoQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNWYWxpZEdldHRlckNhbGxiYWNrKToKKyAgICAg
ICAgKEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6Om9yaWVudGF0aW9uR2V0dGVyQ2FsbGJhY2spOgor
ICAgICAgICAoQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2hvd01lbnVDYWxsYmFjayk6CisgICAg
ICAgIChBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpwcmVzc0NhbGxiYWNrKToKKyAgICAgICAgKEFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzRXF1YWxDYWxsYmFjayk6CisgICAgICAgIChBY2Nlc3Np
YmlsaXR5VUlFbGVtZW50OjphZGROb3RpZmljYXRpb25MaXN0ZW5lckNhbGxiYWNrKToKKyAgICAg
ICAgKEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnJlbW92ZU5vdGlmaWNhdGlvbkxpc3RlbmVyQ2Fs
bGJhY2spOgorICAgICAgICAoQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6dGFrZUZvY3VzQ2FsbGJh
Y2spOgorICAgICAgICAoQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6ZmFsbGJhY2tDYWxsYmFjayk6
CisgICAgICAgIChSb290QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6Z2V0Q2hpbGRBdEluZGV4KToK
KyAgICAgICAgKEFjY2Vzc2liaWxpdHlVSUVsZW1lbnRMaXN0OjpnZXRPckNyZWF0ZSk6CisgICAg
ICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5oOgor
ICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0NwcFZhcmlhbnQuY3BwOgorICAgICAg
ICAoQ3BwVmFyaWFudDo6aW52b2tlRGVmYXVsdCk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUv
Y2hyb21pdW0vQ3BwVmFyaWFudC5oOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVt
L0xheW91dFRlc3RDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKExheW91dFRlc3RDb250cm9sbGVy
OjpMYXlvdXRUZXN0Q29udHJvbGxlcik6CisgICAgICAgIChMYXlvdXRUZXN0Q29udHJvbGxlcjo6
cmVzZXQpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250
cm9sbGVyLmg6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3Qu
Y3BwOgorICAgICAgICAoV2ViVmlld0hvc3Q6OnBvc3RBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9u
KToKKwogMjAxMS0xMC0xMCAgRGF2aWQgTGV2aW4gIDxsZXZpbkBjaHJvbWl1bS5vcmc+CiAKICAg
ICAgICAgUXVpY2sgZml4IGZvciB3YXRjaGxpc3QgdW5pdCB0ZXN0IGZhaWx1cmVzIHdoZW4gdXNp
bmcgUHl0aG9uIDIuNysKSW5kZXg6IFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0FjY2Vz
c2liaWxpdHlDb250cm9sbGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9EdW1wUmVuZGVyVHJl
ZS9jaHJvbWl1bS9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5jcHAJKHJldmlzaW9uIDk3MDk1KQor
KysgVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MCwxMyArNDAsMTEgQEAKIHVzaW5nIG5hbWVzcGFjZSBX
ZWJLaXQ7CiAKIEFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjpBY2Nlc3NpYmlsaXR5Q29udHJvbGxl
cihUZXN0U2hlbGwqIHNoZWxsKQotICAgIDogbV9kdW1wQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlv
bnMoZmFsc2UpCisgICAgOiBtX2xvZ0FjY2Vzc2liaWxpdHlFdmVudHMoZmFsc2UpCiAgICAgLCBt
X3NoZWxsKHNoZWxsKQogewogCi0gICAgYmluZE1ldGhvZCgiZHVtcEFjY2Vzc2liaWxpdHlOb3Rp
ZmljYXRpb25zIiwgJkFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjpkdW1wQWNjZXNzaWJpbGl0eU5v
dGlmaWNhdGlvbnMpOwotICAgIGJpbmRNZXRob2QoImxvZ0ZvY3VzRXZlbnRzIiwgJkFjY2Vzc2li
aWxpdHlDb250cm9sbGVyOjpsb2dGb2N1c0V2ZW50c0NhbGxiYWNrKTsKLSAgICBiaW5kTWV0aG9k
KCJsb2dTY3JvbGxpbmdTdGFydEV2ZW50cyIsICZBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6bG9n
U2Nyb2xsaW5nU3RhcnRFdmVudHNDYWxsYmFjayk7CisgICAgYmluZE1ldGhvZCgibG9nQWNjZXNz
aWJpbGl0eUV2ZW50cyIsICZBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6bG9nQWNjZXNzaWJpbGl0
eUV2ZW50c0NhbGxiYWNrKTsKIAogICAgIGJpbmRQcm9wZXJ0eSgiZm9jdXNlZEVsZW1lbnQiLCAm
QWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6OmZvY3VzZWRFbGVtZW50R2V0dGVyQ2FsbGJhY2spOwog
ICAgIGJpbmRQcm9wZXJ0eSgicm9vdEVsZW1lbnQiLCAmQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6
OnJvb3RFbGVtZW50R2V0dGVyQ2FsbGJhY2spOwpAQCAtNjUsOCArNjMsOCBAQCB2b2lkIEFjY2Vz
c2liaWxpdHlDb250cm9sbGVyOjpyZXNldCgpCiAgICAgbV9yb290RWxlbWVudCA9IFdlYkFjY2Vz
c2liaWxpdHlPYmplY3QoKTsKICAgICBtX2ZvY3VzZWRFbGVtZW50ID0gV2ViQWNjZXNzaWJpbGl0
eU9iamVjdCgpOwogICAgIG1fZWxlbWVudHMuY2xlYXIoKTsKLSAgICAKLSAgICBtX2R1bXBBY2Nl
c3NpYmlsaXR5Tm90aWZpY2F0aW9ucyA9IGZhbHNlOworCisgICAgbV9sb2dBY2Nlc3NpYmlsaXR5
RXZlbnRzID0gZmFsc2U7CiB9CiAKIHZvaWQgQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6OnNldEZv
Y3VzZWRFbGVtZW50KGNvbnN0IFdlYkFjY2Vzc2liaWxpdHlPYmplY3QmIGZvY3VzZWRFbGVtZW50
KQpAQCAtNzgsNyArNzYsNyBAQCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50KiBBY2Nlc3NpYmlsaXR5
Q29uCiB7CiAgICAgaWYgKG1fZm9jdXNlZEVsZW1lbnQuaXNOdWxsKCkpCiAgICAgICAgIG1fZm9j
dXNlZEVsZW1lbnQgPSBtX3NoZWxsLT53ZWJWaWV3KCktPmFjY2Vzc2liaWxpdHlPYmplY3QoKTsK
LSAgICByZXR1cm4gbV9lbGVtZW50cy5jcmVhdGUobV9mb2N1c2VkRWxlbWVudCk7CisgICAgcmV0
dXJuIG1fZWxlbWVudHMuZ2V0T3JDcmVhdGUobV9mb2N1c2VkRWxlbWVudCk7CiB9CiAKIEFjY2Vz
c2liaWxpdHlVSUVsZW1lbnQqIEFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjpnZXRSb290RWxlbWVu
dCgpCkBAIC04OCwyMSArODYsMjAgQEAgQWNjZXNzaWJpbGl0eVVJRWxlbWVudCogQWNjZXNzaWJp
bGl0eUNvbgogICAgIHJldHVybiBtX2VsZW1lbnRzLmNyZWF0ZVJvb3QobV9yb290RWxlbWVudCk7
CiB9CiAKLXZvaWQgQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6OmR1bXBBY2Nlc3NpYmlsaXR5Tm90
aWZpY2F0aW9ucyhjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50KiByZXN1bHQpCiti
b29sIEFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjpzaG91bGRMb2dBY2Nlc3NpYmlsaXR5RXZlbnRz
KCkKIHsKLSAgICBtX2R1bXBBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9ucyA9IHRydWU7Ci0gICAg
cmVzdWx0LT5zZXROdWxsKCk7CisgICAgcmV0dXJuIG1fbG9nQWNjZXNzaWJpbGl0eUV2ZW50czsK
IH0KIAotdm9pZCBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6bG9nRm9jdXNFdmVudHNDYWxsYmFj
ayhjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50KiByZXN1bHQpCit2b2lkIEFjY2Vz
c2liaWxpdHlDb250cm9sbGVyOjpub3RpZmljYXRpb25SZWNlaXZlZChjb25zdCBXZWJLaXQ6Oldl
YkFjY2Vzc2liaWxpdHlPYmplY3QmIHRhcmdldCwgY29uc3QgY2hhciogbm90aWZpY2F0aW9uTmFt
ZSkKIHsKLSAgICAvLyBBcyBvZiByNDkwMzEsIHRoaXMgaXMgbm90IGJlaW5nIHVzZWQgdXBzdHJl
YW0uCi0gICAgcmVzdWx0LT5zZXROdWxsKCk7CisgICAgQWNjZXNzaWJpbGl0eVVJRWxlbWVudCog
ZWxlbWVudCA9IG1fZWxlbWVudHMuZ2V0T3JDcmVhdGUodGFyZ2V0KTsKKyAgICBlbGVtZW50LT5u
b3RpZmljYXRpb25SZWNlaXZlZChub3RpZmljYXRpb25OYW1lKTsKIH0KIAotdm9pZCBBY2Nlc3Np
YmlsaXR5Q29udHJvbGxlcjo6bG9nU2Nyb2xsaW5nU3RhcnRFdmVudHNDYWxsYmFjayhjb25zdCBD
cHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50KiByZXN1bHQpCit2b2lkIEFjY2Vzc2liaWxpdHlD
b250cm9sbGVyOjpsb2dBY2Nlc3NpYmlsaXR5RXZlbnRzQ2FsbGJhY2soY29uc3QgQ3BwQXJndW1l
bnRMaXN0JiwgQ3BwVmFyaWFudCogcmVzdWx0KQogewotICAgIC8vIEFzIG9mIHI0OTAzMSwgdGhp
cyBpcyBub3QgYmVpbmcgdXNlZCB1cHN0cmVhbS4KKyAgICBtX2xvZ0FjY2Vzc2liaWxpdHlFdmVu
dHMgPSB0cnVlOwogICAgIHJlc3VsdC0+c2V0TnVsbCgpOwogfQogCkluZGV4OiBUb29scy9EdW1w
UmVuZGVyVHJlZS9jaHJvbWl1bS9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0FjY2Vzc2liaWxpdHlDb250cm9sbGVy
LmgJKHJldmlzaW9uIDk3MDk1KQorKysgVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vQWNj
ZXNzaWJpbGl0eUNvbnRyb2xsZXIuaAkod29ya2luZyBjb3B5KQpAQCAtNTIsMjIgKzUyLDE3IEBA
IHB1YmxpYzoKICAgICB2b2lkIHNldEZvY3VzZWRFbGVtZW50KGNvbnN0IFdlYktpdDo6V2ViQWNj
ZXNzaWJpbGl0eU9iamVjdCYpOwogICAgIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQqIGdldEZvY3Vz
ZWRFbGVtZW50KCk7CiAgICAgQWNjZXNzaWJpbGl0eVVJRWxlbWVudCogZ2V0Um9vdEVsZW1lbnQo
KTsKLSAgICAKLSAgICAvLyBUaGlzIGZ1bmN0aW9uIHNldHMgYSBmbGFnIHRoYXQgdGVsbHMgdGhl
IHRlc3Rfc2hlbGwgdG8gZHVtcCBhbGwgCi0gICAgLy8gYWNjZXNzaWJpbGl0eSBub3RpZmljYXRp
b25zLgotICAgIHZvaWQgZHVtcEFjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25zKGNvbnN0IENwcEFy
Z3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKLQotcHVibGljOgotICAgIC8vIFRoZSBmb2xsb3dp
bmcgbWV0aG9kcyBhcmUgbm90IGV4cG9zZWQgdG8gSmF2YVNjcmlwdC4KLSAgICBib29sIHNob3Vs
ZER1bXBBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9ucygpIHsgcmV0dXJuIG1fZHVtcEFjY2Vzc2li
aWxpdHlOb3RpZmljYXRpb25zOyB9CisKKyAgICBib29sIHNob3VsZExvZ0FjY2Vzc2liaWxpdHlF
dmVudHMoKTsKKworICAgIHZvaWQgbm90aWZpY2F0aW9uUmVjZWl2ZWQoY29uc3QgV2ViS2l0OjpX
ZWJBY2Nlc3NpYmlsaXR5T2JqZWN0JiB0YXJnZXQsIGNvbnN0IGNoYXIqIG5vdGlmaWNhdGlvbk5h
bWUpOwogCiBwcml2YXRlOgotICAgIC8vIElmIHRydWUsIHRoZSB0ZXN0X3NoZWxsIHdpbGwgZHVt
cCBhbGwgYWNjZXNzaWJpbGl0eSBub3RpZmljYXRpb25zLgotICAgIGJvb2wgbV9kdW1wQWNjZXNz
aWJpbGl0eU5vdGlmaWNhdGlvbnM7CisgICAgLy8gSWYgdHJ1ZSwgd2lsbCBsb2cgYWxsIGFjY2Vz
c2liaWxpdHkgbm90aWZpY2F0aW9ucy4KKyAgICBib29sIG1fbG9nQWNjZXNzaWJpbGl0eUV2ZW50
czsKIAogICAgIC8vIEJvdW5kIG1ldGhvZHMgYW5kIHByb3BlcnRpZXMKLSAgICB2b2lkIGxvZ0Zv
Y3VzRXZlbnRzQ2FsbGJhY2soY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOwot
ICAgIHZvaWQgbG9nU2Nyb2xsaW5nU3RhcnRFdmVudHNDYWxsYmFjayhjb25zdCBDcHBBcmd1bWVu
dExpc3QmLCBDcHBWYXJpYW50Kik7CisgICAgdm9pZCBsb2dBY2Nlc3NpYmlsaXR5RXZlbnRzQ2Fs
bGJhY2soY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOwogICAgIHZvaWQgZmFs
bGJhY2tDYWxsYmFjayhjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7CiAKICAg
ICB2b2lkIGZvY3VzZWRFbGVtZW50R2V0dGVyQ2FsbGJhY2soQ3BwVmFyaWFudCopOwpJbmRleDog
VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vQWNjZXNzaWJpbGl0
eVVJRWxlbWVudC5jcHAJKHJldmlzaW9uIDk3MDk1KQorKysgVG9vbHMvRHVtcFJlbmRlclRyZWUv
Y2hyb21pdW0vQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMz
LDYgKzMzLDcgQEAKIAogI2luY2x1ZGUgIldlYkFjY2Vzc2liaWxpdHlPYmplY3QuaCIKICNpbmNs
dWRlICJXZWJDU3RyaW5nLmgiCisjaW5jbHVkZSAiV2ViUmVjdC5oIgogI2luY2x1ZGUgIldlYlN0
cmluZy5oIgogI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+CiAKQEAgLTIxNCw2ICsyMTUsMTgg
QEAgc3RyaW5nIGdldERlc2NyaXB0aW9uKGNvbnN0IFdlYkFjY2Vzc2liaQogICAgIHJldHVybiBk
ZXNjcmlwdGlvbi5pbnNlcnQoMCwgIkFYRGVzY3JpcHRpb246ICIpOwogfQogCitzdHJpbmcgZ2V0
SGVscFRleHQoY29uc3QgV2ViQWNjZXNzaWJpbGl0eU9iamVjdCYgb2JqZWN0KQoreworICAgIHN0
cmluZyBoZWxwVGV4dCA9IG9iamVjdC5oZWxwVGV4dCgpLnV0ZjgoKTsKKyAgICByZXR1cm4gaGVs
cFRleHQuaW5zZXJ0KDAsICJBWEhlbHA6ICIpOworfQorCitzdHJpbmcgZ2V0U3RyaW5nVmFsdWUo
Y29uc3QgV2ViQWNjZXNzaWJpbGl0eU9iamVjdCYgb2JqZWN0KQoreworICAgIHN0cmluZyB2YWx1
ZSA9IG9iamVjdC5zdHJpbmdWYWx1ZSgpLnV0ZjgoKTsKKyAgICByZXR1cm4gdmFsdWUuaW5zZXJ0
KDAsICJBWFZhbHVlOiAiKTsKK30KKwogc3RyaW5nIGdldFJvbGUoY29uc3QgV2ViQWNjZXNzaWJp
bGl0eU9iamVjdCYgb2JqZWN0KQogewogICAgIHJldHVybiByb2xlVG9TdHJpbmcob2JqZWN0LnJv
bGVWYWx1ZSgpKTsKQEAgLTIyNSw2ICsyMzgsMTQgQEAgc3RyaW5nIGdldFRpdGxlKGNvbnN0IFdl
YkFjY2Vzc2liaWxpdHlPYgogICAgIHJldHVybiB0aXRsZS5pbnNlcnQoMCwgIkFYVGl0bGU6ICIp
OwogfQogCitzdHJpbmcgZ2V0T3JpZW50YXRpb24oY29uc3QgV2ViQWNjZXNzaWJpbGl0eU9iamVj
dCYgb2JqZWN0KQoreworICAgIGlmIChvYmplY3QuaXNWZXJ0aWNhbCgpKQorICAgICAgICByZXR1
cm4gIkFYT3JpZW50YXRpb246IEFYVmVydGljYWxPcmllbnRhdGlvbiI7CisKKyAgICByZXR1cm4g
IkFYT3JpZW50YXRpb246IEFYSG9yaXpvbnRhbE9yaWVudGF0aW9uIjsKK30KKwogc3RyaW5nIGdl
dEF0dHJpYnV0ZXMoY29uc3QgV2ViQWNjZXNzaWJpbGl0eU9iamVjdCYgb2JqZWN0KQogewogICAg
IC8vIEZJWE1FOiBDb25jYXRlbmF0ZSBhbGwgYXR0cmlidXRlcyBvZiB0aGUgQWNjZXNzaWJpbGl0
eU9iamVjdC4KQEAgLTI2MSw4MiArMjgyLDI2NiBAQCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpB
Y2Nlc3NpYmlsaXR5VUlFCiAKICAgICBBU1NFUlQoZmFjdG9yeSk7CiAKKyAgICAvLworICAgIC8v
IFByb3BlcnRpZXMKKyAgICAvLworCisgICAgYmluZFByb3BlcnR5KCJyb2xlIiwgJkFjY2Vzc2li
aWxpdHlVSUVsZW1lbnQ6OnJvbGVHZXR0ZXJDYWxsYmFjayk7CisgICAgYmluZFByb3BlcnR5KCJ0
aXRsZSIsICZBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojp0aXRsZUdldHRlckNhbGxiYWNrKTsKKyAg
ICBiaW5kUHJvcGVydHkoImRlc2NyaXB0aW9uIiwgJkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmRl
c2NyaXB0aW9uR2V0dGVyQ2FsbGJhY2spOworICAgIGJpbmRQcm9wZXJ0eSgiaGVscFRleHQiLCAm
QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aGVscFRleHRHZXR0ZXJDYWxsYmFjayk7CisgICAgYmlu
ZFByb3BlcnR5KCJzdHJpbmdWYWx1ZSIsICZBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzdHJpbmdW
YWx1ZUdldHRlckNhbGxiYWNrKTsKKyAgICBiaW5kUHJvcGVydHkoIngiLCAmQWNjZXNzaWJpbGl0
eVVJRWxlbWVudDo6eEdldHRlckNhbGxiYWNrKTsKKyAgICBiaW5kUHJvcGVydHkoInkiLCAmQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudDo6eUdldHRlckNhbGxiYWNrKTsKKyAgICBiaW5kUHJvcGVydHko
IndpZHRoIiwgJkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OndpZHRoR2V0dGVyQ2FsbGJhY2spOwor
ICAgIGJpbmRQcm9wZXJ0eSgiaGVpZ2h0IiwgJkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmhlaWdo
dEdldHRlckNhbGxiYWNrKTsKKyAgICBiaW5kUHJvcGVydHkoImludFZhbHVlIiwgJkFjY2Vzc2li
aWxpdHlVSUVsZW1lbnQ6OmludFZhbHVlR2V0dGVyQ2FsbGJhY2spOworICAgIGJpbmRQcm9wZXJ0
eSgibWluVmFsdWUiLCAmQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6bWluVmFsdWVHZXR0ZXJDYWxs
YmFjayk7CisgICAgYmluZFByb3BlcnR5KCJtYXhWYWx1ZSIsICZBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50OjptYXhWYWx1ZUdldHRlckNhbGxiYWNrKTsKKyAgICBiaW5kUHJvcGVydHkoImNoaWxkcmVu
Q291bnQiLCAmQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6Y2hpbGRyZW5Db3VudEdldHRlckNhbGxi
YWNrKTsKKyAgICBiaW5kUHJvcGVydHkoImluc2VydGlvblBvaW50TGluZU51bWJlciIsICZBY2Nl
c3NpYmlsaXR5VUlFbGVtZW50OjppbnNlcnRpb25Qb2ludExpbmVOdW1iZXJHZXR0ZXJDYWxsYmFj
ayk7CisgICAgYmluZFByb3BlcnR5KCJzZWxlY3RlZFRleHRSYW5nZSIsICZBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50OjpzZWxlY3RlZFRleHRSYW5nZUdldHRlckNhbGxiYWNrKTsKKyAgICBiaW5kUHJv
cGVydHkoImlzRW5hYmxlZCIsICZBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojppc0VuYWJsZWRHZXR0
ZXJDYWxsYmFjayk7CisgICAgYmluZFByb3BlcnR5KCJpc1JlcXVpcmVkIiwgJkFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQ6OmlzUmVxdWlyZWRHZXR0ZXJDYWxsYmFjayk7CisgICAgYmluZFByb3BlcnR5
KCJpc0ZvY3VzZWQiLCAmQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNGb2N1c2VkR2V0dGVyQ2Fs
bGJhY2spOworICAgIGJpbmRQcm9wZXJ0eSgiaXNGb2N1c2FibGUiLCAmQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudDo6aXNGb2N1c2FibGVHZXR0ZXJDYWxsYmFjayk7CisgICAgYmluZFByb3BlcnR5KCJp
c1NlbGVjdGVkIiwgJkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzU2VsZWN0ZWRHZXR0ZXJDYWxs
YmFjayk7CisgICAgYmluZFByb3BlcnR5KCJpc1NlbGVjdGFibGUiLCAmQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudDo6aXNTZWxlY3RhYmxlR2V0dGVyQ2FsbGJhY2spOworICAgIGJpbmRQcm9wZXJ0eSgi
aXNNdWx0aVNlbGVjdGFibGUiLCAmQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNNdWx0aVNlbGVj
dGFibGVHZXR0ZXJDYWxsYmFjayk7CisgICAgYmluZFByb3BlcnR5KCJpc0V4cGFuZGVkIiwgJkFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzRXhwYW5kZWRHZXR0ZXJDYWxsYmFjayk7CisgICAgYmlu
ZFByb3BlcnR5KCJpc0NoZWNrZWQiLCAmQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNDaGVja2Vk
R2V0dGVyQ2FsbGJhY2spOworICAgIGJpbmRQcm9wZXJ0eSgiaXNWaXNpYmxlIiwgJkFjY2Vzc2li
aWxpdHlVSUVsZW1lbnQ6OmlzVmlzaWJsZUdldHRlckNhbGxiYWNrKTsKKyAgICBiaW5kUHJvcGVy
dHkoImlzT2ZmU2NyZWVuIiwgJkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzT2ZmU2NyZWVuR2V0
dGVyQ2FsbGJhY2spOworICAgIGJpbmRQcm9wZXJ0eSgiaXNDb2xsYXBzZWQiLCAmQWNjZXNzaWJp
bGl0eVVJRWxlbWVudDo6aXNDb2xsYXBzZWRHZXR0ZXJDYWxsYmFjayk7CisgICAgYmluZFByb3Bl
cnR5KCJoYXNQb3B1cCIsICZBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpoYXNQb3B1cEdldHRlckNh
bGxiYWNrKTsKKyAgICBiaW5kUHJvcGVydHkoImlzVmFsaWQiLCAmQWNjZXNzaWJpbGl0eVVJRWxl
bWVudDo6aXNWYWxpZEdldHRlckNhbGxiYWNrKTsKKyAgICBiaW5kUHJvcGVydHkoIm9yaWVudGF0
aW9uIiwgJkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6Om9yaWVudGF0aW9uR2V0dGVyQ2FsbGJhY2sp
OworCisgICAgLy8KKyAgICAvLyBNZXRob2RzCisgICAgLy8KKwogICAgIGJpbmRNZXRob2QoImFs
bEF0dHJpYnV0ZXMiLCAmQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YWxsQXR0cmlidXRlc0NhbGxi
YWNrKTsKLSAgICBiaW5kTWV0aG9kKCJhdHRyaWJ1dGVzT2ZMaW5rZWRVSUVsZW1lbnRzIiwKLSAg
ICAgICAgICAgICAgICZBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphdHRyaWJ1dGVzT2ZMaW5rZWRV
SUVsZW1lbnRzQ2FsbGJhY2spOwotICAgIGJpbmRNZXRob2QoImF0dHJpYnV0ZXNPZkRvY3VtZW50
TGlua3MiLAotICAgICAgICAgICAgICAgJkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmF0dHJpYnV0
ZXNPZkRvY3VtZW50TGlua3NDYWxsYmFjayk7Ci0gICAgYmluZE1ldGhvZCgiYXR0cmlidXRlc09m
Q2hpbGRyZW4iLAotICAgICAgICAgICAgICAgJkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmF0dHJp
YnV0ZXNPZkNoaWxkcmVuQ2FsbGJhY2spOwotICAgIGJpbmRNZXRob2QoInBhcmFtZXRlcml6ZWRB
dHRyaWJ1dGVOYW1lcyIsCi0gICAgICAgICAgICAgICAmQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6
cGFyYW1ldHJpemVkQXR0cmlidXRlTmFtZXNDYWxsYmFjayk7CisgICAgYmluZE1ldGhvZCgiYXR0
cmlidXRlc09mTGlua2VkVUlFbGVtZW50cyIsICZBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphdHRy
aWJ1dGVzT2ZMaW5rZWRVSUVsZW1lbnRzQ2FsbGJhY2spOworICAgIGJpbmRNZXRob2QoImF0dHJp
YnV0ZXNPZkRvY3VtZW50TGlua3MiLCAmQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YXR0cmlidXRl
c09mRG9jdW1lbnRMaW5rc0NhbGxiYWNrKTsKKyAgICBiaW5kTWV0aG9kKCJhdHRyaWJ1dGVzT2ZD
aGlsZHJlbiIsICZBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphdHRyaWJ1dGVzT2ZDaGlsZHJlbkNh
bGxiYWNrKTsKICAgICBiaW5kTWV0aG9kKCJsaW5lRm9ySW5kZXgiLCAmQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudDo6bGluZUZvckluZGV4Q2FsbGJhY2spOwogICAgIGJpbmRNZXRob2QoImJvdW5kc0Zv
clJhbmdlIiwgJkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmJvdW5kc0ZvclJhbmdlQ2FsbGJhY2sp
OwogICAgIGJpbmRNZXRob2QoInN0cmluZ0ZvclJhbmdlIiwgJkFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQ6OnN0cmluZ0ZvclJhbmdlQ2FsbGJhY2spOwogICAgIGJpbmRNZXRob2QoImNoaWxkQXRJbmRl
eCIsICZBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpjaGlsZEF0SW5kZXhDYWxsYmFjayk7CiAgICAg
YmluZE1ldGhvZCgiZWxlbWVudEF0UG9pbnQiLCAmQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6ZWxl
bWVudEF0UG9pbnRDYWxsYmFjayk7Ci0gICAgYmluZE1ldGhvZCgiYXR0cmlidXRlc09mQ29sdW1u
SGVhZGVycyIsCi0gICAgICAgICAgICAgICAmQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YXR0cmli
dXRlc09mQ29sdW1uSGVhZGVyc0NhbGxiYWNrKTsKLSAgICBiaW5kTWV0aG9kKCJhdHRyaWJ1dGVz
T2ZSb3dIZWFkZXJzIiwKLSAgICAgICAgICAgICAgICZBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojph
dHRyaWJ1dGVzT2ZSb3dIZWFkZXJzQ2FsbGJhY2spOwotICAgIGJpbmRNZXRob2QoImF0dHJpYnV0
ZXNPZkNvbHVtbnMiLAotICAgICAgICAgICAgICAgJkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmF0
dHJpYnV0ZXNPZkNvbHVtbnNDYWxsYmFjayk7Ci0gICAgYmluZE1ldGhvZCgiYXR0cmlidXRlc09m
Um93cyIsCi0gICAgICAgICAgICAgICAmQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YXR0cmlidXRl
c09mUm93c0NhbGxiYWNrKTsKLSAgICBiaW5kTWV0aG9kKCJhdHRyaWJ1dGVzT2ZWaXNpYmxlQ2Vs
bHMiLAotICAgICAgICAgICAgICAgJkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmF0dHJpYnV0ZXNP
ZlZpc2libGVDZWxsc0NhbGxiYWNrKTsKLSAgICBiaW5kTWV0aG9kKCJhdHRyaWJ1dGVzT2ZIZWFk
ZXIiLAotICAgICAgICAgICAgICAgJkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmF0dHJpYnV0ZXNP
ZkhlYWRlckNhbGxiYWNrKTsKKyAgICBiaW5kTWV0aG9kKCJhdHRyaWJ1dGVzT2ZDb2x1bW5IZWFk
ZXJzIiwgJkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmF0dHJpYnV0ZXNPZkNvbHVtbkhlYWRlcnND
YWxsYmFjayk7CisgICAgYmluZE1ldGhvZCgiYXR0cmlidXRlc09mUm93SGVhZGVycyIsICZBY2Nl
c3NpYmlsaXR5VUlFbGVtZW50OjphdHRyaWJ1dGVzT2ZSb3dIZWFkZXJzQ2FsbGJhY2spOworICAg
IGJpbmRNZXRob2QoImF0dHJpYnV0ZXNPZkNvbHVtbnMiLCAmQWNjZXNzaWJpbGl0eVVJRWxlbWVu
dDo6YXR0cmlidXRlc09mQ29sdW1uc0NhbGxiYWNrKTsKKyAgICBiaW5kTWV0aG9kKCJhdHRyaWJ1
dGVzT2ZSb3dzIiwgJkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmF0dHJpYnV0ZXNPZlJvd3NDYWxs
YmFjayk7CisgICAgYmluZE1ldGhvZCgiYXR0cmlidXRlc09mVmlzaWJsZUNlbGxzIiwgJkFjY2Vz
c2liaWxpdHlVSUVsZW1lbnQ6OmF0dHJpYnV0ZXNPZlZpc2libGVDZWxsc0NhbGxiYWNrKTsKKyAg
ICBiaW5kTWV0aG9kKCJhdHRyaWJ1dGVzT2ZIZWFkZXIiLCAmQWNjZXNzaWJpbGl0eVVJRWxlbWVu
dDo6YXR0cmlidXRlc09mSGVhZGVyQ2FsbGJhY2spOwogICAgIGJpbmRNZXRob2QoImluZGV4SW5U
YWJsZSIsICZBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjppbmRleEluVGFibGVDYWxsYmFjayk7CiAg
ICAgYmluZE1ldGhvZCgicm93SW5kZXhSYW5nZSIsICZBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpy
b3dJbmRleFJhbmdlQ2FsbGJhY2spOwotICAgIGJpbmRNZXRob2QoImNvbHVtbkluZGV4UmFuZ2Ui
LAotICAgICAgICAgICAgICAgJkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmNvbHVtbkluZGV4UmFu
Z2VDYWxsYmFjayk7Ci0gICAgYmluZE1ldGhvZCgiY2VsbEZvckNvbHVtbkFuZFJvdyIsCi0gICAg
ICAgICAgICAgICAmQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6Y2VsbEZvckNvbHVtbkFuZFJvd0Nh
bGxiYWNrKTsKKyAgICBiaW5kTWV0aG9kKCJjb2x1bW5JbmRleFJhbmdlIiwgJkFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQ6OmNvbHVtbkluZGV4UmFuZ2VDYWxsYmFjayk7CisgICAgYmluZE1ldGhvZCgi
Y2VsbEZvckNvbHVtbkFuZFJvdyIsICZBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpjZWxsRm9yQ29s
dW1uQW5kUm93Q2FsbGJhY2spOwogICAgIGJpbmRNZXRob2QoInRpdGxlVUlFbGVtZW50IiwgJkFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnRpdGxlVUlFbGVtZW50Q2FsbGJhY2spOwotICAgIGJpbmRN
ZXRob2QoInNldFNlbGVjdGVkVGV4dFJhbmdlIiwKLSAgICAgICAgICAgICAgICZBY2Nlc3NpYmls
aXR5VUlFbGVtZW50OjpzZXRTZWxlY3RlZFRleHRSYW5nZUNhbGxiYWNrKTsKKyAgICBiaW5kTWV0
aG9kKCJzZXRTZWxlY3RlZFRleHRSYW5nZSIsICZBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzZXRT
ZWxlY3RlZFRleHRSYW5nZUNhbGxiYWNrKTsKICAgICBiaW5kTWV0aG9kKCJhdHRyaWJ1dGVWYWx1
ZSIsICZBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphdHRyaWJ1dGVWYWx1ZUNhbGxiYWNrKTsKLSAg
ICBiaW5kTWV0aG9kKCJpc0F0dHJpYnV0ZVNldHRhYmxlIiwKLSAgICAgICAgICAgICAgICZBY2Nl
c3NpYmlsaXR5VUlFbGVtZW50Ojppc0F0dHJpYnV0ZVNldHRhYmxlQ2FsbGJhY2spOwotICAgIGJp
bmRNZXRob2QoImlzQWN0aW9uU3VwcG9ydGVkIiwKLSAgICAgICAgICAgICAgICZBY2Nlc3NpYmls
aXR5VUlFbGVtZW50Ojppc0FjdGlvblN1cHBvcnRlZENhbGxiYWNrKTsKKyAgICBiaW5kTWV0aG9k
KCJpc0F0dHJpYnV0ZVNldHRhYmxlIiwgJkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzQXR0cmli
dXRlU2V0dGFibGVDYWxsYmFjayk7CisgICAgYmluZE1ldGhvZCgiaXNBY3Rpb25TdXBwb3J0ZWQi
LCAmQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNBY3Rpb25TdXBwb3J0ZWRDYWxsYmFjayk7CiAg
ICAgYmluZE1ldGhvZCgicGFyZW50RWxlbWVudCIsICZBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpw
YXJlbnRFbGVtZW50Q2FsbGJhY2spOwogICAgIGJpbmRNZXRob2QoImluY3JlbWVudCIsICZBY2Nl
c3NpYmlsaXR5VUlFbGVtZW50OjppbmNyZW1lbnRDYWxsYmFjayk7CiAgICAgYmluZE1ldGhvZCgi
ZGVjcmVtZW50IiwgJkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmRlY3JlbWVudENhbGxiYWNrKTsK
LQotICAgIGJpbmRQcm9wZXJ0eSgicm9sZSIsICZBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpyb2xl
R2V0dGVyQ2FsbGJhY2spOwotICAgIGJpbmRQcm9wZXJ0eSgic3Vicm9sZSIsICZtX3N1YnJvbGUp
OwotICAgIGJpbmRQcm9wZXJ0eSgidGl0bGUiLCAmQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6dGl0
bGVHZXR0ZXJDYWxsYmFjayk7Ci0gICAgYmluZFByb3BlcnR5KCJkZXNjcmlwdGlvbiIsCi0gICAg
ICAgICAgICAgICAgICZBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpkZXNjcmlwdGlvbkdldHRlckNh
bGxiYWNrKTsKLSAgICBiaW5kUHJvcGVydHkoImxhbmd1YWdlIiwgJm1fbGFuZ3VhZ2UpOwotICAg
IGJpbmRQcm9wZXJ0eSgieCIsICZtX3gpOwotICAgIGJpbmRQcm9wZXJ0eSgieSIsICZtX3kpOwot
ICAgIGJpbmRQcm9wZXJ0eSgid2lkdGgiLCAmbV93aWR0aCk7Ci0gICAgYmluZFByb3BlcnR5KCJo
ZWlnaHQiLCAmbV9oZWlnaHQpOwotICAgIGJpbmRQcm9wZXJ0eSgiY2xpY2tQb2ludFgiLCAmbV9j
bGlja1BvaW50WCk7Ci0gICAgYmluZFByb3BlcnR5KCJjbGlja1BvaW50WSIsICZtX2NsaWNrUG9p
bnRZKTsKLSAgICBiaW5kUHJvcGVydHkoImludFZhbHVlIiwgJm1faW50VmFsdWUpOwotICAgIGJp
bmRQcm9wZXJ0eSgibWluVmFsdWUiLCAmbV9taW5WYWx1ZSk7Ci0gICAgYmluZFByb3BlcnR5KCJt
YXhWYWx1ZSIsICZtX21heFZhbHVlKTsKLSAgICBiaW5kUHJvcGVydHkoImNoaWxkcmVuQ291bnQi
LAotICAgICAgICAgICAgICAgICAmQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6Y2hpbGRyZW5Db3Vu
dEdldHRlckNhbGxiYWNrKTsKLSAgICBiaW5kUHJvcGVydHkoImluc2VydGlvblBvaW50TGluZU51
bWJlciIsICZtX2luc2VydGlvblBvaW50TGluZU51bWJlcik7Ci0gICAgYmluZFByb3BlcnR5KCJz
ZWxlY3RlZFRleHRSYW5nZSIsICZtX3NlbGVjdGVkVGV4dFJhbmdlKTsKLSAgICBiaW5kUHJvcGVy
dHkoImlzRW5hYmxlZCIsICZBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojppc0VuYWJsZWRHZXR0ZXJD
YWxsYmFjayk7Ci0gICAgYmluZFByb3BlcnR5KCJpc1JlcXVpcmVkIiwgJm1faXNSZXF1aXJlZCk7
Ci0gICAgYmluZFByb3BlcnR5KCJpc1NlbGVjdGVkIiwgJkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6
OmlzU2VsZWN0ZWRHZXR0ZXJDYWxsYmFjayk7Ci0gICAgYmluZFByb3BlcnR5KCJ2YWx1ZURlc2Ny
aXB0aW9uIiwgJm1fdmFsdWVEZXNjcmlwdGlvbik7CisgICAgYmluZE1ldGhvZCgic2hvd01lbnUi
LCAmQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2hvd01lbnVDYWxsYmFjayk7CisgICAgYmluZE1l
dGhvZCgicHJlc3MiLCAmQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6cHJlc3NDYWxsYmFjayk7Cisg
ICAgYmluZE1ldGhvZCgiaXNFcXVhbCIsICZBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojppc0VxdWFs
Q2FsbGJhY2spOworICAgIGJpbmRNZXRob2QoImFkZE5vdGlmaWNhdGlvbkxpc3RlbmVyIiwgJkFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmFkZE5vdGlmaWNhdGlvbkxpc3RlbmVyQ2FsbGJhY2spOwor
ICAgIGJpbmRNZXRob2QoInJlbW92ZU5vdGlmaWNhdGlvbkxpc3RlbmVyIiwgJkFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQ6OnJlbW92ZU5vdGlmaWNhdGlvbkxpc3RlbmVyQ2FsbGJhY2spOworICAgIGJp
bmRNZXRob2QoInRha2VGb2N1cyIsICZBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojp0YWtlRm9jdXND
YWxsYmFjayk7CiAKICAgICBiaW5kRmFsbGJhY2tNZXRob2QoJkFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQ6OmZhbGxiYWNrQ2FsbGJhY2spOwogfQogCiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50KiBBY2Nl
c3NpYmlsaXR5VUlFbGVtZW50OjpnZXRDaGlsZEF0SW5kZXgodW5zaWduZWQgaW5kZXgpCiB7Ci0g
ICAgcmV0dXJuIG1fZmFjdG9yeS0+Y3JlYXRlKGFjY2Vzc2liaWxpdHlPYmplY3QoKS5jaGlsZEF0
KGluZGV4KSk7CisgICAgcmV0dXJuIG1fZmFjdG9yeS0+Z2V0T3JDcmVhdGUoYWNjZXNzaWJpbGl0
eU9iamVjdCgpLmNoaWxkQXQoaW5kZXgpKTsKK30KKworYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50Ojppc0VxdWFsKGNvbnN0IFdlYktpdDo6V2ViQWNjZXNzaWJpbGl0eU9iamVjdCYgb3RoZXIp
Cit7CisgICAgcmV0dXJuIGFjY2Vzc2liaWxpdHlPYmplY3QoKS5lcXVhbHMob3RoZXIpOworfQor
Cit2b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6Om5vdGlmaWNhdGlvblJlY2VpdmVkKGNvbnN0
IGNoYXIqIG5vdGlmaWNhdGlvbk5hbWUpCit7CisgICAgc2l6ZV90IGNhbGxiYWNrQ291bnQgPSBt
X25vdGlmaWNhdGlvbkNhbGxiYWNrcy5zaXplKCk7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkg
PCBjYWxsYmFja0NvdW50OyBpKyspIHsKKyAgICAgICAgQ3BwVmFyaWFudCBub3RpZmljYXRpb25O
YW1lQXJndW1lbnQ7CisgICAgICAgIG5vdGlmaWNhdGlvbk5hbWVBcmd1bWVudC5zZXQobm90aWZp
Y2F0aW9uTmFtZSk7CisgICAgICAgIENwcFZhcmlhbnQgaW52b2tlUmVzdWx0OworICAgICAgICBt
X25vdGlmaWNhdGlvbkNhbGxiYWNrc1tpXS5pbnZva2VEZWZhdWx0KCZub3RpZmljYXRpb25OYW1l
QXJndW1lbnQsIDEsIGludm9rZVJlc3VsdCk7CisgICAgfQorfQorCisvLworLy8gUHJvcGVydGll
cworLy8KKwordm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpyb2xlR2V0dGVyQ2FsbGJhY2so
Q3BwVmFyaWFudCogcmVzdWx0KQoreworICAgIHJlc3VsdC0+c2V0KGdldFJvbGUoYWNjZXNzaWJp
bGl0eU9iamVjdCgpKSk7Cit9CisKK3ZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6dGl0bGVH
ZXR0ZXJDYWxsYmFjayhDcHBWYXJpYW50KiByZXN1bHQpCit7CisgICAgcmVzdWx0LT5zZXQoZ2V0
VGl0bGUoYWNjZXNzaWJpbGl0eU9iamVjdCgpKSk7Cit9CisKK3ZvaWQgQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudDo6ZGVzY3JpcHRpb25HZXR0ZXJDYWxsYmFjayhDcHBWYXJpYW50KiByZXN1bHQpCit7
CisgICAgcmVzdWx0LT5zZXQoZ2V0RGVzY3JpcHRpb24oYWNjZXNzaWJpbGl0eU9iamVjdCgpKSk7
Cit9CisKK3ZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aGVscFRleHRHZXR0ZXJDYWxsYmFj
ayhDcHBWYXJpYW50KiByZXN1bHQpCit7CisgICAgcmVzdWx0LT5zZXQoZ2V0SGVscFRleHQoYWNj
ZXNzaWJpbGl0eU9iamVjdCgpKSk7Cit9CisKK3ZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6
c3RyaW5nVmFsdWVHZXR0ZXJDYWxsYmFjayhDcHBWYXJpYW50KiByZXN1bHQpCit7CisgICAgcmVz
dWx0LT5zZXQoZ2V0U3RyaW5nVmFsdWUoYWNjZXNzaWJpbGl0eU9iamVjdCgpKSk7Cit9CisKK3Zv
aWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6eEdldHRlckNhbGxiYWNrKENwcFZhcmlhbnQqIHJl
c3VsdCkKK3sKKyAgICByZXN1bHQtPnNldChhY2Nlc3NpYmlsaXR5T2JqZWN0KCkuYm91bmRpbmdC
b3hSZWN0KCkueCk7Cit9CisKK3ZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6eUdldHRlckNh
bGxiYWNrKENwcFZhcmlhbnQqIHJlc3VsdCkKK3sKKyAgICByZXN1bHQtPnNldChhY2Nlc3NpYmls
aXR5T2JqZWN0KCkuYm91bmRpbmdCb3hSZWN0KCkueSk7Cit9CisKK3ZvaWQgQWNjZXNzaWJpbGl0
eVVJRWxlbWVudDo6d2lkdGhHZXR0ZXJDYWxsYmFjayhDcHBWYXJpYW50KiByZXN1bHQpCit7Cisg
ICAgcmVzdWx0LT5zZXQoYWNjZXNzaWJpbGl0eU9iamVjdCgpLmJvdW5kaW5nQm94UmVjdCgpLndp
ZHRoKTsKK30KKwordm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpoZWlnaHRHZXR0ZXJDYWxs
YmFjayhDcHBWYXJpYW50KiByZXN1bHQpCit7CisgICAgcmVzdWx0LT5zZXQoYWNjZXNzaWJpbGl0
eU9iamVjdCgpLmJvdW5kaW5nQm94UmVjdCgpLmhlaWdodCk7Cit9CisKK3ZvaWQgQWNjZXNzaWJp
bGl0eVVJRWxlbWVudDo6aW50VmFsdWVHZXR0ZXJDYWxsYmFjayhDcHBWYXJpYW50KiByZXN1bHQp
Cit7CisgICAgcmVzdWx0LT5zZXQoYWNjZXNzaWJpbGl0eU9iamVjdCgpLnZhbHVlRm9yUmFuZ2Uo
KSk7Cit9CisKK3ZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6bWluVmFsdWVHZXR0ZXJDYWxs
YmFjayhDcHBWYXJpYW50KiByZXN1bHQpCit7CisgICAgcmVzdWx0LT5zZXQoYWNjZXNzaWJpbGl0
eU9iamVjdCgpLm1pblZhbHVlRm9yUmFuZ2UoKSk7Cit9CisKK3ZvaWQgQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudDo6bWF4VmFsdWVHZXR0ZXJDYWxsYmFjayhDcHBWYXJpYW50KiByZXN1bHQpCit7Cisg
ICAgcmVzdWx0LT5zZXQoYWNjZXNzaWJpbGl0eU9iamVjdCgpLm1heFZhbHVlRm9yUmFuZ2UoKSk7
Cit9CisKK3ZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6Y2hpbGRyZW5Db3VudEdldHRlckNh
bGxiYWNrKENwcFZhcmlhbnQqIHJlc3VsdCkKK3sKKyAgICBpbnQgY291bnQgPSAxOyAvLyBSb290
IG9iamVjdCBhbHdheXMgaGFzIG9ubHkgb25lIGNoaWxkLCB0aGUgV2ViVmlldy4KKyAgICBpZiAo
IWlzUm9vdCgpKQorICAgICAgICBjb3VudCA9IGFjY2Vzc2liaWxpdHlPYmplY3QoKS5jaGlsZENv
dW50KCk7CisgICAgcmVzdWx0LT5zZXQoY291bnQpOworfQorCit2b2lkIEFjY2Vzc2liaWxpdHlV
SUVsZW1lbnQ6Omluc2VydGlvblBvaW50TGluZU51bWJlckdldHRlckNhbGxiYWNrKENwcFZhcmlh
bnQqIHJlc3VsdCkKK3sKKyAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRoaXMuCisgICAgcmVzdWx0
LT5zZXQoMCk7Cit9CisKK3ZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2VsZWN0ZWRUZXh0
UmFuZ2VHZXR0ZXJDYWxsYmFjayhDcHBWYXJpYW50KiByZXN1bHQpCit7CisgICAgLy8gRklYTUU6
IEltcGxlbWVudCB0aGlzLgorICAgIHJlc3VsdC0+c2V0KHN0ZDo6c3RyaW5nKCkpOworfQorCit2
b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzRW5hYmxlZEdldHRlckNhbGxiYWNrKENwcFZh
cmlhbnQqIHJlc3VsdCkKK3sKKyAgICByZXN1bHQtPnNldChhY2Nlc3NpYmlsaXR5T2JqZWN0KCku
aXNFbmFibGVkKCkpOworfQorCit2b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzUmVxdWly
ZWRHZXR0ZXJDYWxsYmFjayhDcHBWYXJpYW50KiByZXN1bHQpCit7CisgICAgcmVzdWx0LT5zZXQo
YWNjZXNzaWJpbGl0eU9iamVjdCgpLmlzUmVxdWlyZWQoKSk7Cit9CisKK3ZvaWQgQWNjZXNzaWJp
bGl0eVVJRWxlbWVudDo6aXNGb2N1c2VkR2V0dGVyQ2FsbGJhY2soQ3BwVmFyaWFudCogcmVzdWx0
KQoreworICAgIHJlc3VsdC0+c2V0KGFjY2Vzc2liaWxpdHlPYmplY3QoKS5pc0ZvY3VzZWQoKSk7
Cit9CisKK3ZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNGb2N1c2FibGVHZXR0ZXJDYWxs
YmFjayhDcHBWYXJpYW50KiByZXN1bHQpCit7CisgICAgcmVzdWx0LT5zZXQoYWNjZXNzaWJpbGl0
eU9iamVjdCgpLmNhblNldEZvY3VzQXR0cmlidXRlKCkpOwogfQogCit2b2lkIEFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQ6OmlzU2VsZWN0ZWRHZXR0ZXJDYWxsYmFjayhDcHBWYXJpYW50KiByZXN1bHQp
Cit7CisgICAgcmVzdWx0LT5zZXQoYWNjZXNzaWJpbGl0eU9iamVjdCgpLmlzU2VsZWN0ZWQoKSk7
Cit9CisKK3ZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNTZWxlY3RhYmxlR2V0dGVyQ2Fs
bGJhY2soQ3BwVmFyaWFudCogcmVzdWx0KQoreworICAgIHJlc3VsdC0+c2V0KGFjY2Vzc2liaWxp
dHlPYmplY3QoKS5jYW5TZXRTZWxlY3RlZEF0dHJpYnV0ZSgpKTsKK30KKwordm9pZCBBY2Nlc3Np
YmlsaXR5VUlFbGVtZW50Ojppc011bHRpU2VsZWN0YWJsZUdldHRlckNhbGxiYWNrKENwcFZhcmlh
bnQqIHJlc3VsdCkKK3sKKyAgICByZXN1bHQtPnNldChhY2Nlc3NpYmlsaXR5T2JqZWN0KCkuaXNN
dWx0aVNlbGVjdGFibGUoKSk7Cit9CisKK3ZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNF
eHBhbmRlZEdldHRlckNhbGxiYWNrKENwcFZhcmlhbnQqIHJlc3VsdCkKK3sKKyAgICByZXN1bHQt
PnNldCghYWNjZXNzaWJpbGl0eU9iamVjdCgpLmlzQ29sbGFwc2VkKCkpOworfQorCit2b2lkIEFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzQ2hlY2tlZEdldHRlckNhbGxiYWNrKENwcFZhcmlhbnQq
IHJlc3VsdCkKK3sKKyAgICByZXN1bHQtPnNldChhY2Nlc3NpYmlsaXR5T2JqZWN0KCkuaXNDaGVj
a2VkKCkpOworfQorCit2b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzVmlzaWJsZUdldHRl
ckNhbGxiYWNrKENwcFZhcmlhbnQqIHJlc3VsdCkKK3sKKyAgICByZXN1bHQtPnNldChhY2Nlc3Np
YmlsaXR5T2JqZWN0KCkuaXNWaXNpYmxlKCkpOworfQorCit2b2lkIEFjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQ6OmlzT2ZmU2NyZWVuR2V0dGVyQ2FsbGJhY2soQ3BwVmFyaWFudCogcmVzdWx0KQorewor
ICAgIHJlc3VsdC0+c2V0KGFjY2Vzc2liaWxpdHlPYmplY3QoKS5pc09mZlNjcmVlbigpKTsKK30K
Kwordm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojppc0NvbGxhcHNlZEdldHRlckNhbGxiYWNr
KENwcFZhcmlhbnQqIHJlc3VsdCkKK3sKKyAgICByZXN1bHQtPnNldChhY2Nlc3NpYmlsaXR5T2Jq
ZWN0KCkuaXNDb2xsYXBzZWQoKSk7Cit9CisKK3ZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6
aGFzUG9wdXBHZXR0ZXJDYWxsYmFjayhDcHBWYXJpYW50KiByZXN1bHQpCit7CisgICAgcmVzdWx0
LT5zZXQoYWNjZXNzaWJpbGl0eU9iamVjdCgpLmFyaWFIYXNQb3B1cCgpKTsKK30KKwordm9pZCBB
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojppc1ZhbGlkR2V0dGVyQ2FsbGJhY2soQ3BwVmFyaWFudCog
cmVzdWx0KQoreworICAgIHJlc3VsdC0+c2V0KGFjY2Vzc2liaWxpdHlPYmplY3QoKS5pc1ZhbGlk
KCkpOworfQorCit2b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6Om9yaWVudGF0aW9uR2V0dGVy
Q2FsbGJhY2soQ3BwVmFyaWFudCogcmVzdWx0KQoreworICAgIHJlc3VsdC0+c2V0KGdldE9yaWVu
dGF0aW9uKGFjY2Vzc2liaWxpdHlPYmplY3QoKSkpOworfQorCisvLworLy8gTWV0aG9kcworLy8K
Kwogdm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphbGxBdHRyaWJ1dGVzQ2FsbGJhY2soY29u
c3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCogcmVzdWx0KQogewogICAgIHJlc3VsdC0+
c2V0KGdldEF0dHJpYnV0ZXMoYWNjZXNzaWJpbGl0eU9iamVjdCgpKSk7CkBAIC01MDMsNDYgKzcw
OCw1NiBAQCB2b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmRlY3JlbWVudENhCiAgICAgcmVz
dWx0LT5zZXROdWxsKCk7CiB9CiAKLXZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6ZmFsbGJh
Y2tDYWxsYmFjayhjb25zdCBDcHBBcmd1bWVudExpc3QgJiwgQ3BwVmFyaWFudCogcmVzdWx0KQor
dm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzaG93TWVudUNhbGxiYWNrKGNvbnN0IENwcEFy
Z3VtZW50TGlzdCYsIENwcFZhcmlhbnQqIHJlc3VsdCkKIHsKLSAgICAvLyBGSVhNRTogSW1wbGVt
ZW50IHRoaXMuCiAgICAgcmVzdWx0LT5zZXROdWxsKCk7CiB9CiAKLXZvaWQgQWNjZXNzaWJpbGl0
eVVJRWxlbWVudDo6Y2hpbGRyZW5Db3VudEdldHRlckNhbGxiYWNrKENwcFZhcmlhbnQqIHJlc3Vs
dCkKK3ZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6cHJlc3NDYWxsYmFjayhjb25zdCBDcHBB
cmd1bWVudExpc3QmLCBDcHBWYXJpYW50KiByZXN1bHQpCiB7Ci0gICAgaW50IGNvdW50ID0gMTsg
Ly8gUm9vdCBvYmplY3QgYWx3YXlzIGhhcyBvbmx5IG9uZSBjaGlsZCwgdGhlIFdlYlZpZXcuCi0g
ICAgaWYgKCFpc1Jvb3QoKSkKLSAgICAgICAgY291bnQgPSBhY2Nlc3NpYmlsaXR5T2JqZWN0KCku
Y2hpbGRDb3VudCgpOwotICAgIHJlc3VsdC0+c2V0KGNvdW50KTsKKyAgICBhY2Nlc3NpYmlsaXR5
T2JqZWN0KCkucGVyZm9ybURlZmF1bHRBY3Rpb24oKTsKKyAgICByZXN1bHQtPnNldE51bGwoKTsK
IH0KIAotdm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpkZXNjcmlwdGlvbkdldHRlckNhbGxi
YWNrKENwcFZhcmlhbnQqIHJlc3VsdCkKK3ZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNF
cXVhbENhbGxiYWNrKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYgYXJndW1lbnRzLCBDcHBWYXJpYW50
KiByZXN1bHQpCiB7Ci0gICAgcmVzdWx0LT5zZXQoZ2V0RGVzY3JpcHRpb24oYWNjZXNzaWJpbGl0
eU9iamVjdCgpKSk7CisgICAgaWYgKGFyZ3VtZW50cy5zaXplKCkgPCAxIHx8ICFhcmd1bWVudHNb
MF0uaXNPYmplY3QoKSkgeworICAgICAgICByZXN1bHQtPnNldE51bGwoKTsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKworICAgIHJlc3VsdC0+c2V0KGFyZ3VtZW50c1swXS5pc0VxdWFsKCpnZXRB
c0NwcFZhcmlhbnQoKSkpOwogfQogCi12b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzRW5h
YmxlZEdldHRlckNhbGxiYWNrKENwcFZhcmlhbnQqIHJlc3VsdCkKK3ZvaWQgQWNjZXNzaWJpbGl0
eVVJRWxlbWVudDo6YWRkTm90aWZpY2F0aW9uTGlzdGVuZXJDYWxsYmFjayhjb25zdCBDcHBBcmd1
bWVudExpc3QmIGFyZ3VtZW50cywgQ3BwVmFyaWFudCogcmVzdWx0KQogewotICAgIHJlc3VsdC0+
c2V0KGFjY2Vzc2liaWxpdHlPYmplY3QoKS5pc0VuYWJsZWQoKSk7CisgICAgaWYgKGFyZ3VtZW50
cy5zaXplKCkgPCAxIHx8ICFhcmd1bWVudHNbMF0uaXNPYmplY3QoKSkgeworICAgICAgICByZXN1
bHQtPnNldE51bGwoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIG1fbm90aWZpY2F0
aW9uQ2FsbGJhY2tzLnB1c2hfYmFjayhhcmd1bWVudHNbMF0pOworICAgIHJlc3VsdC0+c2V0TnVs
bCgpOwogfQogCi12b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzU2VsZWN0ZWRHZXR0ZXJD
YWxsYmFjayhDcHBWYXJpYW50KiByZXN1bHQpCit2b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6
OnJlbW92ZU5vdGlmaWNhdGlvbkxpc3RlbmVyQ2FsbGJhY2soY29uc3QgQ3BwQXJndW1lbnRMaXN0
JiwgQ3BwVmFyaWFudCogcmVzdWx0KQogeworICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdGhpcy4K
ICAgICByZXN1bHQtPnNldE51bGwoKTsKIH0KIAotdm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50
Ojpyb2xlR2V0dGVyQ2FsbGJhY2soQ3BwVmFyaWFudCogcmVzdWx0KQordm9pZCBBY2Nlc3NpYmls
aXR5VUlFbGVtZW50Ojp0YWtlRm9jdXNDYWxsYmFjayhjb25zdCBDcHBBcmd1bWVudExpc3QmLCBD
cHBWYXJpYW50KiByZXN1bHQpCiB7Ci0gICAgcmVzdWx0LT5zZXQoZ2V0Um9sZShhY2Nlc3NpYmls
aXR5T2JqZWN0KCkpKTsKKyAgICBhY2Nlc3NpYmlsaXR5T2JqZWN0KCkuc2V0Rm9jdXNlZCh0cnVl
KTsKKyAgICByZXN1bHQtPnNldE51bGwoKTsKIH0KIAotdm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50Ojp0aXRsZUdldHRlckNhbGxiYWNrKENwcFZhcmlhbnQqIHJlc3VsdCkKK3ZvaWQgQWNjZXNz
aWJpbGl0eVVJRWxlbWVudDo6ZmFsbGJhY2tDYWxsYmFjayhjb25zdCBDcHBBcmd1bWVudExpc3Qg
JiwgQ3BwVmFyaWFudCogcmVzdWx0KQogewotICAgIHJlc3VsdC0+c2V0KGdldFRpdGxlKGFjY2Vz
c2liaWxpdHlPYmplY3QoKSkpOworICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdGhpcy4KKyAgICBy
ZXN1bHQtPnNldE51bGwoKTsKIH0KIAotCiBSb290QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6Um9v
dEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQoY29uc3QgV2ViQWNjZXNzaWJpbGl0eU9iamVjdCAmb2Jq
ZWN0LCBGYWN0b3J5ICpmYWN0b3J5KQogICAgIDogQWNjZXNzaWJpbGl0eVVJRWxlbWVudChvYmpl
Y3QsIGZhY3RvcnkpIHsgfQogCkBAIC01NTEsNyArNzY2LDcgQEAgQWNjZXNzaWJpbGl0eVVJRWxl
bWVudCogUm9vdEFjY2Vzc2liaWxpdAogICAgIGlmIChpbmRleCkKICAgICAgICAgcmV0dXJuIDA7
CiAKLSAgICByZXR1cm4gZmFjdG9yeSgpLT5jcmVhdGUoYWNjZXNzaWJpbGl0eU9iamVjdCgpKTsK
KyAgICByZXR1cm4gZmFjdG9yeSgpLT5nZXRPckNyZWF0ZShhY2Nlc3NpYmlsaXR5T2JqZWN0KCkp
OwogfQogCiAKQEAgLTU2NywxMSArNzgyLDE3IEBAIHZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVu
dExpc3Q6OmNsZWFyKCkKICAgICBtX2VsZW1lbnRzLmNsZWFyKCk7CiB9CiAKLUFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQqIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnRMaXN0OjpjcmVhdGUoY29uc3QgV2Vi
QWNjZXNzaWJpbGl0eU9iamVjdCYgb2JqZWN0KQorQWNjZXNzaWJpbGl0eVVJRWxlbWVudCogQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudExpc3Q6OmdldE9yQ3JlYXRlKGNvbnN0IFdlYkFjY2Vzc2liaWxp
dHlPYmplY3QmIG9iamVjdCkKIHsKICAgICBpZiAob2JqZWN0LmlzTnVsbCgpKQogICAgICAgICBy
ZXR1cm4gMDsKIAorICAgIHNpemVfdCBlbGVtZW50Q291bnQgPSBtX2VsZW1lbnRzLnNpemUoKTsK
KyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGVsZW1lbnRDb3VudDsgaSsrKSB7CisgICAgICAg
IGlmIChtX2VsZW1lbnRzW2ldLT5pc0VxdWFsKG9iamVjdCkpCisgICAgICAgICAgICByZXR1cm4g
bV9lbGVtZW50c1tpXTsKKyAgICB9CisKICAgICBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50KiBlbGVt
ZW50ID0gbmV3IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQob2JqZWN0LCB0aGlzKTsKICAgICBtX2Vs
ZW1lbnRzLmFwcGVuZChlbGVtZW50KTsKICAgICByZXR1cm4gZWxlbWVudDsKSW5kZXg6IFRvb2xz
L0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9BY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50LmgJKHJldmlzaW9uIDk3MDk1KQorKysgVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0v
QWNjZXNzaWJpbGl0eVVJRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC00MCwyMCArNDAsNTYg
QEAgcHVibGljOgogICAgIGNsYXNzIEZhY3RvcnkgewogICAgIHB1YmxpYzoKICAgICAgICAgdmly
dHVhbCB+RmFjdG9yeSgpIHsgfQotICAgICAgICB2aXJ0dWFsIEFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQqIGNyZWF0ZShjb25zdCBXZWJLaXQ6OldlYkFjY2Vzc2liaWxpdHlPYmplY3QmKSA9IDA7Cisg
ICAgICAgIHZpcnR1YWwgQWNjZXNzaWJpbGl0eVVJRWxlbWVudCogZ2V0T3JDcmVhdGUoY29uc3Qg
V2ViS2l0OjpXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0JikgPSAwOwogICAgIH07CiAKICAgICBBY2Nl
c3NpYmlsaXR5VUlFbGVtZW50KGNvbnN0IFdlYktpdDo6V2ViQWNjZXNzaWJpbGl0eU9iamVjdCYs
IEZhY3RvcnkqKTsKIAogICAgIHZpcnR1YWwgQWNjZXNzaWJpbGl0eVVJRWxlbWVudCogZ2V0Q2hp
bGRBdEluZGV4KHVuc2lnbmVkKTsKICAgICB2aXJ0dWFsIGJvb2wgaXNSb290KCkgY29uc3QgeyBy
ZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNFcXVhbChjb25zdCBXZWJLaXQ6Oldl
YkFjY2Vzc2liaWxpdHlPYmplY3QmKTsKKworICAgIHZpcnR1YWwgdm9pZCBub3RpZmljYXRpb25S
ZWNlaXZlZChjb25zdCBjaGFyICpub3RpZmljYXRpb25OYW1lKTsKIAogcHJvdGVjdGVkOgogICAg
IGNvbnN0IFdlYktpdDo6V2ViQWNjZXNzaWJpbGl0eU9iamVjdCYgYWNjZXNzaWJpbGl0eU9iamVj
dCgpIGNvbnN0IHsgcmV0dXJuIG1fYWNjZXNzaWJpbGl0eU9iamVjdDsgfQorCiAgICAgRmFjdG9y
eSogZmFjdG9yeSgpIGNvbnN0IHsgcmV0dXJuIG1fZmFjdG9yeTsgfQogCiBwcml2YXRlOgotICAg
IC8vIEJvdW5kIG1ldGhvZHMgYW5kIHByb3BlcnRpZXMuCisgICAgLy8gQm91bmQgcHJvcGVydGll
cy4KKyAgICB2b2lkIHJvbGVHZXR0ZXJDYWxsYmFjayhDcHBWYXJpYW50Kik7CisgICAgdm9pZCB0
aXRsZUdldHRlckNhbGxiYWNrKENwcFZhcmlhbnQqKTsKKyAgICB2b2lkIGRlc2NyaXB0aW9uR2V0
dGVyQ2FsbGJhY2soQ3BwVmFyaWFudCopOworICAgIHZvaWQgaGVscFRleHRHZXR0ZXJDYWxsYmFj
ayhDcHBWYXJpYW50Kik7CisgICAgdm9pZCBzdHJpbmdWYWx1ZUdldHRlckNhbGxiYWNrKENwcFZh
cmlhbnQqKTsKKyAgICB2b2lkIHhHZXR0ZXJDYWxsYmFjayhDcHBWYXJpYW50Kik7CisgICAgdm9p
ZCB5R2V0dGVyQ2FsbGJhY2soQ3BwVmFyaWFudCopOworICAgIHZvaWQgd2lkdGhHZXR0ZXJDYWxs
YmFjayhDcHBWYXJpYW50Kik7CisgICAgdm9pZCBoZWlnaHRHZXR0ZXJDYWxsYmFjayhDcHBWYXJp
YW50Kik7CisgICAgdm9pZCBpbnRWYWx1ZUdldHRlckNhbGxiYWNrKENwcFZhcmlhbnQqKTsKKyAg
ICB2b2lkIG1pblZhbHVlR2V0dGVyQ2FsbGJhY2soQ3BwVmFyaWFudCopOworICAgIHZvaWQgbWF4
VmFsdWVHZXR0ZXJDYWxsYmFjayhDcHBWYXJpYW50Kik7CisgICAgdm9pZCBjaGlsZHJlbkNvdW50
R2V0dGVyQ2FsbGJhY2soQ3BwVmFyaWFudCopOworICAgIHZvaWQgaW5zZXJ0aW9uUG9pbnRMaW5l
TnVtYmVyR2V0dGVyQ2FsbGJhY2soQ3BwVmFyaWFudCopOworICAgIHZvaWQgc2VsZWN0ZWRUZXh0
UmFuZ2VHZXR0ZXJDYWxsYmFjayhDcHBWYXJpYW50Kik7CisgICAgdm9pZCBpc0VuYWJsZWRHZXR0
ZXJDYWxsYmFjayhDcHBWYXJpYW50Kik7CisgICAgdm9pZCBpc1JlcXVpcmVkR2V0dGVyQ2FsbGJh
Y2soQ3BwVmFyaWFudCopOworICAgIHZvaWQgaXNGb2N1c2VkR2V0dGVyQ2FsbGJhY2soQ3BwVmFy
aWFudCopOworICAgIHZvaWQgaXNGb2N1c2FibGVHZXR0ZXJDYWxsYmFjayhDcHBWYXJpYW50Kik7
CisgICAgdm9pZCBpc1NlbGVjdGVkR2V0dGVyQ2FsbGJhY2soQ3BwVmFyaWFudCopOworICAgIHZv
aWQgaXNTZWxlY3RhYmxlR2V0dGVyQ2FsbGJhY2soQ3BwVmFyaWFudCopOworICAgIHZvaWQgaXNN
dWx0aVNlbGVjdGFibGVHZXR0ZXJDYWxsYmFjayhDcHBWYXJpYW50Kik7CisgICAgdm9pZCBpc0V4
cGFuZGVkR2V0dGVyQ2FsbGJhY2soQ3BwVmFyaWFudCopOworICAgIHZvaWQgaXNDaGVja2VkR2V0
dGVyQ2FsbGJhY2soQ3BwVmFyaWFudCopOworICAgIHZvaWQgaXNWaXNpYmxlR2V0dGVyQ2FsbGJh
Y2soQ3BwVmFyaWFudCopOworICAgIHZvaWQgaXNPZmZTY3JlZW5HZXR0ZXJDYWxsYmFjayhDcHBW
YXJpYW50Kik7CisgICAgdm9pZCBpc0NvbGxhcHNlZEdldHRlckNhbGxiYWNrKENwcFZhcmlhbnQq
KTsKKyAgICB2b2lkIGhhc1BvcHVwR2V0dGVyQ2FsbGJhY2soQ3BwVmFyaWFudCopOworICAgIHZv
aWQgaXNWYWxpZEdldHRlckNhbGxiYWNrKENwcFZhcmlhbnQqKTsKKyAgICB2b2lkIG9yaWVudGF0
aW9uR2V0dGVyQ2FsbGJhY2soQ3BwVmFyaWFudCopOworCisgICAgLy8gQm91bmQgbWV0aG9kcy4K
ICAgICB2b2lkIGFsbEF0dHJpYnV0ZXNDYWxsYmFjayhjb25zdCBDcHBBcmd1bWVudExpc3QmLCBD
cHBWYXJpYW50Kik7CiAgICAgdm9pZCBhdHRyaWJ1dGVzT2ZMaW5rZWRVSUVsZW1lbnRzQ2FsbGJh
Y2soY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOwogICAgIHZvaWQgYXR0cmli
dXRlc09mRG9jdW1lbnRMaW5rc0NhbGxiYWNrKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZh
cmlhbnQqKTsKQEAgLTgyLDM0ICsxMTgsMTggQEAgcHJpdmF0ZToKICAgICB2b2lkIHBhcmVudEVs
ZW1lbnRDYWxsYmFjayhjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7CiAgICAg
dm9pZCBpbmNyZW1lbnRDYWxsYmFjayhjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50
Kik7CiAgICAgdm9pZCBkZWNyZW1lbnRDYWxsYmFjayhjb25zdCBDcHBBcmd1bWVudExpc3QmLCBD
cHBWYXJpYW50Kik7Ci0gICAgdm9pZCBmYWxsYmFja0NhbGxiYWNrKGNvbnN0IENwcEFyZ3VtZW50
TGlzdCYsIENwcFZhcmlhbnQqKTsKKyAgICB2b2lkIHNob3dNZW51Q2FsbGJhY2soY29uc3QgQ3Bw
QXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOworICAgIHZvaWQgcHJlc3NDYWxsYmFjayhjb25z
dCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7CisgICAgdm9pZCBpc0VxdWFsQ2FsbGJh
Y2soY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOworICAgIHZvaWQgYWRkTm90
aWZpY2F0aW9uTGlzdGVuZXJDYWxsYmFjayhjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJp
YW50Kik7CisgICAgdm9pZCByZW1vdmVOb3RpZmljYXRpb25MaXN0ZW5lckNhbGxiYWNrKGNvbnN0
IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKKyAgICB2b2lkIHRha2VGb2N1c0NhbGxi
YWNrKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKIAotICAgIHZvaWQgY2hp
bGRyZW5Db3VudEdldHRlckNhbGxiYWNrKENwcFZhcmlhbnQqKTsKLSAgICB2b2lkIGRlc2NyaXB0
aW9uR2V0dGVyQ2FsbGJhY2soQ3BwVmFyaWFudCopOwotICAgIHZvaWQgaXNFbmFibGVkR2V0dGVy
Q2FsbGJhY2soQ3BwVmFyaWFudCopOwotICAgIHZvaWQgaXNTZWxlY3RlZEdldHRlckNhbGxiYWNr
KENwcFZhcmlhbnQqKTsKLSAgICB2b2lkIHJvbGVHZXR0ZXJDYWxsYmFjayhDcHBWYXJpYW50Kik7
Ci0gICAgdm9pZCB0aXRsZUdldHRlckNhbGxiYWNrKENwcFZhcmlhbnQqKTsKLQotICAgIENwcFZh
cmlhbnQgbV9zdWJyb2xlOwotICAgIENwcFZhcmlhbnQgbV9sYW5ndWFnZTsKLSAgICBDcHBWYXJp
YW50IG1feDsKLSAgICBDcHBWYXJpYW50IG1feTsKLSAgICBDcHBWYXJpYW50IG1fd2lkdGg7Ci0g
ICAgQ3BwVmFyaWFudCBtX2hlaWdodDsKLSAgICBDcHBWYXJpYW50IG1fY2xpY2tQb2ludFg7Ci0g
ICAgQ3BwVmFyaWFudCBtX2NsaWNrUG9pbnRZOwotICAgIENwcFZhcmlhbnQgbV9pbnRWYWx1ZTsK
LSAgICBDcHBWYXJpYW50IG1fbWluVmFsdWU7Ci0gICAgQ3BwVmFyaWFudCBtX21heFZhbHVlOwot
ICAgIENwcFZhcmlhbnQgbV9jaGlsZHJlbkNvdW50OwotICAgIENwcFZhcmlhbnQgbV9pbnNlcnRp
b25Qb2ludExpbmVOdW1iZXI7Ci0gICAgQ3BwVmFyaWFudCBtX3NlbGVjdGVkVGV4dFJhbmdlOwot
ICAgIENwcFZhcmlhbnQgbV9pc1JlcXVpcmVkOwotICAgIENwcFZhcmlhbnQgbV92YWx1ZURlc2Ny
aXB0aW9uOworICAgIHZvaWQgZmFsbGJhY2tDYWxsYmFjayhjb25zdCBDcHBBcmd1bWVudExpc3Qm
LCBDcHBWYXJpYW50Kik7CiAKICAgICBXZWJLaXQ6OldlYkFjY2Vzc2liaWxpdHlPYmplY3QgbV9h
Y2Nlc3NpYmlsaXR5T2JqZWN0OwogICAgIEZhY3RvcnkqIG1fZmFjdG9yeTsKKyAgICBzdGQ6OnZl
Y3RvcjxDcHBWYXJpYW50PiBtX25vdGlmaWNhdGlvbkNhbGxiYWNrczsKIH07CiAKIApAQCAtMTMx
LDcgKzE1MSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5BY2Nlc3NpYmlsaXR5VUlFbGVtZW50
TGlzdCgpOwogCiAgICAgdm9pZCBjbGVhcigpOwotICAgIHZpcnR1YWwgQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudCogY3JlYXRlKGNvbnN0IFdlYktpdDo6V2ViQWNjZXNzaWJpbGl0eU9iamVjdCYpOwor
ICAgIHZpcnR1YWwgQWNjZXNzaWJpbGl0eVVJRWxlbWVudCogZ2V0T3JDcmVhdGUoY29uc3QgV2Vi
S2l0OjpXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0Jik7CiAgICAgQWNjZXNzaWJpbGl0eVVJRWxlbWVu
dCogY3JlYXRlUm9vdChjb25zdCBXZWJLaXQ6OldlYkFjY2Vzc2liaWxpdHlPYmplY3QmKTsKIAog
cHJpdmF0ZToKSW5kZXg6IFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0NwcFZhcmlhbnQu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0NwcFZhcmlh
bnQuY3BwCShyZXZpc2lvbiA5NzA5NSkKKysrIFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVt
L0NwcFZhcmlhbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMDgsMyArMzA4LDE0IEBAIGJvb2wg
Q3BwVmFyaWFudDo6aW52b2tlKGNvbnN0IHN0cmluZyYgbWUKICAgICByZXN1bHQuc2V0KHIpOwog
ICAgIHJldHVybiBzdGF0dXM7CiB9CisKK2Jvb2wgQ3BwVmFyaWFudDo6aW52b2tlRGVmYXVsdChj
b25zdCBDcHBWYXJpYW50KiBhcmd1bWVudHMsIHVpbnQzMl90IGFyZ3VtZW50Q291bnQsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgQ3BwVmFyaWFudCYgcmVzdWx0KSBjb25zdAorewor
ICAgIEFTU0VSVChpc09iamVjdCgpKTsKKyAgICBOUE9iamVjdCogbnBPYmplY3QgPSB2YWx1ZS5v
YmplY3RWYWx1ZTsKKyAgICBOUFZhcmlhbnQgcjsKKyAgICBib29sIHN0YXR1cyA9IFdlYkJpbmRp
bmdzOjppbnZva2VEZWZhdWx0KDAsIG5wT2JqZWN0LCBhcmd1bWVudHMsIGFyZ3VtZW50Q291bnQs
ICZyKTsKKyAgICByZXN1bHQuc2V0KHIpOworICAgIHJldHVybiBzdGF0dXM7Cit9CkluZGV4OiBU
b29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9DcHBWYXJpYW50LmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vQ3BwVmFyaWFudC5oCShyZXZpc2lvbiA5NzA5
NSkKKysrIFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0NwcFZhcmlhbnQuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMTI4LDYgKzEyOCwxNCBAQCBwdWJsaWM6CiAgICAgLy8gQ3BwVmFyaWFudCBz
cGVjaWZpZWQgYnkgcmVzdWx0LgogICAgIGJvb2wgaW52b2tlKGNvbnN0IHN0ZDo6c3RyaW5nJiwg
Y29uc3QgQ3BwVmFyaWFudCogYXJndW1lbnRzLAogICAgICAgICAgICAgICAgIHVpbnQzMl90IGFy
Z3VtZW50Q291bnQsIENwcFZhcmlhbnQmIHJlc3VsdCkgY29uc3Q7CisKKyAgICAvLyBJbnZva2Ug
YW4gb2JqZWN0J3MgZGVmYXVsdCBtZXRob2Qgd2l0aCB0aGUgc3VwcGxpZWQgYXJndW1lbnRzLgor
ICAgIC8vIFRoZSBmaXJzdCBhcmd1bWVudCBzaG91bGQgYmUgdGhlIG9iamVjdCBvbiB3aGljaCB0
aGUgbWV0aG9kIGlzIHRvIGJlCisgICAgLy8gaW52b2tlZC4gUmV0dXJucyB3aGV0aGVyIHRoZSBt
ZXRob2Qgd2FzIHN1Y2Nlc3NmdWxseSBpbnZva2VkLiBJZiB0aGUKKyAgICAvLyBtZXRob2Qgd2Fz
IGludm9rZWQgc3VjY2Vzc2Z1bGx5LCBhbnkgcmV0dXJuIHZhbHVlIGlzIHN0b3JlZCBpbiB0aGUK
KyAgICAvLyBDcHBWYXJpYW50IHNwZWNpZmllZCBieSByZXN1bHQuCisgICAgYm9vbCBpbnZva2VE
ZWZhdWx0KGNvbnN0IENwcFZhcmlhbnQqIGFyZ3VtZW50cywKKyAgICAgICAgICAgICAgICAgICAg
ICAgdWludDMyX3QgYXJndW1lbnRDb3VudCwgQ3BwVmFyaWFudCYgcmVzdWx0KSBjb25zdDsKIH07
CiAKICNlbmRpZiAvLyBDcHBWYXJpYW50X2gKSW5kZXg6IFRvb2xzL0R1bXBSZW5kZXJUcmVlL2No
cm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9EdW1w
UmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAJKHJldmlzaW9uIDk3
MDk1KQorKysgVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xs
ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMzksNiArMjM5LDcgQEAgTGF5b3V0VGVzdENvbnRy
b2xsZXI6OkxheW91dFRlc3RDb250cm9sbAogICAgIC8vIHdlYkhpc3RvcnlJdGVtQ291bnQgaXMg
dXNlZCBieSB0ZXN0cyBpbiBMYXlvdXRUZXN0c1xodHRwXHRlc3RzXGhpc3RvcnkKICAgICBiaW5k
UHJvcGVydHkoIndlYkhpc3RvcnlJdGVtQ291bnQiLCAmbV93ZWJIaXN0b3J5SXRlbUNvdW50KTsK
ICAgICBiaW5kUHJvcGVydHkoInRpdGxlVGV4dERpcmVjdGlvbiIsICZtX3RpdGxlVGV4dERpcmVj
dGlvbik7CisgICAgYmluZFByb3BlcnR5KCJwbGF0Zm9ybU5hbWUiLCAmbV9wbGF0Zm9ybU5hbWUp
OwogfQogCiBMYXlvdXRUZXN0Q29udHJvbGxlcjo6fkxheW91dFRlc3RDb250cm9sbGVyKCkKQEAg
LTYxOCw2ICs2MTksNyBAQCB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpyZXNldCgpCiAgICAg
bV9nbG9iYWxGbGFnLnNldChmYWxzZSk7CiAgICAgbV93ZWJIaXN0b3J5SXRlbUNvdW50LnNldCgw
KTsKICAgICBtX3RpdGxlVGV4dERpcmVjdGlvbi5zZXQoImx0ciIpOworICAgIG1fcGxhdGZvcm1O
YW1lLnNldCgiY2hyb21pdW0iKTsKICAgICBtX3VzZXJTdHlsZVNoZWV0TG9jYXRpb24gPSBXZWJV
UkwoKTsKIAogICAgIHdlYmtpdF9zdXBwb3J0OjpTZXRBY2NlcHRBbGxDb29raWVzKGZhbHNlKTsK
SW5kZXg6IFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVy
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVz
dENvbnRyb2xsZXIuaAkocmV2aXNpb24gOTcwOTUpCisrKyBUb29scy9EdW1wUmVuZGVyVHJlZS9j
aHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5oCSh3b3JraW5nIGNvcHkpCkBAIC02NDIsNiAr
NjQyLDkgQEAgcHJpdmF0ZToKICAgICAvLyBCb3VuZCB2YXJpYWJsZSB0cmFja2luZyB0aGUgZGly
ZWN0aW9uYWxpdHkgb2YgdGhlIDx0aXRsZT4gdGFnLgogICAgIENwcFZhcmlhbnQgbV90aXRsZVRl
eHREaXJlY3Rpb247CiAKKyAgICAvLyBCb3VuZCB2YXJpYWJsZSB0byByZXR1cm4gdGhlIG5hbWUg
b2YgdGhpcyBwbGF0Zm9ybSAoY2hyb21pdW0pLgorICAgIENwcFZhcmlhbnQgbV9wbGF0Zm9ybU5h
bWU7CisKICAgICBXZWJLaXQ6OldlYlVSTCBtX3VzZXJTdHlsZVNoZWV0TG9jYXRpb247CiAKICAg
ICBPd25QdHI8V2ViS2l0OjpXZWJTcGVlY2hJbnB1dENvbnRyb2xsZXJNb2NrPiBtX3NwZWVjaElu
cHV0Q29udHJvbGxlck1vY2s7CkluZGV4OiBUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9X
ZWJWaWV3SG9zdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21p
dW0vV2ViVmlld0hvc3QuY3BwCShyZXZpc2lvbiA5NzA5NSkKKysrIFRvb2xzL0R1bXBSZW5kZXJU
cmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTUwLDU4ICs1
NTAsNjIgQEAgdm9pZCBXZWJWaWV3SG9zdDo6cG9zdEFjY2Vzc2liaWxpdHlOb3RpZgogICAgIGlm
IChub3RpZmljYXRpb24gPT0gV2ViQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkZvY3VzZWRVSUVs
ZW1lbnRDaGFuZ2VkKQogICAgICAgICBtX3NoZWxsLT5hY2Nlc3NpYmlsaXR5Q29udHJvbGxlcigp
LT5zZXRGb2N1c2VkRWxlbWVudChvYmopOwogCi0gICAgaWYgKG1fc2hlbGwtPmFjY2Vzc2liaWxp
dHlDb250cm9sbGVyKCktPnNob3VsZER1bXBBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9ucygpKSB7
Ci0gICAgICAgIHByaW50ZigiQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbiAtICIpOworICAgIGNv
bnN0IGNoYXIqIG5vdGlmaWNhdGlvbk5hbWU7CisgICAgc3dpdGNoIChub3RpZmljYXRpb24pIHsK
KyAgICBjYXNlIFdlYkFjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25BY3RpdmVEZXNjZW5kYW50Q2hh
bmdlZDoKKyAgICAgICAgbm90aWZpY2F0aW9uTmFtZSA9ICJBY3RpdmVEZXNjZW5kYW50Q2hhbmdl
ZCI7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgV2ViQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlv
bkNoZWNrZWRTdGF0ZUNoYW5nZWQ6CisgICAgICAgIG5vdGlmaWNhdGlvbk5hbWUgPSAiQ2hlY2tl
ZFN0YXRlQ2hhbmdlZCI7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgV2ViQWNjZXNzaWJpbGl0
eU5vdGlmaWNhdGlvbkNoaWxkcmVuQ2hhbmdlZDoKKyAgICAgICAgbm90aWZpY2F0aW9uTmFtZSA9
ICJDaGlsZHJlbkNoYW5nZWQiOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFdlYkFjY2Vzc2li
aWxpdHlOb3RpZmljYXRpb25Gb2N1c2VkVUlFbGVtZW50Q2hhbmdlZDoKKyAgICAgICAgbm90aWZp
Y2F0aW9uTmFtZSA9ICJGb2N1c2VkVUlFbGVtZW50Q2hhbmdlZCI7CisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgV2ViQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkxheW91dENvbXBsZXRlOgorICAg
ICAgICBub3RpZmljYXRpb25OYW1lID0gIkxheW91dENvbXBsZXRlIjsKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBXZWJBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uTG9hZENvbXBsZXRlOgorICAg
ICAgICBub3RpZmljYXRpb25OYW1lID0gIkxvYWRDb21wbGV0ZSI7CisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgV2ViQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvblNlbGVjdGVkQ2hpbGRyZW5DaGFu
Z2VkOgorICAgICAgICBub3RpZmljYXRpb25OYW1lID0gIlNlbGVjdGVkQ2hpbGRyZW5DaGFuZ2Vk
IjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBXZWJBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9u
U2VsZWN0ZWRUZXh0Q2hhbmdlZDoKKyAgICAgICAgbm90aWZpY2F0aW9uTmFtZSA9ICJTZWxlY3Rl
ZFRleHRDaGFuZ2VkIjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBXZWJBY2Nlc3NpYmlsaXR5
Tm90aWZpY2F0aW9uVmFsdWVDaGFuZ2VkOgorICAgICAgICBub3RpZmljYXRpb25OYW1lID0gIlZh
bHVlQ2hhbmdlZCI7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgV2ViQWNjZXNzaWJpbGl0eU5v
dGlmaWNhdGlvblNjcm9sbGVkVG9BbmNob3I6CisgICAgICAgIG5vdGlmaWNhdGlvbk5hbWUgPSAi
U2Nyb2xsZWRUb0FuY2hvciI7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgV2ViQWNjZXNzaWJp
bGl0eU5vdGlmaWNhdGlvbkxpdmVSZWdpb25DaGFuZ2VkOgorICAgICAgICBub3RpZmljYXRpb25O
YW1lID0gIkxpdmVSZWdpb25DaGFuZ2VkIjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBXZWJB
Y2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uTWVudUxpc3RWYWx1ZUNoYW5nZWQ6CisgICAgICAgIG5v
dGlmaWNhdGlvbk5hbWUgPSAiTWVudUxpc3RWYWx1ZUNoYW5nZWQiOworICAgICAgICBicmVhazsK
KyAgICBjYXNlIFdlYkFjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25Sb3dDb3VudENoYW5nZWQ6Cisg
ICAgICAgIG5vdGlmaWNhdGlvbk5hbWUgPSAiUm93Q291bnRDaGFuZ2VkIjsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBXZWJBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uUm93Q29sbGFwc2VkOgor
ICAgICAgICBub3RpZmljYXRpb25OYW1lID0gIlJvd0NvbGxhcHNlZCI7CisgICAgICAgIGJyZWFr
OworICAgIGNhc2UgV2ViQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvblJvd0V4cGFuZGVkOgorICAg
ICAgICBub3RpZmljYXRpb25OYW1lID0gIlJvd0V4cGFuZGVkIjsKKyAgICAgICAgYnJlYWs7Cisg
ICAgZGVmYXVsdDoKKyAgICAgICAgbm90aWZpY2F0aW9uTmFtZSA9ICJVbmtub3duTm90aWZpY2F0
aW9uIjsKKyAgICAgICAgYnJlYWs7CisgICAgfQogCi0gICAgICAgIHN3aXRjaCAobm90aWZpY2F0
aW9uKSB7Ci0gICAgICAgIGNhc2UgV2ViQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkFjdGl2ZURl
c2NlbmRhbnRDaGFuZ2VkOgotICAgICAgICAgICAgcHJpbnRmKCJBY3RpdmVEZXNjZW5kYW50Q2hh
bmdlZCIpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgV2ViQWNjZXNzaWJpbGl0
eU5vdGlmaWNhdGlvbkNoZWNrZWRTdGF0ZUNoYW5nZWQ6Ci0gICAgICAgICAgICBwcmludGYoIkNo
ZWNrZWRTdGF0ZUNoYW5nZWQiKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIFdl
YkFjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25DaGlsZHJlbkNoYW5nZWQ6Ci0gICAgICAgICAgICBw
cmludGYoIkNoaWxkcmVuQ2hhbmdlZCIpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNh
c2UgV2ViQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkZvY3VzZWRVSUVsZW1lbnRDaGFuZ2VkOgot
ICAgICAgICAgICAgcHJpbnRmKCJGb2N1c2VkVUlFbGVtZW50Q2hhbmdlZCIpOwotICAgICAgICAg
ICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgV2ViQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkxheW91
dENvbXBsZXRlOgotICAgICAgICAgICAgcHJpbnRmKCJMYXlvdXRDb21wbGV0ZSIpOwotICAgICAg
ICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgV2ViQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkxv
YWRDb21wbGV0ZToKLSAgICAgICAgICAgIHByaW50ZigiTG9hZENvbXBsZXRlIik7Ci0gICAgICAg
ICAgICBicmVhazsKLSAgICAgICAgY2FzZSBXZWJBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uU2Vs
ZWN0ZWRDaGlsZHJlbkNoYW5nZWQ6Ci0gICAgICAgICAgICBwcmludGYoIlNlbGVjdGVkQ2hpbGRy
ZW5DaGFuZ2VkIik7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBXZWJBY2Nlc3Np
YmlsaXR5Tm90aWZpY2F0aW9uU2VsZWN0ZWRUZXh0Q2hhbmdlZDoKLSAgICAgICAgICAgIHByaW50
ZigiU2VsZWN0ZWRUZXh0Q2hhbmdlZCIpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNh
c2UgV2ViQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvblZhbHVlQ2hhbmdlZDoKLSAgICAgICAgICAg
IHByaW50ZigiVmFsdWVDaGFuZ2VkIik7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2Fz
ZSBXZWJBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uU2Nyb2xsZWRUb0FuY2hvcjoKLSAgICAgICAg
ICAgIHByaW50ZigiU2Nyb2xsZWRUb0FuY2hvciIpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAg
ICAgIGNhc2UgV2ViQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkxpdmVSZWdpb25DaGFuZ2VkOgot
ICAgICAgICAgICAgcHJpbnRmKCJMaXZlUmVnaW9uQ2hhbmdlZCIpOwotICAgICAgICAgICAgYnJl
YWs7Ci0gICAgICAgIGNhc2UgV2ViQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbk1lbnVMaXN0VmFs
dWVDaGFuZ2VkOgotICAgICAgICAgICAgcHJpbnRmKCJNZW51TGlzdFZhbHVlQ2hhbmdlZCIpOwot
ICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgV2ViQWNjZXNzaWJpbGl0eU5vdGlmaWNh
dGlvblJvd0NvdW50Q2hhbmdlZDoKLSAgICAgICAgICAgIHByaW50ZigiUm93Q291bnRDaGFuZ2Vk
Iik7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBXZWJBY2Nlc3NpYmlsaXR5Tm90
aWZpY2F0aW9uUm93Q29sbGFwc2VkOgotICAgICAgICAgICAgcHJpbnRmKCJSb3dDb2xsYXBzZWQi
KTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIFdlYkFjY2Vzc2liaWxpdHlOb3Rp
ZmljYXRpb25Sb3dFeHBhbmRlZDoKLSAgICAgICAgICAgIHByaW50ZigiUm93RXhwYW5kZWQiKTsK
LSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgYnJlYWs7
Ci0gICAgICAgIH0KKyAgICBtX3NoZWxsLT5hY2Nlc3NpYmlsaXR5Q29udHJvbGxlcigpLT5ub3Rp
ZmljYXRpb25SZWNlaXZlZChvYmosIG5vdGlmaWNhdGlvbk5hbWUpOworCisgICAgaWYgKG1fc2hl
bGwtPmFjY2Vzc2liaWxpdHlDb250cm9sbGVyKCktPnNob3VsZExvZ0FjY2Vzc2liaWxpdHlFdmVu
dHMoKSkgeworICAgICAgICBwcmludGYoIkFjY2Vzc2liaWxpdHlOb3RpZmljYXRpb24gLSAlcyIs
IG5vdGlmaWNhdGlvbk5hbWUpOwogCiAgICAgICAgIFdlYktpdDo6V2ViTm9kZSBub2RlID0gb2Jq
Lm5vZGUoKTsKICAgICAgICAgaWYgKCFub2RlLmlzTnVsbCgpICYmIG5vZGUuaXNFbGVtZW50Tm9k
ZSgpKSB7CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA5NzA5NSkKKysrIExheW91dFRlc3RzL0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE2IEBACisyMDExLTEwLTEwICBEb21pbmljIE1h
enpvbmkgIDxkbWF6em9uaUBnb29nbGUuY29tPgorCisgICAgICAgIEVuYWJsZSBhY2Nlc3NpYmls
aXR5IHRlc3RzIG9uIGNocm9taXVtIGFuZCB1cGRhdGUgdGVzdCBleHBlY3RhdGlvbnMuCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02OTY3NgorCisgICAg
ICAgIFJldmlld2VkIGJ5IENocmlzIEZsZWl6YWNoLgorCisgICAgICAgICogcGxhdGZvcm0vY2hy
b21pdW0vYWNjZXNzaWJpbGl0eS9hZGphY2VudC1jb250aW51YXRpb25zLWNhdXNlLWFzc2VydGlv
bi1mYWlsdXJlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vY2hyb21p
dW0vYWNjZXNzaWJpbGl0eS9hcmlhLWxhYmVsbGVkYnktb3ZlcnJpZGVzLWFyaWEtbGFiZWwtZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9hY2Nlc3NpYmls
aXR5L2Rpdi13aXRoaW4tYW5jaG9ycy1jYXVzZXMtY3Jhc2gtZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9hY2Nlc3NpYmlsaXR5L3BsYXRmb3JtLW5hbWUt
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4
cGVjdGF0aW9ucy50eHQ6CisKIDIwMTEtMTAtMTAgIEplcmVteSBBcHRob3JwICA8amVyZW15YUBj
aHJvbWl1bS5vcmc+CiAKICAgICAgICAgRXhpdGluZyBmdWxsc2NyZWVuIHNob3VsZG4ndCBjcmFz
aCBpZiB0aGUgZWxlbWVudCB0aGF0IHdhcyBmdWxsc2NyZWVuZWQKSW5kZXg6IExheW91dFRlc3Rz
L3BsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQJKHJldmlz
aW9uIDk3MDk1KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3Rh
dGlvbnMudHh0CSh3b3JraW5nIGNvcHkpCkBAIC05NDMsMTYgKzk0Myw2MCBAQCBCVUdXSzY2Mzg2
IDogc3ZnL2N1c3RvbS9yZXBhaW50LXNoYWRvdy5zCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogLy8gQWNjZXNzaWJp
bGl0eSBsYXlvdXQgdGVzdHMKIC8vCi0vLyBJbiBhZGRpdGlvbiB0byBXZWJDb3JlLCB0aGVzZSBh
cmUgbWVhbnQgdG8gZXhlcmNpc2UgcGxhdGZvcm0gQVBJcwotLy8gKE1TQUEsIE5TQWNjZXNzaWJp
bGl0eSwgQVRLKS4gU2luY2Ugd2UgZG9uJ3QgaGF2ZSBhY2Nlc3MgdG8gdGhlc2UgaW4gdGhlCi0v
LyBzYW5kYm94LCBtYWtpbmcgdGhlc2UgdGVzdHMgcGFzcyBpbnZvbHZlcyBmYWtpbmcgaW50ZXJh
Y3Rpb25zIHdpdGggdGhlc2UgQVBJcwotLy8gYW5kIGRvZXNuJ3Qgc2VlbSBsaWtlIGEgZ29vZCB1
c2Ugb2Ygb3VyIHRpbWUuCi0vLyBXZSBuZWVkIHRvIGlkZW50aWZ5IGEgZ29vZCB0ZXN0aW5nIHN0
cmF0ZWd5IGZvciBDaHJvbWl1bSBhY2Nlc3NpYmlsaXR5LgotLy8gSXQgaXMgcG9zc2libGUgd2Ug
d29uJ3QgdXNlIHRoZXNlIGF0IGFsbC4KLQotQlVHQ1IxMDMyMiBTS0lQIDogYWNjZXNzaWJpbGl0
eSA9IFBBU1MgRkFJTAotQlVHQ1IxMDMyMiBTS0lQIDogcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxp
dHkgPSBQQVNTIEZBSUwKLUJVR0NSMTAzMjIgU0tJUCA6IHBsYXRmb3JtL3dpbi9hY2Nlc3NpYmls
aXR5ID0gUEFTUyBGQUlMCisvLyBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlciBhbmQgQWNjZXNzaWJp
bGl0eVVJRWxlbWVudCBhcmUgb25seQorLy8gcGFydGlhbGx5IGZpbmlzaGVkIC0gYWJvdXQgaGFs
ZiB0aGUgdGVzdHMgY2FuJ3QgcnVuIHlldC4KKworQlVHQ1IxMDMyMiBTS0lQIDogYWNjZXNzaWJp
bGl0eS9hcmlhLWFjdGl2ZWRlc2NlbmRhbnQtY3Jhc2guaHRtbCA9IFRFWFQKK0JVR0NSMTAzMjIg
U0tJUCA6IGFjY2Vzc2liaWxpdHkvYXJpYS1jb21ib2JveC5odG1sID0gVEVYVAorQlVHQ1IxMDMy
MiBTS0lQIDogYWNjZXNzaWJpbGl0eS9hcmlhLWNvbnRyb2xzLXdpdGgtdGFicy5odG1sID0gVEVY
VAorQlVHQ1IxMDMyMiBTS0lQIDogYWNjZXNzaWJpbGl0eS9hcmlhLWZhbGxiYWNrLXJvbGVzLmh0
bWwgPSBURVhUCitCVUdDUjEwMzIyIFNLSVAgOiBhY2Nlc3NpYmlsaXR5L2FyaWEtaGlkZGVuLXVw
ZGF0ZS5odG1sID0gVEVYVAorQlVHQ1IxMDMyMiBTS0lQIDogYWNjZXNzaWJpbGl0eS9hcmlhLWhp
ZGRlbi13aXRoLWVsZW1lbnRzLmh0bWwgPSBURVhUCitCVUdDUjEwMzIyIFNLSVAgOiBhY2Nlc3Np
YmlsaXR5L2FyaWEtbGFiZWxsZWRieS1vdmVycmlkZXMtbGFiZWwuaHRtbCA9IFRFWFQKK0JVR0NS
MTAzMjIgU0tJUCA6IGFjY2Vzc2liaWxpdHkvYXJpYS1saW5rLXN1cHBvcnRzLXByZXNzLmh0bWwg
PSBURVhUCitCVUdDUjEwMzIyIFNLSVAgOiBhY2Nlc3NpYmlsaXR5L2FyaWEtbGlzdC1hbmQtbGlz
dGl0ZW0uaHRtbCA9IFRFWFQKK0JVR0NSMTAzMjIgU0tJUCA6IGFjY2Vzc2liaWxpdHkvYXJpYS1t
ZW51YmFyLW1lbnVpdGVtcy5odG1sID0gVEVYVAorQlVHQ1IxMDMyMiBTS0lQIDogYWNjZXNzaWJp
bGl0eS9hcmlhLW9wdGlvbi1yb2xlLmh0bWwgPSBURVhUCitCVUdDUjEwMzIyIFNLSVAgOiBhY2Nl
c3NpYmlsaXR5L2FyaWEtdGFiLXJvbGVzLmh0bWwgPSBURVhUCitCVUdDUjEwMzIyIFNLSVAgOiBh
Y2Nlc3NpYmlsaXR5L2FyaWEtdGFibGVzLmh0bWwgPSBURVhUCitCVUdDUjEwMzIyIFNLSVAgOiBh
Y2Nlc3NpYmlsaXR5L2FyaWEtdGV4dC1yb2xlLmh0bWwgPSBURVhUCitCVUdDUjEwMzIyIFNLSVAg
OiBhY2Nlc3NpYmlsaXR5L2FyaWEtdXNlZC1vbi1pbWFnZS1tYXBzLmh0bWwgPSBURVhUCitCVUdD
UjEwMzIyIFNLSVAgOiBhY2Nlc3NpYmlsaXR5L2J1dHRvbi1wcmVzcy1hY3Rpb24uaHRtbCA9IFRF
WFQKK0JVR0NSMTAzMjIgU0tJUCA6IGFjY2Vzc2liaWxpdHkvZGVsZXRpbmctaWZyYW1lLWRlc3Ry
b3lzLWF4Y2FjaGUuaHRtbCA9IFRFWFQKK0JVR0NSMTAzMjIgU0tJUCA6IGFjY2Vzc2liaWxpdHkv
ZG9jdW1lbnQtYXR0cmlidXRlcy5odG1sID0gVEVYVAorQlVHQ1IxMDMyMiBTS0lQIDogYWNjZXNz
aWJpbGl0eS9lZGl0YWJsZS13ZWJhcmVhLWNvbnRleHQtbWVudS1wb2ludC5odG1sID0gVEVYVAor
QlVHQ1IxMDMyMiBTS0lQIDogYWNjZXNzaWJpbGl0eS9pZnJhbWUtYmFzdGFyZGl6YXRpb24uaHRt
bCA9IFRFWFQKK0JVR0NSMTAzMjIgU0tJUCA6IGFjY2Vzc2liaWxpdHkvaW1hZ2UtbGluay5odG1s
ID0gVEVYVAorQlVHQ1IxMDMyMiBTS0lQIDogYWNjZXNzaWJpbGl0eS9pbWFnZS1tYXAyLmh0bWwg
PSBURVhUCitCVUdDUjEwMzIyIFNLSVAgOiBhY2Nlc3NpYmlsaXR5L2ludGVybmFsLWxpbmstYW5j
aG9yczIuaHRtbCA9IFRFWFQKK0JVR0NSMTAzMjIgU0tJUCA6IGFjY2Vzc2liaWxpdHkvbGFiZWwt
Zm9yLWNvbnRyb2wtaGl0dGVzdC5odG1sID0gVEVYVAorQlVHQ1IxMDMyMiBTS0lQIDogYWNjZXNz
aWJpbGl0eS9sYW5ndWFnZS1hdHRyaWJ1dGUuaHRtbCA9IFRFWFQKK0JVR0NSMTAzMjIgU0tJUCA6
IGFjY2Vzc2liaWxpdHkvbGVnZW5kLmh0bWwgPSBURVhUCitCVUdDUjEwMzIyIFNLSVAgOiBhY2Nl
c3NpYmlsaXR5L2xpc3RzLmh0bWwgPSBURVhUCitCVUdDUjEwMzIyIFNLSVAgOiBhY2Nlc3NpYmls
aXR5L21lZGlhLWVsZW1lbnQuaHRtbCA9IFRJTUVPVVQKK0JVR0NSMTAzMjIgU0tJUCA6IGFjY2Vz
c2liaWxpdHkvbm9uLWRhdGEtdGFibGUtY2VsbC10aXRsZS11aS1lbGVtZW50Lmh0bWwgPSBURVhU
CitCVUdDUjEwMzIyIFNLSVAgOiBhY2Nlc3NpYmlsaXR5L29uY2xpY2staGFuZGxlcnMuaHRtbCA9
IFRFWFQKK0JVR0NSMTAzMjIgU0tJUCA6IGFjY2Vzc2liaWxpdHkvcGxhY2Vob2xkZXIuaHRtbCA9
IFRFWFQKK0JVR0NSMTAzMjIgU0tJUCA6IGFjY2Vzc2liaWxpdHkvcGx1Z2luLmh0bWwgPSBURVhU
CitCVUdDUjEwMzIyIFNLSVAgOiBhY2Nlc3NpYmlsaXR5L3JhZGlvLWJ1dHRvbi1jaGVja2JveC1z
aXplLmh0bWwgPSBURVhUCitCVUdDUjEwMzIyIFNLSVAgOiBhY2Nlc3NpYmlsaXR5L3JhZGlvLWJ1
dHRvbi1ncm91cC1tZW1iZXJzLmh0bWwgPSBURVhUCitCVUdDUjEwMzIyIFNLSVAgOiBhY2Nlc3Np
YmlsaXR5L3JhZGlvLWJ1dHRvbi10aXRsZS1sYWJlbC5odG1sID0gVEVYVAorQlVHQ1IxMDMyMiBT
S0lQIDogYWNjZXNzaWJpbGl0eS9zZWN1cmUtdGV4dGZpZWxkLXRpdGxlLXVpLmh0bWwgPSBURVhU
CitCVUdDUjEwMzIyIFNLSVAgOiBhY2Nlc3NpYmlsaXR5L3RhYmxlLWF0dHJpYnV0ZXMuaHRtbCA9
IFRFWFQKK0JVR0NSMTAzMjIgU0tJUCA6IGFjY2Vzc2liaWxpdHkvdGFibGUtY2VsbC1zcGFucy5o
dG1sID0gVEVYVAorQlVHQ1IxMDMyMiBTS0lQIDogYWNjZXNzaWJpbGl0eS90YWJsZS1jZWxscy5o
dG1sID0gVEVYVAorQlVHQ1IxMDMyMiBTS0lQIDogYWNjZXNzaWJpbGl0eS90YWJsZS1kZXRlY3Rp
b24uaHRtbCA9IFRFWFQKK0JVR0NSMTAzMjIgU0tJUCA6IGFjY2Vzc2liaWxpdHkvdGFibGUtb25l
LWNlbGwuaHRtbCA9IFRFWFQKK0JVR0NSMTAzMjIgU0tJUCA6IGFjY2Vzc2liaWxpdHkvdGFibGUt
c2VjdGlvbnMuaHRtbCA9IFRFWFQKK0JVR0NSMTAzMjIgU0tJUCA6IGFjY2Vzc2liaWxpdHkvdGFi
bGUtd2l0aC1hcmlhLXJvbGUuaHRtbCA9IFRFWFQKK0JVR0NSMTAzMjIgU0tJUCA6IGFjY2Vzc2li
aWxpdHkvdGFibGUtd2l0aC1ydWxlcy5odG1sID0gVEVYVAorQlVHQ1IxMDMyMiBTS0lQIDogYWNj
ZXNzaWJpbGl0eS90ZXh0YXJlYS1pbnNlcnRpb24tcG9pbnQtbGluZS1udW1iZXIuaHRtbCA9IFRF
WFQKK0JVR0NSMTAzMjIgU0tJUCA6IGFjY2Vzc2liaWxpdHkvdGV4dGFyZWEtbGluZS1mb3ItaW5k
ZXguaHRtbCA9IFRFWFQKK0JVR0NSMTAzMjIgU0tJUCA6IGFjY2Vzc2liaWxpdHkvdGV4dGFyZWEt
c2VsZWN0ZWQtdGV4dC1yYW5nZS5odG1sID0gVEVYVAorQlVHQ1IxMDMyMiBTS0lQIDogYWNjZXNz
aWJpbGl0eS90ZXh0Ym94LXJvbGUtcmVwb3J0cy1zZWxlY3Rpb24uaHRtbCA9IFRFWFQKK0JVR0NS
MTAzMjIgU0tJUCA6IGFjY2Vzc2liaWxpdHkvdGgtYXMtdGl0bGUtdWkuaHRtbCA9IFRFWFQKK0JV
R0NSMTAzMjIgU0tJUCA6IGFjY2Vzc2liaWxpdHkvdHJhbnNmb3JtZWQtZWxlbWVudC5odG1sID0g
VEVYVAorQlVHQ1IxMDMyMiBTS0lQIDogYWNjZXNzaWJpbGl0eS92aXNpYmxlLWVsZW1lbnRzLmh0
bWwgPSBURVhUCiAKIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAvLyBUZXN0IGZhaWx1cmVzIHdpdGggU2tpYSBHUFUg
cmVuZGVyaW5nIG9mIGNhbnZhcyAyRApJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21p
dW0vYWNjZXNzaWJpbGl0eS9hZGphY2VudC1jb250aW51YXRpb25zLWNhdXNlLWFzc2VydGlvbi1m
YWlsdXJlLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9j
aHJvbWl1bS9hY2Nlc3NpYmlsaXR5L2FkamFjZW50LWNvbnRpbnVhdGlvbnMtY2F1c2UtYXNzZXJ0
aW9uLWZhaWx1cmUtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvcGxh
dGZvcm0vY2hyb21pdW0vYWNjZXNzaWJpbGl0eS9hZGphY2VudC1jb250aW51YXRpb25zLWNhdXNl
LWFzc2VydGlvbi1mYWlsdXJlLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwy
MCBAQAoreAoreQoregorRW5kIG9mIHRlc3QKK01ha2Ugc3VyZSB0aGF0IGEgZGVidWcgYXNzZXJ0
IGlzIG5vdCB0cmlnZ2VyZWQgd2hlbiBjb25zdHJ1Y3RpbmcgdGhlIGFjY2Vzc2liaWxpdHkgdHJl
ZSBmb3IgdGhpcyBwYWdlLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2Yg
IlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworQVhSb2xl
OiBBWFdlYkFyZWEgQVhWYWx1ZTogCisgICAgQVhSb2xlOiBBWFN0YXRpY1RleHQgQVhWYWx1ZTog
eAorICAgIEFYUm9sZTogQVhHcm91cCBBWFZhbHVlOiAKKyAgICAgICAgQVhSb2xlOiBBWFN0YXRp
Y1RleHQgQVhWYWx1ZTogeQorICAgIEFYUm9sZTogQVhTdGF0aWNUZXh0IEFYVmFsdWU6IHoKKyAg
ICBBWFJvbGU6IEFYR3JvdXAgQVhWYWx1ZTogCisgICAgICAgIEFYUm9sZTogQVhTdGF0aWNUZXh0
IEFYVmFsdWU6IEVuZCBvZiB0ZXN0CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisK
K1RFU1QgQ09NUExFVEUKKwoKUHJvcGVydHkgY2hhbmdlcyBvbjogTGF5b3V0VGVzdHMvcGxhdGZv
cm0vY2hyb21pdW0vYWNjZXNzaWJpbGl0eS9hZGphY2VudC1jb250aW51YXRpb25zLWNhdXNlLWFz
c2VydGlvbi1mYWlsdXJlLWV4cGVjdGVkLnR4dApfX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkFkZGVkOiBzdm46ZW9sLXN0
eWxlCiAgICsgTEYKCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9hY2Nlc3Np
YmlsaXR5L2FyaWEtbGFiZWxsZWRieS1vdmVycmlkZXMtYXJpYS1sYWJlbC1leHBlY3RlZC50eHQK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vYWNjZXNzaWJpbGl0
eS9hcmlhLWxhYmVsbGVkYnktb3ZlcnJpZGVzLWFyaWEtbGFiZWwtZXhwZWN0ZWQudHh0CShyZXZp
c2lvbiAwKQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vYWNjZXNzaWJpbGl0eS9h
cmlhLWxhYmVsbGVkYnktb3ZlcnJpZGVzLWFyaWEtbGFiZWwtZXhwZWN0ZWQudHh0CShyZXZpc2lv
biAwKQpAQCAtMCwwICsxLDEyIEBACitUaGlzIHRlc3RzIHRoYXQgaWYgYXJpYS1sYWJlbGxlZGJ5
IGlzIHVzZWQsIHRoZW4gYXJpYS1sYWJlbCBhdHRyaWJ1dGVzIGFyZSBub3QgdXNlZC4KKworQWxw
aGEgQmV0YSBEZWx0YSBFdGEgRXBzaWxvbiBUaGV0YQordXNpbmdOb25lLnRpdGxlOiBbQVhUaXRs
ZTogQWxwaGFdCit1c2luZ05vbmUuZGVzY3JpcHRpb246IFtBWERlc2NyaXB0aW9uOiBdCit1c2lu
Z0xhYmVsLnRpdGxlOiBbQVhUaXRsZTogQmV0YV0KK3VzaW5nTGFiZWwuZGVzY3JpcHRpb246IFtB
WERlc2NyaXB0aW9uOiBHYW1tYV0KK3VzaW5nTGFiZWxsZWRieS50aXRsZTogW0FYVGl0bGU6IERl
bHRhXQordXNpbmdMYWJlbGxlZGJ5LmRlc2NyaXB0aW9uOiBbQVhEZXNjcmlwdGlvbjogRXBzaWxv
bl0KK3VzaW5nTGFiZWxlZGJ5LnRpdGxlOiBbQVhUaXRsZTogRXRhXQordXNpbmdMYWJlbGVkYnku
ZGVzY3JpcHRpb246IFtBWERlc2NyaXB0aW9uOiBUaGV0YV0KKwoKUHJvcGVydHkgY2hhbmdlcyBv
bjogTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vYWNjZXNzaWJpbGl0eS9hcmlhLWxhYmVs
bGVkYnktb3ZlcnJpZGVzLWFyaWEtbGFiZWwtZXhwZWN0ZWQudHh0Cl9fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KQWRkZWQ6
IHN2bjplb2wtc3R5bGUKICAgKyBMRgoKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9t
aXVtL2FjY2Vzc2liaWxpdHkvZGl2LXdpdGhpbi1hbmNob3JzLWNhdXNlcy1jcmFzaC1leHBlY3Rl
ZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vYWNjZXNz
aWJpbGl0eS9kaXYtd2l0aGluLWFuY2hvcnMtY2F1c2VzLWNyYXNoLWV4cGVjdGVkLnR4dAkocmV2
aXNpb24gMCkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2FjY2Vzc2liaWxpdHkv
ZGl2LXdpdGhpbi1hbmNob3JzLWNhdXNlcy1jcmFzaC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDAp
CkBAIC0wLDAgKzEsMTkgQEAKK0VuZCBvZiB0ZXN0CitCZWZvcmU6CitBWFJvbGU6IEFYV2ViQXJl
YSBBWFZhbHVlOiAKKyAgICBBWFJvbGU6IEFYTGluayBBWFZhbHVlOiAKKyAgICBBWFJvbGU6IEFY
R3JvdXAgQVhWYWx1ZTogCisgICAgICAgIEFYUm9sZTogQVhTdGF0aWNUZXh0IEFYVmFsdWU6IEVu
ZCBvZiB0ZXN0CitBZnRlcjoKK0FYUm9sZTogQVhXZWJBcmVhIEFYVmFsdWU6IAorICAgIEFYUm9s
ZTogQVhHcm91cCBBWFZhbHVlOiAKKyAgICAgICAgQVhSb2xlOiBBWFN0YXRpY1RleHQgQVhWYWx1
ZTogRW5kIG9mIHRlc3QKK1RoaXMgY2FuIGNhdXNlIGEgY3Jhc2guCisKK09uIHN1Y2Nlc3MsIHlv
dSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNU
IENPTVBMRVRFIi4KKworCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1Qg
Q09NUExFVEUKKwoKUHJvcGVydHkgY2hhbmdlcyBvbjogTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hy
b21pdW0vYWNjZXNzaWJpbGl0eS9kaXYtd2l0aGluLWFuY2hvcnMtY2F1c2VzLWNyYXNoLWV4cGVj
dGVkLnR4dApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fCkFkZGVkOiBzdm46ZW9sLXN0eWxlCiAgICsgTEYKCkluZGV4OiBM
YXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9hY2Nlc3NpYmlsaXR5L3BsYXRmb3JtLW5hbWUt
ZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVt
L2FjY2Vzc2liaWxpdHkvcGxhdGZvcm0tbmFtZS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisr
KyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9hY2Nlc3NpYmlsaXR5L3BsYXRmb3JtLW5h
bWUtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDEwIEBACitUaGlzIHRlc3Qg
anVzdCBwcmludHMgdGhlIG5hbWUgb2YgdGhlIGN1cnJlbnQgcGxhdGZvcm0uCisKK09uIHN1Y2Nl
c3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5
ICJURVNUIENPTVBMRVRFIi4KKworCitQbGF0Zm9ybSBuYW1lOiBjaHJvbWl1bQorUEFTUyBzdWNj
ZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKClByb3BlcnR5IGNoYW5n
ZXMgb246IExheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2FjY2Vzc2liaWxpdHkvcGxhdGZv
cm0tbmFtZS1leHBlY3RlZC50eHQKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpBZGRlZDogc3ZuOmVvbC1zdHlsZQogICAr
IExGCgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>