<?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>97006</bug_id>
          
          <creation_ts>2012-09-18 06:09:16 -0700</creation_ts>
          <short_desc>Invalid values for media query features are not handled</short_desc>
          <delta_ts>2012-10-10 19:07:30 -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>WebCore Misc.</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>http://www.w3.org/Style/CSS/Test/MediaQueries/20100726/media-queries-test.html</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>96752</dependson>
          <blocked>45017</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Alexander Shalamov">alexander.shalamov</reporter>
          <assigned_to name="Alexander Shalamov">alexander.shalamov</assigned_to>
          <cc>cmarcelo</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>feature-media-reviews</cc>
    
    <cc>kenneth</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>722715</commentid>
    <comment_count>0</comment_count>
    <who name="Alexander Shalamov">alexander.shalamov</who>
    <bug_when>2012-09-18 06:09:16 -0700</bug_when>
    <thetext>Invalid values for media query features are not handled correctly.
For example, negative values for width, height, color, min-*, max-* features, treated as valid.
Same applies for missing attributes for orientation and other features that must have value.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>738840</commentid>
    <comment_count>1</comment_count>
      <attachid>167979</attachid>
    <who name="Alexander Shalamov">alexander.shalamov</who>
    <bug_when>2012-10-10 04:40:41 -0700</bug_when>
    <thetext>Created attachment 167979
Patch 1

- Imported w3c media query test suite (without parsing tests, would be added in another patch)
- Made media query expression stricter and compliant with the w3c specification
- Fixed few performance issues in media query evaluator, string comparison were used in few places instead of CSSValueIDs
- Fixed media query serialization for invalid queries</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>738857</commentid>
    <comment_count>2</comment_count>
      <attachid>167979</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-10-10 05:19:44 -0700</bug_when>
    <thetext>Comment on attachment 167979
Patch 1

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

&gt; LayoutTests/fast/media/media-query-invalid-value.html:6
&gt;  &lt;head&gt;
&gt;      &lt;style type=&quot;text/css&quot;&gt;
&gt; -        @media (min-width) {
&gt; +        @media (min-width: 100px) {
&gt;              div { background-color: green; }
&gt;          }
&gt;          @media (min-width: blah) {

I don&apos;t get this. The test it supposed to fail right, as it is testing invalid values! @media (min-width: 100px) is valid! not invalid which @media (min-width) is!

&gt; LayoutTests/fast/media/media-query-serialization.html:5
&gt; -&lt;style type=&quot;text/css&quot; media=&quot;NOT braille, tv and (orientation: &apos;landscape&apos;) AND (min-WIDTH:100px) and (max-width: 200px ), all and (color) and (color)&quot;&gt;
&gt; +&lt;style type=&quot;text/css&quot; media=&quot;NOT braille, tv and (orientation: landscape) AND (min-WIDTH:100px) and (max-width: 200px ), all and (color) and (color)&quot;&gt;

Are you sure &apos;landscape&apos; is invalid? shouldn&apos;t it just not be false? spec link please

&gt; Source/WebCore/ChangeLog:8
&gt; +
&gt; +        Additional information of the change such as approach, rationale. Please add per-function descriptions below (OOPS!).

OOPS!

&gt; Source/WebCore/css/CSSGrammar.y:538
&gt; +        // if restrictor is specified, ignore expression

Comments should be proper sentences. ie. // If ... expression.

&gt; Source/WebCore/css/MediaQueryEvaluator.cpp:252
&gt; +        if (width &gt; height) // Square viewport is portrait

Dot at end

&gt; Source/WebCore/css/MediaQueryEvaluator.cpp:257
&gt; +    // orientation could be calculated

// Orientation could be calculated.

Is that a FIXME? I dont understand the comment

&gt; Source/WebCore/css/MediaQueryExp.cpp:70
&gt; +static inline bool featureWithPositiveInteger(const AtomicString&amp; mediaFeature)
&gt; +{
&gt; +    return mediaFeature == MediaFeatureNames::colorMediaFeature
&gt; +        || mediaFeature == MediaFeatureNames::max_colorMediaFeature
&gt; +        || mediaFeature == MediaFeatureNames::min_colorMediaFeature
&gt; +        || mediaFeature == MediaFeatureNames::min_monochromeMediaFeature
&gt; +        || mediaFeature == MediaFeatureNames::max_monochromeMediaFeature;
&gt; +}

Why not

static inline bool featureWithValidPositiveInteger(const AtomicString&amp; mediaFeature)
{
    if (!value-&gt;isInt || value-&gt;fValue &lt; 0)
        return false;
 
    return mediaFeature == MediaFeatureNames::colorMediaFeature
        || mediaFeature == MediaFeatureNames::max_colorMediaFeature
        || mediaFeature == MediaFeatureNames::min_colorMediaFeature
        || mediaFeature == MediaFeatureNames::min_monochromeMediaFeature
        || mediaFeature == MediaFeatureNames::max_monochromeMediaFeature;
}

Also I guess it is cheaper to check the value first

&gt; Source/WebCore/css/MediaQueryExp.cpp:131
&gt; +            // Media features that use CSSValueIDs

Punctuation mark at end

&gt; Source/WebCore/css/MediaQueryExp.cpp:136
&gt; +            else if (featureWithPositiveLenghtOrNumber(mediaFeature) &amp;&amp; (((value-&gt;unit &gt;= CSSPrimitiveValue::CSS_EMS &amp;&amp; value-&gt;unit &lt;= CSSPrimitiveValue::CSS_PC) || value-&gt;unit == CSSPrimitiveValue::CSS_REMS) || value-&gt;unit == CSSPrimitiveValue::CSS_NUMBER) &amp;&amp; value-&gt;fValue &gt;= 0)

Why not move that checking to the other method, and rename it like featureWithValidPositiveLengthOrNumber ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>738871</commentid>
    <comment_count>3</comment_count>
    <who name="Alexander Shalamov">alexander.shalamov</who>
    <bug_when>2012-10-10 05:45:23 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 167979 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=167979&amp;action=review
&gt; 
&gt; &gt; LayoutTests/fast/media/media-query-invalid-value.html:6
&gt; &gt;  &lt;head&gt;
&gt; &gt;      &lt;style type=&quot;text/css&quot;&gt;
&gt; &gt; -        @media (min-width) {
&gt; &gt; +        @media (min-width: 100px) {
&gt; &gt;              div { background-color: green; }
&gt; &gt;          }
&gt; &gt;          @media (min-width: blah) {
&gt; 
&gt; I don&apos;t get this. The test it supposed to fail right, as it is testing invalid values! @media (min-width: 100px) is valid! not invalid which @media (min-width) is!

Test checks that div has green color. min-* media features MUST have value specified, therefore, old test had two invalid media expressions that do not
match.


&gt; &gt; LayoutTests/fast/media/media-query-serialization.html:5
&gt; &gt; -&lt;style type=&quot;text/css&quot; media=&quot;NOT braille, tv and (orientation: &apos;landscape&apos;) AND (min-WIDTH:100px) and (max-width: 200px ), all and (color) and (color)&quot;&gt;
&gt; &gt; +&lt;style type=&quot;text/css&quot; media=&quot;NOT braille, tv and (orientation: landscape) AND (min-WIDTH:100px) and (max-width: 200px ), all and (color) and (color)&quot;&gt;
&gt; 
&gt; Are you sure &apos;landscape&apos; is invalid? shouldn&apos;t it just not be false? spec link please

http://www.w3.org/TR/css3-mediaqueries/#orientation (landscape | portrait)

&gt; &gt; Source/WebCore/css/MediaQueryEvaluator.cpp:257
&gt; &gt; +    // orientation could be calculated
&gt; 
&gt; // Orientation could be calculated.
&gt; 
&gt; Is that a FIXME? I dont understand the comment

It is not. If no value is specified for media expression, e.g. (orientation)
and frame has widht and height that are &gt; 0, =&gt; there is orientation :) and it
can be calculated if needed.
 
&gt; &gt; Source/WebCore/css/MediaQueryExp.cpp:70
&gt; &gt; +static inline bool featureWithPositiveInteger(const AtomicString&amp; mediaFeature)
&gt; &gt; +{
&gt; &gt; +    return mediaFeature == MediaFeatureNames::colorMediaFeature
&gt; &gt; +        || mediaFeature == MediaFeatureNames::max_colorMediaFeature
&gt; &gt; +        || mediaFeature == MediaFeatureNames::min_colorMediaFeature
&gt; &gt; +        || mediaFeature == MediaFeatureNames::min_monochromeMediaFeature
&gt; &gt; +        || mediaFeature == MediaFeatureNames::max_monochromeMediaFeature;
&gt; &gt; +}
&gt; 
&gt; Why not
&gt; 
&gt; static inline bool featureWithValidPositiveInteger(const AtomicString&amp; mediaFeature)
&gt; {
&gt;     if (!value-&gt;isInt || value-&gt;fValue &lt; 0)
&gt;         return false;
&gt; 
&gt;     return mediaFeature == MediaFeatureNames::colorMediaFeature
&gt;         || mediaFeature == MediaFeatureNames::max_colorMediaFeature
&gt;         || mediaFeature == MediaFeatureNames::min_colorMediaFeature
&gt;         || mediaFeature == MediaFeatureNames::min_monochromeMediaFeature
&gt;         || mediaFeature == MediaFeatureNames::max_monochromeMediaFeature;
&gt; }
&gt; 
&gt; Also I guess it is cheaper to check the value first

Thanks. Will fix it.

&gt; &gt; Source/WebCore/css/MediaQueryExp.cpp:131
&gt; &gt; +            // Media features that use CSSValueIDs
&gt; 
&gt; Punctuation mark at end
&gt; 
&gt; &gt; Source/WebCore/css/MediaQueryExp.cpp:136
&gt; &gt; +            else if (featureWithPositiveLenghtOrNumber(mediaFeature) &amp;&amp; (((value-&gt;unit &gt;= CSSPrimitiveValue::CSS_EMS &amp;&amp; value-&gt;unit &lt;= CSSPrimitiveValue::CSS_PC) || value-&gt;unit == CSSPrimitiveValue::CSS_REMS) || value-&gt;unit == CSSPrimitiveValue::CSS_NUMBER) &amp;&amp; value-&gt;fValue &gt;= 0)
&gt; 
&gt; Why not move that checking to the other method, and rename it like featureWithValidPositiveLengthOrNumber ?

Good point, thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>738876</commentid>
    <comment_count>4</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-10-10 05:54:29 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (In reply to comment #2)
&gt; &gt; (From update of attachment 167979 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=167979&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; LayoutTests/fast/media/media-query-invalid-value.html:6
&gt; &gt; &gt;  &lt;head&gt;
&gt; &gt; &gt;      &lt;style type=&quot;text/css&quot;&gt;
&gt; &gt; &gt; -        @media (min-width) {
&gt; &gt; &gt; +        @media (min-width: 100px) {
&gt; &gt; &gt;              div { background-color: green; }
&gt; &gt; &gt;          }
&gt; &gt; &gt;          @media (min-width: blah) {
&gt; &gt; 
&gt; &gt; I don&apos;t get this. The test it supposed to fail right, as it is testing invalid values! @media (min-width: 100px) is valid! not invalid which @media (min-width) is!
&gt; 
&gt; Test checks that div has green color. min-* media features MUST have value specified, therefore, old test had two invalid media expressions that do not
&gt; match.

I think you need to explain this better in the changelog, like maybe add a comment to the first

// Valid media query, background color should remain green.
@media (min-width: 0px) {
   div { bac....
}

&gt; &gt; Are you sure &apos;landscape&apos; is invalid? shouldn&apos;t it just not be false? spec link please
&gt; 
&gt; http://www.w3.org/TR/css3-mediaqueries/#orientation (landscape | portrait)

Yes, but what does the spec say to say &quot;(width: &apos;blah&apos;)&quot; That is just invalid right and ignored no? So I think (orientation: &quot;blahhh&quot;) should be fine to serialize no? It just serializes to something without it, no?


&gt; 
&gt; &gt; &gt; Source/WebCore/css/MediaQueryEvaluator.cpp:257
&gt; &gt; &gt; +    // orientation could be calculated
&gt; &gt; 
&gt; &gt; // Orientation could be calculated.
&gt; &gt; 
&gt; &gt; Is that a FIXME? I dont understand the comment
&gt; 
&gt; It is not. If no value is specified for media expression, e.g. (orientation)
&gt; and frame has widht and height that are &gt; 0, =&gt; there is orientation :) and it
&gt; can be calculated if needed.

// Orientation can be calculated. ??</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>738885</commentid>
    <comment_count>5</comment_count>
    <who name="Alexander Shalamov">alexander.shalamov</who>
    <bug_when>2012-10-10 06:11:09 -0700</bug_when>
    <thetext>&gt; &gt; &gt; Are you sure &apos;landscape&apos; is invalid? shouldn&apos;t it just not be false? spec link please
&gt; &gt; 
&gt; &gt; http://www.w3.org/TR/css3-mediaqueries/#orientation (landscape | portrait)
&gt; 
&gt; Yes, but what does the spec say to say &quot;(width: &apos;blah&apos;)&quot; That is just invalid right and ignored no? So I think (orientation: &quot;blahhh&quot;) should be fine to serialize no? It just serializes to something without it, no?

width must have length value, &apos;blah&apos; is not length and would be parsed as string, this makes media query expression invalid =&gt; media query is invalid. Invalid media query evaluates to false and serialized to &quot;not all&quot;.
http://dev.w3.org/csswg/cssom/#serialize-a-media-query

&gt; &gt; &gt; &gt; Source/WebCore/css/MediaQueryEvaluator.cpp:257
&gt; &gt; &gt; &gt; +    // orientation could be calculated
&gt; &gt; &gt; 
&gt; &gt; &gt; // Orientation could be calculated.
&gt; &gt; &gt; 
&gt; &gt; &gt; Is that a FIXME? I dont understand the comment
&gt; &gt; 
&gt; &gt; It is not. If no value is specified for media expression, e.g. (orientation)
&gt; &gt; and frame has widht and height that are &gt; 0, =&gt; there is orientation :) and it
&gt; &gt; can be calculated if needed.
&gt; 
&gt; // Orientation can be calculated. ??

Sorry, I used wrong term. What I meant is that (orientation) should evaluate to true if frame&apos;s widht and height &gt; 0.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>738891</commentid>
    <comment_count>6</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-10-10 06:17:06 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; &gt; &gt; &gt; Are you sure &apos;landscape&apos; is invalid? shouldn&apos;t it just not be false? spec link please
&gt; &gt; &gt; 
&gt; &gt; &gt; http://www.w3.org/TR/css3-mediaqueries/#orientation (landscape | portrait)
&gt; &gt; 
&gt; &gt; Yes, but what does the spec say to say &quot;(width: &apos;blah&apos;)&quot; That is just invalid right and ignored no? So I think (orientation: &quot;blahhh&quot;) should be fine to serialize no? It just serializes to something without it, no?
&gt; 
&gt; width must have length value, &apos;blah&apos; is not length and would be parsed as string, this makes media query expression invalid =&gt; media query is invalid. Invalid media query evaluates to false and serialized to &quot;not all&quot;.

I am not sure it is a string as strings are only represented by using &quot; according to the spec. I seem to remember something like &apos; should just be ignored or so.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>738897</commentid>
    <comment_count>7</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-10-10 06:28:27 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; (In reply to comment #5)
&gt; &gt; &gt; &gt; &gt; Are you sure &apos;landscape&apos; is invalid? shouldn&apos;t it just not be false? spec link please
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; http://www.w3.org/TR/css3-mediaqueries/#orientation (landscape | portrait)
&gt; &gt; &gt; 
&gt; &gt; &gt; Yes, but what does the spec say to say &quot;(width: &apos;blah&apos;)&quot; That is just invalid right and ignored no? So I think (orientation: &quot;blahhh&quot;) should be fine to serialize no? It just serializes to something without it, no?
&gt; &gt; 
&gt; &gt; width must have length value, &apos;blah&apos; is not length and would be parsed as string, this makes media query expression invalid =&gt; media query is invalid. Invalid media query evaluates to false and serialized to &quot;not all&quot;.
&gt; 
&gt; I am not sure it is a string as strings are only represented by using &quot; according to the spec. I seem to remember something like &apos; should just be ignored or so.

I cannot find this anywhere. Maybe it changed in the spec. Can we at least make a test with (orientation: &apos;landscape&apos;) to make sure we enforce this behavior, maybe even submit it as a W3C test case?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>738910</commentid>
    <comment_count>8</comment_count>
    <who name="Alexander Shalamov">alexander.shalamov</who>
    <bug_when>2012-10-10 06:44:28 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; I am not sure it is a string as strings are only represented by using &quot; according to the spec. I seem to remember something like &apos; should just be ignored or so.

In CSSParser.cpp:9648 &quot;case CharacterQuote:&quot;

If &apos; or &quot; found, tokenizer would tell to parser that next token is string.
I think that is correct behaviour.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>738932</commentid>
    <comment_count>9</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-10-10 07:09:16 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; (In reply to comment #6)
&gt; &gt; I am not sure it is a string as strings are only represented by using &quot; according to the spec. I seem to remember something like &apos; should just be ignored or so.
&gt; 
&gt; In CSSParser.cpp:9648 &quot;case CharacterQuote:&quot;
&gt; 
&gt; If &apos; or &quot; found, tokenizer would tell to parser that next token is string.
&gt; I think that is correct behaviour.

Yes, that is what I saw, so lets just make a test for it; or a couple.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>739149</commentid>
    <comment_count>10</comment_count>
      <attachid>168041</attachid>
    <who name="Alexander Shalamov">alexander.shalamov</who>
    <bug_when>2012-10-10 11:17:58 -0700</bug_when>
    <thetext>Created attachment 168041
Patch 2

- Fixed Source/WebCore/ChangeLog.
- Added comment to LayoutTests/fast/media/media-query-invalid-value.html
- Fixed comment in Source/WebCore/css/CSSGrammar.y:538
- Fixed comment in Source/WebCore/css/MediaQueryEvaluator.cpp:252
- Fixed comment in Source/WebCore/css/MediaQueryEvaluator.cpp:257
- Refactored Source/WebCore/css/MediaQueryExp.cpp by moving checks from if() statements.
- Added tests to fast/media/w3c/test_media_queries.html which verify that when string value is 
  set to orientation or media feature that accepts length or number, media query becomes invalid
  and serialized to &quot;not all&quot; http://dev.w3.org/csswg/cssom/#serialize-a-media-query</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>739187</commentid>
    <comment_count>11</comment_count>
      <attachid>168041</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-10-10 11:56:25 -0700</bug_when>
    <thetext>Comment on attachment 168041
Patch 2

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

New failing tests:
fast/media/media-query-invalid-value.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>739259</commentid>
    <comment_count>12</comment_count>
      <attachid>168064</attachid>
    <who name="Alexander Shalamov">alexander.shalamov</who>
    <bug_when>2012-10-10 13:31:44 -0700</bug_when>
    <thetext>Created attachment 168064
Patch 3

- Fixed comments in fast/media/media-query-invalid-value.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>739510</commentid>
    <comment_count>13</comment_count>
      <attachid>168064</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-10 19:07:26 -0700</bug_when>
    <thetext>Comment on attachment 168064
Patch 3

Clearing flags on attachment: 168064

Committed r130995: &lt;http://trac.webkit.org/changeset/130995&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>739511</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-10 19:07:30 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>167979</attachid>
            <date>2012-10-10 04:40:41 -0700</date>
            <delta_ts>2012-10-10 11:17:58 -0700</delta_ts>
            <desc>Patch 1</desc>
            <filename>webcore_media_query_exp_fix_1.patch</filename>
            <type>text/plain</type>
            <size>55268</size>
            <attacher name="Alexander Shalamov">alexander.shalamov</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBlNWI0MmY4Li4xOTgxYjAwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTItMTAt
MDQgIEFsZXhhbmRlciBTaGFsYW1vdiAgPGFsZXhhbmRlci5zaGFsYW1vdkBpbnRlbC5jb20+CisK
KyAgICAgICAgSW52YWxpZCB2YWx1ZXMgZm9yIG1lZGlhIHF1ZXJ5IGZlYXR1cmVzIGFyZSBub3Qg
aGFuZGxlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
OTcwMDYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJ
bXBvcnRlZCBDU1MzIE1lZGlhIFF1ZXJpZXMgdGVzdCBzdWl0ZSBmcm9tIGh0dHA6Ly93d3cudzMu
b3JnL1N0eWxlL0NTUy9UZXN0L01lZGlhUXVlcmllcy8yMDEyMDIyOS8KKworICAgICAgICAqIGZh
c3QvbWVkaWEvbWVkaWEtcXVlcnktaW52YWxpZC12YWx1ZS5odG1sOiBGaXhlZCBpbnZhbGlkIG1l
ZGlhIHF1ZXJ5LgorICAgICAgICAqIGZhc3QvbWVkaWEvbWVkaWEtcXVlcnktc2VyaWFsaXphdGlv
bi5odG1sOiBGaXhlZCBpbnZhbGlkIG1lZGlhIHF1ZXJ5LgorICAgICAgICAqIGZhc3QvbWVkaWEv
dzNjL1JFQURNRTogQWRkZWQuCisgICAgICAgICogZmFzdC9tZWRpYS93M2MvcmVzb3VyY2VzL21l
ZGlhX3F1ZXJpZXNfaWZyYW1lLmh0bWw6IEFkZGVkLiAoSW1wb3J0ZWQgZnJvbSB3M2MgdGVzdCBz
dWl0ZSkKKyAgICAgICAgKiBmYXN0L21lZGlhL3czYy90ZXN0X21lZGlhX3F1ZXJpZXMtZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L21lZGlhL3czYy90ZXN0X21lZGlhX3F1ZXJp
ZXMuaHRtbDogQWRkZWQuIChJbXBvcnRlZCBmcm9tIHczYyB0ZXN0IHN1aXRlKQorCiAyMDEyLTEw
LTAzICBBbGV4YW5kZXIgU2hhbGFtb3YgIDxhbGV4YW5kZXIuc2hhbGFtb3ZAaW50ZWwuY29tPgog
CiAgICAgICAgIENTUyBTdHlsZSBpcyBub3QgcmVjYWxjdWxhdGVkIHdoZW4gbWVkaWEgYXR0cmli
dXRlIG9mIHN0eWxlIGVsZW1lbnQgaXMgY2hhbmdlZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1pbnZhbGlkLXZhbHVlLmh0bWwgYi9MYXlvdXRUZXN0cy9m
YXN0L21lZGlhL21lZGlhLXF1ZXJ5LWludmFsaWQtdmFsdWUuaHRtbAppbmRleCA1NjEzYWZhLi5i
NDEzZjBkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWlu
dmFsaWQtdmFsdWUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhL21lZGlhLXF1ZXJ5
LWludmFsaWQtdmFsdWUuaHRtbApAQCAtMSw2ICsxLDYgQEAKIDxoZWFkPgogICAgIDxzdHlsZSB0
eXBlPSJ0ZXh0L2NzcyI+Ci0gICAgICAgIEBtZWRpYSAobWluLXdpZHRoKSB7CisgICAgICAgIEBt
ZWRpYSAobWluLXdpZHRoOiAxMDBweCkgewogICAgICAgICAgICAgZGl2IHsgYmFja2dyb3VuZC1j
b2xvcjogZ3JlZW47IH0KICAgICAgICAgfQogICAgICAgICBAbWVkaWEgKG1pbi13aWR0aDogYmxh
aCkgewpAQCAtOSw1ICs5LDUgQEAKICAgICA8L3N0eWxlPgogPC9oZWFkPgogPGJvZHk+Ci0gICAg
PGRpdiBzdHlsZT0id2lkdGg6IDIwMDsgaGVpZ2h0OiAyMDA7Ilw+CisgICAgPGRpdiBzdHlsZT0i
d2lkdGg6IDIwMHB4OyBoZWlnaHQ6IDIwMHB4OyJcPgogPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1zZXJpYWxpemF0aW9uLmh0bWwgYi9MYXlv
dXRUZXN0cy9mYXN0L21lZGlhL21lZGlhLXF1ZXJ5LXNlcmlhbGl6YXRpb24uaHRtbAppbmRleCAx
ODM0ZTY4Li5jYmUyYTAwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhL21lZGlh
LXF1ZXJ5LXNlcmlhbGl6YXRpb24uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhL21l
ZGlhLXF1ZXJ5LXNlcmlhbGl6YXRpb24uaHRtbApAQCAtMiw3ICsyLDcgQEAKIDxodG1sPgogPGhl
YWQ+CiA8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHA6Ly9kZXYudzMub3JnL2Nzc3dnL2Nzc29t
LyIgLz4KLTxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9Ik5PVCBicmFpbGxlLCB0diBhbmQg
KG9yaWVudGF0aW9uOiAnbGFuZHNjYXBlJykgQU5EIChtaW4tV0lEVEg6MTAwcHgpIGFuZCAobWF4
LXdpZHRoOiAyMDBweCApLCBhbGwgYW5kIChjb2xvcikgYW5kIChjb2xvcikiPgorPHN0eWxlIHR5
cGU9InRleHQvY3NzIiBtZWRpYT0iTk9UIGJyYWlsbGUsIHR2IGFuZCAob3JpZW50YXRpb246IGxh
bmRzY2FwZSkgQU5EIChtaW4tV0lEVEg6MTAwcHgpIGFuZCAobWF4LXdpZHRoOiAyMDBweCApLCBh
bGwgYW5kIChjb2xvcikgYW5kIChjb2xvcikiPgogPC9zdHlsZT4KIDxzY3JpcHQgc3JjPSIuLi9q
cy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgogPC9oZWFkPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS93M2MvUkVBRE1FIGIvTGF5b3V0VGVzdHMvZmFzdC9t
ZWRpYS93M2MvUkVBRE1FCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjczMTVm
ZDUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhL3czYy9SRUFETUUK
QEAgLTAsMCArMSwzMSBAQAorSW1wb3J0ZWQgQ1NTMyBNZWRpYVF1ZXJ5IHRlc3Qgc3VpdGUgZnJv
bToKK2h0dHA6Ly93d3cudzMub3JnL1N0eWxlL0NTUy9UZXN0L01lZGlhUXVlcmllcy8yMDEyMDIy
OS8KKworKiBNZWRpYSBRdWVyaWVzIFRlc3QgU3VpdGUKKworVGhpcyBpcyBhIFJlbGVhc2UgQ2Fu
ZGlkYXRlIHZlcnNpb24gb2YgdGhlIG9mZmljaWFsIFczQyBNZWRpYSBRdWVyaWVzIFRlc3QgU3Vp
dGUuIEl0IHJlbGllcyBvbiBzdXBwb3J0IGZvciBIVE1MLAorRUNNQVNjcmlwdCwgYW5kIHRoZSBE
T00uCisKK1RoaXMgdGVzdCBzdWl0ZSBpcyBjb25zaWRlcmVkIHRvIGJlIGNvbXBsZXRlIHdpdGgg
bm8ga25vd24gb3Igc3VzcGVjdGVkIGJ1Z3MgYXQgdGhlIHRpbWUgb2YgaXRzIHB1YmxpY2F0aW9u
LgorSWYgeW91IGZpbmQgYW55IGVycm9ycywgd291bGQgbGlrZSB0byBjb250cmlidXRlIGFkZGl0
aW9uYWwgdGVzdHMsIG9yIGhhdmUgb3RoZXIgZmVlZGJhY2ssIHBsZWFzZSBwb3N0IHRvIHRoZQor
YXJjaGl2ZWQgcHVibGljIGRpc2N1c3Npb24gbWFpbGluZyBsaXN0IGZvciBDU1MgdGVzdCBzdWl0
ZXMsIHB1YmxpYy1jc3MtdGVzdHN1aXRlQHczLm9yZy4KKworQW4gaW1wbGVtZW50YXRpb24gcmVw
b3J0IGlzIGF2YWlsYWJsZS4gKElmIHlvdSB3b3VsZCBsaWtlIHRvIGFkZCBhbiBpbXBsZW1lbnRh
dGlvbiB0byB0aGUgcmVwb3J0LAorcGxlYXNlIHNlbmQgYSBwYXRjaCB0byBwdWJsaWMtY3NzLXRl
c3RzdWl0ZUB3My5vcmcuKQorCisqIFRlc3QgU3VpdGUKKworVGhlIHRlc3Qgc3VpdGUgaXMgYSBz
aW5nbGUgc2VsZi1jb250YWluZWQgZmlsZSB0aGF0IHRob3JvdWdobHkgdGVzdHMgTWVkaWEgUXVl
cmllcyB2aWEgYSBzY3JpcHQ6IE1lZGlhIFF1ZXJpZXMgU2VsZi1Db250YWluZWQgVGVzdCBTdWl0
ZS4KKworKiBMaWNlbnNlCisKK1RoaXMgdGVzdCBzdWl0ZSBpcyBsaWNlbnNlZCB1bmRlciBib3Ro
IHRoZSBXM0MgVGVzdCBTdWl0ZSBMaWNlbnNlIGFuZCB0aGUgVzNDIDMtY2xhdXNlIEJTRCBMaWNl
bnNlLiBTZWUgVzNDIExlZ2FsJ3MgZXhwbGFuYXRpb24gb2YgdGhlIGxpY2Vuc2VzLgorCisqIEFj
a25vd2xlZGdlbWVudHMKKworTWFueSB0aGFua3MgdG8gdGhlIGZvbGxvd2luZyBmb3IgdGhlaXIg
Y29udHJpYnV0aW9uczoKKworIEFubmUgdmFuIEtlc3RlcmVuCisgSWFuIEhpY2tzb24KKyBMLiBE
YXZpZCBCYXJvbgorIEFycm9uIEVpY2hvbHoKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhL3czYy9yZXNvdXJjZXMvbWVkaWFfcXVl
cmllc19pZnJhbWUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWEvdzNjL3Jlc291cmNlcy9t
ZWRpYV9xdWVyaWVzX2lmcmFtZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLjU1M2Y1NDIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhL3cz
Yy9yZXNvdXJjZXMvbWVkaWFfcXVlcmllc19pZnJhbWUuaHRtbApAQCAtMCwwICsxLDE3IEBACis8
IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wMS8vRU4iCisJImh0dHA6
Ly93d3cudzMub3JnL1RSL2h0bWw0L3N0cmljdC5kdGQiPgorPGh0bWwgbGFuZz0iZW4tVVMiPgor
PGhlYWQ+CisJPHRpdGxlPk1lZGlhIFF1ZXJpZXMgVGVzdCBpbm5lciBmcmFtZTwvdGl0bGU+CisJ
PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJz
ZXQ9VVRGLTgiPgorCTxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iTC4gRGF2aWQgQmFyb24iIGhy
ZWY9Imh0dHA6Ly9kYmFyb24ub3JnLyI+CisJPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwOi8v
d3d3LnczLm9yZy9UUi9jc3MzLW1lZGlhcXVlcmllcy8iPgorCTxtZXRhIGh0dHAtZXF1aXY9IkNv
bnRlbnQtU3R5bGUtVHlwZSIgY29udGVudD0idGV4dC9jc3MiPgorCTxzdHlsZSB0eXBlPSJ0ZXh0
L2NzcyIgaWQ9InN0eWxlIiBtZWRpYT0iYWxsIj4KKwlib2R5IHsgdGV4dC1kZWNvcmF0aW9uOiB1
bmRlcmxpbmU7IH0KKwk8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+CisKKzwvYm9keT4KKzwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWEvdzNjL3Rlc3RfbWVkaWFfcXVl
cmllcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhL3czYy90ZXN0X21lZGlh
X3F1ZXJpZXMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LjVlZTI3MTUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhL3czYy90
ZXN0X21lZGlhX3F1ZXJpZXMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjgxIEBACisKKworUEFT
UyBxdWVyeSAob3JpZW50YXRpb24pIHNob3VsZCBiZSBwYXJzZWFibGUgCitQQVNTIHF1ZXJ5IG5v
dCAob3JpZW50YXRpb24pIHNob3VsZCBub3QgYmUgcGFyc2VhYmxlIAorUEFTUyBxdWVyeSBvbmx5
IChvcmllbnRhdGlvbikgc2hvdWxkIG5vdCBiZSBwYXJzZWFibGUgCitQQVNTIHF1ZXJ5IGFsbCBh
bmQgKG9yaWVudGF0aW9uKSBzaG91bGQgYmUgcGFyc2VhYmxlIAorUEFTUyBxdWVyeSBub3QgYWxs
IGFuZCAob3JpZW50YXRpb24pIHNob3VsZCBiZSBwYXJzZWFibGUgCitQQVNTIHF1ZXJ5IG9ubHkg
YWxsIGFuZCAob3JpZW50YXRpb24pIHNob3VsZCBiZSBwYXJzZWFibGUgCitQQVNTIGV4cHJlc3Np
b24gd2lkdGggc2hvdWxkIGJlIHBhcnNlYWJsZSAKK1BBU1MgZXhwcmVzc2lvbiB3aWR0aDogMCBz
aG91bGQgYmUgcGFyc2VhYmxlIAorUEFTUyBleHByZXNzaW9uIHdpZHRoOiAwcHggc2hvdWxkIGJl
IHBhcnNlYWJsZSAKK1BBU1MgZXhwcmVzc2lvbiB3aWR0aDogMGVtIHNob3VsZCBiZSBwYXJzZWFi
bGUgCitQQVNTIGV4cHJlc3Npb24gd2lkdGg6IC0wIHNob3VsZCBiZSBwYXJzZWFibGUgCitQQVNT
IGV4cHJlc3Npb24gbWluLXdpZHRoOiAtMCBzaG91bGQgYmUgcGFyc2VhYmxlIAorUEFTUyBleHBy
ZXNzaW9uIG1heC13aWR0aDogLTAgc2hvdWxkIGJlIHBhcnNlYWJsZSAKK1BBU1MgZXhwcmVzc2lv
biB3aWR0aDogLTBjbSBzaG91bGQgYmUgcGFyc2VhYmxlIAorUEFTUyBleHByZXNzaW9uIHdpZHRo
OiAxcHggc2hvdWxkIGJlIHBhcnNlYWJsZSAKK1BBU1MgZXhwcmVzc2lvbiB3aWR0aDogMC4wMDFt
bSBzaG91bGQgYmUgcGFyc2VhYmxlIAorUEFTUyBleHByZXNzaW9uIHdpZHRoOiAxMDAwMDBweCBz
aG91bGQgYmUgcGFyc2VhYmxlIAorUEFTUyBleHByZXNzaW9uIHdpZHRoOiAtMXB4IHNob3VsZCBu
b3QgYmUgcGFyc2VhYmxlIAorUEFTUyBleHByZXNzaW9uIG1pbi13aWR0aDogLTFweCBzaG91bGQg
bm90IGJlIHBhcnNlYWJsZSAKK1BBU1MgZXhwcmVzc2lvbiBtYXgtd2lkdGg6IC0xcHggc2hvdWxk
IG5vdCBiZSBwYXJzZWFibGUgCitQQVNTIGV4cHJlc3Npb24gd2lkdGg6IC0wLjAwMDAxbW0gc2hv
dWxkIG5vdCBiZSBwYXJzZWFibGUgCitQQVNTIGV4cHJlc3Npb24gd2lkdGg6IC0xMDAwMDBlbSBz
aG91bGQgbm90IGJlIHBhcnNlYWJsZSAKK1BBU1MgZXhwcmVzc2lvbiBtaW4td2lkdGggc2hvdWxk
IG5vdCBiZSBwYXJzZWFibGUgCitQQVNTIGV4cHJlc3Npb24gbWF4LXdpZHRoIHNob3VsZCBub3Qg
YmUgcGFyc2VhYmxlIAorUEFTUyBleHByZXNzaW9uIGhlaWdodCBzaG91bGQgYmUgcGFyc2VhYmxl
IAorUEFTUyBleHByZXNzaW9uIGhlaWdodDogMCBzaG91bGQgYmUgcGFyc2VhYmxlIAorUEFTUyBl
eHByZXNzaW9uIGhlaWdodDogMHB4IHNob3VsZCBiZSBwYXJzZWFibGUgCitQQVNTIGV4cHJlc3Np
b24gaGVpZ2h0OiAwZW0gc2hvdWxkIGJlIHBhcnNlYWJsZSAKK1BBU1MgZXhwcmVzc2lvbiBoZWln
aHQ6IC0wIHNob3VsZCBiZSBwYXJzZWFibGUgCitQQVNTIGV4cHJlc3Npb24gbWluLWhlaWdodDog
LTAgc2hvdWxkIGJlIHBhcnNlYWJsZSAKK1BBU1MgZXhwcmVzc2lvbiBtYXgtaGVpZ2h0OiAtMCBz
aG91bGQgYmUgcGFyc2VhYmxlIAorUEFTUyBleHByZXNzaW9uIGhlaWdodDogLTBjbSBzaG91bGQg
YmUgcGFyc2VhYmxlIAorUEFTUyBleHByZXNzaW9uIGhlaWdodDogMXB4IHNob3VsZCBiZSBwYXJz
ZWFibGUgCitQQVNTIGV4cHJlc3Npb24gaGVpZ2h0OiAwLjAwMW1tIHNob3VsZCBiZSBwYXJzZWFi
bGUgCitQQVNTIGV4cHJlc3Npb24gaGVpZ2h0OiAxMDAwMDBweCBzaG91bGQgYmUgcGFyc2VhYmxl
IAorUEFTUyBleHByZXNzaW9uIGhlaWdodDogLTFweCBzaG91bGQgbm90IGJlIHBhcnNlYWJsZSAK
K1BBU1MgZXhwcmVzc2lvbiBtaW4taGVpZ2h0OiAtMXB4IHNob3VsZCBub3QgYmUgcGFyc2VhYmxl
IAorUEFTUyBleHByZXNzaW9uIG1heC1oZWlnaHQ6IC0xcHggc2hvdWxkIG5vdCBiZSBwYXJzZWFi
bGUgCitQQVNTIGV4cHJlc3Npb24gaGVpZ2h0OiAtMC4wMDAwMW1tIHNob3VsZCBub3QgYmUgcGFy
c2VhYmxlIAorUEFTUyBleHByZXNzaW9uIGhlaWdodDogLTEwMDAwMGVtIHNob3VsZCBub3QgYmUg
cGFyc2VhYmxlIAorUEFTUyBleHByZXNzaW9uIG1pbi1oZWlnaHQgc2hvdWxkIG5vdCBiZSBwYXJz
ZWFibGUgCitQQVNTIGV4cHJlc3Npb24gbWF4LWhlaWdodCBzaG91bGQgbm90IGJlIHBhcnNlYWJs
ZSAKK1BBU1MgZXhwcmVzc2lvbiBkZXZpY2Utd2lkdGggc2hvdWxkIGJlIHBhcnNlYWJsZSAKK1BB
U1MgZXhwcmVzc2lvbiBkZXZpY2Utd2lkdGg6IDAgc2hvdWxkIGJlIHBhcnNlYWJsZSAKK1BBU1Mg
ZXhwcmVzc2lvbiBkZXZpY2Utd2lkdGg6IDBweCBzaG91bGQgYmUgcGFyc2VhYmxlIAorUEFTUyBl
eHByZXNzaW9uIGRldmljZS13aWR0aDogMGVtIHNob3VsZCBiZSBwYXJzZWFibGUgCitQQVNTIGV4
cHJlc3Npb24gZGV2aWNlLXdpZHRoOiAtMCBzaG91bGQgYmUgcGFyc2VhYmxlIAorUEFTUyBleHBy
ZXNzaW9uIG1pbi1kZXZpY2Utd2lkdGg6IC0wIHNob3VsZCBiZSBwYXJzZWFibGUgCitQQVNTIGV4
cHJlc3Npb24gbWF4LWRldmljZS13aWR0aDogLTAgc2hvdWxkIGJlIHBhcnNlYWJsZSAKK1BBU1Mg
ZXhwcmVzc2lvbiBkZXZpY2Utd2lkdGg6IC0wY20gc2hvdWxkIGJlIHBhcnNlYWJsZSAKK1BBU1Mg
ZXhwcmVzc2lvbiBkZXZpY2Utd2lkdGg6IDFweCBzaG91bGQgYmUgcGFyc2VhYmxlIAorUEFTUyBl
eHByZXNzaW9uIGRldmljZS13aWR0aDogMC4wMDFtbSBzaG91bGQgYmUgcGFyc2VhYmxlIAorUEFT
UyBleHByZXNzaW9uIGRldmljZS13aWR0aDogMTAwMDAwcHggc2hvdWxkIGJlIHBhcnNlYWJsZSAK
K1BBU1MgZXhwcmVzc2lvbiBkZXZpY2Utd2lkdGg6IC0xcHggc2hvdWxkIG5vdCBiZSBwYXJzZWFi
bGUgCitQQVNTIGV4cHJlc3Npb24gbWluLWRldmljZS13aWR0aDogLTFweCBzaG91bGQgbm90IGJl
IHBhcnNlYWJsZSAKK1BBU1MgZXhwcmVzc2lvbiBtYXgtZGV2aWNlLXdpZHRoOiAtMXB4IHNob3Vs
ZCBub3QgYmUgcGFyc2VhYmxlIAorUEFTUyBleHByZXNzaW9uIGRldmljZS13aWR0aDogLTAuMDAw
MDFtbSBzaG91bGQgbm90IGJlIHBhcnNlYWJsZSAKK1BBU1MgZXhwcmVzc2lvbiBkZXZpY2Utd2lk
dGg6IC0xMDAwMDBlbSBzaG91bGQgbm90IGJlIHBhcnNlYWJsZSAKK1BBU1MgZXhwcmVzc2lvbiBt
aW4tZGV2aWNlLXdpZHRoIHNob3VsZCBub3QgYmUgcGFyc2VhYmxlIAorUEFTUyBleHByZXNzaW9u
IG1heC1kZXZpY2Utd2lkdGggc2hvdWxkIG5vdCBiZSBwYXJzZWFibGUgCitQQVNTIGV4cHJlc3Np
b24gZGV2aWNlLWhlaWdodCBzaG91bGQgYmUgcGFyc2VhYmxlIAorUEFTUyBleHByZXNzaW9uIGRl
dmljZS1oZWlnaHQ6IDAgc2hvdWxkIGJlIHBhcnNlYWJsZSAKK1BBU1MgZXhwcmVzc2lvbiBkZXZp
Y2UtaGVpZ2h0OiAwcHggc2hvdWxkIGJlIHBhcnNlYWJsZSAKK1BBU1MgZXhwcmVzc2lvbiBkZXZp
Y2UtaGVpZ2h0OiAwZW0gc2hvdWxkIGJlIHBhcnNlYWJsZSAKK1BBU1MgZXhwcmVzc2lvbiBkZXZp
Y2UtaGVpZ2h0OiAtMCBzaG91bGQgYmUgcGFyc2VhYmxlIAorUEFTUyBleHByZXNzaW9uIG1pbi1k
ZXZpY2UtaGVpZ2h0OiAtMCBzaG91bGQgYmUgcGFyc2VhYmxlIAorUEFTUyBleHByZXNzaW9uIG1h
eC1kZXZpY2UtaGVpZ2h0OiAtMCBzaG91bGQgYmUgcGFyc2VhYmxlIAorUEFTUyBleHByZXNzaW9u
IGRldmljZS1oZWlnaHQ6IC0wY20gc2hvdWxkIGJlIHBhcnNlYWJsZSAKK1BBU1MgZXhwcmVzc2lv
biBkZXZpY2UtaGVpZ2h0OiAxcHggc2hvdWxkIGJlIHBhcnNlYWJsZSAKK1BBU1MgZXhwcmVzc2lv
biBkZXZpY2UtaGVpZ2h0OiAwLjAwMW1tIHNob3VsZCBiZSBwYXJzZWFibGUgCitQQVNTIGV4cHJl
c3Npb24gZGV2aWNlLWhlaWdodDogMTAwMDAwcHggc2hvdWxkIGJlIHBhcnNlYWJsZSAKK1BBU1Mg
ZXhwcmVzc2lvbiBkZXZpY2UtaGVpZ2h0OiAtMXB4IHNob3VsZCBub3QgYmUgcGFyc2VhYmxlIAor
UEFTUyBleHByZXNzaW9uIG1pbi1kZXZpY2UtaGVpZ2h0OiAtMXB4IHNob3VsZCBub3QgYmUgcGFy
c2VhYmxlIAorUEFTUyBleHByZXNzaW9uIG1heC1kZXZpY2UtaGVpZ2h0OiAtMXB4IHNob3VsZCBu
b3QgYmUgcGFyc2VhYmxlIAorUEFTUyBleHByZXNzaW9uIGRldmljZS1oZWlnaHQ6IC0wLjAwMDAx
bW0gc2hvdWxkIG5vdCBiZSBwYXJzZWFibGUgCitQQVNTIGV4cHJlc3Npb24gZGV2aWNlLWhlaWdo
dDogLTEwMDAwMGVtIHNob3VsZCBub3QgYmUgcGFyc2VhYmxlIAorUEFTUyBleHByZXNzaW9uIG1p
bi1kZXZpY2UtaGVpZ2h0IHNob3VsZCBub3QgYmUgcGFyc2VhYmxlIAorUEFTUyBleHByZXNzaW9u
IG1heC1kZXZpY2UtaGVpZ2h0IHNob3VsZCBub3QgYmUgcGFyc2VhYmxlIAorUEFTUyBhbGwgYW5k
ICh3aWR0aDogd2lkdGggcHgpIHNob3VsZCBhcHBseSAKK1BBU1MgYWxsIGFuZCAod2lkdGg6IHdp
ZHRoICsxIHB4KSBzaG91bGQgbm90IGFwcGx5IAorUEFTUyBhbGwgYW5kICh3aWR0aDogd2lkdGgg
LTEgcHgpIHNob3VsZCBub3QgYXBwbHkgCitQQVNTIGFsbCBhbmQgKG1pbi13aWR0aDogd2lkdGgg
cHgpIHNob3VsZCBhcHBseSAKK1BBU1MgYWxsIGFuZCAobWluLXdpZHRoOiB3aWR0aCArMSBweCkg
c2hvdWxkIG5vdCBhcHBseSAKK1BBU1MgYWxsIGFuZCAobWluLXdpZHRoOiB3aWR0aCAtMSBweCkg
c2hvdWxkIGFwcGx5IAorUEFTUyBhbGwgYW5kIChtYXgtd2lkdGg6IHdpZHRoIHB4KSBzaG91bGQg
YXBwbHkgCitQQVNTIGFsbCBhbmQgKG1heC13aWR0aDogd2lkdGggKzEgcHgpIHNob3VsZCBhcHBs
eSAKK1BBU1MgYWxsIGFuZCAobWF4LXdpZHRoOiB3aWR0aCArMSBweCkgc2hvdWxkIG5vdCBhcHBs
eSAKK1BBU1MgYWxsIGFuZCAobWluLXdpZHRoOiB3aWR0aCArMSBlbSkgc2hvdWxkIG5vdCBhcHBs
eSAKK1BBU1MgYWxsIGFuZCAobWluLXdpZHRoOiB3aWR0aCAtMSBlbSkgc2hvdWxkIGFwcGx5IAor
UEFTUyBhbGwgYW5kIChtYXgtd2lkdGg6IHdpZHRoICsxIGVtKSBzaG91bGQgYXBwbHkgCitQQVNT
IGFsbCBhbmQgKG1heC13aWR0aDogd2lkdGggLTEgZW0pIHNob3VsZCBub3QgYXBwbHkgCitQQVNT
IGFsbCBhbmQgKGhlaWdodDogaGVpZ2h0IHB4KSBzaG91bGQgYXBwbHkgCitQQVNTIGFsbCBhbmQg
KGhlaWdodDogaGVpZ2h0ICsxIHB4KSBzaG91bGQgbm90IGFwcGx5IAorUEFTUyBhbGwgYW5kICho
ZWlnaHQ6IGhlaWdodCAtMSBweCkgc2hvdWxkIG5vdCBhcHBseSAKK1BBU1MgYWxsIGFuZCAobWlu
LWhlaWdodDogaGVpZ2h0IHB4KSBzaG91bGQgYXBwbHkgCitQQVNTIGFsbCBhbmQgKG1pbi1oZWln
aHQ6IGhlaWdodCArMSBweCkgc2hvdWxkIG5vdCBhcHBseSAKK1BBU1MgYWxsIGFuZCAobWluLWhl
aWdodDogaGVpZ2h0IC0xIHB4KSBzaG91bGQgYXBwbHkgCitQQVNTIGFsbCBhbmQgKG1heC1oZWln
aHQ6IGhlaWdodCBweCkgc2hvdWxkIGFwcGx5IAorUEFTUyBhbGwgYW5kIChtYXgtaGVpZ2h0OiBo
ZWlnaHQgKzEgcHgpIHNob3VsZCBhcHBseSAKK1BBU1MgYWxsIGFuZCAobWF4LWhlaWdodDogaGVp
Z2h0ICsxIHB4KSBzaG91bGQgbm90IGFwcGx5IAorUEFTUyBhbGwgYW5kIChtaW4taGVpZ2h0OiBo
ZWlnaHQgKzEgZW0pIHNob3VsZCBub3QgYXBwbHkgCitQQVNTIGFsbCBhbmQgKG1pbi1oZWlnaHQ6
IGhlaWdodCAtMSBlbSkgc2hvdWxkIGFwcGx5IAorUEFTUyBhbGwgYW5kIChtYXgtaGVpZ2h0OiBo
ZWlnaHQgKzEgZW0pIHNob3VsZCBhcHBseSAKK1BBU1MgYWxsIGFuZCAobWF4LWhlaWdodDogaGVp
Z2h0IC0xIGVtKSBzaG91bGQgbm90IGFwcGx5IAorUEFTUyBhbGwgYW5kIChkZXZpY2Utd2lkdGg6
IGRldmljZS13aWR0aCBweCkgc2hvdWxkIGFwcGx5IAorUEFTUyBhbGwgYW5kIChkZXZpY2Utd2lk
dGg6IGRldmljZS13aWR0aCArMSBweCkgc2hvdWxkIG5vdCBhcHBseSAKK1BBU1MgYWxsIGFuZCAo
ZGV2aWNlLXdpZHRoOiBkZXZpY2Utd2lkdGggLTEgcHgpIHNob3VsZCBub3QgYXBwbHkgCitQQVNT
IGFsbCBhbmQgKG1pbi1kZXZpY2Utd2lkdGg6IGRldmljZS13aWR0aCBweCkgc2hvdWxkIGFwcGx5
IAorUEFTUyBhbGwgYW5kIChtaW4tZGV2aWNlLXdpZHRoOiBkZXZpY2Utd2lkdGggKzEgcHgpIHNo
b3VsZCBub3QgYXBwbHkgCitQQVNTIGFsbCBhbmQgKG1pbi1kZXZpY2Utd2lkdGg6IGRldmljZS13
aWR0aCAtMSBweCkgc2hvdWxkIGFwcGx5IAorUEFTUyBhbGwgYW5kIChtYXgtZGV2aWNlLXdpZHRo
OiBkZXZpY2Utd2lkdGggcHgpIHNob3VsZCBhcHBseSAKK1BBU1MgYWxsIGFuZCAobWF4LWRldmlj
ZS13aWR0aDogZGV2aWNlLXdpZHRoICsxIHB4KSBzaG91bGQgYXBwbHkgCitQQVNTIGFsbCBhbmQg
KG1heC1kZXZpY2Utd2lkdGg6IGRldmljZS13aWR0aCArMSBweCkgc2hvdWxkIG5vdCBhcHBseSAK
K1BBU1MgYWxsIGFuZCAobWluLWRldmljZS13aWR0aDogZGV2aWNlLXdpZHRoICsxIGVtKSBzaG91
bGQgbm90IGFwcGx5IAorUEFTUyBhbGwgYW5kIChtaW4tZGV2aWNlLXdpZHRoOiBkZXZpY2Utd2lk
dGggLTEgZW0pIHNob3VsZCBhcHBseSAKK1BBU1MgYWxsIGFuZCAobWF4LWRldmljZS13aWR0aDog
ZGV2aWNlLXdpZHRoICsxIGVtKSBzaG91bGQgYXBwbHkgCitQQVNTIGFsbCBhbmQgKG1heC1kZXZp
Y2Utd2lkdGg6IGRldmljZS13aWR0aCAtMSBlbSkgc2hvdWxkIG5vdCBhcHBseSAKK1BBU1MgYWxs
IGFuZCAoZGV2aWNlLWhlaWdodDogZGV2aWNlLWhlaWdodCBweCkgc2hvdWxkIGFwcGx5IAorUEFT
UyBhbGwgYW5kIChkZXZpY2UtaGVpZ2h0OiBkZXZpY2UtaGVpZ2h0ICsxIHB4KSBzaG91bGQgbm90
IGFwcGx5IAorUEFTUyBhbGwgYW5kIChkZXZpY2UtaGVpZ2h0OiBkZXZpY2UtaGVpZ2h0IC0xIHB4
KSBzaG91bGQgbm90IGFwcGx5IAorUEFTUyBhbGwgYW5kIChtaW4tZGV2aWNlLWhlaWdodDogZGV2
aWNlLWhlaWdodCBweCkgc2hvdWxkIGFwcGx5IAorUEFTUyBhbGwgYW5kIChtaW4tZGV2aWNlLWhl
aWdodDogZGV2aWNlLWhlaWdodCArMSBweCkgc2hvdWxkIG5vdCBhcHBseSAKK1BBU1MgYWxsIGFu
ZCAobWluLWRldmljZS1oZWlnaHQ6IGRldmljZS1oZWlnaHQgLTEgcHgpIHNob3VsZCBhcHBseSAK
K1BBU1MgYWxsIGFuZCAobWF4LWRldmljZS1oZWlnaHQ6IGRldmljZS1oZWlnaHQgcHgpIHNob3Vs
ZCBhcHBseSAKK1BBU1MgYWxsIGFuZCAobWF4LWRldmljZS1oZWlnaHQ6IGRldmljZS1oZWlnaHQg
KzEgcHgpIHNob3VsZCBhcHBseSAKK1BBU1MgYWxsIGFuZCAobWF4LWRldmljZS1oZWlnaHQ6IGRl
dmljZS1oZWlnaHQgKzEgcHgpIHNob3VsZCBub3QgYXBwbHkgCitQQVNTIGFsbCBhbmQgKG1pbi1k
ZXZpY2UtaGVpZ2h0OiBkZXZpY2UtaGVpZ2h0ICsxIGVtKSBzaG91bGQgbm90IGFwcGx5IAorUEFT
UyBhbGwgYW5kIChtaW4tZGV2aWNlLWhlaWdodDogZGV2aWNlLWhlaWdodCAtMSBlbSkgc2hvdWxk
IGFwcGx5IAorUEFTUyBhbGwgYW5kIChtYXgtZGV2aWNlLWhlaWdodDogZGV2aWNlLWhlaWdodCAr
MSBlbSkgc2hvdWxkIGFwcGx5IAorUEFTUyBhbGwgYW5kIChtYXgtZGV2aWNlLWhlaWdodDogZGV2
aWNlLWhlaWdodCAtMSBlbSkgc2hvdWxkIG5vdCBhcHBseSAKK1BBU1MgYWxsIGFuZCAoaGVpZ2h0
KSBzaG91bGQgYXBwbHkgCitQQVNTIGFsbCBhbmQgKHdpZHRoKSBzaG91bGQgbm90IGFwcGx5IAor
UEFTUyBhbGwgYW5kIChoZWlnaHQpIHNob3VsZCBub3QgYXBwbHkgCitQQVNTIGFsbCBhbmQgKHdp
ZHRoKSBzaG91bGQgbm90IGFwcGx5IAorUEFTUyBhbGwgYW5kIChkZXZpY2UtaGVpZ2h0KSBzaG91
bGQgYXBwbHkgCitQQVNTIGFsbCBhbmQgKGRldmljZS13aWR0aCkgc2hvdWxkIGFwcGx5IAorUEFT
UyBhbGwgYW5kIChoZWlnaHQpIHNob3VsZCBub3QgYXBwbHkgCitQQVNTIGFsbCBhbmQgKHdpZHRo
KSBzaG91bGQgYXBwbHkgCitQQVNTIGFsbCBhbmQgKGhlaWdodCkgc2hvdWxkIGFwcGx5IAorUEFT
UyBhbGwgYW5kICh3aWR0aCkgc2hvdWxkIGFwcGx5IAorUEFTUyBleHByZXNzaW9uIG9yaWVudGF0
aW9uIHNob3VsZCBiZSBwYXJzZWFibGUgCitQQVNTIGV4cHJlc3Npb24gb3JpZW50YXRpb246IHBv
cnRyYWl0IHNob3VsZCBiZSBwYXJzZWFibGUgCitQQVNTIGV4cHJlc3Npb24gb3JpZW50YXRpb246
IGxhbmRzY2FwZSBzaG91bGQgYmUgcGFyc2VhYmxlIAorUEFTUyBleHByZXNzaW9uIG1pbi1vcmll
bnRhdGlvbiBzaG91bGQgbm90IGJlIHBhcnNlYWJsZSAKK1BBU1MgZXhwcmVzc2lvbiBtaW4tb3Jp
ZW50YXRpb246IHBvcnRyYWl0IHNob3VsZCBub3QgYmUgcGFyc2VhYmxlIAorUEFTUyBleHByZXNz
aW9uIG1pbi1vcmllbnRhdGlvbjogbGFuZHNjYXBlIHNob3VsZCBub3QgYmUgcGFyc2VhYmxlIAor
UEFTUyBleHByZXNzaW9uIG1heC1vcmllbnRhdGlvbiBzaG91bGQgbm90IGJlIHBhcnNlYWJsZSAK
K1BBU1MgZXhwcmVzc2lvbiBtYXgtb3JpZW50YXRpb246IHBvcnRyYWl0IHNob3VsZCBub3QgYmUg
cGFyc2VhYmxlIAorUEFTUyBleHByZXNzaW9uIG1heC1vcmllbnRhdGlvbjogbGFuZHNjYXBlIHNo
b3VsZCBub3QgYmUgcGFyc2VhYmxlIAorUEFTUyAob3JpZW50YXRpb24pIHNob3VsZCBhcHBseSAK
K1BBU1MgKG9yaWVudGF0aW9uOiBsYW5kc2NhcGUpIHNob3VsZCBhcHBseSAKK1BBU1MgKG9yaWVu
dGF0aW9uOiBwb3J0cmFpdCkgc2hvdWxkIG5vdCBhcHBseSAKK1BBU1Mgbm90IGFsbCBhbmQgKG9y
aWVudGF0aW9uOiBwb3J0cmFpdCkgc2hvdWxkIGFwcGx5IAorUEFTUyAob3JpZW50YXRpb24pIHNo
b3VsZCBhcHBseSAKK1BBU1MgKG9yaWVudGF0aW9uOiBsYW5kc2NhcGUpIHNob3VsZCBub3QgYXBw
bHkgCitQQVNTIG5vdCBhbGwgYW5kIChvcmllbnRhdGlvbjogbGFuZHNjYXBlKSBzaG91bGQgYXBw
bHkgCitQQVNTIChvcmllbnRhdGlvbjogcG9ydHJhaXQpIHNob3VsZCBhcHBseSAKK1BBU1MgKGFz
cGVjdC1yYXRpbzogNTkvODApIHNob3VsZCBhcHBseSAKK1BBU1MgKGFzcGVjdC1yYXRpbzogNTgv
ODApIHNob3VsZCBub3QgYXBwbHkgCitQQVNTIChhc3BlY3QtcmF0aW86IDU5LzgxKSBzaG91bGQg
bm90IGFwcGx5IAorUEFTUyAoYXNwZWN0LXJhdGlvOiA2MC84MCkgc2hvdWxkIG5vdCBhcHBseSAK
K1BBU1MgKGFzcGVjdC1yYXRpbzogNTkvNzkpIHNob3VsZCBub3QgYXBwbHkgCitQQVNTIChhc3Bl
Y3QtcmF0aW86IDE3Ny8yNDApIHNob3VsZCBhcHBseSAKK1BBU1MgKGFzcGVjdC1yYXRpbzogNDEz
LzU2MCkgc2hvdWxkIGFwcGx5IAorUEFTUyAoYXNwZWN0LXJhdGlvOiA1OTAwLzgwMDApIHNob3Vs
ZCBhcHBseSAKK1BBU1MgKGFzcGVjdC1yYXRpbzogNTkwMS84MDAwKSBzaG91bGQgbm90IGFwcGx5
IAorUEFTUyAoYXNwZWN0LXJhdGlvOiA1ODk5LzgwMDApIHNob3VsZCBub3QgYXBwbHkgCitQQVNT
IChhc3BlY3QtcmF0aW86IDU5MDAvODAwMSkgc2hvdWxkIG5vdCBhcHBseSAKK1BBU1MgKGFzcGVj
dC1yYXRpbzogNTkwMC83OTk5KSBzaG91bGQgbm90IGFwcGx5IAorUEFTUyAoYXNwZWN0LXJhdGlv
KSBzaG91bGQgYXBwbHkgCitQQVNTIChtaW4tYXNwZWN0LXJhdGlvOiA1OS84MCkgc2hvdWxkIGFw
cGx5IAorUEFTUyAobWluLWFzcGVjdC1yYXRpbzogNTgvODApIHNob3VsZCBhcHBseSAKK1BBU1Mg
KG1pbi1hc3BlY3QtcmF0aW86IDU5LzgxKSBzaG91bGQgYXBwbHkgCitQQVNTIChtaW4tYXNwZWN0
LXJhdGlvOiA2MC84MCkgc2hvdWxkIG5vdCBhcHBseSAKK1BBU1MgKG1pbi1hc3BlY3QtcmF0aW86
IDU5Lzc5KSBzaG91bGQgbm90IGFwcGx5IAorUEFTUyBleHByZXNzaW9uIG1pbi1hc3BlY3QtcmF0
aW8gc2hvdWxkIG5vdCBiZSBwYXJzZWFibGUgCitQQVNTIChtYXgtYXNwZWN0LXJhdGlvOiA1OS84
MCkgc2hvdWxkIGFwcGx5IAorUEFTUyAobWF4LWFzcGVjdC1yYXRpbzogNTgvODApIHNob3VsZCBu
b3QgYXBwbHkgCitQQVNTIChtYXgtYXNwZWN0LXJhdGlvOiA1OS84MSkgc2hvdWxkIG5vdCBhcHBs
eSAKK1BBU1MgKG1heC1hc3BlY3QtcmF0aW86IDYwLzgwKSBzaG91bGQgYXBwbHkgCitQQVNTICht
YXgtYXNwZWN0LXJhdGlvOiA1OS83OSkgc2hvdWxkIGFwcGx5IAorUEFTUyBleHByZXNzaW9uIG1h
eC1hc3BlY3QtcmF0aW8gc2hvdWxkIG5vdCBiZSBwYXJzZWFibGUgCitQQVNTIChkZXZpY2UtYXNw
ZWN0LXJhdGlvOiBkZXZpY2Utd2lkdGggLyBkZXZpY2UtaGVpZ2h0KSBzaG91bGQgYXBwbHkgCitQ
QVNTIG5vdCBhbGwgYW5kIChkZXZpY2UtYXNwZWN0LXJhdGlvOiBkZXZpY2Utd2lkdGggKyAxIC8g
ZGV2aWNlLWhlaWdodCkgc2hvdWxkIGFwcGx5IAorUEFTUyBhbGwgYW5kIChkZXZpY2UtYXNwZWN0
LXJhdGlvOiBkZXZpY2Utd2lkdGggLyBkZXZpY2UtaGVpZ2h0IC0gMSkgc2hvdWxkIG5vdCBhcHBs
eSAKK1BBU1MgYWxsIGFuZCAoZGV2aWNlLWFzcGVjdC1yYXRpbzogZGV2aWNlLXdpZHRoIC0gMSAv
IGRldmljZS1oZWlnaHQpIHNob3VsZCBub3QgYXBwbHkgCitQQVNTIG5vdCBhbGwgYW5kIChkZXZp
Y2UtYXNwZWN0LXJhdGlvOiBkZXZpY2Utd2lkdGggLyBkZXZpY2UtaGVpZ2h0ICsgMSkgc2hvdWxk
IGFwcGx5IAorUEFTUyAoZGV2aWNlLWFzcGVjdC1yYXRpbykgc2hvdWxkIGFwcGx5IAorUEFTUyAo
bWluLWRldmljZS1hc3BlY3QtcmF0aW86IGRldmljZS13aWR0aCAvIGRldmljZS1oZWlnaHQpIHNo
b3VsZCBhcHBseSAKK1BBU1Mgbm90IGFsbCBhbmQgKGRldmljZS1hc3BlY3QtcmF0aW86IGRldmlj
ZS13aWR0aCArIDEgLyBkZXZpY2UtaGVpZ2h0KSBzaG91bGQgbm90IGFwcGx5IAorUEFTUyBub3Qg
YWxsIGFuZCAobWluLWRldmljZS1hc3BlY3QtcmF0aW86IGRldmljZS13aWR0aCAvIGRldmljZS1o
ZWlnaHQgLSAxKSBzaG91bGQgYXBwbHkgCitQQVNTIG5vdCBhbGwgYW5kIChtaW4tZGV2aWNlLWFz
cGVjdC1yYXRpbzogZGV2aWNlLXdpZHRoIC0gMSAvIGRldmljZS1oZWlnaHQpIHNob3VsZCBub3Qg
YXBwbHkgCitQQVNTIGFsbCBhbmQgKG1pbi1kZXZpY2UtYXNwZWN0LXJhdGlvOiBkZXZpY2Utd2lk
dGggLyBkZXZpY2UtaGVpZ2h0ICsgMSkgc2hvdWxkIGFwcGx5IAorUEFTUyBleHByZXNzaW9uIG1p
bi1kZXZpY2UtYXNwZWN0LXJhdGlvIHNob3VsZCBub3QgYmUgcGFyc2VhYmxlIAorUEFTUyBhbGwg
YW5kIChtYXgtZGV2aWNlLWFzcGVjdC1yYXRpbzogZGV2aWNlLXdpZHRoIC8gZGV2aWNlLWhlaWdo
dCkgc2hvdWxkIGFwcGx5IAorUEFTUyAobWF4LWRldmljZS1hc3BlY3QtcmF0aW86IGRldmljZS13
aWR0aCArIDEgLyBkZXZpY2UtaGVpZ2h0KSBzaG91bGQgYXBwbHkgCitQQVNTIChtYXgtZGV2aWNl
LWFzcGVjdC1yYXRpbzogZGV2aWNlLXdpZHRoIC8gZGV2aWNlLWhlaWdodCAtIDEgc2hvdWxkIGFw
cGx5IAorUEFTUyBhbGwgYW5kIChtYXgtZGV2aWNlLWFzcGVjdC1yYXRpbzogZGV2aWNlLXdpZHRo
IC0gMSAvIGRldmljZS1oZWlnaHQpIHNob3VsZCBub3QgYXBwbHkgCitQQVNTIG5vdCBhbGwgYW5k
IChtYXgtZGV2aWNlLWFzcGVjdC1yYXRpbzogZGV2aWNlLXdpZHRoIC8gZGV2aWNlLWhlaWdodCAr
IDEpIHNob3VsZCBhcHBseSAKK1BBU1MgZXhwcmVzc2lvbiBtYXgtZGV2aWNlLWFzcGVjdC1yYXRp
byBzaG91bGQgbm90IGJlIHBhcnNlYWJsZSAKK1BBU1MgZXhwcmVzc2lvbiBtYXgtYXNwZWN0LXJh
dGlvOiAxLzEgc2hvdWxkIGJlIHBhcnNlYWJsZSAKK1BBU1MgZXhwcmVzc2lvbiBtYXgtYXNwZWN0
LXJhdGlvOiAxICAvMSBzaG91bGQgYmUgcGFyc2VhYmxlIAorUEFTUyBleHByZXNzaW9uIG1heC1h
c3BlY3QtcmF0aW86IDEgIC8gCQorMSBzaG91bGQgYmUgcGFyc2VhYmxlIAorUEFTUyBleHByZXNz
aW9uIG1heC1hc3BlY3QtcmF0aW86IDEvCisxIHNob3VsZCBiZSBwYXJzZWFibGUgCitQQVNTIGV4
cHJlc3Npb24gbWF4LWFzcGVjdC1yYXRpbzogMSBzaG91bGQgbm90IGJlIHBhcnNlYWJsZSAKK1BB
U1MgZXhwcmVzc2lvbiBtYXgtYXNwZWN0LXJhdGlvOiAwLjUgc2hvdWxkIG5vdCBiZSBwYXJzZWFi
bGUgCitQQVNTIGV4cHJlc3Npb24gbWF4LWFzcGVjdC1yYXRpbzogMS4wLzEgc2hvdWxkIG5vdCBi
ZSBwYXJzZWFibGUgCitQQVNTIGV4cHJlc3Npb24gbWF4LWFzcGVjdC1yYXRpbzogMS8xLjAgc2hv
dWxkIG5vdCBiZSBwYXJzZWFibGUgCitQQVNTIGV4cHJlc3Npb24gbWF4LWFzcGVjdC1yYXRpbzog
MS4wLzEuMCBzaG91bGQgbm90IGJlIHBhcnNlYWJsZSAKK1BBU1MgZXhwcmVzc2lvbiBtYXgtYXNw
ZWN0LXJhdGlvOiAwLzEgc2hvdWxkIG5vdCBiZSBwYXJzZWFibGUgCitQQVNTIGV4cHJlc3Npb24g
bWF4LWFzcGVjdC1yYXRpbzogMS8wIHNob3VsZCBub3QgYmUgcGFyc2VhYmxlIAorUEFTUyBleHBy
ZXNzaW9uIG1heC1hc3BlY3QtcmF0aW86IDAvMCBzaG91bGQgbm90IGJlIHBhcnNlYWJsZSAKK1BB
U1MgZXhwcmVzc2lvbiBtYXgtYXNwZWN0LXJhdGlvOiAtMS8xIHNob3VsZCBub3QgYmUgcGFyc2Vh
YmxlIAorUEFTUyBleHByZXNzaW9uIG1heC1hc3BlY3QtcmF0aW86IDEvLTEgc2hvdWxkIG5vdCBi
ZSBwYXJzZWFibGUgCitQQVNTIGV4cHJlc3Npb24gbWF4LWFzcGVjdC1yYXRpbzogLTEvLTEgc2hv
dWxkIG5vdCBiZSBwYXJzZWFibGUgCitQQVNTIGV4cHJlc3Npb24gZGV2aWNlLWFzcGVjdC1yYXRp
bzogMS8xIHNob3VsZCBiZSBwYXJzZWFibGUgCitQQVNTIGV4cHJlc3Npb24gZGV2aWNlLWFzcGVj
dC1yYXRpbzogMSAgLzEgc2hvdWxkIGJlIHBhcnNlYWJsZSAKK1BBU1MgZXhwcmVzc2lvbiBkZXZp
Y2UtYXNwZWN0LXJhdGlvOiAxICAvIAkKKzEgc2hvdWxkIGJlIHBhcnNlYWJsZSAKK1BBU1MgZXhw
cmVzc2lvbiBkZXZpY2UtYXNwZWN0LXJhdGlvOiAxLworMSBzaG91bGQgYmUgcGFyc2VhYmxlIAor
UEFTUyBleHByZXNzaW9uIGRldmljZS1hc3BlY3QtcmF0aW86IDEgc2hvdWxkIG5vdCBiZSBwYXJz
ZWFibGUgCitQQVNTIGV4cHJlc3Npb24gZGV2aWNlLWFzcGVjdC1yYXRpbzogMC41IHNob3VsZCBu
b3QgYmUgcGFyc2VhYmxlIAorUEFTUyBleHByZXNzaW9uIGRldmljZS1hc3BlY3QtcmF0aW86IDEu
MC8xIHNob3VsZCBub3QgYmUgcGFyc2VhYmxlIAorUEFTUyBleHByZXNzaW9uIGRldmljZS1hc3Bl
Y3QtcmF0aW86IDEvMS4wIHNob3VsZCBub3QgYmUgcGFyc2VhYmxlIAorUEFTUyBleHByZXNzaW9u
IGRldmljZS1hc3BlY3QtcmF0aW86IDEuMC8xLjAgc2hvdWxkIG5vdCBiZSBwYXJzZWFibGUgCitQ
QVNTIGV4cHJlc3Npb24gZGV2aWNlLWFzcGVjdC1yYXRpbzogMC8xIHNob3VsZCBub3QgYmUgcGFy
c2VhYmxlIAorUEFTUyBleHByZXNzaW9uIGRldmljZS1hc3BlY3QtcmF0aW86IDEvMCBzaG91bGQg
bm90IGJlIHBhcnNlYWJsZSAKK1BBU1MgZXhwcmVzc2lvbiBkZXZpY2UtYXNwZWN0LXJhdGlvOiAw
LzAgc2hvdWxkIG5vdCBiZSBwYXJzZWFibGUgCitQQVNTIGV4cHJlc3Npb24gZGV2aWNlLWFzcGVj
dC1yYXRpbzogLTEvMSBzaG91bGQgbm90IGJlIHBhcnNlYWJsZSAKK1BBU1MgZXhwcmVzc2lvbiBk
ZXZpY2UtYXNwZWN0LXJhdGlvOiAxLy0xIHNob3VsZCBub3QgYmUgcGFyc2VhYmxlIAorUEFTUyBl
eHByZXNzaW9uIGRldmljZS1hc3BlY3QtcmF0aW86IC0xLy0xIHNob3VsZCBub3QgYmUgcGFyc2Vh
YmxlIAorUEFTUyBtb25vY2hyb21lX2FuZF9jb2xvciAKK1BBU1MgZmluZF9kZXB0aCAKK1BBU1Mg
YWxsIGFuZCAoY29sb3I6IGRlcHRoKSBzaG91bGQgYXBwbHkgCitQQVNTIGFsbCBhbmQgKGNvbG9y
OiBkZXB0aCAtIDEpIHNob3VsZCBub3QgYXBwbHkgCitQQVNTIGFsbCBhbmQgKGNvbG9yOiBkZXB0
aCArIDEpIHNob3VsZCBub3QgYXBwbHkgCitQQVNTIGFsbCBhbmQgKG1heC1jb2xvcjogZGVwdGgp
IHNob3VsZCBhcHBseSAKK1BBU1MgYWxsIGFuZCAobWF4LWNvbG9yOiBkZXB0aCAtIDEpIHNob3Vs
ZCBub3QgYXBwbHkgCitQQVNTIGFsbCBhbmQgKG1heC1jb2xvcjogZGVwdGggKyAxKSBzaG91bGQg
YXBwbHkgCitQQVNTIGFsbCBhbmQgKGNvbG9yKSBzaG91bGQgYXBwbHkgCitQQVNTIGV4cHJlc3Np
b24gbWF4LWNvbG9yIHNob3VsZCBub3QgYmUgcGFyc2VhYmxlIAorUEFTUyBleHByZXNzaW9uIG1p
bi1jb2xvciBzaG91bGQgbm90IGJlIHBhcnNlYWJsZSAKK1BBU1MgYWxsIGFuZCAobW9ub2Nocm9t
ZSkgc2hvdWxkIG5vdCBhcHBseSAKK1BBU1MgZXhwcmVzc2lvbiBtYXgtbW9ub2Nocm9tZSBzaG91
bGQgbm90IGJlIHBhcnNlYWJsZSAKK1BBU1MgZXhwcmVzc2lvbiBtaW4tbW9ub2Nocm9tZSBzaG91
bGQgbm90IGJlIHBhcnNlYWJsZSAKK1BBU1Mgbm90IGFsbCBhbmQgKG1vbm9jaHJvbWUpIHNob3Vs
ZCBhcHBseSAKK1BBU1Mgbm90IGFsbCBhbmQgKGNvbG9yKSBzaG91bGQgbm90IGFwcGx5IAorUEFT
UyBvbmx5IGFsbCBhbmQgKGNvbG9yKSBzaG91bGQgYXBwbHkgCitQQVNTIG9ubHkgYWxsIGFuZCAo
bW9ub2Nocm9tZSkgc2hvdWxkIG5vdCBhcHBseSAKK1BBU1MgZXhwcmVzc2lvbiBjb2xvcjogMSBz
aG91bGQgYmUgcGFyc2VhYmxlIAorUEFTUyBleHByZXNzaW9uIGNvbG9yOiAzMjcgc2hvdWxkIGJl
IHBhcnNlYWJsZSAKK1BBU1MgZXhwcmVzc2lvbiBjb2xvcjogMCBzaG91bGQgYmUgcGFyc2VhYmxl
IAorUEFTUyBleHByZXNzaW9uIGNvbG9yOiAxLjAgc2hvdWxkIG5vdCBiZSBwYXJzZWFibGUgCitQ
QVNTIGV4cHJlc3Npb24gY29sb3I6IC0xIHNob3VsZCBub3QgYmUgcGFyc2VhYmxlIAorUEFTUyBl
eHByZXNzaW9uIGNvbG9yOiAxLzEgc2hvdWxkIG5vdCBiZSBwYXJzZWFibGUgCitQQVNTIGV4cHJl
c3Npb24gbWluLW1vbm9jaHJvbWU6IDEgc2hvdWxkIGJlIHBhcnNlYWJsZSAKK1BBU1MgZXhwcmVz
c2lvbiBtaW4tbW9ub2Nocm9tZTogMzI3IHNob3VsZCBiZSBwYXJzZWFibGUgCitQQVNTIGV4cHJl
c3Npb24gbWluLW1vbm9jaHJvbWU6IDAgc2hvdWxkIGJlIHBhcnNlYWJsZSAKK1BBU1MgZXhwcmVz
c2lvbiBtaW4tbW9ub2Nocm9tZTogMS4wIHNob3VsZCBub3QgYmUgcGFyc2VhYmxlIAorUEFTUyBl
eHByZXNzaW9uIG1pbi1tb25vY2hyb21lOiAtMSBzaG91bGQgbm90IGJlIHBhcnNlYWJsZSAKK1BB
U1MgZXhwcmVzc2lvbiBtaW4tbW9ub2Nocm9tZTogMS8xIHNob3VsZCBub3QgYmUgcGFyc2VhYmxl
IAorUEFTUyBleHByZXNzaW9uIGdyaWQgc2hvdWxkIGJlIHBhcnNlYWJsZSAKK1BBU1MgZXhwcmVz
c2lvbiBncmlkOiAwIHNob3VsZCBiZSBwYXJzZWFibGUgCitQQVNTIGV4cHJlc3Npb24gZ3JpZDog
MSBzaG91bGQgYmUgcGFyc2VhYmxlIAorUEFTUyBleHByZXNzaW9uIGdyaWQ6IDEgc2hvdWxkIGJl
IHBhcnNlYWJsZSAKK1BBU1MgZXhwcmVzc2lvbiBtaW4tZ3JpZCBzaG91bGQgbm90IGJlIHBhcnNl
YWJsZSAKK1BBU1MgZXhwcmVzc2lvbiBtaW4tZ3JpZDowIHNob3VsZCBub3QgYmUgcGFyc2VhYmxl
IAorUEFTUyBleHByZXNzaW9uIG1heC1ncmlkOiAxIHNob3VsZCBub3QgYmUgcGFyc2VhYmxlIAor
UEFTUyBleHByZXNzaW9uIGdyaWQ6IDIgc2hvdWxkIG5vdCBiZSBwYXJzZWFibGUgCitQQVNTIGV4
cHJlc3Npb24gZ3JpZDogLTEgc2hvdWxkIG5vdCBiZSBwYXJzZWFibGUgCitQQVNTIChncmlkKSBz
aG91bGQgbm90IGFwcGx5IAorUEFTUyAoZ3JpZDogMCkgc2hvdWxkIGFwcGx5IAorUEFTUyAoZ3Jp
ZDogMSkgc2hvdWxkIG5vdCBhcHBseSAKK1BBU1MgKGdyaWQ6IDIpIHNob3VsZCBub3QgYXBwbHkg
CitQQVNTIChncmlkOiAtMSkgc2hvdWxkIG5vdCBhcHBseSAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9tZWRpYS93M2MvdGVzdF9tZWRpYV9xdWVyaWVzLmh0bWwgYi9MYXlvdXRUZXN0
cy9mYXN0L21lZGlhL3czYy90ZXN0X21lZGlhX3F1ZXJpZXMuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi5hOGQwYmJjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9tZWRpYS93M2MvdGVzdF9tZWRpYV9xdWVyaWVzLmh0bWwKQEAgLTAsMCArMSwzNTUg
QEAKKzwhRE9DVFlQRSBIVE1MPgorPGh0bWw+Cis8aGVhZD4KKyAgPHRpdGxlPk1lZGlhIFF1ZXJp
ZXMgU2VsZi1Db250YWluZWQgVGVzdCBTdWl0ZTwvdGl0bGU+CisgIDxsaW5rIHJlbD0iYXV0aG9y
IiB0aXRsZT0iTC4gRGF2aWQgQmFyb24iIGhyZWY9Imh0dHA6Ly9kYmFyb24ub3JnLyI+CisgIDxs
aW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iQW5uZSB2YW4gS2VzdGVyZW4iIGhyZWY9Imh0dHA6Ly9h
bm5ldmFua2VzdGVyZW4ubmwvIj4KKyAgPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJNczJnZXIi
IGhyZWY9Im1haWx0bzpNczJnZXJAZ21haWwuY29tIj4KKyAgPGxpbmsgcmVsPSJoZWxwIiBocmVm
PSJodHRwOi8vd3d3LnczLm9yZy9UUi9jc3MzLW1lZGlhcXVlcmllcy8iPgorICA8c2NyaXB0IHR5
cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3Mu
anMiPjwvc2NyaXB0PgorICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8u
Li8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPC9oZWFkPgor
PGJvZHkgb25sb2FkPSJydW4oKSI+Cis8ZGl2IGlkPWxvZz48L2Rpdj4KKzxpZnJhbWUgaWQ9InN1
YmRvYyIgc3JjPSJyZXNvdXJjZXMvbWVkaWFfcXVlcmllc19pZnJhbWUuaHRtbCI+PC9pZnJhbWU+
Cis8ZGl2IGlkPSJjb250ZW50IiBzdHlsZT0iZGlzcGxheTogbm9uZSI+PC9kaXY+CisKKzxzY3Jp
cHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KK3NldHVwKHsgImV4cGxpY2l0X2RvbmUiOiB0cnVl
IH0pOworCitmdW5jdGlvbiBydW4oKSB7CisgICAgdmFyIHN1YmRvYyA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJzdWJkb2MiKS5jb250ZW50RG9jdW1lbnQ7CisgICAgdmFyIHN1YndpbiA9IGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJzdWJkb2MiKS5jb250ZW50V2luZG93OworICAgIHZhciBz
dHlsZSA9IHN1YmRvYy5nZXRFbGVtZW50QnlJZCgic3R5bGUiKTsKKyAgICB2YXIgaWZyYW1lX3N0
eWxlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInN1YmRvYyIpLnN0eWxlOworICAgIHZhciBi
b2R5X2NzID0gc3ViZG9jLmRlZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5bGUoc3ViZG9jLmJvZHks
ICIiKTsKKworICAgIGZ1bmN0aW9uIHF1ZXJ5X2FwcGxpZXMocSkgeworICAgICAgc3R5bGUuc2V0
QXR0cmlidXRlKCJtZWRpYSIsIHEpOworICAgICAgcmV0dXJuIGJvZHlfY3MuZ2V0UHJvcGVydHlW
YWx1ZSgidGV4dC1kZWNvcmF0aW9uIikgPT0gInVuZGVybGluZSI7CisgICAgfQorCisgICAgZnVu
Y3Rpb24gc2hvdWxkX2FwcGx5KHEsIG1lc3NhZ2UpIHsKKyAgICAgIHRlc3QoZnVuY3Rpb24oKSB7
CisgICAgICAgIGFzc2VydF90cnVlKHF1ZXJ5X2FwcGxpZXMocSkpOworICAgICAgfSwgKG1lc3Nh
Z2UgIT09IHVuZGVmaW5lZCA/IG1lc3NhZ2UgOiBxKSArICIgc2hvdWxkIGFwcGx5Iik7CisgICAg
fQorCisgICAgZnVuY3Rpb24gc2hvdWxkX25vdF9hcHBseShxLCBtZXNzYWdlKSB7CisgICAgICB0
ZXN0KGZ1bmN0aW9uKCkgeworICAgICAgICBhc3NlcnRfZmFsc2UocXVlcnlfYXBwbGllcyhxKSk7
CisgICAgICB9LCAobWVzc2FnZSAhPT0gdW5kZWZpbmVkID8gbWVzc2FnZSA6IHEpICsgIiBzaG91
bGQgbm90IGFwcGx5Iik7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBGdW5jdGlvbnMgdG8gdGVz
dCB3aGV0aGVyIGEgcXVlcnkgaXMgcGFyc2VhYmxlIGF0IGFsbC4gIChTaG91bGQgbm90CisgICAg
ICogYmUgdXNlZCBmb3IgcGFyc2UgZXJyb3JzIHdpdGhpbiBleHByZXNzaW9ucy4pCisgICAgICov
CisgICAgdmFyIHBhcnNlX3Rlc3Rfc3R5bGVfZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoInN0eWxlIik7CisgICAgcGFyc2VfdGVzdF9zdHlsZV9lbGVtZW50LnR5cGUgPSAidGV4dC9j
c3MiOworICAgIHBhcnNlX3Rlc3Rfc3R5bGVfZWxlbWVudC5kaXNhYmxlZCA9IHRydWU7IC8vIGZv
ciBwZXJmb3JtYW5jZSwgaG9wZWZ1bGx5CisgICAgdmFyIHBhcnNlX3Rlc3Rfc3R5bGVfdGV4dCA9
IGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCIiKTsKKyAgICBwYXJzZV90ZXN0X3N0eWxlX2VsZW1l
bnQuYXBwZW5kQ2hpbGQocGFyc2VfdGVzdF9zdHlsZV90ZXh0KTsKKyAgICBkb2N1bWVudC5nZXRF
bGVtZW50c0J5VGFnTmFtZSgiaGVhZCIpWzBdCisgICAgICAuYXBwZW5kQ2hpbGQocGFyc2VfdGVz
dF9zdHlsZV9lbGVtZW50KTsKKworICAgIGZ1bmN0aW9uIHF1ZXJ5X2lzX3BhcnNlYWJsZShxKSB7
CisgICAgICBwYXJzZV90ZXN0X3N0eWxlX3RleHQuZGF0YSA9ICJAbWVkaWEgc2NyZWVuLCAiICsg
cSArICIge30iOworICAgICAgdmFyIHNoZWV0ID0gcGFyc2VfdGVzdF9zdHlsZV9lbGVtZW50LnNo
ZWV0OyAvLyBYWFggeWlrZXMsIG5vdCBsaXZlIQorICAgICAgaWYgKHNoZWV0LmNzc1J1bGVzLmxl
bmd0aCA9PSAxICYmCisgICAgICAgICAgc2hlZXQuY3NzUnVsZXNbMF0udHlwZSA9PSBDU1NSdWxl
Lk1FRElBX1JVTEUpCisgICAgICAgIHJldHVybiBzaGVldC5jc3NSdWxlc1swXS5tZWRpYS5tZWRp
YVRleHQgIT0gInNjcmVlbiwgbm90IGFsbCI7CisKKyAgICAgIGFzc2VydF91bnJlYWNoZWQoCisg
ICAgICAgICJ1bmV4cGVjdGVkIHJlc3VsdCB0ZXN0aW5nIHdoZXRoZXIgcXVlcnkgIiArIHEgKyAi
IGlzIHBhcnNlYWJsZSIpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHF1ZXJ5X3Nob3VsZF9iZV9w
YXJzZWFibGUocSkgeworICAgICAgdGVzdChmdW5jdGlvbigpIHsKKyAgICAgICAgYXNzZXJ0X3Ry
dWUocXVlcnlfaXNfcGFyc2VhYmxlKHEpKQorICAgICAgfSwicXVlcnkgIiArIHEgKyAiIHNob3Vs
ZCBiZSBwYXJzZWFibGUiKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBxdWVyeV9zaG91bGRfbm90
X2JlX3BhcnNlYWJsZShxKSB7CisgICAgICB0ZXN0KGZ1bmN0aW9uKCkgeworICAgICAgICBhc3Nl
cnRfZmFsc2UocXVlcnlfaXNfcGFyc2VhYmxlKHEpKQorICAgICAgfSwicXVlcnkgIiArIHEgKyAi
IHNob3VsZCBub3QgYmUgcGFyc2VhYmxlIik7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBGdW5j
dGlvbnMgdG8gdGVzdCB3aGV0aGVyIGEgc2luZ2xlIG1lZGlhIGV4cHJlc3Npb24gaXMgcGFyc2Vh
YmxlLgorICAgICAqLworICAgIGZ1bmN0aW9uIGV4cHJlc3Npb25faXNfcGFyc2VhYmxlKGUpIHsK
KyAgICAgIHN0eWxlLnNldEF0dHJpYnV0ZSgibWVkaWEiLCAiYWxsIGFuZCAoIiArIGUgKyAiKSIp
OworICAgICAgcmV0dXJuIHN0eWxlLnNoZWV0Lm1lZGlhLm1lZGlhVGV4dCAhPSAibm90IGFsbCI7
CisgICAgfQorCisgICAgZnVuY3Rpb24gZXhwcmVzc2lvbl9zaG91bGRfYmVfcGFyc2VhYmxlKGUp
IHsKKyAgICAgIHRlc3QoZnVuY3Rpb24oKSB7CisgICAgICAgIGFzc2VydF90cnVlKGV4cHJlc3Np
b25faXNfcGFyc2VhYmxlKGUpKTsKKyAgICAgIH0sImV4cHJlc3Npb24gIiArIGUgKyAiIHNob3Vs
ZCBiZSBwYXJzZWFibGUiKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBleHByZXNzaW9uX3Nob3Vs
ZF9ub3RfYmVfcGFyc2VhYmxlKGUpIHsKKyAgICAgIHRlc3QoZnVuY3Rpb24oKSB7CisgICAgICAg
IGFzc2VydF9mYWxzZShleHByZXNzaW9uX2lzX3BhcnNlYWJsZShlKSk7CisgICAgICB9LCJleHBy
ZXNzaW9uICIgKyBlICsgIiBzaG91bGQgbm90IGJlIHBhcnNlYWJsZSIpOworICAgIH0KKworICAg
IC8vIFRoZSBuby10eXBlIHN5bnRheCBkb2Vzbid0IG1peCB3aXRoIHRoZSBub3QgYW5kIG9ubHkg
a2V5d29yZHMuCisgICAgcXVlcnlfc2hvdWxkX2JlX3BhcnNlYWJsZSgiKG9yaWVudGF0aW9uKSIp
OworICAgIHF1ZXJ5X3Nob3VsZF9ub3RfYmVfcGFyc2VhYmxlKCJub3QgKG9yaWVudGF0aW9uKSIp
OworICAgIHF1ZXJ5X3Nob3VsZF9ub3RfYmVfcGFyc2VhYmxlKCJvbmx5IChvcmllbnRhdGlvbiki
KTsKKyAgICBxdWVyeV9zaG91bGRfYmVfcGFyc2VhYmxlKCJhbGwgYW5kIChvcmllbnRhdGlvbiki
KTsKKyAgICBxdWVyeV9zaG91bGRfYmVfcGFyc2VhYmxlKCJub3QgYWxsIGFuZCAob3JpZW50YXRp
b24pIik7CisgICAgcXVlcnlfc2hvdWxkX2JlX3BhcnNlYWJsZSgib25seSBhbGwgYW5kIChvcmll
bnRhdGlvbikiKTsKKworICAgIHZhciBmZWF0dXJlcyA9IFsgIndpZHRoIiwgImhlaWdodCIsICJk
ZXZpY2Utd2lkdGgiLCAiZGV2aWNlLWhlaWdodCIgXTsKKyAgICB2YXIgZmVhdHVyZTsKKyAgICB2
YXIgaTsKKyAgICBmb3IgKGkgaW4gZmVhdHVyZXMpIHsKKyAgICAgIGZlYXR1cmUgPSBmZWF0dXJl
c1tpXTsKKyAgICAgIGV4cHJlc3Npb25fc2hvdWxkX2JlX3BhcnNlYWJsZShmZWF0dXJlKTsKKyAg
ICAgIGV4cHJlc3Npb25fc2hvdWxkX2JlX3BhcnNlYWJsZShmZWF0dXJlICsgIjogMCIpOworICAg
ICAgZXhwcmVzc2lvbl9zaG91bGRfYmVfcGFyc2VhYmxlKGZlYXR1cmUgKyAiOiAwcHgiKTsKKyAg
ICAgIGV4cHJlc3Npb25fc2hvdWxkX2JlX3BhcnNlYWJsZShmZWF0dXJlICsgIjogMGVtIik7Cisg
ICAgICBleHByZXNzaW9uX3Nob3VsZF9iZV9wYXJzZWFibGUoZmVhdHVyZSArICI6IC0wIik7Cisg
ICAgICBleHByZXNzaW9uX3Nob3VsZF9iZV9wYXJzZWFibGUoIm1pbi0iICsgZmVhdHVyZSArICI6
IC0wIik7CisgICAgICBleHByZXNzaW9uX3Nob3VsZF9iZV9wYXJzZWFibGUoIm1heC0iICsgZmVh
dHVyZSArICI6IC0wIik7CisgICAgICBleHByZXNzaW9uX3Nob3VsZF9iZV9wYXJzZWFibGUoZmVh
dHVyZSArICI6IC0wY20iKTsKKyAgICAgIGV4cHJlc3Npb25fc2hvdWxkX2JlX3BhcnNlYWJsZShm
ZWF0dXJlICsgIjogMXB4Iik7CisgICAgICBleHByZXNzaW9uX3Nob3VsZF9iZV9wYXJzZWFibGUo
ZmVhdHVyZSArICI6IDAuMDAxbW0iKTsKKyAgICAgIGV4cHJlc3Npb25fc2hvdWxkX2JlX3BhcnNl
YWJsZShmZWF0dXJlICsgIjogMTAwMDAwcHgiKTsKKyAgICAgIGV4cHJlc3Npb25fc2hvdWxkX25v
dF9iZV9wYXJzZWFibGUoZmVhdHVyZSArICI6IC0xcHgiKTsKKyAgICAgIGV4cHJlc3Npb25fc2hv
dWxkX25vdF9iZV9wYXJzZWFibGUoIm1pbi0iICsgZmVhdHVyZSArICI6IC0xcHgiKTsKKyAgICAg
IGV4cHJlc3Npb25fc2hvdWxkX25vdF9iZV9wYXJzZWFibGUoIm1heC0iICsgZmVhdHVyZSArICI6
IC0xcHgiKTsKKyAgICAgIGV4cHJlc3Npb25fc2hvdWxkX25vdF9iZV9wYXJzZWFibGUoZmVhdHVy
ZSArICI6IC0wLjAwMDAxbW0iKTsKKyAgICAgIGV4cHJlc3Npb25fc2hvdWxkX25vdF9iZV9wYXJz
ZWFibGUoZmVhdHVyZSArICI6IC0xMDAwMDBlbSIpOworICAgICAgZXhwcmVzc2lvbl9zaG91bGRf
bm90X2JlX3BhcnNlYWJsZSgibWluLSIgKyBmZWF0dXJlKTsKKyAgICAgIGV4cHJlc3Npb25fc2hv
dWxkX25vdF9iZV9wYXJzZWFibGUoIm1heC0iICsgZmVhdHVyZSk7CisgICAgfQorCisgICAgdmFy
IGNvbnRlbnRfZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnQiKTsKKyAgICBj
b250ZW50X2Rpdi5zdHlsZS5mb250ID0gIm1lZGl1bSBzYW5zLXNlcmlmIjsKKyAgICB2YXIgZW1f
c2l6ZSA9CisgICAgICBnZXRDb21wdXRlZFN0eWxlKGNvbnRlbnRfZGl2LCAiIikuZm9udFNpemUu
bWF0Y2goL14oXGQrKXB4JC8pWzFdOworCisgICAgLy8gaW4gdGhpcyB0ZXN0LCBhc3N1bWUgdGhl
IGNvbW1vbiB1bmRlcmx5aW5nIGltcGxlbWVudGF0aW9uIGlzIGNvcnJlY3QKKyAgICB2YXIgd2lk
dGhfdmFsID0gMTE3OyAvLyBwaWNrIHR3byBub3QtdG9vLXJvdW5kIG51bWJlcnMKKyAgICB2YXIg
aGVpZ2h0X3ZhbCA9IDc2OworICAgIGlmcmFtZV9zdHlsZS53aWR0aCA9IHdpZHRoX3ZhbCArICJw
eCI7CisgICAgaWZyYW1lX3N0eWxlLmhlaWdodCA9IGhlaWdodF92YWwgKyAicHgiOworICAgIHZh
ciBkZXZpY2Vfd2lkdGggPSB3aW5kb3cuc2NyZWVuLndpZHRoOworICAgIHZhciBkZXZpY2VfaGVp
Z2h0ID0gd2luZG93LnNjcmVlbi5oZWlnaHQ7CisgICAgZmVhdHVyZXMgPSB7ICJ3aWR0aCI6IHdp
ZHRoX3ZhbCwKKyAgICAgICAgICAgICAgICAgICAgICAiaGVpZ2h0IjogaGVpZ2h0X3ZhbCwKKyAg
ICAgICAgICAgICAgICAgICAgICAiZGV2aWNlLXdpZHRoIjogZGV2aWNlX3dpZHRoLAorICAgICAg
ICAgICAgICAgICAgICAgICJkZXZpY2UtaGVpZ2h0IjogZGV2aWNlX2hlaWdodCB9OworICAgIGZv
ciAoZmVhdHVyZSBpbiBmZWF0dXJlcykgeworICAgICAgdmFyIHZhbHVlID0gZmVhdHVyZXNbZmVh
dHVyZV07CisgICAgICBzaG91bGRfYXBwbHkoImFsbCBhbmQgKCIgKyBmZWF0dXJlICsgIjogIiAr
IHZhbHVlICsgInB4KSIsICJhbGwgYW5kICgiICsgZmVhdHVyZSArICI6ICIgKyBmZWF0dXJlICsg
IiBweCkiKTsKKyAgICAgIHNob3VsZF9ub3RfYXBwbHkoImFsbCBhbmQgKCIgKyBmZWF0dXJlICsg
IjogIiArICh2YWx1ZSArIDEpICsgInB4KSIsICJhbGwgYW5kICgiICsgZmVhdHVyZSArICI6ICIg
KyBmZWF0dXJlICsgIiArMSBweCkiKTsKKyAgICAgIHNob3VsZF9ub3RfYXBwbHkoImFsbCBhbmQg
KCIgKyBmZWF0dXJlICsgIjogIiArICh2YWx1ZSAtIDEpICsgInB4KSIsICJhbGwgYW5kICgiICsg
ZmVhdHVyZSArICI6ICIgKyBmZWF0dXJlICsgIiAtMSBweCkiKTsKKyAgICAgIHNob3VsZF9hcHBs
eSgiYWxsIGFuZCAobWluLSIgKyBmZWF0dXJlICsgIjogIiArIHZhbHVlICsgInB4KSIsICJhbGwg
YW5kIChtaW4tIiArIGZlYXR1cmUgKyAiOiAiICsgZmVhdHVyZSArICIgcHgpIik7CisgICAgICBz
aG91bGRfbm90X2FwcGx5KCJhbGwgYW5kIChtaW4tIiArIGZlYXR1cmUgKyAiOiAiICsgKHZhbHVl
ICsgMSkgKyAicHgpIiwgImFsbCBhbmQgKG1pbi0iICsgZmVhdHVyZSArICI6ICIgKyBmZWF0dXJl
ICsgIiArMSBweCkiKTsKKyAgICAgIHNob3VsZF9hcHBseSgiYWxsIGFuZCAobWluLSIgKyBmZWF0
dXJlICsgIjogIiArICh2YWx1ZSAtIDEpICsgInB4KSIsICJhbGwgYW5kIChtaW4tIiArIGZlYXR1
cmUgKyAiOiAiICsgZmVhdHVyZSArICIgLTEgcHgpIik7CisgICAgICBzaG91bGRfYXBwbHkoImFs
bCBhbmQgKG1heC0iICsgZmVhdHVyZSArICI6ICIgKyB2YWx1ZSArICJweCkiLCAiYWxsIGFuZCAo
bWF4LSIgKyBmZWF0dXJlICsgIjogIiArIGZlYXR1cmUgKyAiIHB4KSIpOworICAgICAgc2hvdWxk
X2FwcGx5KCJhbGwgYW5kIChtYXgtIiArIGZlYXR1cmUgKyAiOiAiICsgKHZhbHVlICsgMSkgKyAi
cHgpIiwgImFsbCBhbmQgKG1heC0iICsgZmVhdHVyZSArICI6ICIgKyBmZWF0dXJlICsgIiArMSBw
eCkiKTsKKyAgICAgIHNob3VsZF9ub3RfYXBwbHkoImFsbCBhbmQgKG1heC0iICsgZmVhdHVyZSAr
ICI6ICIgKyAodmFsdWUgLSAxKSArICJweCkiLCAiYWxsIGFuZCAobWF4LSIgKyBmZWF0dXJlICsg
IjogIiArIGZlYXR1cmUgKyAiICsxIHB4KSIpOworICAgICAgc2hvdWxkX25vdF9hcHBseSgiYWxs
IGFuZCAobWluLSIgKyBmZWF0dXJlICsgIjogIiArCisgICAgICAgICAgICAgICAgICAgICAgIChN
YXRoLmNlaWwodmFsdWUvZW1fc2l6ZSkgKyAxKSArICJlbSkiLCAiYWxsIGFuZCAobWluLSIgKyBm
ZWF0dXJlICsgIjogIiArIGZlYXR1cmUgKyAiICsxIGVtKSIpOworICAgICAgc2hvdWxkX2FwcGx5
KCJhbGwgYW5kIChtaW4tIiArIGZlYXR1cmUgKyAiOiAiICsKKyAgICAgICAgICAgICAgICAgICAo
TWF0aC5mbG9vcih2YWx1ZS9lbV9zaXplKSAtIDEpICsgImVtKSIsICJhbGwgYW5kIChtaW4tIiAr
IGZlYXR1cmUgKyAiOiAiICsgZmVhdHVyZSArICIgLTEgZW0pIik7CisgICAgICBzaG91bGRfYXBw
bHkoImFsbCBhbmQgKG1heC0iICsgZmVhdHVyZSArICI6ICIgKworICAgICAgICAgICAgICAgICAg
IChNYXRoLmNlaWwodmFsdWUvZW1fc2l6ZSkgKyAxKSArICJlbSkiLCAiYWxsIGFuZCAobWF4LSIg
KyBmZWF0dXJlICsgIjogIiArIGZlYXR1cmUgKyAiICsxIGVtKSIpOworICAgICAgc2hvdWxkX25v
dF9hcHBseSgiYWxsIGFuZCAobWF4LSIgKyBmZWF0dXJlICsgIjogIiArCisgICAgICAgICAgICAg
ICAgICAgICAgIChNYXRoLmZsb29yKHZhbHVlL2VtX3NpemUpIC0gMSkgKyAiZW0pIiwgImFsbCBh
bmQgKG1heC0iICsgZmVhdHVyZSArICI6ICIgKyBmZWF0dXJlICsgIiAtMSBlbSkiKTsKKyAgICB9
CisKKyAgICBpZnJhbWVfc3R5bGUud2lkdGggPSAiMCI7CisgICAgc2hvdWxkX2FwcGx5KCJhbGwg
YW5kIChoZWlnaHQpIik7CisgICAgc2hvdWxkX25vdF9hcHBseSgiYWxsIGFuZCAod2lkdGgpIik7
CisgICAgaWZyYW1lX3N0eWxlLmhlaWdodCA9ICIwIjsKKyAgICBzaG91bGRfbm90X2FwcGx5KCJh
bGwgYW5kIChoZWlnaHQpIik7CisgICAgc2hvdWxkX25vdF9hcHBseSgiYWxsIGFuZCAod2lkdGgp
Iik7CisgICAgc2hvdWxkX2FwcGx5KCJhbGwgYW5kIChkZXZpY2UtaGVpZ2h0KSIpOworICAgIHNo
b3VsZF9hcHBseSgiYWxsIGFuZCAoZGV2aWNlLXdpZHRoKSIpOworICAgIGlmcmFtZV9zdHlsZS53
aWR0aCA9IHdpZHRoX3ZhbCArICJweCI7CisgICAgc2hvdWxkX25vdF9hcHBseSgiYWxsIGFuZCAo
aGVpZ2h0KSIpOworICAgIHNob3VsZF9hcHBseSgiYWxsIGFuZCAod2lkdGgpIik7CisgICAgaWZy
YW1lX3N0eWxlLmhlaWdodCA9IGhlaWdodF92YWwgKyAicHgiOworICAgIHNob3VsZF9hcHBseSgi
YWxsIGFuZCAoaGVpZ2h0KSIpOworICAgIHNob3VsZF9hcHBseSgiYWxsIGFuZCAod2lkdGgpIik7
CisKKyAgICAvLyByYXRpbyB0aGF0IHJlZHVjZXMgdG8gNTkvNDAKKyAgICBpZnJhbWVfc3R5bGUu
d2lkdGggPSAiMjM2cHgiOworICAgIGlmcmFtZV9zdHlsZS5oZWlnaHQgPSAiMTYwcHgiOworICAg
IGV4cHJlc3Npb25fc2hvdWxkX2JlX3BhcnNlYWJsZSgib3JpZW50YXRpb24iKTsKKyAgICBleHBy
ZXNzaW9uX3Nob3VsZF9iZV9wYXJzZWFibGUoIm9yaWVudGF0aW9uOiBwb3J0cmFpdCIpOworICAg
IGV4cHJlc3Npb25fc2hvdWxkX2JlX3BhcnNlYWJsZSgib3JpZW50YXRpb246IGxhbmRzY2FwZSIp
OworICAgIGV4cHJlc3Npb25fc2hvdWxkX25vdF9iZV9wYXJzZWFibGUoIm1pbi1vcmllbnRhdGlv
biIpOworICAgIGV4cHJlc3Npb25fc2hvdWxkX25vdF9iZV9wYXJzZWFibGUoIm1pbi1vcmllbnRh
dGlvbjogcG9ydHJhaXQiKTsKKyAgICBleHByZXNzaW9uX3Nob3VsZF9ub3RfYmVfcGFyc2VhYmxl
KCJtaW4tb3JpZW50YXRpb246IGxhbmRzY2FwZSIpOworICAgIGV4cHJlc3Npb25fc2hvdWxkX25v
dF9iZV9wYXJzZWFibGUoIm1heC1vcmllbnRhdGlvbiIpOworICAgIGV4cHJlc3Npb25fc2hvdWxk
X25vdF9iZV9wYXJzZWFibGUoIm1heC1vcmllbnRhdGlvbjogcG9ydHJhaXQiKTsKKyAgICBleHBy
ZXNzaW9uX3Nob3VsZF9ub3RfYmVfcGFyc2VhYmxlKCJtYXgtb3JpZW50YXRpb246IGxhbmRzY2Fw
ZSIpOworICAgIHNob3VsZF9hcHBseSgiKG9yaWVudGF0aW9uKSIpOworICAgIHNob3VsZF9hcHBs
eSgiKG9yaWVudGF0aW9uOiBsYW5kc2NhcGUpIik7CisgICAgc2hvdWxkX25vdF9hcHBseSgiKG9y
aWVudGF0aW9uOiBwb3J0cmFpdCkiKTsKKyAgICBzaG91bGRfYXBwbHkoIm5vdCBhbGwgYW5kIChv
cmllbnRhdGlvbjogcG9ydHJhaXQpIik7CisgICAgLy8gcmF0aW8gdGhhdCByZWR1Y2VzIHRvIDU5
LzgwCisgICAgaWZyYW1lX3N0eWxlLmhlaWdodCA9ICIzMjBweCI7CisgICAgc2hvdWxkX2FwcGx5
KCIob3JpZW50YXRpb24pIik7CisgICAgc2hvdWxkX25vdF9hcHBseSgiKG9yaWVudGF0aW9uOiBs
YW5kc2NhcGUpIik7CisgICAgc2hvdWxkX2FwcGx5KCJub3QgYWxsIGFuZCAob3JpZW50YXRpb246
IGxhbmRzY2FwZSkiKTsKKyAgICBzaG91bGRfYXBwbHkoIihvcmllbnRhdGlvbjogcG9ydHJhaXQp
Iik7CisKKyAgICBzaG91bGRfYXBwbHkoIihhc3BlY3QtcmF0aW86IDU5LzgwKSIpOworICAgIHNo
b3VsZF9ub3RfYXBwbHkoIihhc3BlY3QtcmF0aW86IDU4LzgwKSIpOworICAgIHNob3VsZF9ub3Rf
YXBwbHkoIihhc3BlY3QtcmF0aW86IDU5LzgxKSIpOworICAgIHNob3VsZF9ub3RfYXBwbHkoIihh
c3BlY3QtcmF0aW86IDYwLzgwKSIpOworICAgIHNob3VsZF9ub3RfYXBwbHkoIihhc3BlY3QtcmF0
aW86IDU5Lzc5KSIpOworICAgIHNob3VsZF9hcHBseSgiKGFzcGVjdC1yYXRpbzogMTc3LzI0MCki
KTsKKyAgICBzaG91bGRfYXBwbHkoIihhc3BlY3QtcmF0aW86IDQxMy81NjApIik7CisgICAgc2hv
dWxkX2FwcGx5KCIoYXNwZWN0LXJhdGlvOiA1OTAwLzgwMDApIik7CisgICAgc2hvdWxkX25vdF9h
cHBseSgiKGFzcGVjdC1yYXRpbzogNTkwMS84MDAwKSIpOworICAgIHNob3VsZF9ub3RfYXBwbHko
Iihhc3BlY3QtcmF0aW86IDU4OTkvODAwMCkiKTsKKyAgICBzaG91bGRfbm90X2FwcGx5KCIoYXNw
ZWN0LXJhdGlvOiA1OTAwLzgwMDEpIik7CisgICAgc2hvdWxkX25vdF9hcHBseSgiKGFzcGVjdC1y
YXRpbzogNTkwMC83OTk5KSIpOworICAgIHNob3VsZF9hcHBseSgiKGFzcGVjdC1yYXRpbykiKTsK
KworICAgIHNob3VsZF9hcHBseSgiKG1pbi1hc3BlY3QtcmF0aW86IDU5LzgwKSIpOworICAgIHNo
b3VsZF9hcHBseSgiKG1pbi1hc3BlY3QtcmF0aW86IDU4LzgwKSIpOworICAgIHNob3VsZF9hcHBs
eSgiKG1pbi1hc3BlY3QtcmF0aW86IDU5LzgxKSIpOworICAgIHNob3VsZF9ub3RfYXBwbHkoIiht
aW4tYXNwZWN0LXJhdGlvOiA2MC84MCkiKTsKKyAgICBzaG91bGRfbm90X2FwcGx5KCIobWluLWFz
cGVjdC1yYXRpbzogNTkvNzkpIik7CisgICAgZXhwcmVzc2lvbl9zaG91bGRfbm90X2JlX3BhcnNl
YWJsZSgibWluLWFzcGVjdC1yYXRpbyIpOworCisgICAgc2hvdWxkX2FwcGx5KCIobWF4LWFzcGVj
dC1yYXRpbzogNTkvODApIik7CisgICAgc2hvdWxkX25vdF9hcHBseSgiKG1heC1hc3BlY3QtcmF0
aW86IDU4LzgwKSIpOworICAgIHNob3VsZF9ub3RfYXBwbHkoIihtYXgtYXNwZWN0LXJhdGlvOiA1
OS84MSkiKTsKKyAgICBzaG91bGRfYXBwbHkoIihtYXgtYXNwZWN0LXJhdGlvOiA2MC84MCkiKTsK
KyAgICBzaG91bGRfYXBwbHkoIihtYXgtYXNwZWN0LXJhdGlvOiA1OS83OSkiKTsKKyAgICBleHBy
ZXNzaW9uX3Nob3VsZF9ub3RfYmVfcGFyc2VhYmxlKCJtYXgtYXNwZWN0LXJhdGlvIik7CisKKyAg
ICB2YXIgcmVhbF9kYXIgPSBkZXZpY2Vfd2lkdGggKyAiLyIgKyBkZXZpY2VfaGVpZ2h0OworICAg
IHZhciBoaWdoX2Rhcl8xID0gKGRldmljZV93aWR0aCArIDEpICsgIi8iICsgZGV2aWNlX2hlaWdo
dDsKKyAgICB2YXIgaGlnaF9kYXJfMiA9IGRldmljZV93aWR0aCArICIvIiArIChkZXZpY2VfaGVp
Z2h0IC0gMSk7CisgICAgdmFyIGxvd19kYXJfMSA9IChkZXZpY2Vfd2lkdGggLSAxKSArICIvIiAr
IGRldmljZV9oZWlnaHQ7CisgICAgdmFyIGxvd19kYXJfMiA9IGRldmljZV93aWR0aCArICIvIiAr
IChkZXZpY2VfaGVpZ2h0ICsgMSk7CisgICAgc2hvdWxkX2FwcGx5KCIoZGV2aWNlLWFzcGVjdC1y
YXRpbzogIiArIHJlYWxfZGFyICsgIikiLCAiKGRldmljZS1hc3BlY3QtcmF0aW86IGRldmljZS13
aWR0aCAvIGRldmljZS1oZWlnaHQpIik7CisgICAgc2hvdWxkX2FwcGx5KCJub3QgYWxsIGFuZCAo
ZGV2aWNlLWFzcGVjdC1yYXRpbzogIiArIGhpZ2hfZGFyXzEgKyAiKSIsICJub3QgYWxsIGFuZCAo
ZGV2aWNlLWFzcGVjdC1yYXRpbzogZGV2aWNlLXdpZHRoICsgMSAvIGRldmljZS1oZWlnaHQpIik7
CisgICAgc2hvdWxkX25vdF9hcHBseSgiYWxsIGFuZCAoZGV2aWNlLWFzcGVjdC1yYXRpbzogIiAr
IGhpZ2hfZGFyXzIgKyAiKSIsICJhbGwgYW5kIChkZXZpY2UtYXNwZWN0LXJhdGlvOiBkZXZpY2Ut
d2lkdGggLyBkZXZpY2UtaGVpZ2h0IC0gMSkiKTsKKyAgICBzaG91bGRfbm90X2FwcGx5KCJhbGwg
YW5kIChkZXZpY2UtYXNwZWN0LXJhdGlvOiAiICsgbG93X2Rhcl8xICsgIikiLCAiYWxsIGFuZCAo
ZGV2aWNlLWFzcGVjdC1yYXRpbzogZGV2aWNlLXdpZHRoIC0gMSAvIGRldmljZS1oZWlnaHQpIik7
CisgICAgc2hvdWxkX2FwcGx5KCJub3QgYWxsIGFuZCAoZGV2aWNlLWFzcGVjdC1yYXRpbzogIiAr
IGxvd19kYXJfMiArICIpIiwgIm5vdCBhbGwgYW5kIChkZXZpY2UtYXNwZWN0LXJhdGlvOiBkZXZp
Y2Utd2lkdGggLyBkZXZpY2UtaGVpZ2h0ICsgMSkiKTsKKyAgICBzaG91bGRfYXBwbHkoIihkZXZp
Y2UtYXNwZWN0LXJhdGlvKSIpOworCisgICAgc2hvdWxkX2FwcGx5KCIobWluLWRldmljZS1hc3Bl
Y3QtcmF0aW86ICIgKyByZWFsX2RhciArICIpIiwgIihtaW4tZGV2aWNlLWFzcGVjdC1yYXRpbzog
ZGV2aWNlLXdpZHRoIC8gZGV2aWNlLWhlaWdodCkiKTsKKyAgICBzaG91bGRfbm90X2FwcGx5KCJh
bGwgYW5kIChtaW4tZGV2aWNlLWFzcGVjdC1yYXRpbzogIiArIGhpZ2hfZGFyXzEgKyAiKSIsICJu
b3QgYWxsIGFuZCAoZGV2aWNlLWFzcGVjdC1yYXRpbzogZGV2aWNlLXdpZHRoICsgMSAvIGRldmlj
ZS1oZWlnaHQpIik7CisgICAgc2hvdWxkX2FwcGx5KCJub3QgYWxsIGFuZCAobWluLWRldmljZS1h
c3BlY3QtcmF0aW86ICIgKyBoaWdoX2Rhcl8yICsgIikiLCAibm90IGFsbCBhbmQgKG1pbi1kZXZp
Y2UtYXNwZWN0LXJhdGlvOiBkZXZpY2Utd2lkdGggLyBkZXZpY2UtaGVpZ2h0IC0gMSkiKTsKKyAg
ICBzaG91bGRfbm90X2FwcGx5KCJub3QgYWxsIGFuZCAobWluLWRldmljZS1hc3BlY3QtcmF0aW86
ICIgKyBsb3dfZGFyXzEgKyAiKSIsICJub3QgYWxsIGFuZCAobWluLWRldmljZS1hc3BlY3QtcmF0
aW86IGRldmljZS13aWR0aCAtIDEgLyBkZXZpY2UtaGVpZ2h0KSIgKTsKKyAgICBzaG91bGRfYXBw
bHkoImFsbCBhbmQgKG1pbi1kZXZpY2UtYXNwZWN0LXJhdGlvOiAiICsgbG93X2Rhcl8yICsgIiki
LCAiYWxsIGFuZCAobWluLWRldmljZS1hc3BlY3QtcmF0aW86IGRldmljZS13aWR0aCAvIGRldmlj
ZS1oZWlnaHQgKyAxKSIpOworICAgIGV4cHJlc3Npb25fc2hvdWxkX25vdF9iZV9wYXJzZWFibGUo
Im1pbi1kZXZpY2UtYXNwZWN0LXJhdGlvIik7CisKKyAgICBzaG91bGRfYXBwbHkoImFsbCBhbmQg
KG1heC1kZXZpY2UtYXNwZWN0LXJhdGlvOiAiICsgcmVhbF9kYXIgKyAiKSIsICJhbGwgYW5kICht
YXgtZGV2aWNlLWFzcGVjdC1yYXRpbzogZGV2aWNlLXdpZHRoIC8gZGV2aWNlLWhlaWdodCkiKTsK
KyAgICBzaG91bGRfYXBwbHkoIihtYXgtZGV2aWNlLWFzcGVjdC1yYXRpbzogIiArIGhpZ2hfZGFy
XzEgKyAiKSIsICIobWF4LWRldmljZS1hc3BlY3QtcmF0aW86IGRldmljZS13aWR0aCArIDEgLyBk
ZXZpY2UtaGVpZ2h0KSIpOworICAgIHNob3VsZF9hcHBseSgiKG1heC1kZXZpY2UtYXNwZWN0LXJh
dGlvOiAiICsgaGlnaF9kYXJfMiArICIpIiwgIihtYXgtZGV2aWNlLWFzcGVjdC1yYXRpbzogZGV2
aWNlLXdpZHRoIC8gZGV2aWNlLWhlaWdodCAtIDEiKTsKKyAgICBzaG91bGRfbm90X2FwcGx5KCJh
bGwgYW5kIChtYXgtZGV2aWNlLWFzcGVjdC1yYXRpbzogIiArIGxvd19kYXJfMSArICIpIiwgImFs
bCBhbmQgKG1heC1kZXZpY2UtYXNwZWN0LXJhdGlvOiBkZXZpY2Utd2lkdGggLSAxIC8gZGV2aWNl
LWhlaWdodCkiKTsKKyAgICBzaG91bGRfYXBwbHkoIm5vdCBhbGwgYW5kIChtYXgtZGV2aWNlLWFz
cGVjdC1yYXRpbzogIiArIGxvd19kYXJfMiArICIpIiwgIm5vdCBhbGwgYW5kIChtYXgtZGV2aWNl
LWFzcGVjdC1yYXRpbzogZGV2aWNlLXdpZHRoIC8gZGV2aWNlLWhlaWdodCArIDEpIik7CisgICAg
ZXhwcmVzc2lvbl9zaG91bGRfbm90X2JlX3BhcnNlYWJsZSgibWF4LWRldmljZS1hc3BlY3QtcmF0
aW8iKTsKKworICAgIGZlYXR1cmVzID0gWyAibWF4LWFzcGVjdC1yYXRpbyIsICJkZXZpY2UtYXNw
ZWN0LXJhdGlvIiBdOworICAgIGZvciAoaSBpbiBmZWF0dXJlcykgeworICAgICAgZmVhdHVyZSA9
IGZlYXR1cmVzW2ldOworICAgICAgZXhwcmVzc2lvbl9zaG91bGRfYmVfcGFyc2VhYmxlKGZlYXR1
cmUgKyAiOiAxLzEiKTsKKyAgICAgIGV4cHJlc3Npb25fc2hvdWxkX2JlX3BhcnNlYWJsZShmZWF0
dXJlICsgIjogMSAgLzEiKTsKKyAgICAgIGV4cHJlc3Npb25fc2hvdWxkX2JlX3BhcnNlYWJsZShm
ZWF0dXJlICsgIjogMSAgLyBcdFxuMSIpOworICAgICAgZXhwcmVzc2lvbl9zaG91bGRfYmVfcGFy
c2VhYmxlKGZlYXR1cmUgKyAiOiAxL1xyMSIpOworICAgICAgZXhwcmVzc2lvbl9zaG91bGRfbm90
X2JlX3BhcnNlYWJsZShmZWF0dXJlICsgIjogMSIpOworICAgICAgZXhwcmVzc2lvbl9zaG91bGRf
bm90X2JlX3BhcnNlYWJsZShmZWF0dXJlICsgIjogMC41Iik7CisgICAgICBleHByZXNzaW9uX3No
b3VsZF9ub3RfYmVfcGFyc2VhYmxlKGZlYXR1cmUgKyAiOiAxLjAvMSIpOworICAgICAgZXhwcmVz
c2lvbl9zaG91bGRfbm90X2JlX3BhcnNlYWJsZShmZWF0dXJlICsgIjogMS8xLjAiKTsKKyAgICAg
IGV4cHJlc3Npb25fc2hvdWxkX25vdF9iZV9wYXJzZWFibGUoZmVhdHVyZSArICI6IDEuMC8xLjAi
KTsKKyAgICAgIGV4cHJlc3Npb25fc2hvdWxkX25vdF9iZV9wYXJzZWFibGUoZmVhdHVyZSArICI6
IDAvMSIpOworICAgICAgZXhwcmVzc2lvbl9zaG91bGRfbm90X2JlX3BhcnNlYWJsZShmZWF0dXJl
ICsgIjogMS8wIik7CisgICAgICBleHByZXNzaW9uX3Nob3VsZF9ub3RfYmVfcGFyc2VhYmxlKGZl
YXR1cmUgKyAiOiAwLzAiKTsKKyAgICAgIGV4cHJlc3Npb25fc2hvdWxkX25vdF9iZV9wYXJzZWFi
bGUoZmVhdHVyZSArICI6IC0xLzEiKTsKKyAgICAgIGV4cHJlc3Npb25fc2hvdWxkX25vdF9iZV9w
YXJzZWFibGUoZmVhdHVyZSArICI6IDEvLTEiKTsKKyAgICAgIGV4cHJlc3Npb25fc2hvdWxkX25v
dF9iZV9wYXJzZWFibGUoZmVhdHVyZSArICI6IC0xLy0xIik7CisgICAgfQorCisgICAgdmFyIGlz
X21vbm9jaHJvbWUgPSBxdWVyeV9hcHBsaWVzKCJhbGwgYW5kIChtaW4tbW9ub2Nocm9tZTogMSki
KTsKKyAgICB2YXIgaXNfY29sb3IgPSBxdWVyeV9hcHBsaWVzKCJhbGwgYW5kIChtaW4tY29sb3I6
IDEpIik7CisgICAgdmFyIGNvbG9yU3RyaW5nID0gaXNfY29sb3IgPyAiY29sb3IiIDogIm1vbm9j
aHJvbWUiOworICAgIHRlc3QoZnVuY3Rpb24oKSB7CisgICAgICBhc3NlcnRfbm90X2VxdWFscyhp
c19tb25vY2hyb21lLCBpc19jb2xvciwgInNob3VsZCBiZSBlaXRoZXIgbW9ub2Nocm9tZSBvciBj
b2xvciIpOworICAgIH0sICJtb25vY2hyb21lX2FuZF9jb2xvciIpOworCisgICAgZnVuY3Rpb24g
ZGVwdGhfcXVlcnkocHJlZml4LCBkZXB0aCkgeworICAgICAgcmV0dXJuICJhbGwgYW5kICgiICsg
cHJlZml4ICsgY29sb3JTdHJpbmcgKworICAgICAgICAgICAgICI6IiArIGRlcHRoICsgIikiOwor
ICAgIH0KKworICAgIHZhciBkZXB0aCA9IDA7CisgICAgZG8geworICAgICAgaWYgKGRlcHRoID4g
NTApIHsKKyAgICAgICAgYnJlYWs7CisgICAgICB9CisgICAgfSB3aGlsZSAocXVlcnlfYXBwbGll
cyhkZXB0aF9xdWVyeSgibWluLSIsICsrZGVwdGgpKSk7CisgICAgdGVzdChmdW5jdGlvbigpIHsK
KyAgICAgIGFzc2VydF9mYWxzZSg1MCA8IGRlcHRoKTsKKyAgICB9LCAiZmluZF9kZXB0aCIpOwor
ICAgIC0tZGVwdGg7CisKKyAgICBzaG91bGRfYXBwbHkoZGVwdGhfcXVlcnkoIiIsIGRlcHRoKSwg
ImFsbCBhbmQgKCIgKyBjb2xvclN0cmluZyArICI6IGRlcHRoKSIpOworICAgIHNob3VsZF9ub3Rf
YXBwbHkoZGVwdGhfcXVlcnkoIiIsIGRlcHRoIC0gMSksICJhbGwgYW5kICgiICsgY29sb3JTdHJp
bmcgKyAiOiBkZXB0aCAtIDEpIik7CisgICAgc2hvdWxkX25vdF9hcHBseShkZXB0aF9xdWVyeSgi
IiwgZGVwdGggKyAxKSwgImFsbCBhbmQgKCIgKyBjb2xvclN0cmluZyArICI6IGRlcHRoICsgMSki
KTsKKyAgICBzaG91bGRfYXBwbHkoZGVwdGhfcXVlcnkoIm1heC0iLCBkZXB0aCksICJhbGwgYW5k
IChtYXgtIiArIGNvbG9yU3RyaW5nICsgIjogZGVwdGgpIik7CisgICAgc2hvdWxkX25vdF9hcHBs
eShkZXB0aF9xdWVyeSgibWF4LSIsIGRlcHRoIC0gMSksICJhbGwgYW5kIChtYXgtIiArIGNvbG9y
U3RyaW5nICsgIjogZGVwdGggLSAxKSIpOworICAgIHNob3VsZF9hcHBseShkZXB0aF9xdWVyeSgi
bWF4LSIsIGRlcHRoICsgMSksICJhbGwgYW5kIChtYXgtIiArIGNvbG9yU3RyaW5nICsgIjogZGVw
dGggKyAxKSIpOworCisgICAgKGlzX2NvbG9yID8gc2hvdWxkX2FwcGx5IDogc2hvdWxkX25vdF9h
cHBseSkoImFsbCBhbmQgKGNvbG9yKSIpOworICAgIGV4cHJlc3Npb25fc2hvdWxkX25vdF9iZV9w
YXJzZWFibGUoIm1heC1jb2xvciIpOworICAgIGV4cHJlc3Npb25fc2hvdWxkX25vdF9iZV9wYXJz
ZWFibGUoIm1pbi1jb2xvciIpOworICAgIChpc19jb2xvciA/IHNob3VsZF9ub3RfYXBwbHkgOiBz
aG91bGRfYXBwbHkpKCJhbGwgYW5kIChtb25vY2hyb21lKSIpOworICAgIGV4cHJlc3Npb25fc2hv
dWxkX25vdF9iZV9wYXJzZWFibGUoIm1heC1tb25vY2hyb21lIik7CisgICAgZXhwcmVzc2lvbl9z
aG91bGRfbm90X2JlX3BhcnNlYWJsZSgibWluLW1vbm9jaHJvbWUiKTsKKyAgICAoaXNfY29sb3Ig
PyBzaG91bGRfYXBwbHkgOiBzaG91bGRfbm90X2FwcGx5KSgibm90IGFsbCBhbmQgKG1vbm9jaHJv
bWUpIik7CisgICAgKGlzX2NvbG9yID8gc2hvdWxkX25vdF9hcHBseSA6IHNob3VsZF9hcHBseSko
Im5vdCBhbGwgYW5kIChjb2xvcikiKTsKKyAgICAoaXNfY29sb3IgPyBzaG91bGRfYXBwbHkgOiBz
aG91bGRfbm90X2FwcGx5KSgib25seSBhbGwgYW5kIChjb2xvcikiKTsKKyAgICAoaXNfY29sb3Ig
PyBzaG91bGRfbm90X2FwcGx5IDogc2hvdWxkX2FwcGx5KSgib25seSBhbGwgYW5kIChtb25vY2hy
b21lKSIpOworCisgICAgZmVhdHVyZXMgPSBbICJjb2xvciIsICJtaW4tbW9ub2Nocm9tZSIgXTsK
KyAgICBmb3IgKGkgaW4gZmVhdHVyZXMpIHsKKyAgICAgIGZlYXR1cmUgPSBmZWF0dXJlc1tpXTsK
KyAgICAgIGV4cHJlc3Npb25fc2hvdWxkX2JlX3BhcnNlYWJsZShmZWF0dXJlICsgIjogMSIpOwor
ICAgICAgZXhwcmVzc2lvbl9zaG91bGRfYmVfcGFyc2VhYmxlKGZlYXR1cmUgKyAiOiAzMjciKTsK
KyAgICAgIGV4cHJlc3Npb25fc2hvdWxkX2JlX3BhcnNlYWJsZShmZWF0dXJlICsgIjogMCIpOwor
ICAgICAgZXhwcmVzc2lvbl9zaG91bGRfbm90X2JlX3BhcnNlYWJsZShmZWF0dXJlICsgIjogMS4w
Iik7CisgICAgICBleHByZXNzaW9uX3Nob3VsZF9ub3RfYmVfcGFyc2VhYmxlKGZlYXR1cmUgKyAi
OiAtMSIpOworICAgICAgZXhwcmVzc2lvbl9zaG91bGRfbm90X2JlX3BhcnNlYWJsZShmZWF0dXJl
ICsgIjogMS8xIik7CisgICAgfQorCisgICAgZXhwcmVzc2lvbl9zaG91bGRfYmVfcGFyc2VhYmxl
KCJncmlkIik7CisgICAgZXhwcmVzc2lvbl9zaG91bGRfYmVfcGFyc2VhYmxlKCJncmlkOiAwIik7
CisgICAgZXhwcmVzc2lvbl9zaG91bGRfYmVfcGFyc2VhYmxlKCJncmlkOiAxIik7CisgICAgZXhw
cmVzc2lvbl9zaG91bGRfYmVfcGFyc2VhYmxlKCJncmlkOiAxIik7CisgICAgZXhwcmVzc2lvbl9z
aG91bGRfbm90X2JlX3BhcnNlYWJsZSgibWluLWdyaWQiKTsKKyAgICBleHByZXNzaW9uX3Nob3Vs
ZF9ub3RfYmVfcGFyc2VhYmxlKCJtaW4tZ3JpZDowIik7CisgICAgZXhwcmVzc2lvbl9zaG91bGRf
bm90X2JlX3BhcnNlYWJsZSgibWF4LWdyaWQ6IDEiKTsKKyAgICBleHByZXNzaW9uX3Nob3VsZF9u
b3RfYmVfcGFyc2VhYmxlKCJncmlkOiAyIik7CisgICAgZXhwcmVzc2lvbl9zaG91bGRfbm90X2Jl
X3BhcnNlYWJsZSgiZ3JpZDogLTEiKTsKKworICAgIC8vIEFzc3VtZSB3ZSBkb24ndCBzdXBwb3J0
IGdyaWQgZGV2aWNlcworICAgIHNob3VsZF9ub3RfYXBwbHkoIihncmlkKSIpOworICAgIHNob3Vs
ZF9hcHBseSgiKGdyaWQ6IDApIik7CisgICAgc2hvdWxkX25vdF9hcHBseSgiKGdyaWQ6IDEpIik7
CisgICAgc2hvdWxkX25vdF9hcHBseSgiKGdyaWQ6IDIpIik7CisgICAgc2hvdWxkX25vdF9hcHBs
eSgiKGdyaWQ6IC0xKSIpOworCisgICAgZG9uZSgpOworfQorCis8L3NjcmlwdD4KKzwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZwppbmRleCBjYTdlZDQ3Li4wOGZiMzU1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMjQgQEAKKzIwMTItMTAtMDQgIEFsZXhhbmRlciBTaGFsYW1vdiAgPGFsZXhhbmRlci5z
aGFsYW1vdkBpbnRlbC5jb20+CisKKyAgICAgICAgSW52YWxpZCB2YWx1ZXMgZm9yIG1lZGlhIHF1
ZXJ5IGZlYXR1cmVzIGFyZSBub3QgaGFuZGxlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTcwMDYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBBZGRpdGlvbmFsIGluZm9ybWF0aW9uIG9mIHRoZSBjaGFuZ2Ug
c3VjaCBhcyBhcHByb2FjaCwgcmF0aW9uYWxlLiBQbGVhc2UgYWRkIHBlci1mdW5jdGlvbiBkZXNj
cmlwdGlvbnMgYmVsb3cgKE9PUFMhKS4KKworICAgICAgICBUZXN0czogZmFzdC9tZWRpYS93M2Mv
dGVzdF9tZWRpYV9xdWVyaWVzLmh0bWwKKworICAgICAgICAqIGNzcy9DU1NHcmFtbWFyLnk6IEhh
bmRsZSBtZWRpYSBxdWVyeSBleHByZXNzaW9uIHdpdGggc3BlY2lmaWVkIG1lZGlhIHJlc3RyaWN0
b3IgYXMgaW52YWxpZC4KKyAgICAgICAgKiBjc3MvTWVkaWFRdWVyeS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYVF1ZXJ5OjpzZXJpYWxpemUpOiBTZXJpYWxpemUgaW52YWxpZCBxdWVyeSBh
Y2NvcmRpbmcgdG8gc3BlY2lmaWNhdGlvbi4KKyAgICAgICAgKiBjc3MvTWVkaWFRdWVyeUV2YWx1
YXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpvcmllbnRhdGlvbk1lZGlhRmVhdHVyZUV2YWwp
OiBDb21wYXJlIENTU1ZhbHVlSUQgaW5zdGVhZCBvZiBzdHJpbmdzLgorICAgICAgICAoV2ViQ29y
ZTo6dmlld19tb2RlTWVkaWFGZWF0dXJlRXZhbCk6IENvbXBhcmUgQ1NTVmFsdWVJRCBpbnN0ZWFk
IG9mIHN0cmluZ3MuCisgICAgICAgIChXZWJDb3JlOjpwb2ludGVyTWVkaWFGZWF0dXJlRXZhbCk6
IENvbXBhcmUgQ1NTVmFsdWVJRCBpbnN0ZWFkIG9mIHN0cmluZ3MuCisgICAgICAgICogY3NzL01l
ZGlhUXVlcnlFeHAuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFRdWVyeUV4cDo6TWVkaWFR
dWVyeUV4cCk6IENoZWNrIHRoYXQgbWVkaWEgZmVhdHVyZXMgaW5pdGlhbGl6ZWQgd2l0aCBjb3Jy
ZWN0IHZhbHVlcy4KKwogMjAxMi0xMC0wMyAgQWxleGFuZGVyIFNoYWxhbW92ICA8YWxleGFuZGVy
LnNoYWxhbW92QGludGVsLmNvbT4KIAogICAgICAgICBDU1MgU3R5bGUgaXMgbm90IHJlY2FsY3Vs
YXRlZCB3aGVuIG1lZGlhIGF0dHJpYnV0ZSBvZiBzdHlsZSBlbGVtZW50IGlzIGNoYW5nZWQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NHcmFtbWFyLnkgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTR3JhbW1hci55CmluZGV4IDJiNDI3NGEuLjUzNWEwMzIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NHcmFtbWFyLnkKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NT
U0dyYW1tYXIueQpAQCAtMTAwLDcgKzEwMCw3IEBAIHN0YXRpYyBpbmxpbmUgaW50IGNzc3l5ZXJy
b3Iodm9pZCosIGNvbnN0IGNoYXIqKQogCiAlfQogCi0lZXhwZWN0IDYzCislZXhwZWN0IDY1CiAK
ICVub25hc3NvYyBMT1dFU1RfUFJFQwogCkBAIC01MzQsOSArNTM0LDE0IEBAIG1heWJlX21lZGlh
X3ZhbHVlOgogICAgIDsKIAogbWVkaWFfcXVlcnlfZXhwOgotICAgICcoJyBtYXliZV9zcGFjZSBt
ZWRpYV9mZWF0dXJlIG1heWJlX3NwYWNlIG1heWJlX21lZGlhX3ZhbHVlICcpJyBtYXliZV9zcGFj
ZSB7Ci0gICAgICAgICQzLmxvd2VyKCk7Ci0gICAgICAgICQkID0gcGFyc2VyLT5jcmVhdGVGbG9h
dGluZ01lZGlhUXVlcnlFeHAoJDMsICQ1KTsKKyAgICBtYXliZV9tZWRpYV9yZXN0cmljdG9yIG1h
eWJlX3NwYWNlICcoJyBtYXliZV9zcGFjZSBtZWRpYV9mZWF0dXJlIG1heWJlX3NwYWNlIG1heWJl
X21lZGlhX3ZhbHVlICcpJyBtYXliZV9zcGFjZSB7CisgICAgICAgIC8vIGlmIHJlc3RyaWN0b3Ig
aXMgc3BlY2lmaWVkLCBpZ25vcmUgZXhwcmVzc2lvbgorICAgICAgICBpZiAoJDEgIT0gTWVkaWFR
dWVyeTo6Tm9uZSkKKyAgICAgICAgICAgICQkID0gcGFyc2VyLT5jcmVhdGVGbG9hdGluZ01lZGlh
UXVlcnlFeHAoIiIsIDApOworICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICQ1Lmxvd2VyKCk7
CisgICAgICAgICAgICAkJCA9IHBhcnNlci0+Y3JlYXRlRmxvYXRpbmdNZWRpYVF1ZXJ5RXhwKCQ1
LCAkNyk7CisgICAgICAgIH0KICAgICB9CiAgICAgOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvTWVkaWFRdWVyeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeS5j
cHAKaW5kZXggZmM0NTUxZi4uMTAzYTNjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3Nz
L01lZGlhUXVlcnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5LmNwcApA
QCAtNDEsMzIgKzQxLDM2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIFN0cmluZyBNZWRpYVF1ZXJ5
OjpzZXJpYWxpemUoKSBjb25zdAogewogICAgIFN0cmluZ0J1aWxkZXIgcmVzdWx0OwotCi0gICAg
c3dpdGNoIChtX3Jlc3RyaWN0b3IpIHsKLSAgICBjYXNlIE1lZGlhUXVlcnk6Ok9ubHk6Ci0gICAg
ICAgIHJlc3VsdC5hcHBlbmQoIm9ubHkgIik7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgTWVk
aWFRdWVyeTo6Tm90OgotICAgICAgICByZXN1bHQuYXBwZW5kKCJub3QgIik7Ci0gICAgICAgIGJy
ZWFrOwotICAgIGNhc2UgTWVkaWFRdWVyeTo6Tm9uZToKLSAgICAgICAgYnJlYWs7Ci0gICAgfQot
Ci0gICAgaWYgKG1fZXhwcmVzc2lvbnMtPmlzRW1wdHkoKSkgewotICAgICAgICByZXN1bHQuYXBw
ZW5kKG1fbWVkaWFUeXBlKTsKLSAgICAgICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOwotICAg
IH0KLQotICAgIGlmIChtX21lZGlhVHlwZSAhPSAiYWxsIiB8fCBtX3Jlc3RyaWN0b3IgIT0gTm9u
ZSkgewotICAgICAgICByZXN1bHQuYXBwZW5kKG1fbWVkaWFUeXBlKTsKLSAgICAgICAgcmVzdWx0
LmFwcGVuZCgiIGFuZCAiKTsKLSAgICB9Ci0KLSAgICByZXN1bHQuYXBwZW5kKG1fZXhwcmVzc2lv
bnMtPmF0KDApLT5zZXJpYWxpemUoKSk7Ci0gICAgZm9yIChzaXplX3QgaSA9IDE7IGkgPCBtX2V4
cHJlc3Npb25zLT5zaXplKCk7ICsraSkgewotICAgICAgICByZXN1bHQuYXBwZW5kKCIgYW5kICIp
OwotICAgICAgICByZXN1bHQuYXBwZW5kKG1fZXhwcmVzc2lvbnMtPmF0KGkpLT5zZXJpYWxpemUo
KSk7CisgICAgaWYgKCFtX2lnbm9yZWQpIHsKKyAgICAgICAgc3dpdGNoIChtX3Jlc3RyaWN0b3Ip
IHsKKyAgICAgICAgY2FzZSBNZWRpYVF1ZXJ5OjpPbmx5OgorICAgICAgICAgICAgcmVzdWx0LmFw
cGVuZCgib25seSAiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIE1lZGlhUXVl
cnk6Ok5vdDoKKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoIm5vdCAiKTsKKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICBjYXNlIE1lZGlhUXVlcnk6Ok5vbmU6CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChtX2V4cHJlc3Npb25zLT5pc0VtcHR5KCkpIHsK
KyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQobV9tZWRpYVR5cGUpOworICAgICAgICAgICAgcmV0
dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKG1fbWVkaWFU
eXBlICE9ICJhbGwiIHx8IG1fcmVzdHJpY3RvciAhPSBOb25lKSB7CisgICAgICAgICAgICByZXN1
bHQuYXBwZW5kKG1fbWVkaWFUeXBlKTsKKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoIiBhbmQg
Iik7CisgICAgICAgIH0KKworICAgICAgICByZXN1bHQuYXBwZW5kKG1fZXhwcmVzc2lvbnMtPmF0
KDApLT5zZXJpYWxpemUoKSk7CisgICAgICAgIGZvciAoc2l6ZV90IGkgPSAxOyBpIDwgbV9leHBy
ZXNzaW9ucy0+c2l6ZSgpOyArK2kpIHsKKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoIiBhbmQg
Iik7CisgICAgICAgICAgICByZXN1bHQuYXBwZW5kKG1fZXhwcmVzc2lvbnMtPmF0KGkpLT5zZXJp
YWxpemUoKSk7CisgICAgICAgIH0KKyAgICB9IGVsc2UgeworICAgICAgICAvLyBJZiBxdWVyeSBp
cyBpbnZhbGlkLCBzZXJpYWxpemVkIHRleHQgc2hvdWxkIHR1cm4gaW50byAibm90IGFsbCIuCisg
ICAgICAgIHJlc3VsdC5hcHBlbmQoIm5vdCBhbGwiKTsKICAgICB9CiAgICAgcmV0dXJuIHJlc3Vs
dC50b1N0cmluZygpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL01lZGlhUXVl
cnlFdmFsdWF0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlFdmFsdWF0b3Iu
Y3BwCmluZGV4IDgyZTc1NDUuLjkwZWMxNWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9NZWRpYVF1ZXJ5RXZhbHVhdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFR
dWVyeUV2YWx1YXRvci5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJDaHJvbWUuaCIK
ICNpbmNsdWRlICJDaHJvbWVDbGllbnQuaCIKICNpbmNsdWRlICJDU1NQcmltaXRpdmVWYWx1ZS5o
IgorI2luY2x1ZGUgIkNTU1ZhbHVlS2V5d29yZHMuaCIKICNpbmNsdWRlICJDU1NWYWx1ZUxpc3Qu
aCIKICNpbmNsdWRlICJGbG9hdFJlY3QuaCIKICNpbmNsdWRlICJGcmFtZS5oIgpAQCAtMjQzLDE2
ICsyNDQsMTggQEAgc3RhdGljIGJvb2wgbW9ub2Nocm9tZU1lZGlhRmVhdHVyZUV2YWwoQ1NTVmFs
dWUqIHZhbHVlLCBSZW5kZXJTdHlsZSogc3R5bGUsIEZyYW0KIAogc3RhdGljIGJvb2wgb3JpZW50
YXRpb25NZWRpYUZlYXR1cmVFdmFsKENTU1ZhbHVlKiB2YWx1ZSwgUmVuZGVyU3R5bGUqLCBGcmFt
ZSogZnJhbWUsIE1lZGlhRmVhdHVyZVByZWZpeCkKIHsKLSAgICAvLyBBIG1pc3NpbmcgcGFyYW1l
dGVyIHNob3VsZCBmYWlsCi0gICAgaWYgKCF2YWx1ZSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwot
CiAgICAgRnJhbWVWaWV3KiB2aWV3ID0gZnJhbWUtPnZpZXcoKTsKICAgICBpbnQgd2lkdGggPSB2
aWV3LT5sYXlvdXRXaWR0aCgpOwogICAgIGludCBoZWlnaHQgPSB2aWV3LT5sYXlvdXRIZWlnaHQo
KTsKLSAgICBpZiAod2lkdGggPiBoZWlnaHQpIC8vIFNxdWFyZSB2aWV3cG9ydCBpcyBwb3J0cmFp
dAotICAgICAgICByZXR1cm4gImxhbmRzY2FwZSIgPT0gc3RhdGljX2Nhc3Q8Q1NTUHJpbWl0aXZl
VmFsdWUqPih2YWx1ZSktPmdldFN0cmluZ1ZhbHVlKCk7Ci0gICAgcmV0dXJuICJwb3J0cmFpdCIg
PT0gc3RhdGljX2Nhc3Q8Q1NTUHJpbWl0aXZlVmFsdWUqPih2YWx1ZSktPmdldFN0cmluZ1ZhbHVl
KCk7CisgICAgaWYgKHZhbHVlICYmIHZhbHVlLT5pc1ByaW1pdGl2ZVZhbHVlKCkpIHsKKyAgICAg
ICAgY29uc3QgaW50IGlkID0gc3RhdGljX2Nhc3Q8Q1NTUHJpbWl0aXZlVmFsdWUqPih2YWx1ZSkt
PmdldElkZW50KCk7CisgICAgICAgIGlmICh3aWR0aCA+IGhlaWdodCkgLy8gU3F1YXJlIHZpZXdw
b3J0IGlzIHBvcnRyYWl0CisgICAgICAgICAgICByZXR1cm4gQ1NTVmFsdWVMYW5kc2NhcGUgPT0g
aWQ7CisgICAgICAgIHJldHVybiBDU1NWYWx1ZVBvcnRyYWl0ID09IGlkOworICAgIH0KKworICAg
IC8vIG9yaWVudGF0aW9uIGNvdWxkIGJlIGNhbGN1bGF0ZWQKKyAgICByZXR1cm4gaGVpZ2h0ICYm
IHdpZHRoOwogfQogCiBzdGF0aWMgYm9vbCBhc3BlY3RfcmF0aW9NZWRpYUZlYXR1cmVFdmFsKENT
U1ZhbHVlKiB2YWx1ZSwgUmVuZGVyU3R5bGUqLCBGcmFtZSogZnJhbWUsIE1lZGlhRmVhdHVyZVBy
ZWZpeCBvcCkKQEAgLTUzNCw3ICs1MzcsMzIgQEAgc3RhdGljIGJvb2wgdmlld19tb2RlTWVkaWFG
ZWF0dXJlRXZhbChDU1NWYWx1ZSogdmFsdWUsIFJlbmRlclN0eWxlKiwgRnJhbWUqIGZyYW0KICAg
ICBVTlVTRURfUEFSQU0ob3ApOwogICAgIGlmICghdmFsdWUpCiAgICAgICAgIHJldHVybiB0cnVl
OwotICAgIHJldHVybiBQYWdlOjpzdHJpbmdUb1ZpZXdNb2RlKHN0YXRpY19jYXN0PENTU1ByaW1p
dGl2ZVZhbHVlKj4odmFsdWUpLT5nZXRTdHJpbmdWYWx1ZSgpKSA9PSBmcmFtZS0+cGFnZSgpLT52
aWV3TW9kZSgpOworCisgICAgY29uc3QgaW50IHZpZXdNb2RlQ1NTS2V5d29yZElEID0gc3RhdGlj
X2Nhc3Q8Q1NTUHJpbWl0aXZlVmFsdWUqPih2YWx1ZSktPmdldElkZW50KCk7CisgICAgY29uc3Qg
UGFnZTo6Vmlld01vZGUgdmlld01vZGUgPSBmcmFtZS0+cGFnZSgpLT52aWV3TW9kZSgpOworICAg
IGJvb2wgcmVzdWx0ID0gZmFsc2U7CisgICAgc3dpdGNoICh2aWV3TW9kZSkgeworICAgIGNhc2Ug
UGFnZTo6Vmlld01vZGVXaW5kb3dlZDoKKyAgICAgICAgcmVzdWx0ID0gdmlld01vZGVDU1NLZXl3
b3JkSUQgPT0gQ1NTVmFsdWVXaW5kb3dlZDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBQYWdl
OjpWaWV3TW9kZUZsb2F0aW5nOgorICAgICAgICByZXN1bHQgPSB2aWV3TW9kZUNTU0tleXdvcmRJ
RCA9PSBDU1NWYWx1ZUZsb2F0aW5nOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFBhZ2U6OlZp
ZXdNb2RlRnVsbHNjcmVlbjoKKyAgICAgICAgcmVzdWx0ID0gdmlld01vZGVDU1NLZXl3b3JkSUQg
PT0gQ1NTVmFsdWVGdWxsc2NyZWVuOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFBhZ2U6OlZp
ZXdNb2RlTWF4aW1pemVkOgorICAgICAgICByZXN1bHQgPSB2aWV3TW9kZUNTU0tleXdvcmRJRCA9
PSBDU1NWYWx1ZU1heGltaXplZDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBQYWdlOjpWaWV3
TW9kZU1pbmltaXplZDoKKyAgICAgICAgcmVzdWx0ID0gdmlld01vZGVDU1NLZXl3b3JkSUQgPT0g
Q1NTVmFsdWVNaW5pbWl6ZWQ7CisgICAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAg
IHJlc3VsdCA9IGZhbHNlOworICAgICAgICBicmVhazsKKyAgICB9CisKKyAgICByZXR1cm4gcmVz
dWx0OwogfQogCiBlbnVtIFBvaW50ZXJEZXZpY2VUeXBlIHsgVG91Y2hQb2ludGVyLCBNb3VzZVBv
aW50ZXIsIE5vUG9pbnRlciwgVW5rbm93blBvaW50ZXIgfTsKQEAgLTU5MSwxMCArNjE5LDEwIEBA
IHN0YXRpYyBib29sIHBvaW50ZXJNZWRpYUZlYXR1cmVFdmFsKENTU1ZhbHVlKiB2YWx1ZSwgUmVu
ZGVyU3R5bGUqLCBGcmFtZSogZnJhbWUsCiAgICAgaWYgKCF2YWx1ZS0+aXNQcmltaXRpdmVWYWx1
ZSgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBTdHJpbmcgc3RyID0gc3RhdGljX2Nh
c3Q8Q1NTUHJpbWl0aXZlVmFsdWUqPih2YWx1ZSktPmdldFN0cmluZ1ZhbHVlKCk7Ci0gICAgcmV0
dXJuIChwb2ludGVyID09IE5vUG9pbnRlciAmJiBzdHIgPT0gIm5vbmUiKQotICAgICAgICB8fCAo
cG9pbnRlciA9PSBUb3VjaFBvaW50ZXIgJiYgc3RyID09ICJjb2Fyc2UiKQotICAgICAgICB8fCAo
cG9pbnRlciA9PSBNb3VzZVBvaW50ZXIgJiYgc3RyID09ICJmaW5lIik7CisgICAgY29uc3QgaW50
IGlkID0gc3RhdGljX2Nhc3Q8Q1NTUHJpbWl0aXZlVmFsdWUqPih2YWx1ZSktPmdldElkZW50KCk7
CisgICAgcmV0dXJuIChwb2ludGVyID09IE5vUG9pbnRlciAmJiBpZCA9PSBDU1NWYWx1ZU5vbmUp
CisgICAgICAgIHx8IChwb2ludGVyID09IFRvdWNoUG9pbnRlciAmJiBpZCA9PSBDU1NWYWx1ZUNv
YXJzZSkKKyAgICAgICAgfHwgKHBvaW50ZXIgPT0gTW91c2VQb2ludGVyICYmIGlkID09IENTU1Zh
bHVlRmluZSk7CiB9CiAKIHN0YXRpYyB2b2lkIGNyZWF0ZUZ1bmN0aW9uTWFwKCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5RXhwLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9NZWRpYVF1ZXJ5RXhwLmNwcAppbmRleCA1MzAyZDdiLi4zYTgxYzRjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUV4cC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvY3NzL01lZGlhUXVlcnlFeHAuY3BwCkBAIC0zNywyNyArMzcsMTIyIEBACiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAorc3RhdGljIGlubGluZSBib29sIGZlYXR1cmVXaXRoQ1NTVmFsdWVJRChj
b25zdCBBdG9taWNTdHJpbmcmIG1lZGlhRmVhdHVyZSkKK3sKKyAgICByZXR1cm4gbWVkaWFGZWF0
dXJlID09IE1lZGlhRmVhdHVyZU5hbWVzOjpvcmllbnRhdGlvbk1lZGlhRmVhdHVyZQorICAgICAg
ICB8fCBtZWRpYUZlYXR1cmUgPT0gTWVkaWFGZWF0dXJlTmFtZXM6OnZpZXdfbW9kZU1lZGlhRmVh
dHVyZQorICAgICAgICB8fCBtZWRpYUZlYXR1cmUgPT0gTWVkaWFGZWF0dXJlTmFtZXM6OnBvaW50
ZXJNZWRpYUZlYXR1cmU7Cit9CisKK3N0YXRpYyBpbmxpbmUgYm9vbCBmZWF0dXJlV2l0aFBvc2l0
aXZlTGVuZ2h0T3JOdW1iZXIoY29uc3QgQXRvbWljU3RyaW5nJiBtZWRpYUZlYXR1cmUpCit7Cisg
ICAgcmV0dXJuIG1lZGlhRmVhdHVyZSA9PSBNZWRpYUZlYXR1cmVOYW1lczo6aGVpZ2h0TWVkaWFG
ZWF0dXJlCisgICAgICAgIHx8IG1lZGlhRmVhdHVyZSA9PSBNZWRpYUZlYXR1cmVOYW1lczo6bWF4
X2hlaWdodE1lZGlhRmVhdHVyZQorICAgICAgICB8fCBtZWRpYUZlYXR1cmUgPT0gTWVkaWFGZWF0
dXJlTmFtZXM6Om1pbl9oZWlnaHRNZWRpYUZlYXR1cmUKKyAgICAgICAgfHwgbWVkaWFGZWF0dXJl
ID09IE1lZGlhRmVhdHVyZU5hbWVzOjp3aWR0aE1lZGlhRmVhdHVyZQorICAgICAgICB8fCBtZWRp
YUZlYXR1cmUgPT0gTWVkaWFGZWF0dXJlTmFtZXM6Om1heF93aWR0aE1lZGlhRmVhdHVyZQorICAg
ICAgICB8fCBtZWRpYUZlYXR1cmUgPT0gTWVkaWFGZWF0dXJlTmFtZXM6Om1pbl93aWR0aE1lZGlh
RmVhdHVyZQorICAgICAgICB8fCBtZWRpYUZlYXR1cmUgPT0gTWVkaWFGZWF0dXJlTmFtZXM6OmRl
dmljZV9oZWlnaHRNZWRpYUZlYXR1cmUKKyAgICAgICAgfHwgbWVkaWFGZWF0dXJlID09IE1lZGlh
RmVhdHVyZU5hbWVzOjptYXhfZGV2aWNlX2hlaWdodE1lZGlhRmVhdHVyZQorICAgICAgICB8fCBt
ZWRpYUZlYXR1cmUgPT0gTWVkaWFGZWF0dXJlTmFtZXM6Om1pbl9kZXZpY2VfaGVpZ2h0TWVkaWFG
ZWF0dXJlCisgICAgICAgIHx8IG1lZGlhRmVhdHVyZSA9PSBNZWRpYUZlYXR1cmVOYW1lczo6ZGV2
aWNlX3dpZHRoTWVkaWFGZWF0dXJlCisgICAgICAgIHx8IG1lZGlhRmVhdHVyZSA9PSBNZWRpYUZl
YXR1cmVOYW1lczo6bWF4X2RldmljZV93aWR0aE1lZGlhRmVhdHVyZQorICAgICAgICB8fCBtZWRp
YUZlYXR1cmUgPT0gTWVkaWFGZWF0dXJlTmFtZXM6Om1pbl9kZXZpY2Vfd2lkdGhNZWRpYUZlYXR1
cmU7Cit9CisKK3N0YXRpYyBpbmxpbmUgYm9vbCBmZWF0dXJlV2l0aFBvc2l0aXZlSW50ZWdlcihj
b25zdCBBdG9taWNTdHJpbmcmIG1lZGlhRmVhdHVyZSkKK3sKKyAgICByZXR1cm4gbWVkaWFGZWF0
dXJlID09IE1lZGlhRmVhdHVyZU5hbWVzOjpjb2xvck1lZGlhRmVhdHVyZQorICAgICAgICB8fCBt
ZWRpYUZlYXR1cmUgPT0gTWVkaWFGZWF0dXJlTmFtZXM6Om1heF9jb2xvck1lZGlhRmVhdHVyZQor
ICAgICAgICB8fCBtZWRpYUZlYXR1cmUgPT0gTWVkaWFGZWF0dXJlTmFtZXM6Om1pbl9jb2xvck1l
ZGlhRmVhdHVyZQorICAgICAgICB8fCBtZWRpYUZlYXR1cmUgPT0gTWVkaWFGZWF0dXJlTmFtZXM6
Om1pbl9tb25vY2hyb21lTWVkaWFGZWF0dXJlCisgICAgICAgIHx8IG1lZGlhRmVhdHVyZSA9PSBN
ZWRpYUZlYXR1cmVOYW1lczo6bWF4X21vbm9jaHJvbWVNZWRpYUZlYXR1cmU7Cit9CisKK3N0YXRp
YyBpbmxpbmUgYm9vbCBmZWF0dXJlV2l0aFBvc2l0aXZlTnVtYmVyKGNvbnN0IEF0b21pY1N0cmlu
ZyYgbWVkaWFGZWF0dXJlKQoreworICAgIHJldHVybiBtZWRpYUZlYXR1cmUgPT0gTWVkaWFGZWF0
dXJlTmFtZXM6OnRyYW5zZm9ybV8yZE1lZGlhRmVhdHVyZQorICAgICAgICB8fCBtZWRpYUZlYXR1
cmUgPT0gTWVkaWFGZWF0dXJlTmFtZXM6OnRyYW5zZm9ybV8zZE1lZGlhRmVhdHVyZQorICAgICAg
ICB8fCBtZWRpYUZlYXR1cmUgPT0gTWVkaWFGZWF0dXJlTmFtZXM6OnRyYW5zaXRpb25NZWRpYUZl
YXR1cmUKKyAgICAgICAgfHwgbWVkaWFGZWF0dXJlID09IE1lZGlhRmVhdHVyZU5hbWVzOjphbmlt
YXRpb25NZWRpYUZlYXR1cmUKKyAgICAgICAgfHwgbWVkaWFGZWF0dXJlID09IE1lZGlhRmVhdHVy
ZU5hbWVzOjpkZXZpY2VfcGl4ZWxfcmF0aW9NZWRpYUZlYXR1cmUKKyAgICAgICAgfHwgbWVkaWFG
ZWF0dXJlID09IE1lZGlhRmVhdHVyZU5hbWVzOjptYXhfZGV2aWNlX3BpeGVsX3JhdGlvTWVkaWFG
ZWF0dXJlCisgICAgICAgIHx8IG1lZGlhRmVhdHVyZSA9PSBNZWRpYUZlYXR1cmVOYW1lczo6bWlu
X2RldmljZV9waXhlbF9yYXRpb01lZGlhRmVhdHVyZTsKK30KKworc3RhdGljIGlubGluZSBib29s
IGZlYXR1cmVXaXRoWmVyb09yT25lKGNvbnN0IEF0b21pY1N0cmluZyYgbWVkaWFGZWF0dXJlKQor
eworICAgIHJldHVybiBtZWRpYUZlYXR1cmUgPT0gTWVkaWFGZWF0dXJlTmFtZXM6OmdyaWRNZWRp
YUZlYXR1cmUKKyAgICAgICAgfHwgbWVkaWFGZWF0dXJlID09IE1lZGlhRmVhdHVyZU5hbWVzOjpo
b3Zlck1lZGlhRmVhdHVyZTsKK30KKworc3RhdGljIGlubGluZSBib29sIGZlYXR1cmVXaXRoQXNw
ZWN0UmF0aW8oY29uc3QgQXRvbWljU3RyaW5nJiBtZWRpYUZlYXR1cmUpCit7CisgICAgcmV0dXJu
IG1lZGlhRmVhdHVyZSA9PSBNZWRpYUZlYXR1cmVOYW1lczo6YXNwZWN0X3JhdGlvTWVkaWFGZWF0
dXJlCisgICAgICAgIHx8IG1lZGlhRmVhdHVyZSA9PSBNZWRpYUZlYXR1cmVOYW1lczo6ZGV2aWNl
X2FzcGVjdF9yYXRpb01lZGlhRmVhdHVyZQorICAgICAgICB8fCBtZWRpYUZlYXR1cmUgPT0gTWVk
aWFGZWF0dXJlTmFtZXM6Om1pbl9hc3BlY3RfcmF0aW9NZWRpYUZlYXR1cmUKKyAgICAgICAgfHwg
bWVkaWFGZWF0dXJlID09IE1lZGlhRmVhdHVyZU5hbWVzOjptYXhfYXNwZWN0X3JhdGlvTWVkaWFG
ZWF0dXJlCisgICAgICAgIHx8IG1lZGlhRmVhdHVyZSA9PSBNZWRpYUZlYXR1cmVOYW1lczo6bWlu
X2RldmljZV9hc3BlY3RfcmF0aW9NZWRpYUZlYXR1cmUKKyAgICAgICAgfHwgbWVkaWFGZWF0dXJl
ID09IE1lZGlhRmVhdHVyZU5hbWVzOjptYXhfZGV2aWNlX2FzcGVjdF9yYXRpb01lZGlhRmVhdHVy
ZTsKK30KKworc3RhdGljIGlubGluZSBib29sIGZlYXR1cmVXaXRob3V0VmFsdWUoY29uc3QgQXRv
bWljU3RyaW5nJiBtZWRpYUZlYXR1cmUpCit7CisgICAgcmV0dXJuIG1lZGlhRmVhdHVyZSA9PSBN
ZWRpYUZlYXR1cmVOYW1lczo6bW9ub2Nocm9tZU1lZGlhRmVhdHVyZQorICAgICAgICB8fCBtZWRp
YUZlYXR1cmUgPT0gTWVkaWFGZWF0dXJlTmFtZXM6OmNvbG9yTWVkaWFGZWF0dXJlCisgICAgICAg
IHx8IG1lZGlhRmVhdHVyZSA9PSBNZWRpYUZlYXR1cmVOYW1lczo6Z3JpZE1lZGlhRmVhdHVyZQor
ICAgICAgICB8fCBtZWRpYUZlYXR1cmUgPT0gTWVkaWFGZWF0dXJlTmFtZXM6OmhlaWdodE1lZGlh
RmVhdHVyZQorICAgICAgICB8fCBtZWRpYUZlYXR1cmUgPT0gTWVkaWFGZWF0dXJlTmFtZXM6Ondp
ZHRoTWVkaWFGZWF0dXJlCisgICAgICAgIHx8IG1lZGlhRmVhdHVyZSA9PSBNZWRpYUZlYXR1cmVO
YW1lczo6ZGV2aWNlX2hlaWdodE1lZGlhRmVhdHVyZQorICAgICAgICB8fCBtZWRpYUZlYXR1cmUg
PT0gTWVkaWFGZWF0dXJlTmFtZXM6OmRldmljZV93aWR0aE1lZGlhRmVhdHVyZQorICAgICAgICB8
fCBtZWRpYUZlYXR1cmUgPT0gTWVkaWFGZWF0dXJlTmFtZXM6Om9yaWVudGF0aW9uTWVkaWFGZWF0
dXJlCisgICAgICAgIHx8IG1lZGlhRmVhdHVyZSA9PSBNZWRpYUZlYXR1cmVOYW1lczo6YXNwZWN0
X3JhdGlvTWVkaWFGZWF0dXJlCisgICAgICAgIHx8IG1lZGlhRmVhdHVyZSA9PSBNZWRpYUZlYXR1
cmVOYW1lczo6ZGV2aWNlX2FzcGVjdF9yYXRpb01lZGlhRmVhdHVyZQorICAgICAgICB8fCBtZWRp
YUZlYXR1cmUgPT0gTWVkaWFGZWF0dXJlTmFtZXM6OmhvdmVyTWVkaWFGZWF0dXJlCisgICAgICAg
IHx8IG1lZGlhRmVhdHVyZSA9PSBNZWRpYUZlYXR1cmVOYW1lczo6dHJhbnNmb3JtXzJkTWVkaWFG
ZWF0dXJlCisgICAgICAgIHx8IG1lZGlhRmVhdHVyZSA9PSBNZWRpYUZlYXR1cmVOYW1lczo6dHJh
bnNmb3JtXzNkTWVkaWFGZWF0dXJlCisgICAgICAgIHx8IG1lZGlhRmVhdHVyZSA9PSBNZWRpYUZl
YXR1cmVOYW1lczo6dHJhbnNpdGlvbk1lZGlhRmVhdHVyZQorICAgICAgICB8fCBtZWRpYUZlYXR1
cmUgPT0gTWVkaWFGZWF0dXJlTmFtZXM6OmFuaW1hdGlvbk1lZGlhRmVhdHVyZQorICAgICAgICB8
fCBtZWRpYUZlYXR1cmUgPT0gTWVkaWFGZWF0dXJlTmFtZXM6OnZpZXdfbW9kZU1lZGlhRmVhdHVy
ZQorICAgICAgICB8fCBtZWRpYUZlYXR1cmUgPT0gTWVkaWFGZWF0dXJlTmFtZXM6OnBvaW50ZXJN
ZWRpYUZlYXR1cmUKKyAgICAgICAgfHwgbWVkaWFGZWF0dXJlID09IE1lZGlhRmVhdHVyZU5hbWVz
OjpkZXZpY2VfcGl4ZWxfcmF0aW9NZWRpYUZlYXR1cmU7Cit9CisKIGlubGluZSBNZWRpYVF1ZXJ5
RXhwOjpNZWRpYVF1ZXJ5RXhwKGNvbnN0IEF0b21pY1N0cmluZyYgbWVkaWFGZWF0dXJlLCBDU1NQ
YXJzZXJWYWx1ZUxpc3QqIHZhbHVlTGlzdCkKICAgICA6IG1fbWVkaWFGZWF0dXJlKG1lZGlhRmVh
dHVyZSkKICAgICAsIG1fdmFsdWUoMCkKLSAgICAsIG1faXNWYWxpZCh0cnVlKQorICAgICwgbV9p
c1ZhbGlkKGZhbHNlKQogeworICAgIC8vIEluaXRpYWxpemUgbWVkaWEgcXVlcnkgZXhwcmVzc2lv
biB0aGF0IG11c3QgaGF2ZSAxIG9yIG1vcmUgdmFsdWVzLgogICAgIGlmICh2YWx1ZUxpc3QpIHsK
ICAgICAgICAgaWYgKHZhbHVlTGlzdC0+c2l6ZSgpID09IDEpIHsKICAgICAgICAgICAgIENTU1Bh
cnNlclZhbHVlKiB2YWx1ZSA9IHZhbHVlTGlzdC0+Y3VycmVudCgpOwogCi0gICAgICAgICAgICBp
ZiAodmFsdWUtPmlkICE9IDApCisgICAgICAgICAgICAvLyBNZWRpYSBmZWF0dXJlcyB0aGF0IHVz
ZSBDU1NWYWx1ZUlEcworICAgICAgICAgICAgaWYgKGZlYXR1cmVXaXRoQ1NTVmFsdWVJRChtZWRp
YUZlYXR1cmUpICYmIHZhbHVlLT5pZCkKICAgICAgICAgICAgICAgICBtX3ZhbHVlID0gQ1NTUHJp
bWl0aXZlVmFsdWU6OmNyZWF0ZUlkZW50aWZpZXIodmFsdWUtPmlkKTsKLSAgICAgICAgICAgIGVs
c2UgaWYgKHZhbHVlLT51bml0ID09IENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfU1RSSU5HKQotICAg
ICAgICAgICAgICAgIG1fdmFsdWUgPSBDU1NQcmltaXRpdmVWYWx1ZTo6Y3JlYXRlKHZhbHVlLT5z
dHJpbmcsIChDU1NQcmltaXRpdmVWYWx1ZTo6VW5pdFR5cGVzKSB2YWx1ZS0+dW5pdCk7Ci0gICAg
ICAgICAgICBlbHNlIGlmICh2YWx1ZS0+dW5pdCA+PSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX05V
TUJFUiAmJgotICAgICAgICAgICAgICAgICAgICAgIHZhbHVlLT51bml0IDw9IENTU1ByaW1pdGl2
ZVZhbHVlOjpDU1NfS0haKQorCisgICAgICAgICAgICAvLyBNZWRpYSBmZWF0dXJlcyB0aGF0IG11
c3QgaGF2ZSBub24tbmVnYXRpdmUgPGxlbmdodD4gb3IgbnVtYmVyIHZhbHVlLgorICAgICAgICAg
ICAgZWxzZSBpZiAoZmVhdHVyZVdpdGhQb3NpdGl2ZUxlbmdodE9yTnVtYmVyKG1lZGlhRmVhdHVy
ZSkgJiYgKCgodmFsdWUtPnVuaXQgPj0gQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19FTVMgJiYgdmFs
dWUtPnVuaXQgPD0gQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19QQykgfHwgdmFsdWUtPnVuaXQgPT0g
Q1NTUHJpbWl0aXZlVmFsdWU6OkNTU19SRU1TKSB8fCB2YWx1ZS0+dW5pdCA9PSBDU1NQcmltaXRp
dmVWYWx1ZTo6Q1NTX05VTUJFUikgJiYgdmFsdWUtPmZWYWx1ZSA+PSAwKQogICAgICAgICAgICAg
ICAgIG1fdmFsdWUgPSBDU1NQcmltaXRpdmVWYWx1ZTo6Y3JlYXRlKHZhbHVlLT5mVmFsdWUsIChD
U1NQcmltaXRpdmVWYWx1ZTo6VW5pdFR5cGVzKSB2YWx1ZS0+dW5pdCk7CiAKLSAgICAgICAgICAg
IHZhbHVlTGlzdC0+bmV4dCgpOwotICAgICAgICB9IGVsc2UgaWYgKHZhbHVlTGlzdC0+c2l6ZSgp
ID4gMSkgeworICAgICAgICAgICAgLy8gTWVkaWEgZmVhdHVyZXMgdGhhdCBtdXN0IGhhdmUgbm9u
LW5lZ2F0aXZlIGludGVnZXIgdmFsdWUuCisgICAgICAgICAgICBlbHNlIGlmIChmZWF0dXJlV2l0
aFBvc2l0aXZlSW50ZWdlcihtZWRpYUZlYXR1cmUpICYmIHZhbHVlLT5pc0ludCAmJiB2YWx1ZS0+
ZlZhbHVlID49IDApCisgICAgICAgICAgICAgICAgbV92YWx1ZSA9IENTU1ByaW1pdGl2ZVZhbHVl
OjpjcmVhdGUodmFsdWUtPmZWYWx1ZSwgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19OVU1CRVIpOwor
CisgICAgICAgICAgICAvLyBNZWRpYSBmZWF0dXJlcyB0aGF0IG11c3QgaGF2ZSBub24tbmVnYXRp
dmUgbnVtYmVyIHZhbHVlLgorICAgICAgICAgICAgZWxzZSBpZiAoZmVhdHVyZVdpdGhQb3NpdGl2
ZU51bWJlcihtZWRpYUZlYXR1cmUpICYmIHZhbHVlLT51bml0ID09IENTU1ByaW1pdGl2ZVZhbHVl
OjpDU1NfTlVNQkVSICYmIHZhbHVlLT5mVmFsdWUgPj0gMCkKKyAgICAgICAgICAgICAgICBtX3Zh
bHVlID0gQ1NTUHJpbWl0aXZlVmFsdWU6OmNyZWF0ZSh2YWx1ZS0+ZlZhbHVlLCBDU1NQcmltaXRp
dmVWYWx1ZTo6Q1NTX05VTUJFUik7CisKKyAgICAgICAgICAgIC8vIE1lZGlhIGZlYXR1cmVzIHRo
YXQgbXVzdCBoYXZlICgwfDEpIHZhbHVlLgorICAgICAgICAgICAgZWxzZSBpZiAoZmVhdHVyZVdp
dGhaZXJvT3JPbmUobWVkaWFGZWF0dXJlKSAmJiB2YWx1ZS0+aXNJbnQgJiYgKCF2YWx1ZS0+ZlZh
bHVlIHx8IHZhbHVlLT5mVmFsdWUgPT0gMSkpCisgICAgICAgICAgICAgICAgbV92YWx1ZSA9IENT
U1ByaW1pdGl2ZVZhbHVlOjpjcmVhdGUodmFsdWUtPmZWYWx1ZSwgQ1NTUHJpbWl0aXZlVmFsdWU6
OkNTU19OVU1CRVIpOworCisgICAgICAgICAgICBtX2lzVmFsaWQgPSBtX3ZhbHVlOworICAgICAg
ICB9IGVsc2UgaWYgKHZhbHVlTGlzdC0+c2l6ZSgpID4gMSAmJiBmZWF0dXJlV2l0aEFzcGVjdFJh
dGlvKG1lZGlhRmVhdHVyZSkpIHsKICAgICAgICAgICAgIC8vIGNyZWF0ZSBsaXN0IG9mIHZhbHVl
cwogICAgICAgICAgICAgLy8gY3VycmVudGx5IGFjY2VwdHMgb25seSA8aW50ZWdlcj4vPGludGVn
ZXI+CisgICAgICAgICAgICAvLyBBcHBsaWNhYmxlIHRvIGRldmljZS1hc3BlY3QtcmF0aW8gYW5k
IGFzcGVjLXJhdGlvLgogCiAgICAgICAgICAgICBSZWZQdHI8Q1NTVmFsdWVMaXN0PiBsaXN0ID0g
Q1NTVmFsdWVMaXN0OjpjcmVhdGVDb21tYVNlcGFyYXRlZCgpOwogICAgICAgICAgICAgQ1NTUGFy
c2VyVmFsdWUqIHZhbHVlID0gdmFsdWVMaXN0LT5jdXJyZW50KCk7CkBAIC02Niw3ICsxNjEsNyBA
QCBpbmxpbmUgTWVkaWFRdWVyeUV4cDo6TWVkaWFRdWVyeUV4cChjb25zdCBBdG9taWNTdHJpbmcm
IG1lZGlhRmVhdHVyZSwgQ1NTUGFyc2VyVgogICAgICAgICAgICAgd2hpbGUgKHZhbHVlICYmIGlz
VmFsaWQpIHsKICAgICAgICAgICAgICAgICBpZiAodmFsdWUtPnVuaXQgPT0gQ1NTUGFyc2VyVmFs
dWU6Ok9wZXJhdG9yICYmIHZhbHVlLT5pVmFsdWUgPT0gJy8nKQogICAgICAgICAgICAgICAgICAg
ICBsaXN0LT5hcHBlbmQoQ1NTUHJpbWl0aXZlVmFsdWU6OmNyZWF0ZSgiLyIsIENTU1ByaW1pdGl2
ZVZhbHVlOjpDU1NfU1RSSU5HKSk7Ci0gICAgICAgICAgICAgICAgZWxzZSBpZiAodmFsdWUtPnVu
aXQgPT0gQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19OVU1CRVIpCisgICAgICAgICAgICAgICAgZWxz
ZSBpZiAodmFsdWUtPnVuaXQgPT0gQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19OVU1CRVIgJiYgdmFs
dWUtPmZWYWx1ZSA+IDAgJiYgdmFsdWUtPmlzSW50KQogICAgICAgICAgICAgICAgICAgICBsaXN0
LT5hcHBlbmQoQ1NTUHJpbWl0aXZlVmFsdWU6OmNyZWF0ZSh2YWx1ZS0+ZlZhbHVlLCBDU1NQcmlt
aXRpdmVWYWx1ZTo6Q1NTX05VTUJFUikpOwogICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAg
ICAgICAgICAgICAgaXNWYWxpZCA9IGZhbHNlOwpAQCAtNzYsMTIgKzE3MSwxMyBAQCBpbmxpbmUg
TWVkaWFRdWVyeUV4cDo6TWVkaWFRdWVyeUV4cChjb25zdCBBdG9taWNTdHJpbmcmIG1lZGlhRmVh
dHVyZSwgQ1NTUGFyc2VyVgogCiAgICAgICAgICAgICBpZiAoaXNWYWxpZCkKICAgICAgICAgICAg
ICAgICBtX3ZhbHVlID0gbGlzdC5yZWxlYXNlKCk7CisKKyAgICAgICAgICAgIG1faXNWYWxpZCA9
IG1fdmFsdWU7CiAgICAgICAgIH0KLSAgICAgICAgbV9pc1ZhbGlkID0gbV92YWx1ZTsKLSAgICB9
CisgICAgfSBlbHNlIGlmIChmZWF0dXJlV2l0aG91dFZhbHVlKG1lZGlhRmVhdHVyZSkpCisgICAg
ICAgIG1faXNWYWxpZCA9IHRydWU7CiB9CiAKLQogUGFzc093blB0cjxNZWRpYVF1ZXJ5RXhwPiBN
ZWRpYVF1ZXJ5RXhwOjpjcmVhdGUoY29uc3QgQXRvbWljU3RyaW5nJiBtZWRpYUZlYXR1cmUsIENT
U1BhcnNlclZhbHVlTGlzdCogdmFsdWVzKQogewogICAgIHJldHVybiBhZG9wdFB0cihuZXcgTWVk
aWFRdWVyeUV4cChtZWRpYUZlYXR1cmUsIHZhbHVlcykpOwo=
</data>
<flag name="review"
          id="180828"
          type_id="1"
          status="-"
          setter="kenneth"
    />
    <flag name="commit-queue"
          id="180829"
          type_id="3"
          status="-"
          setter="kenneth"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>168041</attachid>
            <date>2012-10-10 11:17:58 -0700</date>
            <delta_ts>2012-10-10 13:31:44 -0700</delta_ts>
            <desc>Patch 2</desc>
            <filename>webcore_media_query_exp_fix_2.patch</filename>
            <type>text/plain</type>
            <size>57379</size>
            <attacher name="Alexander Shalamov">alexander.shalamov</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBlNWI0MmY4Li4xOTgxYjAwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTItMTAt
MDQgIEFsZXhhbmRlciBTaGFsYW1vdiAgPGFsZXhhbmRlci5zaGFsYW1vdkBpbnRlbC5jb20+CisK
KyAgICAgICAgSW52YWxpZCB2YWx1ZXMgZm9yIG1lZGlhIHF1ZXJ5IGZlYXR1cmVzIGFyZSBub3Qg
aGFuZGxlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
OTcwMDYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJ
bXBvcnRlZCBDU1MzIE1lZGlhIFF1ZXJpZXMgdGVzdCBzdWl0ZSBmcm9tIGh0dHA6Ly93d3cudzMu
b3JnL1N0eWxlL0NTUy9UZXN0L01lZGlhUXVlcmllcy8yMDEyMDIyOS8KKworICAgICAgICAqIGZh
c3QvbWVkaWEvbWVkaWEtcXVlcnktaW52YWxpZC12YWx1ZS5odG1sOiBGaXhlZCBpbnZhbGlkIG1l
ZGlhIHF1ZXJ5LgorICAgICAgICAqIGZhc3QvbWVkaWEvbWVkaWEtcXVlcnktc2VyaWFsaXphdGlv
bi5odG1sOiBGaXhlZCBpbnZhbGlkIG1lZGlhIHF1ZXJ5LgorICAgICAgICAqIGZhc3QvbWVkaWEv
dzNjL1JFQURNRTogQWRkZWQuCisgICAgICAgICogZmFzdC9tZWRpYS93M2MvcmVzb3VyY2VzL21l
ZGlhX3F1ZXJpZXNfaWZyYW1lLmh0bWw6IEFkZGVkLiAoSW1wb3J0ZWQgZnJvbSB3M2MgdGVzdCBz
dWl0ZSkKKyAgICAgICAgKiBmYXN0L21lZGlhL3czYy90ZXN0X21lZGlhX3F1ZXJpZXMtZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L21lZGlhL3czYy90ZXN0X21lZGlhX3F1ZXJp
ZXMuaHRtbDogQWRkZWQuIChJbXBvcnRlZCBmcm9tIHczYyB0ZXN0IHN1aXRlKQorCiAyMDEyLTEw
LTAzICBBbGV4YW5kZXIgU2hhbGFtb3YgIDxhbGV4YW5kZXIuc2hhbGFtb3ZAaW50ZWwuY29tPgog
CiAgICAgICAgIENTUyBTdHlsZSBpcyBub3QgcmVjYWxjdWxhdGVkIHdoZW4gbWVkaWEgYXR0cmli
dXRlIG9mIHN0eWxlIGVsZW1lbnQgaXMgY2hhbmdlZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1pbnZhbGlkLXZhbHVlLmh0bWwgYi9MYXlvdXRUZXN0cy9m
YXN0L21lZGlhL21lZGlhLXF1ZXJ5LWludmFsaWQtdmFsdWUuaHRtbAppbmRleCA1NjEzYWZhLi5k
NDY3YzBhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWlu
dmFsaWQtdmFsdWUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhL21lZGlhLXF1ZXJ5
LWludmFsaWQtdmFsdWUuaHRtbApAQCAtMSwxMyArMSwxNyBAQAogPGhlYWQ+CiAgICAgPHN0eWxl
IHR5cGU9InRleHQvY3NzIj4KLSAgICAgICAgQG1lZGlhIChtaW4td2lkdGgpIHsKKyAgICAgICAg
Ly8gVmFsaWQgbWVkaWEgcXVlcnkgZXhwcmVzc2lvbiwgYmFja2dyb3VuZC1jb2xvciBtdXN0IGJl
IGdyZWVuLgorICAgICAgICBAbWVkaWEgKG1pbi13aWR0aDogMTAwcHgpIHsKICAgICAgICAgICAg
IGRpdiB7IGJhY2tncm91bmQtY29sb3I6IGdyZWVuOyB9CiAgICAgICAgIH0KKworICAgICAgICAv
LyBJbnZhbGlkIG1lZGlhIHF1ZXJ5IGV4cHJlc3Npb24sIHdpZHRoIG1lZGlhIGZlYXR1cmUgYWNj
ZXB0cyBsZW5ndGgKKyAgICAgICAgLy8gb3IgbnVtYmVyIHZhbHVlLiBNZWRpYSBxdWVyeSBzaG91
bGQgbm90IG1hdGNoIGFuZCBkaXYgc2hvdWxkIG5vdCBiZSBibHVlLgogICAgICAgICBAbWVkaWEg
KG1pbi13aWR0aDogYmxhaCkgewogICAgICAgICAgICAgZGl2IHsgYmFja2dyb3VuZC1jb2xvcjog
Ymx1ZTsgfQogICAgICAgICB9CiAgICAgPC9zdHlsZT4KIDwvaGVhZD4KIDxib2R5PgotICAgIDxk
aXYgc3R5bGU9IndpZHRoOiAyMDA7IGhlaWdodDogMjAwOyJcPgorICAgIDxkaXYgc3R5bGU9Indp
ZHRoOiAyMDBweDsgaGVpZ2h0OiAyMDBweDsiXD4KIDwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvbWVkaWEvbWVkaWEtcXVlcnktc2VyaWFsaXphdGlvbi5odG1sIGIvTGF5b3V0
VGVzdHMvZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1zZXJpYWxpemF0aW9uLmh0bWwKaW5kZXggMTgz
NGU2OC4uY2JlMmEwMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tZWRpYS1x
dWVyeS1zZXJpYWxpemF0aW9uLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tZWRp
YS1xdWVyeS1zZXJpYWxpemF0aW9uLmh0bWwKQEAgLTIsNyArMiw3IEBACiA8aHRtbD4KIDxoZWFk
PgogPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwOi8vZGV2LnczLm9yZy9jc3N3Zy9jc3NvbS8i
IC8+Ci08c3R5bGUgdHlwZT0idGV4dC9jc3MiIG1lZGlhPSJOT1QgYnJhaWxsZSwgdHYgYW5kIChv
cmllbnRhdGlvbjogJ2xhbmRzY2FwZScpIEFORCAobWluLVdJRFRIOjEwMHB4KSBhbmQgKG1heC13
aWR0aDogMjAwcHggKSwgYWxsIGFuZCAoY29sb3IpIGFuZCAoY29sb3IpIj4KKzxzdHlsZSB0eXBl
PSJ0ZXh0L2NzcyIgbWVkaWE9Ik5PVCBicmFpbGxlLCB0diBhbmQgKG9yaWVudGF0aW9uOiBsYW5k
c2NhcGUpIEFORCAobWluLVdJRFRIOjEwMHB4KSBhbmQgKG1heC13aWR0aDogMjAwcHggKSwgYWxs
IGFuZCAoY29sb3IpIGFuZCAoY29sb3IpIj4KIDwvc3R5bGU+CiA8c2NyaXB0IHNyYz0iLi4vanMv
cmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KIDwvaGVhZD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvbWVkaWEvdzNjL1JFQURNRSBiL0xheW91dFRlc3RzL2Zhc3QvbWVk
aWEvdzNjL1JFQURNRQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43MzE1ZmQ1
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS93M2MvUkVBRE1FCkBA
IC0wLDAgKzEsMzEgQEAKK0ltcG9ydGVkIENTUzMgTWVkaWFRdWVyeSB0ZXN0IHN1aXRlIGZyb206
CitodHRwOi8vd3d3LnczLm9yZy9TdHlsZS9DU1MvVGVzdC9NZWRpYVF1ZXJpZXMvMjAxMjAyMjkv
CisKKyogTWVkaWEgUXVlcmllcyBUZXN0IFN1aXRlCisKK1RoaXMgaXMgYSBSZWxlYXNlIENhbmRp
ZGF0ZSB2ZXJzaW9uIG9mIHRoZSBvZmZpY2lhbCBXM0MgTWVkaWEgUXVlcmllcyBUZXN0IFN1aXRl
LiBJdCByZWxpZXMgb24gc3VwcG9ydCBmb3IgSFRNTCwKK0VDTUFTY3JpcHQsIGFuZCB0aGUgRE9N
LgorCitUaGlzIHRlc3Qgc3VpdGUgaXMgY29uc2lkZXJlZCB0byBiZSBjb21wbGV0ZSB3aXRoIG5v
IGtub3duIG9yIHN1c3BlY3RlZCBidWdzIGF0IHRoZSB0aW1lIG9mIGl0cyBwdWJsaWNhdGlvbi4K
K0lmIHlvdSBmaW5kIGFueSBlcnJvcnMsIHdvdWxkIGxpa2UgdG8gY29udHJpYnV0ZSBhZGRpdGlv
bmFsIHRlc3RzLCBvciBoYXZlIG90aGVyIGZlZWRiYWNrLCBwbGVhc2UgcG9zdCB0byB0aGUKK2Fy
Y2hpdmVkIHB1YmxpYyBkaXNjdXNzaW9uIG1haWxpbmcgbGlzdCBmb3IgQ1NTIHRlc3Qgc3VpdGVz
LCBwdWJsaWMtY3NzLXRlc3RzdWl0ZUB3My5vcmcuCisKK0FuIGltcGxlbWVudGF0aW9uIHJlcG9y
dCBpcyBhdmFpbGFibGUuIChJZiB5b3Ugd291bGQgbGlrZSB0byBhZGQgYW4gaW1wbGVtZW50YXRp
b24gdG8gdGhlIHJlcG9ydCwKK3BsZWFzZSBzZW5kIGEgcGF0Y2ggdG8gcHVibGljLWNzcy10ZXN0
c3VpdGVAdzMub3JnLikKKworKiBUZXN0IFN1aXRlCisKK1RoZSB0ZXN0IHN1aXRlIGlzIGEgc2lu
Z2xlIHNlbGYtY29udGFpbmVkIGZpbGUgdGhhdCB0aG9yb3VnaGx5IHRlc3RzIE1lZGlhIFF1ZXJp
ZXMgdmlhIGEgc2NyaXB0OiBNZWRpYSBRdWVyaWVzIFNlbGYtQ29udGFpbmVkIFRlc3QgU3VpdGUu
CisKKyogTGljZW5zZQorCitUaGlzIHRlc3Qgc3VpdGUgaXMgbGljZW5zZWQgdW5kZXIgYm90aCB0
aGUgVzNDIFRlc3QgU3VpdGUgTGljZW5zZSBhbmQgdGhlIFczQyAzLWNsYXVzZSBCU0QgTGljZW5z
ZS4gU2VlIFczQyBMZWdhbCdzIGV4cGxhbmF0aW9uIG9mIHRoZSBsaWNlbnNlcy4KKworKiBBY2tu
b3dsZWRnZW1lbnRzCisKK01hbnkgdGhhbmtzIHRvIHRoZSBmb2xsb3dpbmcgZm9yIHRoZWlyIGNv
bnRyaWJ1dGlvbnM6CisKKyBBbm5lIHZhbiBLZXN0ZXJlbgorIElhbiBIaWNrc29uCisgTC4gRGF2
aWQgQmFyb24KKyBBcnJvbiBFaWNob2x6ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS93M2MvcmVzb3VyY2VzL21lZGlhX3F1ZXJp
ZXNfaWZyYW1lLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhL3czYy9yZXNvdXJjZXMvbWVk
aWFfcXVlcmllc19pZnJhbWUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li41NTNmNTQyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS93M2Mv
cmVzb3VyY2VzL21lZGlhX3F1ZXJpZXNfaWZyYW1lLmh0bWwKQEAgLTAsMCArMSwxNyBAQAorPCFE
T0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEvL0VOIgorCSJodHRwOi8v
d3d3LnczLm9yZy9UUi9odG1sNC9zdHJpY3QuZHRkIj4KKzxodG1sIGxhbmc9ImVuLVVTIj4KKzxo
ZWFkPgorCTx0aXRsZT5NZWRpYSBRdWVyaWVzIFRlc3QgaW5uZXIgZnJhbWU8L3RpdGxlPgorCTxt
ZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0
PVVURi04Ij4KKwk8bGluayByZWw9ImF1dGhvciIgdGl0bGU9IkwuIERhdmlkIEJhcm9uIiBocmVm
PSJodHRwOi8vZGJhcm9uLm9yZy8iPgorCTxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cDovL3d3
dy53My5vcmcvVFIvY3NzMy1tZWRpYXF1ZXJpZXMvIj4KKwk8bWV0YSBodHRwLWVxdWl2PSJDb250
ZW50LVN0eWxlLVR5cGUiIGNvbnRlbnQ9InRleHQvY3NzIj4KKwk8c3R5bGUgdHlwZT0idGV4dC9j
c3MiIGlkPSJzdHlsZSIgbWVkaWE9ImFsbCI+CisJYm9keSB7IHRleHQtZGVjb3JhdGlvbjogdW5k
ZXJsaW5lOyB9CisJPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorCis8L2JvZHk+Cis8L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhL3czYy90ZXN0X21lZGlhX3F1ZXJp
ZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS93M2MvdGVzdF9tZWRpYV9x
dWVyaWVzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4y
NjA1MThhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS93M2MvdGVz
dF9tZWRpYV9xdWVyaWVzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDI5NCBAQAorCisKK1BBU1Mg
cXVlcnkgKG9yaWVudGF0aW9uKSBzaG91bGQgYmUgcGFyc2VhYmxlIAorUEFTUyBxdWVyeSBub3Qg
KG9yaWVudGF0aW9uKSBzaG91bGQgbm90IGJlIHBhcnNlYWJsZSAKK1BBU1MgcXVlcnkgb25seSAo
b3JpZW50YXRpb24pIHNob3VsZCBub3QgYmUgcGFyc2VhYmxlIAorUEFTUyBxdWVyeSBhbGwgYW5k
IChvcmllbnRhdGlvbikgc2hvdWxkIGJlIHBhcnNlYWJsZSAKK1BBU1MgcXVlcnkgbm90IGFsbCBh
bmQgKG9yaWVudGF0aW9uKSBzaG91bGQgYmUgcGFyc2VhYmxlIAorUEFTUyBxdWVyeSBvbmx5IGFs
bCBhbmQgKG9yaWVudGF0aW9uKSBzaG91bGQgYmUgcGFyc2VhYmxlIAorUEFTUyBxdWVyeSAob3Jp
ZW50YXRpb246ICdsYW5kc2NhcGUnKSBzaG91bGQgbm90IGJlIHBhcnNlYWJsZSAKK1BBU1MgZXhw
cmVzc2lvbiB3aWR0aCBzaG91bGQgYmUgcGFyc2VhYmxlIAorUEFTUyBleHByZXNzaW9uIHdpZHRo
OiAwIHNob3VsZCBiZSBwYXJzZWFibGUgCitQQVNTIGV4cHJlc3Npb24gd2lkdGg6IDBweCBzaG91
bGQgYmUgcGFyc2VhYmxlIAorUEFTUyBleHByZXNzaW9uIHdpZHRoOiAwZW0gc2hvdWxkIGJlIHBh
cnNlYWJsZSAKK1BBU1MgZXhwcmVzc2lvbiB3aWR0aDogLTAgc2hvdWxkIGJlIHBhcnNlYWJsZSAK
K1BBU1MgZXhwcmVzc2lvbiBtaW4td2lkdGg6IC0wIHNob3VsZCBiZSBwYXJzZWFibGUgCitQQVNT
IGV4cHJlc3Npb24gbWF4LXdpZHRoOiAtMCBzaG91bGQgYmUgcGFyc2VhYmxlIAorUEFTUyBleHBy
ZXNzaW9uIHdpZHRoOiAtMGNtIHNob3VsZCBiZSBwYXJzZWFibGUgCitQQVNTIGV4cHJlc3Npb24g
d2lkdGg6IDFweCBzaG91bGQgYmUgcGFyc2VhYmxlIAorUEFTUyBleHByZXNzaW9uIHdpZHRoOiAw
LjAwMW1tIHNob3VsZCBiZSBwYXJzZWFibGUgCitQQVNTIGV4cHJlc3Npb24gd2lkdGg6IDEwMDAw
MHB4IHNob3VsZCBiZSBwYXJzZWFibGUgCitQQVNTIGV4cHJlc3Npb24gd2lkdGg6IC0xcHggc2hv
dWxkIG5vdCBiZSBwYXJzZWFibGUgCitQQVNTIGV4cHJlc3Npb24gd2lkdGg6ICcyMHB4JyBzaG91
bGQgbm90IGJlIHBhcnNlYWJsZSAKK1BBU1MgZXhwcmVzc2lvbiBtaW4td2lkdGg6IC0xcHggc2hv
dWxkIG5vdCBiZSBwYXJzZWFibGUgCitQQVNTIGV4cHJlc3Npb24gbWF4LXdpZHRoOiAtMXB4IHNo
b3VsZCBub3QgYmUgcGFyc2VhYmxlIAorUEFTUyBleHByZXNzaW9uIG1pbi13aWR0aDogJzEwcHgn
IHNob3VsZCBub3QgYmUgcGFyc2VhYmxlIAorUEFTUyBleHByZXNzaW9uIG1heC13aWR0aDogJzEw
cHgnIHNob3VsZCBub3QgYmUgcGFyc2VhYmxlIAorUEFTUyBleHByZXNzaW9uIHdpZHRoOiAtMC4w
MDAwMW1tIHNob3VsZCBub3QgYmUgcGFyc2VhYmxlIAorUEFTUyBleHByZXNzaW9uIHdpZHRoOiAt
MTAwMDAwZW0gc2hvdWxkIG5vdCBiZSBwYXJzZWFibGUgCitQQVNTIGV4cHJlc3Npb24gbWluLXdp
ZHRoIHNob3VsZCBub3QgYmUgcGFyc2VhYmxlIAorUEFTUyBleHByZXNzaW9uIG1heC13aWR0aCBz
aG91bGQgbm90IGJlIHBhcnNlYWJsZSAKK1BBU1MgZXhwcmVzc2lvbiBoZWlnaHQgc2hvdWxkIGJl
IHBhcnNlYWJsZSAKK1BBU1MgZXhwcmVzc2lvbiBoZWlnaHQ6IDAgc2hvdWxkIGJlIHBhcnNlYWJs
ZSAKK1BBU1MgZXhwcmVzc2lvbiBoZWlnaHQ6IDBweCBzaG91bGQgYmUgcGFyc2VhYmxlIAorUEFT
UyBleHByZXNzaW9uIGhlaWdodDogMGVtIHNob3VsZCBiZSBwYXJzZWFibGUgCitQQVNTIGV4cHJl
c3Npb24gaGVpZ2h0OiAtMCBzaG91bGQgYmUgcGFyc2VhYmxlIAorUEFTUyBleHByZXNzaW9uIG1p
bi1oZWlnaHQ6IC0wIHNob3VsZCBiZSBwYXJzZWFibGUgCitQQVNTIGV4cHJlc3Npb24gbWF4LWhl
aWdodDogLTAgc2hvdWxkIGJlIHBhcnNlYWJsZSAKK1BBU1MgZXhwcmVzc2lvbiBoZWlnaHQ6IC0w
Y20gc2hvdWxkIGJlIHBhcnNlYWJsZSAKK1BBU1MgZXhwcmVzc2lvbiBoZWlnaHQ6IDFweCBzaG91
bGQgYmUgcGFyc2VhYmxlIAorUEFTUyBleHByZXNzaW9uIGhlaWdodDogMC4wMDFtbSBzaG91bGQg
YmUgcGFyc2VhYmxlIAorUEFTUyBleHByZXNzaW9uIGhlaWdodDogMTAwMDAwcHggc2hvdWxkIGJl
IHBhcnNlYWJsZSAKK1BBU1MgZXhwcmVzc2lvbiBoZWlnaHQ6IC0xcHggc2hvdWxkIG5vdCBiZSBw
YXJzZWFibGUgCitQQVNTIGV4cHJlc3Npb24gaGVpZ2h0OiAnMjBweCcgc2hvdWxkIG5vdCBiZSBw
YXJzZWFibGUgCitQQVNTIGV4cHJlc3Npb24gbWluLWhlaWdodDogLTFweCBzaG91bGQgbm90IGJl
IHBhcnNlYWJsZSAKK1BBU1MgZXhwcmVzc2lvbiBtYXgtaGVpZ2h0OiAtMXB4IHNob3VsZCBub3Qg
YmUgcGFyc2VhYmxlIAorUEFTUyBleHByZXNzaW9uIG1pbi1oZWlnaHQ6ICcxMHB4JyBzaG91bGQg
bm90IGJlIHBhcnNlYWJsZSAKK1BBU1MgZXhwcmVzc2lvbiBtYXgtaGVpZ2h0OiAnMTBweCcgc2hv
dWxkIG5vdCBiZSBwYXJzZWFibGUgCitQQVNTIGV4cHJlc3Npb24gaGVpZ2h0OiAtMC4wMDAwMW1t
IHNob3VsZCBub3QgYmUgcGFyc2VhYmxlIAorUEFTUyBleHByZXNzaW9uIGhlaWdodDogLTEwMDAw
MGVtIHNob3VsZCBub3QgYmUgcGFyc2VhYmxlIAorUEFTUyBleHByZXNzaW9uIG1pbi1oZWlnaHQg
c2hvdWxkIG5vdCBiZSBwYXJzZWFibGUgCitQQVNTIGV4cHJlc3Npb24gbWF4LWhlaWdodCBzaG91
bGQgbm90IGJlIHBhcnNlYWJsZSAKK1BBU1MgZXhwcmVzc2lvbiBkZXZpY2Utd2lkdGggc2hvdWxk
IGJlIHBhcnNlYWJsZSAKK1BBU1MgZXhwcmVzc2lvbiBkZXZpY2Utd2lkdGg6IDAgc2hvdWxkIGJl
IHBhcnNlYWJsZSAKK1BBU1MgZXhwcmVzc2lvbiBkZXZpY2Utd2lkdGg6IDBweCBzaG91bGQgYmUg
cGFyc2VhYmxlIAorUEFTUyBleHByZXNzaW9uIGRldmljZS13aWR0aDogMGVtIHNob3VsZCBiZSBw
YXJzZWFibGUgCitQQVNTIGV4cHJlc3Npb24gZGV2aWNlLXdpZHRoOiAtMCBzaG91bGQgYmUgcGFy
c2VhYmxlIAorUEFTUyBleHByZXNzaW9uIG1pbi1kZXZpY2Utd2lkdGg6IC0wIHNob3VsZCBiZSBw
YXJzZWFibGUgCitQQVNTIGV4cHJlc3Npb24gbWF4LWRldmljZS13aWR0aDogLTAgc2hvdWxkIGJl
IHBhcnNlYWJsZSAKK1BBU1MgZXhwcmVzc2lvbiBkZXZpY2Utd2lkdGg6IC0wY20gc2hvdWxkIGJl
IHBhcnNlYWJsZSAKK1BBU1MgZXhwcmVzc2lvbiBkZXZpY2Utd2lkdGg6IDFweCBzaG91bGQgYmUg
cGFyc2VhYmxlIAorUEFTUyBleHByZXNzaW9uIGRldmljZS13aWR0aDogMC4wMDFtbSBzaG91bGQg
YmUgcGFyc2VhYmxlIAorUEFTUyBleHByZXNzaW9uIGRldmljZS13aWR0aDogMTAwMDAwcHggc2hv
dWxkIGJlIHBhcnNlYWJsZSAKK1BBU1MgZXhwcmVzc2lvbiBkZXZpY2Utd2lkdGg6IC0xcHggc2hv
dWxkIG5vdCBiZSBwYXJzZWFibGUgCitQQVNTIGV4cHJlc3Npb24gZGV2aWNlLXdpZHRoOiAnMjBw
eCcgc2hvdWxkIG5vdCBiZSBwYXJzZWFibGUgCitQQVNTIGV4cHJlc3Npb24gbWluLWRldmljZS13
aWR0aDogLTFweCBzaG91bGQgbm90IGJlIHBhcnNlYWJsZSAKK1BBU1MgZXhwcmVzc2lvbiBtYXgt
ZGV2aWNlLXdpZHRoOiAtMXB4IHNob3VsZCBub3QgYmUgcGFyc2VhYmxlIAorUEFTUyBleHByZXNz
aW9uIG1pbi1kZXZpY2Utd2lkdGg6ICcxMHB4JyBzaG91bGQgbm90IGJlIHBhcnNlYWJsZSAKK1BB
U1MgZXhwcmVzc2lvbiBtYXgtZGV2aWNlLXdpZHRoOiAnMTBweCcgc2hvdWxkIG5vdCBiZSBwYXJz
ZWFibGUgCitQQVNTIGV4cHJlc3Npb24gZGV2aWNlLXdpZHRoOiAtMC4wMDAwMW1tIHNob3VsZCBu
b3QgYmUgcGFyc2VhYmxlIAorUEFTUyBleHByZXNzaW9uIGRldmljZS13aWR0aDogLTEwMDAwMGVt
IHNob3VsZCBub3QgYmUgcGFyc2VhYmxlIAorUEFTUyBleHByZXNzaW9uIG1pbi1kZXZpY2Utd2lk
dGggc2hvdWxkIG5vdCBiZSBwYXJzZWFibGUgCitQQVNTIGV4cHJlc3Npb24gbWF4LWRldmljZS13
aWR0aCBzaG91bGQgbm90IGJlIHBhcnNlYWJsZSAKK1BBU1MgZXhwcmVzc2lvbiBkZXZpY2UtaGVp
Z2h0IHNob3VsZCBiZSBwYXJzZWFibGUgCitQQVNTIGV4cHJlc3Npb24gZGV2aWNlLWhlaWdodDog
MCBzaG91bGQgYmUgcGFyc2VhYmxlIAorUEFTUyBleHByZXNzaW9uIGRldmljZS1oZWlnaHQ6IDBw
eCBzaG91bGQgYmUgcGFyc2VhYmxlIAorUEFTUyBleHByZXNzaW9uIGRldmljZS1oZWlnaHQ6IDBl
bSBzaG91bGQgYmUgcGFyc2VhYmxlIAorUEFTUyBleHByZXNzaW9uIGRldmljZS1oZWlnaHQ6IC0w
IHNob3VsZCBiZSBwYXJzZWFibGUgCitQQVNTIGV4cHJlc3Npb24gbWluLWRldmljZS1oZWlnaHQ6
IC0wIHNob3VsZCBiZSBwYXJzZWFibGUgCitQQVNTIGV4cHJlc3Npb24gbWF4LWRldmljZS1oZWln
aHQ6IC0wIHNob3VsZCBiZSBwYXJzZWFibGUgCitQQVNTIGV4cHJlc3Npb24gZGV2aWNlLWhlaWdo
dDogLTBjbSBzaG91bGQgYmUgcGFyc2VhYmxlIAorUEFTUyBleHByZXNzaW9uIGRldmljZS1oZWln
aHQ6IDFweCBzaG91bGQgYmUgcGFyc2VhYmxlIAorUEFTUyBleHByZXNzaW9uIGRldmljZS1oZWln
aHQ6IDAuMDAxbW0gc2hvdWxkIGJlIHBhcnNlYWJsZSAKK1BBU1MgZXhwcmVzc2lvbiBkZXZpY2Ut
aGVpZ2h0OiAxMDAwMDBweCBzaG91bGQgYmUgcGFyc2VhYmxlIAorUEFTUyBleHByZXNzaW9uIGRl
dmljZS1oZWlnaHQ6IC0xcHggc2hvdWxkIG5vdCBiZSBwYXJzZWFibGUgCitQQVNTIGV4cHJlc3Np
b24gZGV2aWNlLWhlaWdodDogJzIwcHgnIHNob3VsZCBub3QgYmUgcGFyc2VhYmxlIAorUEFTUyBl
eHByZXNzaW9uIG1pbi1kZXZpY2UtaGVpZ2h0OiAtMXB4IHNob3VsZCBub3QgYmUgcGFyc2VhYmxl
IAorUEFTUyBleHByZXNzaW9uIG1heC1kZXZpY2UtaGVpZ2h0OiAtMXB4IHNob3VsZCBub3QgYmUg
cGFyc2VhYmxlIAorUEFTUyBleHByZXNzaW9uIG1pbi1kZXZpY2UtaGVpZ2h0OiAnMTBweCcgc2hv
dWxkIG5vdCBiZSBwYXJzZWFibGUgCitQQVNTIGV4cHJlc3Npb24gbWF4LWRldmljZS1oZWlnaHQ6
ICcxMHB4JyBzaG91bGQgbm90IGJlIHBhcnNlYWJsZSAKK1BBU1MgZXhwcmVzc2lvbiBkZXZpY2Ut
aGVpZ2h0OiAtMC4wMDAwMW1tIHNob3VsZCBub3QgYmUgcGFyc2VhYmxlIAorUEFTUyBleHByZXNz
aW9uIGRldmljZS1oZWlnaHQ6IC0xMDAwMDBlbSBzaG91bGQgbm90IGJlIHBhcnNlYWJsZSAKK1BB
U1MgZXhwcmVzc2lvbiBtaW4tZGV2aWNlLWhlaWdodCBzaG91bGQgbm90IGJlIHBhcnNlYWJsZSAK
K1BBU1MgZXhwcmVzc2lvbiBtYXgtZGV2aWNlLWhlaWdodCBzaG91bGQgbm90IGJlIHBhcnNlYWJs
ZSAKK1BBU1MgYWxsIGFuZCAod2lkdGg6IHdpZHRoIHB4KSBzaG91bGQgYXBwbHkgCitQQVNTIGFs
bCBhbmQgKHdpZHRoOiB3aWR0aCArMSBweCkgc2hvdWxkIG5vdCBhcHBseSAKK1BBU1MgYWxsIGFu
ZCAod2lkdGg6IHdpZHRoIC0xIHB4KSBzaG91bGQgbm90IGFwcGx5IAorUEFTUyBhbGwgYW5kICht
aW4td2lkdGg6IHdpZHRoIHB4KSBzaG91bGQgYXBwbHkgCitQQVNTIGFsbCBhbmQgKG1pbi13aWR0
aDogd2lkdGggKzEgcHgpIHNob3VsZCBub3QgYXBwbHkgCitQQVNTIGFsbCBhbmQgKG1pbi13aWR0
aDogd2lkdGggLTEgcHgpIHNob3VsZCBhcHBseSAKK1BBU1MgYWxsIGFuZCAobWF4LXdpZHRoOiB3
aWR0aCBweCkgc2hvdWxkIGFwcGx5IAorUEFTUyBhbGwgYW5kIChtYXgtd2lkdGg6IHdpZHRoICsx
IHB4KSBzaG91bGQgYXBwbHkgCitQQVNTIGFsbCBhbmQgKG1heC13aWR0aDogd2lkdGggKzEgcHgp
IHNob3VsZCBub3QgYXBwbHkgCitQQVNTIGFsbCBhbmQgKG1pbi13aWR0aDogd2lkdGggKzEgZW0p
IHNob3VsZCBub3QgYXBwbHkgCitQQVNTIGFsbCBhbmQgKG1pbi13aWR0aDogd2lkdGggLTEgZW0p
IHNob3VsZCBhcHBseSAKK1BBU1MgYWxsIGFuZCAobWF4LXdpZHRoOiB3aWR0aCArMSBlbSkgc2hv
dWxkIGFwcGx5IAorUEFTUyBhbGwgYW5kIChtYXgtd2lkdGg6IHdpZHRoIC0xIGVtKSBzaG91bGQg
bm90IGFwcGx5IAorUEFTUyBhbGwgYW5kIChoZWlnaHQ6IGhlaWdodCBweCkgc2hvdWxkIGFwcGx5
IAorUEFTUyBhbGwgYW5kIChoZWlnaHQ6IGhlaWdodCArMSBweCkgc2hvdWxkIG5vdCBhcHBseSAK
K1BBU1MgYWxsIGFuZCAoaGVpZ2h0OiBoZWlnaHQgLTEgcHgpIHNob3VsZCBub3QgYXBwbHkgCitQ
QVNTIGFsbCBhbmQgKG1pbi1oZWlnaHQ6IGhlaWdodCBweCkgc2hvdWxkIGFwcGx5IAorUEFTUyBh
bGwgYW5kIChtaW4taGVpZ2h0OiBoZWlnaHQgKzEgcHgpIHNob3VsZCBub3QgYXBwbHkgCitQQVNT
IGFsbCBhbmQgKG1pbi1oZWlnaHQ6IGhlaWdodCAtMSBweCkgc2hvdWxkIGFwcGx5IAorUEFTUyBh
bGwgYW5kIChtYXgtaGVpZ2h0OiBoZWlnaHQgcHgpIHNob3VsZCBhcHBseSAKK1BBU1MgYWxsIGFu
ZCAobWF4LWhlaWdodDogaGVpZ2h0ICsxIHB4KSBzaG91bGQgYXBwbHkgCitQQVNTIGFsbCBhbmQg
KG1heC1oZWlnaHQ6IGhlaWdodCArMSBweCkgc2hvdWxkIG5vdCBhcHBseSAKK1BBU1MgYWxsIGFu
ZCAobWluLWhlaWdodDogaGVpZ2h0ICsxIGVtKSBzaG91bGQgbm90IGFwcGx5IAorUEFTUyBhbGwg
YW5kIChtaW4taGVpZ2h0OiBoZWlnaHQgLTEgZW0pIHNob3VsZCBhcHBseSAKK1BBU1MgYWxsIGFu
ZCAobWF4LWhlaWdodDogaGVpZ2h0ICsxIGVtKSBzaG91bGQgYXBwbHkgCitQQVNTIGFsbCBhbmQg
KG1heC1oZWlnaHQ6IGhlaWdodCAtMSBlbSkgc2hvdWxkIG5vdCBhcHBseSAKK1BBU1MgYWxsIGFu
ZCAoZGV2aWNlLXdpZHRoOiBkZXZpY2Utd2lkdGggcHgpIHNob3VsZCBhcHBseSAKK1BBU1MgYWxs
IGFuZCAoZGV2aWNlLXdpZHRoOiBkZXZpY2Utd2lkdGggKzEgcHgpIHNob3VsZCBub3QgYXBwbHkg
CitQQVNTIGFsbCBhbmQgKGRldmljZS13aWR0aDogZGV2aWNlLXdpZHRoIC0xIHB4KSBzaG91bGQg
bm90IGFwcGx5IAorUEFTUyBhbGwgYW5kIChtaW4tZGV2aWNlLXdpZHRoOiBkZXZpY2Utd2lkdGgg
cHgpIHNob3VsZCBhcHBseSAKK1BBU1MgYWxsIGFuZCAobWluLWRldmljZS13aWR0aDogZGV2aWNl
LXdpZHRoICsxIHB4KSBzaG91bGQgbm90IGFwcGx5IAorUEFTUyBhbGwgYW5kIChtaW4tZGV2aWNl
LXdpZHRoOiBkZXZpY2Utd2lkdGggLTEgcHgpIHNob3VsZCBhcHBseSAKK1BBU1MgYWxsIGFuZCAo
bWF4LWRldmljZS13aWR0aDogZGV2aWNlLXdpZHRoIHB4KSBzaG91bGQgYXBwbHkgCitQQVNTIGFs
bCBhbmQgKG1heC1kZXZpY2Utd2lkdGg6IGRldmljZS13aWR0aCArMSBweCkgc2hvdWxkIGFwcGx5
IAorUEFTUyBhbGwgYW5kIChtYXgtZGV2aWNlLXdpZHRoOiBkZXZpY2Utd2lkdGggKzEgcHgpIHNo
b3VsZCBub3QgYXBwbHkgCitQQVNTIGFsbCBhbmQgKG1pbi1kZXZpY2Utd2lkdGg6IGRldmljZS13
aWR0aCArMSBlbSkgc2hvdWxkIG5vdCBhcHBseSAKK1BBU1MgYWxsIGFuZCAobWluLWRldmljZS13
aWR0aDogZGV2aWNlLXdpZHRoIC0xIGVtKSBzaG91bGQgYXBwbHkgCitQQVNTIGFsbCBhbmQgKG1h
eC1kZXZpY2Utd2lkdGg6IGRldmljZS13aWR0aCArMSBlbSkgc2hvdWxkIGFwcGx5IAorUEFTUyBh
bGwgYW5kIChtYXgtZGV2aWNlLXdpZHRoOiBkZXZpY2Utd2lkdGggLTEgZW0pIHNob3VsZCBub3Qg
YXBwbHkgCitQQVNTIGFsbCBhbmQgKGRldmljZS1oZWlnaHQ6IGRldmljZS1oZWlnaHQgcHgpIHNo
b3VsZCBhcHBseSAKK1BBU1MgYWxsIGFuZCAoZGV2aWNlLWhlaWdodDogZGV2aWNlLWhlaWdodCAr
MSBweCkgc2hvdWxkIG5vdCBhcHBseSAKK1BBU1MgYWxsIGFuZCAoZGV2aWNlLWhlaWdodDogZGV2
aWNlLWhlaWdodCAtMSBweCkgc2hvdWxkIG5vdCBhcHBseSAKK1BBU1MgYWxsIGFuZCAobWluLWRl
dmljZS1oZWlnaHQ6IGRldmljZS1oZWlnaHQgcHgpIHNob3VsZCBhcHBseSAKK1BBU1MgYWxsIGFu
ZCAobWluLWRldmljZS1oZWlnaHQ6IGRldmljZS1oZWlnaHQgKzEgcHgpIHNob3VsZCBub3QgYXBw
bHkgCitQQVNTIGFsbCBhbmQgKG1pbi1kZXZpY2UtaGVpZ2h0OiBkZXZpY2UtaGVpZ2h0IC0xIHB4
KSBzaG91bGQgYXBwbHkgCitQQVNTIGFsbCBhbmQgKG1heC1kZXZpY2UtaGVpZ2h0OiBkZXZpY2Ut
aGVpZ2h0IHB4KSBzaG91bGQgYXBwbHkgCitQQVNTIGFsbCBhbmQgKG1heC1kZXZpY2UtaGVpZ2h0
OiBkZXZpY2UtaGVpZ2h0ICsxIHB4KSBzaG91bGQgYXBwbHkgCitQQVNTIGFsbCBhbmQgKG1heC1k
ZXZpY2UtaGVpZ2h0OiBkZXZpY2UtaGVpZ2h0ICsxIHB4KSBzaG91bGQgbm90IGFwcGx5IAorUEFT
UyBhbGwgYW5kIChtaW4tZGV2aWNlLWhlaWdodDogZGV2aWNlLWhlaWdodCArMSBlbSkgc2hvdWxk
IG5vdCBhcHBseSAKK1BBU1MgYWxsIGFuZCAobWluLWRldmljZS1oZWlnaHQ6IGRldmljZS1oZWln
aHQgLTEgZW0pIHNob3VsZCBhcHBseSAKK1BBU1MgYWxsIGFuZCAobWF4LWRldmljZS1oZWlnaHQ6
IGRldmljZS1oZWlnaHQgKzEgZW0pIHNob3VsZCBhcHBseSAKK1BBU1MgYWxsIGFuZCAobWF4LWRl
dmljZS1oZWlnaHQ6IGRldmljZS1oZWlnaHQgLTEgZW0pIHNob3VsZCBub3QgYXBwbHkgCitQQVNT
IGFsbCBhbmQgKGhlaWdodCkgc2hvdWxkIGFwcGx5IAorUEFTUyBhbGwgYW5kICh3aWR0aCkgc2hv
dWxkIG5vdCBhcHBseSAKK1BBU1MgYWxsIGFuZCAoaGVpZ2h0KSBzaG91bGQgbm90IGFwcGx5IAor
UEFTUyBhbGwgYW5kICh3aWR0aCkgc2hvdWxkIG5vdCBhcHBseSAKK1BBU1MgYWxsIGFuZCAoZGV2
aWNlLWhlaWdodCkgc2hvdWxkIGFwcGx5IAorUEFTUyBhbGwgYW5kIChkZXZpY2Utd2lkdGgpIHNo
b3VsZCBhcHBseSAKK1BBU1MgYWxsIGFuZCAoaGVpZ2h0KSBzaG91bGQgbm90IGFwcGx5IAorUEFT
UyBhbGwgYW5kICh3aWR0aCkgc2hvdWxkIGFwcGx5IAorUEFTUyBhbGwgYW5kIChoZWlnaHQpIHNo
b3VsZCBhcHBseSAKK1BBU1MgYWxsIGFuZCAod2lkdGgpIHNob3VsZCBhcHBseSAKK1BBU1MgZXhw
cmVzc2lvbiBvcmllbnRhdGlvbiBzaG91bGQgYmUgcGFyc2VhYmxlIAorUEFTUyBleHByZXNzaW9u
IG9yaWVudGF0aW9uOiBwb3J0cmFpdCBzaG91bGQgYmUgcGFyc2VhYmxlIAorUEFTUyBleHByZXNz
aW9uIG9yaWVudGF0aW9uOiBsYW5kc2NhcGUgc2hvdWxkIGJlIHBhcnNlYWJsZSAKK1BBU1MgZXhw
cmVzc2lvbiBtaW4tb3JpZW50YXRpb24gc2hvdWxkIG5vdCBiZSBwYXJzZWFibGUgCitQQVNTIGV4
cHJlc3Npb24gbWluLW9yaWVudGF0aW9uOiBwb3J0cmFpdCBzaG91bGQgbm90IGJlIHBhcnNlYWJs
ZSAKK1BBU1MgZXhwcmVzc2lvbiBtaW4tb3JpZW50YXRpb246IGxhbmRzY2FwZSBzaG91bGQgbm90
IGJlIHBhcnNlYWJsZSAKK1BBU1MgZXhwcmVzc2lvbiBtYXgtb3JpZW50YXRpb24gc2hvdWxkIG5v
dCBiZSBwYXJzZWFibGUgCitQQVNTIGV4cHJlc3Npb24gbWF4LW9yaWVudGF0aW9uOiBwb3J0cmFp
dCBzaG91bGQgbm90IGJlIHBhcnNlYWJsZSAKK1BBU1MgZXhwcmVzc2lvbiBtYXgtb3JpZW50YXRp
b246IGxhbmRzY2FwZSBzaG91bGQgbm90IGJlIHBhcnNlYWJsZSAKK1BBU1MgKG9yaWVudGF0aW9u
KSBzaG91bGQgYXBwbHkgCitQQVNTIChvcmllbnRhdGlvbjogbGFuZHNjYXBlKSBzaG91bGQgYXBw
bHkgCitQQVNTIChvcmllbnRhdGlvbjogcG9ydHJhaXQpIHNob3VsZCBub3QgYXBwbHkgCitQQVNT
IG5vdCBhbGwgYW5kIChvcmllbnRhdGlvbjogcG9ydHJhaXQpIHNob3VsZCBhcHBseSAKK1BBU1Mg
KG9yaWVudGF0aW9uKSBzaG91bGQgYXBwbHkgCitQQVNTIChvcmllbnRhdGlvbjogbGFuZHNjYXBl
KSBzaG91bGQgbm90IGFwcGx5IAorUEFTUyBub3QgYWxsIGFuZCAob3JpZW50YXRpb246IGxhbmRz
Y2FwZSkgc2hvdWxkIGFwcGx5IAorUEFTUyAob3JpZW50YXRpb246IHBvcnRyYWl0KSBzaG91bGQg
YXBwbHkgCitQQVNTIChhc3BlY3QtcmF0aW86IDU5LzgwKSBzaG91bGQgYXBwbHkgCitQQVNTIChh
c3BlY3QtcmF0aW86IDU4LzgwKSBzaG91bGQgbm90IGFwcGx5IAorUEFTUyAoYXNwZWN0LXJhdGlv
OiA1OS84MSkgc2hvdWxkIG5vdCBhcHBseSAKK1BBU1MgKGFzcGVjdC1yYXRpbzogNjAvODApIHNo
b3VsZCBub3QgYXBwbHkgCitQQVNTIChhc3BlY3QtcmF0aW86IDU5Lzc5KSBzaG91bGQgbm90IGFw
cGx5IAorUEFTUyAoYXNwZWN0LXJhdGlvOiAxNzcvMjQwKSBzaG91bGQgYXBwbHkgCitQQVNTIChh
c3BlY3QtcmF0aW86IDQxMy81NjApIHNob3VsZCBhcHBseSAKK1BBU1MgKGFzcGVjdC1yYXRpbzog
NTkwMC84MDAwKSBzaG91bGQgYXBwbHkgCitQQVNTIChhc3BlY3QtcmF0aW86IDU5MDEvODAwMCkg
c2hvdWxkIG5vdCBhcHBseSAKK1BBU1MgKGFzcGVjdC1yYXRpbzogNTg5OS84MDAwKSBzaG91bGQg
bm90IGFwcGx5IAorUEFTUyAoYXNwZWN0LXJhdGlvOiA1OTAwLzgwMDEpIHNob3VsZCBub3QgYXBw
bHkgCitQQVNTIChhc3BlY3QtcmF0aW86IDU5MDAvNzk5OSkgc2hvdWxkIG5vdCBhcHBseSAKK1BB
U1MgKGFzcGVjdC1yYXRpbykgc2hvdWxkIGFwcGx5IAorUEFTUyAobWluLWFzcGVjdC1yYXRpbzog
NTkvODApIHNob3VsZCBhcHBseSAKK1BBU1MgKG1pbi1hc3BlY3QtcmF0aW86IDU4LzgwKSBzaG91
bGQgYXBwbHkgCitQQVNTIChtaW4tYXNwZWN0LXJhdGlvOiA1OS84MSkgc2hvdWxkIGFwcGx5IAor
UEFTUyAobWluLWFzcGVjdC1yYXRpbzogNjAvODApIHNob3VsZCBub3QgYXBwbHkgCitQQVNTICht
aW4tYXNwZWN0LXJhdGlvOiA1OS83OSkgc2hvdWxkIG5vdCBhcHBseSAKK1BBU1MgZXhwcmVzc2lv
biBtaW4tYXNwZWN0LXJhdGlvIHNob3VsZCBub3QgYmUgcGFyc2VhYmxlIAorUEFTUyAobWF4LWFz
cGVjdC1yYXRpbzogNTkvODApIHNob3VsZCBhcHBseSAKK1BBU1MgKG1heC1hc3BlY3QtcmF0aW86
IDU4LzgwKSBzaG91bGQgbm90IGFwcGx5IAorUEFTUyAobWF4LWFzcGVjdC1yYXRpbzogNTkvODEp
IHNob3VsZCBub3QgYXBwbHkgCitQQVNTIChtYXgtYXNwZWN0LXJhdGlvOiA2MC84MCkgc2hvdWxk
IGFwcGx5IAorUEFTUyAobWF4LWFzcGVjdC1yYXRpbzogNTkvNzkpIHNob3VsZCBhcHBseSAKK1BB
U1MgZXhwcmVzc2lvbiBtYXgtYXNwZWN0LXJhdGlvIHNob3VsZCBub3QgYmUgcGFyc2VhYmxlIAor
UEFTUyAoZGV2aWNlLWFzcGVjdC1yYXRpbzogZGV2aWNlLXdpZHRoIC8gZGV2aWNlLWhlaWdodCkg
c2hvdWxkIGFwcGx5IAorUEFTUyBub3QgYWxsIGFuZCAoZGV2aWNlLWFzcGVjdC1yYXRpbzogZGV2
aWNlLXdpZHRoICsgMSAvIGRldmljZS1oZWlnaHQpIHNob3VsZCBhcHBseSAKK1BBU1MgYWxsIGFu
ZCAoZGV2aWNlLWFzcGVjdC1yYXRpbzogZGV2aWNlLXdpZHRoIC8gZGV2aWNlLWhlaWdodCAtIDEp
IHNob3VsZCBub3QgYXBwbHkgCitQQVNTIGFsbCBhbmQgKGRldmljZS1hc3BlY3QtcmF0aW86IGRl
dmljZS13aWR0aCAtIDEgLyBkZXZpY2UtaGVpZ2h0KSBzaG91bGQgbm90IGFwcGx5IAorUEFTUyBu
b3QgYWxsIGFuZCAoZGV2aWNlLWFzcGVjdC1yYXRpbzogZGV2aWNlLXdpZHRoIC8gZGV2aWNlLWhl
aWdodCArIDEpIHNob3VsZCBhcHBseSAKK1BBU1MgKGRldmljZS1hc3BlY3QtcmF0aW8pIHNob3Vs
ZCBhcHBseSAKK1BBU1MgKG1pbi1kZXZpY2UtYXNwZWN0LXJhdGlvOiBkZXZpY2Utd2lkdGggLyBk
ZXZpY2UtaGVpZ2h0KSBzaG91bGQgYXBwbHkgCitQQVNTIG5vdCBhbGwgYW5kIChkZXZpY2UtYXNw
ZWN0LXJhdGlvOiBkZXZpY2Utd2lkdGggKyAxIC8gZGV2aWNlLWhlaWdodCkgc2hvdWxkIG5vdCBh
cHBseSAKK1BBU1Mgbm90IGFsbCBhbmQgKG1pbi1kZXZpY2UtYXNwZWN0LXJhdGlvOiBkZXZpY2Ut
d2lkdGggLyBkZXZpY2UtaGVpZ2h0IC0gMSkgc2hvdWxkIGFwcGx5IAorUEFTUyBub3QgYWxsIGFu
ZCAobWluLWRldmljZS1hc3BlY3QtcmF0aW86IGRldmljZS13aWR0aCAtIDEgLyBkZXZpY2UtaGVp
Z2h0KSBzaG91bGQgbm90IGFwcGx5IAorUEFTUyBhbGwgYW5kIChtaW4tZGV2aWNlLWFzcGVjdC1y
YXRpbzogZGV2aWNlLXdpZHRoIC8gZGV2aWNlLWhlaWdodCArIDEpIHNob3VsZCBhcHBseSAKK1BB
U1MgZXhwcmVzc2lvbiBtaW4tZGV2aWNlLWFzcGVjdC1yYXRpbyBzaG91bGQgbm90IGJlIHBhcnNl
YWJsZSAKK1BBU1MgYWxsIGFuZCAobWF4LWRldmljZS1hc3BlY3QtcmF0aW86IGRldmljZS13aWR0
aCAvIGRldmljZS1oZWlnaHQpIHNob3VsZCBhcHBseSAKK1BBU1MgKG1heC1kZXZpY2UtYXNwZWN0
LXJhdGlvOiBkZXZpY2Utd2lkdGggKyAxIC8gZGV2aWNlLWhlaWdodCkgc2hvdWxkIGFwcGx5IAor
UEFTUyAobWF4LWRldmljZS1hc3BlY3QtcmF0aW86IGRldmljZS13aWR0aCAvIGRldmljZS1oZWln
aHQgLSAxIHNob3VsZCBhcHBseSAKK1BBU1MgYWxsIGFuZCAobWF4LWRldmljZS1hc3BlY3QtcmF0
aW86IGRldmljZS13aWR0aCAtIDEgLyBkZXZpY2UtaGVpZ2h0KSBzaG91bGQgbm90IGFwcGx5IAor
UEFTUyBub3QgYWxsIGFuZCAobWF4LWRldmljZS1hc3BlY3QtcmF0aW86IGRldmljZS13aWR0aCAv
IGRldmljZS1oZWlnaHQgKyAxKSBzaG91bGQgYXBwbHkgCitQQVNTIGV4cHJlc3Npb24gbWF4LWRl
dmljZS1hc3BlY3QtcmF0aW8gc2hvdWxkIG5vdCBiZSBwYXJzZWFibGUgCitQQVNTIGV4cHJlc3Np
b24gbWF4LWFzcGVjdC1yYXRpbzogMS8xIHNob3VsZCBiZSBwYXJzZWFibGUgCitQQVNTIGV4cHJl
c3Npb24gbWF4LWFzcGVjdC1yYXRpbzogMSAgLzEgc2hvdWxkIGJlIHBhcnNlYWJsZSAKK1BBU1Mg
ZXhwcmVzc2lvbiBtYXgtYXNwZWN0LXJhdGlvOiAxICAvIAkKKzEgc2hvdWxkIGJlIHBhcnNlYWJs
ZSAKK1BBU1MgZXhwcmVzc2lvbiBtYXgtYXNwZWN0LXJhdGlvOiAxLworMSBzaG91bGQgYmUgcGFy
c2VhYmxlIAorUEFTUyBleHByZXNzaW9uIG1heC1hc3BlY3QtcmF0aW86IDEgc2hvdWxkIG5vdCBi
ZSBwYXJzZWFibGUgCitQQVNTIGV4cHJlc3Npb24gbWF4LWFzcGVjdC1yYXRpbzogMC41IHNob3Vs
ZCBub3QgYmUgcGFyc2VhYmxlIAorUEFTUyBleHByZXNzaW9uIG1heC1hc3BlY3QtcmF0aW86IDEu
MC8xIHNob3VsZCBub3QgYmUgcGFyc2VhYmxlIAorUEFTUyBleHByZXNzaW9uIG1heC1hc3BlY3Qt
cmF0aW86IDEvMS4wIHNob3VsZCBub3QgYmUgcGFyc2VhYmxlIAorUEFTUyBleHByZXNzaW9uIG1h
eC1hc3BlY3QtcmF0aW86IDEuMC8xLjAgc2hvdWxkIG5vdCBiZSBwYXJzZWFibGUgCitQQVNTIGV4
cHJlc3Npb24gbWF4LWFzcGVjdC1yYXRpbzogMC8xIHNob3VsZCBub3QgYmUgcGFyc2VhYmxlIAor
UEFTUyBleHByZXNzaW9uIG1heC1hc3BlY3QtcmF0aW86IDEvMCBzaG91bGQgbm90IGJlIHBhcnNl
YWJsZSAKK1BBU1MgZXhwcmVzc2lvbiBtYXgtYXNwZWN0LXJhdGlvOiAwLzAgc2hvdWxkIG5vdCBi
ZSBwYXJzZWFibGUgCitQQVNTIGV4cHJlc3Npb24gbWF4LWFzcGVjdC1yYXRpbzogLTEvMSBzaG91
bGQgbm90IGJlIHBhcnNlYWJsZSAKK1BBU1MgZXhwcmVzc2lvbiBtYXgtYXNwZWN0LXJhdGlvOiAx
Ly0xIHNob3VsZCBub3QgYmUgcGFyc2VhYmxlIAorUEFTUyBleHByZXNzaW9uIG1heC1hc3BlY3Qt
cmF0aW86IC0xLy0xIHNob3VsZCBub3QgYmUgcGFyc2VhYmxlIAorUEFTUyBleHByZXNzaW9uIGRl
dmljZS1hc3BlY3QtcmF0aW86IDEvMSBzaG91bGQgYmUgcGFyc2VhYmxlIAorUEFTUyBleHByZXNz
aW9uIGRldmljZS1hc3BlY3QtcmF0aW86IDEgIC8xIHNob3VsZCBiZSBwYXJzZWFibGUgCitQQVNT
IGV4cHJlc3Npb24gZGV2aWNlLWFzcGVjdC1yYXRpbzogMSAgLyAJCisxIHNob3VsZCBiZSBwYXJz
ZWFibGUgCitQQVNTIGV4cHJlc3Npb24gZGV2aWNlLWFzcGVjdC1yYXRpbzogMS8KKzEgc2hvdWxk
IGJlIHBhcnNlYWJsZSAKK1BBU1MgZXhwcmVzc2lvbiBkZXZpY2UtYXNwZWN0LXJhdGlvOiAxIHNo
b3VsZCBub3QgYmUgcGFyc2VhYmxlIAorUEFTUyBleHByZXNzaW9uIGRldmljZS1hc3BlY3QtcmF0
aW86IDAuNSBzaG91bGQgbm90IGJlIHBhcnNlYWJsZSAKK1BBU1MgZXhwcmVzc2lvbiBkZXZpY2Ut
YXNwZWN0LXJhdGlvOiAxLjAvMSBzaG91bGQgbm90IGJlIHBhcnNlYWJsZSAKK1BBU1MgZXhwcmVz
c2lvbiBkZXZpY2UtYXNwZWN0LXJhdGlvOiAxLzEuMCBzaG91bGQgbm90IGJlIHBhcnNlYWJsZSAK
K1BBU1MgZXhwcmVzc2lvbiBkZXZpY2UtYXNwZWN0LXJhdGlvOiAxLjAvMS4wIHNob3VsZCBub3Qg
YmUgcGFyc2VhYmxlIAorUEFTUyBleHByZXNzaW9uIGRldmljZS1hc3BlY3QtcmF0aW86IDAvMSBz
aG91bGQgbm90IGJlIHBhcnNlYWJsZSAKK1BBU1MgZXhwcmVzc2lvbiBkZXZpY2UtYXNwZWN0LXJh
dGlvOiAxLzAgc2hvdWxkIG5vdCBiZSBwYXJzZWFibGUgCitQQVNTIGV4cHJlc3Npb24gZGV2aWNl
LWFzcGVjdC1yYXRpbzogMC8wIHNob3VsZCBub3QgYmUgcGFyc2VhYmxlIAorUEFTUyBleHByZXNz
aW9uIGRldmljZS1hc3BlY3QtcmF0aW86IC0xLzEgc2hvdWxkIG5vdCBiZSBwYXJzZWFibGUgCitQ
QVNTIGV4cHJlc3Npb24gZGV2aWNlLWFzcGVjdC1yYXRpbzogMS8tMSBzaG91bGQgbm90IGJlIHBh
cnNlYWJsZSAKK1BBU1MgZXhwcmVzc2lvbiBkZXZpY2UtYXNwZWN0LXJhdGlvOiAtMS8tMSBzaG91
bGQgbm90IGJlIHBhcnNlYWJsZSAKK1BBU1MgbW9ub2Nocm9tZV9hbmRfY29sb3IgCitQQVNTIGZp
bmRfZGVwdGggCitQQVNTIGFsbCBhbmQgKGNvbG9yOiBkZXB0aCkgc2hvdWxkIGFwcGx5IAorUEFT
UyBhbGwgYW5kIChjb2xvcjogZGVwdGggLSAxKSBzaG91bGQgbm90IGFwcGx5IAorUEFTUyBhbGwg
YW5kIChjb2xvcjogZGVwdGggKyAxKSBzaG91bGQgbm90IGFwcGx5IAorUEFTUyBhbGwgYW5kICht
YXgtY29sb3I6IGRlcHRoKSBzaG91bGQgYXBwbHkgCitQQVNTIGFsbCBhbmQgKG1heC1jb2xvcjog
ZGVwdGggLSAxKSBzaG91bGQgbm90IGFwcGx5IAorUEFTUyBhbGwgYW5kIChtYXgtY29sb3I6IGRl
cHRoICsgMSkgc2hvdWxkIGFwcGx5IAorUEFTUyBhbGwgYW5kIChjb2xvcikgc2hvdWxkIGFwcGx5
IAorUEFTUyBleHByZXNzaW9uIG1heC1jb2xvciBzaG91bGQgbm90IGJlIHBhcnNlYWJsZSAKK1BB
U1MgZXhwcmVzc2lvbiBtaW4tY29sb3Igc2hvdWxkIG5vdCBiZSBwYXJzZWFibGUgCitQQVNTIGFs
bCBhbmQgKG1vbm9jaHJvbWUpIHNob3VsZCBub3QgYXBwbHkgCitQQVNTIGV4cHJlc3Npb24gbWF4
LW1vbm9jaHJvbWUgc2hvdWxkIG5vdCBiZSBwYXJzZWFibGUgCitQQVNTIGV4cHJlc3Npb24gbWlu
LW1vbm9jaHJvbWUgc2hvdWxkIG5vdCBiZSBwYXJzZWFibGUgCitQQVNTIG5vdCBhbGwgYW5kICht
b25vY2hyb21lKSBzaG91bGQgYXBwbHkgCitQQVNTIG5vdCBhbGwgYW5kIChjb2xvcikgc2hvdWxk
IG5vdCBhcHBseSAKK1BBU1Mgb25seSBhbGwgYW5kIChjb2xvcikgc2hvdWxkIGFwcGx5IAorUEFT
UyBvbmx5IGFsbCBhbmQgKG1vbm9jaHJvbWUpIHNob3VsZCBub3QgYXBwbHkgCitQQVNTIGV4cHJl
c3Npb24gY29sb3I6IDEgc2hvdWxkIGJlIHBhcnNlYWJsZSAKK1BBU1MgZXhwcmVzc2lvbiBjb2xv
cjogMzI3IHNob3VsZCBiZSBwYXJzZWFibGUgCitQQVNTIGV4cHJlc3Npb24gY29sb3I6IDAgc2hv
dWxkIGJlIHBhcnNlYWJsZSAKK1BBU1MgZXhwcmVzc2lvbiBjb2xvcjogMS4wIHNob3VsZCBub3Qg
YmUgcGFyc2VhYmxlIAorUEFTUyBleHByZXNzaW9uIGNvbG9yOiAtMSBzaG91bGQgbm90IGJlIHBh
cnNlYWJsZSAKK1BBU1MgZXhwcmVzc2lvbiBjb2xvcjogMS8xIHNob3VsZCBub3QgYmUgcGFyc2Vh
YmxlIAorUEFTUyBleHByZXNzaW9uIG1pbi1tb25vY2hyb21lOiAxIHNob3VsZCBiZSBwYXJzZWFi
bGUgCitQQVNTIGV4cHJlc3Npb24gbWluLW1vbm9jaHJvbWU6IDMyNyBzaG91bGQgYmUgcGFyc2Vh
YmxlIAorUEFTUyBleHByZXNzaW9uIG1pbi1tb25vY2hyb21lOiAwIHNob3VsZCBiZSBwYXJzZWFi
bGUgCitQQVNTIGV4cHJlc3Npb24gbWluLW1vbm9jaHJvbWU6IDEuMCBzaG91bGQgbm90IGJlIHBh
cnNlYWJsZSAKK1BBU1MgZXhwcmVzc2lvbiBtaW4tbW9ub2Nocm9tZTogLTEgc2hvdWxkIG5vdCBi
ZSBwYXJzZWFibGUgCitQQVNTIGV4cHJlc3Npb24gbWluLW1vbm9jaHJvbWU6IDEvMSBzaG91bGQg
bm90IGJlIHBhcnNlYWJsZSAKK1BBU1MgZXhwcmVzc2lvbiBncmlkIHNob3VsZCBiZSBwYXJzZWFi
bGUgCitQQVNTIGV4cHJlc3Npb24gZ3JpZDogMCBzaG91bGQgYmUgcGFyc2VhYmxlIAorUEFTUyBl
eHByZXNzaW9uIGdyaWQ6IDEgc2hvdWxkIGJlIHBhcnNlYWJsZSAKK1BBU1MgZXhwcmVzc2lvbiBn
cmlkOiAxIHNob3VsZCBiZSBwYXJzZWFibGUgCitQQVNTIGV4cHJlc3Npb24gbWluLWdyaWQgc2hv
dWxkIG5vdCBiZSBwYXJzZWFibGUgCitQQVNTIGV4cHJlc3Npb24gbWluLWdyaWQ6MCBzaG91bGQg
bm90IGJlIHBhcnNlYWJsZSAKK1BBU1MgZXhwcmVzc2lvbiBtYXgtZ3JpZDogMSBzaG91bGQgbm90
IGJlIHBhcnNlYWJsZSAKK1BBU1MgZXhwcmVzc2lvbiBncmlkOiAyIHNob3VsZCBub3QgYmUgcGFy
c2VhYmxlIAorUEFTUyBleHByZXNzaW9uIGdyaWQ6IC0xIHNob3VsZCBub3QgYmUgcGFyc2VhYmxl
IAorUEFTUyAoZ3JpZCkgc2hvdWxkIG5vdCBhcHBseSAKK1BBU1MgKGdyaWQ6IDApIHNob3VsZCBh
cHBseSAKK1BBU1MgKGdyaWQ6IDEpIHNob3VsZCBub3QgYXBwbHkgCitQQVNTIChncmlkOiAyKSBz
aG91bGQgbm90IGFwcGx5IAorUEFTUyAoZ3JpZDogLTEpIHNob3VsZCBub3QgYXBwbHkgCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWEvdzNjL3Rlc3RfbWVkaWFfcXVlcmllcy5o
dG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS93M2MvdGVzdF9tZWRpYV9xdWVyaWVzLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTc5ZTQ3MQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWEvdzNjL3Rlc3RfbWVkaWFfcXVlcmllcy5odG1s
CkBAIC0wLDAgKzEsMzU5IEBACis8IURPQ1RZUEUgSFRNTD4KKzxodG1sPgorPGhlYWQ+CisgIDx0
aXRsZT5NZWRpYSBRdWVyaWVzIFNlbGYtQ29udGFpbmVkIFRlc3QgU3VpdGU8L3RpdGxlPgorICA8
bGluayByZWw9ImF1dGhvciIgdGl0bGU9IkwuIERhdmlkIEJhcm9uIiBocmVmPSJodHRwOi8vZGJh
cm9uLm9yZy8iPgorICA8bGluayByZWw9ImF1dGhvciIgdGl0bGU9IkFubmUgdmFuIEtlc3RlcmVu
IiBocmVmPSJodHRwOi8vYW5uZXZhbmtlc3RlcmVuLm5sLyI+CisgIDxsaW5rIHJlbD0iYXV0aG9y
IiB0aXRsZT0iTXMyZ2VyIiBocmVmPSJtYWlsdG86TXMyZ2VyQGdtYWlsLmNvbSI+CisgIDxsaW5r
IHJlbD0iaGVscCIgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvVFIvY3NzMy1tZWRpYXF1ZXJpZXMv
Ij4KKyAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4vcmVzb3Vy
Y2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKyAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFz
Y3JpcHQiIHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3Nj
cmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVuKCkiPgorPGRpdiBpZD1sb2c+PC9kaXY+
Cis8aWZyYW1lIGlkPSJzdWJkb2MiIHNyYz0icmVzb3VyY2VzL21lZGlhX3F1ZXJpZXNfaWZyYW1l
Lmh0bWwiPjwvaWZyYW1lPgorPGRpdiBpZD0iY29udGVudCIgc3R5bGU9ImRpc3BsYXk6IG5vbmUi
PjwvZGl2PgorCis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CitzZXR1cCh7ICJleHBs
aWNpdF9kb25lIjogdHJ1ZSB9KTsKKworZnVuY3Rpb24gcnVuKCkgeworICAgIHZhciBzdWJkb2Mg
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3ViZG9jIikuY29udGVudERvY3VtZW50OworICAg
IHZhciBzdWJ3aW4gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3ViZG9jIikuY29udGVudFdp
bmRvdzsKKyAgICB2YXIgc3R5bGUgPSBzdWJkb2MuZ2V0RWxlbWVudEJ5SWQoInN0eWxlIik7Cisg
ICAgdmFyIGlmcmFtZV9zdHlsZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzdWJkb2MiKS5z
dHlsZTsKKyAgICB2YXIgYm9keV9jcyA9IHN1YmRvYy5kZWZhdWx0Vmlldy5nZXRDb21wdXRlZFN0
eWxlKHN1YmRvYy5ib2R5LCAiIik7CisKKyAgICBmdW5jdGlvbiBxdWVyeV9hcHBsaWVzKHEpIHsK
KyAgICAgIHN0eWxlLnNldEF0dHJpYnV0ZSgibWVkaWEiLCBxKTsKKyAgICAgIHJldHVybiBib2R5
X2NzLmdldFByb3BlcnR5VmFsdWUoInRleHQtZGVjb3JhdGlvbiIpID09ICJ1bmRlcmxpbmUiOwor
ICAgIH0KKworICAgIGZ1bmN0aW9uIHNob3VsZF9hcHBseShxLCBtZXNzYWdlKSB7CisgICAgICB0
ZXN0KGZ1bmN0aW9uKCkgeworICAgICAgICBhc3NlcnRfdHJ1ZShxdWVyeV9hcHBsaWVzKHEpKTsK
KyAgICAgIH0sIChtZXNzYWdlICE9PSB1bmRlZmluZWQgPyBtZXNzYWdlIDogcSkgKyAiIHNob3Vs
ZCBhcHBseSIpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHNob3VsZF9ub3RfYXBwbHkocSwgbWVz
c2FnZSkgeworICAgICAgdGVzdChmdW5jdGlvbigpIHsKKyAgICAgICAgYXNzZXJ0X2ZhbHNlKHF1
ZXJ5X2FwcGxpZXMocSkpOworICAgICAgfSwgKG1lc3NhZ2UgIT09IHVuZGVmaW5lZCA/IG1lc3Nh
Z2UgOiBxKSArICIgc2hvdWxkIG5vdCBhcHBseSIpOworICAgIH0KKworICAgIC8qCisgICAgICog
RnVuY3Rpb25zIHRvIHRlc3Qgd2hldGhlciBhIHF1ZXJ5IGlzIHBhcnNlYWJsZSBhdCBhbGwuICAo
U2hvdWxkIG5vdAorICAgICAqIGJlIHVzZWQgZm9yIHBhcnNlIGVycm9ycyB3aXRoaW4gZXhwcmVz
c2lvbnMuKQorICAgICAqLworICAgIHZhciBwYXJzZV90ZXN0X3N0eWxlX2VsZW1lbnQgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCJzdHlsZSIpOworICAgIHBhcnNlX3Rlc3Rfc3R5bGVfZWxlbWVu
dC50eXBlID0gInRleHQvY3NzIjsKKyAgICBwYXJzZV90ZXN0X3N0eWxlX2VsZW1lbnQuZGlzYWJs
ZWQgPSB0cnVlOyAvLyBmb3IgcGVyZm9ybWFuY2UsIGhvcGVmdWxseQorICAgIHZhciBwYXJzZV90
ZXN0X3N0eWxlX3RleHQgPSBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiIik7CisgICAgcGFyc2Vf
dGVzdF9zdHlsZV9lbGVtZW50LmFwcGVuZENoaWxkKHBhcnNlX3Rlc3Rfc3R5bGVfdGV4dCk7Cisg
ICAgZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImhlYWQiKVswXQorICAgICAgLmFwcGVu
ZENoaWxkKHBhcnNlX3Rlc3Rfc3R5bGVfZWxlbWVudCk7CisKKyAgICBmdW5jdGlvbiBxdWVyeV9p
c19wYXJzZWFibGUocSkgeworICAgICAgcGFyc2VfdGVzdF9zdHlsZV90ZXh0LmRhdGEgPSAiQG1l
ZGlhIHNjcmVlbiwgIiArIHEgKyAiIHt9IjsKKyAgICAgIHZhciBzaGVldCA9IHBhcnNlX3Rlc3Rf
c3R5bGVfZWxlbWVudC5zaGVldDsgLy8gWFhYIHlpa2VzLCBub3QgbGl2ZSEKKyAgICAgIGlmIChz
aGVldC5jc3NSdWxlcy5sZW5ndGggPT0gMSAmJgorICAgICAgICAgIHNoZWV0LmNzc1J1bGVzWzBd
LnR5cGUgPT0gQ1NTUnVsZS5NRURJQV9SVUxFKQorICAgICAgICByZXR1cm4gc2hlZXQuY3NzUnVs
ZXNbMF0ubWVkaWEubWVkaWFUZXh0ICE9ICJzY3JlZW4sIG5vdCBhbGwiOworCisgICAgICBhc3Nl
cnRfdW5yZWFjaGVkKAorICAgICAgICAidW5leHBlY3RlZCByZXN1bHQgdGVzdGluZyB3aGV0aGVy
IHF1ZXJ5ICIgKyBxICsgIiBpcyBwYXJzZWFibGUiKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBx
dWVyeV9zaG91bGRfYmVfcGFyc2VhYmxlKHEpIHsKKyAgICAgIHRlc3QoZnVuY3Rpb24oKSB7Cisg
ICAgICAgIGFzc2VydF90cnVlKHF1ZXJ5X2lzX3BhcnNlYWJsZShxKSkKKyAgICAgIH0sInF1ZXJ5
ICIgKyBxICsgIiBzaG91bGQgYmUgcGFyc2VhYmxlIik7CisgICAgfQorCisgICAgZnVuY3Rpb24g
cXVlcnlfc2hvdWxkX25vdF9iZV9wYXJzZWFibGUocSkgeworICAgICAgdGVzdChmdW5jdGlvbigp
IHsKKyAgICAgICAgYXNzZXJ0X2ZhbHNlKHF1ZXJ5X2lzX3BhcnNlYWJsZShxKSkKKyAgICAgIH0s
InF1ZXJ5ICIgKyBxICsgIiBzaG91bGQgbm90IGJlIHBhcnNlYWJsZSIpOworICAgIH0KKworICAg
IC8qCisgICAgICogRnVuY3Rpb25zIHRvIHRlc3Qgd2hldGhlciBhIHNpbmdsZSBtZWRpYSBleHBy
ZXNzaW9uIGlzIHBhcnNlYWJsZS4KKyAgICAgKi8KKyAgICBmdW5jdGlvbiBleHByZXNzaW9uX2lz
X3BhcnNlYWJsZShlKSB7CisgICAgICBzdHlsZS5zZXRBdHRyaWJ1dGUoIm1lZGlhIiwgImFsbCBh
bmQgKCIgKyBlICsgIikiKTsKKyAgICAgIHJldHVybiBzdHlsZS5zaGVldC5tZWRpYS5tZWRpYVRl
eHQgIT0gIm5vdCBhbGwiOworICAgIH0KKworICAgIGZ1bmN0aW9uIGV4cHJlc3Npb25fc2hvdWxk
X2JlX3BhcnNlYWJsZShlKSB7CisgICAgICB0ZXN0KGZ1bmN0aW9uKCkgeworICAgICAgICBhc3Nl
cnRfdHJ1ZShleHByZXNzaW9uX2lzX3BhcnNlYWJsZShlKSk7CisgICAgICB9LCJleHByZXNzaW9u
ICIgKyBlICsgIiBzaG91bGQgYmUgcGFyc2VhYmxlIik7CisgICAgfQorCisgICAgZnVuY3Rpb24g
ZXhwcmVzc2lvbl9zaG91bGRfbm90X2JlX3BhcnNlYWJsZShlKSB7CisgICAgICB0ZXN0KGZ1bmN0
aW9uKCkgeworICAgICAgICBhc3NlcnRfZmFsc2UoZXhwcmVzc2lvbl9pc19wYXJzZWFibGUoZSkp
OworICAgICAgfSwiZXhwcmVzc2lvbiAiICsgZSArICIgc2hvdWxkIG5vdCBiZSBwYXJzZWFibGUi
KTsKKyAgICB9CisKKyAgICAvLyBUaGUgbm8tdHlwZSBzeW50YXggZG9lc24ndCBtaXggd2l0aCB0
aGUgbm90IGFuZCBvbmx5IGtleXdvcmRzLgorICAgIHF1ZXJ5X3Nob3VsZF9iZV9wYXJzZWFibGUo
IihvcmllbnRhdGlvbikiKTsKKyAgICBxdWVyeV9zaG91bGRfbm90X2JlX3BhcnNlYWJsZSgibm90
IChvcmllbnRhdGlvbikiKTsKKyAgICBxdWVyeV9zaG91bGRfbm90X2JlX3BhcnNlYWJsZSgib25s
eSAob3JpZW50YXRpb24pIik7CisgICAgcXVlcnlfc2hvdWxkX2JlX3BhcnNlYWJsZSgiYWxsIGFu
ZCAob3JpZW50YXRpb24pIik7CisgICAgcXVlcnlfc2hvdWxkX2JlX3BhcnNlYWJsZSgibm90IGFs
bCBhbmQgKG9yaWVudGF0aW9uKSIpOworICAgIHF1ZXJ5X3Nob3VsZF9iZV9wYXJzZWFibGUoIm9u
bHkgYWxsIGFuZCAob3JpZW50YXRpb24pIikKKyAgICBxdWVyeV9zaG91bGRfbm90X2JlX3BhcnNl
YWJsZSgiKG9yaWVudGF0aW9uOiAnbGFuZHNjYXBlJykiKTsKKworICAgIHZhciBmZWF0dXJlcyA9
IFsgIndpZHRoIiwgImhlaWdodCIsICJkZXZpY2Utd2lkdGgiLCAiZGV2aWNlLWhlaWdodCIgXTsK
KyAgICB2YXIgZmVhdHVyZTsKKyAgICB2YXIgaTsKKyAgICBmb3IgKGkgaW4gZmVhdHVyZXMpIHsK
KyAgICAgIGZlYXR1cmUgPSBmZWF0dXJlc1tpXTsKKyAgICAgIGV4cHJlc3Npb25fc2hvdWxkX2Jl
X3BhcnNlYWJsZShmZWF0dXJlKTsKKyAgICAgIGV4cHJlc3Npb25fc2hvdWxkX2JlX3BhcnNlYWJs
ZShmZWF0dXJlICsgIjogMCIpOworICAgICAgZXhwcmVzc2lvbl9zaG91bGRfYmVfcGFyc2VhYmxl
KGZlYXR1cmUgKyAiOiAwcHgiKTsKKyAgICAgIGV4cHJlc3Npb25fc2hvdWxkX2JlX3BhcnNlYWJs
ZShmZWF0dXJlICsgIjogMGVtIik7CisgICAgICBleHByZXNzaW9uX3Nob3VsZF9iZV9wYXJzZWFi
bGUoZmVhdHVyZSArICI6IC0wIik7CisgICAgICBleHByZXNzaW9uX3Nob3VsZF9iZV9wYXJzZWFi
bGUoIm1pbi0iICsgZmVhdHVyZSArICI6IC0wIik7CisgICAgICBleHByZXNzaW9uX3Nob3VsZF9i
ZV9wYXJzZWFibGUoIm1heC0iICsgZmVhdHVyZSArICI6IC0wIik7CisgICAgICBleHByZXNzaW9u
X3Nob3VsZF9iZV9wYXJzZWFibGUoZmVhdHVyZSArICI6IC0wY20iKTsKKyAgICAgIGV4cHJlc3Np
b25fc2hvdWxkX2JlX3BhcnNlYWJsZShmZWF0dXJlICsgIjogMXB4Iik7CisgICAgICBleHByZXNz
aW9uX3Nob3VsZF9iZV9wYXJzZWFibGUoZmVhdHVyZSArICI6IDAuMDAxbW0iKTsKKyAgICAgIGV4
cHJlc3Npb25fc2hvdWxkX2JlX3BhcnNlYWJsZShmZWF0dXJlICsgIjogMTAwMDAwcHgiKTsKKyAg
ICAgIGV4cHJlc3Npb25fc2hvdWxkX25vdF9iZV9wYXJzZWFibGUoZmVhdHVyZSArICI6IC0xcHgi
KTsKKyAgICAgIGV4cHJlc3Npb25fc2hvdWxkX25vdF9iZV9wYXJzZWFibGUoZmVhdHVyZSArICI6
ICcyMHB4JyIpOworICAgICAgZXhwcmVzc2lvbl9zaG91bGRfbm90X2JlX3BhcnNlYWJsZSgibWlu
LSIgKyBmZWF0dXJlICsgIjogLTFweCIpOworICAgICAgZXhwcmVzc2lvbl9zaG91bGRfbm90X2Jl
X3BhcnNlYWJsZSgibWF4LSIgKyBmZWF0dXJlICsgIjogLTFweCIpOworICAgICAgZXhwcmVzc2lv
bl9zaG91bGRfbm90X2JlX3BhcnNlYWJsZSgibWluLSIgKyBmZWF0dXJlICsgIjogJzEwcHgnIik7
CisgICAgICBleHByZXNzaW9uX3Nob3VsZF9ub3RfYmVfcGFyc2VhYmxlKCJtYXgtIiArIGZlYXR1
cmUgKyAiOiAnMTBweCciKTsKKyAgICAgIGV4cHJlc3Npb25fc2hvdWxkX25vdF9iZV9wYXJzZWFi
bGUoZmVhdHVyZSArICI6IC0wLjAwMDAxbW0iKTsKKyAgICAgIGV4cHJlc3Npb25fc2hvdWxkX25v
dF9iZV9wYXJzZWFibGUoZmVhdHVyZSArICI6IC0xMDAwMDBlbSIpOworICAgICAgZXhwcmVzc2lv
bl9zaG91bGRfbm90X2JlX3BhcnNlYWJsZSgibWluLSIgKyBmZWF0dXJlKTsKKyAgICAgIGV4cHJl
c3Npb25fc2hvdWxkX25vdF9iZV9wYXJzZWFibGUoIm1heC0iICsgZmVhdHVyZSk7CisgICAgfQor
CisgICAgdmFyIGNvbnRlbnRfZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnQi
KTsKKyAgICBjb250ZW50X2Rpdi5zdHlsZS5mb250ID0gIm1lZGl1bSBzYW5zLXNlcmlmIjsKKyAg
ICB2YXIgZW1fc2l6ZSA9CisgICAgICBnZXRDb21wdXRlZFN0eWxlKGNvbnRlbnRfZGl2LCAiIiku
Zm9udFNpemUubWF0Y2goL14oXGQrKXB4JC8pWzFdOworCisgICAgLy8gaW4gdGhpcyB0ZXN0LCBh
c3N1bWUgdGhlIGNvbW1vbiB1bmRlcmx5aW5nIGltcGxlbWVudGF0aW9uIGlzIGNvcnJlY3QKKyAg
ICB2YXIgd2lkdGhfdmFsID0gMTE3OyAvLyBwaWNrIHR3byBub3QtdG9vLXJvdW5kIG51bWJlcnMK
KyAgICB2YXIgaGVpZ2h0X3ZhbCA9IDc2OworICAgIGlmcmFtZV9zdHlsZS53aWR0aCA9IHdpZHRo
X3ZhbCArICJweCI7CisgICAgaWZyYW1lX3N0eWxlLmhlaWdodCA9IGhlaWdodF92YWwgKyAicHgi
OworICAgIHZhciBkZXZpY2Vfd2lkdGggPSB3aW5kb3cuc2NyZWVuLndpZHRoOworICAgIHZhciBk
ZXZpY2VfaGVpZ2h0ID0gd2luZG93LnNjcmVlbi5oZWlnaHQ7CisgICAgZmVhdHVyZXMgPSB7ICJ3
aWR0aCI6IHdpZHRoX3ZhbCwKKyAgICAgICAgICAgICAgICAgICAgICAiaGVpZ2h0IjogaGVpZ2h0
X3ZhbCwKKyAgICAgICAgICAgICAgICAgICAgICAiZGV2aWNlLXdpZHRoIjogZGV2aWNlX3dpZHRo
LAorICAgICAgICAgICAgICAgICAgICAgICJkZXZpY2UtaGVpZ2h0IjogZGV2aWNlX2hlaWdodCB9
OworICAgIGZvciAoZmVhdHVyZSBpbiBmZWF0dXJlcykgeworICAgICAgdmFyIHZhbHVlID0gZmVh
dHVyZXNbZmVhdHVyZV07CisgICAgICBzaG91bGRfYXBwbHkoImFsbCBhbmQgKCIgKyBmZWF0dXJl
ICsgIjogIiArIHZhbHVlICsgInB4KSIsICJhbGwgYW5kICgiICsgZmVhdHVyZSArICI6ICIgKyBm
ZWF0dXJlICsgIiBweCkiKTsKKyAgICAgIHNob3VsZF9ub3RfYXBwbHkoImFsbCBhbmQgKCIgKyBm
ZWF0dXJlICsgIjogIiArICh2YWx1ZSArIDEpICsgInB4KSIsICJhbGwgYW5kICgiICsgZmVhdHVy
ZSArICI6ICIgKyBmZWF0dXJlICsgIiArMSBweCkiKTsKKyAgICAgIHNob3VsZF9ub3RfYXBwbHko
ImFsbCBhbmQgKCIgKyBmZWF0dXJlICsgIjogIiArICh2YWx1ZSAtIDEpICsgInB4KSIsICJhbGwg
YW5kICgiICsgZmVhdHVyZSArICI6ICIgKyBmZWF0dXJlICsgIiAtMSBweCkiKTsKKyAgICAgIHNo
b3VsZF9hcHBseSgiYWxsIGFuZCAobWluLSIgKyBmZWF0dXJlICsgIjogIiArIHZhbHVlICsgInB4
KSIsICJhbGwgYW5kIChtaW4tIiArIGZlYXR1cmUgKyAiOiAiICsgZmVhdHVyZSArICIgcHgpIik7
CisgICAgICBzaG91bGRfbm90X2FwcGx5KCJhbGwgYW5kIChtaW4tIiArIGZlYXR1cmUgKyAiOiAi
ICsgKHZhbHVlICsgMSkgKyAicHgpIiwgImFsbCBhbmQgKG1pbi0iICsgZmVhdHVyZSArICI6ICIg
KyBmZWF0dXJlICsgIiArMSBweCkiKTsKKyAgICAgIHNob3VsZF9hcHBseSgiYWxsIGFuZCAobWlu
LSIgKyBmZWF0dXJlICsgIjogIiArICh2YWx1ZSAtIDEpICsgInB4KSIsICJhbGwgYW5kIChtaW4t
IiArIGZlYXR1cmUgKyAiOiAiICsgZmVhdHVyZSArICIgLTEgcHgpIik7CisgICAgICBzaG91bGRf
YXBwbHkoImFsbCBhbmQgKG1heC0iICsgZmVhdHVyZSArICI6ICIgKyB2YWx1ZSArICJweCkiLCAi
YWxsIGFuZCAobWF4LSIgKyBmZWF0dXJlICsgIjogIiArIGZlYXR1cmUgKyAiIHB4KSIpOworICAg
ICAgc2hvdWxkX2FwcGx5KCJhbGwgYW5kIChtYXgtIiArIGZlYXR1cmUgKyAiOiAiICsgKHZhbHVl
ICsgMSkgKyAicHgpIiwgImFsbCBhbmQgKG1heC0iICsgZmVhdHVyZSArICI6ICIgKyBmZWF0dXJl
ICsgIiArMSBweCkiKTsKKyAgICAgIHNob3VsZF9ub3RfYXBwbHkoImFsbCBhbmQgKG1heC0iICsg
ZmVhdHVyZSArICI6ICIgKyAodmFsdWUgLSAxKSArICJweCkiLCAiYWxsIGFuZCAobWF4LSIgKyBm
ZWF0dXJlICsgIjogIiArIGZlYXR1cmUgKyAiICsxIHB4KSIpOworICAgICAgc2hvdWxkX25vdF9h
cHBseSgiYWxsIGFuZCAobWluLSIgKyBmZWF0dXJlICsgIjogIiArCisgICAgICAgICAgICAgICAg
ICAgICAgIChNYXRoLmNlaWwodmFsdWUvZW1fc2l6ZSkgKyAxKSArICJlbSkiLCAiYWxsIGFuZCAo
bWluLSIgKyBmZWF0dXJlICsgIjogIiArIGZlYXR1cmUgKyAiICsxIGVtKSIpOworICAgICAgc2hv
dWxkX2FwcGx5KCJhbGwgYW5kIChtaW4tIiArIGZlYXR1cmUgKyAiOiAiICsKKyAgICAgICAgICAg
ICAgICAgICAoTWF0aC5mbG9vcih2YWx1ZS9lbV9zaXplKSAtIDEpICsgImVtKSIsICJhbGwgYW5k
IChtaW4tIiArIGZlYXR1cmUgKyAiOiAiICsgZmVhdHVyZSArICIgLTEgZW0pIik7CisgICAgICBz
aG91bGRfYXBwbHkoImFsbCBhbmQgKG1heC0iICsgZmVhdHVyZSArICI6ICIgKworICAgICAgICAg
ICAgICAgICAgIChNYXRoLmNlaWwodmFsdWUvZW1fc2l6ZSkgKyAxKSArICJlbSkiLCAiYWxsIGFu
ZCAobWF4LSIgKyBmZWF0dXJlICsgIjogIiArIGZlYXR1cmUgKyAiICsxIGVtKSIpOworICAgICAg
c2hvdWxkX25vdF9hcHBseSgiYWxsIGFuZCAobWF4LSIgKyBmZWF0dXJlICsgIjogIiArCisgICAg
ICAgICAgICAgICAgICAgICAgIChNYXRoLmZsb29yKHZhbHVlL2VtX3NpemUpIC0gMSkgKyAiZW0p
IiwgImFsbCBhbmQgKG1heC0iICsgZmVhdHVyZSArICI6ICIgKyBmZWF0dXJlICsgIiAtMSBlbSki
KTsKKyAgICB9CisKKyAgICBpZnJhbWVfc3R5bGUud2lkdGggPSAiMCI7CisgICAgc2hvdWxkX2Fw
cGx5KCJhbGwgYW5kIChoZWlnaHQpIik7CisgICAgc2hvdWxkX25vdF9hcHBseSgiYWxsIGFuZCAo
d2lkdGgpIik7CisgICAgaWZyYW1lX3N0eWxlLmhlaWdodCA9ICIwIjsKKyAgICBzaG91bGRfbm90
X2FwcGx5KCJhbGwgYW5kIChoZWlnaHQpIik7CisgICAgc2hvdWxkX25vdF9hcHBseSgiYWxsIGFu
ZCAod2lkdGgpIik7CisgICAgc2hvdWxkX2FwcGx5KCJhbGwgYW5kIChkZXZpY2UtaGVpZ2h0KSIp
OworICAgIHNob3VsZF9hcHBseSgiYWxsIGFuZCAoZGV2aWNlLXdpZHRoKSIpOworICAgIGlmcmFt
ZV9zdHlsZS53aWR0aCA9IHdpZHRoX3ZhbCArICJweCI7CisgICAgc2hvdWxkX25vdF9hcHBseSgi
YWxsIGFuZCAoaGVpZ2h0KSIpOworICAgIHNob3VsZF9hcHBseSgiYWxsIGFuZCAod2lkdGgpIik7
CisgICAgaWZyYW1lX3N0eWxlLmhlaWdodCA9IGhlaWdodF92YWwgKyAicHgiOworICAgIHNob3Vs
ZF9hcHBseSgiYWxsIGFuZCAoaGVpZ2h0KSIpOworICAgIHNob3VsZF9hcHBseSgiYWxsIGFuZCAo
d2lkdGgpIik7CisKKyAgICAvLyByYXRpbyB0aGF0IHJlZHVjZXMgdG8gNTkvNDAKKyAgICBpZnJh
bWVfc3R5bGUud2lkdGggPSAiMjM2cHgiOworICAgIGlmcmFtZV9zdHlsZS5oZWlnaHQgPSAiMTYw
cHgiOworICAgIGV4cHJlc3Npb25fc2hvdWxkX2JlX3BhcnNlYWJsZSgib3JpZW50YXRpb24iKTsK
KyAgICBleHByZXNzaW9uX3Nob3VsZF9iZV9wYXJzZWFibGUoIm9yaWVudGF0aW9uOiBwb3J0cmFp
dCIpOworICAgIGV4cHJlc3Npb25fc2hvdWxkX2JlX3BhcnNlYWJsZSgib3JpZW50YXRpb246IGxh
bmRzY2FwZSIpOworICAgIGV4cHJlc3Npb25fc2hvdWxkX25vdF9iZV9wYXJzZWFibGUoIm1pbi1v
cmllbnRhdGlvbiIpOworICAgIGV4cHJlc3Npb25fc2hvdWxkX25vdF9iZV9wYXJzZWFibGUoIm1p
bi1vcmllbnRhdGlvbjogcG9ydHJhaXQiKTsKKyAgICBleHByZXNzaW9uX3Nob3VsZF9ub3RfYmVf
cGFyc2VhYmxlKCJtaW4tb3JpZW50YXRpb246IGxhbmRzY2FwZSIpOworICAgIGV4cHJlc3Npb25f
c2hvdWxkX25vdF9iZV9wYXJzZWFibGUoIm1heC1vcmllbnRhdGlvbiIpOworICAgIGV4cHJlc3Np
b25fc2hvdWxkX25vdF9iZV9wYXJzZWFibGUoIm1heC1vcmllbnRhdGlvbjogcG9ydHJhaXQiKTsK
KyAgICBleHByZXNzaW9uX3Nob3VsZF9ub3RfYmVfcGFyc2VhYmxlKCJtYXgtb3JpZW50YXRpb246
IGxhbmRzY2FwZSIpOworICAgIHNob3VsZF9hcHBseSgiKG9yaWVudGF0aW9uKSIpOworICAgIHNo
b3VsZF9hcHBseSgiKG9yaWVudGF0aW9uOiBsYW5kc2NhcGUpIik7CisgICAgc2hvdWxkX25vdF9h
cHBseSgiKG9yaWVudGF0aW9uOiBwb3J0cmFpdCkiKTsKKyAgICBzaG91bGRfYXBwbHkoIm5vdCBh
bGwgYW5kIChvcmllbnRhdGlvbjogcG9ydHJhaXQpIik7CisgICAgLy8gcmF0aW8gdGhhdCByZWR1
Y2VzIHRvIDU5LzgwCisgICAgaWZyYW1lX3N0eWxlLmhlaWdodCA9ICIzMjBweCI7CisgICAgc2hv
dWxkX2FwcGx5KCIob3JpZW50YXRpb24pIik7CisgICAgc2hvdWxkX25vdF9hcHBseSgiKG9yaWVu
dGF0aW9uOiBsYW5kc2NhcGUpIik7CisgICAgc2hvdWxkX2FwcGx5KCJub3QgYWxsIGFuZCAob3Jp
ZW50YXRpb246IGxhbmRzY2FwZSkiKTsKKyAgICBzaG91bGRfYXBwbHkoIihvcmllbnRhdGlvbjog
cG9ydHJhaXQpIik7CisKKyAgICBzaG91bGRfYXBwbHkoIihhc3BlY3QtcmF0aW86IDU5LzgwKSIp
OworICAgIHNob3VsZF9ub3RfYXBwbHkoIihhc3BlY3QtcmF0aW86IDU4LzgwKSIpOworICAgIHNo
b3VsZF9ub3RfYXBwbHkoIihhc3BlY3QtcmF0aW86IDU5LzgxKSIpOworICAgIHNob3VsZF9ub3Rf
YXBwbHkoIihhc3BlY3QtcmF0aW86IDYwLzgwKSIpOworICAgIHNob3VsZF9ub3RfYXBwbHkoIihh
c3BlY3QtcmF0aW86IDU5Lzc5KSIpOworICAgIHNob3VsZF9hcHBseSgiKGFzcGVjdC1yYXRpbzog
MTc3LzI0MCkiKTsKKyAgICBzaG91bGRfYXBwbHkoIihhc3BlY3QtcmF0aW86IDQxMy81NjApIik7
CisgICAgc2hvdWxkX2FwcGx5KCIoYXNwZWN0LXJhdGlvOiA1OTAwLzgwMDApIik7CisgICAgc2hv
dWxkX25vdF9hcHBseSgiKGFzcGVjdC1yYXRpbzogNTkwMS84MDAwKSIpOworICAgIHNob3VsZF9u
b3RfYXBwbHkoIihhc3BlY3QtcmF0aW86IDU4OTkvODAwMCkiKTsKKyAgICBzaG91bGRfbm90X2Fw
cGx5KCIoYXNwZWN0LXJhdGlvOiA1OTAwLzgwMDEpIik7CisgICAgc2hvdWxkX25vdF9hcHBseSgi
KGFzcGVjdC1yYXRpbzogNTkwMC83OTk5KSIpOworICAgIHNob3VsZF9hcHBseSgiKGFzcGVjdC1y
YXRpbykiKTsKKworICAgIHNob3VsZF9hcHBseSgiKG1pbi1hc3BlY3QtcmF0aW86IDU5LzgwKSIp
OworICAgIHNob3VsZF9hcHBseSgiKG1pbi1hc3BlY3QtcmF0aW86IDU4LzgwKSIpOworICAgIHNo
b3VsZF9hcHBseSgiKG1pbi1hc3BlY3QtcmF0aW86IDU5LzgxKSIpOworICAgIHNob3VsZF9ub3Rf
YXBwbHkoIihtaW4tYXNwZWN0LXJhdGlvOiA2MC84MCkiKTsKKyAgICBzaG91bGRfbm90X2FwcGx5
KCIobWluLWFzcGVjdC1yYXRpbzogNTkvNzkpIik7CisgICAgZXhwcmVzc2lvbl9zaG91bGRfbm90
X2JlX3BhcnNlYWJsZSgibWluLWFzcGVjdC1yYXRpbyIpOworCisgICAgc2hvdWxkX2FwcGx5KCIo
bWF4LWFzcGVjdC1yYXRpbzogNTkvODApIik7CisgICAgc2hvdWxkX25vdF9hcHBseSgiKG1heC1h
c3BlY3QtcmF0aW86IDU4LzgwKSIpOworICAgIHNob3VsZF9ub3RfYXBwbHkoIihtYXgtYXNwZWN0
LXJhdGlvOiA1OS84MSkiKTsKKyAgICBzaG91bGRfYXBwbHkoIihtYXgtYXNwZWN0LXJhdGlvOiA2
MC84MCkiKTsKKyAgICBzaG91bGRfYXBwbHkoIihtYXgtYXNwZWN0LXJhdGlvOiA1OS83OSkiKTsK
KyAgICBleHByZXNzaW9uX3Nob3VsZF9ub3RfYmVfcGFyc2VhYmxlKCJtYXgtYXNwZWN0LXJhdGlv
Iik7CisKKyAgICB2YXIgcmVhbF9kYXIgPSBkZXZpY2Vfd2lkdGggKyAiLyIgKyBkZXZpY2VfaGVp
Z2h0OworICAgIHZhciBoaWdoX2Rhcl8xID0gKGRldmljZV93aWR0aCArIDEpICsgIi8iICsgZGV2
aWNlX2hlaWdodDsKKyAgICB2YXIgaGlnaF9kYXJfMiA9IGRldmljZV93aWR0aCArICIvIiArIChk
ZXZpY2VfaGVpZ2h0IC0gMSk7CisgICAgdmFyIGxvd19kYXJfMSA9IChkZXZpY2Vfd2lkdGggLSAx
KSArICIvIiArIGRldmljZV9oZWlnaHQ7CisgICAgdmFyIGxvd19kYXJfMiA9IGRldmljZV93aWR0
aCArICIvIiArIChkZXZpY2VfaGVpZ2h0ICsgMSk7CisgICAgc2hvdWxkX2FwcGx5KCIoZGV2aWNl
LWFzcGVjdC1yYXRpbzogIiArIHJlYWxfZGFyICsgIikiLCAiKGRldmljZS1hc3BlY3QtcmF0aW86
IGRldmljZS13aWR0aCAvIGRldmljZS1oZWlnaHQpIik7CisgICAgc2hvdWxkX2FwcGx5KCJub3Qg
YWxsIGFuZCAoZGV2aWNlLWFzcGVjdC1yYXRpbzogIiArIGhpZ2hfZGFyXzEgKyAiKSIsICJub3Qg
YWxsIGFuZCAoZGV2aWNlLWFzcGVjdC1yYXRpbzogZGV2aWNlLXdpZHRoICsgMSAvIGRldmljZS1o
ZWlnaHQpIik7CisgICAgc2hvdWxkX25vdF9hcHBseSgiYWxsIGFuZCAoZGV2aWNlLWFzcGVjdC1y
YXRpbzogIiArIGhpZ2hfZGFyXzIgKyAiKSIsICJhbGwgYW5kIChkZXZpY2UtYXNwZWN0LXJhdGlv
OiBkZXZpY2Utd2lkdGggLyBkZXZpY2UtaGVpZ2h0IC0gMSkiKTsKKyAgICBzaG91bGRfbm90X2Fw
cGx5KCJhbGwgYW5kIChkZXZpY2UtYXNwZWN0LXJhdGlvOiAiICsgbG93X2Rhcl8xICsgIikiLCAi
YWxsIGFuZCAoZGV2aWNlLWFzcGVjdC1yYXRpbzogZGV2aWNlLXdpZHRoIC0gMSAvIGRldmljZS1o
ZWlnaHQpIik7CisgICAgc2hvdWxkX2FwcGx5KCJub3QgYWxsIGFuZCAoZGV2aWNlLWFzcGVjdC1y
YXRpbzogIiArIGxvd19kYXJfMiArICIpIiwgIm5vdCBhbGwgYW5kIChkZXZpY2UtYXNwZWN0LXJh
dGlvOiBkZXZpY2Utd2lkdGggLyBkZXZpY2UtaGVpZ2h0ICsgMSkiKTsKKyAgICBzaG91bGRfYXBw
bHkoIihkZXZpY2UtYXNwZWN0LXJhdGlvKSIpOworCisgICAgc2hvdWxkX2FwcGx5KCIobWluLWRl
dmljZS1hc3BlY3QtcmF0aW86ICIgKyByZWFsX2RhciArICIpIiwgIihtaW4tZGV2aWNlLWFzcGVj
dC1yYXRpbzogZGV2aWNlLXdpZHRoIC8gZGV2aWNlLWhlaWdodCkiKTsKKyAgICBzaG91bGRfbm90
X2FwcGx5KCJhbGwgYW5kIChtaW4tZGV2aWNlLWFzcGVjdC1yYXRpbzogIiArIGhpZ2hfZGFyXzEg
KyAiKSIsICJub3QgYWxsIGFuZCAoZGV2aWNlLWFzcGVjdC1yYXRpbzogZGV2aWNlLXdpZHRoICsg
MSAvIGRldmljZS1oZWlnaHQpIik7CisgICAgc2hvdWxkX2FwcGx5KCJub3QgYWxsIGFuZCAobWlu
LWRldmljZS1hc3BlY3QtcmF0aW86ICIgKyBoaWdoX2Rhcl8yICsgIikiLCAibm90IGFsbCBhbmQg
KG1pbi1kZXZpY2UtYXNwZWN0LXJhdGlvOiBkZXZpY2Utd2lkdGggLyBkZXZpY2UtaGVpZ2h0IC0g
MSkiKTsKKyAgICBzaG91bGRfbm90X2FwcGx5KCJub3QgYWxsIGFuZCAobWluLWRldmljZS1hc3Bl
Y3QtcmF0aW86ICIgKyBsb3dfZGFyXzEgKyAiKSIsICJub3QgYWxsIGFuZCAobWluLWRldmljZS1h
c3BlY3QtcmF0aW86IGRldmljZS13aWR0aCAtIDEgLyBkZXZpY2UtaGVpZ2h0KSIgKTsKKyAgICBz
aG91bGRfYXBwbHkoImFsbCBhbmQgKG1pbi1kZXZpY2UtYXNwZWN0LXJhdGlvOiAiICsgbG93X2Rh
cl8yICsgIikiLCAiYWxsIGFuZCAobWluLWRldmljZS1hc3BlY3QtcmF0aW86IGRldmljZS13aWR0
aCAvIGRldmljZS1oZWlnaHQgKyAxKSIpOworICAgIGV4cHJlc3Npb25fc2hvdWxkX25vdF9iZV9w
YXJzZWFibGUoIm1pbi1kZXZpY2UtYXNwZWN0LXJhdGlvIik7CisKKyAgICBzaG91bGRfYXBwbHko
ImFsbCBhbmQgKG1heC1kZXZpY2UtYXNwZWN0LXJhdGlvOiAiICsgcmVhbF9kYXIgKyAiKSIsICJh
bGwgYW5kIChtYXgtZGV2aWNlLWFzcGVjdC1yYXRpbzogZGV2aWNlLXdpZHRoIC8gZGV2aWNlLWhl
aWdodCkiKTsKKyAgICBzaG91bGRfYXBwbHkoIihtYXgtZGV2aWNlLWFzcGVjdC1yYXRpbzogIiAr
IGhpZ2hfZGFyXzEgKyAiKSIsICIobWF4LWRldmljZS1hc3BlY3QtcmF0aW86IGRldmljZS13aWR0
aCArIDEgLyBkZXZpY2UtaGVpZ2h0KSIpOworICAgIHNob3VsZF9hcHBseSgiKG1heC1kZXZpY2Ut
YXNwZWN0LXJhdGlvOiAiICsgaGlnaF9kYXJfMiArICIpIiwgIihtYXgtZGV2aWNlLWFzcGVjdC1y
YXRpbzogZGV2aWNlLXdpZHRoIC8gZGV2aWNlLWhlaWdodCAtIDEiKTsKKyAgICBzaG91bGRfbm90
X2FwcGx5KCJhbGwgYW5kIChtYXgtZGV2aWNlLWFzcGVjdC1yYXRpbzogIiArIGxvd19kYXJfMSAr
ICIpIiwgImFsbCBhbmQgKG1heC1kZXZpY2UtYXNwZWN0LXJhdGlvOiBkZXZpY2Utd2lkdGggLSAx
IC8gZGV2aWNlLWhlaWdodCkiKTsKKyAgICBzaG91bGRfYXBwbHkoIm5vdCBhbGwgYW5kIChtYXgt
ZGV2aWNlLWFzcGVjdC1yYXRpbzogIiArIGxvd19kYXJfMiArICIpIiwgIm5vdCBhbGwgYW5kICht
YXgtZGV2aWNlLWFzcGVjdC1yYXRpbzogZGV2aWNlLXdpZHRoIC8gZGV2aWNlLWhlaWdodCArIDEp
Iik7CisgICAgZXhwcmVzc2lvbl9zaG91bGRfbm90X2JlX3BhcnNlYWJsZSgibWF4LWRldmljZS1h
c3BlY3QtcmF0aW8iKTsKKworICAgIGZlYXR1cmVzID0gWyAibWF4LWFzcGVjdC1yYXRpbyIsICJk
ZXZpY2UtYXNwZWN0LXJhdGlvIiBdOworICAgIGZvciAoaSBpbiBmZWF0dXJlcykgeworICAgICAg
ZmVhdHVyZSA9IGZlYXR1cmVzW2ldOworICAgICAgZXhwcmVzc2lvbl9zaG91bGRfYmVfcGFyc2Vh
YmxlKGZlYXR1cmUgKyAiOiAxLzEiKTsKKyAgICAgIGV4cHJlc3Npb25fc2hvdWxkX2JlX3BhcnNl
YWJsZShmZWF0dXJlICsgIjogMSAgLzEiKTsKKyAgICAgIGV4cHJlc3Npb25fc2hvdWxkX2JlX3Bh
cnNlYWJsZShmZWF0dXJlICsgIjogMSAgLyBcdFxuMSIpOworICAgICAgZXhwcmVzc2lvbl9zaG91
bGRfYmVfcGFyc2VhYmxlKGZlYXR1cmUgKyAiOiAxL1xyMSIpOworICAgICAgZXhwcmVzc2lvbl9z
aG91bGRfbm90X2JlX3BhcnNlYWJsZShmZWF0dXJlICsgIjogMSIpOworICAgICAgZXhwcmVzc2lv
bl9zaG91bGRfbm90X2JlX3BhcnNlYWJsZShmZWF0dXJlICsgIjogMC41Iik7CisgICAgICBleHBy
ZXNzaW9uX3Nob3VsZF9ub3RfYmVfcGFyc2VhYmxlKGZlYXR1cmUgKyAiOiAxLjAvMSIpOworICAg
ICAgZXhwcmVzc2lvbl9zaG91bGRfbm90X2JlX3BhcnNlYWJsZShmZWF0dXJlICsgIjogMS8xLjAi
KTsKKyAgICAgIGV4cHJlc3Npb25fc2hvdWxkX25vdF9iZV9wYXJzZWFibGUoZmVhdHVyZSArICI6
IDEuMC8xLjAiKTsKKyAgICAgIGV4cHJlc3Npb25fc2hvdWxkX25vdF9iZV9wYXJzZWFibGUoZmVh
dHVyZSArICI6IDAvMSIpOworICAgICAgZXhwcmVzc2lvbl9zaG91bGRfbm90X2JlX3BhcnNlYWJs
ZShmZWF0dXJlICsgIjogMS8wIik7CisgICAgICBleHByZXNzaW9uX3Nob3VsZF9ub3RfYmVfcGFy
c2VhYmxlKGZlYXR1cmUgKyAiOiAwLzAiKTsKKyAgICAgIGV4cHJlc3Npb25fc2hvdWxkX25vdF9i
ZV9wYXJzZWFibGUoZmVhdHVyZSArICI6IC0xLzEiKTsKKyAgICAgIGV4cHJlc3Npb25fc2hvdWxk
X25vdF9iZV9wYXJzZWFibGUoZmVhdHVyZSArICI6IDEvLTEiKTsKKyAgICAgIGV4cHJlc3Npb25f
c2hvdWxkX25vdF9iZV9wYXJzZWFibGUoZmVhdHVyZSArICI6IC0xLy0xIik7CisgICAgfQorCisg
ICAgdmFyIGlzX21vbm9jaHJvbWUgPSBxdWVyeV9hcHBsaWVzKCJhbGwgYW5kIChtaW4tbW9ub2No
cm9tZTogMSkiKTsKKyAgICB2YXIgaXNfY29sb3IgPSBxdWVyeV9hcHBsaWVzKCJhbGwgYW5kICht
aW4tY29sb3I6IDEpIik7CisgICAgdmFyIGNvbG9yU3RyaW5nID0gaXNfY29sb3IgPyAiY29sb3Ii
IDogIm1vbm9jaHJvbWUiOworICAgIHRlc3QoZnVuY3Rpb24oKSB7CisgICAgICBhc3NlcnRfbm90
X2VxdWFscyhpc19tb25vY2hyb21lLCBpc19jb2xvciwgInNob3VsZCBiZSBlaXRoZXIgbW9ub2No
cm9tZSBvciBjb2xvciIpOworICAgIH0sICJtb25vY2hyb21lX2FuZF9jb2xvciIpOworCisgICAg
ZnVuY3Rpb24gZGVwdGhfcXVlcnkocHJlZml4LCBkZXB0aCkgeworICAgICAgcmV0dXJuICJhbGwg
YW5kICgiICsgcHJlZml4ICsgY29sb3JTdHJpbmcgKworICAgICAgICAgICAgICI6IiArIGRlcHRo
ICsgIikiOworICAgIH0KKworICAgIHZhciBkZXB0aCA9IDA7CisgICAgZG8geworICAgICAgaWYg
KGRlcHRoID4gNTApIHsKKyAgICAgICAgYnJlYWs7CisgICAgICB9CisgICAgfSB3aGlsZSAocXVl
cnlfYXBwbGllcyhkZXB0aF9xdWVyeSgibWluLSIsICsrZGVwdGgpKSk7CisgICAgdGVzdChmdW5j
dGlvbigpIHsKKyAgICAgIGFzc2VydF9mYWxzZSg1MCA8IGRlcHRoKTsKKyAgICB9LCAiZmluZF9k
ZXB0aCIpOworICAgIC0tZGVwdGg7CisKKyAgICBzaG91bGRfYXBwbHkoZGVwdGhfcXVlcnkoIiIs
IGRlcHRoKSwgImFsbCBhbmQgKCIgKyBjb2xvclN0cmluZyArICI6IGRlcHRoKSIpOworICAgIHNo
b3VsZF9ub3RfYXBwbHkoZGVwdGhfcXVlcnkoIiIsIGRlcHRoIC0gMSksICJhbGwgYW5kICgiICsg
Y29sb3JTdHJpbmcgKyAiOiBkZXB0aCAtIDEpIik7CisgICAgc2hvdWxkX25vdF9hcHBseShkZXB0
aF9xdWVyeSgiIiwgZGVwdGggKyAxKSwgImFsbCBhbmQgKCIgKyBjb2xvclN0cmluZyArICI6IGRl
cHRoICsgMSkiKTsKKyAgICBzaG91bGRfYXBwbHkoZGVwdGhfcXVlcnkoIm1heC0iLCBkZXB0aCks
ICJhbGwgYW5kIChtYXgtIiArIGNvbG9yU3RyaW5nICsgIjogZGVwdGgpIik7CisgICAgc2hvdWxk
X25vdF9hcHBseShkZXB0aF9xdWVyeSgibWF4LSIsIGRlcHRoIC0gMSksICJhbGwgYW5kIChtYXgt
IiArIGNvbG9yU3RyaW5nICsgIjogZGVwdGggLSAxKSIpOworICAgIHNob3VsZF9hcHBseShkZXB0
aF9xdWVyeSgibWF4LSIsIGRlcHRoICsgMSksICJhbGwgYW5kIChtYXgtIiArIGNvbG9yU3RyaW5n
ICsgIjogZGVwdGggKyAxKSIpOworCisgICAgKGlzX2NvbG9yID8gc2hvdWxkX2FwcGx5IDogc2hv
dWxkX25vdF9hcHBseSkoImFsbCBhbmQgKGNvbG9yKSIpOworICAgIGV4cHJlc3Npb25fc2hvdWxk
X25vdF9iZV9wYXJzZWFibGUoIm1heC1jb2xvciIpOworICAgIGV4cHJlc3Npb25fc2hvdWxkX25v
dF9iZV9wYXJzZWFibGUoIm1pbi1jb2xvciIpOworICAgIChpc19jb2xvciA/IHNob3VsZF9ub3Rf
YXBwbHkgOiBzaG91bGRfYXBwbHkpKCJhbGwgYW5kIChtb25vY2hyb21lKSIpOworICAgIGV4cHJl
c3Npb25fc2hvdWxkX25vdF9iZV9wYXJzZWFibGUoIm1heC1tb25vY2hyb21lIik7CisgICAgZXhw
cmVzc2lvbl9zaG91bGRfbm90X2JlX3BhcnNlYWJsZSgibWluLW1vbm9jaHJvbWUiKTsKKyAgICAo
aXNfY29sb3IgPyBzaG91bGRfYXBwbHkgOiBzaG91bGRfbm90X2FwcGx5KSgibm90IGFsbCBhbmQg
KG1vbm9jaHJvbWUpIik7CisgICAgKGlzX2NvbG9yID8gc2hvdWxkX25vdF9hcHBseSA6IHNob3Vs
ZF9hcHBseSkoIm5vdCBhbGwgYW5kIChjb2xvcikiKTsKKyAgICAoaXNfY29sb3IgPyBzaG91bGRf
YXBwbHkgOiBzaG91bGRfbm90X2FwcGx5KSgib25seSBhbGwgYW5kIChjb2xvcikiKTsKKyAgICAo
aXNfY29sb3IgPyBzaG91bGRfbm90X2FwcGx5IDogc2hvdWxkX2FwcGx5KSgib25seSBhbGwgYW5k
IChtb25vY2hyb21lKSIpOworCisgICAgZmVhdHVyZXMgPSBbICJjb2xvciIsICJtaW4tbW9ub2No
cm9tZSIgXTsKKyAgICBmb3IgKGkgaW4gZmVhdHVyZXMpIHsKKyAgICAgIGZlYXR1cmUgPSBmZWF0
dXJlc1tpXTsKKyAgICAgIGV4cHJlc3Npb25fc2hvdWxkX2JlX3BhcnNlYWJsZShmZWF0dXJlICsg
IjogMSIpOworICAgICAgZXhwcmVzc2lvbl9zaG91bGRfYmVfcGFyc2VhYmxlKGZlYXR1cmUgKyAi
OiAzMjciKTsKKyAgICAgIGV4cHJlc3Npb25fc2hvdWxkX2JlX3BhcnNlYWJsZShmZWF0dXJlICsg
IjogMCIpOworICAgICAgZXhwcmVzc2lvbl9zaG91bGRfbm90X2JlX3BhcnNlYWJsZShmZWF0dXJl
ICsgIjogMS4wIik7CisgICAgICBleHByZXNzaW9uX3Nob3VsZF9ub3RfYmVfcGFyc2VhYmxlKGZl
YXR1cmUgKyAiOiAtMSIpOworICAgICAgZXhwcmVzc2lvbl9zaG91bGRfbm90X2JlX3BhcnNlYWJs
ZShmZWF0dXJlICsgIjogMS8xIik7CisgICAgfQorCisgICAgZXhwcmVzc2lvbl9zaG91bGRfYmVf
cGFyc2VhYmxlKCJncmlkIik7CisgICAgZXhwcmVzc2lvbl9zaG91bGRfYmVfcGFyc2VhYmxlKCJn
cmlkOiAwIik7CisgICAgZXhwcmVzc2lvbl9zaG91bGRfYmVfcGFyc2VhYmxlKCJncmlkOiAxIik7
CisgICAgZXhwcmVzc2lvbl9zaG91bGRfYmVfcGFyc2VhYmxlKCJncmlkOiAxIik7CisgICAgZXhw
cmVzc2lvbl9zaG91bGRfbm90X2JlX3BhcnNlYWJsZSgibWluLWdyaWQiKTsKKyAgICBleHByZXNz
aW9uX3Nob3VsZF9ub3RfYmVfcGFyc2VhYmxlKCJtaW4tZ3JpZDowIik7CisgICAgZXhwcmVzc2lv
bl9zaG91bGRfbm90X2JlX3BhcnNlYWJsZSgibWF4LWdyaWQ6IDEiKTsKKyAgICBleHByZXNzaW9u
X3Nob3VsZF9ub3RfYmVfcGFyc2VhYmxlKCJncmlkOiAyIik7CisgICAgZXhwcmVzc2lvbl9zaG91
bGRfbm90X2JlX3BhcnNlYWJsZSgiZ3JpZDogLTEiKTsKKworICAgIC8vIEFzc3VtZSB3ZSBkb24n
dCBzdXBwb3J0IGdyaWQgZGV2aWNlcworICAgIHNob3VsZF9ub3RfYXBwbHkoIihncmlkKSIpOwor
ICAgIHNob3VsZF9hcHBseSgiKGdyaWQ6IDApIik7CisgICAgc2hvdWxkX25vdF9hcHBseSgiKGdy
aWQ6IDEpIik7CisgICAgc2hvdWxkX25vdF9hcHBseSgiKGdyaWQ6IDIpIik7CisgICAgc2hvdWxk
X25vdF9hcHBseSgiKGdyaWQ6IC0xKSIpOworCisgICAgZG9uZSgpOworfQorCis8L3NjcmlwdD4K
KzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBjYTdlZDQ3Li4xZWZlYjkxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMjcgQEAKKzIwMTItMTAtMDQgIEFsZXhhbmRlciBTaGFsYW1vdiAgPGFs
ZXhhbmRlci5zaGFsYW1vdkBpbnRlbC5jb20+CisKKyAgICAgICAgSW52YWxpZCB2YWx1ZXMgZm9y
IG1lZGlhIHF1ZXJ5IGZlYXR1cmVzIGFyZSBub3QgaGFuZGxlZAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTcwMDYKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIGltcHJvdmVzIHBhc3MgcmF0
ZSBvZiBDU1MzIE1lZGlhIFF1ZXJpZXMgdGVzdCBzdWl0ZQorICAgICAgICBieSBtYWtpbmcgbWVk
aWEgZXhwcmVzc2lvbnMgY29tcGxpYW50IHdpdGggVzNDIHNwZWNpZmljYXRpb24uIEZldworICAg
ICAgICBwZXJmb3JtYW5jZSBpc3N1ZXMgYXJlIGZpeGVkIGJ5IHJlbW92YWwgb2Ygc3RyaW5nIGNv
bXBhcmlzb24gZHVyaW5nCisgICAgICAgIG1lZGlhIGV4cHJlc3Npb24gZXZhbHVhdGlvbi4KKwor
ICAgICAgICBUZXN0czogZmFzdC9tZWRpYS93M2MvdGVzdF9tZWRpYV9xdWVyaWVzLmh0bWwKKwor
ICAgICAgICAqIGNzcy9DU1NHcmFtbWFyLnk6IEhhbmRsZSBtZWRpYSBxdWVyeSBleHByZXNzaW9u
IHdpdGggc3BlY2lmaWVkIG1lZGlhIHJlc3RyaWN0b3IgYXMgaW52YWxpZC4KKyAgICAgICAgKiBj
c3MvTWVkaWFRdWVyeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVF1ZXJ5OjpzZXJpYWxp
emUpOiBTZXJpYWxpemUgaW52YWxpZCBxdWVyeSBhY2NvcmRpbmcgdG8gc3BlY2lmaWNhdGlvbi4K
KyAgICAgICAgKiBjc3MvTWVkaWFRdWVyeUV2YWx1YXRvci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpvcmllbnRhdGlvbk1lZGlhRmVhdHVyZUV2YWwpOiBDb21wYXJlIENTU1ZhbHVlSUQgaW5zdGVh
ZCBvZiBzdHJpbmdzLgorICAgICAgICAoV2ViQ29yZTo6dmlld19tb2RlTWVkaWFGZWF0dXJlRXZh
bCk6IENvbXBhcmUgQ1NTVmFsdWVJRCBpbnN0ZWFkIG9mIHN0cmluZ3MuCisgICAgICAgIChXZWJD
b3JlOjpwb2ludGVyTWVkaWFGZWF0dXJlRXZhbCk6IENvbXBhcmUgQ1NTVmFsdWVJRCBpbnN0ZWFk
IG9mIHN0cmluZ3MuCisgICAgICAgICogY3NzL01lZGlhUXVlcnlFeHAuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFRdWVyeUV4cDo6TWVkaWFRdWVyeUV4cCk6IENoZWNrIHRoYXQgbWVkaWEg
ZmVhdHVyZXMgaW5pdGlhbGl6ZWQgd2l0aCBjb3JyZWN0IHZhbHVlcy4KKwogMjAxMi0xMC0wMyAg
QWxleGFuZGVyIFNoYWxhbW92ICA8YWxleGFuZGVyLnNoYWxhbW92QGludGVsLmNvbT4KIAogICAg
ICAgICBDU1MgU3R5bGUgaXMgbm90IHJlY2FsY3VsYXRlZCB3aGVuIG1lZGlhIGF0dHJpYnV0ZSBv
ZiBzdHlsZSBlbGVtZW50IGlzIGNoYW5nZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NHcmFtbWFyLnkgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTR3JhbW1hci55CmluZGV4IDJi
NDI3NGEuLjRlMzUzM2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NHcmFtbWFy
LnkKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0dyYW1tYXIueQpAQCAtMTAwLDcgKzEwMCw3
IEBAIHN0YXRpYyBpbmxpbmUgaW50IGNzc3l5ZXJyb3Iodm9pZCosIGNvbnN0IGNoYXIqKQogCiAl
fQogCi0lZXhwZWN0IDYzCislZXhwZWN0IDY1CiAKICVub25hc3NvYyBMT1dFU1RfUFJFQwogCkBA
IC01MzQsOSArNTM0LDE1IEBAIG1heWJlX21lZGlhX3ZhbHVlOgogICAgIDsKIAogbWVkaWFfcXVl
cnlfZXhwOgotICAgICcoJyBtYXliZV9zcGFjZSBtZWRpYV9mZWF0dXJlIG1heWJlX3NwYWNlIG1h
eWJlX21lZGlhX3ZhbHVlICcpJyBtYXliZV9zcGFjZSB7Ci0gICAgICAgICQzLmxvd2VyKCk7Ci0g
ICAgICAgICQkID0gcGFyc2VyLT5jcmVhdGVGbG9hdGluZ01lZGlhUXVlcnlFeHAoJDMsICQ1KTsK
KyAgICBtYXliZV9tZWRpYV9yZXN0cmljdG9yIG1heWJlX3NwYWNlICcoJyBtYXliZV9zcGFjZSBt
ZWRpYV9mZWF0dXJlIG1heWJlX3NwYWNlIG1heWJlX21lZGlhX3ZhbHVlICcpJyBtYXliZV9zcGFj
ZSB7CisgICAgICAgIC8vIElmIHJlc3RyaWN0b3IgaXMgc3BlY2lmaWVkLCBtZWRpYSBxdWVyeSBl
eHByZXNzaW9uIGlzIGludmFsaWQuCisgICAgICAgIC8vIENyZWF0ZSBlbXB0eSBtZWRpYSBxdWVy
eSBleHByZXNzaW9uIGFuZCBjb250aW51ZSBwYXJzaW5nIG1lZGlhIHF1ZXJ5LgorICAgICAgICBp
ZiAoJDEgIT0gTWVkaWFRdWVyeTo6Tm9uZSkKKyAgICAgICAgICAgICQkID0gcGFyc2VyLT5jcmVh
dGVGbG9hdGluZ01lZGlhUXVlcnlFeHAoIiIsIDApOworICAgICAgICBlbHNlIHsKKyAgICAgICAg
ICAgICQ1Lmxvd2VyKCk7CisgICAgICAgICAgICAkJCA9IHBhcnNlci0+Y3JlYXRlRmxvYXRpbmdN
ZWRpYVF1ZXJ5RXhwKCQ1LCAkNyk7CisgICAgICAgIH0KICAgICB9CiAgICAgOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvTWVkaWFRdWVyeS5jcHAKaW5kZXggZmM0NTUxZi4uMTAzYTNjMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvY3NzL01lZGlhUXVlcnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9N
ZWRpYVF1ZXJ5LmNwcApAQCAtNDEsMzIgKzQxLDM2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIFN0
cmluZyBNZWRpYVF1ZXJ5OjpzZXJpYWxpemUoKSBjb25zdAogewogICAgIFN0cmluZ0J1aWxkZXIg
cmVzdWx0OwotCi0gICAgc3dpdGNoIChtX3Jlc3RyaWN0b3IpIHsKLSAgICBjYXNlIE1lZGlhUXVl
cnk6Ok9ubHk6Ci0gICAgICAgIHJlc3VsdC5hcHBlbmQoIm9ubHkgIik7Ci0gICAgICAgIGJyZWFr
OwotICAgIGNhc2UgTWVkaWFRdWVyeTo6Tm90OgotICAgICAgICByZXN1bHQuYXBwZW5kKCJub3Qg
Iik7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgTWVkaWFRdWVyeTo6Tm9uZToKLSAgICAgICAg
YnJlYWs7Ci0gICAgfQotCi0gICAgaWYgKG1fZXhwcmVzc2lvbnMtPmlzRW1wdHkoKSkgewotICAg
ICAgICByZXN1bHQuYXBwZW5kKG1fbWVkaWFUeXBlKTsKLSAgICAgICAgcmV0dXJuIHJlc3VsdC50
b1N0cmluZygpOwotICAgIH0KLQotICAgIGlmIChtX21lZGlhVHlwZSAhPSAiYWxsIiB8fCBtX3Jl
c3RyaWN0b3IgIT0gTm9uZSkgewotICAgICAgICByZXN1bHQuYXBwZW5kKG1fbWVkaWFUeXBlKTsK
LSAgICAgICAgcmVzdWx0LmFwcGVuZCgiIGFuZCAiKTsKLSAgICB9Ci0KLSAgICByZXN1bHQuYXBw
ZW5kKG1fZXhwcmVzc2lvbnMtPmF0KDApLT5zZXJpYWxpemUoKSk7Ci0gICAgZm9yIChzaXplX3Qg
aSA9IDE7IGkgPCBtX2V4cHJlc3Npb25zLT5zaXplKCk7ICsraSkgewotICAgICAgICByZXN1bHQu
YXBwZW5kKCIgYW5kICIpOwotICAgICAgICByZXN1bHQuYXBwZW5kKG1fZXhwcmVzc2lvbnMtPmF0
KGkpLT5zZXJpYWxpemUoKSk7CisgICAgaWYgKCFtX2lnbm9yZWQpIHsKKyAgICAgICAgc3dpdGNo
IChtX3Jlc3RyaWN0b3IpIHsKKyAgICAgICAgY2FzZSBNZWRpYVF1ZXJ5OjpPbmx5OgorICAgICAg
ICAgICAgcmVzdWx0LmFwcGVuZCgib25seSAiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICBjYXNlIE1lZGlhUXVlcnk6Ok5vdDoKKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoIm5vdCAi
KTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIE1lZGlhUXVlcnk6Ok5vbmU6Cisg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChtX2V4cHJlc3Npb25z
LT5pc0VtcHR5KCkpIHsKKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQobV9tZWRpYVR5cGUpOwor
ICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgICAgICB9CisKKyAgICAg
ICAgaWYgKG1fbWVkaWFUeXBlICE9ICJhbGwiIHx8IG1fcmVzdHJpY3RvciAhPSBOb25lKSB7Cisg
ICAgICAgICAgICByZXN1bHQuYXBwZW5kKG1fbWVkaWFUeXBlKTsKKyAgICAgICAgICAgIHJlc3Vs
dC5hcHBlbmQoIiBhbmQgIik7CisgICAgICAgIH0KKworICAgICAgICByZXN1bHQuYXBwZW5kKG1f
ZXhwcmVzc2lvbnMtPmF0KDApLT5zZXJpYWxpemUoKSk7CisgICAgICAgIGZvciAoc2l6ZV90IGkg
PSAxOyBpIDwgbV9leHByZXNzaW9ucy0+c2l6ZSgpOyArK2kpIHsKKyAgICAgICAgICAgIHJlc3Vs
dC5hcHBlbmQoIiBhbmQgIik7CisgICAgICAgICAgICByZXN1bHQuYXBwZW5kKG1fZXhwcmVzc2lv
bnMtPmF0KGkpLT5zZXJpYWxpemUoKSk7CisgICAgICAgIH0KKyAgICB9IGVsc2UgeworICAgICAg
ICAvLyBJZiBxdWVyeSBpcyBpbnZhbGlkLCBzZXJpYWxpemVkIHRleHQgc2hvdWxkIHR1cm4gaW50
byAibm90IGFsbCIuCisgICAgICAgIHJlc3VsdC5hcHBlbmQoIm5vdCBhbGwiKTsKICAgICB9CiAg
ICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvY3NzL01lZGlhUXVlcnlFdmFsdWF0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL01lZGlh
UXVlcnlFdmFsdWF0b3IuY3BwCmluZGV4IDgyZTc1NDUuLjcxNzNlMTAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5RXZhbHVhdG9yLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvTWVkaWFRdWVyeUV2YWx1YXRvci5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNs
dWRlICJDaHJvbWUuaCIKICNpbmNsdWRlICJDaHJvbWVDbGllbnQuaCIKICNpbmNsdWRlICJDU1NQ
cmltaXRpdmVWYWx1ZS5oIgorI2luY2x1ZGUgIkNTU1ZhbHVlS2V5d29yZHMuaCIKICNpbmNsdWRl
ICJDU1NWYWx1ZUxpc3QuaCIKICNpbmNsdWRlICJGbG9hdFJlY3QuaCIKICNpbmNsdWRlICJGcmFt
ZS5oIgpAQCAtMjQzLDE2ICsyNDQsMTggQEAgc3RhdGljIGJvb2wgbW9ub2Nocm9tZU1lZGlhRmVh
dHVyZUV2YWwoQ1NTVmFsdWUqIHZhbHVlLCBSZW5kZXJTdHlsZSogc3R5bGUsIEZyYW0KIAogc3Rh
dGljIGJvb2wgb3JpZW50YXRpb25NZWRpYUZlYXR1cmVFdmFsKENTU1ZhbHVlKiB2YWx1ZSwgUmVu
ZGVyU3R5bGUqLCBGcmFtZSogZnJhbWUsIE1lZGlhRmVhdHVyZVByZWZpeCkKIHsKLSAgICAvLyBB
IG1pc3NpbmcgcGFyYW1ldGVyIHNob3VsZCBmYWlsCi0gICAgaWYgKCF2YWx1ZSkKLSAgICAgICAg
cmV0dXJuIGZhbHNlOwotCiAgICAgRnJhbWVWaWV3KiB2aWV3ID0gZnJhbWUtPnZpZXcoKTsKICAg
ICBpbnQgd2lkdGggPSB2aWV3LT5sYXlvdXRXaWR0aCgpOwogICAgIGludCBoZWlnaHQgPSB2aWV3
LT5sYXlvdXRIZWlnaHQoKTsKLSAgICBpZiAod2lkdGggPiBoZWlnaHQpIC8vIFNxdWFyZSB2aWV3
cG9ydCBpcyBwb3J0cmFpdAotICAgICAgICByZXR1cm4gImxhbmRzY2FwZSIgPT0gc3RhdGljX2Nh
c3Q8Q1NTUHJpbWl0aXZlVmFsdWUqPih2YWx1ZSktPmdldFN0cmluZ1ZhbHVlKCk7Ci0gICAgcmV0
dXJuICJwb3J0cmFpdCIgPT0gc3RhdGljX2Nhc3Q8Q1NTUHJpbWl0aXZlVmFsdWUqPih2YWx1ZSkt
PmdldFN0cmluZ1ZhbHVlKCk7CisgICAgaWYgKHZhbHVlICYmIHZhbHVlLT5pc1ByaW1pdGl2ZVZh
bHVlKCkpIHsKKyAgICAgICAgY29uc3QgaW50IGlkID0gc3RhdGljX2Nhc3Q8Q1NTUHJpbWl0aXZl
VmFsdWUqPih2YWx1ZSktPmdldElkZW50KCk7CisgICAgICAgIGlmICh3aWR0aCA+IGhlaWdodCkg
Ly8gU3F1YXJlIHZpZXdwb3J0IGlzIHBvcnRyYWl0LgorICAgICAgICAgICAgcmV0dXJuIENTU1Zh
bHVlTGFuZHNjYXBlID09IGlkOworICAgICAgICByZXR1cm4gQ1NTVmFsdWVQb3J0cmFpdCA9PSBp
ZDsKKyAgICB9CisKKyAgICAvLyBFeHByZXNzaW9uIChvcmllbnRhdGlvbikgZXZhbHVhdGVzIHRv
IHRydWUgaWYgd2lkdGggYW5kIGhlaWdodCA+PSAwLgorICAgIHJldHVybiBoZWlnaHQgPj0gMCAm
JiB3aWR0aCA+PSAwOwogfQogCiBzdGF0aWMgYm9vbCBhc3BlY3RfcmF0aW9NZWRpYUZlYXR1cmVF
dmFsKENTU1ZhbHVlKiB2YWx1ZSwgUmVuZGVyU3R5bGUqLCBGcmFtZSogZnJhbWUsIE1lZGlhRmVh
dHVyZVByZWZpeCBvcCkKQEAgLTUzNCw3ICs1MzcsMzIgQEAgc3RhdGljIGJvb2wgdmlld19tb2Rl
TWVkaWFGZWF0dXJlRXZhbChDU1NWYWx1ZSogdmFsdWUsIFJlbmRlclN0eWxlKiwgRnJhbWUqIGZy
YW0KICAgICBVTlVTRURfUEFSQU0ob3ApOwogICAgIGlmICghdmFsdWUpCiAgICAgICAgIHJldHVy
biB0cnVlOwotICAgIHJldHVybiBQYWdlOjpzdHJpbmdUb1ZpZXdNb2RlKHN0YXRpY19jYXN0PENT
U1ByaW1pdGl2ZVZhbHVlKj4odmFsdWUpLT5nZXRTdHJpbmdWYWx1ZSgpKSA9PSBmcmFtZS0+cGFn
ZSgpLT52aWV3TW9kZSgpOworCisgICAgY29uc3QgaW50IHZpZXdNb2RlQ1NTS2V5d29yZElEID0g
c3RhdGljX2Nhc3Q8Q1NTUHJpbWl0aXZlVmFsdWUqPih2YWx1ZSktPmdldElkZW50KCk7CisgICAg
Y29uc3QgUGFnZTo6Vmlld01vZGUgdmlld01vZGUgPSBmcmFtZS0+cGFnZSgpLT52aWV3TW9kZSgp
OworICAgIGJvb2wgcmVzdWx0ID0gZmFsc2U7CisgICAgc3dpdGNoICh2aWV3TW9kZSkgeworICAg
IGNhc2UgUGFnZTo6Vmlld01vZGVXaW5kb3dlZDoKKyAgICAgICAgcmVzdWx0ID0gdmlld01vZGVD
U1NLZXl3b3JkSUQgPT0gQ1NTVmFsdWVXaW5kb3dlZDsKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBQYWdlOjpWaWV3TW9kZUZsb2F0aW5nOgorICAgICAgICByZXN1bHQgPSB2aWV3TW9kZUNTU0tl
eXdvcmRJRCA9PSBDU1NWYWx1ZUZsb2F0aW5nOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFBh
Z2U6OlZpZXdNb2RlRnVsbHNjcmVlbjoKKyAgICAgICAgcmVzdWx0ID0gdmlld01vZGVDU1NLZXl3
b3JkSUQgPT0gQ1NTVmFsdWVGdWxsc2NyZWVuOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFBh
Z2U6OlZpZXdNb2RlTWF4aW1pemVkOgorICAgICAgICByZXN1bHQgPSB2aWV3TW9kZUNTU0tleXdv
cmRJRCA9PSBDU1NWYWx1ZU1heGltaXplZDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBQYWdl
OjpWaWV3TW9kZU1pbmltaXplZDoKKyAgICAgICAgcmVzdWx0ID0gdmlld01vZGVDU1NLZXl3b3Jk
SUQgPT0gQ1NTVmFsdWVNaW5pbWl6ZWQ7CisgICAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6Cisg
ICAgICAgIHJlc3VsdCA9IGZhbHNlOworICAgICAgICBicmVhazsKKyAgICB9CisKKyAgICByZXR1
cm4gcmVzdWx0OwogfQogCiBlbnVtIFBvaW50ZXJEZXZpY2VUeXBlIHsgVG91Y2hQb2ludGVyLCBN
b3VzZVBvaW50ZXIsIE5vUG9pbnRlciwgVW5rbm93blBvaW50ZXIgfTsKQEAgLTU5MSwxMCArNjE5
LDEwIEBAIHN0YXRpYyBib29sIHBvaW50ZXJNZWRpYUZlYXR1cmVFdmFsKENTU1ZhbHVlKiB2YWx1
ZSwgUmVuZGVyU3R5bGUqLCBGcmFtZSogZnJhbWUsCiAgICAgaWYgKCF2YWx1ZS0+aXNQcmltaXRp
dmVWYWx1ZSgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBTdHJpbmcgc3RyID0gc3Rh
dGljX2Nhc3Q8Q1NTUHJpbWl0aXZlVmFsdWUqPih2YWx1ZSktPmdldFN0cmluZ1ZhbHVlKCk7Ci0g
ICAgcmV0dXJuIChwb2ludGVyID09IE5vUG9pbnRlciAmJiBzdHIgPT0gIm5vbmUiKQotICAgICAg
ICB8fCAocG9pbnRlciA9PSBUb3VjaFBvaW50ZXIgJiYgc3RyID09ICJjb2Fyc2UiKQotICAgICAg
ICB8fCAocG9pbnRlciA9PSBNb3VzZVBvaW50ZXIgJiYgc3RyID09ICJmaW5lIik7CisgICAgY29u
c3QgaW50IGlkID0gc3RhdGljX2Nhc3Q8Q1NTUHJpbWl0aXZlVmFsdWUqPih2YWx1ZSktPmdldElk
ZW50KCk7CisgICAgcmV0dXJuIChwb2ludGVyID09IE5vUG9pbnRlciAmJiBpZCA9PSBDU1NWYWx1
ZU5vbmUpCisgICAgICAgIHx8IChwb2ludGVyID09IFRvdWNoUG9pbnRlciAmJiBpZCA9PSBDU1NW
YWx1ZUNvYXJzZSkKKyAgICAgICAgfHwgKHBvaW50ZXIgPT0gTW91c2VQb2ludGVyICYmIGlkID09
IENTU1ZhbHVlRmluZSk7CiB9CiAKIHN0YXRpYyB2b2lkIGNyZWF0ZUZ1bmN0aW9uTWFwKCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5RXhwLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5RXhwLmNwcAppbmRleCA1MzAyZDdiLi5kYjIzOTQxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUV4cC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvY3NzL01lZGlhUXVlcnlFeHAuY3BwCkBAIC0zNywyNyArMzcsMTM3IEBACiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAorc3RhdGljIGlubGluZSBib29sIGZlYXR1cmVXaXRoQ1NTVmFs
dWVJRChjb25zdCBBdG9taWNTdHJpbmcmIG1lZGlhRmVhdHVyZSwgY29uc3QgQ1NTUGFyc2VyVmFs
dWUqIHZhbHVlKQoreworICAgIGlmICghdmFsdWUtPmlkKQorICAgICAgICByZXR1cm4gZmFsc2U7
CisKKyAgICByZXR1cm4gbWVkaWFGZWF0dXJlID09IE1lZGlhRmVhdHVyZU5hbWVzOjpvcmllbnRh
dGlvbk1lZGlhRmVhdHVyZQorICAgICAgICB8fCBtZWRpYUZlYXR1cmUgPT0gTWVkaWFGZWF0dXJl
TmFtZXM6OnZpZXdfbW9kZU1lZGlhRmVhdHVyZQorICAgICAgICB8fCBtZWRpYUZlYXR1cmUgPT0g
TWVkaWFGZWF0dXJlTmFtZXM6OnBvaW50ZXJNZWRpYUZlYXR1cmU7Cit9CisKK3N0YXRpYyBpbmxp
bmUgYm9vbCBmZWF0dXJlV2l0aFZhbGlkUG9zaXRpdmVMZW5naHRPck51bWJlcihjb25zdCBBdG9t
aWNTdHJpbmcmIG1lZGlhRmVhdHVyZSwgY29uc3QgQ1NTUGFyc2VyVmFsdWUqIHZhbHVlKQorewor
ICAgIGlmICghKCgodmFsdWUtPnVuaXQgPj0gQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19FTVMgJiYg
dmFsdWUtPnVuaXQgPD0gQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19QQykgfHwgdmFsdWUtPnVuaXQg
PT0gQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19SRU1TKSB8fCB2YWx1ZS0+dW5pdCA9PSBDU1NQcmlt
aXRpdmVWYWx1ZTo6Q1NTX05VTUJFUikgfHwgdmFsdWUtPmZWYWx1ZSA8IDApCisgICAgICAgIHJl
dHVybiBmYWxzZTsKKworICAgIHJldHVybiBtZWRpYUZlYXR1cmUgPT0gTWVkaWFGZWF0dXJlTmFt
ZXM6OmhlaWdodE1lZGlhRmVhdHVyZQorICAgICAgICB8fCBtZWRpYUZlYXR1cmUgPT0gTWVkaWFG
ZWF0dXJlTmFtZXM6Om1heF9oZWlnaHRNZWRpYUZlYXR1cmUKKyAgICAgICAgfHwgbWVkaWFGZWF0
dXJlID09IE1lZGlhRmVhdHVyZU5hbWVzOjptaW5faGVpZ2h0TWVkaWFGZWF0dXJlCisgICAgICAg
IHx8IG1lZGlhRmVhdHVyZSA9PSBNZWRpYUZlYXR1cmVOYW1lczo6d2lkdGhNZWRpYUZlYXR1cmUK
KyAgICAgICAgfHwgbWVkaWFGZWF0dXJlID09IE1lZGlhRmVhdHVyZU5hbWVzOjptYXhfd2lkdGhN
ZWRpYUZlYXR1cmUKKyAgICAgICAgfHwgbWVkaWFGZWF0dXJlID09IE1lZGlhRmVhdHVyZU5hbWVz
OjptaW5fd2lkdGhNZWRpYUZlYXR1cmUKKyAgICAgICAgfHwgbWVkaWFGZWF0dXJlID09IE1lZGlh
RmVhdHVyZU5hbWVzOjpkZXZpY2VfaGVpZ2h0TWVkaWFGZWF0dXJlCisgICAgICAgIHx8IG1lZGlh
RmVhdHVyZSA9PSBNZWRpYUZlYXR1cmVOYW1lczo6bWF4X2RldmljZV9oZWlnaHRNZWRpYUZlYXR1
cmUKKyAgICAgICAgfHwgbWVkaWFGZWF0dXJlID09IE1lZGlhRmVhdHVyZU5hbWVzOjptaW5fZGV2
aWNlX2hlaWdodE1lZGlhRmVhdHVyZQorICAgICAgICB8fCBtZWRpYUZlYXR1cmUgPT0gTWVkaWFG
ZWF0dXJlTmFtZXM6OmRldmljZV93aWR0aE1lZGlhRmVhdHVyZQorICAgICAgICB8fCBtZWRpYUZl
YXR1cmUgPT0gTWVkaWFGZWF0dXJlTmFtZXM6Om1heF9kZXZpY2Vfd2lkdGhNZWRpYUZlYXR1cmUK
KyAgICAgICAgfHwgbWVkaWFGZWF0dXJlID09IE1lZGlhRmVhdHVyZU5hbWVzOjptaW5fZGV2aWNl
X3dpZHRoTWVkaWFGZWF0dXJlOworfQorCitzdGF0aWMgaW5saW5lIGJvb2wgZmVhdHVyZVdpdGhQ
b3NpdGl2ZUludGVnZXIoY29uc3QgQXRvbWljU3RyaW5nJiBtZWRpYUZlYXR1cmUsIGNvbnN0IENT
U1BhcnNlclZhbHVlKiB2YWx1ZSkKK3sKKyAgICBpZiAoIXZhbHVlLT5pc0ludCB8fCB2YWx1ZS0+
ZlZhbHVlIDwgMCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgcmV0dXJuIG1lZGlhRmVh
dHVyZSA9PSBNZWRpYUZlYXR1cmVOYW1lczo6Y29sb3JNZWRpYUZlYXR1cmUKKyAgICAgICAgfHwg
bWVkaWFGZWF0dXJlID09IE1lZGlhRmVhdHVyZU5hbWVzOjptYXhfY29sb3JNZWRpYUZlYXR1cmUK
KyAgICAgICAgfHwgbWVkaWFGZWF0dXJlID09IE1lZGlhRmVhdHVyZU5hbWVzOjptaW5fY29sb3JN
ZWRpYUZlYXR1cmUKKyAgICAgICAgfHwgbWVkaWFGZWF0dXJlID09IE1lZGlhRmVhdHVyZU5hbWVz
OjptaW5fbW9ub2Nocm9tZU1lZGlhRmVhdHVyZQorICAgICAgICB8fCBtZWRpYUZlYXR1cmUgPT0g
TWVkaWFGZWF0dXJlTmFtZXM6Om1heF9tb25vY2hyb21lTWVkaWFGZWF0dXJlOworfQorCitzdGF0
aWMgaW5saW5lIGJvb2wgZmVhdHVyZVdpdGhQb3NpdGl2ZU51bWJlcihjb25zdCBBdG9taWNTdHJp
bmcmIG1lZGlhRmVhdHVyZSwgY29uc3QgQ1NTUGFyc2VyVmFsdWUqIHZhbHVlKQoreworICAgIGlm
ICh2YWx1ZS0+dW5pdCAhPSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX05VTUJFUiB8fCB2YWx1ZS0+
ZlZhbHVlIDwgMCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgcmV0dXJuIG1lZGlhRmVh
dHVyZSA9PSBNZWRpYUZlYXR1cmVOYW1lczo6dHJhbnNmb3JtXzJkTWVkaWFGZWF0dXJlCisgICAg
ICAgIHx8IG1lZGlhRmVhdHVyZSA9PSBNZWRpYUZlYXR1cmVOYW1lczo6dHJhbnNmb3JtXzNkTWVk
aWFGZWF0dXJlCisgICAgICAgIHx8IG1lZGlhRmVhdHVyZSA9PSBNZWRpYUZlYXR1cmVOYW1lczo6
dHJhbnNpdGlvbk1lZGlhRmVhdHVyZQorICAgICAgICB8fCBtZWRpYUZlYXR1cmUgPT0gTWVkaWFG
ZWF0dXJlTmFtZXM6OmFuaW1hdGlvbk1lZGlhRmVhdHVyZQorICAgICAgICB8fCBtZWRpYUZlYXR1
cmUgPT0gTWVkaWFGZWF0dXJlTmFtZXM6OmRldmljZV9waXhlbF9yYXRpb01lZGlhRmVhdHVyZQor
ICAgICAgICB8fCBtZWRpYUZlYXR1cmUgPT0gTWVkaWFGZWF0dXJlTmFtZXM6Om1heF9kZXZpY2Vf
cGl4ZWxfcmF0aW9NZWRpYUZlYXR1cmUKKyAgICAgICAgfHwgbWVkaWFGZWF0dXJlID09IE1lZGlh
RmVhdHVyZU5hbWVzOjptaW5fZGV2aWNlX3BpeGVsX3JhdGlvTWVkaWFGZWF0dXJlOworfQorCitz
dGF0aWMgaW5saW5lIGJvb2wgZmVhdHVyZVdpdGhaZXJvT3JPbmUoY29uc3QgQXRvbWljU3RyaW5n
JiBtZWRpYUZlYXR1cmUsIGNvbnN0IENTU1BhcnNlclZhbHVlKiB2YWx1ZSkKK3sKKyAgICBpZiAo
IXZhbHVlLT5pc0ludCB8fCAhKHZhbHVlLT5mVmFsdWUgPT0gMSB8fCAhdmFsdWUtPmZWYWx1ZSkp
CisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIHJldHVybiBtZWRpYUZlYXR1cmUgPT0gTWVk
aWFGZWF0dXJlTmFtZXM6OmdyaWRNZWRpYUZlYXR1cmUKKyAgICAgICAgfHwgbWVkaWFGZWF0dXJl
ID09IE1lZGlhRmVhdHVyZU5hbWVzOjpob3Zlck1lZGlhRmVhdHVyZTsKK30KKworc3RhdGljIGlu
bGluZSBib29sIGZlYXR1cmVXaXRoQXNwZWN0UmF0aW8oY29uc3QgQXRvbWljU3RyaW5nJiBtZWRp
YUZlYXR1cmUpCit7CisgICAgcmV0dXJuIG1lZGlhRmVhdHVyZSA9PSBNZWRpYUZlYXR1cmVOYW1l
czo6YXNwZWN0X3JhdGlvTWVkaWFGZWF0dXJlCisgICAgICAgIHx8IG1lZGlhRmVhdHVyZSA9PSBN
ZWRpYUZlYXR1cmVOYW1lczo6ZGV2aWNlX2FzcGVjdF9yYXRpb01lZGlhRmVhdHVyZQorICAgICAg
ICB8fCBtZWRpYUZlYXR1cmUgPT0gTWVkaWFGZWF0dXJlTmFtZXM6Om1pbl9hc3BlY3RfcmF0aW9N
ZWRpYUZlYXR1cmUKKyAgICAgICAgfHwgbWVkaWFGZWF0dXJlID09IE1lZGlhRmVhdHVyZU5hbWVz
OjptYXhfYXNwZWN0X3JhdGlvTWVkaWFGZWF0dXJlCisgICAgICAgIHx8IG1lZGlhRmVhdHVyZSA9
PSBNZWRpYUZlYXR1cmVOYW1lczo6bWluX2RldmljZV9hc3BlY3RfcmF0aW9NZWRpYUZlYXR1cmUK
KyAgICAgICAgfHwgbWVkaWFGZWF0dXJlID09IE1lZGlhRmVhdHVyZU5hbWVzOjptYXhfZGV2aWNl
X2FzcGVjdF9yYXRpb01lZGlhRmVhdHVyZTsKK30KKworc3RhdGljIGlubGluZSBib29sIGZlYXR1
cmVXaXRob3V0VmFsdWUoY29uc3QgQXRvbWljU3RyaW5nJiBtZWRpYUZlYXR1cmUpCit7CisgICAg
cmV0dXJuIG1lZGlhRmVhdHVyZSA9PSBNZWRpYUZlYXR1cmVOYW1lczo6bW9ub2Nocm9tZU1lZGlh
RmVhdHVyZQorICAgICAgICB8fCBtZWRpYUZlYXR1cmUgPT0gTWVkaWFGZWF0dXJlTmFtZXM6OmNv
bG9yTWVkaWFGZWF0dXJlCisgICAgICAgIHx8IG1lZGlhRmVhdHVyZSA9PSBNZWRpYUZlYXR1cmVO
YW1lczo6Z3JpZE1lZGlhRmVhdHVyZQorICAgICAgICB8fCBtZWRpYUZlYXR1cmUgPT0gTWVkaWFG
ZWF0dXJlTmFtZXM6OmhlaWdodE1lZGlhRmVhdHVyZQorICAgICAgICB8fCBtZWRpYUZlYXR1cmUg
PT0gTWVkaWFGZWF0dXJlTmFtZXM6OndpZHRoTWVkaWFGZWF0dXJlCisgICAgICAgIHx8IG1lZGlh
RmVhdHVyZSA9PSBNZWRpYUZlYXR1cmVOYW1lczo6ZGV2aWNlX2hlaWdodE1lZGlhRmVhdHVyZQor
ICAgICAgICB8fCBtZWRpYUZlYXR1cmUgPT0gTWVkaWFGZWF0dXJlTmFtZXM6OmRldmljZV93aWR0
aE1lZGlhRmVhdHVyZQorICAgICAgICB8fCBtZWRpYUZlYXR1cmUgPT0gTWVkaWFGZWF0dXJlTmFt
ZXM6Om9yaWVudGF0aW9uTWVkaWFGZWF0dXJlCisgICAgICAgIHx8IG1lZGlhRmVhdHVyZSA9PSBN
ZWRpYUZlYXR1cmVOYW1lczo6YXNwZWN0X3JhdGlvTWVkaWFGZWF0dXJlCisgICAgICAgIHx8IG1l
ZGlhRmVhdHVyZSA9PSBNZWRpYUZlYXR1cmVOYW1lczo6ZGV2aWNlX2FzcGVjdF9yYXRpb01lZGlh
RmVhdHVyZQorICAgICAgICB8fCBtZWRpYUZlYXR1cmUgPT0gTWVkaWFGZWF0dXJlTmFtZXM6Omhv
dmVyTWVkaWFGZWF0dXJlCisgICAgICAgIHx8IG1lZGlhRmVhdHVyZSA9PSBNZWRpYUZlYXR1cmVO
YW1lczo6dHJhbnNmb3JtXzJkTWVkaWFGZWF0dXJlCisgICAgICAgIHx8IG1lZGlhRmVhdHVyZSA9
PSBNZWRpYUZlYXR1cmVOYW1lczo6dHJhbnNmb3JtXzNkTWVkaWFGZWF0dXJlCisgICAgICAgIHx8
IG1lZGlhRmVhdHVyZSA9PSBNZWRpYUZlYXR1cmVOYW1lczo6dHJhbnNpdGlvbk1lZGlhRmVhdHVy
ZQorICAgICAgICB8fCBtZWRpYUZlYXR1cmUgPT0gTWVkaWFGZWF0dXJlTmFtZXM6OmFuaW1hdGlv
bk1lZGlhRmVhdHVyZQorICAgICAgICB8fCBtZWRpYUZlYXR1cmUgPT0gTWVkaWFGZWF0dXJlTmFt
ZXM6OnZpZXdfbW9kZU1lZGlhRmVhdHVyZQorICAgICAgICB8fCBtZWRpYUZlYXR1cmUgPT0gTWVk
aWFGZWF0dXJlTmFtZXM6OnBvaW50ZXJNZWRpYUZlYXR1cmUKKyAgICAgICAgfHwgbWVkaWFGZWF0
dXJlID09IE1lZGlhRmVhdHVyZU5hbWVzOjpkZXZpY2VfcGl4ZWxfcmF0aW9NZWRpYUZlYXR1cmU7
Cit9CisKIGlubGluZSBNZWRpYVF1ZXJ5RXhwOjpNZWRpYVF1ZXJ5RXhwKGNvbnN0IEF0b21pY1N0
cmluZyYgbWVkaWFGZWF0dXJlLCBDU1NQYXJzZXJWYWx1ZUxpc3QqIHZhbHVlTGlzdCkKICAgICA6
IG1fbWVkaWFGZWF0dXJlKG1lZGlhRmVhdHVyZSkKICAgICAsIG1fdmFsdWUoMCkKLSAgICAsIG1f
aXNWYWxpZCh0cnVlKQorICAgICwgbV9pc1ZhbGlkKGZhbHNlKQogeworICAgIC8vIEluaXRpYWxp
emUgbWVkaWEgcXVlcnkgZXhwcmVzc2lvbiB0aGF0IG11c3QgaGF2ZSAxIG9yIG1vcmUgdmFsdWVz
LgogICAgIGlmICh2YWx1ZUxpc3QpIHsKICAgICAgICAgaWYgKHZhbHVlTGlzdC0+c2l6ZSgpID09
IDEpIHsKICAgICAgICAgICAgIENTU1BhcnNlclZhbHVlKiB2YWx1ZSA9IHZhbHVlTGlzdC0+Y3Vy
cmVudCgpOwogCi0gICAgICAgICAgICBpZiAodmFsdWUtPmlkICE9IDApCisgICAgICAgICAgICAv
LyBNZWRpYSBmZWF0dXJlcyB0aGF0IHVzZSBDU1NWYWx1ZUlEcy4KKyAgICAgICAgICAgIGlmIChm
ZWF0dXJlV2l0aENTU1ZhbHVlSUQobWVkaWFGZWF0dXJlLCB2YWx1ZSkpCiAgICAgICAgICAgICAg
ICAgbV92YWx1ZSA9IENTU1ByaW1pdGl2ZVZhbHVlOjpjcmVhdGVJZGVudGlmaWVyKHZhbHVlLT5p
ZCk7Ci0gICAgICAgICAgICBlbHNlIGlmICh2YWx1ZS0+dW5pdCA9PSBDU1NQcmltaXRpdmVWYWx1
ZTo6Q1NTX1NUUklORykKLSAgICAgICAgICAgICAgICBtX3ZhbHVlID0gQ1NTUHJpbWl0aXZlVmFs
dWU6OmNyZWF0ZSh2YWx1ZS0+c3RyaW5nLCAoQ1NTUHJpbWl0aXZlVmFsdWU6OlVuaXRUeXBlcykg
dmFsdWUtPnVuaXQpOwotICAgICAgICAgICAgZWxzZSBpZiAodmFsdWUtPnVuaXQgPj0gQ1NTUHJp
bWl0aXZlVmFsdWU6OkNTU19OVU1CRVIgJiYKLSAgICAgICAgICAgICAgICAgICAgICB2YWx1ZS0+
dW5pdCA8PSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX0tIWikKKworICAgICAgICAgICAgLy8gTWVk
aWEgZmVhdHVyZXMgdGhhdCBtdXN0IGhhdmUgbm9uLW5lZ2F0aXZlIDxsZW5naHQ+IG9yIG51bWJl
ciB2YWx1ZS4KKyAgICAgICAgICAgIGVsc2UgaWYgKGZlYXR1cmVXaXRoVmFsaWRQb3NpdGl2ZUxl
bmdodE9yTnVtYmVyKG1lZGlhRmVhdHVyZSwgdmFsdWUpKQogICAgICAgICAgICAgICAgIG1fdmFs
dWUgPSBDU1NQcmltaXRpdmVWYWx1ZTo6Y3JlYXRlKHZhbHVlLT5mVmFsdWUsIChDU1NQcmltaXRp
dmVWYWx1ZTo6VW5pdFR5cGVzKSB2YWx1ZS0+dW5pdCk7CiAKLSAgICAgICAgICAgIHZhbHVlTGlz
dC0+bmV4dCgpOwotICAgICAgICB9IGVsc2UgaWYgKHZhbHVlTGlzdC0+c2l6ZSgpID4gMSkgewot
ICAgICAgICAgICAgLy8gY3JlYXRlIGxpc3Qgb2YgdmFsdWVzCi0gICAgICAgICAgICAvLyBjdXJy
ZW50bHkgYWNjZXB0cyBvbmx5IDxpbnRlZ2VyPi88aW50ZWdlcj4KKyAgICAgICAgICAgIC8vIE1l
ZGlhIGZlYXR1cmVzIHRoYXQgbXVzdCBoYXZlIG5vbi1uZWdhdGl2ZSBpbnRlZ2VyIHZhbHVlLgor
ICAgICAgICAgICAgZWxzZSBpZiAoZmVhdHVyZVdpdGhQb3NpdGl2ZUludGVnZXIobWVkaWFGZWF0
dXJlLCB2YWx1ZSkpCisgICAgICAgICAgICAgICAgbV92YWx1ZSA9IENTU1ByaW1pdGl2ZVZhbHVl
OjpjcmVhdGUodmFsdWUtPmZWYWx1ZSwgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19OVU1CRVIpOwor
CisgICAgICAgICAgICAvLyBNZWRpYSBmZWF0dXJlcyB0aGF0IG11c3QgaGF2ZSBub24tbmVnYXRp
dmUgbnVtYmVyIHZhbHVlLgorICAgICAgICAgICAgZWxzZSBpZiAoZmVhdHVyZVdpdGhQb3NpdGl2
ZU51bWJlcihtZWRpYUZlYXR1cmUsIHZhbHVlKSkKKyAgICAgICAgICAgICAgICBtX3ZhbHVlID0g
Q1NTUHJpbWl0aXZlVmFsdWU6OmNyZWF0ZSh2YWx1ZS0+ZlZhbHVlLCBDU1NQcmltaXRpdmVWYWx1
ZTo6Q1NTX05VTUJFUik7CisKKyAgICAgICAgICAgIC8vIE1lZGlhIGZlYXR1cmVzIHRoYXQgbXVz
dCBoYXZlICgwfDEpIHZhbHVlLgorICAgICAgICAgICAgZWxzZSBpZiAoZmVhdHVyZVdpdGhaZXJv
T3JPbmUobWVkaWFGZWF0dXJlLCB2YWx1ZSkpCisgICAgICAgICAgICAgICAgbV92YWx1ZSA9IENT
U1ByaW1pdGl2ZVZhbHVlOjpjcmVhdGUodmFsdWUtPmZWYWx1ZSwgQ1NTUHJpbWl0aXZlVmFsdWU6
OkNTU19OVU1CRVIpOworCisgICAgICAgICAgICBtX2lzVmFsaWQgPSBtX3ZhbHVlOworICAgICAg
ICB9IGVsc2UgaWYgKHZhbHVlTGlzdC0+c2l6ZSgpID4gMSAmJiBmZWF0dXJlV2l0aEFzcGVjdFJh
dGlvKG1lZGlhRmVhdHVyZSkpIHsKKyAgICAgICAgICAgIC8vIENyZWF0ZSBsaXN0IG9mIHZhbHVl
cy4KKyAgICAgICAgICAgIC8vIEN1cnJlbnRseSBhY2NlcHRzIG9ubHkgPGludGVnZXI+LzxpbnRl
Z2VyPi4KKyAgICAgICAgICAgIC8vIEFwcGxpY2FibGUgdG8gZGV2aWNlLWFzcGVjdC1yYXRpbyBh
bmQgYXNwZWMtcmF0aW8uCiAKICAgICAgICAgICAgIFJlZlB0cjxDU1NWYWx1ZUxpc3Q+IGxpc3Qg
PSBDU1NWYWx1ZUxpc3Q6OmNyZWF0ZUNvbW1hU2VwYXJhdGVkKCk7CiAgICAgICAgICAgICBDU1NQ
YXJzZXJWYWx1ZSogdmFsdWUgPSB2YWx1ZUxpc3QtPmN1cnJlbnQoKTsKQEAgLTY2LDcgKzE3Niw3
IEBAIGlubGluZSBNZWRpYVF1ZXJ5RXhwOjpNZWRpYVF1ZXJ5RXhwKGNvbnN0IEF0b21pY1N0cmlu
ZyYgbWVkaWFGZWF0dXJlLCBDU1NQYXJzZXJWCiAgICAgICAgICAgICB3aGlsZSAodmFsdWUgJiYg
aXNWYWxpZCkgewogICAgICAgICAgICAgICAgIGlmICh2YWx1ZS0+dW5pdCA9PSBDU1NQYXJzZXJW
YWx1ZTo6T3BlcmF0b3IgJiYgdmFsdWUtPmlWYWx1ZSA9PSAnLycpCiAgICAgICAgICAgICAgICAg
ICAgIGxpc3QtPmFwcGVuZChDU1NQcmltaXRpdmVWYWx1ZTo6Y3JlYXRlKCIvIiwgQ1NTUHJpbWl0
aXZlVmFsdWU6OkNTU19TVFJJTkcpKTsKLSAgICAgICAgICAgICAgICBlbHNlIGlmICh2YWx1ZS0+
dW5pdCA9PSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX05VTUJFUikKKyAgICAgICAgICAgICAgICBl
bHNlIGlmICh2YWx1ZS0+dW5pdCA9PSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX05VTUJFUiAmJiB2
YWx1ZS0+ZlZhbHVlID4gMCAmJiB2YWx1ZS0+aXNJbnQpCiAgICAgICAgICAgICAgICAgICAgIGxp
c3QtPmFwcGVuZChDU1NQcmltaXRpdmVWYWx1ZTo6Y3JlYXRlKHZhbHVlLT5mVmFsdWUsIENTU1By
aW1pdGl2ZVZhbHVlOjpDU1NfTlVNQkVSKSk7CiAgICAgICAgICAgICAgICAgZWxzZQogICAgICAg
ICAgICAgICAgICAgICBpc1ZhbGlkID0gZmFsc2U7CkBAIC03NiwxMiArMTg2LDEzIEBAIGlubGlu
ZSBNZWRpYVF1ZXJ5RXhwOjpNZWRpYVF1ZXJ5RXhwKGNvbnN0IEF0b21pY1N0cmluZyYgbWVkaWFG
ZWF0dXJlLCBDU1NQYXJzZXJWCiAKICAgICAgICAgICAgIGlmIChpc1ZhbGlkKQogICAgICAgICAg
ICAgICAgIG1fdmFsdWUgPSBsaXN0LnJlbGVhc2UoKTsKKworICAgICAgICAgICAgbV9pc1ZhbGlk
ID0gbV92YWx1ZTsKICAgICAgICAgfQotICAgICAgICBtX2lzVmFsaWQgPSBtX3ZhbHVlOwotICAg
IH0KKyAgICB9IGVsc2UgaWYgKGZlYXR1cmVXaXRob3V0VmFsdWUobWVkaWFGZWF0dXJlKSkKKyAg
ICAgICAgbV9pc1ZhbGlkID0gdHJ1ZTsKIH0KIAotCiBQYXNzT3duUHRyPE1lZGlhUXVlcnlFeHA+
IE1lZGlhUXVlcnlFeHA6OmNyZWF0ZShjb25zdCBBdG9taWNTdHJpbmcmIG1lZGlhRmVhdHVyZSwg
Q1NTUGFyc2VyVmFsdWVMaXN0KiB2YWx1ZXMpCiB7CiAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBN
ZWRpYVF1ZXJ5RXhwKG1lZGlhRmVhdHVyZSwgdmFsdWVzKSk7Cg==
</data>
<flag name="review"
          id="180915"
          type_id="1"
          status="+"
          setter="kenneth"
    />
    <flag name="commit-queue"
          id="180916"
          type_id="3"
          status="-"
          setter="buildbot"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>168064</attachid>
            <date>2012-10-10 13:31:44 -0700</date>
            <delta_ts>2012-10-10 19:07:26 -0700</delta_ts>
            <desc>Patch 3</desc>
            <filename>webcore_media_query_exp_fix_3.patch</filename>
            <type>text/plain</type>
            <size>57407</size>
            <attacher name="Alexander Shalamov">alexander.shalamov</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBlNWI0MmY4Li4zMzBmOTQzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTItMTAt
MTAgIEFsZXhhbmRlciBTaGFsYW1vdiAgPGFsZXhhbmRlci5zaGFsYW1vdkBpbnRlbC5jb20+CisK
KyAgICAgICAgSW52YWxpZCB2YWx1ZXMgZm9yIG1lZGlhIHF1ZXJ5IGZlYXR1cmVzIGFyZSBub3Qg
aGFuZGxlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
OTcwMDYKKworICAgICAgICBSZXZpZXdlZCBieSBLZW5uZXRoIFJvaGRlIENocmlzdGlhbnNlbi4K
KworICAgICAgICBJbXBvcnRlZCBDU1MzIE1lZGlhIFF1ZXJpZXMgdGVzdCBzdWl0ZSBmcm9tIGh0
dHA6Ly93d3cudzMub3JnL1N0eWxlL0NTUy9UZXN0L01lZGlhUXVlcmllcy8yMDEyMDIyOS8KKwor
ICAgICAgICAqIGZhc3QvbWVkaWEvbWVkaWEtcXVlcnktaW52YWxpZC12YWx1ZS5odG1sOiBGaXhl
ZCBpbnZhbGlkIG1lZGlhIHF1ZXJ5LgorICAgICAgICAqIGZhc3QvbWVkaWEvbWVkaWEtcXVlcnkt
c2VyaWFsaXphdGlvbi5odG1sOiBGaXhlZCBpbnZhbGlkIG1lZGlhIHF1ZXJ5LgorICAgICAgICAq
IGZhc3QvbWVkaWEvdzNjL1JFQURNRTogQWRkZWQuCisgICAgICAgICogZmFzdC9tZWRpYS93M2Mv
cmVzb3VyY2VzL21lZGlhX3F1ZXJpZXNfaWZyYW1lLmh0bWw6IEFkZGVkLiAoSW1wb3J0ZWQgZnJv
bSB3M2MgdGVzdCBzdWl0ZSkKKyAgICAgICAgKiBmYXN0L21lZGlhL3czYy90ZXN0X21lZGlhX3F1
ZXJpZXMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L21lZGlhL3czYy90ZXN0
X21lZGlhX3F1ZXJpZXMuaHRtbDogQWRkZWQuIChJbXBvcnRlZCBmcm9tIHczYyB0ZXN0IHN1aXRl
KQorCiAyMDEyLTEwLTAzICBBbGV4YW5kZXIgU2hhbGFtb3YgIDxhbGV4YW5kZXIuc2hhbGFtb3ZA
aW50ZWwuY29tPgogCiAgICAgICAgIENTUyBTdHlsZSBpcyBub3QgcmVjYWxjdWxhdGVkIHdoZW4g
bWVkaWEgYXR0cmlidXRlIG9mIHN0eWxlIGVsZW1lbnQgaXMgY2hhbmdlZApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1pbnZhbGlkLXZhbHVlLmh0bWwgYi9M
YXlvdXRUZXN0cy9mYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWludmFsaWQtdmFsdWUuaHRtbAppbmRl
eCA1NjEzYWZhLi5iMzA3N2YyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhL21l
ZGlhLXF1ZXJ5LWludmFsaWQtdmFsdWUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlh
L21lZGlhLXF1ZXJ5LWludmFsaWQtdmFsdWUuaHRtbApAQCAtMSwxMyArMSwxNyBAQAogPGhlYWQ+
CiAgICAgPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KLSAgICAgICAgQG1lZGlhIChtaW4td2lkdGgp
IHsKKyAgICAgICAgLyogVmFsaWQgbWVkaWEgcXVlcnkgZXhwcmVzc2lvbiwgYmFja2dyb3VuZC1j
b2xvciBtdXN0IGJlIGdyZWVuLiAqLworICAgICAgICBAbWVkaWEgKG1pbi13aWR0aDogMTAwcHgp
IHsKICAgICAgICAgICAgIGRpdiB7IGJhY2tncm91bmQtY29sb3I6IGdyZWVuOyB9CiAgICAgICAg
IH0KKworICAgICAgICAvKiBJbnZhbGlkIG1lZGlhIHF1ZXJ5IGV4cHJlc3Npb24sIHdpZHRoIG1l
ZGlhIGZlYXR1cmUgYWNjZXB0cyBsZW5ndGgKKyAgICAgICAgIG9yIG51bWJlciB2YWx1ZS4gTWVk
aWEgcXVlcnkgc2hvdWxkIG5vdCBtYXRjaCBhbmQgZGl2IHNob3VsZCBub3QgYmUgYmx1ZS4gKi8K
ICAgICAgICAgQG1lZGlhIChtaW4td2lkdGg6IGJsYWgpIHsKICAgICAgICAgICAgIGRpdiB7IGJh
Y2tncm91bmQtY29sb3I6IGJsdWU7IH0KICAgICAgICAgfQogICAgIDwvc3R5bGU+CiA8L2hlYWQ+
CiA8Ym9keT4KLSAgICA8ZGl2IHN0eWxlPSJ3aWR0aDogMjAwOyBoZWlnaHQ6IDIwMDsiXD4KKyAg
ICA8ZGl2IHN0eWxlPSJ3aWR0aDogMjAwcHg7IGhlaWdodDogMjAwcHg7Ilw+CiA8L2JvZHk+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhL21lZGlhLXF1ZXJ5LXNlcmlhbGl6YXRp
b24uaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWEvbWVkaWEtcXVlcnktc2VyaWFsaXphdGlv
bi5odG1sCmluZGV4IDE4MzRlNjguLmNiZTJhMDAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zh
c3QvbWVkaWEvbWVkaWEtcXVlcnktc2VyaWFsaXphdGlvbi5odG1sCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvbWVkaWEvbWVkaWEtcXVlcnktc2VyaWFsaXphdGlvbi5odG1sCkBAIC0yLDcgKzIsNyBA
QAogPGh0bWw+CiA8aGVhZD4KIDxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cDovL2Rldi53My5v
cmcvY3Nzd2cvY3Nzb20vIiAvPgotPHN0eWxlIHR5cGU9InRleHQvY3NzIiBtZWRpYT0iTk9UIGJy
YWlsbGUsIHR2IGFuZCAob3JpZW50YXRpb246ICdsYW5kc2NhcGUnKSBBTkQgKG1pbi1XSURUSDox
MDBweCkgYW5kIChtYXgtd2lkdGg6IDIwMHB4ICksIGFsbCBhbmQgKGNvbG9yKSBhbmQgKGNvbG9y
KSI+Cis8c3R5bGUgdHlwZT0idGV4dC9jc3MiIG1lZGlhPSJOT1QgYnJhaWxsZSwgdHYgYW5kIChv
cmllbnRhdGlvbjogbGFuZHNjYXBlKSBBTkQgKG1pbi1XSURUSDoxMDBweCkgYW5kIChtYXgtd2lk
dGg6IDIwMHB4ICksIGFsbCBhbmQgKGNvbG9yKSBhbmQgKGNvbG9yKSI+CiA8L3N0eWxlPgogPHNj
cmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CiA8L2hl
YWQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhL3czYy9SRUFETUUgYi9MYXlv
dXRUZXN0cy9mYXN0L21lZGlhL3czYy9SRUFETUUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMC4uNzMxNWZkNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbWVk
aWEvdzNjL1JFQURNRQpAQCAtMCwwICsxLDMxIEBACitJbXBvcnRlZCBDU1MzIE1lZGlhUXVlcnkg
dGVzdCBzdWl0ZSBmcm9tOgoraHR0cDovL3d3dy53My5vcmcvU3R5bGUvQ1NTL1Rlc3QvTWVkaWFR
dWVyaWVzLzIwMTIwMjI5LworCisqIE1lZGlhIFF1ZXJpZXMgVGVzdCBTdWl0ZQorCitUaGlzIGlz
IGEgUmVsZWFzZSBDYW5kaWRhdGUgdmVyc2lvbiBvZiB0aGUgb2ZmaWNpYWwgVzNDIE1lZGlhIFF1
ZXJpZXMgVGVzdCBTdWl0ZS4gSXQgcmVsaWVzIG9uIHN1cHBvcnQgZm9yIEhUTUwsCitFQ01BU2Ny
aXB0LCBhbmQgdGhlIERPTS4KKworVGhpcyB0ZXN0IHN1aXRlIGlzIGNvbnNpZGVyZWQgdG8gYmUg
Y29tcGxldGUgd2l0aCBubyBrbm93biBvciBzdXNwZWN0ZWQgYnVncyBhdCB0aGUgdGltZSBvZiBp
dHMgcHVibGljYXRpb24uCitJZiB5b3UgZmluZCBhbnkgZXJyb3JzLCB3b3VsZCBsaWtlIHRvIGNv
bnRyaWJ1dGUgYWRkaXRpb25hbCB0ZXN0cywgb3IgaGF2ZSBvdGhlciBmZWVkYmFjaywgcGxlYXNl
IHBvc3QgdG8gdGhlCithcmNoaXZlZCBwdWJsaWMgZGlzY3Vzc2lvbiBtYWlsaW5nIGxpc3QgZm9y
IENTUyB0ZXN0IHN1aXRlcywgcHVibGljLWNzcy10ZXN0c3VpdGVAdzMub3JnLgorCitBbiBpbXBs
ZW1lbnRhdGlvbiByZXBvcnQgaXMgYXZhaWxhYmxlLiAoSWYgeW91IHdvdWxkIGxpa2UgdG8gYWRk
IGFuIGltcGxlbWVudGF0aW9uIHRvIHRoZSByZXBvcnQsCitwbGVhc2Ugc2VuZCBhIHBhdGNoIHRv
IHB1YmxpYy1jc3MtdGVzdHN1aXRlQHczLm9yZy4pCisKKyogVGVzdCBTdWl0ZQorCitUaGUgdGVz
dCBzdWl0ZSBpcyBhIHNpbmdsZSBzZWxmLWNvbnRhaW5lZCBmaWxlIHRoYXQgdGhvcm91Z2hseSB0
ZXN0cyBNZWRpYSBRdWVyaWVzIHZpYSBhIHNjcmlwdDogTWVkaWEgUXVlcmllcyBTZWxmLUNvbnRh
aW5lZCBUZXN0IFN1aXRlLgorCisqIExpY2Vuc2UKKworVGhpcyB0ZXN0IHN1aXRlIGlzIGxpY2Vu
c2VkIHVuZGVyIGJvdGggdGhlIFczQyBUZXN0IFN1aXRlIExpY2Vuc2UgYW5kIHRoZSBXM0MgMy1j
bGF1c2UgQlNEIExpY2Vuc2UuIFNlZSBXM0MgTGVnYWwncyBleHBsYW5hdGlvbiBvZiB0aGUgbGlj
ZW5zZXMuCisKKyogQWNrbm93bGVkZ2VtZW50cworCitNYW55IHRoYW5rcyB0byB0aGUgZm9sbG93
aW5nIGZvciB0aGVpciBjb250cmlidXRpb25zOgorCisgQW5uZSB2YW4gS2VzdGVyZW4KKyBJYW4g
SGlja3NvbgorIEwuIERhdmlkIEJhcm9uCisgQXJyb24gRWljaG9segpcIE5vIG5ld2xpbmUgYXQg
ZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWEvdzNjL3Jlc291
cmNlcy9tZWRpYV9xdWVyaWVzX2lmcmFtZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS93
M2MvcmVzb3VyY2VzL21lZGlhX3F1ZXJpZXNfaWZyYW1lLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uNTUzZjU0MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvbWVkaWEvdzNjL3Jlc291cmNlcy9tZWRpYV9xdWVyaWVzX2lmcmFtZS5odG1sCkBAIC0w
LDAgKzEsMTcgQEAKKzwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAx
Ly9FTiIKKwkiaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDQvc3RyaWN0LmR0ZCI+Cis8aHRtbCBs
YW5nPSJlbi1VUyI+Cis8aGVhZD4KKwk8dGl0bGU+TWVkaWEgUXVlcmllcyBUZXN0IGlubmVyIGZy
YW1lPC90aXRsZT4KKwk8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRl
eHQvaHRtbDsgY2hhcnNldD1VVEYtOCI+CisJPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJMLiBE
YXZpZCBCYXJvbiIgaHJlZj0iaHR0cDovL2RiYXJvbi5vcmcvIj4KKwk8bGluayByZWw9ImhlbHAi
IGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1RSL2NzczMtbWVkaWFxdWVyaWVzLyI+CisJPG1ldGEg
aHR0cC1lcXVpdj0iQ29udGVudC1TdHlsZS1UeXBlIiBjb250ZW50PSJ0ZXh0L2NzcyI+CisJPHN0
eWxlIHR5cGU9InRleHQvY3NzIiBpZD0ic3R5bGUiIG1lZGlhPSJhbGwiPgorCWJvZHkgeyB0ZXh0
LWRlY29yYXRpb246IHVuZGVybGluZTsgfQorCTwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKwor
PC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS93M2Mv
dGVzdF9tZWRpYV9xdWVyaWVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWEv
dzNjL3Rlc3RfbWVkaWFfcXVlcmllcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uMjYwNTE4YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvbWVkaWEvdzNjL3Rlc3RfbWVkaWFfcXVlcmllcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwy
OTQgQEAKKworCitQQVNTIHF1ZXJ5IChvcmllbnRhdGlvbikgc2hvdWxkIGJlIHBhcnNlYWJsZSAK
K1BBU1MgcXVlcnkgbm90IChvcmllbnRhdGlvbikgc2hvdWxkIG5vdCBiZSBwYXJzZWFibGUgCitQ
QVNTIHF1ZXJ5IG9ubHkgKG9yaWVudGF0aW9uKSBzaG91bGQgbm90IGJlIHBhcnNlYWJsZSAKK1BB
U1MgcXVlcnkgYWxsIGFuZCAob3JpZW50YXRpb24pIHNob3VsZCBiZSBwYXJzZWFibGUgCitQQVNT
IHF1ZXJ5IG5vdCBhbGwgYW5kIChvcmllbnRhdGlvbikgc2hvdWxkIGJlIHBhcnNlYWJsZSAKK1BB
U1MgcXVlcnkgb25seSBhbGwgYW5kIChvcmllbnRhdGlvbikgc2hvdWxkIGJlIHBhcnNlYWJsZSAK
K1BBU1MgcXVlcnkgKG9yaWVudGF0aW9uOiAnbGFuZHNjYXBlJykgc2hvdWxkIG5vdCBiZSBwYXJz
ZWFibGUgCitQQVNTIGV4cHJlc3Npb24gd2lkdGggc2hvdWxkIGJlIHBhcnNlYWJsZSAKK1BBU1Mg
ZXhwcmVzc2lvbiB3aWR0aDogMCBzaG91bGQgYmUgcGFyc2VhYmxlIAorUEFTUyBleHByZXNzaW9u
IHdpZHRoOiAwcHggc2hvdWxkIGJlIHBhcnNlYWJsZSAKK1BBU1MgZXhwcmVzc2lvbiB3aWR0aDog
MGVtIHNob3VsZCBiZSBwYXJzZWFibGUgCitQQVNTIGV4cHJlc3Npb24gd2lkdGg6IC0wIHNob3Vs
ZCBiZSBwYXJzZWFibGUgCitQQVNTIGV4cHJlc3Npb24gbWluLXdpZHRoOiAtMCBzaG91bGQgYmUg
cGFyc2VhYmxlIAorUEFTUyBleHByZXNzaW9uIG1heC13aWR0aDogLTAgc2hvdWxkIGJlIHBhcnNl
YWJsZSAKK1BBU1MgZXhwcmVzc2lvbiB3aWR0aDogLTBjbSBzaG91bGQgYmUgcGFyc2VhYmxlIAor
UEFTUyBleHByZXNzaW9uIHdpZHRoOiAxcHggc2hvdWxkIGJlIHBhcnNlYWJsZSAKK1BBU1MgZXhw
cmVzc2lvbiB3aWR0aDogMC4wMDFtbSBzaG91bGQgYmUgcGFyc2VhYmxlIAorUEFTUyBleHByZXNz
aW9uIHdpZHRoOiAxMDAwMDBweCBzaG91bGQgYmUgcGFyc2VhYmxlIAorUEFTUyBleHByZXNzaW9u
IHdpZHRoOiAtMXB4IHNob3VsZCBub3QgYmUgcGFyc2VhYmxlIAorUEFTUyBleHByZXNzaW9uIHdp
ZHRoOiAnMjBweCcgc2hvdWxkIG5vdCBiZSBwYXJzZWFibGUgCitQQVNTIGV4cHJlc3Npb24gbWlu
LXdpZHRoOiAtMXB4IHNob3VsZCBub3QgYmUgcGFyc2VhYmxlIAorUEFTUyBleHByZXNzaW9uIG1h
eC13aWR0aDogLTFweCBzaG91bGQgbm90IGJlIHBhcnNlYWJsZSAKK1BBU1MgZXhwcmVzc2lvbiBt
aW4td2lkdGg6ICcxMHB4JyBzaG91bGQgbm90IGJlIHBhcnNlYWJsZSAKK1BBU1MgZXhwcmVzc2lv
biBtYXgtd2lkdGg6ICcxMHB4JyBzaG91bGQgbm90IGJlIHBhcnNlYWJsZSAKK1BBU1MgZXhwcmVz
c2lvbiB3aWR0aDogLTAuMDAwMDFtbSBzaG91bGQgbm90IGJlIHBhcnNlYWJsZSAKK1BBU1MgZXhw
cmVzc2lvbiB3aWR0aDogLTEwMDAwMGVtIHNob3VsZCBub3QgYmUgcGFyc2VhYmxlIAorUEFTUyBl
eHByZXNzaW9uIG1pbi13aWR0aCBzaG91bGQgbm90IGJlIHBhcnNlYWJsZSAKK1BBU1MgZXhwcmVz
c2lvbiBtYXgtd2lkdGggc2hvdWxkIG5vdCBiZSBwYXJzZWFibGUgCitQQVNTIGV4cHJlc3Npb24g
aGVpZ2h0IHNob3VsZCBiZSBwYXJzZWFibGUgCitQQVNTIGV4cHJlc3Npb24gaGVpZ2h0OiAwIHNo
b3VsZCBiZSBwYXJzZWFibGUgCitQQVNTIGV4cHJlc3Npb24gaGVpZ2h0OiAwcHggc2hvdWxkIGJl
IHBhcnNlYWJsZSAKK1BBU1MgZXhwcmVzc2lvbiBoZWlnaHQ6IDBlbSBzaG91bGQgYmUgcGFyc2Vh
YmxlIAorUEFTUyBleHByZXNzaW9uIGhlaWdodDogLTAgc2hvdWxkIGJlIHBhcnNlYWJsZSAKK1BB
U1MgZXhwcmVzc2lvbiBtaW4taGVpZ2h0OiAtMCBzaG91bGQgYmUgcGFyc2VhYmxlIAorUEFTUyBl
eHByZXNzaW9uIG1heC1oZWlnaHQ6IC0wIHNob3VsZCBiZSBwYXJzZWFibGUgCitQQVNTIGV4cHJl
c3Npb24gaGVpZ2h0OiAtMGNtIHNob3VsZCBiZSBwYXJzZWFibGUgCitQQVNTIGV4cHJlc3Npb24g
aGVpZ2h0OiAxcHggc2hvdWxkIGJlIHBhcnNlYWJsZSAKK1BBU1MgZXhwcmVzc2lvbiBoZWlnaHQ6
IDAuMDAxbW0gc2hvdWxkIGJlIHBhcnNlYWJsZSAKK1BBU1MgZXhwcmVzc2lvbiBoZWlnaHQ6IDEw
MDAwMHB4IHNob3VsZCBiZSBwYXJzZWFibGUgCitQQVNTIGV4cHJlc3Npb24gaGVpZ2h0OiAtMXB4
IHNob3VsZCBub3QgYmUgcGFyc2VhYmxlIAorUEFTUyBleHByZXNzaW9uIGhlaWdodDogJzIwcHgn
IHNob3VsZCBub3QgYmUgcGFyc2VhYmxlIAorUEFTUyBleHByZXNzaW9uIG1pbi1oZWlnaHQ6IC0x
cHggc2hvdWxkIG5vdCBiZSBwYXJzZWFibGUgCitQQVNTIGV4cHJlc3Npb24gbWF4LWhlaWdodDog
LTFweCBzaG91bGQgbm90IGJlIHBhcnNlYWJsZSAKK1BBU1MgZXhwcmVzc2lvbiBtaW4taGVpZ2h0
OiAnMTBweCcgc2hvdWxkIG5vdCBiZSBwYXJzZWFibGUgCitQQVNTIGV4cHJlc3Npb24gbWF4LWhl
aWdodDogJzEwcHgnIHNob3VsZCBub3QgYmUgcGFyc2VhYmxlIAorUEFTUyBleHByZXNzaW9uIGhl
aWdodDogLTAuMDAwMDFtbSBzaG91bGQgbm90IGJlIHBhcnNlYWJsZSAKK1BBU1MgZXhwcmVzc2lv
biBoZWlnaHQ6IC0xMDAwMDBlbSBzaG91bGQgbm90IGJlIHBhcnNlYWJsZSAKK1BBU1MgZXhwcmVz
c2lvbiBtaW4taGVpZ2h0IHNob3VsZCBub3QgYmUgcGFyc2VhYmxlIAorUEFTUyBleHByZXNzaW9u
IG1heC1oZWlnaHQgc2hvdWxkIG5vdCBiZSBwYXJzZWFibGUgCitQQVNTIGV4cHJlc3Npb24gZGV2
aWNlLXdpZHRoIHNob3VsZCBiZSBwYXJzZWFibGUgCitQQVNTIGV4cHJlc3Npb24gZGV2aWNlLXdp
ZHRoOiAwIHNob3VsZCBiZSBwYXJzZWFibGUgCitQQVNTIGV4cHJlc3Npb24gZGV2aWNlLXdpZHRo
OiAwcHggc2hvdWxkIGJlIHBhcnNlYWJsZSAKK1BBU1MgZXhwcmVzc2lvbiBkZXZpY2Utd2lkdGg6
IDBlbSBzaG91bGQgYmUgcGFyc2VhYmxlIAorUEFTUyBleHByZXNzaW9uIGRldmljZS13aWR0aDog
LTAgc2hvdWxkIGJlIHBhcnNlYWJsZSAKK1BBU1MgZXhwcmVzc2lvbiBtaW4tZGV2aWNlLXdpZHRo
OiAtMCBzaG91bGQgYmUgcGFyc2VhYmxlIAorUEFTUyBleHByZXNzaW9uIG1heC1kZXZpY2Utd2lk
dGg6IC0wIHNob3VsZCBiZSBwYXJzZWFibGUgCitQQVNTIGV4cHJlc3Npb24gZGV2aWNlLXdpZHRo
OiAtMGNtIHNob3VsZCBiZSBwYXJzZWFibGUgCitQQVNTIGV4cHJlc3Npb24gZGV2aWNlLXdpZHRo
OiAxcHggc2hvdWxkIGJlIHBhcnNlYWJsZSAKK1BBU1MgZXhwcmVzc2lvbiBkZXZpY2Utd2lkdGg6
IDAuMDAxbW0gc2hvdWxkIGJlIHBhcnNlYWJsZSAKK1BBU1MgZXhwcmVzc2lvbiBkZXZpY2Utd2lk
dGg6IDEwMDAwMHB4IHNob3VsZCBiZSBwYXJzZWFibGUgCitQQVNTIGV4cHJlc3Npb24gZGV2aWNl
LXdpZHRoOiAtMXB4IHNob3VsZCBub3QgYmUgcGFyc2VhYmxlIAorUEFTUyBleHByZXNzaW9uIGRl
dmljZS13aWR0aDogJzIwcHgnIHNob3VsZCBub3QgYmUgcGFyc2VhYmxlIAorUEFTUyBleHByZXNz
aW9uIG1pbi1kZXZpY2Utd2lkdGg6IC0xcHggc2hvdWxkIG5vdCBiZSBwYXJzZWFibGUgCitQQVNT
IGV4cHJlc3Npb24gbWF4LWRldmljZS13aWR0aDogLTFweCBzaG91bGQgbm90IGJlIHBhcnNlYWJs
ZSAKK1BBU1MgZXhwcmVzc2lvbiBtaW4tZGV2aWNlLXdpZHRoOiAnMTBweCcgc2hvdWxkIG5vdCBi
ZSBwYXJzZWFibGUgCitQQVNTIGV4cHJlc3Npb24gbWF4LWRldmljZS13aWR0aDogJzEwcHgnIHNo
b3VsZCBub3QgYmUgcGFyc2VhYmxlIAorUEFTUyBleHByZXNzaW9uIGRldmljZS13aWR0aDogLTAu
MDAwMDFtbSBzaG91bGQgbm90IGJlIHBhcnNlYWJsZSAKK1BBU1MgZXhwcmVzc2lvbiBkZXZpY2Ut
d2lkdGg6IC0xMDAwMDBlbSBzaG91bGQgbm90IGJlIHBhcnNlYWJsZSAKK1BBU1MgZXhwcmVzc2lv
biBtaW4tZGV2aWNlLXdpZHRoIHNob3VsZCBub3QgYmUgcGFyc2VhYmxlIAorUEFTUyBleHByZXNz
aW9uIG1heC1kZXZpY2Utd2lkdGggc2hvdWxkIG5vdCBiZSBwYXJzZWFibGUgCitQQVNTIGV4cHJl
c3Npb24gZGV2aWNlLWhlaWdodCBzaG91bGQgYmUgcGFyc2VhYmxlIAorUEFTUyBleHByZXNzaW9u
IGRldmljZS1oZWlnaHQ6IDAgc2hvdWxkIGJlIHBhcnNlYWJsZSAKK1BBU1MgZXhwcmVzc2lvbiBk
ZXZpY2UtaGVpZ2h0OiAwcHggc2hvdWxkIGJlIHBhcnNlYWJsZSAKK1BBU1MgZXhwcmVzc2lvbiBk
ZXZpY2UtaGVpZ2h0OiAwZW0gc2hvdWxkIGJlIHBhcnNlYWJsZSAKK1BBU1MgZXhwcmVzc2lvbiBk
ZXZpY2UtaGVpZ2h0OiAtMCBzaG91bGQgYmUgcGFyc2VhYmxlIAorUEFTUyBleHByZXNzaW9uIG1p
bi1kZXZpY2UtaGVpZ2h0OiAtMCBzaG91bGQgYmUgcGFyc2VhYmxlIAorUEFTUyBleHByZXNzaW9u
IG1heC1kZXZpY2UtaGVpZ2h0OiAtMCBzaG91bGQgYmUgcGFyc2VhYmxlIAorUEFTUyBleHByZXNz
aW9uIGRldmljZS1oZWlnaHQ6IC0wY20gc2hvdWxkIGJlIHBhcnNlYWJsZSAKK1BBU1MgZXhwcmVz
c2lvbiBkZXZpY2UtaGVpZ2h0OiAxcHggc2hvdWxkIGJlIHBhcnNlYWJsZSAKK1BBU1MgZXhwcmVz
c2lvbiBkZXZpY2UtaGVpZ2h0OiAwLjAwMW1tIHNob3VsZCBiZSBwYXJzZWFibGUgCitQQVNTIGV4
cHJlc3Npb24gZGV2aWNlLWhlaWdodDogMTAwMDAwcHggc2hvdWxkIGJlIHBhcnNlYWJsZSAKK1BB
U1MgZXhwcmVzc2lvbiBkZXZpY2UtaGVpZ2h0OiAtMXB4IHNob3VsZCBub3QgYmUgcGFyc2VhYmxl
IAorUEFTUyBleHByZXNzaW9uIGRldmljZS1oZWlnaHQ6ICcyMHB4JyBzaG91bGQgbm90IGJlIHBh
cnNlYWJsZSAKK1BBU1MgZXhwcmVzc2lvbiBtaW4tZGV2aWNlLWhlaWdodDogLTFweCBzaG91bGQg
bm90IGJlIHBhcnNlYWJsZSAKK1BBU1MgZXhwcmVzc2lvbiBtYXgtZGV2aWNlLWhlaWdodDogLTFw
eCBzaG91bGQgbm90IGJlIHBhcnNlYWJsZSAKK1BBU1MgZXhwcmVzc2lvbiBtaW4tZGV2aWNlLWhl
aWdodDogJzEwcHgnIHNob3VsZCBub3QgYmUgcGFyc2VhYmxlIAorUEFTUyBleHByZXNzaW9uIG1h
eC1kZXZpY2UtaGVpZ2h0OiAnMTBweCcgc2hvdWxkIG5vdCBiZSBwYXJzZWFibGUgCitQQVNTIGV4
cHJlc3Npb24gZGV2aWNlLWhlaWdodDogLTAuMDAwMDFtbSBzaG91bGQgbm90IGJlIHBhcnNlYWJs
ZSAKK1BBU1MgZXhwcmVzc2lvbiBkZXZpY2UtaGVpZ2h0OiAtMTAwMDAwZW0gc2hvdWxkIG5vdCBi
ZSBwYXJzZWFibGUgCitQQVNTIGV4cHJlc3Npb24gbWluLWRldmljZS1oZWlnaHQgc2hvdWxkIG5v
dCBiZSBwYXJzZWFibGUgCitQQVNTIGV4cHJlc3Npb24gbWF4LWRldmljZS1oZWlnaHQgc2hvdWxk
IG5vdCBiZSBwYXJzZWFibGUgCitQQVNTIGFsbCBhbmQgKHdpZHRoOiB3aWR0aCBweCkgc2hvdWxk
IGFwcGx5IAorUEFTUyBhbGwgYW5kICh3aWR0aDogd2lkdGggKzEgcHgpIHNob3VsZCBub3QgYXBw
bHkgCitQQVNTIGFsbCBhbmQgKHdpZHRoOiB3aWR0aCAtMSBweCkgc2hvdWxkIG5vdCBhcHBseSAK
K1BBU1MgYWxsIGFuZCAobWluLXdpZHRoOiB3aWR0aCBweCkgc2hvdWxkIGFwcGx5IAorUEFTUyBh
bGwgYW5kIChtaW4td2lkdGg6IHdpZHRoICsxIHB4KSBzaG91bGQgbm90IGFwcGx5IAorUEFTUyBh
bGwgYW5kIChtaW4td2lkdGg6IHdpZHRoIC0xIHB4KSBzaG91bGQgYXBwbHkgCitQQVNTIGFsbCBh
bmQgKG1heC13aWR0aDogd2lkdGggcHgpIHNob3VsZCBhcHBseSAKK1BBU1MgYWxsIGFuZCAobWF4
LXdpZHRoOiB3aWR0aCArMSBweCkgc2hvdWxkIGFwcGx5IAorUEFTUyBhbGwgYW5kIChtYXgtd2lk
dGg6IHdpZHRoICsxIHB4KSBzaG91bGQgbm90IGFwcGx5IAorUEFTUyBhbGwgYW5kIChtaW4td2lk
dGg6IHdpZHRoICsxIGVtKSBzaG91bGQgbm90IGFwcGx5IAorUEFTUyBhbGwgYW5kIChtaW4td2lk
dGg6IHdpZHRoIC0xIGVtKSBzaG91bGQgYXBwbHkgCitQQVNTIGFsbCBhbmQgKG1heC13aWR0aDog
d2lkdGggKzEgZW0pIHNob3VsZCBhcHBseSAKK1BBU1MgYWxsIGFuZCAobWF4LXdpZHRoOiB3aWR0
aCAtMSBlbSkgc2hvdWxkIG5vdCBhcHBseSAKK1BBU1MgYWxsIGFuZCAoaGVpZ2h0OiBoZWlnaHQg
cHgpIHNob3VsZCBhcHBseSAKK1BBU1MgYWxsIGFuZCAoaGVpZ2h0OiBoZWlnaHQgKzEgcHgpIHNo
b3VsZCBub3QgYXBwbHkgCitQQVNTIGFsbCBhbmQgKGhlaWdodDogaGVpZ2h0IC0xIHB4KSBzaG91
bGQgbm90IGFwcGx5IAorUEFTUyBhbGwgYW5kIChtaW4taGVpZ2h0OiBoZWlnaHQgcHgpIHNob3Vs
ZCBhcHBseSAKK1BBU1MgYWxsIGFuZCAobWluLWhlaWdodDogaGVpZ2h0ICsxIHB4KSBzaG91bGQg
bm90IGFwcGx5IAorUEFTUyBhbGwgYW5kIChtaW4taGVpZ2h0OiBoZWlnaHQgLTEgcHgpIHNob3Vs
ZCBhcHBseSAKK1BBU1MgYWxsIGFuZCAobWF4LWhlaWdodDogaGVpZ2h0IHB4KSBzaG91bGQgYXBw
bHkgCitQQVNTIGFsbCBhbmQgKG1heC1oZWlnaHQ6IGhlaWdodCArMSBweCkgc2hvdWxkIGFwcGx5
IAorUEFTUyBhbGwgYW5kIChtYXgtaGVpZ2h0OiBoZWlnaHQgKzEgcHgpIHNob3VsZCBub3QgYXBw
bHkgCitQQVNTIGFsbCBhbmQgKG1pbi1oZWlnaHQ6IGhlaWdodCArMSBlbSkgc2hvdWxkIG5vdCBh
cHBseSAKK1BBU1MgYWxsIGFuZCAobWluLWhlaWdodDogaGVpZ2h0IC0xIGVtKSBzaG91bGQgYXBw
bHkgCitQQVNTIGFsbCBhbmQgKG1heC1oZWlnaHQ6IGhlaWdodCArMSBlbSkgc2hvdWxkIGFwcGx5
IAorUEFTUyBhbGwgYW5kIChtYXgtaGVpZ2h0OiBoZWlnaHQgLTEgZW0pIHNob3VsZCBub3QgYXBw
bHkgCitQQVNTIGFsbCBhbmQgKGRldmljZS13aWR0aDogZGV2aWNlLXdpZHRoIHB4KSBzaG91bGQg
YXBwbHkgCitQQVNTIGFsbCBhbmQgKGRldmljZS13aWR0aDogZGV2aWNlLXdpZHRoICsxIHB4KSBz
aG91bGQgbm90IGFwcGx5IAorUEFTUyBhbGwgYW5kIChkZXZpY2Utd2lkdGg6IGRldmljZS13aWR0
aCAtMSBweCkgc2hvdWxkIG5vdCBhcHBseSAKK1BBU1MgYWxsIGFuZCAobWluLWRldmljZS13aWR0
aDogZGV2aWNlLXdpZHRoIHB4KSBzaG91bGQgYXBwbHkgCitQQVNTIGFsbCBhbmQgKG1pbi1kZXZp
Y2Utd2lkdGg6IGRldmljZS13aWR0aCArMSBweCkgc2hvdWxkIG5vdCBhcHBseSAKK1BBU1MgYWxs
IGFuZCAobWluLWRldmljZS13aWR0aDogZGV2aWNlLXdpZHRoIC0xIHB4KSBzaG91bGQgYXBwbHkg
CitQQVNTIGFsbCBhbmQgKG1heC1kZXZpY2Utd2lkdGg6IGRldmljZS13aWR0aCBweCkgc2hvdWxk
IGFwcGx5IAorUEFTUyBhbGwgYW5kIChtYXgtZGV2aWNlLXdpZHRoOiBkZXZpY2Utd2lkdGggKzEg
cHgpIHNob3VsZCBhcHBseSAKK1BBU1MgYWxsIGFuZCAobWF4LWRldmljZS13aWR0aDogZGV2aWNl
LXdpZHRoICsxIHB4KSBzaG91bGQgbm90IGFwcGx5IAorUEFTUyBhbGwgYW5kIChtaW4tZGV2aWNl
LXdpZHRoOiBkZXZpY2Utd2lkdGggKzEgZW0pIHNob3VsZCBub3QgYXBwbHkgCitQQVNTIGFsbCBh
bmQgKG1pbi1kZXZpY2Utd2lkdGg6IGRldmljZS13aWR0aCAtMSBlbSkgc2hvdWxkIGFwcGx5IAor
UEFTUyBhbGwgYW5kIChtYXgtZGV2aWNlLXdpZHRoOiBkZXZpY2Utd2lkdGggKzEgZW0pIHNob3Vs
ZCBhcHBseSAKK1BBU1MgYWxsIGFuZCAobWF4LWRldmljZS13aWR0aDogZGV2aWNlLXdpZHRoIC0x
IGVtKSBzaG91bGQgbm90IGFwcGx5IAorUEFTUyBhbGwgYW5kIChkZXZpY2UtaGVpZ2h0OiBkZXZp
Y2UtaGVpZ2h0IHB4KSBzaG91bGQgYXBwbHkgCitQQVNTIGFsbCBhbmQgKGRldmljZS1oZWlnaHQ6
IGRldmljZS1oZWlnaHQgKzEgcHgpIHNob3VsZCBub3QgYXBwbHkgCitQQVNTIGFsbCBhbmQgKGRl
dmljZS1oZWlnaHQ6IGRldmljZS1oZWlnaHQgLTEgcHgpIHNob3VsZCBub3QgYXBwbHkgCitQQVNT
IGFsbCBhbmQgKG1pbi1kZXZpY2UtaGVpZ2h0OiBkZXZpY2UtaGVpZ2h0IHB4KSBzaG91bGQgYXBw
bHkgCitQQVNTIGFsbCBhbmQgKG1pbi1kZXZpY2UtaGVpZ2h0OiBkZXZpY2UtaGVpZ2h0ICsxIHB4
KSBzaG91bGQgbm90IGFwcGx5IAorUEFTUyBhbGwgYW5kIChtaW4tZGV2aWNlLWhlaWdodDogZGV2
aWNlLWhlaWdodCAtMSBweCkgc2hvdWxkIGFwcGx5IAorUEFTUyBhbGwgYW5kIChtYXgtZGV2aWNl
LWhlaWdodDogZGV2aWNlLWhlaWdodCBweCkgc2hvdWxkIGFwcGx5IAorUEFTUyBhbGwgYW5kICht
YXgtZGV2aWNlLWhlaWdodDogZGV2aWNlLWhlaWdodCArMSBweCkgc2hvdWxkIGFwcGx5IAorUEFT
UyBhbGwgYW5kIChtYXgtZGV2aWNlLWhlaWdodDogZGV2aWNlLWhlaWdodCArMSBweCkgc2hvdWxk
IG5vdCBhcHBseSAKK1BBU1MgYWxsIGFuZCAobWluLWRldmljZS1oZWlnaHQ6IGRldmljZS1oZWln
aHQgKzEgZW0pIHNob3VsZCBub3QgYXBwbHkgCitQQVNTIGFsbCBhbmQgKG1pbi1kZXZpY2UtaGVp
Z2h0OiBkZXZpY2UtaGVpZ2h0IC0xIGVtKSBzaG91bGQgYXBwbHkgCitQQVNTIGFsbCBhbmQgKG1h
eC1kZXZpY2UtaGVpZ2h0OiBkZXZpY2UtaGVpZ2h0ICsxIGVtKSBzaG91bGQgYXBwbHkgCitQQVNT
IGFsbCBhbmQgKG1heC1kZXZpY2UtaGVpZ2h0OiBkZXZpY2UtaGVpZ2h0IC0xIGVtKSBzaG91bGQg
bm90IGFwcGx5IAorUEFTUyBhbGwgYW5kIChoZWlnaHQpIHNob3VsZCBhcHBseSAKK1BBU1MgYWxs
IGFuZCAod2lkdGgpIHNob3VsZCBub3QgYXBwbHkgCitQQVNTIGFsbCBhbmQgKGhlaWdodCkgc2hv
dWxkIG5vdCBhcHBseSAKK1BBU1MgYWxsIGFuZCAod2lkdGgpIHNob3VsZCBub3QgYXBwbHkgCitQ
QVNTIGFsbCBhbmQgKGRldmljZS1oZWlnaHQpIHNob3VsZCBhcHBseSAKK1BBU1MgYWxsIGFuZCAo
ZGV2aWNlLXdpZHRoKSBzaG91bGQgYXBwbHkgCitQQVNTIGFsbCBhbmQgKGhlaWdodCkgc2hvdWxk
IG5vdCBhcHBseSAKK1BBU1MgYWxsIGFuZCAod2lkdGgpIHNob3VsZCBhcHBseSAKK1BBU1MgYWxs
IGFuZCAoaGVpZ2h0KSBzaG91bGQgYXBwbHkgCitQQVNTIGFsbCBhbmQgKHdpZHRoKSBzaG91bGQg
YXBwbHkgCitQQVNTIGV4cHJlc3Npb24gb3JpZW50YXRpb24gc2hvdWxkIGJlIHBhcnNlYWJsZSAK
K1BBU1MgZXhwcmVzc2lvbiBvcmllbnRhdGlvbjogcG9ydHJhaXQgc2hvdWxkIGJlIHBhcnNlYWJs
ZSAKK1BBU1MgZXhwcmVzc2lvbiBvcmllbnRhdGlvbjogbGFuZHNjYXBlIHNob3VsZCBiZSBwYXJz
ZWFibGUgCitQQVNTIGV4cHJlc3Npb24gbWluLW9yaWVudGF0aW9uIHNob3VsZCBub3QgYmUgcGFy
c2VhYmxlIAorUEFTUyBleHByZXNzaW9uIG1pbi1vcmllbnRhdGlvbjogcG9ydHJhaXQgc2hvdWxk
IG5vdCBiZSBwYXJzZWFibGUgCitQQVNTIGV4cHJlc3Npb24gbWluLW9yaWVudGF0aW9uOiBsYW5k
c2NhcGUgc2hvdWxkIG5vdCBiZSBwYXJzZWFibGUgCitQQVNTIGV4cHJlc3Npb24gbWF4LW9yaWVu
dGF0aW9uIHNob3VsZCBub3QgYmUgcGFyc2VhYmxlIAorUEFTUyBleHByZXNzaW9uIG1heC1vcmll
bnRhdGlvbjogcG9ydHJhaXQgc2hvdWxkIG5vdCBiZSBwYXJzZWFibGUgCitQQVNTIGV4cHJlc3Np
b24gbWF4LW9yaWVudGF0aW9uOiBsYW5kc2NhcGUgc2hvdWxkIG5vdCBiZSBwYXJzZWFibGUgCitQ
QVNTIChvcmllbnRhdGlvbikgc2hvdWxkIGFwcGx5IAorUEFTUyAob3JpZW50YXRpb246IGxhbmRz
Y2FwZSkgc2hvdWxkIGFwcGx5IAorUEFTUyAob3JpZW50YXRpb246IHBvcnRyYWl0KSBzaG91bGQg
bm90IGFwcGx5IAorUEFTUyBub3QgYWxsIGFuZCAob3JpZW50YXRpb246IHBvcnRyYWl0KSBzaG91
bGQgYXBwbHkgCitQQVNTIChvcmllbnRhdGlvbikgc2hvdWxkIGFwcGx5IAorUEFTUyAob3JpZW50
YXRpb246IGxhbmRzY2FwZSkgc2hvdWxkIG5vdCBhcHBseSAKK1BBU1Mgbm90IGFsbCBhbmQgKG9y
aWVudGF0aW9uOiBsYW5kc2NhcGUpIHNob3VsZCBhcHBseSAKK1BBU1MgKG9yaWVudGF0aW9uOiBw
b3J0cmFpdCkgc2hvdWxkIGFwcGx5IAorUEFTUyAoYXNwZWN0LXJhdGlvOiA1OS84MCkgc2hvdWxk
IGFwcGx5IAorUEFTUyAoYXNwZWN0LXJhdGlvOiA1OC84MCkgc2hvdWxkIG5vdCBhcHBseSAKK1BB
U1MgKGFzcGVjdC1yYXRpbzogNTkvODEpIHNob3VsZCBub3QgYXBwbHkgCitQQVNTIChhc3BlY3Qt
cmF0aW86IDYwLzgwKSBzaG91bGQgbm90IGFwcGx5IAorUEFTUyAoYXNwZWN0LXJhdGlvOiA1OS83
OSkgc2hvdWxkIG5vdCBhcHBseSAKK1BBU1MgKGFzcGVjdC1yYXRpbzogMTc3LzI0MCkgc2hvdWxk
IGFwcGx5IAorUEFTUyAoYXNwZWN0LXJhdGlvOiA0MTMvNTYwKSBzaG91bGQgYXBwbHkgCitQQVNT
IChhc3BlY3QtcmF0aW86IDU5MDAvODAwMCkgc2hvdWxkIGFwcGx5IAorUEFTUyAoYXNwZWN0LXJh
dGlvOiA1OTAxLzgwMDApIHNob3VsZCBub3QgYXBwbHkgCitQQVNTIChhc3BlY3QtcmF0aW86IDU4
OTkvODAwMCkgc2hvdWxkIG5vdCBhcHBseSAKK1BBU1MgKGFzcGVjdC1yYXRpbzogNTkwMC84MDAx
KSBzaG91bGQgbm90IGFwcGx5IAorUEFTUyAoYXNwZWN0LXJhdGlvOiA1OTAwLzc5OTkpIHNob3Vs
ZCBub3QgYXBwbHkgCitQQVNTIChhc3BlY3QtcmF0aW8pIHNob3VsZCBhcHBseSAKK1BBU1MgKG1p
bi1hc3BlY3QtcmF0aW86IDU5LzgwKSBzaG91bGQgYXBwbHkgCitQQVNTIChtaW4tYXNwZWN0LXJh
dGlvOiA1OC84MCkgc2hvdWxkIGFwcGx5IAorUEFTUyAobWluLWFzcGVjdC1yYXRpbzogNTkvODEp
IHNob3VsZCBhcHBseSAKK1BBU1MgKG1pbi1hc3BlY3QtcmF0aW86IDYwLzgwKSBzaG91bGQgbm90
IGFwcGx5IAorUEFTUyAobWluLWFzcGVjdC1yYXRpbzogNTkvNzkpIHNob3VsZCBub3QgYXBwbHkg
CitQQVNTIGV4cHJlc3Npb24gbWluLWFzcGVjdC1yYXRpbyBzaG91bGQgbm90IGJlIHBhcnNlYWJs
ZSAKK1BBU1MgKG1heC1hc3BlY3QtcmF0aW86IDU5LzgwKSBzaG91bGQgYXBwbHkgCitQQVNTICht
YXgtYXNwZWN0LXJhdGlvOiA1OC84MCkgc2hvdWxkIG5vdCBhcHBseSAKK1BBU1MgKG1heC1hc3Bl
Y3QtcmF0aW86IDU5LzgxKSBzaG91bGQgbm90IGFwcGx5IAorUEFTUyAobWF4LWFzcGVjdC1yYXRp
bzogNjAvODApIHNob3VsZCBhcHBseSAKK1BBU1MgKG1heC1hc3BlY3QtcmF0aW86IDU5Lzc5KSBz
aG91bGQgYXBwbHkgCitQQVNTIGV4cHJlc3Npb24gbWF4LWFzcGVjdC1yYXRpbyBzaG91bGQgbm90
IGJlIHBhcnNlYWJsZSAKK1BBU1MgKGRldmljZS1hc3BlY3QtcmF0aW86IGRldmljZS13aWR0aCAv
IGRldmljZS1oZWlnaHQpIHNob3VsZCBhcHBseSAKK1BBU1Mgbm90IGFsbCBhbmQgKGRldmljZS1h
c3BlY3QtcmF0aW86IGRldmljZS13aWR0aCArIDEgLyBkZXZpY2UtaGVpZ2h0KSBzaG91bGQgYXBw
bHkgCitQQVNTIGFsbCBhbmQgKGRldmljZS1hc3BlY3QtcmF0aW86IGRldmljZS13aWR0aCAvIGRl
dmljZS1oZWlnaHQgLSAxKSBzaG91bGQgbm90IGFwcGx5IAorUEFTUyBhbGwgYW5kIChkZXZpY2Ut
YXNwZWN0LXJhdGlvOiBkZXZpY2Utd2lkdGggLSAxIC8gZGV2aWNlLWhlaWdodCkgc2hvdWxkIG5v
dCBhcHBseSAKK1BBU1Mgbm90IGFsbCBhbmQgKGRldmljZS1hc3BlY3QtcmF0aW86IGRldmljZS13
aWR0aCAvIGRldmljZS1oZWlnaHQgKyAxKSBzaG91bGQgYXBwbHkgCitQQVNTIChkZXZpY2UtYXNw
ZWN0LXJhdGlvKSBzaG91bGQgYXBwbHkgCitQQVNTIChtaW4tZGV2aWNlLWFzcGVjdC1yYXRpbzog
ZGV2aWNlLXdpZHRoIC8gZGV2aWNlLWhlaWdodCkgc2hvdWxkIGFwcGx5IAorUEFTUyBub3QgYWxs
IGFuZCAoZGV2aWNlLWFzcGVjdC1yYXRpbzogZGV2aWNlLXdpZHRoICsgMSAvIGRldmljZS1oZWln
aHQpIHNob3VsZCBub3QgYXBwbHkgCitQQVNTIG5vdCBhbGwgYW5kIChtaW4tZGV2aWNlLWFzcGVj
dC1yYXRpbzogZGV2aWNlLXdpZHRoIC8gZGV2aWNlLWhlaWdodCAtIDEpIHNob3VsZCBhcHBseSAK
K1BBU1Mgbm90IGFsbCBhbmQgKG1pbi1kZXZpY2UtYXNwZWN0LXJhdGlvOiBkZXZpY2Utd2lkdGgg
LSAxIC8gZGV2aWNlLWhlaWdodCkgc2hvdWxkIG5vdCBhcHBseSAKK1BBU1MgYWxsIGFuZCAobWlu
LWRldmljZS1hc3BlY3QtcmF0aW86IGRldmljZS13aWR0aCAvIGRldmljZS1oZWlnaHQgKyAxKSBz
aG91bGQgYXBwbHkgCitQQVNTIGV4cHJlc3Npb24gbWluLWRldmljZS1hc3BlY3QtcmF0aW8gc2hv
dWxkIG5vdCBiZSBwYXJzZWFibGUgCitQQVNTIGFsbCBhbmQgKG1heC1kZXZpY2UtYXNwZWN0LXJh
dGlvOiBkZXZpY2Utd2lkdGggLyBkZXZpY2UtaGVpZ2h0KSBzaG91bGQgYXBwbHkgCitQQVNTICht
YXgtZGV2aWNlLWFzcGVjdC1yYXRpbzogZGV2aWNlLXdpZHRoICsgMSAvIGRldmljZS1oZWlnaHQp
IHNob3VsZCBhcHBseSAKK1BBU1MgKG1heC1kZXZpY2UtYXNwZWN0LXJhdGlvOiBkZXZpY2Utd2lk
dGggLyBkZXZpY2UtaGVpZ2h0IC0gMSBzaG91bGQgYXBwbHkgCitQQVNTIGFsbCBhbmQgKG1heC1k
ZXZpY2UtYXNwZWN0LXJhdGlvOiBkZXZpY2Utd2lkdGggLSAxIC8gZGV2aWNlLWhlaWdodCkgc2hv
dWxkIG5vdCBhcHBseSAKK1BBU1Mgbm90IGFsbCBhbmQgKG1heC1kZXZpY2UtYXNwZWN0LXJhdGlv
OiBkZXZpY2Utd2lkdGggLyBkZXZpY2UtaGVpZ2h0ICsgMSkgc2hvdWxkIGFwcGx5IAorUEFTUyBl
eHByZXNzaW9uIG1heC1kZXZpY2UtYXNwZWN0LXJhdGlvIHNob3VsZCBub3QgYmUgcGFyc2VhYmxl
IAorUEFTUyBleHByZXNzaW9uIG1heC1hc3BlY3QtcmF0aW86IDEvMSBzaG91bGQgYmUgcGFyc2Vh
YmxlIAorUEFTUyBleHByZXNzaW9uIG1heC1hc3BlY3QtcmF0aW86IDEgIC8xIHNob3VsZCBiZSBw
YXJzZWFibGUgCitQQVNTIGV4cHJlc3Npb24gbWF4LWFzcGVjdC1yYXRpbzogMSAgLyAJCisxIHNo
b3VsZCBiZSBwYXJzZWFibGUgCitQQVNTIGV4cHJlc3Npb24gbWF4LWFzcGVjdC1yYXRpbzogMS8K
KzEgc2hvdWxkIGJlIHBhcnNlYWJsZSAKK1BBU1MgZXhwcmVzc2lvbiBtYXgtYXNwZWN0LXJhdGlv
OiAxIHNob3VsZCBub3QgYmUgcGFyc2VhYmxlIAorUEFTUyBleHByZXNzaW9uIG1heC1hc3BlY3Qt
cmF0aW86IDAuNSBzaG91bGQgbm90IGJlIHBhcnNlYWJsZSAKK1BBU1MgZXhwcmVzc2lvbiBtYXgt
YXNwZWN0LXJhdGlvOiAxLjAvMSBzaG91bGQgbm90IGJlIHBhcnNlYWJsZSAKK1BBU1MgZXhwcmVz
c2lvbiBtYXgtYXNwZWN0LXJhdGlvOiAxLzEuMCBzaG91bGQgbm90IGJlIHBhcnNlYWJsZSAKK1BB
U1MgZXhwcmVzc2lvbiBtYXgtYXNwZWN0LXJhdGlvOiAxLjAvMS4wIHNob3VsZCBub3QgYmUgcGFy
c2VhYmxlIAorUEFTUyBleHByZXNzaW9uIG1heC1hc3BlY3QtcmF0aW86IDAvMSBzaG91bGQgbm90
IGJlIHBhcnNlYWJsZSAKK1BBU1MgZXhwcmVzc2lvbiBtYXgtYXNwZWN0LXJhdGlvOiAxLzAgc2hv
dWxkIG5vdCBiZSBwYXJzZWFibGUgCitQQVNTIGV4cHJlc3Npb24gbWF4LWFzcGVjdC1yYXRpbzog
MC8wIHNob3VsZCBub3QgYmUgcGFyc2VhYmxlIAorUEFTUyBleHByZXNzaW9uIG1heC1hc3BlY3Qt
cmF0aW86IC0xLzEgc2hvdWxkIG5vdCBiZSBwYXJzZWFibGUgCitQQVNTIGV4cHJlc3Npb24gbWF4
LWFzcGVjdC1yYXRpbzogMS8tMSBzaG91bGQgbm90IGJlIHBhcnNlYWJsZSAKK1BBU1MgZXhwcmVz
c2lvbiBtYXgtYXNwZWN0LXJhdGlvOiAtMS8tMSBzaG91bGQgbm90IGJlIHBhcnNlYWJsZSAKK1BB
U1MgZXhwcmVzc2lvbiBkZXZpY2UtYXNwZWN0LXJhdGlvOiAxLzEgc2hvdWxkIGJlIHBhcnNlYWJs
ZSAKK1BBU1MgZXhwcmVzc2lvbiBkZXZpY2UtYXNwZWN0LXJhdGlvOiAxICAvMSBzaG91bGQgYmUg
cGFyc2VhYmxlIAorUEFTUyBleHByZXNzaW9uIGRldmljZS1hc3BlY3QtcmF0aW86IDEgIC8gCQor
MSBzaG91bGQgYmUgcGFyc2VhYmxlIAorUEFTUyBleHByZXNzaW9uIGRldmljZS1hc3BlY3QtcmF0
aW86IDEvCisxIHNob3VsZCBiZSBwYXJzZWFibGUgCitQQVNTIGV4cHJlc3Npb24gZGV2aWNlLWFz
cGVjdC1yYXRpbzogMSBzaG91bGQgbm90IGJlIHBhcnNlYWJsZSAKK1BBU1MgZXhwcmVzc2lvbiBk
ZXZpY2UtYXNwZWN0LXJhdGlvOiAwLjUgc2hvdWxkIG5vdCBiZSBwYXJzZWFibGUgCitQQVNTIGV4
cHJlc3Npb24gZGV2aWNlLWFzcGVjdC1yYXRpbzogMS4wLzEgc2hvdWxkIG5vdCBiZSBwYXJzZWFi
bGUgCitQQVNTIGV4cHJlc3Npb24gZGV2aWNlLWFzcGVjdC1yYXRpbzogMS8xLjAgc2hvdWxkIG5v
dCBiZSBwYXJzZWFibGUgCitQQVNTIGV4cHJlc3Npb24gZGV2aWNlLWFzcGVjdC1yYXRpbzogMS4w
LzEuMCBzaG91bGQgbm90IGJlIHBhcnNlYWJsZSAKK1BBU1MgZXhwcmVzc2lvbiBkZXZpY2UtYXNw
ZWN0LXJhdGlvOiAwLzEgc2hvdWxkIG5vdCBiZSBwYXJzZWFibGUgCitQQVNTIGV4cHJlc3Npb24g
ZGV2aWNlLWFzcGVjdC1yYXRpbzogMS8wIHNob3VsZCBub3QgYmUgcGFyc2VhYmxlIAorUEFTUyBl
eHByZXNzaW9uIGRldmljZS1hc3BlY3QtcmF0aW86IDAvMCBzaG91bGQgbm90IGJlIHBhcnNlYWJs
ZSAKK1BBU1MgZXhwcmVzc2lvbiBkZXZpY2UtYXNwZWN0LXJhdGlvOiAtMS8xIHNob3VsZCBub3Qg
YmUgcGFyc2VhYmxlIAorUEFTUyBleHByZXNzaW9uIGRldmljZS1hc3BlY3QtcmF0aW86IDEvLTEg
c2hvdWxkIG5vdCBiZSBwYXJzZWFibGUgCitQQVNTIGV4cHJlc3Npb24gZGV2aWNlLWFzcGVjdC1y
YXRpbzogLTEvLTEgc2hvdWxkIG5vdCBiZSBwYXJzZWFibGUgCitQQVNTIG1vbm9jaHJvbWVfYW5k
X2NvbG9yIAorUEFTUyBmaW5kX2RlcHRoIAorUEFTUyBhbGwgYW5kIChjb2xvcjogZGVwdGgpIHNo
b3VsZCBhcHBseSAKK1BBU1MgYWxsIGFuZCAoY29sb3I6IGRlcHRoIC0gMSkgc2hvdWxkIG5vdCBh
cHBseSAKK1BBU1MgYWxsIGFuZCAoY29sb3I6IGRlcHRoICsgMSkgc2hvdWxkIG5vdCBhcHBseSAK
K1BBU1MgYWxsIGFuZCAobWF4LWNvbG9yOiBkZXB0aCkgc2hvdWxkIGFwcGx5IAorUEFTUyBhbGwg
YW5kIChtYXgtY29sb3I6IGRlcHRoIC0gMSkgc2hvdWxkIG5vdCBhcHBseSAKK1BBU1MgYWxsIGFu
ZCAobWF4LWNvbG9yOiBkZXB0aCArIDEpIHNob3VsZCBhcHBseSAKK1BBU1MgYWxsIGFuZCAoY29s
b3IpIHNob3VsZCBhcHBseSAKK1BBU1MgZXhwcmVzc2lvbiBtYXgtY29sb3Igc2hvdWxkIG5vdCBi
ZSBwYXJzZWFibGUgCitQQVNTIGV4cHJlc3Npb24gbWluLWNvbG9yIHNob3VsZCBub3QgYmUgcGFy
c2VhYmxlIAorUEFTUyBhbGwgYW5kIChtb25vY2hyb21lKSBzaG91bGQgbm90IGFwcGx5IAorUEFT
UyBleHByZXNzaW9uIG1heC1tb25vY2hyb21lIHNob3VsZCBub3QgYmUgcGFyc2VhYmxlIAorUEFT
UyBleHByZXNzaW9uIG1pbi1tb25vY2hyb21lIHNob3VsZCBub3QgYmUgcGFyc2VhYmxlIAorUEFT
UyBub3QgYWxsIGFuZCAobW9ub2Nocm9tZSkgc2hvdWxkIGFwcGx5IAorUEFTUyBub3QgYWxsIGFu
ZCAoY29sb3IpIHNob3VsZCBub3QgYXBwbHkgCitQQVNTIG9ubHkgYWxsIGFuZCAoY29sb3IpIHNo
b3VsZCBhcHBseSAKK1BBU1Mgb25seSBhbGwgYW5kIChtb25vY2hyb21lKSBzaG91bGQgbm90IGFw
cGx5IAorUEFTUyBleHByZXNzaW9uIGNvbG9yOiAxIHNob3VsZCBiZSBwYXJzZWFibGUgCitQQVNT
IGV4cHJlc3Npb24gY29sb3I6IDMyNyBzaG91bGQgYmUgcGFyc2VhYmxlIAorUEFTUyBleHByZXNz
aW9uIGNvbG9yOiAwIHNob3VsZCBiZSBwYXJzZWFibGUgCitQQVNTIGV4cHJlc3Npb24gY29sb3I6
IDEuMCBzaG91bGQgbm90IGJlIHBhcnNlYWJsZSAKK1BBU1MgZXhwcmVzc2lvbiBjb2xvcjogLTEg
c2hvdWxkIG5vdCBiZSBwYXJzZWFibGUgCitQQVNTIGV4cHJlc3Npb24gY29sb3I6IDEvMSBzaG91
bGQgbm90IGJlIHBhcnNlYWJsZSAKK1BBU1MgZXhwcmVzc2lvbiBtaW4tbW9ub2Nocm9tZTogMSBz
aG91bGQgYmUgcGFyc2VhYmxlIAorUEFTUyBleHByZXNzaW9uIG1pbi1tb25vY2hyb21lOiAzMjcg
c2hvdWxkIGJlIHBhcnNlYWJsZSAKK1BBU1MgZXhwcmVzc2lvbiBtaW4tbW9ub2Nocm9tZTogMCBz
aG91bGQgYmUgcGFyc2VhYmxlIAorUEFTUyBleHByZXNzaW9uIG1pbi1tb25vY2hyb21lOiAxLjAg
c2hvdWxkIG5vdCBiZSBwYXJzZWFibGUgCitQQVNTIGV4cHJlc3Npb24gbWluLW1vbm9jaHJvbWU6
IC0xIHNob3VsZCBub3QgYmUgcGFyc2VhYmxlIAorUEFTUyBleHByZXNzaW9uIG1pbi1tb25vY2hy
b21lOiAxLzEgc2hvdWxkIG5vdCBiZSBwYXJzZWFibGUgCitQQVNTIGV4cHJlc3Npb24gZ3JpZCBz
aG91bGQgYmUgcGFyc2VhYmxlIAorUEFTUyBleHByZXNzaW9uIGdyaWQ6IDAgc2hvdWxkIGJlIHBh
cnNlYWJsZSAKK1BBU1MgZXhwcmVzc2lvbiBncmlkOiAxIHNob3VsZCBiZSBwYXJzZWFibGUgCitQ
QVNTIGV4cHJlc3Npb24gZ3JpZDogMSBzaG91bGQgYmUgcGFyc2VhYmxlIAorUEFTUyBleHByZXNz
aW9uIG1pbi1ncmlkIHNob3VsZCBub3QgYmUgcGFyc2VhYmxlIAorUEFTUyBleHByZXNzaW9uIG1p
bi1ncmlkOjAgc2hvdWxkIG5vdCBiZSBwYXJzZWFibGUgCitQQVNTIGV4cHJlc3Npb24gbWF4LWdy
aWQ6IDEgc2hvdWxkIG5vdCBiZSBwYXJzZWFibGUgCitQQVNTIGV4cHJlc3Npb24gZ3JpZDogMiBz
aG91bGQgbm90IGJlIHBhcnNlYWJsZSAKK1BBU1MgZXhwcmVzc2lvbiBncmlkOiAtMSBzaG91bGQg
bm90IGJlIHBhcnNlYWJsZSAKK1BBU1MgKGdyaWQpIHNob3VsZCBub3QgYXBwbHkgCitQQVNTIChn
cmlkOiAwKSBzaG91bGQgYXBwbHkgCitQQVNTIChncmlkOiAxKSBzaG91bGQgbm90IGFwcGx5IAor
UEFTUyAoZ3JpZDogMikgc2hvdWxkIG5vdCBhcHBseSAKK1BBU1MgKGdyaWQ6IC0xKSBzaG91bGQg
bm90IGFwcGx5IAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhL3czYy90ZXN0
X21lZGlhX3F1ZXJpZXMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWEvdzNjL3Rlc3RfbWVk
aWFfcXVlcmllcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU3OWU0
NzEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhL3czYy90ZXN0X21l
ZGlhX3F1ZXJpZXMuaHRtbApAQCAtMCwwICsxLDM1OSBAQAorPCFET0NUWVBFIEhUTUw+Cis8aHRt
bD4KKzxoZWFkPgorICA8dGl0bGU+TWVkaWEgUXVlcmllcyBTZWxmLUNvbnRhaW5lZCBUZXN0IFN1
aXRlPC90aXRsZT4KKyAgPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJMLiBEYXZpZCBCYXJvbiIg
aHJlZj0iaHR0cDovL2RiYXJvbi5vcmcvIj4KKyAgPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJB
bm5lIHZhbiBLZXN0ZXJlbiIgaHJlZj0iaHR0cDovL2FubmV2YW5rZXN0ZXJlbi5ubC8iPgorICA8
bGluayByZWw9ImF1dGhvciIgdGl0bGU9Ik1zMmdlciIgaHJlZj0ibWFpbHRvOk1zMmdlckBnbWFp
bC5jb20iPgorICA8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1RSL2Nz
czMtbWVkaWFxdWVyaWVzLyI+CisgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9
Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+CisgIDxzY3JpcHQg
dHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVz
c3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1bigpIj4KKzxk
aXYgaWQ9bG9nPjwvZGl2PgorPGlmcmFtZSBpZD0ic3ViZG9jIiBzcmM9InJlc291cmNlcy9tZWRp
YV9xdWVyaWVzX2lmcmFtZS5odG1sIj48L2lmcmFtZT4KKzxkaXYgaWQ9ImNvbnRlbnQiIHN0eWxl
PSJkaXNwbGF5OiBub25lIj48L2Rpdj4KKworPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQi
Pgorc2V0dXAoeyAiZXhwbGljaXRfZG9uZSI6IHRydWUgfSk7CisKK2Z1bmN0aW9uIHJ1bigpIHsK
KyAgICB2YXIgc3ViZG9jID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInN1YmRvYyIpLmNvbnRl
bnREb2N1bWVudDsKKyAgICB2YXIgc3Vid2luID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInN1
YmRvYyIpLmNvbnRlbnRXaW5kb3c7CisgICAgdmFyIHN0eWxlID0gc3ViZG9jLmdldEVsZW1lbnRC
eUlkKCJzdHlsZSIpOworICAgIHZhciBpZnJhbWVfc3R5bGUgPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgic3ViZG9jIikuc3R5bGU7CisgICAgdmFyIGJvZHlfY3MgPSBzdWJkb2MuZGVmYXVsdFZp
ZXcuZ2V0Q29tcHV0ZWRTdHlsZShzdWJkb2MuYm9keSwgIiIpOworCisgICAgZnVuY3Rpb24gcXVl
cnlfYXBwbGllcyhxKSB7CisgICAgICBzdHlsZS5zZXRBdHRyaWJ1dGUoIm1lZGlhIiwgcSk7Cisg
ICAgICByZXR1cm4gYm9keV9jcy5nZXRQcm9wZXJ0eVZhbHVlKCJ0ZXh0LWRlY29yYXRpb24iKSA9
PSAidW5kZXJsaW5lIjsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBzaG91bGRfYXBwbHkocSwgbWVz
c2FnZSkgeworICAgICAgdGVzdChmdW5jdGlvbigpIHsKKyAgICAgICAgYXNzZXJ0X3RydWUocXVl
cnlfYXBwbGllcyhxKSk7CisgICAgICB9LCAobWVzc2FnZSAhPT0gdW5kZWZpbmVkID8gbWVzc2Fn
ZSA6IHEpICsgIiBzaG91bGQgYXBwbHkiKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBzaG91bGRf
bm90X2FwcGx5KHEsIG1lc3NhZ2UpIHsKKyAgICAgIHRlc3QoZnVuY3Rpb24oKSB7CisgICAgICAg
IGFzc2VydF9mYWxzZShxdWVyeV9hcHBsaWVzKHEpKTsKKyAgICAgIH0sIChtZXNzYWdlICE9PSB1
bmRlZmluZWQgPyBtZXNzYWdlIDogcSkgKyAiIHNob3VsZCBub3QgYXBwbHkiKTsKKyAgICB9CisK
KyAgICAvKgorICAgICAqIEZ1bmN0aW9ucyB0byB0ZXN0IHdoZXRoZXIgYSBxdWVyeSBpcyBwYXJz
ZWFibGUgYXQgYWxsLiAgKFNob3VsZCBub3QKKyAgICAgKiBiZSB1c2VkIGZvciBwYXJzZSBlcnJv
cnMgd2l0aGluIGV4cHJlc3Npb25zLikKKyAgICAgKi8KKyAgICB2YXIgcGFyc2VfdGVzdF9zdHls
ZV9lbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3R5bGUiKTsKKyAgICBwYXJzZV90
ZXN0X3N0eWxlX2VsZW1lbnQudHlwZSA9ICJ0ZXh0L2NzcyI7CisgICAgcGFyc2VfdGVzdF9zdHls
ZV9lbGVtZW50LmRpc2FibGVkID0gdHJ1ZTsgLy8gZm9yIHBlcmZvcm1hbmNlLCBob3BlZnVsbHkK
KyAgICB2YXIgcGFyc2VfdGVzdF9zdHlsZV90ZXh0ID0gZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUo
IiIpOworICAgIHBhcnNlX3Rlc3Rfc3R5bGVfZWxlbWVudC5hcHBlbmRDaGlsZChwYXJzZV90ZXN0
X3N0eWxlX3RleHQpOworICAgIGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJoZWFkIilb
MF0KKyAgICAgIC5hcHBlbmRDaGlsZChwYXJzZV90ZXN0X3N0eWxlX2VsZW1lbnQpOworCisgICAg
ZnVuY3Rpb24gcXVlcnlfaXNfcGFyc2VhYmxlKHEpIHsKKyAgICAgIHBhcnNlX3Rlc3Rfc3R5bGVf
dGV4dC5kYXRhID0gIkBtZWRpYSBzY3JlZW4sICIgKyBxICsgIiB7fSI7CisgICAgICB2YXIgc2hl
ZXQgPSBwYXJzZV90ZXN0X3N0eWxlX2VsZW1lbnQuc2hlZXQ7IC8vIFhYWCB5aWtlcywgbm90IGxp
dmUhCisgICAgICBpZiAoc2hlZXQuY3NzUnVsZXMubGVuZ3RoID09IDEgJiYKKyAgICAgICAgICBz
aGVldC5jc3NSdWxlc1swXS50eXBlID09IENTU1J1bGUuTUVESUFfUlVMRSkKKyAgICAgICAgcmV0
dXJuIHNoZWV0LmNzc1J1bGVzWzBdLm1lZGlhLm1lZGlhVGV4dCAhPSAic2NyZWVuLCBub3QgYWxs
IjsKKworICAgICAgYXNzZXJ0X3VucmVhY2hlZCgKKyAgICAgICAgInVuZXhwZWN0ZWQgcmVzdWx0
IHRlc3Rpbmcgd2hldGhlciBxdWVyeSAiICsgcSArICIgaXMgcGFyc2VhYmxlIik7CisgICAgfQor
CisgICAgZnVuY3Rpb24gcXVlcnlfc2hvdWxkX2JlX3BhcnNlYWJsZShxKSB7CisgICAgICB0ZXN0
KGZ1bmN0aW9uKCkgeworICAgICAgICBhc3NlcnRfdHJ1ZShxdWVyeV9pc19wYXJzZWFibGUocSkp
CisgICAgICB9LCJxdWVyeSAiICsgcSArICIgc2hvdWxkIGJlIHBhcnNlYWJsZSIpOworICAgIH0K
KworICAgIGZ1bmN0aW9uIHF1ZXJ5X3Nob3VsZF9ub3RfYmVfcGFyc2VhYmxlKHEpIHsKKyAgICAg
IHRlc3QoZnVuY3Rpb24oKSB7CisgICAgICAgIGFzc2VydF9mYWxzZShxdWVyeV9pc19wYXJzZWFi
bGUocSkpCisgICAgICB9LCJxdWVyeSAiICsgcSArICIgc2hvdWxkIG5vdCBiZSBwYXJzZWFibGUi
KTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIEZ1bmN0aW9ucyB0byB0ZXN0IHdoZXRoZXIgYSBz
aW5nbGUgbWVkaWEgZXhwcmVzc2lvbiBpcyBwYXJzZWFibGUuCisgICAgICovCisgICAgZnVuY3Rp
b24gZXhwcmVzc2lvbl9pc19wYXJzZWFibGUoZSkgeworICAgICAgc3R5bGUuc2V0QXR0cmlidXRl
KCJtZWRpYSIsICJhbGwgYW5kICgiICsgZSArICIpIik7CisgICAgICByZXR1cm4gc3R5bGUuc2hl
ZXQubWVkaWEubWVkaWFUZXh0ICE9ICJub3QgYWxsIjsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBl
eHByZXNzaW9uX3Nob3VsZF9iZV9wYXJzZWFibGUoZSkgeworICAgICAgdGVzdChmdW5jdGlvbigp
IHsKKyAgICAgICAgYXNzZXJ0X3RydWUoZXhwcmVzc2lvbl9pc19wYXJzZWFibGUoZSkpOworICAg
ICAgfSwiZXhwcmVzc2lvbiAiICsgZSArICIgc2hvdWxkIGJlIHBhcnNlYWJsZSIpOworICAgIH0K
KworICAgIGZ1bmN0aW9uIGV4cHJlc3Npb25fc2hvdWxkX25vdF9iZV9wYXJzZWFibGUoZSkgewor
ICAgICAgdGVzdChmdW5jdGlvbigpIHsKKyAgICAgICAgYXNzZXJ0X2ZhbHNlKGV4cHJlc3Npb25f
aXNfcGFyc2VhYmxlKGUpKTsKKyAgICAgIH0sImV4cHJlc3Npb24gIiArIGUgKyAiIHNob3VsZCBu
b3QgYmUgcGFyc2VhYmxlIik7CisgICAgfQorCisgICAgLy8gVGhlIG5vLXR5cGUgc3ludGF4IGRv
ZXNuJ3QgbWl4IHdpdGggdGhlIG5vdCBhbmQgb25seSBrZXl3b3Jkcy4KKyAgICBxdWVyeV9zaG91
bGRfYmVfcGFyc2VhYmxlKCIob3JpZW50YXRpb24pIik7CisgICAgcXVlcnlfc2hvdWxkX25vdF9i
ZV9wYXJzZWFibGUoIm5vdCAob3JpZW50YXRpb24pIik7CisgICAgcXVlcnlfc2hvdWxkX25vdF9i
ZV9wYXJzZWFibGUoIm9ubHkgKG9yaWVudGF0aW9uKSIpOworICAgIHF1ZXJ5X3Nob3VsZF9iZV9w
YXJzZWFibGUoImFsbCBhbmQgKG9yaWVudGF0aW9uKSIpOworICAgIHF1ZXJ5X3Nob3VsZF9iZV9w
YXJzZWFibGUoIm5vdCBhbGwgYW5kIChvcmllbnRhdGlvbikiKTsKKyAgICBxdWVyeV9zaG91bGRf
YmVfcGFyc2VhYmxlKCJvbmx5IGFsbCBhbmQgKG9yaWVudGF0aW9uKSIpCisgICAgcXVlcnlfc2hv
dWxkX25vdF9iZV9wYXJzZWFibGUoIihvcmllbnRhdGlvbjogJ2xhbmRzY2FwZScpIik7CisKKyAg
ICB2YXIgZmVhdHVyZXMgPSBbICJ3aWR0aCIsICJoZWlnaHQiLCAiZGV2aWNlLXdpZHRoIiwgImRl
dmljZS1oZWlnaHQiIF07CisgICAgdmFyIGZlYXR1cmU7CisgICAgdmFyIGk7CisgICAgZm9yIChp
IGluIGZlYXR1cmVzKSB7CisgICAgICBmZWF0dXJlID0gZmVhdHVyZXNbaV07CisgICAgICBleHBy
ZXNzaW9uX3Nob3VsZF9iZV9wYXJzZWFibGUoZmVhdHVyZSk7CisgICAgICBleHByZXNzaW9uX3No
b3VsZF9iZV9wYXJzZWFibGUoZmVhdHVyZSArICI6IDAiKTsKKyAgICAgIGV4cHJlc3Npb25fc2hv
dWxkX2JlX3BhcnNlYWJsZShmZWF0dXJlICsgIjogMHB4Iik7CisgICAgICBleHByZXNzaW9uX3No
b3VsZF9iZV9wYXJzZWFibGUoZmVhdHVyZSArICI6IDBlbSIpOworICAgICAgZXhwcmVzc2lvbl9z
aG91bGRfYmVfcGFyc2VhYmxlKGZlYXR1cmUgKyAiOiAtMCIpOworICAgICAgZXhwcmVzc2lvbl9z
aG91bGRfYmVfcGFyc2VhYmxlKCJtaW4tIiArIGZlYXR1cmUgKyAiOiAtMCIpOworICAgICAgZXhw
cmVzc2lvbl9zaG91bGRfYmVfcGFyc2VhYmxlKCJtYXgtIiArIGZlYXR1cmUgKyAiOiAtMCIpOwor
ICAgICAgZXhwcmVzc2lvbl9zaG91bGRfYmVfcGFyc2VhYmxlKGZlYXR1cmUgKyAiOiAtMGNtIik7
CisgICAgICBleHByZXNzaW9uX3Nob3VsZF9iZV9wYXJzZWFibGUoZmVhdHVyZSArICI6IDFweCIp
OworICAgICAgZXhwcmVzc2lvbl9zaG91bGRfYmVfcGFyc2VhYmxlKGZlYXR1cmUgKyAiOiAwLjAw
MW1tIik7CisgICAgICBleHByZXNzaW9uX3Nob3VsZF9iZV9wYXJzZWFibGUoZmVhdHVyZSArICI6
IDEwMDAwMHB4Iik7CisgICAgICBleHByZXNzaW9uX3Nob3VsZF9ub3RfYmVfcGFyc2VhYmxlKGZl
YXR1cmUgKyAiOiAtMXB4Iik7CisgICAgICBleHByZXNzaW9uX3Nob3VsZF9ub3RfYmVfcGFyc2Vh
YmxlKGZlYXR1cmUgKyAiOiAnMjBweCciKTsKKyAgICAgIGV4cHJlc3Npb25fc2hvdWxkX25vdF9i
ZV9wYXJzZWFibGUoIm1pbi0iICsgZmVhdHVyZSArICI6IC0xcHgiKTsKKyAgICAgIGV4cHJlc3Np
b25fc2hvdWxkX25vdF9iZV9wYXJzZWFibGUoIm1heC0iICsgZmVhdHVyZSArICI6IC0xcHgiKTsK
KyAgICAgIGV4cHJlc3Npb25fc2hvdWxkX25vdF9iZV9wYXJzZWFibGUoIm1pbi0iICsgZmVhdHVy
ZSArICI6ICcxMHB4JyIpOworICAgICAgZXhwcmVzc2lvbl9zaG91bGRfbm90X2JlX3BhcnNlYWJs
ZSgibWF4LSIgKyBmZWF0dXJlICsgIjogJzEwcHgnIik7CisgICAgICBleHByZXNzaW9uX3Nob3Vs
ZF9ub3RfYmVfcGFyc2VhYmxlKGZlYXR1cmUgKyAiOiAtMC4wMDAwMW1tIik7CisgICAgICBleHBy
ZXNzaW9uX3Nob3VsZF9ub3RfYmVfcGFyc2VhYmxlKGZlYXR1cmUgKyAiOiAtMTAwMDAwZW0iKTsK
KyAgICAgIGV4cHJlc3Npb25fc2hvdWxkX25vdF9iZV9wYXJzZWFibGUoIm1pbi0iICsgZmVhdHVy
ZSk7CisgICAgICBleHByZXNzaW9uX3Nob3VsZF9ub3RfYmVfcGFyc2VhYmxlKCJtYXgtIiArIGZl
YXR1cmUpOworICAgIH0KKworICAgIHZhciBjb250ZW50X2RpdiA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJjb250ZW50Iik7CisgICAgY29udGVudF9kaXYuc3R5bGUuZm9udCA9ICJtZWRpdW0g
c2Fucy1zZXJpZiI7CisgICAgdmFyIGVtX3NpemUgPQorICAgICAgZ2V0Q29tcHV0ZWRTdHlsZShj
b250ZW50X2RpdiwgIiIpLmZvbnRTaXplLm1hdGNoKC9eKFxkKylweCQvKVsxXTsKKworICAgIC8v
IGluIHRoaXMgdGVzdCwgYXNzdW1lIHRoZSBjb21tb24gdW5kZXJseWluZyBpbXBsZW1lbnRhdGlv
biBpcyBjb3JyZWN0CisgICAgdmFyIHdpZHRoX3ZhbCA9IDExNzsgLy8gcGljayB0d28gbm90LXRv
by1yb3VuZCBudW1iZXJzCisgICAgdmFyIGhlaWdodF92YWwgPSA3NjsKKyAgICBpZnJhbWVfc3R5
bGUud2lkdGggPSB3aWR0aF92YWwgKyAicHgiOworICAgIGlmcmFtZV9zdHlsZS5oZWlnaHQgPSBo
ZWlnaHRfdmFsICsgInB4IjsKKyAgICB2YXIgZGV2aWNlX3dpZHRoID0gd2luZG93LnNjcmVlbi53
aWR0aDsKKyAgICB2YXIgZGV2aWNlX2hlaWdodCA9IHdpbmRvdy5zY3JlZW4uaGVpZ2h0OworICAg
IGZlYXR1cmVzID0geyAid2lkdGgiOiB3aWR0aF92YWwsCisgICAgICAgICAgICAgICAgICAgICAg
ImhlaWdodCI6IGhlaWdodF92YWwsCisgICAgICAgICAgICAgICAgICAgICAgImRldmljZS13aWR0
aCI6IGRldmljZV93aWR0aCwKKyAgICAgICAgICAgICAgICAgICAgICAiZGV2aWNlLWhlaWdodCI6
IGRldmljZV9oZWlnaHQgfTsKKyAgICBmb3IgKGZlYXR1cmUgaW4gZmVhdHVyZXMpIHsKKyAgICAg
IHZhciB2YWx1ZSA9IGZlYXR1cmVzW2ZlYXR1cmVdOworICAgICAgc2hvdWxkX2FwcGx5KCJhbGwg
YW5kICgiICsgZmVhdHVyZSArICI6ICIgKyB2YWx1ZSArICJweCkiLCAiYWxsIGFuZCAoIiArIGZl
YXR1cmUgKyAiOiAiICsgZmVhdHVyZSArICIgcHgpIik7CisgICAgICBzaG91bGRfbm90X2FwcGx5
KCJhbGwgYW5kICgiICsgZmVhdHVyZSArICI6ICIgKyAodmFsdWUgKyAxKSArICJweCkiLCAiYWxs
IGFuZCAoIiArIGZlYXR1cmUgKyAiOiAiICsgZmVhdHVyZSArICIgKzEgcHgpIik7CisgICAgICBz
aG91bGRfbm90X2FwcGx5KCJhbGwgYW5kICgiICsgZmVhdHVyZSArICI6ICIgKyAodmFsdWUgLSAx
KSArICJweCkiLCAiYWxsIGFuZCAoIiArIGZlYXR1cmUgKyAiOiAiICsgZmVhdHVyZSArICIgLTEg
cHgpIik7CisgICAgICBzaG91bGRfYXBwbHkoImFsbCBhbmQgKG1pbi0iICsgZmVhdHVyZSArICI6
ICIgKyB2YWx1ZSArICJweCkiLCAiYWxsIGFuZCAobWluLSIgKyBmZWF0dXJlICsgIjogIiArIGZl
YXR1cmUgKyAiIHB4KSIpOworICAgICAgc2hvdWxkX25vdF9hcHBseSgiYWxsIGFuZCAobWluLSIg
KyBmZWF0dXJlICsgIjogIiArICh2YWx1ZSArIDEpICsgInB4KSIsICJhbGwgYW5kIChtaW4tIiAr
IGZlYXR1cmUgKyAiOiAiICsgZmVhdHVyZSArICIgKzEgcHgpIik7CisgICAgICBzaG91bGRfYXBw
bHkoImFsbCBhbmQgKG1pbi0iICsgZmVhdHVyZSArICI6ICIgKyAodmFsdWUgLSAxKSArICJweCki
LCAiYWxsIGFuZCAobWluLSIgKyBmZWF0dXJlICsgIjogIiArIGZlYXR1cmUgKyAiIC0xIHB4KSIp
OworICAgICAgc2hvdWxkX2FwcGx5KCJhbGwgYW5kIChtYXgtIiArIGZlYXR1cmUgKyAiOiAiICsg
dmFsdWUgKyAicHgpIiwgImFsbCBhbmQgKG1heC0iICsgZmVhdHVyZSArICI6ICIgKyBmZWF0dXJl
ICsgIiBweCkiKTsKKyAgICAgIHNob3VsZF9hcHBseSgiYWxsIGFuZCAobWF4LSIgKyBmZWF0dXJl
ICsgIjogIiArICh2YWx1ZSArIDEpICsgInB4KSIsICJhbGwgYW5kIChtYXgtIiArIGZlYXR1cmUg
KyAiOiAiICsgZmVhdHVyZSArICIgKzEgcHgpIik7CisgICAgICBzaG91bGRfbm90X2FwcGx5KCJh
bGwgYW5kIChtYXgtIiArIGZlYXR1cmUgKyAiOiAiICsgKHZhbHVlIC0gMSkgKyAicHgpIiwgImFs
bCBhbmQgKG1heC0iICsgZmVhdHVyZSArICI6ICIgKyBmZWF0dXJlICsgIiArMSBweCkiKTsKKyAg
ICAgIHNob3VsZF9ub3RfYXBwbHkoImFsbCBhbmQgKG1pbi0iICsgZmVhdHVyZSArICI6ICIgKwor
ICAgICAgICAgICAgICAgICAgICAgICAoTWF0aC5jZWlsKHZhbHVlL2VtX3NpemUpICsgMSkgKyAi
ZW0pIiwgImFsbCBhbmQgKG1pbi0iICsgZmVhdHVyZSArICI6ICIgKyBmZWF0dXJlICsgIiArMSBl
bSkiKTsKKyAgICAgIHNob3VsZF9hcHBseSgiYWxsIGFuZCAobWluLSIgKyBmZWF0dXJlICsgIjog
IiArCisgICAgICAgICAgICAgICAgICAgKE1hdGguZmxvb3IodmFsdWUvZW1fc2l6ZSkgLSAxKSAr
ICJlbSkiLCAiYWxsIGFuZCAobWluLSIgKyBmZWF0dXJlICsgIjogIiArIGZlYXR1cmUgKyAiIC0x
IGVtKSIpOworICAgICAgc2hvdWxkX2FwcGx5KCJhbGwgYW5kIChtYXgtIiArIGZlYXR1cmUgKyAi
OiAiICsKKyAgICAgICAgICAgICAgICAgICAoTWF0aC5jZWlsKHZhbHVlL2VtX3NpemUpICsgMSkg
KyAiZW0pIiwgImFsbCBhbmQgKG1heC0iICsgZmVhdHVyZSArICI6ICIgKyBmZWF0dXJlICsgIiAr
MSBlbSkiKTsKKyAgICAgIHNob3VsZF9ub3RfYXBwbHkoImFsbCBhbmQgKG1heC0iICsgZmVhdHVy
ZSArICI6ICIgKworICAgICAgICAgICAgICAgICAgICAgICAoTWF0aC5mbG9vcih2YWx1ZS9lbV9z
aXplKSAtIDEpICsgImVtKSIsICJhbGwgYW5kIChtYXgtIiArIGZlYXR1cmUgKyAiOiAiICsgZmVh
dHVyZSArICIgLTEgZW0pIik7CisgICAgfQorCisgICAgaWZyYW1lX3N0eWxlLndpZHRoID0gIjAi
OworICAgIHNob3VsZF9hcHBseSgiYWxsIGFuZCAoaGVpZ2h0KSIpOworICAgIHNob3VsZF9ub3Rf
YXBwbHkoImFsbCBhbmQgKHdpZHRoKSIpOworICAgIGlmcmFtZV9zdHlsZS5oZWlnaHQgPSAiMCI7
CisgICAgc2hvdWxkX25vdF9hcHBseSgiYWxsIGFuZCAoaGVpZ2h0KSIpOworICAgIHNob3VsZF9u
b3RfYXBwbHkoImFsbCBhbmQgKHdpZHRoKSIpOworICAgIHNob3VsZF9hcHBseSgiYWxsIGFuZCAo
ZGV2aWNlLWhlaWdodCkiKTsKKyAgICBzaG91bGRfYXBwbHkoImFsbCBhbmQgKGRldmljZS13aWR0
aCkiKTsKKyAgICBpZnJhbWVfc3R5bGUud2lkdGggPSB3aWR0aF92YWwgKyAicHgiOworICAgIHNo
b3VsZF9ub3RfYXBwbHkoImFsbCBhbmQgKGhlaWdodCkiKTsKKyAgICBzaG91bGRfYXBwbHkoImFs
bCBhbmQgKHdpZHRoKSIpOworICAgIGlmcmFtZV9zdHlsZS5oZWlnaHQgPSBoZWlnaHRfdmFsICsg
InB4IjsKKyAgICBzaG91bGRfYXBwbHkoImFsbCBhbmQgKGhlaWdodCkiKTsKKyAgICBzaG91bGRf
YXBwbHkoImFsbCBhbmQgKHdpZHRoKSIpOworCisgICAgLy8gcmF0aW8gdGhhdCByZWR1Y2VzIHRv
IDU5LzQwCisgICAgaWZyYW1lX3N0eWxlLndpZHRoID0gIjIzNnB4IjsKKyAgICBpZnJhbWVfc3R5
bGUuaGVpZ2h0ID0gIjE2MHB4IjsKKyAgICBleHByZXNzaW9uX3Nob3VsZF9iZV9wYXJzZWFibGUo
Im9yaWVudGF0aW9uIik7CisgICAgZXhwcmVzc2lvbl9zaG91bGRfYmVfcGFyc2VhYmxlKCJvcmll
bnRhdGlvbjogcG9ydHJhaXQiKTsKKyAgICBleHByZXNzaW9uX3Nob3VsZF9iZV9wYXJzZWFibGUo
Im9yaWVudGF0aW9uOiBsYW5kc2NhcGUiKTsKKyAgICBleHByZXNzaW9uX3Nob3VsZF9ub3RfYmVf
cGFyc2VhYmxlKCJtaW4tb3JpZW50YXRpb24iKTsKKyAgICBleHByZXNzaW9uX3Nob3VsZF9ub3Rf
YmVfcGFyc2VhYmxlKCJtaW4tb3JpZW50YXRpb246IHBvcnRyYWl0Iik7CisgICAgZXhwcmVzc2lv
bl9zaG91bGRfbm90X2JlX3BhcnNlYWJsZSgibWluLW9yaWVudGF0aW9uOiBsYW5kc2NhcGUiKTsK
KyAgICBleHByZXNzaW9uX3Nob3VsZF9ub3RfYmVfcGFyc2VhYmxlKCJtYXgtb3JpZW50YXRpb24i
KTsKKyAgICBleHByZXNzaW9uX3Nob3VsZF9ub3RfYmVfcGFyc2VhYmxlKCJtYXgtb3JpZW50YXRp
b246IHBvcnRyYWl0Iik7CisgICAgZXhwcmVzc2lvbl9zaG91bGRfbm90X2JlX3BhcnNlYWJsZSgi
bWF4LW9yaWVudGF0aW9uOiBsYW5kc2NhcGUiKTsKKyAgICBzaG91bGRfYXBwbHkoIihvcmllbnRh
dGlvbikiKTsKKyAgICBzaG91bGRfYXBwbHkoIihvcmllbnRhdGlvbjogbGFuZHNjYXBlKSIpOwor
ICAgIHNob3VsZF9ub3RfYXBwbHkoIihvcmllbnRhdGlvbjogcG9ydHJhaXQpIik7CisgICAgc2hv
dWxkX2FwcGx5KCJub3QgYWxsIGFuZCAob3JpZW50YXRpb246IHBvcnRyYWl0KSIpOworICAgIC8v
IHJhdGlvIHRoYXQgcmVkdWNlcyB0byA1OS84MAorICAgIGlmcmFtZV9zdHlsZS5oZWlnaHQgPSAi
MzIwcHgiOworICAgIHNob3VsZF9hcHBseSgiKG9yaWVudGF0aW9uKSIpOworICAgIHNob3VsZF9u
b3RfYXBwbHkoIihvcmllbnRhdGlvbjogbGFuZHNjYXBlKSIpOworICAgIHNob3VsZF9hcHBseSgi
bm90IGFsbCBhbmQgKG9yaWVudGF0aW9uOiBsYW5kc2NhcGUpIik7CisgICAgc2hvdWxkX2FwcGx5
KCIob3JpZW50YXRpb246IHBvcnRyYWl0KSIpOworCisgICAgc2hvdWxkX2FwcGx5KCIoYXNwZWN0
LXJhdGlvOiA1OS84MCkiKTsKKyAgICBzaG91bGRfbm90X2FwcGx5KCIoYXNwZWN0LXJhdGlvOiA1
OC84MCkiKTsKKyAgICBzaG91bGRfbm90X2FwcGx5KCIoYXNwZWN0LXJhdGlvOiA1OS84MSkiKTsK
KyAgICBzaG91bGRfbm90X2FwcGx5KCIoYXNwZWN0LXJhdGlvOiA2MC84MCkiKTsKKyAgICBzaG91
bGRfbm90X2FwcGx5KCIoYXNwZWN0LXJhdGlvOiA1OS83OSkiKTsKKyAgICBzaG91bGRfYXBwbHko
Iihhc3BlY3QtcmF0aW86IDE3Ny8yNDApIik7CisgICAgc2hvdWxkX2FwcGx5KCIoYXNwZWN0LXJh
dGlvOiA0MTMvNTYwKSIpOworICAgIHNob3VsZF9hcHBseSgiKGFzcGVjdC1yYXRpbzogNTkwMC84
MDAwKSIpOworICAgIHNob3VsZF9ub3RfYXBwbHkoIihhc3BlY3QtcmF0aW86IDU5MDEvODAwMCki
KTsKKyAgICBzaG91bGRfbm90X2FwcGx5KCIoYXNwZWN0LXJhdGlvOiA1ODk5LzgwMDApIik7Cisg
ICAgc2hvdWxkX25vdF9hcHBseSgiKGFzcGVjdC1yYXRpbzogNTkwMC84MDAxKSIpOworICAgIHNo
b3VsZF9ub3RfYXBwbHkoIihhc3BlY3QtcmF0aW86IDU5MDAvNzk5OSkiKTsKKyAgICBzaG91bGRf
YXBwbHkoIihhc3BlY3QtcmF0aW8pIik7CisKKyAgICBzaG91bGRfYXBwbHkoIihtaW4tYXNwZWN0
LXJhdGlvOiA1OS84MCkiKTsKKyAgICBzaG91bGRfYXBwbHkoIihtaW4tYXNwZWN0LXJhdGlvOiA1
OC84MCkiKTsKKyAgICBzaG91bGRfYXBwbHkoIihtaW4tYXNwZWN0LXJhdGlvOiA1OS84MSkiKTsK
KyAgICBzaG91bGRfbm90X2FwcGx5KCIobWluLWFzcGVjdC1yYXRpbzogNjAvODApIik7CisgICAg
c2hvdWxkX25vdF9hcHBseSgiKG1pbi1hc3BlY3QtcmF0aW86IDU5Lzc5KSIpOworICAgIGV4cHJl
c3Npb25fc2hvdWxkX25vdF9iZV9wYXJzZWFibGUoIm1pbi1hc3BlY3QtcmF0aW8iKTsKKworICAg
IHNob3VsZF9hcHBseSgiKG1heC1hc3BlY3QtcmF0aW86IDU5LzgwKSIpOworICAgIHNob3VsZF9u
b3RfYXBwbHkoIihtYXgtYXNwZWN0LXJhdGlvOiA1OC84MCkiKTsKKyAgICBzaG91bGRfbm90X2Fw
cGx5KCIobWF4LWFzcGVjdC1yYXRpbzogNTkvODEpIik7CisgICAgc2hvdWxkX2FwcGx5KCIobWF4
LWFzcGVjdC1yYXRpbzogNjAvODApIik7CisgICAgc2hvdWxkX2FwcGx5KCIobWF4LWFzcGVjdC1y
YXRpbzogNTkvNzkpIik7CisgICAgZXhwcmVzc2lvbl9zaG91bGRfbm90X2JlX3BhcnNlYWJsZSgi
bWF4LWFzcGVjdC1yYXRpbyIpOworCisgICAgdmFyIHJlYWxfZGFyID0gZGV2aWNlX3dpZHRoICsg
Ii8iICsgZGV2aWNlX2hlaWdodDsKKyAgICB2YXIgaGlnaF9kYXJfMSA9IChkZXZpY2Vfd2lkdGgg
KyAxKSArICIvIiArIGRldmljZV9oZWlnaHQ7CisgICAgdmFyIGhpZ2hfZGFyXzIgPSBkZXZpY2Vf
d2lkdGggKyAiLyIgKyAoZGV2aWNlX2hlaWdodCAtIDEpOworICAgIHZhciBsb3dfZGFyXzEgPSAo
ZGV2aWNlX3dpZHRoIC0gMSkgKyAiLyIgKyBkZXZpY2VfaGVpZ2h0OworICAgIHZhciBsb3dfZGFy
XzIgPSBkZXZpY2Vfd2lkdGggKyAiLyIgKyAoZGV2aWNlX2hlaWdodCArIDEpOworICAgIHNob3Vs
ZF9hcHBseSgiKGRldmljZS1hc3BlY3QtcmF0aW86ICIgKyByZWFsX2RhciArICIpIiwgIihkZXZp
Y2UtYXNwZWN0LXJhdGlvOiBkZXZpY2Utd2lkdGggLyBkZXZpY2UtaGVpZ2h0KSIpOworICAgIHNo
b3VsZF9hcHBseSgibm90IGFsbCBhbmQgKGRldmljZS1hc3BlY3QtcmF0aW86ICIgKyBoaWdoX2Rh
cl8xICsgIikiLCAibm90IGFsbCBhbmQgKGRldmljZS1hc3BlY3QtcmF0aW86IGRldmljZS13aWR0
aCArIDEgLyBkZXZpY2UtaGVpZ2h0KSIpOworICAgIHNob3VsZF9ub3RfYXBwbHkoImFsbCBhbmQg
KGRldmljZS1hc3BlY3QtcmF0aW86ICIgKyBoaWdoX2Rhcl8yICsgIikiLCAiYWxsIGFuZCAoZGV2
aWNlLWFzcGVjdC1yYXRpbzogZGV2aWNlLXdpZHRoIC8gZGV2aWNlLWhlaWdodCAtIDEpIik7Cisg
ICAgc2hvdWxkX25vdF9hcHBseSgiYWxsIGFuZCAoZGV2aWNlLWFzcGVjdC1yYXRpbzogIiArIGxv
d19kYXJfMSArICIpIiwgImFsbCBhbmQgKGRldmljZS1hc3BlY3QtcmF0aW86IGRldmljZS13aWR0
aCAtIDEgLyBkZXZpY2UtaGVpZ2h0KSIpOworICAgIHNob3VsZF9hcHBseSgibm90IGFsbCBhbmQg
KGRldmljZS1hc3BlY3QtcmF0aW86ICIgKyBsb3dfZGFyXzIgKyAiKSIsICJub3QgYWxsIGFuZCAo
ZGV2aWNlLWFzcGVjdC1yYXRpbzogZGV2aWNlLXdpZHRoIC8gZGV2aWNlLWhlaWdodCArIDEpIik7
CisgICAgc2hvdWxkX2FwcGx5KCIoZGV2aWNlLWFzcGVjdC1yYXRpbykiKTsKKworICAgIHNob3Vs
ZF9hcHBseSgiKG1pbi1kZXZpY2UtYXNwZWN0LXJhdGlvOiAiICsgcmVhbF9kYXIgKyAiKSIsICIo
bWluLWRldmljZS1hc3BlY3QtcmF0aW86IGRldmljZS13aWR0aCAvIGRldmljZS1oZWlnaHQpIik7
CisgICAgc2hvdWxkX25vdF9hcHBseSgiYWxsIGFuZCAobWluLWRldmljZS1hc3BlY3QtcmF0aW86
ICIgKyBoaWdoX2Rhcl8xICsgIikiLCAibm90IGFsbCBhbmQgKGRldmljZS1hc3BlY3QtcmF0aW86
IGRldmljZS13aWR0aCArIDEgLyBkZXZpY2UtaGVpZ2h0KSIpOworICAgIHNob3VsZF9hcHBseSgi
bm90IGFsbCBhbmQgKG1pbi1kZXZpY2UtYXNwZWN0LXJhdGlvOiAiICsgaGlnaF9kYXJfMiArICIp
IiwgIm5vdCBhbGwgYW5kIChtaW4tZGV2aWNlLWFzcGVjdC1yYXRpbzogZGV2aWNlLXdpZHRoIC8g
ZGV2aWNlLWhlaWdodCAtIDEpIik7CisgICAgc2hvdWxkX25vdF9hcHBseSgibm90IGFsbCBhbmQg
KG1pbi1kZXZpY2UtYXNwZWN0LXJhdGlvOiAiICsgbG93X2Rhcl8xICsgIikiLCAibm90IGFsbCBh
bmQgKG1pbi1kZXZpY2UtYXNwZWN0LXJhdGlvOiBkZXZpY2Utd2lkdGggLSAxIC8gZGV2aWNlLWhl
aWdodCkiICk7CisgICAgc2hvdWxkX2FwcGx5KCJhbGwgYW5kIChtaW4tZGV2aWNlLWFzcGVjdC1y
YXRpbzogIiArIGxvd19kYXJfMiArICIpIiwgImFsbCBhbmQgKG1pbi1kZXZpY2UtYXNwZWN0LXJh
dGlvOiBkZXZpY2Utd2lkdGggLyBkZXZpY2UtaGVpZ2h0ICsgMSkiKTsKKyAgICBleHByZXNzaW9u
X3Nob3VsZF9ub3RfYmVfcGFyc2VhYmxlKCJtaW4tZGV2aWNlLWFzcGVjdC1yYXRpbyIpOworCisg
ICAgc2hvdWxkX2FwcGx5KCJhbGwgYW5kIChtYXgtZGV2aWNlLWFzcGVjdC1yYXRpbzogIiArIHJl
YWxfZGFyICsgIikiLCAiYWxsIGFuZCAobWF4LWRldmljZS1hc3BlY3QtcmF0aW86IGRldmljZS13
aWR0aCAvIGRldmljZS1oZWlnaHQpIik7CisgICAgc2hvdWxkX2FwcGx5KCIobWF4LWRldmljZS1h
c3BlY3QtcmF0aW86ICIgKyBoaWdoX2Rhcl8xICsgIikiLCAiKG1heC1kZXZpY2UtYXNwZWN0LXJh
dGlvOiBkZXZpY2Utd2lkdGggKyAxIC8gZGV2aWNlLWhlaWdodCkiKTsKKyAgICBzaG91bGRfYXBw
bHkoIihtYXgtZGV2aWNlLWFzcGVjdC1yYXRpbzogIiArIGhpZ2hfZGFyXzIgKyAiKSIsICIobWF4
LWRldmljZS1hc3BlY3QtcmF0aW86IGRldmljZS13aWR0aCAvIGRldmljZS1oZWlnaHQgLSAxIik7
CisgICAgc2hvdWxkX25vdF9hcHBseSgiYWxsIGFuZCAobWF4LWRldmljZS1hc3BlY3QtcmF0aW86
ICIgKyBsb3dfZGFyXzEgKyAiKSIsICJhbGwgYW5kIChtYXgtZGV2aWNlLWFzcGVjdC1yYXRpbzog
ZGV2aWNlLXdpZHRoIC0gMSAvIGRldmljZS1oZWlnaHQpIik7CisgICAgc2hvdWxkX2FwcGx5KCJu
b3QgYWxsIGFuZCAobWF4LWRldmljZS1hc3BlY3QtcmF0aW86ICIgKyBsb3dfZGFyXzIgKyAiKSIs
ICJub3QgYWxsIGFuZCAobWF4LWRldmljZS1hc3BlY3QtcmF0aW86IGRldmljZS13aWR0aCAvIGRl
dmljZS1oZWlnaHQgKyAxKSIpOworICAgIGV4cHJlc3Npb25fc2hvdWxkX25vdF9iZV9wYXJzZWFi
bGUoIm1heC1kZXZpY2UtYXNwZWN0LXJhdGlvIik7CisKKyAgICBmZWF0dXJlcyA9IFsgIm1heC1h
c3BlY3QtcmF0aW8iLCAiZGV2aWNlLWFzcGVjdC1yYXRpbyIgXTsKKyAgICBmb3IgKGkgaW4gZmVh
dHVyZXMpIHsKKyAgICAgIGZlYXR1cmUgPSBmZWF0dXJlc1tpXTsKKyAgICAgIGV4cHJlc3Npb25f
c2hvdWxkX2JlX3BhcnNlYWJsZShmZWF0dXJlICsgIjogMS8xIik7CisgICAgICBleHByZXNzaW9u
X3Nob3VsZF9iZV9wYXJzZWFibGUoZmVhdHVyZSArICI6IDEgIC8xIik7CisgICAgICBleHByZXNz
aW9uX3Nob3VsZF9iZV9wYXJzZWFibGUoZmVhdHVyZSArICI6IDEgIC8gXHRcbjEiKTsKKyAgICAg
IGV4cHJlc3Npb25fc2hvdWxkX2JlX3BhcnNlYWJsZShmZWF0dXJlICsgIjogMS9ccjEiKTsKKyAg
ICAgIGV4cHJlc3Npb25fc2hvdWxkX25vdF9iZV9wYXJzZWFibGUoZmVhdHVyZSArICI6IDEiKTsK
KyAgICAgIGV4cHJlc3Npb25fc2hvdWxkX25vdF9iZV9wYXJzZWFibGUoZmVhdHVyZSArICI6IDAu
NSIpOworICAgICAgZXhwcmVzc2lvbl9zaG91bGRfbm90X2JlX3BhcnNlYWJsZShmZWF0dXJlICsg
IjogMS4wLzEiKTsKKyAgICAgIGV4cHJlc3Npb25fc2hvdWxkX25vdF9iZV9wYXJzZWFibGUoZmVh
dHVyZSArICI6IDEvMS4wIik7CisgICAgICBleHByZXNzaW9uX3Nob3VsZF9ub3RfYmVfcGFyc2Vh
YmxlKGZlYXR1cmUgKyAiOiAxLjAvMS4wIik7CisgICAgICBleHByZXNzaW9uX3Nob3VsZF9ub3Rf
YmVfcGFyc2VhYmxlKGZlYXR1cmUgKyAiOiAwLzEiKTsKKyAgICAgIGV4cHJlc3Npb25fc2hvdWxk
X25vdF9iZV9wYXJzZWFibGUoZmVhdHVyZSArICI6IDEvMCIpOworICAgICAgZXhwcmVzc2lvbl9z
aG91bGRfbm90X2JlX3BhcnNlYWJsZShmZWF0dXJlICsgIjogMC8wIik7CisgICAgICBleHByZXNz
aW9uX3Nob3VsZF9ub3RfYmVfcGFyc2VhYmxlKGZlYXR1cmUgKyAiOiAtMS8xIik7CisgICAgICBl
eHByZXNzaW9uX3Nob3VsZF9ub3RfYmVfcGFyc2VhYmxlKGZlYXR1cmUgKyAiOiAxLy0xIik7Cisg
ICAgICBleHByZXNzaW9uX3Nob3VsZF9ub3RfYmVfcGFyc2VhYmxlKGZlYXR1cmUgKyAiOiAtMS8t
MSIpOworICAgIH0KKworICAgIHZhciBpc19tb25vY2hyb21lID0gcXVlcnlfYXBwbGllcygiYWxs
IGFuZCAobWluLW1vbm9jaHJvbWU6IDEpIik7CisgICAgdmFyIGlzX2NvbG9yID0gcXVlcnlfYXBw
bGllcygiYWxsIGFuZCAobWluLWNvbG9yOiAxKSIpOworICAgIHZhciBjb2xvclN0cmluZyA9IGlz
X2NvbG9yID8gImNvbG9yIiA6ICJtb25vY2hyb21lIjsKKyAgICB0ZXN0KGZ1bmN0aW9uKCkgewor
ICAgICAgYXNzZXJ0X25vdF9lcXVhbHMoaXNfbW9ub2Nocm9tZSwgaXNfY29sb3IsICJzaG91bGQg
YmUgZWl0aGVyIG1vbm9jaHJvbWUgb3IgY29sb3IiKTsKKyAgICB9LCAibW9ub2Nocm9tZV9hbmRf
Y29sb3IiKTsKKworICAgIGZ1bmN0aW9uIGRlcHRoX3F1ZXJ5KHByZWZpeCwgZGVwdGgpIHsKKyAg
ICAgIHJldHVybiAiYWxsIGFuZCAoIiArIHByZWZpeCArIGNvbG9yU3RyaW5nICsKKyAgICAgICAg
ICAgICAiOiIgKyBkZXB0aCArICIpIjsKKyAgICB9CisKKyAgICB2YXIgZGVwdGggPSAwOworICAg
IGRvIHsKKyAgICAgIGlmIChkZXB0aCA+IDUwKSB7CisgICAgICAgIGJyZWFrOworICAgICAgfQor
ICAgIH0gd2hpbGUgKHF1ZXJ5X2FwcGxpZXMoZGVwdGhfcXVlcnkoIm1pbi0iLCArK2RlcHRoKSkp
OworICAgIHRlc3QoZnVuY3Rpb24oKSB7CisgICAgICBhc3NlcnRfZmFsc2UoNTAgPCBkZXB0aCk7
CisgICAgfSwgImZpbmRfZGVwdGgiKTsKKyAgICAtLWRlcHRoOworCisgICAgc2hvdWxkX2FwcGx5
KGRlcHRoX3F1ZXJ5KCIiLCBkZXB0aCksICJhbGwgYW5kICgiICsgY29sb3JTdHJpbmcgKyAiOiBk
ZXB0aCkiKTsKKyAgICBzaG91bGRfbm90X2FwcGx5KGRlcHRoX3F1ZXJ5KCIiLCBkZXB0aCAtIDEp
LCAiYWxsIGFuZCAoIiArIGNvbG9yU3RyaW5nICsgIjogZGVwdGggLSAxKSIpOworICAgIHNob3Vs
ZF9ub3RfYXBwbHkoZGVwdGhfcXVlcnkoIiIsIGRlcHRoICsgMSksICJhbGwgYW5kICgiICsgY29s
b3JTdHJpbmcgKyAiOiBkZXB0aCArIDEpIik7CisgICAgc2hvdWxkX2FwcGx5KGRlcHRoX3F1ZXJ5
KCJtYXgtIiwgZGVwdGgpLCAiYWxsIGFuZCAobWF4LSIgKyBjb2xvclN0cmluZyArICI6IGRlcHRo
KSIpOworICAgIHNob3VsZF9ub3RfYXBwbHkoZGVwdGhfcXVlcnkoIm1heC0iLCBkZXB0aCAtIDEp
LCAiYWxsIGFuZCAobWF4LSIgKyBjb2xvclN0cmluZyArICI6IGRlcHRoIC0gMSkiKTsKKyAgICBz
aG91bGRfYXBwbHkoZGVwdGhfcXVlcnkoIm1heC0iLCBkZXB0aCArIDEpLCAiYWxsIGFuZCAobWF4
LSIgKyBjb2xvclN0cmluZyArICI6IGRlcHRoICsgMSkiKTsKKworICAgIChpc19jb2xvciA/IHNo
b3VsZF9hcHBseSA6IHNob3VsZF9ub3RfYXBwbHkpKCJhbGwgYW5kIChjb2xvcikiKTsKKyAgICBl
eHByZXNzaW9uX3Nob3VsZF9ub3RfYmVfcGFyc2VhYmxlKCJtYXgtY29sb3IiKTsKKyAgICBleHBy
ZXNzaW9uX3Nob3VsZF9ub3RfYmVfcGFyc2VhYmxlKCJtaW4tY29sb3IiKTsKKyAgICAoaXNfY29s
b3IgPyBzaG91bGRfbm90X2FwcGx5IDogc2hvdWxkX2FwcGx5KSgiYWxsIGFuZCAobW9ub2Nocm9t
ZSkiKTsKKyAgICBleHByZXNzaW9uX3Nob3VsZF9ub3RfYmVfcGFyc2VhYmxlKCJtYXgtbW9ub2No
cm9tZSIpOworICAgIGV4cHJlc3Npb25fc2hvdWxkX25vdF9iZV9wYXJzZWFibGUoIm1pbi1tb25v
Y2hyb21lIik7CisgICAgKGlzX2NvbG9yID8gc2hvdWxkX2FwcGx5IDogc2hvdWxkX25vdF9hcHBs
eSkoIm5vdCBhbGwgYW5kIChtb25vY2hyb21lKSIpOworICAgIChpc19jb2xvciA/IHNob3VsZF9u
b3RfYXBwbHkgOiBzaG91bGRfYXBwbHkpKCJub3QgYWxsIGFuZCAoY29sb3IpIik7CisgICAgKGlz
X2NvbG9yID8gc2hvdWxkX2FwcGx5IDogc2hvdWxkX25vdF9hcHBseSkoIm9ubHkgYWxsIGFuZCAo
Y29sb3IpIik7CisgICAgKGlzX2NvbG9yID8gc2hvdWxkX25vdF9hcHBseSA6IHNob3VsZF9hcHBs
eSkoIm9ubHkgYWxsIGFuZCAobW9ub2Nocm9tZSkiKTsKKworICAgIGZlYXR1cmVzID0gWyAiY29s
b3IiLCAibWluLW1vbm9jaHJvbWUiIF07CisgICAgZm9yIChpIGluIGZlYXR1cmVzKSB7CisgICAg
ICBmZWF0dXJlID0gZmVhdHVyZXNbaV07CisgICAgICBleHByZXNzaW9uX3Nob3VsZF9iZV9wYXJz
ZWFibGUoZmVhdHVyZSArICI6IDEiKTsKKyAgICAgIGV4cHJlc3Npb25fc2hvdWxkX2JlX3BhcnNl
YWJsZShmZWF0dXJlICsgIjogMzI3Iik7CisgICAgICBleHByZXNzaW9uX3Nob3VsZF9iZV9wYXJz
ZWFibGUoZmVhdHVyZSArICI6IDAiKTsKKyAgICAgIGV4cHJlc3Npb25fc2hvdWxkX25vdF9iZV9w
YXJzZWFibGUoZmVhdHVyZSArICI6IDEuMCIpOworICAgICAgZXhwcmVzc2lvbl9zaG91bGRfbm90
X2JlX3BhcnNlYWJsZShmZWF0dXJlICsgIjogLTEiKTsKKyAgICAgIGV4cHJlc3Npb25fc2hvdWxk
X25vdF9iZV9wYXJzZWFibGUoZmVhdHVyZSArICI6IDEvMSIpOworICAgIH0KKworICAgIGV4cHJl
c3Npb25fc2hvdWxkX2JlX3BhcnNlYWJsZSgiZ3JpZCIpOworICAgIGV4cHJlc3Npb25fc2hvdWxk
X2JlX3BhcnNlYWJsZSgiZ3JpZDogMCIpOworICAgIGV4cHJlc3Npb25fc2hvdWxkX2JlX3BhcnNl
YWJsZSgiZ3JpZDogMSIpOworICAgIGV4cHJlc3Npb25fc2hvdWxkX2JlX3BhcnNlYWJsZSgiZ3Jp
ZDogMSIpOworICAgIGV4cHJlc3Npb25fc2hvdWxkX25vdF9iZV9wYXJzZWFibGUoIm1pbi1ncmlk
Iik7CisgICAgZXhwcmVzc2lvbl9zaG91bGRfbm90X2JlX3BhcnNlYWJsZSgibWluLWdyaWQ6MCIp
OworICAgIGV4cHJlc3Npb25fc2hvdWxkX25vdF9iZV9wYXJzZWFibGUoIm1heC1ncmlkOiAxIik7
CisgICAgZXhwcmVzc2lvbl9zaG91bGRfbm90X2JlX3BhcnNlYWJsZSgiZ3JpZDogMiIpOworICAg
IGV4cHJlc3Npb25fc2hvdWxkX25vdF9iZV9wYXJzZWFibGUoImdyaWQ6IC0xIik7CisKKyAgICAv
LyBBc3N1bWUgd2UgZG9uJ3Qgc3VwcG9ydCBncmlkIGRldmljZXMKKyAgICBzaG91bGRfbm90X2Fw
cGx5KCIoZ3JpZCkiKTsKKyAgICBzaG91bGRfYXBwbHkoIihncmlkOiAwKSIpOworICAgIHNob3Vs
ZF9ub3RfYXBwbHkoIihncmlkOiAxKSIpOworICAgIHNob3VsZF9ub3RfYXBwbHkoIihncmlkOiAy
KSIpOworICAgIHNob3VsZF9ub3RfYXBwbHkoIihncmlkOiAtMSkiKTsKKworICAgIGRvbmUoKTsK
K30KKworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2E3ZWQ0Ny4u
Mjc3ZDBiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDEyLTEwLTA0ICBBbGV4YW5k
ZXIgU2hhbGFtb3YgIDxhbGV4YW5kZXIuc2hhbGFtb3ZAaW50ZWwuY29tPgorCisgICAgICAgIElu
dmFsaWQgdmFsdWVzIGZvciBtZWRpYSBxdWVyeSBmZWF0dXJlcyBhcmUgbm90IGhhbmRsZWQKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk3MDA2CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgS2VubmV0aCBSb2hkZSBDaHJpc3RpYW5zZW4uCisKKyAgICAgICAg
VGhpcyBwYXRjaCBpbXByb3ZlcyBwYXNzIHJhdGUgb2YgQ1NTMyBNZWRpYSBRdWVyaWVzIHRlc3Qg
c3VpdGUKKyAgICAgICAgYnkgbWFraW5nIG1lZGlhIGV4cHJlc3Npb25zIGNvbXBsaWFudCB3aXRo
IFczQyBzcGVjaWZpY2F0aW9uLiBGZXcKKyAgICAgICAgcGVyZm9ybWFuY2UgaXNzdWVzIGFyZSBm
aXhlZCBieSByZW1vdmFsIG9mIHN0cmluZyBjb21wYXJpc29uIGR1cmluZworICAgICAgICBtZWRp
YSBleHByZXNzaW9uIGV2YWx1YXRpb24uCisKKyAgICAgICAgVGVzdHM6IGZhc3QvbWVkaWEvdzNj
L3Rlc3RfbWVkaWFfcXVlcmllcy5odG1sCisKKyAgICAgICAgKiBjc3MvQ1NTR3JhbW1hci55OiBI
YW5kbGUgbWVkaWEgcXVlcnkgZXhwcmVzc2lvbiB3aXRoIHNwZWNpZmllZCBtZWRpYSByZXN0cmlj
dG9yIGFzIGludmFsaWQuCisgICAgICAgICogY3NzL01lZGlhUXVlcnkuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFRdWVyeTo6c2VyaWFsaXplKTogU2VyaWFsaXplIGludmFsaWQgcXVlcnkg
YWNjb3JkaW5nIHRvIHNwZWNpZmljYXRpb24uCisgICAgICAgICogY3NzL01lZGlhUXVlcnlFdmFs
dWF0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6b3JpZW50YXRpb25NZWRpYUZlYXR1cmVFdmFs
KTogQ29tcGFyZSBDU1NWYWx1ZUlEIGluc3RlYWQgb2Ygc3RyaW5ncy4KKyAgICAgICAgKFdlYkNv
cmU6OnZpZXdfbW9kZU1lZGlhRmVhdHVyZUV2YWwpOiBDb21wYXJlIENTU1ZhbHVlSUQgaW5zdGVh
ZCBvZiBzdHJpbmdzLgorICAgICAgICAoV2ViQ29yZTo6cG9pbnRlck1lZGlhRmVhdHVyZUV2YWwp
OiBDb21wYXJlIENTU1ZhbHVlSUQgaW5zdGVhZCBvZiBzdHJpbmdzLgorICAgICAgICAqIGNzcy9N
ZWRpYVF1ZXJ5RXhwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUXVlcnlFeHA6Ok1lZGlh
UXVlcnlFeHApOiBDaGVjayB0aGF0IG1lZGlhIGZlYXR1cmVzIGluaXRpYWxpemVkIHdpdGggY29y
cmVjdCB2YWx1ZXMuCisKIDIwMTItMTAtMDMgIEFsZXhhbmRlciBTaGFsYW1vdiAgPGFsZXhhbmRl
ci5zaGFsYW1vdkBpbnRlbC5jb20+CiAKICAgICAgICAgQ1NTIFN0eWxlIGlzIG5vdCByZWNhbGN1
bGF0ZWQgd2hlbiBtZWRpYSBhdHRyaWJ1dGUgb2Ygc3R5bGUgZWxlbWVudCBpcyBjaGFuZ2VkCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTR3JhbW1hci55IGIvU291cmNlL1dlYkNv
cmUvY3NzL0NTU0dyYW1tYXIueQppbmRleCAyYjQyNzRhLi40ZTM1MzNlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTR3JhbW1hci55CisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NHcmFtbWFyLnkKQEAgLTEwMCw3ICsxMDAsNyBAQCBzdGF0aWMgaW5saW5lIGludCBjc3N5eWVy
cm9yKHZvaWQqLCBjb25zdCBjaGFyKikKIAogJX0KIAotJWV4cGVjdCA2MworJWV4cGVjdCA2NQog
CiAlbm9uYXNzb2MgTE9XRVNUX1BSRUMKIApAQCAtNTM0LDkgKzUzNCwxNSBAQCBtYXliZV9tZWRp
YV92YWx1ZToKICAgICA7CiAKIG1lZGlhX3F1ZXJ5X2V4cDoKLSAgICAnKCcgbWF5YmVfc3BhY2Ug
bWVkaWFfZmVhdHVyZSBtYXliZV9zcGFjZSBtYXliZV9tZWRpYV92YWx1ZSAnKScgbWF5YmVfc3Bh
Y2UgewotICAgICAgICAkMy5sb3dlcigpOwotICAgICAgICAkJCA9IHBhcnNlci0+Y3JlYXRlRmxv
YXRpbmdNZWRpYVF1ZXJ5RXhwKCQzLCAkNSk7CisgICAgbWF5YmVfbWVkaWFfcmVzdHJpY3RvciBt
YXliZV9zcGFjZSAnKCcgbWF5YmVfc3BhY2UgbWVkaWFfZmVhdHVyZSBtYXliZV9zcGFjZSBtYXli
ZV9tZWRpYV92YWx1ZSAnKScgbWF5YmVfc3BhY2UgeworICAgICAgICAvLyBJZiByZXN0cmljdG9y
IGlzIHNwZWNpZmllZCwgbWVkaWEgcXVlcnkgZXhwcmVzc2lvbiBpcyBpbnZhbGlkLgorICAgICAg
ICAvLyBDcmVhdGUgZW1wdHkgbWVkaWEgcXVlcnkgZXhwcmVzc2lvbiBhbmQgY29udGludWUgcGFy
c2luZyBtZWRpYSBxdWVyeS4KKyAgICAgICAgaWYgKCQxICE9IE1lZGlhUXVlcnk6Ok5vbmUpCisg
ICAgICAgICAgICAkJCA9IHBhcnNlci0+Y3JlYXRlRmxvYXRpbmdNZWRpYVF1ZXJ5RXhwKCIiLCAw
KTsKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAkNS5sb3dlcigpOworICAgICAgICAgICAg
JCQgPSBwYXJzZXItPmNyZWF0ZUZsb2F0aW5nTWVkaWFRdWVyeUV4cCgkNSwgJDcpOworICAgICAg
ICB9CiAgICAgfQogICAgIDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL01lZGlh
UXVlcnkuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL01lZGlhUXVlcnkuY3BwCmluZGV4IGZjNDU1
MWYuLjEwM2EzYzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeS5jcHAKQEAgLTQxLDMyICs0MSwz
NiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBTdHJpbmcgTWVkaWFRdWVyeTo6c2VyaWFsaXplKCkg
Y29uc3QKIHsKICAgICBTdHJpbmdCdWlsZGVyIHJlc3VsdDsKLQotICAgIHN3aXRjaCAobV9yZXN0
cmljdG9yKSB7Ci0gICAgY2FzZSBNZWRpYVF1ZXJ5OjpPbmx5OgotICAgICAgICByZXN1bHQuYXBw
ZW5kKCJvbmx5ICIpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIE1lZGlhUXVlcnk6Ok5vdDoK
LSAgICAgICAgcmVzdWx0LmFwcGVuZCgibm90ICIpOwotICAgICAgICBicmVhazsKLSAgICBjYXNl
IE1lZGlhUXVlcnk6Ok5vbmU6Ci0gICAgICAgIGJyZWFrOwotICAgIH0KLQotICAgIGlmIChtX2V4
cHJlc3Npb25zLT5pc0VtcHR5KCkpIHsKLSAgICAgICAgcmVzdWx0LmFwcGVuZChtX21lZGlhVHlw
ZSk7Ci0gICAgICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKLSAgICB9Ci0KLSAgICBpZiAo
bV9tZWRpYVR5cGUgIT0gImFsbCIgfHwgbV9yZXN0cmljdG9yICE9IE5vbmUpIHsKLSAgICAgICAg
cmVzdWx0LmFwcGVuZChtX21lZGlhVHlwZSk7Ci0gICAgICAgIHJlc3VsdC5hcHBlbmQoIiBhbmQg
Iik7Ci0gICAgfQotCi0gICAgcmVzdWx0LmFwcGVuZChtX2V4cHJlc3Npb25zLT5hdCgwKS0+c2Vy
aWFsaXplKCkpOwotICAgIGZvciAoc2l6ZV90IGkgPSAxOyBpIDwgbV9leHByZXNzaW9ucy0+c2l6
ZSgpOyArK2kpIHsKLSAgICAgICAgcmVzdWx0LmFwcGVuZCgiIGFuZCAiKTsKLSAgICAgICAgcmVz
dWx0LmFwcGVuZChtX2V4cHJlc3Npb25zLT5hdChpKS0+c2VyaWFsaXplKCkpOworICAgIGlmICgh
bV9pZ25vcmVkKSB7CisgICAgICAgIHN3aXRjaCAobV9yZXN0cmljdG9yKSB7CisgICAgICAgIGNh
c2UgTWVkaWFRdWVyeTo6T25seToKKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoIm9ubHkgIik7
CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBNZWRpYVF1ZXJ5OjpOb3Q6CisgICAg
ICAgICAgICByZXN1bHQuYXBwZW5kKCJub3QgIik7CisgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgY2FzZSBNZWRpYVF1ZXJ5OjpOb25lOgorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0K
KworICAgICAgICBpZiAobV9leHByZXNzaW9ucy0+aXNFbXB0eSgpKSB7CisgICAgICAgICAgICBy
ZXN1bHQuYXBwZW5kKG1fbWVkaWFUeXBlKTsKKyAgICAgICAgICAgIHJldHVybiByZXN1bHQudG9T
dHJpbmcoKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChtX21lZGlhVHlwZSAhPSAiYWxsIiB8
fCBtX3Jlc3RyaWN0b3IgIT0gTm9uZSkgeworICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChtX21l
ZGlhVHlwZSk7CisgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCIgYW5kICIpOworICAgICAgICB9
CisKKyAgICAgICAgcmVzdWx0LmFwcGVuZChtX2V4cHJlc3Npb25zLT5hdCgwKS0+c2VyaWFsaXpl
KCkpOworICAgICAgICBmb3IgKHNpemVfdCBpID0gMTsgaSA8IG1fZXhwcmVzc2lvbnMtPnNpemUo
KTsgKytpKSB7CisgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCIgYW5kICIpOworICAgICAgICAg
ICAgcmVzdWx0LmFwcGVuZChtX2V4cHJlc3Npb25zLT5hdChpKS0+c2VyaWFsaXplKCkpOworICAg
ICAgICB9CisgICAgfSBlbHNlIHsKKyAgICAgICAgLy8gSWYgcXVlcnkgaXMgaW52YWxpZCwgc2Vy
aWFsaXplZCB0ZXh0IHNob3VsZCB0dXJuIGludG8gIm5vdCBhbGwiLgorICAgICAgICByZXN1bHQu
YXBwZW5kKCJub3QgYWxsIik7CiAgICAgfQogICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5RXZhbHVhdG9yLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5RXZhbHVhdG9yLmNwcAppbmRleCA4MmU3
NTQ1Li43MTczZTEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUV2
YWx1YXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlFdmFsdWF0b3Iu
Y3BwCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiQ2hyb21lLmgiCiAjaW5jbHVkZSAiQ2hy
b21lQ2xpZW50LmgiCiAjaW5jbHVkZSAiQ1NTUHJpbWl0aXZlVmFsdWUuaCIKKyNpbmNsdWRlICJD
U1NWYWx1ZUtleXdvcmRzLmgiCiAjaW5jbHVkZSAiQ1NTVmFsdWVMaXN0LmgiCiAjaW5jbHVkZSAi
RmxvYXRSZWN0LmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKQEAgLTI0MywxNiArMjQ0LDE4IEBAIHN0
YXRpYyBib29sIG1vbm9jaHJvbWVNZWRpYUZlYXR1cmVFdmFsKENTU1ZhbHVlKiB2YWx1ZSwgUmVu
ZGVyU3R5bGUqIHN0eWxlLCBGcmFtCiAKIHN0YXRpYyBib29sIG9yaWVudGF0aW9uTWVkaWFGZWF0
dXJlRXZhbChDU1NWYWx1ZSogdmFsdWUsIFJlbmRlclN0eWxlKiwgRnJhbWUqIGZyYW1lLCBNZWRp
YUZlYXR1cmVQcmVmaXgpCiB7Ci0gICAgLy8gQSBtaXNzaW5nIHBhcmFtZXRlciBzaG91bGQgZmFp
bAotICAgIGlmICghdmFsdWUpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQogICAgIEZyYW1lVmll
dyogdmlldyA9IGZyYW1lLT52aWV3KCk7CiAgICAgaW50IHdpZHRoID0gdmlldy0+bGF5b3V0V2lk
dGgoKTsKICAgICBpbnQgaGVpZ2h0ID0gdmlldy0+bGF5b3V0SGVpZ2h0KCk7Ci0gICAgaWYgKHdp
ZHRoID4gaGVpZ2h0KSAvLyBTcXVhcmUgdmlld3BvcnQgaXMgcG9ydHJhaXQKLSAgICAgICAgcmV0
dXJuICJsYW5kc2NhcGUiID09IHN0YXRpY19jYXN0PENTU1ByaW1pdGl2ZVZhbHVlKj4odmFsdWUp
LT5nZXRTdHJpbmdWYWx1ZSgpOwotICAgIHJldHVybiAicG9ydHJhaXQiID09IHN0YXRpY19jYXN0
PENTU1ByaW1pdGl2ZVZhbHVlKj4odmFsdWUpLT5nZXRTdHJpbmdWYWx1ZSgpOworICAgIGlmICh2
YWx1ZSAmJiB2YWx1ZS0+aXNQcmltaXRpdmVWYWx1ZSgpKSB7CisgICAgICAgIGNvbnN0IGludCBp
ZCA9IHN0YXRpY19jYXN0PENTU1ByaW1pdGl2ZVZhbHVlKj4odmFsdWUpLT5nZXRJZGVudCgpOwor
ICAgICAgICBpZiAod2lkdGggPiBoZWlnaHQpIC8vIFNxdWFyZSB2aWV3cG9ydCBpcyBwb3J0cmFp
dC4KKyAgICAgICAgICAgIHJldHVybiBDU1NWYWx1ZUxhbmRzY2FwZSA9PSBpZDsKKyAgICAgICAg
cmV0dXJuIENTU1ZhbHVlUG9ydHJhaXQgPT0gaWQ7CisgICAgfQorCisgICAgLy8gRXhwcmVzc2lv
biAob3JpZW50YXRpb24pIGV2YWx1YXRlcyB0byB0cnVlIGlmIHdpZHRoIGFuZCBoZWlnaHQgPj0g
MC4KKyAgICByZXR1cm4gaGVpZ2h0ID49IDAgJiYgd2lkdGggPj0gMDsKIH0KIAogc3RhdGljIGJv
b2wgYXNwZWN0X3JhdGlvTWVkaWFGZWF0dXJlRXZhbChDU1NWYWx1ZSogdmFsdWUsIFJlbmRlclN0
eWxlKiwgRnJhbWUqIGZyYW1lLCBNZWRpYUZlYXR1cmVQcmVmaXggb3ApCkBAIC01MzQsNyArNTM3
LDMyIEBAIHN0YXRpYyBib29sIHZpZXdfbW9kZU1lZGlhRmVhdHVyZUV2YWwoQ1NTVmFsdWUqIHZh
bHVlLCBSZW5kZXJTdHlsZSosIEZyYW1lKiBmcmFtCiAgICAgVU5VU0VEX1BBUkFNKG9wKTsKICAg
ICBpZiAoIXZhbHVlKQogICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICByZXR1cm4gUGFnZTo6c3Ry
aW5nVG9WaWV3TW9kZShzdGF0aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1ZSo+KHZhbHVlKS0+Z2V0
U3RyaW5nVmFsdWUoKSkgPT0gZnJhbWUtPnBhZ2UoKS0+dmlld01vZGUoKTsKKworICAgIGNvbnN0
IGludCB2aWV3TW9kZUNTU0tleXdvcmRJRCA9IHN0YXRpY19jYXN0PENTU1ByaW1pdGl2ZVZhbHVl
Kj4odmFsdWUpLT5nZXRJZGVudCgpOworICAgIGNvbnN0IFBhZ2U6OlZpZXdNb2RlIHZpZXdNb2Rl
ID0gZnJhbWUtPnBhZ2UoKS0+dmlld01vZGUoKTsKKyAgICBib29sIHJlc3VsdCA9IGZhbHNlOwor
ICAgIHN3aXRjaCAodmlld01vZGUpIHsKKyAgICBjYXNlIFBhZ2U6OlZpZXdNb2RlV2luZG93ZWQ6
CisgICAgICAgIHJlc3VsdCA9IHZpZXdNb2RlQ1NTS2V5d29yZElEID09IENTU1ZhbHVlV2luZG93
ZWQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUGFnZTo6Vmlld01vZGVGbG9hdGluZzoKKyAg
ICAgICAgcmVzdWx0ID0gdmlld01vZGVDU1NLZXl3b3JkSUQgPT0gQ1NTVmFsdWVGbG9hdGluZzsK
KyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBQYWdlOjpWaWV3TW9kZUZ1bGxzY3JlZW46CisgICAg
ICAgIHJlc3VsdCA9IHZpZXdNb2RlQ1NTS2V5d29yZElEID09IENTU1ZhbHVlRnVsbHNjcmVlbjsK
KyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBQYWdlOjpWaWV3TW9kZU1heGltaXplZDoKKyAgICAg
ICAgcmVzdWx0ID0gdmlld01vZGVDU1NLZXl3b3JkSUQgPT0gQ1NTVmFsdWVNYXhpbWl6ZWQ7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgUGFnZTo6Vmlld01vZGVNaW5pbWl6ZWQ6CisgICAgICAg
IHJlc3VsdCA9IHZpZXdNb2RlQ1NTS2V5d29yZElEID09IENTU1ZhbHVlTWluaW1pemVkOworICAg
ICAgICBicmVhazsKKyAgICBkZWZhdWx0OgorICAgICAgICByZXN1bHQgPSBmYWxzZTsKKyAgICAg
ICAgYnJlYWs7CisgICAgfQorCisgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAogZW51bSBQb2ludGVy
RGV2aWNlVHlwZSB7IFRvdWNoUG9pbnRlciwgTW91c2VQb2ludGVyLCBOb1BvaW50ZXIsIFVua25v
d25Qb2ludGVyIH07CkBAIC01OTEsMTAgKzYxOSwxMCBAQCBzdGF0aWMgYm9vbCBwb2ludGVyTWVk
aWFGZWF0dXJlRXZhbChDU1NWYWx1ZSogdmFsdWUsIFJlbmRlclN0eWxlKiwgRnJhbWUqIGZyYW1l
LAogICAgIGlmICghdmFsdWUtPmlzUHJpbWl0aXZlVmFsdWUoKSkKICAgICAgICAgcmV0dXJuIGZh
bHNlOwogCi0gICAgU3RyaW5nIHN0ciA9IHN0YXRpY19jYXN0PENTU1ByaW1pdGl2ZVZhbHVlKj4o
dmFsdWUpLT5nZXRTdHJpbmdWYWx1ZSgpOwotICAgIHJldHVybiAocG9pbnRlciA9PSBOb1BvaW50
ZXIgJiYgc3RyID09ICJub25lIikKLSAgICAgICAgfHwgKHBvaW50ZXIgPT0gVG91Y2hQb2ludGVy
ICYmIHN0ciA9PSAiY29hcnNlIikKLSAgICAgICAgfHwgKHBvaW50ZXIgPT0gTW91c2VQb2ludGVy
ICYmIHN0ciA9PSAiZmluZSIpOworICAgIGNvbnN0IGludCBpZCA9IHN0YXRpY19jYXN0PENTU1By
aW1pdGl2ZVZhbHVlKj4odmFsdWUpLT5nZXRJZGVudCgpOworICAgIHJldHVybiAocG9pbnRlciA9
PSBOb1BvaW50ZXIgJiYgaWQgPT0gQ1NTVmFsdWVOb25lKQorICAgICAgICB8fCAocG9pbnRlciA9
PSBUb3VjaFBvaW50ZXIgJiYgaWQgPT0gQ1NTVmFsdWVDb2Fyc2UpCisgICAgICAgIHx8IChwb2lu
dGVyID09IE1vdXNlUG9pbnRlciAmJiBpZCA9PSBDU1NWYWx1ZUZpbmUpOwogfQogCiBzdGF0aWMg
dm9pZCBjcmVhdGVGdW5jdGlvbk1hcCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
TWVkaWFRdWVyeUV4cC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUV4cC5jcHAK
aW5kZXggNTMwMmQ3Yi4uZGIyMzk0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL01l
ZGlhUXVlcnlFeHAuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5RXhwLmNw
cApAQCAtMzcsMjcgKzM3LDEzNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK3N0YXRpYyBp
bmxpbmUgYm9vbCBmZWF0dXJlV2l0aENTU1ZhbHVlSUQoY29uc3QgQXRvbWljU3RyaW5nJiBtZWRp
YUZlYXR1cmUsIGNvbnN0IENTU1BhcnNlclZhbHVlKiB2YWx1ZSkKK3sKKyAgICBpZiAoIXZhbHVl
LT5pZCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgcmV0dXJuIG1lZGlhRmVhdHVyZSA9
PSBNZWRpYUZlYXR1cmVOYW1lczo6b3JpZW50YXRpb25NZWRpYUZlYXR1cmUKKyAgICAgICAgfHwg
bWVkaWFGZWF0dXJlID09IE1lZGlhRmVhdHVyZU5hbWVzOjp2aWV3X21vZGVNZWRpYUZlYXR1cmUK
KyAgICAgICAgfHwgbWVkaWFGZWF0dXJlID09IE1lZGlhRmVhdHVyZU5hbWVzOjpwb2ludGVyTWVk
aWFGZWF0dXJlOworfQorCitzdGF0aWMgaW5saW5lIGJvb2wgZmVhdHVyZVdpdGhWYWxpZFBvc2l0
aXZlTGVuZ2h0T3JOdW1iZXIoY29uc3QgQXRvbWljU3RyaW5nJiBtZWRpYUZlYXR1cmUsIGNvbnN0
IENTU1BhcnNlclZhbHVlKiB2YWx1ZSkKK3sKKyAgICBpZiAoISgoKHZhbHVlLT51bml0ID49IENT
U1ByaW1pdGl2ZVZhbHVlOjpDU1NfRU1TICYmIHZhbHVlLT51bml0IDw9IENTU1ByaW1pdGl2ZVZh
bHVlOjpDU1NfUEMpIHx8IHZhbHVlLT51bml0ID09IENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfUkVN
UykgfHwgdmFsdWUtPnVuaXQgPT0gQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19OVU1CRVIpIHx8IHZh
bHVlLT5mVmFsdWUgPCAwKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICByZXR1cm4gbWVk
aWFGZWF0dXJlID09IE1lZGlhRmVhdHVyZU5hbWVzOjpoZWlnaHRNZWRpYUZlYXR1cmUKKyAgICAg
ICAgfHwgbWVkaWFGZWF0dXJlID09IE1lZGlhRmVhdHVyZU5hbWVzOjptYXhfaGVpZ2h0TWVkaWFG
ZWF0dXJlCisgICAgICAgIHx8IG1lZGlhRmVhdHVyZSA9PSBNZWRpYUZlYXR1cmVOYW1lczo6bWlu
X2hlaWdodE1lZGlhRmVhdHVyZQorICAgICAgICB8fCBtZWRpYUZlYXR1cmUgPT0gTWVkaWFGZWF0
dXJlTmFtZXM6OndpZHRoTWVkaWFGZWF0dXJlCisgICAgICAgIHx8IG1lZGlhRmVhdHVyZSA9PSBN
ZWRpYUZlYXR1cmVOYW1lczo6bWF4X3dpZHRoTWVkaWFGZWF0dXJlCisgICAgICAgIHx8IG1lZGlh
RmVhdHVyZSA9PSBNZWRpYUZlYXR1cmVOYW1lczo6bWluX3dpZHRoTWVkaWFGZWF0dXJlCisgICAg
ICAgIHx8IG1lZGlhRmVhdHVyZSA9PSBNZWRpYUZlYXR1cmVOYW1lczo6ZGV2aWNlX2hlaWdodE1l
ZGlhRmVhdHVyZQorICAgICAgICB8fCBtZWRpYUZlYXR1cmUgPT0gTWVkaWFGZWF0dXJlTmFtZXM6
Om1heF9kZXZpY2VfaGVpZ2h0TWVkaWFGZWF0dXJlCisgICAgICAgIHx8IG1lZGlhRmVhdHVyZSA9
PSBNZWRpYUZlYXR1cmVOYW1lczo6bWluX2RldmljZV9oZWlnaHRNZWRpYUZlYXR1cmUKKyAgICAg
ICAgfHwgbWVkaWFGZWF0dXJlID09IE1lZGlhRmVhdHVyZU5hbWVzOjpkZXZpY2Vfd2lkdGhNZWRp
YUZlYXR1cmUKKyAgICAgICAgfHwgbWVkaWFGZWF0dXJlID09IE1lZGlhRmVhdHVyZU5hbWVzOjpt
YXhfZGV2aWNlX3dpZHRoTWVkaWFGZWF0dXJlCisgICAgICAgIHx8IG1lZGlhRmVhdHVyZSA9PSBN
ZWRpYUZlYXR1cmVOYW1lczo6bWluX2RldmljZV93aWR0aE1lZGlhRmVhdHVyZTsKK30KKworc3Rh
dGljIGlubGluZSBib29sIGZlYXR1cmVXaXRoUG9zaXRpdmVJbnRlZ2VyKGNvbnN0IEF0b21pY1N0
cmluZyYgbWVkaWFGZWF0dXJlLCBjb25zdCBDU1NQYXJzZXJWYWx1ZSogdmFsdWUpCit7CisgICAg
aWYgKCF2YWx1ZS0+aXNJbnQgfHwgdmFsdWUtPmZWYWx1ZSA8IDApCisgICAgICAgIHJldHVybiBm
YWxzZTsKKworICAgIHJldHVybiBtZWRpYUZlYXR1cmUgPT0gTWVkaWFGZWF0dXJlTmFtZXM6OmNv
bG9yTWVkaWFGZWF0dXJlCisgICAgICAgIHx8IG1lZGlhRmVhdHVyZSA9PSBNZWRpYUZlYXR1cmVO
YW1lczo6bWF4X2NvbG9yTWVkaWFGZWF0dXJlCisgICAgICAgIHx8IG1lZGlhRmVhdHVyZSA9PSBN
ZWRpYUZlYXR1cmVOYW1lczo6bWluX2NvbG9yTWVkaWFGZWF0dXJlCisgICAgICAgIHx8IG1lZGlh
RmVhdHVyZSA9PSBNZWRpYUZlYXR1cmVOYW1lczo6bWluX21vbm9jaHJvbWVNZWRpYUZlYXR1cmUK
KyAgICAgICAgfHwgbWVkaWFGZWF0dXJlID09IE1lZGlhRmVhdHVyZU5hbWVzOjptYXhfbW9ub2No
cm9tZU1lZGlhRmVhdHVyZTsKK30KKworc3RhdGljIGlubGluZSBib29sIGZlYXR1cmVXaXRoUG9z
aXRpdmVOdW1iZXIoY29uc3QgQXRvbWljU3RyaW5nJiBtZWRpYUZlYXR1cmUsIGNvbnN0IENTU1Bh
cnNlclZhbHVlKiB2YWx1ZSkKK3sKKyAgICBpZiAodmFsdWUtPnVuaXQgIT0gQ1NTUHJpbWl0aXZl
VmFsdWU6OkNTU19OVU1CRVIgfHwgdmFsdWUtPmZWYWx1ZSA8IDApCisgICAgICAgIHJldHVybiBm
YWxzZTsKKworICAgIHJldHVybiBtZWRpYUZlYXR1cmUgPT0gTWVkaWFGZWF0dXJlTmFtZXM6OnRy
YW5zZm9ybV8yZE1lZGlhRmVhdHVyZQorICAgICAgICB8fCBtZWRpYUZlYXR1cmUgPT0gTWVkaWFG
ZWF0dXJlTmFtZXM6OnRyYW5zZm9ybV8zZE1lZGlhRmVhdHVyZQorICAgICAgICB8fCBtZWRpYUZl
YXR1cmUgPT0gTWVkaWFGZWF0dXJlTmFtZXM6OnRyYW5zaXRpb25NZWRpYUZlYXR1cmUKKyAgICAg
ICAgfHwgbWVkaWFGZWF0dXJlID09IE1lZGlhRmVhdHVyZU5hbWVzOjphbmltYXRpb25NZWRpYUZl
YXR1cmUKKyAgICAgICAgfHwgbWVkaWFGZWF0dXJlID09IE1lZGlhRmVhdHVyZU5hbWVzOjpkZXZp
Y2VfcGl4ZWxfcmF0aW9NZWRpYUZlYXR1cmUKKyAgICAgICAgfHwgbWVkaWFGZWF0dXJlID09IE1l
ZGlhRmVhdHVyZU5hbWVzOjptYXhfZGV2aWNlX3BpeGVsX3JhdGlvTWVkaWFGZWF0dXJlCisgICAg
ICAgIHx8IG1lZGlhRmVhdHVyZSA9PSBNZWRpYUZlYXR1cmVOYW1lczo6bWluX2RldmljZV9waXhl
bF9yYXRpb01lZGlhRmVhdHVyZTsKK30KKworc3RhdGljIGlubGluZSBib29sIGZlYXR1cmVXaXRo
WmVyb09yT25lKGNvbnN0IEF0b21pY1N0cmluZyYgbWVkaWFGZWF0dXJlLCBjb25zdCBDU1NQYXJz
ZXJWYWx1ZSogdmFsdWUpCit7CisgICAgaWYgKCF2YWx1ZS0+aXNJbnQgfHwgISh2YWx1ZS0+ZlZh
bHVlID09IDEgfHwgIXZhbHVlLT5mVmFsdWUpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAg
ICByZXR1cm4gbWVkaWFGZWF0dXJlID09IE1lZGlhRmVhdHVyZU5hbWVzOjpncmlkTWVkaWFGZWF0
dXJlCisgICAgICAgIHx8IG1lZGlhRmVhdHVyZSA9PSBNZWRpYUZlYXR1cmVOYW1lczo6aG92ZXJN
ZWRpYUZlYXR1cmU7Cit9CisKK3N0YXRpYyBpbmxpbmUgYm9vbCBmZWF0dXJlV2l0aEFzcGVjdFJh
dGlvKGNvbnN0IEF0b21pY1N0cmluZyYgbWVkaWFGZWF0dXJlKQoreworICAgIHJldHVybiBtZWRp
YUZlYXR1cmUgPT0gTWVkaWFGZWF0dXJlTmFtZXM6OmFzcGVjdF9yYXRpb01lZGlhRmVhdHVyZQor
ICAgICAgICB8fCBtZWRpYUZlYXR1cmUgPT0gTWVkaWFGZWF0dXJlTmFtZXM6OmRldmljZV9hc3Bl
Y3RfcmF0aW9NZWRpYUZlYXR1cmUKKyAgICAgICAgfHwgbWVkaWFGZWF0dXJlID09IE1lZGlhRmVh
dHVyZU5hbWVzOjptaW5fYXNwZWN0X3JhdGlvTWVkaWFGZWF0dXJlCisgICAgICAgIHx8IG1lZGlh
RmVhdHVyZSA9PSBNZWRpYUZlYXR1cmVOYW1lczo6bWF4X2FzcGVjdF9yYXRpb01lZGlhRmVhdHVy
ZQorICAgICAgICB8fCBtZWRpYUZlYXR1cmUgPT0gTWVkaWFGZWF0dXJlTmFtZXM6Om1pbl9kZXZp
Y2VfYXNwZWN0X3JhdGlvTWVkaWFGZWF0dXJlCisgICAgICAgIHx8IG1lZGlhRmVhdHVyZSA9PSBN
ZWRpYUZlYXR1cmVOYW1lczo6bWF4X2RldmljZV9hc3BlY3RfcmF0aW9NZWRpYUZlYXR1cmU7Cit9
CisKK3N0YXRpYyBpbmxpbmUgYm9vbCBmZWF0dXJlV2l0aG91dFZhbHVlKGNvbnN0IEF0b21pY1N0
cmluZyYgbWVkaWFGZWF0dXJlKQoreworICAgIHJldHVybiBtZWRpYUZlYXR1cmUgPT0gTWVkaWFG
ZWF0dXJlTmFtZXM6Om1vbm9jaHJvbWVNZWRpYUZlYXR1cmUKKyAgICAgICAgfHwgbWVkaWFGZWF0
dXJlID09IE1lZGlhRmVhdHVyZU5hbWVzOjpjb2xvck1lZGlhRmVhdHVyZQorICAgICAgICB8fCBt
ZWRpYUZlYXR1cmUgPT0gTWVkaWFGZWF0dXJlTmFtZXM6OmdyaWRNZWRpYUZlYXR1cmUKKyAgICAg
ICAgfHwgbWVkaWFGZWF0dXJlID09IE1lZGlhRmVhdHVyZU5hbWVzOjpoZWlnaHRNZWRpYUZlYXR1
cmUKKyAgICAgICAgfHwgbWVkaWFGZWF0dXJlID09IE1lZGlhRmVhdHVyZU5hbWVzOjp3aWR0aE1l
ZGlhRmVhdHVyZQorICAgICAgICB8fCBtZWRpYUZlYXR1cmUgPT0gTWVkaWFGZWF0dXJlTmFtZXM6
OmRldmljZV9oZWlnaHRNZWRpYUZlYXR1cmUKKyAgICAgICAgfHwgbWVkaWFGZWF0dXJlID09IE1l
ZGlhRmVhdHVyZU5hbWVzOjpkZXZpY2Vfd2lkdGhNZWRpYUZlYXR1cmUKKyAgICAgICAgfHwgbWVk
aWFGZWF0dXJlID09IE1lZGlhRmVhdHVyZU5hbWVzOjpvcmllbnRhdGlvbk1lZGlhRmVhdHVyZQor
ICAgICAgICB8fCBtZWRpYUZlYXR1cmUgPT0gTWVkaWFGZWF0dXJlTmFtZXM6OmFzcGVjdF9yYXRp
b01lZGlhRmVhdHVyZQorICAgICAgICB8fCBtZWRpYUZlYXR1cmUgPT0gTWVkaWFGZWF0dXJlTmFt
ZXM6OmRldmljZV9hc3BlY3RfcmF0aW9NZWRpYUZlYXR1cmUKKyAgICAgICAgfHwgbWVkaWFGZWF0
dXJlID09IE1lZGlhRmVhdHVyZU5hbWVzOjpob3Zlck1lZGlhRmVhdHVyZQorICAgICAgICB8fCBt
ZWRpYUZlYXR1cmUgPT0gTWVkaWFGZWF0dXJlTmFtZXM6OnRyYW5zZm9ybV8yZE1lZGlhRmVhdHVy
ZQorICAgICAgICB8fCBtZWRpYUZlYXR1cmUgPT0gTWVkaWFGZWF0dXJlTmFtZXM6OnRyYW5zZm9y
bV8zZE1lZGlhRmVhdHVyZQorICAgICAgICB8fCBtZWRpYUZlYXR1cmUgPT0gTWVkaWFGZWF0dXJl
TmFtZXM6OnRyYW5zaXRpb25NZWRpYUZlYXR1cmUKKyAgICAgICAgfHwgbWVkaWFGZWF0dXJlID09
IE1lZGlhRmVhdHVyZU5hbWVzOjphbmltYXRpb25NZWRpYUZlYXR1cmUKKyAgICAgICAgfHwgbWVk
aWFGZWF0dXJlID09IE1lZGlhRmVhdHVyZU5hbWVzOjp2aWV3X21vZGVNZWRpYUZlYXR1cmUKKyAg
ICAgICAgfHwgbWVkaWFGZWF0dXJlID09IE1lZGlhRmVhdHVyZU5hbWVzOjpwb2ludGVyTWVkaWFG
ZWF0dXJlCisgICAgICAgIHx8IG1lZGlhRmVhdHVyZSA9PSBNZWRpYUZlYXR1cmVOYW1lczo6ZGV2
aWNlX3BpeGVsX3JhdGlvTWVkaWFGZWF0dXJlOworfQorCiBpbmxpbmUgTWVkaWFRdWVyeUV4cDo6
TWVkaWFRdWVyeUV4cChjb25zdCBBdG9taWNTdHJpbmcmIG1lZGlhRmVhdHVyZSwgQ1NTUGFyc2Vy
VmFsdWVMaXN0KiB2YWx1ZUxpc3QpCiAgICAgOiBtX21lZGlhRmVhdHVyZShtZWRpYUZlYXR1cmUp
CiAgICAgLCBtX3ZhbHVlKDApCi0gICAgLCBtX2lzVmFsaWQodHJ1ZSkKKyAgICAsIG1faXNWYWxp
ZChmYWxzZSkKIHsKKyAgICAvLyBJbml0aWFsaXplIG1lZGlhIHF1ZXJ5IGV4cHJlc3Npb24gdGhh
dCBtdXN0IGhhdmUgMSBvciBtb3JlIHZhbHVlcy4KICAgICBpZiAodmFsdWVMaXN0KSB7CiAgICAg
ICAgIGlmICh2YWx1ZUxpc3QtPnNpemUoKSA9PSAxKSB7CiAgICAgICAgICAgICBDU1NQYXJzZXJW
YWx1ZSogdmFsdWUgPSB2YWx1ZUxpc3QtPmN1cnJlbnQoKTsKIAotICAgICAgICAgICAgaWYgKHZh
bHVlLT5pZCAhPSAwKQorICAgICAgICAgICAgLy8gTWVkaWEgZmVhdHVyZXMgdGhhdCB1c2UgQ1NT
VmFsdWVJRHMuCisgICAgICAgICAgICBpZiAoZmVhdHVyZVdpdGhDU1NWYWx1ZUlEKG1lZGlhRmVh
dHVyZSwgdmFsdWUpKQogICAgICAgICAgICAgICAgIG1fdmFsdWUgPSBDU1NQcmltaXRpdmVWYWx1
ZTo6Y3JlYXRlSWRlbnRpZmllcih2YWx1ZS0+aWQpOwotICAgICAgICAgICAgZWxzZSBpZiAodmFs
dWUtPnVuaXQgPT0gQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19TVFJJTkcpCi0gICAgICAgICAgICAg
ICAgbV92YWx1ZSA9IENTU1ByaW1pdGl2ZVZhbHVlOjpjcmVhdGUodmFsdWUtPnN0cmluZywgKENT
U1ByaW1pdGl2ZVZhbHVlOjpVbml0VHlwZXMpIHZhbHVlLT51bml0KTsKLSAgICAgICAgICAgIGVs
c2UgaWYgKHZhbHVlLT51bml0ID49IENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfTlVNQkVSICYmCi0g
ICAgICAgICAgICAgICAgICAgICAgdmFsdWUtPnVuaXQgPD0gQ1NTUHJpbWl0aXZlVmFsdWU6OkNT
U19LSFopCisKKyAgICAgICAgICAgIC8vIE1lZGlhIGZlYXR1cmVzIHRoYXQgbXVzdCBoYXZlIG5v
bi1uZWdhdGl2ZSA8bGVuZ2h0PiBvciBudW1iZXIgdmFsdWUuCisgICAgICAgICAgICBlbHNlIGlm
IChmZWF0dXJlV2l0aFZhbGlkUG9zaXRpdmVMZW5naHRPck51bWJlcihtZWRpYUZlYXR1cmUsIHZh
bHVlKSkKICAgICAgICAgICAgICAgICBtX3ZhbHVlID0gQ1NTUHJpbWl0aXZlVmFsdWU6OmNyZWF0
ZSh2YWx1ZS0+ZlZhbHVlLCAoQ1NTUHJpbWl0aXZlVmFsdWU6OlVuaXRUeXBlcykgdmFsdWUtPnVu
aXQpOwogCi0gICAgICAgICAgICB2YWx1ZUxpc3QtPm5leHQoKTsKLSAgICAgICAgfSBlbHNlIGlm
ICh2YWx1ZUxpc3QtPnNpemUoKSA+IDEpIHsKLSAgICAgICAgICAgIC8vIGNyZWF0ZSBsaXN0IG9m
IHZhbHVlcwotICAgICAgICAgICAgLy8gY3VycmVudGx5IGFjY2VwdHMgb25seSA8aW50ZWdlcj4v
PGludGVnZXI+CisgICAgICAgICAgICAvLyBNZWRpYSBmZWF0dXJlcyB0aGF0IG11c3QgaGF2ZSBu
b24tbmVnYXRpdmUgaW50ZWdlciB2YWx1ZS4KKyAgICAgICAgICAgIGVsc2UgaWYgKGZlYXR1cmVX
aXRoUG9zaXRpdmVJbnRlZ2VyKG1lZGlhRmVhdHVyZSwgdmFsdWUpKQorICAgICAgICAgICAgICAg
IG1fdmFsdWUgPSBDU1NQcmltaXRpdmVWYWx1ZTo6Y3JlYXRlKHZhbHVlLT5mVmFsdWUsIENTU1By
aW1pdGl2ZVZhbHVlOjpDU1NfTlVNQkVSKTsKKworICAgICAgICAgICAgLy8gTWVkaWEgZmVhdHVy
ZXMgdGhhdCBtdXN0IGhhdmUgbm9uLW5lZ2F0aXZlIG51bWJlciB2YWx1ZS4KKyAgICAgICAgICAg
IGVsc2UgaWYgKGZlYXR1cmVXaXRoUG9zaXRpdmVOdW1iZXIobWVkaWFGZWF0dXJlLCB2YWx1ZSkp
CisgICAgICAgICAgICAgICAgbV92YWx1ZSA9IENTU1ByaW1pdGl2ZVZhbHVlOjpjcmVhdGUodmFs
dWUtPmZWYWx1ZSwgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19OVU1CRVIpOworCisgICAgICAgICAg
ICAvLyBNZWRpYSBmZWF0dXJlcyB0aGF0IG11c3QgaGF2ZSAoMHwxKSB2YWx1ZS4KKyAgICAgICAg
ICAgIGVsc2UgaWYgKGZlYXR1cmVXaXRoWmVyb09yT25lKG1lZGlhRmVhdHVyZSwgdmFsdWUpKQor
ICAgICAgICAgICAgICAgIG1fdmFsdWUgPSBDU1NQcmltaXRpdmVWYWx1ZTo6Y3JlYXRlKHZhbHVl
LT5mVmFsdWUsIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfTlVNQkVSKTsKKworICAgICAgICAgICAg
bV9pc1ZhbGlkID0gbV92YWx1ZTsKKyAgICAgICAgfSBlbHNlIGlmICh2YWx1ZUxpc3QtPnNpemUo
KSA+IDEgJiYgZmVhdHVyZVdpdGhBc3BlY3RSYXRpbyhtZWRpYUZlYXR1cmUpKSB7CisgICAgICAg
ICAgICAvLyBDcmVhdGUgbGlzdCBvZiB2YWx1ZXMuCisgICAgICAgICAgICAvLyBDdXJyZW50bHkg
YWNjZXB0cyBvbmx5IDxpbnRlZ2VyPi88aW50ZWdlcj4uCisgICAgICAgICAgICAvLyBBcHBsaWNh
YmxlIHRvIGRldmljZS1hc3BlY3QtcmF0aW8gYW5kIGFzcGVjLXJhdGlvLgogCiAgICAgICAgICAg
ICBSZWZQdHI8Q1NTVmFsdWVMaXN0PiBsaXN0ID0gQ1NTVmFsdWVMaXN0OjpjcmVhdGVDb21tYVNl
cGFyYXRlZCgpOwogICAgICAgICAgICAgQ1NTUGFyc2VyVmFsdWUqIHZhbHVlID0gdmFsdWVMaXN0
LT5jdXJyZW50KCk7CkBAIC02Niw3ICsxNzYsNyBAQCBpbmxpbmUgTWVkaWFRdWVyeUV4cDo6TWVk
aWFRdWVyeUV4cChjb25zdCBBdG9taWNTdHJpbmcmIG1lZGlhRmVhdHVyZSwgQ1NTUGFyc2VyVgog
ICAgICAgICAgICAgd2hpbGUgKHZhbHVlICYmIGlzVmFsaWQpIHsKICAgICAgICAgICAgICAgICBp
ZiAodmFsdWUtPnVuaXQgPT0gQ1NTUGFyc2VyVmFsdWU6Ok9wZXJhdG9yICYmIHZhbHVlLT5pVmFs
dWUgPT0gJy8nKQogICAgICAgICAgICAgICAgICAgICBsaXN0LT5hcHBlbmQoQ1NTUHJpbWl0aXZl
VmFsdWU6OmNyZWF0ZSgiLyIsIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfU1RSSU5HKSk7Ci0gICAg
ICAgICAgICAgICAgZWxzZSBpZiAodmFsdWUtPnVuaXQgPT0gQ1NTUHJpbWl0aXZlVmFsdWU6OkNT
U19OVU1CRVIpCisgICAgICAgICAgICAgICAgZWxzZSBpZiAodmFsdWUtPnVuaXQgPT0gQ1NTUHJp
bWl0aXZlVmFsdWU6OkNTU19OVU1CRVIgJiYgdmFsdWUtPmZWYWx1ZSA+IDAgJiYgdmFsdWUtPmlz
SW50KQogICAgICAgICAgICAgICAgICAgICBsaXN0LT5hcHBlbmQoQ1NTUHJpbWl0aXZlVmFsdWU6
OmNyZWF0ZSh2YWx1ZS0+ZlZhbHVlLCBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX05VTUJFUikpOwog
ICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICAgaXNWYWxpZCA9IGZhbHNl
OwpAQCAtNzYsMTIgKzE4NiwxMyBAQCBpbmxpbmUgTWVkaWFRdWVyeUV4cDo6TWVkaWFRdWVyeUV4
cChjb25zdCBBdG9taWNTdHJpbmcmIG1lZGlhRmVhdHVyZSwgQ1NTUGFyc2VyVgogCiAgICAgICAg
ICAgICBpZiAoaXNWYWxpZCkKICAgICAgICAgICAgICAgICBtX3ZhbHVlID0gbGlzdC5yZWxlYXNl
KCk7CisKKyAgICAgICAgICAgIG1faXNWYWxpZCA9IG1fdmFsdWU7CiAgICAgICAgIH0KLSAgICAg
ICAgbV9pc1ZhbGlkID0gbV92YWx1ZTsKLSAgICB9CisgICAgfSBlbHNlIGlmIChmZWF0dXJlV2l0
aG91dFZhbHVlKG1lZGlhRmVhdHVyZSkpCisgICAgICAgIG1faXNWYWxpZCA9IHRydWU7CiB9CiAK
LQogUGFzc093blB0cjxNZWRpYVF1ZXJ5RXhwPiBNZWRpYVF1ZXJ5RXhwOjpjcmVhdGUoY29uc3Qg
QXRvbWljU3RyaW5nJiBtZWRpYUZlYXR1cmUsIENTU1BhcnNlclZhbHVlTGlzdCogdmFsdWVzKQog
ewogICAgIHJldHVybiBhZG9wdFB0cihuZXcgTWVkaWFRdWVyeUV4cChtZWRpYUZlYXR1cmUsIHZh
bHVlcykpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>