<?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>233893</bug_id>
          
          <creation_ts>2021-12-06 12:47:01 -0800</creation_ts>
          <short_desc>[GPU Process]  [Filters] Make FilterEffect::externalRepresentation() and its overridable functions work iteratively</short_desc>
          <delta_ts>2021-12-06 23:20:22 -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>annulen</cc>
    
    <cc>bfulgham</cc>
    
    <cc>changseok</cc>
    
    <cc>dino</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fmalita</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>heycam</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>pdr</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>schenney</cc>
    
    <cc>sergio</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1820726</commentid>
    <comment_count>0</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2021-12-06 12:47:01 -0800</bug_when>
    <thetext>This is a step towards removing the inputEffect() from FilterEffect.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1820728</commentid>
    <comment_count>1</comment_count>
      <attachid>446070</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2021-12-06 12:52:25 -0800</bug_when>
    <thetext>Created attachment 446070
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1820856</commentid>
    <comment_count>2</comment_count>
      <attachid>446109</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2021-12-06 19:10:22 -0800</bug_when>
    <thetext>Created attachment 446109
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1820876</commentid>
    <comment_count>3</comment_count>
      <attachid>446109</attachid>
    <who name="Cameron McCormack (:heycam)">heycam</who>
    <bug_when>2021-12-06 19:54:05 -0800</bug_when>
    <thetext>Comment on attachment 446109
Patch

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

&gt; Source/WebCore/platform/graphics/filters/FEBlend.cpp:63
&gt; +    {

No need for the block (and in all other externalRepresentation functions that don&apos;t use an IndentScope).

&gt; Source/WebCore/rendering/CSSFilter.cpp:419
&gt; +        TextStream::IndentScope indentScope(ts, level++);

Is there a need to indent? I don&apos;t think it provides any information.

&gt; Source/WebCore/svg/graphics/filters/SVGFilter.cpp:140
&gt; +    auto end = m_expression.rend();
&gt; +
&gt; +    for (auto it = m_expression.rbegin(); it != end; ++it) {

Probably more idiomatic to write this as:

for (auto it = m_expression.rbegin(), end = m_expression.rend(); it != end; ++it)

&gt; Source/WebCore/svg/graphics/filters/SVGFilter.cpp:147
&gt; +        TextStream::IndentScope indentScope(ts, term.level);

Similarly, is it useful to represent the depth in the filter DAG as the indent level? What makes me doubt this is that it doesn&apos;t fully encode the dependencies between the nodes in the filter graph, e.g. if two filter effects depend on the one other filter effect.

&gt; Source/WebCore/svg/graphics/filters/SVGFilterBuilder.cpp:220
&gt; +    expression.append({ *effect, effectGeometry(*effect), level });

I don&apos;t think we should bother computing and storing the level. Unless it&apos;s needed for something other than externalRepresentation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1820894</commentid>
    <comment_count>4</comment_count>
      <attachid>446123</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2021-12-06 22:17:19 -0800</bug_when>
    <thetext>Created attachment 446123
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1820898</commentid>
    <comment_count>5</comment_count>
      <attachid>446109</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2021-12-06 22:24:07 -0800</bug_when>
    <thetext>Comment on attachment 446109
Patch

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

&gt;&gt; Source/WebCore/platform/graphics/filters/FEBlend.cpp:63
&gt;&gt; +    {
&gt; 
&gt; No need for the block (and in all other externalRepresentation functions that don&apos;t use an IndentScope).

The block was removed.

&gt;&gt; Source/WebCore/rendering/CSSFilter.cpp:419
&gt;&gt; +        TextStream::IndentScope indentScope(ts, level++);
&gt; 
&gt; Is there a need to indent? I don&apos;t think it provides any information.

Removing the indentation will require rebase-line for many layout tests. We can remove the indentation in a future patch.

&gt;&gt; Source/WebCore/svg/graphics/filters/SVGFilter.cpp:140
&gt;&gt; +    for (auto it = m_expression.rbegin(); it != end; ++it) {
&gt; 
&gt; Probably more idiomatic to write this as:
&gt; 
&gt; for (auto it = m_expression.rbegin(), end = m_expression.rend(); it != end; ++it)

Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1820905</commentid>
    <comment_count>6</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-12-06 23:19:18 -0800</bug_when>
    <thetext>Committed r286589 (?): &lt;https://commits.webkit.org/r286589&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 446123.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1820906</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-12-06 23:20:22 -0800</bug_when>
    <thetext>&lt;rdar://problem/86141818&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>446070</attachid>
            <date>2021-12-06 12:52:25 -0800</date>
            <delta_ts>2021-12-06 19:10:19 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-233893-20211206125224.patch</filename>
            <type>text/plain</type>
            <size>91232</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2NTQ2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDc1NzNlMWJmNGQ3YzEy
NGY3ZDc1Mzc1MDc5NTgxZTU3ZTA5MWIxOS4uYTA2OGZkYzVjODMwZjFmZTRkYTk0ZWY5ZmVlNTQ1
MTBkNDAzNDJiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4MSBAQAorMjAyMS0xMi0wNiAgU2Fp
ZCBBYm91LUhhbGxhd2EgIDxzYWlkQGFwcGxlLmNvbT4KKworICAgICAgICBbR1BVIFByb2Nlc3Nd
ICBbRmlsdGVyc10gTWFrZSBGaWx0ZXJFZmZlY3Q6OmV4dGVybmFsUmVwcmVzZW50YXRpb24oKSBh
bmQgaXRzIG92ZXJyaWRhYmxlIGZ1bmN0aW9ucyB3b3JrIGl0ZXJhdGl2ZWx5CisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzM4OTMKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIGlzIGEgc3RlcCB0b3dh
cmRzIHJlbW92aW5nIHRoZSBpbnB1dEVmZmVjdCgpIGZyb20gRmlsdGVyRWZmZWN0LgorCisgICAg
ICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVCbGVuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGRUJs
ZW5kOjpleHRlcm5hbFJlcHJlc2VudGF0aW9uIGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9maWx0ZXJzL0ZFQmxlbmQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9m
aWx0ZXJzL0ZFQ29sb3JNYXRyaXguY3BwOgorICAgICAgICAoV2ViQ29yZTo6RkVDb2xvck1hdHJp
eDo6ZXh0ZXJuYWxSZXByZXNlbnRhdGlvbiBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvZmlsdGVycy9GRUNvbG9yTWF0cml4Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvZmlsdGVycy9GRUNvbXBvbmVudFRyYW5zZmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZF
Q29tcG9uZW50VHJhbnNmZXI6OmV4dGVybmFsUmVwcmVzZW50YXRpb24gY29uc3QpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb21wb25lbnRUcmFuc2Zlci5oOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb21wb3NpdGUuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6RkVDb21wb3NpdGU6OmV4dGVybmFsUmVwcmVzZW50YXRpb24gY29uc3QpOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb21wb3NpdGUuaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29udm9sdmVNYXRyaXguY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RkVDb252b2x2ZU1hdHJpeDo6ZXh0ZXJuYWxSZXByZXNlbnRhdGlvbiBj
b25zdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbnZvbHZlTWF0
cml4Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRURpZmZ1c2VMaWdo
dGluZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGRURpZmZ1c2VMaWdodGluZzo6ZXh0ZXJuYWxS
ZXByZXNlbnRhdGlvbiBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVy
cy9GRURpZmZ1c2VMaWdodGluZy5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRl
cnMvRkVEaXNwbGFjZW1lbnRNYXAuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RkVEaXNwbGFjZW1l
bnRNYXA6OnJlc3VsdENvbG9yU3BhY2UgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RkVEaXNw
bGFjZW1lbnRNYXA6OmV4dGVybmFsUmVwcmVzZW50YXRpb24gY29uc3QpOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVEaXNwbGFjZW1lbnRNYXAuaDoKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRHJvcFNoYWRvdy5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpGRURyb3BTaGFkb3c6OmV4dGVybmFsUmVwcmVzZW50YXRpb24gY29uc3QpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVEcm9wU2hhZG93Lmg6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUZsb29kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkZFRmxvb2Q6OmV4dGVybmFsUmVwcmVzZW50YXRpb24gY29uc3QpOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVGbG9vZC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2ZpbHRlcnMvRkVHYXVzc2lhbkJsdXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RkVHYXVz
c2lhbkJsdXI6OmV4dGVybmFsUmVwcmVzZW50YXRpb24gY29uc3QpOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVHYXVzc2lhbkJsdXIuaDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9maWx0ZXJzL0ZFTWVyZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RkVNZXJn
ZTo6ZXh0ZXJuYWxSZXByZXNlbnRhdGlvbiBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvZmlsdGVycy9GRU1lcmdlLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmls
dGVycy9GRU1vcnBob2xvZ3kuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RkVNb3JwaG9sb2d5Ojpl
eHRlcm5hbFJlcHJlc2VudGF0aW9uIGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9maWx0ZXJzL0ZFTW9ycGhvbG9neS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Zp
bHRlcnMvRkVPZmZzZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RkVPZmZzZXQ6OmV4dGVybmFs
UmVwcmVzZW50YXRpb24gY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRl
cnMvRkVPZmZzZXQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFU3Bl
Y3VsYXJMaWdodGluZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGRVNwZWN1bGFyTGlnaHRpbmc6
OmV4dGVybmFsUmVwcmVzZW50YXRpb24gY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2ZpbHRlcnMvRkVTcGVjdWxhckxpZ2h0aW5nLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvZmlsdGVycy9GRVRpbGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RkVUaWxlOjpleHRl
cm5hbFJlcHJlc2VudGF0aW9uIGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9m
aWx0ZXJzL0ZFVGlsZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVU
dXJidWxlbmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZFVHVyYnVsZW5jZTo6ZXh0ZXJuYWxS
ZXByZXNlbnRhdGlvbiBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVy
cy9GRVR1cmJ1bGVuY2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0Zp
bHRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGaWx0ZXI6OmNsYW1wRmlsdGVyUmVnaW9uSWZO
ZWVkZWQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpGaWx0ZXI6OmVmZmVjdEdlb21ldHJ5IGNvbnN0KTogRGVsZXRlZC4K
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlckVmZmVjdC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpGaWx0ZXJFZmZlY3Q6OmNhbGN1bGF0ZVByaW1pdGl2ZVN1YnJlZ2lv
biBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpGaWx0ZXJFZmZlY3Q6OmFwcGx5KToKKyAgICAg
ICAgKFdlYkNvcmU6OkZpbHRlckVmZmVjdDo6ZXh0ZXJuYWxSZXByZXNlbnRhdGlvbiBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpvcGVyYXRvcjw8KToKKyAgICAgICAgKFdlYkNvcmU6OkZpbHRl
ckVmZmVjdDo6ZGV0ZXJtaW5lRmlsdGVyUHJpbWl0aXZlU3VicmVnaW9uKTogRGVsZXRlZC4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlckVmZmVjdC5oOgorICAgICAg
ICAoV2ViQ29yZTo6RmlsdGVyRWZmZWN0OjpmaWx0ZXJJbWFnZSBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpGaWx0ZXJFZmZlY3Q6Om9wZXJhdGluZ0NvbG9yU3BhY2UgY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6RmlsdGVyRWZmZWN0OjpzZXRPcGVyYXRpbmdDb2xvclNwYWNlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkZpbHRlckVmZmVjdDo6bWF5UHJvZHVjZUludmFsaWRQcmVtdWx0aXBsaWVk
UGl4ZWxzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkZpbHRlckVmZmVjdDo6dHJhbnNmb3Jt
UmVzdWx0Q29sb3JTcGFjZSk6CisgICAgICAgIChXZWJDb3JlOjpGaWx0ZXJFZmZlY3Q6OnJlc3Vs
dENvbG9yU3BhY2UgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RmlsdGVyRWZmZWN0OjpmaWx0
ZXJQcmltaXRpdmVTdWJyZWdpb24gY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6
RmlsdGVyRWZmZWN0OjpzZXRGaWx0ZXJQcmltaXRpdmVTdWJyZWdpb24pOiBEZWxldGVkLgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyRnVuY3Rpb24uaDoKKyAgICAg
ICAgKFdlYkNvcmU6OkZpbHRlckZ1bmN0aW9uOjphcHBseSk6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvZmlsdGVycy9Tb3VyY2VBbHBoYS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTb3Vy
Y2VBbHBoYTo6ZXh0ZXJuYWxSZXByZXNlbnRhdGlvbiBjb25zdCk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvZmlsdGVycy9Tb3VyY2VBbHBoYS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2ZpbHRlcnMvU291cmNlR3JhcGhpYy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTb3Vy
Y2VHcmFwaGljOjpleHRlcm5hbFJlcHJlc2VudGF0aW9uIGNvbnN0KToKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1NvdXJjZUdyYXBoaWMuaDoKKyAgICAgICAgKiByZW5kZXJp
bmcvQ1NTRmlsdGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU0ZpbHRlcjo6ZXh0ZXJuYWxS
ZXByZXNlbnRhdGlvbiBjb25zdCk6CisgICAgICAgICogcmVuZGVyaW5nL0NTU0ZpbHRlci5oOgor
ICAgICAgICAqIHJlbmRlcmluZy9zdmcvU1ZHUmVuZGVyVHJlZUFzVGV4dC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjp3cml0ZVNWR1Jlc291cmNlQ29udGFpbmVyKToKKyAgICAgICAgKiBzdmcvZ3Jh
cGhpY3MvZmlsdGVycy9TVkdGRUltYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZFSW1hZ2U6
OmV4dGVybmFsUmVwcmVzZW50YXRpb24gY29uc3QpOgorICAgICAgICAqIHN2Zy9ncmFwaGljcy9m
aWx0ZXJzL1NWR0ZFSW1hZ2UuaDoKKyAgICAgICAgKiBzdmcvZ3JhcGhpY3MvZmlsdGVycy9TVkdG
aWx0ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRmlsdGVyOjpjcmVhdGUpOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHRmlsdGVyOjpzdXBwb3J0c0NvcmVJbWFnZVJlbmRlcmluZyBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpTVkdGaWx0ZXI6Omxhc3RFZmZlY3QgY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHRmlsdGVyOjphcHBseSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdGaWx0
ZXI6OmNsZWFyUmVzdWx0KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZpbHRlcjo6ZXh0ZXJuYWxS
ZXByZXNlbnRhdGlvbiBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdGaWx0ZXI6OmVmZmVj
dEdlb21ldHJ5IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBzdmcvZ3JhcGhpY3MvZmlsdGVy
cy9TVkdGaWx0ZXIuaDoKKyAgICAgICAgKiBzdmcvZ3JhcGhpY3MvZmlsdGVycy9TVkdGaWx0ZXJC
dWlsZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZpbHRlckJ1aWxkZXI6OmVmZmVjdEdl
b21ldHJ5IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZpbHRlckJ1aWxkZXI6OmJ1aWxk
RWZmZWN0RXhwcmVzc2lvbiBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdGaWx0ZXJCdWls
ZGVyOjpidWlsZEV4cHJlc3Npb24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6YnVpbGRFZmZl
Y3RFeHByZXNzaW9uKTogRGVsZXRlZC4KKyAgICAgICAgKiBzdmcvZ3JhcGhpY3MvZmlsdGVycy9T
VkdGaWx0ZXJCdWlsZGVyLmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdGaWx0ZXJCdWlsZGVyOjp0
YWtlRWZmZWN0R2VvbWV0cnlNYXApOiBEZWxldGVkLgorICAgICAgICAqIHN2Zy9ncmFwaGljcy9m
aWx0ZXJzL1NWR0ZpbHRlckV4cHJlc3Npb24uaDogQWRkZWQuCisKKzIwMjEtMTItMDYgIFNhaWQg
QWJvdS1IYWxsYXdhICA8c2FpZEBhcHBsZS5jb20+CisKKyAgICAgICAgW0dQVSBQcm9jZXNzXSBN
YWtlIEZpbHRlckVmZmVjdCBjYWxjdWxhdGUgdGhlIHByaW1pdGl2ZSBzdWJyZWdpb24gb25seSB3
aGVuIG5lZWRlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjMyNzA1CisgICAgICAgIHJkYXI6Ly84NTI5MDE0MgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEluIHRoaXMgcGF0Y2g6CisKKyAgICAgICAgMS4g
cmVzdWx0Q29sb3JTcGFjZSgpIHdpbGwgcmV0dXJuIGNvbG9yU3BhY2UoKSBmcm9tIGEgRmlsdGVy
SW1hZ2VWZWN0b3IKKyAgICAgICAgICAgaW5zdGVhZCBvZiByZXR1cm5pbmcgdGhlIHJlc3VsdENv
bG9yU3BhY2UoKSBvZiB0aGUgRmlsdGVyRWZmZWN0LgorCisgICAgICAgIDIuIEZpbHRlcjo6Y2xh
bXBGaWx0ZXJSZWdpb25JZk5lZWRlZCgpIHdpbGwgY2xhbXAgdGhlIGZpbHRlclJlZ2lvbigpIAor
ICAgICAgICAgICBpbnN0ZWFkIG9mIGNsYW1waW5nIHRoZSBtYXhFZmZlY3RSZWN0IG9mIHRoZSBs
YXN0RWZmZWN0KCkgc2luY2UgYWxsCisgICAgICAgICAgIHRoZSBwcmltaXRpdmVTdWJyZWdpb25z
IGFuZCB0aGUgaW1hZ2VSZWN0cyBoYXZlIHRvIGNsaXBwZWQgdG8gdGhlCisgICAgICAgICAgIGZp
bHRlclJlZ2lvbigpLgorCisgICAgICAgIDMuIGRldGVybWluZUZpbHRlclByaW1pdGl2ZVN1YnJl
Z2lvbigpIGlzIHJlcGxhY2VkIGJ5IGNhbGN1bGF0ZVByaW1pdGl2ZVN1YnJlZ2lvbigpCisgICAg
ICAgICAgIHdoaWNoIHdpbGwgY2FsY3VsYXRlIHRoZSBwcmltaXRpdmVTdWJyZWdpb24gZnJvbSBh
IEZpbHRlckltYWdlVmVjdG9yCisgICAgICAgICAgIGFuZCBhbiBvcHRpb25hbCBGaWx0ZXJFZmZl
Y3RHZW9tZXRyeS4KKworICAgICAgICA0LiBNYW55IG9mIEZpbHRlckVmZmVjdHMgYXJlIG1hZGUg
cHJvdGVjdGVkIGluc3RlYWQgb2YgaGF2aW5nIHRoZW0gcHVibGljLgorCisgICAgICAgIDUuIFNW
R0ZpbHRlckV4cHJlc3Npb24gd2lsbCBiZSBkZWZpbmVkIGFzIGEgVmVjdG9yIG9mIFNWR0ZpbHRl
ckV4cHJlc3Npb25UZXJtCisgICAgICAgICAgIHdoaWNoIGlzIGEgc3RydWN0IG9mIEZpbHRlckVm
ZmVjdCBhbmQgb3B0aW9uYWwgRmlsdGVyRWZmZWN0R2VvbWV0cnkuCisKKyAgICAgICAgNi4gU1ZH
RmlsdGVyIHdpbGwgcmVwbGFjZSB0aGUgbWVtYmVycyB3aG9zZSB0eXBlcyBhcmUgRmlsdGVyRWZm
ZWN0VmVjdG9yCisgICAgICAgICAgIGFuZCBGaWx0ZXJFZmZlY3RHZW9tZXRyeU1hcCB3aXRoIGEg
c2luZ2xlIG1lbWJlciBvZiB0eXBlIFNWR0ZpbHRlckV4cHJlc3Npb24uCisKKyAgICAgICAgKiBX
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvZmlsdGVycy9GRURpc3BsYWNlbWVudE1hcC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpG
RURpc3BsYWNlbWVudE1hcDo6cmVzdWx0Q29sb3JTcGFjZSBjb25zdCk6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRURpc3BsYWNlbWVudE1hcC5oOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZp
bHRlcjo6Y2xhbXBGaWx0ZXJSZWdpb25JZk5lZWRlZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvZmlsdGVycy9GaWx0ZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkZpbHRlcjo6ZWZmZWN0
R2VvbWV0cnkgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Zp
bHRlcnMvRmlsdGVyRWZmZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZpbHRlckVmZmVjdDo6
Y2FsY3VsYXRlUHJpbWl0aXZlU3VicmVnaW9uIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkZp
bHRlckVmZmVjdDo6YXBwbHkpOgorICAgICAgICAoV2ViQ29yZTo6RmlsdGVyRWZmZWN0OjpleHRl
cm5hbFJlcHJlc2VudGF0aW9uIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkZpbHRlckVmZmVj
dDo6ZGV0ZXJtaW5lRmlsdGVyUHJpbWl0aXZlU3VicmVnaW9uKTogRGVsZXRlZC4KKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlckVmZmVjdC5oOgorICAgICAgICAoV2Vi
Q29yZTo6RmlsdGVyRWZmZWN0OjpyZXN1bHRDb2xvclNwYWNlIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OkZpbHRlckVmZmVjdDo6ZmlsdGVyUHJpbWl0aXZlU3VicmVnaW9uIGNvbnN0KTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkZpbHRlckVmZmVjdDo6c2V0RmlsdGVyUHJpbWl0aXZl
U3VicmVnaW9uKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJz
L0ZpbHRlckZ1bmN0aW9uLmg6CisgICAgICAgIChXZWJDb3JlOjpGaWx0ZXJGdW5jdGlvbjo6YXBw
bHkpOgorICAgICAgICAqIHN2Zy9ncmFwaGljcy9maWx0ZXJzL1NWR0ZpbHRlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdGaWx0ZXI6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdG
aWx0ZXI6OnN1cHBvcnRzQ29yZUltYWdlUmVuZGVyaW5nIGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OlNWR0ZpbHRlcjo6bGFzdEVmZmVjdCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdG
aWx0ZXI6OmFwcGx5KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZpbHRlcjo6Y2xlYXJSZXN1bHQp
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHRmlsdGVyOjplZmZlY3RHZW9tZXRyeSBjb25zdCk6IERl
bGV0ZWQuCisgICAgICAgICogc3ZnL2dyYXBoaWNzL2ZpbHRlcnMvU1ZHRmlsdGVyLmg6CisgICAg
ICAgICogc3ZnL2dyYXBoaWNzL2ZpbHRlcnMvU1ZHRmlsdGVyQnVpbGRlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTVkdGaWx0ZXJCdWlsZGVyOjplZmZlY3RHZW9tZXRyeSBjb25zdCk6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdGaWx0ZXJCdWlsZGVyOjpidWlsZEVmZmVjdEV4cHJlc3Npb24gY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRmlsdGVyQnVpbGRlcjo6YnVpbGRFeHByZXNzaW9u
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OmJ1aWxkRWZmZWN0RXhwcmVzc2lvbik6IERlbGV0
ZWQuCisgICAgICAgICogc3ZnL2dyYXBoaWNzL2ZpbHRlcnMvU1ZHRmlsdGVyQnVpbGRlci5oOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHRmlsdGVyQnVpbGRlcjo6dGFrZUVmZmVjdEdlb21ldHJ5TWFw
KTogRGVsZXRlZC4KKyAgICAgICAgKiBzdmcvZ3JhcGhpY3MvZmlsdGVycy9TVkdGaWx0ZXJFeHBy
ZXNzaW9uLmg6IEFkZGVkLgorCiAyMDIxLTEyLTA2ICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhaWRA
YXBwbGUuY29tPgogICAgICAgICBbR1BVIFByb2Nlc3NdIChSRUdSRVNTSU9OIHIyODU1OTcpOiBT
ZXQgdGhlIGZpbHRlclJlZ2lvbiBvZiB0aGUgQ1NTRmlsdGVyIGFmdGVyIGl0IGlzIGNyZWF0ZWQK
ICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMzg0OQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZSBiL1NvdXJjZS9XZWJDb3Jl
L0hlYWRlcnMuY21ha2UKaW5kZXggNTU0MDI2NTE4OWZlNzE2MDMzOTgzMTg2NWVjMzNjZmMxYWM5
NTg0NC4uNzNhMTQ1MjkxY2EzMzBhNWRkNjQwZTFiYjlhNzBhNTkyY2I3ZmYyMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9IZWFk
ZXJzLmNtYWtlCkBAIC0xOTAyLDYgKzE5MDIsNyBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1F
V09SS19IRUFERVJTCiAgICAgc3ZnL2dyYXBoaWNzL1NWR0ltYWdlQ2FjaGUuaAogCiAgICAgc3Zn
L2dyYXBoaWNzL2ZpbHRlcnMvU1ZHRmlsdGVyLmgKKyAgICBzdmcvZ3JhcGhpY3MvZmlsdGVycy9T
VkdGaWx0ZXJFeHByZXNzaW9uLmgKIAogICAgIHN2Zy9wcm9wZXJ0aWVzL1NWR0xpc3QuaAogICAg
IHN2Zy9wcm9wZXJ0aWVzL1NWR1ByaW1pdGl2ZUxpc3QuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDZkYjAxYjVhMGNkZjVmYTY4
N2QzMmUzZjE1NDNiMWM0Y2M5ODhkMWIuLjE1NDQxNGQ2YjdmOWRlMTMxZGE4NGJmYTA4OTI0MmRj
ODhiYTkyOWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKQEAgLTIzMTQsNiArMjMxNCw3IEBACiAJCTcyOTlCQzY3MjNENkE1MzIwMEND
Njg4MyAvKiBBbHBoYVByZW11bHRpcGxpY2F0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3Mjk5QkM2NDIzRDY4NkE2MDBDQzY4ODMgLyogQWxwaGFQ
cmVtdWx0aXBsaWNhdGlvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCTcyOTlCQzY4MjNENkE1M0UwMENDNjg4MyAvKiBSZW5kZXJpbmdNb2RlLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3Mjk5QkM2NjIz
RDY4NkM2MDBDQzY4ODMgLyogUmVuZGVyaW5nTW9kZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTcyOUQwNTMwMjUzMTQyNDMwMDQyMjA5OCAvKiBS
ZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDcyOUQwNTJFMjUzMTNFMjYwMDQyMjA5OCAvKiBSZW5kZXJpbmdS
ZXNvdXJjZUlkZW50aWZpZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OworCQk3MkE1RDE5MjI3NUU4RkZFMDA2NTgzM0UgLyogU1ZHRmlsdGVyRXhwcmVz
c2lvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzI2
Q0RFMjUyNzVCNDg5NzAwQTQ0NUIyIC8qIFNWR0ZpbHRlckV4cHJlc3Npb24uaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3MkE3M0JFRjI0NUEzRjkw
MDAxQzlEMDMgLyogQW5pbWF0aW9uRnJhbWVSYXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3MjJBODE1QzIzOEZENTA1MDBDMDA1ODMgLyogQW5pbWF0
aW9uRnJhbWVSYXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJNzJCOEIwMzUyNzUzNDM4NjAwRjc1MkFBIC8qIEZpbHRlckZ1bmN0aW9uLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3MjYyRDc1NjI3MkEx
NzQxMDBDNTZBMDkgLyogRmlsdGVyRnVuY3Rpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3MkI4QjAzNjI3NTM0NDE0MDBGNzUyQUEgLyogRmls
dGVySW1hZ2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDcyNDM1RUY0MjczRDA3NjcwMDA1RTdFRSAvKiBGaWx0ZXJJbWFnZS5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0xMTE4Nyw2ICsxMTE4OCw3IEBA
CiAJCTcyNjZGMDI4MjI0MzEyMDMwMDgzMzk3NSAvKiBTVkdBbmltYXRpb25BZGRpdGl2ZUxpc3RG
dW5jdGlvbkltcGwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZHQW5pbWF0aW9uQWRkaXRpdmVMaXN0RnVu
Y3Rpb25JbXBsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTcyNjZGMDI5MjI0MzEy
QjEwMDgzMzk3NSAvKiBTVkdBbmltYXRpb25BZGRpdGl2ZUxpc3RGdW5jdGlvbi5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBTVkdBbmltYXRpb25BZGRpdGl2ZUxpc3RGdW5jdGlvbi5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk3MjY2RjAyQTIyNDMxNDlCMDA4MzM5NzUgLyogU1ZHQW5pbWF0ZWRQ
cm9wZXJ0eUxpc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZHQW5pbWF0ZWRQcm9wZXJ0eUxpc3QuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNzI2Q0RFMjUyNzVCNDg5NzAwQTQ0NUIyIC8q
IFNWR0ZpbHRlckV4cHJlc3Npb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZHRmlsdGVyRXhwcmVzc2lv
bi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3MjZENTZFMTI1M0FFMDQzMDAwMkVG
OTAgLyogUGxhdGZvcm1JbWFnZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQbGF0Zm9ybUltYWdlLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTcyN0FGRUQxMUEyRUE2QTAwMDA0NDJFOCAvKiBF
WFRzUkdCLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEVYVHNSR0Iu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3MjdBRkVEMjFBMkVBNkEwMDAwNDQy
RTggLyogRVhUc1JHQi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBFWFRzUkdC
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yODQyNiw2ICsyODQyOCw3IEBACiAJ
CQkJODQ1RTcyRkEwRkQyNjIzOTAwQTg3RDc5IC8qIFNWR0ZpbHRlci5oICovLAogCQkJCTA4MUVC
RjM4MEZEMzRGNDEwMERBNzU1OSAvKiBTVkdGaWx0ZXJCdWlsZGVyLmNwcCAqLywKIAkJCQkwODFF
QkYzOTBGRDM0RjQxMDBEQTc1NTkgLyogU1ZHRmlsdGVyQnVpbGRlci5oICovLAorCQkJCTcyNkNE
RTI1Mjc1QjQ4OTcwMEE0NDVCMiAvKiBTVkdGaWx0ZXJFeHByZXNzaW9uLmggKi8sCiAJCQkpOwog
CQkJcGF0aCA9IGZpbHRlcnM7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtMzcxMjEs
NiArMzcxMjQsNyBAQAogCQkJCTg0NUU3MkZDMEZEMjYyMzkwMEE4N0Q3OSAvKiBTVkdGaWx0ZXIu
aCBpbiBIZWFkZXJzICovLAogCQkJCTA4MUVCRjNCMEZEMzRGNDEwMERBNzU1OSAvKiBTVkdGaWx0
ZXJCdWlsZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlCMjIyN0EwQzBEMDBCRjIyMDA3MUI3ODIg
LyogU1ZHRmlsdGVyRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJNzJBNUQxOTIyNzVFOEZG
RTAwNjU4MzNFIC8qIFNWR0ZpbHRlckV4cHJlc3Npb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUIy
MjI3QTBGMEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJp
YnV0ZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyMjI3QTEyMEQwMEJGMjIwMDcxQjc4MiAvKiBT
VkdGaXRUb1ZpZXdCb3guaCBpbiBIZWFkZXJzICovLAogCQkJCUIyQTFGMkFCMENFRjBBQkYwMDQ0
MkY2QSAvKiBTVkdGb250RWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQmxlbmQuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUJsZW5kLmNwcAppbmRleCAwZmMy
MzNjOTg3ODJlM2JlNjQ0YzJlN2I1YmI2MDg2MDVhMTFhNDk3Li5jMWQ1ZTAzMmRlMDcwZDA2MDNk
MDZhNTg2ZmE3MWJjOTE5MDIwZDU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9maWx0ZXJzL0ZFQmxlbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVCbGVuZC5jcHAKQEAgLTU3LDE1ICs1NywxNSBAQCBzdGQ6
OnVuaXF1ZV9wdHI8RmlsdGVyRWZmZWN0QXBwbGllcj4gRkVCbGVuZDo6Y3JlYXRlQXBwbGllcihj
b25zdCBGaWx0ZXImKSBjb25zdAogICAgIHJldHVybiBGaWx0ZXJFZmZlY3RBcHBsaWVyOjpjcmVh
dGU8RkVCbGVuZFNvZnR3YXJlQXBwbGllcj4oKnRoaXMpOwogfQogCi1UZXh0U3RyZWFtJiBGRUJs
ZW5kOjpleHRlcm5hbFJlcHJlc2VudGF0aW9uKFRleHRTdHJlYW0mIHRzLCBSZXByZXNlbnRhdGlv
blR5cGUgcmVwcmVzZW50YXRpb24pIGNvbnN0CitUZXh0U3RyZWFtJiBGRUJsZW5kOjpleHRlcm5h
bFJlcHJlc2VudGF0aW9uKFRleHRTdHJlYW0mIHRzLCBGaWx0ZXJSZXByZXNlbnRhdGlvbiByZXBy
ZXNlbnRhdGlvbikgY29uc3QKIHsKICAgICB0cyA8PCBpbmRlbnQgPDwgIltmZUJsZW5kIjsKLSAg
ICBGaWx0ZXJFZmZlY3Q6OmV4dGVybmFsUmVwcmVzZW50YXRpb24odHMsIHJlcHJlc2VudGF0aW9u
KTsKLSAgICB0cyA8PCAiIG1vZGU9XCIiIDw8IChtX21vZGUgPT0gQmxlbmRNb2RlOjpOb3JtYWwg
PyAibm9ybWFsIiA6IGNvbXBvc2l0ZU9wZXJhdG9yTmFtZShDb21wb3NpdGVPcGVyYXRvcjo6U291
cmNlT3ZlciwgbV9tb2RlKSkgPDwgIlwiXVxuIjsKKyAgICB7CisgICAgICAgIEZpbHRlckVmZmVj
dDo6ZXh0ZXJuYWxSZXByZXNlbnRhdGlvbih0cywgcmVwcmVzZW50YXRpb24pOwogCi0gICAgVGV4
dFN0cmVhbTo6SW5kZW50U2NvcGUgaW5kZW50U2NvcGUodHMpOwotICAgIGlucHV0RWZmZWN0KDAp
LT5leHRlcm5hbFJlcHJlc2VudGF0aW9uKHRzLCByZXByZXNlbnRhdGlvbik7Ci0gICAgaW5wdXRF
ZmZlY3QoMSktPmV4dGVybmFsUmVwcmVzZW50YXRpb24odHMsIHJlcHJlc2VudGF0aW9uKTsKKyAg
ICAgICAgdHMgPDwgIiBtb2RlPVwiIiA8PCAobV9tb2RlID09IEJsZW5kTW9kZTo6Tm9ybWFsID8g
Im5vcm1hbCIgOiBjb21wb3NpdGVPcGVyYXRvck5hbWUoQ29tcG9zaXRlT3BlcmF0b3I6OlNvdXJj
ZU92ZXIsIG1fbW9kZSkpOworICAgIH0KKyAgICB0cyA8PCAiXCJdXG4iOwogICAgIHJldHVybiB0
czsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmls
dGVycy9GRUJsZW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJz
L0ZFQmxlbmQuaAppbmRleCBlNWRmMjE5MmE5Y2MwMTc3YzdhYTFhMDMxZDE2YzZmMmE0Y2Y4ZjNl
Li45YTc3ZjIyMzU5MzI2ODMzZDkyMzBmOWRkNTg2MjNiNDRiMDAzZjFjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQmxlbmQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQmxlbmQuaApAQCAtNDYs
NyArNDYsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgcGxhdGZvcm1BcHBseU5FT04odW5zaWduZWQg
Y2hhciogc3JjUGl4ZWxBcnJheUEsIHVuc2lnbmVkIGNoYXIqIHNyY1BpeGVsQXJyYXlCLCB1bnNp
Z25lZCBjaGFyKiBkc3RQaXhlbEFycmF5LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5z
aWduZWQgY29sb3JBcnJheUxlbmd0aCk7CiAKLSAgICBXVEY6OlRleHRTdHJlYW0mIGV4dGVybmFs
UmVwcmVzZW50YXRpb24oV1RGOjpUZXh0U3RyZWFtJiwgUmVwcmVzZW50YXRpb25UeXBlKSBjb25z
dCBvdmVycmlkZTsKKyAgICBXVEY6OlRleHRTdHJlYW0mIGV4dGVybmFsUmVwcmVzZW50YXRpb24o
V1RGOjpUZXh0U3RyZWFtJiwgRmlsdGVyUmVwcmVzZW50YXRpb24pIGNvbnN0IG92ZXJyaWRlOwog
CiAgICAgQmxlbmRNb2RlIG1fbW9kZTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29sb3JNYXRyaXguY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbG9yTWF0cml4LmNwcAppbmRleCA5NTYx
YmQ5YjVmOGUxZWY4MjIwNWE3MzY2OGIwYzQzMDI0NjI0NmQyLi45OGY5NDE1M2JmOWQxYTUxMTk4
ZDM3YjhkZWU3MjNlNzcxOTdiNTg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29sb3JNYXRyaXguY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb2xvck1hdHJpeC5jcHAKQEAgLTE0MSwyNyAr
MTQxLDI3IEBAIHN0YXRpYyBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBj
b25zdCBDb2xvck1hdHJpeFR5cGUmIHR5cGUpCiAgICAgcmV0dXJuIHRzOwogfQogCi1UZXh0U3Ry
ZWFtJiBGRUNvbG9yTWF0cml4OjpleHRlcm5hbFJlcHJlc2VudGF0aW9uKFRleHRTdHJlYW0mIHRz
LCBSZXByZXNlbnRhdGlvblR5cGUgcmVwcmVzZW50YXRpb24pIGNvbnN0CitUZXh0U3RyZWFtJiBG
RUNvbG9yTWF0cml4OjpleHRlcm5hbFJlcHJlc2VudGF0aW9uKFRleHRTdHJlYW0mIHRzLCBGaWx0
ZXJSZXByZXNlbnRhdGlvbiByZXByZXNlbnRhdGlvbikgY29uc3QKIHsKICAgICB0cyA8PCBpbmRl
bnQgPDwgIltmZUNvbG9yTWF0cml4IjsKLSAgICBGaWx0ZXJFZmZlY3Q6OmV4dGVybmFsUmVwcmVz
ZW50YXRpb24odHMsIHJlcHJlc2VudGF0aW9uKTsKLSAgICB0cyA8PCAiIHR5cGU9XCIiIDw8IG1f
dHlwZSA8PCAiXCIiOwotICAgIGlmICghbV92YWx1ZXMuaXNFbXB0eSgpKSB7Ci0gICAgICAgIHRz
IDw8ICIgdmFsdWVzPVwiIjsKLSAgICAgICAgVmVjdG9yPGZsb2F0Pjo6Y29uc3RfaXRlcmF0b3Ig
cHRyID0gbV92YWx1ZXMuYmVnaW4oKTsKLSAgICAgICAgY29uc3QgVmVjdG9yPGZsb2F0Pjo6Y29u
c3RfaXRlcmF0b3IgZW5kID0gbV92YWx1ZXMuZW5kKCk7Ci0gICAgICAgIHdoaWxlIChwdHIgPCBl
bmQpIHsKLSAgICAgICAgICAgIHRzIDw8ICpwdHI7Ci0gICAgICAgICAgICArK3B0cjsKLSAgICAg
ICAgICAgIGlmIChwdHIgPCBlbmQpIAotICAgICAgICAgICAgICAgIHRzIDw8ICIgIjsKKyAgICB7
CisgICAgICAgIEZpbHRlckVmZmVjdDo6ZXh0ZXJuYWxSZXByZXNlbnRhdGlvbih0cywgcmVwcmVz
ZW50YXRpb24pOworCisgICAgICAgIHRzIDw8ICIgdHlwZT1cIiIgPDwgbV90eXBlIDw8ICJcIiI7
CisgICAgICAgIGlmICghbV92YWx1ZXMuaXNFbXB0eSgpKSB7CisgICAgICAgICAgICB0cyA8PCAi
IHZhbHVlcz1cIiI7CisgICAgICAgICAgICBWZWN0b3I8ZmxvYXQ+Ojpjb25zdF9pdGVyYXRvciBw
dHIgPSBtX3ZhbHVlcy5iZWdpbigpOworICAgICAgICAgICAgY29uc3QgVmVjdG9yPGZsb2F0Pjo6
Y29uc3RfaXRlcmF0b3IgZW5kID0gbV92YWx1ZXMuZW5kKCk7CisgICAgICAgICAgICB3aGlsZSAo
cHRyIDwgZW5kKSB7CisgICAgICAgICAgICAgICAgdHMgPDwgKnB0cjsKKyAgICAgICAgICAgICAg
ICArK3B0cjsKKyAgICAgICAgICAgICAgICBpZiAocHRyIDwgZW5kKQorICAgICAgICAgICAgICAg
ICAgICB0cyA8PCAiICI7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB0cyA8PCAiXCIiOwog
ICAgICAgICB9Ci0gICAgICAgIHRzIDw8ICJcIiI7CiAgICAgfQogICAgIHRzIDw8ICJdXG4iOwot
ICAgIAotICAgIFRleHRTdHJlYW06OkluZGVudFNjb3BlIGluZGVudFNjb3BlKHRzKTsKLSAgICBp
bnB1dEVmZmVjdCgwKS0+ZXh0ZXJuYWxSZXByZXNlbnRhdGlvbih0cywgcmVwcmVzZW50YXRpb24p
OwogICAgIHJldHVybiB0czsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbG9yTWF0cml4LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29sb3JNYXRyaXguaAppbmRleCAyMDI0MDE5M2U1NDBi
YzIwZWZiOTQ2NzRiNmEwMDQ3ZDY4YjIyMzRhLi40NDRlNTdhODZmMjYyODMzNDkyY2JlNmU3ZjJl
ZTAwMjliMzBlM2MzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9maWx0ZXJzL0ZFQ29sb3JNYXRyaXguaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9maWx0ZXJzL0ZFQ29sb3JNYXRyaXguaApAQCAtNjMsNyArNjMsNyBAQCBwcml2YXRl
OgogCiAgICAgc3RkOjp1bmlxdWVfcHRyPEZpbHRlckVmZmVjdEFwcGxpZXI+IGNyZWF0ZUFwcGxp
ZXIoY29uc3QgRmlsdGVyJikgY29uc3Qgb3ZlcnJpZGU7CiAKLSAgICBXVEY6OlRleHRTdHJlYW0m
IGV4dGVybmFsUmVwcmVzZW50YXRpb24oV1RGOjpUZXh0U3RyZWFtJiwgUmVwcmVzZW50YXRpb25U
eXBlKSBjb25zdCBvdmVycmlkZTsKKyAgICBXVEY6OlRleHRTdHJlYW0mIGV4dGVybmFsUmVwcmVz
ZW50YXRpb24oV1RGOjpUZXh0U3RyZWFtJiwgRmlsdGVyUmVwcmVzZW50YXRpb24pIGNvbnN0IG92
ZXJyaWRlOwogCiAgICAgQ29sb3JNYXRyaXhUeXBlIG1fdHlwZTsKICAgICBWZWN0b3I8ZmxvYXQ+
IG1fdmFsdWVzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZmlsdGVycy9GRUNvbXBvbmVudFRyYW5zZmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2ZpbHRlcnMvRkVDb21wb25lbnRUcmFuc2Zlci5jcHAKaW5kZXggODIzZTNkYTY4
MWVmZjg0YTUwMGY0ZWE4ODY3NDQ5ZmYwZGRiZmMwYy4uZDA5NTg1N2VjMzcxMjYxNTlhNjAyZGE0
OTVlZmE4NTU0M2YxNDRhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZmlsdGVycy9GRUNvbXBvbmVudFRyYW5zZmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29tcG9uZW50VHJhbnNmZXIuY3BwCkBAIC0x
MTYsMjEgKzExNiwyMiBAQCBzdGF0aWMgVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFt
JiB0cywgY29uc3QgQ29tcG9uZW50VHJhbnNmZXJGdW5jdGlvbiYgZgogICAgIHJldHVybiB0czsK
IH0KIAotVGV4dFN0cmVhbSYgRkVDb21wb25lbnRUcmFuc2Zlcjo6ZXh0ZXJuYWxSZXByZXNlbnRh
dGlvbihUZXh0U3RyZWFtJiB0cywgUmVwcmVzZW50YXRpb25UeXBlIHJlcHJlc2VudGF0aW9uKSBj
b25zdAorVGV4dFN0cmVhbSYgRkVDb21wb25lbnRUcmFuc2Zlcjo6ZXh0ZXJuYWxSZXByZXNlbnRh
dGlvbihUZXh0U3RyZWFtJiB0cywgRmlsdGVyUmVwcmVzZW50YXRpb24gcmVwcmVzZW50YXRpb24p
IGNvbnN0CiB7CiAgICAgdHMgPDwgaW5kZW50IDw8ICJbZmVDb21wb25lbnRUcmFuc2ZlciI7Ci0g
ICAgRmlsdGVyRWZmZWN0OjpleHRlcm5hbFJlcHJlc2VudGF0aW9uKHRzLCByZXByZXNlbnRhdGlv
bik7Ci0gICAgdHMgPDwgIlxuIjsKICAgICB7Ci0gICAgICAgIFRleHRTdHJlYW06OkluZGVudFNj
b3BlIGluZGVudFNjb3BlKHRzLCAyKTsKLSAgICAgICAgdHMgPDwgaW5kZW50IDw8ICJ7cmVkOiAi
IDw8IG1fcmVkRnVuY3Rpb24gPDwgIn1cbiI7Ci0gICAgICAgIHRzIDw8IGluZGVudCA8PCAie2dy
ZWVuOiAiIDw8IG1fZ3JlZW5GdW5jdGlvbiA8PCAifVxuIjsKLSAgICAgICAgdHMgPDwgaW5kZW50
IDw8ICJ7Ymx1ZTogIiA8PCBtX2JsdWVGdW5jdGlvbiA8PCAifVxuIjsKLSAgICAgICAgdHMgPDwg
aW5kZW50IDw8ICJ7YWxwaGE6ICIgPDwgbV9hbHBoYUZ1bmN0aW9uIDw8ICJ9XVxuIjsKLSAgICB9
CisgICAgICAgIEZpbHRlckVmZmVjdDo6ZXh0ZXJuYWxSZXByZXNlbnRhdGlvbih0cywgcmVwcmVz
ZW50YXRpb24pOworICAgICAgICB0cyA8PCAiXG4iOwogCi0gICAgVGV4dFN0cmVhbTo6SW5kZW50
U2NvcGUgaW5kZW50U2NvcGUodHMpOwotICAgIGlucHV0RWZmZWN0KDApLT5leHRlcm5hbFJlcHJl
c2VudGF0aW9uKHRzLCByZXByZXNlbnRhdGlvbik7CisgICAgICAgIHsKKyAgICAgICAgICAgIFRl
eHRTdHJlYW06OkluZGVudFNjb3BlIGluZGVudFNjb3BlKHRzLCAyKTsKKyAgICAgICAgICAgIHRz
IDw8IGluZGVudCA8PCAie3JlZDogIiA8PCBtX3JlZEZ1bmN0aW9uIDw8ICJ9XG4iOworICAgICAg
ICAgICAgdHMgPDwgaW5kZW50IDw8ICJ7Z3JlZW46ICIgPDwgbV9ncmVlbkZ1bmN0aW9uIDw8ICJ9
XG4iOworICAgICAgICAgICAgdHMgPDwgaW5kZW50IDw8ICJ7Ymx1ZTogIiA8PCBtX2JsdWVGdW5j
dGlvbiA8PCAifVxuIjsKKyAgICAgICAgICAgIHRzIDw8IGluZGVudCA8PCAie2FscGhhOiAiIDw8
IG1fYWxwaGFGdW5jdGlvbiA8PCAifSI7CisgICAgICAgIH0KKyAgICB9CisgICAgdHMgPDwgIl1c
biI7CiAgICAgcmV0dXJuIHRzOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29tcG9uZW50VHJhbnNmZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb21wb25lbnRUcmFuc2Zlci5oCmluZGV4
IDA0OWQ0ZjIwNmI4YjQ2MTY2OGI3MDI0OGU3ZTBiNTRlNTE1OWY2NTIuLjUwNTVjNWVkNDU2ZDEw
ZWFkY2RkZjEyYjkwMjQ4OWU5MjJjOTIwMzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb21wb25lbnRUcmFuc2Zlci5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb21wb25lbnRUcmFuc2Zlci5o
CkBAIC03NCw3ICs3NCw3IEBAIHByaXZhdGU6CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8RmlsdGVy
RWZmZWN0QXBwbGllcj4gY3JlYXRlQXBwbGllcihjb25zdCBGaWx0ZXImKSBjb25zdCBvdmVycmlk
ZTsKIAotICAgIFdURjo6VGV4dFN0cmVhbSYgZXh0ZXJuYWxSZXByZXNlbnRhdGlvbihXVEY6OlRl
eHRTdHJlYW0mLCBSZXByZXNlbnRhdGlvblR5cGUpIGNvbnN0IG92ZXJyaWRlOworICAgIFdURjo6
VGV4dFN0cmVhbSYgZXh0ZXJuYWxSZXByZXNlbnRhdGlvbihXVEY6OlRleHRTdHJlYW0mLCBGaWx0
ZXJSZXByZXNlbnRhdGlvbikgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICBDb21wb25lbnRUcmFuc2Zl
ckZ1bmN0aW9uIG1fcmVkRnVuY3Rpb247CiAgICAgQ29tcG9uZW50VHJhbnNmZXJGdW5jdGlvbiBt
X2dyZWVuRnVuY3Rpb247CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9maWx0ZXJzL0ZFQ29tcG9zaXRlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2ZpbHRlcnMvRkVDb21wb3NpdGUuY3BwCmluZGV4IDVjYzI4MTgzNjYxMmMyYmI1OWUw
ZGY2ODliYjk5ZjFiNWI1Y2NmYjIuLjlmNDc3ZWM3MjczNjI4NDMzOTlkNTc5MDQwYjNiZTA1YzI1
N2YyZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRl
cnMvRkVDb21wb3NpdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2ZpbHRlcnMvRkVDb21wb3NpdGUuY3BwCkBAIC0xNDIsMTggKzE0MiwxNyBAQCBzdGF0aWMgVGV4
dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgY29uc3QgQ29tcG9zaXRlT3BlcmF0
aW9uVHlwZSYgdHlwZQogICAgIHJldHVybiB0czsKIH0KIAotVGV4dFN0cmVhbSYgRkVDb21wb3Np
dGU6OmV4dGVybmFsUmVwcmVzZW50YXRpb24oVGV4dFN0cmVhbSYgdHMsIFJlcHJlc2VudGF0aW9u
VHlwZSByZXByZXNlbnRhdGlvbikgY29uc3QKK1RleHRTdHJlYW0mIEZFQ29tcG9zaXRlOjpleHRl
cm5hbFJlcHJlc2VudGF0aW9uKFRleHRTdHJlYW0mIHRzLCBGaWx0ZXJSZXByZXNlbnRhdGlvbiBy
ZXByZXNlbnRhdGlvbikgY29uc3QKIHsKICAgICB0cyA8PCBpbmRlbnQgPDwgIltmZUNvbXBvc2l0
ZSI7Ci0gICAgRmlsdGVyRWZmZWN0OjpleHRlcm5hbFJlcHJlc2VudGF0aW9uKHRzLCByZXByZXNl
bnRhdGlvbik7Ci0gICAgdHMgPDwgIiBvcGVyYXRpb249XCIiIDw8IG1fdHlwZSA8PCAiXCIiOwot
ICAgIGlmIChtX3R5cGUgPT0gRkVDT01QT1NJVEVfT1BFUkFUT1JfQVJJVEhNRVRJQykKLSAgICAg
ICAgdHMgPDwgIiBrMT1cIiIgPDwgbV9rMSA8PCAiXCIgazI9XCIiIDw8IG1fazIgPDwgIlwiIGsz
PVwiIiA8PCBtX2szIDw8ICJcIiBrND1cIiIgPDwgbV9rNCA8PCAiXCIiOwotICAgIHRzIDw8ICJd
XG4iOworICAgIHsKKyAgICAgICAgRmlsdGVyRWZmZWN0OjpleHRlcm5hbFJlcHJlc2VudGF0aW9u
KHRzLCByZXByZXNlbnRhdGlvbik7CiAKLSAgICBUZXh0U3RyZWFtOjpJbmRlbnRTY29wZSBpbmRl
bnRTY29wZSh0cyk7Ci0gICAgaW5wdXRFZmZlY3QoMCktPmV4dGVybmFsUmVwcmVzZW50YXRpb24o
dHMsIHJlcHJlc2VudGF0aW9uKTsKLSAgICBpbnB1dEVmZmVjdCgxKS0+ZXh0ZXJuYWxSZXByZXNl
bnRhdGlvbih0cywgcmVwcmVzZW50YXRpb24pOworICAgICAgICB0cyA8PCAiIG9wZXJhdGlvbj1c
IiIgPDwgbV90eXBlIDw8ICJcIiI7CisgICAgICAgIGlmIChtX3R5cGUgPT0gRkVDT01QT1NJVEVf
T1BFUkFUT1JfQVJJVEhNRVRJQykKKyAgICAgICAgICAgIHRzIDw8ICIgazE9XCIiIDw8IG1fazEg
PDwgIlwiIGsyPVwiIiA8PCBtX2syIDw8ICJcIiBrMz1cIiIgPDwgbV9rMyA8PCAiXCIgazQ9XCIi
IDw8IG1fazQgPDwgIlwiIjsKKyAgICB9CisgICAgdHMgPDwgIl1cbiI7CiAgICAgcmV0dXJuIHRz
OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0
ZXJzL0ZFQ29tcG9zaXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0
ZXJzL0ZFQ29tcG9zaXRlLmgKaW5kZXggYzQwODM0MGFhZGNjM2Y5ZWExZjJlOWQ4YjZhYjlkMzUz
MTc0NjA2ZS4uM2I5Yzg1NmIyN2I0MGFkZjVkMjJjYmEyZjJkNTYwY2RjYmRiN2JmMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbXBvc2l0
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb21w
b3NpdGUuaApAQCAtNjksNyArNjksNyBAQCBwcml2YXRlOgogCiAgICAgc3RkOjp1bmlxdWVfcHRy
PEZpbHRlckVmZmVjdEFwcGxpZXI+IGNyZWF0ZUFwcGxpZXIoY29uc3QgRmlsdGVyJikgY29uc3Qg
b3ZlcnJpZGU7CiAKLSAgICBXVEY6OlRleHRTdHJlYW0mIGV4dGVybmFsUmVwcmVzZW50YXRpb24o
V1RGOjpUZXh0U3RyZWFtJiwgUmVwcmVzZW50YXRpb25UeXBlKSBjb25zdCBvdmVycmlkZTsKKyAg
ICBXVEY6OlRleHRTdHJlYW0mIGV4dGVybmFsUmVwcmVzZW50YXRpb24oV1RGOjpUZXh0U3RyZWFt
JiwgRmlsdGVyUmVwcmVzZW50YXRpb24pIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgaW5saW5lIHZv
aWQgcGxhdGZvcm1Bcml0aG1ldGljU29mdHdhcmUoY29uc3QgVWludDhDbGFtcGVkQXJyYXkmIHNv
dXJjZSwgVWludDhDbGFtcGVkQXJyYXkmIGRlc3RpbmF0aW9uLCBmbG9hdCBrMSwgZmxvYXQgazIs
IGZsb2F0IGszLCBmbG9hdCBrNCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb252b2x2ZU1hdHJpeC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29udm9sdmVNYXRyaXguY3BwCmluZGV4IDFk
MWI2MDcxZjU0YTY0YmJiMzkzMWYwMzUwMzYyNTUzY2FkMmU3ODEuLmU0NzY5MDViN2U1MTM2MWZj
N2Q2MmY3NGQ5YjZhNzRhM2ZiNTkzNDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb252b2x2ZU1hdHJpeC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbnZvbHZlTWF0cml4LmNwcApAQCAt
MTQzLDIxICsxNDMsMjIgQEAgc3RhdGljIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVh
bSYgdHMsIGNvbnN0IEVkZ2VNb2RlVHlwZSYgdHlwZSkKICAgICByZXR1cm4gdHM7CiB9CiAKLVRl
eHRTdHJlYW0mIEZFQ29udm9sdmVNYXRyaXg6OmV4dGVybmFsUmVwcmVzZW50YXRpb24oVGV4dFN0
cmVhbSYgdHMsIFJlcHJlc2VudGF0aW9uVHlwZSByZXByZXNlbnRhdGlvbikgY29uc3QKK1RleHRT
dHJlYW0mIEZFQ29udm9sdmVNYXRyaXg6OmV4dGVybmFsUmVwcmVzZW50YXRpb24oVGV4dFN0cmVh
bSYgdHMsIEZpbHRlclJlcHJlc2VudGF0aW9uIHJlcHJlc2VudGF0aW9uKSBjb25zdAogewogICAg
IHRzIDw8IGluZGVudCA8PCAiW2ZlQ29udm9sdmVNYXRyaXgiOwotICAgIEZpbHRlckVmZmVjdDo6
ZXh0ZXJuYWxSZXByZXNlbnRhdGlvbih0cywgcmVwcmVzZW50YXRpb24pOwotICAgIHRzIDw8ICIg
b3JkZXI9XCIiIDw8IG1fa2VybmVsU2l6ZSA8PCAiXCIgIgotICAgICAgIDw8ICJrZXJuZWxNYXRy
aXg9XCIiIDw8IG1fa2VybmVsTWF0cml4ICA8PCAiXCIgIgotICAgICAgIDw8ICJkaXZpc29yPVwi
IiA8PCBtX2Rpdmlzb3IgPDwgIlwiICIKLSAgICAgICA8PCAiYmlhcz1cIiIgPDwgbV9iaWFzIDw8
ICJcIiAiCi0gICAgICAgPDwgInRhcmdldD1cIiIgPDwgbV90YXJnZXRPZmZzZXQgPDwgIlwiICIK
LSAgICAgICA8PCAiZWRnZU1vZGU9XCIiIDw8IG1fZWRnZU1vZGUgPDwgIlwiICIKLSAgICAgICA8
PCAia2VybmVsVW5pdExlbmd0aD1cIiIgPDwgbV9rZXJuZWxVbml0TGVuZ3RoIDw8ICJcIiAiCi0g
ICAgICAgPDwgInByZXNlcnZlQWxwaGE9XCIiIDw8IG1fcHJlc2VydmVBbHBoYSA8PCAiXCJdXG4i
OwotCi0gICAgVGV4dFN0cmVhbTo6SW5kZW50U2NvcGUgaW5kZW50U2NvcGUodHMpOwotICAgIGlu
cHV0RWZmZWN0KDApLT5leHRlcm5hbFJlcHJlc2VudGF0aW9uKHRzLCByZXByZXNlbnRhdGlvbik7
CisgICAgeworICAgICAgICBGaWx0ZXJFZmZlY3Q6OmV4dGVybmFsUmVwcmVzZW50YXRpb24odHMs
IHJlcHJlc2VudGF0aW9uKTsKKworICAgICAgICB0cyA8PCAiIG9yZGVyPVwiIiA8PCBtX2tlcm5l
bFNpemUgPDwgIlwiIjsKKyAgICAgICAgdHMgPDwgIiBrZXJuZWxNYXRyaXg9XCIiIDw8IG1fa2Vy
bmVsTWF0cml4ICA8PCAiXCIiOworICAgICAgICB0cyA8PCAiIGRpdmlzb3I9XCIiIDw8IG1fZGl2
aXNvciA8PCAiXCIiOworICAgICAgICB0cyA8PCAiIGJpYXM9XCIiIDw8IG1fYmlhcyA8PCAiXCIi
OworICAgICAgICB0cyA8PCAiIHRhcmdldD1cIiIgPDwgbV90YXJnZXRPZmZzZXQgPDwgIlwiIjsK
KyAgICAgICAgdHMgPDwgIiBlZGdlTW9kZT1cIiIgPDwgbV9lZGdlTW9kZSA8PCAiXCIiOworICAg
ICAgICB0cyA8PCAiIGtlcm5lbFVuaXRMZW5ndGg9XCIiIDw8IG1fa2VybmVsVW5pdExlbmd0aCA8
PCAiXCIiOworICAgICAgICB0cyA8PCAiIHByZXNlcnZlQWxwaGE9XCIiIDw8IG1fcHJlc2VydmVB
bHBoYSA8PCAiXCIiOworICAgIH0KKyAgICB0cyA8PCAiXVxuIjsKICAgICByZXR1cm4gdHM7CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMv
RkVDb252b2x2ZU1hdHJpeC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmls
dGVycy9GRUNvbnZvbHZlTWF0cml4LmgKaW5kZXggNzU0MWYzZTRlZGE4YTNkNzlhNzQyZWNiMDBl
YzRkZDU0ZTc3MjQxYy4uZWU2YmM4ZmFhYWZiMGUwMTkyYThlMWE1OWVlYTE2MWUzYzUzNDczNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNv
bnZvbHZlTWF0cml4LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmls
dGVycy9GRUNvbnZvbHZlTWF0cml4LmgKQEAgLTc0LDcgKzc0LDcgQEAgcHJpdmF0ZToKIAogICAg
IHN0ZDo6dW5pcXVlX3B0cjxGaWx0ZXJFZmZlY3RBcHBsaWVyPiBjcmVhdGVBcHBsaWVyKGNvbnN0
IEZpbHRlciYpIGNvbnN0IG92ZXJyaWRlOwogCi0gICAgV1RGOjpUZXh0U3RyZWFtJiBleHRlcm5h
bFJlcHJlc2VudGF0aW9uKFdURjo6VGV4dFN0cmVhbSYsIFJlcHJlc2VudGF0aW9uVHlwZSkgY29u
c3Qgb3ZlcnJpZGU7CisgICAgV1RGOjpUZXh0U3RyZWFtJiBleHRlcm5hbFJlcHJlc2VudGF0aW9u
KFdURjo6VGV4dFN0cmVhbSYsIEZpbHRlclJlcHJlc2VudGF0aW9uKSBjb25zdCBvdmVycmlkZTsK
IAogICAgIEludFNpemUgbV9rZXJuZWxTaXplOwogICAgIGZsb2F0IG1fZGl2aXNvcjsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVEaWZmdXNl
TGlnaHRpbmcuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9G
RURpZmZ1c2VMaWdodGluZy5jcHAKaW5kZXggMDdiMDhjY2E0YTM4N2VlZjM3M2M4ZDA0NzA5ODdj
NTFiYzBkNTRkNS4uN2E2OGFkNmFmNDY1ZDczN2RlYjIyZWFkMWU3MGM0OGY3ZmMxNjdhZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRURpZmZ1
c2VMaWdodGluZy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmls
dGVycy9GRURpZmZ1c2VMaWdodGluZy5jcHAKQEAgLTQ3LDE2ICs0NywxNyBAQCBib29sIEZFRGlm
ZnVzZUxpZ2h0aW5nOjpzZXREaWZmdXNlQ29uc3RhbnQoZmxvYXQgZGlmZnVzZUNvbnN0YW50KQog
ICAgIHJldHVybiB0cnVlOwogfQogCi1UZXh0U3RyZWFtJiBGRURpZmZ1c2VMaWdodGluZzo6ZXh0
ZXJuYWxSZXByZXNlbnRhdGlvbihUZXh0U3RyZWFtJiB0cywgUmVwcmVzZW50YXRpb25UeXBlIHJl
cHJlc2VudGF0aW9uKSBjb25zdAorVGV4dFN0cmVhbSYgRkVEaWZmdXNlTGlnaHRpbmc6OmV4dGVy
bmFsUmVwcmVzZW50YXRpb24oVGV4dFN0cmVhbSYgdHMsIEZpbHRlclJlcHJlc2VudGF0aW9uIHJl
cHJlc2VudGF0aW9uKSBjb25zdAogewogICAgIHRzIDw8IGluZGVudCA8PCAiW2ZlRGlmZnVzZUxp
Z2h0aW5nIjsKLSAgICBGaWx0ZXJFZmZlY3Q6OmV4dGVybmFsUmVwcmVzZW50YXRpb24odHMsIHJl
cHJlc2VudGF0aW9uKTsKLSAgICB0cyA8PCAiIHN1cmZhY2VTY2FsZT1cIiIgPDwgbV9zdXJmYWNl
U2NhbGUgPDwgIlwiICIKLSAgICAgICA8PCAiZGlmZnVzZUNvbnN0YW50PVwiIiA8PCBtX2RpZmZ1
c2VDb25zdGFudCA8PCAiXCIgIgotICAgICAgIDw8ICJrZXJuZWxVbml0TGVuZ3RoPVwiIiA8PCBt
X2tlcm5lbFVuaXRMZW5ndGhYIDw8ICIsICIgPDwgbV9rZXJuZWxVbml0TGVuZ3RoWSA8PCAiXCJd
XG4iOworICAgIHsKKyAgICAgICAgRmlsdGVyRWZmZWN0OjpleHRlcm5hbFJlcHJlc2VudGF0aW9u
KHRzLCByZXByZXNlbnRhdGlvbik7CiAKLSAgICBUZXh0U3RyZWFtOjpJbmRlbnRTY29wZSBpbmRl
bnRTY29wZSh0cyk7Ci0gICAgaW5wdXRFZmZlY3QoMCktPmV4dGVybmFsUmVwcmVzZW50YXRpb24o
dHMsIHJlcHJlc2VudGF0aW9uKTsKKyAgICAgICAgdHMgPDwgIiBzdXJmYWNlU2NhbGU9XCIiIDw8
IG1fc3VyZmFjZVNjYWxlIDw8ICJcIiI7CisgICAgICAgIHRzIDw8ICIgZGlmZnVzZUNvbnN0YW50
PVwiIiA8PCBtX2RpZmZ1c2VDb25zdGFudCA8PCAiXCIiOworICAgICAgICB0cyA8PCAiIGtlcm5l
bFVuaXRMZW5ndGg9XCIiIDw8IG1fa2VybmVsVW5pdExlbmd0aFggPDwgIiwgIiA8PCBtX2tlcm5l
bFVuaXRMZW5ndGhZIDw8ICJcIiI7CisgICAgfQorICAgIHRzIDw8ICJdXG4iOwogICAgIHJldHVy
biB0czsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZmlsdGVycy9GRURpZmZ1c2VMaWdodGluZy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZmlsdGVycy9GRURpZmZ1c2VMaWdodGluZy5oCmluZGV4IGEyZDEyNThlM2FkNjdjNWI5
YjRmYWMyZDQ1YzIyMTg5YTY4ZDA4ZGQuLjIyN2FmOGUyMWYyMjZjYjU0ZGFmNTVjMjg1MDQ2ODE0
ZDNiYTkwZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Zp
bHRlcnMvRkVEaWZmdXNlTGlnaHRpbmcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9maWx0ZXJzL0ZFRGlmZnVzZUxpZ2h0aW5nLmgKQEAgLTM1LDcgKzM1LDcgQEAgcHVi
bGljOgogICAgIGZsb2F0IGRpZmZ1c2VDb25zdGFudCgpIGNvbnN0IHsgcmV0dXJuIG1fZGlmZnVz
ZUNvbnN0YW50OyB9CiAgICAgYm9vbCBzZXREaWZmdXNlQ29uc3RhbnQoZmxvYXQpOwogCi0gICAg
V1RGOjpUZXh0U3RyZWFtJiBleHRlcm5hbFJlcHJlc2VudGF0aW9uKFdURjo6VGV4dFN0cmVhbSYs
IFJlcHJlc2VudGF0aW9uVHlwZSkgY29uc3Qgb3ZlcnJpZGU7CisgICAgV1RGOjpUZXh0U3RyZWFt
JiBleHRlcm5hbFJlcHJlc2VudGF0aW9uKFdURjo6VGV4dFN0cmVhbSYsIEZpbHRlclJlcHJlc2Vu
dGF0aW9uKSBjb25zdCBvdmVycmlkZTsKIAogICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0
YXRpYyBzdGQ6Om9wdGlvbmFsPFJlZjxGRURpZmZ1c2VMaWdodGluZz4+IGRlY29kZShEZWNvZGVy
Jik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRl
cnMvRkVEaXNwbGFjZW1lbnRNYXAuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZmlsdGVycy9GRURpc3BsYWNlbWVudE1hcC5jcHAKaW5kZXggN2JiNmEyZWM1YzU0ZmNlM2I4
MTIyMDQ0ZTQzNWYxZDI3NmM4ZGIzYi4uNGI5MmY5NDBhZGZiZWFlNGFkODc1MjYwNmI2MzNmNTY4
YWU5NWNjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmls
dGVycy9GRURpc3BsYWNlbWVudE1hcC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZmlsdGVycy9GRURpc3BsYWNlbWVudE1hcC5jcHAKQEAgLTY4LDEzICs2OCwxMyBA
QCBib29sIEZFRGlzcGxhY2VtZW50TWFwOjpzZXRTY2FsZShmbG9hdCBzY2FsZSkKICAgICByZXR1
cm4gdHJ1ZTsKIH0KIAotY29uc3QgRGVzdGluYXRpb25Db2xvclNwYWNlJiBGRURpc3BsYWNlbWVu
dE1hcDo6cmVzdWx0Q29sb3JTcGFjZSgpIGNvbnN0Citjb25zdCBEZXN0aW5hdGlvbkNvbG9yU3Bh
Y2UmIEZFRGlzcGxhY2VtZW50TWFwOjpyZXN1bHRDb2xvclNwYWNlKGNvbnN0IEZpbHRlckltYWdl
VmVjdG9yJiBpbnB1dHMpIGNvbnN0CiB7CiAgICAgLy8gU3BlYzogVGhlICdjb2xvci1pbnRlcnBv
bGF0aW9uLWZpbHRlcnMnIHByb3BlcnR5IG9ubHkgYXBwbGllcyB0byB0aGUgJ2luMicgc291cmNl
IGltYWdlCiAgICAgLy8gYW5kIGRvZXMgbm90IGFwcGx5IHRvIHRoZSAnaW4nIHNvdXJjZSBpbWFn
ZS4gVGhlICdpbicgc291cmNlIGltYWdlIG11c3QgcmVtYWluIGluIGl0cwogICAgIC8vIGN1cnJl
bnQgY29sb3Igc3BhY2UuCiAgICAgLy8gVGhlIHJlc3VsdCBpcyBpbiB0aGF0IHNhbWUgY29sb3Ig
c3BhY2UgYmVjYXVzZSBpdCBpcyBhIGRpc3BsYWNlbWVudCBvZiB0aGUgJ2luJyBpbWFnZS4KLSAg
ICByZXR1cm4gaW5wdXRFZmZlY3QoMCktPnJlc3VsdENvbG9yU3BhY2UoKTsKKyAgICByZXR1cm4g
aW5wdXRzWzBdLT5jb2xvclNwYWNlKCk7CiB9CiAKIHZvaWQgRkVEaXNwbGFjZW1lbnRNYXA6OnRy
YW5zZm9ybVJlc3VsdENvbG9yU3BhY2UoRmlsdGVyRWZmZWN0KiBpbiwgY29uc3QgaW50IGluZGV4
KQpAQCAtMTE2LDE3ICsxMTYsMTcgQEAgc3RhdGljIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4
dFN0cmVhbSYgdHMsIGNvbnN0IENoYW5uZWxTZWxlY3RvclR5cGUmIHR5cGUpCiAgICAgcmV0dXJu
IHRzOwogfQogCi1UZXh0U3RyZWFtJiBGRURpc3BsYWNlbWVudE1hcDo6ZXh0ZXJuYWxSZXByZXNl
bnRhdGlvbihUZXh0U3RyZWFtJiB0cywgUmVwcmVzZW50YXRpb25UeXBlIHJlcHJlc2VudGF0aW9u
KSBjb25zdAorVGV4dFN0cmVhbSYgRkVEaXNwbGFjZW1lbnRNYXA6OmV4dGVybmFsUmVwcmVzZW50
YXRpb24oVGV4dFN0cmVhbSYgdHMsIEZpbHRlclJlcHJlc2VudGF0aW9uIHJlcHJlc2VudGF0aW9u
KSBjb25zdAogewogICAgIHRzIDw8IGluZGVudCA8PCAiW2ZlRGlzcGxhY2VtZW50TWFwIjsKLSAg
ICBGaWx0ZXJFZmZlY3Q6OmV4dGVybmFsUmVwcmVzZW50YXRpb24odHMsIHJlcHJlc2VudGF0aW9u
KTsKLSAgICB0cyA8PCAiIHNjYWxlPVwiIiA8PCBtX3NjYWxlIDw8ICJcIiAiCi0gICAgICAgPDwg
InhDaGFubmVsU2VsZWN0b3I9XCIiIDw8IG1feENoYW5uZWxTZWxlY3RvciA8PCAiXCIgIgotICAg
ICAgIDw8ICJ5Q2hhbm5lbFNlbGVjdG9yPVwiIiA8PCBtX3lDaGFubmVsU2VsZWN0b3IgPDwgIlwi
XVxuIjsKLQotICAgIFRleHRTdHJlYW06OkluZGVudFNjb3BlIGluZGVudFNjb3BlKHRzKTsKLSAg
ICBpbnB1dEVmZmVjdCgwKS0+ZXh0ZXJuYWxSZXByZXNlbnRhdGlvbih0cywgcmVwcmVzZW50YXRp
b24pOwotICAgIGlucHV0RWZmZWN0KDEpLT5leHRlcm5hbFJlcHJlc2VudGF0aW9uKHRzLCByZXBy
ZXNlbnRhdGlvbik7CisgICAgeworICAgICAgICBGaWx0ZXJFZmZlY3Q6OmV4dGVybmFsUmVwcmVz
ZW50YXRpb24odHMsIHJlcHJlc2VudGF0aW9uKTsKKworICAgICAgICB0cyA8PCAiIHNjYWxlPVwi
IiA8PCBtX3NjYWxlIDw8ICJcIiI7CisgICAgICAgIHRzIDw8ICIgeENoYW5uZWxTZWxlY3Rvcj1c
IiIgPDwgbV94Q2hhbm5lbFNlbGVjdG9yIDw8ICJcIiI7CisgICAgICAgIHRzIDw8ICIgeUNoYW5u
ZWxTZWxlY3Rvcj1cIiIgPDwgbV95Q2hhbm5lbFNlbGVjdG9yIDw8ICJcIiI7CisgICAgfQorICAg
IHRzIDw8ICJdXG4iOwogICAgIHJldHVybiB0czsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRURpc3BsYWNlbWVudE1hcC5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRURpc3BsYWNlbWVudE1hcC5o
CmluZGV4IDM4MjZhYWNjYmYyN2NjYzI4MWRhN2U3NDFiMTQ1ZWMwMGZlYWQ1MWEuLmFkOTVjZTNk
N2NjYWFlM2NlYmIxNTE2YWY4YjBlMmM1ZmFhODYxMDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVEaXNwbGFjZW1lbnRNYXAuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRGlzcGxhY2VtZW50TWFw
LmgKQEAgLTU0LDE0ICs1NCwxNCBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIEZFRGlzcGxhY2Vt
ZW50TWFwKENoYW5uZWxTZWxlY3RvclR5cGUgeENoYW5uZWxTZWxlY3RvciwgQ2hhbm5lbFNlbGVj
dG9yVHlwZSB5Q2hhbm5lbFNlbGVjdG9yLCBmbG9hdCk7CiAKLSAgICBjb25zdCBEZXN0aW5hdGlv
bkNvbG9yU3BhY2UmIHJlc3VsdENvbG9yU3BhY2UoKSBjb25zdCBvdmVycmlkZTsKKyAgICBjb25z
dCBEZXN0aW5hdGlvbkNvbG9yU3BhY2UmIHJlc3VsdENvbG9yU3BhY2UoY29uc3QgRmlsdGVySW1h
Z2VWZWN0b3ImKSBjb25zdCBvdmVycmlkZTsKICAgICB2b2lkIHRyYW5zZm9ybVJlc3VsdENvbG9y
U3BhY2UoRmlsdGVyRWZmZWN0KiwgY29uc3QgaW50KSBvdmVycmlkZTsKIAogICAgIEZsb2F0UmVj
dCBjYWxjdWxhdGVJbWFnZVJlY3QoY29uc3QgRmlsdGVyJiwgY29uc3QgRmlsdGVySW1hZ2VWZWN0
b3ImIGlucHV0cywgY29uc3QgRmxvYXRSZWN0JiBwcmltaXRpdmVTdWJyZWdpb24pIGNvbnN0IG92
ZXJyaWRlOwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPEZpbHRlckVmZmVjdEFwcGxpZXI+IGNyZWF0
ZUFwcGxpZXIoY29uc3QgRmlsdGVyJikgY29uc3Qgb3ZlcnJpZGU7CiAKLSAgICBXVEY6OlRleHRT
dHJlYW0mIGV4dGVybmFsUmVwcmVzZW50YXRpb24oV1RGOjpUZXh0U3RyZWFtJiwgUmVwcmVzZW50
YXRpb25UeXBlKSBjb25zdCBvdmVycmlkZTsKKyAgICBXVEY6OlRleHRTdHJlYW0mIGV4dGVybmFs
UmVwcmVzZW50YXRpb24oV1RGOjpUZXh0U3RyZWFtJiwgRmlsdGVyUmVwcmVzZW50YXRpb24pIGNv
bnN0IG92ZXJyaWRlOwogCiAgICAgQ2hhbm5lbFNlbGVjdG9yVHlwZSBtX3hDaGFubmVsU2VsZWN0
b3I7CiAgICAgQ2hhbm5lbFNlbGVjdG9yVHlwZSBtX3lDaGFubmVsU2VsZWN0b3I7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRHJvcFNoYWRv
dy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRHJvcFNo
YWRvdy5jcHAKaW5kZXggN2YwNTc5YjZkNmZiNWJkNGE3ZGFmZDBiY2VlODFhYzI3MTY0YmJjNC4u
NWI3ZjNmYmRmODlkMGRiMzIzYzg2ZjY1ZTcyN2QxODFmZDU0NGY3MCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRURyb3BTaGFkb3cuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVEcm9wU2hhZG93
LmNwcApAQCAtNzcsMTQgKzc3LDE4IEBAIHN0ZDo6dW5pcXVlX3B0cjxGaWx0ZXJFZmZlY3RBcHBs
aWVyPiBGRURyb3BTaGFkb3c6OmNyZWF0ZUFwcGxpZXIoY29uc3QgRmlsdGVyJikKICAgICByZXR1
cm4gRmlsdGVyRWZmZWN0QXBwbGllcjo6Y3JlYXRlPEZFRHJvcFNoYWRvd1NvZnR3YXJlQXBwbGll
cj4oKnRoaXMpOwogfQogICAgIAotVGV4dFN0cmVhbSYgRkVEcm9wU2hhZG93OjpleHRlcm5hbFJl
cHJlc2VudGF0aW9uKFRleHRTdHJlYW0mIHRzLCBSZXByZXNlbnRhdGlvblR5cGUgcmVwcmVzZW50
YXRpb24pIGNvbnN0CitUZXh0U3RyZWFtJiBGRURyb3BTaGFkb3c6OmV4dGVybmFsUmVwcmVzZW50
YXRpb24oVGV4dFN0cmVhbSYgdHMsIEZpbHRlclJlcHJlc2VudGF0aW9uIHJlcHJlc2VudGF0aW9u
KSBjb25zdAogewogICAgIHRzIDw8IGluZGVudCA8PCJbZmVEcm9wU2hhZG93IjsKLSAgICBGaWx0
ZXJFZmZlY3Q6OmV4dGVybmFsUmVwcmVzZW50YXRpb24odHMsIHJlcHJlc2VudGF0aW9uKTsKLSAg
ICB0cyA8PCAiIHN0ZERldmlhdGlvbj1cIiIgPDwgbV9zdGRYIDw8ICIsICIgPDwgbV9zdGRZIDw8
ICJcIiBkeD1cIiIgPDwgbV9keCA8PCAiXCIgZHk9XCIiIDw8IG1fZHkgPDwgIlwiIGZsb29kLWNv
bG9yPVwiIiA8PCBzZXJpYWxpemF0aW9uRm9yUmVuZGVyVHJlZUFzVGV4dChtX3NoYWRvd0NvbG9y
KSA8PCJcIiBmbG9vZC1vcGFjaXR5PVwiIiA8PCBtX3NoYWRvd09wYWNpdHkgPDwgIl1cbiI7Cisg
ICAgeworICAgICAgICBGaWx0ZXJFZmZlY3Q6OmV4dGVybmFsUmVwcmVzZW50YXRpb24odHMsIHJl
cHJlc2VudGF0aW9uKTsKIAotICAgIFRleHRTdHJlYW06OkluZGVudFNjb3BlIGluZGVudFNjb3Bl
KHRzKTsKLSAgICBpbnB1dEVmZmVjdCgwKS0+ZXh0ZXJuYWxSZXByZXNlbnRhdGlvbih0cywgcmVw
cmVzZW50YXRpb24pOworICAgICAgICB0cyA8PCAiIHN0ZERldmlhdGlvbj1cIiIgPDwgbV9zdGRY
IDw8ICIsICIgPDwgbV9zdGRZIDw8ICJcIiI7CisgICAgICAgIHRzIDw8ICIgZHg9XCIiIDw8IG1f
ZHggPDwgIlwiIGR5PVwiIiA8PCBtX2R5IDw8ICJcIiI7CisgICAgICAgIHRzIDw8ICIgZmxvb2Qt
Y29sb3I9XCIiIDw8IHNlcmlhbGl6YXRpb25Gb3JSZW5kZXJUcmVlQXNUZXh0KG1fc2hhZG93Q29s
b3IpIDw8ICJcIiI7CisgICAgICAgIHRzIDw8ICIgZmxvb2Qtb3BhY2l0eT1cIiIgPDwgbV9zaGFk
b3dPcGFjaXR5IDw8ICJcIiI7CisgICAgfQorICAgIHRzIDw8ICJdXG4iOwogICAgIHJldHVybiB0
czsKIH0KICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2ZpbHRlcnMvRkVEcm9wU2hhZG93LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9maWx0ZXJzL0ZFRHJvcFNoYWRvdy5oCmluZGV4IDRiZmQ2MDg0OGIxYTgyNDcyODg0YWJiZDA4
MjRiN2E3NmVkMGQ0MTQuLjc4YTUzN2ZmN2Y2YWQ2MjJmMDE5NTcwMWVmNDI2NGMzN2I1MGFhMDMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVE
cm9wU2hhZG93LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVy
cy9GRURyb3BTaGFkb3cuaApAQCAtNTksNyArNTksNyBAQCBwcml2YXRlOgogCiAgICAgc3RkOjp1
bmlxdWVfcHRyPEZpbHRlckVmZmVjdEFwcGxpZXI+IGNyZWF0ZUFwcGxpZXIoY29uc3QgRmlsdGVy
JikgY29uc3Qgb3ZlcnJpZGU7CiAKLSAgICBXVEY6OlRleHRTdHJlYW0mIGV4dGVybmFsUmVwcmVz
ZW50YXRpb24oV1RGOjpUZXh0U3RyZWFtJiwgUmVwcmVzZW50YXRpb25UeXBlKSBjb25zdCBvdmVy
cmlkZTsKKyAgICBXVEY6OlRleHRTdHJlYW0mIGV4dGVybmFsUmVwcmVzZW50YXRpb24oV1RGOjpU
ZXh0U3RyZWFtJiwgRmlsdGVyUmVwcmVzZW50YXRpb24pIGNvbnN0IG92ZXJyaWRlOwogCiAgICAg
ZmxvYXQgbV9zdGRYOwogICAgIGZsb2F0IG1fc3RkWTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVGbG9vZC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRmxvb2QuY3BwCmluZGV4IDQ0MzlhMmUxZTU3
YmQ5OGJkMmFkNDhjNmY2NGQ2ZGE1OTgzYzAyMGIuLmQ1OGUwNzUzNTMxOGY0NTM3ZjJlYTk4NzRm
NzlhOTRmYmU2YzhjYjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2ZpbHRlcnMvRkVGbG9vZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZmlsdGVycy9GRUZsb29kLmNwcApAQCAtNjksMTIgKzY5LDE2IEBAIHN0ZDo6dW5pcXVl
X3B0cjxGaWx0ZXJFZmZlY3RBcHBsaWVyPiBGRUZsb29kOjpjcmVhdGVBcHBsaWVyKGNvbnN0IEZp
bHRlciYpIGNvbnN0CiAgICAgcmV0dXJuIEZpbHRlckVmZmVjdEFwcGxpZXI6OmNyZWF0ZTxGRUZs
b29kU29mdHdhcmVBcHBsaWVyPigqdGhpcyk7CiB9CiAKLVRleHRTdHJlYW0mIEZFRmxvb2Q6OmV4
dGVybmFsUmVwcmVzZW50YXRpb24oVGV4dFN0cmVhbSYgdHMsIFJlcHJlc2VudGF0aW9uVHlwZSBy
ZXByZXNlbnRhdGlvbikgY29uc3QKK1RleHRTdHJlYW0mIEZFRmxvb2Q6OmV4dGVybmFsUmVwcmVz
ZW50YXRpb24oVGV4dFN0cmVhbSYgdHMsIEZpbHRlclJlcHJlc2VudGF0aW9uIHJlcHJlc2VudGF0
aW9uKSBjb25zdAogewogICAgIHRzIDw8IGluZGVudCA8PCAiW2ZlRmxvb2QiOwotICAgIEZpbHRl
ckVmZmVjdDo6ZXh0ZXJuYWxSZXByZXNlbnRhdGlvbih0cywgcmVwcmVzZW50YXRpb24pOwotICAg
IHRzIDw8ICIgZmxvb2QtY29sb3I9XCIiIDw8IHNlcmlhbGl6YXRpb25Gb3JSZW5kZXJUcmVlQXNU
ZXh0KGZsb29kQ29sb3IoKSkgPDwgIlwiICIKLSAgICAgICA8PCAiZmxvb2Qtb3BhY2l0eT1cIiIg
PDwgZmxvb2RPcGFjaXR5KCkgPDwgIlwiXVxuIjsKKyAgICB7CisgICAgICAgIEZpbHRlckVmZmVj
dDo6ZXh0ZXJuYWxSZXByZXNlbnRhdGlvbih0cywgcmVwcmVzZW50YXRpb24pOworCisgICAgICAg
IHRzIDw8ICIgZmxvb2QtY29sb3I9XCIiIDw8IHNlcmlhbGl6YXRpb25Gb3JSZW5kZXJUcmVlQXNU
ZXh0KGZsb29kQ29sb3IoKSkgPDwgIlwiIjsKKyAgICAgICAgdHMgPDwgIiBmbG9vZC1vcGFjaXR5
PVwiIiA8PCBmbG9vZE9wYWNpdHkoKSA8PCAiXCIiOworICAgIH0KKyAgICB0cyA8PCAiXVxuIjsK
ICAgICByZXR1cm4gdHM7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2ZpbHRlcnMvRkVGbG9vZC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZmlsdGVycy9GRUZsb29kLmgKaW5kZXggMGE2NWM2ODIzNDEwZWVmYmUwOGU2NjkzNzgw
OGUxYTk3YWU0ZjZiOC4uZWU2ZWM0YzY4ODk1MjJhZjdkNDUxNjMyMTYzMTVkYzE0ZDMyNWViOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUZs
b29kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUZs
b29kLmgKQEAgLTUzLDcgKzUzLDcgQEAgcHJpdmF0ZToKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxG
aWx0ZXJFZmZlY3RBcHBsaWVyPiBjcmVhdGVBcHBsaWVyKGNvbnN0IEZpbHRlciYpIGNvbnN0IG92
ZXJyaWRlOwogCi0gICAgV1RGOjpUZXh0U3RyZWFtJiBleHRlcm5hbFJlcHJlc2VudGF0aW9uKFdU
Rjo6VGV4dFN0cmVhbSYsIFJlcHJlc2VudGF0aW9uVHlwZSkgY29uc3Qgb3ZlcnJpZGU7CisgICAg
V1RGOjpUZXh0U3RyZWFtJiBleHRlcm5hbFJlcHJlc2VudGF0aW9uKFdURjo6VGV4dFN0cmVhbSYs
IEZpbHRlclJlcHJlc2VudGF0aW9uKSBjb25zdCBvdmVycmlkZTsKIAogICAgIENvbG9yIG1fZmxv
b2RDb2xvcjsKICAgICBmbG9hdCBtX2Zsb29kT3BhY2l0eTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVHYXVzc2lhbkJsdXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUdhdXNzaWFuQmx1ci5jcHAK
aW5kZXggMTZlYTIyZDhhNDkyOWUyMDU0ZDQ2ZGNjMmRmMjVhNDZiYjY3NjE3NS4uZGI0OWJmYzAw
MTYxMDFkZDRlZmFiZDBiNTE5ZDk0ZGMxYjZiNTJhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUdhdXNzaWFuQmx1ci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUdhdXNzaWFuQmx1ci5jcHAK
QEAgLTEzNiwxNCArMTM2LDE1IEBAIHN0ZDo6dW5pcXVlX3B0cjxGaWx0ZXJFZmZlY3RBcHBsaWVy
PiBGRUdhdXNzaWFuQmx1cjo6Y3JlYXRlQXBwbGllcihjb25zdCBGaWx0ZXImCiAgICAgcmV0dXJu
IEZpbHRlckVmZmVjdEFwcGxpZXI6OmNyZWF0ZTxGRUdhdXNzaWFuQmx1clNvZnR3YXJlQXBwbGll
cj4oKnRoaXMpOwogfQogCi1UZXh0U3RyZWFtJiBGRUdhdXNzaWFuQmx1cjo6ZXh0ZXJuYWxSZXBy
ZXNlbnRhdGlvbihUZXh0U3RyZWFtJiB0cywgUmVwcmVzZW50YXRpb25UeXBlIHJlcHJlc2VudGF0
aW9uKSBjb25zdAorVGV4dFN0cmVhbSYgRkVHYXVzc2lhbkJsdXI6OmV4dGVybmFsUmVwcmVzZW50
YXRpb24oVGV4dFN0cmVhbSYgdHMsIEZpbHRlclJlcHJlc2VudGF0aW9uIHJlcHJlc2VudGF0aW9u
KSBjb25zdAogewogICAgIHRzIDw8IGluZGVudCA8PCAiW2ZlR2F1c3NpYW5CbHVyIjsKLSAgICBG
aWx0ZXJFZmZlY3Q6OmV4dGVybmFsUmVwcmVzZW50YXRpb24odHMsIHJlcHJlc2VudGF0aW9uKTsK
LSAgICB0cyA8PCAiIHN0ZERldmlhdGlvbj1cIiIgPDwgbV9zdGRYIDw8ICIsICIgPDwgbV9zdGRZ
IDw8ICJcIl1cbiI7CisgICAgeworICAgICAgICBGaWx0ZXJFZmZlY3Q6OmV4dGVybmFsUmVwcmVz
ZW50YXRpb24odHMsIHJlcHJlc2VudGF0aW9uKTsKIAotICAgIFRleHRTdHJlYW06OkluZGVudFNj
b3BlIGluZGVudFNjb3BlKHRzKTsKLSAgICBpbnB1dEVmZmVjdCgwKS0+ZXh0ZXJuYWxSZXByZXNl
bnRhdGlvbih0cywgcmVwcmVzZW50YXRpb24pOworICAgICAgICB0cyA8PCAiIHN0ZERldmlhdGlv
bj1cIiIgPDwgbV9zdGRYIDw8ICIsICIgPDwgbV9zdGRZIDw8ICJcIiI7CisgICAgfQorICAgIHRz
IDw8ICJdXG4iOwogICAgIHJldHVybiB0czsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUdhdXNzaWFuQmx1ci5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUdhdXNzaWFuQmx1ci5oCmluZGV4IDk1
NjdhMmYwNGJjZTkyMDU1YTM3ZTZjYjVjZDA4YWY0ZWU3YTIyZjcuLjg1MTdhYzEwYjg2MmUyOGU1
Y2U5ODRiYzJkYmM3YzUwZTBkODE4YTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVHYXVzc2lhbkJsdXIuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFR2F1c3NpYW5CbHVyLmgKQEAgLTU4LDcgKzU4
LDcgQEAgcHJpdmF0ZToKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxGaWx0ZXJFZmZlY3RBcHBsaWVy
PiBjcmVhdGVBcHBsaWVyKGNvbnN0IEZpbHRlciYpIGNvbnN0IG92ZXJyaWRlOwogCi0gICAgV1RG
OjpUZXh0U3RyZWFtJiBleHRlcm5hbFJlcHJlc2VudGF0aW9uKFdURjo6VGV4dFN0cmVhbSYsIFJl
cHJlc2VudGF0aW9uVHlwZSkgY29uc3Qgb3ZlcnJpZGU7CisgICAgV1RGOjpUZXh0U3RyZWFtJiBl
eHRlcm5hbFJlcHJlc2VudGF0aW9uKFdURjo6VGV4dFN0cmVhbSYsIEZpbHRlclJlcHJlc2VudGF0
aW9uKSBjb25zdCBvdmVycmlkZTsKIAogICAgIGZsb2F0IG1fc3RkWDsKICAgICBmbG9hdCBtX3N0
ZFk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJz
L0ZFTWVyZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9G
RU1lcmdlLmNwcAppbmRleCA5NTliNDhhYmUwODY4MTZjMzU4ZTNjODY0OWExOTNiYjBjZWVlZmEy
Li4wOTAwNDYwYTA2NWIyNGQ1NWYzZGU2M2Q3ZWZlNDE0ZDg5N2MwMjgwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFTWVyZ2UuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVNZXJnZS5jcHAKQEAg
LTQ1LDE3ICs0NSwxNSBAQCBzdGQ6OnVuaXF1ZV9wdHI8RmlsdGVyRWZmZWN0QXBwbGllcj4gRkVN
ZXJnZTo6Y3JlYXRlQXBwbGllcihjb25zdCBGaWx0ZXImKSBjb25zdAogICAgIHJldHVybiBGaWx0
ZXJFZmZlY3RBcHBsaWVyOjpjcmVhdGU8RkVNZXJnZVNvZnR3YXJlQXBwbGllcj4oKnRoaXMpOwog
fQogCi1UZXh0U3RyZWFtJiBGRU1lcmdlOjpleHRlcm5hbFJlcHJlc2VudGF0aW9uKFRleHRTdHJl
YW0mIHRzLCBSZXByZXNlbnRhdGlvblR5cGUgcmVwcmVzZW50YXRpb24pIGNvbnN0CitUZXh0U3Ry
ZWFtJiBGRU1lcmdlOjpleHRlcm5hbFJlcHJlc2VudGF0aW9uKFRleHRTdHJlYW0mIHRzLCBGaWx0
ZXJSZXByZXNlbnRhdGlvbiByZXByZXNlbnRhdGlvbikgY29uc3QKIHsKICAgICB0cyA8PCBpbmRl
bnQgPDwgIltmZU1lcmdlIjsKLSAgICBGaWx0ZXJFZmZlY3Q6OmV4dGVybmFsUmVwcmVzZW50YXRp
b24odHMsIHJlcHJlc2VudGF0aW9uKTsKLSAgICB1bnNpZ25lZCBzaXplID0gbnVtYmVyT2ZFZmZl
Y3RJbnB1dHMoKTsKLSAgICBBU1NFUlQoc2l6ZSA+IDApOwotICAgIHRzIDw8ICIgbWVyZ2VOb2Rl
cz1cIiIgPDwgc2l6ZSA8PCAiXCJdXG4iOwotCi0gICAgVGV4dFN0cmVhbTo6SW5kZW50U2NvcGUg
aW5kZW50U2NvcGUodHMpOwotICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBzaXplOyArK2kp
Ci0gICAgICAgIGlucHV0RWZmZWN0KGkpLT5leHRlcm5hbFJlcHJlc2VudGF0aW9uKHRzLCByZXBy
ZXNlbnRhdGlvbik7CisgICAgeworICAgICAgICBGaWx0ZXJFZmZlY3Q6OmV4dGVybmFsUmVwcmVz
ZW50YXRpb24odHMsIHJlcHJlc2VudGF0aW9uKTsKKworICAgICAgICB0cyA8PCAiIG1lcmdlTm9k
ZXM9XCIiIDw8IG1fbnVtYmVyT2ZFZmZlY3RJbnB1dHMgPDwgIlwiIjsKKyAgICB9CisgICAgdHMg
PDwgIl1cbiI7CiAgICAgcmV0dXJuIHRzOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFTWVyZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVNZXJnZS5oCmluZGV4IGI5ZTE1OGZjZjRhM2I3ZDc3
OGRmMTY2Zjg3MmE5NGZlNzI3NmQwYTIuLjc5MzhiN2MxNmU0OWZjMjQ1ZmQ2NzIxMDA2MTZiYTMx
YmI5YjJkZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Zp
bHRlcnMvRkVNZXJnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Zp
bHRlcnMvRkVNZXJnZS5oCkBAIC0zOCw3ICszOCw3IEBAIHByaXZhdGU6CiAKICAgICBzdGQ6OnVu
aXF1ZV9wdHI8RmlsdGVyRWZmZWN0QXBwbGllcj4gY3JlYXRlQXBwbGllcihjb25zdCBGaWx0ZXIm
KSBjb25zdCBvdmVycmlkZTsKIAotICAgIFdURjo6VGV4dFN0cmVhbSYgZXh0ZXJuYWxSZXByZXNl
bnRhdGlvbihXVEY6OlRleHRTdHJlYW0mLCBSZXByZXNlbnRhdGlvblR5cGUpIGNvbnN0IG92ZXJy
aWRlOworICAgIFdURjo6VGV4dFN0cmVhbSYgZXh0ZXJuYWxSZXByZXNlbnRhdGlvbihXVEY6OlRl
eHRTdHJlYW0mLCBGaWx0ZXJSZXByZXNlbnRhdGlvbikgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICB1
bnNpZ25lZCBtX251bWJlck9mRWZmZWN0SW5wdXRzIHsgMCB9OwogfTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVNb3JwaG9sb2d5LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVNb3JwaG9sb2d5LmNw
cAppbmRleCAyNTk2OWI4MTlhYjYyNzE0ZmIwYmY3MDI5NDY0YTg3NmE3NDZmZTgzLi5jOWQ3Mzg4
M2E1ZDhmNWQ1YzcyMjQ5NGE3YjJhNDY1ZTdmYjNlNGJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFTW9ycGhvbG9neS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRU1vcnBob2xvZ3kuY3BwCkBA
IC0xMDEsMTUgKzEwMSwxNiBAQCBzdGF0aWMgVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3Ry
ZWFtJiB0cywgY29uc3QgTW9ycGhvbG9neU9wZXJhdG9yVHlwZSYgdHlwZQogICAgIHJldHVybiB0
czsKIH0KIAotVGV4dFN0cmVhbSYgRkVNb3JwaG9sb2d5OjpleHRlcm5hbFJlcHJlc2VudGF0aW9u
KFRleHRTdHJlYW0mIHRzLCBSZXByZXNlbnRhdGlvblR5cGUgcmVwcmVzZW50YXRpb24pIGNvbnN0
CitUZXh0U3RyZWFtJiBGRU1vcnBob2xvZ3k6OmV4dGVybmFsUmVwcmVzZW50YXRpb24oVGV4dFN0
cmVhbSYgdHMsIEZpbHRlclJlcHJlc2VudGF0aW9uIHJlcHJlc2VudGF0aW9uKSBjb25zdAogewog
ICAgIHRzIDw8IGluZGVudCA8PCAiW2ZlTW9ycGhvbG9neSI7Ci0gICAgRmlsdGVyRWZmZWN0Ojpl
eHRlcm5hbFJlcHJlc2VudGF0aW9uKHRzLCByZXByZXNlbnRhdGlvbik7Ci0gICAgdHMgPDwgIiBv
cGVyYXRvcj1cIiIgPDwgbW9ycGhvbG9neU9wZXJhdG9yKCkgPDwgIlwiICIKLSAgICAgICA8PCAi
cmFkaXVzPVwiIiA8PCByYWRpdXNYKCkgPDwgIiwgIiA8PCByYWRpdXNZKCkgPDwgIlwiXVxuIjsK
KyAgICB7CisgICAgICAgIEZpbHRlckVmZmVjdDo6ZXh0ZXJuYWxSZXByZXNlbnRhdGlvbih0cywg
cmVwcmVzZW50YXRpb24pOwogCi0gICAgVGV4dFN0cmVhbTo6SW5kZW50U2NvcGUgaW5kZW50U2Nv
cGUodHMpOwotICAgIGlucHV0RWZmZWN0KDApLT5leHRlcm5hbFJlcHJlc2VudGF0aW9uKHRzLCBy
ZXByZXNlbnRhdGlvbik7CisgICAgICAgIHRzIDw8ICIgb3BlcmF0b3I9XCIiIDw8IG1vcnBob2xv
Z3lPcGVyYXRvcigpIDw8ICJcIiI7CisgICAgICAgIHRzIDw8ICIgcmFkaXVzPVwiIiA8PCByYWRp
dXNYKCkgPDwgIiwgIiA8PCByYWRpdXNZKCkgPDwgIlwiIjsKKyAgICB9CisgICAgdHMgPDwgIl1c
biI7CiAgICAgcmV0dXJuIHRzOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFTW9ycGhvbG9neS5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRU1vcnBob2xvZ3kuaAppbmRleCA4MjViZTllNGRlNzk3
ZDY2MzE4NzZjZTkxYTNlZTlhN2EzZGQ2YjgyLi5lNDU0YzM3MWU4NDRjNTZmNzBmMjA5MDVlZTIx
NDZkZTIyZjlkNjMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9maWx0ZXJzL0ZFTW9ycGhvbG9neS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2ZpbHRlcnMvRkVNb3JwaG9sb2d5LmgKQEAgLTU3LDcgKzU3LDcgQEAgcHJpdmF0ZToK
IAogICAgIHN0ZDo6dW5pcXVlX3B0cjxGaWx0ZXJFZmZlY3RBcHBsaWVyPiBjcmVhdGVBcHBsaWVy
KGNvbnN0IEZpbHRlciYpIGNvbnN0IG92ZXJyaWRlOwogCi0gICAgV1RGOjpUZXh0U3RyZWFtJiBl
eHRlcm5hbFJlcHJlc2VudGF0aW9uKFdURjo6VGV4dFN0cmVhbSYsIFJlcHJlc2VudGF0aW9uVHlw
ZSkgY29uc3Qgb3ZlcnJpZGU7CisgICAgV1RGOjpUZXh0U3RyZWFtJiBleHRlcm5hbFJlcHJlc2Vu
dGF0aW9uKFdURjo6VGV4dFN0cmVhbSYsIEZpbHRlclJlcHJlc2VudGF0aW9uKSBjb25zdCBvdmVy
cmlkZTsKIAogICAgIE1vcnBob2xvZ3lPcGVyYXRvclR5cGUgbV90eXBlOwogICAgIGZsb2F0IG1f
cmFkaXVzWDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Zp
bHRlcnMvRkVPZmZzZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmls
dGVycy9GRU9mZnNldC5jcHAKaW5kZXggOWYxYzI3OTcxOTI4ZjIzMjhiZDE4MDY1NGRkMmVhNzFk
M2EyZmNmYy4uYzkxMjk3ZGVlNDM5YzA2NzgzYjIzMTdlZjhlOWZjY2E2MjI3NWU0OCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRU9mZnNldC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRU9mZnNl
dC5jcHAKQEAgLTcwLDE0ICs3MCwxNSBAQCBzdGQ6OnVuaXF1ZV9wdHI8RmlsdGVyRWZmZWN0QXBw
bGllcj4gRkVPZmZzZXQ6OmNyZWF0ZUFwcGxpZXIoY29uc3QgRmlsdGVyJikgY29ucwogICAgIHJl
dHVybiBGaWx0ZXJFZmZlY3RBcHBsaWVyOjpjcmVhdGU8RkVPZmZzZXRTb2Z0d2FyZUFwcGxpZXI+
KCp0aGlzKTsKIH0KIAotVGV4dFN0cmVhbSYgRkVPZmZzZXQ6OmV4dGVybmFsUmVwcmVzZW50YXRp
b24oVGV4dFN0cmVhbSYgdHMsIFJlcHJlc2VudGF0aW9uVHlwZSByZXByZXNlbnRhdGlvbikgY29u
c3QKK1RleHRTdHJlYW0mIEZFT2Zmc2V0OjpleHRlcm5hbFJlcHJlc2VudGF0aW9uKFRleHRTdHJl
YW0mIHRzLCBGaWx0ZXJSZXByZXNlbnRhdGlvbiByZXByZXNlbnRhdGlvbikgY29uc3QKIHsKICAg
ICB0cyA8PCBpbmRlbnQgPDwgIltmZU9mZnNldCI7Ci0gICAgRmlsdGVyRWZmZWN0OjpleHRlcm5h
bFJlcHJlc2VudGF0aW9uKHRzLCByZXByZXNlbnRhdGlvbik7Ci0gICAgdHMgPDwgIiBkeD1cIiIg
PDwgZHgoKSA8PCAiXCIgZHk9XCIiIDw8IGR5KCkgPDwgIlwiXVxuIjsKKyAgICB7CisgICAgICAg
IEZpbHRlckVmZmVjdDo6ZXh0ZXJuYWxSZXByZXNlbnRhdGlvbih0cywgcmVwcmVzZW50YXRpb24p
OwogCi0gICAgVGV4dFN0cmVhbTo6SW5kZW50U2NvcGUgaW5kZW50U2NvcGUodHMpOwotICAgIGlu
cHV0RWZmZWN0KDApLT5leHRlcm5hbFJlcHJlc2VudGF0aW9uKHRzLCByZXByZXNlbnRhdGlvbik7
CisgICAgICAgIHRzIDw8ICIgZHg9XCIiIDw8IGR4KCkgPDwgIlwiIGR5PVwiIiA8PCBkeSgpIDw8
ICJcIiI7CisgICAgfQorICAgIHRzIDw8ICJdXG4iOwogICAgIHJldHVybiB0czsKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRU9mZnNl
dC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRU9mZnNldC5o
CmluZGV4IDZiYTE3ZmVmZjYyMTQ3Yzk3NWZjN2U1OGU2ZmYzMDQ0MzUxMzRhZjEuLjJmMDY3YjNl
YTE5OGQzODNkNmQ4YWY5NzI2YTcyNDg0OGZmOTAyOGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVPZmZzZXQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFT2Zmc2V0LmgKQEAgLTQ4LDcgKzQ4LDcg
QEAgcHJpdmF0ZToKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxGaWx0ZXJFZmZlY3RBcHBsaWVyPiBj
cmVhdGVBcHBsaWVyKGNvbnN0IEZpbHRlciYpIGNvbnN0IG92ZXJyaWRlOwogCi0gICAgV1RGOjpU
ZXh0U3RyZWFtJiBleHRlcm5hbFJlcHJlc2VudGF0aW9uKFdURjo6VGV4dFN0cmVhbSYsIFJlcHJl
c2VudGF0aW9uVHlwZSkgY29uc3Qgb3ZlcnJpZGU7CisgICAgV1RGOjpUZXh0U3RyZWFtJiBleHRl
cm5hbFJlcHJlc2VudGF0aW9uKFdURjo6VGV4dFN0cmVhbSYsIEZpbHRlclJlcHJlc2VudGF0aW9u
KSBjb25zdCBvdmVycmlkZTsKIAogICAgIGZsb2F0IG1fZHg7CiAgICAgZmxvYXQgbV9keTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVTcGVj
dWxhckxpZ2h0aW5nLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRl
cnMvRkVTcGVjdWxhckxpZ2h0aW5nLmNwcAppbmRleCBmYzU2MDZiYjU0NmU0OTRhOTdhMzUxYWEx
NWU1NTgzNjlhODc4NGVlLi43ZWUyNzQ0NWE4YjdjNDllOTNjOGUyNzNlMmUzMWVhYWIwZmU5YmIw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZF
U3BlY3VsYXJMaWdodGluZy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZmlsdGVycy9GRVNwZWN1bGFyTGlnaHRpbmcuY3BwCkBAIC01NSwxNiArNTUsMTcgQEAgYm9v
bCBGRVNwZWN1bGFyTGlnaHRpbmc6OnNldFNwZWN1bGFyRXhwb25lbnQoZmxvYXQgc3BlY3VsYXJF
eHBvbmVudCkKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotVGV4dFN0cmVhbSYgRkVTcGVjdWxhckxp
Z2h0aW5nOjpleHRlcm5hbFJlcHJlc2VudGF0aW9uKFRleHRTdHJlYW0mIHRzLCBSZXByZXNlbnRh
dGlvblR5cGUgcmVwcmVzZW50YXRpb24pIGNvbnN0CitUZXh0U3RyZWFtJiBGRVNwZWN1bGFyTGln
aHRpbmc6OmV4dGVybmFsUmVwcmVzZW50YXRpb24oVGV4dFN0cmVhbSYgdHMsIEZpbHRlclJlcHJl
c2VudGF0aW9uIHJlcHJlc2VudGF0aW9uKSBjb25zdAogewogICAgIHRzIDw8IGluZGVudCA8PCAi
W2ZlU3BlY3VsYXJMaWdodGluZyI7Ci0gICAgRmlsdGVyRWZmZWN0OjpleHRlcm5hbFJlcHJlc2Vu
dGF0aW9uKHRzLCByZXByZXNlbnRhdGlvbik7Ci0gICAgdHMgPDwgIiBzdXJmYWNlU2NhbGU9XCIi
IDw8IG1fc3VyZmFjZVNjYWxlIDw8ICJcIiAiCi0gICAgICAgPDwgInNwZWN1YWxDb25zdGFudD1c
IiIgPDwgbV9zcGVjdWxhckNvbnN0YW50IDw8ICJcIiAiCi0gICAgICAgPDwgInNwZWN1bGFyRXhw
b25lbnQ9XCIiIDw8IG1fc3BlY3VsYXJFeHBvbmVudCA8PCAiXCJdXG4iOwotCi0gICAgVGV4dFN0
cmVhbTo6SW5kZW50U2NvcGUgaW5kZW50U2NvcGUodHMpOwotICAgIGlucHV0RWZmZWN0KDApLT5l
eHRlcm5hbFJlcHJlc2VudGF0aW9uKHRzLCByZXByZXNlbnRhdGlvbik7CisgICAgeworICAgICAg
ICBGaWx0ZXJFZmZlY3Q6OmV4dGVybmFsUmVwcmVzZW50YXRpb24odHMsIHJlcHJlc2VudGF0aW9u
KTsKKyAgICAKKyAgICAgICAgdHMgPDwgIiBzdXJmYWNlU2NhbGU9XCIiIDw8IG1fc3VyZmFjZVNj
YWxlIDw8ICJcIiI7CisgICAgICAgIHRzIDw8ICIgc3BlY3VhbENvbnN0YW50PVwiIiA8PCBtX3Nw
ZWN1bGFyQ29uc3RhbnQgPDwgIlwiIjsKKyAgICAgICAgdHMgPDwgIiBzcGVjdWxhckV4cG9uZW50
PVwiIiA8PCBtX3NwZWN1bGFyRXhwb25lbnQgPDwgIlwiIjsKKyAgICB9CisgICAgdHMgPDwgIl1c
biI7CiAgICAgcmV0dXJuIHRzOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFU3BlY3VsYXJMaWdodGluZy5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRVNwZWN1bGFyTGlnaHRpbmcuaAppbmRleCA4
YTZmYzRiMDM2MDc3MDg4ZWRhZTIzM2ZmNDdmYWRjYjQ1OTNlNmNjLi5hYWNmMDkzOTNiM2NiOTUw
YjBmZDlhMmIwYjNlYWI0NmNiOTEyYTk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFU3BlY3VsYXJMaWdodGluZy5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVTcGVjdWxhckxpZ2h0aW5nLmgKQEAg
LTM2LDcgKzM2LDcgQEAgcHVibGljOgogICAgIGZsb2F0IHNwZWN1bGFyRXhwb25lbnQoKSBjb25z
dCB7IHJldHVybiBtX3NwZWN1bGFyRXhwb25lbnQ7IH0KICAgICBib29sIHNldFNwZWN1bGFyRXhw
b25lbnQoZmxvYXQpOwogCi0gICAgV1RGOjpUZXh0U3RyZWFtJiBleHRlcm5hbFJlcHJlc2VudGF0
aW9uKFdURjo6VGV4dFN0cmVhbSYsIFJlcHJlc2VudGF0aW9uVHlwZSkgY29uc3Qgb3ZlcnJpZGU7
CisgICAgV1RGOjpUZXh0U3RyZWFtJiBleHRlcm5hbFJlcHJlc2VudGF0aW9uKFdURjo6VGV4dFN0
cmVhbSYsIEZpbHRlclJlcHJlc2VudGF0aW9uKSBjb25zdCBvdmVycmlkZTsKIAogICAgIHRlbXBs
YXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFJlZjxGRVNwZWN1bGFyTGln
aHRpbmc+PiBkZWNvZGUoRGVjb2RlciYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFVGlsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFVGlsZS5jcHAKaW5kZXggMTFiNDAzNWM2YTg0YThmOTNl
YTc4MDViMzdlMWJiM2Y1YjdiNzlkNi4uOTJiODI3MGU0ZGJmOTM0YWQ2MzY0NDhhNmNlNGQ2MGU2
ZjQxZGEyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmls
dGVycy9GRVRpbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Zp
bHRlcnMvRkVUaWxlLmNwcApAQCAtNTMsMTUgKzUzLDExIEBAIHN0ZDo6dW5pcXVlX3B0cjxGaWx0
ZXJFZmZlY3RBcHBsaWVyPiBGRVRpbGU6OmNyZWF0ZUFwcGxpZXIoY29uc3QgRmlsdGVyJikgY29u
c3QKICAgICByZXR1cm4gRmlsdGVyRWZmZWN0QXBwbGllcjo6Y3JlYXRlPEZFVGlsZVNvZnR3YXJl
QXBwbGllcj4oKnRoaXMpOwogfQogCi1UZXh0U3RyZWFtJiBGRVRpbGU6OmV4dGVybmFsUmVwcmVz
ZW50YXRpb24oVGV4dFN0cmVhbSYgdHMsIFJlcHJlc2VudGF0aW9uVHlwZSByZXByZXNlbnRhdGlv
bikgY29uc3QKK1RleHRTdHJlYW0mIEZFVGlsZTo6ZXh0ZXJuYWxSZXByZXNlbnRhdGlvbihUZXh0
U3RyZWFtJiB0cywgRmlsdGVyUmVwcmVzZW50YXRpb24gcmVwcmVzZW50YXRpb24pIGNvbnN0CiB7
CiAgICAgdHMgPDwgaW5kZW50IDw8ICJbZmVUaWxlIjsKICAgICBGaWx0ZXJFZmZlY3Q6OmV4dGVy
bmFsUmVwcmVzZW50YXRpb24odHMsIHJlcHJlc2VudGF0aW9uKTsKICAgICB0cyA8PCAiXVxuIjsK
LQotICAgIFRleHRTdHJlYW06OkluZGVudFNjb3BlIGluZGVudFNjb3BlKHRzKTsKLSAgICBpbnB1
dEVmZmVjdCgwKS0+ZXh0ZXJuYWxSZXByZXNlbnRhdGlvbih0cywgcmVwcmVzZW50YXRpb24pOwot
CiAgICAgcmV0dXJuIHRzOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9maWx0ZXJzL0ZFVGlsZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZmlsdGVycy9GRVRpbGUuaAppbmRleCA3ZDM5Nzk4NTc4ODFkYTcyNTc0MWJiOTllMGNh
NjRjNDQ0YTgwMDg2Li4wMGFkZDI4YTU2MjFiYmZjNTc2MzI3MzI5YzRiNjQ2MTNhMDNiYzA4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFVGls
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVUaWxl
LmgKQEAgLTM5LDcgKzM5LDcgQEAgcHJpdmF0ZToKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxGaWx0
ZXJFZmZlY3RBcHBsaWVyPiBjcmVhdGVBcHBsaWVyKGNvbnN0IEZpbHRlciYpIGNvbnN0IG92ZXJy
aWRlOwogCi0gICAgV1RGOjpUZXh0U3RyZWFtJiBleHRlcm5hbFJlcHJlc2VudGF0aW9uKFdURjo6
VGV4dFN0cmVhbSYsIFJlcHJlc2VudGF0aW9uVHlwZSkgY29uc3Qgb3ZlcnJpZGU7CisgICAgV1RG
OjpUZXh0U3RyZWFtJiBleHRlcm5hbFJlcHJlc2VudGF0aW9uKFdURjo6VGV4dFN0cmVhbSYsIEZp
bHRlclJlcHJlc2VudGF0aW9uKSBjb25zdCBvdmVycmlkZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Zp
bHRlcnMvRkVUdXJidWxlbmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2ZpbHRlcnMvRkVUdXJidWxlbmNlLmNwcAppbmRleCA0YjQzZmU5NGZkMzA3NTA5Nzg1OGZlYzZl
MjlkNjE1NWRjNzQ5OWFmLi4yODgxYzliMmM2NWM2NTc3YWU4YTJhZDNjMTRlNWQ3ZDhhNDk3YzYz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZF
VHVyYnVsZW5jZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmls
dGVycy9GRVR1cmJ1bGVuY2UuY3BwCkBAIC0xMjIsMTUgKzEyMiwxOCBAQCBzdGF0aWMgVGV4dFN0
cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgVHVyYnVsZW5jZVR5cGUgdHlwZSkKICAg
ICByZXR1cm4gdHM7CiB9CiAKLVRleHRTdHJlYW0mIEZFVHVyYnVsZW5jZTo6ZXh0ZXJuYWxSZXBy
ZXNlbnRhdGlvbihUZXh0U3RyZWFtJiB0cywgUmVwcmVzZW50YXRpb25UeXBlIHJlcHJlc2VudGF0
aW9uKSBjb25zdAorVGV4dFN0cmVhbSYgRkVUdXJidWxlbmNlOjpleHRlcm5hbFJlcHJlc2VudGF0
aW9uKFRleHRTdHJlYW0mIHRzLCBGaWx0ZXJSZXByZXNlbnRhdGlvbiByZXByZXNlbnRhdGlvbikg
Y29uc3QKIHsKICAgICB0cyA8PCBpbmRlbnQgPDwgIltmZVR1cmJ1bGVuY2UiOwogICAgIEZpbHRl
ckVmZmVjdDo6ZXh0ZXJuYWxSZXByZXNlbnRhdGlvbih0cywgcmVwcmVzZW50YXRpb24pOwotICAg
IHRzIDw8ICIgdHlwZT1cIiIgPDwgdHlwZSgpIDw8ICJcIiAiCi0gICAgICAgPDwgImJhc2VGcmVx
dWVuY3k9XCIiIDw8IGJhc2VGcmVxdWVuY3lYKCkgPDwgIiwgIiA8PCBiYXNlRnJlcXVlbmN5WSgp
IDw8ICJcIiAiCi0gICAgICAgPDwgInNlZWQ9XCIiIDw8IHNlZWQoKSA8PCAiXCIgIgotICAgICAg
IDw8ICJudW1PY3RhdmVzPVwiIiA8PCBudW1PY3RhdmVzKCkgPDwgIlwiICIKLSAgICAgICA8PCAi
c3RpdGNoVGlsZXM9XCIiIDw8IHN0aXRjaFRpbGVzKCkgPDwgIlwiXVxuIjsKKyAgICB7CisgICAg
ICAgIHRzIDw8ICIgdHlwZT1cIiIgPDwgdHlwZSgpIDw8ICJcIiI7CisgICAgICAgIHRzIDw8ICIg
YmFzZUZyZXF1ZW5jeT1cIiIgPDwgYmFzZUZyZXF1ZW5jeVgoKSA8PCAiLCAiIDw8IGJhc2VGcmVx
dWVuY3lZKCkgPDwgIlwiIjsKKyAgICAgICAgdHMgPDwgIiBzZWVkPVwiIiA8PCBzZWVkKCkgPDwg
IlwiIjsKKyAgICAgICAgdHMgPDwgIiBudW1PY3RhdmVzPVwiIiA8PCBudW1PY3RhdmVzKCkgPDwg
IlwiIjsKKyAgICAgICAgdHMgPDwgIiBzdGl0Y2hUaWxlcz1cIiIgPDwgc3RpdGNoVGlsZXMoKSA8
PCAiXCIiOworICAgIH0KKyAgICB0cyA8PCAiXVxuIjsKICAgICByZXR1cm4gdHM7CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVUdXJi
dWxlbmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFVHVy
YnVsZW5jZS5oCmluZGV4IGI4ZTkzYmMwMWIyNWI0MjkwYzRhMTU0MzllZWFjNDcyMGY0ODllODYu
LjZmYzRlMmI3ZmRjODMyODc5MTJjOWE0OGMzNmIxZjg4MTIyNGI3NTcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVUdXJidWxlbmNlLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRVR1cmJ1bGVuY2Uu
aApAQCAtNjcsNyArNjcsNyBAQCBwcml2YXRlOgogCiAgICAgc3RkOjp1bmlxdWVfcHRyPEZpbHRl
ckVmZmVjdEFwcGxpZXI+IGNyZWF0ZUFwcGxpZXIoY29uc3QgRmlsdGVyJikgY29uc3Qgb3ZlcnJp
ZGU7CiAKLSAgICBXVEY6OlRleHRTdHJlYW0mIGV4dGVybmFsUmVwcmVzZW50YXRpb24oV1RGOjpU
ZXh0U3RyZWFtJiwgUmVwcmVzZW50YXRpb25UeXBlKSBjb25zdCBvdmVycmlkZTsKKyAgICBXVEY6
OlRleHRTdHJlYW0mIGV4dGVybmFsUmVwcmVzZW50YXRpb24oV1RGOjpUZXh0U3RyZWFtJiwgRmls
dGVyUmVwcmVzZW50YXRpb24pIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgVHVyYnVsZW5jZVR5cGUg
bV90eXBlOwogICAgIGZsb2F0IG1fYmFzZUZyZXF1ZW5jeVg7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlci5jcHAKaW5kZXggNzMzYWY2NjE5
ZjQxZGQxZTUwOWRiNjhlYTRiZmU4NzVjMjg3NmEzZi4uYmU0ZjI5Y2M1NjlmNmU1NTVjNzk5M2Rj
NWJlOGZiZThjYzdhZTRlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZmlsdGVycy9GaWx0ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2ZpbHRlcnMvRmlsdGVyLmNwcApAQCAtNzEsMjEgKzcxLDEzIEBAIEZsb2F0UmVjdCBG
aWx0ZXI6OmNsaXBUb01heEVmZmVjdFJlY3QoY29uc3QgRmxvYXRSZWN0JiBpbWFnZVJlY3QsIGNv
bnN0IEZsb2F0UmVjCiAKIGJvb2wgRmlsdGVyOjpjbGFtcEZpbHRlclJlZ2lvbklmTmVlZGVkKCkK
IHsKLSAgICBhdXRvIGxhc3RFZmZlY3QgPSB0aGlzLT5sYXN0RWZmZWN0KCk7Ci0gICAgbGFzdEVm
ZmVjdC0+ZGV0ZXJtaW5lRmlsdGVyUHJpbWl0aXZlU3VicmVnaW9uKCp0aGlzKTsKLSAgICAKLSAg
ICBhdXRvIG1heEVmZmVjdFJlY3QgPSB0aGlzLT5tYXhFZmZlY3RSZWN0KGxhc3RFZmZlY3QtPmZp
bHRlclByaW1pdGl2ZVN1YnJlZ2lvbigpKTsKLSAgICBhdXRvIHNjYWxlZE1heEVmZmVjdFJlY3Qg
PSBzY2FsZWRCeUZpbHRlclNjYWxlKG1heEVmZmVjdFJlY3QpOworICAgIGF1dG8gc2NhbGVkRmls
dGVyUmVnaW9uID0gc2NhbGVkQnlGaWx0ZXJTY2FsZShtX2ZpbHRlclJlZ2lvbik7CiAKICAgICBG
bG9hdFNpemUgY2xhbXBpbmdTY2FsZSgxLCAxKTsKLSAgICBpZiAoIUltYWdlQnVmZmVyOjpzaXpl
TmVlZHNDbGFtcGluZyhzY2FsZWRNYXhFZmZlY3RSZWN0LnNpemUoKSwgY2xhbXBpbmdTY2FsZSkp
CisgICAgaWYgKCFJbWFnZUJ1ZmZlcjo6c2l6ZU5lZWRzQ2xhbXBpbmcoc2NhbGVkRmlsdGVyUmVn
aW9uLnNpemUoKSwgY2xhbXBpbmdTY2FsZSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAg
IG1fZmlsdGVyU2NhbGUgPSBtX2ZpbHRlclNjYWxlICogY2xhbXBpbmdTY2FsZTsKLQotICAgIC8v
IEF0IGxlYXN0IG9uZSBGaWx0ZXJFZmZlY3QgaGFzIGEgdG9vIGJpZyBpbWFnZSBzaXplLAotICAg
IC8vIHJlY2FsY3VsYXRlIHRoZSBlZmZlY3Qgc2l6ZXMgd2l0aCBuZXcgc2NhbGUgZmFjdG9ycy4K
LSAgICBsYXN0RWZmZWN0LT5kZXRlcm1pbmVGaWx0ZXJQcmltaXRpdmVTdWJyZWdpb24oKnRoaXMp
OwogICAgIHJldHVybiB0cnVlOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZmlsdGVycy9GaWx0ZXIuaAppbmRleCAxNjJhYmU2NzI5NDE4YjRmM2YwMjU2Mjk4
ZTViNjY4ZWNkYWE4MThiLi4yOWRjN2ZmNzhjNjA2YzdjZjNmYTFhYWJlNjkzN2Q0YzczYmVlODYw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0Zp
bHRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmls
dGVyLmgKQEAgLTYzLDggKzYzLDYgQEAgcHVibGljOgogICAgIEZsb2F0U2l6ZSBzY2FsZWRCeUZp
bHRlclNjYWxlKGNvbnN0IEZsb2F0U2l6ZSYpIGNvbnN0OwogICAgIEZsb2F0UmVjdCBzY2FsZWRC
eUZpbHRlclNjYWxlKGNvbnN0IEZsb2F0UmVjdCYpIGNvbnN0OwogCi0gICAgdmlydHVhbCBzdGQ6
Om9wdGlvbmFsPEZpbHRlckVmZmVjdEdlb21ldHJ5PiBlZmZlY3RHZW9tZXRyeShGaWx0ZXJFZmZl
Y3QmKSBjb25zdCB7IHJldHVybiBzdGQ6Om51bGxvcHQ7IH0KLQogICAgIEZsb2F0UmVjdCBtYXhF
ZmZlY3RSZWN0KGNvbnN0IEZsb2F0UmVjdCYgcHJpbWl0aXZlU3VicmVnaW9uKSBjb25zdDsKICAg
ICBGbG9hdFJlY3QgY2xpcFRvTWF4RWZmZWN0UmVjdChjb25zdCBGbG9hdFJlY3QmIGltYWdlUmVj
dCwgY29uc3QgRmxvYXRSZWN0JiBwcmltaXRpdmVTdWJyZWdpb24pIGNvbnN0OwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlckVmZmVj
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlckVm
ZmVjdC5jcHAKaW5kZXggMGFlOTRkNTA2ZTE0MWVkZjM0MzRhZGI2MjRjODZjNTMyMjI2M2QzMS4u
NDZjMDkwYjMwNzM3MzYyMWM0MTg3M2FlOThkMjg1MjE4ZTJjMzY3NyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXJFZmZlY3QuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyRWZmZWN0
LmNwcApAQCAtMjYsNiArMjYsNyBAQAogCiAjaW5jbHVkZSAiRmlsdGVyLmgiCiAjaW5jbHVkZSAi
RmlsdGVyRWZmZWN0QXBwbGllci5oIgorI2luY2x1ZGUgIkZpbHRlckVmZmVjdEdlb21ldHJ5Lmgi
CiAjaW5jbHVkZSAiSW1hZ2VCdWZmZXIuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVk
ZSA8d3RmL3RleHQvVGV4dFN0cmVhbS5oPgpAQCAtNDAsMjYgKzQxLDIwIEBAIEZsb2F0UmVjdCBG
aWx0ZXJFZmZlY3Q6OmNhbGN1bGF0ZUltYWdlUmVjdChjb25zdCBGaWx0ZXImIGZpbHRlciwgY29u
c3QgRmlsdGVySW1hCiAgICAgcmV0dXJuIGZpbHRlci5jbGlwVG9NYXhFZmZlY3RSZWN0KGltYWdl
UmVjdCwgcHJpbWl0aXZlU3VicmVnaW9uKTsKIH0KIAotRmxvYXRSZWN0IEZpbHRlckVmZmVjdDo6
ZGV0ZXJtaW5lRmlsdGVyUHJpbWl0aXZlU3VicmVnaW9uKGNvbnN0IEZpbHRlciYgZmlsdGVyKQor
RmxvYXRSZWN0IEZpbHRlckVmZmVjdDo6Y2FsY3VsYXRlUHJpbWl0aXZlU3VicmVnaW9uKGNvbnN0
IEZpbHRlciYgZmlsdGVyLCBjb25zdCBGaWx0ZXJJbWFnZVZlY3RvciYgaW5wdXRzLCBjb25zdCBz
dGQ6Om9wdGlvbmFsPEZpbHRlckVmZmVjdEdlb21ldHJ5PiYgZ2VvbWV0cnkpIGNvbnN0CiB7CiAg
ICAgLy8gVGhpcyBmdW5jdGlvbiBpbXBsZW1lbnRzIGh0dHBzOi8vd3d3LnczLm9yZy9UUi9maWx0
ZXItZWZmZWN0cy0xLyNGaWx0ZXJQcmltaXRpdmVTdWJSZWdpb24uCiAgICAgRmxvYXRSZWN0IHBy
aW1pdGl2ZVN1YnJlZ2lvbjsKIAotICAgIC8vIElmIHRoZXJlIGlzIG5vIGlucHV0IGVmZmVjdHMs
IHRha2UgdGhlIGVmZmVjdCBib3VuZGFyaWVzIGFzIHVuaXRlIHJlY3QuCi0gICAgaWYgKCFtX2lu
cHV0RWZmZWN0cy5pc0VtcHR5KCkpIHsKLSAgICAgICAgZm9yIChhdXRvJiBlZmZlY3QgOiBtX2lu
cHV0RWZmZWN0cykgewotICAgICAgICAgICAgYXV0byBpbnB1dFByaW1pdGl2ZVN1YnJlZ2lvbiA9
IGVmZmVjdC0+ZGV0ZXJtaW5lRmlsdGVyUHJpbWl0aXZlU3VicmVnaW9uKGZpbHRlcik7Ci0gICAg
ICAgICAgICBwcmltaXRpdmVTdWJyZWdpb24udW5pdGUoaW5wdXRQcmltaXRpdmVTdWJyZWdpb24p
OwotICAgICAgICB9CisgICAgLy8gSWYgdGhlcmUgaXMgbm8gaW5wdXQgZWZmZWN0cywgdGFrZSB0
aGUgZWZmZWN0IGJvdW5kYXJpZXMgYXMgdW5pdGUgcmVjdC4gRG9uJ3QgdXNlIHRoZSBpbnB1dCdz
IHN1YnJlZ2lvbiBmb3IgRkVUaWxlLgorICAgIGlmICghaW5wdXRzLmlzRW1wdHkoKSAmJiBmaWx0
ZXJUeXBlKCkgIT0gRmlsdGVyRWZmZWN0OjpUeXBlOjpGRVRpbGUpIHsKKyAgICAgICAgZm9yIChh
dXRvJiBpbnB1dCA6IGlucHV0cykKKyAgICAgICAgICAgIHByaW1pdGl2ZVN1YnJlZ2lvbi51bml0
ZShpbnB1dC0+cHJpbWl0aXZlU3VicmVnaW9uKCkpOwogICAgIH0gZWxzZQogICAgICAgICBwcmlt
aXRpdmVTdWJyZWdpb24gPSBmaWx0ZXIuZmlsdGVyUmVnaW9uKCk7CiAKLSAgICAvLyBEb24ndCB1
c2UgdGhlIGlucHV0J3Mgc3VicmVnaW9uIGZvciBGRVRpbGUuCi0gICAgaWYgKGZpbHRlclR5cGUo
KSA9PSBGaWx0ZXJFZmZlY3Q6OlR5cGU6OkZFVGlsZSkKLSAgICAgICAgcHJpbWl0aXZlU3VicmVn
aW9uID0gZmlsdGVyLmZpbHRlclJlZ2lvbigpOwotICAgIAogICAgIC8vIENsaXAgdGhlIHByaW1p
dGl2ZSBzdWJyZWdpb24gdG8gdGhlIGVmZmVjdCBnZW9tZXRyeS4KLSAgICBpZiAoYXV0byBnZW9t
ZXRyeSA9IGZpbHRlci5lZmZlY3RHZW9tZXRyeSgqdGhpcykpIHsKKyAgICBpZiAoZ2VvbWV0cnkp
IHsKICAgICAgICAgaWYgKGF1dG8geCA9IGdlb21ldHJ5LT54KCkpCiAgICAgICAgICAgICBwcmlt
aXRpdmVTdWJyZWdpb24uc2V0WCgqeCk7CiAgICAgICAgIGlmIChhdXRvIHkgPSBnZW9tZXRyeS0+
eSgpKQpAQCAtNzAsNyArNjUsNiBAQCBGbG9hdFJlY3QgRmlsdGVyRWZmZWN0OjpkZXRlcm1pbmVG
aWx0ZXJQcmltaXRpdmVTdWJyZWdpb24oY29uc3QgRmlsdGVyJiBmaWx0ZXIpCiAgICAgICAgICAg
ICBwcmltaXRpdmVTdWJyZWdpb24uc2V0SGVpZ2h0KCpoZWlnaHQpOwogICAgIH0KIAotICAgIHNl
dEZpbHRlclByaW1pdGl2ZVN1YnJlZ2lvbihwcmltaXRpdmVTdWJyZWdpb24pOwogICAgIHJldHVy
biBwcmltaXRpdmVTdWJyZWdpb247CiB9CiAKQEAgLTgwLDcgKzc0LDcgQEAgRmlsdGVyRWZmZWN0
KiBGaWx0ZXJFZmZlY3Q6OmlucHV0RWZmZWN0KHVuc2lnbmVkIG51bWJlcikgY29uc3QKICAgICBy
ZXR1cm4gbV9pbnB1dEVmZmVjdHMuYXQobnVtYmVyKS5nZXQoKTsKIH0KIAotYm9vbCBGaWx0ZXJF
ZmZlY3Q6OmFwcGx5KGNvbnN0IEZpbHRlciYgZmlsdGVyKQorYm9vbCBGaWx0ZXJFZmZlY3Q6OmFw
cGx5KGNvbnN0IEZpbHRlciYgZmlsdGVyLCBjb25zdCBzdGQ6Om9wdGlvbmFsPEZpbHRlckVmZmVj
dEdlb21ldHJ5PiYgZ2VvbWV0cnkpCiB7CiAgICAgaWYgKGhhc1Jlc3VsdCgpKQogICAgICAgICBy
ZXR1cm4gdHJ1ZTsKQEAgLTEwMCwxNiArOTQsMTggQEAgYm9vbCBGaWx0ZXJFZmZlY3Q6OmFwcGx5
KGNvbnN0IEZpbHRlciYgZmlsdGVyKQogICAgIH0KIAogICAgIGF1dG8gaW5wdXRGaWx0ZXJJbWFn
ZXMgPSB0aGlzLT5pbnB1dEZpbHRlckltYWdlcygpOwotICAgIGF1dG8gaW1hZ2VSZWN0ID0gY2Fs
Y3VsYXRlSW1hZ2VSZWN0KGZpbHRlciwgaW5wdXRGaWx0ZXJJbWFnZXMsIG1fZmlsdGVyUHJpbWl0
aXZlU3VicmVnaW9uKTsKKworICAgIGF1dG8gcHJpbWl0aXZlU3VicmVnaW9uID0gY2FsY3VsYXRl
UHJpbWl0aXZlU3VicmVnaW9uKGZpbHRlciwgaW5wdXRGaWx0ZXJJbWFnZXMsIGdlb21ldHJ5KTsK
KyAgICBhdXRvIGltYWdlUmVjdCA9IGNhbGN1bGF0ZUltYWdlUmVjdChmaWx0ZXIsIGlucHV0Rmls
dGVySW1hZ2VzLCBwcmltaXRpdmVTdWJyZWdpb24pOwogICAgIGF1dG8gYWJzb2x1dGVJbWFnZVJl
Y3QgPSBlbmNsb3NpbmdJbnRSZWN0KGZpbHRlci5zY2FsZWRCeUZpbHRlclNjYWxlKGltYWdlUmVj
dCkpOwogCiAgICAgaWYgKGFic29sdXRlSW1hZ2VSZWN0LmlzRW1wdHkoKSB8fCBJbWFnZUJ1ZmZl
cjo6c2l6ZU5lZWRzQ2xhbXBpbmcoYWJzb2x1dGVJbWFnZVJlY3Quc2l6ZSgpKSkKICAgICAgICAg
cmV0dXJuIGZhbHNlOwogICAgIAogICAgIGF1dG8gaXNBbHBoYUltYWdlID0gcmVzdWx0SXNBbHBo
YUltYWdlKGlucHV0RmlsdGVySW1hZ2VzKTsKLSAgICBhdXRvIGltYWdlQ29sb3JTcGFjZSA9IHJl
c3VsdENvbG9yU3BhY2UoKTsKKyAgICBhdXRvIGltYWdlQ29sb3JTcGFjZSA9IHJlc3VsdENvbG9y
U3BhY2UoaW5wdXRGaWx0ZXJJbWFnZXMpOwogCi0gICAgbV9maWx0ZXJJbWFnZSA9IEZpbHRlcklt
YWdlOjpjcmVhdGUobV9maWx0ZXJQcmltaXRpdmVTdWJyZWdpb24sIGltYWdlUmVjdCwgYWJzb2x1
dGVJbWFnZVJlY3QsIGlzQWxwaGFJbWFnZSwgZmlsdGVyLnJlbmRlcmluZ01vZGUoKSwgaW1hZ2VD
b2xvclNwYWNlKTsKKyAgICBtX2ZpbHRlckltYWdlID0gRmlsdGVySW1hZ2U6OmNyZWF0ZShwcmlt
aXRpdmVTdWJyZWdpb24sIGltYWdlUmVjdCwgYWJzb2x1dGVJbWFnZVJlY3QsIGlzQWxwaGFJbWFn
ZSwgZmlsdGVyLnJlbmRlcmluZ01vZGUoKSwgaW1hZ2VDb2xvclNwYWNlKTsKICAgICBpZiAoIW1f
ZmlsdGVySW1hZ2UpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIApAQCAtMTE5LDkgKzExNSw5IEBA
IGJvb2wgRmlsdGVyRWZmZWN0OjphcHBseShjb25zdCBGaWx0ZXImIGZpbHRlcikKIAogICAgIExP
R19XSVRIX1NUUkVBTShGaWx0ZXJzLCBzdHJlYW0KICAgICAgICAgPDwgIkZpbHRlckVmZmVjdCAi
IDw8IGZpbHRlck5hbWUoKSA8PCAiICIgPDwgdGhpcyA8PCAiIGFwcGx5KCk6IgotICAgICAgICA8
PCAiXG4gIGZpbHRlclByaW1pdGl2ZVN1YnJlZ2lvbiAiIDw8IG1fZmlsdGVyUHJpbWl0aXZlU3Vi
cmVnaW9uCisgICAgICAgIDw8ICJcbiAgZmlsdGVyUHJpbWl0aXZlU3VicmVnaW9uICIgPDwgcHJp
bWl0aXZlU3VicmVnaW9uCiAgICAgICAgIDw8ICJcbiAgYWJzb2x1dGVQYWludFJlY3QgIiA8PCBh
YnNvbHV0ZUltYWdlUmVjdAotICAgICAgICA8PCAiXG4gIG1heEVmZmVjdFJlY3QgIiA8PCBmaWx0
ZXIuc2NhbGVkQnlGaWx0ZXJTY2FsZShmaWx0ZXIubWF4RWZmZWN0UmVjdChtX2ZpbHRlclByaW1p
dGl2ZVN1YnJlZ2lvbikpCisgICAgICAgIDw8ICJcbiAgbWF4RWZmZWN0UmVjdCAiIDw8IGZpbHRl
ci5tYXhFZmZlY3RSZWN0KHByaW1pdGl2ZVN1YnJlZ2lvbikKICAgICAgICAgPDwgIlxuICBmaWx0
ZXIgc2NhbGUgIiA8PCBmaWx0ZXIuZmlsdGVyU2NhbGUoKSk7CiAKICAgICByZXR1cm4gYXBwbGll
ci0+YXBwbHkoZmlsdGVyLCBpbnB1dEZpbHRlckltYWdlcywgKm1fZmlsdGVySW1hZ2UpOwpAQCAt
MTY1LDI1ICsxNjEsMjQgQEAgdm9pZCBGaWx0ZXJFZmZlY3Q6OnRyYW5zZm9ybVJlc3VsdENvbG9y
U3BhY2UoY29uc3QgRGVzdGluYXRpb25Db2xvclNwYWNlJiBkZXN0aW4KICAgICBtX2ZpbHRlcklt
YWdlLT50cmFuc2Zvcm1Ub0NvbG9yU3BhY2UoZGVzdGluYXRpb25Db2xvclNwYWNlKTsKIH0KIAot
VGV4dFN0cmVhbSYgRmlsdGVyRWZmZWN0OjpleHRlcm5hbFJlcHJlc2VudGF0aW9uKFRleHRTdHJl
YW0mIHRzLCBSZXByZXNlbnRhdGlvblR5cGUgcmVwcmVzZW50YXRpb25UeXBlKSBjb25zdAorVGV4
dFN0cmVhbSYgRmlsdGVyRWZmZWN0OjpleHRlcm5hbFJlcHJlc2VudGF0aW9uKFRleHRTdHJlYW0m
IHRzLCBGaWx0ZXJSZXByZXNlbnRhdGlvbiByZXByZXNlbnRhdGlvbikgY29uc3QKIHsKICAgICAv
LyBGSVhNRTogV2Ugc2hvdWxkIGR1bXAgdGhlIHN1YlJlZ2lvbnMgb2YgdGhlIGZpbHRlciBwcmlt
aXRpdmVzIGhlcmUgbGF0ZXIuIFRoaXMgaXNuJ3QKICAgICAvLyBwb3NzaWJsZSBhdCB0aGUgbW9t
ZW50LCBiZWNhdXNlIHdlIG5lZWQgbW9yZSBkZXRhaWxlZCBpbmZvcm1hdGlvbnMgZnJvbSB0aGUg
dGFyZ2V0IG9iamVjdC4KICAgICAKLSAgICBpZiAocmVwcmVzZW50YXRpb25UeXBlID09IFJlcHJl
c2VudGF0aW9uVHlwZTo6RGVidWdnaW5nKSB7CisgICAgaWYgKHJlcHJlc2VudGF0aW9uID09IEZp
bHRlclJlcHJlc2VudGF0aW9uOjpEZWJ1Z2dpbmcpIHsKICAgICAgICAgVGV4dFN0cmVhbTo6SW5k
ZW50U2NvcGUgaW5kZW50U2NvcGUodHMpOwogICAgICAgICB0cy5kdW1wUHJvcGVydHkoIm9wZXJh
dGluZyBjb2xvcnNwYWNlIiwgb3BlcmF0aW5nQ29sb3JTcGFjZSgpKTsKLSAgICAgICAgdHMuZHVt
cFByb3BlcnR5KCJyZXN1bHQgY29sb3JzcGFjZSIsIHJlc3VsdENvbG9yU3BhY2UoKSk7CiAgICAg
ICAgIHRzIDw8ICJcbiIgPDwgaW5kZW50OwogICAgIH0KICAgICByZXR1cm4gdHM7CiB9CiAKLVRl
eHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIGNvbnN0IEZpbHRlckVmZmVjdCYg
ZmlsdGVyKQorVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgY29uc3QgRmls
dGVyRWZmZWN0JiBlZmZlY3QpCiB7CiAgICAgLy8gVXNlIGEgbmV3IHN0cmVhbSBiZWNhdXNlIHdl
IHdhbnQgbXVsdGlsaW5lIG1vZGUgZm9yIGxvZ2dpbmcgZmlsdGVycy4KICAgICBUZXh0U3RyZWFt
IGZpbHRlclN0cmVhbTsKLSAgICBmaWx0ZXIuZXh0ZXJuYWxSZXByZXNlbnRhdGlvbihmaWx0ZXJT
dHJlYW0sIEZpbHRlckVmZmVjdDo6UmVwcmVzZW50YXRpb25UeXBlOjpEZWJ1Z2dpbmcpOworICAg
IGVmZmVjdC5leHRlcm5hbFJlcHJlc2VudGF0aW9uKGZpbHRlclN0cmVhbSwgRmlsdGVyUmVwcmVz
ZW50YXRpb246OkRlYnVnZ2luZyk7CiAgICAgCiAgICAgcmV0dXJuIHRzIDw8IGZpbHRlclN0cmVh
bS5yZWxlYXNlKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9maWx0ZXJzL0ZpbHRlckVmZmVjdC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZmlsdGVycy9GaWx0ZXJFZmZlY3QuaAppbmRleCA4MjdlYjVkYjgxZTkxYzkyMzY5Njll
YTVmZDkyMDJhOGNiOTViMzVjLi42NDk3YTJkMWRmZTUwNDcxNWE1ZjQ4Y2E2ODNmOGMxOWY4ZmZk
MGE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJz
L0ZpbHRlckVmZmVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Zp
bHRlcnMvRmlsdGVyRWZmZWN0LmgKQEAgLTM3LDYgKzM3LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiBjbGFzcyBGaWx0ZXI7CiBjbGFzcyBGaWx0ZXJFZmZlY3RBcHBsaWVyOworY2xhc3MgRmls
dGVyRWZmZWN0R2VvbWV0cnk7CiAKIGNsYXNzIEZpbHRlckVmZmVjdCA6IHB1YmxpYyBGaWx0ZXJG
dW5jdGlvbiB7CiBwdWJsaWM6CkBAIC00NSw1OCArNDYsNTAgQEAgcHVibGljOgogICAgIGJvb2wg
aGFzUmVzdWx0KCkgY29uc3QgeyByZXR1cm4gbV9maWx0ZXJJbWFnZTsgfQogCiAgICAgRmlsdGVy
SW1hZ2UqIGZpbHRlckltYWdlKCkgY29uc3QgeyByZXR1cm4gbV9maWx0ZXJJbWFnZS5nZXQoKTsg
fQotICAgIEZpbHRlckltYWdlVmVjdG9yIGlucHV0RmlsdGVySW1hZ2VzKCkgY29uc3Q7Ci0KLSAg
ICB2b2lkIGNvcnJlY3RQcmVtdWx0aXBsaWVkUmVzdWx0SWZOZWVkZWQoKTsKIAogICAgIEZpbHRl
ckVmZmVjdFZlY3RvciYgaW5wdXRFZmZlY3RzKCkgeyByZXR1cm4gbV9pbnB1dEVmZmVjdHM7IH0K
ICAgICBGaWx0ZXJFZmZlY3QqIGlucHV0RWZmZWN0KHVuc2lnbmVkKSBjb25zdDsKICAgICB1bnNp
Z25lZCBudW1iZXJPZkVmZmVjdElucHV0cygpIGNvbnN0IHsgcmV0dXJuIG1faW5wdXRFZmZlY3Rz
LnNpemUoKTsgfQogCi0gICAgLy8gUmVjdXJzZXMgb24gaW5wdXRzLgotICAgIEZsb2F0UmVjdCBk
ZXRlcm1pbmVGaWx0ZXJQcmltaXRpdmVTdWJyZWdpb24oY29uc3QgRmlsdGVyJik7CisgICAgdm9p
ZCB0cmFuc2Zvcm1SZXN1bHRDb2xvclNwYWNlKGNvbnN0IERlc3RpbmF0aW9uQ29sb3JTcGFjZSYp
OworCisgICAgYm9vbCBhcHBseShjb25zdCBGaWx0ZXImLCBjb25zdCBzdGQ6Om9wdGlvbmFsPEZp
bHRlckVmZmVjdEdlb21ldHJ5PiYgPSBzdGQ6Om51bGxvcHQpIG92ZXJyaWRlOworCisgICAgY29u
c3QgRGVzdGluYXRpb25Db2xvclNwYWNlJiBvcGVyYXRpbmdDb2xvclNwYWNlKCkgY29uc3QgeyBy
ZXR1cm4gbV9vcGVyYXRpbmdDb2xvclNwYWNlOyB9CisgICAgdmlydHVhbCB2b2lkIHNldE9wZXJh
dGluZ0NvbG9yU3BhY2UoY29uc3QgRGVzdGluYXRpb25Db2xvclNwYWNlJiBjb2xvclNwYWNlKSB7
IG1fb3BlcmF0aW5nQ29sb3JTcGFjZSA9IGNvbG9yU3BhY2U7IH0KIAotICAgIGJvb2wgYXBwbHko
Y29uc3QgRmlsdGVyJikgb3ZlcnJpZGU7CisgICAgV1RGOjpUZXh0U3RyZWFtJiBleHRlcm5hbFJl
cHJlc2VudGF0aW9uKFdURjo6VGV4dFN0cmVhbSYsIEZpbHRlclJlcHJlc2VudGF0aW9uKSBjb25z
dCBvdmVycmlkZTsKKworcHJvdGVjdGVkOgorICAgIHVzaW5nIEZpbHRlckZ1bmN0aW9uOjpGaWx0
ZXJGdW5jdGlvbjsKKworICAgIHZpcnR1YWwgYm9vbCBtYXlQcm9kdWNlSW52YWxpZFByZW11bHRp
cGxpZWRQaXhlbHMoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorCisgICAgdm9pZCBjb3JyZWN0
UHJlbXVsdGlwbGllZFJlc3VsdElmTmVlZGVkKCk7CiAKICAgICAvLyBDb3JyZWN0IGFueSBpbnZh
bGlkIHBpeGVscywgaWYgbmVjZXNzYXJ5LCBpbiB0aGUgcmVzdWx0IG9mIGEgZmlsdGVyIG9wZXJh
dGlvbi4KICAgICAvLyBUaGlzIG1ldGhvZCBpcyB1c2VkIHRvIGVuc3VyZSB2YWxpZCBwaXhlbCB2
YWx1ZXMgb24gZmlsdGVyIGlucHV0cyBhbmQgdGhlIGZpbmFsIHJlc3VsdC4KICAgICAvLyBPbmx5
IHRoZSBhcml0aG1ldGljIGNvbXBvc2l0ZSBmaWx0ZXIgZXZlciBuZWVkcyB0byBwZXJmb3JtIGNv
cnJlY3Rpb24uCiAgICAgdmlydHVhbCB2b2lkIGNvcnJlY3RGaWx0ZXJSZXN1bHRJZk5lZWRlZCgp
IHsgfQogCi0gICAgZW51bSBjbGFzcyBSZXByZXNlbnRhdGlvblR5cGUgeyBUZXN0T3V0cHV0LCBE
ZWJ1Z2dpbmcgfTsKLSAgICB2aXJ0dWFsIFdURjo6VGV4dFN0cmVhbSYgZXh0ZXJuYWxSZXByZXNl
bnRhdGlvbihXVEY6OlRleHRTdHJlYW0mLCBSZXByZXNlbnRhdGlvblR5cGUgPSBSZXByZXNlbnRh
dGlvblR5cGU6OlRlc3RPdXRwdXQpIGNvbnN0OworICAgIHZpcnR1YWwgdm9pZCB0cmFuc2Zvcm1S
ZXN1bHRDb2xvclNwYWNlKEZpbHRlckVmZmVjdCogaW4sIGNvbnN0IGludCkgeyBpbi0+dHJhbnNm
b3JtUmVzdWx0Q29sb3JTcGFjZShtX29wZXJhdGluZ0NvbG9yU3BhY2UpOyB9CiAKLSAgICBGbG9h
dFJlY3QgZmlsdGVyUHJpbWl0aXZlU3VicmVnaW9uKCkgY29uc3QgeyByZXR1cm4gbV9maWx0ZXJQ
cmltaXRpdmVTdWJyZWdpb247IH0KLSAgICB2b2lkIHNldEZpbHRlclByaW1pdGl2ZVN1YnJlZ2lv
bihjb25zdCBGbG9hdFJlY3QmIGZpbHRlclByaW1pdGl2ZVN1YnJlZ2lvbikgeyBtX2ZpbHRlclBy
aW1pdGl2ZVN1YnJlZ2lvbiA9IGZpbHRlclByaW1pdGl2ZVN1YnJlZ2lvbjsgfQorICAgIEZpbHRl
ckltYWdlVmVjdG9yIGlucHV0RmlsdGVySW1hZ2VzKCkgY29uc3Q7CisgICAgCisgICAgRmxvYXRS
ZWN0IGNhbGN1bGF0ZVByaW1pdGl2ZVN1YnJlZ2lvbihjb25zdCBGaWx0ZXImLCBjb25zdCBGaWx0
ZXJJbWFnZVZlY3RvciYsIGNvbnN0IHN0ZDo6b3B0aW9uYWw8RmlsdGVyRWZmZWN0R2VvbWV0cnk+
JikgY29uc3Q7CiAKICAgICB2aXJ0dWFsIEZsb2F0UmVjdCBjYWxjdWxhdGVJbWFnZVJlY3QoY29u
c3QgRmlsdGVyJiwgY29uc3QgRmlsdGVySW1hZ2VWZWN0b3ImIGlucHV0cywgY29uc3QgRmxvYXRS
ZWN0JiBwcmltaXRpdmVTdWJyZWdpb24pIGNvbnN0OwogCi0gICAgY29uc3QgRGVzdGluYXRpb25D
b2xvclNwYWNlJiBvcGVyYXRpbmdDb2xvclNwYWNlKCkgY29uc3QgeyByZXR1cm4gbV9vcGVyYXRp
bmdDb2xvclNwYWNlOyB9Ci0gICAgdmlydHVhbCB2b2lkIHNldE9wZXJhdGluZ0NvbG9yU3BhY2Uo
Y29uc3QgRGVzdGluYXRpb25Db2xvclNwYWNlJiBjb2xvclNwYWNlKSB7IG1fb3BlcmF0aW5nQ29s
b3JTcGFjZSA9IGNvbG9yU3BhY2U7IH0KLQogICAgIC8vIFNvbGlkIGJsYWNrIGltYWdlIHdpdGgg
ZGlmZmVyZW50IGFscGhhIHZhbHVlcy4KICAgICB2aXJ0dWFsIGJvb2wgcmVzdWx0SXNBbHBoYUlt
YWdlKGNvbnN0IEZpbHRlckltYWdlVmVjdG9yJikgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KLSAg
ICB2aXJ0dWFsIGNvbnN0IERlc3RpbmF0aW9uQ29sb3JTcGFjZSYgcmVzdWx0Q29sb3JTcGFjZSgp
IGNvbnN0IHsgcmV0dXJuIG1fb3BlcmF0aW5nQ29sb3JTcGFjZTsgfQorICAgIHZpcnR1YWwgY29u
c3QgRGVzdGluYXRpb25Db2xvclNwYWNlJiByZXN1bHRDb2xvclNwYWNlKGNvbnN0IEZpbHRlcklt
YWdlVmVjdG9yJikgY29uc3QgeyByZXR1cm4gbV9vcGVyYXRpbmdDb2xvclNwYWNlOyB9CiAKLSAg
ICB2aXJ0dWFsIHZvaWQgdHJhbnNmb3JtUmVzdWx0Q29sb3JTcGFjZShGaWx0ZXJFZmZlY3QqIGlu
LCBjb25zdCBpbnQpIHsgaW4tPnRyYW5zZm9ybVJlc3VsdENvbG9yU3BhY2UobV9vcGVyYXRpbmdD
b2xvclNwYWNlKTsgfQotICAgIHZvaWQgdHJhbnNmb3JtUmVzdWx0Q29sb3JTcGFjZShjb25zdCBE
ZXN0aW5hdGlvbkNvbG9yU3BhY2UmKTsKLQotcHJvdGVjdGVkOgotICAgIHVzaW5nIEZpbHRlckZ1
bmN0aW9uOjpGaWx0ZXJGdW5jdGlvbjsKLQotICAgIHZpcnR1YWwgYm9vbCBtYXlQcm9kdWNlSW52
YWxpZFByZW11bHRpcGxpZWRQaXhlbHMoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQotICAgIAog
ICAgIHZpcnR1YWwgc3RkOjp1bmlxdWVfcHRyPEZpbHRlckVmZmVjdEFwcGxpZXI+IGNyZWF0ZUFw
cGxpZXIoY29uc3QgRmlsdGVyJikgY29uc3QgPSAwOwogCi1wcml2YXRlOgogICAgIEZpbHRlckVm
ZmVjdFZlY3RvciBtX2lucHV0RWZmZWN0czsKIAogICAgIFJlZlB0cjxGaWx0ZXJJbWFnZT4gbV9m
aWx0ZXJJbWFnZTsKIAotICAgIC8vIFRoZSBzdWJyZWdpb24gb2YgYSBmaWx0ZXIgcHJpbWl0aXZl
IGFjY29yZGluZyB0byB0aGUgU1ZHIEZpbHRlciBzcGVjaWZpY2F0aW9uIGluIGxvY2FsIGNvb3Jk
aW5hdGVzLgotICAgIC8vIFRoaXMgaXMgU1ZHIHNwZWNpZmljIGFuZCBuZWVkcyB0byBtb3ZlIHRv
IFJlbmRlclNWR1Jlc291cmNlRmlsdGVyUHJpbWl0aXZlLgotICAgIEZsb2F0UmVjdCBtX2ZpbHRl
clByaW1pdGl2ZVN1YnJlZ2lvbjsKLQogICAgIERlc3RpbmF0aW9uQ29sb3JTcGFjZSBtX29wZXJh
dGluZ0NvbG9yU3BhY2UgeyBEZXN0aW5hdGlvbkNvbG9yU3BhY2U6OlNSR0IoKSB9OwogfTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0
ZXJGdW5jdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9G
aWx0ZXJGdW5jdGlvbi5oCmluZGV4IGQyOWEzYTYwN2FhNjhmZDVmZDhhODdkZTE5NGRmNmE1NmI1
YWY0OWUuLmUwYjBmYWZiMGM2MTVlZmYwOGU2ZWU0NWNmZmE1OGEzNDRjY2RhNWQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyRnVuY3Rp
b24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRl
ckZ1bmN0aW9uLmgKQEAgLTI1LDYgKzI1LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRl
ICJGaWx0ZXJFZmZlY3RHZW9tZXRyeS5oIgogI2luY2x1ZGUgIkZsb2F0UmVjdC5oIgogI2luY2x1
ZGUgIkludFJlY3RFeHRlbnQuaCIKICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgpAQCAtMzgs
NiArMzksMTEgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBGaWx0ZXI7CiAKK2VudW0g
Y2xhc3MgRmlsdGVyUmVwcmVzZW50YXRpb24gOiB1aW50OF90IHsKKyAgICBUZXN0T3V0cHV0LAor
ICAgIERlYnVnZ2luZworfTsKKwogY2xhc3MgRmlsdGVyRnVuY3Rpb24gOiBwdWJsaWMgUmVmQ291
bnRlZDxGaWx0ZXJGdW5jdGlvbj4gewogcHVibGljOgogICAgIGVudW0gY2xhc3MgVHlwZSA6IHVp
bnQ4X3QgewpAQCAtODgsMTAgKzk0LDEyIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgc3Vw
cG9ydHNDb3JlSW1hZ2VSZW5kZXJpbmcoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogI2VuZGlm
CiAKLSAgICB2aXJ0dWFsIGJvb2wgYXBwbHkoY29uc3QgRmlsdGVyJikgeyByZXR1cm4gZmFsc2U7
IH0KKyAgICB2aXJ0dWFsIGJvb2wgYXBwbHkoY29uc3QgRmlsdGVyJiwgY29uc3Qgc3RkOjpvcHRp
b25hbDxGaWx0ZXJFZmZlY3RHZW9tZXRyeT4mID0gc3RkOjpudWxsb3B0KSB7IHJldHVybiBmYWxz
ZTsgfQogICAgIHZpcnR1YWwgSW50T3V0c2V0cyBvdXRzZXRzKCkgY29uc3QgeyByZXR1cm4geyB9
OyB9CiAgICAgdmlydHVhbCB2b2lkIGNsZWFyUmVzdWx0KCkgeyB9CiAKKyAgICB2aXJ0dWFsIFRl
eHRTdHJlYW0mIGV4dGVybmFsUmVwcmVzZW50YXRpb24oVGV4dFN0cmVhbSYsIEZpbHRlclJlcHJl
c2VudGF0aW9uID0gRmlsdGVyUmVwcmVzZW50YXRpb246OlRlc3RPdXRwdXQpIGNvbnN0ID0gMDsK
KwogcHJpdmF0ZToKICAgICBUeXBlIG1fZmlsdGVyVHlwZTsKIH07CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1NvdXJjZUFscGhhLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvU291cmNlQWxwaGEuY3BwCmlu
ZGV4IDYyMDUxNDYzYzcxZjUzZmQ4MzgxMmE3N2EyZjJiOGE0OGJlYTJiM2EuLjE0N2FmZTA0M2Rj
ZTFkODFiZThjMjFmMjk2ZDNiMjVhMzI5ZTY4YjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvU291cmNlQWxwaGEuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvU291cmNlQWxwaGEuY3BwCkBAIC00OSw3
ICs0OSw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxGaWx0ZXJFZmZlY3RBcHBsaWVyPiBTb3VyY2VBbHBo
YTo6Y3JlYXRlQXBwbGllcihjb25zdCBGaWx0ZXImKSBjCiAgICAgcmV0dXJuIEZpbHRlckVmZmVj
dEFwcGxpZXI6OmNyZWF0ZTxTb3VyY2VBbHBoYVNvZnR3YXJlQXBwbGllcj4oKnRoaXMpOwogfQog
Ci1UZXh0U3RyZWFtJiBTb3VyY2VBbHBoYTo6ZXh0ZXJuYWxSZXByZXNlbnRhdGlvbihUZXh0U3Ry
ZWFtJiB0cywgUmVwcmVzZW50YXRpb25UeXBlKSBjb25zdAorVGV4dFN0cmVhbSYgU291cmNlQWxw
aGE6OmV4dGVybmFsUmVwcmVzZW50YXRpb24oVGV4dFN0cmVhbSYgdHMsIEZpbHRlclJlcHJlc2Vu
dGF0aW9uKSBjb25zdAogewogICAgIHRzIDw8IGluZGVudCA8PCAiW1NvdXJjZUFscGhhXVxuIjsK
ICAgICByZXR1cm4gdHM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9maWx0ZXJzL1NvdXJjZUFscGhhLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9maWx0ZXJzL1NvdXJjZUFscGhhLmgKaW5kZXggMTA1NjE2N2UzY2Y5YWE2NDY2YzUzNzgz
ZDk0Mzk2NWVhMmMwZTFmMi4uZTIxMWUxYWZlZDkzOWM5YzFlMzM1N2VjNTAyNWI4ODZkYjlmMjhh
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9T
b3VyY2VBbHBoYS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRl
cnMvU291cmNlQWxwaGEuaApAQCAtMzcsNyArMzcsNyBAQCBwcml2YXRlOgogCiAgICAgc3RkOjp1
bmlxdWVfcHRyPEZpbHRlckVmZmVjdEFwcGxpZXI+IGNyZWF0ZUFwcGxpZXIoY29uc3QgRmlsdGVy
JikgY29uc3Qgb3ZlcnJpZGU7CiAKLSAgICBXVEY6OlRleHRTdHJlYW0mIGV4dGVybmFsUmVwcmVz
ZW50YXRpb24oV1RGOjpUZXh0U3RyZWFtJiwgUmVwcmVzZW50YXRpb25UeXBlKSBjb25zdCBvdmVy
cmlkZTsKKyAgICBXVEY6OlRleHRTdHJlYW0mIGV4dGVybmFsUmVwcmVzZW50YXRpb24oV1RGOjpU
ZXh0U3RyZWFtJiwgRmlsdGVyUmVwcmVzZW50YXRpb24pIGNvbnN0IG92ZXJyaWRlOwogfTsKIAog
fSAvL25hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9maWx0ZXJzL1NvdXJjZUdyYXBoaWMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9Tb3VyY2VHcmFwaGljLmNwcAppbmRleCA4ODZiNzcyYWFk
YjAyNmFkMjFkOWFiNWUzN2M1OGY3Zjg5NGJiZWY3Li42NWU4NGJjNzcwZmRlMjFiMDRiOGMxZjI1
ZTdhNDU0ZjQ5ZDU2Njc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9maWx0ZXJzL1NvdXJjZUdyYXBoaWMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2ZpbHRlcnMvU291cmNlR3JhcGhpYy5jcHAKQEAgLTU2LDcgKzU2LDcgQEAg
c3RkOjp1bmlxdWVfcHRyPEZpbHRlckVmZmVjdEFwcGxpZXI+IFNvdXJjZUdyYXBoaWM6OmNyZWF0
ZUFwcGxpZXIoY29uc3QgRmlsdGVyJgogICAgIHJldHVybiBGaWx0ZXJFZmZlY3RBcHBsaWVyOjpj
cmVhdGU8U291cmNlR3JhcGhpY1NvZnR3YXJlQXBwbGllcj4oKnRoaXMpOwogfQogCi1UZXh0U3Ry
ZWFtJiBTb3VyY2VHcmFwaGljOjpleHRlcm5hbFJlcHJlc2VudGF0aW9uKFRleHRTdHJlYW0mIHRz
LCBSZXByZXNlbnRhdGlvblR5cGUpIGNvbnN0CitUZXh0U3RyZWFtJiBTb3VyY2VHcmFwaGljOjpl
eHRlcm5hbFJlcHJlc2VudGF0aW9uKFRleHRTdHJlYW0mIHRzLCBGaWx0ZXJSZXByZXNlbnRhdGlv
bikgY29uc3QKIHsKICAgICB0cyA8PCBpbmRlbnQgPDwgIltTb3VyY2VHcmFwaGljXVxuIjsKICAg
ICByZXR1cm4gdHM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9maWx0ZXJzL1NvdXJjZUdyYXBoaWMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2ZpbHRlcnMvU291cmNlR3JhcGhpYy5oCmluZGV4IDMwMzNkYjAyMTBkM2UxZjEyM2I0Yjli
NWQ3OTM1YjFhYzg0ZDBiMTkuLmVlOTJlOTM2MzM1N2UwY2FmMjBjM2I0ZDRiZjk1OTI4ZWMwMGY4
YWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMv
U291cmNlR3JhcGhpYy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Zp
bHRlcnMvU291cmNlR3JhcGhpYy5oCkBAIC00Miw3ICs0Miw3IEBAIHByaXZhdGU6CiAKICAgICBz
dGQ6OnVuaXF1ZV9wdHI8RmlsdGVyRWZmZWN0QXBwbGllcj4gY3JlYXRlQXBwbGllcihjb25zdCBG
aWx0ZXImKSBjb25zdCBvdmVycmlkZTsKIAotICAgIFdURjo6VGV4dFN0cmVhbSYgZXh0ZXJuYWxS
ZXByZXNlbnRhdGlvbihXVEY6OlRleHRTdHJlYW0mLCBSZXByZXNlbnRhdGlvblR5cGUpIGNvbnN0
IG92ZXJyaWRlOworICAgIFdURjo6VGV4dFN0cmVhbSYgZXh0ZXJuYWxSZXByZXNlbnRhdGlvbihX
VEY6OlRleHRTdHJlYW0mLCBGaWx0ZXJSZXByZXNlbnRhdGlvbikgY29uc3Qgb3ZlcnJpZGU7CiB9
OwogCiB9IC8vbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9DU1NGaWx0ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0NTU0ZpbHRl
ci5jcHAKaW5kZXggMTFjNDlhZmE1N2ZkMjNmZWEwOTliYjYwYjI2MGM5YzdlOGY4ZDNiNi4uNGUx
ZjZmZDUwNTEzODU5N2I1YzUwNGZkYmIwN2ZjODY2MjE4OWU0MSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL0NTU0ZpbHRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL0NTU0ZpbHRlci5jcHAKQEAgLTQwNCw0ICs0MDQsMjIgQEAgSW50T3V0c2V0cyBDU1NG
aWx0ZXI6Om91dHNldHMoKSBjb25zdAogICAgIHJldHVybiBtX291dHNldHM7CiB9CiAKK1RleHRT
dHJlYW0mIENTU0ZpbHRlcjo6ZXh0ZXJuYWxSZXByZXNlbnRhdGlvbihUZXh0U3RyZWFtJiB0cywg
RmlsdGVyUmVwcmVzZW50YXRpb24gcmVwcmVzZW50YXRpb24pIGNvbnN0Cit7CisgICAgYXV0byBl
bmQgPSBtX2Z1bmN0aW9ucy5yZW5kKCk7CisgICAgdW5zaWduZWQgbGV2ZWwgPSAwOworCisgICAg
Zm9yIChhdXRvIGl0ID0gbV9mdW5jdGlvbnMucmJlZ2luKCk7IGl0ICE9IGVuZDsgKytpdCkgewor
ICAgICAgICBhdXRvIGZ1bmN0aW9uID0gKml0OworICAgICAgICBpZiAoZnVuY3Rpb24tPmZpbHRl
clR5cGUoKSA9PSBGaWx0ZXJFZmZlY3Q6OlR5cGU6OlNvdXJjZUFscGhhKSB7CisgICAgICAgICAg
ICBBU1NFUlQoaXQgIT0gZW5kKTsKKyAgICAgICAgICAgICsraXQ7CisgICAgICAgIH0KKyAgICAg
ICAgVGV4dFN0cmVhbTo6SW5kZW50U2NvcGUgaW5kZW50U2NvcGUodHMsIGxldmVsKyspOworICAg
ICAgICBmdW5jdGlvbi0+ZXh0ZXJuYWxSZXByZXNlbnRhdGlvbih0cywgcmVwcmVzZW50YXRpb24p
OworICAgIH0KKworICAgIHJldHVybiB0czsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0NTU0ZpbHRlci5oIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL0NTU0ZpbHRlci5oCmluZGV4IGE3ZjBlNTNlZGQzZWUzMDk1YjI4
ZTQ0NjRmZDQ5NjNkZjczNDA5ZjAuLjUxYmYyYmYzOGFiMDhlZjFiNTZhNTZhNWZkNWFkMmNjMjZh
YjM1NmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9DU1NGaWx0ZXIuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvQ1NTRmlsdGVyLmgKQEAgLTY4LDYgKzY4LDgg
QEAgcHJpdmF0ZToKICAgICBib29sIHN1cHBvcnRzQ29yZUltYWdlUmVuZGVyaW5nKCkgY29uc3Qg
ZmluYWw7CiAjZW5kaWYKIAorICAgIFRleHRTdHJlYW0mIGV4dGVybmFsUmVwcmVzZW50YXRpb24o
VGV4dFN0cmVhbSYsIEZpbHRlclJlcHJlc2VudGF0aW9uKSBjb25zdCBmaW5hbDsKKwogICAgIGJv
b2wgbV9oYXNGaWx0ZXJUaGF0TW92ZXNQaXhlbHMgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9oYXNG
aWx0ZXJUaGF0U2hvdWxkQmVSZXN0cmljdGVkQnlTZWN1cml0eU9yaWdpbiB7IGZhbHNlIH07CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHUmVuZGVyVHJlZUFz
VGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1JlbmRlclRyZWVBc1Rl
eHQuY3BwCmluZGV4IGEyN2FjNGZjMzY1MTYzMjYxMmI5NjQ2ODJkOWI0YjQ5YzA5ODg4MzYuLjk5
N2YzYTJlOTNhMjMzYjQ0Yzk5ZDNiN2JmNmE4NmI2ZjlhOTA3NTYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHUmVuZGVyVHJlZUFzVGV4dC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdSZW5kZXJUcmVlQXNUZXh0LmNwcApAQCAtNDM0
LDkgKzQzNCw3IEBAIHZvaWQgd3JpdGVTVkdSZXNvdXJjZUNvbnRhaW5lcihUZXh0U3RyZWFtJiB0
cywgY29uc3QgUmVuZGVyU1ZHUmVzb3VyY2VDb250YWluZXImCiAgICAgICAgIGF1dG8gZHVtbXlG
aWx0ZXIgPSBTVkdGaWx0ZXI6OmNyZWF0ZShmaWx0ZXIuZmlsdGVyRWxlbWVudCgpLCBidWlsZGVy
LCBSZW5kZXJpbmdNb2RlOjpVbmFjY2VsZXJhdGVkLCBkdW1teVNjYWxlLCBkdW1teVJlY3QsIGR1
bW15UmVjdCk7CiAgICAgICAgIGlmIChkdW1teUZpbHRlcikgewogICAgICAgICAgICAgVGV4dFN0
cmVhbTo6SW5kZW50U2NvcGUgaW5kZW50U2NvcGUodHMpOwotCi0gICAgICAgICAgICBpZiAoYXV0
byBsYXN0RWZmZWN0ID0gZHVtbXlGaWx0ZXItPmxhc3RFZmZlY3QoKSkKLSAgICAgICAgICAgICAg
ICBsYXN0RWZmZWN0LT5leHRlcm5hbFJlcHJlc2VudGF0aW9uKHRzKTsKKyAgICAgICAgICAgIGR1
bW15RmlsdGVyLT5leHRlcm5hbFJlcHJlc2VudGF0aW9uKHRzLCBGaWx0ZXJSZXByZXNlbnRhdGlv
bjo6VGVzdE91dHB1dCk7CiAgICAgICAgIH0KICAgICB9IGVsc2UgaWYgKHJlc291cmNlLnJlc291
cmNlVHlwZSgpID09IENsaXBwZXJSZXNvdXJjZVR5cGUpIHsKICAgICAgICAgY29uc3QgYXV0byYg
Y2xpcHBlciA9IHN0YXRpY19jYXN0PGNvbnN0IFJlbmRlclNWR1Jlc291cmNlQ2xpcHBlciY+KHJl
c291cmNlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9maWx0ZXJz
L1NWR0ZFSW1hZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL2ZpbHRlcnMvU1ZH
RkVJbWFnZS5jcHAKaW5kZXggNWM2N2NhMzE5MGNmNjIzYTc5NjM1YjkyOWI0Yzk0NjBhOTc2MjFm
NC4uNmQ2YWU3M2Q2MWMxYjBhNjkxMjIwZmI5ZmFlMmMzNTQ5ZTIxNmRiOSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL2ZpbHRlcnMvU1ZHRkVJbWFnZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL2ZpbHRlcnMvU1ZHRkVJbWFnZS5jcHAKQEAgLTEx
MiwxMiArMTEyLDE2IEBAIHN0ZDo6dW5pcXVlX3B0cjxGaWx0ZXJFZmZlY3RBcHBsaWVyPiBGRUlt
YWdlOjpjcmVhdGVBcHBsaWVyKGNvbnN0IEZpbHRlciYpIGNvbnN0CiAgICAgcmV0dXJuIEZpbHRl
ckVmZmVjdEFwcGxpZXI6OmNyZWF0ZTxGRUltYWdlU29mdHdhcmVBcHBsaWVyPigqdGhpcyk7CiB9
CiAKLVRleHRTdHJlYW0mIEZFSW1hZ2U6OmV4dGVybmFsUmVwcmVzZW50YXRpb24oVGV4dFN0cmVh
bSYgdHMsIFJlcHJlc2VudGF0aW9uVHlwZSByZXByZXNlbnRhdGlvbikgY29uc3QKK1RleHRTdHJl
YW0mIEZFSW1hZ2U6OmV4dGVybmFsUmVwcmVzZW50YXRpb24oVGV4dFN0cmVhbSYgdHMsIEZpbHRl
clJlcHJlc2VudGF0aW9uIHJlcHJlc2VudGF0aW9uKSBjb25zdAogewogICAgIHRzIDw8IGluZGVu
dCA8PCAiW2ZlSW1hZ2UiOwotICAgIEZpbHRlckVmZmVjdDo6ZXh0ZXJuYWxSZXByZXNlbnRhdGlv
bih0cywgcmVwcmVzZW50YXRpb24pOwotICAgIHRzIDw8ICIgaW1hZ2Utc2l6ZT1cIiIgPDwgbV9z
b3VyY2VJbWFnZVJlY3Qud2lkdGgoKSA8PCAieCIgPDwgbV9zb3VyY2VJbWFnZVJlY3QuaGVpZ2h0
KCkgPDwgIlwiXVxuIjsKLSAgICAvLyBGSVhNRTogc2hvdWxkIHRoaXMgZHVtcCBhbHNvIG9iamVj
dCByZXR1cm5lZCBieSBTVkdGRUltYWdlOjppbWFnZSgpID8KKyAgICB7CisgICAgICAgIEZpbHRl
ckVmZmVjdDo6ZXh0ZXJuYWxSZXByZXNlbnRhdGlvbih0cywgcmVwcmVzZW50YXRpb24pOworCisg
ICAgICAgIHRzIDw8ICIgaW1hZ2Utc2l6ZT1cIiIgPDwgbV9zb3VyY2VJbWFnZVJlY3Qud2lkdGgo
KSA8PCAieCIgPDwgbV9zb3VyY2VJbWFnZVJlY3QuaGVpZ2h0KCkgPDwgIlwiIjsKKyAgICAgICAg
Ly8gRklYTUU6IHNob3VsZCB0aGlzIGR1bXAgYWxzbyBvYmplY3QgcmV0dXJuZWQgYnkgU1ZHRkVJ
bWFnZTo6aW1hZ2UoKSA/CisgICAgfQorICAgIHRzIDw8ICJdXG4iOwogICAgIHJldHVybiB0czsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL2ZpbHRlcnMvU1ZH
RkVJbWFnZS5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL2ZpbHRlcnMvU1ZHRkVJbWFn
ZS5oCmluZGV4IDkxOWEwNGU2MWRjZDIyMzQ0MWIxZTE5YjIyMzYyMjVjMzMwMWZkODMuLmE5NGYw
MWZjMDlkODI1Nzk0YzU4MjkyYzIzNGE3Yjk1NmU5NmE2NDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9ncmFwaGljcy9maWx0ZXJzL1NWR0ZFSW1hZ2UuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9zdmcvZ3JhcGhpY3MvZmlsdGVycy9TVkdGRUltYWdlLmgKQEAgLTU0LDcgKzU0LDcgQEAg
cHJpdmF0ZToKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxGaWx0ZXJFZmZlY3RBcHBsaWVyPiBjcmVh
dGVBcHBsaWVyKGNvbnN0IEZpbHRlciYpIGNvbnN0IGZpbmFsOwogCi0gICAgV1RGOjpUZXh0U3Ry
ZWFtJiBleHRlcm5hbFJlcHJlc2VudGF0aW9uKFdURjo6VGV4dFN0cmVhbSYsIFJlcHJlc2VudGF0
aW9uVHlwZSkgY29uc3QgZmluYWw7CisgICAgV1RGOjpUZXh0U3RyZWFtJiBleHRlcm5hbFJlcHJl
c2VudGF0aW9uKFdURjo6VGV4dFN0cmVhbSYsIEZpbHRlclJlcHJlc2VudGF0aW9uKSBjb25zdCBm
aW5hbDsKIAogICAgIFNvdXJjZUltYWdlIG1fc291cmNlSW1hZ2U7CiAgICAgRmxvYXRSZWN0IG1f
c291cmNlSW1hZ2VSZWN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNz
L2ZpbHRlcnMvU1ZHRmlsdGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9maWx0
ZXJzL1NWR0ZpbHRlci5jcHAKaW5kZXggMTI2NDJkNjMzNWNmZDY1MmIyNmViN2ZmODc5ZDgxOTNm
NDRmNmI2ZS4uZTEzNTllYjcxYTI2NzUxOTUwY2I2N2M0OTAyOGQwMjIzZGRhYTA3NCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL2ZpbHRlcnMvU1ZHRmlsdGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvZmlsdGVycy9TVkdGaWx0ZXIuY3BwCkBA
IC01NCwxNSArNTQsMTMgQEAgUmVmUHRyPFNWR0ZpbHRlcj4gU1ZHRmlsdGVyOjpjcmVhdGUoU1ZH
RmlsdGVyRWxlbWVudCYgZmlsdGVyRWxlbWVudCwgU1ZHRmlsdGVyQnUKICAgICBpZiAoIWJ1aWxk
ZXIuYnVpbGRGaWx0ZXJFZmZlY3RzKGZpbHRlckVsZW1lbnQpKQogICAgICAgICByZXR1cm4gbnVs
bHB0cjsKIAotICAgIEZpbHRlckVmZmVjdFZlY3RvciBleHByZXNzaW9uOworICAgIFNWR0ZpbHRl
ckV4cHJlc3Npb24gZXhwcmVzc2lvbjsKICAgICBpZiAoIWJ1aWxkZXIuYnVpbGRFeHByZXNzaW9u
KGV4cHJlc3Npb24pKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgIEFTU0VSVCghZXhw
cmVzc2lvbi5pc0VtcHR5KCkpOwogICAgIGZpbHRlci0+c2V0RXhwcmVzc2lvbihXVEZNb3ZlKGV4
cHJlc3Npb24pKTsKIAotICAgIGZpbHRlci0+c2V0RWZmZWN0R2VvbWV0cnlNYXAoYnVpbGRlci50
YWtlRWZmZWN0R2VvbWV0cnlNYXAoKSk7Ci0KICNpZiBVU0UoQ09SRV9JTUFHRSkKICAgICBpZiAo
IWZpbHRlci0+c3VwcG9ydHNDb3JlSW1hZ2VSZW5kZXJpbmcoKSkKICAgICAgICAgZmlsdGVyLT5z
ZXRSZW5kZXJpbmdNb2RlKFJlbmRlcmluZ01vZGU6OlVuYWNjZWxlcmF0ZWQpOwpAQCAtOTAsOCAr
ODgsOCBAQCBib29sIFNWR0ZpbHRlcjo6c3VwcG9ydHNDb3JlSW1hZ2VSZW5kZXJpbmcoKSBjb25z
dAogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBBU1NFUlQoIW1fZXhwcmVzc2lvbi5pc0Vt
cHR5KCkpOwotICAgIGZvciAoYXV0byYgZWZmZWN0IDogbV9leHByZXNzaW9uKSB7Ci0gICAgICAg
IGlmICghZWZmZWN0LT5zdXBwb3J0c0NvcmVJbWFnZVJlbmRlcmluZygpKQorICAgIGZvciAoYXV0
byYgdGVybSA6IG1fZXhwcmVzc2lvbikgeworICAgICAgICBpZiAoIXRlcm0uZWZmZWN0LT5zdXBw
b3J0c0NvcmVJbWFnZVJlbmRlcmluZygpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAg
IH0KIApAQCAtOTksMTUgKzk3LDE0IEBAIGJvb2wgU1ZHRmlsdGVyOjpzdXBwb3J0c0NvcmVJbWFn
ZVJlbmRlcmluZygpIGNvbnN0CiB9CiAjZW5kaWYKIAotc3RkOjpvcHRpb25hbDxGaWx0ZXJFZmZl
Y3RHZW9tZXRyeT4gU1ZHRmlsdGVyOjplZmZlY3RHZW9tZXRyeShGaWx0ZXJFZmZlY3QmIGVmZmVj
dCkgY29uc3QKK1JlZlB0cjxGaWx0ZXJFZmZlY3Q+IFNWR0ZpbHRlcjo6bGFzdEVmZmVjdCgpIGNv
bnN0CiB7Ci0gICAgYXV0byBpdCA9IG1fZWZmZWN0R2VvbWV0cnlNYXAuZmluZChlZmZlY3QpOwot
ICAgIGlmIChpdCAhPSBtX2VmZmVjdEdlb21ldHJ5TWFwLmVuZCgpKQotICAgICAgICByZXR1cm4g
aXQtPnZhbHVlOwotICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgaWYgKG1fZXhwcmVzc2lv
bi5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIHJldHVybiBtX2V4cHJl
c3Npb24ubGFzdCgpLmVmZmVjdC5wdHIoKTsKIH0KIAotYm9vbCBTVkdGaWx0ZXI6OmFwcGx5KGNv
bnN0IEZpbHRlciYgZmlsdGVyKQorYm9vbCBTVkdGaWx0ZXI6OmFwcGx5KGNvbnN0IEZpbHRlciYg
ZmlsdGVyLCBjb25zdCBzdGQ6Om9wdGlvbmFsPEZpbHRlckVmZmVjdEdlb21ldHJ5PiYpCiB7CiAg
ICAgc2V0U291cmNlSW1hZ2UoeyBmaWx0ZXIuc291cmNlSW1hZ2UoKSB9KTsKICAgICByZXR1cm4g
YXBwbHkoKTsKQEAgLTExNiw4ICsxMTMsOCBAQCBib29sIFNWR0ZpbHRlcjo6YXBwbHkoY29uc3Qg
RmlsdGVyJiBmaWx0ZXIpCiBSZWZQdHI8RmlsdGVySW1hZ2U+IFNWR0ZpbHRlcjo6YXBwbHkoKQog
ewogICAgIEFTU0VSVCghbV9leHByZXNzaW9uLmlzRW1wdHkoKSk7Ci0gICAgZm9yIChhdXRvJiBl
ZmZlY3QgOiBtX2V4cHJlc3Npb24pIHsKLSAgICAgICAgaWYgKCFlZmZlY3QtPmFwcGx5KCp0aGlz
KSkKKyAgICBmb3IgKGF1dG8mIHRlcm0gOiBtX2V4cHJlc3Npb24pIHsKKyAgICAgICAgaWYgKCF0
ZXJtLmVmZmVjdC0+YXBwbHkoKnRoaXMsIHRlcm0uZ2VvbWV0cnkpKQogICAgICAgICAgICAgcmV0
dXJuIG51bGxwdHI7CiAgICAgfQogICAgIHJldHVybiBsYXN0RWZmZWN0KCktPmZpbHRlckltYWdl
KCk7CkBAIC0xMzIsOCArMTI5LDI0IEBAIEludE91dHNldHMgU1ZHRmlsdGVyOjpvdXRzZXRzKCkg
Y29uc3QKIHZvaWQgU1ZHRmlsdGVyOjpjbGVhclJlc3VsdCgpCiB7CiAgICAgQVNTRVJUKCFtX2V4
cHJlc3Npb24uaXNFbXB0eSgpKTsKLSAgICBmb3IgKGF1dG8mIGVmZmVjdCA6IG1fZXhwcmVzc2lv
bikKLSAgICAgICAgZWZmZWN0LT5jbGVhclJlc3VsdCgpOworICAgIGZvciAoYXV0byYgdGVybSA6
IG1fZXhwcmVzc2lvbikKKyAgICAgICAgdGVybS5lZmZlY3QtPmNsZWFyUmVzdWx0KCk7Cit9CisK
K1RleHRTdHJlYW0mIFNWR0ZpbHRlcjo6ZXh0ZXJuYWxSZXByZXNlbnRhdGlvbihUZXh0U3RyZWFt
JiB0cywgRmlsdGVyUmVwcmVzZW50YXRpb24gcmVwcmVzZW50YXRpb24pIGNvbnN0Cit7CisgICAg
YXV0byBlbmQgPSBtX2V4cHJlc3Npb24ucmVuZCgpOworCisgICAgZm9yIChhdXRvIGl0ID0gbV9l
eHByZXNzaW9uLnJiZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQpIHsKKyAgICAgICAgYXV0byYgdGVy
bSA9ICppdDsKKyAgICAgICAgaWYgKHRlcm0uZWZmZWN0LT5maWx0ZXJUeXBlKCkgPT0gRmlsdGVy
RWZmZWN0OjpUeXBlOjpTb3VyY2VBbHBoYSkKKyAgICAgICAgICAgICsraXQ7CisKKyAgICAgICAg
VGV4dFN0cmVhbTo6SW5kZW50U2NvcGUgaW5kZW50U2NvcGUodHMsIHRlcm0ubGV2ZWwpOworICAg
ICAgICB0ZXJtLmVmZmVjdC0+ZXh0ZXJuYWxSZXByZXNlbnRhdGlvbih0cywgcmVwcmVzZW50YXRp
b24pOworICAgIH0KKworICAgIHJldHVybiB0czsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL2ZpbHRlcnMvU1ZHRmls
dGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvZmlsdGVycy9TVkdGaWx0ZXIuaApp
bmRleCA5ZjJmZTZhMjNhNWY5NTk3Mjc3MTY2ZTZhNGFhZDYxNGE5ODY0NWI1Li43YmFkNjdmMDBi
ZTIxMzFmY2Q0YzYyMjA1MWRmMGFhZDBjZTY4OWYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvZ3JhcGhpY3MvZmlsdGVycy9TVkdGaWx0ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvZ3JhcGhpY3MvZmlsdGVycy9TVkdGaWx0ZXIuaApAQCAtMjIsOCArMjIsOCBAQAogI3ByYWdt
YSBvbmNlCiAKICNpbmNsdWRlICJGaWx0ZXIuaCIKLSNpbmNsdWRlICJGaWx0ZXJFZmZlY3RWZWN0
b3IuaCIKICNpbmNsdWRlICJGbG9hdFJlY3QuaCIKKyNpbmNsdWRlICJTVkdGaWx0ZXJFeHByZXNz
aW9uLmgiCiAjaW5jbHVkZSAiU1ZHVW5pdFR5cGVzLmgiCiAjaW5jbHVkZSA8d3RmL1JlZi5oPgog
I2luY2x1ZGUgPHd0Zi9UeXBlQ2FzdHMuaD4KQEAgLTQyLDMzICs0MiwzMCBAQCBwdWJsaWM6CiAK
ICAgICBGbG9hdFJlY3QgdGFyZ2V0Qm91bmRpbmdCb3goKSBjb25zdCB7IHJldHVybiBtX3Rhcmdl
dEJvdW5kaW5nQm94OyB9CiAKLSAgICBSZWZQdHI8RmlsdGVyRWZmZWN0PiBsYXN0RWZmZWN0KCkg
Y29uc3QgZmluYWwgeyByZXR1cm4gIW1fZXhwcmVzc2lvbi5pc0VtcHR5KCkgPyBtX2V4cHJlc3Np
b24ubGFzdCgpIDogbnVsbHB0cjsgfQorICAgIFJlZlB0cjxGaWx0ZXJFZmZlY3Q+IGxhc3RFZmZl
Y3QoKSBjb25zdCBmaW5hbDsKIAogICAgIFJlZlB0cjxGaWx0ZXJJbWFnZT4gYXBwbHkoKSBmaW5h
bDsKIAorICAgIFRleHRTdHJlYW0mIGV4dGVybmFsUmVwcmVzZW50YXRpb24oVGV4dFN0cmVhbSYs
IEZpbHRlclJlcHJlc2VudGF0aW9uKSBjb25zdCBmaW5hbDsKKwogcHJpdmF0ZToKICAgICBTVkdG
aWx0ZXIoUmVuZGVyaW5nTW9kZSwgY29uc3QgRmxvYXRTaXplJiBmaWx0ZXJTY2FsZSwgQ2xpcE9w
ZXJhdGlvbiwgY29uc3QgRmxvYXRSZWN0JiBmaWx0ZXJSZWdpb24sIGNvbnN0IEZsb2F0UmVjdCYg
dGFyZ2V0Qm91bmRpbmdCb3gsIFNWR1VuaXRUeXBlczo6U1ZHVW5pdFR5cGUgcHJpbWl0aXZlVW5p
dHMpOwogCi0gICAgLy8gRklYTUU6IE1lcmdlIHRoZSBlZmZlY3RCb3VuZGFyaWVzIGluIHRoZSBl
eHByZXNzaW9uIG5vZGUuCi0gICAgdm9pZCBzZXRFeHByZXNzaW9uKEZpbHRlckVmZmVjdFZlY3Rv
ciYmIGV4cHJlc3Npb24pIHsgbV9leHByZXNzaW9uID0gV1RGTW92ZShleHByZXNzaW9uKTsgfQot
ICAgIHZvaWQgc2V0RWZmZWN0R2VvbWV0cnlNYXAoRmlsdGVyRWZmZWN0R2VvbWV0cnlNYXAmJiBl
ZmZlY3RHZW9tZXRyeU1hcCkgeyBtX2VmZmVjdEdlb21ldHJ5TWFwID0gV1RGTW92ZShlZmZlY3RH
ZW9tZXRyeU1hcCk7IH0KKyAgICB2b2lkIHNldEV4cHJlc3Npb24oU1ZHRmlsdGVyRXhwcmVzc2lv
biYmIGV4cHJlc3Npb24pIHsgbV9leHByZXNzaW9uID0gV1RGTW92ZShleHByZXNzaW9uKTsgfQog
CiAjaWYgVVNFKENPUkVfSU1BR0UpCiAgICAgYm9vbCBzdXBwb3J0c0NvcmVJbWFnZVJlbmRlcmlu
ZygpIGNvbnN0IGZpbmFsOwogI2VuZGlmCi0gICAgc3RkOjpvcHRpb25hbDxGaWx0ZXJFZmZlY3RH
ZW9tZXRyeT4gZWZmZWN0R2VvbWV0cnkoRmlsdGVyRWZmZWN0JikgY29uc3QgZmluYWw7CiAgICAg
RmxvYXRTaXplIHJlc29sdmVkU2l6ZShjb25zdCBGbG9hdFNpemUmKSBjb25zdCBmaW5hbDsKIAot
ICAgIGJvb2wgYXBwbHkoY29uc3QgRmlsdGVyJikgZmluYWw7CisgICAgYm9vbCBhcHBseShjb25z
dCBGaWx0ZXImLCBjb25zdCBzdGQ6Om9wdGlvbmFsPEZpbHRlckVmZmVjdEdlb21ldHJ5PiYgPSBz
dGQ6Om51bGxvcHQpIGZpbmFsOwogICAgIEludE91dHNldHMgb3V0c2V0cygpIGNvbnN0IGZpbmFs
OwogICAgIHZvaWQgY2xlYXJSZXN1bHQoKSBmaW5hbDsKIAogICAgIEZsb2F0UmVjdCBtX3Rhcmdl
dEJvdW5kaW5nQm94OwogICAgIFNWR1VuaXRUeXBlczo6U1ZHVW5pdFR5cGUgbV9wcmltaXRpdmVV
bml0czsKIAotICAgIC8vIEZJWE1FOiBNYWtlIG1fZXhwcmVzc2lvbiBhIFZlY3RvciBvZiB0aGUg
RmlsdGVyRWZmZWN0IGFuZCB0aGUgZWZmZWN0Qm91bmRhcmllcy4KLSAgICBGaWx0ZXJFZmZlY3RW
ZWN0b3IgbV9leHByZXNzaW9uOwotICAgIEZpbHRlckVmZmVjdEdlb21ldHJ5TWFwIG1fZWZmZWN0
R2VvbWV0cnlNYXA7CisgICAgU1ZHRmlsdGVyRXhwcmVzc2lvbiBtX2V4cHJlc3Npb247CiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
Z3JhcGhpY3MvZmlsdGVycy9TVkdGaWx0ZXJCdWlsZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9ncmFwaGljcy9maWx0ZXJzL1NWR0ZpbHRlckJ1aWxkZXIuY3BwCmluZGV4IDUwZWUxYTA2YzEz
ZDNlNWM0N2I3OGFmZTRlYmEwNmY2NWE4YWVjMDYuLmU0ODBlNTQ1ZTI3MTBhMTMxNzFhNWVhNzIz
OTdkYTQzMDM1ZjVhOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9m
aWx0ZXJzL1NWR0ZpbHRlckJ1aWxkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFw
aGljcy9maWx0ZXJzL1NWR0ZpbHRlckJ1aWxkZXIuY3BwCkBAIC0yMDEsNyArMjAxLDE1IEBAIHZv
aWQgU1ZHRmlsdGVyQnVpbGRlcjo6Y2xlYXJSZXN1bHRzUmVjdXJzaXZlKEZpbHRlckVmZmVjdCog
ZWZmZWN0KQogICAgICAgICBjbGVhclJlc3VsdHNSZWN1cnNpdmUocmVmZXJlbmNlKTsKIH0KIAot
c3RhdGljIGJvb2wgYnVpbGRFZmZlY3RFeHByZXNzaW9uKGNvbnN0IFJlZlB0cjxGaWx0ZXJFZmZl
Y3Q+JiBlZmZlY3QsIEZpbHRlckVmZmVjdFZlY3RvciYgc3RhY2ssIEZpbHRlckVmZmVjdFZlY3Rv
ciYgZXhwcmVzc2lvbikKK3N0ZDo6b3B0aW9uYWw8RmlsdGVyRWZmZWN0R2VvbWV0cnk+IFNWR0Zp
bHRlckJ1aWxkZXI6OmVmZmVjdEdlb21ldHJ5KEZpbHRlckVmZmVjdCYgZWZmZWN0KSBjb25zdAor
eworICAgIGF1dG8gaXQgPSBtX2VmZmVjdEdlb21ldHJ5TWFwLmZpbmQoZWZmZWN0KTsKKyAgICBp
ZiAoaXQgIT0gbV9lZmZlY3RHZW9tZXRyeU1hcC5lbmQoKSkKKyAgICAgICAgcmV0dXJuIGl0LT52
YWx1ZTsKKyAgICByZXR1cm4gc3RkOjpudWxsb3B0OworfQorCitib29sIFNWR0ZpbHRlckJ1aWxk
ZXI6OmJ1aWxkRWZmZWN0RXhwcmVzc2lvbihjb25zdCBSZWZQdHI8RmlsdGVyRWZmZWN0PiYgZWZm
ZWN0LCBGaWx0ZXJFZmZlY3RWZWN0b3ImIHN0YWNrLCB1bnNpZ25lZCBsZXZlbCwgU1ZHRmlsdGVy
RXhwcmVzc2lvbiYgZXhwcmVzc2lvbikgY29uc3QKIHsKICAgICAvLyBBIGN5Y2xlIGlzIGRldGVj
dGVkLgogICAgIGlmIChzdGFjay5jb250YWlucyhlZmZlY3QpKQpAQCAtMjA5LDEwICsyMTcsMTAg
QEAgc3RhdGljIGJvb2wgYnVpbGRFZmZlY3RFeHByZXNzaW9uKGNvbnN0IFJlZlB0cjxGaWx0ZXJF
ZmZlY3Q+JiBlZmZlY3QsIEZpbHRlckVmZmUKIAogICAgIHN0YWNrLmFwcGVuZChlZmZlY3QpOwog
ICAgIAotICAgIGV4cHJlc3Npb24uYXBwZW5kKGVmZmVjdCk7CisgICAgZXhwcmVzc2lvbi5hcHBl
bmQoeyAqZWZmZWN0LCBlZmZlY3RHZW9tZXRyeSgqZWZmZWN0KSwgbGV2ZWwgfSk7CiAKICAgICBm
b3IgKGF1dG8mIGlucHV0RWZmZWN0IDogZWZmZWN0LT5pbnB1dEVmZmVjdHMoKSkgewotICAgICAg
ICBpZiAoIWJ1aWxkRWZmZWN0RXhwcmVzc2lvbihpbnB1dEVmZmVjdCwgc3RhY2ssIGV4cHJlc3Np
b24pKQorICAgICAgICBpZiAoIWJ1aWxkRWZmZWN0RXhwcmVzc2lvbihpbnB1dEVmZmVjdCwgc3Rh
Y2ssIGxldmVsICsgMSwgZXhwcmVzc2lvbikpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAg
ICAgfQogCkBAIC0yMjMsMTMgKzIzMSwxMyBAQCBzdGF0aWMgYm9vbCBidWlsZEVmZmVjdEV4cHJl
c3Npb24oY29uc3QgUmVmUHRyPEZpbHRlckVmZmVjdD4mIGVmZmVjdCwgRmlsdGVyRWZmZQogICAg
IHJldHVybiB0cnVlOwogfQogCi1ib29sIFNWR0ZpbHRlckJ1aWxkZXI6OmJ1aWxkRXhwcmVzc2lv
bihGaWx0ZXJFZmZlY3RWZWN0b3ImIGV4cHJlc3Npb24pIGNvbnN0Citib29sIFNWR0ZpbHRlckJ1
aWxkZXI6OmJ1aWxkRXhwcmVzc2lvbihTVkdGaWx0ZXJFeHByZXNzaW9uJiBleHByZXNzaW9uKSBj
b25zdAogewogICAgIGlmICghbV9sYXN0RWZmZWN0KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAK
ICAgICBGaWx0ZXJFZmZlY3RWZWN0b3Igc3RhY2s7Ci0gICAgaWYgKCFidWlsZEVmZmVjdEV4cHJl
c3Npb24obV9sYXN0RWZmZWN0LCBzdGFjaywgZXhwcmVzc2lvbikpCisgICAgaWYgKCFidWlsZEVm
ZmVjdEV4cHJlc3Npb24obV9sYXN0RWZmZWN0LCBzdGFjaywgMCwgZXhwcmVzc2lvbikpCiAgICAg
ICAgIHJldHVybiBmYWxzZTsKIAogICAgIGV4cHJlc3Npb24ucmV2ZXJzZSgpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL2ZpbHRlcnMvU1ZHRmlsdGVyQnVpbGRlci5o
IGIvU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL2ZpbHRlcnMvU1ZHRmlsdGVyQnVpbGRlci5o
CmluZGV4IGZiOWRjZDc4ZjlkOTNlZmJkMTgzMmE1ZWY0YTVjNDMwNjJjNjU3YzUuLjA3OTkyNWU0
NTE4N2UyZDA1M2MxYzBjM2RhMjUzNWYyZTg3NTg1N2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9ncmFwaGljcy9maWx0ZXJzL1NWR0ZpbHRlckJ1aWxkZXIuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvZ3JhcGhpY3MvZmlsdGVycy9TVkdGaWx0ZXJCdWlsZGVyLmgKQEAgLTIyLDYg
KzIyLDcgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiRmlsdGVyRWZmZWN0LmgiCisjaW5j
bHVkZSAiU1ZHRmlsdGVyRXhwcmVzc2lvbi5oIgogI2luY2x1ZGUgIlNWR1VuaXRUeXBlcy5oIgog
I2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KQEAgLTY4
LDkgKzY5LDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBzZXR1cEJ1aWx0aW5FZmZlY3RzKFJlZjxG
aWx0ZXJFZmZlY3Q+IHNvdXJjZUdyYXBoaWMpOwogICAgIFJlZlB0cjxGaWx0ZXJFZmZlY3Q+IGJ1
aWxkRmlsdGVyRWZmZWN0cyhTVkdGaWx0ZXJFbGVtZW50Jik7Ci0gICAgYm9vbCBidWlsZEV4cHJl
c3Npb24oRmlsdGVyRWZmZWN0VmVjdG9yJiBleHByZXNzaW9uKSBjb25zdDsKLQotICAgIEZpbHRl
ckVmZmVjdEdlb21ldHJ5TWFwIHRha2VFZmZlY3RHZW9tZXRyeU1hcCgpIHsgcmV0dXJuIFdURk1v
dmUobV9lZmZlY3RHZW9tZXRyeU1hcCk7IH0KKyAgICBib29sIGJ1aWxkRXhwcmVzc2lvbihTVkdG
aWx0ZXJFeHByZXNzaW9uJikgY29uc3Q7CiAKIHByaXZhdGU6CiAgICAgaW5saW5lIHZvaWQgYWRk
QnVpbHRpbkVmZmVjdHMoKQpAQCAtNzksNiArNzgsOSBAQCBwcml2YXRlOgogICAgICAgICAgICAg
bV9lZmZlY3RSZWZlcmVuY2VzLmFkZChlZmZlY3QsIEZpbHRlckVmZmVjdFNldCgpKTsKICAgICB9
CiAKKyAgICBzdGQ6Om9wdGlvbmFsPEZpbHRlckVmZmVjdEdlb21ldHJ5PiBlZmZlY3RHZW9tZXRy
eShGaWx0ZXJFZmZlY3QmKSBjb25zdDsKKyAgICBib29sIGJ1aWxkRWZmZWN0RXhwcmVzc2lvbihj
b25zdCBSZWZQdHI8RmlsdGVyRWZmZWN0PiYsIEZpbHRlckVmZmVjdFZlY3RvciYgc3RhY2ssIHVu
c2lnbmVkIGxldmVsLCBTVkdGaWx0ZXJFeHByZXNzaW9uJikgY29uc3Q7CisKICAgICBIYXNoTWFw
PEF0b21TdHJpbmcsIFJlZlB0cjxGaWx0ZXJFZmZlY3Q+PiBtX2J1aWx0aW5FZmZlY3RzOwogICAg
IEhhc2hNYXA8QXRvbVN0cmluZywgUmVmUHRyPEZpbHRlckVmZmVjdD4+IG1fbmFtZWRFZmZlY3Rz
OwogICAgIC8vIFRoZSB2YWx1ZSBpcyBhIGxpc3QsIHdoaWNoIGNvbnRhaW5zIHRob3NlIGZpbHRl
ciBlZmZlY3RzLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL2ZpbHRl
cnMvU1ZHRmlsdGVyRXhwcmVzc2lvbi5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL2Zp
bHRlcnMvU1ZHRmlsdGVyRXhwcmVzc2lvbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNmYjA1ZWZjZWViY2E1ZGFj
YmYwMmM4MmJhODcxODg2YThkZWQwN2YKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvZ3JhcGhpY3MvZmlsdGVycy9TVkdGaWx0ZXJFeHByZXNzaW9uLmgKQEAgLTAsMCArMSw0
MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IK
KyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJh
Z21hIG9uY2UKKworI2luY2x1ZGUgIkZsb2F0UmVjdC5oIgorI2luY2x1ZGUgPHd0Zi9WZWN0b3Iu
aD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBGaWx0ZXJFZmZlY3Q7CisKK3N0cnVj
dCBTVkdGaWx0ZXJFeHByZXNzaW9uVGVybSB7CisgICAgUmVmPEZpbHRlckVmZmVjdD4gZWZmZWN0
OworICAgIHN0ZDo6b3B0aW9uYWw8RmlsdGVyRWZmZWN0R2VvbWV0cnk+IGdlb21ldHJ5OworICAg
IHVuc2lnbmVkIGxldmVsOworfTsKKwordXNpbmcgU1ZHRmlsdGVyRXhwcmVzc2lvbiA9IFZlY3Rv
cjxTVkdGaWx0ZXJFeHByZXNzaW9uVGVybT47CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpp
bmRleCAzMDA3ZjIzYzZhM2ZmZDgzOGY5ZmRkYzFlOGUyZmNlNDc1NzgwMjI3Li5hYTZkOTQyMDQ2
MDczN2NkM2VlNTcyMDFhOWMwODM3MTQ5NDJjNDhlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIw
MjEtMTItMDYgIFNhaWQgQWJvdS1IYWxsYXdhICA8c2FpZEBhcHBsZS5jb20+CisKKyAgICAgICAg
W0dQVSBQcm9jZXNzXSAgW0ZpbHRlcnNdIE1ha2UgRmlsdGVyRWZmZWN0OjpleHRlcm5hbFJlcHJl
c2VudGF0aW9uKCkgYW5kIGl0cyBvdmVycmlkYWJsZSBmdW5jdGlvbnMgd29yayBpdGVyYXRpdmVs
eQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMzODkz
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIG1p
c3NpbmcgY2xvc2luZyBxdW90YXRpb25zIGluIHRoZSBleHBlY3RlZCByZXN1bHRzIG9mIHNvbWUg
b2YgdGhlIAorICAgICAgICBmaWx0ZXIgbGF5b3V0IHRlc3RzLgorCisgICAgICAgICogc3ZnL2Zp
bHRlcnMvZmVEcm9wU2hhZG93LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBzdmcvZmlsdGVycy9m
ZURyb3BTaGFkb3ctc3VicmVnaW9uLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBzdmcvZmlsdGVy
cy9mZURyb3BTaGFkb3ctemVyby1kZXZpYXRpb24tZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHN2
Zy9yZXBhaW50L2ZpbHRlci1jaGlsZC1yZXBhaW50LWV4cGVjdGVkLnR4dDoKKwogMjAyMS0xMi0w
NiAgU2FpZCBBYm91LUhhbGxhd2EgIDxzYWlkQGFwcGxlLmNvbT4KIAogICAgICAgICBbR1BVIFBy
b2Nlc3NdIChSRUdSRVNTSU9OIHIyODU1OTcpOiBTZXQgdGhlIGZpbHRlclJlZ2lvbiBvZiB0aGUg
Q1NTRmlsdGVyIGFmdGVyIGl0IGlzIGNyZWF0ZWQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N2
Zy9maWx0ZXJzL2ZlRHJvcFNoYWRvdy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdmcvZmls
dGVycy9mZURyb3BTaGFkb3ctZXhwZWN0ZWQudHh0CmluZGV4IDViNmRkNmVmODFjMTNkZWVhNjZl
YzlkYTkxMjcyZDEwNDQ1ZjdlMTguLjk3YmVmNzhjZWJiZGE5MWZlZDgzYzYyZDhiNTk4ZmQ3ZGVi
YWE3YzUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N2Zy9maWx0ZXJzL2ZlRHJvcFNoYWRvdy1l
eHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvc3ZnL2ZpbHRlcnMvZmVEcm9wU2hhZG93LWV4
cGVjdGVkLnR4dApAQCAtNCwyOCArNCwyOCBAQCBsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAK
ICAgUmVuZGVyU1ZHUm9vdCB7c3ZnfSBhdCAoMCwwKSBzaXplIDY4NHgzMzQKICAgICBSZW5kZXJT
VkdIaWRkZW5Db250YWluZXIge2RlZnN9IGF0ICgwLDApIHNpemUgMHgwCiAgICAgICBSZW5kZXJT
VkdSZXNvdXJjZUZpbHRlciB7ZmlsdGVyfSBbaWQ9ImRyb3Atc2hhZG93LTEiXSBbZmlsdGVyVW5p
dHM9b2JqZWN0Qm91bmRpbmdCb3hdIFtwcmltaXRpdmVVbml0cz11c2VyU3BhY2VPblVzZV0KLSAg
ICAgICAgW2ZlRHJvcFNoYWRvdyBzdGREZXZpYXRpb249IjIuMDAsIDIuMDAiIGR4PSIyLjAwIiBk
eT0iMi4wMCIgZmxvb2QtY29sb3I9IiMwMDgwMDAiIGZsb29kLW9wYWNpdHk9IjEuMDBdCisgICAg
ICAgIFtmZURyb3BTaGFkb3cgc3RkRGV2aWF0aW9uPSIyLjAwLCAyLjAwIiBkeD0iMi4wMCIgZHk9
IjIuMDAiIGZsb29kLWNvbG9yPSIjMDA4MDAwIiBmbG9vZC1vcGFjaXR5PSIxLjAwIl0KICAgICAg
ICAgICBbU291cmNlR3JhcGhpY10KICAgICAgIFJlbmRlclNWR1Jlc291cmNlRmlsdGVyIHtmaWx0
ZXJ9IFtpZD0iZHJvcC1zaGFkb3ctMiJdIFtmaWx0ZXJVbml0cz1vYmplY3RCb3VuZGluZ0JveF0g
W3ByaW1pdGl2ZVVuaXRzPXVzZXJTcGFjZU9uVXNlXQotICAgICAgICBbZmVEcm9wU2hhZG93IHN0
ZERldmlhdGlvbj0iMC4wMCwgMC4wMCIgZHg9IjAuMDAiIGR5PSIwLjAwIiBmbG9vZC1jb2xvcj0i
IzAwODAwMCIgZmxvb2Qtb3BhY2l0eT0iMS4wMF0KKyAgICAgICAgW2ZlRHJvcFNoYWRvdyBzdGRE
ZXZpYXRpb249IjAuMDAsIDAuMDAiIGR4PSIwLjAwIiBkeT0iMC4wMCIgZmxvb2QtY29sb3I9IiMw
MDgwMDAiIGZsb29kLW9wYWNpdHk9IjEuMDAiXQogICAgICAgICAgIFtTb3VyY2VHcmFwaGljXQog
ICAgICAgUmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXIge2ZpbHRlcn0gW2lkPSJkcm9wLXNoYWRvdy0z
Il0gW2ZpbHRlclVuaXRzPW9iamVjdEJvdW5kaW5nQm94XSBbcHJpbWl0aXZlVW5pdHM9dXNlclNw
YWNlT25Vc2VdCi0gICAgICAgIFtmZURyb3BTaGFkb3cgc3RkRGV2aWF0aW9uPSIwLjAwLCAxMC4w
MCIgZHg9IjUuMDAiIGR5PSI1LjAwIiBmbG9vZC1jb2xvcj0iIzAwODAwMCIgZmxvb2Qtb3BhY2l0
eT0iMS4wMF0KKyAgICAgICAgW2ZlRHJvcFNoYWRvdyBzdGREZXZpYXRpb249IjAuMDAsIDEwLjAw
IiBkeD0iNS4wMCIgZHk9IjUuMDAiIGZsb29kLWNvbG9yPSIjMDA4MDAwIiBmbG9vZC1vcGFjaXR5
PSIxLjAwIl0KICAgICAgICAgICBbU291cmNlR3JhcGhpY10KICAgICAgIFJlbmRlclNWR1Jlc291
cmNlRmlsdGVyIHtmaWx0ZXJ9IFtpZD0iZHJvcC1zaGFkb3ctNCJdIFtmaWx0ZXJVbml0cz1vYmpl
Y3RCb3VuZGluZ0JveF0gW3ByaW1pdGl2ZVVuaXRzPXVzZXJTcGFjZU9uVXNlXQotICAgICAgICBb
ZmVEcm9wU2hhZG93IHN0ZERldmlhdGlvbj0iMTAuMDAsIDAuMDAiIGR4PSI1LjAwIiBkeT0iNS4w
MCIgZmxvb2QtY29sb3I9IiMwMDgwMDAiIGZsb29kLW9wYWNpdHk9IjEuMDBdCisgICAgICAgIFtm
ZURyb3BTaGFkb3cgc3RkRGV2aWF0aW9uPSIxMC4wMCwgMC4wMCIgZHg9IjUuMDAiIGR5PSI1LjAw
IiBmbG9vZC1jb2xvcj0iIzAwODAwMCIgZmxvb2Qtb3BhY2l0eT0iMS4wMCJdCiAgICAgICAgICAg
W1NvdXJjZUdyYXBoaWNdCiAgICAgICBSZW5kZXJTVkdSZXNvdXJjZUZpbHRlciB7ZmlsdGVyfSBb
aWQ9ImRyb3Atc2hhZG93LTUiXSBbZmlsdGVyVW5pdHM9b2JqZWN0Qm91bmRpbmdCb3hdIFtwcmlt
aXRpdmVVbml0cz11c2VyU3BhY2VPblVzZV0KLSAgICAgICAgW2ZlRHJvcFNoYWRvdyBzdGREZXZp
YXRpb249IjEwLjAwLCAxMC4wMCIgZHg9IjUuMDAiIGR5PSI1LjAwIiBmbG9vZC1jb2xvcj0iIzAw
ODAwMCIgZmxvb2Qtb3BhY2l0eT0iMS4wMF0KKyAgICAgICAgW2ZlRHJvcFNoYWRvdyBzdGREZXZp
YXRpb249IjEwLjAwLCAxMC4wMCIgZHg9IjUuMDAiIGR5PSI1LjAwIiBmbG9vZC1jb2xvcj0iIzAw
ODAwMCIgZmxvb2Qtb3BhY2l0eT0iMS4wMCJdCiAgICAgICAgICAgW1NvdXJjZUdyYXBoaWNdCiAg
ICAgICBSZW5kZXJTVkdSZXNvdXJjZUZpbHRlciB7ZmlsdGVyfSBbaWQ9ImRyb3Atc2hhZG93LTYi
XSBbZmlsdGVyVW5pdHM9b2JqZWN0Qm91bmRpbmdCb3hdIFtwcmltaXRpdmVVbml0cz11c2VyU3Bh
Y2VPblVzZV0KLSAgICAgICAgW2ZlRHJvcFNoYWRvdyBzdGREZXZpYXRpb249IjEwLjAwLCAxMC4w
MCIgZHg9Ii01LjAwIiBkeT0iLTUuMDAiIGZsb29kLWNvbG9yPSIjMDA4MDAwIiBmbG9vZC1vcGFj
aXR5PSIxLjAwXQorICAgICAgICBbZmVEcm9wU2hhZG93IHN0ZERldmlhdGlvbj0iMTAuMDAsIDEw
LjAwIiBkeD0iLTUuMDAiIGR5PSItNS4wMCIgZmxvb2QtY29sb3I9IiMwMDgwMDAiIGZsb29kLW9w
YWNpdHk9IjEuMDAiXQogICAgICAgICAgIFtTb3VyY2VHcmFwaGljXQogICAgICAgUmVuZGVyU1ZH
UmVzb3VyY2VGaWx0ZXIge2ZpbHRlcn0gW2lkPSJkcm9wLXNoYWRvdy03Il0gW2ZpbHRlclVuaXRz
PW9iamVjdEJvdW5kaW5nQm94XSBbcHJpbWl0aXZlVW5pdHM9dXNlclNwYWNlT25Vc2VdCi0gICAg
ICAgIFtmZURyb3BTaGFkb3cgc3RkRGV2aWF0aW9uPSIxMjguMDAsIDEyOC4wMCIgZHg9IjAuMDAi
IGR5PSIwLjAwIiBmbG9vZC1jb2xvcj0iIzAwODAwMCIgZmxvb2Qtb3BhY2l0eT0iMS4wMF0KKyAg
ICAgICAgW2ZlRHJvcFNoYWRvdyBzdGREZXZpYXRpb249IjEyOC4wMCwgMTI4LjAwIiBkeD0iMC4w
MCIgZHk9IjAuMDAiIGZsb29kLWNvbG9yPSIjMDA4MDAwIiBmbG9vZC1vcGFjaXR5PSIxLjAwIl0K
ICAgICAgICAgICBbU291cmNlR3JhcGhpY10KICAgICAgIFJlbmRlclNWR1Jlc291cmNlRmlsdGVy
IHtmaWx0ZXJ9IFtpZD0iZHJvcC1zaGFkb3ctOCJdIFtmaWx0ZXJVbml0cz1vYmplY3RCb3VuZGlu
Z0JveF0gW3ByaW1pdGl2ZVVuaXRzPXVzZXJTcGFjZU9uVXNlXQotICAgICAgICBbZmVEcm9wU2hh
ZG93IHN0ZERldmlhdGlvbj0iMTAuMDAsIDEwLjAwIiBkeD0iNS4wMCIgZHk9IjUuMDAiIGZsb29k
LWNvbG9yPSIjMDA4MDAwIiBmbG9vZC1vcGFjaXR5PSIwLjUwXQorICAgICAgICBbZmVEcm9wU2hh
ZG93IHN0ZERldmlhdGlvbj0iMTAuMDAsIDEwLjAwIiBkeD0iNS4wMCIgZHk9IjUuMDAiIGZsb29k
LWNvbG9yPSIjMDA4MDAwIiBmbG9vZC1vcGFjaXR5PSIwLjUwIl0KICAgICAgICAgICBbU291cmNl
R3JhcGhpY10KICAgICBSZW5kZXJTVkdFbGxpcHNlIHtjaXJjbGV9IGF0ICgwLDApIHNpemUgMTU5
eDE1OSBbc3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAwRkZdIFtzdHJva2Ugd2lkdGg9
NS4wMF19XSBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jRkZGRjAwXX1dIFtjeD03NS4wMF0g
W2N5PTc1LjAwXSBbcj03MC4wMF0KICAgICAgIFtmaWx0ZXI9ImRyb3Atc2hhZG93LTEiXSBSZW5k
ZXJTVkdSZXNvdXJjZUZpbHRlciB7ZmlsdGVyfSBhdCAoLTksLTkpIHNpemUgMTY4eDE2OApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3ZnL2ZpbHRlcnMvZmVEcm9wU2hhZG93LXN1YnJlZ2lvbi1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdmcvZmlsdGVycy9mZURyb3BTaGFkb3ctc3VicmVn
aW9uLWV4cGVjdGVkLnR4dAppbmRleCA3MzAxN2Y0OWQwMzMzMGRhMmM1ZDg3NzBjYWZmZDgxZWVk
OGRmZjM3Li42N2Y0MTk1YmQzNjUwZDc0MWMxMzkyNGQ5NDg1NTgxNTRlYTI3Njk3IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9zdmcvZmlsdGVycy9mZURyb3BTaGFkb3ctc3VicmVnaW9uLWV4cGVj
dGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9zdmcvZmlsdGVycy9mZURyb3BTaGFkb3ctc3VicmVn
aW9uLWV4cGVjdGVkLnR4dApAQCAtNSw3ICs1LDcgQEAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSAxMDB4
MTAwCiAgICAgUmVuZGVyU1ZHSGlkZGVuQ29udGFpbmVyIHtkZWZzfSBhdCAoMCwwKSBzaXplIDB4
MAogICAgICAgUmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXIge2ZpbHRlcn0gW2lkPSJEcm9wU2hhZG93
Il0gW2ZpbHRlclVuaXRzPW9iamVjdEJvdW5kaW5nQm94XSBbcHJpbWl0aXZlVW5pdHM9dXNlclNw
YWNlT25Vc2VdCiAgICAgICAgIFtmZUNvbXBvc2l0ZSBvcGVyYXRpb249Ik9WRVIiXQotICAgICAg
ICAgIFtmZURyb3BTaGFkb3cgc3RkRGV2aWF0aW9uPSIxMC4wMCwgMTAuMDAiIGR4PSIxMC4wMCIg
ZHk9IjEwLjAwIiBmbG9vZC1jb2xvcj0iI0ZGMDAwMCIgZmxvb2Qtb3BhY2l0eT0iMS4wMF0KKyAg
ICAgICAgICBbZmVEcm9wU2hhZG93IHN0ZERldmlhdGlvbj0iMTAuMDAsIDEwLjAwIiBkeD0iMTAu
MDAiIGR5PSIxMC4wMCIgZmxvb2QtY29sb3I9IiNGRjAwMDAiIGZsb29kLW9wYWNpdHk9IjEuMDAi
XQogICAgICAgICAgICAgW1NvdXJjZUdyYXBoaWNdCiAgICAgICAgICAgW2ZlT2Zmc2V0IGR4PSIx
MC4wMCIgZHk9IjEwLjAwIl0KICAgICAgICAgICAgIFtTb3VyY2VHcmFwaGljXQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvc3ZnL2ZpbHRlcnMvZmVEcm9wU2hhZG93LXplcm8tZGV2aWF0aW9uLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N2Zy9maWx0ZXJzL2ZlRHJvcFNoYWRvdy16ZXJvLWRl
dmlhdGlvbi1leHBlY3RlZC50eHQKaW5kZXggNGZlYWFmMDBjMzg1ZWM0NDRjNTlkNjMwNGVhOTM0
YzJmYzU3NGE4Ni4uYTc5NDkxOWM3YjE0YTQ1YmE3NDg5YjU0MjBlNjI3ZWZmNDA1NDQ5MCAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3ZnL2ZpbHRlcnMvZmVEcm9wU2hhZG93LXplcm8tZGV2aWF0
aW9uLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9zdmcvZmlsdGVycy9mZURyb3BTaGFk
b3ctemVyby1kZXZpYXRpb24tZXhwZWN0ZWQudHh0CkBAIC00LDEwICs0LDEwIEBAIGxheWVyIGF0
ICgwLDApIHNpemUgODAweDYwMAogICBSZW5kZXJTVkdSb290IHtzdmd9IGF0ICg0OSwxOSkgc2l6
ZSAxMngzMgogICAgIFJlbmRlclNWR0hpZGRlbkNvbnRhaW5lciB7ZGVmc30gYXQgKDAsMCkgc2l6
ZSAweDAKICAgICAgIFJlbmRlclNWR1Jlc291cmNlRmlsdGVyIHtmaWx0ZXJ9IFtpZD0iZjEiXSBb
ZmlsdGVyVW5pdHM9b2JqZWN0Qm91bmRpbmdCb3hdIFtwcmltaXRpdmVVbml0cz11c2VyU3BhY2VP
blVzZV0KLSAgICAgICAgW2ZlRHJvcFNoYWRvdyBzdGREZXZpYXRpb249IjAuMDAsIDEuMDAiIGR4
PSIyLjAwIiBkeT0iMi4wMCIgZmxvb2QtY29sb3I9IiMwMDAwMDAiIGZsb29kLW9wYWNpdHk9IjEu
MDBdCisgICAgICAgIFtmZURyb3BTaGFkb3cgc3RkRGV2aWF0aW9uPSIwLjAwLCAxLjAwIiBkeD0i
Mi4wMCIgZHk9IjIuMDAiIGZsb29kLWNvbG9yPSIjMDAwMDAwIiBmbG9vZC1vcGFjaXR5PSIxLjAw
Il0KICAgICAgICAgICBbU291cmNlR3JhcGhpY10KICAgICAgIFJlbmRlclNWR1Jlc291cmNlRmls
dGVyIHtmaWx0ZXJ9IFtpZD0iZjIiXSBbZmlsdGVyVW5pdHM9b2JqZWN0Qm91bmRpbmdCb3hdIFtw
cmltaXRpdmVVbml0cz11c2VyU3BhY2VPblVzZV0KLSAgICAgICAgW2ZlRHJvcFNoYWRvdyBzdGRE
ZXZpYXRpb249IjEuMDAsIDAuMDAiIGR4PSIyLjAwIiBkeT0iMi4wMCIgZmxvb2QtY29sb3I9IiMw
MDAwMDAiIGZsb29kLW9wYWNpdHk9IjEuMDBdCisgICAgICAgIFtmZURyb3BTaGFkb3cgc3RkRGV2
aWF0aW9uPSIxLjAwLCAwLjAwIiBkeD0iMi4wMCIgZHk9IjIuMDAiIGZsb29kLWNvbG9yPSIjMDAw
MDAwIiBmbG9vZC1vcGFjaXR5PSIxLjAwIl0KICAgICAgICAgICBbU291cmNlR3JhcGhpY10KICAg
ICBSZW5kZXJTVkdSZWN0IHtyZWN0fSBhdCAoNDksMTkpIHNpemUgMTJ4MTIgW2ZpbGw9e1t0eXBl
PVNPTElEXSBbY29sb3I9IzAwODAwMF19XSBbeD01MC4wMF0gW3k9MjAuMDBdIFt3aWR0aD0xMC4w
MF0gW2hlaWdodD0xMC4wMF0KICAgICAgIFtmaWx0ZXI9ImYxIl0gUmVuZGVyU1ZHUmVzb3VyY2VG
aWx0ZXIge2ZpbHRlcn0gYXQgKDQ5LDE5KSBzaXplIDEyeDEyCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9zdmcvcmVwYWludC9maWx0ZXItY2hpbGQtcmVwYWludC1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9zdmcvcmVwYWludC9maWx0ZXItY2hpbGQtcmVwYWludC1leHBlY3RlZC50eHQKaW5k
ZXggNThiZjA4NDM1ZWY1YmM5OGE2MGZhYjk2NmQ2YzRlZWUxNTgxOTQzYS4uNWVkY2MzYTk2OGVi
MDc1MGQ4Yjc3NjQyZjQxZWI0OTRiOTYxOTkzYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3Zn
L3JlcGFpbnQvZmlsdGVyLWNoaWxkLXJlcGFpbnQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRl
c3RzL3N2Zy9yZXBhaW50L2ZpbHRlci1jaGlsZC1yZXBhaW50LWV4cGVjdGVkLnR4dApAQCAtNCw3
ICs0LDcgQEAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSAxMjh4MTI4CiAgIFJlbmRlclNWR1Jvb3Qge3N2
Z30gYXQgKDAsMCkgc2l6ZSAxMDZ4MTA2CiAgICAgUmVuZGVyU1ZHSGlkZGVuQ29udGFpbmVyIHtk
ZWZzfSBhdCAoMCwwKSBzaXplIDB4MAogICAgICAgUmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXIge2Zp
bHRlcn0gW2lkPSJkcm9wU2hhZG93Il0gW2ZpbHRlclVuaXRzPW9iamVjdEJvdW5kaW5nQm94XSBb
cHJpbWl0aXZlVW5pdHM9dXNlclNwYWNlT25Vc2VdCi0gICAgICAgIFtmZURyb3BTaGFkb3cgc3Rk
RGV2aWF0aW9uPSIyLjAwLCAyLjAwIiBkeD0iMy4wMCIgZHk9IjMuMDAiIGZsb29kLWNvbG9yPSIj
MDAwMDAwIiBmbG9vZC1vcGFjaXR5PSIxLjAwXQorICAgICAgICBbZmVEcm9wU2hhZG93IHN0ZERl
dmlhdGlvbj0iMi4wMCwgMi4wMCIgZHg9IjMuMDAiIGR5PSIzLjAwIiBmbG9vZC1jb2xvcj0iIzAw
MDAwMCIgZmxvb2Qtb3BhY2l0eT0iMS4wMCJdCiAgICAgICAgICAgW1NvdXJjZUdyYXBoaWNdCiAg
ICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoMCwwKSBzaXplIDEwNngxMDYKICAgICAgIFtm
aWx0ZXI9ImRyb3BTaGFkb3ciXSBSZW5kZXJTVkdSZXNvdXJjZUZpbHRlciB7ZmlsdGVyfSBhdCAo
LTkuNjAsLTkuNjApIHNpemUgMTE1LjIweDExNS4yMAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>446109</attachid>
            <date>2021-12-06 19:10:22 -0800</date>
            <delta_ts>2021-12-06 19:54:05 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-233893-20211206191021.patch</filename>
            <type>text/plain</type>
            <size>66326</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2NTc5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjQ5NjA4NjQ0OTFhMWVi
YzBkYTcxMjNhYTY3YmYwMzEyYzQyYjE0Yy4uZjRhMDJkMTQ4ZWE5MjFjZjlhMmI1OGJiZGI4YjIw
NjM4OGQ0NDE2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEwMyBAQAorMjAyMS0xMi0wNiAgU2Fp
ZCBBYm91LUhhbGxhd2EgIDxzYWlkQGFwcGxlLmNvbT4KKworICAgICAgICBbR1BVIFByb2Nlc3Nd
ICBbRmlsdGVyc10gTWFrZSBGaWx0ZXJFZmZlY3Q6OmV4dGVybmFsUmVwcmVzZW50YXRpb24oKSBh
bmQgaXRzIG92ZXJyaWRhYmxlIGZ1bmN0aW9ucyB3b3JrIGl0ZXJhdGl2ZWx5CisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzM4OTMKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIGlzIGEgc3RlcCB0b3dh
cmRzIHJlbW92aW5nIHRoZSBpbnB1dEVmZmVjdCgpIGZyb20gRmlsdGVyRWZmZWN0LgorCisgICAg
ICAgIC0tIFRoZSBlbnVtIEZsaXRlckVmZmVjdDo6UmVwcmVzZW50YXRpb25UeXBlIGlzIHJlcGxh
Y2VkIGJ5CisgICAgICAgICAgIEZpbHRlclJlcHJlc2VudGF0aW9uLgorCisgICAgICAgIC0tIENT
U0ZpbHRlciBjYWxscyBpdHMgZnVuY3Rpb25zIGZyb20gbGVmdCB0byByaWdodCB0byBkdW1wIHRo
ZWlyCisgICAgICAgICAgIGV4dGVybmFsUmVwcmVzZW50YXRpb24uCisKKyAgICAgICAgLS0gU1ZH
RmlsdGVyIHVzZXMgaXRzIGV4cHJlc3Npb24gdG8gZHVtcCBpdHMgZ3JhcGggb2YgRmlsdGVyRWZm
ZWN0cy4KKworICAgICAgICAtLSBTaW5jZSBTb3VyY2VBbHBoYSBpcyBhIGJ1aWx0LWluIGVmZmVj
dCBpdCBkb2VzIG5vdCBuZWVkIHRvIGR1bXAKKyAgICAgICAgICAgU291cmNlR3JhcGhpYyBhcyBp
dHMgaW5wdXQuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQmxlbmQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6RkVCbGVuZDo6ZXh0ZXJuYWxSZXByZXNlbnRhdGlvbiBj
b25zdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUJsZW5kLmg6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbG9yTWF0cml4LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkZFQ29sb3JNYXRyaXg6OmV4dGVybmFsUmVwcmVzZW50YXRpb24gY29u
c3QpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb2xvck1hdHJpeC5o
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb21wb25lbnRUcmFuc2Zl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGRUNvbXBvbmVudFRyYW5zZmVyOjpleHRlcm5hbFJl
cHJlc2VudGF0aW9uIGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJz
L0ZFQ29tcG9uZW50VHJhbnNmZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0
ZXJzL0ZFQ29tcG9zaXRlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZFQ29tcG9zaXRlOjpleHRl
cm5hbFJlcHJlc2VudGF0aW9uIGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9m
aWx0ZXJzL0ZFQ29tcG9zaXRlLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVy
cy9GRUNvbnZvbHZlTWF0cml4LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZFQ29udm9sdmVNYXRy
aXg6OmV4dGVybmFsUmVwcmVzZW50YXRpb24gY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2ZpbHRlcnMvRkVDb252b2x2ZU1hdHJpeC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2ZpbHRlcnMvRkVEaWZmdXNlTGlnaHRpbmcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RkVEaWZmdXNlTGlnaHRpbmc6OmV4dGVybmFsUmVwcmVzZW50YXRpb24gY29uc3QpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVEaWZmdXNlTGlnaHRpbmcuaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRGlzcGxhY2VtZW50TWFwLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkZFRGlzcGxhY2VtZW50TWFwOjpleHRlcm5hbFJlcHJlc2VudGF0aW9u
IGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRGlzcGxhY2Vt
ZW50TWFwLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRURyb3BTaGFk
b3cuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RkVEcm9wU2hhZG93OjpleHRlcm5hbFJlcHJlc2Vu
dGF0aW9uIGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRHJv
cFNoYWRvdy5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVGbG9vZC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpGRUZsb29kOjpleHRlcm5hbFJlcHJlc2VudGF0aW9uIGNv
bnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRmxvb2QuaDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFR2F1c3NpYW5CbHVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkZFR2F1c3NpYW5CbHVyOjpleHRlcm5hbFJlcHJlc2VudGF0aW9uIGNv
bnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFR2F1c3NpYW5CbHVy
Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRU1lcmdlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkZFTWVyZ2U6OmV4dGVybmFsUmVwcmVzZW50YXRpb24gY29uc3QpOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVNZXJnZS5oOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVNb3JwaG9sb2d5LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkZFTW9ycGhvbG9neTo6ZXh0ZXJuYWxSZXByZXNlbnRhdGlvbiBjb25zdCk6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRU1vcnBob2xvZ3kuaDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFT2Zmc2V0LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkZFT2Zmc2V0OjpleHRlcm5hbFJlcHJlc2VudGF0aW9uIGNvbnN0KToKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFT2Zmc2V0Lmg6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvZmlsdGVycy9GRVNwZWN1bGFyTGlnaHRpbmcuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6RkVTcGVjdWxhckxpZ2h0aW5nOjpleHRlcm5hbFJlcHJlc2VudGF0aW9uIGNvbnN0KToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFU3BlY3VsYXJMaWdodGluZy5oOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVUaWxlLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkZFVGlsZTo6ZXh0ZXJuYWxSZXByZXNlbnRhdGlvbiBjb25zdCk6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRVRpbGUuaDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9maWx0ZXJzL0ZFVHVyYnVsZW5jZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpG
RVR1cmJ1bGVuY2U6OmV4dGVybmFsUmVwcmVzZW50YXRpb24gY29uc3QpOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVUdXJidWxlbmNlLmg6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9maWx0ZXJzL0ZpbHRlckVmZmVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGaWx0ZXJFZmZl
Y3Q6OmV4dGVybmFsUmVwcmVzZW50YXRpb24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6b3Bl
cmF0b3I8PCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXJFZmZl
Y3QuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlckZ1bmN0aW9u
Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9Tb3VyY2VBbHBoYS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VBbHBoYTo6ZXh0ZXJuYWxSZXByZXNlbnRhdGlvbiBj
b25zdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9Tb3VyY2VBbHBoYS5o
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvU291cmNlR3JhcGhpYy5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VHcmFwaGljOjpleHRlcm5hbFJlcHJlc2VudGF0aW9u
IGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1NvdXJjZUdyYXBo
aWMuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvQ1NTRmlsdGVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkNTU0ZpbHRlcjo6ZXh0ZXJuYWxSZXByZXNlbnRhdGlvbiBjb25zdCk6CisgICAgICAgICog
cmVuZGVyaW5nL0NTU0ZpbHRlci5oOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvU1ZHUmVuZGVy
VHJlZUFzVGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjp3cml0ZVNWR1Jlc291cmNlQ29udGFp
bmVyKToKKyAgICAgICAgKiBzdmcvZ3JhcGhpY3MvZmlsdGVycy9TVkdGRUltYWdlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkZFSW1hZ2U6OmV4dGVybmFsUmVwcmVzZW50YXRpb24gY29uc3QpOgor
ICAgICAgICAqIHN2Zy9ncmFwaGljcy9maWx0ZXJzL1NWR0ZFSW1hZ2UuaDoKKyAgICAgICAgKiBz
dmcvZ3JhcGhpY3MvZmlsdGVycy9TVkdGaWx0ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZH
RmlsdGVyOjpleHRlcm5hbFJlcHJlc2VudGF0aW9uIGNvbnN0KToKKyAgICAgICAgKiBzdmcvZ3Jh
cGhpY3MvZmlsdGVycy9TVkdGaWx0ZXIuaDoKKyAgICAgICAgKiBzdmcvZ3JhcGhpY3MvZmlsdGVy
cy9TVkdGaWx0ZXJCdWlsZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmVmZmVjdEdlb21ldHJ5
RmxhZ3NGb3JFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZpbHRlckJ1aWxkZXI6OmJ1
aWxkRmlsdGVyRWZmZWN0cyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdGaWx0ZXJCdWlsZGVyOjpi
dWlsZEVmZmVjdEV4cHJlc3Npb24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRmlsdGVy
QnVpbGRlcjo6YnVpbGRFeHByZXNzaW9uIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OmJvdW5k
YXJ5U2V0RmxhZ3NGb3JFbGVtZW50KTogRGVsZXRlZC4KKyAgICAgICAgKiBzdmcvZ3JhcGhpY3Mv
ZmlsdGVycy9TVkdGaWx0ZXJCdWlsZGVyLmg6CisgICAgICAgICogc3ZnL2dyYXBoaWNzL2ZpbHRl
cnMvU1ZHRmlsdGVyRXhwcmVzc2lvbi5oOgorCiAyMDIxLTEyLTA2ICBTYWlkIEFib3UtSGFsbGF3
YSAgPHNhaWRAYXBwbGUuY29tPgogCiAgICAgICAgIFtHUFUgUHJvY2Vzc10gTWFrZSBGaWx0ZXJF
ZmZlY3QgY2FsY3VsYXRlIHRoZSBwcmltaXRpdmUgc3VicmVnaW9uIG9ubHkgd2hlbiBuZWVkZWQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVC
bGVuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQmxl
bmQuY3BwCmluZGV4IDBmYzIzM2M5ODc4MmUzYmU2NDRjMmU3YjViYjYwODYwNWExMWE0OTcuLmMx
ZDVlMDMyZGUwNzBkMDYwM2QwNmE1ODZmYTcxYmM5MTkwMjBkNTYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVCbGVuZC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUJsZW5kLmNwcApAQCAtNTcs
MTUgKzU3LDE1IEBAIHN0ZDo6dW5pcXVlX3B0cjxGaWx0ZXJFZmZlY3RBcHBsaWVyPiBGRUJsZW5k
OjpjcmVhdGVBcHBsaWVyKGNvbnN0IEZpbHRlciYpIGNvbnN0CiAgICAgcmV0dXJuIEZpbHRlckVm
ZmVjdEFwcGxpZXI6OmNyZWF0ZTxGRUJsZW5kU29mdHdhcmVBcHBsaWVyPigqdGhpcyk7CiB9CiAK
LVRleHRTdHJlYW0mIEZFQmxlbmQ6OmV4dGVybmFsUmVwcmVzZW50YXRpb24oVGV4dFN0cmVhbSYg
dHMsIFJlcHJlc2VudGF0aW9uVHlwZSByZXByZXNlbnRhdGlvbikgY29uc3QKK1RleHRTdHJlYW0m
IEZFQmxlbmQ6OmV4dGVybmFsUmVwcmVzZW50YXRpb24oVGV4dFN0cmVhbSYgdHMsIEZpbHRlclJl
cHJlc2VudGF0aW9uIHJlcHJlc2VudGF0aW9uKSBjb25zdAogewogICAgIHRzIDw8IGluZGVudCA8
PCAiW2ZlQmxlbmQiOwotICAgIEZpbHRlckVmZmVjdDo6ZXh0ZXJuYWxSZXByZXNlbnRhdGlvbih0
cywgcmVwcmVzZW50YXRpb24pOwotICAgIHRzIDw8ICIgbW9kZT1cIiIgPDwgKG1fbW9kZSA9PSBC
bGVuZE1vZGU6Ok5vcm1hbCA/ICJub3JtYWwiIDogY29tcG9zaXRlT3BlcmF0b3JOYW1lKENvbXBv
c2l0ZU9wZXJhdG9yOjpTb3VyY2VPdmVyLCBtX21vZGUpKSA8PCAiXCJdXG4iOworICAgIHsKKyAg
ICAgICAgRmlsdGVyRWZmZWN0OjpleHRlcm5hbFJlcHJlc2VudGF0aW9uKHRzLCByZXByZXNlbnRh
dGlvbik7CiAKLSAgICBUZXh0U3RyZWFtOjpJbmRlbnRTY29wZSBpbmRlbnRTY29wZSh0cyk7Ci0g
ICAgaW5wdXRFZmZlY3QoMCktPmV4dGVybmFsUmVwcmVzZW50YXRpb24odHMsIHJlcHJlc2VudGF0
aW9uKTsKLSAgICBpbnB1dEVmZmVjdCgxKS0+ZXh0ZXJuYWxSZXByZXNlbnRhdGlvbih0cywgcmVw
cmVzZW50YXRpb24pOworICAgICAgICB0cyA8PCAiIG1vZGU9XCIiIDw8IChtX21vZGUgPT0gQmxl
bmRNb2RlOjpOb3JtYWwgPyAibm9ybWFsIiA6IGNvbXBvc2l0ZU9wZXJhdG9yTmFtZShDb21wb3Np
dGVPcGVyYXRvcjo6U291cmNlT3ZlciwgbV9tb2RlKSk7CisgICAgfQorICAgIHRzIDw8ICJcIl1c
biI7CiAgICAgcmV0dXJuIHRzOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQmxlbmQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2ZpbHRlcnMvRkVCbGVuZC5oCmluZGV4IGU1ZGYyMTkyYTljYzAxNzdjN2FhMWEw
MzFkMTZjNmYyYTRjZjhmM2UuLjlhNzdmMjIzNTkzMjY4MzNkOTIzMGY5ZGQ1ODYyM2I0NGIwMDNm
MWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMv
RkVCbGVuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMv
RkVCbGVuZC5oCkBAIC00Niw3ICs0Niw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBwbGF0Zm9ybUFw
cGx5TkVPTih1bnNpZ25lZCBjaGFyKiBzcmNQaXhlbEFycmF5QSwgdW5zaWduZWQgY2hhciogc3Jj
UGl4ZWxBcnJheUIsIHVuc2lnbmVkIGNoYXIqIGRzdFBpeGVsQXJyYXksCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB1bnNpZ25lZCBjb2xvckFycmF5TGVuZ3RoKTsKIAotICAgIFdURjo6VGV4
dFN0cmVhbSYgZXh0ZXJuYWxSZXByZXNlbnRhdGlvbihXVEY6OlRleHRTdHJlYW0mLCBSZXByZXNl
bnRhdGlvblR5cGUpIGNvbnN0IG92ZXJyaWRlOworICAgIFdURjo6VGV4dFN0cmVhbSYgZXh0ZXJu
YWxSZXByZXNlbnRhdGlvbihXVEY6OlRleHRTdHJlYW0mLCBGaWx0ZXJSZXByZXNlbnRhdGlvbikg
Y29uc3Qgb3ZlcnJpZGU7CiAKICAgICBCbGVuZE1vZGUgbV9tb2RlOwogfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb2xvck1hdHJpeC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29sb3JNYXRy
aXguY3BwCmluZGV4IDk1NjFiZDliNWY4ZTFlZjgyMjA1YTczNjY4YjBjNDMwMjQ2MjQ2ZDIuLjk4
Zjk0MTUzYmY5ZDFhNTExOThkMzdiOGRlZTcyM2U3NzE5N2I1ODcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb2xvck1hdHJpeC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbG9yTWF0cml4
LmNwcApAQCAtMTQxLDI3ICsxNDEsMjcgQEAgc3RhdGljIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwo
VGV4dFN0cmVhbSYgdHMsIGNvbnN0IENvbG9yTWF0cml4VHlwZSYgdHlwZSkKICAgICByZXR1cm4g
dHM7CiB9CiAKLVRleHRTdHJlYW0mIEZFQ29sb3JNYXRyaXg6OmV4dGVybmFsUmVwcmVzZW50YXRp
b24oVGV4dFN0cmVhbSYgdHMsIFJlcHJlc2VudGF0aW9uVHlwZSByZXByZXNlbnRhdGlvbikgY29u
c3QKK1RleHRTdHJlYW0mIEZFQ29sb3JNYXRyaXg6OmV4dGVybmFsUmVwcmVzZW50YXRpb24oVGV4
dFN0cmVhbSYgdHMsIEZpbHRlclJlcHJlc2VudGF0aW9uIHJlcHJlc2VudGF0aW9uKSBjb25zdAog
ewogICAgIHRzIDw8IGluZGVudCA8PCAiW2ZlQ29sb3JNYXRyaXgiOwotICAgIEZpbHRlckVmZmVj
dDo6ZXh0ZXJuYWxSZXByZXNlbnRhdGlvbih0cywgcmVwcmVzZW50YXRpb24pOwotICAgIHRzIDw8
ICIgdHlwZT1cIiIgPDwgbV90eXBlIDw8ICJcIiI7Ci0gICAgaWYgKCFtX3ZhbHVlcy5pc0VtcHR5
KCkpIHsKLSAgICAgICAgdHMgPDwgIiB2YWx1ZXM9XCIiOwotICAgICAgICBWZWN0b3I8ZmxvYXQ+
Ojpjb25zdF9pdGVyYXRvciBwdHIgPSBtX3ZhbHVlcy5iZWdpbigpOwotICAgICAgICBjb25zdCBW
ZWN0b3I8ZmxvYXQ+Ojpjb25zdF9pdGVyYXRvciBlbmQgPSBtX3ZhbHVlcy5lbmQoKTsKLSAgICAg
ICAgd2hpbGUgKHB0ciA8IGVuZCkgewotICAgICAgICAgICAgdHMgPDwgKnB0cjsKLSAgICAgICAg
ICAgICsrcHRyOwotICAgICAgICAgICAgaWYgKHB0ciA8IGVuZCkgCi0gICAgICAgICAgICAgICAg
dHMgPDwgIiAiOworICAgIHsKKyAgICAgICAgRmlsdGVyRWZmZWN0OjpleHRlcm5hbFJlcHJlc2Vu
dGF0aW9uKHRzLCByZXByZXNlbnRhdGlvbik7CisKKyAgICAgICAgdHMgPDwgIiB0eXBlPVwiIiA8
PCBtX3R5cGUgPDwgIlwiIjsKKyAgICAgICAgaWYgKCFtX3ZhbHVlcy5pc0VtcHR5KCkpIHsKKyAg
ICAgICAgICAgIHRzIDw8ICIgdmFsdWVzPVwiIjsKKyAgICAgICAgICAgIFZlY3RvcjxmbG9hdD46
OmNvbnN0X2l0ZXJhdG9yIHB0ciA9IG1fdmFsdWVzLmJlZ2luKCk7CisgICAgICAgICAgICBjb25z
dCBWZWN0b3I8ZmxvYXQ+Ojpjb25zdF9pdGVyYXRvciBlbmQgPSBtX3ZhbHVlcy5lbmQoKTsKKyAg
ICAgICAgICAgIHdoaWxlIChwdHIgPCBlbmQpIHsKKyAgICAgICAgICAgICAgICB0cyA8PCAqcHRy
OworICAgICAgICAgICAgICAgICsrcHRyOworICAgICAgICAgICAgICAgIGlmIChwdHIgPCBlbmQp
CisgICAgICAgICAgICAgICAgICAgIHRzIDw8ICIgIjsKKyAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgIHRzIDw8ICJcIiI7CiAgICAgICAgIH0KLSAgICAgICAgdHMgPDwgIlwiIjsKICAgICB9CiAg
ICAgdHMgPDwgIl1cbiI7Ci0gICAgCi0gICAgVGV4dFN0cmVhbTo6SW5kZW50U2NvcGUgaW5kZW50
U2NvcGUodHMpOwotICAgIGlucHV0RWZmZWN0KDApLT5leHRlcm5hbFJlcHJlc2VudGF0aW9uKHRz
LCByZXByZXNlbnRhdGlvbik7CiAgICAgcmV0dXJuIHRzOwogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29sb3JNYXRyaXguaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb2xvck1hdHJpeC5oCmlu
ZGV4IDIwMjQwMTkzZTU0MGJjMjBlZmI5NDY3NGI2YTAwNDdkNjhiMjIzNGEuLjQ0NGU1N2E4NmYy
NjI4MzM0OTJjYmU2ZTdmMmVlMDAyOWIzMGUzYzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb2xvck1hdHJpeC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb2xvck1hdHJpeC5oCkBAIC02Myw3
ICs2Myw3IEBAIHByaXZhdGU6CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8RmlsdGVyRWZmZWN0QXBw
bGllcj4gY3JlYXRlQXBwbGllcihjb25zdCBGaWx0ZXImKSBjb25zdCBvdmVycmlkZTsKIAotICAg
IFdURjo6VGV4dFN0cmVhbSYgZXh0ZXJuYWxSZXByZXNlbnRhdGlvbihXVEY6OlRleHRTdHJlYW0m
LCBSZXByZXNlbnRhdGlvblR5cGUpIGNvbnN0IG92ZXJyaWRlOworICAgIFdURjo6VGV4dFN0cmVh
bSYgZXh0ZXJuYWxSZXByZXNlbnRhdGlvbihXVEY6OlRleHRTdHJlYW0mLCBGaWx0ZXJSZXByZXNl
bnRhdGlvbikgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICBDb2xvck1hdHJpeFR5cGUgbV90eXBlOwog
ICAgIFZlY3RvcjxmbG9hdD4gbV92YWx1ZXM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29tcG9uZW50VHJhbnNmZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbXBvbmVudFRyYW5zZmVyLmNw
cAppbmRleCA4MjNlM2RhNjgxZWZmODRhNTAwZjRlYTg4Njc0NDlmZjBkZGJmYzBjLi5kMDk1ODU3
ZWMzNzEyNjE1OWE2MDJkYTQ5NWVmYTg1NTQzZjE0NGFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29tcG9uZW50VHJhbnNmZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb21wb25lbnRU
cmFuc2Zlci5jcHAKQEAgLTExNiwyMSArMTE2LDIyIEBAIHN0YXRpYyBUZXh0U3RyZWFtJiBvcGVy
YXRvcjw8KFRleHRTdHJlYW0mIHRzLCBjb25zdCBDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uJiBm
CiAgICAgcmV0dXJuIHRzOwogfQogCi1UZXh0U3RyZWFtJiBGRUNvbXBvbmVudFRyYW5zZmVyOjpl
eHRlcm5hbFJlcHJlc2VudGF0aW9uKFRleHRTdHJlYW0mIHRzLCBSZXByZXNlbnRhdGlvblR5cGUg
cmVwcmVzZW50YXRpb24pIGNvbnN0CitUZXh0U3RyZWFtJiBGRUNvbXBvbmVudFRyYW5zZmVyOjpl
eHRlcm5hbFJlcHJlc2VudGF0aW9uKFRleHRTdHJlYW0mIHRzLCBGaWx0ZXJSZXByZXNlbnRhdGlv
biByZXByZXNlbnRhdGlvbikgY29uc3QKIHsKICAgICB0cyA8PCBpbmRlbnQgPDwgIltmZUNvbXBv
bmVudFRyYW5zZmVyIjsKLSAgICBGaWx0ZXJFZmZlY3Q6OmV4dGVybmFsUmVwcmVzZW50YXRpb24o
dHMsIHJlcHJlc2VudGF0aW9uKTsKLSAgICB0cyA8PCAiXG4iOwogICAgIHsKLSAgICAgICAgVGV4
dFN0cmVhbTo6SW5kZW50U2NvcGUgaW5kZW50U2NvcGUodHMsIDIpOwotICAgICAgICB0cyA8PCBp
bmRlbnQgPDwgIntyZWQ6ICIgPDwgbV9yZWRGdW5jdGlvbiA8PCAifVxuIjsKLSAgICAgICAgdHMg
PDwgaW5kZW50IDw8ICJ7Z3JlZW46ICIgPDwgbV9ncmVlbkZ1bmN0aW9uIDw8ICJ9XG4iOwotICAg
ICAgICB0cyA8PCBpbmRlbnQgPDwgIntibHVlOiAiIDw8IG1fYmx1ZUZ1bmN0aW9uIDw8ICJ9XG4i
OwotICAgICAgICB0cyA8PCBpbmRlbnQgPDwgInthbHBoYTogIiA8PCBtX2FscGhhRnVuY3Rpb24g
PDwgIn1dXG4iOwotICAgIH0KKyAgICAgICAgRmlsdGVyRWZmZWN0OjpleHRlcm5hbFJlcHJlc2Vu
dGF0aW9uKHRzLCByZXByZXNlbnRhdGlvbik7CisgICAgICAgIHRzIDw8ICJcbiI7CiAKLSAgICBU
ZXh0U3RyZWFtOjpJbmRlbnRTY29wZSBpbmRlbnRTY29wZSh0cyk7Ci0gICAgaW5wdXRFZmZlY3Qo
MCktPmV4dGVybmFsUmVwcmVzZW50YXRpb24odHMsIHJlcHJlc2VudGF0aW9uKTsKKyAgICAgICAg
eworICAgICAgICAgICAgVGV4dFN0cmVhbTo6SW5kZW50U2NvcGUgaW5kZW50U2NvcGUodHMsIDIp
OworICAgICAgICAgICAgdHMgPDwgaW5kZW50IDw8ICJ7cmVkOiAiIDw8IG1fcmVkRnVuY3Rpb24g
PDwgIn1cbiI7CisgICAgICAgICAgICB0cyA8PCBpbmRlbnQgPDwgIntncmVlbjogIiA8PCBtX2dy
ZWVuRnVuY3Rpb24gPDwgIn1cbiI7CisgICAgICAgICAgICB0cyA8PCBpbmRlbnQgPDwgIntibHVl
OiAiIDw8IG1fYmx1ZUZ1bmN0aW9uIDw8ICJ9XG4iOworICAgICAgICAgICAgdHMgPDwgaW5kZW50
IDw8ICJ7YWxwaGE6ICIgPDwgbV9hbHBoYUZ1bmN0aW9uIDw8ICJ9IjsKKyAgICAgICAgfQorICAg
IH0KKyAgICB0cyA8PCAiXVxuIjsKICAgICByZXR1cm4gdHM7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb21wb25lbnRUcmFuc2Zl
ci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbXBvbmVu
dFRyYW5zZmVyLmgKaW5kZXggMDQ5ZDRmMjA2YjhiNDYxNjY4YjcwMjQ4ZTdlMGI1NGU1MTU5ZjY1
Mi4uNTA1NWM1ZWQ0NTZkMTBlYWRjZGRmMTJiOTAyNDg5ZTkyMmM5MjAzMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbXBvbmVudFRyYW5z
ZmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNv
bXBvbmVudFRyYW5zZmVyLmgKQEAgLTc0LDcgKzc0LDcgQEAgcHJpdmF0ZToKIAogICAgIHN0ZDo6
dW5pcXVlX3B0cjxGaWx0ZXJFZmZlY3RBcHBsaWVyPiBjcmVhdGVBcHBsaWVyKGNvbnN0IEZpbHRl
ciYpIGNvbnN0IG92ZXJyaWRlOwogCi0gICAgV1RGOjpUZXh0U3RyZWFtJiBleHRlcm5hbFJlcHJl
c2VudGF0aW9uKFdURjo6VGV4dFN0cmVhbSYsIFJlcHJlc2VudGF0aW9uVHlwZSkgY29uc3Qgb3Zl
cnJpZGU7CisgICAgV1RGOjpUZXh0U3RyZWFtJiBleHRlcm5hbFJlcHJlc2VudGF0aW9uKFdURjo6
VGV4dFN0cmVhbSYsIEZpbHRlclJlcHJlc2VudGF0aW9uKSBjb25zdCBvdmVycmlkZTsKIAogICAg
IENvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb24gbV9yZWRGdW5jdGlvbjsKICAgICBDb21wb25lbnRU
cmFuc2ZlckZ1bmN0aW9uIG1fZ3JlZW5GdW5jdGlvbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb21wb3NpdGUuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbXBvc2l0ZS5jcHAKaW5kZXggNWNj
MjgxODM2NjEyYzJiYjU5ZTBkZjY4OWJiOTlmMWI1YjVjY2ZiMi4uOWY0NzdlYzcyNzM2Mjg0MzM5
OWQ1NzkwNDBiM2JlMDVjMjU3ZjJmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbXBvc2l0ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbXBvc2l0ZS5jcHAKQEAgLTE0MiwxOCArMTQy
LDE3IEBAIHN0YXRpYyBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBjb25z
dCBDb21wb3NpdGVPcGVyYXRpb25UeXBlJiB0eXBlCiAgICAgcmV0dXJuIHRzOwogfQogCi1UZXh0
U3RyZWFtJiBGRUNvbXBvc2l0ZTo6ZXh0ZXJuYWxSZXByZXNlbnRhdGlvbihUZXh0U3RyZWFtJiB0
cywgUmVwcmVzZW50YXRpb25UeXBlIHJlcHJlc2VudGF0aW9uKSBjb25zdAorVGV4dFN0cmVhbSYg
RkVDb21wb3NpdGU6OmV4dGVybmFsUmVwcmVzZW50YXRpb24oVGV4dFN0cmVhbSYgdHMsIEZpbHRl
clJlcHJlc2VudGF0aW9uIHJlcHJlc2VudGF0aW9uKSBjb25zdAogewogICAgIHRzIDw8IGluZGVu
dCA8PCAiW2ZlQ29tcG9zaXRlIjsKLSAgICBGaWx0ZXJFZmZlY3Q6OmV4dGVybmFsUmVwcmVzZW50
YXRpb24odHMsIHJlcHJlc2VudGF0aW9uKTsKLSAgICB0cyA8PCAiIG9wZXJhdGlvbj1cIiIgPDwg
bV90eXBlIDw8ICJcIiI7Ci0gICAgaWYgKG1fdHlwZSA9PSBGRUNPTVBPU0lURV9PUEVSQVRPUl9B
UklUSE1FVElDKQotICAgICAgICB0cyA8PCAiIGsxPVwiIiA8PCBtX2sxIDw8ICJcIiBrMj1cIiIg
PDwgbV9rMiA8PCAiXCIgazM9XCIiIDw8IG1fazMgPDwgIlwiIGs0PVwiIiA8PCBtX2s0IDw8ICJc
IiI7Ci0gICAgdHMgPDwgIl1cbiI7CisgICAgeworICAgICAgICBGaWx0ZXJFZmZlY3Q6OmV4dGVy
bmFsUmVwcmVzZW50YXRpb24odHMsIHJlcHJlc2VudGF0aW9uKTsKIAotICAgIFRleHRTdHJlYW06
OkluZGVudFNjb3BlIGluZGVudFNjb3BlKHRzKTsKLSAgICBpbnB1dEVmZmVjdCgwKS0+ZXh0ZXJu
YWxSZXByZXNlbnRhdGlvbih0cywgcmVwcmVzZW50YXRpb24pOwotICAgIGlucHV0RWZmZWN0KDEp
LT5leHRlcm5hbFJlcHJlc2VudGF0aW9uKHRzLCByZXByZXNlbnRhdGlvbik7CisgICAgICAgIHRz
IDw8ICIgb3BlcmF0aW9uPVwiIiA8PCBtX3R5cGUgPDwgIlwiIjsKKyAgICAgICAgaWYgKG1fdHlw
ZSA9PSBGRUNPTVBPU0lURV9PUEVSQVRPUl9BUklUSE1FVElDKQorICAgICAgICAgICAgdHMgPDwg
IiBrMT1cIiIgPDwgbV9rMSA8PCAiXCIgazI9XCIiIDw8IG1fazIgPDwgIlwiIGszPVwiIiA8PCBt
X2szIDw8ICJcIiBrND1cIiIgPDwgbV9rNCA8PCAiXCIiOworICAgIH0KKyAgICB0cyA8PCAiXVxu
IjsKICAgICByZXR1cm4gdHM7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb21wb3NpdGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb21wb3NpdGUuaAppbmRleCBjNDA4MzQwYWFkY2MzZjll
YTFmMmU5ZDhiNmFiOWQzNTMxNzQ2MDZlLi4zYjljODU2YjI3YjQwYWRmNWQyMmNiYTJmMmQ1NjBj
ZGNiZGI3YmYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9m
aWx0ZXJzL0ZFQ29tcG9zaXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZmlsdGVycy9GRUNvbXBvc2l0ZS5oCkBAIC02OSw3ICs2OSw3IEBAIHByaXZhdGU6CiAKICAg
ICBzdGQ6OnVuaXF1ZV9wdHI8RmlsdGVyRWZmZWN0QXBwbGllcj4gY3JlYXRlQXBwbGllcihjb25z
dCBGaWx0ZXImKSBjb25zdCBvdmVycmlkZTsKIAotICAgIFdURjo6VGV4dFN0cmVhbSYgZXh0ZXJu
YWxSZXByZXNlbnRhdGlvbihXVEY6OlRleHRTdHJlYW0mLCBSZXByZXNlbnRhdGlvblR5cGUpIGNv
bnN0IG92ZXJyaWRlOworICAgIFdURjo6VGV4dFN0cmVhbSYgZXh0ZXJuYWxSZXByZXNlbnRhdGlv
bihXVEY6OlRleHRTdHJlYW0mLCBGaWx0ZXJSZXByZXNlbnRhdGlvbikgY29uc3Qgb3ZlcnJpZGU7
CiAKICAgICBpbmxpbmUgdm9pZCBwbGF0Zm9ybUFyaXRobWV0aWNTb2Z0d2FyZShjb25zdCBVaW50
OENsYW1wZWRBcnJheSYgc291cmNlLCBVaW50OENsYW1wZWRBcnJheSYgZGVzdGluYXRpb24sIGZs
b2F0IGsxLCBmbG9hdCBrMiwgZmxvYXQgazMsIGZsb2F0IGs0KTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbnZvbHZlTWF0cml4LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb252b2x2ZU1h
dHJpeC5jcHAKaW5kZXggMWQxYjYwNzFmNTRhNjRiYmIzOTMxZjAzNTAzNjI1NTNjYWQyZTc4MS4u
ZTQ3NjkwNWI3ZTUxMzYxZmM3ZDYyZjc0ZDliNmE3NGEzZmI1OTM0NSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbnZvbHZlTWF0cml4LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29udm9s
dmVNYXRyaXguY3BwCkBAIC0xNDMsMjEgKzE0MywyMiBAQCBzdGF0aWMgVGV4dFN0cmVhbSYgb3Bl
cmF0b3I8PChUZXh0U3RyZWFtJiB0cywgY29uc3QgRWRnZU1vZGVUeXBlJiB0eXBlKQogICAgIHJl
dHVybiB0czsKIH0KIAotVGV4dFN0cmVhbSYgRkVDb252b2x2ZU1hdHJpeDo6ZXh0ZXJuYWxSZXBy
ZXNlbnRhdGlvbihUZXh0U3RyZWFtJiB0cywgUmVwcmVzZW50YXRpb25UeXBlIHJlcHJlc2VudGF0
aW9uKSBjb25zdAorVGV4dFN0cmVhbSYgRkVDb252b2x2ZU1hdHJpeDo6ZXh0ZXJuYWxSZXByZXNl
bnRhdGlvbihUZXh0U3RyZWFtJiB0cywgRmlsdGVyUmVwcmVzZW50YXRpb24gcmVwcmVzZW50YXRp
b24pIGNvbnN0CiB7CiAgICAgdHMgPDwgaW5kZW50IDw8ICJbZmVDb252b2x2ZU1hdHJpeCI7Ci0g
ICAgRmlsdGVyRWZmZWN0OjpleHRlcm5hbFJlcHJlc2VudGF0aW9uKHRzLCByZXByZXNlbnRhdGlv
bik7Ci0gICAgdHMgPDwgIiBvcmRlcj1cIiIgPDwgbV9rZXJuZWxTaXplIDw8ICJcIiAiCi0gICAg
ICAgPDwgImtlcm5lbE1hdHJpeD1cIiIgPDwgbV9rZXJuZWxNYXRyaXggIDw8ICJcIiAiCi0gICAg
ICAgPDwgImRpdmlzb3I9XCIiIDw8IG1fZGl2aXNvciA8PCAiXCIgIgotICAgICAgIDw8ICJiaWFz
PVwiIiA8PCBtX2JpYXMgPDwgIlwiICIKLSAgICAgICA8PCAidGFyZ2V0PVwiIiA8PCBtX3Rhcmdl
dE9mZnNldCA8PCAiXCIgIgotICAgICAgIDw8ICJlZGdlTW9kZT1cIiIgPDwgbV9lZGdlTW9kZSA8
PCAiXCIgIgotICAgICAgIDw8ICJrZXJuZWxVbml0TGVuZ3RoPVwiIiA8PCBtX2tlcm5lbFVuaXRM
ZW5ndGggPDwgIlwiICIKLSAgICAgICA8PCAicHJlc2VydmVBbHBoYT1cIiIgPDwgbV9wcmVzZXJ2
ZUFscGhhIDw8ICJcIl1cbiI7Ci0KLSAgICBUZXh0U3RyZWFtOjpJbmRlbnRTY29wZSBpbmRlbnRT
Y29wZSh0cyk7Ci0gICAgaW5wdXRFZmZlY3QoMCktPmV4dGVybmFsUmVwcmVzZW50YXRpb24odHMs
IHJlcHJlc2VudGF0aW9uKTsKKyAgICB7CisgICAgICAgIEZpbHRlckVmZmVjdDo6ZXh0ZXJuYWxS
ZXByZXNlbnRhdGlvbih0cywgcmVwcmVzZW50YXRpb24pOworCisgICAgICAgIHRzIDw8ICIgb3Jk
ZXI9XCIiIDw8IG1fa2VybmVsU2l6ZSA8PCAiXCIiOworICAgICAgICB0cyA8PCAiIGtlcm5lbE1h
dHJpeD1cIiIgPDwgbV9rZXJuZWxNYXRyaXggIDw8ICJcIiI7CisgICAgICAgIHRzIDw8ICIgZGl2
aXNvcj1cIiIgPDwgbV9kaXZpc29yIDw8ICJcIiI7CisgICAgICAgIHRzIDw8ICIgYmlhcz1cIiIg
PDwgbV9iaWFzIDw8ICJcIiI7CisgICAgICAgIHRzIDw8ICIgdGFyZ2V0PVwiIiA8PCBtX3Rhcmdl
dE9mZnNldCA8PCAiXCIiOworICAgICAgICB0cyA8PCAiIGVkZ2VNb2RlPVwiIiA8PCBtX2VkZ2VN
b2RlIDw8ICJcIiI7CisgICAgICAgIHRzIDw8ICIga2VybmVsVW5pdExlbmd0aD1cIiIgPDwgbV9r
ZXJuZWxVbml0TGVuZ3RoIDw8ICJcIiI7CisgICAgICAgIHRzIDw8ICIgcHJlc2VydmVBbHBoYT1c
IiIgPDwgbV9wcmVzZXJ2ZUFscGhhIDw8ICJcIiI7CisgICAgfQorICAgIHRzIDw8ICJdXG4iOwog
ICAgIHJldHVybiB0czsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZmlsdGVycy9GRUNvbnZvbHZlTWF0cml4LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29udm9sdmVNYXRyaXguaAppbmRleCA3NTQxZjNlNGVk
YThhM2Q3OWE3NDJlY2IwMGVjNGRkNTRlNzcyNDFjLi5lZTZiYzhmYWFhZmIwZTAxOTJhOGUxYTU5
ZWVhMTYxZTNjNTM0NzM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9maWx0ZXJzL0ZFQ29udm9sdmVNYXRyaXguaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29udm9sdmVNYXRyaXguaApAQCAtNzQsNyArNzQsNyBA
QCBwcml2YXRlOgogCiAgICAgc3RkOjp1bmlxdWVfcHRyPEZpbHRlckVmZmVjdEFwcGxpZXI+IGNy
ZWF0ZUFwcGxpZXIoY29uc3QgRmlsdGVyJikgY29uc3Qgb3ZlcnJpZGU7CiAKLSAgICBXVEY6OlRl
eHRTdHJlYW0mIGV4dGVybmFsUmVwcmVzZW50YXRpb24oV1RGOjpUZXh0U3RyZWFtJiwgUmVwcmVz
ZW50YXRpb25UeXBlKSBjb25zdCBvdmVycmlkZTsKKyAgICBXVEY6OlRleHRTdHJlYW0mIGV4dGVy
bmFsUmVwcmVzZW50YXRpb24oV1RGOjpUZXh0U3RyZWFtJiwgRmlsdGVyUmVwcmVzZW50YXRpb24p
IGNvbnN0IG92ZXJyaWRlOwogCiAgICAgSW50U2l6ZSBtX2tlcm5lbFNpemU7CiAgICAgZmxvYXQg
bV9kaXZpc29yOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZmlsdGVycy9GRURpZmZ1c2VMaWdodGluZy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9maWx0ZXJzL0ZFRGlmZnVzZUxpZ2h0aW5nLmNwcAppbmRleCAwN2IwOGNjYTRhMzg3
ZWVmMzczYzhkMDQ3MDk4N2M1MWJjMGQ1NGQ1Li43YTY4YWQ2YWY0NjVkNzM3ZGViMjJlYWQxZTcw
YzQ4ZjdmYzE2N2FkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9maWx0ZXJzL0ZFRGlmZnVzZUxpZ2h0aW5nLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRGlmZnVzZUxpZ2h0aW5nLmNwcApAQCAtNDcsMTYgKzQ3
LDE3IEBAIGJvb2wgRkVEaWZmdXNlTGlnaHRpbmc6OnNldERpZmZ1c2VDb25zdGFudChmbG9hdCBk
aWZmdXNlQ29uc3RhbnQpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLVRleHRTdHJlYW0mIEZFRGlm
ZnVzZUxpZ2h0aW5nOjpleHRlcm5hbFJlcHJlc2VudGF0aW9uKFRleHRTdHJlYW0mIHRzLCBSZXBy
ZXNlbnRhdGlvblR5cGUgcmVwcmVzZW50YXRpb24pIGNvbnN0CitUZXh0U3RyZWFtJiBGRURpZmZ1
c2VMaWdodGluZzo6ZXh0ZXJuYWxSZXByZXNlbnRhdGlvbihUZXh0U3RyZWFtJiB0cywgRmlsdGVy
UmVwcmVzZW50YXRpb24gcmVwcmVzZW50YXRpb24pIGNvbnN0CiB7CiAgICAgdHMgPDwgaW5kZW50
IDw8ICJbZmVEaWZmdXNlTGlnaHRpbmciOwotICAgIEZpbHRlckVmZmVjdDo6ZXh0ZXJuYWxSZXBy
ZXNlbnRhdGlvbih0cywgcmVwcmVzZW50YXRpb24pOwotICAgIHRzIDw8ICIgc3VyZmFjZVNjYWxl
PVwiIiA8PCBtX3N1cmZhY2VTY2FsZSA8PCAiXCIgIgotICAgICAgIDw8ICJkaWZmdXNlQ29uc3Rh
bnQ9XCIiIDw8IG1fZGlmZnVzZUNvbnN0YW50IDw8ICJcIiAiCi0gICAgICAgPDwgImtlcm5lbFVu
aXRMZW5ndGg9XCIiIDw8IG1fa2VybmVsVW5pdExlbmd0aFggPDwgIiwgIiA8PCBtX2tlcm5lbFVu
aXRMZW5ndGhZIDw8ICJcIl1cbiI7CisgICAgeworICAgICAgICBGaWx0ZXJFZmZlY3Q6OmV4dGVy
bmFsUmVwcmVzZW50YXRpb24odHMsIHJlcHJlc2VudGF0aW9uKTsKIAotICAgIFRleHRTdHJlYW06
OkluZGVudFNjb3BlIGluZGVudFNjb3BlKHRzKTsKLSAgICBpbnB1dEVmZmVjdCgwKS0+ZXh0ZXJu
YWxSZXByZXNlbnRhdGlvbih0cywgcmVwcmVzZW50YXRpb24pOworICAgICAgICB0cyA8PCAiIHN1
cmZhY2VTY2FsZT1cIiIgPDwgbV9zdXJmYWNlU2NhbGUgPDwgIlwiIjsKKyAgICAgICAgdHMgPDwg
IiBkaWZmdXNlQ29uc3RhbnQ9XCIiIDw8IG1fZGlmZnVzZUNvbnN0YW50IDw8ICJcIiI7CisgICAg
ICAgIHRzIDw8ICIga2VybmVsVW5pdExlbmd0aD1cIiIgPDwgbV9rZXJuZWxVbml0TGVuZ3RoWCA8
PCAiLCAiIDw8IG1fa2VybmVsVW5pdExlbmd0aFkgPDwgIlwiIjsKKyAgICB9CisgICAgdHMgPDwg
Il1cbiI7CiAgICAgcmV0dXJuIHRzOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRGlmZnVzZUxpZ2h0aW5nLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRGlmZnVzZUxpZ2h0aW5nLmgKaW5kZXgg
YTJkMTI1OGUzYWQ2N2M1YjliNGZhYzJkNDVjMjIxODlhNjhkMDhkZC4uMjI3YWY4ZTIxZjIyNmNi
NTRkYWY1NWMyODUwNDY4MTRkM2JhOTBlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRURpZmZ1c2VMaWdodGluZy5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVEaWZmdXNlTGlnaHRpbmcuaApAQCAt
MzUsNyArMzUsNyBAQCBwdWJsaWM6CiAgICAgZmxvYXQgZGlmZnVzZUNvbnN0YW50KCkgY29uc3Qg
eyByZXR1cm4gbV9kaWZmdXNlQ29uc3RhbnQ7IH0KICAgICBib29sIHNldERpZmZ1c2VDb25zdGFu
dChmbG9hdCk7CiAKLSAgICBXVEY6OlRleHRTdHJlYW0mIGV4dGVybmFsUmVwcmVzZW50YXRpb24o
V1RGOjpUZXh0U3RyZWFtJiwgUmVwcmVzZW50YXRpb25UeXBlKSBjb25zdCBvdmVycmlkZTsKKyAg
ICBXVEY6OlRleHRTdHJlYW0mIGV4dGVybmFsUmVwcmVzZW50YXRpb24oV1RGOjpUZXh0U3RyZWFt
JiwgRmlsdGVyUmVwcmVzZW50YXRpb24pIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgdGVtcGxhdGU8
Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8UmVmPEZFRGlmZnVzZUxpZ2h0aW5n
Pj4gZGVjb2RlKERlY29kZXImKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZmlsdGVycy9GRURpc3BsYWNlbWVudE1hcC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRGlzcGxhY2VtZW50TWFwLmNwcAppbmRleCBm
ZTYxZDkyYTkyN2M0ZjAxMGJkYjkxMzA5ZjQ1MjkzMzQzNjRmM2U5Li40YjkyZjk0MGFkZmJlYWU0
YWQ4NzUyNjA2YjYzM2Y1NjhhZTk1Y2NkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRGlzcGxhY2VtZW50TWFwLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRGlzcGxhY2VtZW50TWFwLmNwcApA
QCAtMTE2LDE3ICsxMTYsMTcgQEAgc3RhdGljIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0
cmVhbSYgdHMsIGNvbnN0IENoYW5uZWxTZWxlY3RvclR5cGUmIHR5cGUpCiAgICAgcmV0dXJuIHRz
OwogfQogCi1UZXh0U3RyZWFtJiBGRURpc3BsYWNlbWVudE1hcDo6ZXh0ZXJuYWxSZXByZXNlbnRh
dGlvbihUZXh0U3RyZWFtJiB0cywgUmVwcmVzZW50YXRpb25UeXBlIHJlcHJlc2VudGF0aW9uKSBj
b25zdAorVGV4dFN0cmVhbSYgRkVEaXNwbGFjZW1lbnRNYXA6OmV4dGVybmFsUmVwcmVzZW50YXRp
b24oVGV4dFN0cmVhbSYgdHMsIEZpbHRlclJlcHJlc2VudGF0aW9uIHJlcHJlc2VudGF0aW9uKSBj
b25zdAogewogICAgIHRzIDw8IGluZGVudCA8PCAiW2ZlRGlzcGxhY2VtZW50TWFwIjsKLSAgICBG
aWx0ZXJFZmZlY3Q6OmV4dGVybmFsUmVwcmVzZW50YXRpb24odHMsIHJlcHJlc2VudGF0aW9uKTsK
LSAgICB0cyA8PCAiIHNjYWxlPVwiIiA8PCBtX3NjYWxlIDw8ICJcIiAiCi0gICAgICAgPDwgInhD
aGFubmVsU2VsZWN0b3I9XCIiIDw8IG1feENoYW5uZWxTZWxlY3RvciA8PCAiXCIgIgotICAgICAg
IDw8ICJ5Q2hhbm5lbFNlbGVjdG9yPVwiIiA8PCBtX3lDaGFubmVsU2VsZWN0b3IgPDwgIlwiXVxu
IjsKLQotICAgIFRleHRTdHJlYW06OkluZGVudFNjb3BlIGluZGVudFNjb3BlKHRzKTsKLSAgICBp
bnB1dEVmZmVjdCgwKS0+ZXh0ZXJuYWxSZXByZXNlbnRhdGlvbih0cywgcmVwcmVzZW50YXRpb24p
OwotICAgIGlucHV0RWZmZWN0KDEpLT5leHRlcm5hbFJlcHJlc2VudGF0aW9uKHRzLCByZXByZXNl
bnRhdGlvbik7CisgICAgeworICAgICAgICBGaWx0ZXJFZmZlY3Q6OmV4dGVybmFsUmVwcmVzZW50
YXRpb24odHMsIHJlcHJlc2VudGF0aW9uKTsKKworICAgICAgICB0cyA8PCAiIHNjYWxlPVwiIiA8
PCBtX3NjYWxlIDw8ICJcIiI7CisgICAgICAgIHRzIDw8ICIgeENoYW5uZWxTZWxlY3Rvcj1cIiIg
PDwgbV94Q2hhbm5lbFNlbGVjdG9yIDw8ICJcIiI7CisgICAgICAgIHRzIDw8ICIgeUNoYW5uZWxT
ZWxlY3Rvcj1cIiIgPDwgbV95Q2hhbm5lbFNlbGVjdG9yIDw8ICJcIiI7CisgICAgfQorICAgIHRz
IDw8ICJdXG4iOwogICAgIHJldHVybiB0czsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRURpc3BsYWNlbWVudE1hcC5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRURpc3BsYWNlbWVudE1hcC5oCmlu
ZGV4IDQyZTY1YjJlMWI2NWE4NmNjMTA4NDI2ZjdmMWZhNDNlODMzM2M1NGUuLmFkOTVjZTNkN2Nj
YWFlM2NlYmIxNTE2YWY4YjBlMmM1ZmFhODYxMDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVEaXNwbGFjZW1lbnRNYXAuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRGlzcGxhY2VtZW50TWFwLmgK
QEAgLTYxLDcgKzYxLDcgQEAgcHJpdmF0ZToKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxGaWx0ZXJF
ZmZlY3RBcHBsaWVyPiBjcmVhdGVBcHBsaWVyKGNvbnN0IEZpbHRlciYpIGNvbnN0IG92ZXJyaWRl
OwogCi0gICAgV1RGOjpUZXh0U3RyZWFtJiBleHRlcm5hbFJlcHJlc2VudGF0aW9uKFdURjo6VGV4
dFN0cmVhbSYsIFJlcHJlc2VudGF0aW9uVHlwZSkgY29uc3Qgb3ZlcnJpZGU7CisgICAgV1RGOjpU
ZXh0U3RyZWFtJiBleHRlcm5hbFJlcHJlc2VudGF0aW9uKFdURjo6VGV4dFN0cmVhbSYsIEZpbHRl
clJlcHJlc2VudGF0aW9uKSBjb25zdCBvdmVycmlkZTsKIAogICAgIENoYW5uZWxTZWxlY3RvclR5
cGUgbV94Q2hhbm5lbFNlbGVjdG9yOwogICAgIENoYW5uZWxTZWxlY3RvclR5cGUgbV95Q2hhbm5l
bFNlbGVjdG9yOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZmlsdGVycy9GRURyb3BTaGFkb3cuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZmlsdGVycy9GRURyb3BTaGFkb3cuY3BwCmluZGV4IDdmMDU3OWI2ZDZmYjViZDRhN2RhZmQw
YmNlZTgxYWMyNzE2NGJiYzQuLjViN2YzZmJkZjg5ZDBkYjMyM2M4NmY2NWU3MjdkMTgxZmQ1NDRm
NzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMv
RkVEcm9wU2hhZG93LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9m
aWx0ZXJzL0ZFRHJvcFNoYWRvdy5jcHAKQEAgLTc3LDE0ICs3NywxOCBAQCBzdGQ6OnVuaXF1ZV9w
dHI8RmlsdGVyRWZmZWN0QXBwbGllcj4gRkVEcm9wU2hhZG93OjpjcmVhdGVBcHBsaWVyKGNvbnN0
IEZpbHRlciYpCiAgICAgcmV0dXJuIEZpbHRlckVmZmVjdEFwcGxpZXI6OmNyZWF0ZTxGRURyb3BT
aGFkb3dTb2Z0d2FyZUFwcGxpZXI+KCp0aGlzKTsKIH0KICAgICAKLVRleHRTdHJlYW0mIEZFRHJv
cFNoYWRvdzo6ZXh0ZXJuYWxSZXByZXNlbnRhdGlvbihUZXh0U3RyZWFtJiB0cywgUmVwcmVzZW50
YXRpb25UeXBlIHJlcHJlc2VudGF0aW9uKSBjb25zdAorVGV4dFN0cmVhbSYgRkVEcm9wU2hhZG93
OjpleHRlcm5hbFJlcHJlc2VudGF0aW9uKFRleHRTdHJlYW0mIHRzLCBGaWx0ZXJSZXByZXNlbnRh
dGlvbiByZXByZXNlbnRhdGlvbikgY29uc3QKIHsKICAgICB0cyA8PCBpbmRlbnQgPDwiW2ZlRHJv
cFNoYWRvdyI7Ci0gICAgRmlsdGVyRWZmZWN0OjpleHRlcm5hbFJlcHJlc2VudGF0aW9uKHRzLCBy
ZXByZXNlbnRhdGlvbik7Ci0gICAgdHMgPDwgIiBzdGREZXZpYXRpb249XCIiIDw8IG1fc3RkWCA8
PCAiLCAiIDw8IG1fc3RkWSA8PCAiXCIgZHg9XCIiIDw8IG1fZHggPDwgIlwiIGR5PVwiIiA8PCBt
X2R5IDw8ICJcIiBmbG9vZC1jb2xvcj1cIiIgPDwgc2VyaWFsaXphdGlvbkZvclJlbmRlclRyZWVB
c1RleHQobV9zaGFkb3dDb2xvcikgPDwiXCIgZmxvb2Qtb3BhY2l0eT1cIiIgPDwgbV9zaGFkb3dP
cGFjaXR5IDw8ICJdXG4iOworICAgIHsKKyAgICAgICAgRmlsdGVyRWZmZWN0OjpleHRlcm5hbFJl
cHJlc2VudGF0aW9uKHRzLCByZXByZXNlbnRhdGlvbik7CiAKLSAgICBUZXh0U3RyZWFtOjpJbmRl
bnRTY29wZSBpbmRlbnRTY29wZSh0cyk7Ci0gICAgaW5wdXRFZmZlY3QoMCktPmV4dGVybmFsUmVw
cmVzZW50YXRpb24odHMsIHJlcHJlc2VudGF0aW9uKTsKKyAgICAgICAgdHMgPDwgIiBzdGREZXZp
YXRpb249XCIiIDw8IG1fc3RkWCA8PCAiLCAiIDw8IG1fc3RkWSA8PCAiXCIiOworICAgICAgICB0
cyA8PCAiIGR4PVwiIiA8PCBtX2R4IDw8ICJcIiBkeT1cIiIgPDwgbV9keSA8PCAiXCIiOworICAg
ICAgICB0cyA8PCAiIGZsb29kLWNvbG9yPVwiIiA8PCBzZXJpYWxpemF0aW9uRm9yUmVuZGVyVHJl
ZUFzVGV4dChtX3NoYWRvd0NvbG9yKSA8PCAiXCIiOworICAgICAgICB0cyA8PCAiIGZsb29kLW9w
YWNpdHk9XCIiIDw8IG1fc2hhZG93T3BhY2l0eSA8PCAiXCIiOworICAgIH0KKyAgICB0cyA8PCAi
XVxuIjsKICAgICByZXR1cm4gdHM7CiB9CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRHJvcFNoYWRvdy5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRURyb3BTaGFkb3cuaAppbmRleCA0YmZkNjA4
NDhiMWE4MjQ3Mjg4NGFiYmQwODI0YjdhNzZlZDBkNDE0Li43OGE1MzdmZjdmNmFkNjIyZjAxOTU3
MDFlZjQyNjRjMzdiNTBhYTAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9maWx0ZXJzL0ZFRHJvcFNoYWRvdy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVEcm9wU2hhZG93LmgKQEAgLTU5LDcgKzU5LDcgQEAgcHJp
dmF0ZToKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxGaWx0ZXJFZmZlY3RBcHBsaWVyPiBjcmVhdGVB
cHBsaWVyKGNvbnN0IEZpbHRlciYpIGNvbnN0IG92ZXJyaWRlOwogCi0gICAgV1RGOjpUZXh0U3Ry
ZWFtJiBleHRlcm5hbFJlcHJlc2VudGF0aW9uKFdURjo6VGV4dFN0cmVhbSYsIFJlcHJlc2VudGF0
aW9uVHlwZSkgY29uc3Qgb3ZlcnJpZGU7CisgICAgV1RGOjpUZXh0U3RyZWFtJiBleHRlcm5hbFJl
cHJlc2VudGF0aW9uKFdURjo6VGV4dFN0cmVhbSYsIEZpbHRlclJlcHJlc2VudGF0aW9uKSBjb25z
dCBvdmVycmlkZTsKIAogICAgIGZsb2F0IG1fc3RkWDsKICAgICBmbG9hdCBtX3N0ZFk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRmxvb2Qu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUZsb29kLmNw
cAppbmRleCA0NDM5YTJlMWU1N2JkOThiZDJhZDQ4YzZmNjRkNmRhNTk4M2MwMjBiLi5kNThlMDc1
MzUzMThmNDUzN2YyZWE5ODc0Zjc5YTk0ZmJlNmM4Y2I3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRmxvb2QuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVGbG9vZC5jcHAKQEAgLTY5LDEyICs2
OSwxNiBAQCBzdGQ6OnVuaXF1ZV9wdHI8RmlsdGVyRWZmZWN0QXBwbGllcj4gRkVGbG9vZDo6Y3Jl
YXRlQXBwbGllcihjb25zdCBGaWx0ZXImKSBjb25zdAogICAgIHJldHVybiBGaWx0ZXJFZmZlY3RB
cHBsaWVyOjpjcmVhdGU8RkVGbG9vZFNvZnR3YXJlQXBwbGllcj4oKnRoaXMpOwogfQogCi1UZXh0
U3RyZWFtJiBGRUZsb29kOjpleHRlcm5hbFJlcHJlc2VudGF0aW9uKFRleHRTdHJlYW0mIHRzLCBS
ZXByZXNlbnRhdGlvblR5cGUgcmVwcmVzZW50YXRpb24pIGNvbnN0CitUZXh0U3RyZWFtJiBGRUZs
b29kOjpleHRlcm5hbFJlcHJlc2VudGF0aW9uKFRleHRTdHJlYW0mIHRzLCBGaWx0ZXJSZXByZXNl
bnRhdGlvbiByZXByZXNlbnRhdGlvbikgY29uc3QKIHsKICAgICB0cyA8PCBpbmRlbnQgPDwgIltm
ZUZsb29kIjsKLSAgICBGaWx0ZXJFZmZlY3Q6OmV4dGVybmFsUmVwcmVzZW50YXRpb24odHMsIHJl
cHJlc2VudGF0aW9uKTsKLSAgICB0cyA8PCAiIGZsb29kLWNvbG9yPVwiIiA8PCBzZXJpYWxpemF0
aW9uRm9yUmVuZGVyVHJlZUFzVGV4dChmbG9vZENvbG9yKCkpIDw8ICJcIiAiCi0gICAgICAgPDwg
ImZsb29kLW9wYWNpdHk9XCIiIDw8IGZsb29kT3BhY2l0eSgpIDw8ICJcIl1cbiI7CisgICAgewor
ICAgICAgICBGaWx0ZXJFZmZlY3Q6OmV4dGVybmFsUmVwcmVzZW50YXRpb24odHMsIHJlcHJlc2Vu
dGF0aW9uKTsKKworICAgICAgICB0cyA8PCAiIGZsb29kLWNvbG9yPVwiIiA8PCBzZXJpYWxpemF0
aW9uRm9yUmVuZGVyVHJlZUFzVGV4dChmbG9vZENvbG9yKCkpIDw8ICJcIiI7CisgICAgICAgIHRz
IDw8ICIgZmxvb2Qtb3BhY2l0eT1cIiIgPDwgZmxvb2RPcGFjaXR5KCkgPDwgIlwiIjsKKyAgICB9
CisgICAgdHMgPDwgIl1cbiI7CiAgICAgcmV0dXJuIHRzOwogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRmxvb2QuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVGbG9vZC5oCmluZGV4IDBhNjVjNjgy
MzQxMGVlZmJlMDhlNjY5Mzc4MDhlMWE5N2FlNGY2YjguLmVlNmVjNGM2ODg5NTIyYWY3ZDQ1MTYz
MjE2MzE1ZGMxNGQzMjVlYjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2ZpbHRlcnMvRkVGbG9vZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2ZpbHRlcnMvRkVGbG9vZC5oCkBAIC01Myw3ICs1Myw3IEBAIHByaXZhdGU6CiAKICAg
ICBzdGQ6OnVuaXF1ZV9wdHI8RmlsdGVyRWZmZWN0QXBwbGllcj4gY3JlYXRlQXBwbGllcihjb25z
dCBGaWx0ZXImKSBjb25zdCBvdmVycmlkZTsKIAotICAgIFdURjo6VGV4dFN0cmVhbSYgZXh0ZXJu
YWxSZXByZXNlbnRhdGlvbihXVEY6OlRleHRTdHJlYW0mLCBSZXByZXNlbnRhdGlvblR5cGUpIGNv
bnN0IG92ZXJyaWRlOworICAgIFdURjo6VGV4dFN0cmVhbSYgZXh0ZXJuYWxSZXByZXNlbnRhdGlv
bihXVEY6OlRleHRTdHJlYW0mLCBGaWx0ZXJSZXByZXNlbnRhdGlvbikgY29uc3Qgb3ZlcnJpZGU7
CiAKICAgICBDb2xvciBtX2Zsb29kQ29sb3I7CiAgICAgZmxvYXQgbV9mbG9vZE9wYWNpdHk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFR2F1
c3NpYW5CbHVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMv
RkVHYXVzc2lhbkJsdXIuY3BwCmluZGV4IDE2ZWEyMmQ4YTQ5MjllMjA1NGQ0NmRjYzJkZjI1YTQ2
YmI2NzYxNzUuLmRiNDliZmMwMDE2MTAxZGQ0ZWZhYmQwYjUxOWQ5NGRjMWI2YjUyYWIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVHYXVzc2lh
bkJsdXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMv
RkVHYXVzc2lhbkJsdXIuY3BwCkBAIC0xMzYsMTQgKzEzNiwxNSBAQCBzdGQ6OnVuaXF1ZV9wdHI8
RmlsdGVyRWZmZWN0QXBwbGllcj4gRkVHYXVzc2lhbkJsdXI6OmNyZWF0ZUFwcGxpZXIoY29uc3Qg
RmlsdGVyJgogICAgIHJldHVybiBGaWx0ZXJFZmZlY3RBcHBsaWVyOjpjcmVhdGU8RkVHYXVzc2lh
bkJsdXJTb2Z0d2FyZUFwcGxpZXI+KCp0aGlzKTsKIH0KIAotVGV4dFN0cmVhbSYgRkVHYXVzc2lh
bkJsdXI6OmV4dGVybmFsUmVwcmVzZW50YXRpb24oVGV4dFN0cmVhbSYgdHMsIFJlcHJlc2VudGF0
aW9uVHlwZSByZXByZXNlbnRhdGlvbikgY29uc3QKK1RleHRTdHJlYW0mIEZFR2F1c3NpYW5CbHVy
OjpleHRlcm5hbFJlcHJlc2VudGF0aW9uKFRleHRTdHJlYW0mIHRzLCBGaWx0ZXJSZXByZXNlbnRh
dGlvbiByZXByZXNlbnRhdGlvbikgY29uc3QKIHsKICAgICB0cyA8PCBpbmRlbnQgPDwgIltmZUdh
dXNzaWFuQmx1ciI7Ci0gICAgRmlsdGVyRWZmZWN0OjpleHRlcm5hbFJlcHJlc2VudGF0aW9uKHRz
LCByZXByZXNlbnRhdGlvbik7Ci0gICAgdHMgPDwgIiBzdGREZXZpYXRpb249XCIiIDw8IG1fc3Rk
WCA8PCAiLCAiIDw8IG1fc3RkWSA8PCAiXCJdXG4iOworICAgIHsKKyAgICAgICAgRmlsdGVyRWZm
ZWN0OjpleHRlcm5hbFJlcHJlc2VudGF0aW9uKHRzLCByZXByZXNlbnRhdGlvbik7CiAKLSAgICBU
ZXh0U3RyZWFtOjpJbmRlbnRTY29wZSBpbmRlbnRTY29wZSh0cyk7Ci0gICAgaW5wdXRFZmZlY3Qo
MCktPmV4dGVybmFsUmVwcmVzZW50YXRpb24odHMsIHJlcHJlc2VudGF0aW9uKTsKKyAgICAgICAg
dHMgPDwgIiBzdGREZXZpYXRpb249XCIiIDw8IG1fc3RkWCA8PCAiLCAiIDw8IG1fc3RkWSA8PCAi
XCIiOworICAgIH0KKyAgICB0cyA8PCAiXVxuIjsKICAgICByZXR1cm4gdHM7CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVHYXVzc2lh
bkJsdXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVHYXVz
c2lhbkJsdXIuaAppbmRleCA5NTY3YTJmMDRiY2U5MjA1NWEzN2U2Y2I1Y2QwOGFmNGVlN2EyMmY3
Li44NTE3YWMxMGI4NjJlMjhlNWNlOTg0YmMyZGJjN2M1MGUwZDgxOGE4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFR2F1c3NpYW5CbHVyLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUdhdXNzaWFu
Qmx1ci5oCkBAIC01OCw3ICs1OCw3IEBAIHByaXZhdGU6CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8
RmlsdGVyRWZmZWN0QXBwbGllcj4gY3JlYXRlQXBwbGllcihjb25zdCBGaWx0ZXImKSBjb25zdCBv
dmVycmlkZTsKIAotICAgIFdURjo6VGV4dFN0cmVhbSYgZXh0ZXJuYWxSZXByZXNlbnRhdGlvbihX
VEY6OlRleHRTdHJlYW0mLCBSZXByZXNlbnRhdGlvblR5cGUpIGNvbnN0IG92ZXJyaWRlOworICAg
IFdURjo6VGV4dFN0cmVhbSYgZXh0ZXJuYWxSZXByZXNlbnRhdGlvbihXVEY6OlRleHRTdHJlYW0m
LCBGaWx0ZXJSZXByZXNlbnRhdGlvbikgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICBmbG9hdCBtX3N0
ZFg7CiAgICAgZmxvYXQgbV9zdGRZOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZmlsdGVycy9GRU1lcmdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2ZpbHRlcnMvRkVNZXJnZS5jcHAKaW5kZXggOTU5YjQ4YWJlMDg2ODE2YzM1OGUz
Yzg2NDlhMTkzYmIwY2VlZWZhMi4uMDkwMDQ2MGEwNjViMjRkNTVmM2RlNjNkN2VmZTQxNGQ4OTdj
MDI4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVy
cy9GRU1lcmdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0
ZXJzL0ZFTWVyZ2UuY3BwCkBAIC00NSwxNyArNDUsMTUgQEAgc3RkOjp1bmlxdWVfcHRyPEZpbHRl
ckVmZmVjdEFwcGxpZXI+IEZFTWVyZ2U6OmNyZWF0ZUFwcGxpZXIoY29uc3QgRmlsdGVyJikgY29u
c3QKICAgICByZXR1cm4gRmlsdGVyRWZmZWN0QXBwbGllcjo6Y3JlYXRlPEZFTWVyZ2VTb2Z0d2Fy
ZUFwcGxpZXI+KCp0aGlzKTsKIH0KIAotVGV4dFN0cmVhbSYgRkVNZXJnZTo6ZXh0ZXJuYWxSZXBy
ZXNlbnRhdGlvbihUZXh0U3RyZWFtJiB0cywgUmVwcmVzZW50YXRpb25UeXBlIHJlcHJlc2VudGF0
aW9uKSBjb25zdAorVGV4dFN0cmVhbSYgRkVNZXJnZTo6ZXh0ZXJuYWxSZXByZXNlbnRhdGlvbihU
ZXh0U3RyZWFtJiB0cywgRmlsdGVyUmVwcmVzZW50YXRpb24gcmVwcmVzZW50YXRpb24pIGNvbnN0
CiB7CiAgICAgdHMgPDwgaW5kZW50IDw8ICJbZmVNZXJnZSI7Ci0gICAgRmlsdGVyRWZmZWN0Ojpl
eHRlcm5hbFJlcHJlc2VudGF0aW9uKHRzLCByZXByZXNlbnRhdGlvbik7Ci0gICAgdW5zaWduZWQg
c2l6ZSA9IG51bWJlck9mRWZmZWN0SW5wdXRzKCk7Ci0gICAgQVNTRVJUKHNpemUgPiAwKTsKLSAg
ICB0cyA8PCAiIG1lcmdlTm9kZXM9XCIiIDw8IHNpemUgPDwgIlwiXVxuIjsKLQotICAgIFRleHRT
dHJlYW06OkluZGVudFNjb3BlIGluZGVudFNjb3BlKHRzKTsKLSAgICBmb3IgKHVuc2lnbmVkIGkg
PSAwOyBpIDwgc2l6ZTsgKytpKQotICAgICAgICBpbnB1dEVmZmVjdChpKS0+ZXh0ZXJuYWxSZXBy
ZXNlbnRhdGlvbih0cywgcmVwcmVzZW50YXRpb24pOworICAgIHsKKyAgICAgICAgRmlsdGVyRWZm
ZWN0OjpleHRlcm5hbFJlcHJlc2VudGF0aW9uKHRzLCByZXByZXNlbnRhdGlvbik7CisKKyAgICAg
ICAgdHMgPDwgIiBtZXJnZU5vZGVzPVwiIiA8PCBtX251bWJlck9mRWZmZWN0SW5wdXRzIDw8ICJc
IiI7CisgICAgfQorICAgIHRzIDw8ICJdXG4iOwogICAgIHJldHVybiB0czsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRU1lcmdlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFTWVyZ2UuaAppbmRl
eCBiOWUxNThmY2Y0YTNiN2Q3NzhkZjE2NmY4NzJhOTRmZTcyNzZkMGEyLi43OTM4YjdjMTZlNDlm
YzI0NWZkNjcyMTAwNjE2YmEzMWJiOWIyZGVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFTWVyZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFTWVyZ2UuaApAQCAtMzgsNyArMzgsNyBAQCBwcml2
YXRlOgogCiAgICAgc3RkOjp1bmlxdWVfcHRyPEZpbHRlckVmZmVjdEFwcGxpZXI+IGNyZWF0ZUFw
cGxpZXIoY29uc3QgRmlsdGVyJikgY29uc3Qgb3ZlcnJpZGU7CiAKLSAgICBXVEY6OlRleHRTdHJl
YW0mIGV4dGVybmFsUmVwcmVzZW50YXRpb24oV1RGOjpUZXh0U3RyZWFtJiwgUmVwcmVzZW50YXRp
b25UeXBlKSBjb25zdCBvdmVycmlkZTsKKyAgICBXVEY6OlRleHRTdHJlYW0mIGV4dGVybmFsUmVw
cmVzZW50YXRpb24oV1RGOjpUZXh0U3RyZWFtJiwgRmlsdGVyUmVwcmVzZW50YXRpb24pIGNvbnN0
IG92ZXJyaWRlOwogCiAgICAgdW5zaWduZWQgbV9udW1iZXJPZkVmZmVjdElucHV0cyB7IDAgfTsK
IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJz
L0ZFTW9ycGhvbG9neS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0
ZXJzL0ZFTW9ycGhvbG9neS5jcHAKaW5kZXggMjU5NjliODE5YWI2MjcxNGZiMGJmNzAyOTQ2NGE4
NzZhNzQ2ZmU4My4uYzlkNzM4ODNhNWQ4ZjVkNWM3MjI0OTRhN2IyYTQ2NWU3ZmIzZTRiYyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRU1vcnBo
b2xvZ3kuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMv
RkVNb3JwaG9sb2d5LmNwcApAQCAtMTAxLDE1ICsxMDEsMTYgQEAgc3RhdGljIFRleHRTdHJlYW0m
IG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIGNvbnN0IE1vcnBob2xvZ3lPcGVyYXRvclR5cGUm
IHR5cGUKICAgICByZXR1cm4gdHM7CiB9CiAKLVRleHRTdHJlYW0mIEZFTW9ycGhvbG9neTo6ZXh0
ZXJuYWxSZXByZXNlbnRhdGlvbihUZXh0U3RyZWFtJiB0cywgUmVwcmVzZW50YXRpb25UeXBlIHJl
cHJlc2VudGF0aW9uKSBjb25zdAorVGV4dFN0cmVhbSYgRkVNb3JwaG9sb2d5OjpleHRlcm5hbFJl
cHJlc2VudGF0aW9uKFRleHRTdHJlYW0mIHRzLCBGaWx0ZXJSZXByZXNlbnRhdGlvbiByZXByZXNl
bnRhdGlvbikgY29uc3QKIHsKICAgICB0cyA8PCBpbmRlbnQgPDwgIltmZU1vcnBob2xvZ3kiOwot
ICAgIEZpbHRlckVmZmVjdDo6ZXh0ZXJuYWxSZXByZXNlbnRhdGlvbih0cywgcmVwcmVzZW50YXRp
b24pOwotICAgIHRzIDw8ICIgb3BlcmF0b3I9XCIiIDw8IG1vcnBob2xvZ3lPcGVyYXRvcigpIDw8
ICJcIiAiCi0gICAgICAgPDwgInJhZGl1cz1cIiIgPDwgcmFkaXVzWCgpIDw8ICIsICIgPDwgcmFk
aXVzWSgpIDw8ICJcIl1cbiI7CisgICAgeworICAgICAgICBGaWx0ZXJFZmZlY3Q6OmV4dGVybmFs
UmVwcmVzZW50YXRpb24odHMsIHJlcHJlc2VudGF0aW9uKTsKIAotICAgIFRleHRTdHJlYW06Oklu
ZGVudFNjb3BlIGluZGVudFNjb3BlKHRzKTsKLSAgICBpbnB1dEVmZmVjdCgwKS0+ZXh0ZXJuYWxS
ZXByZXNlbnRhdGlvbih0cywgcmVwcmVzZW50YXRpb24pOworICAgICAgICB0cyA8PCAiIG9wZXJh
dG9yPVwiIiA8PCBtb3JwaG9sb2d5T3BlcmF0b3IoKSA8PCAiXCIiOworICAgICAgICB0cyA8PCAi
IHJhZGl1cz1cIiIgPDwgcmFkaXVzWCgpIDw8ICIsICIgPDwgcmFkaXVzWSgpIDw8ICJcIiI7Cisg
ICAgfQorICAgIHRzIDw8ICJdXG4iOwogICAgIHJldHVybiB0czsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRU1vcnBob2xvZ3kuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVNb3JwaG9sb2d5LmgK
aW5kZXggODI1YmU5ZTRkZTc5N2Q2NjMxODc2Y2U5MWEzZWU5YTdhM2RkNmI4Mi4uZTQ1NGMzNzFl
ODQ0YzU2ZjcwZjIwOTA1ZWUyMTQ2ZGUyMmY5ZDYzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRU1vcnBob2xvZ3kuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFTW9ycGhvbG9neS5oCkBAIC01Nyw3
ICs1Nyw3IEBAIHByaXZhdGU6CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8RmlsdGVyRWZmZWN0QXBw
bGllcj4gY3JlYXRlQXBwbGllcihjb25zdCBGaWx0ZXImKSBjb25zdCBvdmVycmlkZTsKIAotICAg
IFdURjo6VGV4dFN0cmVhbSYgZXh0ZXJuYWxSZXByZXNlbnRhdGlvbihXVEY6OlRleHRTdHJlYW0m
LCBSZXByZXNlbnRhdGlvblR5cGUpIGNvbnN0IG92ZXJyaWRlOworICAgIFdURjo6VGV4dFN0cmVh
bSYgZXh0ZXJuYWxSZXByZXNlbnRhdGlvbihXVEY6OlRleHRTdHJlYW0mLCBGaWx0ZXJSZXByZXNl
bnRhdGlvbikgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICBNb3JwaG9sb2d5T3BlcmF0b3JUeXBlIG1f
dHlwZTsKICAgICBmbG9hdCBtX3JhZGl1c1g7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFT2Zmc2V0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVPZmZzZXQuY3BwCmluZGV4IDlmMWMyNzk3MTkyOGYy
MzI4YmQxODA2NTRkZDJlYTcxZDNhMmZjZmMuLmM5MTI5N2RlZTQzOWMwNjc4M2IyMzE3ZWY4ZTlm
Y2NhNjIyNzVlNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2ZpbHRlcnMvRkVPZmZzZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2ZpbHRlcnMvRkVPZmZzZXQuY3BwCkBAIC03MCwxNCArNzAsMTUgQEAgc3RkOjp1bmlxdWVf
cHRyPEZpbHRlckVmZmVjdEFwcGxpZXI+IEZFT2Zmc2V0OjpjcmVhdGVBcHBsaWVyKGNvbnN0IEZp
bHRlciYpIGNvbnMKICAgICByZXR1cm4gRmlsdGVyRWZmZWN0QXBwbGllcjo6Y3JlYXRlPEZFT2Zm
c2V0U29mdHdhcmVBcHBsaWVyPigqdGhpcyk7CiB9CiAKLVRleHRTdHJlYW0mIEZFT2Zmc2V0Ojpl
eHRlcm5hbFJlcHJlc2VudGF0aW9uKFRleHRTdHJlYW0mIHRzLCBSZXByZXNlbnRhdGlvblR5cGUg
cmVwcmVzZW50YXRpb24pIGNvbnN0CitUZXh0U3RyZWFtJiBGRU9mZnNldDo6ZXh0ZXJuYWxSZXBy
ZXNlbnRhdGlvbihUZXh0U3RyZWFtJiB0cywgRmlsdGVyUmVwcmVzZW50YXRpb24gcmVwcmVzZW50
YXRpb24pIGNvbnN0CiB7CiAgICAgdHMgPDwgaW5kZW50IDw8ICJbZmVPZmZzZXQiOwotICAgIEZp
bHRlckVmZmVjdDo6ZXh0ZXJuYWxSZXByZXNlbnRhdGlvbih0cywgcmVwcmVzZW50YXRpb24pOwot
ICAgIHRzIDw8ICIgZHg9XCIiIDw8IGR4KCkgPDwgIlwiIGR5PVwiIiA8PCBkeSgpIDw8ICJcIl1c
biI7CisgICAgeworICAgICAgICBGaWx0ZXJFZmZlY3Q6OmV4dGVybmFsUmVwcmVzZW50YXRpb24o
dHMsIHJlcHJlc2VudGF0aW9uKTsKIAotICAgIFRleHRTdHJlYW06OkluZGVudFNjb3BlIGluZGVu
dFNjb3BlKHRzKTsKLSAgICBpbnB1dEVmZmVjdCgwKS0+ZXh0ZXJuYWxSZXByZXNlbnRhdGlvbih0
cywgcmVwcmVzZW50YXRpb24pOworICAgICAgICB0cyA8PCAiIGR4PVwiIiA8PCBkeCgpIDw8ICJc
IiBkeT1cIiIgPDwgZHkoKSA8PCAiXCIiOworICAgIH0KKyAgICB0cyA8PCAiXVxuIjsKICAgICBy
ZXR1cm4gdHM7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2ZpbHRlcnMvRkVPZmZzZXQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2ZpbHRlcnMvRkVPZmZzZXQuaAppbmRleCA2YmExN2ZlZmY2MjE0N2M5NzVmYzdlNThlNmZmMzA0
NDM1MTM0YWYxLi4yZjA2N2IzZWExOThkMzgzZDZkOGFmOTcyNmE3MjQ4NDhmZjkwMjhiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFT2Zmc2V0
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRU9mZnNl
dC5oCkBAIC00OCw3ICs0OCw3IEBAIHByaXZhdGU6CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8Rmls
dGVyRWZmZWN0QXBwbGllcj4gY3JlYXRlQXBwbGllcihjb25zdCBGaWx0ZXImKSBjb25zdCBvdmVy
cmlkZTsKIAotICAgIFdURjo6VGV4dFN0cmVhbSYgZXh0ZXJuYWxSZXByZXNlbnRhdGlvbihXVEY6
OlRleHRTdHJlYW0mLCBSZXByZXNlbnRhdGlvblR5cGUpIGNvbnN0IG92ZXJyaWRlOworICAgIFdU
Rjo6VGV4dFN0cmVhbSYgZXh0ZXJuYWxSZXByZXNlbnRhdGlvbihXVEY6OlRleHRTdHJlYW0mLCBG
aWx0ZXJSZXByZXNlbnRhdGlvbikgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICBmbG9hdCBtX2R4Owog
ICAgIGZsb2F0IG1fZHk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9maWx0ZXJzL0ZFU3BlY3VsYXJMaWdodGluZy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFU3BlY3VsYXJMaWdodGluZy5jcHAKaW5kZXggZmM1NjA2
YmI1NDZlNDk0YTk3YTM1MWFhMTVlNTU4MzY5YTg3ODRlZS4uN2VlMjc0NDVhOGI3YzQ5ZTkzYzhl
MjczZTJlMzFlYWFiMGZlOWJiMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZmlsdGVycy9GRVNwZWN1bGFyTGlnaHRpbmcuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVTcGVjdWxhckxpZ2h0aW5nLmNwcApAQCAt
NTUsMTYgKzU1LDE3IEBAIGJvb2wgRkVTcGVjdWxhckxpZ2h0aW5nOjpzZXRTcGVjdWxhckV4cG9u
ZW50KGZsb2F0IHNwZWN1bGFyRXhwb25lbnQpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLVRleHRT
dHJlYW0mIEZFU3BlY3VsYXJMaWdodGluZzo6ZXh0ZXJuYWxSZXByZXNlbnRhdGlvbihUZXh0U3Ry
ZWFtJiB0cywgUmVwcmVzZW50YXRpb25UeXBlIHJlcHJlc2VudGF0aW9uKSBjb25zdAorVGV4dFN0
cmVhbSYgRkVTcGVjdWxhckxpZ2h0aW5nOjpleHRlcm5hbFJlcHJlc2VudGF0aW9uKFRleHRTdHJl
YW0mIHRzLCBGaWx0ZXJSZXByZXNlbnRhdGlvbiByZXByZXNlbnRhdGlvbikgY29uc3QKIHsKICAg
ICB0cyA8PCBpbmRlbnQgPDwgIltmZVNwZWN1bGFyTGlnaHRpbmciOwotICAgIEZpbHRlckVmZmVj
dDo6ZXh0ZXJuYWxSZXByZXNlbnRhdGlvbih0cywgcmVwcmVzZW50YXRpb24pOwotICAgIHRzIDw8
ICIgc3VyZmFjZVNjYWxlPVwiIiA8PCBtX3N1cmZhY2VTY2FsZSA8PCAiXCIgIgotICAgICAgIDw8
ICJzcGVjdWFsQ29uc3RhbnQ9XCIiIDw8IG1fc3BlY3VsYXJDb25zdGFudCA8PCAiXCIgIgotICAg
ICAgIDw8ICJzcGVjdWxhckV4cG9uZW50PVwiIiA8PCBtX3NwZWN1bGFyRXhwb25lbnQgPDwgIlwi
XVxuIjsKLQotICAgIFRleHRTdHJlYW06OkluZGVudFNjb3BlIGluZGVudFNjb3BlKHRzKTsKLSAg
ICBpbnB1dEVmZmVjdCgwKS0+ZXh0ZXJuYWxSZXByZXNlbnRhdGlvbih0cywgcmVwcmVzZW50YXRp
b24pOworICAgIHsKKyAgICAgICAgRmlsdGVyRWZmZWN0OjpleHRlcm5hbFJlcHJlc2VudGF0aW9u
KHRzLCByZXByZXNlbnRhdGlvbik7CisgICAgCisgICAgICAgIHRzIDw8ICIgc3VyZmFjZVNjYWxl
PVwiIiA8PCBtX3N1cmZhY2VTY2FsZSA8PCAiXCIiOworICAgICAgICB0cyA8PCAiIHNwZWN1YWxD
b25zdGFudD1cIiIgPDwgbV9zcGVjdWxhckNvbnN0YW50IDw8ICJcIiI7CisgICAgICAgIHRzIDw8
ICIgc3BlY3VsYXJFeHBvbmVudD1cIiIgPDwgbV9zcGVjdWxhckV4cG9uZW50IDw8ICJcIiI7Cisg
ICAgfQorICAgIHRzIDw8ICJdXG4iOwogICAgIHJldHVybiB0czsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRVNwZWN1bGFyTGlnaHRp
bmcuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVTcGVjdWxh
ckxpZ2h0aW5nLmgKaW5kZXggOGE2ZmM0YjAzNjA3NzA4OGVkYWUyMzNmZjQ3ZmFkY2I0NTkzZTZj
Yy4uYWFjZjA5MzkzYjNjYjk1MGIwZmQ5YTJiMGIzZWFiNDZjYjkxMmE5NyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRVNwZWN1bGFyTGlnaHRp
bmcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFU3Bl
Y3VsYXJMaWdodGluZy5oCkBAIC0zNiw3ICszNiw3IEBAIHB1YmxpYzoKICAgICBmbG9hdCBzcGVj
dWxhckV4cG9uZW50KCkgY29uc3QgeyByZXR1cm4gbV9zcGVjdWxhckV4cG9uZW50OyB9CiAgICAg
Ym9vbCBzZXRTcGVjdWxhckV4cG9uZW50KGZsb2F0KTsKIAotICAgIFdURjo6VGV4dFN0cmVhbSYg
ZXh0ZXJuYWxSZXByZXNlbnRhdGlvbihXVEY6OlRleHRTdHJlYW0mLCBSZXByZXNlbnRhdGlvblR5
cGUpIGNvbnN0IG92ZXJyaWRlOworICAgIFdURjo6VGV4dFN0cmVhbSYgZXh0ZXJuYWxSZXByZXNl
bnRhdGlvbihXVEY6OlRleHRTdHJlYW0mLCBGaWx0ZXJSZXByZXNlbnRhdGlvbikgY29uc3Qgb3Zl
cnJpZGU7CiAKICAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRpb25h
bDxSZWY8RkVTcGVjdWxhckxpZ2h0aW5nPj4gZGVjb2RlKERlY29kZXImKTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRVRpbGUuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRVRpbGUuY3BwCmluZGV4
IDExYjQwMzVjNmE4NGE4ZjkzZWE3ODA1YjM3ZTFiYjNmNWI3Yjc5ZDYuLjkyYjgyNzBlNGRiZjkz
NGFkNjM2NDQ4YTZjZTRkNjBlNmY0MWRhMmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVUaWxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFVGlsZS5jcHAKQEAgLTUzLDE1ICs1MywxMSBAQCBz
dGQ6OnVuaXF1ZV9wdHI8RmlsdGVyRWZmZWN0QXBwbGllcj4gRkVUaWxlOjpjcmVhdGVBcHBsaWVy
KGNvbnN0IEZpbHRlciYpIGNvbnN0CiAgICAgcmV0dXJuIEZpbHRlckVmZmVjdEFwcGxpZXI6OmNy
ZWF0ZTxGRVRpbGVTb2Z0d2FyZUFwcGxpZXI+KCp0aGlzKTsKIH0KIAotVGV4dFN0cmVhbSYgRkVU
aWxlOjpleHRlcm5hbFJlcHJlc2VudGF0aW9uKFRleHRTdHJlYW0mIHRzLCBSZXByZXNlbnRhdGlv
blR5cGUgcmVwcmVzZW50YXRpb24pIGNvbnN0CitUZXh0U3RyZWFtJiBGRVRpbGU6OmV4dGVybmFs
UmVwcmVzZW50YXRpb24oVGV4dFN0cmVhbSYgdHMsIEZpbHRlclJlcHJlc2VudGF0aW9uIHJlcHJl
c2VudGF0aW9uKSBjb25zdAogewogICAgIHRzIDw8IGluZGVudCA8PCAiW2ZlVGlsZSI7CiAgICAg
RmlsdGVyRWZmZWN0OjpleHRlcm5hbFJlcHJlc2VudGF0aW9uKHRzLCByZXByZXNlbnRhdGlvbik7
CiAgICAgdHMgPDwgIl1cbiI7Ci0KLSAgICBUZXh0U3RyZWFtOjpJbmRlbnRTY29wZSBpbmRlbnRT
Y29wZSh0cyk7Ci0gICAgaW5wdXRFZmZlY3QoMCktPmV4dGVybmFsUmVwcmVzZW50YXRpb24odHMs
IHJlcHJlc2VudGF0aW9uKTsKLQogICAgIHJldHVybiB0czsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRVRpbGUuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVUaWxlLmgKaW5kZXggN2QzOTc5ODU3
ODgxZGE3MjU3NDFiYjk5ZTBjYTY0YzQ0NGE4MDA4Ni4uMDBhZGQyOGE1NjIxYmJmYzU3NjMyNzMy
OWM0YjY0NjEzYTAzYmMwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZmlsdGVycy9GRVRpbGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9maWx0ZXJzL0ZFVGlsZS5oCkBAIC0zOSw3ICszOSw3IEBAIHByaXZhdGU6CiAKICAgICBz
dGQ6OnVuaXF1ZV9wdHI8RmlsdGVyRWZmZWN0QXBwbGllcj4gY3JlYXRlQXBwbGllcihjb25zdCBG
aWx0ZXImKSBjb25zdCBvdmVycmlkZTsKIAotICAgIFdURjo6VGV4dFN0cmVhbSYgZXh0ZXJuYWxS
ZXByZXNlbnRhdGlvbihXVEY6OlRleHRTdHJlYW0mLCBSZXByZXNlbnRhdGlvblR5cGUpIGNvbnN0
IG92ZXJyaWRlOworICAgIFdURjo6VGV4dFN0cmVhbSYgZXh0ZXJuYWxSZXByZXNlbnRhdGlvbihX
VEY6OlRleHRTdHJlYW0mLCBGaWx0ZXJSZXByZXNlbnRhdGlvbikgY29uc3Qgb3ZlcnJpZGU7CiB9
OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFVHVyYnVsZW5jZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFVHVyYnVsZW5jZS5jcHAKaW5kZXggNGI0M2Zl
OTRmZDMwNzUwOTc4NThmZWM2ZTI5ZDYxNTVkYzc0OTlhZi4uMjg4MWM5YjJjNjVjNjU3N2FlOGEy
YWQzYzE0ZTVkN2Q4YTQ5N2M2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZmlsdGVycy9GRVR1cmJ1bGVuY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVUdXJidWxlbmNlLmNwcApAQCAtMTIyLDE1ICsxMjIs
MTggQEAgc3RhdGljIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIFR1cmJ1
bGVuY2VUeXBlIHR5cGUpCiAgICAgcmV0dXJuIHRzOwogfQogCi1UZXh0U3RyZWFtJiBGRVR1cmJ1
bGVuY2U6OmV4dGVybmFsUmVwcmVzZW50YXRpb24oVGV4dFN0cmVhbSYgdHMsIFJlcHJlc2VudGF0
aW9uVHlwZSByZXByZXNlbnRhdGlvbikgY29uc3QKK1RleHRTdHJlYW0mIEZFVHVyYnVsZW5jZTo6
ZXh0ZXJuYWxSZXByZXNlbnRhdGlvbihUZXh0U3RyZWFtJiB0cywgRmlsdGVyUmVwcmVzZW50YXRp
b24gcmVwcmVzZW50YXRpb24pIGNvbnN0CiB7CiAgICAgdHMgPDwgaW5kZW50IDw8ICJbZmVUdXJi
dWxlbmNlIjsKICAgICBGaWx0ZXJFZmZlY3Q6OmV4dGVybmFsUmVwcmVzZW50YXRpb24odHMsIHJl
cHJlc2VudGF0aW9uKTsKLSAgICB0cyA8PCAiIHR5cGU9XCIiIDw8IHR5cGUoKSA8PCAiXCIgIgot
ICAgICAgIDw8ICJiYXNlRnJlcXVlbmN5PVwiIiA8PCBiYXNlRnJlcXVlbmN5WCgpIDw8ICIsICIg
PDwgYmFzZUZyZXF1ZW5jeVkoKSA8PCAiXCIgIgotICAgICAgIDw8ICJzZWVkPVwiIiA8PCBzZWVk
KCkgPDwgIlwiICIKLSAgICAgICA8PCAibnVtT2N0YXZlcz1cIiIgPDwgbnVtT2N0YXZlcygpIDw8
ICJcIiAiCi0gICAgICAgPDwgInN0aXRjaFRpbGVzPVwiIiA8PCBzdGl0Y2hUaWxlcygpIDw8ICJc
Il1cbiI7CisgICAgeworICAgICAgICB0cyA8PCAiIHR5cGU9XCIiIDw8IHR5cGUoKSA8PCAiXCIi
OworICAgICAgICB0cyA8PCAiIGJhc2VGcmVxdWVuY3k9XCIiIDw8IGJhc2VGcmVxdWVuY3lYKCkg
PDwgIiwgIiA8PCBiYXNlRnJlcXVlbmN5WSgpIDw8ICJcIiI7CisgICAgICAgIHRzIDw8ICIgc2Vl
ZD1cIiIgPDwgc2VlZCgpIDw8ICJcIiI7CisgICAgICAgIHRzIDw8ICIgbnVtT2N0YXZlcz1cIiIg
PDwgbnVtT2N0YXZlcygpIDw8ICJcIiI7CisgICAgICAgIHRzIDw8ICIgc3RpdGNoVGlsZXM9XCIi
IDw8IHN0aXRjaFRpbGVzKCkgPDwgIlwiIjsKKyAgICB9CisgICAgdHMgPDwgIl1cbiI7CiAgICAg
cmV0dXJuIHRzOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9maWx0ZXJzL0ZFVHVyYnVsZW5jZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZmlsdGVycy9GRVR1cmJ1bGVuY2UuaAppbmRleCBiOGU5M2JjMDFiMjViNDI5MGM0YTE1
NDM5ZWVhYzQ3MjBmNDg5ZTg2Li42ZmM0ZTJiN2ZkYzgzMjg3OTEyYzlhNDhjMzZiMWY4ODEyMjRi
NzU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJz
L0ZFVHVyYnVsZW5jZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Zp
bHRlcnMvRkVUdXJidWxlbmNlLmgKQEAgLTY3LDcgKzY3LDcgQEAgcHJpdmF0ZToKIAogICAgIHN0
ZDo6dW5pcXVlX3B0cjxGaWx0ZXJFZmZlY3RBcHBsaWVyPiBjcmVhdGVBcHBsaWVyKGNvbnN0IEZp
bHRlciYpIGNvbnN0IG92ZXJyaWRlOwogCi0gICAgV1RGOjpUZXh0U3RyZWFtJiBleHRlcm5hbFJl
cHJlc2VudGF0aW9uKFdURjo6VGV4dFN0cmVhbSYsIFJlcHJlc2VudGF0aW9uVHlwZSkgY29uc3Qg
b3ZlcnJpZGU7CisgICAgV1RGOjpUZXh0U3RyZWFtJiBleHRlcm5hbFJlcHJlc2VudGF0aW9uKFdU
Rjo6VGV4dFN0cmVhbSYsIEZpbHRlclJlcHJlc2VudGF0aW9uKSBjb25zdCBvdmVycmlkZTsKIAog
ICAgIFR1cmJ1bGVuY2VUeXBlIG1fdHlwZTsKICAgICBmbG9hdCBtX2Jhc2VGcmVxdWVuY3lYOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0
ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyLmgK
aW5kZXggMjlkYzdmZjc4YzYwNmM3Y2YzZmExYWFiZTY5MzdkNGM3M2JlZTg2MC4uMjVjMTc2NGRl
OTU0YjNjN2NiNzFjZWE0ODc2NjVmZDE4MzQ1Y2UzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlci5oCkBAIC0yMSw3ICsyMSw2IEBACiAK
ICNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSAiRmlsdGVyRWZmZWN0R2VvbWV0cnkuaCIKICNpbmNs
dWRlICJGaWx0ZXJGdW5jdGlvbi5oIgogI2luY2x1ZGUgIkZsb2F0UmVjdC5oIgogI2luY2x1ZGUg
IkdyYXBoaWNzVHlwZXMuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2ZpbHRlcnMvRmlsdGVyRWZmZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyRWZmZWN0LmNwcAppbmRleCBkYTFjYTE0MTJkNDQ3NDg5
ZmY5MWY3YWI2OGY2ZjUzMzMzZGRjMTg5Li40NmMwOTBiMzA3MzczNjIxYzQxODczYWU5OGQyODUy
MThlMmMzNjc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9m
aWx0ZXJzL0ZpbHRlckVmZmVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZmlsdGVycy9GaWx0ZXJFZmZlY3QuY3BwCkBAIC0xNjEsMTIgKzE2MSwxMiBAQCB2b2lk
IEZpbHRlckVmZmVjdDo6dHJhbnNmb3JtUmVzdWx0Q29sb3JTcGFjZShjb25zdCBEZXN0aW5hdGlv
bkNvbG9yU3BhY2UmIGRlc3RpbgogICAgIG1fZmlsdGVySW1hZ2UtPnRyYW5zZm9ybVRvQ29sb3JT
cGFjZShkZXN0aW5hdGlvbkNvbG9yU3BhY2UpOwogfQogCi1UZXh0U3RyZWFtJiBGaWx0ZXJFZmZl
Y3Q6OmV4dGVybmFsUmVwcmVzZW50YXRpb24oVGV4dFN0cmVhbSYgdHMsIFJlcHJlc2VudGF0aW9u
VHlwZSByZXByZXNlbnRhdGlvblR5cGUpIGNvbnN0CitUZXh0U3RyZWFtJiBGaWx0ZXJFZmZlY3Q6
OmV4dGVybmFsUmVwcmVzZW50YXRpb24oVGV4dFN0cmVhbSYgdHMsIEZpbHRlclJlcHJlc2VudGF0
aW9uIHJlcHJlc2VudGF0aW9uKSBjb25zdAogewogICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgZHVt
cCB0aGUgc3ViUmVnaW9ucyBvZiB0aGUgZmlsdGVyIHByaW1pdGl2ZXMgaGVyZSBsYXRlci4gVGhp
cyBpc24ndAogICAgIC8vIHBvc3NpYmxlIGF0IHRoZSBtb21lbnQsIGJlY2F1c2Ugd2UgbmVlZCBt
b3JlIGRldGFpbGVkIGluZm9ybWF0aW9ucyBmcm9tIHRoZSB0YXJnZXQgb2JqZWN0LgogICAgIAot
ICAgIGlmIChyZXByZXNlbnRhdGlvblR5cGUgPT0gUmVwcmVzZW50YXRpb25UeXBlOjpEZWJ1Z2dp
bmcpIHsKKyAgICBpZiAocmVwcmVzZW50YXRpb24gPT0gRmlsdGVyUmVwcmVzZW50YXRpb246OkRl
YnVnZ2luZykgewogICAgICAgICBUZXh0U3RyZWFtOjpJbmRlbnRTY29wZSBpbmRlbnRTY29wZSh0
cyk7CiAgICAgICAgIHRzLmR1bXBQcm9wZXJ0eSgib3BlcmF0aW5nIGNvbG9yc3BhY2UiLCBvcGVy
YXRpbmdDb2xvclNwYWNlKCkpOwogICAgICAgICB0cyA8PCAiXG4iIDw8IGluZGVudDsKQEAgLTE3
NCwxMSArMTc0LDExIEBAIFRleHRTdHJlYW0mIEZpbHRlckVmZmVjdDo6ZXh0ZXJuYWxSZXByZXNl
bnRhdGlvbihUZXh0U3RyZWFtJiB0cywgUmVwcmVzZW50YXRpb25UCiAgICAgcmV0dXJuIHRzOwog
fQogCi1UZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBjb25zdCBGaWx0ZXJF
ZmZlY3QmIGZpbHRlcikKK1RleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIGNv
bnN0IEZpbHRlckVmZmVjdCYgZWZmZWN0KQogewogICAgIC8vIFVzZSBhIG5ldyBzdHJlYW0gYmVj
YXVzZSB3ZSB3YW50IG11bHRpbGluZSBtb2RlIGZvciBsb2dnaW5nIGZpbHRlcnMuCiAgICAgVGV4
dFN0cmVhbSBmaWx0ZXJTdHJlYW07Ci0gICAgZmlsdGVyLmV4dGVybmFsUmVwcmVzZW50YXRpb24o
ZmlsdGVyU3RyZWFtLCBGaWx0ZXJFZmZlY3Q6OlJlcHJlc2VudGF0aW9uVHlwZTo6RGVidWdnaW5n
KTsKKyAgICBlZmZlY3QuZXh0ZXJuYWxSZXByZXNlbnRhdGlvbihmaWx0ZXJTdHJlYW0sIEZpbHRl
clJlcHJlc2VudGF0aW9uOjpEZWJ1Z2dpbmcpOwogICAgIAogICAgIHJldHVybiB0cyA8PCBmaWx0
ZXJTdHJlYW0ucmVsZWFzZSgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXJFZmZlY3QuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyRWZmZWN0LmgKaW5kZXggNTY4MjdhYmJiZjdkZmM1
M2ExMDJmNDI4M2FmZmYwODY1NTEyNWIzYy4uNjQ5N2EyZDFkZmU1MDQ3MTVhNWY0OGNhNjgzZjhj
MTlmOGZmZDBhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZmlsdGVycy9GaWx0ZXJFZmZlY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9maWx0ZXJzL0ZpbHRlckVmZmVjdC5oCkBAIC01OCw4ICs1OCw3IEBAIHB1YmxpYzoKICAg
ICBjb25zdCBEZXN0aW5hdGlvbkNvbG9yU3BhY2UmIG9wZXJhdGluZ0NvbG9yU3BhY2UoKSBjb25z
dCB7IHJldHVybiBtX29wZXJhdGluZ0NvbG9yU3BhY2U7IH0KICAgICB2aXJ0dWFsIHZvaWQgc2V0
T3BlcmF0aW5nQ29sb3JTcGFjZShjb25zdCBEZXN0aW5hdGlvbkNvbG9yU3BhY2UmIGNvbG9yU3Bh
Y2UpIHsgbV9vcGVyYXRpbmdDb2xvclNwYWNlID0gY29sb3JTcGFjZTsgfQogCi0gICAgZW51bSBj
bGFzcyBSZXByZXNlbnRhdGlvblR5cGUgeyBUZXN0T3V0cHV0LCBEZWJ1Z2dpbmcgfTsKLSAgICB2
aXJ0dWFsIFdURjo6VGV4dFN0cmVhbSYgZXh0ZXJuYWxSZXByZXNlbnRhdGlvbihXVEY6OlRleHRT
dHJlYW0mLCBSZXByZXNlbnRhdGlvblR5cGUgPSBSZXByZXNlbnRhdGlvblR5cGU6OlRlc3RPdXRw
dXQpIGNvbnN0OworICAgIFdURjo6VGV4dFN0cmVhbSYgZXh0ZXJuYWxSZXByZXNlbnRhdGlvbihX
VEY6OlRleHRTdHJlYW0mLCBGaWx0ZXJSZXByZXNlbnRhdGlvbikgY29uc3Qgb3ZlcnJpZGU7CiAK
IHByb3RlY3RlZDoKICAgICB1c2luZyBGaWx0ZXJGdW5jdGlvbjo6RmlsdGVyRnVuY3Rpb247CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRl
ckZ1bmN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0Zp
bHRlckZ1bmN0aW9uLmgKaW5kZXggYzlkNjc3YTYwODI5Mjg2MzQ2N2M5ZmJiZWFjNDI1ZmUyOWU3
MWNkYS4uZTBiMGZhZmIwYzYxNWVmZjA4ZTZlZTQ1Y2ZmYTU4YTM0NGNjZGE1ZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXJGdW5jdGlv
bi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVy
RnVuY3Rpb24uaApAQCAtMzksNiArMzksMTEgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFz
cyBGaWx0ZXI7CiAKK2VudW0gY2xhc3MgRmlsdGVyUmVwcmVzZW50YXRpb24gOiB1aW50OF90IHsK
KyAgICBUZXN0T3V0cHV0LAorICAgIERlYnVnZ2luZworfTsKKwogY2xhc3MgRmlsdGVyRnVuY3Rp
b24gOiBwdWJsaWMgUmVmQ291bnRlZDxGaWx0ZXJGdW5jdGlvbj4gewogcHVibGljOgogICAgIGVu
dW0gY2xhc3MgVHlwZSA6IHVpbnQ4X3QgewpAQCAtOTMsNiArOTgsOCBAQCBwdWJsaWM6CiAgICAg
dmlydHVhbCBJbnRPdXRzZXRzIG91dHNldHMoKSBjb25zdCB7IHJldHVybiB7IH07IH0KICAgICB2
aXJ0dWFsIHZvaWQgY2xlYXJSZXN1bHQoKSB7IH0KIAorICAgIHZpcnR1YWwgVGV4dFN0cmVhbSYg
ZXh0ZXJuYWxSZXByZXNlbnRhdGlvbihUZXh0U3RyZWFtJiwgRmlsdGVyUmVwcmVzZW50YXRpb24g
PSBGaWx0ZXJSZXByZXNlbnRhdGlvbjo6VGVzdE91dHB1dCkgY29uc3QgPSAwOworCiBwcml2YXRl
OgogICAgIFR5cGUgbV9maWx0ZXJUeXBlOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvU291cmNlQWxwaGEuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9Tb3VyY2VBbHBoYS5jcHAKaW5kZXggNjIwNTE0
NjNjNzFmNTNmZDgzODEyYTc3YTJmMmI4YTQ4YmVhMmIzYS4uMTQ3YWZlMDQzZGNlMWQ4MWJlOGMy
MWYyOTZkM2IyNWEzMjllNjhiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZmlsdGVycy9Tb3VyY2VBbHBoYS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9Tb3VyY2VBbHBoYS5jcHAKQEAgLTQ5LDcgKzQ5LDcgQEAg
c3RkOjp1bmlxdWVfcHRyPEZpbHRlckVmZmVjdEFwcGxpZXI+IFNvdXJjZUFscGhhOjpjcmVhdGVB
cHBsaWVyKGNvbnN0IEZpbHRlciYpIGMKICAgICByZXR1cm4gRmlsdGVyRWZmZWN0QXBwbGllcjo6
Y3JlYXRlPFNvdXJjZUFscGhhU29mdHdhcmVBcHBsaWVyPigqdGhpcyk7CiB9CiAKLVRleHRTdHJl
YW0mIFNvdXJjZUFscGhhOjpleHRlcm5hbFJlcHJlc2VudGF0aW9uKFRleHRTdHJlYW0mIHRzLCBS
ZXByZXNlbnRhdGlvblR5cGUpIGNvbnN0CitUZXh0U3RyZWFtJiBTb3VyY2VBbHBoYTo6ZXh0ZXJu
YWxSZXByZXNlbnRhdGlvbihUZXh0U3RyZWFtJiB0cywgRmlsdGVyUmVwcmVzZW50YXRpb24pIGNv
bnN0CiB7CiAgICAgdHMgPDwgaW5kZW50IDw8ICJbU291cmNlQWxwaGFdXG4iOwogICAgIHJldHVy
biB0czsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRl
cnMvU291cmNlQWxwaGEuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRl
cnMvU291cmNlQWxwaGEuaAppbmRleCAxMDU2MTY3ZTNjZjlhYTY0NjZjNTM3ODNkOTQzOTY1ZWEy
YzBlMWYyLi5lMjExZTFhZmVkOTM5YzljMWUzMzU3ZWM1MDI1Yjg4NmRiOWYyOGFlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1NvdXJjZUFscGhh
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9Tb3VyY2VB
bHBoYS5oCkBAIC0zNyw3ICszNyw3IEBAIHByaXZhdGU6CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8
RmlsdGVyRWZmZWN0QXBwbGllcj4gY3JlYXRlQXBwbGllcihjb25zdCBGaWx0ZXImKSBjb25zdCBv
dmVycmlkZTsKIAotICAgIFdURjo6VGV4dFN0cmVhbSYgZXh0ZXJuYWxSZXByZXNlbnRhdGlvbihX
VEY6OlRleHRTdHJlYW0mLCBSZXByZXNlbnRhdGlvblR5cGUpIGNvbnN0IG92ZXJyaWRlOworICAg
IFdURjo6VGV4dFN0cmVhbSYgZXh0ZXJuYWxSZXByZXNlbnRhdGlvbihXVEY6OlRleHRTdHJlYW0m
LCBGaWx0ZXJSZXByZXNlbnRhdGlvbikgY29uc3Qgb3ZlcnJpZGU7CiB9OwogCiB9IC8vbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2ZpbHRlcnMvU291cmNlR3JhcGhpYy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9maWx0ZXJzL1NvdXJjZUdyYXBoaWMuY3BwCmluZGV4IDg4NmI3NzJhYWRiMDI2YWQyMWQ5
YWI1ZTM3YzU4ZjdmODk0YmJlZjcuLjY1ZTg0YmM3NzBmZGUyMWIwNGI4YzFmMjVlN2E0NTRmNDlk
NTY2NzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRl
cnMvU291cmNlR3JhcGhpYy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZmlsdGVycy9Tb3VyY2VHcmFwaGljLmNwcApAQCAtNTYsNyArNTYsNyBAQCBzdGQ6OnVuaXF1
ZV9wdHI8RmlsdGVyRWZmZWN0QXBwbGllcj4gU291cmNlR3JhcGhpYzo6Y3JlYXRlQXBwbGllcihj
b25zdCBGaWx0ZXImCiAgICAgcmV0dXJuIEZpbHRlckVmZmVjdEFwcGxpZXI6OmNyZWF0ZTxTb3Vy
Y2VHcmFwaGljU29mdHdhcmVBcHBsaWVyPigqdGhpcyk7CiB9CiAKLVRleHRTdHJlYW0mIFNvdXJj
ZUdyYXBoaWM6OmV4dGVybmFsUmVwcmVzZW50YXRpb24oVGV4dFN0cmVhbSYgdHMsIFJlcHJlc2Vu
dGF0aW9uVHlwZSkgY29uc3QKK1RleHRTdHJlYW0mIFNvdXJjZUdyYXBoaWM6OmV4dGVybmFsUmVw
cmVzZW50YXRpb24oVGV4dFN0cmVhbSYgdHMsIEZpbHRlclJlcHJlc2VudGF0aW9uKSBjb25zdAog
ewogICAgIHRzIDw8IGluZGVudCA8PCAiW1NvdXJjZUdyYXBoaWNdXG4iOwogICAgIHJldHVybiB0
czsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMv
U291cmNlR3JhcGhpYy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVy
cy9Tb3VyY2VHcmFwaGljLmgKaW5kZXggMzAzM2RiMDIxMGQzZTFmMTIzYjRiOWI1ZDc5MzViMWFj
ODRkMGIxOS4uZWU5MmU5MzYzMzU3ZTBjYWYyMGMzYjRkNGJmOTU5MjhlYzAwZjhhYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9Tb3VyY2VHcmFw
aGljLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9Tb3Vy
Y2VHcmFwaGljLmgKQEAgLTQyLDcgKzQyLDcgQEAgcHJpdmF0ZToKIAogICAgIHN0ZDo6dW5pcXVl
X3B0cjxGaWx0ZXJFZmZlY3RBcHBsaWVyPiBjcmVhdGVBcHBsaWVyKGNvbnN0IEZpbHRlciYpIGNv
bnN0IG92ZXJyaWRlOwogCi0gICAgV1RGOjpUZXh0U3RyZWFtJiBleHRlcm5hbFJlcHJlc2VudGF0
aW9uKFdURjo6VGV4dFN0cmVhbSYsIFJlcHJlc2VudGF0aW9uVHlwZSkgY29uc3Qgb3ZlcnJpZGU7
CisgICAgV1RGOjpUZXh0U3RyZWFtJiBleHRlcm5hbFJlcHJlc2VudGF0aW9uKFdURjo6VGV4dFN0
cmVhbSYsIEZpbHRlclJlcHJlc2VudGF0aW9uKSBjb25zdCBvdmVycmlkZTsKIH07CiAKIH0gLy9u
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0NT
U0ZpbHRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvQ1NTRmlsdGVyLmNwcAppbmRl
eCAxMWM0OWFmYTU3ZmQyM2ZlYTA5OWJiNjBiMjYwYzljN2U4ZjhkM2I2Li5kMTc0YTQ5YTU2NzA2
YTBjNTYzMWQxMWUzMDJmMDg1Y2RjYjZjYTdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvQ1NTRmlsdGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvQ1NT
RmlsdGVyLmNwcApAQCAtNDA0LDQgKzQwNCwyMyBAQCBJbnRPdXRzZXRzIENTU0ZpbHRlcjo6b3V0
c2V0cygpIGNvbnN0CiAgICAgcmV0dXJuIG1fb3V0c2V0czsKIH0KIAorVGV4dFN0cmVhbSYgQ1NT
RmlsdGVyOjpleHRlcm5hbFJlcHJlc2VudGF0aW9uKFRleHRTdHJlYW0mIHRzLCBGaWx0ZXJSZXBy
ZXNlbnRhdGlvbiByZXByZXNlbnRhdGlvbikgY29uc3QKK3sKKyAgICBhdXRvIGVuZCA9IG1fZnVu
Y3Rpb25zLnJlbmQoKTsKKyAgICB1bnNpZ25lZCBsZXZlbCA9IDA7CisKKyAgICBmb3IgKGF1dG8g
aXQgPSBtX2Z1bmN0aW9ucy5yYmVnaW4oKTsgaXQgIT0gZW5kOyArK2l0KSB7CisgICAgICAgIGF1
dG8mIGZ1bmN0aW9uID0gKml0OworICAgICAgICAKKyAgICAgICAgLy8gU291cmNlQWxwaGEgaXMg
YSBidWlsdC1pbiBlZmZlY3QuIE5vIG5lZWQgdG8gc2F5IFNvdXJjZUdyYXBoaWMgaXMgaXRzIGlu
cHV0LgorICAgICAgICBpZiAoZnVuY3Rpb24tPmZpbHRlclR5cGUoKSA9PSBGaWx0ZXJFZmZlY3Q6
OlR5cGU6OlNvdXJjZUFscGhhKQorICAgICAgICAgICAgKytpdDsKKworICAgICAgICBUZXh0U3Ry
ZWFtOjpJbmRlbnRTY29wZSBpbmRlbnRTY29wZSh0cywgbGV2ZWwrKyk7CisgICAgICAgIGZ1bmN0
aW9uLT5leHRlcm5hbFJlcHJlc2VudGF0aW9uKHRzLCByZXByZXNlbnRhdGlvbik7CisgICAgfQor
CisgICAgcmV0dXJuIHRzOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvQ1NTRmlsdGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvQ1NTRmlsdGVyLmgKaW5kZXggYTdmMGU1M2VkZDNlZTMwOTViMjhlNDQ2NGZkNDk2
M2RmNzM0MDlmMC4uNTFiZjJiZjM4YWIwOGVmMWI1NmE1NmE1ZmQ1YWQyY2MyNmFiMzU2YiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0NTU0ZpbHRlci5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9DU1NGaWx0ZXIuaApAQCAtNjgsNiArNjgsOCBAQCBwcml2YXRl
OgogICAgIGJvb2wgc3VwcG9ydHNDb3JlSW1hZ2VSZW5kZXJpbmcoKSBjb25zdCBmaW5hbDsKICNl
bmRpZgogCisgICAgVGV4dFN0cmVhbSYgZXh0ZXJuYWxSZXByZXNlbnRhdGlvbihUZXh0U3RyZWFt
JiwgRmlsdGVyUmVwcmVzZW50YXRpb24pIGNvbnN0IGZpbmFsOworCiAgICAgYm9vbCBtX2hhc0Zp
bHRlclRoYXRNb3Zlc1BpeGVscyB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2hhc0ZpbHRlclRoYXRT
aG91bGRCZVJlc3RyaWN0ZWRCeVNlY3VyaXR5T3JpZ2luIHsgZmFsc2UgfTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdSZW5kZXJUcmVlQXNUZXh0LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHUmVuZGVyVHJlZUFzVGV4dC5jcHAKaW5k
ZXggYTI3YWM0ZmMzNjUxNjMyNjEyYjk2NDY4MmQ5YjRiNDljMDk4ODgzNi4uOTk3ZjNhMmU5M2Ey
MzNiNDRjOTlkM2I3YmY2YTg2YjZmOWE5MDc1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N2Zy9TVkdSZW5kZXJUcmVlQXNUZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3ZnL1NWR1JlbmRlclRyZWVBc1RleHQuY3BwCkBAIC00MzQsOSArNDM0LDcg
QEAgdm9pZCB3cml0ZVNWR1Jlc291cmNlQ29udGFpbmVyKFRleHRTdHJlYW0mIHRzLCBjb25zdCBS
ZW5kZXJTVkdSZXNvdXJjZUNvbnRhaW5lciYKICAgICAgICAgYXV0byBkdW1teUZpbHRlciA9IFNW
R0ZpbHRlcjo6Y3JlYXRlKGZpbHRlci5maWx0ZXJFbGVtZW50KCksIGJ1aWxkZXIsIFJlbmRlcmlu
Z01vZGU6OlVuYWNjZWxlcmF0ZWQsIGR1bW15U2NhbGUsIGR1bW15UmVjdCwgZHVtbXlSZWN0KTsK
ICAgICAgICAgaWYgKGR1bW15RmlsdGVyKSB7CiAgICAgICAgICAgICBUZXh0U3RyZWFtOjpJbmRl
bnRTY29wZSBpbmRlbnRTY29wZSh0cyk7Ci0KLSAgICAgICAgICAgIGlmIChhdXRvIGxhc3RFZmZl
Y3QgPSBkdW1teUZpbHRlci0+bGFzdEVmZmVjdCgpKQotICAgICAgICAgICAgICAgIGxhc3RFZmZl
Y3QtPmV4dGVybmFsUmVwcmVzZW50YXRpb24odHMpOworICAgICAgICAgICAgZHVtbXlGaWx0ZXIt
PmV4dGVybmFsUmVwcmVzZW50YXRpb24odHMsIEZpbHRlclJlcHJlc2VudGF0aW9uOjpUZXN0T3V0
cHV0KTsKICAgICAgICAgfQogICAgIH0gZWxzZSBpZiAocmVzb3VyY2UucmVzb3VyY2VUeXBlKCkg
PT0gQ2xpcHBlclJlc291cmNlVHlwZSkgewogICAgICAgICBjb25zdCBhdXRvJiBjbGlwcGVyID0g
c3RhdGljX2Nhc3Q8Y29uc3QgUmVuZGVyU1ZHUmVzb3VyY2VDbGlwcGVyJj4ocmVzb3VyY2UpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL2ZpbHRlcnMvU1ZHRkVJbWFn
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvZmlsdGVycy9TVkdGRUltYWdlLmNw
cAppbmRleCA1YzY3Y2EzMTkwY2Y2MjNhNzk2MzViOTI5YjRjOTQ2MGE5NzYyMWY0Li42ZDZhZTcz
ZDYxYzFiMGE2OTEyMjBmYjlmYWUyYzM1NDllMjE2ZGI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvZ3JhcGhpY3MvZmlsdGVycy9TVkdGRUltYWdlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9zdmcvZ3JhcGhpY3MvZmlsdGVycy9TVkdGRUltYWdlLmNwcApAQCAtMTEyLDEyICsxMTIs
MTYgQEAgc3RkOjp1bmlxdWVfcHRyPEZpbHRlckVmZmVjdEFwcGxpZXI+IEZFSW1hZ2U6OmNyZWF0
ZUFwcGxpZXIoY29uc3QgRmlsdGVyJikgY29uc3QKICAgICByZXR1cm4gRmlsdGVyRWZmZWN0QXBw
bGllcjo6Y3JlYXRlPEZFSW1hZ2VTb2Z0d2FyZUFwcGxpZXI+KCp0aGlzKTsKIH0KIAotVGV4dFN0
cmVhbSYgRkVJbWFnZTo6ZXh0ZXJuYWxSZXByZXNlbnRhdGlvbihUZXh0U3RyZWFtJiB0cywgUmVw
cmVzZW50YXRpb25UeXBlIHJlcHJlc2VudGF0aW9uKSBjb25zdAorVGV4dFN0cmVhbSYgRkVJbWFn
ZTo6ZXh0ZXJuYWxSZXByZXNlbnRhdGlvbihUZXh0U3RyZWFtJiB0cywgRmlsdGVyUmVwcmVzZW50
YXRpb24gcmVwcmVzZW50YXRpb24pIGNvbnN0CiB7CiAgICAgdHMgPDwgaW5kZW50IDw8ICJbZmVJ
bWFnZSI7Ci0gICAgRmlsdGVyRWZmZWN0OjpleHRlcm5hbFJlcHJlc2VudGF0aW9uKHRzLCByZXBy
ZXNlbnRhdGlvbik7Ci0gICAgdHMgPDwgIiBpbWFnZS1zaXplPVwiIiA8PCBtX3NvdXJjZUltYWdl
UmVjdC53aWR0aCgpIDw8ICJ4IiA8PCBtX3NvdXJjZUltYWdlUmVjdC5oZWlnaHQoKSA8PCAiXCJd
XG4iOwotICAgIC8vIEZJWE1FOiBzaG91bGQgdGhpcyBkdW1wIGFsc28gb2JqZWN0IHJldHVybmVk
IGJ5IFNWR0ZFSW1hZ2U6OmltYWdlKCkgPworICAgIHsKKyAgICAgICAgRmlsdGVyRWZmZWN0Ojpl
eHRlcm5hbFJlcHJlc2VudGF0aW9uKHRzLCByZXByZXNlbnRhdGlvbik7CisKKyAgICAgICAgdHMg
PDwgIiBpbWFnZS1zaXplPVwiIiA8PCBtX3NvdXJjZUltYWdlUmVjdC53aWR0aCgpIDw8ICJ4IiA8
PCBtX3NvdXJjZUltYWdlUmVjdC5oZWlnaHQoKSA8PCAiXCIiOworICAgICAgICAvLyBGSVhNRTog
c2hvdWxkIHRoaXMgZHVtcCBhbHNvIG9iamVjdCByZXR1cm5lZCBieSBTVkdGRUltYWdlOjppbWFn
ZSgpID8KKyAgICB9CisgICAgdHMgPDwgIl1cbiI7CiAgICAgcmV0dXJuIHRzOwogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvZmlsdGVycy9TVkdGRUltYWdlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvZmlsdGVycy9TVkdGRUltYWdlLmgKaW5kZXgg
OTE5YTA0ZTYxZGNkMjIzNDQxYjFlMTliMjIzNjIyNWMzMzAxZmQ4My4uYTk0ZjAxZmMwOWQ4MjU3
OTRjNTgyOTJjMjM0YTdiOTU2ZTk2YTY0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3Zn
L2dyYXBoaWNzL2ZpbHRlcnMvU1ZHRkVJbWFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9n
cmFwaGljcy9maWx0ZXJzL1NWR0ZFSW1hZ2UuaApAQCAtNTQsNyArNTQsNyBAQCBwcml2YXRlOgog
CiAgICAgc3RkOjp1bmlxdWVfcHRyPEZpbHRlckVmZmVjdEFwcGxpZXI+IGNyZWF0ZUFwcGxpZXIo
Y29uc3QgRmlsdGVyJikgY29uc3QgZmluYWw7CiAKLSAgICBXVEY6OlRleHRTdHJlYW0mIGV4dGVy
bmFsUmVwcmVzZW50YXRpb24oV1RGOjpUZXh0U3RyZWFtJiwgUmVwcmVzZW50YXRpb25UeXBlKSBj
b25zdCBmaW5hbDsKKyAgICBXVEY6OlRleHRTdHJlYW0mIGV4dGVybmFsUmVwcmVzZW50YXRpb24o
V1RGOjpUZXh0U3RyZWFtJiwgRmlsdGVyUmVwcmVzZW50YXRpb24pIGNvbnN0IGZpbmFsOwogCiAg
ICAgU291cmNlSW1hZ2UgbV9zb3VyY2VJbWFnZTsKICAgICBGbG9hdFJlY3QgbV9zb3VyY2VJbWFn
ZVJlY3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvZmlsdGVycy9T
VkdGaWx0ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL2ZpbHRlcnMvU1ZHRmls
dGVyLmNwcAppbmRleCAyNDkyMjgyMDY0Y2Q1ZjkxN2NjMThkZTQ3MDQ4YzIzYThjODY2MzBkLi4w
ZmExZTJlMmQ3M2MzNTMxMzA3MjQyZTcxMjllNjYwYTM1MTU0OThiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvZmlsdGVycy9TVkdGaWx0ZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9maWx0ZXJzL1NWR0ZpbHRlci5jcHAKQEAgLTEzMyw0ICsx
MzMsMjIgQEAgdm9pZCBTVkdGaWx0ZXI6OmNsZWFyUmVzdWx0KCkKICAgICAgICAgdGVybS5lZmZl
Y3QtPmNsZWFyUmVzdWx0KCk7CiB9CiAKK1RleHRTdHJlYW0mIFNWR0ZpbHRlcjo6ZXh0ZXJuYWxS
ZXByZXNlbnRhdGlvbihUZXh0U3RyZWFtJiB0cywgRmlsdGVyUmVwcmVzZW50YXRpb24gcmVwcmVz
ZW50YXRpb24pIGNvbnN0Cit7CisgICAgYXV0byBlbmQgPSBtX2V4cHJlc3Npb24ucmVuZCgpOwor
CisgICAgZm9yIChhdXRvIGl0ID0gbV9leHByZXNzaW9uLnJiZWdpbigpOyBpdCAhPSBlbmQ7ICsr
aXQpIHsKKyAgICAgICAgYXV0byYgdGVybSA9ICppdDsKKyAgICAgICAgCisgICAgICAgIC8vIFNv
dXJjZUFscGhhIGlzIGEgYnVpbHQtaW4gZWZmZWN0LiBObyBuZWVkIHRvIHNheSBTb3VyY2VHcmFw
aGljIGlzIGl0cyBpbnB1dC4KKyAgICAgICAgaWYgKHRlcm0uZWZmZWN0LT5maWx0ZXJUeXBlKCkg
PT0gRmlsdGVyRWZmZWN0OjpUeXBlOjpTb3VyY2VBbHBoYSkKKyAgICAgICAgICAgICsraXQ7CisK
KyAgICAgICAgVGV4dFN0cmVhbTo6SW5kZW50U2NvcGUgaW5kZW50U2NvcGUodHMsIHRlcm0ubGV2
ZWwpOworICAgICAgICB0ZXJtLmVmZmVjdC0+ZXh0ZXJuYWxSZXByZXNlbnRhdGlvbih0cywgcmVw
cmVzZW50YXRpb24pOworICAgIH0KKworICAgIHJldHVybiB0czsKK30KKwogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL2ZpbHRl
cnMvU1ZHRmlsdGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvZmlsdGVycy9TVkdG
aWx0ZXIuaAppbmRleCBlYjU4Zjc4MWMxZTI2ZTJkZjUwZTMwNWFjZWY5MjAzMTE5YjU2MWJlLi43
YmFkNjdmMDBiZTIxMzFmY2Q0YzYyMjA1MWRmMGFhZDBjZTY4OWYzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvZmlsdGVycy9TVkdGaWx0ZXIuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvZ3JhcGhpY3MvZmlsdGVycy9TVkdGaWx0ZXIuaApAQCAtNDYsNiArNDYsOCBA
QCBwdWJsaWM6CiAKICAgICBSZWZQdHI8RmlsdGVySW1hZ2U+IGFwcGx5KCkgZmluYWw7CiAKKyAg
ICBUZXh0U3RyZWFtJiBleHRlcm5hbFJlcHJlc2VudGF0aW9uKFRleHRTdHJlYW0mLCBGaWx0ZXJS
ZXByZXNlbnRhdGlvbikgY29uc3QgZmluYWw7CisKIHByaXZhdGU6CiAgICAgU1ZHRmlsdGVyKFJl
bmRlcmluZ01vZGUsIGNvbnN0IEZsb2F0U2l6ZSYgZmlsdGVyU2NhbGUsIENsaXBPcGVyYXRpb24s
IGNvbnN0IEZsb2F0UmVjdCYgZmlsdGVyUmVnaW9uLCBjb25zdCBGbG9hdFJlY3QmIHRhcmdldEJv
dW5kaW5nQm94LCBTVkdVbml0VHlwZXM6OlNWR1VuaXRUeXBlIHByaW1pdGl2ZVVuaXRzKTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL2ZpbHRlcnMvU1ZHRmlsdGVy
QnVpbGRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvZmlsdGVycy9TVkdGaWx0
ZXJCdWlsZGVyLmNwcAppbmRleCBiYjc1ZjM4YzZlMTQyNzFiZmFkNTI0Y2NjNmViYjYyYWQxYzE4
YmM2Li5lN2MwMWFlMDI1YTg5YTVmMTQwZDZkNDUzN2Q2N2VhZjQ2ZWU1NjY5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvZmlsdGVycy9TVkdGaWx0ZXJCdWlsZGVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvZmlsdGVycy9TVkdGaWx0ZXJCdWls
ZGVyLmNwcApAQCAtNDEsNyArNDEsNyBAQCB2b2lkIFNWR0ZpbHRlckJ1aWxkZXI6OnNldHVwQnVp
bHRpbkVmZmVjdHMoUmVmPEZpbHRlckVmZmVjdD4gc291cmNlR3JhcGhpYykKICAgICBhZGRCdWls
dGluRWZmZWN0cygpOwogfQogCi1zdGF0aWMgT3B0aW9uU2V0PEZpbHRlckVmZmVjdEdlb21ldHJ5
OjpGbGFncz4gYm91bmRhcnlTZXRGbGFnc0ZvckVsZW1lbnQoU1ZHRWxlbWVudCYgZWxlbWVudCkK
K3N0YXRpYyBPcHRpb25TZXQ8RmlsdGVyRWZmZWN0R2VvbWV0cnk6OkZsYWdzPiBlZmZlY3RHZW9t
ZXRyeUZsYWdzRm9yRWxlbWVudChTVkdFbGVtZW50JiBlbGVtZW50KQogewogICAgIE9wdGlvblNl
dDxGaWx0ZXJFZmZlY3RHZW9tZXRyeTo6RmxhZ3M+IGZsYWdzOwogCkBAIC0xMDgsNyArMTA4LDcg
QEAgUmVmUHRyPEZpbHRlckVmZmVjdD4gU1ZHRmlsdGVyQnVpbGRlcjo6YnVpbGRGaWx0ZXJFZmZl
Y3RzKFNWR0ZpbHRlckVsZW1lbnQmIGZpbHQKICAgICAgICAgaWYgKCFlZmZlY3QpCiAgICAgICAg
ICAgICBicmVhazsKIAotICAgICAgICBpZiAoYXV0byBmbGFncyA9IGJvdW5kYXJ5U2V0RmxhZ3NG
b3JFbGVtZW50KGVmZmVjdEVsZW1lbnQpKSB7CisgICAgICAgIGlmIChhdXRvIGZsYWdzID0gZWZm
ZWN0R2VvbWV0cnlGbGFnc0ZvckVsZW1lbnQoZWZmZWN0RWxlbWVudCkpIHsKICAgICAgICAgICAg
IGF1dG8gZWZmZWN0Qm91bmRhcmllcyA9IFNWR0xlbmd0aENvbnRleHQ6OnJlc29sdmVSZWN0YW5n
bGU8U1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzPigmZWZmZWN0RWxlbWVudCwg
bV9wcmltaXRpdmVVbml0cywgbV90YXJnZXRCb3VuZGluZ0JveCk7CiAgICAgICAgICAgICBtX2Vm
ZmVjdEdlb21ldHJ5TWFwLmFkZCgqZWZmZWN0LCBGaWx0ZXJFZmZlY3RHZW9tZXRyeShlZmZlY3RC
b3VuZGFyaWVzLCBmbGFncykpOwogICAgICAgICB9CkBAIC0yMDksNyArMjA5LDcgQEAgc3RkOjpv
cHRpb25hbDxGaWx0ZXJFZmZlY3RHZW9tZXRyeT4gU1ZHRmlsdGVyQnVpbGRlcjo6ZWZmZWN0R2Vv
bWV0cnkoRmlsdGVyRWZmZWMKICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogfQogCi1ib29sIFNW
R0ZpbHRlckJ1aWxkZXI6OmJ1aWxkRWZmZWN0RXhwcmVzc2lvbihjb25zdCBSZWZQdHI8RmlsdGVy
RWZmZWN0PiYgZWZmZWN0LCBGaWx0ZXJFZmZlY3RWZWN0b3ImIHN0YWNrLCBTVkdGaWx0ZXJFeHBy
ZXNzaW9uJiBleHByZXNzaW9uKSBjb25zdAorYm9vbCBTVkdGaWx0ZXJCdWlsZGVyOjpidWlsZEVm
ZmVjdEV4cHJlc3Npb24oY29uc3QgUmVmUHRyPEZpbHRlckVmZmVjdD4mIGVmZmVjdCwgRmlsdGVy
RWZmZWN0VmVjdG9yJiBzdGFjaywgdW5zaWduZWQgbGV2ZWwsIFNWR0ZpbHRlckV4cHJlc3Npb24m
IGV4cHJlc3Npb24pIGNvbnN0CiB7CiAgICAgLy8gQSBjeWNsZSBpcyBkZXRlY3RlZC4KICAgICBp
ZiAoc3RhY2suY29udGFpbnMoZWZmZWN0KSkKQEAgLTIxNywxMCArMjE3LDEwIEBAIGJvb2wgU1ZH
RmlsdGVyQnVpbGRlcjo6YnVpbGRFZmZlY3RFeHByZXNzaW9uKGNvbnN0IFJlZlB0cjxGaWx0ZXJF
ZmZlY3Q+JiBlZmZlY3QsCiAKICAgICBzdGFjay5hcHBlbmQoZWZmZWN0KTsKICAgICAKLSAgICBl
eHByZXNzaW9uLmFwcGVuZCh7ICplZmZlY3QsIGVmZmVjdEdlb21ldHJ5KCplZmZlY3QpIH0pOwor
ICAgIGV4cHJlc3Npb24uYXBwZW5kKHsgKmVmZmVjdCwgZWZmZWN0R2VvbWV0cnkoKmVmZmVjdCks
IGxldmVsIH0pOwogCiAgICAgZm9yIChhdXRvJiBpbnB1dEVmZmVjdCA6IGVmZmVjdC0+aW5wdXRF
ZmZlY3RzKCkpIHsKLSAgICAgICAgaWYgKCFidWlsZEVmZmVjdEV4cHJlc3Npb24oaW5wdXRFZmZl
Y3QsIHN0YWNrLCBleHByZXNzaW9uKSkKKyAgICAgICAgaWYgKCFidWlsZEVmZmVjdEV4cHJlc3Np
b24oaW5wdXRFZmZlY3QsIHN0YWNrLCBsZXZlbCArIDEsIGV4cHJlc3Npb24pKQogICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIApAQCAtMjM3LDcgKzIzNyw3IEBAIGJvb2wgU1ZHRmls
dGVyQnVpbGRlcjo6YnVpbGRFeHByZXNzaW9uKFNWR0ZpbHRlckV4cHJlc3Npb24mIGV4cHJlc3Np
b24pIGNvbnN0CiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIEZpbHRlckVmZmVjdFZlY3Rv
ciBzdGFjazsKLSAgICBpZiAoIWJ1aWxkRWZmZWN0RXhwcmVzc2lvbihtX2xhc3RFZmZlY3QsIHN0
YWNrLCBleHByZXNzaW9uKSkKKyAgICBpZiAoIWJ1aWxkRWZmZWN0RXhwcmVzc2lvbihtX2xhc3RF
ZmZlY3QsIHN0YWNrLCAwLCBleHByZXNzaW9uKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAg
ICAgZXhwcmVzc2lvbi5yZXZlcnNlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
Z3JhcGhpY3MvZmlsdGVycy9TVkdGaWx0ZXJCdWlsZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
Z3JhcGhpY3MvZmlsdGVycy9TVkdGaWx0ZXJCdWlsZGVyLmgKaW5kZXggMTg4ODQ1MGM1ZWRmYzY3
M2IyMWI1NzE0YjZhYjdhZjZkNGY0ZjkzZC4uMDc5OTI1ZTQ1MTg3ZTJkMDUzYzFjMGMzZGEyNTM1
ZjJlODc1ODU3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL2ZpbHRl
cnMvU1ZHRmlsdGVyQnVpbGRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9m
aWx0ZXJzL1NWR0ZpbHRlckJ1aWxkZXIuaApAQCAtNzksNyArNzksNyBAQCBwcml2YXRlOgogICAg
IH0KIAogICAgIHN0ZDo6b3B0aW9uYWw8RmlsdGVyRWZmZWN0R2VvbWV0cnk+IGVmZmVjdEdlb21l
dHJ5KEZpbHRlckVmZmVjdCYpIGNvbnN0OwotICAgIGJvb2wgYnVpbGRFZmZlY3RFeHByZXNzaW9u
KGNvbnN0IFJlZlB0cjxGaWx0ZXJFZmZlY3Q+JiwgRmlsdGVyRWZmZWN0VmVjdG9yJiBzdGFjaywg
U1ZHRmlsdGVyRXhwcmVzc2lvbiYpIGNvbnN0OworICAgIGJvb2wgYnVpbGRFZmZlY3RFeHByZXNz
aW9uKGNvbnN0IFJlZlB0cjxGaWx0ZXJFZmZlY3Q+JiwgRmlsdGVyRWZmZWN0VmVjdG9yJiBzdGFj
aywgdW5zaWduZWQgbGV2ZWwsIFNWR0ZpbHRlckV4cHJlc3Npb24mKSBjb25zdDsKIAogICAgIEhh
c2hNYXA8QXRvbVN0cmluZywgUmVmUHRyPEZpbHRlckVmZmVjdD4+IG1fYnVpbHRpbkVmZmVjdHM7
CiAgICAgSGFzaE1hcDxBdG9tU3RyaW5nLCBSZWZQdHI8RmlsdGVyRWZmZWN0Pj4gbV9uYW1lZEVm
ZmVjdHM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvZmlsdGVycy9T
VkdGaWx0ZXJFeHByZXNzaW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvZmlsdGVy
cy9TVkdGaWx0ZXJFeHByZXNzaW9uLmgKaW5kZXggNTRkY2M3MmRiYWE2OGU4NGY3MTIyNGQ0Njdj
NzEyNmM2ZDA3MTQ2Zi4uM2ZiMDVlZmNlZWJjYTVkYWNiZjAyYzgyYmE4NzE4ODZhOGRlZDA3ZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL2ZpbHRlcnMvU1ZHRmlsdGVy
RXhwcmVzc2lvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9maWx0ZXJzL1NW
R0ZpbHRlckV4cHJlc3Npb24uaApAQCAtMzUsNiArMzUsNyBAQCBjbGFzcyBGaWx0ZXJFZmZlY3Q7
CiBzdHJ1Y3QgU1ZHRmlsdGVyRXhwcmVzc2lvblRlcm0gewogICAgIFJlZjxGaWx0ZXJFZmZlY3Q+
IGVmZmVjdDsKICAgICBzdGQ6Om9wdGlvbmFsPEZpbHRlckVmZmVjdEdlb21ldHJ5PiBnZW9tZXRy
eTsKKyAgICB1bnNpZ25lZCBsZXZlbDsKIH07CiAKIHVzaW5nIFNWR0ZpbHRlckV4cHJlc3Npb24g
PSBWZWN0b3I8U1ZHRmlsdGVyRXhwcmVzc2lvblRlcm0+OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDU3MDA2OTg2YjVhYzQ0
ZGMwN2I2MjY4NjFjNzVhNmVlZTM5MDFiNTIuLmRlZjkyODVmMThiMDkyNWFiNDZkZWFjODNiZTQx
MmYwYmQ3ZGI0OWYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAyMS0xMi0wNiAgU2FpZCBBYm91
LUhhbGxhd2EgIDxzYWlkQGFwcGxlLmNvbT4KKworICAgICAgICBbR1BVIFByb2Nlc3NdICBbRmls
dGVyc10gTWFrZSBGaWx0ZXJFZmZlY3Q6OmV4dGVybmFsUmVwcmVzZW50YXRpb24oKSBhbmQgaXRz
IG92ZXJyaWRhYmxlIGZ1bmN0aW9ucyB3b3JrIGl0ZXJhdGl2ZWx5CisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzM4OTMKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgbWlzc2luZyBjbG9zaW5nIHF1b3Rh
dGlvbnMgaW4gdGhlIGV4cGVjdGVkIHJlc3VsdHMgb2Ygc29tZSBvZiB0aGUgCisgICAgICAgIGZp
bHRlciBsYXlvdXQgdGVzdHMuCisKKyAgICAgICAgKiBzdmcvZmlsdGVycy9mZURyb3BTaGFkb3ct
ZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHN2Zy9maWx0ZXJzL2ZlRHJvcFNoYWRvdy1zdWJyZWdp
b24tZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHN2Zy9maWx0ZXJzL2ZlRHJvcFNoYWRvdy16ZXJv
LWRldmlhdGlvbi1leHBlY3RlZC50eHQ6CisgICAgICAgICogc3ZnL3JlcGFpbnQvZmlsdGVyLWNo
aWxkLXJlcGFpbnQtZXhwZWN0ZWQudHh0OgorCiAyMDIxLTEyLTA2ICBSeWFuIEhhZGRhZCAgPHJ5
YW5oYWRkYWRAYXBwbGUuY29tPgogCiAgICAgICAgIFsgaU9TIF0gaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9jb250ZW50LXNlY3VyaXR5LXBvbGljeS93b3JrZXItc3JjL3NlcnZpY2Ut
KiB0ZXN0cyBhcmUgY29uc2lzdGVudGx5IGZhaWxpbmcKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3N2Zy9maWx0ZXJzL2ZlRHJvcFNoYWRvdy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdmcv
ZmlsdGVycy9mZURyb3BTaGFkb3ctZXhwZWN0ZWQudHh0CmluZGV4IDViNmRkNmVmODFjMTNkZWVh
NjZlYzlkYTkxMjcyZDEwNDQ1ZjdlMTguLjk3YmVmNzhjZWJiZGE5MWZlZDgzYzYyZDhiNTk4ZmQ3
ZGViYWE3YzUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N2Zy9maWx0ZXJzL2ZlRHJvcFNoYWRv
dy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvc3ZnL2ZpbHRlcnMvZmVEcm9wU2hhZG93
LWV4cGVjdGVkLnR4dApAQCAtNCwyOCArNCwyOCBAQCBsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2
MDAKICAgUmVuZGVyU1ZHUm9vdCB7c3ZnfSBhdCAoMCwwKSBzaXplIDY4NHgzMzQKICAgICBSZW5k
ZXJTVkdIaWRkZW5Db250YWluZXIge2RlZnN9IGF0ICgwLDApIHNpemUgMHgwCiAgICAgICBSZW5k
ZXJTVkdSZXNvdXJjZUZpbHRlciB7ZmlsdGVyfSBbaWQ9ImRyb3Atc2hhZG93LTEiXSBbZmlsdGVy
VW5pdHM9b2JqZWN0Qm91bmRpbmdCb3hdIFtwcmltaXRpdmVVbml0cz11c2VyU3BhY2VPblVzZV0K
LSAgICAgICAgW2ZlRHJvcFNoYWRvdyBzdGREZXZpYXRpb249IjIuMDAsIDIuMDAiIGR4PSIyLjAw
IiBkeT0iMi4wMCIgZmxvb2QtY29sb3I9IiMwMDgwMDAiIGZsb29kLW9wYWNpdHk9IjEuMDBdCisg
ICAgICAgIFtmZURyb3BTaGFkb3cgc3RkRGV2aWF0aW9uPSIyLjAwLCAyLjAwIiBkeD0iMi4wMCIg
ZHk9IjIuMDAiIGZsb29kLWNvbG9yPSIjMDA4MDAwIiBmbG9vZC1vcGFjaXR5PSIxLjAwIl0KICAg
ICAgICAgICBbU291cmNlR3JhcGhpY10KICAgICAgIFJlbmRlclNWR1Jlc291cmNlRmlsdGVyIHtm
aWx0ZXJ9IFtpZD0iZHJvcC1zaGFkb3ctMiJdIFtmaWx0ZXJVbml0cz1vYmplY3RCb3VuZGluZ0Jv
eF0gW3ByaW1pdGl2ZVVuaXRzPXVzZXJTcGFjZU9uVXNlXQotICAgICAgICBbZmVEcm9wU2hhZG93
IHN0ZERldmlhdGlvbj0iMC4wMCwgMC4wMCIgZHg9IjAuMDAiIGR5PSIwLjAwIiBmbG9vZC1jb2xv
cj0iIzAwODAwMCIgZmxvb2Qtb3BhY2l0eT0iMS4wMF0KKyAgICAgICAgW2ZlRHJvcFNoYWRvdyBz
dGREZXZpYXRpb249IjAuMDAsIDAuMDAiIGR4PSIwLjAwIiBkeT0iMC4wMCIgZmxvb2QtY29sb3I9
IiMwMDgwMDAiIGZsb29kLW9wYWNpdHk9IjEuMDAiXQogICAgICAgICAgIFtTb3VyY2VHcmFwaGlj
XQogICAgICAgUmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXIge2ZpbHRlcn0gW2lkPSJkcm9wLXNoYWRv
dy0zIl0gW2ZpbHRlclVuaXRzPW9iamVjdEJvdW5kaW5nQm94XSBbcHJpbWl0aXZlVW5pdHM9dXNl
clNwYWNlT25Vc2VdCi0gICAgICAgIFtmZURyb3BTaGFkb3cgc3RkRGV2aWF0aW9uPSIwLjAwLCAx
MC4wMCIgZHg9IjUuMDAiIGR5PSI1LjAwIiBmbG9vZC1jb2xvcj0iIzAwODAwMCIgZmxvb2Qtb3Bh
Y2l0eT0iMS4wMF0KKyAgICAgICAgW2ZlRHJvcFNoYWRvdyBzdGREZXZpYXRpb249IjAuMDAsIDEw
LjAwIiBkeD0iNS4wMCIgZHk9IjUuMDAiIGZsb29kLWNvbG9yPSIjMDA4MDAwIiBmbG9vZC1vcGFj
aXR5PSIxLjAwIl0KICAgICAgICAgICBbU291cmNlR3JhcGhpY10KICAgICAgIFJlbmRlclNWR1Jl
c291cmNlRmlsdGVyIHtmaWx0ZXJ9IFtpZD0iZHJvcC1zaGFkb3ctNCJdIFtmaWx0ZXJVbml0cz1v
YmplY3RCb3VuZGluZ0JveF0gW3ByaW1pdGl2ZVVuaXRzPXVzZXJTcGFjZU9uVXNlXQotICAgICAg
ICBbZmVEcm9wU2hhZG93IHN0ZERldmlhdGlvbj0iMTAuMDAsIDAuMDAiIGR4PSI1LjAwIiBkeT0i
NS4wMCIgZmxvb2QtY29sb3I9IiMwMDgwMDAiIGZsb29kLW9wYWNpdHk9IjEuMDBdCisgICAgICAg
IFtmZURyb3BTaGFkb3cgc3RkRGV2aWF0aW9uPSIxMC4wMCwgMC4wMCIgZHg9IjUuMDAiIGR5PSI1
LjAwIiBmbG9vZC1jb2xvcj0iIzAwODAwMCIgZmxvb2Qtb3BhY2l0eT0iMS4wMCJdCiAgICAgICAg
ICAgW1NvdXJjZUdyYXBoaWNdCiAgICAgICBSZW5kZXJTVkdSZXNvdXJjZUZpbHRlciB7ZmlsdGVy
fSBbaWQ9ImRyb3Atc2hhZG93LTUiXSBbZmlsdGVyVW5pdHM9b2JqZWN0Qm91bmRpbmdCb3hdIFtw
cmltaXRpdmVVbml0cz11c2VyU3BhY2VPblVzZV0KLSAgICAgICAgW2ZlRHJvcFNoYWRvdyBzdGRE
ZXZpYXRpb249IjEwLjAwLCAxMC4wMCIgZHg9IjUuMDAiIGR5PSI1LjAwIiBmbG9vZC1jb2xvcj0i
IzAwODAwMCIgZmxvb2Qtb3BhY2l0eT0iMS4wMF0KKyAgICAgICAgW2ZlRHJvcFNoYWRvdyBzdGRE
ZXZpYXRpb249IjEwLjAwLCAxMC4wMCIgZHg9IjUuMDAiIGR5PSI1LjAwIiBmbG9vZC1jb2xvcj0i
IzAwODAwMCIgZmxvb2Qtb3BhY2l0eT0iMS4wMCJdCiAgICAgICAgICAgW1NvdXJjZUdyYXBoaWNd
CiAgICAgICBSZW5kZXJTVkdSZXNvdXJjZUZpbHRlciB7ZmlsdGVyfSBbaWQ9ImRyb3Atc2hhZG93
LTYiXSBbZmlsdGVyVW5pdHM9b2JqZWN0Qm91bmRpbmdCb3hdIFtwcmltaXRpdmVVbml0cz11c2Vy
U3BhY2VPblVzZV0KLSAgICAgICAgW2ZlRHJvcFNoYWRvdyBzdGREZXZpYXRpb249IjEwLjAwLCAx
MC4wMCIgZHg9Ii01LjAwIiBkeT0iLTUuMDAiIGZsb29kLWNvbG9yPSIjMDA4MDAwIiBmbG9vZC1v
cGFjaXR5PSIxLjAwXQorICAgICAgICBbZmVEcm9wU2hhZG93IHN0ZERldmlhdGlvbj0iMTAuMDAs
IDEwLjAwIiBkeD0iLTUuMDAiIGR5PSItNS4wMCIgZmxvb2QtY29sb3I9IiMwMDgwMDAiIGZsb29k
LW9wYWNpdHk9IjEuMDAiXQogICAgICAgICAgIFtTb3VyY2VHcmFwaGljXQogICAgICAgUmVuZGVy
U1ZHUmVzb3VyY2VGaWx0ZXIge2ZpbHRlcn0gW2lkPSJkcm9wLXNoYWRvdy03Il0gW2ZpbHRlclVu
aXRzPW9iamVjdEJvdW5kaW5nQm94XSBbcHJpbWl0aXZlVW5pdHM9dXNlclNwYWNlT25Vc2VdCi0g
ICAgICAgIFtmZURyb3BTaGFkb3cgc3RkRGV2aWF0aW9uPSIxMjguMDAsIDEyOC4wMCIgZHg9IjAu
MDAiIGR5PSIwLjAwIiBmbG9vZC1jb2xvcj0iIzAwODAwMCIgZmxvb2Qtb3BhY2l0eT0iMS4wMF0K
KyAgICAgICAgW2ZlRHJvcFNoYWRvdyBzdGREZXZpYXRpb249IjEyOC4wMCwgMTI4LjAwIiBkeD0i
MC4wMCIgZHk9IjAuMDAiIGZsb29kLWNvbG9yPSIjMDA4MDAwIiBmbG9vZC1vcGFjaXR5PSIxLjAw
Il0KICAgICAgICAgICBbU291cmNlR3JhcGhpY10KICAgICAgIFJlbmRlclNWR1Jlc291cmNlRmls
dGVyIHtmaWx0ZXJ9IFtpZD0iZHJvcC1zaGFkb3ctOCJdIFtmaWx0ZXJVbml0cz1vYmplY3RCb3Vu
ZGluZ0JveF0gW3ByaW1pdGl2ZVVuaXRzPXVzZXJTcGFjZU9uVXNlXQotICAgICAgICBbZmVEcm9w
U2hhZG93IHN0ZERldmlhdGlvbj0iMTAuMDAsIDEwLjAwIiBkeD0iNS4wMCIgZHk9IjUuMDAiIGZs
b29kLWNvbG9yPSIjMDA4MDAwIiBmbG9vZC1vcGFjaXR5PSIwLjUwXQorICAgICAgICBbZmVEcm9w
U2hhZG93IHN0ZERldmlhdGlvbj0iMTAuMDAsIDEwLjAwIiBkeD0iNS4wMCIgZHk9IjUuMDAiIGZs
b29kLWNvbG9yPSIjMDA4MDAwIiBmbG9vZC1vcGFjaXR5PSIwLjUwIl0KICAgICAgICAgICBbU291
cmNlR3JhcGhpY10KICAgICBSZW5kZXJTVkdFbGxpcHNlIHtjaXJjbGV9IGF0ICgwLDApIHNpemUg
MTU5eDE1OSBbc3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAwRkZdIFtzdHJva2Ugd2lk
dGg9NS4wMF19XSBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jRkZGRjAwXX1dIFtjeD03NS4w
MF0gW2N5PTc1LjAwXSBbcj03MC4wMF0KICAgICAgIFtmaWx0ZXI9ImRyb3Atc2hhZG93LTEiXSBS
ZW5kZXJTVkdSZXNvdXJjZUZpbHRlciB7ZmlsdGVyfSBhdCAoLTksLTkpIHNpemUgMTY4eDE2OApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3ZnL2ZpbHRlcnMvZmVEcm9wU2hhZG93LXN1YnJlZ2lv
bi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdmcvZmlsdGVycy9mZURyb3BTaGFkb3ctc3Vi
cmVnaW9uLWV4cGVjdGVkLnR4dAppbmRleCA3MzAxN2Y0OWQwMzMzMGRhMmM1ZDg3NzBjYWZmZDgx
ZWVkOGRmZjM3Li42N2Y0MTk1YmQzNjUwZDc0MWMxMzkyNGQ5NDg1NTgxNTRlYTI3Njk3IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9zdmcvZmlsdGVycy9mZURyb3BTaGFkb3ctc3VicmVnaW9uLWV4
cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9zdmcvZmlsdGVycy9mZURyb3BTaGFkb3ctc3Vi
cmVnaW9uLWV4cGVjdGVkLnR4dApAQCAtNSw3ICs1LDcgQEAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSAx
MDB4MTAwCiAgICAgUmVuZGVyU1ZHSGlkZGVuQ29udGFpbmVyIHtkZWZzfSBhdCAoMCwwKSBzaXpl
IDB4MAogICAgICAgUmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXIge2ZpbHRlcn0gW2lkPSJEcm9wU2hh
ZG93Il0gW2ZpbHRlclVuaXRzPW9iamVjdEJvdW5kaW5nQm94XSBbcHJpbWl0aXZlVW5pdHM9dXNl
clNwYWNlT25Vc2VdCiAgICAgICAgIFtmZUNvbXBvc2l0ZSBvcGVyYXRpb249Ik9WRVIiXQotICAg
ICAgICAgIFtmZURyb3BTaGFkb3cgc3RkRGV2aWF0aW9uPSIxMC4wMCwgMTAuMDAiIGR4PSIxMC4w
MCIgZHk9IjEwLjAwIiBmbG9vZC1jb2xvcj0iI0ZGMDAwMCIgZmxvb2Qtb3BhY2l0eT0iMS4wMF0K
KyAgICAgICAgICBbZmVEcm9wU2hhZG93IHN0ZERldmlhdGlvbj0iMTAuMDAsIDEwLjAwIiBkeD0i
MTAuMDAiIGR5PSIxMC4wMCIgZmxvb2QtY29sb3I9IiNGRjAwMDAiIGZsb29kLW9wYWNpdHk9IjEu
MDAiXQogICAgICAgICAgICAgW1NvdXJjZUdyYXBoaWNdCiAgICAgICAgICAgW2ZlT2Zmc2V0IGR4
PSIxMC4wMCIgZHk9IjEwLjAwIl0KICAgICAgICAgICAgIFtTb3VyY2VHcmFwaGljXQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvc3ZnL2ZpbHRlcnMvZmVEcm9wU2hhZG93LXplcm8tZGV2aWF0aW9u
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N2Zy9maWx0ZXJzL2ZlRHJvcFNoYWRvdy16ZXJv
LWRldmlhdGlvbi1leHBlY3RlZC50eHQKaW5kZXggNGZlYWFmMDBjMzg1ZWM0NDRjNTlkNjMwNGVh
OTM0YzJmYzU3NGE4Ni4uYTc5NDkxOWM3YjE0YTQ1YmE3NDg5YjU0MjBlNjI3ZWZmNDA1NDQ5MCAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3ZnL2ZpbHRlcnMvZmVEcm9wU2hhZG93LXplcm8tZGV2
aWF0aW9uLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9zdmcvZmlsdGVycy9mZURyb3BT
aGFkb3ctemVyby1kZXZpYXRpb24tZXhwZWN0ZWQudHh0CkBAIC00LDEwICs0LDEwIEBAIGxheWVy
IGF0ICgwLDApIHNpemUgODAweDYwMAogICBSZW5kZXJTVkdSb290IHtzdmd9IGF0ICg0OSwxOSkg
c2l6ZSAxMngzMgogICAgIFJlbmRlclNWR0hpZGRlbkNvbnRhaW5lciB7ZGVmc30gYXQgKDAsMCkg
c2l6ZSAweDAKICAgICAgIFJlbmRlclNWR1Jlc291cmNlRmlsdGVyIHtmaWx0ZXJ9IFtpZD0iZjEi
XSBbZmlsdGVyVW5pdHM9b2JqZWN0Qm91bmRpbmdCb3hdIFtwcmltaXRpdmVVbml0cz11c2VyU3Bh
Y2VPblVzZV0KLSAgICAgICAgW2ZlRHJvcFNoYWRvdyBzdGREZXZpYXRpb249IjAuMDAsIDEuMDAi
IGR4PSIyLjAwIiBkeT0iMi4wMCIgZmxvb2QtY29sb3I9IiMwMDAwMDAiIGZsb29kLW9wYWNpdHk9
IjEuMDBdCisgICAgICAgIFtmZURyb3BTaGFkb3cgc3RkRGV2aWF0aW9uPSIwLjAwLCAxLjAwIiBk
eD0iMi4wMCIgZHk9IjIuMDAiIGZsb29kLWNvbG9yPSIjMDAwMDAwIiBmbG9vZC1vcGFjaXR5PSIx
LjAwIl0KICAgICAgICAgICBbU291cmNlR3JhcGhpY10KICAgICAgIFJlbmRlclNWR1Jlc291cmNl
RmlsdGVyIHtmaWx0ZXJ9IFtpZD0iZjIiXSBbZmlsdGVyVW5pdHM9b2JqZWN0Qm91bmRpbmdCb3hd
IFtwcmltaXRpdmVVbml0cz11c2VyU3BhY2VPblVzZV0KLSAgICAgICAgW2ZlRHJvcFNoYWRvdyBz
dGREZXZpYXRpb249IjEuMDAsIDAuMDAiIGR4PSIyLjAwIiBkeT0iMi4wMCIgZmxvb2QtY29sb3I9
IiMwMDAwMDAiIGZsb29kLW9wYWNpdHk9IjEuMDBdCisgICAgICAgIFtmZURyb3BTaGFkb3cgc3Rk
RGV2aWF0aW9uPSIxLjAwLCAwLjAwIiBkeD0iMi4wMCIgZHk9IjIuMDAiIGZsb29kLWNvbG9yPSIj
MDAwMDAwIiBmbG9vZC1vcGFjaXR5PSIxLjAwIl0KICAgICAgICAgICBbU291cmNlR3JhcGhpY10K
ICAgICBSZW5kZXJTVkdSZWN0IHtyZWN0fSBhdCAoNDksMTkpIHNpemUgMTJ4MTIgW2ZpbGw9e1t0
eXBlPVNPTElEXSBbY29sb3I9IzAwODAwMF19XSBbeD01MC4wMF0gW3k9MjAuMDBdIFt3aWR0aD0x
MC4wMF0gW2hlaWdodD0xMC4wMF0KICAgICAgIFtmaWx0ZXI9ImYxIl0gUmVuZGVyU1ZHUmVzb3Vy
Y2VGaWx0ZXIge2ZpbHRlcn0gYXQgKDQ5LDE5KSBzaXplIDEyeDEyCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9zdmcvcmVwYWludC9maWx0ZXItY2hpbGQtcmVwYWludC1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9zdmcvcmVwYWludC9maWx0ZXItY2hpbGQtcmVwYWludC1leHBlY3RlZC50eHQK
aW5kZXggNThiZjA4NDM1ZWY1YmM5OGE2MGZhYjk2NmQ2YzRlZWUxNTgxOTQzYS4uNWVkY2MzYTk2
OGViMDc1MGQ4Yjc3NjQyZjQxZWI0OTRiOTYxOTkzYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
c3ZnL3JlcGFpbnQvZmlsdGVyLWNoaWxkLXJlcGFpbnQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91
dFRlc3RzL3N2Zy9yZXBhaW50L2ZpbHRlci1jaGlsZC1yZXBhaW50LWV4cGVjdGVkLnR4dApAQCAt
NCw3ICs0LDcgQEAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSAxMjh4MTI4CiAgIFJlbmRlclNWR1Jvb3Qg
e3N2Z30gYXQgKDAsMCkgc2l6ZSAxMDZ4MTA2CiAgICAgUmVuZGVyU1ZHSGlkZGVuQ29udGFpbmVy
IHtkZWZzfSBhdCAoMCwwKSBzaXplIDB4MAogICAgICAgUmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXIg
e2ZpbHRlcn0gW2lkPSJkcm9wU2hhZG93Il0gW2ZpbHRlclVuaXRzPW9iamVjdEJvdW5kaW5nQm94
XSBbcHJpbWl0aXZlVW5pdHM9dXNlclNwYWNlT25Vc2VdCi0gICAgICAgIFtmZURyb3BTaGFkb3cg
c3RkRGV2aWF0aW9uPSIyLjAwLCAyLjAwIiBkeD0iMy4wMCIgZHk9IjMuMDAiIGZsb29kLWNvbG9y
PSIjMDAwMDAwIiBmbG9vZC1vcGFjaXR5PSIxLjAwXQorICAgICAgICBbZmVEcm9wU2hhZG93IHN0
ZERldmlhdGlvbj0iMi4wMCwgMi4wMCIgZHg9IjMuMDAiIGR5PSIzLjAwIiBmbG9vZC1jb2xvcj0i
IzAwMDAwMCIgZmxvb2Qtb3BhY2l0eT0iMS4wMCJdCiAgICAgICAgICAgW1NvdXJjZUdyYXBoaWNd
CiAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoMCwwKSBzaXplIDEwNngxMDYKICAgICAg
IFtmaWx0ZXI9ImRyb3BTaGFkb3ciXSBSZW5kZXJTVkdSZXNvdXJjZUZpbHRlciB7ZmlsdGVyfSBh
dCAoLTkuNjAsLTkuNjApIHNpemUgMTE1LjIweDExNS4yMAo=
</data>
<flag name="review"
          id="471442"
          type_id="1"
          status="+"
          setter="heycam"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>446123</attachid>
            <date>2021-12-06 22:17:19 -0800</date>
            <delta_ts>2021-12-06 23:19:20 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-233893-20211206221718.patch</filename>
            <type>text/plain</type>
            <size>63838</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2NTg2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjNlMzRlN2EyNjgzMGQ3
MjFlNWYzODgzNWM0YzdmZDBlM2E2NGY1NC4uMjI3NGRkZDg0MWJkOWY3MGRkNTIxNjM1MjMzNGZh
YzFiYjRmYzUyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEwMyBAQAorMjAyMS0xMi0wNiAgU2Fp
ZCBBYm91LUhhbGxhd2EgIDxzYWlkQGFwcGxlLmNvbT4KKworICAgICAgICBbR1BVIFByb2Nlc3Nd
ICBbRmlsdGVyc10gTWFrZSBGaWx0ZXJFZmZlY3Q6OmV4dGVybmFsUmVwcmVzZW50YXRpb24oKSBh
bmQgaXRzIG92ZXJyaWRhYmxlIGZ1bmN0aW9ucyB3b3JrIGl0ZXJhdGl2ZWx5CisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzM4OTMKKworICAgICAgICBS
ZXZpZXdlZCBieSBDYW1lcm9uIE1jQ29ybWFjay4KKworICAgICAgICBUaGlzIGlzIGEgc3RlcCB0
b3dhcmRzIHJlbW92aW5nIHRoZSBpbnB1dEVmZmVjdCgpIGZyb20gRmlsdGVyRWZmZWN0LgorCisg
ICAgICAgIC0tIFRoZSBlbnVtIEZsaXRlckVmZmVjdDo6UmVwcmVzZW50YXRpb25UeXBlIGlzIHJl
cGxhY2VkIGJ5CisgICAgICAgICAgIEZpbHRlclJlcHJlc2VudGF0aW9uLgorCisgICAgICAgIC0t
IENTU0ZpbHRlciBjYWxscyBpdHMgZnVuY3Rpb25zIGZyb20gbGVmdCB0byByaWdodCB0byBkdW1w
IHRoZWlyCisgICAgICAgICAgIGV4dGVybmFsUmVwcmVzZW50YXRpb24uCisKKyAgICAgICAgLS0g
U1ZHRmlsdGVyIHVzZXMgaXRzIGV4cHJlc3Npb24gdG8gZHVtcCBpdHMgZ3JhcGggb2YgRmlsdGVy
RWZmZWN0cy4KKworICAgICAgICAtLSBTaW5jZSBTb3VyY2VBbHBoYSBpcyBhIGJ1aWx0LWluIGVm
ZmVjdCBpdCBkb2VzIG5vdCBuZWVkIHRvIGR1bXAKKyAgICAgICAgICAgU291cmNlR3JhcGhpYyBh
cyBpdHMgaW5wdXQuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQmxl
bmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RkVCbGVuZDo6ZXh0ZXJuYWxSZXByZXNlbnRhdGlv
biBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUJsZW5kLmg6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbG9yTWF0cml4LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkZFQ29sb3JNYXRyaXg6OmV4dGVybmFsUmVwcmVzZW50YXRpb24g
Y29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb2xvck1hdHJp
eC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb21wb25lbnRUcmFu
c2Zlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGRUNvbXBvbmVudFRyYW5zZmVyOjpleHRlcm5h
bFJlcHJlc2VudGF0aW9uIGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0
ZXJzL0ZFQ29tcG9uZW50VHJhbnNmZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9m
aWx0ZXJzL0ZFQ29tcG9zaXRlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZFQ29tcG9zaXRlOjpl
eHRlcm5hbFJlcHJlc2VudGF0aW9uIGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9maWx0ZXJzL0ZFQ29tcG9zaXRlLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmls
dGVycy9GRUNvbnZvbHZlTWF0cml4LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZFQ29udm9sdmVN
YXRyaXg6OmV4dGVybmFsUmVwcmVzZW50YXRpb24gY29uc3QpOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2ZpbHRlcnMvRkVDb252b2x2ZU1hdHJpeC5oOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2ZpbHRlcnMvRkVEaWZmdXNlTGlnaHRpbmcuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6RkVEaWZmdXNlTGlnaHRpbmc6OmV4dGVybmFsUmVwcmVzZW50YXRpb24gY29uc3QpOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVEaWZmdXNlTGlnaHRpbmcuaDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRGlzcGxhY2VtZW50TWFwLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkZFRGlzcGxhY2VtZW50TWFwOjpleHRlcm5hbFJlcHJlc2VudGF0
aW9uIGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRGlzcGxh
Y2VtZW50TWFwLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRURyb3BT
aGFkb3cuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RkVEcm9wU2hhZG93OjpleHRlcm5hbFJlcHJl
c2VudGF0aW9uIGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZF
RHJvcFNoYWRvdy5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVGbG9v
ZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGRUZsb29kOjpleHRlcm5hbFJlcHJlc2VudGF0aW9u
IGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRmxvb2QuaDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFR2F1c3NpYW5CbHVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkZFR2F1c3NpYW5CbHVyOjpleHRlcm5hbFJlcHJlc2VudGF0aW9u
IGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFR2F1c3NpYW5C
bHVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRU1lcmdlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkZFTWVyZ2U6OmV4dGVybmFsUmVwcmVzZW50YXRpb24gY29uc3Qp
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVNZXJnZS5oOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVNb3JwaG9sb2d5LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkZFTW9ycGhvbG9neTo6ZXh0ZXJuYWxSZXByZXNlbnRhdGlvbiBjb25zdCk6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRU1vcnBob2xvZ3kuaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFT2Zmc2V0LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkZFT2Zmc2V0OjpleHRlcm5hbFJlcHJlc2VudGF0aW9uIGNvbnN0KToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFT2Zmc2V0Lmg6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvZmlsdGVycy9GRVNwZWN1bGFyTGlnaHRpbmcuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RkVTcGVjdWxhckxpZ2h0aW5nOjpleHRlcm5hbFJlcHJlc2VudGF0aW9uIGNvbnN0KToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFU3BlY3VsYXJMaWdodGluZy5o
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVUaWxlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkZFVGlsZTo6ZXh0ZXJuYWxSZXByZXNlbnRhdGlvbiBjb25zdCk6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRVRpbGUuaDoKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFVHVyYnVsZW5jZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpGRVR1cmJ1bGVuY2U6OmV4dGVybmFsUmVwcmVzZW50YXRpb24gY29uc3QpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVUdXJidWxlbmNlLmg6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9maWx0ZXJzL0ZpbHRlckVmZmVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGaWx0ZXJF
ZmZlY3Q6OmV4dGVybmFsUmVwcmVzZW50YXRpb24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
b3BlcmF0b3I8PCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXJF
ZmZlY3QuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlckZ1bmN0
aW9uLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9Tb3VyY2VBbHBoYS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VBbHBoYTo6ZXh0ZXJuYWxSZXByZXNlbnRhdGlv
biBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9Tb3VyY2VBbHBo
YS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvU291cmNlR3JhcGhpYy5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VHcmFwaGljOjpleHRlcm5hbFJlcHJlc2VudGF0
aW9uIGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1NvdXJjZUdy
YXBoaWMuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvQ1NTRmlsdGVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkNTU0ZpbHRlcjo6ZXh0ZXJuYWxSZXByZXNlbnRhdGlvbiBjb25zdCk6CisgICAgICAg
ICogcmVuZGVyaW5nL0NTU0ZpbHRlci5oOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvU1ZHUmVu
ZGVyVHJlZUFzVGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjp3cml0ZVNWR1Jlc291cmNlQ29u
dGFpbmVyKToKKyAgICAgICAgKiBzdmcvZ3JhcGhpY3MvZmlsdGVycy9TVkdGRUltYWdlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkZFSW1hZ2U6OmV4dGVybmFsUmVwcmVzZW50YXRpb24gY29uc3Qp
OgorICAgICAgICAqIHN2Zy9ncmFwaGljcy9maWx0ZXJzL1NWR0ZFSW1hZ2UuaDoKKyAgICAgICAg
KiBzdmcvZ3JhcGhpY3MvZmlsdGVycy9TVkdGaWx0ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHRmlsdGVyOjpleHRlcm5hbFJlcHJlc2VudGF0aW9uIGNvbnN0KToKKyAgICAgICAgKiBzdmcv
Z3JhcGhpY3MvZmlsdGVycy9TVkdGaWx0ZXIuaDoKKyAgICAgICAgKiBzdmcvZ3JhcGhpY3MvZmls
dGVycy9TVkdGaWx0ZXJCdWlsZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmVmZmVjdEdlb21l
dHJ5RmxhZ3NGb3JFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZpbHRlckJ1aWxkZXI6
OmJ1aWxkRmlsdGVyRWZmZWN0cyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdGaWx0ZXJCdWlsZGVy
OjpidWlsZEVmZmVjdEV4cHJlc3Npb24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRmls
dGVyQnVpbGRlcjo6YnVpbGRFeHByZXNzaW9uIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OmJv
dW5kYXJ5U2V0RmxhZ3NGb3JFbGVtZW50KTogRGVsZXRlZC4KKyAgICAgICAgKiBzdmcvZ3JhcGhp
Y3MvZmlsdGVycy9TVkdGaWx0ZXJCdWlsZGVyLmg6CisgICAgICAgICogc3ZnL2dyYXBoaWNzL2Zp
bHRlcnMvU1ZHRmlsdGVyRXhwcmVzc2lvbi5oOgorCiAyMDIxLTEyLTA2ICBDaHJpcyBEdW1leiAg
PGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgPGlucHV0IHR5cGU9InRpbWUiPidzIHJhbmdl
IHNob3VsZCBiZSByZXZlcnNpYmxlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9maWx0ZXJzL0ZFQmxlbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZmlsdGVycy9GRUJsZW5kLmNwcAppbmRleCAwZmMyMzNjOTg3ODJlM2JlNjQ0YzJl
N2I1YmI2MDg2MDVhMTFhNDk3Li43NmRmOGIwOGY1Y2UwOGMyOGZkMjNlYWJmZTQzMDgzM2JhMjg5
NjdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJz
L0ZFQmxlbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRl
cnMvRkVCbGVuZC5jcHAKQEAgLTU3LDE1ICs1NywxNCBAQCBzdGQ6OnVuaXF1ZV9wdHI8RmlsdGVy
RWZmZWN0QXBwbGllcj4gRkVCbGVuZDo6Y3JlYXRlQXBwbGllcihjb25zdCBGaWx0ZXImKSBjb25z
dAogICAgIHJldHVybiBGaWx0ZXJFZmZlY3RBcHBsaWVyOjpjcmVhdGU8RkVCbGVuZFNvZnR3YXJl
QXBwbGllcj4oKnRoaXMpOwogfQogCi1UZXh0U3RyZWFtJiBGRUJsZW5kOjpleHRlcm5hbFJlcHJl
c2VudGF0aW9uKFRleHRTdHJlYW0mIHRzLCBSZXByZXNlbnRhdGlvblR5cGUgcmVwcmVzZW50YXRp
b24pIGNvbnN0CitUZXh0U3RyZWFtJiBGRUJsZW5kOjpleHRlcm5hbFJlcHJlc2VudGF0aW9uKFRl
eHRTdHJlYW0mIHRzLCBGaWx0ZXJSZXByZXNlbnRhdGlvbiByZXByZXNlbnRhdGlvbikgY29uc3QK
IHsKICAgICB0cyA8PCBpbmRlbnQgPDwgIltmZUJsZW5kIjsKICAgICBGaWx0ZXJFZmZlY3Q6OmV4
dGVybmFsUmVwcmVzZW50YXRpb24odHMsIHJlcHJlc2VudGF0aW9uKTsKLSAgICB0cyA8PCAiIG1v
ZGU9XCIiIDw8IChtX21vZGUgPT0gQmxlbmRNb2RlOjpOb3JtYWwgPyAibm9ybWFsIiA6IGNvbXBv
c2l0ZU9wZXJhdG9yTmFtZShDb21wb3NpdGVPcGVyYXRvcjo6U291cmNlT3ZlciwgbV9tb2RlKSkg
PDwgIlwiXVxuIjsKIAotICAgIFRleHRTdHJlYW06OkluZGVudFNjb3BlIGluZGVudFNjb3BlKHRz
KTsKLSAgICBpbnB1dEVmZmVjdCgwKS0+ZXh0ZXJuYWxSZXByZXNlbnRhdGlvbih0cywgcmVwcmVz
ZW50YXRpb24pOwotICAgIGlucHV0RWZmZWN0KDEpLT5leHRlcm5hbFJlcHJlc2VudGF0aW9uKHRz
LCByZXByZXNlbnRhdGlvbik7CisgICAgdHMgPDwgIiBtb2RlPVwiIiA8PCAobV9tb2RlID09IEJs
ZW5kTW9kZTo6Tm9ybWFsID8gIm5vcm1hbCIgOiBjb21wb3NpdGVPcGVyYXRvck5hbWUoQ29tcG9z
aXRlT3BlcmF0b3I6OlNvdXJjZU92ZXIsIG1fbW9kZSkpOworCisgICAgdHMgPDwgIlwiXVxuIjsK
ICAgICByZXR1cm4gdHM7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2ZpbHRlcnMvRkVCbGVuZC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZmlsdGVycy9GRUJsZW5kLmgKaW5kZXggZTVkZjIxOTJhOWNjMDE3N2M3YWExYTAzMWQx
NmM2ZjJhNGNmOGYzZS4uOWE3N2YyMjM1OTMyNjgzM2Q5MjMwZjlkZDU4NjIzYjQ0YjAwM2YxYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUJs
ZW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUJs
ZW5kLmgKQEAgLTQ2LDcgKzQ2LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHBsYXRmb3JtQXBwbHlO
RU9OKHVuc2lnbmVkIGNoYXIqIHNyY1BpeGVsQXJyYXlBLCB1bnNpZ25lZCBjaGFyKiBzcmNQaXhl
bEFycmF5QiwgdW5zaWduZWQgY2hhciogZHN0UGl4ZWxBcnJheSwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHVuc2lnbmVkIGNvbG9yQXJyYXlMZW5ndGgpOwogCi0gICAgV1RGOjpUZXh0U3Ry
ZWFtJiBleHRlcm5hbFJlcHJlc2VudGF0aW9uKFdURjo6VGV4dFN0cmVhbSYsIFJlcHJlc2VudGF0
aW9uVHlwZSkgY29uc3Qgb3ZlcnJpZGU7CisgICAgV1RGOjpUZXh0U3RyZWFtJiBleHRlcm5hbFJl
cHJlc2VudGF0aW9uKFdURjo6VGV4dFN0cmVhbSYsIEZpbHRlclJlcHJlc2VudGF0aW9uKSBjb25z
dCBvdmVycmlkZTsKIAogICAgIEJsZW5kTW9kZSBtX21vZGU7CiB9OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbG9yTWF0cml4LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb2xvck1hdHJpeC5j
cHAKaW5kZXggOTU2MWJkOWI1ZjhlMWVmODIyMDVhNzM2NjhiMGM0MzAyNDYyNDZkMi4uMTAzOGVh
YzBiMTVhOTg5MzkxMmIwYjZhMGM1NmQ5MWY5YjM5ODhkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbG9yTWF0cml4LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29sb3JNYXRyaXguY3Bw
CkBAIC0xNDEsMTAgKzE0MSwxMSBAQCBzdGF0aWMgVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0
U3RyZWFtJiB0cywgY29uc3QgQ29sb3JNYXRyaXhUeXBlJiB0eXBlKQogICAgIHJldHVybiB0czsK
IH0KIAotVGV4dFN0cmVhbSYgRkVDb2xvck1hdHJpeDo6ZXh0ZXJuYWxSZXByZXNlbnRhdGlvbihU
ZXh0U3RyZWFtJiB0cywgUmVwcmVzZW50YXRpb25UeXBlIHJlcHJlc2VudGF0aW9uKSBjb25zdAor
VGV4dFN0cmVhbSYgRkVDb2xvck1hdHJpeDo6ZXh0ZXJuYWxSZXByZXNlbnRhdGlvbihUZXh0U3Ry
ZWFtJiB0cywgRmlsdGVyUmVwcmVzZW50YXRpb24gcmVwcmVzZW50YXRpb24pIGNvbnN0CiB7CiAg
ICAgdHMgPDwgaW5kZW50IDw8ICJbZmVDb2xvck1hdHJpeCI7CiAgICAgRmlsdGVyRWZmZWN0Ojpl
eHRlcm5hbFJlcHJlc2VudGF0aW9uKHRzLCByZXByZXNlbnRhdGlvbik7CisKICAgICB0cyA8PCAi
IHR5cGU9XCIiIDw8IG1fdHlwZSA8PCAiXCIiOwogICAgIGlmICghbV92YWx1ZXMuaXNFbXB0eSgp
KSB7CiAgICAgICAgIHRzIDw8ICIgdmFsdWVzPVwiIjsKQEAgLTE1MywxNSArMTU0LDEzIEBAIFRl
eHRTdHJlYW0mIEZFQ29sb3JNYXRyaXg6OmV4dGVybmFsUmVwcmVzZW50YXRpb24oVGV4dFN0cmVh
bSYgdHMsIFJlcHJlc2VudGF0aW9uCiAgICAgICAgIHdoaWxlIChwdHIgPCBlbmQpIHsKICAgICAg
ICAgICAgIHRzIDw8ICpwdHI7CiAgICAgICAgICAgICArK3B0cjsKLSAgICAgICAgICAgIGlmIChw
dHIgPCBlbmQpIAorICAgICAgICAgICAgaWYgKHB0ciA8IGVuZCkKICAgICAgICAgICAgICAgICB0
cyA8PCAiICI7CiAgICAgICAgIH0KICAgICAgICAgdHMgPDwgIlwiIjsKICAgICB9CisKICAgICB0
cyA8PCAiXVxuIjsKLSAgICAKLSAgICBUZXh0U3RyZWFtOjpJbmRlbnRTY29wZSBpbmRlbnRTY29w
ZSh0cyk7Ci0gICAgaW5wdXRFZmZlY3QoMCktPmV4dGVybmFsUmVwcmVzZW50YXRpb24odHMsIHJl
cHJlc2VudGF0aW9uKTsKICAgICByZXR1cm4gdHM7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb2xvck1hdHJpeC5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbG9yTWF0cml4LmgKaW5kZXgg
MjAyNDAxOTNlNTQwYmMyMGVmYjk0Njc0YjZhMDA0N2Q2OGIyMjM0YS4uNDQ0ZTU3YTg2ZjI2Mjgz
MzQ5MmNiZTZlN2YyZWUwMDI5YjMwZTNjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbG9yTWF0cml4LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbG9yTWF0cml4LmgKQEAgLTYzLDcgKzYz
LDcgQEAgcHJpdmF0ZToKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxGaWx0ZXJFZmZlY3RBcHBsaWVy
PiBjcmVhdGVBcHBsaWVyKGNvbnN0IEZpbHRlciYpIGNvbnN0IG92ZXJyaWRlOwogCi0gICAgV1RG
OjpUZXh0U3RyZWFtJiBleHRlcm5hbFJlcHJlc2VudGF0aW9uKFdURjo6VGV4dFN0cmVhbSYsIFJl
cHJlc2VudGF0aW9uVHlwZSkgY29uc3Qgb3ZlcnJpZGU7CisgICAgV1RGOjpUZXh0U3RyZWFtJiBl
eHRlcm5hbFJlcHJlc2VudGF0aW9uKFdURjo6VGV4dFN0cmVhbSYsIEZpbHRlclJlcHJlc2VudGF0
aW9uKSBjb25zdCBvdmVycmlkZTsKIAogICAgIENvbG9yTWF0cml4VHlwZSBtX3R5cGU7CiAgICAg
VmVjdG9yPGZsb2F0PiBtX3ZhbHVlczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb21wb25lbnRUcmFuc2Zlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29tcG9uZW50VHJhbnNmZXIuY3BwCmlu
ZGV4IDgyM2UzZGE2ODFlZmY4NGE1MDBmNGVhODg2NzQ0OWZmMGRkYmZjMGMuLmQyM2Y3YmE4NTEz
NDYzNjk0ZjkyYTI1NzQzMzNkOTQ3YTFkNTM5ZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb21wb25lbnRUcmFuc2Zlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbXBvbmVudFRyYW5z
ZmVyLmNwcApAQCAtMTE2LDIxICsxMTYsMjEgQEAgc3RhdGljIFRleHRTdHJlYW0mIG9wZXJhdG9y
PDwoVGV4dFN0cmVhbSYgdHMsIGNvbnN0IENvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb24mIGYKICAg
ICByZXR1cm4gdHM7CiB9CiAKLVRleHRTdHJlYW0mIEZFQ29tcG9uZW50VHJhbnNmZXI6OmV4dGVy
bmFsUmVwcmVzZW50YXRpb24oVGV4dFN0cmVhbSYgdHMsIFJlcHJlc2VudGF0aW9uVHlwZSByZXBy
ZXNlbnRhdGlvbikgY29uc3QKK1RleHRTdHJlYW0mIEZFQ29tcG9uZW50VHJhbnNmZXI6OmV4dGVy
bmFsUmVwcmVzZW50YXRpb24oVGV4dFN0cmVhbSYgdHMsIEZpbHRlclJlcHJlc2VudGF0aW9uIHJl
cHJlc2VudGF0aW9uKSBjb25zdAogewogICAgIHRzIDw8IGluZGVudCA8PCAiW2ZlQ29tcG9uZW50
VHJhbnNmZXIiOwogICAgIEZpbHRlckVmZmVjdDo6ZXh0ZXJuYWxSZXByZXNlbnRhdGlvbih0cywg
cmVwcmVzZW50YXRpb24pOwogICAgIHRzIDw8ICJcbiI7CisKICAgICB7CiAgICAgICAgIFRleHRT
dHJlYW06OkluZGVudFNjb3BlIGluZGVudFNjb3BlKHRzLCAyKTsKICAgICAgICAgdHMgPDwgaW5k
ZW50IDw8ICJ7cmVkOiAiIDw8IG1fcmVkRnVuY3Rpb24gPDwgIn1cbiI7CiAgICAgICAgIHRzIDw8
IGluZGVudCA8PCAie2dyZWVuOiAiIDw8IG1fZ3JlZW5GdW5jdGlvbiA8PCAifVxuIjsKICAgICAg
ICAgdHMgPDwgaW5kZW50IDw8ICJ7Ymx1ZTogIiA8PCBtX2JsdWVGdW5jdGlvbiA8PCAifVxuIjsK
LSAgICAgICAgdHMgPDwgaW5kZW50IDw8ICJ7YWxwaGE6ICIgPDwgbV9hbHBoYUZ1bmN0aW9uIDw8
ICJ9XVxuIjsKKyAgICAgICAgdHMgPDwgaW5kZW50IDw8ICJ7YWxwaGE6ICIgPDwgbV9hbHBoYUZ1
bmN0aW9uIDw8ICJ9IjsKICAgICB9CiAKLSAgICBUZXh0U3RyZWFtOjpJbmRlbnRTY29wZSBpbmRl
bnRTY29wZSh0cyk7Ci0gICAgaW5wdXRFZmZlY3QoMCktPmV4dGVybmFsUmVwcmVzZW50YXRpb24o
dHMsIHJlcHJlc2VudGF0aW9uKTsKKyAgICB0cyA8PCAiXVxuIjsKICAgICByZXR1cm4gdHM7CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMv
RkVDb21wb25lbnRUcmFuc2Zlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZmlsdGVycy9GRUNvbXBvbmVudFRyYW5zZmVyLmgKaW5kZXggMDQ5ZDRmMjA2YjhiNDYxNjY4Yjcw
MjQ4ZTdlMGI1NGU1MTU5ZjY1Mi4uNTA1NWM1ZWQ0NTZkMTBlYWRjZGRmMTJiOTAyNDg5ZTkyMmM5
MjAzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVy
cy9GRUNvbXBvbmVudFRyYW5zZmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZmlsdGVycy9GRUNvbXBvbmVudFRyYW5zZmVyLmgKQEAgLTc0LDcgKzc0LDcgQEAgcHJp
dmF0ZToKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxGaWx0ZXJFZmZlY3RBcHBsaWVyPiBjcmVhdGVB
cHBsaWVyKGNvbnN0IEZpbHRlciYpIGNvbnN0IG92ZXJyaWRlOwogCi0gICAgV1RGOjpUZXh0U3Ry
ZWFtJiBleHRlcm5hbFJlcHJlc2VudGF0aW9uKFdURjo6VGV4dFN0cmVhbSYsIFJlcHJlc2VudGF0
aW9uVHlwZSkgY29uc3Qgb3ZlcnJpZGU7CisgICAgV1RGOjpUZXh0U3RyZWFtJiBleHRlcm5hbFJl
cHJlc2VudGF0aW9uKFdURjo6VGV4dFN0cmVhbSYsIEZpbHRlclJlcHJlc2VudGF0aW9uKSBjb25z
dCBvdmVycmlkZTsKIAogICAgIENvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb24gbV9yZWRGdW5jdGlv
bjsKICAgICBDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uIG1fZ3JlZW5GdW5jdGlvbjsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb21wb3Np
dGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbXBv
c2l0ZS5jcHAKaW5kZXggNWNjMjgxODM2NjEyYzJiYjU5ZTBkZjY4OWJiOTlmMWI1YjVjY2ZiMi4u
N2RjYTY5NTIzMjVlNWU2MjA4ZTY1ZTNmOTYyNDhmODZmZmU1ZTJhYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbXBvc2l0ZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbXBvc2l0ZS5j
cHAKQEAgLTE0MiwxOCArMTQyLDE2IEBAIHN0YXRpYyBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRl
eHRTdHJlYW0mIHRzLCBjb25zdCBDb21wb3NpdGVPcGVyYXRpb25UeXBlJiB0eXBlCiAgICAgcmV0
dXJuIHRzOwogfQogCi1UZXh0U3RyZWFtJiBGRUNvbXBvc2l0ZTo6ZXh0ZXJuYWxSZXByZXNlbnRh
dGlvbihUZXh0U3RyZWFtJiB0cywgUmVwcmVzZW50YXRpb25UeXBlIHJlcHJlc2VudGF0aW9uKSBj
b25zdAorVGV4dFN0cmVhbSYgRkVDb21wb3NpdGU6OmV4dGVybmFsUmVwcmVzZW50YXRpb24oVGV4
dFN0cmVhbSYgdHMsIEZpbHRlclJlcHJlc2VudGF0aW9uIHJlcHJlc2VudGF0aW9uKSBjb25zdAog
ewogICAgIHRzIDw8IGluZGVudCA8PCAiW2ZlQ29tcG9zaXRlIjsKICAgICBGaWx0ZXJFZmZlY3Q6
OmV4dGVybmFsUmVwcmVzZW50YXRpb24odHMsIHJlcHJlc2VudGF0aW9uKTsKKwogICAgIHRzIDw8
ICIgb3BlcmF0aW9uPVwiIiA8PCBtX3R5cGUgPDwgIlwiIjsKICAgICBpZiAobV90eXBlID09IEZF
Q09NUE9TSVRFX09QRVJBVE9SX0FSSVRITUVUSUMpCiAgICAgICAgIHRzIDw8ICIgazE9XCIiIDw8
IG1fazEgPDwgIlwiIGsyPVwiIiA8PCBtX2syIDw8ICJcIiBrMz1cIiIgPDwgbV9rMyA8PCAiXCIg
azQ9XCIiIDw8IG1fazQgPDwgIlwiIjsKLSAgICB0cyA8PCAiXVxuIjsKIAotICAgIFRleHRTdHJl
YW06OkluZGVudFNjb3BlIGluZGVudFNjb3BlKHRzKTsKLSAgICBpbnB1dEVmZmVjdCgwKS0+ZXh0
ZXJuYWxSZXByZXNlbnRhdGlvbih0cywgcmVwcmVzZW50YXRpb24pOwotICAgIGlucHV0RWZmZWN0
KDEpLT5leHRlcm5hbFJlcHJlc2VudGF0aW9uKHRzLCByZXByZXNlbnRhdGlvbik7CisgICAgdHMg
PDwgIl1cbiI7CiAgICAgcmV0dXJuIHRzOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29tcG9zaXRlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29tcG9zaXRlLmgKaW5kZXggYzQwODM0MGFh
ZGNjM2Y5ZWExZjJlOWQ4YjZhYjlkMzUzMTc0NjA2ZS4uM2I5Yzg1NmIyN2I0MGFkZjVkMjJjYmEy
ZjJkNTYwY2RjYmRiN2JmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZmlsdGVycy9GRUNvbXBvc2l0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2ZpbHRlcnMvRkVDb21wb3NpdGUuaApAQCAtNjksNyArNjksNyBAQCBwcml2YXRl
OgogCiAgICAgc3RkOjp1bmlxdWVfcHRyPEZpbHRlckVmZmVjdEFwcGxpZXI+IGNyZWF0ZUFwcGxp
ZXIoY29uc3QgRmlsdGVyJikgY29uc3Qgb3ZlcnJpZGU7CiAKLSAgICBXVEY6OlRleHRTdHJlYW0m
IGV4dGVybmFsUmVwcmVzZW50YXRpb24oV1RGOjpUZXh0U3RyZWFtJiwgUmVwcmVzZW50YXRpb25U
eXBlKSBjb25zdCBvdmVycmlkZTsKKyAgICBXVEY6OlRleHRTdHJlYW0mIGV4dGVybmFsUmVwcmVz
ZW50YXRpb24oV1RGOjpUZXh0U3RyZWFtJiwgRmlsdGVyUmVwcmVzZW50YXRpb24pIGNvbnN0IG92
ZXJyaWRlOwogCiAgICAgaW5saW5lIHZvaWQgcGxhdGZvcm1Bcml0aG1ldGljU29mdHdhcmUoY29u
c3QgVWludDhDbGFtcGVkQXJyYXkmIHNvdXJjZSwgVWludDhDbGFtcGVkQXJyYXkmIGRlc3RpbmF0
aW9uLCBmbG9hdCBrMSwgZmxvYXQgazIsIGZsb2F0IGszLCBmbG9hdCBrNCk7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb252b2x2ZU1h
dHJpeC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29u
dm9sdmVNYXRyaXguY3BwCmluZGV4IDFkMWI2MDcxZjU0YTY0YmJiMzkzMWYwMzUwMzYyNTUzY2Fk
MmU3ODEuLjFkMjc0ODM1MzFjYjEwZDEyNjdmMWM0Mjc3MDcxNjIxODQ4NTE1MWYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb252b2x2ZU1h
dHJpeC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9G
RUNvbnZvbHZlTWF0cml4LmNwcApAQCAtMTQzLDIxICsxNDMsMjEgQEAgc3RhdGljIFRleHRTdHJl
YW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIGNvbnN0IEVkZ2VNb2RlVHlwZSYgdHlwZSkK
ICAgICByZXR1cm4gdHM7CiB9CiAKLVRleHRTdHJlYW0mIEZFQ29udm9sdmVNYXRyaXg6OmV4dGVy
bmFsUmVwcmVzZW50YXRpb24oVGV4dFN0cmVhbSYgdHMsIFJlcHJlc2VudGF0aW9uVHlwZSByZXBy
ZXNlbnRhdGlvbikgY29uc3QKK1RleHRTdHJlYW0mIEZFQ29udm9sdmVNYXRyaXg6OmV4dGVybmFs
UmVwcmVzZW50YXRpb24oVGV4dFN0cmVhbSYgdHMsIEZpbHRlclJlcHJlc2VudGF0aW9uIHJlcHJl
c2VudGF0aW9uKSBjb25zdAogewogICAgIHRzIDw8IGluZGVudCA8PCAiW2ZlQ29udm9sdmVNYXRy
aXgiOwogICAgIEZpbHRlckVmZmVjdDo6ZXh0ZXJuYWxSZXByZXNlbnRhdGlvbih0cywgcmVwcmVz
ZW50YXRpb24pOwotICAgIHRzIDw8ICIgb3JkZXI9XCIiIDw8IG1fa2VybmVsU2l6ZSA8PCAiXCIg
IgotICAgICAgIDw8ICJrZXJuZWxNYXRyaXg9XCIiIDw8IG1fa2VybmVsTWF0cml4ICA8PCAiXCIg
IgotICAgICAgIDw8ICJkaXZpc29yPVwiIiA8PCBtX2Rpdmlzb3IgPDwgIlwiICIKLSAgICAgICA8
PCAiYmlhcz1cIiIgPDwgbV9iaWFzIDw8ICJcIiAiCi0gICAgICAgPDwgInRhcmdldD1cIiIgPDwg
bV90YXJnZXRPZmZzZXQgPDwgIlwiICIKLSAgICAgICA8PCAiZWRnZU1vZGU9XCIiIDw8IG1fZWRn
ZU1vZGUgPDwgIlwiICIKLSAgICAgICA8PCAia2VybmVsVW5pdExlbmd0aD1cIiIgPDwgbV9rZXJu
ZWxVbml0TGVuZ3RoIDw8ICJcIiAiCi0gICAgICAgPDwgInByZXNlcnZlQWxwaGE9XCIiIDw8IG1f
cHJlc2VydmVBbHBoYSA8PCAiXCJdXG4iOwotCi0gICAgVGV4dFN0cmVhbTo6SW5kZW50U2NvcGUg
aW5kZW50U2NvcGUodHMpOwotICAgIGlucHV0RWZmZWN0KDApLT5leHRlcm5hbFJlcHJlc2VudGF0
aW9uKHRzLCByZXByZXNlbnRhdGlvbik7CisKKyAgICB0cyA8PCAiIG9yZGVyPVwiIiA8PCBtX2tl
cm5lbFNpemUgPDwgIlwiIjsKKyAgICB0cyA8PCAiIGtlcm5lbE1hdHJpeD1cIiIgPDwgbV9rZXJu
ZWxNYXRyaXggIDw8ICJcIiI7CisgICAgdHMgPDwgIiBkaXZpc29yPVwiIiA8PCBtX2Rpdmlzb3Ig
PDwgIlwiIjsKKyAgICB0cyA8PCAiIGJpYXM9XCIiIDw8IG1fYmlhcyA8PCAiXCIiOworICAgIHRz
IDw8ICIgdGFyZ2V0PVwiIiA8PCBtX3RhcmdldE9mZnNldCA8PCAiXCIiOworICAgIHRzIDw8ICIg
ZWRnZU1vZGU9XCIiIDw8IG1fZWRnZU1vZGUgPDwgIlwiIjsKKyAgICB0cyA8PCAiIGtlcm5lbFVu
aXRMZW5ndGg9XCIiIDw8IG1fa2VybmVsVW5pdExlbmd0aCA8PCAiXCIiOworICAgIHRzIDw8ICIg
cHJlc2VydmVBbHBoYT1cIiIgPDwgbV9wcmVzZXJ2ZUFscGhhIDw8ICJcIiI7CisKKyAgICB0cyA8
PCAiXVxuIjsKICAgICByZXR1cm4gdHM7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb252b2x2ZU1hdHJpeC5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbnZvbHZlTWF0cml4LmgKaW5kZXgg
NzU0MWYzZTRlZGE4YTNkNzlhNzQyZWNiMDBlYzRkZDU0ZTc3MjQxYy4uZWU2YmM4ZmFhYWZiMGUw
MTkyYThlMWE1OWVlYTE2MWUzYzUzNDczNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbnZvbHZlTWF0cml4LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbnZvbHZlTWF0cml4LmgKQEAgLTc0
LDcgKzc0LDcgQEAgcHJpdmF0ZToKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxGaWx0ZXJFZmZlY3RB
cHBsaWVyPiBjcmVhdGVBcHBsaWVyKGNvbnN0IEZpbHRlciYpIGNvbnN0IG92ZXJyaWRlOwogCi0g
ICAgV1RGOjpUZXh0U3RyZWFtJiBleHRlcm5hbFJlcHJlc2VudGF0aW9uKFdURjo6VGV4dFN0cmVh
bSYsIFJlcHJlc2VudGF0aW9uVHlwZSkgY29uc3Qgb3ZlcnJpZGU7CisgICAgV1RGOjpUZXh0U3Ry
ZWFtJiBleHRlcm5hbFJlcHJlc2VudGF0aW9uKFdURjo6VGV4dFN0cmVhbSYsIEZpbHRlclJlcHJl
c2VudGF0aW9uKSBjb25zdCBvdmVycmlkZTsKIAogICAgIEludFNpemUgbV9rZXJuZWxTaXplOwog
ICAgIGZsb2F0IG1fZGl2aXNvcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2ZpbHRlcnMvRkVEaWZmdXNlTGlnaHRpbmcuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRURpZmZ1c2VMaWdodGluZy5jcHAKaW5kZXggMDdi
MDhjY2E0YTM4N2VlZjM3M2M4ZDA0NzA5ODdjNTFiYzBkNTRkNS4uYjhmMWFjZDVmYjg3ZGU0YTRj
OWU1ZjA2Y2U4YTJjNjI2OWVmOTQyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZmlsdGVycy9GRURpZmZ1c2VMaWdodGluZy5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRURpZmZ1c2VMaWdodGluZy5jcHAKQEAg
LTQ3LDE2ICs0NywxNiBAQCBib29sIEZFRGlmZnVzZUxpZ2h0aW5nOjpzZXREaWZmdXNlQ29uc3Rh
bnQoZmxvYXQgZGlmZnVzZUNvbnN0YW50KQogICAgIHJldHVybiB0cnVlOwogfQogCi1UZXh0U3Ry
ZWFtJiBGRURpZmZ1c2VMaWdodGluZzo6ZXh0ZXJuYWxSZXByZXNlbnRhdGlvbihUZXh0U3RyZWFt
JiB0cywgUmVwcmVzZW50YXRpb25UeXBlIHJlcHJlc2VudGF0aW9uKSBjb25zdAorVGV4dFN0cmVh
bSYgRkVEaWZmdXNlTGlnaHRpbmc6OmV4dGVybmFsUmVwcmVzZW50YXRpb24oVGV4dFN0cmVhbSYg
dHMsIEZpbHRlclJlcHJlc2VudGF0aW9uIHJlcHJlc2VudGF0aW9uKSBjb25zdAogewogICAgIHRz
IDw8IGluZGVudCA8PCAiW2ZlRGlmZnVzZUxpZ2h0aW5nIjsKICAgICBGaWx0ZXJFZmZlY3Q6OmV4
dGVybmFsUmVwcmVzZW50YXRpb24odHMsIHJlcHJlc2VudGF0aW9uKTsKLSAgICB0cyA8PCAiIHN1
cmZhY2VTY2FsZT1cIiIgPDwgbV9zdXJmYWNlU2NhbGUgPDwgIlwiICIKLSAgICAgICA8PCAiZGlm
ZnVzZUNvbnN0YW50PVwiIiA8PCBtX2RpZmZ1c2VDb25zdGFudCA8PCAiXCIgIgotICAgICAgIDw8
ICJrZXJuZWxVbml0TGVuZ3RoPVwiIiA8PCBtX2tlcm5lbFVuaXRMZW5ndGhYIDw8ICIsICIgPDwg
bV9rZXJuZWxVbml0TGVuZ3RoWSA8PCAiXCJdXG4iOwogCi0gICAgVGV4dFN0cmVhbTo6SW5kZW50
U2NvcGUgaW5kZW50U2NvcGUodHMpOwotICAgIGlucHV0RWZmZWN0KDApLT5leHRlcm5hbFJlcHJl
c2VudGF0aW9uKHRzLCByZXByZXNlbnRhdGlvbik7CisgICAgdHMgPDwgIiBzdXJmYWNlU2NhbGU9
XCIiIDw8IG1fc3VyZmFjZVNjYWxlIDw8ICJcIiI7CisgICAgdHMgPDwgIiBkaWZmdXNlQ29uc3Rh
bnQ9XCIiIDw8IG1fZGlmZnVzZUNvbnN0YW50IDw8ICJcIiI7CisgICAgdHMgPDwgIiBrZXJuZWxV
bml0TGVuZ3RoPVwiIiA8PCBtX2tlcm5lbFVuaXRMZW5ndGhYIDw8ICIsICIgPDwgbV9rZXJuZWxV
bml0TGVuZ3RoWSA8PCAiXCIiOworCisgICAgdHMgPDwgIl1cbiI7CiAgICAgcmV0dXJuIHRzOwog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJz
L0ZFRGlmZnVzZUxpZ2h0aW5nLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9m
aWx0ZXJzL0ZFRGlmZnVzZUxpZ2h0aW5nLmgKaW5kZXggYTJkMTI1OGUzYWQ2N2M1YjliNGZhYzJk
NDVjMjIxODlhNjhkMDhkZC4uMjI3YWY4ZTIxZjIyNmNiNTRkYWY1NWMyODUwNDY4MTRkM2JhOTBl
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9G
RURpZmZ1c2VMaWdodGluZy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2ZpbHRlcnMvRkVEaWZmdXNlTGlnaHRpbmcuaApAQCAtMzUsNyArMzUsNyBAQCBwdWJsaWM6CiAg
ICAgZmxvYXQgZGlmZnVzZUNvbnN0YW50KCkgY29uc3QgeyByZXR1cm4gbV9kaWZmdXNlQ29uc3Rh
bnQ7IH0KICAgICBib29sIHNldERpZmZ1c2VDb25zdGFudChmbG9hdCk7CiAKLSAgICBXVEY6OlRl
eHRTdHJlYW0mIGV4dGVybmFsUmVwcmVzZW50YXRpb24oV1RGOjpUZXh0U3RyZWFtJiwgUmVwcmVz
ZW50YXRpb25UeXBlKSBjb25zdCBvdmVycmlkZTsKKyAgICBXVEY6OlRleHRTdHJlYW0mIGV4dGVy
bmFsUmVwcmVzZW50YXRpb24oV1RGOjpUZXh0U3RyZWFtJiwgRmlsdGVyUmVwcmVzZW50YXRpb24p
IGNvbnN0IG92ZXJyaWRlOwogCiAgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIHN0
ZDo6b3B0aW9uYWw8UmVmPEZFRGlmZnVzZUxpZ2h0aW5nPj4gZGVjb2RlKERlY29kZXImKTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRURp
c3BsYWNlbWVudE1hcC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0
ZXJzL0ZFRGlzcGxhY2VtZW50TWFwLmNwcAppbmRleCBmZTYxZDkyYTkyN2M0ZjAxMGJkYjkxMzA5
ZjQ1MjkzMzQzNjRmM2U5Li5iNGVhZDhmMDM4OTVlNWEwYWMxN2Q1MTdkZWU1OTQ1ZWJjMzVmYmFl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZF
RGlzcGxhY2VtZW50TWFwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9maWx0ZXJzL0ZFRGlzcGxhY2VtZW50TWFwLmNwcApAQCAtMTE2LDE3ICsxMTYsMTYgQEAgc3Rh
dGljIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIGNvbnN0IENoYW5uZWxT
ZWxlY3RvclR5cGUmIHR5cGUpCiAgICAgcmV0dXJuIHRzOwogfQogCi1UZXh0U3RyZWFtJiBGRURp
c3BsYWNlbWVudE1hcDo6ZXh0ZXJuYWxSZXByZXNlbnRhdGlvbihUZXh0U3RyZWFtJiB0cywgUmVw
cmVzZW50YXRpb25UeXBlIHJlcHJlc2VudGF0aW9uKSBjb25zdAorVGV4dFN0cmVhbSYgRkVEaXNw
bGFjZW1lbnRNYXA6OmV4dGVybmFsUmVwcmVzZW50YXRpb24oVGV4dFN0cmVhbSYgdHMsIEZpbHRl
clJlcHJlc2VudGF0aW9uIHJlcHJlc2VudGF0aW9uKSBjb25zdAogewogICAgIHRzIDw8IGluZGVu
dCA8PCAiW2ZlRGlzcGxhY2VtZW50TWFwIjsKICAgICBGaWx0ZXJFZmZlY3Q6OmV4dGVybmFsUmVw
cmVzZW50YXRpb24odHMsIHJlcHJlc2VudGF0aW9uKTsKLSAgICB0cyA8PCAiIHNjYWxlPVwiIiA8
PCBtX3NjYWxlIDw8ICJcIiAiCi0gICAgICAgPDwgInhDaGFubmVsU2VsZWN0b3I9XCIiIDw8IG1f
eENoYW5uZWxTZWxlY3RvciA8PCAiXCIgIgotICAgICAgIDw8ICJ5Q2hhbm5lbFNlbGVjdG9yPVwi
IiA8PCBtX3lDaGFubmVsU2VsZWN0b3IgPDwgIlwiXVxuIjsKIAotICAgIFRleHRTdHJlYW06Oklu
ZGVudFNjb3BlIGluZGVudFNjb3BlKHRzKTsKLSAgICBpbnB1dEVmZmVjdCgwKS0+ZXh0ZXJuYWxS
ZXByZXNlbnRhdGlvbih0cywgcmVwcmVzZW50YXRpb24pOwotICAgIGlucHV0RWZmZWN0KDEpLT5l
eHRlcm5hbFJlcHJlc2VudGF0aW9uKHRzLCByZXByZXNlbnRhdGlvbik7CisgICAgdHMgPDwgIiBz
Y2FsZT1cIiIgPDwgbV9zY2FsZSA8PCAiXCIiOworICAgIHRzIDw8ICIgeENoYW5uZWxTZWxlY3Rv
cj1cIiIgPDwgbV94Q2hhbm5lbFNlbGVjdG9yIDw8ICJcIiI7CisgICAgdHMgPDwgIiB5Q2hhbm5l
bFNlbGVjdG9yPVwiIiA8PCBtX3lDaGFubmVsU2VsZWN0b3IgPDwgIlwiIjsKKworICAgIHRzIDw8
ICJdXG4iOwogICAgIHJldHVybiB0czsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRURpc3BsYWNlbWVudE1hcC5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRURpc3BsYWNlbWVudE1hcC5oCmluZGV4
IDQyZTY1YjJlMWI2NWE4NmNjMTA4NDI2ZjdmMWZhNDNlODMzM2M1NGUuLmFkOTVjZTNkN2NjYWFl
M2NlYmIxNTE2YWY4YjBlMmM1ZmFhODYxMDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVEaXNwbGFjZW1lbnRNYXAuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRGlzcGxhY2VtZW50TWFwLmgKQEAg
LTYxLDcgKzYxLDcgQEAgcHJpdmF0ZToKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxGaWx0ZXJFZmZl
Y3RBcHBsaWVyPiBjcmVhdGVBcHBsaWVyKGNvbnN0IEZpbHRlciYpIGNvbnN0IG92ZXJyaWRlOwog
Ci0gICAgV1RGOjpUZXh0U3RyZWFtJiBleHRlcm5hbFJlcHJlc2VudGF0aW9uKFdURjo6VGV4dFN0
cmVhbSYsIFJlcHJlc2VudGF0aW9uVHlwZSkgY29uc3Qgb3ZlcnJpZGU7CisgICAgV1RGOjpUZXh0
U3RyZWFtJiBleHRlcm5hbFJlcHJlc2VudGF0aW9uKFdURjo6VGV4dFN0cmVhbSYsIEZpbHRlclJl
cHJlc2VudGF0aW9uKSBjb25zdCBvdmVycmlkZTsKIAogICAgIENoYW5uZWxTZWxlY3RvclR5cGUg
bV94Q2hhbm5lbFNlbGVjdG9yOwogICAgIENoYW5uZWxTZWxlY3RvclR5cGUgbV95Q2hhbm5lbFNl
bGVjdG9yOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmls
dGVycy9GRURyb3BTaGFkb3cuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZmlsdGVycy9GRURyb3BTaGFkb3cuY3BwCmluZGV4IDdmMDU3OWI2ZDZmYjViZDRhN2RhZmQwYmNl
ZTgxYWMyNzE2NGJiYzQuLjFiZmJkMmVlZGQ1OGI5OTIxMjM0YTA4YjNkMDQ5ODE4ZTA0NmMwNmMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVE
cm9wU2hhZG93LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0
ZXJzL0ZFRHJvcFNoYWRvdy5jcHAKQEAgLTc3LDE0ICs3NywxNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8
RmlsdGVyRWZmZWN0QXBwbGllcj4gRkVEcm9wU2hhZG93OjpjcmVhdGVBcHBsaWVyKGNvbnN0IEZp
bHRlciYpCiAgICAgcmV0dXJuIEZpbHRlckVmZmVjdEFwcGxpZXI6OmNyZWF0ZTxGRURyb3BTaGFk
b3dTb2Z0d2FyZUFwcGxpZXI+KCp0aGlzKTsKIH0KICAgICAKLVRleHRTdHJlYW0mIEZFRHJvcFNo
YWRvdzo6ZXh0ZXJuYWxSZXByZXNlbnRhdGlvbihUZXh0U3RyZWFtJiB0cywgUmVwcmVzZW50YXRp
b25UeXBlIHJlcHJlc2VudGF0aW9uKSBjb25zdAorVGV4dFN0cmVhbSYgRkVEcm9wU2hhZG93Ojpl
eHRlcm5hbFJlcHJlc2VudGF0aW9uKFRleHRTdHJlYW0mIHRzLCBGaWx0ZXJSZXByZXNlbnRhdGlv
biByZXByZXNlbnRhdGlvbikgY29uc3QKIHsKICAgICB0cyA8PCBpbmRlbnQgPDwiW2ZlRHJvcFNo
YWRvdyI7CiAgICAgRmlsdGVyRWZmZWN0OjpleHRlcm5hbFJlcHJlc2VudGF0aW9uKHRzLCByZXBy
ZXNlbnRhdGlvbik7Ci0gICAgdHMgPDwgIiBzdGREZXZpYXRpb249XCIiIDw8IG1fc3RkWCA8PCAi
LCAiIDw8IG1fc3RkWSA8PCAiXCIgZHg9XCIiIDw8IG1fZHggPDwgIlwiIGR5PVwiIiA8PCBtX2R5
IDw8ICJcIiBmbG9vZC1jb2xvcj1cIiIgPDwgc2VyaWFsaXphdGlvbkZvclJlbmRlclRyZWVBc1Rl
eHQobV9zaGFkb3dDb2xvcikgPDwiXCIgZmxvb2Qtb3BhY2l0eT1cIiIgPDwgbV9zaGFkb3dPcGFj
aXR5IDw8ICJdXG4iOwogCi0gICAgVGV4dFN0cmVhbTo6SW5kZW50U2NvcGUgaW5kZW50U2NvcGUo
dHMpOwotICAgIGlucHV0RWZmZWN0KDApLT5leHRlcm5hbFJlcHJlc2VudGF0aW9uKHRzLCByZXBy
ZXNlbnRhdGlvbik7CisgICAgdHMgPDwgIiBzdGREZXZpYXRpb249XCIiIDw8IG1fc3RkWCA8PCAi
LCAiIDw8IG1fc3RkWSA8PCAiXCIiOworICAgIHRzIDw8ICIgZHg9XCIiIDw8IG1fZHggPDwgIlwi
IGR5PVwiIiA8PCBtX2R5IDw8ICJcIiI7CisgICAgdHMgPDwgIiBmbG9vZC1jb2xvcj1cIiIgPDwg
c2VyaWFsaXphdGlvbkZvclJlbmRlclRyZWVBc1RleHQobV9zaGFkb3dDb2xvcikgPDwgIlwiIjsK
KyAgICB0cyA8PCAiIGZsb29kLW9wYWNpdHk9XCIiIDw8IG1fc2hhZG93T3BhY2l0eSA8PCAiXCIi
OworCisgICAgdHMgPDwgIl1cbiI7CiAgICAgcmV0dXJuIHRzOwogfQogICAgIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRURyb3BTaGFkb3cu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVEcm9wU2hhZG93
LmgKaW5kZXggNGJmZDYwODQ4YjFhODI0NzI4ODRhYmJkMDgyNGI3YTc2ZWQwZDQxNC4uNzhhNTM3
ZmY3ZjZhZDYyMmYwMTk1NzAxZWY0MjY0YzM3YjUwYWEwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRURyb3BTaGFkb3cuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRHJvcFNoYWRvdy5oCkBAIC01
OSw3ICs1OSw3IEBAIHByaXZhdGU6CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8RmlsdGVyRWZmZWN0
QXBwbGllcj4gY3JlYXRlQXBwbGllcihjb25zdCBGaWx0ZXImKSBjb25zdCBvdmVycmlkZTsKIAot
ICAgIFdURjo6VGV4dFN0cmVhbSYgZXh0ZXJuYWxSZXByZXNlbnRhdGlvbihXVEY6OlRleHRTdHJl
YW0mLCBSZXByZXNlbnRhdGlvblR5cGUpIGNvbnN0IG92ZXJyaWRlOworICAgIFdURjo6VGV4dFN0
cmVhbSYgZXh0ZXJuYWxSZXByZXNlbnRhdGlvbihXVEY6OlRleHRTdHJlYW0mLCBGaWx0ZXJSZXBy
ZXNlbnRhdGlvbikgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICBmbG9hdCBtX3N0ZFg7CiAgICAgZmxv
YXQgbV9zdGRZOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZmlsdGVycy9GRUZsb29kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Zp
bHRlcnMvRkVGbG9vZC5jcHAKaW5kZXggNDQzOWEyZTFlNTdiZDk4YmQyYWQ0OGM2ZjY0ZDZkYTU5
ODNjMDIwYi4uNWY0NWQ1M2I3NjlkMTU1Y2UzMjJkYmRhNTYxMGE4ZWRlNjg5ZDY2ZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUZsb29kLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRmxvb2Qu
Y3BwCkBAIC02OSwxMiArNjksMTUgQEAgc3RkOjp1bmlxdWVfcHRyPEZpbHRlckVmZmVjdEFwcGxp
ZXI+IEZFRmxvb2Q6OmNyZWF0ZUFwcGxpZXIoY29uc3QgRmlsdGVyJikgY29uc3QKICAgICByZXR1
cm4gRmlsdGVyRWZmZWN0QXBwbGllcjo6Y3JlYXRlPEZFRmxvb2RTb2Z0d2FyZUFwcGxpZXI+KCp0
aGlzKTsKIH0KIAotVGV4dFN0cmVhbSYgRkVGbG9vZDo6ZXh0ZXJuYWxSZXByZXNlbnRhdGlvbihU
ZXh0U3RyZWFtJiB0cywgUmVwcmVzZW50YXRpb25UeXBlIHJlcHJlc2VudGF0aW9uKSBjb25zdAor
VGV4dFN0cmVhbSYgRkVGbG9vZDo6ZXh0ZXJuYWxSZXByZXNlbnRhdGlvbihUZXh0U3RyZWFtJiB0
cywgRmlsdGVyUmVwcmVzZW50YXRpb24gcmVwcmVzZW50YXRpb24pIGNvbnN0CiB7CiAgICAgdHMg
PDwgaW5kZW50IDw8ICJbZmVGbG9vZCI7CiAgICAgRmlsdGVyRWZmZWN0OjpleHRlcm5hbFJlcHJl
c2VudGF0aW9uKHRzLCByZXByZXNlbnRhdGlvbik7Ci0gICAgdHMgPDwgIiBmbG9vZC1jb2xvcj1c
IiIgPDwgc2VyaWFsaXphdGlvbkZvclJlbmRlclRyZWVBc1RleHQoZmxvb2RDb2xvcigpKSA8PCAi
XCIgIgotICAgICAgIDw8ICJmbG9vZC1vcGFjaXR5PVwiIiA8PCBmbG9vZE9wYWNpdHkoKSA8PCAi
XCJdXG4iOworCisgICAgdHMgPDwgIiBmbG9vZC1jb2xvcj1cIiIgPDwgc2VyaWFsaXphdGlvbkZv
clJlbmRlclRyZWVBc1RleHQoZmxvb2RDb2xvcigpKSA8PCAiXCIiOworICAgIHRzIDw8ICIgZmxv
b2Qtb3BhY2l0eT1cIiIgPDwgZmxvb2RPcGFjaXR5KCkgPDwgIlwiIjsKKworICAgIHRzIDw8ICJd
XG4iOwogICAgIHJldHVybiB0czsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUZsb29kLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9maWx0ZXJzL0ZFRmxvb2QuaAppbmRleCAwYTY1YzY4MjM0MTBlZWZiZTA4ZTY2
OTM3ODA4ZTFhOTdhZTRmNmI4Li5lZTZlYzRjNjg4OTUyMmFmN2Q0NTE2MzIxNjMxNWRjMTRkMzI1
ZWI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJz
L0ZFRmxvb2QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJz
L0ZFRmxvb2QuaApAQCAtNTMsNyArNTMsNyBAQCBwcml2YXRlOgogCiAgICAgc3RkOjp1bmlxdWVf
cHRyPEZpbHRlckVmZmVjdEFwcGxpZXI+IGNyZWF0ZUFwcGxpZXIoY29uc3QgRmlsdGVyJikgY29u
c3Qgb3ZlcnJpZGU7CiAKLSAgICBXVEY6OlRleHRTdHJlYW0mIGV4dGVybmFsUmVwcmVzZW50YXRp
b24oV1RGOjpUZXh0U3RyZWFtJiwgUmVwcmVzZW50YXRpb25UeXBlKSBjb25zdCBvdmVycmlkZTsK
KyAgICBXVEY6OlRleHRTdHJlYW0mIGV4dGVybmFsUmVwcmVzZW50YXRpb24oV1RGOjpUZXh0U3Ry
ZWFtJiwgRmlsdGVyUmVwcmVzZW50YXRpb24pIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgQ29sb3Ig
bV9mbG9vZENvbG9yOwogICAgIGZsb2F0IG1fZmxvb2RPcGFjaXR5OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUdhdXNzaWFuQmx1ci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFR2F1c3NpYW5CbHVy
LmNwcAppbmRleCAxNmVhMjJkOGE0OTI5ZTIwNTRkNDZkY2MyZGYyNWE0NmJiNjc2MTc1Li45YjJm
MjA5NWFkMzQzOGRhYmM2MjkwYWU1ZGYxZWRiZGU2NDk3NGUwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFR2F1c3NpYW5CbHVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFR2F1c3NpYW5CbHVy
LmNwcApAQCAtMTM2LDE0ICsxMzYsMTQgQEAgc3RkOjp1bmlxdWVfcHRyPEZpbHRlckVmZmVjdEFw
cGxpZXI+IEZFR2F1c3NpYW5CbHVyOjpjcmVhdGVBcHBsaWVyKGNvbnN0IEZpbHRlciYKICAgICBy
ZXR1cm4gRmlsdGVyRWZmZWN0QXBwbGllcjo6Y3JlYXRlPEZFR2F1c3NpYW5CbHVyU29mdHdhcmVB
cHBsaWVyPigqdGhpcyk7CiB9CiAKLVRleHRTdHJlYW0mIEZFR2F1c3NpYW5CbHVyOjpleHRlcm5h
bFJlcHJlc2VudGF0aW9uKFRleHRTdHJlYW0mIHRzLCBSZXByZXNlbnRhdGlvblR5cGUgcmVwcmVz
ZW50YXRpb24pIGNvbnN0CitUZXh0U3RyZWFtJiBGRUdhdXNzaWFuQmx1cjo6ZXh0ZXJuYWxSZXBy
ZXNlbnRhdGlvbihUZXh0U3RyZWFtJiB0cywgRmlsdGVyUmVwcmVzZW50YXRpb24gcmVwcmVzZW50
YXRpb24pIGNvbnN0CiB7CiAgICAgdHMgPDwgaW5kZW50IDw8ICJbZmVHYXVzc2lhbkJsdXIiOwog
ICAgIEZpbHRlckVmZmVjdDo6ZXh0ZXJuYWxSZXByZXNlbnRhdGlvbih0cywgcmVwcmVzZW50YXRp
b24pOwotICAgIHRzIDw8ICIgc3RkRGV2aWF0aW9uPVwiIiA8PCBtX3N0ZFggPDwgIiwgIiA8PCBt
X3N0ZFkgPDwgIlwiXVxuIjsKIAotICAgIFRleHRTdHJlYW06OkluZGVudFNjb3BlIGluZGVudFNj
b3BlKHRzKTsKLSAgICBpbnB1dEVmZmVjdCgwKS0+ZXh0ZXJuYWxSZXByZXNlbnRhdGlvbih0cywg
cmVwcmVzZW50YXRpb24pOworICAgIHRzIDw8ICIgc3RkRGV2aWF0aW9uPVwiIiA8PCBtX3N0ZFgg
PDwgIiwgIiA8PCBtX3N0ZFkgPDwgIlwiIjsKKworICAgIHRzIDw8ICJdXG4iOwogICAgIHJldHVy
biB0czsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZmlsdGVycy9GRUdhdXNzaWFuQmx1ci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZmlsdGVycy9GRUdhdXNzaWFuQmx1ci5oCmluZGV4IDk1NjdhMmYwNGJjZTkyMDU1YTM3ZTZj
YjVjZDA4YWY0ZWU3YTIyZjcuLjg1MTdhYzEwYjg2MmUyOGU1Y2U5ODRiYzJkYmM3YzUwZTBkODE4
YTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMv
RkVHYXVzc2lhbkJsdXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9m
aWx0ZXJzL0ZFR2F1c3NpYW5CbHVyLmgKQEAgLTU4LDcgKzU4LDcgQEAgcHJpdmF0ZToKIAogICAg
IHN0ZDo6dW5pcXVlX3B0cjxGaWx0ZXJFZmZlY3RBcHBsaWVyPiBjcmVhdGVBcHBsaWVyKGNvbnN0
IEZpbHRlciYpIGNvbnN0IG92ZXJyaWRlOwogCi0gICAgV1RGOjpUZXh0U3RyZWFtJiBleHRlcm5h
bFJlcHJlc2VudGF0aW9uKFdURjo6VGV4dFN0cmVhbSYsIFJlcHJlc2VudGF0aW9uVHlwZSkgY29u
c3Qgb3ZlcnJpZGU7CisgICAgV1RGOjpUZXh0U3RyZWFtJiBleHRlcm5hbFJlcHJlc2VudGF0aW9u
KFdURjo6VGV4dFN0cmVhbSYsIEZpbHRlclJlcHJlc2VudGF0aW9uKSBjb25zdCBvdmVycmlkZTsK
IAogICAgIGZsb2F0IG1fc3RkWDsKICAgICBmbG9hdCBtX3N0ZFk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFTWVyZ2UuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRU1lcmdlLmNwcAppbmRleCA5NTli
NDhhYmUwODY4MTZjMzU4ZTNjODY0OWExOTNiYjBjZWVlZmEyLi4yZDZiNGVjYjhkMjQ0ODRjOGFm
MTU2ZWY1NDEyNjYyZGQzZjNkNTUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9maWx0ZXJzL0ZFTWVyZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVNZXJnZS5jcHAKQEAgLTQ1LDE3ICs0NSwxNCBAQCBzdGQ6
OnVuaXF1ZV9wdHI8RmlsdGVyRWZmZWN0QXBwbGllcj4gRkVNZXJnZTo6Y3JlYXRlQXBwbGllcihj
b25zdCBGaWx0ZXImKSBjb25zdAogICAgIHJldHVybiBGaWx0ZXJFZmZlY3RBcHBsaWVyOjpjcmVh
dGU8RkVNZXJnZVNvZnR3YXJlQXBwbGllcj4oKnRoaXMpOwogfQogCi1UZXh0U3RyZWFtJiBGRU1l
cmdlOjpleHRlcm5hbFJlcHJlc2VudGF0aW9uKFRleHRTdHJlYW0mIHRzLCBSZXByZXNlbnRhdGlv
blR5cGUgcmVwcmVzZW50YXRpb24pIGNvbnN0CitUZXh0U3RyZWFtJiBGRU1lcmdlOjpleHRlcm5h
bFJlcHJlc2VudGF0aW9uKFRleHRTdHJlYW0mIHRzLCBGaWx0ZXJSZXByZXNlbnRhdGlvbiByZXBy
ZXNlbnRhdGlvbikgY29uc3QKIHsKICAgICB0cyA8PCBpbmRlbnQgPDwgIltmZU1lcmdlIjsKICAg
ICBGaWx0ZXJFZmZlY3Q6OmV4dGVybmFsUmVwcmVzZW50YXRpb24odHMsIHJlcHJlc2VudGF0aW9u
KTsKLSAgICB1bnNpZ25lZCBzaXplID0gbnVtYmVyT2ZFZmZlY3RJbnB1dHMoKTsKLSAgICBBU1NF
UlQoc2l6ZSA+IDApOwotICAgIHRzIDw8ICIgbWVyZ2VOb2Rlcz1cIiIgPDwgc2l6ZSA8PCAiXCJd
XG4iOwogCi0gICAgVGV4dFN0cmVhbTo6SW5kZW50U2NvcGUgaW5kZW50U2NvcGUodHMpOwotICAg
IGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBzaXplOyArK2kpCi0gICAgICAgIGlucHV0RWZmZWN0
KGkpLT5leHRlcm5hbFJlcHJlc2VudGF0aW9uKHRzLCByZXByZXNlbnRhdGlvbik7CisgICAgdHMg
PDwgIiBtZXJnZU5vZGVzPVwiIiA8PCBtX251bWJlck9mRWZmZWN0SW5wdXRzIDw8ICJcIiI7CisK
KyAgICB0cyA8PCAiXVxuIjsKICAgICByZXR1cm4gdHM7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVNZXJnZS5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRU1lcmdlLmgKaW5kZXggYjllMTU4ZmNm
NGEzYjdkNzc4ZGYxNjZmODcyYTk0ZmU3Mjc2ZDBhMi4uNzkzOGI3YzE2ZTQ5ZmMyNDVmZDY3MjEw
MDYxNmJhMzFiYjliMmRlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZmlsdGVycy9GRU1lcmdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZmlsdGVycy9GRU1lcmdlLmgKQEAgLTM4LDcgKzM4LDcgQEAgcHJpdmF0ZToKIAogICAg
IHN0ZDo6dW5pcXVlX3B0cjxGaWx0ZXJFZmZlY3RBcHBsaWVyPiBjcmVhdGVBcHBsaWVyKGNvbnN0
IEZpbHRlciYpIGNvbnN0IG92ZXJyaWRlOwogCi0gICAgV1RGOjpUZXh0U3RyZWFtJiBleHRlcm5h
bFJlcHJlc2VudGF0aW9uKFdURjo6VGV4dFN0cmVhbSYsIFJlcHJlc2VudGF0aW9uVHlwZSkgY29u
c3Qgb3ZlcnJpZGU7CisgICAgV1RGOjpUZXh0U3RyZWFtJiBleHRlcm5hbFJlcHJlc2VudGF0aW9u
KFdURjo6VGV4dFN0cmVhbSYsIEZpbHRlclJlcHJlc2VudGF0aW9uKSBjb25zdCBvdmVycmlkZTsK
IAogICAgIHVuc2lnbmVkIG1fbnVtYmVyT2ZFZmZlY3RJbnB1dHMgeyAwIH07CiB9OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRU1vcnBob2xv
Z3kuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRU1vcnBo
b2xvZ3kuY3BwCmluZGV4IDI1OTY5YjgxOWFiNjI3MTRmYjBiZjcwMjk0NjRhODc2YTc0NmZlODMu
LjQ1MmNhM2I5NWZjZDNmMmY4NjM4MmYzNjc2NzZmMmExNTI0MTkwZDQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVNb3JwaG9sb2d5LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFTW9ycGhvbG9n
eS5jcHAKQEAgLTEwMSwxNSArMTAxLDE1IEBAIHN0YXRpYyBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8
KFRleHRTdHJlYW0mIHRzLCBjb25zdCBNb3JwaG9sb2d5T3BlcmF0b3JUeXBlJiB0eXBlCiAgICAg
cmV0dXJuIHRzOwogfQogCi1UZXh0U3RyZWFtJiBGRU1vcnBob2xvZ3k6OmV4dGVybmFsUmVwcmVz
ZW50YXRpb24oVGV4dFN0cmVhbSYgdHMsIFJlcHJlc2VudGF0aW9uVHlwZSByZXByZXNlbnRhdGlv
bikgY29uc3QKK1RleHRTdHJlYW0mIEZFTW9ycGhvbG9neTo6ZXh0ZXJuYWxSZXByZXNlbnRhdGlv
bihUZXh0U3RyZWFtJiB0cywgRmlsdGVyUmVwcmVzZW50YXRpb24gcmVwcmVzZW50YXRpb24pIGNv
bnN0CiB7CiAgICAgdHMgPDwgaW5kZW50IDw8ICJbZmVNb3JwaG9sb2d5IjsKICAgICBGaWx0ZXJF
ZmZlY3Q6OmV4dGVybmFsUmVwcmVzZW50YXRpb24odHMsIHJlcHJlc2VudGF0aW9uKTsKLSAgICB0
cyA8PCAiIG9wZXJhdG9yPVwiIiA8PCBtb3JwaG9sb2d5T3BlcmF0b3IoKSA8PCAiXCIgIgotICAg
ICAgIDw8ICJyYWRpdXM9XCIiIDw8IHJhZGl1c1goKSA8PCAiLCAiIDw8IHJhZGl1c1koKSA8PCAi
XCJdXG4iOwogCi0gICAgVGV4dFN0cmVhbTo6SW5kZW50U2NvcGUgaW5kZW50U2NvcGUodHMpOwot
ICAgIGlucHV0RWZmZWN0KDApLT5leHRlcm5hbFJlcHJlc2VudGF0aW9uKHRzLCByZXByZXNlbnRh
dGlvbik7CisgICAgdHMgPDwgIiBvcGVyYXRvcj1cIiIgPDwgbW9ycGhvbG9neU9wZXJhdG9yKCkg
PDwgIlwiIjsKKyAgICB0cyA8PCAiIHJhZGl1cz1cIiIgPDwgcmFkaXVzWCgpIDw8ICIsICIgPDwg
cmFkaXVzWSgpIDw8ICJcIiI7CisKKyAgICB0cyA8PCAiXVxuIjsKICAgICByZXR1cm4gdHM7CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMv
RkVNb3JwaG9sb2d5LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJz
L0ZFTW9ycGhvbG9neS5oCmluZGV4IDgyNWJlOWU0ZGU3OTdkNjYzMTg3NmNlOTFhM2VlOWE3YTNk
ZDZiODIuLmU0NTRjMzcxZTg0NGM1NmY3MGYyMDkwNWVlMjE0NmRlMjJmOWQ2MzIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVNb3JwaG9sb2d5
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRU1vcnBo
b2xvZ3kuaApAQCAtNTcsNyArNTcsNyBAQCBwcml2YXRlOgogCiAgICAgc3RkOjp1bmlxdWVfcHRy
PEZpbHRlckVmZmVjdEFwcGxpZXI+IGNyZWF0ZUFwcGxpZXIoY29uc3QgRmlsdGVyJikgY29uc3Qg
b3ZlcnJpZGU7CiAKLSAgICBXVEY6OlRleHRTdHJlYW0mIGV4dGVybmFsUmVwcmVzZW50YXRpb24o
V1RGOjpUZXh0U3RyZWFtJiwgUmVwcmVzZW50YXRpb25UeXBlKSBjb25zdCBvdmVycmlkZTsKKyAg
ICBXVEY6OlRleHRTdHJlYW0mIGV4dGVybmFsUmVwcmVzZW50YXRpb24oV1RGOjpUZXh0U3RyZWFt
JiwgRmlsdGVyUmVwcmVzZW50YXRpb24pIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgTW9ycGhvbG9n
eU9wZXJhdG9yVHlwZSBtX3R5cGU7CiAgICAgZmxvYXQgbV9yYWRpdXNYOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRU9mZnNldC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFT2Zmc2V0LmNwcAppbmRl
eCA5ZjFjMjc5NzE5MjhmMjMyOGJkMTgwNjU0ZGQyZWE3MWQzYTJmY2ZjLi5iNmU3NGRmY2FhOGE5
MGQ2NjQ5YTAzY2JkOTA2ODVlYjRmNjM1M2FjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFT2Zmc2V0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFT2Zmc2V0LmNwcApAQCAtNzAsMTQgKzcwLDE0
IEBAIHN0ZDo6dW5pcXVlX3B0cjxGaWx0ZXJFZmZlY3RBcHBsaWVyPiBGRU9mZnNldDo6Y3JlYXRl
QXBwbGllcihjb25zdCBGaWx0ZXImKSBjb25zCiAgICAgcmV0dXJuIEZpbHRlckVmZmVjdEFwcGxp
ZXI6OmNyZWF0ZTxGRU9mZnNldFNvZnR3YXJlQXBwbGllcj4oKnRoaXMpOwogfQogCi1UZXh0U3Ry
ZWFtJiBGRU9mZnNldDo6ZXh0ZXJuYWxSZXByZXNlbnRhdGlvbihUZXh0U3RyZWFtJiB0cywgUmVw
cmVzZW50YXRpb25UeXBlIHJlcHJlc2VudGF0aW9uKSBjb25zdAorVGV4dFN0cmVhbSYgRkVPZmZz
ZXQ6OmV4dGVybmFsUmVwcmVzZW50YXRpb24oVGV4dFN0cmVhbSYgdHMsIEZpbHRlclJlcHJlc2Vu
dGF0aW9uIHJlcHJlc2VudGF0aW9uKSBjb25zdAogewogICAgIHRzIDw8IGluZGVudCA8PCAiW2Zl
T2Zmc2V0IjsKICAgICBGaWx0ZXJFZmZlY3Q6OmV4dGVybmFsUmVwcmVzZW50YXRpb24odHMsIHJl
cHJlc2VudGF0aW9uKTsKLSAgICB0cyA8PCAiIGR4PVwiIiA8PCBkeCgpIDw8ICJcIiBkeT1cIiIg
PDwgZHkoKSA8PCAiXCJdXG4iOwogCi0gICAgVGV4dFN0cmVhbTo6SW5kZW50U2NvcGUgaW5kZW50
U2NvcGUodHMpOwotICAgIGlucHV0RWZmZWN0KDApLT5leHRlcm5hbFJlcHJlc2VudGF0aW9uKHRz
LCByZXByZXNlbnRhdGlvbik7CisgICAgdHMgPDwgIiBkeD1cIiIgPDwgZHgoKSA8PCAiXCIgZHk9
XCIiIDw8IGR5KCkgPDwgIlwiIjsKKworICAgIHRzIDw8ICJdXG4iOwogICAgIHJldHVybiB0czsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVy
cy9GRU9mZnNldC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9G
RU9mZnNldC5oCmluZGV4IDZiYTE3ZmVmZjYyMTQ3Yzk3NWZjN2U1OGU2ZmYzMDQ0MzUxMzRhZjEu
LjJmMDY3YjNlYTE5OGQzODNkNmQ4YWY5NzI2YTcyNDg0OGZmOTAyOGIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVPZmZzZXQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFT2Zmc2V0LmgKQEAgLTQ4
LDcgKzQ4LDcgQEAgcHJpdmF0ZToKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxGaWx0ZXJFZmZlY3RB
cHBsaWVyPiBjcmVhdGVBcHBsaWVyKGNvbnN0IEZpbHRlciYpIGNvbnN0IG92ZXJyaWRlOwogCi0g
ICAgV1RGOjpUZXh0U3RyZWFtJiBleHRlcm5hbFJlcHJlc2VudGF0aW9uKFdURjo6VGV4dFN0cmVh
bSYsIFJlcHJlc2VudGF0aW9uVHlwZSkgY29uc3Qgb3ZlcnJpZGU7CisgICAgV1RGOjpUZXh0U3Ry
ZWFtJiBleHRlcm5hbFJlcHJlc2VudGF0aW9uKFdURjo6VGV4dFN0cmVhbSYsIEZpbHRlclJlcHJl
c2VudGF0aW9uKSBjb25zdCBvdmVycmlkZTsKIAogICAgIGZsb2F0IG1fZHg7CiAgICAgZmxvYXQg
bV9keTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRl
cnMvRkVTcGVjdWxhckxpZ2h0aW5nLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2ZpbHRlcnMvRkVTcGVjdWxhckxpZ2h0aW5nLmNwcAppbmRleCBmYzU2MDZiYjU0NmU0OTRh
OTdhMzUxYWExNWU1NTgzNjlhODc4NGVlLi42ZTQyZDM0OWZjMTRjZjg2MzMzMmNjYmM3MTQ5MGY1
YTU3YzVjYzBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9m
aWx0ZXJzL0ZFU3BlY3VsYXJMaWdodGluZy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZmlsdGVycy9GRVNwZWN1bGFyTGlnaHRpbmcuY3BwCkBAIC01NSwxNiArNTUs
MTYgQEAgYm9vbCBGRVNwZWN1bGFyTGlnaHRpbmc6OnNldFNwZWN1bGFyRXhwb25lbnQoZmxvYXQg
c3BlY3VsYXJFeHBvbmVudCkKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotVGV4dFN0cmVhbSYgRkVT
cGVjdWxhckxpZ2h0aW5nOjpleHRlcm5hbFJlcHJlc2VudGF0aW9uKFRleHRTdHJlYW0mIHRzLCBS
ZXByZXNlbnRhdGlvblR5cGUgcmVwcmVzZW50YXRpb24pIGNvbnN0CitUZXh0U3RyZWFtJiBGRVNw
ZWN1bGFyTGlnaHRpbmc6OmV4dGVybmFsUmVwcmVzZW50YXRpb24oVGV4dFN0cmVhbSYgdHMsIEZp
bHRlclJlcHJlc2VudGF0aW9uIHJlcHJlc2VudGF0aW9uKSBjb25zdAogewogICAgIHRzIDw8IGlu
ZGVudCA8PCAiW2ZlU3BlY3VsYXJMaWdodGluZyI7CiAgICAgRmlsdGVyRWZmZWN0OjpleHRlcm5h
bFJlcHJlc2VudGF0aW9uKHRzLCByZXByZXNlbnRhdGlvbik7Ci0gICAgdHMgPDwgIiBzdXJmYWNl
U2NhbGU9XCIiIDw8IG1fc3VyZmFjZVNjYWxlIDw8ICJcIiAiCi0gICAgICAgPDwgInNwZWN1YWxD
b25zdGFudD1cIiIgPDwgbV9zcGVjdWxhckNvbnN0YW50IDw8ICJcIiAiCi0gICAgICAgPDwgInNw
ZWN1bGFyRXhwb25lbnQ9XCIiIDw8IG1fc3BlY3VsYXJFeHBvbmVudCA8PCAiXCJdXG4iOworICAg
IAorICAgIHRzIDw8ICIgc3VyZmFjZVNjYWxlPVwiIiA8PCBtX3N1cmZhY2VTY2FsZSA8PCAiXCIi
OworICAgIHRzIDw8ICIgc3BlY3VhbENvbnN0YW50PVwiIiA8PCBtX3NwZWN1bGFyQ29uc3RhbnQg
PDwgIlwiIjsKKyAgICB0cyA8PCAiIHNwZWN1bGFyRXhwb25lbnQ9XCIiIDw8IG1fc3BlY3VsYXJF
eHBvbmVudCA8PCAiXCIiOwogCi0gICAgVGV4dFN0cmVhbTo6SW5kZW50U2NvcGUgaW5kZW50U2Nv
cGUodHMpOwotICAgIGlucHV0RWZmZWN0KDApLT5leHRlcm5hbFJlcHJlc2VudGF0aW9uKHRzLCBy
ZXByZXNlbnRhdGlvbik7CisgICAgdHMgPDwgIl1cbiI7CiAgICAgcmV0dXJuIHRzOwogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFU3Bl
Y3VsYXJMaWdodGluZy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVy
cy9GRVNwZWN1bGFyTGlnaHRpbmcuaAppbmRleCA4YTZmYzRiMDM2MDc3MDg4ZWRhZTIzM2ZmNDdm
YWRjYjQ1OTNlNmNjLi5hYWNmMDkzOTNiM2NiOTUwYjBmZDlhMmIwYjNlYWI0NmNiOTEyYTk3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFU3Bl
Y3VsYXJMaWdodGluZy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Zp
bHRlcnMvRkVTcGVjdWxhckxpZ2h0aW5nLmgKQEAgLTM2LDcgKzM2LDcgQEAgcHVibGljOgogICAg
IGZsb2F0IHNwZWN1bGFyRXhwb25lbnQoKSBjb25zdCB7IHJldHVybiBtX3NwZWN1bGFyRXhwb25l
bnQ7IH0KICAgICBib29sIHNldFNwZWN1bGFyRXhwb25lbnQoZmxvYXQpOwogCi0gICAgV1RGOjpU
ZXh0U3RyZWFtJiBleHRlcm5hbFJlcHJlc2VudGF0aW9uKFdURjo6VGV4dFN0cmVhbSYsIFJlcHJl
c2VudGF0aW9uVHlwZSkgY29uc3Qgb3ZlcnJpZGU7CisgICAgV1RGOjpUZXh0U3RyZWFtJiBleHRl
cm5hbFJlcHJlc2VudGF0aW9uKFdURjo6VGV4dFN0cmVhbSYsIEZpbHRlclJlcHJlc2VudGF0aW9u
KSBjb25zdCBvdmVycmlkZTsKIAogICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBz
dGQ6Om9wdGlvbmFsPFJlZjxGRVNwZWN1bGFyTGlnaHRpbmc+PiBkZWNvZGUoRGVjb2RlciYpOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZF
VGlsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFVGls
ZS5jcHAKaW5kZXggMTFiNDAzNWM2YTg0YThmOTNlYTc4MDViMzdlMWJiM2Y1YjdiNzlkNi4uOTJi
ODI3MGU0ZGJmOTM0YWQ2MzY0NDhhNmNlNGQ2MGU2ZjQxZGEyZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRVRpbGUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVUaWxlLmNwcApAQCAtNTMsMTUg
KzUzLDExIEBAIHN0ZDo6dW5pcXVlX3B0cjxGaWx0ZXJFZmZlY3RBcHBsaWVyPiBGRVRpbGU6OmNy
ZWF0ZUFwcGxpZXIoY29uc3QgRmlsdGVyJikgY29uc3QKICAgICByZXR1cm4gRmlsdGVyRWZmZWN0
QXBwbGllcjo6Y3JlYXRlPEZFVGlsZVNvZnR3YXJlQXBwbGllcj4oKnRoaXMpOwogfQogCi1UZXh0
U3RyZWFtJiBGRVRpbGU6OmV4dGVybmFsUmVwcmVzZW50YXRpb24oVGV4dFN0cmVhbSYgdHMsIFJl
cHJlc2VudGF0aW9uVHlwZSByZXByZXNlbnRhdGlvbikgY29uc3QKK1RleHRTdHJlYW0mIEZFVGls
ZTo6ZXh0ZXJuYWxSZXByZXNlbnRhdGlvbihUZXh0U3RyZWFtJiB0cywgRmlsdGVyUmVwcmVzZW50
YXRpb24gcmVwcmVzZW50YXRpb24pIGNvbnN0CiB7CiAgICAgdHMgPDwgaW5kZW50IDw8ICJbZmVU
aWxlIjsKICAgICBGaWx0ZXJFZmZlY3Q6OmV4dGVybmFsUmVwcmVzZW50YXRpb24odHMsIHJlcHJl
c2VudGF0aW9uKTsKICAgICB0cyA8PCAiXVxuIjsKLQotICAgIFRleHRTdHJlYW06OkluZGVudFNj
b3BlIGluZGVudFNjb3BlKHRzKTsKLSAgICBpbnB1dEVmZmVjdCgwKS0+ZXh0ZXJuYWxSZXByZXNl
bnRhdGlvbih0cywgcmVwcmVzZW50YXRpb24pOwotCiAgICAgcmV0dXJuIHRzOwogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFVGlsZS5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRVRpbGUuaAppbmRl
eCA3ZDM5Nzk4NTc4ODFkYTcyNTc0MWJiOTllMGNhNjRjNDQ0YTgwMDg2Li4wMGFkZDI4YTU2MjFi
YmZjNTc2MzI3MzI5YzRiNjQ2MTNhMDNiYzA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFVGlsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVUaWxlLmgKQEAgLTM5LDcgKzM5LDcgQEAgcHJpdmF0
ZToKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxGaWx0ZXJFZmZlY3RBcHBsaWVyPiBjcmVhdGVBcHBs
aWVyKGNvbnN0IEZpbHRlciYpIGNvbnN0IG92ZXJyaWRlOwogCi0gICAgV1RGOjpUZXh0U3RyZWFt
JiBleHRlcm5hbFJlcHJlc2VudGF0aW9uKFdURjo6VGV4dFN0cmVhbSYsIFJlcHJlc2VudGF0aW9u
VHlwZSkgY29uc3Qgb3ZlcnJpZGU7CisgICAgV1RGOjpUZXh0U3RyZWFtJiBleHRlcm5hbFJlcHJl
c2VudGF0aW9uKFdURjo6VGV4dFN0cmVhbSYsIEZpbHRlclJlcHJlc2VudGF0aW9uKSBjb25zdCBv
dmVycmlkZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVUdXJidWxlbmNlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVUdXJidWxlbmNlLmNwcApp
bmRleCA0YjQzZmU5NGZkMzA3NTA5Nzg1OGZlYzZlMjlkNjE1NWRjNzQ5OWFmLi44YTE1NTZhNWJi
ZGI1NjllYmI1OTY5NDJhMzYzYzZlMDhlMzUzYmZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFVHVyYnVsZW5jZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRVR1cmJ1bGVuY2UuY3BwCkBAIC0x
MjIsMTUgKzEyMiwxOCBAQCBzdGF0aWMgVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFt
JiB0cywgVHVyYnVsZW5jZVR5cGUgdHlwZSkKICAgICByZXR1cm4gdHM7CiB9CiAKLVRleHRTdHJl
YW0mIEZFVHVyYnVsZW5jZTo6ZXh0ZXJuYWxSZXByZXNlbnRhdGlvbihUZXh0U3RyZWFtJiB0cywg
UmVwcmVzZW50YXRpb25UeXBlIHJlcHJlc2VudGF0aW9uKSBjb25zdAorVGV4dFN0cmVhbSYgRkVU
dXJidWxlbmNlOjpleHRlcm5hbFJlcHJlc2VudGF0aW9uKFRleHRTdHJlYW0mIHRzLCBGaWx0ZXJS
ZXByZXNlbnRhdGlvbiByZXByZXNlbnRhdGlvbikgY29uc3QKIHsKICAgICB0cyA8PCBpbmRlbnQg
PDwgIltmZVR1cmJ1bGVuY2UiOwogICAgIEZpbHRlckVmZmVjdDo6ZXh0ZXJuYWxSZXByZXNlbnRh
dGlvbih0cywgcmVwcmVzZW50YXRpb24pOwotICAgIHRzIDw8ICIgdHlwZT1cIiIgPDwgdHlwZSgp
IDw8ICJcIiAiCi0gICAgICAgPDwgImJhc2VGcmVxdWVuY3k9XCIiIDw8IGJhc2VGcmVxdWVuY3lY
KCkgPDwgIiwgIiA8PCBiYXNlRnJlcXVlbmN5WSgpIDw8ICJcIiAiCi0gICAgICAgPDwgInNlZWQ9
XCIiIDw8IHNlZWQoKSA8PCAiXCIgIgotICAgICAgIDw8ICJudW1PY3RhdmVzPVwiIiA8PCBudW1P
Y3RhdmVzKCkgPDwgIlwiICIKLSAgICAgICA8PCAic3RpdGNoVGlsZXM9XCIiIDw8IHN0aXRjaFRp
bGVzKCkgPDwgIlwiXVxuIjsKKyAgICAKKyAgICB0cyA8PCAiIHR5cGU9XCIiIDw8IHR5cGUoKSA8
PCAiXCIiOworICAgIHRzIDw8ICIgYmFzZUZyZXF1ZW5jeT1cIiIgPDwgYmFzZUZyZXF1ZW5jeVgo
KSA8PCAiLCAiIDw8IGJhc2VGcmVxdWVuY3lZKCkgPDwgIlwiIjsKKyAgICB0cyA8PCAiIHNlZWQ9
XCIiIDw8IHNlZWQoKSA8PCAiXCIiOworICAgIHRzIDw8ICIgbnVtT2N0YXZlcz1cIiIgPDwgbnVt
T2N0YXZlcygpIDw8ICJcIiI7CisgICAgdHMgPDwgIiBzdGl0Y2hUaWxlcz1cIiIgPDwgc3RpdGNo
VGlsZXMoKSA8PCAiXCIiOworCisgICAgdHMgPDwgIl1cbiI7CiAgICAgcmV0dXJuIHRzOwogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZF
VHVyYnVsZW5jZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9G
RVR1cmJ1bGVuY2UuaAppbmRleCBiOGU5M2JjMDFiMjViNDI5MGM0YTE1NDM5ZWVhYzQ3MjBmNDg5
ZTg2Li42ZmM0ZTJiN2ZkYzgzMjg3OTEyYzlhNDhjMzZiMWY4ODEyMjRiNzU3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFVHVyYnVsZW5jZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVUdXJidWxl
bmNlLmgKQEAgLTY3LDcgKzY3LDcgQEAgcHJpdmF0ZToKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxG
aWx0ZXJFZmZlY3RBcHBsaWVyPiBjcmVhdGVBcHBsaWVyKGNvbnN0IEZpbHRlciYpIGNvbnN0IG92
ZXJyaWRlOwogCi0gICAgV1RGOjpUZXh0U3RyZWFtJiBleHRlcm5hbFJlcHJlc2VudGF0aW9uKFdU
Rjo6VGV4dFN0cmVhbSYsIFJlcHJlc2VudGF0aW9uVHlwZSkgY29uc3Qgb3ZlcnJpZGU7CisgICAg
V1RGOjpUZXh0U3RyZWFtJiBleHRlcm5hbFJlcHJlc2VudGF0aW9uKFdURjo6VGV4dFN0cmVhbSYs
IEZpbHRlclJlcHJlc2VudGF0aW9uKSBjb25zdCBvdmVycmlkZTsKIAogICAgIFR1cmJ1bGVuY2VU
eXBlIG1fdHlwZTsKICAgICBmbG9hdCBtX2Jhc2VGcmVxdWVuY3lYOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXIuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyLmgKaW5kZXggMjlkYzdmZjc4
YzYwNmM3Y2YzZmExYWFiZTY5MzdkNGM3M2JlZTg2MC4uMjVjMTc2NGRlOTU0YjNjN2NiNzFjZWE0
ODc2NjVmZDE4MzQ1Y2UzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZmlsdGVycy9GaWx0ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9maWx0ZXJzL0ZpbHRlci5oCkBAIC0yMSw3ICsyMSw2IEBACiAKICNwcmFnbWEgb25jZQog
Ci0jaW5jbHVkZSAiRmlsdGVyRWZmZWN0R2VvbWV0cnkuaCIKICNpbmNsdWRlICJGaWx0ZXJGdW5j
dGlvbi5oIgogI2luY2x1ZGUgIkZsb2F0UmVjdC5oIgogI2luY2x1ZGUgIkdyYXBoaWNzVHlwZXMu
aCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMv
RmlsdGVyRWZmZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRl
cnMvRmlsdGVyRWZmZWN0LmNwcAppbmRleCBkYTFjYTE0MTJkNDQ3NDg5ZmY5MWY3YWI2OGY2ZjUz
MzMzZGRjMTg5Li40NmMwOTBiMzA3MzczNjIxYzQxODczYWU5OGQyODUyMThlMmMzNjc3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlckVm
ZmVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9G
aWx0ZXJFZmZlY3QuY3BwCkBAIC0xNjEsMTIgKzE2MSwxMiBAQCB2b2lkIEZpbHRlckVmZmVjdDo6
dHJhbnNmb3JtUmVzdWx0Q29sb3JTcGFjZShjb25zdCBEZXN0aW5hdGlvbkNvbG9yU3BhY2UmIGRl
c3RpbgogICAgIG1fZmlsdGVySW1hZ2UtPnRyYW5zZm9ybVRvQ29sb3JTcGFjZShkZXN0aW5hdGlv
bkNvbG9yU3BhY2UpOwogfQogCi1UZXh0U3RyZWFtJiBGaWx0ZXJFZmZlY3Q6OmV4dGVybmFsUmVw
cmVzZW50YXRpb24oVGV4dFN0cmVhbSYgdHMsIFJlcHJlc2VudGF0aW9uVHlwZSByZXByZXNlbnRh
dGlvblR5cGUpIGNvbnN0CitUZXh0U3RyZWFtJiBGaWx0ZXJFZmZlY3Q6OmV4dGVybmFsUmVwcmVz
ZW50YXRpb24oVGV4dFN0cmVhbSYgdHMsIEZpbHRlclJlcHJlc2VudGF0aW9uIHJlcHJlc2VudGF0
aW9uKSBjb25zdAogewogICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgZHVtcCB0aGUgc3ViUmVnaW9u
cyBvZiB0aGUgZmlsdGVyIHByaW1pdGl2ZXMgaGVyZSBsYXRlci4gVGhpcyBpc24ndAogICAgIC8v
IHBvc3NpYmxlIGF0IHRoZSBtb21lbnQsIGJlY2F1c2Ugd2UgbmVlZCBtb3JlIGRldGFpbGVkIGlu
Zm9ybWF0aW9ucyBmcm9tIHRoZSB0YXJnZXQgb2JqZWN0LgogICAgIAotICAgIGlmIChyZXByZXNl
bnRhdGlvblR5cGUgPT0gUmVwcmVzZW50YXRpb25UeXBlOjpEZWJ1Z2dpbmcpIHsKKyAgICBpZiAo
cmVwcmVzZW50YXRpb24gPT0gRmlsdGVyUmVwcmVzZW50YXRpb246OkRlYnVnZ2luZykgewogICAg
ICAgICBUZXh0U3RyZWFtOjpJbmRlbnRTY29wZSBpbmRlbnRTY29wZSh0cyk7CiAgICAgICAgIHRz
LmR1bXBQcm9wZXJ0eSgib3BlcmF0aW5nIGNvbG9yc3BhY2UiLCBvcGVyYXRpbmdDb2xvclNwYWNl
KCkpOwogICAgICAgICB0cyA8PCAiXG4iIDw8IGluZGVudDsKQEAgLTE3NCwxMSArMTc0LDExIEBA
IFRleHRTdHJlYW0mIEZpbHRlckVmZmVjdDo6ZXh0ZXJuYWxSZXByZXNlbnRhdGlvbihUZXh0U3Ry
ZWFtJiB0cywgUmVwcmVzZW50YXRpb25UCiAgICAgcmV0dXJuIHRzOwogfQogCi1UZXh0U3RyZWFt
JiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBjb25zdCBGaWx0ZXJFZmZlY3QmIGZpbHRlcikK
K1RleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIGNvbnN0IEZpbHRlckVmZmVj
dCYgZWZmZWN0KQogewogICAgIC8vIFVzZSBhIG5ldyBzdHJlYW0gYmVjYXVzZSB3ZSB3YW50IG11
bHRpbGluZSBtb2RlIGZvciBsb2dnaW5nIGZpbHRlcnMuCiAgICAgVGV4dFN0cmVhbSBmaWx0ZXJT
dHJlYW07Ci0gICAgZmlsdGVyLmV4dGVybmFsUmVwcmVzZW50YXRpb24oZmlsdGVyU3RyZWFtLCBG
aWx0ZXJFZmZlY3Q6OlJlcHJlc2VudGF0aW9uVHlwZTo6RGVidWdnaW5nKTsKKyAgICBlZmZlY3Qu
ZXh0ZXJuYWxSZXByZXNlbnRhdGlvbihmaWx0ZXJTdHJlYW0sIEZpbHRlclJlcHJlc2VudGF0aW9u
OjpEZWJ1Z2dpbmcpOwogICAgIAogICAgIHJldHVybiB0cyA8PCBmaWx0ZXJTdHJlYW0ucmVsZWFz
ZSgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmls
dGVycy9GaWx0ZXJFZmZlY3QuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Zp
bHRlcnMvRmlsdGVyRWZmZWN0LmgKaW5kZXggNTY4MjdhYmJiZjdkZmM1M2ExMDJmNDI4M2FmZmYw
ODY1NTEyNWIzYy4uNjQ5N2EyZDFkZmU1MDQ3MTVhNWY0OGNhNjgzZjhjMTlmOGZmZDBhNCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXJF
ZmZlY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0Zp
bHRlckVmZmVjdC5oCkBAIC01OCw4ICs1OCw3IEBAIHB1YmxpYzoKICAgICBjb25zdCBEZXN0aW5h
dGlvbkNvbG9yU3BhY2UmIG9wZXJhdGluZ0NvbG9yU3BhY2UoKSBjb25zdCB7IHJldHVybiBtX29w
ZXJhdGluZ0NvbG9yU3BhY2U7IH0KICAgICB2aXJ0dWFsIHZvaWQgc2V0T3BlcmF0aW5nQ29sb3JT
cGFjZShjb25zdCBEZXN0aW5hdGlvbkNvbG9yU3BhY2UmIGNvbG9yU3BhY2UpIHsgbV9vcGVyYXRp
bmdDb2xvclNwYWNlID0gY29sb3JTcGFjZTsgfQogCi0gICAgZW51bSBjbGFzcyBSZXByZXNlbnRh
dGlvblR5cGUgeyBUZXN0T3V0cHV0LCBEZWJ1Z2dpbmcgfTsKLSAgICB2aXJ0dWFsIFdURjo6VGV4
dFN0cmVhbSYgZXh0ZXJuYWxSZXByZXNlbnRhdGlvbihXVEY6OlRleHRTdHJlYW0mLCBSZXByZXNl
bnRhdGlvblR5cGUgPSBSZXByZXNlbnRhdGlvblR5cGU6OlRlc3RPdXRwdXQpIGNvbnN0OworICAg
IFdURjo6VGV4dFN0cmVhbSYgZXh0ZXJuYWxSZXByZXNlbnRhdGlvbihXVEY6OlRleHRTdHJlYW0m
LCBGaWx0ZXJSZXByZXNlbnRhdGlvbikgY29uc3Qgb3ZlcnJpZGU7CiAKIHByb3RlY3RlZDoKICAg
ICB1c2luZyBGaWx0ZXJGdW5jdGlvbjo6RmlsdGVyRnVuY3Rpb247CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlckZ1bmN0aW9uLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlckZ1bmN0aW9uLmgK
aW5kZXggYzlkNjc3YTYwODI5Mjg2MzQ2N2M5ZmJiZWFjNDI1ZmUyOWU3MWNkYS4uMDJjZTliYzQw
ZDU2MzcwY2EwODFmNDAxMDJhYWQyY2QyOGIxZGFkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXJGdW5jdGlvbi5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyRnVuY3Rpb24uaApAQCAt
MzksNiArMzksMTEgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBGaWx0ZXI7CiAKK2Vu
dW0gY2xhc3MgRmlsdGVyUmVwcmVzZW50YXRpb24gOiB1aW50OF90IHsKKyAgICBUZXN0T3V0cHV0
LAorICAgIERlYnVnZ2luZworfTsKKwogY2xhc3MgRmlsdGVyRnVuY3Rpb24gOiBwdWJsaWMgUmVm
Q291bnRlZDxGaWx0ZXJGdW5jdGlvbj4gewogcHVibGljOgogICAgIGVudW0gY2xhc3MgVHlwZSA6
IHVpbnQ4X3QgewpAQCAtOTMsNiArOTgsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBJbnRPdXRz
ZXRzIG91dHNldHMoKSBjb25zdCB7IHJldHVybiB7IH07IH0KICAgICB2aXJ0dWFsIHZvaWQgY2xl
YXJSZXN1bHQoKSB7IH0KIAorICAgIHZpcnR1YWwgV1RGOjpUZXh0U3RyZWFtJiBleHRlcm5hbFJl
cHJlc2VudGF0aW9uKFdURjo6VGV4dFN0cmVhbSYsIEZpbHRlclJlcHJlc2VudGF0aW9uID0gRmls
dGVyUmVwcmVzZW50YXRpb246OlRlc3RPdXRwdXQpIGNvbnN0ID0gMDsKKwogcHJpdmF0ZToKICAg
ICBUeXBlIG1fZmlsdGVyVHlwZTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1NvdXJjZUFscGhhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvU291cmNlQWxwaGEuY3BwCmluZGV4IDYyMDUxNDYzYzcx
ZjUzZmQ4MzgxMmE3N2EyZjJiOGE0OGJlYTJiM2EuLjE0N2FmZTA0M2RjZTFkODFiZThjMjFmMjk2
ZDNiMjVhMzI5ZTY4YjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2ZpbHRlcnMvU291cmNlQWxwaGEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2ZpbHRlcnMvU291cmNlQWxwaGEuY3BwCkBAIC00OSw3ICs0OSw3IEBAIHN0ZDo6
dW5pcXVlX3B0cjxGaWx0ZXJFZmZlY3RBcHBsaWVyPiBTb3VyY2VBbHBoYTo6Y3JlYXRlQXBwbGll
cihjb25zdCBGaWx0ZXImKSBjCiAgICAgcmV0dXJuIEZpbHRlckVmZmVjdEFwcGxpZXI6OmNyZWF0
ZTxTb3VyY2VBbHBoYVNvZnR3YXJlQXBwbGllcj4oKnRoaXMpOwogfQogCi1UZXh0U3RyZWFtJiBT
b3VyY2VBbHBoYTo6ZXh0ZXJuYWxSZXByZXNlbnRhdGlvbihUZXh0U3RyZWFtJiB0cywgUmVwcmVz
ZW50YXRpb25UeXBlKSBjb25zdAorVGV4dFN0cmVhbSYgU291cmNlQWxwaGE6OmV4dGVybmFsUmVw
cmVzZW50YXRpb24oVGV4dFN0cmVhbSYgdHMsIEZpbHRlclJlcHJlc2VudGF0aW9uKSBjb25zdAog
ewogICAgIHRzIDw8IGluZGVudCA8PCAiW1NvdXJjZUFscGhhXVxuIjsKICAgICByZXR1cm4gdHM7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1Nv
dXJjZUFscGhhLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1Nv
dXJjZUFscGhhLmgKaW5kZXggMTA1NjE2N2UzY2Y5YWE2NDY2YzUzNzgzZDk0Mzk2NWVhMmMwZTFm
Mi4uZTIxMWUxYWZlZDkzOWM5YzFlMzM1N2VjNTAyNWI4ODZkYjlmMjhhZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9Tb3VyY2VBbHBoYS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvU291cmNlQWxwaGEu
aApAQCAtMzcsNyArMzcsNyBAQCBwcml2YXRlOgogCiAgICAgc3RkOjp1bmlxdWVfcHRyPEZpbHRl
ckVmZmVjdEFwcGxpZXI+IGNyZWF0ZUFwcGxpZXIoY29uc3QgRmlsdGVyJikgY29uc3Qgb3ZlcnJp
ZGU7CiAKLSAgICBXVEY6OlRleHRTdHJlYW0mIGV4dGVybmFsUmVwcmVzZW50YXRpb24oV1RGOjpU
ZXh0U3RyZWFtJiwgUmVwcmVzZW50YXRpb25UeXBlKSBjb25zdCBvdmVycmlkZTsKKyAgICBXVEY6
OlRleHRTdHJlYW0mIGV4dGVybmFsUmVwcmVzZW50YXRpb24oV1RGOjpUZXh0U3RyZWFtJiwgRmls
dGVyUmVwcmVzZW50YXRpb24pIGNvbnN0IG92ZXJyaWRlOwogfTsKIAogfSAvL25hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0
ZXJzL1NvdXJjZUdyYXBoaWMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZmlsdGVycy9Tb3VyY2VHcmFwaGljLmNwcAppbmRleCA4ODZiNzcyYWFkYjAyNmFkMjFkOWFiNWUz
N2M1OGY3Zjg5NGJiZWY3Li42NWU4NGJjNzcwZmRlMjFiMDRiOGMxZjI1ZTdhNDU0ZjQ5ZDU2Njc1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1Nv
dXJjZUdyYXBoaWMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Zp
bHRlcnMvU291cmNlR3JhcGhpYy5jcHAKQEAgLTU2LDcgKzU2LDcgQEAgc3RkOjp1bmlxdWVfcHRy
PEZpbHRlckVmZmVjdEFwcGxpZXI+IFNvdXJjZUdyYXBoaWM6OmNyZWF0ZUFwcGxpZXIoY29uc3Qg
RmlsdGVyJgogICAgIHJldHVybiBGaWx0ZXJFZmZlY3RBcHBsaWVyOjpjcmVhdGU8U291cmNlR3Jh
cGhpY1NvZnR3YXJlQXBwbGllcj4oKnRoaXMpOwogfQogCi1UZXh0U3RyZWFtJiBTb3VyY2VHcmFw
aGljOjpleHRlcm5hbFJlcHJlc2VudGF0aW9uKFRleHRTdHJlYW0mIHRzLCBSZXByZXNlbnRhdGlv
blR5cGUpIGNvbnN0CitUZXh0U3RyZWFtJiBTb3VyY2VHcmFwaGljOjpleHRlcm5hbFJlcHJlc2Vu
dGF0aW9uKFRleHRTdHJlYW0mIHRzLCBGaWx0ZXJSZXByZXNlbnRhdGlvbikgY29uc3QKIHsKICAg
ICB0cyA8PCBpbmRlbnQgPDwgIltTb3VyY2VHcmFwaGljXVxuIjsKICAgICByZXR1cm4gdHM7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1NvdXJj
ZUdyYXBoaWMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvU291
cmNlR3JhcGhpYy5oCmluZGV4IDMwMzNkYjAyMTBkM2UxZjEyM2I0YjliNWQ3OTM1YjFhYzg0ZDBi
MTkuLmVlOTJlOTM2MzM1N2UwY2FmMjBjM2I0ZDRiZjk1OTI4ZWMwMGY4YWMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvU291cmNlR3JhcGhpYy5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvU291cmNlR3Jh
cGhpYy5oCkBAIC00Miw3ICs0Miw3IEBAIHByaXZhdGU6CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8
RmlsdGVyRWZmZWN0QXBwbGllcj4gY3JlYXRlQXBwbGllcihjb25zdCBGaWx0ZXImKSBjb25zdCBv
dmVycmlkZTsKIAotICAgIFdURjo6VGV4dFN0cmVhbSYgZXh0ZXJuYWxSZXByZXNlbnRhdGlvbihX
VEY6OlRleHRTdHJlYW0mLCBSZXByZXNlbnRhdGlvblR5cGUpIGNvbnN0IG92ZXJyaWRlOworICAg
IFdURjo6VGV4dFN0cmVhbSYgZXh0ZXJuYWxSZXByZXNlbnRhdGlvbihXVEY6OlRleHRTdHJlYW0m
LCBGaWx0ZXJSZXByZXNlbnRhdGlvbikgY29uc3Qgb3ZlcnJpZGU7CiB9OwogCiB9IC8vbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9DU1NGaWx0
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0NTU0ZpbHRlci5jcHAKaW5kZXggMTFj
NDlhZmE1N2ZkMjNmZWEwOTliYjYwYjI2MGM5YzdlOGY4ZDNiNi4uMGExMGUzYmZjZjdkN2VmYzcy
NTM0NjYyOGNmMGQyYWZmZTc2YTY3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL0NTU0ZpbHRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0NTU0ZpbHRl
ci5jcHAKQEAgLTQwNCw0ICs0MDQsMjIgQEAgSW50T3V0c2V0cyBDU1NGaWx0ZXI6Om91dHNldHMo
KSBjb25zdAogICAgIHJldHVybiBtX291dHNldHM7CiB9CiAKK1RleHRTdHJlYW0mIENTU0ZpbHRl
cjo6ZXh0ZXJuYWxSZXByZXNlbnRhdGlvbihUZXh0U3RyZWFtJiB0cywgRmlsdGVyUmVwcmVzZW50
YXRpb24gcmVwcmVzZW50YXRpb24pIGNvbnN0Cit7CisgICAgdW5zaWduZWQgbGV2ZWwgPSAwOwor
CisgICAgZm9yIChhdXRvIGl0ID0gbV9mdW5jdGlvbnMucmJlZ2luKCksIGVuZCA9IG1fZnVuY3Rp
b25zLnJlbmQoKTsgaXQgIT0gZW5kOyArK2l0KSB7CisgICAgICAgIGF1dG8mIGZ1bmN0aW9uID0g
Kml0OworICAgICAgICAKKyAgICAgICAgLy8gU291cmNlQWxwaGEgaXMgYSBidWlsdC1pbiBlZmZl
Y3QuIE5vIG5lZWQgdG8gc2F5IFNvdXJjZUdyYXBoaWMgaXMgaXRzIGlucHV0LgorICAgICAgICBp
ZiAoZnVuY3Rpb24tPmZpbHRlclR5cGUoKSA9PSBGaWx0ZXJFZmZlY3Q6OlR5cGU6OlNvdXJjZUFs
cGhhKQorICAgICAgICAgICAgKytpdDsKKworICAgICAgICBUZXh0U3RyZWFtOjpJbmRlbnRTY29w
ZSBpbmRlbnRTY29wZSh0cywgbGV2ZWwrKyk7CisgICAgICAgIGZ1bmN0aW9uLT5leHRlcm5hbFJl
cHJlc2VudGF0aW9uKHRzLCByZXByZXNlbnRhdGlvbik7CisgICAgfQorCisgICAgcmV0dXJuIHRz
OworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvQ1NTRmlsdGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvQ1NTRmls
dGVyLmgKaW5kZXggYTdmMGU1M2VkZDNlZTMwOTViMjhlNDQ2NGZkNDk2M2RmNzM0MDlmMC4uZGJm
NzY2ZmM2YjU5ZGU2MWM2MGQ5ZjUyODM0ZDI0NTZmOWNlN2FjYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL0NTU0ZpbHRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9DU1NGaWx0ZXIuaApAQCAtNjgsNiArNjgsOCBAQCBwcml2YXRlOgogICAgIGJvb2wgc3Vw
cG9ydHNDb3JlSW1hZ2VSZW5kZXJpbmcoKSBjb25zdCBmaW5hbDsKICNlbmRpZgogCisgICAgV1RG
OjpUZXh0U3RyZWFtJiBleHRlcm5hbFJlcHJlc2VudGF0aW9uKFdURjo6VGV4dFN0cmVhbSYsIEZp
bHRlclJlcHJlc2VudGF0aW9uKSBjb25zdCBmaW5hbDsKKwogICAgIGJvb2wgbV9oYXNGaWx0ZXJU
aGF0TW92ZXNQaXhlbHMgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9oYXNGaWx0ZXJUaGF0U2hvdWxk
QmVSZXN0cmljdGVkQnlTZWN1cml0eU9yaWdpbiB7IGZhbHNlIH07CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHUmVuZGVyVHJlZUFzVGV4dC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1JlbmRlclRyZWVBc1RleHQuY3BwCmluZGV4IGEy
N2FjNGZjMzY1MTYzMjYxMmI5NjQ2ODJkOWI0YjQ5YzA5ODg4MzYuLjk5N2YzYTJlOTNhMjMzYjQ0
Yzk5ZDNiN2JmNmE4NmI2ZjlhOTA3NTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdmcvU1ZHUmVuZGVyVHJlZUFzVGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N2Zy9TVkdSZW5kZXJUcmVlQXNUZXh0LmNwcApAQCAtNDM0LDkgKzQzNCw3IEBAIHZv
aWQgd3JpdGVTVkdSZXNvdXJjZUNvbnRhaW5lcihUZXh0U3RyZWFtJiB0cywgY29uc3QgUmVuZGVy
U1ZHUmVzb3VyY2VDb250YWluZXImCiAgICAgICAgIGF1dG8gZHVtbXlGaWx0ZXIgPSBTVkdGaWx0
ZXI6OmNyZWF0ZShmaWx0ZXIuZmlsdGVyRWxlbWVudCgpLCBidWlsZGVyLCBSZW5kZXJpbmdNb2Rl
OjpVbmFjY2VsZXJhdGVkLCBkdW1teVNjYWxlLCBkdW1teVJlY3QsIGR1bW15UmVjdCk7CiAgICAg
ICAgIGlmIChkdW1teUZpbHRlcikgewogICAgICAgICAgICAgVGV4dFN0cmVhbTo6SW5kZW50U2Nv
cGUgaW5kZW50U2NvcGUodHMpOwotCi0gICAgICAgICAgICBpZiAoYXV0byBsYXN0RWZmZWN0ID0g
ZHVtbXlGaWx0ZXItPmxhc3RFZmZlY3QoKSkKLSAgICAgICAgICAgICAgICBsYXN0RWZmZWN0LT5l
eHRlcm5hbFJlcHJlc2VudGF0aW9uKHRzKTsKKyAgICAgICAgICAgIGR1bW15RmlsdGVyLT5leHRl
cm5hbFJlcHJlc2VudGF0aW9uKHRzLCBGaWx0ZXJSZXByZXNlbnRhdGlvbjo6VGVzdE91dHB1dCk7
CiAgICAgICAgIH0KICAgICB9IGVsc2UgaWYgKHJlc291cmNlLnJlc291cmNlVHlwZSgpID09IENs
aXBwZXJSZXNvdXJjZVR5cGUpIHsKICAgICAgICAgY29uc3QgYXV0byYgY2xpcHBlciA9IHN0YXRp
Y19jYXN0PGNvbnN0IFJlbmRlclNWR1Jlc291cmNlQ2xpcHBlciY+KHJlc291cmNlKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9maWx0ZXJzL1NWR0ZFSW1hZ2UuY3Bw
IGIvU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL2ZpbHRlcnMvU1ZHRkVJbWFnZS5jcHAKaW5k
ZXggNWM2N2NhMzE5MGNmNjIzYTc5NjM1YjkyOWI0Yzk0NjBhOTc2MjFmNC4uMjJiMjUxMDk3Mzhk
OWIyYjk3YzdmOGJjMTk5N2Y0ZTdhMTAzZjYzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
c3ZnL2dyYXBoaWNzL2ZpbHRlcnMvU1ZHRkVJbWFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
c3ZnL2dyYXBoaWNzL2ZpbHRlcnMvU1ZHRkVJbWFnZS5jcHAKQEAgLTExMiwxMiArMTEyLDE1IEBA
IHN0ZDo6dW5pcXVlX3B0cjxGaWx0ZXJFZmZlY3RBcHBsaWVyPiBGRUltYWdlOjpjcmVhdGVBcHBs
aWVyKGNvbnN0IEZpbHRlciYpIGNvbnN0CiAgICAgcmV0dXJuIEZpbHRlckVmZmVjdEFwcGxpZXI6
OmNyZWF0ZTxGRUltYWdlU29mdHdhcmVBcHBsaWVyPigqdGhpcyk7CiB9CiAKLVRleHRTdHJlYW0m
IEZFSW1hZ2U6OmV4dGVybmFsUmVwcmVzZW50YXRpb24oVGV4dFN0cmVhbSYgdHMsIFJlcHJlc2Vu
dGF0aW9uVHlwZSByZXByZXNlbnRhdGlvbikgY29uc3QKK1RleHRTdHJlYW0mIEZFSW1hZ2U6OmV4
dGVybmFsUmVwcmVzZW50YXRpb24oVGV4dFN0cmVhbSYgdHMsIEZpbHRlclJlcHJlc2VudGF0aW9u
IHJlcHJlc2VudGF0aW9uKSBjb25zdAogewogICAgIHRzIDw8IGluZGVudCA8PCAiW2ZlSW1hZ2Ui
OwogICAgIEZpbHRlckVmZmVjdDo6ZXh0ZXJuYWxSZXByZXNlbnRhdGlvbih0cywgcmVwcmVzZW50
YXRpb24pOwotICAgIHRzIDw8ICIgaW1hZ2Utc2l6ZT1cIiIgPDwgbV9zb3VyY2VJbWFnZVJlY3Qu
d2lkdGgoKSA8PCAieCIgPDwgbV9zb3VyY2VJbWFnZVJlY3QuaGVpZ2h0KCkgPDwgIlwiXVxuIjsK
KworICAgIHRzIDw8ICIgaW1hZ2Utc2l6ZT1cIiIgPDwgbV9zb3VyY2VJbWFnZVJlY3Qud2lkdGgo
KSA8PCAieCIgPDwgbV9zb3VyY2VJbWFnZVJlY3QuaGVpZ2h0KCkgPDwgIlwiIjsKICAgICAvLyBG
SVhNRTogc2hvdWxkIHRoaXMgZHVtcCBhbHNvIG9iamVjdCByZXR1cm5lZCBieSBTVkdGRUltYWdl
OjppbWFnZSgpID8KKworICAgIHRzIDw8ICJdXG4iOwogICAgIHJldHVybiB0czsKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL2ZpbHRlcnMvU1ZHRkVJbWFnZS5o
IGIvU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL2ZpbHRlcnMvU1ZHRkVJbWFnZS5oCmluZGV4
IDkxOWEwNGU2MWRjZDIyMzQ0MWIxZTE5YjIyMzYyMjVjMzMwMWZkODMuLmE5NGYwMWZjMDlkODI1
Nzk0YzU4MjkyYzIzNGE3Yjk1NmU5NmE2NDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9ncmFwaGljcy9maWx0ZXJzL1NWR0ZFSW1hZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
Z3JhcGhpY3MvZmlsdGVycy9TVkdGRUltYWdlLmgKQEAgLTU0LDcgKzU0LDcgQEAgcHJpdmF0ZToK
IAogICAgIHN0ZDo6dW5pcXVlX3B0cjxGaWx0ZXJFZmZlY3RBcHBsaWVyPiBjcmVhdGVBcHBsaWVy
KGNvbnN0IEZpbHRlciYpIGNvbnN0IGZpbmFsOwogCi0gICAgV1RGOjpUZXh0U3RyZWFtJiBleHRl
cm5hbFJlcHJlc2VudGF0aW9uKFdURjo6VGV4dFN0cmVhbSYsIFJlcHJlc2VudGF0aW9uVHlwZSkg
Y29uc3QgZmluYWw7CisgICAgV1RGOjpUZXh0U3RyZWFtJiBleHRlcm5hbFJlcHJlc2VudGF0aW9u
KFdURjo6VGV4dFN0cmVhbSYsIEZpbHRlclJlcHJlc2VudGF0aW9uKSBjb25zdCBmaW5hbDsKIAog
ICAgIFNvdXJjZUltYWdlIG1fc291cmNlSW1hZ2U7CiAgICAgRmxvYXRSZWN0IG1fc291cmNlSW1h
Z2VSZWN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL2ZpbHRlcnMv
U1ZHRmlsdGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9maWx0ZXJzL1NWR0Zp
bHRlci5jcHAKaW5kZXggMjQ5MjI4MjA2NGNkNWY5MTdjYzE4ZGU0NzA0OGMyM2E4Yzg2NjMwZC4u
MGRlN2Q4OWNlNjkzNTQxNDgwMDg0YTJhNDIwNDIzOTg0ZThmYjMyMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL2ZpbHRlcnMvU1ZHRmlsdGVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvZmlsdGVycy9TVkdGaWx0ZXIuY3BwCkBAIC0xMzMsNCAr
MTMzLDIwIEBAIHZvaWQgU1ZHRmlsdGVyOjpjbGVhclJlc3VsdCgpCiAgICAgICAgIHRlcm0uZWZm
ZWN0LT5jbGVhclJlc3VsdCgpOwogfQogCitUZXh0U3RyZWFtJiBTVkdGaWx0ZXI6OmV4dGVybmFs
UmVwcmVzZW50YXRpb24oVGV4dFN0cmVhbSYgdHMsIEZpbHRlclJlcHJlc2VudGF0aW9uIHJlcHJl
c2VudGF0aW9uKSBjb25zdAoreworICAgIGZvciAoYXV0byBpdCA9IG1fZXhwcmVzc2lvbi5yYmVn
aW4oKSwgZW5kID0gbV9leHByZXNzaW9uLnJlbmQoKTsgaXQgIT0gZW5kOyArK2l0KSB7CisgICAg
ICAgIGF1dG8mIHRlcm0gPSAqaXQ7CisgICAgICAgIAorICAgICAgICAvLyBTb3VyY2VBbHBoYSBp
cyBhIGJ1aWx0LWluIGVmZmVjdC4gTm8gbmVlZCB0byBzYXkgU291cmNlR3JhcGhpYyBpcyBpdHMg
aW5wdXQuCisgICAgICAgIGlmICh0ZXJtLmVmZmVjdC0+ZmlsdGVyVHlwZSgpID09IEZpbHRlckVm
ZmVjdDo6VHlwZTo6U291cmNlQWxwaGEpCisgICAgICAgICAgICArK2l0OworCisgICAgICAgIFRl
eHRTdHJlYW06OkluZGVudFNjb3BlIGluZGVudFNjb3BlKHRzLCB0ZXJtLmxldmVsKTsKKyAgICAg
ICAgdGVybS5lZmZlY3QtPmV4dGVybmFsUmVwcmVzZW50YXRpb24odHMsIHJlcHJlc2VudGF0aW9u
KTsKKyAgICB9CisKKyAgICByZXR1cm4gdHM7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9maWx0ZXJzL1NWR0ZpbHRl
ci5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL2ZpbHRlcnMvU1ZHRmlsdGVyLmgKaW5k
ZXggZWI1OGY3ODFjMWUyNmUyZGY1MGUzMDVhY2VmOTIwMzExOWI1NjFiZS4uMzBjNGVhMGY2OTc4
YjU1OTIwNDI4MDM3ZGRjNzUxYTVjNDBhNDRjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
c3ZnL2dyYXBoaWNzL2ZpbHRlcnMvU1ZHRmlsdGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3Zn
L2dyYXBoaWNzL2ZpbHRlcnMvU1ZHRmlsdGVyLmgKQEAgLTQ2LDYgKzQ2LDggQEAgcHVibGljOgog
CiAgICAgUmVmUHRyPEZpbHRlckltYWdlPiBhcHBseSgpIGZpbmFsOwogCisgICAgV1RGOjpUZXh0
U3RyZWFtJiBleHRlcm5hbFJlcHJlc2VudGF0aW9uKFdURjo6VGV4dFN0cmVhbSYsIEZpbHRlclJl
cHJlc2VudGF0aW9uKSBjb25zdCBmaW5hbDsKKwogcHJpdmF0ZToKICAgICBTVkdGaWx0ZXIoUmVu
ZGVyaW5nTW9kZSwgY29uc3QgRmxvYXRTaXplJiBmaWx0ZXJTY2FsZSwgQ2xpcE9wZXJhdGlvbiwg
Y29uc3QgRmxvYXRSZWN0JiBmaWx0ZXJSZWdpb24sIGNvbnN0IEZsb2F0UmVjdCYgdGFyZ2V0Qm91
bmRpbmdCb3gsIFNWR1VuaXRUeXBlczo6U1ZHVW5pdFR5cGUgcHJpbWl0aXZlVW5pdHMpOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvZmlsdGVycy9TVkdGaWx0ZXJC
dWlsZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9maWx0ZXJzL1NWR0ZpbHRl
ckJ1aWxkZXIuY3BwCmluZGV4IGJiNzVmMzhjNmUxNDI3MWJmYWQ1MjRjY2M2ZWJiNjJhZDFjMThi
YzYuLmU3YzAxYWUwMjVhODlhNWYxNDBkNmQ0NTM3ZDY3ZWFmNDZlZTU2NjkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9maWx0ZXJzL1NWR0ZpbHRlckJ1aWxkZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9maWx0ZXJzL1NWR0ZpbHRlckJ1aWxk
ZXIuY3BwCkBAIC00MSw3ICs0MSw3IEBAIHZvaWQgU1ZHRmlsdGVyQnVpbGRlcjo6c2V0dXBCdWls
dGluRWZmZWN0cyhSZWY8RmlsdGVyRWZmZWN0PiBzb3VyY2VHcmFwaGljKQogICAgIGFkZEJ1aWx0
aW5FZmZlY3RzKCk7CiB9CiAKLXN0YXRpYyBPcHRpb25TZXQ8RmlsdGVyRWZmZWN0R2VvbWV0cnk6
OkZsYWdzPiBib3VuZGFyeVNldEZsYWdzRm9yRWxlbWVudChTVkdFbGVtZW50JiBlbGVtZW50KQor
c3RhdGljIE9wdGlvblNldDxGaWx0ZXJFZmZlY3RHZW9tZXRyeTo6RmxhZ3M+IGVmZmVjdEdlb21l
dHJ5RmxhZ3NGb3JFbGVtZW50KFNWR0VsZW1lbnQmIGVsZW1lbnQpCiB7CiAgICAgT3B0aW9uU2V0
PEZpbHRlckVmZmVjdEdlb21ldHJ5OjpGbGFncz4gZmxhZ3M7CiAKQEAgLTEwOCw3ICsxMDgsNyBA
QCBSZWZQdHI8RmlsdGVyRWZmZWN0PiBTVkdGaWx0ZXJCdWlsZGVyOjpidWlsZEZpbHRlckVmZmVj
dHMoU1ZHRmlsdGVyRWxlbWVudCYgZmlsdAogICAgICAgICBpZiAoIWVmZmVjdCkKICAgICAgICAg
ICAgIGJyZWFrOwogCi0gICAgICAgIGlmIChhdXRvIGZsYWdzID0gYm91bmRhcnlTZXRGbGFnc0Zv
ckVsZW1lbnQoZWZmZWN0RWxlbWVudCkpIHsKKyAgICAgICAgaWYgKGF1dG8gZmxhZ3MgPSBlZmZl
Y3RHZW9tZXRyeUZsYWdzRm9yRWxlbWVudChlZmZlY3RFbGVtZW50KSkgewogICAgICAgICAgICAg
YXV0byBlZmZlY3RCb3VuZGFyaWVzID0gU1ZHTGVuZ3RoQ29udGV4dDo6cmVzb2x2ZVJlY3Rhbmds
ZTxTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXM+KCZlZmZlY3RFbGVtZW50LCBt
X3ByaW1pdGl2ZVVuaXRzLCBtX3RhcmdldEJvdW5kaW5nQm94KTsKICAgICAgICAgICAgIG1fZWZm
ZWN0R2VvbWV0cnlNYXAuYWRkKCplZmZlY3QsIEZpbHRlckVmZmVjdEdlb21ldHJ5KGVmZmVjdEJv
dW5kYXJpZXMsIGZsYWdzKSk7CiAgICAgICAgIH0KQEAgLTIwOSw3ICsyMDksNyBAQCBzdGQ6Om9w
dGlvbmFsPEZpbHRlckVmZmVjdEdlb21ldHJ5PiBTVkdGaWx0ZXJCdWlsZGVyOjplZmZlY3RHZW9t
ZXRyeShGaWx0ZXJFZmZlYwogICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiB9CiAKLWJvb2wgU1ZH
RmlsdGVyQnVpbGRlcjo6YnVpbGRFZmZlY3RFeHByZXNzaW9uKGNvbnN0IFJlZlB0cjxGaWx0ZXJF
ZmZlY3Q+JiBlZmZlY3QsIEZpbHRlckVmZmVjdFZlY3RvciYgc3RhY2ssIFNWR0ZpbHRlckV4cHJl
c3Npb24mIGV4cHJlc3Npb24pIGNvbnN0Citib29sIFNWR0ZpbHRlckJ1aWxkZXI6OmJ1aWxkRWZm
ZWN0RXhwcmVzc2lvbihjb25zdCBSZWZQdHI8RmlsdGVyRWZmZWN0PiYgZWZmZWN0LCBGaWx0ZXJF
ZmZlY3RWZWN0b3ImIHN0YWNrLCB1bnNpZ25lZCBsZXZlbCwgU1ZHRmlsdGVyRXhwcmVzc2lvbiYg
ZXhwcmVzc2lvbikgY29uc3QKIHsKICAgICAvLyBBIGN5Y2xlIGlzIGRldGVjdGVkLgogICAgIGlm
IChzdGFjay5jb250YWlucyhlZmZlY3QpKQpAQCAtMjE3LDEwICsyMTcsMTAgQEAgYm9vbCBTVkdG
aWx0ZXJCdWlsZGVyOjpidWlsZEVmZmVjdEV4cHJlc3Npb24oY29uc3QgUmVmUHRyPEZpbHRlckVm
ZmVjdD4mIGVmZmVjdCwKIAogICAgIHN0YWNrLmFwcGVuZChlZmZlY3QpOwogICAgIAotICAgIGV4
cHJlc3Npb24uYXBwZW5kKHsgKmVmZmVjdCwgZWZmZWN0R2VvbWV0cnkoKmVmZmVjdCkgfSk7Cisg
ICAgZXhwcmVzc2lvbi5hcHBlbmQoeyAqZWZmZWN0LCBlZmZlY3RHZW9tZXRyeSgqZWZmZWN0KSwg
bGV2ZWwgfSk7CiAKICAgICBmb3IgKGF1dG8mIGlucHV0RWZmZWN0IDogZWZmZWN0LT5pbnB1dEVm
ZmVjdHMoKSkgewotICAgICAgICBpZiAoIWJ1aWxkRWZmZWN0RXhwcmVzc2lvbihpbnB1dEVmZmVj
dCwgc3RhY2ssIGV4cHJlc3Npb24pKQorICAgICAgICBpZiAoIWJ1aWxkRWZmZWN0RXhwcmVzc2lv
bihpbnB1dEVmZmVjdCwgc3RhY2ssIGxldmVsICsgMSwgZXhwcmVzc2lvbikpCiAgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CiAgICAgfQogCkBAIC0yMzcsNyArMjM3LDcgQEAgYm9vbCBTVkdGaWx0
ZXJCdWlsZGVyOjpidWlsZEV4cHJlc3Npb24oU1ZHRmlsdGVyRXhwcmVzc2lvbiYgZXhwcmVzc2lv
bikgY29uc3QKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgRmlsdGVyRWZmZWN0VmVjdG9y
IHN0YWNrOwotICAgIGlmICghYnVpbGRFZmZlY3RFeHByZXNzaW9uKG1fbGFzdEVmZmVjdCwgc3Rh
Y2ssIGV4cHJlc3Npb24pKQorICAgIGlmICghYnVpbGRFZmZlY3RFeHByZXNzaW9uKG1fbGFzdEVm
ZmVjdCwgc3RhY2ssIDAsIGV4cHJlc3Npb24pKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAg
ICBleHByZXNzaW9uLnJldmVyc2UoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9n
cmFwaGljcy9maWx0ZXJzL1NWR0ZpbHRlckJ1aWxkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9n
cmFwaGljcy9maWx0ZXJzL1NWR0ZpbHRlckJ1aWxkZXIuaAppbmRleCAxODg4NDUwYzVlZGZjNjcz
YjIxYjU3MTRiNmFiN2FmNmQ0ZjRmOTNkLi4wNzk5MjVlNDUxODdlMmQwNTNjMWMwYzNkYTI1MzVm
MmU4NzU4NTdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvZmlsdGVy
cy9TVkdGaWx0ZXJCdWlsZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL2Zp
bHRlcnMvU1ZHRmlsdGVyQnVpbGRlci5oCkBAIC03OSw3ICs3OSw3IEBAIHByaXZhdGU6CiAgICAg
fQogCiAgICAgc3RkOjpvcHRpb25hbDxGaWx0ZXJFZmZlY3RHZW9tZXRyeT4gZWZmZWN0R2VvbWV0
cnkoRmlsdGVyRWZmZWN0JikgY29uc3Q7Ci0gICAgYm9vbCBidWlsZEVmZmVjdEV4cHJlc3Npb24o
Y29uc3QgUmVmUHRyPEZpbHRlckVmZmVjdD4mLCBGaWx0ZXJFZmZlY3RWZWN0b3ImIHN0YWNrLCBT
VkdGaWx0ZXJFeHByZXNzaW9uJikgY29uc3Q7CisgICAgYm9vbCBidWlsZEVmZmVjdEV4cHJlc3Np
b24oY29uc3QgUmVmUHRyPEZpbHRlckVmZmVjdD4mLCBGaWx0ZXJFZmZlY3RWZWN0b3ImIHN0YWNr
LCB1bnNpZ25lZCBsZXZlbCwgU1ZHRmlsdGVyRXhwcmVzc2lvbiYpIGNvbnN0OwogCiAgICAgSGFz
aE1hcDxBdG9tU3RyaW5nLCBSZWZQdHI8RmlsdGVyRWZmZWN0Pj4gbV9idWlsdGluRWZmZWN0czsK
ICAgICBIYXNoTWFwPEF0b21TdHJpbmcsIFJlZlB0cjxGaWx0ZXJFZmZlY3Q+PiBtX25hbWVkRWZm
ZWN0czsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9maWx0ZXJzL1NW
R0ZpbHRlckV4cHJlc3Npb24uaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9maWx0ZXJz
L1NWR0ZpbHRlckV4cHJlc3Npb24uaAppbmRleCA1NGRjYzcyZGJhYTY4ZTg0ZjcxMjI0ZDQ2N2M3
MTI2YzZkMDcxNDZmLi4zZmIwNWVmY2VlYmNhNWRhY2JmMDJjODJiYTg3MTg4NmE4ZGVkMDdmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvZmlsdGVycy9TVkdGaWx0ZXJF
eHByZXNzaW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL2ZpbHRlcnMvU1ZH
RmlsdGVyRXhwcmVzc2lvbi5oCkBAIC0zNSw2ICszNSw3IEBAIGNsYXNzIEZpbHRlckVmZmVjdDsK
IHN0cnVjdCBTVkdGaWx0ZXJFeHByZXNzaW9uVGVybSB7CiAgICAgUmVmPEZpbHRlckVmZmVjdD4g
ZWZmZWN0OwogICAgIHN0ZDo6b3B0aW9uYWw8RmlsdGVyRWZmZWN0R2VvbWV0cnk+IGdlb21ldHJ5
OworICAgIHVuc2lnbmVkIGxldmVsOwogfTsKIAogdXNpbmcgU1ZHRmlsdGVyRXhwcmVzc2lvbiA9
IFZlY3RvcjxTVkdGaWx0ZXJFeHByZXNzaW9uVGVybT47CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNzg2MjdjZGNmYmY2YWQ2
YmZkMTA0YWIzZmI2Mjg4MzNkNTQ4ZDcxMC4uZDEyYWQxYmE3ZGNmNzViY2RjZDhmYTBkMmIxYzhk
NzU3NjI2NzliZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91
dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDIxLTEyLTA2ICBTYWlkIEFib3Ut
SGFsbGF3YSAgPHNhaWRAYXBwbGUuY29tPgorCisgICAgICAgIFtHUFUgUHJvY2Vzc10gIFtGaWx0
ZXJzXSBNYWtlIEZpbHRlckVmZmVjdDo6ZXh0ZXJuYWxSZXByZXNlbnRhdGlvbigpIGFuZCBpdHMg
b3ZlcnJpZGFibGUgZnVuY3Rpb25zIHdvcmsgaXRlcmF0aXZlbHkKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMzg5MworCisgICAgICAgIFJldmlld2Vk
IGJ5IENhbWVyb24gTWNDb3JtYWNrLgorCisgICAgICAgIEFkZCBtaXNzaW5nIGNsb3NpbmcgcXVv
dGF0aW9ucyBpbiB0aGUgZXhwZWN0ZWQgcmVzdWx0cyBvZiBzb21lIG9mIHRoZSAKKyAgICAgICAg
ZmlsdGVyIGxheW91dCB0ZXN0cy4KKworICAgICAgICAqIHN2Zy9maWx0ZXJzL2ZlRHJvcFNoYWRv
dy1leHBlY3RlZC50eHQ6CisgICAgICAgICogc3ZnL2ZpbHRlcnMvZmVEcm9wU2hhZG93LXN1YnJl
Z2lvbi1leHBlY3RlZC50eHQ6CisgICAgICAgICogc3ZnL2ZpbHRlcnMvZmVEcm9wU2hhZG93LXpl
cm8tZGV2aWF0aW9uLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBzdmcvcmVwYWludC9maWx0ZXIt
Y2hpbGQtcmVwYWludC1leHBlY3RlZC50eHQ6CisKIDIwMjEtMTItMDYgIExhdXJvIE1vdXJhICA8
bG1vdXJhQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dMSUJdIFNtYWxsIGdhcmRlbmluZwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3ZnL2ZpbHRlcnMvZmVEcm9wU2hhZG93LWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL3N2Zy9maWx0ZXJzL2ZlRHJvcFNoYWRvdy1leHBlY3RlZC50eHQKaW5k
ZXggNWI2ZGQ2ZWY4MWMxM2RlZWE2NmVjOWRhOTEyNzJkMTA0NDVmN2UxOC4uOTdiZWY3OGNlYmJk
YTkxZmVkODNjNjJkOGI1OThmZDdkZWJhYTdjNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3Zn
L2ZpbHRlcnMvZmVEcm9wU2hhZG93LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9zdmcv
ZmlsdGVycy9mZURyb3BTaGFkb3ctZXhwZWN0ZWQudHh0CkBAIC00LDI4ICs0LDI4IEBAIGxheWVy
IGF0ICgwLDApIHNpemUgODAweDYwMAogICBSZW5kZXJTVkdSb290IHtzdmd9IGF0ICgwLDApIHNp
emUgNjg0eDMzNAogICAgIFJlbmRlclNWR0hpZGRlbkNvbnRhaW5lciB7ZGVmc30gYXQgKDAsMCkg
c2l6ZSAweDAKICAgICAgIFJlbmRlclNWR1Jlc291cmNlRmlsdGVyIHtmaWx0ZXJ9IFtpZD0iZHJv
cC1zaGFkb3ctMSJdIFtmaWx0ZXJVbml0cz1vYmplY3RCb3VuZGluZ0JveF0gW3ByaW1pdGl2ZVVu
aXRzPXVzZXJTcGFjZU9uVXNlXQotICAgICAgICBbZmVEcm9wU2hhZG93IHN0ZERldmlhdGlvbj0i
Mi4wMCwgMi4wMCIgZHg9IjIuMDAiIGR5PSIyLjAwIiBmbG9vZC1jb2xvcj0iIzAwODAwMCIgZmxv
b2Qtb3BhY2l0eT0iMS4wMF0KKyAgICAgICAgW2ZlRHJvcFNoYWRvdyBzdGREZXZpYXRpb249IjIu
MDAsIDIuMDAiIGR4PSIyLjAwIiBkeT0iMi4wMCIgZmxvb2QtY29sb3I9IiMwMDgwMDAiIGZsb29k
LW9wYWNpdHk9IjEuMDAiXQogICAgICAgICAgIFtTb3VyY2VHcmFwaGljXQogICAgICAgUmVuZGVy
U1ZHUmVzb3VyY2VGaWx0ZXIge2ZpbHRlcn0gW2lkPSJkcm9wLXNoYWRvdy0yIl0gW2ZpbHRlclVu
aXRzPW9iamVjdEJvdW5kaW5nQm94XSBbcHJpbWl0aXZlVW5pdHM9dXNlclNwYWNlT25Vc2VdCi0g
ICAgICAgIFtmZURyb3BTaGFkb3cgc3RkRGV2aWF0aW9uPSIwLjAwLCAwLjAwIiBkeD0iMC4wMCIg
ZHk9IjAuMDAiIGZsb29kLWNvbG9yPSIjMDA4MDAwIiBmbG9vZC1vcGFjaXR5PSIxLjAwXQorICAg
ICAgICBbZmVEcm9wU2hhZG93IHN0ZERldmlhdGlvbj0iMC4wMCwgMC4wMCIgZHg9IjAuMDAiIGR5
PSIwLjAwIiBmbG9vZC1jb2xvcj0iIzAwODAwMCIgZmxvb2Qtb3BhY2l0eT0iMS4wMCJdCiAgICAg
ICAgICAgW1NvdXJjZUdyYXBoaWNdCiAgICAgICBSZW5kZXJTVkdSZXNvdXJjZUZpbHRlciB7Zmls
dGVyfSBbaWQ9ImRyb3Atc2hhZG93LTMiXSBbZmlsdGVyVW5pdHM9b2JqZWN0Qm91bmRpbmdCb3hd
IFtwcmltaXRpdmVVbml0cz11c2VyU3BhY2VPblVzZV0KLSAgICAgICAgW2ZlRHJvcFNoYWRvdyBz
dGREZXZpYXRpb249IjAuMDAsIDEwLjAwIiBkeD0iNS4wMCIgZHk9IjUuMDAiIGZsb29kLWNvbG9y
PSIjMDA4MDAwIiBmbG9vZC1vcGFjaXR5PSIxLjAwXQorICAgICAgICBbZmVEcm9wU2hhZG93IHN0
ZERldmlhdGlvbj0iMC4wMCwgMTAuMDAiIGR4PSI1LjAwIiBkeT0iNS4wMCIgZmxvb2QtY29sb3I9
IiMwMDgwMDAiIGZsb29kLW9wYWNpdHk9IjEuMDAiXQogICAgICAgICAgIFtTb3VyY2VHcmFwaGlj
XQogICAgICAgUmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXIge2ZpbHRlcn0gW2lkPSJkcm9wLXNoYWRv
dy00Il0gW2ZpbHRlclVuaXRzPW9iamVjdEJvdW5kaW5nQm94XSBbcHJpbWl0aXZlVW5pdHM9dXNl
clNwYWNlT25Vc2VdCi0gICAgICAgIFtmZURyb3BTaGFkb3cgc3RkRGV2aWF0aW9uPSIxMC4wMCwg
MC4wMCIgZHg9IjUuMDAiIGR5PSI1LjAwIiBmbG9vZC1jb2xvcj0iIzAwODAwMCIgZmxvb2Qtb3Bh
Y2l0eT0iMS4wMF0KKyAgICAgICAgW2ZlRHJvcFNoYWRvdyBzdGREZXZpYXRpb249IjEwLjAwLCAw
LjAwIiBkeD0iNS4wMCIgZHk9IjUuMDAiIGZsb29kLWNvbG9yPSIjMDA4MDAwIiBmbG9vZC1vcGFj
aXR5PSIxLjAwIl0KICAgICAgICAgICBbU291cmNlR3JhcGhpY10KICAgICAgIFJlbmRlclNWR1Jl
c291cmNlRmlsdGVyIHtmaWx0ZXJ9IFtpZD0iZHJvcC1zaGFkb3ctNSJdIFtmaWx0ZXJVbml0cz1v
YmplY3RCb3VuZGluZ0JveF0gW3ByaW1pdGl2ZVVuaXRzPXVzZXJTcGFjZU9uVXNlXQotICAgICAg
ICBbZmVEcm9wU2hhZG93IHN0ZERldmlhdGlvbj0iMTAuMDAsIDEwLjAwIiBkeD0iNS4wMCIgZHk9
IjUuMDAiIGZsb29kLWNvbG9yPSIjMDA4MDAwIiBmbG9vZC1vcGFjaXR5PSIxLjAwXQorICAgICAg
ICBbZmVEcm9wU2hhZG93IHN0ZERldmlhdGlvbj0iMTAuMDAsIDEwLjAwIiBkeD0iNS4wMCIgZHk9
IjUuMDAiIGZsb29kLWNvbG9yPSIjMDA4MDAwIiBmbG9vZC1vcGFjaXR5PSIxLjAwIl0KICAgICAg
ICAgICBbU291cmNlR3JhcGhpY10KICAgICAgIFJlbmRlclNWR1Jlc291cmNlRmlsdGVyIHtmaWx0
ZXJ9IFtpZD0iZHJvcC1zaGFkb3ctNiJdIFtmaWx0ZXJVbml0cz1vYmplY3RCb3VuZGluZ0JveF0g
W3ByaW1pdGl2ZVVuaXRzPXVzZXJTcGFjZU9uVXNlXQotICAgICAgICBbZmVEcm9wU2hhZG93IHN0
ZERldmlhdGlvbj0iMTAuMDAsIDEwLjAwIiBkeD0iLTUuMDAiIGR5PSItNS4wMCIgZmxvb2QtY29s
b3I9IiMwMDgwMDAiIGZsb29kLW9wYWNpdHk9IjEuMDBdCisgICAgICAgIFtmZURyb3BTaGFkb3cg
c3RkRGV2aWF0aW9uPSIxMC4wMCwgMTAuMDAiIGR4PSItNS4wMCIgZHk9Ii01LjAwIiBmbG9vZC1j
b2xvcj0iIzAwODAwMCIgZmxvb2Qtb3BhY2l0eT0iMS4wMCJdCiAgICAgICAgICAgW1NvdXJjZUdy
YXBoaWNdCiAgICAgICBSZW5kZXJTVkdSZXNvdXJjZUZpbHRlciB7ZmlsdGVyfSBbaWQ9ImRyb3At
c2hhZG93LTciXSBbZmlsdGVyVW5pdHM9b2JqZWN0Qm91bmRpbmdCb3hdIFtwcmltaXRpdmVVbml0
cz11c2VyU3BhY2VPblVzZV0KLSAgICAgICAgW2ZlRHJvcFNoYWRvdyBzdGREZXZpYXRpb249IjEy
OC4wMCwgMTI4LjAwIiBkeD0iMC4wMCIgZHk9IjAuMDAiIGZsb29kLWNvbG9yPSIjMDA4MDAwIiBm
bG9vZC1vcGFjaXR5PSIxLjAwXQorICAgICAgICBbZmVEcm9wU2hhZG93IHN0ZERldmlhdGlvbj0i
MTI4LjAwLCAxMjguMDAiIGR4PSIwLjAwIiBkeT0iMC4wMCIgZmxvb2QtY29sb3I9IiMwMDgwMDAi
IGZsb29kLW9wYWNpdHk9IjEuMDAiXQogICAgICAgICAgIFtTb3VyY2VHcmFwaGljXQogICAgICAg
UmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXIge2ZpbHRlcn0gW2lkPSJkcm9wLXNoYWRvdy04Il0gW2Zp
bHRlclVuaXRzPW9iamVjdEJvdW5kaW5nQm94XSBbcHJpbWl0aXZlVW5pdHM9dXNlclNwYWNlT25V
c2VdCi0gICAgICAgIFtmZURyb3BTaGFkb3cgc3RkRGV2aWF0aW9uPSIxMC4wMCwgMTAuMDAiIGR4
PSI1LjAwIiBkeT0iNS4wMCIgZmxvb2QtY29sb3I9IiMwMDgwMDAiIGZsb29kLW9wYWNpdHk9IjAu
NTBdCisgICAgICAgIFtmZURyb3BTaGFkb3cgc3RkRGV2aWF0aW9uPSIxMC4wMCwgMTAuMDAiIGR4
PSI1LjAwIiBkeT0iNS4wMCIgZmxvb2QtY29sb3I9IiMwMDgwMDAiIGZsb29kLW9wYWNpdHk9IjAu
NTAiXQogICAgICAgICAgIFtTb3VyY2VHcmFwaGljXQogICAgIFJlbmRlclNWR0VsbGlwc2Uge2Np
cmNsZX0gYXQgKDAsMCkgc2l6ZSAxNTl4MTU5IFtzdHJva2U9e1t0eXBlPVNPTElEXSBbY29sb3I9
IzAwMDBGRl0gW3N0cm9rZSB3aWR0aD01LjAwXX1dIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9y
PSNGRkZGMDBdfV0gW2N4PTc1LjAwXSBbY3k9NzUuMDBdIFtyPTcwLjAwXQogICAgICAgW2ZpbHRl
cj0iZHJvcC1zaGFkb3ctMSJdIFJlbmRlclNWR1Jlc291cmNlRmlsdGVyIHtmaWx0ZXJ9IGF0ICgt
OSwtOSkgc2l6ZSAxNjh4MTY4CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdmcvZmlsdGVycy9m
ZURyb3BTaGFkb3ctc3VicmVnaW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N2Zy9maWx0
ZXJzL2ZlRHJvcFNoYWRvdy1zdWJyZWdpb24tZXhwZWN0ZWQudHh0CmluZGV4IDczMDE3ZjQ5ZDAz
MzMwZGEyYzVkODc3MGNhZmZkODFlZWQ4ZGZmMzcuLjY3ZjQxOTViZDM2NTBkNzQxYzEzOTI0ZDk0
ODU1ODE1NGVhMjc2OTcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N2Zy9maWx0ZXJzL2ZlRHJv
cFNoYWRvdy1zdWJyZWdpb24tZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3N2Zy9maWx0
ZXJzL2ZlRHJvcFNoYWRvdy1zdWJyZWdpb24tZXhwZWN0ZWQudHh0CkBAIC01LDcgKzUsNyBAQCBs
YXllciBhdCAoMCwwKSBzaXplIDEwMHgxMDAKICAgICBSZW5kZXJTVkdIaWRkZW5Db250YWluZXIg
e2RlZnN9IGF0ICgwLDApIHNpemUgMHgwCiAgICAgICBSZW5kZXJTVkdSZXNvdXJjZUZpbHRlciB7
ZmlsdGVyfSBbaWQ9IkRyb3BTaGFkb3ciXSBbZmlsdGVyVW5pdHM9b2JqZWN0Qm91bmRpbmdCb3hd
IFtwcmltaXRpdmVVbml0cz11c2VyU3BhY2VPblVzZV0KICAgICAgICAgW2ZlQ29tcG9zaXRlIG9w
ZXJhdGlvbj0iT1ZFUiJdCi0gICAgICAgICAgW2ZlRHJvcFNoYWRvdyBzdGREZXZpYXRpb249IjEw
LjAwLCAxMC4wMCIgZHg9IjEwLjAwIiBkeT0iMTAuMDAiIGZsb29kLWNvbG9yPSIjRkYwMDAwIiBm
bG9vZC1vcGFjaXR5PSIxLjAwXQorICAgICAgICAgIFtmZURyb3BTaGFkb3cgc3RkRGV2aWF0aW9u
PSIxMC4wMCwgMTAuMDAiIGR4PSIxMC4wMCIgZHk9IjEwLjAwIiBmbG9vZC1jb2xvcj0iI0ZGMDAw
MCIgZmxvb2Qtb3BhY2l0eT0iMS4wMCJdCiAgICAgICAgICAgICBbU291cmNlR3JhcGhpY10KICAg
ICAgICAgICBbZmVPZmZzZXQgZHg9IjEwLjAwIiBkeT0iMTAuMDAiXQogICAgICAgICAgICAgW1Nv
dXJjZUdyYXBoaWNdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdmcvZmlsdGVycy9mZURyb3BT
aGFkb3ctemVyby1kZXZpYXRpb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3ZnL2ZpbHRl
cnMvZmVEcm9wU2hhZG93LXplcm8tZGV2aWF0aW9uLWV4cGVjdGVkLnR4dAppbmRleCA0ZmVhYWYw
MGMzODVlYzQ0NGM1OWQ2MzA0ZWE5MzRjMmZjNTc0YTg2Li5hNzk0OTE5YzdiMTRhNDViYTc0ODli
NTQyMGU2MjdlZmY0MDU0NDkwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdmcvZmlsdGVycy9m
ZURyb3BTaGFkb3ctemVyby1kZXZpYXRpb24tZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3Rz
L3N2Zy9maWx0ZXJzL2ZlRHJvcFNoYWRvdy16ZXJvLWRldmlhdGlvbi1leHBlY3RlZC50eHQKQEAg
LTQsMTAgKzQsMTAgQEAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCiAgIFJlbmRlclNWR1Jv
b3Qge3N2Z30gYXQgKDQ5LDE5KSBzaXplIDEyeDMyCiAgICAgUmVuZGVyU1ZHSGlkZGVuQ29udGFp
bmVyIHtkZWZzfSBhdCAoMCwwKSBzaXplIDB4MAogICAgICAgUmVuZGVyU1ZHUmVzb3VyY2VGaWx0
ZXIge2ZpbHRlcn0gW2lkPSJmMSJdIFtmaWx0ZXJVbml0cz1vYmplY3RCb3VuZGluZ0JveF0gW3By
aW1pdGl2ZVVuaXRzPXVzZXJTcGFjZU9uVXNlXQotICAgICAgICBbZmVEcm9wU2hhZG93IHN0ZERl
dmlhdGlvbj0iMC4wMCwgMS4wMCIgZHg9IjIuMDAiIGR5PSIyLjAwIiBmbG9vZC1jb2xvcj0iIzAw
MDAwMCIgZmxvb2Qtb3BhY2l0eT0iMS4wMF0KKyAgICAgICAgW2ZlRHJvcFNoYWRvdyBzdGREZXZp
YXRpb249IjAuMDAsIDEuMDAiIGR4PSIyLjAwIiBkeT0iMi4wMCIgZmxvb2QtY29sb3I9IiMwMDAw
MDAiIGZsb29kLW9wYWNpdHk9IjEuMDAiXQogICAgICAgICAgIFtTb3VyY2VHcmFwaGljXQogICAg
ICAgUmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXIge2ZpbHRlcn0gW2lkPSJmMiJdIFtmaWx0ZXJVbml0
cz1vYmplY3RCb3VuZGluZ0JveF0gW3ByaW1pdGl2ZVVuaXRzPXVzZXJTcGFjZU9uVXNlXQotICAg
ICAgICBbZmVEcm9wU2hhZG93IHN0ZERldmlhdGlvbj0iMS4wMCwgMC4wMCIgZHg9IjIuMDAiIGR5
PSIyLjAwIiBmbG9vZC1jb2xvcj0iIzAwMDAwMCIgZmxvb2Qtb3BhY2l0eT0iMS4wMF0KKyAgICAg
ICAgW2ZlRHJvcFNoYWRvdyBzdGREZXZpYXRpb249IjEuMDAsIDAuMDAiIGR4PSIyLjAwIiBkeT0i
Mi4wMCIgZmxvb2QtY29sb3I9IiMwMDAwMDAiIGZsb29kLW9wYWNpdHk9IjEuMDAiXQogICAgICAg
ICAgIFtTb3VyY2VHcmFwaGljXQogICAgIFJlbmRlclNWR1JlY3Qge3JlY3R9IGF0ICg0OSwxOSkg
c2l6ZSAxMngxMiBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jMDA4MDAwXX1dIFt4PTUwLjAw
XSBbeT0yMC4wMF0gW3dpZHRoPTEwLjAwXSBbaGVpZ2h0PTEwLjAwXQogICAgICAgW2ZpbHRlcj0i
ZjEiXSBSZW5kZXJTVkdSZXNvdXJjZUZpbHRlciB7ZmlsdGVyfSBhdCAoNDksMTkpIHNpemUgMTJ4
MTIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N2Zy9yZXBhaW50L2ZpbHRlci1jaGlsZC1yZXBh
aW50LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N2Zy9yZXBhaW50L2ZpbHRlci1jaGlsZC1y
ZXBhaW50LWV4cGVjdGVkLnR4dAppbmRleCA1OGJmMDg0MzVlZjViYzk4YTYwZmFiOTY2ZDZjNGVl
ZTE1ODE5NDNhLi41ZWRjYzNhOTY4ZWIwNzUwZDhiNzc2NDJmNDFlYjQ5NGI5NjE5OTNiIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9zdmcvcmVwYWludC9maWx0ZXItY2hpbGQtcmVwYWludC1leHBl
Y3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvc3ZnL3JlcGFpbnQvZmlsdGVyLWNoaWxkLXJlcGFp
bnQtZXhwZWN0ZWQudHh0CkBAIC00LDcgKzQsNyBAQCBsYXllciBhdCAoMCwwKSBzaXplIDEyOHgx
MjgKICAgUmVuZGVyU1ZHUm9vdCB7c3ZnfSBhdCAoMCwwKSBzaXplIDEwNngxMDYKICAgICBSZW5k
ZXJTVkdIaWRkZW5Db250YWluZXIge2RlZnN9IGF0ICgwLDApIHNpemUgMHgwCiAgICAgICBSZW5k
ZXJTVkdSZXNvdXJjZUZpbHRlciB7ZmlsdGVyfSBbaWQ9ImRyb3BTaGFkb3ciXSBbZmlsdGVyVW5p
dHM9b2JqZWN0Qm91bmRpbmdCb3hdIFtwcmltaXRpdmVVbml0cz11c2VyU3BhY2VPblVzZV0KLSAg
ICAgICAgW2ZlRHJvcFNoYWRvdyBzdGREZXZpYXRpb249IjIuMDAsIDIuMDAiIGR4PSIzLjAwIiBk
eT0iMy4wMCIgZmxvb2QtY29sb3I9IiMwMDAwMDAiIGZsb29kLW9wYWNpdHk9IjEuMDBdCisgICAg
ICAgIFtmZURyb3BTaGFkb3cgc3RkRGV2aWF0aW9uPSIyLjAwLCAyLjAwIiBkeD0iMy4wMCIgZHk9
IjMuMDAiIGZsb29kLWNvbG9yPSIjMDAwMDAwIiBmbG9vZC1vcGFjaXR5PSIxLjAwIl0KICAgICAg
ICAgICBbU291cmNlR3JhcGhpY10KICAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICgwLDAp
IHNpemUgMTA2eDEwNgogICAgICAgW2ZpbHRlcj0iZHJvcFNoYWRvdyJdIFJlbmRlclNWR1Jlc291
cmNlRmlsdGVyIHtmaWx0ZXJ9IGF0ICgtOS42MCwtOS42MCkgc2l6ZSAxMTUuMjB4MTE1LjIwCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>