<?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>110936</bug_id>
          
          <creation_ts>2013-02-26 19:18:08 -0800</creation_ts>
          <short_desc>[WebGL] Support for texImage2D of type HALF_FLOAT_OES</short_desc>
          <delta_ts>2013-12-10 13:35:38 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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>
          
          <blocked>109853</blocked>
    
    <blocked>125541</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Nayan Kumar K">nayankk</reporter>
          <assigned_to name="Dean Jackson">dino</assigned_to>
          <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dino</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>feature-media-reviews</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jer.noble</cc>
    
    <cc>kbr</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>nayankk</cc>
    
    <cc>nayankk</cc>
    
    <cc>noam</cc>
    
    <cc>ojan.autocc</cc>
    
    <cc>roger_fong</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>842611</commentid>
    <comment_count>0</comment_count>
    <who name="Nayan Kumar K">nayankk</who>
    <bug_when>2013-02-26 19:18:08 -0800</bug_when>
    <thetext>As per OES_texture_half_float specification (http://www.khronos.org/registry/webgl/extensions/OES_texture_half_float/), texImage2D and texSubImage2D entry points taking ImageData should be extended to accept the pixel type HALF_FLOAT_OES. Subsequent patch(es) will add support for HTMLImageElement, HTMLCanvasElement and HTMLVideoElement.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>842639</commentid>
    <comment_count>1</comment_count>
      <attachid>190430</attachid>
    <who name="Nayan Kumar K">nayankk</who>
    <bug_when>2013-02-26 20:21:46 -0800</bug_when>
    <thetext>Created attachment 190430
WIP patch

Attached is the WIP patch to implement support for half floating point textures with ImageData. Basic idea is to convert the unsigned int data to float data (using unpack routine) and then convert it to half float point. 

Also test case is added to WebGL conformance test  https://github.com/nayankk/WebGL/commit/5479e4d707fed3c6ef545ad8e7377239487af785</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>845612</commentid>
    <comment_count>2</comment_count>
    <who name="Nayan Kumar K">nayankk</who>
    <bug_when>2013-03-01 16:39:48 -0800</bug_when>
    <thetext>*** Bug 111194 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>845614</commentid>
    <comment_count>3</comment_count>
    <who name="Nayan Kumar K">nayankk</who>
    <bug_when>2013-03-01 16:40:03 -0800</bug_when>
    <thetext>*** Bug 111196 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>845616</commentid>
    <comment_count>4</comment_count>
    <who name="Nayan Kumar K">nayankk</who>
    <bug_when>2013-03-01 16:40:13 -0800</bug_when>
    <thetext>*** Bug 111197 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>857742</commentid>
    <comment_count>5</comment_count>
      <attachid>190430</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2013-03-18 17:01:45 -0700</bug_when>
    <thetext>Comment on attachment 190430
WIP patch

@nayankk: are you planning to move this patch forward?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>862939</commentid>
    <comment_count>6</comment_count>
    <who name="Nayan Kumar K">nayankk</who>
    <bug_when>2013-03-25 11:29:04 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 190430 [details])
&gt; @nayankk: are you planning to move this patch forward?

Sorry for the delay, I will be submitting a patch for review soon.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>864897</commentid>
    <comment_count>7</comment_count>
      <attachid>195407</attachid>
    <who name="Nayan Kumar K">nayankk</who>
    <bug_when>2013-03-27 15:06:07 -0700</bug_when>
    <thetext>Created attachment 195407
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>865158</commentid>
    <comment_count>8</comment_count>
      <attachid>195479</attachid>
    <who name="Nayan Kumar K">nayankk</who>
    <bug_when>2013-03-27 21:59:33 -0700</bug_when>
    <thetext>Created attachment 195479
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>868979</commentid>
    <comment_count>9</comment_count>
      <attachid>195479</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2013-04-03 18:04:19 -0700</bug_when>
    <thetext>Comment on attachment 195479
Patch

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

Given today&apos;s announcement regarding the Chromium project, I&apos;m not sure I should review this patch; dino should. However, I&apos;m positive that this patch isn&apos;t correct as written, so setting r- to make that clear. (It&apos;s good work so far, but needs to be made robust. Negative tests are also necessary given the incomplete state.)

&gt; Source/WebCore/html/canvas/WebGLRenderingContext.cpp:-3753
&gt; -

The rest of this patch only has incomplete support for HALF_FLOAT_OES packing and unpacking. If you are going to remove this check, then you need to modify validateTexFuncFormatAndType so that it only supports the combination of RGBA/HALF_FLOAT_OES when dealing with non-ArrayBufferView sources, and generates INVALID_OPERATION otherwise.

&gt; Source/WebCore/platform/graphics/GraphicsContext3D.cpp:141
&gt; +            ASSERT_NOT_REACHED();

This is missing support for the other formats like RGB, ALPHA, LUMINANCE, and LUMINANCE_ALPHA.

&gt; Source/WebCore/platform/graphics/GraphicsContext3D.cpp:1083
&gt; +}

This is missing support for the other formats like RGB, ALPHA, LUMINANCE, and LUMINANCE_ALPHA.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>955233</commentid>
    <comment_count>10</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2013-12-01 21:27:25 -0800</bug_when>
    <thetext>&lt;rdar://problem/15563029&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>956252</commentid>
    <comment_count>11</comment_count>
      <attachid>218374</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2013-12-03 19:18:24 -0800</bug_when>
    <thetext>Created attachment 218374
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>956443</commentid>
    <comment_count>12</comment_count>
      <attachid>218374</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2013-12-04 10:43:51 -0800</bug_when>
    <thetext>Comment on attachment 218374
Patch

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

&gt; Source/WebCore/platform/graphics/GraphicsContext3D.cpp:1450
&gt; +    static const int Value = (IsFloatFormat&lt;Format&gt;::Value || IsHalfFloatFormat&lt;Format&gt;::Value) ? GraphicsContext3D::DataFormatRGBA32F : GraphicsContext3D::DataFormatRGBA8;

Is this right? HalfFloatFormats should use DataFormatRGBA32F, not DataFormatRGBA16f? (I have no idea what this is!)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>956476</commentid>
    <comment_count>13</comment_count>
      <attachid>218374</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2013-12-04 11:23:04 -0800</bug_when>
    <thetext>Comment on attachment 218374
Patch

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

&gt; Source/WebCore/platform/graphics/GraphicsContext3D.cpp:1220
&gt; +        destination[3] = convertFloatToHalfFloat(source[3]);

This pattern is repeated a bunch of times. I wonder if this could be a template, too?

&gt;&gt; Source/WebCore/platform/graphics/GraphicsContext3D.cpp:1450
&gt;&gt; +    static const int Value = (IsFloatFormat&lt;Format&gt;::Value || IsHalfFloatFormat&lt;Format&gt;::Value) ? GraphicsContext3D::DataFormatRGBA32F : GraphicsContext3D::DataFormatRGBA8;
&gt; 
&gt; Is this right? HalfFloatFormats should use DataFormatRGBA32F, not DataFormatRGBA16f? (I have no idea what this is!)

Might need a three-step check!

    static const int Value = IsFloatFormat&lt;Format&gt;::Value? GraphicsContext3D::DataFormatRGBA32F : (IsHalfFloatFormat&lt;Format&gt;::Value ? GraphicsContext3D::DataFormatRGBA16F : GraphicsContext3D::DataFormatRGBA8);

&gt; LayoutTests/fast/canvas/webgl/oes-texture-half-float-expected.txt:25
&gt; +PASS getError was expected value: INVALID_ENUM : Half floating point texture must be disallowed if OES_texture_half_float isn&apos;t enabled

Good catch!

&gt; LayoutTests/fast/canvas/webgl/oes-texture-half-float.html:94
&gt; +    if (!(ext = gl.getExtension(&quot;OES_texture_half_float&quot;))) {

Personal preference: I think assigning inside the conditional is a bit obfuscated-c-contest-y.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>956479</commentid>
    <comment_count>14</comment_count>
      <attachid>218374</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2013-12-04 11:26:05 -0800</bug_when>
    <thetext>Comment on attachment 218374
Patch

Dino has confirmed that intermediates always pass through the 32-bit path, so this patch is great as-is.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>956489</commentid>
    <comment_count>15</comment_count>
      <attachid>218374</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2013-12-04 11:35:23 -0800</bug_when>
    <thetext>Comment on attachment 218374
Patch

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

&gt;&gt; Source/WebCore/platform/graphics/GraphicsContext3D.cpp:1220
&gt;&gt; +        destination[3] = convertFloatToHalfFloat(source[3]);
&gt; 
&gt; This pattern is repeated a bunch of times. I wonder if this could be a template, too?

Good point.

&gt;&gt; LayoutTests/fast/canvas/webgl/oes-texture-half-float.html:94
&gt;&gt; +    if (!(ext = gl.getExtension(&quot;OES_texture_half_float&quot;))) {
&gt; 
&gt; Personal preference: I think assigning inside the conditional is a bit obfuscated-c-contest-y.

Me too, but this test comes from Khronos, and eventually we&apos;ll replace it with the direct version from there, so I&apos;m not too concerned with the style for the moment. (Of course, it&apos;s still an ugly style in the official test! :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>956552</commentid>
    <comment_count>16</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2013-12-04 13:19:55 -0800</bug_when>
    <thetext>(In reply to comment #15)
&gt; (From update of attachment 218374 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=218374&amp;action=review
&gt; 
&gt; &gt;&gt; Source/WebCore/platform/graphics/GraphicsContext3D.cpp:1220
&gt; &gt;&gt; +        destination[3] = convertFloatToHalfFloat(source[3]);
&gt; &gt; 
&gt; &gt; This pattern is repeated a bunch of times. I wonder if this could be a template, too?
&gt; 
&gt; Good point.

Actually, it&apos;s slightly different in enough places that it didn&apos;t really reduce much source code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>956556</commentid>
    <comment_count>17</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2013-12-04 13:23:35 -0800</bug_when>
    <thetext>Committed r160119: &lt;http://trac.webkit.org/changeset/160119&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>190430</attachid>
            <date>2013-02-26 20:21:46 -0800</date>
            <delta_ts>2013-03-27 15:06:04 -0700</delta_ts>
            <desc>WIP patch</desc>
            <filename>half_float_with_image_data.diff</filename>
            <type>text/plain</type>
            <size>12213</size>
            <attacher name="Nayan Kumar K">nayankk</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAwNDcwNTNiLi4wNGFlYmRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkg
QEAKKzIwMTMtMDItMjYgIE5heWFuIEt1bWFyIEsgIDxuYXlhbmtrQG1vdG9yb2xhLmNvbT4KKwor
ICAgICAgICBbV2ViR0xdIFN1cHBvcnQgZm9yIHRleEltYWdlMkQgb2YgdHlwZSBIQUxGX0ZMT0FU
X09FUyB3aXRoIEltYWdlRGF0YQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTEwOTM2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6Y29tcHV0ZUZvcm1hdEFuZFR5cGVQ
YXJhbWV0ZXJzKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL0dyYXBoaWNzQ29udGV4dDNELmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3Jh
cGhpY3NUeXBlczNELmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBo
aWNzQ29udGV4dDNET3BlbkdMQ29tbW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNz
Q29udGV4dDNEOjp0ZXhTdWJJbWFnZTJEKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29u
dGV4dDNEOjp0ZXhJbWFnZTJERGlyZWN0KToKKwogMjAxMy0wMi0yNSAgSmVyIE5vYmxlICA8amVy
Lm5vYmxlQGFwcGxlLmNvbT4KIAogICAgICAgICBBVkZvdW5kYXRpb24uZnJhbWV3b3JrIGFuZCBR
VEtpdC5mcmFtZXdvcmsgYXJlIGxhenktbG9hZGVkIG9uIGV2ZXJ5IFdlYlByb2Nlc3MgbGF1bmNo
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0Nv
bnRleHQzRC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0Nv
bnRleHQzRC5jcHAKaW5kZXggNTlkYWQyNi4uM2FiNDNmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0QuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmNwcApAQCAtNDcs
NiArNDcsMzggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBuYW1lc3BhY2UgewogCisvLyBDb252
ZXJ0aW9uIGZyb20gZmxvYXRpbmcgcG9pbnQgdG8gaGFsZiBmbG9hdGluZyBwb2ludC4KKy8vIFRh
a2VuIGZyb20gT3BlbkdMIEVTIDIuMCBQcm9ncmFtbWluZyBHdWlkZSAtIEFwcGVuZGl4IEEuCitH
QzNEaGFsZmZsb2F0IGNvbnZlcnRUb0hhbGZGbG9hdChjb25zdCBHQzNEZmxvYXQqIGYpCit7Cisg
ICAgY29uc3QgR0MzRHVpbnQgSEFMRl9GTE9BVF9NSU5fQklBU0VEX0VYUF9BU19TSU5HTEVfRlBf
RVhQID0gMHgzODAwMDAwMDsgLy8gbWF4IGV4cG9uZW50IHZhbHVlIGluIHNpbmdsZSBwcmVjaXNp
b24gdGhhdCB3aWxsIGJlIGNvbnZlcnRlZAorICAgIGNvbnN0IEdDM0R1aW50IEhBTEZfRkxPQVRf
TUFYX0JJQVNFRF9FWFBfQVNfU0lOR0xFX0ZQX0VYUCA9IDB4NDc4MDAwMDA7CisgICAgY29uc3Qg
R0MzRHVpbnQgRkxPQVRfTUFYX0JJQVNFRF9FWFAgPSAoMHhGRiA8PCAyMyk7CisgICAgY29uc3Qg
R0MzRHVpbnQgSEFMRl9GTE9BVF9NQVhfQklBU0VEX0VYUCA9ICgweDFGIDw8IDEwKTsKKworICAg
IEdDM0R1aW50IHggPSAqKEdDM0R1aW50ICopZjsKKyAgICBHQzNEdWludCBzaWduID0gKEdDM0Ro
YWxmZmxvYXQpKHggPj4gMzEpOworICAgIEdDM0R1aW50IG1hbnRpc3NhOworICAgIEdDM0R1aW50
IGV4cDsKKyAgICBHQzNEaGFsZmZsb2F0IGhmOworCisgICAgbWFudGlzc2EgPSB4ICYgKCgxIDw8
IDIzKSAtIDEpOworICAgIGV4cCA9IHggJiBGTE9BVF9NQVhfQklBU0VEX0VYUDsKKyAgICBpZiAo
ZXhwID49IEhBTEZfRkxPQVRfTUFYX0JJQVNFRF9FWFBfQVNfU0lOR0xFX0ZQX0VYUCkgIHsKKyAg
ICAgICAgaWYgKG1hbnRpc3NhICYmIChleHAgPT0gRkxPQVRfTUFYX0JJQVNFRF9FWFApKQorICAg
ICAgICAgICAgbWFudGlzc2EgPSAoMSA8PCAyMykgLSAxOworICAgICAgICBlbHNlCisgICAgICAg
ICAgICBtYW50aXNzYSA9IDA7CisgICAgICAgIGhmID0gKCgoR0MzRGhhbGZmbG9hdClzaWduKSA8
PCAxNSkgfCAoR0MzRGhhbGZmbG9hdCkoSEFMRl9GTE9BVF9NQVhfQklBU0VEX0VYUCkgfCAoR0Mz
RGhhbGZmbG9hdCkobWFudGlzc2EgPj4gMTMpOworICAgIH0gZWxzZSBpZiAoZXhwIDw9IEhBTEZf
RkxPQVRfTUlOX0JJQVNFRF9FWFBfQVNfU0lOR0xFX0ZQX0VYUCkgeworICAgICAgICBleHAgPSAo
SEFMRl9GTE9BVF9NSU5fQklBU0VEX0VYUF9BU19TSU5HTEVfRlBfRVhQIC0gZXhwKSA+PiAyMzsK
KyAgICAgICAgbWFudGlzc2EgPj49ICgxNCArIGV4cCk7CisgICAgICAgIGhmID0gKCgoR0MzRGhh
bGZmbG9hdClzaWduKSA8PCAxNSkgfCAoR0MzRGhhbGZmbG9hdCkobWFudGlzc2EpOworICAgIH0g
ZWxzZQorICAgICAgICBoZiA9ICgoKEdDM0RoYWxmZmxvYXQpc2lnbikgPDwgMTUpIHwgKEdDM0Ro
YWxmZmxvYXQpKChleHAgLSBIQUxGX0ZMT0FUX01JTl9CSUFTRURfRVhQX0FTX1NJTkdMRV9GUF9F
WFApID4+IDEzKSB8IChHQzNEaGFsZmZsb2F0KShtYW50aXNzYSA+PiAxMyk7CisgICAgcmV0dXJu
IGhmOworfQorCiBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdCBnZXREYXRhRm9ybWF0KEdD
M0RlbnVtIGRlc3RpbmF0aW9uRm9ybWF0LCBHQzNEZW51bSBkZXN0aW5hdGlvblR5cGUpCiB7CiAg
ICAgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQgZHN0Rm9ybWF0ID0gR3JhcGhpY3NDb250
ZXh0M0Q6OkRhdGFGb3JtYXRSR0JBODsKQEAgLTEwMiw2ICsxMzQsMTUgQEAgR3JhcGhpY3NDb250
ZXh0M0Q6OkRhdGFGb3JtYXQgZ2V0RGF0YUZvcm1hdChHQzNEZW51bSBkZXN0aW5hdGlvbkZvcm1h
dCwgR0MzRGVudW0KICAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICB9
CiAgICAgICAgIGJyZWFrOworICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkhBTEZfRkxPQVRf
T0VTOiAvLyBPRVNfdGV4dHVyZV9oYWxmX2Zsb2F0CisgICAgICAgIHN3aXRjaCAoZGVzdGluYXRp
b25Gb3JtYXQpIHsKKyAgICAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UkdCQToKKyAgICAg
ICAgICAgIGRzdEZvcm1hdCA9IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCQTE2RjsK
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CiAgICAgZGVmYXVsdDoK
ICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgfQpAQCAtMTc2LDYgKzIxNyw5IEBA
IGJvb2wgR3JhcGhpY3NDb250ZXh0M0Q6OmNvbXB1dGVGb3JtYXRBbmRUeXBlUGFyYW1ldGVycyhH
QzNEZW51bSBmb3JtYXQsCiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RkxPQVQ6IC8vIE9F
U190ZXh0dXJlX2Zsb2F0CiAgICAgICAgICpieXRlc1BlckNvbXBvbmVudCA9IHNpemVvZihHQzNE
ZmxvYXQpOwogICAgICAgICBicmVhazsKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpIQUxG
X0ZMT0FUX09FUzogLy8gT0VTX3RleHR1cmVfaGFsZl9mbG9hdAorICAgICAgICAqYnl0ZXNQZXJD
b21wb25lbnQgPSBzaXplb2YoR0MzRGhhbGZmbG9hdCk7CisgICAgICAgIGJyZWFrOwogICAgIGRl
ZmF1bHQ6CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CkBAIC05OTQsNiArMTAzOCwzNSBA
QCB0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpE
YXRhRm9ybWF0UkdCQTMyRiwgR3JhcGhpYwogICAgIH0KIH0KIAordGVtcGxhdGU8PiBBTFdBWVNf
SU5MSU5FIHZvaWQgcGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQkExNkYsIEdy
YXBoaWNzQ29udGV4dDNEOjpBbHBoYURvTm90aGluZywgZmxvYXQsIHVpbnQxNl90Pihjb25zdCBm
bG9hdCogc291cmNlLCB1aW50MTZfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJv
dykKK3sKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgcGl4ZWxzUGVyUm93OyArK2kpIHsK
KyAgICAgICAgZGVzdGluYXRpb25bMF0gPSBjb252ZXJ0VG9IYWxmRmxvYXQoc291cmNlKTsKKyAg
ICAgICAgZGVzdGluYXRpb25bMV0gPSBjb252ZXJ0VG9IYWxmRmxvYXQoc291cmNlKzEpOworICAg
ICAgICBkZXN0aW5hdGlvblsyXSA9IGNvbnZlcnRUb0hhbGZGbG9hdChzb3VyY2UrMik7CisgICAg
ICAgIGRlc3RpbmF0aW9uWzNdID0gY29udmVydFRvSGFsZkZsb2F0KHNvdXJjZSszKTsKKyAgICAg
ICAgc291cmNlICs9IDQ7CisgICAgICAgIGRlc3RpbmF0aW9uICs9IDQ7CisgICAgfQorfQorCit0
ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRh
Rm9ybWF0UkdCQTE2RiwgR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhRG9QcmVtdWx0aXBseSwgZmxv
YXQsIHVpbnQxNl90Pihjb25zdCBmbG9hdCogc291cmNlLCB1aW50MTZfdCogZGVzdGluYXRpb24s
IHVuc2lnbmVkIHBpeGVsc1BlclJvdykKK3sKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwg
cGl4ZWxzUGVyUm93OyArK2kpIHsKKyAgICAgICAgZmxvYXQgc2NhbGVGYWN0b3IgPSBzb3VyY2Vb
M107CisgICAgICAgIGNvbnN0IGZsb2F0IGludGVybWVkaWF0ZUZsb2F0QXJyYXlbNF0gPSB7Kihz
b3VyY2UpICogc2NhbGVGYWN0b3IsCisgICAgICAgICAgICAqKHNvdXJjZSsxKSAqIHNjYWxlRmFj
dG9yLAorICAgICAgICAgICAgKihzb3VyY2UrMikgKiBzY2FsZUZhY3RvciwKKyAgICAgICAgICAg
ICooc291cmNlKzMpIH07CisgICAgICAgIGRlc3RpbmF0aW9uWzBdID0gY29udmVydFRvSGFsZkZs
b2F0KGludGVybWVkaWF0ZUZsb2F0QXJyYXkpOworICAgICAgICBkZXN0aW5hdGlvblsxXSA9IGNv
bnZlcnRUb0hhbGZGbG9hdChpbnRlcm1lZGlhdGVGbG9hdEFycmF5KzEpOworICAgICAgICBkZXN0
aW5hdGlvblsyXSA9IGNvbnZlcnRUb0hhbGZGbG9hdChpbnRlcm1lZGlhdGVGbG9hdEFycmF5KzIp
OworICAgICAgICBkZXN0aW5hdGlvblszXSA9IGNvbnZlcnRUb0hhbGZGbG9hdChpbnRlcm1lZGlh
dGVGbG9hdEFycmF5KzMpOworICAgICAgICBzb3VyY2UgKz0gNDsKKyAgICAgICAgZGVzdGluYXRp
b24gKz0gNDsKKyAgICB9Cit9CisKIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8
R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRBMzJGLCBHcmFwaGljc0NvbnRleHQzRDo6QWxw
aGFEb05vdGhpbmcsIGZsb2F0LCBmbG9hdD4oY29uc3QgZmxvYXQqIHNvdXJjZSwgZmxvYXQqIGRl
c3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCiB7CiAgICAgZm9yICh1bnNpZ25lZCBp
bnQgaSA9IDA7IGkgPCBwaXhlbHNQZXJSb3c7ICsraSkgewpAQCAtMTA4NCw2ICsxMTU3LDcgQEAg
QUxXQVlTX0lOTElORSBib29sIEhhc0NvbG9yKGludCBmb3JtYXQpCiB7CiAgICAgcmV0dXJuIGZv
cm1hdCA9PSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQkE4CiAgICAgICAgIHx8IGZv
cm1hdCA9PSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQkEzMkYKKyAgICAgICAgfHwg
Zm9ybWF0ID09IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCQTE2RgogICAgICAgICB8
fCBmb3JtYXQgPT0gR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0I4CiAgICAgICAgIHx8
IGZvcm1hdCA9PSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQjMyRgogICAgICAgICB8
fCBmb3JtYXQgPT0gR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRCR1I4CkBAIC0xMTExLDYg
KzExODUsMTEgQEAgc3RydWN0IElzRmxvYXRGb3JtYXQgewogfTsKIAogdGVtcGxhdGU8aW50IEZv
cm1hdD4KK3N0cnVjdCBJc0hhbGZGbG9hdEZvcm1hdCB7CisgICAgc3RhdGljIGNvbnN0IGJvb2wg
VmFsdWUgPSBGb3JtYXQgPT0gR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JBMTZGOwor
fTsKKwordGVtcGxhdGU8aW50IEZvcm1hdD4KIHN0cnVjdCBJczE2YnBwRm9ybWF0IHsKICAgICBz
dGF0aWMgY29uc3QgYm9vbCBWYWx1ZSA9CiAgICAgICAgIEZvcm1hdCA9PSBHcmFwaGljc0NvbnRl
eHQzRDo6RGF0YUZvcm1hdFJHQkE1NTUxCkBAIC0xMTE4LDI2ICsxMTk3LDM2IEBAIHN0cnVjdCBJ
czE2YnBwRm9ybWF0IHsKICAgICAgICAgfHwgRm9ybWF0ID09IEdyYXBoaWNzQ29udGV4dDNEOjpE
YXRhRm9ybWF0UkdCNTY1OwogfTsKIAotdGVtcGxhdGU8aW50IEZvcm1hdCwgYm9vbCBJc0Zsb2F0
ID0gSXNGbG9hdEZvcm1hdDxGb3JtYXQ+OjpWYWx1ZSwgYm9vbCBJczE2YnBwID0gSXMxNmJwcEZv
cm1hdDxGb3JtYXQ+OjpWYWx1ZT4KK3RlbXBsYXRlPGludCBGb3JtYXQsIGJvb2wgSXNGbG9hdCA9
IElzRmxvYXRGb3JtYXQ8Rm9ybWF0Pjo6VmFsdWUsIGJvb2wgSXMxNmJwcCA9IElzMTZicHBGb3Jt
YXQ8Rm9ybWF0Pjo6VmFsdWUsIGJvb2wgSXNIYWxmRmxvYXQgPSBJc0hhbGZGbG9hdEZvcm1hdDxG
b3JtYXQ+OjpWYWx1ZT4KIHN0cnVjdCBEYXRhVHlwZUZvckZvcm1hdCB7CiAgICAgdHlwZWRlZiB1
aW50OF90IFR5cGU7CiB9OwogCiB0ZW1wbGF0ZTxpbnQgRm9ybWF0Pgotc3RydWN0IERhdGFUeXBl
Rm9yRm9ybWF0PEZvcm1hdCwgdHJ1ZSwgZmFsc2U+IHsKK3N0cnVjdCBEYXRhVHlwZUZvckZvcm1h
dDxGb3JtYXQsIHRydWUsIGZhbHNlLCBmYWxzZT4gewogICAgIHR5cGVkZWYgZmxvYXQgVHlwZTsK
IH07CiAKIHRlbXBsYXRlPGludCBGb3JtYXQ+Ci1zdHJ1Y3QgRGF0YVR5cGVGb3JGb3JtYXQ8Rm9y
bWF0LCBmYWxzZSwgdHJ1ZT4geworc3RydWN0IERhdGFUeXBlRm9yRm9ybWF0PEZvcm1hdCwgZmFs
c2UsIHRydWUsIGZhbHNlPiB7CiAgICAgdHlwZWRlZiB1aW50MTZfdCBUeXBlOwogfTsKIAogdGVt
cGxhdGU8aW50IEZvcm1hdD4KK3N0cnVjdCBEYXRhVHlwZUZvckZvcm1hdDxGb3JtYXQsIGZhbHNl
LCBmYWxzZSwgdHJ1ZT4geworICAgIHR5cGVkZWYgdWludDE2X3QgVHlwZTsKK307CisKK3RlbXBs
YXRlPGludCBGb3JtYXQsIGJvb2wgSXNIYWxmRmxvYXQgPSBJc0hhbGZGbG9hdEZvcm1hdDxGb3Jt
YXQ+OjpWYWx1ZT4KIHN0cnVjdCBJbnRlcm1lZGlhdGVGb3JtYXQgewogICAgIHN0YXRpYyBjb25z
dCBpbnQgVmFsdWUgPSBJc0Zsb2F0Rm9ybWF0PEZvcm1hdD46OlZhbHVlID8gR3JhcGhpY3NDb250
ZXh0M0Q6OkRhdGFGb3JtYXRSR0JBMzJGIDogR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRS
R0JBODsKIH07CiAKK3RlbXBsYXRlPGludCBGb3JtYXQ+CitzdHJ1Y3QgSW50ZXJtZWRpYXRlRm9y
bWF0PEZvcm1hdCwgdHJ1ZT4geworICAgIHN0YXRpYyBjb25zdCBpbnQgVmFsdWUgPSBHcmFwaGlj
c0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQkEzMkY7Cit9OworCiBBTFdBWVNfSU5MSU5FIHVuc2ln
bmVkIFRleGVsQnl0ZXNGb3JGb3JtYXQoR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQgZm9y
bWF0KQogewogICAgIHN3aXRjaCAoZm9ybWF0KSB7CkBAIC0xMTYxLDYgKzEyNTAsNyBAQCBBTFdB
WVNfSU5MSU5FIHVuc2lnbmVkIFRleGVsQnl0ZXNGb3JGb3JtYXQoR3JhcGhpY3NDb250ZXh0M0Q6
OkRhdGFGb3JtYXQgZm9ybWF0KQogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3Jt
YXRBMzJGOgogICAgICAgICByZXR1cm4gNDsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpE
YXRhRm9ybWF0UkEzMkY6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJH
QkExNkY6CiAgICAgICAgIHJldHVybiA4OwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRh
dGFGb3JtYXRSR0IzMkY6CiAgICAgICAgIHJldHVybiAxMjsKQEAgLTEyNTgsNiArMTM0OCw3IEBA
IEFMV0FZU19JTkxJTkUgdm9pZCBGb3JtYXRDb252ZXJ0ZXI6OmNvbnZlcnQoR3JhcGhpY3NDb250
ZXh0M0Q6OkRhdGFGb3JtYXQgZHN0Rm9yCiAgICAgICAgICAgICBGT1JNQVRDT05WRVJURVJfQ0FT
RV9EU1RGT1JNQVQoR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JBNTU1MSkKICAgICAg
ICAgICAgIEZPUk1BVENPTlZFUlRFUl9DQVNFX0RTVEZPUk1BVChHcmFwaGljc0NvbnRleHQzRDo6
RGF0YUZvcm1hdFJHQkE0NDQ0KQogICAgICAgICAgICAgRk9STUFUQ09OVkVSVEVSX0NBU0VfRFNU
Rk9STUFUKEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCQTMyRikKKyAgICAgICAgICAg
IEZPUk1BVENPTlZFUlRFUl9DQVNFX0RTVEZPUk1BVChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZv
cm1hdFJHQkExNkYpCiAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKICAgICAgICAgfQpAQCAtMTMxOCw3ICsxNDA5LDggQEAgQUxXQVlTX0lOTElORSB2
b2lkIEZvcm1hdENvbnZlcnRlcjo6Y29udmVydCgpCiAgICAgdHlwZWRlZiB0eXBlbmFtZSBEYXRh
VHlwZUZvckZvcm1hdDxJbnRlcm1lZGlhdGVTcmNGb3JtYXQ+OjpUeXBlIEludGVybWVkaWF0ZVNy
Y1R5cGU7CiAgICAgY29uc3QgcHRyZGlmZl90IHNyY1N0cmlkZUluRWxlbWVudHMgPSBtX3NyY1N0
cmlkZSAvIHNpemVvZihTcmNUeXBlKTsKICAgICBjb25zdCBwdHJkaWZmX3QgZHN0U3RyaWRlSW5F
bGVtZW50cyA9IG1fZHN0U3RyaWRlIC8gc2l6ZW9mKERzdFR5cGUpOwotICAgIGNvbnN0IGJvb2wg
dHJpdmlhbFVucGFjayA9IChTcmNGb3JtYXQgPT0gR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3Jt
YXRSR0JBOCAmJiAhSXNGbG9hdEZvcm1hdDxEc3RGb3JtYXQ+OjpWYWx1ZSkgfHwgU3JjRm9ybWF0
ID09IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCQTMyRjsKKyAgICBjb25zdCBib29s
IHRyaXZpYWxVbnBhY2sgPSAoU3JjRm9ybWF0ID09IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9y
bWF0UkdCQTggJiYgIUlzRmxvYXRGb3JtYXQ8RHN0Rm9ybWF0Pjo6VmFsdWUgJiYgIUlzSGFsZkZs
b2F0Rm9ybWF0PERzdEZvcm1hdD46OlZhbHVlKQorICAgICAgICB8fCBTcmNGb3JtYXQgPT0gR3Jh
cGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JBMzJGOwogICAgIGNvbnN0IGJvb2wgdHJpdmlh
bFBhY2sgPSAoRHN0Rm9ybWF0ID09IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCQTgg
fHwgRHN0Rm9ybWF0ID09IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCQTMyRikgJiYg
YWxwaGFPcCA9PSBHcmFwaGljc0NvbnRleHQzRDo6QWxwaGFEb05vdGhpbmcgJiYgbV9kc3RTdHJp
ZGUgPiAwOwogICAgIEFTU0VSVCghdHJpdmlhbFVucGFjayB8fCAhdHJpdmlhbFBhY2spOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRl
eHQzRC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0
M0QuaAppbmRleCA2NzE1OTQ5Li5mNTZmZWJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmgKQEAgLTYwNCw2ICs2MDQsNyBA
QCBwdWJsaWM6CiAgICAgICAgIERhdGFGb3JtYXRSR0JBMTZMaXR0bGUsCiAgICAgICAgIERhdGFG
b3JtYXRSR0JBMTZCaWcsCiAgICAgICAgIERhdGFGb3JtYXRSR0JBMzJGLAorICAgICAgICBEYXRh
Rm9ybWF0UkdCQTE2RiwKICAgICAgICAgRGF0YUZvcm1hdFJHQjgsCiAgICAgICAgIERhdGFGb3Jt
YXRSR0IxNkxpdHRsZSwKICAgICAgICAgRGF0YUZvcm1hdFJHQjE2QmlnLApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NUeXBlczNELmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc1R5cGVzM0QuaAppbmRleCAyMDNh
M2ZkLi4xZmE4ZWFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9HcmFwaGljc1R5cGVzM0QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9HcmFwaGljc1R5cGVzM0QuaApAQCAtNDEsNiArNDEsNyBAQCB0eXBlZGVmIGludCBHQzNEaW50
OwogdHlwZWRlZiBpbnQgR0MzRHNpemVpOwogdHlwZWRlZiB1bnNpZ25lZCBpbnQgR0MzRHVpbnQ7
CiB0eXBlZGVmIGZsb2F0IEdDM0RmbG9hdDsKK3R5cGVkZWYgdW5zaWduZWQgc2hvcnQgR0MzRGhh
bGZmbG9hdDsKIHR5cGVkZWYgZmxvYXQgR0MzRGNsYW1wZjsKIHR5cGVkZWYgaW50cHRyX3QgR0Mz
RGludHB0cjsKIHR5cGVkZWYgaW50cHRyX3QgR0MzRHNpemVpcHRyOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dDNET3Bl
bkdMQ29tbW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9H
cmFwaGljc0NvbnRleHQzRE9wZW5HTENvbW1vbi5jcHAKaW5kZXggYzdkNzMzNS4uNmVjMGExMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBo
aWNzQ29udGV4dDNET3BlbkdMQ29tbW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0M0RPcGVuR0xDb21tb24uY3BwCkBAIC0x
MzA4LDYgKzEzMDgsMTMgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6dGV4U3ViSW1hZ2UyRChH
QzNEZW51bSB0YXJnZXQsIEdDM0RpbnQgbGV2ZWwsIEdDM0RpbnQgeG8KIHsKICAgICBtYWtlQ29u
dGV4dEN1cnJlbnQoKTsKIAorICAgIC8qIFRPRE86IFVnbHkgaGFjay4gQ3VycmVudGx5IHBhc3Np
bmcgSEFMRl9GTE9BVF9PRVMgZG9lc24ndCB3b3JrIGluIERlc2t0b3AgR0wuCisgICAgICAgUGFz
c2luZyBIQUxGX0ZMT0FUX0FSQiAoSGV4IHZhbHVlIDB4MTQwQikgZG9lcyB0aGUgdHJpY2suIEhl
bmNlIHRlbXBvcmFyaWx5IHBhc3MKKyAgICAgICAweDE0MEIgaW5zdGVhZCBvZiBIQUxGX0ZMT0FU
X09FUy4KKyAgICAgKi8KKyAgICBpZiAodHlwZSA9PSBIQUxGX0ZMT0FUX09FUykKKyAgICAgICAg
dHlwZSA9IDB4MTQwQjsKKwogICAgIC8vIEZJWE1FOiB3ZSB3aWxsIG5lZWQgdG8gZGVhbCB3aXRo
IFBpeGVsU3RvcmUgcGFyYW1zIHdoZW4gZGVhbGluZyB3aXRoIGltYWdlIGJ1ZmZlcnMgdGhhdCBk
aWZmZXIgZnJvbSB0aGUgc3ViaW1hZ2Ugc2l6ZS4KICAgICA6OmdsVGV4U3ViSW1hZ2UyRCh0YXJn
ZXQsIGxldmVsLCB4b2ZmLCB5b2ZmLCB3aWR0aCwgaGVpZ2h0LCBmb3JtYXQsIHR5cGUsIHBpeGVs
cyk7CiB9CkBAIC0xNDM0LDYgKzE0NDEsMTQgQEAgYm9vbCBHcmFwaGljc0NvbnRleHQzRDo6bGF5
ZXJDb21wb3NpdGVkKCkgY29uc3QKIHZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OnRleEltYWdlMkRE
aXJlY3QoR0MzRGVudW0gdGFyZ2V0LCBHQzNEaW50IGxldmVsLCBHQzNEZW51bSBpbnRlcm5hbGZv
cm1hdCwgR0MzRHNpemVpIHdpZHRoLCBHQzNEc2l6ZWkgaGVpZ2h0LCBHQzNEaW50IGJvcmRlciwg
R0MzRGVudW0gZm9ybWF0LCBHQzNEZW51bSB0eXBlLCBjb25zdCB2b2lkKiBwaXhlbHMpCiB7CiAg
ICAgbWFrZUNvbnRleHRDdXJyZW50KCk7CisKKyAgICAvKiBUT0RPOiBVZ2x5IGhhY2suIEN1cnJl
bnRseSBwYXNzaW5nIEhBTEZfRkxPQVRfT0VTIGRvZXNuJ3Qgd29yayBpbiBEZXNrdG9wIEdMLgor
ICAgICAgIFBhc3NpbmcgSEFMRl9GTE9BVF9BUkIgKEhleCB2YWx1ZSAweDE0MEIpIGRvZXMgdGhl
IHRyaWNrLiBIZW5jZSB0ZW1wb3JhcmlseSBwYXNzCisgICAgICAgMHgxNDBCIGluc3RlYWQgb2Yg
SEFMRl9GTE9BVF9PRVMuCisgICAgICovCisgICAgaWYgKHR5cGUgPT0gSEFMRl9GTE9BVF9PRVMp
CisgICAgICAgIHR5cGUgPSAweDE0MEI7CisKICAgICA6OmdsVGV4SW1hZ2UyRCh0YXJnZXQsIGxl
dmVsLCBpbnRlcm5hbGZvcm1hdCwgd2lkdGgsIGhlaWdodCwgYm9yZGVyLCBmb3JtYXQsIHR5cGUs
IHBpeGVscyk7CiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>195407</attachid>
            <date>2013-03-27 15:06:07 -0700</date>
            <delta_ts>2013-03-27 21:59:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-110936-20130327150739.patch</filename>
            <type>text/plain</type>
            <size>48473</size>
            <attacher name="Nayan Kumar K">nayankk</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ3MDExCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDgyYjE1ZDYyYWVhZDg5
OGEzZDRlNTc3NmE0ZjRmNjY4M2ExODY0MC4uOTI2ZDU3MGQ4OWQ4Yzg1ZGY4YzIzOWE0ZmRmNDk0
OWJlYzllZDc5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDEzLTAzLTI3ICBOYXlh
biBLdW1hciBLICA8bmF5YW5ra0Btb3Rvcm9sYS5jb20+CisKKyAgICAgICAgW1dlYkdMXSBTdXBw
b3J0IGZvciB0ZXhJbWFnZTJEIG9mIHR5cGUgSEFMRl9GTE9BVF9PRVMgd2l0aCBJbWFnZURhdGEs
CisgICAgICAgIEhUTUxJbWFnZUVsZW1lbnQsIEhUTUxDYW52YXNFbGVtZW50IGFuZCBIVE1MVmlk
ZW9FbGVtZW50LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTEwOTM2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgVGVzdHM6IGZhc3QvY2FudmFzL3dlYmdsL29lcy10ZXh0dXJlLWhhbGYtZmxvYXQtd2l0aC1j
YW52YXMuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9jYW52YXMvd2ViZ2wvb2VzLXRleHR1cmUt
aGFsZi1mbG9hdC13aXRoLWltYWdlLWRhdGEuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9jYW52
YXMvd2ViZ2wvb2VzLXRleHR1cmUtaGFsZi1mbG9hdC13aXRoLWltYWdlLmh0bWwKKyAgICAgICAg
ICAgICAgIGZhc3QvY2FudmFzL3dlYmdsL29lcy10ZXh0dXJlLWhhbGYtZmxvYXQtd2l0aC12aWRl
by5odG1sCisKKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuY3Bw
OgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0Nv
bnRleHQ6OnRleEltYWdlMkQpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250
ZXh0Ojp0ZXhTdWJJbWFnZTJEKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGlj
c0NvbnRleHQzRC5jcHA6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9HcmFwaGljc0NvbnRleHQzRC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L29wZW5nbC9HcmFwaGljc0NvbnRleHQzRE9wZW5HTC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpH
cmFwaGljc0NvbnRleHQzRDo6dGV4U3ViSW1hZ2UyRCk6CisgICAgICAgIChXZWJDb3JlKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0M0RPcGVuR0xD
b21tb24uY3BwOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0Nv
bnRleHQzRE9wZW5HTEVTLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNE
Ojp0ZXhTdWJJbWFnZTJEKToKKyAgICAgICAgKFdlYkNvcmUpOgorCiAyMDEzLTAzLTI3ICBSeW9z
dWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAgIFNlbGVjdGlvbiBjb2RlIHNw
ZW5kcyBhIGxvdCBvZiB0aW1lIGluIElubGluZVRleHRCb3g6OmxvY2FsU2VsZWN0aW9uUmVjdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250
ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4
dC5jcHAKaW5kZXggOGUyZWIzM2Q1MTE5MTJkODU5Njc3ZWFkYTM3Yjg2NTE5NzZhNjJhMS4uMDcy
ZWI2ZGQzMmU5OGJiNDdiYWVkNjY2ZWFlY2Y0ZTFjMDM1NmNmYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuY3BwCkBAIC0zNzg3
LDEzICszNzg3LDYgQEAgdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnRleEltYWdlMkQoR0Mz
RGVudW0gdGFyZ2V0LCBHQzNEaW50IGxldmVsLCBHQzNEZW51bQogICAgICAgICByZXR1cm47CiAg
ICAgaWYgKCF2YWxpZGF0ZVNldHRhYmxlVGV4Rm9ybWF0KCJ0ZXhJbWFnZTJEIiwgZm9ybWF0KSkK
ICAgICAgICAgcmV0dXJuOwotICAgIC8vIEZJWE1FOiBVcGxvYWRpbmcgSW1hZ2VEYXRhIHRvIGhh
bGYgZmxvYXRpbmcgcG9pbnQgdGV4dHVyZSBpcyBub3Qgc3VwcG9ydGVkIHlldAotICAgIC8vIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTA5MzYKLSAgICBpZiAodHlw
ZSA9PSBHcmFwaGljc0NvbnRleHQzRDo6SEFMRl9GTE9BVF9PRVMpIHsKLSAgICAgICAgc3ludGhl
c2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFMSURfT1BFUkFUSU9OLCAidGV4SW1h
Z2UyRCIsICJPcGVyYXRpb24gbm90IHN1cHBvcnRlZCB5ZXQiKTsKLSAgICAgICAgcmV0dXJuOwot
ICAgIH0KLQogICAgIGJvb2wgbmVlZENvbnZlcnNpb24gPSB0cnVlOwogICAgIC8vIFRoZSBkYXRh
IGZyb20gSW1hZ2VEYXRhIGlzIGFsd2F5cyBvZiBmb3JtYXQgUkdCQTguCiAgICAgLy8gTm8gY29u
dmVyc2lvbiBpcyBuZWVkZWQgaWYgZGVzdGluYXRpb24gZm9ybWF0IGlzIFJHQkEgYW5kIHR5cGUg
aXMgVVNJR05FRF9CWVRFIGFuZCBubyBGbGlwIG9yIFByZW11bHRpcGx5IG9wZXJhdGlvbiBpcyBy
ZXF1aXJlZC4KQEAgLTM4MjQsMTMgKzM4MTcsNiBAQCB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4
dDo6dGV4SW1hZ2UyRChHQzNEZW51bSB0YXJnZXQsIEdDM0RpbnQgbGV2ZWwsIEdDM0RlbnVtCiAg
ICAgICAgIGVjID0gU0VDVVJJVFlfRVJSOwogICAgICAgICByZXR1cm47CiAgICAgfQotICAgIC8v
IEZJWE1FOiBVcGxvYWRpbmcgSW1hZ2VFbGVtZW50IHRvIGhhbGYgZmxvYXRpbmcgcG9pbnQgdGV4
dHVyZSBpcyBub3Qgc3VwcG9ydGVkIHlldAotICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMTA5MzYKLSAgICBpZiAodHlwZSA9PSBHcmFwaGljc0NvbnRleHQz
RDo6SEFMRl9GTE9BVF9PRVMpIHsKLSAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3ND
b250ZXh0M0Q6OklOVkFMSURfT1BFUkFUSU9OLCAidGV4SW1hZ2UyRCIsICJPcGVyYXRpb24gbm90
IHN1cHBvcnRlZCB5ZXQiKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQogICAgIHRleEltYWdl
MkRJbXBsKHRhcmdldCwgbGV2ZWwsIGludGVybmFsZm9ybWF0LCBmb3JtYXQsIHR5cGUsIGltYWdl
LT5jYWNoZWRJbWFnZSgpLT5pbWFnZUZvclJlbmRlcmVyKGltYWdlLT5yZW5kZXJlcigpKSwgR3Jh
cGhpY3NDb250ZXh0M0Q6Okh0bWxEb21JbWFnZSwgbV91bnBhY2tGbGlwWSwgbV91bnBhY2tQcmVt
dWx0aXBseUFscGhhLCBlYyk7CiB9CiAKQEAgLTM4NTIsMTIgKzM4MzgsNiBAQCB2b2lkIFdlYkdM
UmVuZGVyaW5nQ29udGV4dDo6dGV4SW1hZ2UyRChHQzNEZW51bSB0YXJnZXQsIEdDM0RpbnQgbGV2
ZWwsIEdDM0RlbnVtCiAgICAgICAgIHJldHVybjsKICAgICBpZiAoIXZhbGlkYXRlU2V0dGFibGVU
ZXhGb3JtYXQoInRleEltYWdlMkQiLCBmb3JtYXQpKQogICAgICAgICByZXR1cm47Ci0gICAgLy8g
RklYTUU6IFVwbG9hZGluZyBIVE1MQ2FudmFzRWxlbWVudCB0byBoYWxmIGZsb2F0aW5nIHBvaW50
IHRleHR1cmUgaXMgbm90IHN1cHBvcnRlZCB5ZXQKLSAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEwOTM2Ci0gICAgaWYgKHR5cGUgPT0gR3JhcGhpY3NDb250
ZXh0M0Q6OkhBTEZfRkxPQVRfT0VTKSB7Ci0gICAgICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBo
aWNzQ29udGV4dDNEOjpJTlZBTElEX09QRVJBVElPTiwgInRleEltYWdlMkQiLCAiT3BlcmF0aW9u
IG5vdCBzdXBwb3J0ZWQgeWV0Iik7Ci0gICAgICAgIHJldHVybjsKLSAgICB9CiAKICAgICBXZWJH
TFRleHR1cmUqIHRleHR1cmUgPSB2YWxpZGF0ZVRleHR1cmVCaW5kaW5nKCJ0ZXhJbWFnZTJEIiwg
dGFyZ2V0LCB0cnVlKTsKICAgICAvLyBJZiBwb3NzaWJsZSwgY29weSBmcm9tIHRoZSBjYW52YXMg
ZWxlbWVudCBkaXJlY3RseSB0byB0aGUgdGV4dHVyZQpAQCAtMzkzNywxMiArMzkxNyw2IEBAIHZv
aWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0Ojp0ZXhJbWFnZTJEKEdDM0RlbnVtIHRhcmdldCwgR0Mz
RGludCBsZXZlbCwgR0MzRGVudW0KICAgICBSZWZQdHI8SW1hZ2U+IGltYWdlID0gdmlkZW9GcmFt
ZVRvSW1hZ2UodmlkZW8sIEltYWdlQnVmZmVyOjpmYXN0Q29weUltYWdlTW9kZSgpLCBlYyk7CiAg
ICAgaWYgKCFpbWFnZSkKICAgICAgICAgcmV0dXJuOwotICAgIC8vIEZJWE1FOiBVcGxvYWRpbmcg
SFRNTFZpZGVvRWxlbWVudCB0byBoYWxmIGZsb2F0aW5nIHBvaW50IHRleHR1cmUgaXMgbm90IHN1
cHBvcnRlZCB5ZXQKLSAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTEwOTM2Ci0gICAgaWYgKHR5cGUgPT0gR3JhcGhpY3NDb250ZXh0M0Q6OkhBTEZfRkxPQVRf
T0VTKSB7Ci0gICAgICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZB
TElEX09QRVJBVElPTiwgInRleEltYWdlMkQiLCAiT3BlcmF0aW9uIG5vdCBzdXBwb3J0ZWQgeWV0
Iik7Ci0gICAgICAgIHJldHVybjsKLSAgICB9CiAKICAgICB0ZXhJbWFnZTJESW1wbCh0YXJnZXQs
IGxldmVsLCBpbnRlcm5hbGZvcm1hdCwgZm9ybWF0LCB0eXBlLCBpbWFnZS5nZXQoKSwgR3JhcGhp
Y3NDb250ZXh0M0Q6Okh0bWxEb21WaWRlbywgbV91bnBhY2tGbGlwWSwgbV91bnBhY2tQcmVtdWx0
aXBseUFscGhhLCBlYyk7CiB9CkBAIC00MDk4LDEyICs0MDcyLDYgQEAgdm9pZCBXZWJHTFJlbmRl
cmluZ0NvbnRleHQ6OnRleFN1YkltYWdlMkQoR0MzRGVudW0gdGFyZ2V0LCBHQzNEaW50IGxldmVs
LCBHQzNEaW4KICAgICAgICAgcmV0dXJuOwogICAgIGlmICghdmFsaWRhdGVTZXR0YWJsZVRleEZv
cm1hdCgidGV4U3ViSW1hZ2UyRCIsIGZvcm1hdCkpCiAgICAgICAgIHJldHVybjsKLSAgICAvLyBG
SVhNRTogVXBsb2FkaW5nIEltYWdlRGF0YSB0byBoYWxmIGZsb2F0aW5nIHBvaW50IHRleHR1cmUg
aXMgbm90IHN1cHBvcnRlZCB5ZXQKLSAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTEwOTM2Ci0gICAgaWYgKHR5cGUgPT0gR3JhcGhpY3NDb250ZXh0M0Q6OkhB
TEZfRkxPQVRfT0VTKSB7Ci0gICAgICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4
dDNEOjpJTlZBTElEX09QRVJBVElPTiwgInRleFN1YkltYWdlMkQiLCAiT3BlcmF0aW9uIG5vdCBz
dXBwb3J0ZWQgeWV0Iik7Ci0gICAgICAgIHJldHVybjsKLSAgICB9CiAKICAgICBWZWN0b3I8dWlu
dDhfdD4gZGF0YTsKICAgICBib29sIG5lZWRDb252ZXJzaW9uID0gdHJ1ZTsKQEAgLTQxMzYsMTMg
KzQxMDQsNiBAQCB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6dGV4U3ViSW1hZ2UyRChHQzNE
ZW51bSB0YXJnZXQsIEdDM0RpbnQgbGV2ZWwsIEdDM0RpbgogICAgICAgICBlYyA9IFNFQ1VSSVRZ
X0VSUjsKICAgICAgICAgcmV0dXJuOwogICAgIH0KLSAgICAvLyBGSVhNRTogVXBsb2FkaW5nIEhU
TUxJbWFnZUVsZW1lbnQgdG8gaGFsZiBmbG9hdGluZyBwb2ludCB0ZXh0dXJlIGlzIG5vdCBzdXBw
b3J0ZWQgeWV0Ci0gICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTExMDkzNgotICAgIGlmICh0eXBlID09IEdyYXBoaWNzQ29udGV4dDNEOjpIQUxGX0ZMT0FUX09F
UykgewotICAgICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJ
RF9PUEVSQVRJT04sICJ0ZXhTdWJJbWFnZTJEIiwgIk9wZXJhdGlvbiBub3Qgc3VwcG9ydGVkIHll
dCIpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCiAgICAgdGV4U3ViSW1hZ2UyREltcGwodGFy
Z2V0LCBsZXZlbCwgeG9mZnNldCwgeW9mZnNldCwgZm9ybWF0LCB0eXBlLCBpbWFnZS0+Y2FjaGVk
SW1hZ2UoKS0+aW1hZ2VGb3JSZW5kZXJlcihpbWFnZS0+cmVuZGVyZXIoKSksIEdyYXBoaWNzQ29u
dGV4dDNEOjpIdG1sRG9tSW1hZ2UsIG1fdW5wYWNrRmxpcFksIG1fdW5wYWNrUHJlbXVsdGlwbHlB
bHBoYSwgZWMpOwogfQogCkBAIC00MTY0LDEyICs0MTI1LDYgQEAgdm9pZCBXZWJHTFJlbmRlcmlu
Z0NvbnRleHQ6OnRleFN1YkltYWdlMkQoR0MzRGVudW0gdGFyZ2V0LCBHQzNEaW50IGxldmVsLCBH
QzNEaW4KICAgICAgICAgcmV0dXJuOwogICAgIGlmICghdmFsaWRhdGVTZXR0YWJsZVRleEZvcm1h
dCgidGV4U3ViSW1hZ2UyRCIsIGZvcm1hdCkpCiAgICAgICAgIHJldHVybjsKLSAgICAvLyBGSVhN
RTogVXBsb2FkaW5nIEhUTUxDYW52YXNFbGVtZW50IHRvIGhhbGYgZmxvYXRpbmcgcG9pbnQgdGV4
dHVyZSBpcyBub3Qgc3VwcG9ydGVkIHlldAotICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMTA5MzYKLSAgICBpZiAodHlwZSA9PSBHcmFwaGljc0NvbnRleHQz
RDo6SEFMRl9GTE9BVF9PRVMpIHsKLSAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3ND
b250ZXh0M0Q6OklOVkFMSURfT1BFUkFUSU9OLCAidGV4U3ViSW1hZ2UyRCIsICJPcGVyYXRpb24g
bm90IHN1cHBvcnRlZCB5ZXQiKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KIAogICAgIFJlZlB0
cjxJbWFnZURhdGE+IGltYWdlRGF0YSA9IGNhbnZhcy0+Z2V0SW1hZ2VEYXRhKCk7CiAgICAgaWYg
KGltYWdlRGF0YSkKQEAgLTQyMDIsMTIgKzQxNTcsNiBAQCB2b2lkIFdlYkdMUmVuZGVyaW5nQ29u
dGV4dDo6dGV4U3ViSW1hZ2UyRChHQzNEZW51bSB0YXJnZXQsIEdDM0RpbnQgbGV2ZWwsIEdDM0Rp
bgogICAgIFJlZlB0cjxJbWFnZT4gaW1hZ2UgPSB2aWRlb0ZyYW1lVG9JbWFnZSh2aWRlbywgSW1h
Z2VCdWZmZXI6OmZhc3RDb3B5SW1hZ2VNb2RlKCksIGVjKTsKICAgICBpZiAoIWltYWdlKQogICAg
ICAgICByZXR1cm47Ci0gICAgLy8gRklYTUU6IFVwbG9hZGluZyBIVE1MVmlkZW9FbGVtZW50IHRv
IGhhbGYgZmxvYXRpbmcgcG9pbnQgdGV4dHVyZSBpcyBub3Qgc3VwcG9ydGVkIHlldAotICAgIC8v
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTA5MzYKLSAgICBpZiAo
dHlwZSA9PSBHcmFwaGljc0NvbnRleHQzRDo6SEFMRl9GTE9BVF9PRVMpIHsKLSAgICAgICAgc3lu
dGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFMSURfT1BFUkFUSU9OLCAidGV4
U3ViSW1hZ2UyRCIsICJPcGVyYXRpb24gbm90IHN1cHBvcnRlZCB5ZXQiKTsKLSAgICAgICAgcmV0
dXJuOwotICAgIH0KIAogICAgIHRleFN1YkltYWdlMkRJbXBsKHRhcmdldCwgbGV2ZWwsIHhvZmZz
ZXQsIHlvZmZzZXQsIGZvcm1hdCwgdHlwZSwgaW1hZ2UuZ2V0KCksIEdyYXBoaWNzQ29udGV4dDNE
OjpIdG1sRG9tVmlkZW8sIG1fdW5wYWNrRmxpcFksIG1fdW5wYWNrUHJlbXVsdGlwbHlBbHBoYSwg
ZWMpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3Jh
cGhpY3NDb250ZXh0M0QuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3Jh
cGhpY3NDb250ZXh0M0QuY3BwCmluZGV4IDRiNWI5ZmQ0ZTI2NzE4NDg3NmFhNjI5YjI2MDVkYzBk
ZTM1YzU0NzMuLjU1MmM4NmQ2MTliMDM3Nzg3N2MzMTA5MzVjYzczODg4ZWI0NWIwNjQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNE
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRl
eHQzRC5jcHAKQEAgLTQ3LDYgKzQ3LDM2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogbmFtZXNw
YWNlIHsKIAorLy8gQ29udmVydGlvbiBmcm9tIGZsb2F0aW5nIHBvaW50IHRvIGhhbGYgZmxvYXRp
bmcgcG9pbnQuCisvLyBUYWtlbiBmcm9tIE9wZW5HTCBFUyAyLjAgUHJvZ3JhbW1pbmcgR3VpZGUg
LSBBcHBlbmRpeCBBLgorc3RhdGljIEdDM0RoYWxmZmxvYXQgY29udmVydFRvSGFsZkZsb2F0KGNv
bnN0IEdDM0RmbG9hdCogZikKK3sKKyAgICBjb25zdCBHQzNEdWludCBoYWxmRmxvYXRNaW5CaWFz
ZWRFeHBTUCA9IDB4MzgwMDAwMDA7IC8vIG1heCBleHBvbmVudCB2YWx1ZSBpbiBzaW5nbGUgcHJl
Y2lzaW9uIHRoYXQgd2lsbCBiZSBjb252ZXJ0ZWQKKyAgICBjb25zdCBHQzNEdWludCBoYWxmRmxv
YXRNYXhCaWFzZWRFeHBTUCA9IDB4NDc4MDAwMDA7CisgICAgY29uc3QgR0MzRHVpbnQgZmxvYXRN
YXhCaWFzZWRFeHAgPSAoMHhGRiA8PCAyMyk7CisgICAgY29uc3QgR0MzRHVpbnQgaGFsZkZsb2F0
TWF4Qmlhc2VkRXhwID0gKDB4MUYgPDwgMTApOworCisgICAgR0MzRHVpbnQgeCA9ICooR0MzRHVp
bnQgKilmOworICAgIEdDM0R1aW50IHNpZ24gPSAoR0MzRGhhbGZmbG9hdCkoeCA+PiAzMSk7Cisg
ICAgR0MzRHVpbnQgbWFudGlzc2EgPSB4ICYgKCgxIDw8IDIzKSAtIDEpOworICAgIEdDM0R1aW50
IGV4cCA9IHggJiBmbG9hdE1heEJpYXNlZEV4cDsKKyAgICBHQzNEaGFsZmZsb2F0IGhmOworCisg
ICAgaWYgKGV4cCA+PSBoYWxmRmxvYXRNYXhCaWFzZWRFeHBTUCkgIHsKKyAgICAgICAgaWYgKG1h
bnRpc3NhICYmIChleHAgPT0gZmxvYXRNYXhCaWFzZWRFeHApKQorICAgICAgICAgICAgbWFudGlz
c2EgPSAoMSA8PCAyMykgLSAxOworICAgICAgICBlbHNlCisgICAgICAgICAgICBtYW50aXNzYSA9
IDA7CisgICAgICAgIGhmID0gKCgoR0MzRGhhbGZmbG9hdClzaWduKSA8PCAxNSkgfCAoR0MzRGhh
bGZmbG9hdCkoaGFsZkZsb2F0TWF4Qmlhc2VkRXhwKSB8IChHQzNEaGFsZmZsb2F0KShtYW50aXNz
YSA+PiAxMyk7CisgICAgfSBlbHNlIGlmIChleHAgPD0gaGFsZkZsb2F0TWluQmlhc2VkRXhwU1Ap
IHsKKyAgICAgICAgZXhwID0gKGhhbGZGbG9hdE1pbkJpYXNlZEV4cFNQIC0gZXhwKSA+PiAyMzsK
KyAgICAgICAgbWFudGlzc2EgPj49ICgxNCArIGV4cCk7CisgICAgICAgIGhmID0gKCgoR0MzRGhh
bGZmbG9hdClzaWduKSA8PCAxNSkgfCAoR0MzRGhhbGZmbG9hdCkobWFudGlzc2EpOworICAgIH0g
ZWxzZQorICAgICAgICBoZiA9ICgoKEdDM0RoYWxmZmxvYXQpc2lnbikgPDwgMTUpIHwgKEdDM0Ro
YWxmZmxvYXQpKChleHAgLSBoYWxmRmxvYXRNaW5CaWFzZWRFeHBTUCkgPj4gMTMpIHwgKEdDM0Ro
YWxmZmxvYXQpKG1hbnRpc3NhID4+IDEzKTsKKyAgICByZXR1cm4gaGY7Cit9CisKIEdyYXBoaWNz
Q29udGV4dDNEOjpEYXRhRm9ybWF0IGdldERhdGFGb3JtYXQoR0MzRGVudW0gZGVzdGluYXRpb25G
b3JtYXQsIEdDM0RlbnVtIGRlc3RpbmF0aW9uVHlwZSkKIHsKICAgICBHcmFwaGljc0NvbnRleHQz
RDo6RGF0YUZvcm1hdCBkc3RGb3JtYXQgPSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJH
QkE4OwpAQCAtMTAyLDYgKzEzMiwxNSBAQCBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdCBn
ZXREYXRhRm9ybWF0KEdDM0RlbnVtIGRlc3RpbmF0aW9uRm9ybWF0LCBHQzNEZW51bQogICAgICAg
ICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIH0KICAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6SEFMRl9GTE9BVF9PRVM6IC8vIE9FU190ZXh0dXJl
X2hhbGZfZmxvYXQKKyAgICAgICAgc3dpdGNoIChkZXN0aW5hdGlvbkZvcm1hdCkgeworICAgICAg
ICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSR0JBOgorICAgICAgICAgICAgZHN0Rm9ybWF0ID0g
R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JBMTZGOworICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAg
ICAgICAgfQorICAgICAgICBicmVhazsKICAgICBkZWZhdWx0OgogICAgICAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKICAgICB9CkBAIC05OTcsNiArMTAzNiw1MiBAQCB0ZW1wbGF0ZTw+IEFMV0FZ
U19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCQTMyRiwg
R3JhcGhpYwogICAgIH0KIH0KIAordGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgcGFjazxH
cmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQkExNkYsIEdyYXBoaWNzQ29udGV4dDNEOjpB
bHBoYURvTm90aGluZywgZmxvYXQsIHVpbnQxNl90Pihjb25zdCBmbG9hdCogc291cmNlLCB1aW50
MTZfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKK3sKKyAgICBmb3IgKHVu
c2lnbmVkIGkgPSAwOyBpIDwgcGl4ZWxzUGVyUm93OyArK2kpIHsKKyAgICAgICAgZGVzdGluYXRp
b25bMF0gPSBjb252ZXJ0VG9IYWxmRmxvYXQoc291cmNlKTsKKyAgICAgICAgZGVzdGluYXRpb25b
MV0gPSBjb252ZXJ0VG9IYWxmRmxvYXQoc291cmNlKzEpOworICAgICAgICBkZXN0aW5hdGlvblsy
XSA9IGNvbnZlcnRUb0hhbGZGbG9hdChzb3VyY2UrMik7CisgICAgICAgIGRlc3RpbmF0aW9uWzNd
ID0gY29udmVydFRvSGFsZkZsb2F0KHNvdXJjZSszKTsKKyAgICAgICAgc291cmNlICs9IDQ7Cisg
ICAgICAgIGRlc3RpbmF0aW9uICs9IDQ7CisgICAgfQorfQorCit0ZW1wbGF0ZTw+IEFMV0FZU19J
TkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCQTE2RiwgR3Jh
cGhpY3NDb250ZXh0M0Q6OkFscGhhRG9QcmVtdWx0aXBseSwgZmxvYXQsIHVpbnQxNl90Pihjb25z
dCBmbG9hdCogc291cmNlLCB1aW50MTZfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1Bl
clJvdykKK3sKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgcGl4ZWxzUGVyUm93OyArK2kp
IHsKKyAgICAgICAgZmxvYXQgc2NhbGVGYWN0b3IgPSBzb3VyY2VbM107CisgICAgICAgIGNvbnN0
IGZsb2F0IGludGVybWVkaWF0ZUZsb2F0QXJyYXlbNF0gPSB7Kihzb3VyY2UpICogc2NhbGVGYWN0
b3IsCisgICAgICAgICAgICAqKHNvdXJjZSsxKSAqIHNjYWxlRmFjdG9yLAorICAgICAgICAgICAg
Kihzb3VyY2UrMikgKiBzY2FsZUZhY3RvciwKKyAgICAgICAgICAgICooc291cmNlKzMpIH07Cisg
ICAgICAgIGRlc3RpbmF0aW9uWzBdID0gY29udmVydFRvSGFsZkZsb2F0KGludGVybWVkaWF0ZUZs
b2F0QXJyYXkpOworICAgICAgICBkZXN0aW5hdGlvblsxXSA9IGNvbnZlcnRUb0hhbGZGbG9hdChp
bnRlcm1lZGlhdGVGbG9hdEFycmF5KzEpOworICAgICAgICBkZXN0aW5hdGlvblsyXSA9IGNvbnZl
cnRUb0hhbGZGbG9hdChpbnRlcm1lZGlhdGVGbG9hdEFycmF5KzIpOworICAgICAgICBkZXN0aW5h
dGlvblszXSA9IGNvbnZlcnRUb0hhbGZGbG9hdChpbnRlcm1lZGlhdGVGbG9hdEFycmF5KzMpOwor
ICAgICAgICBzb3VyY2UgKz0gNDsKKyAgICAgICAgZGVzdGluYXRpb24gKz0gNDsKKyAgICB9Cit9
CisKK3RlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6
OkRhdGFGb3JtYXRSR0JBMTZGLCBHcmFwaGljc0NvbnRleHQzRDo6QWxwaGFEb1VubXVsdGlwbHks
IGZsb2F0LCB1aW50MTZfdD4oY29uc3QgZmxvYXQqIHNvdXJjZSwgdWludDE2X3QqIGRlc3RpbmF0
aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCit7CisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsg
aSA8IHBpeGVsc1BlclJvdzsgKytpKSB7CisgICAgICAgIGZsb2F0IHNjYWxlRmFjdG9yID0gc291
cmNlWzNdID8gMS4wZiAvIHNvdXJjZVszXSA6IDEuMGY7CisgICAgICAgIGNvbnN0IGZsb2F0IGlu
dGVybWVkaWF0ZUZsb2F0QXJyYXlbNF0gPSB7Kihzb3VyY2UpICogc2NhbGVGYWN0b3IsCisgICAg
ICAgICAgICAqKHNvdXJjZSsxKSAqIHNjYWxlRmFjdG9yLAorICAgICAgICAgICAgKihzb3VyY2Ur
MikgKiBzY2FsZUZhY3RvciwKKyAgICAgICAgICAgICooc291cmNlKzMpIH07CisgICAgICAgIGRl
c3RpbmF0aW9uWzBdID0gY29udmVydFRvSGFsZkZsb2F0KGludGVybWVkaWF0ZUZsb2F0QXJyYXkp
OworICAgICAgICBkZXN0aW5hdGlvblsxXSA9IGNvbnZlcnRUb0hhbGZGbG9hdChpbnRlcm1lZGlh
dGVGbG9hdEFycmF5KzEpOworICAgICAgICBkZXN0aW5hdGlvblsyXSA9IGNvbnZlcnRUb0hhbGZG
bG9hdChpbnRlcm1lZGlhdGVGbG9hdEFycmF5KzIpOworICAgICAgICBkZXN0aW5hdGlvblszXSA9
IGNvbnZlcnRUb0hhbGZGbG9hdChpbnRlcm1lZGlhdGVGbG9hdEFycmF5KzMpOworICAgICAgICBz
b3VyY2UgKz0gNDsKKyAgICAgICAgZGVzdGluYXRpb24gKz0gNDsKKyAgICB9Cit9CisKIHRlbXBs
YXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3Jt
YXRBMzJGLCBHcmFwaGljc0NvbnRleHQzRDo6QWxwaGFEb05vdGhpbmcsIGZsb2F0LCBmbG9hdD4o
Y29uc3QgZmxvYXQqIHNvdXJjZSwgZmxvYXQqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQ
ZXJSb3cpCiB7CiAgICAgZm9yICh1bnNpZ25lZCBpbnQgaSA9IDA7IGkgPCBwaXhlbHNQZXJSb3c7
ICsraSkgewpAQCAtMTA4Nyw2ICsxMTcyLDcgQEAgQUxXQVlTX0lOTElORSBib29sIEhhc0NvbG9y
KGludCBmb3JtYXQpCiB7CiAgICAgcmV0dXJuIGZvcm1hdCA9PSBHcmFwaGljc0NvbnRleHQzRDo6
RGF0YUZvcm1hdFJHQkE4CiAgICAgICAgIHx8IGZvcm1hdCA9PSBHcmFwaGljc0NvbnRleHQzRDo6
RGF0YUZvcm1hdFJHQkEzMkYKKyAgICAgICAgfHwgZm9ybWF0ID09IEdyYXBoaWNzQ29udGV4dDNE
OjpEYXRhRm9ybWF0UkdCQTE2RgogICAgICAgICB8fCBmb3JtYXQgPT0gR3JhcGhpY3NDb250ZXh0
M0Q6OkRhdGFGb3JtYXRSR0I4CiAgICAgICAgIHx8IGZvcm1hdCA9PSBHcmFwaGljc0NvbnRleHQz
RDo6RGF0YUZvcm1hdFJHQjMyRgogICAgICAgICB8fCBmb3JtYXQgPT0gR3JhcGhpY3NDb250ZXh0
M0Q6OkRhdGFGb3JtYXRCR1I4CkBAIC0xMTE0LDYgKzEyMDAsMTEgQEAgc3RydWN0IElzRmxvYXRG
b3JtYXQgewogfTsKIAogdGVtcGxhdGU8aW50IEZvcm1hdD4KK3N0cnVjdCBJc0hhbGZGbG9hdEZv
cm1hdCB7CisgICAgc3RhdGljIGNvbnN0IGJvb2wgVmFsdWUgPSBGb3JtYXQgPT0gR3JhcGhpY3ND
b250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JBMTZGOworfTsKKwordGVtcGxhdGU8aW50IEZvcm1hdD4K
IHN0cnVjdCBJczE2YnBwRm9ybWF0IHsKICAgICBzdGF0aWMgY29uc3QgYm9vbCBWYWx1ZSA9CiAg
ICAgICAgIEZvcm1hdCA9PSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQkE1NTUxCkBA
IC0xMTIxLDI2ICsxMjEyLDM2IEBAIHN0cnVjdCBJczE2YnBwRm9ybWF0IHsKICAgICAgICAgfHwg
Rm9ybWF0ID09IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCNTY1OwogfTsKIAotdGVt
cGxhdGU8aW50IEZvcm1hdCwgYm9vbCBJc0Zsb2F0ID0gSXNGbG9hdEZvcm1hdDxGb3JtYXQ+OjpW
YWx1ZSwgYm9vbCBJczE2YnBwID0gSXMxNmJwcEZvcm1hdDxGb3JtYXQ+OjpWYWx1ZT4KK3RlbXBs
YXRlPGludCBGb3JtYXQsIGJvb2wgSXNGbG9hdCA9IElzRmxvYXRGb3JtYXQ8Rm9ybWF0Pjo6VmFs
dWUsIGJvb2wgSXMxNmJwcCA9IElzMTZicHBGb3JtYXQ8Rm9ybWF0Pjo6VmFsdWUsIGJvb2wgSXNI
YWxmRmxvYXQgPSBJc0hhbGZGbG9hdEZvcm1hdDxGb3JtYXQ+OjpWYWx1ZT4KIHN0cnVjdCBEYXRh
VHlwZUZvckZvcm1hdCB7CiAgICAgdHlwZWRlZiB1aW50OF90IFR5cGU7CiB9OwogCiB0ZW1wbGF0
ZTxpbnQgRm9ybWF0Pgotc3RydWN0IERhdGFUeXBlRm9yRm9ybWF0PEZvcm1hdCwgdHJ1ZSwgZmFs
c2U+IHsKK3N0cnVjdCBEYXRhVHlwZUZvckZvcm1hdDxGb3JtYXQsIHRydWUsIGZhbHNlLCBmYWxz
ZT4gewogICAgIHR5cGVkZWYgZmxvYXQgVHlwZTsKIH07CiAKIHRlbXBsYXRlPGludCBGb3JtYXQ+
Ci1zdHJ1Y3QgRGF0YVR5cGVGb3JGb3JtYXQ8Rm9ybWF0LCBmYWxzZSwgdHJ1ZT4geworc3RydWN0
IERhdGFUeXBlRm9yRm9ybWF0PEZvcm1hdCwgZmFsc2UsIHRydWUsIGZhbHNlPiB7CiAgICAgdHlw
ZWRlZiB1aW50MTZfdCBUeXBlOwogfTsKIAogdGVtcGxhdGU8aW50IEZvcm1hdD4KK3N0cnVjdCBE
YXRhVHlwZUZvckZvcm1hdDxGb3JtYXQsIGZhbHNlLCBmYWxzZSwgdHJ1ZT4geworICAgIHR5cGVk
ZWYgdWludDE2X3QgVHlwZTsKK307CisKK3RlbXBsYXRlPGludCBGb3JtYXQsIGJvb2wgSXNIYWxm
RmxvYXQgPSBJc0hhbGZGbG9hdEZvcm1hdDxGb3JtYXQ+OjpWYWx1ZT4KIHN0cnVjdCBJbnRlcm1l
ZGlhdGVGb3JtYXQgewogICAgIHN0YXRpYyBjb25zdCBpbnQgVmFsdWUgPSBJc0Zsb2F0Rm9ybWF0
PEZvcm1hdD46OlZhbHVlID8gR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JBMzJGIDog
R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JBODsKIH07CiAKK3RlbXBsYXRlPGludCBG
b3JtYXQ+CitzdHJ1Y3QgSW50ZXJtZWRpYXRlRm9ybWF0PEZvcm1hdCwgdHJ1ZT4geworICAgIHN0
YXRpYyBjb25zdCBpbnQgVmFsdWUgPSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQkEz
MkY7Cit9OworCiBBTFdBWVNfSU5MSU5FIHVuc2lnbmVkIFRleGVsQnl0ZXNGb3JGb3JtYXQoR3Jh
cGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQgZm9ybWF0KQogewogICAgIHN3aXRjaCAoZm9ybWF0
KSB7CkBAIC0xMTY0LDYgKzEyNjUsNyBAQCBBTFdBWVNfSU5MSU5FIHVuc2lnbmVkIFRleGVsQnl0
ZXNGb3JGb3JtYXQoR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQgZm9ybWF0KQogICAgIGNh
c2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRBMzJGOgogICAgICAgICByZXR1cm4gNDsK
ICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkEzMkY6CisgICAgY2FzZSBH
cmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQkExNkY6CiAgICAgICAgIHJldHVybiA4Owog
ICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0IzMkY6CiAgICAgICAgIHJl
dHVybiAxMjsKQEAgLTEyNjEsNiArMTM2Myw3IEBAIEFMV0FZU19JTkxJTkUgdm9pZCBGb3JtYXRD
b252ZXJ0ZXI6OmNvbnZlcnQoR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQgZHN0Rm9yCiAg
ICAgICAgICAgICBGT1JNQVRDT05WRVJURVJfQ0FTRV9EU1RGT1JNQVQoR3JhcGhpY3NDb250ZXh0
M0Q6OkRhdGFGb3JtYXRSR0JBNTU1MSkKICAgICAgICAgICAgIEZPUk1BVENPTlZFUlRFUl9DQVNF
X0RTVEZPUk1BVChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQkE0NDQ0KQogICAgICAg
ICAgICAgRk9STUFUQ09OVkVSVEVSX0NBU0VfRFNURk9STUFUKEdyYXBoaWNzQ29udGV4dDNEOjpE
YXRhRm9ybWF0UkdCQTMyRikKKyAgICAgICAgICAgIEZPUk1BVENPTlZFUlRFUl9DQVNFX0RTVEZP
Uk1BVChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQkExNkYpCiAgICAgICAgIGRlZmF1
bHQ6CiAgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgfQpAQCAtMTMy
MSw3ICsxNDI0LDggQEAgQUxXQVlTX0lOTElORSB2b2lkIEZvcm1hdENvbnZlcnRlcjo6Y29udmVy
dCgpCiAgICAgdHlwZWRlZiB0eXBlbmFtZSBEYXRhVHlwZUZvckZvcm1hdDxJbnRlcm1lZGlhdGVT
cmNGb3JtYXQ+OjpUeXBlIEludGVybWVkaWF0ZVNyY1R5cGU7CiAgICAgY29uc3QgcHRyZGlmZl90
IHNyY1N0cmlkZUluRWxlbWVudHMgPSBtX3NyY1N0cmlkZSAvIHNpemVvZihTcmNUeXBlKTsKICAg
ICBjb25zdCBwdHJkaWZmX3QgZHN0U3RyaWRlSW5FbGVtZW50cyA9IG1fZHN0U3RyaWRlIC8gc2l6
ZW9mKERzdFR5cGUpOwotICAgIGNvbnN0IGJvb2wgdHJpdmlhbFVucGFjayA9IChTcmNGb3JtYXQg
PT0gR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JBOCAmJiAhSXNGbG9hdEZvcm1hdDxE
c3RGb3JtYXQ+OjpWYWx1ZSkgfHwgU3JjRm9ybWF0ID09IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRh
Rm9ybWF0UkdCQTMyRjsKKyAgICBjb25zdCBib29sIHRyaXZpYWxVbnBhY2sgPSAoU3JjRm9ybWF0
ID09IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCQTggJiYgIUlzRmxvYXRGb3JtYXQ8
RHN0Rm9ybWF0Pjo6VmFsdWUgJiYgIUlzSGFsZkZsb2F0Rm9ybWF0PERzdEZvcm1hdD46OlZhbHVl
KQorICAgICAgICB8fCBTcmNGb3JtYXQgPT0gR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRS
R0JBMzJGOwogICAgIGNvbnN0IGJvb2wgdHJpdmlhbFBhY2sgPSAoRHN0Rm9ybWF0ID09IEdyYXBo
aWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCQTggfHwgRHN0Rm9ybWF0ID09IEdyYXBoaWNzQ29u
dGV4dDNEOjpEYXRhRm9ybWF0UkdCQTMyRikgJiYgYWxwaGFPcCA9PSBHcmFwaGljc0NvbnRleHQz
RDo6QWxwaGFEb05vdGhpbmcgJiYgbV9kc3RTdHJpZGUgPiAwOwogICAgIEFTU0VSVCghdHJpdmlh
bFVucGFjayB8fCAhdHJpdmlhbFBhY2spOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRC5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0QuaAppbmRleCBlYTNhNzI4ZTZlYjAzMzA5
NWM4OWU2MDNhZTNkZTNiYTNmZDA2N2NhLi4wYTMzYzQ5Y2RlZjg1ZTI1Njc4OTc3MzlkMzBjMGZj
ZjZkNDE2YjQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9H
cmFwaGljc0NvbnRleHQzRC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0dyYXBoaWNzQ29udGV4dDNELmgKQEAgLTYwNCw2ICs2MDQsNyBAQCBwdWJsaWM6CiAgICAgICAg
IERhdGFGb3JtYXRSR0JBMTZMaXR0bGUsCiAgICAgICAgIERhdGFGb3JtYXRSR0JBMTZCaWcsCiAg
ICAgICAgIERhdGFGb3JtYXRSR0JBMzJGLAorICAgICAgICBEYXRhRm9ybWF0UkdCQTE2RiwKICAg
ICAgICAgRGF0YUZvcm1hdFJHQjgsCiAgICAgICAgIERhdGFGb3JtYXRSR0IxNkxpdHRsZSwKICAg
ICAgICAgRGF0YUZvcm1hdFJHQjE2QmlnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dDNET3BlbkdMLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHQzRE9wZW5H
TC5jcHAKaW5kZXggNGQ3ODY3OGIyMTg3MmRiZGI2YzQwY2JiYzYyYzQ2M2ViMDM4MTBlMy4uZmNk
ODk0NzYyNTA5NzI5YjdlMThjYjNkZDk5MWVhZTcyNjA4NGZjMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dDNET3BlbkdM
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhp
Y3NDb250ZXh0M0RPcGVuR0wuY3BwCkBAIC0yNzMsNiArMjczLDE3IEBAIGJvb2wgR3JhcGhpY3ND
b250ZXh0M0Q6OnRleEltYWdlMkQoR0MzRGVudW0gdGFyZ2V0LCBHQzNEaW50IGxldmVsLCBHQzNE
ZW51bSBpbnRlCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK3ZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6
OnRleFN1YkltYWdlMkQoR0MzRGVudW0gdGFyZ2V0LCBHQzNEaW50IGxldmVsLCBHQzNEaW50IHhv
ZmYsIEdDM0RpbnQgeW9mZiwgR0MzRHNpemVpIHdpZHRoLCBHQzNEc2l6ZWkgaGVpZ2h0LCBHQzNE
ZW51bSBmb3JtYXQsIEdDM0RlbnVtIHR5cGUsIGNvbnN0IHZvaWQqIHBpeGVscykKK3sKKyAgICBp
ZiAodHlwZSA9PSBIQUxGX0ZMT0FUX09FUykKKyAgICAgICAgdHlwZSA9IEdMX0hBTEZfRkxPQVRf
QVJCOworCisgICAgbWFrZUNvbnRleHRDdXJyZW50KCk7CisKKyAgICAvLyBGSVhNRTogd2Ugd2ls
bCBuZWVkIHRvIGRlYWwgd2l0aCBQaXhlbFN0b3JlIHBhcmFtcyB3aGVuIGRlYWxpbmcgd2l0aCBp
bWFnZSBidWZmZXJzIHRoYXQgZGlmZmVyIGZyb20gdGhlIHN1YmltYWdlIHNpemUuCisgICAgOjpn
bFRleFN1YkltYWdlMkQodGFyZ2V0LCBsZXZlbCwgeG9mZiwgeW9mZiwgd2lkdGgsIGhlaWdodCwg
Zm9ybWF0LCB0eXBlLCBwaXhlbHMpOworfQorCiB2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpkZXB0
aFJhbmdlKEdDM0RjbGFtcGYgek5lYXIsIEdDM0RjbGFtcGYgekZhcikKIHsKICAgICBtYWtlQ29u
dGV4dEN1cnJlbnQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHQzRE9wZW5HTENvbW1vbi5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0M0RPcGVuR0xDb21t
b24uY3BwCmluZGV4IDM5NjFhNWY3ZWRhYmU0NDQxZjExMTVhNmUyNjljODA4NGFmY2ExNGEuLmE4
Mjc0MDUyM2IyZjc4ZjE3MDVmZTk0NDdlOGE3NWIyN2MwMzc2OTAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHQzRE9wZW5H
TENvbW1vbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3Blbmds
L0dyYXBoaWNzQ29udGV4dDNET3BlbkdMQ29tbW9uLmNwcApAQCAtMTMwNCwxNCArMTMwNCw2IEBA
IEdDM0RzaXplaXB0ciBHcmFwaGljc0NvbnRleHQzRDo6Z2V0VmVydGV4QXR0cmliT2Zmc2V0KEdD
M0R1aW50IGluZGV4LCBHQzNEZW51bSBwCiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PEdDM0RzaXpl
aXB0cj4ocmVpbnRlcnByZXRfY2FzdDxpbnRwdHJfdD4ocG9pbnRlcikpOwogfQogCi12b2lkIEdy
YXBoaWNzQ29udGV4dDNEOjp0ZXhTdWJJbWFnZTJEKEdDM0RlbnVtIHRhcmdldCwgR0MzRGludCBs
ZXZlbCwgR0MzRGludCB4b2ZmLCBHQzNEaW50IHlvZmYsIEdDM0RzaXplaSB3aWR0aCwgR0MzRHNp
emVpIGhlaWdodCwgR0MzRGVudW0gZm9ybWF0LCBHQzNEZW51bSB0eXBlLCBjb25zdCB2b2lkKiBw
aXhlbHMpCi17Ci0gICAgbWFrZUNvbnRleHRDdXJyZW50KCk7Ci0KLSAgICAvLyBGSVhNRTogd2Ug
d2lsbCBuZWVkIHRvIGRlYWwgd2l0aCBQaXhlbFN0b3JlIHBhcmFtcyB3aGVuIGRlYWxpbmcgd2l0
aCBpbWFnZSBidWZmZXJzIHRoYXQgZGlmZmVyIGZyb20gdGhlIHN1YmltYWdlIHNpemUuCi0gICAg
OjpnbFRleFN1YkltYWdlMkQodGFyZ2V0LCBsZXZlbCwgeG9mZiwgeW9mZiwgd2lkdGgsIGhlaWdo
dCwgZm9ybWF0LCB0eXBlLCBwaXhlbHMpOwotfQotCiB2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpj
b21wcmVzc2VkVGV4SW1hZ2UyRChHQzNEZW51bSB0YXJnZXQsIEdDM0RpbnQgbGV2ZWwsIEdDM0Rl
bnVtIGludGVybmFsZm9ybWF0LCBHQzNEc2l6ZWkgd2lkdGgsIEdDM0RzaXplaSBoZWlnaHQsIEdD
M0RpbnQgYm9yZGVyLCBHQzNEc2l6ZWkgaW1hZ2VTaXplLCBjb25zdCB2b2lkKiBkYXRhKQogewog
ICAgIG1ha2VDb250ZXh0Q3VycmVudCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dDNET3BlbkdMRVMuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dDNET3Bl
bkdMRVMuY3BwCmluZGV4IGYzYmU5MjM3YjBlMDBhZDE2YzdlMjVhOTdmMmVkMDYyOWZmOTQyODAu
LjYzYmFiYTM5M2U4MTA5ZWZmNDc2NDAyNzBmOTdmYWJkNzFmZDllODIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHQzRE9w
ZW5HTEVTLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wv
R3JhcGhpY3NDb250ZXh0M0RPcGVuR0xFUy5jcHAKQEAgLTIwNiw2ICsyMDYsMTQgQEAgYm9vbCBH
cmFwaGljc0NvbnRleHQzRDo6dGV4SW1hZ2UyRChHQzNEZW51bSB0YXJnZXQsIEdDM0RpbnQgbGV2
ZWwsIEdDM0RlbnVtIGludGUKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAordm9pZCBHcmFwaGljc0Nv
bnRleHQzRDo6dGV4U3ViSW1hZ2UyRChHQzNEZW51bSB0YXJnZXQsIEdDM0RpbnQgbGV2ZWwsIEdD
M0RpbnQgeG9mZiwgR0MzRGludCB5b2ZmLCBHQzNEc2l6ZWkgd2lkdGgsIEdDM0RzaXplaSBoZWln
aHQsIEdDM0RlbnVtIGZvcm1hdCwgR0MzRGVudW0gdHlwZSwgY29uc3Qgdm9pZCogcGl4ZWxzKQor
eworICAgIG1ha2VDb250ZXh0Q3VycmVudCgpOworCisgICAgLy8gRklYTUU6IHdlIHdpbGwgbmVl
ZCB0byBkZWFsIHdpdGggUGl4ZWxTdG9yZSBwYXJhbXMgd2hlbiBkZWFsaW5nIHdpdGggaW1hZ2Ug
YnVmZmVycyB0aGF0IGRpZmZlciBmcm9tIHRoZSBzdWJpbWFnZSBzaXplLgorICAgIDo6Z2xUZXhT
dWJJbWFnZTJEKHRhcmdldCwgbGV2ZWwsIHhvZmYsIHlvZmYsIHdpZHRoLCBoZWlnaHQsIGZvcm1h
dCwgdHlwZSwgcGl4ZWxzKTsKK30KKwogdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6dmFsaWRhdGVB
dHRyaWJ1dGVzKCkKIHsKICAgICB2YWxpZGF0ZURlcHRoU3RlbmNpbCgiR0xfT0VTX3BhY2tlZF9k
ZXB0aF9zdGVuY2lsIik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggOWRmMTUzMDNmYWQyNGE1ZjQ2MDdlMzA4ZjIxNWUwNTU4
YjMwMmNiOS4uZmNlMTFjZDcwZTA3ZTA4ZjllM2YzMzA5Y2Y2MjNhZjgxN2YyNTI1NCAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDMwIEBACisyMDEzLTAzLTI3ICBOYXlhbiBLdW1hciBLICA8bmF5YW5ra0Btb3Rv
cm9sYS5jb20+CisKKyAgICAgICAgW1dlYkdMXSBTdXBwb3J0IGZvciB0ZXhJbWFnZTJEIG9mIHR5
cGUgSEFMRl9GTE9BVF9PRVMgd2l0aCBJbWFnZURhdGEsCisgICAgICAgIEhUTUxJbWFnZUVsZW1l
bnQsIEhUTUxDYW52YXNFbGVtZW50IGFuZCBIVE1MVmlkZW9FbGVtZW50LgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEwOTM2CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0L2NhbnZhcy93ZWJnbC9v
ZXMtdGV4dHVyZS1oYWxmLWZsb2F0LW5vdC1zdXBwb3J0ZWQtZXhwZWN0ZWQudHh0OiBSZW1vdmVk
LgorICAgICAgICAqIGZhc3QvY2FudmFzL3dlYmdsL29lcy10ZXh0dXJlLWhhbGYtZmxvYXQtbm90
LXN1cHBvcnRlZC5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGZhc3QvY2FudmFzL3dlYmdsL29l
cy10ZXh0dXJlLWhhbGYtZmxvYXQtd2l0aC1jYW52YXMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiBmYXN0L2NhbnZhcy93ZWJnbC9vZXMtdGV4dHVyZS1oYWxmLWZsb2F0LXdpdGgtY2Fu
dmFzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY2FudmFzL3dlYmdsL29lcy10ZXh0dXJl
LWhhbGYtZmxvYXQtd2l0aC1pbWFnZS1kYXRhLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogZmFzdC9jYW52YXMvd2ViZ2wvb2VzLXRleHR1cmUtaGFsZi1mbG9hdC13aXRoLWltYWdlLWRh
dGEuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9jYW52YXMvd2ViZ2wvb2VzLXRleHR1cmUt
aGFsZi1mbG9hdC13aXRoLWltYWdlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFz
dC9jYW52YXMvd2ViZ2wvb2VzLXRleHR1cmUtaGFsZi1mbG9hdC13aXRoLWltYWdlLmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIGZhc3QvY2FudmFzL3dlYmdsL29lcy10ZXh0dXJlLWhhbGYtZmxvYXQt
d2l0aC12aWRlby1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY2FudmFzL3dl
YmdsL29lcy10ZXh0dXJlLWhhbGYtZmxvYXQtd2l0aC12aWRlby5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKC5ydW5UZXN0Lm5ld0ltYWdlLm9ubG9hZCk6CisgICAgICAgICgucnVuVGVzdCk6CisgICAg
ICAgICogcGxhdGZvcm0vY2hyb21pdW0vVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0
Zm9ybS9jaHJvbWl1bS9mYXN0L2NhbnZhcy93ZWJnbC9vZXMtdGV4dHVyZS1oYWxmLWZsb2F0LXdp
dGgtY2FudmFzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vY2hyb21p
dW0vZmFzdC9jYW52YXMvd2ViZ2wvb2VzLXRleHR1cmUtaGFsZi1mbG9hdC13aXRoLWltYWdlLWRh
dGEtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9mYXN0
L2NhbnZhcy93ZWJnbC9vZXMtdGV4dHVyZS1oYWxmLWZsb2F0LXdpdGgtaW1hZ2UtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2NhbnZhcy93ZWJn
bC9vZXMtdGV4dHVyZS1oYWxmLWZsb2F0LXdpdGgtdmlkZW8tZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9uczoKKwogMjAxMy0wMy0yNyAg
WmFuIERvYmVyc2VrICA8emRvYmVyc2VrQGlnYWxpYS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdl
ZCBHVEsgZ2FyZGVuaW5nLiBSZWJhc2VsaW5pbmcgYWZ0ZXIgcjE0Njk5Mi4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL29lcy10ZXh0dXJlLWhhbGYtZmxvYXQtbm90
LXN1cHBvcnRlZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9v
ZXMtdGV4dHVyZS1oYWxmLWZsb2F0LW5vdC1zdXBwb3J0ZWQtZXhwZWN0ZWQudHh0CmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyZjFiMzUwMmE4YWI4MzE4MzliYWI4NGVhNzI3OTI1NmNk
NGFlMjcxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL29lcy10ZXh0dXJlLWhhbGYtZmxvYXQtbm90LXN1
cHBvcnRlZC1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw0MCArMCwwIEBACi1UZXN0
aW5nIG5vdCB5ZXQgc3VwcG9ydGVkIHRleHR1cmUgdXBsb2FkcwotCi1PbiBzdWNjZXNzLCB5b3Ug
d2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBD
T01QTEVURSIuCi0KLQotCi1QQVNTIFdlYkdMIGNvbnRleHQgZXhpc3RzCi1QQVNTIFN1Y2Nlc3Nm
dWxseSBlbmFibGVkIE9FU190ZXh0dXJlX2hhbGZfZmxvYXQgZXh0ZW5zaW9uCi0KLVZlcmlmeSB3
aGV0aGVyIHVwbG9hZGluZyBJbWFnZURhdGEgdmlhIHRleEltYWdlMkQvdGV4U3ViSW1hZ2UyRCBp
cyBzdXBwb3J0ZWQKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6
IHRleHR1cmUgcGFyYW1ldGVyIHNldHVwIHNob3VsZCBzdWNjZWVkCi1QQVNTIGdldEVycm9yIHdh
cyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9PUEVSQVRJT04gOiBVcGxvYWRpbmcgdG8gaGFsZiBm
bG9hdCB0ZXh0dXJlIGlzIG5vdCB5ZXQgc3VwcG9ydGVkCi1QQVNTIGdldEVycm9yIHdhcyBleHBl
Y3RlZCB2YWx1ZTogTk9fRVJST1IgOiBVcGxvYWRpbmcgbnVsbCBBcnJheUJ1ZmZlclZpZXcgdG8g
aGFsZiBmbG9hdCB0ZXh0dXJlIHNob3VsZCBzdWNjZWVkCi1QQVNTIGdldEVycm9yIHdhcyBleHBl
Y3RlZCB2YWx1ZTogSU5WQUxJRF9PUEVSQVRJT04gOiBVcGxvYWRpbmcgdG8gaGFsZiBmbG9hdCB0
ZXh0dXJlIHVzaW5nIHRleFN1YkltYWdlMkQgaXMgbm90IHN1cHBvcnRlZCB5ZXQKLQotVmVyaWZ5
IHdoZXRoZXIgdXBsb2FkaW5nIEhUTUxJbWFnZUVsZW1lbnQgdmlhIHRleEltYWdlMkQvdGV4U3Vi
SW1hZ2UyRCBpcyBzdXBwb3J0ZWQKLQotVmVyaWZ5IHdoZXRoZXIgdXBsb2FkaW5nIEhUTUxDYW52
YXNFbGVtZW50IHZpYSB0ZXhJbWFnZTJEL3RleFN1YkltYWdlMkQgaXMgc3VwcG9ydGVkCi1QQVNT
IGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiB0ZXh0dXJlIHBhcmFtZXRl
ciBzZXR1cCBzaG91bGQgc3VjY2VlZAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6
IElOVkFMSURfT1BFUkFUSU9OIDogVXBsb2FkaW5nIHRvIGhhbGYgZmxvYXQgdGV4dHVyZSBpcyBu
b3QgeWV0IHN1cHBvcnRlZAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VS
Uk9SIDogVXBsb2FkaW5nIG51bGwgQXJyYXlCdWZmZXJWaWV3IHRvIGhhbGYgZmxvYXQgdGV4dHVy
ZSBzaG91bGQgc3VjY2VlZAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFM
SURfT1BFUkFUSU9OIDogVXBsb2FkaW5nIHRvIGhhbGYgZmxvYXQgdGV4dHVyZSB1c2luZyB0ZXhT
dWJJbWFnZTJEIGlzIG5vdCBzdXBwb3J0ZWQgeWV0Ci0KLVZlcmlmeSB3aGV0aGVyIHVwbG9hZGlu
ZyBIVE1MVmlkZW9FbGVtZW50IHZpYSB0ZXhJbWFnZTJEL3RleFN1YkltYWdlMkQgaXMgc3VwcG9y
dGVkCi0KLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQot
UEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogdGV4dHVyZSBwYXJh
bWV0ZXIgc2V0dXAgc2hvdWxkIHN1Y2NlZWQKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZh
bHVlOiBJTlZBTElEX09QRVJBVElPTiA6IFVwbG9hZGluZyB0byBoYWxmIGZsb2F0IHRleHR1cmUg
aXMgbm90IHlldCBzdXBwb3J0ZWQKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBO
T19FUlJPUiA6IFVwbG9hZGluZyBudWxsIEFycmF5QnVmZmVyVmlldyB0byBoYWxmIGZsb2F0IHRl
eHR1cmUgc2hvdWxkIHN1Y2NlZWQKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJ
TlZBTElEX09QRVJBVElPTiA6IFVwbG9hZGluZyB0byBoYWxmIGZsb2F0IHRleHR1cmUgdXNpbmcg
dGV4U3ViSW1hZ2UyRCBpcyBub3Qgc3VwcG9ydGVkIHlldAotUEFTUyBnZXRFcnJvciB3YXMgZXhw
ZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogdGV4dHVyZSBwYXJhbWV0ZXIgc2V0dXAgc2hvdWxkIHN1
Y2NlZWQKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX09QRVJBVElP
TiA6IFVwbG9hZGluZyB0byBoYWxmIGZsb2F0IHRleHR1cmUgaXMgbm90IHlldCBzdXBwb3J0ZWQK
LVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IFVwbG9hZGluZyBu
dWxsIEFycmF5QnVmZmVyVmlldyB0byBoYWxmIGZsb2F0IHRleHR1cmUgc2hvdWxkIHN1Y2NlZWQK
LVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX09QRVJBVElPTiA6IFVw
bG9hZGluZyB0byBoYWxmIGZsb2F0IHRleHR1cmUgdXNpbmcgdGV4U3ViSW1hZ2UyRCBpcyBub3Qg
c3VwcG9ydGVkIHlldAotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENP
TVBMRVRFCi0gCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9vZXMt
dGV4dHVyZS1oYWxmLWZsb2F0LW5vdC1zdXBwb3J0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qv
Y2FudmFzL3dlYmdsL29lcy10ZXh0dXJlLWhhbGYtZmxvYXQtbm90LXN1cHBvcnRlZC5odG1sCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhMDhlOTQ3ZDQ4NTJjYmU2OWI2YWM4NTE0YWU0
Y2U0OTI3MGRmZTg1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL29lcy10ZXh0dXJlLWhhbGYtZmxvYXQt
bm90LXN1cHBvcnRlZC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTcwICswLDAgQEAKLTwhRE9D
VFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLTx0aXRs
ZT5XZWJHTCBPRVNfdGV4dHVyZV9oYWxmX2Zsb2F0IG5vdCB5ZXQgaW1wbGVtZW50ZWQgQ29uZm9y
bWFuY2UgVGVzdHM8L3RpdGxlPgotPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9q
cy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiLz4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMv
ZGVza3RvcC1nbC1jb25zdGFudHMuanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+PC9zY3JpcHQ+
Ci08c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Njcmlw
dD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvd2ViZ2wtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2Ny
aXB0IHNyYz0icmVzb3VyY2VzL3dlYmdsLXRlc3QtdXRpbHMuanMiPjwvc2NyaXB0PgotPC9oZWFk
PgotPGJvZHk+Ci08Y2FudmFzIGlkPSJ0ZXhjYW52YXMiIHdpZHRoPSIxIiBoZWlnaHQ9IjIiPjwv
Y2FudmFzPgotPHNjcmlwdD4KLWRlc2NyaXB0aW9uKCJUZXN0aW5nIG5vdCB5ZXQgc3VwcG9ydGVk
IHRleHR1cmUgdXBsb2FkcyIpOwotZGVidWcoIiIpOwotCi1pZiAod2luZG93LmluaXROb25LaHJv
bm9zRnJhbWV3b3JrKSB7Ci0gICAgd2luZG93LmluaXROb25LaHJvbm9zRnJhbWV3b3JrKHRydWUp
OwotfQotCi1pZiAod2luZG93LmludGVybmFscykKLSAgICB3aW5kb3cuaW50ZXJuYWxzLnNldHRp
bmdzLnNldFdlYkdMRXJyb3JzVG9Db25zb2xlRW5hYmxlZChmYWxzZSk7Ci0KLXZhciB3dHUgPSBX
ZWJHTFRlc3RVdGlsczsKLXZhciBjYW52YXMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2Fu
dmFzIik7Ci12YXIgZ2wgPSB3dHUuY3JlYXRlM0RDb250ZXh0KGNhbnZhcyk7Ci12YXIgc3VjY2Vz
c2Z1bGx5UGFyc2VkID0gZmFsc2U7Ci0KLWlmICghZ2wpIHsKLSAgICB0ZXN0RmFpbGVkKCJXZWJH
TCBjb250ZXh0IGRvZXMgbm90IGV4aXN0cyIpOwotfSBlbHNlIHsKLSAgICB0ZXN0UGFzc2VkKCJX
ZWJHTCBjb250ZXh0IGV4aXN0cyIpOwotCi0gICAgaWYoIWdsLmdldEV4dGVuc2lvbigiT0VTX3Rl
eHR1cmVfaGFsZl9mbG9hdCIpKSB7Ci0gICAgICAgIHRlc3RQYXNzZWQoIk5vIE9FU190ZXh0dXJl
X2hhbGZfZmxvYXQgc3VwcG9ydC4gVGhpcyBpcyBsZWdhbCIpOwotICAgIH0gZWxzZSB7Ci0gICAg
ICAgIHRlc3RQYXNzZWQoIlN1Y2Nlc3NmdWxseSBlbmFibGVkIE9FU190ZXh0dXJlX2hhbGZfZmxv
YXQgZXh0ZW5zaW9uIik7Ci0gICAgICAgIAotICAgICAgICB2YXIgY2FudmFzMmQgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgidGV4Y2FudmFzIik7Ci0gICAgICAgIHZhciBjb250ZXh0MmQgPSBj
YW52YXMyZC5nZXRDb250ZXh0KCIyZCIpOwotCi0gICAgICAgIHJ1bkltYWdlRGF0YVVuc3VwcG9y
dGVkVGVzdChjYW52YXMyZCwgY29udGV4dDJkKTsKLSAgICAgICAgcnVuSFRNTEltYWdlRWxlbWVu
dFVuc3VwcG9ydGVkVGVzdChjYW52YXMyZCwgY29udGV4dDJkKTsKLSAgICAgICAgcnVuSFRNTENh
bnZhc0VsZW1lbnRVbnN1cHBvcnRlZFRlc3QoY2FudmFzMmQsIGNvbnRleHQyZCk7Ci0gICAgICAg
IHJ1bkhUTUxWaWRlb0VsZW1lbnRVbnN1cHBvcnRlZFRlc3QoY2FudmFzMmQsIGNvbnRleHQyZCk7
Ci0gICAgfQotfQotCi1mdW5jdGlvbiBhbGxvY2F0ZVRleHR1cmUoKQotewotICAgIHZhciB0ZXh0
dXJlID0gZ2wuY3JlYXRlVGV4dHVyZSgpOwotICAgIGdsLmJpbmRUZXh0dXJlKGdsLlRFWFRVUkVf
MkQsIHRleHR1cmUpOwotICAgIGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVY
VFVSRV9NSU5fRklMVEVSLCBnbC5ORUFSRVNUKTsKLSAgICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRF
WFRVUkVfMkQsIGdsLlRFWFRVUkVfTUFHX0ZJTFRFUiwgZ2wuTkVBUkVTVCk7Ci0gICAgZ2wudGV4
UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX1dSQVBfUywgZ2wuQ0xBTVBfVE9f
RURHRSk7Ci0gICAgZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX1dS
QVBfVCwgZ2wuQ0xBTVBfVE9fRURHRSk7Ci0gICAgZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19F
UlJPUiwgInRleHR1cmUgcGFyYW1ldGVyIHNldHVwIHNob3VsZCBzdWNjZWVkIik7Ci0gICAgcmV0
dXJuIHRleHR1cmU7Ci19Ci0KLWZ1bmN0aW9uIHJ1blRleHR1cmVVcGxvYWRUZXN0KGltYWdlKQot
ewotICAgIHZhciB0ZXh0dXJlID0gYWxsb2NhdGVUZXh0dXJlKCk7Ci0gICAgZ2wudGV4SW1hZ2Uy
RChnbC5URVhUVVJFXzJELCAwLCBnbC5SR0JBLCBnbC5SR0JBLCBnbC5IQUxGX0ZMT0FUX09FUywg
aW1hZ2UpOwotICAgIGdsRXJyb3JTaG91bGRCZShnbCwgZ2wuSU5WQUxJRF9PUEVSQVRJT04sICJV
cGxvYWRpbmcgdG8gaGFsZiBmbG9hdCB0ZXh0dXJlIGlzIG5vdCB5ZXQgc3VwcG9ydGVkIik7Ci0K
LSAgICAvLyBDaGVjayBpZiB1cGxvYWRpbmcgSW1hZ2VEYXRhIHZpYSB0ZXhTdWJJbWFnZTJEIGlz
IHN1cHBvcnRlZAotICAgIGdsLnRleEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgZ2wuUkdCQSwg
MSwgMiwgMCwgZ2wuUkdCQSwgZ2wuSEFMRl9GTE9BVF9PRVMsIG51bGwpOwotICAgIGdsRXJyb3JT
aG91bGRCZShnbCwgZ2wuTk9fRVJST1IsICJVcGxvYWRpbmcgbnVsbCBBcnJheUJ1ZmZlclZpZXcg
dG8gaGFsZiBmbG9hdCB0ZXh0dXJlIHNob3VsZCBzdWNjZWVkIik7Ci0gICAgZ2wudGV4U3ViSW1h
Z2UyRChnbC5URVhUVVJFXzJELCAwLCAwLCAwLCBnbC5SR0JBLCBnbC5IQUxGX0ZMT0FUX09FUywg
aW1hZ2UpOwotICAgIGdsRXJyb3JTaG91bGRCZShnbCwgZ2wuSU5WQUxJRF9PUEVSQVRJT04sICJV
cGxvYWRpbmcgdG8gaGFsZiBmbG9hdCB0ZXh0dXJlIHVzaW5nIHRleFN1YkltYWdlMkQgaXMgbm90
IHN1cHBvcnRlZCB5ZXQiKTsKLX0KLQotZnVuY3Rpb24gcnVuSW1hZ2VEYXRhVW5zdXBwb3J0ZWRU
ZXN0KGNhbnZhczJkLCBjb250ZXh0MmQpCi17Ci0gICAgZGVidWcoIiIpOwotICAgIGRlYnVnKCJW
ZXJpZnkgd2hldGhlciB1cGxvYWRpbmcgSW1hZ2VEYXRhIHZpYSB0ZXhJbWFnZTJEL3RleFN1Yklt
YWdlMkQgaXMgc3VwcG9ydGVkIik7Ci0gICAgCi0gICAgLy8gQ2hlY2sgaWYgdXBsb2FkaW5nIElt
YWdlRGF0YSB2aWEgdGV4SW1hZ2UyRCBpcyBzdXBwb3J0ZWQKLSAgICB2YXIgaW1hZ2VEYXRhID0g
Y29udGV4dDJkLmNyZWF0ZUltYWdlRGF0YSgxLCAyKTsKLSAgICB2YXIgZGF0YSA9IGltYWdlRGF0
YS5kYXRhOwotICAgIGRhdGFbMF0gPSAyNTU7Ci0gICAgZGF0YVsxXSA9IDA7Ci0gICAgZGF0YVsy
XSA9IDA7Ci0gICAgZGF0YVszXSA9IDI1NTsKLSAgICBkYXRhWzRdID0gMDsKLSAgICBkYXRhWzVd
ID0gMjU1OwotICAgIGRhdGFbNl0gPSAwOwotICAgIGRhdGFbN10gPSAwOwotCi0gICAgcnVuVGV4
dHVyZVVwbG9hZFRlc3QoaW1hZ2VEYXRhKTsgICAgCi19Ci0KLWZ1bmN0aW9uIHJ1bkhUTUxJbWFn
ZUVsZW1lbnRVbnN1cHBvcnRlZFRlc3QoY2FudmFzMmQsIGNvbnRleHQyZCkKLXsKLSAgICBkZWJ1
ZygiIik7Ci0gICAgZGVidWcoIlZlcmlmeSB3aGV0aGVyIHVwbG9hZGluZyBIVE1MSW1hZ2VFbGVt
ZW50IHZpYSB0ZXhJbWFnZTJEL3RleFN1YkltYWdlMkQgaXMgc3VwcG9ydGVkIik7Ci0KLSAgICB2
YXIgaW1hZ2VEYXRhID0gY29udGV4dDJkLmNyZWF0ZUltYWdlRGF0YSgxLCAyKTsKLSAgICB2YXIg
ZGF0YSA9IGltYWdlRGF0YS5kYXRhOwotICAgIGRhdGFbMF0gPSAyNTU7Ci0gICAgZGF0YVsxXSA9
IDA7Ci0gICAgZGF0YVsyXSA9IDA7Ci0gICAgZGF0YVszXSA9IDI1NTsKLSAgICBkYXRhWzRdID0g
MDsKLSAgICBkYXRhWzVdID0gMjU1OwotICAgIGRhdGFbNl0gPSAwOwotICAgIGRhdGFbN10gPSAw
OwotICAgIGNvbnRleHQyZC5wdXRJbWFnZURhdGEoaW1hZ2VEYXRhLCAwLCAwKTsKLQotICAgIHZh
ciBuZXdJbWFnZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImltZyIpOwotICAgIG5ld0ltYWdl
Lm9ubG9hZCA9IGZ1bmN0aW9uKCkgewotICAgICAgICBydW5UZXh0dXJlVXBsb2FkVGVzdChuZXdJ
bWFnZSk7Ci0gICAgfQotICAgIG5ld0ltYWdlLnNyYyA9IGNhbnZhczJkLnRvRGF0YVVSTCgpOwot
fQotCi1mdW5jdGlvbiBzZXRDYW52YXNUb1JlZEdyZWVuKGN0eCkgewotICAgIHZhciB3aWR0aCA9
IGN0eC5jYW52YXMud2lkdGg7Ci0gICAgdmFyIGhlaWdodCA9IGN0eC5jYW52YXMuaGVpZ2h0Owot
ICAgIHZhciBoYWxmSGVpZ2h0ID0gTWF0aC5mbG9vcihoZWlnaHQgLyAyKTsKLSAgICBjdHguZmls
bFN0eWxlID0gIiNmZjAwMDAiOwotICAgIGN0eC5maWxsUmVjdCgwLCAwLCB3aWR0aCwgaGFsZkhl
aWdodCk7Ci0gICAgY3R4LmZpbGxTdHlsZSA9ICIjMDBmZjAwIjsKLSAgICBjdHguZmlsbFJlY3Qo
MCwgaGFsZkhlaWdodCwgd2lkdGgsIGhlaWdodCAtIGhhbGZIZWlnaHQpOwotfQotCi1mdW5jdGlv
biBydW5IVE1MQ2FudmFzRWxlbWVudFVuc3VwcG9ydGVkVGVzdChjYW52YXMyZCwgY29udGV4dDJk
KQotewotICAgIGRlYnVnKCIiKTsKLSAgICBkZWJ1ZygiVmVyaWZ5IHdoZXRoZXIgdXBsb2FkaW5n
IEhUTUxDYW52YXNFbGVtZW50IHZpYSB0ZXhJbWFnZTJEL3RleFN1YkltYWdlMkQgaXMgc3VwcG9y
dGVkIik7Ci0gICAgCi0gICAgY29udGV4dDJkLndpZHRoID0gMTsKLSAgICBjb250ZXh0MmQuaGVp
Z2h0ID0gMjsKLSAgICBzZXRDYW52YXNUb1JlZEdyZWVuKGNvbnRleHQyZCk7Ci0KLSAgICBydW5U
ZXh0dXJlVXBsb2FkVGVzdChjYW52YXMyZCk7Ci19Ci0KLWZ1bmN0aW9uIHJ1bkhUTUxWaWRlb0Vs
ZW1lbnRVbnN1cHBvcnRlZFRlc3QoY2FudmFzMmQsIGNvbnRleHQyZCkKLXsKLSAgICBkZWJ1Zygi
Iik7Ci0gICAgZGVidWcoIlZlcmlmeSB3aGV0aGVyIHVwbG9hZGluZyBIVE1MVmlkZW9FbGVtZW50
IHZpYSB0ZXhJbWFnZTJEL3RleFN1YkltYWdlMkQgaXMgc3VwcG9ydGVkIik7Ci0KLSAgICB2YXIg
aW5mbyA9IHsgc3JjOiAicmVzb3VyY2VzL3JlZC1ncmVlbi5tcDQiLCB0eXBlOiAndmlkZW8vbXA0
OyBjb2RlY3M9ImF2YzEuNDJFMDFFLCBtcDRhLjQwLjIiJ307Ci0gICAgdmFyIHZpZGVvID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgidmlkZW8iKTsKLSAgICBpZiAoIXZpZGVvLmNhblBsYXlUeXBl
KSB7Ci0gICAgICAgIHRlc3RGYWlsZWQoInZpZGVvLmNhblBsYXlUeXBlIHJlcXVpcmVkIG1ldGhv
ZCBpcyBtaXNzaW5nIik7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0gICAgZG9jdW1lbnQuYm9k
eS5hcHBlbmRDaGlsZCh2aWRlbyk7Ci0gICAgdmlkZW8uYWRkRXZlbnRMaXN0ZW5lcigKLSAgICAg
ICAgInBsYXlpbmciLCBmdW5jdGlvbigpIHsgcnVuVGV4dHVyZVVwbG9hZFRlc3QodmlkZW8pOyBm
aW5pc2hUZXN0KCk7IH0sIHRydWUpOwotICAgIHZpZGVvLnR5cGUgPSBpbmZvLnR5cGU7Ci0gICAg
dmlkZW8uc3JjID0gaW5mby5zcmM7Ci0gICAgdmlkZW8ubG9vcCA9IHRydWU7Ci0gICAgdmlkZW8u
d2lkdGggPSAxOwotICAgIHZpZGVvLmhlaWdodCA9IDI7Ci0gICAgdmlkZW8ucGxheSgpOwotCi19
Ci0KLWRlYnVnKCIiKTsKLQotPC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3Vy
Y2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+Ci0KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL29lcy10ZXh0dXJlLWhhbGYtZmxv
YXQtd2l0aC1jYW52YXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2Vi
Z2wvb2VzLXRleHR1cmUtaGFsZi1mbG9hdC13aXRoLWNhbnZhcy1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMjU3NGY0ZjE1OTYwYTRjMjI4NmNhMGU3NmM1MWViNmM4M2U5MDMwZQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL29lcy10ZXh0dXJlLWhhbGYt
ZmxvYXQtd2l0aC1jYW52YXMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMzAgQEAKK1ZlcmlmeSB0
ZXhJbWFnZTJEIGFuZCB0ZXhTdWJJbWFnZTJEIGNvZGUgcGF0aHMgdGFraW5nIGNhbnZhcyBlbGVt
ZW50cyAoUkdCQS9IQUxGX0ZMT0FUX09FUykKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEg
c2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgor
CitQQVNTIFN1Y2Nlc3NmdWxseSBlbmFibGVkIE9FU190ZXh0dXJlX2hhbGZfZmxvYXQgZXh0ZW5z
aW9uCitUZXN0aW5nIHRleEltYWdlMkQgd2l0aCBmbGlwWT10cnVlCitDaGVja2luZyBsb3dlciBs
ZWZ0IGNvcm5lcgorUEFTUyBzaG91bGRCZSAwLDI1NSwwCitDaGVja2luZyB1cHBlciBsZWZ0IGNv
cm5lcgorUEFTUyBzaG91bGRCZSAyNTUsMCwwCitUZXN0aW5nIHRleEltYWdlMkQgd2l0aCBmbGlw
WT1mYWxzZQorQ2hlY2tpbmcgbG93ZXIgbGVmdCBjb3JuZXIKK1BBU1Mgc2hvdWxkQmUgMjU1LDAs
MAorQ2hlY2tpbmcgdXBwZXIgbGVmdCBjb3JuZXIKK1BBU1Mgc2hvdWxkQmUgMCwyNTUsMAorVGVz
dGluZyB0ZXhTdWJJbWFnZTJEIHdpdGggZmxpcFk9dHJ1ZQorQ2hlY2tpbmcgbG93ZXIgbGVmdCBj
b3JuZXIKK1BBU1Mgc2hvdWxkQmUgMCwyNTUsMAorQ2hlY2tpbmcgdXBwZXIgbGVmdCBjb3JuZXIK
K1BBU1Mgc2hvdWxkQmUgMjU1LDAsMAorVGVzdGluZyB0ZXhTdWJJbWFnZTJEIHdpdGggZmxpcFk9
ZmFsc2UKK0NoZWNraW5nIGxvd2VyIGxlZnQgY29ybmVyCitQQVNTIHNob3VsZEJlIDI1NSwwLDAK
K0NoZWNraW5nIHVwcGVyIGxlZnQgY29ybmVyCitQQVNTIHNob3VsZEJlIDAsMjU1LDAKK1BBU1Mg
Z2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IHNob3VsZCBiZSBubyBlcnJv
cnMKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9vZXMtdGV4dHVyZS1oYWxm
LWZsb2F0LXdpdGgtY2FudmFzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9v
ZXMtdGV4dHVyZS1oYWxmLWZsb2F0LXdpdGgtY2FudmFzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjk2NGJm
NDEwMTUyZjZjODNjYjBkZWE2ZjE0ZmExOTVlZTk0YzM2MAotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL29lcy10ZXh0dXJlLWhhbGYtZmxvYXQtd2l0aC1j
YW52YXMuaHRtbApAQCAtMCwwICsxLDI3IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhl
YWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9
Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyIvPgorPHNjcmlwdCBzcmM9Ii4u
Ly4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
cmVzb3VyY2VzL3dlYmdsLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNl
cy93ZWJnbC10ZXN0LXV0aWxzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMv
dGV4LWltYWdlLWFuZC1zdWItaW1hZ2UtMmQtd2l0aC1jYW52YXMuanMiPjwvc2NyaXB0PgorPHNj
cmlwdD4KK2Z1bmN0aW9uIHRlc3RQcm9sb2d1ZShnbCkgeworICAgIGlmICghZ2wuZ2V0RXh0ZW5z
aW9uKCJPRVNfdGV4dHVyZV9oYWxmX2Zsb2F0IikpIHsKKyAgICAgICAgdGVzdFBhc3NlZCgiTm8g
T0VTX3RleHR1cmVfaGFsZl9mbG9hdCBzdXBwb3J0IC0tIHRoaXMgaXMgbGVnYWwiKTsKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIHRlc3RQYXNzZWQoIlN1Y2Nlc3NmdWxseSBl
bmFibGVkIE9FU190ZXh0dXJlX2hhbGZfZmxvYXQgZXh0ZW5zaW9uIik7CisgICAgcmV0dXJuIHRy
dWU7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0nZ2VuZXJhdGVUZXN0KCJS
R0JBIiwgIkhBTEZfRkxPQVRfT0VTIiwgdGVzdFByb2xvZ3VlKSgpJz4KKzxjYW52YXMgaWQ9ImV4
YW1wbGUiIHdpZHRoPSIzMiIgaGVpZ2h0PSIzMiI+PC9jYW52YXM+Cis8ZGl2IGlkPSJkZXNjcmlw
dGlvbiI+PC9kaXY+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL29lcy10ZXh0dXJlLWhh
bGYtZmxvYXQtd2l0aC1pbWFnZS1kYXRhLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qv
Y2FudmFzL3dlYmdsL29lcy10ZXh0dXJlLWhhbGYtZmxvYXQtd2l0aC1pbWFnZS1kYXRhLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5iYTYzMTViMTExMTFiYjA1NWY1ZTBhZTFiM2VlYmNmZjdmY2I0
NGU2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvb2Vz
LXRleHR1cmUtaGFsZi1mbG9hdC13aXRoLWltYWdlLWRhdGEtZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsNTEgQEAKKyAKK1ZlcmlmeSB0ZXhJbWFnZTJEIGFuZCB0ZXhTdWJJbWFnZTJEIGNvZGUgcGF0
aHMgdGFraW5nIEltYWdlRGF0YSAoUkdCQS9IQUxGX0ZMT0FUX09FUykKKworT24gc3VjY2Vzcywg
eW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRF
U1QgQ09NUExFVEUiLgorCitQQVNTIFN1Y2Nlc3NmdWxseSBlbmFibGVkIE9FU190ZXh0dXJlX2hh
bGZfZmxvYXQgZXh0ZW5zaW9uCitUZXN0aW5nIHRleEltYWdlMkQgd2l0aCBmbGlwWT10cnVlIGFu
ZCBwcmVtdWx0aXBseUFscGhhPWZhbHNlCitDaGVja2luZyBib3R0b20gcGl4ZWwKK1BBU1Mgc2hv
dWxkQmUgMCwyNTUsMCwyNTUKK0NoZWNraW5nIHRvcCBwaXhlbAorUEFTUyBzaG91bGRCZSAyNTUs
MCwwLDI1NQorVGVzdGluZyB0ZXhJbWFnZTJEIHdpdGggZmxpcFk9ZmFsc2UgYW5kIHByZW11bHRp
cGx5QWxwaGE9ZmFsc2UKK0NoZWNraW5nIGJvdHRvbSBwaXhlbAorUEFTUyBzaG91bGRCZSAyNTUs
MCwwLDI1NQorQ2hlY2tpbmcgdG9wIHBpeGVsCitQQVNTIHNob3VsZEJlIDAsMjU1LDAsMjU1CitU
ZXN0aW5nIHRleEltYWdlMkQgd2l0aCBmbGlwWT10cnVlIGFuZCBwcmVtdWx0aXBseUFscGhhPXRy
dWUKK0NoZWNraW5nIGJvdHRvbSBwaXhlbAorUEFTUyBzaG91bGRCZSAwLDAsMCwyNTUKK0NoZWNr
aW5nIHRvcCBwaXhlbAorUEFTUyBzaG91bGRCZSAyNTUsMCwwLDI1NQorVGVzdGluZyB0ZXhJbWFn
ZTJEIHdpdGggZmxpcFk9ZmFsc2UgYW5kIHByZW11bHRpcGx5QWxwaGE9dHJ1ZQorQ2hlY2tpbmcg
Ym90dG9tIHBpeGVsCitQQVNTIHNob3VsZEJlIDI1NSwwLDAsMjU1CitDaGVja2luZyB0b3AgcGl4
ZWwKK1BBU1Mgc2hvdWxkQmUgMCwwLDAsMjU1CitUZXN0aW5nIHRleFN1YkltYWdlMkQgd2l0aCBm
bGlwWT10cnVlIGFuZCBwcmVtdWx0aXBseUFscGhhPWZhbHNlCitDaGVja2luZyBib3R0b20gcGl4
ZWwKK1BBU1Mgc2hvdWxkQmUgMCwyNTUsMCwyNTUKK0NoZWNraW5nIHRvcCBwaXhlbAorUEFTUyBz
aG91bGRCZSAyNTUsMCwwLDI1NQorVGVzdGluZyB0ZXhTdWJJbWFnZTJEIHdpdGggZmxpcFk9ZmFs
c2UgYW5kIHByZW11bHRpcGx5QWxwaGE9ZmFsc2UKK0NoZWNraW5nIGJvdHRvbSBwaXhlbAorUEFT
UyBzaG91bGRCZSAyNTUsMCwwLDI1NQorQ2hlY2tpbmcgdG9wIHBpeGVsCitQQVNTIHNob3VsZEJl
IDAsMjU1LDAsMjU1CitUZXN0aW5nIHRleFN1YkltYWdlMkQgd2l0aCBmbGlwWT10cnVlIGFuZCBw
cmVtdWx0aXBseUFscGhhPXRydWUKK0NoZWNraW5nIGJvdHRvbSBwaXhlbAorUEFTUyBzaG91bGRC
ZSAwLDAsMCwyNTUKK0NoZWNraW5nIHRvcCBwaXhlbAorUEFTUyBzaG91bGRCZSAyNTUsMCwwLDI1
NQorVGVzdGluZyB0ZXhTdWJJbWFnZTJEIHdpdGggZmxpcFk9ZmFsc2UgYW5kIHByZW11bHRpcGx5
QWxwaGE9dHJ1ZQorQ2hlY2tpbmcgYm90dG9tIHBpeGVsCitQQVNTIHNob3VsZEJlIDI1NSwwLDAs
MjU1CitDaGVja2luZyB0b3AgcGl4ZWwKK1BBU1Mgc2hvdWxkQmUgMCwwLDAsMjU1CitQQVNTIGdl
dEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiBzaG91bGQgYmUgbm8gZXJyb3Jz
CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvb2VzLXRleHR1cmUtaGFsZi1m
bG9hdC13aXRoLWltYWdlLWRhdGEuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmds
L29lcy10ZXh0dXJlLWhhbGYtZmxvYXQtd2l0aC1pbWFnZS1kYXRhLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
OTQ0NzQyYWZjOWU0NjYwN2Y5YTEzNWIyNjhmZjZmYjVjOGRjNjI3MgotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL29lcy10ZXh0dXJlLWhhbGYtZmxvYXQt
d2l0aC1pbWFnZS1kYXRhLmh0bWwKQEAgLTAsMCArMSwyOCBAQAorPCFET0NUWVBFIGh0bWw+Cis8
aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPGxpbmsgcmVsPSJzdHlsZXNo
ZWV0IiBocmVmPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiLz4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9InJlc291cmNlcy93ZWJnbC10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSJyZXNvdXJjZXMvd2ViZ2wtdGVzdC11dGlscy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
cmVzb3VyY2VzL3RleC1pbWFnZS1hbmQtc3ViLWltYWdlLTJkLXdpdGgtaW1hZ2UtZGF0YS5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0PgorZnVuY3Rpb24gdGVzdFByb2xvZ3VlKGdsKSB7CisgICAgaWYg
KCFnbC5nZXRFeHRlbnNpb24oIk9FU190ZXh0dXJlX2hhbGZfZmxvYXQiKSkgeworICAgICAgICB0
ZXN0UGFzc2VkKCJObyBPRVNfdGV4dHVyZV9oYWxmX2Zsb2F0IHN1cHBvcnQgLS0gdGhpcyBpcyBs
ZWdhbCIpOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgdGVzdFBhc3NlZCgi
U3VjY2Vzc2Z1bGx5IGVuYWJsZWQgT0VTX3RleHR1cmVfaGFsZl9mbG9hdCBleHRlbnNpb24iKTsK
KyAgICByZXR1cm4gdHJ1ZTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSdn
ZW5lcmF0ZVRlc3QoIlJHQkEiLCAiSEFMRl9GTE9BVF9PRVMiLCB0ZXN0UHJvbG9ndWUpKCknPgor
PGNhbnZhcyBpZD0idGV4Y2FudmFzIiB3aWR0aD0iMXB4IiBoZWlnaHQ9IjJweCI+PC9jYW52YXM+
Cis8Y2FudmFzIGlkPSJleGFtcGxlIiB3aWR0aD0iMXB4IiBoZWlnaHQ9IjJweCI+PC9jYW52YXM+
Cis8ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9kaXY+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4K
KzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dl
YmdsL29lcy10ZXh0dXJlLWhhbGYtZmxvYXQtd2l0aC1pbWFnZS1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9vZXMtdGV4dHVyZS1oYWxmLWZsb2F0LXdpdGgtaW1h
Z2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYxMzg0YWE3ZDkyM2VjZTM4MTAyZThiMDI2ZjM2
NGJjOWZlZjQ2N2IKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93
ZWJnbC9vZXMtdGV4dHVyZS1oYWxmLWZsb2F0LXdpdGgtaW1hZ2UtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsNzAgQEAKK1ZlcmlmeSB0ZXhJbWFnZTJEIGFuZCB0ZXhTdWJJbWFnZTJEIGNvZGUgcGF0
aHMgdGFraW5nIGltYWdlIGVsZW1lbnRzIChSR0JBL0hBTEZfRkxPQVRfT0VTKQorCitPbiBzdWNj
ZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBi
eSAiVEVTVCBDT01QTEVURSIuCisKK1BBU1MgU3VjY2Vzc2Z1bGx5IGVuYWJsZWQgT0VTX3RleHR1
cmVfaGFsZl9mbG9hdCBleHRlbnNpb24KK1Rlc3RpbmcgdGV4SW1hZ2UyRCB3aXRoIGZsaXBZPXRy
dWUKK0NoZWNraW5nIGxvd2VyIGxlZnQgY29ybmVyCitQQVNTIHNob3VsZEJlIDAsMjU1LDAKK0No
ZWNraW5nIHVwcGVyIGxlZnQgY29ybmVyCitQQVNTIHNob3VsZEJlIDI1NSwwLDAKK1Rlc3Rpbmcg
dGV4SW1hZ2UyRCB3aXRoIGZsaXBZPWZhbHNlCitDaGVja2luZyBsb3dlciBsZWZ0IGNvcm5lcgor
UEFTUyBzaG91bGRCZSAyNTUsMCwwCitDaGVja2luZyB1cHBlciBsZWZ0IGNvcm5lcgorUEFTUyBz
aG91bGRCZSAwLDI1NSwwCitUZXN0aW5nIHRleFN1YkltYWdlMkQgd2l0aCBmbGlwWT10cnVlCitD
aGVja2luZyBsb3dlciBsZWZ0IGNvcm5lcgorUEFTUyBzaG91bGRCZSAwLDI1NSwwCitDaGVja2lu
ZyB1cHBlciBsZWZ0IGNvcm5lcgorUEFTUyBzaG91bGRCZSAyNTUsMCwwCitUZXN0aW5nIHRleFN1
YkltYWdlMkQgd2l0aCBmbGlwWT1mYWxzZQorQ2hlY2tpbmcgbG93ZXIgbGVmdCBjb3JuZXIKK1BB
U1Mgc2hvdWxkQmUgMjU1LDAsMAorQ2hlY2tpbmcgdXBwZXIgbGVmdCBjb3JuZXIKK1BBU1Mgc2hv
dWxkQmUgMCwyNTUsMAorVGVzdGluZyB0ZXhJbWFnZTJEIHdpdGggZmxpcFk9dHJ1ZQorQ2hlY2tp
bmcgbG93ZXIgbGVmdCBjb3JuZXIKK1BBU1Mgc2hvdWxkQmUgMCwyNTUsMAorQ2hlY2tpbmcgdXBw
ZXIgbGVmdCBjb3JuZXIKK1BBU1Mgc2hvdWxkQmUgMjU1LDAsMAorVGVzdGluZyB0ZXhJbWFnZTJE
IHdpdGggZmxpcFk9ZmFsc2UKK0NoZWNraW5nIGxvd2VyIGxlZnQgY29ybmVyCitQQVNTIHNob3Vs
ZEJlIDI1NSwwLDAKK0NoZWNraW5nIHVwcGVyIGxlZnQgY29ybmVyCitQQVNTIHNob3VsZEJlIDAs
MjU1LDAKK1Rlc3RpbmcgdGV4U3ViSW1hZ2UyRCB3aXRoIGZsaXBZPXRydWUKK0NoZWNraW5nIGxv
d2VyIGxlZnQgY29ybmVyCitQQVNTIHNob3VsZEJlIDAsMjU1LDAKK0NoZWNraW5nIHVwcGVyIGxl
ZnQgY29ybmVyCitQQVNTIHNob3VsZEJlIDI1NSwwLDAKK1Rlc3RpbmcgdGV4U3ViSW1hZ2UyRCB3
aXRoIGZsaXBZPWZhbHNlCitDaGVja2luZyBsb3dlciBsZWZ0IGNvcm5lcgorUEFTUyBzaG91bGRC
ZSAyNTUsMCwwCitDaGVja2luZyB1cHBlciBsZWZ0IGNvcm5lcgorUEFTUyBzaG91bGRCZSAwLDI1
NSwwCitUZXN0aW5nIHRleEltYWdlMkQgd2l0aCBmbGlwWT10cnVlCitDaGVja2luZyBsb3dlciBs
ZWZ0IGNvcm5lcgorUEFTUyBzaG91bGRCZSAwLDI1NSwwCitDaGVja2luZyB1cHBlciBsZWZ0IGNv
cm5lcgorUEFTUyBzaG91bGRCZSAyNTUsMCwwCitUZXN0aW5nIHRleEltYWdlMkQgd2l0aCBmbGlw
WT1mYWxzZQorQ2hlY2tpbmcgbG93ZXIgbGVmdCBjb3JuZXIKK1BBU1Mgc2hvdWxkQmUgMjU1LDAs
MAorQ2hlY2tpbmcgdXBwZXIgbGVmdCBjb3JuZXIKK1BBU1Mgc2hvdWxkQmUgMCwyNTUsMAorVGVz
dGluZyB0ZXhTdWJJbWFnZTJEIHdpdGggZmxpcFk9dHJ1ZQorQ2hlY2tpbmcgbG93ZXIgbGVmdCBj
b3JuZXIKK1BBU1Mgc2hvdWxkQmUgMCwyNTUsMAorQ2hlY2tpbmcgdXBwZXIgbGVmdCBjb3JuZXIK
K1BBU1Mgc2hvdWxkQmUgMjU1LDAsMAorVGVzdGluZyB0ZXhTdWJJbWFnZTJEIHdpdGggZmxpcFk9
ZmFsc2UKK0NoZWNraW5nIGxvd2VyIGxlZnQgY29ybmVyCitQQVNTIHNob3VsZEJlIDI1NSwwLDAK
K0NoZWNraW5nIHVwcGVyIGxlZnQgY29ybmVyCitQQVNTIHNob3VsZEJlIDAsMjU1LDAKK1BBU1Mg
Z2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IHNob3VsZCBiZSBubyBlcnJv
cnMKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9vZXMtdGV4dHVyZS1oYWxm
LWZsb2F0LXdpdGgtaW1hZ2UuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL29l
cy10ZXh0dXJlLWhhbGYtZmxvYXQtd2l0aC1pbWFnZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBiZjE5YjQ0
NTkyNTk4NDgyNjA2ZTAzNmNlZjBiNDNkYTEzOTFlYjQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9vZXMtdGV4dHVyZS1oYWxmLWZsb2F0LXdpdGgtaW1h
Z2UuaHRtbApAQCAtMCwwICsxLDI3IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+
Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4u
Ly4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyIvPgorPHNjcmlwdCBzcmM9Ii4uLy4u
L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVz
b3VyY2VzL3dlYmdsLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy93
ZWJnbC10ZXN0LXV0aWxzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdGV4
LWltYWdlLWFuZC1zdWItaW1hZ2UtMmQtd2l0aC1pbWFnZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
PgorZnVuY3Rpb24gdGVzdFByb2xvZ3VlKGdsKSB7CisgICAgaWYgKCFnbC5nZXRFeHRlbnNpb24o
Ik9FU190ZXh0dXJlX2hhbGZfZmxvYXQiKSkgeworICAgICAgICB0ZXN0UGFzc2VkKCJObyBPRVNf
dGV4dHVyZV9oYWxmX2Zsb2F0IHN1cHBvcnQgLS0gdGhpcyBpcyBsZWdhbCIpOworICAgICAgICBy
ZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgdGVzdFBhc3NlZCgiU3VjY2Vzc2Z1bGx5IGVuYWJs
ZWQgT0VTX3RleHR1cmVfaGFsZl9mbG9hdCBleHRlbnNpb24iKTsKKyAgICByZXR1cm4gdHJ1ZTsK
K30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSdnZW5lcmF0ZVRlc3QoIlJHQkEi
LCAiSEFMRl9GTE9BVF9PRVMiLCAiLiIsIHRlc3RQcm9sb2d1ZSkoKSc+Cis8Y2FudmFzIGlkPSJl
eGFtcGxlIiB3aWR0aD0iMzIiIGhlaWdodD0iMzIiPjwvY2FudmFzPgorPGRpdiBpZD0iZGVzY3Jp
cHRpb24iPjwvZGl2PgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9vZXMtdGV4dHVyZS1o
YWxmLWZsb2F0LXdpdGgtdmlkZW8tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52
YXMvd2ViZ2wvb2VzLXRleHR1cmUtaGFsZi1mbG9hdC13aXRoLXZpZGVvLWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi40NDY0NGZjOTUyZjQ2NzUyMGEzMzkyYzNhZjU1ZjE0NzA4ZDczODA3Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvb2VzLXRleHR1cmUt
aGFsZi1mbG9hdC13aXRoLXZpZGVvLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMwIEBACitWZXJp
ZnkgdGV4SW1hZ2UyRCBhbmQgdGV4U3ViSW1hZ2UyRCBjb2RlIHBhdGhzIHRha2luZyB2aWRlbyBl
bGVtZW50cyAoUkdCQS9VTlNJR05FRF9CWVRFKQorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUg
YSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIu
CisKK1BBU1MgU3VjY2Vzc2Z1bGx5IGVuYWJsZWQgT0VTX3RleHR1cmVfaGFsZl9mbG9hdCBleHRl
bnNpb24KK1Rlc3RpbmcgdGV4SW1hZ2UyRCB3aXRoIGZsaXBZPXRydWUKK0NoZWNraW5nIGxvd2Vy
IGxlZnQgY29ybmVyCitQQVNTIHNob3VsZEJlIDAsMjU1LDAKK0NoZWNraW5nIHVwcGVyIGxlZnQg
Y29ybmVyCitQQVNTIHNob3VsZEJlIDI1NSwwLDAKK1Rlc3RpbmcgdGV4SW1hZ2UyRCB3aXRoIGZs
aXBZPWZhbHNlCitDaGVja2luZyBsb3dlciBsZWZ0IGNvcm5lcgorUEFTUyBzaG91bGRCZSAyNTUs
MCwwCitDaGVja2luZyB1cHBlciBsZWZ0IGNvcm5lcgorUEFTUyBzaG91bGRCZSAwLDI1NSwwCitU
ZXN0aW5nIHRleFN1YkltYWdlMkQgd2l0aCBmbGlwWT10cnVlCitDaGVja2luZyBsb3dlciBsZWZ0
IGNvcm5lcgorUEFTUyBzaG91bGRCZSAwLDI1NSwwCitDaGVja2luZyB1cHBlciBsZWZ0IGNvcm5l
cgorUEFTUyBzaG91bGRCZSAyNTUsMCwwCitUZXN0aW5nIHRleFN1YkltYWdlMkQgd2l0aCBmbGlw
WT1mYWxzZQorQ2hlY2tpbmcgbG93ZXIgbGVmdCBjb3JuZXIKK1BBU1Mgc2hvdWxkQmUgMjU1LDAs
MAorQ2hlY2tpbmcgdXBwZXIgbGVmdCBjb3JuZXIKK1BBU1Mgc2hvdWxkQmUgMCwyNTUsMAorUEFT
UyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogc2hvdWxkIGJlIG5vIGVy
cm9ycworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisg
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9vZXMtdGV4dHVyZS1o
YWxmLWZsb2F0LXdpdGgtdmlkZW8uaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmds
L29lcy10ZXh0dXJlLWhhbGYtZmxvYXQtd2l0aC12aWRlby5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM4ZDUw
ZTY4ODJkNThjMTk3MTUxN2VhYjlmZTVlNjVmMDMyZGJiOTUKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9vZXMtdGV4dHVyZS1oYWxmLWZsb2F0LXdpdGgt
dmlkZW8uaHRtbApAQCAtMCwwICsxLDMyIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhl
YWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9
Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyIvPgorPHNjcmlwdCBzcmM9Ii4u
Ly4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
cmVzb3VyY2VzL3dlYmdsLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNl
cy93ZWJnbC10ZXN0LXV0aWxzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMv
dGV4LWltYWdlLWFuZC1zdWItaW1hZ2UtMmQtd2l0aC12aWRlby5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0PgorZnVuY3Rpb24gdGVzdFByb2xvZ3VlKGdsKSB7CisgICAgaWYgKCFnbC5nZXRFeHRlbnNp
b24oIk9FU190ZXh0dXJlX2hhbGZfZmxvYXQiKSkgeworICAgICAgICB0ZXN0UGFzc2VkKCJObyBP
RVNfdGV4dHVyZV9oYWxmX2Zsb2F0IHN1cHBvcnQgLS0gdGhpcyBpcyBsZWdhbCIpOworICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgdGVzdFBhc3NlZCgiU3VjY2Vzc2Z1bGx5IGVu
YWJsZWQgT0VTX3RleHR1cmVfaGFsZl9mbG9hdCBleHRlbnNpb24iKTsKKyAgICByZXR1cm4gdHJ1
ZTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSdnZW5lcmF0ZVRlc3QoIlJH
QkEiLCAiSEFMRl9GTE9BVF9PRVMiLCB0ZXN0UHJvbG9ndWUpKCknPgorPGNhbnZhcyBpZD0iZXhh
bXBsZSIgd2lkdGg9IjMycHgiIGhlaWdodD0iMzJweCI+PC9jYW52YXM+Cis8ZGl2IGlkPSJkZXNj
cmlwdGlvbiI+PC9kaXY+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzx2aWRlbyB3aWR0aD0i
NjQwIiBoZWlnaHQ9IjIyOCIgaWQ9InZpZCIgY29udHJvbHM+CisgIDxzb3VyY2Ugc3JjPSJyZXNv
dXJjZXMvcmVkLWdyZWVuLm1wNCIgIHR5cGU9J3ZpZGVvL21wNDsgY29kZWNzPSJhdmMxLjQyRTAx
RSwgbXA0YS40MC4yIicgLz4KKyAgPHNvdXJjZSBzcmM9InJlc291cmNlcy9yZWQtZ3JlZW4ud2Vi
bXZwOC53ZWJtIiB0eXBlPSd2aWRlby93ZWJtOyBjb2RlY3M9InZwOCwgdm9yYmlzIicgLz4KKyAg
PHNvdXJjZSBzcmM9InJlc291cmNlcy9yZWQtZ3JlZW4udGhlb3JhLm9ndiIgIHR5cGU9J3ZpZGVv
L29nZzsgY29kZWNzPSJ0aGVvcmEsIHZvcmJpcyInIC8+Cis8L3ZpZGVvPgorPC9ib2R5PgorPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vVGVzdEV4cGVj
dGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL1Rlc3RFeHBlY3RhdGlvbnMK
aW5kZXggNGJjMWQ2N2FmNDIyODhkYjdiNDI4OWJkYjFjNDRmM2I2YjNmZWY4OS4uNWFiYzVhMWY5
N2Y2NmI0MTY2YzJhY2U1MGUwMThmMmVjZmNjODlmOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vY2hyb21pdW0vVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9jaHJvbWl1bS9UZXN0RXhwZWN0YXRpb25zCkBAIC0zNzE3LDggKzM3MTcsNiBAQCB3ZWJr
aXQub3JnL2IvMTEyMzgxIFsgV2luIExpbnV4IFJlbGVhc2UgXSBodG1sNWxpYi9nZW5lcmF0ZWQv
cnVuLXRlc3RzMTYtZGF0YS5odAogIyBIQUxGX0ZMT0FUX09FUyBpcyBub3QgeWV0IHdvcmtpbmcg
aW4gY2hyb21pdW0uCiBjcmJ1Zy5jb20vMTc5NTAzIGZhc3QvY2FudmFzL3dlYmdsL29lcy10ZXh0
dXJlLWhhbGYtZmxvYXQuaHRtbCBbIEZhaWx1cmUgXQogY3JidWcuY29tLzE3OTUwMyBwbGF0Zm9y
bS9jaHJvbWl1bS92aXJ0dWFsL2dwdS9mYXN0L2NhbnZhcy93ZWJnbC9vZXMtdGV4dHVyZS1oYWxm
LWZsb2F0Lmh0bWwgWyBGYWlsdXJlIF0KLWNyYnVnLmNvbS8xNzk1MDMgZmFzdC9jYW52YXMvd2Vi
Z2wvb2VzLXRleHR1cmUtaGFsZi1mbG9hdC1ub3Qtc3VwcG9ydGVkLmh0bWwgWyBUaW1lb3V0IF0K
LWNyYnVnLmNvbS8xNzk1MDMgcGxhdGZvcm0vY2hyb21pdW0vdmlydHVhbC9ncHUvZmFzdC9jYW52
YXMvd2ViZ2wvb2VzLXRleHR1cmUtaGFsZi1mbG9hdC1ub3Qtc3VwcG9ydGVkLmh0bWwgWyBUaW1l
b3V0IF0KIAogIyBUaGVzZSB0ZXN0IGFyZSBmYWlsaW5nIHNpbmNlIHIxNDQ1MTkKIHdlYmtpdC5v
cmcvYi8xMTE0NjIgWyBNYWMgXSBmYXN0L2V2ZW50cy90b3VjaC9nZXN0dXJlL3RvdWNoLWdlc3R1
cmUtbm9zY3JvbGwtYm9keS15aGlkZGVuLmh0bWwgWyBGYWlsdXJlIF0KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvY2FudmFzL3dlYmdsL29lcy10ZXh0dXJl
LWhhbGYtZmxvYXQtd2l0aC1jYW52YXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vY2hyb21pdW0vZmFzdC9jYW52YXMvd2ViZ2wvb2VzLXRleHR1cmUtaGFsZi1mbG9hdC13aXRo
LWNhbnZhcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTI1Zjk0M2RkMjZkOWYzNzJjY2Y2ZDlj
ZGQwN2M3ODk4MDZlZTkyYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2Nocm9taXVtL2Zhc3QvY2FudmFzL3dlYmdsL29lcy10ZXh0dXJlLWhhbGYtZmxvYXQtd2l0aC1j
YW52YXMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsOSBAQAorVmVyaWZ5IHRleEltYWdlMkQgYW5k
IHRleFN1YkltYWdlMkQgY29kZSBwYXRocyB0YWtpbmcgY2FudmFzIGVsZW1lbnRzIChSR0JBL0hB
TEZfRkxPQVRfT0VTKQorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBB
U1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKK1BBU1MgTm8gT0VT
X3RleHR1cmVfaGFsZl9mbG9hdCBzdXBwb3J0IC0tIHRoaXMgaXMgbGVnYWwKK1BBU1Mgc3VjY2Vz
c2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2NhbnZhcy93ZWJnbC9vZXMtdGV4dHVyZS1o
YWxmLWZsb2F0LXdpdGgtaW1hZ2UtZGF0YS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9jaHJvbWl1bS9mYXN0L2NhbnZhcy93ZWJnbC9vZXMtdGV4dHVyZS1oYWxmLWZsb2F0LXdp
dGgtaW1hZ2UtZGF0YS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmE5ZjBhMDU2NWU4MmM0MTA4
MzViZDBhZjMxM2EwMWRhMzFiZjcwOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2Nocm9taXVtL2Zhc3QvY2FudmFzL3dlYmdsL29lcy10ZXh0dXJlLWhhbGYtZmxvYXQt
d2l0aC1pbWFnZS1kYXRhLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBACisgCitWZXJpZnkg
dGV4SW1hZ2UyRCBhbmQgdGV4U3ViSW1hZ2UyRCBjb2RlIHBhdGhzIHRha2luZyBJbWFnZURhdGEg
KFJHQkEvSEFMRl9GTE9BVF9PRVMpCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmll
cyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworUEFT
UyBObyBPRVNfdGV4dHVyZV9oYWxmX2Zsb2F0IHN1cHBvcnQgLS0gdGhpcyBpcyBsZWdhbAorUEFT
UyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvY2FudmFzL3dlYmdsL29lcy10
ZXh0dXJlLWhhbGYtZmxvYXQtd2l0aC1pbWFnZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2NhbnZhcy93ZWJnbC9vZXMtdGV4dHVyZS1oYWxmLWZsb2F0
LXdpdGgtaW1hZ2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRiNmVhZjUyNTg4ODBjNDMzMDJh
Y2RlNWVmZDZkZWMxMjA5NjhhNTQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9jaHJvbWl1bS9mYXN0L2NhbnZhcy93ZWJnbC9vZXMtdGV4dHVyZS1oYWxmLWZsb2F0LXdp
dGgtaW1hZ2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsOSBAQAorVmVyaWZ5IHRleEltYWdlMkQg
YW5kIHRleFN1YkltYWdlMkQgY29kZSBwYXRocyB0YWtpbmcgaW1hZ2UgZWxlbWVudHMgKFJHQkEv
SEFMRl9GTE9BVF9PRVMpCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAi
UEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworUEFTUyBObyBP
RVNfdGV4dHVyZV9oYWxmX2Zsb2F0IHN1cHBvcnQgLS0gdGhpcyBpcyBsZWdhbAorUEFTUyBzdWNj
ZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvY2FudmFzL3dlYmdsL29lcy10ZXh0dXJl
LWhhbGYtZmxvYXQtd2l0aC12aWRlby1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9jaHJvbWl1bS9mYXN0L2NhbnZhcy93ZWJnbC9vZXMtdGV4dHVyZS1oYWxmLWZsb2F0LXdpdGgt
dmlkZW8tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMzNTJlOTJhM2E3MDgxY2JjMzgyYmUxNjg2
YjZkNzZiNzAyMTBhMDkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9j
aHJvbWl1bS9mYXN0L2NhbnZhcy93ZWJnbC9vZXMtdGV4dHVyZS1oYWxmLWZsb2F0LXdpdGgtdmlk
ZW8tZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsOSBAQAorVmVyaWZ5IHRleEltYWdlMkQgYW5kIHRl
eFN1YkltYWdlMkQgY29kZSBwYXRocyB0YWtpbmcgdmlkZW8gZWxlbWVudHMgKFJHQkEvSEFMRl9G
TE9BVF9PRVMpCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIg
bWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworUEFTUyBObyBPRVNfdGV4
dHVyZV9oYWxmX2Zsb2F0IHN1cHBvcnQgLS0gdGhpcyBpcyBsZWdhbAorUEFTUyBzdWNjZXNzZnVs
bHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggZGQ2MTQ0ZjA1NGY1Y2QwYmVmODA0YmM5ZjJhOWU3
MzFlNjNjYWRmYS4uMjg0ODg1MDU0MGNiYjdiOGY1ZTY2NjVjMDhjODIyMDlkOGY1ZDYwOSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTEwMDAsNiArMTAw
MCw3IEBAIGVkaXRpbmcvcGFzdGVib2FyZC9wYXN0ZS1nbG9iYWwtc2VsZWN0aW9uLmh0bWwKICMg
LS0tIFdlYkdMIC0tLQogIyBDdXJyZW50bHkgZmFpbGluZyBXZWJHTCB0ZXN0cyA8cmRhcjovL3By
b2JsZW0vOTM1NTQ2MD4KIGZhc3QvY2FudmFzL3dlYmdsL3RleC1pbWFnZS1hbmQtc3ViLWltYWdl
LTJkLXdpdGgtdmlkZW8uaHRtbAorZmFzdC9jYW52YXMvd2ViZ2wvb2VzLXRleHR1cmUtaGFsZi1m
bG9hdC13aXRoLXZpZGVvLmh0bWwKIAogIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTA5MDgxCiB3ZWJnbAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>195479</attachid>
            <date>2013-03-27 21:59:33 -0700</date>
            <delta_ts>2013-12-03 19:18:15 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-110936-20130327220105.patch</filename>
            <type>text/plain</type>
            <size>43820</size>
            <attacher name="Nayan Kumar K">nayankk</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ3MDU2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDA0OWUwMjAzYzYwNzAy
YWJjYjMzZTVhNDUxYjZmM2FkODExYjYxOS4uNDk1NjI2NWViMTAwYTkwZDgxM2UyMWI0OTQ2MjE2
YThmMjFmYzdkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDEzLTAzLTI3ICBOYXlh
biBLdW1hciBLICA8bmF5YW5ra0Btb3Rvcm9sYS5jb20+CisKKyAgICAgICAgW1dlYkdMXSBTdXBw
b3J0IGZvciB0ZXhJbWFnZTJEIG9mIHR5cGUgSEFMRl9GTE9BVF9PRVMgd2l0aCBJbWFnZURhdGEs
CisgICAgICAgIEhUTUxJbWFnZUVsZW1lbnQsIEhUTUxDYW52YXNFbGVtZW50IGFuZCBIVE1MVmlk
ZW9FbGVtZW50LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTEwOTM2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgVGVzdHM6IGZhc3QvY2FudmFzL3dlYmdsL29lcy10ZXh0dXJlLWhhbGYtZmxvYXQtd2l0aC1j
YW52YXMuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9jYW52YXMvd2ViZ2wvb2VzLXRleHR1cmUt
aGFsZi1mbG9hdC13aXRoLWltYWdlLWRhdGEuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9jYW52
YXMvd2ViZ2wvb2VzLXRleHR1cmUtaGFsZi1mbG9hdC13aXRoLWltYWdlLmh0bWwKKyAgICAgICAg
ICAgICAgIGZhc3QvY2FudmFzL3dlYmdsL29lcy10ZXh0dXJlLWhhbGYtZmxvYXQtd2l0aC12aWRl
by5odG1sCisKKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuY3Bw
OgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0Nv
bnRleHQ6OnZhbGlkYXRlVGV4RnVuYyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3Jh
cGhpY3NDb250ZXh0M0QuY3BwOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0QuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0M0RPcGVuR0wuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6R3JhcGhpY3NDb250ZXh0M0Q6OnRleFN1YkltYWdlMkQpOgorICAgICAgICAoV2ViQ29yZSk6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dDNET3Bl
bkdMQ29tbW9uLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhp
Y3NDb250ZXh0M0RPcGVuR0xFUy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRl
eHQzRDo6dGV4U3ViSW1hZ2UyRCk6CisgICAgICAgIChXZWJDb3JlKToKKwogMjAxMy0wMy0yNyAg
Unlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBEZWJ1ZyB0ZXN0IGZp
eCBhZnRlciByMTQ3MDE4LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
V2ViR0xSZW5kZXJpbmdDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dl
YkdMUmVuZGVyaW5nQ29udGV4dC5jcHAKaW5kZXggMzdkMGI0OTFkOTUwNTQ0NjliM2U0MGIwYThl
NmI4OTcyOTdlMWQ1ZS4uOWIzNGVlMWNmMWVlNjU0MzgyMGNjYWVkYjgzNTJiZTg4NzNhMDc4ZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250
ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0Nv
bnRleHQuY3BwCkBAIC0zNzQ0LDEzICszNzQ0LDYgQEAgdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRl
eHQ6OnRleEltYWdlMkRJbXBsKEdDM0RlbnVtIHRhcmdldCwgR0MzRGludCBsZXZlbCwgR0MzRGUK
IAogYm9vbCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnZhbGlkYXRlVGV4RnVuYyhjb25zdCBjaGFy
KiBmdW5jdGlvbk5hbWUsIFRleEZ1bmNWYWxpZGF0aW9uRnVuY3Rpb25UeXBlIGZ1bmN0aW9uVHlw
ZSwgVGV4RnVuY1ZhbGlkYXRpb25Tb3VyY2VUeXBlIHNvdXJjZVR5cGUsIEdDM0RlbnVtIHRhcmdl
dCwgR0MzRGludCBsZXZlbCwgR0MzRGVudW0gaW50ZXJuYWxmb3JtYXQsIEdDM0RzaXplaSB3aWR0
aCwgR0MzRHNpemVpIGhlaWdodCwgR0MzRGludCBib3JkZXIsIEdDM0RlbnVtIGZvcm1hdCwgR0Mz
RGVudW0gdHlwZSwgR0MzRGludCB4b2Zmc2V0LCBHQzNEaW50IHlvZmZzZXQpCiB7Ci0gICAgLy8g
RklYTUU6IFVwbG9hZGluZyB7SW1hZ2VEYXRhLCBIVE1MSW1hZ2VFbGVtZW50LCBIVE1MQ2FudmFz
RWxlbWVudCwgSFRNTFZpZGVvRWxlbWVudH0gdG8gaGFsZiBmbG9hdGluZyBwb2ludCB0ZXh0dXJl
IGlzIG5vdCBzdXBwb3J0ZWQgeWV0LgotICAgIC8vIFNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTEwOTM2LgotICAgIGlmIChzb3VyY2VUeXBlICE9IFNvdXJjZUFy
cmF5QnVmZmVyVmlldyAmJiB0eXBlID09IEdyYXBoaWNzQ29udGV4dDNEOjpIQUxGX0ZMT0FUX09F
UykgewotICAgICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJ
RF9PUEVSQVRJT04sIGZ1bmN0aW9uTmFtZSwgIk9wZXJhdGlvbiBub3Qgc3VwcG9ydGVkIHlldCIp
OwotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotCiAgICAgaWYgKCF2YWxpZGF0ZVRleEZ1
bmNQYXJhbWV0ZXJzKGZ1bmN0aW9uTmFtZSwgZnVuY3Rpb25UeXBlLCB0YXJnZXQsIGxldmVsLCBp
bnRlcm5hbGZvcm1hdCwgd2lkdGgsIGhlaWdodCwgYm9yZGVyLCBmb3JtYXQsIHR5cGUpKQogICAg
ICAgICByZXR1cm4gZmFsc2U7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmNwcAppbmRleCA0YjViOWZkNGUyNjcxODQ4NzZh
YTYyOWIyNjA1ZGMwZGUzNWM1NDczLi41NTJjODZkNjE5YjAzNzc4NzdjMzEwOTM1Y2M3Mzg4OGVi
NDViMDY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFw
aGljc0NvbnRleHQzRC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
R3JhcGhpY3NDb250ZXh0M0QuY3BwCkBAIC00Nyw2ICs0NywzNiBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKIG5hbWVzcGFjZSB7CiAKKy8vIENvbnZlcnRpb24gZnJvbSBmbG9hdGluZyBwb2ludCB0
byBoYWxmIGZsb2F0aW5nIHBvaW50LgorLy8gVGFrZW4gZnJvbSBPcGVuR0wgRVMgMi4wIFByb2dy
YW1taW5nIEd1aWRlIC0gQXBwZW5kaXggQS4KK3N0YXRpYyBHQzNEaGFsZmZsb2F0IGNvbnZlcnRU
b0hhbGZGbG9hdChjb25zdCBHQzNEZmxvYXQqIGYpCit7CisgICAgY29uc3QgR0MzRHVpbnQgaGFs
ZkZsb2F0TWluQmlhc2VkRXhwU1AgPSAweDM4MDAwMDAwOyAvLyBtYXggZXhwb25lbnQgdmFsdWUg
aW4gc2luZ2xlIHByZWNpc2lvbiB0aGF0IHdpbGwgYmUgY29udmVydGVkCisgICAgY29uc3QgR0Mz
RHVpbnQgaGFsZkZsb2F0TWF4Qmlhc2VkRXhwU1AgPSAweDQ3ODAwMDAwOworICAgIGNvbnN0IEdD
M0R1aW50IGZsb2F0TWF4Qmlhc2VkRXhwID0gKDB4RkYgPDwgMjMpOworICAgIGNvbnN0IEdDM0R1
aW50IGhhbGZGbG9hdE1heEJpYXNlZEV4cCA9ICgweDFGIDw8IDEwKTsKKworICAgIEdDM0R1aW50
IHggPSAqKEdDM0R1aW50ICopZjsKKyAgICBHQzNEdWludCBzaWduID0gKEdDM0RoYWxmZmxvYXQp
KHggPj4gMzEpOworICAgIEdDM0R1aW50IG1hbnRpc3NhID0geCAmICgoMSA8PCAyMykgLSAxKTsK
KyAgICBHQzNEdWludCBleHAgPSB4ICYgZmxvYXRNYXhCaWFzZWRFeHA7CisgICAgR0MzRGhhbGZm
bG9hdCBoZjsKKworICAgIGlmIChleHAgPj0gaGFsZkZsb2F0TWF4Qmlhc2VkRXhwU1ApICB7Cisg
ICAgICAgIGlmIChtYW50aXNzYSAmJiAoZXhwID09IGZsb2F0TWF4Qmlhc2VkRXhwKSkKKyAgICAg
ICAgICAgIG1hbnRpc3NhID0gKDEgPDwgMjMpIC0gMTsKKyAgICAgICAgZWxzZQorICAgICAgICAg
ICAgbWFudGlzc2EgPSAwOworICAgICAgICBoZiA9ICgoKEdDM0RoYWxmZmxvYXQpc2lnbikgPDwg
MTUpIHwgKEdDM0RoYWxmZmxvYXQpKGhhbGZGbG9hdE1heEJpYXNlZEV4cCkgfCAoR0MzRGhhbGZm
bG9hdCkobWFudGlzc2EgPj4gMTMpOworICAgIH0gZWxzZSBpZiAoZXhwIDw9IGhhbGZGbG9hdE1p
bkJpYXNlZEV4cFNQKSB7CisgICAgICAgIGV4cCA9IChoYWxmRmxvYXRNaW5CaWFzZWRFeHBTUCAt
IGV4cCkgPj4gMjM7CisgICAgICAgIG1hbnRpc3NhID4+PSAoMTQgKyBleHApOworICAgICAgICBo
ZiA9ICgoKEdDM0RoYWxmZmxvYXQpc2lnbikgPDwgMTUpIHwgKEdDM0RoYWxmZmxvYXQpKG1hbnRp
c3NhKTsKKyAgICB9IGVsc2UKKyAgICAgICAgaGYgPSAoKChHQzNEaGFsZmZsb2F0KXNpZ24pIDw8
IDE1KSB8IChHQzNEaGFsZmZsb2F0KSgoZXhwIC0gaGFsZkZsb2F0TWluQmlhc2VkRXhwU1ApID4+
IDEzKSB8IChHQzNEaGFsZmZsb2F0KShtYW50aXNzYSA+PiAxMyk7CisgICAgcmV0dXJuIGhmOwor
fQorCiBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdCBnZXREYXRhRm9ybWF0KEdDM0RlbnVt
IGRlc3RpbmF0aW9uRm9ybWF0LCBHQzNEZW51bSBkZXN0aW5hdGlvblR5cGUpCiB7CiAgICAgR3Jh
cGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQgZHN0Rm9ybWF0ID0gR3JhcGhpY3NDb250ZXh0M0Q6
OkRhdGFGb3JtYXRSR0JBODsKQEAgLTEwMiw2ICsxMzIsMTUgQEAgR3JhcGhpY3NDb250ZXh0M0Q6
OkRhdGFGb3JtYXQgZ2V0RGF0YUZvcm1hdChHQzNEZW51bSBkZXN0aW5hdGlvbkZvcm1hdCwgR0Mz
RGVudW0KICAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICB9CiAgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkhBTEZfRkxPQVRfT0VTOiAv
LyBPRVNfdGV4dHVyZV9oYWxmX2Zsb2F0CisgICAgICAgIHN3aXRjaCAoZGVzdGluYXRpb25Gb3Jt
YXQpIHsKKyAgICAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UkdCQToKKyAgICAgICAgICAg
IGRzdEZvcm1hdCA9IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCQTE2RjsKKyAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CiAgICAgZGVmYXVsdDoKICAgICAg
ICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgfQpAQCAtOTk3LDYgKzEwMzYsNTIgQEAgdGVt
cGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgcGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZv
cm1hdFJHQkEzMkYsIEdyYXBoaWMKICAgICB9CiB9CiAKK3RlbXBsYXRlPD4gQUxXQVlTX0lOTElO
RSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JBMTZGLCBHcmFwaGlj
c0NvbnRleHQzRDo6QWxwaGFEb05vdGhpbmcsIGZsb2F0LCB1aW50MTZfdD4oY29uc3QgZmxvYXQq
IHNvdXJjZSwgdWludDE2X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCit7
CisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHBpeGVsc1BlclJvdzsgKytpKSB7CisgICAg
ICAgIGRlc3RpbmF0aW9uWzBdID0gY29udmVydFRvSGFsZkZsb2F0KHNvdXJjZSk7CisgICAgICAg
IGRlc3RpbmF0aW9uWzFdID0gY29udmVydFRvSGFsZkZsb2F0KHNvdXJjZSsxKTsKKyAgICAgICAg
ZGVzdGluYXRpb25bMl0gPSBjb252ZXJ0VG9IYWxmRmxvYXQoc291cmNlKzIpOworICAgICAgICBk
ZXN0aW5hdGlvblszXSA9IGNvbnZlcnRUb0hhbGZGbG9hdChzb3VyY2UrMyk7CisgICAgICAgIHNv
dXJjZSArPSA0OworICAgICAgICBkZXN0aW5hdGlvbiArPSA0OworICAgIH0KK30KKwordGVtcGxh
dGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgcGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1h
dFJHQkExNkYsIEdyYXBoaWNzQ29udGV4dDNEOjpBbHBoYURvUHJlbXVsdGlwbHksIGZsb2F0LCB1
aW50MTZfdD4oY29uc3QgZmxvYXQqIHNvdXJjZSwgdWludDE2X3QqIGRlc3RpbmF0aW9uLCB1bnNp
Z25lZCBwaXhlbHNQZXJSb3cpCit7CisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHBpeGVs
c1BlclJvdzsgKytpKSB7CisgICAgICAgIGZsb2F0IHNjYWxlRmFjdG9yID0gc291cmNlWzNdOwor
ICAgICAgICBjb25zdCBmbG9hdCBpbnRlcm1lZGlhdGVGbG9hdEFycmF5WzRdID0geyooc291cmNl
KSAqIHNjYWxlRmFjdG9yLAorICAgICAgICAgICAgKihzb3VyY2UrMSkgKiBzY2FsZUZhY3RvciwK
KyAgICAgICAgICAgICooc291cmNlKzIpICogc2NhbGVGYWN0b3IsCisgICAgICAgICAgICAqKHNv
dXJjZSszKSB9OworICAgICAgICBkZXN0aW5hdGlvblswXSA9IGNvbnZlcnRUb0hhbGZGbG9hdChp
bnRlcm1lZGlhdGVGbG9hdEFycmF5KTsKKyAgICAgICAgZGVzdGluYXRpb25bMV0gPSBjb252ZXJ0
VG9IYWxmRmxvYXQoaW50ZXJtZWRpYXRlRmxvYXRBcnJheSsxKTsKKyAgICAgICAgZGVzdGluYXRp
b25bMl0gPSBjb252ZXJ0VG9IYWxmRmxvYXQoaW50ZXJtZWRpYXRlRmxvYXRBcnJheSsyKTsKKyAg
ICAgICAgZGVzdGluYXRpb25bM10gPSBjb252ZXJ0VG9IYWxmRmxvYXQoaW50ZXJtZWRpYXRlRmxv
YXRBcnJheSszKTsKKyAgICAgICAgc291cmNlICs9IDQ7CisgICAgICAgIGRlc3RpbmF0aW9uICs9
IDQ7CisgICAgfQorfQorCit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBo
aWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCQTE2RiwgR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhh
RG9Vbm11bHRpcGx5LCBmbG9hdCwgdWludDE2X3Q+KGNvbnN0IGZsb2F0KiBzb3VyY2UsIHVpbnQx
Nl90KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQoreworICAgIGZvciAodW5z
aWduZWQgaSA9IDA7IGkgPCBwaXhlbHNQZXJSb3c7ICsraSkgeworICAgICAgICBmbG9hdCBzY2Fs
ZUZhY3RvciA9IHNvdXJjZVszXSA/IDEuMGYgLyBzb3VyY2VbM10gOiAxLjBmOworICAgICAgICBj
b25zdCBmbG9hdCBpbnRlcm1lZGlhdGVGbG9hdEFycmF5WzRdID0geyooc291cmNlKSAqIHNjYWxl
RmFjdG9yLAorICAgICAgICAgICAgKihzb3VyY2UrMSkgKiBzY2FsZUZhY3RvciwKKyAgICAgICAg
ICAgICooc291cmNlKzIpICogc2NhbGVGYWN0b3IsCisgICAgICAgICAgICAqKHNvdXJjZSszKSB9
OworICAgICAgICBkZXN0aW5hdGlvblswXSA9IGNvbnZlcnRUb0hhbGZGbG9hdChpbnRlcm1lZGlh
dGVGbG9hdEFycmF5KTsKKyAgICAgICAgZGVzdGluYXRpb25bMV0gPSBjb252ZXJ0VG9IYWxmRmxv
YXQoaW50ZXJtZWRpYXRlRmxvYXRBcnJheSsxKTsKKyAgICAgICAgZGVzdGluYXRpb25bMl0gPSBj
b252ZXJ0VG9IYWxmRmxvYXQoaW50ZXJtZWRpYXRlRmxvYXRBcnJheSsyKTsKKyAgICAgICAgZGVz
dGluYXRpb25bM10gPSBjb252ZXJ0VG9IYWxmRmxvYXQoaW50ZXJtZWRpYXRlRmxvYXRBcnJheSsz
KTsKKyAgICAgICAgc291cmNlICs9IDQ7CisgICAgICAgIGRlc3RpbmF0aW9uICs9IDQ7CisgICAg
fQorfQorCiB0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4
dDNEOjpEYXRhRm9ybWF0QTMyRiwgR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhRG9Ob3RoaW5nLCBm
bG9hdCwgZmxvYXQ+KGNvbnN0IGZsb2F0KiBzb3VyY2UsIGZsb2F0KiBkZXN0aW5hdGlvbiwgdW5z
aWduZWQgcGl4ZWxzUGVyUm93KQogewogICAgIGZvciAodW5zaWduZWQgaW50IGkgPSAwOyBpIDwg
cGl4ZWxzUGVyUm93OyArK2kpIHsKQEAgLTEwODcsNiArMTE3Miw3IEBAIEFMV0FZU19JTkxJTkUg
Ym9vbCBIYXNDb2xvcihpbnQgZm9ybWF0KQogewogICAgIHJldHVybiBmb3JtYXQgPT0gR3JhcGhp
Y3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JBOAogICAgICAgICB8fCBmb3JtYXQgPT0gR3JhcGhp
Y3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JBMzJGCisgICAgICAgIHx8IGZvcm1hdCA9PSBHcmFw
aGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQkExNkYKICAgICAgICAgfHwgZm9ybWF0ID09IEdy
YXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCOAogICAgICAgICB8fCBmb3JtYXQgPT0gR3Jh
cGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0IzMkYKICAgICAgICAgfHwgZm9ybWF0ID09IEdy
YXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0QkdSOApAQCAtMTExNCw2ICsxMjAwLDExIEBAIHN0
cnVjdCBJc0Zsb2F0Rm9ybWF0IHsKIH07CiAKIHRlbXBsYXRlPGludCBGb3JtYXQ+CitzdHJ1Y3Qg
SXNIYWxmRmxvYXRGb3JtYXQgeworICAgIHN0YXRpYyBjb25zdCBib29sIFZhbHVlID0gRm9ybWF0
ID09IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCQTE2RjsKK307CisKK3RlbXBsYXRl
PGludCBGb3JtYXQ+CiBzdHJ1Y3QgSXMxNmJwcEZvcm1hdCB7CiAgICAgc3RhdGljIGNvbnN0IGJv
b2wgVmFsdWUgPQogICAgICAgICBGb3JtYXQgPT0gR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3Jt
YXRSR0JBNTU1MQpAQCAtMTEyMSwyNiArMTIxMiwzNiBAQCBzdHJ1Y3QgSXMxNmJwcEZvcm1hdCB7
CiAgICAgICAgIHx8IEZvcm1hdCA9PSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQjU2
NTsKIH07CiAKLXRlbXBsYXRlPGludCBGb3JtYXQsIGJvb2wgSXNGbG9hdCA9IElzRmxvYXRGb3Jt
YXQ8Rm9ybWF0Pjo6VmFsdWUsIGJvb2wgSXMxNmJwcCA9IElzMTZicHBGb3JtYXQ8Rm9ybWF0Pjo6
VmFsdWU+Cit0ZW1wbGF0ZTxpbnQgRm9ybWF0LCBib29sIElzRmxvYXQgPSBJc0Zsb2F0Rm9ybWF0
PEZvcm1hdD46OlZhbHVlLCBib29sIElzMTZicHAgPSBJczE2YnBwRm9ybWF0PEZvcm1hdD46OlZh
bHVlLCBib29sIElzSGFsZkZsb2F0ID0gSXNIYWxmRmxvYXRGb3JtYXQ8Rm9ybWF0Pjo6VmFsdWU+
CiBzdHJ1Y3QgRGF0YVR5cGVGb3JGb3JtYXQgewogICAgIHR5cGVkZWYgdWludDhfdCBUeXBlOwog
fTsKIAogdGVtcGxhdGU8aW50IEZvcm1hdD4KLXN0cnVjdCBEYXRhVHlwZUZvckZvcm1hdDxGb3Jt
YXQsIHRydWUsIGZhbHNlPiB7CitzdHJ1Y3QgRGF0YVR5cGVGb3JGb3JtYXQ8Rm9ybWF0LCB0cnVl
LCBmYWxzZSwgZmFsc2U+IHsKICAgICB0eXBlZGVmIGZsb2F0IFR5cGU7CiB9OwogCiB0ZW1wbGF0
ZTxpbnQgRm9ybWF0Pgotc3RydWN0IERhdGFUeXBlRm9yRm9ybWF0PEZvcm1hdCwgZmFsc2UsIHRy
dWU+IHsKK3N0cnVjdCBEYXRhVHlwZUZvckZvcm1hdDxGb3JtYXQsIGZhbHNlLCB0cnVlLCBmYWxz
ZT4gewogICAgIHR5cGVkZWYgdWludDE2X3QgVHlwZTsKIH07CiAKIHRlbXBsYXRlPGludCBGb3Jt
YXQ+CitzdHJ1Y3QgRGF0YVR5cGVGb3JGb3JtYXQ8Rm9ybWF0LCBmYWxzZSwgZmFsc2UsIHRydWU+
IHsKKyAgICB0eXBlZGVmIHVpbnQxNl90IFR5cGU7Cit9OworCit0ZW1wbGF0ZTxpbnQgRm9ybWF0
LCBib29sIElzSGFsZkZsb2F0ID0gSXNIYWxmRmxvYXRGb3JtYXQ8Rm9ybWF0Pjo6VmFsdWU+CiBz
dHJ1Y3QgSW50ZXJtZWRpYXRlRm9ybWF0IHsKICAgICBzdGF0aWMgY29uc3QgaW50IFZhbHVlID0g
SXNGbG9hdEZvcm1hdDxGb3JtYXQ+OjpWYWx1ZSA/IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9y
bWF0UkdCQTMyRiA6IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCQTg7CiB9OwogCit0
ZW1wbGF0ZTxpbnQgRm9ybWF0Pgorc3RydWN0IEludGVybWVkaWF0ZUZvcm1hdDxGb3JtYXQsIHRy
dWU+IHsKKyAgICBzdGF0aWMgY29uc3QgaW50IFZhbHVlID0gR3JhcGhpY3NDb250ZXh0M0Q6OkRh
dGFGb3JtYXRSR0JBMzJGOworfTsKKwogQUxXQVlTX0lOTElORSB1bnNpZ25lZCBUZXhlbEJ5dGVz
Rm9yRm9ybWF0KEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0IGZvcm1hdCkKIHsKICAgICBz
d2l0Y2ggKGZvcm1hdCkgewpAQCAtMTE2NCw2ICsxMjY1LDcgQEAgQUxXQVlTX0lOTElORSB1bnNp
Z25lZCBUZXhlbEJ5dGVzRm9yRm9ybWF0KEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0IGZv
cm1hdCkKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0QTMyRjoKICAgICAg
ICAgcmV0dXJuIDQ7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJBMzJG
OgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JBMTZGOgogICAgICAg
ICByZXR1cm4gODsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCMzJG
OgogICAgICAgICByZXR1cm4gMTI7CkBAIC0xMjYxLDYgKzEzNjMsNyBAQCBBTFdBWVNfSU5MSU5F
IHZvaWQgRm9ybWF0Q29udmVydGVyOjpjb252ZXJ0KEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9y
bWF0IGRzdEZvcgogICAgICAgICAgICAgRk9STUFUQ09OVkVSVEVSX0NBU0VfRFNURk9STUFUKEdy
YXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCQTU1NTEpCiAgICAgICAgICAgICBGT1JNQVRD
T05WRVJURVJfQ0FTRV9EU1RGT1JNQVQoR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JB
NDQ0NCkKICAgICAgICAgICAgIEZPUk1BVENPTlZFUlRFUl9DQVNFX0RTVEZPUk1BVChHcmFwaGlj
c0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQkEzMkYpCisgICAgICAgICAgICBGT1JNQVRDT05WRVJU
RVJfQ0FTRV9EU1RGT1JNQVQoR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JBMTZGKQog
ICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAg
ICAgIH0KQEAgLTEzMjEsNyArMTQyNCw4IEBAIEFMV0FZU19JTkxJTkUgdm9pZCBGb3JtYXRDb252
ZXJ0ZXI6OmNvbnZlcnQoKQogICAgIHR5cGVkZWYgdHlwZW5hbWUgRGF0YVR5cGVGb3JGb3JtYXQ8
SW50ZXJtZWRpYXRlU3JjRm9ybWF0Pjo6VHlwZSBJbnRlcm1lZGlhdGVTcmNUeXBlOwogICAgIGNv
bnN0IHB0cmRpZmZfdCBzcmNTdHJpZGVJbkVsZW1lbnRzID0gbV9zcmNTdHJpZGUgLyBzaXplb2Yo
U3JjVHlwZSk7CiAgICAgY29uc3QgcHRyZGlmZl90IGRzdFN0cmlkZUluRWxlbWVudHMgPSBtX2Rz
dFN0cmlkZSAvIHNpemVvZihEc3RUeXBlKTsKLSAgICBjb25zdCBib29sIHRyaXZpYWxVbnBhY2sg
PSAoU3JjRm9ybWF0ID09IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCQTggJiYgIUlz
RmxvYXRGb3JtYXQ8RHN0Rm9ybWF0Pjo6VmFsdWUpIHx8IFNyY0Zvcm1hdCA9PSBHcmFwaGljc0Nv
bnRleHQzRDo6RGF0YUZvcm1hdFJHQkEzMkY7CisgICAgY29uc3QgYm9vbCB0cml2aWFsVW5wYWNr
ID0gKFNyY0Zvcm1hdCA9PSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQkE4ICYmICFJ
c0Zsb2F0Rm9ybWF0PERzdEZvcm1hdD46OlZhbHVlICYmICFJc0hhbGZGbG9hdEZvcm1hdDxEc3RG
b3JtYXQ+OjpWYWx1ZSkKKyAgICAgICAgfHwgU3JjRm9ybWF0ID09IEdyYXBoaWNzQ29udGV4dDNE
OjpEYXRhRm9ybWF0UkdCQTMyRjsKICAgICBjb25zdCBib29sIHRyaXZpYWxQYWNrID0gKERzdEZv
cm1hdCA9PSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQkE4IHx8IERzdEZvcm1hdCA9
PSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQkEzMkYpICYmIGFscGhhT3AgPT0gR3Jh
cGhpY3NDb250ZXh0M0Q6OkFscGhhRG9Ob3RoaW5nICYmIG1fZHN0U3RyaWRlID4gMDsKICAgICBB
U1NFUlQoIXRyaXZpYWxVbnBhY2sgfHwgIXRyaXZpYWxQYWNrKTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0QuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmgKaW5kZXggZWEz
YTcyOGU2ZWIwMzMwOTVjODllNjAzYWUzZGUzYmEzZmQwNjdjYS4uMGEzM2M0OWNkZWY4NWUyNTY3
ODk3NzM5ZDMwYzBmY2Y2ZDQxNmI0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRC5oCkBAIC02MDQsNiArNjA0LDcgQEAgcHVi
bGljOgogICAgICAgICBEYXRhRm9ybWF0UkdCQTE2TGl0dGxlLAogICAgICAgICBEYXRhRm9ybWF0
UkdCQTE2QmlnLAogICAgICAgICBEYXRhRm9ybWF0UkdCQTMyRiwKKyAgICAgICAgRGF0YUZvcm1h
dFJHQkExNkYsCiAgICAgICAgIERhdGFGb3JtYXRSR0I4LAogICAgICAgICBEYXRhRm9ybWF0UkdC
MTZMaXR0bGUsCiAgICAgICAgIERhdGFGb3JtYXRSR0IxNkJpZywKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHQzRE9wZW5H
TC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3ND
b250ZXh0M0RPcGVuR0wuY3BwCmluZGV4IDRkNzg2NzhiMjE4NzJkYmRiNmM0MGNiYmM2MmM0NjNl
YjAzODEwZTMuLmZjZDg5NDc2MjUwOTcyOWI3ZTE4Y2IzZGQ5OTFlYWU3MjYwODRmYzIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0Nv
bnRleHQzRE9wZW5HTC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
b3BlbmdsL0dyYXBoaWNzQ29udGV4dDNET3BlbkdMLmNwcApAQCAtMjczLDYgKzI3MywxNyBAQCBi
b29sIEdyYXBoaWNzQ29udGV4dDNEOjp0ZXhJbWFnZTJEKEdDM0RlbnVtIHRhcmdldCwgR0MzRGlu
dCBsZXZlbCwgR0MzRGVudW0gaW50ZQogICAgIHJldHVybiB0cnVlOwogfQogCit2b2lkIEdyYXBo
aWNzQ29udGV4dDNEOjp0ZXhTdWJJbWFnZTJEKEdDM0RlbnVtIHRhcmdldCwgR0MzRGludCBsZXZl
bCwgR0MzRGludCB4b2ZmLCBHQzNEaW50IHlvZmYsIEdDM0RzaXplaSB3aWR0aCwgR0MzRHNpemVp
IGhlaWdodCwgR0MzRGVudW0gZm9ybWF0LCBHQzNEZW51bSB0eXBlLCBjb25zdCB2b2lkKiBwaXhl
bHMpCit7CisgICAgaWYgKHR5cGUgPT0gSEFMRl9GTE9BVF9PRVMpCisgICAgICAgIHR5cGUgPSBH
TF9IQUxGX0ZMT0FUX0FSQjsKKworICAgIG1ha2VDb250ZXh0Q3VycmVudCgpOworCisgICAgLy8g
RklYTUU6IHdlIHdpbGwgbmVlZCB0byBkZWFsIHdpdGggUGl4ZWxTdG9yZSBwYXJhbXMgd2hlbiBk
ZWFsaW5nIHdpdGggaW1hZ2UgYnVmZmVycyB0aGF0IGRpZmZlciBmcm9tIHRoZSBzdWJpbWFnZSBz
aXplLgorICAgIDo6Z2xUZXhTdWJJbWFnZTJEKHRhcmdldCwgbGV2ZWwsIHhvZmYsIHlvZmYsIHdp
ZHRoLCBoZWlnaHQsIGZvcm1hdCwgdHlwZSwgcGl4ZWxzKTsKK30KKwogdm9pZCBHcmFwaGljc0Nv
bnRleHQzRDo6ZGVwdGhSYW5nZShHQzNEY2xhbXBmIHpOZWFyLCBHQzNEY2xhbXBmIHpGYXIpCiB7
CiAgICAgbWFrZUNvbnRleHRDdXJyZW50KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0M0RPcGVuR0xDb21tb24uY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4
dDNET3BlbkdMQ29tbW9uLmNwcAppbmRleCAzOTYxYTVmN2VkYWJlNDQ0MWYxMTE1YTZlMjY5Yzgw
ODRhZmNhMTRhLi5hODI3NDA1MjNiMmY3OGYxNzA1ZmU5NDQ3ZThhNzViMjdjMDM3NjkwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3ND
b250ZXh0M0RPcGVuR0xDb21tb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHQzRE9wZW5HTENvbW1vbi5jcHAKQEAgLTEzMDQs
MTQgKzEzMDQsNiBAQCBHQzNEc2l6ZWlwdHIgR3JhcGhpY3NDb250ZXh0M0Q6OmdldFZlcnRleEF0
dHJpYk9mZnNldChHQzNEdWludCBpbmRleCwgR0MzRGVudW0gcAogICAgIHJldHVybiBzdGF0aWNf
Y2FzdDxHQzNEc2l6ZWlwdHI+KHJlaW50ZXJwcmV0X2Nhc3Q8aW50cHRyX3Q+KHBvaW50ZXIpKTsK
IH0KIAotdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6dGV4U3ViSW1hZ2UyRChHQzNEZW51bSB0YXJn
ZXQsIEdDM0RpbnQgbGV2ZWwsIEdDM0RpbnQgeG9mZiwgR0MzRGludCB5b2ZmLCBHQzNEc2l6ZWkg
d2lkdGgsIEdDM0RzaXplaSBoZWlnaHQsIEdDM0RlbnVtIGZvcm1hdCwgR0MzRGVudW0gdHlwZSwg
Y29uc3Qgdm9pZCogcGl4ZWxzKQotewotICAgIG1ha2VDb250ZXh0Q3VycmVudCgpOwotCi0gICAg
Ly8gRklYTUU6IHdlIHdpbGwgbmVlZCB0byBkZWFsIHdpdGggUGl4ZWxTdG9yZSBwYXJhbXMgd2hl
biBkZWFsaW5nIHdpdGggaW1hZ2UgYnVmZmVycyB0aGF0IGRpZmZlciBmcm9tIHRoZSBzdWJpbWFn
ZSBzaXplLgotICAgIDo6Z2xUZXhTdWJJbWFnZTJEKHRhcmdldCwgbGV2ZWwsIHhvZmYsIHlvZmYs
IHdpZHRoLCBoZWlnaHQsIGZvcm1hdCwgdHlwZSwgcGl4ZWxzKTsKLX0KLQogdm9pZCBHcmFwaGlj
c0NvbnRleHQzRDo6Y29tcHJlc3NlZFRleEltYWdlMkQoR0MzRGVudW0gdGFyZ2V0LCBHQzNEaW50
IGxldmVsLCBHQzNEZW51bSBpbnRlcm5hbGZvcm1hdCwgR0MzRHNpemVpIHdpZHRoLCBHQzNEc2l6
ZWkgaGVpZ2h0LCBHQzNEaW50IGJvcmRlciwgR0MzRHNpemVpIGltYWdlU2l6ZSwgY29uc3Qgdm9p
ZCogZGF0YSkKIHsKICAgICBtYWtlQ29udGV4dEN1cnJlbnQoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHQzRE9wZW5H
TEVTLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGlj
c0NvbnRleHQzRE9wZW5HTEVTLmNwcAppbmRleCBmM2JlOTIzN2IwZTAwYWQxNmM3ZTI1YTk3ZjJl
ZDA2MjlmZjk0MjgwLi42M2JhYmEzOTNlODEwOWVmZjQ3NjQwMjcwZjk3ZmFiZDcxZmQ5ZTgyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhp
Y3NDb250ZXh0M0RPcGVuR0xFUy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dDNET3BlbkdMRVMuY3BwCkBAIC0yMDYsNiArMjA2
LDE0IEBAIGJvb2wgR3JhcGhpY3NDb250ZXh0M0Q6OnRleEltYWdlMkQoR0MzRGVudW0gdGFyZ2V0
LCBHQzNEaW50IGxldmVsLCBHQzNEZW51bSBpbnRlCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK3Zv
aWQgR3JhcGhpY3NDb250ZXh0M0Q6OnRleFN1YkltYWdlMkQoR0MzRGVudW0gdGFyZ2V0LCBHQzNE
aW50IGxldmVsLCBHQzNEaW50IHhvZmYsIEdDM0RpbnQgeW9mZiwgR0MzRHNpemVpIHdpZHRoLCBH
QzNEc2l6ZWkgaGVpZ2h0LCBHQzNEZW51bSBmb3JtYXQsIEdDM0RlbnVtIHR5cGUsIGNvbnN0IHZv
aWQqIHBpeGVscykKK3sKKyAgICBtYWtlQ29udGV4dEN1cnJlbnQoKTsKKworICAgIC8vIEZJWE1F
OiB3ZSB3aWxsIG5lZWQgdG8gZGVhbCB3aXRoIFBpeGVsU3RvcmUgcGFyYW1zIHdoZW4gZGVhbGlu
ZyB3aXRoIGltYWdlIGJ1ZmZlcnMgdGhhdCBkaWZmZXIgZnJvbSB0aGUgc3ViaW1hZ2Ugc2l6ZS4K
KyAgICA6OmdsVGV4U3ViSW1hZ2UyRCh0YXJnZXQsIGxldmVsLCB4b2ZmLCB5b2ZmLCB3aWR0aCwg
aGVpZ2h0LCBmb3JtYXQsIHR5cGUsIHBpeGVscyk7Cit9CisKIHZvaWQgR3JhcGhpY3NDb250ZXh0
M0Q6OnZhbGlkYXRlQXR0cmlidXRlcygpCiB7CiAgICAgdmFsaWRhdGVEZXB0aFN0ZW5jaWwoIkdM
X09FU19wYWNrZWRfZGVwdGhfc3RlbmNpbCIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGFlZDdmNDJjNjZlODg0ZjM0ZWI4
NjY2NWFiNDFjYzc4MDhlOTU3MjEuLmY2ZWI5MjljZDAwMzViMTk5ZjMzNjAyY2ExZTI1YzVjNDQy
NjkxOTYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOCBAQAorMjAxMy0wMy0yNyAgTmF5YW4gS3VtYXIgSyAg
PG5heWFua2tAbW90b3JvbGEuY29tPgorCisgICAgICAgIFtXZWJHTF0gU3VwcG9ydCBmb3IgdGV4
SW1hZ2UyRCBvZiB0eXBlIEhBTEZfRkxPQVRfT0VTIHdpdGggSW1hZ2VEYXRhLAorICAgICAgICBI
VE1MSW1hZ2VFbGVtZW50LCBIVE1MQ2FudmFzRWxlbWVudCBhbmQgSFRNTFZpZGVvRWxlbWVudC4K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMDkzNgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZmFzdC9j
YW52YXMvd2ViZ2wvb2VzLXRleHR1cmUtaGFsZi1mbG9hdC1ub3Qtc3VwcG9ydGVkLWV4cGVjdGVk
LnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L2NhbnZhcy93ZWJnbC9vZXMtdGV4dHVyZS1o
YWxmLWZsb2F0LW5vdC1zdXBwb3J0ZWQuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L2Nh
bnZhcy93ZWJnbC9vZXMtdGV4dHVyZS1oYWxmLWZsb2F0LXdpdGgtY2FudmFzLWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogZmFzdC9jYW52YXMvd2ViZ2wvb2VzLXRleHR1cmUtaGFsZi1m
bG9hdC13aXRoLWNhbnZhcy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2NhbnZhcy93ZWJn
bC9vZXMtdGV4dHVyZS1oYWxmLWZsb2F0LXdpdGgtaW1hZ2UtZGF0YS1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIGZhc3QvY2FudmFzL3dlYmdsL29lcy10ZXh0dXJlLWhhbGYtZmxvYXQt
d2l0aC1pbWFnZS1kYXRhLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY2FudmFzL3dlYmds
L29lcy10ZXh0dXJlLWhhbGYtZmxvYXQtd2l0aC1pbWFnZS1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIGZhc3QvY2FudmFzL3dlYmdsL29lcy10ZXh0dXJlLWhhbGYtZmxvYXQtd2l0aC1p
bWFnZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2NhbnZhcy93ZWJnbC9vZXMtdGV4dHVy
ZS1oYWxmLWZsb2F0LXdpdGgtdmlkZW8tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBm
YXN0L2NhbnZhcy93ZWJnbC9vZXMtdGV4dHVyZS1oYWxmLWZsb2F0LXdpdGgtdmlkZW8uaHRtbDog
QWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vVGVzdEV4cGVjdGF0aW9uczoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2NhbnZhcy93ZWJnbC9vZXMtdGV4dHVyZS1o
YWxmLWZsb2F0LXdpdGgtY2FudmFzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxh
dGZvcm0vY2hyb21pdW0vZmFzdC9jYW52YXMvd2ViZ2wvb2VzLXRleHR1cmUtaGFsZi1mbG9hdC13
aXRoLWltYWdlLWRhdGEtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9j
aHJvbWl1bS9mYXN0L2NhbnZhcy93ZWJnbC9vZXMtdGV4dHVyZS1oYWxmLWZsb2F0LXdpdGgtaW1h
Z2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9mYXN0
L2NhbnZhcy93ZWJnbC9vZXMtdGV4dHVyZS1oYWxmLWZsb2F0LXdpdGgtdmlkZW8tZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9uczoKKwog
MjAxMy0wMy0yNyAgU2hpbnlhIEthd2FuYWthICA8c2hpbnlha0BjaHJvbWl1bS5vcmc+IAogCiAg
ICAgICAgIFtDaHJvbWl1bV0gVW5yZXZpZXdlZCBnYXJkZW5pbmcuIFRlc3QgRXhwZWN0YXRpb25z
IHVwZGF0ZS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL29lcy10
ZXh0dXJlLWhhbGYtZmxvYXQtbm90LXN1cHBvcnRlZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9mYXN0L2NhbnZhcy93ZWJnbC9vZXMtdGV4dHVyZS1oYWxmLWZsb2F0LW5vdC1zdXBwb3J0ZWQt
ZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyZjFiMzUwMmE4YWI4
MzE4MzliYWI4NGVhNzI3OTI1NmNkNGFlMjcxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL29lcy10ZXh0
dXJlLWhhbGYtZmxvYXQtbm90LXN1cHBvcnRlZC1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApA
QCAtMSw0MCArMCwwIEBACi1UZXN0aW5nIG5vdCB5ZXQgc3VwcG9ydGVkIHRleHR1cmUgdXBsb2Fk
cwotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2Vz
LCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQotCi1QQVNTIFdlYkdMIGNvbnRleHQg
ZXhpc3RzCi1QQVNTIFN1Y2Nlc3NmdWxseSBlbmFibGVkIE9FU190ZXh0dXJlX2hhbGZfZmxvYXQg
ZXh0ZW5zaW9uCi0KLVZlcmlmeSB3aGV0aGVyIHVwbG9hZGluZyBJbWFnZURhdGEgdmlhIHRleElt
YWdlMkQvdGV4U3ViSW1hZ2UyRCBpcyBzdXBwb3J0ZWQKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVj
dGVkIHZhbHVlOiBOT19FUlJPUiA6IHRleHR1cmUgcGFyYW1ldGVyIHNldHVwIHNob3VsZCBzdWNj
ZWVkCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9PUEVSQVRJT04g
OiBVcGxvYWRpbmcgdG8gaGFsZiBmbG9hdCB0ZXh0dXJlIGlzIG5vdCB5ZXQgc3VwcG9ydGVkCi1Q
QVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiBVcGxvYWRpbmcgbnVs
bCBBcnJheUJ1ZmZlclZpZXcgdG8gaGFsZiBmbG9hdCB0ZXh0dXJlIHNob3VsZCBzdWNjZWVkCi1Q
QVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9PUEVSQVRJT04gOiBVcGxv
YWRpbmcgdG8gaGFsZiBmbG9hdCB0ZXh0dXJlIHVzaW5nIHRleFN1YkltYWdlMkQgaXMgbm90IHN1
cHBvcnRlZCB5ZXQKLQotVmVyaWZ5IHdoZXRoZXIgdXBsb2FkaW5nIEhUTUxJbWFnZUVsZW1lbnQg
dmlhIHRleEltYWdlMkQvdGV4U3ViSW1hZ2UyRCBpcyBzdXBwb3J0ZWQKLQotVmVyaWZ5IHdoZXRo
ZXIgdXBsb2FkaW5nIEhUTUxDYW52YXNFbGVtZW50IHZpYSB0ZXhJbWFnZTJEL3RleFN1YkltYWdl
MkQgaXMgc3VwcG9ydGVkCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJS
T1IgOiB0ZXh0dXJlIHBhcmFtZXRlciBzZXR1cCBzaG91bGQgc3VjY2VlZAotUEFTUyBnZXRFcnJv
ciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfT1BFUkFUSU9OIDogVXBsb2FkaW5nIHRvIGhh
bGYgZmxvYXQgdGV4dHVyZSBpcyBub3QgeWV0IHN1cHBvcnRlZAotUEFTUyBnZXRFcnJvciB3YXMg
ZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogVXBsb2FkaW5nIG51bGwgQXJyYXlCdWZmZXJWaWV3
IHRvIGhhbGYgZmxvYXQgdGV4dHVyZSBzaG91bGQgc3VjY2VlZAotUEFTUyBnZXRFcnJvciB3YXMg
ZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfT1BFUkFUSU9OIDogVXBsb2FkaW5nIHRvIGhhbGYgZmxv
YXQgdGV4dHVyZSB1c2luZyB0ZXhTdWJJbWFnZTJEIGlzIG5vdCBzdXBwb3J0ZWQgeWV0Ci0KLVZl
cmlmeSB3aGV0aGVyIHVwbG9hZGluZyBIVE1MVmlkZW9FbGVtZW50IHZpYSB0ZXhJbWFnZTJEL3Rl
eFN1YkltYWdlMkQgaXMgc3VwcG9ydGVkCi0KLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRy
dWUKLQotVEVTVCBDT01QTEVURQotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5P
X0VSUk9SIDogdGV4dHVyZSBwYXJhbWV0ZXIgc2V0dXAgc2hvdWxkIHN1Y2NlZWQKLVBBU1MgZ2V0
RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX09QRVJBVElPTiA6IFVwbG9hZGluZyB0
byBoYWxmIGZsb2F0IHRleHR1cmUgaXMgbm90IHlldCBzdXBwb3J0ZWQKLVBBU1MgZ2V0RXJyb3Ig
d2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IFVwbG9hZGluZyBudWxsIEFycmF5QnVmZmVy
VmlldyB0byBoYWxmIGZsb2F0IHRleHR1cmUgc2hvdWxkIHN1Y2NlZWQKLVBBU1MgZ2V0RXJyb3Ig
d2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX09QRVJBVElPTiA6IFVwbG9hZGluZyB0byBoYWxm
IGZsb2F0IHRleHR1cmUgdXNpbmcgdGV4U3ViSW1hZ2UyRCBpcyBub3Qgc3VwcG9ydGVkIHlldAot
UEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogdGV4dHVyZSBwYXJh
bWV0ZXIgc2V0dXAgc2hvdWxkIHN1Y2NlZWQKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZh
bHVlOiBJTlZBTElEX09QRVJBVElPTiA6IFVwbG9hZGluZyB0byBoYWxmIGZsb2F0IHRleHR1cmUg
aXMgbm90IHlldCBzdXBwb3J0ZWQKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBO
T19FUlJPUiA6IFVwbG9hZGluZyBudWxsIEFycmF5QnVmZmVyVmlldyB0byBoYWxmIGZsb2F0IHRl
eHR1cmUgc2hvdWxkIHN1Y2NlZWQKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJ
TlZBTElEX09QRVJBVElPTiA6IFVwbG9hZGluZyB0byBoYWxmIGZsb2F0IHRleHR1cmUgdXNpbmcg
dGV4U3ViSW1hZ2UyRCBpcyBub3Qgc3VwcG9ydGVkIHlldAotUEFTUyBzdWNjZXNzZnVsbHlQYXJz
ZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0gCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L2NhbnZhcy93ZWJnbC9vZXMtdGV4dHVyZS1oYWxmLWZsb2F0LW5vdC1zdXBwb3J0ZWQuaHRt
bCBiL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL29lcy10ZXh0dXJlLWhhbGYtZmxvYXQt
bm90LXN1cHBvcnRlZC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhMDhlOTQ3
ZDQ4NTJjYmU2OWI2YWM4NTE0YWU0Y2U0OTI3MGRmZTg1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL29l
cy10ZXh0dXJlLWhhbGYtZmxvYXQtbm90LXN1cHBvcnRlZC5odG1sCisrKyAvZGV2L251bGwKQEAg
LTEsMTcwICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxtZXRhIGNo
YXJzZXQ9InV0Zi04Ij4KLTx0aXRsZT5XZWJHTCBPRVNfdGV4dHVyZV9oYWxmX2Zsb2F0IG5vdCB5
ZXQgaW1wbGVtZW50ZWQgQ29uZm9ybWFuY2UgVGVzdHM8L3RpdGxlPgotPGxpbmsgcmVsPSJzdHls
ZXNoZWV0IiBocmVmPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiLz4KLTxz
Y3JpcHQgc3JjPSJyZXNvdXJjZXMvZGVza3RvcC1nbC1jb25zdGFudHMuanMiIHR5cGU9InRleHQv
amF2YXNjcmlwdCI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pz
LXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvd2ViZ2wtdGVz
dC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3dlYmdsLXRlc3QtdXRpbHMu
anMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08Y2FudmFzIGlkPSJ0ZXhjYW52YXMiIHdp
ZHRoPSIxIiBoZWlnaHQ9IjIiPjwvY2FudmFzPgotPHNjcmlwdD4KLWRlc2NyaXB0aW9uKCJUZXN0
aW5nIG5vdCB5ZXQgc3VwcG9ydGVkIHRleHR1cmUgdXBsb2FkcyIpOwotZGVidWcoIiIpOwotCi1p
ZiAod2luZG93LmluaXROb25LaHJvbm9zRnJhbWV3b3JrKSB7Ci0gICAgd2luZG93LmluaXROb25L
aHJvbm9zRnJhbWV3b3JrKHRydWUpOwotfQotCi1pZiAod2luZG93LmludGVybmFscykKLSAgICB3
aW5kb3cuaW50ZXJuYWxzLnNldHRpbmdzLnNldFdlYkdMRXJyb3JzVG9Db25zb2xlRW5hYmxlZChm
YWxzZSk7Ci0KLXZhciB3dHUgPSBXZWJHTFRlc3RVdGlsczsKLXZhciBjYW52YXMgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgiY2FudmFzIik7Ci12YXIgZ2wgPSB3dHUuY3JlYXRlM0RDb250ZXh0
KGNhbnZhcyk7Ci12YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gZmFsc2U7Ci0KLWlmICghZ2wpIHsK
LSAgICB0ZXN0RmFpbGVkKCJXZWJHTCBjb250ZXh0IGRvZXMgbm90IGV4aXN0cyIpOwotfSBlbHNl
IHsKLSAgICB0ZXN0UGFzc2VkKCJXZWJHTCBjb250ZXh0IGV4aXN0cyIpOwotCi0gICAgaWYoIWds
LmdldEV4dGVuc2lvbigiT0VTX3RleHR1cmVfaGFsZl9mbG9hdCIpKSB7Ci0gICAgICAgIHRlc3RQ
YXNzZWQoIk5vIE9FU190ZXh0dXJlX2hhbGZfZmxvYXQgc3VwcG9ydC4gVGhpcyBpcyBsZWdhbCIp
OwotICAgIH0gZWxzZSB7Ci0gICAgICAgIHRlc3RQYXNzZWQoIlN1Y2Nlc3NmdWxseSBlbmFibGVk
IE9FU190ZXh0dXJlX2hhbGZfZmxvYXQgZXh0ZW5zaW9uIik7Ci0gICAgICAgIAotICAgICAgICB2
YXIgY2FudmFzMmQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGV4Y2FudmFzIik7Ci0gICAg
ICAgIHZhciBjb250ZXh0MmQgPSBjYW52YXMyZC5nZXRDb250ZXh0KCIyZCIpOwotCi0gICAgICAg
IHJ1bkltYWdlRGF0YVVuc3VwcG9ydGVkVGVzdChjYW52YXMyZCwgY29udGV4dDJkKTsKLSAgICAg
ICAgcnVuSFRNTEltYWdlRWxlbWVudFVuc3VwcG9ydGVkVGVzdChjYW52YXMyZCwgY29udGV4dDJk
KTsKLSAgICAgICAgcnVuSFRNTENhbnZhc0VsZW1lbnRVbnN1cHBvcnRlZFRlc3QoY2FudmFzMmQs
IGNvbnRleHQyZCk7Ci0gICAgICAgIHJ1bkhUTUxWaWRlb0VsZW1lbnRVbnN1cHBvcnRlZFRlc3Qo
Y2FudmFzMmQsIGNvbnRleHQyZCk7Ci0gICAgfQotfQotCi1mdW5jdGlvbiBhbGxvY2F0ZVRleHR1
cmUoKQotewotICAgIHZhciB0ZXh0dXJlID0gZ2wuY3JlYXRlVGV4dHVyZSgpOwotICAgIGdsLmJp
bmRUZXh0dXJlKGdsLlRFWFRVUkVfMkQsIHRleHR1cmUpOwotICAgIGdsLnRleFBhcmFtZXRlcmko
Z2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9NSU5fRklMVEVSLCBnbC5ORUFSRVNUKTsKLSAgICBn
bC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfTUFHX0ZJTFRFUiwgZ2wu
TkVBUkVTVCk7Ci0gICAgZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJF
X1dSQVBfUywgZ2wuQ0xBTVBfVE9fRURHRSk7Ci0gICAgZ2wudGV4UGFyYW1ldGVyaShnbC5URVhU
VVJFXzJELCBnbC5URVhUVVJFX1dSQVBfVCwgZ2wuQ0xBTVBfVE9fRURHRSk7Ci0gICAgZ2xFcnJv
clNob3VsZEJlKGdsLCBnbC5OT19FUlJPUiwgInRleHR1cmUgcGFyYW1ldGVyIHNldHVwIHNob3Vs
ZCBzdWNjZWVkIik7Ci0gICAgcmV0dXJuIHRleHR1cmU7Ci19Ci0KLWZ1bmN0aW9uIHJ1blRleHR1
cmVVcGxvYWRUZXN0KGltYWdlKQotewotICAgIHZhciB0ZXh0dXJlID0gYWxsb2NhdGVUZXh0dXJl
KCk7Ci0gICAgZ2wudGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCBnbC5SR0JBLCBnbC5SR0JB
LCBnbC5IQUxGX0ZMT0FUX09FUywgaW1hZ2UpOwotICAgIGdsRXJyb3JTaG91bGRCZShnbCwgZ2wu
SU5WQUxJRF9PUEVSQVRJT04sICJVcGxvYWRpbmcgdG8gaGFsZiBmbG9hdCB0ZXh0dXJlIGlzIG5v
dCB5ZXQgc3VwcG9ydGVkIik7Ci0KLSAgICAvLyBDaGVjayBpZiB1cGxvYWRpbmcgSW1hZ2VEYXRh
IHZpYSB0ZXhTdWJJbWFnZTJEIGlzIHN1cHBvcnRlZAotICAgIGdsLnRleEltYWdlMkQoZ2wuVEVY
VFVSRV8yRCwgMCwgZ2wuUkdCQSwgMSwgMiwgMCwgZ2wuUkdCQSwgZ2wuSEFMRl9GTE9BVF9PRVMs
IG51bGwpOwotICAgIGdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IsICJVcGxvYWRpbmcg
bnVsbCBBcnJheUJ1ZmZlclZpZXcgdG8gaGFsZiBmbG9hdCB0ZXh0dXJlIHNob3VsZCBzdWNjZWVk
Iik7Ci0gICAgZ2wudGV4U3ViSW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCAwLCAwLCBnbC5SR0JB
LCBnbC5IQUxGX0ZMT0FUX09FUywgaW1hZ2UpOwotICAgIGdsRXJyb3JTaG91bGRCZShnbCwgZ2wu
SU5WQUxJRF9PUEVSQVRJT04sICJVcGxvYWRpbmcgdG8gaGFsZiBmbG9hdCB0ZXh0dXJlIHVzaW5n
IHRleFN1YkltYWdlMkQgaXMgbm90IHN1cHBvcnRlZCB5ZXQiKTsKLX0KLQotZnVuY3Rpb24gcnVu
SW1hZ2VEYXRhVW5zdXBwb3J0ZWRUZXN0KGNhbnZhczJkLCBjb250ZXh0MmQpCi17Ci0gICAgZGVi
dWcoIiIpOwotICAgIGRlYnVnKCJWZXJpZnkgd2hldGhlciB1cGxvYWRpbmcgSW1hZ2VEYXRhIHZp
YSB0ZXhJbWFnZTJEL3RleFN1YkltYWdlMkQgaXMgc3VwcG9ydGVkIik7Ci0gICAgCi0gICAgLy8g
Q2hlY2sgaWYgdXBsb2FkaW5nIEltYWdlRGF0YSB2aWEgdGV4SW1hZ2UyRCBpcyBzdXBwb3J0ZWQK
LSAgICB2YXIgaW1hZ2VEYXRhID0gY29udGV4dDJkLmNyZWF0ZUltYWdlRGF0YSgxLCAyKTsKLSAg
ICB2YXIgZGF0YSA9IGltYWdlRGF0YS5kYXRhOwotICAgIGRhdGFbMF0gPSAyNTU7Ci0gICAgZGF0
YVsxXSA9IDA7Ci0gICAgZGF0YVsyXSA9IDA7Ci0gICAgZGF0YVszXSA9IDI1NTsKLSAgICBkYXRh
WzRdID0gMDsKLSAgICBkYXRhWzVdID0gMjU1OwotICAgIGRhdGFbNl0gPSAwOwotICAgIGRhdGFb
N10gPSAwOwotCi0gICAgcnVuVGV4dHVyZVVwbG9hZFRlc3QoaW1hZ2VEYXRhKTsgICAgCi19Ci0K
LWZ1bmN0aW9uIHJ1bkhUTUxJbWFnZUVsZW1lbnRVbnN1cHBvcnRlZFRlc3QoY2FudmFzMmQsIGNv
bnRleHQyZCkKLXsKLSAgICBkZWJ1ZygiIik7Ci0gICAgZGVidWcoIlZlcmlmeSB3aGV0aGVyIHVw
bG9hZGluZyBIVE1MSW1hZ2VFbGVtZW50IHZpYSB0ZXhJbWFnZTJEL3RleFN1YkltYWdlMkQgaXMg
c3VwcG9ydGVkIik7Ci0KLSAgICB2YXIgaW1hZ2VEYXRhID0gY29udGV4dDJkLmNyZWF0ZUltYWdl
RGF0YSgxLCAyKTsKLSAgICB2YXIgZGF0YSA9IGltYWdlRGF0YS5kYXRhOwotICAgIGRhdGFbMF0g
PSAyNTU7Ci0gICAgZGF0YVsxXSA9IDA7Ci0gICAgZGF0YVsyXSA9IDA7Ci0gICAgZGF0YVszXSA9
IDI1NTsKLSAgICBkYXRhWzRdID0gMDsKLSAgICBkYXRhWzVdID0gMjU1OwotICAgIGRhdGFbNl0g
PSAwOwotICAgIGRhdGFbN10gPSAwOwotICAgIGNvbnRleHQyZC5wdXRJbWFnZURhdGEoaW1hZ2VE
YXRhLCAwLCAwKTsKLQotICAgIHZhciBuZXdJbWFnZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
ImltZyIpOwotICAgIG5ld0ltYWdlLm9ubG9hZCA9IGZ1bmN0aW9uKCkgewotICAgICAgICBydW5U
ZXh0dXJlVXBsb2FkVGVzdChuZXdJbWFnZSk7Ci0gICAgfQotICAgIG5ld0ltYWdlLnNyYyA9IGNh
bnZhczJkLnRvRGF0YVVSTCgpOwotfQotCi1mdW5jdGlvbiBzZXRDYW52YXNUb1JlZEdyZWVuKGN0
eCkgewotICAgIHZhciB3aWR0aCA9IGN0eC5jYW52YXMud2lkdGg7Ci0gICAgdmFyIGhlaWdodCA9
IGN0eC5jYW52YXMuaGVpZ2h0OwotICAgIHZhciBoYWxmSGVpZ2h0ID0gTWF0aC5mbG9vcihoZWln
aHQgLyAyKTsKLSAgICBjdHguZmlsbFN0eWxlID0gIiNmZjAwMDAiOwotICAgIGN0eC5maWxsUmVj
dCgwLCAwLCB3aWR0aCwgaGFsZkhlaWdodCk7Ci0gICAgY3R4LmZpbGxTdHlsZSA9ICIjMDBmZjAw
IjsKLSAgICBjdHguZmlsbFJlY3QoMCwgaGFsZkhlaWdodCwgd2lkdGgsIGhlaWdodCAtIGhhbGZI
ZWlnaHQpOwotfQotCi1mdW5jdGlvbiBydW5IVE1MQ2FudmFzRWxlbWVudFVuc3VwcG9ydGVkVGVz
dChjYW52YXMyZCwgY29udGV4dDJkKQotewotICAgIGRlYnVnKCIiKTsKLSAgICBkZWJ1ZygiVmVy
aWZ5IHdoZXRoZXIgdXBsb2FkaW5nIEhUTUxDYW52YXNFbGVtZW50IHZpYSB0ZXhJbWFnZTJEL3Rl
eFN1YkltYWdlMkQgaXMgc3VwcG9ydGVkIik7Ci0gICAgCi0gICAgY29udGV4dDJkLndpZHRoID0g
MTsKLSAgICBjb250ZXh0MmQuaGVpZ2h0ID0gMjsKLSAgICBzZXRDYW52YXNUb1JlZEdyZWVuKGNv
bnRleHQyZCk7Ci0KLSAgICBydW5UZXh0dXJlVXBsb2FkVGVzdChjYW52YXMyZCk7Ci19Ci0KLWZ1
bmN0aW9uIHJ1bkhUTUxWaWRlb0VsZW1lbnRVbnN1cHBvcnRlZFRlc3QoY2FudmFzMmQsIGNvbnRl
eHQyZCkKLXsKLSAgICBkZWJ1ZygiIik7Ci0gICAgZGVidWcoIlZlcmlmeSB3aGV0aGVyIHVwbG9h
ZGluZyBIVE1MVmlkZW9FbGVtZW50IHZpYSB0ZXhJbWFnZTJEL3RleFN1YkltYWdlMkQgaXMgc3Vw
cG9ydGVkIik7Ci0KLSAgICB2YXIgaW5mbyA9IHsgc3JjOiAicmVzb3VyY2VzL3JlZC1ncmVlbi5t
cDQiLCB0eXBlOiAndmlkZW8vbXA0OyBjb2RlY3M9ImF2YzEuNDJFMDFFLCBtcDRhLjQwLjIiJ307
Ci0gICAgdmFyIHZpZGVvID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidmlkZW8iKTsKLSAgICBp
ZiAoIXZpZGVvLmNhblBsYXlUeXBlKSB7Ci0gICAgICAgIHRlc3RGYWlsZWQoInZpZGVvLmNhblBs
YXlUeXBlIHJlcXVpcmVkIG1ldGhvZCBpcyBtaXNzaW5nIik7Ci0gICAgICAgIHJldHVybjsKLSAg
ICB9Ci0gICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh2aWRlbyk7Ci0gICAgdmlkZW8uYWRk
RXZlbnRMaXN0ZW5lcigKLSAgICAgICAgInBsYXlpbmciLCBmdW5jdGlvbigpIHsgcnVuVGV4dHVy
ZVVwbG9hZFRlc3QodmlkZW8pOyBmaW5pc2hUZXN0KCk7IH0sIHRydWUpOwotICAgIHZpZGVvLnR5
cGUgPSBpbmZvLnR5cGU7Ci0gICAgdmlkZW8uc3JjID0gaW5mby5zcmM7Ci0gICAgdmlkZW8ubG9v
cCA9IHRydWU7Ci0gICAgdmlkZW8ud2lkdGggPSAxOwotICAgIHZpZGVvLmhlaWdodCA9IDI7Ci0g
ICAgdmlkZW8ucGxheSgpOwotCi19Ci0KLWRlYnVnKCIiKTsKLQotPC9zY3JpcHQ+Ci08c2NyaXB0
IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2Jv
ZHk+Ci08L2h0bWw+Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmds
L29lcy10ZXh0dXJlLWhhbGYtZmxvYXQtd2l0aC1jYW52YXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvb2VzLXRleHR1cmUtaGFsZi1mbG9hdC13aXRoLWNhbnZh
cy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjU3NGY0ZjE1OTYwYTRjMjI4NmNhMGU3NmM1MWVi
NmM4M2U5MDMwZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dl
YmdsL29lcy10ZXh0dXJlLWhhbGYtZmxvYXQtd2l0aC1jYW52YXMtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsMzAgQEAKK1ZlcmlmeSB0ZXhJbWFnZTJEIGFuZCB0ZXhTdWJJbWFnZTJEIGNvZGUgcGF0
aHMgdGFraW5nIGNhbnZhcyBlbGVtZW50cyAoUkdCQS9IQUxGX0ZMT0FUX09FUykKKworT24gc3Vj
Y2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQg
YnkgIlRFU1QgQ09NUExFVEUiLgorCitQQVNTIFN1Y2Nlc3NmdWxseSBlbmFibGVkIE9FU190ZXh0
dXJlX2hhbGZfZmxvYXQgZXh0ZW5zaW9uCitUZXN0aW5nIHRleEltYWdlMkQgd2l0aCBmbGlwWT10
cnVlCitDaGVja2luZyBsb3dlciBsZWZ0IGNvcm5lcgorUEFTUyBzaG91bGRCZSAwLDI1NSwwCitD
aGVja2luZyB1cHBlciBsZWZ0IGNvcm5lcgorUEFTUyBzaG91bGRCZSAyNTUsMCwwCitUZXN0aW5n
IHRleEltYWdlMkQgd2l0aCBmbGlwWT1mYWxzZQorQ2hlY2tpbmcgbG93ZXIgbGVmdCBjb3JuZXIK
K1BBU1Mgc2hvdWxkQmUgMjU1LDAsMAorQ2hlY2tpbmcgdXBwZXIgbGVmdCBjb3JuZXIKK1BBU1Mg
c2hvdWxkQmUgMCwyNTUsMAorVGVzdGluZyB0ZXhTdWJJbWFnZTJEIHdpdGggZmxpcFk9dHJ1ZQor
Q2hlY2tpbmcgbG93ZXIgbGVmdCBjb3JuZXIKK1BBU1Mgc2hvdWxkQmUgMCwyNTUsMAorQ2hlY2tp
bmcgdXBwZXIgbGVmdCBjb3JuZXIKK1BBU1Mgc2hvdWxkQmUgMjU1LDAsMAorVGVzdGluZyB0ZXhT
dWJJbWFnZTJEIHdpdGggZmxpcFk9ZmFsc2UKK0NoZWNraW5nIGxvd2VyIGxlZnQgY29ybmVyCitQ
QVNTIHNob3VsZEJlIDI1NSwwLDAKK0NoZWNraW5nIHVwcGVyIGxlZnQgY29ybmVyCitQQVNTIHNo
b3VsZEJlIDAsMjU1LDAKK1BBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJP
UiA6IHNob3VsZCBiZSBubyBlcnJvcnMKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
KworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93
ZWJnbC9vZXMtdGV4dHVyZS1oYWxmLWZsb2F0LXdpdGgtY2FudmFzLmh0bWwgYi9MYXlvdXRUZXN0
cy9mYXN0L2NhbnZhcy93ZWJnbC9vZXMtdGV4dHVyZS1oYWxmLWZsb2F0LXdpdGgtY2FudmFzLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZjk2NGJmNDEwMTUyZjZjODNjYjBkZWE2ZjE0ZmExOTVlZTk0YzM2MAot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL29lcy10ZXh0
dXJlLWhhbGYtZmxvYXQtd2l0aC1jYW52YXMuaHRtbApAQCAtMCwwICsxLDI3IEBACis8IURPQ1RZ
UEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8bGluayBy
ZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNz
cyIvPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3dlYmdsLXRlc3QuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9InJlc291cmNlcy93ZWJnbC10ZXN0LXV0aWxzLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSJyZXNvdXJjZXMvdGV4LWltYWdlLWFuZC1zdWItaW1hZ2UtMmQtd2l0aC1jYW52
YXMuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Z1bmN0aW9uIHRlc3RQcm9sb2d1ZShnbCkgewor
ICAgIGlmICghZ2wuZ2V0RXh0ZW5zaW9uKCJPRVNfdGV4dHVyZV9oYWxmX2Zsb2F0IikpIHsKKyAg
ICAgICAgdGVzdFBhc3NlZCgiTm8gT0VTX3RleHR1cmVfaGFsZl9mbG9hdCBzdXBwb3J0IC0tIHRo
aXMgaXMgbGVnYWwiKTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIHRlc3RQ
YXNzZWQoIlN1Y2Nlc3NmdWxseSBlbmFibGVkIE9FU190ZXh0dXJlX2hhbGZfZmxvYXQgZXh0ZW5z
aW9uIik7CisgICAgcmV0dXJuIHRydWU7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9u
bG9hZD0nZ2VuZXJhdGVUZXN0KCJSR0JBIiwgIkhBTEZfRkxPQVRfT0VTIiwgdGVzdFByb2xvZ3Vl
KSgpJz4KKzxjYW52YXMgaWQ9ImV4YW1wbGUiIHdpZHRoPSIzMiIgaGVpZ2h0PSIzMiI+PC9jYW52
YXM+Cis8ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9kaXY+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rp
dj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY2FudmFz
L3dlYmdsL29lcy10ZXh0dXJlLWhhbGYtZmxvYXQtd2l0aC1pbWFnZS1kYXRhLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL29lcy10ZXh0dXJlLWhhbGYtZmxvYXQt
d2l0aC1pbWFnZS1kYXRhLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iYTYzMTViMTExMTFiYjA1
NWY1ZTBhZTFiM2VlYmNmZjdmY2I0NGU2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9jYW52YXMvd2ViZ2wvb2VzLXRleHR1cmUtaGFsZi1mbG9hdC13aXRoLWltYWdlLWRhdGEt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNTEgQEAKKyAKK1ZlcmlmeSB0ZXhJbWFnZTJEIGFuZCB0
ZXhTdWJJbWFnZTJEIGNvZGUgcGF0aHMgdGFraW5nIEltYWdlRGF0YSAoUkdCQS9IQUxGX0ZMT0FU
X09FUykKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNz
YWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCitQQVNTIFN1Y2Nlc3NmdWxseSBl
bmFibGVkIE9FU190ZXh0dXJlX2hhbGZfZmxvYXQgZXh0ZW5zaW9uCitUZXN0aW5nIHRleEltYWdl
MkQgd2l0aCBmbGlwWT10cnVlIGFuZCBwcmVtdWx0aXBseUFscGhhPWZhbHNlCitDaGVja2luZyBi
b3R0b20gcGl4ZWwKK1BBU1Mgc2hvdWxkQmUgMCwyNTUsMCwyNTUKK0NoZWNraW5nIHRvcCBwaXhl
bAorUEFTUyBzaG91bGRCZSAyNTUsMCwwLDI1NQorVGVzdGluZyB0ZXhJbWFnZTJEIHdpdGggZmxp
cFk9ZmFsc2UgYW5kIHByZW11bHRpcGx5QWxwaGE9ZmFsc2UKK0NoZWNraW5nIGJvdHRvbSBwaXhl
bAorUEFTUyBzaG91bGRCZSAyNTUsMCwwLDI1NQorQ2hlY2tpbmcgdG9wIHBpeGVsCitQQVNTIHNo
b3VsZEJlIDAsMjU1LDAsMjU1CitUZXN0aW5nIHRleEltYWdlMkQgd2l0aCBmbGlwWT10cnVlIGFu
ZCBwcmVtdWx0aXBseUFscGhhPXRydWUKK0NoZWNraW5nIGJvdHRvbSBwaXhlbAorUEFTUyBzaG91
bGRCZSAwLDAsMCwyNTUKK0NoZWNraW5nIHRvcCBwaXhlbAorUEFTUyBzaG91bGRCZSAyNTUsMCww
LDI1NQorVGVzdGluZyB0ZXhJbWFnZTJEIHdpdGggZmxpcFk9ZmFsc2UgYW5kIHByZW11bHRpcGx5
QWxwaGE9dHJ1ZQorQ2hlY2tpbmcgYm90dG9tIHBpeGVsCitQQVNTIHNob3VsZEJlIDI1NSwwLDAs
MjU1CitDaGVja2luZyB0b3AgcGl4ZWwKK1BBU1Mgc2hvdWxkQmUgMCwwLDAsMjU1CitUZXN0aW5n
IHRleFN1YkltYWdlMkQgd2l0aCBmbGlwWT10cnVlIGFuZCBwcmVtdWx0aXBseUFscGhhPWZhbHNl
CitDaGVja2luZyBib3R0b20gcGl4ZWwKK1BBU1Mgc2hvdWxkQmUgMCwyNTUsMCwyNTUKK0NoZWNr
aW5nIHRvcCBwaXhlbAorUEFTUyBzaG91bGRCZSAyNTUsMCwwLDI1NQorVGVzdGluZyB0ZXhTdWJJ
bWFnZTJEIHdpdGggZmxpcFk9ZmFsc2UgYW5kIHByZW11bHRpcGx5QWxwaGE9ZmFsc2UKK0NoZWNr
aW5nIGJvdHRvbSBwaXhlbAorUEFTUyBzaG91bGRCZSAyNTUsMCwwLDI1NQorQ2hlY2tpbmcgdG9w
IHBpeGVsCitQQVNTIHNob3VsZEJlIDAsMjU1LDAsMjU1CitUZXN0aW5nIHRleFN1YkltYWdlMkQg
d2l0aCBmbGlwWT10cnVlIGFuZCBwcmVtdWx0aXBseUFscGhhPXRydWUKK0NoZWNraW5nIGJvdHRv
bSBwaXhlbAorUEFTUyBzaG91bGRCZSAwLDAsMCwyNTUKK0NoZWNraW5nIHRvcCBwaXhlbAorUEFT
UyBzaG91bGRCZSAyNTUsMCwwLDI1NQorVGVzdGluZyB0ZXhTdWJJbWFnZTJEIHdpdGggZmxpcFk9
ZmFsc2UgYW5kIHByZW11bHRpcGx5QWxwaGE9dHJ1ZQorQ2hlY2tpbmcgYm90dG9tIHBpeGVsCitQ
QVNTIHNob3VsZEJlIDI1NSwwLDAsMjU1CitDaGVja2luZyB0b3AgcGl4ZWwKK1BBU1Mgc2hvdWxk
QmUgMCwwLDAsMjU1CitQQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1Ig
OiBzaG91bGQgYmUgbm8gZXJyb3JzCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisK
K1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2Vi
Z2wvb2VzLXRleHR1cmUtaGFsZi1mbG9hdC13aXRoLWltYWdlLWRhdGEuaHRtbCBiL0xheW91dFRl
c3RzL2Zhc3QvY2FudmFzL3dlYmdsL29lcy10ZXh0dXJlLWhhbGYtZmxvYXQtd2l0aC1pbWFnZS1k
YXRhLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uOTQ0NzQyYWZjOWU0NjYwN2Y5YTEzNWIyNjhmZjZmYjVjOGRj
NjI3MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL29l
cy10ZXh0dXJlLWhhbGYtZmxvYXQtd2l0aC1pbWFnZS1kYXRhLmh0bWwKQEAgLTAsMCArMSwyOCBA
QAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgi
PgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVz
dC1zdHlsZS5jc3MiLz4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1w
cmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy93ZWJnbC10ZXN0LmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvd2ViZ2wtdGVzdC11dGlscy5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3RleC1pbWFnZS1hbmQtc3ViLWltYWdlLTJk
LXdpdGgtaW1hZ2UtZGF0YS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZnVuY3Rpb24gdGVzdFBy
b2xvZ3VlKGdsKSB7CisgICAgaWYgKCFnbC5nZXRFeHRlbnNpb24oIk9FU190ZXh0dXJlX2hhbGZf
ZmxvYXQiKSkgeworICAgICAgICB0ZXN0UGFzc2VkKCJObyBPRVNfdGV4dHVyZV9oYWxmX2Zsb2F0
IHN1cHBvcnQgLS0gdGhpcyBpcyBsZWdhbCIpOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
fQorCisgICAgdGVzdFBhc3NlZCgiU3VjY2Vzc2Z1bGx5IGVuYWJsZWQgT0VTX3RleHR1cmVfaGFs
Zl9mbG9hdCBleHRlbnNpb24iKTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKzwvc2NyaXB0PgorPC9o
ZWFkPgorPGJvZHkgb25sb2FkPSdnZW5lcmF0ZVRlc3QoIlJHQkEiLCAiSEFMRl9GTE9BVF9PRVMi
LCB0ZXN0UHJvbG9ndWUpKCknPgorPGNhbnZhcyBpZD0idGV4Y2FudmFzIiB3aWR0aD0iMXB4IiBo
ZWlnaHQ9IjJweCI+PC9jYW52YXM+Cis8Y2FudmFzIGlkPSJleGFtcGxlIiB3aWR0aD0iMXB4IiBo
ZWlnaHQ9IjJweCI+PC9jYW52YXM+Cis8ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9kaXY+Cis8ZGl2
IGlkPSJjb25zb2xlIj48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL29lcy10ZXh0dXJlLWhhbGYtZmxvYXQtd2l0aC1pbWFn
ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9vZXMtdGV4dHVy
ZS1oYWxmLWZsb2F0LXdpdGgtaW1hZ2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYxMzg0YWE3
ZDkyM2VjZTM4MTAyZThiMDI2ZjM2NGJjOWZlZjQ2N2IKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9vZXMtdGV4dHVyZS1oYWxmLWZsb2F0LXdpdGgtaW1h
Z2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNzAgQEAKK1ZlcmlmeSB0ZXhJbWFnZTJEIGFuZCB0
ZXhTdWJJbWFnZTJEIGNvZGUgcGF0aHMgdGFraW5nIGltYWdlIGVsZW1lbnRzIChSR0JBL0hBTEZf
RkxPQVRfT0VTKQorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1Mi
IG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKK1BBU1MgU3VjY2Vzc2Z1
bGx5IGVuYWJsZWQgT0VTX3RleHR1cmVfaGFsZl9mbG9hdCBleHRlbnNpb24KK1Rlc3RpbmcgdGV4
SW1hZ2UyRCB3aXRoIGZsaXBZPXRydWUKK0NoZWNraW5nIGxvd2VyIGxlZnQgY29ybmVyCitQQVNT
IHNob3VsZEJlIDAsMjU1LDAKK0NoZWNraW5nIHVwcGVyIGxlZnQgY29ybmVyCitQQVNTIHNob3Vs
ZEJlIDI1NSwwLDAKK1Rlc3RpbmcgdGV4SW1hZ2UyRCB3aXRoIGZsaXBZPWZhbHNlCitDaGVja2lu
ZyBsb3dlciBsZWZ0IGNvcm5lcgorUEFTUyBzaG91bGRCZSAyNTUsMCwwCitDaGVja2luZyB1cHBl
ciBsZWZ0IGNvcm5lcgorUEFTUyBzaG91bGRCZSAwLDI1NSwwCitUZXN0aW5nIHRleFN1YkltYWdl
MkQgd2l0aCBmbGlwWT10cnVlCitDaGVja2luZyBsb3dlciBsZWZ0IGNvcm5lcgorUEFTUyBzaG91
bGRCZSAwLDI1NSwwCitDaGVja2luZyB1cHBlciBsZWZ0IGNvcm5lcgorUEFTUyBzaG91bGRCZSAy
NTUsMCwwCitUZXN0aW5nIHRleFN1YkltYWdlMkQgd2l0aCBmbGlwWT1mYWxzZQorQ2hlY2tpbmcg
bG93ZXIgbGVmdCBjb3JuZXIKK1BBU1Mgc2hvdWxkQmUgMjU1LDAsMAorQ2hlY2tpbmcgdXBwZXIg
bGVmdCBjb3JuZXIKK1BBU1Mgc2hvdWxkQmUgMCwyNTUsMAorVGVzdGluZyB0ZXhJbWFnZTJEIHdp
dGggZmxpcFk9dHJ1ZQorQ2hlY2tpbmcgbG93ZXIgbGVmdCBjb3JuZXIKK1BBU1Mgc2hvdWxkQmUg
MCwyNTUsMAorQ2hlY2tpbmcgdXBwZXIgbGVmdCBjb3JuZXIKK1BBU1Mgc2hvdWxkQmUgMjU1LDAs
MAorVGVzdGluZyB0ZXhJbWFnZTJEIHdpdGggZmxpcFk9ZmFsc2UKK0NoZWNraW5nIGxvd2VyIGxl
ZnQgY29ybmVyCitQQVNTIHNob3VsZEJlIDI1NSwwLDAKK0NoZWNraW5nIHVwcGVyIGxlZnQgY29y
bmVyCitQQVNTIHNob3VsZEJlIDAsMjU1LDAKK1Rlc3RpbmcgdGV4U3ViSW1hZ2UyRCB3aXRoIGZs
aXBZPXRydWUKK0NoZWNraW5nIGxvd2VyIGxlZnQgY29ybmVyCitQQVNTIHNob3VsZEJlIDAsMjU1
LDAKK0NoZWNraW5nIHVwcGVyIGxlZnQgY29ybmVyCitQQVNTIHNob3VsZEJlIDI1NSwwLDAKK1Rl
c3RpbmcgdGV4U3ViSW1hZ2UyRCB3aXRoIGZsaXBZPWZhbHNlCitDaGVja2luZyBsb3dlciBsZWZ0
IGNvcm5lcgorUEFTUyBzaG91bGRCZSAyNTUsMCwwCitDaGVja2luZyB1cHBlciBsZWZ0IGNvcm5l
cgorUEFTUyBzaG91bGRCZSAwLDI1NSwwCitUZXN0aW5nIHRleEltYWdlMkQgd2l0aCBmbGlwWT10
cnVlCitDaGVja2luZyBsb3dlciBsZWZ0IGNvcm5lcgorUEFTUyBzaG91bGRCZSAwLDI1NSwwCitD
aGVja2luZyB1cHBlciBsZWZ0IGNvcm5lcgorUEFTUyBzaG91bGRCZSAyNTUsMCwwCitUZXN0aW5n
IHRleEltYWdlMkQgd2l0aCBmbGlwWT1mYWxzZQorQ2hlY2tpbmcgbG93ZXIgbGVmdCBjb3JuZXIK
K1BBU1Mgc2hvdWxkQmUgMjU1LDAsMAorQ2hlY2tpbmcgdXBwZXIgbGVmdCBjb3JuZXIKK1BBU1Mg
c2hvdWxkQmUgMCwyNTUsMAorVGVzdGluZyB0ZXhTdWJJbWFnZTJEIHdpdGggZmxpcFk9dHJ1ZQor
Q2hlY2tpbmcgbG93ZXIgbGVmdCBjb3JuZXIKK1BBU1Mgc2hvdWxkQmUgMCwyNTUsMAorQ2hlY2tp
bmcgdXBwZXIgbGVmdCBjb3JuZXIKK1BBU1Mgc2hvdWxkQmUgMjU1LDAsMAorVGVzdGluZyB0ZXhT
dWJJbWFnZTJEIHdpdGggZmxpcFk9ZmFsc2UKK0NoZWNraW5nIGxvd2VyIGxlZnQgY29ybmVyCitQ
QVNTIHNob3VsZEJlIDI1NSwwLDAKK0NoZWNraW5nIHVwcGVyIGxlZnQgY29ybmVyCitQQVNTIHNo
b3VsZEJlIDAsMjU1LDAKK1BBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJP
UiA6IHNob3VsZCBiZSBubyBlcnJvcnMKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
KworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93
ZWJnbC9vZXMtdGV4dHVyZS1oYWxmLWZsb2F0LXdpdGgtaW1hZ2UuaHRtbCBiL0xheW91dFRlc3Rz
L2Zhc3QvY2FudmFzL3dlYmdsL29lcy10ZXh0dXJlLWhhbGYtZmxvYXQtd2l0aC1pbWFnZS5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjBiZjE5YjQ0NTkyNTk4NDgyNjA2ZTAzNmNlZjBiNDNkYTEzOTFlYjQKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9vZXMtdGV4dHVy
ZS1oYWxmLWZsb2F0LXdpdGgtaW1hZ2UuaHRtbApAQCAtMCwwICsxLDI3IEBACis8IURPQ1RZUEUg
aHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8bGluayByZWw9
InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyIv
PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3dlYmdsLXRlc3QuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9InJlc291cmNlcy93ZWJnbC10ZXN0LXV0aWxzLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSJyZXNvdXJjZXMvdGV4LWltYWdlLWFuZC1zdWItaW1hZ2UtMmQtd2l0aC1pbWFnZS5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZnVuY3Rpb24gdGVzdFByb2xvZ3VlKGdsKSB7CisgICAg
aWYgKCFnbC5nZXRFeHRlbnNpb24oIk9FU190ZXh0dXJlX2hhbGZfZmxvYXQiKSkgeworICAgICAg
ICB0ZXN0UGFzc2VkKCJObyBPRVNfdGV4dHVyZV9oYWxmX2Zsb2F0IHN1cHBvcnQgLS0gdGhpcyBp
cyBsZWdhbCIpOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgdGVzdFBhc3Nl
ZCgiU3VjY2Vzc2Z1bGx5IGVuYWJsZWQgT0VTX3RleHR1cmVfaGFsZl9mbG9hdCBleHRlbnNpb24i
KTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2Fk
PSdnZW5lcmF0ZVRlc3QoIlJHQkEiLCAiSEFMRl9GTE9BVF9PRVMiLCAiLiIsIHRlc3RQcm9sb2d1
ZSkoKSc+Cis8Y2FudmFzIGlkPSJleGFtcGxlIiB3aWR0aD0iMzIiIGhlaWdodD0iMzIiPjwvY2Fu
dmFzPgorPGRpdiBpZD0iZGVzY3JpcHRpb24iPjwvZGl2PgorPGRpdiBpZD0iY29uc29sZSI+PC9k
aXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2NhbnZh
cy93ZWJnbC9vZXMtdGV4dHVyZS1oYWxmLWZsb2F0LXdpdGgtdmlkZW8tZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvb2VzLXRleHR1cmUtaGFsZi1mbG9hdC13aXRo
LXZpZGVvLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NDY0NGZjOTUyZjQ2NzUyMGEzMzkyYzNh
ZjU1ZjE0NzA4ZDczODA3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52
YXMvd2ViZ2wvb2VzLXRleHR1cmUtaGFsZi1mbG9hdC13aXRoLXZpZGVvLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDMwIEBACitWZXJpZnkgdGV4SW1hZ2UyRCBhbmQgdGV4U3ViSW1hZ2UyRCBjb2Rl
IHBhdGhzIHRha2luZyB2aWRlbyBlbGVtZW50cyAoUkdCQS9VTlNJR05FRF9CWVRFKQorCitPbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dl
ZCBieSAiVEVTVCBDT01QTEVURSIuCisKK1BBU1MgU3VjY2Vzc2Z1bGx5IGVuYWJsZWQgT0VTX3Rl
eHR1cmVfaGFsZl9mbG9hdCBleHRlbnNpb24KK1Rlc3RpbmcgdGV4SW1hZ2UyRCB3aXRoIGZsaXBZ
PXRydWUKK0NoZWNraW5nIGxvd2VyIGxlZnQgY29ybmVyCitQQVNTIHNob3VsZEJlIDAsMjU1LDAK
K0NoZWNraW5nIHVwcGVyIGxlZnQgY29ybmVyCitQQVNTIHNob3VsZEJlIDI1NSwwLDAKK1Rlc3Rp
bmcgdGV4SW1hZ2UyRCB3aXRoIGZsaXBZPWZhbHNlCitDaGVja2luZyBsb3dlciBsZWZ0IGNvcm5l
cgorUEFTUyBzaG91bGRCZSAyNTUsMCwwCitDaGVja2luZyB1cHBlciBsZWZ0IGNvcm5lcgorUEFT
UyBzaG91bGRCZSAwLDI1NSwwCitUZXN0aW5nIHRleFN1YkltYWdlMkQgd2l0aCBmbGlwWT10cnVl
CitDaGVja2luZyBsb3dlciBsZWZ0IGNvcm5lcgorUEFTUyBzaG91bGRCZSAwLDI1NSwwCitDaGVj
a2luZyB1cHBlciBsZWZ0IGNvcm5lcgorUEFTUyBzaG91bGRCZSAyNTUsMCwwCitUZXN0aW5nIHRl
eFN1YkltYWdlMkQgd2l0aCBmbGlwWT1mYWxzZQorQ2hlY2tpbmcgbG93ZXIgbGVmdCBjb3JuZXIK
K1BBU1Mgc2hvdWxkQmUgMjU1LDAsMAorQ2hlY2tpbmcgdXBwZXIgbGVmdCBjb3JuZXIKK1BBU1Mg
c2hvdWxkQmUgMCwyNTUsMAorUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VS
Uk9SIDogc2hvdWxkIGJlIG5vIGVycm9ycworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1
ZQorCitURVNUIENPTVBMRVRFCisgCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2NhbnZh
cy93ZWJnbC9vZXMtdGV4dHVyZS1oYWxmLWZsb2F0LXdpdGgtdmlkZW8uaHRtbCBiL0xheW91dFRl
c3RzL2Zhc3QvY2FudmFzL3dlYmdsL29lcy10ZXh0dXJlLWhhbGYtZmxvYXQtd2l0aC12aWRlby5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmM4ZDUwZTY4ODJkNThjMTk3MTUxN2VhYjlmZTVlNjVmMDMyZGJiOTUK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9vZXMtdGV4
dHVyZS1oYWxmLWZsb2F0LXdpdGgtdmlkZW8uaHRtbApAQCAtMCwwICsxLDMyIEBACis8IURPQ1RZ
UEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8bGluayBy
ZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNz
cyIvPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3dlYmdsLXRlc3QuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9InJlc291cmNlcy93ZWJnbC10ZXN0LXV0aWxzLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSJyZXNvdXJjZXMvdGV4LWltYWdlLWFuZC1zdWItaW1hZ2UtMmQtd2l0aC12aWRl
by5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZnVuY3Rpb24gdGVzdFByb2xvZ3VlKGdsKSB7Cisg
ICAgaWYgKCFnbC5nZXRFeHRlbnNpb24oIk9FU190ZXh0dXJlX2hhbGZfZmxvYXQiKSkgeworICAg
ICAgICB0ZXN0UGFzc2VkKCJObyBPRVNfdGV4dHVyZV9oYWxmX2Zsb2F0IHN1cHBvcnQgLS0gdGhp
cyBpcyBsZWdhbCIpOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgdGVzdFBh
c3NlZCgiU3VjY2Vzc2Z1bGx5IGVuYWJsZWQgT0VTX3RleHR1cmVfaGFsZl9mbG9hdCBleHRlbnNp
b24iKTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25s
b2FkPSdnZW5lcmF0ZVRlc3QoIlJHQkEiLCAiSEFMRl9GTE9BVF9PRVMiLCB0ZXN0UHJvbG9ndWUp
KCknPgorPGNhbnZhcyBpZD0iZXhhbXBsZSIgd2lkdGg9IjMycHgiIGhlaWdodD0iMzJweCI+PC9j
YW52YXM+Cis8ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9kaXY+Cis8ZGl2IGlkPSJjb25zb2xlIj48
L2Rpdj4KKzx2aWRlbyB3aWR0aD0iNjQwIiBoZWlnaHQ9IjIyOCIgaWQ9InZpZCIgY29udHJvbHM+
CisgIDxzb3VyY2Ugc3JjPSJyZXNvdXJjZXMvcmVkLWdyZWVuLm1wNCIgIHR5cGU9J3ZpZGVvL21w
NDsgY29kZWNzPSJhdmMxLjQyRTAxRSwgbXA0YS40MC4yIicgLz4KKyAgPHNvdXJjZSBzcmM9InJl
c291cmNlcy9yZWQtZ3JlZW4ud2VibXZwOC53ZWJtIiB0eXBlPSd2aWRlby93ZWJtOyBjb2RlY3M9
InZwOCwgdm9yYmlzIicgLz4KKyAgPHNvdXJjZSBzcmM9InJlc291cmNlcy9yZWQtZ3JlZW4udGhl
b3JhLm9ndiIgIHR5cGU9J3ZpZGVvL29nZzsgY29kZWNzPSJ0aGVvcmEsIHZvcmJpcyInIC8+Cis8
L3ZpZGVvPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vY2hyb21pdW0vVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9t
aXVtL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggZTc0ZDc2NDlkYzlhNTEzMTcyNTkyMGExN2U0MGRh
NWM2MzY1YzlhYS4uNjE0NzEzYWVmMjlmZjJiZDQwZmM2OGRlZDE3MGYxNzk2YzVhYWQwMCAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vVGVzdEV4cGVjdGF0aW9ucwor
KysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9UZXN0RXhwZWN0YXRpb25zCkBAIC0z
NzE4LDggKzM3MTgsNiBAQCB3ZWJraXQub3JnL2IvMTEyMzgxIFsgV2luIExpbnV4IFJlbGVhc2Ug
XSBodG1sNWxpYi9nZW5lcmF0ZWQvcnVuLXRlc3RzMTYtZGF0YS5odAogIyBIQUxGX0ZMT0FUX09F
UyBpcyBub3QgeWV0IHdvcmtpbmcgaW4gY2hyb21pdW0uCiBjcmJ1Zy5jb20vMTc5NTAzIGZhc3Qv
Y2FudmFzL3dlYmdsL29lcy10ZXh0dXJlLWhhbGYtZmxvYXQuaHRtbCBbIEZhaWx1cmUgXQogY3Ji
dWcuY29tLzE3OTUwMyBwbGF0Zm9ybS9jaHJvbWl1bS92aXJ0dWFsL2dwdS9mYXN0L2NhbnZhcy93
ZWJnbC9vZXMtdGV4dHVyZS1oYWxmLWZsb2F0Lmh0bWwgWyBGYWlsdXJlIF0KLWNyYnVnLmNvbS8x
Nzk1MDMgZmFzdC9jYW52YXMvd2ViZ2wvb2VzLXRleHR1cmUtaGFsZi1mbG9hdC1ub3Qtc3VwcG9y
dGVkLmh0bWwgWyBUaW1lb3V0IF0KLWNyYnVnLmNvbS8xNzk1MDMgcGxhdGZvcm0vY2hyb21pdW0v
dmlydHVhbC9ncHUvZmFzdC9jYW52YXMvd2ViZ2wvb2VzLXRleHR1cmUtaGFsZi1mbG9hdC1ub3Qt
c3VwcG9ydGVkLmh0bWwgWyBUaW1lb3V0IF0KIAogIyBUaGVzZSB0ZXN0IGFyZSBmYWlsaW5nIHNp
bmNlIHIxNDQ1MTkKIHdlYmtpdC5vcmcvYi8xMTE0NjIgWyBNYWMgXSBmYXN0L2V2ZW50cy90b3Vj
aC9nZXN0dXJlL3RvdWNoLWdlc3R1cmUtbm9zY3JvbGwtYm9keS15aGlkZGVuLmh0bWwgWyBGYWls
dXJlIF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvY2Fu
dmFzL3dlYmdsL29lcy10ZXh0dXJlLWhhbGYtZmxvYXQtd2l0aC1jYW52YXMtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9jYW52YXMvd2ViZ2wvb2VzLXRl
eHR1cmUtaGFsZi1mbG9hdC13aXRoLWNhbnZhcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTI1
Zjk0M2RkMjZkOWYzNzJjY2Y2ZDljZGQwN2M3ODk4MDZlZTkyYQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvY2FudmFzL3dlYmdsL29lcy10ZXh0
dXJlLWhhbGYtZmxvYXQtd2l0aC1jYW52YXMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsOSBAQAor
VmVyaWZ5IHRleEltYWdlMkQgYW5kIHRleFN1YkltYWdlMkQgY29kZSBwYXRocyB0YWtpbmcgY2Fu
dmFzIGVsZW1lbnRzIChSR0JBL0hBTEZfRkxPQVRfT0VTKQorCitPbiBzdWNjZXNzLCB5b3Ugd2ls
bCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01Q
TEVURSIuCisKK1BBU1MgTm8gT0VTX3RleHR1cmVfaGFsZl9mbG9hdCBzdXBwb3J0IC0tIHRoaXMg
aXMgbGVnYWwKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVU
RQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2NhbnZh
cy93ZWJnbC9vZXMtdGV4dHVyZS1oYWxmLWZsb2F0LXdpdGgtaW1hZ2UtZGF0YS1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2NhbnZhcy93ZWJnbC9vZXMt
dGV4dHVyZS1oYWxmLWZsb2F0LXdpdGgtaW1hZ2UtZGF0YS1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uYmE5ZjBhMDU2NWU4MmM0MTA4MzViZDBhZjMxM2EwMWRhMzFiZjcwOAotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvY2FudmFzL3dlYmdsL29l
cy10ZXh0dXJlLWhhbGYtZmxvYXQtd2l0aC1pbWFnZS1kYXRhLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDEwIEBACisgCitWZXJpZnkgdGV4SW1hZ2UyRCBhbmQgdGV4U3ViSW1hZ2UyRCBjb2RlIHBh
dGhzIHRha2luZyBJbWFnZURhdGEgKFJHQkEvSEFMRl9GTE9BVF9PRVMpCisKK09uIHN1Y2Nlc3Ms
IHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJU
RVNUIENPTVBMRVRFIi4KKworUEFTUyBObyBPRVNfdGV4dHVyZV9oYWxmX2Zsb2F0IHN1cHBvcnQg
LS0gdGhpcyBpcyBsZWdhbAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNU
IENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zh
c3QvY2FudmFzL3dlYmdsL29lcy10ZXh0dXJlLWhhbGYtZmxvYXQtd2l0aC1pbWFnZS1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2NhbnZhcy93ZWJnbC9v
ZXMtdGV4dHVyZS1oYWxmLWZsb2F0LXdpdGgtaW1hZ2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmRiNmVhZjUyNTg4ODBjNDMzMDJhY2RlNWVmZDZkZWMxMjA5NjhhNTQKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2NhbnZhcy93ZWJnbC9vZXMt
dGV4dHVyZS1oYWxmLWZsb2F0LXdpdGgtaW1hZ2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsOSBA
QAorVmVyaWZ5IHRleEltYWdlMkQgYW5kIHRleFN1YkltYWdlMkQgY29kZSBwYXRocyB0YWtpbmcg
aW1hZ2UgZWxlbWVudHMgKFJHQkEvSEFMRl9GTE9BVF9PRVMpCisKK09uIHN1Y2Nlc3MsIHlvdSB3
aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENP
TVBMRVRFIi4KKworUEFTUyBObyBPRVNfdGV4dHVyZV9oYWxmX2Zsb2F0IHN1cHBvcnQgLS0gdGhp
cyBpcyBsZWdhbAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBM
RVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvY2Fu
dmFzL3dlYmdsL29lcy10ZXh0dXJlLWhhbGYtZmxvYXQtd2l0aC12aWRlby1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2NhbnZhcy93ZWJnbC9vZXMtdGV4
dHVyZS1oYWxmLWZsb2F0LXdpdGgtdmlkZW8tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMzNTJl
OTJhM2E3MDgxY2JjMzgyYmUxNjg2YjZkNzZiNzAyMTBhMDkKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2NhbnZhcy93ZWJnbC9vZXMtdGV4dHVy
ZS1oYWxmLWZsb2F0LXdpdGgtdmlkZW8tZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsOSBAQAorVmVy
aWZ5IHRleEltYWdlMkQgYW5kIHRleFN1YkltYWdlMkQgY29kZSBwYXRocyB0YWtpbmcgdmlkZW8g
ZWxlbWVudHMgKFJHQkEvSEFMRl9GTE9BVF9PRVMpCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNl
ZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRF
Ii4KKworUEFTUyBObyBPRVNfdGV4dHVyZV9oYWxmX2Zsb2F0IHN1cHBvcnQgLS0gdGhpcyBpcyBs
ZWdhbAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zIGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggZjBlODcxMGU0
ZGRhMTBhYTQ5YmNlZDgxMDhkYTgzYjdhNzc0MTcxMS4uNDcwNDBlN2U5NTA4ZjI1ZjQyOTE2NTg2
OTI3MGIyZjY3MGFlNGFkMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rl
c3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3Rh
dGlvbnMKQEAgLTEwMDMsNiArMTAwMyw3IEBAIGVkaXRpbmcvcGFzdGVib2FyZC9wYXN0ZS1nbG9i
YWwtc2VsZWN0aW9uLmh0bWwKICMgLS0tIFdlYkdMIC0tLQogIyBDdXJyZW50bHkgZmFpbGluZyBX
ZWJHTCB0ZXN0cyA8cmRhcjovL3Byb2JsZW0vOTM1NTQ2MD4KIGZhc3QvY2FudmFzL3dlYmdsL3Rl
eC1pbWFnZS1hbmQtc3ViLWltYWdlLTJkLXdpdGgtdmlkZW8uaHRtbAorZmFzdC9jYW52YXMvd2Vi
Z2wvb2VzLXRleHR1cmUtaGFsZi1mbG9hdC13aXRoLXZpZGVvLmh0bWwKIAogIyBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA5MDgxCiB3ZWJnbAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>218374</attachid>
            <date>2013-12-03 19:18:24 -0800</date>
            <delta_ts>2013-12-04 11:35:23 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-110936-20131204141821.patch</filename>
            <type>text/plain</type>
            <size>72346</size>
            <attacher name="Dean Jackson">dino</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTYwMDMzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWZiYzQwZTkwMTVkMzEx
NWViMGY4ZDVmZDAxY2VmNDI4ZDdlODBhYS4uNGEwOGExY2Q4OGQwZjhiZTc5ZDZkYzU0ZjE0Mjhk
ZjFhYTdmMGMyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDEzLTEyLTAzICBEZWFu
IEphY2tzb24gIDxkaW5vQGFwcGxlLmNvbT4KKworICAgICAgICBbV2ViR0xdIFN1cHBvcnQgZm9y
IHRleEltYWdlMkQgb2YgdHlwZSBIQUxGX0ZMT0FUX09FUworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEwOTM2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHRoZSBIQUxGX0ZMT0FU
X09FUyB0ZXh0dXJlIGZvcm1hdCBmcm9tIHRleEltYWdlMkQKKyAgICAgICAgYW5kIHRleFN1Yklt
YWdlMkQuCisKKyAgICAgICAgQSBsb3Qgb2YgdGhpcyBwYXRjaCBjb21lcyBmcm9tIHRoZSBvcmln
aW5hbCBwYXRjaCBvbiB0aGUgYnVnCisgICAgICAgIGJ5IE5heWFuIEt1bWFyLCBhbmQgdGhlIEJs
aW5rIGNvbW1pdDoKKyAgICAgICAgaHR0cHM6Ly9jb2RlcmV2aWV3LmNocm9taXVtLm9yZy8xMzg0
MjAxNworCisgICAgICAgIFRlc3RzOiBmYXN0L2NhbnZhcy93ZWJnbC9vZXMtdGV4dHVyZS1oYWxm
LWZsb2F0LXdpdGgtY2FudmFzLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvY2FudmFzL3dlYmds
L29lcy10ZXh0dXJlLWhhbGYtZmxvYXQtd2l0aC1pbWFnZS5odG1sCisgICAgICAgICAgICAgICBm
YXN0L2NhbnZhcy93ZWJnbC9vZXMtdGV4dHVyZS1oYWxmLWZsb2F0LXdpdGgtdmlkZW8uaHRtbAor
CisgICAgICAgICogaHRtbC9jYW52YXMvT0VTVGV4dHVyZUhhbGZGbG9hdC5pZGw6IE5ldyBIQUxG
X0ZMT0FUX09FUyBjb25zdGFudCB2YWx1ZS4KKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTFJl
bmRlcmluZ0NvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250
ZXh0Ojp2YWxpZGF0ZVRleEZ1bmMpOiBSZW1vdmUgdGhlIGNvZGUgdGhhdAorICAgICAgICB3b3Vs
ZCBiYWlsIGlmIGhhbGYtZmxvYXQgdmFsdWVzIHdlcmUgdXNlZC4KKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRC5jcHA6CisgICAgICAgIC0gUmV0dXJuIGFwcHJv
cHJpYXRlIERhdGFGb3JtYXRzIGZvciBoYWxmIGZsb2F0aW5nIHBvaW50IHR5cGVzLgorICAgICAg
ICAtIENvcHkgdGhlIGZsb2F0IC0+IGhhbGYtZmxvYXQgY29kZSBmcm9tIEJsaW5rCisgICAgICAg
IC0gTmV3IHBhY2sgZnVuY3Rpb25zIGZvciBoYWxmIGZsb2F0cworICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmg6IE5ldyBmb3JtYXQgdHlwZXMuCisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dDNET3BlbkdMQ29tbW9u
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjp0ZXhTdWJJbWFnZTJE
KTogVXNlIEdMX0hBTEZfRkxPQVRfQVJCIGlmIHdlJ3JlIHBhc3NlZAorICAgICAgICBhIEhBTEZf
RkxPQVRfT0VTLgorCiAyMDEzLTEyLTAzICBTYW11ZWwgV2hpdGUgIDxzYW11ZWxfd2hpdGVAYXBw
bGUuY29tPgogCiAgICAgICAgIEFYUHJlc3MgZXZlbnQgY29vcmRpbmF0ZXMgYXJlIGFsd2F5cyBz
ZW50IGFzICgwLCAwKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvT0VT
VGV4dHVyZUhhbGZGbG9hdC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9PRVNUZXh0
dXJlSGFsZkZsb2F0LmlkbAppbmRleCBkOGFjZDkzOTZiOGMyNThkN2Q4NTI4YmY3ZjI5OTI2ODBl
ZTIxYWY2Li5hMWUwYmE1YzA5Y2UxOGE5ZjY1ZGI0MmE1NzA5NzYxMjg2YjI5OGI2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9PRVNUZXh0dXJlSGFsZkZsb2F0LmlkbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9PRVNUZXh0dXJlSGFsZkZsb2F0LmlkbApA
QCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTMgTW90b3JvbGEgTW9iaWxp
dHkgTExDLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxl
LCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKQEAgLTI4LDQgKzI5LDUgQEAKICAgICBDb25kaXRpb25hbD1XRUJHTCwKICAgICBHZW5lcmF0
ZUlzUmVhY2hhYmxlPUltcGxXZWJHTFJlbmRlcmluZ0NvbnRleHQsCiBdIGludGVyZmFjZSBPRVNU
ZXh0dXJlSGFsZkZsb2F0IHsKKyAgICBjb25zdCBHTGVudW0gSEFMRl9GTE9BVF9PRVMgPSAweDhE
NjE7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5k
ZXJpbmdDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVy
aW5nQ29udGV4dC5jcHAKaW5kZXggM2ZhYWVmMDZlNTZmMzRiNTQ2ZTljZDkwNjdiMGZkODU5YmI2
YjAxNi4uNzNiODllNzZhNDNlNmY4Y2IzNWIzYzY0ZmI5MWExZjdhNWJkZTA0MSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuY3Bw
CkBAIC0zNzMzLDEzICszNzMzLDYgQEAgdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnRleElt
YWdlMkRJbXBsKEdDM0RlbnVtIHRhcmdldCwgR0MzRGludCBsZXZlbCwgR0MzRGUKIAogYm9vbCBX
ZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnZhbGlkYXRlVGV4RnVuYyhjb25zdCBjaGFyKiBmdW5jdGlv
bk5hbWUsIFRleEZ1bmNWYWxpZGF0aW9uRnVuY3Rpb25UeXBlIGZ1bmN0aW9uVHlwZSwgVGV4RnVu
Y1ZhbGlkYXRpb25Tb3VyY2VUeXBlIHNvdXJjZVR5cGUsIEdDM0RlbnVtIHRhcmdldCwgR0MzRGlu
dCBsZXZlbCwgR0MzRGVudW0gaW50ZXJuYWxmb3JtYXQsIEdDM0RzaXplaSB3aWR0aCwgR0MzRHNp
emVpIGhlaWdodCwgR0MzRGludCBib3JkZXIsIEdDM0RlbnVtIGZvcm1hdCwgR0MzRGVudW0gdHlw
ZSwgR0MzRGludCB4b2Zmc2V0LCBHQzNEaW50IHlvZmZzZXQpCiB7Ci0gICAgLy8gRklYTUU6IFVw
bG9hZGluZyB7SW1hZ2VEYXRhLCBIVE1MSW1hZ2VFbGVtZW50LCBIVE1MQ2FudmFzRWxlbWVudCwg
SFRNTFZpZGVvRWxlbWVudH0gdG8gaGFsZiBmbG9hdGluZyBwb2ludCB0ZXh0dXJlIGlzIG5vdCBz
dXBwb3J0ZWQgeWV0LgotICAgIC8vIFNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTEwOTM2LgotICAgIGlmIChzb3VyY2VUeXBlICE9IFNvdXJjZUFycmF5QnVmZmVy
VmlldyAmJiB0eXBlID09IEdyYXBoaWNzQ29udGV4dDNEOjpIQUxGX0ZMT0FUX09FUykgewotICAg
ICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9PUEVSQVRJ
T04sIGZ1bmN0aW9uTmFtZSwgIk9wZXJhdGlvbiBub3Qgc3VwcG9ydGVkIHlldCIpOwotICAgICAg
ICByZXR1cm4gZmFsc2U7Ci0gICAgfQotCiAgICAgaWYgKCF2YWxpZGF0ZVRleEZ1bmNQYXJhbWV0
ZXJzKGZ1bmN0aW9uTmFtZSwgZnVuY3Rpb25UeXBlLCB0YXJnZXQsIGxldmVsLCBpbnRlcm5hbGZv
cm1hdCwgd2lkdGgsIGhlaWdodCwgYm9yZGVyLCBmb3JtYXQsIHR5cGUpKQogICAgICAgICByZXR1
cm4gZmFsc2U7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0dyYXBoaWNzQ29udGV4dDNELmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0dyYXBoaWNzQ29udGV4dDNELmNwcAppbmRleCA3YTM4ZDhjM2QzNzIzNDFhMTM5MDBhODFlZTRh
MGM5ZmVmN2Y3MjY4Li5kMmIxYWJmZDhhYTlmMDkwMTE1MzA5NjgxNDAzMGI4YjhiNzYxYWJkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRl
eHQzRC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3ND
b250ZXh0M0QuY3BwCkBAIC04MSw2ICs4MSwyNyBAQCBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZv
cm1hdCBnZXREYXRhRm9ybWF0KEdDM0RlbnVtIGRlc3RpbmF0aW9uRm9ybWF0LCBHQzNEZW51bQog
ICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlVOU0lHTkVEX1NIT1JUXzVfNl81OgogICAgICAg
ICBkc3RGb3JtYXQgPSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQjU2NTsKICAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6SEFMRl9GTE9BVF9PRVM6IC8v
IE9FU190ZXh0dXJlX2hhbGZfZmxvYXQKKyAgICAgICAgc3dpdGNoIChkZXN0aW5hdGlvbkZvcm1h
dCkgeworICAgICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSR0I6CisgICAgICAgICAgICBk
c3RGb3JtYXQgPSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQjE2RjsKKyAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSR0JBOgorICAgICAg
ICAgICAgZHN0Rm9ybWF0ID0gR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JBMTZGOwor
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkFMUEhB
OgorICAgICAgICAgICAgZHN0Rm9ybWF0ID0gR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRB
MTZGOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6
OkxVTUlOQU5DRToKKyAgICAgICAgICAgIGRzdEZvcm1hdCA9IEdyYXBoaWNzQ29udGV4dDNEOjpE
YXRhRm9ybWF0UjE2RjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEdyYXBoaWNz
Q29udGV4dDNEOjpMVU1JTkFOQ0VfQUxQSEE6CisgICAgICAgICAgICBkc3RGb3JtYXQgPSBHcmFw
aGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJBMTZGOworICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAg
fQorICAgICAgICBicmVhazsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpGTE9BVDogLy8g
T0VTX3RleHR1cmVfZmxvYXQKICAgICAgICAgc3dpdGNoIChkZXN0aW5hdGlvbkZvcm1hdCkgewog
ICAgICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSR0I6CkBAIC0zMTAsNiArMzMxLDEyOSBA
QCBib29sIEdyYXBoaWNzQ29udGV4dDNEOjpleHRyYWN0VGV4dHVyZURhdGEodW5zaWduZWQgaW50
IHdpZHRoLCB1bnNpZ25lZCBpbnQgaGVpZwogCiBuYW1lc3BhY2UgewogCisvLyBGb2xsb3dpbmcg
RmxvYXQgdG8gSGFsZi1GbG9hdCBjb252ZXJpb24gY29kZSBpcyBmcm9tIHRoZSBpbXBsZW1lbnRh
dGlvbiBvZiBmdHA6Ly93d3cuZm94LXRvb2xraXQub3JnL3B1Yi9mYXN0aGFsZmZsb2F0Y29udmVy
c2lvbi5wZGYsCisvLyAiRmFzdCBIYWxmIEZsb2F0IENvbnZlcnNpb25zIiBieSBKZXJvZW4gdmFu
IGRlciBaaWpwLCBOb3ZlbWJlciAyMDA4IChSZXZpc2VkIFNlcHRlbWJlciAyMDEwKS4KKy8vIFNw
ZWNpYWxseSwgdGhlIGJhc2V0YWJsZVs1MTJdIGFuZCBzaGlmdHRhYmxlWzUxMl0gYXJlIGdlbmVy
YXRlZCBhcyBmb2xsb3dzOgorLyoKK3Vuc2lnbmVkIHNob3J0IGJhc2V0YWJsZVs1MTJdOwordW5z
aWduZWQgY2hhciBzaGlmdHRhYmxlWzUxMl07CisKK3ZvaWQgZ2VuZXJhdGV0YWJsZXMoKXsKKyAg
ICB1bnNpZ25lZCBpbnQgaTsKKyAgICBpbnQgZTsKKyAgICBmb3IgKGkgPSAwOyBpIDwgMjU2OyAr
K2kpeworICAgICAgICBlID0gaSAtIDEyNzsKKyAgICAgICAgaWYgKGUgPCAtMjQpeyAvLyBWZXJ5
IHNtYWxsIG51bWJlcnMgbWFwIHRvIHplcm8KKyAgICAgICAgICAgIGJhc2V0YWJsZVtpIHwgMHgw
MDBdID0gMHgwMDAwOworICAgICAgICAgICAgYmFzZXRhYmxlW2kgfCAweDEwMF0gPSAweDgwMDA7
CisgICAgICAgICAgICBzaGlmdHRhYmxlW2kgfCAweDAwMF0gPSAyNDsKKyAgICAgICAgICAgIHNo
aWZ0dGFibGVbaSB8IDB4MTAwXSA9IDI0OworICAgICAgICB9CisgICAgICAgIGVsc2UgaWYgKGUg
PCAtMTQpIHsgLy8gU21hbGwgbnVtYmVycyBtYXAgdG8gZGVub3JtcworICAgICAgICAgICAgYmFz
ZXRhYmxlW2kgfCAweDAwMF0gPSAoMHgwNDAwPj4oLWUtMTQpKTsKKyAgICAgICAgICAgIGJhc2V0
YWJsZVtpIHwgMHgxMDBdID0gKDB4MDQwMD4+KC1lLTE0KSkgfCAweDgwMDA7CisgICAgICAgICAg
ICBzaGlmdHRhYmxlW2kgfCAweDAwMF0gPSAtZS0xOworICAgICAgICAgICAgc2hpZnR0YWJsZVtp
IHwgMHgxMDBdID0gLWUtMTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIGlmIChlIDw9IDE1KXsg
Ly8gTm9ybWFsIG51bWJlcnMganVzdCBsb3NlIHByZWNpc2lvbgorICAgICAgICAgICAgYmFzZXRh
YmxlW2kgfCAweDAwMF0gPSAoKGUrMTUpPDwxMCk7CisgICAgICAgICAgICBiYXNldGFibGVbaXwg
MHgxMDBdID0gKChlKzE1KTw8MTApIHwgMHg4MDAwOworICAgICAgICAgICAgc2hpZnR0YWJsZVtp
fDB4MDAwXSA9IDEzOworICAgICAgICAgICAgc2hpZnR0YWJsZVtpfDB4MTAwXSA9IDEzOworICAg
ICAgICB9CisgICAgICAgIGVsc2UgaWYgKGU8MTI4KXsgLy8gTGFyZ2UgbnVtYmVycyBtYXAgdG8g
SW5maW5pdHkKKyAgICAgICAgICAgIGJhc2V0YWJsZVtpfDB4MDAwXSA9IDB4N0MwMDsKKyAgICAg
ICAgICAgIGJhc2V0YWJsZVtpfDB4MTAwXSA9IDB4RkMwMDsKKyAgICAgICAgICAgIHNoaWZ0dGFi
bGVbaXwweDAwMF0gPSAyNDsKKyAgICAgICAgICAgIHNoaWZ0dGFibGVbaXwweDEwMF0gPSAyNDsK
KyAgICAgICAgfQorICAgICAgICBlbHNlIHsgLy8gSW5maW5pdHkgYW5kIE5hTidzIHN0YXkgSW5m
aW5pdHkgYW5kIE5hTidzCisgICAgICAgICAgICBiYXNldGFibGVbaXwweDAwMF0gPSAweDdDMDA7
CisgICAgICAgICAgICBiYXNldGFibGVbaXwweDEwMF0gPSAweEZDMDA7CisgICAgICAgICAgICBz
aGlmdHRhYmxlW2l8MHgwMDBdID0gMTM7CisgICAgICAgICAgICBzaGlmdHRhYmxlW2l8MHgxMDBd
ID0gMTM7CisgICAgICAgfQorICAgIH0KK30KKyovCisKK3Vuc2lnbmVkIHNob3J0IGJhc2VUYWJs
ZVs1MTJdID0geworMCwgICAgICAwLCAgICAgIDAsICAgICAgMCwgICAgICAwLCAgICAgIDAsICAg
ICAgMCwgICAgICAwLCAgICAgIDAsICAgICAgMCwgICAgICAwLCAgICAgIDAsICAgICAgMCwgICAg
ICAwLCAgICAgIDAsICAgICAgMCwKKzAsICAgICAgMCwgICAgICAwLCAgICAgIDAsICAgICAgMCwg
ICAgICAwLCAgICAgIDAsICAgICAgMCwgICAgICAwLCAgICAgIDAsICAgICAgMCwgICAgICAwLCAg
ICAgIDAsICAgICAgMCwgICAgICAwLCAgICAgIDAsCiswLCAgICAgIDAsICAgICAgMCwgICAgICAw
LCAgICAgIDAsICAgICAgMCwgICAgICAwLCAgICAgIDAsICAgICAgMCwgICAgICAwLCAgICAgIDAs
ICAgICAgMCwgICAgICAwLCAgICAgIDAsICAgICAgMCwgICAgICAwLAorMCwgICAgICAwLCAgICAg
IDAsICAgICAgMCwgICAgICAwLCAgICAgIDAsICAgICAgMCwgICAgICAwLCAgICAgIDAsICAgICAg
MCwgICAgICAwLCAgICAgIDAsICAgICAgMCwgICAgICAwLCAgICAgIDAsICAgICAgMCwKKzAsICAg
ICAgMCwgICAgICAwLCAgICAgIDAsICAgICAgMCwgICAgICAwLCAgICAgIDAsICAgICAgMCwgICAg
ICAwLCAgICAgIDAsICAgICAgMCwgICAgICAwLCAgICAgIDAsICAgICAgMCwgICAgICAwLCAgICAg
IDAsCiswLCAgICAgIDAsICAgICAgMCwgICAgICAwLCAgICAgIDAsICAgICAgMCwgICAgICAwLCAg
ICAgIDAsICAgICAgMCwgICAgICAwLCAgICAgIDAsICAgICAgMCwgICAgICAwLCAgICAgIDAsICAg
ICAgMCwgICAgICAwLAorMCwgICAgICAwLCAgICAgIDAsICAgICAgMCwgICAgICAwLCAgICAgIDAs
ICAgICAgMCwgICAgICAxLCAgICAgIDIsICAgICAgNCwgICAgICA4LCAgICAgIDE2LCAgICAgMzIs
ICAgICA2NCwgICAgIDEyOCwgICAgMjU2LAorNTEyLCAgICAxMDI0LCAgIDIwNDgsICAgMzA3Miwg
ICA0MDk2LCAgIDUxMjAsICAgNjE0NCwgICA3MTY4LCAgIDgxOTIsICAgOTIxNiwgICAxMDI0MCwg
IDExMjY0LCAgMTIyODgsICAxMzMxMiwgIDE0MzM2LCAgMTUzNjAsCisxNjM4NCwgIDE3NDA4LCAg
MTg0MzIsICAxOTQ1NiwgIDIwNDgwLCAgMjE1MDQsICAyMjUyOCwgIDIzNTUyLCAgMjQ1NzYsICAy
NTYwMCwgIDI2NjI0LCAgMjc2NDgsICAyODY3MiwgIDI5Njk2LCAgMzA3MjAsICAzMTc0NCwKKzMx
NzQ0LCAgMzE3NDQsICAzMTc0NCwgIDMxNzQ0LCAgMzE3NDQsICAzMTc0NCwgIDMxNzQ0LCAgMzE3
NDQsICAzMTc0NCwgIDMxNzQ0LCAgMzE3NDQsICAzMTc0NCwgIDMxNzQ0LCAgMzE3NDQsICAzMTc0
NCwgIDMxNzQ0LAorMzE3NDQsICAzMTc0NCwgIDMxNzQ0LCAgMzE3NDQsICAzMTc0NCwgIDMxNzQ0
LCAgMzE3NDQsICAzMTc0NCwgIDMxNzQ0LCAgMzE3NDQsICAzMTc0NCwgIDMxNzQ0LCAgMzE3NDQs
ICAzMTc0NCwgIDMxNzQ0LCAgMzE3NDQsCiszMTc0NCwgIDMxNzQ0LCAgMzE3NDQsICAzMTc0NCwg
IDMxNzQ0LCAgMzE3NDQsICAzMTc0NCwgIDMxNzQ0LCAgMzE3NDQsICAzMTc0NCwgIDMxNzQ0LCAg
MzE3NDQsICAzMTc0NCwgIDMxNzQ0LCAgMzE3NDQsICAzMTc0NCwKKzMxNzQ0LCAgMzE3NDQsICAz
MTc0NCwgIDMxNzQ0LCAgMzE3NDQsICAzMTc0NCwgIDMxNzQ0LCAgMzE3NDQsICAzMTc0NCwgIDMx
NzQ0LCAgMzE3NDQsICAzMTc0NCwgIDMxNzQ0LCAgMzE3NDQsICAzMTc0NCwgIDMxNzQ0LAorMzE3
NDQsICAzMTc0NCwgIDMxNzQ0LCAgMzE3NDQsICAzMTc0NCwgIDMxNzQ0LCAgMzE3NDQsICAzMTc0
NCwgIDMxNzQ0LCAgMzE3NDQsICAzMTc0NCwgIDMxNzQ0LCAgMzE3NDQsICAzMTc0NCwgIDMxNzQ0
LCAgMzE3NDQsCiszMTc0NCwgIDMxNzQ0LCAgMzE3NDQsICAzMTc0NCwgIDMxNzQ0LCAgMzE3NDQs
ICAzMTc0NCwgIDMxNzQ0LCAgMzE3NDQsICAzMTc0NCwgIDMxNzQ0LCAgMzE3NDQsICAzMTc0NCwg
IDMxNzQ0LCAgMzE3NDQsICAzMTc0NCwKKzMxNzQ0LCAgMzE3NDQsICAzMTc0NCwgIDMxNzQ0LCAg
MzE3NDQsICAzMTc0NCwgIDMxNzQ0LCAgMzE3NDQsICAzMTc0NCwgIDMxNzQ0LCAgMzE3NDQsICAz
MTc0NCwgIDMxNzQ0LCAgMzE3NDQsICAzMTc0NCwgIDMxNzQ0LAorMzI3NjgsICAzMjc2OCwgIDMy
NzY4LCAgMzI3NjgsICAzMjc2OCwgIDMyNzY4LCAgMzI3NjgsICAzMjc2OCwgIDMyNzY4LCAgMzI3
NjgsICAzMjc2OCwgIDMyNzY4LCAgMzI3NjgsICAzMjc2OCwgIDMyNzY4LCAgMzI3NjgsCiszMjc2
OCwgIDMyNzY4LCAgMzI3NjgsICAzMjc2OCwgIDMyNzY4LCAgMzI3NjgsICAzMjc2OCwgIDMyNzY4
LCAgMzI3NjgsICAzMjc2OCwgIDMyNzY4LCAgMzI3NjgsICAzMjc2OCwgIDMyNzY4LCAgMzI3Njgs
ICAzMjc2OCwKKzMyNzY4LCAgMzI3NjgsICAzMjc2OCwgIDMyNzY4LCAgMzI3NjgsICAzMjc2OCwg
IDMyNzY4LCAgMzI3NjgsICAzMjc2OCwgIDMyNzY4LCAgMzI3NjgsICAzMjc2OCwgIDMyNzY4LCAg
MzI3NjgsICAzMjc2OCwgIDMyNzY4LAorMzI3NjgsICAzMjc2OCwgIDMyNzY4LCAgMzI3NjgsICAz
Mjc2OCwgIDMyNzY4LCAgMzI3NjgsICAzMjc2OCwgIDMyNzY4LCAgMzI3NjgsICAzMjc2OCwgIDMy
NzY4LCAgMzI3NjgsICAzMjc2OCwgIDMyNzY4LCAgMzI3NjgsCiszMjc2OCwgIDMyNzY4LCAgMzI3
NjgsICAzMjc2OCwgIDMyNzY4LCAgMzI3NjgsICAzMjc2OCwgIDMyNzY4LCAgMzI3NjgsICAzMjc2
OCwgIDMyNzY4LCAgMzI3NjgsICAzMjc2OCwgIDMyNzY4LCAgMzI3NjgsICAzMjc2OCwKKzMyNzY4
LCAgMzI3NjgsICAzMjc2OCwgIDMyNzY4LCAgMzI3NjgsICAzMjc2OCwgIDMyNzY4LCAgMzI3Njgs
ICAzMjc2OCwgIDMyNzY4LCAgMzI3NjgsICAzMjc2OCwgIDMyNzY4LCAgMzI3NjgsICAzMjc2OCwg
IDMyNzY4LAorMzI3NjgsICAzMjc2OCwgIDMyNzY4LCAgMzI3NjgsICAzMjc2OCwgIDMyNzY4LCAg
MzI3NjgsICAzMjc2OSwgIDMyNzcwLCAgMzI3NzIsICAzMjc3NiwgIDMyNzg0LCAgMzI4MDAsICAz
MjgzMiwgIDMyODk2LCAgMzMwMjQsCiszMzI4MCwgIDMzNzkyLCAgMzQ4MTYsICAzNTg0MCwgIDM2
ODY0LCAgMzc4ODgsICAzODkxMiwgIDM5OTM2LCAgNDA5NjAsICA0MTk4NCwgIDQzMDA4LCAgNDQw
MzIsICA0NTA1NiwgIDQ2MDgwLCAgNDcxMDQsICA0ODEyOCwKKzQ5MTUyLCAgNTAxNzYsICA1MTIw
MCwgIDUyMjI0LCAgNTMyNDgsICA1NDI3MiwgIDU1Mjk2LCAgNTYzMjAsICA1NzM0NCwgIDU4MzY4
LCAgNTkzOTIsICA2MDQxNiwgIDYxNDQwLCAgNjI0NjQsICA2MzQ4OCwgIDY0NTEyLAorNjQ1MTIs
ICA2NDUxMiwgIDY0NTEyLCAgNjQ1MTIsICA2NDUxMiwgIDY0NTEyLCAgNjQ1MTIsICA2NDUxMiwg
IDY0NTEyLCAgNjQ1MTIsICA2NDUxMiwgIDY0NTEyLCAgNjQ1MTIsICA2NDUxMiwgIDY0NTEyLCAg
NjQ1MTIsCis2NDUxMiwgIDY0NTEyLCAgNjQ1MTIsICA2NDUxMiwgIDY0NTEyLCAgNjQ1MTIsICA2
NDUxMiwgIDY0NTEyLCAgNjQ1MTIsICA2NDUxMiwgIDY0NTEyLCAgNjQ1MTIsICA2NDUxMiwgIDY0
NTEyLCAgNjQ1MTIsICA2NDUxMiwKKzY0NTEyLCAgNjQ1MTIsICA2NDUxMiwgIDY0NTEyLCAgNjQ1
MTIsICA2NDUxMiwgIDY0NTEyLCAgNjQ1MTIsICA2NDUxMiwgIDY0NTEyLCAgNjQ1MTIsICA2NDUx
MiwgIDY0NTEyLCAgNjQ1MTIsICA2NDUxMiwgIDY0NTEyLAorNjQ1MTIsICA2NDUxMiwgIDY0NTEy
LCAgNjQ1MTIsICA2NDUxMiwgIDY0NTEyLCAgNjQ1MTIsICA2NDUxMiwgIDY0NTEyLCAgNjQ1MTIs
ICA2NDUxMiwgIDY0NTEyLCAgNjQ1MTIsICA2NDUxMiwgIDY0NTEyLCAgNjQ1MTIsCis2NDUxMiwg
IDY0NTEyLCAgNjQ1MTIsICA2NDUxMiwgIDY0NTEyLCAgNjQ1MTIsICA2NDUxMiwgIDY0NTEyLCAg
NjQ1MTIsICA2NDUxMiwgIDY0NTEyLCAgNjQ1MTIsICA2NDUxMiwgIDY0NTEyLCAgNjQ1MTIsICA2
NDUxMiwKKzY0NTEyLCAgNjQ1MTIsICA2NDUxMiwgIDY0NTEyLCAgNjQ1MTIsICA2NDUxMiwgIDY0
NTEyLCAgNjQ1MTIsICA2NDUxMiwgIDY0NTEyLCAgNjQ1MTIsICA2NDUxMiwgIDY0NTEyLCAgNjQ1
MTIsICA2NDUxMiwgIDY0NTEyLAorNjQ1MTIsICA2NDUxMiwgIDY0NTEyLCAgNjQ1MTIsICA2NDUx
MiwgIDY0NTEyLCAgNjQ1MTIsICA2NDUxMiwgIDY0NTEyLCAgNjQ1MTIsICA2NDUxMiwgIDY0NTEy
LCAgNjQ1MTIsICA2NDUxMiwgIDY0NTEyLCAgNjQ1MTIKK307CisKK3Vuc2lnbmVkIGNoYXIgc2hp
ZnRUYWJsZVs1MTJdID0geworMjQsICAgICAyNCwgICAgIDI0LCAgICAgMjQsICAgICAyNCwgICAg
IDI0LCAgICAgMjQsICAgICAyNCwgICAgIDI0LCAgICAgMjQsICAgICAyNCwgICAgIDI0LCAgICAg
MjQsICAgICAyNCwgICAgIDI0LCAgICAgMjQsCisyNCwgICAgIDI0LCAgICAgMjQsICAgICAyNCwg
ICAgIDI0LCAgICAgMjQsICAgICAyNCwgICAgIDI0LCAgICAgMjQsICAgICAyNCwgICAgIDI0LCAg
ICAgMjQsICAgICAyNCwgICAgIDI0LCAgICAgMjQsICAgICAyNCwKKzI0LCAgICAgMjQsICAgICAy
NCwgICAgIDI0LCAgICAgMjQsICAgICAyNCwgICAgIDI0LCAgICAgMjQsICAgICAyNCwgICAgIDI0
LCAgICAgMjQsICAgICAyNCwgICAgIDI0LCAgICAgMjQsICAgICAyNCwgICAgIDI0LAorMjQsICAg
ICAyNCwgICAgIDI0LCAgICAgMjQsICAgICAyNCwgICAgIDI0LCAgICAgMjQsICAgICAyNCwgICAg
IDI0LCAgICAgMjQsICAgICAyNCwgICAgIDI0LCAgICAgMjQsICAgICAyNCwgICAgIDI0LCAgICAg
MjQsCisyNCwgICAgIDI0LCAgICAgMjQsICAgICAyNCwgICAgIDI0LCAgICAgMjQsICAgICAyNCwg
ICAgIDI0LCAgICAgMjQsICAgICAyNCwgICAgIDI0LCAgICAgMjQsICAgICAyNCwgICAgIDI0LCAg
ICAgMjQsICAgICAyNCwKKzI0LCAgICAgMjQsICAgICAyNCwgICAgIDI0LCAgICAgMjQsICAgICAy
NCwgICAgIDI0LCAgICAgMjQsICAgICAyNCwgICAgIDI0LCAgICAgMjQsICAgICAyNCwgICAgIDI0
LCAgICAgMjQsICAgICAyNCwgICAgIDI0LAorMjQsICAgICAyNCwgICAgIDI0LCAgICAgMjQsICAg
ICAyNCwgICAgIDI0LCAgICAgMjQsICAgICAyMywgICAgIDIyLCAgICAgMjEsICAgICAyMCwgICAg
IDE5LCAgICAgMTgsICAgICAxNywgICAgIDE2LCAgICAgMTUsCisxNCwgICAgIDEzLCAgICAgMTMs
ICAgICAxMywgICAgIDEzLCAgICAgMTMsICAgICAxMywgICAgIDEzLCAgICAgMTMsICAgICAxMywg
ICAgIDEzLCAgICAgMTMsICAgICAxMywgICAgIDEzLCAgICAgMTMsICAgICAxMywKKzEzLCAgICAg
MTMsICAgICAxMywgICAgIDEzLCAgICAgMTMsICAgICAxMywgICAgIDEzLCAgICAgMTMsICAgICAx
MywgICAgIDEzLCAgICAgMTMsICAgICAxMywgICAgIDEzLCAgICAgMTMsICAgICAxMywgICAgIDI0
LAorMjQsICAgICAyNCwgICAgIDI0LCAgICAgMjQsICAgICAyNCwgICAgIDI0LCAgICAgMjQsICAg
ICAyNCwgICAgIDI0LCAgICAgMjQsICAgICAyNCwgICAgIDI0LCAgICAgMjQsICAgICAyNCwgICAg
IDI0LCAgICAgMjQsCisyNCwgICAgIDI0LCAgICAgMjQsICAgICAyNCwgICAgIDI0LCAgICAgMjQs
ICAgICAyNCwgICAgIDI0LCAgICAgMjQsICAgICAyNCwgICAgIDI0LCAgICAgMjQsICAgICAyNCwg
ICAgIDI0LCAgICAgMjQsICAgICAyNCwKKzI0LCAgICAgMjQsICAgICAyNCwgICAgIDI0LCAgICAg
MjQsICAgICAyNCwgICAgIDI0LCAgICAgMjQsICAgICAyNCwgICAgIDI0LCAgICAgMjQsICAgICAy
NCwgICAgIDI0LCAgICAgMjQsICAgICAyNCwgICAgIDI0LAorMjQsICAgICAyNCwgICAgIDI0LCAg
ICAgMjQsICAgICAyNCwgICAgIDI0LCAgICAgMjQsICAgICAyNCwgICAgIDI0LCAgICAgMjQsICAg
ICAyNCwgICAgIDI0LCAgICAgMjQsICAgICAyNCwgICAgIDI0LCAgICAgMjQsCisyNCwgICAgIDI0
LCAgICAgMjQsICAgICAyNCwgICAgIDI0LCAgICAgMjQsICAgICAyNCwgICAgIDI0LCAgICAgMjQs
ICAgICAyNCwgICAgIDI0LCAgICAgMjQsICAgICAyNCwgICAgIDI0LCAgICAgMjQsICAgICAyNCwK
KzI0LCAgICAgMjQsICAgICAyNCwgICAgIDI0LCAgICAgMjQsICAgICAyNCwgICAgIDI0LCAgICAg
MjQsICAgICAyNCwgICAgIDI0LCAgICAgMjQsICAgICAyNCwgICAgIDI0LCAgICAgMjQsICAgICAy
NCwgICAgIDI0LAorMjQsICAgICAyNCwgICAgIDI0LCAgICAgMjQsICAgICAyNCwgICAgIDI0LCAg
ICAgMjQsICAgICAyNCwgICAgIDI0LCAgICAgMjQsICAgICAyNCwgICAgIDI0LCAgICAgMjQsICAg
ICAyNCwgICAgIDI0LCAgICAgMTMsCisyNCwgICAgIDI0LCAgICAgMjQsICAgICAyNCwgICAgIDI0
LCAgICAgMjQsICAgICAyNCwgICAgIDI0LCAgICAgMjQsICAgICAyNCwgICAgIDI0LCAgICAgMjQs
ICAgICAyNCwgICAgIDI0LCAgICAgMjQsICAgICAyNCwKKzI0LCAgICAgMjQsICAgICAyNCwgICAg
IDI0LCAgICAgMjQsICAgICAyNCwgICAgIDI0LCAgICAgMjQsICAgICAyNCwgICAgIDI0LCAgICAg
MjQsICAgICAyNCwgICAgIDI0LCAgICAgMjQsICAgICAyNCwgICAgIDI0LAorMjQsICAgICAyNCwg
ICAgIDI0LCAgICAgMjQsICAgICAyNCwgICAgIDI0LCAgICAgMjQsICAgICAyNCwgICAgIDI0LCAg
ICAgMjQsICAgICAyNCwgICAgIDI0LCAgICAgMjQsICAgICAyNCwgICAgIDI0LCAgICAgMjQsCisy
NCwgICAgIDI0LCAgICAgMjQsICAgICAyNCwgICAgIDI0LCAgICAgMjQsICAgICAyNCwgICAgIDI0
LCAgICAgMjQsICAgICAyNCwgICAgIDI0LCAgICAgMjQsICAgICAyNCwgICAgIDI0LCAgICAgMjQs
ICAgICAyNCwKKzI0LCAgICAgMjQsICAgICAyNCwgICAgIDI0LCAgICAgMjQsICAgICAyNCwgICAg
IDI0LCAgICAgMjQsICAgICAyNCwgICAgIDI0LCAgICAgMjQsICAgICAyNCwgICAgIDI0LCAgICAg
MjQsICAgICAyNCwgICAgIDI0LAorMjQsICAgICAyNCwgICAgIDI0LCAgICAgMjQsICAgICAyNCwg
ICAgIDI0LCAgICAgMjQsICAgICAyNCwgICAgIDI0LCAgICAgMjQsICAgICAyNCwgICAgIDI0LCAg
ICAgMjQsICAgICAyNCwgICAgIDI0LCAgICAgMjQsCisyNCwgICAgIDI0LCAgICAgMjQsICAgICAy
NCwgICAgIDI0LCAgICAgMjQsICAgICAyNCwgICAgIDIzLCAgICAgMjIsICAgICAyMSwgICAgIDIw
LCAgICAgMTksICAgICAxOCwgICAgIDE3LCAgICAgMTYsICAgICAxNSwKKzE0LCAgICAgMTMsICAg
ICAxMywgICAgIDEzLCAgICAgMTMsICAgICAxMywgICAgIDEzLCAgICAgMTMsICAgICAxMywgICAg
IDEzLCAgICAgMTMsICAgICAxMywgICAgIDEzLCAgICAgMTMsICAgICAxMywgICAgIDEzLAorMTMs
ICAgICAxMywgICAgIDEzLCAgICAgMTMsICAgICAxMywgICAgIDEzLCAgICAgMTMsICAgICAxMywg
ICAgIDEzLCAgICAgMTMsICAgICAxMywgICAgIDEzLCAgICAgMTMsICAgICAxMywgICAgIDEzLCAg
ICAgMjQsCisyNCwgICAgIDI0LCAgICAgMjQsICAgICAyNCwgICAgIDI0LCAgICAgMjQsICAgICAy
NCwgICAgIDI0LCAgICAgMjQsICAgICAyNCwgICAgIDI0LCAgICAgMjQsICAgICAyNCwgICAgIDI0
LCAgICAgMjQsICAgICAyNCwKKzI0LCAgICAgMjQsICAgICAyNCwgICAgIDI0LCAgICAgMjQsICAg
ICAyNCwgICAgIDI0LCAgICAgMjQsICAgICAyNCwgICAgIDI0LCAgICAgMjQsICAgICAyNCwgICAg
IDI0LCAgICAgMjQsICAgICAyNCwgICAgIDI0LAorMjQsICAgICAyNCwgICAgIDI0LCAgICAgMjQs
ICAgICAyNCwgICAgIDI0LCAgICAgMjQsICAgICAyNCwgICAgIDI0LCAgICAgMjQsICAgICAyNCwg
ICAgIDI0LCAgICAgMjQsICAgICAyNCwgICAgIDI0LCAgICAgMjQsCisyNCwgICAgIDI0LCAgICAg
MjQsICAgICAyNCwgICAgIDI0LCAgICAgMjQsICAgICAyNCwgICAgIDI0LCAgICAgMjQsICAgICAy
NCwgICAgIDI0LCAgICAgMjQsICAgICAyNCwgICAgIDI0LCAgICAgMjQsICAgICAyNCwKKzI0LCAg
ICAgMjQsICAgICAyNCwgICAgIDI0LCAgICAgMjQsICAgICAyNCwgICAgIDI0LCAgICAgMjQsICAg
ICAyNCwgICAgIDI0LCAgICAgMjQsICAgICAyNCwgICAgIDI0LCAgICAgMjQsICAgICAyNCwgICAg
IDI0LAorMjQsICAgICAyNCwgICAgIDI0LCAgICAgMjQsICAgICAyNCwgICAgIDI0LCAgICAgMjQs
ICAgICAyNCwgICAgIDI0LCAgICAgMjQsICAgICAyNCwgICAgIDI0LCAgICAgMjQsICAgICAyNCwg
ICAgIDI0LCAgICAgMjQsCisyNCwgICAgIDI0LCAgICAgMjQsICAgICAyNCwgICAgIDI0LCAgICAg
MjQsICAgICAyNCwgICAgIDI0LCAgICAgMjQsICAgICAyNCwgICAgIDI0LCAgICAgMjQsICAgICAy
NCwgICAgIDI0LCAgICAgMjQsICAgICAxMworfTsKKwordW5zaWduZWQgc2hvcnQgY29udmVydEZs
b2F0VG9IYWxmRmxvYXQoZmxvYXQgZikKK3sKKyAgICB1bnNpZ25lZCB0ZW1wID0gKihyZWludGVy
cHJldF9jYXN0PHVuc2lnbmVkICo+KCZmKSk7CisgICAgdW5zaWduZWQgc2lnbmV4cCA9ICh0ZW1w
ID4+IDIzKSAmIDB4MWZmOworICAgIHJldHVybiBiYXNlVGFibGVbc2lnbmV4cF0gKyAoKHRlbXAg
JiAweDAwN2ZmZmZmKSA+PiBzaGlmdFRhYmxlW3NpZ25leHBdKTsKK30KKwogLyogQkVHSU4gQ09E
RSBTSEFSRUQgV0lUSCBNT1pJTExBIEZJUkVGT1ggKi8KIAogLy8gVGhlIGZvbGxvd2luZyBwYWNr
aW5nIGFuZCB1bnBhY2tpbmcgcm91dGluZXMgYXJlIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiBmdW5j
dGlvbiB0ZW1wbGF0ZXMgYW5kIGlubGluZSBmdW5jdGlvbnMgdG8gYWNoaWV2ZSBnZW5lcmFsaXR5
IGFuZCBzcGVlZHVwLgpAQCAtMTA2NywxNyArMTIxMSwxNjMgQEAgdGVtcGxhdGU8PiBBTFdBWVNf
SU5MSU5FIHZvaWQgcGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJBMzJGLCBHcmFw
aGljc0MKICAgICB9CiB9CiAKK3RlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3Jh
cGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JBMTZGLCBHcmFwaGljc0NvbnRleHQzRDo6QWxw
aGFEb05vdGhpbmcsIGZsb2F0LCB1aW50MTZfdD4oY29uc3QgZmxvYXQqIHNvdXJjZSwgdWludDE2
X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCit7CisgICAgZm9yICh1bnNp
Z25lZCBpID0gMDsgaSA8IHBpeGVsc1BlclJvdzsgKytpKSB7CisgICAgICAgIGRlc3RpbmF0aW9u
WzBdID0gY29udmVydEZsb2F0VG9IYWxmRmxvYXQoc291cmNlWzBdKTsKKyAgICAgICAgZGVzdGlu
YXRpb25bMV0gPSBjb252ZXJ0RmxvYXRUb0hhbGZGbG9hdChzb3VyY2VbMV0pOworICAgICAgICBk
ZXN0aW5hdGlvblsyXSA9IGNvbnZlcnRGbG9hdFRvSGFsZkZsb2F0KHNvdXJjZVsyXSk7CisgICAg
ICAgIGRlc3RpbmF0aW9uWzNdID0gY29udmVydEZsb2F0VG9IYWxmRmxvYXQoc291cmNlWzNdKTsK
KyAgICAgICAgc291cmNlICs9IDQ7CisgICAgICAgIGRlc3RpbmF0aW9uICs9IDQ7CisgICAgfQor
fQorCit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNE
OjpEYXRhRm9ybWF0UkdCQTE2RiwgR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhRG9QcmVtdWx0aXBs
eSwgZmxvYXQsIHVpbnQxNl90Pihjb25zdCBmbG9hdCogc291cmNlLCB1aW50MTZfdCogZGVzdGlu
YXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKK3sKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAw
OyBpIDwgcGl4ZWxzUGVyUm93OyArK2kpIHsKKyAgICAgICAgZmxvYXQgc2NhbGVGYWN0b3IgPSBz
b3VyY2VbM107CisgICAgICAgIGRlc3RpbmF0aW9uWzBdID0gY29udmVydEZsb2F0VG9IYWxmRmxv
YXQoc291cmNlWzBdICogc2NhbGVGYWN0b3IpOworICAgICAgICBkZXN0aW5hdGlvblsxXSA9IGNv
bnZlcnRGbG9hdFRvSGFsZkZsb2F0KHNvdXJjZVsxXSAqIHNjYWxlRmFjdG9yKTsKKyAgICAgICAg
ZGVzdGluYXRpb25bMl0gPSBjb252ZXJ0RmxvYXRUb0hhbGZGbG9hdChzb3VyY2VbMl0gKiBzY2Fs
ZUZhY3Rvcik7CisgICAgICAgIGRlc3RpbmF0aW9uWzNdID0gY29udmVydEZsb2F0VG9IYWxmRmxv
YXQoc291cmNlWzNdKTsKKyAgICAgICAgc291cmNlICs9IDQ7CisgICAgICAgIGRlc3RpbmF0aW9u
ICs9IDQ7CisgICAgfQorfQorCit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdy
YXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCQTE2RiwgR3JhcGhpY3NDb250ZXh0M0Q6OkFs
cGhhRG9Vbm11bHRpcGx5LCBmbG9hdCwgdWludDE2X3Q+KGNvbnN0IGZsb2F0KiBzb3VyY2UsIHVp
bnQxNl90KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQoreworICAgIGZvciAo
dW5zaWduZWQgaSA9IDA7IGkgPCBwaXhlbHNQZXJSb3c7ICsraSkgeworICAgICAgICBmbG9hdCBz
Y2FsZUZhY3RvciA9IHNvdXJjZVszXSA/IDEuMGYgLyBzb3VyY2VbM10gOiAxLjBmOworICAgICAg
ICBkZXN0aW5hdGlvblswXSA9IGNvbnZlcnRGbG9hdFRvSGFsZkZsb2F0KHNvdXJjZVswXSAqIHNj
YWxlRmFjdG9yKTsKKyAgICAgICAgZGVzdGluYXRpb25bMV0gPSBjb252ZXJ0RmxvYXRUb0hhbGZG
bG9hdChzb3VyY2VbMV0gKiBzY2FsZUZhY3Rvcik7CisgICAgICAgIGRlc3RpbmF0aW9uWzJdID0g
Y29udmVydEZsb2F0VG9IYWxmRmxvYXQoc291cmNlWzJdICogc2NhbGVGYWN0b3IpOworICAgICAg
ICBkZXN0aW5hdGlvblszXSA9IGNvbnZlcnRGbG9hdFRvSGFsZkZsb2F0KHNvdXJjZVszXSk7Cisg
ICAgICAgIHNvdXJjZSArPSA0OworICAgICAgICBkZXN0aW5hdGlvbiArPSA0OworICAgIH0KK30K
KwordGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgcGFjazxHcmFwaGljc0NvbnRleHQzRDo6
RGF0YUZvcm1hdFJHQjE2RiwgR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhRG9Ob3RoaW5nLCBmbG9h
dCwgdWludDE2X3Q+KGNvbnN0IGZsb2F0KiBzb3VyY2UsIHVpbnQxNl90KiBkZXN0aW5hdGlvbiwg
dW5zaWduZWQgcGl4ZWxzUGVyUm93KQoreworICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBw
aXhlbHNQZXJSb3c7ICsraSkgeworICAgICAgICBkZXN0aW5hdGlvblswXSA9IGNvbnZlcnRGbG9h
dFRvSGFsZkZsb2F0KHNvdXJjZVswXSk7CisgICAgICAgIGRlc3RpbmF0aW9uWzFdID0gY29udmVy
dEZsb2F0VG9IYWxmRmxvYXQoc291cmNlWzFdKTsKKyAgICAgICAgZGVzdGluYXRpb25bMl0gPSBj
b252ZXJ0RmxvYXRUb0hhbGZGbG9hdChzb3VyY2VbMl0pOworICAgICAgICBzb3VyY2UgKz0gNDsK
KyAgICAgICAgZGVzdGluYXRpb24gKz0gMzsKKyAgICB9Cit9CisKK3RlbXBsYXRlPD4gQUxXQVlT
X0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0IxNkYsIEdy
YXBoaWNzQ29udGV4dDNEOjpBbHBoYURvUHJlbXVsdGlwbHksIGZsb2F0LCB1aW50MTZfdD4oY29u
c3QgZmxvYXQqIHNvdXJjZSwgdWludDE2X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQ
ZXJSb3cpCit7CisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHBpeGVsc1BlclJvdzsgKytp
KSB7CisgICAgICAgIGZsb2F0IHNjYWxlRmFjdG9yID0gc291cmNlWzNdOworICAgICAgICBkZXN0
aW5hdGlvblswXSA9IGNvbnZlcnRGbG9hdFRvSGFsZkZsb2F0KHNvdXJjZVswXSAqIHNjYWxlRmFj
dG9yKTsKKyAgICAgICAgZGVzdGluYXRpb25bMV0gPSBjb252ZXJ0RmxvYXRUb0hhbGZGbG9hdChz
b3VyY2VbMV0gKiBzY2FsZUZhY3Rvcik7CisgICAgICAgIGRlc3RpbmF0aW9uWzJdID0gY29udmVy
dEZsb2F0VG9IYWxmRmxvYXQoc291cmNlWzJdICogc2NhbGVGYWN0b3IpOworICAgICAgICBzb3Vy
Y2UgKz0gNDsKKyAgICAgICAgZGVzdGluYXRpb24gKz0gMzsKKyAgICB9Cit9CisKK3RlbXBsYXRl
PD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRS
R0IxNkYsIEdyYXBoaWNzQ29udGV4dDNEOjpBbHBoYURvVW5tdWx0aXBseSwgZmxvYXQsIHVpbnQx
Nl90Pihjb25zdCBmbG9hdCogc291cmNlLCB1aW50MTZfdCogZGVzdGluYXRpb24sIHVuc2lnbmVk
IHBpeGVsc1BlclJvdykKK3sKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgcGl4ZWxzUGVy
Um93OyArK2kpIHsKKyAgICAgICAgZmxvYXQgc2NhbGVGYWN0b3IgPSBzb3VyY2VbM10gPyAxLjBm
IC8gc291cmNlWzNdIDogMS4wZjsKKyAgICAgICAgZGVzdGluYXRpb25bMF0gPSBjb252ZXJ0Rmxv
YXRUb0hhbGZGbG9hdChzb3VyY2VbMF0gKiBzY2FsZUZhY3Rvcik7CisgICAgICAgIGRlc3RpbmF0
aW9uWzFdID0gY29udmVydEZsb2F0VG9IYWxmRmxvYXQoc291cmNlWzFdICogc2NhbGVGYWN0b3Ip
OworICAgICAgICBkZXN0aW5hdGlvblsyXSA9IGNvbnZlcnRGbG9hdFRvSGFsZkZsb2F0KHNvdXJj
ZVsyXSAqIHNjYWxlRmFjdG9yKTsKKyAgICAgICAgc291cmNlICs9IDQ7CisgICAgICAgIGRlc3Rp
bmF0aW9uICs9IDM7CisgICAgfQorfQorCit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBw
YWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkExNkYsIEdyYXBoaWNzQ29udGV4dDNE
OjpBbHBoYURvTm90aGluZywgZmxvYXQsIHVpbnQxNl90Pihjb25zdCBmbG9hdCogc291cmNlLCB1
aW50MTZfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKK3sKKyAgICBmb3Ig
KHVuc2lnbmVkIGkgPSAwOyBpIDwgcGl4ZWxzUGVyUm93OyArK2kpIHsKKyAgICAgICAgZGVzdGlu
YXRpb25bMF0gPSBjb252ZXJ0RmxvYXRUb0hhbGZGbG9hdChzb3VyY2VbMF0pOworICAgICAgICBk
ZXN0aW5hdGlvblsxXSA9IGNvbnZlcnRGbG9hdFRvSGFsZkZsb2F0KHNvdXJjZVszXSk7CisgICAg
ICAgIHNvdXJjZSArPSA0OworICAgICAgICBkZXN0aW5hdGlvbiArPSAyOworICAgIH0KK30KKwor
dGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgcGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0
YUZvcm1hdFJBMTZGLCBHcmFwaGljc0NvbnRleHQzRDo6QWxwaGFEb1ByZW11bHRpcGx5LCBmbG9h
dCwgdWludDE2X3Q+KGNvbnN0IGZsb2F0KiBzb3VyY2UsIHVpbnQxNl90KiBkZXN0aW5hdGlvbiwg
dW5zaWduZWQgcGl4ZWxzUGVyUm93KQoreworICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBw
aXhlbHNQZXJSb3c7ICsraSkgeworICAgICAgICBmbG9hdCBzY2FsZUZhY3RvciA9IHNvdXJjZVsz
XTsKKyAgICAgICAgZGVzdGluYXRpb25bMF0gPSBjb252ZXJ0RmxvYXRUb0hhbGZGbG9hdChzb3Vy
Y2VbMF0gKiBzY2FsZUZhY3Rvcik7CisgICAgICAgIGRlc3RpbmF0aW9uWzFdID0gY29udmVydEZs
b2F0VG9IYWxmRmxvYXQoc291cmNlWzNdKTsKKyAgICAgICAgc291cmNlICs9IDQ7CisgICAgICAg
IGRlc3RpbmF0aW9uICs9IDI7CisgICAgfQorfQorCit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUg
dm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkExNkYsIEdyYXBoaWNzQ29u
dGV4dDNEOjpBbHBoYURvVW5tdWx0aXBseSwgZmxvYXQsIHVpbnQxNl90Pihjb25zdCBmbG9hdCog
c291cmNlLCB1aW50MTZfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKK3sK
KyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgcGl4ZWxzUGVyUm93OyArK2kpIHsKKyAgICAg
ICAgZmxvYXQgc2NhbGVGYWN0b3IgPSBzb3VyY2VbM10gPyAxLjBmIC8gc291cmNlWzNdIDogMS4w
ZjsKKyAgICAgICAgZGVzdGluYXRpb25bMF0gPSBjb252ZXJ0RmxvYXRUb0hhbGZGbG9hdChzb3Vy
Y2VbMF0gKiBzY2FsZUZhY3Rvcik7CisgICAgICAgIGRlc3RpbmF0aW9uWzFdID0gY29udmVydEZs
b2F0VG9IYWxmRmxvYXQoc291cmNlWzNdKTsKKyAgICAgICAgc291cmNlICs9IDQ7CisgICAgICAg
IGRlc3RpbmF0aW9uICs9IDI7CisgICAgfQorfQorCit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUg
dm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UjE2RiwgR3JhcGhpY3NDb250
ZXh0M0Q6OkFscGhhRG9Ob3RoaW5nLCBmbG9hdCwgdWludDE2X3Q+KGNvbnN0IGZsb2F0KiBzb3Vy
Y2UsIHVpbnQxNl90KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQoreworICAg
IGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBwaXhlbHNQZXJSb3c7ICsraSkgeworICAgICAgICBk
ZXN0aW5hdGlvblswXSA9IGNvbnZlcnRGbG9hdFRvSGFsZkZsb2F0KHNvdXJjZVswXSk7CisgICAg
ICAgIHNvdXJjZSArPSA0OworICAgICAgICBkZXN0aW5hdGlvbiArPSAxOworICAgIH0KK30KKwor
dGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgcGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0
YUZvcm1hdFIxNkYsIEdyYXBoaWNzQ29udGV4dDNEOjpBbHBoYURvUHJlbXVsdGlwbHksIGZsb2F0
LCB1aW50MTZfdD4oY29uc3QgZmxvYXQqIHNvdXJjZSwgdWludDE2X3QqIGRlc3RpbmF0aW9uLCB1
bnNpZ25lZCBwaXhlbHNQZXJSb3cpCit7CisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHBp
eGVsc1BlclJvdzsgKytpKSB7CisgICAgICAgIGZsb2F0IHNjYWxlRmFjdG9yID0gc291cmNlWzNd
OworICAgICAgICBkZXN0aW5hdGlvblswXSA9IGNvbnZlcnRGbG9hdFRvSGFsZkZsb2F0KHNvdXJj
ZVswXSAqIHNjYWxlRmFjdG9yKTsKKyAgICAgICAgc291cmNlICs9IDQ7CisgICAgICAgIGRlc3Rp
bmF0aW9uICs9IDE7CisgICAgfQorfQorCit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBw
YWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UjE2RiwgR3JhcGhpY3NDb250ZXh0M0Q6
OkFscGhhRG9Vbm11bHRpcGx5LCBmbG9hdCwgdWludDE2X3Q+KGNvbnN0IGZsb2F0KiBzb3VyY2Us
IHVpbnQxNl90KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQoreworICAgIGZv
ciAodW5zaWduZWQgaSA9IDA7IGkgPCBwaXhlbHNQZXJSb3c7ICsraSkgeworICAgICAgICBmbG9h
dCBzY2FsZUZhY3RvciA9IHNvdXJjZVszXSA/IDEuMGYgLyBzb3VyY2VbM10gOiAxLjBmOworICAg
ICAgICBkZXN0aW5hdGlvblswXSA9IGNvbnZlcnRGbG9hdFRvSGFsZkZsb2F0KHNvdXJjZVswXSAq
IHNjYWxlRmFjdG9yKTsKKyAgICAgICAgc291cmNlICs9IDQ7CisgICAgICAgIGRlc3RpbmF0aW9u
ICs9IDE7CisgICAgfQorfQorCit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdy
YXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0QTE2RiwgR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhh
RG9Ob3RoaW5nLCBmbG9hdCwgdWludDE2X3Q+KGNvbnN0IGZsb2F0KiBzb3VyY2UsIHVpbnQxNl90
KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQoreworICAgIGZvciAodW5zaWdu
ZWQgaSA9IDA7IGkgPCBwaXhlbHNQZXJSb3c7ICsraSkgeworICAgICAgICBkZXN0aW5hdGlvblsw
XSA9IGNvbnZlcnRGbG9hdFRvSGFsZkZsb2F0KHNvdXJjZVszXSk7CisgICAgICAgIHNvdXJjZSAr
PSA0OworICAgICAgICBkZXN0aW5hdGlvbiArPSAxOworICAgIH0KK30KKwogQUxXQVlTX0lOTElO
RSBib29sIEhhc0FscGhhKGludCBmb3JtYXQpCiB7CiAgICAgcmV0dXJuIGZvcm1hdCA9PSBHcmFw
aGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdEE4CisgICAgICAgIHx8IGZvcm1hdCA9PSBHcmFwaGlj
c0NvbnRleHQzRDo6RGF0YUZvcm1hdEExNkYKICAgICAgICAgfHwgZm9ybWF0ID09IEdyYXBoaWNz
Q29udGV4dDNEOjpEYXRhRm9ybWF0QTMyRgogICAgICAgICB8fCBmb3JtYXQgPT0gR3JhcGhpY3ND
b250ZXh0M0Q6OkRhdGFGb3JtYXRSQTgKICAgICAgICAgfHwgZm9ybWF0ID09IEdyYXBoaWNzQ29u
dGV4dDNEOjpEYXRhRm9ybWF0QVI4CisgICAgICAgIHx8IGZvcm1hdCA9PSBHcmFwaGljc0NvbnRl
eHQzRDo6RGF0YUZvcm1hdFJBMTZGCiAgICAgICAgIHx8IGZvcm1hdCA9PSBHcmFwaGljc0NvbnRl
eHQzRDo6RGF0YUZvcm1hdFJBMzJGCiAgICAgICAgIHx8IGZvcm1hdCA9PSBHcmFwaGljc0NvbnRl
eHQzRDo6RGF0YUZvcm1hdFJHQkE4CiAgICAgICAgIHx8IGZvcm1hdCA9PSBHcmFwaGljc0NvbnRl
eHQzRDo6RGF0YUZvcm1hdEJHUkE4CiAgICAgICAgIHx8IGZvcm1hdCA9PSBHcmFwaGljc0NvbnRl
eHQzRDo6RGF0YUZvcm1hdEFSR0I4CiAgICAgICAgIHx8IGZvcm1hdCA9PSBHcmFwaGljc0NvbnRl
eHQzRDo6RGF0YUZvcm1hdEFCR1I4CisgICAgICAgIHx8IGZvcm1hdCA9PSBHcmFwaGljc0NvbnRl
eHQzRDo6RGF0YUZvcm1hdFJHQkExNkYKICAgICAgICAgfHwgZm9ybWF0ID09IEdyYXBoaWNzQ29u
dGV4dDNEOjpEYXRhRm9ybWF0UkdCQTMyRgogICAgICAgICB8fCBmb3JtYXQgPT0gR3JhcGhpY3ND
b250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JBNDQ0NAogICAgICAgICB8fCBmb3JtYXQgPT0gR3JhcGhp
Y3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JBNTU1MTsKQEAgLTEwODYsOCArMTM3NiwxMCBAQCBB
TFdBWVNfSU5MSU5FIGJvb2wgSGFzQWxwaGEoaW50IGZvcm1hdCkKIEFMV0FZU19JTkxJTkUgYm9v
bCBIYXNDb2xvcihpbnQgZm9ybWF0KQogewogICAgIHJldHVybiBmb3JtYXQgPT0gR3JhcGhpY3ND
b250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JBOAorICAgICAgICB8fCBmb3JtYXQgPT0gR3JhcGhpY3ND
b250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JBMTZGCiAgICAgICAgIHx8IGZvcm1hdCA9PSBHcmFwaGlj
c0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQkEzMkYKICAgICAgICAgfHwgZm9ybWF0ID09IEdyYXBo
aWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCOAorICAgICAgICB8fCBmb3JtYXQgPT0gR3JhcGhp
Y3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0IxNkYKICAgICAgICAgfHwgZm9ybWF0ID09IEdyYXBo
aWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCMzJGCiAgICAgICAgIHx8IGZvcm1hdCA9PSBHcmFw
aGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdEJHUjgKICAgICAgICAgfHwgZm9ybWF0ID09IEdyYXBo
aWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0QkdSQTgKQEAgLTEwOTcsOCArMTM4OSwxMCBAQCBBTFdB
WVNfSU5MSU5FIGJvb2wgSGFzQ29sb3IoaW50IGZvcm1hdCkKICAgICAgICAgfHwgZm9ybWF0ID09
IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCQTQ0NDQKICAgICAgICAgfHwgZm9ybWF0
ID09IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCNTY1CiAgICAgICAgIHx8IGZvcm1h
dCA9PSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFI4CisgICAgICAgIHx8IGZvcm1hdCA9
PSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFIxNkYKICAgICAgICAgfHwgZm9ybWF0ID09
IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UjMyRgogICAgICAgICB8fCBmb3JtYXQgPT0g
R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSQTgKKyAgICAgICAgfHwgZm9ybWF0ID09IEdy
YXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkExNkYKICAgICAgICAgfHwgZm9ybWF0ID09IEdy
YXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkEzMkYKICAgICAgICAgfHwgZm9ybWF0ID09IEdy
YXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0QVI4OwogfQpAQCAtMTExNCw2ICsxNDA4LDE2IEBA
IHN0cnVjdCBJc0Zsb2F0Rm9ybWF0IHsKIH07CiAKIHRlbXBsYXRlPGludCBGb3JtYXQ+CitzdHJ1
Y3QgSXNIYWxmRmxvYXRGb3JtYXQgeworICAgIHN0YXRpYyBjb25zdCBib29sIFZhbHVlID0KKyAg
ICAgICAgRm9ybWF0ID09IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCQTE2RgorICAg
ICAgICB8fCBGb3JtYXQgPT0gR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0IxNkYKKyAg
ICAgICAgfHwgRm9ybWF0ID09IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkExNkYKKyAg
ICAgICAgfHwgRm9ybWF0ID09IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UjE2RgorICAg
ICAgICB8fCBGb3JtYXQgPT0gR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRBMTZGOworfTsK
KwordGVtcGxhdGU8aW50IEZvcm1hdD4KIHN0cnVjdCBJczE2YnBwRm9ybWF0IHsKICAgICBzdGF0
aWMgY29uc3QgYm9vbCBWYWx1ZSA9CiAgICAgICAgIEZvcm1hdCA9PSBHcmFwaGljc0NvbnRleHQz
RDo6RGF0YUZvcm1hdFJHQkE1NTUxCkBAIC0xMTIxLDI0ICsxNDI1LDI5IEBAIHN0cnVjdCBJczE2
YnBwRm9ybWF0IHsKICAgICAgICAgfHwgRm9ybWF0ID09IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRh
Rm9ybWF0UkdCNTY1OwogfTsKIAotdGVtcGxhdGU8aW50IEZvcm1hdCwgYm9vbCBJc0Zsb2F0ID0g
SXNGbG9hdEZvcm1hdDxGb3JtYXQ+OjpWYWx1ZSwgYm9vbCBJczE2YnBwID0gSXMxNmJwcEZvcm1h
dDxGb3JtYXQ+OjpWYWx1ZT4KK3RlbXBsYXRlPGludCBGb3JtYXQsIGJvb2wgSXNGbG9hdCA9IElz
RmxvYXRGb3JtYXQ8Rm9ybWF0Pjo6VmFsdWUsIGJvb2wgSXNIYWxmRmxvYXQgPSBJc0hhbGZGbG9h
dEZvcm1hdDxGb3JtYXQ+OjpWYWx1ZSwgYm9vbCBJczE2YnBwID0gSXMxNmJwcEZvcm1hdDxGb3Jt
YXQ+OjpWYWx1ZT4KIHN0cnVjdCBEYXRhVHlwZUZvckZvcm1hdCB7CiAgICAgdHlwZWRlZiB1aW50
OF90IFR5cGU7CiB9OwogCiB0ZW1wbGF0ZTxpbnQgRm9ybWF0Pgotc3RydWN0IERhdGFUeXBlRm9y
Rm9ybWF0PEZvcm1hdCwgdHJ1ZSwgZmFsc2U+IHsKK3N0cnVjdCBEYXRhVHlwZUZvckZvcm1hdDxG
b3JtYXQsIHRydWUsIGZhbHNlLCBmYWxzZT4gewogICAgIHR5cGVkZWYgZmxvYXQgVHlwZTsKIH07
CiAKIHRlbXBsYXRlPGludCBGb3JtYXQ+Ci1zdHJ1Y3QgRGF0YVR5cGVGb3JGb3JtYXQ8Rm9ybWF0
LCBmYWxzZSwgdHJ1ZT4geworc3RydWN0IERhdGFUeXBlRm9yRm9ybWF0PEZvcm1hdCwgZmFsc2Us
IHRydWUsIGZhbHNlPiB7CisgICAgdHlwZWRlZiB1aW50MTZfdCBUeXBlOworfTsKKwordGVtcGxh
dGU8aW50IEZvcm1hdD4KK3N0cnVjdCBEYXRhVHlwZUZvckZvcm1hdDxGb3JtYXQsIGZhbHNlLCBm
YWxzZSwgdHJ1ZT4gewogICAgIHR5cGVkZWYgdWludDE2X3QgVHlwZTsKIH07CiAKIHRlbXBsYXRl
PGludCBGb3JtYXQ+CiBzdHJ1Y3QgSW50ZXJtZWRpYXRlRm9ybWF0IHsKLSAgICBzdGF0aWMgY29u
c3QgaW50IFZhbHVlID0gSXNGbG9hdEZvcm1hdDxGb3JtYXQ+OjpWYWx1ZSA/IEdyYXBoaWNzQ29u
dGV4dDNEOjpEYXRhRm9ybWF0UkdCQTMyRiA6IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0
UkdCQTg7CisgICAgc3RhdGljIGNvbnN0IGludCBWYWx1ZSA9IChJc0Zsb2F0Rm9ybWF0PEZvcm1h
dD46OlZhbHVlIHx8IElzSGFsZkZsb2F0Rm9ybWF0PEZvcm1hdD46OlZhbHVlKSA/IEdyYXBoaWNz
Q29udGV4dDNEOjpEYXRhRm9ybWF0UkdCQTMyRiA6IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9y
bWF0UkdCQTg7CiB9OwogCiBBTFdBWVNfSU5MSU5FIHVuc2lnbmVkIFRleGVsQnl0ZXNGb3JGb3Jt
YXQoR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQgZm9ybWF0KQpAQCAtMTE1Miw2ICsxNDYx
LDggQEAgQUxXQVlTX0lOTElORSB1bnNpZ25lZCBUZXhlbEJ5dGVzRm9yRm9ybWF0KEdyYXBoaWNz
Q29udGV4dDNEOjpEYXRhRm9ybWF0IGZvcm1hdCkKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNE
OjpEYXRhRm9ybWF0UkdCQTU1NTE6CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZv
cm1hdFJHQkE0NDQ0OgogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0I1
NjU6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdEExNkY6CisgICAgY2Fz
ZSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFIxNkY6CiAgICAgICAgIHJldHVybiAyOwog
ICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0I4OgogICAgIGNhc2UgR3Jh
cGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRCR1I4OgpAQCAtMTE2Miw4ICsxNDczLDEyIEBAIEFM
V0FZU19JTkxJTkUgdW5zaWduZWQgVGV4ZWxCeXRlc0ZvckZvcm1hdChHcmFwaGljc0NvbnRleHQz
RDo6RGF0YUZvcm1hdCBmb3JtYXQpCiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZv
cm1hdEJHUkE4OgogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSMzJGOgog
ICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRBMzJGOgorICAgIGNhc2UgR3Jh
cGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSQTE2RjoKICAgICAgICAgcmV0dXJuIDQ7CisgICAg
Y2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQjE2RjoKKyAgICAgICAgcmV0dXJu
IDY7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJBMzJGOgorICAgIGNh
c2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JBMTZGOgogICAgICAgICByZXR1cm4g
ODsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCMzJGOgogICAgICAg
ICByZXR1cm4gMTI7CkBAIC0xMjUwLDE3ICsxNTY1LDIyIEBAIEFMV0FZU19JTkxJTkUgdm9pZCBG
b3JtYXRDb252ZXJ0ZXI6OmNvbnZlcnQoR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQgZHN0
Rm9yCiAKICAgICAgICAgc3dpdGNoIChkc3RGb3JtYXQpIHsKICAgICAgICAgICAgIEZPUk1BVENP
TlZFUlRFUl9DQVNFX0RTVEZPUk1BVChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFI4KQot
ICAgICAgICAgICAgRk9STUFUQ09OVkVSVEVSX0NBU0VfRFNURk9STUFUKEdyYXBoaWNzQ29udGV4
dDNEOjpEYXRhRm9ybWF0QTgpCisgICAgICAgICAgICBGT1JNQVRDT05WRVJURVJfQ0FTRV9EU1RG
T1JNQVQoR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSMTZGKQogICAgICAgICAgICAgRk9S
TUFUQ09OVkVSVEVSX0NBU0VfRFNURk9STUFUKEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0
UjMyRikKKyAgICAgICAgICAgIEZPUk1BVENPTlZFUlRFUl9DQVNFX0RTVEZPUk1BVChHcmFwaGlj
c0NvbnRleHQzRDo6RGF0YUZvcm1hdEE4KQorICAgICAgICAgICAgRk9STUFUQ09OVkVSVEVSX0NB
U0VfRFNURk9STUFUKEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0QTE2RikKICAgICAgICAg
ICAgIEZPUk1BVENPTlZFUlRFUl9DQVNFX0RTVEZPUk1BVChHcmFwaGljc0NvbnRleHQzRDo6RGF0
YUZvcm1hdEEzMkYpCiAgICAgICAgICAgICBGT1JNQVRDT05WRVJURVJfQ0FTRV9EU1RGT1JNQVQo
R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSQTgpCisgICAgICAgICAgICBGT1JNQVRDT05W
RVJURVJfQ0FTRV9EU1RGT1JNQVQoR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSQTE2RikK
ICAgICAgICAgICAgIEZPUk1BVENPTlZFUlRFUl9DQVNFX0RTVEZPUk1BVChHcmFwaGljc0NvbnRl
eHQzRDo6RGF0YUZvcm1hdFJBMzJGKQogICAgICAgICAgICAgRk9STUFUQ09OVkVSVEVSX0NBU0Vf
RFNURk9STUFUKEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCOCkKICAgICAgICAgICAg
IEZPUk1BVENPTlZFUlRFUl9DQVNFX0RTVEZPUk1BVChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZv
cm1hdFJHQjU2NSkKKyAgICAgICAgICAgIEZPUk1BVENPTlZFUlRFUl9DQVNFX0RTVEZPUk1BVChH
cmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQjE2RikKICAgICAgICAgICAgIEZPUk1BVENP
TlZFUlRFUl9DQVNFX0RTVEZPUk1BVChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQjMy
RikKICAgICAgICAgICAgIEZPUk1BVENPTlZFUlRFUl9DQVNFX0RTVEZPUk1BVChHcmFwaGljc0Nv
bnRleHQzRDo6RGF0YUZvcm1hdFJHQkE4KQogICAgICAgICAgICAgRk9STUFUQ09OVkVSVEVSX0NB
U0VfRFNURk9STUFUKEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCQTU1NTEpCiAgICAg
ICAgICAgICBGT1JNQVRDT05WRVJURVJfQ0FTRV9EU1RGT1JNQVQoR3JhcGhpY3NDb250ZXh0M0Q6
OkRhdGFGb3JtYXRSR0JBNDQ0NCkKKyAgICAgICAgICAgIEZPUk1BVENPTlZFUlRFUl9DQVNFX0RT
VEZPUk1BVChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQkExNkYpCiAgICAgICAgICAg
ICBGT1JNQVRDT05WRVJURVJfQ0FTRV9EU1RGT1JNQVQoR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFG
b3JtYXRSR0JBMzJGKQogICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7CkBAIC0xMzIyLDcgKzE2NDIsNyBAQCBBTFdBWVNfSU5MSU5FIHZvaWQgRm9ybWF0
Q29udmVydGVyOjpjb252ZXJ0KCkKICAgICB0eXBlZGVmIHR5cGVuYW1lIERhdGFUeXBlRm9yRm9y
bWF0PEludGVybWVkaWF0ZVNyY0Zvcm1hdD46OlR5cGUgSW50ZXJtZWRpYXRlU3JjVHlwZTsKICAg
ICBjb25zdCBwdHJkaWZmX3Qgc3JjU3RyaWRlSW5FbGVtZW50cyA9IG1fc3JjU3RyaWRlIC8gc2l6
ZW9mKFNyY1R5cGUpOwogICAgIGNvbnN0IHB0cmRpZmZfdCBkc3RTdHJpZGVJbkVsZW1lbnRzID0g
bV9kc3RTdHJpZGUgLyBzaXplb2YoRHN0VHlwZSk7Ci0gICAgY29uc3QgYm9vbCB0cml2aWFsVW5w
YWNrID0gKFNyY0Zvcm1hdCA9PSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQkE4ICYm
ICFJc0Zsb2F0Rm9ybWF0PERzdEZvcm1hdD46OlZhbHVlKSB8fCBTcmNGb3JtYXQgPT0gR3JhcGhp
Y3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JBMzJGOworICAgIGNvbnN0IGJvb2wgdHJpdmlhbFVu
cGFjayA9IChTcmNGb3JtYXQgPT0gR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JBOCAm
JiAhSXNGbG9hdEZvcm1hdDxEc3RGb3JtYXQ+OjpWYWx1ZSAmJiAhSXNIYWxmRmxvYXRGb3JtYXQ8
RHN0Rm9ybWF0Pjo6VmFsdWUpIHx8IFNyY0Zvcm1hdCA9PSBHcmFwaGljc0NvbnRleHQzRDo6RGF0
YUZvcm1hdFJHQkEzMkY7CiAgICAgY29uc3QgYm9vbCB0cml2aWFsUGFjayA9IChEc3RGb3JtYXQg
PT0gR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JBOCB8fCBEc3RGb3JtYXQgPT0gR3Jh
cGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JBMzJGKSAmJiBhbHBoYU9wID09IEdyYXBoaWNz
Q29udGV4dDNEOjpBbHBoYURvTm90aGluZyAmJiBtX2RzdFN0cmlkZSA+IDA7CiAgICAgQVNTRVJU
KCF0cml2aWFsVW5wYWNrIHx8ICF0cml2aWFsUGFjayk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRC5oCmluZGV4IGYxNjYxZTk3
ZTMyNTIyZGM4MjRmZTI1ZTQzYzdkMzcyNGQ2YmRmYTQuLjJlN2QzNjhhOTk1ZDY1NjUwYzljNTY5
ZWI0ZTgyMTllZTJhZmUzY2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0QuaApAQCAtNTYyLDEwICs1NjIsMTIgQEAgcHVibGlj
OgogICAgICAgICBEYXRhRm9ybWF0UkdCQTggPSAwLAogICAgICAgICBEYXRhRm9ybWF0UkdCQTE2
TGl0dGxlLAogICAgICAgICBEYXRhRm9ybWF0UkdCQTE2QmlnLAorICAgICAgICBEYXRhRm9ybWF0
UkdCQTE2RiwKICAgICAgICAgRGF0YUZvcm1hdFJHQkEzMkYsCiAgICAgICAgIERhdGFGb3JtYXRS
R0I4LAogICAgICAgICBEYXRhRm9ybWF0UkdCMTZMaXR0bGUsCiAgICAgICAgIERhdGFGb3JtYXRS
R0IxNkJpZywKKyAgICAgICAgRGF0YUZvcm1hdFJHQjE2RiwKICAgICAgICAgRGF0YUZvcm1hdFJH
QjMyRiwKICAgICAgICAgRGF0YUZvcm1hdEJHUjgsCiAgICAgICAgIERhdGFGb3JtYXRCR1JBOCwK
QEAgLTU4MSwxMCArNTgzLDEyIEBAIHB1YmxpYzoKICAgICAgICAgRGF0YUZvcm1hdFI4LAogICAg
ICAgICBEYXRhRm9ybWF0UjE2TGl0dGxlLAogICAgICAgICBEYXRhRm9ybWF0UjE2QmlnLAorICAg
ICAgICBEYXRhRm9ybWF0UjE2RiwKICAgICAgICAgRGF0YUZvcm1hdFIzMkYsCiAgICAgICAgIERh
dGFGb3JtYXRSQTgsCiAgICAgICAgIERhdGFGb3JtYXRSQTE2TGl0dGxlLAogICAgICAgICBEYXRh
Rm9ybWF0UkExNkJpZywKKyAgICAgICAgRGF0YUZvcm1hdFJBMTZGLAogICAgICAgICBEYXRhRm9y
bWF0UkEzMkYsCiAgICAgICAgIERhdGFGb3JtYXRBUjgsCiAgICAgICAgIERhdGFGb3JtYXRBUjE2
TGl0dGxlLApAQCAtNTkyLDYgKzU5Niw3IEBAIHB1YmxpYzoKICAgICAgICAgRGF0YUZvcm1hdEE4
LAogICAgICAgICBEYXRhRm9ybWF0QTE2TGl0dGxlLAogICAgICAgICBEYXRhRm9ybWF0QTE2Qmln
LAorICAgICAgICBEYXRhRm9ybWF0QTE2RiwKICAgICAgICAgRGF0YUZvcm1hdEEzMkYsCiAgICAg
ICAgIERhdGFGb3JtYXROdW1Gb3JtYXRzCiAgICAgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHQzRE9wZW5HTENvbW1v
bi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3ND
b250ZXh0M0RPcGVuR0xDb21tb24uY3BwCmluZGV4IDhmN2Q3Zjg0ZWU0ZmFiZGM5ZTlhNmU3MDli
ZGU4ZGI3ZmZiYzI1YjUuLmYyZjcwYmM2M2MyMjYyNDU0OTI0YjUzMGIxYjA3ZTRlZGUxY2I3YzYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFw
aGljc0NvbnRleHQzRE9wZW5HTENvbW1vbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dDNET3BlbkdMQ29tbW9uLmNwcApAQCAt
MTM1Nyw2ICsxMzU3LDkgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6dGV4U3ViSW1hZ2UyRChH
QzNEZW51bSB0YXJnZXQsIEdDM0RpbnQgbGV2ZWwsIEdDM0RpbnQgeG8KIHsKICAgICBtYWtlQ29u
dGV4dEN1cnJlbnQoKTsKIAorICAgIGlmICh0eXBlID09IEhBTEZfRkxPQVRfT0VTKQorICAgICAg
ICB0eXBlID0gR0xfSEFMRl9GTE9BVF9BUkI7CisKICAgICAvLyBGSVhNRTogd2Ugd2lsbCBuZWVk
IHRvIGRlYWwgd2l0aCBQaXhlbFN0b3JlIHBhcmFtcyB3aGVuIGRlYWxpbmcgd2l0aCBpbWFnZSBi
dWZmZXJzIHRoYXQgZGlmZmVyIGZyb20gdGhlIHN1YmltYWdlIHNpemUuCiAgICAgOjpnbFRleFN1
YkltYWdlMkQodGFyZ2V0LCBsZXZlbCwgeG9mZiwgeW9mZiwgd2lkdGgsIGhlaWdodCwgZm9ybWF0
LCB0eXBlLCBwaXhlbHMpOwogfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGRhZTBiZmNjZmQ2N2Q5NzlkNWJmM2UxYTIwOWY1
ZTljMGJjOGU0YjEuLjk0MDQzOWFiYjk5N2M1OGIxMDljOWFmZjI3YTlhNWQ1ODIzM2UwYmIgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwyMyBAQAorMjAxMy0xMi0wMyAgRGVhbiBKYWNrc29uICA8ZGlub0BhcHBs
ZS5jb20+CisKKyAgICAgICAgW1dlYkdMXSBTdXBwb3J0IGZvciB0ZXhJbWFnZTJEL3RleFN1Yklt
YWdlMkQgb2YgdHlwZSBIQUxGX0ZMT0FUX09FUworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEwOTM2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgTmV3IHRlc3RzIGZvciBoYWxmLWZsb2F0IHRleHR1cmVzLgor
CisgICAgICAgICogZmFzdC9jYW52YXMvd2ViZ2wvb2VzLXRleHR1cmUtaGFsZi1mbG9hdC1leHBl
Y3RlZC50eHQ6CisgICAgICAgICogZmFzdC9jYW52YXMvd2ViZ2wvb2VzLXRleHR1cmUtaGFsZi1m
bG9hdC1ub3Qtc3VwcG9ydGVkLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0
L2NhbnZhcy93ZWJnbC9vZXMtdGV4dHVyZS1oYWxmLWZsb2F0LW5vdC1zdXBwb3J0ZWQuaHRtbDog
UmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L2NhbnZhcy93ZWJnbC9vZXMtdGV4dHVyZS1oYWxmLWZs
b2F0LXdpdGgtY2FudmFzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9jYW52
YXMvd2ViZ2wvb2VzLXRleHR1cmUtaGFsZi1mbG9hdC13aXRoLWNhbnZhcy5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBmYXN0L2NhbnZhcy93ZWJnbC9vZXMtdGV4dHVyZS1oYWxmLWZsb2F0LXdpdGgt
aW1hZ2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2NhbnZhcy93ZWJnbC9v
ZXMtdGV4dHVyZS1oYWxmLWZsb2F0LXdpdGgtaW1hZ2UuaHRtbDogQWRkZWQuCisgICAgICAgICog
ZmFzdC9jYW52YXMvd2ViZ2wvb2VzLXRleHR1cmUtaGFsZi1mbG9hdC13aXRoLXZpZGVvLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9jYW52YXMvd2ViZ2wvb2VzLXRleHR1cmUt
aGFsZi1mbG9hdC13aXRoLXZpZGVvLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY2FudmFz
L3dlYmdsL29lcy10ZXh0dXJlLWhhbGYtZmxvYXQuaHRtbDoKKwogMjAxMy0xMi0wMyAgU2FtdWVs
IFdoaXRlICA8c2FtdWVsX3doaXRlQGFwcGxlLmNvbT4KIAogICAgICAgICBBWFByZXNzIGV2ZW50
IGNvb3JkaW5hdGVzIGFyZSBhbHdheXMgc2VudCBhcyAoMCwgMCkKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL29lcy10ZXh0dXJlLWhhbGYtZmxvYXQtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvb2VzLXRleHR1cmUtaGFsZi1mbG9h
dC1leHBlY3RlZC50eHQKaW5kZXggYmZjOTY1ZmQ4NDY1ZWJiYTM5ZGRkM2JjYTk2MjM3MDY2MGUx
NjI1NC4uN2VmNWIxMGE2Y2E3MDAzNmNkZWY4MDk2MjA3ZTAwYWMzODM5NDcxOCAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvb2VzLXRleHR1cmUtaGFsZi1mbG9hdC1l
eHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvb2VzLXRleHR1
cmUtaGFsZi1mbG9hdC1leHBlY3RlZC50eHQKQEAgLTEsMyArMSwxOSBAQAorQ09OU09MRSBNRVNT
QUdFOiBXZWJHTDogSU5WQUxJRF9FTlVNOiB0ZXhJbWFnZTJEOiBpbnZhbGlkIHRleHR1cmUgdHlw
ZQorQ09OU09MRSBNRVNTQUdFOiBXZWJHTDogSU5WQUxJRF9PUEVSQVRJT046IHRleEltYWdlMkQ6
IHR5cGUgSEFMRl9GTE9BVF9PRVMgYnV0IEFycmF5QnVmZmVyVmlldyBpcyBub3QgTlVMTAorQ09O
U09MRSBNRVNTQUdFOiBXZWJHTDogSU5WQUxJRF9PUEVSQVRJT046IHRleEltYWdlMkQ6IHR5cGUg
SEFMRl9GTE9BVF9PRVMgYnV0IEFycmF5QnVmZmVyVmlldyBpcyBub3QgTlVMTAorQ09OU09MRSBN
RVNTQUdFOiBXZWJHTDogSU5WQUxJRF9PUEVSQVRJT046IHRleEltYWdlMkQ6IHR5cGUgSEFMRl9G
TE9BVF9PRVMgYnV0IEFycmF5QnVmZmVyVmlldyBpcyBub3QgTlVMTAorQ09OU09MRSBNRVNTQUdF
OiBXZWJHTDogSU5WQUxJRF9PUEVSQVRJT046IHRleEltYWdlMkQ6IHR5cGUgSEFMRl9GTE9BVF9P
RVMgYnV0IEFycmF5QnVmZmVyVmlldyBpcyBub3QgTlVMTAorQ09OU09MRSBNRVNTQUdFOiBXZWJH
TDogSU5WQUxJRF9PUEVSQVRJT046IHRleEltYWdlMkQ6IHR5cGUgSEFMRl9GTE9BVF9PRVMgYnV0
IEFycmF5QnVmZmVyVmlldyBpcyBub3QgTlVMTAorQ09OU09MRSBNRVNTQUdFOiBXZWJHTDogSU5W
QUxJRF9PUEVSQVRJT046IHRleEltYWdlMkQ6IHR5cGUgSEFMRl9GTE9BVF9PRVMgYnV0IEFycmF5
QnVmZmVyVmlldyBpcyBub3QgTlVMTAorQ09OU09MRSBNRVNTQUdFOiBXZWJHTDogSU5WQUxJRF9P
UEVSQVRJT046IHRleEltYWdlMkQ6IHR5cGUgSEFMRl9GTE9BVF9PRVMgYnV0IEFycmF5QnVmZmVy
VmlldyBpcyBub3QgTlVMTAorQ09OU09MRSBNRVNTQUdFOiBXZWJHTDogSU5WQUxJRF9PUEVSQVRJ
T046IHRleEltYWdlMkQ6IHR5cGUgSEFMRl9GTE9BVF9PRVMgYnV0IEFycmF5QnVmZmVyVmlldyBp
cyBub3QgTlVMTAorQ09OU09MRSBNRVNTQUdFOiBXZWJHTDogSU5WQUxJRF9PUEVSQVRJT046IHRl
eEltYWdlMkQ6IHR5cGUgSEFMRl9GTE9BVF9PRVMgYnV0IEFycmF5QnVmZmVyVmlldyBpcyBub3Qg
TlVMTAorQ09OU09MRSBNRVNTQUdFOiBXZWJHTDogSU5WQUxJRF9PUEVSQVRJT046IHRleEltYWdl
MkQ6IHR5cGUgSEFMRl9GTE9BVF9PRVMgYnV0IEFycmF5QnVmZmVyVmlldyBpcyBub3QgTlVMTAor
Q09OU09MRSBNRVNTQUdFOiBXZWJHTDogSU5WQUxJRF9PUEVSQVRJT046IHRleEltYWdlMkQ6IHR5
cGUgSEFMRl9GTE9BVF9PRVMgYnV0IEFycmF5QnVmZmVyVmlldyBpcyBub3QgTlVMTAorQ09OU09M
RSBNRVNTQUdFOiBXZWJHTDogSU5WQUxJRF9PUEVSQVRJT046IHRleEltYWdlMkQ6IHR5cGUgSEFM
Rl9GTE9BVF9PRVMgYnV0IEFycmF5QnVmZmVyVmlldyBpcyBub3QgTlVMTAorQ09OU09MRSBNRVNT
QUdFOiBXZWJHTDogSU5WQUxJRF9PUEVSQVRJT046IHRleEltYWdlMkQ6IHR5cGUgSEFMRl9GTE9B
VF9PRVMgYnV0IEFycmF5QnVmZmVyVmlldyBpcyBub3QgTlVMTAorQ09OU09MRSBNRVNTQUdFOiBX
ZWJHTDogSU5WQUxJRF9PUEVSQVRJT046IHRleEltYWdlMkQ6IHR5cGUgSEFMRl9GTE9BVF9PRVMg
YnV0IEFycmF5QnVmZmVyVmlldyBpcyBub3QgTlVMTAorQ09OU09MRSBNRVNTQUdFOiBXZWJHTDog
SU5WQUxJRF9PUEVSQVRJT046IHRleEltYWdlMkQ6IHR5cGUgSEFMRl9GTE9BVF9PRVMgYnV0IEFy
cmF5QnVmZmVyVmlldyBpcyBub3QgTlVMTAogVGhpcyB0ZXN0IHZlcmlmaWVzIHRoZSBmdW5jdGlv
bmFsaXR5IG9mIE9FU190ZXh0dXJlX2hhbGZfZmxvYXQgd2l0aCBudWxsL25vbi1udWxsIEFycmF5
QnVmZmVyVmlldwogCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1Mi
IG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCkBAIC02LDcgKzIyLDcgQEAg
T24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9s
bG93ZWQgYnkgIlRFU1QgQ09NUExFVEUKIFBBU1MgV2ViR0wgY29udGV4dCBleGlzdHMKIFRlc3Rp
bmcgdGV4dHVyZSBjcmVhdGlvbiB3aXRoIGV4dGVuc2lvbiBkaXNhYmxlZCwgZm9ybWF0IFJHQkEs
IGFuZCBkYXRhIG51bGwuIEV4cGVjdCBGYWlsdXJlCiBQQVNTIGdldEVycm9yIHdhcyBleHBlY3Rl
ZCB2YWx1ZTogTk9fRVJST1IgOiB0ZXh0dXJlIHBhcmFtZXRlciBzZXR1cCBzaG91bGQgc3VjY2Vl
ZAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfRU5VTSA6IEhhbGYg
ZmxvYXRpbmcgcG9pbnQgdGV4dHVyZSBtdXN0IGJlIGRpYWxsb3dlZCBpZiBPRVNfdGV4dHVyZV9o
YWxmX2Zsb2F0IGlzbid0IGVuYWJsZWQKK1BBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVl
OiBJTlZBTElEX0VOVU0gOiBIYWxmIGZsb2F0aW5nIHBvaW50IHRleHR1cmUgbXVzdCBiZSBkaXNh
bGxvd2VkIGlmIE9FU190ZXh0dXJlX2hhbGZfZmxvYXQgaXNuJ3QgZW5hYmxlZAogUEFTUyBTdWNj
ZXNzZnVsbHkgZW5hYmxlZCBPRVNfdGV4dHVyZV9oYWxmX2Zsb2F0IGV4dGVuc2lvbgogVGVzdGlu
ZyB0ZXh0dXJlIGNyZWF0aW9uIHdpdGggZXh0ZW5zaW9uIGVuYWJsZWQsIGZvcm1hdCBSR0JBLCBh
bmQgZGF0YSBudWxsLiBFeHBlY3QgU3VjY2VzcwogUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQg
dmFsdWU6IE5PX0VSUk9SIDogdGV4dHVyZSBwYXJhbWV0ZXIgc2V0dXAgc2hvdWxkIHN1Y2NlZWQK
QEAgLTI1LDQ5ICs0MSw0OSBAQCBQQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9f
RVJST1IgOiB0ZXh0dXJlIHBhcmFtZXRlciBzZXR1cCBzaG91bGQgc3VjYwogUEFTUyBnZXRFcnJv
ciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogSGFsZiBmbG9hdGluZyBwb2ludCB0ZXh0
dXJlIGFsbG9jYXRpb24gc2hvdWxkIHN1Y2NlZWQgaWYgT0VTX3RleHR1cmVfaGFsZl9mbG9hdCBp
cyBlbmFibGVkCiBUZXN0aW5nIHRleHR1cmUgY3JlYXRpb24gd2l0aCBleHRlbnNpb24gZW5hYmxl
ZCwgZm9ybWF0IFJHQkEsIGFuZCBkYXRhIG5vbi1udWxsLiBFeHBlY3QgRmFpbHVyZQogUEFTUyBn
ZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogdGV4dHVyZSBwYXJhbWV0ZXIg
c2V0dXAgc2hvdWxkIHN1Y2NlZWQKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJ
TlZBTElEX09QRVJBVElPTiA6IEhhbGYgZmxvYXRpbmcgcG9pbnQgdGV4dHVyZSBhbGxvY2F0aW9u
IG11c3QgYmUgZGlhbGxvd2VkIHdoZW4gQXJyYXlCdWZmZXJWaWV3IGlzIG5vdC1udWxsCitQQVNT
IGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9PUEVSQVRJT04gOiBIYWxmIGZs
b2F0aW5nIHBvaW50IHRleHR1cmUgYWxsb2NhdGlvbiBtdXN0IGJlIGRpc2FsbG93ZWQgd2hlbiBB
cnJheUJ1ZmZlclZpZXcgaXMgbm90LW51bGwKIFRlc3RpbmcgdGV4dHVyZSBjcmVhdGlvbiB3aXRo
IGV4dGVuc2lvbiBlbmFibGVkLCBmb3JtYXQgUkdCQSwgYW5kIGRhdGEgbm9uLW51bGwuIEV4cGVj
dCBGYWlsdXJlCiBQQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiB0
ZXh0dXJlIHBhcmFtZXRlciBzZXR1cCBzaG91bGQgc3VjY2VlZAotUEFTUyBnZXRFcnJvciB3YXMg
ZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfT1BFUkFUSU9OIDogSGFsZiBmbG9hdGluZyBwb2ludCB0
ZXh0dXJlIGFsbG9jYXRpb24gbXVzdCBiZSBkaWFsbG93ZWQgd2hlbiBBcnJheUJ1ZmZlclZpZXcg
aXMgbm90LW51bGwKK1BBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX09Q
RVJBVElPTiA6IEhhbGYgZmxvYXRpbmcgcG9pbnQgdGV4dHVyZSBhbGxvY2F0aW9uIG11c3QgYmUg
ZGlzYWxsb3dlZCB3aGVuIEFycmF5QnVmZmVyVmlldyBpcyBub3QtbnVsbAogVGVzdGluZyB0ZXh0
dXJlIGNyZWF0aW9uIHdpdGggZXh0ZW5zaW9uIGVuYWJsZWQsIGZvcm1hdCBSR0JBLCBhbmQgZGF0
YSBub24tbnVsbC4gRXhwZWN0IEZhaWx1cmUKIFBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZh
bHVlOiBOT19FUlJPUiA6IHRleHR1cmUgcGFyYW1ldGVyIHNldHVwIHNob3VsZCBzdWNjZWVkCi1Q
QVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9PUEVSQVRJT04gOiBIYWxm
IGZsb2F0aW5nIHBvaW50IHRleHR1cmUgYWxsb2NhdGlvbiBtdXN0IGJlIGRpYWxsb3dlZCB3aGVu
IEFycmF5QnVmZmVyVmlldyBpcyBub3QtbnVsbAorUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQg
dmFsdWU6IElOVkFMSURfT1BFUkFUSU9OIDogSGFsZiBmbG9hdGluZyBwb2ludCB0ZXh0dXJlIGFs
bG9jYXRpb24gbXVzdCBiZSBkaXNhbGxvd2VkIHdoZW4gQXJyYXlCdWZmZXJWaWV3IGlzIG5vdC1u
dWxsCiBUZXN0aW5nIHRleHR1cmUgY3JlYXRpb24gd2l0aCBleHRlbnNpb24gZW5hYmxlZCwgZm9y
bWF0IFJHQiwgYW5kIGRhdGEgbm9uLW51bGwuIEV4cGVjdCBGYWlsdXJlCiBQQVNTIGdldEVycm9y
IHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiB0ZXh0dXJlIHBhcmFtZXRlciBzZXR1cCBz
aG91bGQgc3VjY2VlZAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURf
T1BFUkFUSU9OIDogSGFsZiBmbG9hdGluZyBwb2ludCB0ZXh0dXJlIGFsbG9jYXRpb24gbXVzdCBi
ZSBkaWFsbG93ZWQgd2hlbiBBcnJheUJ1ZmZlclZpZXcgaXMgbm90LW51bGwKK1BBU1MgZ2V0RXJy
b3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX09QRVJBVElPTiA6IEhhbGYgZmxvYXRpbmcg
cG9pbnQgdGV4dHVyZSBhbGxvY2F0aW9uIG11c3QgYmUgZGlzYWxsb3dlZCB3aGVuIEFycmF5QnVm
ZmVyVmlldyBpcyBub3QtbnVsbAogVGVzdGluZyB0ZXh0dXJlIGNyZWF0aW9uIHdpdGggZXh0ZW5z
aW9uIGVuYWJsZWQsIGZvcm1hdCBSR0IsIGFuZCBkYXRhIG5vbi1udWxsLiBFeHBlY3QgRmFpbHVy
ZQogUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogdGV4dHVyZSBw
YXJhbWV0ZXIgc2V0dXAgc2hvdWxkIHN1Y2NlZWQKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVk
IHZhbHVlOiBJTlZBTElEX09QRVJBVElPTiA6IEhhbGYgZmxvYXRpbmcgcG9pbnQgdGV4dHVyZSBh
bGxvY2F0aW9uIG11c3QgYmUgZGlhbGxvd2VkIHdoZW4gQXJyYXlCdWZmZXJWaWV3IGlzIG5vdC1u
dWxsCitQQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9PUEVSQVRJT04g
OiBIYWxmIGZsb2F0aW5nIHBvaW50IHRleHR1cmUgYWxsb2NhdGlvbiBtdXN0IGJlIGRpc2FsbG93
ZWQgd2hlbiBBcnJheUJ1ZmZlclZpZXcgaXMgbm90LW51bGwKIFRlc3RpbmcgdGV4dHVyZSBjcmVh
dGlvbiB3aXRoIGV4dGVuc2lvbiBlbmFibGVkLCBmb3JtYXQgUkdCLCBhbmQgZGF0YSBub24tbnVs
bC4gRXhwZWN0IEZhaWx1cmUKIFBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19F
UlJPUiA6IHRleHR1cmUgcGFyYW1ldGVyIHNldHVwIHNob3VsZCBzdWNjZWVkCi1QQVNTIGdldEVy
cm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9PUEVSQVRJT04gOiBIYWxmIGZsb2F0aW5n
IHBvaW50IHRleHR1cmUgYWxsb2NhdGlvbiBtdXN0IGJlIGRpYWxsb3dlZCB3aGVuIEFycmF5QnVm
ZmVyVmlldyBpcyBub3QtbnVsbAorUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElO
VkFMSURfT1BFUkFUSU9OIDogSGFsZiBmbG9hdGluZyBwb2ludCB0ZXh0dXJlIGFsbG9jYXRpb24g
bXVzdCBiZSBkaXNhbGxvd2VkIHdoZW4gQXJyYXlCdWZmZXJWaWV3IGlzIG5vdC1udWxsCiBUZXN0
aW5nIHRleHR1cmUgY3JlYXRpb24gd2l0aCBleHRlbnNpb24gZW5hYmxlZCwgZm9ybWF0IExVTUlO
QU5DRSwgYW5kIGRhdGEgbm9uLW51bGwuIEV4cGVjdCBGYWlsdXJlCiBQQVNTIGdldEVycm9yIHdh
cyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiB0ZXh0dXJlIHBhcmFtZXRlciBzZXR1cCBzaG91
bGQgc3VjY2VlZAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfT1BF
UkFUSU9OIDogSGFsZiBmbG9hdGluZyBwb2ludCB0ZXh0dXJlIGFsbG9jYXRpb24gbXVzdCBiZSBk
aWFsbG93ZWQgd2hlbiBBcnJheUJ1ZmZlclZpZXcgaXMgbm90LW51bGwKK1BBU1MgZ2V0RXJyb3Ig
d2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX09QRVJBVElPTiA6IEhhbGYgZmxvYXRpbmcgcG9p
bnQgdGV4dHVyZSBhbGxvY2F0aW9uIG11c3QgYmUgZGlzYWxsb3dlZCB3aGVuIEFycmF5QnVmZmVy
VmlldyBpcyBub3QtbnVsbAogVGVzdGluZyB0ZXh0dXJlIGNyZWF0aW9uIHdpdGggZXh0ZW5zaW9u
IGVuYWJsZWQsIGZvcm1hdCBMVU1JTkFOQ0UsIGFuZCBkYXRhIG5vbi1udWxsLiBFeHBlY3QgRmFp
bHVyZQogUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogdGV4dHVy
ZSBwYXJhbWV0ZXIgc2V0dXAgc2hvdWxkIHN1Y2NlZWQKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVj
dGVkIHZhbHVlOiBJTlZBTElEX09QRVJBVElPTiA6IEhhbGYgZmxvYXRpbmcgcG9pbnQgdGV4dHVy
ZSBhbGxvY2F0aW9uIG11c3QgYmUgZGlhbGxvd2VkIHdoZW4gQXJyYXlCdWZmZXJWaWV3IGlzIG5v
dC1udWxsCitQQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9PUEVSQVRJ
T04gOiBIYWxmIGZsb2F0aW5nIHBvaW50IHRleHR1cmUgYWxsb2NhdGlvbiBtdXN0IGJlIGRpc2Fs
bG93ZWQgd2hlbiBBcnJheUJ1ZmZlclZpZXcgaXMgbm90LW51bGwKIFRlc3RpbmcgdGV4dHVyZSBj
cmVhdGlvbiB3aXRoIGV4dGVuc2lvbiBlbmFibGVkLCBmb3JtYXQgTFVNSU5BTkNFLCBhbmQgZGF0
YSBub24tbnVsbC4gRXhwZWN0IEZhaWx1cmUKIFBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZh
bHVlOiBOT19FUlJPUiA6IHRleHR1cmUgcGFyYW1ldGVyIHNldHVwIHNob3VsZCBzdWNjZWVkCi1Q
QVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9PUEVSQVRJT04gOiBIYWxm
IGZsb2F0aW5nIHBvaW50IHRleHR1cmUgYWxsb2NhdGlvbiBtdXN0IGJlIGRpYWxsb3dlZCB3aGVu
IEFycmF5QnVmZmVyVmlldyBpcyBub3QtbnVsbAorUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQg
dmFsdWU6IElOVkFMSURfT1BFUkFUSU9OIDogSGFsZiBmbG9hdGluZyBwb2ludCB0ZXh0dXJlIGFs
bG9jYXRpb24gbXVzdCBiZSBkaXNhbGxvd2VkIHdoZW4gQXJyYXlCdWZmZXJWaWV3IGlzIG5vdC1u
dWxsCiBUZXN0aW5nIHRleHR1cmUgY3JlYXRpb24gd2l0aCBleHRlbnNpb24gZW5hYmxlZCwgZm9y
bWF0IEFMUEhBLCBhbmQgZGF0YSBub24tbnVsbC4gRXhwZWN0IEZhaWx1cmUKIFBBU1MgZ2V0RXJy
b3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IHRleHR1cmUgcGFyYW1ldGVyIHNldHVw
IHNob3VsZCBzdWNjZWVkCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJ
RF9PUEVSQVRJT04gOiBIYWxmIGZsb2F0aW5nIHBvaW50IHRleHR1cmUgYWxsb2NhdGlvbiBtdXN0
IGJlIGRpYWxsb3dlZCB3aGVuIEFycmF5QnVmZmVyVmlldyBpcyBub3QtbnVsbAorUEFTUyBnZXRF
cnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfT1BFUkFUSU9OIDogSGFsZiBmbG9hdGlu
ZyBwb2ludCB0ZXh0dXJlIGFsbG9jYXRpb24gbXVzdCBiZSBkaXNhbGxvd2VkIHdoZW4gQXJyYXlC
dWZmZXJWaWV3IGlzIG5vdC1udWxsCiBUZXN0aW5nIHRleHR1cmUgY3JlYXRpb24gd2l0aCBleHRl
bnNpb24gZW5hYmxlZCwgZm9ybWF0IEFMUEhBLCBhbmQgZGF0YSBub24tbnVsbC4gRXhwZWN0IEZh
aWx1cmUKIFBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IHRleHR1
cmUgcGFyYW1ldGVyIHNldHVwIHNob3VsZCBzdWNjZWVkCi1QQVNTIGdldEVycm9yIHdhcyBleHBl
Y3RlZCB2YWx1ZTogSU5WQUxJRF9PUEVSQVRJT04gOiBIYWxmIGZsb2F0aW5nIHBvaW50IHRleHR1
cmUgYWxsb2NhdGlvbiBtdXN0IGJlIGRpYWxsb3dlZCB3aGVuIEFycmF5QnVmZmVyVmlldyBpcyBu
b3QtbnVsbAorUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfT1BFUkFU
SU9OIDogSGFsZiBmbG9hdGluZyBwb2ludCB0ZXh0dXJlIGFsbG9jYXRpb24gbXVzdCBiZSBkaXNh
bGxvd2VkIHdoZW4gQXJyYXlCdWZmZXJWaWV3IGlzIG5vdC1udWxsCiBUZXN0aW5nIHRleHR1cmUg
Y3JlYXRpb24gd2l0aCBleHRlbnNpb24gZW5hYmxlZCwgZm9ybWF0IEFMUEhBLCBhbmQgZGF0YSBu
b24tbnVsbC4gRXhwZWN0IEZhaWx1cmUKIFBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVl
OiBOT19FUlJPUiA6IHRleHR1cmUgcGFyYW1ldGVyIHNldHVwIHNob3VsZCBzdWNjZWVkCi1QQVNT
IGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9PUEVSQVRJT04gOiBIYWxmIGZs
b2F0aW5nIHBvaW50IHRleHR1cmUgYWxsb2NhdGlvbiBtdXN0IGJlIGRpYWxsb3dlZCB3aGVuIEFy
cmF5QnVmZmVyVmlldyBpcyBub3QtbnVsbAorUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFs
dWU6IElOVkFMSURfT1BFUkFUSU9OIDogSGFsZiBmbG9hdGluZyBwb2ludCB0ZXh0dXJlIGFsbG9j
YXRpb24gbXVzdCBiZSBkaXNhbGxvd2VkIHdoZW4gQXJyYXlCdWZmZXJWaWV3IGlzIG5vdC1udWxs
CiBUZXN0aW5nIHRleHR1cmUgY3JlYXRpb24gd2l0aCBleHRlbnNpb24gZW5hYmxlZCwgZm9ybWF0
IExVTUlOQU5DRV9BTFBIQSwgYW5kIGRhdGEgbm9uLW51bGwuIEV4cGVjdCBGYWlsdXJlCiBQQVNT
IGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiB0ZXh0dXJlIHBhcmFtZXRl
ciBzZXR1cCBzaG91bGQgc3VjY2VlZAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6
IElOVkFMSURfT1BFUkFUSU9OIDogSGFsZiBmbG9hdGluZyBwb2ludCB0ZXh0dXJlIGFsbG9jYXRp
b24gbXVzdCBiZSBkaWFsbG93ZWQgd2hlbiBBcnJheUJ1ZmZlclZpZXcgaXMgbm90LW51bGwKK1BB
U1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX09QRVJBVElPTiA6IEhhbGYg
ZmxvYXRpbmcgcG9pbnQgdGV4dHVyZSBhbGxvY2F0aW9uIG11c3QgYmUgZGlzYWxsb3dlZCB3aGVu
IEFycmF5QnVmZmVyVmlldyBpcyBub3QtbnVsbAogVGVzdGluZyB0ZXh0dXJlIGNyZWF0aW9uIHdp
dGggZXh0ZW5zaW9uIGVuYWJsZWQsIGZvcm1hdCBMVU1JTkFOQ0VfQUxQSEEsIGFuZCBkYXRhIG5v
bi1udWxsLiBFeHBlY3QgRmFpbHVyZQogUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6
IE5PX0VSUk9SIDogdGV4dHVyZSBwYXJhbWV0ZXIgc2V0dXAgc2hvdWxkIHN1Y2NlZWQKLVBBU1Mg
Z2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX09QRVJBVElPTiA6IEhhbGYgZmxv
YXRpbmcgcG9pbnQgdGV4dHVyZSBhbGxvY2F0aW9uIG11c3QgYmUgZGlhbGxvd2VkIHdoZW4gQXJy
YXlCdWZmZXJWaWV3IGlzIG5vdC1udWxsCitQQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1
ZTogSU5WQUxJRF9PUEVSQVRJT04gOiBIYWxmIGZsb2F0aW5nIHBvaW50IHRleHR1cmUgYWxsb2Nh
dGlvbiBtdXN0IGJlIGRpc2FsbG93ZWQgd2hlbiBBcnJheUJ1ZmZlclZpZXcgaXMgbm90LW51bGwK
IFRlc3RpbmcgdGV4dHVyZSBjcmVhdGlvbiB3aXRoIGV4dGVuc2lvbiBlbmFibGVkLCBmb3JtYXQg
TFVNSU5BTkNFX0FMUEhBLCBhbmQgZGF0YSBub24tbnVsbC4gRXhwZWN0IEZhaWx1cmUKIFBBU1Mg
Z2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IHRleHR1cmUgcGFyYW1ldGVy
IHNldHVwIHNob3VsZCBzdWNjZWVkCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTog
SU5WQUxJRF9PUEVSQVRJT04gOiBIYWxmIGZsb2F0aW5nIHBvaW50IHRleHR1cmUgYWxsb2NhdGlv
biBtdXN0IGJlIGRpYWxsb3dlZCB3aGVuIEFycmF5QnVmZmVyVmlldyBpcyBub3QtbnVsbAorUEFT
UyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfT1BFUkFUSU9OIDogSGFsZiBm
bG9hdGluZyBwb2ludCB0ZXh0dXJlIGFsbG9jYXRpb24gbXVzdCBiZSBkaXNhbGxvd2VkIHdoZW4g
QXJyYXlCdWZmZXJWaWV3IGlzIG5vdC1udWxsCiAKIFRlc3RpbmcgaGFsZiBmbG9hdGluZyBwb2lu
dCByZW5kZXIgdGFyZ2V0CiBQQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJS
T1IgOiB0ZXh0dXJlIHBhcmFtZXRlciBzZXR1cCBzaG91bGQgc3VjY2VlZApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvb2VzLXRleHR1cmUtaGFsZi1mbG9hdC1ub3Qt
c3VwcG9ydGVkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL29l
cy10ZXh0dXJlLWhhbGYtZmxvYXQtbm90LXN1cHBvcnRlZC1leHBlY3RlZC50eHQKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJmMWIzNTAyYThhYjgzMTgzOWJhYjg0ZWE3Mjc5MjU2Y2Q0
YWUyNzEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvb2VzLXRleHR1cmUtaGFsZi1mbG9hdC1ub3Qtc3Vw
cG9ydGVkLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDQwICswLDAgQEAKLVRlc3Rp
bmcgbm90IHlldCBzdXBwb3J0ZWQgdGV4dHVyZSB1cGxvYWRzCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3
aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENP
TVBMRVRFIi4KLQotCi0KLVBBU1MgV2ViR0wgY29udGV4dCBleGlzdHMKLVBBU1MgU3VjY2Vzc2Z1
bGx5IGVuYWJsZWQgT0VTX3RleHR1cmVfaGFsZl9mbG9hdCBleHRlbnNpb24KLQotVmVyaWZ5IHdo
ZXRoZXIgdXBsb2FkaW5nIEltYWdlRGF0YSB2aWEgdGV4SW1hZ2UyRC90ZXhTdWJJbWFnZTJEIGlz
IHN1cHBvcnRlZAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDog
dGV4dHVyZSBwYXJhbWV0ZXIgc2V0dXAgc2hvdWxkIHN1Y2NlZWQKLVBBU1MgZ2V0RXJyb3Igd2Fz
IGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX09QRVJBVElPTiA6IFVwbG9hZGluZyB0byBoYWxmIGZs
b2F0IHRleHR1cmUgaXMgbm90IHlldCBzdXBwb3J0ZWQKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVj
dGVkIHZhbHVlOiBOT19FUlJPUiA6IFVwbG9hZGluZyBudWxsIEFycmF5QnVmZmVyVmlldyB0byBo
YWxmIGZsb2F0IHRleHR1cmUgc2hvdWxkIHN1Y2NlZWQKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVj
dGVkIHZhbHVlOiBJTlZBTElEX09QRVJBVElPTiA6IFVwbG9hZGluZyB0byBoYWxmIGZsb2F0IHRl
eHR1cmUgdXNpbmcgdGV4U3ViSW1hZ2UyRCBpcyBub3Qgc3VwcG9ydGVkIHlldAotCi1WZXJpZnkg
d2hldGhlciB1cGxvYWRpbmcgSFRNTEltYWdlRWxlbWVudCB2aWEgdGV4SW1hZ2UyRC90ZXhTdWJJ
bWFnZTJEIGlzIHN1cHBvcnRlZAotCi1WZXJpZnkgd2hldGhlciB1cGxvYWRpbmcgSFRNTENhbnZh
c0VsZW1lbnQgdmlhIHRleEltYWdlMkQvdGV4U3ViSW1hZ2UyRCBpcyBzdXBwb3J0ZWQKLVBBU1Mg
Z2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IHRleHR1cmUgcGFyYW1ldGVy
IHNldHVwIHNob3VsZCBzdWNjZWVkCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTog
SU5WQUxJRF9PUEVSQVRJT04gOiBVcGxvYWRpbmcgdG8gaGFsZiBmbG9hdCB0ZXh0dXJlIGlzIG5v
dCB5ZXQgc3VwcG9ydGVkCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJS
T1IgOiBVcGxvYWRpbmcgbnVsbCBBcnJheUJ1ZmZlclZpZXcgdG8gaGFsZiBmbG9hdCB0ZXh0dXJl
IHNob3VsZCBzdWNjZWVkCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJ
RF9PUEVSQVRJT04gOiBVcGxvYWRpbmcgdG8gaGFsZiBmbG9hdCB0ZXh0dXJlIHVzaW5nIHRleFN1
YkltYWdlMkQgaXMgbm90IHN1cHBvcnRlZCB5ZXQKLQotVmVyaWZ5IHdoZXRoZXIgdXBsb2FkaW5n
IEhUTUxWaWRlb0VsZW1lbnQgdmlhIHRleEltYWdlMkQvdGV4U3ViSW1hZ2UyRCBpcyBzdXBwb3J0
ZWQKLQotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi1Q
QVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiB0ZXh0dXJlIHBhcmFt
ZXRlciBzZXR1cCBzaG91bGQgc3VjY2VlZAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFs
dWU6IElOVkFMSURfT1BFUkFUSU9OIDogVXBsb2FkaW5nIHRvIGhhbGYgZmxvYXQgdGV4dHVyZSBp
cyBub3QgeWV0IHN1cHBvcnRlZAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5P
X0VSUk9SIDogVXBsb2FkaW5nIG51bGwgQXJyYXlCdWZmZXJWaWV3IHRvIGhhbGYgZmxvYXQgdGV4
dHVyZSBzaG91bGQgc3VjY2VlZAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElO
VkFMSURfT1BFUkFUSU9OIDogVXBsb2FkaW5nIHRvIGhhbGYgZmxvYXQgdGV4dHVyZSB1c2luZyB0
ZXhTdWJJbWFnZTJEIGlzIG5vdCBzdXBwb3J0ZWQgeWV0Ci1QQVNTIGdldEVycm9yIHdhcyBleHBl
Y3RlZCB2YWx1ZTogTk9fRVJST1IgOiB0ZXh0dXJlIHBhcmFtZXRlciBzZXR1cCBzaG91bGQgc3Vj
Y2VlZAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfT1BFUkFUSU9O
IDogVXBsb2FkaW5nIHRvIGhhbGYgZmxvYXQgdGV4dHVyZSBpcyBub3QgeWV0IHN1cHBvcnRlZAot
UEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogVXBsb2FkaW5nIG51
bGwgQXJyYXlCdWZmZXJWaWV3IHRvIGhhbGYgZmxvYXQgdGV4dHVyZSBzaG91bGQgc3VjY2VlZAot
UEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfT1BFUkFUSU9OIDogVXBs
b2FkaW5nIHRvIGhhbGYgZmxvYXQgdGV4dHVyZSB1c2luZyB0ZXhTdWJJbWFnZTJEIGlzIG5vdCBz
dXBwb3J0ZWQgeWV0Ci1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09N
UExFVEUKLSAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL29lcy10
ZXh0dXJlLWhhbGYtZmxvYXQtbm90LXN1cHBvcnRlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9j
YW52YXMvd2ViZ2wvb2VzLXRleHR1cmUtaGFsZi1mbG9hdC1ub3Qtc3VwcG9ydGVkLmh0bWwKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDEzMzViOWJhM2JjOWNlNDBhYzRjOGUwMjYyOTBl
ODM0MDM4ODU5YjcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvb2VzLXRleHR1cmUtaGFsZi1mbG9hdC1u
b3Qtc3VwcG9ydGVkLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxNjkgKzAsMCBAQAotPCFET0NU
WVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPG1ldGEgY2hhcnNldD0idXRmLTgiPgotPHRpdGxl
PldlYkdMIE9FU190ZXh0dXJlX2hhbGZfZmxvYXQgbm90IHlldCBpbXBsZW1lbnRlZCBDb25mb3Jt
YW5jZSBUZXN0czwvdGl0bGU+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL2Rlc2t0b3AtZ2wtY29u
c3RhbnRzLmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9
Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNy
Yz0icmVzb3VyY2VzL3dlYmdsLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InJlc291
cmNlcy93ZWJnbC10ZXN0LXV0aWxzLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPGNh
bnZhcyBpZD0idGV4Y2FudmFzIiB3aWR0aD0iMSIgaGVpZ2h0PSIyIj48L2NhbnZhcz4KLTxzY3Jp
cHQ+Ci1kZXNjcmlwdGlvbigiVGVzdGluZyBub3QgeWV0IHN1cHBvcnRlZCB0ZXh0dXJlIHVwbG9h
ZHMiKTsKLWRlYnVnKCIiKTsKLQotaWYgKHdpbmRvdy5pbml0Tm9uS2hyb25vc0ZyYW1ld29yaykg
ewotICAgIHdpbmRvdy5pbml0Tm9uS2hyb25vc0ZyYW1ld29yayh0cnVlKTsKLX0KLQotaWYgKHdp
bmRvdy5pbnRlcm5hbHMpCi0gICAgd2luZG93LmludGVybmFscy5zZXR0aW5ncy5zZXRXZWJHTEVy
cm9yc1RvQ29uc29sZUVuYWJsZWQoZmFsc2UpOwotCi12YXIgd3R1ID0gV2ViR0xUZXN0VXRpbHM7
Ci12YXIgY2FudmFzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNhbnZhcyIpOwotdmFyIGds
ID0gd3R1LmNyZWF0ZTNEQ29udGV4dChjYW52YXMpOwotdmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9
IGZhbHNlOwotCi1pZiAoIWdsKSB7Ci0gICAgdGVzdEZhaWxlZCgiV2ViR0wgY29udGV4dCBkb2Vz
IG5vdCBleGlzdHMiKTsKLX0gZWxzZSB7Ci0gICAgdGVzdFBhc3NlZCgiV2ViR0wgY29udGV4dCBl
eGlzdHMiKTsKLQotICAgIGlmKCFnbC5nZXRFeHRlbnNpb24oIk9FU190ZXh0dXJlX2hhbGZfZmxv
YXQiKSkgewotICAgICAgICB0ZXN0UGFzc2VkKCJObyBPRVNfdGV4dHVyZV9oYWxmX2Zsb2F0IHN1
cHBvcnQuIFRoaXMgaXMgbGVnYWwiKTsKLSAgICB9IGVsc2UgewotICAgICAgICB0ZXN0UGFzc2Vk
KCJTdWNjZXNzZnVsbHkgZW5hYmxlZCBPRVNfdGV4dHVyZV9oYWxmX2Zsb2F0IGV4dGVuc2lvbiIp
OwotICAgICAgICAKLSAgICAgICAgdmFyIGNhbnZhczJkID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoInRleGNhbnZhcyIpOwotICAgICAgICB2YXIgY29udGV4dDJkID0gY2FudmFzMmQuZ2V0Q29u
dGV4dCgiMmQiKTsKLQotICAgICAgICBydW5JbWFnZURhdGFVbnN1cHBvcnRlZFRlc3QoY2FudmFz
MmQsIGNvbnRleHQyZCk7Ci0gICAgICAgIHJ1bkhUTUxJbWFnZUVsZW1lbnRVbnN1cHBvcnRlZFRl
c3QoY2FudmFzMmQsIGNvbnRleHQyZCk7Ci0gICAgICAgIHJ1bkhUTUxDYW52YXNFbGVtZW50VW5z
dXBwb3J0ZWRUZXN0KGNhbnZhczJkLCBjb250ZXh0MmQpOwotICAgICAgICBydW5IVE1MVmlkZW9F
bGVtZW50VW5zdXBwb3J0ZWRUZXN0KGNhbnZhczJkLCBjb250ZXh0MmQpOwotICAgIH0KLX0KLQot
ZnVuY3Rpb24gYWxsb2NhdGVUZXh0dXJlKCkKLXsKLSAgICB2YXIgdGV4dHVyZSA9IGdsLmNyZWF0
ZVRleHR1cmUoKTsKLSAgICBnbC5iaW5kVGV4dHVyZShnbC5URVhUVVJFXzJELCB0ZXh0dXJlKTsK
LSAgICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfTUlOX0ZJTFRF
UiwgZ2wuTkVBUkVTVCk7Ci0gICAgZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5U
RVhUVVJFX01BR19GSUxURVIsIGdsLk5FQVJFU1QpOwotICAgIGdsLnRleFBhcmFtZXRlcmkoZ2wu
VEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9XUkFQX1MsIGdsLkNMQU1QX1RPX0VER0UpOwotICAgIGds
LnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9XUkFQX1QsIGdsLkNMQU1Q
X1RPX0VER0UpOwotICAgIGdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IsICJ0ZXh0dXJl
IHBhcmFtZXRlciBzZXR1cCBzaG91bGQgc3VjY2VlZCIpOwotICAgIHJldHVybiB0ZXh0dXJlOwot
fQotCi1mdW5jdGlvbiBydW5UZXh0dXJlVXBsb2FkVGVzdChpbWFnZSkKLXsKLSAgICB2YXIgdGV4
dHVyZSA9IGFsbG9jYXRlVGV4dHVyZSgpOwotICAgIGdsLnRleEltYWdlMkQoZ2wuVEVYVFVSRV8y
RCwgMCwgZ2wuUkdCQSwgZ2wuUkdCQSwgZ2wuSEFMRl9GTE9BVF9PRVMsIGltYWdlKTsKLSAgICBn
bEVycm9yU2hvdWxkQmUoZ2wsIGdsLklOVkFMSURfT1BFUkFUSU9OLCAiVXBsb2FkaW5nIHRvIGhh
bGYgZmxvYXQgdGV4dHVyZSBpcyBub3QgeWV0IHN1cHBvcnRlZCIpOwotCi0gICAgLy8gQ2hlY2sg
aWYgdXBsb2FkaW5nIEltYWdlRGF0YSB2aWEgdGV4U3ViSW1hZ2UyRCBpcyBzdXBwb3J0ZWQKLSAg
ICBnbC50ZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIGdsLlJHQkEsIDEsIDIsIDAsIGdsLlJH
QkEsIGdsLkhBTEZfRkxPQVRfT0VTLCBudWxsKTsKLSAgICBnbEVycm9yU2hvdWxkQmUoZ2wsIGds
Lk5PX0VSUk9SLCAiVXBsb2FkaW5nIG51bGwgQXJyYXlCdWZmZXJWaWV3IHRvIGhhbGYgZmxvYXQg
dGV4dHVyZSBzaG91bGQgc3VjY2VlZCIpOwotICAgIGdsLnRleFN1YkltYWdlMkQoZ2wuVEVYVFVS
RV8yRCwgMCwgMCwgMCwgZ2wuUkdCQSwgZ2wuSEFMRl9GTE9BVF9PRVMsIGltYWdlKTsKLSAgICBn
bEVycm9yU2hvdWxkQmUoZ2wsIGdsLklOVkFMSURfT1BFUkFUSU9OLCAiVXBsb2FkaW5nIHRvIGhh
bGYgZmxvYXQgdGV4dHVyZSB1c2luZyB0ZXhTdWJJbWFnZTJEIGlzIG5vdCBzdXBwb3J0ZWQgeWV0
Iik7Ci19Ci0KLWZ1bmN0aW9uIHJ1bkltYWdlRGF0YVVuc3VwcG9ydGVkVGVzdChjYW52YXMyZCwg
Y29udGV4dDJkKQotewotICAgIGRlYnVnKCIiKTsKLSAgICBkZWJ1ZygiVmVyaWZ5IHdoZXRoZXIg
dXBsb2FkaW5nIEltYWdlRGF0YSB2aWEgdGV4SW1hZ2UyRC90ZXhTdWJJbWFnZTJEIGlzIHN1cHBv
cnRlZCIpOwotICAgIAotICAgIC8vIENoZWNrIGlmIHVwbG9hZGluZyBJbWFnZURhdGEgdmlhIHRl
eEltYWdlMkQgaXMgc3VwcG9ydGVkCi0gICAgdmFyIGltYWdlRGF0YSA9IGNvbnRleHQyZC5jcmVh
dGVJbWFnZURhdGEoMSwgMik7Ci0gICAgdmFyIGRhdGEgPSBpbWFnZURhdGEuZGF0YTsKLSAgICBk
YXRhWzBdID0gMjU1OwotICAgIGRhdGFbMV0gPSAwOwotICAgIGRhdGFbMl0gPSAwOwotICAgIGRh
dGFbM10gPSAyNTU7Ci0gICAgZGF0YVs0XSA9IDA7Ci0gICAgZGF0YVs1XSA9IDI1NTsKLSAgICBk
YXRhWzZdID0gMDsKLSAgICBkYXRhWzddID0gMDsKLQotICAgIHJ1blRleHR1cmVVcGxvYWRUZXN0
KGltYWdlRGF0YSk7ICAgIAotfQotCi1mdW5jdGlvbiBydW5IVE1MSW1hZ2VFbGVtZW50VW5zdXBw
b3J0ZWRUZXN0KGNhbnZhczJkLCBjb250ZXh0MmQpCi17Ci0gICAgZGVidWcoIiIpOwotICAgIGRl
YnVnKCJWZXJpZnkgd2hldGhlciB1cGxvYWRpbmcgSFRNTEltYWdlRWxlbWVudCB2aWEgdGV4SW1h
Z2UyRC90ZXhTdWJJbWFnZTJEIGlzIHN1cHBvcnRlZCIpOwotCi0gICAgdmFyIGltYWdlRGF0YSA9
IGNvbnRleHQyZC5jcmVhdGVJbWFnZURhdGEoMSwgMik7Ci0gICAgdmFyIGRhdGEgPSBpbWFnZURh
dGEuZGF0YTsKLSAgICBkYXRhWzBdID0gMjU1OwotICAgIGRhdGFbMV0gPSAwOwotICAgIGRhdGFb
Ml0gPSAwOwotICAgIGRhdGFbM10gPSAyNTU7Ci0gICAgZGF0YVs0XSA9IDA7Ci0gICAgZGF0YVs1
XSA9IDI1NTsKLSAgICBkYXRhWzZdID0gMDsKLSAgICBkYXRhWzddID0gMDsKLSAgICBjb250ZXh0
MmQucHV0SW1hZ2VEYXRhKGltYWdlRGF0YSwgMCwgMCk7Ci0KLSAgICB2YXIgbmV3SW1hZ2UgPSBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbWciKTsKLSAgICBuZXdJbWFnZS5vbmxvYWQgPSBmdW5j
dGlvbigpIHsKLSAgICAgICAgcnVuVGV4dHVyZVVwbG9hZFRlc3QobmV3SW1hZ2UpOwotICAgIH0K
LSAgICBuZXdJbWFnZS5zcmMgPSBjYW52YXMyZC50b0RhdGFVUkwoKTsKLX0KLQotZnVuY3Rpb24g
c2V0Q2FudmFzVG9SZWRHcmVlbihjdHgpIHsKLSAgICB2YXIgd2lkdGggPSBjdHguY2FudmFzLndp
ZHRoOwotICAgIHZhciBoZWlnaHQgPSBjdHguY2FudmFzLmhlaWdodDsKLSAgICB2YXIgaGFsZkhl
aWdodCA9IE1hdGguZmxvb3IoaGVpZ2h0IC8gMik7Ci0gICAgY3R4LmZpbGxTdHlsZSA9ICIjZmYw
MDAwIjsKLSAgICBjdHguZmlsbFJlY3QoMCwgMCwgd2lkdGgsIGhhbGZIZWlnaHQpOwotICAgIGN0
eC5maWxsU3R5bGUgPSAiIzAwZmYwMCI7Ci0gICAgY3R4LmZpbGxSZWN0KDAsIGhhbGZIZWlnaHQs
IHdpZHRoLCBoZWlnaHQgLSBoYWxmSGVpZ2h0KTsKLX0KLQotZnVuY3Rpb24gcnVuSFRNTENhbnZh
c0VsZW1lbnRVbnN1cHBvcnRlZFRlc3QoY2FudmFzMmQsIGNvbnRleHQyZCkKLXsKLSAgICBkZWJ1
ZygiIik7Ci0gICAgZGVidWcoIlZlcmlmeSB3aGV0aGVyIHVwbG9hZGluZyBIVE1MQ2FudmFzRWxl
bWVudCB2aWEgdGV4SW1hZ2UyRC90ZXhTdWJJbWFnZTJEIGlzIHN1cHBvcnRlZCIpOwotICAgIAot
ICAgIGNvbnRleHQyZC53aWR0aCA9IDE7Ci0gICAgY29udGV4dDJkLmhlaWdodCA9IDI7Ci0gICAg
c2V0Q2FudmFzVG9SZWRHcmVlbihjb250ZXh0MmQpOwotCi0gICAgcnVuVGV4dHVyZVVwbG9hZFRl
c3QoY2FudmFzMmQpOwotfQotCi1mdW5jdGlvbiBydW5IVE1MVmlkZW9FbGVtZW50VW5zdXBwb3J0
ZWRUZXN0KGNhbnZhczJkLCBjb250ZXh0MmQpCi17Ci0gICAgZGVidWcoIiIpOwotICAgIGRlYnVn
KCJWZXJpZnkgd2hldGhlciB1cGxvYWRpbmcgSFRNTFZpZGVvRWxlbWVudCB2aWEgdGV4SW1hZ2Uy
RC90ZXhTdWJJbWFnZTJEIGlzIHN1cHBvcnRlZCIpOwotCi0gICAgdmFyIGluZm8gPSB7IHNyYzog
InJlc291cmNlcy9yZWQtZ3JlZW4ubXA0IiwgdHlwZTogJ3ZpZGVvL21wNDsgY29kZWNzPSJhdmMx
LjQyRTAxRSwgbXA0YS40MC4yIid9OwotICAgIHZhciB2aWRlbyA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoInZpZGVvIik7Ci0gICAgaWYgKCF2aWRlby5jYW5QbGF5VHlwZSkgewotICAgICAgICB0
ZXN0RmFpbGVkKCJ2aWRlby5jYW5QbGF5VHlwZSByZXF1aXJlZCBtZXRob2QgaXMgbWlzc2luZyIp
OwotICAgICAgICByZXR1cm47Ci0gICAgfQotICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQo
dmlkZW8pOwotICAgIHZpZGVvLmFkZEV2ZW50TGlzdGVuZXIoCi0gICAgICAgICJwbGF5aW5nIiwg
ZnVuY3Rpb24oKSB7IHJ1blRleHR1cmVVcGxvYWRUZXN0KHZpZGVvKTsgZmluaXNoVGVzdCgpOyB9
LCB0cnVlKTsKLSAgICB2aWRlby50eXBlID0gaW5mby50eXBlOwotICAgIHZpZGVvLnNyYyA9IGlu
Zm8uc3JjOwotICAgIHZpZGVvLmxvb3AgPSB0cnVlOwotICAgIHZpZGVvLndpZHRoID0gMTsKLSAg
ICB2aWRlby5oZWlnaHQgPSAyOwotICAgIHZpZGVvLnBsYXkoKTsKLQotfQotCi1kZWJ1ZygiIik7
Ci0KLTwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBv
c3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgotCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9vZXMtdGV4dHVyZS1oYWxmLWZsb2F0LXdpdGgtY2FudmFz
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL29lcy10ZXh0dXJl
LWhhbGYtZmxvYXQtd2l0aC1jYW52YXMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI1NzRmNGYx
NTk2MGE0YzIyODZjYTBlNzZjNTFlYjZjODNlOTAzMGUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9vZXMtdGV4dHVyZS1oYWxmLWZsb2F0LXdpdGgtY2Fu
dmFzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMwIEBACitWZXJpZnkgdGV4SW1hZ2UyRCBhbmQg
dGV4U3ViSW1hZ2UyRCBjb2RlIHBhdGhzIHRha2luZyBjYW52YXMgZWxlbWVudHMgKFJHQkEvSEFM
Rl9GTE9BVF9PRVMpCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFT
UyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworUEFTUyBTdWNjZXNz
ZnVsbHkgZW5hYmxlZCBPRVNfdGV4dHVyZV9oYWxmX2Zsb2F0IGV4dGVuc2lvbgorVGVzdGluZyB0
ZXhJbWFnZTJEIHdpdGggZmxpcFk9dHJ1ZQorQ2hlY2tpbmcgbG93ZXIgbGVmdCBjb3JuZXIKK1BB
U1Mgc2hvdWxkQmUgMCwyNTUsMAorQ2hlY2tpbmcgdXBwZXIgbGVmdCBjb3JuZXIKK1BBU1Mgc2hv
dWxkQmUgMjU1LDAsMAorVGVzdGluZyB0ZXhJbWFnZTJEIHdpdGggZmxpcFk9ZmFsc2UKK0NoZWNr
aW5nIGxvd2VyIGxlZnQgY29ybmVyCitQQVNTIHNob3VsZEJlIDI1NSwwLDAKK0NoZWNraW5nIHVw
cGVyIGxlZnQgY29ybmVyCitQQVNTIHNob3VsZEJlIDAsMjU1LDAKK1Rlc3RpbmcgdGV4U3ViSW1h
Z2UyRCB3aXRoIGZsaXBZPXRydWUKK0NoZWNraW5nIGxvd2VyIGxlZnQgY29ybmVyCitQQVNTIHNo
b3VsZEJlIDAsMjU1LDAKK0NoZWNraW5nIHVwcGVyIGxlZnQgY29ybmVyCitQQVNTIHNob3VsZEJl
IDI1NSwwLDAKK1Rlc3RpbmcgdGV4U3ViSW1hZ2UyRCB3aXRoIGZsaXBZPWZhbHNlCitDaGVja2lu
ZyBsb3dlciBsZWZ0IGNvcm5lcgorUEFTUyBzaG91bGRCZSAyNTUsMCwwCitDaGVja2luZyB1cHBl
ciBsZWZ0IGNvcm5lcgorUEFTUyBzaG91bGRCZSAwLDI1NSwwCitQQVNTIGdldEVycm9yIHdhcyBl
eHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiBzaG91bGQgYmUgbm8gZXJyb3JzCitQQVNTIHN1Y2Nl
c3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvb2VzLXRleHR1cmUtaGFsZi1mbG9hdC13aXRoLWNh
bnZhcy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvb2VzLXRleHR1cmUtaGFs
Zi1mbG9hdC13aXRoLWNhbnZhcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmYyOTRhZTRiNDNjNTYyNzhlYTVi
ZmRiZWFjNjk1NDI4MTY3ZmMzOTMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L2NhbnZhcy93ZWJnbC9vZXMtdGV4dHVyZS1oYWxmLWZsb2F0LXdpdGgtY2FudmFzLmh0bWwKQEAg
LTAsMCArMSw1OSBAQAorPCEtLQorCisvKgorKiogQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBLaHJv
bm9zIEdyb3VwIEluYy4KKyoqCisqKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVl
IG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQorKiogY29weSBvZiB0aGlzIHNv
ZnR3YXJlIGFuZC9vciBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZQorKiogIk1h
dGVyaWFscyIpLCB0byBkZWFsIGluIHRoZSBNYXRlcmlhbHMgd2l0aG91dCByZXN0cmljdGlvbiwg
aW5jbHVkaW5nCisqKiB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHks
IG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsCisqKiBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQv
b3Igc2VsbCBjb3BpZXMgb2YgdGhlIE1hdGVyaWFscywgYW5kIHRvCisqKiBwZXJtaXQgcGVyc29u
cyB0byB3aG9tIHRoZSBNYXRlcmlhbHMgYXJlIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0
bworKiogdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorKioKKyoqIFRoZSBhYm92ZSBjb3B5cmln
aHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkCisq
KiBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBNYXRlcmlhbHMu
CisqKgorKiogVEhFIE1BVEVSSUFMUyBBUkUgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJS
QU5UWSBPRiBBTlkgS0lORCwKKyoqIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBO
T1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRgorKiogTUVSQ0hBTlRBQklMSVRZLCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULgorKiogSU4g
Tk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxF
IEZPUiBBTlkKKyoqIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsCisqKiBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBG
Uk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRQorKiogTUFURVJJQUxTIE9SIFRI
RSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIE1BVEVSSUFMUy4KKyovCisKKy0tPgorCis8
IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8
c2NyaXB0IHNyYz0icmVzb3VyY2VzL2Rlc2t0b3AtZ2wtY29uc3RhbnRzLmpzIiB0eXBlPSJ0ZXh0
L2phdmFzY3JpcHQiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9q
cy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3dlYmdsLXRl
c3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy93ZWJnbC10ZXN0LXV0aWxz
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdGV4LWltYWdlLWFuZC1zdWIt
aW1hZ2UtMmQtd2l0aC1jYW52YXMuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKyJ1c2Ugc3RyaWN0
IjsKK2Z1bmN0aW9uIHRlc3RQcm9sb2d1ZShnbCkgeworICAgIHZhciBleHQgPSBudWxsOworCisg
ICAgaWYgKCEoZXh0ID0gZ2wuZ2V0RXh0ZW5zaW9uKCJPRVNfdGV4dHVyZV9oYWxmX2Zsb2F0Iikp
KSB7CisgICAgICAgIHRlc3RQYXNzZWQoIk5vIE9FU190ZXh0dXJlX2hhbGZfZmxvYXQgc3VwcG9y
dCAtLSB0aGlzIGlzIGxlZ2FsIik7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAg
ICAvLyBSZXF1aXJlZCBieSB0aGUgdGVzdCBoYXJuZXNzLgorICAgIGdsLkhBTEZfRkxPQVRfT0VT
ID0gZXh0LkhBTEZfRkxPQVRfT0VTOworICAgIHRlc3RQYXNzZWQoIlN1Y2Nlc3NmdWxseSBlbmFi
bGVkIE9FU190ZXh0dXJlX2hhbGZfZmxvYXQgZXh0ZW5zaW9uIik7CisgICAgcmV0dXJuIHRydWU7
Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0nZ2VuZXJhdGVUZXN0KCJSR0JB
IiwgIkhBTEZfRkxPQVRfT0VTIiwgdGVzdFByb2xvZ3VlKSgpJz4KKzxjYW52YXMgaWQ9ImV4YW1w
bGUiIHdpZHRoPSIzMiIgaGVpZ2h0PSIzMiI+PC9jYW52YXM+Cis8ZGl2IGlkPSJkZXNjcmlwdGlv
biI+PC9kaXY+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL29lcy10ZXh0dXJlLWhhbGYt
ZmxvYXQtd2l0aC1pbWFnZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93
ZWJnbC9vZXMtdGV4dHVyZS1oYWxmLWZsb2F0LXdpdGgtaW1hZ2UtZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjYxMzg0YWE3ZDkyM2VjZTM4MTAyZThiMDI2ZjM2NGJjOWZlZjQ2N2IKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9vZXMtdGV4dHVyZS1oYWxm
LWZsb2F0LXdpdGgtaW1hZ2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNzAgQEAKK1ZlcmlmeSB0
ZXhJbWFnZTJEIGFuZCB0ZXhTdWJJbWFnZTJEIGNvZGUgcGF0aHMgdGFraW5nIGltYWdlIGVsZW1l
bnRzIChSR0JBL0hBTEZfRkxPQVRfT0VTKQorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBz
ZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisK
K1BBU1MgU3VjY2Vzc2Z1bGx5IGVuYWJsZWQgT0VTX3RleHR1cmVfaGFsZl9mbG9hdCBleHRlbnNp
b24KK1Rlc3RpbmcgdGV4SW1hZ2UyRCB3aXRoIGZsaXBZPXRydWUKK0NoZWNraW5nIGxvd2VyIGxl
ZnQgY29ybmVyCitQQVNTIHNob3VsZEJlIDAsMjU1LDAKK0NoZWNraW5nIHVwcGVyIGxlZnQgY29y
bmVyCitQQVNTIHNob3VsZEJlIDI1NSwwLDAKK1Rlc3RpbmcgdGV4SW1hZ2UyRCB3aXRoIGZsaXBZ
PWZhbHNlCitDaGVja2luZyBsb3dlciBsZWZ0IGNvcm5lcgorUEFTUyBzaG91bGRCZSAyNTUsMCww
CitDaGVja2luZyB1cHBlciBsZWZ0IGNvcm5lcgorUEFTUyBzaG91bGRCZSAwLDI1NSwwCitUZXN0
aW5nIHRleFN1YkltYWdlMkQgd2l0aCBmbGlwWT10cnVlCitDaGVja2luZyBsb3dlciBsZWZ0IGNv
cm5lcgorUEFTUyBzaG91bGRCZSAwLDI1NSwwCitDaGVja2luZyB1cHBlciBsZWZ0IGNvcm5lcgor
UEFTUyBzaG91bGRCZSAyNTUsMCwwCitUZXN0aW5nIHRleFN1YkltYWdlMkQgd2l0aCBmbGlwWT1m
YWxzZQorQ2hlY2tpbmcgbG93ZXIgbGVmdCBjb3JuZXIKK1BBU1Mgc2hvdWxkQmUgMjU1LDAsMAor
Q2hlY2tpbmcgdXBwZXIgbGVmdCBjb3JuZXIKK1BBU1Mgc2hvdWxkQmUgMCwyNTUsMAorVGVzdGlu
ZyB0ZXhJbWFnZTJEIHdpdGggZmxpcFk9dHJ1ZQorQ2hlY2tpbmcgbG93ZXIgbGVmdCBjb3JuZXIK
K1BBU1Mgc2hvdWxkQmUgMCwyNTUsMAorQ2hlY2tpbmcgdXBwZXIgbGVmdCBjb3JuZXIKK1BBU1Mg
c2hvdWxkQmUgMjU1LDAsMAorVGVzdGluZyB0ZXhJbWFnZTJEIHdpdGggZmxpcFk9ZmFsc2UKK0No
ZWNraW5nIGxvd2VyIGxlZnQgY29ybmVyCitQQVNTIHNob3VsZEJlIDI1NSwwLDAKK0NoZWNraW5n
IHVwcGVyIGxlZnQgY29ybmVyCitQQVNTIHNob3VsZEJlIDAsMjU1LDAKK1Rlc3RpbmcgdGV4U3Vi
SW1hZ2UyRCB3aXRoIGZsaXBZPXRydWUKK0NoZWNraW5nIGxvd2VyIGxlZnQgY29ybmVyCitQQVNT
IHNob3VsZEJlIDAsMjU1LDAKK0NoZWNraW5nIHVwcGVyIGxlZnQgY29ybmVyCitQQVNTIHNob3Vs
ZEJlIDI1NSwwLDAKK1Rlc3RpbmcgdGV4U3ViSW1hZ2UyRCB3aXRoIGZsaXBZPWZhbHNlCitDaGVj
a2luZyBsb3dlciBsZWZ0IGNvcm5lcgorUEFTUyBzaG91bGRCZSAyNTUsMCwwCitDaGVja2luZyB1
cHBlciBsZWZ0IGNvcm5lcgorUEFTUyBzaG91bGRCZSAwLDI1NSwwCitUZXN0aW5nIHRleEltYWdl
MkQgd2l0aCBmbGlwWT10cnVlCitDaGVja2luZyBsb3dlciBsZWZ0IGNvcm5lcgorUEFTUyBzaG91
bGRCZSAwLDI1NSwwCitDaGVja2luZyB1cHBlciBsZWZ0IGNvcm5lcgorUEFTUyBzaG91bGRCZSAy
NTUsMCwwCitUZXN0aW5nIHRleEltYWdlMkQgd2l0aCBmbGlwWT1mYWxzZQorQ2hlY2tpbmcgbG93
ZXIgbGVmdCBjb3JuZXIKK1BBU1Mgc2hvdWxkQmUgMjU1LDAsMAorQ2hlY2tpbmcgdXBwZXIgbGVm
dCBjb3JuZXIKK1BBU1Mgc2hvdWxkQmUgMCwyNTUsMAorVGVzdGluZyB0ZXhTdWJJbWFnZTJEIHdp
dGggZmxpcFk9dHJ1ZQorQ2hlY2tpbmcgbG93ZXIgbGVmdCBjb3JuZXIKK1BBU1Mgc2hvdWxkQmUg
MCwyNTUsMAorQ2hlY2tpbmcgdXBwZXIgbGVmdCBjb3JuZXIKK1BBU1Mgc2hvdWxkQmUgMjU1LDAs
MAorVGVzdGluZyB0ZXhTdWJJbWFnZTJEIHdpdGggZmxpcFk9ZmFsc2UKK0NoZWNraW5nIGxvd2Vy
IGxlZnQgY29ybmVyCitQQVNTIHNob3VsZEJlIDI1NSwwLDAKK0NoZWNraW5nIHVwcGVyIGxlZnQg
Y29ybmVyCitQQVNTIHNob3VsZEJlIDAsMjU1LDAKK1BBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVk
IHZhbHVlOiBOT19FUlJPUiA6IHNob3VsZCBiZSBubyBlcnJvcnMKK1BBU1Mgc3VjY2Vzc2Z1bGx5
UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L2NhbnZhcy93ZWJnbC9vZXMtdGV4dHVyZS1oYWxmLWZsb2F0LXdpdGgtaW1hZ2UuaHRt
bCBiL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL29lcy10ZXh0dXJlLWhhbGYtZmxvYXQt
d2l0aC1pbWFnZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc0YWFlNzAzNTYyZDVhZmQ3M2RkZjAyNDdiNjI5
NjlhNWZmYzI3ZGQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93
ZWJnbC9vZXMtdGV4dHVyZS1oYWxmLWZsb2F0LXdpdGgtaW1hZ2UuaHRtbApAQCAtMCwwICsxLDYw
IEBACis8IS0tCisKKy8qCisqKiBDb3B5cmlnaHQgKGMpIDIwMTMgVGhlIEtocm9ub3MgR3JvdXAg
SW5jLgorKioKKyoqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdl
LCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCisqKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5k
L29yIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlCisqKiAiTWF0ZXJpYWxzIiks
IHRvIGRlYWwgaW4gdGhlIE1hdGVyaWFscyB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcK
KyoqIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBt
ZXJnZSwgcHVibGlzaCwKKyoqIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNv
cGllcyBvZiB0aGUgTWF0ZXJpYWxzLCBhbmQgdG8KKyoqIHBlcm1pdCBwZXJzb25zIHRvIHdob20g
dGhlIE1hdGVyaWFscyBhcmUgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvCisqKiB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnM6CisqKgorKiogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2Ug
YW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQKKyoqIGluIGFsbCBj
b3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIE1hdGVyaWFscy4KKyoqCisqKiBU
SEUgTUFURVJJQUxTIEFSRSBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFO
WSBLSU5ELAorKiogRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVE
IFRPIFRIRSBXQVJSQU5USUVTIE9GCisqKiBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuCisqKiBJTiBOTyBFVkVOVCBT
SEFMTCBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWQor
KiogQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElP
TiBPRiBDT05UUkFDVCwKKyoqIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBP
RiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFCisqKiBNQVRFUklBTFMgT1IgVEhFIFVTRSBPUiBP
VEhFUiBERUFMSU5HUyBJTiBUSEUgTUFURVJJQUxTLgorKi8KKworLS0+CisKKzwhRE9DVFlQRSBo
dG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzxzY3JpcHQgc3Jj
PSJyZXNvdXJjZXMvZGVza3RvcC1nbC1jb25zdGFudHMuanMiIHR5cGU9InRleHQvamF2YXNjcmlw
dCI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJl
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvd2ViZ2wtdGVzdC5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3dlYmdsLXRlc3QtdXRpbHMuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy90ZXgtaW1hZ2UtYW5kLXN1Yi1pbWFnZS0yZC13
aXRoLWltYWdlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisidXNlIHN0cmljdCI7CitmdW5jdGlv
biB0ZXN0UHJvbG9ndWUoZ2wpIHsKKyAgICB2YXIgZXh0ID0gbnVsbDsKKworICAgIGlmICghKGV4
dCA9IGdsLmdldEV4dGVuc2lvbigiT0VTX3RleHR1cmVfaGFsZl9mbG9hdCIpKSkgeworICAgICAg
ICB0ZXN0UGFzc2VkKCJObyBPRVNfdGV4dHVyZV9oYWxmX2Zsb2F0IHN1cHBvcnQgLS0gdGhpcyBp
cyBsZWdhbCIpOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgLy8gUmVxdWly
ZWQgYnkgdGhlIHRlc3QgaGFybmVzcy4KKyAgICBnbC5IQUxGX0ZMT0FUX09FUyA9IGV4dC5IQUxG
X0ZMT0FUX09FUzsKKworICAgIHRlc3RQYXNzZWQoIlN1Y2Nlc3NmdWxseSBlbmFibGVkIE9FU190
ZXh0dXJlX2hhbGZfZmxvYXQgZXh0ZW5zaW9uIik7CisgICAgcmV0dXJuIHRydWU7Cit9Cis8L3Nj
cmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0nZ2VuZXJhdGVUZXN0KCJSR0JBIiwgIkhBTEZf
RkxPQVRfT0VTIiwgIi4iLCB0ZXN0UHJvbG9ndWUpKCknPgorPGNhbnZhcyBpZD0iZXhhbXBsZSIg
d2lkdGg9IjMyIiBoZWlnaHQ9IjMyIj48L2NhbnZhcz4KKzxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48
L2Rpdj4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvb2VzLXRleHR1cmUtaGFsZi1mbG9h
dC13aXRoLXZpZGVvLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmds
L29lcy10ZXh0dXJlLWhhbGYtZmxvYXQtd2l0aC12aWRlby1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMTgxYTM4Zjg4MmI2MTRhYjJmODQwNjI4MzRkOWRlZThlYjAzMTRiNgotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL29lcy10ZXh0dXJlLWhhbGYtZmxv
YXQtd2l0aC12aWRlby1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzMCBAQAorVmVyaWZ5IHRleElt
YWdlMkQgYW5kIHRleFN1YkltYWdlMkQgY29kZSBwYXRocyB0YWtpbmcgdmlkZW8gZWxlbWVudHMg
KFJHQkEvSEFMRl9GTE9BVF9PRVMpCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmll
cyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworUEFT
UyBTdWNjZXNzZnVsbHkgZW5hYmxlZCBPRVNfdGV4dHVyZV9oYWxmX2Zsb2F0IGV4dGVuc2lvbgor
VGVzdGluZyB0ZXhJbWFnZTJEIHdpdGggZmxpcFk9dHJ1ZQorQ2hlY2tpbmcgbG93ZXIgbGVmdCBj
b3JuZXIKK1BBU1Mgc2hvdWxkQmUgMCwyNTUsMAorQ2hlY2tpbmcgdXBwZXIgbGVmdCBjb3JuZXIK
K1BBU1Mgc2hvdWxkQmUgMjU1LDAsMAorVGVzdGluZyB0ZXhJbWFnZTJEIHdpdGggZmxpcFk9ZmFs
c2UKK0NoZWNraW5nIGxvd2VyIGxlZnQgY29ybmVyCitQQVNTIHNob3VsZEJlIDI1NSwwLDAKK0No
ZWNraW5nIHVwcGVyIGxlZnQgY29ybmVyCitQQVNTIHNob3VsZEJlIDAsMjU1LDAKK1Rlc3Rpbmcg
dGV4U3ViSW1hZ2UyRCB3aXRoIGZsaXBZPXRydWUKK0NoZWNraW5nIGxvd2VyIGxlZnQgY29ybmVy
CitQQVNTIHNob3VsZEJlIDAsMjU1LDAKK0NoZWNraW5nIHVwcGVyIGxlZnQgY29ybmVyCitQQVNT
IHNob3VsZEJlIDI1NSwwLDAKK1Rlc3RpbmcgdGV4U3ViSW1hZ2UyRCB3aXRoIGZsaXBZPWZhbHNl
CitDaGVja2luZyBsb3dlciBsZWZ0IGNvcm5lcgorUEFTUyBzaG91bGRCZSAyNTUsMCwwCitDaGVj
a2luZyB1cHBlciBsZWZ0IGNvcm5lcgorUEFTUyBzaG91bGRCZSAwLDI1NSwwCitQQVNTIGdldEVy
cm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiBzaG91bGQgYmUgbm8gZXJyb3JzCitQ
QVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKyAKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL29lcy10ZXh0dXJlLWhhbGYtZmxv
YXQtd2l0aC12aWRlby5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvb2VzLXRl
eHR1cmUtaGFsZi1mbG9hdC13aXRoLXZpZGVvLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWEzNjFmMzJlYjY0
YzUxNjk4YmZkYWJlMTM2ODRkZDA1YWEwMzc0NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvY2FudmFzL3dlYmdsL29lcy10ZXh0dXJlLWhhbGYtZmxvYXQtd2l0aC12aWRlby5o
dG1sCkBAIC0wLDAgKzEsNjUgQEAKKzwhLS0KKworLyoKKyoqIENvcHlyaWdodCAoYykgMjAxMyBU
aGUgS2hyb25vcyBHcm91cCBJbmMuCisqKgorKiogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRl
ZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKKyoqIGNvcHkgb2Yg
dGhpcyBzb2Z0d2FyZSBhbmQvb3IgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUK
KyoqICJNYXRlcmlhbHMiKSwgdG8gZGVhbCBpbiB0aGUgTWF0ZXJpYWxzIHdpdGhvdXQgcmVzdHJp
Y3Rpb24sIGluY2x1ZGluZworKiogd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNl
LCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLAorKiogZGlzdHJpYnV0ZSwgc3VibGljZW5z
ZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBNYXRlcmlhbHMsIGFuZCB0bworKiogcGVybWl0
IHBlcnNvbnMgdG8gd2hvbSB0aGUgTWF0ZXJpYWxzIGFyZSBmdXJuaXNoZWQgdG8gZG8gc28sIHN1
YmplY3QgdG8KKyoqIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyoqCisqKiBUaGUgYWJvdmUg
Y29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNs
dWRlZAorKiogaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgTWF0
ZXJpYWxzLgorKioKKyoqIFRIRSBNQVRFUklBTFMgQVJFIFBST1ZJREVEICJBUyBJUyIsIFdJVEhP
VVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsCisqKiBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElO
RyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YKKyoqIE1FUkNIQU5UQUJJTElU
WSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4K
KyoqIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJF
IExJQUJMRSBGT1IgQU5ZCisqKiBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULAorKiogVE9SVCBPUiBPVEhFUldJU0UsIEFS
SVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUKKyoqIE1BVEVSSUFM
UyBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBNQVRFUklBTFMuCisqLworCist
LT4KKworPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRm
LTgiPgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9kZXNrdG9wLWdsLWNvbnN0YW50cy5qcyIgdHlw
ZT0idGV4dC9qYXZhc2NyaXB0Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNv
dXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy93
ZWJnbC10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvd2ViZ2wtdGVz
dC11dGlscy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3RleC1pbWFnZS1h
bmQtc3ViLWltYWdlLTJkLXdpdGgtdmlkZW8uanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKyJ1c2Ug
c3RyaWN0IjsKK2Z1bmN0aW9uIHRlc3RQcm9sb2d1ZShnbCkgeworICAgIHZhciBleHQgPSBudWxs
OworCisgICAgaWYgKCEoZXh0ID0gZ2wuZ2V0RXh0ZW5zaW9uKCJPRVNfdGV4dHVyZV9oYWxmX2Zs
b2F0IikpKSB7CisgICAgICAgIHRlc3RQYXNzZWQoIk5vIE9FU190ZXh0dXJlX2hhbGZfZmxvYXQg
c3VwcG9ydCAtLSB0aGlzIGlzIGxlZ2FsIik7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9
CisKKyAgICAvLyBSZXF1aXJlZCBieSB0aGUgdGVzdCBoYXJuZXNzLgorICAgIGdsLkhBTEZfRkxP
QVRfT0VTID0gZXh0LkhBTEZfRkxPQVRfT0VTOworCisgICAgdGVzdFBhc3NlZCgiU3VjY2Vzc2Z1
bGx5IGVuYWJsZWQgT0VTX3RleHR1cmVfaGFsZl9mbG9hdCBleHRlbnNpb24iKTsKKyAgICByZXR1
cm4gdHJ1ZTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSdnZW5lcmF0ZVRl
c3QoIlJHQkEiLCAiSEFMRl9GTE9BVF9PRVMiLCB0ZXN0UHJvbG9ndWUpKCknPgorPGNhbnZhcyBp
ZD0iZXhhbXBsZSIgd2lkdGg9IjMyIiBoZWlnaHQ9IjMyIj48L2NhbnZhcz4KKzxkaXYgaWQ9ImRl
c2NyaXB0aW9uIj48L2Rpdj4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHZpZGVvIHdpZHRo
PSI2NDAiIGhlaWdodD0iMjI4IiBpZD0idmlkIiBjb250cm9scz4KKyAgPHNvdXJjZSBzcmM9InJl
c291cmNlcy9yZWQtZ3JlZW4ubXA0IiAgdHlwZT0ndmlkZW8vbXA0OyBjb2RlY3M9ImF2YzEuNDJF
MDFFLCBtcDRhLjQwLjIiJyAvPgorICA8c291cmNlIHNyYz0icmVzb3VyY2VzL3JlZC1ncmVlbi53
ZWJtdnA4LndlYm0iIHR5cGU9J3ZpZGVvL3dlYm07IGNvZGVjcz0idnA4LCB2b3JiaXMiJyAvPgor
ICA8c291cmNlIHNyYz0icmVzb3VyY2VzL3JlZC1ncmVlbi50aGVvcmEub2d2IiAgdHlwZT0ndmlk
ZW8vb2dnOyBjb2RlY3M9InRoZW9yYSwgdm9yYmlzIicgLz4KKzwvdmlkZW8+Cis8L2JvZHk+Cis8
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9vZXMtdGV4
dHVyZS1oYWxmLWZsb2F0Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9vZXMt
dGV4dHVyZS1oYWxmLWZsb2F0Lmh0bWwKaW5kZXggZTZiOThmODMyZDI4ZThlYWZmYmU4NWVkNTQx
YmZiMjQ4NTE0MzhiNy4uZmQzZTU1OGJlNzZkYjRmNWRlYWZmY2U3ZmUwYWI3MTZiZDhmYWE3ZSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvb2VzLXRleHR1cmUtaGFs
Zi1mbG9hdC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL29lcy10ZXh0
dXJlLWhhbGYtZmxvYXQuaHRtbApAQCAtMSwzICsxLDMwIEBACis8IS0tCisKKy8qCisqKiBDb3B5
cmlnaHQgKGMpIDIwMTMgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorKioKKyoqIFBlcm1pc3Npb24g
aXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmlu
ZyBhCisqKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kL29yIGFzc29jaWF0ZWQgZG9jdW1lbnRh
dGlvbiBmaWxlcyAodGhlCisqKiAiTWF0ZXJpYWxzIiksIHRvIGRlYWwgaW4gdGhlIE1hdGVyaWFs
cyB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcKKyoqIHdpdGhvdXQgbGltaXRhdGlvbiB0
aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwKKyoqIGRpc3Ry
aWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgTWF0ZXJpYWxzLCBh
bmQgdG8KKyoqIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIE1hdGVyaWFscyBhcmUgZnVybmlz
aGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvCisqKiB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6Cisq
KgorKiogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3Rp
Y2Ugc2hhbGwgYmUgaW5jbHVkZWQKKyoqIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9y
dGlvbnMgb2YgdGhlIE1hdGVyaWFscy4KKyoqCisqKiBUSEUgTUFURVJJQUxTIEFSRSBQUk9WSURF
RCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELAorKiogRVhQUkVTUyBPUiBJ
TVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GCisq
KiBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBO
T05JTkZSSU5HRU1FTlQuCisqKiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUiBDT1BZ
UklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWQorKiogQ0xBSU0sIERBTUFHRVMgT1IgT1RI
RVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwKKyoqIFRPUlQg
T1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEgg
VEhFCisqKiBNQVRFUklBTFMgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgTUFU
RVJJQUxTLgorKi8KKworLS0+CisKIDwhRE9DVFlQRSBodG1sPgogPGh0bWw+CiA8aGVhZD4KQEAg
LTMwLDcgKzU3LDcgQEAgdm9pZCBtYWluKCkKICAgICB9CiB9CiA8L3NjcmlwdD4KLTwhLS0gU2hh
ZGVycyBmb3IgdGVzdGluZyBoYWxmIGZsb2F0aW5nLXBvaW50IHJlbmRlciB0YXJnZXRzIC0tPgor
PCEtLSBTaGFkZXJzIGZvciB0ZXN0aW5nIGhhbGYtZmxvYXRpbmctcG9pbnQgcmVuZGVyIHRhcmdl
dHMgLS0+CiA8c2NyaXB0IGlkPSJwb3NpdGlvblZlcnRleFNoYWRlciIgdHlwZT0ieC1zaGFkZXIv
eC12ZXJ0ZXgiPgogYXR0cmlidXRlIHZlYzQgdlBvc2l0aW9uOwogdm9pZCBtYWluKCkKQEAgLTQ1
LDE1ICs3MiwxNiBAQCB2b2lkIG1haW4oKQogfQogPC9zY3JpcHQ+CiA8c2NyaXB0PgorInVzZSBz
dHJpY3QiCiBkZXNjcmlwdGlvbigiVGhpcyB0ZXN0IHZlcmlmaWVzIHRoZSBmdW5jdGlvbmFsaXR5
IG9mIE9FU190ZXh0dXJlX2hhbGZfZmxvYXQgd2l0aCBudWxsL25vbi1udWxsIEFycmF5QnVmZmVy
VmlldyIpOwotZGVidWcoIiIpOwotCi1pZiAod2luZG93LmludGVybmFscykKLSAgICB3aW5kb3cu
aW50ZXJuYWxzLnNldHRpbmdzLnNldFdlYkdMRXJyb3JzVG9Db25zb2xlRW5hYmxlZChmYWxzZSk7
CiAKK2RlYnVnKCIiKTsKIHZhciB3dHUgPSBXZWJHTFRlc3RVdGlsczsKIHZhciBjYW52YXMgPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2FudmFzIik7CiB2YXIgZ2wgPSB3dHUuY3JlYXRlM0RD
b250ZXh0KGNhbnZhcyk7CisvLyBUaGlzIGNvbnN0YW50IG11c3QgYmUgZGVmaW5lZCBpbiBvcmRl
ciB0byBydW4gdGhlIHRleHR1cmUgY3JlYXRpb24gdGVzdCB3aXRob3V0IHRoZSBleHRlbnNpb24g
ZW5hYmxlZC4KK3ZhciBoYWxmRmxvYXRPRVNFbnVtID0gMHg4RDYxOwordmFyIGV4dCA9IG51bGw7
CiAKIGlmICghZ2wpIHsKICAgICB0ZXN0RmFpbGVkKCJXZWJHTCBjb250ZXh0IGRvZXMgbm90IGV4
aXN0cyIpOwpAQCAtNjMsNyArOTEsNyBAQCBpZiAoIWdsKSB7CiAgICAgLy8gVmVyaWZ5IHRoYXQg
YWxsb2NhdGlvbiBvZiB0ZXh0dXJlIGZhaWxzIGlmIGV4dGVuc2lvbiBpcyBub3QgZW5hYmxlZAog
ICAgIHJ1blRleHR1cmVDcmVhdGlvblRlc3QoZmFsc2UpOwogCi0gICAgaWYoIWdsLmdldEV4dGVu
c2lvbigiT0VTX3RleHR1cmVfaGFsZl9mbG9hdCIpKSB7CisgICAgaWYgKCEoZXh0ID0gZ2wuZ2V0
RXh0ZW5zaW9uKCJPRVNfdGV4dHVyZV9oYWxmX2Zsb2F0IikpKSB7CiAgICAgICAgIHRlc3RQYXNz
ZWQoIk5vIE9FU190ZXh0dXJlX2hhbGZfZmxvYXQgc3VwcG9ydC4gVGhpcyBpcyBsZWdhbCIpOwog
ICAgIH0gZWxzZSB7CiAgICAgICAgIHRlc3RQYXNzZWQoIlN1Y2Nlc3NmdWxseSBlbmFibGVkIE9F
U190ZXh0dXJlX2hhbGZfZmxvYXQgZXh0ZW5zaW9uIik7CkBAIC03MywxMiArMTAxLDEyIEBAIGlm
ICghZ2wpIHsKICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBmb3JtYXRzLmxlbmd0aDsgaSsr
KSB7CiAgICAgICAgICAgICBydW5UZXh0dXJlQ3JlYXRpb25UZXN0KHRydWUsIGZvcm1hdHNbaV0s
IG51bGwpOwogICAgICAgICB9Ci0gICAgICAgIAorCiAgICAgICAgIC8vIFRleHR1cmUgY3JlYXRp
b24gc2hvdWxkIGZhaWwgd2hlbiBwYXNzZWQgd2l0aCBub24tbnVsbCBBcnJheUJ1ZmZlclZpZXcK
ICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBmb3JtYXRzLmxlbmd0aDsgaSsrKSB7CiAgICAg
ICAgICAgICB2YXIgd2lkdGggPSAyOwogICAgICAgICAgICAgdmFyIGhlaWdodCA9IDI7Ci0gICAg
ICAgICAgICAKKwogICAgICAgICAgICAgLy8gRmxvYXQzMkFycmF5CiAgICAgICAgICAgICB2YXIg
ZmxvYXQzMkRhdGEgPSBuZXcgRmxvYXQzMkFycmF5KHdpZHRoICogaGVpZ2h0ICogZ2V0TnVtYmVy
T2ZDaGFubmVscyhmb3JtYXRzW2ldKSk7CiAgICAgICAgICAgICBmb3IgKHZhciBpaSA9IDA7IGlp
IDwgZmxvYXQzMkRhdGEubGVuZ3RoOyBpaSsrKSB7CkBAIC05OCw3ICsxMjYsNyBAQCBpZiAoIWds
KSB7CiAgICAgICAgICAgICBmb3IgKHZhciBpaSA9IDA7IGlpIDwgIHVpbnQxNkRhdGEubGVuZ3Ro
OyBpaSsrKSB7CiAgICAgICAgICAgICAgICAgdWludDE2RGF0YVtpaV0gPSAxMDAwOwogICAgICAg
ICAgICAgfQotICAgICAgICAgICAgcnVuVGV4dHVyZUNyZWF0aW9uVGVzdCh0cnVlLCBmb3JtYXRz
W2ldLCB1aW50MTZEYXRhKTsgICAgICAgICAgICAKKyAgICAgICAgICAgIHJ1blRleHR1cmVDcmVh
dGlvblRlc3QodHJ1ZSwgZm9ybWF0c1tpXSwgdWludDE2RGF0YSk7CiAgICAgICAgIH0KIAogICAg
ICAgICAvLyBDaGVjayBpZiBhdHRhY2hpbmcgdGV4dHVyZSBhcyBGQk8gdGFyZ2V0IHN1Y2NlZWRz
IChOb3QgbWFuZGF0b3J5KQpAQCAtMTUxLDIyICsxNzksMjIgQEAgZnVuY3Rpb24gcnVuVGV4dHVy
ZUNyZWF0aW9uVGVzdChleHRlbnNpb25FbmFibGVkLCBvcHRfZm9ybWF0LCBvcHRfZGF0YSkKICAg
ICB2YXIgZm9ybWF0ID0gb3B0X2Zvcm1hdCB8fCBnbC5SR0JBOwogICAgIHZhciBkYXRhID0gb3B0
X2RhdGEgfHwgbnVsbDsKICAgICB2YXIgZXhwZWN0U3VjY2VzcyA9IHRydWU7Ci0gICAgCisKICAg
ICBpZiAoIWV4dGVuc2lvbkVuYWJsZWQgfHwgZGF0YSkKICAgICAgICAgZXhwZWN0U3VjY2VzcyA9
IGZhbHNlOwogICAgIGRlYnVnKCJUZXN0aW5nIHRleHR1cmUgY3JlYXRpb24gd2l0aCBleHRlbnNp
b24gIiArIChleHRlbnNpb25FbmFibGVkID8gImVuYWJsZWQiIDogImRpc2FibGVkIikgKwogICAg
ICAgICAgICIsIGZvcm1hdCAiICsgZ2V0Rm9ybWF0TmFtZShmb3JtYXQpICsgIiwgYW5kIGRhdGEg
IiArIChkYXRhID8gIm5vbi1udWxsIiA6ICJudWxsIikgKwotICAgICAgICAgICIuIEV4cGVjdCAi
ICsgKGV4cGVjdFN1Y2Nlc3MgPyAiU3VjY2VzcyIgOiAiRmFpbHVyZSIpKTsgICAKKyAgICAgICAg
ICAiLiBFeHBlY3QgIiArIChleHBlY3RTdWNjZXNzID8gIlN1Y2Nlc3MiIDogIkZhaWx1cmUiKSk7
CiAKICAgICB2YXIgdGV4dHVyZSA9IGFsbG9jYXRlVGV4dHVyZSgpOwogICAgIHZhciB3aWR0aCA9
IDI7CiAgICAgdmFyIGhlaWdodCA9IDI7Ci0gICAgZ2wudGV4SW1hZ2UyRChnbC5URVhUVVJFXzJE
LCAwLCBmb3JtYXQsIHdpZHRoLCBoZWlnaHQsIDAsIGZvcm1hdCwgZ2wuSEFMRl9GTE9BVF9PRVMs
IGRhdGEpOworICAgIGdsLnRleEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgZm9ybWF0LCB3aWR0
aCwgaGVpZ2h0LCAwLCBmb3JtYXQsIGhhbGZGbG9hdE9FU0VudW0sIGRhdGEpOwogICAgIGlmKCFl
eHRlbnNpb25FbmFibGVkKSB7Ci0gICAgICAgIGdsRXJyb3JTaG91bGRCZShnbCwgZ2wuSU5WQUxJ
RF9FTlVNLCAiSGFsZiBmbG9hdGluZyBwb2ludCB0ZXh0dXJlIG11c3QgYmUgZGlhbGxvd2VkIGlm
IE9FU190ZXh0dXJlX2hhbGZfZmxvYXQgaXNuJ3QgZW5hYmxlZCIpOworICAgICAgICBnbEVycm9y
U2hvdWxkQmUoZ2wsIGdsLklOVkFMSURfRU5VTSwgIkhhbGYgZmxvYXRpbmcgcG9pbnQgdGV4dHVy
ZSBtdXN0IGJlIGRpc2FsbG93ZWQgaWYgT0VTX3RleHR1cmVfaGFsZl9mbG9hdCBpc24ndCBlbmFi
bGVkIik7CiAgICAgICAgIHJldHVybjsKICAgICB9IGVsc2UgaWYgKGRhdGEpIHsKLSAgICAgICAg
Z2xFcnJvclNob3VsZEJlKGdsLCBnbC5JTlZBTElEX09QRVJBVElPTiwgIkhhbGYgZmxvYXRpbmcg
cG9pbnQgdGV4dHVyZSBhbGxvY2F0aW9uIG11c3QgYmUgZGlhbGxvd2VkIHdoZW4gQXJyYXlCdWZm
ZXJWaWV3IGlzIG5vdC1udWxsIik7CisgICAgICAgIGdsRXJyb3JTaG91bGRCZShnbCwgZ2wuSU5W
QUxJRF9PUEVSQVRJT04sICJIYWxmIGZsb2F0aW5nIHBvaW50IHRleHR1cmUgYWxsb2NhdGlvbiBt
dXN0IGJlIGRpc2FsbG93ZWQgd2hlbiBBcnJheUJ1ZmZlclZpZXcgaXMgbm90LW51bGwiKTsKICAg
ICAgICAgcmV0dXJuOwogICAgIH0gZWxzZSB7CiAgICAgICAgIGdsRXJyb3JTaG91bGRCZShnbCwg
Z2wuTk9fRVJST1IsICJIYWxmIGZsb2F0aW5nIHBvaW50IHRleHR1cmUgYWxsb2NhdGlvbiBzaG91
bGQgc3VjY2VlZCBpZiBPRVNfdGV4dHVyZV9oYWxmX2Zsb2F0IGlzIGVuYWJsZWQiKTsKQEAgLTE4
Niw4ICsyMTQsOCBAQCBmdW5jdGlvbiBydW5SZW5kZXJUYXJnZXRUZXN0KHRlc3RQcm9ncmFtKQog
ICAgIHZhciB0ZXh0dXJlID0gYWxsb2NhdGVUZXh0dXJlKCk7CiAgICAgdmFyIHdpZHRoID0gMjsK
ICAgICB2YXIgaGVpZ2h0ID0gMjsKLSAgICAKLSAgICBnbC50ZXhJbWFnZTJEKGdsLlRFWFRVUkVf
MkQsIDAsIGdsLlJHQkEsIHdpZHRoLCBoZWlnaHQsIDAsIGdsLlJHQkEsIGdsLkhBTEZfRkxPQVRf
T0VTLCBudWxsKTsKKworICAgIGdsLnRleEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgZ2wuUkdC
QSwgd2lkdGgsIGhlaWdodCwgMCwgZ2wuUkdCQSwgZXh0LkhBTEZfRkxPQVRfT0VTLCBudWxsKTsK
ICAgICBnbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SLCAiSGFsZiBmbG9hdGluZyBwb2lu
dCB0ZXh0dXJlIGFsbG9jYXRpb24gc2hvdWxkIHN1Y2NlZWQgaWYgT0VTX3RleHR1cmVfaGFsZl9m
bG9hdCBpcyBlbmFibGVkIik7CiAKICAgICAvLyBUcnkgdG8gdXNlIHRoaXMgdGV4dHVyZSBhcyBy
ZW5kZXIgdGFyZ2V0Cg==
</data>
<flag name="review"
          id="241770"
          type_id="1"
          status="+"
          setter="bfulgham"
    />
          </attachment>
      

    </bug>

</bugzilla>