<?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>75925</bug_id>
          
          <creation_ts>2012-01-09 18:40:18 -0800</creation_ts>
          <short_desc>Implement WebGLShaderPrecisionFormat</short_desc>
          <delta_ts>2012-04-03 14:55:15 -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>WebGL</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Zhenyao Mo">zmo</reporter>
          <assigned_to name="Zhenyao Mo">zmo</assigned_to>
          <cc>abarth</cc>
    
    <cc>cmarrin</cc>
    
    <cc>dglazkov</cc>
    
    <cc>fishd</cc>
    
    <cc>gustavo</cc>
    
    <cc>jamesr</cc>
    
    <cc>kbr</cc>
    
    <cc>ojan</cc>
    
    <cc>pnormand</cc>
    
    <cc>rakuco</cc>
    
    <cc>tkent</cc>
    
    <cc>vestbo</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>532758</commentid>
    <comment_count>0</comment_count>
    <who name="Zhenyao Mo">zmo</who>
    <bug_when>2012-01-09 18:40:18 -0800</bug_when>
    <thetext>and its query</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>594131</commentid>
    <comment_count>1</comment_count>
      <attachid>135256</attachid>
    <who name="Zhenyao Mo">zmo</who>
    <bug_when>2012-04-02 19:02:03 -0700</bug_when>
    <thetext>Created attachment 135256
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>594133</commentid>
    <comment_count>2</comment_count>
    <who name="Zhenyao Mo">zmo</who>
    <bug_when>2012-04-02 19:03:10 -0700</bug_when>
    <thetext>Ken, please review.

Developing in Webkit becomes more and more painful when new files are added.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>594601</commentid>
    <comment_count>3</comment_count>
      <attachid>135353</attachid>
    <who name="Zhenyao Mo">zmo</who>
    <bug_when>2012-04-03 10:21:35 -0700</bug_when>
    <thetext>Created attachment 135353
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>594604</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-04-03 10:24:50 -0700</bug_when>
    <thetext>Please wait for approval from abarth@webkit.org, dglazkov@chromium.org, fishd@chromium.org, jamesr@chromium.org or tkent@chromium.org before submitting, as this patch contains changes to the Chromium public API. See also https://trac.webkit.org/wiki/ChromiumWebKitAPI.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>594646</commentid>
    <comment_count>5</comment_count>
      <attachid>135353</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2012-04-03 10:59:00 -0700</bug_when>
    <thetext>Comment on attachment 135353
Patch

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

Looks good overall. A few minor issues which you can fix upon landing, or feel free to upload a new version. r=me

&gt; Source/Platform/chromium/public/WebGraphicsContext3D.h:289
&gt; +    virtual void getShaderPrecisionFormat(WGC3Denum shadertype, WGC3Denum precisiontype, WGC3Dint* range, WGC3Dint* precision) = 0;

Has the Chromium implementation of this already landed?

&gt; Source/WebCore/html/canvas/WebGLShaderPrecisionFormat.h:38
&gt; +    static PassRefPtr&lt;WebGLShaderPrecisionFormat&gt; create(GC3Dint rangeMin, GC3Dint rangeMax, GC3Dint precision)

Please consider putting these inlined methods into a .cpp file. Having them in the header increases code size.

&gt; Source/WebCore/platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:1217
&gt; +void GraphicsContext3D::getShaderPrecisionFormat(GC3Denum shaderType, GC3Denum precisionType, GC3Dint* range, GC3Dint* precision)

Architecturally speaking I think this should go in GraphicsContext3DOpenGL.cpp. That file targets desktop GL specifically, while the Common file is used on both ES and GL systems. This hand-coded implementation is only needed on desktop GL, since on ES 2.0 this call actually exists.

&gt; Source/WebCore/platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:1229
&gt; +        range[0] = -31;

Could you add a comment indicating that these constants came from the Chromium port, and that we believe they originally came from making the actual API call on a representative desktop system?

&gt; Source/WebCore/platform/graphics/qt/GraphicsContext3DQt.cpp:1375
&gt; +        range[0] = -31;

Same comment needed here. Also I think a FIXME should be added indicating that this should be retargeted at the real getShaderPrecisionFormat call on true ES 2.0 hardware. (I believe the Qt port aims to run on ES 2.0.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>594679</commentid>
    <comment_count>6</comment_count>
      <attachid>135353</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-04-03 11:27:09 -0700</bug_when>
    <thetext>Comment on attachment 135353
Patch

Attachment 135353 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/12321246</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>594705</commentid>
    <comment_count>7</comment_count>
      <attachid>135382</attachid>
    <who name="Zhenyao Mo">zmo</who>
    <bug_when>2012-04-03 11:56:51 -0700</bug_when>
    <thetext>Created attachment 135382
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>594707</commentid>
    <comment_count>8</comment_count>
    <who name="Zhenyao Mo">zmo</who>
    <bug_when>2012-04-03 11:58:09 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 135353 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=135353&amp;action=review
&gt; 
&gt; Looks good overall. A few minor issues which you can fix upon landing, or feel free to upload a new version. r=me
&gt; 
&gt; &gt; Source/Platform/chromium/public/WebGraphicsContext3D.h:289
&gt; &gt; +    virtual void getShaderPrecisionFormat(WGC3Denum shadertype, WGC3Denum precisiontype, WGC3Dint* range, WGC3Dint* precision) = 0;
&gt; 
&gt; Has the Chromium implementation of this already landed?

Yes.

&gt; 
&gt; &gt; Source/WebCore/html/canvas/WebGLShaderPrecisionFormat.h:38
&gt; &gt; +    static PassRefPtr&lt;WebGLShaderPrecisionFormat&gt; create(GC3Dint rangeMin, GC3Dint rangeMax, GC3Dint precision)
&gt; 
&gt; Please consider putting these inlined methods into a .cpp file. Having them in the header increases code size.

Done.

&gt; 
&gt; &gt; Source/WebCore/platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:1217
&gt; &gt; +void GraphicsContext3D::getShaderPrecisionFormat(GC3Denum shaderType, GC3Denum precisionType, GC3Dint* range, GC3Dint* precision)
&gt; 
&gt; Architecturally speaking I think this should go in GraphicsContext3DOpenGL.cpp. That file targets desktop GL specifically, while the Common file is used on both ES and GL systems. This hand-coded implementation is only needed on desktop GL, since on ES 2.0 this call actually exists.

Done, and also add the function to GraphicsContext3DOpenGLES.cpp

&gt; 
&gt; &gt; Source/WebCore/platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:1229
&gt; &gt; +        range[0] = -31;
&gt; 
&gt; Could you add a comment indicating that these constants came from the Chromium port, and that we believe they originally came from making the actual API call on a representative desktop system?

Done.

&gt; 
&gt; &gt; Source/WebCore/platform/graphics/qt/GraphicsContext3DQt.cpp:1375
&gt; &gt; +        range[0] = -31;
&gt; 
&gt; Same comment needed here. Also I think a FIXME should be added indicating that this should be retargeted at the real getShaderPrecisionFormat call on true ES 2.0 hardware. (I believe the Qt port aims to run on ES 2.0.)

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>594722</commentid>
    <comment_count>9</comment_count>
      <attachid>135382</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2012-04-03 12:08:36 -0700</bug_when>
    <thetext>Comment on attachment 135382
Patch

Attachment 135382 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/12322293</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>594725</commentid>
    <comment_count>10</comment_count>
      <attachid>135382</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2012-04-03 12:11:40 -0700</bug_when>
    <thetext>Comment on attachment 135382
Patch

Thanks for the updates. Looks good. r=me again, though looks like there are still build issues.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>594776</commentid>
    <comment_count>11</comment_count>
    <who name="Zhenyao Mo">zmo</who>
    <bug_when>2012-04-03 12:58:46 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; (From update of attachment 135382 [details])
&gt; Thanks for the updates. Looks good. r=me again, though looks like there are still build issues.

The build issue in chromium was due to FakeWebGraphicsContext3D missing the implementation of getShaderPrecisionFormat, which I fixed in the patch.  Hopefully the bot will turn green.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>594927</commentid>
    <comment_count>12</comment_count>
    <who name="Zhenyao Mo">zmo</who>
    <bug_when>2012-04-03 14:55:15 -0700</bug_when>
    <thetext>Committed r113092: &lt;http://trac.webkit.org/changeset/113092&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>135256</attachid>
            <date>2012-04-02 19:02:03 -0700</date>
            <delta_ts>2012-04-03 10:21:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-75925-20120402190201.patch</filename>
            <type>text/plain</type>
            <size>50499</size>
            <attacher name="Zhenyao Mo">zmo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1Bs
YXRmb3JtL0NoYW5nZUxvZwkocmV2aXNpb24gMTEyOTczKQorKysgU291cmNlL1BsYXRmb3JtL0No
YW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEzIEBACisyMDEyLTA0LTAyICBaaGVu
eWFvIE1vICA8em1vQGdvb2dsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IFdlYkdMU2hhZGVy
UHJlY2lzaW9uRm9ybWF0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD03NTkyNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogY2hyb21pdW0vcHVibGljL1dlYkdyYXBoaWNzQ29udGV4dDNELmg6IEFkZCBnZXRT
aGFkZXJQcmVjaXNpb25Gb3JtYXQoKS4KKyAgICAgICAgKFdlYkdyYXBoaWNzQ29udGV4dDNEKToK
KwogMjAxMi0wNC0wMiAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgogCiAgICAgICAg
IFtDaHJvbWl1bV0gTW92ZSBhIG51bWJlciBvZiB2aXJ0dWFsIGZ1bmN0aW9ucyBmcm9tIFdlYktp
dFBsYXRmb3JtU3VwcG9ydC5oIGludG8gUGxhdGZvcm0uaApJbmRleDogU291cmNlL1BsYXRmb3Jt
L2Nocm9taXVtL3B1YmxpYy9XZWJHcmFwaGljc0NvbnRleHQzRC5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViR3JhcGhpY3NDb250ZXh0M0QuaAkocmV2
aXNpb24gMTEyOTAzKQorKysgU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJHcmFw
aGljc0NvbnRleHQzRC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yODYsMTAgKzI4Niw3IEBAIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIHZvaWQgZ2V0UmVuZGVyYnVmZmVyUGFyYW1ldGVyaXYoV0dDM0RlbnVt
IHRhcmdldCwgV0dDM0RlbnVtIHBuYW1lLCBXR0MzRGludCogdmFsdWUpID0gMDsKICAgICB2aXJ0
dWFsIHZvaWQgZ2V0U2hhZGVyaXYoV2ViR0xJZCBzaGFkZXIsIFdHQzNEZW51bSBwbmFtZSwgV0dD
M0RpbnQqIHZhbHVlKSA9IDA7CiAgICAgdmlydHVhbCBXZWJTdHJpbmcgZ2V0U2hhZGVySW5mb0xv
ZyhXZWJHTElkIHNoYWRlcikgPSAwOwotCi0gICAgLy8gVEJECi0gICAgLy8gdm9pZCBnbEdldFNo
YWRlclByZWNpc2lvbkZvcm1hdCAoR0xlbnVtIHNoYWRlcnR5cGUsIEdMZW51bSBwcmVjaXNpb250
eXBlLCBHTGludCogcmFuZ2UsIEdMaW50KiBwcmVjaXNpb24pOwotCisgICAgdmlydHVhbCB2b2lk
IGdldFNoYWRlclByZWNpc2lvbkZvcm1hdChXR0MzRGVudW0gc2hhZGVydHlwZSwgV0dDM0RlbnVt
IHByZWNpc2lvbnR5cGUsIFdHQzNEaW50KiByYW5nZSwgV0dDM0RpbnQqIHByZWNpc2lvbikgPSAw
OwogICAgIHZpcnR1YWwgV2ViU3RyaW5nIGdldFNoYWRlclNvdXJjZShXZWJHTElkIHNoYWRlcikg
PSAwOwogICAgIHZpcnR1YWwgV2ViU3RyaW5nIGdldFN0cmluZyhXR0MzRGVudW0gbmFtZSkgPSAw
OwogICAgIHZpcnR1YWwgdm9pZCBnZXRUZXhQYXJhbWV0ZXJmdihXR0MzRGVudW0gdGFyZ2V0LCBX
R0MzRGVudW0gcG5hbWUsIFdHQzNEZmxvYXQqIHZhbHVlKSA9IDA7CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCShy
ZXZpc2lvbiAxMTI5NzMpCisrKyBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29w
eSkKQEAgLTEsMyArMSw0NCBAQAorMjAxMi0wNC0wMiAgWmhlbnlhbyBNbyAgPHptb0Bnb29nbGUu
Y29tPgorCisgICAgICAgIEltcGxlbWVudCBXZWJHTFNoYWRlclByZWNpc2lvbkZvcm1hdAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU5MjUKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0OiBmYXN0L2Nh
bnZhcy93ZWJnbC9zaGFkZXItcHJlY2lzaW9uLWZvcm1hdC5odG1sCisKKyAgICAgICAgKiBDTWFr
ZUxpc3RzLnR4dDogQWRkIG5ldyBzb3VyY2UgZmlsZXMgd2ViZ2xzaGFkZXJwcmVjaXNpb25mb3Jt
YXQuaC9pZGwKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOiBEaXR0by4KKyAgICAgICAg
KiBEZXJpdmVkU291cmNlcy5wcmk6IERpdHRvLgorICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3Qu
YW06IERpdHRvLgorICAgICAgICAqIFRhcmdldC5wcmk6IERpdHRvLgorICAgICAgICAqIFdlYkNv
cmUuZ3lwaTogRGl0dG8uCisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qOiBEaXR0by4KKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQu
Y3BwOiBBZGQgZ2V0U2hhZGVyUHJlY2lzaW9uRm9ybWF0LgorICAgICAgICAoV2ViQ29yZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdldFNoYWRlclByZWNpc2lv
bkZvcm1hdCk6CisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0Lmg6
IERpdHRvLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJHTFJlbmRlcmluZ0NvbnRl
eHQpOgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5pZGw6IERp
dHRvLgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMU2hhZGVyUHJlY2lzaW9uRm9ybWF0Lmg6
IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJHTFNoYWRlclByZWNpc2lv
bkZvcm1hdCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFNoYWRlclByZWNpc2lvbkZvcm1hdDo6
Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMU2hhZGVyUHJlY2lzaW9uRm9ybWF0Ojpy
YW5nZU1pbik6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFNoYWRlclByZWNpc2lvbkZvcm1hdDo6
cmFuZ2VNYXgpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xTaGFkZXJQcmVjaXNpb25Gb3JtYXQ6
OnByZWNpc2lvbik6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFNoYWRlclByZWNpc2lvbkZvcm1h
dDo6V2ViR0xTaGFkZXJQcmVjaXNpb25Gb3JtYXQpOgorICAgICAgICAqIGh0bWwvY2FudmFzL1dl
YkdMU2hhZGVyUHJlY2lzaW9uRm9ybWF0LmlkbDogQWRkZWQuCisgICAgICAgICogcGFnZS9ET01X
aW5kb3cuaWRsOiBFeHBvc2UgbmV3IHR5cGUgV2ViR0xTaGFkZXJQcmVjaXNpb25Gb3JtYXQgZm9y
IGluc3RhbmNlb2YuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0
M0QuaDogQWRkIGdldFNoYWRlclByZWNpc2lvbkZvcm1hdCgpLgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHQzRE9wZW5HTENvbW1vbi5jcHA6IERpdHRv
LgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OmdldFNoYWRlclByZWNpc2lv
bkZvcm1hdCk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9xdC9HcmFwaGljc0NvbnRleHQzRFF0LmNwcDogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpH
cmFwaGljc0NvbnRleHQzRDo6Z2V0U2hhZGVyUHJlY2lzaW9uRm9ybWF0KToKKyAgICAgICAgKFdl
YkNvcmUpOgorCiAyMDEyLTA0LTAyICBBYmhpc2hlayBBcnlhICA8aW5mZXJub0BjaHJvbWl1bS5v
cmc+CiAKICAgICAgICAgPHNlbGVjdD4gc2hvdWxkbid0IGludHJ1ZGUgYXMgYSBydW4taW4uCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9DTWFrZUxpc3RzLnR4dAkocmV2aXNpb24gMTEyOTAzKQorKysgU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQJKHdvcmtpbmcgY29weSkKQEAgLTIzMTgsNiArMjMxOCw3IEBAIElG
IChFTkFCTEVfV0VCR0wpCiAgICAgICAgIGh0bWwvY2FudmFzL1dlYkdMUmVuZGVyYnVmZmVyLmlk
bAogICAgICAgICBodG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuaWRsCiAgICAgICAg
IGh0bWwvY2FudmFzL1dlYkdMU2hhZGVyLmlkbAorICAgICAgICBodG1sL2NhbnZhcy9XZWJHTFNo
YWRlclByZWNpc2lvbkZvcm1hdC5pZGwKICAgICAgICAgaHRtbC9jYW52YXMvV2ViR0xUZXh0dXJl
LmlkbAogICAgICAgICBodG1sL2NhbnZhcy9XZWJHTFVuaWZvcm1Mb2NhdGlvbi5pZGwKICAgICAg
ICAgaHRtbC9jYW52YXMvV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUy5pZGwKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvRGVyaXZlZFNvdXJjZXMubWFrZQkocmV2aXNpb24gMTEyOTAzKQorKysgU291cmNlL1dlYkNv
cmUvRGVyaXZlZFNvdXJjZXMubWFrZQkod29ya2luZyBjb3B5KQpAQCAtMzY2LDYgKzM2Niw3IEBA
IEJJTkRJTkdfSURMUyA9IFwKICAgICAkKFdlYkNvcmUpL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVy
YnVmZmVyLmlkbCBcCiAgICAgJChXZWJDb3JlKS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0Nv
bnRleHQuaWRsIFwKICAgICAkKFdlYkNvcmUpL2h0bWwvY2FudmFzL1dlYkdMU2hhZGVyLmlkbCBc
CisgICAgJChXZWJDb3JlKS9odG1sL2NhbnZhcy9XZWJHTFNoYWRlclByZWNpc2lvbkZvcm1hdC5p
ZGwgXAogICAgICQoV2ViQ29yZSkvaHRtbC9jYW52YXMvV2ViR0xUZXh0dXJlLmlkbCBcCiAgICAg
JChXZWJDb3JlKS9odG1sL2NhbnZhcy9XZWJHTFVuaWZvcm1Mb2NhdGlvbi5pZGwgXAogICAgICQo
V2ViQ29yZSkvaHRtbC9jYW52YXMvV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUy5pZGwgXApJbmRl
eDogU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMucHJpCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLnByaQkocmV2aXNpb24gMTEyOTAzKQorKysgU291cmNl
L1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMucHJpCSh3b3JraW5nIGNvcHkpCkBAIC0yOTQsNiArMjk0
LDcgQEAgSURMX0JJTkRJTkdTICs9IFwKICAgICAkJFBXRC9odG1sL2NhbnZhcy9XZWJHTFJlbmRl
cmJ1ZmZlci5pZGwgXAogICAgICQkUFdEL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4
dC5pZGwgXAogICAgICQkUFdEL2h0bWwvY2FudmFzL1dlYkdMU2hhZGVyLmlkbCBcCisgICAgJCRQ
V0QvaHRtbC9jYW52YXMvV2ViR0xTaGFkZXJQcmVjaXNpb25Gb3JtYXQuaWRsIFwKICAgICAkJFBX
RC9odG1sL2NhbnZhcy9JbnQxNkFycmF5LmlkbCBcCiAgICAgJCRQV0QvaHRtbC9jYW52YXMvV2Vi
R0xUZXh0dXJlLmlkbCBcCiAgICAgJCRQV0QvaHRtbC9jYW52YXMvV2ViR0xVbmlmb3JtTG9jYXRp
b24uaWRsIFwKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQkocmV2aXNpb24gMTEy
OTAzKQorKysgU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQkod29ya2luZyBjb3B5
KQpAQCAtNTczLDYgKzU3Myw4IEBAIHdlYmNvcmVfYnVpbHRfc291cmNlcyArPSBcCiAJRGVyaXZl
ZFNvdXJjZXMvV2ViQ29yZS9KU1dlYkdMUmVuZGVyaW5nQ29udGV4dC5oIFwKIAlEZXJpdmVkU291
cmNlcy9XZWJDb3JlL0pTV2ViR0xTaGFkZXIuY3BwIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3Jl
L0pTV2ViR0xTaGFkZXIuaCBcCisJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1dlYkdMU2hhZGVy
UHJlY2lzaW9uRm9ybWF0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1dlYkdMU2hh
ZGVyUHJlY2lzaW9uRm9ybWF0LmggXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNXZWJHTFRl
eHR1cmUuY3BwIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTV2ViR0xUZXh0dXJlLmggXAog
CURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNXZWJHTFVuaWZvcm1Mb2NhdGlvbi5jcHAgXApAQCAt
OTAwLDYgKzkwMiw3IEBAIGRvbV9iaW5kaW5nX2lkbHMgKz0gXAogCSQoV2ViQ29yZSkvaHRtbC9j
YW52YXMvV2ViR0xSZW5kZXJidWZmZXIuaWRsIFwKIAkkKFdlYkNvcmUpL2h0bWwvY2FudmFzL1dl
YkdMUmVuZGVyaW5nQ29udGV4dC5pZGwgXAogCSQoV2ViQ29yZSkvaHRtbC9jYW52YXMvV2ViR0xT
aGFkZXIuaWRsIFwKKwkkKFdlYkNvcmUpL2h0bWwvY2FudmFzL1dlYkdMU2hhZGVyUHJlY2lzaW9u
Rm9ybWF0LmlkbCBcCiAJJChXZWJDb3JlKS9odG1sL2NhbnZhcy9XZWJHTFRleHR1cmUuaWRsIFwK
IAkkKFdlYkNvcmUpL2h0bWwvY2FudmFzL1dlYkdMVW5pZm9ybUxvY2F0aW9uLmlkbCBcCiAJJChX
ZWJDb3JlKS9odG1sL2NhbnZhcy9XZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTLmlkbCBcCkBAIC01
NzkzLDYgKzU3OTYsNyBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL1dlYkdMU2hhZGVyLmggXAogCVNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dl
YkdMU2hhcmVkT2JqZWN0LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xT
aGFyZWRPYmplY3QuaCBcCisJU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xTaGFyZWRQ
cmVjaXNpb25Gb3JtYXQuaCBcCiAJU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xUZXh0
dXJlLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xUZXh0dXJlLmggXAog
CVNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMVW5pZm9ybUxvY2F0aW9uLmNwcCBcCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL1RhcmdldC5wcmkJKHJldmlzaW9uIDExMjkwMykKKysrIFNvdXJjZS9XZWJDb3JlL1Rhcmdl
dC5wcmkJKHdvcmtpbmcgY29weSkKQEAgLTM3NjYsNiArMzc2Niw3IEBAIGNvbnRhaW5zKERFRklO
RVMsIEVOQUJMRV9XRUJHTD0xKSB7CiAgICAgICAgIGh0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5n
Q29udGV4dC5oIFwKICAgICAgICAgaHRtbC9jYW52YXMvV2ViR0xTaGFkZXIuaCBcCiAgICAgICAg
IGh0bWwvY2FudmFzL1dlYkdMU2hhcmVkT2JqZWN0LmggXAorICAgICAgICBodG1sL2NhbnZhcy9X
ZWJHTFNoYXJlZFByZWNpc2lvbkZvcm1hdC5oIFwKICAgICAgICAgaHRtbC9jYW52YXMvRVhUVGV4
dHVyZUZpbHRlckFuaXNvdHJvcGljLmggXAogICAgICAgICBodG1sL2NhbnZhcy9PRVNTdGFuZGFy
ZERlcml2YXRpdmVzLmggXAogICAgICAgICBodG1sL2NhbnZhcy9PRVNUZXh0dXJlRmxvYXQuaCBc
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvV2ViQ29yZS5neXBpCShyZXZpc2lvbiAxMTI5MDMpCisrKyBTb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLmd5cGkJKHdvcmtpbmcgY29weSkKQEAgLTEwOTMsNiArMTA5Myw3IEBACiAgICAg
ICAgICAgICAnaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJidWZmZXIuaWRsJywKICAgICAgICAgICAg
ICdodG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuaWRsJywKICAgICAgICAgICAgICdo
dG1sL2NhbnZhcy9XZWJHTFNoYWRlci5pZGwnLAorICAgICAgICAgICAgJ2h0bWwvY2FudmFzL1dl
YkdMU2hhZGVyUHJlY2lzaW9uRm9ybWF0LmlkbCcsCiAgICAgICAgICAgICAnaHRtbC9jYW52YXMv
V2ViR0xUZXh0dXJlLmlkbCcsCiAgICAgICAgICAgICAnaHRtbC9jYW52YXMvV2ViR0xVbmlmb3Jt
TG9jYXRpb24uaWRsJywKICAgICAgICAgICAgICdodG1sL2NhbnZhcy9XZWJHTFZlcnRleEFycmF5
T2JqZWN0T0VTLmlkbCcsCkBAIC01NjUyLDYgKzU2NTMsNyBAQAogICAgICAgICAgICAgJ2h0bWwv
Y2FudmFzL1dlYkdMU2hhZGVyLmgnLAogICAgICAgICAgICAgJ2h0bWwvY2FudmFzL1dlYkdMU2hh
cmVkT2JqZWN0LmNwcCcsCiAgICAgICAgICAgICAnaHRtbC9jYW52YXMvV2ViR0xTaGFyZWRPYmpl
Y3QuaCcsCisgICAgICAgICAgICAnaHRtbC9jYW52YXMvV2ViR0xTaGFyZWRQcmVjaXNpb25Gb3Jt
YXQuaCcsCiAgICAgICAgICAgICAnaHRtbC9jYW52YXMvV2ViR0xUZXh0dXJlLmNwcCcsCiAgICAg
ICAgICAgICAnaHRtbC9jYW52YXMvV2ViR0xUZXh0dXJlLmgnLAogICAgICAgICAgICAgJ2h0bWwv
Y2FudmFzL1dlYkdMVW5pZm9ybUxvY2F0aW9uLmNwcCcsCkBAIC04MDcwLDYgKzgwNzIsOCBAQAog
ICAgICAgICAgICAgJzwoUFJPRFVDVF9ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNXZWJH
TFJlbmRlcmluZ0NvbnRleHQuaCcsCiAgICAgICAgICAgICAnPChQUk9EVUNUX0RJUikvRGVyaXZl
ZFNvdXJjZXMvV2ViQ29yZS9KU1dlYkdMU2hhZGVyLmNwcCcsCiAgICAgICAgICAgICAnPChQUk9E
VUNUX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1dlYkdMU2hhZGVyLmgnLAorICAgICAg
ICAgICAgJzwoUFJPRFVDVF9ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNXZWJHTFNoYWRl
clByZWNpc2lvbkZvcm1hdC5jcHAnLAorICAgICAgICAgICAgJzwoUFJPRFVDVF9ESVIpL0Rlcml2
ZWRTb3VyY2VzL1dlYkNvcmUvSlNXZWJHTFNoYWRlclByZWNpc2lvbkZvcm1hdC5oJywKICAgICAg
ICAgICAgICc8KFBST0RVQ1RfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTV2ViR0xUZXh0
dXJlLmNwcCcsCiAgICAgICAgICAgICAnPChQUk9EVUNUX0RJUikvRGVyaXZlZFNvdXJjZXMvV2Vi
Q29yZS9KU1dlYkdMVGV4dHVyZS5oJywKICAgICAgICAgICAgICc8KFBST0RVQ1RfRElSKS9EZXJp
dmVkU291cmNlcy9XZWJDb3JlL0pTV2ViR0xVbmlmb3JtTG9jYXRpb24uY3BwJywKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJl
dmlzaW9uIDExMjkwMykKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMzYzOCwxMCArMzYzOCwxMyBAQAogCQk5RkZF
M0VBNTExQjVBNDM5MDAzNzg3NEUgLyogSlNNZW1vcnlJbmZvLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlGRkUzRUEzMTFCNUE0MzkwMDM3ODc0RSAv
KiBKU01lbW9yeUluZm8uY3BwICovOyB9OwogCQk5RkZFM0VBNjExQjVBNDM5MDAzNzg3NEUgLyog
SlNNZW1vcnlJbmZvLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA5RkZFM0VBNDExQjVBNDM5MDAzNzg3NEUgLyogSlNNZW1vcnlJbmZvLmggKi87IH07CiAJ
CUEwMEI3MjFBMTFERTY0MjgwMDhBQjlGRiAvKiBDaGVja2VkSW50LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMDBCNzIxOTExREU2NDI3MDA4QUI5RkYg
LyogQ2hlY2tlZEludC5oICovOyB9OworCQlBMDRGMzk5MjE1MkE4MzFDMDA5REJFMjAgLyogV2Vi
R0xTaGFkZXJQcmVjaXNpb25Gb3JtYXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEEwNEYzOTkwMTUyQTgzMUMwMDlEQkUyMCAvKiBXZWJHTFNoYWRlclBy
ZWNpc2lvbkZvcm1hdC5oICovOyB9OwogCQlBMEVFMERGNTE0NEY4MjU1MDBGODBCMEQgLyogV2Vi
R0xEZWJ1Z1JlbmRlcmVySW5mby5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBBMEVFMERGMTE0NEY4MjU1MDBGODBCMEQgLyogV2ViR0xEZWJ1Z1JlbmRl
cmVySW5mby5jcHAgKi87IH07CiAJCUEwRUUwREY2MTQ0RjgyNTUwMEY4MEIwRCAvKiBXZWJHTERl
YnVnUmVuZGVyZXJJbmZvLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBBMEVFMERGMjE0NEY4MjU1MDBGODBCMEQgLyogV2ViR0xEZWJ1Z1JlbmRlcmVySW5m
by5oICovOyB9OwogCQlBMEVFMERGNzE0NEY4MjU1MDBGODBCMEQgLyogV2ViR0xEZWJ1Z1NoYWRl
cnMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTBF
RTBERjMxNDRGODI1NTAwRjgwQjBEIC8qIFdlYkdMRGVidWdTaGFkZXJzLmNwcCAqLzsgfTsKIAkJ
QTBFRTBERjgxNDRGODI1NTAwRjgwQjBEIC8qIFdlYkdMRGVidWdTaGFkZXJzLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMEVFMERGNDE0NEY4MjU1MDBG
ODBCMEQgLyogV2ViR0xEZWJ1Z1NoYWRlcnMuaCAqLzsgfTsKKwkJQTBGQjk3NEQxNTJBODY3NDAw
RDM0RjQ1IC8qIEpTV2ViR0xTaGFkZXJQcmVjaXNpb25Gb3JtYXQuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTBGQjk3NEIxNTJBODY3NDAwRDM0RjQ1
IC8qIEpTV2ViR0xTaGFkZXJQcmVjaXNpb25Gb3JtYXQuY3BwICovOyB9OworCQlBMEZCOTc0RTE1
MkE4Njc0MDBEMzRGNDUgLyogSlNXZWJHTFNoYWRlclByZWNpc2lvbkZvcm1hdC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTBGQjk3NEMxNTJBODY3NDAw
RDM0RjQ1IC8qIEpTV2ViR0xTaGFkZXJQcmVjaXNpb25Gb3JtYXQuaCAqLzsgfTsKIAkJQTEwNEYy
NDMxNEM3MUY3QTAwOUUyQzIzIC8qIENhY2hlZFNWR0RvY3VtZW50LmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExMDRGMjQxMTRDNzFGN0EwMDlFMkMy
MyAvKiBDYWNoZWRTVkdEb2N1bWVudC5jcHAgKi87IH07CiAJCUExMDRGMjQ0MTRDNzFGN0EwMDlF
MkMyMyAvKiBDYWNoZWRTVkdEb2N1bWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQTEwNEYyNDIxNEM3MUY3QTAwOUUyQzIzIC8qIENhY2hlZFNWR0Rv
Y3VtZW50LmggKi87IH07CiAJCUExMEJCNTg1MTQ4NEUzQTcwMEIyRTg3QSAvKiBSZW5kZXJTVkdS
ZWN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMTBC
QjU4MzE0ODRFM0E3MDBCMkU4N0EgLyogUmVuZGVyU1ZHUmVjdC5oICovOyB9OwpAQCAtMTA2MzIs
MTIgKzEwNjM1LDE2IEBACiAJCTlGRkUzRUEzMTFCNUE0MzkwMDM3ODc0RSAvKiBKU01lbW9yeUlu
Zm8uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNNZW1vcnlJbmZv
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUZGRTNFQTQxMUI1QTQzOTAwMzc4
NzRFIC8qIEpTTWVtb3J5SW5mby5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBK
U01lbW9yeUluZm8uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTAwQjcyMTkxMURF
NjQyNzAwOEFCOUZGIC8qIENoZWNrZWRJbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBu
YW1lID0gQ2hlY2tlZEludC5oOyBwYXRoID0gY2FudmFzL0NoZWNrZWRJbnQuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTA0RjM5OTAxNTJBODMxQzAwOURCRTIwIC8qIFdlYkdMU2hh
ZGVyUHJlY2lzaW9uRm9ybWF0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdl
YkdMU2hhZGVyUHJlY2lzaW9uRm9ybWF0Lmg7IHBhdGggPSBjYW52YXMvV2ViR0xTaGFkZXJQcmVj
aXNpb25Gb3JtYXQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTA0RjM5OTExNTJB
ODMxQzAwOURCRTIwIC8qIFdlYkdMU2hhZGVyUHJlY2lzaW9uRm9ybWF0LmlkbCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQ7IG5hbWUgPSBXZWJHTFNoYWRlclByZWNpc2lvbkZvcm1hdC5pZGw7IHBhdGggPSBjYW52
YXMvV2ViR0xTaGFkZXJQcmVjaXNpb25Gb3JtYXQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlBMEVFMERFRjE0NEY4MjMyMDBGODBCMEQgLyogV2ViR0xEZWJ1Z1NoYWRlcnMuaWRs
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dDsgbmFtZSA9IFdlYkdMRGVidWdTaGFkZXJzLmlkbDsgcGF0aCA9IGNh
bnZhcy9XZWJHTERlYnVnU2hhZGVycy5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUEwRUUwREYwMTQ0RjgyNDMwMEY4MEIwRCAvKiBXZWJHTERlYnVnUmVuZGVyZXJJbmZvLmlkbCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHRleHQ7IG5hbWUgPSBXZWJHTERlYnVnUmVuZGVyZXJJbmZvLmlkbDsgcGF0aCA9
IGNhbnZhcy9XZWJHTERlYnVnUmVuZGVyZXJJbmZvLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQTBFRTBERjExNDRGODI1NTAwRjgwQjBEIC8qIFdlYkdMRGVidWdSZW5kZXJlcklu
Zm8uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gV2ViR0xEZWJ1Z1Jl
bmRlcmVySW5mby5jcHA7IHBhdGggPSBjYW52YXMvV2ViR0xEZWJ1Z1JlbmRlcmVySW5mby5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUEwRUUwREYyMTQ0RjgyNTUwMEY4MEIwRCAv
KiBXZWJHTERlYnVnUmVuZGVyZXJJbmZvLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFt
ZSA9IFdlYkdMRGVidWdSZW5kZXJlckluZm8uaDsgcGF0aCA9IGNhbnZhcy9XZWJHTERlYnVnUmVu
ZGVyZXJJbmZvLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUEwRUUwREYzMTQ0Rjgy
NTUwMEY4MEIwRCAvKiBXZWJHTERlYnVnU2hhZGVycy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IG5hbWUgPSBXZWJHTERlYnVnU2hhZGVycy5jcHA7IHBhdGggPSBjYW52YXMvV2Vi
R0xEZWJ1Z1NoYWRlcnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBMEVFMERG
NDE0NEY4MjU1MDBGODBCMEQgLyogV2ViR0xEZWJ1Z1NoYWRlcnMuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBuYW1lID0gV2ViR0xEZWJ1Z1NoYWRlcnMuaDsgcGF0aCA9IGNhbnZhcy9XZWJH
TERlYnVnU2hhZGVycy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBMEZCOTc0QjE1
MkE4Njc0MDBEMzRGNDUgLyogSlNXZWJHTFNoYWRlclByZWNpc2lvbkZvcm1hdC5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1dlYkdMU2hhZGVyUHJlY2lzaW9uRm9y
bWF0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTBGQjk3NEMxNTJBODY3NDAw
RDM0RjQ1IC8qIEpTV2ViR0xTaGFkZXJQcmVjaXNpb25Gb3JtYXQuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gSlNXZWJHTFNoYWRlclByZWNpc2lvbkZvcm1hdC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlBMTA0RjI0MTE0QzcxRjdBMDA5RTJDMjMgLyogQ2FjaGVk
U1ZHRG9jdW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ2Fj
aGVkU1ZHRG9jdW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBMTA0RjI0
MjE0QzcxRjdBMDA5RTJDMjMgLyogQ2FjaGVkU1ZHRG9jdW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gQ2FjaGVkU1ZHRG9jdW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJQTEwQkI1ODIxNDg0RTNBNzAwQjJFODdBIC8qIFJlbmRlclNWR1JlY3QuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVuZGVyU1ZHUmVjdC5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNDY4Niw2ICsxNDY5Myw4IEBACiAJCQkJ
NDlDN0I5QzIxMDQyRDMyRjAwMDlENDQ3IC8qIFdlYkdMU2hhZGVyLmNwcCAqLywKIAkJCQk0OUM3
QjlDMzEwNDJEMzJGMDAwOUQ0NDcgLyogV2ViR0xTaGFkZXIuaCAqLywKIAkJCQk0OUM3QjlDNDEw
NDJEMzJGMDAwOUQ0NDcgLyogV2ViR0xTaGFkZXIuaWRsICovLAorCQkJCUEwNEYzOTkwMTUyQTgz
MUMwMDlEQkUyMCAvKiBXZWJHTFNoYWRlclByZWNpc2lvbkZvcm1hdC5oICovLAorCQkJCUEwNEYz
OTkxMTUyQTgzMUMwMDlEQkUyMCAvKiBXZWJHTFNoYWRlclByZWNpc2lvbkZvcm1hdC5pZGwgKi8s
CiAJCQkJMDFEM0NGODAxNEJEMEEzMDAwRkU5OTcwIC8qIFdlYkdMU2hhcmVkT2JqZWN0LmNwcCAq
LywKIAkJCQkwMUQzQ0Y4MTE0QkQwQTMwMDBGRTk5NzAgLyogV2ViR0xTaGFyZWRPYmplY3QuaCAq
LywKIAkJCQk0OUM3QjlDNTEwNDJEMzJGMDAwOUQ0NDcgLyogV2ViR0xUZXh0dXJlLmNwcCAqLywK
QEAgLTE3ODgxLDYgKzE3ODkwLDggQEAKIAkJCQk0OUVFRDE0MTEwNTE5Njk0MDAwOTlGQUIgLyog
SlNXZWJHTFJlbmRlcmluZ0NvbnRleHQuaCAqLywKIAkJCQk0OUM3Qjk4RjEwNDJEMkQzMDAwOUQ0
NDcgLyogSlNXZWJHTFNoYWRlci5jcHAgKi8sCiAJCQkJNDlDN0I5OTAxMDQyRDJEMzAwMDlENDQ3
IC8qIEpTV2ViR0xTaGFkZXIuaCAqLywKKwkJCQlBMEZCOTc0QjE1MkE4Njc0MDBEMzRGNDUgLyog
SlNXZWJHTFNoYWRlclByZWNpc2lvbkZvcm1hdC5jcHAgKi8sCisJCQkJQTBGQjk3NEMxNTJBODY3
NDAwRDM0RjQ1IC8qIEpTV2ViR0xTaGFkZXJQcmVjaXNpb25Gb3JtYXQuaCAqLywKIAkJCQk0OUM3
Qjk5MTEwNDJEMkQzMDAwOUQ0NDcgLyogSlNXZWJHTFRleHR1cmUuY3BwICovLAogCQkJCTQ5QzdC
OTkyMTA0MkQyRDMwMDA5RDQ0NyAvKiBKU1dlYkdMVGV4dHVyZS5oICovLAogCQkJCTBDNDUzNDI1
MTBDREJCRkEwMDg2OTE1NyAvKiBKU1dlYkdMVW5pZm9ybUxvY2F0aW9uLmNwcCAqLywKQEAgLTI0
NjY4LDYgKzI0Njc5LDggQEAKIAkJCQk5NzdFMkUwRjEyRjBGQzlDMDBDMTMzNzkgLyogWFNTQXVk
aXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkQ1MzczNTMxMzdCNjUxODAwMDA4RENFIC8qIFpl
cm9Qb2xlLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTM1ODZFMDE1MjY0QzQ1MDAyMkE2NTkgLyog
UmVuZGVyTXVsdGlDb2x1bW5GbG93VGhyZWFkLmggaW4gSGVhZGVycyAqLywKKwkJCQlBMDRGMzk5
MjE1MkE4MzFDMDA5REJFMjAgLyogV2ViR0xTaGFkZXJQcmVjaXNpb25Gb3JtYXQuaCBpbiBIZWFk
ZXJzICovLAorCQkJCUEwRkI5NzRFMTUyQTg2NzQwMEQzNEY0NSAvKiBKU1dlYkdMU2hhZGVyUHJl
Y2lzaW9uRm9ybWF0LmggaW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95
bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAgLTI3NjU5LDYgKzI3NjcyLDcgQEAKIAkJ
CQkxQTM1ODZERjE1MjY0QzQ1MDAyMkE2NTkgLyogUmVuZGVyTXVsdGlDb2x1bW5GbG93VGhyZWFk
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBMzU4NkUxMTUyNjRGOTUwMDIyQTY1OSAvKiBTVkdB
bmltYXRlZEludGVnZXJPcHRpb25hbEludGVnZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUEz
RkY5QzMxNTI2NTM1OTAwMjI4OEExIC8qIFJlbmRlck5hbWVkRmxvd1RocmVhZC5jcHAgaW4gU291
cmNlcyAqLywKKwkJCQlBMEZCOTc0RDE1MkE4Njc0MDBEMzRGNDUgLyogSlNXZWJHTFNoYWRlclBy
ZWNpc2lvbkZvcm1hdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVw
bG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmNwcAkocmV2aXNpb24g
MTEyOTAzKQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250
ZXh0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjYsNiArNjYsNyBAQAogI2luY2x1ZGUgIldlYkdM
UHJvZ3JhbS5oIgogI2luY2x1ZGUgIldlYkdMUmVuZGVyYnVmZmVyLmgiCiAjaW5jbHVkZSAiV2Vi
R0xTaGFkZXIuaCIKKyNpbmNsdWRlICJXZWJHTFNoYWRlclByZWNpc2lvbkZvcm1hdC5oIgogI2lu
Y2x1ZGUgIldlYkdMVGV4dHVyZS5oIgogI2luY2x1ZGUgIldlYkdMVW5pZm9ybUxvY2F0aW9uLmgi
CiAKQEAgLTI2ODYsNiArMjY4NywzOCBAQCBTdHJpbmcgV2ViR0xSZW5kZXJpbmdDb250ZXh0Ojpn
ZXRTaGFkZXJJCiAgICAgcmV0dXJuIGVuc3VyZU5vdE51bGwobV9jb250ZXh0LT5nZXRTaGFkZXJJ
bmZvTG9nKG9iamVjdE9yWmVybyhzaGFkZXIpKSk7CiB9CiAKK1Bhc3NSZWZQdHI8V2ViR0xTaGFk
ZXJQcmVjaXNpb25Gb3JtYXQ+IFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0U2hhZGVyUHJlY2lz
aW9uRm9ybWF0KEdDM0RlbnVtIHNoYWRlclR5cGUsIEdDM0RlbnVtIHByZWNpc2lvblR5cGUsIEV4
Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIFVOVVNFRF9QQVJBTShlYyk7CisgICAgaWYgKGlzQ29u
dGV4dExvc3QoKSkKKyAgICAgICAgcmV0dXJuIDA7CisgICAgc3dpdGNoIChzaGFkZXJUeXBlKSB7
CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6VkVSVEVYX1NIQURFUjoKKyAgICBjYXNlIEdy
YXBoaWNzQ29udGV4dDNEOjpGUkFHTUVOVF9TSEFERVI6CisgICAgICAgIGJyZWFrOworICAgIGRl
ZmF1bHQ6CisgICAgICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZB
TElEX0VOVU0sICJnZXRTaGFkZXJQcmVjaXNpb25Gb3JtYXQiLCAiaW52YWxpZCBzaGFkZXIgdHlw
ZSIpOworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisgICAgc3dpdGNoIChwcmVjaXNpb25UeXBl
KSB7CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6TE9XX0ZMT0FUOgorICAgIGNhc2UgR3Jh
cGhpY3NDb250ZXh0M0Q6Ok1FRElVTV9GTE9BVDoKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNE
OjpISUdIX0ZMT0FUOgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkxPV19JTlQ6CisgICAg
Y2FzZSBHcmFwaGljc0NvbnRleHQzRDo6TUVESVVNX0lOVDoKKyAgICBjYXNlIEdyYXBoaWNzQ29u
dGV4dDNEOjpISUdIX0lOVDoKKyAgICAgICAgYnJlYWs7CisgICAgZGVmYXVsdDoKKyAgICAgICAg
c3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFMSURfRU5VTSwgImdldFNo
YWRlclByZWNpc2lvbkZvcm1hdCIsICJpbnZhbGlkIHByZWNpc2lvbiB0eXBlIik7CisgICAgICAg
IHJldHVybiAwOworICAgIH0KKworICAgIEdDM0RpbnQgcmFuZ2VbMl0gPSB7MCwgMH07CisgICAg
R0MzRGludCBwcmVjaXNpb24gPSAwOworICAgIG1fY29udGV4dC0+Z2V0U2hhZGVyUHJlY2lzaW9u
Rm9ybWF0KHNoYWRlclR5cGUsIHByZWNpc2lvblR5cGUsIHJhbmdlLCAmcHJlY2lzaW9uKTsKKyAg
ICByZXR1cm4gV2ViR0xTaGFkZXJQcmVjaXNpb25Gb3JtYXQ6OmNyZWF0ZShyYW5nZVswXSwgcmFu
Z2VbMV0sIHByZWNpc2lvbik7Cit9CisKIFN0cmluZyBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6Omdl
dFNoYWRlclNvdXJjZShXZWJHTFNoYWRlciogc2hhZGVyLCBFeGNlcHRpb25Db2RlJiBlYykKIHsK
ICAgICBVTlVTRURfUEFSQU0oZWMpOwpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
V2ViR0xSZW5kZXJpbmdDb250ZXh0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRt
bC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmgJKHJldmlzaW9uIDExMjkwMykKKysrIFNv
dXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5oCSh3b3JraW5n
IGNvcHkpCkBAIC02NSw2ICs2NSw3IEBAIGNsYXNzIFdlYkdMUHJvZ3JhbTsKIGNsYXNzIFdlYkdM
UmVuZGVyYnVmZmVyOwogY2xhc3MgV2ViR0xTaGFkZXI7CiBjbGFzcyBXZWJHTFNoYXJlZE9iamVj
dDsKK2NsYXNzIFdlYkdMU2hhZGVyUHJlY2lzaW9uRm9ybWF0OwogY2xhc3MgV2ViR0xUZXh0dXJl
OwogY2xhc3MgV2ViR0xVbmlmb3JtTG9jYXRpb247CiBjbGFzcyBXZWJHTFZlcnRleEFycmF5T2Jq
ZWN0T0VTOwpAQCAtMTY2LDEwICsxNjcsNyBAQCBwdWJsaWM6CiAgICAgV2ViR0xHZXRJbmZvIGdl
dFJlbmRlcmJ1ZmZlclBhcmFtZXRlcihHQzNEZW51bSB0YXJnZXQsIEdDM0RlbnVtIHBuYW1lLCBF
eGNlcHRpb25Db2RlJik7CiAgICAgV2ViR0xHZXRJbmZvIGdldFNoYWRlclBhcmFtZXRlcihXZWJH
TFNoYWRlciosIEdDM0RlbnVtIHBuYW1lLCBFeGNlcHRpb25Db2RlJik7CiAgICAgU3RyaW5nIGdl
dFNoYWRlckluZm9Mb2coV2ViR0xTaGFkZXIqLCBFeGNlcHRpb25Db2RlJik7Ci0KLSAgICAvLyBU
QkQKLSAgICAvLyB2b2lkIGdsR2V0U2hhZGVyUHJlY2lzaW9uRm9ybWF0IChHQzNEZW51bSBzaGFk
ZXJ0eXBlLCBHQzNEZW51bSBwcmVjaXNpb250eXBlLCBHQzNEaW50KiByYW5nZSwgR0MzRGludCog
cHJlY2lzaW9uKTsKLQorICAgIFBhc3NSZWZQdHI8V2ViR0xTaGFkZXJQcmVjaXNpb25Gb3JtYXQ+
IGdldFNoYWRlclByZWNpc2lvbkZvcm1hdChHQzNEZW51bSBzaGFkZXJUeXBlLCBHQzNEZW51bSBw
cmVjaXNpb25UeXBlLCBFeGNlcHRpb25Db2RlJik7CiAgICAgU3RyaW5nIGdldFNoYWRlclNvdXJj
ZShXZWJHTFNoYWRlciosIEV4Y2VwdGlvbkNvZGUmKTsKICAgICBWZWN0b3I8U3RyaW5nPiBnZXRT
dXBwb3J0ZWRFeHRlbnNpb25zKCk7CiAgICAgV2ViR0xHZXRJbmZvIGdldFRleFBhcmFtZXRlcihH
QzNEZW51bSB0YXJnZXQsIEdDM0RlbnVtIHBuYW1lLCBFeGNlcHRpb25Db2RlJik7CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuaWRsCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4
dC5pZGwJKHJldmlzaW9uIDExMjkwMykKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dl
YkdMUmVuZGVyaW5nQ29udGV4dC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTU1MCw4ICs1NTAsNyBA
QCBtb2R1bGUgaHRtbCB7CiAKICAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZywgVHJlYXRSZXR1
cm5lZE51bGxTdHJpbmdBcz1OdWxsXSBET01TdHJpbmcgICAgZ2V0U2hhZGVySW5mb0xvZyhpbiBX
ZWJHTFNoYWRlciBzaGFkZXIpIHJhaXNlcyhET01FeGNlcHRpb24pOwogCi0gICAgICAgIC8vIFRC
RAotICAgICAgICAvLyB2b2lkIGdsR2V0U2hhZGVyUHJlY2lzaW9uRm9ybWF0IChHTGVudW0gc2hh
ZGVydHlwZSwgR0xlbnVtIHByZWNpc2lvbnR5cGUsIEdMaW50KiByYW5nZSwgR0xpbnQqIHByZWNp
c2lvbik7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmddIFdlYkdMU2hhZGVyUHJlY2lzaW9u
Rm9ybWF0IGdldFNoYWRlclByZWNpc2lvbkZvcm1hdChpbiB1bnNpZ25lZCBsb25nIHNoYWRlcnR5
cGUsIGluIHVuc2lnbmVkIGxvbmcgcHJlY2lzaW9udHlwZSkgcmFpc2VzKERPTUV4Y2VwdGlvbik7
CiAKICAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZywgVHJlYXRSZXR1cm5lZE51bGxTdHJpbmdB
cz1OdWxsXSBET01TdHJpbmcgICAgZ2V0U2hhZGVyU291cmNlKGluIFdlYkdMU2hhZGVyIHNoYWRl
cikgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvY2Fu
dmFzL1dlYkdMU2hhZGVyUHJlY2lzaW9uRm9ybWF0LmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvV2ViR0xTaGFkZXJQcmVjaXNpb25Gb3JtYXQuaAkocmV2aXNpb24g
MCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMU2hhZGVyUHJlY2lzaW9uRm9y
bWF0LmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNjEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKGMp
IDIwMTIsIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
ICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBD
T05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxB
UiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hU
CisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2lmbmRlZiBXZWJHTFNoYWRlclByZWNpc2lvbkZvcm1hdF9oCisjZGVmaW5lIFdlYkdM
U2hhZGVyUHJlY2lzaW9uRm9ybWF0X2gKKworI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dDNELmgi
CisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5o
PgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFdlYkdMU2hhZGVyUHJlY2lzaW9uRm9y
bWF0IDogcHVibGljIFJlZkNvdW50ZWQ8V2ViR0xTaGFkZXJQcmVjaXNpb25Gb3JtYXQ+IHsKK3B1
YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJHTFNoYWRlclByZWNpc2lvbkZvcm1hdD4g
Y3JlYXRlKEdDM0RpbnQgcmFuZ2VNaW4sIEdDM0RpbnQgcmFuZ2VNYXgsIEdDM0RpbnQgcHJlY2lz
aW9uKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBXZWJHTFNoYWRlclByZWNp
c2lvbkZvcm1hdChyYW5nZU1pbiwgcmFuZ2VNYXgsIHByZWNpc2lvbikpOworICAgIH0KKyAgICBH
QzNEaW50IHJhbmdlTWluKCkgY29uc3QgeyByZXR1cm4gbV9yYW5nZU1pbjsgfQorICAgIEdDM0Rp
bnQgcmFuZ2VNYXgoKSBjb25zdCB7IHJldHVybiBtX3JhbmdlTWF4OyB9CisgICAgR0MzRGludCBw
cmVjaXNpb24oKSBjb25zdCB7IHJldHVybiBtX3ByZWNpc2lvbjsgfQorCitwcml2YXRlOgorICAg
IFdlYkdMU2hhZGVyUHJlY2lzaW9uRm9ybWF0KEdDM0RpbnQgcmFuZ2VNaW4sIEdDM0RpbnQgcmFu
Z2VNYXgsIEdDM0RpbnQgcHJlY2lzaW9uKQorICAgICAgICA6IG1fcmFuZ2VNaW4ocmFuZ2VNaW4p
CisgICAgICAgICwgbV9yYW5nZU1heChyYW5nZU1heCkKKyAgICAgICAgLCBtX3ByZWNpc2lvbihw
cmVjaXNpb24pCisgICAgeworICAgIH0KKworICAgIEdDM0RpbnQgbV9yYW5nZU1pbjsKKyAgICBH
QzNEaW50IG1fcmFuZ2VNYXg7CisgICAgR0MzRGludCBtX3ByZWNpc2lvbjsKK307CisKK30KKwor
I2VuZGlmIC8vIFdlYkdMU2hhZGVyUHJlY2lzaW9uRm9ybWF0X2gKClByb3BlcnR5IGNoYW5nZXMg
b246IFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMU2hhZGVyUHJlY2lzaW9uRm9ybWF0
LmgKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fXwpBZGRlZDogc3ZuOmVvbC1zdHlsZQogICArIExGCgpJbmRleDogU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xTaGFkZXJQcmVjaXNpb25Gb3JtYXQuaWRsCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMU2hhZGVyUHJlY2lzaW9u
Rm9ybWF0LmlkbAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dl
YkdMU2hhZGVyUHJlY2lzaW9uRm9ybWF0LmlkbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwzNyBA
QAorLyoKKyAqIENvcHlyaWdodCAoYykgMjAxMiwgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqICAg
ICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisg
KiBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUg
Q09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlU
RUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICog
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCittb2R1bGUgaHRtbCB7CisKKyAgICBpbnRlcmZh
Y2UgWworICAgICAgICBDb25kaXRpb25hbD1XRUJHTCwKKyAgICBdIFdlYkdMU2hhZGVyUHJlY2lz
aW9uRm9ybWF0IHsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGludCByYW5nZU1pbjsKKyAg
ICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGludCByYW5nZU1heDsKKyAgICAgICAgcmVhZG9ubHkg
YXR0cmlidXRlIGludCBwcmVjaXNpb247CisgICAgfTsKKworfQoKUHJvcGVydHkgY2hhbmdlcyBv
bjogU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xTaGFkZXJQcmVjaXNpb25Gb3JtYXQu
aWRsCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX18KQWRkZWQ6IHN2bjplb2wtc3R5bGUKICAgKyBMRgoKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9wYWdlL0RPTVdpbmRvdy5pZGwJKHJldmlzaW9uIDExMjkwMykKKysrIFNvdXJjZS9XZWJDb3Jl
L3BhZ2UvRE9NV2luZG93LmlkbAkod29ya2luZyBjb3B5KQpAQCAtNDk2LDYgKzQ5Niw3IEBAIG1v
ZHVsZSB3aW5kb3cgewogICAgICAgICBhdHRyaWJ1dGUgW0NvbmRpdGlvbmFsPVdFQkdMXSBXZWJH
TFJlbmRlcmJ1ZmZlckNvbnN0cnVjdG9yIFdlYkdMUmVuZGVyYnVmZmVyOwogICAgICAgICBhdHRy
aWJ1dGUgW0NvbmRpdGlvbmFsPVdFQkdMXSBXZWJHTFJlbmRlcmluZ0NvbnRleHRDb25zdHJ1Y3Rv
ciBXZWJHTFJlbmRlcmluZ0NvbnRleHQ7CiAgICAgICAgIGF0dHJpYnV0ZSBbQ29uZGl0aW9uYWw9
V0VCR0xdIFdlYkdMU2hhZGVyQ29uc3RydWN0b3IgV2ViR0xTaGFkZXI7CisgICAgICAgIGF0dHJp
YnV0ZSBbQ29uZGl0aW9uYWw9V0VCR0xdIFdlYkdMU2hhZGVyUHJlY2lzaW9uRm9ybWF0Q29uc3Ry
dWN0b3IgV2ViR0xTaGFkZXJQcmVjaXNpb25Gb3JtYXQ7CiAgICAgICAgIGF0dHJpYnV0ZSBbQ29u
ZGl0aW9uYWw9V0VCR0xdIFdlYkdMVGV4dHVyZUNvbnN0cnVjdG9yIFdlYkdMVGV4dHVyZTsKICAg
ICAgICAgYXR0cmlidXRlIFtDb25kaXRpb25hbD1XRUJHTF0gV2ViR0xVbmlmb3JtTG9jYXRpb25D
b25zdHJ1Y3RvciBXZWJHTFVuaWZvcm1Mb2NhdGlvbjsKIApJbmRleDogU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0QuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRC5oCShyZXZpc2lv
biAxMTI5MDMpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0Nv
bnRleHQzRC5oCSh3b3JraW5nIGNvcHkpCkBAIC03MDksMTAgKzcwOSw3IEBAIHB1YmxpYzoKICAg
ICB2b2lkIGdldFJlbmRlcmJ1ZmZlclBhcmFtZXRlcml2KEdDM0RlbnVtIHRhcmdldCwgR0MzRGVu
dW0gcG5hbWUsIEdDM0RpbnQqIHZhbHVlKTsKICAgICB2b2lkIGdldFNoYWRlcml2KFBsYXRmb3Jt
M0RPYmplY3QsIEdDM0RlbnVtIHBuYW1lLCBHQzNEaW50KiB2YWx1ZSk7CiAgICAgU3RyaW5nIGdl
dFNoYWRlckluZm9Mb2coUGxhdGZvcm0zRE9iamVjdCk7Ci0KLSAgICAvLyBUQkQKLSAgICAvLyB2
b2lkIGdsR2V0U2hhZGVyUHJlY2lzaW9uRm9ybWF0IChHQzNEZW51bSBzaGFkZXJ0eXBlLCBHQzNE
ZW51bSBwcmVjaXNpb250eXBlLCBHQzNEaW50KiByYW5nZSwgR0MzRGludCogcHJlY2lzaW9uKTsK
LQorICAgIHZvaWQgZ2V0U2hhZGVyUHJlY2lzaW9uRm9ybWF0KEdDM0RlbnVtIHNoYWRlclR5cGUs
IEdDM0RlbnVtIHByZWNpc2lvblR5cGUsIEdDM0RpbnQqIHJhbmdlLCBHQzNEaW50KiBwcmVjaXNp
b24pOwogICAgIFN0cmluZyBnZXRTaGFkZXJTb3VyY2UoUGxhdGZvcm0zRE9iamVjdCk7CiAgICAg
U3RyaW5nIGdldFN0cmluZyhHQzNEZW51bSBuYW1lKTsKICAgICB2b2lkIGdldFRleFBhcmFtZXRl
cmZ2KEdDM0RlbnVtIHRhcmdldCwgR0MzRGVudW0gcG5hbWUsIEdDM0RmbG9hdCogdmFsdWUpOwpJ
bmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29u
dGV4dDNET3BlbkdMQ29tbW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0M0RPcGVuR0xDb21tb24uY3BwCShy
ZXZpc2lvbiAxMTI5MDMpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVu
Z2wvR3JhcGhpY3NDb250ZXh0M0RPcGVuR0xDb21tb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0x
MjE0LDYgKzEyMTQsMzUgQEAgU3RyaW5nIEdyYXBoaWNzQ29udGV4dDNEOjpnZXRTaGFkZXJJbmZv
TAogICAgIHJldHVybiBTdHJpbmcoaW5mby5nZXQoKSk7CiB9CiAKK3ZvaWQgR3JhcGhpY3NDb250
ZXh0M0Q6OmdldFNoYWRlclByZWNpc2lvbkZvcm1hdChHQzNEZW51bSBzaGFkZXJUeXBlLCBHQzNE
ZW51bSBwcmVjaXNpb25UeXBlLCBHQzNEaW50KiByYW5nZSwgR0MzRGludCogcHJlY2lzaW9uKQor
eworICAgIFVOVVNFRF9QQVJBTShzaGFkZXJUeXBlKTsKKyAgICBBU1NFUlQocmFuZ2UpOworICAg
IEFTU0VSVChwcmVjaXNpb24pOworCisgICAgbWFrZUNvbnRleHRDdXJyZW50KCk7CisKKyAgICBz
d2l0Y2ggKHByZWNpc2lvblR5cGUpIHsKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpMT1df
SU5UOgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6Ok1FRElVTV9JTlQ6CisgICAgY2FzZSBH
cmFwaGljc0NvbnRleHQzRDo6SElHSF9JTlQ6CisgICAgICAgIHJhbmdlWzBdID0gLTMxOworICAg
ICAgICByYW5nZVsxXSA9IDMxOworICAgICAgICBwcmVjaXNpb25bMF0gPSAwOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpMT1dfRkxPQVQ6CisgICAgY2FzZSBH
cmFwaGljc0NvbnRleHQzRDo6TUVESVVNX0ZMT0FUOgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0
M0Q6OkhJR0hfRkxPQVQ6CisgICAgICAgIHJhbmdlWzBdID0gLTYyOworICAgICAgICByYW5nZVsx
XSA9IDYyOworICAgICAgICBwcmVjaXNpb25bMF0gPSAtMTY7CisgICAgICAgIGJyZWFrOworICAg
IGRlZmF1bHQ6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICBicmVhazsK
KyAgICB9Cit9CisKIFN0cmluZyBHcmFwaGljc0NvbnRleHQzRDo6Z2V0U2hhZGVyU291cmNlKFBs
YXRmb3JtM0RPYmplY3Qgc2hhZGVyKQogewogICAgIEFTU0VSVChzaGFkZXIpOwpJbmRleDogU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvR3JhcGhpY3NDb250ZXh0M0RRdC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvR3JhcGhp
Y3NDb250ZXh0M0RRdC5jcHAJKHJldmlzaW9uIDExMjkwMykKKysrIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3F0L0dyYXBoaWNzQ29udGV4dDNEUXQuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0xMzYwLDYgKzEzNjAsMzUgQEAgU3RyaW5nIEdyYXBoaWNzQ29udGV4dDNEOjpnZXRTaGFk
ZXJJbmZvTAogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKK3ZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6
OmdldFNoYWRlclByZWNpc2lvbkZvcm1hdChHQzNEZW51bSBzaGFkZXJUeXBlLCBHQzNEZW51bSBw
cmVjaXNpb25UeXBlLCBHQzNEaW50KiByYW5nZSwgR0MzRGludCogcHJlY2lzaW9uKQoreworICAg
IFVOVVNFRF9QQVJBTShzaGFkZXJUeXBlKTsKKyAgICBBU1NFUlQocmFuZ2UpOworICAgIEFTU0VS
VChwcmVjaXNpb24pOworCisgICAgbWFrZUNvbnRleHRDdXJyZW50KCk7CisKKyAgICBzd2l0Y2gg
KHByZWNpc2lvblR5cGUpIHsKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpMT1dfSU5UOgor
ICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6Ok1FRElVTV9JTlQ6CisgICAgY2FzZSBHcmFwaGlj
c0NvbnRleHQzRDo6SElHSF9JTlQ6CisgICAgICAgIHJhbmdlWzBdID0gLTMxOworICAgICAgICBy
YW5nZVsxXSA9IDMxOworICAgICAgICBwcmVjaXNpb25bMF0gPSAwOworICAgICAgICBicmVhazsK
KyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpMT1dfRkxPQVQ6CisgICAgY2FzZSBHcmFwaGlj
c0NvbnRleHQzRDo6TUVESVVNX0ZMT0FUOgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkhJ
R0hfRkxPQVQ6CisgICAgICAgIHJhbmdlWzBdID0gLTYyOworICAgICAgICByYW5nZVsxXSA9IDYy
OworICAgICAgICBwcmVjaXNpb25bMF0gPSAtMTY7CisgICAgICAgIGJyZWFrOworICAgIGRlZmF1
bHQ6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICBicmVhazsKKyAgICB9
Cit9CisKIFN0cmluZyBHcmFwaGljc0NvbnRleHQzRDo6Z2V0U2hhZGVyU291cmNlKFBsYXRmb3Jt
M0RPYmplY3Qgc2hhZGVyKQogewogICAgIG1ha2VDb250ZXh0Q3VycmVudCgpOwpJbmRleDogU291
cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dC9jaHJvbWl1bS9DaGFuZ2VMb2cJKHJldmlzaW9uIDExMjk3MykKKysrIFNvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTIt
MDQtMDIgIFpoZW55YW8gTW8gIDx6bW9AZ29vZ2xlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQg
V2ViR0xTaGFkZXJQcmVjaXNpb25Gb3JtYXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTc1OTI1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBzcmMvR3JhcGhpY3NDb250ZXh0M0RDaHJvbWl1bS5jcHA6IEFk
ZCBnZXRTaGFkZXJQcmVjaXNpb25Gb3JtYXQoKS4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAg
ICAqIHNyYy9HcmFwaGljc0NvbnRleHQzRFByaXZhdGUuaDogRGl0dG8uCisgICAgICAgIChHcmFw
aGljc0NvbnRleHQzRFByaXZhdGUpOgorCiAyMDEyLTA0LTAyICBNYXJrIFBpbGdyaW0gIDxwaWxn
cmltQGNocm9taXVtLm9yZz4KIAogICAgICAgICBDYWxsIGRlY3JlbWVudFN0YXRzQ291bnRlciBk
aXJlY3RseQpJbmRleDogU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvR3JhcGhpY3NDb250ZXh0
M0RDaHJvbWl1bS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
R3JhcGhpY3NDb250ZXh0M0RDaHJvbWl1bS5jcHAJKHJldmlzaW9uIDExMjkwMykKKysrIFNvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL0dyYXBoaWNzQ29udGV4dDNEQ2hyb21pdW0uY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC02MTIsNiArNjEyLDggQEAgU3RyaW5nIEdyYXBoaWNzQ29udGV4dDNEUHJp
dmF0ZTo6Z2V0U2hhZAogICAgIHJldHVybiBtX2ltcGwtPmdldFNoYWRlckluZm9Mb2coc2hhZGVy
KTsKIH0KIAorREVMRUdBVEVfVE9fSU1QTF80KGdldFNoYWRlclByZWNpc2lvbkZvcm1hdCwgR0Mz
RGVudW0sIEdDM0RlbnVtLCBHQzNEaW50KiwgR0MzRGludCopCisKIFN0cmluZyBHcmFwaGljc0Nv
bnRleHQzRFByaXZhdGU6OmdldFNoYWRlclNvdXJjZShQbGF0Zm9ybTNET2JqZWN0IHNoYWRlcikK
IHsKICAgICByZXR1cm4gbV9pbXBsLT5nZXRTaGFkZXJTb3VyY2Uoc2hhZGVyKTsKQEAgLTExNTUs
NiArMTE1Nyw3IEBAIERFTEVHQVRFX1RPX0lOVEVSTkFMXzFSKGdldFByb2dyYW1JbmZvTG8KIERF
TEVHQVRFX1RPX0lOVEVSTkFMXzMoZ2V0UmVuZGVyYnVmZmVyUGFyYW1ldGVyaXYsIEdDM0RlbnVt
LCBHQzNEZW51bSwgR0MzRGludCopCiBERUxFR0FURV9UT19JTlRFUk5BTF8zKGdldFNoYWRlcml2
LCBQbGF0Zm9ybTNET2JqZWN0LCBHQzNEZW51bSwgR0MzRGludCopCiBERUxFR0FURV9UT19JTlRF
Uk5BTF8xUihnZXRTaGFkZXJJbmZvTG9nLCBQbGF0Zm9ybTNET2JqZWN0LCBTdHJpbmcpCitERUxF
R0FURV9UT19JTlRFUk5BTF80KGdldFNoYWRlclByZWNpc2lvbkZvcm1hdCwgR0MzRGVudW0sIEdD
M0RlbnVtLCBHQzNEaW50KiwgR0MzRGludCopCiBERUxFR0FURV9UT19JTlRFUk5BTF8xUihnZXRT
aGFkZXJTb3VyY2UsIFBsYXRmb3JtM0RPYmplY3QsIFN0cmluZykKIERFTEVHQVRFX1RPX0lOVEVS
TkFMXzFSKGdldFN0cmluZywgR0MzRGVudW0sIFN0cmluZykKIERFTEVHQVRFX1RPX0lOVEVSTkFM
XzMoZ2V0VGV4UGFyYW1ldGVyZnYsIEdDM0RlbnVtLCBHQzNEZW51bSwgR0MzRGZsb2F0KikKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0dyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZS5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0dyYXBoaWNzQ29udGV4
dDNEUHJpdmF0ZS5oCShyZXZpc2lvbiAxMTI5MDMpCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9HcmFwaGljc0NvbnRleHQzRFByaXZhdGUuaAkod29ya2luZyBjb3B5KQpAQCAtMTY0LDYg
KzE2NCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGdldFJlbmRlcmJ1ZmZlclBhcmFtZXRlcml2KEdD
M0RlbnVtIHRhcmdldCwgR0MzRGVudW0gcG5hbWUsIEdDM0RpbnQqIHZhbHVlKTsKICAgICB2b2lk
IGdldFNoYWRlcml2KFBsYXRmb3JtM0RPYmplY3QsIEdDM0RlbnVtIHBuYW1lLCBHQzNEaW50KiB2
YWx1ZSk7CiAgICAgU3RyaW5nIGdldFNoYWRlckluZm9Mb2coUGxhdGZvcm0zRE9iamVjdCk7Cisg
ICAgdm9pZCBnZXRTaGFkZXJQcmVjaXNpb25Gb3JtYXQoR0MzRGVudW0gc2hhZGVyVHlwZSwgR0Mz
RGVudW0gcHJlY2lzaW9uVHlwZSwgR0MzRGludCogcmFuZ2UsIEdDM0RpbnQqIHByZWNpc2lvbik7
CiAKICAgICBTdHJpbmcgZ2V0U2hhZGVyU291cmNlKFBsYXRmb3JtM0RPYmplY3QpOwogICAgIFN0
cmluZyBnZXRTdHJpbmcoR0MzRGVudW0gbmFtZSk7CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAxMTI5NzMp
CisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyMSBA
QAorMjAxMi0wNC0wMiAgWmhlbnlhbyBNbyAgPHptb0Bnb29nbGUuY29tPgorCisgICAgICAgIElt
cGxlbWVudCBXZWJHTFNoYWRlclByZWNpc2lvbkZvcm1hdAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU5MjUKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3QvY2FudmFzL3dlYmdsL2luc3RhbmNlb2Yt
dGVzdC1leHBlY3RlZC50eHQ6IEFkZCBuZXcgV2ViR0xTaGFkZXJQcmVjaXNpb25Gb3JtYXQgZmFp
bHVyZS4KKyAgICAgICAgKiBmYXN0L2NhbnZhcy93ZWJnbC9pbnN0YW5jZW9mLXRlc3QuaHRtbDoK
KyAgICAgICAgKiBmYXN0L2NhbnZhcy93ZWJnbC9zaGFkZXItcHJlY2lzaW9uLWZvcm1hdC1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY2FudmFzL3dlYmdsL3NoYWRlci1wcmVj
aXNpb24tZm9ybWF0Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL1dpbmRvdy9zY3Jp
cHQtdGVzdHMvd2luZG93LXByb3BlcnR5LWRlc2NyaXB0b3JzLmpzOiBBZGQgbmV3IHR5cGUgV2Vi
R0xTaGFkZXJQcmVjaXNpb25Gb3JtYXQuCisgICAgICAgICogZmFzdC9kb20vV2luZG93L3dpbmRv
dy1wcm9wZXJ0aWVzLmh0bWw6IERpdHRvLgorICAgICAgICAqIGZhc3QvZG9tL3NjcmlwdC10ZXN0
cy9wcm90b3R5cGUtaW5oZXJpdGFuY2UtMi5qczogRGl0dG8uCisgICAgICAgIChjb25zdHJ1Y3Rv
ck5hbWVzRm9yV2luZG93KToKKyAgICAgICAgKiBmYXN0L2RvbS9zY3JpcHQtdGVzdHMvcHJvdG90
eXBlLWluaGVyaXRhbmNlLmpzOiBEaXR0by4KKyAgICAgICAgKiBmYXN0L2pzL3NjcmlwdC10ZXN0
cy9nbG9iYWwtY29uc3RydWN0b3JzLmpzOiBEaXR0by4KKwogMjAxMi0wNC0wMiAgQWJoaXNoZWsg
QXJ5YSAgPGluZmVybm9AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIDxzZWxlY3Q+IHNob3VsZG4n
dCBpbnRydWRlIGFzIGEgcnVuLWluLgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2Vi
Z2wvaW5zdGFuY2VvZi10ZXN0LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9mYXN0L2NhbnZhcy93ZWJnbC9pbnN0YW5jZW9mLXRlc3QtZXhwZWN0ZWQudHh0CShyZXZpc2lv
biAxMTI5MDMpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9pbnN0YW5jZW9mLXRl
c3QtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNyBAQAorV2ViR0wgaW5z
dGFuY2VvZiB0ZXN0LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBB
U1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKIFRlc3RzIHRoYXQg
aW5zdGFuY2VvZiB3b3JrcyBvbiBXZWJHTCBvYmplY3RzLgogCiBQQVNTIGdsIGluc3RhbmNlb2Yg
V2ViR0xSZW5kZXJpbmdDb250ZXh0IGlzIHRydWUKQEAgLTIyLDYgKzI2LDcgQEAgUEFTUyBuZXcg
V2ViR0xSZW5kZXJidWZmZXIgdGhyZXcgYW4gZXJybwogUEFTUyBuZXcgV2ViR0xTaGFkZXIgdGhy
ZXcgYW4gZXJyb3IKIFBBU1MgbmV3IFdlYkdMVGV4dHVyZSB0aHJldyBhbiBlcnJvcgogUEFTUyBu
ZXcgV2ViR0xVbmlmb3JtTG9jYXRpb24gdGhyZXcgYW4gZXJyb3IKK1BBU1MgbmV3IFdlYkdMU2hh
ZGVyUHJlY2lzaW9uRm9ybWF0IHRocmV3IGFuIGVycm9yCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNl
ZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExFVEUKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvY2FudmFz
L3dlYmdsL2luc3RhbmNlb2YtdGVzdC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zh
c3QvY2FudmFzL3dlYmdsL2luc3RhbmNlb2YtdGVzdC5odG1sCShyZXZpc2lvbiAxMTI5MDMpCisr
KyBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9pbnN0YW5jZW9mLXRlc3QuaHRtbAkod29y
a2luZyBjb3B5KQpAQCAtMSw4OCArMSw4OSBAQAotPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9X
M0MvL0RURCBIVE1MIDQuMDEgVHJhbnNpdGlvbmFsLy9FTiINCi0gICJodHRwOi8vd3d3LnczLm9y
Zy9UUi9odG1sNC9sb29zZS5kdGQiPg0KLTxodG1sPg0KLTxoZWFkPg0KLTx0aXRsZT5XZWJHTCBp
bnN0YW5jZW9mIHRlc3QuPC90aXRsZT4NCi08c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2Vz
L2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4NCi08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3dlYmds
LXRlc3QuanMiPiA8L3NjcmlwdD4NCi08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3dlYmdsLXRlc3Qt
dXRpbHMuanMiPiA8L3NjcmlwdD4NCi08L2hlYWQ+DQotPGJvZHk+DQotPGNhbnZhcyBpZD0iY2Fu
dmFzIiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBzdHlsZT0id2lkdGg6IDQwcHg7IGhlaWdodDogNDBw
eDsiPjwvY2FudmFzPg0KLTxzY3JpcHQgaWQ9InZzaGFkZXIiIHR5cGU9Ingtc2hhZGVyL3gtdmVy
dGV4Ij4NCi1hdHRyaWJ1dGUgdmVjNCB2UG9zaXRpb247DQotdmFyeWluZyB2ZWMyIHRleENvb3Jk
Ow0KLXZvaWQgbWFpbigpDQotew0KLSAgICBnbF9Qb3NpdGlvbiA9IHZQb3NpdGlvbjsNCi19DQot
PC9zY3JpcHQ+DQotDQotPHNjcmlwdCBpZD0iZnNoYWRlciIgdHlwZT0ieC1zaGFkZXIveC1mcmFn
bWVudCI+DQotI2lmZGVmIEdMX0VTDQotcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7DQotI2VuZGlm
DQotdW5pZm9ybSB2ZWM0IGNvbG9yOw0KLXZvaWQgbWFpbigpDQotew0KLSAgICBnbF9GcmFnQ29s
b3IgPSBjb2xvcjsNCi19DQotPC9zY3JpcHQ+DQotPHNjcmlwdD4NCi12YXIgd3R1ID0gV2ViR0xU
ZXN0VXRpbHM7DQotZGVidWcoIlRlc3RzIHRoYXQgaW5zdGFuY2VvZiB3b3JrcyBvbiBXZWJHTCBv
YmplY3RzLiIpOw0KLWRlYnVnKCIiKTsNCi12YXIgZ2wgPSBjcmVhdGUzRENvbnRleHQoZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoImNhbnZhcyIpKTsNCi1zaG91bGRCZVRydWUoJ2dsIGluc3RhbmNl
b2YgV2ViR0xSZW5kZXJpbmdDb250ZXh0Jyk7DQotc2hvdWxkQmVUcnVlKCdnbC5jcmVhdGVCdWZm
ZXIoKSBpbnN0YW5jZW9mIFdlYkdMQnVmZmVyJyk7DQotc2hvdWxkQmVUcnVlKCdnbC5jcmVhdGVG
cmFtZWJ1ZmZlcigpIGluc3RhbmNlb2YgV2ViR0xGcmFtZWJ1ZmZlcicpOw0KLXNob3VsZEJlVHJ1
ZSgnZ2wuY3JlYXRlUHJvZ3JhbSgpIGluc3RhbmNlb2YgV2ViR0xQcm9ncmFtJyk7DQotc2hvdWxk
QmVUcnVlKCdnbC5jcmVhdGVSZW5kZXJidWZmZXIoKSBpbnN0YW5jZW9mIFdlYkdMUmVuZGVyYnVm
ZmVyJyk7DQotc2hvdWxkQmVUcnVlKCdnbC5jcmVhdGVTaGFkZXIoZ2wuVkVSVEVYX1NIQURFUikg
aW5zdGFuY2VvZiBXZWJHTFNoYWRlcicpOw0KLXNob3VsZEJlVHJ1ZSgnZ2wuY3JlYXRlVGV4dHVy
ZSgpIGluc3RhbmNlb2YgV2ViR0xUZXh0dXJlJyk7DQotDQotdmFyIHByb2dyYW0gPSB3dHUuc2V0
dXBQcm9ncmFtKA0KLSAgICBnbCwNCi0gICAgW3d0dS5sb2FkU2hhZGVyRnJvbVNjcmlwdChnbCwg
J3ZzaGFkZXInLCBnbC5WRVJURVhfU0hBREVSKSwNCi0gICAgIHd0dS5sb2FkU2hhZGVyRnJvbVNj
cmlwdChnbCwgJ2ZzaGFkZXInLCBnbC5GUkFHTUVOVF9TSEFERVIpXSwNCi0gICAgWyd2UG9zaXRp
b24nXSwgWzBdKTsNCi0NCi1zaG91bGRCZVRydWUoJ2dsLmdldFVuaWZvcm1Mb2NhdGlvbihwcm9n
cmFtLCAiY29sb3IiKSBpbnN0YW5jZW9mIFdlYkdMVW5pZm9ybUxvY2F0aW9uJyk7DQotc2hvdWxk
QmVUcnVlKCdnbC5nZXRBY3RpdmVBdHRyaWIocHJvZ3JhbSwgMCkgaW5zdGFuY2VvZiBXZWJHTEFj
dGl2ZUluZm8nKTsNCi1zaG91bGRCZVRydWUoJ2dsLmdldEFjdGl2ZVVuaWZvcm0ocHJvZ3JhbSwg
MCkgaW5zdGFuY2VvZiBXZWJHTEFjdGl2ZUluZm8nKTsNCi0NCi1kZWJ1ZygiIik7DQotZGVidWco
IlRlc3RzIHRoYXQgdGhvc2UgV2ViR0wgb2JqZWN0cyBjYW4gbm90IGJlIGNvbnN0cnVjdGVkIHRo
cm91Z2ggbmV3IG9wZXJhdG9yIik7DQotZGVidWcoIiIpOw0KLQ0KLWZ1bmN0aW9uIHNob3VsZFRo
cm93V2l0aE5ldyhvYmplY3RUeXBlLCBvYmplY3ROYW1lKQ0KLXsNCi0gICAgdHJ5IHsNCi0gICAg
ICAgIG5ldyBvYmplY3RUeXBlOw0KLSAgICAgICAgdGVzdEZhaWxlZCgnbmV3ICcgKyBvYmplY3RO
YW1lICsgJyBkaWQgbm90IHRocm93Jyk7DQotICAgIH0gY2F0Y2ggKGUpIHsNCi0gICAgICAgIHRl
c3RQYXNzZWQoJ25ldyAnICsgb2JqZWN0TmFtZSArICcgdGhyZXcgYW4gZXJyb3InKTsNCi0gICAg
fQ0KLX0NCi0NCi1zaG91bGRUaHJvd1dpdGhOZXcoV2ViR0xSZW5kZXJpbmdDb250ZXh0LCAnV2Vi
R0xSZW5kZXJpbmdDb250ZXh0Jyk7DQotc2hvdWxkVGhyb3dXaXRoTmV3KFdlYkdMQWN0aXZlSW5m
bywgJ1dlYkdMQWN0aXZlSW5mbycpOw0KLXNob3VsZFRocm93V2l0aE5ldyhXZWJHTEJ1ZmZlciwg
J1dlYkdMQnVmZmVyJyk7DQotc2hvdWxkVGhyb3dXaXRoTmV3KFdlYkdMRnJhbWVidWZmZXIsICdX
ZWJHTEZyYW1lYnVmZmVyJyk7DQotc2hvdWxkVGhyb3dXaXRoTmV3KFdlYkdMUHJvZ3JhbSwgJ1dl
YkdMUHJvZ3JhbScpOw0KLXNob3VsZFRocm93V2l0aE5ldyhXZWJHTFJlbmRlcmJ1ZmZlciwgJ1dl
YkdMUmVuZGVyYnVmZmVyJyk7DQotc2hvdWxkVGhyb3dXaXRoTmV3KFdlYkdMU2hhZGVyLCAnV2Vi
R0xTaGFkZXInKTsNCi1zaG91bGRUaHJvd1dpdGhOZXcoV2ViR0xUZXh0dXJlLCAnV2ViR0xUZXh0
dXJlJyk7DQotc2hvdWxkVGhyb3dXaXRoTmV3KFdlYkdMVW5pZm9ybUxvY2F0aW9uLCAnV2ViR0xV
bmlmb3JtTG9jYXRpb24nKTsNCi0NCi08L3NjcmlwdD4NCi08L2JvZHk+DQotPHNjcmlwdCBzcmM9
Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0Pg0KLQ0KLTxzY3Jp
cHQ+DQotPC9zY3JpcHQ+DQotDQotPC9ib2R5Pg0KLTwvaHRtbD4NCi0NCi0NCisKKzwhRE9DVFlQ
RSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5X
ZWJHTCBpbnN0YW5jZW9mIHRlc3QuPC90aXRsZT4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJl
Zj0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIi8+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSJyZXNvdXJjZXMvd2ViZ2wtdGVzdC5qcyI+IDwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291
cmNlcy93ZWJnbC10ZXN0LXV0aWxzLmpzIj4gPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxj
YW52YXMgaWQ9ImNhbnZhcyIgd2lkdGg9IjIiIGhlaWdodD0iMiIgc3R5bGU9IndpZHRoOiA0MHB4
OyBoZWlnaHQ6IDQwcHg7Ij48L2NhbnZhcz4KKzxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4K
KzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCBpZD0idnNoYWRlciIgdHlwZT0ieC1z
aGFkZXIveC12ZXJ0ZXgiPgorYXR0cmlidXRlIHZlYzQgdlBvc2l0aW9uOwordmFyeWluZyB2ZWMy
IHRleENvb3JkOwordm9pZCBtYWluKCkKK3sKKyAgICBnbF9Qb3NpdGlvbiA9IHZQb3NpdGlvbjsK
K30KKzwvc2NyaXB0PgorCis8c2NyaXB0IGlkPSJmc2hhZGVyIiB0eXBlPSJ4LXNoYWRlci94LWZy
YWdtZW50Ij4KK3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OwordW5pZm9ybSB2ZWM0IGNvbG9yOwor
dm9pZCBtYWluKCkKK3sKKyAgICBnbF9GcmFnQ29sb3IgPSBjb2xvcjsKK30KKzwvc2NyaXB0Pgor
PHNjcmlwdD4KK3ZhciB3dHUgPSBXZWJHTFRlc3RVdGlsczsKK2Rlc2NyaXB0aW9uKGRvY3VtZW50
LnRpdGxlKTsKK2RlYnVnKCJUZXN0cyB0aGF0IGluc3RhbmNlb2Ygd29ya3Mgb24gV2ViR0wgb2Jq
ZWN0cy4iKTsKK2RlYnVnKCIiKTsKK3ZhciBnbCA9IGNyZWF0ZTNEQ29udGV4dChkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgiY2FudmFzIikpOworc2hvdWxkQmVUcnVlKCdnbCBpbnN0YW5jZW9mIFdl
YkdMUmVuZGVyaW5nQ29udGV4dCcpOworc2hvdWxkQmVUcnVlKCdnbC5jcmVhdGVCdWZmZXIoKSBp
bnN0YW5jZW9mIFdlYkdMQnVmZmVyJyk7CitzaG91bGRCZVRydWUoJ2dsLmNyZWF0ZUZyYW1lYnVm
ZmVyKCkgaW5zdGFuY2VvZiBXZWJHTEZyYW1lYnVmZmVyJyk7CitzaG91bGRCZVRydWUoJ2dsLmNy
ZWF0ZVByb2dyYW0oKSBpbnN0YW5jZW9mIFdlYkdMUHJvZ3JhbScpOworc2hvdWxkQmVUcnVlKCdn
bC5jcmVhdGVSZW5kZXJidWZmZXIoKSBpbnN0YW5jZW9mIFdlYkdMUmVuZGVyYnVmZmVyJyk7Citz
aG91bGRCZVRydWUoJ2dsLmNyZWF0ZVNoYWRlcihnbC5WRVJURVhfU0hBREVSKSBpbnN0YW5jZW9m
IFdlYkdMU2hhZGVyJyk7CitzaG91bGRCZVRydWUoJ2dsLmNyZWF0ZVRleHR1cmUoKSBpbnN0YW5j
ZW9mIFdlYkdMVGV4dHVyZScpOworCit2YXIgcHJvZ3JhbSA9IHd0dS5zZXR1cFByb2dyYW0oCisg
ICAgZ2wsCisgICAgW3d0dS5sb2FkU2hhZGVyRnJvbVNjcmlwdChnbCwgJ3ZzaGFkZXInLCBnbC5W
RVJURVhfU0hBREVSKSwKKyAgICAgd3R1LmxvYWRTaGFkZXJGcm9tU2NyaXB0KGdsLCAnZnNoYWRl
cicsIGdsLkZSQUdNRU5UX1NIQURFUildLAorICAgIFsndlBvc2l0aW9uJ10sIFswXSk7CisKK3No
b3VsZEJlVHJ1ZSgnZ2wuZ2V0VW5pZm9ybUxvY2F0aW9uKHByb2dyYW0sICJjb2xvciIpIGluc3Rh
bmNlb2YgV2ViR0xVbmlmb3JtTG9jYXRpb24nKTsKK3Nob3VsZEJlVHJ1ZSgnZ2wuZ2V0QWN0aXZl
QXR0cmliKHByb2dyYW0sIDApIGluc3RhbmNlb2YgV2ViR0xBY3RpdmVJbmZvJyk7CitzaG91bGRC
ZVRydWUoJ2dsLmdldEFjdGl2ZVVuaWZvcm0ocHJvZ3JhbSwgMCkgaW5zdGFuY2VvZiBXZWJHTEFj
dGl2ZUluZm8nKTsKKworZGVidWcoIiIpOworZGVidWcoIlRlc3RzIHRoYXQgdGhvc2UgV2ViR0wg
b2JqZWN0cyBjYW4gbm90IGJlIGNvbnN0cnVjdGVkIHRocm91Z2ggbmV3IG9wZXJhdG9yIik7Citk
ZWJ1ZygiIik7CisKK2Z1bmN0aW9uIHNob3VsZFRocm93V2l0aE5ldyhvYmplY3RUeXBlLCBvYmpl
Y3ROYW1lKQoreworICAgIHRyeSB7CisgICAgICAgIG5ldyBvYmplY3RUeXBlOworICAgICAgICB0
ZXN0RmFpbGVkKCduZXcgJyArIG9iamVjdE5hbWUgKyAnIGRpZCBub3QgdGhyb3cnKTsKKyAgICB9
IGNhdGNoIChlKSB7CisgICAgICAgIHRlc3RQYXNzZWQoJ25ldyAnICsgb2JqZWN0TmFtZSArICcg
dGhyZXcgYW4gZXJyb3InKTsKKyAgICB9Cit9CisKK3Nob3VsZFRocm93V2l0aE5ldyh3aW5kb3cu
V2ViR0xSZW5kZXJpbmdDb250ZXh0LCAnV2ViR0xSZW5kZXJpbmdDb250ZXh0Jyk7CitzaG91bGRU
aHJvd1dpdGhOZXcod2luZG93LldlYkdMQWN0aXZlSW5mbywgJ1dlYkdMQWN0aXZlSW5mbycpOwor
c2hvdWxkVGhyb3dXaXRoTmV3KHdpbmRvdy5XZWJHTEJ1ZmZlciwgJ1dlYkdMQnVmZmVyJyk7Citz
aG91bGRUaHJvd1dpdGhOZXcod2luZG93LldlYkdMRnJhbWVidWZmZXIsICdXZWJHTEZyYW1lYnVm
ZmVyJyk7CitzaG91bGRUaHJvd1dpdGhOZXcod2luZG93LldlYkdMUHJvZ3JhbSwgJ1dlYkdMUHJv
Z3JhbScpOworc2hvdWxkVGhyb3dXaXRoTmV3KHdpbmRvdy5XZWJHTFJlbmRlcmJ1ZmZlciwgJ1dl
YkdMUmVuZGVyYnVmZmVyJyk7CitzaG91bGRUaHJvd1dpdGhOZXcod2luZG93LldlYkdMU2hhZGVy
LCAnV2ViR0xTaGFkZXInKTsKK3Nob3VsZFRocm93V2l0aE5ldyh3aW5kb3cuV2ViR0xUZXh0dXJl
LCAnV2ViR0xUZXh0dXJlJyk7CitzaG91bGRUaHJvd1dpdGhOZXcod2luZG93LldlYkdMVW5pZm9y
bUxvY2F0aW9uLCAnV2ViR0xVbmlmb3JtTG9jYXRpb24nKTsKK3Nob3VsZFRocm93V2l0aE5ldyh3
aW5kb3cuV2ViR0xTaGFkZXJQcmVjaXNpb25Gb3JtYXQsICdXZWJHTFNoYWRlclByZWNpc2lvbkZv
cm1hdCcpOworCitzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CisKKzwv
Ym9keT4KKzwvaHRtbD4KKworCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9z
aGFkZXItcHJlY2lzaW9uLWZvcm1hdC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvc2hhZGVyLXByZWNpc2lvbi1mb3JtYXQtZXhwZWN0ZWQu
dHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvc2hhZGVy
LXByZWNpc2lvbi1mb3JtYXQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDMy
IEBACitXZWJHTCBzaGFkZXIgcHJlY2lzaW9uIGZvcm1hdCB0ZXN0LgorCitPbiBzdWNjZXNzLCB5
b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVT
VCBDT01QTEVURSIuCisKK1Rlc3RzIHRoYXQgV2ViR0xTaGFkZXJQcmVjaXNpb25Gb3JtYXQgY2xh
c3MgYW5kIGdldFNoYWRlclByZWNpc2lvbkZvcm1hdCB3b3JrLgorCisKK1Rlc3QgdGhhdCBnZXRT
aGFkZXJQcmVjaXNpb25Gb3JtYXQgcmV0dXJucyBhIFdlYkdMU2hhZGVyUHJlY2lzaW9uRm9ybWF0
IG9iamVjdC4KKworUEFTUyBnbC5nZXRTaGFkZXJQcmVjaXNpb25Gb3JtYXQoZ2wuVkVSVEVYX1NI
QURFUiwgZ2wuTE9XX0ZMT0FUKSBpbnN0YW5jZW9mIFdlYkdMU2hhZGVyUHJlY2lzaW9uRm9ybWF0
IGlzIHRydWUKK1BBU1MgZ2wuZ2V0U2hhZGVyUHJlY2lzaW9uRm9ybWF0KGdsLlZFUlRFWF9TSEFE
RVIsIGdsLk1FRElVTV9GTE9BVCkgaW5zdGFuY2VvZiBXZWJHTFNoYWRlclByZWNpc2lvbkZvcm1h
dCBpcyB0cnVlCitQQVNTIGdsLmdldFNoYWRlclByZWNpc2lvbkZvcm1hdChnbC5WRVJURVhfU0hB
REVSLCBnbC5ISUdIX0ZMT0FUKSBpbnN0YW5jZW9mIFdlYkdMU2hhZGVyUHJlY2lzaW9uRm9ybWF0
IGlzIHRydWUKK1BBU1MgZ2wuZ2V0U2hhZGVyUHJlY2lzaW9uRm9ybWF0KGdsLlZFUlRFWF9TSEFE
RVIsIGdsLkxPV19JTlQpIGluc3RhbmNlb2YgV2ViR0xTaGFkZXJQcmVjaXNpb25Gb3JtYXQgaXMg
dHJ1ZQorUEFTUyBnbC5nZXRTaGFkZXJQcmVjaXNpb25Gb3JtYXQoZ2wuVkVSVEVYX1NIQURFUiwg
Z2wuTUVESVVNX0lOVCkgaW5zdGFuY2VvZiBXZWJHTFNoYWRlclByZWNpc2lvbkZvcm1hdCBpcyB0
cnVlCitQQVNTIGdsLmdldFNoYWRlclByZWNpc2lvbkZvcm1hdChnbC5WRVJURVhfU0hBREVSLCBn
bC5ISUdIX0lOVCkgaW5zdGFuY2VvZiBXZWJHTFNoYWRlclByZWNpc2lvbkZvcm1hdCBpcyB0cnVl
CitQQVNTIGdsLmdldFNoYWRlclByZWNpc2lvbkZvcm1hdChnbC5GUkFHTUVOVF9TSEFERVIsIGds
LkxPV19GTE9BVCkgaW5zdGFuY2VvZiBXZWJHTFNoYWRlclByZWNpc2lvbkZvcm1hdCBpcyB0cnVl
CitQQVNTIGdsLmdldFNoYWRlclByZWNpc2lvbkZvcm1hdChnbC5GUkFHTUVOVF9TSEFERVIsIGds
Lk1FRElVTV9GTE9BVCkgaW5zdGFuY2VvZiBXZWJHTFNoYWRlclByZWNpc2lvbkZvcm1hdCBpcyB0
cnVlCitQQVNTIGdsLmdldFNoYWRlclByZWNpc2lvbkZvcm1hdChnbC5GUkFHTUVOVF9TSEFERVIs
IGdsLkhJR0hfRkxPQVQpIGluc3RhbmNlb2YgV2ViR0xTaGFkZXJQcmVjaXNpb25Gb3JtYXQgaXMg
dHJ1ZQorUEFTUyBnbC5nZXRTaGFkZXJQcmVjaXNpb25Gb3JtYXQoZ2wuRlJBR01FTlRfU0hBREVS
LCBnbC5MT1dfSU5UKSBpbnN0YW5jZW9mIFdlYkdMU2hhZGVyUHJlY2lzaW9uRm9ybWF0IGlzIHRy
dWUKK1BBU1MgZ2wuZ2V0U2hhZGVyUHJlY2lzaW9uRm9ybWF0KGdsLkZSQUdNRU5UX1NIQURFUiwg
Z2wuTUVESVVNX0lOVCkgaW5zdGFuY2VvZiBXZWJHTFNoYWRlclByZWNpc2lvbkZvcm1hdCBpcyB0
cnVlCitQQVNTIGdsLmdldFNoYWRlclByZWNpc2lvbkZvcm1hdChnbC5GUkFHTUVOVF9TSEFERVIs
IGdsLkhJR0hfSU5UKSBpbnN0YW5jZW9mIFdlYkdMU2hhZGVyUHJlY2lzaW9uRm9ybWF0IGlzIHRy
dWUKKworVGVzdCB0aGF0IGdldFNoYWRlclByZWNpc2lvbkZvcm1hdCB0aHJvd3MgYW4gZXJyb3Ig
d2l0aCBpbnZhbGlkIHBhcmFtZXRlcnMuCisKK1BBU1MgZ2wuZ2V0U2hhZGVyUHJlY2lzaW9uRm9y
bWF0KGdsLkhJR0hfSU5ULCBnbC5WRVJURVhfU0hBREVSKSBnZW5lcmF0ZWQgZXhwZWN0ZWQgR0wg
ZXJyb3I6IElOVkFMSURfRU5VTS4KKworVGVzdCB0aGF0IGdldFNoYWRlclByZWNpc2lvbkZvcm1h
dCByZXR1cm5zIHRoZSBzYW1lIHRoaW5nIGV2ZXJ5IGNhbGwuCisKK1BBU1Mgc2hhZGVyUHJlY2lz
aW9uRm9ybWF0LnJhbmdlTWluID09IHNoYWRlclByZWNpc2lvbkZvcm1hdDIucmFuZ2VNaW4gaXMg
dHJ1ZQorUEFTUyBzaGFkZXJQcmVjaXNpb25Gb3JtYXQucmFuZ2VNYXggPT0gc2hhZGVyUHJlY2lz
aW9uRm9ybWF0Mi5yYW5nZU1heCBpcyB0cnVlCitQQVNTIHNoYWRlclByZWNpc2lvbkZvcm1hdC5w
cmVjaXNpb24gPT0gc2hhZGVyUHJlY2lzaW9uRm9ybWF0Mi5wcmVjaXNpb24gaXMgdHJ1ZQorCgpQ
cm9wZXJ0eSBjaGFuZ2VzIG9uOiBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9zaGFkZXIt
cHJlY2lzaW9uLWZvcm1hdC1leHBlY3RlZC50eHQKX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpBZGRlZDogc3ZuOmVvbC1z
dHlsZQogICArIExGCgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvc2hhZGVy
LXByZWNpc2lvbi1mb3JtYXQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Nh
bnZhcy93ZWJnbC9zaGFkZXItcHJlY2lzaW9uLWZvcm1hdC5odG1sCShyZXZpc2lvbiAwKQorKysg
TGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvc2hhZGVyLXByZWNpc2lvbi1mb3JtYXQuaHRt
bAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw2NiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4K
KzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPldlYkdMIHNoYWRlciBwcmVj
aXNpb24gZm9ybWF0IHRlc3QuPC90aXRsZT4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0i
Li4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIi8+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJy
ZXNvdXJjZXMvd2ViZ2wtdGVzdC5qcyI+IDwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNl
cy93ZWJnbC10ZXN0LXV0aWxzLmpzIj4gPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxjYW52
YXMgaWQ9ImNhbnZhcyIgd2lkdGg9IjIiIGhlaWdodD0iMiIgc3R5bGU9IndpZHRoOiA0MHB4OyBo
ZWlnaHQ6IDQwcHg7Ij48L2NhbnZhcz4KKzxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KKzxk
aXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KK3ZhciB3dHUgPSBXZWJHTFRlc3RVdGls
czsKK2Rlc2NyaXB0aW9uKGRvY3VtZW50LnRpdGxlKTsKK2RlYnVnKCJUZXN0cyB0aGF0IFdlYkdM
U2hhZGVyUHJlY2lzaW9uRm9ybWF0IGNsYXNzIGFuZCBnZXRTaGFkZXJQcmVjaXNpb25Gb3JtYXQg
d29yay4iKTsKK2RlYnVnKCIiKTsKK3ZhciBnbCA9IGNyZWF0ZTNEQ29udGV4dChkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgiY2FudmFzIikpOworCitmdW5jdGlvbiB2ZXJpZnlTaGFkZXJQcmVjaXNp
b25Gb3JtYXQoc2hhZGVydHlwZSwgcHJlY2lzaW9udHlwZSkgeworICAgIHNob3VsZEJlVHJ1ZSgn
Z2wuZ2V0U2hhZGVyUHJlY2lzaW9uRm9ybWF0KCcgKyBzaGFkZXJ0eXBlICsgJywgJyArCisgICAg
ICAgICAgICAgICAgIHByZWNpc2lvbnR5cGUgKyAnKSBpbnN0YW5jZW9mIFdlYkdMU2hhZGVyUHJl
Y2lzaW9uRm9ybWF0Jyk7Cit9CisKK2RlYnVnKCIiKTsKK2RlYnVnKCJUZXN0IHRoYXQgZ2V0U2hh
ZGVyUHJlY2lzaW9uRm9ybWF0IHJldHVybnMgYSBXZWJHTFNoYWRlclByZWNpc2lvbkZvcm1hdCBv
YmplY3QuIik7CitkZWJ1ZygiIik7CisKK3ZlcmlmeVNoYWRlclByZWNpc2lvbkZvcm1hdCgnZ2wu
VkVSVEVYX1NIQURFUicsICdnbC5MT1dfRkxPQVQnKTsKK3ZlcmlmeVNoYWRlclByZWNpc2lvbkZv
cm1hdCgnZ2wuVkVSVEVYX1NIQURFUicsICdnbC5NRURJVU1fRkxPQVQnKTsKK3ZlcmlmeVNoYWRl
clByZWNpc2lvbkZvcm1hdCgnZ2wuVkVSVEVYX1NIQURFUicsICdnbC5ISUdIX0ZMT0FUJyk7Cit2
ZXJpZnlTaGFkZXJQcmVjaXNpb25Gb3JtYXQoJ2dsLlZFUlRFWF9TSEFERVInLCAnZ2wuTE9XX0lO
VCcpOwordmVyaWZ5U2hhZGVyUHJlY2lzaW9uRm9ybWF0KCdnbC5WRVJURVhfU0hBREVSJywgJ2ds
Lk1FRElVTV9JTlQnKTsKK3ZlcmlmeVNoYWRlclByZWNpc2lvbkZvcm1hdCgnZ2wuVkVSVEVYX1NI
QURFUicsICdnbC5ISUdIX0lOVCcpOwordmVyaWZ5U2hhZGVyUHJlY2lzaW9uRm9ybWF0KCdnbC5G
UkFHTUVOVF9TSEFERVInLCAnZ2wuTE9XX0ZMT0FUJyk7Cit2ZXJpZnlTaGFkZXJQcmVjaXNpb25G
b3JtYXQoJ2dsLkZSQUdNRU5UX1NIQURFUicsICdnbC5NRURJVU1fRkxPQVQnKTsKK3ZlcmlmeVNo
YWRlclByZWNpc2lvbkZvcm1hdCgnZ2wuRlJBR01FTlRfU0hBREVSJywgJ2dsLkhJR0hfRkxPQVQn
KTsKK3ZlcmlmeVNoYWRlclByZWNpc2lvbkZvcm1hdCgnZ2wuRlJBR01FTlRfU0hBREVSJywgJ2ds
LkxPV19JTlQnKTsKK3ZlcmlmeVNoYWRlclByZWNpc2lvbkZvcm1hdCgnZ2wuRlJBR01FTlRfU0hB
REVSJywgJ2dsLk1FRElVTV9JTlQnKTsKK3ZlcmlmeVNoYWRlclByZWNpc2lvbkZvcm1hdCgnZ2wu
RlJBR01FTlRfU0hBREVSJywgJ2dsLkhJR0hfSU5UJyk7CisKK2RlYnVnKCIiKTsKK2RlYnVnKCJU
ZXN0IHRoYXQgZ2V0U2hhZGVyUHJlY2lzaW9uRm9ybWF0IHRocm93cyBhbiBlcnJvciB3aXRoIGlu
dmFsaWQgcGFyYW1ldGVycy4iKTsKK2RlYnVnKCIiKTsKKworc2hvdWxkR2VuZXJhdGVHTEVycm9y
KGdsLCBnbC5JTlZBTElEX0VOVU0sICdnbC5nZXRTaGFkZXJQcmVjaXNpb25Gb3JtYXQoZ2wuSElH
SF9JTlQsIGdsLlZFUlRFWF9TSEFERVIpJyk7CisKK2RlYnVnKCIiKTsKK2RlYnVnKCJUZXN0IHRo
YXQgZ2V0U2hhZGVyUHJlY2lzaW9uRm9ybWF0IHJldHVybnMgdGhlIHNhbWUgdGhpbmcgZXZlcnkg
Y2FsbC4iKTsKK2RlYnVnKCIiKTsKKwordmFyIHNoYWRlclByZWNpc2lvbkZvcm1hdCA9IGdsLmdl
dFNoYWRlclByZWNpc2lvbkZvcm1hdChnbC5WRVJURVhfU0hBREVSLCBnbC5MT1dfRkxPQVQpOwor
dmFyIHNoYWRlclByZWNpc2lvbkZvcm1hdDIgPSBnbC5nZXRTaGFkZXJQcmVjaXNpb25Gb3JtYXQo
Z2wuVkVSVEVYX1NIQURFUiwgZ2wuTE9XX0ZMT0FUKTsKK3Nob3VsZEJlVHJ1ZSgnc2hhZGVyUHJl
Y2lzaW9uRm9ybWF0LnJhbmdlTWluID09IHNoYWRlclByZWNpc2lvbkZvcm1hdDIucmFuZ2VNaW4n
KTsKK3Nob3VsZEJlVHJ1ZSgnc2hhZGVyUHJlY2lzaW9uRm9ybWF0LnJhbmdlTWF4ID09IHNoYWRl
clByZWNpc2lvbkZvcm1hdDIucmFuZ2VNYXgnKTsKK3Nob3VsZEJlVHJ1ZSgnc2hhZGVyUHJlY2lz
aW9uRm9ybWF0LnByZWNpc2lvbiA9PSBzaGFkZXJQcmVjaXNpb25Gb3JtYXQyLnByZWNpc2lvbicp
OworCitmaW5pc2hUZXN0KCk7Cis8L3NjcmlwdD4KKworPC9ib2R5PgorPC9odG1sPgorCisKClBy
b3BlcnR5IGNoYW5nZXMgb246IExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL3NoYWRlci1w
cmVjaXNpb24tZm9ybWF0Lmh0bWwKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpBZGRlZDogc3ZuOmVvbC1zdHlsZQogICAr
IExGCgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0aWVz
Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1w
cm9wZXJ0aWVzLmh0bWwJKHJldmlzaW9uIDExMjkwMykKKysrIExheW91dFRlc3RzL2Zhc3QvZG9t
L1dpbmRvdy93aW5kb3ctcHJvcGVydGllcy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC04OCw2ICs4
OCw3IEBAIHZhciBfX3NraXBfXyA9IHsKICAgICAid2luZG93LldlYkdMUmVuZGVyYnVmZmVyIiA6
IDEsIAogICAgICJ3aW5kb3cuV2ViR0xSZW5kZXJpbmdDb250ZXh0IiA6IDEsIAogICAgICJ3aW5k
b3cuV2ViR0xTaGFkZXIiIDogMSwgCisgICAgIndpbmRvdy5XZWJHTFNoYWRlclByZWNpc2lvbkZv
cm1hdCIgOiAxLCAKICAgICAid2luZG93LldlYkdMVGV4dHVyZSIgOiAxLCAKICAgICAid2luZG93
LldlYkdMVW5pZm9ybUxvY2F0aW9uIiA6IDEsIAogICAgICJ3aW5kb3cuV2ViS2l0QmxvYkJ1aWxk
ZXIiIDogMSwKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9zY3JpcHQtdGVzdHMv
d2luZG93LXByb3BlcnR5LWRlc2NyaXB0b3JzLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2Zhc3QvZG9tL1dpbmRvdy9zY3JpcHQtdGVzdHMvd2luZG93LXByb3BlcnR5LWRlc2NyaXB0b3Jz
LmpzCShyZXZpc2lvbiAxMTI5MDMpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvc2Ny
aXB0LXRlc3RzL3dpbmRvdy1wcm9wZXJ0eS1kZXNjcmlwdG9ycy5qcwkod29ya2luZyBjb3B5KQpA
QCAtNDQsNiArNDQsNyBAQCB2YXIgX19za2lwX18gPSB7CiAgICAgIldlYkdMUmVuZGVyYnVmZmVy
IiA6IDEsCiAgICAgIldlYkdMUmVuZGVyaW5nQ29udGV4dCIgOiAxLAogICAgICJXZWJHTFNoYWRl
ciIgOiAxLAorICAgICJXZWJHTFNoYWRlclByZWNpc2lvbkZvcm1hdCIgOiAxLAogICAgICJXZWJH
TFRleHR1cmUiIDogMSwKICAgICAiV2ViR0xVbmlmb3JtTG9jYXRpb24iIDogMSwKICAgICAiV2Vi
S2l0QmxvYkJ1aWxkZXIiIDogMSwKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NjcmlwdC10
ZXN0cy9wcm90b3R5cGUtaW5oZXJpdGFuY2UtMi5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9mYXN0L2RvbS9zY3JpcHQtdGVzdHMvcHJvdG90eXBlLWluaGVyaXRhbmNlLTIuanMJKHJldmlz
aW9uIDExMjkwMykKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NjcmlwdC10ZXN0cy9wcm90b3R5
cGUtaW5oZXJpdGFuY2UtMi5qcwkod29ya2luZyBjb3B5KQpAQCAtODAsNiArODAsNyBAQCBmdW5j
dGlvbiBjb25zdHJ1Y3Rvck5hbWVzRm9yV2luZG93KGdsb2JhCiAgICAgICAgICAgICB0eXBlID09
ICJXZWJHTFByb2dyYW1Db25zdHJ1Y3RvciIgfHwKICAgICAgICAgICAgIHR5cGUgPT0gIldlYkdM
UmVuZGVyYnVmZmVyQ29uc3RydWN0b3IiIHx8CiAgICAgICAgICAgICB0eXBlID09ICJXZWJHTFNo
YWRlckNvbnN0cnVjdG9yIiB8fAorICAgICAgICAgICAgdHlwZSA9PSAiV2ViR0xTaGFkZXJQcmVj
aXNpb25Gb3JtYXRDb25zdHJ1Y3RvciIgfHwKICAgICAgICAgICAgIHR5cGUgPT0gIldlYkdMVGV4
dHVyZUNvbnN0cnVjdG9yIiB8fAogICAgICAgICAgICAgdHlwZSA9PSAiV2ViR0xVbmlmb3JtTG9j
YXRpb25Db25zdHJ1Y3RvciIgfHwKICAgICAgICAgICAgIHR5cGUgPT0gIkFycmF5QnVmZmVyQ29u
c3RydWN0b3IiIHx8CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zY3JpcHQtdGVzdHMvcHJv
dG90eXBlLWluaGVyaXRhbmNlLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9t
L3NjcmlwdC10ZXN0cy9wcm90b3R5cGUtaW5oZXJpdGFuY2UuanMJKHJldmlzaW9uIDExMjkwMykK
KysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NjcmlwdC10ZXN0cy9wcm90b3R5cGUtaW5oZXJpdGFu
Y2UuanMJKHdvcmtpbmcgY29weSkKQEAgLTE4LDcgKzE4LDcgQEAgdmFyIHNraXBwZWRQcm9wZXJ0
aWVzID0gWwogICAgICJ3ZWJraXROb3RpZmljYXRpb25zIiwKICAgICAid2Via2l0QXVkaW9QYW5u
ZXJOb2RlIiwKICAgICAicGVyZm9ybWFuY2UiLAotICAgICJXZWJHTFJlbmRlcmluZ0NvbnRleHQi
LCAiV2ViR0xBY3RpdmVJbmZvIiwgIldlYkdMQnVmZmVyIiwgIldlYkdMRnJhbWVidWZmZXIiLCAi
V2ViR0xQcm9ncmFtIiwgIldlYkdMUmVuZGVyYnVmZmVyIiwgIldlYkdMU2hhZGVyIiwgIldlYkdM
VGV4dHVyZSIsICJXZWJHTFVuaWZvcm1Mb2NhdGlvbiIsCisgICAgIldlYkdMUmVuZGVyaW5nQ29u
dGV4dCIsICJXZWJHTEFjdGl2ZUluZm8iLCAiV2ViR0xCdWZmZXIiLCAiV2ViR0xGcmFtZWJ1ZmZl
ciIsICJXZWJHTFByb2dyYW0iLCAiV2ViR0xSZW5kZXJidWZmZXIiLCAiV2ViR0xTaGFkZXIiLCAi
V2ViR0xTaGFkZXJQcmVjaXNpb25Gb3JtYXQiLCAiV2ViR0xUZXh0dXJlIiwgIldlYkdMVW5pZm9y
bUxvY2F0aW9uIiwKICAgICAiQXJyYXlCdWZmZXIiLAogICAgICJEYXRhVmlldyIsICJJbnQ4QXJy
YXkiLCAiVWludDhBcnJheSIsICJJbnQxNkFycmF5IiwgIlVpbnQxNkFycmF5IiwgIkludDMyQXJy
YXkiLCAiVWludDMyQXJyYXkiLCAiRmxvYXQzMkFycmF5IiwgIkZsb2F0NjRBcnJheSIsCiAgICAg
IkZpbGVFcnJvciIsICJGaWxlUmVhZGVyIiwgIldlYktpdEJsb2JCdWlsZGVyIiwgIndlYmtpdFJl
cXVlc3RGaWxlU3lzdGVtIiwKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvanMvc2NyaXB0LXRlc3Rz
L2dsb2JhbC1jb25zdHJ1Y3RvcnMuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9q
cy9zY3JpcHQtdGVzdHMvZ2xvYmFsLWNvbnN0cnVjdG9ycy5qcwkocmV2aXNpb24gMTEyOTAzKQor
KysgTGF5b3V0VGVzdHMvZmFzdC9qcy9zY3JpcHQtdGVzdHMvZ2xvYmFsLWNvbnN0cnVjdG9ycy5q
cwkod29ya2luZyBjb3B5KQpAQCAtMjQsNiArMjQsNyBAQCBmb3IgKHZhciB4IGluIGNvbnN0cnVj
dG9yTmFtZXMpIHsKICAgICAgICAgbmFtZSA9PSAiV2ViR0xQcm9ncmFtIiB8fAogICAgICAgICBu
YW1lID09ICJXZWJHTFJlbmRlcmJ1ZmZlciIgfHwKICAgICAgICAgbmFtZSA9PSAiV2ViR0xTaGFk
ZXIiIHx8CisgICAgICAgIG5hbWUgPT0gIldlYkdMU2hhZGVyUHJlY2lzaW9uRm9ybWF0IiB8fAog
ICAgICAgICBuYW1lID09ICJXZWJHTFRleHR1cmUiIHx8CiAgICAgICAgIG5hbWUgPT0gIldlYkdM
VW5pZm9ybUxvY2F0aW9uIiB8fAogICAgICAgICBuYW1lID09ICJBcnJheUJ1ZmZlciIgfHwK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>135353</attachid>
            <date>2012-04-03 10:21:35 -0700</date>
            <delta_ts>2012-04-03 11:56:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-75925-20120403102134.patch</filename>
            <type>text/plain</type>
            <size>49276</size>
            <attacher name="Zhenyao Mo">zmo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1Bs
YXRmb3JtL0NoYW5nZUxvZwkocmV2aXNpb24gMTEzMDQ3KQorKysgU291cmNlL1BsYXRmb3JtL0No
YW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEzIEBACisyMDEyLTA0LTAyICBaaGVu
eWFvIE1vICA8em1vQGdvb2dsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IFdlYkdMU2hhZGVy
UHJlY2lzaW9uRm9ybWF0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD03NTkyNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogY2hyb21pdW0vcHVibGljL1dlYkdyYXBoaWNzQ29udGV4dDNELmg6IEFkZCBnZXRT
aGFkZXJQcmVjaXNpb25Gb3JtYXQoKS4KKyAgICAgICAgKFdlYkdyYXBoaWNzQ29udGV4dDNEKToK
KwogMjAxMi0wNC0wMiAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgogCiAgICAgICAg
IFtDaHJvbWl1bV0gTW92ZSBhIG51bWJlciBvZiB2aXJ0dWFsIGZ1bmN0aW9ucyBmcm9tIFdlYktp
dFBsYXRmb3JtU3VwcG9ydC5oIGludG8gUGxhdGZvcm0uaApJbmRleDogU291cmNlL1BsYXRmb3Jt
L2Nocm9taXVtL3B1YmxpYy9XZWJHcmFwaGljc0NvbnRleHQzRC5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViR3JhcGhpY3NDb250ZXh0M0QuaAkocmV2
aXNpb24gMTEzMDQ3KQorKysgU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJHcmFw
aGljc0NvbnRleHQzRC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yODYsMTAgKzI4Niw3IEBAIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIHZvaWQgZ2V0UmVuZGVyYnVmZmVyUGFyYW1ldGVyaXYoV0dDM0RlbnVt
IHRhcmdldCwgV0dDM0RlbnVtIHBuYW1lLCBXR0MzRGludCogdmFsdWUpID0gMDsKICAgICB2aXJ0
dWFsIHZvaWQgZ2V0U2hhZGVyaXYoV2ViR0xJZCBzaGFkZXIsIFdHQzNEZW51bSBwbmFtZSwgV0dD
M0RpbnQqIHZhbHVlKSA9IDA7CiAgICAgdmlydHVhbCBXZWJTdHJpbmcgZ2V0U2hhZGVySW5mb0xv
ZyhXZWJHTElkIHNoYWRlcikgPSAwOwotCi0gICAgLy8gVEJECi0gICAgLy8gdm9pZCBnbEdldFNo
YWRlclByZWNpc2lvbkZvcm1hdCAoR0xlbnVtIHNoYWRlcnR5cGUsIEdMZW51bSBwcmVjaXNpb250
eXBlLCBHTGludCogcmFuZ2UsIEdMaW50KiBwcmVjaXNpb24pOwotCisgICAgdmlydHVhbCB2b2lk
IGdldFNoYWRlclByZWNpc2lvbkZvcm1hdChXR0MzRGVudW0gc2hhZGVydHlwZSwgV0dDM0RlbnVt
IHByZWNpc2lvbnR5cGUsIFdHQzNEaW50KiByYW5nZSwgV0dDM0RpbnQqIHByZWNpc2lvbikgPSAw
OwogICAgIHZpcnR1YWwgV2ViU3RyaW5nIGdldFNoYWRlclNvdXJjZShXZWJHTElkIHNoYWRlcikg
PSAwOwogICAgIHZpcnR1YWwgV2ViU3RyaW5nIGdldFN0cmluZyhXR0MzRGVudW0gbmFtZSkgPSAw
OwogICAgIHZpcnR1YWwgdm9pZCBnZXRUZXhQYXJhbWV0ZXJmdihXR0MzRGVudW0gdGFyZ2V0LCBX
R0MzRGVudW0gcG5hbWUsIFdHQzNEZmxvYXQqIHZhbHVlKSA9IDA7CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCShy
ZXZpc2lvbiAxMTMwNDcpCisrKyBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29w
eSkKQEAgLTEsMyArMSw0NCBAQAorMjAxMi0wNC0wMiAgWmhlbnlhbyBNbyAgPHptb0Bnb29nbGUu
Y29tPgorCisgICAgICAgIEltcGxlbWVudCBXZWJHTFNoYWRlclByZWNpc2lvbkZvcm1hdAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU5MjUKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0OiBmYXN0L2Nh
bnZhcy93ZWJnbC9zaGFkZXItcHJlY2lzaW9uLWZvcm1hdC5odG1sCisKKyAgICAgICAgKiBDTWFr
ZUxpc3RzLnR4dDogQWRkIG5ldyBzb3VyY2UgZmlsZXMgd2ViZ2xzaGFkZXJwcmVjaXNpb25mb3Jt
YXQuaC9pZGwKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOiBEaXR0by4KKyAgICAgICAg
KiBEZXJpdmVkU291cmNlcy5wcmk6IERpdHRvLgorICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3Qu
YW06IERpdHRvLgorICAgICAgICAqIFRhcmdldC5wcmk6IERpdHRvLgorICAgICAgICAqIFdlYkNv
cmUuZ3lwaTogRGl0dG8uCisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qOiBEaXR0by4KKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQu
Y3BwOiBBZGQgZ2V0U2hhZGVyUHJlY2lzaW9uRm9ybWF0LgorICAgICAgICAoV2ViQ29yZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdldFNoYWRlclByZWNpc2lv
bkZvcm1hdCk6CisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0Lmg6
IERpdHRvLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJHTFJlbmRlcmluZ0NvbnRl
eHQpOgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5pZGw6IERp
dHRvLgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMU2hhZGVyUHJlY2lzaW9uRm9ybWF0Lmg6
IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJHTFNoYWRlclByZWNpc2lv
bkZvcm1hdCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFNoYWRlclByZWNpc2lvbkZvcm1hdDo6
Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMU2hhZGVyUHJlY2lzaW9uRm9ybWF0Ojpy
YW5nZU1pbik6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFNoYWRlclByZWNpc2lvbkZvcm1hdDo6
cmFuZ2VNYXgpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xTaGFkZXJQcmVjaXNpb25Gb3JtYXQ6
OnByZWNpc2lvbik6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFNoYWRlclByZWNpc2lvbkZvcm1h
dDo6V2ViR0xTaGFkZXJQcmVjaXNpb25Gb3JtYXQpOgorICAgICAgICAqIGh0bWwvY2FudmFzL1dl
YkdMU2hhZGVyUHJlY2lzaW9uRm9ybWF0LmlkbDogQWRkZWQuCisgICAgICAgICogcGFnZS9ET01X
aW5kb3cuaWRsOiBFeHBvc2UgbmV3IHR5cGUgV2ViR0xTaGFkZXJQcmVjaXNpb25Gb3JtYXQgZm9y
IGluc3RhbmNlb2YuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0
M0QuaDogQWRkIGdldFNoYWRlclByZWNpc2lvbkZvcm1hdCgpLgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHQzRE9wZW5HTENvbW1vbi5jcHA6IERpdHRv
LgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OmdldFNoYWRlclByZWNpc2lv
bkZvcm1hdCk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9xdC9HcmFwaGljc0NvbnRleHQzRFF0LmNwcDogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpH
cmFwaGljc0NvbnRleHQzRDo6Z2V0U2hhZGVyUHJlY2lzaW9uRm9ybWF0KToKKyAgICAgICAgKFdl
YkNvcmUpOgorCiAyMDEyLTA0LTAzICBBbGV4aXMgTWVuYXJkICA8YWxleGlzLm1lbmFyZEBvcGVu
Ym9zc2Eub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQgQVNTRVJUIGZpeCBvbiBDaHJvbWl1bSBi
b3RzIChpbiBkZWJ1ZykuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAkocmV2aXNpb24gMTEzMDQ3
KQorKysgU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQJKHdvcmtpbmcgY29weSkKQEAgLTIz
MjEsNiArMjMyMSw3IEBAIElGIChFTkFCTEVfV0VCR0wpCiAgICAgICAgIGh0bWwvY2FudmFzL1dl
YkdMUmVuZGVyYnVmZmVyLmlkbAogICAgICAgICBodG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0Nv
bnRleHQuaWRsCiAgICAgICAgIGh0bWwvY2FudmFzL1dlYkdMU2hhZGVyLmlkbAorICAgICAgICBo
dG1sL2NhbnZhcy9XZWJHTFNoYWRlclByZWNpc2lvbkZvcm1hdC5pZGwKICAgICAgICAgaHRtbC9j
YW52YXMvV2ViR0xUZXh0dXJlLmlkbAogICAgICAgICBodG1sL2NhbnZhcy9XZWJHTFVuaWZvcm1M
b2NhdGlvbi5pZGwKICAgICAgICAgaHRtbC9jYW52YXMvV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9F
Uy5pZGwKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQkocmV2aXNpb24gMTEzMDQ3
KQorKysgU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQkod29ya2luZyBjb3B5KQpA
QCAtMzY4LDYgKzM2OCw3IEBAIEJJTkRJTkdfSURMUyA9IFwKICAgICAkKFdlYkNvcmUpL2h0bWwv
Y2FudmFzL1dlYkdMUmVuZGVyYnVmZmVyLmlkbCBcCiAgICAgJChXZWJDb3JlKS9odG1sL2NhbnZh
cy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuaWRsIFwKICAgICAkKFdlYkNvcmUpL2h0bWwvY2FudmFz
L1dlYkdMU2hhZGVyLmlkbCBcCisgICAgJChXZWJDb3JlKS9odG1sL2NhbnZhcy9XZWJHTFNoYWRl
clByZWNpc2lvbkZvcm1hdC5pZGwgXAogICAgICQoV2ViQ29yZSkvaHRtbC9jYW52YXMvV2ViR0xU
ZXh0dXJlLmlkbCBcCiAgICAgJChXZWJDb3JlKS9odG1sL2NhbnZhcy9XZWJHTFVuaWZvcm1Mb2Nh
dGlvbi5pZGwgXAogICAgICQoV2ViQ29yZSkvaHRtbC9jYW52YXMvV2ViR0xWZXJ0ZXhBcnJheU9i
amVjdE9FUy5pZGwgXApJbmRleDogU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMucHJpCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLnByaQkocmV2aXNpb24g
MTEzMDQ3KQorKysgU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMucHJpCSh3b3JraW5nIGNv
cHkpCkBAIC0yOTQsNiArMjk0LDcgQEAgSURMX0JJTkRJTkdTICs9IFwKICAgICAkJFBXRC9odG1s
L2NhbnZhcy9XZWJHTFJlbmRlcmJ1ZmZlci5pZGwgXAogICAgICQkUFdEL2h0bWwvY2FudmFzL1dl
YkdMUmVuZGVyaW5nQ29udGV4dC5pZGwgXAogICAgICQkUFdEL2h0bWwvY2FudmFzL1dlYkdMU2hh
ZGVyLmlkbCBcCisgICAgJCRQV0QvaHRtbC9jYW52YXMvV2ViR0xTaGFkZXJQcmVjaXNpb25Gb3Jt
YXQuaWRsIFwKICAgICAkJFBXRC9odG1sL2NhbnZhcy9JbnQxNkFycmF5LmlkbCBcCiAgICAgJCRQ
V0QvaHRtbC9jYW52YXMvV2ViR0xUZXh0dXJlLmlkbCBcCiAgICAgJCRQV0QvaHRtbC9jYW52YXMv
V2ViR0xVbmlmb3JtTG9jYXRpb24uaWRsIFwKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0dOVW1ha2Vm
aWxlLmxpc3QuYW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlz
dC5hbQkocmV2aXNpb24gMTEzMDQ3KQorKysgU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlz
dC5hbQkod29ya2luZyBjb3B5KQpAQCAtNTc3LDYgKzU3Nyw4IEBAIHdlYmNvcmVfYnVpbHRfc291
cmNlcyArPSBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1dlYkdMUmVuZGVyaW5nQ29udGV4
dC5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTV2ViR0xTaGFkZXIuY3BwIFwKIAlEZXJp
dmVkU291cmNlcy9XZWJDb3JlL0pTV2ViR0xTaGFkZXIuaCBcCisJRGVyaXZlZFNvdXJjZXMvV2Vi
Q29yZS9KU1dlYkdMU2hhZGVyUHJlY2lzaW9uRm9ybWF0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
V2ViQ29yZS9KU1dlYkdMU2hhZGVyUHJlY2lzaW9uRm9ybWF0LmggXAogCURlcml2ZWRTb3VyY2Vz
L1dlYkNvcmUvSlNXZWJHTFRleHR1cmUuY3BwIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pT
V2ViR0xUZXh0dXJlLmggXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNXZWJHTFVuaWZvcm1M
b2NhdGlvbi5jcHAgXApAQCAtOTA0LDYgKzkwNiw3IEBAIGRvbV9iaW5kaW5nX2lkbHMgKz0gXAog
CSQoV2ViQ29yZSkvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJidWZmZXIuaWRsIFwKIAkkKFdlYkNv
cmUpL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5pZGwgXAogCSQoV2ViQ29yZSkv
aHRtbC9jYW52YXMvV2ViR0xTaGFkZXIuaWRsIFwKKwkkKFdlYkNvcmUpL2h0bWwvY2FudmFzL1dl
YkdMU2hhZGVyUHJlY2lzaW9uRm9ybWF0LmlkbCBcCiAJJChXZWJDb3JlKS9odG1sL2NhbnZhcy9X
ZWJHTFRleHR1cmUuaWRsIFwKIAkkKFdlYkNvcmUpL2h0bWwvY2FudmFzL1dlYkdMVW5pZm9ybUxv
Y2F0aW9uLmlkbCBcCiAJJChXZWJDb3JlKS9odG1sL2NhbnZhcy9XZWJHTFZlcnRleEFycmF5T2Jq
ZWN0T0VTLmlkbCBcCkBAIC01ODA3LDYgKzU4MTAsNyBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAog
CVNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMU2hhZGVyLmggXAogCVNvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL1dlYkdMU2hhcmVkT2JqZWN0LmNwcCBcCiAJU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvV2ViR0xTaGFyZWRPYmplY3QuaCBcCisJU291cmNlL1dlYkNvcmUvaHRtbC9j
YW52YXMvV2ViR0xTaGFyZWRQcmVjaXNpb25Gb3JtYXQuaCBcCiAJU291cmNlL1dlYkNvcmUvaHRt
bC9jYW52YXMvV2ViR0xUZXh0dXJlLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
V2ViR0xUZXh0dXJlLmggXAogCVNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMVW5pZm9y
bUxvY2F0aW9uLmNwcCBcCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkJKHJldmlzaW9uIDExMzA0NykKKysrIFNv
dXJjZS9XZWJDb3JlL1RhcmdldC5wcmkJKHdvcmtpbmcgY29weSkKQEAgLTM3NzAsNiArMzc3MCw3
IEBAIGNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9XRUJHTD0xKSB7CiAgICAgICAgIGh0bWwvY2Fu
dmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5oIFwKICAgICAgICAgaHRtbC9jYW52YXMvV2ViR0xT
aGFkZXIuaCBcCiAgICAgICAgIGh0bWwvY2FudmFzL1dlYkdMU2hhcmVkT2JqZWN0LmggXAorICAg
ICAgICBodG1sL2NhbnZhcy9XZWJHTFNoYXJlZFByZWNpc2lvbkZvcm1hdC5oIFwKICAgICAgICAg
aHRtbC9jYW52YXMvRVhUVGV4dHVyZUZpbHRlckFuaXNvdHJvcGljLmggXAogICAgICAgICBodG1s
L2NhbnZhcy9PRVNTdGFuZGFyZERlcml2YXRpdmVzLmggXAogICAgICAgICBodG1sL2NhbnZhcy9P
RVNUZXh0dXJlRmxvYXQuaCBcCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCShyZXZpc2lvbiAxMTMwNDcp
CisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkJKHdvcmtpbmcgY29weSkKQEAgLTEwOTUs
NiArMTA5NSw3IEBACiAgICAgICAgICAgICAnaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJidWZmZXIu
aWRsJywKICAgICAgICAgICAgICdodG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuaWRs
JywKICAgICAgICAgICAgICdodG1sL2NhbnZhcy9XZWJHTFNoYWRlci5pZGwnLAorICAgICAgICAg
ICAgJ2h0bWwvY2FudmFzL1dlYkdMU2hhZGVyUHJlY2lzaW9uRm9ybWF0LmlkbCcsCiAgICAgICAg
ICAgICAnaHRtbC9jYW52YXMvV2ViR0xUZXh0dXJlLmlkbCcsCiAgICAgICAgICAgICAnaHRtbC9j
YW52YXMvV2ViR0xVbmlmb3JtTG9jYXRpb24uaWRsJywKICAgICAgICAgICAgICdodG1sL2NhbnZh
cy9XZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTLmlkbCcsCkBAIC01NjYxLDYgKzU2NjIsNyBAQAog
ICAgICAgICAgICAgJ2h0bWwvY2FudmFzL1dlYkdMU2hhZGVyLmgnLAogICAgICAgICAgICAgJ2h0
bWwvY2FudmFzL1dlYkdMU2hhcmVkT2JqZWN0LmNwcCcsCiAgICAgICAgICAgICAnaHRtbC9jYW52
YXMvV2ViR0xTaGFyZWRPYmplY3QuaCcsCisgICAgICAgICAgICAnaHRtbC9jYW52YXMvV2ViR0xT
aGFyZWRQcmVjaXNpb25Gb3JtYXQuaCcsCiAgICAgICAgICAgICAnaHRtbC9jYW52YXMvV2ViR0xU
ZXh0dXJlLmNwcCcsCiAgICAgICAgICAgICAnaHRtbC9jYW52YXMvV2ViR0xUZXh0dXJlLmgnLAog
ICAgICAgICAgICAgJ2h0bWwvY2FudmFzL1dlYkdMVW5pZm9ybUxvY2F0aW9uLmNwcCcsCkBAIC04
MDgwLDYgKzgwODIsOCBAQAogICAgICAgICAgICAgJzwoUFJPRFVDVF9ESVIpL0Rlcml2ZWRTb3Vy
Y2VzL1dlYkNvcmUvSlNXZWJHTFJlbmRlcmluZ0NvbnRleHQuaCcsCiAgICAgICAgICAgICAnPChQ
Uk9EVUNUX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1dlYkdMU2hhZGVyLmNwcCcsCiAg
ICAgICAgICAgICAnPChQUk9EVUNUX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1dlYkdM
U2hhZGVyLmgnLAorICAgICAgICAgICAgJzwoUFJPRFVDVF9ESVIpL0Rlcml2ZWRTb3VyY2VzL1dl
YkNvcmUvSlNXZWJHTFNoYWRlclByZWNpc2lvbkZvcm1hdC5jcHAnLAorICAgICAgICAgICAgJzwo
UFJPRFVDVF9ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNXZWJHTFNoYWRlclByZWNpc2lv
bkZvcm1hdC5oJywKICAgICAgICAgICAgICc8KFBST0RVQ1RfRElSKS9EZXJpdmVkU291cmNlcy9X
ZWJDb3JlL0pTV2ViR0xUZXh0dXJlLmNwcCcsCiAgICAgICAgICAgICAnPChQUk9EVUNUX0RJUikv
RGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1dlYkdMVGV4dHVyZS5oJywKICAgICAgICAgICAgICc8
KFBST0RVQ1RfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTV2ViR0xVbmlmb3JtTG9jYXRp
b24uY3BwJywKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDExMzA0NykKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMzYzNyw2ICsz
NjM3LDkgQEAKIAkJOUZGRTNFQTUxMUI1QTQzOTAwMzc4NzRFIC8qIEpTTWVtb3J5SW5mby5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5RkZFM0VBMzEx
QjVBNDM5MDAzNzg3NEUgLyogSlNNZW1vcnlJbmZvLmNwcCAqLzsgfTsKIAkJOUZGRTNFQTYxMUI1
QTQzOTAwMzc4NzRFIC8qIEpTTWVtb3J5SW5mby5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gOUZGRTNFQTQxMUI1QTQzOTAwMzc4NzRFIC8qIEpTTWVtb3J5
SW5mby5oICovOyB9OwogCQlBMDBCNzIxQTExREU2NDI4MDA4QUI5RkYgLyogQ2hlY2tlZEludC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTAwQjcyMTkx
MURFNjQyNzAwOEFCOUZGIC8qIENoZWNrZWRJbnQuaCAqLzsgfTsKKwkJQTA3RDMzNTUxNTJCNjMw
RTAwMUI2MzkzIC8qIEpTV2ViR0xTaGFkZXJQcmVjaXNpb25Gb3JtYXQuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTA3RDMzNTMxNTJCNjMwRTAwMUI2
MzkzIC8qIEpTV2ViR0xTaGFkZXJQcmVjaXNpb25Gb3JtYXQuY3BwICovOyB9OworCQlBMDdEMzM1
NjE1MkI2MzBFMDAxQjYzOTMgLyogSlNXZWJHTFNoYWRlclByZWNpc2lvbkZvcm1hdC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTA3RDMzNTQxNTJCNjMw
RTAwMUI2MzkzIC8qIEpTV2ViR0xTaGFkZXJQcmVjaXNpb25Gb3JtYXQuaCAqLzsgfTsKKwkJQTA3
RDMzNTgxNTJCNjMyRDAwMUI2MzkzIC8qIFdlYkdMU2hhZGVyUHJlY2lzaW9uRm9ybWF0LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMDdEMzM1NzE1MkI2
MzJEMDAxQjYzOTMgLyogV2ViR0xTaGFkZXJQcmVjaXNpb25Gb3JtYXQuaCAqLzsgfTsKIAkJQTBF
RTBERjUxNDRGODI1NTAwRjgwQjBEIC8qIFdlYkdMRGVidWdSZW5kZXJlckluZm8uY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTBFRTBERjExNDRGODI1
NTAwRjgwQjBEIC8qIFdlYkdMRGVidWdSZW5kZXJlckluZm8uY3BwICovOyB9OwogCQlBMEVFMERG
NjE0NEY4MjU1MDBGODBCMEQgLyogV2ViR0xEZWJ1Z1JlbmRlcmVySW5mby5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTBFRTBERjIxNDRGODI1NTAwRjgw
QjBEIC8qIFdlYkdMRGVidWdSZW5kZXJlckluZm8uaCAqLzsgfTsKIAkJQTBFRTBERjcxNDRGODI1
NTAwRjgwQjBEIC8qIFdlYkdMRGVidWdTaGFkZXJzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEEwRUUwREYzMTQ0RjgyNTUwMEY4MEIwRCAvKiBXZWJH
TERlYnVnU2hhZGVycy5jcHAgKi87IH07CkBAIC0xMDY0Myw2ICsxMDY0NiwxMCBAQAogCQk5RkZF
M0VBMzExQjVBNDM5MDAzNzg3NEUgLyogSlNNZW1vcnlJbmZvLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTTWVtb3J5SW5mby5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTlGRkUzRUE0MTFCNUE0MzkwMDM3ODc0RSAvKiBKU01lbW9yeUluZm8uaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNNZW1vcnlJbmZvLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUEwMEI3MjE5MTFERTY0MjcwMDhBQjlGRiAvKiBDaGVja2Vk
SW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IENoZWNrZWRJbnQuaDsgcGF0
aCA9IGNhbnZhcy9DaGVja2VkSW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUEw
N0QzMzUzMTUyQjYzMEUwMDFCNjM5MyAvKiBKU1dlYkdMU2hhZGVyUHJlY2lzaW9uRm9ybWF0LmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTV2ViR0xTaGFkZXJQcmVj
aXNpb25Gb3JtYXQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBMDdEMzM1NDE1
MkI2MzBFMDAxQjYzOTMgLyogSlNXZWJHTFNoYWRlclByZWNpc2lvbkZvcm1hdC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1dlYkdMU2hhZGVyUHJlY2lzaW9uRm9ybWF0Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUEwN0QzMzU3MTUyQjYzMkQwMDFCNjM5MyAv
KiBXZWJHTFNoYWRlclByZWNpc2lvbkZvcm1hdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IG5hbWUgPSBXZWJHTFNoYWRlclByZWNpc2lvbkZvcm1hdC5oOyBwYXRoID0gY2FudmFzL1dlYkdM
U2hhZGVyUHJlY2lzaW9uRm9ybWF0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUEw
N0QzMzU5MTUyQjYzM0UwMDFCNjM5MyAvKiBXZWJHTFNoYWRlclByZWNpc2lvbkZvcm1hdC5pZGwg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSB0ZXh0OyBuYW1lID0gV2ViR0xTaGFkZXJQcmVjaXNpb25Gb3JtYXQuaWRsOyBw
YXRoID0gY2FudmFzL1dlYkdMU2hhZGVyUHJlY2lzaW9uRm9ybWF0LmlkbDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJQTBFRTBERUYxNDRGODIzMjAwRjgwQjBEIC8qIFdlYkdMRGVidWdT
aGFkZXJzLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IG5hbWUgPSBXZWJHTERlYnVnU2hhZGVycy5pZGw7
IHBhdGggPSBjYW52YXMvV2ViR0xEZWJ1Z1NoYWRlcnMuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlBMEVFMERGMDE0NEY4MjQzMDBGODBCMEQgLyogV2ViR0xEZWJ1Z1JlbmRlcmVy
SW5mby5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBuYW1lID0gV2ViR0xEZWJ1Z1JlbmRlcmVySW5mby5p
ZGw7IHBhdGggPSBjYW52YXMvV2ViR0xEZWJ1Z1JlbmRlcmVySW5mby5pZGw7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUEwRUUwREYxMTQ0RjgyNTUwMEY4MEIwRCAvKiBXZWJHTERlYnVn
UmVuZGVyZXJJbmZvLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFdl
YkdMRGVidWdSZW5kZXJlckluZm8uY3BwOyBwYXRoID0gY2FudmFzL1dlYkdMRGVidWdSZW5kZXJl
ckluZm8uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTQ2MTgsNiArMTQ2MjUs
OCBAQAogCQk0OTQ4NEZBRTEwMkNGMDFFMDAxODdERDMgLyogY2FudmFzICovID0gewogCQkJaXNh
ID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQlBMDdEMzM1OTE1MkI2MzNFMDAxQjYz
OTMgLyogV2ViR0xTaGFkZXJQcmVjaXNpb25Gb3JtYXQuaWRsICovLAorCQkJCUEwN0QzMzU3MTUy
QjYzMkQwMDFCNjM5MyAvKiBXZWJHTFNoYWRlclByZWNpc2lvbkZvcm1hdC5oICovLAogCQkJCTQ5
RUVDRENDMTA1MDNDMjMwMDA5OUZBQiAvKiBBcnJheUJ1ZmZlci5pZGwgKi8sCiAJCQkJNDlFRUNE
QzkxMDUwM0MyMzAwMDk5RkFCIC8qIEFycmF5QnVmZmVyVmlldy5pZGwgKi8sCiAJCQkJNkU0RTkx
QTcxMEY3RkIzMTAwQTI3NzlDIC8qIENhbnZhc0NvbnRleHRBdHRyaWJ1dGVzLmNwcCAqLywKQEAg
LTE3OTEwLDYgKzE3OTE5LDggQEAKIAkJCQk0OUVFRDE0MTEwNTE5Njk0MDAwOTlGQUIgLyogSlNX
ZWJHTFJlbmRlcmluZ0NvbnRleHQuaCAqLywKIAkJCQk0OUM3Qjk4RjEwNDJEMkQzMDAwOUQ0NDcg
LyogSlNXZWJHTFNoYWRlci5jcHAgKi8sCiAJCQkJNDlDN0I5OTAxMDQyRDJEMzAwMDlENDQ3IC8q
IEpTV2ViR0xTaGFkZXIuaCAqLywKKwkJCQlBMDdEMzM1MzE1MkI2MzBFMDAxQjYzOTMgLyogSlNX
ZWJHTFNoYWRlclByZWNpc2lvbkZvcm1hdC5jcHAgKi8sCisJCQkJQTA3RDMzNTQxNTJCNjMwRTAw
MUI2MzkzIC8qIEpTV2ViR0xTaGFkZXJQcmVjaXNpb25Gb3JtYXQuaCAqLywKIAkJCQk0OUM3Qjk5
MTEwNDJEMkQzMDAwOUQ0NDcgLyogSlNXZWJHTFRleHR1cmUuY3BwICovLAogCQkJCTQ5QzdCOTky
MTA0MkQyRDMwMDA5RDQ0NyAvKiBKU1dlYkdMVGV4dHVyZS5oICovLAogCQkJCTBDNDUzNDI1MTBD
REJCRkEwMDg2OTE1NyAvKiBKU1dlYkdMVW5pZm9ybUxvY2F0aW9uLmNwcCAqLywKQEAgLTI0NzA2
LDEzICsyNDcxNywxNSBAQAogCQkJCTkzRjE5OUVEMDgyNDVFNTkwMDFFOUFCQyAvKiBYU0xUUHJv
Y2Vzc29yLmggaW4gSGVhZGVycyAqLywKIAkJCQlFMUJFNTEyRTBDRjZDNTEyMDAyRUE5NTkgLyog
WFNMVFVuaWNvZGVTb3J0LmggaW4gSGVhZGVycyAqLywKIAkJCQk5NzdFMkUwRjEyRjBGQzlDMDBD
MTMzNzkgLyogWFNTQXVkaXRvci5oIGluIEhlYWRlcnMgKi8sCi0gICAgICAgICAgICAgICAgRkQ1
ODFGQUYxNTIwRjkxRjAwM0E3QTc1IC8qIE9zY2lsbGF0b3IuaCBpbiBIZWFkZXJzICovLAotICAg
ICAgICAgICAgICAgIEZENTgxRkI1MTUyMEY5M0IwMDNBN0E3NSAvKiBXYXZlVGFibGUuaCBpbiBI
ZWFkZXJzICovLAotICAgICAgICAgICAgICAgIEZERUE2MjQzMTUyMTAyRTIwMDQ3OURGMCAvKiBK
U09zY2lsbGF0b3IuaCBpbiBIZWFkZXJzICovLAotICAgICAgICAgICAgICAgIEZERUE2MjQ3MTUy
MTAyRkMwMDQ3OURGMCAvKiBKU1dhdmVUYWJsZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJRkQ1ODFG
QUYxNTIwRjkxRjAwM0E3QTc1IC8qIE9zY2lsbGF0b3IuaCBpbiBIZWFkZXJzICovLAorCQkJCUZE
NTgxRkI1MTUyMEY5M0IwMDNBN0E3NSAvKiBXYXZlVGFibGUuaCBpbiBIZWFkZXJzICovLAorCQkJ
CUZERUE2MjQzMTUyMTAyRTIwMDQ3OURGMCAvKiBKU09zY2lsbGF0b3IuaCBpbiBIZWFkZXJzICov
LAorCQkJCUZERUE2MjQ3MTUyMTAyRkMwMDQ3OURGMCAvKiBKU1dhdmVUYWJsZS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJRkQ1MzczNTMxMzdCNjUxODAwMDA4RENFIC8qIFplcm9Qb2xlLmggaW4gSGVh
ZGVycyAqLywKIAkJCQkxQTM1ODZFMDE1MjY0QzQ1MDAyMkE2NTkgLyogUmVuZGVyTXVsdGlDb2x1
bW5GbG93VGhyZWFkLmggaW4gSGVhZGVycyAqLywKIAkJCQlFMUIyNTEwNzE1MkEwQkIwMDA2OUI3
NzkgLyogU3R5bGVQcm9wZXJ0eVNob3J0aGFuZC5oIGluIEhlYWRlcnMgKi8sCisJCQkJQTA3RDMz
NTYxNTJCNjMwRTAwMUI2MzkzIC8qIEpTV2ViR0xTaGFkZXJQcmVjaXNpb25Gb3JtYXQuaCBpbiBI
ZWFkZXJzICovLAorCQkJCUEwN0QzMzU4MTUyQjYzMkQwMDFCNjM5MyAvKiBXZWJHTFNoYWRlclBy
ZWNpc2lvbkZvcm1hdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxv
eW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBAIC0yNzcxMSw2ICsyNzcyNCw3IEBACiAJ
CQkJMUEzRkY5QzMxNTI2NTM1OTAwMjI4OEExIC8qIFJlbmRlck5hbWVkRmxvd1RocmVhZC5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQlFMUIyNTEwNjE1MkEwQkFGMDA2OUI3NzkgLyogU3R5bGVQcm9w
ZXJ0eVNob3J0aGFuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3MUNDN0EyMDE1MkEwQkZFMDA5
RUVBRjkgLyogU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbi5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlB
MDdEMzM1NTE1MkI2MzBFMDAxQjYzOTMgLyogSlNXZWJHTFNoYWRlclByZWNpc2lvbkZvcm1hdC5j
cHAgaW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9j
ZXNzaW5nID0gMDsKIAkJfTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdM
UmVuZGVyaW5nQ29udGV4dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9j
YW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmNwcAkocmV2aXNpb24gMTEzMDQ3KQorKysgU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtNjYsNiArNjYsNyBAQAogI2luY2x1ZGUgIldlYkdMUHJvZ3JhbS5oIgogI2lu
Y2x1ZGUgIldlYkdMUmVuZGVyYnVmZmVyLmgiCiAjaW5jbHVkZSAiV2ViR0xTaGFkZXIuaCIKKyNp
bmNsdWRlICJXZWJHTFNoYWRlclByZWNpc2lvbkZvcm1hdC5oIgogI2luY2x1ZGUgIldlYkdMVGV4
dHVyZS5oIgogI2luY2x1ZGUgIldlYkdMVW5pZm9ybUxvY2F0aW9uLmgiCiAKQEAgLTI2ODYsNiAr
MjY4NywzOCBAQCBTdHJpbmcgV2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRTaGFkZXJJCiAgICAg
cmV0dXJuIGVuc3VyZU5vdE51bGwobV9jb250ZXh0LT5nZXRTaGFkZXJJbmZvTG9nKG9iamVjdE9y
WmVybyhzaGFkZXIpKSk7CiB9CiAKK1Bhc3NSZWZQdHI8V2ViR0xTaGFkZXJQcmVjaXNpb25Gb3Jt
YXQ+IFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0U2hhZGVyUHJlY2lzaW9uRm9ybWF0KEdDM0Rl
bnVtIHNoYWRlclR5cGUsIEdDM0RlbnVtIHByZWNpc2lvblR5cGUsIEV4Y2VwdGlvbkNvZGUmIGVj
KQoreworICAgIFVOVVNFRF9QQVJBTShlYyk7CisgICAgaWYgKGlzQ29udGV4dExvc3QoKSkKKyAg
ICAgICAgcmV0dXJuIDA7CisgICAgc3dpdGNoIChzaGFkZXJUeXBlKSB7CisgICAgY2FzZSBHcmFw
aGljc0NvbnRleHQzRDo6VkVSVEVYX1NIQURFUjoKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNE
OjpGUkFHTUVOVF9TSEFERVI6CisgICAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAg
IHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX0VOVU0sICJnZXRT
aGFkZXJQcmVjaXNpb25Gb3JtYXQiLCAiaW52YWxpZCBzaGFkZXIgdHlwZSIpOworICAgICAgICBy
ZXR1cm4gMDsKKyAgICB9CisgICAgc3dpdGNoIChwcmVjaXNpb25UeXBlKSB7CisgICAgY2FzZSBH
cmFwaGljc0NvbnRleHQzRDo6TE9XX0ZMT0FUOgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6
Ok1FRElVTV9GTE9BVDoKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpISUdIX0ZMT0FUOgor
ICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkxPV19JTlQ6CisgICAgY2FzZSBHcmFwaGljc0Nv
bnRleHQzRDo6TUVESVVNX0lOVDoKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpISUdIX0lO
VDoKKyAgICAgICAgYnJlYWs7CisgICAgZGVmYXVsdDoKKyAgICAgICAgc3ludGhlc2l6ZUdMRXJy
b3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFMSURfRU5VTSwgImdldFNoYWRlclByZWNpc2lvbkZv
cm1hdCIsICJpbnZhbGlkIHByZWNpc2lvbiB0eXBlIik7CisgICAgICAgIHJldHVybiAwOworICAg
IH0KKworICAgIEdDM0RpbnQgcmFuZ2VbMl0gPSB7MCwgMH07CisgICAgR0MzRGludCBwcmVjaXNp
b24gPSAwOworICAgIG1fY29udGV4dC0+Z2V0U2hhZGVyUHJlY2lzaW9uRm9ybWF0KHNoYWRlclR5
cGUsIHByZWNpc2lvblR5cGUsIHJhbmdlLCAmcHJlY2lzaW9uKTsKKyAgICByZXR1cm4gV2ViR0xT
aGFkZXJQcmVjaXNpb25Gb3JtYXQ6OmNyZWF0ZShyYW5nZVswXSwgcmFuZ2VbMV0sIHByZWNpc2lv
bik7Cit9CisKIFN0cmluZyBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdldFNoYWRlclNvdXJjZShX
ZWJHTFNoYWRlciogc2hhZGVyLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBVTlVTRURfUEFS
QU0oZWMpOwpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdD
b250ZXh0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xS
ZW5kZXJpbmdDb250ZXh0LmgJKHJldmlzaW9uIDExMzA0NykKKysrIFNvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5oCSh3b3JraW5nIGNvcHkpCkBAIC02NSw2
ICs2NSw3IEBAIGNsYXNzIFdlYkdMUHJvZ3JhbTsKIGNsYXNzIFdlYkdMUmVuZGVyYnVmZmVyOwog
Y2xhc3MgV2ViR0xTaGFkZXI7CiBjbGFzcyBXZWJHTFNoYXJlZE9iamVjdDsKK2NsYXNzIFdlYkdM
U2hhZGVyUHJlY2lzaW9uRm9ybWF0OwogY2xhc3MgV2ViR0xUZXh0dXJlOwogY2xhc3MgV2ViR0xV
bmlmb3JtTG9jYXRpb247CiBjbGFzcyBXZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTOwpAQCAtMTY2
LDEwICsxNjcsNyBAQCBwdWJsaWM6CiAgICAgV2ViR0xHZXRJbmZvIGdldFJlbmRlcmJ1ZmZlclBh
cmFtZXRlcihHQzNEZW51bSB0YXJnZXQsIEdDM0RlbnVtIHBuYW1lLCBFeGNlcHRpb25Db2RlJik7
CiAgICAgV2ViR0xHZXRJbmZvIGdldFNoYWRlclBhcmFtZXRlcihXZWJHTFNoYWRlciosIEdDM0Rl
bnVtIHBuYW1lLCBFeGNlcHRpb25Db2RlJik7CiAgICAgU3RyaW5nIGdldFNoYWRlckluZm9Mb2co
V2ViR0xTaGFkZXIqLCBFeGNlcHRpb25Db2RlJik7Ci0KLSAgICAvLyBUQkQKLSAgICAvLyB2b2lk
IGdsR2V0U2hhZGVyUHJlY2lzaW9uRm9ybWF0IChHQzNEZW51bSBzaGFkZXJ0eXBlLCBHQzNEZW51
bSBwcmVjaXNpb250eXBlLCBHQzNEaW50KiByYW5nZSwgR0MzRGludCogcHJlY2lzaW9uKTsKLQor
ICAgIFBhc3NSZWZQdHI8V2ViR0xTaGFkZXJQcmVjaXNpb25Gb3JtYXQ+IGdldFNoYWRlclByZWNp
c2lvbkZvcm1hdChHQzNEZW51bSBzaGFkZXJUeXBlLCBHQzNEZW51bSBwcmVjaXNpb25UeXBlLCBF
eGNlcHRpb25Db2RlJik7CiAgICAgU3RyaW5nIGdldFNoYWRlclNvdXJjZShXZWJHTFNoYWRlcios
IEV4Y2VwdGlvbkNvZGUmKTsKICAgICBWZWN0b3I8U3RyaW5nPiBnZXRTdXBwb3J0ZWRFeHRlbnNp
b25zKCk7CiAgICAgV2ViR0xHZXRJbmZvIGdldFRleFBhcmFtZXRlcihHQzNEZW51bSB0YXJnZXQs
IEdDM0RlbnVtIHBuYW1lLCBFeGNlcHRpb25Db2RlJik7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9o
dG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuaWRsCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5pZGwJKHJldmlzaW9u
IDExMzA0NykKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29u
dGV4dC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTU1MCw4ICs1NTAsNyBAQCBtb2R1bGUgaHRtbCB7
CiAKICAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZywgVHJlYXRSZXR1cm5lZE51bGxTdHJpbmdB
cz1OdWxsXSBET01TdHJpbmcgICAgZ2V0U2hhZGVySW5mb0xvZyhpbiBXZWJHTFNoYWRlciBzaGFk
ZXIpIHJhaXNlcyhET01FeGNlcHRpb24pOwogCi0gICAgICAgIC8vIFRCRAotICAgICAgICAvLyB2
b2lkIGdsR2V0U2hhZGVyUHJlY2lzaW9uRm9ybWF0IChHTGVudW0gc2hhZGVydHlwZSwgR0xlbnVt
IHByZWNpc2lvbnR5cGUsIEdMaW50KiByYW5nZSwgR0xpbnQqIHByZWNpc2lvbik7CisgICAgICAg
IFtTdHJpY3RUeXBlQ2hlY2tpbmddIFdlYkdMU2hhZGVyUHJlY2lzaW9uRm9ybWF0IGdldFNoYWRl
clByZWNpc2lvbkZvcm1hdChpbiB1bnNpZ25lZCBsb25nIHNoYWRlcnR5cGUsIGluIHVuc2lnbmVk
IGxvbmcgcHJlY2lzaW9udHlwZSkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAKICAgICAgICAgW1N0
cmljdFR5cGVDaGVja2luZywgVHJlYXRSZXR1cm5lZE51bGxTdHJpbmdBcz1OdWxsXSBET01TdHJp
bmcgICAgZ2V0U2hhZGVyU291cmNlKGluIFdlYkdMU2hhZGVyIHNoYWRlcikgcmFpc2VzKERPTUV4
Y2VwdGlvbik7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMU2hhZGVy
UHJlY2lzaW9uRm9ybWF0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvV2ViR0xTaGFkZXJQcmVjaXNpb25Gb3JtYXQuaAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9X
ZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMU2hhZGVyUHJlY2lzaW9uRm9ybWF0LmgJKHJldmlzaW9u
IDApCkBAIC0wLDAgKzEsNjEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMTIsIEdvb2dsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMg
YXJlCisgKiBtZXQ6CisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJp
Z2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAq
ICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBX
ZWJHTFNoYWRlclByZWNpc2lvbkZvcm1hdF9oCisjZGVmaW5lIFdlYkdMU2hhZGVyUHJlY2lzaW9u
Rm9ybWF0X2gKKworI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dDNELmgiCisjaW5jbHVkZSA8d3Rm
L1Bhc3NSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK2NsYXNzIFdlYkdMU2hhZGVyUHJlY2lzaW9uRm9ybWF0IDogcHVibGljIFJl
ZkNvdW50ZWQ8V2ViR0xTaGFkZXJQcmVjaXNpb25Gb3JtYXQ+IHsKK3B1YmxpYzoKKyAgICBzdGF0
aWMgUGFzc1JlZlB0cjxXZWJHTFNoYWRlclByZWNpc2lvbkZvcm1hdD4gY3JlYXRlKEdDM0RpbnQg
cmFuZ2VNaW4sIEdDM0RpbnQgcmFuZ2VNYXgsIEdDM0RpbnQgcHJlY2lzaW9uKQorICAgIHsKKyAg
ICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBXZWJHTFNoYWRlclByZWNpc2lvbkZvcm1hdChyYW5n
ZU1pbiwgcmFuZ2VNYXgsIHByZWNpc2lvbikpOworICAgIH0KKyAgICBHQzNEaW50IHJhbmdlTWlu
KCkgY29uc3QgeyByZXR1cm4gbV9yYW5nZU1pbjsgfQorICAgIEdDM0RpbnQgcmFuZ2VNYXgoKSBj
b25zdCB7IHJldHVybiBtX3JhbmdlTWF4OyB9CisgICAgR0MzRGludCBwcmVjaXNpb24oKSBjb25z
dCB7IHJldHVybiBtX3ByZWNpc2lvbjsgfQorCitwcml2YXRlOgorICAgIFdlYkdMU2hhZGVyUHJl
Y2lzaW9uRm9ybWF0KEdDM0RpbnQgcmFuZ2VNaW4sIEdDM0RpbnQgcmFuZ2VNYXgsIEdDM0RpbnQg
cHJlY2lzaW9uKQorICAgICAgICA6IG1fcmFuZ2VNaW4ocmFuZ2VNaW4pCisgICAgICAgICwgbV9y
YW5nZU1heChyYW5nZU1heCkKKyAgICAgICAgLCBtX3ByZWNpc2lvbihwcmVjaXNpb24pCisgICAg
eworICAgIH0KKworICAgIEdDM0RpbnQgbV9yYW5nZU1pbjsKKyAgICBHQzNEaW50IG1fcmFuZ2VN
YXg7CisgICAgR0MzRGludCBtX3ByZWNpc2lvbjsKK307CisKK30KKworI2VuZGlmIC8vIFdlYkdM
U2hhZGVyUHJlY2lzaW9uRm9ybWF0X2gKClByb3BlcnR5IGNoYW5nZXMgb246IFNvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL1dlYkdMU2hhZGVyUHJlY2lzaW9uRm9ybWF0LmgKX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpB
ZGRlZDogc3ZuOmVvbC1zdHlsZQogICArIExGCgpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9j
YW52YXMvV2ViR0xTaGFkZXJQcmVjaXNpb25Gb3JtYXQuaWRsCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMU2hhZGVyUHJlY2lzaW9uRm9ybWF0LmlkbAkocmV2
aXNpb24gMCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMU2hhZGVyUHJlY2lz
aW9uRm9ybWF0LmlkbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwzNyBAQAorLyoKKyAqIENvcHly
aWdodCAoYykgMjAxMiwgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqICAgICAqIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERF
UlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQ
QVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBD
T1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisg
KiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCittb2R1bGUgaHRtbCB7CisKKyAgICBpbnRlcmZhY2UgWworICAgICAgICBD
b25kaXRpb25hbD1XRUJHTCwKKyAgICBdIFdlYkdMU2hhZGVyUHJlY2lzaW9uRm9ybWF0IHsKKyAg
ICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGludCByYW5nZU1pbjsKKyAgICAgICAgcmVhZG9ubHkg
YXR0cmlidXRlIGludCByYW5nZU1heDsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGludCBw
cmVjaXNpb247CisgICAgfTsKKworfQoKUHJvcGVydHkgY2hhbmdlcyBvbjogU291cmNlL1dlYkNv
cmUvaHRtbC9jYW52YXMvV2ViR0xTaGFkZXJQcmVjaXNpb25Gb3JtYXQuaWRsCl9fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K
QWRkZWQ6IHN2bjplb2wtc3R5bGUKICAgKyBMRgoKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2Uv
RE9NV2luZG93LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRv
dy5pZGwJKHJldmlzaW9uIDExMzA0NykKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93
LmlkbAkod29ya2luZyBjb3B5KQpAQCAtNDk2LDYgKzQ5Niw3IEBAIG1vZHVsZSB3aW5kb3cgewog
ICAgICAgICBhdHRyaWJ1dGUgW0NvbmRpdGlvbmFsPVdFQkdMXSBXZWJHTFJlbmRlcmJ1ZmZlckNv
bnN0cnVjdG9yIFdlYkdMUmVuZGVyYnVmZmVyOwogICAgICAgICBhdHRyaWJ1dGUgW0NvbmRpdGlv
bmFsPVdFQkdMXSBXZWJHTFJlbmRlcmluZ0NvbnRleHRDb25zdHJ1Y3RvciBXZWJHTFJlbmRlcmlu
Z0NvbnRleHQ7CiAgICAgICAgIGF0dHJpYnV0ZSBbQ29uZGl0aW9uYWw9V0VCR0xdIFdlYkdMU2hh
ZGVyQ29uc3RydWN0b3IgV2ViR0xTaGFkZXI7CisgICAgICAgIGF0dHJpYnV0ZSBbQ29uZGl0aW9u
YWw9V0VCR0xdIFdlYkdMU2hhZGVyUHJlY2lzaW9uRm9ybWF0Q29uc3RydWN0b3IgV2ViR0xTaGFk
ZXJQcmVjaXNpb25Gb3JtYXQ7CiAgICAgICAgIGF0dHJpYnV0ZSBbQ29uZGl0aW9uYWw9V0VCR0xd
IFdlYkdMVGV4dHVyZUNvbnN0cnVjdG9yIFdlYkdMVGV4dHVyZTsKICAgICAgICAgYXR0cmlidXRl
IFtDb25kaXRpb25hbD1XRUJHTF0gV2ViR0xVbmlmb3JtTG9jYXRpb25Db25zdHJ1Y3RvciBXZWJH
TFVuaWZvcm1Mb2NhdGlvbjsKIApJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvR3JhcGhpY3NDb250ZXh0M0QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRC5oCShyZXZpc2lvbiAxMTMwNDcpCisrKyBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRC5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC03MDksMTAgKzcwOSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGdldFJlbmRl
cmJ1ZmZlclBhcmFtZXRlcml2KEdDM0RlbnVtIHRhcmdldCwgR0MzRGVudW0gcG5hbWUsIEdDM0Rp
bnQqIHZhbHVlKTsKICAgICB2b2lkIGdldFNoYWRlcml2KFBsYXRmb3JtM0RPYmplY3QsIEdDM0Rl
bnVtIHBuYW1lLCBHQzNEaW50KiB2YWx1ZSk7CiAgICAgU3RyaW5nIGdldFNoYWRlckluZm9Mb2co
UGxhdGZvcm0zRE9iamVjdCk7Ci0KLSAgICAvLyBUQkQKLSAgICAvLyB2b2lkIGdsR2V0U2hhZGVy
UHJlY2lzaW9uRm9ybWF0IChHQzNEZW51bSBzaGFkZXJ0eXBlLCBHQzNEZW51bSBwcmVjaXNpb250
eXBlLCBHQzNEaW50KiByYW5nZSwgR0MzRGludCogcHJlY2lzaW9uKTsKLQorICAgIHZvaWQgZ2V0
U2hhZGVyUHJlY2lzaW9uRm9ybWF0KEdDM0RlbnVtIHNoYWRlclR5cGUsIEdDM0RlbnVtIHByZWNp
c2lvblR5cGUsIEdDM0RpbnQqIHJhbmdlLCBHQzNEaW50KiBwcmVjaXNpb24pOwogICAgIFN0cmlu
ZyBnZXRTaGFkZXJTb3VyY2UoUGxhdGZvcm0zRE9iamVjdCk7CiAgICAgU3RyaW5nIGdldFN0cmlu
ZyhHQzNEZW51bSBuYW1lKTsKICAgICB2b2lkIGdldFRleFBhcmFtZXRlcmZ2KEdDM0RlbnVtIHRh
cmdldCwgR0MzRGVudW0gcG5hbWUsIEdDM0RmbG9hdCogdmFsdWUpOwpJbmRleDogU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dDNET3BlbkdMQ29t
bW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9v
cGVuZ2wvR3JhcGhpY3NDb250ZXh0M0RPcGVuR0xDb21tb24uY3BwCShyZXZpc2lvbiAxMTMwNDcp
CisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250
ZXh0M0RPcGVuR0xDb21tb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMjE0LDYgKzEyMTQsMzUg
QEAgU3RyaW5nIEdyYXBoaWNzQ29udGV4dDNEOjpnZXRTaGFkZXJJbmZvTAogICAgIHJldHVybiBT
dHJpbmcoaW5mby5nZXQoKSk7CiB9CiAKK3ZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OmdldFNoYWRl
clByZWNpc2lvbkZvcm1hdChHQzNEZW51bSBzaGFkZXJUeXBlLCBHQzNEZW51bSBwcmVjaXNpb25U
eXBlLCBHQzNEaW50KiByYW5nZSwgR0MzRGludCogcHJlY2lzaW9uKQoreworICAgIFVOVVNFRF9Q
QVJBTShzaGFkZXJUeXBlKTsKKyAgICBBU1NFUlQocmFuZ2UpOworICAgIEFTU0VSVChwcmVjaXNp
b24pOworCisgICAgbWFrZUNvbnRleHRDdXJyZW50KCk7CisKKyAgICBzd2l0Y2ggKHByZWNpc2lv
blR5cGUpIHsKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpMT1dfSU5UOgorICAgIGNhc2Ug
R3JhcGhpY3NDb250ZXh0M0Q6Ok1FRElVTV9JTlQ6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQz
RDo6SElHSF9JTlQ6CisgICAgICAgIHJhbmdlWzBdID0gLTMxOworICAgICAgICByYW5nZVsxXSA9
IDMxOworICAgICAgICBwcmVjaXNpb25bMF0gPSAwOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IEdyYXBoaWNzQ29udGV4dDNEOjpMT1dfRkxPQVQ6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQz
RDo6TUVESVVNX0ZMT0FUOgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkhJR0hfRkxPQVQ6
CisgICAgICAgIHJhbmdlWzBdID0gLTYyOworICAgICAgICByYW5nZVsxXSA9IDYyOworICAgICAg
ICBwcmVjaXNpb25bMF0gPSAtMTY7CisgICAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAg
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICBicmVhazsKKyAgICB9Cit9CisKIFN0
cmluZyBHcmFwaGljc0NvbnRleHQzRDo6Z2V0U2hhZGVyU291cmNlKFBsYXRmb3JtM0RPYmplY3Qg
c2hhZGVyKQogewogICAgIEFTU0VSVChzaGFkZXIpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvcXQvR3JhcGhpY3NDb250ZXh0M0RRdC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvR3JhcGhpY3NDb250ZXh0M0RRdC5j
cHAJKHJldmlzaW9uIDExMzA0NykKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3F0L0dyYXBoaWNzQ29udGV4dDNEUXQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMzYwLDYgKzEz
NjAsMzUgQEAgU3RyaW5nIEdyYXBoaWNzQ29udGV4dDNEOjpnZXRTaGFkZXJJbmZvTAogICAgIHJl
dHVybiByZXN1bHQ7CiB9CiAKK3ZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OmdldFNoYWRlclByZWNp
c2lvbkZvcm1hdChHQzNEZW51bSBzaGFkZXJUeXBlLCBHQzNEZW51bSBwcmVjaXNpb25UeXBlLCBH
QzNEaW50KiByYW5nZSwgR0MzRGludCogcHJlY2lzaW9uKQoreworICAgIFVOVVNFRF9QQVJBTShz
aGFkZXJUeXBlKTsKKyAgICBBU1NFUlQocmFuZ2UpOworICAgIEFTU0VSVChwcmVjaXNpb24pOwor
CisgICAgbWFrZUNvbnRleHRDdXJyZW50KCk7CisKKyAgICBzd2l0Y2ggKHByZWNpc2lvblR5cGUp
IHsKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpMT1dfSU5UOgorICAgIGNhc2UgR3JhcGhp
Y3NDb250ZXh0M0Q6Ok1FRElVTV9JTlQ6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6SElH
SF9JTlQ6CisgICAgICAgIHJhbmdlWzBdID0gLTMxOworICAgICAgICByYW5nZVsxXSA9IDMxOwor
ICAgICAgICBwcmVjaXNpb25bMF0gPSAwOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEdyYXBo
aWNzQ29udGV4dDNEOjpMT1dfRkxPQVQ6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6TUVE
SVVNX0ZMT0FUOgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkhJR0hfRkxPQVQ6CisgICAg
ICAgIHJhbmdlWzBdID0gLTYyOworICAgICAgICByYW5nZVsxXSA9IDYyOworICAgICAgICBwcmVj
aXNpb25bMF0gPSAtMTY7CisgICAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAgIEFT
U0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICBicmVhazsKKyAgICB9Cit9CisKIFN0cmluZyBH
cmFwaGljc0NvbnRleHQzRDo6Z2V0U2hhZGVyU291cmNlKFBsYXRmb3JtM0RPYmplY3Qgc2hhZGVy
KQogewogICAgIG1ha2VDb250ZXh0Q3VycmVudCgpOwpJbmRleDogU291cmNlL1dlYktpdC9jaHJv
bWl1bS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFu
Z2VMb2cJKHJldmlzaW9uIDExMzA0NykKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTItMDQtMDIgIFpoZW55YW8g
TW8gIDx6bW9AZ29vZ2xlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgV2ViR0xTaGFkZXJQcmVj
aXNpb25Gb3JtYXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTc1OTI1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBzcmMvR3JhcGhpY3NDb250ZXh0M0RDaHJvbWl1bS5jcHA6IEFkZCBnZXRTaGFkZXJQcmVj
aXNpb25Gb3JtYXQoKS4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHNyYy9HcmFwaGlj
c0NvbnRleHQzRFByaXZhdGUuaDogRGl0dG8uCisgICAgICAgIChHcmFwaGljc0NvbnRleHQzRFBy
aXZhdGUpOgorCiAyMDEyLTA0LTAzICBNYXJrIFBpbGdyaW0gIDxwaWxncmltQGNocm9taXVtLm9y
Zz4KIAogICAgICAgICBDYWxsIGluY3JlbWVudFN0YXRzQ291bnRlciBkaXJlY3RseQpJbmRleDog
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvR3JhcGhpY3NDb250ZXh0M0RDaHJvbWl1bS5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvR3JhcGhpY3NDb250ZXh0
M0RDaHJvbWl1bS5jcHAJKHJldmlzaW9uIDExMzA0NykKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL0dyYXBoaWNzQ29udGV4dDNEQ2hyb21pdW0uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02
MTIsNiArNjEyLDggQEAgU3RyaW5nIEdyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZTo6Z2V0U2hhZAog
ICAgIHJldHVybiBtX2ltcGwtPmdldFNoYWRlckluZm9Mb2coc2hhZGVyKTsKIH0KIAorREVMRUdB
VEVfVE9fSU1QTF80KGdldFNoYWRlclByZWNpc2lvbkZvcm1hdCwgR0MzRGVudW0sIEdDM0RlbnVt
LCBHQzNEaW50KiwgR0MzRGludCopCisKIFN0cmluZyBHcmFwaGljc0NvbnRleHQzRFByaXZhdGU6
OmdldFNoYWRlclNvdXJjZShQbGF0Zm9ybTNET2JqZWN0IHNoYWRlcikKIHsKICAgICByZXR1cm4g
bV9pbXBsLT5nZXRTaGFkZXJTb3VyY2Uoc2hhZGVyKTsKQEAgLTExNTUsNiArMTE1Nyw3IEBAIERF
TEVHQVRFX1RPX0lOVEVSTkFMXzFSKGdldFByb2dyYW1JbmZvTG8KIERFTEVHQVRFX1RPX0lOVEVS
TkFMXzMoZ2V0UmVuZGVyYnVmZmVyUGFyYW1ldGVyaXYsIEdDM0RlbnVtLCBHQzNEZW51bSwgR0Mz
RGludCopCiBERUxFR0FURV9UT19JTlRFUk5BTF8zKGdldFNoYWRlcml2LCBQbGF0Zm9ybTNET2Jq
ZWN0LCBHQzNEZW51bSwgR0MzRGludCopCiBERUxFR0FURV9UT19JTlRFUk5BTF8xUihnZXRTaGFk
ZXJJbmZvTG9nLCBQbGF0Zm9ybTNET2JqZWN0LCBTdHJpbmcpCitERUxFR0FURV9UT19JTlRFUk5B
TF80KGdldFNoYWRlclByZWNpc2lvbkZvcm1hdCwgR0MzRGVudW0sIEdDM0RlbnVtLCBHQzNEaW50
KiwgR0MzRGludCopCiBERUxFR0FURV9UT19JTlRFUk5BTF8xUihnZXRTaGFkZXJTb3VyY2UsIFBs
YXRmb3JtM0RPYmplY3QsIFN0cmluZykKIERFTEVHQVRFX1RPX0lOVEVSTkFMXzFSKGdldFN0cmlu
ZywgR0MzRGVudW0sIFN0cmluZykKIERFTEVHQVRFX1RPX0lOVEVSTkFMXzMoZ2V0VGV4UGFyYW1l
dGVyZnYsIEdDM0RlbnVtLCBHQzNEZW51bSwgR0MzRGZsb2F0KikKSW5kZXg6IFNvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL0dyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZS5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0dyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZS5oCShy
ZXZpc2lvbiAxMTMwNDcpCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9HcmFwaGljc0Nv
bnRleHQzRFByaXZhdGUuaAkod29ya2luZyBjb3B5KQpAQCAtMTY0LDYgKzE2NCw3IEBAIHB1Ymxp
YzoKICAgICB2b2lkIGdldFJlbmRlcmJ1ZmZlclBhcmFtZXRlcml2KEdDM0RlbnVtIHRhcmdldCwg
R0MzRGVudW0gcG5hbWUsIEdDM0RpbnQqIHZhbHVlKTsKICAgICB2b2lkIGdldFNoYWRlcml2KFBs
YXRmb3JtM0RPYmplY3QsIEdDM0RlbnVtIHBuYW1lLCBHQzNEaW50KiB2YWx1ZSk7CiAgICAgU3Ry
aW5nIGdldFNoYWRlckluZm9Mb2coUGxhdGZvcm0zRE9iamVjdCk7CisgICAgdm9pZCBnZXRTaGFk
ZXJQcmVjaXNpb25Gb3JtYXQoR0MzRGVudW0gc2hhZGVyVHlwZSwgR0MzRGVudW0gcHJlY2lzaW9u
VHlwZSwgR0MzRGludCogcmFuZ2UsIEdDM0RpbnQqIHByZWNpc2lvbik7CiAKICAgICBTdHJpbmcg
Z2V0U2hhZGVyU291cmNlKFBsYXRmb3JtM0RPYmplY3QpOwogICAgIFN0cmluZyBnZXRTdHJpbmco
R0MzRGVudW0gbmFtZSk7CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAxMTMwNDcpCisrKyBMYXlvdXRUZXN0
cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyMSBAQAorMjAxMi0wNC0wMiAg
WmhlbnlhbyBNbyAgPHptb0Bnb29nbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBXZWJHTFNo
YWRlclByZWNpc2lvbkZvcm1hdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NzU5MjUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIGZhc3QvY2FudmFzL3dlYmdsL2luc3RhbmNlb2YtdGVzdC1leHBlY3RlZC50
eHQ6IEFkZCBuZXcgV2ViR0xTaGFkZXJQcmVjaXNpb25Gb3JtYXQgZmFpbHVyZS4KKyAgICAgICAg
KiBmYXN0L2NhbnZhcy93ZWJnbC9pbnN0YW5jZW9mLXRlc3QuaHRtbDoKKyAgICAgICAgKiBmYXN0
L2NhbnZhcy93ZWJnbC9zaGFkZXItcHJlY2lzaW9uLWZvcm1hdC1leHBlY3RlZC50eHQ6IEFkZGVk
LgorICAgICAgICAqIGZhc3QvY2FudmFzL3dlYmdsL3NoYWRlci1wcmVjaXNpb24tZm9ybWF0Lmh0
bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL1dpbmRvdy9zY3JpcHQtdGVzdHMvd2luZG93
LXByb3BlcnR5LWRlc2NyaXB0b3JzLmpzOiBBZGQgbmV3IHR5cGUgV2ViR0xTaGFkZXJQcmVjaXNp
b25Gb3JtYXQuCisgICAgICAgICogZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0aWVzLmh0
bWw6IERpdHRvLgorICAgICAgICAqIGZhc3QvZG9tL3NjcmlwdC10ZXN0cy9wcm90b3R5cGUtaW5o
ZXJpdGFuY2UtMi5qczogRGl0dG8uCisgICAgICAgIChjb25zdHJ1Y3Rvck5hbWVzRm9yV2luZG93
KToKKyAgICAgICAgKiBmYXN0L2RvbS9zY3JpcHQtdGVzdHMvcHJvdG90eXBlLWluaGVyaXRhbmNl
LmpzOiBEaXR0by4KKyAgICAgICAgKiBmYXN0L2pzL3NjcmlwdC10ZXN0cy9nbG9iYWwtY29uc3Ry
dWN0b3JzLmpzOiBEaXR0by4KKwogMjAxMi0wNC0wMyAgVG9ueSBDaGFuZyAgPHRvbnlAY2hyb21p
dW0ub3JnPgogCiAgICAgICAgIExheW91dFRlc3RzLy5naXRhdHRyaWJ1dGVzIGNsZWFudXAKSW5k
ZXg6IExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2luc3RhbmNlb2YtdGVzdC1leHBlY3Rl
ZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvaW5zdGFu
Y2VvZi10ZXN0LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMTEzMDQ3KQorKysgTGF5b3V0VGVzdHMv
ZmFzdC9jYW52YXMvd2ViZ2wvaW5zdGFuY2VvZi10ZXN0LWV4cGVjdGVkLnR4dAkod29ya2luZyBj
b3B5KQpAQCAtMSwzICsxLDcgQEAKK1dlYkdMIGluc3RhbmNlb2YgdGVzdC4KKworT24gc3VjY2Vz
cywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkg
IlRFU1QgQ09NUExFVEUiLgorCiBUZXN0cyB0aGF0IGluc3RhbmNlb2Ygd29ya3Mgb24gV2ViR0wg
b2JqZWN0cy4KIAogUEFTUyBnbCBpbnN0YW5jZW9mIFdlYkdMUmVuZGVyaW5nQ29udGV4dCBpcyB0
cnVlCkBAIC0yMiw2ICsyNiw3IEBAIFBBU1MgbmV3IFdlYkdMUmVuZGVyYnVmZmVyIHRocmV3IGFu
IGVycm8KIFBBU1MgbmV3IFdlYkdMU2hhZGVyIHRocmV3IGFuIGVycm9yCiBQQVNTIG5ldyBXZWJH
TFRleHR1cmUgdGhyZXcgYW4gZXJyb3IKIFBBU1MgbmV3IFdlYkdMVW5pZm9ybUxvY2F0aW9uIHRo
cmV3IGFuIGVycm9yCitQQVNTIG5ldyBXZWJHTFNoYWRlclByZWNpc2lvbkZvcm1hdCB0aHJldyBh
biBlcnJvcgogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRF
CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9pbnN0YW5jZW9mLXRlc3QuaHRt
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9pbnN0YW5jZW9m
LXRlc3QuaHRtbAkocmV2aXNpb24gMTEzMDQ3KQorKysgTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMv
d2ViZ2wvaW5zdGFuY2VvZi10ZXN0Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsODggKzEsODkg
QEAKLTwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAxIFRyYW5zaXRp
b25hbC8vRU4iDQotICAiaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDQvbG9vc2UuZHRkIj4NCi08
aHRtbD4NCi08aGVhZD4NCi08dGl0bGU+V2ViR0wgaW5zdGFuY2VvZiB0ZXN0LjwvdGl0bGU+DQot
PHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+
DQotPHNjcmlwdCBzcmM9InJlc291cmNlcy93ZWJnbC10ZXN0LmpzIj4gPC9zY3JpcHQ+DQotPHNj
cmlwdCBzcmM9InJlc291cmNlcy93ZWJnbC10ZXN0LXV0aWxzLmpzIj4gPC9zY3JpcHQ+DQotPC9o
ZWFkPg0KLTxib2R5Pg0KLTxjYW52YXMgaWQ9ImNhbnZhcyIgd2lkdGg9IjIiIGhlaWdodD0iMiIg
c3R5bGU9IndpZHRoOiA0MHB4OyBoZWlnaHQ6IDQwcHg7Ij48L2NhbnZhcz4NCi08c2NyaXB0IGlk
PSJ2c2hhZGVyIiB0eXBlPSJ4LXNoYWRlci94LXZlcnRleCI+DQotYXR0cmlidXRlIHZlYzQgdlBv
c2l0aW9uOw0KLXZhcnlpbmcgdmVjMiB0ZXhDb29yZDsNCi12b2lkIG1haW4oKQ0KLXsNCi0gICAg
Z2xfUG9zaXRpb24gPSB2UG9zaXRpb247DQotfQ0KLTwvc2NyaXB0Pg0KLQ0KLTxzY3JpcHQgaWQ9
ImZzaGFkZXIiIHR5cGU9Ingtc2hhZGVyL3gtZnJhZ21lbnQiPg0KLSNpZmRlZiBHTF9FUw0KLXBy
ZWNpc2lvbiBtZWRpdW1wIGZsb2F0Ow0KLSNlbmRpZg0KLXVuaWZvcm0gdmVjNCBjb2xvcjsNCi12
b2lkIG1haW4oKQ0KLXsNCi0gICAgZ2xfRnJhZ0NvbG9yID0gY29sb3I7DQotfQ0KLTwvc2NyaXB0
Pg0KLTxzY3JpcHQ+DQotdmFyIHd0dSA9IFdlYkdMVGVzdFV0aWxzOw0KLWRlYnVnKCJUZXN0cyB0
aGF0IGluc3RhbmNlb2Ygd29ya3Mgb24gV2ViR0wgb2JqZWN0cy4iKTsNCi1kZWJ1ZygiIik7DQot
dmFyIGdsID0gY3JlYXRlM0RDb250ZXh0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjYW52YXMi
KSk7DQotc2hvdWxkQmVUcnVlKCdnbCBpbnN0YW5jZW9mIFdlYkdMUmVuZGVyaW5nQ29udGV4dCcp
Ow0KLXNob3VsZEJlVHJ1ZSgnZ2wuY3JlYXRlQnVmZmVyKCkgaW5zdGFuY2VvZiBXZWJHTEJ1ZmZl
cicpOw0KLXNob3VsZEJlVHJ1ZSgnZ2wuY3JlYXRlRnJhbWVidWZmZXIoKSBpbnN0YW5jZW9mIFdl
YkdMRnJhbWVidWZmZXInKTsNCi1zaG91bGRCZVRydWUoJ2dsLmNyZWF0ZVByb2dyYW0oKSBpbnN0
YW5jZW9mIFdlYkdMUHJvZ3JhbScpOw0KLXNob3VsZEJlVHJ1ZSgnZ2wuY3JlYXRlUmVuZGVyYnVm
ZmVyKCkgaW5zdGFuY2VvZiBXZWJHTFJlbmRlcmJ1ZmZlcicpOw0KLXNob3VsZEJlVHJ1ZSgnZ2wu
Y3JlYXRlU2hhZGVyKGdsLlZFUlRFWF9TSEFERVIpIGluc3RhbmNlb2YgV2ViR0xTaGFkZXInKTsN
Ci1zaG91bGRCZVRydWUoJ2dsLmNyZWF0ZVRleHR1cmUoKSBpbnN0YW5jZW9mIFdlYkdMVGV4dHVy
ZScpOw0KLQ0KLXZhciBwcm9ncmFtID0gd3R1LnNldHVwUHJvZ3JhbSgNCi0gICAgZ2wsDQotICAg
IFt3dHUubG9hZFNoYWRlckZyb21TY3JpcHQoZ2wsICd2c2hhZGVyJywgZ2wuVkVSVEVYX1NIQURF
UiksDQotICAgICB3dHUubG9hZFNoYWRlckZyb21TY3JpcHQoZ2wsICdmc2hhZGVyJywgZ2wuRlJB
R01FTlRfU0hBREVSKV0sDQotICAgIFsndlBvc2l0aW9uJ10sIFswXSk7DQotDQotc2hvdWxkQmVU
cnVlKCdnbC5nZXRVbmlmb3JtTG9jYXRpb24ocHJvZ3JhbSwgImNvbG9yIikgaW5zdGFuY2VvZiBX
ZWJHTFVuaWZvcm1Mb2NhdGlvbicpOw0KLXNob3VsZEJlVHJ1ZSgnZ2wuZ2V0QWN0aXZlQXR0cmli
KHByb2dyYW0sIDApIGluc3RhbmNlb2YgV2ViR0xBY3RpdmVJbmZvJyk7DQotc2hvdWxkQmVUcnVl
KCdnbC5nZXRBY3RpdmVVbmlmb3JtKHByb2dyYW0sIDApIGluc3RhbmNlb2YgV2ViR0xBY3RpdmVJ
bmZvJyk7DQotDQotZGVidWcoIiIpOw0KLWRlYnVnKCJUZXN0cyB0aGF0IHRob3NlIFdlYkdMIG9i
amVjdHMgY2FuIG5vdCBiZSBjb25zdHJ1Y3RlZCB0aHJvdWdoIG5ldyBvcGVyYXRvciIpOw0KLWRl
YnVnKCIiKTsNCi0NCi1mdW5jdGlvbiBzaG91bGRUaHJvd1dpdGhOZXcob2JqZWN0VHlwZSwgb2Jq
ZWN0TmFtZSkNCi17DQotICAgIHRyeSB7DQotICAgICAgICBuZXcgb2JqZWN0VHlwZTsNCi0gICAg
ICAgIHRlc3RGYWlsZWQoJ25ldyAnICsgb2JqZWN0TmFtZSArICcgZGlkIG5vdCB0aHJvdycpOw0K
LSAgICB9IGNhdGNoIChlKSB7DQotICAgICAgICB0ZXN0UGFzc2VkKCduZXcgJyArIG9iamVjdE5h
bWUgKyAnIHRocmV3IGFuIGVycm9yJyk7DQotICAgIH0NCi19DQotDQotc2hvdWxkVGhyb3dXaXRo
TmV3KFdlYkdMUmVuZGVyaW5nQ29udGV4dCwgJ1dlYkdMUmVuZGVyaW5nQ29udGV4dCcpOw0KLXNo
b3VsZFRocm93V2l0aE5ldyhXZWJHTEFjdGl2ZUluZm8sICdXZWJHTEFjdGl2ZUluZm8nKTsNCi1z
aG91bGRUaHJvd1dpdGhOZXcoV2ViR0xCdWZmZXIsICdXZWJHTEJ1ZmZlcicpOw0KLXNob3VsZFRo
cm93V2l0aE5ldyhXZWJHTEZyYW1lYnVmZmVyLCAnV2ViR0xGcmFtZWJ1ZmZlcicpOw0KLXNob3Vs
ZFRocm93V2l0aE5ldyhXZWJHTFByb2dyYW0sICdXZWJHTFByb2dyYW0nKTsNCi1zaG91bGRUaHJv
d1dpdGhOZXcoV2ViR0xSZW5kZXJidWZmZXIsICdXZWJHTFJlbmRlcmJ1ZmZlcicpOw0KLXNob3Vs
ZFRocm93V2l0aE5ldyhXZWJHTFNoYWRlciwgJ1dlYkdMU2hhZGVyJyk7DQotc2hvdWxkVGhyb3dX
aXRoTmV3KFdlYkdMVGV4dHVyZSwgJ1dlYkdMVGV4dHVyZScpOw0KLXNob3VsZFRocm93V2l0aE5l
dyhXZWJHTFVuaWZvcm1Mb2NhdGlvbiwgJ1dlYkdMVW5pZm9ybUxvY2F0aW9uJyk7DQotDQotPC9z
Y3JpcHQ+DQotPC9ib2R5Pg0KLTxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVz
dC1wb3N0LmpzIj48L3NjcmlwdD4NCi0NCi08c2NyaXB0Pg0KLTwvc2NyaXB0Pg0KLQ0KLTwvYm9k
eT4NCi08L2h0bWw+DQotDQotDQorCis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8
bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+V2ViR0wgaW5zdGFuY2VvZiB0ZXN0LjwvdGl0
bGU+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10
ZXN0LXN0eWxlLmNzcyIvPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0
LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3dlYmdsLXRlc3QuanMi
PiA8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvd2ViZ2wtdGVzdC11dGlscy5qcyI+
IDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8Y2FudmFzIGlkPSJjYW52YXMiIHdpZHRoPSIy
IiBoZWlnaHQ9IjIiIHN0eWxlPSJ3aWR0aDogNDBweDsgaGVpZ2h0OiA0MHB4OyI+PC9jYW52YXM+
Cis8ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9kaXY+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4K
KzxzY3JpcHQgaWQ9InZzaGFkZXIiIHR5cGU9Ingtc2hhZGVyL3gtdmVydGV4Ij4KK2F0dHJpYnV0
ZSB2ZWM0IHZQb3NpdGlvbjsKK3ZhcnlpbmcgdmVjMiB0ZXhDb29yZDsKK3ZvaWQgbWFpbigpCit7
CisgICAgZ2xfUG9zaXRpb24gPSB2UG9zaXRpb247Cit9Cis8L3NjcmlwdD4KKworPHNjcmlwdCBp
ZD0iZnNoYWRlciIgdHlwZT0ieC1zaGFkZXIveC1mcmFnbWVudCI+CitwcmVjaXNpb24gbWVkaXVt
cCBmbG9hdDsKK3VuaWZvcm0gdmVjNCBjb2xvcjsKK3ZvaWQgbWFpbigpCit7CisgICAgZ2xfRnJh
Z0NvbG9yID0gY29sb3I7Cit9Cis8L3NjcmlwdD4KKzxzY3JpcHQ+Cit2YXIgd3R1ID0gV2ViR0xU
ZXN0VXRpbHM7CitkZXNjcmlwdGlvbihkb2N1bWVudC50aXRsZSk7CitkZWJ1ZygiVGVzdHMgdGhh
dCBpbnN0YW5jZW9mIHdvcmtzIG9uIFdlYkdMIG9iamVjdHMuIik7CitkZWJ1ZygiIik7Cit2YXIg
Z2wgPSBjcmVhdGUzRENvbnRleHQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNhbnZhcyIpKTsK
K3Nob3VsZEJlVHJ1ZSgnZ2wgaW5zdGFuY2VvZiBXZWJHTFJlbmRlcmluZ0NvbnRleHQnKTsKK3No
b3VsZEJlVHJ1ZSgnZ2wuY3JlYXRlQnVmZmVyKCkgaW5zdGFuY2VvZiBXZWJHTEJ1ZmZlcicpOwor
c2hvdWxkQmVUcnVlKCdnbC5jcmVhdGVGcmFtZWJ1ZmZlcigpIGluc3RhbmNlb2YgV2ViR0xGcmFt
ZWJ1ZmZlcicpOworc2hvdWxkQmVUcnVlKCdnbC5jcmVhdGVQcm9ncmFtKCkgaW5zdGFuY2VvZiBX
ZWJHTFByb2dyYW0nKTsKK3Nob3VsZEJlVHJ1ZSgnZ2wuY3JlYXRlUmVuZGVyYnVmZmVyKCkgaW5z
dGFuY2VvZiBXZWJHTFJlbmRlcmJ1ZmZlcicpOworc2hvdWxkQmVUcnVlKCdnbC5jcmVhdGVTaGFk
ZXIoZ2wuVkVSVEVYX1NIQURFUikgaW5zdGFuY2VvZiBXZWJHTFNoYWRlcicpOworc2hvdWxkQmVU
cnVlKCdnbC5jcmVhdGVUZXh0dXJlKCkgaW5zdGFuY2VvZiBXZWJHTFRleHR1cmUnKTsKKwordmFy
IHByb2dyYW0gPSB3dHUuc2V0dXBQcm9ncmFtKAorICAgIGdsLAorICAgIFt3dHUubG9hZFNoYWRl
ckZyb21TY3JpcHQoZ2wsICd2c2hhZGVyJywgZ2wuVkVSVEVYX1NIQURFUiksCisgICAgIHd0dS5s
b2FkU2hhZGVyRnJvbVNjcmlwdChnbCwgJ2ZzaGFkZXInLCBnbC5GUkFHTUVOVF9TSEFERVIpXSwK
KyAgICBbJ3ZQb3NpdGlvbiddLCBbMF0pOworCitzaG91bGRCZVRydWUoJ2dsLmdldFVuaWZvcm1M
b2NhdGlvbihwcm9ncmFtLCAiY29sb3IiKSBpbnN0YW5jZW9mIFdlYkdMVW5pZm9ybUxvY2F0aW9u
Jyk7CitzaG91bGRCZVRydWUoJ2dsLmdldEFjdGl2ZUF0dHJpYihwcm9ncmFtLCAwKSBpbnN0YW5j
ZW9mIFdlYkdMQWN0aXZlSW5mbycpOworc2hvdWxkQmVUcnVlKCdnbC5nZXRBY3RpdmVVbmlmb3Jt
KHByb2dyYW0sIDApIGluc3RhbmNlb2YgV2ViR0xBY3RpdmVJbmZvJyk7CisKK2RlYnVnKCIiKTsK
K2RlYnVnKCJUZXN0cyB0aGF0IHRob3NlIFdlYkdMIG9iamVjdHMgY2FuIG5vdCBiZSBjb25zdHJ1
Y3RlZCB0aHJvdWdoIG5ldyBvcGVyYXRvciIpOworZGVidWcoIiIpOworCitmdW5jdGlvbiBzaG91
bGRUaHJvd1dpdGhOZXcob2JqZWN0VHlwZSwgb2JqZWN0TmFtZSkKK3sKKyAgICB0cnkgeworICAg
ICAgICBuZXcgb2JqZWN0VHlwZTsKKyAgICAgICAgdGVzdEZhaWxlZCgnbmV3ICcgKyBvYmplY3RO
YW1lICsgJyBkaWQgbm90IHRocm93Jyk7CisgICAgfSBjYXRjaCAoZSkgeworICAgICAgICB0ZXN0
UGFzc2VkKCduZXcgJyArIG9iamVjdE5hbWUgKyAnIHRocmV3IGFuIGVycm9yJyk7CisgICAgfQor
fQorCitzaG91bGRUaHJvd1dpdGhOZXcod2luZG93LldlYkdMUmVuZGVyaW5nQ29udGV4dCwgJ1dl
YkdMUmVuZGVyaW5nQ29udGV4dCcpOworc2hvdWxkVGhyb3dXaXRoTmV3KHdpbmRvdy5XZWJHTEFj
dGl2ZUluZm8sICdXZWJHTEFjdGl2ZUluZm8nKTsKK3Nob3VsZFRocm93V2l0aE5ldyh3aW5kb3cu
V2ViR0xCdWZmZXIsICdXZWJHTEJ1ZmZlcicpOworc2hvdWxkVGhyb3dXaXRoTmV3KHdpbmRvdy5X
ZWJHTEZyYW1lYnVmZmVyLCAnV2ViR0xGcmFtZWJ1ZmZlcicpOworc2hvdWxkVGhyb3dXaXRoTmV3
KHdpbmRvdy5XZWJHTFByb2dyYW0sICdXZWJHTFByb2dyYW0nKTsKK3Nob3VsZFRocm93V2l0aE5l
dyh3aW5kb3cuV2ViR0xSZW5kZXJidWZmZXIsICdXZWJHTFJlbmRlcmJ1ZmZlcicpOworc2hvdWxk
VGhyb3dXaXRoTmV3KHdpbmRvdy5XZWJHTFNoYWRlciwgJ1dlYkdMU2hhZGVyJyk7CitzaG91bGRU
aHJvd1dpdGhOZXcod2luZG93LldlYkdMVGV4dHVyZSwgJ1dlYkdMVGV4dHVyZScpOworc2hvdWxk
VGhyb3dXaXRoTmV3KHdpbmRvdy5XZWJHTFVuaWZvcm1Mb2NhdGlvbiwgJ1dlYkdMVW5pZm9ybUxv
Y2F0aW9uJyk7CitzaG91bGRUaHJvd1dpdGhOZXcod2luZG93LldlYkdMU2hhZGVyUHJlY2lzaW9u
Rm9ybWF0LCAnV2ViR0xTaGFkZXJQcmVjaXNpb25Gb3JtYXQnKTsKKworc3VjY2Vzc2Z1bGx5UGFy
c2VkID0gdHJ1ZTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9q
cy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorCis8L2JvZHk+Cis8L2h0bWw+CisKKwpJbmRleDog
TGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvc2hhZGVyLXByZWNpc2lvbi1mb3JtYXQtZXhw
ZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL3No
YWRlci1wcmVjaXNpb24tZm9ybWF0LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91
dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL3NoYWRlci1wcmVjaXNpb24tZm9ybWF0LWV4cGVjdGVk
LnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwzMiBAQAorV2ViR0wgc2hhZGVyIHByZWNpc2lv
biBmb3JtYXQgdGVzdC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQ
QVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCitUZXN0cyB0aGF0
IFdlYkdMU2hhZGVyUHJlY2lzaW9uRm9ybWF0IGNsYXNzIGFuZCBnZXRTaGFkZXJQcmVjaXNpb25G
b3JtYXQgd29yay4KKworCitUZXN0IHRoYXQgZ2V0U2hhZGVyUHJlY2lzaW9uRm9ybWF0IHJldHVy
bnMgYSBXZWJHTFNoYWRlclByZWNpc2lvbkZvcm1hdCBvYmplY3QuCisKK1BBU1MgZ2wuZ2V0U2hh
ZGVyUHJlY2lzaW9uRm9ybWF0KGdsLlZFUlRFWF9TSEFERVIsIGdsLkxPV19GTE9BVCkgaW5zdGFu
Y2VvZiBXZWJHTFNoYWRlclByZWNpc2lvbkZvcm1hdCBpcyB0cnVlCitQQVNTIGdsLmdldFNoYWRl
clByZWNpc2lvbkZvcm1hdChnbC5WRVJURVhfU0hBREVSLCBnbC5NRURJVU1fRkxPQVQpIGluc3Rh
bmNlb2YgV2ViR0xTaGFkZXJQcmVjaXNpb25Gb3JtYXQgaXMgdHJ1ZQorUEFTUyBnbC5nZXRTaGFk
ZXJQcmVjaXNpb25Gb3JtYXQoZ2wuVkVSVEVYX1NIQURFUiwgZ2wuSElHSF9GTE9BVCkgaW5zdGFu
Y2VvZiBXZWJHTFNoYWRlclByZWNpc2lvbkZvcm1hdCBpcyB0cnVlCitQQVNTIGdsLmdldFNoYWRl
clByZWNpc2lvbkZvcm1hdChnbC5WRVJURVhfU0hBREVSLCBnbC5MT1dfSU5UKSBpbnN0YW5jZW9m
IFdlYkdMU2hhZGVyUHJlY2lzaW9uRm9ybWF0IGlzIHRydWUKK1BBU1MgZ2wuZ2V0U2hhZGVyUHJl
Y2lzaW9uRm9ybWF0KGdsLlZFUlRFWF9TSEFERVIsIGdsLk1FRElVTV9JTlQpIGluc3RhbmNlb2Yg
V2ViR0xTaGFkZXJQcmVjaXNpb25Gb3JtYXQgaXMgdHJ1ZQorUEFTUyBnbC5nZXRTaGFkZXJQcmVj
aXNpb25Gb3JtYXQoZ2wuVkVSVEVYX1NIQURFUiwgZ2wuSElHSF9JTlQpIGluc3RhbmNlb2YgV2Vi
R0xTaGFkZXJQcmVjaXNpb25Gb3JtYXQgaXMgdHJ1ZQorUEFTUyBnbC5nZXRTaGFkZXJQcmVjaXNp
b25Gb3JtYXQoZ2wuRlJBR01FTlRfU0hBREVSLCBnbC5MT1dfRkxPQVQpIGluc3RhbmNlb2YgV2Vi
R0xTaGFkZXJQcmVjaXNpb25Gb3JtYXQgaXMgdHJ1ZQorUEFTUyBnbC5nZXRTaGFkZXJQcmVjaXNp
b25Gb3JtYXQoZ2wuRlJBR01FTlRfU0hBREVSLCBnbC5NRURJVU1fRkxPQVQpIGluc3RhbmNlb2Yg
V2ViR0xTaGFkZXJQcmVjaXNpb25Gb3JtYXQgaXMgdHJ1ZQorUEFTUyBnbC5nZXRTaGFkZXJQcmVj
aXNpb25Gb3JtYXQoZ2wuRlJBR01FTlRfU0hBREVSLCBnbC5ISUdIX0ZMT0FUKSBpbnN0YW5jZW9m
IFdlYkdMU2hhZGVyUHJlY2lzaW9uRm9ybWF0IGlzIHRydWUKK1BBU1MgZ2wuZ2V0U2hhZGVyUHJl
Y2lzaW9uRm9ybWF0KGdsLkZSQUdNRU5UX1NIQURFUiwgZ2wuTE9XX0lOVCkgaW5zdGFuY2VvZiBX
ZWJHTFNoYWRlclByZWNpc2lvbkZvcm1hdCBpcyB0cnVlCitQQVNTIGdsLmdldFNoYWRlclByZWNp
c2lvbkZvcm1hdChnbC5GUkFHTUVOVF9TSEFERVIsIGdsLk1FRElVTV9JTlQpIGluc3RhbmNlb2Yg
V2ViR0xTaGFkZXJQcmVjaXNpb25Gb3JtYXQgaXMgdHJ1ZQorUEFTUyBnbC5nZXRTaGFkZXJQcmVj
aXNpb25Gb3JtYXQoZ2wuRlJBR01FTlRfU0hBREVSLCBnbC5ISUdIX0lOVCkgaW5zdGFuY2VvZiBX
ZWJHTFNoYWRlclByZWNpc2lvbkZvcm1hdCBpcyB0cnVlCisKK1Rlc3QgdGhhdCBnZXRTaGFkZXJQ
cmVjaXNpb25Gb3JtYXQgdGhyb3dzIGFuIGVycm9yIHdpdGggaW52YWxpZCBwYXJhbWV0ZXJzLgor
CitQQVNTIGdsLmdldFNoYWRlclByZWNpc2lvbkZvcm1hdChnbC5ISUdIX0lOVCwgZ2wuVkVSVEVY
X1NIQURFUikgZ2VuZXJhdGVkIGV4cGVjdGVkIEdMIGVycm9yOiBJTlZBTElEX0VOVU0uCisKK1Rl
c3QgdGhhdCBnZXRTaGFkZXJQcmVjaXNpb25Gb3JtYXQgcmV0dXJucyB0aGUgc2FtZSB0aGluZyBl
dmVyeSBjYWxsLgorCitQQVNTIHNoYWRlclByZWNpc2lvbkZvcm1hdC5yYW5nZU1pbiA9PSBzaGFk
ZXJQcmVjaXNpb25Gb3JtYXQyLnJhbmdlTWluIGlzIHRydWUKK1BBU1Mgc2hhZGVyUHJlY2lzaW9u
Rm9ybWF0LnJhbmdlTWF4ID09IHNoYWRlclByZWNpc2lvbkZvcm1hdDIucmFuZ2VNYXggaXMgdHJ1
ZQorUEFTUyBzaGFkZXJQcmVjaXNpb25Gb3JtYXQucHJlY2lzaW9uID09IHNoYWRlclByZWNpc2lv
bkZvcm1hdDIucHJlY2lzaW9uIGlzIHRydWUKKwoKUHJvcGVydHkgY2hhbmdlcyBvbjogTGF5b3V0
VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvc2hhZGVyLXByZWNpc2lvbi1mb3JtYXQtZXhwZWN0ZWQu
dHh0Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX18KQWRkZWQ6IHN2bjplb2wtc3R5bGUKICAgKyBMRgoKSW5kZXg6IExheW91
dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL3NoYWRlci1wcmVjaXNpb24tZm9ybWF0Lmh0bWwKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvc2hhZGVyLXByZWNpc2lv
bi1mb3JtYXQuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dl
YmdsL3NoYWRlci1wcmVjaXNpb24tZm9ybWF0Lmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEs
NjYgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0
Zi04Ij4KKzx0aXRsZT5XZWJHTCBzaGFkZXIgcHJlY2lzaW9uIGZvcm1hdCB0ZXN0LjwvdGl0bGU+
Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0
LXN0eWxlLmNzcyIvPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBy
ZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3dlYmdsLXRlc3QuanMiPiA8
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvd2ViZ2wtdGVzdC11dGlscy5qcyI+IDwv
c2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8Y2FudmFzIGlkPSJjYW52YXMiIHdpZHRoPSIyIiBo
ZWlnaHQ9IjIiIHN0eWxlPSJ3aWR0aDogNDBweDsgaGVpZ2h0OiA0MHB4OyI+PC9jYW52YXM+Cis8
ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9kaXY+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxz
Y3JpcHQ+Cit2YXIgd3R1ID0gV2ViR0xUZXN0VXRpbHM7CitkZXNjcmlwdGlvbihkb2N1bWVudC50
aXRsZSk7CitkZWJ1ZygiVGVzdHMgdGhhdCBXZWJHTFNoYWRlclByZWNpc2lvbkZvcm1hdCBjbGFz
cyBhbmQgZ2V0U2hhZGVyUHJlY2lzaW9uRm9ybWF0IHdvcmsuIik7CitkZWJ1ZygiIik7Cit2YXIg
Z2wgPSBjcmVhdGUzRENvbnRleHQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNhbnZhcyIpKTsK
KworZnVuY3Rpb24gdmVyaWZ5U2hhZGVyUHJlY2lzaW9uRm9ybWF0KHNoYWRlcnR5cGUsIHByZWNp
c2lvbnR5cGUpIHsKKyAgICBzaG91bGRCZVRydWUoJ2dsLmdldFNoYWRlclByZWNpc2lvbkZvcm1h
dCgnICsgc2hhZGVydHlwZSArICcsICcgKworICAgICAgICAgICAgICAgICBwcmVjaXNpb250eXBl
ICsgJykgaW5zdGFuY2VvZiBXZWJHTFNoYWRlclByZWNpc2lvbkZvcm1hdCcpOworfQorCitkZWJ1
ZygiIik7CitkZWJ1ZygiVGVzdCB0aGF0IGdldFNoYWRlclByZWNpc2lvbkZvcm1hdCByZXR1cm5z
IGEgV2ViR0xTaGFkZXJQcmVjaXNpb25Gb3JtYXQgb2JqZWN0LiIpOworZGVidWcoIiIpOworCit2
ZXJpZnlTaGFkZXJQcmVjaXNpb25Gb3JtYXQoJ2dsLlZFUlRFWF9TSEFERVInLCAnZ2wuTE9XX0ZM
T0FUJyk7Cit2ZXJpZnlTaGFkZXJQcmVjaXNpb25Gb3JtYXQoJ2dsLlZFUlRFWF9TSEFERVInLCAn
Z2wuTUVESVVNX0ZMT0FUJyk7Cit2ZXJpZnlTaGFkZXJQcmVjaXNpb25Gb3JtYXQoJ2dsLlZFUlRF
WF9TSEFERVInLCAnZ2wuSElHSF9GTE9BVCcpOwordmVyaWZ5U2hhZGVyUHJlY2lzaW9uRm9ybWF0
KCdnbC5WRVJURVhfU0hBREVSJywgJ2dsLkxPV19JTlQnKTsKK3ZlcmlmeVNoYWRlclByZWNpc2lv
bkZvcm1hdCgnZ2wuVkVSVEVYX1NIQURFUicsICdnbC5NRURJVU1fSU5UJyk7Cit2ZXJpZnlTaGFk
ZXJQcmVjaXNpb25Gb3JtYXQoJ2dsLlZFUlRFWF9TSEFERVInLCAnZ2wuSElHSF9JTlQnKTsKK3Zl
cmlmeVNoYWRlclByZWNpc2lvbkZvcm1hdCgnZ2wuRlJBR01FTlRfU0hBREVSJywgJ2dsLkxPV19G
TE9BVCcpOwordmVyaWZ5U2hhZGVyUHJlY2lzaW9uRm9ybWF0KCdnbC5GUkFHTUVOVF9TSEFERVIn
LCAnZ2wuTUVESVVNX0ZMT0FUJyk7Cit2ZXJpZnlTaGFkZXJQcmVjaXNpb25Gb3JtYXQoJ2dsLkZS
QUdNRU5UX1NIQURFUicsICdnbC5ISUdIX0ZMT0FUJyk7Cit2ZXJpZnlTaGFkZXJQcmVjaXNpb25G
b3JtYXQoJ2dsLkZSQUdNRU5UX1NIQURFUicsICdnbC5MT1dfSU5UJyk7Cit2ZXJpZnlTaGFkZXJQ
cmVjaXNpb25Gb3JtYXQoJ2dsLkZSQUdNRU5UX1NIQURFUicsICdnbC5NRURJVU1fSU5UJyk7Cit2
ZXJpZnlTaGFkZXJQcmVjaXNpb25Gb3JtYXQoJ2dsLkZSQUdNRU5UX1NIQURFUicsICdnbC5ISUdI
X0lOVCcpOworCitkZWJ1ZygiIik7CitkZWJ1ZygiVGVzdCB0aGF0IGdldFNoYWRlclByZWNpc2lv
bkZvcm1hdCB0aHJvd3MgYW4gZXJyb3Igd2l0aCBpbnZhbGlkIHBhcmFtZXRlcnMuIik7CitkZWJ1
ZygiIik7CisKK3Nob3VsZEdlbmVyYXRlR0xFcnJvcihnbCwgZ2wuSU5WQUxJRF9FTlVNLCAnZ2wu
Z2V0U2hhZGVyUHJlY2lzaW9uRm9ybWF0KGdsLkhJR0hfSU5ULCBnbC5WRVJURVhfU0hBREVSKScp
OworCitkZWJ1ZygiIik7CitkZWJ1ZygiVGVzdCB0aGF0IGdldFNoYWRlclByZWNpc2lvbkZvcm1h
dCByZXR1cm5zIHRoZSBzYW1lIHRoaW5nIGV2ZXJ5IGNhbGwuIik7CitkZWJ1ZygiIik7CisKK3Zh
ciBzaGFkZXJQcmVjaXNpb25Gb3JtYXQgPSBnbC5nZXRTaGFkZXJQcmVjaXNpb25Gb3JtYXQoZ2wu
VkVSVEVYX1NIQURFUiwgZ2wuTE9XX0ZMT0FUKTsKK3ZhciBzaGFkZXJQcmVjaXNpb25Gb3JtYXQy
ID0gZ2wuZ2V0U2hhZGVyUHJlY2lzaW9uRm9ybWF0KGdsLlZFUlRFWF9TSEFERVIsIGdsLkxPV19G
TE9BVCk7CitzaG91bGRCZVRydWUoJ3NoYWRlclByZWNpc2lvbkZvcm1hdC5yYW5nZU1pbiA9PSBz
aGFkZXJQcmVjaXNpb25Gb3JtYXQyLnJhbmdlTWluJyk7CitzaG91bGRCZVRydWUoJ3NoYWRlclBy
ZWNpc2lvbkZvcm1hdC5yYW5nZU1heCA9PSBzaGFkZXJQcmVjaXNpb25Gb3JtYXQyLnJhbmdlTWF4
Jyk7CitzaG91bGRCZVRydWUoJ3NoYWRlclByZWNpc2lvbkZvcm1hdC5wcmVjaXNpb24gPT0gc2hh
ZGVyUHJlY2lzaW9uRm9ybWF0Mi5wcmVjaXNpb24nKTsKKworZmluaXNoVGVzdCgpOworPC9zY3Jp
cHQ+CisKKzwvYm9keT4KKzwvaHRtbD4KKworCgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBMYXlvdXRU
ZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9zaGFkZXItcHJlY2lzaW9uLWZvcm1hdC5odG1sCl9fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX18KQWRkZWQ6IHN2bjplb2wtc3R5bGUKICAgKyBMRgoKSW5kZXg6IExheW91dFRlc3RzL2Zh
c3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydGllcy5odG1sCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydGllcy5odG1sCShyZXZpc2lvbiAx
MTMwNDcpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3BlcnRpZXMu
aHRtbAkod29ya2luZyBjb3B5KQpAQCAtODgsNiArODgsNyBAQCB2YXIgX19za2lwX18gPSB7CiAg
ICAgIndpbmRvdy5XZWJHTFJlbmRlcmJ1ZmZlciIgOiAxLCAKICAgICAid2luZG93LldlYkdMUmVu
ZGVyaW5nQ29udGV4dCIgOiAxLCAKICAgICAid2luZG93LldlYkdMU2hhZGVyIiA6IDEsIAorICAg
ICJ3aW5kb3cuV2ViR0xTaGFkZXJQcmVjaXNpb25Gb3JtYXQiIDogMSwgCiAgICAgIndpbmRvdy5X
ZWJHTFRleHR1cmUiIDogMSwgCiAgICAgIndpbmRvdy5XZWJHTFVuaWZvcm1Mb2NhdGlvbiIgOiAx
LCAKICAgICAid2luZG93LldlYktpdEJsb2JCdWlsZGVyIiA6IDEsCkluZGV4OiBMYXlvdXRUZXN0
cy9mYXN0L2RvbS9XaW5kb3cvc2NyaXB0LXRlc3RzL3dpbmRvdy1wcm9wZXJ0eS1kZXNjcmlwdG9y
cy5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvc2NyaXB0LXRl
c3RzL3dpbmRvdy1wcm9wZXJ0eS1kZXNjcmlwdG9ycy5qcwkocmV2aXNpb24gMTEzMDQ3KQorKysg
TGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3NjcmlwdC10ZXN0cy93aW5kb3ctcHJvcGVydHkt
ZGVzY3JpcHRvcnMuanMJKHdvcmtpbmcgY29weSkKQEAgLTQ0LDYgKzQ0LDcgQEAgdmFyIF9fc2tp
cF9fID0gewogICAgICJXZWJHTFJlbmRlcmJ1ZmZlciIgOiAxLAogICAgICJXZWJHTFJlbmRlcmlu
Z0NvbnRleHQiIDogMSwKICAgICAiV2ViR0xTaGFkZXIiIDogMSwKKyAgICAiV2ViR0xTaGFkZXJQ
cmVjaXNpb25Gb3JtYXQiIDogMSwKICAgICAiV2ViR0xUZXh0dXJlIiA6IDEsCiAgICAgIldlYkdM
VW5pZm9ybUxvY2F0aW9uIiA6IDEsCiAgICAgIldlYktpdEJsb2JCdWlsZGVyIiA6IDEsCkluZGV4
OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zY3JpcHQtdGVzdHMvcHJvdG90eXBlLWluaGVyaXRhbmNl
LTIuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2NyaXB0LXRlc3RzL3By
b3RvdHlwZS1pbmhlcml0YW5jZS0yLmpzCShyZXZpc2lvbiAxMTMwNDcpCisrKyBMYXlvdXRUZXN0
cy9mYXN0L2RvbS9zY3JpcHQtdGVzdHMvcHJvdG90eXBlLWluaGVyaXRhbmNlLTIuanMJKHdvcmtp
bmcgY29weSkKQEAgLTgwLDYgKzgwLDcgQEAgZnVuY3Rpb24gY29uc3RydWN0b3JOYW1lc0Zvcldp
bmRvdyhnbG9iYQogICAgICAgICAgICAgdHlwZSA9PSAiV2ViR0xQcm9ncmFtQ29uc3RydWN0b3Ii
IHx8CiAgICAgICAgICAgICB0eXBlID09ICJXZWJHTFJlbmRlcmJ1ZmZlckNvbnN0cnVjdG9yIiB8
fAogICAgICAgICAgICAgdHlwZSA9PSAiV2ViR0xTaGFkZXJDb25zdHJ1Y3RvciIgfHwKKyAgICAg
ICAgICAgIHR5cGUgPT0gIldlYkdMU2hhZGVyUHJlY2lzaW9uRm9ybWF0Q29uc3RydWN0b3IiIHx8
CiAgICAgICAgICAgICB0eXBlID09ICJXZWJHTFRleHR1cmVDb25zdHJ1Y3RvciIgfHwKICAgICAg
ICAgICAgIHR5cGUgPT0gIldlYkdMVW5pZm9ybUxvY2F0aW9uQ29uc3RydWN0b3IiIHx8CiAgICAg
ICAgICAgICB0eXBlID09ICJBcnJheUJ1ZmZlckNvbnN0cnVjdG9yIiB8fApJbmRleDogTGF5b3V0
VGVzdHMvZmFzdC9kb20vc2NyaXB0LXRlc3RzL3Byb3RvdHlwZS1pbmhlcml0YW5jZS5qcwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zY3JpcHQtdGVzdHMvcHJvdG90eXBlLWlu
aGVyaXRhbmNlLmpzCShyZXZpc2lvbiAxMTMwNDcpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9z
Y3JpcHQtdGVzdHMvcHJvdG90eXBlLWluaGVyaXRhbmNlLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0x
OCw3ICsxOCw3IEBAIHZhciBza2lwcGVkUHJvcGVydGllcyA9IFsKICAgICAid2Via2l0Tm90aWZp
Y2F0aW9ucyIsCiAgICAgIndlYmtpdEF1ZGlvUGFubmVyTm9kZSIsCiAgICAgInBlcmZvcm1hbmNl
IiwKLSAgICAiV2ViR0xSZW5kZXJpbmdDb250ZXh0IiwgIldlYkdMQWN0aXZlSW5mbyIsICJXZWJH
TEJ1ZmZlciIsICJXZWJHTEZyYW1lYnVmZmVyIiwgIldlYkdMUHJvZ3JhbSIsICJXZWJHTFJlbmRl
cmJ1ZmZlciIsICJXZWJHTFNoYWRlciIsICJXZWJHTFRleHR1cmUiLCAiV2ViR0xVbmlmb3JtTG9j
YXRpb24iLAorICAgICJXZWJHTFJlbmRlcmluZ0NvbnRleHQiLCAiV2ViR0xBY3RpdmVJbmZvIiwg
IldlYkdMQnVmZmVyIiwgIldlYkdMRnJhbWVidWZmZXIiLCAiV2ViR0xQcm9ncmFtIiwgIldlYkdM
UmVuZGVyYnVmZmVyIiwgIldlYkdMU2hhZGVyIiwgIldlYkdMU2hhZGVyUHJlY2lzaW9uRm9ybWF0
IiwgIldlYkdMVGV4dHVyZSIsICJXZWJHTFVuaWZvcm1Mb2NhdGlvbiIsCiAgICAgIkFycmF5QnVm
ZmVyIiwKICAgICAiRGF0YVZpZXciLCAiSW50OEFycmF5IiwgIlVpbnQ4QXJyYXkiLCAiSW50MTZB
cnJheSIsICJVaW50MTZBcnJheSIsICJJbnQzMkFycmF5IiwgIlVpbnQzMkFycmF5IiwgIkZsb2F0
MzJBcnJheSIsICJGbG9hdDY0QXJyYXkiLAogICAgICJGaWxlRXJyb3IiLCAiRmlsZVJlYWRlciIs
ICJXZWJLaXRCbG9iQnVpbGRlciIsICJ3ZWJraXRSZXF1ZXN0RmlsZVN5c3RlbSIsCkluZGV4OiBM
YXlvdXRUZXN0cy9mYXN0L2pzL3NjcmlwdC10ZXN0cy9nbG9iYWwtY29uc3RydWN0b3JzLmpzCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvanMvc2NyaXB0LXRlc3RzL2dsb2JhbC1jb25z
dHJ1Y3RvcnMuanMJKHJldmlzaW9uIDExMzA0NykKKysrIExheW91dFRlc3RzL2Zhc3QvanMvc2Ny
aXB0LXRlc3RzL2dsb2JhbC1jb25zdHJ1Y3RvcnMuanMJKHdvcmtpbmcgY29weSkKQEAgLTI0LDYg
KzI0LDcgQEAgZm9yICh2YXIgeCBpbiBjb25zdHJ1Y3Rvck5hbWVzKSB7CiAgICAgICAgIG5hbWUg
PT0gIldlYkdMUHJvZ3JhbSIgfHwKICAgICAgICAgbmFtZSA9PSAiV2ViR0xSZW5kZXJidWZmZXIi
IHx8CiAgICAgICAgIG5hbWUgPT0gIldlYkdMU2hhZGVyIiB8fAorICAgICAgICBuYW1lID09ICJX
ZWJHTFNoYWRlclByZWNpc2lvbkZvcm1hdCIgfHwKICAgICAgICAgbmFtZSA9PSAiV2ViR0xUZXh0
dXJlIiB8fAogICAgICAgICBuYW1lID09ICJXZWJHTFVuaWZvcm1Mb2NhdGlvbiIgfHwKICAgICAg
ICAgbmFtZSA9PSAiQXJyYXlCdWZmZXIiIHx8Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>135382</attachid>
            <date>2012-04-03 11:56:51 -0700</date>
            <delta_ts>2012-04-03 12:11:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-75925-20120403115650.patch</filename>
            <type>text/plain</type>
            <size>55683</size>
            <attacher name="Zhenyao Mo">zmo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1Bs
YXRmb3JtL0NoYW5nZUxvZwkocmV2aXNpb24gMTEzMDQ3KQorKysgU291cmNlL1BsYXRmb3JtL0No
YW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEzIEBACisyMDEyLTA0LTAyICBaaGVu
eWFvIE1vICA8em1vQGdvb2dsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IFdlYkdMU2hhZGVy
UHJlY2lzaW9uRm9ybWF0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD03NTkyNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogY2hyb21pdW0vcHVibGljL1dlYkdyYXBoaWNzQ29udGV4dDNELmg6IEFkZCBnZXRT
aGFkZXJQcmVjaXNpb25Gb3JtYXQoKS4KKyAgICAgICAgKFdlYkdyYXBoaWNzQ29udGV4dDNEKToK
KwogMjAxMi0wNC0wMiAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgogCiAgICAgICAg
IFtDaHJvbWl1bV0gTW92ZSBhIG51bWJlciBvZiB2aXJ0dWFsIGZ1bmN0aW9ucyBmcm9tIFdlYktp
dFBsYXRmb3JtU3VwcG9ydC5oIGludG8gUGxhdGZvcm0uaApJbmRleDogU291cmNlL1BsYXRmb3Jt
L2Nocm9taXVtL3B1YmxpYy9XZWJHcmFwaGljc0NvbnRleHQzRC5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViR3JhcGhpY3NDb250ZXh0M0QuaAkocmV2
aXNpb24gMTEzMDQ3KQorKysgU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJHcmFw
aGljc0NvbnRleHQzRC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yODYsMTAgKzI4Niw3IEBAIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIHZvaWQgZ2V0UmVuZGVyYnVmZmVyUGFyYW1ldGVyaXYoV0dDM0RlbnVt
IHRhcmdldCwgV0dDM0RlbnVtIHBuYW1lLCBXR0MzRGludCogdmFsdWUpID0gMDsKICAgICB2aXJ0
dWFsIHZvaWQgZ2V0U2hhZGVyaXYoV2ViR0xJZCBzaGFkZXIsIFdHQzNEZW51bSBwbmFtZSwgV0dD
M0RpbnQqIHZhbHVlKSA9IDA7CiAgICAgdmlydHVhbCBXZWJTdHJpbmcgZ2V0U2hhZGVySW5mb0xv
ZyhXZWJHTElkIHNoYWRlcikgPSAwOwotCi0gICAgLy8gVEJECi0gICAgLy8gdm9pZCBnbEdldFNo
YWRlclByZWNpc2lvbkZvcm1hdCAoR0xlbnVtIHNoYWRlcnR5cGUsIEdMZW51bSBwcmVjaXNpb250
eXBlLCBHTGludCogcmFuZ2UsIEdMaW50KiBwcmVjaXNpb24pOwotCisgICAgdmlydHVhbCB2b2lk
IGdldFNoYWRlclByZWNpc2lvbkZvcm1hdChXR0MzRGVudW0gc2hhZGVydHlwZSwgV0dDM0RlbnVt
IHByZWNpc2lvbnR5cGUsIFdHQzNEaW50KiByYW5nZSwgV0dDM0RpbnQqIHByZWNpc2lvbikgPSAw
OwogICAgIHZpcnR1YWwgV2ViU3RyaW5nIGdldFNoYWRlclNvdXJjZShXZWJHTElkIHNoYWRlcikg
PSAwOwogICAgIHZpcnR1YWwgV2ViU3RyaW5nIGdldFN0cmluZyhXR0MzRGVudW0gbmFtZSkgPSAw
OwogICAgIHZpcnR1YWwgdm9pZCBnZXRUZXhQYXJhbWV0ZXJmdihXR0MzRGVudW0gdGFyZ2V0LCBX
R0MzRGVudW0gcG5hbWUsIFdHQzNEZmxvYXQqIHZhbHVlKSA9IDA7CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCShy
ZXZpc2lvbiAxMTMwNDcpCisrKyBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29w
eSkKQEAgLTEsMyArMSw0NyBAQAorMjAxMi0wNC0wMiAgWmhlbnlhbyBNbyAgPHptb0Bnb29nbGUu
Y29tPgorCisgICAgICAgIEltcGxlbWVudCBXZWJHTFNoYWRlclByZWNpc2lvbkZvcm1hdAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU5MjUKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0OiBmYXN0L2Nh
bnZhcy93ZWJnbC9zaGFkZXItcHJlY2lzaW9uLWZvcm1hdC5odG1sCisKKyAgICAgICAgKiBDTWFr
ZUxpc3RzLnR4dDogQWRkIG5ldyBzb3VyY2UgZmlsZXMgd2ViZ2xzaGFkZXJwcmVjaXNpb25mb3Jt
YXQuaC9pZGwKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOiBEaXR0by4KKyAgICAgICAg
KiBEZXJpdmVkU291cmNlcy5wcmk6IERpdHRvLgorICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3Qu
YW06IERpdHRvLgorICAgICAgICAqIFRhcmdldC5wcmk6IERpdHRvLgorICAgICAgICAqIFdlYkNv
cmUuZ3lwaTogRGl0dG8uCisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qOiBEaXR0by4KKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQu
Y3BwOiBBZGQgZ2V0U2hhZGVyUHJlY2lzaW9uRm9ybWF0LgorICAgICAgICAoV2ViQ29yZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdldFNoYWRlclByZWNpc2lv
bkZvcm1hdCk6CisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0Lmg6
IERpdHRvLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJHTFJlbmRlcmluZ0NvbnRl
eHQpOgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5pZGw6IERp
dHRvLgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMU2hhZGVyUHJlY2lzaW9uRm9ybWF0Lmg6
IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJHTFNoYWRlclByZWNpc2lv
bkZvcm1hdCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFNoYWRlclByZWNpc2lvbkZvcm1hdDo6
Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMU2hhZGVyUHJlY2lzaW9uRm9ybWF0Ojpy
YW5nZU1pbik6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFNoYWRlclByZWNpc2lvbkZvcm1hdDo6
cmFuZ2VNYXgpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xTaGFkZXJQcmVjaXNpb25Gb3JtYXQ6
OnByZWNpc2lvbik6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFNoYWRlclByZWNpc2lvbkZvcm1h
dDo6V2ViR0xTaGFkZXJQcmVjaXNpb25Gb3JtYXQpOgorICAgICAgICAqIGh0bWwvY2FudmFzL1dl
YkdMU2hhZGVyUHJlY2lzaW9uRm9ybWF0LmlkbDogQWRkZWQuCisgICAgICAgICogcGFnZS9ET01X
aW5kb3cuaWRsOiBFeHBvc2UgbmV3IHR5cGUgV2ViR0xTaGFkZXJQcmVjaXNpb25Gb3JtYXQgZm9y
IGluc3RhbmNlb2YuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0
M0QuaDogQWRkIGdldFNoYWRlclByZWNpc2lvbkZvcm1hdCgpLgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHQzRE9wZW5HTC5jcHA6IERpdHRvLgorICAg
ICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OmdldFNoYWRlclByZWNpc2lvbkZvcm1h
dCk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9vcGVu
Z2wvR3JhcGhpY3NDb250ZXh0M0RPcGVuR0xFUy5jcHA6IERpdHRvLgorICAgICAgICAoV2ViQ29y
ZTo6R3JhcGhpY3NDb250ZXh0M0Q6OmdldFNoYWRlclByZWNpc2lvbkZvcm1hdCk6CisgICAgICAg
IChXZWJDb3JlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9xdC9HcmFwaGljc0NvbnRl
eHQzRFF0LmNwcDogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6
Z2V0U2hhZGVyUHJlY2lzaW9uRm9ybWF0KToKKyAgICAgICAgKFdlYkNvcmUpOgorCiAyMDEyLTA0
LTAzICBBbGV4aXMgTWVuYXJkICA8YWxleGlzLm1lbmFyZEBvcGVuYm9zc2Eub3JnPgogCiAgICAg
ICAgIFVucmV2aWV3ZWQgQVNTRVJUIGZpeCBvbiBDaHJvbWl1bSBib3RzIChpbiBkZWJ1ZykuCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9DTWFrZUxpc3RzLnR4dAkocmV2aXNpb24gMTEzMDQ3KQorKysgU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQJKHdvcmtpbmcgY29weSkKQEAgLTIyOTAsNiArMjI5MCw3IEBAIElG
IChFTkFCTEVfV0VCR0wpCiAgICAgICAgIGh0bWwvY2FudmFzL1dlYkdMUmVuZGVyYnVmZmVyLmNw
cAogICAgICAgICBodG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuY3BwCiAgICAgICAg
IGh0bWwvY2FudmFzL1dlYkdMU2hhZGVyLmNwcAorICAgICAgICBodG1sL2NhbnZhcy9XZWJHTFNo
YWRlclByZWNpc2lvbkZvcm1hdC5jcHAKICAgICAgICAgaHRtbC9jYW52YXMvV2ViR0xTaGFyZWRP
YmplY3QuY3BwCiAgICAgICAgIGh0bWwvY2FudmFzL1dlYkdMVGV4dHVyZS5jcHAKICAgICAgICAg
aHRtbC9jYW52YXMvV2ViR0xVbmlmb3JtTG9jYXRpb24uY3BwCkBAIC0yMzIxLDYgKzIzMjIsNyBA
QCBJRiAoRU5BQkxFX1dFQkdMKQogICAgICAgICBodG1sL2NhbnZhcy9XZWJHTFJlbmRlcmJ1ZmZl
ci5pZGwKICAgICAgICAgaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmlkbAogICAg
ICAgICBodG1sL2NhbnZhcy9XZWJHTFNoYWRlci5pZGwKKyAgICAgICAgaHRtbC9jYW52YXMvV2Vi
R0xTaGFkZXJQcmVjaXNpb25Gb3JtYXQuaWRsCiAgICAgICAgIGh0bWwvY2FudmFzL1dlYkdMVGV4
dHVyZS5pZGwKICAgICAgICAgaHRtbC9jYW52YXMvV2ViR0xVbmlmb3JtTG9jYXRpb24uaWRsCiAg
ICAgICAgIGh0bWwvY2FudmFzL1dlYkdMVmVydGV4QXJyYXlPYmplY3RPRVMuaWRsCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UJKHJldmlzaW9uIDExMzA0NykKKysrIFNvdXJjZS9X
ZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UJKHdvcmtpbmcgY29weSkKQEAgLTM2OCw2ICszNjgs
NyBAQCBCSU5ESU5HX0lETFMgPSBcCiAgICAgJChXZWJDb3JlKS9odG1sL2NhbnZhcy9XZWJHTFJl
bmRlcmJ1ZmZlci5pZGwgXAogICAgICQoV2ViQ29yZSkvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJp
bmdDb250ZXh0LmlkbCBcCiAgICAgJChXZWJDb3JlKS9odG1sL2NhbnZhcy9XZWJHTFNoYWRlci5p
ZGwgXAorICAgICQoV2ViQ29yZSkvaHRtbC9jYW52YXMvV2ViR0xTaGFkZXJQcmVjaXNpb25Gb3Jt
YXQuaWRsIFwKICAgICAkKFdlYkNvcmUpL2h0bWwvY2FudmFzL1dlYkdMVGV4dHVyZS5pZGwgXAog
ICAgICQoV2ViQ29yZSkvaHRtbC9jYW52YXMvV2ViR0xVbmlmb3JtTG9jYXRpb24uaWRsIFwKICAg
ICAkKFdlYkNvcmUpL2h0bWwvY2FudmFzL1dlYkdMVmVydGV4QXJyYXlPYmplY3RPRVMuaWRsIFwK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLnByaQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5wcmkJKHJldmlzaW9uIDExMzA0NykKKysrIFNv
dXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLnByaQkod29ya2luZyBjb3B5KQpAQCAtMjk0LDYg
KzI5NCw3IEBAIElETF9CSU5ESU5HUyArPSBcCiAgICAgJCRQV0QvaHRtbC9jYW52YXMvV2ViR0xS
ZW5kZXJidWZmZXIuaWRsIFwKICAgICAkJFBXRC9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0Nv
bnRleHQuaWRsIFwKICAgICAkJFBXRC9odG1sL2NhbnZhcy9XZWJHTFNoYWRlci5pZGwgXAorICAg
ICQkUFdEL2h0bWwvY2FudmFzL1dlYkdMU2hhZGVyUHJlY2lzaW9uRm9ybWF0LmlkbCBcCiAgICAg
JCRQV0QvaHRtbC9jYW52YXMvSW50MTZBcnJheS5pZGwgXAogICAgICQkUFdEL2h0bWwvY2FudmFz
L1dlYkdMVGV4dHVyZS5pZGwgXAogICAgICQkUFdEL2h0bWwvY2FudmFzL1dlYkdMVW5pZm9ybUxv
Y2F0aW9uLmlkbCBcCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0JKHJldmlzaW9u
IDExMzA0NykKKysrIFNvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0JKHdvcmtpbmcg
Y29weSkKQEAgLTU3Nyw2ICs1NzcsOCBAQCB3ZWJjb3JlX2J1aWx0X3NvdXJjZXMgKz0gXAogCURl
cml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNXZWJHTFJlbmRlcmluZ0NvbnRleHQuaCBcCiAJRGVyaXZl
ZFNvdXJjZXMvV2ViQ29yZS9KU1dlYkdMU2hhZGVyLmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvV2Vi
Q29yZS9KU1dlYkdMU2hhZGVyLmggXAorCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNXZWJHTFNo
YWRlclByZWNpc2lvbkZvcm1hdC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNXZWJH
TFNoYWRlclByZWNpc2lvbkZvcm1hdC5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTV2Vi
R0xUZXh0dXJlLmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1dlYkdMVGV4dHVyZS5o
IFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTV2ViR0xVbmlmb3JtTG9jYXRpb24uY3BwIFwK
QEAgLTkwNCw2ICs5MDYsNyBAQCBkb21fYmluZGluZ19pZGxzICs9IFwKIAkkKFdlYkNvcmUpL2h0
bWwvY2FudmFzL1dlYkdMUmVuZGVyYnVmZmVyLmlkbCBcCiAJJChXZWJDb3JlKS9odG1sL2NhbnZh
cy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuaWRsIFwKIAkkKFdlYkNvcmUpL2h0bWwvY2FudmFzL1dl
YkdMU2hhZGVyLmlkbCBcCisJJChXZWJDb3JlKS9odG1sL2NhbnZhcy9XZWJHTFNoYWRlclByZWNp
c2lvbkZvcm1hdC5pZGwgXAogCSQoV2ViQ29yZSkvaHRtbC9jYW52YXMvV2ViR0xUZXh0dXJlLmlk
bCBcCiAJJChXZWJDb3JlKS9odG1sL2NhbnZhcy9XZWJHTFVuaWZvcm1Mb2NhdGlvbi5pZGwgXAog
CSQoV2ViQ29yZSkvaHRtbC9jYW52YXMvV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUy5pZGwgXApA
QCAtNTgwNSw2ICs1ODA4LDggQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29y
ZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuaCBcCiAJU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvV2ViR0xTaGFkZXIuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZh
cy9XZWJHTFNoYWRlci5oIFwKKwlTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFNoYWRl
clByZWNpc2lvbkZvcm1hdC5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdM
U2hhZGVyUHJlY2lzaW9uRm9ybWF0LmggXAogCVNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dl
YkdMU2hhcmVkT2JqZWN0LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xT
aGFyZWRPYmplY3QuaCBcCiAJU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xUZXh0dXJl
LmNwcCBcCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL1RhcmdldC5wcmkJKHJldmlzaW9uIDExMzA0NykKKysrIFNvdXJjZS9XZWJD
b3JlL1RhcmdldC5wcmkJKHdvcmtpbmcgY29weSkKQEAgLTM3NjksNiArMzc2OSw3IEBAIGNvbnRh
aW5zKERFRklORVMsIEVOQUJMRV9XRUJHTD0xKSB7CiAgICAgICAgIGh0bWwvY2FudmFzL1dlYkdM
UmVuZGVyYnVmZmVyLmggXAogICAgICAgICBodG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRl
eHQuaCBcCiAgICAgICAgIGh0bWwvY2FudmFzL1dlYkdMU2hhZGVyLmggXAorICAgICAgICBodG1s
L2NhbnZhcy9XZWJHTFNoYWRlclByZWNpc2lvbkZvcm1hdC5oIFwKICAgICAgICAgaHRtbC9jYW52
YXMvV2ViR0xTaGFyZWRPYmplY3QuaCBcCiAgICAgICAgIGh0bWwvY2FudmFzL0VYVFRleHR1cmVG
aWx0ZXJBbmlzb3Ryb3BpYy5oIFwKICAgICAgICAgaHRtbC9jYW52YXMvT0VTU3RhbmRhcmREZXJp
dmF0aXZlcy5oIFwKQEAgLTM4MTAsNiArMzgxMSw3IEBAIGNvbnRhaW5zKERFRklORVMsIEVOQUJM
RV9XRUJHTD0xKSB7CiAgICAgICAgIGh0bWwvY2FudmFzL1dlYkdMUmVuZGVyYnVmZmVyLmNwcCBc
CiAgICAgICAgIGh0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5jcHAgXAogICAgICAg
ICBodG1sL2NhbnZhcy9XZWJHTFNoYWRlci5jcHAgXAorICAgICAgICBodG1sL2NhbnZhcy9XZWJH
TFNoYWRlclByZWNpc2lvbkZvcm1hdC5jcHAgXAogICAgICAgICBodG1sL2NhbnZhcy9XZWJHTFNo
YXJlZE9iamVjdC5jcHAgXAogICAgICAgICBodG1sL2NhbnZhcy9FWFRUZXh0dXJlRmlsdGVyQW5p
c290cm9waWMuY3BwIFwKICAgICAgICAgaHRtbC9jYW52YXMvT0VTU3RhbmRhcmREZXJpdmF0aXZl
cy5jcHAgXApJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQkocmV2aXNpb24gMTEzMDQ3KQorKysgU291cmNl
L1dlYkNvcmUvV2ViQ29yZS5neXBpCSh3b3JraW5nIGNvcHkpCkBAIC0xMDk1LDYgKzEwOTUsNyBA
QAogICAgICAgICAgICAgJ2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyYnVmZmVyLmlkbCcsCiAgICAg
ICAgICAgICAnaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmlkbCcsCiAgICAgICAg
ICAgICAnaHRtbC9jYW52YXMvV2ViR0xTaGFkZXIuaWRsJywKKyAgICAgICAgICAgICdodG1sL2Nh
bnZhcy9XZWJHTFNoYWRlclByZWNpc2lvbkZvcm1hdC5pZGwnLAogICAgICAgICAgICAgJ2h0bWwv
Y2FudmFzL1dlYkdMVGV4dHVyZS5pZGwnLAogICAgICAgICAgICAgJ2h0bWwvY2FudmFzL1dlYkdM
VW5pZm9ybUxvY2F0aW9uLmlkbCcsCiAgICAgICAgICAgICAnaHRtbC9jYW52YXMvV2ViR0xWZXJ0
ZXhBcnJheU9iamVjdE9FUy5pZGwnLApAQCAtNTY1OSw2ICs1NjYwLDggQEAKICAgICAgICAgICAg
ICdodG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuaCcsCiAgICAgICAgICAgICAnaHRt
bC9jYW52YXMvV2ViR0xTaGFkZXIuY3BwJywKICAgICAgICAgICAgICdodG1sL2NhbnZhcy9XZWJH
TFNoYWRlci5oJywKKyAgICAgICAgICAgICdodG1sL2NhbnZhcy9XZWJHTFNoYWRlclByZWNpc2lv
bkZvcm1hdC5jcHAnLAorICAgICAgICAgICAgJ2h0bWwvY2FudmFzL1dlYkdMU2hhZGVyUHJlY2lz
aW9uRm9ybWF0LmgnLAogICAgICAgICAgICAgJ2h0bWwvY2FudmFzL1dlYkdMU2hhcmVkT2JqZWN0
LmNwcCcsCiAgICAgICAgICAgICAnaHRtbC9jYW52YXMvV2ViR0xTaGFyZWRPYmplY3QuaCcsCiAg
ICAgICAgICAgICAnaHRtbC9jYW52YXMvV2ViR0xUZXh0dXJlLmNwcCcsCkBAIC04MDgwLDYgKzgw
ODMsOCBAQAogICAgICAgICAgICAgJzwoUFJPRFVDVF9ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNv
cmUvSlNXZWJHTFJlbmRlcmluZ0NvbnRleHQuaCcsCiAgICAgICAgICAgICAnPChQUk9EVUNUX0RJ
UikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1dlYkdMU2hhZGVyLmNwcCcsCiAgICAgICAgICAg
ICAnPChQUk9EVUNUX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1dlYkdMU2hhZGVyLmgn
LAorICAgICAgICAgICAgJzwoUFJPRFVDVF9ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNX
ZWJHTFNoYWRlclByZWNpc2lvbkZvcm1hdC5jcHAnLAorICAgICAgICAgICAgJzwoUFJPRFVDVF9E
SVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNXZWJHTFNoYWRlclByZWNpc2lvbkZvcm1hdC5o
JywKICAgICAgICAgICAgICc8KFBST0RVQ1RfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pT
V2ViR0xUZXh0dXJlLmNwcCcsCiAgICAgICAgICAgICAnPChQUk9EVUNUX0RJUikvRGVyaXZlZFNv
dXJjZXMvV2ViQ29yZS9KU1dlYkdMVGV4dHVyZS5oJywKICAgICAgICAgICAgICc8KFBST0RVQ1Rf
RElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTV2ViR0xVbmlmb3JtTG9jYXRpb24uY3BwJywK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oJKHJldmlzaW9uIDExMzA0NykKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMzYzNyw2ICszNjM3LDEwIEBA
CiAJCTlGRkUzRUE1MTFCNUE0MzkwMDM3ODc0RSAvKiBKU01lbW9yeUluZm8uY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUZGRTNFQTMxMUI1QTQzOTAw
Mzc4NzRFIC8qIEpTTWVtb3J5SW5mby5jcHAgKi87IH07CiAJCTlGRkUzRUE2MTFCNUE0MzkwMDM3
ODc0RSAvKiBKU01lbW9yeUluZm8uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDlGRkUzRUE0MTFCNUE0MzkwMDM3ODc0RSAvKiBKU01lbW9yeUluZm8uaCAq
LzsgfTsKIAkJQTAwQjcyMUExMURFNjQyODAwOEFCOUZGIC8qIENoZWNrZWRJbnQuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEEwMEI3MjE5MTFERTY0Mjcw
MDhBQjlGRiAvKiBDaGVja2VkSW50LmggKi87IH07CisJCUEwN0QzMzU1MTUyQjYzMEUwMDFCNjM5
MyAvKiBKU1dlYkdMU2hhZGVyUHJlY2lzaW9uRm9ybWF0LmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEEwN0QzMzUzMTUyQjYzMEUwMDFCNjM5MyAvKiBK
U1dlYkdMU2hhZGVyUHJlY2lzaW9uRm9ybWF0LmNwcCAqLzsgfTsKKwkJQTA3RDMzNTYxNTJCNjMw
RTAwMUI2MzkzIC8qIEpTV2ViR0xTaGFkZXJQcmVjaXNpb25Gb3JtYXQuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEEwN0QzMzU0MTUyQjYzMEUwMDFCNjM5
MyAvKiBKU1dlYkdMU2hhZGVyUHJlY2lzaW9uRm9ybWF0LmggKi87IH07CisJCUEwN0QzMzU4MTUy
QjYzMkQwMDFCNjM5MyAvKiBXZWJHTFNoYWRlclByZWNpc2lvbkZvcm1hdC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTA3RDMzNTcxNTJCNjMyRDAwMUI2
MzkzIC8qIFdlYkdMU2hhZGVyUHJlY2lzaW9uRm9ybWF0LmggKi87IH07CisJCUEwOENGMTU0MTUy
Qjc3QjMwMDlDNTc3NSAvKiBXZWJHTFNoYWRlclByZWNpc2lvbkZvcm1hdC5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMDhDRjE1MzE1MkI3N0IzMDA5
QzU3NzUgLyogV2ViR0xTaGFkZXJQcmVjaXNpb25Gb3JtYXQuY3BwICovOyB9OwogCQlBMEVFMERG
NTE0NEY4MjU1MDBGODBCMEQgLyogV2ViR0xEZWJ1Z1JlbmRlcmVySW5mby5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMEVFMERGMTE0NEY4MjU1MDBG
ODBCMEQgLyogV2ViR0xEZWJ1Z1JlbmRlcmVySW5mby5jcHAgKi87IH07CiAJCUEwRUUwREY2MTQ0
RjgyNTUwMEY4MEIwRCAvKiBXZWJHTERlYnVnUmVuZGVyZXJJbmZvLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMEVFMERGMjE0NEY4MjU1MDBGODBCMEQg
LyogV2ViR0xEZWJ1Z1JlbmRlcmVySW5mby5oICovOyB9OwogCQlBMEVFMERGNzE0NEY4MjU1MDBG
ODBCMEQgLyogV2ViR0xEZWJ1Z1NoYWRlcnMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQTBFRTBERjMxNDRGODI1NTAwRjgwQjBEIC8qIFdlYkdMRGVi
dWdTaGFkZXJzLmNwcCAqLzsgfTsKQEAgLTEwNjQzLDYgKzEwNjQ3LDExIEBACiAJCTlGRkUzRUEz
MTFCNUE0MzkwMDM3ODc0RSAvKiBKU01lbW9yeUluZm8uY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gSlNNZW1vcnlJbmZvLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJOUZGRTNFQTQxMUI1QTQzOTAwMzc4NzRFIC8qIEpTTWVtb3J5SW5mby5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU01lbW9yeUluZm8uaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJQTAwQjcyMTkxMURFNjQyNzAwOEFCOUZGIC8qIENoZWNrZWRJbnQu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gQ2hlY2tlZEludC5oOyBwYXRoID0g
Y2FudmFzL0NoZWNrZWRJbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTA3RDMz
NTMxNTJCNjMwRTAwMUI2MzkzIC8qIEpTV2ViR0xTaGFkZXJQcmVjaXNpb25Gb3JtYXQuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNXZWJHTFNoYWRlclByZWNpc2lv
bkZvcm1hdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUEwN0QzMzU0MTUyQjYz
MEUwMDFCNjM5MyAvKiBKU1dlYkdMU2hhZGVyUHJlY2lzaW9uRm9ybWF0LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTV2ViR0xTaGFkZXJQcmVjaXNpb25Gb3JtYXQuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTA3RDMzNTcxNTJCNjMyRDAwMUI2MzkzIC8qIFdl
YkdMU2hhZGVyUHJlY2lzaW9uRm9ybWF0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFt
ZSA9IFdlYkdMU2hhZGVyUHJlY2lzaW9uRm9ybWF0Lmg7IHBhdGggPSBjYW52YXMvV2ViR0xTaGFk
ZXJQcmVjaXNpb25Gb3JtYXQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTA3RDMz
NTkxNTJCNjMzRTAwMUI2MzkzIC8qIFdlYkdMU2hhZGVyUHJlY2lzaW9uRm9ybWF0LmlkbCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQ7IG5hbWUgPSBXZWJHTFNoYWRlclByZWNpc2lvbkZvcm1hdC5pZGw7IHBhdGgg
PSBjYW52YXMvV2ViR0xTaGFkZXJQcmVjaXNpb25Gb3JtYXQuaWRsOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlBMDhDRjE1MzE1MkI3N0IzMDA5QzU3NzUgLyogV2ViR0xTaGFkZXJQcmVj
aXNpb25Gb3JtYXQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gV2Vi
R0xTaGFkZXJQcmVjaXNpb25Gb3JtYXQuY3BwOyBwYXRoID0gY2FudmFzL1dlYkdMU2hhZGVyUHJl
Y2lzaW9uRm9ybWF0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTBFRTBERUYx
NDRGODIzMjAwRjgwQjBEIC8qIFdlYkdMRGVidWdTaGFkZXJzLmlkbCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7
IG5hbWUgPSBXZWJHTERlYnVnU2hhZGVycy5pZGw7IHBhdGggPSBjYW52YXMvV2ViR0xEZWJ1Z1No
YWRlcnMuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBMEVFMERGMDE0NEY4MjQz
MDBGODBCMEQgLyogV2ViR0xEZWJ1Z1JlbmRlcmVySW5mby5pZGwgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBu
YW1lID0gV2ViR0xEZWJ1Z1JlbmRlcmVySW5mby5pZGw7IHBhdGggPSBjYW52YXMvV2ViR0xEZWJ1
Z1JlbmRlcmVySW5mby5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUEwRUUwREYx
MTQ0RjgyNTUwMEY4MEIwRCAvKiBXZWJHTERlYnVnUmVuZGVyZXJJbmZvLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFdlYkdMRGVidWdSZW5kZXJlckluZm8uY3BwOyBw
YXRoID0gY2FudmFzL1dlYkdMRGVidWdSZW5kZXJlckluZm8uY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtMTQ2MTgsNiArMTQ2MjcsOSBAQAogCQk0OTQ4NEZBRTEwMkNGMDFFMDAx
ODdERDMgLyogY2FudmFzICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9
ICgKKwkJCQlBMDhDRjE1MzE1MkI3N0IzMDA5QzU3NzUgLyogV2ViR0xTaGFkZXJQcmVjaXNpb25G
b3JtYXQuY3BwICovLAorCQkJCUEwN0QzMzU5MTUyQjYzM0UwMDFCNjM5MyAvKiBXZWJHTFNoYWRl
clByZWNpc2lvbkZvcm1hdC5pZGwgKi8sCisJCQkJQTA3RDMzNTcxNTJCNjMyRDAwMUI2MzkzIC8q
IFdlYkdMU2hhZGVyUHJlY2lzaW9uRm9ybWF0LmggKi8sCiAJCQkJNDlFRUNEQ0MxMDUwM0MyMzAw
MDk5RkFCIC8qIEFycmF5QnVmZmVyLmlkbCAqLywKIAkJCQk0OUVFQ0RDOTEwNTAzQzIzMDAwOTlG
QUIgLyogQXJyYXlCdWZmZXJWaWV3LmlkbCAqLywKIAkJCQk2RTRFOTFBNzEwRjdGQjMxMDBBMjc3
OUMgLyogQ2FudmFzQ29udGV4dEF0dHJpYnV0ZXMuY3BwICovLApAQCAtMTc5MTAsNiArMTc5MjIs
OCBAQAogCQkJCTQ5RUVEMTQxMTA1MTk2OTQwMDA5OUZBQiAvKiBKU1dlYkdMUmVuZGVyaW5nQ29u
dGV4dC5oICovLAogCQkJCTQ5QzdCOThGMTA0MkQyRDMwMDA5RDQ0NyAvKiBKU1dlYkdMU2hhZGVy
LmNwcCAqLywKIAkJCQk0OUM3Qjk5MDEwNDJEMkQzMDAwOUQ0NDcgLyogSlNXZWJHTFNoYWRlci5o
ICovLAorCQkJCUEwN0QzMzUzMTUyQjYzMEUwMDFCNjM5MyAvKiBKU1dlYkdMU2hhZGVyUHJlY2lz
aW9uRm9ybWF0LmNwcCAqLywKKwkJCQlBMDdEMzM1NDE1MkI2MzBFMDAxQjYzOTMgLyogSlNXZWJH
TFNoYWRlclByZWNpc2lvbkZvcm1hdC5oICovLAogCQkJCTQ5QzdCOTkxMTA0MkQyRDMwMDA5RDQ0
NyAvKiBKU1dlYkdMVGV4dHVyZS5jcHAgKi8sCiAJCQkJNDlDN0I5OTIxMDQyRDJEMzAwMDlENDQ3
IC8qIEpTV2ViR0xUZXh0dXJlLmggKi8sCiAJCQkJMEM0NTM0MjUxMENEQkJGQTAwODY5MTU3IC8q
IEpTV2ViR0xVbmlmb3JtTG9jYXRpb24uY3BwICovLApAQCAtMjQ3MDYsMTMgKzI0NzIwLDE1IEBA
CiAJCQkJOTNGMTk5RUQwODI0NUU1OTAwMUU5QUJDIC8qIFhTTFRQcm9jZXNzb3IuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUUxQkU1MTJFMENGNkM1MTIwMDJFQTk1OSAvKiBYU0xUVW5pY29kZVNvcnQu
aCBpbiBIZWFkZXJzICovLAogCQkJCTk3N0UyRTBGMTJGMEZDOUMwMEMxMzM3OSAvKiBYU1NBdWRp
dG9yLmggaW4gSGVhZGVycyAqLywKLSAgICAgICAgICAgICAgICBGRDU4MUZBRjE1MjBGOTFGMDAz
QTdBNzUgLyogT3NjaWxsYXRvci5oIGluIEhlYWRlcnMgKi8sCi0gICAgICAgICAgICAgICAgRkQ1
ODFGQjUxNTIwRjkzQjAwM0E3QTc1IC8qIFdhdmVUYWJsZS5oIGluIEhlYWRlcnMgKi8sCi0gICAg
ICAgICAgICAgICAgRkRFQTYyNDMxNTIxMDJFMjAwNDc5REYwIC8qIEpTT3NjaWxsYXRvci5oIGlu
IEhlYWRlcnMgKi8sCi0gICAgICAgICAgICAgICAgRkRFQTYyNDcxNTIxMDJGQzAwNDc5REYwIC8q
IEpTV2F2ZVRhYmxlLmggaW4gSGVhZGVycyAqLywKKwkJCQlGRDU4MUZBRjE1MjBGOTFGMDAzQTdB
NzUgLyogT3NjaWxsYXRvci5oIGluIEhlYWRlcnMgKi8sCisJCQkJRkQ1ODFGQjUxNTIwRjkzQjAw
M0E3QTc1IC8qIFdhdmVUYWJsZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJRkRFQTYyNDMxNTIxMDJF
MjAwNDc5REYwIC8qIEpTT3NjaWxsYXRvci5oIGluIEhlYWRlcnMgKi8sCisJCQkJRkRFQTYyNDcx
NTIxMDJGQzAwNDc5REYwIC8qIEpTV2F2ZVRhYmxlLmggaW4gSGVhZGVycyAqLywKIAkJCQlGRDUz
NzM1MzEzN0I2NTE4MDAwMDhEQ0UgLyogWmVyb1BvbGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTFB
MzU4NkUwMTUyNjRDNDUwMDIyQTY1OSAvKiBSZW5kZXJNdWx0aUNvbHVtbkZsb3dUaHJlYWQuaCBp
biBIZWFkZXJzICovLAogCQkJCUUxQjI1MTA3MTUyQTBCQjAwMDY5Qjc3OSAvKiBTdHlsZVByb3Bl
cnR5U2hvcnRoYW5kLmggaW4gSGVhZGVycyAqLywKKwkJCQlBMDdEMzM1NjE1MkI2MzBFMDAxQjYz
OTMgLyogSlNXZWJHTFNoYWRlclByZWNpc2lvbkZvcm1hdC5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
QTA3RDMzNTgxNTJCNjMyRDAwMUI2MzkzIC8qIFdlYkdMU2hhZGVyUHJlY2lzaW9uRm9ybWF0Lmgg
aW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNz
aW5nID0gMDsKIAkJfTsKQEAgLTI3NzExLDYgKzI3NzI3LDggQEAKIAkJCQkxQTNGRjlDMzE1MjY1
MzU5MDAyMjg4QTEgLyogUmVuZGVyTmFtZWRGbG93VGhyZWFkLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCUUxQjI1MTA2MTUyQTBCQUYwMDY5Qjc3OSAvKiBTdHlsZVByb3BlcnR5U2hvcnRoYW5kLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTcxQ0M3QTIwMTUyQTBCRkUwMDlFRUFGOSAvKiBTVkdBbmlt
YXRlZEVudW1lcmF0aW9uLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUEwN0QzMzU1MTUyQjYzMEUw
MDFCNjM5MyAvKiBKU1dlYkdMU2hhZGVyUHJlY2lzaW9uRm9ybWF0LmNwcCBpbiBTb3VyY2VzICov
LAorCQkJCUEwOENGMTU0MTUyQjc3QjMwMDlDNTc3NSAvKiBXZWJHTFNoYWRlclByZWNpc2lvbkZv
cm1hdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBv
c3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFz
L1dlYkdMUmVuZGVyaW5nQ29udGV4dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmNwcAkocmV2aXNpb24gMTEzMDQ3KQor
KysgU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNjYsNiArNjYsNyBAQAogI2luY2x1ZGUgIldlYkdMUHJvZ3JhbS5o
IgogI2luY2x1ZGUgIldlYkdMUmVuZGVyYnVmZmVyLmgiCiAjaW5jbHVkZSAiV2ViR0xTaGFkZXIu
aCIKKyNpbmNsdWRlICJXZWJHTFNoYWRlclByZWNpc2lvbkZvcm1hdC5oIgogI2luY2x1ZGUgIldl
YkdMVGV4dHVyZS5oIgogI2luY2x1ZGUgIldlYkdMVW5pZm9ybUxvY2F0aW9uLmgiCiAKQEAgLTI2
ODYsNiArMjY4NywzOCBAQCBTdHJpbmcgV2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRTaGFkZXJJ
CiAgICAgcmV0dXJuIGVuc3VyZU5vdE51bGwobV9jb250ZXh0LT5nZXRTaGFkZXJJbmZvTG9nKG9i
amVjdE9yWmVybyhzaGFkZXIpKSk7CiB9CiAKK1Bhc3NSZWZQdHI8V2ViR0xTaGFkZXJQcmVjaXNp
b25Gb3JtYXQ+IFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0U2hhZGVyUHJlY2lzaW9uRm9ybWF0
KEdDM0RlbnVtIHNoYWRlclR5cGUsIEdDM0RlbnVtIHByZWNpc2lvblR5cGUsIEV4Y2VwdGlvbkNv
ZGUmIGVjKQoreworICAgIFVOVVNFRF9QQVJBTShlYyk7CisgICAgaWYgKGlzQ29udGV4dExvc3Qo
KSkKKyAgICAgICAgcmV0dXJuIDA7CisgICAgc3dpdGNoIChzaGFkZXJUeXBlKSB7CisgICAgY2Fz
ZSBHcmFwaGljc0NvbnRleHQzRDo6VkVSVEVYX1NIQURFUjoKKyAgICBjYXNlIEdyYXBoaWNzQ29u
dGV4dDNEOjpGUkFHTUVOVF9TSEFERVI6CisgICAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6Cisg
ICAgICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX0VOVU0s
ICJnZXRTaGFkZXJQcmVjaXNpb25Gb3JtYXQiLCAiaW52YWxpZCBzaGFkZXIgdHlwZSIpOworICAg
ICAgICByZXR1cm4gMDsKKyAgICB9CisgICAgc3dpdGNoIChwcmVjaXNpb25UeXBlKSB7CisgICAg
Y2FzZSBHcmFwaGljc0NvbnRleHQzRDo6TE9XX0ZMT0FUOgorICAgIGNhc2UgR3JhcGhpY3NDb250
ZXh0M0Q6Ok1FRElVTV9GTE9BVDoKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpISUdIX0ZM
T0FUOgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkxPV19JTlQ6CisgICAgY2FzZSBHcmFw
aGljc0NvbnRleHQzRDo6TUVESVVNX0lOVDoKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpI
SUdIX0lOVDoKKyAgICAgICAgYnJlYWs7CisgICAgZGVmYXVsdDoKKyAgICAgICAgc3ludGhlc2l6
ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFMSURfRU5VTSwgImdldFNoYWRlclByZWNp
c2lvbkZvcm1hdCIsICJpbnZhbGlkIHByZWNpc2lvbiB0eXBlIik7CisgICAgICAgIHJldHVybiAw
OworICAgIH0KKworICAgIEdDM0RpbnQgcmFuZ2VbMl0gPSB7MCwgMH07CisgICAgR0MzRGludCBw
cmVjaXNpb24gPSAwOworICAgIG1fY29udGV4dC0+Z2V0U2hhZGVyUHJlY2lzaW9uRm9ybWF0KHNo
YWRlclR5cGUsIHByZWNpc2lvblR5cGUsIHJhbmdlLCAmcHJlY2lzaW9uKTsKKyAgICByZXR1cm4g
V2ViR0xTaGFkZXJQcmVjaXNpb25Gb3JtYXQ6OmNyZWF0ZShyYW5nZVswXSwgcmFuZ2VbMV0sIHBy
ZWNpc2lvbik7Cit9CisKIFN0cmluZyBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdldFNoYWRlclNv
dXJjZShXZWJHTFNoYWRlciogc2hhZGVyLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBVTlVT
RURfUEFSQU0oZWMpOwpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5k
ZXJpbmdDb250ZXh0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
V2ViR0xSZW5kZXJpbmdDb250ZXh0LmgJKHJldmlzaW9uIDExMzA0NykKKysrIFNvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5oCSh3b3JraW5nIGNvcHkpCkBA
IC02NSw2ICs2NSw3IEBAIGNsYXNzIFdlYkdMUHJvZ3JhbTsKIGNsYXNzIFdlYkdMUmVuZGVyYnVm
ZmVyOwogY2xhc3MgV2ViR0xTaGFkZXI7CiBjbGFzcyBXZWJHTFNoYXJlZE9iamVjdDsKK2NsYXNz
IFdlYkdMU2hhZGVyUHJlY2lzaW9uRm9ybWF0OwogY2xhc3MgV2ViR0xUZXh0dXJlOwogY2xhc3Mg
V2ViR0xVbmlmb3JtTG9jYXRpb247CiBjbGFzcyBXZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTOwpA
QCAtMTY2LDEwICsxNjcsNyBAQCBwdWJsaWM6CiAgICAgV2ViR0xHZXRJbmZvIGdldFJlbmRlcmJ1
ZmZlclBhcmFtZXRlcihHQzNEZW51bSB0YXJnZXQsIEdDM0RlbnVtIHBuYW1lLCBFeGNlcHRpb25D
b2RlJik7CiAgICAgV2ViR0xHZXRJbmZvIGdldFNoYWRlclBhcmFtZXRlcihXZWJHTFNoYWRlcios
IEdDM0RlbnVtIHBuYW1lLCBFeGNlcHRpb25Db2RlJik7CiAgICAgU3RyaW5nIGdldFNoYWRlcklu
Zm9Mb2coV2ViR0xTaGFkZXIqLCBFeGNlcHRpb25Db2RlJik7Ci0KLSAgICAvLyBUQkQKLSAgICAv
LyB2b2lkIGdsR2V0U2hhZGVyUHJlY2lzaW9uRm9ybWF0IChHQzNEZW51bSBzaGFkZXJ0eXBlLCBH
QzNEZW51bSBwcmVjaXNpb250eXBlLCBHQzNEaW50KiByYW5nZSwgR0MzRGludCogcHJlY2lzaW9u
KTsKLQorICAgIFBhc3NSZWZQdHI8V2ViR0xTaGFkZXJQcmVjaXNpb25Gb3JtYXQ+IGdldFNoYWRl
clByZWNpc2lvbkZvcm1hdChHQzNEZW51bSBzaGFkZXJUeXBlLCBHQzNEZW51bSBwcmVjaXNpb25U
eXBlLCBFeGNlcHRpb25Db2RlJik7CiAgICAgU3RyaW5nIGdldFNoYWRlclNvdXJjZShXZWJHTFNo
YWRlciosIEV4Y2VwdGlvbkNvZGUmKTsKICAgICBWZWN0b3I8U3RyaW5nPiBnZXRTdXBwb3J0ZWRF
eHRlbnNpb25zKCk7CiAgICAgV2ViR0xHZXRJbmZvIGdldFRleFBhcmFtZXRlcihHQzNEZW51bSB0
YXJnZXQsIEdDM0RlbnVtIHBuYW1lLCBFeGNlcHRpb25Db2RlJik7CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuaWRsCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5pZGwJKHJl
dmlzaW9uIDExMzA0NykKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVy
aW5nQ29udGV4dC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTU1MCw4ICs1NTAsNyBAQCBtb2R1bGUg
aHRtbCB7CiAKICAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZywgVHJlYXRSZXR1cm5lZE51bGxT
dHJpbmdBcz1OdWxsXSBET01TdHJpbmcgICAgZ2V0U2hhZGVySW5mb0xvZyhpbiBXZWJHTFNoYWRl
ciBzaGFkZXIpIHJhaXNlcyhET01FeGNlcHRpb24pOwogCi0gICAgICAgIC8vIFRCRAotICAgICAg
ICAvLyB2b2lkIGdsR2V0U2hhZGVyUHJlY2lzaW9uRm9ybWF0IChHTGVudW0gc2hhZGVydHlwZSwg
R0xlbnVtIHByZWNpc2lvbnR5cGUsIEdMaW50KiByYW5nZSwgR0xpbnQqIHByZWNpc2lvbik7Cisg
ICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmddIFdlYkdMU2hhZGVyUHJlY2lzaW9uRm9ybWF0IGdl
dFNoYWRlclByZWNpc2lvbkZvcm1hdChpbiB1bnNpZ25lZCBsb25nIHNoYWRlcnR5cGUsIGluIHVu
c2lnbmVkIGxvbmcgcHJlY2lzaW9udHlwZSkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAKICAgICAg
ICAgW1N0cmljdFR5cGVDaGVja2luZywgVHJlYXRSZXR1cm5lZE51bGxTdHJpbmdBcz1OdWxsXSBE
T01TdHJpbmcgICAgZ2V0U2hhZGVyU291cmNlKGluIFdlYkdMU2hhZGVyIHNoYWRlcikgcmFpc2Vz
KERPTUV4Y2VwdGlvbik7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdM
U2hhZGVyUHJlY2lzaW9uRm9ybWF0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9o
dG1sL2NhbnZhcy9XZWJHTFNoYWRlclByZWNpc2lvbkZvcm1hdC5jcHAJKHJldmlzaW9uIDApCisr
KyBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFNoYWRlclByZWNpc2lvbkZvcm1hdC5j
cHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNjYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDIw
MTIsIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAg
ICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05U
UklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisg
KiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYgRU5BQkxFKFdFQkdMKQorCisjaW5jbHVkZSAi
V2ViR0xTaGFkZXJQcmVjaXNpb25Gb3JtYXQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCisv
LyBzdGF0aWMKK1Bhc3NSZWZQdHI8V2ViR0xTaGFkZXJQcmVjaXNpb25Gb3JtYXQ+IFdlYkdMU2hh
ZGVyUHJlY2lzaW9uRm9ybWF0OjpjcmVhdGUoR0MzRGludCByYW5nZU1pbiwgR0MzRGludCByYW5n
ZU1heCwgR0MzRGludCBwcmVjaXNpb24pCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBXZWJH
TFNoYWRlclByZWNpc2lvbkZvcm1hdChyYW5nZU1pbiwgcmFuZ2VNYXgsIHByZWNpc2lvbikpOwor
fQorCitHQzNEaW50IFdlYkdMU2hhZGVyUHJlY2lzaW9uRm9ybWF0OjpyYW5nZU1pbigpIGNvbnN0
Cit7CisgICAgcmV0dXJuIG1fcmFuZ2VNaW47Cit9CisKK0dDM0RpbnQgV2ViR0xTaGFkZXJQcmVj
aXNpb25Gb3JtYXQ6OnJhbmdlTWF4KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9yYW5nZU1heDsK
K30KKworR0MzRGludCBXZWJHTFNoYWRlclByZWNpc2lvbkZvcm1hdDo6cHJlY2lzaW9uKCkgY29u
c3QKK3sKKyAgICByZXR1cm4gbV9wcmVjaXNpb247Cit9CisKK1dlYkdMU2hhZGVyUHJlY2lzaW9u
Rm9ybWF0OjpXZWJHTFNoYWRlclByZWNpc2lvbkZvcm1hdChHQzNEaW50IHJhbmdlTWluLCBHQzNE
aW50IHJhbmdlTWF4LCBHQzNEaW50IHByZWNpc2lvbikKKyAgICA6IG1fcmFuZ2VNaW4ocmFuZ2VN
aW4pCisgICAgLCBtX3JhbmdlTWF4KHJhbmdlTWF4KQorICAgICwgbV9wcmVjaXNpb24ocHJlY2lz
aW9uKQoreworfQorCit9CisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCR0wpCisKClByb3BlcnR5IGNo
YW5nZXMgb246IFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMU2hhZGVyUHJlY2lzaW9u
Rm9ybWF0LmNwcApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fCkFkZGVkOiBzdm46ZW9sLXN0eWxlCiAgICsgTEYKCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFNoYWRlclByZWNpc2lvbkZvcm1hdC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMU2hhZGVyUHJl
Y2lzaW9uRm9ybWF0LmgJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZh
cy9XZWJHTFNoYWRlclByZWNpc2lvbkZvcm1hdC5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDU0
IEBACisvKgorICogQ29weXJpZ2h0IChjKSAyMDEyLCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICog
ICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRo
ZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUK
KyAqIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRI
RSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElN
SVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisg
KiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV2ViR0xTaGFkZXJQcmVjaXNp
b25Gb3JtYXRfaAorI2RlZmluZSBXZWJHTFNoYWRlclByZWNpc2lvbkZvcm1hdF9oCisKKyNpbmNs
dWRlICJHcmFwaGljc0NvbnRleHQzRC5oIgorI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+Cisj
aW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFz
cyBXZWJHTFNoYWRlclByZWNpc2lvbkZvcm1hdCA6IHB1YmxpYyBSZWZDb3VudGVkPFdlYkdMU2hh
ZGVyUHJlY2lzaW9uRm9ybWF0PiB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8V2Vi
R0xTaGFkZXJQcmVjaXNpb25Gb3JtYXQ+IGNyZWF0ZShHQzNEaW50IHJhbmdlTWluLCBHQzNEaW50
IHJhbmdlTWF4LCBHQzNEaW50IHByZWNpc2lvbik7CisKKyAgICBHQzNEaW50IHJhbmdlTWluKCkg
Y29uc3Q7CisgICAgR0MzRGludCByYW5nZU1heCgpIGNvbnN0OworICAgIEdDM0RpbnQgcHJlY2lz
aW9uKCkgY29uc3Q7CisKK3ByaXZhdGU6CisgICAgV2ViR0xTaGFkZXJQcmVjaXNpb25Gb3JtYXQo
R0MzRGludCByYW5nZU1pbiwgR0MzRGludCByYW5nZU1heCwgR0MzRGludCBwcmVjaXNpb24pOwor
CisgICAgR0MzRGludCBtX3JhbmdlTWluOworICAgIEdDM0RpbnQgbV9yYW5nZU1heDsKKyAgICBH
QzNEaW50IG1fcHJlY2lzaW9uOworfTsKKworfQorCisjZW5kaWYgLy8gV2ViR0xTaGFkZXJQcmVj
aXNpb25Gb3JtYXRfaAoKUHJvcGVydHkgY2hhbmdlcyBvbjogU291cmNlL1dlYkNvcmUvaHRtbC9j
YW52YXMvV2ViR0xTaGFkZXJQcmVjaXNpb25Gb3JtYXQuaApfX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkFkZGVkOiBzdm46
ZW9sLXN0eWxlCiAgICsgTEYKCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJH
TFNoYWRlclByZWNpc2lvbkZvcm1hdC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvV2ViR0xTaGFkZXJQcmVjaXNpb25Gb3JtYXQuaWRsCShyZXZpc2lvbiAwKQor
KysgU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xTaGFkZXJQcmVjaXNpb25Gb3JtYXQu
aWRsCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDM3IEBACisvKgorICogQ29weXJpZ2h0IChjKSAy
MDEyLCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAg
ICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09O
VFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAor
ICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKK21vZHVsZSBodG1sIHsKKworICAgIGludGVyZmFjZSBbCisgICAgICAgIENvbmRpdGlvbmFs
PVdFQkdMLAorICAgIF0gV2ViR0xTaGFkZXJQcmVjaXNpb25Gb3JtYXQgeworICAgICAgICByZWFk
b25seSBhdHRyaWJ1dGUgaW50IHJhbmdlTWluOworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUg
aW50IHJhbmdlTWF4OworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgaW50IHByZWNpc2lvbjsK
KyAgICB9OworCit9CgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBTb3VyY2UvV2ViQ29yZS9odG1sL2Nh
bnZhcy9XZWJHTFNoYWRlclByZWNpc2lvbkZvcm1hdC5pZGwKX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpBZGRlZDogc3Zu
OmVvbC1zdHlsZQogICArIExGCgpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cu
aWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbAkocmV2
aXNpb24gMTEzMDQ3KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsCSh3b3Jr
aW5nIGNvcHkpCkBAIC00OTYsNiArNDk2LDcgQEAgbW9kdWxlIHdpbmRvdyB7CiAgICAgICAgIGF0
dHJpYnV0ZSBbQ29uZGl0aW9uYWw9V0VCR0xdIFdlYkdMUmVuZGVyYnVmZmVyQ29uc3RydWN0b3Ig
V2ViR0xSZW5kZXJidWZmZXI7CiAgICAgICAgIGF0dHJpYnV0ZSBbQ29uZGl0aW9uYWw9V0VCR0xd
IFdlYkdMUmVuZGVyaW5nQ29udGV4dENvbnN0cnVjdG9yIFdlYkdMUmVuZGVyaW5nQ29udGV4dDsK
ICAgICAgICAgYXR0cmlidXRlIFtDb25kaXRpb25hbD1XRUJHTF0gV2ViR0xTaGFkZXJDb25zdHJ1
Y3RvciBXZWJHTFNoYWRlcjsKKyAgICAgICAgYXR0cmlidXRlIFtDb25kaXRpb25hbD1XRUJHTF0g
V2ViR0xTaGFkZXJQcmVjaXNpb25Gb3JtYXRDb25zdHJ1Y3RvciBXZWJHTFNoYWRlclByZWNpc2lv
bkZvcm1hdDsKICAgICAgICAgYXR0cmlidXRlIFtDb25kaXRpb25hbD1XRUJHTF0gV2ViR0xUZXh0
dXJlQ29uc3RydWN0b3IgV2ViR0xUZXh0dXJlOwogICAgICAgICBhdHRyaWJ1dGUgW0NvbmRpdGlv
bmFsPVdFQkdMXSBXZWJHTFVuaWZvcm1Mb2NhdGlvbkNvbnN0cnVjdG9yIFdlYkdMVW5pZm9ybUxv
Y2F0aW9uOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGlj
c0NvbnRleHQzRC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0dyYXBoaWNzQ29udGV4dDNELmgJKHJldmlzaW9uIDExMzA0NykKKysrIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmgJKHdvcmtpbmcgY29weSkK
QEAgLTcwOSwxMCArNzA5LDcgQEAgcHVibGljOgogICAgIHZvaWQgZ2V0UmVuZGVyYnVmZmVyUGFy
YW1ldGVyaXYoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSBwbmFtZSwgR0MzRGludCogdmFsdWUp
OwogICAgIHZvaWQgZ2V0U2hhZGVyaXYoUGxhdGZvcm0zRE9iamVjdCwgR0MzRGVudW0gcG5hbWUs
IEdDM0RpbnQqIHZhbHVlKTsKICAgICBTdHJpbmcgZ2V0U2hhZGVySW5mb0xvZyhQbGF0Zm9ybTNE
T2JqZWN0KTsKLQotICAgIC8vIFRCRAotICAgIC8vIHZvaWQgZ2xHZXRTaGFkZXJQcmVjaXNpb25G
b3JtYXQgKEdDM0RlbnVtIHNoYWRlcnR5cGUsIEdDM0RlbnVtIHByZWNpc2lvbnR5cGUsIEdDM0Rp
bnQqIHJhbmdlLCBHQzNEaW50KiBwcmVjaXNpb24pOwotCisgICAgdm9pZCBnZXRTaGFkZXJQcmVj
aXNpb25Gb3JtYXQoR0MzRGVudW0gc2hhZGVyVHlwZSwgR0MzRGVudW0gcHJlY2lzaW9uVHlwZSwg
R0MzRGludCogcmFuZ2UsIEdDM0RpbnQqIHByZWNpc2lvbik7CiAgICAgU3RyaW5nIGdldFNoYWRl
clNvdXJjZShQbGF0Zm9ybTNET2JqZWN0KTsKICAgICBTdHJpbmcgZ2V0U3RyaW5nKEdDM0RlbnVt
IG5hbWUpOwogICAgIHZvaWQgZ2V0VGV4UGFyYW1ldGVyZnYoR0MzRGVudW0gdGFyZ2V0LCBHQzNE
ZW51bSBwbmFtZSwgR0MzRGZsb2F0KiB2YWx1ZSk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0M0RPcGVuR0wuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0Nv
bnRleHQzRE9wZW5HTC5jcHAJKHJldmlzaW9uIDExMzA0NykKKysrIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHQzRE9wZW5HTC5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTE4OSw2ICsxODksMzcgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6Z2V0
SW50ZWdlcnYoR0MzRAogICAgIH0KIH0KIAordm9pZCBHcmFwaGljc0NvbnRleHQzRDo6Z2V0U2hh
ZGVyUHJlY2lzaW9uRm9ybWF0KEdDM0RlbnVtIHNoYWRlclR5cGUsIEdDM0RlbnVtIHByZWNpc2lv
blR5cGUsIEdDM0RpbnQqIHJhbmdlLCBHQzNEaW50KiBwcmVjaXNpb24pCit7CisgICAgVU5VU0VE
X1BBUkFNKHNoYWRlclR5cGUpOworICAgIEFTU0VSVChyYW5nZSk7CisgICAgQVNTRVJUKHByZWNp
c2lvbik7CisKKyAgICBtYWtlQ29udGV4dEN1cnJlbnQoKTsKKworICAgIC8vIFRoZXNlIGNvbnN0
YW50cyBjYW1lIGZyb20gdGhlIENocm9taXVtIHBvcnQ7IHdlIGJlbGlldmUgdGhleSBvcmlnaW5h
bGx5CisgICAgLy8gY2FtZSBmcm9tIG1ha2luZyB0aGUgYWN0dWFsIEFQSSBjYWxsIG9uIGEgcmVw
cmVzZW50YXRpdmUgZGVza3RvcCBzeXN0ZW0uCisgICAgc3dpdGNoIChwcmVjaXNpb25UeXBlKSB7
CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6TE9XX0lOVDoKKyAgICBjYXNlIEdyYXBoaWNz
Q29udGV4dDNEOjpNRURJVU1fSU5UOgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkhJR0hf
SU5UOgorICAgICAgICByYW5nZVswXSA9IC0zMTsKKyAgICAgICAgcmFuZ2VbMV0gPSAzMTsKKyAg
ICAgICAgcHJlY2lzaW9uWzBdID0gMDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBHcmFwaGlj
c0NvbnRleHQzRDo6TE9XX0ZMT0FUOgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6Ok1FRElV
TV9GTE9BVDoKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpISUdIX0ZMT0FUOgorICAgICAg
ICByYW5nZVswXSA9IC02MjsKKyAgICAgICAgcmFuZ2VbMV0gPSA2MjsKKyAgICAgICAgcHJlY2lz
aW9uWzBdID0gLTE2OworICAgICAgICBicmVhazsKKyAgICBkZWZhdWx0OgorICAgICAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorfQorCiBib29sIEdyYXBo
aWNzQ29udGV4dDNEOjp0ZXhJbWFnZTJEKEdDM0RlbnVtIHRhcmdldCwgR0MzRGludCBsZXZlbCwg
R0MzRGVudW0gaW50ZXJuYWxmb3JtYXQsIEdDM0RzaXplaSB3aWR0aCwgR0MzRHNpemVpIGhlaWdo
dCwgR0MzRGludCBib3JkZXIsIEdDM0RlbnVtIGZvcm1hdCwgR0MzRGVudW0gdHlwZSwgY29uc3Qg
dm9pZCogcGl4ZWxzKQogewogICAgIGlmICh3aWR0aCAmJiBoZWlnaHQgJiYgIXBpeGVscykgewpJ
bmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29u
dGV4dDNET3BlbkdMRVMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHQzRE9wZW5HTEVTLmNwcAkocmV2aXNpb24g
MTEzMDQ3KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBo
aWNzQ29udGV4dDNET3BlbkdMRVMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMjcsNiArMTI3LDE1
IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OmdldEludGVnZXJ2KEdDM0QKICAgICA6OmdsR2V0
SW50ZWdlcnYocG5hbWUsIHZhbHVlKTsKIH0KIAordm9pZCBHcmFwaGljc0NvbnRleHQzRDo6Z2V0
U2hhZGVyUHJlY2lzaW9uRm9ybWF0KEdDM0RlbnVtIHNoYWRlclR5cGUsIEdDM0RlbnVtIHByZWNp
c2lvblR5cGUsIEdDM0RpbnQqIHJhbmdlLCBHQzNEaW50KiBwcmVjaXNpb24pCit7CisgICAgQVNT
RVJUKHJhbmdlKTsKKyAgICBBU1NFUlQocHJlY2lzaW9uKTsKKworICAgIG1ha2VDb250ZXh0Q3Vy
cmVudCgpOworICAgIDo6Z2xHZXRTaGFkZXJQcmVjaXNpb25Gb3JtYXQoc2hhZGVyVHlwZSwgcHJl
Y2lzaW9uVHlwZSwgcmFuZ2UsIHByZWNpc2lvbik7Cit9CisKIGJvb2wgR3JhcGhpY3NDb250ZXh0
M0Q6OnRleEltYWdlMkQoR0MzRGVudW0gdGFyZ2V0LCBHQzNEaW50IGxldmVsLCBHQzNEZW51bSBp
bnRlcm5hbGZvcm1hdCwgR0MzRHNpemVpIHdpZHRoLCBHQzNEc2l6ZWkgaGVpZ2h0LCBHQzNEaW50
IGJvcmRlciwgR0MzRGVudW0gZm9ybWF0LCBHQzNEZW51bSB0eXBlLCBjb25zdCB2b2lkKiBwaXhl
bHMpCiB7CiAgICAgaWYgKHdpZHRoICYmIGhlaWdodCAmJiAhcGl4ZWxzKSB7CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9HcmFwaGljc0NvbnRleHQzRFF0LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9HcmFwaGlj
c0NvbnRleHQzRFF0LmNwcAkocmV2aXNpb24gMTEzMDQ3KQorKysgU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvcXQvR3JhcGhpY3NDb250ZXh0M0RRdC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTEzNjAsNiArMTM2MCwzOSBAQCBTdHJpbmcgR3JhcGhpY3NDb250ZXh0M0Q6OmdldFNoYWRl
ckluZm9MCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAordm9pZCBHcmFwaGljc0NvbnRleHQzRDo6
Z2V0U2hhZGVyUHJlY2lzaW9uRm9ybWF0KEdDM0RlbnVtIHNoYWRlclR5cGUsIEdDM0RlbnVtIHBy
ZWNpc2lvblR5cGUsIEdDM0RpbnQqIHJhbmdlLCBHQzNEaW50KiBwcmVjaXNpb24pCit7CisgICAg
Ly8gRklYTUU6IHRoaXMgc2hvdWxkIGJlIHJldGFyZ2V0ZWQgYXQgdGhlIHJlYWwgZ2V0U2hhZGVy
UHJlY2lzaW9uRm9ybWF0KCkKKyAgICAvLyBjYWxsIG9uIHRydWUgRVMgMi4wIGhhcmR3YXJlLgor
ICAgIFVOVVNFRF9QQVJBTShzaGFkZXJUeXBlKTsKKyAgICBBU1NFUlQocmFuZ2UpOworICAgIEFT
U0VSVChwcmVjaXNpb24pOworCisgICAgbWFrZUNvbnRleHRDdXJyZW50KCk7CisKKyAgICAvLyBU
aGVzZSBjb25zdGFudHMgY2FtZSBmcm9tIHRoZSBDaHJvbWl1bSBwb3J0OyB3ZSBiZWxpZXZlIHRo
ZXkgb3JpZ2luYWxseQorICAgIC8vIGNhbWUgZnJvbSBtYWtpbmcgdGhlIGFjdHVhbCBBUEkgY2Fs
bCBvbiBhIHJlcHJlc2VudGF0aXZlIGRlc2t0b3Agc3lzdGVtLgorICAgIHN3aXRjaCAocHJlY2lz
aW9uVHlwZSkgeworICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkxPV19JTlQ6CisgICAgY2Fz
ZSBHcmFwaGljc0NvbnRleHQzRDo6TUVESVVNX0lOVDoKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4
dDNEOjpISUdIX0lOVDoKKyAgICAgICAgcmFuZ2VbMF0gPSAtMzE7CisgICAgICAgIHJhbmdlWzFd
ID0gMzE7CisgICAgICAgIHByZWNpc2lvblswXSA9IDA7CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgR3JhcGhpY3NDb250ZXh0M0Q6OkxPV19GTE9BVDoKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4
dDNEOjpNRURJVU1fRkxPQVQ6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6SElHSF9GTE9B
VDoKKyAgICAgICAgcmFuZ2VbMF0gPSAtNjI7CisgICAgICAgIHJhbmdlWzFdID0gNjI7CisgICAg
ICAgIHByZWNpc2lvblswXSA9IC0xNjsKKyAgICAgICAgYnJlYWs7CisgICAgZGVmYXVsdDoKKyAg
ICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIGJyZWFrOworICAgIH0KK30KKwog
U3RyaW5nIEdyYXBoaWNzQ29udGV4dDNEOjpnZXRTaGFkZXJTb3VyY2UoUGxhdGZvcm0zRE9iamVj
dCBzaGFkZXIpCiB7CiAgICAgbWFrZUNvbnRleHRDdXJyZW50KCk7CkluZGV4OiBTb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL0NoYW5nZUxvZwkocmV2aXNpb24gMTEzMDQ3KQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1
bS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNyBAQAorMjAxMi0wNC0wMiAg
WmhlbnlhbyBNbyAgPHptb0Bnb29nbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBXZWJHTFNo
YWRlclByZWNpc2lvbkZvcm1hdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NzU5MjUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIHNyYy9HcmFwaGljc0NvbnRleHQzRENocm9taXVtLmNwcDogQWRkIGdldFNo
YWRlclByZWNpc2lvbkZvcm1hdCgpLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogc3Jj
L0dyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZS5oOiBEaXR0by4KKyAgICAgICAgKEdyYXBoaWNzQ29u
dGV4dDNEUHJpdmF0ZSk6CisgICAgICAgICogdGVzdHMvRmFrZVdlYkdyYXBoaWNzQ29udGV4dDNE
Lmg6IERpdHRvLgorICAgICAgICAoRmFrZVdlYkdyYXBoaWNzQ29udGV4dDNEKToKKwogMjAxMi0w
NC0wMyAgTWFyayBQaWxncmltICA8cGlsZ3JpbUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgQ2Fs
bCBpbmNyZW1lbnRTdGF0c0NvdW50ZXIgZGlyZWN0bHkKSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL0dyYXBoaWNzQ29udGV4dDNEQ2hyb21pdW0uY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0dyYXBoaWNzQ29udGV4dDNEQ2hyb21pdW0uY3BwCShy
ZXZpc2lvbiAxMTMwNDcpCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9HcmFwaGljc0Nv
bnRleHQzRENocm9taXVtLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjEyLDYgKzYxMiw4IEBAIFN0
cmluZyBHcmFwaGljc0NvbnRleHQzRFByaXZhdGU6OmdldFNoYWQKICAgICByZXR1cm4gbV9pbXBs
LT5nZXRTaGFkZXJJbmZvTG9nKHNoYWRlcik7CiB9CiAKK0RFTEVHQVRFX1RPX0lNUExfNChnZXRT
aGFkZXJQcmVjaXNpb25Gb3JtYXQsIEdDM0RlbnVtLCBHQzNEZW51bSwgR0MzRGludCosIEdDM0Rp
bnQqKQorCiBTdHJpbmcgR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlOjpnZXRTaGFkZXJTb3VyY2Uo
UGxhdGZvcm0zRE9iamVjdCBzaGFkZXIpCiB7CiAgICAgcmV0dXJuIG1faW1wbC0+Z2V0U2hhZGVy
U291cmNlKHNoYWRlcik7CkBAIC0xMTU1LDYgKzExNTcsNyBAQCBERUxFR0FURV9UT19JTlRFUk5B
TF8xUihnZXRQcm9ncmFtSW5mb0xvCiBERUxFR0FURV9UT19JTlRFUk5BTF8zKGdldFJlbmRlcmJ1
ZmZlclBhcmFtZXRlcml2LCBHQzNEZW51bSwgR0MzRGVudW0sIEdDM0RpbnQqKQogREVMRUdBVEVf
VE9fSU5URVJOQUxfMyhnZXRTaGFkZXJpdiwgUGxhdGZvcm0zRE9iamVjdCwgR0MzRGVudW0sIEdD
M0RpbnQqKQogREVMRUdBVEVfVE9fSU5URVJOQUxfMVIoZ2V0U2hhZGVySW5mb0xvZywgUGxhdGZv
cm0zRE9iamVjdCwgU3RyaW5nKQorREVMRUdBVEVfVE9fSU5URVJOQUxfNChnZXRTaGFkZXJQcmVj
aXNpb25Gb3JtYXQsIEdDM0RlbnVtLCBHQzNEZW51bSwgR0MzRGludCosIEdDM0RpbnQqKQogREVM
RUdBVEVfVE9fSU5URVJOQUxfMVIoZ2V0U2hhZGVyU291cmNlLCBQbGF0Zm9ybTNET2JqZWN0LCBT
dHJpbmcpCiBERUxFR0FURV9UT19JTlRFUk5BTF8xUihnZXRTdHJpbmcsIEdDM0RlbnVtLCBTdHJp
bmcpCiBERUxFR0FURV9UT19JTlRFUk5BTF8zKGdldFRleFBhcmFtZXRlcmZ2LCBHQzNEZW51bSwg
R0MzRGVudW0sIEdDM0RmbG9hdCopCkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9H
cmFwaGljc0NvbnRleHQzRFByaXZhdGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9HcmFwaGljc0NvbnRleHQzRFByaXZhdGUuaAkocmV2aXNpb24gMTEzMDQ3KQor
KysgU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTE2NCw2ICsxNjQsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBnZXRS
ZW5kZXJidWZmZXJQYXJhbWV0ZXJpdihHQzNEZW51bSB0YXJnZXQsIEdDM0RlbnVtIHBuYW1lLCBH
QzNEaW50KiB2YWx1ZSk7CiAgICAgdm9pZCBnZXRTaGFkZXJpdihQbGF0Zm9ybTNET2JqZWN0LCBH
QzNEZW51bSBwbmFtZSwgR0MzRGludCogdmFsdWUpOwogICAgIFN0cmluZyBnZXRTaGFkZXJJbmZv
TG9nKFBsYXRmb3JtM0RPYmplY3QpOworICAgIHZvaWQgZ2V0U2hhZGVyUHJlY2lzaW9uRm9ybWF0
KEdDM0RlbnVtIHNoYWRlclR5cGUsIEdDM0RlbnVtIHByZWNpc2lvblR5cGUsIEdDM0RpbnQqIHJh
bmdlLCBHQzNEaW50KiBwcmVjaXNpb24pOwogCiAgICAgU3RyaW5nIGdldFNoYWRlclNvdXJjZShQ
bGF0Zm9ybTNET2JqZWN0KTsKICAgICBTdHJpbmcgZ2V0U3RyaW5nKEdDM0RlbnVtIG5hbWUpOwpJ
bmRleDogU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9GYWtlV2ViR3JhcGhpY3NDb250ZXh0
M0QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0Zha2VXZWJH
cmFwaGljc0NvbnRleHQzRC5oCShyZXZpc2lvbiAxMTMwNDcpCisrKyBTb3VyY2UvV2ViS2l0L2No
cm9taXVtL3Rlc3RzL0Zha2VXZWJHcmFwaGljc0NvbnRleHQzRC5oCSh3b3JraW5nIGNvcHkpCkBA
IC0xNTgsNyArMTU4LDcgQEAgcHVibGljOgogICAgIH0KIAogICAgIHZpcnR1YWwgV2ViU3RyaW5n
IGdldFNoYWRlckluZm9Mb2coV2ViR0xJZCBzaGFkZXIpIHsgcmV0dXJuIFdlYlN0cmluZygpOyB9
Ci0KKyAgICB2aXJ0dWFsIHZvaWQgZ2V0U2hhZGVyUHJlY2lzaW9uRm9ybWF0KFdHQzNEZW51bSBz
aGFkZXJ0eXBlLCBXR0MzRGVudW0gcHJlY2lzaW9udHlwZSwgV0dDM0RpbnQqIHJhbmdlLCBXR0Mz
RGludCogcHJlY2lzaW9uKSB7IH0KICAgICB2aXJ0dWFsIFdlYlN0cmluZyBnZXRTaGFkZXJTb3Vy
Y2UoV2ViR0xJZCBzaGFkZXIpIHsgcmV0dXJuIFdlYlN0cmluZygpOyB9CiAgICAgdmlydHVhbCBX
ZWJTdHJpbmcgZ2V0U3RyaW5nKFdHQzNEZW51bSBuYW1lKSB7IHJldHVybiBXZWJTdHJpbmcoKTsg
fQogICAgIHZpcnR1YWwgdm9pZCBnZXRUZXhQYXJhbWV0ZXJmdihXR0MzRGVudW0gdGFyZ2V0LCBX
R0MzRGVudW0gcG5hbWUsIFdHQzNEZmxvYXQqIHZhbHVlKSB7IH0KSW5kZXg6IExheW91dFRlc3Rz
L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9u
IDExMzA0NykKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDIxIEBACisyMDEyLTA0LTAyICBaaGVueWFvIE1vICA8em1vQGdvb2dsZS5jb20+CisKKyAg
ICAgICAgSW1wbGVtZW50IFdlYkdMU2hhZGVyUHJlY2lzaW9uRm9ybWF0CisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NTkyNQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZmFzdC9jYW52YXMvd2ViZ2wvaW5z
dGFuY2VvZi10ZXN0LWV4cGVjdGVkLnR4dDogQWRkIG5ldyBXZWJHTFNoYWRlclByZWNpc2lvbkZv
cm1hdCBmYWlsdXJlLgorICAgICAgICAqIGZhc3QvY2FudmFzL3dlYmdsL2luc3RhbmNlb2YtdGVz
dC5odG1sOgorICAgICAgICAqIGZhc3QvY2FudmFzL3dlYmdsL3NoYWRlci1wcmVjaXNpb24tZm9y
bWF0LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9jYW52YXMvd2ViZ2wvc2hh
ZGVyLXByZWNpc2lvbi1mb3JtYXQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vV2lu
ZG93L3NjcmlwdC10ZXN0cy93aW5kb3ctcHJvcGVydHktZGVzY3JpcHRvcnMuanM6IEFkZCBuZXcg
dHlwZSBXZWJHTFNoYWRlclByZWNpc2lvbkZvcm1hdC4KKyAgICAgICAgKiBmYXN0L2RvbS9XaW5k
b3cvd2luZG93LXByb3BlcnRpZXMuaHRtbDogRGl0dG8uCisgICAgICAgICogZmFzdC9kb20vc2Ny
aXB0LXRlc3RzL3Byb3RvdHlwZS1pbmhlcml0YW5jZS0yLmpzOiBEaXR0by4KKyAgICAgICAgKGNv
bnN0cnVjdG9yTmFtZXNGb3JXaW5kb3cpOgorICAgICAgICAqIGZhc3QvZG9tL3NjcmlwdC10ZXN0
cy9wcm90b3R5cGUtaW5oZXJpdGFuY2UuanM6IERpdHRvLgorICAgICAgICAqIGZhc3QvanMvc2Ny
aXB0LXRlc3RzL2dsb2JhbC1jb25zdHJ1Y3RvcnMuanM6IERpdHRvLgorCiAyMDEyLTA0LTAzICBU
b255IENoYW5nICA8dG9ueUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgTGF5b3V0VGVzdHMvLmdp
dGF0dHJpYnV0ZXMgY2xlYW51cApJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wv
aW5zdGFuY2VvZi10ZXN0LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9m
YXN0L2NhbnZhcy93ZWJnbC9pbnN0YW5jZW9mLXRlc3QtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAx
MTMwNDcpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9pbnN0YW5jZW9mLXRlc3Qt
ZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNyBAQAorV2ViR0wgaW5zdGFu
Y2VvZiB0ZXN0LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1Mi
IG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKIFRlc3RzIHRoYXQgaW5z
dGFuY2VvZiB3b3JrcyBvbiBXZWJHTCBvYmplY3RzLgogCiBQQVNTIGdsIGluc3RhbmNlb2YgV2Vi
R0xSZW5kZXJpbmdDb250ZXh0IGlzIHRydWUKQEAgLTIyLDYgKzI2LDcgQEAgUEFTUyBuZXcgV2Vi
R0xSZW5kZXJidWZmZXIgdGhyZXcgYW4gZXJybwogUEFTUyBuZXcgV2ViR0xTaGFkZXIgdGhyZXcg
YW4gZXJyb3IKIFBBU1MgbmV3IFdlYkdMVGV4dHVyZSB0aHJldyBhbiBlcnJvcgogUEFTUyBuZXcg
V2ViR0xVbmlmb3JtTG9jYXRpb24gdGhyZXcgYW4gZXJyb3IKK1BBU1MgbmV3IFdlYkdMU2hhZGVy
UHJlY2lzaW9uRm9ybWF0IHRocmV3IGFuIGVycm9yCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBp
cyB0cnVlCiAKIFRFU1QgQ09NUExFVEUKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dl
YmdsL2luc3RhbmNlb2YtdGVzdC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3Qv
Y2FudmFzL3dlYmdsL2luc3RhbmNlb2YtdGVzdC5odG1sCShyZXZpc2lvbiAxMTMwNDcpCisrKyBM
YXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9pbnN0YW5jZW9mLXRlc3QuaHRtbAkod29ya2lu
ZyBjb3B5KQpAQCAtMSw4OCArMSw4OSBAQAotPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0Mv
L0RURCBIVE1MIDQuMDEgVHJhbnNpdGlvbmFsLy9FTiINCi0gICJodHRwOi8vd3d3LnczLm9yZy9U
Ui9odG1sNC9sb29zZS5kdGQiPg0KLTxodG1sPg0KLTxoZWFkPg0KLTx0aXRsZT5XZWJHTCBpbnN0
YW5jZW9mIHRlc3QuPC90aXRsZT4NCi08c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pz
LXRlc3QtcHJlLmpzIj48L3NjcmlwdD4NCi08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3dlYmdsLXRl
c3QuanMiPiA8L3NjcmlwdD4NCi08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3dlYmdsLXRlc3QtdXRp
bHMuanMiPiA8L3NjcmlwdD4NCi08L2hlYWQ+DQotPGJvZHk+DQotPGNhbnZhcyBpZD0iY2FudmFz
IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBzdHlsZT0id2lkdGg6IDQwcHg7IGhlaWdodDogNDBweDsi
PjwvY2FudmFzPg0KLTxzY3JpcHQgaWQ9InZzaGFkZXIiIHR5cGU9Ingtc2hhZGVyL3gtdmVydGV4
Ij4NCi1hdHRyaWJ1dGUgdmVjNCB2UG9zaXRpb247DQotdmFyeWluZyB2ZWMyIHRleENvb3JkOw0K
LXZvaWQgbWFpbigpDQotew0KLSAgICBnbF9Qb3NpdGlvbiA9IHZQb3NpdGlvbjsNCi19DQotPC9z
Y3JpcHQ+DQotDQotPHNjcmlwdCBpZD0iZnNoYWRlciIgdHlwZT0ieC1zaGFkZXIveC1mcmFnbWVu
dCI+DQotI2lmZGVmIEdMX0VTDQotcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7DQotI2VuZGlmDQot
dW5pZm9ybSB2ZWM0IGNvbG9yOw0KLXZvaWQgbWFpbigpDQotew0KLSAgICBnbF9GcmFnQ29sb3Ig
PSBjb2xvcjsNCi19DQotPC9zY3JpcHQ+DQotPHNjcmlwdD4NCi12YXIgd3R1ID0gV2ViR0xUZXN0
VXRpbHM7DQotZGVidWcoIlRlc3RzIHRoYXQgaW5zdGFuY2VvZiB3b3JrcyBvbiBXZWJHTCBvYmpl
Y3RzLiIpOw0KLWRlYnVnKCIiKTsNCi12YXIgZ2wgPSBjcmVhdGUzRENvbnRleHQoZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoImNhbnZhcyIpKTsNCi1zaG91bGRCZVRydWUoJ2dsIGluc3RhbmNlb2Yg
V2ViR0xSZW5kZXJpbmdDb250ZXh0Jyk7DQotc2hvdWxkQmVUcnVlKCdnbC5jcmVhdGVCdWZmZXIo
KSBpbnN0YW5jZW9mIFdlYkdMQnVmZmVyJyk7DQotc2hvdWxkQmVUcnVlKCdnbC5jcmVhdGVGcmFt
ZWJ1ZmZlcigpIGluc3RhbmNlb2YgV2ViR0xGcmFtZWJ1ZmZlcicpOw0KLXNob3VsZEJlVHJ1ZSgn
Z2wuY3JlYXRlUHJvZ3JhbSgpIGluc3RhbmNlb2YgV2ViR0xQcm9ncmFtJyk7DQotc2hvdWxkQmVU
cnVlKCdnbC5jcmVhdGVSZW5kZXJidWZmZXIoKSBpbnN0YW5jZW9mIFdlYkdMUmVuZGVyYnVmZmVy
Jyk7DQotc2hvdWxkQmVUcnVlKCdnbC5jcmVhdGVTaGFkZXIoZ2wuVkVSVEVYX1NIQURFUikgaW5z
dGFuY2VvZiBXZWJHTFNoYWRlcicpOw0KLXNob3VsZEJlVHJ1ZSgnZ2wuY3JlYXRlVGV4dHVyZSgp
IGluc3RhbmNlb2YgV2ViR0xUZXh0dXJlJyk7DQotDQotdmFyIHByb2dyYW0gPSB3dHUuc2V0dXBQ
cm9ncmFtKA0KLSAgICBnbCwNCi0gICAgW3d0dS5sb2FkU2hhZGVyRnJvbVNjcmlwdChnbCwgJ3Zz
aGFkZXInLCBnbC5WRVJURVhfU0hBREVSKSwNCi0gICAgIHd0dS5sb2FkU2hhZGVyRnJvbVNjcmlw
dChnbCwgJ2ZzaGFkZXInLCBnbC5GUkFHTUVOVF9TSEFERVIpXSwNCi0gICAgWyd2UG9zaXRpb24n
XSwgWzBdKTsNCi0NCi1zaG91bGRCZVRydWUoJ2dsLmdldFVuaWZvcm1Mb2NhdGlvbihwcm9ncmFt
LCAiY29sb3IiKSBpbnN0YW5jZW9mIFdlYkdMVW5pZm9ybUxvY2F0aW9uJyk7DQotc2hvdWxkQmVU
cnVlKCdnbC5nZXRBY3RpdmVBdHRyaWIocHJvZ3JhbSwgMCkgaW5zdGFuY2VvZiBXZWJHTEFjdGl2
ZUluZm8nKTsNCi1zaG91bGRCZVRydWUoJ2dsLmdldEFjdGl2ZVVuaWZvcm0ocHJvZ3JhbSwgMCkg
aW5zdGFuY2VvZiBXZWJHTEFjdGl2ZUluZm8nKTsNCi0NCi1kZWJ1ZygiIik7DQotZGVidWcoIlRl
c3RzIHRoYXQgdGhvc2UgV2ViR0wgb2JqZWN0cyBjYW4gbm90IGJlIGNvbnN0cnVjdGVkIHRocm91
Z2ggbmV3IG9wZXJhdG9yIik7DQotZGVidWcoIiIpOw0KLQ0KLWZ1bmN0aW9uIHNob3VsZFRocm93
V2l0aE5ldyhvYmplY3RUeXBlLCBvYmplY3ROYW1lKQ0KLXsNCi0gICAgdHJ5IHsNCi0gICAgICAg
IG5ldyBvYmplY3RUeXBlOw0KLSAgICAgICAgdGVzdEZhaWxlZCgnbmV3ICcgKyBvYmplY3ROYW1l
ICsgJyBkaWQgbm90IHRocm93Jyk7DQotICAgIH0gY2F0Y2ggKGUpIHsNCi0gICAgICAgIHRlc3RQ
YXNzZWQoJ25ldyAnICsgb2JqZWN0TmFtZSArICcgdGhyZXcgYW4gZXJyb3InKTsNCi0gICAgfQ0K
LX0NCi0NCi1zaG91bGRUaHJvd1dpdGhOZXcoV2ViR0xSZW5kZXJpbmdDb250ZXh0LCAnV2ViR0xS
ZW5kZXJpbmdDb250ZXh0Jyk7DQotc2hvdWxkVGhyb3dXaXRoTmV3KFdlYkdMQWN0aXZlSW5mbywg
J1dlYkdMQWN0aXZlSW5mbycpOw0KLXNob3VsZFRocm93V2l0aE5ldyhXZWJHTEJ1ZmZlciwgJ1dl
YkdMQnVmZmVyJyk7DQotc2hvdWxkVGhyb3dXaXRoTmV3KFdlYkdMRnJhbWVidWZmZXIsICdXZWJH
TEZyYW1lYnVmZmVyJyk7DQotc2hvdWxkVGhyb3dXaXRoTmV3KFdlYkdMUHJvZ3JhbSwgJ1dlYkdM
UHJvZ3JhbScpOw0KLXNob3VsZFRocm93V2l0aE5ldyhXZWJHTFJlbmRlcmJ1ZmZlciwgJ1dlYkdM
UmVuZGVyYnVmZmVyJyk7DQotc2hvdWxkVGhyb3dXaXRoTmV3KFdlYkdMU2hhZGVyLCAnV2ViR0xT
aGFkZXInKTsNCi1zaG91bGRUaHJvd1dpdGhOZXcoV2ViR0xUZXh0dXJlLCAnV2ViR0xUZXh0dXJl
Jyk7DQotc2hvdWxkVGhyb3dXaXRoTmV3KFdlYkdMVW5pZm9ybUxvY2F0aW9uLCAnV2ViR0xVbmlm
b3JtTG9jYXRpb24nKTsNCi0NCi08L3NjcmlwdD4NCi08L2JvZHk+DQotPHNjcmlwdCBzcmM9Ii4u
Ly4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0Pg0KLQ0KLTxzY3JpcHQ+
DQotPC9zY3JpcHQ+DQotDQotPC9ib2R5Pg0KLTwvaHRtbD4NCi0NCi0NCisKKzwhRE9DVFlQRSBo
dG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5XZWJH
TCBpbnN0YW5jZW9mIHRlc3QuPC90aXRsZT4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0i
Li4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIi8+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJy
ZXNvdXJjZXMvd2ViZ2wtdGVzdC5qcyI+IDwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNl
cy93ZWJnbC10ZXN0LXV0aWxzLmpzIj4gPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxjYW52
YXMgaWQ9ImNhbnZhcyIgd2lkdGg9IjIiIGhlaWdodD0iMiIgc3R5bGU9IndpZHRoOiA0MHB4OyBo
ZWlnaHQ6IDQwcHg7Ij48L2NhbnZhcz4KKzxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KKzxk
aXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCBpZD0idnNoYWRlciIgdHlwZT0ieC1zaGFk
ZXIveC12ZXJ0ZXgiPgorYXR0cmlidXRlIHZlYzQgdlBvc2l0aW9uOwordmFyeWluZyB2ZWMyIHRl
eENvb3JkOwordm9pZCBtYWluKCkKK3sKKyAgICBnbF9Qb3NpdGlvbiA9IHZQb3NpdGlvbjsKK30K
Kzwvc2NyaXB0PgorCis8c2NyaXB0IGlkPSJmc2hhZGVyIiB0eXBlPSJ4LXNoYWRlci94LWZyYWdt
ZW50Ij4KK3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OwordW5pZm9ybSB2ZWM0IGNvbG9yOwordm9p
ZCBtYWluKCkKK3sKKyAgICBnbF9GcmFnQ29sb3IgPSBjb2xvcjsKK30KKzwvc2NyaXB0PgorPHNj
cmlwdD4KK3ZhciB3dHUgPSBXZWJHTFRlc3RVdGlsczsKK2Rlc2NyaXB0aW9uKGRvY3VtZW50LnRp
dGxlKTsKK2RlYnVnKCJUZXN0cyB0aGF0IGluc3RhbmNlb2Ygd29ya3Mgb24gV2ViR0wgb2JqZWN0
cy4iKTsKK2RlYnVnKCIiKTsKK3ZhciBnbCA9IGNyZWF0ZTNEQ29udGV4dChkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgiY2FudmFzIikpOworc2hvdWxkQmVUcnVlKCdnbCBpbnN0YW5jZW9mIFdlYkdM
UmVuZGVyaW5nQ29udGV4dCcpOworc2hvdWxkQmVUcnVlKCdnbC5jcmVhdGVCdWZmZXIoKSBpbnN0
YW5jZW9mIFdlYkdMQnVmZmVyJyk7CitzaG91bGRCZVRydWUoJ2dsLmNyZWF0ZUZyYW1lYnVmZmVy
KCkgaW5zdGFuY2VvZiBXZWJHTEZyYW1lYnVmZmVyJyk7CitzaG91bGRCZVRydWUoJ2dsLmNyZWF0
ZVByb2dyYW0oKSBpbnN0YW5jZW9mIFdlYkdMUHJvZ3JhbScpOworc2hvdWxkQmVUcnVlKCdnbC5j
cmVhdGVSZW5kZXJidWZmZXIoKSBpbnN0YW5jZW9mIFdlYkdMUmVuZGVyYnVmZmVyJyk7CitzaG91
bGRCZVRydWUoJ2dsLmNyZWF0ZVNoYWRlcihnbC5WRVJURVhfU0hBREVSKSBpbnN0YW5jZW9mIFdl
YkdMU2hhZGVyJyk7CitzaG91bGRCZVRydWUoJ2dsLmNyZWF0ZVRleHR1cmUoKSBpbnN0YW5jZW9m
IFdlYkdMVGV4dHVyZScpOworCit2YXIgcHJvZ3JhbSA9IHd0dS5zZXR1cFByb2dyYW0oCisgICAg
Z2wsCisgICAgW3d0dS5sb2FkU2hhZGVyRnJvbVNjcmlwdChnbCwgJ3ZzaGFkZXInLCBnbC5WRVJU
RVhfU0hBREVSKSwKKyAgICAgd3R1LmxvYWRTaGFkZXJGcm9tU2NyaXB0KGdsLCAnZnNoYWRlcics
IGdsLkZSQUdNRU5UX1NIQURFUildLAorICAgIFsndlBvc2l0aW9uJ10sIFswXSk7CisKK3Nob3Vs
ZEJlVHJ1ZSgnZ2wuZ2V0VW5pZm9ybUxvY2F0aW9uKHByb2dyYW0sICJjb2xvciIpIGluc3RhbmNl
b2YgV2ViR0xVbmlmb3JtTG9jYXRpb24nKTsKK3Nob3VsZEJlVHJ1ZSgnZ2wuZ2V0QWN0aXZlQXR0
cmliKHByb2dyYW0sIDApIGluc3RhbmNlb2YgV2ViR0xBY3RpdmVJbmZvJyk7CitzaG91bGRCZVRy
dWUoJ2dsLmdldEFjdGl2ZVVuaWZvcm0ocHJvZ3JhbSwgMCkgaW5zdGFuY2VvZiBXZWJHTEFjdGl2
ZUluZm8nKTsKKworZGVidWcoIiIpOworZGVidWcoIlRlc3RzIHRoYXQgdGhvc2UgV2ViR0wgb2Jq
ZWN0cyBjYW4gbm90IGJlIGNvbnN0cnVjdGVkIHRocm91Z2ggbmV3IG9wZXJhdG9yIik7CitkZWJ1
ZygiIik7CisKK2Z1bmN0aW9uIHNob3VsZFRocm93V2l0aE5ldyhvYmplY3RUeXBlLCBvYmplY3RO
YW1lKQoreworICAgIHRyeSB7CisgICAgICAgIG5ldyBvYmplY3RUeXBlOworICAgICAgICB0ZXN0
RmFpbGVkKCduZXcgJyArIG9iamVjdE5hbWUgKyAnIGRpZCBub3QgdGhyb3cnKTsKKyAgICB9IGNh
dGNoIChlKSB7CisgICAgICAgIHRlc3RQYXNzZWQoJ25ldyAnICsgb2JqZWN0TmFtZSArICcgdGhy
ZXcgYW4gZXJyb3InKTsKKyAgICB9Cit9CisKK3Nob3VsZFRocm93V2l0aE5ldyh3aW5kb3cuV2Vi
R0xSZW5kZXJpbmdDb250ZXh0LCAnV2ViR0xSZW5kZXJpbmdDb250ZXh0Jyk7CitzaG91bGRUaHJv
d1dpdGhOZXcod2luZG93LldlYkdMQWN0aXZlSW5mbywgJ1dlYkdMQWN0aXZlSW5mbycpOworc2hv
dWxkVGhyb3dXaXRoTmV3KHdpbmRvdy5XZWJHTEJ1ZmZlciwgJ1dlYkdMQnVmZmVyJyk7CitzaG91
bGRUaHJvd1dpdGhOZXcod2luZG93LldlYkdMRnJhbWVidWZmZXIsICdXZWJHTEZyYW1lYnVmZmVy
Jyk7CitzaG91bGRUaHJvd1dpdGhOZXcod2luZG93LldlYkdMUHJvZ3JhbSwgJ1dlYkdMUHJvZ3Jh
bScpOworc2hvdWxkVGhyb3dXaXRoTmV3KHdpbmRvdy5XZWJHTFJlbmRlcmJ1ZmZlciwgJ1dlYkdM
UmVuZGVyYnVmZmVyJyk7CitzaG91bGRUaHJvd1dpdGhOZXcod2luZG93LldlYkdMU2hhZGVyLCAn
V2ViR0xTaGFkZXInKTsKK3Nob3VsZFRocm93V2l0aE5ldyh3aW5kb3cuV2ViR0xUZXh0dXJlLCAn
V2ViR0xUZXh0dXJlJyk7CitzaG91bGRUaHJvd1dpdGhOZXcod2luZG93LldlYkdMVW5pZm9ybUxv
Y2F0aW9uLCAnV2ViR0xVbmlmb3JtTG9jYXRpb24nKTsKK3Nob3VsZFRocm93V2l0aE5ldyh3aW5k
b3cuV2ViR0xTaGFkZXJQcmVjaXNpb25Gb3JtYXQsICdXZWJHTFNoYWRlclByZWNpc2lvbkZvcm1h
dCcpOworCitzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CisKKzwvYm9k
eT4KKzwvaHRtbD4KKworCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9zaGFk
ZXItcHJlY2lzaW9uLWZvcm1hdC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvZmFzdC9jYW52YXMvd2ViZ2wvc2hhZGVyLXByZWNpc2lvbi1mb3JtYXQtZXhwZWN0ZWQudHh0
CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvc2hhZGVyLXBy
ZWNpc2lvbi1mb3JtYXQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDMyIEBA
CitXZWJHTCBzaGFkZXIgcHJlY2lzaW9uIGZvcm1hdCB0ZXN0LgorCitPbiBzdWNjZXNzLCB5b3Ug
d2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBD
T01QTEVURSIuCisKK1Rlc3RzIHRoYXQgV2ViR0xTaGFkZXJQcmVjaXNpb25Gb3JtYXQgY2xhc3Mg
YW5kIGdldFNoYWRlclByZWNpc2lvbkZvcm1hdCB3b3JrLgorCisKK1Rlc3QgdGhhdCBnZXRTaGFk
ZXJQcmVjaXNpb25Gb3JtYXQgcmV0dXJucyBhIFdlYkdMU2hhZGVyUHJlY2lzaW9uRm9ybWF0IG9i
amVjdC4KKworUEFTUyBnbC5nZXRTaGFkZXJQcmVjaXNpb25Gb3JtYXQoZ2wuVkVSVEVYX1NIQURF
UiwgZ2wuTE9XX0ZMT0FUKSBpbnN0YW5jZW9mIFdlYkdMU2hhZGVyUHJlY2lzaW9uRm9ybWF0IGlz
IHRydWUKK1BBU1MgZ2wuZ2V0U2hhZGVyUHJlY2lzaW9uRm9ybWF0KGdsLlZFUlRFWF9TSEFERVIs
IGdsLk1FRElVTV9GTE9BVCkgaW5zdGFuY2VvZiBXZWJHTFNoYWRlclByZWNpc2lvbkZvcm1hdCBp
cyB0cnVlCitQQVNTIGdsLmdldFNoYWRlclByZWNpc2lvbkZvcm1hdChnbC5WRVJURVhfU0hBREVS
LCBnbC5ISUdIX0ZMT0FUKSBpbnN0YW5jZW9mIFdlYkdMU2hhZGVyUHJlY2lzaW9uRm9ybWF0IGlz
IHRydWUKK1BBU1MgZ2wuZ2V0U2hhZGVyUHJlY2lzaW9uRm9ybWF0KGdsLlZFUlRFWF9TSEFERVIs
IGdsLkxPV19JTlQpIGluc3RhbmNlb2YgV2ViR0xTaGFkZXJQcmVjaXNpb25Gb3JtYXQgaXMgdHJ1
ZQorUEFTUyBnbC5nZXRTaGFkZXJQcmVjaXNpb25Gb3JtYXQoZ2wuVkVSVEVYX1NIQURFUiwgZ2wu
TUVESVVNX0lOVCkgaW5zdGFuY2VvZiBXZWJHTFNoYWRlclByZWNpc2lvbkZvcm1hdCBpcyB0cnVl
CitQQVNTIGdsLmdldFNoYWRlclByZWNpc2lvbkZvcm1hdChnbC5WRVJURVhfU0hBREVSLCBnbC5I
SUdIX0lOVCkgaW5zdGFuY2VvZiBXZWJHTFNoYWRlclByZWNpc2lvbkZvcm1hdCBpcyB0cnVlCitQ
QVNTIGdsLmdldFNoYWRlclByZWNpc2lvbkZvcm1hdChnbC5GUkFHTUVOVF9TSEFERVIsIGdsLkxP
V19GTE9BVCkgaW5zdGFuY2VvZiBXZWJHTFNoYWRlclByZWNpc2lvbkZvcm1hdCBpcyB0cnVlCitQ
QVNTIGdsLmdldFNoYWRlclByZWNpc2lvbkZvcm1hdChnbC5GUkFHTUVOVF9TSEFERVIsIGdsLk1F
RElVTV9GTE9BVCkgaW5zdGFuY2VvZiBXZWJHTFNoYWRlclByZWNpc2lvbkZvcm1hdCBpcyB0cnVl
CitQQVNTIGdsLmdldFNoYWRlclByZWNpc2lvbkZvcm1hdChnbC5GUkFHTUVOVF9TSEFERVIsIGds
LkhJR0hfRkxPQVQpIGluc3RhbmNlb2YgV2ViR0xTaGFkZXJQcmVjaXNpb25Gb3JtYXQgaXMgdHJ1
ZQorUEFTUyBnbC5nZXRTaGFkZXJQcmVjaXNpb25Gb3JtYXQoZ2wuRlJBR01FTlRfU0hBREVSLCBn
bC5MT1dfSU5UKSBpbnN0YW5jZW9mIFdlYkdMU2hhZGVyUHJlY2lzaW9uRm9ybWF0IGlzIHRydWUK
K1BBU1MgZ2wuZ2V0U2hhZGVyUHJlY2lzaW9uRm9ybWF0KGdsLkZSQUdNRU5UX1NIQURFUiwgZ2wu
TUVESVVNX0lOVCkgaW5zdGFuY2VvZiBXZWJHTFNoYWRlclByZWNpc2lvbkZvcm1hdCBpcyB0cnVl
CitQQVNTIGdsLmdldFNoYWRlclByZWNpc2lvbkZvcm1hdChnbC5GUkFHTUVOVF9TSEFERVIsIGds
LkhJR0hfSU5UKSBpbnN0YW5jZW9mIFdlYkdMU2hhZGVyUHJlY2lzaW9uRm9ybWF0IGlzIHRydWUK
KworVGVzdCB0aGF0IGdldFNoYWRlclByZWNpc2lvbkZvcm1hdCB0aHJvd3MgYW4gZXJyb3Igd2l0
aCBpbnZhbGlkIHBhcmFtZXRlcnMuCisKK1BBU1MgZ2wuZ2V0U2hhZGVyUHJlY2lzaW9uRm9ybWF0
KGdsLkhJR0hfSU5ULCBnbC5WRVJURVhfU0hBREVSKSBnZW5lcmF0ZWQgZXhwZWN0ZWQgR0wgZXJy
b3I6IElOVkFMSURfRU5VTS4KKworVGVzdCB0aGF0IGdldFNoYWRlclByZWNpc2lvbkZvcm1hdCBy
ZXR1cm5zIHRoZSBzYW1lIHRoaW5nIGV2ZXJ5IGNhbGwuCisKK1BBU1Mgc2hhZGVyUHJlY2lzaW9u
Rm9ybWF0LnJhbmdlTWluID09IHNoYWRlclByZWNpc2lvbkZvcm1hdDIucmFuZ2VNaW4gaXMgdHJ1
ZQorUEFTUyBzaGFkZXJQcmVjaXNpb25Gb3JtYXQucmFuZ2VNYXggPT0gc2hhZGVyUHJlY2lzaW9u
Rm9ybWF0Mi5yYW5nZU1heCBpcyB0cnVlCitQQVNTIHNoYWRlclByZWNpc2lvbkZvcm1hdC5wcmVj
aXNpb24gPT0gc2hhZGVyUHJlY2lzaW9uRm9ybWF0Mi5wcmVjaXNpb24gaXMgdHJ1ZQorCgpQcm9w
ZXJ0eSBjaGFuZ2VzIG9uOiBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9zaGFkZXItcHJl
Y2lzaW9uLWZvcm1hdC1leHBlY3RlZC50eHQKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpBZGRlZDogc3ZuOmVvbC1zdHls
ZQogICArIExGCgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvc2hhZGVyLXBy
ZWNpc2lvbi1mb3JtYXQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2NhbnZh
cy93ZWJnbC9zaGFkZXItcHJlY2lzaW9uLWZvcm1hdC5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5
b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvc2hhZGVyLXByZWNpc2lvbi1mb3JtYXQuaHRtbAko
cmV2aXNpb24gMCkKQEAgLTAsMCArMSw2NiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxo
ZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPldlYkdMIHNoYWRlciBwcmVjaXNp
b24gZm9ybWF0IHRlc3QuPC90aXRsZT4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4v
Li4vanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIi8+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
anMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNv
dXJjZXMvd2ViZ2wtdGVzdC5qcyI+IDwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy93
ZWJnbC10ZXN0LXV0aWxzLmpzIj4gPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxjYW52YXMg
aWQ9ImNhbnZhcyIgd2lkdGg9IjIiIGhlaWdodD0iMiIgc3R5bGU9IndpZHRoOiA0MHB4OyBoZWln
aHQ6IDQwcHg7Ij48L2NhbnZhcz4KKzxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KKzxkaXYg
aWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KK3ZhciB3dHUgPSBXZWJHTFRlc3RVdGlsczsK
K2Rlc2NyaXB0aW9uKGRvY3VtZW50LnRpdGxlKTsKK2RlYnVnKCJUZXN0cyB0aGF0IFdlYkdMU2hh
ZGVyUHJlY2lzaW9uRm9ybWF0IGNsYXNzIGFuZCBnZXRTaGFkZXJQcmVjaXNpb25Gb3JtYXQgd29y
ay4iKTsKK2RlYnVnKCIiKTsKK3ZhciBnbCA9IGNyZWF0ZTNEQ29udGV4dChkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgiY2FudmFzIikpOworCitmdW5jdGlvbiB2ZXJpZnlTaGFkZXJQcmVjaXNpb25G
b3JtYXQoc2hhZGVydHlwZSwgcHJlY2lzaW9udHlwZSkgeworICAgIHNob3VsZEJlVHJ1ZSgnZ2wu
Z2V0U2hhZGVyUHJlY2lzaW9uRm9ybWF0KCcgKyBzaGFkZXJ0eXBlICsgJywgJyArCisgICAgICAg
ICAgICAgICAgIHByZWNpc2lvbnR5cGUgKyAnKSBpbnN0YW5jZW9mIFdlYkdMU2hhZGVyUHJlY2lz
aW9uRm9ybWF0Jyk7Cit9CisKK2RlYnVnKCIiKTsKK2RlYnVnKCJUZXN0IHRoYXQgZ2V0U2hhZGVy
UHJlY2lzaW9uRm9ybWF0IHJldHVybnMgYSBXZWJHTFNoYWRlclByZWNpc2lvbkZvcm1hdCBvYmpl
Y3QuIik7CitkZWJ1ZygiIik7CisKK3ZlcmlmeVNoYWRlclByZWNpc2lvbkZvcm1hdCgnZ2wuVkVS
VEVYX1NIQURFUicsICdnbC5MT1dfRkxPQVQnKTsKK3ZlcmlmeVNoYWRlclByZWNpc2lvbkZvcm1h
dCgnZ2wuVkVSVEVYX1NIQURFUicsICdnbC5NRURJVU1fRkxPQVQnKTsKK3ZlcmlmeVNoYWRlclBy
ZWNpc2lvbkZvcm1hdCgnZ2wuVkVSVEVYX1NIQURFUicsICdnbC5ISUdIX0ZMT0FUJyk7Cit2ZXJp
ZnlTaGFkZXJQcmVjaXNpb25Gb3JtYXQoJ2dsLlZFUlRFWF9TSEFERVInLCAnZ2wuTE9XX0lOVCcp
OwordmVyaWZ5U2hhZGVyUHJlY2lzaW9uRm9ybWF0KCdnbC5WRVJURVhfU0hBREVSJywgJ2dsLk1F
RElVTV9JTlQnKTsKK3ZlcmlmeVNoYWRlclByZWNpc2lvbkZvcm1hdCgnZ2wuVkVSVEVYX1NIQURF
UicsICdnbC5ISUdIX0lOVCcpOwordmVyaWZ5U2hhZGVyUHJlY2lzaW9uRm9ybWF0KCdnbC5GUkFH
TUVOVF9TSEFERVInLCAnZ2wuTE9XX0ZMT0FUJyk7Cit2ZXJpZnlTaGFkZXJQcmVjaXNpb25Gb3Jt
YXQoJ2dsLkZSQUdNRU5UX1NIQURFUicsICdnbC5NRURJVU1fRkxPQVQnKTsKK3ZlcmlmeVNoYWRl
clByZWNpc2lvbkZvcm1hdCgnZ2wuRlJBR01FTlRfU0hBREVSJywgJ2dsLkhJR0hfRkxPQVQnKTsK
K3ZlcmlmeVNoYWRlclByZWNpc2lvbkZvcm1hdCgnZ2wuRlJBR01FTlRfU0hBREVSJywgJ2dsLkxP
V19JTlQnKTsKK3ZlcmlmeVNoYWRlclByZWNpc2lvbkZvcm1hdCgnZ2wuRlJBR01FTlRfU0hBREVS
JywgJ2dsLk1FRElVTV9JTlQnKTsKK3ZlcmlmeVNoYWRlclByZWNpc2lvbkZvcm1hdCgnZ2wuRlJB
R01FTlRfU0hBREVSJywgJ2dsLkhJR0hfSU5UJyk7CisKK2RlYnVnKCIiKTsKK2RlYnVnKCJUZXN0
IHRoYXQgZ2V0U2hhZGVyUHJlY2lzaW9uRm9ybWF0IHRocm93cyBhbiBlcnJvciB3aXRoIGludmFs
aWQgcGFyYW1ldGVycy4iKTsKK2RlYnVnKCIiKTsKKworc2hvdWxkR2VuZXJhdGVHTEVycm9yKGds
LCBnbC5JTlZBTElEX0VOVU0sICdnbC5nZXRTaGFkZXJQcmVjaXNpb25Gb3JtYXQoZ2wuSElHSF9J
TlQsIGdsLlZFUlRFWF9TSEFERVIpJyk7CisKK2RlYnVnKCIiKTsKK2RlYnVnKCJUZXN0IHRoYXQg
Z2V0U2hhZGVyUHJlY2lzaW9uRm9ybWF0IHJldHVybnMgdGhlIHNhbWUgdGhpbmcgZXZlcnkgY2Fs
bC4iKTsKK2RlYnVnKCIiKTsKKwordmFyIHNoYWRlclByZWNpc2lvbkZvcm1hdCA9IGdsLmdldFNo
YWRlclByZWNpc2lvbkZvcm1hdChnbC5WRVJURVhfU0hBREVSLCBnbC5MT1dfRkxPQVQpOwordmFy
IHNoYWRlclByZWNpc2lvbkZvcm1hdDIgPSBnbC5nZXRTaGFkZXJQcmVjaXNpb25Gb3JtYXQoZ2wu
VkVSVEVYX1NIQURFUiwgZ2wuTE9XX0ZMT0FUKTsKK3Nob3VsZEJlVHJ1ZSgnc2hhZGVyUHJlY2lz
aW9uRm9ybWF0LnJhbmdlTWluID09IHNoYWRlclByZWNpc2lvbkZvcm1hdDIucmFuZ2VNaW4nKTsK
K3Nob3VsZEJlVHJ1ZSgnc2hhZGVyUHJlY2lzaW9uRm9ybWF0LnJhbmdlTWF4ID09IHNoYWRlclBy
ZWNpc2lvbkZvcm1hdDIucmFuZ2VNYXgnKTsKK3Nob3VsZEJlVHJ1ZSgnc2hhZGVyUHJlY2lzaW9u
Rm9ybWF0LnByZWNpc2lvbiA9PSBzaGFkZXJQcmVjaXNpb25Gb3JtYXQyLnByZWNpc2lvbicpOwor
CitmaW5pc2hUZXN0KCk7Cis8L3NjcmlwdD4KKworPC9ib2R5PgorPC9odG1sPgorCisKClByb3Bl
cnR5IGNoYW5nZXMgb246IExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL3NoYWRlci1wcmVj
aXNpb24tZm9ybWF0Lmh0bWwKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fXwpBZGRlZDogc3ZuOmVvbC1zdHlsZQogICArIExG
CgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0aWVzLmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9w
ZXJ0aWVzLmh0bWwJKHJldmlzaW9uIDExMzA0NykKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL1dp
bmRvdy93aW5kb3ctcHJvcGVydGllcy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC04OCw2ICs4OCw3
IEBAIHZhciBfX3NraXBfXyA9IHsKICAgICAid2luZG93LldlYkdMUmVuZGVyYnVmZmVyIiA6IDEs
IAogICAgICJ3aW5kb3cuV2ViR0xSZW5kZXJpbmdDb250ZXh0IiA6IDEsIAogICAgICJ3aW5kb3cu
V2ViR0xTaGFkZXIiIDogMSwgCisgICAgIndpbmRvdy5XZWJHTFNoYWRlclByZWNpc2lvbkZvcm1h
dCIgOiAxLCAKICAgICAid2luZG93LldlYkdMVGV4dHVyZSIgOiAxLCAKICAgICAid2luZG93Lldl
YkdMVW5pZm9ybUxvY2F0aW9uIiA6IDEsIAogICAgICJ3aW5kb3cuV2ViS2l0QmxvYkJ1aWxkZXIi
IDogMSwKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9zY3JpcHQtdGVzdHMvd2lu
ZG93LXByb3BlcnR5LWRlc2NyaXB0b3JzLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zh
c3QvZG9tL1dpbmRvdy9zY3JpcHQtdGVzdHMvd2luZG93LXByb3BlcnR5LWRlc2NyaXB0b3JzLmpz
CShyZXZpc2lvbiAxMTMwNDcpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvc2NyaXB0
LXRlc3RzL3dpbmRvdy1wcm9wZXJ0eS1kZXNjcmlwdG9ycy5qcwkod29ya2luZyBjb3B5KQpAQCAt
NDQsNiArNDQsNyBAQCB2YXIgX19za2lwX18gPSB7CiAgICAgIldlYkdMUmVuZGVyYnVmZmVyIiA6
IDEsCiAgICAgIldlYkdMUmVuZGVyaW5nQ29udGV4dCIgOiAxLAogICAgICJXZWJHTFNoYWRlciIg
OiAxLAorICAgICJXZWJHTFNoYWRlclByZWNpc2lvbkZvcm1hdCIgOiAxLAogICAgICJXZWJHTFRl
eHR1cmUiIDogMSwKICAgICAiV2ViR0xVbmlmb3JtTG9jYXRpb24iIDogMSwKICAgICAiV2ViS2l0
QmxvYkJ1aWxkZXIiIDogMSwKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NjcmlwdC10ZXN0
cy9wcm90b3R5cGUtaW5oZXJpdGFuY2UtMi5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9m
YXN0L2RvbS9zY3JpcHQtdGVzdHMvcHJvdG90eXBlLWluaGVyaXRhbmNlLTIuanMJKHJldmlzaW9u
IDExMzA0NykKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NjcmlwdC10ZXN0cy9wcm90b3R5cGUt
aW5oZXJpdGFuY2UtMi5qcwkod29ya2luZyBjb3B5KQpAQCAtODAsNiArODAsNyBAQCBmdW5jdGlv
biBjb25zdHJ1Y3Rvck5hbWVzRm9yV2luZG93KGdsb2JhCiAgICAgICAgICAgICB0eXBlID09ICJX
ZWJHTFByb2dyYW1Db25zdHJ1Y3RvciIgfHwKICAgICAgICAgICAgIHR5cGUgPT0gIldlYkdMUmVu
ZGVyYnVmZmVyQ29uc3RydWN0b3IiIHx8CiAgICAgICAgICAgICB0eXBlID09ICJXZWJHTFNoYWRl
ckNvbnN0cnVjdG9yIiB8fAorICAgICAgICAgICAgdHlwZSA9PSAiV2ViR0xTaGFkZXJQcmVjaXNp
b25Gb3JtYXRDb25zdHJ1Y3RvciIgfHwKICAgICAgICAgICAgIHR5cGUgPT0gIldlYkdMVGV4dHVy
ZUNvbnN0cnVjdG9yIiB8fAogICAgICAgICAgICAgdHlwZSA9PSAiV2ViR0xVbmlmb3JtTG9jYXRp
b25Db25zdHJ1Y3RvciIgfHwKICAgICAgICAgICAgIHR5cGUgPT0gIkFycmF5QnVmZmVyQ29uc3Ry
dWN0b3IiIHx8CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zY3JpcHQtdGVzdHMvcHJvdG90
eXBlLWluaGVyaXRhbmNlLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3Nj
cmlwdC10ZXN0cy9wcm90b3R5cGUtaW5oZXJpdGFuY2UuanMJKHJldmlzaW9uIDExMzA0NykKKysr
IExheW91dFRlc3RzL2Zhc3QvZG9tL3NjcmlwdC10ZXN0cy9wcm90b3R5cGUtaW5oZXJpdGFuY2Uu
anMJKHdvcmtpbmcgY29weSkKQEAgLTE4LDcgKzE4LDcgQEAgdmFyIHNraXBwZWRQcm9wZXJ0aWVz
ID0gWwogICAgICJ3ZWJraXROb3RpZmljYXRpb25zIiwKICAgICAid2Via2l0QXVkaW9QYW5uZXJO
b2RlIiwKICAgICAicGVyZm9ybWFuY2UiLAotICAgICJXZWJHTFJlbmRlcmluZ0NvbnRleHQiLCAi
V2ViR0xBY3RpdmVJbmZvIiwgIldlYkdMQnVmZmVyIiwgIldlYkdMRnJhbWVidWZmZXIiLCAiV2Vi
R0xQcm9ncmFtIiwgIldlYkdMUmVuZGVyYnVmZmVyIiwgIldlYkdMU2hhZGVyIiwgIldlYkdMVGV4
dHVyZSIsICJXZWJHTFVuaWZvcm1Mb2NhdGlvbiIsCisgICAgIldlYkdMUmVuZGVyaW5nQ29udGV4
dCIsICJXZWJHTEFjdGl2ZUluZm8iLCAiV2ViR0xCdWZmZXIiLCAiV2ViR0xGcmFtZWJ1ZmZlciIs
ICJXZWJHTFByb2dyYW0iLCAiV2ViR0xSZW5kZXJidWZmZXIiLCAiV2ViR0xTaGFkZXIiLCAiV2Vi
R0xTaGFkZXJQcmVjaXNpb25Gb3JtYXQiLCAiV2ViR0xUZXh0dXJlIiwgIldlYkdMVW5pZm9ybUxv
Y2F0aW9uIiwKICAgICAiQXJyYXlCdWZmZXIiLAogICAgICJEYXRhVmlldyIsICJJbnQ4QXJyYXki
LCAiVWludDhBcnJheSIsICJJbnQxNkFycmF5IiwgIlVpbnQxNkFycmF5IiwgIkludDMyQXJyYXki
LCAiVWludDMyQXJyYXkiLCAiRmxvYXQzMkFycmF5IiwgIkZsb2F0NjRBcnJheSIsCiAgICAgIkZp
bGVFcnJvciIsICJGaWxlUmVhZGVyIiwgIldlYktpdEJsb2JCdWlsZGVyIiwgIndlYmtpdFJlcXVl
c3RGaWxlU3lzdGVtIiwKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvanMvc2NyaXB0LXRlc3RzL2ds
b2JhbC1jb25zdHJ1Y3RvcnMuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9qcy9z
Y3JpcHQtdGVzdHMvZ2xvYmFsLWNvbnN0cnVjdG9ycy5qcwkocmV2aXNpb24gMTEzMDQ3KQorKysg
TGF5b3V0VGVzdHMvZmFzdC9qcy9zY3JpcHQtdGVzdHMvZ2xvYmFsLWNvbnN0cnVjdG9ycy5qcwko
d29ya2luZyBjb3B5KQpAQCAtMjQsNiArMjQsNyBAQCBmb3IgKHZhciB4IGluIGNvbnN0cnVjdG9y
TmFtZXMpIHsKICAgICAgICAgbmFtZSA9PSAiV2ViR0xQcm9ncmFtIiB8fAogICAgICAgICBuYW1l
ID09ICJXZWJHTFJlbmRlcmJ1ZmZlciIgfHwKICAgICAgICAgbmFtZSA9PSAiV2ViR0xTaGFkZXIi
IHx8CisgICAgICAgIG5hbWUgPT0gIldlYkdMU2hhZGVyUHJlY2lzaW9uRm9ybWF0IiB8fAogICAg
ICAgICBuYW1lID09ICJXZWJHTFRleHR1cmUiIHx8CiAgICAgICAgIG5hbWUgPT0gIldlYkdMVW5p
Zm9ybUxvY2F0aW9uIiB8fAogICAgICAgICBuYW1lID09ICJBcnJheUJ1ZmZlciIgfHwK
</data>
<flag name="review"
          id="139875"
          type_id="1"
          status="+"
          setter="kbr"
    />
    <flag name="commit-queue"
          id="139879"
          type_id="3"
          status="-"
          setter="pnormand"
    />
          </attachment>
      

    </bug>

</bugzilla>