<?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>191242</bug_id>
          
          <creation_ts>2018-11-04 20:55:01 -0800</creation_ts>
          <short_desc>Parsing support for text-underline-offset and text-decoration-thickness</short_desc>
          <delta_ts>2022-07-13 11:45:59 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</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>190774</blocked>
    
    <blocked>216092</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Myles C. Maxfield">mmaxfield</reporter>
          <assigned_to name="Myles C. Maxfield">mmaxfield</assigned_to>
          <cc>dbates</cc>
    
    <cc>dino</cc>
    
    <cc>jonlee</cc>
    
    <cc>lamarque</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1474951</commentid>
    <comment_count>0</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2018-11-04 20:55:01 -0800</bug_when>
    <thetext>Parsing support for text-underline-offset and text-decoration-thickness</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1474954</commentid>
    <comment_count>1</comment_count>
      <attachid>353826</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2018-11-04 20:59:33 -0800</bug_when>
    <thetext>Created attachment 353826
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1475182</commentid>
    <comment_count>2</comment_count>
      <attachid>353826</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2018-11-05 11:15:14 -0800</bug_when>
    <thetext>Comment on attachment 353826
Patch

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

&gt; Source/WebCore/rendering/style/StyleRareInheritedData.h:85
&gt; +    TextUnderlineOffset textUnderlineOffset;

Why not put into the bitfield?

&gt; Source/WebCore/rendering/style/TextDecorationThickness.h:109
&gt; +    Type m_type;
&gt; +    float m_length;

3 bytes of padding here, sadly, and the float is wasted for the &quot;from font&quot; case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1475229</commentid>
    <comment_count>3</comment_count>
      <attachid>353826</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2018-11-05 12:09:33 -0800</bug_when>
    <thetext>Comment on attachment 353826
Patch

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

&gt; Source/WebCore/ChangeLog:18
&gt; +        We still don&apos;t suppor the left and right values on text-underline-position. We should add those eventually.

Nit - support</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1475301</commentid>
    <comment_count>4</comment_count>
      <attachid>353826</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2018-11-05 15:37:49 -0800</bug_when>
    <thetext>Comment on attachment 353826
Patch

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

&gt;&gt; Source/WebCore/rendering/style/StyleRareInheritedData.h:85
&gt;&gt; +    TextUnderlineOffset textUnderlineOffset;
&gt; 
&gt; Why not put into the bitfield?

I don&apos;t understand this comment.

&gt;&gt; Source/WebCore/rendering/style/TextDecorationThickness.h:109
&gt;&gt; +    float m_length;
&gt; 
&gt; 3 bytes of padding here, sadly, and the float is wasted for the &quot;from font&quot; case.

