<?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>232413</bug_id>
          
          <creation_ts>2021-10-27 17:30:35 -0700</creation_ts>
          <short_desc>[GPU Process] [Filters 2/23] Introduce FilterFunction and make it the base class of Filter and FilterEffect</short_desc>
          <delta_ts>2021-11-29 21:32:59 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>231253</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Said Abou-Hallawa">sabouhallawa</reporter>
          <assigned_to name="Said Abou-Hallawa">sabouhallawa</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>changseok</cc>
    
    <cc>darin</cc>
    
    <cc>dino</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fmalita</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>hta</cc>
    
    <cc>jer.noble</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>mmaxfield</cc>
    
    <cc>pdr</cc>
    
    <cc>philipj</cc>
    
    <cc>schenney</cc>
    
    <cc>sergio</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>tommyw</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1809509</commentid>
    <comment_count>0</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2021-10-27 17:30:35 -0700</bug_when>
    <thetext>CSSFilter is composed of a sequence of &lt;filter-function&gt;. It can be defined as:

filter: &lt;filter-function&gt; [&lt;filter-function&gt;]* | none

The &lt;filter-function&gt; can be &apos;blur&apos;, &apos;brightness&apos;, ... etc. Or it can be &apos;url(&quot;filters.svg#filter-id&quot;)&apos;. See https://developer.mozilla.org/en-US/docs/Web/CSS/filter.

So it make sense to introduce the same kind of layering in the filters code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1809521</commentid>
    <comment_count>1</comment_count>
      <attachid>442660</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2021-10-27 18:05:04 -0700</bug_when>
    <thetext>Created attachment 442660
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1809527</commentid>
    <comment_count>2</comment_count>
      <attachid>442660</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-10-27 18:17:49 -0700</bug_when>
    <thetext>Comment on attachment 442660
Patch

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

&gt; Source/WebCore/platform/graphics/filters/FilterFunction.cpp:74
&gt; +    static auto filterNames = makeNeverDestroyed([] {
&gt; +        FilterNameMap filterNames = {
&gt; +            { FilterFunction::Type::CSSFilter,           &quot;CSSFilter&quot;_s           },
&gt; +            { FilterFunction::Type::SVGFilter,           &quot;SVGFilter&quot;_s           },
&gt; +            
&gt; +            { FilterFunction::Type::FEBlend,             &quot;FEBlend&quot;_s             },
&gt; +            { FilterFunction::Type::FEColorMatrix,       &quot;FEColorMatrix&quot;_s       },
&gt; +            { FilterFunction::Type::FEComponentTransfer, &quot;FEComponentTransfer&quot;_s },
&gt; +            { FilterFunction::Type::FEComposite,         &quot;FEComposite&quot;_s         },
&gt; +            { FilterFunction::Type::FEConvolveMatrix,    &quot;FEConvolveMatrix&quot;_s    },
&gt; +            { FilterFunction::Type::FEDiffuseLighting,   &quot;FEDiffuseLighting&quot;_s   },
&gt; +            { FilterFunction::Type::FEDisplacementMap,   &quot;FEDisplacementMap&quot;_s   },
&gt; +            { FilterFunction::Type::FEDropShadow,        &quot;FEDropShadow&quot;_s        },
&gt; +            { FilterFunction::Type::FEFlood,             &quot;FEFlood&quot;_s             },
&gt; +            { FilterFunction::Type::FEGaussianBlur,      &quot;FEGaussianBlur&quot;_s      },
&gt; +            { FilterFunction::Type::FEImage,             &quot;FEImage&quot;_s             },
&gt; +            { FilterFunction::Type::FEMerge,             &quot;FEMerge&quot;_s             },
&gt; +            { FilterFunction::Type::FEMorphology,        &quot;FEMorphology&quot;_s        },
&gt; +            { FilterFunction::Type::FEOffset,            &quot;FEOffset&quot;_s            },
&gt; +            { FilterFunction::Type::FESpecularLighting,  &quot;FESpecularLighting&quot;_s  },
&gt; +            { FilterFunction::Type::FETile,              &quot;FETile&quot;_s              },
&gt; +            { FilterFunction::Type::FETurbulence,        &quot;FETurbulence&quot;_s        },
&gt; +
&gt; +            { FilterFunction::Type::SourceAlpha,         &quot;SourceAlpha&quot;_s         },
&gt; +            { FilterFunction::Type::SourceGraphic,       &quot;SourceGraphic&quot;_s       }
&gt; +
&gt; +        };
&gt; +        return filterNames;
&gt; +    }());
&gt; +    
&gt; +    return filterNames.get();

I suggest we use a SortedArrayMap here rather than a HashMap.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1809528</commentid>
    <comment_count>3</comment_count>
      <attachid>442660</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-10-27 18:18:07 -0700</bug_when>
    <thetext>Comment on attachment 442660
Patch

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

&gt;&gt; Source/WebCore/platform/graphics/filters/FilterFunction.cpp:74
&gt;&gt; +    return filterNames.get();
&gt; 
&gt; I suggest we use a SortedArrayMap here rather than a HashMap.

Or a switch statement.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1811724</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-11-03 17:31:20 -0700</bug_when>
    <thetext>&lt;rdar://problem/84999239&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1812980</commentid>
    <comment_count>5</comment_count>
      <attachid>443653</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2021-11-08 20:51:33 -0800</bug_when>
    <thetext>Created attachment 443653
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1812981</commentid>
    <comment_count>6</comment_count>
      <attachid>442660</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2021-11-08 20:52:39 -0800</bug_when>
    <thetext>Comment on attachment 442660
Patch

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

&gt;&gt;&gt; Source/WebCore/platform/graphics/filters/FilterFunction.cpp:74
&gt;&gt;&gt; +    return filterNames.get();
&gt;&gt; 
&gt;&gt; I suggest we use a SortedArrayMap here rather than a HashMap.
&gt; 
&gt; Or a switch statement.

I used SortedArrayMap instead of HashMap.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1813041</commentid>
    <comment_count>7</comment_count>
      <attachid>443665</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2021-11-09 02:21:46 -0800</bug_when>
    <thetext>Created attachment 443665
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1813311</commentid>
    <comment_count>8</comment_count>
      <attachid>443665</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-11-09 13:54:18 -0800</bug_when>
    <thetext>Comment on attachment 443665
Patch

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

&gt; Source/WebCore/platform/graphics/filters/FilterFunction.h:41
&gt; +        CSSFilter,
&gt; +        SVGFilter,

I don&apos;t quite understand this. Below, there&apos;s a list of specific filters (&quot;FEDropShadow&quot;) but CSSFilter/SVGFilter seems to refer to a collection of filters, rather than any specific one.

&gt; Source/WebCore/platform/graphics/filters/FilterFunction.h:65
&gt; +        FEMaximum = SourceGraphic

This seems error-prone. Suppose someone does

for (uint8_t i = 0; i &lt; FilterFunction::Type::FEMaximum; ++i) {
    ...
}

They wouldn&apos;t hit SourceGraphic.

&gt; Source/WebCore/platform/graphics/filters/FilterFunction.h:74
&gt; +    bool isSVGFilter() const { return m_filterType == Type::SVGFilter; }

FESpecularLighting isn&apos;t an SVG filter?

&gt; Source/WebCore/platform/graphics/filters/FilterFunction.h:82
&gt; +

It seems a bit unfortunate that there&apos;s nothing common here that does any real work. If there&apos;s no shared functionality, why not just say &quot;using FilterFunction = std::variant&lt;Filter, FilterEffect&gt;&quot;?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1813328</commentid>
    <comment_count>9</comment_count>
      <attachid>443665</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-11-09 14:17:22 -0800</bug_when>
    <thetext>Comment on attachment 443665
Patch

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

&gt; Source/WebCore/platform/graphics/filters/FilterFunction.cpp:68
&gt; +    ASSERT(namesMap.tryGet(filterType));

Seems like to make such call sites more elegant we should add a contains function to SortedArrayMap that calls tryGet and checks for null.

&gt; Source/WebCore/platform/graphics/filters/FilterFunction.cpp:69
&gt; +    return *namesMap.tryGet(filterType);

Why not just use get here?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1813336</commentid>
    <comment_count>10</comment_count>
      <attachid>443665</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2021-11-09 14:27:58 -0800</bug_when>
    <thetext>Comment on attachment 443665
Patch

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

&gt;&gt; Source/WebCore/platform/graphics/filters/FilterFunction.h:41
&gt;&gt; +        SVGFilter,
&gt; 
&gt; I don&apos;t quite understand this. Below, there&apos;s a list of specific filters (&quot;FEDropShadow&quot;) but CSSFilter/SVGFilter seems to refer to a collection of filters, rather than any specific one.

The whole point of this layering is to allow applying the filter functions from first to last. Currently we do the opposite. We start from the last and we go backward till we reach the first. This new layering will simplify the calculation much and we do not need to store any calculation while applying.

Look at this CSS

filter: contrast(175%) brightness(103%) url(&quot;#gray-scale&quot;);

And this SVG

&lt;svg style=&quot;position: absolute; top: -999999px&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;
    &lt;filter id=&quot;svgGrayscale&quot;&gt;
        &lt;feColorMatrix type=&quot;saturate&quot; values=&quot;0.10&quot;/&gt;
    &lt;/filter&gt;
&lt;/svg&gt;

When applying this filter we should apply them in this order: SourceGraphic, FEComponentTransfer, FEComponentTransfer, SVGFilter. And the SVGFilter should be applied in the following order { SourceGraphic, EFColorMatrix }. Currently we do the opposite. We start form EFColorMatrix and go back till the SourceGraphic of the CSS filter.

You can look at Filter as a composite pattern of FilterEffect with the following restriction:

1. CSSFilter has to be a root element it can not be nested in any FilterFunction.
2. SVGFiler can be a root element or a child of CSSFilter. And its children can only be FilterEffects.

This is not the ideal design but having two different hierarchies for Filter and FilterEffect will cause a Ref counting problem.

&gt;&gt; Source/WebCore/platform/graphics/filters/FilterFunction.h:65
&gt;&gt; +        FEMaximum = SourceGraphic
&gt; 
&gt; This seems error-prone. Suppose someone does
&gt; 
&gt; for (uint8_t i = 0; i &lt; FilterFunction::Type::FEMaximum; ++i) {
&gt;     ...
&gt; }
&gt; 
&gt; They wouldn&apos;t hit SourceGraphic.

I meant FEMaximum will the type of the &quot;last&quot; FilterEffect. I can change FEMinimum to FEFirst to FEMaximum FELast. Will that make it clear?

&gt;&gt; Source/WebCore/platform/graphics/filters/FilterFunction.h:74
&gt;&gt; +    bool isSVGFilter() const { return m_filterType == Type::SVGFilter; }
&gt; 
&gt; FESpecularLighting isn&apos;t an SVG filter?

No FESpecularLighting is a FilterEffect. SVGFilter in this context is a collection of FilterEffect and which you define in 

&lt;svg &gt;
    &lt;filte&gt;
        ...
    &lt;/filter&gt;
 &lt;/svg&gt;

&gt;&gt; Source/WebCore/platform/graphics/filters/FilterFunction.h:82
&gt;&gt; +
&gt; 
&gt; It seems a bit unfortunate that there&apos;s nothing common here that does any real work. If there&apos;s no shared functionality, why not just say &quot;using FilterFunction = std::variant&lt;Filter, FilterEffect&gt;&quot;?

At least these functions will be added in the future patches.

    virtual IntOutsets outsets() const { return { }; }
    virtual bool apply(const Filter&amp;) { return false; }

See https://bugs.webkit.org/attachment.cgi?id=443517&amp;action=review</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1813339</commentid>
    <comment_count>11</comment_count>
      <attachid>443665</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2021-11-09 14:31:11 -0800</bug_when>
    <thetext>Comment on attachment 443665
Patch

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

&gt;&gt; Source/WebCore/platform/graphics/filters/FilterFunction.cpp:68
&gt;&gt; +    ASSERT(namesMap.tryGet(filterType));
&gt; 
&gt; Seems like to make such call sites more elegant we should add a contains function to SortedArrayMap that calls tryGet and checks for null.

Yes and this will match the HashMap interface.

&gt;&gt; Source/WebCore/platform/graphics/filters/FilterFunction.cpp:69
&gt;&gt; +    return *namesMap.tryGet(filterType);
&gt; 
&gt; Why not just use get here?

You are right. I will use get().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1813348</commentid>
    <comment_count>12</comment_count>
      <attachid>443665</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-11-09 14:53:39 -0800</bug_when>
    <thetext>Comment on attachment 443665
Patch

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

&gt;&gt;&gt; Source/WebCore/platform/graphics/filters/FilterFunction.h:41
&gt;&gt;&gt; +        SVGFilter,
&gt;&gt; 
&gt;&gt; I don&apos;t quite understand this. Below, there&apos;s a list of specific filters (&quot;FEDropShadow&quot;) but CSSFilter/SVGFilter seems to refer to a collection of filters, rather than any specific one.
&gt; 
&gt; The whole point of this layering is to allow applying the filter functions from first to last. Currently we do the opposite. We start from the last and we go backward till we reach the first. This new layering will simplify the calculation much and we do not need to store any calculation while applying.
&gt; 
&gt; Look at this CSS
&gt; 
&gt; filter: contrast(175%) brightness(103%) url(&quot;#gray-scale&quot;);
&gt; 
&gt; And this SVG
&gt; 
&gt; &lt;svg style=&quot;position: absolute; top: -999999px&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;
&gt;     &lt;filter id=&quot;svgGrayscale&quot;&gt;
&gt;         &lt;feColorMatrix type=&quot;saturate&quot; values=&quot;0.10&quot;/&gt;
&gt;     &lt;/filter&gt;
&gt; &lt;/svg&gt;
&gt; 
&gt; When applying this filter we should apply them in this order: SourceGraphic, FEComponentTransfer, FEComponentTransfer, SVGFilter. And the SVGFilter should be applied in the following order { SourceGraphic, EFColorMatrix }. Currently we do the opposite. We start form EFColorMatrix and go back till the SourceGraphic of the CSS filter.
&gt; 
&gt; You can look at Filter as a composite pattern of FilterEffect with the following restriction:
&gt; 
&gt; 1. CSSFilter has to be a root element it can not be nested in any FilterFunction.
&gt; 2. SVGFiler can be a root element or a child of CSSFilter. And its children can only be FilterEffects.
&gt; 
&gt; This is not the ideal design but having two different hierarchies for Filter and FilterEffect will cause a Ref counting problem.

Going backwards makes sense to me - it&apos;s a way to guarantee you&apos;re only computing what is necessary. Applying the graph forwards means you don&apos;t know which nodes/edges will ultimately contribute to the final image, vs which are unnecessary and can be avoided altogether.

&gt;&gt;&gt; Source/WebCore/platform/graphics/filters/FilterFunction.h:65
&gt;&gt;&gt; +        FEMaximum = SourceGraphic
&gt;&gt; 
&gt;&gt; This seems error-prone. Suppose someone does
&gt;&gt; 
&gt;&gt; for (uint8_t i = 0; i &lt; FilterFunction::Type::FEMaximum; ++i) {
&gt;&gt;     ...
&gt;&gt; }
&gt;&gt; 
&gt;&gt; They wouldn&apos;t hit SourceGraphic.
&gt; 
&gt; I meant FEMaximum will the type of the &quot;last&quot; FilterEffect. I can change FEMinimum to FEFirst to FEMaximum FELast. Will that make it clear?

Usually this is done by just doing

    SourceAlpha,
    SourceGraphic,

    FEMaximum
}

that way, looping until &lt; FEMaximum will do the right thing.

For an example in another project, see lines 775 - 854 in https://unicode-org.github.io/icu-docs/apidoc/released/icu4c/uchar_8h_source.html

&gt;&gt;&gt; Source/WebCore/platform/graphics/filters/FilterFunction.h:82
&gt;&gt;&gt; +
&gt;&gt; 
&gt;&gt; It seems a bit unfortunate that there&apos;s nothing common here that does any real work. If there&apos;s no shared functionality, why not just say &quot;using FilterFunction = std::variant&lt;Filter, FilterEffect&gt;&quot;?
&gt; 
&gt; At least these functions will be added in the future patches.
&gt; 
&gt;     virtual IntOutsets outsets() const { return { }; }
&gt;     virtual bool apply(const Filter&amp;) { return false; }
&gt; 
&gt; See https://bugs.webkit.org/attachment.cgi?id=443517&amp;action=review

Ah, okay, cool. I misunderstood that these were coming later.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1813369</commentid>
    <comment_count>13</comment_count>
      <attachid>443739</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2021-11-09 15:30:01 -0800</bug_when>
    <thetext>Created attachment 443739
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1813371</commentid>
    <comment_count>14</comment_count>
      <attachid>443665</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2021-11-09 15:35:18 -0800</bug_when>
    <thetext>Comment on attachment 443665
Patch

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

&gt;&gt;&gt;&gt; Source/WebCore/platform/graphics/filters/FilterFunction.h:65
&gt;&gt;&gt;&gt; +        FEMaximum = SourceGraphic
&gt;&gt;&gt; 
&gt;&gt;&gt; This seems error-prone. Suppose someone does
&gt;&gt;&gt; 
&gt;&gt;&gt; for (uint8_t i = 0; i &lt; FilterFunction::Type::FEMaximum; ++i) {
&gt;&gt;&gt;     ...
&gt;&gt;&gt; }
&gt;&gt;&gt; 
&gt;&gt;&gt; They wouldn&apos;t hit SourceGraphic.
&gt;&gt; 
&gt;&gt; I meant FEMaximum will the type of the &quot;last&quot; FilterEffect. I can change FEMinimum to FEFirst to FEMaximum FELast. Will that make it clear?
&gt; 
&gt; Usually this is done by just doing
&gt; 
&gt;     SourceAlpha,
&gt;     SourceGraphic,
&gt; 
&gt;     FEMaximum
&gt; }
&gt; 
&gt; that way, looping until &lt; FEMaximum will do the right thing.
&gt; 
&gt; For an example in another project, see lines 775 - 854 in https://unicode-org.github.io/icu-docs/apidoc/released/icu4c/uchar_8h_source.html

Adding FEMaximum as a separate enum value will make using FilterFunction::Type in a switch statement a little bit complicated. So I am using FEFirst and FELast since this will not require adding unused enum value.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1813375</commentid>
    <comment_count>15</comment_count>
      <attachid>443740</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2021-11-09 15:39:57 -0800</bug_when>
    <thetext>Created attachment 443740
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1813404</commentid>
    <comment_count>16</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-11-09 16:41:01 -0800</bug_when>
    <thetext>Committed r285543 (244057@main): &lt;https://commits.webkit.org/244057@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 443740.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>442660</attachid>
            <date>2021-10-27 18:05:04 -0700</date>
            <delta_ts>2021-11-08 20:51:29 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-232413-20211027180503.patch</filename>
            <type>text/plain</type>
            <size>68128</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0Nzc0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjIxNTA4ZWVkN2ExM2Rm
OWU0M2NiMDIwZDg0MzVkY2FmMGQ0YjY0Yi4uZmZlNjRiZTFlZDEyZDkyZjQ3MTJiOTdjZjRlNWE4
ZjU2YTc1Zjg4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzMCBAQAorMjAyMS0xMC0yNyAgU2Fp
ZCBBYm91LUhhbGxhd2EgIDxzYWlkQGFwcGxlLmNvbT4KKworICAgICAgICBbR1BVIFByb2Nlc3Nd
IEludHJvZHVjZSBGaWx0ZXJGdW5jdGlvbiBhbmQgbWFrZSBpdCB0aGUgYmFzZSBjbGFzcyBvZiBG
aWx0ZXIgYW5kIEZpbHRlckVmZmVjdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjMyNDEzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgVGhpcyBhbGxvd3MgQ1NTRmlsdGVyIHRvIGhvbGQgYSBsaXN0IG9mIEZp
bHRlckZ1bmN0aW9ucy4gVGhlIEZpbHRlciBpbgorICAgICAgICB0aGlzIGNhc2Ugd2lsbCBhY3Qg
bGlrZSBhIGNvbXBvc2l0ZSBwYXR0ZXJuIG9mIHRoZSBGaWx0ZXJFZmZlY3QuCisKKyAgICAgICAg
VGhpcyBwYXRjaCBhbHNvCisgICAgICAgIDEuIFJlbW92ZXMgdGhlIHZpcnR1YWwgZnVuY3Rpb24g
ZmlsdGVyTmFtZSgpIGZyb20gYWxsIHRoZSBGaWx0ZXJFZmZlY3QKKyAgICAgICAgICAgY2xhc3Nl
cy4gSXQgcmVwbGFjZXMgaXQgd2l0aCBhIHN0YXRpYyBmdW5jdGlvbiBpbiBGaWx0ZXJGdW5jdGlv
bi4KKyAgICAgICAgMi4gUmVtb3ZlcyB0aGUgdmlydHVhbCBmdW5jdGlvbiBmaWx0ZXJFZmZlY3RU
eXBlKCkgYW5kIHRoZSBmdW5jdGlvbgorICAgICAgICAgICBGaWx0ZXJFZmZlY3Q6OmZpbHRlckVm
ZmVjdENsYXNzVHlwZSgpIHNpbmNlIHRoZXkgY2FuIGJvdGggYmUgcmVwbGFjZWQKKyAgICAgICAg
ICAgYnkgRmlsdGVyRnVuY3Rpb246OmZpbHRlclR5cGUoKS4KKyAgICAgICAgMy4gQWRkcyB0cmFp
dCBtYWNyb3MgZm9yIGFsbCBGaWx0ZXJFZmZlY3RzIGFuZCB0aGUgU1ZHRmlsdGVycyBjbGFzcy4K
KworICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb3JlaW1hZ2UvRmls
dGVyRWZmZWN0UmVuZGVyZXJDb3JlSW1hZ2UubW06CisgICAgICAgIChXZWJDb3JlOjpGaWx0ZXJF
ZmZlY3RSZW5kZXJlckNvcmVJbWFnZTo6c3VwcG9ydHNDb3JlSW1hZ2VSZW5kZXJpbmcpOgorICAg
ICAgICAoV2ViQ29yZTo6RmlsdGVyRWZmZWN0UmVuZGVyZXJDb3JlSW1hZ2U6OmNvbm5lY3RDSUZp
bHRlcnMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVCbGVuZC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpGRUJsZW5kOjpGRUJsZW5kKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9maWx0ZXJzL0ZFQmxlbmQuaDoKKyAgICAgICAgKCk6IERlbGV0ZWQuCisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbG9yTWF0cml4LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkZFQ29sb3JNYXRyaXg6OkZFQ29sb3JNYXRyaXgpOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb2xvck1hdHJpeC5oOgorICAgICAgICAoaXNUeXBl
KTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29tcG9u
ZW50VHJhbnNmZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RkVDb21wb25lbnRUcmFuc2Zlcjo6
RkVDb21wb25lbnRUcmFuc2Zlcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVy
cy9GRUNvbXBvbmVudFRyYW5zZmVyLmg6CisgICAgICAgIChpc1R5cGUpOiBEZWxldGVkLgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb21wb3NpdGUuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6RkVDb21wb3NpdGU6OkZFQ29tcG9zaXRlKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29tcG9zaXRlLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvZmlsdGVycy9GRUNvbnZvbHZlTWF0cml4LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZF
Q29udm9sdmVNYXRyaXg6OkZFQ29udm9sdmVNYXRyaXgpOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2ZpbHRlcnMvRkVDb252b2x2ZU1hdHJpeC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2ZpbHRlcnMvRkVEaWZmdXNlTGlnaHRpbmcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RkVEaWZmdXNlTGlnaHRpbmc6OkZFRGlmZnVzZUxpZ2h0aW5nKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9maWx0ZXJzL0ZFRGlmZnVzZUxpZ2h0aW5nLmg6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvZmlsdGVycy9GRURpc3BsYWNlbWVudE1hcC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpGRURpc3BsYWNlbWVudE1hcDo6RkVEaXNwbGFjZW1lbnRNYXApOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVEaXNwbGFjZW1lbnRNYXAuaDoKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRHJvcFNoYWRvdy5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpGRURyb3BTaGFkb3c6OkZFRHJvcFNoYWRvdyk6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvZmlsdGVycy9GRURyb3BTaGFkb3cuaDoKKyAgICAgICAgKCk6IERlbGV0ZWQuCisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUZsb29kLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkZFRmxvb2Q6OkZFRmxvb2QpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Zp
bHRlcnMvRkVGbG9vZC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVH
YXVzc2lhbkJsdXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RkVHYXVzc2lhbkJsdXI6OkZFR2F1
c3NpYW5CbHVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFR2F1c3Np
YW5CbHVyLmg6CisgICAgICAgICgpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2ZpbHRlcnMvRkVMaWdodGluZy5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Zp
bHRlcnMvRkVNZXJnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGRU1lcmdlOjpGRU1lcmdlKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFTWVyZ2UuaDoKKyAgICAgICAg
KCk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRU1vcnBo
b2xvZ3kuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RkVNb3JwaG9sb2d5OjpGRU1vcnBob2xvZ3kp
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVNb3JwaG9sb2d5Lmg6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRU9mZnNldC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpGRU9mZnNldDo6RkVPZmZzZXQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2ZpbHRlcnMvRkVPZmZzZXQuaDoKKyAgICAgICAgKCk6IERlbGV0ZWQuCisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRVNwZWN1bGFyTGlnaHRpbmcuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6RkVTcGVjdWxhckxpZ2h0aW5nOjpGRVNwZWN1bGFyTGlnaHRpbmcpOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVTcGVjdWxhckxpZ2h0aW5nLmg6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRVRpbGUuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RkVUaWxlOjpGRVRpbGUpOgorICAgICAgICAoV2ViQ29yZTo6RkVUaWxlOjpwbGF0
Zm9ybUFwcGx5U29mdHdhcmUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMv
RkVUaWxlLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRVR1cmJ1bGVu
Y2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RkVUdXJidWxlbmNlOjpGRVR1cmJ1bGVuY2UpOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVUdXJidWxlbmNlLmg6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXIuaDoKKyAgICAgICAgKFdlYkNv
cmU6OkZpbHRlcjo6RmlsdGVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJz
L0ZpbHRlckVmZmVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGaWx0ZXJFZmZlY3Q6OkZpbHRl
ckVmZmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpGaWx0ZXJFZmZlY3Q6OmRldGVybWluZUZpbHRl
clByaW1pdGl2ZVN1YnJlZ2lvbik6CisgICAgICAgIChXZWJDb3JlOjpGaWx0ZXJFZmZlY3Q6OmNy
ZWF0ZUltYWdlQnVmZmVyUmVzdWx0KToKKyAgICAgICAgKFdlYkNvcmU6OkZpbHRlckVmZmVjdDo6
Y3JlYXRlVW5tdWx0aXBsaWVkSW1hZ2VSZXN1bHQpOgorICAgICAgICAoV2ViQ29yZTo6RmlsdGVy
RWZmZWN0OjpjcmVhdGVQcmVtdWx0aXBsaWVkSW1hZ2VSZXN1bHQpOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyRWZmZWN0Lmg6CisgICAgICAgIChpc1R5cGUpOgor
ICAgICAgICAoV2ViQ29yZTo6RmlsdGVyRWZmZWN0OjpmaWx0ZXJFZmZlY3RUeXBlIGNvbnN0KTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkZpbHRlckVmZmVjdDo6ZmlsdGVyRWZmZWN0Q2xh
c3NUeXBlIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0
ZXJzL0ZpbHRlckZ1bmN0aW9uLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpGaWx0ZXJG
dW5jdGlvbjo6RmlsdGVyRnVuY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6ZmlsdGVyTmFtZXMp
OgorICAgICAgICAoV2ViQ29yZTo6RmlsdGVyRnVuY3Rpb246OmZpbHRlck5hbWUpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyRnVuY3Rpb24uaDogQWRkZWQuCisg
ICAgICAgIChXZWJDb3JlOjpGaWx0ZXJGdW5jdGlvbjo6ZmlsdGVyVHlwZSBjb25zdCk6CisgICAg
ICAgIChXZWJDb3JlOjpGaWx0ZXJGdW5jdGlvbjo6aXNDU1NGaWx0ZXIgY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6RmlsdGVyRnVuY3Rpb246OmlzU1ZHRmlsdGVyIGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6OkZpbHRlckZ1bmN0aW9uOjppc0ZpbHRlciBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpGaWx0ZXJGdW5jdGlvbjo6aXNGaWx0ZXJFZmZlY3QgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6RmlsdGVyRnVuY3Rpb246OnNvdXJjZUFscGhhTmFtZSk6CisgICAgICAgIChXZWJDb3Jl
OjpGaWx0ZXJGdW5jdGlvbjo6c291cmNlR3JhcGhpY05hbWUpOgorICAgICAgICAoV2ViQ29yZTo6
RmlsdGVyRnVuY3Rpb246OmZpbHRlck5hbWUgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2ZpbHRlcnMvU291cmNlQWxwaGEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U291cmNl
QWxwaGE6OlNvdXJjZUFscGhhKToKKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUFscGhhOjplZmZl
Y3ROYW1lKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1Nv
dXJjZUFscGhhLmg6CisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VBbHBoYTo6ZWZmZWN0TmFtZSk6
CisgICAgICAgICgpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRl
cnMvU291cmNlR3JhcGhpYy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VHcmFwaGljOjpl
ZmZlY3ROYW1lKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJz
L1NvdXJjZUdyYXBoaWMuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUdyYXBoaWM6OmVmZmVj
dE5hbWUpOgorICAgICAgICAoV2ViQ29yZTo6U291cmNlR3JhcGhpYzo6U291cmNlR3JhcGhpYyk6
CisgICAgICAgICgpOiBEZWxldGVkLgorICAgICAgICAoaXNUeXBlKTogRGVsZXRlZC4KKyAgICAg
ICAgKiByZW5kZXJpbmcvQ1NTRmlsdGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU0ZpbHRl
cjo6Q1NTRmlsdGVyKToKKyAgICAgICAgKiBzdmcvZ3JhcGhpY3MvZmlsdGVycy9TVkdGRUltYWdl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZFSW1hZ2U6OkZFSW1hZ2UpOgorICAgICAgICAqIHN2
Zy9ncmFwaGljcy9maWx0ZXJzL1NWR0ZFSW1hZ2UuaDoKKyAgICAgICAgKiBzdmcvZ3JhcGhpY3Mv
ZmlsdGVycy9TVkdGaWx0ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRmlsdGVyOjpTVkdG
aWx0ZXIpOgorICAgICAgICAqIHN2Zy9ncmFwaGljcy9maWx0ZXJzL1NWR0ZpbHRlckJ1aWxkZXIu
Y3BwOgorCiAyMDIxLTEwLTI1ICBaaXJhbiBTdW4gIDx6c3VuQGlnYWxpYS5jb20+CiAKICAgICAg
ICAgW2Nzcy13cml0aW5nLW1vZGVzXSBGaXggc2l6aW5nIG9mIG9ydGhvZ29uYWwgZWxlbWVudHMg
d2l0aCBwZXJjZW50YWdlIG1hcmdpbnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJj
ZXMudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXggNGJlYTE0ZjQ0ZmJmNTIx
MTkwZjYzM2FiNjczMDY5MTIzM2E1NWJmNC4uOTQ3NTc3ZjUwNTM0YjY1NmEzOWFiMmQwODFkZmYz
MTExOWVkNDExMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKKysrIGIv
U291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTIwNjUsNiArMjA2NSw3IEBAIHBsYXRmb3Jt
L2dyYXBoaWNzL2ZpbHRlcnMvRkVUaWxlLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9G
RVR1cmJ1bGVuY2UuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlckVmZmVjdC5j
cHAKIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyRWZmZWN0UmVuZGVyZXIuY3BwCitw
bGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlckZ1bmN0aW9uLmNwcAogcGxhdGZvcm0vZ3Jh
cGhpY3MvZmlsdGVycy9GaWx0ZXJPcGVyYXRpb24uY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0
ZXJzL0ZpbHRlck9wZXJhdGlvbnMuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1BvaW50
TGlnaHRTb3VyY2UuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKaW5kZXggNmI2NGI5YWIwODE0ZmJlM2YzNzk0ZTQ5YWEyNzdiMTAzYTk0
OTM0MS4uMTcwZGE4NzE3ZGY0ZmU5YWRmM2RhMDc1YWNkOWE0NWEzNTllNGYwMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTA1
NjYsNiArMTA1NjYsOCBAQAogCQk3MjRFRTU0RTFEQzdGMjVCMDBBOTFGRkIgLyogQWN0aXZpdHlT
dGF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBY3Rpdml0eVN0YXRlLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTcyNEVFNTRGMURDN0YyNUIwMEE5MUZGQiAv
KiBBY3Rpdml0eVN0YXRlQ2hhbmdlT2JzZXJ2ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gQWN0aXZpdHlTdGF0ZUNoYW5nZU9ic2VydmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTcyNTIzOTZCMjU0Q0FEQzIwMEY1RkIxNSAvKiBOYXRpdmVJbWFnZS5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBOYXRpdmVJbWFnZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTcyNjJENzU2MjcyQTE3NDEwMEM1NkEwOSAvKiBGaWx0ZXJGdW5jdGlvbi5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBGaWx0ZXJGdW5jdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk3MjYyRDc1NzI3MkExNzQxMDBDNTZBMDkgLyogRmlsdGVyRnVuY3Rpb24uY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gRmlsdGVyRnVuY3Rpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk3MjY2RjAxMzIyNDFCQ0UyMDA4MzM5NzUgLyogU1ZHUHJvcGVydHlBbmltYXRvckZh
Y3RvcnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZHUHJvcGVydHlBbmltYXRvckZhY3RvcnkuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzI2NkYwMTQyMjQxQkZCMjAwODMzOTc1IC8qIFNW
R1ByaW1pdGl2ZVByb3BlcnR5QW5pbWF0b3JJbXBsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNWR1ByaW1p
dGl2ZVByb3BlcnR5QW5pbWF0b3JJbXBsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTcyNjZGMDE1MjI0MUMwOTgwMDgzMzk3NSAvKiBTVkdQcmltaXRpdmVQcm9wZXJ0eUFuaW1hdG9y
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFNWR1ByaW1pdGl2ZVByb3BlcnR5QW5pbWF0b3IuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI1Mjk5LDYgKzI1MzAxLDggQEAKIAkJCQkwOEM5MjUx
ODBGQ0M3QzRBMDA0ODBERUMgLyogRmlsdGVyRWZmZWN0LmggKi8sCiAJCQkJMkM4NTY1MzgyNEMx
MEIwQjAwQTM3NjczIC8qIEZpbHRlckVmZmVjdFJlbmRlcmVyLmNwcCAqLywKIAkJCQkyQzg1NjUz
MzI0QzBGNzNDMDBBMzc2NzMgLyogRmlsdGVyRWZmZWN0UmVuZGVyZXIuaCAqLywKKwkJCQk3MjYy
RDc1NzI3MkExNzQxMDBDNTZBMDkgLyogRmlsdGVyRnVuY3Rpb24uY3BwICovLAorCQkJCTcyNjJE
NzU2MjcyQTE3NDEwMEM1NkEwOSAvKiBGaWx0ZXJGdW5jdGlvbi5oICovLAogCQkJCTQ5RUNFQjYz
MTQ5OTc5MEQwMENERDNBNCAvKiBGaWx0ZXJPcGVyYXRpb24uY3BwICovLAogCQkJCTQ5RUNFQjY0
MTQ5OTc5MEQwMENERDNBNCAvKiBGaWx0ZXJPcGVyYXRpb24uaCAqLywKIAkJCQk0OUVDRUI2NTE0
OTk3OTBEMDBDREQzQTQgLyogRmlsdGVyT3BlcmF0aW9ucy5jcHAgKi8sCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb3JlaW1hZ2UvRmlsdGVyRWZmZWN0UmVu
ZGVyZXJDb3JlSW1hZ2UubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb3Jl
aW1hZ2UvRmlsdGVyRWZmZWN0UmVuZGVyZXJDb3JlSW1hZ2UubW0KaW5kZXggOTdlMTEzN2IyOWQ3
MWMyYjU0NDE1NzMwNjcyNDAwYjgyNDI4YjM2MS4uZmM2Zjg3ODg4NWViZDA0OTE3MjQ5NmIzN2M0
MTQ3OTczNjI5NDQ5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY29yZWltYWdlL0ZpbHRlckVmZmVjdFJlbmRlcmVyQ29yZUltYWdlLm1tCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvcmVpbWFnZS9GaWx0ZXJFZmZlY3RSZW5kZXJl
ckNvcmVJbWFnZS5tbQpAQCAtNzIsMTEgKzcyLDExIEBAIHN0YXRpYyBib29sIGlzTnVsbE9yTGlu
ZWFyQ29tcG9uZW50VHJhbnNmZXJGdW5jdGlvbihjb25zdCBGRUNvbXBvbmVudFRyYW5zZmVyJiBl
CiBib29sIEZpbHRlckVmZmVjdFJlbmRlcmVyQ29yZUltYWdlOjpzdXBwb3J0c0NvcmVJbWFnZVJl
bmRlcmluZyhGaWx0ZXJFZmZlY3QmIGVmZmVjdCkKIHsKICAgICAvLyBGSVhNRTogY2hhbmdlIHJl
dHVybiB2YWx1ZSB0byB0cnVlIG9uY2UgdGhleSBhcmUgaW1wbGVtZW50ZWQKLSAgICBzd2l0Y2gg
KGVmZmVjdC5maWx0ZXJFZmZlY3RDbGFzc1R5cGUoKSkgeworICAgIHN3aXRjaCAoZWZmZWN0LmZp
bHRlclR5cGUoKSkgewogICAgIGNhc2UgRmlsdGVyRWZmZWN0OjpUeXBlOjpTb3VyY2VHcmFwaGlj
OgogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgICAgIAotICAgIGNhc2UgRmlsdGVyRWZm
ZWN0OjpUeXBlOjpDb2xvck1hdHJpeDogeworICAgIGNhc2UgRmlsdGVyRWZmZWN0OjpUeXBlOjpG
RUNvbG9yTWF0cml4OiB7CiAgICAgICAgIHN3aXRjaCAoZG93bmNhc3Q8RkVDb2xvck1hdHJpeD4o
ZWZmZWN0KS50eXBlKCkpIHsKICAgICAgICAgY2FzZSBGRUNPTE9STUFUUklYX1RZUEVfVU5LTk9X
TjoKICAgICAgICAgY2FzZSBGRUNPTE9STUFUUklYX1RZUEVfTFVNSU5BTkNFVE9BTFBIQToKQEAg
LTg4LDI2ICs4OCwxMCBAQCBib29sIEZpbHRlckVmZmVjdFJlbmRlcmVyQ29yZUltYWdlOjpzdXBw
b3J0c0NvcmVJbWFnZVJlbmRlcmluZyhGaWx0ZXJFZmZlY3QmIGVmZgogICAgICAgICB9CiAgICAg
fQogCi0gICAgY2FzZSBGaWx0ZXJFZmZlY3Q6OlR5cGU6OkNvbXBvbmVudFRyYW5zZmVyOgorICAg
IGNhc2UgRmlsdGVyRWZmZWN0OjpUeXBlOjpGRUNvbXBvbmVudFRyYW5zZmVyOgogICAgICAgICBy
ZXR1cm4gaXNOdWxsT3JMaW5lYXJDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uKGRvd25jYXN0PEZF
Q29tcG9uZW50VHJhbnNmZXI+KGVmZmVjdCkpOwogCi0gICAgY2FzZSBGaWx0ZXJFZmZlY3Q6OlR5
cGU6OkJsZW5kOgotICAgIGNhc2UgRmlsdGVyRWZmZWN0OjpUeXBlOjpDb21wb3NpdGU6Ci0gICAg
Y2FzZSBGaWx0ZXJFZmZlY3Q6OlR5cGU6OkNvbnZvbHZlTWF0cml4OgotICAgIGNhc2UgRmlsdGVy
RWZmZWN0OjpUeXBlOjpEaWZmdXNlTGlnaHRpbmc6Ci0gICAgY2FzZSBGaWx0ZXJFZmZlY3Q6OlR5
cGU6OkRpc3BsYWNlbWVudE1hcDoKLSAgICBjYXNlIEZpbHRlckVmZmVjdDo6VHlwZTo6RHJvcFNo
YWRvdzoKLSAgICBjYXNlIEZpbHRlckVmZmVjdDo6VHlwZTo6Rmxvb2Q6Ci0gICAgY2FzZSBGaWx0
ZXJFZmZlY3Q6OlR5cGU6OkdhdXNzaWFuQmx1cjoKLSAgICBjYXNlIEZpbHRlckVmZmVjdDo6VHlw
ZTo6SW1hZ2U6Ci0gICAgY2FzZSBGaWx0ZXJFZmZlY3Q6OlR5cGU6OkxpZ2h0aW5nOgotICAgIGNh
c2UgRmlsdGVyRWZmZWN0OjpUeXBlOjpNZXJnZToKLSAgICBjYXNlIEZpbHRlckVmZmVjdDo6VHlw
ZTo6TW9ycGhvbG9neToKLSAgICBjYXNlIEZpbHRlckVmZmVjdDo6VHlwZTo6T2Zmc2V0OgotICAg
IGNhc2UgRmlsdGVyRWZmZWN0OjpUeXBlOjpTcGVjdWxhckxpZ2h0aW5nOgotICAgIGNhc2UgRmls
dGVyRWZmZWN0OjpUeXBlOjpUaWxlOgotICAgIGNhc2UgRmlsdGVyRWZmZWN0OjpUeXBlOjpUdXJi
dWxlbmNlOgotICAgIGNhc2UgRmlsdGVyRWZmZWN0OjpUeXBlOjpTb3VyY2VBbHBoYToKKyAgICBk
ZWZhdWx0OgogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogICAgIHJldHVybiBmYWxzZTsK
QEAgLTEzNywzMiArMTIxLDE0IEBAIFJldGFpblB0cjxDSUltYWdlPiBGaWx0ZXJFZmZlY3RSZW5k
ZXJlckNvcmVJbWFnZTo6Y29ubmVjdENJRmlsdGVycyhGaWx0ZXJFZmZlY3QmCiAgICAgaWYgKGVm
ZmVjdC5hYnNvbHV0ZVBhaW50UmVjdCgpLmlzRW1wdHkoKSB8fCBJbWFnZUJ1ZmZlcjo6c2l6ZU5l
ZWRzQ2xhbXBpbmcoZWZmZWN0LmFic29sdXRlUGFpbnRSZWN0KCkuc2l6ZSgpKSkKICAgICAgICAg
cmV0dXJuIG51bGxwdHI7CiAgICAgCi0gICAgc3dpdGNoIChlZmZlY3QuZmlsdGVyRWZmZWN0Q2xh
c3NUeXBlKCkpIHsKKyAgICBzd2l0Y2ggKGVmZmVjdC5maWx0ZXJUeXBlKCkpIHsKICAgICBjYXNl
IEZpbHRlckVmZmVjdDo6VHlwZTo6U291cmNlR3JhcGhpYzoKICAgICAgICAgcmV0dXJuIGltYWdl
Rm9yU291cmNlR3JhcGhpYyhkb3duY2FzdDxTb3VyY2VHcmFwaGljPihlZmZlY3QpKTsKLSAgICBj
YXNlIEZpbHRlckVmZmVjdDo6VHlwZTo6Q29sb3JNYXRyaXg6CisgICAgY2FzZSBGaWx0ZXJFZmZl
Y3Q6OlR5cGU6OkZFQ29sb3JNYXRyaXg6CiAgICAgICAgIHJldHVybiBpbWFnZUZvckZFQ29sb3JN
YXRyaXgoZG93bmNhc3Q8RkVDb2xvck1hdHJpeD4oZWZmZWN0KSwgaW5wdXRJbWFnZXMpOwotICAg
IGNhc2UgRmlsdGVyRWZmZWN0OjpUeXBlOjpDb21wb25lbnRUcmFuc2ZlcjoKKyAgICBjYXNlIEZp
bHRlckVmZmVjdDo6VHlwZTo6RkVDb21wb25lbnRUcmFuc2ZlcjoKICAgICAgICAgcmV0dXJuIGlt
YWdlRm9yRkVDb21wb25lbnRUcmFuc2Zlcihkb3duY2FzdDxGRUNvbXBvbmVudFRyYW5zZmVyPihl
ZmZlY3QpLCBpbnB1dEltYWdlcyk7CiAKLSAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRob3NlIGZp
bHRlcnMgdXNpbmcgQ0lGaWx0ZXIgc28gdGhhdCB0aGUgZnVuY3Rpb24gcmV0dXJucyBhIHZhbGlk
IENJSW1hZ2UKLSAgICBjYXNlIEZpbHRlckVmZmVjdDo6VHlwZTo6QmxlbmQ6Ci0gICAgY2FzZSBG
aWx0ZXJFZmZlY3Q6OlR5cGU6OkNvbXBvc2l0ZToKLSAgICBjYXNlIEZpbHRlckVmZmVjdDo6VHlw
ZTo6Q29udm9sdmVNYXRyaXg6Ci0gICAgY2FzZSBGaWx0ZXJFZmZlY3Q6OlR5cGU6OkRpZmZ1c2VM
aWdodGluZzoKLSAgICBjYXNlIEZpbHRlckVmZmVjdDo6VHlwZTo6RGlzcGxhY2VtZW50TWFwOgot
ICAgIGNhc2UgRmlsdGVyRWZmZWN0OjpUeXBlOjpEcm9wU2hhZG93OgotICAgIGNhc2UgRmlsdGVy
RWZmZWN0OjpUeXBlOjpGbG9vZDoKLSAgICBjYXNlIEZpbHRlckVmZmVjdDo6VHlwZTo6R2F1c3Np
YW5CbHVyOgotICAgIGNhc2UgRmlsdGVyRWZmZWN0OjpUeXBlOjpJbWFnZToKLSAgICBjYXNlIEZp
bHRlckVmZmVjdDo6VHlwZTo6TGlnaHRpbmc6Ci0gICAgY2FzZSBGaWx0ZXJFZmZlY3Q6OlR5cGU6
Ok1lcmdlOgotICAgIGNhc2UgRmlsdGVyRWZmZWN0OjpUeXBlOjpNb3JwaG9sb2d5OgotICAgIGNh
c2UgRmlsdGVyRWZmZWN0OjpUeXBlOjpPZmZzZXQ6Ci0gICAgY2FzZSBGaWx0ZXJFZmZlY3Q6OlR5
cGU6OlNwZWN1bGFyTGlnaHRpbmc6Ci0gICAgY2FzZSBGaWx0ZXJFZmZlY3Q6OlR5cGU6OlRpbGU6
Ci0gICAgY2FzZSBGaWx0ZXJFZmZlY3Q6OlR5cGU6OlR1cmJ1bGVuY2U6Ci0gICAgY2FzZSBGaWx0
ZXJFZmZlY3Q6OlR5cGU6OlNvdXJjZUFscGhhOgogICAgIGRlZmF1bHQ6CiAgICAgICAgIHJldHVy
biBudWxscHRyOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2ZpbHRlcnMvRkVCbGVuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9maWx0ZXJzL0ZFQmxlbmQuY3BwCmluZGV4IGNkZWFhNjVlNjcwNGNkNjdmYjBhN2FmZTlh
ZjE4ZmJiNjJjMmNlZDkuLjkxZDhjYTZjYjU1ZWM0MGYzOTA4NzgyNGRhZDI0OTNkMjliM2U2N2Ug
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVC
bGVuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9G
RUJsZW5kLmNwcApAQCAtMzUsNyArMzUsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBGRUJs
ZW5kOjpGRUJsZW5kKEZpbHRlciYgZmlsdGVyLCBCbGVuZE1vZGUgbW9kZSkKLSAgICA6IEZpbHRl
ckVmZmVjdChmaWx0ZXIsIFR5cGU6OkJsZW5kKQorICAgIDogRmlsdGVyRWZmZWN0KGZpbHRlciwg
RmlsdGVyRWZmZWN0OjpUeXBlOjpGRUJsZW5kKQogICAgICwgbV9tb2RlKG1vZGUpCiB7CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQmxl
bmQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVCbGVuZC5o
CmluZGV4IDcwZTg0MDdiZjVjMjAwZDQ1MjE2YjhmOWMwODUxN2I1MDc5ZTc5NjYuLmI4NGM4ZGQy
ODA1OGZmNDVkNTRjZGY4YTczYTJiYTcxNzI1ZmRlNWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVCbGVuZC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVCbGVuZC5oCkBAIC0zNiw4ICszNiw2IEBA
IHB1YmxpYzoKICAgICBib29sIHNldEJsZW5kTW9kZShCbGVuZE1vZGUpOwogCiBwcml2YXRlOgot
ICAgIGNvbnN0IGNoYXIqIGZpbHRlck5hbWUoKSBjb25zdCBmaW5hbCB7IHJldHVybiAiRkVCbGVu
ZCI7IH0KLQogICAgIHZvaWQgcGxhdGZvcm1BcHBseVNvZnR3YXJlKCkgb3ZlcnJpZGU7CiAgICAg
dm9pZCBwbGF0Zm9ybUFwcGx5R2VuZXJpYyh1bnNpZ25lZCBjaGFyKiBzcmNQaXhlbEFycmF5QSwg
dW5zaWduZWQgY2hhciogc3JjUGl4ZWxBcnJheUIsIHVuc2lnbmVkIGNoYXIqIGRzdFBpeGVsQXJy
YXksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjb2xvckFycmF5TGVuZ3Ro
KTsKQEAgLTUzLDMgKzUxLDQgQEAgcHJpdmF0ZToKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQog
CitTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0ZJTFRFUl9FRkZFQ1QoRkVCbGVuZCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb2xvck1hdHJp
eC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29sb3JN
YXRyaXguY3BwCmluZGV4IDM4MDY1Y2I5NmM3YjRiNGIwM2ZjNmIwZWVkODVhYzRiNmM5NjhhNTQu
LmJmY2Q2YTMyMjViYWYwYTA3YzhiMzY4NTg2MTNmMGExMzRjY2U5ZWIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb2xvck1hdHJpeC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbG9yTWF0
cml4LmNwcApAQCAtMzYsNyArMzYsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBGRUNvbG9y
TWF0cml4OjpGRUNvbG9yTWF0cml4KEZpbHRlciYgZmlsdGVyLCBDb2xvck1hdHJpeFR5cGUgdHlw
ZSwgVmVjdG9yPGZsb2F0PiYmIHZhbHVlcykKLSAgICA6IEZpbHRlckVmZmVjdChmaWx0ZXIsIFR5
cGU6OkNvbG9yTWF0cml4KQorICAgIDogRmlsdGVyRWZmZWN0KGZpbHRlciwgRmlsdGVyRWZmZWN0
OjpUeXBlOjpGRUNvbG9yTWF0cml4KQogICAgICwgbV90eXBlKHR5cGUpCiAgICAgLCBtX3ZhbHVl
cyhXVEZNb3ZlKHZhbHVlcykpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29sb3JNYXRyaXguaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb2xvck1hdHJpeC5oCmluZGV4IDI5ZTQxYThhZWQxZTRm
MGI1Mzk3MDNhYzRkYjU1MjRlZmE0YzEyM2YuLjk5MmU3NWY5ZTgxNTBjNjE3YTJlZjA3YzY1OTM2
MTYwMDVlNDBmNDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2ZpbHRlcnMvRkVDb2xvck1hdHJpeC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2ZpbHRlcnMvRkVDb2xvck1hdHJpeC5oCkBAIC01Miw4ICs1Miw2IEBAIHB1YmxpYzoK
IHByaXZhdGU6CiAgICAgRkVDb2xvck1hdHJpeChGaWx0ZXImLCBDb2xvck1hdHJpeFR5cGUsIFZl
Y3RvcjxmbG9hdD4mJik7CiAKLSAgICBjb25zdCBjaGFyKiBmaWx0ZXJOYW1lKCkgY29uc3QgZmlu
YWwgeyByZXR1cm4gIkZFQ29sb3JNYXRyaXgiOyB9Ci0KICAgICB2b2lkIHBsYXRmb3JtQXBwbHlT
b2Z0d2FyZSgpIG92ZXJyaWRlOwogCiAgICAgV1RGOjpUZXh0U3RyZWFtJiBleHRlcm5hbFJlcHJl
c2VudGF0aW9uKFdURjo6VGV4dFN0cmVhbSYsIFJlcHJlc2VudGF0aW9uVHlwZSkgY29uc3Qgb3Zl
cnJpZGU7CkBAIC05Myw3ICs5MSw0IEBAIGlubGluZSB2b2lkIEZFQ29sb3JNYXRyaXg6OmNhbGN1
bGF0ZUh1ZVJvdGF0ZUNvbXBvbmVudHMoZmxvYXQqIGNvbXBvbmVudHMsIGZsb2F0CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKIAotU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19CRUdJTihXZWJDb3Jl
OjpGRUNvbG9yTWF0cml4KQotICAgIHN0YXRpYyBib29sIGlzVHlwZShjb25zdCBXZWJDb3JlOjpG
aWx0ZXJFZmZlY3QmIGVmZmVjdCkgeyByZXR1cm4gZWZmZWN0LmZpbHRlckVmZmVjdENsYXNzVHlw
ZSgpID09IFdlYkNvcmU6OkZpbHRlckVmZmVjdDo6VHlwZTo6Q29sb3JNYXRyaXg7IH0KLVNQRUNJ
QUxJWkVfVFlQRV9UUkFJVFNfRU5EKCkKLQorU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19GSUxURVJf
RUZGRUNUKEZFQ29sb3JNYXRyaXgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29tcG9uZW50VHJhbnNmZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbXBvbmVudFRyYW5zZmVyLmNwcAppbmRl
eCA4NDdlYTU4ZjVmOWIwMzg2NmQ5ZWFjNTdmMTBjY2Y1NzQwMmY5ZTYzLi5jZTAwY2MxOTgyOTc5
YjQwOTQwNGQ1Y2ZkY2MwM2E2ZWQzMzVjM2IyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29tcG9uZW50VHJhbnNmZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb21wb25lbnRUcmFuc2Zl
ci5jcHAKQEAgLTMzLDkgKzMzLDggQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1GRUNvbXBv
bmVudFRyYW5zZmVyOjpGRUNvbXBvbmVudFRyYW5zZmVyKEZpbHRlciYgZmlsdGVyLCBjb25zdCBD
b21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uJiByZWRGdW5jdGlvbiwKLSAgICBjb25zdCBDb21wb25l
bnRUcmFuc2ZlckZ1bmN0aW9uJiBncmVlbkZ1bmN0aW9uLCBjb25zdCBDb21wb25lbnRUcmFuc2Zl
ckZ1bmN0aW9uJiBibHVlRnVuY3Rpb24sIGNvbnN0IENvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb24m
IGFscGhhRnVuY3Rpb24pCi0gICAgOiBGaWx0ZXJFZmZlY3QoZmlsdGVyLCBUeXBlOjpDb21wb25l
bnRUcmFuc2ZlcikKK0ZFQ29tcG9uZW50VHJhbnNmZXI6OkZFQ29tcG9uZW50VHJhbnNmZXIoRmls
dGVyJiBmaWx0ZXIsIGNvbnN0IENvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb24mIHJlZEZ1bmN0aW9u
LCBjb25zdCBDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uJiBncmVlbkZ1bmN0aW9uLCBjb25zdCBD
b21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uJiBibHVlRnVuY3Rpb24sIGNvbnN0IENvbXBvbmVudFRy
YW5zZmVyRnVuY3Rpb24mIGFscGhhRnVuY3Rpb24pCisgICAgOiBGaWx0ZXJFZmZlY3QoZmlsdGVy
LCBGaWx0ZXJFZmZlY3Q6OlR5cGU6OkZFQ29tcG9uZW50VHJhbnNmZXIpCiAgICAgLCBtX3JlZEZ1
bmN0aW9uKHJlZEZ1bmN0aW9uKQogICAgICwgbV9ncmVlbkZ1bmN0aW9uKGdyZWVuRnVuY3Rpb24p
CiAgICAgLCBtX2JsdWVGdW5jdGlvbihibHVlRnVuY3Rpb24pCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29tcG9uZW50VHJhbnNmZXIuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb21wb25lbnRUcmFu
c2Zlci5oCmluZGV4IDJiNTg2ZGVmN2ZiNDJhMzdiMmUxMjNlZGE4NzExOWM0ZWIzNDhhNTEuLjNi
OWQyNjA4YjA5NzRkODI1NWVjYWE0MmE4M2MyYWZkZjYzOGEzZDkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb21wb25lbnRUcmFuc2Zlci5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb21wb25l
bnRUcmFuc2Zlci5oCkBAIC02NSw4ICs2NSw2IEBAIHByaXZhdGU6CiAgICAgRkVDb21wb25lbnRU
cmFuc2ZlcihGaWx0ZXImLCBjb25zdCBDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uJiByZWRGdW5j
LCBjb25zdCBDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uJiBncmVlbkZ1bmMsCiAgICAgICAgICAg
ICAgICAgICAgICAgICBjb25zdCBDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uJiBibHVlRnVuYywg
Y29uc3QgQ29tcG9uZW50VHJhbnNmZXJGdW5jdGlvbiYgYWxwaGFGdW5jKTsKIAotICAgICBjb25z
dCBjaGFyKiBmaWx0ZXJOYW1lKCkgY29uc3QgZmluYWwgeyByZXR1cm4gIkZFQ29tcG9uZW50VHJh
bnNmZXIiOyB9Ci0KICAgICB1c2luZyBMb29rdXBUYWJsZSA9IHN0ZDo6YXJyYXk8dWludDhfdCwg
MjU2PjsKIAogICAgIHN0YXRpYyB2b2lkIGNvbXB1dGVJZGVudGl0eVRhYmxlKExvb2t1cFRhYmxl
JiwgY29uc3QgQ29tcG9uZW50VHJhbnNmZXJGdW5jdGlvbiYpOwpAQCAtODksNiArODcsNCBAQCBw
cml2YXRlOgogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKLVNQRUNJQUxJWkVfVFlQRV9UUkFJ
VFNfQkVHSU4oV2ViQ29yZTo6RkVDb21wb25lbnRUcmFuc2ZlcikKLSAgICBzdGF0aWMgYm9vbCBp
c1R5cGUoY29uc3QgV2ViQ29yZTo6RmlsdGVyRWZmZWN0JiBlZmZlY3QpIHsgcmV0dXJuIGVmZmVj
dC5maWx0ZXJFZmZlY3RDbGFzc1R5cGUoKSA9PSBXZWJDb3JlOjpGaWx0ZXJFZmZlY3Q6OlR5cGU6
OkNvbXBvbmVudFRyYW5zZmVyOyB9Ci1TUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0VORCgpCitTUEVD
SUFMSVpFX1RZUEVfVFJBSVRTX0ZJTFRFUl9FRkZFQ1QoRkVDb21wb25lbnRUcmFuc2ZlcikKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb21w
b3NpdGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNv
bXBvc2l0ZS5jcHAKaW5kZXggOGI1OWU2NmRlOWZlOGQ2MzkxNmNiZTVjZTZkZDQwMzhmYTRjYjJh
OC4uNTRhMmQ4OWU5YjMxMTM4ZDgwYzZiNTUyNWUwODM1MzM4NTIwNTA0MyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbXBvc2l0ZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbXBvc2l0
ZS5jcHAKQEAgLTMzLDcgKzMzLDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogRkVDb21wb3Np
dGU6OkZFQ29tcG9zaXRlKEZpbHRlciYgZmlsdGVyLCBjb25zdCBDb21wb3NpdGVPcGVyYXRpb25U
eXBlJiB0eXBlLCBmbG9hdCBrMSwgZmxvYXQgazIsIGZsb2F0IGszLCBmbG9hdCBrNCkKLSAgICA6
IEZpbHRlckVmZmVjdChmaWx0ZXIsIFR5cGU6OkNvbXBvc2l0ZSkKKyAgICA6IEZpbHRlckVmZmVj
dChmaWx0ZXIsIEZpbHRlckVmZmVjdDo6VHlwZTo6RkVDb21wb3NpdGUpCiAgICAgLCBtX3R5cGUo
dHlwZSkKICAgICAsIG1fazEoazEpCiAgICAgLCBtX2syKGsyKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbXBvc2l0ZS5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbXBvc2l0ZS5oCmluZGV4IDdk
MDhlMWY3MTA3YjRiOTY4YzU4ZTNhMzdjMzJhZTJmNzZhZWEwYzMuLjM5MjM3ZmViMTI3YWQxZmYx
ZGUyMTgzNGJkN2IyYjczN2ZhYWYzMmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb21wb3NpdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29tcG9zaXRlLmgKQEAgLTY0LDggKzY0LDYgQEAg
cHJvdGVjdGVkOgogcHJpdmF0ZToKICAgICBGRUNvbXBvc2l0ZShGaWx0ZXImLCBjb25zdCBDb21w
b3NpdGVPcGVyYXRpb25UeXBlJiwgZmxvYXQsIGZsb2F0LCBmbG9hdCwgZmxvYXQpOwogCi0gICAg
Y29uc3QgY2hhciogZmlsdGVyTmFtZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICJGRUNvbXBvc2l0
ZSI7IH0KLQogICAgIHZvaWQgY29ycmVjdEZpbHRlclJlc3VsdElmTmVlZGVkKCkgb3ZlcnJpZGU7
CiAgICAgdm9pZCBkZXRlcm1pbmVBYnNvbHV0ZVBhaW50UmVjdCgpIG92ZXJyaWRlOwogCkBAIC05
MCwzICs4OCw0IEBAIHByaXZhdGU6CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAorU1BFQ0lB
TElaRV9UWVBFX1RSQUlUU19GSUxURVJfRUZGRUNUKEZFQ29tcG9zaXRlKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbnZvbHZlTWF0cml4
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb252b2x2
ZU1hdHJpeC5jcHAKaW5kZXggM2JiZTc4MzU5OGQ3MDkzNWE5NWM2ZjE1NmVjMjkzM2MwZTk5ZjA1
MC4uODBiNGM4OTI5NTIwZmEwNTdjN2M1MmQyY2Q3YmJiNGU5OGVjNTU2NyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbnZvbHZlTWF0cml4
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29u
dm9sdmVNYXRyaXguY3BwCkBAIC0zMiwxMCArMzIsOCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKLUZFQ29udm9sdmVNYXRyaXg6OkZFQ29udm9sdmVNYXRyaXgoRmlsdGVyJiBmaWx0ZXIsIGNv
bnN0IEludFNpemUmIGtlcm5lbFNpemUsCi0gICAgZmxvYXQgZGl2aXNvciwgZmxvYXQgYmlhcywg
Y29uc3QgSW50UG9pbnQmIHRhcmdldE9mZnNldCwgRWRnZU1vZGVUeXBlIGVkZ2VNb2RlLAotICAg
IGNvbnN0IEZsb2F0UG9pbnQmIGtlcm5lbFVuaXRMZW5ndGgsIGJvb2wgcHJlc2VydmVBbHBoYSwg
Y29uc3QgVmVjdG9yPGZsb2F0PiYga2VybmVsTWF0cml4KQotICAgIDogRmlsdGVyRWZmZWN0KGZp
bHRlciwgVHlwZTo6Q29udm9sdmVNYXRyaXgpCitGRUNvbnZvbHZlTWF0cml4OjpGRUNvbnZvbHZl
TWF0cml4KEZpbHRlciYgZmlsdGVyLCBjb25zdCBJbnRTaXplJiBrZXJuZWxTaXplLCBmbG9hdCBk
aXZpc29yLCBmbG9hdCBiaWFzLCBjb25zdCBJbnRQb2ludCYgdGFyZ2V0T2Zmc2V0LCBFZGdlTW9k
ZVR5cGUgZWRnZU1vZGUsIGNvbnN0IEZsb2F0UG9pbnQmIGtlcm5lbFVuaXRMZW5ndGgsIGJvb2wg
cHJlc2VydmVBbHBoYSwgY29uc3QgVmVjdG9yPGZsb2F0PiYga2VybmVsTWF0cml4KQorICAgIDog
RmlsdGVyRWZmZWN0KGZpbHRlciwgRmlsdGVyRWZmZWN0OjpUeXBlOjpGRUNvbnZvbHZlTWF0cml4
KQogICAgICwgbV9rZXJuZWxTaXplKGtlcm5lbFNpemUpCiAgICAgLCBtX2Rpdmlzb3IoZGl2aXNv
cikKICAgICAsIG1fYmlhcyhiaWFzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbnZvbHZlTWF0cml4LmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29udm9sdmVNYXRyaXguaAppbmRleCA2N2Q0YzY1
NjdmY2U2YjI3ZWU1YWI4OTVhNmUxZTUwMDU0ZTEzZGJhLi5jMWE1YzViODY3NTYyZjI2YWY4MDdk
NDVjNWI0MDA5NmRiMWNmZmZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9maWx0ZXJzL0ZFQ29udm9sdmVNYXRyaXguaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29udm9sdmVNYXRyaXguaApAQCAtODAsOCArODAs
NiBAQCBwcml2YXRlOgogICAgIEZFQ29udm9sdmVNYXRyaXgoRmlsdGVyJiwgY29uc3QgSW50U2l6
ZSYsIGZsb2F0LCBmbG9hdCwKICAgICAgICAgICAgIGNvbnN0IEludFBvaW50JiwgRWRnZU1vZGVU
eXBlLCBjb25zdCBGbG9hdFBvaW50JiwgYm9vbCwgY29uc3QgVmVjdG9yPGZsb2F0PiYpOwogCi0g
ICAgY29uc3QgY2hhciogZmlsdGVyTmFtZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICJGRUNvbnZv
bHZlTWF0cml4IjsgfQotCiAgICAgdm9pZCBkZXRlcm1pbmVBYnNvbHV0ZVBhaW50UmVjdCgpIG92
ZXJyaWRlIHsgc2V0QWJzb2x1dGVQYWludFJlY3QoZW5jbG9zaW5nSW50UmVjdChtYXhFZmZlY3RS
ZWN0KCkpKTsgfQogCiAgICAgdm9pZCBwbGF0Zm9ybUFwcGx5U29mdHdhcmUoKSBvdmVycmlkZTsK
QEAgLTExNSwzICsxMTMsNCBAQCBwcml2YXRlOgogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAK
K1NQRUNJQUxJWkVfVFlQRV9UUkFJVFNfRklMVEVSX0VGRkVDVChGRUNvbnZvbHZlTWF0cml4KQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRURp
ZmZ1c2VMaWdodGluZy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0
ZXJzL0ZFRGlmZnVzZUxpZ2h0aW5nLmNwcAppbmRleCBlZWIxNzI4ZGIzNWU4YWMzMDJiMjdlNGMz
ZmYzNGNiODg1NWI5ZDA5Li40NGUyZTYyMTRhMzc2YTRkYTFlZTc3M2NkZDQxNzY1Nzc0MDliMWUw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZF
RGlmZnVzZUxpZ2h0aW5nLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9maWx0ZXJzL0ZFRGlmZnVzZUxpZ2h0aW5nLmNwcApAQCAtMjgsNyArMjgsNyBAQAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCiBGRURpZmZ1c2VMaWdodGluZzo6RkVEaWZmdXNlTGlnaHRpbmcoRmls
dGVyJiBmaWx0ZXIsIGNvbnN0IENvbG9yJiBsaWdodGluZ0NvbG9yLCBmbG9hdCBzdXJmYWNlU2Nh
bGUsIGZsb2F0IGRpZmZ1c2VDb25zdGFudCwgZmxvYXQga2VybmVsVW5pdExlbmd0aFgsIGZsb2F0
IGtlcm5lbFVuaXRMZW5ndGhZLCBSZWY8TGlnaHRTb3VyY2U+JiYgbGlnaHRTb3VyY2UpCi0gICAg
OiBGRUxpZ2h0aW5nKGZpbHRlciwgRGlmZnVzZUxpZ2h0aW5nLCBsaWdodGluZ0NvbG9yLCBzdXJm
YWNlU2NhbGUsIGRpZmZ1c2VDb25zdGFudCwgMCwgMCwga2VybmVsVW5pdExlbmd0aFgsIGtlcm5l
bFVuaXRMZW5ndGhZLCBXVEZNb3ZlKGxpZ2h0U291cmNlKSwgVHlwZTo6RGlmZnVzZUxpZ2h0aW5n
KQorICAgIDogRkVMaWdodGluZyhmaWx0ZXIsIERpZmZ1c2VMaWdodGluZywgbGlnaHRpbmdDb2xv
ciwgc3VyZmFjZVNjYWxlLCBkaWZmdXNlQ29uc3RhbnQsIDAsIDAsIGtlcm5lbFVuaXRMZW5ndGhY
LCBrZXJuZWxVbml0TGVuZ3RoWSwgV1RGTW92ZShsaWdodFNvdXJjZSksIEZpbHRlckVmZmVjdDo6
VHlwZTo6RkVEaWZmdXNlTGlnaHRpbmcpCiB7CiB9CiAKQEAgLTM3LDggKzM3LDYgQEAgUmVmPEZF
RGlmZnVzZUxpZ2h0aW5nPiBGRURpZmZ1c2VMaWdodGluZzo6Y3JlYXRlKEZpbHRlciYgZmlsdGVy
LCBjb25zdCBDb2xvciYgbGkKICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBGRURpZmZ1c2VMaWdo
dGluZyhmaWx0ZXIsIGxpZ2h0aW5nQ29sb3IsIHN1cmZhY2VTY2FsZSwgZGlmZnVzZUNvbnN0YW50
LCBrZXJuZWxVbml0TGVuZ3RoWCwga2VybmVsVW5pdExlbmd0aFksIFdURk1vdmUobGlnaHRTb3Vy
Y2UpKSk7CiB9CiAKLUZFRGlmZnVzZUxpZ2h0aW5nOjp+RkVEaWZmdXNlTGlnaHRpbmcoKSA9IGRl
ZmF1bHQ7Ci0KIGJvb2wgRkVEaWZmdXNlTGlnaHRpbmc6OnNldERpZmZ1c2VDb25zdGFudChmbG9h
dCBkaWZmdXNlQ29uc3RhbnQpCiB7CiAgICAgaWYgKG1fZGlmZnVzZUNvbnN0YW50ID09IGRpZmZ1
c2VDb25zdGFudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2ZpbHRlcnMvRkVEaWZmdXNlTGlnaHRpbmcuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2ZpbHRlcnMvRkVEaWZmdXNlTGlnaHRpbmcuaAppbmRleCBkZjYxMTRkMGZiOGUyZjNl
MTEyOGI4NDI2MTVlNDc1MTNhMGRkZGMzLi4yNzM3ZjYwZjRjM2Y0YjM2MjRkZjgwZWJiOTk4Mzdi
YTY1OWZhMGJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9m
aWx0ZXJzL0ZFRGlmZnVzZUxpZ2h0aW5nLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZmlsdGVycy9GRURpZmZ1c2VMaWdodGluZy5oCkBAIC0zMCw3ICszMCw2IEBAIGNs
YXNzIExpZ2h0U291cmNlOwogY2xhc3MgRkVEaWZmdXNlTGlnaHRpbmcgOiBwdWJsaWMgRkVMaWdo
dGluZyB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxGRURpZmZ1c2VMaWdodGluZz4gY3JlYXRl
KEZpbHRlciYsIGNvbnN0IENvbG9yJiwgZmxvYXQsIGZsb2F0LCBmbG9hdCwgZmxvYXQsIFJlZjxM
aWdodFNvdXJjZT4mJik7Ci0gICAgdmlydHVhbCB+RkVEaWZmdXNlTGlnaHRpbmcoKTsKIAogICAg
IGZsb2F0IGRpZmZ1c2VDb25zdGFudCgpIGNvbnN0IHsgcmV0dXJuIG1fZGlmZnVzZUNvbnN0YW50
OyB9CiAgICAgYm9vbCBzZXREaWZmdXNlQ29uc3RhbnQoZmxvYXQpOwpAQCAtNDMsMyArNDIsNCBA
QCBwcml2YXRlOgogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKK1NQRUNJQUxJWkVfVFlQRV9U
UkFJVFNfRklMVEVSX0VGRkVDVChGRURpZmZ1c2VMaWdodGluZykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVEaXNwbGFjZW1lbnRNYXAuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRURpc3BsYWNlbWVu
dE1hcC5jcHAKaW5kZXggMDQ3NDkzMzkyYmIyODE0NmQ4YjE2OWJhMGE3YzMyYjE2YzU2M2ZhMS4u
NDZiNzdjODVhMWNmOGQ0ODVjMDVjMzE1NzMzOWUwYmI0YWViZTU4YyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRURpc3BsYWNlbWVudE1hcC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRURpc3Bs
YWNlbWVudE1hcC5jcHAKQEAgLTMyLDcgKzMyLDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
RkVEaXNwbGFjZW1lbnRNYXA6OkZFRGlzcGxhY2VtZW50TWFwKEZpbHRlciYgZmlsdGVyLCBDaGFu
bmVsU2VsZWN0b3JUeXBlIHhDaGFubmVsU2VsZWN0b3IsIENoYW5uZWxTZWxlY3RvclR5cGUgeUNo
YW5uZWxTZWxlY3RvciwgZmxvYXQgc2NhbGUpCi0gICAgOiBGaWx0ZXJFZmZlY3QoZmlsdGVyLCBU
eXBlOjpEaXNwbGFjZW1lbnRNYXApCisgICAgOiBGaWx0ZXJFZmZlY3QoZmlsdGVyLCBGaWx0ZXJF
ZmZlY3Q6OlR5cGU6OkZFRGlzcGxhY2VtZW50TWFwKQogICAgICwgbV94Q2hhbm5lbFNlbGVjdG9y
KHhDaGFubmVsU2VsZWN0b3IpCiAgICAgLCBtX3lDaGFubmVsU2VsZWN0b3IoeUNoYW5uZWxTZWxl
Y3RvcikKICAgICAsIG1fc2NhbGUoc2NhbGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRGlzcGxhY2VtZW50TWFwLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRGlzcGxhY2VtZW50TWFwLmgKaW5kZXgg
ZGQ3MzJhODgxMDczZTI2NmJjODQ2YWZlNjgxOWU2NzUxNjIzYTNhMi4uYWE1YjZkNDZiYzQ2NGZj
NmQwNjBkODZhZjZiYWUwZWYwN2VjOWU4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRURpc3BsYWNlbWVudE1hcC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVEaXNwbGFjZW1lbnRNYXAuaApAQCAt
NTQsOCArNTQsNiBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIEZFRGlzcGxhY2VtZW50TWFwKEZp
bHRlciYsIENoYW5uZWxTZWxlY3RvclR5cGUgeENoYW5uZWxTZWxlY3RvciwgQ2hhbm5lbFNlbGVj
dG9yVHlwZSB5Q2hhbm5lbFNlbGVjdG9yLCBmbG9hdCk7CiAKLSAgICBjb25zdCBjaGFyKiBmaWx0
ZXJOYW1lKCkgY29uc3QgZmluYWwgeyByZXR1cm4gIkZFRGlzcGxhY2VtZW50TWFwIjsgfQotCiAg
ICAgdm9pZCBwbGF0Zm9ybUFwcGx5U29mdHdhcmUoKSBvdmVycmlkZTsKIAogICAgIHZvaWQgZGV0
ZXJtaW5lQWJzb2x1dGVQYWludFJlY3QoKSBvdmVycmlkZSB7IHNldEFic29sdXRlUGFpbnRSZWN0
KGVuY2xvc2luZ0ludFJlY3QobWF4RWZmZWN0UmVjdCgpKSk7IH0KQEAgLTcyLDMgKzcwLDQgQEAg
cHJpdmF0ZToKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCitTUEVDSUFMSVpFX1RZUEVfVFJB
SVRTX0ZJTFRFUl9FRkZFQ1QoRkVEaXNwbGFjZW1lbnRNYXApCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRHJvcFNoYWRvdy5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRHJvcFNoYWRvdy5jcHAKaW5k
ZXggNWNlN2JlM2E0NzFiNDdiOGRkNTQyNmQ5NjViYmZlNzg5ZjZiYmRkOC4uOTU5YTY2OWQ0MWJl
N2Y2OTM3YjY1ZmE4MmU2OTQ4OWFiNjI5NzZiMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRURyb3BTaGFkb3cuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVEcm9wU2hhZG93LmNwcApAQCAtMzIs
NyArMzIsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIAogRkVEcm9wU2hhZG93OjpGRURy
b3BTaGFkb3coRmlsdGVyJiBmaWx0ZXIsIGZsb2F0IHN0ZFgsIGZsb2F0IHN0ZFksIGZsb2F0IGR4
LCBmbG9hdCBkeSwgY29uc3QgQ29sb3ImIHNoYWRvd0NvbG9yLCBmbG9hdCBzaGFkb3dPcGFjaXR5
KQotICAgIDogRmlsdGVyRWZmZWN0KGZpbHRlciwgVHlwZTo6RHJvcFNoYWRvdykKKyAgICA6IEZp
bHRlckVmZmVjdChmaWx0ZXIsIEZpbHRlckVmZmVjdDo6VHlwZTo6RkVEcm9wU2hhZG93KQogICAg
ICwgbV9zdGRYKHN0ZFgpCiAgICAgLCBtX3N0ZFkoc3RkWSkKICAgICAsIG1fZHgoZHgpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRHJvcFNo
YWRvdy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRURyb3BT
aGFkb3cuaAppbmRleCBiNGUwYTIwMTJmZWRiN2I3N2JmM2UwNTczNGVlODhhMjllZmYzODRjLi4y
YjZlNjYxM2I1YWUxNzg0YTcxMDJkNTQ2ZGRiYmNiZDYxMzg1OGZhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRHJvcFNoYWRvdy5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVEcm9wU2hhZG93LmgK
QEAgLTUwLDggKzUwLDYgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBGRURyb3BTaGFkb3coRmls
dGVyJiwgZmxvYXQsIGZsb2F0LCBmbG9hdCwgZmxvYXQsIGNvbnN0IENvbG9yJiwgZmxvYXQpOwog
Ci0gICAgY29uc3QgY2hhciogZmlsdGVyTmFtZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICJGRURy
b3BTaGFkb3ciOyB9Ci0KICAgICB2b2lkIHBsYXRmb3JtQXBwbHlTb2Z0d2FyZSgpIG92ZXJyaWRl
OwogCiAgICAgdm9pZCBkZXRlcm1pbmVBYnNvbHV0ZVBhaW50UmVjdCgpIG92ZXJyaWRlOwpAQCAt
NzAsMyArNjgsNCBAQCBwcml2YXRlOgogICAgIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCitT
UEVDSUFMSVpFX1RZUEVfVFJBSVRTX0ZJTFRFUl9FRkZFQ1QoRkVEcm9wU2hhZG93KQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUZsb29kLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVGbG9vZC5jcHAK
aW5kZXggYjQyMzU1MzRjMzhiMWViYTIxMWVlODQ4NjE3OTkyMzgwZjNiNmIwMS4uYTc4NDIxOTY3
NGUxYWU5Nzk5MzQ0MzhkYTU0YTFhNzFjOTgwNDg0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUZsb29kLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRmxvb2QuY3BwCkBAIC0zMSw3ICszMSw3
IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIEZFRmxvb2Q6OkZFRmxvb2QoRmlsdGVyJiBmaWx0
ZXIsIGNvbnN0IENvbG9yJiBmbG9vZENvbG9yLCBmbG9hdCBmbG9vZE9wYWNpdHkpCi0gICAgOiBG
aWx0ZXJFZmZlY3QoZmlsdGVyLCBUeXBlOjpGbG9vZCkKKyAgICA6IEZpbHRlckVmZmVjdChmaWx0
ZXIsIEZpbHRlckVmZmVjdDo6VHlwZTo6RkVGbG9vZCkKICAgICAsIG1fZmxvb2RDb2xvcihmbG9v
ZENvbG9yKQogICAgICwgbV9mbG9vZE9wYWNpdHkoZmxvb2RPcGFjaXR5KQogewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUZsb29kLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRmxvb2QuaAppbmRleCBi
NzA0ZGM5NjljNmQ3NTg4YmNlYjBhZDhiMjQ2ODJmYTA2MTczNDhlLi4wOGE0ZTk1OTM1ODVkMmZh
MDcyNjg0ZDQ1ZDVmODkzMGYzYWVlZjBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRmxvb2QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRmxvb2QuaApAQCAtNDcsOCArNDcsNiBAQCBwdWJsaWM6
CiBwcml2YXRlOgogICAgIEZFRmxvb2QoRmlsdGVyJiwgY29uc3QgQ29sb3ImLCBmbG9hdCk7CiAK
LSAgICBjb25zdCBjaGFyKiBmaWx0ZXJOYW1lKCkgY29uc3QgZmluYWwgeyByZXR1cm4gIkZFRmxv
b2QiOyB9Ci0KICAgICB2b2lkIHBsYXRmb3JtQXBwbHlTb2Z0d2FyZSgpIG92ZXJyaWRlOwogCiAg
ICAgdm9pZCBkZXRlcm1pbmVBYnNvbHV0ZVBhaW50UmVjdCgpIG92ZXJyaWRlIHsgc2V0QWJzb2x1
dGVQYWludFJlY3QoZW5jbG9zaW5nSW50UmVjdChtYXhFZmZlY3RSZWN0KCkpKTsgfQpAQCAtNjEs
MyArNTksNCBAQCBwcml2YXRlOgogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKK1NQRUNJQUxJ
WkVfVFlQRV9UUkFJVFNfRklMVEVSX0VGRkVDVChGRUZsb29kKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUdhdXNzaWFuQmx1ci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFR2F1c3NpYW5CbHVyLmNw
cAppbmRleCAwOGU4NWEwOGFhMDFiMDgxMjIzZjM2ZWJiNmJiYjhhYjM2Mzk0MzY1Li5mODM1ZGJm
ZmYwM2U3ZGRjMGZmZDg3NGJlNWZhNWJmMjc3ODc3MjdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFR2F1c3NpYW5CbHVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFR2F1c3NpYW5CbHVyLmNw
cApAQCAtODAsNyArODAsNyBAQCBpbmxpbmUgdm9pZCBrZXJuZWxQb3NpdGlvbihpbnQgYmx1ckl0
ZXJhdGlvbiwgdW5zaWduZWQmIHJhZGl1cywgaW50JiBkZWx0YUxlZnQsCiB9CiAKIEZFR2F1c3Np
YW5CbHVyOjpGRUdhdXNzaWFuQmx1cihGaWx0ZXImIGZpbHRlciwgZmxvYXQgeCwgZmxvYXQgeSwg
RWRnZU1vZGVUeXBlIGVkZ2VNb2RlKQotICAgIDogRmlsdGVyRWZmZWN0KGZpbHRlciwgVHlwZTo6
R2F1c3NpYW5CbHVyKQorICAgIDogRmlsdGVyRWZmZWN0KGZpbHRlciwgRmlsdGVyRWZmZWN0OjpU
eXBlOjpGRUdhdXNzaWFuQmx1cikKICAgICAsIG1fc3RkWCh4KQogICAgICwgbV9zdGRZKHkpCiAg
ICAgLCBtX2VkZ2VNb2RlKGVkZ2VNb2RlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUdhdXNzaWFuQmx1ci5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUdhdXNzaWFuQmx1ci5oCmluZGV4IDVmYjk3ZmZi
MDcwYzJkYWViNmViMjgzYmVhYWExNzY0N2NiYjJkM2UuLjYzMWQ4OTUxNjA3ZmY2ODU3N2YwOWY5
YjdiMjU5NGM3NmFhYzhiODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2ZpbHRlcnMvRkVHYXVzc2lhbkJsdXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFR2F1c3NpYW5CbHVyLmgKQEAgLTQ3LDggKzQ3LDYgQEAg
cHVibGljOgogcHJpdmF0ZToKICAgICBGRUdhdXNzaWFuQmx1cihGaWx0ZXImLCBmbG9hdCwgZmxv
YXQsIEVkZ2VNb2RlVHlwZSk7CiAKLSAgICBjb25zdCBjaGFyKiBmaWx0ZXJOYW1lKCkgY29uc3Qg
ZmluYWwgeyByZXR1cm4gIkZFR2F1c3NpYW5CbHVyIjsgfQotCiAgICAgc3RhdGljIGNvbnN0IGlu
dCBzX21pbmltYWxSZWN0RGltZW5zaW9uID0gMTAwICogMTAwOyAvLyBFbXBpcmljYWwgZGF0YSBs
aW1pdCBmb3IgcGFyYWxsZWwgam9icwogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVHlwZT4KQEAg
LTgzLDMgKzgxLDQgQEAgcHJpdmF0ZToKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCitTUEVD
SUFMSVpFX1RZUEVfVFJBSVRTX0ZJTFRFUl9FRkZFQ1QoRkVHYXVzc2lhbkJsdXIpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFTGlnaHRpbmcu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVMaWdodGluZy5o
CmluZGV4IDBmZmZjZDA2NDM5NmQ4ZjRiNjQwODIyNjljYzIwNzRmN2M5ZGJkYmMuLjUzNDAyN2M0
MTRkMjUyNDNhMjAxMTBhOWI3MWUwODVlZTY5MGJkNjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVMaWdodGluZy5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVMaWdodGluZy5oCkBAIC0xMzMsOCAr
MTMzLDYgQEAgcHJvdGVjdGVkOgogCiAgICAgRkVMaWdodGluZyhGaWx0ZXImLCBMaWdodGluZ1R5
cGUsIGNvbnN0IENvbG9yJiwgZmxvYXQsIGZsb2F0LCBmbG9hdCwgZmxvYXQsIGZsb2F0LCBmbG9h
dCwgUmVmPExpZ2h0U291cmNlPiYmLCBUeXBlKTsKIAotICAgIGNvbnN0IGNoYXIqIGZpbHRlck5h
bWUoKSBjb25zdCBmaW5hbCB7IHJldHVybiAiRkVMaWdodGluZyI7IH0KLQogICAgIGJvb2wgZHJh
d0xpZ2h0aW5nKFVpbnQ4Q2xhbXBlZEFycmF5JiwgaW50LCBpbnQpOwogCiAgICAgdm9pZCBzZXRQ
aXhlbChpbnQgb2Zmc2V0LCBjb25zdCBMaWdodGluZ0RhdGEmLCBjb25zdCBMaWdodFNvdXJjZTo6
UGFpbnRpbmdEYXRhJiwgaW50IHgsIGludCB5LCBmbG9hdCBmYWN0b3JYLCBmbG9hdCBmYWN0b3JZ
LCBJbnRTaXplIG5vcm1hbFZlY3Rvcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFTWVyZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZmlsdGVycy9GRU1lcmdlLmNwcAppbmRleCAwYTIwMDAxYjE3M2JkOGZkZjZi
YmE2MzZjZDIzY2U0NzAyNmU3YjNmLi42OTdkMmUxNWNjYmYxYWVmZWQwZTg5ZmRhMzRlNzAzMjkz
MDdmNzNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0
ZXJzL0ZFTWVyZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Zp
bHRlcnMvRkVNZXJnZS5jcHAKQEAgLTI5LDcgKzI5LDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogRkVNZXJnZTo6RkVNZXJnZShGaWx0ZXImIGZpbHRlcikKLSAgICA6IEZpbHRlckVmZmVjdChm
aWx0ZXIsIFR5cGU6Ok1lcmdlKQorICAgIDogRmlsdGVyRWZmZWN0KGZpbHRlciwgRmlsdGVyRWZm
ZWN0OjpUeXBlOjpGRU1lcmdlKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFTWVyZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVNZXJnZS5oCmluZGV4IDVjZmM1Y2I3OTgxOWNlY2VkNTA3
M2U1N2IwMTk0ZWJjZjE4ZjI2MDcuLjI3NTBjNGQ1MjRkM2EwZjVhZTk3NDFmNjQ4MDQ0OTQ1MzQ1
ZDFhYjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRl
cnMvRkVNZXJnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRl
cnMvRkVNZXJnZS5oCkBAIC0zMyw4ICszMyw2IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgRkVN
ZXJnZShGaWx0ZXImKTsKIAotICAgIGNvbnN0IGNoYXIqIGZpbHRlck5hbWUoKSBjb25zdCBmaW5h
bCB7IHJldHVybiAiRkVNZXJnZSI7IH0KLQogICAgIHZvaWQgcGxhdGZvcm1BcHBseVNvZnR3YXJl
KCkgb3ZlcnJpZGU7CiAKICAgICBXVEY6OlRleHRTdHJlYW0mIGV4dGVybmFsUmVwcmVzZW50YXRp
b24oV1RGOjpUZXh0U3RyZWFtJiwgUmVwcmVzZW50YXRpb25UeXBlKSBjb25zdCBvdmVycmlkZTsK
QEAgLTQyLDMgKzQwLDQgQEAgcHJpdmF0ZToKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCitT
UEVDSUFMSVpFX1RZUEVfVFJBSVRTX0ZJTFRFUl9FRkZFQ1QoRkVNZXJnZSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVNb3JwaG9sb2d5LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVNb3JwaG9sb2d5
LmNwcAppbmRleCA4YTdlNWI2NjdhYjc3M2I5MGI4OTBlMzgzODYzOTM1NjJiOWQ4ZGY1Li44OTU1
ZDkyZDZiZjRiNzIyNTgyODMzMzA0YzljMWIxOWY5N2RmYzIzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFTW9ycGhvbG9neS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRU1vcnBob2xvZ3kuY3Bw
CkBAIC0zNiw3ICszNiw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIEZFTW9ycGhvbG9neTo6
RkVNb3JwaG9sb2d5KEZpbHRlciYgZmlsdGVyLCBNb3JwaG9sb2d5T3BlcmF0b3JUeXBlIHR5cGUs
IGZsb2F0IHJhZGl1c1gsIGZsb2F0IHJhZGl1c1kpCi0gICAgOiBGaWx0ZXJFZmZlY3QoZmlsdGVy
LCBUeXBlOjpNb3JwaG9sb2d5KQorICAgIDogRmlsdGVyRWZmZWN0KGZpbHRlciwgRmlsdGVyRWZm
ZWN0OjpUeXBlOjpGRU1vcnBob2xvZ3kpCiAgICAgLCBtX3R5cGUodHlwZSkKICAgICAsIG1fcmFk
aXVzWChyYWRpdXNYKQogICAgICwgbV9yYWRpdXNZKHJhZGl1c1kpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFTW9ycGhvbG9neS5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRU1vcnBob2xvZ3kuaAppbmRl
eCA0OGZjMzU0MTE3ZmMyN2NjZmM4ZTkzZjE0ZWRmMDc1ZGUzOWM1YTExLi4xYjY5YzYzMjZjYjBi
OTIzNmE5MGQzZDE0MjUzYWUwYjNlZTE0OTg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFTW9ycGhvbG9neS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVNb3JwaG9sb2d5LmgKQEAgLTQ4LDggKzQ4
LDYgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBGRU1vcnBob2xvZ3koRmlsdGVyJiwgTW9ycGhv
bG9neU9wZXJhdG9yVHlwZSwgZmxvYXQgcmFkaXVzWCwgZmxvYXQgcmFkaXVzWSk7CiAKLSAgICBj
b25zdCBjaGFyKiBmaWx0ZXJOYW1lKCkgY29uc3QgZmluYWwgeyByZXR1cm4gIkZFTW9ycGhvbG9n
eSI7IH0KLQogICAgIHZvaWQgcGxhdGZvcm1BcHBseVNvZnR3YXJlKCkgb3ZlcnJpZGU7CiAKICAg
ICB2b2lkIGRldGVybWluZUFic29sdXRlUGFpbnRSZWN0KCkgb3ZlcnJpZGU7CkBAIC04NiwzICs4
NCw0IEBAIHByaXZhdGU6CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAorU1BFQ0lBTElaRV9U
WVBFX1RSQUlUU19GSUxURVJfRUZGRUNUKEZFTW9ycGhvbG9neSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVPZmZzZXQuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRU9mZnNldC5jcHAKaW5kZXggMDI3
MGRiOTI0ODFhMzM5MmQzZDVhMWU5MTdjMmQ2NWFhNDE0MGY2OS4uZmUzY2RiNDhiMDc2ODQzNjdh
ZTdkNjQwYjM0NzM0OTRmYTJjNTk1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZmlsdGVycy9GRU9mZnNldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRU9mZnNldC5jcHAKQEAgLTMxLDcgKzMxLDcgQEAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAogRkVPZmZzZXQ6OkZFT2Zmc2V0KEZpbHRlciYgZmlsdGVyLCBm
bG9hdCBkeCwgZmxvYXQgZHkpCi0gICAgOiBGaWx0ZXJFZmZlY3QoZmlsdGVyLCBUeXBlOjpPZmZz
ZXQpCisgICAgOiBGaWx0ZXJFZmZlY3QoZmlsdGVyLCBGaWx0ZXJFZmZlY3Q6OlR5cGU6OkZFT2Zm
c2V0KQogICAgICwgbV9keChkeCkKICAgICAsIG1fZHkoZHkpCiB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFT2Zmc2V0LmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFT2Zmc2V0LmgKaW5kZXggNjVhYmRh
OTBhNDdiMWJmZTc2YWU1Yzc0YWFiNWFhMTY3ZmIxZTY5ZS4uZGI3MzIyNTVlZTc4ZDMzNjgwOWRi
NDIxNzg1YTkyZjg0NWI5NTI2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZmlsdGVycy9GRU9mZnNldC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2ZpbHRlcnMvRkVPZmZzZXQuaApAQCAtMzksOCArMzksNiBAQCBwdWJsaWM6CiBw
cml2YXRlOgogICAgIEZFT2Zmc2V0KEZpbHRlciYsIGZsb2F0IGR4LCBmbG9hdCBkeSk7CiAKLSAg
ICBjb25zdCBjaGFyKiBmaWx0ZXJOYW1lKCkgY29uc3QgZmluYWwgeyByZXR1cm4gIkZFT2Zmc2V0
IjsgfQotCiAgICAgdm9pZCBwbGF0Zm9ybUFwcGx5U29mdHdhcmUoKSBvdmVycmlkZTsKICAgICAK
ICAgICB2b2lkIGRldGVybWluZUFic29sdXRlUGFpbnRSZWN0KCkgb3ZlcnJpZGU7CkBAIC01Mywz
ICs1MSw0IEBAIHByaXZhdGU6CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAorU1BFQ0lBTEla
RV9UWVBFX1RSQUlUU19GSUxURVJfRUZGRUNUKEZFT2Zmc2V0KQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRVNwZWN1bGFyTGlnaHRpbmcuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRVNwZWN1bGFyTGln
aHRpbmcuY3BwCmluZGV4IDU5OTcyMzA2ODg2YTYzZmE0MTJiNWI3MTQxZjc0ZjljNDg3YTE0NGMu
LjUyZjQ1MDg0MDkwYWRjYjA0ZDdlNDUxMjA1OGVhN2EyYWNkYThmM2MgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVTcGVjdWxhckxpZ2h0aW5n
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFU3Bl
Y3VsYXJMaWdodGluZy5jcHAKQEAgLTI4LDcgKzI4LDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogRkVTcGVjdWxhckxpZ2h0aW5nOjpGRVNwZWN1bGFyTGlnaHRpbmcoRmlsdGVyJiBmaWx0ZXIs
IGNvbnN0IENvbG9yJiBsaWdodGluZ0NvbG9yLCBmbG9hdCBzdXJmYWNlU2NhbGUsIGZsb2F0IHNw
ZWN1bGFyQ29uc3RhbnQsIGZsb2F0IHNwZWN1bGFyRXhwb25lbnQsIGZsb2F0IGtlcm5lbFVuaXRM
ZW5ndGhYLCBmbG9hdCBrZXJuZWxVbml0TGVuZ3RoWSwgUmVmPExpZ2h0U291cmNlPiYmIGxpZ2h0
U291cmNlKQotICAgIDogRkVMaWdodGluZyhmaWx0ZXIsIFNwZWN1bGFyTGlnaHRpbmcsIGxpZ2h0
aW5nQ29sb3IsIHN1cmZhY2VTY2FsZSwgMCwgc3BlY3VsYXJDb25zdGFudCwgc3BlY3VsYXJFeHBv
bmVudCwga2VybmVsVW5pdExlbmd0aFgsIGtlcm5lbFVuaXRMZW5ndGhZLCBXVEZNb3ZlKGxpZ2h0
U291cmNlKSwgVHlwZTo6U3BlY3VsYXJMaWdodGluZykKKyAgICA6IEZFTGlnaHRpbmcoZmlsdGVy
LCBTcGVjdWxhckxpZ2h0aW5nLCBsaWdodGluZ0NvbG9yLCBzdXJmYWNlU2NhbGUsIDAsIHNwZWN1
bGFyQ29uc3RhbnQsIHNwZWN1bGFyRXhwb25lbnQsIGtlcm5lbFVuaXRMZW5ndGhYLCBrZXJuZWxV
bml0TGVuZ3RoWSwgV1RGTW92ZShsaWdodFNvdXJjZSksIEZpbHRlckVmZmVjdDo6VHlwZTo6RkVT
cGVjdWxhckxpZ2h0aW5nKQogewogfQogCkBAIC0zNyw4ICszNyw2IEBAIFJlZjxGRVNwZWN1bGFy
TGlnaHRpbmc+IEZFU3BlY3VsYXJMaWdodGluZzo6Y3JlYXRlKEZpbHRlciYgZmlsdGVyLCBjb25z
dCBDb2xvciYKICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBGRVNwZWN1bGFyTGlnaHRpbmcoZmls
dGVyLCBsaWdodGluZ0NvbG9yLCBzdXJmYWNlU2NhbGUsIHNwZWN1bGFyQ29uc3RhbnQsIHNwZWN1
bGFyRXhwb25lbnQsIGtlcm5lbFVuaXRMZW5ndGhYLCBrZXJuZWxVbml0TGVuZ3RoWSwgV1RGTW92
ZShsaWdodFNvdXJjZSkpKTsKIH0KIAotRkVTcGVjdWxhckxpZ2h0aW5nOjp+RkVTcGVjdWxhckxp
Z2h0aW5nKCkgPSBkZWZhdWx0OwotCiBib29sIEZFU3BlY3VsYXJMaWdodGluZzo6c2V0U3BlY3Vs
YXJDb25zdGFudChmbG9hdCBzcGVjdWxhckNvbnN0YW50KQogewogICAgIGlmIChtX3NwZWN1bGFy
Q29uc3RhbnQgPT0gc3BlY3VsYXJDb25zdGFudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVTcGVjdWxhckxpZ2h0aW5nLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFU3BlY3VsYXJMaWdodGluZy5oCmlu
ZGV4IGU5OThhNzYwNWQxZTQ3MzVkOWY0OTc5OGQzOTgxOGJmM2IyNDk1OGEuLjliYmJhOGE4ZjFm
YzZmMDEwNDU3NjBkYTgwZDM1ZjhjZDI3N2NlMTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVTcGVjdWxhckxpZ2h0aW5nLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRVNwZWN1bGFyTGlnaHRpbmcu
aApAQCAtMjgsNyArMjgsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBGRVNwZWN1bGFy
TGlnaHRpbmcgOiBwdWJsaWMgRkVMaWdodGluZyB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxG
RVNwZWN1bGFyTGlnaHRpbmc+IGNyZWF0ZShGaWx0ZXImLCBjb25zdCBDb2xvciYsIGZsb2F0LCBm
bG9hdCwgZmxvYXQsIGZsb2F0LCBmbG9hdCwgUmVmPExpZ2h0U291cmNlPiYmKTsKLSAgICB2aXJ0
dWFsIH5GRVNwZWN1bGFyTGlnaHRpbmcoKTsKIAogICAgIGZsb2F0IHNwZWN1bGFyQ29uc3RhbnQo
KSBjb25zdCB7IHJldHVybiBtX3NwZWN1bGFyQ29uc3RhbnQ7IH0KICAgICBib29sIHNldFNwZWN1
bGFyQ29uc3RhbnQoZmxvYXQpOwpAQCAtNDQsMyArNDMsNCBAQCBwcml2YXRlOgogCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCiAKK1NQRUNJQUxJWkVfVFlQRV9UUkFJVFNfRklMVEVSX0VGRkVDVChG
RVNwZWN1bGFyTGlnaHRpbmcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9maWx0ZXJzL0ZFVGlsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9maWx0ZXJzL0ZFVGlsZS5jcHAKaW5kZXggMzVjNTFjYmIyMjlkZWU5NjQyZGMxZTdkY2Ew
YzVkYjJmY2FjMjBhZC4uMzU4OTVmZjJkOTM1NDRkYmM0MzkwZDA2ODEzOTU0NzU5NTc3MWYwZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRVRp
bGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVU
aWxlLmNwcApAQCAtMzIsNyArMzIsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBGRVRpbGU6
OkZFVGlsZShGaWx0ZXImIGZpbHRlcikKLSAgICA6IEZpbHRlckVmZmVjdChmaWx0ZXIsIFR5cGU6
OlRpbGUpCisgICAgOiBGaWx0ZXJFZmZlY3QoZmlsdGVyLCBGaWx0ZXJFZmZlY3Q6OlR5cGU6OkZF
VGlsZSkKIHsKIH0KIApAQCAtNTgsNyArNTgsNyBAQCB2b2lkIEZFVGlsZTo6cGxhdGZvcm1BcHBs
eVNvZnR3YXJlKCkKICAgICBGbG9hdFJlY3QgdGlsZVJlY3QgPSBpbi0+bWF4RWZmZWN0UmVjdCgp
OwogICAgIEZsb2F0UG9pbnQgaW5NYXhFZmZlY3RMb2NhdGlvbiA9IHRpbGVSZWN0LmxvY2F0aW9u
KCk7CiAgICAgRmxvYXRQb2ludCBtYXhFZmZlY3RMb2NhdGlvbiA9IG1heEVmZmVjdFJlY3QoKS5s
b2NhdGlvbigpOwotICAgIGlmIChpbi0+ZmlsdGVyRWZmZWN0VHlwZSgpID09IEZpbHRlckVmZmVj
dFR5cGVTb3VyY2VJbnB1dCkgeworICAgIGlmIChpbi0+ZmlsdGVyVHlwZSgpID09IEZpbHRlckVm
ZmVjdDo6VHlwZTo6U291cmNlR3JhcGhpYyB8fCBpbi0+ZmlsdGVyVHlwZSgpID09IEZpbHRlckVm
ZmVjdDo6VHlwZTo6U291cmNlQWxwaGEpIHsKICAgICAgICAgRmlsdGVyJiBmaWx0ZXIgPSB0aGlz
LT5maWx0ZXIoKTsKICAgICAgICAgdGlsZVJlY3QgPSBmaWx0ZXIuZmlsdGVyUmVnaW9uKCk7CiAg
ICAgICAgIHRpbGVSZWN0LnNjYWxlKGZpbHRlci5maWx0ZXJSZXNvbHV0aW9uKCkud2lkdGgoKSwg
ZmlsdGVyLmZpbHRlclJlc29sdXRpb24oKS5oZWlnaHQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFVGlsZS5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRVRpbGUuaAppbmRleCA0OWJkOTlmMDk0NDdk
YWUxY2YwOWFmMTIzNThjNmRlODQwNjg3NzE0Li41YzQ4ZWY0NTE1MGVjMmNmODc5ZmRkYjdlNDhl
OWU5ZThkNTAyNDFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9maWx0ZXJzL0ZFVGlsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2ZpbHRlcnMvRkVUaWxlLmgKQEAgLTMzLDEwICszMyw2IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAg
ICAgRkVUaWxlKEZpbHRlciYpOwogCi0gICAgY29uc3QgY2hhciogZmlsdGVyTmFtZSgpIGNvbnN0
IGZpbmFsIHsgcmV0dXJuICJGRVRpbGUiOyB9Ci0KLSAgICBGaWx0ZXJFZmZlY3RUeXBlIGZpbHRl
ckVmZmVjdFR5cGUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBGaWx0ZXJFZmZlY3RUeXBlVGls
ZTsgfQotCiAgICAgdm9pZCBwbGF0Zm9ybUFwcGx5U29mdHdhcmUoKSBvdmVycmlkZTsKIAogICAg
IHZvaWQgZGV0ZXJtaW5lQWJzb2x1dGVQYWludFJlY3QoKSBvdmVycmlkZSB7IHNldEFic29sdXRl
UGFpbnRSZWN0KGVuY2xvc2luZ0ludFJlY3QobWF4RWZmZWN0UmVjdCgpKSk7IH0KQEAgLTQ2LDMg
KzQyLDQgQEAgcHJpdmF0ZToKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCitTUEVDSUFMSVpF
X1RZUEVfVFJBSVRTX0ZJTFRFUl9FRkZFQ1QoRkVUaWxlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRVR1cmJ1bGVuY2UuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRVR1cmJ1bGVuY2UuY3BwCmluZGV4
IGFjMjM0NmU4YTRiYTU4YWFhOTI0YTZkNjdiZDVlNGI3N2RkMjI2OGYuLmQzNGJjYjBjZDgzMDYx
ODMxNzI3MDU5MjY2ODFkY2NhMWEzNzgxMzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVUdXJidWxlbmNlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFVHVyYnVsZW5jZS5jcHAKQEAgLTQ5LDcg
KzQ5LDcgQEAgc3RhdGljIGNvbnN0IGludCBzX3JhbmRRID0gMTI3NzczOyAvLyBtIC8gYQogc3Rh
dGljIGNvbnN0IGludCBzX3JhbmRSID0gMjgzNjsgLy8gbSAlIGEKIAogRkVUdXJidWxlbmNlOjpG
RVR1cmJ1bGVuY2UoRmlsdGVyJiBmaWx0ZXIsIFR1cmJ1bGVuY2VUeXBlIHR5cGUsIGZsb2F0IGJh
c2VGcmVxdWVuY3lYLCBmbG9hdCBiYXNlRnJlcXVlbmN5WSwgaW50IG51bU9jdGF2ZXMsIGZsb2F0
IHNlZWQsIGJvb2wgc3RpdGNoVGlsZXMpCi0gICAgOiBGaWx0ZXJFZmZlY3QoZmlsdGVyLCBUeXBl
OjpUdXJidWxlbmNlKQorICAgIDogRmlsdGVyRWZmZWN0KGZpbHRlciwgRmlsdGVyRWZmZWN0OjpU
eXBlOjpGRVR1cmJ1bGVuY2UpCiAgICAgLCBtX3R5cGUodHlwZSkKICAgICAsIG1fYmFzZUZyZXF1
ZW5jeVgoYmFzZUZyZXF1ZW5jeVgpCiAgICAgLCBtX2Jhc2VGcmVxdWVuY3lZKGJhc2VGcmVxdWVu
Y3lZKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVy
cy9GRVR1cmJ1bGVuY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRl
cnMvRkVUdXJidWxlbmNlLmgKaW5kZXggNGQ1MzZiMzdhODBhYWRmOTExZWJmY2U4OTc3NGNkM2Nj
ZWNiNWNmYi4uNTgxZmJlZjBhN2Q2YzFiNDNiN2ExOGUwNzhmZjI5NzNjZTEwY2FkNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRVR1cmJ1bGVu
Y2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFVHVy
YnVsZW5jZS5oCkBAIC0xMDgsOCArMTA4LDYgQEAgcHJpdmF0ZToKIAogICAgIEZFVHVyYnVsZW5j
ZShGaWx0ZXImLCBUdXJidWxlbmNlVHlwZSwgZmxvYXQsIGZsb2F0LCBpbnQsIGZsb2F0LCBib29s
KTsKIAotICAgIGNvbnN0IGNoYXIqIGZpbHRlck5hbWUoKSBjb25zdCBmaW5hbCB7IHJldHVybiAi
RkVUdXJidWxlbmNlIjsgfQotCiAgICAgdm9pZCBwbGF0Zm9ybUFwcGx5U29mdHdhcmUoKSBvdmVy
cmlkZTsKICAgICB2b2lkIGRldGVybWluZUFic29sdXRlUGFpbnRSZWN0KCkgb3ZlcnJpZGUgeyBz
ZXRBYnNvbHV0ZVBhaW50UmVjdChlbmNsb3NpbmdJbnRSZWN0KG1heEVmZmVjdFJlY3QoKSkpOyB9
CiAgICAgV1RGOjpUZXh0U3RyZWFtJiBleHRlcm5hbFJlcHJlc2VudGF0aW9uKFdURjo6VGV4dFN0
cmVhbSYsIFJlcHJlc2VudGF0aW9uVHlwZSkgY29uc3Qgb3ZlcnJpZGU7CkBAIC0xMzIsMyArMTMw
LDQgQEAgcHJpdmF0ZToKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCitTUEVDSUFMSVpFX1RZ
UEVfVFJBSVRTX0ZJTFRFUl9FRkZFQ1QoRkVUdXJidWxlbmNlKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyLmgKaW5kZXggYTJkOTk3OTNiMGRi
MjI1OGJjNDc2ZGRjYzI5YzBjZTI2MTEwYmMxZi4uODcyNzgyODEwYmJlMDY3MWEzZjA2N2E1OTUz
MDlkZjE3ZWVhNGQyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZmlsdGVycy9GaWx0ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9maWx0ZXJzL0ZpbHRlci5oCkBAIC0xLDYgKzEsNyBAQAogLyoKICAqIENvcHlyaWdodCAoQykg
MjAwOSBEaXJrIFNjaHVsemUgPGtyaXRAd2Via2l0Lm9yZz4KICAqIENvcHlyaWdodCAoQykgMjAx
MyBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDIx
IEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlz
IGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5
IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAg
LTIxLDIzICsyMiwxNyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJBZmZpbmVUcmFuc2Zv
cm0uaCIKKyNpbmNsdWRlICJGaWx0ZXJGdW5jdGlvbi5oIgogI2luY2x1ZGUgIkZsb2F0UmVjdC5o
IgogI2luY2x1ZGUgIkdyYXBoaWNzVHlwZXMuaCIKICNpbmNsdWRlICJJbWFnZUJ1ZmZlci5oIgot
I2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xh
c3MgRmlsdGVyRWZmZWN0OwogCi1jbGFzcyBGaWx0ZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxGaWx0
ZXI+IHsKK2NsYXNzIEZpbHRlciA6IHB1YmxpYyBGaWx0ZXJGdW5jdGlvbiB7CiBwdWJsaWM6Ci0g
ICAgRmlsdGVyKGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgYWJzb2x1dGVUcmFuc2Zvcm0sIGZsb2F0
IGZpbHRlclNjYWxlID0gMSkKLSAgICAgICAgOiBtX2Fic29sdXRlVHJhbnNmb3JtKGFic29sdXRl
VHJhbnNmb3JtKQotICAgICAgICAsIG1fZmlsdGVyU2NhbGUoZmlsdGVyU2NhbGUpCi0gICAgeyB9
Ci0gICAgdmlydHVhbCB+RmlsdGVyKCkgPSBkZWZhdWx0OwotCiAgICAgdm9pZCBzZXRTb3VyY2VJ
bWFnZShSZWZQdHI8SW1hZ2VCdWZmZXI+JiYgc291cmNlSW1hZ2UpIHsgbV9zb3VyY2VJbWFnZSA9
IFdURk1vdmUoc291cmNlSW1hZ2UpOyB9CiAgICAgSW1hZ2VCdWZmZXIqIHNvdXJjZUltYWdlKCkg
eyByZXR1cm4gbV9zb3VyY2VJbWFnZS5nZXQoKTsgfQogCkBAIC02Miw4ICs1NywxNiBAQCBwdWJs
aWM6CiAgICAgdmlydHVhbCBGbG9hdFJlY3QgZmlsdGVyUmVnaW9uSW5Vc2VyU3BhY2UoKSBjb25z
dCA9IDA7CiAKIHByb3RlY3RlZDoKLSAgICBleHBsaWNpdCBGaWx0ZXIoY29uc3QgRmxvYXRTaXpl
JiBmaWx0ZXJSZXNvbHV0aW9uKQotICAgICAgICA6IG1fZmlsdGVyUmVzb2x1dGlvbihmaWx0ZXJS
ZXNvbHV0aW9uKQorICAgIEZpbHRlcihGaWx0ZXI6OlR5cGUgZmlsdGVyVHlwZSwgY29uc3QgQWZm
aW5lVHJhbnNmb3JtJiBhYnNvbHV0ZVRyYW5zZm9ybSwgZmxvYXQgZmlsdGVyU2NhbGUgPSAxKQor
ICAgICAgICA6IEZpbHRlckZ1bmN0aW9uKGZpbHRlclR5cGUpCisgICAgICAgICwgbV9hYnNvbHV0
ZVRyYW5zZm9ybShhYnNvbHV0ZVRyYW5zZm9ybSkKKyAgICAgICAgLCBtX2ZpbHRlclNjYWxlKGZp
bHRlclNjYWxlKQorICAgIHsKKyAgICB9CisKKyAgICBGaWx0ZXIoRmlsdGVyOjpUeXBlIGZpbHRl
clR5cGUsIGNvbnN0IEZsb2F0U2l6ZSYgZmlsdGVyUmVzb2x1dGlvbikKKyAgICAgICAgOiBGaWx0
ZXJGdW5jdGlvbihmaWx0ZXJUeXBlKQorICAgICAgICAsIG1fZmlsdGVyUmVzb2x1dGlvbihmaWx0
ZXJSZXNvbHV0aW9uKQogICAgIHsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyRWZmZWN0LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyRWZmZWN0LmNwcAppbmRleCBmYjY3
NzU0ZTRmYzViYmNhNTFjMzQ4ZWM3ZjYzZTRjYzkyN2RiMTA4Li5iMTNlNjgyMzY2MzVmODU1MDRm
ZTE5OWIwOWEyOGZlMjY3MjgxNGQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlckVmZmVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXJFZmZlY3QuY3BwCkBAIC00NSwxNCArNDUs
MTIgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1GaWx0ZXJFZmZlY3Q6OkZpbHRlckVmZmVj
dChGaWx0ZXImIGZpbHRlciwgVHlwZSB0eXBlKQotICAgIDogbV9maWx0ZXIoZmlsdGVyKQotICAg
ICwgbV9maWx0ZXJFZmZlY3RDbGFzc1R5cGUodHlwZSkKK0ZpbHRlckVmZmVjdDo6RmlsdGVyRWZm
ZWN0KEZpbHRlciYgZmlsdGVyLCBGaWx0ZXJFZmZlY3Q6OlR5cGUgdHlwZSkKKyAgICA6IEZpbHRl
ckZ1bmN0aW9uKHR5cGUpCisgICAgLCBtX2ZpbHRlcihmaWx0ZXIpCiB7CiB9CiAKLUZpbHRlckVm
ZmVjdDo6fkZpbHRlckVmZmVjdCgpID0gZGVmYXVsdDsKLQogdm9pZCBGaWx0ZXJFZmZlY3Q6OmRl
dGVybWluZUFic29sdXRlUGFpbnRSZWN0KCkKIHsKICAgICBtX2Fic29sdXRlUGFpbnRSZWN0ID0g
SW50UmVjdCgpOwpAQCAtMTEwLDcgKzEwOCw3IEBAIEZsb2F0UmVjdCBGaWx0ZXJFZmZlY3Q6OmRl
dGVybWluZUZpbHRlclByaW1pdGl2ZVN1YnJlZ2lvbigpCiAgICAgICAgIHN1YnJlZ2lvbiA9IG1f
ZmlsdGVyLmZpbHRlclJlZ2lvbkluVXNlclNwYWNlKCk7CiAKICAgICAvLyBBZnRlciBjYWxsaW5n
IGRldGVybWluZUZpbHRlclByaW1pdGl2ZVN1YnJlZ2lvbiBvbiB0aGUgdGFyZ2V0IGVmZmVjdCwg
cmVzZXQgdGhlIHN1YnJlZ2lvbiBhZ2FpbiBmb3IgPGZlVGlsZT4uCi0gICAgaWYgKGZpbHRlckVm
ZmVjdFR5cGUoKSA9PSBGaWx0ZXJFZmZlY3RUeXBlVGlsZSkKKyAgICBpZiAoZmlsdGVyVHlwZSgp
ID09IEZpbHRlckVmZmVjdDo6VHlwZTo6RkVUaWxlKQogICAgICAgICBzdWJyZWdpb24gPSBtX2Zp
bHRlci5maWx0ZXJSZWdpb25JblVzZXJTcGFjZSgpOwogCiAgICAgYXV0byBib3VuZGFyaWVzID0g
ZWZmZWN0Qm91bmRhcmllcygpOwpAQCAtNTcyLDcgKzU3MCw3IEBAIHZvaWQgRmlsdGVyRWZmZWN0
Ojpjb3B5UHJlbXVsdGlwbGllZFJlc3VsdChVaW50OENsYW1wZWRBcnJheSYgZGVzdGluYXRpb24s
IGNvbnN0CiAKIEltYWdlQnVmZmVyKiBGaWx0ZXJFZmZlY3Q6OmNyZWF0ZUltYWdlQnVmZmVyUmVz
dWx0KCkKIHsKLSAgICBMT0coRmlsdGVycywgIkZpbHRlckVmZmVjdCAlcyAlcCBjcmVhdGVJbWFn
ZUJ1ZmZlclJlc3VsdCAlZHglZCIsIGZpbHRlck5hbWUoKSwgdGhpcywgbV9hYnNvbHV0ZVBhaW50
UmVjdC5zaXplKCkud2lkdGgoKSwgbV9hYnNvbHV0ZVBhaW50UmVjdC5zaXplKCkuaGVpZ2h0KCkp
OworICAgIExPRyhGaWx0ZXJzLCAiRmlsdGVyRWZmZWN0ICVzICVwIGNyZWF0ZUltYWdlQnVmZmVy
UmVzdWx0ICVkeCVkIiwgZmlsdGVyTmFtZSgpLmNoYXJhY3RlcnM4KCksIHRoaXMsIG1fYWJzb2x1
dGVQYWludFJlY3Quc2l6ZSgpLndpZHRoKCksIG1fYWJzb2x1dGVQYWludFJlY3Quc2l6ZSgpLmhl
aWdodCgpKTsKIAogICAgIC8vIE9ubHkgb25lIHJlc3VsdCB0eXBlIGlzIGFsbG93ZWQuCiAgICAg
QVNTRVJUKCFoYXNSZXN1bHQoKSk7CkBAIC01ODYsNyArNTg0LDcgQEAgSW1hZ2VCdWZmZXIqIEZp
bHRlckVmZmVjdDo6Y3JlYXRlSW1hZ2VCdWZmZXJSZXN1bHQoKQogCiBzdGQ6Om9wdGlvbmFsPFBp
eGVsQnVmZmVyPiYgRmlsdGVyRWZmZWN0OjpjcmVhdGVVbm11bHRpcGxpZWRJbWFnZVJlc3VsdCgp
CiB7Ci0gICAgTE9HKEZpbHRlcnMsICJGaWx0ZXJFZmZlY3QgJXMgJXAgY3JlYXRlVW5tdWx0aXBs
aWVkSW1hZ2VSZXN1bHQiLCBmaWx0ZXJOYW1lKCksIHRoaXMpOworICAgIExPRyhGaWx0ZXJzLCAi
RmlsdGVyRWZmZWN0ICVzICVwIGNyZWF0ZVVubXVsdGlwbGllZEltYWdlUmVzdWx0IiwgZmlsdGVy
TmFtZSgpLmNoYXJhY3RlcnM4KCksIHRoaXMpOwogCiAgICAgLy8gT25seSBvbmUgcmVzdWx0IHR5
cGUgaXMgYWxsb3dlZC4KICAgICBBU1NFUlQoIWhhc1Jlc3VsdCgpKTsKQEAgLTYwNSw3ICs2MDMs
NyBAQCBzdGQ6Om9wdGlvbmFsPFBpeGVsQnVmZmVyPiYgRmlsdGVyRWZmZWN0OjpjcmVhdGVVbm11
bHRpcGxpZWRJbWFnZVJlc3VsdCgpCiAKIHN0ZDo6b3B0aW9uYWw8UGl4ZWxCdWZmZXI+JiBGaWx0
ZXJFZmZlY3Q6OmNyZWF0ZVByZW11bHRpcGxpZWRJbWFnZVJlc3VsdCgpCiB7Ci0gICAgTE9HKEZp
bHRlcnMsICJGaWx0ZXJFZmZlY3QgJXMgJXAgY3JlYXRlUHJlbXVsdGlwbGllZEltYWdlUmVzdWx0
IiwgZmlsdGVyTmFtZSgpLCB0aGlzKTsKKyAgICBMT0coRmlsdGVycywgIkZpbHRlckVmZmVjdCAl
cyAlcCBjcmVhdGVQcmVtdWx0aXBsaWVkSW1hZ2VSZXN1bHQiLCBmaWx0ZXJOYW1lKCkuY2hhcmFj
dGVyczgoKSwgdGhpcyk7CiAKICAgICAvLyBPbmx5IG9uZSByZXN1bHQgdHlwZSBpcyBhbGxvd2Vk
LgogICAgIEFTU0VSVCghaGFzUmVzdWx0KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXJFZmZlY3QuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyRWZmZWN0LmgKaW5kZXggMTJkZWQyNjVh
NjU1YzM3ZTc3ZTJjZjA1YjUyNzczZjJiOTZiNDcxYy4uNTUyN2Y2YmY0YmY2MjhlNzE1MGY4MWQ1
ZWZiMzlkZjMxYTI5MWI3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZmlsdGVycy9GaWx0ZXJFZmZlY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlckVmZmVjdC5oCkBAIC0yNCwxMyArMjQsMTMgQEAKIAog
I2luY2x1ZGUgIkFscGhhUHJlbXVsdGlwbGljYXRpb24uaCIKICNpbmNsdWRlICJEZXN0aW5hdGlv
bkNvbG9yU3BhY2UuaCIKKyNpbmNsdWRlICJGaWx0ZXJGdW5jdGlvbi5oIgogI2luY2x1ZGUgIkZs
b2F0UmVjdC5oIgogI2luY2x1ZGUgIkludFJlY3QuaCIKICNpbmNsdWRlICJJbnRSZWN0RXh0ZW50
LmgiCiAjaW5jbHVkZSAiUGl4ZWxCdWZmZXIuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9G
b3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL01hdGhFeHRyYXMuaD4KLSNpbmNsdWRlIDx3dGYvUmVm
Q291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9y
Lmg+CiAKQEAgLTQ2LDM5ICs0Niw4IEBAIGNsYXNzIEltYWdlQnVmZmVyOwogCiB0eXBlZGVmIFZl
Y3RvcjxSZWZQdHI8RmlsdGVyRWZmZWN0Pj4gRmlsdGVyRWZmZWN0VmVjdG9yOwogCi1lbnVtIEZp
bHRlckVmZmVjdFR5cGUgewotICAgIEZpbHRlckVmZmVjdFR5cGVVbmtub3duLAotICAgIEZpbHRl
ckVmZmVjdFR5cGVJbWFnZSwKLSAgICBGaWx0ZXJFZmZlY3RUeXBlVGlsZSwKLSAgICBGaWx0ZXJF
ZmZlY3RUeXBlU291cmNlSW5wdXQKLX07Ci0KLWNsYXNzIEZpbHRlckVmZmVjdCA6IHB1YmxpYyBS
ZWZDb3VudGVkPEZpbHRlckVmZmVjdD4geworY2xhc3MgRmlsdGVyRWZmZWN0IDogcHVibGljIEZp
bHRlckZ1bmN0aW9uIHsKIHB1YmxpYzoKLSAgICBlbnVtIGNsYXNzIFR5cGUgOiB1aW50OF90IHsK
LSAgICAgICAgQmxlbmQsCi0gICAgICAgIENvbG9yTWF0cml4LAotICAgICAgICBDb21wb25lbnRU
cmFuc2ZlciwKLSAgICAgICAgQ29tcG9zaXRlLAotICAgICAgICBDb252b2x2ZU1hdHJpeCwKLSAg
ICAgICAgRGlmZnVzZUxpZ2h0aW5nLAotICAgICAgICBEaXNwbGFjZW1lbnRNYXAsCi0gICAgICAg
IERyb3BTaGFkb3csCi0gICAgICAgIEZsb29kLAotICAgICAgICBHYXVzc2lhbkJsdXIsCi0gICAg
ICAgIEltYWdlLAotICAgICAgICBMaWdodGluZywKLSAgICAgICAgTWVyZ2UsCi0gICAgICAgIE1v
cnBob2xvZ3ksCi0gICAgICAgIE9mZnNldCwKLSAgICAgICAgU3BlY3VsYXJMaWdodGluZywKLSAg
ICAgICAgVGlsZSwKLSAgICAgICAgVHVyYnVsZW5jZSwKLSAgICAgICAgU291cmNlQWxwaGEsCi0g
ICAgICAgIFNvdXJjZUdyYXBoaWMKLSAgICB9OwotICAgIHZpcnR1YWwgfkZpbHRlckVmZmVjdCgp
OwotCiAgICAgdm9pZCBjbGVhclJlc3VsdCgpOwogICAgIHZvaWQgY2xlYXJSZXN1bHRzUmVjdXJz
aXZlKCk7CiAKQEAgLTEyNSw4ICs5NCw2IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBk
ZXRlcm1pbmVBYnNvbHV0ZVBhaW50UmVjdCgpOwogCi0gICAgdmlydHVhbCBGaWx0ZXJFZmZlY3RU
eXBlIGZpbHRlckVmZmVjdFR5cGUoKSBjb25zdCB7IHJldHVybiBGaWx0ZXJFZmZlY3RUeXBlVW5r
bm93bjsgfQotCiAgICAgdmlydHVhbCBJbnRPdXRzZXRzIG91dHNldHMoKSBjb25zdCB7IHJldHVy
biBJbnRPdXRzZXRzKCk7IH0KIAogICAgIGVudW0gY2xhc3MgUmVwcmVzZW50YXRpb25UeXBlIHsg
VGVzdE91dHB1dCwgRGVidWdnaW5nIH07CkBAIC0xNTYsOCArMTIzLDYgQEAgcHVibGljOgogICAg
IAogICAgIEZsb2F0UG9pbnQgbWFwUG9pbnRGcm9tVXNlclNwYWNlVG9CdWZmZXIoRmxvYXRQb2lu
dCkgY29uc3Q7CiAgICAgCi0gICAgVHlwZSBmaWx0ZXJFZmZlY3RDbGFzc1R5cGUoKSBjb25zdCB7
IHJldHVybiBtX2ZpbHRlckVmZmVjdENsYXNzVHlwZTsgfQotCiAgICAgRmlsdGVyJiBmaWx0ZXIo
KSB7IHJldHVybiBtX2ZpbHRlcjsgfQogICAgIGNvbnN0IEZpbHRlciYgZmlsdGVyKCkgY29uc3Qg
eyByZXR1cm4gbV9maWx0ZXI7IH0KIApAQCAtMTgzLDggKzE0OCw2IEBAIHB1YmxpYzoKIHByb3Rl
Y3RlZDoKICAgICBGaWx0ZXJFZmZlY3QoRmlsdGVyJiwgVHlwZSk7CiAgICAgCi0gICAgdmlydHVh
bCBjb25zdCBjaGFyKiBmaWx0ZXJOYW1lKCkgY29uc3QgPSAwOwotCiAgICAgSW1hZ2VCdWZmZXIq
IGNyZWF0ZUltYWdlQnVmZmVyUmVzdWx0KCk7CiAgICAgc3RkOjpvcHRpb25hbDxQaXhlbEJ1ZmZl
cj4mIGNyZWF0ZVVubXVsdGlwbGllZEltYWdlUmVzdWx0KCk7CiAgICAgc3RkOjpvcHRpb25hbDxQ
aXhlbEJ1ZmZlcj4mIGNyZWF0ZVByZW11bHRpcGxpZWRJbWFnZVJlc3VsdCgpOwpAQCAtMjQ4LDEx
ICsyMTEsMTcgQEAgcHJpdmF0ZToKICAgICBEZXN0aW5hdGlvbkNvbG9yU3BhY2UgbV9vcGVyYXRp
bmdDb2xvclNwYWNlIHsgRGVzdGluYXRpb25Db2xvclNwYWNlOjpTUkdCKCkgfTsKICNlbmRpZgog
ICAgIERlc3RpbmF0aW9uQ29sb3JTcGFjZSBtX3Jlc3VsdENvbG9yU3BhY2UgeyBEZXN0aW5hdGlv
bkNvbG9yU3BhY2U6OlNSR0IoKSB9OwotICAgIAotICAgIGNvbnN0IFR5cGUgbV9maWx0ZXJFZmZl
Y3RDbGFzc1R5cGU7CiB9OwogCiBXRUJDT1JFX0VYUE9SVCBXVEY6OlRleHRTdHJlYW0mIG9wZXJh
dG9yPDwoV1RGOjpUZXh0U3RyZWFtJiwgY29uc3QgRmlsdGVyRWZmZWN0Jik7CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKIAorU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19CRUdJTihXZWJDb3JlOjpG
aWx0ZXJFZmZlY3QpCisgICAgc3RhdGljIGJvb2wgaXNUeXBlKGNvbnN0IFdlYkNvcmU6OkZpbHRl
ckZ1bmN0aW9uJiBmdW5jdGlvbikgeyByZXR1cm4gZnVuY3Rpb24uaXNGaWx0ZXJFZmZlY3QoKTsg
fQorU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19FTkQoKQorCisjZGVmaW5lIFNQRUNJQUxJWkVfVFlQ
RV9UUkFJVFNfRklMVEVSX0VGRkVDVChDbGFzc05hbWUpIFwKK1NQRUNJQUxJWkVfVFlQRV9UUkFJ
VFNfQkVHSU4oV2ViQ29yZTo6Q2xhc3NOYW1lKSBcCisgICAgc3RhdGljIGJvb2wgaXNUeXBlKGNv
bnN0IFdlYkNvcmU6OkZpbHRlckVmZmVjdCYgZWZmZWN0KSB7IHJldHVybiBlZmZlY3QuZmlsdGVy
VHlwZSgpID09IFdlYkNvcmU6OkZpbHRlckVmZmVjdDo6VHlwZTo6Q2xhc3NOYW1lOyB9IFwKK1NQ
RUNJQUxJWkVfVFlQRV9UUkFJVFNfRU5EKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyRnVuY3Rpb24uY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXJGdW5jdGlvbi5jcHAKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMmY1YmIxNTYzODFkZWMxZTBiYWMyMmQ5MTE5YzJlMGVkODBlNGFmMQotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyRnVu
Y3Rpb24uY3BwCkBAIC0wLDAgKzEsODQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBw
bGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkZpbHRlckZ1
bmN0aW9uLmgiCisKKyNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorI2luY2x1ZGUgPHd0Zi9OZXZl
ckRlc3Ryb3llZC5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21TdHJpbmdIYXNoLmg+CisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworRmlsdGVyRnVuY3Rpb246OkZpbHRlckZ1bmN0aW9uKFR5cGUg
ZmlsdGVyVHlwZSkKKyAgICA6IG1fZmlsdGVyVHlwZShmaWx0ZXJUeXBlKQoreworfQorCitzdGF0
aWMgaW5saW5lIGNvbnN0IGF1dG8mIGZpbHRlck5hbWVzKCkKK3sKKyAgICB1c2luZyBGaWx0ZXJO
YW1lTWFwID0gSGFzaE1hcDxGaWx0ZXJGdW5jdGlvbjo6VHlwZSwgQXRvbVN0cmluZywgV1RGOjpJ
bnRIYXNoPEZpbHRlckZ1bmN0aW9uOjpUeXBlPiwgV1RGOjpTdHJvbmdFbnVtSGFzaFRyYWl0czxG
aWx0ZXJGdW5jdGlvbjo6VHlwZT4+OworCisgICAgc3RhdGljIGF1dG8gZmlsdGVyTmFtZXMgPSBt
YWtlTmV2ZXJEZXN0cm95ZWQoW10geworICAgICAgICBGaWx0ZXJOYW1lTWFwIGZpbHRlck5hbWVz
ID0geworICAgICAgICAgICAgeyBGaWx0ZXJGdW5jdGlvbjo6VHlwZTo6Q1NTRmlsdGVyLCAgICAg
ICAgICAgIkNTU0ZpbHRlciJfcyAgICAgICAgICAgfSwKKyAgICAgICAgICAgIHsgRmlsdGVyRnVu
Y3Rpb246OlR5cGU6OlNWR0ZpbHRlciwgICAgICAgICAgICJTVkdGaWx0ZXIiX3MgICAgICAgICAg
IH0sCisgICAgICAgICAgICAKKyAgICAgICAgICAgIHsgRmlsdGVyRnVuY3Rpb246OlR5cGU6OkZF
QmxlbmQsICAgICAgICAgICAgICJGRUJsZW5kIl9zICAgICAgICAgICAgIH0sCisgICAgICAgICAg
ICB7IEZpbHRlckZ1bmN0aW9uOjpUeXBlOjpGRUNvbG9yTWF0cml4LCAgICAgICAiRkVDb2xvck1h
dHJpeCJfcyAgICAgICB9LAorICAgICAgICAgICAgeyBGaWx0ZXJGdW5jdGlvbjo6VHlwZTo6RkVD
b21wb25lbnRUcmFuc2ZlciwgIkZFQ29tcG9uZW50VHJhbnNmZXIiX3MgfSwKKyAgICAgICAgICAg
IHsgRmlsdGVyRnVuY3Rpb246OlR5cGU6OkZFQ29tcG9zaXRlLCAgICAgICAgICJGRUNvbXBvc2l0
ZSJfcyAgICAgICAgIH0sCisgICAgICAgICAgICB7IEZpbHRlckZ1bmN0aW9uOjpUeXBlOjpGRUNv
bnZvbHZlTWF0cml4LCAgICAiRkVDb252b2x2ZU1hdHJpeCJfcyAgICB9LAorICAgICAgICAgICAg
eyBGaWx0ZXJGdW5jdGlvbjo6VHlwZTo6RkVEaWZmdXNlTGlnaHRpbmcsICAgIkZFRGlmZnVzZUxp
Z2h0aW5nIl9zICAgfSwKKyAgICAgICAgICAgIHsgRmlsdGVyRnVuY3Rpb246OlR5cGU6OkZFRGlz
cGxhY2VtZW50TWFwLCAgICJGRURpc3BsYWNlbWVudE1hcCJfcyAgIH0sCisgICAgICAgICAgICB7
IEZpbHRlckZ1bmN0aW9uOjpUeXBlOjpGRURyb3BTaGFkb3csICAgICAgICAiRkVEcm9wU2hhZG93
Il9zICAgICAgICB9LAorICAgICAgICAgICAgeyBGaWx0ZXJGdW5jdGlvbjo6VHlwZTo6RkVGbG9v
ZCwgICAgICAgICAgICAgIkZFRmxvb2QiX3MgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIHsg
RmlsdGVyRnVuY3Rpb246OlR5cGU6OkZFR2F1c3NpYW5CbHVyLCAgICAgICJGRUdhdXNzaWFuQmx1
ciJfcyAgICAgIH0sCisgICAgICAgICAgICB7IEZpbHRlckZ1bmN0aW9uOjpUeXBlOjpGRUltYWdl
LCAgICAgICAgICAgICAiRkVJbWFnZSJfcyAgICAgICAgICAgICB9LAorICAgICAgICAgICAgeyBG
aWx0ZXJGdW5jdGlvbjo6VHlwZTo6RkVNZXJnZSwgICAgICAgICAgICAgIkZFTWVyZ2UiX3MgICAg
ICAgICAgICAgfSwKKyAgICAgICAgICAgIHsgRmlsdGVyRnVuY3Rpb246OlR5cGU6OkZFTW9ycGhv
bG9neSwgICAgICAgICJGRU1vcnBob2xvZ3kiX3MgICAgICAgIH0sCisgICAgICAgICAgICB7IEZp
bHRlckZ1bmN0aW9uOjpUeXBlOjpGRU9mZnNldCwgICAgICAgICAgICAiRkVPZmZzZXQiX3MgICAg
ICAgICAgICB9LAorICAgICAgICAgICAgeyBGaWx0ZXJGdW5jdGlvbjo6VHlwZTo6RkVTcGVjdWxh
ckxpZ2h0aW5nLCAgIkZFU3BlY3VsYXJMaWdodGluZyJfcyAgfSwKKyAgICAgICAgICAgIHsgRmls
dGVyRnVuY3Rpb246OlR5cGU6OkZFVGlsZSwgICAgICAgICAgICAgICJGRVRpbGUiX3MgICAgICAg
ICAgICAgIH0sCisgICAgICAgICAgICB7IEZpbHRlckZ1bmN0aW9uOjpUeXBlOjpGRVR1cmJ1bGVu
Y2UsICAgICAgICAiRkVUdXJidWxlbmNlIl9zICAgICAgICB9LAorCisgICAgICAgICAgICB7IEZp
bHRlckZ1bmN0aW9uOjpUeXBlOjpTb3VyY2VBbHBoYSwgICAgICAgICAiU291cmNlQWxwaGEiX3Mg
ICAgICAgICB9LAorICAgICAgICAgICAgeyBGaWx0ZXJGdW5jdGlvbjo6VHlwZTo6U291cmNlR3Jh
cGhpYywgICAgICAgIlNvdXJjZUdyYXBoaWMiX3MgICAgICAgfQorCisgICAgICAgIH07CisgICAg
ICAgIHJldHVybiBmaWx0ZXJOYW1lczsKKyAgICB9KCkpOworICAgIAorICAgIHJldHVybiBmaWx0
ZXJOYW1lcy5nZXQoKTsKK30KKworY29uc3QgQXRvbVN0cmluZyYgRmlsdGVyRnVuY3Rpb246OmZp
bHRlck5hbWUoVHlwZSBmaWx0ZXJUeXBlKQoreworICAgIGF1dG8gaXQgPSBmaWx0ZXJOYW1lcygp
LmZpbmQoZmlsdGVyVHlwZSk7CisgICAgQVNTRVJUKGl0ICE9IGZpbHRlck5hbWVzKCkuZW5kKCkp
OworICAgIHJldHVybiBpdC0+dmFsdWU7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVy
RnVuY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmls
dGVyRnVuY3Rpb24uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wMDU2ZDlhYTFlODQwNDdmMTc3MzgxNTNmOWVjYTU5
NzkyNjg0YTcxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZmlsdGVycy9GaWx0ZXJGdW5jdGlvbi5oCkBAIC0wLDAgKzEsMTIwIEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMg
SVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisj
aW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9BdG9tU3RyaW5n
Lmg+CisKK25hbWVzcGFjZSBXVEYgeworY2xhc3MgVGV4dFN0cmVhbTsKK30KKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCitjbGFzcyBGaWx0ZXJGdW5jdGlvbiA6IHB1YmxpYyBSZWZDb3VudGVkPEZp
bHRlckZ1bmN0aW9uPiB7CitwdWJsaWM6CisgICAgZW51bSBjbGFzcyBUeXBlIDogdWludDhfdCB7
CisgICAgICAgIENTU0ZpbHRlciwKKyAgICAgICAgU1ZHRmlsdGVyLAorCisgICAgICAgIEZFTWlu
aW11bSwKKworICAgICAgICBGRUJsZW5kID0gRkVNaW5pbXVtLAorICAgICAgICBGRUNvbG9yTWF0
cml4LAorICAgICAgICBGRUNvbXBvbmVudFRyYW5zZmVyLAorICAgICAgICBGRUNvbXBvc2l0ZSwK
KyAgICAgICAgRkVDb252b2x2ZU1hdHJpeCwKKyAgICAgICAgRkVEaWZmdXNlTGlnaHRpbmcsCisg
ICAgICAgIEZFRGlzcGxhY2VtZW50TWFwLAorICAgICAgICBGRURyb3BTaGFkb3csCisgICAgICAg
IEZFRmxvb2QsCisgICAgICAgIEZFR2F1c3NpYW5CbHVyLAorICAgICAgICBGRUltYWdlLAorICAg
ICAgICBGRU1lcmdlLAorICAgICAgICBGRU1vcnBob2xvZ3ksCisgICAgICAgIEZFT2Zmc2V0LAor
ICAgICAgICBGRVNwZWN1bGFyTGlnaHRpbmcsCisgICAgICAgIEZFVGlsZSwKKyAgICAgICAgRkVU
dXJidWxlbmNlLAorICAgICAgICBTb3VyY2VBbHBoYSwKKyAgICAgICAgU291cmNlR3JhcGhpYywK
KworICAgICAgICBGRU1heGltdW0gPSBTb3VyY2VHcmFwaGljCisgICAgfTsKKworICAgIEZpbHRl
ckZ1bmN0aW9uKFR5cGUpOworICAgIHZpcnR1YWwgfkZpbHRlckZ1bmN0aW9uKCkgPSBkZWZhdWx0
OworCisgICAgVHlwZSBmaWx0ZXJUeXBlKCkgY29uc3QgeyByZXR1cm4gbV9maWx0ZXJUeXBlOyB9
CisKKyAgICBib29sIGlzQ1NTRmlsdGVyKCkgY29uc3QgeyByZXR1cm4gbV9maWx0ZXJUeXBlID09
IFR5cGU6OkNTU0ZpbHRlcjsgfQorICAgIGJvb2wgaXNTVkdGaWx0ZXIoKSBjb25zdCB7IHJldHVy
biBtX2ZpbHRlclR5cGUgPT0gVHlwZTo6U1ZHRmlsdGVyOyB9CisgICAgYm9vbCBpc0ZpbHRlcigp
IGNvbnN0IHsgcmV0dXJuIG1fZmlsdGVyVHlwZSA9PSBUeXBlOjpDU1NGaWx0ZXIgfHwgbV9maWx0
ZXJUeXBlID09IFR5cGU6OlNWR0ZpbHRlcjsgfQorICAgIGJvb2wgaXNGaWx0ZXJFZmZlY3QoKSBj
b25zdCB7IHJldHVybiBtX2ZpbHRlclR5cGUgPj0gVHlwZTo6RkVNaW5pbXVtICYmIG1fZmlsdGVy
VHlwZSA8PSBUeXBlOjpGRU1heGltdW07IH0KKworICAgIHN0YXRpYyBjb25zdCBBdG9tU3RyaW5n
JiBmaWx0ZXJOYW1lKFR5cGUpOworICAgIHN0YXRpYyBjb25zdCBBdG9tU3RyaW5nJiBzb3VyY2VB
bHBoYU5hbWUoKSB7IHJldHVybiBmaWx0ZXJOYW1lKFR5cGU6OlNvdXJjZUFscGhhKTsgfQorICAg
IHN0YXRpYyBjb25zdCBBdG9tU3RyaW5nJiBzb3VyY2VHcmFwaGljTmFtZSgpIHsgcmV0dXJuIGZp
bHRlck5hbWUoVHlwZTo6U291cmNlR3JhcGhpYyk7IH0KKyAgICBjb25zdCBBdG9tU3RyaW5nJiBm
aWx0ZXJOYW1lKCkgY29uc3QgeyByZXR1cm4gZmlsdGVyTmFtZShtX2ZpbHRlclR5cGUpOyB9CisK
K3ByaXZhdGU6CisgICAgVHlwZSBtX2ZpbHRlclR5cGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCisKK25hbWVzcGFjZSBXVEYgeworCit0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRz
PFdlYkNvcmU6OkZpbHRlckZ1bmN0aW9uOjpUeXBlPiB7CisgICAgdXNpbmcgdmFsdWVzID0gRW51
bVZhbHVlczwKKyAgICAgICAgV2ViQ29yZTo6RmlsdGVyRnVuY3Rpb246OlR5cGUsCisKKyAgICAg
ICAgV2ViQ29yZTo6RmlsdGVyRnVuY3Rpb246OlR5cGU6OkNTU0ZpbHRlciwKKyAgICAgICAgV2Vi
Q29yZTo6RmlsdGVyRnVuY3Rpb246OlR5cGU6OlNWR0ZpbHRlciwKKworICAgICAgICBXZWJDb3Jl
OjpGaWx0ZXJGdW5jdGlvbjo6VHlwZTo6RkVCbGVuZCwKKyAgICAgICAgV2ViQ29yZTo6RmlsdGVy
RnVuY3Rpb246OlR5cGU6OkZFQ29sb3JNYXRyaXgsCisgICAgICAgIFdlYkNvcmU6OkZpbHRlckZ1
bmN0aW9uOjpUeXBlOjpGRUNvbXBvbmVudFRyYW5zZmVyLAorICAgICAgICBXZWJDb3JlOjpGaWx0
ZXJGdW5jdGlvbjo6VHlwZTo6RkVDb21wb3NpdGUsCisgICAgICAgIFdlYkNvcmU6OkZpbHRlckZ1
bmN0aW9uOjpUeXBlOjpGRUNvbnZvbHZlTWF0cml4LAorICAgICAgICBXZWJDb3JlOjpGaWx0ZXJG
dW5jdGlvbjo6VHlwZTo6RkVEaWZmdXNlTGlnaHRpbmcsCisgICAgICAgIFdlYkNvcmU6OkZpbHRl
ckZ1bmN0aW9uOjpUeXBlOjpGRURpc3BsYWNlbWVudE1hcCwKKyAgICAgICAgV2ViQ29yZTo6Rmls
dGVyRnVuY3Rpb246OlR5cGU6OkZFRHJvcFNoYWRvdywKKyAgICAgICAgV2ViQ29yZTo6RmlsdGVy
RnVuY3Rpb246OlR5cGU6OkZFRmxvb2QsCisgICAgICAgIFdlYkNvcmU6OkZpbHRlckZ1bmN0aW9u
OjpUeXBlOjpGRUdhdXNzaWFuQmx1ciwKKyAgICAgICAgV2ViQ29yZTo6RmlsdGVyRnVuY3Rpb246
OlR5cGU6OkZFSW1hZ2UsCisgICAgICAgIFdlYkNvcmU6OkZpbHRlckZ1bmN0aW9uOjpUeXBlOjpG
RU1lcmdlLAorICAgICAgICBXZWJDb3JlOjpGaWx0ZXJGdW5jdGlvbjo6VHlwZTo6RkVNb3JwaG9s
b2d5LAorICAgICAgICBXZWJDb3JlOjpGaWx0ZXJGdW5jdGlvbjo6VHlwZTo6RkVPZmZzZXQsCisg
ICAgICAgIFdlYkNvcmU6OkZpbHRlckZ1bmN0aW9uOjpUeXBlOjpGRVNwZWN1bGFyTGlnaHRpbmcs
CisgICAgICAgIFdlYkNvcmU6OkZpbHRlckZ1bmN0aW9uOjpUeXBlOjpGRVRpbGUsCisgICAgICAg
IFdlYkNvcmU6OkZpbHRlckZ1bmN0aW9uOjpUeXBlOjpGRVR1cmJ1bGVuY2UsCisgICAgICAgIFdl
YkNvcmU6OkZpbHRlckZ1bmN0aW9uOjpUeXBlOjpTb3VyY2VBbHBoYSwKKyAgICAgICAgV2ViQ29y
ZTo6RmlsdGVyRnVuY3Rpb246OlR5cGU6OlNvdXJjZUdyYXBoaWMKKyAgICA+OworfTsKKworfSAv
LyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9maWx0ZXJzL1NvdXJjZUFscGhhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2ZpbHRlcnMvU291cmNlQWxwaGEuY3BwCmluZGV4IDc2NDlmMDU4YWM4NjliNTU0YWYw
ZGM1MDdmZmY5MDkwYWQ2Y2YzYTMuLjk5Njk0MzcyNTc5M2U5OTY0NmZjM2U1YjIyYWQxNTFmYmRm
ZGU5Y2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRl
cnMvU291cmNlQWxwaGEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2ZpbHRlcnMvU291cmNlQWxwaGEuY3BwCkBAIC0yMywxMCArMjMsNyBAQAogI2luY2x1ZGUgIkNv
bG9yLmgiCiAjaW5jbHVkZSAiRmlsdGVyLmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0Lmgi
Ci0jaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+Ci0jaW5jbHVkZSA8d3RmL1N0ZExpYkV4
dHJhcy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1RleHRTdHJlYW0uaD4KLSNpbmNsdWRlIDx3dGYv
dGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0zNSwxMCArMzIs
MTEgQEAgUmVmPFNvdXJjZUFscGhhPiBTb3VyY2VBbHBoYTo6Y3JlYXRlKEZpbHRlckVmZmVjdCYg
c291cmNlRWZmZWN0KQogICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNvdXJjZUFscGhhKHNvdXJj
ZUVmZmVjdCkpOwogfQogCi1jb25zdCBBdG9tU3RyaW5nJiBTb3VyY2VBbHBoYTo6ZWZmZWN0TmFt
ZSgpCitTb3VyY2VBbHBoYTo6U291cmNlQWxwaGEoRmlsdGVyRWZmZWN0JiBzb3VyY2VFZmZlY3Qp
CisgICAgOiBGaWx0ZXJFZmZlY3Qoc291cmNlRWZmZWN0LmZpbHRlcigpLCBGaWx0ZXJFZmZlY3Q6
OlR5cGU6OlNvdXJjZUFscGhhKQogewotICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95
ZWQ8Y29uc3QgQXRvbVN0cmluZz4gc19lZmZlY3ROYW1lKCJTb3VyY2VBbHBoYSIsIEF0b21TdHJp
bmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICByZXR1cm4gc19lZmZlY3ROYW1lOworICAg
IHNldE9wZXJhdGluZ0NvbG9yU3BhY2Uoc291cmNlRWZmZWN0Lm9wZXJhdGluZ0NvbG9yU3BhY2Uo
KSk7CisgICAgaW5wdXRFZmZlY3RzKCkuYXBwZW5kKCZzb3VyY2VFZmZlY3QpOwogfQogCiB2b2lk
IFNvdXJjZUFscGhhOjpkZXRlcm1pbmVBYnNvbHV0ZVBhaW50UmVjdCgpCkBAIC02OSwxMSArNjcs
NCBAQCBUZXh0U3RyZWFtJiBTb3VyY2VBbHBoYTo6ZXh0ZXJuYWxSZXByZXNlbnRhdGlvbihUZXh0
U3RyZWFtJiB0cywgUmVwcmVzZW50YXRpb25UeQogICAgIHJldHVybiB0czsKIH0KIAotU291cmNl
QWxwaGE6OlNvdXJjZUFscGhhKEZpbHRlckVmZmVjdCYgc291cmNlRWZmZWN0KQotICAgIDogRmls
dGVyRWZmZWN0KHNvdXJjZUVmZmVjdC5maWx0ZXIoKSwgVHlwZTo6U291cmNlQWxwaGEpCi17Ci0g
ICAgc2V0T3BlcmF0aW5nQ29sb3JTcGFjZShzb3VyY2VFZmZlY3Qub3BlcmF0aW5nQ29sb3JTcGFj
ZSgpKTsKLSAgICBpbnB1dEVmZmVjdHMoKS5hcHBlbmQoJnNvdXJjZUVmZmVjdCk7Ci19Ci0KIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2ZpbHRlcnMvU291cmNlQWxwaGEuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2ZpbHRlcnMvU291cmNlQWxwaGEuaAppbmRleCA2NjI5YTM2N2ZkNDMyNDJkMWM0
YWFkZTY0YzU2MWU4NjRhMzk0OTBmLi43YmJiZjgxZDY4NTI1ODRhYzZjZjcxYWQ1ZWJlNTUwN2Rm
NmRjMWVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0
ZXJzL1NvdXJjZUFscGhhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZmlsdGVycy9Tb3VyY2VBbHBoYS5oCkBAIC0xNyw4ICsxNyw3IEBACiAgKiBCb3N0b24sIE1BIDAy
MTEwLTEzMDEsIFVTQS4KICAqLwogCi0jaWZuZGVmIFNvdXJjZUFscGhhX2gKLSNkZWZpbmUgU291
cmNlQWxwaGFfaAorI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJGaWx0ZXJFZmZlY3QuaCIKIApA
QCAtMjgsMTMgKzI3LDEwIEBAIGNsYXNzIFNvdXJjZUFscGhhIDogcHVibGljIEZpbHRlckVmZmVj
dCB7CiBwdWJsaWM6ICAgICAgICAKICAgICBzdGF0aWMgUmVmPFNvdXJjZUFscGhhPiBjcmVhdGUo
RmlsdGVyRWZmZWN0Jik7CiAKLSAgICBzdGF0aWMgY29uc3QgQXRvbVN0cmluZyYgZWZmZWN0TmFt
ZSgpOworICAgIHN0YXRpYyBjb25zdCBBdG9tU3RyaW5nJiBlZmZlY3ROYW1lKCkgeyByZXR1cm4g
RmlsdGVyRWZmZWN0Ojpzb3VyY2VBbHBoYU5hbWUoKTsgfQogCiBwcml2YXRlOgogICAgIGV4cGxp
Y2l0IFNvdXJjZUFscGhhKEZpbHRlckVmZmVjdCYpOwotICAgIEZpbHRlckVmZmVjdFR5cGUgZmls
dGVyRWZmZWN0VHlwZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIEZpbHRlckVmZmVjdFR5cGVT
b3VyY2VJbnB1dDsgfQotCi0gICAgY29uc3QgY2hhciogZmlsdGVyTmFtZSgpIGNvbnN0IGZpbmFs
IHsgcmV0dXJuICJTb3VyY2VBbHBoYSI7IH0KIAogICAgIHZvaWQgcGxhdGZvcm1BcHBseVNvZnR3
YXJlKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBkZXRlcm1pbmVBYnNvbHV0ZVBhaW50UmVjdCgpIG92
ZXJyaWRlOwpAQCAtNDMsNCArMzksNCBAQCBwcml2YXRlOgogCiB9IC8vbmFtZXNwYWNlIFdlYkNv
cmUKIAotI2VuZGlmIC8vIFNvdXJjZUFscGhhX2gKK1NQRUNJQUxJWkVfVFlQRV9UUkFJVFNfRklM
VEVSX0VGRkVDVChTb3VyY2VBbHBoYSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2ZpbHRlcnMvU291cmNlR3JhcGhpYy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1NvdXJjZUdyYXBoaWMuY3BwCmluZGV4IDg4YTM2YTQx
MDI2YmQzYTU4NTQ0NzgyMDI3NGMxMTA3ZDc4MzkyZTkuLjI4OGM0NWY2ZmRmN2E2YmEwOTE2NGEz
ZjQ0YjdkMmY5NGUyYTFkNGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2ZpbHRlcnMvU291cmNlR3JhcGhpYy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9Tb3VyY2VHcmFwaGljLmNwcApAQCAtMjIsMTAgKzIyLDcg
QEAKIAogI2luY2x1ZGUgIkZpbHRlci5oIgogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgot
I2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgotI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRy
YXMuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9UZXh0U3RyZWFtLmg+Ci0jaW5jbHVkZSA8d3RmL3Rl
eHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtMzQsMTIgKzMxLDYg
QEAgUmVmPFNvdXJjZUdyYXBoaWM+IFNvdXJjZUdyYXBoaWM6OmNyZWF0ZShGaWx0ZXImIGZpbHRl
cikKICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTb3VyY2VHcmFwaGljKGZpbHRlcikpOwogfQog
Ci1jb25zdCBBdG9tU3RyaW5nJiBTb3VyY2VHcmFwaGljOjplZmZlY3ROYW1lKCkKLXsKLSAgICBz
dGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHNfZWZmZWN0
TmFtZSgiU291cmNlR3JhcGhpYyIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsK
LSAgICByZXR1cm4gc19lZmZlY3ROYW1lOwotfQotCiB2b2lkIFNvdXJjZUdyYXBoaWM6OmRldGVy
bWluZUFic29sdXRlUGFpbnRSZWN0KCkKIHsKICAgICBGaWx0ZXImIGZpbHRlciA9IHRoaXMtPmZp
bHRlcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmls
dGVycy9Tb3VyY2VHcmFwaGljLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9m
aWx0ZXJzL1NvdXJjZUdyYXBoaWMuaAppbmRleCAzMGNkNTRmMjQ1M2JiYThhMzc3NjMyMTMyOGVm
MjEwNmI3ZmNhNWJmLi41MmRjYjdlODY4ZTVjNWI1MmExMWNiYjY5NjgzYjJlOGI0MjM0YjAyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1NvdXJj
ZUdyYXBoaWMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJz
L1NvdXJjZUdyYXBoaWMuaApAQCAtMTgsMTEgKzE4LDkgQEAKICAqIEJvc3RvbiwgTUEgMDIxMTAt
MTMwMSwgVVNBLgogICovCiAKLSNpZm5kZWYgU291cmNlR3JhcGhpY19oCi0jZGVmaW5lIFNvdXJj
ZUdyYXBoaWNfaAorI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJGaWx0ZXJFZmZlY3QuaCIKLSNp
bmNsdWRlICJGaWx0ZXIuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0zMCwyOSArMjgs
MjAgQEAgY2xhc3MgU291cmNlR3JhcGhpYyA6IHB1YmxpYyBGaWx0ZXJFZmZlY3QgewogcHVibGlj
OiAgICAgICAgCiAgICAgc3RhdGljIFJlZjxTb3VyY2VHcmFwaGljPiBjcmVhdGUoRmlsdGVyJik7
CiAKLSAgICBzdGF0aWMgY29uc3QgQXRvbVN0cmluZyYgZWZmZWN0TmFtZSgpOworICAgIHN0YXRp
YyBjb25zdCBBdG9tU3RyaW5nJiBlZmZlY3ROYW1lKCkgeyByZXR1cm4gRmlsdGVyRWZmZWN0Ojpz
b3VyY2VHcmFwaGljTmFtZSgpOyB9CiAKIHByaXZhdGU6CiAgICAgU291cmNlR3JhcGhpYyhGaWx0
ZXImIGZpbHRlcikKLSAgICAgICAgOiBGaWx0ZXJFZmZlY3QoZmlsdGVyLCBUeXBlOjpTb3VyY2VH
cmFwaGljKQorICAgICAgICA6IEZpbHRlckVmZmVjdChmaWx0ZXIsIEZpbHRlckVmZmVjdDo6VHlw
ZTo6U291cmNlR3JhcGhpYykKICAgICB7CiAgICAgICAgIHNldE9wZXJhdGluZ0NvbG9yU3BhY2Uo
RGVzdGluYXRpb25Db2xvclNwYWNlOjpTUkdCKCkpOwogICAgIH0KIAotICAgIGNvbnN0IGNoYXIq
IGZpbHRlck5hbWUoKSBjb25zdCBmaW5hbCB7IHJldHVybiAiU291cmNlR3JhcGhpYyI7IH0KLQog
ICAgIHZvaWQgZGV0ZXJtaW5lQWJzb2x1dGVQYWludFJlY3QoKSBvdmVycmlkZTsKICAgICB2b2lk
IHBsYXRmb3JtQXBwbHlTb2Z0d2FyZSgpIG92ZXJyaWRlOwogICAgIFdURjo6VGV4dFN0cmVhbSYg
ZXh0ZXJuYWxSZXByZXNlbnRhdGlvbihXVEY6OlRleHRTdHJlYW0mLCBSZXByZXNlbnRhdGlvblR5
cGUpIGNvbnN0IG92ZXJyaWRlOwotCi0gICAgRmlsdGVyRWZmZWN0VHlwZSBmaWx0ZXJFZmZlY3RU
eXBlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gRmlsdGVyRWZmZWN0VHlwZVNvdXJjZUlucHV0
OyB9CiB9OwogCiB9IC8vbmFtZXNwYWNlIFdlYkNvcmUKIAotU1BFQ0lBTElaRV9UWVBFX1RSQUlU
U19CRUdJTihXZWJDb3JlOjpTb3VyY2VHcmFwaGljKQotICAgIHN0YXRpYyBib29sIGlzVHlwZShj
b25zdCBXZWJDb3JlOjpGaWx0ZXJFZmZlY3QmIGVmZmVjdCkgeyByZXR1cm4gZWZmZWN0LmZpbHRl
ckVmZmVjdENsYXNzVHlwZSgpID09IFdlYkNvcmU6OkZpbHRlckVmZmVjdDo6VHlwZTo6U291cmNl
R3JhcGhpYzsgfQotU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19FTkQoKQotCi0KLSNlbmRpZiAvLyBT
b3VyY2VHcmFwaGljX2gKK1NQRUNJQUxJWkVfVFlQRV9UUkFJVFNfRklMVEVSX0VGRkVDVChTb3Vy
Y2VHcmFwaGljKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0NTU0ZpbHRl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvQ1NTRmlsdGVyLmNwcAppbmRleCBmNDRh
ZTEyOWQwNzM4ZDMwYzc2ZTcxMDg1YjJhZWMwNWE3YjZmMWRhLi45ZTFiMDU4YjM5OTU5ZWM2YzNh
YzE1MzlkMTE0YjgzMGY5YTU2ZGU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvQ1NTRmlsdGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvQ1NTRmlsdGVy
LmNwcApAQCAtNjAsNyArNjAsNyBAQCBSZWY8Q1NTRmlsdGVyPiBDU1NGaWx0ZXI6OmNyZWF0ZSgp
CiB9CiAKIENTU0ZpbHRlcjo6Q1NTRmlsdGVyKCkKLSAgICA6IEZpbHRlcihGbG9hdFNpemUgeyAx
LCAxIH0pCisgICAgOiBGaWx0ZXIoRmlsdGVyOjpUeXBlOjpDU1NGaWx0ZXIsIEZsb2F0U2l6ZSB7
IDEsIDEgfSkKICAgICAsIG1fc291cmNlR3JhcGhpYyhTb3VyY2VHcmFwaGljOjpjcmVhdGUoKnRo
aXMpKQogewogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL2ZpbHRl
cnMvU1ZHRkVJbWFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvZmlsdGVycy9T
VkdGRUltYWdlLmNwcAppbmRleCAzODVhZjI5MDg0OGEzZDBiODNmMTJhYzk2MTllNmJmOTZjOWYy
Mzk2Li4yMzZlNzFmMmUzYmM2ZDRmZjFjMTQwY2Y3NzU2NzFjZDExMzU0YjZhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvZmlsdGVycy9TVkdGRUltYWdlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvZmlsdGVycy9TVkdGRUltYWdlLmNwcApAQCAt
MzYsMTQgKzM2LDE0IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIEZFSW1hZ2U6OkZFSW1hZ2Uo
RmlsdGVyJiBmaWx0ZXIsIFJlZlB0cjxJbWFnZT4gaW1hZ2UsIGNvbnN0IFNWR1ByZXNlcnZlQXNw
ZWN0UmF0aW9WYWx1ZSYgcHJlc2VydmVBc3BlY3RSYXRpbykKLSAgICA6IEZpbHRlckVmZmVjdChm
aWx0ZXIsIFR5cGU6OkltYWdlKQorICAgIDogRmlsdGVyRWZmZWN0KGZpbHRlciwgRmlsdGVyRWZm
ZWN0OjpUeXBlOjpGRUltYWdlKQogICAgICwgbV9pbWFnZShpbWFnZSkKICAgICAsIG1fcHJlc2Vy
dmVBc3BlY3RSYXRpbyhwcmVzZXJ2ZUFzcGVjdFJhdGlvKQogewogfQogCiBGRUltYWdlOjpGRUlt
YWdlKEZpbHRlciYgZmlsdGVyLCBUcmVlU2NvcGUmIHRyZWVTY29wZSwgY29uc3QgU3RyaW5nJiBo
cmVmLCBjb25zdCBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUmIHByZXNlcnZlQXNwZWN0UmF0
aW8pCi0gICAgOiBGaWx0ZXJFZmZlY3QoZmlsdGVyLCBUeXBlOjpJbWFnZSkKKyAgICA6IEZpbHRl
ckVmZmVjdChmaWx0ZXIsIEZpbHRlckVmZmVjdDo6VHlwZTo6RkVJbWFnZSkKICAgICAsIG1fdHJl
ZVNjb3BlKCZ0cmVlU2NvcGUpCiAgICAgLCBtX2hyZWYoaHJlZikKICAgICAsIG1fcHJlc2VydmVB
c3BlY3RSYXRpbyhwcmVzZXJ2ZUFzcGVjdFJhdGlvKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvc3ZnL2dyYXBoaWNzL2ZpbHRlcnMvU1ZHRkVJbWFnZS5oIGIvU291cmNlL1dlYkNvcmUvc3Zn
L2dyYXBoaWNzL2ZpbHRlcnMvU1ZHRkVJbWFnZS5oCmluZGV4IGFjMTYwZWRjZTdjMGUwYTA2N2Jk
ZWZiZDcwN2YyYWJlNTU5MDgxYjYuLjE2ODg5OTE2NDYyYjE3NTJhMzQxZDU1MThhZGEwNzVjMzQ5
ZTE2MGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9maWx0ZXJzL1NW
R0ZFSW1hZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvZmlsdGVycy9TVkdG
RUltYWdlLmgKQEAgLTQyLDEwICs0Miw2IEBAIHByaXZhdGU6CiAgICAgRkVJbWFnZShGaWx0ZXIm
LCBSZWZQdHI8SW1hZ2U+LCBjb25zdCBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUmKTsKICAg
ICBGRUltYWdlKEZpbHRlciYsIFRyZWVTY29wZSYsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFNWR1By
ZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZSYpOwogCi0gICAgY29uc3QgY2hhciogZmlsdGVyTmFtZSgp
IGNvbnN0IGZpbmFsIHsgcmV0dXJuICJGRUltYWdlIjsgfQotCi0gICAgRmlsdGVyRWZmZWN0VHlw
ZSBmaWx0ZXJFZmZlY3RUeXBlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gRmlsdGVyRWZmZWN0VHlw
ZUltYWdlOyB9Ci0KICAgICBSZW5kZXJFbGVtZW50KiByZWZlcmVuY2VkUmVuZGVyZXIoKSBjb25z
dDsKIAogICAgIHZvaWQgcGxhdGZvcm1BcHBseVNvZnR3YXJlKCkgZmluYWw7CkBAIC02MSwzICs1
Nyw1IEBAIHByaXZhdGU6CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKK1NQRUNJQUxJ
WkVfVFlQRV9UUkFJVFNfRklMVEVSX0VGRkVDVChGRUltYWdlKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvc3ZnL2dyYXBoaWNzL2ZpbHRlcnMvU1ZHRmlsdGVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9ncmFwaGljcy9maWx0ZXJzL1NWR0ZpbHRlci5jcHAKaW5kZXggOWE5NGE0NjAzNTg3
OTA4YTM4NGQxNzQyN2IzNzE5MzU5MmI3YmNlNy4uODJlOTQzNjcyM2U4NTVkNjUyNzk3YTEzNzA3
ZDVhYmU5ZWU2MGEyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL2Zp
bHRlcnMvU1ZHRmlsdGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvZmls
dGVycy9TVkdGaWx0ZXIuY3BwCkBAIC0yNSw3ICsyNSw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKIFNWR0ZpbHRlcjo6U1ZHRmlsdGVyKGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgYWJzb2x1dGVU
cmFuc2Zvcm0sIGNvbnN0IEZsb2F0UmVjdCYgYWJzb2x1dGVTb3VyY2VEcmF3aW5nUmVnaW9uLCBj
b25zdCBGbG9hdFJlY3QmIHRhcmdldEJvdW5kaW5nQm94LCBjb25zdCBGbG9hdFJlY3QmIGZpbHRl
clJlZ2lvbiwgYm9vbCBlZmZlY3RCQm94TW9kZSkKLSAgICA6IEZpbHRlcihhYnNvbHV0ZVRyYW5z
Zm9ybSkKKyAgICA6IEZpbHRlcihGaWx0ZXI6OlR5cGU6OkNTU0ZpbHRlciwgYWJzb2x1dGVUcmFu
c2Zvcm0pCiAgICAgLCBtX2Fic29sdXRlU291cmNlRHJhd2luZ1JlZ2lvbihhYnNvbHV0ZVNvdXJj
ZURyYXdpbmdSZWdpb24pCiAgICAgLCBtX3RhcmdldEJvdW5kaW5nQm94KHRhcmdldEJvdW5kaW5n
Qm94KQogICAgICwgbV9maWx0ZXJSZWdpb24oZmlsdGVyUmVnaW9uKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL2ZpbHRlcnMvU1ZHRmlsdGVyLmggYi9Tb3VyY2UvV2Vi
Q29yZS9zdmcvZ3JhcGhpY3MvZmlsdGVycy9TVkdGaWx0ZXIuaAppbmRleCA4MDkzMTQ2ZDY0YWY4
ODg1YmMzZGE0OTMwMmY1YWVhMGZiMTcwMGNmLi41MjU4ODZhZjMwODRjZTc4MzVjODRkNGE5NzYz
NWRmMmU2MzliNWE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvZmls
dGVycy9TVkdGaWx0ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvZmlsdGVy
cy9TVkdGaWx0ZXIuaApAQCAtNTcsNCArNTcsNSBAQCBwcml2YXRlOgogCiBTUEVDSUFMSVpFX1RZ
UEVfVFJBSVRTX0JFR0lOKFdlYkNvcmU6OlNWR0ZpbHRlcikKICAgICBzdGF0aWMgYm9vbCBpc1R5
cGUoY29uc3QgV2ViQ29yZTo6RmlsdGVyJiBmaWx0ZXIpIHsgcmV0dXJuIGZpbHRlci5pc1NWR0Zp
bHRlcigpOyB9CisgICAgc3RhdGljIGJvb2wgaXNUeXBlKGNvbnN0IFdlYkNvcmU6OkZpbHRlckZ1
bmN0aW9uJiBmdW5jdGlvbikgeyByZXR1cm4gZnVuY3Rpb24uaXNTVkdGaWx0ZXIoKTsgfQogU1BF
Q0lBTElaRV9UWVBFX1RSQUlUU19FTkQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3Zn
L2dyYXBoaWNzL2ZpbHRlcnMvU1ZHRmlsdGVyQnVpbGRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvZ3JhcGhpY3MvZmlsdGVycy9TVkdGaWx0ZXJCdWlsZGVyLmNwcAppbmRleCA5NmYzYTgwNTA0
Mjk1NTU4MTAzNGQ5OGE0ZmRhYzRlYWYzMDg3Yjk0Li44MDAwZjg0YjVjZDYwZTA2ZTIzNjRlZDVj
ZGU4ZjhlM2ZkOTQ0MTZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3Mv
ZmlsdGVycy9TVkdGaWx0ZXJCdWlsZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3Jh
cGhpY3MvZmlsdGVycy9TVkdGaWx0ZXJCdWlsZGVyLmNwcApAQCAtMjEsNiArMjEsNyBAQAogI2lu
Y2x1ZGUgIlNWR0ZpbHRlckJ1aWxkZXIuaCIKIAogI2luY2x1ZGUgIkZpbHRlckVmZmVjdC5oIgor
I2luY2x1ZGUgIkltYWdlQnVmZmVyLmgiCiAjaW5jbHVkZSAiU291cmNlQWxwaGEuaCIKICNpbmNs
dWRlICJTb3VyY2VHcmFwaGljLmgiCiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQ29uY2F0ZW5h
dGVOdW1iZXJzLmg+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>443653</attachid>
            <date>2021-11-08 20:51:33 -0800</date>
            <delta_ts>2021-11-09 02:21:43 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-232413-20211108205131.patch</filename>
            <type>text/plain</type>
            <size>68565</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1NDc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzBhMzUxZGFkYjExYjAx
MTNiMjgyMmIwZjc5MzAzNzVhMzYwMDFkOS4uZDZlMDVmYTYxNjQ5NDY3MGQ2YTI3MDc4OTllZmEy
NzQ3Njk3YzAxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzMyBAQAorMjAyMS0xMS0wOCAgU2Fp
ZCBBYm91LUhhbGxhd2EgIDxzYWlkQGFwcGxlLmNvbT4KKworICAgICAgICBbR1BVIFByb2Nlc3Nd
IEludHJvZHVjZSBGaWx0ZXJGdW5jdGlvbiBhbmQgbWFrZSBpdCB0aGUgYmFzZSBjbGFzcyBvZiBG
aWx0ZXIgYW5kIEZpbHRlckVmZmVjdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjMyNDEzCisgICAgICAgIHJkYXI6Ly84NDk2Njc2NQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgYWxsb3dzIENTU0Zp
bHRlciB0byBob2xkIGEgbGlzdCBvZiBGaWx0ZXJGdW5jdGlvbnMuIFRoZSBGaWx0ZXIgaW4KKyAg
ICAgICAgdGhpcyBjYXNlIHdpbGwgYWN0IGxpa2UgYSBjb21wb3NpdGUgcGF0dGVybiBvZiBGaWx0
ZXJFZmZlY3RzLgorCisgICAgICAgIFRoaXMgcGF0Y2ggYWxzbworICAgICAgICAxLiBSZW1vdmVz
IHRoZSB2aXJ0dWFsIGZ1bmN0aW9uIGZpbHRlck5hbWUoKSBmcm9tIGFsbCB0aGUgRmlsdGVyRWZm
ZWN0CisgICAgICAgICAgIGNsYXNzZXMuIEl0IHJlcGxhY2VzIGl0IHdpdGggYSBzdGF0aWMgZnVu
Y3Rpb24gaW4gRmlsdGVyRnVuY3Rpb24uCisgICAgICAgIDIuIFJlbW92ZXMgdGhlIHZpcnR1YWwg
ZnVuY3Rpb24gZmlsdGVyRWZmZWN0VHlwZSgpIGFuZCB0aGUgZnVuY3Rpb24KKyAgICAgICAgICAg
RmlsdGVyRWZmZWN0OjpmaWx0ZXJFZmZlY3RDbGFzc1R5cGUoKSBzaW5jZSB0aGV5IGNhbiBib3Ro
IGJlIHJlcGxhY2VkCisgICAgICAgICAgIGJ5IEZpbHRlckZ1bmN0aW9uOjpmaWx0ZXJUeXBlKCku
CisgICAgICAgIDMuIEFkZHMgdHJhaXQgbWFjcm9zIGZvciBhbGwgRmlsdGVyRWZmZWN0cyBhbmQg
dGhlIFNWR0ZpbHRlcnMgY2xhc3MuCisKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAg
KiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvY29yZWltYWdlL0ZpbHRlckVmZmVjdFJlbmRlcmVyQ29yZUltYWdlLm1tOgorICAg
ICAgICAoV2ViQ29yZTo6RmlsdGVyRWZmZWN0UmVuZGVyZXJDb3JlSW1hZ2U6OnN1cHBvcnRzQ29y
ZUltYWdlUmVuZGVyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbHRlckVmZmVjdFJlbmRlcmVy
Q29yZUltYWdlOjpjb25uZWN0Q0lGaWx0ZXJzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9maWx0ZXJzL0ZFQmxlbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RkVCbGVuZDo6RkVCbGVu
ZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUJsZW5kLmg6CisgICAg
ICAgICgpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVD
b2xvck1hdHJpeC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGRUNvbG9yTWF0cml4OjpGRUNvbG9y
TWF0cml4KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29sb3JNYXRy
aXguaDoKKyAgICAgICAgKGlzVHlwZSk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvZmlsdGVycy9GRUNvbXBvbmVudFRyYW5zZmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkZFQ29tcG9uZW50VHJhbnNmZXI6OkZFQ29tcG9uZW50VHJhbnNmZXIpOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb21wb25lbnRUcmFuc2Zlci5oOgorICAgICAgICAo
aXNUeXBlKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZF
Q29tcG9zaXRlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZFQ29tcG9zaXRlOjpGRUNvbXBvc2l0
ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbXBvc2l0ZS5oOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb252b2x2ZU1hdHJpeC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpGRUNvbnZvbHZlTWF0cml4OjpGRUNvbnZvbHZlTWF0cml4KToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29udm9sdmVNYXRyaXguaDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRGlmZnVzZUxpZ2h0aW5nLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkZFRGlmZnVzZUxpZ2h0aW5nOjpGRURpZmZ1c2VMaWdodGlu
Zyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRURpZmZ1c2VMaWdodGlu
Zy5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVEaXNwbGFjZW1lbnRN
YXAuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RkVEaXNwbGFjZW1lbnRNYXA6OkZFRGlzcGxhY2Vt
ZW50TWFwKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRGlzcGxhY2Vt
ZW50TWFwLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRURyb3BTaGFk
b3cuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RkVEcm9wU2hhZG93OjpGRURyb3BTaGFkb3cpOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVEcm9wU2hhZG93Lmg6CisgICAg
ICAgICgpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVG
bG9vZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGRUZsb29kOjpGRUZsb29kKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRmxvb2QuaDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9maWx0ZXJzL0ZFR2F1c3NpYW5CbHVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkZFR2F1c3NpYW5CbHVyOjpGRUdhdXNzaWFuQmx1cik6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvZmlsdGVycy9GRUdhdXNzaWFuQmx1ci5oOgorICAgICAgICAoKTogRGVsZXRlZC4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFTGlnaHRpbmcuaDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFTWVyZ2UuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6RkVNZXJnZTo6RkVNZXJnZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVy
cy9GRU1lcmdlLmg6CisgICAgICAgICgpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2ZpbHRlcnMvRkVNb3JwaG9sb2d5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZFTW9y
cGhvbG9neTo6RkVNb3JwaG9sb2d5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0
ZXJzL0ZFTW9ycGhvbG9neS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMv
RkVPZmZzZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RkVPZmZzZXQ6OkZFT2Zmc2V0KToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFT2Zmc2V0Lmg6CisgICAgICAgICgp
OiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVTcGVjdWxh
ckxpZ2h0aW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZFU3BlY3VsYXJMaWdodGluZzo6RkVT
cGVjdWxhckxpZ2h0aW5nKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZF
U3BlY3VsYXJMaWdodGluZy5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMv
RkVUaWxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZFVGlsZTo6RkVUaWxlKToKKyAgICAgICAg
KFdlYkNvcmU6OkZFVGlsZTo6cGxhdGZvcm1BcHBseVNvZnR3YXJlKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFVGlsZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2ZpbHRlcnMvRkVUdXJidWxlbmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZFVHVyYnVs
ZW5jZTo6RkVUdXJidWxlbmNlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJz
L0ZFVHVyYnVsZW5jZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmls
dGVyLmg6CisgICAgICAgIChXZWJDb3JlOjpGaWx0ZXI6OkZpbHRlcik6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXJFZmZlY3QuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6RmlsdGVyRWZmZWN0OjpGaWx0ZXJFZmZlY3QpOgorICAgICAgICAoV2ViQ29yZTo6RmlsdGVy
RWZmZWN0OjpkZXRlcm1pbmVGaWx0ZXJQcmltaXRpdmVTdWJyZWdpb24pOgorICAgICAgICAoV2Vi
Q29yZTo6RmlsdGVyRWZmZWN0OjpjcmVhdGVJbWFnZUJ1ZmZlclJlc3VsdCk6CisgICAgICAgIChX
ZWJDb3JlOjpGaWx0ZXJFZmZlY3Q6OmNyZWF0ZVVubXVsdGlwbGllZEltYWdlUmVzdWx0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkZpbHRlckVmZmVjdDo6Y3JlYXRlUHJlbXVsdGlwbGllZEltYWdlUmVz
dWx0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlckVmZmVjdC5o
OgorICAgICAgICAoaXNUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbHRlckVmZmVjdDo6Zmls
dGVyRWZmZWN0VHlwZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpGaWx0ZXJF
ZmZlY3Q6OmZpbHRlckVmZmVjdENsYXNzVHlwZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXJGdW5jdGlvbi5jcHA6IEFkZGVkLgorICAg
ICAgICAoV2ViQ29yZTo6RmlsdGVyRnVuY3Rpb246OkZpbHRlckZ1bmN0aW9uKToKKyAgICAgICAg
KFdlYkNvcmU6OkZpbHRlckZ1bmN0aW9uOjpmaWx0ZXJOYW1lKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlckZ1bmN0aW9uLmg6IEFkZGVkLgorICAgICAgICAoV2Vi
Q29yZTo6RmlsdGVyRnVuY3Rpb246OmZpbHRlclR5cGUgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6RmlsdGVyRnVuY3Rpb246OmlzQ1NTRmlsdGVyIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OkZpbHRlckZ1bmN0aW9uOjppc1NWR0ZpbHRlciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpG
aWx0ZXJGdW5jdGlvbjo6aXNGaWx0ZXIgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RmlsdGVy
RnVuY3Rpb246OmlzRmlsdGVyRWZmZWN0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkZpbHRl
ckZ1bmN0aW9uOjpzb3VyY2VBbHBoYU5hbWUpOgorICAgICAgICAoV2ViQ29yZTo6RmlsdGVyRnVu
Y3Rpb246OnNvdXJjZUdyYXBoaWNOYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbHRlckZ1bmN0
aW9uOjpmaWx0ZXJOYW1lIGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0
ZXJzL1NvdXJjZUFscGhhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUFscGhhOjpTb3Vy
Y2VBbHBoYSk6CisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VBbHBoYTo6ZWZmZWN0TmFtZSk6IERl
bGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9Tb3VyY2VBbHBoYS5o
OgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQWxwaGE6OmVmZmVjdE5hbWUpOgorICAgICAgICAo
KTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1NvdXJjZUdy
YXBoaWMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U291cmNlR3JhcGhpYzo6ZWZmZWN0TmFtZSk6
IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9Tb3VyY2VHcmFw
aGljLmg6CisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VHcmFwaGljOjplZmZlY3ROYW1lKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNvdXJjZUdyYXBoaWM6OlNvdXJjZUdyYXBoaWMpOgorICAgICAgICAo
KTogRGVsZXRlZC4KKyAgICAgICAgKGlzVHlwZSk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZv
cm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZUNvY29hLmNwcDoK
KyAgICAgICAgKiByZW5kZXJpbmcvQ1NTRmlsdGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNT
U0ZpbHRlcjo6Q1NTRmlsdGVyKToKKyAgICAgICAgKiBzdmcvZ3JhcGhpY3MvZmlsdGVycy9TVkdG
RUltYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZFSW1hZ2U6OkZFSW1hZ2UpOgorICAgICAg
ICAqIHN2Zy9ncmFwaGljcy9maWx0ZXJzL1NWR0ZFSW1hZ2UuaDoKKyAgICAgICAgKiBzdmcvZ3Jh
cGhpY3MvZmlsdGVycy9TVkdGaWx0ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRmlsdGVy
OjpTVkdGaWx0ZXIpOgorICAgICAgICAqIHN2Zy9ncmFwaGljcy9maWx0ZXJzL1NWR0ZpbHRlci5o
OgorICAgICAgICAoaXNUeXBlKToKKyAgICAgICAgKiBzdmcvZ3JhcGhpY3MvZmlsdGVycy9TVkdG
aWx0ZXJCdWlsZGVyLmNwcDoKKwogMjAyMS0xMS0wOCAgSiBQYXNjb2UgIDxqX3Bhc2NvZUBhcHBs
ZS5jb20+CiAKICAgICAgICAgW1dlYkF1dGhuXSBjaGFsbGVuZ2UgZG9lcyBub3QgZ2V0IHBhc3Nl
ZCB0byAtW19XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwgZ2V0QXNzZXJ0aW9uV2l0aENoYWxsZW5n
ZTpvcmlnaW46b3B0aW9uczpjb21wbGV0aW9uSGFuZGxlcjpdCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CmluZGV4IDky
OGQ4YjQ5NzJiMjY1Mzg0OTc0ZDUxZDE0NjQ5ZGE4NmQ0MjQ5NDIuLmYxNTFlNGQzNjczZTdmYTE2
ZmRjMTJmNGZmY2VhZDk3MmNkN2MyZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJj
ZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CkBAIC0yMDkwLDYgKzIwOTAs
NyBAQCBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFVGlsZS5jcHAKIHBsYXRmb3JtL2dyYXBo
aWNzL2ZpbHRlcnMvRkVUdXJidWxlbmNlLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9G
aWx0ZXJFZmZlY3QuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlckVmZmVjdFJl
bmRlcmVyLmNwcAorcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXJGdW5jdGlvbi5jcHAK
IHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyT3BlcmF0aW9uLmNwcAogcGxhdGZvcm0v
Z3JhcGhpY3MvZmlsdGVycy9GaWx0ZXJPcGVyYXRpb25zLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3Mv
ZmlsdGVycy9Qb2ludExpZ2h0U291cmNlLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDNiNTU3ZGUxMGQwMWZiNWQwOWNhMzFl
ZTRkNDk2Y2ZjNzRkN2ZkMzYuLjljMjU3MTk5MDU3ZjM0M2ZmY2YwNmU3OTUxNzk3Y2I3NmI2OTk1
OWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKQEAgLTEwODQ4LDYgKzEwODQ4LDggQEAKIAkJNzI0RUU1NEUxREM3RjI1QjAwQTkxRkZC
IC8qIEFjdGl2aXR5U3RhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQWN0
aXZpdHlTdGF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3MjRFRTU0RjFEQzdG
MjVCMDBBOTFGRkIgLyogQWN0aXZpdHlTdGF0ZUNoYW5nZU9ic2VydmVyLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFjdGl2aXR5U3RhdGVDaGFuZ2VPYnNlcnZlci5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3MjUyMzk2QjI1NENBREMyMDBGNUZCMTUgLyogTmF0
aXZlSW1hZ2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTmF0aXZlSW1hZ2UuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk3MjYyRDc1NjI3MkExNzQxMDBDNTZBMDkgLyogRmlsdGVy
RnVuY3Rpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRmlsdGVyRnVuY3Rpb24uaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJNzI2MkQ3NTcyNzJBMTc0MTAwQzU2QTA5IC8qIEZpbHRlckZ1bmN0
aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEZpbHRlckZ1bmN0aW9uLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzI2NkYwMTMyMjQxQkNFMjAwODMzOTc1IC8qIFNWR1Byb3Bl
cnR5QW5pbWF0b3JGYWN0b3J5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNWR1Byb3BlcnR5QW5pbWF0b3JG
YWN0b3J5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTcyNjZGMDE0MjI0MUJGQjIw
MDgzMzk3NSAvKiBTVkdQcmltaXRpdmVQcm9wZXJ0eUFuaW1hdG9ySW1wbC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBTVkdQcmltaXRpdmVQcm9wZXJ0eUFuaW1hdG9ySW1wbC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk3MjY2RjAxNTIyNDFDMDk4MDA4MzM5NzUgLyogU1ZHUHJpbWl0aXZlUHJv
cGVydHlBbmltYXRvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTVkdQcmltaXRpdmVQcm9wZXJ0eUFuaW1h
dG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yNTg2OSw2ICsyNTg3MSw4IEBA
CiAJCQkJMDhDOTI1MTgwRkNDN0M0QTAwNDgwREVDIC8qIEZpbHRlckVmZmVjdC5oICovLAogCQkJ
CTJDODU2NTM4MjRDMTBCMEIwMEEzNzY3MyAvKiBGaWx0ZXJFZmZlY3RSZW5kZXJlci5jcHAgKi8s
CiAJCQkJMkM4NTY1MzMyNEMwRjczQzAwQTM3NjczIC8qIEZpbHRlckVmZmVjdFJlbmRlcmVyLmgg
Ki8sCisJCQkJNzI2MkQ3NTcyNzJBMTc0MTAwQzU2QTA5IC8qIEZpbHRlckZ1bmN0aW9uLmNwcCAq
LywKKwkJCQk3MjYyRDc1NjI3MkExNzQxMDBDNTZBMDkgLyogRmlsdGVyRnVuY3Rpb24uaCAqLywK
IAkJCQk0OUVDRUI2MzE0OTk3OTBEMDBDREQzQTQgLyogRmlsdGVyT3BlcmF0aW9uLmNwcCAqLywK
IAkJCQk0OUVDRUI2NDE0OTk3OTBEMDBDREQzQTQgLyogRmlsdGVyT3BlcmF0aW9uLmggKi8sCiAJ
CQkJNDlFQ0VCNjUxNDk5NzkwRDAwQ0REM0E0IC8qIEZpbHRlck9wZXJhdGlvbnMuY3BwICovLApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29yZWltYWdlL0Zp
bHRlckVmZmVjdFJlbmRlcmVyQ29yZUltYWdlLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY29yZWltYWdlL0ZpbHRlckVmZmVjdFJlbmRlcmVyQ29yZUltYWdlLm1tCmluZGV4
IDk3ZTExMzdiMjlkNzFjMmI1NDQxNTczMDY3MjQwMGI4MjQyOGIzNjEuLmZjNmY4Nzg4ODVlYmQw
NDkxNzI0OTZiMzdjNDE0Nzk3MzYyOTQ0OWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NvcmVpbWFnZS9GaWx0ZXJFZmZlY3RSZW5kZXJlckNvcmVJbWFnZS5t
bQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb3JlaW1hZ2UvRmlsdGVy
RWZmZWN0UmVuZGVyZXJDb3JlSW1hZ2UubW0KQEAgLTcyLDExICs3MiwxMSBAQCBzdGF0aWMgYm9v
bCBpc051bGxPckxpbmVhckNvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb24oY29uc3QgRkVDb21wb25l
bnRUcmFuc2ZlciYgZQogYm9vbCBGaWx0ZXJFZmZlY3RSZW5kZXJlckNvcmVJbWFnZTo6c3VwcG9y
dHNDb3JlSW1hZ2VSZW5kZXJpbmcoRmlsdGVyRWZmZWN0JiBlZmZlY3QpCiB7CiAgICAgLy8gRklY
TUU6IGNoYW5nZSByZXR1cm4gdmFsdWUgdG8gdHJ1ZSBvbmNlIHRoZXkgYXJlIGltcGxlbWVudGVk
Ci0gICAgc3dpdGNoIChlZmZlY3QuZmlsdGVyRWZmZWN0Q2xhc3NUeXBlKCkpIHsKKyAgICBzd2l0
Y2ggKGVmZmVjdC5maWx0ZXJUeXBlKCkpIHsKICAgICBjYXNlIEZpbHRlckVmZmVjdDo6VHlwZTo6
U291cmNlR3JhcGhpYzoKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgICAgICAKLSAgICBj
YXNlIEZpbHRlckVmZmVjdDo6VHlwZTo6Q29sb3JNYXRyaXg6IHsKKyAgICBjYXNlIEZpbHRlckVm
ZmVjdDo6VHlwZTo6RkVDb2xvck1hdHJpeDogewogICAgICAgICBzd2l0Y2ggKGRvd25jYXN0PEZF
Q29sb3JNYXRyaXg+KGVmZmVjdCkudHlwZSgpKSB7CiAgICAgICAgIGNhc2UgRkVDT0xPUk1BVFJJ
WF9UWVBFX1VOS05PV046CiAgICAgICAgIGNhc2UgRkVDT0xPUk1BVFJJWF9UWVBFX0xVTUlOQU5D
RVRPQUxQSEE6CkBAIC04OCwyNiArODgsMTAgQEAgYm9vbCBGaWx0ZXJFZmZlY3RSZW5kZXJlckNv
cmVJbWFnZTo6c3VwcG9ydHNDb3JlSW1hZ2VSZW5kZXJpbmcoRmlsdGVyRWZmZWN0JiBlZmYKICAg
ICAgICAgfQogICAgIH0KIAotICAgIGNhc2UgRmlsdGVyRWZmZWN0OjpUeXBlOjpDb21wb25lbnRU
cmFuc2ZlcjoKKyAgICBjYXNlIEZpbHRlckVmZmVjdDo6VHlwZTo6RkVDb21wb25lbnRUcmFuc2Zl
cjoKICAgICAgICAgcmV0dXJuIGlzTnVsbE9yTGluZWFyQ29tcG9uZW50VHJhbnNmZXJGdW5jdGlv
bihkb3duY2FzdDxGRUNvbXBvbmVudFRyYW5zZmVyPihlZmZlY3QpKTsKIAotICAgIGNhc2UgRmls
dGVyRWZmZWN0OjpUeXBlOjpCbGVuZDoKLSAgICBjYXNlIEZpbHRlckVmZmVjdDo6VHlwZTo6Q29t
cG9zaXRlOgotICAgIGNhc2UgRmlsdGVyRWZmZWN0OjpUeXBlOjpDb252b2x2ZU1hdHJpeDoKLSAg
ICBjYXNlIEZpbHRlckVmZmVjdDo6VHlwZTo6RGlmZnVzZUxpZ2h0aW5nOgotICAgIGNhc2UgRmls
dGVyRWZmZWN0OjpUeXBlOjpEaXNwbGFjZW1lbnRNYXA6Ci0gICAgY2FzZSBGaWx0ZXJFZmZlY3Q6
OlR5cGU6OkRyb3BTaGFkb3c6Ci0gICAgY2FzZSBGaWx0ZXJFZmZlY3Q6OlR5cGU6OkZsb29kOgot
ICAgIGNhc2UgRmlsdGVyRWZmZWN0OjpUeXBlOjpHYXVzc2lhbkJsdXI6Ci0gICAgY2FzZSBGaWx0
ZXJFZmZlY3Q6OlR5cGU6OkltYWdlOgotICAgIGNhc2UgRmlsdGVyRWZmZWN0OjpUeXBlOjpMaWdo
dGluZzoKLSAgICBjYXNlIEZpbHRlckVmZmVjdDo6VHlwZTo6TWVyZ2U6Ci0gICAgY2FzZSBGaWx0
ZXJFZmZlY3Q6OlR5cGU6Ok1vcnBob2xvZ3k6Ci0gICAgY2FzZSBGaWx0ZXJFZmZlY3Q6OlR5cGU6
Ok9mZnNldDoKLSAgICBjYXNlIEZpbHRlckVmZmVjdDo6VHlwZTo6U3BlY3VsYXJMaWdodGluZzoK
LSAgICBjYXNlIEZpbHRlckVmZmVjdDo6VHlwZTo6VGlsZToKLSAgICBjYXNlIEZpbHRlckVmZmVj
dDo6VHlwZTo6VHVyYnVsZW5jZToKLSAgICBjYXNlIEZpbHRlckVmZmVjdDo6VHlwZTo6U291cmNl
QWxwaGE6CisgICAgZGVmYXVsdDoKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KICAgICBy
ZXR1cm4gZmFsc2U7CkBAIC0xMzcsMzIgKzEyMSwxNCBAQCBSZXRhaW5QdHI8Q0lJbWFnZT4gRmls
dGVyRWZmZWN0UmVuZGVyZXJDb3JlSW1hZ2U6OmNvbm5lY3RDSUZpbHRlcnMoRmlsdGVyRWZmZWN0
JgogICAgIGlmIChlZmZlY3QuYWJzb2x1dGVQYWludFJlY3QoKS5pc0VtcHR5KCkgfHwgSW1hZ2VC
dWZmZXI6OnNpemVOZWVkc0NsYW1waW5nKGVmZmVjdC5hYnNvbHV0ZVBhaW50UmVjdCgpLnNpemUo
KSkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIAotICAgIHN3aXRjaCAoZWZmZWN0LmZp
bHRlckVmZmVjdENsYXNzVHlwZSgpKSB7CisgICAgc3dpdGNoIChlZmZlY3QuZmlsdGVyVHlwZSgp
KSB7CiAgICAgY2FzZSBGaWx0ZXJFZmZlY3Q6OlR5cGU6OlNvdXJjZUdyYXBoaWM6CiAgICAgICAg
IHJldHVybiBpbWFnZUZvclNvdXJjZUdyYXBoaWMoZG93bmNhc3Q8U291cmNlR3JhcGhpYz4oZWZm
ZWN0KSk7Ci0gICAgY2FzZSBGaWx0ZXJFZmZlY3Q6OlR5cGU6OkNvbG9yTWF0cml4OgorICAgIGNh
c2UgRmlsdGVyRWZmZWN0OjpUeXBlOjpGRUNvbG9yTWF0cml4OgogICAgICAgICByZXR1cm4gaW1h
Z2VGb3JGRUNvbG9yTWF0cml4KGRvd25jYXN0PEZFQ29sb3JNYXRyaXg+KGVmZmVjdCksIGlucHV0
SW1hZ2VzKTsKLSAgICBjYXNlIEZpbHRlckVmZmVjdDo6VHlwZTo6Q29tcG9uZW50VHJhbnNmZXI6
CisgICAgY2FzZSBGaWx0ZXJFZmZlY3Q6OlR5cGU6OkZFQ29tcG9uZW50VHJhbnNmZXI6CiAgICAg
ICAgIHJldHVybiBpbWFnZUZvckZFQ29tcG9uZW50VHJhbnNmZXIoZG93bmNhc3Q8RkVDb21wb25l
bnRUcmFuc2Zlcj4oZWZmZWN0KSwgaW5wdXRJbWFnZXMpOwogCi0gICAgLy8gRklYTUU6IEltcGxl
bWVudCB0aG9zZSBmaWx0ZXJzIHVzaW5nIENJRmlsdGVyIHNvIHRoYXQgdGhlIGZ1bmN0aW9uIHJl
dHVybnMgYSB2YWxpZCBDSUltYWdlCi0gICAgY2FzZSBGaWx0ZXJFZmZlY3Q6OlR5cGU6OkJsZW5k
OgotICAgIGNhc2UgRmlsdGVyRWZmZWN0OjpUeXBlOjpDb21wb3NpdGU6Ci0gICAgY2FzZSBGaWx0
ZXJFZmZlY3Q6OlR5cGU6OkNvbnZvbHZlTWF0cml4OgotICAgIGNhc2UgRmlsdGVyRWZmZWN0OjpU
eXBlOjpEaWZmdXNlTGlnaHRpbmc6Ci0gICAgY2FzZSBGaWx0ZXJFZmZlY3Q6OlR5cGU6OkRpc3Bs
YWNlbWVudE1hcDoKLSAgICBjYXNlIEZpbHRlckVmZmVjdDo6VHlwZTo6RHJvcFNoYWRvdzoKLSAg
ICBjYXNlIEZpbHRlckVmZmVjdDo6VHlwZTo6Rmxvb2Q6Ci0gICAgY2FzZSBGaWx0ZXJFZmZlY3Q6
OlR5cGU6OkdhdXNzaWFuQmx1cjoKLSAgICBjYXNlIEZpbHRlckVmZmVjdDo6VHlwZTo6SW1hZ2U6
Ci0gICAgY2FzZSBGaWx0ZXJFZmZlY3Q6OlR5cGU6OkxpZ2h0aW5nOgotICAgIGNhc2UgRmlsdGVy
RWZmZWN0OjpUeXBlOjpNZXJnZToKLSAgICBjYXNlIEZpbHRlckVmZmVjdDo6VHlwZTo6TW9ycGhv
bG9neToKLSAgICBjYXNlIEZpbHRlckVmZmVjdDo6VHlwZTo6T2Zmc2V0OgotICAgIGNhc2UgRmls
dGVyRWZmZWN0OjpUeXBlOjpTcGVjdWxhckxpZ2h0aW5nOgotICAgIGNhc2UgRmlsdGVyRWZmZWN0
OjpUeXBlOjpUaWxlOgotICAgIGNhc2UgRmlsdGVyRWZmZWN0OjpUeXBlOjpUdXJidWxlbmNlOgot
ICAgIGNhc2UgRmlsdGVyRWZmZWN0OjpUeXBlOjpTb3VyY2VBbHBoYToKICAgICBkZWZhdWx0Ogog
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQmxlbmQuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUJsZW5kLmNwcAppbmRleCA1YWM3ZjQ5MGQ0Y2Rh
NTMzYTQxZjVjM2Q4NTQ1MzJjMThhZGNkYjY2Li5iNGNhZWQ0NTU1NzJmYzg1Y2VkOGE0ZjIzMWM5
ZjgzMDI3YmFmYjBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9maWx0ZXJzL0ZFQmxlbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2ZpbHRlcnMvRkVCbGVuZC5jcHAKQEAgLTM1LDcgKzM1LDcgQEAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogRkVCbGVuZDo6RkVCbGVuZChGaWx0ZXImIGZpbHRlciwgQmxlbmRNb2RlIG1vZGUp
Ci0gICAgOiBGaWx0ZXJFZmZlY3QoZmlsdGVyLCBUeXBlOjpCbGVuZCkKKyAgICA6IEZpbHRlckVm
ZmVjdChmaWx0ZXIsIEZpbHRlckVmZmVjdDo6VHlwZTo6RkVCbGVuZCkKICAgICAsIG1fbW9kZSht
b2RlKQogewogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZmlsdGVycy9GRUJsZW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0
ZXJzL0ZFQmxlbmQuaAppbmRleCA3MGU4NDA3YmY1YzIwMGQ0NTIxNmI4ZjljMDg1MTdiNTA3OWU3
OTY2Li5iODRjOGRkMjgwNThmZjQ1ZDU0Y2RmOGE3M2EyYmE3MTcyNWZkZTVjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQmxlbmQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQmxlbmQuaApAQCAt
MzYsOCArMzYsNiBAQCBwdWJsaWM6CiAgICAgYm9vbCBzZXRCbGVuZE1vZGUoQmxlbmRNb2RlKTsK
IAogcHJpdmF0ZToKLSAgICBjb25zdCBjaGFyKiBmaWx0ZXJOYW1lKCkgY29uc3QgZmluYWwgeyBy
ZXR1cm4gIkZFQmxlbmQiOyB9Ci0KICAgICB2b2lkIHBsYXRmb3JtQXBwbHlTb2Z0d2FyZSgpIG92
ZXJyaWRlOwogICAgIHZvaWQgcGxhdGZvcm1BcHBseUdlbmVyaWModW5zaWduZWQgY2hhciogc3Jj
UGl4ZWxBcnJheUEsIHVuc2lnbmVkIGNoYXIqIHNyY1BpeGVsQXJyYXlCLCB1bnNpZ25lZCBjaGFy
KiBkc3RQaXhlbEFycmF5LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY29s
b3JBcnJheUxlbmd0aCk7CkBAIC01MywzICs1MSw0IEBAIHByaXZhdGU6CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKIAorU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19GSUxURVJfRUZGRUNUKEZFQmxl
bmQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJz
L0ZFQ29sb3JNYXRyaXguY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmls
dGVycy9GRUNvbG9yTWF0cml4LmNwcAppbmRleCAxNjQyMmQ2ZGM1YjU3ZWM2Zjc0N2E0MjEwYzI4
NTQzMzJiYTFkM2U1Li5hNzkxYmQ2ZDMxZmQ3NTA0YTExMzI3ZjFkNDFhY2JkM2E0OWUxOTUyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29s
b3JNYXRyaXguY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRl
cnMvRkVDb2xvck1hdHJpeC5jcHAKQEAgLTM2LDcgKzM2LDcgQEAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogRkVDb2xvck1hdHJpeDo6RkVDb2xvck1hdHJpeChGaWx0ZXImIGZpbHRlciwgQ29sb3JN
YXRyaXhUeXBlIHR5cGUsIFZlY3RvcjxmbG9hdD4mJiB2YWx1ZXMpCi0gICAgOiBGaWx0ZXJFZmZl
Y3QoZmlsdGVyLCBUeXBlOjpDb2xvck1hdHJpeCkKKyAgICA6IEZpbHRlckVmZmVjdChmaWx0ZXIs
IEZpbHRlckVmZmVjdDo6VHlwZTo6RkVDb2xvck1hdHJpeCkKICAgICAsIG1fdHlwZSh0eXBlKQog
ICAgICwgbV92YWx1ZXMoV1RGTW92ZSh2YWx1ZXMpKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbG9yTWF0cml4LmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29sb3JNYXRyaXguaAppbmRleCAy
OWU0MWE4YWVkMWU0ZjBiNTM5NzAzYWM0ZGI1NTI0ZWZhNGMxMjNmLi45OTJlNzVmOWU4MTUwYzYx
N2EyZWYwN2M2NTkzNjE2MDA1ZTQwZjQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29sb3JNYXRyaXguaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29sb3JNYXRyaXguaApAQCAtNTIsOCArNTIs
NiBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIEZFQ29sb3JNYXRyaXgoRmlsdGVyJiwgQ29sb3JN
YXRyaXhUeXBlLCBWZWN0b3I8ZmxvYXQ+JiYpOwogCi0gICAgY29uc3QgY2hhciogZmlsdGVyTmFt
ZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICJGRUNvbG9yTWF0cml4IjsgfQotCiAgICAgdm9pZCBw
bGF0Zm9ybUFwcGx5U29mdHdhcmUoKSBvdmVycmlkZTsKIAogICAgIFdURjo6VGV4dFN0cmVhbSYg
ZXh0ZXJuYWxSZXByZXNlbnRhdGlvbihXVEY6OlRleHRTdHJlYW0mLCBSZXByZXNlbnRhdGlvblR5
cGUpIGNvbnN0IG92ZXJyaWRlOwpAQCAtOTMsNyArOTEsNCBAQCBpbmxpbmUgdm9pZCBGRUNvbG9y
TWF0cml4OjpjYWxjdWxhdGVIdWVSb3RhdGVDb21wb25lbnRzKGZsb2F0KiBjb21wb25lbnRzLCBm
bG9hdAogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKLVNQRUNJQUxJWkVfVFlQRV9UUkFJVFNf
QkVHSU4oV2ViQ29yZTo6RkVDb2xvck1hdHJpeCkKLSAgICBzdGF0aWMgYm9vbCBpc1R5cGUoY29u
c3QgV2ViQ29yZTo6RmlsdGVyRWZmZWN0JiBlZmZlY3QpIHsgcmV0dXJuIGVmZmVjdC5maWx0ZXJF
ZmZlY3RDbGFzc1R5cGUoKSA9PSBXZWJDb3JlOjpGaWx0ZXJFZmZlY3Q6OlR5cGU6OkNvbG9yTWF0
cml4OyB9Ci1TUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0VORCgpCi0KK1NQRUNJQUxJWkVfVFlQRV9U
UkFJVFNfRklMVEVSX0VGRkVDVChGRUNvbG9yTWF0cml4KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbXBvbmVudFRyYW5zZmVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb21wb25lbnRUcmFu
c2Zlci5jcHAKaW5kZXggODQ3ZWE1OGY1ZjliMDM4NjZkOWVhYzU3ZjEwY2NmNTc0MDJmOWU2My4u
Y2UwMGNjMTk4Mjk3OWI0MDk0MDRkNWNmZGNjMDNhNmVkMzM1YzNiMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbXBvbmVudFRyYW5zZmVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29t
cG9uZW50VHJhbnNmZXIuY3BwCkBAIC0zMyw5ICszMyw4IEBACiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAotRkVDb21wb25lbnRUcmFuc2Zlcjo6RkVDb21wb25lbnRUcmFuc2ZlcihGaWx0ZXImIGZp
bHRlciwgY29uc3QgQ29tcG9uZW50VHJhbnNmZXJGdW5jdGlvbiYgcmVkRnVuY3Rpb24sCi0gICAg
Y29uc3QgQ29tcG9uZW50VHJhbnNmZXJGdW5jdGlvbiYgZ3JlZW5GdW5jdGlvbiwgY29uc3QgQ29t
cG9uZW50VHJhbnNmZXJGdW5jdGlvbiYgYmx1ZUZ1bmN0aW9uLCBjb25zdCBDb21wb25lbnRUcmFu
c2ZlckZ1bmN0aW9uJiBhbHBoYUZ1bmN0aW9uKQotICAgIDogRmlsdGVyRWZmZWN0KGZpbHRlciwg
VHlwZTo6Q29tcG9uZW50VHJhbnNmZXIpCitGRUNvbXBvbmVudFRyYW5zZmVyOjpGRUNvbXBvbmVu
dFRyYW5zZmVyKEZpbHRlciYgZmlsdGVyLCBjb25zdCBDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9u
JiByZWRGdW5jdGlvbiwgY29uc3QgQ29tcG9uZW50VHJhbnNmZXJGdW5jdGlvbiYgZ3JlZW5GdW5j
dGlvbiwgY29uc3QgQ29tcG9uZW50VHJhbnNmZXJGdW5jdGlvbiYgYmx1ZUZ1bmN0aW9uLCBjb25z
dCBDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uJiBhbHBoYUZ1bmN0aW9uKQorICAgIDogRmlsdGVy
RWZmZWN0KGZpbHRlciwgRmlsdGVyRWZmZWN0OjpUeXBlOjpGRUNvbXBvbmVudFRyYW5zZmVyKQog
ICAgICwgbV9yZWRGdW5jdGlvbihyZWRGdW5jdGlvbikKICAgICAsIG1fZ3JlZW5GdW5jdGlvbihn
cmVlbkZ1bmN0aW9uKQogICAgICwgbV9ibHVlRnVuY3Rpb24oYmx1ZUZ1bmN0aW9uKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbXBvbmVu
dFRyYW5zZmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZF
Q29tcG9uZW50VHJhbnNmZXIuaAppbmRleCAyYjU4NmRlZjdmYjQyYTM3YjJlMTIzZWRhODcxMTlj
NGViMzQ4YTUxLi4zYjlkMjYwOGIwOTc0ZDgyNTVlY2FhNDJhODNjMmFmZGY2MzhhM2Q5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29tcG9u
ZW50VHJhbnNmZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0
ZXJzL0ZFQ29tcG9uZW50VHJhbnNmZXIuaApAQCAtNjUsOCArNjUsNiBAQCBwcml2YXRlOgogICAg
IEZFQ29tcG9uZW50VHJhbnNmZXIoRmlsdGVyJiwgY29uc3QgQ29tcG9uZW50VHJhbnNmZXJGdW5j
dGlvbiYgcmVkRnVuYywgY29uc3QgQ29tcG9uZW50VHJhbnNmZXJGdW5jdGlvbiYgZ3JlZW5GdW5j
LAogICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgQ29tcG9uZW50VHJhbnNmZXJGdW5jdGlv
biYgYmx1ZUZ1bmMsIGNvbnN0IENvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb24mIGFscGhhRnVuYyk7
CiAKLSAgICAgY29uc3QgY2hhciogZmlsdGVyTmFtZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICJG
RUNvbXBvbmVudFRyYW5zZmVyIjsgfQotCiAgICAgdXNpbmcgTG9va3VwVGFibGUgPSBzdGQ6OmFy
cmF5PHVpbnQ4X3QsIDI1Nj47CiAKICAgICBzdGF0aWMgdm9pZCBjb21wdXRlSWRlbnRpdHlUYWJs
ZShMb29rdXBUYWJsZSYsIGNvbnN0IENvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb24mKTsKQEAgLTg5
LDYgKzg3LDQgQEAgcHJpdmF0ZToKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCi1TUEVDSUFM
SVpFX1RZUEVfVFJBSVRTX0JFR0lOKFdlYkNvcmU6OkZFQ29tcG9uZW50VHJhbnNmZXIpCi0gICAg
c3RhdGljIGJvb2wgaXNUeXBlKGNvbnN0IFdlYkNvcmU6OkZpbHRlckVmZmVjdCYgZWZmZWN0KSB7
IHJldHVybiBlZmZlY3QuZmlsdGVyRWZmZWN0Q2xhc3NUeXBlKCkgPT0gV2ViQ29yZTo6RmlsdGVy
RWZmZWN0OjpUeXBlOjpDb21wb25lbnRUcmFuc2ZlcjsgfQotU1BFQ0lBTElaRV9UWVBFX1RSQUlU
U19FTkQoKQorU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19GSUxURVJfRUZGRUNUKEZFQ29tcG9uZW50
VHJhbnNmZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9m
aWx0ZXJzL0ZFQ29tcG9zaXRlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2ZpbHRlcnMvRkVDb21wb3NpdGUuY3BwCmluZGV4IDgzMzUzMDkwODFhMjZiYTJjMzFjM2JkYWM4
ODg2NjllMjhlMzQ1NmQuLmUwYmVmMzA3NDA1ZmYyMzNlOGEyYWZiNWNiZWM4ZDU0OGQyMjc4MDgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVD
b21wb3NpdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRl
cnMvRkVDb21wb3NpdGUuY3BwCkBAIC0zMyw3ICszMyw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKIEZFQ29tcG9zaXRlOjpGRUNvbXBvc2l0ZShGaWx0ZXImIGZpbHRlciwgY29uc3QgQ29tcG9z
aXRlT3BlcmF0aW9uVHlwZSYgdHlwZSwgZmxvYXQgazEsIGZsb2F0IGsyLCBmbG9hdCBrMywgZmxv
YXQgazQpCi0gICAgOiBGaWx0ZXJFZmZlY3QoZmlsdGVyLCBUeXBlOjpDb21wb3NpdGUpCisgICAg
OiBGaWx0ZXJFZmZlY3QoZmlsdGVyLCBGaWx0ZXJFZmZlY3Q6OlR5cGU6OkZFQ29tcG9zaXRlKQog
ICAgICwgbV90eXBlKHR5cGUpCiAgICAgLCBtX2sxKGsxKQogICAgICwgbV9rMihrMikKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb21wb3Np
dGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb21wb3Np
dGUuaAppbmRleCA3ZDA4ZTFmNzEwN2I0Yjk2OGM1OGUzYTM3YzMyYWUyZjc2YWVhMGMzLi4zOTIz
N2ZlYjEyN2FkMWZmMWRlMjE4MzRiZDdiMmI3MzdmYWFmMzJkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29tcG9zaXRlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbXBvc2l0ZS5oCkBAIC02
NCw4ICs2NCw2IEBAIHByb3RlY3RlZDoKIHByaXZhdGU6CiAgICAgRkVDb21wb3NpdGUoRmlsdGVy
JiwgY29uc3QgQ29tcG9zaXRlT3BlcmF0aW9uVHlwZSYsIGZsb2F0LCBmbG9hdCwgZmxvYXQsIGZs
b2F0KTsKIAotICAgIGNvbnN0IGNoYXIqIGZpbHRlck5hbWUoKSBjb25zdCBmaW5hbCB7IHJldHVy
biAiRkVDb21wb3NpdGUiOyB9Ci0KICAgICB2b2lkIGNvcnJlY3RGaWx0ZXJSZXN1bHRJZk5lZWRl
ZCgpIG92ZXJyaWRlOwogICAgIHZvaWQgZGV0ZXJtaW5lQWJzb2x1dGVQYWludFJlY3QoKSBvdmVy
cmlkZTsKIApAQCAtOTAsMyArODgsNCBAQCBwcml2YXRlOgogCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCiAKK1NQRUNJQUxJWkVfVFlQRV9UUkFJVFNfRklMVEVSX0VGRkVDVChGRUNvbXBvc2l0ZSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVD
b252b2x2ZU1hdHJpeC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0
ZXJzL0ZFQ29udm9sdmVNYXRyaXguY3BwCmluZGV4IDNiYmU3ODM1OThkNzA5MzVhOTVjNmYxNTZl
YzI5MzNjMGU5OWYwNTAuLjgwYjRjODkyOTUyMGZhMDU3YzdjNTJkMmNkN2JiYjRlOThlYzU1Njcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVD
b252b2x2ZU1hdHJpeC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZmlsdGVycy9GRUNvbnZvbHZlTWF0cml4LmNwcApAQCAtMzIsMTAgKzMyLDggQEAKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCi1GRUNvbnZvbHZlTWF0cml4OjpGRUNvbnZvbHZlTWF0cml4KEZpbHRl
ciYgZmlsdGVyLCBjb25zdCBJbnRTaXplJiBrZXJuZWxTaXplLAotICAgIGZsb2F0IGRpdmlzb3Is
IGZsb2F0IGJpYXMsIGNvbnN0IEludFBvaW50JiB0YXJnZXRPZmZzZXQsIEVkZ2VNb2RlVHlwZSBl
ZGdlTW9kZSwKLSAgICBjb25zdCBGbG9hdFBvaW50JiBrZXJuZWxVbml0TGVuZ3RoLCBib29sIHBy
ZXNlcnZlQWxwaGEsIGNvbnN0IFZlY3RvcjxmbG9hdD4mIGtlcm5lbE1hdHJpeCkKLSAgICA6IEZp
bHRlckVmZmVjdChmaWx0ZXIsIFR5cGU6OkNvbnZvbHZlTWF0cml4KQorRkVDb252b2x2ZU1hdHJp
eDo6RkVDb252b2x2ZU1hdHJpeChGaWx0ZXImIGZpbHRlciwgY29uc3QgSW50U2l6ZSYga2VybmVs
U2l6ZSwgZmxvYXQgZGl2aXNvciwgZmxvYXQgYmlhcywgY29uc3QgSW50UG9pbnQmIHRhcmdldE9m
ZnNldCwgRWRnZU1vZGVUeXBlIGVkZ2VNb2RlLCBjb25zdCBGbG9hdFBvaW50JiBrZXJuZWxVbml0
TGVuZ3RoLCBib29sIHByZXNlcnZlQWxwaGEsIGNvbnN0IFZlY3RvcjxmbG9hdD4mIGtlcm5lbE1h
dHJpeCkKKyAgICA6IEZpbHRlckVmZmVjdChmaWx0ZXIsIEZpbHRlckVmZmVjdDo6VHlwZTo6RkVD
b252b2x2ZU1hdHJpeCkKICAgICAsIG1fa2VybmVsU2l6ZShrZXJuZWxTaXplKQogICAgICwgbV9k
aXZpc29yKGRpdmlzb3IpCiAgICAgLCBtX2JpYXMoYmlhcykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb252b2x2ZU1hdHJpeC5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbnZvbHZlTWF0cml4LmgK
aW5kZXggNjdkNGM2NTY3ZmNlNmIyN2VlNWFiODk1YTZlMWU1MDA1NGUxM2RiYS4uYzFhNWM1Yjg2
NzU2MmYyNmFmODA3ZDQ1YzViNDAwOTZkYjFjZmZmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbnZvbHZlTWF0cml4LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbnZvbHZlTWF0cml4LmgK
QEAgLTgwLDggKzgwLDYgQEAgcHJpdmF0ZToKICAgICBGRUNvbnZvbHZlTWF0cml4KEZpbHRlciYs
IGNvbnN0IEludFNpemUmLCBmbG9hdCwgZmxvYXQsCiAgICAgICAgICAgICBjb25zdCBJbnRQb2lu
dCYsIEVkZ2VNb2RlVHlwZSwgY29uc3QgRmxvYXRQb2ludCYsIGJvb2wsIGNvbnN0IFZlY3Rvcjxm
bG9hdD4mKTsKIAotICAgIGNvbnN0IGNoYXIqIGZpbHRlck5hbWUoKSBjb25zdCBmaW5hbCB7IHJl
dHVybiAiRkVDb252b2x2ZU1hdHJpeCI7IH0KLQogICAgIHZvaWQgZGV0ZXJtaW5lQWJzb2x1dGVQ
YWludFJlY3QoKSBvdmVycmlkZSB7IHNldEFic29sdXRlUGFpbnRSZWN0KGVuY2xvc2luZ0ludFJl
Y3QobWF4RWZmZWN0UmVjdCgpKSk7IH0KIAogICAgIHZvaWQgcGxhdGZvcm1BcHBseVNvZnR3YXJl
KCkgb3ZlcnJpZGU7CkBAIC0xMTUsMyArMTEzLDQgQEAgcHJpdmF0ZToKIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQogCitTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0ZJTFRFUl9FRkZFQ1QoRkVDb252
b2x2ZU1hdHJpeCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2ZpbHRlcnMvRkVEaWZmdXNlTGlnaHRpbmcuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZmlsdGVycy9GRURpZmZ1c2VMaWdodGluZy5jcHAKaW5kZXggZWViMTcyOGRiMzVl
OGFjMzAyYjI3ZTRjM2ZmMzRjYjg4NTViOWQwOS4uNDRlMmU2MjE0YTM3NmE0ZGExZWU3NzNjZGQ0
MTc2NTc3NDA5YjFlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZmlsdGVycy9GRURpZmZ1c2VMaWdodGluZy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRURpZmZ1c2VMaWdodGluZy5jcHAKQEAgLTI4LDcgKzI4
LDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogRkVEaWZmdXNlTGlnaHRpbmc6OkZFRGlmZnVz
ZUxpZ2h0aW5nKEZpbHRlciYgZmlsdGVyLCBjb25zdCBDb2xvciYgbGlnaHRpbmdDb2xvciwgZmxv
YXQgc3VyZmFjZVNjYWxlLCBmbG9hdCBkaWZmdXNlQ29uc3RhbnQsIGZsb2F0IGtlcm5lbFVuaXRM
ZW5ndGhYLCBmbG9hdCBrZXJuZWxVbml0TGVuZ3RoWSwgUmVmPExpZ2h0U291cmNlPiYmIGxpZ2h0
U291cmNlKQotICAgIDogRkVMaWdodGluZyhmaWx0ZXIsIERpZmZ1c2VMaWdodGluZywgbGlnaHRp
bmdDb2xvciwgc3VyZmFjZVNjYWxlLCBkaWZmdXNlQ29uc3RhbnQsIDAsIDAsIGtlcm5lbFVuaXRM
ZW5ndGhYLCBrZXJuZWxVbml0TGVuZ3RoWSwgV1RGTW92ZShsaWdodFNvdXJjZSksIFR5cGU6OkRp
ZmZ1c2VMaWdodGluZykKKyAgICA6IEZFTGlnaHRpbmcoZmlsdGVyLCBEaWZmdXNlTGlnaHRpbmcs
IGxpZ2h0aW5nQ29sb3IsIHN1cmZhY2VTY2FsZSwgZGlmZnVzZUNvbnN0YW50LCAwLCAwLCBrZXJu
ZWxVbml0TGVuZ3RoWCwga2VybmVsVW5pdExlbmd0aFksIFdURk1vdmUobGlnaHRTb3VyY2UpLCBG
aWx0ZXJFZmZlY3Q6OlR5cGU6OkZFRGlmZnVzZUxpZ2h0aW5nKQogewogfQogCkBAIC0zNyw4ICsz
Nyw2IEBAIFJlZjxGRURpZmZ1c2VMaWdodGluZz4gRkVEaWZmdXNlTGlnaHRpbmc6OmNyZWF0ZShG
aWx0ZXImIGZpbHRlciwgY29uc3QgQ29sb3ImIGxpCiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
RkVEaWZmdXNlTGlnaHRpbmcoZmlsdGVyLCBsaWdodGluZ0NvbG9yLCBzdXJmYWNlU2NhbGUsIGRp
ZmZ1c2VDb25zdGFudCwga2VybmVsVW5pdExlbmd0aFgsIGtlcm5lbFVuaXRMZW5ndGhZLCBXVEZN
b3ZlKGxpZ2h0U291cmNlKSkpOwogfQogCi1GRURpZmZ1c2VMaWdodGluZzo6fkZFRGlmZnVzZUxp
Z2h0aW5nKCkgPSBkZWZhdWx0OwotCiBib29sIEZFRGlmZnVzZUxpZ2h0aW5nOjpzZXREaWZmdXNl
Q29uc3RhbnQoZmxvYXQgZGlmZnVzZUNvbnN0YW50KQogewogICAgIGlmIChtX2RpZmZ1c2VDb25z
dGFudCA9PSBkaWZmdXNlQ29uc3RhbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRGlmZnVzZUxpZ2h0aW5nLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRGlmZnVzZUxpZ2h0aW5nLmgKaW5kZXggZGY2
MTE0ZDBmYjhlMmYzZTExMjhiODQyNjE1ZTQ3NTEzYTBkZGRjMy4uMjczN2Y2MGY0YzNmNGIzNjI0
ZGY4MGViYjk5ODM3YmE2NTlmYTBiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZmlsdGVycy9GRURpZmZ1c2VMaWdodGluZy5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVEaWZmdXNlTGlnaHRpbmcuaApAQCAtMzAs
NyArMzAsNiBAQCBjbGFzcyBMaWdodFNvdXJjZTsKIGNsYXNzIEZFRGlmZnVzZUxpZ2h0aW5nIDog
cHVibGljIEZFTGlnaHRpbmcgewogcHVibGljOgogICAgIHN0YXRpYyBSZWY8RkVEaWZmdXNlTGln
aHRpbmc+IGNyZWF0ZShGaWx0ZXImLCBjb25zdCBDb2xvciYsIGZsb2F0LCBmbG9hdCwgZmxvYXQs
IGZsb2F0LCBSZWY8TGlnaHRTb3VyY2U+JiYpOwotICAgIHZpcnR1YWwgfkZFRGlmZnVzZUxpZ2h0
aW5nKCk7CiAKICAgICBmbG9hdCBkaWZmdXNlQ29uc3RhbnQoKSBjb25zdCB7IHJldHVybiBtX2Rp
ZmZ1c2VDb25zdGFudDsgfQogICAgIGJvb2wgc2V0RGlmZnVzZUNvbnN0YW50KGZsb2F0KTsKQEAg
LTQzLDMgKzQyLDQgQEAgcHJpdmF0ZToKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCitTUEVD
SUFMSVpFX1RZUEVfVFJBSVRTX0ZJTFRFUl9FRkZFQ1QoRkVEaWZmdXNlTGlnaHRpbmcpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRGlzcGxh
Y2VtZW50TWFwLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMv
RkVEaXNwbGFjZW1lbnRNYXAuY3BwCmluZGV4IDA0NzQ5MzM5MmJiMjgxNDZkOGIxNjliYTBhN2Mz
MmIxNmM1NjNmYTEuLjQ2Yjc3Yzg1YTFjZjhkNDg1YzA1YzMxNTczMzllMGJiNGFlYmU1OGMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVEaXNw
bGFjZW1lbnRNYXAuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Zp
bHRlcnMvRkVEaXNwbGFjZW1lbnRNYXAuY3BwCkBAIC0zMiw3ICszMiw3IEBACiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIEZFRGlzcGxhY2VtZW50TWFwOjpGRURpc3BsYWNlbWVudE1hcChGaWx0ZXIm
IGZpbHRlciwgQ2hhbm5lbFNlbGVjdG9yVHlwZSB4Q2hhbm5lbFNlbGVjdG9yLCBDaGFubmVsU2Vs
ZWN0b3JUeXBlIHlDaGFubmVsU2VsZWN0b3IsIGZsb2F0IHNjYWxlKQotICAgIDogRmlsdGVyRWZm
ZWN0KGZpbHRlciwgVHlwZTo6RGlzcGxhY2VtZW50TWFwKQorICAgIDogRmlsdGVyRWZmZWN0KGZp
bHRlciwgRmlsdGVyRWZmZWN0OjpUeXBlOjpGRURpc3BsYWNlbWVudE1hcCkKICAgICAsIG1feENo
YW5uZWxTZWxlY3Rvcih4Q2hhbm5lbFNlbGVjdG9yKQogICAgICwgbV95Q2hhbm5lbFNlbGVjdG9y
KHlDaGFubmVsU2VsZWN0b3IpCiAgICAgLCBtX3NjYWxlKHNjYWxlKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRURpc3BsYWNlbWVudE1hcC5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRURpc3BsYWNlbWVu
dE1hcC5oCmluZGV4IGRkNzMyYTg4MTA3M2UyNjZiYzg0NmFmZTY4MTllNjc1MTYyM2EzYTIuLmFh
NWI2ZDQ2YmM0NjRmYzZkMDYwZDg2YWY2YmFlMGVmMDdlYzllOGQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVEaXNwbGFjZW1lbnRNYXAuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRGlzcGxhY2Vt
ZW50TWFwLmgKQEAgLTU0LDggKzU0LDYgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBGRURpc3Bs
YWNlbWVudE1hcChGaWx0ZXImLCBDaGFubmVsU2VsZWN0b3JUeXBlIHhDaGFubmVsU2VsZWN0b3Is
IENoYW5uZWxTZWxlY3RvclR5cGUgeUNoYW5uZWxTZWxlY3RvciwgZmxvYXQpOwogCi0gICAgY29u
c3QgY2hhciogZmlsdGVyTmFtZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICJGRURpc3BsYWNlbWVu
dE1hcCI7IH0KLQogICAgIHZvaWQgcGxhdGZvcm1BcHBseVNvZnR3YXJlKCkgb3ZlcnJpZGU7CiAK
ICAgICB2b2lkIGRldGVybWluZUFic29sdXRlUGFpbnRSZWN0KCkgb3ZlcnJpZGUgeyBzZXRBYnNv
bHV0ZVBhaW50UmVjdChlbmNsb3NpbmdJbnRSZWN0KG1heEVmZmVjdFJlY3QoKSkpOyB9CkBAIC03
MiwzICs3MCw0IEBAIHByaXZhdGU6CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAorU1BFQ0lB
TElaRV9UWVBFX1RSQUlUU19GSUxURVJfRUZGRUNUKEZFRGlzcGxhY2VtZW50TWFwKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRURyb3BTaGFk
b3cuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRURyb3BT
aGFkb3cuY3BwCmluZGV4IDM1ZmJhYjQxZTgwOTIxNmU0YjIyNDM1MTE4NjIzZTI4ZmZkNjFlZmEu
LjczZmI3NDAxNzc0YTNjZDY4N2I1Mzg3NjNkYmIzZDZkMWI0YWY1NDUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVEcm9wU2hhZG93LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRHJvcFNoYWRv
dy5jcHAKQEAgLTMyLDcgKzMyLDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAKIEZFRHJv
cFNoYWRvdzo6RkVEcm9wU2hhZG93KEZpbHRlciYgZmlsdGVyLCBmbG9hdCBzdGRYLCBmbG9hdCBz
dGRZLCBmbG9hdCBkeCwgZmxvYXQgZHksIGNvbnN0IENvbG9yJiBzaGFkb3dDb2xvciwgZmxvYXQg
c2hhZG93T3BhY2l0eSkKLSAgICA6IEZpbHRlckVmZmVjdChmaWx0ZXIsIFR5cGU6OkRyb3BTaGFk
b3cpCisgICAgOiBGaWx0ZXJFZmZlY3QoZmlsdGVyLCBGaWx0ZXJFZmZlY3Q6OlR5cGU6OkZFRHJv
cFNoYWRvdykKICAgICAsIG1fc3RkWChzdGRYKQogICAgICwgbV9zdGRZKHN0ZFkpCiAgICAgLCBt
X2R4KGR4KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmls
dGVycy9GRURyb3BTaGFkb3cuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Zp
bHRlcnMvRkVEcm9wU2hhZG93LmgKaW5kZXggYjRlMGEyMDEyZmVkYjdiNzdiZjNlMDU3MzRlZTg4
YTI5ZWZmMzg0Yy4uMmI2ZTY2MTNiNWFlMTc4NGE3MTAyZDU0NmRkYmJjYmQ2MTM4NThmYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRURyb3BT
aGFkb3cuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZF
RHJvcFNoYWRvdy5oCkBAIC01MCw4ICs1MCw2IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgRkVE
cm9wU2hhZG93KEZpbHRlciYsIGZsb2F0LCBmbG9hdCwgZmxvYXQsIGZsb2F0LCBjb25zdCBDb2xv
ciYsIGZsb2F0KTsKIAotICAgIGNvbnN0IGNoYXIqIGZpbHRlck5hbWUoKSBjb25zdCBmaW5hbCB7
IHJldHVybiAiRkVEcm9wU2hhZG93IjsgfQotCiAgICAgdm9pZCBwbGF0Zm9ybUFwcGx5U29mdHdh
cmUoKSBvdmVycmlkZTsKIAogICAgIHZvaWQgZGV0ZXJtaW5lQWJzb2x1dGVQYWludFJlY3QoKSBv
dmVycmlkZTsKQEAgLTcwLDMgKzY4LDQgQEAgcHJpdmF0ZToKICAgICAKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKIAorU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19GSUxURVJfRUZGRUNUKEZFRHJvcFNo
YWRvdykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRl
cnMvRkVGbG9vZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJz
L0ZFRmxvb2QuY3BwCmluZGV4IGI0MjM1NTM0YzM4YjFlYmEyMTFlZTg0ODYxNzk5MjM4MGYzYjZi
MDEuLmE3ODQyMTk2NzRlMWFlOTc5OTM0NDM4ZGE1NGExYTcxYzk4MDQ4NDIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVGbG9vZC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUZsb29kLmNwcApA
QCAtMzEsNyArMzEsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBGRUZsb29kOjpGRUZsb29k
KEZpbHRlciYgZmlsdGVyLCBjb25zdCBDb2xvciYgZmxvb2RDb2xvciwgZmxvYXQgZmxvb2RPcGFj
aXR5KQotICAgIDogRmlsdGVyRWZmZWN0KGZpbHRlciwgVHlwZTo6Rmxvb2QpCisgICAgOiBGaWx0
ZXJFZmZlY3QoZmlsdGVyLCBGaWx0ZXJFZmZlY3Q6OlR5cGU6OkZFRmxvb2QpCiAgICAgLCBtX2Zs
b29kQ29sb3IoZmxvb2RDb2xvcikKICAgICAsIG1fZmxvb2RPcGFjaXR5KGZsb29kT3BhY2l0eSkK
IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMv
RkVGbG9vZC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUZs
b29kLmgKaW5kZXggYjcwNGRjOTY5YzZkNzU4OGJjZWIwYWQ4YjI0NjgyZmEwNjE3MzQ4ZS4uMDhh
NGU5NTkzNTg1ZDJmYTA3MjY4NGQ0NWQ1Zjg5MzBmM2FlZWYwYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUZsb29kLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUZsb29kLmgKQEAgLTQ3LDggKzQ3
LDYgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBGRUZsb29kKEZpbHRlciYsIGNvbnN0IENvbG9y
JiwgZmxvYXQpOwogCi0gICAgY29uc3QgY2hhciogZmlsdGVyTmFtZSgpIGNvbnN0IGZpbmFsIHsg
cmV0dXJuICJGRUZsb29kIjsgfQotCiAgICAgdm9pZCBwbGF0Zm9ybUFwcGx5U29mdHdhcmUoKSBv
dmVycmlkZTsKIAogICAgIHZvaWQgZGV0ZXJtaW5lQWJzb2x1dGVQYWludFJlY3QoKSBvdmVycmlk
ZSB7IHNldEFic29sdXRlUGFpbnRSZWN0KGVuY2xvc2luZ0ludFJlY3QobWF4RWZmZWN0UmVjdCgp
KSk7IH0KQEAgLTYxLDMgKzU5LDQgQEAgcHJpdmF0ZToKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQogCitTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0ZJTFRFUl9FRkZFQ1QoRkVGbG9vZCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVHYXVzc2lh
bkJsdXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUdh
dXNzaWFuQmx1ci5jcHAKaW5kZXggMGY2ZWU4N2Y5NWU3NTc1MTg2M2ZkMmU1ZjU0OWU3NGQ5NzI5
ZGIxZi4uMmRmYTFmMzRkYjkwMzAyNWM2NzBhOGRjNzBmYTg3OWI3ODBkMzM4MCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUdhdXNzaWFuQmx1
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUdh
dXNzaWFuQmx1ci5jcHAKQEAgLTgwLDcgKzgwLDcgQEAgaW5saW5lIHZvaWQga2VybmVsUG9zaXRp
b24oaW50IGJsdXJJdGVyYXRpb24sIHVuc2lnbmVkJiByYWRpdXMsIGludCYgZGVsdGFMZWZ0LAog
fQogCiBGRUdhdXNzaWFuQmx1cjo6RkVHYXVzc2lhbkJsdXIoRmlsdGVyJiBmaWx0ZXIsIGZsb2F0
IHgsIGZsb2F0IHksIEVkZ2VNb2RlVHlwZSBlZGdlTW9kZSkKLSAgICA6IEZpbHRlckVmZmVjdChm
aWx0ZXIsIFR5cGU6OkdhdXNzaWFuQmx1cikKKyAgICA6IEZpbHRlckVmZmVjdChmaWx0ZXIsIEZp
bHRlckVmZmVjdDo6VHlwZTo6RkVHYXVzc2lhbkJsdXIpCiAgICAgLCBtX3N0ZFgoeCkKICAgICAs
IG1fc3RkWSh5KQogICAgICwgbV9lZGdlTW9kZShlZGdlTW9kZSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVHYXVzc2lhbkJsdXIuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVHYXVzc2lhbkJsdXIuaApp
bmRleCBhZDdkOTUwYjliNzIzZGM3NDQ2NDljYmFmMDBhOTEzMGEzYjFkNzBlLi43NDNiNjUxNWRl
M2Y0NjI1MDgzMWRkYzMyNjYyNTJkYWI4ZmIxZjA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFR2F1c3NpYW5CbHVyLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUdhdXNzaWFuQmx1ci5oCkBAIC00
Nyw4ICs0Nyw2IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgRkVHYXVzc2lhbkJsdXIoRmlsdGVy
JiwgZmxvYXQsIGZsb2F0LCBFZGdlTW9kZVR5cGUpOwogCi0gICAgY29uc3QgY2hhciogZmlsdGVy
TmFtZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICJGRUdhdXNzaWFuQmx1ciI7IH0KLQogICAgIHN0
YXRpYyBjb25zdCBpbnQgc19taW5pbWFsUmVjdERpbWVuc2lvbiA9IDEwMCAqIDEwMDsgLy8gRW1w
aXJpY2FsIGRhdGEgbGltaXQgZm9yIHBhcmFsbGVsIGpvYnMKIAogICAgIHN0cnVjdCBQbGF0Zm9y
bUFwcGx5UGFyYW1ldGVycyB7CkBAIC04MCwzICs3OCw0IEBAIHByaXZhdGU6CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKIAorU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19GSUxURVJfRUZGRUNUKEZF
R2F1c3NpYW5CbHVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZmlsdGVycy9GRUxpZ2h0aW5nLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9maWx0ZXJzL0ZFTGlnaHRpbmcuaAppbmRleCBiMGJiNzBhMTRkMTc0OTUwNjczN2U4OGUwNTE0
ZWU3OTY4MjBhNDQ5Li4wMWY0NDJiNDAwMzNmZmEzZjcwNzU3MGE0YTMzNDAzM2JlNmMyYjgyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFTGln
aHRpbmcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZF
TGlnaHRpbmcuaApAQCAtMTMwLDggKzEzMCw2IEBAIHByb3RlY3RlZDoKIAogICAgIEZFTGlnaHRp
bmcoRmlsdGVyJiwgTGlnaHRpbmdUeXBlLCBjb25zdCBDb2xvciYsIGZsb2F0LCBmbG9hdCwgZmxv
YXQsIGZsb2F0LCBmbG9hdCwgZmxvYXQsIFJlZjxMaWdodFNvdXJjZT4mJiwgVHlwZSk7CiAKLSAg
ICBjb25zdCBjaGFyKiBmaWx0ZXJOYW1lKCkgY29uc3QgZmluYWwgeyByZXR1cm4gIkZFTGlnaHRp
bmciOyB9Ci0KICAgICBib29sIGRyYXdMaWdodGluZyhVaW50OENsYW1wZWRBcnJheSYsIGludCwg
aW50KTsKIAogICAgIHZvaWQgc2V0UGl4ZWwoaW50IG9mZnNldCwgY29uc3QgTGlnaHRpbmdEYXRh
JiwgY29uc3QgTGlnaHRTb3VyY2U6OlBhaW50aW5nRGF0YSYsIGludCB4LCBpbnQgeSwgZmxvYXQg
ZmFjdG9yWCwgZmxvYXQgZmFjdG9yWSwgSW50U2l6ZSBub3JtYWxWZWN0b3IpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRU1lcmdlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVNZXJnZS5jcHAKaW5k
ZXggMGEyMDAwMWIxNzNiZDhmZGY2YmJhNjM2Y2QyM2NlNDcwMjZlN2IzZi4uNjk3ZDJlMTVjY2Jm
MWFlZmVkMGU4OWZkYTM0ZTcwMzI5MzA3ZjczYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRU1lcmdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFTWVyZ2UuY3BwCkBAIC0yOSw3ICsyOSw3IEBA
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIEZFTWVyZ2U6OkZFTWVyZ2UoRmlsdGVyJiBmaWx0ZXIp
Ci0gICAgOiBGaWx0ZXJFZmZlY3QoZmlsdGVyLCBUeXBlOjpNZXJnZSkKKyAgICA6IEZpbHRlckVm
ZmVjdChmaWx0ZXIsIEZpbHRlckVmZmVjdDo6VHlwZTo6RkVNZXJnZSkKIHsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRU1lcmdlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFTWVyZ2UuaAppbmRl
eCA1Y2ZjNWNiNzk4MTljZWNlZDUwNzNlNTdiMDE5NGViY2YxOGYyNjA3Li4yNzUwYzRkNTI0ZDNh
MGY1YWU5NzQxZjY0ODA0NDk0NTM0NWQxYWIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFTWVyZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFTWVyZ2UuaApAQCAtMzMsOCArMzMsNiBAQCBwdWJs
aWM6CiBwcml2YXRlOgogICAgIEZFTWVyZ2UoRmlsdGVyJik7CiAKLSAgICBjb25zdCBjaGFyKiBm
aWx0ZXJOYW1lKCkgY29uc3QgZmluYWwgeyByZXR1cm4gIkZFTWVyZ2UiOyB9Ci0KICAgICB2b2lk
IHBsYXRmb3JtQXBwbHlTb2Z0d2FyZSgpIG92ZXJyaWRlOwogCiAgICAgV1RGOjpUZXh0U3RyZWFt
JiBleHRlcm5hbFJlcHJlc2VudGF0aW9uKFdURjo6VGV4dFN0cmVhbSYsIFJlcHJlc2VudGF0aW9u
VHlwZSkgY29uc3Qgb3ZlcnJpZGU7CkBAIC00MiwzICs0MCw0IEBAIHByaXZhdGU6CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKIAorU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19GSUxURVJfRUZGRUNU
KEZFTWVyZ2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9m
aWx0ZXJzL0ZFTW9ycGhvbG9neS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9maWx0ZXJzL0ZFTW9ycGhvbG9neS5jcHAKaW5kZXggNmFlM2Q5ODk4NjYyNmUwN2MwOTRjNTg2
ZjMxOThjOWM1OGRhZWQ2Yi4uOTE5M2I1ODcxOWEwMThkZDJjNjg5ZTYwNjU3ZDhiNGYwNDEzYTY3
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9G
RU1vcnBob2xvZ3kuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Zp
bHRlcnMvRkVNb3JwaG9sb2d5LmNwcApAQCAtMzYsNyArMzYsNyBAQAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCiBGRU1vcnBob2xvZ3k6OkZFTW9ycGhvbG9neShGaWx0ZXImIGZpbHRlciwgTW9ycGhv
bG9neU9wZXJhdG9yVHlwZSB0eXBlLCBmbG9hdCByYWRpdXNYLCBmbG9hdCByYWRpdXNZKQotICAg
IDogRmlsdGVyRWZmZWN0KGZpbHRlciwgVHlwZTo6TW9ycGhvbG9neSkKKyAgICA6IEZpbHRlckVm
ZmVjdChmaWx0ZXIsIEZpbHRlckVmZmVjdDo6VHlwZTo6RkVNb3JwaG9sb2d5KQogICAgICwgbV90
eXBlKHR5cGUpCiAgICAgLCBtX3JhZGl1c1gocmFkaXVzWCkKICAgICAsIG1fcmFkaXVzWShyYWRp
dXNZKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVy
cy9GRU1vcnBob2xvZ3kuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRl
cnMvRkVNb3JwaG9sb2d5LmgKaW5kZXggNDhmYzM1NDExN2ZjMjdjY2ZjOGU5M2YxNGVkZjA3NWRl
MzljNWExMS4uMWI2OWM2MzI2Y2IwYjkyMzZhOTBkM2QxNDI1M2FlMGIzZWUxNDk4OCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRU1vcnBob2xv
Z3kuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFTW9y
cGhvbG9neS5oCkBAIC00OCw4ICs0OCw2IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgRkVNb3Jw
aG9sb2d5KEZpbHRlciYsIE1vcnBob2xvZ3lPcGVyYXRvclR5cGUsIGZsb2F0IHJhZGl1c1gsIGZs
b2F0IHJhZGl1c1kpOwogCi0gICAgY29uc3QgY2hhciogZmlsdGVyTmFtZSgpIGNvbnN0IGZpbmFs
IHsgcmV0dXJuICJGRU1vcnBob2xvZ3kiOyB9Ci0KICAgICB2b2lkIHBsYXRmb3JtQXBwbHlTb2Z0
d2FyZSgpIG92ZXJyaWRlOwogCiAgICAgdm9pZCBkZXRlcm1pbmVBYnNvbHV0ZVBhaW50UmVjdCgp
IG92ZXJyaWRlOwpAQCAtODYsMyArODQsNCBAQCBwcml2YXRlOgogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCiAKK1NQRUNJQUxJWkVfVFlQRV9UUkFJVFNfRklMVEVSX0VGRkVDVChGRU1vcnBob2xv
Z3kpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJz
L0ZFT2Zmc2V0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMv
RkVPZmZzZXQuY3BwCmluZGV4IDAyNzBkYjkyNDgxYTMzOTJkM2Q1YTFlOTE3YzJkNjVhYTQxNDBm
NjkuLmZlM2NkYjQ4YjA3Njg0MzY3YWU3ZDY0MGIzNDczNDk0ZmEyYzU5NTIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVPZmZzZXQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVPZmZzZXQuY3Bw
CkBAIC0zMSw3ICszMSw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIEZFT2Zmc2V0OjpGRU9m
ZnNldChGaWx0ZXImIGZpbHRlciwgZmxvYXQgZHgsIGZsb2F0IGR5KQotICAgIDogRmlsdGVyRWZm
ZWN0KGZpbHRlciwgVHlwZTo6T2Zmc2V0KQorICAgIDogRmlsdGVyRWZmZWN0KGZpbHRlciwgRmls
dGVyRWZmZWN0OjpUeXBlOjpGRU9mZnNldCkKICAgICAsIG1fZHgoZHgpCiAgICAgLCBtX2R5KGR5
KQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVy
cy9GRU9mZnNldC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9G
RU9mZnNldC5oCmluZGV4IDY1YWJkYTkwYTQ3YjFiZmU3NmFlNWM3NGFhYjVhYTE2N2ZiMWU2OWUu
LmRiNzMyMjU1ZWU3OGQzMzY4MDlkYjQyMTc4NWE5MmY4NDViOTUyNjIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVPZmZzZXQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFT2Zmc2V0LmgKQEAgLTM5
LDggKzM5LDYgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBGRU9mZnNldChGaWx0ZXImLCBmbG9h
dCBkeCwgZmxvYXQgZHkpOwogCi0gICAgY29uc3QgY2hhciogZmlsdGVyTmFtZSgpIGNvbnN0IGZp
bmFsIHsgcmV0dXJuICJGRU9mZnNldCI7IH0KLQogICAgIHZvaWQgcGxhdGZvcm1BcHBseVNvZnR3
YXJlKCkgb3ZlcnJpZGU7CiAgICAgCiAgICAgdm9pZCBkZXRlcm1pbmVBYnNvbHV0ZVBhaW50UmVj
dCgpIG92ZXJyaWRlOwpAQCAtNTMsMyArNTEsNCBAQCBwcml2YXRlOgogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCiAKK1NQRUNJQUxJWkVfVFlQRV9UUkFJVFNfRklMVEVSX0VGRkVDVChGRU9mZnNl
dCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMv
RkVTcGVjdWxhckxpZ2h0aW5nLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2ZpbHRlcnMvRkVTcGVjdWxhckxpZ2h0aW5nLmNwcAppbmRleCA1OTk3MjMwNjg4NmE2M2ZhNDEy
YjViNzE0MWY3NGY5YzQ4N2ExNDRjLi41MmY0NTA4NDA5MGFkY2IwNGQ3ZTQ1MTIwNThlYTdhMmFj
ZGE4ZjNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0
ZXJzL0ZFU3BlY3VsYXJMaWdodGluZy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZmlsdGVycy9GRVNwZWN1bGFyTGlnaHRpbmcuY3BwCkBAIC0yOCw3ICsyOCw3IEBA
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIEZFU3BlY3VsYXJMaWdodGluZzo6RkVTcGVjdWxhckxp
Z2h0aW5nKEZpbHRlciYgZmlsdGVyLCBjb25zdCBDb2xvciYgbGlnaHRpbmdDb2xvciwgZmxvYXQg
c3VyZmFjZVNjYWxlLCBmbG9hdCBzcGVjdWxhckNvbnN0YW50LCBmbG9hdCBzcGVjdWxhckV4cG9u
ZW50LCBmbG9hdCBrZXJuZWxVbml0TGVuZ3RoWCwgZmxvYXQga2VybmVsVW5pdExlbmd0aFksIFJl
ZjxMaWdodFNvdXJjZT4mJiBsaWdodFNvdXJjZSkKLSAgICA6IEZFTGlnaHRpbmcoZmlsdGVyLCBT
cGVjdWxhckxpZ2h0aW5nLCBsaWdodGluZ0NvbG9yLCBzdXJmYWNlU2NhbGUsIDAsIHNwZWN1bGFy
Q29uc3RhbnQsIHNwZWN1bGFyRXhwb25lbnQsIGtlcm5lbFVuaXRMZW5ndGhYLCBrZXJuZWxVbml0
TGVuZ3RoWSwgV1RGTW92ZShsaWdodFNvdXJjZSksIFR5cGU6OlNwZWN1bGFyTGlnaHRpbmcpCisg
ICAgOiBGRUxpZ2h0aW5nKGZpbHRlciwgU3BlY3VsYXJMaWdodGluZywgbGlnaHRpbmdDb2xvciwg
c3VyZmFjZVNjYWxlLCAwLCBzcGVjdWxhckNvbnN0YW50LCBzcGVjdWxhckV4cG9uZW50LCBrZXJu
ZWxVbml0TGVuZ3RoWCwga2VybmVsVW5pdExlbmd0aFksIFdURk1vdmUobGlnaHRTb3VyY2UpLCBG
aWx0ZXJFZmZlY3Q6OlR5cGU6OkZFU3BlY3VsYXJMaWdodGluZykKIHsKIH0KIApAQCAtMzcsOCAr
MzcsNiBAQCBSZWY8RkVTcGVjdWxhckxpZ2h0aW5nPiBGRVNwZWN1bGFyTGlnaHRpbmc6OmNyZWF0
ZShGaWx0ZXImIGZpbHRlciwgY29uc3QgQ29sb3ImCiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
RkVTcGVjdWxhckxpZ2h0aW5nKGZpbHRlciwgbGlnaHRpbmdDb2xvciwgc3VyZmFjZVNjYWxlLCBz
cGVjdWxhckNvbnN0YW50LCBzcGVjdWxhckV4cG9uZW50LCBrZXJuZWxVbml0TGVuZ3RoWCwga2Vy
bmVsVW5pdExlbmd0aFksIFdURk1vdmUobGlnaHRTb3VyY2UpKSk7CiB9CiAKLUZFU3BlY3VsYXJM
aWdodGluZzo6fkZFU3BlY3VsYXJMaWdodGluZygpID0gZGVmYXVsdDsKLQogYm9vbCBGRVNwZWN1
bGFyTGlnaHRpbmc6OnNldFNwZWN1bGFyQ29uc3RhbnQoZmxvYXQgc3BlY3VsYXJDb25zdGFudCkK
IHsKICAgICBpZiAobV9zcGVjdWxhckNvbnN0YW50ID09IHNwZWN1bGFyQ29uc3RhbnQpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFU3BlY3Vs
YXJMaWdodGluZy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9G
RVNwZWN1bGFyTGlnaHRpbmcuaAppbmRleCBlOTk4YTc2MDVkMWU0NzM1ZDlmNDk3OThkMzk4MThi
ZjNiMjQ5NThhLi45YmJiYThhOGYxZmM2ZjAxMDQ1NzYwZGE4MGQzNWY4Y2QyNzdjZTE3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFU3BlY3Vs
YXJMaWdodGluZy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRl
cnMvRkVTcGVjdWxhckxpZ2h0aW5nLmgKQEAgLTI4LDcgKzI4LDYgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogY2xhc3MgRkVTcGVjdWxhckxpZ2h0aW5nIDogcHVibGljIEZFTGlnaHRpbmcgewogcHVi
bGljOgogICAgIHN0YXRpYyBSZWY8RkVTcGVjdWxhckxpZ2h0aW5nPiBjcmVhdGUoRmlsdGVyJiwg
Y29uc3QgQ29sb3ImLCBmbG9hdCwgZmxvYXQsIGZsb2F0LCBmbG9hdCwgZmxvYXQsIFJlZjxMaWdo
dFNvdXJjZT4mJik7Ci0gICAgdmlydHVhbCB+RkVTcGVjdWxhckxpZ2h0aW5nKCk7CiAKICAgICBm
bG9hdCBzcGVjdWxhckNvbnN0YW50KCkgY29uc3QgeyByZXR1cm4gbV9zcGVjdWxhckNvbnN0YW50
OyB9CiAgICAgYm9vbCBzZXRTcGVjdWxhckNvbnN0YW50KGZsb2F0KTsKQEAgLTQ0LDMgKzQzLDQg
QEAgcHJpdmF0ZToKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCitTUEVDSUFMSVpFX1RZUEVf
VFJBSVRTX0ZJTFRFUl9FRkZFQ1QoRkVTcGVjdWxhckxpZ2h0aW5nKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRVRpbGUuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRVRpbGUuY3BwCmluZGV4IDM1YzUx
Y2JiMjI5ZGVlOTY0MmRjMWU3ZGNhMGM1ZGIyZmNhYzIwYWQuLjM1ODk1ZmYyZDkzNTQ0ZGJjNDM5
MGQwNjgxMzk1NDc1OTU3NzFmMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2ZpbHRlcnMvRkVUaWxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9maWx0ZXJzL0ZFVGlsZS5jcHAKQEAgLTMyLDcgKzMyLDcgQEAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogRkVUaWxlOjpGRVRpbGUoRmlsdGVyJiBmaWx0ZXIpCi0gICAgOiBGaWx0
ZXJFZmZlY3QoZmlsdGVyLCBUeXBlOjpUaWxlKQorICAgIDogRmlsdGVyRWZmZWN0KGZpbHRlciwg
RmlsdGVyRWZmZWN0OjpUeXBlOjpGRVRpbGUpCiB7CiB9CiAKQEAgLTU4LDcgKzU4LDcgQEAgdm9p
ZCBGRVRpbGU6OnBsYXRmb3JtQXBwbHlTb2Z0d2FyZSgpCiAgICAgRmxvYXRSZWN0IHRpbGVSZWN0
ID0gaW4tPm1heEVmZmVjdFJlY3QoKTsKICAgICBGbG9hdFBvaW50IGluTWF4RWZmZWN0TG9jYXRp
b24gPSB0aWxlUmVjdC5sb2NhdGlvbigpOwogICAgIEZsb2F0UG9pbnQgbWF4RWZmZWN0TG9jYXRp
b24gPSBtYXhFZmZlY3RSZWN0KCkubG9jYXRpb24oKTsKLSAgICBpZiAoaW4tPmZpbHRlckVmZmVj
dFR5cGUoKSA9PSBGaWx0ZXJFZmZlY3RUeXBlU291cmNlSW5wdXQpIHsKKyAgICBpZiAoaW4tPmZp
bHRlclR5cGUoKSA9PSBGaWx0ZXJFZmZlY3Q6OlR5cGU6OlNvdXJjZUdyYXBoaWMgfHwgaW4tPmZp
bHRlclR5cGUoKSA9PSBGaWx0ZXJFZmZlY3Q6OlR5cGU6OlNvdXJjZUFscGhhKSB7CiAgICAgICAg
IEZpbHRlciYgZmlsdGVyID0gdGhpcy0+ZmlsdGVyKCk7CiAgICAgICAgIHRpbGVSZWN0ID0gZmls
dGVyLmZpbHRlclJlZ2lvbigpOwogICAgICAgICB0aWxlUmVjdC5zY2FsZShmaWx0ZXIuZmlsdGVy
UmVzb2x1dGlvbigpLndpZHRoKCksIGZpbHRlci5maWx0ZXJSZXNvbHV0aW9uKCkuaGVpZ2h0KCkp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9G
RVRpbGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVUaWxl
LmgKaW5kZXggNDliZDk5ZjA5NDQ3ZGFlMWNmMDlhZjEyMzU4YzZkZTg0MDY4NzcxNC4uNWM0OGVm
NDUxNTBlYzJjZjg3OWZkZGI3ZTQ4ZTllOWU4ZDUwMjQxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRVRpbGUuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFVGlsZS5oCkBAIC0zMywxMCArMzMsNiBA
QCBwdWJsaWM6CiBwcml2YXRlOgogICAgIEZFVGlsZShGaWx0ZXImKTsKIAotICAgIGNvbnN0IGNo
YXIqIGZpbHRlck5hbWUoKSBjb25zdCBmaW5hbCB7IHJldHVybiAiRkVUaWxlIjsgfQotCi0gICAg
RmlsdGVyRWZmZWN0VHlwZSBmaWx0ZXJFZmZlY3RUeXBlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1
cm4gRmlsdGVyRWZmZWN0VHlwZVRpbGU7IH0KLQogICAgIHZvaWQgcGxhdGZvcm1BcHBseVNvZnR3
YXJlKCkgb3ZlcnJpZGU7CiAKICAgICB2b2lkIGRldGVybWluZUFic29sdXRlUGFpbnRSZWN0KCkg
b3ZlcnJpZGUgeyBzZXRBYnNvbHV0ZVBhaW50UmVjdChlbmNsb3NpbmdJbnRSZWN0KG1heEVmZmVj
dFJlY3QoKSkpOyB9CkBAIC00NiwzICs0Miw0IEBAIHByaXZhdGU6CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKIAorU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19GSUxURVJfRUZGRUNUKEZFVGlsZSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVU
dXJidWxlbmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMv
RkVUdXJidWxlbmNlLmNwcAppbmRleCA3NzRlNjgyZTNiNDg1OWJiNmUyMDZhMWQyYmZhZWIwY2Vh
OTE5ZjBiLi4yZWEyNWZlYjZmY2I0MWI0YTNjZWZiNmRkYTlkMGVjMzZkZDBkYmYxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFVHVyYnVsZW5j
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRVR1
cmJ1bGVuY2UuY3BwCkBAIC00OSw3ICs0OSw3IEBAIHN0YXRpYyBjb25zdCBpbnQgc19yYW5kUSA9
IDEyNzc3MzsgLy8gbSAvIGEKIHN0YXRpYyBjb25zdCBpbnQgc19yYW5kUiA9IDI4MzY7IC8vIG0g
JSBhCiAKIEZFVHVyYnVsZW5jZTo6RkVUdXJidWxlbmNlKEZpbHRlciYgZmlsdGVyLCBUdXJidWxl
bmNlVHlwZSB0eXBlLCBmbG9hdCBiYXNlRnJlcXVlbmN5WCwgZmxvYXQgYmFzZUZyZXF1ZW5jeVks
IGludCBudW1PY3RhdmVzLCBmbG9hdCBzZWVkLCBib29sIHN0aXRjaFRpbGVzKQotICAgIDogRmls
dGVyRWZmZWN0KGZpbHRlciwgVHlwZTo6VHVyYnVsZW5jZSkKKyAgICA6IEZpbHRlckVmZmVjdChm
aWx0ZXIsIEZpbHRlckVmZmVjdDo6VHlwZTo6RkVUdXJidWxlbmNlKQogICAgICwgbV90eXBlKHR5
cGUpCiAgICAgLCBtX2Jhc2VGcmVxdWVuY3lYKGJhc2VGcmVxdWVuY3lYKQogICAgICwgbV9iYXNl
RnJlcXVlbmN5WShiYXNlRnJlcXVlbmN5WSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVUdXJidWxlbmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFVHVyYnVsZW5jZS5oCmluZGV4IDYzN2QyODQ4OTVl
MjMxNTIyYTlhYzg1N2YyYzgzZmY3MjBkNDUyZTUuLjJkYTAyOGI0NjkzZmFlNjMxNzk2ZGQzZDMy
ODU4ZTMzNTIwYTEzMzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2ZpbHRlcnMvRkVUdXJidWxlbmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZmlsdGVycy9GRVR1cmJ1bGVuY2UuaApAQCAtMTA1LDggKzEwNSw2IEBAIHByaXZh
dGU6CiAKICAgICBGRVR1cmJ1bGVuY2UoRmlsdGVyJiwgVHVyYnVsZW5jZVR5cGUsIGZsb2F0LCBm
bG9hdCwgaW50LCBmbG9hdCwgYm9vbCk7CiAKLSAgICBjb25zdCBjaGFyKiBmaWx0ZXJOYW1lKCkg
Y29uc3QgZmluYWwgeyByZXR1cm4gIkZFVHVyYnVsZW5jZSI7IH0KLQogICAgIHZvaWQgcGxhdGZv
cm1BcHBseVNvZnR3YXJlKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBkZXRlcm1pbmVBYnNvbHV0ZVBh
aW50UmVjdCgpIG92ZXJyaWRlIHsgc2V0QWJzb2x1dGVQYWludFJlY3QoZW5jbG9zaW5nSW50UmVj
dChtYXhFZmZlY3RSZWN0KCkpKTsgfQogICAgIFdURjo6VGV4dFN0cmVhbSYgZXh0ZXJuYWxSZXBy
ZXNlbnRhdGlvbihXVEY6OlRleHRTdHJlYW0mLCBSZXByZXNlbnRhdGlvblR5cGUpIGNvbnN0IG92
ZXJyaWRlOwpAQCAtMTI5LDMgKzEyNyw0IEBAIHByaXZhdGU6CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKIAorU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19GSUxURVJfRUZGRUNUKEZFVHVyYnVsZW5j
ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMv
RmlsdGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRl
ci5oCmluZGV4IGEyZDk5NzkzYjBkYjIyNThiYzQ3NmRkY2MyOWMwY2UyNjExMGJjMWYuLjg3Mjc4
MjgxMGJiZTA2NzFhM2YwNjdhNTk1MzA5ZGYxN2VlYTRkMjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXIuaApAQCAtMSw2ICsxLDcgQEAK
IC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDkgRGlyayBTY2h1bHplIDxrcml0QHdlYmtpdC5vcmc+
CiAgKiBDb3B5cmlnaHQgKEMpIDIwMTMgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgog
ICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0
ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJy
YXJ5IEdlbmVyYWwgUHVibGljCkBAIC0yMSwyMyArMjIsMTcgQEAKICNwcmFnbWEgb25jZQogCiAj
aW5jbHVkZSAiQWZmaW5lVHJhbnNmb3JtLmgiCisjaW5jbHVkZSAiRmlsdGVyRnVuY3Rpb24uaCIK
ICNpbmNsdWRlICJGbG9hdFJlY3QuaCIKICNpbmNsdWRlICJHcmFwaGljc1R5cGVzLmgiCiAjaW5j
bHVkZSAiSW1hZ2VCdWZmZXIuaCIKLSNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEZpbHRlckVmZmVjdDsKIAotY2xhc3MgRmlsdGVyIDog
cHVibGljIFJlZkNvdW50ZWQ8RmlsdGVyPiB7CitjbGFzcyBGaWx0ZXIgOiBwdWJsaWMgRmlsdGVy
RnVuY3Rpb24gewogcHVibGljOgotICAgIEZpbHRlcihjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIGFi
c29sdXRlVHJhbnNmb3JtLCBmbG9hdCBmaWx0ZXJTY2FsZSA9IDEpCi0gICAgICAgIDogbV9hYnNv
bHV0ZVRyYW5zZm9ybShhYnNvbHV0ZVRyYW5zZm9ybSkKLSAgICAgICAgLCBtX2ZpbHRlclNjYWxl
KGZpbHRlclNjYWxlKQotICAgIHsgfQotICAgIHZpcnR1YWwgfkZpbHRlcigpID0gZGVmYXVsdDsK
LQogICAgIHZvaWQgc2V0U291cmNlSW1hZ2UoUmVmUHRyPEltYWdlQnVmZmVyPiYmIHNvdXJjZUlt
YWdlKSB7IG1fc291cmNlSW1hZ2UgPSBXVEZNb3ZlKHNvdXJjZUltYWdlKTsgfQogICAgIEltYWdl
QnVmZmVyKiBzb3VyY2VJbWFnZSgpIHsgcmV0dXJuIG1fc291cmNlSW1hZ2UuZ2V0KCk7IH0KIApA
QCAtNjIsOCArNTcsMTYgQEAgcHVibGljOgogICAgIHZpcnR1YWwgRmxvYXRSZWN0IGZpbHRlclJl
Z2lvbkluVXNlclNwYWNlKCkgY29uc3QgPSAwOwogCiBwcm90ZWN0ZWQ6Ci0gICAgZXhwbGljaXQg
RmlsdGVyKGNvbnN0IEZsb2F0U2l6ZSYgZmlsdGVyUmVzb2x1dGlvbikKLSAgICAgICAgOiBtX2Zp
bHRlclJlc29sdXRpb24oZmlsdGVyUmVzb2x1dGlvbikKKyAgICBGaWx0ZXIoRmlsdGVyOjpUeXBl
IGZpbHRlclR5cGUsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgYWJzb2x1dGVUcmFuc2Zvcm0sIGZs
b2F0IGZpbHRlclNjYWxlID0gMSkKKyAgICAgICAgOiBGaWx0ZXJGdW5jdGlvbihmaWx0ZXJUeXBl
KQorICAgICAgICAsIG1fYWJzb2x1dGVUcmFuc2Zvcm0oYWJzb2x1dGVUcmFuc2Zvcm0pCisgICAg
ICAgICwgbV9maWx0ZXJTY2FsZShmaWx0ZXJTY2FsZSkKKyAgICB7CisgICAgfQorCisgICAgRmls
dGVyKEZpbHRlcjo6VHlwZSBmaWx0ZXJUeXBlLCBjb25zdCBGbG9hdFNpemUmIGZpbHRlclJlc29s
dXRpb24pCisgICAgICAgIDogRmlsdGVyRnVuY3Rpb24oZmlsdGVyVHlwZSkKKyAgICAgICAgLCBt
X2ZpbHRlclJlc29sdXRpb24oZmlsdGVyUmVzb2x1dGlvbikKICAgICB7CiAgICAgfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlckVm
ZmVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRl
ckVmZmVjdC5jcHAKaW5kZXggZmI2Nzc1NGU0ZmM1YmJjYTUxYzM0OGVjN2Y2M2U0Y2M5MjdkYjEw
OC4uYjEzZTY4MjM2NjM1Zjg1NTA0ZmUxOTliMDlhMjhmZTI2NzI4MTRkOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXJFZmZlY3QuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyRWZm
ZWN0LmNwcApAQCAtNDUsMTQgKzQ1LDEyIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotRmls
dGVyRWZmZWN0OjpGaWx0ZXJFZmZlY3QoRmlsdGVyJiBmaWx0ZXIsIFR5cGUgdHlwZSkKLSAgICA6
IG1fZmlsdGVyKGZpbHRlcikKLSAgICAsIG1fZmlsdGVyRWZmZWN0Q2xhc3NUeXBlKHR5cGUpCitG
aWx0ZXJFZmZlY3Q6OkZpbHRlckVmZmVjdChGaWx0ZXImIGZpbHRlciwgRmlsdGVyRWZmZWN0OjpU
eXBlIHR5cGUpCisgICAgOiBGaWx0ZXJGdW5jdGlvbih0eXBlKQorICAgICwgbV9maWx0ZXIoZmls
dGVyKQogewogfQogCi1GaWx0ZXJFZmZlY3Q6On5GaWx0ZXJFZmZlY3QoKSA9IGRlZmF1bHQ7Ci0K
IHZvaWQgRmlsdGVyRWZmZWN0OjpkZXRlcm1pbmVBYnNvbHV0ZVBhaW50UmVjdCgpCiB7CiAgICAg
bV9hYnNvbHV0ZVBhaW50UmVjdCA9IEludFJlY3QoKTsKQEAgLTExMCw3ICsxMDgsNyBAQCBGbG9h
dFJlY3QgRmlsdGVyRWZmZWN0OjpkZXRlcm1pbmVGaWx0ZXJQcmltaXRpdmVTdWJyZWdpb24oKQog
ICAgICAgICBzdWJyZWdpb24gPSBtX2ZpbHRlci5maWx0ZXJSZWdpb25JblVzZXJTcGFjZSgpOwog
CiAgICAgLy8gQWZ0ZXIgY2FsbGluZyBkZXRlcm1pbmVGaWx0ZXJQcmltaXRpdmVTdWJyZWdpb24g
b24gdGhlIHRhcmdldCBlZmZlY3QsIHJlc2V0IHRoZSBzdWJyZWdpb24gYWdhaW4gZm9yIDxmZVRp
bGU+LgotICAgIGlmIChmaWx0ZXJFZmZlY3RUeXBlKCkgPT0gRmlsdGVyRWZmZWN0VHlwZVRpbGUp
CisgICAgaWYgKGZpbHRlclR5cGUoKSA9PSBGaWx0ZXJFZmZlY3Q6OlR5cGU6OkZFVGlsZSkKICAg
ICAgICAgc3VicmVnaW9uID0gbV9maWx0ZXIuZmlsdGVyUmVnaW9uSW5Vc2VyU3BhY2UoKTsKIAog
ICAgIGF1dG8gYm91bmRhcmllcyA9IGVmZmVjdEJvdW5kYXJpZXMoKTsKQEAgLTU3Miw3ICs1NzAs
NyBAQCB2b2lkIEZpbHRlckVmZmVjdDo6Y29weVByZW11bHRpcGxpZWRSZXN1bHQoVWludDhDbGFt
cGVkQXJyYXkmIGRlc3RpbmF0aW9uLCBjb25zdAogCiBJbWFnZUJ1ZmZlciogRmlsdGVyRWZmZWN0
OjpjcmVhdGVJbWFnZUJ1ZmZlclJlc3VsdCgpCiB7Ci0gICAgTE9HKEZpbHRlcnMsICJGaWx0ZXJF
ZmZlY3QgJXMgJXAgY3JlYXRlSW1hZ2VCdWZmZXJSZXN1bHQgJWR4JWQiLCBmaWx0ZXJOYW1lKCks
IHRoaXMsIG1fYWJzb2x1dGVQYWludFJlY3Quc2l6ZSgpLndpZHRoKCksIG1fYWJzb2x1dGVQYWlu
dFJlY3Quc2l6ZSgpLmhlaWdodCgpKTsKKyAgICBMT0coRmlsdGVycywgIkZpbHRlckVmZmVjdCAl
cyAlcCBjcmVhdGVJbWFnZUJ1ZmZlclJlc3VsdCAlZHglZCIsIGZpbHRlck5hbWUoKS5jaGFyYWN0
ZXJzOCgpLCB0aGlzLCBtX2Fic29sdXRlUGFpbnRSZWN0LnNpemUoKS53aWR0aCgpLCBtX2Fic29s
dXRlUGFpbnRSZWN0LnNpemUoKS5oZWlnaHQoKSk7CiAKICAgICAvLyBPbmx5IG9uZSByZXN1bHQg
dHlwZSBpcyBhbGxvd2VkLgogICAgIEFTU0VSVCghaGFzUmVzdWx0KCkpOwpAQCAtNTg2LDcgKzU4
NCw3IEBAIEltYWdlQnVmZmVyKiBGaWx0ZXJFZmZlY3Q6OmNyZWF0ZUltYWdlQnVmZmVyUmVzdWx0
KCkKIAogc3RkOjpvcHRpb25hbDxQaXhlbEJ1ZmZlcj4mIEZpbHRlckVmZmVjdDo6Y3JlYXRlVW5t
dWx0aXBsaWVkSW1hZ2VSZXN1bHQoKQogewotICAgIExPRyhGaWx0ZXJzLCAiRmlsdGVyRWZmZWN0
ICVzICVwIGNyZWF0ZVVubXVsdGlwbGllZEltYWdlUmVzdWx0IiwgZmlsdGVyTmFtZSgpLCB0aGlz
KTsKKyAgICBMT0coRmlsdGVycywgIkZpbHRlckVmZmVjdCAlcyAlcCBjcmVhdGVVbm11bHRpcGxp
ZWRJbWFnZVJlc3VsdCIsIGZpbHRlck5hbWUoKS5jaGFyYWN0ZXJzOCgpLCB0aGlzKTsKIAogICAg
IC8vIE9ubHkgb25lIHJlc3VsdCB0eXBlIGlzIGFsbG93ZWQuCiAgICAgQVNTRVJUKCFoYXNSZXN1
bHQoKSk7CkBAIC02MDUsNyArNjAzLDcgQEAgc3RkOjpvcHRpb25hbDxQaXhlbEJ1ZmZlcj4mIEZp
bHRlckVmZmVjdDo6Y3JlYXRlVW5tdWx0aXBsaWVkSW1hZ2VSZXN1bHQoKQogCiBzdGQ6Om9wdGlv
bmFsPFBpeGVsQnVmZmVyPiYgRmlsdGVyRWZmZWN0OjpjcmVhdGVQcmVtdWx0aXBsaWVkSW1hZ2VS
ZXN1bHQoKQogewotICAgIExPRyhGaWx0ZXJzLCAiRmlsdGVyRWZmZWN0ICVzICVwIGNyZWF0ZVBy
ZW11bHRpcGxpZWRJbWFnZVJlc3VsdCIsIGZpbHRlck5hbWUoKSwgdGhpcyk7CisgICAgTE9HKEZp
bHRlcnMsICJGaWx0ZXJFZmZlY3QgJXMgJXAgY3JlYXRlUHJlbXVsdGlwbGllZEltYWdlUmVzdWx0
IiwgZmlsdGVyTmFtZSgpLmNoYXJhY3RlcnM4KCksIHRoaXMpOwogCiAgICAgLy8gT25seSBvbmUg
cmVzdWx0IHR5cGUgaXMgYWxsb3dlZC4KICAgICBBU1NFUlQoIWhhc1Jlc3VsdCgpKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyRWZm
ZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlckVm
ZmVjdC5oCmluZGV4IDEyZGVkMjY1YTY1NWMzN2U3N2UyY2YwNWI1Mjc3M2YyYjk2YjQ3MWMuLjU1
MjdmNmJmNGJmNjI4ZTcxNTBmODFkNWVmYjM5ZGYzMWEyOTFiNzIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyRWZmZWN0LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXJFZmZlY3QuaApA
QCAtMjQsMTMgKzI0LDEzIEBACiAKICNpbmNsdWRlICJBbHBoYVByZW11bHRpcGxpY2F0aW9uLmgi
CiAjaW5jbHVkZSAiRGVzdGluYXRpb25Db2xvclNwYWNlLmgiCisjaW5jbHVkZSAiRmlsdGVyRnVu
Y3Rpb24uaCIKICNpbmNsdWRlICJGbG9hdFJlY3QuaCIKICNpbmNsdWRlICJJbnRSZWN0LmgiCiAj
aW5jbHVkZSAiSW50UmVjdEV4dGVudC5oIgogI2luY2x1ZGUgIlBpeGVsQnVmZmVyLmgiCiAjaW5j
bHVkZSA8SmF2YVNjcmlwdENvcmUvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9NYXRoRXh0cmFz
Lmg+Ci0jaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+
CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCkBAIC00NiwzOSArNDYsOCBAQCBjbGFzcyBJbWFn
ZUJ1ZmZlcjsKIAogdHlwZWRlZiBWZWN0b3I8UmVmUHRyPEZpbHRlckVmZmVjdD4+IEZpbHRlckVm
ZmVjdFZlY3RvcjsKIAotZW51bSBGaWx0ZXJFZmZlY3RUeXBlIHsKLSAgICBGaWx0ZXJFZmZlY3RU
eXBlVW5rbm93biwKLSAgICBGaWx0ZXJFZmZlY3RUeXBlSW1hZ2UsCi0gICAgRmlsdGVyRWZmZWN0
VHlwZVRpbGUsCi0gICAgRmlsdGVyRWZmZWN0VHlwZVNvdXJjZUlucHV0Ci19OwotCi1jbGFzcyBG
aWx0ZXJFZmZlY3QgOiBwdWJsaWMgUmVmQ291bnRlZDxGaWx0ZXJFZmZlY3Q+IHsKK2NsYXNzIEZp
bHRlckVmZmVjdCA6IHB1YmxpYyBGaWx0ZXJGdW5jdGlvbiB7CiBwdWJsaWM6Ci0gICAgZW51bSBj
bGFzcyBUeXBlIDogdWludDhfdCB7Ci0gICAgICAgIEJsZW5kLAotICAgICAgICBDb2xvck1hdHJp
eCwKLSAgICAgICAgQ29tcG9uZW50VHJhbnNmZXIsCi0gICAgICAgIENvbXBvc2l0ZSwKLSAgICAg
ICAgQ29udm9sdmVNYXRyaXgsCi0gICAgICAgIERpZmZ1c2VMaWdodGluZywKLSAgICAgICAgRGlz
cGxhY2VtZW50TWFwLAotICAgICAgICBEcm9wU2hhZG93LAotICAgICAgICBGbG9vZCwKLSAgICAg
ICAgR2F1c3NpYW5CbHVyLAotICAgICAgICBJbWFnZSwKLSAgICAgICAgTGlnaHRpbmcsCi0gICAg
ICAgIE1lcmdlLAotICAgICAgICBNb3JwaG9sb2d5LAotICAgICAgICBPZmZzZXQsCi0gICAgICAg
IFNwZWN1bGFyTGlnaHRpbmcsCi0gICAgICAgIFRpbGUsCi0gICAgICAgIFR1cmJ1bGVuY2UsCi0g
ICAgICAgIFNvdXJjZUFscGhhLAotICAgICAgICBTb3VyY2VHcmFwaGljCi0gICAgfTsKLSAgICB2
aXJ0dWFsIH5GaWx0ZXJFZmZlY3QoKTsKLQogICAgIHZvaWQgY2xlYXJSZXN1bHQoKTsKICAgICB2
b2lkIGNsZWFyUmVzdWx0c1JlY3Vyc2l2ZSgpOwogCkBAIC0xMjUsOCArOTQsNiBAQCBwdWJsaWM6
CiAKICAgICB2aXJ0dWFsIHZvaWQgZGV0ZXJtaW5lQWJzb2x1dGVQYWludFJlY3QoKTsKIAotICAg
IHZpcnR1YWwgRmlsdGVyRWZmZWN0VHlwZSBmaWx0ZXJFZmZlY3RUeXBlKCkgY29uc3QgeyByZXR1
cm4gRmlsdGVyRWZmZWN0VHlwZVVua25vd247IH0KLQogICAgIHZpcnR1YWwgSW50T3V0c2V0cyBv
dXRzZXRzKCkgY29uc3QgeyByZXR1cm4gSW50T3V0c2V0cygpOyB9CiAKICAgICBlbnVtIGNsYXNz
IFJlcHJlc2VudGF0aW9uVHlwZSB7IFRlc3RPdXRwdXQsIERlYnVnZ2luZyB9OwpAQCAtMTU2LDgg
KzEyMyw2IEBAIHB1YmxpYzoKICAgICAKICAgICBGbG9hdFBvaW50IG1hcFBvaW50RnJvbVVzZXJT
cGFjZVRvQnVmZmVyKEZsb2F0UG9pbnQpIGNvbnN0OwogICAgIAotICAgIFR5cGUgZmlsdGVyRWZm
ZWN0Q2xhc3NUeXBlKCkgY29uc3QgeyByZXR1cm4gbV9maWx0ZXJFZmZlY3RDbGFzc1R5cGU7IH0K
LQogICAgIEZpbHRlciYgZmlsdGVyKCkgeyByZXR1cm4gbV9maWx0ZXI7IH0KICAgICBjb25zdCBG
aWx0ZXImIGZpbHRlcigpIGNvbnN0IHsgcmV0dXJuIG1fZmlsdGVyOyB9CiAKQEAgLTE4Myw4ICsx
NDgsNiBAQCBwdWJsaWM6CiBwcm90ZWN0ZWQ6CiAgICAgRmlsdGVyRWZmZWN0KEZpbHRlciYsIFR5
cGUpOwogICAgIAotICAgIHZpcnR1YWwgY29uc3QgY2hhciogZmlsdGVyTmFtZSgpIGNvbnN0ID0g
MDsKLQogICAgIEltYWdlQnVmZmVyKiBjcmVhdGVJbWFnZUJ1ZmZlclJlc3VsdCgpOwogICAgIHN0
ZDo6b3B0aW9uYWw8UGl4ZWxCdWZmZXI+JiBjcmVhdGVVbm11bHRpcGxpZWRJbWFnZVJlc3VsdCgp
OwogICAgIHN0ZDo6b3B0aW9uYWw8UGl4ZWxCdWZmZXI+JiBjcmVhdGVQcmVtdWx0aXBsaWVkSW1h
Z2VSZXN1bHQoKTsKQEAgLTI0OCwxMSArMjExLDE3IEBAIHByaXZhdGU6CiAgICAgRGVzdGluYXRp
b25Db2xvclNwYWNlIG1fb3BlcmF0aW5nQ29sb3JTcGFjZSB7IERlc3RpbmF0aW9uQ29sb3JTcGFj
ZTo6U1JHQigpIH07CiAjZW5kaWYKICAgICBEZXN0aW5hdGlvbkNvbG9yU3BhY2UgbV9yZXN1bHRD
b2xvclNwYWNlIHsgRGVzdGluYXRpb25Db2xvclNwYWNlOjpTUkdCKCkgfTsKLSAgICAKLSAgICBj
b25zdCBUeXBlIG1fZmlsdGVyRWZmZWN0Q2xhc3NUeXBlOwogfTsKIAogV0VCQ09SRV9FWFBPUlQg
V1RGOjpUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFdURjo6VGV4dFN0cmVhbSYsIGNvbnN0IEZpbHRl
ckVmZmVjdCYpOwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKK1NQRUNJQUxJWkVfVFlQRV9U
UkFJVFNfQkVHSU4oV2ViQ29yZTo6RmlsdGVyRWZmZWN0KQorICAgIHN0YXRpYyBib29sIGlzVHlw
ZShjb25zdCBXZWJDb3JlOjpGaWx0ZXJGdW5jdGlvbiYgZnVuY3Rpb24pIHsgcmV0dXJuIGZ1bmN0
aW9uLmlzRmlsdGVyRWZmZWN0KCk7IH0KK1NQRUNJQUxJWkVfVFlQRV9UUkFJVFNfRU5EKCkKKwor
I2RlZmluZSBTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0ZJTFRFUl9FRkZFQ1QoQ2xhc3NOYW1lKSBc
CitTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0JFR0lOKFdlYkNvcmU6OkNsYXNzTmFtZSkgXAorICAg
IHN0YXRpYyBib29sIGlzVHlwZShjb25zdCBXZWJDb3JlOjpGaWx0ZXJFZmZlY3QmIGVmZmVjdCkg
eyByZXR1cm4gZWZmZWN0LmZpbHRlclR5cGUoKSA9PSBXZWJDb3JlOjpGaWx0ZXJFZmZlY3Q6OlR5
cGU6OkNsYXNzTmFtZTsgfSBcCitTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0VORCgpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlckZ1bmN0
aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVy
RnVuY3Rpb24uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM1ZWIwNWRhZGRhYzg4MzlkZTBjN2U0MzM0YWUxYzIy
MTkxMDI0NzkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9maWx0ZXJzL0ZpbHRlckZ1bmN0aW9uLmNwcApAQCAtMCwwICsxLDcyIEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMg
SVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcu
aCIKKyNpbmNsdWRlICJGaWx0ZXJGdW5jdGlvbi5oIgorCisjaW5jbHVkZSA8d3RmL1NvcnRlZEFy
cmF5TWFwLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworRmlsdGVyRnVuY3Rpb246OkZpbHRl
ckZ1bmN0aW9uKFR5cGUgZmlsdGVyVHlwZSkKKyAgICA6IG1fZmlsdGVyVHlwZShmaWx0ZXJUeXBl
KQoreworfQorCitBdG9tU3RyaW5nIEZpbHRlckZ1bmN0aW9uOjpmaWx0ZXJOYW1lKFR5cGUgZmls
dGVyVHlwZSkKK3sKKyAgICBzdGF0aWMgY29uc3RleHByIHN0ZDo6cGFpcjxGaWx0ZXJGdW5jdGlv
bjo6VHlwZSwgQVNDSUlMaXRlcmFsPiBuYW1lc0FycmF5W10gPSB7CisgICAgICAgIHsgRmlsdGVy
RnVuY3Rpb246OlR5cGU6OkNTU0ZpbHRlciwgICAgICAgICAgICJDU1NGaWx0ZXIiX3MgICAgICAg
ICAgIH0sCisgICAgICAgIHsgRmlsdGVyRnVuY3Rpb246OlR5cGU6OlNWR0ZpbHRlciwgICAgICAg
ICAgICJTVkdGaWx0ZXIiX3MgICAgICAgICAgIH0sCisgICAgICAgIAorICAgICAgICB7IEZpbHRl
ckZ1bmN0aW9uOjpUeXBlOjpGRUJsZW5kLCAgICAgICAgICAgICAiRkVCbGVuZCJfcyAgICAgICAg
ICAgICB9LAorICAgICAgICB7IEZpbHRlckZ1bmN0aW9uOjpUeXBlOjpGRUNvbG9yTWF0cml4LCAg
ICAgICAiRkVDb2xvck1hdHJpeCJfcyAgICAgICB9LAorICAgICAgICB7IEZpbHRlckZ1bmN0aW9u
OjpUeXBlOjpGRUNvbXBvbmVudFRyYW5zZmVyLCAiRkVDb21wb25lbnRUcmFuc2ZlciJfcyB9LAor
ICAgICAgICB7IEZpbHRlckZ1bmN0aW9uOjpUeXBlOjpGRUNvbXBvc2l0ZSwgICAgICAgICAiRkVD
b21wb3NpdGUiX3MgICAgICAgICB9LAorICAgICAgICB7IEZpbHRlckZ1bmN0aW9uOjpUeXBlOjpG
RUNvbnZvbHZlTWF0cml4LCAgICAiRkVDb252b2x2ZU1hdHJpeCJfcyAgICB9LAorICAgICAgICB7
IEZpbHRlckZ1bmN0aW9uOjpUeXBlOjpGRURpZmZ1c2VMaWdodGluZywgICAiRkVEaWZmdXNlTGln
aHRpbmciX3MgICB9LAorICAgICAgICB7IEZpbHRlckZ1bmN0aW9uOjpUeXBlOjpGRURpc3BsYWNl
bWVudE1hcCwgICAiRkVEaXNwbGFjZW1lbnRNYXAiX3MgICB9LAorICAgICAgICB7IEZpbHRlckZ1
bmN0aW9uOjpUeXBlOjpGRURyb3BTaGFkb3csICAgICAgICAiRkVEcm9wU2hhZG93Il9zICAgICAg
ICB9LAorICAgICAgICB7IEZpbHRlckZ1bmN0aW9uOjpUeXBlOjpGRUZsb29kLCAgICAgICAgICAg
ICAiRkVGbG9vZCJfcyAgICAgICAgICAgICB9LAorICAgICAgICB7IEZpbHRlckZ1bmN0aW9uOjpU
eXBlOjpGRUdhdXNzaWFuQmx1ciwgICAgICAiRkVHYXVzc2lhbkJsdXIiX3MgICAgICB9LAorICAg
ICAgICB7IEZpbHRlckZ1bmN0aW9uOjpUeXBlOjpGRUltYWdlLCAgICAgICAgICAgICAiRkVJbWFn
ZSJfcyAgICAgICAgICAgICB9LAorICAgICAgICB7IEZpbHRlckZ1bmN0aW9uOjpUeXBlOjpGRU1l
cmdlLCAgICAgICAgICAgICAiRkVNZXJnZSJfcyAgICAgICAgICAgICB9LAorICAgICAgICB7IEZp
bHRlckZ1bmN0aW9uOjpUeXBlOjpGRU1vcnBob2xvZ3ksICAgICAgICAiRkVNb3JwaG9sb2d5Il9z
ICAgICAgICB9LAorICAgICAgICB7IEZpbHRlckZ1bmN0aW9uOjpUeXBlOjpGRU9mZnNldCwgICAg
ICAgICAgICAiRkVPZmZzZXQiX3MgICAgICAgICAgICB9LAorICAgICAgICB7IEZpbHRlckZ1bmN0
aW9uOjpUeXBlOjpGRVNwZWN1bGFyTGlnaHRpbmcsICAiRkVTcGVjdWxhckxpZ2h0aW5nIl9zICB9
LAorICAgICAgICB7IEZpbHRlckZ1bmN0aW9uOjpUeXBlOjpGRVRpbGUsICAgICAgICAgICAgICAi
RkVUaWxlIl9zICAgICAgICAgICAgICB9LAorICAgICAgICB7IEZpbHRlckZ1bmN0aW9uOjpUeXBl
OjpGRVR1cmJ1bGVuY2UsICAgICAgICAiRkVUdXJidWxlbmNlIl9zICAgICAgICB9LAorCisgICAg
ICAgIHsgRmlsdGVyRnVuY3Rpb246OlR5cGU6OlNvdXJjZUFscGhhLCAgICAgICAgICJTb3VyY2VB
bHBoYSJfcyAgICAgICAgIH0sCisgICAgICAgIHsgRmlsdGVyRnVuY3Rpb246OlR5cGU6OlNvdXJj
ZUdyYXBoaWMsICAgICAgICJTb3VyY2VHcmFwaGljIl9zICAgICAgIH0KKyAgICB9OworCisgICAg
c3RhdGljIGNvbnN0ZXhwciBTb3J0ZWRBcnJheU1hcCBuYW1lc01hcCB7IG5hbWVzQXJyYXkgfTsK
KyAgICAKKyAgICBBU1NFUlQobmFtZXNNYXAudHJ5R2V0KGZpbHRlclR5cGUpKTsKKyAgICByZXR1
cm4gKm5hbWVzTWFwLnRyeUdldChmaWx0ZXJUeXBlKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVy
cy9GaWx0ZXJGdW5jdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmls
dGVycy9GaWx0ZXJGdW5jdGlvbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ5YzkzN2FlN2QyNGEzODM0MDMxMTcw
ZTRmZWNhYzFiODIwMWIwMTAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlckZ1bmN0aW9uLmgKQEAgLTAsMCArMSwxMjAgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQor
ICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBv
bmNlCisKKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L0F0
b21TdHJpbmcuaD4KKworbmFtZXNwYWNlIFdURiB7CitjbGFzcyBUZXh0U3RyZWFtOworfQorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEZpbHRlckZ1bmN0aW9uIDogcHVibGljIFJlZkNv
dW50ZWQ8RmlsdGVyRnVuY3Rpb24+IHsKK3B1YmxpYzoKKyAgICBlbnVtIGNsYXNzIFR5cGUgOiB1
aW50OF90IHsKKyAgICAgICAgQ1NTRmlsdGVyLAorICAgICAgICBTVkdGaWx0ZXIsCisKKyAgICAg
ICAgRkVNaW5pbXVtLAorCisgICAgICAgIEZFQmxlbmQgPSBGRU1pbmltdW0sCisgICAgICAgIEZF
Q29sb3JNYXRyaXgsCisgICAgICAgIEZFQ29tcG9uZW50VHJhbnNmZXIsCisgICAgICAgIEZFQ29t
cG9zaXRlLAorICAgICAgICBGRUNvbnZvbHZlTWF0cml4LAorICAgICAgICBGRURpZmZ1c2VMaWdo
dGluZywKKyAgICAgICAgRkVEaXNwbGFjZW1lbnRNYXAsCisgICAgICAgIEZFRHJvcFNoYWRvdywK
KyAgICAgICAgRkVGbG9vZCwKKyAgICAgICAgRkVHYXVzc2lhbkJsdXIsCisgICAgICAgIEZFSW1h
Z2UsCisgICAgICAgIEZFTWVyZ2UsCisgICAgICAgIEZFTW9ycGhvbG9neSwKKyAgICAgICAgRkVP
ZmZzZXQsCisgICAgICAgIEZFU3BlY3VsYXJMaWdodGluZywKKyAgICAgICAgRkVUaWxlLAorICAg
ICAgICBGRVR1cmJ1bGVuY2UsCisgICAgICAgIFNvdXJjZUFscGhhLAorICAgICAgICBTb3VyY2VH
cmFwaGljLAorCisgICAgICAgIEZFTWF4aW11bSA9IFNvdXJjZUdyYXBoaWMKKyAgICB9OworCisg
ICAgRmlsdGVyRnVuY3Rpb24oVHlwZSk7CisgICAgdmlydHVhbCB+RmlsdGVyRnVuY3Rpb24oKSA9
IGRlZmF1bHQ7CisKKyAgICBUeXBlIGZpbHRlclR5cGUoKSBjb25zdCB7IHJldHVybiBtX2ZpbHRl
clR5cGU7IH0KKworICAgIGJvb2wgaXNDU1NGaWx0ZXIoKSBjb25zdCB7IHJldHVybiBtX2ZpbHRl
clR5cGUgPT0gVHlwZTo6Q1NTRmlsdGVyOyB9CisgICAgYm9vbCBpc1NWR0ZpbHRlcigpIGNvbnN0
IHsgcmV0dXJuIG1fZmlsdGVyVHlwZSA9PSBUeXBlOjpTVkdGaWx0ZXI7IH0KKyAgICBib29sIGlz
RmlsdGVyKCkgY29uc3QgeyByZXR1cm4gbV9maWx0ZXJUeXBlID09IFR5cGU6OkNTU0ZpbHRlciB8
fCBtX2ZpbHRlclR5cGUgPT0gVHlwZTo6U1ZHRmlsdGVyOyB9CisgICAgYm9vbCBpc0ZpbHRlckVm
ZmVjdCgpIGNvbnN0IHsgcmV0dXJuIG1fZmlsdGVyVHlwZSA+PSBUeXBlOjpGRU1pbmltdW0gJiYg
bV9maWx0ZXJUeXBlIDw9IFR5cGU6OkZFTWF4aW11bTsgfQorCisgICAgc3RhdGljIEF0b21TdHJp
bmcgZmlsdGVyTmFtZShUeXBlKTsKKyAgICBzdGF0aWMgQXRvbVN0cmluZyBzb3VyY2VBbHBoYU5h
bWUoKSB7IHJldHVybiBmaWx0ZXJOYW1lKFR5cGU6OlNvdXJjZUFscGhhKTsgfQorICAgIHN0YXRp
YyBBdG9tU3RyaW5nIHNvdXJjZUdyYXBoaWNOYW1lKCkgeyByZXR1cm4gZmlsdGVyTmFtZShUeXBl
OjpTb3VyY2VHcmFwaGljKTsgfQorICAgIEF0b21TdHJpbmcgZmlsdGVyTmFtZSgpIGNvbnN0IHsg
cmV0dXJuIGZpbHRlck5hbWUobV9maWx0ZXJUeXBlKTsgfQorCitwcml2YXRlOgorICAgIFR5cGUg
bV9maWx0ZXJUeXBlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCituYW1lc3BhY2Ug
V1RGIHsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpGaWx0ZXJGdW5j
dGlvbjo6VHlwZT4geworICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8CisgICAgICAgIFdl
YkNvcmU6OkZpbHRlckZ1bmN0aW9uOjpUeXBlLAorCisgICAgICAgIFdlYkNvcmU6OkZpbHRlckZ1
bmN0aW9uOjpUeXBlOjpDU1NGaWx0ZXIsCisgICAgICAgIFdlYkNvcmU6OkZpbHRlckZ1bmN0aW9u
OjpUeXBlOjpTVkdGaWx0ZXIsCisKKyAgICAgICAgV2ViQ29yZTo6RmlsdGVyRnVuY3Rpb246OlR5
cGU6OkZFQmxlbmQsCisgICAgICAgIFdlYkNvcmU6OkZpbHRlckZ1bmN0aW9uOjpUeXBlOjpGRUNv
bG9yTWF0cml4LAorICAgICAgICBXZWJDb3JlOjpGaWx0ZXJGdW5jdGlvbjo6VHlwZTo6RkVDb21w
b25lbnRUcmFuc2ZlciwKKyAgICAgICAgV2ViQ29yZTo6RmlsdGVyRnVuY3Rpb246OlR5cGU6OkZF
Q29tcG9zaXRlLAorICAgICAgICBXZWJDb3JlOjpGaWx0ZXJGdW5jdGlvbjo6VHlwZTo6RkVDb252
b2x2ZU1hdHJpeCwKKyAgICAgICAgV2ViQ29yZTo6RmlsdGVyRnVuY3Rpb246OlR5cGU6OkZFRGlm
ZnVzZUxpZ2h0aW5nLAorICAgICAgICBXZWJDb3JlOjpGaWx0ZXJGdW5jdGlvbjo6VHlwZTo6RkVE
aXNwbGFjZW1lbnRNYXAsCisgICAgICAgIFdlYkNvcmU6OkZpbHRlckZ1bmN0aW9uOjpUeXBlOjpG
RURyb3BTaGFkb3csCisgICAgICAgIFdlYkNvcmU6OkZpbHRlckZ1bmN0aW9uOjpUeXBlOjpGRUZs
b29kLAorICAgICAgICBXZWJDb3JlOjpGaWx0ZXJGdW5jdGlvbjo6VHlwZTo6RkVHYXVzc2lhbkJs
dXIsCisgICAgICAgIFdlYkNvcmU6OkZpbHRlckZ1bmN0aW9uOjpUeXBlOjpGRUltYWdlLAorICAg
ICAgICBXZWJDb3JlOjpGaWx0ZXJGdW5jdGlvbjo6VHlwZTo6RkVNZXJnZSwKKyAgICAgICAgV2Vi
Q29yZTo6RmlsdGVyRnVuY3Rpb246OlR5cGU6OkZFTW9ycGhvbG9neSwKKyAgICAgICAgV2ViQ29y
ZTo6RmlsdGVyRnVuY3Rpb246OlR5cGU6OkZFT2Zmc2V0LAorICAgICAgICBXZWJDb3JlOjpGaWx0
ZXJGdW5jdGlvbjo6VHlwZTo6RkVTcGVjdWxhckxpZ2h0aW5nLAorICAgICAgICBXZWJDb3JlOjpG
aWx0ZXJGdW5jdGlvbjo6VHlwZTo6RkVUaWxlLAorICAgICAgICBXZWJDb3JlOjpGaWx0ZXJGdW5j
dGlvbjo6VHlwZTo6RkVUdXJidWxlbmNlLAorICAgICAgICBXZWJDb3JlOjpGaWx0ZXJGdW5jdGlv
bjo6VHlwZTo6U291cmNlQWxwaGEsCisgICAgICAgIFdlYkNvcmU6OkZpbHRlckZ1bmN0aW9uOjpU
eXBlOjpTb3VyY2VHcmFwaGljCisgICAgPjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdURgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9Tb3VyY2VB
bHBoYS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1NvdXJj
ZUFscGhhLmNwcAppbmRleCA3NjQ5ZjA1OGFjODY5YjU1NGFmMGRjNTA3ZmZmOTA5MGFkNmNmM2Ez
Li45OTY5NDM3MjU3OTNlOTk2NDZmYzNlNWIyMmFkMTUxZmJkZmRlOWNhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1NvdXJjZUFscGhhLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1NvdXJjZUFscGhh
LmNwcApAQCAtMjMsMTAgKzIzLDcgQEAKICNpbmNsdWRlICJDb2xvci5oIgogI2luY2x1ZGUgIkZp
bHRlci5oIgogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgotI2luY2x1ZGUgPHd0Zi9OZXZl
ckRlc3Ryb3llZC5oPgotI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KICNpbmNsdWRlIDx3
dGYvdGV4dC9UZXh0U3RyZWFtLmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtMzUsMTAgKzMyLDExIEBAIFJlZjxTb3VyY2VBbHBo
YT4gU291cmNlQWxwaGE6OmNyZWF0ZShGaWx0ZXJFZmZlY3QmIHNvdXJjZUVmZmVjdCkKICAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBTb3VyY2VBbHBoYShzb3VyY2VFZmZlY3QpKTsKIH0KIAotY29u
c3QgQXRvbVN0cmluZyYgU291cmNlQWxwaGE6OmVmZmVjdE5hbWUoKQorU291cmNlQWxwaGE6OlNv
dXJjZUFscGhhKEZpbHRlckVmZmVjdCYgc291cmNlRWZmZWN0KQorICAgIDogRmlsdGVyRWZmZWN0
KHNvdXJjZUVmZmVjdC5maWx0ZXIoKSwgRmlsdGVyRWZmZWN0OjpUeXBlOjpTb3VyY2VBbHBoYSkK
IHsKLSAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+
IHNfZWZmZWN0TmFtZSgiU291cmNlQWxwaGEiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0
ZXJhbCk7Ci0gICAgcmV0dXJuIHNfZWZmZWN0TmFtZTsKKyAgICBzZXRPcGVyYXRpbmdDb2xvclNw
YWNlKHNvdXJjZUVmZmVjdC5vcGVyYXRpbmdDb2xvclNwYWNlKCkpOworICAgIGlucHV0RWZmZWN0
cygpLmFwcGVuZCgmc291cmNlRWZmZWN0KTsKIH0KIAogdm9pZCBTb3VyY2VBbHBoYTo6ZGV0ZXJt
aW5lQWJzb2x1dGVQYWludFJlY3QoKQpAQCAtNjksMTEgKzY3LDQgQEAgVGV4dFN0cmVhbSYgU291
cmNlQWxwaGE6OmV4dGVybmFsUmVwcmVzZW50YXRpb24oVGV4dFN0cmVhbSYgdHMsIFJlcHJlc2Vu
dGF0aW9uVHkKICAgICByZXR1cm4gdHM7CiB9CiAKLVNvdXJjZUFscGhhOjpTb3VyY2VBbHBoYShG
aWx0ZXJFZmZlY3QmIHNvdXJjZUVmZmVjdCkKLSAgICA6IEZpbHRlckVmZmVjdChzb3VyY2VFZmZl
Y3QuZmlsdGVyKCksIFR5cGU6OlNvdXJjZUFscGhhKQotewotICAgIHNldE9wZXJhdGluZ0NvbG9y
U3BhY2Uoc291cmNlRWZmZWN0Lm9wZXJhdGluZ0NvbG9yU3BhY2UoKSk7Ci0gICAgaW5wdXRFZmZl
Y3RzKCkuYXBwZW5kKCZzb3VyY2VFZmZlY3QpOwotfQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1Nv
dXJjZUFscGhhLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1Nv
dXJjZUFscGhhLmgKaW5kZXggNjYyOWEzNjdmZDQzMjQyZDFjNGFhZGU2NGM1NjFlODY0YTM5NDkw
Zi4uNGJiZGUwN2Y3OGUzNWQyNWI0ZjRkNDljNmI2MjVmMWUxMDJhNTQzMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9Tb3VyY2VBbHBoYS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvU291cmNlQWxwaGEu
aApAQCAtMTcsOCArMTcsNyBAQAogICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCiAgKi8K
IAotI2lmbmRlZiBTb3VyY2VBbHBoYV9oCi0jZGVmaW5lIFNvdXJjZUFscGhhX2gKKyNwcmFnbWEg
b25jZQogCiAjaW5jbHVkZSAiRmlsdGVyRWZmZWN0LmgiCiAKQEAgLTI4LDEzICsyNywxMCBAQCBj
bGFzcyBTb3VyY2VBbHBoYSA6IHB1YmxpYyBGaWx0ZXJFZmZlY3QgewogcHVibGljOiAgICAgICAg
CiAgICAgc3RhdGljIFJlZjxTb3VyY2VBbHBoYT4gY3JlYXRlKEZpbHRlckVmZmVjdCYpOwogCi0g
ICAgc3RhdGljIGNvbnN0IEF0b21TdHJpbmcmIGVmZmVjdE5hbWUoKTsKKyAgICBzdGF0aWMgQXRv
bVN0cmluZyBlZmZlY3ROYW1lKCkgeyByZXR1cm4gRmlsdGVyRWZmZWN0Ojpzb3VyY2VBbHBoYU5h
bWUoKTsgfQogCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IFNvdXJjZUFscGhhKEZpbHRlckVmZmVj
dCYpOwotICAgIEZpbHRlckVmZmVjdFR5cGUgZmlsdGVyRWZmZWN0VHlwZSgpIGNvbnN0IG92ZXJy
aWRlIHsgcmV0dXJuIEZpbHRlckVmZmVjdFR5cGVTb3VyY2VJbnB1dDsgfQotCi0gICAgY29uc3Qg
Y2hhciogZmlsdGVyTmFtZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICJTb3VyY2VBbHBoYSI7IH0K
IAogICAgIHZvaWQgcGxhdGZvcm1BcHBseVNvZnR3YXJlKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBk
ZXRlcm1pbmVBYnNvbHV0ZVBhaW50UmVjdCgpIG92ZXJyaWRlOwpAQCAtNDMsNCArMzksNCBAQCBw
cml2YXRlOgogCiB9IC8vbmFtZXNwYWNlIFdlYkNvcmUKIAotI2VuZGlmIC8vIFNvdXJjZUFscGhh
X2gKK1NQRUNJQUxJWkVfVFlQRV9UUkFJVFNfRklMVEVSX0VGRkVDVChTb3VyY2VBbHBoYSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvU291cmNl
R3JhcGhpYy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1Nv
dXJjZUdyYXBoaWMuY3BwCmluZGV4IDg4YTM2YTQxMDI2YmQzYTU4NTQ0NzgyMDI3NGMxMTA3ZDc4
MzkyZTkuLjI4OGM0NWY2ZmRmN2E2YmEwOTE2NGEzZjQ0YjdkMmY5NGUyYTFkNGIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvU291cmNlR3JhcGhp
Yy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9Tb3Vy
Y2VHcmFwaGljLmNwcApAQCAtMjIsMTAgKzIyLDcgQEAKIAogI2luY2x1ZGUgIkZpbHRlci5oIgog
I2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgotI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3ll
ZC5oPgotI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9U
ZXh0U3RyZWFtLmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIApAQCAtMzQsMTIgKzMxLDYgQEAgUmVmPFNvdXJjZUdyYXBoaWM+IFNvdXJj
ZUdyYXBoaWM6OmNyZWF0ZShGaWx0ZXImIGZpbHRlcikKICAgICByZXR1cm4gYWRvcHRSZWYoKm5l
dyBTb3VyY2VHcmFwaGljKGZpbHRlcikpOwogfQogCi1jb25zdCBBdG9tU3RyaW5nJiBTb3VyY2VH
cmFwaGljOjplZmZlY3ROYW1lKCkKLXsKLSAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJv
eWVkPGNvbnN0IEF0b21TdHJpbmc+IHNfZWZmZWN0TmFtZSgiU291cmNlR3JhcGhpYyIsIEF0b21T
dHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICByZXR1cm4gc19lZmZlY3ROYW1lOwot
fQotCiB2b2lkIFNvdXJjZUdyYXBoaWM6OmRldGVybWluZUFic29sdXRlUGFpbnRSZWN0KCkKIHsK
ICAgICBGaWx0ZXImIGZpbHRlciA9IHRoaXMtPmZpbHRlcigpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9Tb3VyY2VHcmFwaGljLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1NvdXJjZUdyYXBoaWMuaAppbmRl
eCAzMGNkNTRmMjQ1M2JiYThhMzc3NjMyMTMyOGVmMjEwNmI3ZmNhNWJmLi41ZjhiY2UxYjQ4ODY3
NDY2MWUyOWMzYjhhMzk2Yjc1OGRiNDY0M2FiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1NvdXJjZUdyYXBoaWMuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1NvdXJjZUdyYXBoaWMuaApAQCAtMTgsMTEg
KzE4LDkgQEAKICAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgogICovCiAKLSNpZm5kZWYg
U291cmNlR3JhcGhpY19oCi0jZGVmaW5lIFNvdXJjZUdyYXBoaWNfaAorI3ByYWdtYSBvbmNlCiAK
ICNpbmNsdWRlICJGaWx0ZXJFZmZlY3QuaCIKLSNpbmNsdWRlICJGaWx0ZXIuaCIKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCkBAIC0zMCwyOSArMjgsMjAgQEAgY2xhc3MgU291cmNlR3JhcGhpYyA6
IHB1YmxpYyBGaWx0ZXJFZmZlY3QgewogcHVibGljOiAgICAgICAgCiAgICAgc3RhdGljIFJlZjxT
b3VyY2VHcmFwaGljPiBjcmVhdGUoRmlsdGVyJik7CiAKLSAgICBzdGF0aWMgY29uc3QgQXRvbVN0
cmluZyYgZWZmZWN0TmFtZSgpOworICAgIHN0YXRpYyBBdG9tU3RyaW5nIGVmZmVjdE5hbWUoKSB7
IHJldHVybiBGaWx0ZXJFZmZlY3Q6OnNvdXJjZUdyYXBoaWNOYW1lKCk7IH0KIAogcHJpdmF0ZToK
ICAgICBTb3VyY2VHcmFwaGljKEZpbHRlciYgZmlsdGVyKQotICAgICAgICA6IEZpbHRlckVmZmVj
dChmaWx0ZXIsIFR5cGU6OlNvdXJjZUdyYXBoaWMpCisgICAgICAgIDogRmlsdGVyRWZmZWN0KGZp
bHRlciwgRmlsdGVyRWZmZWN0OjpUeXBlOjpTb3VyY2VHcmFwaGljKQogICAgIHsKICAgICAgICAg
c2V0T3BlcmF0aW5nQ29sb3JTcGFjZShEZXN0aW5hdGlvbkNvbG9yU3BhY2U6OlNSR0IoKSk7CiAg
ICAgfQogCi0gICAgY29uc3QgY2hhciogZmlsdGVyTmFtZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJu
ICJTb3VyY2VHcmFwaGljIjsgfQotCiAgICAgdm9pZCBkZXRlcm1pbmVBYnNvbHV0ZVBhaW50UmVj
dCgpIG92ZXJyaWRlOwogICAgIHZvaWQgcGxhdGZvcm1BcHBseVNvZnR3YXJlKCkgb3ZlcnJpZGU7
CiAgICAgV1RGOjpUZXh0U3RyZWFtJiBleHRlcm5hbFJlcHJlc2VudGF0aW9uKFdURjo6VGV4dFN0
cmVhbSYsIFJlcHJlc2VudGF0aW9uVHlwZSkgY29uc3Qgb3ZlcnJpZGU7Ci0KLSAgICBGaWx0ZXJF
ZmZlY3RUeXBlIGZpbHRlckVmZmVjdFR5cGUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBGaWx0
ZXJFZmZlY3RUeXBlU291cmNlSW5wdXQ7IH0KIH07CiAKIH0gLy9uYW1lc3BhY2UgV2ViQ29yZQog
Ci1TUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0JFR0lOKFdlYkNvcmU6OlNvdXJjZUdyYXBoaWMpCi0g
ICAgc3RhdGljIGJvb2wgaXNUeXBlKGNvbnN0IFdlYkNvcmU6OkZpbHRlckVmZmVjdCYgZWZmZWN0
KSB7IHJldHVybiBlZmZlY3QuZmlsdGVyRWZmZWN0Q2xhc3NUeXBlKCkgPT0gV2ViQ29yZTo6Rmls
dGVyRWZmZWN0OjpUeXBlOjpTb3VyY2VHcmFwaGljOyB9Ci1TUEVDSUFMSVpFX1RZUEVfVFJBSVRT
X0VORCgpCi0KLQotI2VuZGlmIC8vIFNvdXJjZUdyYXBoaWNfaAorU1BFQ0lBTElaRV9UWVBFX1RS
QUlUU19GSUxURVJfRUZGRUNUKFNvdXJjZUdyYXBoaWMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNl
Q29jb2EuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0
aW1lSW5jb21pbmdBdWRpb1NvdXJjZUNvY29hLmNwcAppbmRleCA5YWVhNWYxYzA3MmMwOWJmMDYz
ZjQ5OTllMDNiMjE5ZTg1ZDdlMmQ5Li5kNjdiMjliNTFjNzkxZTUyMTVlYjk4OTc1ZmQ5Y2ViNmFj
NGZjMDcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9t
YWMvUmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlQ29jb2EuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZUluY29taW5nQXVkaW9Tb3VyY2VD
b2NvYS5jcHAKQEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlICJBdWRpb1N0cmVhbURlc2NyaXB0
aW9uLmgiCiAjaW5jbHVkZSAiQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uLmgiCiAjaW5jbHVkZSAi
TGliV2ViUlRDQXVkaW9Gb3JtYXQuaCIKKyNpbmNsdWRlICJMaWJXZWJSVENBdWRpb01vZHVsZS5o
IgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlIDxwYWwvYXZmb3VuZGF0aW9uL01lZGlh
VGltZUFWRm91bmRhdGlvbi5oPgogI2luY2x1ZGUgPHd0Zi9GYXN0TWFsbG9jLmg+CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvQ1NTRmlsdGVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9DU1NGaWx0ZXIuY3BwCmluZGV4IDlkNmMyY2RkMDVmOTQ5YjYzNGNhZmEx
N2FjMTdkYjVjMDJiNWI2MTEuLjEwMmI4ODY1MzcyMGRjZDcxNjM0OWFmYjRkZGViZDQ5OTk3NzFj
ZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9DU1NGaWx0ZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9DU1NGaWx0ZXIuY3BwCkBAIC02MCw3ICs2MCw3
IEBAIFJlZjxDU1NGaWx0ZXI+IENTU0ZpbHRlcjo6Y3JlYXRlKCkKIH0KIAogQ1NTRmlsdGVyOjpD
U1NGaWx0ZXIoKQotICAgIDogRmlsdGVyKEZsb2F0U2l6ZSB7IDEsIDEgfSkKKyAgICA6IEZpbHRl
cihGaWx0ZXI6OlR5cGU6OkNTU0ZpbHRlciwgRmxvYXRTaXplIHsgMSwgMSB9KQogICAgICwgbV9z
b3VyY2VHcmFwaGljKFNvdXJjZUdyYXBoaWM6OmNyZWF0ZSgqdGhpcykpCiB7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvZmlsdGVycy9TVkdGRUltYWdlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9maWx0ZXJzL1NWR0ZFSW1hZ2UuY3BwCmluZGV4
IDM4NWFmMjkwODQ4YTNkMGI4M2YxMmFjOTYxOWU2YmY5NmM5ZjIzOTYuLjIzNmU3MWYyZTNiYzZk
NGZmMWMxNDBjZjc3NTY3MWNkMTEzNTRiNmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9ncmFwaGljcy9maWx0ZXJzL1NWR0ZFSW1hZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9ncmFwaGljcy9maWx0ZXJzL1NWR0ZFSW1hZ2UuY3BwCkBAIC0zNiwxNCArMzYsMTQgQEAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAogRkVJbWFnZTo6RkVJbWFnZShGaWx0ZXImIGZpbHRlciwgUmVm
UHRyPEltYWdlPiBpbWFnZSwgY29uc3QgU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlJiBwcmVz
ZXJ2ZUFzcGVjdFJhdGlvKQotICAgIDogRmlsdGVyRWZmZWN0KGZpbHRlciwgVHlwZTo6SW1hZ2Up
CisgICAgOiBGaWx0ZXJFZmZlY3QoZmlsdGVyLCBGaWx0ZXJFZmZlY3Q6OlR5cGU6OkZFSW1hZ2Up
CiAgICAgLCBtX2ltYWdlKGltYWdlKQogICAgICwgbV9wcmVzZXJ2ZUFzcGVjdFJhdGlvKHByZXNl
cnZlQXNwZWN0UmF0aW8pCiB7CiB9CiAKIEZFSW1hZ2U6OkZFSW1hZ2UoRmlsdGVyJiBmaWx0ZXIs
IFRyZWVTY29wZSYgdHJlZVNjb3BlLCBjb25zdCBTdHJpbmcmIGhyZWYsIGNvbnN0IFNWR1ByZXNl
cnZlQXNwZWN0UmF0aW9WYWx1ZSYgcHJlc2VydmVBc3BlY3RSYXRpbykKLSAgICA6IEZpbHRlckVm
ZmVjdChmaWx0ZXIsIFR5cGU6OkltYWdlKQorICAgIDogRmlsdGVyRWZmZWN0KGZpbHRlciwgRmls
dGVyRWZmZWN0OjpUeXBlOjpGRUltYWdlKQogICAgICwgbV90cmVlU2NvcGUoJnRyZWVTY29wZSkK
ICAgICAsIG1faHJlZihocmVmKQogICAgICwgbV9wcmVzZXJ2ZUFzcGVjdFJhdGlvKHByZXNlcnZl
QXNwZWN0UmF0aW8pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvZmls
dGVycy9TVkdGRUltYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvZmlsdGVycy9T
VkdGRUltYWdlLmgKaW5kZXggYWMxNjBlZGNlN2MwZTBhMDY3YmRlZmJkNzA3ZjJhYmU1NTkwODFi
Ni4uMTY4ODk5MTY0NjJiMTc1MmEzNDFkNTUxOGFkYTA3NWMzNDllMTYwYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL2ZpbHRlcnMvU1ZHRkVJbWFnZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9maWx0ZXJzL1NWR0ZFSW1hZ2UuaApAQCAtNDIsMTAg
KzQyLDYgQEAgcHJpdmF0ZToKICAgICBGRUltYWdlKEZpbHRlciYsIFJlZlB0cjxJbWFnZT4sIGNv
bnN0IFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZSYpOwogICAgIEZFSW1hZ2UoRmlsdGVyJiwg
VHJlZVNjb3BlJiwgY29uc3QgU3RyaW5nJiwgY29uc3QgU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1Zh
bHVlJik7CiAKLSAgICBjb25zdCBjaGFyKiBmaWx0ZXJOYW1lKCkgY29uc3QgZmluYWwgeyByZXR1
cm4gIkZFSW1hZ2UiOyB9Ci0KLSAgICBGaWx0ZXJFZmZlY3RUeXBlIGZpbHRlckVmZmVjdFR5cGUo
KSBjb25zdCBmaW5hbCB7IHJldHVybiBGaWx0ZXJFZmZlY3RUeXBlSW1hZ2U7IH0KLQogICAgIFJl
bmRlckVsZW1lbnQqIHJlZmVyZW5jZWRSZW5kZXJlcigpIGNvbnN0OwogCiAgICAgdm9pZCBwbGF0
Zm9ybUFwcGx5U29mdHdhcmUoKSBmaW5hbDsKQEAgLTYxLDMgKzU3LDUgQEAgcHJpdmF0ZToKIH07
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19GSUxU
RVJfRUZGRUNUKEZFSW1hZ2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhp
Y3MvZmlsdGVycy9TVkdGaWx0ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL2Zp
bHRlcnMvU1ZHRmlsdGVyLmNwcAppbmRleCA5YTk0YTQ2MDM1ODc5MDhhMzg0ZDE3NDI3YjM3MTkz
NTkyYjdiY2U3Li44MmU5NDM2NzIzZTg1NWQ2NTI3OTdhMTM3MDdkNWFiZTllZTYwYTI3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvZmlsdGVycy9TVkdGaWx0ZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9maWx0ZXJzL1NWR0ZpbHRlci5jcHAK
QEAgLTI1LDcgKzI1LDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogU1ZHRmlsdGVyOjpTVkdG
aWx0ZXIoY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBhYnNvbHV0ZVRyYW5zZm9ybSwgY29uc3QgRmxv
YXRSZWN0JiBhYnNvbHV0ZVNvdXJjZURyYXdpbmdSZWdpb24sIGNvbnN0IEZsb2F0UmVjdCYgdGFy
Z2V0Qm91bmRpbmdCb3gsIGNvbnN0IEZsb2F0UmVjdCYgZmlsdGVyUmVnaW9uLCBib29sIGVmZmVj
dEJCb3hNb2RlKQotICAgIDogRmlsdGVyKGFic29sdXRlVHJhbnNmb3JtKQorICAgIDogRmlsdGVy
KEZpbHRlcjo6VHlwZTo6Q1NTRmlsdGVyLCBhYnNvbHV0ZVRyYW5zZm9ybSkKICAgICAsIG1fYWJz
b2x1dGVTb3VyY2VEcmF3aW5nUmVnaW9uKGFic29sdXRlU291cmNlRHJhd2luZ1JlZ2lvbikKICAg
ICAsIG1fdGFyZ2V0Qm91bmRpbmdCb3godGFyZ2V0Qm91bmRpbmdCb3gpCiAgICAgLCBtX2ZpbHRl
clJlZ2lvbihmaWx0ZXJSZWdpb24pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3Jh
cGhpY3MvZmlsdGVycy9TVkdGaWx0ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9m
aWx0ZXJzL1NWR0ZpbHRlci5oCmluZGV4IDgwOTMxNDZkNjRhZjg4ODViYzNkYTQ5MzAyZjVhZWEw
ZmIxNzAwY2YuLjUyNTg4NmFmMzA4NGNlNzgzNWM4NGQ0YTk3NjM1ZGYyZTYzOWI1YTggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9maWx0ZXJzL1NWR0ZpbHRlci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9maWx0ZXJzL1NWR0ZpbHRlci5oCkBAIC01
Nyw0ICs1Nyw1IEBAIHByaXZhdGU6CiAKIFNQRUNJQUxJWkVfVFlQRV9UUkFJVFNfQkVHSU4oV2Vi
Q29yZTo6U1ZHRmlsdGVyKQogICAgIHN0YXRpYyBib29sIGlzVHlwZShjb25zdCBXZWJDb3JlOjpG
aWx0ZXImIGZpbHRlcikgeyByZXR1cm4gZmlsdGVyLmlzU1ZHRmlsdGVyKCk7IH0KKyAgICBzdGF0
aWMgYm9vbCBpc1R5cGUoY29uc3QgV2ViQ29yZTo6RmlsdGVyRnVuY3Rpb24mIGZ1bmN0aW9uKSB7
IHJldHVybiBmdW5jdGlvbi5pc1NWR0ZpbHRlcigpOyB9CiBTUEVDSUFMSVpFX1RZUEVfVFJBSVRT
X0VORCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvZmlsdGVycy9T
VkdGaWx0ZXJCdWlsZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9maWx0ZXJz
L1NWR0ZpbHRlckJ1aWxkZXIuY3BwCmluZGV4IDk2ZjNhODA1MDQyOTU1NTgxMDM0ZDk4YTRmZGFj
NGVhZjMwODdiOTQuLjgwMDBmODRiNWNkNjBlMDZlMjM2NGVkNWNkZThmOGUzZmQ5NDQxNmUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9maWx0ZXJzL1NWR0ZpbHRlckJ1
aWxkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9maWx0ZXJzL1NWR0Zp
bHRlckJ1aWxkZXIuY3BwCkBAIC0yMSw2ICsyMSw3IEBACiAjaW5jbHVkZSAiU1ZHRmlsdGVyQnVp
bGRlci5oIgogCiAjaW5jbHVkZSAiRmlsdGVyRWZmZWN0LmgiCisjaW5jbHVkZSAiSW1hZ2VCdWZm
ZXIuaCIKICNpbmNsdWRlICJTb3VyY2VBbHBoYS5oIgogI2luY2x1ZGUgIlNvdXJjZUdyYXBoaWMu
aCIKICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdDb25jYXRlbmF0ZU51bWJlcnMuaD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>443665</attachid>
            <date>2021-11-09 02:21:46 -0800</date>
            <delta_ts>2021-11-09 14:53:39 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-232413-20211109022145.patch</filename>
            <type>text/plain</type>
            <size>69511</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1NDg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTdlMWE3OTk5YmM0NjIx
OTQwYzM0MjY4YWVkYTljMzljZGYwZmE4MS4uNDQ5N2MzYWM2ZjkyNmZmNTViMTNiNTU2MzUzNTg1
Y2YwNjM1NjNmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzMyBAQAorMjAyMS0xMS0wOSAgU2Fp
ZCBBYm91LUhhbGxhd2EgIDxzYWlkQGFwcGxlLmNvbT4KKworICAgICAgICBbR1BVIFByb2Nlc3Nd
IEludHJvZHVjZSBGaWx0ZXJGdW5jdGlvbiBhbmQgbWFrZSBpdCB0aGUgYmFzZSBjbGFzcyBvZiBG
aWx0ZXIgYW5kIEZpbHRlckVmZmVjdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjMyNDEzCisgICAgICAgIHJkYXI6Ly84NDk2Njc2NQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgYWxsb3dzIENTU0Zp
bHRlciB0byBob2xkIGEgbGlzdCBvZiBGaWx0ZXJGdW5jdGlvbnMuIFRoZSBGaWx0ZXIgaW4KKyAg
ICAgICAgdGhpcyBjYXNlIHdpbGwgYWN0IGxpa2UgYSBjb21wb3NpdGUgcGF0dGVybiBvZiBGaWx0
ZXJFZmZlY3RzLgorCisgICAgICAgIFRoaXMgcGF0Y2ggYWxzbworICAgICAgICAxLiBSZW1vdmVz
IHRoZSB2aXJ0dWFsIGZ1bmN0aW9uIGZpbHRlck5hbWUoKSBmcm9tIGFsbCB0aGUgRmlsdGVyRWZm
ZWN0CisgICAgICAgICAgIGNsYXNzZXMuIEl0IHJlcGxhY2VzIGl0IHdpdGggYSBzdGF0aWMgZnVu
Y3Rpb24gaW4gRmlsdGVyRnVuY3Rpb24uCisgICAgICAgIDIuIFJlbW92ZXMgdGhlIHZpcnR1YWwg
ZnVuY3Rpb24gZmlsdGVyRWZmZWN0VHlwZSgpIGFuZCB0aGUgZnVuY3Rpb24KKyAgICAgICAgICAg
RmlsdGVyRWZmZWN0OjpmaWx0ZXJFZmZlY3RDbGFzc1R5cGUoKSBzaW5jZSB0aGV5IGNhbiBib3Ro
IGJlIHJlcGxhY2VkCisgICAgICAgICAgIGJ5IEZpbHRlckZ1bmN0aW9uOjpmaWx0ZXJUeXBlKCku
CisgICAgICAgIDMuIEFkZHMgdHJhaXQgbWFjcm9zIGZvciBhbGwgRmlsdGVyRWZmZWN0cyBhbmQg
dGhlIFNWR0ZpbHRlcnMgY2xhc3MuCisKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAg
KiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvY29yZWltYWdlL0ZpbHRlckVmZmVjdFJlbmRlcmVyQ29yZUltYWdlLm1tOgorICAg
ICAgICAoV2ViQ29yZTo6RmlsdGVyRWZmZWN0UmVuZGVyZXJDb3JlSW1hZ2U6OnN1cHBvcnRzQ29y
ZUltYWdlUmVuZGVyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbHRlckVmZmVjdFJlbmRlcmVy
Q29yZUltYWdlOjpjb25uZWN0Q0lGaWx0ZXJzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9maWx0ZXJzL0ZFQmxlbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RkVCbGVuZDo6RkVCbGVu
ZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUJsZW5kLmg6CisgICAg
ICAgICgpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVD
b2xvck1hdHJpeC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGRUNvbG9yTWF0cml4OjpGRUNvbG9y
TWF0cml4KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29sb3JNYXRy
aXguaDoKKyAgICAgICAgKGlzVHlwZSk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvZmlsdGVycy9GRUNvbXBvbmVudFRyYW5zZmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkZFQ29tcG9uZW50VHJhbnNmZXI6OkZFQ29tcG9uZW50VHJhbnNmZXIpOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb21wb25lbnRUcmFuc2Zlci5oOgorICAgICAgICAo
aXNUeXBlKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZF
Q29tcG9zaXRlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZFQ29tcG9zaXRlOjpGRUNvbXBvc2l0
ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbXBvc2l0ZS5oOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb252b2x2ZU1hdHJpeC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpGRUNvbnZvbHZlTWF0cml4OjpGRUNvbnZvbHZlTWF0cml4KToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29udm9sdmVNYXRyaXguaDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRGlmZnVzZUxpZ2h0aW5nLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkZFRGlmZnVzZUxpZ2h0aW5nOjpGRURpZmZ1c2VMaWdodGlu
Zyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRURpZmZ1c2VMaWdodGlu
Zy5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVEaXNwbGFjZW1lbnRN
YXAuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RkVEaXNwbGFjZW1lbnRNYXA6OkZFRGlzcGxhY2Vt
ZW50TWFwKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRGlzcGxhY2Vt
ZW50TWFwLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRURyb3BTaGFk
b3cuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RkVEcm9wU2hhZG93OjpGRURyb3BTaGFkb3cpOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVEcm9wU2hhZG93Lmg6CisgICAg
ICAgICgpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVG
bG9vZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGRUZsb29kOjpGRUZsb29kKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRmxvb2QuaDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9maWx0ZXJzL0ZFR2F1c3NpYW5CbHVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkZFR2F1c3NpYW5CbHVyOjpGRUdhdXNzaWFuQmx1cik6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvZmlsdGVycy9GRUdhdXNzaWFuQmx1ci5oOgorICAgICAgICAoKTogRGVsZXRlZC4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFTGlnaHRpbmcuaDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFTWVyZ2UuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6RkVNZXJnZTo6RkVNZXJnZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVy
cy9GRU1lcmdlLmg6CisgICAgICAgICgpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2ZpbHRlcnMvRkVNb3JwaG9sb2d5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZFTW9y
cGhvbG9neTo6RkVNb3JwaG9sb2d5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0
ZXJzL0ZFTW9ycGhvbG9neS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMv
RkVPZmZzZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RkVPZmZzZXQ6OkZFT2Zmc2V0KToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFT2Zmc2V0Lmg6CisgICAgICAgICgp
OiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVTcGVjdWxh
ckxpZ2h0aW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZFU3BlY3VsYXJMaWdodGluZzo6RkVT
cGVjdWxhckxpZ2h0aW5nKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZF
U3BlY3VsYXJMaWdodGluZy5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMv
RkVUaWxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZFVGlsZTo6RkVUaWxlKToKKyAgICAgICAg
KFdlYkNvcmU6OkZFVGlsZTo6cGxhdGZvcm1BcHBseVNvZnR3YXJlKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFVGlsZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2ZpbHRlcnMvRkVUdXJidWxlbmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZFVHVyYnVs
ZW5jZTo6RkVUdXJidWxlbmNlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJz
L0ZFVHVyYnVsZW5jZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmls
dGVyLmg6CisgICAgICAgIChXZWJDb3JlOjpGaWx0ZXI6OkZpbHRlcik6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXJFZmZlY3QuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6RmlsdGVyRWZmZWN0OjpGaWx0ZXJFZmZlY3QpOgorICAgICAgICAoV2ViQ29yZTo6RmlsdGVy
RWZmZWN0OjpkZXRlcm1pbmVGaWx0ZXJQcmltaXRpdmVTdWJyZWdpb24pOgorICAgICAgICAoV2Vi
Q29yZTo6RmlsdGVyRWZmZWN0OjpjcmVhdGVJbWFnZUJ1ZmZlclJlc3VsdCk6CisgICAgICAgIChX
ZWJDb3JlOjpGaWx0ZXJFZmZlY3Q6OmNyZWF0ZVVubXVsdGlwbGllZEltYWdlUmVzdWx0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkZpbHRlckVmZmVjdDo6Y3JlYXRlUHJlbXVsdGlwbGllZEltYWdlUmVz
dWx0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlckVmZmVjdC5o
OgorICAgICAgICAoaXNUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbHRlckVmZmVjdDo6Zmls
dGVyRWZmZWN0VHlwZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpGaWx0ZXJF
ZmZlY3Q6OmZpbHRlckVmZmVjdENsYXNzVHlwZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXJGdW5jdGlvbi5jcHA6IEFkZGVkLgorICAg
ICAgICAoV2ViQ29yZTo6RmlsdGVyRnVuY3Rpb246OkZpbHRlckZ1bmN0aW9uKToKKyAgICAgICAg
KFdlYkNvcmU6OkZpbHRlckZ1bmN0aW9uOjpmaWx0ZXJOYW1lKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlckZ1bmN0aW9uLmg6IEFkZGVkLgorICAgICAgICAoV2Vi
Q29yZTo6RmlsdGVyRnVuY3Rpb246OmZpbHRlclR5cGUgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6RmlsdGVyRnVuY3Rpb246OmlzQ1NTRmlsdGVyIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OkZpbHRlckZ1bmN0aW9uOjppc1NWR0ZpbHRlciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpG
aWx0ZXJGdW5jdGlvbjo6aXNGaWx0ZXIgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RmlsdGVy
RnVuY3Rpb246OmlzRmlsdGVyRWZmZWN0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkZpbHRl
ckZ1bmN0aW9uOjpzb3VyY2VBbHBoYU5hbWUpOgorICAgICAgICAoV2ViQ29yZTo6RmlsdGVyRnVu
Y3Rpb246OnNvdXJjZUdyYXBoaWNOYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbHRlckZ1bmN0
aW9uOjpmaWx0ZXJOYW1lIGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0
ZXJzL1NvdXJjZUFscGhhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUFscGhhOjpTb3Vy
Y2VBbHBoYSk6CisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VBbHBoYTo6ZWZmZWN0TmFtZSk6IERl
bGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9Tb3VyY2VBbHBoYS5o
OgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQWxwaGE6OmVmZmVjdE5hbWUpOgorICAgICAgICAo
KTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1NvdXJjZUdy
YXBoaWMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U291cmNlR3JhcGhpYzo6ZWZmZWN0TmFtZSk6
IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9Tb3VyY2VHcmFw
aGljLmg6CisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VHcmFwaGljOjplZmZlY3ROYW1lKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNvdXJjZUdyYXBoaWM6OlNvdXJjZUdyYXBoaWMpOgorICAgICAgICAo
KTogRGVsZXRlZC4KKyAgICAgICAgKGlzVHlwZSk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZv
cm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZUNvY29hLmNwcDoK
KyAgICAgICAgKiByZW5kZXJpbmcvQ1NTRmlsdGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNT
U0ZpbHRlcjo6Q1NTRmlsdGVyKToKKyAgICAgICAgKiBzdmcvZ3JhcGhpY3MvZmlsdGVycy9TVkdG
RUltYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZFSW1hZ2U6OkZFSW1hZ2UpOgorICAgICAg
ICAqIHN2Zy9ncmFwaGljcy9maWx0ZXJzL1NWR0ZFSW1hZ2UuaDoKKyAgICAgICAgKiBzdmcvZ3Jh
cGhpY3MvZmlsdGVycy9TVkdGaWx0ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRmlsdGVy
OjpTVkdGaWx0ZXIpOgorICAgICAgICAqIHN2Zy9ncmFwaGljcy9maWx0ZXJzL1NWR0ZpbHRlci5o
OgorICAgICAgICAoaXNUeXBlKToKKyAgICAgICAgKiBzdmcvZ3JhcGhpY3MvZmlsdGVycy9TVkdG
aWx0ZXJCdWlsZGVyLmNwcDoKKwogMjAyMS0xMS0wOSAgVGltIE5ndXllbiAgPG50aW1AYXBwbGUu
Y29tPgogCiAgICAgICAgIFJlLXVzZSBpc0NTU1dpZGVLZXl3b3JkIGluIENTU1ZhcmlhYmxlUGFy
c2VyLmNwcCAmIENTU1Byb3BlcnR5UGFyc2VyLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAppbmRleCA5MjhkOGI0
OTcyYjI2NTM4NDk3NGQ1MWQxNDY0OWRhODZkNDI0OTQyLi5mMTUxZTRkMzY3M2U3ZmExNmZkYzEy
ZjRmZmNlYWQ5NzJjZDdjMmZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4
dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApAQCAtMjA5MCw2ICsyMDkwLDcgQEAg
cGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRVRpbGUuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9m
aWx0ZXJzL0ZFVHVyYnVsZW5jZS5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVy
RWZmZWN0LmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXJFZmZlY3RSZW5kZXJl
ci5jcHAKK3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyRnVuY3Rpb24uY3BwCiBwbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlck9wZXJhdGlvbi5jcHAKIHBsYXRmb3JtL2dyYXBo
aWNzL2ZpbHRlcnMvRmlsdGVyT3BlcmF0aW9ucy5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRl
cnMvUG9pbnRMaWdodFNvdXJjZS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAzYjU1N2RlMTBkMDFmYjVkMDljYTMxZWU0ZDQ5
NmNmYzc0ZDdmZDM2Li40NWE0ZGIxYmRiOTNhMWY2NGYwY2ZhZmM3NmZmMDc0OWYxY2Y4NzExIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CkBAIC0xMDg0OCw2ICsxMDg0OCw4IEBACiAJCTcyNEVFNTRFMURDN0YyNUIwMEE5MUZGQiAvKiBB
Y3Rpdml0eVN0YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFjdGl2aXR5
U3RhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzI0RUU1NEYxREM3RjI1QjAw
QTkxRkZCIC8qIEFjdGl2aXR5U3RhdGVDaGFuZ2VPYnNlcnZlci5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBBY3Rpdml0eVN0YXRlQ2hhbmdlT2JzZXJ2ZXIuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzI1MjM5NkIyNTRDQURDMjAwRjVGQjE1IC8qIE5hdGl2ZUlt
YWdlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE5hdGl2ZUltYWdlLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJNzI2MkQ3NTYyNzJBMTc0MTAwQzU2QTA5IC8qIEZpbHRlckZ1bmN0
aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZpbHRlckZ1bmN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTcyNjJENzU3MjcyQTE3NDEwMEM1NkEwOSAvKiBGaWx0ZXJGdW5jdGlvbi5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBGaWx0ZXJGdW5jdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTcyNjZGMDEzMjI0MUJDRTIwMDgzMzk3NSAvKiBTVkdQcm9wZXJ0eUFu
aW1hdG9yRmFjdG9yeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTVkdQcm9wZXJ0eUFuaW1hdG9yRmFjdG9y
eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3MjY2RjAxNDIyNDFCRkIyMDA4MzM5
NzUgLyogU1ZHUHJpbWl0aXZlUHJvcGVydHlBbmltYXRvckltcGwuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
U1ZHUHJpbWl0aXZlUHJvcGVydHlBbmltYXRvckltcGwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNzI2NkYwMTUyMjQxQzA5ODAwODMzOTc1IC8qIFNWR1ByaW1pdGl2ZVByb3BlcnR5
QW5pbWF0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZHUHJpbWl0aXZlUHJvcGVydHlBbmltYXRvci5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTg5MDcsMTEgKzE4OTA5LDExIEBACiAJ
CTFBNTY5Q0M0MEQ3RTJCNjAwMDdDMzk4MyAvKiBicmlkZ2UgKi8gPSB7CiAJCQlpc2EgPSBQQlhH
cm91cDsKIAkJCWNoaWxkcmVuID0gKAotCQkJCTU5QjU5NzcxMTEwODY1NTYwMDcxNTlFOCAvKiBq
c2MgKi8sCi0JCQkJMUE1NjlDRTIwRDdFMkI4MjAwN0MzOTgzIC8qIG9iamMgKi8sCiAJCQkJNTk5
RTc1OEYxMTA1NUExRjAwRDkwNEZBIC8qIEJyaWRnZS5oICovLAogCQkJCTFBNzFENTc5MEYzMzgx
OTAwMEY5Q0U0RSAvKiBJZGVudGlmaWVyUmVwLmNwcCAqLywKIAkJCQkxQTcxRDU3QTBGMzM4MTkw
MDBGOUNFNEUgLyogSWRlbnRpZmllclJlcC5oICovLAorCQkJCTU5QjU5NzcxMTEwODY1NTYwMDcx
NTlFOCAvKiBqc2MgKi8sCisJCQkJMUE1NjlDRTIwRDdFMkI4MjAwN0MzOTgzIC8qIG9iamMgKi8s
CiAJCQkJMUE1NjlDRUYwRDdFMkI4MjAwN0MzOTgzIC8qIHJ1bnRpbWVfYXJyYXkuY3BwICovLAog
CQkJCTFBNTY5Q0YwMEQ3RTJCODIwMDdDMzk4MyAvKiBydW50aW1lX2FycmF5LmggKi8sCiAJCQkJ
MUE1NjlDRjEwRDdFMkI4MjAwN0MzOTgzIC8qIHJ1bnRpbWVfbWV0aG9kLmNwcCAqLywKQEAgLTI1
ODY5LDYgKzI1ODcxLDggQEAKIAkJCQkwOEM5MjUxODBGQ0M3QzRBMDA0ODBERUMgLyogRmlsdGVy
RWZmZWN0LmggKi8sCiAJCQkJMkM4NTY1MzgyNEMxMEIwQjAwQTM3NjczIC8qIEZpbHRlckVmZmVj
dFJlbmRlcmVyLmNwcCAqLywKIAkJCQkyQzg1NjUzMzI0QzBGNzNDMDBBMzc2NzMgLyogRmlsdGVy
RWZmZWN0UmVuZGVyZXIuaCAqLywKKwkJCQk3MjYyRDc1NzI3MkExNzQxMDBDNTZBMDkgLyogRmls
dGVyRnVuY3Rpb24uY3BwICovLAorCQkJCTcyNjJENzU2MjcyQTE3NDEwMEM1NkEwOSAvKiBGaWx0
ZXJGdW5jdGlvbi5oICovLAogCQkJCTQ5RUNFQjYzMTQ5OTc5MEQwMENERDNBNCAvKiBGaWx0ZXJP
cGVyYXRpb24uY3BwICovLAogCQkJCTQ5RUNFQjY0MTQ5OTc5MEQwMENERDNBNCAvKiBGaWx0ZXJP
cGVyYXRpb24uaCAqLywKIAkJCQk0OUVDRUI2NTE0OTk3OTBEMDBDREQzQTQgLyogRmlsdGVyT3Bl
cmF0aW9ucy5jcHAgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jb3JlaW1hZ2UvRmlsdGVyRWZmZWN0UmVuZGVyZXJDb3JlSW1hZ2UubW0gYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb3JlaW1hZ2UvRmlsdGVyRWZmZWN0UmVuZGVyZXJD
b3JlSW1hZ2UubW0KaW5kZXggOTdlMTEzN2IyOWQ3MWMyYjU0NDE1NzMwNjcyNDAwYjgyNDI4YjM2
MS4uZmM2Zjg3ODg4NWViZDA0OTE3MjQ5NmIzN2M0MTQ3OTczNjI5NDQ5ZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29yZWltYWdlL0ZpbHRlckVmZmVjdFJl
bmRlcmVyQ29yZUltYWdlLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NvcmVpbWFnZS9GaWx0ZXJFZmZlY3RSZW5kZXJlckNvcmVJbWFnZS5tbQpAQCAtNzIsMTEgKzcy
LDExIEBAIHN0YXRpYyBib29sIGlzTnVsbE9yTGluZWFyQ29tcG9uZW50VHJhbnNmZXJGdW5jdGlv
bihjb25zdCBGRUNvbXBvbmVudFRyYW5zZmVyJiBlCiBib29sIEZpbHRlckVmZmVjdFJlbmRlcmVy
Q29yZUltYWdlOjpzdXBwb3J0c0NvcmVJbWFnZVJlbmRlcmluZyhGaWx0ZXJFZmZlY3QmIGVmZmVj
dCkKIHsKICAgICAvLyBGSVhNRTogY2hhbmdlIHJldHVybiB2YWx1ZSB0byB0cnVlIG9uY2UgdGhl
eSBhcmUgaW1wbGVtZW50ZWQKLSAgICBzd2l0Y2ggKGVmZmVjdC5maWx0ZXJFZmZlY3RDbGFzc1R5
cGUoKSkgeworICAgIHN3aXRjaCAoZWZmZWN0LmZpbHRlclR5cGUoKSkgewogICAgIGNhc2UgRmls
dGVyRWZmZWN0OjpUeXBlOjpTb3VyY2VHcmFwaGljOgogICAgICAgICByZXR1cm4gdHJ1ZTsKICAg
ICAgICAgICAgIAotICAgIGNhc2UgRmlsdGVyRWZmZWN0OjpUeXBlOjpDb2xvck1hdHJpeDogewor
ICAgIGNhc2UgRmlsdGVyRWZmZWN0OjpUeXBlOjpGRUNvbG9yTWF0cml4OiB7CiAgICAgICAgIHN3
aXRjaCAoZG93bmNhc3Q8RkVDb2xvck1hdHJpeD4oZWZmZWN0KS50eXBlKCkpIHsKICAgICAgICAg
Y2FzZSBGRUNPTE9STUFUUklYX1RZUEVfVU5LTk9XTjoKICAgICAgICAgY2FzZSBGRUNPTE9STUFU
UklYX1RZUEVfTFVNSU5BTkNFVE9BTFBIQToKQEAgLTg4LDI2ICs4OCwxMCBAQCBib29sIEZpbHRl
ckVmZmVjdFJlbmRlcmVyQ29yZUltYWdlOjpzdXBwb3J0c0NvcmVJbWFnZVJlbmRlcmluZyhGaWx0
ZXJFZmZlY3QmIGVmZgogICAgICAgICB9CiAgICAgfQogCi0gICAgY2FzZSBGaWx0ZXJFZmZlY3Q6
OlR5cGU6OkNvbXBvbmVudFRyYW5zZmVyOgorICAgIGNhc2UgRmlsdGVyRWZmZWN0OjpUeXBlOjpG
RUNvbXBvbmVudFRyYW5zZmVyOgogICAgICAgICByZXR1cm4gaXNOdWxsT3JMaW5lYXJDb21wb25l
bnRUcmFuc2ZlckZ1bmN0aW9uKGRvd25jYXN0PEZFQ29tcG9uZW50VHJhbnNmZXI+KGVmZmVjdCkp
OwogCi0gICAgY2FzZSBGaWx0ZXJFZmZlY3Q6OlR5cGU6OkJsZW5kOgotICAgIGNhc2UgRmlsdGVy
RWZmZWN0OjpUeXBlOjpDb21wb3NpdGU6Ci0gICAgY2FzZSBGaWx0ZXJFZmZlY3Q6OlR5cGU6OkNv
bnZvbHZlTWF0cml4OgotICAgIGNhc2UgRmlsdGVyRWZmZWN0OjpUeXBlOjpEaWZmdXNlTGlnaHRp
bmc6Ci0gICAgY2FzZSBGaWx0ZXJFZmZlY3Q6OlR5cGU6OkRpc3BsYWNlbWVudE1hcDoKLSAgICBj
YXNlIEZpbHRlckVmZmVjdDo6VHlwZTo6RHJvcFNoYWRvdzoKLSAgICBjYXNlIEZpbHRlckVmZmVj
dDo6VHlwZTo6Rmxvb2Q6Ci0gICAgY2FzZSBGaWx0ZXJFZmZlY3Q6OlR5cGU6OkdhdXNzaWFuQmx1
cjoKLSAgICBjYXNlIEZpbHRlckVmZmVjdDo6VHlwZTo6SW1hZ2U6Ci0gICAgY2FzZSBGaWx0ZXJF
ZmZlY3Q6OlR5cGU6OkxpZ2h0aW5nOgotICAgIGNhc2UgRmlsdGVyRWZmZWN0OjpUeXBlOjpNZXJn
ZToKLSAgICBjYXNlIEZpbHRlckVmZmVjdDo6VHlwZTo6TW9ycGhvbG9neToKLSAgICBjYXNlIEZp
bHRlckVmZmVjdDo6VHlwZTo6T2Zmc2V0OgotICAgIGNhc2UgRmlsdGVyRWZmZWN0OjpUeXBlOjpT
cGVjdWxhckxpZ2h0aW5nOgotICAgIGNhc2UgRmlsdGVyRWZmZWN0OjpUeXBlOjpUaWxlOgotICAg
IGNhc2UgRmlsdGVyRWZmZWN0OjpUeXBlOjpUdXJidWxlbmNlOgotICAgIGNhc2UgRmlsdGVyRWZm
ZWN0OjpUeXBlOjpTb3VyY2VBbHBoYToKKyAgICBkZWZhdWx0OgogICAgICAgICByZXR1cm4gZmFs
c2U7CiAgICAgfQogICAgIHJldHVybiBmYWxzZTsKQEAgLTEzNywzMiArMTIxLDE0IEBAIFJldGFp
blB0cjxDSUltYWdlPiBGaWx0ZXJFZmZlY3RSZW5kZXJlckNvcmVJbWFnZTo6Y29ubmVjdENJRmls
dGVycyhGaWx0ZXJFZmZlY3QmCiAgICAgaWYgKGVmZmVjdC5hYnNvbHV0ZVBhaW50UmVjdCgpLmlz
RW1wdHkoKSB8fCBJbWFnZUJ1ZmZlcjo6c2l6ZU5lZWRzQ2xhbXBpbmcoZWZmZWN0LmFic29sdXRl
UGFpbnRSZWN0KCkuc2l6ZSgpKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgCi0gICAg
c3dpdGNoIChlZmZlY3QuZmlsdGVyRWZmZWN0Q2xhc3NUeXBlKCkpIHsKKyAgICBzd2l0Y2ggKGVm
ZmVjdC5maWx0ZXJUeXBlKCkpIHsKICAgICBjYXNlIEZpbHRlckVmZmVjdDo6VHlwZTo6U291cmNl
R3JhcGhpYzoKICAgICAgICAgcmV0dXJuIGltYWdlRm9yU291cmNlR3JhcGhpYyhkb3duY2FzdDxT
b3VyY2VHcmFwaGljPihlZmZlY3QpKTsKLSAgICBjYXNlIEZpbHRlckVmZmVjdDo6VHlwZTo6Q29s
b3JNYXRyaXg6CisgICAgY2FzZSBGaWx0ZXJFZmZlY3Q6OlR5cGU6OkZFQ29sb3JNYXRyaXg6CiAg
ICAgICAgIHJldHVybiBpbWFnZUZvckZFQ29sb3JNYXRyaXgoZG93bmNhc3Q8RkVDb2xvck1hdHJp
eD4oZWZmZWN0KSwgaW5wdXRJbWFnZXMpOwotICAgIGNhc2UgRmlsdGVyRWZmZWN0OjpUeXBlOjpD
b21wb25lbnRUcmFuc2ZlcjoKKyAgICBjYXNlIEZpbHRlckVmZmVjdDo6VHlwZTo6RkVDb21wb25l
bnRUcmFuc2ZlcjoKICAgICAgICAgcmV0dXJuIGltYWdlRm9yRkVDb21wb25lbnRUcmFuc2Zlcihk
b3duY2FzdDxGRUNvbXBvbmVudFRyYW5zZmVyPihlZmZlY3QpLCBpbnB1dEltYWdlcyk7CiAKLSAg
ICAvLyBGSVhNRTogSW1wbGVtZW50IHRob3NlIGZpbHRlcnMgdXNpbmcgQ0lGaWx0ZXIgc28gdGhh
dCB0aGUgZnVuY3Rpb24gcmV0dXJucyBhIHZhbGlkIENJSW1hZ2UKLSAgICBjYXNlIEZpbHRlckVm
ZmVjdDo6VHlwZTo6QmxlbmQ6Ci0gICAgY2FzZSBGaWx0ZXJFZmZlY3Q6OlR5cGU6OkNvbXBvc2l0
ZToKLSAgICBjYXNlIEZpbHRlckVmZmVjdDo6VHlwZTo6Q29udm9sdmVNYXRyaXg6Ci0gICAgY2Fz
ZSBGaWx0ZXJFZmZlY3Q6OlR5cGU6OkRpZmZ1c2VMaWdodGluZzoKLSAgICBjYXNlIEZpbHRlckVm
ZmVjdDo6VHlwZTo6RGlzcGxhY2VtZW50TWFwOgotICAgIGNhc2UgRmlsdGVyRWZmZWN0OjpUeXBl
OjpEcm9wU2hhZG93OgotICAgIGNhc2UgRmlsdGVyRWZmZWN0OjpUeXBlOjpGbG9vZDoKLSAgICBj
YXNlIEZpbHRlckVmZmVjdDo6VHlwZTo6R2F1c3NpYW5CbHVyOgotICAgIGNhc2UgRmlsdGVyRWZm
ZWN0OjpUeXBlOjpJbWFnZToKLSAgICBjYXNlIEZpbHRlckVmZmVjdDo6VHlwZTo6TGlnaHRpbmc6
Ci0gICAgY2FzZSBGaWx0ZXJFZmZlY3Q6OlR5cGU6Ok1lcmdlOgotICAgIGNhc2UgRmlsdGVyRWZm
ZWN0OjpUeXBlOjpNb3JwaG9sb2d5OgotICAgIGNhc2UgRmlsdGVyRWZmZWN0OjpUeXBlOjpPZmZz
ZXQ6Ci0gICAgY2FzZSBGaWx0ZXJFZmZlY3Q6OlR5cGU6OlNwZWN1bGFyTGlnaHRpbmc6Ci0gICAg
Y2FzZSBGaWx0ZXJFZmZlY3Q6OlR5cGU6OlRpbGU6Ci0gICAgY2FzZSBGaWx0ZXJFZmZlY3Q6OlR5
cGU6OlR1cmJ1bGVuY2U6Ci0gICAgY2FzZSBGaWx0ZXJFZmZlY3Q6OlR5cGU6OlNvdXJjZUFscGhh
OgogICAgIGRlZmF1bHQ6CiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVCbGVuZC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQmxlbmQuY3BwCmlu
ZGV4IDVhYzdmNDkwZDRjZGE1MzNhNDFmNWMzZDg1NDUzMmMxOGFkY2RiNjYuLmI0Y2FlZDQ1NTU3
MmZjODVjZWQ4YTRmMjMxYzlmODMwMjdiYWZiMGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVCbGVuZC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUJsZW5kLmNwcApAQCAtMzUsNyArMzUsNyBA
QAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBGRUJsZW5kOjpGRUJsZW5kKEZpbHRlciYgZmlsdGVy
LCBCbGVuZE1vZGUgbW9kZSkKLSAgICA6IEZpbHRlckVmZmVjdChmaWx0ZXIsIFR5cGU6OkJsZW5k
KQorICAgIDogRmlsdGVyRWZmZWN0KGZpbHRlciwgRmlsdGVyRWZmZWN0OjpUeXBlOjpGRUJsZW5k
KQogICAgICwgbV9tb2RlKG1vZGUpCiB7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQmxlbmQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVCbGVuZC5oCmluZGV4IDcwZTg0MDdiZjVjMjAwZDQ1MjE2
YjhmOWMwODUxN2I1MDc5ZTc5NjYuLmI4NGM4ZGQyODA1OGZmNDVkNTRjZGY4YTczYTJiYTcxNzI1
ZmRlNWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRl
cnMvRkVCbGVuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRl
cnMvRkVCbGVuZC5oCkBAIC0zNiw4ICszNiw2IEBAIHB1YmxpYzoKICAgICBib29sIHNldEJsZW5k
TW9kZShCbGVuZE1vZGUpOwogCiBwcml2YXRlOgotICAgIGNvbnN0IGNoYXIqIGZpbHRlck5hbWUo
KSBjb25zdCBmaW5hbCB7IHJldHVybiAiRkVCbGVuZCI7IH0KLQogICAgIHZvaWQgcGxhdGZvcm1B
cHBseVNvZnR3YXJlKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBwbGF0Zm9ybUFwcGx5R2VuZXJpYyh1
bnNpZ25lZCBjaGFyKiBzcmNQaXhlbEFycmF5QSwgdW5zaWduZWQgY2hhciogc3JjUGl4ZWxBcnJh
eUIsIHVuc2lnbmVkIGNoYXIqIGRzdFBpeGVsQXJyYXksCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB1bnNpZ25lZCBjb2xvckFycmF5TGVuZ3RoKTsKQEAgLTUzLDMgKzUxLDQgQEAgcHJpdmF0
ZToKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCitTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0ZJ
TFRFUl9FRkZFQ1QoRkVCbGVuZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2ZpbHRlcnMvRkVDb2xvck1hdHJpeC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29sb3JNYXRyaXguY3BwCmluZGV4IDE2NDIyZDZkYzVi
NTdlYzZmNzQ3YTQyMTBjMjg1NDMzMmJhMWQzZTUuLmE3OTFiZDZkMzFmZDc1MDRhMTEzMjdmMWQ0
MWFjYmQzYTQ5ZTE5NTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2ZpbHRlcnMvRkVDb2xvck1hdHJpeC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbG9yTWF0cml4LmNwcApAQCAtMzYsNyArMzYsNyBAQAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCiBGRUNvbG9yTWF0cml4OjpGRUNvbG9yTWF0cml4KEZpbHRl
ciYgZmlsdGVyLCBDb2xvck1hdHJpeFR5cGUgdHlwZSwgVmVjdG9yPGZsb2F0PiYmIHZhbHVlcykK
LSAgICA6IEZpbHRlckVmZmVjdChmaWx0ZXIsIFR5cGU6OkNvbG9yTWF0cml4KQorICAgIDogRmls
dGVyRWZmZWN0KGZpbHRlciwgRmlsdGVyRWZmZWN0OjpUeXBlOjpGRUNvbG9yTWF0cml4KQogICAg
ICwgbV90eXBlKHR5cGUpCiAgICAgLCBtX3ZhbHVlcyhXVEZNb3ZlKHZhbHVlcykpCiB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29sb3JN
YXRyaXguaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb2xv
ck1hdHJpeC5oCmluZGV4IDI5ZTQxYThhZWQxZTRmMGI1Mzk3MDNhYzRkYjU1MjRlZmE0YzEyM2Yu
Ljk5MmU3NWY5ZTgxNTBjNjE3YTJlZjA3YzY1OTM2MTYwMDVlNDBmNDIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb2xvck1hdHJpeC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb2xvck1hdHJp
eC5oCkBAIC01Miw4ICs1Miw2IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgRkVDb2xvck1hdHJp
eChGaWx0ZXImLCBDb2xvck1hdHJpeFR5cGUsIFZlY3RvcjxmbG9hdD4mJik7CiAKLSAgICBjb25z
dCBjaGFyKiBmaWx0ZXJOYW1lKCkgY29uc3QgZmluYWwgeyByZXR1cm4gIkZFQ29sb3JNYXRyaXgi
OyB9Ci0KICAgICB2b2lkIHBsYXRmb3JtQXBwbHlTb2Z0d2FyZSgpIG92ZXJyaWRlOwogCiAgICAg
V1RGOjpUZXh0U3RyZWFtJiBleHRlcm5hbFJlcHJlc2VudGF0aW9uKFdURjo6VGV4dFN0cmVhbSYs
IFJlcHJlc2VudGF0aW9uVHlwZSkgY29uc3Qgb3ZlcnJpZGU7CkBAIC05Myw3ICs5MSw0IEBAIGlu
bGluZSB2b2lkIEZFQ29sb3JNYXRyaXg6OmNhbGN1bGF0ZUh1ZVJvdGF0ZUNvbXBvbmVudHMoZmxv
YXQqIGNvbXBvbmVudHMsIGZsb2F0CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAotU1BFQ0lB
TElaRV9UWVBFX1RSQUlUU19CRUdJTihXZWJDb3JlOjpGRUNvbG9yTWF0cml4KQotICAgIHN0YXRp
YyBib29sIGlzVHlwZShjb25zdCBXZWJDb3JlOjpGaWx0ZXJFZmZlY3QmIGVmZmVjdCkgeyByZXR1
cm4gZWZmZWN0LmZpbHRlckVmZmVjdENsYXNzVHlwZSgpID09IFdlYkNvcmU6OkZpbHRlckVmZmVj
dDo6VHlwZTo6Q29sb3JNYXRyaXg7IH0KLVNQRUNJQUxJWkVfVFlQRV9UUkFJVFNfRU5EKCkKLQor
U1BFQ0lBTElaRV9UWVBFX1RSQUlUU19GSUxURVJfRUZGRUNUKEZFQ29sb3JNYXRyaXgpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29tcG9u
ZW50VHJhbnNmZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVy
cy9GRUNvbXBvbmVudFRyYW5zZmVyLmNwcAppbmRleCA4NDdlYTU4ZjVmOWIwMzg2NmQ5ZWFjNTdm
MTBjY2Y1NzQwMmY5ZTYzLi5jZTAwY2MxOTgyOTc5YjQwOTQwNGQ1Y2ZkY2MwM2E2ZWQzMzVjM2Iy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZF
Q29tcG9uZW50VHJhbnNmZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2ZpbHRlcnMvRkVDb21wb25lbnRUcmFuc2Zlci5jcHAKQEAgLTMzLDkgKzMzLDggQEAKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCi1GRUNvbXBvbmVudFRyYW5zZmVyOjpGRUNvbXBvbmVudFRy
YW5zZmVyKEZpbHRlciYgZmlsdGVyLCBjb25zdCBDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uJiBy
ZWRGdW5jdGlvbiwKLSAgICBjb25zdCBDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uJiBncmVlbkZ1
bmN0aW9uLCBjb25zdCBDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uJiBibHVlRnVuY3Rpb24sIGNv
bnN0IENvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb24mIGFscGhhRnVuY3Rpb24pCi0gICAgOiBGaWx0
ZXJFZmZlY3QoZmlsdGVyLCBUeXBlOjpDb21wb25lbnRUcmFuc2ZlcikKK0ZFQ29tcG9uZW50VHJh
bnNmZXI6OkZFQ29tcG9uZW50VHJhbnNmZXIoRmlsdGVyJiBmaWx0ZXIsIGNvbnN0IENvbXBvbmVu
dFRyYW5zZmVyRnVuY3Rpb24mIHJlZEZ1bmN0aW9uLCBjb25zdCBDb21wb25lbnRUcmFuc2ZlckZ1
bmN0aW9uJiBncmVlbkZ1bmN0aW9uLCBjb25zdCBDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uJiBi
bHVlRnVuY3Rpb24sIGNvbnN0IENvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb24mIGFscGhhRnVuY3Rp
b24pCisgICAgOiBGaWx0ZXJFZmZlY3QoZmlsdGVyLCBGaWx0ZXJFZmZlY3Q6OlR5cGU6OkZFQ29t
cG9uZW50VHJhbnNmZXIpCiAgICAgLCBtX3JlZEZ1bmN0aW9uKHJlZEZ1bmN0aW9uKQogICAgICwg
bV9ncmVlbkZ1bmN0aW9uKGdyZWVuRnVuY3Rpb24pCiAgICAgLCBtX2JsdWVGdW5jdGlvbihibHVl
RnVuY3Rpb24pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9m
aWx0ZXJzL0ZFQ29tcG9uZW50VHJhbnNmZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2ZpbHRlcnMvRkVDb21wb25lbnRUcmFuc2Zlci5oCmluZGV4IDJiNTg2ZGVmN2ZiNDJh
MzdiMmUxMjNlZGE4NzExOWM0ZWIzNDhhNTEuLjNiOWQyNjA4YjA5NzRkODI1NWVjYWE0MmE4M2My
YWZkZjYzOGEzZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2ZpbHRlcnMvRkVDb21wb25lbnRUcmFuc2Zlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb21wb25lbnRUcmFuc2Zlci5oCkBAIC02NSw4ICs2NSw2
IEBAIHByaXZhdGU6CiAgICAgRkVDb21wb25lbnRUcmFuc2ZlcihGaWx0ZXImLCBjb25zdCBDb21w
b25lbnRUcmFuc2ZlckZ1bmN0aW9uJiByZWRGdW5jLCBjb25zdCBDb21wb25lbnRUcmFuc2ZlckZ1
bmN0aW9uJiBncmVlbkZ1bmMsCiAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBDb21wb25l
bnRUcmFuc2ZlckZ1bmN0aW9uJiBibHVlRnVuYywgY29uc3QgQ29tcG9uZW50VHJhbnNmZXJGdW5j
dGlvbiYgYWxwaGFGdW5jKTsKIAotICAgICBjb25zdCBjaGFyKiBmaWx0ZXJOYW1lKCkgY29uc3Qg
ZmluYWwgeyByZXR1cm4gIkZFQ29tcG9uZW50VHJhbnNmZXIiOyB9Ci0KICAgICB1c2luZyBMb29r
dXBUYWJsZSA9IHN0ZDo6YXJyYXk8dWludDhfdCwgMjU2PjsKIAogICAgIHN0YXRpYyB2b2lkIGNv
bXB1dGVJZGVudGl0eVRhYmxlKExvb2t1cFRhYmxlJiwgY29uc3QgQ29tcG9uZW50VHJhbnNmZXJG
dW5jdGlvbiYpOwpAQCAtODksNiArODcsNCBAQCBwcml2YXRlOgogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCiAKLVNQRUNJQUxJWkVfVFlQRV9UUkFJVFNfQkVHSU4oV2ViQ29yZTo6RkVDb21wb25l
bnRUcmFuc2ZlcikKLSAgICBzdGF0aWMgYm9vbCBpc1R5cGUoY29uc3QgV2ViQ29yZTo6RmlsdGVy
RWZmZWN0JiBlZmZlY3QpIHsgcmV0dXJuIGVmZmVjdC5maWx0ZXJFZmZlY3RDbGFzc1R5cGUoKSA9
PSBXZWJDb3JlOjpGaWx0ZXJFZmZlY3Q6OlR5cGU6OkNvbXBvbmVudFRyYW5zZmVyOyB9Ci1TUEVD
SUFMSVpFX1RZUEVfVFJBSVRTX0VORCgpCitTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0ZJTFRFUl9F
RkZFQ1QoRkVDb21wb25lbnRUcmFuc2ZlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb21wb3NpdGUuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbXBvc2l0ZS5jcHAKaW5kZXggODMzNTMwOTA4
MWEyNmJhMmMzMWMzYmRhYzg4ODY2OWUyOGUzNDU2ZC4uZTBiZWYzMDc0MDVmZjIzM2U4YTJhZmI1
Y2JlYzhkNTQ4ZDIyNzgwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZmlsdGVycy9GRUNvbXBvc2l0ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbXBvc2l0ZS5jcHAKQEAgLTMzLDcgKzMzLDcgQEAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAogRkVDb21wb3NpdGU6OkZFQ29tcG9zaXRlKEZpbHRlciYgZmls
dGVyLCBjb25zdCBDb21wb3NpdGVPcGVyYXRpb25UeXBlJiB0eXBlLCBmbG9hdCBrMSwgZmxvYXQg
azIsIGZsb2F0IGszLCBmbG9hdCBrNCkKLSAgICA6IEZpbHRlckVmZmVjdChmaWx0ZXIsIFR5cGU6
OkNvbXBvc2l0ZSkKKyAgICA6IEZpbHRlckVmZmVjdChmaWx0ZXIsIEZpbHRlckVmZmVjdDo6VHlw
ZTo6RkVDb21wb3NpdGUpCiAgICAgLCBtX3R5cGUodHlwZSkKICAgICAsIG1fazEoazEpCiAgICAg
LCBtX2syKGsyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZmlsdGVycy9GRUNvbXBvc2l0ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZmlsdGVycy9GRUNvbXBvc2l0ZS5oCmluZGV4IDdkMDhlMWY3MTA3YjRiOTY4YzU4ZTNhMzdjMzJh
ZTJmNzZhZWEwYzMuLjM5MjM3ZmViMTI3YWQxZmYxZGUyMTgzNGJkN2IyYjczN2ZhYWYzMmQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb21w
b3NpdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZF
Q29tcG9zaXRlLmgKQEAgLTY0LDggKzY0LDYgQEAgcHJvdGVjdGVkOgogcHJpdmF0ZToKICAgICBG
RUNvbXBvc2l0ZShGaWx0ZXImLCBjb25zdCBDb21wb3NpdGVPcGVyYXRpb25UeXBlJiwgZmxvYXQs
IGZsb2F0LCBmbG9hdCwgZmxvYXQpOwogCi0gICAgY29uc3QgY2hhciogZmlsdGVyTmFtZSgpIGNv
bnN0IGZpbmFsIHsgcmV0dXJuICJGRUNvbXBvc2l0ZSI7IH0KLQogICAgIHZvaWQgY29ycmVjdEZp
bHRlclJlc3VsdElmTmVlZGVkKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBkZXRlcm1pbmVBYnNvbHV0
ZVBhaW50UmVjdCgpIG92ZXJyaWRlOwogCkBAIC05MCwzICs4OCw0IEBAIHByaXZhdGU6CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKIAorU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19GSUxURVJfRUZG
RUNUKEZFQ29tcG9zaXRlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZmlsdGVycy9GRUNvbnZvbHZlTWF0cml4LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb252b2x2ZU1hdHJpeC5jcHAKaW5kZXggM2JiZTc4MzU5
OGQ3MDkzNWE5NWM2ZjE1NmVjMjkzM2MwZTk5ZjA1MC4uODBiNGM4OTI5NTIwZmEwNTdjN2M1MmQy
Y2Q3YmJiNGU5OGVjNTU2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZmlsdGVycy9GRUNvbnZvbHZlTWF0cml4LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29udm9sdmVNYXRyaXguY3BwCkBAIC0zMiwxMCAr
MzIsOCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLUZFQ29udm9sdmVNYXRyaXg6OkZFQ29u
dm9sdmVNYXRyaXgoRmlsdGVyJiBmaWx0ZXIsIGNvbnN0IEludFNpemUmIGtlcm5lbFNpemUsCi0g
ICAgZmxvYXQgZGl2aXNvciwgZmxvYXQgYmlhcywgY29uc3QgSW50UG9pbnQmIHRhcmdldE9mZnNl
dCwgRWRnZU1vZGVUeXBlIGVkZ2VNb2RlLAotICAgIGNvbnN0IEZsb2F0UG9pbnQmIGtlcm5lbFVu
aXRMZW5ndGgsIGJvb2wgcHJlc2VydmVBbHBoYSwgY29uc3QgVmVjdG9yPGZsb2F0PiYga2VybmVs
TWF0cml4KQotICAgIDogRmlsdGVyRWZmZWN0KGZpbHRlciwgVHlwZTo6Q29udm9sdmVNYXRyaXgp
CitGRUNvbnZvbHZlTWF0cml4OjpGRUNvbnZvbHZlTWF0cml4KEZpbHRlciYgZmlsdGVyLCBjb25z
dCBJbnRTaXplJiBrZXJuZWxTaXplLCBmbG9hdCBkaXZpc29yLCBmbG9hdCBiaWFzLCBjb25zdCBJ
bnRQb2ludCYgdGFyZ2V0T2Zmc2V0LCBFZGdlTW9kZVR5cGUgZWRnZU1vZGUsIGNvbnN0IEZsb2F0
UG9pbnQmIGtlcm5lbFVuaXRMZW5ndGgsIGJvb2wgcHJlc2VydmVBbHBoYSwgY29uc3QgVmVjdG9y
PGZsb2F0PiYga2VybmVsTWF0cml4KQorICAgIDogRmlsdGVyRWZmZWN0KGZpbHRlciwgRmlsdGVy
RWZmZWN0OjpUeXBlOjpGRUNvbnZvbHZlTWF0cml4KQogICAgICwgbV9rZXJuZWxTaXplKGtlcm5l
bFNpemUpCiAgICAgLCBtX2Rpdmlzb3IoZGl2aXNvcikKICAgICAsIG1fYmlhcyhiaWFzKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbnZv
bHZlTWF0cml4LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZF
Q29udm9sdmVNYXRyaXguaAppbmRleCA2N2Q0YzY1NjdmY2U2YjI3ZWU1YWI4OTVhNmUxZTUwMDU0
ZTEzZGJhLi5jMWE1YzViODY3NTYyZjI2YWY4MDdkNDVjNWI0MDA5NmRiMWNmZmZhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29udm9sdmVN
YXRyaXguaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZF
Q29udm9sdmVNYXRyaXguaApAQCAtODAsOCArODAsNiBAQCBwcml2YXRlOgogICAgIEZFQ29udm9s
dmVNYXRyaXgoRmlsdGVyJiwgY29uc3QgSW50U2l6ZSYsIGZsb2F0LCBmbG9hdCwKICAgICAgICAg
ICAgIGNvbnN0IEludFBvaW50JiwgRWRnZU1vZGVUeXBlLCBjb25zdCBGbG9hdFBvaW50JiwgYm9v
bCwgY29uc3QgVmVjdG9yPGZsb2F0PiYpOwogCi0gICAgY29uc3QgY2hhciogZmlsdGVyTmFtZSgp
IGNvbnN0IGZpbmFsIHsgcmV0dXJuICJGRUNvbnZvbHZlTWF0cml4IjsgfQotCiAgICAgdm9pZCBk
ZXRlcm1pbmVBYnNvbHV0ZVBhaW50UmVjdCgpIG92ZXJyaWRlIHsgc2V0QWJzb2x1dGVQYWludFJl
Y3QoZW5jbG9zaW5nSW50UmVjdChtYXhFZmZlY3RSZWN0KCkpKTsgfQogCiAgICAgdm9pZCBwbGF0
Zm9ybUFwcGx5U29mdHdhcmUoKSBvdmVycmlkZTsKQEAgLTExNSwzICsxMTMsNCBAQCBwcml2YXRl
OgogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKK1NQRUNJQUxJWkVfVFlQRV9UUkFJVFNfRklM
VEVSX0VGRkVDVChGRUNvbnZvbHZlTWF0cml4KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRURpZmZ1c2VMaWdodGluZy5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRGlmZnVzZUxpZ2h0aW5nLmNwcApp
bmRleCBlZWIxNzI4ZGIzNWU4YWMzMDJiMjdlNGMzZmYzNGNiODg1NWI5ZDA5Li40NGUyZTYyMTRh
Mzc2YTRkYTFlZTc3M2NkZDQxNzY1Nzc0MDliMWUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRGlmZnVzZUxpZ2h0aW5nLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRGlmZnVzZUxpZ2h0aW5n
LmNwcApAQCAtMjgsNyArMjgsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBGRURpZmZ1c2VM
aWdodGluZzo6RkVEaWZmdXNlTGlnaHRpbmcoRmlsdGVyJiBmaWx0ZXIsIGNvbnN0IENvbG9yJiBs
aWdodGluZ0NvbG9yLCBmbG9hdCBzdXJmYWNlU2NhbGUsIGZsb2F0IGRpZmZ1c2VDb25zdGFudCwg
ZmxvYXQga2VybmVsVW5pdExlbmd0aFgsIGZsb2F0IGtlcm5lbFVuaXRMZW5ndGhZLCBSZWY8TGln
aHRTb3VyY2U+JiYgbGlnaHRTb3VyY2UpCi0gICAgOiBGRUxpZ2h0aW5nKGZpbHRlciwgRGlmZnVz
ZUxpZ2h0aW5nLCBsaWdodGluZ0NvbG9yLCBzdXJmYWNlU2NhbGUsIGRpZmZ1c2VDb25zdGFudCwg
MCwgMCwga2VybmVsVW5pdExlbmd0aFgsIGtlcm5lbFVuaXRMZW5ndGhZLCBXVEZNb3ZlKGxpZ2h0
U291cmNlKSwgVHlwZTo6RGlmZnVzZUxpZ2h0aW5nKQorICAgIDogRkVMaWdodGluZyhmaWx0ZXIs
IERpZmZ1c2VMaWdodGluZywgbGlnaHRpbmdDb2xvciwgc3VyZmFjZVNjYWxlLCBkaWZmdXNlQ29u
c3RhbnQsIDAsIDAsIGtlcm5lbFVuaXRMZW5ndGhYLCBrZXJuZWxVbml0TGVuZ3RoWSwgV1RGTW92
ZShsaWdodFNvdXJjZSksIEZpbHRlckVmZmVjdDo6VHlwZTo6RkVEaWZmdXNlTGlnaHRpbmcpCiB7
CiB9CiAKQEAgLTM3LDggKzM3LDYgQEAgUmVmPEZFRGlmZnVzZUxpZ2h0aW5nPiBGRURpZmZ1c2VM
aWdodGluZzo6Y3JlYXRlKEZpbHRlciYgZmlsdGVyLCBjb25zdCBDb2xvciYgbGkKICAgICByZXR1
cm4gYWRvcHRSZWYoKm5ldyBGRURpZmZ1c2VMaWdodGluZyhmaWx0ZXIsIGxpZ2h0aW5nQ29sb3Is
IHN1cmZhY2VTY2FsZSwgZGlmZnVzZUNvbnN0YW50LCBrZXJuZWxVbml0TGVuZ3RoWCwga2VybmVs
VW5pdExlbmd0aFksIFdURk1vdmUobGlnaHRTb3VyY2UpKSk7CiB9CiAKLUZFRGlmZnVzZUxpZ2h0
aW5nOjp+RkVEaWZmdXNlTGlnaHRpbmcoKSA9IGRlZmF1bHQ7Ci0KIGJvb2wgRkVEaWZmdXNlTGln
aHRpbmc6OnNldERpZmZ1c2VDb25zdGFudChmbG9hdCBkaWZmdXNlQ29uc3RhbnQpCiB7CiAgICAg
aWYgKG1fZGlmZnVzZUNvbnN0YW50ID09IGRpZmZ1c2VDb25zdGFudCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVEaWZmdXNlTGlnaHRpbmcu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVEaWZmdXNlTGln
aHRpbmcuaAppbmRleCBkZjYxMTRkMGZiOGUyZjNlMTEyOGI4NDI2MTVlNDc1MTNhMGRkZGMzLi4y
NzM3ZjYwZjRjM2Y0YjM2MjRkZjgwZWJiOTk4MzdiYTY1OWZhMGJlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRGlmZnVzZUxpZ2h0aW5nLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRURpZmZ1c2VM
aWdodGluZy5oCkBAIC0zMCw3ICszMCw2IEBAIGNsYXNzIExpZ2h0U291cmNlOwogY2xhc3MgRkVE
aWZmdXNlTGlnaHRpbmcgOiBwdWJsaWMgRkVMaWdodGluZyB7CiBwdWJsaWM6CiAgICAgc3RhdGlj
IFJlZjxGRURpZmZ1c2VMaWdodGluZz4gY3JlYXRlKEZpbHRlciYsIGNvbnN0IENvbG9yJiwgZmxv
YXQsIGZsb2F0LCBmbG9hdCwgZmxvYXQsIFJlZjxMaWdodFNvdXJjZT4mJik7Ci0gICAgdmlydHVh
bCB+RkVEaWZmdXNlTGlnaHRpbmcoKTsKIAogICAgIGZsb2F0IGRpZmZ1c2VDb25zdGFudCgpIGNv
bnN0IHsgcmV0dXJuIG1fZGlmZnVzZUNvbnN0YW50OyB9CiAgICAgYm9vbCBzZXREaWZmdXNlQ29u
c3RhbnQoZmxvYXQpOwpAQCAtNDMsMyArNDIsNCBAQCBwcml2YXRlOgogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCiAKK1NQRUNJQUxJWkVfVFlQRV9UUkFJVFNfRklMVEVSX0VGRkVDVChGRURpZmZ1
c2VMaWdodGluZykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2ZpbHRlcnMvRkVEaXNwbGFjZW1lbnRNYXAuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZmlsdGVycy9GRURpc3BsYWNlbWVudE1hcC5jcHAKaW5kZXggMDQ3NDkzMzkyYmIy
ODE0NmQ4YjE2OWJhMGE3YzMyYjE2YzU2M2ZhMS4uNDZiNzdjODVhMWNmOGQ0ODVjMDVjMzE1NzMz
OWUwYmI0YWViZTU4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZmlsdGVycy9GRURpc3BsYWNlbWVudE1hcC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRURpc3BsYWNlbWVudE1hcC5jcHAKQEAgLTMyLDcgKzMy
LDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogRkVEaXNwbGFjZW1lbnRNYXA6OkZFRGlzcGxh
Y2VtZW50TWFwKEZpbHRlciYgZmlsdGVyLCBDaGFubmVsU2VsZWN0b3JUeXBlIHhDaGFubmVsU2Vs
ZWN0b3IsIENoYW5uZWxTZWxlY3RvclR5cGUgeUNoYW5uZWxTZWxlY3RvciwgZmxvYXQgc2NhbGUp
Ci0gICAgOiBGaWx0ZXJFZmZlY3QoZmlsdGVyLCBUeXBlOjpEaXNwbGFjZW1lbnRNYXApCisgICAg
OiBGaWx0ZXJFZmZlY3QoZmlsdGVyLCBGaWx0ZXJFZmZlY3Q6OlR5cGU6OkZFRGlzcGxhY2VtZW50
TWFwKQogICAgICwgbV94Q2hhbm5lbFNlbGVjdG9yKHhDaGFubmVsU2VsZWN0b3IpCiAgICAgLCBt
X3lDaGFubmVsU2VsZWN0b3IoeUNoYW5uZWxTZWxlY3RvcikKICAgICAsIG1fc2NhbGUoc2NhbGUp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZF
RGlzcGxhY2VtZW50TWFwLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0
ZXJzL0ZFRGlzcGxhY2VtZW50TWFwLmgKaW5kZXggZGQ3MzJhODgxMDczZTI2NmJjODQ2YWZlNjgx
OWU2NzUxNjIzYTNhMi4uYWE1YjZkNDZiYzQ2NGZjNmQwNjBkODZhZjZiYWUwZWYwN2VjOWU4ZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRURp
c3BsYWNlbWVudE1hcC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Zp
bHRlcnMvRkVEaXNwbGFjZW1lbnRNYXAuaApAQCAtNTQsOCArNTQsNiBAQCBwdWJsaWM6CiBwcml2
YXRlOgogICAgIEZFRGlzcGxhY2VtZW50TWFwKEZpbHRlciYsIENoYW5uZWxTZWxlY3RvclR5cGUg
eENoYW5uZWxTZWxlY3RvciwgQ2hhbm5lbFNlbGVjdG9yVHlwZSB5Q2hhbm5lbFNlbGVjdG9yLCBm
bG9hdCk7CiAKLSAgICBjb25zdCBjaGFyKiBmaWx0ZXJOYW1lKCkgY29uc3QgZmluYWwgeyByZXR1
cm4gIkZFRGlzcGxhY2VtZW50TWFwIjsgfQotCiAgICAgdm9pZCBwbGF0Zm9ybUFwcGx5U29mdHdh
cmUoKSBvdmVycmlkZTsKIAogICAgIHZvaWQgZGV0ZXJtaW5lQWJzb2x1dGVQYWludFJlY3QoKSBv
dmVycmlkZSB7IHNldEFic29sdXRlUGFpbnRSZWN0KGVuY2xvc2luZ0ludFJlY3QobWF4RWZmZWN0
UmVjdCgpKSk7IH0KQEAgLTcyLDMgKzcwLDQgQEAgcHJpdmF0ZToKIAogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQogCitTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0ZJTFRFUl9FRkZFQ1QoRkVEaXNwbGFj
ZW1lbnRNYXApCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9m
aWx0ZXJzL0ZFRHJvcFNoYWRvdy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9maWx0ZXJzL0ZFRHJvcFNoYWRvdy5jcHAKaW5kZXggMzVmYmFiNDFlODA5MjE2ZTRiMjI0MzUx
MTg2MjNlMjhmZmQ2MWVmYS4uNzNmYjc0MDE3NzRhM2NkNjg3YjUzODc2M2RiYjNkNmQxYjRhZjU0
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9G
RURyb3BTaGFkb3cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Zp
bHRlcnMvRkVEcm9wU2hhZG93LmNwcApAQCAtMzIsNyArMzIsNyBAQAogbmFtZXNwYWNlIFdlYkNv
cmUgewogICAgIAogRkVEcm9wU2hhZG93OjpGRURyb3BTaGFkb3coRmlsdGVyJiBmaWx0ZXIsIGZs
b2F0IHN0ZFgsIGZsb2F0IHN0ZFksIGZsb2F0IGR4LCBmbG9hdCBkeSwgY29uc3QgQ29sb3ImIHNo
YWRvd0NvbG9yLCBmbG9hdCBzaGFkb3dPcGFjaXR5KQotICAgIDogRmlsdGVyRWZmZWN0KGZpbHRl
ciwgVHlwZTo6RHJvcFNoYWRvdykKKyAgICA6IEZpbHRlckVmZmVjdChmaWx0ZXIsIEZpbHRlckVm
ZmVjdDo6VHlwZTo6RkVEcm9wU2hhZG93KQogICAgICwgbV9zdGRYKHN0ZFgpCiAgICAgLCBtX3N0
ZFkoc3RkWSkKICAgICAsIG1fZHgoZHgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRHJvcFNoYWRvdy5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRURyb3BTaGFkb3cuaAppbmRleCBiNGUwYTIwMTJmZWRi
N2I3N2JmM2UwNTczNGVlODhhMjllZmYzODRjLi4yYjZlNjYxM2I1YWUxNzg0YTcxMDJkNTQ2ZGRi
YmNiZDYxMzg1OGZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9maWx0ZXJzL0ZFRHJvcFNoYWRvdy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2ZpbHRlcnMvRkVEcm9wU2hhZG93LmgKQEAgLTUwLDggKzUwLDYgQEAgcHVibGljOgog
cHJpdmF0ZToKICAgICBGRURyb3BTaGFkb3coRmlsdGVyJiwgZmxvYXQsIGZsb2F0LCBmbG9hdCwg
ZmxvYXQsIGNvbnN0IENvbG9yJiwgZmxvYXQpOwogCi0gICAgY29uc3QgY2hhciogZmlsdGVyTmFt
ZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICJGRURyb3BTaGFkb3ciOyB9Ci0KICAgICB2b2lkIHBs
YXRmb3JtQXBwbHlTb2Z0d2FyZSgpIG92ZXJyaWRlOwogCiAgICAgdm9pZCBkZXRlcm1pbmVBYnNv
bHV0ZVBhaW50UmVjdCgpIG92ZXJyaWRlOwpAQCAtNzAsMyArNjgsNCBAQCBwcml2YXRlOgogICAg
IAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCitTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0ZJTFRF
Ul9FRkZFQ1QoRkVEcm9wU2hhZG93KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZmlsdGVycy9GRUZsb29kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2ZpbHRlcnMvRkVGbG9vZC5jcHAKaW5kZXggYjQyMzU1MzRjMzhiMWViYTIxMWVl
ODQ4NjE3OTkyMzgwZjNiNmIwMS4uYTc4NDIxOTY3NGUxYWU5Nzk5MzQ0MzhkYTU0YTFhNzFjOTgw
NDg0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVy
cy9GRUZsb29kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0
ZXJzL0ZFRmxvb2QuY3BwCkBAIC0zMSw3ICszMSw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
IEZFRmxvb2Q6OkZFRmxvb2QoRmlsdGVyJiBmaWx0ZXIsIGNvbnN0IENvbG9yJiBmbG9vZENvbG9y
LCBmbG9hdCBmbG9vZE9wYWNpdHkpCi0gICAgOiBGaWx0ZXJFZmZlY3QoZmlsdGVyLCBUeXBlOjpG
bG9vZCkKKyAgICA6IEZpbHRlckVmZmVjdChmaWx0ZXIsIEZpbHRlckVmZmVjdDo6VHlwZTo6RkVG
bG9vZCkKICAgICAsIG1fZmxvb2RDb2xvcihmbG9vZENvbG9yKQogICAgICwgbV9mbG9vZE9wYWNp
dHkoZmxvb2RPcGFjaXR5KQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZmlsdGVycy9GRUZsb29kLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9maWx0ZXJzL0ZFRmxvb2QuaAppbmRleCBiNzA0ZGM5NjljNmQ3NTg4YmNlYjBhZDhiMjQ2
ODJmYTA2MTczNDhlLi4wOGE0ZTk1OTM1ODVkMmZhMDcyNjg0ZDQ1ZDVmODkzMGYzYWVlZjBhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRmxv
b2QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRmxv
b2QuaApAQCAtNDcsOCArNDcsNiBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIEZFRmxvb2QoRmls
dGVyJiwgY29uc3QgQ29sb3ImLCBmbG9hdCk7CiAKLSAgICBjb25zdCBjaGFyKiBmaWx0ZXJOYW1l
KCkgY29uc3QgZmluYWwgeyByZXR1cm4gIkZFRmxvb2QiOyB9Ci0KICAgICB2b2lkIHBsYXRmb3Jt
QXBwbHlTb2Z0d2FyZSgpIG92ZXJyaWRlOwogCiAgICAgdm9pZCBkZXRlcm1pbmVBYnNvbHV0ZVBh
aW50UmVjdCgpIG92ZXJyaWRlIHsgc2V0QWJzb2x1dGVQYWludFJlY3QoZW5jbG9zaW5nSW50UmVj
dChtYXhFZmZlY3RSZWN0KCkpKTsgfQpAQCAtNjEsMyArNTksNCBAQCBwcml2YXRlOgogCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCiAKK1NQRUNJQUxJWkVfVFlQRV9UUkFJVFNfRklMVEVSX0VGRkVD
VChGRUZsb29kKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZmlsdGVycy9GRUdhdXNzaWFuQmx1ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9maWx0ZXJzL0ZFR2F1c3NpYW5CbHVyLmNwcAppbmRleCAwZjZlZTg3Zjk1ZTc1NzUxODYz
ZmQyZTVmNTQ5ZTc0ZDk3MjlkYjFmLi4yZGZhMWYzNGRiOTAzMDI1YzY3MGE4ZGM3MGZhODc5Yjc4
MGQzMzgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0
ZXJzL0ZFR2F1c3NpYW5CbHVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9maWx0ZXJzL0ZFR2F1c3NpYW5CbHVyLmNwcApAQCAtODAsNyArODAsNyBAQCBpbmxpbmUg
dm9pZCBrZXJuZWxQb3NpdGlvbihpbnQgYmx1ckl0ZXJhdGlvbiwgdW5zaWduZWQmIHJhZGl1cywg
aW50JiBkZWx0YUxlZnQsCiB9CiAKIEZFR2F1c3NpYW5CbHVyOjpGRUdhdXNzaWFuQmx1cihGaWx0
ZXImIGZpbHRlciwgZmxvYXQgeCwgZmxvYXQgeSwgRWRnZU1vZGVUeXBlIGVkZ2VNb2RlKQotICAg
IDogRmlsdGVyRWZmZWN0KGZpbHRlciwgVHlwZTo6R2F1c3NpYW5CbHVyKQorICAgIDogRmlsdGVy
RWZmZWN0KGZpbHRlciwgRmlsdGVyRWZmZWN0OjpUeXBlOjpGRUdhdXNzaWFuQmx1cikKICAgICAs
IG1fc3RkWCh4KQogICAgICwgbV9zdGRZKHkpCiAgICAgLCBtX2VkZ2VNb2RlKGVkZ2VNb2RlKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUdh
dXNzaWFuQmx1ci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9G
RUdhdXNzaWFuQmx1ci5oCmluZGV4IGFkN2Q5NTBiOWI3MjNkYzc0NDY0OWNiYWYwMGE5MTMwYTNi
MWQ3MGUuLjc0M2I2NTE1ZGUzZjQ2MjUwODMxZGRjMzI2NjI1MmRhYjhmYjFmMDQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVHYXVzc2lhbkJs
dXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFR2F1
c3NpYW5CbHVyLmgKQEAgLTQ3LDggKzQ3LDYgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBGRUdh
dXNzaWFuQmx1cihGaWx0ZXImLCBmbG9hdCwgZmxvYXQsIEVkZ2VNb2RlVHlwZSk7CiAKLSAgICBj
b25zdCBjaGFyKiBmaWx0ZXJOYW1lKCkgY29uc3QgZmluYWwgeyByZXR1cm4gIkZFR2F1c3NpYW5C
bHVyIjsgfQotCiAgICAgc3RhdGljIGNvbnN0IGludCBzX21pbmltYWxSZWN0RGltZW5zaW9uID0g
MTAwICogMTAwOyAvLyBFbXBpcmljYWwgZGF0YSBsaW1pdCBmb3IgcGFyYWxsZWwgam9icwogCiAg
ICAgc3RydWN0IFBsYXRmb3JtQXBwbHlQYXJhbWV0ZXJzIHsKQEAgLTgwLDMgKzc4LDQgQEAgcHJp
dmF0ZToKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCitTUEVDSUFMSVpFX1RZUEVfVFJBSVRT
X0ZJTFRFUl9FRkZFQ1QoRkVHYXVzc2lhbkJsdXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFTGlnaHRpbmcuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVMaWdodGluZy5oCmluZGV4IGIwYmI3MGExNGQx
NzQ5NTA2NzM3ZTg4ZTA1MTRlZTc5NjgyMGE0NDkuLjAxZjQ0MmI0MDAzM2ZmYTNmNzA3NTcwYTRh
MzM0MDMzYmU2YzJiODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2ZpbHRlcnMvRkVMaWdodGluZy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2ZpbHRlcnMvRkVMaWdodGluZy5oCkBAIC0xMzAsOCArMTMwLDYgQEAgcHJvdGVjdGVk
OgogCiAgICAgRkVMaWdodGluZyhGaWx0ZXImLCBMaWdodGluZ1R5cGUsIGNvbnN0IENvbG9yJiwg
ZmxvYXQsIGZsb2F0LCBmbG9hdCwgZmxvYXQsIGZsb2F0LCBmbG9hdCwgUmVmPExpZ2h0U291cmNl
PiYmLCBUeXBlKTsKIAotICAgIGNvbnN0IGNoYXIqIGZpbHRlck5hbWUoKSBjb25zdCBmaW5hbCB7
IHJldHVybiAiRkVMaWdodGluZyI7IH0KLQogICAgIGJvb2wgZHJhd0xpZ2h0aW5nKFVpbnQ4Q2xh
bXBlZEFycmF5JiwgaW50LCBpbnQpOwogCiAgICAgdm9pZCBzZXRQaXhlbChpbnQgb2Zmc2V0LCBj
b25zdCBMaWdodGluZ0RhdGEmLCBjb25zdCBMaWdodFNvdXJjZTo6UGFpbnRpbmdEYXRhJiwgaW50
IHgsIGludCB5LCBmbG9hdCBmYWN0b3JYLCBmbG9hdCBmYWN0b3JZLCBJbnRTaXplIG5vcm1hbFZl
Y3Rvcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0
ZXJzL0ZFTWVyZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVy
cy9GRU1lcmdlLmNwcAppbmRleCAwYTIwMDAxYjE3M2JkOGZkZjZiYmE2MzZjZDIzY2U0NzAyNmU3
YjNmLi42OTdkMmUxNWNjYmYxYWVmZWQwZTg5ZmRhMzRlNzAzMjkzMDdmNzNjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFTWVyZ2UuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVNZXJnZS5jcHAK
QEAgLTI5LDcgKzI5LDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogRkVNZXJnZTo6RkVNZXJn
ZShGaWx0ZXImIGZpbHRlcikKLSAgICA6IEZpbHRlckVmZmVjdChmaWx0ZXIsIFR5cGU6Ok1lcmdl
KQorICAgIDogRmlsdGVyRWZmZWN0KGZpbHRlciwgRmlsdGVyRWZmZWN0OjpUeXBlOjpGRU1lcmdl
KQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9m
aWx0ZXJzL0ZFTWVyZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRl
cnMvRkVNZXJnZS5oCmluZGV4IDVjZmM1Y2I3OTgxOWNlY2VkNTA3M2U1N2IwMTk0ZWJjZjE4ZjI2
MDcuLjI3NTBjNGQ1MjRkM2EwZjVhZTk3NDFmNjQ4MDQ0OTQ1MzQ1ZDFhYjEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVNZXJnZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVNZXJnZS5oCkBAIC0z
Myw4ICszMyw2IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgRkVNZXJnZShGaWx0ZXImKTsKIAot
ICAgIGNvbnN0IGNoYXIqIGZpbHRlck5hbWUoKSBjb25zdCBmaW5hbCB7IHJldHVybiAiRkVNZXJn
ZSI7IH0KLQogICAgIHZvaWQgcGxhdGZvcm1BcHBseVNvZnR3YXJlKCkgb3ZlcnJpZGU7CiAKICAg
ICBXVEY6OlRleHRTdHJlYW0mIGV4dGVybmFsUmVwcmVzZW50YXRpb24oV1RGOjpUZXh0U3RyZWFt
JiwgUmVwcmVzZW50YXRpb25UeXBlKSBjb25zdCBvdmVycmlkZTsKQEAgLTQyLDMgKzQwLDQgQEAg
cHJpdmF0ZToKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCitTUEVDSUFMSVpFX1RZUEVfVFJB
SVRTX0ZJTFRFUl9FRkZFQ1QoRkVNZXJnZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVNb3JwaG9sb2d5LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVNb3JwaG9sb2d5LmNwcAppbmRleCA2YWUzZDk4
OTg2NjI2ZTA3YzA5NGM1ODZmMzE5OGM5YzU4ZGFlZDZiLi45MTkzYjU4NzE5YTAxOGRkMmM2ODll
NjA2NTdkOGI0ZjA0MTNhNjc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9maWx0ZXJzL0ZFTW9ycGhvbG9neS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRU1vcnBob2xvZ3kuY3BwCkBAIC0zNiw3ICszNiw3IEBA
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIEZFTW9ycGhvbG9neTo6RkVNb3JwaG9sb2d5KEZpbHRl
ciYgZmlsdGVyLCBNb3JwaG9sb2d5T3BlcmF0b3JUeXBlIHR5cGUsIGZsb2F0IHJhZGl1c1gsIGZs
b2F0IHJhZGl1c1kpCi0gICAgOiBGaWx0ZXJFZmZlY3QoZmlsdGVyLCBUeXBlOjpNb3JwaG9sb2d5
KQorICAgIDogRmlsdGVyRWZmZWN0KGZpbHRlciwgRmlsdGVyRWZmZWN0OjpUeXBlOjpGRU1vcnBo
b2xvZ3kpCiAgICAgLCBtX3R5cGUodHlwZSkKICAgICAsIG1fcmFkaXVzWChyYWRpdXNYKQogICAg
ICwgbV9yYWRpdXNZKHJhZGl1c1kpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9maWx0ZXJzL0ZFTW9ycGhvbG9neS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZmlsdGVycy9GRU1vcnBob2xvZ3kuaAppbmRleCA0OGZjMzU0MTE3ZmMyN2Nj
ZmM4ZTkzZjE0ZWRmMDc1ZGUzOWM1YTExLi4xYjY5YzYzMjZjYjBiOTIzNmE5MGQzZDE0MjUzYWUw
YjNlZTE0OTg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9m
aWx0ZXJzL0ZFTW9ycGhvbG9neS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2ZpbHRlcnMvRkVNb3JwaG9sb2d5LmgKQEAgLTQ4LDggKzQ4LDYgQEAgcHVibGljOgogcHJp
dmF0ZToKICAgICBGRU1vcnBob2xvZ3koRmlsdGVyJiwgTW9ycGhvbG9neU9wZXJhdG9yVHlwZSwg
ZmxvYXQgcmFkaXVzWCwgZmxvYXQgcmFkaXVzWSk7CiAKLSAgICBjb25zdCBjaGFyKiBmaWx0ZXJO
YW1lKCkgY29uc3QgZmluYWwgeyByZXR1cm4gIkZFTW9ycGhvbG9neSI7IH0KLQogICAgIHZvaWQg
cGxhdGZvcm1BcHBseVNvZnR3YXJlKCkgb3ZlcnJpZGU7CiAKICAgICB2b2lkIGRldGVybWluZUFi
c29sdXRlUGFpbnRSZWN0KCkgb3ZlcnJpZGU7CkBAIC04NiwzICs4NCw0IEBAIHByaXZhdGU6CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAorU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19GSUxURVJf
RUZGRUNUKEZFTW9ycGhvbG9neSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2ZpbHRlcnMvRkVPZmZzZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZmlsdGVycy9GRU9mZnNldC5jcHAKaW5kZXggMDI3MGRiOTI0ODFhMzM5MmQzZDVh
MWU5MTdjMmQ2NWFhNDE0MGY2OS4uZmUzY2RiNDhiMDc2ODQzNjdhZTdkNjQwYjM0NzM0OTRmYTJj
NTk1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVy
cy9GRU9mZnNldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmls
dGVycy9GRU9mZnNldC5jcHAKQEAgLTMxLDcgKzMxLDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogRkVPZmZzZXQ6OkZFT2Zmc2V0KEZpbHRlciYgZmlsdGVyLCBmbG9hdCBkeCwgZmxvYXQgZHkp
Ci0gICAgOiBGaWx0ZXJFZmZlY3QoZmlsdGVyLCBUeXBlOjpPZmZzZXQpCisgICAgOiBGaWx0ZXJF
ZmZlY3QoZmlsdGVyLCBGaWx0ZXJFZmZlY3Q6OlR5cGU6OkZFT2Zmc2V0KQogICAgICwgbV9keChk
eCkKICAgICAsIG1fZHkoZHkpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9maWx0ZXJzL0ZFT2Zmc2V0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9maWx0ZXJzL0ZFT2Zmc2V0LmgKaW5kZXggNjVhYmRhOTBhNDdiMWJmZTc2YWU1Yzc0
YWFiNWFhMTY3ZmIxZTY5ZS4uZGI3MzIyNTVlZTc4ZDMzNjgwOWRiNDIxNzg1YTkyZjg0NWI5NTI2
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9G
RU9mZnNldC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMv
RkVPZmZzZXQuaApAQCAtMzksOCArMzksNiBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIEZFT2Zm
c2V0KEZpbHRlciYsIGZsb2F0IGR4LCBmbG9hdCBkeSk7CiAKLSAgICBjb25zdCBjaGFyKiBmaWx0
ZXJOYW1lKCkgY29uc3QgZmluYWwgeyByZXR1cm4gIkZFT2Zmc2V0IjsgfQotCiAgICAgdm9pZCBw
bGF0Zm9ybUFwcGx5U29mdHdhcmUoKSBvdmVycmlkZTsKICAgICAKICAgICB2b2lkIGRldGVybWlu
ZUFic29sdXRlUGFpbnRSZWN0KCkgb3ZlcnJpZGU7CkBAIC01MywzICs1MSw0IEBAIHByaXZhdGU6
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAorU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19GSUxU
RVJfRUZGRUNUKEZFT2Zmc2V0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZmlsdGVycy9GRVNwZWN1bGFyTGlnaHRpbmcuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRVNwZWN1bGFyTGlnaHRpbmcuY3BwCmluZGV4IDU5
OTcyMzA2ODg2YTYzZmE0MTJiNWI3MTQxZjc0ZjljNDg3YTE0NGMuLjUyZjQ1MDg0MDkwYWRjYjA0
ZDdlNDUxMjA1OGVhN2EyYWNkYThmM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVTcGVjdWxhckxpZ2h0aW5nLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFU3BlY3VsYXJMaWdodGluZy5jcHAK
QEAgLTI4LDcgKzI4LDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogRkVTcGVjdWxhckxpZ2h0
aW5nOjpGRVNwZWN1bGFyTGlnaHRpbmcoRmlsdGVyJiBmaWx0ZXIsIGNvbnN0IENvbG9yJiBsaWdo
dGluZ0NvbG9yLCBmbG9hdCBzdXJmYWNlU2NhbGUsIGZsb2F0IHNwZWN1bGFyQ29uc3RhbnQsIGZs
b2F0IHNwZWN1bGFyRXhwb25lbnQsIGZsb2F0IGtlcm5lbFVuaXRMZW5ndGhYLCBmbG9hdCBrZXJu
ZWxVbml0TGVuZ3RoWSwgUmVmPExpZ2h0U291cmNlPiYmIGxpZ2h0U291cmNlKQotICAgIDogRkVM
aWdodGluZyhmaWx0ZXIsIFNwZWN1bGFyTGlnaHRpbmcsIGxpZ2h0aW5nQ29sb3IsIHN1cmZhY2VT
Y2FsZSwgMCwgc3BlY3VsYXJDb25zdGFudCwgc3BlY3VsYXJFeHBvbmVudCwga2VybmVsVW5pdExl
bmd0aFgsIGtlcm5lbFVuaXRMZW5ndGhZLCBXVEZNb3ZlKGxpZ2h0U291cmNlKSwgVHlwZTo6U3Bl
Y3VsYXJMaWdodGluZykKKyAgICA6IEZFTGlnaHRpbmcoZmlsdGVyLCBTcGVjdWxhckxpZ2h0aW5n
LCBsaWdodGluZ0NvbG9yLCBzdXJmYWNlU2NhbGUsIDAsIHNwZWN1bGFyQ29uc3RhbnQsIHNwZWN1
bGFyRXhwb25lbnQsIGtlcm5lbFVuaXRMZW5ndGhYLCBrZXJuZWxVbml0TGVuZ3RoWSwgV1RGTW92
ZShsaWdodFNvdXJjZSksIEZpbHRlckVmZmVjdDo6VHlwZTo6RkVTcGVjdWxhckxpZ2h0aW5nKQog
ewogfQogCkBAIC0zNyw4ICszNyw2IEBAIFJlZjxGRVNwZWN1bGFyTGlnaHRpbmc+IEZFU3BlY3Vs
YXJMaWdodGluZzo6Y3JlYXRlKEZpbHRlciYgZmlsdGVyLCBjb25zdCBDb2xvciYKICAgICByZXR1
cm4gYWRvcHRSZWYoKm5ldyBGRVNwZWN1bGFyTGlnaHRpbmcoZmlsdGVyLCBsaWdodGluZ0NvbG9y
LCBzdXJmYWNlU2NhbGUsIHNwZWN1bGFyQ29uc3RhbnQsIHNwZWN1bGFyRXhwb25lbnQsIGtlcm5l
bFVuaXRMZW5ndGhYLCBrZXJuZWxVbml0TGVuZ3RoWSwgV1RGTW92ZShsaWdodFNvdXJjZSkpKTsK
IH0KIAotRkVTcGVjdWxhckxpZ2h0aW5nOjp+RkVTcGVjdWxhckxpZ2h0aW5nKCkgPSBkZWZhdWx0
OwotCiBib29sIEZFU3BlY3VsYXJMaWdodGluZzo6c2V0U3BlY3VsYXJDb25zdGFudChmbG9hdCBz
cGVjdWxhckNvbnN0YW50KQogewogICAgIGlmIChtX3NwZWN1bGFyQ29uc3RhbnQgPT0gc3BlY3Vs
YXJDb25zdGFudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2ZpbHRlcnMvRkVTcGVjdWxhckxpZ2h0aW5nLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9maWx0ZXJzL0ZFU3BlY3VsYXJMaWdodGluZy5oCmluZGV4IGU5OThhNzYwNWQxZTQ3
MzVkOWY0OTc5OGQzOTgxOGJmM2IyNDk1OGEuLjliYmJhOGE4ZjFmYzZmMDEwNDU3NjBkYTgwZDM1
ZjhjZDI3N2NlMTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2ZpbHRlcnMvRkVTcGVjdWxhckxpZ2h0aW5nLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZmlsdGVycy9GRVNwZWN1bGFyTGlnaHRpbmcuaApAQCAtMjgsNyArMjgsNiBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBGRVNwZWN1bGFyTGlnaHRpbmcgOiBwdWJsaWMg
RkVMaWdodGluZyB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxGRVNwZWN1bGFyTGlnaHRpbmc+
IGNyZWF0ZShGaWx0ZXImLCBjb25zdCBDb2xvciYsIGZsb2F0LCBmbG9hdCwgZmxvYXQsIGZsb2F0
LCBmbG9hdCwgUmVmPExpZ2h0U291cmNlPiYmKTsKLSAgICB2aXJ0dWFsIH5GRVNwZWN1bGFyTGln
aHRpbmcoKTsKIAogICAgIGZsb2F0IHNwZWN1bGFyQ29uc3RhbnQoKSBjb25zdCB7IHJldHVybiBt
X3NwZWN1bGFyQ29uc3RhbnQ7IH0KICAgICBib29sIHNldFNwZWN1bGFyQ29uc3RhbnQoZmxvYXQp
OwpAQCAtNDQsMyArNDMsNCBAQCBwcml2YXRlOgogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAK
K1NQRUNJQUxJWkVfVFlQRV9UUkFJVFNfRklMVEVSX0VGRkVDVChGRVNwZWN1bGFyTGlnaHRpbmcp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZF
VGlsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFVGls
ZS5jcHAKaW5kZXggMzVjNTFjYmIyMjlkZWU5NjQyZGMxZTdkY2EwYzVkYjJmY2FjMjBhZC4uMzU4
OTVmZjJkOTM1NDRkYmM0MzkwZDA2ODEzOTU0NzU5NTc3MWYwZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRVRpbGUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVUaWxlLmNwcApAQCAtMzIsNyAr
MzIsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBGRVRpbGU6OkZFVGlsZShGaWx0ZXImIGZp
bHRlcikKLSAgICA6IEZpbHRlckVmZmVjdChmaWx0ZXIsIFR5cGU6OlRpbGUpCisgICAgOiBGaWx0
ZXJFZmZlY3QoZmlsdGVyLCBGaWx0ZXJFZmZlY3Q6OlR5cGU6OkZFVGlsZSkKIHsKIH0KIApAQCAt
NTgsNyArNTgsNyBAQCB2b2lkIEZFVGlsZTo6cGxhdGZvcm1BcHBseVNvZnR3YXJlKCkKICAgICBG
bG9hdFJlY3QgdGlsZVJlY3QgPSBpbi0+bWF4RWZmZWN0UmVjdCgpOwogICAgIEZsb2F0UG9pbnQg
aW5NYXhFZmZlY3RMb2NhdGlvbiA9IHRpbGVSZWN0LmxvY2F0aW9uKCk7CiAgICAgRmxvYXRQb2lu
dCBtYXhFZmZlY3RMb2NhdGlvbiA9IG1heEVmZmVjdFJlY3QoKS5sb2NhdGlvbigpOwotICAgIGlm
IChpbi0+ZmlsdGVyRWZmZWN0VHlwZSgpID09IEZpbHRlckVmZmVjdFR5cGVTb3VyY2VJbnB1dCkg
eworICAgIGlmIChpbi0+ZmlsdGVyVHlwZSgpID09IEZpbHRlckVmZmVjdDo6VHlwZTo6U291cmNl
R3JhcGhpYyB8fCBpbi0+ZmlsdGVyVHlwZSgpID09IEZpbHRlckVmZmVjdDo6VHlwZTo6U291cmNl
QWxwaGEpIHsKICAgICAgICAgRmlsdGVyJiBmaWx0ZXIgPSB0aGlzLT5maWx0ZXIoKTsKICAgICAg
ICAgdGlsZVJlY3QgPSBmaWx0ZXIuZmlsdGVyUmVnaW9uKCk7CiAgICAgICAgIHRpbGVSZWN0LnNj
YWxlKGZpbHRlci5maWx0ZXJSZXNvbHV0aW9uKCkud2lkdGgoKSwgZmlsdGVyLmZpbHRlclJlc29s
dXRpb24oKS5oZWlnaHQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9maWx0ZXJzL0ZFVGlsZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZmlsdGVycy9GRVRpbGUuaAppbmRleCA0OWJkOTlmMDk0NDdkYWUxY2YwOWFmMTIzNThjNmRl
ODQwNjg3NzE0Li41YzQ4ZWY0NTE1MGVjMmNmODc5ZmRkYjdlNDhlOWU5ZThkNTAyNDFlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFVGlsZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVUaWxlLmgK
QEAgLTMzLDEwICszMyw2IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgRkVUaWxlKEZpbHRlciYp
OwogCi0gICAgY29uc3QgY2hhciogZmlsdGVyTmFtZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICJG
RVRpbGUiOyB9Ci0KLSAgICBGaWx0ZXJFZmZlY3RUeXBlIGZpbHRlckVmZmVjdFR5cGUoKSBjb25z
dCBvdmVycmlkZSB7IHJldHVybiBGaWx0ZXJFZmZlY3RUeXBlVGlsZTsgfQotCiAgICAgdm9pZCBw
bGF0Zm9ybUFwcGx5U29mdHdhcmUoKSBvdmVycmlkZTsKIAogICAgIHZvaWQgZGV0ZXJtaW5lQWJz
b2x1dGVQYWludFJlY3QoKSBvdmVycmlkZSB7IHNldEFic29sdXRlUGFpbnRSZWN0KGVuY2xvc2lu
Z0ludFJlY3QobWF4RWZmZWN0UmVjdCgpKSk7IH0KQEAgLTQ2LDMgKzQyLDQgQEAgcHJpdmF0ZToK
IAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCitTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0ZJTFRF
Ul9FRkZFQ1QoRkVUaWxlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZmlsdGVycy9GRVR1cmJ1bGVuY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZmlsdGVycy9GRVR1cmJ1bGVuY2UuY3BwCmluZGV4IDc3NGU2ODJlM2I0ODU5YmI2
ZTIwNmExZDJiZmFlYjBjZWE5MTlmMGIuLjJlYTI1ZmViNmZjYjQxYjRhM2NlZmI2ZGRhOWQwZWMz
NmRkMGRiZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Zp
bHRlcnMvRkVUdXJidWxlbmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9maWx0ZXJzL0ZFVHVyYnVsZW5jZS5jcHAKQEAgLTQ5LDcgKzQ5LDcgQEAgc3RhdGljIGNv
bnN0IGludCBzX3JhbmRRID0gMTI3NzczOyAvLyBtIC8gYQogc3RhdGljIGNvbnN0IGludCBzX3Jh
bmRSID0gMjgzNjsgLy8gbSAlIGEKIAogRkVUdXJidWxlbmNlOjpGRVR1cmJ1bGVuY2UoRmlsdGVy
JiBmaWx0ZXIsIFR1cmJ1bGVuY2VUeXBlIHR5cGUsIGZsb2F0IGJhc2VGcmVxdWVuY3lYLCBmbG9h
dCBiYXNlRnJlcXVlbmN5WSwgaW50IG51bU9jdGF2ZXMsIGZsb2F0IHNlZWQsIGJvb2wgc3RpdGNo
VGlsZXMpCi0gICAgOiBGaWx0ZXJFZmZlY3QoZmlsdGVyLCBUeXBlOjpUdXJidWxlbmNlKQorICAg
IDogRmlsdGVyRWZmZWN0KGZpbHRlciwgRmlsdGVyRWZmZWN0OjpUeXBlOjpGRVR1cmJ1bGVuY2Up
CiAgICAgLCBtX3R5cGUodHlwZSkKICAgICAsIG1fYmFzZUZyZXF1ZW5jeVgoYmFzZUZyZXF1ZW5j
eVgpCiAgICAgLCBtX2Jhc2VGcmVxdWVuY3lZKGJhc2VGcmVxdWVuY3lZKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRVR1cmJ1bGVuY2UuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVUdXJidWxlbmNlLmgK
aW5kZXggNjM3ZDI4NDg5NWUyMzE1MjJhOWFjODU3ZjJjODNmZjcyMGQ0NTJlNS4uMmRhMDI4YjQ2
OTNmYWU2MzE3OTZkZDNkMzI4NThlMzM1MjBhMTMzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRVR1cmJ1bGVuY2UuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFVHVyYnVsZW5jZS5oCkBAIC0xMDUs
OCArMTA1LDYgQEAgcHJpdmF0ZToKIAogICAgIEZFVHVyYnVsZW5jZShGaWx0ZXImLCBUdXJidWxl
bmNlVHlwZSwgZmxvYXQsIGZsb2F0LCBpbnQsIGZsb2F0LCBib29sKTsKIAotICAgIGNvbnN0IGNo
YXIqIGZpbHRlck5hbWUoKSBjb25zdCBmaW5hbCB7IHJldHVybiAiRkVUdXJidWxlbmNlIjsgfQot
CiAgICAgdm9pZCBwbGF0Zm9ybUFwcGx5U29mdHdhcmUoKSBvdmVycmlkZTsKICAgICB2b2lkIGRl
dGVybWluZUFic29sdXRlUGFpbnRSZWN0KCkgb3ZlcnJpZGUgeyBzZXRBYnNvbHV0ZVBhaW50UmVj
dChlbmNsb3NpbmdJbnRSZWN0KG1heEVmZmVjdFJlY3QoKSkpOyB9CiAgICAgV1RGOjpUZXh0U3Ry
ZWFtJiBleHRlcm5hbFJlcHJlc2VudGF0aW9uKFdURjo6VGV4dFN0cmVhbSYsIFJlcHJlc2VudGF0
aW9uVHlwZSkgY29uc3Qgb3ZlcnJpZGU7CkBAIC0xMjksMyArMTI3LDQgQEAgcHJpdmF0ZToKIAog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCitTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0ZJTFRFUl9F
RkZFQ1QoRkVUdXJidWxlbmNlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZmlsdGVycy9GaWx0ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2ZpbHRlcnMvRmlsdGVyLmgKaW5kZXggYTJkOTk3OTNiMGRiMjI1OGJjNDc2ZGRjYzI5YzBj
ZTI2MTEwYmMxZi4uODcyNzgyODEwYmJlMDY3MWEzZjA2N2E1OTUzMDlkZjE3ZWVhNGQyMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXIu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlci5o
CkBAIC0xLDYgKzEsNyBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAwOSBEaXJrIFNjaHVsemUg
PGtyaXRAd2Via2l0Lm9yZz4KICAqIENvcHlyaWdodCAoQykgMjAxMyBHb29nbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlv
dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJt
cyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTIxLDIzICsyMiwxNyBAQAog
I3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJBZmZpbmVUcmFuc2Zvcm0uaCIKKyNpbmNsdWRlICJG
aWx0ZXJGdW5jdGlvbi5oIgogI2luY2x1ZGUgIkZsb2F0UmVjdC5oIgogI2luY2x1ZGUgIkdyYXBo
aWNzVHlwZXMuaCIKICNpbmNsdWRlICJJbWFnZUJ1ZmZlci5oIgotI2luY2x1ZGUgPHd0Zi9SZWZD
b3VudGVkLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRmlsdGVyRWZmZWN0Owog
Ci1jbGFzcyBGaWx0ZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxGaWx0ZXI+IHsKK2NsYXNzIEZpbHRl
ciA6IHB1YmxpYyBGaWx0ZXJGdW5jdGlvbiB7CiBwdWJsaWM6Ci0gICAgRmlsdGVyKGNvbnN0IEFm
ZmluZVRyYW5zZm9ybSYgYWJzb2x1dGVUcmFuc2Zvcm0sIGZsb2F0IGZpbHRlclNjYWxlID0gMSkK
LSAgICAgICAgOiBtX2Fic29sdXRlVHJhbnNmb3JtKGFic29sdXRlVHJhbnNmb3JtKQotICAgICAg
ICAsIG1fZmlsdGVyU2NhbGUoZmlsdGVyU2NhbGUpCi0gICAgeyB9Ci0gICAgdmlydHVhbCB+Rmls
dGVyKCkgPSBkZWZhdWx0OwotCiAgICAgdm9pZCBzZXRTb3VyY2VJbWFnZShSZWZQdHI8SW1hZ2VC
dWZmZXI+JiYgc291cmNlSW1hZ2UpIHsgbV9zb3VyY2VJbWFnZSA9IFdURk1vdmUoc291cmNlSW1h
Z2UpOyB9CiAgICAgSW1hZ2VCdWZmZXIqIHNvdXJjZUltYWdlKCkgeyByZXR1cm4gbV9zb3VyY2VJ
bWFnZS5nZXQoKTsgfQogCkBAIC02Miw4ICs1NywxNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBG
bG9hdFJlY3QgZmlsdGVyUmVnaW9uSW5Vc2VyU3BhY2UoKSBjb25zdCA9IDA7CiAKIHByb3RlY3Rl
ZDoKLSAgICBleHBsaWNpdCBGaWx0ZXIoY29uc3QgRmxvYXRTaXplJiBmaWx0ZXJSZXNvbHV0aW9u
KQotICAgICAgICA6IG1fZmlsdGVyUmVzb2x1dGlvbihmaWx0ZXJSZXNvbHV0aW9uKQorICAgIEZp
bHRlcihGaWx0ZXI6OlR5cGUgZmlsdGVyVHlwZSwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBhYnNv
bHV0ZVRyYW5zZm9ybSwgZmxvYXQgZmlsdGVyU2NhbGUgPSAxKQorICAgICAgICA6IEZpbHRlckZ1
bmN0aW9uKGZpbHRlclR5cGUpCisgICAgICAgICwgbV9hYnNvbHV0ZVRyYW5zZm9ybShhYnNvbHV0
ZVRyYW5zZm9ybSkKKyAgICAgICAgLCBtX2ZpbHRlclNjYWxlKGZpbHRlclNjYWxlKQorICAgIHsK
KyAgICB9CisKKyAgICBGaWx0ZXIoRmlsdGVyOjpUeXBlIGZpbHRlclR5cGUsIGNvbnN0IEZsb2F0
U2l6ZSYgZmlsdGVyUmVzb2x1dGlvbikKKyAgICAgICAgOiBGaWx0ZXJGdW5jdGlvbihmaWx0ZXJU
eXBlKQorICAgICAgICAsIG1fZmlsdGVyUmVzb2x1dGlvbihmaWx0ZXJSZXNvbHV0aW9uKQogICAg
IHsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2ZpbHRlcnMvRmlsdGVyRWZmZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2ZpbHRlcnMvRmlsdGVyRWZmZWN0LmNwcAppbmRleCBmYjY3NzU0ZTRmYzViYmNhNTFjMzQ4
ZWM3ZjYzZTRjYzkyN2RiMTA4Li5iMTNlNjgyMzY2MzVmODU1MDRmZTE5OWIwOWEyOGZlMjY3Mjgx
NGQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJz
L0ZpbHRlckVmZmVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZmlsdGVycy9GaWx0ZXJFZmZlY3QuY3BwCkBAIC00NSwxNCArNDUsMTIgQEAKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCi1GaWx0ZXJFZmZlY3Q6OkZpbHRlckVmZmVjdChGaWx0ZXImIGZpbHRlciwg
VHlwZSB0eXBlKQotICAgIDogbV9maWx0ZXIoZmlsdGVyKQotICAgICwgbV9maWx0ZXJFZmZlY3RD
bGFzc1R5cGUodHlwZSkKK0ZpbHRlckVmZmVjdDo6RmlsdGVyRWZmZWN0KEZpbHRlciYgZmlsdGVy
LCBGaWx0ZXJFZmZlY3Q6OlR5cGUgdHlwZSkKKyAgICA6IEZpbHRlckZ1bmN0aW9uKHR5cGUpCisg
ICAgLCBtX2ZpbHRlcihmaWx0ZXIpCiB7CiB9CiAKLUZpbHRlckVmZmVjdDo6fkZpbHRlckVmZmVj
dCgpID0gZGVmYXVsdDsKLQogdm9pZCBGaWx0ZXJFZmZlY3Q6OmRldGVybWluZUFic29sdXRlUGFp
bnRSZWN0KCkKIHsKICAgICBtX2Fic29sdXRlUGFpbnRSZWN0ID0gSW50UmVjdCgpOwpAQCAtMTEw
LDcgKzEwOCw3IEBAIEZsb2F0UmVjdCBGaWx0ZXJFZmZlY3Q6OmRldGVybWluZUZpbHRlclByaW1p
dGl2ZVN1YnJlZ2lvbigpCiAgICAgICAgIHN1YnJlZ2lvbiA9IG1fZmlsdGVyLmZpbHRlclJlZ2lv
bkluVXNlclNwYWNlKCk7CiAKICAgICAvLyBBZnRlciBjYWxsaW5nIGRldGVybWluZUZpbHRlclBy
aW1pdGl2ZVN1YnJlZ2lvbiBvbiB0aGUgdGFyZ2V0IGVmZmVjdCwgcmVzZXQgdGhlIHN1YnJlZ2lv
biBhZ2FpbiBmb3IgPGZlVGlsZT4uCi0gICAgaWYgKGZpbHRlckVmZmVjdFR5cGUoKSA9PSBGaWx0
ZXJFZmZlY3RUeXBlVGlsZSkKKyAgICBpZiAoZmlsdGVyVHlwZSgpID09IEZpbHRlckVmZmVjdDo6
VHlwZTo6RkVUaWxlKQogICAgICAgICBzdWJyZWdpb24gPSBtX2ZpbHRlci5maWx0ZXJSZWdpb25J
blVzZXJTcGFjZSgpOwogCiAgICAgYXV0byBib3VuZGFyaWVzID0gZWZmZWN0Qm91bmRhcmllcygp
OwpAQCAtNTcyLDcgKzU3MCw3IEBAIHZvaWQgRmlsdGVyRWZmZWN0Ojpjb3B5UHJlbXVsdGlwbGll
ZFJlc3VsdChVaW50OENsYW1wZWRBcnJheSYgZGVzdGluYXRpb24sIGNvbnN0CiAKIEltYWdlQnVm
ZmVyKiBGaWx0ZXJFZmZlY3Q6OmNyZWF0ZUltYWdlQnVmZmVyUmVzdWx0KCkKIHsKLSAgICBMT0co
RmlsdGVycywgIkZpbHRlckVmZmVjdCAlcyAlcCBjcmVhdGVJbWFnZUJ1ZmZlclJlc3VsdCAlZHgl
ZCIsIGZpbHRlck5hbWUoKSwgdGhpcywgbV9hYnNvbHV0ZVBhaW50UmVjdC5zaXplKCkud2lkdGgo
KSwgbV9hYnNvbHV0ZVBhaW50UmVjdC5zaXplKCkuaGVpZ2h0KCkpOworICAgIExPRyhGaWx0ZXJz
LCAiRmlsdGVyRWZmZWN0ICVzICVwIGNyZWF0ZUltYWdlQnVmZmVyUmVzdWx0ICVkeCVkIiwgZmls
dGVyTmFtZSgpLmNoYXJhY3RlcnM4KCksIHRoaXMsIG1fYWJzb2x1dGVQYWludFJlY3Quc2l6ZSgp
LndpZHRoKCksIG1fYWJzb2x1dGVQYWludFJlY3Quc2l6ZSgpLmhlaWdodCgpKTsKIAogICAgIC8v
IE9ubHkgb25lIHJlc3VsdCB0eXBlIGlzIGFsbG93ZWQuCiAgICAgQVNTRVJUKCFoYXNSZXN1bHQo
KSk7CkBAIC01ODYsNyArNTg0LDcgQEAgSW1hZ2VCdWZmZXIqIEZpbHRlckVmZmVjdDo6Y3JlYXRl
SW1hZ2VCdWZmZXJSZXN1bHQoKQogCiBzdGQ6Om9wdGlvbmFsPFBpeGVsQnVmZmVyPiYgRmlsdGVy
RWZmZWN0OjpjcmVhdGVVbm11bHRpcGxpZWRJbWFnZVJlc3VsdCgpCiB7Ci0gICAgTE9HKEZpbHRl
cnMsICJGaWx0ZXJFZmZlY3QgJXMgJXAgY3JlYXRlVW5tdWx0aXBsaWVkSW1hZ2VSZXN1bHQiLCBm
aWx0ZXJOYW1lKCksIHRoaXMpOworICAgIExPRyhGaWx0ZXJzLCAiRmlsdGVyRWZmZWN0ICVzICVw
IGNyZWF0ZVVubXVsdGlwbGllZEltYWdlUmVzdWx0IiwgZmlsdGVyTmFtZSgpLmNoYXJhY3RlcnM4
KCksIHRoaXMpOwogCiAgICAgLy8gT25seSBvbmUgcmVzdWx0IHR5cGUgaXMgYWxsb3dlZC4KICAg
ICBBU1NFUlQoIWhhc1Jlc3VsdCgpKTsKQEAgLTYwNSw3ICs2MDMsNyBAQCBzdGQ6Om9wdGlvbmFs
PFBpeGVsQnVmZmVyPiYgRmlsdGVyRWZmZWN0OjpjcmVhdGVVbm11bHRpcGxpZWRJbWFnZVJlc3Vs
dCgpCiAKIHN0ZDo6b3B0aW9uYWw8UGl4ZWxCdWZmZXI+JiBGaWx0ZXJFZmZlY3Q6OmNyZWF0ZVBy
ZW11bHRpcGxpZWRJbWFnZVJlc3VsdCgpCiB7Ci0gICAgTE9HKEZpbHRlcnMsICJGaWx0ZXJFZmZl
Y3QgJXMgJXAgY3JlYXRlUHJlbXVsdGlwbGllZEltYWdlUmVzdWx0IiwgZmlsdGVyTmFtZSgpLCB0
aGlzKTsKKyAgICBMT0coRmlsdGVycywgIkZpbHRlckVmZmVjdCAlcyAlcCBjcmVhdGVQcmVtdWx0
aXBsaWVkSW1hZ2VSZXN1bHQiLCBmaWx0ZXJOYW1lKCkuY2hhcmFjdGVyczgoKSwgdGhpcyk7CiAK
ICAgICAvLyBPbmx5IG9uZSByZXN1bHQgdHlwZSBpcyBhbGxvd2VkLgogICAgIEFTU0VSVCghaGFz
UmVzdWx0KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZmlsdGVycy9GaWx0ZXJFZmZlY3QuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2ZpbHRlcnMvRmlsdGVyRWZmZWN0LmgKaW5kZXggMTJkZWQyNjVhNjU1YzM3ZTc3ZTJjZjA1YjUy
NzczZjJiOTZiNDcxYy4uNTUyN2Y2YmY0YmY2MjhlNzE1MGY4MWQ1ZWZiMzlkZjMxYTI5MWI3MiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0
ZXJFZmZlY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJz
L0ZpbHRlckVmZmVjdC5oCkBAIC0yNCwxMyArMjQsMTMgQEAKIAogI2luY2x1ZGUgIkFscGhhUHJl
bXVsdGlwbGljYXRpb24uaCIKICNpbmNsdWRlICJEZXN0aW5hdGlvbkNvbG9yU3BhY2UuaCIKKyNp
bmNsdWRlICJGaWx0ZXJGdW5jdGlvbi5oIgogI2luY2x1ZGUgIkZsb2F0UmVjdC5oIgogI2luY2x1
ZGUgIkludFJlY3QuaCIKICNpbmNsdWRlICJJbnRSZWN0RXh0ZW50LmgiCiAjaW5jbHVkZSAiUGl4
ZWxCdWZmZXIuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9Gb3J3YXJkLmg+CiAjaW5jbHVk
ZSA8d3RmL01hdGhFeHRyYXMuaD4KLSNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1
ZGUgPHd0Zi9SZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKQEAgLTQ2LDM5ICs0
Niw4IEBAIGNsYXNzIEltYWdlQnVmZmVyOwogCiB0eXBlZGVmIFZlY3RvcjxSZWZQdHI8RmlsdGVy
RWZmZWN0Pj4gRmlsdGVyRWZmZWN0VmVjdG9yOwogCi1lbnVtIEZpbHRlckVmZmVjdFR5cGUgewot
ICAgIEZpbHRlckVmZmVjdFR5cGVVbmtub3duLAotICAgIEZpbHRlckVmZmVjdFR5cGVJbWFnZSwK
LSAgICBGaWx0ZXJFZmZlY3RUeXBlVGlsZSwKLSAgICBGaWx0ZXJFZmZlY3RUeXBlU291cmNlSW5w
dXQKLX07Ci0KLWNsYXNzIEZpbHRlckVmZmVjdCA6IHB1YmxpYyBSZWZDb3VudGVkPEZpbHRlckVm
ZmVjdD4geworY2xhc3MgRmlsdGVyRWZmZWN0IDogcHVibGljIEZpbHRlckZ1bmN0aW9uIHsKIHB1
YmxpYzoKLSAgICBlbnVtIGNsYXNzIFR5cGUgOiB1aW50OF90IHsKLSAgICAgICAgQmxlbmQsCi0g
ICAgICAgIENvbG9yTWF0cml4LAotICAgICAgICBDb21wb25lbnRUcmFuc2ZlciwKLSAgICAgICAg
Q29tcG9zaXRlLAotICAgICAgICBDb252b2x2ZU1hdHJpeCwKLSAgICAgICAgRGlmZnVzZUxpZ2h0
aW5nLAotICAgICAgICBEaXNwbGFjZW1lbnRNYXAsCi0gICAgICAgIERyb3BTaGFkb3csCi0gICAg
ICAgIEZsb29kLAotICAgICAgICBHYXVzc2lhbkJsdXIsCi0gICAgICAgIEltYWdlLAotICAgICAg
ICBMaWdodGluZywKLSAgICAgICAgTWVyZ2UsCi0gICAgICAgIE1vcnBob2xvZ3ksCi0gICAgICAg
IE9mZnNldCwKLSAgICAgICAgU3BlY3VsYXJMaWdodGluZywKLSAgICAgICAgVGlsZSwKLSAgICAg
ICAgVHVyYnVsZW5jZSwKLSAgICAgICAgU291cmNlQWxwaGEsCi0gICAgICAgIFNvdXJjZUdyYXBo
aWMKLSAgICB9OwotICAgIHZpcnR1YWwgfkZpbHRlckVmZmVjdCgpOwotCiAgICAgdm9pZCBjbGVh
clJlc3VsdCgpOwogICAgIHZvaWQgY2xlYXJSZXN1bHRzUmVjdXJzaXZlKCk7CiAKQEAgLTEyNSw4
ICs5NCw2IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBkZXRlcm1pbmVBYnNvbHV0ZVBh
aW50UmVjdCgpOwogCi0gICAgdmlydHVhbCBGaWx0ZXJFZmZlY3RUeXBlIGZpbHRlckVmZmVjdFR5
cGUoKSBjb25zdCB7IHJldHVybiBGaWx0ZXJFZmZlY3RUeXBlVW5rbm93bjsgfQotCiAgICAgdmly
dHVhbCBJbnRPdXRzZXRzIG91dHNldHMoKSBjb25zdCB7IHJldHVybiBJbnRPdXRzZXRzKCk7IH0K
IAogICAgIGVudW0gY2xhc3MgUmVwcmVzZW50YXRpb25UeXBlIHsgVGVzdE91dHB1dCwgRGVidWdn
aW5nIH07CkBAIC0xNTYsOCArMTIzLDYgQEAgcHVibGljOgogICAgIAogICAgIEZsb2F0UG9pbnQg
bWFwUG9pbnRGcm9tVXNlclNwYWNlVG9CdWZmZXIoRmxvYXRQb2ludCkgY29uc3Q7CiAgICAgCi0g
ICAgVHlwZSBmaWx0ZXJFZmZlY3RDbGFzc1R5cGUoKSBjb25zdCB7IHJldHVybiBtX2ZpbHRlckVm
ZmVjdENsYXNzVHlwZTsgfQotCiAgICAgRmlsdGVyJiBmaWx0ZXIoKSB7IHJldHVybiBtX2ZpbHRl
cjsgfQogICAgIGNvbnN0IEZpbHRlciYgZmlsdGVyKCkgY29uc3QgeyByZXR1cm4gbV9maWx0ZXI7
IH0KIApAQCAtMTgzLDggKzE0OCw2IEBAIHB1YmxpYzoKIHByb3RlY3RlZDoKICAgICBGaWx0ZXJF
ZmZlY3QoRmlsdGVyJiwgVHlwZSk7CiAgICAgCi0gICAgdmlydHVhbCBjb25zdCBjaGFyKiBmaWx0
ZXJOYW1lKCkgY29uc3QgPSAwOwotCiAgICAgSW1hZ2VCdWZmZXIqIGNyZWF0ZUltYWdlQnVmZmVy
UmVzdWx0KCk7CiAgICAgc3RkOjpvcHRpb25hbDxQaXhlbEJ1ZmZlcj4mIGNyZWF0ZVVubXVsdGlw
bGllZEltYWdlUmVzdWx0KCk7CiAgICAgc3RkOjpvcHRpb25hbDxQaXhlbEJ1ZmZlcj4mIGNyZWF0
ZVByZW11bHRpcGxpZWRJbWFnZVJlc3VsdCgpOwpAQCAtMjQ4LDExICsyMTEsMTcgQEAgcHJpdmF0
ZToKICAgICBEZXN0aW5hdGlvbkNvbG9yU3BhY2UgbV9vcGVyYXRpbmdDb2xvclNwYWNlIHsgRGVz
dGluYXRpb25Db2xvclNwYWNlOjpTUkdCKCkgfTsKICNlbmRpZgogICAgIERlc3RpbmF0aW9uQ29s
b3JTcGFjZSBtX3Jlc3VsdENvbG9yU3BhY2UgeyBEZXN0aW5hdGlvbkNvbG9yU3BhY2U6OlNSR0Io
KSB9OwotICAgIAotICAgIGNvbnN0IFR5cGUgbV9maWx0ZXJFZmZlY3RDbGFzc1R5cGU7CiB9Owog
CiBXRUJDT1JFX0VYUE9SVCBXVEY6OlRleHRTdHJlYW0mIG9wZXJhdG9yPDwoV1RGOjpUZXh0U3Ry
ZWFtJiwgY29uc3QgRmlsdGVyRWZmZWN0Jik7CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAor
U1BFQ0lBTElaRV9UWVBFX1RSQUlUU19CRUdJTihXZWJDb3JlOjpGaWx0ZXJFZmZlY3QpCisgICAg
c3RhdGljIGJvb2wgaXNUeXBlKGNvbnN0IFdlYkNvcmU6OkZpbHRlckZ1bmN0aW9uJiBmdW5jdGlv
bikgeyByZXR1cm4gZnVuY3Rpb24uaXNGaWx0ZXJFZmZlY3QoKTsgfQorU1BFQ0lBTElaRV9UWVBF
X1RSQUlUU19FTkQoKQorCisjZGVmaW5lIFNQRUNJQUxJWkVfVFlQRV9UUkFJVFNfRklMVEVSX0VG
RkVDVChDbGFzc05hbWUpIFwKK1NQRUNJQUxJWkVfVFlQRV9UUkFJVFNfQkVHSU4oV2ViQ29yZTo6
Q2xhc3NOYW1lKSBcCisgICAgc3RhdGljIGJvb2wgaXNUeXBlKGNvbnN0IFdlYkNvcmU6OkZpbHRl
ckVmZmVjdCYgZWZmZWN0KSB7IHJldHVybiBlZmZlY3QuZmlsdGVyVHlwZSgpID09IFdlYkNvcmU6
OkZpbHRlckVmZmVjdDo6VHlwZTo6Q2xhc3NOYW1lOyB9IFwKK1NQRUNJQUxJWkVfVFlQRV9UUkFJ
VFNfRU5EKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Zp
bHRlcnMvRmlsdGVyRnVuY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZmlsdGVycy9GaWx0ZXJGdW5jdGlvbi5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzVlYjA1ZGFkZGFjODgz
OWRlMGM3ZTQzMzRhZTFjMjIxOTEwMjQ3OQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyRnVuY3Rpb24uY3BwCkBAIC0wLDAg
KzEsNzIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkZpbHRlckZ1bmN0aW9uLmgiCisKKyNpbmNs
dWRlIDx3dGYvU29ydGVkQXJyYXlNYXAuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitGaWx0
ZXJGdW5jdGlvbjo6RmlsdGVyRnVuY3Rpb24oVHlwZSBmaWx0ZXJUeXBlKQorICAgIDogbV9maWx0
ZXJUeXBlKGZpbHRlclR5cGUpCit7Cit9CisKK0F0b21TdHJpbmcgRmlsdGVyRnVuY3Rpb246OmZp
bHRlck5hbWUoVHlwZSBmaWx0ZXJUeXBlKQoreworICAgIHN0YXRpYyBjb25zdGV4cHIgc3RkOjpw
YWlyPEZpbHRlckZ1bmN0aW9uOjpUeXBlLCBBU0NJSUxpdGVyYWw+IG5hbWVzQXJyYXlbXSA9IHsK
KyAgICAgICAgeyBGaWx0ZXJGdW5jdGlvbjo6VHlwZTo6Q1NTRmlsdGVyLCAgICAgICAgICAgIkNT
U0ZpbHRlciJfcyAgICAgICAgICAgfSwKKyAgICAgICAgeyBGaWx0ZXJGdW5jdGlvbjo6VHlwZTo6
U1ZHRmlsdGVyLCAgICAgICAgICAgIlNWR0ZpbHRlciJfcyAgICAgICAgICAgfSwKKyAgICAgICAg
CisgICAgICAgIHsgRmlsdGVyRnVuY3Rpb246OlR5cGU6OkZFQmxlbmQsICAgICAgICAgICAgICJG
RUJsZW5kIl9zICAgICAgICAgICAgIH0sCisgICAgICAgIHsgRmlsdGVyRnVuY3Rpb246OlR5cGU6
OkZFQ29sb3JNYXRyaXgsICAgICAgICJGRUNvbG9yTWF0cml4Il9zICAgICAgIH0sCisgICAgICAg
IHsgRmlsdGVyRnVuY3Rpb246OlR5cGU6OkZFQ29tcG9uZW50VHJhbnNmZXIsICJGRUNvbXBvbmVu
dFRyYW5zZmVyIl9zIH0sCisgICAgICAgIHsgRmlsdGVyRnVuY3Rpb246OlR5cGU6OkZFQ29tcG9z
aXRlLCAgICAgICAgICJGRUNvbXBvc2l0ZSJfcyAgICAgICAgIH0sCisgICAgICAgIHsgRmlsdGVy
RnVuY3Rpb246OlR5cGU6OkZFQ29udm9sdmVNYXRyaXgsICAgICJGRUNvbnZvbHZlTWF0cml4Il9z
ICAgIH0sCisgICAgICAgIHsgRmlsdGVyRnVuY3Rpb246OlR5cGU6OkZFRGlmZnVzZUxpZ2h0aW5n
LCAgICJGRURpZmZ1c2VMaWdodGluZyJfcyAgIH0sCisgICAgICAgIHsgRmlsdGVyRnVuY3Rpb246
OlR5cGU6OkZFRGlzcGxhY2VtZW50TWFwLCAgICJGRURpc3BsYWNlbWVudE1hcCJfcyAgIH0sCisg
ICAgICAgIHsgRmlsdGVyRnVuY3Rpb246OlR5cGU6OkZFRHJvcFNoYWRvdywgICAgICAgICJGRURy
b3BTaGFkb3ciX3MgICAgICAgIH0sCisgICAgICAgIHsgRmlsdGVyRnVuY3Rpb246OlR5cGU6OkZF
Rmxvb2QsICAgICAgICAgICAgICJGRUZsb29kIl9zICAgICAgICAgICAgIH0sCisgICAgICAgIHsg
RmlsdGVyRnVuY3Rpb246OlR5cGU6OkZFR2F1c3NpYW5CbHVyLCAgICAgICJGRUdhdXNzaWFuQmx1
ciJfcyAgICAgIH0sCisgICAgICAgIHsgRmlsdGVyRnVuY3Rpb246OlR5cGU6OkZFSW1hZ2UsICAg
ICAgICAgICAgICJGRUltYWdlIl9zICAgICAgICAgICAgIH0sCisgICAgICAgIHsgRmlsdGVyRnVu
Y3Rpb246OlR5cGU6OkZFTWVyZ2UsICAgICAgICAgICAgICJGRU1lcmdlIl9zICAgICAgICAgICAg
IH0sCisgICAgICAgIHsgRmlsdGVyRnVuY3Rpb246OlR5cGU6OkZFTW9ycGhvbG9neSwgICAgICAg
ICJGRU1vcnBob2xvZ3kiX3MgICAgICAgIH0sCisgICAgICAgIHsgRmlsdGVyRnVuY3Rpb246OlR5
cGU6OkZFT2Zmc2V0LCAgICAgICAgICAgICJGRU9mZnNldCJfcyAgICAgICAgICAgIH0sCisgICAg
ICAgIHsgRmlsdGVyRnVuY3Rpb246OlR5cGU6OkZFU3BlY3VsYXJMaWdodGluZywgICJGRVNwZWN1
bGFyTGlnaHRpbmciX3MgIH0sCisgICAgICAgIHsgRmlsdGVyRnVuY3Rpb246OlR5cGU6OkZFVGls
ZSwgICAgICAgICAgICAgICJGRVRpbGUiX3MgICAgICAgICAgICAgIH0sCisgICAgICAgIHsgRmls
dGVyRnVuY3Rpb246OlR5cGU6OkZFVHVyYnVsZW5jZSwgICAgICAgICJGRVR1cmJ1bGVuY2UiX3Mg
ICAgICAgIH0sCisKKyAgICAgICAgeyBGaWx0ZXJGdW5jdGlvbjo6VHlwZTo6U291cmNlQWxwaGEs
ICAgICAgICAgIlNvdXJjZUFscGhhIl9zICAgICAgICAgfSwKKyAgICAgICAgeyBGaWx0ZXJGdW5j
dGlvbjo6VHlwZTo6U291cmNlR3JhcGhpYywgICAgICAgIlNvdXJjZUdyYXBoaWMiX3MgICAgICAg
fQorICAgIH07CisKKyAgICBzdGF0aWMgY29uc3RleHByIFNvcnRlZEFycmF5TWFwIG5hbWVzTWFw
IHsgbmFtZXNBcnJheSB9OworICAgIAorICAgIEFTU0VSVChuYW1lc01hcC50cnlHZXQoZmlsdGVy
VHlwZSkpOworICAgIHJldHVybiAqbmFtZXNNYXAudHJ5R2V0KGZpbHRlclR5cGUpOworfQorCit9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlckZ1bmN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlckZ1bmN0aW9uLmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDljOTM3
YWU3ZDI0YTM4MzQwMzExNzBlNGZlY2FjMWI4MjAxYjAxMAotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyRnVuY3Rpb24uaApA
QCAtMCwwICsxLDEyMCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuICBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
CisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisjaW5j
bHVkZSA8d3RmL3RleHQvQXRvbVN0cmluZy5oPgorCituYW1lc3BhY2UgV1RGIHsKK2NsYXNzIFRl
eHRTdHJlYW07Cit9CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRmlsdGVyRnVuY3Rp
b24gOiBwdWJsaWMgUmVmQ291bnRlZDxGaWx0ZXJGdW5jdGlvbj4geworcHVibGljOgorICAgIGVu
dW0gY2xhc3MgVHlwZSA6IHVpbnQ4X3QgeworICAgICAgICBDU1NGaWx0ZXIsCisgICAgICAgIFNW
R0ZpbHRlciwKKworICAgICAgICBGRU1pbmltdW0sCisKKyAgICAgICAgRkVCbGVuZCA9IEZFTWlu
aW11bSwKKyAgICAgICAgRkVDb2xvck1hdHJpeCwKKyAgICAgICAgRkVDb21wb25lbnRUcmFuc2Zl
ciwKKyAgICAgICAgRkVDb21wb3NpdGUsCisgICAgICAgIEZFQ29udm9sdmVNYXRyaXgsCisgICAg
ICAgIEZFRGlmZnVzZUxpZ2h0aW5nLAorICAgICAgICBGRURpc3BsYWNlbWVudE1hcCwKKyAgICAg
ICAgRkVEcm9wU2hhZG93LAorICAgICAgICBGRUZsb29kLAorICAgICAgICBGRUdhdXNzaWFuQmx1
ciwKKyAgICAgICAgRkVJbWFnZSwKKyAgICAgICAgRkVNZXJnZSwKKyAgICAgICAgRkVNb3JwaG9s
b2d5LAorICAgICAgICBGRU9mZnNldCwKKyAgICAgICAgRkVTcGVjdWxhckxpZ2h0aW5nLAorICAg
ICAgICBGRVRpbGUsCisgICAgICAgIEZFVHVyYnVsZW5jZSwKKyAgICAgICAgU291cmNlQWxwaGEs
CisgICAgICAgIFNvdXJjZUdyYXBoaWMsCisKKyAgICAgICAgRkVNYXhpbXVtID0gU291cmNlR3Jh
cGhpYworICAgIH07CisKKyAgICBGaWx0ZXJGdW5jdGlvbihUeXBlKTsKKyAgICB2aXJ0dWFsIH5G
aWx0ZXJGdW5jdGlvbigpID0gZGVmYXVsdDsKKworICAgIFR5cGUgZmlsdGVyVHlwZSgpIGNvbnN0
IHsgcmV0dXJuIG1fZmlsdGVyVHlwZTsgfQorCisgICAgYm9vbCBpc0NTU0ZpbHRlcigpIGNvbnN0
IHsgcmV0dXJuIG1fZmlsdGVyVHlwZSA9PSBUeXBlOjpDU1NGaWx0ZXI7IH0KKyAgICBib29sIGlz
U1ZHRmlsdGVyKCkgY29uc3QgeyByZXR1cm4gbV9maWx0ZXJUeXBlID09IFR5cGU6OlNWR0ZpbHRl
cjsgfQorICAgIGJvb2wgaXNGaWx0ZXIoKSBjb25zdCB7IHJldHVybiBtX2ZpbHRlclR5cGUgPT0g
VHlwZTo6Q1NTRmlsdGVyIHx8IG1fZmlsdGVyVHlwZSA9PSBUeXBlOjpTVkdGaWx0ZXI7IH0KKyAg
ICBib29sIGlzRmlsdGVyRWZmZWN0KCkgY29uc3QgeyByZXR1cm4gbV9maWx0ZXJUeXBlID49IFR5
cGU6OkZFTWluaW11bSAmJiBtX2ZpbHRlclR5cGUgPD0gVHlwZTo6RkVNYXhpbXVtOyB9CisKKyAg
ICBzdGF0aWMgQXRvbVN0cmluZyBmaWx0ZXJOYW1lKFR5cGUpOworICAgIHN0YXRpYyBBdG9tU3Ry
aW5nIHNvdXJjZUFscGhhTmFtZSgpIHsgcmV0dXJuIGZpbHRlck5hbWUoVHlwZTo6U291cmNlQWxw
aGEpOyB9CisgICAgc3RhdGljIEF0b21TdHJpbmcgc291cmNlR3JhcGhpY05hbWUoKSB7IHJldHVy
biBmaWx0ZXJOYW1lKFR5cGU6OlNvdXJjZUdyYXBoaWMpOyB9CisgICAgQXRvbVN0cmluZyBmaWx0
ZXJOYW1lKCkgY29uc3QgeyByZXR1cm4gZmlsdGVyTmFtZShtX2ZpbHRlclR5cGUpOyB9CisKK3By
aXZhdGU6CisgICAgVHlwZSBtX2ZpbHRlclR5cGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCisKK25hbWVzcGFjZSBXVEYgeworCit0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdl
YkNvcmU6OkZpbHRlckZ1bmN0aW9uOjpUeXBlPiB7CisgICAgdXNpbmcgdmFsdWVzID0gRW51bVZh
bHVlczwKKyAgICAgICAgV2ViQ29yZTo6RmlsdGVyRnVuY3Rpb246OlR5cGUsCisKKyAgICAgICAg
V2ViQ29yZTo6RmlsdGVyRnVuY3Rpb246OlR5cGU6OkNTU0ZpbHRlciwKKyAgICAgICAgV2ViQ29y
ZTo6RmlsdGVyRnVuY3Rpb246OlR5cGU6OlNWR0ZpbHRlciwKKworICAgICAgICBXZWJDb3JlOjpG
aWx0ZXJGdW5jdGlvbjo6VHlwZTo6RkVCbGVuZCwKKyAgICAgICAgV2ViQ29yZTo6RmlsdGVyRnVu
Y3Rpb246OlR5cGU6OkZFQ29sb3JNYXRyaXgsCisgICAgICAgIFdlYkNvcmU6OkZpbHRlckZ1bmN0
aW9uOjpUeXBlOjpGRUNvbXBvbmVudFRyYW5zZmVyLAorICAgICAgICBXZWJDb3JlOjpGaWx0ZXJG
dW5jdGlvbjo6VHlwZTo6RkVDb21wb3NpdGUsCisgICAgICAgIFdlYkNvcmU6OkZpbHRlckZ1bmN0
aW9uOjpUeXBlOjpGRUNvbnZvbHZlTWF0cml4LAorICAgICAgICBXZWJDb3JlOjpGaWx0ZXJGdW5j
dGlvbjo6VHlwZTo6RkVEaWZmdXNlTGlnaHRpbmcsCisgICAgICAgIFdlYkNvcmU6OkZpbHRlckZ1
bmN0aW9uOjpUeXBlOjpGRURpc3BsYWNlbWVudE1hcCwKKyAgICAgICAgV2ViQ29yZTo6RmlsdGVy
RnVuY3Rpb246OlR5cGU6OkZFRHJvcFNoYWRvdywKKyAgICAgICAgV2ViQ29yZTo6RmlsdGVyRnVu
Y3Rpb246OlR5cGU6OkZFRmxvb2QsCisgICAgICAgIFdlYkNvcmU6OkZpbHRlckZ1bmN0aW9uOjpU
eXBlOjpGRUdhdXNzaWFuQmx1ciwKKyAgICAgICAgV2ViQ29yZTo6RmlsdGVyRnVuY3Rpb246OlR5
cGU6OkZFSW1hZ2UsCisgICAgICAgIFdlYkNvcmU6OkZpbHRlckZ1bmN0aW9uOjpUeXBlOjpGRU1l
cmdlLAorICAgICAgICBXZWJDb3JlOjpGaWx0ZXJGdW5jdGlvbjo6VHlwZTo6RkVNb3JwaG9sb2d5
LAorICAgICAgICBXZWJDb3JlOjpGaWx0ZXJGdW5jdGlvbjo6VHlwZTo6RkVPZmZzZXQsCisgICAg
ICAgIFdlYkNvcmU6OkZpbHRlckZ1bmN0aW9uOjpUeXBlOjpGRVNwZWN1bGFyTGlnaHRpbmcsCisg
ICAgICAgIFdlYkNvcmU6OkZpbHRlckZ1bmN0aW9uOjpUeXBlOjpGRVRpbGUsCisgICAgICAgIFdl
YkNvcmU6OkZpbHRlckZ1bmN0aW9uOjpUeXBlOjpGRVR1cmJ1bGVuY2UsCisgICAgICAgIFdlYkNv
cmU6OkZpbHRlckZ1bmN0aW9uOjpUeXBlOjpTb3VyY2VBbHBoYSwKKyAgICAgICAgV2ViQ29yZTo6
RmlsdGVyRnVuY3Rpb246OlR5cGU6OlNvdXJjZUdyYXBoaWMKKyAgICA+OworfTsKKworfSAvLyBu
YW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9maWx0ZXJzL1NvdXJjZUFscGhhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2ZpbHRlcnMvU291cmNlQWxwaGEuY3BwCmluZGV4IDc2NDlmMDU4YWM4NjliNTU0YWYwZGM1
MDdmZmY5MDkwYWQ2Y2YzYTMuLjk5Njk0MzcyNTc5M2U5OTY0NmZjM2U1YjIyYWQxNTFmYmRmZGU5
Y2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMv
U291cmNlQWxwaGEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Zp
bHRlcnMvU291cmNlQWxwaGEuY3BwCkBAIC0yMywxMCArMjMsNyBAQAogI2luY2x1ZGUgIkNvbG9y
LmgiCiAjaW5jbHVkZSAiRmlsdGVyLmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCi0j
aW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+Ci0jaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJh
cy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1RleHRTdHJlYW0uaD4KLSNpbmNsdWRlIDx3dGYvdGV4
dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0zNSwxMCArMzIsMTEg
QEAgUmVmPFNvdXJjZUFscGhhPiBTb3VyY2VBbHBoYTo6Y3JlYXRlKEZpbHRlckVmZmVjdCYgc291
cmNlRWZmZWN0KQogICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNvdXJjZUFscGhhKHNvdXJjZUVm
ZmVjdCkpOwogfQogCi1jb25zdCBBdG9tU3RyaW5nJiBTb3VyY2VBbHBoYTo6ZWZmZWN0TmFtZSgp
CitTb3VyY2VBbHBoYTo6U291cmNlQWxwaGEoRmlsdGVyRWZmZWN0JiBzb3VyY2VFZmZlY3QpCisg
ICAgOiBGaWx0ZXJFZmZlY3Qoc291cmNlRWZmZWN0LmZpbHRlcigpLCBGaWx0ZXJFZmZlY3Q6OlR5
cGU6OlNvdXJjZUFscGhhKQogewotICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8
Y29uc3QgQXRvbVN0cmluZz4gc19lZmZlY3ROYW1lKCJTb3VyY2VBbHBoYSIsIEF0b21TdHJpbmc6
OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICByZXR1cm4gc19lZmZlY3ROYW1lOworICAgIHNl
dE9wZXJhdGluZ0NvbG9yU3BhY2Uoc291cmNlRWZmZWN0Lm9wZXJhdGluZ0NvbG9yU3BhY2UoKSk7
CisgICAgaW5wdXRFZmZlY3RzKCkuYXBwZW5kKCZzb3VyY2VFZmZlY3QpOwogfQogCiB2b2lkIFNv
dXJjZUFscGhhOjpkZXRlcm1pbmVBYnNvbHV0ZVBhaW50UmVjdCgpCkBAIC02OSwxMSArNjcsNCBA
QCBUZXh0U3RyZWFtJiBTb3VyY2VBbHBoYTo6ZXh0ZXJuYWxSZXByZXNlbnRhdGlvbihUZXh0U3Ry
ZWFtJiB0cywgUmVwcmVzZW50YXRpb25UeQogICAgIHJldHVybiB0czsKIH0KIAotU291cmNlQWxw
aGE6OlNvdXJjZUFscGhhKEZpbHRlckVmZmVjdCYgc291cmNlRWZmZWN0KQotICAgIDogRmlsdGVy
RWZmZWN0KHNvdXJjZUVmZmVjdC5maWx0ZXIoKSwgVHlwZTo6U291cmNlQWxwaGEpCi17Ci0gICAg
c2V0T3BlcmF0aW5nQ29sb3JTcGFjZShzb3VyY2VFZmZlY3Qub3BlcmF0aW5nQ29sb3JTcGFjZSgp
KTsKLSAgICBpbnB1dEVmZmVjdHMoKS5hcHBlbmQoJnNvdXJjZUVmZmVjdCk7Ci19Ci0KIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2ZpbHRlcnMvU291cmNlQWxwaGEuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2ZpbHRlcnMvU291cmNlQWxwaGEuaAppbmRleCA2NjI5YTM2N2ZkNDMyNDJkMWM0YWFk
ZTY0YzU2MWU4NjRhMzk0OTBmLi40YmJkZTA3Zjc4ZTM1ZDI1YjRmNGQ0OWM2YjYyNWYxZTEwMmE1
NDMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJz
L1NvdXJjZUFscGhhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmls
dGVycy9Tb3VyY2VBbHBoYS5oCkBAIC0xNyw4ICsxNyw3IEBACiAgKiBCb3N0b24sIE1BIDAyMTEw
LTEzMDEsIFVTQS4KICAqLwogCi0jaWZuZGVmIFNvdXJjZUFscGhhX2gKLSNkZWZpbmUgU291cmNl
QWxwaGFfaAorI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJGaWx0ZXJFZmZlY3QuaCIKIApAQCAt
MjgsMTMgKzI3LDEwIEBAIGNsYXNzIFNvdXJjZUFscGhhIDogcHVibGljIEZpbHRlckVmZmVjdCB7
CiBwdWJsaWM6ICAgICAgICAKICAgICBzdGF0aWMgUmVmPFNvdXJjZUFscGhhPiBjcmVhdGUoRmls
dGVyRWZmZWN0Jik7CiAKLSAgICBzdGF0aWMgY29uc3QgQXRvbVN0cmluZyYgZWZmZWN0TmFtZSgp
OworICAgIHN0YXRpYyBBdG9tU3RyaW5nIGVmZmVjdE5hbWUoKSB7IHJldHVybiBGaWx0ZXJFZmZl
Y3Q6OnNvdXJjZUFscGhhTmFtZSgpOyB9CiAKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgU291cmNl
QWxwaGEoRmlsdGVyRWZmZWN0Jik7Ci0gICAgRmlsdGVyRWZmZWN0VHlwZSBmaWx0ZXJFZmZlY3RU
eXBlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gRmlsdGVyRWZmZWN0VHlwZVNvdXJjZUlucHV0
OyB9Ci0KLSAgICBjb25zdCBjaGFyKiBmaWx0ZXJOYW1lKCkgY29uc3QgZmluYWwgeyByZXR1cm4g
IlNvdXJjZUFscGhhIjsgfQogCiAgICAgdm9pZCBwbGF0Zm9ybUFwcGx5U29mdHdhcmUoKSBvdmVy
cmlkZTsKICAgICB2b2lkIGRldGVybWluZUFic29sdXRlUGFpbnRSZWN0KCkgb3ZlcnJpZGU7CkBA
IC00Myw0ICszOSw0IEBAIHByaXZhdGU6CiAKIH0gLy9uYW1lc3BhY2UgV2ViQ29yZQogCi0jZW5k
aWYgLy8gU291cmNlQWxwaGFfaAorU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19GSUxURVJfRUZGRUNU
KFNvdXJjZUFscGhhKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZmlsdGVycy9Tb3VyY2VHcmFwaGljLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2ZpbHRlcnMvU291cmNlR3JhcGhpYy5jcHAKaW5kZXggODhhMzZhNDEwMjZiZDNhNTg1
NDQ3ODIwMjc0YzExMDdkNzgzOTJlOS4uMjg4YzQ1ZjZmZGY3YTZiYTA5MTY0YTNmNDRiN2QyZjk0
ZTJhMWQ0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmls
dGVycy9Tb3VyY2VHcmFwaGljLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9maWx0ZXJzL1NvdXJjZUdyYXBoaWMuY3BwCkBAIC0yMiwxMCArMjIsNyBAQAogCiAjaW5j
bHVkZSAiRmlsdGVyLmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCi0jaW5jbHVkZSA8
d3RmL05ldmVyRGVzdHJveWVkLmg+Ci0jaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgogI2lu
Y2x1ZGUgPHd0Zi90ZXh0L1RleHRTdHJlYW0uaD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJp
bmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0zNCwxMiArMzEsNiBAQCBSZWY8U291
cmNlR3JhcGhpYz4gU291cmNlR3JhcGhpYzo6Y3JlYXRlKEZpbHRlciYgZmlsdGVyKQogICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IFNvdXJjZUdyYXBoaWMoZmlsdGVyKSk7CiB9CiAKLWNvbnN0IEF0
b21TdHJpbmcmIFNvdXJjZUdyYXBoaWM6OmVmZmVjdE5hbWUoKQotewotICAgIHN0YXRpYyBNYWlu
VGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gc19lZmZlY3ROYW1lKCJTb3Vy
Y2VHcmFwaGljIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotICAgIHJldHVy
biBzX2VmZmVjdE5hbWU7Ci19Ci0KIHZvaWQgU291cmNlR3JhcGhpYzo6ZGV0ZXJtaW5lQWJzb2x1
dGVQYWludFJlY3QoKQogewogICAgIEZpbHRlciYgZmlsdGVyID0gdGhpcy0+ZmlsdGVyKCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1NvdXJj
ZUdyYXBoaWMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvU291
cmNlR3JhcGhpYy5oCmluZGV4IDMwY2Q1NGYyNDUzYmJhOGEzNzc2MzIxMzI4ZWYyMTA2YjdmY2E1
YmYuLjVmOGJjZTFiNDg4Njc0NjYxZTI5YzNiOGEzOTZiNzU4ZGI0NjQzYWIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvU291cmNlR3JhcGhpYy5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvU291cmNlR3Jh
cGhpYy5oCkBAIC0xOCwxMSArMTgsOSBAQAogICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0Eu
CiAgKi8KIAotI2lmbmRlZiBTb3VyY2VHcmFwaGljX2gKLSNkZWZpbmUgU291cmNlR3JhcGhpY19o
CisjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkZpbHRlckVmZmVjdC5oIgotI2luY2x1ZGUgIkZp
bHRlci5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTMwLDI5ICsyOCwyMCBAQCBjbGFz
cyBTb3VyY2VHcmFwaGljIDogcHVibGljIEZpbHRlckVmZmVjdCB7CiBwdWJsaWM6ICAgICAgICAK
ICAgICBzdGF0aWMgUmVmPFNvdXJjZUdyYXBoaWM+IGNyZWF0ZShGaWx0ZXImKTsKIAotICAgIHN0
YXRpYyBjb25zdCBBdG9tU3RyaW5nJiBlZmZlY3ROYW1lKCk7CisgICAgc3RhdGljIEF0b21TdHJp
bmcgZWZmZWN0TmFtZSgpIHsgcmV0dXJuIEZpbHRlckVmZmVjdDo6c291cmNlR3JhcGhpY05hbWUo
KTsgfQogCiBwcml2YXRlOgogICAgIFNvdXJjZUdyYXBoaWMoRmlsdGVyJiBmaWx0ZXIpCi0gICAg
ICAgIDogRmlsdGVyRWZmZWN0KGZpbHRlciwgVHlwZTo6U291cmNlR3JhcGhpYykKKyAgICAgICAg
OiBGaWx0ZXJFZmZlY3QoZmlsdGVyLCBGaWx0ZXJFZmZlY3Q6OlR5cGU6OlNvdXJjZUdyYXBoaWMp
CiAgICAgewogICAgICAgICBzZXRPcGVyYXRpbmdDb2xvclNwYWNlKERlc3RpbmF0aW9uQ29sb3JT
cGFjZTo6U1JHQigpKTsKICAgICB9CiAKLSAgICBjb25zdCBjaGFyKiBmaWx0ZXJOYW1lKCkgY29u
c3QgZmluYWwgeyByZXR1cm4gIlNvdXJjZUdyYXBoaWMiOyB9Ci0KICAgICB2b2lkIGRldGVybWlu
ZUFic29sdXRlUGFpbnRSZWN0KCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBwbGF0Zm9ybUFwcGx5U29m
dHdhcmUoKSBvdmVycmlkZTsKICAgICBXVEY6OlRleHRTdHJlYW0mIGV4dGVybmFsUmVwcmVzZW50
YXRpb24oV1RGOjpUZXh0U3RyZWFtJiwgUmVwcmVzZW50YXRpb25UeXBlKSBjb25zdCBvdmVycmlk
ZTsKLQotICAgIEZpbHRlckVmZmVjdFR5cGUgZmlsdGVyRWZmZWN0VHlwZSgpIGNvbnN0IG92ZXJy
aWRlIHsgcmV0dXJuIEZpbHRlckVmZmVjdFR5cGVTb3VyY2VJbnB1dDsgfQogfTsKIAogfSAvL25h
bWVzcGFjZSBXZWJDb3JlCiAKLVNQRUNJQUxJWkVfVFlQRV9UUkFJVFNfQkVHSU4oV2ViQ29yZTo6
U291cmNlR3JhcGhpYykKLSAgICBzdGF0aWMgYm9vbCBpc1R5cGUoY29uc3QgV2ViQ29yZTo6Rmls
dGVyRWZmZWN0JiBlZmZlY3QpIHsgcmV0dXJuIGVmZmVjdC5maWx0ZXJFZmZlY3RDbGFzc1R5cGUo
KSA9PSBXZWJDb3JlOjpGaWx0ZXJFZmZlY3Q6OlR5cGU6OlNvdXJjZUdyYXBoaWM7IH0KLVNQRUNJ
QUxJWkVfVFlQRV9UUkFJVFNfRU5EKCkKLQotCi0jZW5kaWYgLy8gU291cmNlR3JhcGhpY19oCitT
UEVDSUFMSVpFX1RZUEVfVFJBSVRTX0ZJTFRFUl9FRkZFQ1QoU291cmNlR3JhcGhpYykKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZUlu
Y29taW5nQXVkaW9Tb3VyY2VDb2NvYS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlQ29jb2EuY3BwCmluZGV4IDlh
ZWE1ZjFjMDcyYzA5YmYwNjNmNDk5OWUwM2IyMTllODVkN2UyZDkuLmQ2N2IyOWI1MWM3OTFlNTIx
NWViOTg5NzVmZDljZWI2YWM0ZmMwNzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZUluY29taW5nQXVkaW9Tb3VyY2VDb2NvYS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lSW5j
b21pbmdBdWRpb1NvdXJjZUNvY29hLmNwcApAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgIkF1
ZGlvU3RyZWFtRGVzY3JpcHRpb24uaCIKICNpbmNsdWRlICJDQUF1ZGlvU3RyZWFtRGVzY3JpcHRp
b24uaCIKICNpbmNsdWRlICJMaWJXZWJSVENBdWRpb0Zvcm1hdC5oIgorI2luY2x1ZGUgIkxpYldl
YlJUQ0F1ZGlvTW9kdWxlLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgPHBhbC9h
dmZvdW5kYXRpb24vTWVkaWFUaW1lQVZGb3VuZGF0aW9uLmg+CiAjaW5jbHVkZSA8d3RmL0Zhc3RN
YWxsb2MuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9DU1NGaWx0ZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0NTU0ZpbHRlci5jcHAKaW5kZXggOWQ2YzJj
ZGQwNWY5NDliNjM0Y2FmYTE3YWMxN2RiNWMwMmI1YjYxMS4uMTAyYjg4NjUzNzIwZGNkNzE2MzQ5
YWZiNGRkZWJkNDk5OTc3MWNlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L0NTU0ZpbHRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0NTU0ZpbHRlci5j
cHAKQEAgLTYwLDcgKzYwLDcgQEAgUmVmPENTU0ZpbHRlcj4gQ1NTRmlsdGVyOjpjcmVhdGUoKQog
fQogCiBDU1NGaWx0ZXI6OkNTU0ZpbHRlcigpCi0gICAgOiBGaWx0ZXIoRmxvYXRTaXplIHsgMSwg
MSB9KQorICAgIDogRmlsdGVyKEZpbHRlcjo6VHlwZTo6Q1NTRmlsdGVyLCBGbG9hdFNpemUgeyAx
LCAxIH0pCiAgICAgLCBtX3NvdXJjZUdyYXBoaWMoU291cmNlR3JhcGhpYzo6Y3JlYXRlKCp0aGlz
KSkKIHsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9maWx0ZXJz
L1NWR0ZFSW1hZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL2ZpbHRlcnMvU1ZH
RkVJbWFnZS5jcHAKaW5kZXggODA0OWI4MmE5YWI2NTQ0MTI4MjQ5OGY0YmMxZmI3NmUxOTMxMGM4
Ni4uZmM5ZjFkNTk0ZWY1Nzg2YTQ3MTA5MmE0MjBiYzkyMzdkM2Y0OWE5MyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL2ZpbHRlcnMvU1ZHRkVJbWFnZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL2ZpbHRlcnMvU1ZHRkVJbWFnZS5jcHAKQEAgLTQy
LDcgKzQyLDcgQEAgUmVmPEZFSW1hZ2U+IEZFSW1hZ2U6OmNyZWF0ZShGaWx0ZXImIGZpbHRlciwg
U291cmNlSW1hZ2UmJiBzb3VyY2VJbWFnZSwgY29uc3QgRmwKIH0KIAogRkVJbWFnZTo6RkVJbWFn
ZShGaWx0ZXImIGZpbHRlciwgU291cmNlSW1hZ2UmJiBzb3VyY2VJbWFnZSwgY29uc3QgRmxvYXRS
ZWN0JiBzb3VyY2VJbWFnZVJlY3QsIGNvbnN0IFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZSYg
cHJlc2VydmVBc3BlY3RSYXRpbykKLSAgICA6IEZpbHRlckVmZmVjdChmaWx0ZXIsIFR5cGU6Oklt
YWdlKQorICAgIDogRmlsdGVyRWZmZWN0KGZpbHRlciwgVHlwZTo6RkVJbWFnZSkKICAgICAsIG1f
c291cmNlSW1hZ2UoV1RGTW92ZShzb3VyY2VJbWFnZSkpCiAgICAgLCBtX3NvdXJjZUltYWdlUmVj
dChzb3VyY2VJbWFnZVJlY3QpCiAgICAgLCBtX3ByZXNlcnZlQXNwZWN0UmF0aW8ocHJlc2VydmVB
c3BlY3RSYXRpbykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9maWx0
ZXJzL1NWR0ZFSW1hZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9maWx0ZXJzL1NW
R0ZFSW1hZ2UuaAppbmRleCAyZjI3NzQxYzA2MGZjMjY0NWU1MTdmMTM1ODYyMmYxMWQ3ZmFhZDI2
Li43MzE3ZDlhOTRlYWMwNzhhODhkZTdhN2UzMDQzNDBhN2QyZjFkODFmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvZmlsdGVycy9TVkdGRUltYWdlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL2ZpbHRlcnMvU1ZHRkVJbWFnZS5oCkBAIC0yNCw3ICsy
NCw2IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkZpbHRlckVmZmVjdC5oIgotI2luY2x1
ZGUgIlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllci5oIgogI2luY2x1ZGUgIlNWR1ByZXNlcnZl
QXNwZWN0UmF0aW9WYWx1ZS5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0zNCwxMCArMzMs
NyBAQCBjbGFzcyBJbWFnZUJ1ZmZlcjsKIAogY2xhc3MgRkVJbWFnZSBmaW5hbCA6IHB1YmxpYyBG
aWx0ZXJFZmZlY3QgewogcHVibGljOgotICAgIHVzaW5nIFNvdXJjZUltYWdlID0gc3RkOjp2YXJp
YW50PAotICAgICAgICBSZWY8SW1hZ2U+LAotICAgICAgICBSZWY8SW1hZ2VCdWZmZXI+Ci0gICAg
PjsKKyAgICB1c2luZyBTb3VyY2VJbWFnZSA9IHN0ZDo6dmFyaWFudDxSZWY8SW1hZ2U+LCBSZWY8
SW1hZ2VCdWZmZXI+PjsKIAogICAgIHN0YXRpYyBSZWY8RkVJbWFnZT4gY3JlYXRlKEZpbHRlciYs
IFJlZjxJbWFnZT4mJiwgY29uc3QgU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlJik7CiAgICAg
c3RhdGljIFJlZjxGRUltYWdlPiBjcmVhdGUoRmlsdGVyJiwgU291cmNlSW1hZ2UmJiwgY29uc3Qg
RmxvYXRSZWN0JiBzb3VyY2VJbWFnZVJlY3QsIGNvbnN0IFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9W
YWx1ZSYpOwpAQCAtNDgsOCArNDQsNiBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIEZFSW1hZ2Uo
RmlsdGVyJiwgU291cmNlSW1hZ2UmJiwgY29uc3QgRmxvYXRSZWN0JiBzb3VyY2VJbWFnZVJlY3Qs
IGNvbnN0IFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZSYpOwogCi0gICAgY29uc3QgY2hhciog
ZmlsdGVyTmFtZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICJGRUltYWdlIjsgfQotCiAgICAgdm9p
ZCBwbGF0Zm9ybUFwcGx5U29mdHdhcmUoKSBmaW5hbDsKICAgICB2b2lkIGRldGVybWluZUFic29s
dXRlUGFpbnRSZWN0KCkgZmluYWw7CiAgICAgV1RGOjpUZXh0U3RyZWFtJiBleHRlcm5hbFJlcHJl
c2VudGF0aW9uKFdURjo6VGV4dFN0cmVhbSYsIFJlcHJlc2VudGF0aW9uVHlwZSkgY29uc3QgZmlu
YWw7CkBAIC02MCwzICs1NCw1IEBAIHByaXZhdGU6CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCisKK1NQRUNJQUxJWkVfVFlQRV9UUkFJVFNfRklMVEVSX0VGRkVDVChGRUltYWdlKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL2ZpbHRlcnMvU1ZHRmlsdGVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9maWx0ZXJzL1NWR0ZpbHRlci5jcHAKaW5k
ZXggOWE5NGE0NjAzNTg3OTA4YTM4NGQxNzQyN2IzNzE5MzU5MmI3YmNlNy4uODJlOTQzNjcyM2U4
NTVkNjUyNzk3YTEzNzA3ZDVhYmU5ZWU2MGEyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
c3ZnL2dyYXBoaWNzL2ZpbHRlcnMvU1ZHRmlsdGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvZ3JhcGhpY3MvZmlsdGVycy9TVkdGaWx0ZXIuY3BwCkBAIC0yNSw3ICsyNSw3IEBACiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKIFNWR0ZpbHRlcjo6U1ZHRmlsdGVyKGNvbnN0IEFmZmluZVRyYW5z
Zm9ybSYgYWJzb2x1dGVUcmFuc2Zvcm0sIGNvbnN0IEZsb2F0UmVjdCYgYWJzb2x1dGVTb3VyY2VE
cmF3aW5nUmVnaW9uLCBjb25zdCBGbG9hdFJlY3QmIHRhcmdldEJvdW5kaW5nQm94LCBjb25zdCBG
bG9hdFJlY3QmIGZpbHRlclJlZ2lvbiwgYm9vbCBlZmZlY3RCQm94TW9kZSkKLSAgICA6IEZpbHRl
cihhYnNvbHV0ZVRyYW5zZm9ybSkKKyAgICA6IEZpbHRlcihGaWx0ZXI6OlR5cGU6OkNTU0ZpbHRl
ciwgYWJzb2x1dGVUcmFuc2Zvcm0pCiAgICAgLCBtX2Fic29sdXRlU291cmNlRHJhd2luZ1JlZ2lv
bihhYnNvbHV0ZVNvdXJjZURyYXdpbmdSZWdpb24pCiAgICAgLCBtX3RhcmdldEJvdW5kaW5nQm94
KHRhcmdldEJvdW5kaW5nQm94KQogICAgICwgbV9maWx0ZXJSZWdpb24oZmlsdGVyUmVnaW9uKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL2ZpbHRlcnMvU1ZHRmlsdGVy
LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvZmlsdGVycy9TVkdGaWx0ZXIuaAppbmRl
eCA4MDkzMTQ2ZDY0YWY4ODg1YmMzZGE0OTMwMmY1YWVhMGZiMTcwMGNmLi41MjU4ODZhZjMwODRj
ZTc4MzVjODRkNGE5NzYzNWRmMmU2MzliNWE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvZ3JhcGhpY3MvZmlsdGVycy9TVkdGaWx0ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
Z3JhcGhpY3MvZmlsdGVycy9TVkdGaWx0ZXIuaApAQCAtNTcsNCArNTcsNSBAQCBwcml2YXRlOgog
CiBTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0JFR0lOKFdlYkNvcmU6OlNWR0ZpbHRlcikKICAgICBz
dGF0aWMgYm9vbCBpc1R5cGUoY29uc3QgV2ViQ29yZTo6RmlsdGVyJiBmaWx0ZXIpIHsgcmV0dXJu
IGZpbHRlci5pc1NWR0ZpbHRlcigpOyB9CisgICAgc3RhdGljIGJvb2wgaXNUeXBlKGNvbnN0IFdl
YkNvcmU6OkZpbHRlckZ1bmN0aW9uJiBmdW5jdGlvbikgeyByZXR1cm4gZnVuY3Rpb24uaXNTVkdG
aWx0ZXIoKTsgfQogU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19FTkQoKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL2ZpbHRlcnMvU1ZHRmlsdGVyQnVpbGRlci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvZmlsdGVycy9TVkdGaWx0ZXJCdWlsZGVyLmNwcApp
bmRleCA5NmYzYTgwNTA0Mjk1NTU4MTAzNGQ5OGE0ZmRhYzRlYWYzMDg3Yjk0Li44MDAwZjg0YjVj
ZDYwZTA2ZTIzNjRlZDVjZGU4ZjhlM2ZkOTQ0MTZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvZ3JhcGhpY3MvZmlsdGVycy9TVkdGaWx0ZXJCdWlsZGVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvZ3JhcGhpY3MvZmlsdGVycy9TVkdGaWx0ZXJCdWlsZGVyLmNwcApAQCAtMjEs
NiArMjEsNyBAQAogI2luY2x1ZGUgIlNWR0ZpbHRlckJ1aWxkZXIuaCIKIAogI2luY2x1ZGUgIkZp
bHRlckVmZmVjdC5oIgorI2luY2x1ZGUgIkltYWdlQnVmZmVyLmgiCiAjaW5jbHVkZSAiU291cmNl
QWxwaGEuaCIKICNpbmNsdWRlICJTb3VyY2VHcmFwaGljLmgiCiAjaW5jbHVkZSA8d3RmL3RleHQv
U3RyaW5nQ29uY2F0ZW5hdGVOdW1iZXJzLmg+Cg==
</data>
<flag name="review"
          id="468444"
          type_id="1"
          status="+"
          setter="mmaxfield"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>443739</attachid>
            <date>2021-11-09 15:30:01 -0800</date>
            <delta_ts>2021-11-09 15:40:19 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-232413-20211109153001.patch</filename>
            <type>text/plain</type>
            <size>69462</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1NDg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTdlMWE3OTk5YmM0NjIx
OTQwYzM0MjY4YWVkYTljMzljZGYwZmE4MS4uYjRiMmIyNzQwZTc5M2E2YjZmZjI2NmQyMjVlMWEw
NjFlMWFiZjBmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzMyBAQAorMjAyMS0xMS0wOSAgU2Fp
ZCBBYm91LUhhbGxhd2EgIDxzYWlkQGFwcGxlLmNvbT4KKworICAgICAgICBbR1BVIFByb2Nlc3Nd
IEludHJvZHVjZSBGaWx0ZXJGdW5jdGlvbiBhbmQgbWFrZSBpdCB0aGUgYmFzZSBjbGFzcyBvZiBG
aWx0ZXIgYW5kIEZpbHRlckVmZmVjdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjMyNDEzCisgICAgICAgIHJkYXI6Ly84NDk2Njc2NQorCisgICAgICAg
IFJldmlld2VkIGJ5IE15bGVzIEMuIE1heGZpZWxkLgorCisgICAgICAgIFRoaXMgYWxsb3dzIENT
U0ZpbHRlciB0byBob2xkIGEgbGlzdCBvZiBGaWx0ZXJGdW5jdGlvbnMuIFRoZSBGaWx0ZXIgaW4K
KyAgICAgICAgdGhpcyBjYXNlIHdpbGwgYWN0IGxpa2UgYSBjb21wb3NpdGUgcGF0dGVybiBvZiBG
aWx0ZXJFZmZlY3RzLgorCisgICAgICAgIFRoaXMgcGF0Y2ggYWxzbworICAgICAgICAxLiBSZW1v
dmVzIHRoZSB2aXJ0dWFsIGZ1bmN0aW9uIGZpbHRlck5hbWUoKSBmcm9tIGFsbCB0aGUgRmlsdGVy
RWZmZWN0CisgICAgICAgICAgIGNsYXNzZXMuIEl0IHJlcGxhY2VzIGl0IHdpdGggYSBzdGF0aWMg
ZnVuY3Rpb24gaW4gRmlsdGVyRnVuY3Rpb24uCisgICAgICAgIDIuIFJlbW92ZXMgdGhlIHZpcnR1
YWwgZnVuY3Rpb24gZmlsdGVyRWZmZWN0VHlwZSgpIGFuZCB0aGUgZnVuY3Rpb24KKyAgICAgICAg
ICAgRmlsdGVyRWZmZWN0OjpmaWx0ZXJFZmZlY3RDbGFzc1R5cGUoKSBzaW5jZSB0aGV5IGNhbiBi
b3RoIGJlIHJlcGxhY2VkCisgICAgICAgICAgIGJ5IEZpbHRlckZ1bmN0aW9uOjpmaWx0ZXJUeXBl
KCkuCisgICAgICAgIDMuIEFkZHMgdHJhaXQgbWFjcm9zIGZvciBhbGwgRmlsdGVyRWZmZWN0cyBh
bmQgdGhlIFNWR0ZpbHRlcnMgY2xhc3MuCisKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAg
ICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvY29yZWltYWdlL0ZpbHRlckVmZmVjdFJlbmRlcmVyQ29yZUltYWdlLm1tOgor
ICAgICAgICAoV2ViQ29yZTo6RmlsdGVyRWZmZWN0UmVuZGVyZXJDb3JlSW1hZ2U6OnN1cHBvcnRz
Q29yZUltYWdlUmVuZGVyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbHRlckVmZmVjdFJlbmRl
cmVyQ29yZUltYWdlOjpjb25uZWN0Q0lGaWx0ZXJzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9maWx0ZXJzL0ZFQmxlbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RkVCbGVuZDo6RkVC
bGVuZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUJsZW5kLmg6Cisg
ICAgICAgICgpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMv
RkVDb2xvck1hdHJpeC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGRUNvbG9yTWF0cml4OjpGRUNv
bG9yTWF0cml4KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29sb3JN
YXRyaXguaDoKKyAgICAgICAgKGlzVHlwZSk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvZmlsdGVycy9GRUNvbXBvbmVudFRyYW5zZmVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkZFQ29tcG9uZW50VHJhbnNmZXI6OkZFQ29tcG9uZW50VHJhbnNmZXIpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb21wb25lbnRUcmFuc2Zlci5oOgorICAgICAg
ICAoaXNUeXBlKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJz
L0ZFQ29tcG9zaXRlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZFQ29tcG9zaXRlOjpGRUNvbXBv
c2l0ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbXBvc2l0ZS5o
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb252b2x2ZU1hdHJpeC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpGRUNvbnZvbHZlTWF0cml4OjpGRUNvbnZvbHZlTWF0cml4
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29udm9sdmVNYXRyaXgu
aDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRGlmZnVzZUxpZ2h0aW5n
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZFRGlmZnVzZUxpZ2h0aW5nOjpGRURpZmZ1c2VMaWdo
dGluZyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRURpZmZ1c2VMaWdo
dGluZy5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVEaXNwbGFjZW1l
bnRNYXAuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RkVEaXNwbGFjZW1lbnRNYXA6OkZFRGlzcGxh
Y2VtZW50TWFwKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRGlzcGxh
Y2VtZW50TWFwLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRURyb3BT
aGFkb3cuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RkVEcm9wU2hhZG93OjpGRURyb3BTaGFkb3cp
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVEcm9wU2hhZG93Lmg6Cisg
ICAgICAgICgpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMv
RkVGbG9vZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGRUZsb29kOjpGRUZsb29kKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRmxvb2QuaDoKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFR2F1c3NpYW5CbHVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkZFR2F1c3NpYW5CbHVyOjpGRUdhdXNzaWFuQmx1cik6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvZmlsdGVycy9GRUdhdXNzaWFuQmx1ci5oOgorICAgICAgICAoKTogRGVsZXRlZC4K
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFTGlnaHRpbmcuaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFTWVyZ2UuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RkVNZXJnZTo6RkVNZXJnZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmls
dGVycy9GRU1lcmdlLmg6CisgICAgICAgICgpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2ZpbHRlcnMvRkVNb3JwaG9sb2d5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZF
TW9ycGhvbG9neTo6RkVNb3JwaG9sb2d5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9m
aWx0ZXJzL0ZFTW9ycGhvbG9neS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRl
cnMvRkVPZmZzZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RkVPZmZzZXQ6OkZFT2Zmc2V0KToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFT2Zmc2V0Lmg6CisgICAgICAg
ICgpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVTcGVj
dWxhckxpZ2h0aW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZFU3BlY3VsYXJMaWdodGluZzo6
RkVTcGVjdWxhckxpZ2h0aW5nKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJz
L0ZFU3BlY3VsYXJMaWdodGluZy5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRl
cnMvRkVUaWxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZFVGlsZTo6RkVUaWxlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkZFVGlsZTo6cGxhdGZvcm1BcHBseVNvZnR3YXJlKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFVGlsZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2ZpbHRlcnMvRkVUdXJidWxlbmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZFVHVy
YnVsZW5jZTo6RkVUdXJidWxlbmNlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0
ZXJzL0ZFVHVyYnVsZW5jZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMv
RmlsdGVyLmg6CisgICAgICAgIChXZWJDb3JlOjpGaWx0ZXI6OkZpbHRlcik6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXJFZmZlY3QuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RmlsdGVyRWZmZWN0OjpGaWx0ZXJFZmZlY3QpOgorICAgICAgICAoV2ViQ29yZTo6Rmls
dGVyRWZmZWN0OjpkZXRlcm1pbmVGaWx0ZXJQcmltaXRpdmVTdWJyZWdpb24pOgorICAgICAgICAo
V2ViQ29yZTo6RmlsdGVyRWZmZWN0OjpjcmVhdGVJbWFnZUJ1ZmZlclJlc3VsdCk6CisgICAgICAg
IChXZWJDb3JlOjpGaWx0ZXJFZmZlY3Q6OmNyZWF0ZVVubXVsdGlwbGllZEltYWdlUmVzdWx0KToK
KyAgICAgICAgKFdlYkNvcmU6OkZpbHRlckVmZmVjdDo6Y3JlYXRlUHJlbXVsdGlwbGllZEltYWdl
UmVzdWx0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlckVmZmVj
dC5oOgorICAgICAgICAoaXNUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbHRlckVmZmVjdDo6
ZmlsdGVyRWZmZWN0VHlwZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpGaWx0
ZXJFZmZlY3Q6OmZpbHRlckVmZmVjdENsYXNzVHlwZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXJGdW5jdGlvbi5jcHA6IEFkZGVkLgor
ICAgICAgICAoV2ViQ29yZTo6RmlsdGVyRnVuY3Rpb246OkZpbHRlckZ1bmN0aW9uKToKKyAgICAg
ICAgKFdlYkNvcmU6OkZpbHRlckZ1bmN0aW9uOjpmaWx0ZXJOYW1lKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlckZ1bmN0aW9uLmg6IEFkZGVkLgorICAgICAgICAo
V2ViQ29yZTo6RmlsdGVyRnVuY3Rpb246OmZpbHRlclR5cGUgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6RmlsdGVyRnVuY3Rpb246OmlzQ1NTRmlsdGVyIGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OkZpbHRlckZ1bmN0aW9uOjppc1NWR0ZpbHRlciBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpGaWx0ZXJGdW5jdGlvbjo6aXNGaWx0ZXIgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Rmls
dGVyRnVuY3Rpb246OmlzRmlsdGVyRWZmZWN0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkZp
bHRlckZ1bmN0aW9uOjpzb3VyY2VBbHBoYU5hbWUpOgorICAgICAgICAoV2ViQ29yZTo6RmlsdGVy
RnVuY3Rpb246OnNvdXJjZUdyYXBoaWNOYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbHRlckZ1
bmN0aW9uOjpmaWx0ZXJOYW1lIGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9m
aWx0ZXJzL1NvdXJjZUFscGhhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUFscGhhOjpT
b3VyY2VBbHBoYSk6CisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VBbHBoYTo6ZWZmZWN0TmFtZSk6
IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9Tb3VyY2VBbHBo
YS5oOgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQWxwaGE6OmVmZmVjdE5hbWUpOgorICAgICAg
ICAoKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1NvdXJj
ZUdyYXBoaWMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U291cmNlR3JhcGhpYzo6ZWZmZWN0TmFt
ZSk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9Tb3VyY2VH
cmFwaGljLmg6CisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VHcmFwaGljOjplZmZlY3ROYW1lKToK
KyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUdyYXBoaWM6OlNvdXJjZUdyYXBoaWMpOgorICAgICAg
ICAoKTogRGVsZXRlZC4KKyAgICAgICAgKGlzVHlwZSk6IERlbGV0ZWQuCisgICAgICAgICogcGxh
dGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZUNvY29hLmNw
cDoKKyAgICAgICAgKiByZW5kZXJpbmcvQ1NTRmlsdGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkNTU0ZpbHRlcjo6Q1NTRmlsdGVyKToKKyAgICAgICAgKiBzdmcvZ3JhcGhpY3MvZmlsdGVycy9T
VkdGRUltYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZFSW1hZ2U6OkZFSW1hZ2UpOgorICAg
ICAgICAqIHN2Zy9ncmFwaGljcy9maWx0ZXJzL1NWR0ZFSW1hZ2UuaDoKKyAgICAgICAgKiBzdmcv
Z3JhcGhpY3MvZmlsdGVycy9TVkdGaWx0ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRmls
dGVyOjpTVkdGaWx0ZXIpOgorICAgICAgICAqIHN2Zy9ncmFwaGljcy9maWx0ZXJzL1NWR0ZpbHRl
ci5oOgorICAgICAgICAoaXNUeXBlKToKKyAgICAgICAgKiBzdmcvZ3JhcGhpY3MvZmlsdGVycy9T
VkdGaWx0ZXJCdWlsZGVyLmNwcDoKKwogMjAyMS0xMS0wOSAgVGltIE5ndXllbiAgPG50aW1AYXBw
bGUuY29tPgogCiAgICAgICAgIFJlLXVzZSBpc0NTU1dpZGVLZXl3b3JkIGluIENTU1ZhcmlhYmxl
UGFyc2VyLmNwcCAmIENTU1Byb3BlcnR5UGFyc2VyLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAppbmRleCA5Mjhk
OGI0OTcyYjI2NTM4NDk3NGQ1MWQxNDY0OWRhODZkNDI0OTQyLi5mMTUxZTRkMzY3M2U3ZmExNmZk
YzEyZjRmZmNlYWQ5NzJjZDdjMmZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2Vz
LnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApAQCAtMjA5MCw2ICsyMDkwLDcg
QEAgcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRVRpbGUuY3BwCiBwbGF0Zm9ybS9ncmFwaGlj
cy9maWx0ZXJzL0ZFVHVyYnVsZW5jZS5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmls
dGVyRWZmZWN0LmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXJFZmZlY3RSZW5k
ZXJlci5jcHAKK3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyRnVuY3Rpb24uY3BwCiBw
bGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlck9wZXJhdGlvbi5jcHAKIHBsYXRmb3JtL2dy
YXBoaWNzL2ZpbHRlcnMvRmlsdGVyT3BlcmF0aW9ucy5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL2Zp
bHRlcnMvUG9pbnRMaWdodFNvdXJjZS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAzYjU1N2RlMTBkMDFmYjVkMDljYTMxZWU0
ZDQ5NmNmYzc0ZDdmZDM2Li5mMGY5ZGE0MGE2YWJjZjlmZTE2YWM4Yjc5ZmI4NDZjNzc2YWQwZmNl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCkBAIC0xMDg0OCw2ICsxMDg0OCw4IEBACiAJCTcyNEVFNTRFMURDN0YyNUIwMEE5MUZGQiAv
KiBBY3Rpdml0eVN0YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFjdGl2
aXR5U3RhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzI0RUU1NEYxREM3RjI1
QjAwQTkxRkZCIC8qIEFjdGl2aXR5U3RhdGVDaGFuZ2VPYnNlcnZlci5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBBY3Rpdml0eVN0YXRlQ2hhbmdlT2JzZXJ2ZXIuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzI1MjM5NkIyNTRDQURDMjAwRjVGQjE1IC8qIE5hdGl2
ZUltYWdlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE5hdGl2ZUltYWdlLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNzI2MkQ3NTYyNzJBMTc0MTAwQzU2QTA5IC8qIEZpbHRlckZ1
bmN0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZpbHRlckZ1bmN0aW9uLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTcyNjJENzU3MjcyQTE3NDEwMEM1NkEwOSAvKiBGaWx0ZXJGdW5jdGlv
bi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBGaWx0ZXJGdW5jdGlvbi5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTcyNjZGMDEzMjI0MUJDRTIwMDgzMzk3NSAvKiBTVkdQcm9wZXJ0
eUFuaW1hdG9yRmFjdG9yeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTVkdQcm9wZXJ0eUFuaW1hdG9yRmFj
dG9yeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3MjY2RjAxNDIyNDFCRkIyMDA4
MzM5NzUgLyogU1ZHUHJpbWl0aXZlUHJvcGVydHlBbmltYXRvckltcGwuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gU1ZHUHJpbWl0aXZlUHJvcGVydHlBbmltYXRvckltcGwuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNzI2NkYwMTUyMjQxQzA5ODAwODMzOTc1IC8qIFNWR1ByaW1pdGl2ZVByb3Bl
cnR5QW5pbWF0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZHUHJpbWl0aXZlUHJvcGVydHlBbmltYXRv
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTg5MDcsMTEgKzE4OTA5LDExIEBA
CiAJCTFBNTY5Q0M0MEQ3RTJCNjAwMDdDMzk4MyAvKiBicmlkZ2UgKi8gPSB7CiAJCQlpc2EgPSBQ
QlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAotCQkJCTU5QjU5NzcxMTEwODY1NTYwMDcxNTlFOCAv
KiBqc2MgKi8sCiAJCQkJMUE1NjlDRTIwRDdFMkI4MjAwN0MzOTgzIC8qIG9iamMgKi8sCiAJCQkJ
NTk5RTc1OEYxMTA1NUExRjAwRDkwNEZBIC8qIEJyaWRnZS5oICovLAogCQkJCTFBNzFENTc5MEYz
MzgxOTAwMEY5Q0U0RSAvKiBJZGVudGlmaWVyUmVwLmNwcCAqLywKIAkJCQkxQTcxRDU3QTBGMzM4
MTkwMDBGOUNFNEUgLyogSWRlbnRpZmllclJlcC5oICovLAorCQkJCTU5QjU5NzcxMTEwODY1NTYw
MDcxNTlFOCAvKiBqc2MgKi8sCiAJCQkJMUE1NjlDRUYwRDdFMkI4MjAwN0MzOTgzIC8qIHJ1bnRp
bWVfYXJyYXkuY3BwICovLAogCQkJCTFBNTY5Q0YwMEQ3RTJCODIwMDdDMzk4MyAvKiBydW50aW1l
X2FycmF5LmggKi8sCiAJCQkJMUE1NjlDRjEwRDdFMkI4MjAwN0MzOTgzIC8qIHJ1bnRpbWVfbWV0
aG9kLmNwcCAqLywKQEAgLTI1ODY5LDYgKzI1ODcxLDggQEAKIAkJCQkwOEM5MjUxODBGQ0M3QzRB
MDA0ODBERUMgLyogRmlsdGVyRWZmZWN0LmggKi8sCiAJCQkJMkM4NTY1MzgyNEMxMEIwQjAwQTM3
NjczIC8qIEZpbHRlckVmZmVjdFJlbmRlcmVyLmNwcCAqLywKIAkJCQkyQzg1NjUzMzI0QzBGNzND
MDBBMzc2NzMgLyogRmlsdGVyRWZmZWN0UmVuZGVyZXIuaCAqLywKKwkJCQk3MjYyRDc1NzI3MkEx
NzQxMDBDNTZBMDkgLyogRmlsdGVyRnVuY3Rpb24uY3BwICovLAorCQkJCTcyNjJENzU2MjcyQTE3
NDEwMEM1NkEwOSAvKiBGaWx0ZXJGdW5jdGlvbi5oICovLAogCQkJCTQ5RUNFQjYzMTQ5OTc5MEQw
MENERDNBNCAvKiBGaWx0ZXJPcGVyYXRpb24uY3BwICovLAogCQkJCTQ5RUNFQjY0MTQ5OTc5MEQw
MENERDNBNCAvKiBGaWx0ZXJPcGVyYXRpb24uaCAqLywKIAkJCQk0OUVDRUI2NTE0OTk3OTBEMDBD
REQzQTQgLyogRmlsdGVyT3BlcmF0aW9ucy5jcHAgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb3JlaW1hZ2UvRmlsdGVyRWZmZWN0UmVuZGVyZXJDb3Jl
SW1hZ2UubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb3JlaW1hZ2UvRmls
dGVyRWZmZWN0UmVuZGVyZXJDb3JlSW1hZ2UubW0KaW5kZXggOTdlMTEzN2IyOWQ3MWMyYjU0NDE1
NzMwNjcyNDAwYjgyNDI4YjM2MS4uZmM2Zjg3ODg4NWViZDA0OTE3MjQ5NmIzN2M0MTQ3OTczNjI5
NDQ5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29yZWlt
YWdlL0ZpbHRlckVmZmVjdFJlbmRlcmVyQ29yZUltYWdlLm1tCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NvcmVpbWFnZS9GaWx0ZXJFZmZlY3RSZW5kZXJlckNvcmVJbWFn
ZS5tbQpAQCAtNzIsMTEgKzcyLDExIEBAIHN0YXRpYyBib29sIGlzTnVsbE9yTGluZWFyQ29tcG9u
ZW50VHJhbnNmZXJGdW5jdGlvbihjb25zdCBGRUNvbXBvbmVudFRyYW5zZmVyJiBlCiBib29sIEZp
bHRlckVmZmVjdFJlbmRlcmVyQ29yZUltYWdlOjpzdXBwb3J0c0NvcmVJbWFnZVJlbmRlcmluZyhG
aWx0ZXJFZmZlY3QmIGVmZmVjdCkKIHsKICAgICAvLyBGSVhNRTogY2hhbmdlIHJldHVybiB2YWx1
ZSB0byB0cnVlIG9uY2UgdGhleSBhcmUgaW1wbGVtZW50ZWQKLSAgICBzd2l0Y2ggKGVmZmVjdC5m
aWx0ZXJFZmZlY3RDbGFzc1R5cGUoKSkgeworICAgIHN3aXRjaCAoZWZmZWN0LmZpbHRlclR5cGUo
KSkgewogICAgIGNhc2UgRmlsdGVyRWZmZWN0OjpUeXBlOjpTb3VyY2VHcmFwaGljOgogICAgICAg
ICByZXR1cm4gdHJ1ZTsKICAgICAgICAgICAgIAotICAgIGNhc2UgRmlsdGVyRWZmZWN0OjpUeXBl
OjpDb2xvck1hdHJpeDogeworICAgIGNhc2UgRmlsdGVyRWZmZWN0OjpUeXBlOjpGRUNvbG9yTWF0
cml4OiB7CiAgICAgICAgIHN3aXRjaCAoZG93bmNhc3Q8RkVDb2xvck1hdHJpeD4oZWZmZWN0KS50
eXBlKCkpIHsKICAgICAgICAgY2FzZSBGRUNPTE9STUFUUklYX1RZUEVfVU5LTk9XTjoKICAgICAg
ICAgY2FzZSBGRUNPTE9STUFUUklYX1RZUEVfTFVNSU5BTkNFVE9BTFBIQToKQEAgLTg4LDI2ICs4
OCwxMCBAQCBib29sIEZpbHRlckVmZmVjdFJlbmRlcmVyQ29yZUltYWdlOjpzdXBwb3J0c0NvcmVJ
bWFnZVJlbmRlcmluZyhGaWx0ZXJFZmZlY3QmIGVmZgogICAgICAgICB9CiAgICAgfQogCi0gICAg
Y2FzZSBGaWx0ZXJFZmZlY3Q6OlR5cGU6OkNvbXBvbmVudFRyYW5zZmVyOgorICAgIGNhc2UgRmls
dGVyRWZmZWN0OjpUeXBlOjpGRUNvbXBvbmVudFRyYW5zZmVyOgogICAgICAgICByZXR1cm4gaXNO
dWxsT3JMaW5lYXJDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uKGRvd25jYXN0PEZFQ29tcG9uZW50
VHJhbnNmZXI+KGVmZmVjdCkpOwogCi0gICAgY2FzZSBGaWx0ZXJFZmZlY3Q6OlR5cGU6OkJsZW5k
OgotICAgIGNhc2UgRmlsdGVyRWZmZWN0OjpUeXBlOjpDb21wb3NpdGU6Ci0gICAgY2FzZSBGaWx0
ZXJFZmZlY3Q6OlR5cGU6OkNvbnZvbHZlTWF0cml4OgotICAgIGNhc2UgRmlsdGVyRWZmZWN0OjpU
eXBlOjpEaWZmdXNlTGlnaHRpbmc6Ci0gICAgY2FzZSBGaWx0ZXJFZmZlY3Q6OlR5cGU6OkRpc3Bs
YWNlbWVudE1hcDoKLSAgICBjYXNlIEZpbHRlckVmZmVjdDo6VHlwZTo6RHJvcFNoYWRvdzoKLSAg
ICBjYXNlIEZpbHRlckVmZmVjdDo6VHlwZTo6Rmxvb2Q6Ci0gICAgY2FzZSBGaWx0ZXJFZmZlY3Q6
OlR5cGU6OkdhdXNzaWFuQmx1cjoKLSAgICBjYXNlIEZpbHRlckVmZmVjdDo6VHlwZTo6SW1hZ2U6
Ci0gICAgY2FzZSBGaWx0ZXJFZmZlY3Q6OlR5cGU6OkxpZ2h0aW5nOgotICAgIGNhc2UgRmlsdGVy
RWZmZWN0OjpUeXBlOjpNZXJnZToKLSAgICBjYXNlIEZpbHRlckVmZmVjdDo6VHlwZTo6TW9ycGhv
bG9neToKLSAgICBjYXNlIEZpbHRlckVmZmVjdDo6VHlwZTo6T2Zmc2V0OgotICAgIGNhc2UgRmls
dGVyRWZmZWN0OjpUeXBlOjpTcGVjdWxhckxpZ2h0aW5nOgotICAgIGNhc2UgRmlsdGVyRWZmZWN0
OjpUeXBlOjpUaWxlOgotICAgIGNhc2UgRmlsdGVyRWZmZWN0OjpUeXBlOjpUdXJidWxlbmNlOgot
ICAgIGNhc2UgRmlsdGVyRWZmZWN0OjpUeXBlOjpTb3VyY2VBbHBoYToKKyAgICBkZWZhdWx0Ogog
ICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogICAgIHJldHVybiBmYWxzZTsKQEAgLTEzNywz
MiArMTIxLDE0IEBAIFJldGFpblB0cjxDSUltYWdlPiBGaWx0ZXJFZmZlY3RSZW5kZXJlckNvcmVJ
bWFnZTo6Y29ubmVjdENJRmlsdGVycyhGaWx0ZXJFZmZlY3QmCiAgICAgaWYgKGVmZmVjdC5hYnNv
bHV0ZVBhaW50UmVjdCgpLmlzRW1wdHkoKSB8fCBJbWFnZUJ1ZmZlcjo6c2l6ZU5lZWRzQ2xhbXBp
bmcoZWZmZWN0LmFic29sdXRlUGFpbnRSZWN0KCkuc2l6ZSgpKSkKICAgICAgICAgcmV0dXJuIG51
bGxwdHI7CiAgICAgCi0gICAgc3dpdGNoIChlZmZlY3QuZmlsdGVyRWZmZWN0Q2xhc3NUeXBlKCkp
IHsKKyAgICBzd2l0Y2ggKGVmZmVjdC5maWx0ZXJUeXBlKCkpIHsKICAgICBjYXNlIEZpbHRlckVm
ZmVjdDo6VHlwZTo6U291cmNlR3JhcGhpYzoKICAgICAgICAgcmV0dXJuIGltYWdlRm9yU291cmNl
R3JhcGhpYyhkb3duY2FzdDxTb3VyY2VHcmFwaGljPihlZmZlY3QpKTsKLSAgICBjYXNlIEZpbHRl
ckVmZmVjdDo6VHlwZTo6Q29sb3JNYXRyaXg6CisgICAgY2FzZSBGaWx0ZXJFZmZlY3Q6OlR5cGU6
OkZFQ29sb3JNYXRyaXg6CiAgICAgICAgIHJldHVybiBpbWFnZUZvckZFQ29sb3JNYXRyaXgoZG93
bmNhc3Q8RkVDb2xvck1hdHJpeD4oZWZmZWN0KSwgaW5wdXRJbWFnZXMpOwotICAgIGNhc2UgRmls
dGVyRWZmZWN0OjpUeXBlOjpDb21wb25lbnRUcmFuc2ZlcjoKKyAgICBjYXNlIEZpbHRlckVmZmVj
dDo6VHlwZTo6RkVDb21wb25lbnRUcmFuc2ZlcjoKICAgICAgICAgcmV0dXJuIGltYWdlRm9yRkVD
b21wb25lbnRUcmFuc2Zlcihkb3duY2FzdDxGRUNvbXBvbmVudFRyYW5zZmVyPihlZmZlY3QpLCBp
bnB1dEltYWdlcyk7CiAKLSAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRob3NlIGZpbHRlcnMgdXNp
bmcgQ0lGaWx0ZXIgc28gdGhhdCB0aGUgZnVuY3Rpb24gcmV0dXJucyBhIHZhbGlkIENJSW1hZ2UK
LSAgICBjYXNlIEZpbHRlckVmZmVjdDo6VHlwZTo6QmxlbmQ6Ci0gICAgY2FzZSBGaWx0ZXJFZmZl
Y3Q6OlR5cGU6OkNvbXBvc2l0ZToKLSAgICBjYXNlIEZpbHRlckVmZmVjdDo6VHlwZTo6Q29udm9s
dmVNYXRyaXg6Ci0gICAgY2FzZSBGaWx0ZXJFZmZlY3Q6OlR5cGU6OkRpZmZ1c2VMaWdodGluZzoK
LSAgICBjYXNlIEZpbHRlckVmZmVjdDo6VHlwZTo6RGlzcGxhY2VtZW50TWFwOgotICAgIGNhc2Ug
RmlsdGVyRWZmZWN0OjpUeXBlOjpEcm9wU2hhZG93OgotICAgIGNhc2UgRmlsdGVyRWZmZWN0OjpU
eXBlOjpGbG9vZDoKLSAgICBjYXNlIEZpbHRlckVmZmVjdDo6VHlwZTo6R2F1c3NpYW5CbHVyOgot
ICAgIGNhc2UgRmlsdGVyRWZmZWN0OjpUeXBlOjpJbWFnZToKLSAgICBjYXNlIEZpbHRlckVmZmVj
dDo6VHlwZTo6TGlnaHRpbmc6Ci0gICAgY2FzZSBGaWx0ZXJFZmZlY3Q6OlR5cGU6Ok1lcmdlOgot
ICAgIGNhc2UgRmlsdGVyRWZmZWN0OjpUeXBlOjpNb3JwaG9sb2d5OgotICAgIGNhc2UgRmlsdGVy
RWZmZWN0OjpUeXBlOjpPZmZzZXQ6Ci0gICAgY2FzZSBGaWx0ZXJFZmZlY3Q6OlR5cGU6OlNwZWN1
bGFyTGlnaHRpbmc6Ci0gICAgY2FzZSBGaWx0ZXJFZmZlY3Q6OlR5cGU6OlRpbGU6Ci0gICAgY2Fz
ZSBGaWx0ZXJFZmZlY3Q6OlR5cGU6OlR1cmJ1bGVuY2U6Ci0gICAgY2FzZSBGaWx0ZXJFZmZlY3Q6
OlR5cGU6OlNvdXJjZUFscGhhOgogICAgIGRlZmF1bHQ6CiAgICAgICAgIHJldHVybiBudWxscHRy
OwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Zp
bHRlcnMvRkVCbGVuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0
ZXJzL0ZFQmxlbmQuY3BwCmluZGV4IDVhYzdmNDkwZDRjZGE1MzNhNDFmNWMzZDg1NDUzMmMxOGFk
Y2RiNjYuLmI0Y2FlZDQ1NTU3MmZjODVjZWQ4YTRmMjMxYzlmODMwMjdiYWZiMGIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVCbGVuZC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUJsZW5kLmNw
cApAQCAtMzUsNyArMzUsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBGRUJsZW5kOjpGRUJs
ZW5kKEZpbHRlciYgZmlsdGVyLCBCbGVuZE1vZGUgbW9kZSkKLSAgICA6IEZpbHRlckVmZmVjdChm
aWx0ZXIsIFR5cGU6OkJsZW5kKQorICAgIDogRmlsdGVyRWZmZWN0KGZpbHRlciwgRmlsdGVyRWZm
ZWN0OjpUeXBlOjpGRUJsZW5kKQogICAgICwgbV9tb2RlKG1vZGUpCiB7CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQmxlbmQuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVCbGVuZC5oCmluZGV4IDcw
ZTg0MDdiZjVjMjAwZDQ1MjE2YjhmOWMwODUxN2I1MDc5ZTc5NjYuLmI4NGM4ZGQyODA1OGZmNDVk
NTRjZGY4YTczYTJiYTcxNzI1ZmRlNWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVCbGVuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVCbGVuZC5oCkBAIC0zNiw4ICszNiw2IEBAIHB1YmxpYzoK
ICAgICBib29sIHNldEJsZW5kTW9kZShCbGVuZE1vZGUpOwogCiBwcml2YXRlOgotICAgIGNvbnN0
IGNoYXIqIGZpbHRlck5hbWUoKSBjb25zdCBmaW5hbCB7IHJldHVybiAiRkVCbGVuZCI7IH0KLQog
ICAgIHZvaWQgcGxhdGZvcm1BcHBseVNvZnR3YXJlKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBwbGF0
Zm9ybUFwcGx5R2VuZXJpYyh1bnNpZ25lZCBjaGFyKiBzcmNQaXhlbEFycmF5QSwgdW5zaWduZWQg
Y2hhciogc3JjUGl4ZWxBcnJheUIsIHVuc2lnbmVkIGNoYXIqIGRzdFBpeGVsQXJyYXksCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjb2xvckFycmF5TGVuZ3RoKTsKQEAgLTUz
LDMgKzUxLDQgQEAgcHJpdmF0ZToKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCitTUEVDSUFM
SVpFX1RZUEVfVFJBSVRTX0ZJTFRFUl9FRkZFQ1QoRkVCbGVuZCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb2xvck1hdHJpeC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29sb3JNYXRyaXguY3Bw
CmluZGV4IDE2NDIyZDZkYzViNTdlYzZmNzQ3YTQyMTBjMjg1NDMzMmJhMWQzZTUuLmE3OTFiZDZk
MzFmZDc1MDRhMTEzMjdmMWQ0MWFjYmQzYTQ5ZTE5NTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb2xvck1hdHJpeC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbG9yTWF0cml4LmNwcApA
QCAtMzYsNyArMzYsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBGRUNvbG9yTWF0cml4OjpG
RUNvbG9yTWF0cml4KEZpbHRlciYgZmlsdGVyLCBDb2xvck1hdHJpeFR5cGUgdHlwZSwgVmVjdG9y
PGZsb2F0PiYmIHZhbHVlcykKLSAgICA6IEZpbHRlckVmZmVjdChmaWx0ZXIsIFR5cGU6OkNvbG9y
TWF0cml4KQorICAgIDogRmlsdGVyRWZmZWN0KGZpbHRlciwgRmlsdGVyRWZmZWN0OjpUeXBlOjpG
RUNvbG9yTWF0cml4KQogICAgICwgbV90eXBlKHR5cGUpCiAgICAgLCBtX3ZhbHVlcyhXVEZNb3Zl
KHZhbHVlcykpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9maWx0ZXJzL0ZFQ29sb3JNYXRyaXguaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2ZpbHRlcnMvRkVDb2xvck1hdHJpeC5oCmluZGV4IDI5ZTQxYThhZWQxZTRmMGI1Mzk3MDNh
YzRkYjU1MjRlZmE0YzEyM2YuLjk5MmU3NWY5ZTgxNTBjNjE3YTJlZjA3YzY1OTM2MTYwMDVlNDBm
NDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMv
RkVDb2xvck1hdHJpeC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Zp
bHRlcnMvRkVDb2xvck1hdHJpeC5oCkBAIC01Miw4ICs1Miw2IEBAIHB1YmxpYzoKIHByaXZhdGU6
CiAgICAgRkVDb2xvck1hdHJpeChGaWx0ZXImLCBDb2xvck1hdHJpeFR5cGUsIFZlY3RvcjxmbG9h
dD4mJik7CiAKLSAgICBjb25zdCBjaGFyKiBmaWx0ZXJOYW1lKCkgY29uc3QgZmluYWwgeyByZXR1
cm4gIkZFQ29sb3JNYXRyaXgiOyB9Ci0KICAgICB2b2lkIHBsYXRmb3JtQXBwbHlTb2Z0d2FyZSgp
IG92ZXJyaWRlOwogCiAgICAgV1RGOjpUZXh0U3RyZWFtJiBleHRlcm5hbFJlcHJlc2VudGF0aW9u
KFdURjo6VGV4dFN0cmVhbSYsIFJlcHJlc2VudGF0aW9uVHlwZSkgY29uc3Qgb3ZlcnJpZGU7CkBA
IC05Myw3ICs5MSw0IEBAIGlubGluZSB2b2lkIEZFQ29sb3JNYXRyaXg6OmNhbGN1bGF0ZUh1ZVJv
dGF0ZUNvbXBvbmVudHMoZmxvYXQqIGNvbXBvbmVudHMsIGZsb2F0CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKIAotU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19CRUdJTihXZWJDb3JlOjpGRUNvbG9y
TWF0cml4KQotICAgIHN0YXRpYyBib29sIGlzVHlwZShjb25zdCBXZWJDb3JlOjpGaWx0ZXJFZmZl
Y3QmIGVmZmVjdCkgeyByZXR1cm4gZWZmZWN0LmZpbHRlckVmZmVjdENsYXNzVHlwZSgpID09IFdl
YkNvcmU6OkZpbHRlckVmZmVjdDo6VHlwZTo6Q29sb3JNYXRyaXg7IH0KLVNQRUNJQUxJWkVfVFlQ
RV9UUkFJVFNfRU5EKCkKLQorU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19GSUxURVJfRUZGRUNUKEZF
Q29sb3JNYXRyaXgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9maWx0ZXJzL0ZFQ29tcG9uZW50VHJhbnNmZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbXBvbmVudFRyYW5zZmVyLmNwcAppbmRleCA4NDdlYTU4
ZjVmOWIwMzg2NmQ5ZWFjNTdmMTBjY2Y1NzQwMmY5ZTYzLi5jZTAwY2MxOTgyOTc5YjQwOTQwNGQ1
Y2ZkY2MwM2E2ZWQzMzVjM2IyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9maWx0ZXJzL0ZFQ29tcG9uZW50VHJhbnNmZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb21wb25lbnRUcmFuc2Zlci5jcHAKQEAg
LTMzLDkgKzMzLDggQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1GRUNvbXBvbmVudFRyYW5z
ZmVyOjpGRUNvbXBvbmVudFRyYW5zZmVyKEZpbHRlciYgZmlsdGVyLCBjb25zdCBDb21wb25lbnRU
cmFuc2ZlckZ1bmN0aW9uJiByZWRGdW5jdGlvbiwKLSAgICBjb25zdCBDb21wb25lbnRUcmFuc2Zl
ckZ1bmN0aW9uJiBncmVlbkZ1bmN0aW9uLCBjb25zdCBDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9u
JiBibHVlRnVuY3Rpb24sIGNvbnN0IENvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb24mIGFscGhhRnVu
Y3Rpb24pCi0gICAgOiBGaWx0ZXJFZmZlY3QoZmlsdGVyLCBUeXBlOjpDb21wb25lbnRUcmFuc2Zl
cikKK0ZFQ29tcG9uZW50VHJhbnNmZXI6OkZFQ29tcG9uZW50VHJhbnNmZXIoRmlsdGVyJiBmaWx0
ZXIsIGNvbnN0IENvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb24mIHJlZEZ1bmN0aW9uLCBjb25zdCBD
b21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uJiBncmVlbkZ1bmN0aW9uLCBjb25zdCBDb21wb25lbnRU
cmFuc2ZlckZ1bmN0aW9uJiBibHVlRnVuY3Rpb24sIGNvbnN0IENvbXBvbmVudFRyYW5zZmVyRnVu
Y3Rpb24mIGFscGhhRnVuY3Rpb24pCisgICAgOiBGaWx0ZXJFZmZlY3QoZmlsdGVyLCBGaWx0ZXJF
ZmZlY3Q6OlR5cGU6OkZFQ29tcG9uZW50VHJhbnNmZXIpCiAgICAgLCBtX3JlZEZ1bmN0aW9uKHJl
ZEZ1bmN0aW9uKQogICAgICwgbV9ncmVlbkZ1bmN0aW9uKGdyZWVuRnVuY3Rpb24pCiAgICAgLCBt
X2JsdWVGdW5jdGlvbihibHVlRnVuY3Rpb24pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29tcG9uZW50VHJhbnNmZXIuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb21wb25lbnRUcmFuc2Zlci5oCmlu
ZGV4IDJiNTg2ZGVmN2ZiNDJhMzdiMmUxMjNlZGE4NzExOWM0ZWIzNDhhNTEuLjNiOWQyNjA4YjA5
NzRkODI1NWVjYWE0MmE4M2MyYWZkZjYzOGEzZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb21wb25lbnRUcmFuc2Zlci5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb21wb25lbnRUcmFuc2Zl
ci5oCkBAIC02NSw4ICs2NSw2IEBAIHByaXZhdGU6CiAgICAgRkVDb21wb25lbnRUcmFuc2ZlcihG
aWx0ZXImLCBjb25zdCBDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uJiByZWRGdW5jLCBjb25zdCBD
b21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uJiBncmVlbkZ1bmMsCiAgICAgICAgICAgICAgICAgICAg
ICAgICBjb25zdCBDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uJiBibHVlRnVuYywgY29uc3QgQ29t
cG9uZW50VHJhbnNmZXJGdW5jdGlvbiYgYWxwaGFGdW5jKTsKIAotICAgICBjb25zdCBjaGFyKiBm
aWx0ZXJOYW1lKCkgY29uc3QgZmluYWwgeyByZXR1cm4gIkZFQ29tcG9uZW50VHJhbnNmZXIiOyB9
Ci0KICAgICB1c2luZyBMb29rdXBUYWJsZSA9IHN0ZDo6YXJyYXk8dWludDhfdCwgMjU2PjsKIAog
ICAgIHN0YXRpYyB2b2lkIGNvbXB1dGVJZGVudGl0eVRhYmxlKExvb2t1cFRhYmxlJiwgY29uc3Qg
Q29tcG9uZW50VHJhbnNmZXJGdW5jdGlvbiYpOwpAQCAtODksNiArODcsNCBAQCBwcml2YXRlOgog
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKLVNQRUNJQUxJWkVfVFlQRV9UUkFJVFNfQkVHSU4o
V2ViQ29yZTo6RkVDb21wb25lbnRUcmFuc2ZlcikKLSAgICBzdGF0aWMgYm9vbCBpc1R5cGUoY29u
c3QgV2ViQ29yZTo6RmlsdGVyRWZmZWN0JiBlZmZlY3QpIHsgcmV0dXJuIGVmZmVjdC5maWx0ZXJF
ZmZlY3RDbGFzc1R5cGUoKSA9PSBXZWJDb3JlOjpGaWx0ZXJFZmZlY3Q6OlR5cGU6OkNvbXBvbmVu
dFRyYW5zZmVyOyB9Ci1TUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0VORCgpCitTUEVDSUFMSVpFX1RZ
UEVfVFJBSVRTX0ZJTFRFUl9FRkZFQ1QoRkVDb21wb25lbnRUcmFuc2ZlcikKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb21wb3NpdGUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbXBvc2l0ZS5j
cHAKaW5kZXggODMzNTMwOTA4MWEyNmJhMmMzMWMzYmRhYzg4ODY2OWUyOGUzNDU2ZC4uZTBiZWYz
MDc0MDVmZjIzM2U4YTJhZmI1Y2JlYzhkNTQ4ZDIyNzgwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbXBvc2l0ZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbXBvc2l0ZS5jcHAKQEAg
LTMzLDcgKzMzLDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogRkVDb21wb3NpdGU6OkZFQ29t
cG9zaXRlKEZpbHRlciYgZmlsdGVyLCBjb25zdCBDb21wb3NpdGVPcGVyYXRpb25UeXBlJiB0eXBl
LCBmbG9hdCBrMSwgZmxvYXQgazIsIGZsb2F0IGszLCBmbG9hdCBrNCkKLSAgICA6IEZpbHRlckVm
ZmVjdChmaWx0ZXIsIFR5cGU6OkNvbXBvc2l0ZSkKKyAgICA6IEZpbHRlckVmZmVjdChmaWx0ZXIs
IEZpbHRlckVmZmVjdDo6VHlwZTo6RkVDb21wb3NpdGUpCiAgICAgLCBtX3R5cGUodHlwZSkKICAg
ICAsIG1fazEoazEpCiAgICAgLCBtX2syKGsyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbXBvc2l0ZS5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbXBvc2l0ZS5oCmluZGV4IDdkMDhlMWY3MTA3
YjRiOTY4YzU4ZTNhMzdjMzJhZTJmNzZhZWEwYzMuLjM5MjM3ZmViMTI3YWQxZmYxZGUyMTgzNGJk
N2IyYjczN2ZhYWYzMmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2ZpbHRlcnMvRkVDb21wb3NpdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9maWx0ZXJzL0ZFQ29tcG9zaXRlLmgKQEAgLTY0LDggKzY0LDYgQEAgcHJvdGVjdGVk
OgogcHJpdmF0ZToKICAgICBGRUNvbXBvc2l0ZShGaWx0ZXImLCBjb25zdCBDb21wb3NpdGVPcGVy
YXRpb25UeXBlJiwgZmxvYXQsIGZsb2F0LCBmbG9hdCwgZmxvYXQpOwogCi0gICAgY29uc3QgY2hh
ciogZmlsdGVyTmFtZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICJGRUNvbXBvc2l0ZSI7IH0KLQog
ICAgIHZvaWQgY29ycmVjdEZpbHRlclJlc3VsdElmTmVlZGVkKCkgb3ZlcnJpZGU7CiAgICAgdm9p
ZCBkZXRlcm1pbmVBYnNvbHV0ZVBhaW50UmVjdCgpIG92ZXJyaWRlOwogCkBAIC05MCwzICs4OCw0
IEBAIHByaXZhdGU6CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAorU1BFQ0lBTElaRV9UWVBF
X1RSQUlUU19GSUxURVJfRUZGRUNUKEZFQ29tcG9zaXRlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbnZvbHZlTWF0cml4LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb252b2x2ZU1hdHJpeC5j
cHAKaW5kZXggM2JiZTc4MzU5OGQ3MDkzNWE5NWM2ZjE1NmVjMjkzM2MwZTk5ZjA1MC4uODBiNGM4
OTI5NTIwZmEwNTdjN2M1MmQyY2Q3YmJiNGU5OGVjNTU2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbnZvbHZlTWF0cml4LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29udm9sdmVNYXRy
aXguY3BwCkBAIC0zMiwxMCArMzIsOCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLUZFQ29u
dm9sdmVNYXRyaXg6OkZFQ29udm9sdmVNYXRyaXgoRmlsdGVyJiBmaWx0ZXIsIGNvbnN0IEludFNp
emUmIGtlcm5lbFNpemUsCi0gICAgZmxvYXQgZGl2aXNvciwgZmxvYXQgYmlhcywgY29uc3QgSW50
UG9pbnQmIHRhcmdldE9mZnNldCwgRWRnZU1vZGVUeXBlIGVkZ2VNb2RlLAotICAgIGNvbnN0IEZs
b2F0UG9pbnQmIGtlcm5lbFVuaXRMZW5ndGgsIGJvb2wgcHJlc2VydmVBbHBoYSwgY29uc3QgVmVj
dG9yPGZsb2F0PiYga2VybmVsTWF0cml4KQotICAgIDogRmlsdGVyRWZmZWN0KGZpbHRlciwgVHlw
ZTo6Q29udm9sdmVNYXRyaXgpCitGRUNvbnZvbHZlTWF0cml4OjpGRUNvbnZvbHZlTWF0cml4KEZp
bHRlciYgZmlsdGVyLCBjb25zdCBJbnRTaXplJiBrZXJuZWxTaXplLCBmbG9hdCBkaXZpc29yLCBm
bG9hdCBiaWFzLCBjb25zdCBJbnRQb2ludCYgdGFyZ2V0T2Zmc2V0LCBFZGdlTW9kZVR5cGUgZWRn
ZU1vZGUsIGNvbnN0IEZsb2F0UG9pbnQmIGtlcm5lbFVuaXRMZW5ndGgsIGJvb2wgcHJlc2VydmVB
bHBoYSwgY29uc3QgVmVjdG9yPGZsb2F0PiYga2VybmVsTWF0cml4KQorICAgIDogRmlsdGVyRWZm
ZWN0KGZpbHRlciwgRmlsdGVyRWZmZWN0OjpUeXBlOjpGRUNvbnZvbHZlTWF0cml4KQogICAgICwg
bV9rZXJuZWxTaXplKGtlcm5lbFNpemUpCiAgICAgLCBtX2Rpdmlzb3IoZGl2aXNvcikKICAgICAs
IG1fYmlhcyhiaWFzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZmlsdGVycy9GRUNvbnZvbHZlTWF0cml4LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9maWx0ZXJzL0ZFQ29udm9sdmVNYXRyaXguaAppbmRleCA2N2Q0YzY1NjdmY2U2YjI3
ZWU1YWI4OTVhNmUxZTUwMDU0ZTEzZGJhLi5jMWE1YzViODY3NTYyZjI2YWY4MDdkNDVjNWI0MDA5
NmRiMWNmZmZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9m
aWx0ZXJzL0ZFQ29udm9sdmVNYXRyaXguaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9maWx0ZXJzL0ZFQ29udm9sdmVNYXRyaXguaApAQCAtODAsOCArODAsNiBAQCBwcml2
YXRlOgogICAgIEZFQ29udm9sdmVNYXRyaXgoRmlsdGVyJiwgY29uc3QgSW50U2l6ZSYsIGZsb2F0
LCBmbG9hdCwKICAgICAgICAgICAgIGNvbnN0IEludFBvaW50JiwgRWRnZU1vZGVUeXBlLCBjb25z
dCBGbG9hdFBvaW50JiwgYm9vbCwgY29uc3QgVmVjdG9yPGZsb2F0PiYpOwogCi0gICAgY29uc3Qg
Y2hhciogZmlsdGVyTmFtZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICJGRUNvbnZvbHZlTWF0cml4
IjsgfQotCiAgICAgdm9pZCBkZXRlcm1pbmVBYnNvbHV0ZVBhaW50UmVjdCgpIG92ZXJyaWRlIHsg
c2V0QWJzb2x1dGVQYWludFJlY3QoZW5jbG9zaW5nSW50UmVjdChtYXhFZmZlY3RSZWN0KCkpKTsg
fQogCiAgICAgdm9pZCBwbGF0Zm9ybUFwcGx5U29mdHdhcmUoKSBvdmVycmlkZTsKQEAgLTExNSwz
ICsxMTMsNCBAQCBwcml2YXRlOgogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKK1NQRUNJQUxJ
WkVfVFlQRV9UUkFJVFNfRklMVEVSX0VGRkVDVChGRUNvbnZvbHZlTWF0cml4KQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRURpZmZ1c2VMaWdo
dGluZy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRGlm
ZnVzZUxpZ2h0aW5nLmNwcAppbmRleCBlZWIxNzI4ZGIzNWU4YWMzMDJiMjdlNGMzZmYzNGNiODg1
NWI5ZDA5Li40NGUyZTYyMTRhMzc2YTRkYTFlZTc3M2NkZDQxNzY1Nzc0MDliMWUwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRGlmZnVzZUxp
Z2h0aW5nLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJz
L0ZFRGlmZnVzZUxpZ2h0aW5nLmNwcApAQCAtMjgsNyArMjgsNyBAQAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCiBGRURpZmZ1c2VMaWdodGluZzo6RkVEaWZmdXNlTGlnaHRpbmcoRmlsdGVyJiBmaWx0
ZXIsIGNvbnN0IENvbG9yJiBsaWdodGluZ0NvbG9yLCBmbG9hdCBzdXJmYWNlU2NhbGUsIGZsb2F0
IGRpZmZ1c2VDb25zdGFudCwgZmxvYXQga2VybmVsVW5pdExlbmd0aFgsIGZsb2F0IGtlcm5lbFVu
aXRMZW5ndGhZLCBSZWY8TGlnaHRTb3VyY2U+JiYgbGlnaHRTb3VyY2UpCi0gICAgOiBGRUxpZ2h0
aW5nKGZpbHRlciwgRGlmZnVzZUxpZ2h0aW5nLCBsaWdodGluZ0NvbG9yLCBzdXJmYWNlU2NhbGUs
IGRpZmZ1c2VDb25zdGFudCwgMCwgMCwga2VybmVsVW5pdExlbmd0aFgsIGtlcm5lbFVuaXRMZW5n
dGhZLCBXVEZNb3ZlKGxpZ2h0U291cmNlKSwgVHlwZTo6RGlmZnVzZUxpZ2h0aW5nKQorICAgIDog
RkVMaWdodGluZyhmaWx0ZXIsIERpZmZ1c2VMaWdodGluZywgbGlnaHRpbmdDb2xvciwgc3VyZmFj
ZVNjYWxlLCBkaWZmdXNlQ29uc3RhbnQsIDAsIDAsIGtlcm5lbFVuaXRMZW5ndGhYLCBrZXJuZWxV
bml0TGVuZ3RoWSwgV1RGTW92ZShsaWdodFNvdXJjZSksIEZpbHRlckVmZmVjdDo6VHlwZTo6RkVE
aWZmdXNlTGlnaHRpbmcpCiB7CiB9CiAKQEAgLTM3LDggKzM3LDYgQEAgUmVmPEZFRGlmZnVzZUxp
Z2h0aW5nPiBGRURpZmZ1c2VMaWdodGluZzo6Y3JlYXRlKEZpbHRlciYgZmlsdGVyLCBjb25zdCBD
b2xvciYgbGkKICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBGRURpZmZ1c2VMaWdodGluZyhmaWx0
ZXIsIGxpZ2h0aW5nQ29sb3IsIHN1cmZhY2VTY2FsZSwgZGlmZnVzZUNvbnN0YW50LCBrZXJuZWxV
bml0TGVuZ3RoWCwga2VybmVsVW5pdExlbmd0aFksIFdURk1vdmUobGlnaHRTb3VyY2UpKSk7CiB9
CiAKLUZFRGlmZnVzZUxpZ2h0aW5nOjp+RkVEaWZmdXNlTGlnaHRpbmcoKSA9IGRlZmF1bHQ7Ci0K
IGJvb2wgRkVEaWZmdXNlTGlnaHRpbmc6OnNldERpZmZ1c2VDb25zdGFudChmbG9hdCBkaWZmdXNl
Q29uc3RhbnQpCiB7CiAgICAgaWYgKG1fZGlmZnVzZUNvbnN0YW50ID09IGRpZmZ1c2VDb25zdGFu
dCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMv
RkVEaWZmdXNlTGlnaHRpbmcuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Zp
bHRlcnMvRkVEaWZmdXNlTGlnaHRpbmcuaAppbmRleCBkZjYxMTRkMGZiOGUyZjNlMTEyOGI4NDI2
MTVlNDc1MTNhMGRkZGMzLi4yNzM3ZjYwZjRjM2Y0YjM2MjRkZjgwZWJiOTk4MzdiYTY1OWZhMGJl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZF
RGlmZnVzZUxpZ2h0aW5nLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZmlsdGVycy9GRURpZmZ1c2VMaWdodGluZy5oCkBAIC0zMCw3ICszMCw2IEBAIGNsYXNzIExpZ2h0
U291cmNlOwogY2xhc3MgRkVEaWZmdXNlTGlnaHRpbmcgOiBwdWJsaWMgRkVMaWdodGluZyB7CiBw
dWJsaWM6CiAgICAgc3RhdGljIFJlZjxGRURpZmZ1c2VMaWdodGluZz4gY3JlYXRlKEZpbHRlciYs
IGNvbnN0IENvbG9yJiwgZmxvYXQsIGZsb2F0LCBmbG9hdCwgZmxvYXQsIFJlZjxMaWdodFNvdXJj
ZT4mJik7Ci0gICAgdmlydHVhbCB+RkVEaWZmdXNlTGlnaHRpbmcoKTsKIAogICAgIGZsb2F0IGRp
ZmZ1c2VDb25zdGFudCgpIGNvbnN0IHsgcmV0dXJuIG1fZGlmZnVzZUNvbnN0YW50OyB9CiAgICAg
Ym9vbCBzZXREaWZmdXNlQ29uc3RhbnQoZmxvYXQpOwpAQCAtNDMsMyArNDIsNCBAQCBwcml2YXRl
OgogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKK1NQRUNJQUxJWkVfVFlQRV9UUkFJVFNfRklM
VEVSX0VGRkVDVChGRURpZmZ1c2VMaWdodGluZykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVEaXNwbGFjZW1lbnRNYXAuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRURpc3BsYWNlbWVudE1hcC5jcHAK
aW5kZXggMDQ3NDkzMzkyYmIyODE0NmQ4YjE2OWJhMGE3YzMyYjE2YzU2M2ZhMS4uNDZiNzdjODVh
MWNmOGQ0ODVjMDVjMzE1NzMzOWUwYmI0YWViZTU4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRURpc3BsYWNlbWVudE1hcC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRURpc3BsYWNlbWVudE1h
cC5jcHAKQEAgLTMyLDcgKzMyLDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogRkVEaXNwbGFj
ZW1lbnRNYXA6OkZFRGlzcGxhY2VtZW50TWFwKEZpbHRlciYgZmlsdGVyLCBDaGFubmVsU2VsZWN0
b3JUeXBlIHhDaGFubmVsU2VsZWN0b3IsIENoYW5uZWxTZWxlY3RvclR5cGUgeUNoYW5uZWxTZWxl
Y3RvciwgZmxvYXQgc2NhbGUpCi0gICAgOiBGaWx0ZXJFZmZlY3QoZmlsdGVyLCBUeXBlOjpEaXNw
bGFjZW1lbnRNYXApCisgICAgOiBGaWx0ZXJFZmZlY3QoZmlsdGVyLCBGaWx0ZXJFZmZlY3Q6OlR5
cGU6OkZFRGlzcGxhY2VtZW50TWFwKQogICAgICwgbV94Q2hhbm5lbFNlbGVjdG9yKHhDaGFubmVs
U2VsZWN0b3IpCiAgICAgLCBtX3lDaGFubmVsU2VsZWN0b3IoeUNoYW5uZWxTZWxlY3RvcikKICAg
ICAsIG1fc2NhbGUoc2NhbGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9maWx0ZXJzL0ZFRGlzcGxhY2VtZW50TWFwLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRGlzcGxhY2VtZW50TWFwLmgKaW5kZXggZGQ3MzJhODgx
MDczZTI2NmJjODQ2YWZlNjgxOWU2NzUxNjIzYTNhMi4uYWE1YjZkNDZiYzQ2NGZjNmQwNjBkODZh
ZjZiYWUwZWYwN2VjOWU4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZmlsdGVycy9GRURpc3BsYWNlbWVudE1hcC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVEaXNwbGFjZW1lbnRNYXAuaApAQCAtNTQsOCArNTQs
NiBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIEZFRGlzcGxhY2VtZW50TWFwKEZpbHRlciYsIENo
YW5uZWxTZWxlY3RvclR5cGUgeENoYW5uZWxTZWxlY3RvciwgQ2hhbm5lbFNlbGVjdG9yVHlwZSB5
Q2hhbm5lbFNlbGVjdG9yLCBmbG9hdCk7CiAKLSAgICBjb25zdCBjaGFyKiBmaWx0ZXJOYW1lKCkg
Y29uc3QgZmluYWwgeyByZXR1cm4gIkZFRGlzcGxhY2VtZW50TWFwIjsgfQotCiAgICAgdm9pZCBw
bGF0Zm9ybUFwcGx5U29mdHdhcmUoKSBvdmVycmlkZTsKIAogICAgIHZvaWQgZGV0ZXJtaW5lQWJz
b2x1dGVQYWludFJlY3QoKSBvdmVycmlkZSB7IHNldEFic29sdXRlUGFpbnRSZWN0KGVuY2xvc2lu
Z0ludFJlY3QobWF4RWZmZWN0UmVjdCgpKSk7IH0KQEAgLTcyLDMgKzcwLDQgQEAgcHJpdmF0ZToK
IAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCitTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0ZJTFRF
Ul9FRkZFQ1QoRkVEaXNwbGFjZW1lbnRNYXApCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRHJvcFNoYWRvdy5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRHJvcFNoYWRvdy5jcHAKaW5kZXggMzVmYmFi
NDFlODA5MjE2ZTRiMjI0MzUxMTg2MjNlMjhmZmQ2MWVmYS4uNzNmYjc0MDE3NzRhM2NkNjg3YjUz
ODc2M2RiYjNkNmQxYjRhZjU0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZmlsdGVycy9GRURyb3BTaGFkb3cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVEcm9wU2hhZG93LmNwcApAQCAtMzIsNyArMzIsNyBA
QAogbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIAogRkVEcm9wU2hhZG93OjpGRURyb3BTaGFkb3co
RmlsdGVyJiBmaWx0ZXIsIGZsb2F0IHN0ZFgsIGZsb2F0IHN0ZFksIGZsb2F0IGR4LCBmbG9hdCBk
eSwgY29uc3QgQ29sb3ImIHNoYWRvd0NvbG9yLCBmbG9hdCBzaGFkb3dPcGFjaXR5KQotICAgIDog
RmlsdGVyRWZmZWN0KGZpbHRlciwgVHlwZTo6RHJvcFNoYWRvdykKKyAgICA6IEZpbHRlckVmZmVj
dChmaWx0ZXIsIEZpbHRlckVmZmVjdDo6VHlwZTo6RkVEcm9wU2hhZG93KQogICAgICwgbV9zdGRY
KHN0ZFgpCiAgICAgLCBtX3N0ZFkoc3RkWSkKICAgICAsIG1fZHgoZHgpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRHJvcFNoYWRvdy5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRURyb3BTaGFkb3cuaApp
bmRleCBiNGUwYTIwMTJmZWRiN2I3N2JmM2UwNTczNGVlODhhMjllZmYzODRjLi4yYjZlNjYxM2I1
YWUxNzg0YTcxMDJkNTQ2ZGRiYmNiZDYxMzg1OGZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRHJvcFNoYWRvdy5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVEcm9wU2hhZG93LmgKQEAgLTUwLDgg
KzUwLDYgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBGRURyb3BTaGFkb3coRmlsdGVyJiwgZmxv
YXQsIGZsb2F0LCBmbG9hdCwgZmxvYXQsIGNvbnN0IENvbG9yJiwgZmxvYXQpOwogCi0gICAgY29u
c3QgY2hhciogZmlsdGVyTmFtZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICJGRURyb3BTaGFkb3ci
OyB9Ci0KICAgICB2b2lkIHBsYXRmb3JtQXBwbHlTb2Z0d2FyZSgpIG92ZXJyaWRlOwogCiAgICAg
dm9pZCBkZXRlcm1pbmVBYnNvbHV0ZVBhaW50UmVjdCgpIG92ZXJyaWRlOwpAQCAtNzAsMyArNjgs
NCBAQCBwcml2YXRlOgogICAgIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCitTUEVDSUFMSVpF
X1RZUEVfVFJBSVRTX0ZJTFRFUl9FRkZFQ1QoRkVEcm9wU2hhZG93KQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUZsb29kLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVGbG9vZC5jcHAKaW5kZXggYjQy
MzU1MzRjMzhiMWViYTIxMWVlODQ4NjE3OTkyMzgwZjNiNmIwMS4uYTc4NDIxOTY3NGUxYWU5Nzk5
MzQ0MzhkYTU0YTFhNzFjOTgwNDg0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZmlsdGVycy9GRUZsb29kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRmxvb2QuY3BwCkBAIC0zMSw3ICszMSw3IEBACiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKIEZFRmxvb2Q6OkZFRmxvb2QoRmlsdGVyJiBmaWx0ZXIsIGNvbnN0
IENvbG9yJiBmbG9vZENvbG9yLCBmbG9hdCBmbG9vZE9wYWNpdHkpCi0gICAgOiBGaWx0ZXJFZmZl
Y3QoZmlsdGVyLCBUeXBlOjpGbG9vZCkKKyAgICA6IEZpbHRlckVmZmVjdChmaWx0ZXIsIEZpbHRl
ckVmZmVjdDo6VHlwZTo6RkVGbG9vZCkKICAgICAsIG1fZmxvb2RDb2xvcihmbG9vZENvbG9yKQog
ICAgICwgbV9mbG9vZE9wYWNpdHkoZmxvb2RPcGFjaXR5KQogewpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUZsb29kLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRmxvb2QuaAppbmRleCBiNzA0ZGM5Njlj
NmQ3NTg4YmNlYjBhZDhiMjQ2ODJmYTA2MTczNDhlLi4wOGE0ZTk1OTM1ODVkMmZhMDcyNjg0ZDQ1
ZDVmODkzMGYzYWVlZjBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9maWx0ZXJzL0ZFRmxvb2QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9maWx0ZXJzL0ZFRmxvb2QuaApAQCAtNDcsOCArNDcsNiBAQCBwdWJsaWM6CiBwcml2YXRl
OgogICAgIEZFRmxvb2QoRmlsdGVyJiwgY29uc3QgQ29sb3ImLCBmbG9hdCk7CiAKLSAgICBjb25z
dCBjaGFyKiBmaWx0ZXJOYW1lKCkgY29uc3QgZmluYWwgeyByZXR1cm4gIkZFRmxvb2QiOyB9Ci0K
ICAgICB2b2lkIHBsYXRmb3JtQXBwbHlTb2Z0d2FyZSgpIG92ZXJyaWRlOwogCiAgICAgdm9pZCBk
ZXRlcm1pbmVBYnNvbHV0ZVBhaW50UmVjdCgpIG92ZXJyaWRlIHsgc2V0QWJzb2x1dGVQYWludFJl
Y3QoZW5jbG9zaW5nSW50UmVjdChtYXhFZmZlY3RSZWN0KCkpKTsgfQpAQCAtNjEsMyArNTksNCBA
QCBwcml2YXRlOgogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKK1NQRUNJQUxJWkVfVFlQRV9U
UkFJVFNfRklMVEVSX0VGRkVDVChGRUZsb29kKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUdhdXNzaWFuQmx1ci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFR2F1c3NpYW5CbHVyLmNwcAppbmRleCAw
ZjZlZTg3Zjk1ZTc1NzUxODYzZmQyZTVmNTQ5ZTc0ZDk3MjlkYjFmLi4yZGZhMWYzNGRiOTAzMDI1
YzY3MGE4ZGM3MGZhODc5Yjc4MGQzMzgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFR2F1c3NpYW5CbHVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFR2F1c3NpYW5CbHVyLmNwcApAQCAtODAs
NyArODAsNyBAQCBpbmxpbmUgdm9pZCBrZXJuZWxQb3NpdGlvbihpbnQgYmx1ckl0ZXJhdGlvbiwg
dW5zaWduZWQmIHJhZGl1cywgaW50JiBkZWx0YUxlZnQsCiB9CiAKIEZFR2F1c3NpYW5CbHVyOjpG
RUdhdXNzaWFuQmx1cihGaWx0ZXImIGZpbHRlciwgZmxvYXQgeCwgZmxvYXQgeSwgRWRnZU1vZGVU
eXBlIGVkZ2VNb2RlKQotICAgIDogRmlsdGVyRWZmZWN0KGZpbHRlciwgVHlwZTo6R2F1c3NpYW5C
bHVyKQorICAgIDogRmlsdGVyRWZmZWN0KGZpbHRlciwgRmlsdGVyRWZmZWN0OjpUeXBlOjpGRUdh
dXNzaWFuQmx1cikKICAgICAsIG1fc3RkWCh4KQogICAgICwgbV9zdGRZKHkpCiAgICAgLCBtX2Vk
Z2VNb2RlKGVkZ2VNb2RlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZmlsdGVycy9GRUdhdXNzaWFuQmx1ci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZmlsdGVycy9GRUdhdXNzaWFuQmx1ci5oCmluZGV4IGFkN2Q5NTBiOWI3MjNkYzc0
NDY0OWNiYWYwMGE5MTMwYTNiMWQ3MGUuLjc0M2I2NTE1ZGUzZjQ2MjUwODMxZGRjMzI2NjI1MmRh
YjhmYjFmMDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Zp
bHRlcnMvRkVHYXVzc2lhbkJsdXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9maWx0ZXJzL0ZFR2F1c3NpYW5CbHVyLmgKQEAgLTQ3LDggKzQ3LDYgQEAgcHVibGljOgog
cHJpdmF0ZToKICAgICBGRUdhdXNzaWFuQmx1cihGaWx0ZXImLCBmbG9hdCwgZmxvYXQsIEVkZ2VN
b2RlVHlwZSk7CiAKLSAgICBjb25zdCBjaGFyKiBmaWx0ZXJOYW1lKCkgY29uc3QgZmluYWwgeyBy
ZXR1cm4gIkZFR2F1c3NpYW5CbHVyIjsgfQotCiAgICAgc3RhdGljIGNvbnN0IGludCBzX21pbmlt
YWxSZWN0RGltZW5zaW9uID0gMTAwICogMTAwOyAvLyBFbXBpcmljYWwgZGF0YSBsaW1pdCBmb3Ig
cGFyYWxsZWwgam9icwogCiAgICAgc3RydWN0IFBsYXRmb3JtQXBwbHlQYXJhbWV0ZXJzIHsKQEAg
LTgwLDMgKzc4LDQgQEAgcHJpdmF0ZToKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCitTUEVD
SUFMSVpFX1RZUEVfVFJBSVRTX0ZJTFRFUl9FRkZFQ1QoRkVHYXVzc2lhbkJsdXIpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFTGlnaHRpbmcu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVMaWdodGluZy5o
CmluZGV4IGIwYmI3MGExNGQxNzQ5NTA2NzM3ZTg4ZTA1MTRlZTc5NjgyMGE0NDkuLjAxZjQ0MmI0
MDAzM2ZmYTNmNzA3NTcwYTRhMzM0MDMzYmU2YzJiODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVMaWdodGluZy5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVMaWdodGluZy5oCkBAIC0xMzAsOCAr
MTMwLDYgQEAgcHJvdGVjdGVkOgogCiAgICAgRkVMaWdodGluZyhGaWx0ZXImLCBMaWdodGluZ1R5
cGUsIGNvbnN0IENvbG9yJiwgZmxvYXQsIGZsb2F0LCBmbG9hdCwgZmxvYXQsIGZsb2F0LCBmbG9h
dCwgUmVmPExpZ2h0U291cmNlPiYmLCBUeXBlKTsKIAotICAgIGNvbnN0IGNoYXIqIGZpbHRlck5h
bWUoKSBjb25zdCBmaW5hbCB7IHJldHVybiAiRkVMaWdodGluZyI7IH0KLQogICAgIGJvb2wgZHJh
d0xpZ2h0aW5nKFVpbnQ4Q2xhbXBlZEFycmF5JiwgaW50LCBpbnQpOwogCiAgICAgdm9pZCBzZXRQ
aXhlbChpbnQgb2Zmc2V0LCBjb25zdCBMaWdodGluZ0RhdGEmLCBjb25zdCBMaWdodFNvdXJjZTo6
UGFpbnRpbmdEYXRhJiwgaW50IHgsIGludCB5LCBmbG9hdCBmYWN0b3JYLCBmbG9hdCBmYWN0b3JZ
LCBJbnRTaXplIG5vcm1hbFZlY3Rvcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFTWVyZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZmlsdGVycy9GRU1lcmdlLmNwcAppbmRleCAwYTIwMDAxYjE3M2JkOGZkZjZi
YmE2MzZjZDIzY2U0NzAyNmU3YjNmLi42OTdkMmUxNWNjYmYxYWVmZWQwZTg5ZmRhMzRlNzAzMjkz
MDdmNzNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0
ZXJzL0ZFTWVyZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Zp
bHRlcnMvRkVNZXJnZS5jcHAKQEAgLTI5LDcgKzI5LDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogRkVNZXJnZTo6RkVNZXJnZShGaWx0ZXImIGZpbHRlcikKLSAgICA6IEZpbHRlckVmZmVjdChm
aWx0ZXIsIFR5cGU6Ok1lcmdlKQorICAgIDogRmlsdGVyRWZmZWN0KGZpbHRlciwgRmlsdGVyRWZm
ZWN0OjpUeXBlOjpGRU1lcmdlKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFTWVyZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVNZXJnZS5oCmluZGV4IDVjZmM1Y2I3OTgxOWNlY2VkNTA3
M2U1N2IwMTk0ZWJjZjE4ZjI2MDcuLjI3NTBjNGQ1MjRkM2EwZjVhZTk3NDFmNjQ4MDQ0OTQ1MzQ1
ZDFhYjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRl
cnMvRkVNZXJnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRl
cnMvRkVNZXJnZS5oCkBAIC0zMyw4ICszMyw2IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgRkVN
ZXJnZShGaWx0ZXImKTsKIAotICAgIGNvbnN0IGNoYXIqIGZpbHRlck5hbWUoKSBjb25zdCBmaW5h
bCB7IHJldHVybiAiRkVNZXJnZSI7IH0KLQogICAgIHZvaWQgcGxhdGZvcm1BcHBseVNvZnR3YXJl
KCkgb3ZlcnJpZGU7CiAKICAgICBXVEY6OlRleHRTdHJlYW0mIGV4dGVybmFsUmVwcmVzZW50YXRp
b24oV1RGOjpUZXh0U3RyZWFtJiwgUmVwcmVzZW50YXRpb25UeXBlKSBjb25zdCBvdmVycmlkZTsK
QEAgLTQyLDMgKzQwLDQgQEAgcHJpdmF0ZToKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCitT
UEVDSUFMSVpFX1RZUEVfVFJBSVRTX0ZJTFRFUl9FRkZFQ1QoRkVNZXJnZSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVNb3JwaG9sb2d5LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVNb3JwaG9sb2d5
LmNwcAppbmRleCA2YWUzZDk4OTg2NjI2ZTA3YzA5NGM1ODZmMzE5OGM5YzU4ZGFlZDZiLi45MTkz
YjU4NzE5YTAxOGRkMmM2ODllNjA2NTdkOGI0ZjA0MTNhNjc4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFTW9ycGhvbG9neS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRU1vcnBob2xvZ3kuY3Bw
CkBAIC0zNiw3ICszNiw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIEZFTW9ycGhvbG9neTo6
RkVNb3JwaG9sb2d5KEZpbHRlciYgZmlsdGVyLCBNb3JwaG9sb2d5T3BlcmF0b3JUeXBlIHR5cGUs
IGZsb2F0IHJhZGl1c1gsIGZsb2F0IHJhZGl1c1kpCi0gICAgOiBGaWx0ZXJFZmZlY3QoZmlsdGVy
LCBUeXBlOjpNb3JwaG9sb2d5KQorICAgIDogRmlsdGVyRWZmZWN0KGZpbHRlciwgRmlsdGVyRWZm
ZWN0OjpUeXBlOjpGRU1vcnBob2xvZ3kpCiAgICAgLCBtX3R5cGUodHlwZSkKICAgICAsIG1fcmFk
aXVzWChyYWRpdXNYKQogICAgICwgbV9yYWRpdXNZKHJhZGl1c1kpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFTW9ycGhvbG9neS5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRU1vcnBob2xvZ3kuaAppbmRl
eCA0OGZjMzU0MTE3ZmMyN2NjZmM4ZTkzZjE0ZWRmMDc1ZGUzOWM1YTExLi4xYjY5YzYzMjZjYjBi
OTIzNmE5MGQzZDE0MjUzYWUwYjNlZTE0OTg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFTW9ycGhvbG9neS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVNb3JwaG9sb2d5LmgKQEAgLTQ4LDggKzQ4
LDYgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBGRU1vcnBob2xvZ3koRmlsdGVyJiwgTW9ycGhv
bG9neU9wZXJhdG9yVHlwZSwgZmxvYXQgcmFkaXVzWCwgZmxvYXQgcmFkaXVzWSk7CiAKLSAgICBj
b25zdCBjaGFyKiBmaWx0ZXJOYW1lKCkgY29uc3QgZmluYWwgeyByZXR1cm4gIkZFTW9ycGhvbG9n
eSI7IH0KLQogICAgIHZvaWQgcGxhdGZvcm1BcHBseVNvZnR3YXJlKCkgb3ZlcnJpZGU7CiAKICAg
ICB2b2lkIGRldGVybWluZUFic29sdXRlUGFpbnRSZWN0KCkgb3ZlcnJpZGU7CkBAIC04NiwzICs4
NCw0IEBAIHByaXZhdGU6CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAorU1BFQ0lBTElaRV9U
WVBFX1RSQUlUU19GSUxURVJfRUZGRUNUKEZFTW9ycGhvbG9neSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVPZmZzZXQuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRU9mZnNldC5jcHAKaW5kZXggMDI3
MGRiOTI0ODFhMzM5MmQzZDVhMWU5MTdjMmQ2NWFhNDE0MGY2OS4uZmUzY2RiNDhiMDc2ODQzNjdh
ZTdkNjQwYjM0NzM0OTRmYTJjNTk1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZmlsdGVycy9GRU9mZnNldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRU9mZnNldC5jcHAKQEAgLTMxLDcgKzMxLDcgQEAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAogRkVPZmZzZXQ6OkZFT2Zmc2V0KEZpbHRlciYgZmlsdGVyLCBm
bG9hdCBkeCwgZmxvYXQgZHkpCi0gICAgOiBGaWx0ZXJFZmZlY3QoZmlsdGVyLCBUeXBlOjpPZmZz
ZXQpCisgICAgOiBGaWx0ZXJFZmZlY3QoZmlsdGVyLCBGaWx0ZXJFZmZlY3Q6OlR5cGU6OkZFT2Zm
c2V0KQogICAgICwgbV9keChkeCkKICAgICAsIG1fZHkoZHkpCiB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFT2Zmc2V0LmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFT2Zmc2V0LmgKaW5kZXggNjVhYmRh
OTBhNDdiMWJmZTc2YWU1Yzc0YWFiNWFhMTY3ZmIxZTY5ZS4uZGI3MzIyNTVlZTc4ZDMzNjgwOWRi
NDIxNzg1YTkyZjg0NWI5NTI2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZmlsdGVycy9GRU9mZnNldC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2ZpbHRlcnMvRkVPZmZzZXQuaApAQCAtMzksOCArMzksNiBAQCBwdWJsaWM6CiBw
cml2YXRlOgogICAgIEZFT2Zmc2V0KEZpbHRlciYsIGZsb2F0IGR4LCBmbG9hdCBkeSk7CiAKLSAg
ICBjb25zdCBjaGFyKiBmaWx0ZXJOYW1lKCkgY29uc3QgZmluYWwgeyByZXR1cm4gIkZFT2Zmc2V0
IjsgfQotCiAgICAgdm9pZCBwbGF0Zm9ybUFwcGx5U29mdHdhcmUoKSBvdmVycmlkZTsKICAgICAK
ICAgICB2b2lkIGRldGVybWluZUFic29sdXRlUGFpbnRSZWN0KCkgb3ZlcnJpZGU7CkBAIC01Mywz
ICs1MSw0IEBAIHByaXZhdGU6CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAorU1BFQ0lBTEla
RV9UWVBFX1RSQUlUU19GSUxURVJfRUZGRUNUKEZFT2Zmc2V0KQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRVNwZWN1bGFyTGlnaHRpbmcuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRVNwZWN1bGFyTGln
aHRpbmcuY3BwCmluZGV4IDU5OTcyMzA2ODg2YTYzZmE0MTJiNWI3MTQxZjc0ZjljNDg3YTE0NGMu
LjUyZjQ1MDg0MDkwYWRjYjA0ZDdlNDUxMjA1OGVhN2EyYWNkYThmM2MgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVTcGVjdWxhckxpZ2h0aW5n
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFU3Bl
Y3VsYXJMaWdodGluZy5jcHAKQEAgLTI4LDcgKzI4LDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogRkVTcGVjdWxhckxpZ2h0aW5nOjpGRVNwZWN1bGFyTGlnaHRpbmcoRmlsdGVyJiBmaWx0ZXIs
IGNvbnN0IENvbG9yJiBsaWdodGluZ0NvbG9yLCBmbG9hdCBzdXJmYWNlU2NhbGUsIGZsb2F0IHNw
ZWN1bGFyQ29uc3RhbnQsIGZsb2F0IHNwZWN1bGFyRXhwb25lbnQsIGZsb2F0IGtlcm5lbFVuaXRM
ZW5ndGhYLCBmbG9hdCBrZXJuZWxVbml0TGVuZ3RoWSwgUmVmPExpZ2h0U291cmNlPiYmIGxpZ2h0
U291cmNlKQotICAgIDogRkVMaWdodGluZyhmaWx0ZXIsIFNwZWN1bGFyTGlnaHRpbmcsIGxpZ2h0
aW5nQ29sb3IsIHN1cmZhY2VTY2FsZSwgMCwgc3BlY3VsYXJDb25zdGFudCwgc3BlY3VsYXJFeHBv
bmVudCwga2VybmVsVW5pdExlbmd0aFgsIGtlcm5lbFVuaXRMZW5ndGhZLCBXVEZNb3ZlKGxpZ2h0
U291cmNlKSwgVHlwZTo6U3BlY3VsYXJMaWdodGluZykKKyAgICA6IEZFTGlnaHRpbmcoZmlsdGVy
LCBTcGVjdWxhckxpZ2h0aW5nLCBsaWdodGluZ0NvbG9yLCBzdXJmYWNlU2NhbGUsIDAsIHNwZWN1
bGFyQ29uc3RhbnQsIHNwZWN1bGFyRXhwb25lbnQsIGtlcm5lbFVuaXRMZW5ndGhYLCBrZXJuZWxV
bml0TGVuZ3RoWSwgV1RGTW92ZShsaWdodFNvdXJjZSksIEZpbHRlckVmZmVjdDo6VHlwZTo6RkVT
cGVjdWxhckxpZ2h0aW5nKQogewogfQogCkBAIC0zNyw4ICszNyw2IEBAIFJlZjxGRVNwZWN1bGFy
TGlnaHRpbmc+IEZFU3BlY3VsYXJMaWdodGluZzo6Y3JlYXRlKEZpbHRlciYgZmlsdGVyLCBjb25z
dCBDb2xvciYKICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBGRVNwZWN1bGFyTGlnaHRpbmcoZmls
dGVyLCBsaWdodGluZ0NvbG9yLCBzdXJmYWNlU2NhbGUsIHNwZWN1bGFyQ29uc3RhbnQsIHNwZWN1
bGFyRXhwb25lbnQsIGtlcm5lbFVuaXRMZW5ndGhYLCBrZXJuZWxVbml0TGVuZ3RoWSwgV1RGTW92
ZShsaWdodFNvdXJjZSkpKTsKIH0KIAotRkVTcGVjdWxhckxpZ2h0aW5nOjp+RkVTcGVjdWxhckxp
Z2h0aW5nKCkgPSBkZWZhdWx0OwotCiBib29sIEZFU3BlY3VsYXJMaWdodGluZzo6c2V0U3BlY3Vs
YXJDb25zdGFudChmbG9hdCBzcGVjdWxhckNvbnN0YW50KQogewogICAgIGlmIChtX3NwZWN1bGFy
Q29uc3RhbnQgPT0gc3BlY3VsYXJDb25zdGFudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVTcGVjdWxhckxpZ2h0aW5nLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFU3BlY3VsYXJMaWdodGluZy5oCmlu
ZGV4IGU5OThhNzYwNWQxZTQ3MzVkOWY0OTc5OGQzOTgxOGJmM2IyNDk1OGEuLjliYmJhOGE4ZjFm
YzZmMDEwNDU3NjBkYTgwZDM1ZjhjZDI3N2NlMTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVTcGVjdWxhckxpZ2h0aW5nLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRVNwZWN1bGFyTGlnaHRpbmcu
aApAQCAtMjgsNyArMjgsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBGRVNwZWN1bGFy
TGlnaHRpbmcgOiBwdWJsaWMgRkVMaWdodGluZyB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxG
RVNwZWN1bGFyTGlnaHRpbmc+IGNyZWF0ZShGaWx0ZXImLCBjb25zdCBDb2xvciYsIGZsb2F0LCBm
bG9hdCwgZmxvYXQsIGZsb2F0LCBmbG9hdCwgUmVmPExpZ2h0U291cmNlPiYmKTsKLSAgICB2aXJ0
dWFsIH5GRVNwZWN1bGFyTGlnaHRpbmcoKTsKIAogICAgIGZsb2F0IHNwZWN1bGFyQ29uc3RhbnQo
KSBjb25zdCB7IHJldHVybiBtX3NwZWN1bGFyQ29uc3RhbnQ7IH0KICAgICBib29sIHNldFNwZWN1
bGFyQ29uc3RhbnQoZmxvYXQpOwpAQCAtNDQsMyArNDMsNCBAQCBwcml2YXRlOgogCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCiAKK1NQRUNJQUxJWkVfVFlQRV9UUkFJVFNfRklMVEVSX0VGRkVDVChG
RVNwZWN1bGFyTGlnaHRpbmcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9maWx0ZXJzL0ZFVGlsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9maWx0ZXJzL0ZFVGlsZS5jcHAKaW5kZXggMzVjNTFjYmIyMjlkZWU5NjQyZGMxZTdkY2Ew
YzVkYjJmY2FjMjBhZC4uMzU4OTVmZjJkOTM1NDRkYmM0MzkwZDA2ODEzOTU0NzU5NTc3MWYwZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRVRp
bGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVU
aWxlLmNwcApAQCAtMzIsNyArMzIsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBGRVRpbGU6
OkZFVGlsZShGaWx0ZXImIGZpbHRlcikKLSAgICA6IEZpbHRlckVmZmVjdChmaWx0ZXIsIFR5cGU6
OlRpbGUpCisgICAgOiBGaWx0ZXJFZmZlY3QoZmlsdGVyLCBGaWx0ZXJFZmZlY3Q6OlR5cGU6OkZF
VGlsZSkKIHsKIH0KIApAQCAtNTgsNyArNTgsNyBAQCB2b2lkIEZFVGlsZTo6cGxhdGZvcm1BcHBs
eVNvZnR3YXJlKCkKICAgICBGbG9hdFJlY3QgdGlsZVJlY3QgPSBpbi0+bWF4RWZmZWN0UmVjdCgp
OwogICAgIEZsb2F0UG9pbnQgaW5NYXhFZmZlY3RMb2NhdGlvbiA9IHRpbGVSZWN0LmxvY2F0aW9u
KCk7CiAgICAgRmxvYXRQb2ludCBtYXhFZmZlY3RMb2NhdGlvbiA9IG1heEVmZmVjdFJlY3QoKS5s
b2NhdGlvbigpOwotICAgIGlmIChpbi0+ZmlsdGVyRWZmZWN0VHlwZSgpID09IEZpbHRlckVmZmVj
dFR5cGVTb3VyY2VJbnB1dCkgeworICAgIGlmIChpbi0+ZmlsdGVyVHlwZSgpID09IEZpbHRlckVm
ZmVjdDo6VHlwZTo6U291cmNlR3JhcGhpYyB8fCBpbi0+ZmlsdGVyVHlwZSgpID09IEZpbHRlckVm
ZmVjdDo6VHlwZTo6U291cmNlQWxwaGEpIHsKICAgICAgICAgRmlsdGVyJiBmaWx0ZXIgPSB0aGlz
LT5maWx0ZXIoKTsKICAgICAgICAgdGlsZVJlY3QgPSBmaWx0ZXIuZmlsdGVyUmVnaW9uKCk7CiAg
ICAgICAgIHRpbGVSZWN0LnNjYWxlKGZpbHRlci5maWx0ZXJSZXNvbHV0aW9uKCkud2lkdGgoKSwg
ZmlsdGVyLmZpbHRlclJlc29sdXRpb24oKS5oZWlnaHQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFVGlsZS5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRVRpbGUuaAppbmRleCA0OWJkOTlmMDk0NDdk
YWUxY2YwOWFmMTIzNThjNmRlODQwNjg3NzE0Li41YzQ4ZWY0NTE1MGVjMmNmODc5ZmRkYjdlNDhl
OWU5ZThkNTAyNDFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9maWx0ZXJzL0ZFVGlsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2ZpbHRlcnMvRkVUaWxlLmgKQEAgLTMzLDEwICszMyw2IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAg
ICAgRkVUaWxlKEZpbHRlciYpOwogCi0gICAgY29uc3QgY2hhciogZmlsdGVyTmFtZSgpIGNvbnN0
IGZpbmFsIHsgcmV0dXJuICJGRVRpbGUiOyB9Ci0KLSAgICBGaWx0ZXJFZmZlY3RUeXBlIGZpbHRl
ckVmZmVjdFR5cGUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBGaWx0ZXJFZmZlY3RUeXBlVGls
ZTsgfQotCiAgICAgdm9pZCBwbGF0Zm9ybUFwcGx5U29mdHdhcmUoKSBvdmVycmlkZTsKIAogICAg
IHZvaWQgZGV0ZXJtaW5lQWJzb2x1dGVQYWludFJlY3QoKSBvdmVycmlkZSB7IHNldEFic29sdXRl
UGFpbnRSZWN0KGVuY2xvc2luZ0ludFJlY3QobWF4RWZmZWN0UmVjdCgpKSk7IH0KQEAgLTQ2LDMg
KzQyLDQgQEAgcHJpdmF0ZToKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCitTUEVDSUFMSVpF
X1RZUEVfVFJBSVRTX0ZJTFRFUl9FRkZFQ1QoRkVUaWxlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRVR1cmJ1bGVuY2UuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRVR1cmJ1bGVuY2UuY3BwCmluZGV4
IDc3NGU2ODJlM2I0ODU5YmI2ZTIwNmExZDJiZmFlYjBjZWE5MTlmMGIuLjJlYTI1ZmViNmZjYjQx
YjRhM2NlZmI2ZGRhOWQwZWMzNmRkMGRiZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVUdXJidWxlbmNlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFVHVyYnVsZW5jZS5jcHAKQEAgLTQ5LDcg
KzQ5LDcgQEAgc3RhdGljIGNvbnN0IGludCBzX3JhbmRRID0gMTI3NzczOyAvLyBtIC8gYQogc3Rh
dGljIGNvbnN0IGludCBzX3JhbmRSID0gMjgzNjsgLy8gbSAlIGEKIAogRkVUdXJidWxlbmNlOjpG
RVR1cmJ1bGVuY2UoRmlsdGVyJiBmaWx0ZXIsIFR1cmJ1bGVuY2VUeXBlIHR5cGUsIGZsb2F0IGJh
c2VGcmVxdWVuY3lYLCBmbG9hdCBiYXNlRnJlcXVlbmN5WSwgaW50IG51bU9jdGF2ZXMsIGZsb2F0
IHNlZWQsIGJvb2wgc3RpdGNoVGlsZXMpCi0gICAgOiBGaWx0ZXJFZmZlY3QoZmlsdGVyLCBUeXBl
OjpUdXJidWxlbmNlKQorICAgIDogRmlsdGVyRWZmZWN0KGZpbHRlciwgRmlsdGVyRWZmZWN0OjpU
eXBlOjpGRVR1cmJ1bGVuY2UpCiAgICAgLCBtX3R5cGUodHlwZSkKICAgICAsIG1fYmFzZUZyZXF1
ZW5jeVgoYmFzZUZyZXF1ZW5jeVgpCiAgICAgLCBtX2Jhc2VGcmVxdWVuY3lZKGJhc2VGcmVxdWVu
Y3lZKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVy
cy9GRVR1cmJ1bGVuY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRl
cnMvRkVUdXJidWxlbmNlLmgKaW5kZXggNjM3ZDI4NDg5NWUyMzE1MjJhOWFjODU3ZjJjODNmZjcy
MGQ0NTJlNS4uMmRhMDI4YjQ2OTNmYWU2MzE3OTZkZDNkMzI4NThlMzM1MjBhMTMzMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRVR1cmJ1bGVu
Y2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFVHVy
YnVsZW5jZS5oCkBAIC0xMDUsOCArMTA1LDYgQEAgcHJpdmF0ZToKIAogICAgIEZFVHVyYnVsZW5j
ZShGaWx0ZXImLCBUdXJidWxlbmNlVHlwZSwgZmxvYXQsIGZsb2F0LCBpbnQsIGZsb2F0LCBib29s
KTsKIAotICAgIGNvbnN0IGNoYXIqIGZpbHRlck5hbWUoKSBjb25zdCBmaW5hbCB7IHJldHVybiAi
RkVUdXJidWxlbmNlIjsgfQotCiAgICAgdm9pZCBwbGF0Zm9ybUFwcGx5U29mdHdhcmUoKSBvdmVy
cmlkZTsKICAgICB2b2lkIGRldGVybWluZUFic29sdXRlUGFpbnRSZWN0KCkgb3ZlcnJpZGUgeyBz
ZXRBYnNvbHV0ZVBhaW50UmVjdChlbmNsb3NpbmdJbnRSZWN0KG1heEVmZmVjdFJlY3QoKSkpOyB9
CiAgICAgV1RGOjpUZXh0U3RyZWFtJiBleHRlcm5hbFJlcHJlc2VudGF0aW9uKFdURjo6VGV4dFN0
cmVhbSYsIFJlcHJlc2VudGF0aW9uVHlwZSkgY29uc3Qgb3ZlcnJpZGU7CkBAIC0xMjksMyArMTI3
LDQgQEAgcHJpdmF0ZToKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCitTUEVDSUFMSVpFX1RZ
UEVfVFJBSVRTX0ZJTFRFUl9FRkZFQ1QoRkVUdXJidWxlbmNlKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyLmgKaW5kZXggYTJkOTk3OTNiMGRi
MjI1OGJjNDc2ZGRjYzI5YzBjZTI2MTEwYmMxZi4uODcyNzgyODEwYmJlMDY3MWEzZjA2N2E1OTUz
MDlkZjE3ZWVhNGQyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZmlsdGVycy9GaWx0ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9maWx0ZXJzL0ZpbHRlci5oCkBAIC0xLDYgKzEsNyBAQAogLyoKICAqIENvcHlyaWdodCAoQykg
MjAwOSBEaXJrIFNjaHVsemUgPGtyaXRAd2Via2l0Lm9yZz4KICAqIENvcHlyaWdodCAoQykgMjAx
MyBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDIx
IEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlz
IGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5
IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAg
LTIxLDIzICsyMiwxNyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJBZmZpbmVUcmFuc2Zv
cm0uaCIKKyNpbmNsdWRlICJGaWx0ZXJGdW5jdGlvbi5oIgogI2luY2x1ZGUgIkZsb2F0UmVjdC5o
IgogI2luY2x1ZGUgIkdyYXBoaWNzVHlwZXMuaCIKICNpbmNsdWRlICJJbWFnZUJ1ZmZlci5oIgot
I2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xh
c3MgRmlsdGVyRWZmZWN0OwogCi1jbGFzcyBGaWx0ZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxGaWx0
ZXI+IHsKK2NsYXNzIEZpbHRlciA6IHB1YmxpYyBGaWx0ZXJGdW5jdGlvbiB7CiBwdWJsaWM6Ci0g
ICAgRmlsdGVyKGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgYWJzb2x1dGVUcmFuc2Zvcm0sIGZsb2F0
IGZpbHRlclNjYWxlID0gMSkKLSAgICAgICAgOiBtX2Fic29sdXRlVHJhbnNmb3JtKGFic29sdXRl
VHJhbnNmb3JtKQotICAgICAgICAsIG1fZmlsdGVyU2NhbGUoZmlsdGVyU2NhbGUpCi0gICAgeyB9
Ci0gICAgdmlydHVhbCB+RmlsdGVyKCkgPSBkZWZhdWx0OwotCiAgICAgdm9pZCBzZXRTb3VyY2VJ
bWFnZShSZWZQdHI8SW1hZ2VCdWZmZXI+JiYgc291cmNlSW1hZ2UpIHsgbV9zb3VyY2VJbWFnZSA9
IFdURk1vdmUoc291cmNlSW1hZ2UpOyB9CiAgICAgSW1hZ2VCdWZmZXIqIHNvdXJjZUltYWdlKCkg
eyByZXR1cm4gbV9zb3VyY2VJbWFnZS5nZXQoKTsgfQogCkBAIC02Miw4ICs1NywxNiBAQCBwdWJs
aWM6CiAgICAgdmlydHVhbCBGbG9hdFJlY3QgZmlsdGVyUmVnaW9uSW5Vc2VyU3BhY2UoKSBjb25z
dCA9IDA7CiAKIHByb3RlY3RlZDoKLSAgICBleHBsaWNpdCBGaWx0ZXIoY29uc3QgRmxvYXRTaXpl
JiBmaWx0ZXJSZXNvbHV0aW9uKQotICAgICAgICA6IG1fZmlsdGVyUmVzb2x1dGlvbihmaWx0ZXJS
ZXNvbHV0aW9uKQorICAgIEZpbHRlcihGaWx0ZXI6OlR5cGUgZmlsdGVyVHlwZSwgY29uc3QgQWZm
aW5lVHJhbnNmb3JtJiBhYnNvbHV0ZVRyYW5zZm9ybSwgZmxvYXQgZmlsdGVyU2NhbGUgPSAxKQor
ICAgICAgICA6IEZpbHRlckZ1bmN0aW9uKGZpbHRlclR5cGUpCisgICAgICAgICwgbV9hYnNvbHV0
ZVRyYW5zZm9ybShhYnNvbHV0ZVRyYW5zZm9ybSkKKyAgICAgICAgLCBtX2ZpbHRlclNjYWxlKGZp
bHRlclNjYWxlKQorICAgIHsKKyAgICB9CisKKyAgICBGaWx0ZXIoRmlsdGVyOjpUeXBlIGZpbHRl
clR5cGUsIGNvbnN0IEZsb2F0U2l6ZSYgZmlsdGVyUmVzb2x1dGlvbikKKyAgICAgICAgOiBGaWx0
ZXJGdW5jdGlvbihmaWx0ZXJUeXBlKQorICAgICAgICAsIG1fZmlsdGVyUmVzb2x1dGlvbihmaWx0
ZXJSZXNvbHV0aW9uKQogICAgIHsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyRWZmZWN0LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyRWZmZWN0LmNwcAppbmRleCBmYjY3
NzU0ZTRmYzViYmNhNTFjMzQ4ZWM3ZjYzZTRjYzkyN2RiMTA4Li5iMTNlNjgyMzY2MzVmODU1MDRm
ZTE5OWIwOWEyOGZlMjY3MjgxNGQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlckVmZmVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXJFZmZlY3QuY3BwCkBAIC00NSwxNCArNDUs
MTIgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1GaWx0ZXJFZmZlY3Q6OkZpbHRlckVmZmVj
dChGaWx0ZXImIGZpbHRlciwgVHlwZSB0eXBlKQotICAgIDogbV9maWx0ZXIoZmlsdGVyKQotICAg
ICwgbV9maWx0ZXJFZmZlY3RDbGFzc1R5cGUodHlwZSkKK0ZpbHRlckVmZmVjdDo6RmlsdGVyRWZm
ZWN0KEZpbHRlciYgZmlsdGVyLCBGaWx0ZXJFZmZlY3Q6OlR5cGUgdHlwZSkKKyAgICA6IEZpbHRl
ckZ1bmN0aW9uKHR5cGUpCisgICAgLCBtX2ZpbHRlcihmaWx0ZXIpCiB7CiB9CiAKLUZpbHRlckVm
ZmVjdDo6fkZpbHRlckVmZmVjdCgpID0gZGVmYXVsdDsKLQogdm9pZCBGaWx0ZXJFZmZlY3Q6OmRl
dGVybWluZUFic29sdXRlUGFpbnRSZWN0KCkKIHsKICAgICBtX2Fic29sdXRlUGFpbnRSZWN0ID0g
SW50UmVjdCgpOwpAQCAtMTEwLDcgKzEwOCw3IEBAIEZsb2F0UmVjdCBGaWx0ZXJFZmZlY3Q6OmRl
dGVybWluZUZpbHRlclByaW1pdGl2ZVN1YnJlZ2lvbigpCiAgICAgICAgIHN1YnJlZ2lvbiA9IG1f
ZmlsdGVyLmZpbHRlclJlZ2lvbkluVXNlclNwYWNlKCk7CiAKICAgICAvLyBBZnRlciBjYWxsaW5n
IGRldGVybWluZUZpbHRlclByaW1pdGl2ZVN1YnJlZ2lvbiBvbiB0aGUgdGFyZ2V0IGVmZmVjdCwg
cmVzZXQgdGhlIHN1YnJlZ2lvbiBhZ2FpbiBmb3IgPGZlVGlsZT4uCi0gICAgaWYgKGZpbHRlckVm
ZmVjdFR5cGUoKSA9PSBGaWx0ZXJFZmZlY3RUeXBlVGlsZSkKKyAgICBpZiAoZmlsdGVyVHlwZSgp
ID09IEZpbHRlckVmZmVjdDo6VHlwZTo6RkVUaWxlKQogICAgICAgICBzdWJyZWdpb24gPSBtX2Zp
bHRlci5maWx0ZXJSZWdpb25JblVzZXJTcGFjZSgpOwogCiAgICAgYXV0byBib3VuZGFyaWVzID0g
ZWZmZWN0Qm91bmRhcmllcygpOwpAQCAtNTcyLDcgKzU3MCw3IEBAIHZvaWQgRmlsdGVyRWZmZWN0
Ojpjb3B5UHJlbXVsdGlwbGllZFJlc3VsdChVaW50OENsYW1wZWRBcnJheSYgZGVzdGluYXRpb24s
IGNvbnN0CiAKIEltYWdlQnVmZmVyKiBGaWx0ZXJFZmZlY3Q6OmNyZWF0ZUltYWdlQnVmZmVyUmVz
dWx0KCkKIHsKLSAgICBMT0coRmlsdGVycywgIkZpbHRlckVmZmVjdCAlcyAlcCBjcmVhdGVJbWFn
ZUJ1ZmZlclJlc3VsdCAlZHglZCIsIGZpbHRlck5hbWUoKSwgdGhpcywgbV9hYnNvbHV0ZVBhaW50
UmVjdC5zaXplKCkud2lkdGgoKSwgbV9hYnNvbHV0ZVBhaW50UmVjdC5zaXplKCkuaGVpZ2h0KCkp
OworICAgIExPRyhGaWx0ZXJzLCAiRmlsdGVyRWZmZWN0ICVzICVwIGNyZWF0ZUltYWdlQnVmZmVy
UmVzdWx0ICVkeCVkIiwgZmlsdGVyTmFtZSgpLmNoYXJhY3RlcnM4KCksIHRoaXMsIG1fYWJzb2x1
dGVQYWludFJlY3Quc2l6ZSgpLndpZHRoKCksIG1fYWJzb2x1dGVQYWludFJlY3Quc2l6ZSgpLmhl
aWdodCgpKTsKIAogICAgIC8vIE9ubHkgb25lIHJlc3VsdCB0eXBlIGlzIGFsbG93ZWQuCiAgICAg
QVNTRVJUKCFoYXNSZXN1bHQoKSk7CkBAIC01ODYsNyArNTg0LDcgQEAgSW1hZ2VCdWZmZXIqIEZp
bHRlckVmZmVjdDo6Y3JlYXRlSW1hZ2VCdWZmZXJSZXN1bHQoKQogCiBzdGQ6Om9wdGlvbmFsPFBp
eGVsQnVmZmVyPiYgRmlsdGVyRWZmZWN0OjpjcmVhdGVVbm11bHRpcGxpZWRJbWFnZVJlc3VsdCgp
CiB7Ci0gICAgTE9HKEZpbHRlcnMsICJGaWx0ZXJFZmZlY3QgJXMgJXAgY3JlYXRlVW5tdWx0aXBs
aWVkSW1hZ2VSZXN1bHQiLCBmaWx0ZXJOYW1lKCksIHRoaXMpOworICAgIExPRyhGaWx0ZXJzLCAi
RmlsdGVyRWZmZWN0ICVzICVwIGNyZWF0ZVVubXVsdGlwbGllZEltYWdlUmVzdWx0IiwgZmlsdGVy
TmFtZSgpLmNoYXJhY3RlcnM4KCksIHRoaXMpOwogCiAgICAgLy8gT25seSBvbmUgcmVzdWx0IHR5
cGUgaXMgYWxsb3dlZC4KICAgICBBU1NFUlQoIWhhc1Jlc3VsdCgpKTsKQEAgLTYwNSw3ICs2MDMs
NyBAQCBzdGQ6Om9wdGlvbmFsPFBpeGVsQnVmZmVyPiYgRmlsdGVyRWZmZWN0OjpjcmVhdGVVbm11
bHRpcGxpZWRJbWFnZVJlc3VsdCgpCiAKIHN0ZDo6b3B0aW9uYWw8UGl4ZWxCdWZmZXI+JiBGaWx0
ZXJFZmZlY3Q6OmNyZWF0ZVByZW11bHRpcGxpZWRJbWFnZVJlc3VsdCgpCiB7Ci0gICAgTE9HKEZp
bHRlcnMsICJGaWx0ZXJFZmZlY3QgJXMgJXAgY3JlYXRlUHJlbXVsdGlwbGllZEltYWdlUmVzdWx0
IiwgZmlsdGVyTmFtZSgpLCB0aGlzKTsKKyAgICBMT0coRmlsdGVycywgIkZpbHRlckVmZmVjdCAl
cyAlcCBjcmVhdGVQcmVtdWx0aXBsaWVkSW1hZ2VSZXN1bHQiLCBmaWx0ZXJOYW1lKCkuY2hhcmFj
dGVyczgoKSwgdGhpcyk7CiAKICAgICAvLyBPbmx5IG9uZSByZXN1bHQgdHlwZSBpcyBhbGxvd2Vk
LgogICAgIEFTU0VSVCghaGFzUmVzdWx0KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXJFZmZlY3QuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyRWZmZWN0LmgKaW5kZXggMTJkZWQyNjVh
NjU1YzM3ZTc3ZTJjZjA1YjUyNzczZjJiOTZiNDcxYy4uNTUyN2Y2YmY0YmY2MjhlNzE1MGY4MWQ1
ZWZiMzlkZjMxYTI5MWI3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZmlsdGVycy9GaWx0ZXJFZmZlY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlckVmZmVjdC5oCkBAIC0yNCwxMyArMjQsMTMgQEAKIAog
I2luY2x1ZGUgIkFscGhhUHJlbXVsdGlwbGljYXRpb24uaCIKICNpbmNsdWRlICJEZXN0aW5hdGlv
bkNvbG9yU3BhY2UuaCIKKyNpbmNsdWRlICJGaWx0ZXJGdW5jdGlvbi5oIgogI2luY2x1ZGUgIkZs
b2F0UmVjdC5oIgogI2luY2x1ZGUgIkludFJlY3QuaCIKICNpbmNsdWRlICJJbnRSZWN0RXh0ZW50
LmgiCiAjaW5jbHVkZSAiUGl4ZWxCdWZmZXIuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9G
b3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL01hdGhFeHRyYXMuaD4KLSNpbmNsdWRlIDx3dGYvUmVm
Q291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9y
Lmg+CiAKQEAgLTQ2LDM5ICs0Niw4IEBAIGNsYXNzIEltYWdlQnVmZmVyOwogCiB0eXBlZGVmIFZl
Y3RvcjxSZWZQdHI8RmlsdGVyRWZmZWN0Pj4gRmlsdGVyRWZmZWN0VmVjdG9yOwogCi1lbnVtIEZp
bHRlckVmZmVjdFR5cGUgewotICAgIEZpbHRlckVmZmVjdFR5cGVVbmtub3duLAotICAgIEZpbHRl
ckVmZmVjdFR5cGVJbWFnZSwKLSAgICBGaWx0ZXJFZmZlY3RUeXBlVGlsZSwKLSAgICBGaWx0ZXJF
ZmZlY3RUeXBlU291cmNlSW5wdXQKLX07Ci0KLWNsYXNzIEZpbHRlckVmZmVjdCA6IHB1YmxpYyBS
ZWZDb3VudGVkPEZpbHRlckVmZmVjdD4geworY2xhc3MgRmlsdGVyRWZmZWN0IDogcHVibGljIEZp
bHRlckZ1bmN0aW9uIHsKIHB1YmxpYzoKLSAgICBlbnVtIGNsYXNzIFR5cGUgOiB1aW50OF90IHsK
LSAgICAgICAgQmxlbmQsCi0gICAgICAgIENvbG9yTWF0cml4LAotICAgICAgICBDb21wb25lbnRU
cmFuc2ZlciwKLSAgICAgICAgQ29tcG9zaXRlLAotICAgICAgICBDb252b2x2ZU1hdHJpeCwKLSAg
ICAgICAgRGlmZnVzZUxpZ2h0aW5nLAotICAgICAgICBEaXNwbGFjZW1lbnRNYXAsCi0gICAgICAg
IERyb3BTaGFkb3csCi0gICAgICAgIEZsb29kLAotICAgICAgICBHYXVzc2lhbkJsdXIsCi0gICAg
ICAgIEltYWdlLAotICAgICAgICBMaWdodGluZywKLSAgICAgICAgTWVyZ2UsCi0gICAgICAgIE1v
cnBob2xvZ3ksCi0gICAgICAgIE9mZnNldCwKLSAgICAgICAgU3BlY3VsYXJMaWdodGluZywKLSAg
ICAgICAgVGlsZSwKLSAgICAgICAgVHVyYnVsZW5jZSwKLSAgICAgICAgU291cmNlQWxwaGEsCi0g
ICAgICAgIFNvdXJjZUdyYXBoaWMKLSAgICB9OwotICAgIHZpcnR1YWwgfkZpbHRlckVmZmVjdCgp
OwotCiAgICAgdm9pZCBjbGVhclJlc3VsdCgpOwogICAgIHZvaWQgY2xlYXJSZXN1bHRzUmVjdXJz
aXZlKCk7CiAKQEAgLTEyNSw4ICs5NCw2IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBk
ZXRlcm1pbmVBYnNvbHV0ZVBhaW50UmVjdCgpOwogCi0gICAgdmlydHVhbCBGaWx0ZXJFZmZlY3RU
eXBlIGZpbHRlckVmZmVjdFR5cGUoKSBjb25zdCB7IHJldHVybiBGaWx0ZXJFZmZlY3RUeXBlVW5r
bm93bjsgfQotCiAgICAgdmlydHVhbCBJbnRPdXRzZXRzIG91dHNldHMoKSBjb25zdCB7IHJldHVy
biBJbnRPdXRzZXRzKCk7IH0KIAogICAgIGVudW0gY2xhc3MgUmVwcmVzZW50YXRpb25UeXBlIHsg
VGVzdE91dHB1dCwgRGVidWdnaW5nIH07CkBAIC0xNTYsOCArMTIzLDYgQEAgcHVibGljOgogICAg
IAogICAgIEZsb2F0UG9pbnQgbWFwUG9pbnRGcm9tVXNlclNwYWNlVG9CdWZmZXIoRmxvYXRQb2lu
dCkgY29uc3Q7CiAgICAgCi0gICAgVHlwZSBmaWx0ZXJFZmZlY3RDbGFzc1R5cGUoKSBjb25zdCB7
IHJldHVybiBtX2ZpbHRlckVmZmVjdENsYXNzVHlwZTsgfQotCiAgICAgRmlsdGVyJiBmaWx0ZXIo
KSB7IHJldHVybiBtX2ZpbHRlcjsgfQogICAgIGNvbnN0IEZpbHRlciYgZmlsdGVyKCkgY29uc3Qg
eyByZXR1cm4gbV9maWx0ZXI7IH0KIApAQCAtMTgzLDggKzE0OCw2IEBAIHB1YmxpYzoKIHByb3Rl
Y3RlZDoKICAgICBGaWx0ZXJFZmZlY3QoRmlsdGVyJiwgVHlwZSk7CiAgICAgCi0gICAgdmlydHVh
bCBjb25zdCBjaGFyKiBmaWx0ZXJOYW1lKCkgY29uc3QgPSAwOwotCiAgICAgSW1hZ2VCdWZmZXIq
IGNyZWF0ZUltYWdlQnVmZmVyUmVzdWx0KCk7CiAgICAgc3RkOjpvcHRpb25hbDxQaXhlbEJ1ZmZl
cj4mIGNyZWF0ZVVubXVsdGlwbGllZEltYWdlUmVzdWx0KCk7CiAgICAgc3RkOjpvcHRpb25hbDxQ
aXhlbEJ1ZmZlcj4mIGNyZWF0ZVByZW11bHRpcGxpZWRJbWFnZVJlc3VsdCgpOwpAQCAtMjQ4LDEx
ICsyMTEsMTcgQEAgcHJpdmF0ZToKICAgICBEZXN0aW5hdGlvbkNvbG9yU3BhY2UgbV9vcGVyYXRp
bmdDb2xvclNwYWNlIHsgRGVzdGluYXRpb25Db2xvclNwYWNlOjpTUkdCKCkgfTsKICNlbmRpZgog
ICAgIERlc3RpbmF0aW9uQ29sb3JTcGFjZSBtX3Jlc3VsdENvbG9yU3BhY2UgeyBEZXN0aW5hdGlv
bkNvbG9yU3BhY2U6OlNSR0IoKSB9OwotICAgIAotICAgIGNvbnN0IFR5cGUgbV9maWx0ZXJFZmZl
Y3RDbGFzc1R5cGU7CiB9OwogCiBXRUJDT1JFX0VYUE9SVCBXVEY6OlRleHRTdHJlYW0mIG9wZXJh
dG9yPDwoV1RGOjpUZXh0U3RyZWFtJiwgY29uc3QgRmlsdGVyRWZmZWN0Jik7CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKIAorU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19CRUdJTihXZWJDb3JlOjpG
aWx0ZXJFZmZlY3QpCisgICAgc3RhdGljIGJvb2wgaXNUeXBlKGNvbnN0IFdlYkNvcmU6OkZpbHRl
ckZ1bmN0aW9uJiBmdW5jdGlvbikgeyByZXR1cm4gZnVuY3Rpb24uaXNGaWx0ZXJFZmZlY3QoKTsg
fQorU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19FTkQoKQorCisjZGVmaW5lIFNQRUNJQUxJWkVfVFlQ
RV9UUkFJVFNfRklMVEVSX0VGRkVDVChDbGFzc05hbWUpIFwKK1NQRUNJQUxJWkVfVFlQRV9UUkFJ
VFNfQkVHSU4oV2ViQ29yZTo6Q2xhc3NOYW1lKSBcCisgICAgc3RhdGljIGJvb2wgaXNUeXBlKGNv
bnN0IFdlYkNvcmU6OkZpbHRlckVmZmVjdCYgZWZmZWN0KSB7IHJldHVybiBlZmZlY3QuZmlsdGVy
VHlwZSgpID09IFdlYkNvcmU6OkZpbHRlckVmZmVjdDo6VHlwZTo6Q2xhc3NOYW1lOyB9IFwKK1NQ
RUNJQUxJWkVfVFlQRV9UUkFJVFNfRU5EKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyRnVuY3Rpb24uY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXJGdW5jdGlvbi5jcHAKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNWNlOGIwOTQ4NTgwNjE4OWM5MjkyNzc1NmMzNWQwNjA4MGY2NGQ5NgotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyRnVu
Y3Rpb24uY3BwCkBAIC0wLDAgKzEsNzIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBw
bGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkZpbHRlckZ1
bmN0aW9uLmgiCisKKyNpbmNsdWRlIDx3dGYvU29ydGVkQXJyYXlNYXAuaD4KKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCitGaWx0ZXJGdW5jdGlvbjo6RmlsdGVyRnVuY3Rpb24oVHlwZSBmaWx0ZXJU
eXBlKQorICAgIDogbV9maWx0ZXJUeXBlKGZpbHRlclR5cGUpCit7Cit9CisKK0F0b21TdHJpbmcg
RmlsdGVyRnVuY3Rpb246OmZpbHRlck5hbWUoVHlwZSBmaWx0ZXJUeXBlKQoreworICAgIHN0YXRp
YyBjb25zdGV4cHIgc3RkOjpwYWlyPEZpbHRlckZ1bmN0aW9uOjpUeXBlLCBBU0NJSUxpdGVyYWw+
IG5hbWVzQXJyYXlbXSA9IHsKKyAgICAgICAgeyBGaWx0ZXJGdW5jdGlvbjo6VHlwZTo6Q1NTRmls
dGVyLCAgICAgICAgICAgIkNTU0ZpbHRlciJfcyAgICAgICAgICAgfSwKKyAgICAgICAgeyBGaWx0
ZXJGdW5jdGlvbjo6VHlwZTo6U1ZHRmlsdGVyLCAgICAgICAgICAgIlNWR0ZpbHRlciJfcyAgICAg
ICAgICAgfSwKKyAgICAgICAgCisgICAgICAgIHsgRmlsdGVyRnVuY3Rpb246OlR5cGU6OkZFQmxl
bmQsICAgICAgICAgICAgICJGRUJsZW5kIl9zICAgICAgICAgICAgIH0sCisgICAgICAgIHsgRmls
dGVyRnVuY3Rpb246OlR5cGU6OkZFQ29sb3JNYXRyaXgsICAgICAgICJGRUNvbG9yTWF0cml4Il9z
ICAgICAgIH0sCisgICAgICAgIHsgRmlsdGVyRnVuY3Rpb246OlR5cGU6OkZFQ29tcG9uZW50VHJh
bnNmZXIsICJGRUNvbXBvbmVudFRyYW5zZmVyIl9zIH0sCisgICAgICAgIHsgRmlsdGVyRnVuY3Rp
b246OlR5cGU6OkZFQ29tcG9zaXRlLCAgICAgICAgICJGRUNvbXBvc2l0ZSJfcyAgICAgICAgIH0s
CisgICAgICAgIHsgRmlsdGVyRnVuY3Rpb246OlR5cGU6OkZFQ29udm9sdmVNYXRyaXgsICAgICJG
RUNvbnZvbHZlTWF0cml4Il9zICAgIH0sCisgICAgICAgIHsgRmlsdGVyRnVuY3Rpb246OlR5cGU6
OkZFRGlmZnVzZUxpZ2h0aW5nLCAgICJGRURpZmZ1c2VMaWdodGluZyJfcyAgIH0sCisgICAgICAg
IHsgRmlsdGVyRnVuY3Rpb246OlR5cGU6OkZFRGlzcGxhY2VtZW50TWFwLCAgICJGRURpc3BsYWNl
bWVudE1hcCJfcyAgIH0sCisgICAgICAgIHsgRmlsdGVyRnVuY3Rpb246OlR5cGU6OkZFRHJvcFNo
YWRvdywgICAgICAgICJGRURyb3BTaGFkb3ciX3MgICAgICAgIH0sCisgICAgICAgIHsgRmlsdGVy
RnVuY3Rpb246OlR5cGU6OkZFRmxvb2QsICAgICAgICAgICAgICJGRUZsb29kIl9zICAgICAgICAg
ICAgIH0sCisgICAgICAgIHsgRmlsdGVyRnVuY3Rpb246OlR5cGU6OkZFR2F1c3NpYW5CbHVyLCAg
ICAgICJGRUdhdXNzaWFuQmx1ciJfcyAgICAgIH0sCisgICAgICAgIHsgRmlsdGVyRnVuY3Rpb246
OlR5cGU6OkZFSW1hZ2UsICAgICAgICAgICAgICJGRUltYWdlIl9zICAgICAgICAgICAgIH0sCisg
ICAgICAgIHsgRmlsdGVyRnVuY3Rpb246OlR5cGU6OkZFTWVyZ2UsICAgICAgICAgICAgICJGRU1l
cmdlIl9zICAgICAgICAgICAgIH0sCisgICAgICAgIHsgRmlsdGVyRnVuY3Rpb246OlR5cGU6OkZF
TW9ycGhvbG9neSwgICAgICAgICJGRU1vcnBob2xvZ3kiX3MgICAgICAgIH0sCisgICAgICAgIHsg
RmlsdGVyRnVuY3Rpb246OlR5cGU6OkZFT2Zmc2V0LCAgICAgICAgICAgICJGRU9mZnNldCJfcyAg
ICAgICAgICAgIH0sCisgICAgICAgIHsgRmlsdGVyRnVuY3Rpb246OlR5cGU6OkZFU3BlY3VsYXJM
aWdodGluZywgICJGRVNwZWN1bGFyTGlnaHRpbmciX3MgIH0sCisgICAgICAgIHsgRmlsdGVyRnVu
Y3Rpb246OlR5cGU6OkZFVGlsZSwgICAgICAgICAgICAgICJGRVRpbGUiX3MgICAgICAgICAgICAg
IH0sCisgICAgICAgIHsgRmlsdGVyRnVuY3Rpb246OlR5cGU6OkZFVHVyYnVsZW5jZSwgICAgICAg
ICJGRVR1cmJ1bGVuY2UiX3MgICAgICAgIH0sCisKKyAgICAgICAgeyBGaWx0ZXJGdW5jdGlvbjo6
VHlwZTo6U291cmNlQWxwaGEsICAgICAgICAgIlNvdXJjZUFscGhhIl9zICAgICAgICAgfSwKKyAg
ICAgICAgeyBGaWx0ZXJGdW5jdGlvbjo6VHlwZTo6U291cmNlR3JhcGhpYywgICAgICAgIlNvdXJj
ZUdyYXBoaWMiX3MgICAgICAgfQorICAgIH07CisKKyAgICBzdGF0aWMgY29uc3RleHByIFNvcnRl
ZEFycmF5TWFwIG5hbWVzTWFwIHsgbmFtZXNBcnJheSB9OworICAgIAorICAgIEFTU0VSVChuYW1l
c01hcC50cnlHZXQoZmlsdGVyVHlwZSkpOworICAgIHJldHVybiBuYW1lc01hcC5nZXQoZmlsdGVy
VHlwZSwgIiJfcyk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyRnVuY3Rpb24uaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyRnVuY3Rpb24u
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi43MzZjZmMwMjM0NmJlYTQ5Mjg5ZDZjOTMxNTIxYTYwY2U5NmRhYmFlCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVy
cy9GaWx0ZXJGdW5jdGlvbi5oCkBAIC0wLDAgKzEsMTIwIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDIxIEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5Z
CisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAg
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8d3Rm
L1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9BdG9tU3RyaW5nLmg+CisKK25hbWVz
cGFjZSBXVEYgeworY2xhc3MgVGV4dFN0cmVhbTsKK30KKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitjbGFzcyBGaWx0ZXJGdW5jdGlvbiA6IHB1YmxpYyBSZWZDb3VudGVkPEZpbHRlckZ1bmN0aW9u
PiB7CitwdWJsaWM6CisgICAgZW51bSBjbGFzcyBUeXBlIDogdWludDhfdCB7CisgICAgICAgIENT
U0ZpbHRlciwKKyAgICAgICAgU1ZHRmlsdGVyLAorCisgICAgICAgIEZFRmlyc3QsCisKKyAgICAg
ICAgRkVCbGVuZCA9IEZFRmlyc3QsCisgICAgICAgIEZFQ29sb3JNYXRyaXgsCisgICAgICAgIEZF
Q29tcG9uZW50VHJhbnNmZXIsCisgICAgICAgIEZFQ29tcG9zaXRlLAorICAgICAgICBGRUNvbnZv
bHZlTWF0cml4LAorICAgICAgICBGRURpZmZ1c2VMaWdodGluZywKKyAgICAgICAgRkVEaXNwbGFj
ZW1lbnRNYXAsCisgICAgICAgIEZFRHJvcFNoYWRvdywKKyAgICAgICAgRkVGbG9vZCwKKyAgICAg
ICAgRkVHYXVzc2lhbkJsdXIsCisgICAgICAgIEZFSW1hZ2UsCisgICAgICAgIEZFTWVyZ2UsCisg
ICAgICAgIEZFTW9ycGhvbG9neSwKKyAgICAgICAgRkVPZmZzZXQsCisgICAgICAgIEZFU3BlY3Vs
YXJMaWdodGluZywKKyAgICAgICAgRkVUaWxlLAorICAgICAgICBGRVR1cmJ1bGVuY2UsCisgICAg
ICAgIFNvdXJjZUFscGhhLAorICAgICAgICBTb3VyY2VHcmFwaGljLAorCisgICAgICAgIEZFTGFz
dCA9IFNvdXJjZUdyYXBoaWMKKyAgICB9OworCisgICAgRmlsdGVyRnVuY3Rpb24oVHlwZSk7Cisg
ICAgdmlydHVhbCB+RmlsdGVyRnVuY3Rpb24oKSA9IGRlZmF1bHQ7CisKKyAgICBUeXBlIGZpbHRl
clR5cGUoKSBjb25zdCB7IHJldHVybiBtX2ZpbHRlclR5cGU7IH0KKworICAgIGJvb2wgaXNDU1NG
aWx0ZXIoKSBjb25zdCB7IHJldHVybiBtX2ZpbHRlclR5cGUgPT0gVHlwZTo6Q1NTRmlsdGVyOyB9
CisgICAgYm9vbCBpc1NWR0ZpbHRlcigpIGNvbnN0IHsgcmV0dXJuIG1fZmlsdGVyVHlwZSA9PSBU
eXBlOjpTVkdGaWx0ZXI7IH0KKyAgICBib29sIGlzRmlsdGVyKCkgY29uc3QgeyByZXR1cm4gbV9m
aWx0ZXJUeXBlID09IFR5cGU6OkNTU0ZpbHRlciB8fCBtX2ZpbHRlclR5cGUgPT0gVHlwZTo6U1ZH
RmlsdGVyOyB9CisgICAgYm9vbCBpc0ZpbHRlckVmZmVjdCgpIGNvbnN0IHsgcmV0dXJuIG1fZmls
dGVyVHlwZSA+PSBUeXBlOjpGRUZpcnN0ICYmIG1fZmlsdGVyVHlwZSA8PSBUeXBlOjpGRUxhc3Q7
IH0KKworICAgIHN0YXRpYyBBdG9tU3RyaW5nIGZpbHRlck5hbWUoVHlwZSk7CisgICAgc3RhdGlj
IEF0b21TdHJpbmcgc291cmNlQWxwaGFOYW1lKCkgeyByZXR1cm4gZmlsdGVyTmFtZShUeXBlOjpT
b3VyY2VBbHBoYSk7IH0KKyAgICBzdGF0aWMgQXRvbVN0cmluZyBzb3VyY2VHcmFwaGljTmFtZSgp
IHsgcmV0dXJuIGZpbHRlck5hbWUoVHlwZTo6U291cmNlR3JhcGhpYyk7IH0KKyAgICBBdG9tU3Ry
aW5nIGZpbHRlck5hbWUoKSBjb25zdCB7IHJldHVybiBmaWx0ZXJOYW1lKG1fZmlsdGVyVHlwZSk7
IH0KKworcHJpdmF0ZToKKyAgICBUeXBlIG1fZmlsdGVyVHlwZTsKK307CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKKworbmFtZXNwYWNlIFdURiB7CisKK3RlbXBsYXRlPD4gc3RydWN0IEVudW1U
cmFpdHM8V2ViQ29yZTo6RmlsdGVyRnVuY3Rpb246OlR5cGU+IHsKKyAgICB1c2luZyB2YWx1ZXMg
PSBFbnVtVmFsdWVzPAorICAgICAgICBXZWJDb3JlOjpGaWx0ZXJGdW5jdGlvbjo6VHlwZSwKKwor
ICAgICAgICBXZWJDb3JlOjpGaWx0ZXJGdW5jdGlvbjo6VHlwZTo6Q1NTRmlsdGVyLAorICAgICAg
ICBXZWJDb3JlOjpGaWx0ZXJGdW5jdGlvbjo6VHlwZTo6U1ZHRmlsdGVyLAorCisgICAgICAgIFdl
YkNvcmU6OkZpbHRlckZ1bmN0aW9uOjpUeXBlOjpGRUJsZW5kLAorICAgICAgICBXZWJDb3JlOjpG
aWx0ZXJGdW5jdGlvbjo6VHlwZTo6RkVDb2xvck1hdHJpeCwKKyAgICAgICAgV2ViQ29yZTo6Rmls
dGVyRnVuY3Rpb246OlR5cGU6OkZFQ29tcG9uZW50VHJhbnNmZXIsCisgICAgICAgIFdlYkNvcmU6
OkZpbHRlckZ1bmN0aW9uOjpUeXBlOjpGRUNvbXBvc2l0ZSwKKyAgICAgICAgV2ViQ29yZTo6Rmls
dGVyRnVuY3Rpb246OlR5cGU6OkZFQ29udm9sdmVNYXRyaXgsCisgICAgICAgIFdlYkNvcmU6OkZp
bHRlckZ1bmN0aW9uOjpUeXBlOjpGRURpZmZ1c2VMaWdodGluZywKKyAgICAgICAgV2ViQ29yZTo6
RmlsdGVyRnVuY3Rpb246OlR5cGU6OkZFRGlzcGxhY2VtZW50TWFwLAorICAgICAgICBXZWJDb3Jl
OjpGaWx0ZXJGdW5jdGlvbjo6VHlwZTo6RkVEcm9wU2hhZG93LAorICAgICAgICBXZWJDb3JlOjpG
aWx0ZXJGdW5jdGlvbjo6VHlwZTo6RkVGbG9vZCwKKyAgICAgICAgV2ViQ29yZTo6RmlsdGVyRnVu
Y3Rpb246OlR5cGU6OkZFR2F1c3NpYW5CbHVyLAorICAgICAgICBXZWJDb3JlOjpGaWx0ZXJGdW5j
dGlvbjo6VHlwZTo6RkVJbWFnZSwKKyAgICAgICAgV2ViQ29yZTo6RmlsdGVyRnVuY3Rpb246OlR5
cGU6OkZFTWVyZ2UsCisgICAgICAgIFdlYkNvcmU6OkZpbHRlckZ1bmN0aW9uOjpUeXBlOjpGRU1v
cnBob2xvZ3ksCisgICAgICAgIFdlYkNvcmU6OkZpbHRlckZ1bmN0aW9uOjpUeXBlOjpGRU9mZnNl
dCwKKyAgICAgICAgV2ViQ29yZTo6RmlsdGVyRnVuY3Rpb246OlR5cGU6OkZFU3BlY3VsYXJMaWdo
dGluZywKKyAgICAgICAgV2ViQ29yZTo6RmlsdGVyRnVuY3Rpb246OlR5cGU6OkZFVGlsZSwKKyAg
ICAgICAgV2ViQ29yZTo6RmlsdGVyRnVuY3Rpb246OlR5cGU6OkZFVHVyYnVsZW5jZSwKKyAgICAg
ICAgV2ViQ29yZTo6RmlsdGVyRnVuY3Rpb246OlR5cGU6OlNvdXJjZUFscGhhLAorICAgICAgICBX
ZWJDb3JlOjpGaWx0ZXJGdW5jdGlvbjo6VHlwZTo6U291cmNlR3JhcGhpYworICAgID47Cit9Owor
Cit9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2ZpbHRlcnMvU291cmNlQWxwaGEuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZmlsdGVycy9Tb3VyY2VBbHBoYS5jcHAKaW5kZXggNzY0OWYwNThhYzg2OWI1
NTRhZjBkYzUwN2ZmZjkwOTBhZDZjZjNhMy4uOTk2OTQzNzI1NzkzZTk5NjQ2ZmMzZTViMjJhZDE1
MWZiZGZkZTljYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZmlsdGVycy9Tb3VyY2VBbHBoYS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZmlsdGVycy9Tb3VyY2VBbHBoYS5jcHAKQEAgLTIzLDEwICsyMyw3IEBACiAjaW5jbHVk
ZSAiQ29sb3IuaCIKICNpbmNsdWRlICJGaWx0ZXIuaCIKICNpbmNsdWRlICJHcmFwaGljc0NvbnRl
eHQuaCIKLSNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KLSNpbmNsdWRlIDx3dGYvU3Rk
TGliRXh0cmFzLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvVGV4dFN0cmVhbS5oPgotI2luY2x1ZGUg
PHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTM1LDEw
ICszMiwxMSBAQCBSZWY8U291cmNlQWxwaGE+IFNvdXJjZUFscGhhOjpjcmVhdGUoRmlsdGVyRWZm
ZWN0JiBzb3VyY2VFZmZlY3QpCiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU291cmNlQWxwaGEo
c291cmNlRWZmZWN0KSk7CiB9CiAKLWNvbnN0IEF0b21TdHJpbmcmIFNvdXJjZUFscGhhOjplZmZl
Y3ROYW1lKCkKK1NvdXJjZUFscGhhOjpTb3VyY2VBbHBoYShGaWx0ZXJFZmZlY3QmIHNvdXJjZUVm
ZmVjdCkKKyAgICA6IEZpbHRlckVmZmVjdChzb3VyY2VFZmZlY3QuZmlsdGVyKCksIEZpbHRlckVm
ZmVjdDo6VHlwZTo6U291cmNlQWxwaGEpCiB7Ci0gICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRl
c3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBzX2VmZmVjdE5hbWUoIlNvdXJjZUFscGhhIiwgQXRv
bVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotICAgIHJldHVybiBzX2VmZmVjdE5hbWU7
CisgICAgc2V0T3BlcmF0aW5nQ29sb3JTcGFjZShzb3VyY2VFZmZlY3Qub3BlcmF0aW5nQ29sb3JT
cGFjZSgpKTsKKyAgICBpbnB1dEVmZmVjdHMoKS5hcHBlbmQoJnNvdXJjZUVmZmVjdCk7CiB9CiAK
IHZvaWQgU291cmNlQWxwaGE6OmRldGVybWluZUFic29sdXRlUGFpbnRSZWN0KCkKQEAgLTY5LDEx
ICs2Nyw0IEBAIFRleHRTdHJlYW0mIFNvdXJjZUFscGhhOjpleHRlcm5hbFJlcHJlc2VudGF0aW9u
KFRleHRTdHJlYW0mIHRzLCBSZXByZXNlbnRhdGlvblR5CiAgICAgcmV0dXJuIHRzOwogfQogCi1T
b3VyY2VBbHBoYTo6U291cmNlQWxwaGEoRmlsdGVyRWZmZWN0JiBzb3VyY2VFZmZlY3QpCi0gICAg
OiBGaWx0ZXJFZmZlY3Qoc291cmNlRWZmZWN0LmZpbHRlcigpLCBUeXBlOjpTb3VyY2VBbHBoYSkK
LXsKLSAgICBzZXRPcGVyYXRpbmdDb2xvclNwYWNlKHNvdXJjZUVmZmVjdC5vcGVyYXRpbmdDb2xv
clNwYWNlKCkpOwotICAgIGlucHV0RWZmZWN0cygpLmFwcGVuZCgmc291cmNlRWZmZWN0KTsKLX0K
LQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9Tb3VyY2VBbHBoYS5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9Tb3VyY2VBbHBoYS5oCmluZGV4IDY2MjlhMzY3ZmQ0MzI0
MmQxYzRhYWRlNjRjNTYxZTg2NGEzOTQ5MGYuLjRiYmRlMDdmNzhlMzVkMjViNGY0ZDQ5YzZiNjI1
ZjFlMTAyYTU0MzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2ZpbHRlcnMvU291cmNlQWxwaGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9maWx0ZXJzL1NvdXJjZUFscGhhLmgKQEAgLTE3LDggKzE3LDcgQEAKICAqIEJvc3Rvbiwg
TUEgMDIxMTAtMTMwMSwgVVNBLgogICovCiAKLSNpZm5kZWYgU291cmNlQWxwaGFfaAotI2RlZmlu
ZSBTb3VyY2VBbHBoYV9oCisjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkZpbHRlckVmZmVjdC5o
IgogCkBAIC0yOCwxMyArMjcsMTAgQEAgY2xhc3MgU291cmNlQWxwaGEgOiBwdWJsaWMgRmlsdGVy
RWZmZWN0IHsKIHB1YmxpYzogICAgICAgIAogICAgIHN0YXRpYyBSZWY8U291cmNlQWxwaGE+IGNy
ZWF0ZShGaWx0ZXJFZmZlY3QmKTsKIAotICAgIHN0YXRpYyBjb25zdCBBdG9tU3RyaW5nJiBlZmZl
Y3ROYW1lKCk7CisgICAgc3RhdGljIEF0b21TdHJpbmcgZWZmZWN0TmFtZSgpIHsgcmV0dXJuIEZp
bHRlckVmZmVjdDo6c291cmNlQWxwaGFOYW1lKCk7IH0KIAogcHJpdmF0ZToKICAgICBleHBsaWNp
dCBTb3VyY2VBbHBoYShGaWx0ZXJFZmZlY3QmKTsKLSAgICBGaWx0ZXJFZmZlY3RUeXBlIGZpbHRl
ckVmZmVjdFR5cGUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBGaWx0ZXJFZmZlY3RUeXBlU291
cmNlSW5wdXQ7IH0KLQotICAgIGNvbnN0IGNoYXIqIGZpbHRlck5hbWUoKSBjb25zdCBmaW5hbCB7
IHJldHVybiAiU291cmNlQWxwaGEiOyB9CiAKICAgICB2b2lkIHBsYXRmb3JtQXBwbHlTb2Z0d2Fy
ZSgpIG92ZXJyaWRlOwogICAgIHZvaWQgZGV0ZXJtaW5lQWJzb2x1dGVQYWludFJlY3QoKSBvdmVy
cmlkZTsKQEAgLTQzLDQgKzM5LDQgQEAgcHJpdmF0ZToKIAogfSAvL25hbWVzcGFjZSBXZWJDb3Jl
CiAKLSNlbmRpZiAvLyBTb3VyY2VBbHBoYV9oCitTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0ZJTFRF
Ul9FRkZFQ1QoU291cmNlQWxwaGEpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9maWx0ZXJzL1NvdXJjZUdyYXBoaWMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9Tb3VyY2VHcmFwaGljLmNwcAppbmRleCA4OGEzNmE0MTAy
NmJkM2E1ODU0NDc4MjAyNzRjMTEwN2Q3ODM5MmU5Li4yODhjNDVmNmZkZjdhNmJhMDkxNjRhM2Y0
NGI3ZDJmOTRlMmExZDRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9maWx0ZXJzL1NvdXJjZUdyYXBoaWMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2ZpbHRlcnMvU291cmNlR3JhcGhpYy5jcHAKQEAgLTIyLDEwICsyMiw3IEBA
CiAKICNpbmNsdWRlICJGaWx0ZXIuaCIKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQuaCIKLSNp
bmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KLSNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFz
Lmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvVGV4dFN0cmVhbS5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0
L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTM0LDEyICszMSw2IEBA
IFJlZjxTb3VyY2VHcmFwaGljPiBTb3VyY2VHcmFwaGljOjpjcmVhdGUoRmlsdGVyJiBmaWx0ZXIp
CiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU291cmNlR3JhcGhpYyhmaWx0ZXIpKTsKIH0KIAot
Y29uc3QgQXRvbVN0cmluZyYgU291cmNlR3JhcGhpYzo6ZWZmZWN0TmFtZSgpCi17Ci0gICAgc3Rh
dGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBzX2VmZmVjdE5h
bWUoIlNvdXJjZUdyYXBoaWMiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0g
ICAgcmV0dXJuIHNfZWZmZWN0TmFtZTsKLX0KLQogdm9pZCBTb3VyY2VHcmFwaGljOjpkZXRlcm1p
bmVBYnNvbHV0ZVBhaW50UmVjdCgpCiB7CiAgICAgRmlsdGVyJiBmaWx0ZXIgPSB0aGlzLT5maWx0
ZXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRl
cnMvU291cmNlR3JhcGhpYy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmls
dGVycy9Tb3VyY2VHcmFwaGljLmgKaW5kZXggMzBjZDU0ZjI0NTNiYmE4YTM3NzYzMjEzMjhlZjIx
MDZiN2ZjYTViZi4uNWY4YmNlMWI0ODg2NzQ2NjFlMjljM2I4YTM5NmI3NThkYjQ2NDNhYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9Tb3VyY2VH
cmFwaGljLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9T
b3VyY2VHcmFwaGljLmgKQEAgLTE4LDExICsxOCw5IEBACiAgKiBCb3N0b24sIE1BIDAyMTEwLTEz
MDEsIFVTQS4KICAqLwogCi0jaWZuZGVmIFNvdXJjZUdyYXBoaWNfaAotI2RlZmluZSBTb3VyY2VH
cmFwaGljX2gKKyNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiRmlsdGVyRWZmZWN0LmgiCi0jaW5j
bHVkZSAiRmlsdGVyLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtMzAsMjkgKzI4LDIw
IEBAIGNsYXNzIFNvdXJjZUdyYXBoaWMgOiBwdWJsaWMgRmlsdGVyRWZmZWN0IHsKIHB1YmxpYzog
ICAgICAgIAogICAgIHN0YXRpYyBSZWY8U291cmNlR3JhcGhpYz4gY3JlYXRlKEZpbHRlciYpOwog
Ci0gICAgc3RhdGljIGNvbnN0IEF0b21TdHJpbmcmIGVmZmVjdE5hbWUoKTsKKyAgICBzdGF0aWMg
QXRvbVN0cmluZyBlZmZlY3ROYW1lKCkgeyByZXR1cm4gRmlsdGVyRWZmZWN0Ojpzb3VyY2VHcmFw
aGljTmFtZSgpOyB9CiAKIHByaXZhdGU6CiAgICAgU291cmNlR3JhcGhpYyhGaWx0ZXImIGZpbHRl
cikKLSAgICAgICAgOiBGaWx0ZXJFZmZlY3QoZmlsdGVyLCBUeXBlOjpTb3VyY2VHcmFwaGljKQor
ICAgICAgICA6IEZpbHRlckVmZmVjdChmaWx0ZXIsIEZpbHRlckVmZmVjdDo6VHlwZTo6U291cmNl
R3JhcGhpYykKICAgICB7CiAgICAgICAgIHNldE9wZXJhdGluZ0NvbG9yU3BhY2UoRGVzdGluYXRp
b25Db2xvclNwYWNlOjpTUkdCKCkpOwogICAgIH0KIAotICAgIGNvbnN0IGNoYXIqIGZpbHRlck5h
bWUoKSBjb25zdCBmaW5hbCB7IHJldHVybiAiU291cmNlR3JhcGhpYyI7IH0KLQogICAgIHZvaWQg
ZGV0ZXJtaW5lQWJzb2x1dGVQYWludFJlY3QoKSBvdmVycmlkZTsKICAgICB2b2lkIHBsYXRmb3Jt
QXBwbHlTb2Z0d2FyZSgpIG92ZXJyaWRlOwogICAgIFdURjo6VGV4dFN0cmVhbSYgZXh0ZXJuYWxS
ZXByZXNlbnRhdGlvbihXVEY6OlRleHRTdHJlYW0mLCBSZXByZXNlbnRhdGlvblR5cGUpIGNvbnN0
IG92ZXJyaWRlOwotCi0gICAgRmlsdGVyRWZmZWN0VHlwZSBmaWx0ZXJFZmZlY3RUeXBlKCkgY29u
c3Qgb3ZlcnJpZGUgeyByZXR1cm4gRmlsdGVyRWZmZWN0VHlwZVNvdXJjZUlucHV0OyB9CiB9Owog
CiB9IC8vbmFtZXNwYWNlIFdlYkNvcmUKIAotU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19CRUdJTihX
ZWJDb3JlOjpTb3VyY2VHcmFwaGljKQotICAgIHN0YXRpYyBib29sIGlzVHlwZShjb25zdCBXZWJD
b3JlOjpGaWx0ZXJFZmZlY3QmIGVmZmVjdCkgeyByZXR1cm4gZWZmZWN0LmZpbHRlckVmZmVjdENs
YXNzVHlwZSgpID09IFdlYkNvcmU6OkZpbHRlckVmZmVjdDo6VHlwZTo6U291cmNlR3JhcGhpYzsg
fQotU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19FTkQoKQotCi0KLSNlbmRpZiAvLyBTb3VyY2VHcmFw
aGljX2gKK1NQRUNJQUxJWkVfVFlQRV9UUkFJVFNfRklMVEVSX0VGRkVDVChTb3VyY2VHcmFwaGlj
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1Jl
YWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZUNvY29hLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZUluY29taW5nQXVkaW9Tb3VyY2VDb2NvYS5jcHAK
aW5kZXggOWFlYTVmMWMwNzJjMDliZjA2M2Y0OTk5ZTAzYjIxOWU4NWQ3ZTJkOS4uZDY3YjI5YjUx
Yzc5MWU1MjE1ZWI5ODk3NWZkOWNlYjZhYzRmYzA3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZUNv
Y29hLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVh
bHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlQ29jb2EuY3BwCkBAIC0zMyw2ICszMyw3IEBACiAjaW5j
bHVkZSAiQXVkaW9TdHJlYW1EZXNjcmlwdGlvbi5oIgogI2luY2x1ZGUgIkNBQXVkaW9TdHJlYW1E
ZXNjcmlwdGlvbi5oIgogI2luY2x1ZGUgIkxpYldlYlJUQ0F1ZGlvRm9ybWF0LmgiCisjaW5jbHVk
ZSAiTGliV2ViUlRDQXVkaW9Nb2R1bGUuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVk
ZSA8cGFsL2F2Zm91bmRhdGlvbi9NZWRpYVRpbWVBVkZvdW5kYXRpb24uaD4KICNpbmNsdWRlIDx3
dGYvRmFzdE1hbGxvYy5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0NT
U0ZpbHRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvQ1NTRmlsdGVyLmNwcAppbmRl
eCA5ZDZjMmNkZDA1Zjk0OWI2MzRjYWZhMTdhYzE3ZGI1YzAyYjViNjExLi4xMDJiODg2NTM3MjBk
Y2Q3MTYzNDlhZmI0ZGRlYmQ0OTk5NzcxY2U3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvQ1NTRmlsdGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvQ1NT
RmlsdGVyLmNwcApAQCAtNjAsNyArNjAsNyBAQCBSZWY8Q1NTRmlsdGVyPiBDU1NGaWx0ZXI6OmNy
ZWF0ZSgpCiB9CiAKIENTU0ZpbHRlcjo6Q1NTRmlsdGVyKCkKLSAgICA6IEZpbHRlcihGbG9hdFNp
emUgeyAxLCAxIH0pCisgICAgOiBGaWx0ZXIoRmlsdGVyOjpUeXBlOjpDU1NGaWx0ZXIsIEZsb2F0
U2l6ZSB7IDEsIDEgfSkKICAgICAsIG1fc291cmNlR3JhcGhpYyhTb3VyY2VHcmFwaGljOjpjcmVh
dGUoKnRoaXMpKQogewogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNz
L2ZpbHRlcnMvU1ZHRkVJbWFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvZmls
dGVycy9TVkdGRUltYWdlLmNwcAppbmRleCA4MDQ5YjgyYTlhYjY1NDQxMjgyNDk4ZjRiYzFmYjc2
ZTE5MzEwYzg2Li5mYzlmMWQ1OTRlZjU3ODZhNDcxMDkyYTQyMGJjOTIzN2QzZjQ5YTkzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvZmlsdGVycy9TVkdGRUltYWdlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvZmlsdGVycy9TVkdGRUltYWdlLmNw
cApAQCAtNDIsNyArNDIsNyBAQCBSZWY8RkVJbWFnZT4gRkVJbWFnZTo6Y3JlYXRlKEZpbHRlciYg
ZmlsdGVyLCBTb3VyY2VJbWFnZSYmIHNvdXJjZUltYWdlLCBjb25zdCBGbAogfQogCiBGRUltYWdl
OjpGRUltYWdlKEZpbHRlciYgZmlsdGVyLCBTb3VyY2VJbWFnZSYmIHNvdXJjZUltYWdlLCBjb25z
dCBGbG9hdFJlY3QmIHNvdXJjZUltYWdlUmVjdCwgY29uc3QgU1ZHUHJlc2VydmVBc3BlY3RSYXRp
b1ZhbHVlJiBwcmVzZXJ2ZUFzcGVjdFJhdGlvKQotICAgIDogRmlsdGVyRWZmZWN0KGZpbHRlciwg
VHlwZTo6SW1hZ2UpCisgICAgOiBGaWx0ZXJFZmZlY3QoZmlsdGVyLCBUeXBlOjpGRUltYWdlKQog
ICAgICwgbV9zb3VyY2VJbWFnZShXVEZNb3ZlKHNvdXJjZUltYWdlKSkKICAgICAsIG1fc291cmNl
SW1hZ2VSZWN0KHNvdXJjZUltYWdlUmVjdCkKICAgICAsIG1fcHJlc2VydmVBc3BlY3RSYXRpbyhw
cmVzZXJ2ZUFzcGVjdFJhdGlvKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBo
aWNzL2ZpbHRlcnMvU1ZHRkVJbWFnZS5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL2Zp
bHRlcnMvU1ZHRkVJbWFnZS5oCmluZGV4IDJmMjc3NDFjMDYwZmMyNjQ1ZTUxN2YxMzU4NjIyZjEx
ZDdmYWFkMjYuLjczMTdkOWE5NGVhYzA3OGE4OGRlN2E3ZTMwNDM0MGE3ZDJmMWQ4MWYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9maWx0ZXJzL1NWR0ZFSW1hZ2UuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvZmlsdGVycy9TVkdGRUltYWdlLmgKQEAg
LTI0LDcgKzI0LDYgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiRmlsdGVyRWZmZWN0Lmgi
Ci0jaW5jbHVkZSAiUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiU1ZH
UHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTM0
LDEwICszMyw3IEBAIGNsYXNzIEltYWdlQnVmZmVyOwogCiBjbGFzcyBGRUltYWdlIGZpbmFsIDog
cHVibGljIEZpbHRlckVmZmVjdCB7CiBwdWJsaWM6Ci0gICAgdXNpbmcgU291cmNlSW1hZ2UgPSBz
dGQ6OnZhcmlhbnQ8Ci0gICAgICAgIFJlZjxJbWFnZT4sCi0gICAgICAgIFJlZjxJbWFnZUJ1ZmZl
cj4KLSAgICA+OworICAgIHVzaW5nIFNvdXJjZUltYWdlID0gc3RkOjp2YXJpYW50PFJlZjxJbWFn
ZT4sIFJlZjxJbWFnZUJ1ZmZlcj4+OwogCiAgICAgc3RhdGljIFJlZjxGRUltYWdlPiBjcmVhdGUo
RmlsdGVyJiwgUmVmPEltYWdlPiYmLCBjb25zdCBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUm
KTsKICAgICBzdGF0aWMgUmVmPEZFSW1hZ2U+IGNyZWF0ZShGaWx0ZXImLCBTb3VyY2VJbWFnZSYm
LCBjb25zdCBGbG9hdFJlY3QmIHNvdXJjZUltYWdlUmVjdCwgY29uc3QgU1ZHUHJlc2VydmVBc3Bl
Y3RSYXRpb1ZhbHVlJik7CkBAIC00OCw4ICs0NCw2IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAg
RkVJbWFnZShGaWx0ZXImLCBTb3VyY2VJbWFnZSYmLCBjb25zdCBGbG9hdFJlY3QmIHNvdXJjZUlt
YWdlUmVjdCwgY29uc3QgU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlJik7CiAKLSAgICBjb25z
dCBjaGFyKiBmaWx0ZXJOYW1lKCkgY29uc3QgZmluYWwgeyByZXR1cm4gIkZFSW1hZ2UiOyB9Ci0K
ICAgICB2b2lkIHBsYXRmb3JtQXBwbHlTb2Z0d2FyZSgpIGZpbmFsOwogICAgIHZvaWQgZGV0ZXJt
aW5lQWJzb2x1dGVQYWludFJlY3QoKSBmaW5hbDsKICAgICBXVEY6OlRleHRTdHJlYW0mIGV4dGVy
bmFsUmVwcmVzZW50YXRpb24oV1RGOjpUZXh0U3RyZWFtJiwgUmVwcmVzZW50YXRpb25UeXBlKSBj
b25zdCBmaW5hbDsKQEAgLTYwLDMgKzU0LDUgQEAgcHJpdmF0ZToKIH07CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKKworU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19GSUxURVJfRUZGRUNUKEZFSW1h
Z2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvZmlsdGVycy9TVkdG
aWx0ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL2ZpbHRlcnMvU1ZHRmlsdGVy
LmNwcAppbmRleCA5YTk0YTQ2MDM1ODc5MDhhMzg0ZDE3NDI3YjM3MTkzNTkyYjdiY2U3Li44MmU5
NDM2NzIzZTg1NWQ2NTI3OTdhMTM3MDdkNWFiZTllZTYwYTI3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvZ3JhcGhpY3MvZmlsdGVycy9TVkdGaWx0ZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9ncmFwaGljcy9maWx0ZXJzL1NWR0ZpbHRlci5jcHAKQEAgLTI1LDcgKzI1LDcg
QEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogU1ZHRmlsdGVyOjpTVkdGaWx0ZXIoY29uc3QgQWZm
aW5lVHJhbnNmb3JtJiBhYnNvbHV0ZVRyYW5zZm9ybSwgY29uc3QgRmxvYXRSZWN0JiBhYnNvbHV0
ZVNvdXJjZURyYXdpbmdSZWdpb24sIGNvbnN0IEZsb2F0UmVjdCYgdGFyZ2V0Qm91bmRpbmdCb3gs
IGNvbnN0IEZsb2F0UmVjdCYgZmlsdGVyUmVnaW9uLCBib29sIGVmZmVjdEJCb3hNb2RlKQotICAg
IDogRmlsdGVyKGFic29sdXRlVHJhbnNmb3JtKQorICAgIDogRmlsdGVyKEZpbHRlcjo6VHlwZTo6
Q1NTRmlsdGVyLCBhYnNvbHV0ZVRyYW5zZm9ybSkKICAgICAsIG1fYWJzb2x1dGVTb3VyY2VEcmF3
aW5nUmVnaW9uKGFic29sdXRlU291cmNlRHJhd2luZ1JlZ2lvbikKICAgICAsIG1fdGFyZ2V0Qm91
bmRpbmdCb3godGFyZ2V0Qm91bmRpbmdCb3gpCiAgICAgLCBtX2ZpbHRlclJlZ2lvbihmaWx0ZXJS
ZWdpb24pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvZmlsdGVycy9T
VkdGaWx0ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9maWx0ZXJzL1NWR0ZpbHRl
ci5oCmluZGV4IDgwOTMxNDZkNjRhZjg4ODViYzNkYTQ5MzAyZjVhZWEwZmIxNzAwY2YuLjUyNTg4
NmFmMzA4NGNlNzgzNWM4NGQ0YTk3NjM1ZGYyZTYzOWI1YTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9ncmFwaGljcy9maWx0ZXJzL1NWR0ZpbHRlci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9ncmFwaGljcy9maWx0ZXJzL1NWR0ZpbHRlci5oCkBAIC01Nyw0ICs1Nyw1IEBAIHBy
aXZhdGU6CiAKIFNQRUNJQUxJWkVfVFlQRV9UUkFJVFNfQkVHSU4oV2ViQ29yZTo6U1ZHRmlsdGVy
KQogICAgIHN0YXRpYyBib29sIGlzVHlwZShjb25zdCBXZWJDb3JlOjpGaWx0ZXImIGZpbHRlcikg
eyByZXR1cm4gZmlsdGVyLmlzU1ZHRmlsdGVyKCk7IH0KKyAgICBzdGF0aWMgYm9vbCBpc1R5cGUo
Y29uc3QgV2ViQ29yZTo6RmlsdGVyRnVuY3Rpb24mIGZ1bmN0aW9uKSB7IHJldHVybiBmdW5jdGlv
bi5pc1NWR0ZpbHRlcigpOyB9CiBTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0VORCgpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvZmlsdGVycy9TVkdGaWx0ZXJCdWlsZGVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9maWx0ZXJzL1NWR0ZpbHRlckJ1aWxk
ZXIuY3BwCmluZGV4IDk2ZjNhODA1MDQyOTU1NTgxMDM0ZDk4YTRmZGFjNGVhZjMwODdiOTQuLjgw
MDBmODRiNWNkNjBlMDZlMjM2NGVkNWNkZThmOGUzZmQ5NDQxNmUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9maWx0ZXJzL1NWR0ZpbHRlckJ1aWxkZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9maWx0ZXJzL1NWR0ZpbHRlckJ1aWxkZXIuY3Bw
CkBAIC0yMSw2ICsyMSw3IEBACiAjaW5jbHVkZSAiU1ZHRmlsdGVyQnVpbGRlci5oIgogCiAjaW5j
bHVkZSAiRmlsdGVyRWZmZWN0LmgiCisjaW5jbHVkZSAiSW1hZ2VCdWZmZXIuaCIKICNpbmNsdWRl
ICJTb3VyY2VBbHBoYS5oIgogI2luY2x1ZGUgIlNvdXJjZUdyYXBoaWMuaCIKICNpbmNsdWRlIDx3
dGYvdGV4dC9TdHJpbmdDb25jYXRlbmF0ZU51bWJlcnMuaD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>443740</attachid>
            <date>2021-11-09 15:39:57 -0800</date>
            <delta_ts>2021-11-09 16:41:04 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-232413-20211109153956.patch</filename>
            <type>text/plain</type>
            <size>69432</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1NTM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2MwYzA2NjM2MTc4MjI5
ZWM3NGQ1MWUyZGI1OGQ2NzY2MjljMTJmZS4uMjNhNDAyMTAxNDUyMjhhNDkzYTkyYzY2M2I5MGZk
MWJmNDQxNDI3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzMyBAQAorMjAyMS0xMS0wOSAgU2Fp
ZCBBYm91LUhhbGxhd2EgIDxzYWlkQGFwcGxlLmNvbT4KKworICAgICAgICBbR1BVIFByb2Nlc3Nd
IEludHJvZHVjZSBGaWx0ZXJGdW5jdGlvbiBhbmQgbWFrZSBpdCB0aGUgYmFzZSBjbGFzcyBvZiBG
aWx0ZXIgYW5kIEZpbHRlckVmZmVjdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjMyNDEzCisgICAgICAgIHJkYXI6Ly84NDk2Njc2NQorCisgICAgICAg
IFJldmlld2VkIGJ5IE15bGVzIEMuIE1heGZpZWxkLgorCisgICAgICAgIFRoaXMgYWxsb3dzIENT
U0ZpbHRlciB0byBob2xkIGEgbGlzdCBvZiBGaWx0ZXJGdW5jdGlvbnMuIFRoZSBGaWx0ZXIgaW4K
KyAgICAgICAgdGhpcyBjYXNlIHdpbGwgYWN0IGxpa2UgYSBjb21wb3NpdGUgcGF0dGVybiBvZiBG
aWx0ZXJFZmZlY3RzLgorCisgICAgICAgIFRoaXMgcGF0Y2ggYWxzbworICAgICAgICAxLiBSZW1v
dmVzIHRoZSB2aXJ0dWFsIGZ1bmN0aW9uIGZpbHRlck5hbWUoKSBmcm9tIGFsbCB0aGUgRmlsdGVy
RWZmZWN0CisgICAgICAgICAgIGNsYXNzZXMuIEl0IHJlcGxhY2VzIGl0IHdpdGggYSBzdGF0aWMg
ZnVuY3Rpb24gaW4gRmlsdGVyRnVuY3Rpb24uCisgICAgICAgIDIuIFJlbW92ZXMgdGhlIHZpcnR1
YWwgZnVuY3Rpb24gZmlsdGVyRWZmZWN0VHlwZSgpIGFuZCB0aGUgZnVuY3Rpb24KKyAgICAgICAg
ICAgRmlsdGVyRWZmZWN0OjpmaWx0ZXJFZmZlY3RDbGFzc1R5cGUoKSBzaW5jZSB0aGV5IGNhbiBi
b3RoIGJlIHJlcGxhY2VkCisgICAgICAgICAgIGJ5IEZpbHRlckZ1bmN0aW9uOjpmaWx0ZXJUeXBl
KCkuCisgICAgICAgIDMuIEFkZHMgdHJhaXQgbWFjcm9zIGZvciBhbGwgRmlsdGVyRWZmZWN0cyBh
bmQgdGhlIFNWR0ZpbHRlcnMgY2xhc3MuCisKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAg
ICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvY29yZWltYWdlL0ZpbHRlckVmZmVjdFJlbmRlcmVyQ29yZUltYWdlLm1tOgor
ICAgICAgICAoV2ViQ29yZTo6RmlsdGVyRWZmZWN0UmVuZGVyZXJDb3JlSW1hZ2U6OnN1cHBvcnRz
Q29yZUltYWdlUmVuZGVyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbHRlckVmZmVjdFJlbmRl
cmVyQ29yZUltYWdlOjpjb25uZWN0Q0lGaWx0ZXJzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9maWx0ZXJzL0ZFQmxlbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RkVCbGVuZDo6RkVC
bGVuZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUJsZW5kLmg6Cisg
ICAgICAgICgpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMv
RkVDb2xvck1hdHJpeC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGRUNvbG9yTWF0cml4OjpGRUNv
bG9yTWF0cml4KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29sb3JN
YXRyaXguaDoKKyAgICAgICAgKGlzVHlwZSk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvZmlsdGVycy9GRUNvbXBvbmVudFRyYW5zZmVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkZFQ29tcG9uZW50VHJhbnNmZXI6OkZFQ29tcG9uZW50VHJhbnNmZXIpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb21wb25lbnRUcmFuc2Zlci5oOgorICAgICAg
ICAoaXNUeXBlKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJz
L0ZFQ29tcG9zaXRlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZFQ29tcG9zaXRlOjpGRUNvbXBv
c2l0ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbXBvc2l0ZS5o
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb252b2x2ZU1hdHJpeC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpGRUNvbnZvbHZlTWF0cml4OjpGRUNvbnZvbHZlTWF0cml4
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29udm9sdmVNYXRyaXgu
aDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRGlmZnVzZUxpZ2h0aW5n
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZFRGlmZnVzZUxpZ2h0aW5nOjpGRURpZmZ1c2VMaWdo
dGluZyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRURpZmZ1c2VMaWdo
dGluZy5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVEaXNwbGFjZW1l
bnRNYXAuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RkVEaXNwbGFjZW1lbnRNYXA6OkZFRGlzcGxh
Y2VtZW50TWFwKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRGlzcGxh
Y2VtZW50TWFwLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRURyb3BT
aGFkb3cuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RkVEcm9wU2hhZG93OjpGRURyb3BTaGFkb3cp
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVEcm9wU2hhZG93Lmg6Cisg
ICAgICAgICgpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMv
RkVGbG9vZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGRUZsb29kOjpGRUZsb29kKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRmxvb2QuaDoKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFR2F1c3NpYW5CbHVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkZFR2F1c3NpYW5CbHVyOjpGRUdhdXNzaWFuQmx1cik6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvZmlsdGVycy9GRUdhdXNzaWFuQmx1ci5oOgorICAgICAgICAoKTogRGVsZXRlZC4K
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFTGlnaHRpbmcuaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFTWVyZ2UuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RkVNZXJnZTo6RkVNZXJnZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmls
dGVycy9GRU1lcmdlLmg6CisgICAgICAgICgpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2ZpbHRlcnMvRkVNb3JwaG9sb2d5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZF
TW9ycGhvbG9neTo6RkVNb3JwaG9sb2d5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9m
aWx0ZXJzL0ZFTW9ycGhvbG9neS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRl
cnMvRkVPZmZzZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RkVPZmZzZXQ6OkZFT2Zmc2V0KToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFT2Zmc2V0Lmg6CisgICAgICAg
ICgpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVTcGVj
dWxhckxpZ2h0aW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZFU3BlY3VsYXJMaWdodGluZzo6
RkVTcGVjdWxhckxpZ2h0aW5nKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJz
L0ZFU3BlY3VsYXJMaWdodGluZy5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRl
cnMvRkVUaWxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZFVGlsZTo6RkVUaWxlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkZFVGlsZTo6cGxhdGZvcm1BcHBseVNvZnR3YXJlKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFVGlsZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2ZpbHRlcnMvRkVUdXJidWxlbmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZFVHVy
YnVsZW5jZTo6RkVUdXJidWxlbmNlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0
ZXJzL0ZFVHVyYnVsZW5jZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMv
RmlsdGVyLmg6CisgICAgICAgIChXZWJDb3JlOjpGaWx0ZXI6OkZpbHRlcik6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXJFZmZlY3QuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RmlsdGVyRWZmZWN0OjpGaWx0ZXJFZmZlY3QpOgorICAgICAgICAoV2ViQ29yZTo6Rmls
dGVyRWZmZWN0OjpkZXRlcm1pbmVGaWx0ZXJQcmltaXRpdmVTdWJyZWdpb24pOgorICAgICAgICAo
V2ViQ29yZTo6RmlsdGVyRWZmZWN0OjpjcmVhdGVJbWFnZUJ1ZmZlclJlc3VsdCk6CisgICAgICAg
IChXZWJDb3JlOjpGaWx0ZXJFZmZlY3Q6OmNyZWF0ZVVubXVsdGlwbGllZEltYWdlUmVzdWx0KToK
KyAgICAgICAgKFdlYkNvcmU6OkZpbHRlckVmZmVjdDo6Y3JlYXRlUHJlbXVsdGlwbGllZEltYWdl
UmVzdWx0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlckVmZmVj
dC5oOgorICAgICAgICAoaXNUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbHRlckVmZmVjdDo6
ZmlsdGVyRWZmZWN0VHlwZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpGaWx0
ZXJFZmZlY3Q6OmZpbHRlckVmZmVjdENsYXNzVHlwZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXJGdW5jdGlvbi5jcHA6IEFkZGVkLgor
ICAgICAgICAoV2ViQ29yZTo6RmlsdGVyRnVuY3Rpb246OkZpbHRlckZ1bmN0aW9uKToKKyAgICAg
ICAgKFdlYkNvcmU6OkZpbHRlckZ1bmN0aW9uOjpmaWx0ZXJOYW1lKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlckZ1bmN0aW9uLmg6IEFkZGVkLgorICAgICAgICAo
V2ViQ29yZTo6RmlsdGVyRnVuY3Rpb246OmZpbHRlclR5cGUgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6RmlsdGVyRnVuY3Rpb246OmlzQ1NTRmlsdGVyIGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OkZpbHRlckZ1bmN0aW9uOjppc1NWR0ZpbHRlciBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpGaWx0ZXJGdW5jdGlvbjo6aXNGaWx0ZXIgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Rmls
dGVyRnVuY3Rpb246OmlzRmlsdGVyRWZmZWN0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkZp
bHRlckZ1bmN0aW9uOjpzb3VyY2VBbHBoYU5hbWUpOgorICAgICAgICAoV2ViQ29yZTo6RmlsdGVy
RnVuY3Rpb246OnNvdXJjZUdyYXBoaWNOYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbHRlckZ1
bmN0aW9uOjpmaWx0ZXJOYW1lIGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9m
aWx0ZXJzL1NvdXJjZUFscGhhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUFscGhhOjpT
b3VyY2VBbHBoYSk6CisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VBbHBoYTo6ZWZmZWN0TmFtZSk6
IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9Tb3VyY2VBbHBo
YS5oOgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQWxwaGE6OmVmZmVjdE5hbWUpOgorICAgICAg
ICAoKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1NvdXJj
ZUdyYXBoaWMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U291cmNlR3JhcGhpYzo6ZWZmZWN0TmFt
ZSk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9Tb3VyY2VH
cmFwaGljLmg6CisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VHcmFwaGljOjplZmZlY3ROYW1lKToK
KyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUdyYXBoaWM6OlNvdXJjZUdyYXBoaWMpOgorICAgICAg
ICAoKTogRGVsZXRlZC4KKyAgICAgICAgKGlzVHlwZSk6IERlbGV0ZWQuCisgICAgICAgICogcGxh
dGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZUNvY29hLmNw
cDoKKyAgICAgICAgKiByZW5kZXJpbmcvQ1NTRmlsdGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkNTU0ZpbHRlcjo6Q1NTRmlsdGVyKToKKyAgICAgICAgKiBzdmcvZ3JhcGhpY3MvZmlsdGVycy9T
VkdGRUltYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZFSW1hZ2U6OkZFSW1hZ2UpOgorICAg
ICAgICAqIHN2Zy9ncmFwaGljcy9maWx0ZXJzL1NWR0ZFSW1hZ2UuaDoKKyAgICAgICAgKiBzdmcv
Z3JhcGhpY3MvZmlsdGVycy9TVkdGaWx0ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRmls
dGVyOjpTVkdGaWx0ZXIpOgorICAgICAgICAqIHN2Zy9ncmFwaGljcy9maWx0ZXJzL1NWR0ZpbHRl
ci5oOgorICAgICAgICAoaXNUeXBlKToKKyAgICAgICAgKiBzdmcvZ3JhcGhpY3MvZmlsdGVycy9T
VkdGaWx0ZXJCdWlsZGVyLmNwcDoKKwogMjAyMS0xMS0wOSAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0
LXF1ZXVlQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcmV2ZXJ0aW5nIHIyODUy
NDYuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJD
b3JlL1NvdXJjZXMudHh0CmluZGV4IDM1OTAzNjY1N2Q5Y2I1NjE5MjZkYTk3ZDUxYzc1NTcyMGQx
MmJhNzMuLmM5YWRmMjYxN2E0MmM2ODE3MzNmNzc3YWJhYzZkNTA1MTFlNjQyY2UgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJj
ZXMudHh0CkBAIC0yMDkxLDYgKzIwOTEsNyBAQCBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZF
VGlsZS5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVUdXJidWxlbmNlLmNwcAogcGxh
dGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXJFZmZlY3QuY3BwCiBwbGF0Zm9ybS9ncmFwaGlj
cy9maWx0ZXJzL0ZpbHRlckVmZmVjdFJlbmRlcmVyLmNwcAorcGxhdGZvcm0vZ3JhcGhpY3MvZmls
dGVycy9GaWx0ZXJGdW5jdGlvbi5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVy
T3BlcmF0aW9uLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXJPcGVyYXRpb25z
LmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9Qb2ludExpZ2h0U291cmNlLmNwcApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4
IDVlY2Q1MTY1YzY1N2Q5ZjBjNDc0YzE2YmJjNjE3YjIwOTk1MzA4ZDcuLjFiMGUwM2U2MDllM2Ri
ZWRiZjBmMzUzOGRmOWM3NzBmYWY2ZjJjZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEwODQ4LDYgKzEwODQ4LDggQEAKIAkJ
NzI0RUU1NEUxREM3RjI1QjAwQTkxRkZCIC8qIEFjdGl2aXR5U3RhdGUuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gQWN0aXZpdHlTdGF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk3MjRFRTU0RjFEQzdGMjVCMDBBOTFGRkIgLyogQWN0aXZpdHlTdGF0ZUNoYW5n
ZU9ic2VydmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFjdGl2aXR5U3Rh
dGVDaGFuZ2VPYnNlcnZlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3MjUyMzk2
QjI1NENBREMyMDBGNUZCMTUgLyogTmF0aXZlSW1hZ2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
TmF0aXZlSW1hZ2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3MjYyRDc1NjI3
MkExNzQxMDBDNTZBMDkgLyogRmlsdGVyRnVuY3Rpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRmlsdGVy
RnVuY3Rpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNzI2MkQ3NTcyNzJBMTc0
MTAwQzU2QTA5IC8qIEZpbHRlckZ1bmN0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEZpbHRl
ckZ1bmN0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzI2NkYwMTMyMjQx
QkNFMjAwODMzOTc1IC8qIFNWR1Byb3BlcnR5QW5pbWF0b3JGYWN0b3J5LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFNWR1Byb3BlcnR5QW5pbWF0b3JGYWN0b3J5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTcyNjZGMDE0MjI0MUJGQjIwMDgzMzk3NSAvKiBTVkdQcmltaXRpdmVQcm9wZXJ0eUFu
aW1hdG9ySW1wbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTVkdQcmltaXRpdmVQcm9wZXJ0eUFuaW1hdG9y
SW1wbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3MjY2RjAxNTIyNDFDMDk4MDA4
MzM5NzUgLyogU1ZHUHJpbWl0aXZlUHJvcGVydHlBbmltYXRvci5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBT
VkdQcmltaXRpdmVQcm9wZXJ0eUFuaW1hdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CkBAIC0xODkwNywxMSArMTg5MDksMTEgQEAKIAkJMUE1NjlDQzQwRDdFMkI2MDAwN0MzOTgzIC8q
IGJyaWRnZSAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJ
MUE1NjlDRTIwRDdFMkI4MjAwN0MzOTgzIC8qIG9iamMgKi8sCiAJCQkJNTk5RTc1OEYxMTA1NUEx
RjAwRDkwNEZBIC8qIEJyaWRnZS5oICovLAogCQkJCTFBNzFENTc5MEYzMzgxOTAwMEY5Q0U0RSAv
KiBJZGVudGlmaWVyUmVwLmNwcCAqLywKIAkJCQkxQTcxRDU3QTBGMzM4MTkwMDBGOUNFNEUgLyog
SWRlbnRpZmllclJlcC5oICovLAogCQkJCTU5QjU5NzcxMTEwODY1NTYwMDcxNTlFOCAvKiBqc2Mg
Ki8sCi0JCQkJMUE1NjlDRTIwRDdFMkI4MjAwN0MzOTgzIC8qIG9iamMgKi8sCiAJCQkJMUE1NjlD
RUYwRDdFMkI4MjAwN0MzOTgzIC8qIHJ1bnRpbWVfYXJyYXkuY3BwICovLAogCQkJCTFBNTY5Q0Yw
MEQ3RTJCODIwMDdDMzk4MyAvKiBydW50aW1lX2FycmF5LmggKi8sCiAJCQkJMUE1NjlDRjEwRDdF
MkI4MjAwN0MzOTgzIC8qIHJ1bnRpbWVfbWV0aG9kLmNwcCAqLywKQEAgLTI1ODY5LDYgKzI1ODcx
LDggQEAKIAkJCQkwOEM5MjUxODBGQ0M3QzRBMDA0ODBERUMgLyogRmlsdGVyRWZmZWN0LmggKi8s
CiAJCQkJMkM4NTY1MzgyNEMxMEIwQjAwQTM3NjczIC8qIEZpbHRlckVmZmVjdFJlbmRlcmVyLmNw
cCAqLywKIAkJCQkyQzg1NjUzMzI0QzBGNzNDMDBBMzc2NzMgLyogRmlsdGVyRWZmZWN0UmVuZGVy
ZXIuaCAqLywKKwkJCQk3MjYyRDc1NzI3MkExNzQxMDBDNTZBMDkgLyogRmlsdGVyRnVuY3Rpb24u
Y3BwICovLAorCQkJCTcyNjJENzU2MjcyQTE3NDEwMEM1NkEwOSAvKiBGaWx0ZXJGdW5jdGlvbi5o
ICovLAogCQkJCTQ5RUNFQjYzMTQ5OTc5MEQwMENERDNBNCAvKiBGaWx0ZXJPcGVyYXRpb24uY3Bw
ICovLAogCQkJCTQ5RUNFQjY0MTQ5OTc5MEQwMENERDNBNCAvKiBGaWx0ZXJPcGVyYXRpb24uaCAq
LywKIAkJCQk0OUVDRUI2NTE0OTk3OTBEMDBDREQzQTQgLyogRmlsdGVyT3BlcmF0aW9ucy5jcHAg
Ki8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb3JlaW1h
Z2UvRmlsdGVyRWZmZWN0UmVuZGVyZXJDb3JlSW1hZ2UubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jb3JlaW1hZ2UvRmlsdGVyRWZmZWN0UmVuZGVyZXJDb3JlSW1hZ2UubW0K
aW5kZXggOTdlMTEzN2IyOWQ3MWMyYjU0NDE1NzMwNjcyNDAwYjgyNDI4YjM2MS4uZmM2Zjg3ODg4
NWViZDA0OTE3MjQ5NmIzN2M0MTQ3OTczNjI5NDQ5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29yZWltYWdlL0ZpbHRlckVmZmVjdFJlbmRlcmVyQ29yZUlt
YWdlLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvcmVpbWFnZS9G
aWx0ZXJFZmZlY3RSZW5kZXJlckNvcmVJbWFnZS5tbQpAQCAtNzIsMTEgKzcyLDExIEBAIHN0YXRp
YyBib29sIGlzTnVsbE9yTGluZWFyQ29tcG9uZW50VHJhbnNmZXJGdW5jdGlvbihjb25zdCBGRUNv
bXBvbmVudFRyYW5zZmVyJiBlCiBib29sIEZpbHRlckVmZmVjdFJlbmRlcmVyQ29yZUltYWdlOjpz
dXBwb3J0c0NvcmVJbWFnZVJlbmRlcmluZyhGaWx0ZXJFZmZlY3QmIGVmZmVjdCkKIHsKICAgICAv
LyBGSVhNRTogY2hhbmdlIHJldHVybiB2YWx1ZSB0byB0cnVlIG9uY2UgdGhleSBhcmUgaW1wbGVt
ZW50ZWQKLSAgICBzd2l0Y2ggKGVmZmVjdC5maWx0ZXJFZmZlY3RDbGFzc1R5cGUoKSkgeworICAg
IHN3aXRjaCAoZWZmZWN0LmZpbHRlclR5cGUoKSkgewogICAgIGNhc2UgRmlsdGVyRWZmZWN0OjpU
eXBlOjpTb3VyY2VHcmFwaGljOgogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgICAgIAot
ICAgIGNhc2UgRmlsdGVyRWZmZWN0OjpUeXBlOjpDb2xvck1hdHJpeDogeworICAgIGNhc2UgRmls
dGVyRWZmZWN0OjpUeXBlOjpGRUNvbG9yTWF0cml4OiB7CiAgICAgICAgIHN3aXRjaCAoZG93bmNh
c3Q8RkVDb2xvck1hdHJpeD4oZWZmZWN0KS50eXBlKCkpIHsKICAgICAgICAgY2FzZSBGRUNPTE9S
TUFUUklYX1RZUEVfVU5LTk9XTjoKICAgICAgICAgY2FzZSBGRUNPTE9STUFUUklYX1RZUEVfTFVN
SU5BTkNFVE9BTFBIQToKQEAgLTg4LDI2ICs4OCwxMCBAQCBib29sIEZpbHRlckVmZmVjdFJlbmRl
cmVyQ29yZUltYWdlOjpzdXBwb3J0c0NvcmVJbWFnZVJlbmRlcmluZyhGaWx0ZXJFZmZlY3QmIGVm
ZgogICAgICAgICB9CiAgICAgfQogCi0gICAgY2FzZSBGaWx0ZXJFZmZlY3Q6OlR5cGU6OkNvbXBv
bmVudFRyYW5zZmVyOgorICAgIGNhc2UgRmlsdGVyRWZmZWN0OjpUeXBlOjpGRUNvbXBvbmVudFRy
YW5zZmVyOgogICAgICAgICByZXR1cm4gaXNOdWxsT3JMaW5lYXJDb21wb25lbnRUcmFuc2ZlckZ1
bmN0aW9uKGRvd25jYXN0PEZFQ29tcG9uZW50VHJhbnNmZXI+KGVmZmVjdCkpOwogCi0gICAgY2Fz
ZSBGaWx0ZXJFZmZlY3Q6OlR5cGU6OkJsZW5kOgotICAgIGNhc2UgRmlsdGVyRWZmZWN0OjpUeXBl
OjpDb21wb3NpdGU6Ci0gICAgY2FzZSBGaWx0ZXJFZmZlY3Q6OlR5cGU6OkNvbnZvbHZlTWF0cml4
OgotICAgIGNhc2UgRmlsdGVyRWZmZWN0OjpUeXBlOjpEaWZmdXNlTGlnaHRpbmc6Ci0gICAgY2Fz
ZSBGaWx0ZXJFZmZlY3Q6OlR5cGU6OkRpc3BsYWNlbWVudE1hcDoKLSAgICBjYXNlIEZpbHRlckVm
ZmVjdDo6VHlwZTo6RHJvcFNoYWRvdzoKLSAgICBjYXNlIEZpbHRlckVmZmVjdDo6VHlwZTo6Rmxv
b2Q6Ci0gICAgY2FzZSBGaWx0ZXJFZmZlY3Q6OlR5cGU6OkdhdXNzaWFuQmx1cjoKLSAgICBjYXNl
IEZpbHRlckVmZmVjdDo6VHlwZTo6SW1hZ2U6Ci0gICAgY2FzZSBGaWx0ZXJFZmZlY3Q6OlR5cGU6
OkxpZ2h0aW5nOgotICAgIGNhc2UgRmlsdGVyRWZmZWN0OjpUeXBlOjpNZXJnZToKLSAgICBjYXNl
IEZpbHRlckVmZmVjdDo6VHlwZTo6TW9ycGhvbG9neToKLSAgICBjYXNlIEZpbHRlckVmZmVjdDo6
VHlwZTo6T2Zmc2V0OgotICAgIGNhc2UgRmlsdGVyRWZmZWN0OjpUeXBlOjpTcGVjdWxhckxpZ2h0
aW5nOgotICAgIGNhc2UgRmlsdGVyRWZmZWN0OjpUeXBlOjpUaWxlOgotICAgIGNhc2UgRmlsdGVy
RWZmZWN0OjpUeXBlOjpUdXJidWxlbmNlOgotICAgIGNhc2UgRmlsdGVyRWZmZWN0OjpUeXBlOjpT
b3VyY2VBbHBoYToKKyAgICBkZWZhdWx0OgogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQog
ICAgIHJldHVybiBmYWxzZTsKQEAgLTEzNywzMiArMTIxLDE0IEBAIFJldGFpblB0cjxDSUltYWdl
PiBGaWx0ZXJFZmZlY3RSZW5kZXJlckNvcmVJbWFnZTo6Y29ubmVjdENJRmlsdGVycyhGaWx0ZXJF
ZmZlY3QmCiAgICAgaWYgKGVmZmVjdC5hYnNvbHV0ZVBhaW50UmVjdCgpLmlzRW1wdHkoKSB8fCBJ
bWFnZUJ1ZmZlcjo6c2l6ZU5lZWRzQ2xhbXBpbmcoZWZmZWN0LmFic29sdXRlUGFpbnRSZWN0KCku
c2l6ZSgpKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgCi0gICAgc3dpdGNoIChlZmZl
Y3QuZmlsdGVyRWZmZWN0Q2xhc3NUeXBlKCkpIHsKKyAgICBzd2l0Y2ggKGVmZmVjdC5maWx0ZXJU
eXBlKCkpIHsKICAgICBjYXNlIEZpbHRlckVmZmVjdDo6VHlwZTo6U291cmNlR3JhcGhpYzoKICAg
ICAgICAgcmV0dXJuIGltYWdlRm9yU291cmNlR3JhcGhpYyhkb3duY2FzdDxTb3VyY2VHcmFwaGlj
PihlZmZlY3QpKTsKLSAgICBjYXNlIEZpbHRlckVmZmVjdDo6VHlwZTo6Q29sb3JNYXRyaXg6Cisg
ICAgY2FzZSBGaWx0ZXJFZmZlY3Q6OlR5cGU6OkZFQ29sb3JNYXRyaXg6CiAgICAgICAgIHJldHVy
biBpbWFnZUZvckZFQ29sb3JNYXRyaXgoZG93bmNhc3Q8RkVDb2xvck1hdHJpeD4oZWZmZWN0KSwg
aW5wdXRJbWFnZXMpOwotICAgIGNhc2UgRmlsdGVyRWZmZWN0OjpUeXBlOjpDb21wb25lbnRUcmFu
c2ZlcjoKKyAgICBjYXNlIEZpbHRlckVmZmVjdDo6VHlwZTo6RkVDb21wb25lbnRUcmFuc2ZlcjoK
ICAgICAgICAgcmV0dXJuIGltYWdlRm9yRkVDb21wb25lbnRUcmFuc2Zlcihkb3duY2FzdDxGRUNv
bXBvbmVudFRyYW5zZmVyPihlZmZlY3QpLCBpbnB1dEltYWdlcyk7CiAKLSAgICAvLyBGSVhNRTog
SW1wbGVtZW50IHRob3NlIGZpbHRlcnMgdXNpbmcgQ0lGaWx0ZXIgc28gdGhhdCB0aGUgZnVuY3Rp
b24gcmV0dXJucyBhIHZhbGlkIENJSW1hZ2UKLSAgICBjYXNlIEZpbHRlckVmZmVjdDo6VHlwZTo6
QmxlbmQ6Ci0gICAgY2FzZSBGaWx0ZXJFZmZlY3Q6OlR5cGU6OkNvbXBvc2l0ZToKLSAgICBjYXNl
IEZpbHRlckVmZmVjdDo6VHlwZTo6Q29udm9sdmVNYXRyaXg6Ci0gICAgY2FzZSBGaWx0ZXJFZmZl
Y3Q6OlR5cGU6OkRpZmZ1c2VMaWdodGluZzoKLSAgICBjYXNlIEZpbHRlckVmZmVjdDo6VHlwZTo6
RGlzcGxhY2VtZW50TWFwOgotICAgIGNhc2UgRmlsdGVyRWZmZWN0OjpUeXBlOjpEcm9wU2hhZG93
OgotICAgIGNhc2UgRmlsdGVyRWZmZWN0OjpUeXBlOjpGbG9vZDoKLSAgICBjYXNlIEZpbHRlckVm
ZmVjdDo6VHlwZTo6R2F1c3NpYW5CbHVyOgotICAgIGNhc2UgRmlsdGVyRWZmZWN0OjpUeXBlOjpJ
bWFnZToKLSAgICBjYXNlIEZpbHRlckVmZmVjdDo6VHlwZTo6TGlnaHRpbmc6Ci0gICAgY2FzZSBG
aWx0ZXJFZmZlY3Q6OlR5cGU6Ok1lcmdlOgotICAgIGNhc2UgRmlsdGVyRWZmZWN0OjpUeXBlOjpN
b3JwaG9sb2d5OgotICAgIGNhc2UgRmlsdGVyRWZmZWN0OjpUeXBlOjpPZmZzZXQ6Ci0gICAgY2Fz
ZSBGaWx0ZXJFZmZlY3Q6OlR5cGU6OlNwZWN1bGFyTGlnaHRpbmc6Ci0gICAgY2FzZSBGaWx0ZXJF
ZmZlY3Q6OlR5cGU6OlRpbGU6Ci0gICAgY2FzZSBGaWx0ZXJFZmZlY3Q6OlR5cGU6OlR1cmJ1bGVu
Y2U6Ci0gICAgY2FzZSBGaWx0ZXJFZmZlY3Q6OlR5cGU6OlNvdXJjZUFscGhhOgogICAgIGRlZmF1
bHQ6CiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVCbGVuZC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQmxlbmQuY3BwCmluZGV4IDVhYzdmNDkw
ZDRjZGE1MzNhNDFmNWMzZDg1NDUzMmMxOGFkY2RiNjYuLmI0Y2FlZDQ1NTU3MmZjODVjZWQ4YTRm
MjMxYzlmODMwMjdiYWZiMGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2ZpbHRlcnMvRkVCbGVuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZmlsdGVycy9GRUJsZW5kLmNwcApAQCAtMzUsNyArMzUsNyBAQAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCiBGRUJsZW5kOjpGRUJsZW5kKEZpbHRlciYgZmlsdGVyLCBCbGVuZE1vZGUg
bW9kZSkKLSAgICA6IEZpbHRlckVmZmVjdChmaWx0ZXIsIFR5cGU6OkJsZW5kKQorICAgIDogRmls
dGVyRWZmZWN0KGZpbHRlciwgRmlsdGVyRWZmZWN0OjpUeXBlOjpGRUJsZW5kKQogICAgICwgbV9t
b2RlKG1vZGUpCiB7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9maWx0ZXJzL0ZFQmxlbmQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2ZpbHRlcnMvRkVCbGVuZC5oCmluZGV4IDcwZTg0MDdiZjVjMjAwZDQ1MjE2YjhmOWMwODUxN2I1
MDc5ZTc5NjYuLmI4NGM4ZGQyODA1OGZmNDVkNTRjZGY4YTczYTJiYTcxNzI1ZmRlNWMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVCbGVuZC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVCbGVuZC5o
CkBAIC0zNiw4ICszNiw2IEBAIHB1YmxpYzoKICAgICBib29sIHNldEJsZW5kTW9kZShCbGVuZE1v
ZGUpOwogCiBwcml2YXRlOgotICAgIGNvbnN0IGNoYXIqIGZpbHRlck5hbWUoKSBjb25zdCBmaW5h
bCB7IHJldHVybiAiRkVCbGVuZCI7IH0KLQogICAgIHZvaWQgcGxhdGZvcm1BcHBseVNvZnR3YXJl
KCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBwbGF0Zm9ybUFwcGx5R2VuZXJpYyh1bnNpZ25lZCBjaGFy
KiBzcmNQaXhlbEFycmF5QSwgdW5zaWduZWQgY2hhciogc3JjUGl4ZWxBcnJheUIsIHVuc2lnbmVk
IGNoYXIqIGRzdFBpeGVsQXJyYXksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25l
ZCBjb2xvckFycmF5TGVuZ3RoKTsKQEAgLTUzLDMgKzUxLDQgQEAgcHJpdmF0ZToKIAogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQogCitTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0ZJTFRFUl9FRkZFQ1Qo
RkVCbGVuZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Zp
bHRlcnMvRkVDb2xvck1hdHJpeC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9maWx0ZXJzL0ZFQ29sb3JNYXRyaXguY3BwCmluZGV4IDE2NDIyZDZkYzViNTdlYzZmNzQ3YTQy
MTBjMjg1NDMzMmJhMWQzZTUuLmE3OTFiZDZkMzFmZDc1MDRhMTEzMjdmMWQ0MWFjYmQzYTQ5ZTE5
NTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMv
RkVDb2xvck1hdHJpeC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZmlsdGVycy9GRUNvbG9yTWF0cml4LmNwcApAQCAtMzYsNyArMzYsNyBAQAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCiBGRUNvbG9yTWF0cml4OjpGRUNvbG9yTWF0cml4KEZpbHRlciYgZmlsdGVyLCBD
b2xvck1hdHJpeFR5cGUgdHlwZSwgVmVjdG9yPGZsb2F0PiYmIHZhbHVlcykKLSAgICA6IEZpbHRl
ckVmZmVjdChmaWx0ZXIsIFR5cGU6OkNvbG9yTWF0cml4KQorICAgIDogRmlsdGVyRWZmZWN0KGZp
bHRlciwgRmlsdGVyRWZmZWN0OjpUeXBlOjpGRUNvbG9yTWF0cml4KQogICAgICwgbV90eXBlKHR5
cGUpCiAgICAgLCBtX3ZhbHVlcyhXVEZNb3ZlKHZhbHVlcykpCiB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29sb3JNYXRyaXguaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb2xvck1hdHJpeC5oCmlu
ZGV4IDI5ZTQxYThhZWQxZTRmMGI1Mzk3MDNhYzRkYjU1MjRlZmE0YzEyM2YuLjk5MmU3NWY5ZTgx
NTBjNjE3YTJlZjA3YzY1OTM2MTYwMDVlNDBmNDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb2xvck1hdHJpeC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb2xvck1hdHJpeC5oCkBAIC01Miw4
ICs1Miw2IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgRkVDb2xvck1hdHJpeChGaWx0ZXImLCBD
b2xvck1hdHJpeFR5cGUsIFZlY3RvcjxmbG9hdD4mJik7CiAKLSAgICBjb25zdCBjaGFyKiBmaWx0
ZXJOYW1lKCkgY29uc3QgZmluYWwgeyByZXR1cm4gIkZFQ29sb3JNYXRyaXgiOyB9Ci0KICAgICB2
b2lkIHBsYXRmb3JtQXBwbHlTb2Z0d2FyZSgpIG92ZXJyaWRlOwogCiAgICAgV1RGOjpUZXh0U3Ry
ZWFtJiBleHRlcm5hbFJlcHJlc2VudGF0aW9uKFdURjo6VGV4dFN0cmVhbSYsIFJlcHJlc2VudGF0
aW9uVHlwZSkgY29uc3Qgb3ZlcnJpZGU7CkBAIC05Myw3ICs5MSw0IEBAIGlubGluZSB2b2lkIEZF
Q29sb3JNYXRyaXg6OmNhbGN1bGF0ZUh1ZVJvdGF0ZUNvbXBvbmVudHMoZmxvYXQqIGNvbXBvbmVu
dHMsIGZsb2F0CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAotU1BFQ0lBTElaRV9UWVBFX1RS
QUlUU19CRUdJTihXZWJDb3JlOjpGRUNvbG9yTWF0cml4KQotICAgIHN0YXRpYyBib29sIGlzVHlw
ZShjb25zdCBXZWJDb3JlOjpGaWx0ZXJFZmZlY3QmIGVmZmVjdCkgeyByZXR1cm4gZWZmZWN0LmZp
bHRlckVmZmVjdENsYXNzVHlwZSgpID09IFdlYkNvcmU6OkZpbHRlckVmZmVjdDo6VHlwZTo6Q29s
b3JNYXRyaXg7IH0KLVNQRUNJQUxJWkVfVFlQRV9UUkFJVFNfRU5EKCkKLQorU1BFQ0lBTElaRV9U
WVBFX1RSQUlUU19GSUxURVJfRUZGRUNUKEZFQ29sb3JNYXRyaXgpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29tcG9uZW50VHJhbnNmZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbXBvbmVu
dFRyYW5zZmVyLmNwcAppbmRleCA4NDdlYTU4ZjVmOWIwMzg2NmQ5ZWFjNTdmMTBjY2Y1NzQwMmY5
ZTYzLi5jZTAwY2MxOTgyOTc5YjQwOTQwNGQ1Y2ZkY2MwM2E2ZWQzMzVjM2IyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29tcG9uZW50VHJh
bnNmZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMv
RkVDb21wb25lbnRUcmFuc2Zlci5jcHAKQEAgLTMzLDkgKzMzLDggQEAKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCi1GRUNvbXBvbmVudFRyYW5zZmVyOjpGRUNvbXBvbmVudFRyYW5zZmVyKEZpbHRl
ciYgZmlsdGVyLCBjb25zdCBDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uJiByZWRGdW5jdGlvbiwK
LSAgICBjb25zdCBDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uJiBncmVlbkZ1bmN0aW9uLCBjb25z
dCBDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uJiBibHVlRnVuY3Rpb24sIGNvbnN0IENvbXBvbmVu
dFRyYW5zZmVyRnVuY3Rpb24mIGFscGhhRnVuY3Rpb24pCi0gICAgOiBGaWx0ZXJFZmZlY3QoZmls
dGVyLCBUeXBlOjpDb21wb25lbnRUcmFuc2ZlcikKK0ZFQ29tcG9uZW50VHJhbnNmZXI6OkZFQ29t
cG9uZW50VHJhbnNmZXIoRmlsdGVyJiBmaWx0ZXIsIGNvbnN0IENvbXBvbmVudFRyYW5zZmVyRnVu
Y3Rpb24mIHJlZEZ1bmN0aW9uLCBjb25zdCBDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uJiBncmVl
bkZ1bmN0aW9uLCBjb25zdCBDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uJiBibHVlRnVuY3Rpb24s
IGNvbnN0IENvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb24mIGFscGhhRnVuY3Rpb24pCisgICAgOiBG
aWx0ZXJFZmZlY3QoZmlsdGVyLCBGaWx0ZXJFZmZlY3Q6OlR5cGU6OkZFQ29tcG9uZW50VHJhbnNm
ZXIpCiAgICAgLCBtX3JlZEZ1bmN0aW9uKHJlZEZ1bmN0aW9uKQogICAgICwgbV9ncmVlbkZ1bmN0
aW9uKGdyZWVuRnVuY3Rpb24pCiAgICAgLCBtX2JsdWVGdW5jdGlvbihibHVlRnVuY3Rpb24pCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29t
cG9uZW50VHJhbnNmZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRl
cnMvRkVDb21wb25lbnRUcmFuc2Zlci5oCmluZGV4IDJiNTg2ZGVmN2ZiNDJhMzdiMmUxMjNlZGE4
NzExOWM0ZWIzNDhhNTEuLjNiOWQyNjA4YjA5NzRkODI1NWVjYWE0MmE4M2MyYWZkZjYzOGEzZDkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVD
b21wb25lbnRUcmFuc2Zlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2ZpbHRlcnMvRkVDb21wb25lbnRUcmFuc2Zlci5oCkBAIC02NSw4ICs2NSw2IEBAIHByaXZhdGU6
CiAgICAgRkVDb21wb25lbnRUcmFuc2ZlcihGaWx0ZXImLCBjb25zdCBDb21wb25lbnRUcmFuc2Zl
ckZ1bmN0aW9uJiByZWRGdW5jLCBjb25zdCBDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uJiBncmVl
bkZ1bmMsCiAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBDb21wb25lbnRUcmFuc2ZlckZ1
bmN0aW9uJiBibHVlRnVuYywgY29uc3QgQ29tcG9uZW50VHJhbnNmZXJGdW5jdGlvbiYgYWxwaGFG
dW5jKTsKIAotICAgICBjb25zdCBjaGFyKiBmaWx0ZXJOYW1lKCkgY29uc3QgZmluYWwgeyByZXR1
cm4gIkZFQ29tcG9uZW50VHJhbnNmZXIiOyB9Ci0KICAgICB1c2luZyBMb29rdXBUYWJsZSA9IHN0
ZDo6YXJyYXk8dWludDhfdCwgMjU2PjsKIAogICAgIHN0YXRpYyB2b2lkIGNvbXB1dGVJZGVudGl0
eVRhYmxlKExvb2t1cFRhYmxlJiwgY29uc3QgQ29tcG9uZW50VHJhbnNmZXJGdW5jdGlvbiYpOwpA
QCAtODksNiArODcsNCBAQCBwcml2YXRlOgogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKLVNQ
RUNJQUxJWkVfVFlQRV9UUkFJVFNfQkVHSU4oV2ViQ29yZTo6RkVDb21wb25lbnRUcmFuc2ZlcikK
LSAgICBzdGF0aWMgYm9vbCBpc1R5cGUoY29uc3QgV2ViQ29yZTo6RmlsdGVyRWZmZWN0JiBlZmZl
Y3QpIHsgcmV0dXJuIGVmZmVjdC5maWx0ZXJFZmZlY3RDbGFzc1R5cGUoKSA9PSBXZWJDb3JlOjpG
aWx0ZXJFZmZlY3Q6OlR5cGU6OkNvbXBvbmVudFRyYW5zZmVyOyB9Ci1TUEVDSUFMSVpFX1RZUEVf
VFJBSVRTX0VORCgpCitTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0ZJTFRFUl9FRkZFQ1QoRkVDb21w
b25lbnRUcmFuc2ZlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2ZpbHRlcnMvRkVDb21wb3NpdGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZmlsdGVycy9GRUNvbXBvc2l0ZS5jcHAKaW5kZXggODMzNTMwOTA4MWEyNmJhMmMzMWMz
YmRhYzg4ODY2OWUyOGUzNDU2ZC4uZTBiZWYzMDc0MDVmZjIzM2U4YTJhZmI1Y2JlYzhkNTQ4ZDIy
NzgwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVy
cy9GRUNvbXBvc2l0ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZmlsdGVycy9GRUNvbXBvc2l0ZS5jcHAKQEAgLTMzLDcgKzMzLDcgQEAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogRkVDb21wb3NpdGU6OkZFQ29tcG9zaXRlKEZpbHRlciYgZmlsdGVyLCBjb25zdCBD
b21wb3NpdGVPcGVyYXRpb25UeXBlJiB0eXBlLCBmbG9hdCBrMSwgZmxvYXQgazIsIGZsb2F0IGsz
LCBmbG9hdCBrNCkKLSAgICA6IEZpbHRlckVmZmVjdChmaWx0ZXIsIFR5cGU6OkNvbXBvc2l0ZSkK
KyAgICA6IEZpbHRlckVmZmVjdChmaWx0ZXIsIEZpbHRlckVmZmVjdDo6VHlwZTo6RkVDb21wb3Np
dGUpCiAgICAgLCBtX3R5cGUodHlwZSkKICAgICAsIG1fazEoazEpCiAgICAgLCBtX2syKGsyKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNv
bXBvc2l0ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNv
bXBvc2l0ZS5oCmluZGV4IDdkMDhlMWY3MTA3YjRiOTY4YzU4ZTNhMzdjMzJhZTJmNzZhZWEwYzMu
LjM5MjM3ZmViMTI3YWQxZmYxZGUyMTgzNGJkN2IyYjczN2ZhYWYzMmQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb21wb3NpdGUuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29tcG9zaXRlLmgK
QEAgLTY0LDggKzY0LDYgQEAgcHJvdGVjdGVkOgogcHJpdmF0ZToKICAgICBGRUNvbXBvc2l0ZShG
aWx0ZXImLCBjb25zdCBDb21wb3NpdGVPcGVyYXRpb25UeXBlJiwgZmxvYXQsIGZsb2F0LCBmbG9h
dCwgZmxvYXQpOwogCi0gICAgY29uc3QgY2hhciogZmlsdGVyTmFtZSgpIGNvbnN0IGZpbmFsIHsg
cmV0dXJuICJGRUNvbXBvc2l0ZSI7IH0KLQogICAgIHZvaWQgY29ycmVjdEZpbHRlclJlc3VsdElm
TmVlZGVkKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBkZXRlcm1pbmVBYnNvbHV0ZVBhaW50UmVjdCgp
IG92ZXJyaWRlOwogCkBAIC05MCwzICs4OCw0IEBAIHByaXZhdGU6CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKIAorU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19GSUxURVJfRUZGRUNUKEZFQ29tcG9z
aXRlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVy
cy9GRUNvbnZvbHZlTWF0cml4LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2ZpbHRlcnMvRkVDb252b2x2ZU1hdHJpeC5jcHAKaW5kZXggM2JiZTc4MzU5OGQ3MDkzNWE5NWM2
ZjE1NmVjMjkzM2MwZTk5ZjA1MC4uODBiNGM4OTI5NTIwZmEwNTdjN2M1MmQyY2Q3YmJiNGU5OGVj
NTU2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVy
cy9GRUNvbnZvbHZlTWF0cml4LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9maWx0ZXJzL0ZFQ29udm9sdmVNYXRyaXguY3BwCkBAIC0zMiwxMCArMzIsOCBAQAogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKLUZFQ29udm9sdmVNYXRyaXg6OkZFQ29udm9sdmVNYXRyaXgo
RmlsdGVyJiBmaWx0ZXIsIGNvbnN0IEludFNpemUmIGtlcm5lbFNpemUsCi0gICAgZmxvYXQgZGl2
aXNvciwgZmxvYXQgYmlhcywgY29uc3QgSW50UG9pbnQmIHRhcmdldE9mZnNldCwgRWRnZU1vZGVU
eXBlIGVkZ2VNb2RlLAotICAgIGNvbnN0IEZsb2F0UG9pbnQmIGtlcm5lbFVuaXRMZW5ndGgsIGJv
b2wgcHJlc2VydmVBbHBoYSwgY29uc3QgVmVjdG9yPGZsb2F0PiYga2VybmVsTWF0cml4KQotICAg
IDogRmlsdGVyRWZmZWN0KGZpbHRlciwgVHlwZTo6Q29udm9sdmVNYXRyaXgpCitGRUNvbnZvbHZl
TWF0cml4OjpGRUNvbnZvbHZlTWF0cml4KEZpbHRlciYgZmlsdGVyLCBjb25zdCBJbnRTaXplJiBr
ZXJuZWxTaXplLCBmbG9hdCBkaXZpc29yLCBmbG9hdCBiaWFzLCBjb25zdCBJbnRQb2ludCYgdGFy
Z2V0T2Zmc2V0LCBFZGdlTW9kZVR5cGUgZWRnZU1vZGUsIGNvbnN0IEZsb2F0UG9pbnQmIGtlcm5l
bFVuaXRMZW5ndGgsIGJvb2wgcHJlc2VydmVBbHBoYSwgY29uc3QgVmVjdG9yPGZsb2F0PiYga2Vy
bmVsTWF0cml4KQorICAgIDogRmlsdGVyRWZmZWN0KGZpbHRlciwgRmlsdGVyRWZmZWN0OjpUeXBl
OjpGRUNvbnZvbHZlTWF0cml4KQogICAgICwgbV9rZXJuZWxTaXplKGtlcm5lbFNpemUpCiAgICAg
LCBtX2Rpdmlzb3IoZGl2aXNvcikKICAgICAsIG1fYmlhcyhiaWFzKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbnZvbHZlTWF0cml4Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29udm9sdmVNYXRy
aXguaAppbmRleCA2N2Q0YzY1NjdmY2U2YjI3ZWU1YWI4OTVhNmUxZTUwMDU0ZTEzZGJhLi5jMWE1
YzViODY3NTYyZjI2YWY4MDdkNDVjNWI0MDA5NmRiMWNmZmZhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29udm9sdmVNYXRyaXguaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29udm9sdmVNYXRy
aXguaApAQCAtODAsOCArODAsNiBAQCBwcml2YXRlOgogICAgIEZFQ29udm9sdmVNYXRyaXgoRmls
dGVyJiwgY29uc3QgSW50U2l6ZSYsIGZsb2F0LCBmbG9hdCwKICAgICAgICAgICAgIGNvbnN0IElu
dFBvaW50JiwgRWRnZU1vZGVUeXBlLCBjb25zdCBGbG9hdFBvaW50JiwgYm9vbCwgY29uc3QgVmVj
dG9yPGZsb2F0PiYpOwogCi0gICAgY29uc3QgY2hhciogZmlsdGVyTmFtZSgpIGNvbnN0IGZpbmFs
IHsgcmV0dXJuICJGRUNvbnZvbHZlTWF0cml4IjsgfQotCiAgICAgdm9pZCBkZXRlcm1pbmVBYnNv
bHV0ZVBhaW50UmVjdCgpIG92ZXJyaWRlIHsgc2V0QWJzb2x1dGVQYWludFJlY3QoZW5jbG9zaW5n
SW50UmVjdChtYXhFZmZlY3RSZWN0KCkpKTsgfQogCiAgICAgdm9pZCBwbGF0Zm9ybUFwcGx5U29m
dHdhcmUoKSBvdmVycmlkZTsKQEAgLTExNSwzICsxMTMsNCBAQCBwcml2YXRlOgogCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCiAKK1NQRUNJQUxJWkVfVFlQRV9UUkFJVFNfRklMVEVSX0VGRkVDVChG
RUNvbnZvbHZlTWF0cml4KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZmlsdGVycy9GRURpZmZ1c2VMaWdodGluZy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRGlmZnVzZUxpZ2h0aW5nLmNwcAppbmRleCBlZWIxNzI4
ZGIzNWU4YWMzMDJiMjdlNGMzZmYzNGNiODg1NWI5ZDA5Li40NGUyZTYyMTRhMzc2YTRkYTFlZTc3
M2NkZDQxNzY1Nzc0MDliMWUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9maWx0ZXJzL0ZFRGlmZnVzZUxpZ2h0aW5nLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRGlmZnVzZUxpZ2h0aW5nLmNwcApAQCAtMjgs
NyArMjgsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBGRURpZmZ1c2VMaWdodGluZzo6RkVE
aWZmdXNlTGlnaHRpbmcoRmlsdGVyJiBmaWx0ZXIsIGNvbnN0IENvbG9yJiBsaWdodGluZ0NvbG9y
LCBmbG9hdCBzdXJmYWNlU2NhbGUsIGZsb2F0IGRpZmZ1c2VDb25zdGFudCwgZmxvYXQga2VybmVs
VW5pdExlbmd0aFgsIGZsb2F0IGtlcm5lbFVuaXRMZW5ndGhZLCBSZWY8TGlnaHRTb3VyY2U+JiYg
bGlnaHRTb3VyY2UpCi0gICAgOiBGRUxpZ2h0aW5nKGZpbHRlciwgRGlmZnVzZUxpZ2h0aW5nLCBs
aWdodGluZ0NvbG9yLCBzdXJmYWNlU2NhbGUsIGRpZmZ1c2VDb25zdGFudCwgMCwgMCwga2VybmVs
VW5pdExlbmd0aFgsIGtlcm5lbFVuaXRMZW5ndGhZLCBXVEZNb3ZlKGxpZ2h0U291cmNlKSwgVHlw
ZTo6RGlmZnVzZUxpZ2h0aW5nKQorICAgIDogRkVMaWdodGluZyhmaWx0ZXIsIERpZmZ1c2VMaWdo
dGluZywgbGlnaHRpbmdDb2xvciwgc3VyZmFjZVNjYWxlLCBkaWZmdXNlQ29uc3RhbnQsIDAsIDAs
IGtlcm5lbFVuaXRMZW5ndGhYLCBrZXJuZWxVbml0TGVuZ3RoWSwgV1RGTW92ZShsaWdodFNvdXJj
ZSksIEZpbHRlckVmZmVjdDo6VHlwZTo6RkVEaWZmdXNlTGlnaHRpbmcpCiB7CiB9CiAKQEAgLTM3
LDggKzM3LDYgQEAgUmVmPEZFRGlmZnVzZUxpZ2h0aW5nPiBGRURpZmZ1c2VMaWdodGluZzo6Y3Jl
YXRlKEZpbHRlciYgZmlsdGVyLCBjb25zdCBDb2xvciYgbGkKICAgICByZXR1cm4gYWRvcHRSZWYo
Km5ldyBGRURpZmZ1c2VMaWdodGluZyhmaWx0ZXIsIGxpZ2h0aW5nQ29sb3IsIHN1cmZhY2VTY2Fs
ZSwgZGlmZnVzZUNvbnN0YW50LCBrZXJuZWxVbml0TGVuZ3RoWCwga2VybmVsVW5pdExlbmd0aFks
IFdURk1vdmUobGlnaHRTb3VyY2UpKSk7CiB9CiAKLUZFRGlmZnVzZUxpZ2h0aW5nOjp+RkVEaWZm
dXNlTGlnaHRpbmcoKSA9IGRlZmF1bHQ7Ci0KIGJvb2wgRkVEaWZmdXNlTGlnaHRpbmc6OnNldERp
ZmZ1c2VDb25zdGFudChmbG9hdCBkaWZmdXNlQ29uc3RhbnQpCiB7CiAgICAgaWYgKG1fZGlmZnVz
ZUNvbnN0YW50ID09IGRpZmZ1c2VDb25zdGFudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVEaWZmdXNlTGlnaHRpbmcuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVEaWZmdXNlTGlnaHRpbmcuaAppbmRl
eCBkZjYxMTRkMGZiOGUyZjNlMTEyOGI4NDI2MTVlNDc1MTNhMGRkZGMzLi4yNzM3ZjYwZjRjM2Y0
YjM2MjRkZjgwZWJiOTk4MzdiYTY1OWZhMGJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRGlmZnVzZUxpZ2h0aW5nLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRURpZmZ1c2VMaWdodGluZy5oCkBA
IC0zMCw3ICszMCw2IEBAIGNsYXNzIExpZ2h0U291cmNlOwogY2xhc3MgRkVEaWZmdXNlTGlnaHRp
bmcgOiBwdWJsaWMgRkVMaWdodGluZyB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxGRURpZmZ1
c2VMaWdodGluZz4gY3JlYXRlKEZpbHRlciYsIGNvbnN0IENvbG9yJiwgZmxvYXQsIGZsb2F0LCBm
bG9hdCwgZmxvYXQsIFJlZjxMaWdodFNvdXJjZT4mJik7Ci0gICAgdmlydHVhbCB+RkVEaWZmdXNl
TGlnaHRpbmcoKTsKIAogICAgIGZsb2F0IGRpZmZ1c2VDb25zdGFudCgpIGNvbnN0IHsgcmV0dXJu
IG1fZGlmZnVzZUNvbnN0YW50OyB9CiAgICAgYm9vbCBzZXREaWZmdXNlQ29uc3RhbnQoZmxvYXQp
OwpAQCAtNDMsMyArNDIsNCBAQCBwcml2YXRlOgogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAK
K1NQRUNJQUxJWkVfVFlQRV9UUkFJVFNfRklMVEVSX0VGRkVDVChGRURpZmZ1c2VMaWdodGluZykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVE
aXNwbGFjZW1lbnRNYXAuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmls
dGVycy9GRURpc3BsYWNlbWVudE1hcC5jcHAKaW5kZXggMDQ3NDkzMzkyYmIyODE0NmQ4YjE2OWJh
MGE3YzMyYjE2YzU2M2ZhMS4uNDZiNzdjODVhMWNmOGQ0ODVjMDVjMzE1NzMzOWUwYmI0YWViZTU4
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9G
RURpc3BsYWNlbWVudE1hcC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZmlsdGVycy9GRURpc3BsYWNlbWVudE1hcC5jcHAKQEAgLTMyLDcgKzMyLDcgQEAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogRkVEaXNwbGFjZW1lbnRNYXA6OkZFRGlzcGxhY2VtZW50TWFwKEZp
bHRlciYgZmlsdGVyLCBDaGFubmVsU2VsZWN0b3JUeXBlIHhDaGFubmVsU2VsZWN0b3IsIENoYW5u
ZWxTZWxlY3RvclR5cGUgeUNoYW5uZWxTZWxlY3RvciwgZmxvYXQgc2NhbGUpCi0gICAgOiBGaWx0
ZXJFZmZlY3QoZmlsdGVyLCBUeXBlOjpEaXNwbGFjZW1lbnRNYXApCisgICAgOiBGaWx0ZXJFZmZl
Y3QoZmlsdGVyLCBGaWx0ZXJFZmZlY3Q6OlR5cGU6OkZFRGlzcGxhY2VtZW50TWFwKQogICAgICwg
bV94Q2hhbm5lbFNlbGVjdG9yKHhDaGFubmVsU2VsZWN0b3IpCiAgICAgLCBtX3lDaGFubmVsU2Vs
ZWN0b3IoeUNoYW5uZWxTZWxlY3RvcikKICAgICAsIG1fc2NhbGUoc2NhbGUpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRGlzcGxhY2VtZW50
TWFwLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRGlzcGxh
Y2VtZW50TWFwLmgKaW5kZXggZGQ3MzJhODgxMDczZTI2NmJjODQ2YWZlNjgxOWU2NzUxNjIzYTNh
Mi4uYWE1YjZkNDZiYzQ2NGZjNmQwNjBkODZhZjZiYWUwZWYwN2VjOWU4ZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRURpc3BsYWNlbWVudE1h
cC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVEaXNw
bGFjZW1lbnRNYXAuaApAQCAtNTQsOCArNTQsNiBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIEZF
RGlzcGxhY2VtZW50TWFwKEZpbHRlciYsIENoYW5uZWxTZWxlY3RvclR5cGUgeENoYW5uZWxTZWxl
Y3RvciwgQ2hhbm5lbFNlbGVjdG9yVHlwZSB5Q2hhbm5lbFNlbGVjdG9yLCBmbG9hdCk7CiAKLSAg
ICBjb25zdCBjaGFyKiBmaWx0ZXJOYW1lKCkgY29uc3QgZmluYWwgeyByZXR1cm4gIkZFRGlzcGxh
Y2VtZW50TWFwIjsgfQotCiAgICAgdm9pZCBwbGF0Zm9ybUFwcGx5U29mdHdhcmUoKSBvdmVycmlk
ZTsKIAogICAgIHZvaWQgZGV0ZXJtaW5lQWJzb2x1dGVQYWludFJlY3QoKSBvdmVycmlkZSB7IHNl
dEFic29sdXRlUGFpbnRSZWN0KGVuY2xvc2luZ0ludFJlY3QobWF4RWZmZWN0UmVjdCgpKSk7IH0K
QEAgLTcyLDMgKzcwLDQgQEAgcHJpdmF0ZToKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCitT
UEVDSUFMSVpFX1RZUEVfVFJBSVRTX0ZJTFRFUl9FRkZFQ1QoRkVEaXNwbGFjZW1lbnRNYXApCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRHJv
cFNoYWRvdy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZF
RHJvcFNoYWRvdy5jcHAKaW5kZXggMzVmYmFiNDFlODA5MjE2ZTRiMjI0MzUxMTg2MjNlMjhmZmQ2
MWVmYS4uNzNmYjc0MDE3NzRhM2NkNjg3YjUzODc2M2RiYjNkNmQxYjRhZjU0NSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRURyb3BTaGFkb3cu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVEcm9w
U2hhZG93LmNwcApAQCAtMzIsNyArMzIsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIAog
RkVEcm9wU2hhZG93OjpGRURyb3BTaGFkb3coRmlsdGVyJiBmaWx0ZXIsIGZsb2F0IHN0ZFgsIGZs
b2F0IHN0ZFksIGZsb2F0IGR4LCBmbG9hdCBkeSwgY29uc3QgQ29sb3ImIHNoYWRvd0NvbG9yLCBm
bG9hdCBzaGFkb3dPcGFjaXR5KQotICAgIDogRmlsdGVyRWZmZWN0KGZpbHRlciwgVHlwZTo6RHJv
cFNoYWRvdykKKyAgICA6IEZpbHRlckVmZmVjdChmaWx0ZXIsIEZpbHRlckVmZmVjdDo6VHlwZTo6
RkVEcm9wU2hhZG93KQogICAgICwgbV9zdGRYKHN0ZFgpCiAgICAgLCBtX3N0ZFkoc3RkWSkKICAg
ICAsIG1fZHgoZHgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9maWx0ZXJzL0ZFRHJvcFNoYWRvdy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZmlsdGVycy9GRURyb3BTaGFkb3cuaAppbmRleCBiNGUwYTIwMTJmZWRiN2I3N2JmM2UwNTcz
NGVlODhhMjllZmYzODRjLi4yYjZlNjYxM2I1YWUxNzg0YTcxMDJkNTQ2ZGRiYmNiZDYxMzg1OGZh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZF
RHJvcFNoYWRvdy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRl
cnMvRkVEcm9wU2hhZG93LmgKQEAgLTUwLDggKzUwLDYgQEAgcHVibGljOgogcHJpdmF0ZToKICAg
ICBGRURyb3BTaGFkb3coRmlsdGVyJiwgZmxvYXQsIGZsb2F0LCBmbG9hdCwgZmxvYXQsIGNvbnN0
IENvbG9yJiwgZmxvYXQpOwogCi0gICAgY29uc3QgY2hhciogZmlsdGVyTmFtZSgpIGNvbnN0IGZp
bmFsIHsgcmV0dXJuICJGRURyb3BTaGFkb3ciOyB9Ci0KICAgICB2b2lkIHBsYXRmb3JtQXBwbHlT
b2Z0d2FyZSgpIG92ZXJyaWRlOwogCiAgICAgdm9pZCBkZXRlcm1pbmVBYnNvbHV0ZVBhaW50UmVj
dCgpIG92ZXJyaWRlOwpAQCAtNzAsMyArNjgsNCBAQCBwcml2YXRlOgogICAgIAogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQogCitTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0ZJTFRFUl9FRkZFQ1QoRkVE
cm9wU2hhZG93KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZmlsdGVycy9GRUZsb29kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Zp
bHRlcnMvRkVGbG9vZC5jcHAKaW5kZXggYjQyMzU1MzRjMzhiMWViYTIxMWVlODQ4NjE3OTkyMzgw
ZjNiNmIwMS4uYTc4NDIxOTY3NGUxYWU5Nzk5MzQ0MzhkYTU0YTFhNzFjOTgwNDg0MiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUZsb29kLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRmxvb2Qu
Y3BwCkBAIC0zMSw3ICszMSw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIEZFRmxvb2Q6OkZF
Rmxvb2QoRmlsdGVyJiBmaWx0ZXIsIGNvbnN0IENvbG9yJiBmbG9vZENvbG9yLCBmbG9hdCBmbG9v
ZE9wYWNpdHkpCi0gICAgOiBGaWx0ZXJFZmZlY3QoZmlsdGVyLCBUeXBlOjpGbG9vZCkKKyAgICA6
IEZpbHRlckVmZmVjdChmaWx0ZXIsIEZpbHRlckVmZmVjdDo6VHlwZTo6RkVGbG9vZCkKICAgICAs
IG1fZmxvb2RDb2xvcihmbG9vZENvbG9yKQogICAgICwgbV9mbG9vZE9wYWNpdHkoZmxvb2RPcGFj
aXR5KQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmls
dGVycy9GRUZsb29kLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJz
L0ZFRmxvb2QuaAppbmRleCBiNzA0ZGM5NjljNmQ3NTg4YmNlYjBhZDhiMjQ2ODJmYTA2MTczNDhl
Li4wOGE0ZTk1OTM1ODVkMmZhMDcyNjg0ZDQ1ZDVmODkzMGYzYWVlZjBhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRmxvb2QuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRmxvb2QuaApAQCAtNDcs
OCArNDcsNiBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIEZFRmxvb2QoRmlsdGVyJiwgY29uc3Qg
Q29sb3ImLCBmbG9hdCk7CiAKLSAgICBjb25zdCBjaGFyKiBmaWx0ZXJOYW1lKCkgY29uc3QgZmlu
YWwgeyByZXR1cm4gIkZFRmxvb2QiOyB9Ci0KICAgICB2b2lkIHBsYXRmb3JtQXBwbHlTb2Z0d2Fy
ZSgpIG92ZXJyaWRlOwogCiAgICAgdm9pZCBkZXRlcm1pbmVBYnNvbHV0ZVBhaW50UmVjdCgpIG92
ZXJyaWRlIHsgc2V0QWJzb2x1dGVQYWludFJlY3QoZW5jbG9zaW5nSW50UmVjdChtYXhFZmZlY3RS
ZWN0KCkpKTsgfQpAQCAtNjEsMyArNTksNCBAQCBwcml2YXRlOgogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCiAKK1NQRUNJQUxJWkVfVFlQRV9UUkFJVFNfRklMVEVSX0VGRkVDVChGRUZsb29kKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUdh
dXNzaWFuQmx1ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJz
L0ZFR2F1c3NpYW5CbHVyLmNwcAppbmRleCAwZjZlZTg3Zjk1ZTc1NzUxODYzZmQyZTVmNTQ5ZTc0
ZDk3MjlkYjFmLi4yZGZhMWYzNGRiOTAzMDI1YzY3MGE4ZGM3MGZhODc5Yjc4MGQzMzgwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFR2F1c3Np
YW5CbHVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJz
L0ZFR2F1c3NpYW5CbHVyLmNwcApAQCAtODAsNyArODAsNyBAQCBpbmxpbmUgdm9pZCBrZXJuZWxQ
b3NpdGlvbihpbnQgYmx1ckl0ZXJhdGlvbiwgdW5zaWduZWQmIHJhZGl1cywgaW50JiBkZWx0YUxl
ZnQsCiB9CiAKIEZFR2F1c3NpYW5CbHVyOjpGRUdhdXNzaWFuQmx1cihGaWx0ZXImIGZpbHRlciwg
ZmxvYXQgeCwgZmxvYXQgeSwgRWRnZU1vZGVUeXBlIGVkZ2VNb2RlKQotICAgIDogRmlsdGVyRWZm
ZWN0KGZpbHRlciwgVHlwZTo6R2F1c3NpYW5CbHVyKQorICAgIDogRmlsdGVyRWZmZWN0KGZpbHRl
ciwgRmlsdGVyRWZmZWN0OjpUeXBlOjpGRUdhdXNzaWFuQmx1cikKICAgICAsIG1fc3RkWCh4KQog
ICAgICwgbV9zdGRZKHkpCiAgICAgLCBtX2VkZ2VNb2RlKGVkZ2VNb2RlKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUdhdXNzaWFuQmx1ci5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUdhdXNzaWFuQmx1
ci5oCmluZGV4IGFkN2Q5NTBiOWI3MjNkYzc0NDY0OWNiYWYwMGE5MTMwYTNiMWQ3MGUuLjc0M2I2
NTE1ZGUzZjQ2MjUwODMxZGRjMzI2NjI1MmRhYjhmYjFmMDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVHYXVzc2lhbkJsdXIuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFR2F1c3NpYW5CbHVyLmgK
QEAgLTQ3LDggKzQ3LDYgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBGRUdhdXNzaWFuQmx1cihG
aWx0ZXImLCBmbG9hdCwgZmxvYXQsIEVkZ2VNb2RlVHlwZSk7CiAKLSAgICBjb25zdCBjaGFyKiBm
aWx0ZXJOYW1lKCkgY29uc3QgZmluYWwgeyByZXR1cm4gIkZFR2F1c3NpYW5CbHVyIjsgfQotCiAg
ICAgc3RhdGljIGNvbnN0IGludCBzX21pbmltYWxSZWN0RGltZW5zaW9uID0gMTAwICogMTAwOyAv
LyBFbXBpcmljYWwgZGF0YSBsaW1pdCBmb3IgcGFyYWxsZWwgam9icwogCiAgICAgc3RydWN0IFBs
YXRmb3JtQXBwbHlQYXJhbWV0ZXJzIHsKQEAgLTgwLDMgKzc4LDQgQEAgcHJpdmF0ZToKIAogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQogCitTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0ZJTFRFUl9FRkZF
Q1QoRkVHYXVzc2lhbkJsdXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9maWx0ZXJzL0ZFTGlnaHRpbmcuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2ZpbHRlcnMvRkVMaWdodGluZy5oCmluZGV4IGIwYmI3MGExNGQxNzQ5NTA2NzM3ZTg4
ZTA1MTRlZTc5NjgyMGE0NDkuLjAxZjQ0MmI0MDAzM2ZmYTNmNzA3NTcwYTRhMzM0MDMzYmU2YzJi
ODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMv
RkVMaWdodGluZy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRl
cnMvRkVMaWdodGluZy5oCkBAIC0xMzAsOCArMTMwLDYgQEAgcHJvdGVjdGVkOgogCiAgICAgRkVM
aWdodGluZyhGaWx0ZXImLCBMaWdodGluZ1R5cGUsIGNvbnN0IENvbG9yJiwgZmxvYXQsIGZsb2F0
LCBmbG9hdCwgZmxvYXQsIGZsb2F0LCBmbG9hdCwgUmVmPExpZ2h0U291cmNlPiYmLCBUeXBlKTsK
IAotICAgIGNvbnN0IGNoYXIqIGZpbHRlck5hbWUoKSBjb25zdCBmaW5hbCB7IHJldHVybiAiRkVM
aWdodGluZyI7IH0KLQogICAgIGJvb2wgZHJhd0xpZ2h0aW5nKFVpbnQ4Q2xhbXBlZEFycmF5Jiwg
aW50LCBpbnQpOwogCiAgICAgdm9pZCBzZXRQaXhlbChpbnQgb2Zmc2V0LCBjb25zdCBMaWdodGlu
Z0RhdGEmLCBjb25zdCBMaWdodFNvdXJjZTo6UGFpbnRpbmdEYXRhJiwgaW50IHgsIGludCB5LCBm
bG9hdCBmYWN0b3JYLCBmbG9hdCBmYWN0b3JZLCBJbnRTaXplIG5vcm1hbFZlY3Rvcik7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFTWVyZ2Uu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRU1lcmdlLmNw
cAppbmRleCAwYTIwMDAxYjE3M2JkOGZkZjZiYmE2MzZjZDIzY2U0NzAyNmU3YjNmLi42OTdkMmUx
NWNjYmYxYWVmZWQwZTg5ZmRhMzRlNzAzMjkzMDdmNzNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFTWVyZ2UuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVNZXJnZS5jcHAKQEAgLTI5LDcgKzI5
LDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogRkVNZXJnZTo6RkVNZXJnZShGaWx0ZXImIGZp
bHRlcikKLSAgICA6IEZpbHRlckVmZmVjdChmaWx0ZXIsIFR5cGU6Ok1lcmdlKQorICAgIDogRmls
dGVyRWZmZWN0KGZpbHRlciwgRmlsdGVyRWZmZWN0OjpUeXBlOjpGRU1lcmdlKQogewogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFTWVy
Z2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVNZXJnZS5o
CmluZGV4IDVjZmM1Y2I3OTgxOWNlY2VkNTA3M2U1N2IwMTk0ZWJjZjE4ZjI2MDcuLjI3NTBjNGQ1
MjRkM2EwZjVhZTk3NDFmNjQ4MDQ0OTQ1MzQ1ZDFhYjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVNZXJnZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVNZXJnZS5oCkBAIC0zMyw4ICszMyw2IEBA
IHB1YmxpYzoKIHByaXZhdGU6CiAgICAgRkVNZXJnZShGaWx0ZXImKTsKIAotICAgIGNvbnN0IGNo
YXIqIGZpbHRlck5hbWUoKSBjb25zdCBmaW5hbCB7IHJldHVybiAiRkVNZXJnZSI7IH0KLQogICAg
IHZvaWQgcGxhdGZvcm1BcHBseVNvZnR3YXJlKCkgb3ZlcnJpZGU7CiAKICAgICBXVEY6OlRleHRT
dHJlYW0mIGV4dGVybmFsUmVwcmVzZW50YXRpb24oV1RGOjpUZXh0U3RyZWFtJiwgUmVwcmVzZW50
YXRpb25UeXBlKSBjb25zdCBvdmVycmlkZTsKQEAgLTQyLDMgKzQwLDQgQEAgcHJpdmF0ZToKIAog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCitTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0ZJTFRFUl9F
RkZFQ1QoRkVNZXJnZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2ZpbHRlcnMvRkVNb3JwaG9sb2d5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2ZpbHRlcnMvRkVNb3JwaG9sb2d5LmNwcAppbmRleCA2YWUzZDk4OTg2NjI2ZTA3YzA5
NGM1ODZmMzE5OGM5YzU4ZGFlZDZiLi45MTkzYjU4NzE5YTAxOGRkMmM2ODllNjA2NTdkOGI0ZjA0
MTNhNjc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0
ZXJzL0ZFTW9ycGhvbG9neS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZmlsdGVycy9GRU1vcnBob2xvZ3kuY3BwCkBAIC0zNiw3ICszNiw3IEBACiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIEZFTW9ycGhvbG9neTo6RkVNb3JwaG9sb2d5KEZpbHRlciYgZmlsdGVyLCBN
b3JwaG9sb2d5T3BlcmF0b3JUeXBlIHR5cGUsIGZsb2F0IHJhZGl1c1gsIGZsb2F0IHJhZGl1c1kp
Ci0gICAgOiBGaWx0ZXJFZmZlY3QoZmlsdGVyLCBUeXBlOjpNb3JwaG9sb2d5KQorICAgIDogRmls
dGVyRWZmZWN0KGZpbHRlciwgRmlsdGVyRWZmZWN0OjpUeXBlOjpGRU1vcnBob2xvZ3kpCiAgICAg
LCBtX3R5cGUodHlwZSkKICAgICAsIG1fcmFkaXVzWChyYWRpdXNYKQogICAgICwgbV9yYWRpdXNZ
KHJhZGl1c1kpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9m
aWx0ZXJzL0ZFTW9ycGhvbG9neS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZmlsdGVycy9GRU1vcnBob2xvZ3kuaAppbmRleCA0OGZjMzU0MTE3ZmMyN2NjZmM4ZTkzZjE0ZWRm
MDc1ZGUzOWM1YTExLi4xYjY5YzYzMjZjYjBiOTIzNmE5MGQzZDE0MjUzYWUwYjNlZTE0OTg4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFTW9y
cGhvbG9neS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMv
RkVNb3JwaG9sb2d5LmgKQEAgLTQ4LDggKzQ4LDYgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBG
RU1vcnBob2xvZ3koRmlsdGVyJiwgTW9ycGhvbG9neU9wZXJhdG9yVHlwZSwgZmxvYXQgcmFkaXVz
WCwgZmxvYXQgcmFkaXVzWSk7CiAKLSAgICBjb25zdCBjaGFyKiBmaWx0ZXJOYW1lKCkgY29uc3Qg
ZmluYWwgeyByZXR1cm4gIkZFTW9ycGhvbG9neSI7IH0KLQogICAgIHZvaWQgcGxhdGZvcm1BcHBs
eVNvZnR3YXJlKCkgb3ZlcnJpZGU7CiAKICAgICB2b2lkIGRldGVybWluZUFic29sdXRlUGFpbnRS
ZWN0KCkgb3ZlcnJpZGU7CkBAIC04NiwzICs4NCw0IEBAIHByaXZhdGU6CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKIAorU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19GSUxURVJfRUZGRUNUKEZFTW9y
cGhvbG9neSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Zp
bHRlcnMvRkVPZmZzZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmls
dGVycy9GRU9mZnNldC5jcHAKaW5kZXggMDI3MGRiOTI0ODFhMzM5MmQzZDVhMWU5MTdjMmQ2NWFh
NDE0MGY2OS4uZmUzY2RiNDhiMDc2ODQzNjdhZTdkNjQwYjM0NzM0OTRmYTJjNTk1MiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRU9mZnNldC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRU9mZnNl
dC5jcHAKQEAgLTMxLDcgKzMxLDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogRkVPZmZzZXQ6
OkZFT2Zmc2V0KEZpbHRlciYgZmlsdGVyLCBmbG9hdCBkeCwgZmxvYXQgZHkpCi0gICAgOiBGaWx0
ZXJFZmZlY3QoZmlsdGVyLCBUeXBlOjpPZmZzZXQpCisgICAgOiBGaWx0ZXJFZmZlY3QoZmlsdGVy
LCBGaWx0ZXJFZmZlY3Q6OlR5cGU6OkZFT2Zmc2V0KQogICAgICwgbV9keChkeCkKICAgICAsIG1f
ZHkoZHkpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9m
aWx0ZXJzL0ZFT2Zmc2V0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0
ZXJzL0ZFT2Zmc2V0LmgKaW5kZXggNjVhYmRhOTBhNDdiMWJmZTc2YWU1Yzc0YWFiNWFhMTY3ZmIx
ZTY5ZS4uZGI3MzIyNTVlZTc4ZDMzNjgwOWRiNDIxNzg1YTkyZjg0NWI5NTI2MiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRU9mZnNldC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVPZmZzZXQuaApA
QCAtMzksOCArMzksNiBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIEZFT2Zmc2V0KEZpbHRlciYs
IGZsb2F0IGR4LCBmbG9hdCBkeSk7CiAKLSAgICBjb25zdCBjaGFyKiBmaWx0ZXJOYW1lKCkgY29u
c3QgZmluYWwgeyByZXR1cm4gIkZFT2Zmc2V0IjsgfQotCiAgICAgdm9pZCBwbGF0Zm9ybUFwcGx5
U29mdHdhcmUoKSBvdmVycmlkZTsKICAgICAKICAgICB2b2lkIGRldGVybWluZUFic29sdXRlUGFp
bnRSZWN0KCkgb3ZlcnJpZGU7CkBAIC01MywzICs1MSw0IEBAIHByaXZhdGU6CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKIAorU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19GSUxURVJfRUZGRUNUKEZF
T2Zmc2V0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmls
dGVycy9GRVNwZWN1bGFyTGlnaHRpbmcuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZmlsdGVycy9GRVNwZWN1bGFyTGlnaHRpbmcuY3BwCmluZGV4IDU5OTcyMzA2ODg2YTYz
ZmE0MTJiNWI3MTQxZjc0ZjljNDg3YTE0NGMuLjUyZjQ1MDg0MDkwYWRjYjA0ZDdlNDUxMjA1OGVh
N2EyYWNkYThmM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2ZpbHRlcnMvRkVTcGVjdWxhckxpZ2h0aW5nLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFU3BlY3VsYXJMaWdodGluZy5jcHAKQEAgLTI4LDcgKzI4
LDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogRkVTcGVjdWxhckxpZ2h0aW5nOjpGRVNwZWN1
bGFyTGlnaHRpbmcoRmlsdGVyJiBmaWx0ZXIsIGNvbnN0IENvbG9yJiBsaWdodGluZ0NvbG9yLCBm
bG9hdCBzdXJmYWNlU2NhbGUsIGZsb2F0IHNwZWN1bGFyQ29uc3RhbnQsIGZsb2F0IHNwZWN1bGFy
RXhwb25lbnQsIGZsb2F0IGtlcm5lbFVuaXRMZW5ndGhYLCBmbG9hdCBrZXJuZWxVbml0TGVuZ3Ro
WSwgUmVmPExpZ2h0U291cmNlPiYmIGxpZ2h0U291cmNlKQotICAgIDogRkVMaWdodGluZyhmaWx0
ZXIsIFNwZWN1bGFyTGlnaHRpbmcsIGxpZ2h0aW5nQ29sb3IsIHN1cmZhY2VTY2FsZSwgMCwgc3Bl
Y3VsYXJDb25zdGFudCwgc3BlY3VsYXJFeHBvbmVudCwga2VybmVsVW5pdExlbmd0aFgsIGtlcm5l
bFVuaXRMZW5ndGhZLCBXVEZNb3ZlKGxpZ2h0U291cmNlKSwgVHlwZTo6U3BlY3VsYXJMaWdodGlu
ZykKKyAgICA6IEZFTGlnaHRpbmcoZmlsdGVyLCBTcGVjdWxhckxpZ2h0aW5nLCBsaWdodGluZ0Nv
bG9yLCBzdXJmYWNlU2NhbGUsIDAsIHNwZWN1bGFyQ29uc3RhbnQsIHNwZWN1bGFyRXhwb25lbnQs
IGtlcm5lbFVuaXRMZW5ndGhYLCBrZXJuZWxVbml0TGVuZ3RoWSwgV1RGTW92ZShsaWdodFNvdXJj
ZSksIEZpbHRlckVmZmVjdDo6VHlwZTo6RkVTcGVjdWxhckxpZ2h0aW5nKQogewogfQogCkBAIC0z
Nyw4ICszNyw2IEBAIFJlZjxGRVNwZWN1bGFyTGlnaHRpbmc+IEZFU3BlY3VsYXJMaWdodGluZzo6
Y3JlYXRlKEZpbHRlciYgZmlsdGVyLCBjb25zdCBDb2xvciYKICAgICByZXR1cm4gYWRvcHRSZWYo
Km5ldyBGRVNwZWN1bGFyTGlnaHRpbmcoZmlsdGVyLCBsaWdodGluZ0NvbG9yLCBzdXJmYWNlU2Nh
bGUsIHNwZWN1bGFyQ29uc3RhbnQsIHNwZWN1bGFyRXhwb25lbnQsIGtlcm5lbFVuaXRMZW5ndGhY
LCBrZXJuZWxVbml0TGVuZ3RoWSwgV1RGTW92ZShsaWdodFNvdXJjZSkpKTsKIH0KIAotRkVTcGVj
dWxhckxpZ2h0aW5nOjp+RkVTcGVjdWxhckxpZ2h0aW5nKCkgPSBkZWZhdWx0OwotCiBib29sIEZF
U3BlY3VsYXJMaWdodGluZzo6c2V0U3BlY3VsYXJDb25zdGFudChmbG9hdCBzcGVjdWxhckNvbnN0
YW50KQogewogICAgIGlmIChtX3NwZWN1bGFyQ29uc3RhbnQgPT0gc3BlY3VsYXJDb25zdGFudCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVT
cGVjdWxhckxpZ2h0aW5nLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0
ZXJzL0ZFU3BlY3VsYXJMaWdodGluZy5oCmluZGV4IGU5OThhNzYwNWQxZTQ3MzVkOWY0OTc5OGQz
OTgxOGJmM2IyNDk1OGEuLjliYmJhOGE4ZjFmYzZmMDEwNDU3NjBkYTgwZDM1ZjhjZDI3N2NlMTcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVT
cGVjdWxhckxpZ2h0aW5nLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZmlsdGVycy9GRVNwZWN1bGFyTGlnaHRpbmcuaApAQCAtMjgsNyArMjgsNiBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiBjbGFzcyBGRVNwZWN1bGFyTGlnaHRpbmcgOiBwdWJsaWMgRkVMaWdodGluZyB7
CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxGRVNwZWN1bGFyTGlnaHRpbmc+IGNyZWF0ZShGaWx0
ZXImLCBjb25zdCBDb2xvciYsIGZsb2F0LCBmbG9hdCwgZmxvYXQsIGZsb2F0LCBmbG9hdCwgUmVm
PExpZ2h0U291cmNlPiYmKTsKLSAgICB2aXJ0dWFsIH5GRVNwZWN1bGFyTGlnaHRpbmcoKTsKIAog
ICAgIGZsb2F0IHNwZWN1bGFyQ29uc3RhbnQoKSBjb25zdCB7IHJldHVybiBtX3NwZWN1bGFyQ29u
c3RhbnQ7IH0KICAgICBib29sIHNldFNwZWN1bGFyQ29uc3RhbnQoZmxvYXQpOwpAQCAtNDQsMyAr
NDMsNCBAQCBwcml2YXRlOgogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKK1NQRUNJQUxJWkVf
VFlQRV9UUkFJVFNfRklMVEVSX0VGRkVDVChGRVNwZWN1bGFyTGlnaHRpbmcpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFVGlsZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFVGlsZS5jcHAKaW5kZXgg
MzVjNTFjYmIyMjlkZWU5NjQyZGMxZTdkY2EwYzVkYjJmY2FjMjBhZC4uMzU4OTVmZjJkOTM1NDRk
YmM0MzkwZDA2ODEzOTU0NzU5NTc3MWYwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRVRpbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVUaWxlLmNwcApAQCAtMzIsNyArMzIsNyBAQAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCiBGRVRpbGU6OkZFVGlsZShGaWx0ZXImIGZpbHRlcikKLSAgICA6
IEZpbHRlckVmZmVjdChmaWx0ZXIsIFR5cGU6OlRpbGUpCisgICAgOiBGaWx0ZXJFZmZlY3QoZmls
dGVyLCBGaWx0ZXJFZmZlY3Q6OlR5cGU6OkZFVGlsZSkKIHsKIH0KIApAQCAtNTgsNyArNTgsNyBA
QCB2b2lkIEZFVGlsZTo6cGxhdGZvcm1BcHBseVNvZnR3YXJlKCkKICAgICBGbG9hdFJlY3QgdGls
ZVJlY3QgPSBpbi0+bWF4RWZmZWN0UmVjdCgpOwogICAgIEZsb2F0UG9pbnQgaW5NYXhFZmZlY3RM
b2NhdGlvbiA9IHRpbGVSZWN0LmxvY2F0aW9uKCk7CiAgICAgRmxvYXRQb2ludCBtYXhFZmZlY3RM
b2NhdGlvbiA9IG1heEVmZmVjdFJlY3QoKS5sb2NhdGlvbigpOwotICAgIGlmIChpbi0+ZmlsdGVy
RWZmZWN0VHlwZSgpID09IEZpbHRlckVmZmVjdFR5cGVTb3VyY2VJbnB1dCkgeworICAgIGlmIChp
bi0+ZmlsdGVyVHlwZSgpID09IEZpbHRlckVmZmVjdDo6VHlwZTo6U291cmNlR3JhcGhpYyB8fCBp
bi0+ZmlsdGVyVHlwZSgpID09IEZpbHRlckVmZmVjdDo6VHlwZTo6U291cmNlQWxwaGEpIHsKICAg
ICAgICAgRmlsdGVyJiBmaWx0ZXIgPSB0aGlzLT5maWx0ZXIoKTsKICAgICAgICAgdGlsZVJlY3Qg
PSBmaWx0ZXIuZmlsdGVyUmVnaW9uKCk7CiAgICAgICAgIHRpbGVSZWN0LnNjYWxlKGZpbHRlci5m
aWx0ZXJSZXNvbHV0aW9uKCkud2lkdGgoKSwgZmlsdGVyLmZpbHRlclJlc29sdXRpb24oKS5oZWln
aHQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0
ZXJzL0ZFVGlsZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9G
RVRpbGUuaAppbmRleCA0OWJkOTlmMDk0NDdkYWUxY2YwOWFmMTIzNThjNmRlODQwNjg3NzE0Li41
YzQ4ZWY0NTE1MGVjMmNmODc5ZmRkYjdlNDhlOWU5ZThkNTAyNDFlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFVGlsZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVUaWxlLmgKQEAgLTMzLDEwICsz
Myw2IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgRkVUaWxlKEZpbHRlciYpOwogCi0gICAgY29u
c3QgY2hhciogZmlsdGVyTmFtZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICJGRVRpbGUiOyB9Ci0K
LSAgICBGaWx0ZXJFZmZlY3RUeXBlIGZpbHRlckVmZmVjdFR5cGUoKSBjb25zdCBvdmVycmlkZSB7
IHJldHVybiBGaWx0ZXJFZmZlY3RUeXBlVGlsZTsgfQotCiAgICAgdm9pZCBwbGF0Zm9ybUFwcGx5
U29mdHdhcmUoKSBvdmVycmlkZTsKIAogICAgIHZvaWQgZGV0ZXJtaW5lQWJzb2x1dGVQYWludFJl
Y3QoKSBvdmVycmlkZSB7IHNldEFic29sdXRlUGFpbnRSZWN0KGVuY2xvc2luZ0ludFJlY3QobWF4
RWZmZWN0UmVjdCgpKSk7IH0KQEAgLTQ2LDMgKzQyLDQgQEAgcHJpdmF0ZToKIAogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQogCitTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0ZJTFRFUl9FRkZFQ1QoRkVU
aWxlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVy
cy9GRVR1cmJ1bGVuY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmls
dGVycy9GRVR1cmJ1bGVuY2UuY3BwCmluZGV4IDc3NGU2ODJlM2I0ODU5YmI2ZTIwNmExZDJiZmFl
YjBjZWE5MTlmMGIuLjJlYTI1ZmViNmZjYjQxYjRhM2NlZmI2ZGRhOWQwZWMzNmRkMGRiZjEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVUdXJi
dWxlbmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJz
L0ZFVHVyYnVsZW5jZS5jcHAKQEAgLTQ5LDcgKzQ5LDcgQEAgc3RhdGljIGNvbnN0IGludCBzX3Jh
bmRRID0gMTI3NzczOyAvLyBtIC8gYQogc3RhdGljIGNvbnN0IGludCBzX3JhbmRSID0gMjgzNjsg
Ly8gbSAlIGEKIAogRkVUdXJidWxlbmNlOjpGRVR1cmJ1bGVuY2UoRmlsdGVyJiBmaWx0ZXIsIFR1
cmJ1bGVuY2VUeXBlIHR5cGUsIGZsb2F0IGJhc2VGcmVxdWVuY3lYLCBmbG9hdCBiYXNlRnJlcXVl
bmN5WSwgaW50IG51bU9jdGF2ZXMsIGZsb2F0IHNlZWQsIGJvb2wgc3RpdGNoVGlsZXMpCi0gICAg
OiBGaWx0ZXJFZmZlY3QoZmlsdGVyLCBUeXBlOjpUdXJidWxlbmNlKQorICAgIDogRmlsdGVyRWZm
ZWN0KGZpbHRlciwgRmlsdGVyRWZmZWN0OjpUeXBlOjpGRVR1cmJ1bGVuY2UpCiAgICAgLCBtX3R5
cGUodHlwZSkKICAgICAsIG1fYmFzZUZyZXF1ZW5jeVgoYmFzZUZyZXF1ZW5jeVgpCiAgICAgLCBt
X2Jhc2VGcmVxdWVuY3lZKGJhc2VGcmVxdWVuY3lZKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRVR1cmJ1bGVuY2UuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVUdXJidWxlbmNlLmgKaW5kZXggNjM3ZDI4
NDg5NWUyMzE1MjJhOWFjODU3ZjJjODNmZjcyMGQ0NTJlNS4uMmRhMDI4YjQ2OTNmYWU2MzE3OTZk
ZDNkMzI4NThlMzM1MjBhMTMzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZmlsdGVycy9GRVR1cmJ1bGVuY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFVHVyYnVsZW5jZS5oCkBAIC0xMDUsOCArMTA1LDYgQEAg
cHJpdmF0ZToKIAogICAgIEZFVHVyYnVsZW5jZShGaWx0ZXImLCBUdXJidWxlbmNlVHlwZSwgZmxv
YXQsIGZsb2F0LCBpbnQsIGZsb2F0LCBib29sKTsKIAotICAgIGNvbnN0IGNoYXIqIGZpbHRlck5h
bWUoKSBjb25zdCBmaW5hbCB7IHJldHVybiAiRkVUdXJidWxlbmNlIjsgfQotCiAgICAgdm9pZCBw
bGF0Zm9ybUFwcGx5U29mdHdhcmUoKSBvdmVycmlkZTsKICAgICB2b2lkIGRldGVybWluZUFic29s
dXRlUGFpbnRSZWN0KCkgb3ZlcnJpZGUgeyBzZXRBYnNvbHV0ZVBhaW50UmVjdChlbmNsb3NpbmdJ
bnRSZWN0KG1heEVmZmVjdFJlY3QoKSkpOyB9CiAgICAgV1RGOjpUZXh0U3RyZWFtJiBleHRlcm5h
bFJlcHJlc2VudGF0aW9uKFdURjo6VGV4dFN0cmVhbSYsIFJlcHJlc2VudGF0aW9uVHlwZSkgY29u
c3Qgb3ZlcnJpZGU7CkBAIC0xMjksMyArMTI3LDQgQEAgcHJpdmF0ZToKIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQogCitTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0ZJTFRFUl9FRkZFQ1QoRkVUdXJi
dWxlbmNlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmls
dGVycy9GaWx0ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMv
RmlsdGVyLmgKaW5kZXggYTJkOTk3OTNiMGRiMjI1OGJjNDc2ZGRjYzI5YzBjZTI2MTEwYmMxZi4u
ODcyNzgyODEwYmJlMDY3MWEzZjA2N2E1OTUzMDlkZjE3ZWVhNGQyMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlci5oCkBAIC0xLDYgKzEs
NyBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAwOSBEaXJrIFNjaHVsemUgPGtyaXRAd2Via2l0
Lm9yZz4KICAqIENvcHlyaWdodCAoQykgMjAxMyBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0
cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTIxLDIzICsyMiwxNyBAQAogI3ByYWdtYSBvbmNl
CiAKICNpbmNsdWRlICJBZmZpbmVUcmFuc2Zvcm0uaCIKKyNpbmNsdWRlICJGaWx0ZXJGdW5jdGlv
bi5oIgogI2luY2x1ZGUgIkZsb2F0UmVjdC5oIgogI2luY2x1ZGUgIkdyYXBoaWNzVHlwZXMuaCIK
ICNpbmNsdWRlICJJbWFnZUJ1ZmZlci5oIgotI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRmlsdGVyRWZmZWN0OwogCi1jbGFzcyBGaWx0
ZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxGaWx0ZXI+IHsKK2NsYXNzIEZpbHRlciA6IHB1YmxpYyBG
aWx0ZXJGdW5jdGlvbiB7CiBwdWJsaWM6Ci0gICAgRmlsdGVyKGNvbnN0IEFmZmluZVRyYW5zZm9y
bSYgYWJzb2x1dGVUcmFuc2Zvcm0sIGZsb2F0IGZpbHRlclNjYWxlID0gMSkKLSAgICAgICAgOiBt
X2Fic29sdXRlVHJhbnNmb3JtKGFic29sdXRlVHJhbnNmb3JtKQotICAgICAgICAsIG1fZmlsdGVy
U2NhbGUoZmlsdGVyU2NhbGUpCi0gICAgeyB9Ci0gICAgdmlydHVhbCB+RmlsdGVyKCkgPSBkZWZh
dWx0OwotCiAgICAgdm9pZCBzZXRTb3VyY2VJbWFnZShSZWZQdHI8SW1hZ2VCdWZmZXI+JiYgc291
cmNlSW1hZ2UpIHsgbV9zb3VyY2VJbWFnZSA9IFdURk1vdmUoc291cmNlSW1hZ2UpOyB9CiAgICAg
SW1hZ2VCdWZmZXIqIHNvdXJjZUltYWdlKCkgeyByZXR1cm4gbV9zb3VyY2VJbWFnZS5nZXQoKTsg
fQogCkBAIC02Miw4ICs1NywxNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBGbG9hdFJlY3QgZmls
dGVyUmVnaW9uSW5Vc2VyU3BhY2UoKSBjb25zdCA9IDA7CiAKIHByb3RlY3RlZDoKLSAgICBleHBs
aWNpdCBGaWx0ZXIoY29uc3QgRmxvYXRTaXplJiBmaWx0ZXJSZXNvbHV0aW9uKQotICAgICAgICA6
IG1fZmlsdGVyUmVzb2x1dGlvbihmaWx0ZXJSZXNvbHV0aW9uKQorICAgIEZpbHRlcihGaWx0ZXI6
OlR5cGUgZmlsdGVyVHlwZSwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBhYnNvbHV0ZVRyYW5zZm9y
bSwgZmxvYXQgZmlsdGVyU2NhbGUgPSAxKQorICAgICAgICA6IEZpbHRlckZ1bmN0aW9uKGZpbHRl
clR5cGUpCisgICAgICAgICwgbV9hYnNvbHV0ZVRyYW5zZm9ybShhYnNvbHV0ZVRyYW5zZm9ybSkK
KyAgICAgICAgLCBtX2ZpbHRlclNjYWxlKGZpbHRlclNjYWxlKQorICAgIHsKKyAgICB9CisKKyAg
ICBGaWx0ZXIoRmlsdGVyOjpUeXBlIGZpbHRlclR5cGUsIGNvbnN0IEZsb2F0U2l6ZSYgZmlsdGVy
UmVzb2x1dGlvbikKKyAgICAgICAgOiBGaWx0ZXJGdW5jdGlvbihmaWx0ZXJUeXBlKQorICAgICAg
ICAsIG1fZmlsdGVyUmVzb2x1dGlvbihmaWx0ZXJSZXNvbHV0aW9uKQogICAgIHsKICAgICB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmls
dGVyRWZmZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMv
RmlsdGVyRWZmZWN0LmNwcAppbmRleCBmYjY3NzU0ZTRmYzViYmNhNTFjMzQ4ZWM3ZjYzZTRjYzky
N2RiMTA4Li5iMTNlNjgyMzY2MzVmODU1MDRmZTE5OWIwOWEyOGZlMjY3MjgxNGQ4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlckVmZmVj
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0
ZXJFZmZlY3QuY3BwCkBAIC00NSwxNCArNDUsMTIgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
Ci1GaWx0ZXJFZmZlY3Q6OkZpbHRlckVmZmVjdChGaWx0ZXImIGZpbHRlciwgVHlwZSB0eXBlKQot
ICAgIDogbV9maWx0ZXIoZmlsdGVyKQotICAgICwgbV9maWx0ZXJFZmZlY3RDbGFzc1R5cGUodHlw
ZSkKK0ZpbHRlckVmZmVjdDo6RmlsdGVyRWZmZWN0KEZpbHRlciYgZmlsdGVyLCBGaWx0ZXJFZmZl
Y3Q6OlR5cGUgdHlwZSkKKyAgICA6IEZpbHRlckZ1bmN0aW9uKHR5cGUpCisgICAgLCBtX2ZpbHRl
cihmaWx0ZXIpCiB7CiB9CiAKLUZpbHRlckVmZmVjdDo6fkZpbHRlckVmZmVjdCgpID0gZGVmYXVs
dDsKLQogdm9pZCBGaWx0ZXJFZmZlY3Q6OmRldGVybWluZUFic29sdXRlUGFpbnRSZWN0KCkKIHsK
ICAgICBtX2Fic29sdXRlUGFpbnRSZWN0ID0gSW50UmVjdCgpOwpAQCAtMTEwLDcgKzEwOCw3IEBA
IEZsb2F0UmVjdCBGaWx0ZXJFZmZlY3Q6OmRldGVybWluZUZpbHRlclByaW1pdGl2ZVN1YnJlZ2lv
bigpCiAgICAgICAgIHN1YnJlZ2lvbiA9IG1fZmlsdGVyLmZpbHRlclJlZ2lvbkluVXNlclNwYWNl
KCk7CiAKICAgICAvLyBBZnRlciBjYWxsaW5nIGRldGVybWluZUZpbHRlclByaW1pdGl2ZVN1YnJl
Z2lvbiBvbiB0aGUgdGFyZ2V0IGVmZmVjdCwgcmVzZXQgdGhlIHN1YnJlZ2lvbiBhZ2FpbiBmb3Ig
PGZlVGlsZT4uCi0gICAgaWYgKGZpbHRlckVmZmVjdFR5cGUoKSA9PSBGaWx0ZXJFZmZlY3RUeXBl
VGlsZSkKKyAgICBpZiAoZmlsdGVyVHlwZSgpID09IEZpbHRlckVmZmVjdDo6VHlwZTo6RkVUaWxl
KQogICAgICAgICBzdWJyZWdpb24gPSBtX2ZpbHRlci5maWx0ZXJSZWdpb25JblVzZXJTcGFjZSgp
OwogCiAgICAgYXV0byBib3VuZGFyaWVzID0gZWZmZWN0Qm91bmRhcmllcygpOwpAQCAtNTcyLDcg
KzU3MCw3IEBAIHZvaWQgRmlsdGVyRWZmZWN0Ojpjb3B5UHJlbXVsdGlwbGllZFJlc3VsdChVaW50
OENsYW1wZWRBcnJheSYgZGVzdGluYXRpb24sIGNvbnN0CiAKIEltYWdlQnVmZmVyKiBGaWx0ZXJF
ZmZlY3Q6OmNyZWF0ZUltYWdlQnVmZmVyUmVzdWx0KCkKIHsKLSAgICBMT0coRmlsdGVycywgIkZp
bHRlckVmZmVjdCAlcyAlcCBjcmVhdGVJbWFnZUJ1ZmZlclJlc3VsdCAlZHglZCIsIGZpbHRlck5h
bWUoKSwgdGhpcywgbV9hYnNvbHV0ZVBhaW50UmVjdC5zaXplKCkud2lkdGgoKSwgbV9hYnNvbHV0
ZVBhaW50UmVjdC5zaXplKCkuaGVpZ2h0KCkpOworICAgIExPRyhGaWx0ZXJzLCAiRmlsdGVyRWZm
ZWN0ICVzICVwIGNyZWF0ZUltYWdlQnVmZmVyUmVzdWx0ICVkeCVkIiwgZmlsdGVyTmFtZSgpLmNo
YXJhY3RlcnM4KCksIHRoaXMsIG1fYWJzb2x1dGVQYWludFJlY3Quc2l6ZSgpLndpZHRoKCksIG1f
YWJzb2x1dGVQYWludFJlY3Quc2l6ZSgpLmhlaWdodCgpKTsKIAogICAgIC8vIE9ubHkgb25lIHJl
c3VsdCB0eXBlIGlzIGFsbG93ZWQuCiAgICAgQVNTRVJUKCFoYXNSZXN1bHQoKSk7CkBAIC01ODYs
NyArNTg0LDcgQEAgSW1hZ2VCdWZmZXIqIEZpbHRlckVmZmVjdDo6Y3JlYXRlSW1hZ2VCdWZmZXJS
ZXN1bHQoKQogCiBzdGQ6Om9wdGlvbmFsPFBpeGVsQnVmZmVyPiYgRmlsdGVyRWZmZWN0OjpjcmVh
dGVVbm11bHRpcGxpZWRJbWFnZVJlc3VsdCgpCiB7Ci0gICAgTE9HKEZpbHRlcnMsICJGaWx0ZXJF
ZmZlY3QgJXMgJXAgY3JlYXRlVW5tdWx0aXBsaWVkSW1hZ2VSZXN1bHQiLCBmaWx0ZXJOYW1lKCks
IHRoaXMpOworICAgIExPRyhGaWx0ZXJzLCAiRmlsdGVyRWZmZWN0ICVzICVwIGNyZWF0ZVVubXVs
dGlwbGllZEltYWdlUmVzdWx0IiwgZmlsdGVyTmFtZSgpLmNoYXJhY3RlcnM4KCksIHRoaXMpOwog
CiAgICAgLy8gT25seSBvbmUgcmVzdWx0IHR5cGUgaXMgYWxsb3dlZC4KICAgICBBU1NFUlQoIWhh
c1Jlc3VsdCgpKTsKQEAgLTYwNSw3ICs2MDMsNyBAQCBzdGQ6Om9wdGlvbmFsPFBpeGVsQnVmZmVy
PiYgRmlsdGVyRWZmZWN0OjpjcmVhdGVVbm11bHRpcGxpZWRJbWFnZVJlc3VsdCgpCiAKIHN0ZDo6
b3B0aW9uYWw8UGl4ZWxCdWZmZXI+JiBGaWx0ZXJFZmZlY3Q6OmNyZWF0ZVByZW11bHRpcGxpZWRJ
bWFnZVJlc3VsdCgpCiB7Ci0gICAgTE9HKEZpbHRlcnMsICJGaWx0ZXJFZmZlY3QgJXMgJXAgY3Jl
YXRlUHJlbXVsdGlwbGllZEltYWdlUmVzdWx0IiwgZmlsdGVyTmFtZSgpLCB0aGlzKTsKKyAgICBM
T0coRmlsdGVycywgIkZpbHRlckVmZmVjdCAlcyAlcCBjcmVhdGVQcmVtdWx0aXBsaWVkSW1hZ2VS
ZXN1bHQiLCBmaWx0ZXJOYW1lKCkuY2hhcmFjdGVyczgoKSwgdGhpcyk7CiAKICAgICAvLyBPbmx5
IG9uZSByZXN1bHQgdHlwZSBpcyBhbGxvd2VkLgogICAgIEFTU0VSVCghaGFzUmVzdWx0KCkpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0
ZXJFZmZlY3QuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmls
dGVyRWZmZWN0LmgKaW5kZXggMTJkZWQyNjVhNjU1YzM3ZTc3ZTJjZjA1YjUyNzczZjJiOTZiNDcx
Yy4uNTUyN2Y2YmY0YmY2MjhlNzE1MGY4MWQ1ZWZiMzlkZjMxYTI5MWI3MiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXJFZmZlY3QuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlckVmZmVj
dC5oCkBAIC0yNCwxMyArMjQsMTMgQEAKIAogI2luY2x1ZGUgIkFscGhhUHJlbXVsdGlwbGljYXRp
b24uaCIKICNpbmNsdWRlICJEZXN0aW5hdGlvbkNvbG9yU3BhY2UuaCIKKyNpbmNsdWRlICJGaWx0
ZXJGdW5jdGlvbi5oIgogI2luY2x1ZGUgIkZsb2F0UmVjdC5oIgogI2luY2x1ZGUgIkludFJlY3Qu
aCIKICNpbmNsdWRlICJJbnRSZWN0RXh0ZW50LmgiCiAjaW5jbHVkZSAiUGl4ZWxCdWZmZXIuaCIK
ICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL01hdGhF
eHRyYXMuaD4KLSNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQ
dHIuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKQEAgLTQ2LDM5ICs0Niw4IEBAIGNsYXNz
IEltYWdlQnVmZmVyOwogCiB0eXBlZGVmIFZlY3RvcjxSZWZQdHI8RmlsdGVyRWZmZWN0Pj4gRmls
dGVyRWZmZWN0VmVjdG9yOwogCi1lbnVtIEZpbHRlckVmZmVjdFR5cGUgewotICAgIEZpbHRlckVm
ZmVjdFR5cGVVbmtub3duLAotICAgIEZpbHRlckVmZmVjdFR5cGVJbWFnZSwKLSAgICBGaWx0ZXJF
ZmZlY3RUeXBlVGlsZSwKLSAgICBGaWx0ZXJFZmZlY3RUeXBlU291cmNlSW5wdXQKLX07Ci0KLWNs
YXNzIEZpbHRlckVmZmVjdCA6IHB1YmxpYyBSZWZDb3VudGVkPEZpbHRlckVmZmVjdD4geworY2xh
c3MgRmlsdGVyRWZmZWN0IDogcHVibGljIEZpbHRlckZ1bmN0aW9uIHsKIHB1YmxpYzoKLSAgICBl
bnVtIGNsYXNzIFR5cGUgOiB1aW50OF90IHsKLSAgICAgICAgQmxlbmQsCi0gICAgICAgIENvbG9y
TWF0cml4LAotICAgICAgICBDb21wb25lbnRUcmFuc2ZlciwKLSAgICAgICAgQ29tcG9zaXRlLAot
ICAgICAgICBDb252b2x2ZU1hdHJpeCwKLSAgICAgICAgRGlmZnVzZUxpZ2h0aW5nLAotICAgICAg
ICBEaXNwbGFjZW1lbnRNYXAsCi0gICAgICAgIERyb3BTaGFkb3csCi0gICAgICAgIEZsb29kLAot
ICAgICAgICBHYXVzc2lhbkJsdXIsCi0gICAgICAgIEltYWdlLAotICAgICAgICBMaWdodGluZywK
LSAgICAgICAgTWVyZ2UsCi0gICAgICAgIE1vcnBob2xvZ3ksCi0gICAgICAgIE9mZnNldCwKLSAg
ICAgICAgU3BlY3VsYXJMaWdodGluZywKLSAgICAgICAgVGlsZSwKLSAgICAgICAgVHVyYnVsZW5j
ZSwKLSAgICAgICAgU291cmNlQWxwaGEsCi0gICAgICAgIFNvdXJjZUdyYXBoaWMKLSAgICB9Owot
ICAgIHZpcnR1YWwgfkZpbHRlckVmZmVjdCgpOwotCiAgICAgdm9pZCBjbGVhclJlc3VsdCgpOwog
ICAgIHZvaWQgY2xlYXJSZXN1bHRzUmVjdXJzaXZlKCk7CiAKQEAgLTEyNSw4ICs5NCw2IEBAIHB1
YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBkZXRlcm1pbmVBYnNvbHV0ZVBhaW50UmVjdCgpOwog
Ci0gICAgdmlydHVhbCBGaWx0ZXJFZmZlY3RUeXBlIGZpbHRlckVmZmVjdFR5cGUoKSBjb25zdCB7
IHJldHVybiBGaWx0ZXJFZmZlY3RUeXBlVW5rbm93bjsgfQotCiAgICAgdmlydHVhbCBJbnRPdXRz
ZXRzIG91dHNldHMoKSBjb25zdCB7IHJldHVybiBJbnRPdXRzZXRzKCk7IH0KIAogICAgIGVudW0g
Y2xhc3MgUmVwcmVzZW50YXRpb25UeXBlIHsgVGVzdE91dHB1dCwgRGVidWdnaW5nIH07CkBAIC0x
NTYsOCArMTIzLDYgQEAgcHVibGljOgogICAgIAogICAgIEZsb2F0UG9pbnQgbWFwUG9pbnRGcm9t
VXNlclNwYWNlVG9CdWZmZXIoRmxvYXRQb2ludCkgY29uc3Q7CiAgICAgCi0gICAgVHlwZSBmaWx0
ZXJFZmZlY3RDbGFzc1R5cGUoKSBjb25zdCB7IHJldHVybiBtX2ZpbHRlckVmZmVjdENsYXNzVHlw
ZTsgfQotCiAgICAgRmlsdGVyJiBmaWx0ZXIoKSB7IHJldHVybiBtX2ZpbHRlcjsgfQogICAgIGNv
bnN0IEZpbHRlciYgZmlsdGVyKCkgY29uc3QgeyByZXR1cm4gbV9maWx0ZXI7IH0KIApAQCAtMTgz
LDggKzE0OCw2IEBAIHB1YmxpYzoKIHByb3RlY3RlZDoKICAgICBGaWx0ZXJFZmZlY3QoRmlsdGVy
JiwgVHlwZSk7CiAgICAgCi0gICAgdmlydHVhbCBjb25zdCBjaGFyKiBmaWx0ZXJOYW1lKCkgY29u
c3QgPSAwOwotCiAgICAgSW1hZ2VCdWZmZXIqIGNyZWF0ZUltYWdlQnVmZmVyUmVzdWx0KCk7CiAg
ICAgc3RkOjpvcHRpb25hbDxQaXhlbEJ1ZmZlcj4mIGNyZWF0ZVVubXVsdGlwbGllZEltYWdlUmVz
dWx0KCk7CiAgICAgc3RkOjpvcHRpb25hbDxQaXhlbEJ1ZmZlcj4mIGNyZWF0ZVByZW11bHRpcGxp
ZWRJbWFnZVJlc3VsdCgpOwpAQCAtMjQ4LDExICsyMTEsMTcgQEAgcHJpdmF0ZToKICAgICBEZXN0
aW5hdGlvbkNvbG9yU3BhY2UgbV9vcGVyYXRpbmdDb2xvclNwYWNlIHsgRGVzdGluYXRpb25Db2xv
clNwYWNlOjpTUkdCKCkgfTsKICNlbmRpZgogICAgIERlc3RpbmF0aW9uQ29sb3JTcGFjZSBtX3Jl
c3VsdENvbG9yU3BhY2UgeyBEZXN0aW5hdGlvbkNvbG9yU3BhY2U6OlNSR0IoKSB9OwotICAgIAot
ICAgIGNvbnN0IFR5cGUgbV9maWx0ZXJFZmZlY3RDbGFzc1R5cGU7CiB9OwogCiBXRUJDT1JFX0VY
UE9SVCBXVEY6OlRleHRTdHJlYW0mIG9wZXJhdG9yPDwoV1RGOjpUZXh0U3RyZWFtJiwgY29uc3Qg
RmlsdGVyRWZmZWN0Jik7CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAorU1BFQ0lBTElaRV9U
WVBFX1RSQUlUU19CRUdJTihXZWJDb3JlOjpGaWx0ZXJFZmZlY3QpCisgICAgc3RhdGljIGJvb2wg
aXNUeXBlKGNvbnN0IFdlYkNvcmU6OkZpbHRlckZ1bmN0aW9uJiBmdW5jdGlvbikgeyByZXR1cm4g
ZnVuY3Rpb24uaXNGaWx0ZXJFZmZlY3QoKTsgfQorU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19FTkQo
KQorCisjZGVmaW5lIFNQRUNJQUxJWkVfVFlQRV9UUkFJVFNfRklMVEVSX0VGRkVDVChDbGFzc05h
bWUpIFwKK1NQRUNJQUxJWkVfVFlQRV9UUkFJVFNfQkVHSU4oV2ViQ29yZTo6Q2xhc3NOYW1lKSBc
CisgICAgc3RhdGljIGJvb2wgaXNUeXBlKGNvbnN0IFdlYkNvcmU6OkZpbHRlckVmZmVjdCYgZWZm
ZWN0KSB7IHJldHVybiBlZmZlY3QuZmlsdGVyVHlwZSgpID09IFdlYkNvcmU6OkZpbHRlckVmZmVj
dDo6VHlwZTo6Q2xhc3NOYW1lOyB9IFwKK1NQRUNJQUxJWkVfVFlQRV9UUkFJVFNfRU5EKCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVy
RnVuY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9G
aWx0ZXJGdW5jdGlvbi5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWNlOGIwOTQ4NTgwNjE4OWM5MjkyNzc1NmMz
NWQwNjA4MGY2NGQ5NgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyRnVuY3Rpb24uY3BwCkBAIC0wLDAgKzEsNzIgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
YGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICog
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgIkZpbHRlckZ1bmN0aW9uLmgiCisKKyNpbmNsdWRlIDx3dGYvU29y
dGVkQXJyYXlNYXAuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitGaWx0ZXJGdW5jdGlvbjo6
RmlsdGVyRnVuY3Rpb24oVHlwZSBmaWx0ZXJUeXBlKQorICAgIDogbV9maWx0ZXJUeXBlKGZpbHRl
clR5cGUpCit7Cit9CisKK0F0b21TdHJpbmcgRmlsdGVyRnVuY3Rpb246OmZpbHRlck5hbWUoVHlw
ZSBmaWx0ZXJUeXBlKQoreworICAgIHN0YXRpYyBjb25zdGV4cHIgc3RkOjpwYWlyPEZpbHRlckZ1
bmN0aW9uOjpUeXBlLCBBU0NJSUxpdGVyYWw+IG5hbWVzQXJyYXlbXSA9IHsKKyAgICAgICAgeyBG
aWx0ZXJGdW5jdGlvbjo6VHlwZTo6Q1NTRmlsdGVyLCAgICAgICAgICAgIkNTU0ZpbHRlciJfcyAg
ICAgICAgICAgfSwKKyAgICAgICAgeyBGaWx0ZXJGdW5jdGlvbjo6VHlwZTo6U1ZHRmlsdGVyLCAg
ICAgICAgICAgIlNWR0ZpbHRlciJfcyAgICAgICAgICAgfSwKKyAgICAgICAgCisgICAgICAgIHsg
RmlsdGVyRnVuY3Rpb246OlR5cGU6OkZFQmxlbmQsICAgICAgICAgICAgICJGRUJsZW5kIl9zICAg
ICAgICAgICAgIH0sCisgICAgICAgIHsgRmlsdGVyRnVuY3Rpb246OlR5cGU6OkZFQ29sb3JNYXRy
aXgsICAgICAgICJGRUNvbG9yTWF0cml4Il9zICAgICAgIH0sCisgICAgICAgIHsgRmlsdGVyRnVu
Y3Rpb246OlR5cGU6OkZFQ29tcG9uZW50VHJhbnNmZXIsICJGRUNvbXBvbmVudFRyYW5zZmVyIl9z
IH0sCisgICAgICAgIHsgRmlsdGVyRnVuY3Rpb246OlR5cGU6OkZFQ29tcG9zaXRlLCAgICAgICAg
ICJGRUNvbXBvc2l0ZSJfcyAgICAgICAgIH0sCisgICAgICAgIHsgRmlsdGVyRnVuY3Rpb246OlR5
cGU6OkZFQ29udm9sdmVNYXRyaXgsICAgICJGRUNvbnZvbHZlTWF0cml4Il9zICAgIH0sCisgICAg
ICAgIHsgRmlsdGVyRnVuY3Rpb246OlR5cGU6OkZFRGlmZnVzZUxpZ2h0aW5nLCAgICJGRURpZmZ1
c2VMaWdodGluZyJfcyAgIH0sCisgICAgICAgIHsgRmlsdGVyRnVuY3Rpb246OlR5cGU6OkZFRGlz
cGxhY2VtZW50TWFwLCAgICJGRURpc3BsYWNlbWVudE1hcCJfcyAgIH0sCisgICAgICAgIHsgRmls
dGVyRnVuY3Rpb246OlR5cGU6OkZFRHJvcFNoYWRvdywgICAgICAgICJGRURyb3BTaGFkb3ciX3Mg
ICAgICAgIH0sCisgICAgICAgIHsgRmlsdGVyRnVuY3Rpb246OlR5cGU6OkZFRmxvb2QsICAgICAg
ICAgICAgICJGRUZsb29kIl9zICAgICAgICAgICAgIH0sCisgICAgICAgIHsgRmlsdGVyRnVuY3Rp
b246OlR5cGU6OkZFR2F1c3NpYW5CbHVyLCAgICAgICJGRUdhdXNzaWFuQmx1ciJfcyAgICAgIH0s
CisgICAgICAgIHsgRmlsdGVyRnVuY3Rpb246OlR5cGU6OkZFSW1hZ2UsICAgICAgICAgICAgICJG
RUltYWdlIl9zICAgICAgICAgICAgIH0sCisgICAgICAgIHsgRmlsdGVyRnVuY3Rpb246OlR5cGU6
OkZFTWVyZ2UsICAgICAgICAgICAgICJGRU1lcmdlIl9zICAgICAgICAgICAgIH0sCisgICAgICAg
IHsgRmlsdGVyRnVuY3Rpb246OlR5cGU6OkZFTW9ycGhvbG9neSwgICAgICAgICJGRU1vcnBob2xv
Z3kiX3MgICAgICAgIH0sCisgICAgICAgIHsgRmlsdGVyRnVuY3Rpb246OlR5cGU6OkZFT2Zmc2V0
LCAgICAgICAgICAgICJGRU9mZnNldCJfcyAgICAgICAgICAgIH0sCisgICAgICAgIHsgRmlsdGVy
RnVuY3Rpb246OlR5cGU6OkZFU3BlY3VsYXJMaWdodGluZywgICJGRVNwZWN1bGFyTGlnaHRpbmci
X3MgIH0sCisgICAgICAgIHsgRmlsdGVyRnVuY3Rpb246OlR5cGU6OkZFVGlsZSwgICAgICAgICAg
ICAgICJGRVRpbGUiX3MgICAgICAgICAgICAgIH0sCisgICAgICAgIHsgRmlsdGVyRnVuY3Rpb246
OlR5cGU6OkZFVHVyYnVsZW5jZSwgICAgICAgICJGRVR1cmJ1bGVuY2UiX3MgICAgICAgIH0sCisK
KyAgICAgICAgeyBGaWx0ZXJGdW5jdGlvbjo6VHlwZTo6U291cmNlQWxwaGEsICAgICAgICAgIlNv
dXJjZUFscGhhIl9zICAgICAgICAgfSwKKyAgICAgICAgeyBGaWx0ZXJGdW5jdGlvbjo6VHlwZTo6
U291cmNlR3JhcGhpYywgICAgICAgIlNvdXJjZUdyYXBoaWMiX3MgICAgICAgfQorICAgIH07CisK
KyAgICBzdGF0aWMgY29uc3RleHByIFNvcnRlZEFycmF5TWFwIG5hbWVzTWFwIHsgbmFtZXNBcnJh
eSB9OworICAgIAorICAgIEFTU0VSVChuYW1lc01hcC50cnlHZXQoZmlsdGVyVHlwZSkpOworICAg
IHJldHVybiBuYW1lc01hcC5nZXQoZmlsdGVyVHlwZSwgIiJfcyk7Cit9CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2ZpbHRlcnMvRmlsdGVyRnVuY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2ZpbHRlcnMvRmlsdGVyRnVuY3Rpb24uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43MzZjZmMwMjM0NmJlYTQ5
Mjg5ZDZjOTMxNTIxYTYwY2U5NmRhYmFlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXJGdW5jdGlvbi5oCkBAIC0wLDAgKzEs
MTIwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNw
cmFnbWEgb25jZQorCisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYv
dGV4dC9BdG9tU3RyaW5nLmg+CisKK25hbWVzcGFjZSBXVEYgeworY2xhc3MgVGV4dFN0cmVhbTsK
K30KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBGaWx0ZXJGdW5jdGlvbiA6IHB1Ymxp
YyBSZWZDb3VudGVkPEZpbHRlckZ1bmN0aW9uPiB7CitwdWJsaWM6CisgICAgZW51bSBjbGFzcyBU
eXBlIDogdWludDhfdCB7CisgICAgICAgIENTU0ZpbHRlciwKKyAgICAgICAgU1ZHRmlsdGVyLAor
CisgICAgICAgIEZFRmlyc3QsCisKKyAgICAgICAgRkVCbGVuZCA9IEZFRmlyc3QsCisgICAgICAg
IEZFQ29sb3JNYXRyaXgsCisgICAgICAgIEZFQ29tcG9uZW50VHJhbnNmZXIsCisgICAgICAgIEZF
Q29tcG9zaXRlLAorICAgICAgICBGRUNvbnZvbHZlTWF0cml4LAorICAgICAgICBGRURpZmZ1c2VM
aWdodGluZywKKyAgICAgICAgRkVEaXNwbGFjZW1lbnRNYXAsCisgICAgICAgIEZFRHJvcFNoYWRv
dywKKyAgICAgICAgRkVGbG9vZCwKKyAgICAgICAgRkVHYXVzc2lhbkJsdXIsCisgICAgICAgIEZF
SW1hZ2UsCisgICAgICAgIEZFTWVyZ2UsCisgICAgICAgIEZFTW9ycGhvbG9neSwKKyAgICAgICAg
RkVPZmZzZXQsCisgICAgICAgIEZFU3BlY3VsYXJMaWdodGluZywKKyAgICAgICAgRkVUaWxlLAor
ICAgICAgICBGRVR1cmJ1bGVuY2UsCisgICAgICAgIFNvdXJjZUFscGhhLAorICAgICAgICBTb3Vy
Y2VHcmFwaGljLAorCisgICAgICAgIEZFTGFzdCA9IFNvdXJjZUdyYXBoaWMKKyAgICB9OworCisg
ICAgRmlsdGVyRnVuY3Rpb24oVHlwZSk7CisgICAgdmlydHVhbCB+RmlsdGVyRnVuY3Rpb24oKSA9
IGRlZmF1bHQ7CisKKyAgICBUeXBlIGZpbHRlclR5cGUoKSBjb25zdCB7IHJldHVybiBtX2ZpbHRl
clR5cGU7IH0KKworICAgIGJvb2wgaXNDU1NGaWx0ZXIoKSBjb25zdCB7IHJldHVybiBtX2ZpbHRl
clR5cGUgPT0gVHlwZTo6Q1NTRmlsdGVyOyB9CisgICAgYm9vbCBpc1NWR0ZpbHRlcigpIGNvbnN0
IHsgcmV0dXJuIG1fZmlsdGVyVHlwZSA9PSBUeXBlOjpTVkdGaWx0ZXI7IH0KKyAgICBib29sIGlz
RmlsdGVyKCkgY29uc3QgeyByZXR1cm4gbV9maWx0ZXJUeXBlID09IFR5cGU6OkNTU0ZpbHRlciB8
fCBtX2ZpbHRlclR5cGUgPT0gVHlwZTo6U1ZHRmlsdGVyOyB9CisgICAgYm9vbCBpc0ZpbHRlckVm
ZmVjdCgpIGNvbnN0IHsgcmV0dXJuIG1fZmlsdGVyVHlwZSA+PSBUeXBlOjpGRUZpcnN0ICYmIG1f
ZmlsdGVyVHlwZSA8PSBUeXBlOjpGRUxhc3Q7IH0KKworICAgIHN0YXRpYyBBdG9tU3RyaW5nIGZp
bHRlck5hbWUoVHlwZSk7CisgICAgc3RhdGljIEF0b21TdHJpbmcgc291cmNlQWxwaGFOYW1lKCkg
eyByZXR1cm4gZmlsdGVyTmFtZShUeXBlOjpTb3VyY2VBbHBoYSk7IH0KKyAgICBzdGF0aWMgQXRv
bVN0cmluZyBzb3VyY2VHcmFwaGljTmFtZSgpIHsgcmV0dXJuIGZpbHRlck5hbWUoVHlwZTo6U291
cmNlR3JhcGhpYyk7IH0KKyAgICBBdG9tU3RyaW5nIGZpbHRlck5hbWUoKSBjb25zdCB7IHJldHVy
biBmaWx0ZXJOYW1lKG1fZmlsdGVyVHlwZSk7IH0KKworcHJpdmF0ZToKKyAgICBUeXBlIG1fZmls
dGVyVHlwZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworbmFtZXNwYWNlIFdURiB7
CisKK3RlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6RmlsdGVyRnVuY3Rpb246
OlR5cGU+IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAorICAgICAgICBXZWJDb3Jl
OjpGaWx0ZXJGdW5jdGlvbjo6VHlwZSwKKworICAgICAgICBXZWJDb3JlOjpGaWx0ZXJGdW5jdGlv
bjo6VHlwZTo6Q1NTRmlsdGVyLAorICAgICAgICBXZWJDb3JlOjpGaWx0ZXJGdW5jdGlvbjo6VHlw
ZTo6U1ZHRmlsdGVyLAorCisgICAgICAgIFdlYkNvcmU6OkZpbHRlckZ1bmN0aW9uOjpUeXBlOjpG
RUJsZW5kLAorICAgICAgICBXZWJDb3JlOjpGaWx0ZXJGdW5jdGlvbjo6VHlwZTo6RkVDb2xvck1h
dHJpeCwKKyAgICAgICAgV2ViQ29yZTo6RmlsdGVyRnVuY3Rpb246OlR5cGU6OkZFQ29tcG9uZW50
VHJhbnNmZXIsCisgICAgICAgIFdlYkNvcmU6OkZpbHRlckZ1bmN0aW9uOjpUeXBlOjpGRUNvbXBv
c2l0ZSwKKyAgICAgICAgV2ViQ29yZTo6RmlsdGVyRnVuY3Rpb246OlR5cGU6OkZFQ29udm9sdmVN
YXRyaXgsCisgICAgICAgIFdlYkNvcmU6OkZpbHRlckZ1bmN0aW9uOjpUeXBlOjpGRURpZmZ1c2VM
aWdodGluZywKKyAgICAgICAgV2ViQ29yZTo6RmlsdGVyRnVuY3Rpb246OlR5cGU6OkZFRGlzcGxh
Y2VtZW50TWFwLAorICAgICAgICBXZWJDb3JlOjpGaWx0ZXJGdW5jdGlvbjo6VHlwZTo6RkVEcm9w
U2hhZG93LAorICAgICAgICBXZWJDb3JlOjpGaWx0ZXJGdW5jdGlvbjo6VHlwZTo6RkVGbG9vZCwK
KyAgICAgICAgV2ViQ29yZTo6RmlsdGVyRnVuY3Rpb246OlR5cGU6OkZFR2F1c3NpYW5CbHVyLAor
ICAgICAgICBXZWJDb3JlOjpGaWx0ZXJGdW5jdGlvbjo6VHlwZTo6RkVJbWFnZSwKKyAgICAgICAg
V2ViQ29yZTo6RmlsdGVyRnVuY3Rpb246OlR5cGU6OkZFTWVyZ2UsCisgICAgICAgIFdlYkNvcmU6
OkZpbHRlckZ1bmN0aW9uOjpUeXBlOjpGRU1vcnBob2xvZ3ksCisgICAgICAgIFdlYkNvcmU6OkZp
bHRlckZ1bmN0aW9uOjpUeXBlOjpGRU9mZnNldCwKKyAgICAgICAgV2ViQ29yZTo6RmlsdGVyRnVu
Y3Rpb246OlR5cGU6OkZFU3BlY3VsYXJMaWdodGluZywKKyAgICAgICAgV2ViQ29yZTo6RmlsdGVy
RnVuY3Rpb246OlR5cGU6OkZFVGlsZSwKKyAgICAgICAgV2ViQ29yZTo6RmlsdGVyRnVuY3Rpb246
OlR5cGU6OkZFVHVyYnVsZW5jZSwKKyAgICAgICAgV2ViQ29yZTo6RmlsdGVyRnVuY3Rpb246OlR5
cGU6OlNvdXJjZUFscGhhLAorICAgICAgICBXZWJDb3JlOjpGaWx0ZXJGdW5jdGlvbjo6VHlwZTo6
U291cmNlR3JhcGhpYworICAgID47Cit9OworCit9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvU291cmNlQWxwaGEu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9Tb3VyY2VBbHBo
YS5jcHAKaW5kZXggNzY0OWYwNThhYzg2OWI1NTRhZjBkYzUwN2ZmZjkwOTBhZDZjZjNhMy4uOTk2
OTQzNzI1NzkzZTk5NjQ2ZmMzZTViMjJhZDE1MWZiZGZkZTljYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9Tb3VyY2VBbHBoYS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9Tb3VyY2VBbHBoYS5jcHAK
QEAgLTIzLDEwICsyMyw3IEBACiAjaW5jbHVkZSAiQ29sb3IuaCIKICNpbmNsdWRlICJGaWx0ZXIu
aCIKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQuaCIKLSNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0
cm95ZWQuaD4KLSNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CiAjaW5jbHVkZSA8d3RmL3Rl
eHQvVGV4dFN0cmVhbS5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKQEAgLTM1LDEwICszMiwxMSBAQCBSZWY8U291cmNlQWxwaGE+IFNv
dXJjZUFscGhhOjpjcmVhdGUoRmlsdGVyRWZmZWN0JiBzb3VyY2VFZmZlY3QpCiAgICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgU291cmNlQWxwaGEoc291cmNlRWZmZWN0KSk7CiB9CiAKLWNvbnN0IEF0
b21TdHJpbmcmIFNvdXJjZUFscGhhOjplZmZlY3ROYW1lKCkKK1NvdXJjZUFscGhhOjpTb3VyY2VB
bHBoYShGaWx0ZXJFZmZlY3QmIHNvdXJjZUVmZmVjdCkKKyAgICA6IEZpbHRlckVmZmVjdChzb3Vy
Y2VFZmZlY3QuZmlsdGVyKCksIEZpbHRlckVmZmVjdDo6VHlwZTo6U291cmNlQWxwaGEpCiB7Ci0g
ICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBzX2Vm
ZmVjdE5hbWUoIlNvdXJjZUFscGhhIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwp
OwotICAgIHJldHVybiBzX2VmZmVjdE5hbWU7CisgICAgc2V0T3BlcmF0aW5nQ29sb3JTcGFjZShz
b3VyY2VFZmZlY3Qub3BlcmF0aW5nQ29sb3JTcGFjZSgpKTsKKyAgICBpbnB1dEVmZmVjdHMoKS5h
cHBlbmQoJnNvdXJjZUVmZmVjdCk7CiB9CiAKIHZvaWQgU291cmNlQWxwaGE6OmRldGVybWluZUFi
c29sdXRlUGFpbnRSZWN0KCkKQEAgLTY5LDExICs2Nyw0IEBAIFRleHRTdHJlYW0mIFNvdXJjZUFs
cGhhOjpleHRlcm5hbFJlcHJlc2VudGF0aW9uKFRleHRTdHJlYW0mIHRzLCBSZXByZXNlbnRhdGlv
blR5CiAgICAgcmV0dXJuIHRzOwogfQogCi1Tb3VyY2VBbHBoYTo6U291cmNlQWxwaGEoRmlsdGVy
RWZmZWN0JiBzb3VyY2VFZmZlY3QpCi0gICAgOiBGaWx0ZXJFZmZlY3Qoc291cmNlRWZmZWN0LmZp
bHRlcigpLCBUeXBlOjpTb3VyY2VBbHBoYSkKLXsKLSAgICBzZXRPcGVyYXRpbmdDb2xvclNwYWNl
KHNvdXJjZUVmZmVjdC5vcGVyYXRpbmdDb2xvclNwYWNlKCkpOwotICAgIGlucHV0RWZmZWN0cygp
LmFwcGVuZCgmc291cmNlRWZmZWN0KTsKLX0KLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9Tb3VyY2VB
bHBoYS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9Tb3VyY2VB
bHBoYS5oCmluZGV4IDY2MjlhMzY3ZmQ0MzI0MmQxYzRhYWRlNjRjNTYxZTg2NGEzOTQ5MGYuLjRi
YmRlMDdmNzhlMzVkMjViNGY0ZDQ5YzZiNjI1ZjFlMTAyYTU0MzIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvU291cmNlQWxwaGEuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1NvdXJjZUFscGhhLmgKQEAg
LTE3LDggKzE3LDcgQEAKICAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgogICovCiAKLSNp
Zm5kZWYgU291cmNlQWxwaGFfaAotI2RlZmluZSBTb3VyY2VBbHBoYV9oCisjcHJhZ21hIG9uY2UK
IAogI2luY2x1ZGUgIkZpbHRlckVmZmVjdC5oIgogCkBAIC0yOCwxMyArMjcsMTAgQEAgY2xhc3Mg
U291cmNlQWxwaGEgOiBwdWJsaWMgRmlsdGVyRWZmZWN0IHsKIHB1YmxpYzogICAgICAgIAogICAg
IHN0YXRpYyBSZWY8U291cmNlQWxwaGE+IGNyZWF0ZShGaWx0ZXJFZmZlY3QmKTsKIAotICAgIHN0
YXRpYyBjb25zdCBBdG9tU3RyaW5nJiBlZmZlY3ROYW1lKCk7CisgICAgc3RhdGljIEF0b21TdHJp
bmcgZWZmZWN0TmFtZSgpIHsgcmV0dXJuIEZpbHRlckVmZmVjdDo6c291cmNlQWxwaGFOYW1lKCk7
IH0KIAogcHJpdmF0ZToKICAgICBleHBsaWNpdCBTb3VyY2VBbHBoYShGaWx0ZXJFZmZlY3QmKTsK
LSAgICBGaWx0ZXJFZmZlY3RUeXBlIGZpbHRlckVmZmVjdFR5cGUoKSBjb25zdCBvdmVycmlkZSB7
IHJldHVybiBGaWx0ZXJFZmZlY3RUeXBlU291cmNlSW5wdXQ7IH0KLQotICAgIGNvbnN0IGNoYXIq
IGZpbHRlck5hbWUoKSBjb25zdCBmaW5hbCB7IHJldHVybiAiU291cmNlQWxwaGEiOyB9CiAKICAg
ICB2b2lkIHBsYXRmb3JtQXBwbHlTb2Z0d2FyZSgpIG92ZXJyaWRlOwogICAgIHZvaWQgZGV0ZXJt
aW5lQWJzb2x1dGVQYWludFJlY3QoKSBvdmVycmlkZTsKQEAgLTQzLDQgKzM5LDQgQEAgcHJpdmF0
ZToKIAogfSAvL25hbWVzcGFjZSBXZWJDb3JlCiAKLSNlbmRpZiAvLyBTb3VyY2VBbHBoYV9oCitT
UEVDSUFMSVpFX1RZUEVfVFJBSVRTX0ZJTFRFUl9FRkZFQ1QoU291cmNlQWxwaGEpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1NvdXJjZUdyYXBo
aWMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9Tb3VyY2VH
cmFwaGljLmNwcAppbmRleCA4OGEzNmE0MTAyNmJkM2E1ODU0NDc4MjAyNzRjMTEwN2Q3ODM5MmU5
Li4yODhjNDVmNmZkZjdhNmJhMDkxNjRhM2Y0NGI3ZDJmOTRlMmExZDRiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1NvdXJjZUdyYXBoaWMuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvU291cmNlR3Jh
cGhpYy5jcHAKQEAgLTIyLDEwICsyMiw3IEBACiAKICNpbmNsdWRlICJGaWx0ZXIuaCIKICNpbmNs
dWRlICJHcmFwaGljc0NvbnRleHQuaCIKLSNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4K
LSNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvVGV4dFN0
cmVhbS5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKQEAgLTM0LDEyICszMSw2IEBAIFJlZjxTb3VyY2VHcmFwaGljPiBTb3VyY2VHcmFw
aGljOjpjcmVhdGUoRmlsdGVyJiBmaWx0ZXIpCiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU291
cmNlR3JhcGhpYyhmaWx0ZXIpKTsKIH0KIAotY29uc3QgQXRvbVN0cmluZyYgU291cmNlR3JhcGhp
Yzo6ZWZmZWN0TmFtZSgpCi17Ci0gICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxj
b25zdCBBdG9tU3RyaW5nPiBzX2VmZmVjdE5hbWUoIlNvdXJjZUdyYXBoaWMiLCBBdG9tU3RyaW5n
OjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgcmV0dXJuIHNfZWZmZWN0TmFtZTsKLX0KLQog
dm9pZCBTb3VyY2VHcmFwaGljOjpkZXRlcm1pbmVBYnNvbHV0ZVBhaW50UmVjdCgpCiB7CiAgICAg
RmlsdGVyJiBmaWx0ZXIgPSB0aGlzLT5maWx0ZXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvU291cmNlR3JhcGhpYy5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9Tb3VyY2VHcmFwaGljLmgKaW5kZXggMzBj
ZDU0ZjI0NTNiYmE4YTM3NzYzMjEzMjhlZjIxMDZiN2ZjYTViZi4uNWY4YmNlMWI0ODg2NzQ2NjFl
MjljM2I4YTM5NmI3NThkYjQ2NDNhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZmlsdGVycy9Tb3VyY2VHcmFwaGljLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9Tb3VyY2VHcmFwaGljLmgKQEAgLTE4LDExICsxOCw5
IEBACiAgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KICAqLwogCi0jaWZuZGVmIFNvdXJj
ZUdyYXBoaWNfaAotI2RlZmluZSBTb3VyY2VHcmFwaGljX2gKKyNwcmFnbWEgb25jZQogCiAjaW5j
bHVkZSAiRmlsdGVyRWZmZWN0LmgiCi0jaW5jbHVkZSAiRmlsdGVyLmgiCiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIApAQCAtMzAsMjkgKzI4LDIwIEBAIGNsYXNzIFNvdXJjZUdyYXBoaWMgOiBwdWJs
aWMgRmlsdGVyRWZmZWN0IHsKIHB1YmxpYzogICAgICAgIAogICAgIHN0YXRpYyBSZWY8U291cmNl
R3JhcGhpYz4gY3JlYXRlKEZpbHRlciYpOwogCi0gICAgc3RhdGljIGNvbnN0IEF0b21TdHJpbmcm
IGVmZmVjdE5hbWUoKTsKKyAgICBzdGF0aWMgQXRvbVN0cmluZyBlZmZlY3ROYW1lKCkgeyByZXR1
cm4gRmlsdGVyRWZmZWN0Ojpzb3VyY2VHcmFwaGljTmFtZSgpOyB9CiAKIHByaXZhdGU6CiAgICAg
U291cmNlR3JhcGhpYyhGaWx0ZXImIGZpbHRlcikKLSAgICAgICAgOiBGaWx0ZXJFZmZlY3QoZmls
dGVyLCBUeXBlOjpTb3VyY2VHcmFwaGljKQorICAgICAgICA6IEZpbHRlckVmZmVjdChmaWx0ZXIs
IEZpbHRlckVmZmVjdDo6VHlwZTo6U291cmNlR3JhcGhpYykKICAgICB7CiAgICAgICAgIHNldE9w
ZXJhdGluZ0NvbG9yU3BhY2UoRGVzdGluYXRpb25Db2xvclNwYWNlOjpTUkdCKCkpOwogICAgIH0K
IAotICAgIGNvbnN0IGNoYXIqIGZpbHRlck5hbWUoKSBjb25zdCBmaW5hbCB7IHJldHVybiAiU291
cmNlR3JhcGhpYyI7IH0KLQogICAgIHZvaWQgZGV0ZXJtaW5lQWJzb2x1dGVQYWludFJlY3QoKSBv
dmVycmlkZTsKICAgICB2b2lkIHBsYXRmb3JtQXBwbHlTb2Z0d2FyZSgpIG92ZXJyaWRlOwogICAg
IFdURjo6VGV4dFN0cmVhbSYgZXh0ZXJuYWxSZXByZXNlbnRhdGlvbihXVEY6OlRleHRTdHJlYW0m
LCBSZXByZXNlbnRhdGlvblR5cGUpIGNvbnN0IG92ZXJyaWRlOwotCi0gICAgRmlsdGVyRWZmZWN0
VHlwZSBmaWx0ZXJFZmZlY3RUeXBlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gRmlsdGVyRWZm
ZWN0VHlwZVNvdXJjZUlucHV0OyB9CiB9OwogCiB9IC8vbmFtZXNwYWNlIFdlYkNvcmUKIAotU1BF
Q0lBTElaRV9UWVBFX1RSQUlUU19CRUdJTihXZWJDb3JlOjpTb3VyY2VHcmFwaGljKQotICAgIHN0
YXRpYyBib29sIGlzVHlwZShjb25zdCBXZWJDb3JlOjpGaWx0ZXJFZmZlY3QmIGVmZmVjdCkgeyBy
ZXR1cm4gZWZmZWN0LmZpbHRlckVmZmVjdENsYXNzVHlwZSgpID09IFdlYkNvcmU6OkZpbHRlckVm
ZmVjdDo6VHlwZTo6U291cmNlR3JhcGhpYzsgfQotU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19FTkQo
KQotCi0KLSNlbmRpZiAvLyBTb3VyY2VHcmFwaGljX2gKK1NQRUNJQUxJWkVfVFlQRV9UUkFJVFNf
RklMVEVSX0VGRkVDVChTb3VyY2VHcmFwaGljKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZUNvY29h
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZUlu
Y29taW5nQXVkaW9Tb3VyY2VDb2NvYS5jcHAKaW5kZXggOWFlYTVmMWMwNzJjMDliZjA2M2Y0OTk5
ZTAzYjIxOWU4NWQ3ZTJkOS4uZDY3YjI5YjUxYzc5MWU1MjE1ZWI5ODk3NWZkOWNlYjZhYzRmYzA3
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1Jl
YWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZUNvY29hLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlQ29jb2Eu
Y3BwCkBAIC0zMyw2ICszMyw3IEBACiAjaW5jbHVkZSAiQXVkaW9TdHJlYW1EZXNjcmlwdGlvbi5o
IgogI2luY2x1ZGUgIkNBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbi5oIgogI2luY2x1ZGUgIkxpYldl
YlJUQ0F1ZGlvRm9ybWF0LmgiCisjaW5jbHVkZSAiTGliV2ViUlRDQXVkaW9Nb2R1bGUuaCIKICNp
bmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSA8cGFsL2F2Zm91bmRhdGlvbi9NZWRpYVRpbWVB
VkZvdW5kYXRpb24uaD4KICNpbmNsdWRlIDx3dGYvRmFzdE1hbGxvYy5oPgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0NTU0ZpbHRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvQ1NTRmlsdGVyLmNwcAppbmRleCA5ZDZjMmNkZDA1Zjk0OWI2MzRjYWZhMTdhYzE3
ZGI1YzAyYjViNjExLi4xMDJiODg2NTM3MjBkY2Q3MTYzNDlhZmI0ZGRlYmQ0OTk5NzcxY2U3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvQ1NTRmlsdGVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvQ1NTRmlsdGVyLmNwcApAQCAtNjAsNyArNjAsNyBAQCBS
ZWY8Q1NTRmlsdGVyPiBDU1NGaWx0ZXI6OmNyZWF0ZSgpCiB9CiAKIENTU0ZpbHRlcjo6Q1NTRmls
dGVyKCkKLSAgICA6IEZpbHRlcihGbG9hdFNpemUgeyAxLCAxIH0pCisgICAgOiBGaWx0ZXIoRmls
dGVyOjpUeXBlOjpDU1NGaWx0ZXIsIEZsb2F0U2l6ZSB7IDEsIDEgfSkKICAgICAsIG1fc291cmNl
R3JhcGhpYyhTb3VyY2VHcmFwaGljOjpjcmVhdGUoKnRoaXMpKQogewogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL2ZpbHRlcnMvU1ZHRkVJbWFnZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvZmlsdGVycy9TVkdGRUltYWdlLmNwcAppbmRleCA4MDQ5
YjgyYTlhYjY1NDQxMjgyNDk4ZjRiYzFmYjc2ZTE5MzEwYzg2Li5mYzlmMWQ1OTRlZjU3ODZhNDcx
MDkyYTQyMGJjOTIzN2QzZjQ5YTkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3Jh
cGhpY3MvZmlsdGVycy9TVkdGRUltYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3Jh
cGhpY3MvZmlsdGVycy9TVkdGRUltYWdlLmNwcApAQCAtNDIsNyArNDIsNyBAQCBSZWY8RkVJbWFn
ZT4gRkVJbWFnZTo6Y3JlYXRlKEZpbHRlciYgZmlsdGVyLCBTb3VyY2VJbWFnZSYmIHNvdXJjZUlt
YWdlLCBjb25zdCBGbAogfQogCiBGRUltYWdlOjpGRUltYWdlKEZpbHRlciYgZmlsdGVyLCBTb3Vy
Y2VJbWFnZSYmIHNvdXJjZUltYWdlLCBjb25zdCBGbG9hdFJlY3QmIHNvdXJjZUltYWdlUmVjdCwg
Y29uc3QgU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlJiBwcmVzZXJ2ZUFzcGVjdFJhdGlvKQot
ICAgIDogRmlsdGVyRWZmZWN0KGZpbHRlciwgVHlwZTo6SW1hZ2UpCisgICAgOiBGaWx0ZXJFZmZl
Y3QoZmlsdGVyLCBUeXBlOjpGRUltYWdlKQogICAgICwgbV9zb3VyY2VJbWFnZShXVEZNb3ZlKHNv
dXJjZUltYWdlKSkKICAgICAsIG1fc291cmNlSW1hZ2VSZWN0KHNvdXJjZUltYWdlUmVjdCkKICAg
ICAsIG1fcHJlc2VydmVBc3BlY3RSYXRpbyhwcmVzZXJ2ZUFzcGVjdFJhdGlvKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL2ZpbHRlcnMvU1ZHRkVJbWFnZS5oIGIvU291
cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL2ZpbHRlcnMvU1ZHRkVJbWFnZS5oCmluZGV4IDJmMjc3
NDFjMDYwZmMyNjQ1ZTUxN2YxMzU4NjIyZjExZDdmYWFkMjYuLjczMTdkOWE5NGVhYzA3OGE4OGRl
N2E3ZTMwNDM0MGE3ZDJmMWQ4MWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFw
aGljcy9maWx0ZXJzL1NWR0ZFSW1hZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhp
Y3MvZmlsdGVycy9TVkdGRUltYWdlLmgKQEAgLTI0LDcgKzI0LDYgQEAKICNwcmFnbWEgb25jZQog
CiAjaW5jbHVkZSAiRmlsdGVyRWZmZWN0LmgiCi0jaW5jbHVkZSAiUmVuZGVyaW5nUmVzb3VyY2VJ
ZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlLmgiCiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTM0LDEwICszMyw3IEBAIGNsYXNzIEltYWdlQnVmZmVy
OwogCiBjbGFzcyBGRUltYWdlIGZpbmFsIDogcHVibGljIEZpbHRlckVmZmVjdCB7CiBwdWJsaWM6
Ci0gICAgdXNpbmcgU291cmNlSW1hZ2UgPSBzdGQ6OnZhcmlhbnQ8Ci0gICAgICAgIFJlZjxJbWFn
ZT4sCi0gICAgICAgIFJlZjxJbWFnZUJ1ZmZlcj4KLSAgICA+OworICAgIHVzaW5nIFNvdXJjZUlt
YWdlID0gc3RkOjp2YXJpYW50PFJlZjxJbWFnZT4sIFJlZjxJbWFnZUJ1ZmZlcj4+OwogCiAgICAg
c3RhdGljIFJlZjxGRUltYWdlPiBjcmVhdGUoRmlsdGVyJiwgUmVmPEltYWdlPiYmLCBjb25zdCBT
VkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUmKTsKICAgICBzdGF0aWMgUmVmPEZFSW1hZ2U+IGNy
ZWF0ZShGaWx0ZXImLCBTb3VyY2VJbWFnZSYmLCBjb25zdCBGbG9hdFJlY3QmIHNvdXJjZUltYWdl
UmVjdCwgY29uc3QgU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlJik7CkBAIC00OCw4ICs0NCw2
IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgRkVJbWFnZShGaWx0ZXImLCBTb3VyY2VJbWFnZSYm
LCBjb25zdCBGbG9hdFJlY3QmIHNvdXJjZUltYWdlUmVjdCwgY29uc3QgU1ZHUHJlc2VydmVBc3Bl
Y3RSYXRpb1ZhbHVlJik7CiAKLSAgICBjb25zdCBjaGFyKiBmaWx0ZXJOYW1lKCkgY29uc3QgZmlu
YWwgeyByZXR1cm4gIkZFSW1hZ2UiOyB9Ci0KICAgICB2b2lkIHBsYXRmb3JtQXBwbHlTb2Z0d2Fy
ZSgpIGZpbmFsOwogICAgIHZvaWQgZGV0ZXJtaW5lQWJzb2x1dGVQYWludFJlY3QoKSBmaW5hbDsK
ICAgICBXVEY6OlRleHRTdHJlYW0mIGV4dGVybmFsUmVwcmVzZW50YXRpb24oV1RGOjpUZXh0U3Ry
ZWFtJiwgUmVwcmVzZW50YXRpb25UeXBlKSBjb25zdCBmaW5hbDsKQEAgLTYwLDMgKzU0LDUgQEAg
cHJpdmF0ZToKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworU1BFQ0lBTElaRV9UWVBF
X1RSQUlUU19GSUxURVJfRUZGRUNUKEZFSW1hZ2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvZ3JhcGhpY3MvZmlsdGVycy9TVkdGaWx0ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvc3Zn
L2dyYXBoaWNzL2ZpbHRlcnMvU1ZHRmlsdGVyLmNwcAppbmRleCA5YTk0YTQ2MDM1ODc5MDhhMzg0
ZDE3NDI3YjM3MTkzNTkyYjdiY2U3Li44MmU5NDM2NzIzZTg1NWQ2NTI3OTdhMTM3MDdkNWFiZTll
ZTYwYTI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvZmlsdGVycy9T
VkdGaWx0ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9maWx0ZXJzL1NW
R0ZpbHRlci5jcHAKQEAgLTI1LDcgKzI1LDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogU1ZH
RmlsdGVyOjpTVkdGaWx0ZXIoY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBhYnNvbHV0ZVRyYW5zZm9y
bSwgY29uc3QgRmxvYXRSZWN0JiBhYnNvbHV0ZVNvdXJjZURyYXdpbmdSZWdpb24sIGNvbnN0IEZs
b2F0UmVjdCYgdGFyZ2V0Qm91bmRpbmdCb3gsIGNvbnN0IEZsb2F0UmVjdCYgZmlsdGVyUmVnaW9u
LCBib29sIGVmZmVjdEJCb3hNb2RlKQotICAgIDogRmlsdGVyKGFic29sdXRlVHJhbnNmb3JtKQor
ICAgIDogRmlsdGVyKEZpbHRlcjo6VHlwZTo6Q1NTRmlsdGVyLCBhYnNvbHV0ZVRyYW5zZm9ybSkK
ICAgICAsIG1fYWJzb2x1dGVTb3VyY2VEcmF3aW5nUmVnaW9uKGFic29sdXRlU291cmNlRHJhd2lu
Z1JlZ2lvbikKICAgICAsIG1fdGFyZ2V0Qm91bmRpbmdCb3godGFyZ2V0Qm91bmRpbmdCb3gpCiAg
ICAgLCBtX2ZpbHRlclJlZ2lvbihmaWx0ZXJSZWdpb24pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvZ3JhcGhpY3MvZmlsdGVycy9TVkdGaWx0ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9ncmFwaGljcy9maWx0ZXJzL1NWR0ZpbHRlci5oCmluZGV4IDgwOTMxNDZkNjRhZjg4ODViYzNk
YTQ5MzAyZjVhZWEwZmIxNzAwY2YuLjUyNTg4NmFmMzA4NGNlNzgzNWM4NGQ0YTk3NjM1ZGYyZTYz
OWI1YTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9maWx0ZXJzL1NW
R0ZpbHRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9maWx0ZXJzL1NWR0Zp
bHRlci5oCkBAIC01Nyw0ICs1Nyw1IEBAIHByaXZhdGU6CiAKIFNQRUNJQUxJWkVfVFlQRV9UUkFJ
VFNfQkVHSU4oV2ViQ29yZTo6U1ZHRmlsdGVyKQogICAgIHN0YXRpYyBib29sIGlzVHlwZShjb25z
dCBXZWJDb3JlOjpGaWx0ZXImIGZpbHRlcikgeyByZXR1cm4gZmlsdGVyLmlzU1ZHRmlsdGVyKCk7
IH0KKyAgICBzdGF0aWMgYm9vbCBpc1R5cGUoY29uc3QgV2ViQ29yZTo6RmlsdGVyRnVuY3Rpb24m
IGZ1bmN0aW9uKSB7IHJldHVybiBmdW5jdGlvbi5pc1NWR0ZpbHRlcigpOyB9CiBTUEVDSUFMSVpF
X1RZUEVfVFJBSVRTX0VORCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhp
Y3MvZmlsdGVycy9TVkdGaWx0ZXJCdWlsZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFw
aGljcy9maWx0ZXJzL1NWR0ZpbHRlckJ1aWxkZXIuY3BwCmluZGV4IDk2ZjNhODA1MDQyOTU1NTgx
MDM0ZDk4YTRmZGFjNGVhZjMwODdiOTQuLjgwMDBmODRiNWNkNjBlMDZlMjM2NGVkNWNkZThmOGUz
ZmQ5NDQxNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9maWx0ZXJz
L1NWR0ZpbHRlckJ1aWxkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9m
aWx0ZXJzL1NWR0ZpbHRlckJ1aWxkZXIuY3BwCkBAIC0yMSw2ICsyMSw3IEBACiAjaW5jbHVkZSAi
U1ZHRmlsdGVyQnVpbGRlci5oIgogCiAjaW5jbHVkZSAiRmlsdGVyRWZmZWN0LmgiCisjaW5jbHVk
ZSAiSW1hZ2VCdWZmZXIuaCIKICNpbmNsdWRlICJTb3VyY2VBbHBoYS5oIgogI2luY2x1ZGUgIlNv
dXJjZUdyYXBoaWMuaCIKICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdDb25jYXRlbmF0ZU51bWJl
cnMuaD4K
</data>

          </attachment>
      

    </bug>

</bugzilla>