Yeah :( Do you have any ideas about how to improve it?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1475314</commentid>
    <comment_count>5</comment_count>
      <attachid>353826</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2018-11-05 16:07:01 -0800</bug_when>
    <thetext>Comment on attachment 353826
Patch

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

&gt;&gt;&gt; Source/WebCore/rendering/style/StyleRareInheritedData.h:85
&gt;&gt;&gt; +    TextUnderlineOffset textUnderlineOffset;
&gt;&gt; 
&gt;&gt; Why not put into the bitfield?
&gt; 
&gt; I don&apos;t understand this comment.

Oh, it&apos;s because TextUnderlineOffset can be auto or a length. text-underline-offset is different from text-underline-position :(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1475317</commentid>
    <comment_count>6</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2018-11-05 16:11:24 -0800</bug_when>
    <thetext>Committed r237835: &lt;https://trac.webkit.org/changeset/237835&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1475318</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-11-05 16:12:19 -0800</bug_when>
    <thetext>&lt;rdar://problem/45824920&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1475400</commentid>
    <comment_count>8</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2018-11-05 20:30:54 -0800</bug_when>
    <thetext>Committed r237843: &lt;https://trac.webkit.org/changeset/237843&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1883233</commentid>
    <comment_count>9</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2022-07-13 11:45:59 -0700</bug_when>
    <thetext>*** Bug 101931 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>353826</attachid>
            <date>2018-11-04 20:59:33 -0800</date>
            <delta_ts>2018-11-05 11:15:14 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-191242-20181104205933.patch</filename>
            <type>text/plain</type>
            <size>58480</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM3Nzg2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjAxYjZmMDcwNWM5ZWNk
ZDFhNTY2YjA2MTdjYWQ3ZWFjNWE0ZDg3NS4uYjEzYThjYTI2OTdlOTBhMWU3MDhiMTY0ODY1Mzk1
YTdhYmJkNjdiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDkwIEBACisyMDE4LTExLTA0ICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgUGFyc2luZyBz
dXBwb3J0IGZvciB0ZXh0LXVuZGVybGluZS1vZmZzZXQgYW5kIHRleHQtZGVjb3JhdGlvbi10aGlj
a25lc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5
MTI0MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEJl
Zm9yZSB3ZSBjYW4gaW1wbGVtZW50IHRoZSBwcm9wZXJ0aWVzIHByb3Blcmx5LCB3ZSBoYXZlIHRv
IHBhcnNlIHRoZW0uCisKKyAgICAgICAgaHR0cHM6Ly9naXRodWIuY29tL3czYy9jc3N3Zy1kcmFm
dHMvaXNzdWVzLzMxMTgjaXNzdWVjb21tZW50LTQzMjI5NzQ4MCBkZXNjcmliZXMgdGhlIGdyYW1t
YXI6CisgICAgICAgIHRleHQtdW5kZXJsaW5lLXBvc2l0aW9uOiBhdXRvIHwgWyBbIHVuZGVyIHwg
ZnJvbS1mb250XSB8fCBbIGxlZnQgfCByaWdodCBdIF0KKyAgICAgICAgdGV4dC11bmRlcmxpbmUt
b2Zmc2V0OiBhdXRvIHwgPGxlbmd0aD4KKyAgICAgICAgdGV4dC1kZWNvcmF0aW9uLXRoaWNrbmVz
czogYXV0byB8IGZyb20tZm9udCB8IDxsZW5ndGg+CisKKyAgICAgICAgVGhpcyBwYXRjaCBhbHNv
IHRha2VzIHRoZSBvcHBvcnR1bml0eSB0byB1cGRhdGUgdGhlIGdyYW1tYXIgb2YgdGV4dC11bmRl
cmxpbmUtcG9zaXRpb24gdG8gbWF0Y2ggdGhlIHNwZWMsCisgICAgICAgIGFuZCB0byBhZGQgYW4g
YWxpYXMgdG8gdGhlIHVucHJlZml4ZWQgdmVyc2lvbi4KKworICAgICAgICBXZSBzdGlsbCBkb24n
dCBzdXBwb3IgdGhlIGxlZnQgYW5kIHJpZ2h0IHZhbHVlcyBvbiB0ZXh0LXVuZGVybGluZS1wb3Np
dGlvbi4gV2Ugc2hvdWxkIGFkZCB0aG9zZSBldmVudHVhbGx5LgorCisgICAgICAgIFRlc3RzOiBm
YXN0L2NzczMtdGV4dC9jc3MzLXRleHQtZGVjb3JhdGlvbi90ZXh0LWRlY29yYXRpb24tdGhpY2tu
ZXNzLXBhcnNlLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1k
ZWNvcmF0aW9uL3RleHQtdW5kZXJsaW5lLW9mZnNldC1wYXJzZS5odG1sCisKKyAgICAgICAgKiBX
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogY3NzL0NTU0NvbXB1
dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjp0ZXh0VW5kZXJsaW5l
T2Zmc2V0VG9DU1NWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjp0ZXh0RGVjb3JhdGlvblRoaWNr
bmVzc1RvQ1NTVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6Q29tcHV0ZWRTdHlsZUV4dHJhY3Rv
cjo6dmFsdWVGb3JQcm9wZXJ0eWluU3R5bGUpOgorICAgICAgICAqIGNzcy9DU1NQcmltaXRpdmVW
YWx1ZU1hcHBpbmdzLmg6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6Q1NT
UHJpbWl0aXZlVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9w
ZXJhdG9yIFRleHRVbmRlcmxpbmVQb3NpdGlvbiBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpD
U1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgT3B0aW9uU2V0PFRleHRVbmRlcmxpbmVQb3NpdGlv
bj4gY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIGNzcy9DU1NQcm9wZXJ0aWVzLmpzb246Cisg
ICAgICAgICogY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW46CisgICAgICAgICogY3NzL1N0eWxlQnVp
bGRlckNvbnZlcnRlci5oOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVCdWlsZGVyQ29udmVydGVy
Ojpjb252ZXJ0VGV4dFVuZGVybGluZVBvc2l0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxl
QnVpbGRlckNvbnZlcnRlcjo6Y29udmVydFRleHRVbmRlcmxpbmVPZmZzZXQpOgorICAgICAgICAo
V2ViQ29yZTo6U3R5bGVCdWlsZGVyQ29udmVydGVyOjpjb252ZXJ0VGV4dERlY29yYXRpb25UaGlj
a25lc3MpOgorICAgICAgICAqIGNzcy9TdHlsZVJlc29sdmVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OnNob3VsZEFwcGx5UHJvcGVydHlJblBhcnNlT3JkZXIpOgorICAgICAgICAqIGNzcy9wYXJz
ZXIvQ1NTUHJvcGVydHlQYXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y29uc3VtZVRleHRV
bmRlcmxpbmVPZmZzZXQpOgorICAgICAgICAoV2ViQ29yZTo6Y29uc3VtZVRleHREZWNvcmF0aW9u
VGhpY2tuZXNzKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1Byb3BlcnR5UGFyc2VyOjpwYXJzZVNp
bmdsZVZhbHVlKToKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlclN0eWxlOjp0ZXh0VW5kZXJsaW5lUG9zaXRpb24gY29uc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU3R5bGU6OnRleHRVbmRlcmxpbmVPZmZzZXQgY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU3R5bGU6OnRleHREZWNvcmF0aW9uVGhpY2tu
ZXNzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclN0eWxlOjpzZXRUZXh0VW5kZXJs
aW5lUG9zaXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU3R5bGU6OnNldFRleHRVbmRl
cmxpbmVPZmZzZXQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU3R5bGU6OnNldFRleHREZWNv
cmF0aW9uVGhpY2tuZXNzKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclN0eWxlOjppbml0aWFs
VGV4dFVuZGVybGluZVBvc2l0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclN0eWxlOjpp
bml0aWFsVGV4dFVuZGVybGluZU9mZnNldCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTdHls
ZTo6aW5pdGlhbFRleHREZWNvcmF0aW9uVGhpY2tuZXNzKToKKyAgICAgICAgKiByZW5kZXJpbmcv
c3R5bGUvUmVuZGVyU3R5bGVDb25zdGFudHMuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUv
U3R5bGVSYXJlSW5oZXJpdGVkRGF0YS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJhcmVJ
bmhlcml0ZWREYXRhOjpTdHlsZVJhcmVJbmhlcml0ZWREYXRhKToKKyAgICAgICAgKFdlYkNvcmU6
OlN0eWxlUmFyZUluaGVyaXRlZERhdGE6Om9wZXJhdG9yPT0gY29uc3QpOgorICAgICAgICAqIHJl
bmRlcmluZy9zdHlsZS9TdHlsZVJhcmVJbmhlcml0ZWREYXRhLmg6CisgICAgICAgICogcmVuZGVy
aW5nL3N0eWxlL1RleHREZWNvcmF0aW9uVGhpY2tuZXNzLmg6IEFkZGVkLgorICAgICAgICAoV2Vi
Q29yZTo6VGV4dERlY29yYXRpb25UaGlja25lc3M6OmNyZWF0ZVdpdGhBdXRvKToKKyAgICAgICAg
KFdlYkNvcmU6OlRleHREZWNvcmF0aW9uVGhpY2tuZXNzOjpjcmVhdGVGcm9tRm9udCk6CisgICAg
ICAgIChXZWJDb3JlOjpUZXh0RGVjb3JhdGlvblRoaWNrbmVzczo6Y3JlYXRlV2l0aExlbmd0aCk6
CisgICAgICAgIChXZWJDb3JlOjpUZXh0RGVjb3JhdGlvblRoaWNrbmVzczo6aXNBdXRvIGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OlRleHREZWNvcmF0aW9uVGhpY2tuZXNzOjppc0Zyb21Gb250
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlRleHREZWNvcmF0aW9uVGhpY2tuZXNzOjppc0xl
bmd0aCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpUZXh0RGVjb3JhdGlvblRoaWNrbmVzczo6
c2V0TGVuZ3RoVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6VGV4dERlY29yYXRpb25UaGlja25l
c3M6Omxlbmd0aFZhbHVlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlRleHREZWNvcmF0aW9u
VGhpY2tuZXNzOjpvcGVyYXRvcj09IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlRleHREZWNv
cmF0aW9uVGhpY2tuZXNzOjpvcGVyYXRvciE9IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlRl
eHREZWNvcmF0aW9uVGhpY2tuZXNzOjpUZXh0RGVjb3JhdGlvblRoaWNrbmVzcyk6CisgICAgICAg
IChXZWJDb3JlOjpvcGVyYXRvcjw8KToKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvVGV4dFVu
ZGVybGluZU9mZnNldC5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlRleHRVbmRlcmxpbmVP
ZmZzZXQ6OmNyZWF0ZVdpdGhBdXRvKToKKyAgICAgICAgKFdlYkNvcmU6OlRleHRVbmRlcmxpbmVP
ZmZzZXQ6OmNyZWF0ZVdpdGhMZW5ndGgpOgorICAgICAgICAoV2ViQ29yZTo6VGV4dFVuZGVybGlu
ZU9mZnNldDo6aXNBdXRvIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlRleHRVbmRlcmxpbmVP
ZmZzZXQ6OmlzTGVuZ3RoIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlRleHRVbmRlcmxpbmVP
ZmZzZXQ6OnNldExlbmd0aFZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OlRleHRVbmRlcmxpbmVP
ZmZzZXQ6Omxlbmd0aFZhbHVlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlRleHRVbmRlcmxp
bmVPZmZzZXQ6Omxlbmd0aE9yIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlRleHRVbmRlcmxp
bmVPZmZzZXQ6Om9wZXJhdG9yPT0gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6VGV4dFVuZGVy
bGluZU9mZnNldDo6b3BlcmF0b3IhPSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpUZXh0VW5k
ZXJsaW5lT2Zmc2V0OjpUZXh0VW5kZXJsaW5lT2Zmc2V0KToKKyAgICAgICAgKFdlYkNvcmU6Om9w
ZXJhdG9yPDwpOgorICAgICAgICAqIHN0eWxlL0lubGluZVRleHRCb3hTdHlsZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpjb21wdXRlVW5kZXJsaW5lT2Zmc2V0KToKKyAgICAgICAgKiBzdHlsZS9J
bmxpbmVUZXh0Qm94U3R5bGUuaDoKKwogMjAxOC0xMS0wNCAgWmFsYW4gQnVqdGFzICA8emFsYW5A
YXBwbGUuY29tPgogCiAgICAgICAgIFtpT1NdIElzc3VlIGluaXRpYWwgcGFpbnQgc29vbiBhZnRl
ciB0aGUgdmlzdWFsbHlOb25FbXB0eSBtaWxlc3RvbmUgaXMgZmlyZWQuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZmZlNTIzYjI3
ZWIwY2IyNzJhN2VkODlkNzQ0YThlOTZiYjc2ODZjNy4uMjJhMGI0YzAxYjc1N2UyNTk0MjdmOWQ4
YThmNzg2MDk3YzI5MTQ3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNjMxLDYgKzYzMSw4IEBACiAJCTFDMjRFRUE1MUM3MjlD
RTQwMDgwRjhGQyAvKiBGb250RmFjZVNldC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMUMyNEVFQTMxQzcyOUNFNDAwODBGOEZDIC8qIEZvbnRGYWNlU2V0
LmggKi87IH07CiAJCTFDMjRFRUE5MUM3MkE3QjQwMDgwRjhGQyAvKiBKU0ZvbnRGYWNlU2V0Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQzI0RUVBNzFD
NzJBN0I0MDA4MEY4RkMgLyogSlNGb250RmFjZVNldC5oICovOyB9OwogCQkxQzY2MjYxMTFDNkU3
Q0E2MDBBQjUyN0MgLyogRm9udEZhY2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDFDNjYyNjBGMUM2RTdDQTYwMEFCNTI3QyAvKiBGb250RmFjZS5oICov
OyB9OworCQkxQzczQTcxMzIxODU3NTdFMDA0Q0NFQTUgLyogVGV4dFVuZGVybGluZU9mZnNldC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUNCNkI0RkIy
MTdCODM5NDAwOTNCOUNEIC8qIFRleHRVbmRlcmxpbmVPZmZzZXQuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQkxQzczQTcxNTIxODU3NTg3MDA0Q0NF
QTUgLyogVGV4dERlY29yYXRpb25UaGlja25lc3MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDQjZCNEY4MjE3QjgzOTMwMDkzQjlDRCAvKiBUZXh0RGVj
b3JhdGlvblRoaWNrbmVzcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCTFDODFCOTVBMEU5NzMzMDgwMDI2NkUwNyAvKiBJbnNwZWN0b3JDb250cm9s
bGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQzgx
Qjk1NjBFOTczMzA4MDAyNjZFMDcgLyogSW5zcGVjdG9yQ29udHJvbGxlci5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTFDODFCOTVDMEU5NzMzMDgw
MDI2NkUwNyAvKiBJbnNwZWN0b3JDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDFDODFCOTU4MEU5NzMzMDgwMDI2NkUwNyAvKiBJbnNwZWN0b3JD
bGllbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQkxQ0ExOUUxNjBEQzI1NUNBMDA2NUE5OTQgLyogRXZlbnRMb29wLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0ExOUUxNTBEQzI1NUNBMDA2NUE5OTQg
LyogRXZlbnRMb29wLmggKi87IH07CkBAIC02Mzg2LDYgKzYzODgsOCBAQAogCQkxQ0FGMzQ3RTBB
NkM0MDUyMDBBQkUwNkUgLyogV2ViU2NyaXB0T2JqZWN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFdlYlNjcmlwdE9iamVjdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkxQ0FGMzQ3RjBBNkM0MDUyMDBBQkUwNkUgLyogV2ViU2NyaXB0T2JqZWN0Lm1tICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViU2NyaXB0T2JqZWN0Lm1tOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQ0FGMzQ4MDBBNkM0MDUyMDBBQkUwNkUgLyog
V2ViU2NyaXB0T2JqZWN0UHJpdmF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBXZWJTY3JpcHRPYmplY3RQcml2YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTFDQjZCNEY4MjE3QjgzOTMwMDkzQjlDRCAvKiBUZXh0RGVjb3JhdGlvblRoaWNrbmVzcy5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBUZXh0RGVjb3JhdGlvblRoaWNrbmVzcy5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQkxQ0I2QjRGQjIxN0I4Mzk0MDA5M0I5Q0QgLyogVGV4dFVuZGVybGluZU9m
ZnNldC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBUZXh0VW5kZXJsaW5lT2Zmc2V0Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTFDQ0RGNUJCMTk5MDMzMjQwMEJDRUJBRCAvKiBTVkdUb09URkZv
bnRDb252ZXJzaW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNW
R1RvT1RGRm9udENvbnZlcnNpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkx
Q0NERjVCQzE5OTAzMzI0MDBCQ0VCQUQgLyogU1ZHVG9PVEZGb250Q29udmVyc2lvbi5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTVkdUb09URkZvbnRDb252ZXJzaW9uLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDREQ0NUU0MEJBOUM4NDYwMEY5MDE0NyAvKiBE
ZWJ1Z1JlbGVhc2UueGNjb25maWcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnhjY29uZmlnOyBwYXRoID0gRGVi
dWdSZWxlYXNlLnhjY29uZmlnOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTU1NzEs
OSArMTU1NzUsOSBAQAogCQkJCTMxMzU5MTAxMUU3RERDNjAwMEYzMDYzMCAvKiBSVENJY2VHYXRo
ZXJpbmdTdGF0ZS5oICovLAogCQkJCTMxMzU5MTAyMUU3RERDNjAwMEYzMDYzMCAvKiBSVENJY2VU
cmFuc3BvcnRQb2xpY3kuaCAqLywKIAkJCQkzMTM1OTEwMzFFN0REQzYwMDBGMzA2MzAgLyogUlRD
SWNlVHJhbnNwb3J0U3RhdGUuaCAqLywKLQkJCQk0MTJCQTVGRTIxOEM2NTE4MDAzNjU0NzQgLyog
UlRDUE11eFBvbGljeS5oICovLAogCQkJCTA3MjIxQkFBMTdDRjBBRDQwMDg0OEU1MSAvKiBSVENQ
ZWVyQ29ubmVjdGlvbkhhbmRsZXJDbGllbnQuaCAqLywKIAkJCQk0MUE0OEE5RDFFODMxMkVCMDBE
MkFDMkQgLyogUlRDUGVlckNvbm5lY3Rpb25TdGF0ZS5oICovLAorCQkJCTQxMkJBNUZFMjE4QzY1
MTgwMDM2NTQ3NCAvKiBSVENQTXV4UG9saWN5LmggKi8sCiAJCQkJMzFFQjU0REQxRTdEQzc0NDAw
QzE2MjNCIC8qIFJUQ1J0cFRyYW5zY2VpdmVyRGlyZWN0aW9uLmggKi8sCiAJCQkJMzEzNTkxMDQx
RTdEREM2MDAwRjMwNjMwIC8qIFJUQ1NkcFR5cGUuaCAqLywKIAkJCQkwNzIyMUJBQjE3Q0YwQUQ0
MDA4NDhFNTEgLyogUlRDU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvci5jcHAgKi8sCkBAIC0y
NDYxNyw3ICsyNDYyMSw5IEBACiAJCQkJQkMyMjc0NzUwRTgzNjZFMjAwRTdGOTc1IC8qIFNWR1Jl
bmRlclN0eWxlLmggKi8sCiAJCQkJQkMyMjc0NzYwRTgzNjZFMjAwRTdGOTc1IC8qIFNWR1JlbmRl
clN0eWxlRGVmcy5jcHAgKi8sCiAJCQkJQkMyMjc0NzcwRTgzNjZFMjAwRTdGOTc1IC8qIFNWR1Jl
bmRlclN0eWxlRGVmcy5oICovLAorCQkJCTFDQjZCNEY4MjE3QjgzOTMwMDkzQjlDRCAvKiBUZXh0
RGVjb3JhdGlvblRoaWNrbmVzcy5oICovLAogCQkJCTQ0OEIxQjc4MEYzQTJGOUIwMDQ3QTlFMiAv
KiBUZXh0U2l6ZUFkanVzdG1lbnQuaCAqLywKKwkJCQkxQ0I2QjRGQjIxN0I4Mzk0MDA5M0I5Q0Qg
LyogVGV4dFVuZGVybGluZU9mZnNldC5oICovLAogCQkJCTBGMTVFRDU5MUI3RUM3QzUwMEVEREZF
QiAvKiBXaWxsQ2hhbmdlRGF0YS5jcHAgKi8sCiAJCQkJMEYxNUVENUExQjdFQzdDNTAwRURERkVC
IC8qIFdpbGxDaGFuZ2VEYXRhLmggKi8sCiAJCQkpOwpAQCAtMzEyODAsNiArMzEyODYsNyBAQAog
CQkJCTkzNDNDQjgyMTJGMjVFNTEwMDMzQzVFRSAvKiBUZXh0Q29kZWNVVEY4LmggaW4gSGVhZGVy
cyAqLywKIAkJCQkxNDJCOTdDQTEzMTM4OTQzMDA4QkVGNEIgLyogVGV4dENvbnRyb2xJbm5lckVs
ZW1lbnRzLmggaW4gSGVhZGVycyAqLywKIAkJCQk1ODJERTMyNTFDMzBDODU0MDBCRTAyQTggLyog
VGV4dERlY29yYXRpb25QYWludGVyLmggaW4gSGVhZGVycyAqLywKKwkJCQkxQzczQTcxNTIxODU3
NTg3MDA0Q0NFQTUgLyogVGV4dERlY29yYXRpb25UaGlja25lc3MuaCBpbiBIZWFkZXJzICovLAog
CQkJCTk3QkM4NEI0MTIzNzExODAwMDBDNjE2MSAvKiBUZXh0RG9jdW1lbnQuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTk3QkM4NDg0MTIzNkZEOTMwMDBDNjE2MSAvKiBUZXh0RG9jdW1lbnRQYXJzZXIu
aCBpbiBIZWFkZXJzICovLAogCQkJCUIyQzNEQTQ3MEQwMDZDMUQwMEVGNkYyNiAvKiBUZXh0RW5j
b2RpbmcuaCBpbiBIZWFkZXJzICovLApAQCAtMzEzMTAsNiArMzEzMTcsNyBAQAogCQkJCTA3Njk3
MDg3MTQ2M0FEODcwMEY1MDJDRiAvKiBUZXh0VHJhY2tMaXN0LmggaW4gSGVhZGVycyAqLywKIAkJ
CQlCMUFENEU3NDEzQTEyQTQ2MDA4NDZCMjcgLyogVGV4dFRyYWNrTG9hZGVyLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlDRDhCNUE0OTE4MEUxMzhCMDA4QjhFNjUgLyogVGV4dFRyYWNrTWVkaWFTb3Vy
Y2UuaCBpbiBIZWFkZXJzICovLAorCQkJCTFDNzNBNzEzMjE4NTc1N0UwMDRDQ0VBNSAvKiBUZXh0
VW5kZXJsaW5lT2Zmc2V0LmggaW4gSGVhZGVycyAqLywKIAkJCQkyOUZBRjRCNjE5NUFCMDg5MDBB
NTIyREMgLyogVGV4dFVuZG9JbnNlcnRpb25NYXJrdXBNYWMuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTQ5ODc3MEYxMTI0MkM1MzUwMDIyMjZCQSAvKiBUZXh0dXJlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlDRDlEODI3NjFDN0FFNTM1MDA2RkYwNjYgLyogVGV4dHVyZUNhY2hlQ1YuaCBpbiBIZWFkZXJz
ICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNs
YXJhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0
aW9uLmNwcAppbmRleCAwNzQ5ZDlhNGQ2ODExNTZjZTY2OTcyOWQ5MWQ4MGIzM2JhYjYxOGE0Li4y
ZWY2NjI5NTlhOTRjN2VkZmI5OWQyOGY3OTNmYjdhMGU1ZmZiNjc1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcApAQCAtMjE1LDcg
KzIxNSw3IEBAIHN0YXRpYyBjb25zdCBDU1NQcm9wZXJ0eUlEIGNvbXB1dGVkUHJvcGVydGllc1td
ID0gewogICAgIENTU1Byb3BlcnR5V2Via2l0VGV4dERlY29yYXRpb25TdHlsZSwKICAgICBDU1NQ
cm9wZXJ0eVdlYmtpdFRleHREZWNvcmF0aW9uQ29sb3IsCiAgICAgQ1NTUHJvcGVydHlXZWJraXRU
ZXh0RGVjb3JhdGlvblNraXAsCi0gICAgQ1NTUHJvcGVydHlXZWJraXRUZXh0VW5kZXJsaW5lUG9z
aXRpb24sCisgICAgQ1NTUHJvcGVydHlUZXh0VW5kZXJsaW5lUG9zaXRpb24sCiAgICAgQ1NTUHJv
cGVydHlUZXh0SW5kZW50LAogICAgIENTU1Byb3BlcnR5VGV4dFJlbmRlcmluZywKICAgICBDU1NQ
cm9wZXJ0eVRleHRTaGFkb3csCkBAIC0xODAyLDYgKzE4MDIsMjQgQEAgc3RhdGljIFJlZjxDU1NW
YWx1ZT4gcmVuZGVyVGV4dERlY29yYXRpb25Ta2lwRmxhZ3NUb0NTU1ZhbHVlKE9wdGlvblNldDxU
ZXh0RGVjb3IKICAgICByZXR1cm4gQ1NTVmFsdWVQb29sOjpzaW5nbGV0b24oKS5jcmVhdGVFeHBs
aWNpdEluaXRpYWxWYWx1ZSgpOwogfQogCitzdGF0aWMgUmVmPENTU1ZhbHVlPiB0ZXh0VW5kZXJs
aW5lT2Zmc2V0VG9DU1NWYWx1ZShjb25zdCBUZXh0VW5kZXJsaW5lT2Zmc2V0JiB0ZXh0VW5kZXJs
aW5lT2Zmc2V0KQoreworICAgIGlmICh0ZXh0VW5kZXJsaW5lT2Zmc2V0LmlzQXV0bygpKQorICAg
ICAgICByZXR1cm4gQ1NTVmFsdWVQb29sOjpzaW5nbGV0b24oKS5jcmVhdGVJZGVudGlmaWVyVmFs
dWUoQ1NTVmFsdWVBdXRvKTsKKyAgICBBU1NFUlQodGV4dFVuZGVybGluZU9mZnNldC5pc0xlbmd0
aCgpKTsKKyAgICByZXR1cm4gQ1NTVmFsdWVQb29sOjpzaW5nbGV0b24oKS5jcmVhdGVWYWx1ZSh0
ZXh0VW5kZXJsaW5lT2Zmc2V0Lmxlbmd0aFZhbHVlKCksIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1Nf
UFgpOworfQorCitzdGF0aWMgUmVmPENTU1ZhbHVlPiB0ZXh0RGVjb3JhdGlvblRoaWNrbmVzc1Rv
Q1NTVmFsdWUoY29uc3QgVGV4dERlY29yYXRpb25UaGlja25lc3MmIHRleHREZWNvcmF0aW9uVGhp
Y2tuZXNzKQoreworICAgIGlmICh0ZXh0RGVjb3JhdGlvblRoaWNrbmVzcy5pc0F1dG8oKSkKKyAg
ICAgICAgcmV0dXJuIENTU1ZhbHVlUG9vbDo6c2luZ2xldG9uKCkuY3JlYXRlSWRlbnRpZmllclZh
bHVlKENTU1ZhbHVlQXV0byk7CisgICAgaWYgKHRleHREZWNvcmF0aW9uVGhpY2tuZXNzLmlzRnJv
bUZvbnQoKSkKKyAgICAgICAgcmV0dXJuIENTU1ZhbHVlUG9vbDo6c2luZ2xldG9uKCkuY3JlYXRl
SWRlbnRpZmllclZhbHVlKENTU1ZhbHVlRnJvbUZvbnQpOworICAgIEFTU0VSVCh0ZXh0RGVjb3Jh
dGlvblRoaWNrbmVzcy5pc0xlbmd0aCgpKTsKKyAgICByZXR1cm4gQ1NTVmFsdWVQb29sOjpzaW5n
bGV0b24oKS5jcmVhdGVWYWx1ZSh0ZXh0RGVjb3JhdGlvblRoaWNrbmVzcy5sZW5ndGhWYWx1ZSgp
LCBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX1BYKTsKK30KKwogc3RhdGljIFJlZjxDU1NWYWx1ZT4g
cmVuZGVyRW1waGFzaXNQb3NpdGlvbkZsYWdzVG9DU1NWYWx1ZShPcHRpb25TZXQ8VGV4dEVtcGhh
c2lzUG9zaXRpb24+IHRleHRFbXBoYXNpc1Bvc2l0aW9uKQogewogICAgIEFTU0VSVCghKCh0ZXh0
RW1waGFzaXNQb3NpdGlvbiAmIFRleHRFbXBoYXNpc1Bvc2l0aW9uOjpPdmVyKSAmJiAodGV4dEVt
cGhhc2lzUG9zaXRpb24gJiBUZXh0RW1waGFzaXNQb3NpdGlvbjo6VW5kZXIpKSk7CkBAIC0zMzMx
LDggKzMzNDksMTIgQEAgUmVmUHRyPENTU1ZhbHVlPiBDb21wdXRlZFN0eWxlRXh0cmFjdG9yOjp2
YWx1ZUZvclByb3BlcnR5aW5TdHlsZShjb25zdCBSZW5kZXJTdHkKICAgICAgICAgICAgIHJldHVy
biBjdXJyZW50Q29sb3JPclZhbGlkQ29sb3IoJnN0eWxlLCBzdHlsZS50ZXh0RGVjb3JhdGlvbkNv
bG9yKCkpOwogICAgICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0VGV4dERlY29yYXRpb25Ta2lw
OgogICAgICAgICAgICAgcmV0dXJuIHJlbmRlclRleHREZWNvcmF0aW9uU2tpcEZsYWdzVG9DU1NW
YWx1ZShzdHlsZS50ZXh0RGVjb3JhdGlvblNraXAoKSk7Ci0gICAgICAgIGNhc2UgQ1NTUHJvcGVy
dHlXZWJraXRUZXh0VW5kZXJsaW5lUG9zaXRpb246CisgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlU
ZXh0VW5kZXJsaW5lUG9zaXRpb246CiAgICAgICAgICAgICByZXR1cm4gY3NzVmFsdWVQb29sLmNy
ZWF0ZVZhbHVlKHN0eWxlLnRleHRVbmRlcmxpbmVQb3NpdGlvbigpKTsKKyAgICAgICAgY2FzZSBD
U1NQcm9wZXJ0eVRleHRVbmRlcmxpbmVPZmZzZXQ6CisgICAgICAgICAgICByZXR1cm4gdGV4dFVu
ZGVybGluZU9mZnNldFRvQ1NTVmFsdWUoc3R5bGUudGV4dFVuZGVybGluZU9mZnNldCgpKTsKKyAg
ICAgICAgY2FzZSBDU1NQcm9wZXJ0eVRleHREZWNvcmF0aW9uVGhpY2tuZXNzOgorICAgICAgICAg
ICAgcmV0dXJuIHRleHREZWNvcmF0aW9uVGhpY2tuZXNzVG9DU1NWYWx1ZShzdHlsZS50ZXh0RGVj
b3JhdGlvblRoaWNrbmVzcygpKTsKICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdFRleHRE
ZWNvcmF0aW9uc0luRWZmZWN0OgogICAgICAgICAgICAgcmV0dXJuIHJlbmRlclRleHREZWNvcmF0
aW9uRmxhZ3NUb0NTU1ZhbHVlKHN0eWxlLnRleHREZWNvcmF0aW9uc0luRWZmZWN0KCkpOwogICAg
ICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0VGV4dEZpbGxDb2xvcjoKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmggYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWVNYXBwaW5ncy5oCmluZGV4IDc4NzVmZGE3ZTBkMTM4
YWI5ZDFlZWJlMjI3MGJkODAxM2JjYTc2NzcuLmM5NWZmNjVhODM1YmE3NjQzZWRiOGQyYmIyNWQx
NmYxNmJjNjIxMTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVW
YWx1ZU1hcHBpbmdzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVl
TWFwcGluZ3MuaApAQCAtMjYzNiw0MiArMjYzNiw0MSBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQ
cmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgVGV4dERlY29yYXRpb25TdHlsZSgpIGNvbnN0CiAgICAg
cmV0dXJuIFRleHREZWNvcmF0aW9uU3R5bGU6OlNvbGlkOwogfQogCi10ZW1wbGF0ZTw+IGlubGlu
ZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoT3B0aW9uU2V0PFRleHRVbmRl
cmxpbmVQb3NpdGlvbj4gZSkKK3RlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpD
U1NQcmltaXRpdmVWYWx1ZShUZXh0VW5kZXJsaW5lUG9zaXRpb24gcG9zaXRpb24pCiAgICAgOiBD
U1NWYWx1ZShQcmltaXRpdmVDbGFzcykKIHsKICAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NT
X1ZBTFVFX0lEOwotICAgIHN3aXRjaCAoc3RhdGljX2Nhc3Q8VGV4dFVuZGVybGluZVBvc2l0aW9u
PihlLnRvUmF3KCkpKSB7CisgICAgc3dpdGNoIChwb3NpdGlvbikgewogICAgIGNhc2UgVGV4dFVu
ZGVybGluZVBvc2l0aW9uOjpBdXRvOgogICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1
ZUF1dG87CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2UgVGV4dFVuZGVybGluZVBvc2l0aW9uOjpB
bHBoYWJldGljOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUFscGhhYmV0aWM7
Ci0gICAgICAgIGJyZWFrOwogICAgIGNhc2UgVGV4dFVuZGVybGluZVBvc2l0aW9uOjpVbmRlcjoK
ICAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVVbmRlcjsKICAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBUZXh0VW5kZXJsaW5lUG9zaXRpb246OkZyb21Gb250OgorICAgICAgICBtX3Zh
bHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUZyb21Gb250OworICAgICAgICBicmVhazsKICAgICB9CiAK
ICAgICAvLyBGSVhNRTogSW1wbGVtZW50IHN1cHBvcnQgZm9yICd1bmRlciBsZWZ0JyBhbmQgJ3Vu
ZGVyIHJpZ2h0JyB2YWx1ZXMuCiB9CiAKLXRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZh
bHVlOjpvcGVyYXRvciBPcHRpb25TZXQ8VGV4dFVuZGVybGluZVBvc2l0aW9uPigpIGNvbnN0Cit0
ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgVGV4dFVuZGVybGlu
ZVBvc2l0aW9uKCkgY29uc3QKIHsKICAgICBBU1NFUlQoaXNWYWx1ZUlEKCkpOwogCiAgICAgc3dp
dGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKICAgICBjYXNlIENTU1ZhbHVlQXV0bzoKICAgICAgICAg
cmV0dXJuIFRleHRVbmRlcmxpbmVQb3NpdGlvbjo6QXV0bzsKLSAgICBjYXNlIENTU1ZhbHVlQWxw
aGFiZXRpYzoKLSAgICAgICAgcmV0dXJuIFRleHRVbmRlcmxpbmVQb3NpdGlvbjo6QWxwaGFiZXRp
YzsKICAgICBjYXNlIENTU1ZhbHVlVW5kZXI6CiAgICAgICAgIHJldHVybiBUZXh0VW5kZXJsaW5l
UG9zaXRpb246OlVuZGVyOworICAgIGNhc2UgQ1NTVmFsdWVGcm9tRm9udDoKKyAgICAgICAgcmV0
dXJuIFRleHRVbmRlcmxpbmVQb3NpdGlvbjo6RnJvbUZvbnQ7CiAgICAgZGVmYXVsdDoKICAgICAg
ICAgYnJlYWs7CiAgICAgfQogCiAgICAgLy8gRklYTUU6IEltcGxlbWVudCBzdXBwb3J0IGZvciAn
dW5kZXIgbGVmdCcgYW5kICd1bmRlciByaWdodCcgdmFsdWVzLgotCiAgICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7CiAgICAgcmV0dXJuIFRleHRVbmRlcmxpbmVQb3NpdGlvbjo6QXV0bzsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0aWVzLmpzb24gYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTUHJvcGVydGllcy5qc29uCmluZGV4IGJjNmI1NzhiOGRlMGM0NTIwZjhh
OTM1OTU3NTE1MGE5MGY3NWRlNWUuLjI4ZDg0ODJkNjZjZjg0ODMxZjM2ODdmNmNhZjhkMTk5ZjQ2
MjBlNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0aWVzLmpzb24K
KysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Byb3BlcnRpZXMuanNvbgpAQCAtNTkyNiwxNyAr
NTkyNiw0NSBAQAogICAgICAgICAgICAgICAgICJ1cmwiOiAiaHR0cHM6Ly93d3cudzMub3JnL1RS
L2Nzcy10ZXh0LWRlY29yLTMvI3RleHQtZGVjb3JhdGlvbi1za2lwIgogICAgICAgICAgICAgfQog
ICAgICAgICB9LAotICAgICAgICAiLXdlYmtpdC10ZXh0LXVuZGVybGluZS1wb3NpdGlvbiI6IHsK
KyAgICAgICAgInRleHQtdW5kZXJsaW5lLXBvc2l0aW9uIjogeworICAgICAgICAgICAgImNvZGVn
ZW4tcHJvcGVydGllcyI6IHsKKyAgICAgICAgICAgICAgICAiYWxpYXNlcyI6IFsKKyAgICAgICAg
ICAgICAgICAgICAgIi13ZWJraXQtdGV4dC11bmRlcmxpbmUtcG9zaXRpb24iCisgICAgICAgICAg
ICAgICAgXQorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICJpbmhlcml0ZWQiOiB0cnVlLAor
ICAgICAgICAgICAgInN0YXR1cyI6IHsKKyAgICAgICAgICAgICAgICAic3RhdHVzIjogImV4cGVy
aW1lbnRhbCIKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICAic3BlY2lmaWNhdGlvbiI6IHsK
KyAgICAgICAgICAgICAgICAiY2F0ZWdvcnkiOiAiY3NzLXRleHQtZGVjb3IiLAorICAgICAgICAg
ICAgICAgICJ1cmwiOiAiaHR0cHM6Ly93d3cudzMub3JnL1RSL2Nzcy10ZXh0LWRlY29yLTMvI3Rl
eHQtdW5kZXJsaW5lLXBvc2l0aW9uLXByb3BlcnR5IgorICAgICAgICAgICAgfQorICAgICAgICB9
LAorICAgICAgICAidGV4dC11bmRlcmxpbmUtb2Zmc2V0IjogeworICAgICAgICAgICAgImluaGVy
aXRlZCI6IHRydWUsCisgICAgICAgICAgICAiY29kZWdlbi1wcm9wZXJ0aWVzIjogeworICAgICAg
ICAgICAgICAgICJjb252ZXJ0ZXIiOiAiVGV4dFVuZGVybGluZU9mZnNldCIKKyAgICAgICAgICAg
IH0sCisgICAgICAgICAgICAic3RhdHVzIjogeworICAgICAgICAgICAgICAgICJzdGF0dXMiOiAi
ZXhwZXJpbWVudGFsIgorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICJzcGVjaWZpY2F0aW9u
IjogeworICAgICAgICAgICAgICAgICJjYXRlZ29yeSI6ICJjc3MtdGV4dC1kZWNvciIsCisgICAg
ICAgICAgICAgICAgInVybCI6ICJodHRwczovL3d3dy53My5vcmcvVFIvY3NzLXRleHQtZGVjb3It
NC8jdW5kZXJsaW5lLW9mZnNldCIKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSwKKyAgICAgICAg
InRleHQtZGVjb3JhdGlvbi10aGlja25lc3MiOiB7CiAgICAgICAgICAgICAiaW5oZXJpdGVkIjog
dHJ1ZSwKICAgICAgICAgICAgICJjb2RlZ2VuLXByb3BlcnRpZXMiOiB7Ci0gICAgICAgICAgICAg
ICAgImNvbnZlcnRlciI6ICJUZXh0VW5kZXJsaW5lUG9zaXRpb24iCisgICAgICAgICAgICAgICAg
ImNvbnZlcnRlciI6ICJUZXh0RGVjb3JhdGlvblRoaWNrbmVzcyIKICAgICAgICAgICAgIH0sCiAg
ICAgICAgICAgICAic3RhdHVzIjogewogICAgICAgICAgICAgICAgICJzdGF0dXMiOiAiZXhwZXJp
bWVudGFsIgogICAgICAgICAgICAgfSwKICAgICAgICAgICAgICJzcGVjaWZpY2F0aW9uIjogewog
ICAgICAgICAgICAgICAgICJjYXRlZ29yeSI6ICJjc3MtdGV4dC1kZWNvciIsCi0gICAgICAgICAg
ICAgICAgInVybCI6ICJodHRwczovL3d3dy53My5vcmcvVFIvY3NzLXRleHQtZGVjb3ItMy8jdGV4
dC11bmRlcmxpbmUtcG9zaXRpb24iCisgICAgICAgICAgICAgICAgInVybCI6ICJodHRwczovL3d3
dy53My5vcmcvVFIvY3NzLXRleHQtZGVjb3ItNC8jdGV4dC1kZWNvcmF0aW9uLXRoaWNrbmVzcyIK
ICAgICAgICAgICAgIH0KICAgICAgICAgfSwKICAgICAgICAgIi13ZWJraXQtdGV4dC1kZWNvcmF0
aW9ucy1pbi1lZmZlY3QiOiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFs
dWVLZXl3b3Jkcy5pbiBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluCmlu
ZGV4IDQ2MzIzNjNmOTQxMjk3YTYxMGJmNmI2Nzc4MGE4NzRmYzk1MDBhMzYuLjkwZjkxMmFjZWI1
NWExYWZkYmFhYjA5NWI2MmZiYzU0YWJiM2QyNTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1
ZUtleXdvcmRzLmluCkBAIC0xNDAzLDMgKzE0MDMsNiBAQCBzdGFuZGFsb25lCiBtaW5pbWFsLXVp
CiBicm93c2VyCiAjZW5kaWYKKworLy8gdGV4dC1kZWNvcmF0aW9uLXRoaWNrbmVzcywgdGV4dC11
bmRlcmxpbmUtb2Zmc2V0Citmcm9tLWZvbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9TdHlsZUJ1aWxkZXJDb252ZXJ0ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZUJ1aWxk
ZXJDb252ZXJ0ZXIuaAppbmRleCA2M2ViMTMxNTU2YTVmNjNhMGVjMWYwNWVjYTdjMjIwZTRhODE2
ZjcxLi4wZTgzOGJiNWQ4ZGYwMzM1NjQzODJkNTRmMmMzMThhMWZmMTIzODc4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVCdWlsZGVyQ29udmVydGVyLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvY3NzL1N0eWxlQnVpbGRlckNvbnZlcnRlci5oCkBAIC04Nyw3ICs4Nyw5IEBAIHB1
YmxpYzoKICAgICBzdGF0aWMgaW50IGNvbnZlcnRNYXJxdWVlUmVwZXRpdGlvbihTdHlsZVJlc29s
dmVyJiwgY29uc3QgQ1NTVmFsdWUmKTsKICAgICBzdGF0aWMgaW50IGNvbnZlcnRNYXJxdWVlU3Bl
ZWQoU3R5bGVSZXNvbHZlciYsIGNvbnN0IENTU1ZhbHVlJik7CiAgICAgc3RhdGljIFJlZjxRdW90
ZXNEYXRhPiBjb252ZXJ0UXVvdGVzKFN0eWxlUmVzb2x2ZXImLCBjb25zdCBDU1NWYWx1ZSYpOwot
ICAgIHN0YXRpYyBPcHRpb25TZXQ8VGV4dFVuZGVybGluZVBvc2l0aW9uPiBjb252ZXJ0VGV4dFVu
ZGVybGluZVBvc2l0aW9uKFN0eWxlUmVzb2x2ZXImLCBjb25zdCBDU1NWYWx1ZSYpOworICAgIHN0
YXRpYyBUZXh0VW5kZXJsaW5lUG9zaXRpb24gY29udmVydFRleHRVbmRlcmxpbmVQb3NpdGlvbihT
dHlsZVJlc29sdmVyJiwgY29uc3QgQ1NTVmFsdWUmKTsKKyAgICBzdGF0aWMgVGV4dFVuZGVybGlu
ZU9mZnNldCBjb252ZXJ0VGV4dFVuZGVybGluZU9mZnNldChTdHlsZVJlc29sdmVyJiwgY29uc3Qg
Q1NTVmFsdWUmKTsKKyAgICBzdGF0aWMgVGV4dERlY29yYXRpb25UaGlja25lc3MgY29udmVydFRl
eHREZWNvcmF0aW9uVGhpY2tuZXNzKFN0eWxlUmVzb2x2ZXImLCBjb25zdCBDU1NWYWx1ZSYpOwog
ICAgIHN0YXRpYyBSZWZQdHI8U3R5bGVSZWZsZWN0aW9uPiBjb252ZXJ0UmVmbGVjdGlvbihTdHls
ZVJlc29sdmVyJiwgY29uc3QgQ1NTVmFsdWUmKTsKICAgICBzdGF0aWMgSW50U2l6ZSBjb252ZXJ0
SW5pdGlhbExldHRlcihTdHlsZVJlc29sdmVyJiwgY29uc3QgQ1NTVmFsdWUmKTsKICAgICBzdGF0
aWMgZmxvYXQgY29udmVydFRleHRTdHJva2VXaWR0aChTdHlsZVJlc29sdmVyJiwgY29uc3QgQ1NT
VmFsdWUmKTsKQEAgLTYzNywxNiArNjM5LDQwIEBAIGlubGluZSBSZWY8UXVvdGVzRGF0YT4gU3R5
bGVCdWlsZGVyQ29udmVydGVyOjpjb252ZXJ0UXVvdGVzKFN0eWxlUmVzb2x2ZXImLCBjb25zCiAg
ICAgcmV0dXJuIFF1b3Rlc0RhdGE6OmNyZWF0ZShxdW90ZXMpOwogfQogCi1pbmxpbmUgT3B0aW9u
U2V0PFRleHRVbmRlcmxpbmVQb3NpdGlvbj4gU3R5bGVCdWlsZGVyQ29udmVydGVyOjpjb252ZXJ0
VGV4dFVuZGVybGluZVBvc2l0aW9uKFN0eWxlUmVzb2x2ZXImLCBjb25zdCBDU1NWYWx1ZSYgdmFs
dWUpCitpbmxpbmUgVGV4dFVuZGVybGluZVBvc2l0aW9uIFN0eWxlQnVpbGRlckNvbnZlcnRlcjo6
Y29udmVydFRleHRVbmRlcmxpbmVQb3NpdGlvbihTdHlsZVJlc29sdmVyJiwgY29uc3QgQ1NTVmFs
dWUmIHZhbHVlKQogewotICAgIC8vIFRoaXMgaXMgdHJ1ZSBpZiB2YWx1ZSBpcyAnYXV0bycgb3Ig
J2FscGhhYmV0aWMnLgotICAgIGlmIChpczxDU1NQcmltaXRpdmVWYWx1ZT4odmFsdWUpKQotICAg
ICAgICByZXR1cm4gZG93bmNhc3Q8Q1NTUHJpbWl0aXZlVmFsdWU+KHZhbHVlKTsKKyAgICBBU1NF
UlQoaXM8Q1NTUHJpbWl0aXZlVmFsdWU+KHZhbHVlKSk7CisgICAgcmV0dXJuIGRvd25jYXN0PENT
U1ByaW1pdGl2ZVZhbHVlPih2YWx1ZSk7Cit9CiAKLSAgICBPcHRpb25TZXQ8VGV4dFVuZGVybGlu
ZVBvc2l0aW9uPiBjb21iaW5lZFBvc2l0aW9uOwotICAgIGZvciAoYXV0byYgY3VycmVudFZhbHVl
IDogZG93bmNhc3Q8Q1NTVmFsdWVMaXN0Pih2YWx1ZSkpCi0gICAgICAgIGNvbWJpbmVkUG9zaXRp
b24uYWRkKGRvd25jYXN0PENTU1ByaW1pdGl2ZVZhbHVlPihjdXJyZW50VmFsdWUuZ2V0KCkpKTsK
LSAgICByZXR1cm4gY29tYmluZWRQb3NpdGlvbjsKK2lubGluZSBUZXh0VW5kZXJsaW5lT2Zmc2V0
IFN0eWxlQnVpbGRlckNvbnZlcnRlcjo6Y29udmVydFRleHRVbmRlcmxpbmVPZmZzZXQoU3R5bGVS
ZXNvbHZlciYgc3R5bGVSZXNvbHZlciwgY29uc3QgQ1NTVmFsdWUmIHZhbHVlKQoreworICAgIEFT
U0VSVChpczxDU1NQcmltaXRpdmVWYWx1ZT4odmFsdWUpKTsKKyAgICBhdXRvJiBwcmltaXRpdmVW
YWx1ZSA9IGRvd25jYXN0PENTU1ByaW1pdGl2ZVZhbHVlPih2YWx1ZSk7CisgICAgc3dpdGNoIChw
cmltaXRpdmVWYWx1ZS52YWx1ZUlEKCkpIHsKKyAgICBjYXNlIENTU1ZhbHVlQXV0bzoKKyAgICAg
ICAgcmV0dXJuIFRleHRVbmRlcmxpbmVPZmZzZXQ6OmNyZWF0ZVdpdGhBdXRvKCk7CisgICAgZGVm
YXVsdDoKKyAgICAgICAgQVNTRVJUKHByaW1pdGl2ZVZhbHVlLmlzTGVuZ3RoKCkpOworICAgICAg
ICBhdXRvIGNvbXB1dGVkTGVuZ3RoID0gY29udmVydENvbXB1dGVkTGVuZ3RoPGZsb2F0PihzdHls
ZVJlc29sdmVyLCBwcmltaXRpdmVWYWx1ZSk7CisgICAgICAgIHJldHVybiBUZXh0VW5kZXJsaW5l
T2Zmc2V0OjpjcmVhdGVXaXRoTGVuZ3RoKGNvbXB1dGVkTGVuZ3RoKTsKKyAgICB9Cit9CisKK2lu
bGluZSBUZXh0RGVjb3JhdGlvblRoaWNrbmVzcyBTdHlsZUJ1aWxkZXJDb252ZXJ0ZXI6OmNvbnZl
cnRUZXh0RGVjb3JhdGlvblRoaWNrbmVzcyhTdHlsZVJlc29sdmVyJiBzdHlsZVJlc29sdmVyLCBj
b25zdCBDU1NWYWx1ZSYgdmFsdWUpCit7CisgICAgQVNTRVJUKGlzPENTU1ByaW1pdGl2ZVZhbHVl
Pih2YWx1ZSkpOworICAgIGF1dG8mIHByaW1pdGl2ZVZhbHVlID0gZG93bmNhc3Q8Q1NTUHJpbWl0
aXZlVmFsdWU+KHZhbHVlKTsKKyAgICBzd2l0Y2ggKHByaW1pdGl2ZVZhbHVlLnZhbHVlSUQoKSkg
eworICAgIGNhc2UgQ1NTVmFsdWVBdXRvOgorICAgICAgICByZXR1cm4gVGV4dERlY29yYXRpb25U
aGlja25lc3M6OmNyZWF0ZVdpdGhBdXRvKCk7CisgICAgY2FzZSBDU1NWYWx1ZUZyb21Gb250Ogor
ICAgICAgICByZXR1cm4gVGV4dERlY29yYXRpb25UaGlja25lc3M6OmNyZWF0ZUZyb21Gb250KCk7
CisgICAgZGVmYXVsdDoKKyAgICAgICAgQVNTRVJUKHByaW1pdGl2ZVZhbHVlLmlzTGVuZ3RoKCkp
OworICAgICAgICBhdXRvIGNvbXB1dGVkTGVuZ3RoID0gY29udmVydENvbXB1dGVkTGVuZ3RoPGZs
b2F0PihzdHlsZVJlc29sdmVyLCBwcmltaXRpdmVWYWx1ZSk7CisgICAgICAgIHJldHVybiBUZXh0
RGVjb3JhdGlvblRoaWNrbmVzczo6Y3JlYXRlV2l0aExlbmd0aChjb21wdXRlZExlbmd0aCk7Cisg
ICAgfQogfQogCiBpbmxpbmUgUmVmUHRyPFN0eWxlUmVmbGVjdGlvbj4gU3R5bGVCdWlsZGVyQ29u
dmVydGVyOjpjb252ZXJ0UmVmbGVjdGlvbihTdHlsZVJlc29sdmVyJiBzdHlsZVJlc29sdmVyLCBj
b25zdCBDU1NWYWx1ZSYgdmFsdWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5
bGVSZXNvbHZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAKaW5k
ZXggZmQ0Y2ZlZWZhNWM3MjgwODZjNDc0MmFmMjIxNjk0NWM5M2Y2ZDYwOC4uNTc2NzFjOTUzNmRk
ZDY1MTJiZDlhNzRmZGFkMjNmZTY1ZTQ3MTEzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Y3NzL1N0eWxlUmVzb2x2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29s
dmVyLmNwcApAQCAtMTE3NSw3ICsxMTc1LDkgQEAgc3RhdGljIGJvb2wgc2hvdWxkQXBwbHlQcm9w
ZXJ0eUluUGFyc2VPcmRlcihDU1NQcm9wZXJ0eUlEIHByb3BlcnR5SUQpCiAgICAgY2FzZSBDU1NQ
cm9wZXJ0eVdlYmtpdFRleHREZWNvcmF0aW9uU3R5bGU6CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdl
YmtpdFRleHREZWNvcmF0aW9uQ29sb3I6CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdFRleHRE
ZWNvcmF0aW9uU2tpcDoKLSAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0VGV4dFVuZGVybGluZVBv
c2l0aW9uOgorICAgIGNhc2UgQ1NTUHJvcGVydHlUZXh0VW5kZXJsaW5lUG9zaXRpb246CisgICAg
Y2FzZSBDU1NQcm9wZXJ0eVRleHRVbmRlcmxpbmVPZmZzZXQ6CisgICAgY2FzZSBDU1NQcm9wZXJ0
eVRleHREZWNvcmF0aW9uVGhpY2tuZXNzOgogICAgIGNhc2UgQ1NTUHJvcGVydHlUZXh0RGVjb3Jh
dGlvbjoKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgZGVmYXVsdDoKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlci5jcHAKaW5kZXggYzNhMjNiNTk5ZThl
YjRkNzljYTlmOTNlZGM2NDRmZjBiYTMxZDgyNy4uZDNhMDQ3N2E3NDMyMmZhMjYyYTE2OTExYTcz
MThiNmI2OGJkN2E3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQ
cm9wZXJ0eVBhcnNlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQcm9w
ZXJ0eVBhcnNlci5jcHAKQEAgLTIzMzcsNiArMjMzNywyMCBAQCBzdGF0aWMgUmVmUHRyPENTU1Zh
bHVlPiBjb25zdW1lQm9yZGVyUmFkaXVzQ29ybmVyKENTU1BhcnNlclRva2VuUmFuZ2UmIHJhbmdl
LCBDUwogICAgIHJldHVybiBjcmVhdGVQcmltaXRpdmVWYWx1ZVBhaXIocGFyc2VkVmFsdWUxLnJl
bGVhc2VOb25OdWxsKCksIHBhcnNlZFZhbHVlMi5yZWxlYXNlTm9uTnVsbCgpLCBQYWlyOjpJZGVu
dGljYWxWYWx1ZUVuY29kaW5nOjpDb2FsZXNjZSk7CiB9CiAKK3N0YXRpYyBSZWZQdHI8Q1NTVmFs
dWU+IGNvbnN1bWVUZXh0VW5kZXJsaW5lT2Zmc2V0KENTU1BhcnNlclRva2VuUmFuZ2UmIHJhbmdl
LCBDU1NQYXJzZXJNb2RlIGNzc1BhcnNlck1vZGUpCit7CisgICAgaWYgKGF1dG8gdmFsdWUgPSBj
b25zdW1lSWRlbnQ8Q1NTVmFsdWVBdXRvPihyYW5nZSkpCisgICAgICAgIHJldHVybiB2YWx1ZTsK
KyAgICByZXR1cm4gY29uc3VtZUxlbmd0aChyYW5nZSwgY3NzUGFyc2VyTW9kZSwgVmFsdWVSYW5n
ZUFsbCk7Cit9CisKK3N0YXRpYyBSZWZQdHI8Q1NTVmFsdWU+IGNvbnN1bWVUZXh0RGVjb3JhdGlv
blRoaWNrbmVzcyhDU1NQYXJzZXJUb2tlblJhbmdlJiByYW5nZSwgQ1NTUGFyc2VyTW9kZSBjc3NQ
YXJzZXJNb2RlKQoreworICAgIGlmIChhdXRvIHZhbHVlID0gY29uc3VtZUlkZW50PENTU1ZhbHVl
QXV0bywgQ1NTVmFsdWVGcm9tRm9udD4ocmFuZ2UpKQorICAgICAgICByZXR1cm4gdmFsdWU7Cisg
ICAgcmV0dXJuIGNvbnN1bWVMZW5ndGgocmFuZ2UsIGNzc1BhcnNlck1vZGUsIFZhbHVlUmFuZ2VB
bGwpOworfQorCiBzdGF0aWMgUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiBjb25zdW1lVmVydGlj
YWxBbGlnbihDU1NQYXJzZXJUb2tlblJhbmdlJiByYW5nZSwgQ1NTUGFyc2VyTW9kZSBjc3NQYXJz
ZXJNb2RlKQogewogICAgIFJlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4gcGFyc2VkVmFsdWUgPSBj
b25zdW1lSWRlbnRSYW5nZShyYW5nZSwgQ1NTVmFsdWVCYXNlbGluZSwgQ1NTVmFsdWVXZWJraXRC
YXNlbGluZU1pZGRsZSk7CkBAIC00MTY1LDkgKzQxNzksMTMgQEAgUmVmUHRyPENTU1ZhbHVlPiBD
U1NQcm9wZXJ0eVBhcnNlcjo6cGFyc2VTaW5nbGVWYWx1ZShDU1NQcm9wZXJ0eUlEIHByb3BlcnR5
LCBDU1MKICAgICAgICAgcmV0dXJuIGNvbnN1bWVJbnRlZ2VyKG1fcmFuZ2UsIDApOwogICAgIGNh
c2UgQ1NTUHJvcGVydHlPcmRlcjoKICAgICAgICAgcmV0dXJuIGNvbnN1bWVJbnRlZ2VyKG1fcmFu
Z2UpOwotICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRUZXh0VW5kZXJsaW5lUG9zaXRpb246Ci0g
ICAgICAgIC8vIGF1dG8gfCBhbHBoYWJldGljIHwgWyB1bmRlciB8fCBbIGxlZnQgfCByaWdodCBd
IF0sIGJ1dCB3ZSBvbmx5IHN1cHBvcnQgYXV0byB8IGFscGhhYmV0aWMgfCB1bmRlciBmb3Igbm93
Ci0gICAgICAgIHJldHVybiBjb25zdW1lSWRlbnQ8Q1NTVmFsdWVBdXRvLCBDU1NWYWx1ZVVuZGVy
LCBDU1NWYWx1ZUFscGhhYmV0aWM+KG1fcmFuZ2UpOworICAgIGNhc2UgQ1NTUHJvcGVydHlUZXh0
VW5kZXJsaW5lUG9zaXRpb246CisgICAgICAgIC8vIGF1dG8gfCBbIFsgdW5kZXIgfCBmcm9tLWZv
bnQgXSB8fCBbIGxlZnQgfCByaWdodCBdIF0sIGJ1dCB3ZSBvbmx5IHN1cHBvcnQgYXV0byB8IHVu
ZGVyIHwgZnJvbS1mb250IGZvciBub3cKKyAgICAgICAgcmV0dXJuIGNvbnN1bWVJZGVudDxDU1NW
YWx1ZUF1dG8sIENTU1ZhbHVlVW5kZXIsIENTU1ZhbHVlRnJvbUZvbnQ+KG1fcmFuZ2UpOworICAg
IGNhc2UgQ1NTUHJvcGVydHlUZXh0VW5kZXJsaW5lT2Zmc2V0OgorICAgICAgICByZXR1cm4gY29u
c3VtZVRleHRVbmRlcmxpbmVPZmZzZXQobV9yYW5nZSwgbV9jb250ZXh0Lm1vZGUpOworICAgIGNh
c2UgQ1NTUHJvcGVydHlUZXh0RGVjb3JhdGlvblRoaWNrbmVzczoKKyAgICAgICAgcmV0dXJuIGNv
bnN1bWVUZXh0RGVjb3JhdGlvblRoaWNrbmVzcyhtX3JhbmdlLCBtX2NvbnRleHQubW9kZSk7CiAg
ICAgY2FzZSBDU1NQcm9wZXJ0eVZlcnRpY2FsQWxpZ246CiAgICAgICAgIHJldHVybiBjb25zdW1l
VmVydGljYWxBbGlnbihtX3JhbmdlLCBtX2NvbnRleHQubW9kZSk7CiAgICAgY2FzZSBDU1NQcm9w
ZXJ0eVNoYXBlT3V0c2lkZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dHlsZS9SZW5kZXJTdHlsZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRl
clN0eWxlLmgKaW5kZXggNzA4ZTZiZjAxNDI3Y2UxZjA4MmNkMTVhY2IxYzNlMDZkMTNiODIzNC4u
OTgxYjhlZWVlYmU5NmE2MWIxYWFkMzYzMjQyZDc0ZTk2ODFjMDNlZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKQEAgLTM3NCw3ICszNzQsOSBAQCBw
dWJsaWM6CiAgICAgT3B0aW9uU2V0PFRleHREZWNvcmF0aW9uPiB0ZXh0RGVjb3JhdGlvbigpIGNv
bnN0IHsgcmV0dXJuIE9wdGlvblNldDxUZXh0RGVjb3JhdGlvbj46OmZyb21SYXcobV92aXN1YWxE
YXRhLT50ZXh0RGVjb3JhdGlvbik7IH0KICAgICBUZXh0RGVjb3JhdGlvblN0eWxlIHRleHREZWNv
cmF0aW9uU3R5bGUoKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxUZXh0RGVjb3JhdGlvblN0
eWxlPihtX3JhcmVOb25Jbmhlcml0ZWREYXRhLT50ZXh0RGVjb3JhdGlvblN0eWxlKTsgfQogICAg
IE9wdGlvblNldDxUZXh0RGVjb3JhdGlvblNraXA+IHRleHREZWNvcmF0aW9uU2tpcCgpIGNvbnN0
IHsgcmV0dXJuIE9wdGlvblNldDxUZXh0RGVjb3JhdGlvblNraXA+Ojpmcm9tUmF3KG1fcmFyZUlu
aGVyaXRlZERhdGEtPnRleHREZWNvcmF0aW9uU2tpcCk7IH0KLSAgICBPcHRpb25TZXQ8VGV4dFVu
ZGVybGluZVBvc2l0aW9uPiB0ZXh0VW5kZXJsaW5lUG9zaXRpb24oKSBjb25zdCB7IHJldHVybiBP
cHRpb25TZXQ8VGV4dFVuZGVybGluZVBvc2l0aW9uPjo6ZnJvbVJhdyhtX3JhcmVJbmhlcml0ZWRE
YXRhLT50ZXh0VW5kZXJsaW5lUG9zaXRpb24pOyB9CisgICAgVGV4dFVuZGVybGluZVBvc2l0aW9u
IHRleHRVbmRlcmxpbmVQb3NpdGlvbigpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PFRleHRV
bmRlcmxpbmVQb3NpdGlvbj4obV9yYXJlSW5oZXJpdGVkRGF0YS0+dGV4dFVuZGVybGluZVBvc2l0
aW9uKTsgfQorICAgIFRleHRVbmRlcmxpbmVPZmZzZXQgdGV4dFVuZGVybGluZU9mZnNldCgpIGNv
bnN0IHsgcmV0dXJuIG1fcmFyZUluaGVyaXRlZERhdGEtPnRleHRVbmRlcmxpbmVPZmZzZXQ7IH0K
KyAgICBUZXh0RGVjb3JhdGlvblRoaWNrbmVzcyB0ZXh0RGVjb3JhdGlvblRoaWNrbmVzcygpIGNv
bnN0IHsgcmV0dXJuIG1fcmFyZUluaGVyaXRlZERhdGEtPnRleHREZWNvcmF0aW9uVGhpY2tuZXNz
OyB9CiAKICNpZiBFTkFCTEUoQ1NTM19URVhUKQogICAgIFRleHRJbmRlbnRMaW5lIHRleHRJbmRl
bnRMaW5lKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8VGV4dEluZGVudExpbmU+KG1fcmFy
ZUluaGVyaXRlZERhdGEtPnRleHRJbmRlbnRMaW5lKTsgfQpAQCAtOTIxLDcgKzkyMyw5IEBAIHB1
YmxpYzoKICAgICB2b2lkIHNldFRleHREZWNvcmF0aW9uKE9wdGlvblNldDxUZXh0RGVjb3JhdGlv
bj4gdikgeyBTRVRfVkFSKG1fdmlzdWFsRGF0YSwgdGV4dERlY29yYXRpb24sIHYudG9SYXcoKSk7
IH0KICAgICB2b2lkIHNldFRleHREZWNvcmF0aW9uU3R5bGUoVGV4dERlY29yYXRpb25TdHlsZSB2
KSB7IFNFVF9WQVIobV9yYXJlTm9uSW5oZXJpdGVkRGF0YSwgdGV4dERlY29yYXRpb25TdHlsZSwg
c3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHYpKTsgfQogICAgIHZvaWQgc2V0VGV4dERlY29yYXRpb25T
a2lwKE9wdGlvblNldDxUZXh0RGVjb3JhdGlvblNraXA+IHNraXApIHsgU0VUX1ZBUihtX3JhcmVJ
bmhlcml0ZWREYXRhLCB0ZXh0RGVjb3JhdGlvblNraXAsIHNraXAudG9SYXcoKSk7IH0KLSAgICB2
b2lkIHNldFRleHRVbmRlcmxpbmVQb3NpdGlvbihPcHRpb25TZXQ8VGV4dFVuZGVybGluZVBvc2l0
aW9uPiB2KSB7IFNFVF9WQVIobV9yYXJlSW5oZXJpdGVkRGF0YSwgdGV4dFVuZGVybGluZVBvc2l0
aW9uLCB2LnRvUmF3KCkpOyB9CisgICAgdm9pZCBzZXRUZXh0VW5kZXJsaW5lUG9zaXRpb24oVGV4
dFVuZGVybGluZVBvc2l0aW9uIHBvc2l0aW9uKSB7IFNFVF9WQVIobV9yYXJlSW5oZXJpdGVkRGF0
YSwgdGV4dFVuZGVybGluZVBvc2l0aW9uLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4ocG9zaXRpb24p
KTsgfQorICAgIHZvaWQgc2V0VGV4dFVuZGVybGluZU9mZnNldChUZXh0VW5kZXJsaW5lT2Zmc2V0
IHRleHRVbmRlcmxpbmVPZmZzZXQpIHsgU0VUX1ZBUihtX3JhcmVJbmhlcml0ZWREYXRhLCB0ZXh0
VW5kZXJsaW5lT2Zmc2V0LCB0ZXh0VW5kZXJsaW5lT2Zmc2V0KTsgfQorICAgIHZvaWQgc2V0VGV4
dERlY29yYXRpb25UaGlja25lc3MoVGV4dERlY29yYXRpb25UaGlja25lc3MgdGV4dERlY29yYXRp
b25UaGlja25lc3MpIHsgU0VUX1ZBUihtX3JhcmVJbmhlcml0ZWREYXRhLCB0ZXh0RGVjb3JhdGlv
blRoaWNrbmVzcywgdGV4dERlY29yYXRpb25UaGlja25lc3MpOyB9CiAgICAgdm9pZCBzZXREaXJl
Y3Rpb24oVGV4dERpcmVjdGlvbiB2KSB7IG1faW5oZXJpdGVkRmxhZ3MuZGlyZWN0aW9uID0gc3Rh
dGljX2Nhc3Q8dW5zaWduZWQ+KHYpOyB9CiAgICAgdm9pZCBzZXRIYXNFeHBsaWNpdGx5U2V0RGly
ZWN0aW9uKGJvb2wgdikgeyBtX25vbkluaGVyaXRlZEZsYWdzLmhhc0V4cGxpY2l0bHlTZXREaXJl
Y3Rpb24gPSB2OyB9CiAgICAgdm9pZCBzZXRMaW5lSGVpZ2h0KExlbmd0aCYmKTsKQEAgLTE0ODIs
NyArMTQ4Niw5IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgT3B0aW9uU2V0PFRleHREZWNvcmF0aW9u
PiBpbml0aWFsVGV4dERlY29yYXRpb24oKSB7IHJldHVybiBPcHRpb25TZXQ8VGV4dERlY29yYXRp
b24+IHsgfTsgfQogICAgIHN0YXRpYyBUZXh0RGVjb3JhdGlvblN0eWxlIGluaXRpYWxUZXh0RGVj
b3JhdGlvblN0eWxlKCkgeyByZXR1cm4gVGV4dERlY29yYXRpb25TdHlsZTo6U29saWQ7IH0KICAg
ICBzdGF0aWMgT3B0aW9uU2V0PFRleHREZWNvcmF0aW9uU2tpcD4gaW5pdGlhbFRleHREZWNvcmF0
aW9uU2tpcCgpIHsgcmV0dXJuIFRleHREZWNvcmF0aW9uU2tpcDo6QXV0bzsgfQotICAgIHN0YXRp
YyBPcHRpb25TZXQ8VGV4dFVuZGVybGluZVBvc2l0aW9uPiBpbml0aWFsVGV4dFVuZGVybGluZVBv
c2l0aW9uKCkgeyByZXR1cm4gVGV4dFVuZGVybGluZVBvc2l0aW9uOjpBdXRvOyB9CisgICAgc3Rh
dGljIFRleHRVbmRlcmxpbmVQb3NpdGlvbiBpbml0aWFsVGV4dFVuZGVybGluZVBvc2l0aW9uKCkg
eyByZXR1cm4gVGV4dFVuZGVybGluZVBvc2l0aW9uOjpBdXRvOyB9CisgICAgc3RhdGljIFRleHRV
bmRlcmxpbmVPZmZzZXQgaW5pdGlhbFRleHRVbmRlcmxpbmVPZmZzZXQoKSB7IHJldHVybiBUZXh0
VW5kZXJsaW5lT2Zmc2V0OjpjcmVhdGVXaXRoQXV0bygpOyB9CisgICAgc3RhdGljIFRleHREZWNv
cmF0aW9uVGhpY2tuZXNzIGluaXRpYWxUZXh0RGVjb3JhdGlvblRoaWNrbmVzcygpIHsgcmV0dXJu
IFRleHREZWNvcmF0aW9uVGhpY2tuZXNzOjpjcmVhdGVXaXRoQXV0bygpOyB9CiAgICAgc3RhdGlj
IGZsb2F0IGluaXRpYWxab29tKCkgeyByZXR1cm4gMS4wZjsgfQogICAgIHN0YXRpYyBUZXh0Wm9v
bSBpbml0aWFsVGV4dFpvb20oKSB7IHJldHVybiBUZXh0Wm9vbTo6Tm9ybWFsOyB9CiAgICAgc3Rh
dGljIGZsb2F0IGluaXRpYWxPdXRsaW5lT2Zmc2V0KCkgeyByZXR1cm4gMDsgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlQ29uc3RhbnRzLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVDb25zdGFudHMuaApp
bmRleCAzZWRlZTA5OWZlODU0ZmNmMmUwMzU5ZmI2MmRkNTU3YTMxZDhkM2JjLi4xNzZlYjIxM2E3
YTZlNzgyZTMxMDc5MGQ1MTBmMGNkMWIzZDllMDI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVDb25zdGFudHMuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVDb25zdGFudHMuaApAQCAtNzMxLDEyICs3
MzEsMTEgQEAgZW51bSBjbGFzcyBUZXh0RGVjb3JhdGlvblNraXAgOiB1aW50OF90IHsKICAgICBB
dXRvICAgICAgPSAxIDw8IDIKIH07CiAKLS8vIEZJWE1FOiBUaGVyZSBpcyBubyByZWFzb24gZm9y
IHRoZSB2YWx1ZXMgaW4gdGhlIGVudW0gdG8gYmUgcG93ZXJzIG9mIHR3by4KIGVudW0gY2xhc3Mg
VGV4dFVuZGVybGluZVBvc2l0aW9uIDogdWludDhfdCB7CiAgICAgLy8gRklYTUU6IEltcGxlbWVu
dCBzdXBwb3J0IGZvciAndW5kZXIgbGVmdCcgYW5kICd1bmRlciByaWdodCcgdmFsdWVzLgotICAg
IEF1dG8gICAgICAgPSAxIDw8IDAsCi0gICAgQWxwaGFiZXRpYyA9IDEgPDwgMSwKLSAgICBVbmRl
ciAgICAgID0gMSA8PCAyCisgICAgQXV0bywKKyAgICBVbmRlciwKKyAgICBGcm9tRm9udAogfTsK
IAogZW51bSBjbGFzcyBUZXh0Wm9vbSA6IHVpbnQ4X3QgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZUluaGVyaXRlZERhdGEuY3BwIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZUluaGVyaXRlZERhdGEuY3BwCmluZGV4
IDJhYWRhMWMyNzBhMzlmOGZhYWQxODU1MjAwZmJjMTYwNDZiODhlMDYuLjVmYjc5YjNmOTQ3ZTQ0
NmI3MGVmMzM4MjdjYzcyOGNiYzgwZWIwNmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdHlsZS9TdHlsZVJhcmVJbmhlcml0ZWREYXRhLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlSW5oZXJpdGVkRGF0YS5jcHAKQEAgLTQ1LDYg
KzQ1LDggQEAgc3RydWN0IEdyZWF0ZXJUaGFuT3JTYW1lU2l6ZUFzU3R5bGVSYXJlSW5oZXJpdGVk
RGF0YSA6IHB1YmxpYyBSZWZDb3VudGVkPEdyZWF0ZXIKICAgICB2b2lkKiByZWZQdHJzWzNdOwog
ICAgIExlbmd0aCBsZW5ndGhzWzJdOwogICAgIGZsb2F0IHNlY29uZEZsb2F0OworICAgIFRleHRV
bmRlcmxpbmVPZmZzZXQgb2Zmc2V0OworICAgIFRleHREZWNvcmF0aW9uVGhpY2tuZXNzIHRoaWNr
bmVzczsKICAgICB1bnNpZ25lZCBiaXRmaWVsZHNbNF07CiAgICAgc2hvcnQgcGFnZWRNZWRpYVNo
b3J0c1syXTsKICAgICB1bnNpZ25lZCB1bnNpZ25lZHNbMV07CkBAIC03NSw2ICs3Nyw4IEBAIFN0
eWxlUmFyZUluaGVyaXRlZERhdGE6OlN0eWxlUmFyZUluaGVyaXRlZERhdGEoKQogICAgICwgdGV4
dFN0cm9rZVdpZHRoKFJlbmRlclN0eWxlOjppbml0aWFsVGV4dFN0cm9rZVdpZHRoKCkpCiAgICAg
LCBpbmRlbnQoUmVuZGVyU3R5bGU6OmluaXRpYWxUZXh0SW5kZW50KCkpCiAgICAgLCBlZmZlY3Rp
dmVab29tKFJlbmRlclN0eWxlOjppbml0aWFsWm9vbSgpKQorICAgICwgdGV4dFVuZGVybGluZU9m
ZnNldChSZW5kZXJTdHlsZTo6aW5pdGlhbFRleHRVbmRlcmxpbmVPZmZzZXQoKSkKKyAgICAsIHRl
eHREZWNvcmF0aW9uVGhpY2tuZXNzKFJlbmRlclN0eWxlOjppbml0aWFsVGV4dERlY29yYXRpb25U
aGlja25lc3MoKSkKICAgICAsIGN1c3RvbVByb3BlcnRpZXMoU3R5bGVDdXN0b21Qcm9wZXJ0eURh
dGE6OmNyZWF0ZSgpKQogICAgICwgd2lkb3dzKFJlbmRlclN0eWxlOjppbml0aWFsV2lkb3dzKCkp
CiAgICAgLCBvcnBoYW5zKFJlbmRlclN0eWxlOjppbml0aWFsT3JwaGFucygpKQpAQCAtMTE2LDcg
KzEyMCw3IEBAIFN0eWxlUmFyZUluaGVyaXRlZERhdGE6OlN0eWxlUmFyZUluaGVyaXRlZERhdGEo
KQogICAgICwgdGV4dEp1c3RpZnkoUmVuZGVyU3R5bGU6OmluaXRpYWxUZXh0SnVzdGlmeSgpKQog
I2VuZGlmCiAgICAgLCB0ZXh0RGVjb3JhdGlvblNraXAoUmVuZGVyU3R5bGU6OmluaXRpYWxUZXh0
RGVjb3JhdGlvblNraXAoKS50b1JhdygpKQotICAgICwgdGV4dFVuZGVybGluZVBvc2l0aW9uKFJl
bmRlclN0eWxlOjppbml0aWFsVGV4dFVuZGVybGluZVBvc2l0aW9uKCkudG9SYXcoKSkKKyAgICAs
IHRleHRVbmRlcmxpbmVQb3NpdGlvbihzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUmVuZGVyU3R5bGU6
OmluaXRpYWxUZXh0VW5kZXJsaW5lUG9zaXRpb24oKSkpCiAgICAgLCBydWJ5UG9zaXRpb24oc3Rh
dGljX2Nhc3Q8dW5zaWduZWQ+KFJlbmRlclN0eWxlOjppbml0aWFsUnVieVBvc2l0aW9uKCkpKQog
ICAgICwgdGV4dFpvb20oc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFJlbmRlclN0eWxlOjppbml0aWFs
VGV4dFpvb20oKSkpCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKQEAgLTE2OCw2ICsxNzIsOCBA
QCBpbmxpbmUgU3R5bGVSYXJlSW5oZXJpdGVkRGF0YTo6U3R5bGVSYXJlSW5oZXJpdGVkRGF0YShj
b25zdCBTdHlsZVJhcmVJbmhlcml0ZWREYQogICAgICwgY3Vyc29yRGF0YShvLmN1cnNvckRhdGEp
CiAgICAgLCBpbmRlbnQoby5pbmRlbnQpCiAgICAgLCBlZmZlY3RpdmVab29tKG8uZWZmZWN0aXZl
Wm9vbSkKKyAgICAsIHRleHRVbmRlcmxpbmVPZmZzZXQoby50ZXh0VW5kZXJsaW5lT2Zmc2V0KQor
ICAgICwgdGV4dERlY29yYXRpb25UaGlja25lc3Moby50ZXh0RGVjb3JhdGlvblRoaWNrbmVzcykK
ICAgICAsIGN1c3RvbVByb3BlcnRpZXMoby5jdXN0b21Qcm9wZXJ0aWVzKQogICAgICwgd2lkb3dz
KG8ud2lkb3dzKQogICAgICwgb3JwaGFucyhvLm9ycGhhbnMpCkBAIC0yNzMsNiArMjc5LDggQEAg
Ym9vbCBTdHlsZVJhcmVJbmhlcml0ZWREYXRhOjpvcGVyYXRvcj09KGNvbnN0IFN0eWxlUmFyZUlu
aGVyaXRlZERhdGEmIG8pIGNvbnN0CiAgICAgICAgICYmIGFyZVBvaW50aW5nVG9FcXVhbERhdGEo
Y3Vyc29yRGF0YSwgby5jdXJzb3JEYXRhKQogICAgICAgICAmJiBpbmRlbnQgPT0gby5pbmRlbnQK
ICAgICAgICAgJiYgZWZmZWN0aXZlWm9vbSA9PSBvLmVmZmVjdGl2ZVpvb20KKyAgICAgICAgJiYg
dGV4dFVuZGVybGluZU9mZnNldCA9PSBvLnRleHRVbmRlcmxpbmVPZmZzZXQKKyAgICAgICAgJiYg
dGV4dERlY29yYXRpb25UaGlja25lc3MgPT0gby50ZXh0RGVjb3JhdGlvblRoaWNrbmVzcwogICAg
ICAgICAmJiB3aWRvd3MgPT0gby53aWRvd3MKICAgICAgICAgJiYgb3JwaGFucyA9PSBvLm9ycGhh
bnMKICAgICAgICAgJiYgaGFzQXV0b1dpZG93cyA9PSBvLmhhc0F1dG9XaWRvd3MKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVJbmhlcml0ZWREYXRh
LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlSW5oZXJpdGVkRGF0
YS5oCmluZGV4IGI4M2E4YzBhYzgxYzgwNmRkMTZiN2RmZTJiYWQ4MGI4MzNkOWYyYzQuLmEzYWQx
NzUwMzRjOWYzNzFhZTEzNThjMjhhNTQ1OGFjODRmMDhlOWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVJbmhlcml0ZWREYXRhLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZUluaGVyaXRlZERhdGEuaApAQCAt
MjgsNiArMjgsOCBAQAogI2luY2x1ZGUgIkRhdGFSZWYuaCIKICNpbmNsdWRlICJMZW5ndGguaCIK
ICNpbmNsdWRlICJTdHlsZUN1c3RvbVByb3BlcnR5RGF0YS5oIgorI2luY2x1ZGUgIlRleHREZWNv
cmF0aW9uVGhpY2tuZXNzLmgiCisjaW5jbHVkZSAiVGV4dFVuZGVybGluZU9mZnNldC5oIgogI2lu
Y2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQXRvbWljU3RyaW5n
Lmg+CiAKQEAgLTc5LDYgKzgxLDkgQEAgcHVibGljOgogICAgIFJlZlB0cjxDdXJzb3JMaXN0PiBj
dXJzb3JEYXRhOwogICAgIExlbmd0aCBpbmRlbnQ7CiAgICAgZmxvYXQgZWZmZWN0aXZlWm9vbTsK
KworICAgIFRleHRVbmRlcmxpbmVPZmZzZXQgdGV4dFVuZGVybGluZU9mZnNldDsKKyAgICBUZXh0
RGVjb3JhdGlvblRoaWNrbmVzcyB0ZXh0RGVjb3JhdGlvblRoaWNrbmVzczsKICAgICAKICAgICBM
ZW5ndGggd29yZFNwYWNpbmc7CiAKQEAgLTEyOCw3ICsxMzMsNyBAQCBwdWJsaWM6CiAgICAgdW5z
aWduZWQgdGV4dEp1c3RpZnkgOiAyOyAvLyBUZXh0SnVzdGlmeQogI2VuZGlmCiAgICAgdW5zaWdu
ZWQgdGV4dERlY29yYXRpb25Ta2lwIDogNTsgLy8gVGV4dERlY29yYXRpb25Ta2lwCi0gICAgdW5z
aWduZWQgdGV4dFVuZGVybGluZVBvc2l0aW9uIDogMzsgLy8gVGV4dFVuZGVybGluZVBvc2l0aW9u
CisgICAgdW5zaWduZWQgdGV4dFVuZGVybGluZVBvc2l0aW9uIDogMjsgLy8gVGV4dFVuZGVybGlu
ZVBvc2l0aW9uCiAgICAgdW5zaWduZWQgcnVieVBvc2l0aW9uIDogMjsgLy8gUnVieVBvc2l0aW9u
CiAgICAgdW5zaWduZWQgdGV4dFpvb206IDE7IC8vIFRleHRab29tCiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9UZXh0RGVjb3JhdGlvblRoaWNrbmVzcy5oIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1RleHREZWNvcmF0aW9uVGhpY2tuZXNzLmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uYmU5ZDI4ZmU4NDNlNjExMmIzNjU2NjQ5OWE2YjIzMjQzNjhmYTg0MAotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9UZXh0RGVjb3Jh
dGlvblRoaWNrbmVzcy5oCkBAIC0wLDAgKzEsMTIzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBv
bmNlCisKKyNpbmNsdWRlICJGb250TWV0cmljcy5oIgorI2luY2x1ZGUgIkxlbmd0aC5oIgorI2lu
Y2x1ZGUgPHd0Zi90ZXh0L1RleHRTdHJlYW0uaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitj
bGFzcyBUZXh0RGVjb3JhdGlvblRoaWNrbmVzcyB7CitwdWJsaWM6CisgICAgc3RhdGljIFRleHRE
ZWNvcmF0aW9uVGhpY2tuZXNzIGNyZWF0ZVdpdGhBdXRvKCkKKyAgICB7CisgICAgICAgIHJldHVy
biBUZXh0RGVjb3JhdGlvblRoaWNrbmVzcyhUeXBlOjpBdXRvKTsKKyAgICB9CisgICAgc3RhdGlj
IFRleHREZWNvcmF0aW9uVGhpY2tuZXNzIGNyZWF0ZUZyb21Gb250KCkKKyAgICB7CisgICAgICAg
IHJldHVybiBUZXh0RGVjb3JhdGlvblRoaWNrbmVzcyhUeXBlOjpGcm9tRm9udCk7CisgICAgfQor
ICAgIHN0YXRpYyBUZXh0RGVjb3JhdGlvblRoaWNrbmVzcyBjcmVhdGVXaXRoTGVuZ3RoKGZsb2F0
IGxlbmd0aCkKKyAgICB7CisgICAgICAgIFRleHREZWNvcmF0aW9uVGhpY2tuZXNzIHJlc3VsdChU
eXBlOjpMZW5ndGgpOworICAgICAgICByZXN1bHQuc2V0TGVuZ3RoVmFsdWUobGVuZ3RoKTsKKyAg
ICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICBib29sIGlzQXV0bygpIGNvbnN0Cisg
ICAgeworICAgICAgICByZXR1cm4gbV90eXBlID09IFR5cGU6OkF1dG87CisgICAgfQorCisgICAg
Ym9vbCBpc0Zyb21Gb250KCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBtX3R5cGUgPT0g
VHlwZTo6RnJvbUZvbnQ7CisgICAgfQorCisgICAgYm9vbCBpc0xlbmd0aCgpIGNvbnN0CisgICAg
eworICAgICAgICByZXR1cm4gbV90eXBlID09IFR5cGU6Okxlbmd0aDsKKyAgICB9CisKKyAgICB2
b2lkIHNldExlbmd0aFZhbHVlKGZsb2F0IGxlbmd0aCkKKyAgICB7CisgICAgICAgIEFTU0VSVChp
c0xlbmd0aCgpKTsKKyAgICAgICAgbV9sZW5ndGggPSBsZW5ndGg7CisgICAgfQorCisgICAgZmxv
YXQgbGVuZ3RoVmFsdWUoKSBjb25zdAorICAgIHsKKyAgICAgICAgQVNTRVJUKGlzTGVuZ3RoKCkp
OworICAgICAgICByZXR1cm4gbV9sZW5ndGg7CisgICAgfQorCisgICAgYm9vbCBvcGVyYXRvcj09
KGNvbnN0IFRleHREZWNvcmF0aW9uVGhpY2tuZXNzJiBvdGhlcikgY29uc3QKKyAgICB7CisgICAg
ICAgIHN3aXRjaCAobV90eXBlKSB7CisgICAgICAgIGNhc2UgVHlwZTo6QXV0bzoKKyAgICAgICAg
Y2FzZSBUeXBlOjpGcm9tRm9udDoKKyAgICAgICAgICAgIHJldHVybiBtX3R5cGUgPT0gb3RoZXIu
bV90eXBlOworICAgICAgICBjYXNlIFR5cGU6Okxlbmd0aDoKKyAgICAgICAgICAgIHJldHVybiBt
X3R5cGUgPT0gb3RoZXIubV90eXBlICYmIG1fbGVuZ3RoID09IG90aGVyLm1fbGVuZ3RoOworICAg
ICAgICBkZWZhdWx0OgorICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAg
IH0KKyAgICB9CisKKyAgICBib29sIG9wZXJhdG9yIT0oY29uc3QgVGV4dERlY29yYXRpb25UaGlj
a25lc3MmIG90aGVyKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuICEoKnRoaXMgPT0gb3Ro
ZXIpOworICAgIH0KKworcHJpdmF0ZToKKyAgICBlbnVtIGNsYXNzIFR5cGUgOiB1aW50OF90IHsK
KyAgICAgICAgQXV0bywKKyAgICAgICAgRnJvbUZvbnQsCisgICAgICAgIExlbmd0aAorICAgIH07
CisKKyAgICBUZXh0RGVjb3JhdGlvblRoaWNrbmVzcyhUeXBlIHR5cGUpCisgICAgICAgIDogbV90
eXBlIHsgdHlwZSB9CisgICAgeworICAgIH0KKworICAgIFR5cGUgbV90eXBlOworICAgIGZsb2F0
IG1fbGVuZ3RoOworfTsKKworaW5saW5lIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVh
bSYgdHMsIGNvbnN0IFRleHREZWNvcmF0aW9uVGhpY2tuZXNzJiB0aGlja25lc3MpCit7CisgICAg
aWYgKHRoaWNrbmVzcy5pc0F1dG8oKSkKKyAgICAgICAgdHMgPDwgImF1dG8iOworICAgIGVsc2Ug
aWYgKHRoaWNrbmVzcy5pc0Zyb21Gb250KCkpCisgICAgICAgIHRzIDw8ICJmcm9tLWZvbnQiOwor
ICAgIGVsc2UKKyAgICAgICAgdHMgPDwgVGV4dFN0cmVhbTo6Rm9ybWF0TnVtYmVyUmVzcGVjdGlu
Z0ludGVnZXJzKHRoaWNrbmVzcy5sZW5ndGhWYWx1ZSgpKTsKKyAgICByZXR1cm4gdHM7Cit9CisK
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdHlsZS9UZXh0VW5kZXJsaW5lT2Zmc2V0LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3R5bGUvVGV4dFVuZGVybGluZU9mZnNldC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk2MWU3YjJkOTMxMmQy
YTE5OTBkOGVhYjU2NjkwMzBkYzkzMjVhM2IKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3R5bGUvVGV4dFVuZGVybGluZU9mZnNldC5oCkBAIC0wLDAgKzEsMTA4
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJMZW5ndGguaCIKKyNp
bmNsdWRlIDx3dGYvdGV4dC9UZXh0U3RyZWFtLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
Y2xhc3MgVGV4dFVuZGVybGluZU9mZnNldCB7CitwdWJsaWM6CisgICAgc3RhdGljIFRleHRVbmRl
cmxpbmVPZmZzZXQgY3JlYXRlV2l0aEF1dG8oKQorICAgIHsKKyAgICAgICAgcmV0dXJuIFRleHRV
bmRlcmxpbmVPZmZzZXQoVHlwZTo6QXV0byk7CisgICAgfQorCisgICAgc3RhdGljIFRleHRVbmRl
cmxpbmVPZmZzZXQgY3JlYXRlV2l0aExlbmd0aChmbG9hdCBsZW5ndGgpCisgICAgeworICAgICAg
ICBUZXh0VW5kZXJsaW5lT2Zmc2V0IHJlc3VsdChUeXBlOjpMZW5ndGgpOworICAgICAgICByZXN1
bHQuc2V0TGVuZ3RoVmFsdWUobGVuZ3RoKTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9
CisKKyAgICBib29sIGlzQXV0bygpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gIWlzTGVu
Z3RoKCk7CisgICAgfQorCisgICAgYm9vbCBpc0xlbmd0aCgpIGNvbnN0CisgICAgeworICAgICAg
ICByZXR1cm4gc3RhdGljX2Nhc3Q8Ym9vbD4obV9sZW5ndGgpOworICAgIH0KKworICAgIHZvaWQg
c2V0TGVuZ3RoVmFsdWUoZmxvYXQgbGVuZ3RoKQorICAgIHsKKyAgICAgICAgQVNTRVJUKGlzTGVu
Z3RoKCkpOworICAgICAgICBtX2xlbmd0aCA9IGxlbmd0aDsKKyAgICB9CisKKyAgICBmbG9hdCBs
ZW5ndGhWYWx1ZSgpIGNvbnN0CisgICAgeworICAgICAgICBBU1NFUlQoaXNMZW5ndGgoKSk7Cisg
ICAgICAgIHJldHVybiAqbV9sZW5ndGg7CisgICAgfQorCisgICAgZmxvYXQgbGVuZ3RoT3IoZmxv
YXQgZGVmYXVsdFZhbHVlKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIG1fbGVuZ3RoLnZh
bHVlX29yKGRlZmF1bHRWYWx1ZSk7CisgICAgfQorCisgICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0
IFRleHRVbmRlcmxpbmVPZmZzZXQmIG90aGVyKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJu
IG1fbGVuZ3RoID09IG90aGVyLm1fbGVuZ3RoOworICAgIH0KKworICAgIGJvb2wgb3BlcmF0b3Ih
PShjb25zdCBUZXh0VW5kZXJsaW5lT2Zmc2V0JiBvdGhlcikgY29uc3QKKyAgICB7CisgICAgICAg
IHJldHVybiAhKCp0aGlzID09IG90aGVyKTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgZW51bSBj
bGFzcyBUeXBlIHsKKyAgICAgICAgQXV0bywKKyAgICAgICAgTGVuZ3RoCisgICAgfTsKKworICAg
IFRleHRVbmRlcmxpbmVPZmZzZXQoVHlwZSB0eXBlKQorICAgIHsKKyAgICAgICAgaWYgKHR5cGUg
PT0gVHlwZTo6TGVuZ3RoKQorICAgICAgICAgICAgbV9sZW5ndGggPSAwOworICAgIH0KKworICAg
IHN0ZDo6b3B0aW9uYWw8ZmxvYXQ+IG1fbGVuZ3RoOworfTsKKworaW5saW5lIFRleHRTdHJlYW0m
IG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIGNvbnN0IFRleHRVbmRlcmxpbmVPZmZzZXQmIG9m
ZnNldCkKK3sKKyAgICBpZiAob2Zmc2V0LmlzQXV0bygpKQorICAgICAgICB0cyA8PCAiYXV0byI7
CisgICAgZWxzZQorICAgICAgICB0cyA8PCBUZXh0U3RyZWFtOjpGb3JtYXROdW1iZXJSZXNwZWN0
aW5nSW50ZWdlcnMob2Zmc2V0Lmxlbmd0aFZhbHVlKCkpOworICAgIHJldHVybiB0czsKK30KKwor
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3R5bGUv
SW5saW5lVGV4dEJveFN0eWxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL0lubGluZVRleHRC
b3hTdHlsZS5jcHAKaW5kZXggMTM2ZjMxYThlYmI5MGJjYzI4ZGEwNzY5ODY3MzBjMTdjOTgyMzEx
OC4uYWIxNTY3ZmFiZDE5NGMyZDNjZTVkYWEzMjQ4NDY5NDc5N2E1MWNkYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvc3R5bGUvSW5saW5lVGV4dEJveFN0eWxlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9zdHlsZS9JbmxpbmVUZXh0Qm94U3R5bGUuY3BwCkBAIC0zMiw3ICszMiw3IEBACiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAKLWludCBjb21wdXRlVW5kZXJsaW5lT2Zmc2V0KE9w
dGlvblNldDxUZXh0VW5kZXJsaW5lUG9zaXRpb24+IHVuZGVybGluZVBvc2l0aW9uLCBjb25zdCBG
b250TWV0cmljcyYgZm9udE1ldHJpY3MsIGNvbnN0IElubGluZVRleHRCb3gqIGlubGluZVRleHRC
b3gsIGludCB0ZXh0RGVjb3JhdGlvblRoaWNrbmVzcykKK2ludCBjb21wdXRlVW5kZXJsaW5lT2Zm
c2V0KFRleHRVbmRlcmxpbmVQb3NpdGlvbiB1bmRlcmxpbmVQb3NpdGlvbiwgY29uc3QgRm9udE1l
dHJpY3MmIGZvbnRNZXRyaWNzLCBjb25zdCBJbmxpbmVUZXh0Qm94KiBpbmxpbmVUZXh0Qm94LCBp
bnQgdGV4dERlY29yYXRpb25UaGlja25lc3MpCiB7CiAgICAgLy8gVGhpcyByZXByZXNlbnRzIHRo
ZSBnYXAgYmV0d2VlbiB0aGUgYmFzZWxpbmUgYW5kIHRoZSBjbG9zZXN0IGVkZ2Ugb2YgdGhlIHVu
ZGVybGluZS4KICAgICBpbnQgZ2FwID0gc3RkOjptYXg8aW50PigxLCBjZWlsZih0ZXh0RGVjb3Jh
dGlvblRoaWNrbmVzcyAvIDIuMCkpOwpAQCAtNTAsMTMgKzUwLDE0IEBAIGludCBjb21wdXRlVW5k
ZXJsaW5lT2Zmc2V0KE9wdGlvblNldDxUZXh0VW5kZXJsaW5lUG9zaXRpb24+IHVuZGVybGluZVBv
c2l0aW9uLCBjCiAgICAgYXV0byByZXNvbHZlZFVuZGVybGluZVBvc2l0aW9uID0gdW5kZXJsaW5l
UG9zaXRpb247CiAgICAgaWYgKHJlc29sdmVkVW5kZXJsaW5lUG9zaXRpb24gPT0gVGV4dFVuZGVy
bGluZVBvc2l0aW9uOjpBdXRvKSB7CiAgICAgICAgIGlmIChpbmxpbmVUZXh0Qm94KQotICAgICAg
ICAgICAgcmVzb2x2ZWRVbmRlcmxpbmVQb3NpdGlvbiA9IGlubGluZVRleHRCb3gtPnJvb3QoKS5i
YXNlbGluZVR5cGUoKSA9PSBJZGVvZ3JhcGhpY0Jhc2VsaW5lID8gVGV4dFVuZGVybGluZVBvc2l0
aW9uOjpVbmRlciA6IFRleHRVbmRlcmxpbmVQb3NpdGlvbjo6QWxwaGFiZXRpYzsKKyAgICAgICAg
ICAgIHJlc29sdmVkVW5kZXJsaW5lUG9zaXRpb24gPSBpbmxpbmVUZXh0Qm94LT5yb290KCkuYmFz
ZWxpbmVUeXBlKCkgPT0gSWRlb2dyYXBoaWNCYXNlbGluZSA/IFRleHRVbmRlcmxpbmVQb3NpdGlv
bjo6VW5kZXIgOiBUZXh0VW5kZXJsaW5lUG9zaXRpb246OkF1dG87CiAgICAgICAgIGVsc2UKLSAg
ICAgICAgICAgIHJlc29sdmVkVW5kZXJsaW5lUG9zaXRpb24gPSBUZXh0VW5kZXJsaW5lUG9zaXRp
b246OkFscGhhYmV0aWM7CisgICAgICAgICAgICByZXNvbHZlZFVuZGVybGluZVBvc2l0aW9uID0g
VGV4dFVuZGVybGluZVBvc2l0aW9uOjpBdXRvOwogICAgIH0KICAgICAKLSAgICBzd2l0Y2ggKHN0
YXRpY19jYXN0PFRleHRVbmRlcmxpbmVQb3NpdGlvbj4ocmVzb2x2ZWRVbmRlcmxpbmVQb3NpdGlv
bi50b1JhdygpKSkgewotICAgIGNhc2UgVGV4dFVuZGVybGluZVBvc2l0aW9uOjpBbHBoYWJldGlj
OgorICAgIHN3aXRjaCAocmVzb2x2ZWRVbmRlcmxpbmVQb3NpdGlvbikgeworICAgIGNhc2UgVGV4
dFVuZGVybGluZVBvc2l0aW9uOjpBdXRvOgorICAgIGNhc2UgVGV4dFVuZGVybGluZVBvc2l0aW9u
OjpGcm9tRm9udDoKICAgICAgICAgcmV0dXJuIGZvbnRNZXRyaWNzLmFzY2VudCgpICsgZ2FwOwog
ICAgIGNhc2UgVGV4dFVuZGVybGluZVBvc2l0aW9uOjpVbmRlcjogewogICAgICAgICBBU1NFUlQo
aW5saW5lVGV4dEJveCk7CkBAIC03Niw4ICs3Nyw2IEBAIGludCBjb21wdXRlVW5kZXJsaW5lT2Zm
c2V0KE9wdGlvblNldDxUZXh0VW5kZXJsaW5lUG9zaXRpb24+IHVuZGVybGluZVBvc2l0aW9uLCBj
CiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuIGlubGluZVRleHRCb3gtPmxvZ2ljYWxIZWlnaHQo
KSArIGdhcCArIHN0ZDo6bWF4PGZsb2F0PihvZmZzZXQsIDApOwogICAgIH0KLSAgICBjYXNlIFRl
eHRVbmRlcmxpbmVQb3NpdGlvbjo6QXV0bzoKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
CiAgICAgfQogCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9zdHlsZS9JbmxpbmVUZXh0Qm94U3R5bGUuaCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxl
L0lubGluZVRleHRCb3hTdHlsZS5oCmluZGV4IGNjNTMxMmE0ODdkYTg1MTlkZDZkNTA3MDRhNzYw
NzdiYTk3YTNkMjYuLmE4NTI1YTQ2OWJmNzNhMmRmNjVkM2E2OGYwODU3YWM2YjNlMjdkNzAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL0lubGluZVRleHRCb3hTdHlsZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3N0eWxlL0lubGluZVRleHRCb3hTdHlsZS5oCkBAIC00Niw2ICs0Niw2
IEBAIGlubGluZSBmbG9hdCB3YXZ5T2Zmc2V0RnJvbURlY29yYXRpb24oKQogCiBHbHlwaE92ZXJm
bG93IHZpc3VhbE92ZXJmbG93Rm9yRGVjb3JhdGlvbnMoY29uc3QgUmVuZGVyU3R5bGUmIGxpbmVT
dHlsZSwgY29uc3QgSW5saW5lVGV4dEJveCopOwogdm9pZCBnZXRXYXZ5U3Ryb2tlUGFyYW1ldGVy
cyhmbG9hdCBmb250U2l6ZSwgZmxvYXQmIGNvbnRyb2xQb2ludERpc3RhbmNlLCBmbG9hdCYgc3Rl
cCk7Ci1pbnQgY29tcHV0ZVVuZGVybGluZU9mZnNldChPcHRpb25TZXQ8VGV4dFVuZGVybGluZVBv
c2l0aW9uPiwgY29uc3QgRm9udE1ldHJpY3MmLCBjb25zdCBJbmxpbmVUZXh0Qm94KiwgaW50IHRl
eHREZWNvcmF0aW9uVGhpY2tuZXNzKTsKK2ludCBjb21wdXRlVW5kZXJsaW5lT2Zmc2V0KFRleHRV
bmRlcmxpbmVQb3NpdGlvbiwgY29uc3QgRm9udE1ldHJpY3MmLCBjb25zdCBJbmxpbmVUZXh0Qm94
KiwgaW50IHRleHREZWNvcmF0aW9uVGhpY2tuZXNzKTsKICAgICAKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwppbmRleCAwOTBjOTI3Zjk3N2M3MGJiODA1NTU2Yjk2ZmViNzNlMGJjZDc0MTYwLi5m
OGViZTdhY2M2ZGUyMDQxYTk0ZmYyMTdkOGJhZjg5ODdkMmExMjdlIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTggQEAKKzIwMTgtMTEtMDQgIE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNv
bT4KKworICAgICAgICBQYXJzaW5nIHN1cHBvcnQgZm9yIHRleHQtdW5kZXJsaW5lLW9mZnNldCBh
bmQgdGV4dC1kZWNvcmF0aW9uLXRoaWNrbmVzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkxMjQyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtZGVjb3JhdGlv
bi9nZXRDb21wdXRlZFN0eWxlL2dldENvbXB1dGVkU3R5bGUtdGV4dC11bmRlcmxpbmUtcG9zaXRp
b24tZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1kZWNv
cmF0aW9uL2dldENvbXB1dGVkU3R5bGUvZ2V0Q29tcHV0ZWRTdHlsZS10ZXh0LXVuZGVybGluZS1w
b3NpdGlvbi5odG1sOiBVcGRhdGUgdGhlCisgICAgICAgIHRlc3QgZm9yIHRoZSBuZXcgZ3JhbW1h
ciBvZiB0ZXh0LXVuZGVybGluZS1wb3NpdGlvbgorICAgICAgICAqIGZhc3QvY3NzMy10ZXh0L2Nz
czMtdGV4dC1kZWNvcmF0aW9uL3RleHQtZGVjb3JhdGlvbi10aGlja25lc3MtcGFyc2UtZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtZGVjb3Jh
dGlvbi90ZXh0LWRlY29yYXRpb24tdGhpY2tuZXNzLXBhcnNlLmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIGZhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1kZWNvcmF0aW9uL3RleHQtdW5kZXJsaW5lLW9m
ZnNldC1wYXJzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY3NzMy10ZXh0
L2NzczMtdGV4dC1kZWNvcmF0aW9uL3RleHQtdW5kZXJsaW5lLW9mZnNldC1wYXJzZS5odG1sOiBB
ZGRlZC4KKwogMjAxOC0xMS0wNCAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAg
ICAgICAgIFtMRkNdW0JGQ10gQWRkIHN1cHBvcnQgZm9yIHBlcmNlbnRhZ2UgaGVpZ2h0IGluIHF1
aXJrcyBtb2RlLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MzLXRleHQvY3NzMy10
ZXh0LWRlY29yYXRpb24vZ2V0Q29tcHV0ZWRTdHlsZS9nZXRDb21wdXRlZFN0eWxlLXRleHQtdW5k
ZXJsaW5lLXBvc2l0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzMy10ZXh0
L2NzczMtdGV4dC1kZWNvcmF0aW9uL2dldENvbXB1dGVkU3R5bGUvZ2V0Q29tcHV0ZWRTdHlsZS10
ZXh0LXVuZGVybGluZS1wb3NpdGlvbi1leHBlY3RlZC50eHQKaW5kZXggODljNmY4Y2VkNjY4NzZm
MzIzYjQwZTUxNzM4YWIyMWM5YTA4NjkxOS4uZWQxZDU3MGRmZDQ1YzZlYzYzNWFhMTQ1NmMzYWVm
M2U0MzM0YTBjMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MzLXRleHQvY3NzMy10
ZXh0LWRlY29yYXRpb24vZ2V0Q29tcHV0ZWRTdHlsZS9nZXRDb21wdXRlZFN0eWxlLXRleHQtdW5k
ZXJsaW5lLXBvc2l0aW9uLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2NzczMt
dGV4dC9jc3MzLXRleHQtZGVjb3JhdGlvbi9nZXRDb21wdXRlZFN0eWxlL2dldENvbXB1dGVkU3R5
bGUtdGV4dC11bmRlcmxpbmUtcG9zaXRpb24tZXhwZWN0ZWQudHh0CkBAIC0zMSwxNCArMzEsNiBA
QCBQQVNTIGNvbXB1dGVkU3R5bGUud2Via2l0VGV4dFVuZGVybGluZVBvc2l0aW9uIGlzICdhdXRv
JwogUEFTUyBjb21wdXRlZFN0eWxlLmdldFByb3BlcnR5Q1NTVmFsdWUoJy13ZWJraXQtdGV4dC11
bmRlcmxpbmUtcG9zaXRpb24nKS50b1N0cmluZygpIGlzICdbb2JqZWN0IENTU1ByaW1pdGl2ZVZh
bHVlXScKIFBBU1MgY29tcHV0ZWRTdHlsZS5nZXRQcm9wZXJ0eUNTU1ZhbHVlKCctd2Via2l0LXRl
eHQtdW5kZXJsaW5lLXBvc2l0aW9uJykuY3NzVGV4dCBpcyAnYXV0bycKIAotVmFsdWUgJ2FscGhh
YmV0aWMnOgotUEFTUyBlLnN0eWxlLndlYmtpdFRleHRVbmRlcmxpbmVQb3NpdGlvbiBpcyAnYWxw
aGFiZXRpYycKLVBBU1MgZS5zdHlsZS5nZXRQcm9wZXJ0eUNTU1ZhbHVlKCctd2Via2l0LXRleHQt
dW5kZXJsaW5lLXBvc2l0aW9uJykudG9TdHJpbmcoKSBpcyAnW29iamVjdCBDU1NQcmltaXRpdmVW
YWx1ZV0nCi1QQVNTIGUuc3R5bGUuZ2V0UHJvcGVydHlDU1NWYWx1ZSgnLXdlYmtpdC10ZXh0LXVu
ZGVybGluZS1wb3NpdGlvbicpLmNzc1RleHQgaXMgJ2FscGhhYmV0aWMnCi1QQVNTIGNvbXB1dGVk
U3R5bGUud2Via2l0VGV4dFVuZGVybGluZVBvc2l0aW9uIGlzICdhbHBoYWJldGljJwotUEFTUyBj
b21wdXRlZFN0eWxlLmdldFByb3BlcnR5Q1NTVmFsdWUoJy13ZWJraXQtdGV4dC11bmRlcmxpbmUt
cG9zaXRpb24nKS50b1N0cmluZygpIGlzICdbb2JqZWN0IENTU1ByaW1pdGl2ZVZhbHVlXScKLVBB
U1MgY29tcHV0ZWRTdHlsZS5nZXRQcm9wZXJ0eUNTU1ZhbHVlKCctd2Via2l0LXRleHQtdW5kZXJs
aW5lLXBvc2l0aW9uJykuY3NzVGV4dCBpcyAnYWxwaGFiZXRpYycKLQogVmFsdWUgJ3VuZGVyJzoK
IFBBU1MgZS5zdHlsZS53ZWJraXRUZXh0VW5kZXJsaW5lUG9zaXRpb24gaXMgJ3VuZGVyJwogUEFT
UyBlLnN0eWxlLmdldFByb3BlcnR5Q1NTVmFsdWUoJy13ZWJraXQtdGV4dC11bmRlcmxpbmUtcG9z
aXRpb24nKS50b1N0cmluZygpIGlzICdbb2JqZWN0IENTU1ByaW1pdGl2ZVZhbHVlXScKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1kZWNvcmF0aW9uL2dl
dENvbXB1dGVkU3R5bGUvZ2V0Q29tcHV0ZWRTdHlsZS10ZXh0LXVuZGVybGluZS1wb3NpdGlvbi5o
dG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWRlY29yYXRpb24vZ2V0
Q29tcHV0ZWRTdHlsZS9nZXRDb21wdXRlZFN0eWxlLXRleHQtdW5kZXJsaW5lLXBvc2l0aW9uLmh0
bWwKaW5kZXggN2YzNzkyODQ2MjRmMzM1OWZkOTU1YjRmYmIxYTVkYTdlM2ZlMzQyNi4uYTk2OTMw
NmU4NTg0ZGVhZDAxOGY4YTUwYjJkNDBlYTI0Mjc4NDQxNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWRlY29yYXRpb24vZ2V0Q29tcHV0ZWRTdHlsZS9n
ZXRDb21wdXRlZFN0eWxlLXRleHQtdW5kZXJsaW5lLXBvc2l0aW9uLmh0bWwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWRlY29yYXRpb24vZ2V0Q29tcHV0ZWRTdHls
ZS9nZXRDb21wdXRlZFN0eWxlLXRleHQtdW5kZXJsaW5lLXBvc2l0aW9uLmh0bWwKQEAgLTI1LDcg
KzI1LDcgQEAgZnVuY3Rpb24gdGVzdENvbXB1dGVkU3R5bGUocHJvcGVydHlKUywgcHJvcGVydHlD
U1MsIHR5cGUsIHZhbHVlKQogCiBkZXNjcmlwdGlvbigiVGVzdCB0byBtYWtlIHN1cmUgLXdlYmtp
dC10ZXh0LXVuZGVybGluZS1wb3NpdGlvbiBwcm9wZXJ0eSByZXR1cm5zIHZhbHVlcyBwcm9wZXJs
eS4iKQogCi0vLyBGSVhNRTogVGhpcyB0ZXN0IHRlc3RzIHByb3BlcnR5IHZhbHVlcyAnYXV0bycs
ICdhbHBoYWJldGljJyBhbmQgJ3VuZGVyJy4gV2UgZG9uJ3QgZnVsbHkgbWF0Y2gKKy8vIEZJWE1F
OiBUaGlzIHRlc3QgdGVzdHMgcHJvcGVydHkgdmFsdWVzICdhdXRvJyBhbmQgJ3VuZGVyJy4gV2Ug
ZG9uJ3QgZnVsbHkgbWF0Y2gKIC8vIHRoZSBzcGVjaWZpY2F0aW9uIGFzIHdlIGRvbid0IHN1cHBv
cnQgWyBsZWZ0IHwgcmlnaHQgXSBhbmQgdGhpcyBpcyBsZWZ0IGZvciBhbm90aGVyIGltcGxlbWVu
dGF0aW9uCiAvLyBhcyB0aGUgcmVuZGVyaW5nIHdpbGwgbmVlZCB0byBiZSBhZGRlZC4KIApAQCAt
NTksMTIgKzU5LDYgQEAgdGVzdEVsZW1lbnRTdHlsZSgid2Via2l0VGV4dFVuZGVybGluZVBvc2l0
aW9uIiwgIi13ZWJraXQtdGV4dC11bmRlcmxpbmUtcG9zaXRpb24KIHRlc3RDb21wdXRlZFN0eWxl
KCJ3ZWJraXRUZXh0VW5kZXJsaW5lUG9zaXRpb24iLCAiLXdlYmtpdC10ZXh0LXVuZGVybGluZS1w
b3NpdGlvbiIsICJbb2JqZWN0IENTU1ByaW1pdGl2ZVZhbHVlXSIsICJhdXRvIik7CiBkZWJ1Zygn
Jyk7CiAKLWRlYnVnKCJWYWx1ZSAnYWxwaGFiZXRpYyc6Iik7Ci1lLnN0eWxlLndlYmtpdFRleHRV
bmRlcmxpbmVQb3NpdGlvbiA9ICdhbHBoYWJldGljJzsKLXRlc3RFbGVtZW50U3R5bGUoIndlYmtp
dFRleHRVbmRlcmxpbmVQb3NpdGlvbiIsICItd2Via2l0LXRleHQtdW5kZXJsaW5lLXBvc2l0aW9u
IiwgIltvYmplY3QgQ1NTUHJpbWl0aXZlVmFsdWVdIiwgImFscGhhYmV0aWMiKTsKLXRlc3RDb21w
dXRlZFN0eWxlKCJ3ZWJraXRUZXh0VW5kZXJsaW5lUG9zaXRpb24iLCAiLXdlYmtpdC10ZXh0LXVu
ZGVybGluZS1wb3NpdGlvbiIsICJbb2JqZWN0IENTU1ByaW1pdGl2ZVZhbHVlXSIsICJhbHBoYWJl
dGljIik7Ci1kZWJ1ZygnJyk7Ci0KIGRlYnVnKCJWYWx1ZSAndW5kZXInOiIpOwogZS5zdHlsZS53
ZWJraXRUZXh0VW5kZXJsaW5lUG9zaXRpb24gPSAndW5kZXInOwogdGVzdEVsZW1lbnRTdHlsZSgi
d2Via2l0VGV4dFVuZGVybGluZVBvc2l0aW9uIiwgIi13ZWJraXQtdGV4dC11bmRlcmxpbmUtcG9z
aXRpb24iLCAiW29iamVjdCBDU1NQcmltaXRpdmVWYWx1ZV0iLCAidW5kZXIiKTsKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1kZWNvcmF0aW9uL3RleHQt
ZGVjb3JhdGlvbi10aGlja25lc3MtcGFyc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFz
dC9jc3MzLXRleHQvY3NzMy10ZXh0LWRlY29yYXRpb24vdGV4dC1kZWNvcmF0aW9uLXRoaWNrbmVz
cy1wYXJzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2NjOTk0OTE4ZmY0MGM4YTBhMzU3MGQ5
OWUzMTZlNDM2ZGNiNGFkYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3Nz
My10ZXh0L2NzczMtdGV4dC1kZWNvcmF0aW9uL3RleHQtZGVjb3JhdGlvbi10aGlja25lc3MtcGFy
c2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTkgQEAKK1BBU1Mgd2luZG93LmdldENvbXB1dGVk
U3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3QxJykpLmdldFByb3BlcnR5VmFsdWUo
J3RleHQtZGVjb3JhdGlvbi10aGlja25lc3MnKSBpcyAiYXV0byIKK1BBU1Mgd2luZG93LmdldENv
bXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3QyJykpLmdldFByb3BlcnR5
VmFsdWUoJ3RleHQtZGVjb3JhdGlvbi10aGlja25lc3MnKSBpcyAiYXV0byIKK1BBU1Mgd2luZG93
LmdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3QzJykpLmdldFBy
b3BlcnR5VmFsdWUoJ3RleHQtZGVjb3JhdGlvbi10aGlja25lc3MnKSBpcyAiZnJvbS1mb250Igor
UEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVz
dDQnKSkuZ2V0UHJvcGVydHlWYWx1ZSgndGV4dC1kZWNvcmF0aW9uLXRoaWNrbmVzcycpIGlzICJh
dXRvIgorUEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgndGVzdDUnKSkuZ2V0UHJvcGVydHlWYWx1ZSgndGV4dC1kZWNvcmF0aW9uLXRoaWNrbmVzcycp
IGlzICJhdXRvIgorUEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgndGVzdDYnKSkuZ2V0UHJvcGVydHlWYWx1ZSgndGV4dC1kZWNvcmF0aW9uLXRoaWNr
bmVzcycpIGlzICIzN3B4IgorUEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgndGVzdDcnKSkuZ2V0UHJvcGVydHlWYWx1ZSgndGV4dC1kZWNvcmF0aW9u
LXRoaWNrbmVzcycpIGlzICIyMDBweCIKK1BBU1Mgd2luZG93LmdldENvbXB1dGVkU3R5bGUoZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3Q4JykpLmdldFByb3BlcnR5VmFsdWUoJ3RleHQtZGVj
b3JhdGlvbi10aGlja25lc3MnKSBpcyAiNDBweCIKK1BBU1MgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ3RhcmdldCcpLnNoZWV0LmNzc1J1bGVzWzBdLnN0eWxlLnRleHREZWNvcmF0aW9uVGhpY2tu
ZXNzIGlzICIiCitQQVNTIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0YXJnZXQnKS5zaGVldC5j
c3NSdWxlc1sxXS5zdHlsZS50ZXh0RGVjb3JhdGlvblRoaWNrbmVzcyBpcyAiYXV0byIKK1BBU1Mg
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RhcmdldCcpLnNoZWV0LmNzc1J1bGVzWzJdLnN0eWxl
LnRleHREZWNvcmF0aW9uVGhpY2tuZXNzIGlzICJmcm9tLWZvbnQiCitQQVNTIGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCd0YXJnZXQnKS5zaGVldC5jc3NSdWxlc1szXS5zdHlsZS50ZXh0RGVjb3Jh
dGlvblRoaWNrbmVzcyBpcyAiIgorUEFTUyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGFyZ2V0
Jykuc2hlZXQuY3NzUnVsZXNbNF0uc3R5bGUudGV4dERlY29yYXRpb25UaGlja25lc3MgaXMgIiIK
K1BBU1MgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RhcmdldCcpLnNoZWV0LmNzc1J1bGVzWzVd
LnN0eWxlLnRleHREZWNvcmF0aW9uVGhpY2tuZXNzIGlzICIzN3B4IgorUEFTUyBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgndGFyZ2V0Jykuc2hlZXQuY3NzUnVsZXNbNl0uc3R5bGUudGV4dERlY29y
YXRpb25UaGlja25lc3MgaXMgIjJlbSIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
KworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2NzczMtdGV4
dC9jc3MzLXRleHQtZGVjb3JhdGlvbi90ZXh0LWRlY29yYXRpb24tdGhpY2tuZXNzLXBhcnNlLmh0
bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtZGVjb3JhdGlvbi90ZXh0
LWRlY29yYXRpb24tdGhpY2tuZXNzLXBhcnNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWQ5YWYzNjk5Y2Y3
ZmZhMDQ5MmZiOTg3NDEzMjlhYWYzNDQwNmQzMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1kZWNvcmF0aW9uL3RleHQtZGVjb3JhdGlvbi10
aGlja25lc3MtcGFyc2UuaHRtbApAQCAtMCwwICsxLDU2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxo
dG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJl
LmpzIj48L3NjcmlwdD4KKzxzdHlsZSBpZD0idGFyZ2V0Ij4KKyNkdW1teSB7Cit9CisjZHVtbXkg
eworICAgIHRleHQtZGVjb3JhdGlvbi10aGlja25lc3M6IGF1dG87Cit9CisjZHVtbXkgeworICAg
IHRleHQtZGVjb3JhdGlvbi10aGlja25lc3M6IGZyb20tZm9udDsKK30KKyNkdW1teSB7CisgICAg
dGV4dC1kZWNvcmF0aW9uLXRoaWNrbmVzczogYXV0byAzN3B4OworfQorI2R1bW15IHsKKyAgICB0
ZXh0LWRlY29yYXRpb24tdGhpY2tuZXNzOiBnYXJiYWdlOworfQorI2R1bW15IHsKKyAgICB0ZXh0
LWRlY29yYXRpb24tdGhpY2tuZXNzOiAzN3B4OworfQorI2R1bW15IHsKKyAgICB0ZXh0LWRlY29y
YXRpb24tdGhpY2tuZXNzOiAyZW07Cit9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2
IGlkPSJ0ZXN0MSI+PC9kaXY+Cis8ZGl2IGlkPSJ0ZXN0MiIgc3R5bGU9InRleHQtZGVjb3JhdGlv
bi10aGlja25lc3M6IGF1dG87Ij48L2Rpdj4KKzxkaXYgaWQ9InRlc3QzIiBzdHlsZT0idGV4dC1k
ZWNvcmF0aW9uLXRoaWNrbmVzczogZnJvbS1mb250OyI+PC9kaXY+Cis8ZGl2IGlkPSJ0ZXN0NCIg
c3R5bGU9InRleHQtZGVjb3JhdGlvbi10aGlja25lc3M6IGF1dG8gMzdweDsiPjwvZGl2PgorPGRp
diBpZD0idGVzdDUiIHN0eWxlPSJ0ZXh0LWRlY29yYXRpb24tdGhpY2tuZXNzOiBnYXJiYWdlOyI+
PC9kaXY+Cis8ZGl2IGlkPSJ0ZXN0NiIgc3R5bGU9InRleHQtZGVjb3JhdGlvbi10aGlja25lc3M6
IDM3cHg7Ij48L2Rpdj4KKzxkaXYgaWQ9InRlc3Q3IiBzdHlsZT0iZm9udC1zaXplOiAxMDBweDsg
dGV4dC1kZWNvcmF0aW9uLXRoaWNrbmVzczogMmVtOyI+PC9kaXY+Cis8ZGl2IHN0eWxlPSJmb250
LXNpemU6IDIwcHg7IHRleHQtZGVjb3JhdGlvbi10aGlja25lc3M6IDJlbTsiPjxkaXYgaWQ9InRl
c3Q4IiBzdHlsZT0iZm9udC1zaXplOiAxMDBweDsiPjwvZGl2PjwvZGl2PgorPHNjcmlwdD4KK3No
b3VsZEJlRXF1YWxUb1N0cmluZygid2luZG93LmdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ3Rlc3QxJykpLmdldFByb3BlcnR5VmFsdWUoJ3RleHQtZGVjb3JhdGlvbi10
aGlja25lc3MnKSIsICJhdXRvIik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoIndpbmRvdy5nZXRD
b21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0MicpKS5nZXRQcm9wZXJ0
eVZhbHVlKCd0ZXh0LWRlY29yYXRpb24tdGhpY2tuZXNzJykiLCAiYXV0byIpOworc2hvdWxkQmVF
cXVhbFRvU3RyaW5nKCJ3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgndGVzdDMnKSkuZ2V0UHJvcGVydHlWYWx1ZSgndGV4dC1kZWNvcmF0aW9uLXRoaWNrbmVz
cycpIiwgImZyb20tZm9udCIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJ3aW5kb3cuZ2V0Q29t
cHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdDQnKSkuZ2V0UHJvcGVydHlW
YWx1ZSgndGV4dC1kZWNvcmF0aW9uLXRoaWNrbmVzcycpIiwgImF1dG8iKTsKK3Nob3VsZEJlRXF1
YWxUb1N0cmluZygid2luZG93LmdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ3Rlc3Q1JykpLmdldFByb3BlcnR5VmFsdWUoJ3RleHQtZGVjb3JhdGlvbi10aGlja25lc3Mn
KSIsICJhdXRvIik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoIndpbmRvdy5nZXRDb21wdXRlZFN0
eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0NicpKS5nZXRQcm9wZXJ0eVZhbHVlKCd0
ZXh0LWRlY29yYXRpb24tdGhpY2tuZXNzJykiLCAiMzdweCIpOworc2hvdWxkQmVFcXVhbFRvU3Ry
aW5nKCJ3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVz
dDcnKSkuZ2V0UHJvcGVydHlWYWx1ZSgndGV4dC1kZWNvcmF0aW9uLXRoaWNrbmVzcycpIiwgIjIw
MHB4Iik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoIndpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0OCcpKS5nZXRQcm9wZXJ0eVZhbHVlKCd0ZXh0LWRl
Y29yYXRpb24tdGhpY2tuZXNzJykiLCAiNDBweCIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGFyZ2V0Jykuc2hlZXQuY3NzUnVsZXNbMF0uc3R5bGUu
dGV4dERlY29yYXRpb25UaGlja25lc3MiLCAiIik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoImRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCd0YXJnZXQnKS5zaGVldC5jc3NSdWxlc1sxXS5zdHlsZS50
ZXh0RGVjb3JhdGlvblRoaWNrbmVzcyIsICJhdXRvIik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmco
ImRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0YXJnZXQnKS5zaGVldC5jc3NSdWxlc1syXS5zdHls
ZS50ZXh0RGVjb3JhdGlvblRoaWNrbmVzcyIsICJmcm9tLWZvbnQiKTsKK3Nob3VsZEJlRXF1YWxU
b1N0cmluZygiZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RhcmdldCcpLnNoZWV0LmNzc1J1bGVz
WzNdLnN0eWxlLnRleHREZWNvcmF0aW9uVGhpY2tuZXNzIiwgIiIpOworc2hvdWxkQmVFcXVhbFRv
U3RyaW5nKCJkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGFyZ2V0Jykuc2hlZXQuY3NzUnVsZXNb
NF0uc3R5bGUudGV4dERlY29yYXRpb25UaGlja25lc3MiLCAiIik7CitzaG91bGRCZUVxdWFsVG9T
dHJpbmcoImRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0YXJnZXQnKS5zaGVldC5jc3NSdWxlc1s1
XS5zdHlsZS50ZXh0RGVjb3JhdGlvblRoaWNrbmVzcyIsICIzN3B4Iik7CitzaG91bGRCZUVxdWFs
VG9TdHJpbmcoImRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0YXJnZXQnKS5zaGVldC5jc3NSdWxl
c1s2XS5zdHlsZS50ZXh0RGVjb3JhdGlvblRoaWNrbmVzcyIsICIyZW0iKTsKKzwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0
PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MzLXRl
eHQvY3NzMy10ZXh0LWRlY29yYXRpb24vdGV4dC11bmRlcmxpbmUtb2Zmc2V0LXBhcnNlLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1kZWNvcmF0aW9u
L3RleHQtdW5kZXJsaW5lLW9mZnNldC1wYXJzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzg0
MGM3YjVkY2I4ZmIxZWMwNmNiYjdjMjAwMjkwYjVmNzJiZDg0ZgotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1kZWNvcmF0aW9uL3RleHQtdW5k
ZXJsaW5lLW9mZnNldC1wYXJzZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNyBAQAorUEFTUyB3
aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdDEnKSku
Z2V0UHJvcGVydHlWYWx1ZSgndGV4dC11bmRlcmxpbmUtb2Zmc2V0JykgaXMgImF1dG8iCitQQVNT
IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0Micp
KS5nZXRQcm9wZXJ0eVZhbHVlKCd0ZXh0LXVuZGVybGluZS1vZmZzZXQnKSBpcyAiYXV0byIKK1BB
U1Mgd2luZG93LmdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3Qz
JykpLmdldFByb3BlcnR5VmFsdWUoJ3RleHQtdW5kZXJsaW5lLW9mZnNldCcpIGlzICJhdXRvIgor
UEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVz
dDQnKSkuZ2V0UHJvcGVydHlWYWx1ZSgndGV4dC11bmRlcmxpbmUtb2Zmc2V0JykgaXMgImF1dG8i
CitQQVNTIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0
ZXN0NScpKS5nZXRQcm9wZXJ0eVZhbHVlKCd0ZXh0LXVuZGVybGluZS1vZmZzZXQnKSBpcyAiMzdw
eCIKK1BBU1Mgd2luZG93LmdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J3Rlc3Q2JykpLmdldFByb3BlcnR5VmFsdWUoJ3RleHQtdW5kZXJsaW5lLW9mZnNldCcpIGlzICIy
MDBweCIKK1BBU1Mgd2luZG93LmdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ3Rlc3Q3JykpLmdldFByb3BlcnR5VmFsdWUoJ3RleHQtdW5kZXJsaW5lLW9mZnNldCcpIGlz
ICI0MHB4IgorUEFTUyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGFyZ2V0Jykuc2hlZXQuY3Nz
UnVsZXNbMF0uc3R5bGUudGV4dFVuZGVybGluZU9mZnNldCBpcyAiIgorUEFTUyBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgndGFyZ2V0Jykuc2hlZXQuY3NzUnVsZXNbMV0uc3R5bGUudGV4dFVuZGVy
bGluZU9mZnNldCBpcyAiYXV0byIKK1BBU1MgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rhcmdl
dCcpLnNoZWV0LmNzc1J1bGVzWzJdLnN0eWxlLnRleHRVbmRlcmxpbmVPZmZzZXQgaXMgIiIKK1BB
U1MgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RhcmdldCcpLnNoZWV0LmNzc1J1bGVzWzNdLnN0
eWxlLnRleHRVbmRlcmxpbmVPZmZzZXQgaXMgIiIKK1BBU1MgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ3RhcmdldCcpLnNoZWV0LmNzc1J1bGVzWzRdLnN0eWxlLnRleHRVbmRlcmxpbmVPZmZzZXQg
aXMgIjM3cHgiCitQQVNTIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0YXJnZXQnKS5zaGVldC5j
c3NSdWxlc1s1XS5zdHlsZS50ZXh0VW5kZXJsaW5lT2Zmc2V0IGlzICIyZW0iCitQQVNTIHN1Y2Nl
c3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWRlY29yYXRpb24vdGV4dC11bmRlcmxp
bmUtb2Zmc2V0LXBhcnNlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2NzczMtdGV4dC9jc3MzLXRl
eHQtZGVjb3JhdGlvbi90ZXh0LXVuZGVybGluZS1vZmZzZXQtcGFyc2UuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5hYjAxZTFiZTg4YWQ2NDcyZDI3OTI5MjRkZThmZGJhZDBjMDc4MGNiCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWRlY29yYXRpb24vdGV4
dC11bmRlcmxpbmUtb2Zmc2V0LXBhcnNlLmh0bWwKQEAgLTAsMCArMSw1MCBAQAorPCFET0NUWVBF
IGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9q
cy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c3R5bGUgaWQ9InRhcmdldCI+CisjZHVtbXkgewor
fQorI2R1bW15IHsKKyAgICB0ZXh0LXVuZGVybGluZS1vZmZzZXQ6IGF1dG87Cit9CisjZHVtbXkg
eworICAgIHRleHQtdW5kZXJsaW5lLW9mZnNldDogYXV0byAzN3B4OworfQorI2R1bW15IHsKKyAg
ICB0ZXh0LXVuZGVybGluZS1vZmZzZXQ6IGdhcmJhZ2U7Cit9CisjZHVtbXkgeworICAgIHRleHQt
dW5kZXJsaW5lLW9mZnNldDogMzdweDsKK30KKyNkdW1teSB7CisgICAgdGV4dC11bmRlcmxpbmUt
b2Zmc2V0OiAyZW07Cit9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IGlkPSJ0ZXN0
MSI+PC9kaXY+Cis8ZGl2IGlkPSJ0ZXN0MiIgc3R5bGU9InRleHQtdW5kZXJsaW5lLW9mZnNldDog
YXV0bzsiPjwvZGl2PgorPGRpdiBpZD0idGVzdDMiIHN0eWxlPSJ0ZXh0LXVuZGVybGluZS1vZmZz
ZXQ6IGF1dG8gMzdweDsiPjwvZGl2PgorPGRpdiBpZD0idGVzdDQiIHN0eWxlPSJ0ZXh0LXVuZGVy
bGluZS1vZmZzZXQ6IGdhcmJhZ2U7Ij48L2Rpdj4KKzxkaXYgaWQ9InRlc3Q1IiBzdHlsZT0idGV4
dC11bmRlcmxpbmUtb2Zmc2V0OiAzN3B4OyI+PC9kaXY+Cis8ZGl2IGlkPSJ0ZXN0NiIgc3R5bGU9
ImZvbnQtc2l6ZTogMTAwcHg7IHRleHQtdW5kZXJsaW5lLW9mZnNldDogMmVtOyI+PC9kaXY+Cis8
ZGl2IHN0eWxlPSJmb250LXNpemU6IDIwcHg7IHRleHQtdW5kZXJsaW5lLW9mZnNldDogMmVtOyI+
PGRpdiBpZD0idGVzdDciIHN0eWxlPSJmb250LXNpemU6IDEwMHB4OyI+PC9kaXY+PC9kaXY+Cis8
c2NyaXB0Pgorc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJ3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdDEnKSkuZ2V0UHJvcGVydHlWYWx1ZSgndGV4dC11
bmRlcmxpbmUtb2Zmc2V0JykiLCAiYXV0byIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJ3aW5k
b3cuZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdDInKSkuZ2V0
UHJvcGVydHlWYWx1ZSgndGV4dC11bmRlcmxpbmUtb2Zmc2V0JykiLCAiYXV0byIpOworc2hvdWxk
QmVFcXVhbFRvU3RyaW5nKCJ3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgndGVzdDMnKSkuZ2V0UHJvcGVydHlWYWx1ZSgndGV4dC11bmRlcmxpbmUtb2Zmc2V0
JykiLCAiYXV0byIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJ3aW5kb3cuZ2V0Q29tcHV0ZWRT
dHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdDQnKSkuZ2V0UHJvcGVydHlWYWx1ZSgn
dGV4dC11bmRlcmxpbmUtb2Zmc2V0JykiLCAiYXV0byIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5n
KCJ3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdDUn
KSkuZ2V0UHJvcGVydHlWYWx1ZSgndGV4dC11bmRlcmxpbmUtb2Zmc2V0JykiLCAiMzdweCIpOwor
c2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJ3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgndGVzdDYnKSkuZ2V0UHJvcGVydHlWYWx1ZSgndGV4dC11bmRlcmxpbmUt
b2Zmc2V0JykiLCAiMjAwcHgiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygid2luZG93LmdldENv
bXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3Q3JykpLmdldFByb3BlcnR5
VmFsdWUoJ3RleHQtdW5kZXJsaW5lLW9mZnNldCcpIiwgIjQwcHgiKTsKK3Nob3VsZEJlRXF1YWxU
b1N0cmluZygiZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RhcmdldCcpLnNoZWV0LmNzc1J1bGVz
WzBdLnN0eWxlLnRleHRVbmRlcmxpbmVPZmZzZXQiLCAiIik7CitzaG91bGRCZUVxdWFsVG9TdHJp
bmcoImRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0YXJnZXQnKS5zaGVldC5jc3NSdWxlc1sxXS5z
dHlsZS50ZXh0VW5kZXJsaW5lT2Zmc2V0IiwgImF1dG8iKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmlu
ZygiZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RhcmdldCcpLnNoZWV0LmNzc1J1bGVzWzJdLnN0
eWxlLnRleHRVbmRlcmxpbmVPZmZzZXQiLCAiIik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoImRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCd0YXJnZXQnKS5zaGVldC5jc3NSdWxlc1szXS5zdHlsZS50
ZXh0VW5kZXJsaW5lT2Zmc2V0IiwgIiIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgndGFyZ2V0Jykuc2hlZXQuY3NzUnVsZXNbNF0uc3R5bGUudGV4dFVu
ZGVybGluZU9mZnNldCIsICIzN3B4Iik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoImRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCd0YXJnZXQnKS5zaGVldC5jc3NSdWxlc1s1XS5zdHlsZS50ZXh0VW5k
ZXJsaW5lT2Zmc2V0IiwgIjJlbSIpOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4v
cmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>
<flag name="review"
          id="371042"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
          </attachment>
      

    </bug>

</bugzilla>