<?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>40318</bug_id>
          
          <creation_ts>2010-06-08 11:59:16 -0700</creation_ts>
          <short_desc>Add texImage2D and texSubImage2D signatures with internal format, etc.</short_desc>
          <delta_ts>2010-06-11 16:41:24 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebGL</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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>
          <dependson>40443</dependson>
          <blocked>40319</blocked>
    
    <blocked>40320</blocked>
    
    <blocked>40398</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Kenneth Russell">kbr</reporter>
          <assigned_to name="Kenneth Russell">kbr</assigned_to>
          <cc>abarth</cc>
    
    <cc>cmarrin</cc>
    
    <cc>dglazkov</cc>
    
    <cc>eric</cc>
    
    <cc>oliver</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>zmo</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>235411</commentid>
    <comment_count>0</comment_count>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2010-06-08 11:59:16 -0700</bug_when>
    <thetext>Per recent updates to the WebGL spec:
 - New texImage2D entry points need to be added taking internalformat, format and type arguments, and removing the optional flipY and as asPremultipliedAlpha.
 - New texSubImage2D entry points need to be added taking format and type arguments, and removing the optional flipY and as asPremultipliedAlpha.
 - pixelStorei needs to be updated to take the new UNPACK_FLIP_Y_WEBGL and UNPACK_PREMULTIPLY_ALPHA_WEBGL enums. These must apply to all texImage2D and texSubImage2D variants.

The actual implementation of the format conversion should be deferred to another bug. Additionally, the existing entry points should be left in place for compatibility for a brief time.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>236113</commentid>
    <comment_count>1</comment_count>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2010-06-09 18:14:58 -0700</bug_when>
    <thetext>Implementing the UNPACK_FLIP_Y_WEBGL and UNPACK_PREMULTIPLY_ALPHA pixelStorei parameters for the texImage2D and texSubImage2D entry points taking ArrayBufferView will make this patch too large. This will be done in a separate fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>237041</commentid>
    <comment_count>2</comment_count>
      <attachid>58508</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2010-06-11 14:36:35 -0700</bug_when>
    <thetext>Created attachment 58508
Patch

From the ChangeLog:

Added new texImage2D and texSubImage2D entry points following WebGL specification changes. Added UNPACK_FLIP_Y_WEBGL and UNPACK_PREMULTIPLY_ALPHA_WEBGL pixelStorei parameters, honored them for the new entry points taking HTML elements, and added support to getParameter. Added warnings to the console for calls to the obsolete entry points, which will be removed in a few weeks. Updated all layout tests to use the new entry points and pixelStorei parameters, and associated expectations. No other new tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>237046</commentid>
    <comment_count>3</comment_count>
      <attachid>58508</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2010-06-11 14:44:37 -0700</bug_when>
    <thetext>Comment on attachment 58508
Patch

yay!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>237055</commentid>
    <comment_count>4</comment_count>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2010-06-11 15:04:11 -0700</bug_when>
    <thetext>Committed r61039: &lt;http://trac.webkit.org/changeset/61039&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>237075</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-06-11 15:32:54 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/61039 might have broken SnowLeopard Intel Release (Tests)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>237124</commentid>
    <comment_count>6</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-06-11 16:34:38 -0700</bug_when>
    <thetext>Bots are still broken:
http://build.webkit.org/results/SnowLeopard%20Intel%20Release%20(Tests)/r61043%20(11542)/fast/canvas/webgl/gl-get-calls-pretty-diff.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>237134</commentid>
    <comment_count>7</comment_count>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2010-06-11 16:41:24 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; Bots are still broken:
&gt; http://build.webkit.org/results/SnowLeopard%20Intel%20Release%20(Tests)/r61043%20(11542)/fast/canvas/webgl/gl-get-calls-pretty-diff.html

Yes, sorry. Fixing immediately:

https://bugs.webkit.org/show_bug.cgi?id=40506</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>58508</attachid>
            <date>2010-06-11 14:36:35 -0700</date>
            <delta_ts>2010-06-11 14:44:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>texImage2D-signature-update.patch</filename>
            <type>text/plain</type>
            <size>52870</size>
            <attacher name="Kenneth Russell">kbr</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2MTAzNykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzQgQEAKKzIwMTAtMDYtMTEgIEtlbm5ldGggUnVzc2VsbCAgPGtickBnb29nbGUu
Y29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFk
ZCB0ZXhJbWFnZTJEIGFuZCB0ZXhTdWJJbWFnZTJEIHNpZ25hdHVyZXMgd2l0aCBpbnRlcm5hbCBm
b3JtYXQsIGV0Yy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTQwMzE4CisKKyAgICAgICAgQWRkZWQgbmV3IHRleEltYWdlMkQgYW5kIHRleFN1YkltYWdl
MkQgZW50cnkgcG9pbnRzIGZvbGxvd2luZworICAgICAgICBXZWJHTCBzcGVjaWZpY2F0aW9uIGNo
YW5nZXMuIEFkZGVkIFVOUEFDS19GTElQX1lfV0VCR0wgYW5kCisgICAgICAgIFVOUEFDS19QUkVN
VUxUSVBMWV9BTFBIQV9XRUJHTCBwaXhlbFN0b3JlaSBwYXJhbWV0ZXJzLCBob25vcmVkCisgICAg
ICAgIHRoZW0gZm9yIHRoZSBuZXcgZW50cnkgcG9pbnRzIHRha2luZyBIVE1MIGVsZW1lbnRzLCBh
bmQgYWRkZWQKKyAgICAgICAgc3VwcG9ydCB0byBnZXRQYXJhbWV0ZXIuIEFkZGVkIHdhcm5pbmdz
IHRvIHRoZSBjb25zb2xlIGZvciBjYWxscworICAgICAgICB0byB0aGUgb2Jzb2xldGUgZW50cnkg
cG9pbnRzLCB3aGljaCB3aWxsIGJlIHJlbW92ZWQgaW4gYSBmZXcKKyAgICAgICAgd2Vla3MuICBV
cGRhdGVkIGFsbCBsYXlvdXQgdGVzdHMgdG8gdXNlIHRoZSBuZXcgZW50cnkgcG9pbnRzIGFuZAor
ICAgICAgICBwaXhlbFN0b3JlaSBwYXJhbWV0ZXJzLCBhbmQgYXNzb2NpYXRlZCBleHBlY3RhdGlv
bnMuIE5vIG90aGVyIG5ldworICAgICAgICB0ZXN0cy4KKworICAgICAgICAqIGh0bWwvY2FudmFz
L1dlYkdMUmVuZGVyaW5nQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRl
cmluZ0NvbnRleHQ6OldlYkdMUmVuZGVyaW5nQ29udGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpX
ZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdldFBhcmFtZXRlcik6CisgICAgICAgIChXZWJDb3JlOjpX
ZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnBpeGVsU3RvcmVpKToKKyAgICAgICAgKFdlYkNvcmU6Oldl
YkdMUmVuZGVyaW5nQ29udGV4dDo6dGV4SW1hZ2UyREltcGwpOgorICAgICAgICAoV2ViQ29yZTo6
V2ViR0xSZW5kZXJpbmdDb250ZXh0Ojp0ZXhJbWFnZTJEKToKKyAgICAgICAgKFdlYkNvcmU6Oldl
YkdMUmVuZGVyaW5nQ29udGV4dDo6dGV4U3ViSW1hZ2UyREltcGwpOgorICAgICAgICAoV2ViQ29y
ZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0Ojp0ZXhTdWJJbWFnZTJEKToKKyAgICAgICAgKFdlYkNv
cmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dDo6cHJpbnRXYXJuaW5nVG9Db25zb2xlKToKKyAgICAg
ICAgKiBodG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuaDoKKyAgICAgICAgKiBodG1s
L2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuaWRsOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmg6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0Nv
bnRleHQzRDo6KToKKwogMjAxMC0wNi0xMSAgSmFtZXMgUm9iaW5zb24gIDxqYW1lc3JAY2hyb21p
dW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERpbWl0cmkgR2xhemtvdi4KSW5kZXg6IFdl
YkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5jcHAJKHJldmlzaW9u
IDYxMDI3KQorKysgV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0zMCw2ICszMCw4IEBACiAjaW5jbHVkZSAiV2ViR0xSZW5kZXJp
bmdDb250ZXh0LmgiCiAKICNpbmNsdWRlICJDYW52YXNQaXhlbEFycmF5LmgiCisjaW5jbHVkZSAi
Q29uc29sZS5oIgorI2luY2x1ZGUgIkRPTVdpbmRvdy5oIgogI2luY2x1ZGUgIkZyYW1lVmlldy5o
IgogI2luY2x1ZGUgIkhUTUxDYW52YXNFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTEltYWdlRWxl
bWVudC5oIgpAQCAtOTIsNiArOTQsOCBAQCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OldlYkdMUmVu
ZGVyaW5nQ29uCiAgICAgLCBtX2FjdGl2ZVRleHR1cmVVbml0KDApCiAgICAgLCBtX3BhY2tBbGln
bm1lbnQoNCkKICAgICAsIG1fdW5wYWNrQWxpZ25tZW50KDQpCisgICAgLCBtX3VucGFja0ZsaXBZ
KGZhbHNlKQorICAgICwgbV91bnBhY2tQcmVtdWx0aXBseUFscGhhKGZhbHNlKQogewogICAgIEFT
U0VSVChtX2NvbnRleHQpOwogCkBAIC0xMjY4LDYgKzEyNzIsMTAgQEAgV2ViR0xHZXRJbmZvIFdl
YkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0UAogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlVO
UEFDS19BTElHTk1FTlQ6CiAgICAgICAgIC8vIEZJWE1FOiBzaG91bGQgdGhpcyBiZSAibG9uZyIg
aW4gdGhlIHNwZWM/CiAgICAgICAgIHJldHVybiBnZXRJbnRQYXJhbWV0ZXIocG5hbWUpOworICAg
IGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlVOUEFDS19GTElQX1lfV0VCR0w6CisgICAgICAgIHJl
dHVybiBnZXRCb29sZWFuUGFyYW1ldGVyKHBuYW1lKTsKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4
dDNEOjpVTlBBQ0tfUFJFTVVMVElQTFlfQUxQSEFfV0VCR0w6CisgICAgICAgIHJldHVybiBnZXRC
b29sZWFuUGFyYW1ldGVyKHBuYW1lKTsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpWSUVX
UE9SVDoKICAgICAgICAgcmV0dXJuIGdldFdlYkdMSW50QXJyYXlQYXJhbWV0ZXIocG5hbWUpOwog
ICAgIGRlZmF1bHQ6CkBAIC0xNjg4LDE1ICsxNjk2LDIxIEBAIHZvaWQgV2ViR0xSZW5kZXJpbmdD
b250ZXh0OjpsaW5rUHJvZ3JhbSgKIAogdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnBpeGVs
U3RvcmVpKHVuc2lnbmVkIGxvbmcgcG5hbWUsIGxvbmcgcGFyYW0pCiB7Ci0gICAgbV9jb250ZXh0
LT5waXhlbFN0b3JlaShwbmFtZSwgcGFyYW0pOwotICAgIGlmIChwYXJhbSA9PSAxIHx8IHBhcmFt
ID09IDIgfHwgcGFyYW0gPT0gNCB8fCBwYXJhbSA9PSA4KSB7Ci0gICAgICAgIHN3aXRjaCAocG5h
bWUpIHsKLSAgICAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UEFDS19BTElHTk1FTlQ6Ci0g
ICAgICAgICAgICBtX3BhY2tBbGlnbm1lbnQgPSBzdGF0aWNfY2FzdDxpbnQ+KHBhcmFtKTsKLSAg
ICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpVTlBBQ0tf
QUxJR05NRU5UOgotICAgICAgICAgICAgbV91bnBhY2tBbGlnbm1lbnQgPSBzdGF0aWNfY2FzdDxp
bnQ+KHBhcmFtKTsKLSAgICAgICAgICAgIGJyZWFrOworICAgIGlmIChwbmFtZSA9PSBHcmFwaGlj
c0NvbnRleHQzRDo6VU5QQUNLX0ZMSVBfWV9XRUJHTCkgeworICAgICAgICBtX3VucGFja0ZsaXBZ
ID0gcGFyYW07CisgICAgfSBlbHNlIGlmIChwbmFtZSA9PSBHcmFwaGljc0NvbnRleHQzRDo6VU5Q
QUNLX1BSRU1VTFRJUExZX0FMUEhBX1dFQkdMKSB7CisgICAgICAgIG1fdW5wYWNrUHJlbXVsdGlw
bHlBbHBoYSA9IHBhcmFtOworICAgIH0gZWxzZSB7CisgICAgICAgIG1fY29udGV4dC0+cGl4ZWxT
dG9yZWkocG5hbWUsIHBhcmFtKTsKKyAgICAgICAgaWYgKHBhcmFtID09IDEgfHwgcGFyYW0gPT0g
MiB8fCBwYXJhbSA9PSA0IHx8IHBhcmFtID09IDgpIHsKKyAgICAgICAgICAgIHN3aXRjaCAocG5h
bWUpIHsKKyAgICAgICAgICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlBBQ0tfQUxJR05NRU5U
OgorICAgICAgICAgICAgICAgIG1fcGFja0FsaWdubWVudCA9IHN0YXRpY19jYXN0PGludD4ocGFy
YW0pOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBHcmFwaGljc0Nv
bnRleHQzRDo6VU5QQUNLX0FMSUdOTUVOVDoKKyAgICAgICAgICAgICAgICBtX3VucGFja0FsaWdu
bWVudCA9IHN0YXRpY19jYXN0PGludD4ocGFyYW0pOworICAgICAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfQogICAgIGNsZWFudXBBZnRlckdyYXBoaWNz
Q2FsbChmYWxzZSk7CkBAIC0xOTA5LDEyICsxOTIzLDE1IEBAIHZvaWQgV2ViR0xSZW5kZXJpbmdD
b250ZXh0Ojp0ZXhJbWFnZTJEQmEKICAgICBjbGVhbnVwQWZ0ZXJHcmFwaGljc0NhbGwoZmFsc2Up
OwogfQogCi12b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6dGV4SW1hZ2UyRCh1bnNpZ25lZCB0
YXJnZXQsIHVuc2lnbmVkIGxldmVsLCBJbWFnZSogaW1hZ2UsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBib29sIGZsaXBZLCBib29sIHByZW11bHRpcGx5QWxwaGEsIEV4
Y2VwdGlvbkNvZGUmIGVjKQotewordm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnRleEltYWdl
MkRJbXBsKHVuc2lnbmVkIHRhcmdldCwgdW5zaWduZWQgbGV2ZWwsIHVuc2lnbmVkIGludGVybmFs
Zm9ybWF0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2ln
bmVkIGZvcm1hdCwgdW5zaWduZWQgdHlwZSwgSW1hZ2UqIGltYWdlLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgZmxpcFksIGJvb2wgcHJlbXVsdGlwbHlB
bHBoYSwgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgLy8gRklYTUU6IHBheSBhdHRlbnRpb24g
dG8gdGhlIHVzZXIncyBzdXBwbGllZCBpbnRlcm5hbGZvcm1hdCwgZm9ybWF0IGFuZCB0eXBlCisg
ICAgLy8gRklYTUU6IHBheSBhdHRlbnRpb24gdG8gVU5QQUNLX1JPV19XSURUSAorICAgIFVOVVNF
RF9QQVJBTSh0eXBlKTsKICAgICBlYyA9IDA7CiAgICAgVmVjdG9yPHVpbnQ4X3Q+IGRhdGE7Ci0g
ICAgdW5zaWduZWQgaW50IGZvcm1hdCwgaW50ZXJuYWxmb3JtYXQ7CiAgICAgaWYgKCFtX2NvbnRl
eHQtPmV4dHJhY3RJbWFnZURhdGEoaW1hZ2UsIGZsaXBZLCBwcmVtdWx0aXBseUFscGhhLCBkYXRh
LCAmZm9ybWF0LCAmaW50ZXJuYWxmb3JtYXQpKSB7CiAgICAgICAgIG1fY29udGV4dC0+c3ludGhl
c2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFMSURfVkFMVUUpOwogICAgICAgICBy
ZXR1cm47CkBAIC0xOTMyLDIxICsxOTQ5LDgyIEBAIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0
Ojp0ZXhJbWFnZTJEKHUKICAgICAgICAgICAgICAgICAgICBmb3JtYXQsIHR5cGUsIHBpeGVscyA/
IHBpeGVscy0+YmFzZUFkZHJlc3MoKSA6IDAsIGVjKTsKIH0KIAordm9pZCBXZWJHTFJlbmRlcmlu
Z0NvbnRleHQ6OnRleEltYWdlMkQodW5zaWduZWQgdGFyZ2V0LCB1bnNpZ25lZCBsZXZlbCwgdW5z
aWduZWQgaW50ZXJuYWxmb3JtYXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB1bnNpZ25lZCBmb3JtYXQsIHVuc2lnbmVkIHR5cGUsIEltYWdlRGF0YSogcGl4ZWxzLCBF
eGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICBVTlVTRURfUEFSQU0oaW50ZXJuYWxmb3JtYXQpOwor
ICAgIFVOVVNFRF9QQVJBTShmb3JtYXQpOworICAgIFVOVVNFRF9QQVJBTSh0eXBlKTsKKyAgICAv
LyBGSVhNRTogcGF5IGF0dGVudGlvbiB0byB0aGUgdXNlcidzIHN1cHBsaWVkIGludGVybmFsZm9y
bWF0LCBmb3JtYXQgYW5kIHR5cGUKKyAgICBlYyA9IDA7CisgICAgVmVjdG9yPHVpbnQ4X3Q+IGRh
dGE7CisgICAgaWYgKCFtX2NvbnRleHQtPmV4dHJhY3RJbWFnZURhdGEocGl4ZWxzLCBtX3VucGFj
a0ZsaXBZLCBtX3VucGFja1ByZW11bHRpcGx5QWxwaGEsIGRhdGEpKSB7CisgICAgICAgIG1fY29u
dGV4dC0+c3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFMSURfVkFMVUUp
OworICAgICAgICByZXR1cm47CisgICAgfQorICAgIHRleEltYWdlMkRCYXNlKHRhcmdldCwgbGV2
ZWwsIEdyYXBoaWNzQ29udGV4dDNEOjpSR0JBLCBwaXhlbHMtPndpZHRoKCksIHBpeGVscy0+aGVp
Z2h0KCksIDAsCisgICAgICAgICAgICAgICAgICAgR3JhcGhpY3NDb250ZXh0M0Q6OlJHQkEsIEdy
YXBoaWNzQ29udGV4dDNEOjpVTlNJR05FRF9CWVRFLCBkYXRhLmRhdGEoKSwgZWMpOworfQorCit2
b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6dGV4SW1hZ2UyRCh1bnNpZ25lZCB0YXJnZXQsIHVu
c2lnbmVkIGxldmVsLCB1bnNpZ25lZCBpbnRlcm5hbGZvcm1hdCwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGZvcm1hdCwgdW5zaWduZWQgdHlwZSwgSFRN
TEltYWdlRWxlbWVudCogaW1hZ2UsIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIGVjID0gMDsK
KyAgICBpZiAoIWltYWdlIHx8ICFpbWFnZS0+Y2FjaGVkSW1hZ2UoKSkgeworICAgICAgICBtX2Nv
bnRleHQtPnN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX1ZBTFVF
KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICB0ZXhJbWFnZTJESW1wbCh0YXJnZXQsIGxl
dmVsLCBpbnRlcm5hbGZvcm1hdCwgZm9ybWF0LCB0eXBlLCBpbWFnZS0+Y2FjaGVkSW1hZ2UoKS0+
aW1hZ2UoKSwKKyAgICAgICAgICAgICAgICAgICBtX3VucGFja0ZsaXBZLCBtX3VucGFja1ByZW11
bHRpcGx5QWxwaGEsIGVjKTsKK30KKwordm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnRleElt
YWdlMkQodW5zaWduZWQgdGFyZ2V0LCB1bnNpZ25lZCBsZXZlbCwgdW5zaWduZWQgaW50ZXJuYWxm
b3JtYXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBm
b3JtYXQsIHVuc2lnbmVkIHR5cGUsIEhUTUxDYW52YXNFbGVtZW50KiBjYW52YXMsIEV4Y2VwdGlv
bkNvZGUmIGVjKQoreworICAgIGVjID0gMDsKKyAgICBpZiAoIWNhbnZhcyB8fCAhY2FudmFzLT5i
dWZmZXIoKSkgeworICAgICAgICBtX2NvbnRleHQtPnN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNz
Q29udGV4dDNEOjpJTlZBTElEX1ZBTFVFKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICB0
ZXhJbWFnZTJESW1wbCh0YXJnZXQsIGxldmVsLCBpbnRlcm5hbGZvcm1hdCwgZm9ybWF0LCB0eXBl
LCBjYW52YXMtPmJ1ZmZlcigpLT5pbWFnZSgpLAorICAgICAgICAgICAgICAgICAgIG1fdW5wYWNr
RmxpcFksIG1fdW5wYWNrUHJlbXVsdGlwbHlBbHBoYSwgZWMpOworfQorCit2b2lkIFdlYkdMUmVu
ZGVyaW5nQ29udGV4dDo6dGV4SW1hZ2UyRCh1bnNpZ25lZCB0YXJnZXQsIHVuc2lnbmVkIGxldmVs
LCB1bnNpZ25lZCBpbnRlcm5hbGZvcm1hdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHVuc2lnbmVkIGZvcm1hdCwgdW5zaWduZWQgdHlwZSwgSFRNTFZpZGVvRWxlbWVu
dCogdmlkZW8sIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIC8vIEZJWE1FOiBOZWVkIHRvIGlt
cGxlbWVudCB0aGlzIGNhbGwKKyAgICBVTlVTRURfUEFSQU0odGFyZ2V0KTsKKyAgICBVTlVTRURf
UEFSQU0obGV2ZWwpOworICAgIFVOVVNFRF9QQVJBTShpbnRlcm5hbGZvcm1hdCk7CisgICAgVU5V
U0VEX1BBUkFNKGZvcm1hdCk7CisgICAgVU5VU0VEX1BBUkFNKHR5cGUpOworICAgIFVOVVNFRF9Q
QVJBTSh2aWRlbyk7CisKKyAgICBlYyA9IDA7CisgICAgY2xlYW51cEFmdGVyR3JhcGhpY3NDYWxs
KGZhbHNlKTsKK30KKworLy8gT2Jzb2xldGUgdGV4SW1hZ2UyRCBlbnRyeSBwb2ludHMgLS0gdG8g
YmUgcmVtb3ZlZCBzaG9ydGx5LiAoRklYTUUpCisKIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0
Ojp0ZXhJbWFnZTJEKHVuc2lnbmVkIHRhcmdldCwgdW5zaWduZWQgbGV2ZWwsIEltYWdlRGF0YSog
cGl4ZWxzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRXhjZXB0aW9u
Q29kZSYgZWMpCiB7CisgICAgcHJpbnRXYXJuaW5nVG9Db25zb2xlKCJDYWxsaW5nIG9ic29sZXRl
IHRleEltYWdlMkQoR0xlbnVtIHRhcmdldCwgR0xpbnQgbGV2ZWwsIEltYWdlRGF0YSBwaXhlbHMp
Iik7CiAgICAgdGV4SW1hZ2UyRCh0YXJnZXQsIGxldmVsLCBwaXhlbHMsIDAsIDAsIGVjKTsKIH0K
IAogdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnRleEltYWdlMkQodW5zaWduZWQgdGFyZ2V0
LCB1bnNpZ25lZCBsZXZlbCwgSW1hZ2VEYXRhKiBwaXhlbHMsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBib29sIGZsaXBZLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKKyAg
ICBwcmludFdhcm5pbmdUb0NvbnNvbGUoIkNhbGxpbmcgb2Jzb2xldGUgdGV4SW1hZ2UyRChHTGVu
dW0gdGFyZ2V0LCBHTGludCBsZXZlbCwgSW1hZ2VEYXRhIHBpeGVscywgR0xib29sZWFuIGZsaXBZ
KSIpOwogICAgIHRleEltYWdlMkQodGFyZ2V0LCBsZXZlbCwgcGl4ZWxzLCBmbGlwWSwgMCwgZWMp
OwogfQogCiB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6dGV4SW1hZ2UyRCh1bnNpZ25lZCB0
YXJnZXQsIHVuc2lnbmVkIGxldmVsLCBJbWFnZURhdGEqIHBpeGVscywKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgZmxpcFksIGJvb2wgcHJlbXVsdGlwbHlBbHBo
YSwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CisgICAgcHJpbnRXYXJuaW5nVG9Db25zb2xlKCJDYWxs
aW5nIG9ic29sZXRlIHRleEltYWdlMkQoR0xlbnVtIHRhcmdldCwgR0xpbnQgbGV2ZWwsIEltYWdl
RGF0YSBwaXhlbHMsIEdMYm9vbGVhbiBmbGlwWSwgR0xib29sZWFuIHByZW11bHRpcGx5QWxwaGEp
Iik7CiAgICAgZWMgPSAwOwogICAgIFZlY3Rvcjx1aW50OF90PiBkYXRhOwogICAgIGlmICghbV9j
b250ZXh0LT5leHRyYWN0SW1hZ2VEYXRhKHBpeGVscywgZmxpcFksIHByZW11bHRpcGx5QWxwaGEs
IGRhdGEpKSB7CkBAIC0xOTYxLDQ3ICsyMDM5LDUzIEBAIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250
ZXh0Ojp0ZXhJbWFnZTJEKHUKIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0Ojp0ZXhJbWFnZTJE
KHVuc2lnbmVkIHRhcmdldCwgdW5zaWduZWQgbGV2ZWwsIEhUTUxJbWFnZUVsZW1lbnQqIGltYWdl
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRXhjZXB0aW9uQ29kZSYg
ZWMpCiB7CisgICAgcHJpbnRXYXJuaW5nVG9Db25zb2xlKCJDYWxsaW5nIG9ic29sZXRlIHRleElt
YWdlMkQoR0xlbnVtIHRhcmdldCwgR0xpbnQgbGV2ZWwsIEhUTUxJbWFnZUVsZW1lbnQgaW1hZ2Up
Iik7CiAgICAgdGV4SW1hZ2UyRCh0YXJnZXQsIGxldmVsLCBpbWFnZSwgMCwgMCwgZWMpOwogfQog
CiB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6dGV4SW1hZ2UyRCh1bnNpZ25lZCB0YXJnZXQs
IHVuc2lnbmVkIGxldmVsLCBIVE1MSW1hZ2VFbGVtZW50KiBpbWFnZSwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgZmxpcFksIEV4Y2VwdGlvbkNvZGUmIGVjKQog
eworICAgIHByaW50V2FybmluZ1RvQ29uc29sZSgiQ2FsbGluZyBvYnNvbGV0ZSB0ZXhJbWFnZTJE
KEdMZW51bSB0YXJnZXQsIEdMaW50IGxldmVsLCBIVE1MSW1hZ2VFbGVtZW50IGltYWdlLCBHTGJv
b2xlYW4gZmxpcFkpIik7CiAgICAgdGV4SW1hZ2UyRCh0YXJnZXQsIGxldmVsLCBpbWFnZSwgZmxp
cFksIDAsIGVjKTsKIH0KIAogdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnRleEltYWdlMkQo
dW5zaWduZWQgdGFyZ2V0LCB1bnNpZ25lZCBsZXZlbCwgSFRNTEltYWdlRWxlbWVudCogaW1hZ2Us
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sIGZsaXBZLCBib29s
IHByZW11bHRpcGx5QWxwaGEsIEV4Y2VwdGlvbkNvZGUmIGVjKQogeworICAgIHByaW50V2Fybmlu
Z1RvQ29uc29sZSgiQ2FsbGluZyBvYnNvbGV0ZSB0ZXhJbWFnZTJEKEdMZW51bSB0YXJnZXQsIEdM
aW50IGxldmVsLCBIVE1MSW1hZ2VFbGVtZW50IGltYWdlLCBHTGJvb2xlYW4gZmxpcFksIEdMYm9v
bGVhbiBwcmVtdWx0aXBseUFscGhhKSIpOwogICAgIGVjID0gMDsKICAgICBpZiAoIWltYWdlIHx8
ICFpbWFnZS0+Y2FjaGVkSW1hZ2UoKSkgewogICAgICAgICBtX2NvbnRleHQtPnN5bnRoZXNpemVH
TEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX1ZBTFVFKTsKICAgICAgICAgcmV0dXJu
OwogICAgIH0KLSAgICB0ZXhJbWFnZTJEKHRhcmdldCwgbGV2ZWwsIGltYWdlLT5jYWNoZWRJbWFn
ZSgpLT5pbWFnZSgpLCBmbGlwWSwgcHJlbXVsdGlwbHlBbHBoYSwgZWMpOworICAgIHRleEltYWdl
MkRJbXBsKHRhcmdldCwgbGV2ZWwsIEdyYXBoaWNzQ29udGV4dDNEOjpSR0JBLCBHcmFwaGljc0Nv
bnRleHQzRDo6UkdCQSwgR3JhcGhpY3NDb250ZXh0M0Q6OlVOU0lHTkVEX0JZVEUsIGltYWdlLT5j
YWNoZWRJbWFnZSgpLT5pbWFnZSgpLCBmbGlwWSwgcHJlbXVsdGlwbHlBbHBoYSwgZWMpOwogfQog
CiB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6dGV4SW1hZ2UyRCh1bnNpZ25lZCB0YXJnZXQs
IHVuc2lnbmVkIGxldmVsLCBIVE1MQ2FudmFzRWxlbWVudCogY2FudmFzLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CisgICAgcHJp
bnRXYXJuaW5nVG9Db25zb2xlKCJDYWxsaW5nIG9ic29sZXRlIHRleEltYWdlMkQoR0xlbnVtIHRh
cmdldCwgR0xpbnQgbGV2ZWwsIEhUTUxDYW52YXNFbGVtZW50IGNhbnZhcykiKTsKICAgICB0ZXhJ
bWFnZTJEKHRhcmdldCwgbGV2ZWwsIGNhbnZhcywgMCwgMCwgZWMpOwogfQogCiB2b2lkIFdlYkdM
UmVuZGVyaW5nQ29udGV4dDo6dGV4SW1hZ2UyRCh1bnNpZ25lZCB0YXJnZXQsIHVuc2lnbmVkIGxl
dmVsLCBIVE1MQ2FudmFzRWxlbWVudCogY2FudmFzLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgYm9vbCBmbGlwWSwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CisgICAgcHJp
bnRXYXJuaW5nVG9Db25zb2xlKCJDYWxsaW5nIG9ic29sZXRlIHRleEltYWdlMkQoR0xlbnVtIHRh
cmdldCwgR0xpbnQgbGV2ZWwsIEhUTUxDYW52YXNFbGVtZW50IGNhbnZhcywgR0xib29sZWFuIGZs
aXBZKSIpOwogICAgIHRleEltYWdlMkQodGFyZ2V0LCBsZXZlbCwgY2FudmFzLCBmbGlwWSwgMCwg
ZWMpOwogfQogCiB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6dGV4SW1hZ2UyRCh1bnNpZ25l
ZCB0YXJnZXQsIHVuc2lnbmVkIGxldmVsLCBIVE1MQ2FudmFzRWxlbWVudCogY2FudmFzLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBmbGlwWSwgYm9vbCBwcmVt
dWx0aXBseUFscGhhLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKKyAgICBwcmludFdhcm5pbmdUb0Nv
bnNvbGUoIkNhbGxpbmcgb2Jzb2xldGUgdGV4SW1hZ2UyRChHTGVudW0gdGFyZ2V0LCBHTGludCBs
ZXZlbCwgSFRNTENhbnZhc0VsZW1lbnQgY2FudmFzLCBHTGJvb2xlYW4gZmxpcFksIEdMYm9vbGVh
biBwcmVtdWx0aXBseUFscGhhKSIpOwogICAgIGVjID0gMDsKICAgICBpZiAoIWNhbnZhcyB8fCAh
Y2FudmFzLT5idWZmZXIoKSkgewogICAgICAgICBtX2NvbnRleHQtPnN5bnRoZXNpemVHTEVycm9y
KEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX1ZBTFVFKTsKICAgICAgICAgcmV0dXJuOwogICAg
IH0KLSAgICB0ZXhJbWFnZTJEKHRhcmdldCwgbGV2ZWwsIGNhbnZhcy0+YnVmZmVyKCktPmltYWdl
KCksIGZsaXBZLCBwcmVtdWx0aXBseUFscGhhLCBlYyk7CisgICAgdGV4SW1hZ2UyREltcGwodGFy
Z2V0LCBsZXZlbCwgR3JhcGhpY3NDb250ZXh0M0Q6OlJHQkEsIEdyYXBoaWNzQ29udGV4dDNEOjpS
R0JBLCBHcmFwaGljc0NvbnRleHQzRDo6VU5TSUdORURfQllURSwgY2FudmFzLT5idWZmZXIoKS0+
aW1hZ2UoKSwgZmxpcFksIHByZW11bHRpcGx5QWxwaGEsIGVjKTsKIH0KIAogdm9pZCBXZWJHTFJl
bmRlcmluZ0NvbnRleHQ6OnRleEltYWdlMkQodW5zaWduZWQgdGFyZ2V0LCB1bnNpZ25lZCBsZXZl
bCwgSFRNTFZpZGVvRWxlbWVudCogdmlkZW8sCkBAIC0yMDk4LDEyICsyMTgyLDE2IEBAIHZvaWQg
V2ViR0xSZW5kZXJpbmdDb250ZXh0Ojp0ZXhTdWJJbWFnZTIKICAgICBjbGVhbnVwQWZ0ZXJHcmFw
aGljc0NhbGwoZmFsc2UpOwogfQogCi12b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6dGV4U3Vi
SW1hZ2UyRCh1bnNpZ25lZCB0YXJnZXQsIHVuc2lnbmVkIGxldmVsLCB1bnNpZ25lZCB4b2Zmc2V0
LCB1bnNpZ25lZCB5b2Zmc2V0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgSW1hZ2UqIGltYWdlLCBib29sIGZsaXBZLCBib29sIHByZW11bHRpcGx5QWxwaGEsIEV4
Y2VwdGlvbkNvZGUmIGVjKQotewordm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnRleFN1Yklt
YWdlMkRJbXBsKHVuc2lnbmVkIHRhcmdldCwgdW5zaWduZWQgbGV2ZWwsIHVuc2lnbmVkIHhvZmZz
ZXQsIHVuc2lnbmVkIHlvZmZzZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgdW5zaWduZWQgZm9ybWF0LCB1bnNpZ25lZCB0eXBlLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEltYWdlKiBpbWFnZSwgYm9vbCBmbGlw
WSwgYm9vbCBwcmVtdWx0aXBseUFscGhhLCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICBVTlVT
RURfUEFSQU0odHlwZSk7CisgICAgLy8gRklYTUU6IHBheSBhdHRlbnRpb24gdG8gdGhlIHVzZXIn
cyBzdXBwbGllZCBmb3JtYXQgYW5kIHR5cGUKKyAgICAvLyBGSVhNRTogcGF5IGF0dGVudGlvbiB0
byBVTlBBQ0tfUk9XX1dJRFRICiAgICAgZWMgPSAwOwogICAgIFZlY3Rvcjx1aW50OF90PiBkYXRh
OwotICAgIHVuc2lnbmVkIGludCBmb3JtYXQsIGludGVybmFsZm9ybWF0OworICAgIHVuc2lnbmVk
IGludCBpbnRlcm5hbGZvcm1hdDsKICAgICBpZiAoIW1fY29udGV4dC0+ZXh0cmFjdEltYWdlRGF0
YShpbWFnZSwgZmxpcFksIHByZW11bHRpcGx5QWxwaGEsIGRhdGEsICZmb3JtYXQsICZpbnRlcm5h
bGZvcm1hdCkpIHsKICAgICAgICAgbV9jb250ZXh0LT5zeW50aGVzaXplR0xFcnJvcihHcmFwaGlj
c0NvbnRleHQzRDo6SU5WQUxJRF9WQUxVRSk7CiAgICAgICAgIHJldHVybjsKQEAgLTIxMjEsMjAg
KzIyMDksODAgQEAgdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnRleFN1YkltYWdlMgogfQog
CiB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6dGV4U3ViSW1hZ2UyRCh1bnNpZ25lZCB0YXJn
ZXQsIHVuc2lnbmVkIGxldmVsLCB1bnNpZ25lZCB4b2Zmc2V0LCB1bnNpZ25lZCB5b2Zmc2V0LAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgZm9ybWF0
LCB1bnNpZ25lZCB0eXBlLCBJbWFnZURhdGEqIHBpeGVscywgRXhjZXB0aW9uQ29kZSYgZWMpCit7
CisgICAgVU5VU0VEX1BBUkFNKGZvcm1hdCk7CisgICAgVU5VU0VEX1BBUkFNKHR5cGUpOworICAg
IC8vIEZJWE1FOiBwYXkgYXR0ZW50aW9uIHRvIHRoZSB1c2VyJ3Mgc3VwcGxpZWQgZm9ybWF0IGFu
ZCB0eXBlCisgICAgZWMgPSAwOworICAgIFZlY3Rvcjx1aW50OF90PiBkYXRhOworICAgIGlmICgh
bV9jb250ZXh0LT5leHRyYWN0SW1hZ2VEYXRhKHBpeGVscywgbV91bnBhY2tGbGlwWSwgbV91bnBh
Y2tQcmVtdWx0aXBseUFscGhhLCBkYXRhKSkgeworICAgICAgICBtX2NvbnRleHQtPnN5bnRoZXNp
emVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX1ZBTFVFKTsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKyAgICB0ZXhTdWJJbWFnZTJEQmFzZSh0YXJnZXQsIGxldmVsLCB4b2Zmc2V0
LCB5b2Zmc2V0LCBwaXhlbHMtPndpZHRoKCksIHBpeGVscy0+aGVpZ2h0KCksCisgICAgICAgICAg
ICAgICAgICAgICAgR3JhcGhpY3NDb250ZXh0M0Q6OlJHQkEsIEdyYXBoaWNzQ29udGV4dDNEOjpV
TlNJR05FRF9CWVRFLCBkYXRhLmRhdGEoKSwgZWMpOworfQorCit2b2lkIFdlYkdMUmVuZGVyaW5n
Q29udGV4dDo6dGV4U3ViSW1hZ2UyRCh1bnNpZ25lZCB0YXJnZXQsIHVuc2lnbmVkIGxldmVsLCB1
bnNpZ25lZCB4b2Zmc2V0LCB1bnNpZ25lZCB5b2Zmc2V0LAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgZm9ybWF0LCB1bnNpZ25lZCB0eXBlLCBIVE1M
SW1hZ2VFbGVtZW50KiBpbWFnZSwgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgZWMgPSAwOwor
ICAgIGlmICghaW1hZ2UgfHwgIWltYWdlLT5jYWNoZWRJbWFnZSgpKSB7CisgICAgICAgIG1fY29u
dGV4dC0+c3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFMSURfVkFMVUUp
OworICAgICAgICByZXR1cm47CisgICAgfQorICAgIHRleFN1YkltYWdlMkRJbXBsKHRhcmdldCwg
bGV2ZWwsIHhvZmZzZXQsIHlvZmZzZXQsIGZvcm1hdCwgdHlwZSwgaW1hZ2UtPmNhY2hlZEltYWdl
KCktPmltYWdlKCksCisgICAgICAgICAgICAgICAgICAgICAgbV91bnBhY2tGbGlwWSwgbV91bnBh
Y2tQcmVtdWx0aXBseUFscGhhLCBlYyk7Cit9CisKK3ZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0
Ojp0ZXhTdWJJbWFnZTJEKHVuc2lnbmVkIHRhcmdldCwgdW5zaWduZWQgbGV2ZWwsIHVuc2lnbmVk
IHhvZmZzZXQsIHVuc2lnbmVkIHlvZmZzZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB1bnNpZ25lZCBmb3JtYXQsIHVuc2lnbmVkIHR5cGUsIEhUTUxDYW52YXNF
bGVtZW50KiBjYW52YXMsIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIGVjID0gMDsKKyAgICBp
ZiAoIWNhbnZhcyB8fCAhY2FudmFzLT5idWZmZXIoKSkgeworICAgICAgICBtX2NvbnRleHQtPnN5
bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX1ZBTFVFKTsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0KKyAgICB0ZXhTdWJJbWFnZTJESW1wbCh0YXJnZXQsIGxldmVsLCB4
b2Zmc2V0LCB5b2Zmc2V0LCBmb3JtYXQsIHR5cGUsIGNhbnZhcy0+YnVmZmVyKCktPmltYWdlKCks
CisgICAgICAgICAgICAgICAgICAgICAgbV91bnBhY2tGbGlwWSwgbV91bnBhY2tQcmVtdWx0aXBs
eUFscGhhLCBlYyk7Cit9CisKK3ZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0Ojp0ZXhTdWJJbWFn
ZTJEKHVuc2lnbmVkIHRhcmdldCwgdW5zaWduZWQgbGV2ZWwsIHVuc2lnbmVkIHhvZmZzZXQsIHVu
c2lnbmVkIHlvZmZzZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB1bnNpZ25lZCBmb3JtYXQsIHVuc2lnbmVkIHR5cGUsIEhUTUxWaWRlb0VsZW1lbnQqIHZpZGVv
LCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICAvLyBGSVhNRTogTmVlZCB0byBpbXBsZW1lbnQg
dGhpcyBjYWxsCisgICAgVU5VU0VEX1BBUkFNKHRhcmdldCk7CisgICAgVU5VU0VEX1BBUkFNKGxl
dmVsKTsKKyAgICBVTlVTRURfUEFSQU0oeG9mZnNldCk7CisgICAgVU5VU0VEX1BBUkFNKHlvZmZz
ZXQpOworICAgIFVOVVNFRF9QQVJBTShmb3JtYXQpOworICAgIFVOVVNFRF9QQVJBTSh0eXBlKTsK
KyAgICBVTlVTRURfUEFSQU0odmlkZW8pOworICAgIGVjID0gMDsKKyAgICBjbGVhbnVwQWZ0ZXJH
cmFwaGljc0NhbGwoZmFsc2UpOworfQorCisvLyBPYnNvbGV0ZSB0ZXhTdWJJbWFnZTJEIGVudHJ5
IHBvaW50cyAtLSB0byBiZSByZW1vdmVkIHNob3J0bHkuIChGSVhNRSkKKwordm9pZCBXZWJHTFJl
bmRlcmluZ0NvbnRleHQ6OnRleFN1YkltYWdlMkQodW5zaWduZWQgdGFyZ2V0LCB1bnNpZ25lZCBs
ZXZlbCwgdW5zaWduZWQgeG9mZnNldCwgdW5zaWduZWQgeW9mZnNldCwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEltYWdlRGF0YSogcGl4ZWxzLCBFeGNlcHRpb25D
b2RlJiBlYykKIHsKKyAgICBwcmludFdhcm5pbmdUb0NvbnNvbGUoIkNhbGxpbmcgb2Jzb2xldGUg
dGV4U3ViSW1hZ2UyRChHTGVudW0gdGFyZ2V0LCBHTGludCBsZXZlbCwgR0xpbnQgeG9mZnNldCwg
R0xpbnQgeW9mZnNldCwgSW1hZ2VEYXRhIHBpeGVscykiKTsKICAgICB0ZXhTdWJJbWFnZTJEKHRh
cmdldCwgbGV2ZWwsIHhvZmZzZXQsIHlvZmZzZXQsIHBpeGVscywgMCwgMCwgZWMpOwogfQogCiB2
b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6dGV4U3ViSW1hZ2UyRCh1bnNpZ25lZCB0YXJnZXQs
IHVuc2lnbmVkIGxldmVsLCB1bnNpZ25lZCB4b2Zmc2V0LCB1bnNpZ25lZCB5b2Zmc2V0LAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSW1hZ2VEYXRhKiBwaXhlbHMs
IGJvb2wgZmxpcFksIEV4Y2VwdGlvbkNvZGUmIGVjKQogeworICAgIHByaW50V2FybmluZ1RvQ29u
c29sZSgiQ2FsbGluZyBvYnNvbGV0ZSB0ZXhTdWJJbWFnZTJEKEdMZW51bSB0YXJnZXQsIEdMaW50
IGxldmVsLCBHTGludCB4b2Zmc2V0LCBHTGludCB5b2Zmc2V0LCBJbWFnZURhdGEgcGl4ZWxzLCBH
TGJvb2xlYW4gZmxpcFkpIik7CiAgICAgdGV4U3ViSW1hZ2UyRCh0YXJnZXQsIGxldmVsLCB4b2Zm
c2V0LCB5b2Zmc2V0LCBwaXhlbHMsIGZsaXBZLCAwLCBlYyk7CiB9CiAKIHZvaWQgV2ViR0xSZW5k
ZXJpbmdDb250ZXh0Ojp0ZXhTdWJJbWFnZTJEKHVuc2lnbmVkIHRhcmdldCwgdW5zaWduZWQgbGV2
ZWwsIHVuc2lnbmVkIHhvZmZzZXQsIHVuc2lnbmVkIHlvZmZzZXQsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBJbWFnZURhdGEqIHBpeGVscywgYm9vbCBmbGlwWSwg
Ym9vbCBwcmVtdWx0aXBseUFscGhhLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKKyAgICBwcmludFdh
cm5pbmdUb0NvbnNvbGUoIkNhbGxpbmcgb2Jzb2xldGUgdGV4U3ViSW1hZ2UyRChHTGVudW0gdGFy
Z2V0LCBHTGludCBsZXZlbCwgR0xpbnQgeG9mZnNldCwgR0xpbnQgeW9mZnNldCwgSW1hZ2VEYXRh
IHBpeGVscywgR0xib29sZWFuIGZsaXBZLCBHTGJvb2xlYW4gcHJlbXVsdGlwbHlBbHBoYSkiKTsK
ICAgICBlYyA9IDA7CiAgICAgVmVjdG9yPHVpbnQ4X3Q+IGRhdGE7CiAgICAgaWYgKCFtX2NvbnRl
eHQtPmV4dHJhY3RJbWFnZURhdGEocGl4ZWxzLCBmbGlwWSwgcHJlbXVsdGlwbHlBbHBoYSwgZGF0
YSkpIHsKQEAgLTIxNDgsNDkgKzIyOTYsNTUgQEAgdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6
OnRleFN1YkltYWdlMgogdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnRleFN1YkltYWdlMkQo
dW5zaWduZWQgdGFyZ2V0LCB1bnNpZ25lZCBsZXZlbCwgdW5zaWduZWQgeG9mZnNldCwgdW5zaWdu
ZWQgeW9mZnNldCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEhU
TUxJbWFnZUVsZW1lbnQqIGltYWdlLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKKyAgICBwcmludFdh
cm5pbmdUb0NvbnNvbGUoIkNhbGxpbmcgb2Jzb2xldGUgdGV4U3ViSW1hZ2UyRChHTGVudW0gdGFy
Z2V0LCBHTGludCBsZXZlbCwgR0xpbnQgeG9mZnNldCwgR0xpbnQgeW9mZnNldCwgSFRNTEltYWdl
RWxlbWVudCBpbWFnZSkiKTsKICAgICB0ZXhTdWJJbWFnZTJEKHRhcmdldCwgbGV2ZWwsIHhvZmZz
ZXQsIHlvZmZzZXQsIGltYWdlLCAwLCAwLCBlYyk7CiB9CiAKIHZvaWQgV2ViR0xSZW5kZXJpbmdD
b250ZXh0Ojp0ZXhTdWJJbWFnZTJEKHVuc2lnbmVkIHRhcmdldCwgdW5zaWduZWQgbGV2ZWwsIHVu
c2lnbmVkIHhvZmZzZXQsIHVuc2lnbmVkIHlvZmZzZXQsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBIVE1MSW1hZ2VFbGVtZW50KiBpbWFnZSwgYm9vbCBmbGlwWSwg
RXhjZXB0aW9uQ29kZSYgZWMpCiB7CisgICAgcHJpbnRXYXJuaW5nVG9Db25zb2xlKCJDYWxsaW5n
IG9ic29sZXRlIHRleFN1YkltYWdlMkQoR0xlbnVtIHRhcmdldCwgR0xpbnQgbGV2ZWwsIEdMaW50
IHhvZmZzZXQsIEdMaW50IHlvZmZzZXQsIEhUTUxJbWFnZUVsZW1lbnQgaW1hZ2UsIEdMYm9vbGVh
biBmbGlwWSkiKTsKICAgICB0ZXhTdWJJbWFnZTJEKHRhcmdldCwgbGV2ZWwsIHhvZmZzZXQsIHlv
ZmZzZXQsIGltYWdlLCBmbGlwWSwgMCwgZWMpOwogfQogCiB2b2lkIFdlYkdMUmVuZGVyaW5nQ29u
dGV4dDo6dGV4U3ViSW1hZ2UyRCh1bnNpZ25lZCB0YXJnZXQsIHVuc2lnbmVkIGxldmVsLCB1bnNp
Z25lZCB4b2Zmc2V0LCB1bnNpZ25lZCB5b2Zmc2V0LAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgSFRNTEltYWdlRWxlbWVudCogaW1hZ2UsIGJvb2wgZmxpcFksIGJv
b2wgcHJlbXVsdGlwbHlBbHBoYSwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CisgICAgcHJpbnRXYXJu
aW5nVG9Db25zb2xlKCJDYWxsaW5nIG9ic29sZXRlIHRleFN1YkltYWdlMkQoR0xlbnVtIHRhcmdl
dCwgR0xpbnQgbGV2ZWwsIEdMaW50IHhvZmZzZXQsIEdMaW50IHlvZmZzZXQsIEhUTUxJbWFnZUVs
ZW1lbnQgaW1hZ2UsIEdMYm9vbGVhbiBmbGlwWSwgR0xib29sZWFuIHByZW11bHRpcGx5QWxwaGEp
Iik7CiAgICAgZWMgPSAwOwogICAgIGlmICghaW1hZ2UgfHwgIWltYWdlLT5jYWNoZWRJbWFnZSgp
KSB7CiAgICAgICAgIG1fY29udGV4dC0+c3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0
M0Q6OklOVkFMSURfVkFMVUUpOwogICAgICAgICByZXR1cm47CiAgICAgfQotICAgIHRleFN1Yklt
YWdlMkQodGFyZ2V0LCBsZXZlbCwgeG9mZnNldCwgeW9mZnNldCwgaW1hZ2UtPmNhY2hlZEltYWdl
KCktPmltYWdlKCksCi0gICAgICAgICAgICAgICAgICBmbGlwWSwgcHJlbXVsdGlwbHlBbHBoYSwg
ZWMpOworICAgIHRleFN1YkltYWdlMkRJbXBsKHRhcmdldCwgbGV2ZWwsIHhvZmZzZXQsIHlvZmZz
ZXQsIEdyYXBoaWNzQ29udGV4dDNEOjpSR0JBLCBHcmFwaGljc0NvbnRleHQzRDo6VU5TSUdORURf
QllURSwgaW1hZ2UtPmNhY2hlZEltYWdlKCktPmltYWdlKCksCisgICAgICAgICAgICAgICAgICAg
ICAgZmxpcFksIHByZW11bHRpcGx5QWxwaGEsIGVjKTsKIH0KIAogdm9pZCBXZWJHTFJlbmRlcmlu
Z0NvbnRleHQ6OnRleFN1YkltYWdlMkQodW5zaWduZWQgdGFyZ2V0LCB1bnNpZ25lZCBsZXZlbCwg
dW5zaWduZWQgeG9mZnNldCwgdW5zaWduZWQgeW9mZnNldCwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIEhUTUxDYW52YXNFbGVtZW50KiBjYW52YXMsIEV4Y2VwdGlv
bkNvZGUmIGVjKQogeworICAgIHByaW50V2FybmluZ1RvQ29uc29sZSgiQ2FsbGluZyBvYnNvbGV0
ZSB0ZXhTdWJJbWFnZTJEKEdMZW51bSB0YXJnZXQsIEdMaW50IGxldmVsLCBHTGludCB4b2Zmc2V0
LCBHTGludCB5b2Zmc2V0LCBIVE1MQ2FudmFzRWxlbWVudCBjYW52YXMpIik7CiAgICAgdGV4U3Vi
SW1hZ2UyRCh0YXJnZXQsIGxldmVsLCB4b2Zmc2V0LCB5b2Zmc2V0LCBjYW52YXMsIDAsIDAsIGVj
KTsKIH0KIAogdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnRleFN1YkltYWdlMkQodW5zaWdu
ZWQgdGFyZ2V0LCB1bnNpZ25lZCBsZXZlbCwgdW5zaWduZWQgeG9mZnNldCwgdW5zaWduZWQgeW9m
ZnNldCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEhUTUxDYW52
YXNFbGVtZW50KiBjYW52YXMsIGJvb2wgZmxpcFksIEV4Y2VwdGlvbkNvZGUmIGVjKQogeworICAg
IHByaW50V2FybmluZ1RvQ29uc29sZSgiQ2FsbGluZyBvYnNvbGV0ZSB0ZXhTdWJJbWFnZTJEKEdM
ZW51bSB0YXJnZXQsIEdMaW50IGxldmVsLCBHTGludCB4b2Zmc2V0LCBHTGludCB5b2Zmc2V0LCBI
VE1MQ2FudmFzRWxlbWVudCBjYW52YXMsIEdMYm9vbGVhbiBmbGlwWSkiKTsKICAgICB0ZXhTdWJJ
bWFnZTJEKHRhcmdldCwgbGV2ZWwsIHhvZmZzZXQsIHlvZmZzZXQsIGNhbnZhcywgZmxpcFksIDAs
IGVjKTsKIH0KIAogdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnRleFN1YkltYWdlMkQodW5z
aWduZWQgdGFyZ2V0LCB1bnNpZ25lZCBsZXZlbCwgdW5zaWduZWQgeG9mZnNldCwgdW5zaWduZWQg
eW9mZnNldCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEhUTUxD
YW52YXNFbGVtZW50KiBjYW52YXMsIGJvb2wgZmxpcFksIGJvb2wgcHJlbXVsdGlwbHlBbHBoYSwg
RXhjZXB0aW9uQ29kZSYgZWMpCiB7CisgICAgcHJpbnRXYXJuaW5nVG9Db25zb2xlKCJDYWxsaW5n
IG9ic29sZXRlIHRleFN1YkltYWdlMkQoR0xlbnVtIHRhcmdldCwgR0xpbnQgbGV2ZWwsIEdMaW50
IHhvZmZzZXQsIEdMaW50IHlvZmZzZXQsIEhUTUxDYW52YXNFbGVtZW50IGNhbnZhcywgR0xib29s
ZWFuIGZsaXBZLCBHTGJvb2xlYW4gcHJlbXVsdGlwbHlBbHBoYSkiKTsKICAgICBlYyA9IDA7CiAg
ICAgaWYgKCFjYW52YXMgfHwgIWNhbnZhcy0+YnVmZmVyKCkpIHsKICAgICAgICAgbV9jb250ZXh0
LT5zeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9WQUxVRSk7CiAg
ICAgICAgIHJldHVybjsKICAgICB9Ci0gICAgdGV4U3ViSW1hZ2UyRCh0YXJnZXQsIGxldmVsLCB4
b2Zmc2V0LCB5b2Zmc2V0LCBjYW52YXMtPmJ1ZmZlcigpLT5pbWFnZSgpLAotICAgICAgICAgICAg
ICAgICAgZmxpcFksIHByZW11bHRpcGx5QWxwaGEsIGVjKTsKKyAgICB0ZXhTdWJJbWFnZTJESW1w
bCh0YXJnZXQsIGxldmVsLCB4b2Zmc2V0LCB5b2Zmc2V0LCBHcmFwaGljc0NvbnRleHQzRDo6UkdC
QSwgR3JhcGhpY3NDb250ZXh0M0Q6OlVOU0lHTkVEX0JZVEUsIGNhbnZhcy0+YnVmZmVyKCktPmlt
YWdlKCksCisgICAgICAgICAgICAgICAgICAgICAgZmxpcFksIHByZW11bHRpcGx5QWxwaGEsIGVj
KTsKIH0KIAogdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnRleFN1YkltYWdlMkQodW5zaWdu
ZWQgdGFyZ2V0LCB1bnNpZ25lZCBsZXZlbCwgdW5zaWduZWQgeG9mZnNldCwgdW5zaWduZWQgeW9m
ZnNldCwKQEAgLTMyNzYsNiArMzQzMCwxMiBAQCBib29sIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6
dmFsaWRhdGVEcmF3CiAgICAgfQogfQogCit2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6cHJp
bnRXYXJuaW5nVG9Db25zb2xlKGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKK3sKKyAgICBjYW52YXMo
KS0+ZG9jdW1lbnQoKS0+ZnJhbWUoKS0+ZG9tV2luZG93KCktPmNvbnNvbGUoKS0+YWRkTWVzc2Fn
ZShIVE1MTWVzc2FnZVNvdXJjZSwgTG9nTWVzc2FnZVR5cGUsIFdhcm5pbmdNZXNzYWdlTGV2ZWws
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgbWVzc2FnZSwgMCwgY2FudmFzKCktPmRvY3VtZW50KCktPnVybCgpLnN0
cmluZygpKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxF
KDNEX0NBTlZBUykKSW5kZXg6IFdlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250
ZXh0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0Nv
bnRleHQuaAkocmV2aXNpb24gNjEwMjcpCisrKyBXZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVu
ZGVyaW5nQ29udGV4dC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xOTcsNiArMTk3LDE1IEBAIGNsYXNz
IFdlYktpdENTU01hdHJpeDsKICAgICAgICAgdm9pZCB0ZXhJbWFnZTJEKHVuc2lnbmVkIHRhcmdl
dCwgdW5zaWduZWQgbGV2ZWwsIHVuc2lnbmVkIGludGVybmFsZm9ybWF0LAogICAgICAgICAgICAg
ICAgICAgICAgICAgdW5zaWduZWQgd2lkdGgsIHVuc2lnbmVkIGhlaWdodCwgdW5zaWduZWQgYm9y
ZGVyLAogICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgZm9ybWF0LCB1bnNpZ25lZCB0
eXBlLCBBcnJheUJ1ZmZlclZpZXcqIHBpeGVscywgRXhjZXB0aW9uQ29kZSYpOworICAgICAgICB2
b2lkIHRleEltYWdlMkQodW5zaWduZWQgdGFyZ2V0LCB1bnNpZ25lZCBsZXZlbCwgdW5zaWduZWQg
aW50ZXJuYWxmb3JtYXQsCisgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBmb3JtYXQs
IHVuc2lnbmVkIHR5cGUsIEltYWdlRGF0YSogcGl4ZWxzLCBFeGNlcHRpb25Db2RlJik7CisgICAg
ICAgIHZvaWQgdGV4SW1hZ2UyRCh1bnNpZ25lZCB0YXJnZXQsIHVuc2lnbmVkIGxldmVsLCB1bnNp
Z25lZCBpbnRlcm5hbGZvcm1hdCwKKyAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGZv
cm1hdCwgdW5zaWduZWQgdHlwZSwgSFRNTEltYWdlRWxlbWVudCogaW1hZ2UsIEV4Y2VwdGlvbkNv
ZGUmKTsKKyAgICAgICAgdm9pZCB0ZXhJbWFnZTJEKHVuc2lnbmVkIHRhcmdldCwgdW5zaWduZWQg
bGV2ZWwsIHVuc2lnbmVkIGludGVybmFsZm9ybWF0LAorICAgICAgICAgICAgICAgICAgICAgICAg
dW5zaWduZWQgZm9ybWF0LCB1bnNpZ25lZCB0eXBlLCBIVE1MQ2FudmFzRWxlbWVudCogY2FudmFz
LCBFeGNlcHRpb25Db2RlJik7CisgICAgICAgIHZvaWQgdGV4SW1hZ2UyRCh1bnNpZ25lZCB0YXJn
ZXQsIHVuc2lnbmVkIGxldmVsLCB1bnNpZ25lZCBpbnRlcm5hbGZvcm1hdCwKKyAgICAgICAgICAg
ICAgICAgICAgICAgIHVuc2lnbmVkIGZvcm1hdCwgdW5zaWduZWQgdHlwZSwgSFRNTFZpZGVvRWxl
bWVudCogdmlkZW8sIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICAgICAgLy8gT2Jzb2xldGUgZW50cnkg
cG9pbnRzIC0tIHRvIGJlIHJlbW92ZWQgc2hvcnRseS4gKEZJWE1FKQogICAgICAgICB2b2lkIHRl
eEltYWdlMkQodW5zaWduZWQgdGFyZ2V0LCB1bnNpZ25lZCBsZXZlbCwgSW1hZ2VEYXRhKiBwaXhl
bHMsIEV4Y2VwdGlvbkNvZGUmKTsKICAgICAgICAgdm9pZCB0ZXhJbWFnZTJEKHVuc2lnbmVkIHRh
cmdldCwgdW5zaWduZWQgbGV2ZWwsIEltYWdlRGF0YSogcGl4ZWxzLCBib29sIGZsaXBZLCBFeGNl
cHRpb25Db2RlJik7CiAgICAgICAgIHZvaWQgdGV4SW1hZ2UyRCh1bnNpZ25lZCB0YXJnZXQsIHVu
c2lnbmVkIGxldmVsLCBJbWFnZURhdGEqIHBpeGVscywgYm9vbCBmbGlwWSwgYm9vbCBwcmVtdWx0
aXBseUFscGhhLCBFeGNlcHRpb25Db2RlJik7CkBAIC0yMTYsNiArMjI1LDE1IEBAIGNsYXNzIFdl
YktpdENTU01hdHJpeDsKICAgICAgICAgdm9pZCB0ZXhTdWJJbWFnZTJEKHVuc2lnbmVkIHRhcmdl
dCwgdW5zaWduZWQgbGV2ZWwsIHVuc2lnbmVkIHhvZmZzZXQsIHVuc2lnbmVkIHlvZmZzZXQsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCB3aWR0aCwgdW5zaWduZWQgaGVpZ2h0
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgZm9ybWF0LCB1bnNpZ25lZCB0
eXBlLCBBcnJheUJ1ZmZlclZpZXcqIHBpeGVscywgRXhjZXB0aW9uQ29kZSYpOworICAgICAgICB2
b2lkIHRleFN1YkltYWdlMkQodW5zaWduZWQgdGFyZ2V0LCB1bnNpZ25lZCBsZXZlbCwgdW5zaWdu
ZWQgeG9mZnNldCwgdW5zaWduZWQgeW9mZnNldCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
IHVuc2lnbmVkIGZvcm1hdCwgdW5zaWduZWQgdHlwZSwgSW1hZ2VEYXRhKiBwaXhlbHMsIEV4Y2Vw
dGlvbkNvZGUmKTsKKyAgICAgICAgdm9pZCB0ZXhTdWJJbWFnZTJEKHVuc2lnbmVkIHRhcmdldCwg
dW5zaWduZWQgbGV2ZWwsIHVuc2lnbmVkIHhvZmZzZXQsIHVuc2lnbmVkIHlvZmZzZXQsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBmb3JtYXQsIHVuc2lnbmVkIHR5cGUsIEhU
TUxJbWFnZUVsZW1lbnQqIGltYWdlLCBFeGNlcHRpb25Db2RlJik7CisgICAgICAgIHZvaWQgdGV4
U3ViSW1hZ2UyRCh1bnNpZ25lZCB0YXJnZXQsIHVuc2lnbmVkIGxldmVsLCB1bnNpZ25lZCB4b2Zm
c2V0LCB1bnNpZ25lZCB5b2Zmc2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWdu
ZWQgZm9ybWF0LCB1bnNpZ25lZCB0eXBlLCBIVE1MQ2FudmFzRWxlbWVudCogY2FudmFzLCBFeGNl
cHRpb25Db2RlJik7CisgICAgICAgIHZvaWQgdGV4U3ViSW1hZ2UyRCh1bnNpZ25lZCB0YXJnZXQs
IHVuc2lnbmVkIGxldmVsLCB1bnNpZ25lZCB4b2Zmc2V0LCB1bnNpZ25lZCB5b2Zmc2V0LAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgZm9ybWF0LCB1bnNpZ25lZCB0eXBlLCBI
VE1MVmlkZW9FbGVtZW50KiB2aWRlbywgRXhjZXB0aW9uQ29kZSYpOworICAgICAgICAvLyBPYnNv
bGV0ZSBlbnRyeSBwb2ludHMgLS0gdG8gYmUgcmVtb3ZlZCBzaG9ydGx5LiAoRklYTUUpCiAgICAg
ICAgIHZvaWQgdGV4U3ViSW1hZ2UyRCh1bnNpZ25lZCB0YXJnZXQsIHVuc2lnbmVkIGxldmVsLCB1
bnNpZ25lZCB4b2Zmc2V0LCB1bnNpZ25lZCB5b2Zmc2V0LCBJbWFnZURhdGEqIHBpeGVscywgRXhj
ZXB0aW9uQ29kZSYpOwogICAgICAgICB2b2lkIHRleFN1YkltYWdlMkQodW5zaWduZWQgdGFyZ2V0
LCB1bnNpZ25lZCBsZXZlbCwgdW5zaWduZWQgeG9mZnNldCwgdW5zaWduZWQgeW9mZnNldCwgSW1h
Z2VEYXRhKiBwaXhlbHMsIGJvb2wgZmxpcFksIEV4Y2VwdGlvbkNvZGUmKTsKICAgICAgICAgdm9p
ZCB0ZXhTdWJJbWFnZTJEKHVuc2lnbmVkIHRhcmdldCwgdW5zaWduZWQgbGV2ZWwsIHVuc2lnbmVk
IHhvZmZzZXQsIHVuc2lnbmVkIHlvZmZzZXQsIEltYWdlRGF0YSogcGl4ZWxzLCBib29sIGZsaXBZ
LCBib29sIHByZW11bHRpcGx5QWxwaGEsIEV4Y2VwdGlvbkNvZGUmKTsKQEAgLTM2NSw2ICszODMs
OCBAQCBjbGFzcyBXZWJLaXRDU1NNYXRyaXg7CiAgICAgICAgIGludCBtX3VucGFja0FsaWdubWVu
dDsKICAgICAgICAgdW5zaWduZWQgbG9uZyBtX2ltcGxlbWVudGF0aW9uQ29sb3JSZWFkRm9ybWF0
OwogICAgICAgICB1bnNpZ25lZCBsb25nIG1faW1wbGVtZW50YXRpb25Db2xvclJlYWRUeXBlOwor
ICAgICAgICBib29sIG1fdW5wYWNrRmxpcFk7CisgICAgICAgIGJvb2wgbV91bnBhY2tQcmVtdWx0
aXBseUFscGhhOwogCiAgICAgICAgIC8vIEhlbHBlcnMgZm9yIGdldFBhcmFtZXRlciBhbmQgb3Ro
ZXJzCiAgICAgICAgIFdlYkdMR2V0SW5mbyBnZXRCb29sZWFuUGFyYW1ldGVyKHVuc2lnbmVkIGxv
bmcgcG5hbWUpOwpAQCAtMzc5LDEzICszOTksMTUgQEAgY2xhc3MgV2ViS2l0Q1NTTWF0cml4Owog
ICAgICAgICB2b2lkIHRleEltYWdlMkRCYXNlKHVuc2lnbmVkIHRhcmdldCwgdW5zaWduZWQgbGV2
ZWwsIHVuc2lnbmVkIGludGVybmFsZm9ybWF0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHVuc2lnbmVkIHdpZHRoLCB1bnNpZ25lZCBoZWlnaHQsIHVuc2lnbmVkIGJvcmRlciwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBmb3JtYXQsIHVuc2lnbmVkIHR5cGUsIHZv
aWQqIHBpeGVscywgRXhjZXB0aW9uQ29kZSYpOwotICAgICAgICB2b2lkIHRleEltYWdlMkQodW5z
aWduZWQgdGFyZ2V0LCB1bnNpZ25lZCBsZXZlbCwgSW1hZ2UqIGltYWdlLAotICAgICAgICAgICAg
ICAgICAgICAgICAgYm9vbCBmbGlwWSwgYm9vbCBwcmVtdWx0aXBseUFscGhhLCBFeGNlcHRpb25D
b2RlJik7CisgICAgICAgIHZvaWQgdGV4SW1hZ2UyREltcGwodW5zaWduZWQgdGFyZ2V0LCB1bnNp
Z25lZCBsZXZlbCwgdW5zaWduZWQgaW50ZXJuYWxmb3JtYXQsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgdW5zaWduZWQgZm9ybWF0LCB1bnNpZ25lZCB0eXBlLCBJbWFnZSogaW1hZ2UsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBmbGlwWSwgYm9vbCBwcmVtdWx0aXBseUFs
cGhhLCBFeGNlcHRpb25Db2RlJik7CiAgICAgICAgIHZvaWQgdGV4U3ViSW1hZ2UyREJhc2UodW5z
aWduZWQgdGFyZ2V0LCB1bnNpZ25lZCBsZXZlbCwgdW5zaWduZWQgeG9mZnNldCwgdW5zaWduZWQg
eW9mZnNldCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCB3aWR0aCwg
dW5zaWduZWQgaGVpZ2h0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVk
IGZvcm1hdCwgdW5zaWduZWQgdHlwZSwgdm9pZCogcGl4ZWxzLCBFeGNlcHRpb25Db2RlJik7Ci0g
ICAgICAgIHZvaWQgdGV4U3ViSW1hZ2UyRCh1bnNpZ25lZCB0YXJnZXQsIHVuc2lnbmVkIGxldmVs
LCB1bnNpZ25lZCB4b2Zmc2V0LCB1bnNpZ25lZCB5b2Zmc2V0LAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgSW1hZ2UqIGltYWdlLCBib29sIGZsaXBZLCBib29sIHByZW11bHRpcGx5QWxwaGEs
IEV4Y2VwdGlvbkNvZGUmKTsKKyAgICAgICAgdm9pZCB0ZXhTdWJJbWFnZTJESW1wbCh1bnNpZ25l
ZCB0YXJnZXQsIHVuc2lnbmVkIGxldmVsLCB1bnNpZ25lZCB4b2Zmc2V0LCB1bnNpZ25lZCB5b2Zm
c2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGZvcm1hdCwgdW5z
aWduZWQgdHlwZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbWFnZSogaW1hZ2Us
IGJvb2wgZmxpcFksIGJvb2wgcHJlbXVsdGlwbHlBbHBoYSwgRXhjZXB0aW9uQ29kZSYpOwogCiAg
ICAgICAgIHZvaWQgaGFuZGxlTlBPVFRleHR1cmVzKGJvb2wgcHJlcGFyZVRvRHJhdyk7CiAKQEAg
LTQxNyw2ICs0MzksMTAgQEAgY2xhc3MgV2ViS2l0Q1NTTWF0cml4OwogICAgICAgICAvLyBIZWxw
ZXIgZnVuY3Rpb24gZm9yIHRleFBhcmFtZXRlcmYgYW5kIHRleFBhcmFtZXRlcmkuCiAgICAgICAg
IHZvaWQgdGV4UGFyYW1ldGVyKHVuc2lnbmVkIGxvbmcgdGFyZ2V0LCB1bnNpZ25lZCBsb25nIHBu
YW1lLCBmbG9hdCBwYXJhbWksIGludCBwYXJhbWYsIGJvb2wgaXNGbG9hdCk7CiAKKyAgICAgICAg
Ly8gSGVscGVyIGZ1bmN0aW9uIHRvIHByaW50IHdhcm5pbmdzIHRvIGNvbnNvbGUuIEN1cnJlbnRs
eQorICAgICAgICAvLyB1c2VkIG9ubHkgdG8gd2FybiBhYm91dCB1c2Ugb2Ygb2Jzb2xldGUgZnVu
Y3Rpb25zLgorICAgICAgICB2b2lkIHByaW50V2FybmluZ1RvQ29uc29sZShjb25zdCBTdHJpbmcm
IG1lc3NhZ2UpOworCiAgICAgICAgIGZyaWVuZCBjbGFzcyBXZWJHTFN0YXRlUmVzdG9yZXI7CiAg
ICAgfTsKIApJbmRleDogV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQu
aWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250
ZXh0LmlkbAkocmV2aXNpb24gNjEwMjcpCisrKyBXZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVu
ZGVyaW5nQ29udGV4dC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTQ1OSw2ICs0NTksMTAgQEAgbW9k
dWxlIGh0bWwgewogCiAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGludCBJTlZBTElEX0ZSQU1FQlVG
RkVSX09QRVJBVElPTiAgPSAweDA1MDY7CiAKKyAgICAgICAgLyogV2ViR0wtc3BlY2lmaWMgZW51
bXMgKi8KKyAgICAgICAgY29uc3QgdW5zaWduZWQgaW50IFVOUEFDS19GTElQX1lfV0VCR0wgICAg
ICAgICAgICA9IDB4OTI0MDsKKyAgICAgICAgY29uc3QgdW5zaWduZWQgaW50IFVOUEFDS19QUkVN
VUxUSVBMWV9BTFBIQV9XRUJHTCA9IDB4OTI0MTsKKwogICAgICAgICBsb25nIHNpemVJbkJ5dGVz
KGluIHVuc2lnbmVkIGxvbmcgdHlwZSkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAKICAgICAgICAg
dm9pZCAgICAgICAgIGFjdGl2ZVRleHR1cmUoaW4gdW5zaWduZWQgbG9uZyB0ZXh0dXJlKSByYWlz
ZXMoRE9NRXhjZXB0aW9uKTsKQEAgLTYwOSw2ICs2MTMsMTUgQEAgbW9kdWxlIGh0bWwgewogICAg
ICAgICAvLyBTdXBwb3J0ZWQgZm9ybXM6CiAgICAgICAgIHZvaWQgICAgICAgICB0ZXhJbWFnZTJE
KGluIHVuc2lnbmVkIGxvbmcgdGFyZ2V0LCBpbiBsb25nIGxldmVsLCBpbiB1bnNpZ25lZCBsb25n
IGludGVybmFsZm9ybWF0LCBpbiBsb25nIHdpZHRoLCBpbiBsb25nIGhlaWdodCwgCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGluIGxvbmcgYm9yZGVyLCBpbiB1bnNpZ25lZCBsb25n
IGZvcm1hdCwgaW4gdW5zaWduZWQgbG9uZyB0eXBlLCBpbiBBcnJheUJ1ZmZlclZpZXcgcGl4ZWxz
KSByYWlzZXMgKERPTUV4Y2VwdGlvbik7CisgICAgICAgIHZvaWQgICAgICAgICB0ZXhJbWFnZTJE
KGluIHVuc2lnbmVkIGxvbmcgdGFyZ2V0LCBpbiBsb25nIGxldmVsLCBpbiB1bnNpZ25lZCBsb25n
IGludGVybmFsZm9ybWF0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiB1bnNp
Z25lZCBsb25nIGZvcm1hdCwgaW4gdW5zaWduZWQgbG9uZyB0eXBlLCBpbiBJbWFnZURhdGEgcGl4
ZWxzKSByYWlzZXMgKERPTUV4Y2VwdGlvbik7CisgICAgICAgIHZvaWQgICAgICAgICB0ZXhJbWFn
ZTJEKGluIHVuc2lnbmVkIGxvbmcgdGFyZ2V0LCBpbiBsb25nIGxldmVsLCBpbiB1bnNpZ25lZCBs
b25nIGludGVybmFsZm9ybWF0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiB1
bnNpZ25lZCBsb25nIGZvcm1hdCwgaW4gdW5zaWduZWQgbG9uZyB0eXBlLCBpbiBIVE1MSW1hZ2VF
bGVtZW50IGltYWdlKSByYWlzZXMgKERPTUV4Y2VwdGlvbik7CisgICAgICAgIHZvaWQgICAgICAg
ICB0ZXhJbWFnZTJEKGluIHVuc2lnbmVkIGxvbmcgdGFyZ2V0LCBpbiBsb25nIGxldmVsLCBpbiB1
bnNpZ25lZCBsb25nIGludGVybmFsZm9ybWF0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBpbiB1bnNpZ25lZCBsb25nIGZvcm1hdCwgaW4gdW5zaWduZWQgbG9uZyB0eXBlLCBpbiBI
VE1MQ2FudmFzRWxlbWVudCBjYW52YXMpIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAg
dm9pZCAgICAgICAgIHRleEltYWdlMkQoaW4gdW5zaWduZWQgbG9uZyB0YXJnZXQsIGluIGxvbmcg
bGV2ZWwsIGluIHVuc2lnbmVkIGxvbmcgaW50ZXJuYWxmb3JtYXQsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGluIHVuc2lnbmVkIGxvbmcgZm9ybWF0LCBpbiB1bnNpZ25lZCBsb25n
IHR5cGUsIGluIEhUTUxWaWRlb0VsZW1lbnQgdmlkZW8pIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsK
KyAgICAgICAgLy8gT2Jzb2xldGUgZW50cnkgcG9pbnRzIC0tIHRvIGJlIHJlbW92ZWQgc2hvcnRs
eS4gKEZJWE1FKQogICAgICAgICB2b2lkICAgICAgICAgdGV4SW1hZ2UyRChpbiB1bnNpZ25lZCBs
b25nIHRhcmdldCwgaW4gbG9uZyBsZXZlbCwgaW4gSW1hZ2VEYXRhIHBpeGVscywKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsXSBib29sZWFuIGZsaXBZLCBpbiBb
T3B0aW9uYWxdIGJvb2xlYW4gcHJlbXVsdGlwbHlBbHBoYSkgcmFpc2VzIChET01FeGNlcHRpb24p
OwogICAgICAgICB2b2lkICAgICAgICAgdGV4SW1hZ2UyRChpbiB1bnNpZ25lZCBsb25nIHRhcmdl
dCwgaW4gbG9uZyBsZXZlbCwgaW4gSFRNTEltYWdlRWxlbWVudCBpbWFnZSwKQEAgLTYyMiw2ICs2
MzUsMTUgQEAgbW9kdWxlIGh0bWwgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBpbiBsb25nIHdpZHRoLCBpbiBsb25nIGhlaWdodCwgCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGluIHVuc2lnbmVkIGxvbmcgZm9ybWF0LCBpbiB1bnNpZ25lZCBsb25nIHR5
cGUsIGluIEFycmF5QnVmZmVyVmlldyBwaXhlbHMpIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKICAg
ICAgICAgdm9pZCAgICAgICAgIHRleFN1YkltYWdlMkQoaW4gdW5zaWduZWQgbG9uZyB0YXJnZXQs
IGluIGxvbmcgbGV2ZWwsIGluIGxvbmcgeG9mZnNldCwgaW4gbG9uZyB5b2Zmc2V0LAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiB1bnNpZ25lZCBsb25nIGZvcm1hdCwgaW4g
dW5zaWduZWQgbG9uZyB0eXBlLCBpbiBJbWFnZURhdGEgcGl4ZWxzKSByYWlzZXMgKERPTUV4Y2Vw
dGlvbik7CisgICAgICAgIHZvaWQgICAgICAgICB0ZXhTdWJJbWFnZTJEKGluIHVuc2lnbmVkIGxv
bmcgdGFyZ2V0LCBpbiBsb25nIGxldmVsLCBpbiBsb25nIHhvZmZzZXQsIGluIGxvbmcgeW9mZnNl
dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gdW5zaWduZWQgbG9uZyBm
b3JtYXQsIGluIHVuc2lnbmVkIGxvbmcgdHlwZSwgaW4gSFRNTEltYWdlRWxlbWVudCBpbWFnZSkg
cmFpc2VzIChET01FeGNlcHRpb24pOworICAgICAgICB2b2lkICAgICAgICAgdGV4U3ViSW1hZ2Uy
RChpbiB1bnNpZ25lZCBsb25nIHRhcmdldCwgaW4gbG9uZyBsZXZlbCwgaW4gbG9uZyB4b2Zmc2V0
LCBpbiBsb25nIHlvZmZzZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlu
IHVuc2lnbmVkIGxvbmcgZm9ybWF0LCBpbiB1bnNpZ25lZCBsb25nIHR5cGUsIGluIEhUTUxDYW52
YXNFbGVtZW50IGNhbnZhcykgcmFpc2VzIChET01FeGNlcHRpb24pOworICAgICAgICB2b2lkICAg
ICAgICAgdGV4U3ViSW1hZ2UyRChpbiB1bnNpZ25lZCBsb25nIHRhcmdldCwgaW4gbG9uZyBsZXZl
bCwgaW4gbG9uZyB4b2Zmc2V0LCBpbiBsb25nIHlvZmZzZXQsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGluIHVuc2lnbmVkIGxvbmcgZm9ybWF0LCBpbiB1bnNpZ25lZCBsb25n
IHR5cGUsIGluIEhUTUxWaWRlb0VsZW1lbnQgdmlkZW8pIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsK
KyAgICAgICAgLy8gT2Jzb2xldGUgZW50cnkgcG9pbnRzIC0tIHRvIGJlIHJlbW92ZWQgc2hvcnRs
eS4gKEZJWE1FKQorICAgICAgICB2b2lkICAgICAgICAgdGV4U3ViSW1hZ2UyRChpbiB1bnNpZ25l
ZCBsb25nIHRhcmdldCwgaW4gbG9uZyBsZXZlbCwgaW4gbG9uZyB4b2Zmc2V0LCBpbiBsb25nIHlv
ZmZzZXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIEltYWdlRGF0YSBw
aXhlbHMsIGluIFtPcHRpb25hbF0gYm9vbGVhbiBmbGlwWSwgaW4gW09wdGlvbmFsXSBib29sZWFu
IHByZW11bHRpcGx5QWxwaGEpIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKICAgICAgICAgdm9pZCAg
ICAgICAgIHRleFN1YkltYWdlMkQoaW4gdW5zaWduZWQgbG9uZyB0YXJnZXQsIGluIGxvbmcgbGV2
ZWwsIGluIGxvbmcgeG9mZnNldCwgaW4gbG9uZyB5b2Zmc2V0LCAKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgaW4gSFRNTEltYWdlRWxlbWVudCBpbWFnZSwgaW4gW09wdGlvbmFs
XSBib29sZWFuIGZsaXBZLCBpbiBbT3B0aW9uYWxdIGJvb2xlYW4gcHJlbXVsdGlwbHlBbHBoYSkg
cmFpc2VzIChET01FeGNlcHRpb24pOwpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9H
cmFwaGljc0NvbnRleHQzRC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvR3JhcGhpY3NDb250ZXh0M0QuaAkocmV2aXNpb24gNjEwMjcpCisrKyBXZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmgJKHdvcmtpbmcgY29weSkKQEAgLTM5MCw3
ICszOTAsMTEgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICAgICAgRlJBTUVCVUZGRVJf
QklORElORyA9IDB4OENBNiwKICAgICAgICAgICAgIFJFTkRFUkJVRkZFUl9CSU5ESU5HID0gMHg4
Q0E3LAogICAgICAgICAgICAgTUFYX1JFTkRFUkJVRkZFUl9TSVpFID0gMHg4NEU4LAotICAgICAg
ICAgICAgSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04gPSAweDA1MDYKKyAgICAgICAgICAg
IElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OID0gMHgwNTA2LAorCisgICAgICAgICAgICAv
LyBXZWJHTC1zcGVjaWZpYyBlbnVtcworICAgICAgICAgICAgVU5QQUNLX0ZMSVBfWV9XRUJHTCA9
IDB4OTI0MCwKKyAgICAgICAgICAgIFVOUEFDS19QUkVNVUxUSVBMWV9BTFBIQV9XRUJHTCA9IDB4
OTI0MQogICAgICAgICB9OwogICAgICAgICAKICAgICAgICAgLy8gQ29udGV4dCBjcmVhdGlvbiBh
dHRyaWJ1dGVzLgpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gNjEwMzcpCisrKyBMYXlvdXRUZXN0cy9DaGFu
Z2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwzNiBAQAorMjAxMC0wNi0xMSAgS2VubmV0
aCBSdXNzZWxsICA8a2JyQGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgQWRkIHRleEltYWdlMkQgYW5kIHRleFN1YkltYWdlMkQgc2ln
bmF0dXJlcyB3aXRoIGludGVybmFsIGZvcm1hdCwgZXRjLgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDAzMTgKKworICAgICAgICBBZGRlZCBuZXcgdGV4
SW1hZ2UyRCBhbmQgdGV4U3ViSW1hZ2UyRCBlbnRyeSBwb2ludHMgZm9sbG93aW5nCisgICAgICAg
IFdlYkdMIHNwZWNpZmljYXRpb24gY2hhbmdlcy4gQWRkZWQgVU5QQUNLX0ZMSVBfWV9XRUJHTCBh
bmQKKyAgICAgICAgVU5QQUNLX1BSRU1VTFRJUExZX0FMUEhBX1dFQkdMIHBpeGVsU3RvcmVpIHBh
cmFtZXRlcnMsIGhvbm9yZWQKKyAgICAgICAgdGhlbSBmb3IgdGhlIG5ldyBlbnRyeSBwb2ludHMg
dGFraW5nIEhUTUwgZWxlbWVudHMsIGFuZCBhZGRlZAorICAgICAgICBzdXBwb3J0IHRvIGdldFBh
cmFtZXRlci4gQWRkZWQgd2FybmluZ3MgdG8gdGhlIGNvbnNvbGUgZm9yIGNhbGxzCisgICAgICAg
IHRvIHRoZSBvYnNvbGV0ZSBlbnRyeSBwb2ludHMsIHdoaWNoIHdpbGwgYmUgcmVtb3ZlZCBpbiBh
IGZldworICAgICAgICB3ZWVrcy4gIFVwZGF0ZWQgYWxsIGxheW91dCB0ZXN0cyB0byB1c2UgdGhl
IG5ldyBlbnRyeSBwb2ludHMgYW5kCisgICAgICAgIHBpeGVsU3RvcmVpIHBhcmFtZXRlcnMsIGFu
ZCBhc3NvY2lhdGVkIGV4cGVjdGF0aW9ucy4gTm8gb3RoZXIgbmV3CisgICAgICAgIHRlc3RzLgor
CisgICAgICAgICogZmFzdC9jYW52YXMvd2ViZ2wvYnVnLTMyMzY0LWV4cGVjdGVkLnR4dDoKKyAg
ICAgICAgKiBmYXN0L2NhbnZhcy93ZWJnbC9idWctMzIzNjQuaHRtbDoKKyAgICAgICAgKiBmYXN0
L2NhbnZhcy93ZWJnbC9idWctMzI4ODguaHRtbDoKKyAgICAgICAgKiBmYXN0L2NhbnZhcy93ZWJn
bC9nbC1nZXQtY2FsbHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvY2FudmFzL3dlYmds
L2dsLWdldC1jYWxscy5odG1sOgorICAgICAgICAqIGZhc3QvY2FudmFzL3dlYmdsL3Jlc291cmNl
cy91dGlsczNkLmpzOgorICAgICAgICAoZG9Mb2FkSW1hZ2VUZXh0dXJlKToKKyAgICAgICAgKiBm
YXN0L2NhbnZhcy93ZWJnbC9zY3JpcHQtdGVzdHMvdGV4SW1hZ2VUZXN0LmpzOgorICAgICAgICAq
IGZhc3QvY2FudmFzL3dlYmdsL3RleC1pbWFnZS1hbmQtc3ViLWltYWdlLTJkLXdpdGgtaW1hZ2Ut
ZGF0YS1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9jYW52YXMvd2ViZ2wvdGV4LWltYWdl
LWFuZC1zdWItaW1hZ2UtMmQtd2l0aC1pbWFnZS1kYXRhLmh0bWw6CisgICAgICAgICogZmFzdC9j
YW52YXMvd2ViZ2wvdGV4LWltYWdlLWFuZC1zdWItaW1hZ2UtMmQtd2l0aC1pbWFnZS1leHBlY3Rl
ZC50eHQ6CisgICAgICAgICogZmFzdC9jYW52YXMvd2ViZ2wvdGV4LWltYWdlLWFuZC1zdWItaW1h
Z2UtMmQtd2l0aC1pbWFnZS5odG1sOgorICAgICAgICAqIGZhc3QvY2FudmFzL3dlYmdsL3RleElt
YWdlMkRJbWFnZURhdGFUZXN0Lmh0bWw6CisgICAgICAgICogZmFzdC9jYW52YXMvd2ViZ2wvdGV4
SW1hZ2VUZXN0LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2NhbnZhcy93ZWJnbC90ZXh0
dXJlLW5wb3QuaHRtbDoKKwogMjAxMC0wNi0xMSAgSmFtZXMgUm9iaW5zb24gIDxqYW1lc3JAY2hy
b21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERpbWl0cmkgR2xhemtvdi4KSW5kZXg6
IExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2J1Zy0zMjM2NC1leHBlY3RlZC50eHQKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvYnVnLTMyMzY0LWV4cGVj
dGVkLnR4dAkocmV2aXNpb24gNjEwMjcpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJn
bC9idWctMzIzNjQtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC02LDcgKzYsNyBAQCBQ
QVNTIGdsLnVzZVByb2dyYW0oZmxvYXRQcm9ncmFtKSBpcyB1bmRlCiBQQVNTIGdsLmdldEVycm9y
KCkgaXMgZ2wuTk9fRVJST1IKIFBBU1MgZ2wudW5pZm9ybTRmdihmdmFsNExvYywgbmV3IFdlYkdM
RmxvYXRBcnJheShbMC4xLCAwLjIsIDAuNCwgMS4wXSkpOyBpcyB1bmRlZmluZWQuCiBQQVNTIGds
LmJpbmRUZXh0dXJlKGdsLlRFWFRVUkVfMkQsIHRleHR1cmUpIGlzIHVuZGVmaW5lZC4KLVBBU1Mg
Z2wudGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCB0bXBjYW52YXMpIGlzIHVuZGVmaW5lZC4K
K1BBU1MgZ2wudGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCBnbC5SR0JBLCBnbC5SR0JBLCBn
bC5VTlNJR05FRF9CWVRFLCB0bXBjYW52YXMpIGlzIHVuZGVmaW5lZC4KIFBBU1Mgc3VjY2Vzc2Z1
bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpJbmRleDogTGF5b3V0VGVzdHMvZmFz
dC9jYW52YXMvd2ViZ2wvYnVnLTMyMzY0Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
ZmFzdC9jYW52YXMvd2ViZ2wvYnVnLTMyMzY0Lmh0bWwJKHJldmlzaW9uIDYxMDI3KQorKysgTGF5
b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvYnVnLTMyMzY0Lmh0bWwJKHdvcmtpbmcgY29weSkK
QEAgLTI0LDcgKzI0LDcgQEAgdG1wY2FudmFzLndpZHRoID0gMjsKIHRtcGNhbnZhcy5oZWlnaHQg
PSAyOwogdmFyIHRleHR1cmUgPSBnbC5jcmVhdGVUZXh0dXJlKCk7CiBzaG91bGRCZVVuZGVmaW5l
ZCgiZ2wuYmluZFRleHR1cmUoZ2wuVEVYVFVSRV8yRCwgdGV4dHVyZSkiKTsKLXNob3VsZEJlVW5k
ZWZpbmVkKCJnbC50ZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIHRtcGNhbnZhcykiKTsKK3No
b3VsZEJlVW5kZWZpbmVkKCJnbC50ZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIGdsLlJHQkEs
IGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIHRtcGNhbnZhcykiKTsKIAogc3VjY2Vzc2Z1bGx5
UGFyc2VkID0gdHJ1ZTsKIApJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvYnVn
LTMyODg4Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wv
YnVnLTMyODg4Lmh0bWwJKHJldmlzaW9uIDYxMDI3KQorKysgTGF5b3V0VGVzdHMvZmFzdC9jYW52
YXMvd2ViZ2wvYnVnLTMyODg4Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTg4LDcgKzg4LDggQEAg
ZnVuY3Rpb24gbG9hZFRleHR1cmUoc3JjKSB7CiAgICAgdmFyIGltYWdlID0gbmV3IEltYWdlKCk7
CiAgICAgaW1hZ2Uub25sb2FkID0gZnVuY3Rpb24oKSB7CiAgICAgICAgIGdsLmJpbmRUZXh0dXJl
KGdsLlRFWFRVUkVfMkQsIHRleHR1cmUpOwotICAgICAgICBnbC50ZXhJbWFnZTJEKGdsLlRFWFRV
UkVfMkQsIDAsIGltYWdlLCB0cnVlKTsKKyAgICAgICAgZ2wucGl4ZWxTdG9yZWkoZ2wuVU5QQUNL
X0ZMSVBfWV9XRUJHTCwgdHJ1ZSk7CisgICAgICAgIGdsLnRleEltYWdlMkQoZ2wuVEVYVFVSRV8y
RCwgMCwgZ2wuUkdCQSwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwgaW1hZ2UpOwogICAgICAg
ICBydW5UZXN0KCk7CiAgICAgfTsKICAgICBpbWFnZS5zcmMgPSBzcmM7CkluZGV4OiBMYXlvdXRU
ZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9nbC1nZXQtY2FsbHMtZXhwZWN0ZWQudHh0Cj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2dsLWdldC1jYWxscy1leHBlY3Rl
ZC50eHQJKHJldmlzaW9uIDYxMDI3KQorKysgTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wv
Z2wtZ2V0LWNhbGxzLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtNjMsNiArNjMsOSBA
QCBQQVNTIGNvbnRleHQuZ2V0UGFyYW1ldGVyKGNvbnRleHQuU1RFTkNJCiBQQVNTIGNvbnRleHQu
Z2V0UGFyYW1ldGVyKGNvbnRleHQuU1RFTkNJTF9URVNUKSBpcyBmYWxzZQogUEFTUyBjb250ZXh0
LmdldFBhcmFtZXRlcihjb250ZXh0LlRFWFRVUkVfQklORElOR18yRCkgaXMgbnVsbAogUEFTUyBj
b250ZXh0LmdldFBhcmFtZXRlcihjb250ZXh0LlRFWFRVUkVfQklORElOR19DVUJFX01BUCkgaXMg
bnVsbAorUEFTUyBjb250ZXh0LmdldFBhcmFtZXRlcihjb250ZXh0LlVOUEFDS19BTElHTk1FTlQp
IGlzIDQKK1BBU1MgY29udGV4dC5nZXRQYXJhbWV0ZXIoY29udGV4dC5VTlBBQ0tfRkxJUF9ZX1dF
QkdMKSBpcyBmYWxzZQorUEFTUyBjb250ZXh0LmdldFBhcmFtZXRlcihjb250ZXh0LlVOUEFDS19Q
UkVNVUxUSVBMWV9BTFBIQV9XRUJHTCkgaXMgZmFsc2UKIFBBU1MgY29udGV4dC5nZXRQYXJhbWV0
ZXIoY29udGV4dC5WSUVXUE9SVCkgaXMgWzAsIDAsIDIsIDJdCiAKIFBBU1Mgc3VjY2Vzc2Z1bGx5
UGFyc2VkIGlzIHRydWUKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2dsLWdl
dC1jYWxscy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmds
L2dsLWdldC1jYWxscy5odG1sCShyZXZpc2lvbiA2MTAyNykKKysrIExheW91dFRlc3RzL2Zhc3Qv
Y2FudmFzL3dlYmdsL2dsLWdldC1jYWxscy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC05NSw2ICs5
NSw5IEBAIGVsc2UgewogICAgIC8vc2hvdWxkQmUoJ2NvbnRleHQuZ2V0UGFyYW1ldGVyKGNvbnRl
eHQuU1RFTkNJTF9XUklURU1BU0spJywgJzB4RkZGRkZGRkYnKTsKICAgICBzaG91bGRCZSgnY29u
dGV4dC5nZXRQYXJhbWV0ZXIoY29udGV4dC5URVhUVVJFX0JJTkRJTkdfMkQpJywgJ251bGwnKTsK
ICAgICBzaG91bGRCZSgnY29udGV4dC5nZXRQYXJhbWV0ZXIoY29udGV4dC5URVhUVVJFX0JJTkRJ
TkdfQ1VCRV9NQVApJywgJ251bGwnKTsKKyAgICBzaG91bGRCZSgnY29udGV4dC5nZXRQYXJhbWV0
ZXIoY29udGV4dC5VTlBBQ0tfQUxJR05NRU5UKScsICc0Jyk7CisgICAgc2hvdWxkQmUoJ2NvbnRl
eHQuZ2V0UGFyYW1ldGVyKGNvbnRleHQuVU5QQUNLX0ZMSVBfWV9XRUJHTCknLCAnZmFsc2UnKTsK
KyAgICBzaG91bGRCZSgnY29udGV4dC5nZXRQYXJhbWV0ZXIoY29udGV4dC5VTlBBQ0tfUFJFTVVM
VElQTFlfQUxQSEFfV0VCR0wpJywgJ2ZhbHNlJyk7CiAgICAgc2hvdWxkQmUoJ2NvbnRleHQuZ2V0
UGFyYW1ldGVyKGNvbnRleHQuVklFV1BPUlQpJywgJ1swLCAwLCAyLCAyXScpOwogfQogCkluZGV4
OiBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC90ZXgtaW1hZ2UtYW5kLXN1Yi1pbWFnZS0y
ZC13aXRoLWltYWdlLWRhdGEtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2Zhc3QvY2FudmFzL3dlYmdsL3RleC1pbWFnZS1hbmQtc3ViLWltYWdlLTJkLXdpdGgtaW1hZ2Ut
ZGF0YS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDYxMDI3KQorKysgTGF5b3V0VGVzdHMvZmFzdC9j
YW52YXMvd2ViZ2wvdGV4LWltYWdlLWFuZC1zdWItaW1hZ2UtMmQtd2l0aC1pbWFnZS1kYXRhLWV4
cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKICAKLVZlcmlmeSB0ZXhJ
bWFnZTJEIGFuZCB0ZXhTdWJJbWFnZTJEIGNvZGUgcGF0aHMgdGFraW5nIEltYWdlRGF0YSwgaW4g
cGFydGljdWxhciBmbGlwWSBhbmQgcHJlbXVsdGlwbHlBbHBoYSBhcmd1bWVudAorVmVyaWZ5IHRl
eEltYWdlMkQgYW5kIHRleFN1YkltYWdlMkQgY29kZSBwYXRocyB0YWtpbmcgSW1hZ2VEYXRhCiAK
IE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZv
bGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KIApJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9jYW52
YXMvd2ViZ2wvdGV4LWltYWdlLWFuZC1zdWItaW1hZ2UtMmQtd2l0aC1pbWFnZS1kYXRhLmh0bWwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvdGV4LWltYWdlLWFu
ZC1zdWItaW1hZ2UtMmQtd2l0aC1pbWFnZS1kYXRhLmh0bWwJKHJldmlzaW9uIDYxMDI3KQorKysg
TGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvdGV4LWltYWdlLWFuZC1zdWItaW1hZ2UtMmQt
d2l0aC1pbWFnZS1kYXRhLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTQxLDcgKzQxLDcgQEAgZnVu
Y3Rpb24gaW5pdCgpCiAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUo
KTsKICAgICB9CiAKLSAgICBkZXNjcmlwdGlvbignVmVyaWZ5IHRleEltYWdlMkQgYW5kIHRleFN1
YkltYWdlMkQgY29kZSBwYXRocyB0YWtpbmcgSW1hZ2VEYXRhLCBpbiBwYXJ0aWN1bGFyIGZsaXBZ
IGFuZCBwcmVtdWx0aXBseUFscGhhIGFyZ3VtZW50Jyk7CisgICAgZGVzY3JpcHRpb24oJ1Zlcmlm
eSB0ZXhJbWFnZTJEIGFuZCB0ZXhTdWJJbWFnZTJEIGNvZGUgcGF0aHMgdGFraW5nIEltYWdlRGF0
YScpOwogCiAgICAgZGVidWcoJ1JlZ3Jlc3Npb24gdGVzdCBmb3IgPGEgaHJlZj0iaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM0NDU5Ij5odHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzQ0NTk8L2E+IDogPGNvZGU+UmVmYWN0b3IgdGV4SW1hZ2Uy
RCBhbmQgdGV4U3ViSW1hZ2UyRCB0YWtpbmcgSW1hZ2VEYXRhIHRvIHVzZSBjb21tb24gY29kZTwv
Y29kZT4nKTsKIApAQCAtMTE1LDE2ICsxMTUsMTcgQEAgZnVuY3Rpb24gcnVuT25lSXRlcmF0aW9u
KHVzZVRleFN1YkltYWdlMgogICAgIC8vIFNldCB1cCB0ZXh0dXJlIHBhcmFtZXRlcnMKICAgICBn
bC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfTUlOX0ZJTFRFUiwgZ2wu
TkVBUkVTVCk7CiAgICAgZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJF
X01BR19GSUxURVIsIGdsLk5FQVJFU1QpOworICAgIC8vIFNldCB1cCBwaXhlbCBzdG9yZSBwYXJh
bWV0ZXJzCisgICAgZ2wucGl4ZWxTdG9yZWkoZ2wuVU5QQUNLX0ZMSVBfWV9XRUJHTCwgZmxpcFkp
OworICAgIGdsLnBpeGVsU3RvcmVpKGdsLlVOUEFDS19QUkVNVUxUSVBMWV9BTFBIQV9XRUJHTCwg
cHJlbXVsdGlwbHlBbHBoYSk7CiAgICAgLy8gVXBsb2FkIHRoZSBpbWFnZSBpbnRvIHRoZSB0ZXh0
dXJlCiAgICAgaWYgKHVzZVRleFN1YkltYWdlMkQpIHsKICAgICAgICAgLy8gSW5pdGlhbGl6ZSB0
aGUgdGV4dHVyZSB0byBibGFjayBmaXJzdAogICAgICAgICBnbC50ZXhJbWFnZTJEKGdsLlRFWFRV
UkVfMkQsIDAsIGdsLlJHQkEsIDEsIDIsIDAsCiAgICAgICAgICAgICAgICAgICAgICAgZ2wuUkdC
QSwgZ2wuVU5TSUdORURfQllURSwgbnVsbCk7Ci0gICAgICAgIGdsLnRleFN1YkltYWdlMkQoZ2wu
VEVYVFVSRV8yRCwgMCwgMCwgMCwgaW1hZ2VEYXRhLAotICAgICAgICAgICAgICAgICAgICAgICAg
IGZsaXBZLCBwcmVtdWx0aXBseUFscGhhKTsKKyAgICAgICAgZ2wudGV4U3ViSW1hZ2UyRChnbC5U
RVhUVVJFXzJELCAwLCAwLCAwLCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCBpbWFnZURhdGEp
OwogICAgIH0gZWxzZSB7Ci0gICAgICAgIGdsLnRleEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwg
aW1hZ2VEYXRhLAotICAgICAgICAgICAgICAgICAgICAgIGZsaXBZLCBwcmVtdWx0aXBseUFscGhh
KTsKKyAgICAgICAgZ2wudGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCBnbC5SR0JBLCBnbC5S
R0JBLCBnbC5VTlNJR05FRF9CWVRFLCBpbWFnZURhdGEpOwogICAgIH0KIAogICAgIC8vIFBvaW50
IHRoZSB1bmlmb3JtIHNhbXBsZXIgdG8gdGV4dHVyZSB1bml0IDAKSW5kZXg6IExheW91dFRlc3Rz
L2Zhc3QvY2FudmFzL3dlYmdsL3RleC1pbWFnZS1hbmQtc3ViLWltYWdlLTJkLXdpdGgtaW1hZ2Ut
ZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmds
L3RleC1pbWFnZS1hbmQtc3ViLWltYWdlLTJkLXdpdGgtaW1hZ2UtZXhwZWN0ZWQudHh0CShyZXZp
c2lvbiA2MTAyNykKKysrIExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL3RleC1pbWFnZS1h
bmQtc3ViLWltYWdlLTJkLXdpdGgtaW1hZ2UtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBA
IC0xLDQgKzEsNCBAQAotVmVyaWZ5IHRleEltYWdlMkQgYW5kIHRleFN1YkltYWdlMkQgY29kZSBw
YXRocyB0YWtpbmcgSW1hZ2VzLCBpbiBwYXJ0aWN1bGFyIGZsaXBZIGFyZ3VtZW50CitWZXJpZnkg
dGV4SW1hZ2UyRCBhbmQgdGV4U3ViSW1hZ2UyRCBjb2RlIHBhdGhzIHRha2luZyBJbWFnZXMKIAog
T24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9s
bG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgogCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2NhbnZh
cy93ZWJnbC90ZXgtaW1hZ2UtYW5kLXN1Yi1pbWFnZS0yZC13aXRoLWltYWdlLmh0bWwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvdGV4LWltYWdlLWFuZC1zdWIt
aW1hZ2UtMmQtd2l0aC1pbWFnZS5odG1sCShyZXZpc2lvbiA2MTAyNykKKysrIExheW91dFRlc3Rz
L2Zhc3QvY2FudmFzL3dlYmdsL3RleC1pbWFnZS1hbmQtc3ViLWltYWdlLTJkLXdpdGgtaW1hZ2Uu
aHRtbAkod29ya2luZyBjb3B5KQpAQCAtNDAsNyArNDAsNyBAQCBmdW5jdGlvbiBpbml0KCkKICAg
ICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOwogICAgIH0KIAotICAg
IGRlc2NyaXB0aW9uKCdWZXJpZnkgdGV4SW1hZ2UyRCBhbmQgdGV4U3ViSW1hZ2UyRCBjb2RlIHBh
dGhzIHRha2luZyBJbWFnZXMsIGluIHBhcnRpY3VsYXIgZmxpcFkgYXJndW1lbnQnKTsKKyAgICBk
ZXNjcmlwdGlvbignVmVyaWZ5IHRleEltYWdlMkQgYW5kIHRleFN1YkltYWdlMkQgY29kZSBwYXRo
cyB0YWtpbmcgSW1hZ2VzJyk7CiAKICAgICBkZWJ1ZygnUmVncmVzc2lvbiB0ZXN0IGZvciA8YSBo
cmVmPSJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzQ0NTgiPmh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNDQ1ODwvYT4gOiA8Y29kZT5SZWZh
Y3RvciB0ZXhJbWFnZTJEIGFuZCB0ZXhTdWJJbWFnZTJEIHRha2luZyBJbWFnZSB0byB1c2UgY29t
bW9uIGNvZGU8L2NvZGU+Jyk7CiAKQEAgLTg4LDcgKzg4LDggQEAgZnVuY3Rpb24gbG9hZFRleHR1
cmUoc3JjKSB7CiAgICAgdmFyIGltYWdlID0gbmV3IEltYWdlKCk7CiAgICAgaW1hZ2Uub25sb2Fk
ID0gZnVuY3Rpb24oKSB7CiAgICAgICAgIGdsLmJpbmRUZXh0dXJlKGdsLlRFWFRVUkVfMkQsIHRl
eHR1cmUpOwotICAgICAgICBnbC50ZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIGltYWdlLCB0
cnVlKTsKKyAgICAgICAgZ2wucGl4ZWxTdG9yZWkoZ2wuVU5QQUNLX0ZMSVBfWV9XRUJHTCwgdHJ1
ZSk7CisgICAgICAgIGdsLnRleEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgZ2wuUkdCQSwgZ2wu
UkdCQSwgZ2wuVU5TSUdORURfQllURSwgaW1hZ2UpOwogICAgICAgICBydW5UZXN0KGltYWdlKTsK
ICAgICB9OwogICAgIGltYWdlLnNyYyA9IHNyYzsKQEAgLTExNCwxNCArMTE1LDE3IEBAIGZ1bmN0
aW9uIHJ1bk9uZUl0ZXJhdGlvbihpbWFnZSwgdXNlVGV4U3UKICAgICAvLyBTZXQgdXAgdGV4dHVy
ZSBwYXJhbWV0ZXJzCiAgICAgZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhU
VVJFX01JTl9GSUxURVIsIGdsLk5FQVJFU1QpOwogICAgIGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVY
VFVSRV8yRCwgZ2wuVEVYVFVSRV9NQUdfRklMVEVSLCBnbC5ORUFSRVNUKTsKKyAgICAvLyBTZXQg
dXAgcGl4ZWwgc3RvcmUgcGFyYW1ldGVycworICAgIGdsLnBpeGVsU3RvcmVpKGdsLlVOUEFDS19G
TElQX1lfV0VCR0wsIGZsaXBZKTsKKyAgICBnbC5waXhlbFN0b3JlaShnbC5VTlBBQ0tfUFJFTVVM
VElQTFlfQUxQSEFfV0VCR0wsIGZhbHNlKTsKICAgICAvLyBVcGxvYWQgdGhlIGltYWdlIGludG8g
dGhlIHRleHR1cmUKICAgICBpZiAodXNlVGV4U3ViSW1hZ2UyRCkgewogICAgICAgICAvLyBJbml0
aWFsaXplIHRoZSB0ZXh0dXJlIHRvIGJsYWNrIGZpcnN0CiAgICAgICAgIGdsLnRleEltYWdlMkQo
Z2wuVEVYVFVSRV8yRCwgMCwgZ2wuUkdCQSwgaW1hZ2Uud2lkdGgsIGltYWdlLmhlaWdodCwgMCwK
ICAgICAgICAgICAgICAgICAgICAgICBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCBudWxsKTsK
LSAgICAgICAgZ2wudGV4U3ViSW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCAwLCAwLCBpbWFnZSwg
ZmxpcFksIGZhbHNlKTsKKyAgICAgICAgZ2wudGV4U3ViSW1hZ2UyRChnbC5URVhUVVJFXzJELCAw
LCAwLCAwLCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCBpbWFnZSk7CiAgICAgfSBlbHNlIHsK
LSAgICAgICAgZ2wudGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCBpbWFnZSwgZmxpcFksIGZh
bHNlKTsKKyAgICAgICAgZ2wudGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCBnbC5SR0JBLCBn
bC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCBpbWFnZSk7CiAgICAgfQogCiAgICAgLy8gUG9pbnQg
dGhlIHVuaWZvcm0gc2FtcGxlciB0byB0ZXh0dXJlIHVuaXQgMApJbmRleDogTGF5b3V0VGVzdHMv
ZmFzdC9jYW52YXMvd2ViZ2wvdGV4SW1hZ2UyREltYWdlRGF0YVRlc3QuaHRtbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC90ZXhJbWFnZTJESW1hZ2VEYXRhVGVz
dC5odG1sCShyZXZpc2lvbiA2MTAyNykKKysrIExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmds
L3RleEltYWdlMkRJbWFnZURhdGFUZXN0Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTkwLDcgKzkw
LDcgQEAKICAgICAgICAgICAgIC8vIENyZWF0ZSBhIHRleHR1cmUgZnJvbSB0aGUgY2FudmFzJ3Mg
aW1hZ2UgZGF0YQogICAgICAgICAgICAgdmFyIHRleCA9IGdsLmNyZWF0ZVRleHR1cmUoKTsKICAg
ICAgICAgICAgIGdsLmJpbmRUZXh0dXJlKGdsLlRFWFRVUkVfMkQsIHRleCk7Ci0gICAgICAgICAg
ICBnbC50ZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIGNvbnRleHQyZC5nZXRJbWFnZURhdGEo
MCwgMCwgNjQsIDY0KSk7CisgICAgICAgICAgICBnbC50ZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQs
IDAsIGdsLlJHQkEsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIGNvbnRleHQyZC5nZXRJbWFn
ZURhdGEoMCwgMCwgNjQsIDY0KSk7CiAgICAgICAgICAgICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRF
WFRVUkVfMkQsIGdsLlRFWFRVUkVfV1JBUF9TLCBnbC5DTEFNUF9UT19FREdFKTsKICAgICAgICAg
ICAgIGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9XUkFQX1QsIGds
LkNMQU1QX1RPX0VER0UpOwogICAgICAgICAgICAgZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJF
XzJELCBnbC5URVhUVVJFX01JTl9GSUxURVIsIGdsLk5FQVJFU1QpOwpJbmRleDogTGF5b3V0VGVz
dHMvZmFzdC9jYW52YXMvd2ViZ2wvdGV4SW1hZ2VUZXN0LWV4cGVjdGVkLnR4dAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC90ZXhJbWFnZVRlc3QtZXhwZWN0ZWQu
dHh0CShyZXZpc2lvbiA2MTAyNykKKysrIExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL3Rl
eEltYWdlVGVzdC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTYsMTggKzYsMjUgQEAg
UEFTUyBjb250ZXh0LnRleEltYWdlMkQoY29udGV4dC5URVhUVVJFXwogUEFTUyBjb250ZXh0LnRl
eEltYWdlMkQoY29udGV4dC5URVhUVVJFXzJELCAwLCBjb250ZXh0LlJHQkEsIDY0LCA2NCwgMCwg
Y29udGV4dC5SR0JBLCBjb250ZXh0LlVOU0lHTkVEX0JZVEUsIG51bGwpIGlzIHVuZGVmaW5lZC4K
IFBBU1MgY29udGV4dC50ZXhJbWFnZTJEKGNvbnRleHQuVEVYVFVSRV8yRCwgMCwgY29udGV4dC5S
R0JBLCAwLCBjb250ZXh0LlJHQkEsIGNvbnRleHQuVU5TSUdORURfQllURSwgMCkgdGhyZXcgZXhj
ZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KIFBBU1MgY29udGV4dC50ZXhJbWFnZTJEKGNv
bnRleHQuVEVYVFVSRV8yRCwgMCwgY29udGV4dC5SR0JBLCAyLCAyLCAwLCBjb250ZXh0LlJHQkEs
IGNvbnRleHQuVU5TSUdORURfQllURSwgYXJyYXkpIGlzIHVuZGVmaW5lZC4KLVBBU1MgY29udGV4
dC50ZXhJbWFnZTJEKGNvbnRleHQuVEVYVFVSRV8yRCwgMCwgaW1hZ2VEYXRhLCB0cnVlKSBpcyB1
bmRlZmluZWQuCi1QQVNTIGNvbnRleHQudGV4SW1hZ2UyRChjb250ZXh0LlRFWFRVUkVfMkQsIDAs
IGltYWdlKSBpcyB1bmRlZmluZWQuCi1QQVNTIGNvbnRleHQudGV4SW1hZ2UyRChjb250ZXh0LlRF
WFRVUkVfMkQsIDAsIGNhbnZhczJkLCBmYWxzZSkgaXMgdW5kZWZpbmVkLgotUEFTUyBjb250ZXh0
LnRleEltYWdlMkQoY29udGV4dC5URVhUVVJFXzJELCAwLCB2aWRlbywgdHJ1ZSwgZmFsc2UpIGlz
IHVuZGVmaW5lZC4KK1BBU1MgY29udGV4dC5waXhlbFN0b3JlaShjb250ZXh0LlVOUEFDS19GTElQ
X1lfV0VCR0wsIHRydWUpIGlzIHVuZGVmaW5lZC4KK1BBU1MgY29udGV4dC50ZXhJbWFnZTJEKGNv
bnRleHQuVEVYVFVSRV8yRCwgMCwgY29udGV4dC5SR0JBLCBjb250ZXh0LlJHQkEsIGNvbnRleHQu
VU5TSUdORURfQllURSwgaW1hZ2VEYXRhKSBpcyB1bmRlZmluZWQuCitQQVNTIGNvbnRleHQucGl4
ZWxTdG9yZWkoY29udGV4dC5VTlBBQ0tfRkxJUF9ZX1dFQkdMLCBmYWxzZSkgaXMgdW5kZWZpbmVk
LgorUEFTUyBjb250ZXh0LnRleEltYWdlMkQoY29udGV4dC5URVhUVVJFXzJELCAwLCBjb250ZXh0
LlJHQkEsIGNvbnRleHQuUkdCQSwgY29udGV4dC5VTlNJR05FRF9CWVRFLCBpbWFnZSkgaXMgdW5k
ZWZpbmVkLgorUEFTUyBjb250ZXh0LnRleEltYWdlMkQoY29udGV4dC5URVhUVVJFXzJELCAwLCBj
b250ZXh0LlJHQkEsIGNvbnRleHQuUkdCQSwgY29udGV4dC5VTlNJR05FRF9CWVRFLCBjYW52YXMy
ZCkgaXMgdW5kZWZpbmVkLgorUEFTUyBjb250ZXh0LnBpeGVsU3RvcmVpKGNvbnRleHQuVU5QQUNL
X0ZMSVBfWV9XRUJHTCwgdHJ1ZSkgaXMgdW5kZWZpbmVkLgorUEFTUyBjb250ZXh0LnRleEltYWdl
MkQoY29udGV4dC5URVhUVVJFXzJELCAwLCBjb250ZXh0LlJHQkEsIGNvbnRleHQuUkdCQSwgY29u
dGV4dC5VTlNJR05FRF9CWVRFLCB2aWRlbykgaXMgdW5kZWZpbmVkLgogUEFTUyBjb250ZXh0LnRl
eFN1YkltYWdlMkQoY29udGV4dC5URVhUVVJFXzJEKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9y
OiBUeXBlIGVycm9yLgogUEFTUyBjb250ZXh0LnRleFN1YkltYWdlMkQoY29udGV4dC5URVhUVVJF
XzJELCAwLCAxMCwgMjAsIDAsIDAsIGNvbnRleHQuUkdCQSwgY29udGV4dC5VTlNJR05FRF9CWVRF
LCBudWxsKSBpcyB1bmRlZmluZWQuCiBQQVNTIGNvbnRleHQudGV4U3ViSW1hZ2UyRChjb250ZXh0
LlRFWFRVUkVfMkQsIDAsIDEwLCAyMCwgMCwgMCwgY29udGV4dC5SR0JBLCBjb250ZXh0LlVOU0lH
TkVEX0JZVEUsIDApIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCiBQQVNT
IGNvbnRleHQudGV4U3ViSW1hZ2UyRChjb250ZXh0LlRFWFRVUkVfMkQsIDAsIDEwLCAyMCwgMCwg
Y29udGV4dC5VTlNJR05FRF9CWVRFLCAwKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBl
IGVycm9yLgotUEFTUyBjb250ZXh0LnRleFN1YkltYWdlMkQoY29udGV4dC5URVhUVVJFXzJELCAw
LCAxMCwgMjAsIGltYWdlRGF0YSwgZmFsc2UpIGlzIHVuZGVmaW5lZC4KLVBBU1MgY29udGV4dC50
ZXhTdWJJbWFnZTJEKGNvbnRleHQuVEVYVFVSRV8yRCwgMCwgMTAsIDIwLCBpbWFnZSkgaXMgdW5k
ZWZpbmVkLgotUEFTUyBjb250ZXh0LnRleFN1YkltYWdlMkQoY29udGV4dC5URVhUVVJFXzJELCAw
LCAxMCwgMjAsIGNhbnZhczJkLCB0cnVlKSBpcyB1bmRlZmluZWQuCi1QQVNTIGNvbnRleHQudGV4
U3ViSW1hZ2UyRChjb250ZXh0LlRFWFRVUkVfMkQsIDAsIDEwLCAyMCwgdmlkZW8sIGZhbHNlLCB0
cnVlKSBpcyB1bmRlZmluZWQuCitQQVNTIGNvbnRleHQucGl4ZWxTdG9yZWkoY29udGV4dC5VTlBB
Q0tfRkxJUF9ZX1dFQkdMLCBmYWxzZSkgaXMgdW5kZWZpbmVkLgorUEFTUyBjb250ZXh0LnRleFN1
YkltYWdlMkQoY29udGV4dC5URVhUVVJFXzJELCAwLCAxMCwgMjAsIGNvbnRleHQuUkdCQSwgY29u
dGV4dC5VTlNJR05FRF9CWVRFLCBpbWFnZURhdGEpIGlzIHVuZGVmaW5lZC4KK1BBU1MgY29udGV4
dC50ZXhTdWJJbWFnZTJEKGNvbnRleHQuVEVYVFVSRV8yRCwgMCwgMTAsIDIwLCBjb250ZXh0LlJH
QkEsIGNvbnRleHQuVU5TSUdORURfQllURSwgaW1hZ2UpIGlzIHVuZGVmaW5lZC4KK1BBU1MgY29u
dGV4dC5waXhlbFN0b3JlaShjb250ZXh0LlVOUEFDS19GTElQX1lfV0VCR0wsIHRydWUpIGlzIHVu
ZGVmaW5lZC4KK1BBU1MgY29udGV4dC50ZXhTdWJJbWFnZTJEKGNvbnRleHQuVEVYVFVSRV8yRCwg
MCwgMTAsIDIwLCBjb250ZXh0LlJHQkEsIGNvbnRleHQuVU5TSUdORURfQllURSwgY2FudmFzMmQp
IGlzIHVuZGVmaW5lZC4KK1BBU1MgY29udGV4dC5waXhlbFN0b3JlaShjb250ZXh0LlVOUEFDS19G
TElQX1lfV0VCR0wsIGZhbHNlKSBpcyB1bmRlZmluZWQuCitQQVNTIGNvbnRleHQucGl4ZWxTdG9y
ZWkoY29udGV4dC5VTlBBQ0tfUFJFTVVMVElQTFlfQUxQSEFfV0VCR0wsIHRydWUpIGlzIHVuZGVm
aW5lZC4KK1BBU1MgY29udGV4dC50ZXhTdWJJbWFnZTJEKGNvbnRleHQuVEVYVFVSRV8yRCwgMCwg
MTAsIDIwLCBjb250ZXh0LlJHQkEsIGNvbnRleHQuVU5TSUdORURfQllURSwgdmlkZW8pIGlzIHVu
ZGVmaW5lZC4KIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVU
RQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvdGV4dHVyZS1ucG90Lmh0bWwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvdGV4dHVyZS1ucG90
Lmh0bWwJKHJldmlzaW9uIDYxMDI3KQorKysgTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wv
dGV4dHVyZS1ucG90Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTgyLDYgKzgyLDkgQEAKICAgICAg
ICAgICAgIC8vIENoZWNrIHRoYXQgYW4gTlBPVCB0ZXh0dXJlIG5vdCBvbiBsZXZlbCAwIGdlbmVy
YXRlcyBJTlZBTElEX1ZBTFVFDQogICAgICAgICAgICAgZ2wudGV4SW1hZ2UyRChnbC5URVhUVVJF
XzJELA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgMSwgICAgICAgICAgICAgICAgIC8vIGxl
dmVsDQorICAgICAgICAgICAgICAgICAgICAgICAgICBnbC5SR0JBLA0KKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgZ2wuUkdCQSwNCisgICAgICAgICAgICAgICAgICAgICAgICAgIGdsLlVOU0lH
TkVEX0JZVEUsDQogICAgICAgICAgICAgICAgICAgICAgICAgICBjYW52YXMyZCk7DQogICAgICAg
ICAgICAgYXNzZXJ0TXNnKGdsLmdldEVycm9yKCkgPT0gZ2wuSU5WQUxJRF9WQUxVRSwNCiAgICAg
ICAgICAgICAgICAgICAgICAgImdsLnRleEltYWdlMkQgd2l0aCBOUE9UIHRleHR1cmUgd2l0aCBs
ZXZlbCA+IDAgc2hvdWxkIHJldHVybiBJTlZBTElEX1ZBTFVFIik7DQpAQCAtODksNiArOTIsOSBA
QAogICAgICAgICAgICAgLy8gQ2hlY2sgdGhhdCBhbiBOUE9UIHRleHR1cmUgb24gbGV2ZWwgMCBz
dWNjZWVkcw0KICAgICAgICAgICAgIGdsLnRleEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwNCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDAsICAgICAgICAgICAgICAgICAvLyBsZXZlbA0KKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgZ2wuUkdCQSwNCisgICAgICAgICAgICAgICAgICAgICAgICAg
IGdsLlJHQkEsDQorICAgICAgICAgICAgICAgICAgICAgICAgICBnbC5VTlNJR05FRF9CWVRFLA0K
ICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FudmFzMmQpOw0KICAgICAgICAgICAgIGFzc2Vy
dE1zZyhnbC5nZXRFcnJvcigpID09IGdsLk5PX0VSUk9SLA0KICAgICAgICAgICAgICAgICAgICAg
ICAiZ2wudGV4SW1hZ2UyRCB3aXRoIE5QT1QgdGV4dHVyZSBhdCBsZXZlbCAwIHNob3VsZCBzdWNj
ZWVkIik7DQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvcmVzb3VyY2VzL3V0
aWxzM2QuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvcmVz
b3VyY2VzL3V0aWxzM2QuanMJKHJldmlzaW9uIDYxMDI3KQorKysgTGF5b3V0VGVzdHMvZmFzdC9j
YW52YXMvd2ViZ2wvcmVzb3VyY2VzL3V0aWxzM2QuanMJKHdvcmtpbmcgY29weSkKQEAgLTQ4NCw3
ICs0ODQsNyBAQCBmdW5jdGlvbiBkb0xvYWRJbWFnZVRleHR1cmUoY3R4LCBpbWFnZSwgCiB7CiAg
ICAgY3R4LmVuYWJsZShjdHguVEVYVFVSRV8yRCk7CiAgICAgY3R4LmJpbmRUZXh0dXJlKGN0eC5U
RVhUVVJFXzJELCB0ZXh0dXJlKTsKLSAgICBjdHgudGV4SW1hZ2UyRChjdHguVEVYVFVSRV8yRCwg
MCwgaW1hZ2UpOworICAgIGN0eC50ZXhJbWFnZTJEKGN0eC5URVhUVVJFXzJELCAwLCBnbC5SR0JB
LCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCBpbWFnZSk7CiAgICAgY3R4LnRleFBhcmFtZXRl
cmkoY3R4LlRFWFRVUkVfMkQsIGN0eC5URVhUVVJFX01BR19GSUxURVIsIGN0eC5MSU5FQVIpOwog
ICAgIGN0eC50ZXhQYXJhbWV0ZXJpKGN0eC5URVhUVVJFXzJELCBjdHguVEVYVFVSRV9NSU5fRklM
VEVSLCBjdHguTElORUFSX01JUE1BUF9MSU5FQVIpOwogICAgIGN0eC50ZXhQYXJhbWV0ZXJpKGN0
eC5URVhUVVJFXzJELCBjdHguVEVYVFVSRV9XUkFQX1MsIGN0eC5DTEFNUF9UT19FREdFKTsKSW5k
ZXg6IExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL3NjcmlwdC10ZXN0cy90ZXhJbWFnZVRl
c3QuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvc2NyaXB0
LXRlc3RzL3RleEltYWdlVGVzdC5qcwkocmV2aXNpb24gNjEwMjcpCisrKyBMYXlvdXRUZXN0cy9m
YXN0L2NhbnZhcy93ZWJnbC9zY3JpcHQtdGVzdHMvdGV4SW1hZ2VUZXN0LmpzCSh3b3JraW5nIGNv
cHkpCkBAIC0xMiwxOCArMTIsMjUgQEAgc2hvdWxkVGhyb3coImNvbnRleHQudGV4SW1hZ2UyRChj
b250ZXh0Lgogc2hvdWxkQmVVbmRlZmluZWQoImNvbnRleHQudGV4SW1hZ2UyRChjb250ZXh0LlRF
WFRVUkVfMkQsIDAsIGNvbnRleHQuUkdCQSwgNjQsIDY0LCAwLCBjb250ZXh0LlJHQkEsIGNvbnRl
eHQuVU5TSUdORURfQllURSwgbnVsbCkiKTsKIHNob3VsZFRocm93KCJjb250ZXh0LnRleEltYWdl
MkQoY29udGV4dC5URVhUVVJFXzJELCAwLCBjb250ZXh0LlJHQkEsIDAsIGNvbnRleHQuUkdCQSwg
Y29udGV4dC5VTlNJR05FRF9CWVRFLCAwKSIpOwogc2hvdWxkQmVVbmRlZmluZWQoImNvbnRleHQu
dGV4SW1hZ2UyRChjb250ZXh0LlRFWFRVUkVfMkQsIDAsIGNvbnRleHQuUkdCQSwgMiwgMiwgMCwg
Y29udGV4dC5SR0JBLCBjb250ZXh0LlVOU0lHTkVEX0JZVEUsIGFycmF5KSIpOwotc2hvdWxkQmVV
bmRlZmluZWQoImNvbnRleHQudGV4SW1hZ2UyRChjb250ZXh0LlRFWFRVUkVfMkQsIDAsIGltYWdl
RGF0YSwgdHJ1ZSkiKTsKLXNob3VsZEJlVW5kZWZpbmVkKCJjb250ZXh0LnRleEltYWdlMkQoY29u
dGV4dC5URVhUVVJFXzJELCAwLCBpbWFnZSkiKTsKLXNob3VsZEJlVW5kZWZpbmVkKCJjb250ZXh0
LnRleEltYWdlMkQoY29udGV4dC5URVhUVVJFXzJELCAwLCBjYW52YXMyZCwgZmFsc2UpIik7Ci1z
aG91bGRCZVVuZGVmaW5lZCgiY29udGV4dC50ZXhJbWFnZTJEKGNvbnRleHQuVEVYVFVSRV8yRCwg
MCwgdmlkZW8sIHRydWUsIGZhbHNlKSIpOworc2hvdWxkQmVVbmRlZmluZWQoImNvbnRleHQucGl4
ZWxTdG9yZWkoY29udGV4dC5VTlBBQ0tfRkxJUF9ZX1dFQkdMLCB0cnVlKSIpOworc2hvdWxkQmVV
bmRlZmluZWQoImNvbnRleHQudGV4SW1hZ2UyRChjb250ZXh0LlRFWFRVUkVfMkQsIDAsIGNvbnRl
eHQuUkdCQSwgY29udGV4dC5SR0JBLCBjb250ZXh0LlVOU0lHTkVEX0JZVEUsIGltYWdlRGF0YSki
KTsKK3Nob3VsZEJlVW5kZWZpbmVkKCJjb250ZXh0LnBpeGVsU3RvcmVpKGNvbnRleHQuVU5QQUNL
X0ZMSVBfWV9XRUJHTCwgZmFsc2UpIik7CitzaG91bGRCZVVuZGVmaW5lZCgiY29udGV4dC50ZXhJ
bWFnZTJEKGNvbnRleHQuVEVYVFVSRV8yRCwgMCwgY29udGV4dC5SR0JBLCBjb250ZXh0LlJHQkEs
IGNvbnRleHQuVU5TSUdORURfQllURSwgaW1hZ2UpIik7CitzaG91bGRCZVVuZGVmaW5lZCgiY29u
dGV4dC50ZXhJbWFnZTJEKGNvbnRleHQuVEVYVFVSRV8yRCwgMCwgY29udGV4dC5SR0JBLCBjb250
ZXh0LlJHQkEsIGNvbnRleHQuVU5TSUdORURfQllURSwgY2FudmFzMmQpIik7CitzaG91bGRCZVVu
ZGVmaW5lZCgiY29udGV4dC5waXhlbFN0b3JlaShjb250ZXh0LlVOUEFDS19GTElQX1lfV0VCR0ws
IHRydWUpIik7CitzaG91bGRCZVVuZGVmaW5lZCgiY29udGV4dC50ZXhJbWFnZTJEKGNvbnRleHQu
VEVYVFVSRV8yRCwgMCwgY29udGV4dC5SR0JBLCBjb250ZXh0LlJHQkEsIGNvbnRleHQuVU5TSUdO
RURfQllURSwgdmlkZW8pIik7CiAKIHNob3VsZFRocm93KCJjb250ZXh0LnRleFN1YkltYWdlMkQo
Y29udGV4dC5URVhUVVJFXzJEKSIpOwogc2hvdWxkQmVVbmRlZmluZWQoImNvbnRleHQudGV4U3Vi
SW1hZ2UyRChjb250ZXh0LlRFWFRVUkVfMkQsIDAsIDEwLCAyMCwgMCwgMCwgY29udGV4dC5SR0JB
LCBjb250ZXh0LlVOU0lHTkVEX0JZVEUsIG51bGwpIik7CiBzaG91bGRUaHJvdygiY29udGV4dC50
ZXhTdWJJbWFnZTJEKGNvbnRleHQuVEVYVFVSRV8yRCwgMCwgMTAsIDIwLCAwLCAwLCBjb250ZXh0
LlJHQkEsIGNvbnRleHQuVU5TSUdORURfQllURSwgMCkiKTsKIHNob3VsZFRocm93KCJjb250ZXh0
LnRleFN1YkltYWdlMkQoY29udGV4dC5URVhUVVJFXzJELCAwLCAxMCwgMjAsIDAsIGNvbnRleHQu
VU5TSUdORURfQllURSwgMCkiKTsKLXNob3VsZEJlVW5kZWZpbmVkKCJjb250ZXh0LnRleFN1Yklt
YWdlMkQoY29udGV4dC5URVhUVVJFXzJELCAwLCAxMCwgMjAsIGltYWdlRGF0YSwgZmFsc2UpIik7
Ci1zaG91bGRCZVVuZGVmaW5lZCgiY29udGV4dC50ZXhTdWJJbWFnZTJEKGNvbnRleHQuVEVYVFVS
RV8yRCwgMCwgMTAsIDIwLCBpbWFnZSkiKTsKLXNob3VsZEJlVW5kZWZpbmVkKCJjb250ZXh0LnRl
eFN1YkltYWdlMkQoY29udGV4dC5URVhUVVJFXzJELCAwLCAxMCwgMjAsIGNhbnZhczJkLCB0cnVl
KSIpOwotc2hvdWxkQmVVbmRlZmluZWQoImNvbnRleHQudGV4U3ViSW1hZ2UyRChjb250ZXh0LlRF
WFRVUkVfMkQsIDAsIDEwLCAyMCwgdmlkZW8sIGZhbHNlLCB0cnVlKSIpOworc2hvdWxkQmVVbmRl
ZmluZWQoImNvbnRleHQucGl4ZWxTdG9yZWkoY29udGV4dC5VTlBBQ0tfRkxJUF9ZX1dFQkdMLCBm
YWxzZSkiKTsKK3Nob3VsZEJlVW5kZWZpbmVkKCJjb250ZXh0LnRleFN1YkltYWdlMkQoY29udGV4
dC5URVhUVVJFXzJELCAwLCAxMCwgMjAsIGNvbnRleHQuUkdCQSwgY29udGV4dC5VTlNJR05FRF9C
WVRFLCBpbWFnZURhdGEpIik7CitzaG91bGRCZVVuZGVmaW5lZCgiY29udGV4dC50ZXhTdWJJbWFn
ZTJEKGNvbnRleHQuVEVYVFVSRV8yRCwgMCwgMTAsIDIwLCBjb250ZXh0LlJHQkEsIGNvbnRleHQu
VU5TSUdORURfQllURSwgaW1hZ2UpIik7CitzaG91bGRCZVVuZGVmaW5lZCgiY29udGV4dC5waXhl
bFN0b3JlaShjb250ZXh0LlVOUEFDS19GTElQX1lfV0VCR0wsIHRydWUpIik7CitzaG91bGRCZVVu
ZGVmaW5lZCgiY29udGV4dC50ZXhTdWJJbWFnZTJEKGNvbnRleHQuVEVYVFVSRV8yRCwgMCwgMTAs
IDIwLCBjb250ZXh0LlJHQkEsIGNvbnRleHQuVU5TSUdORURfQllURSwgY2FudmFzMmQpIik7Citz
aG91bGRCZVVuZGVmaW5lZCgiY29udGV4dC5waXhlbFN0b3JlaShjb250ZXh0LlVOUEFDS19GTElQ
X1lfV0VCR0wsIGZhbHNlKSIpOworc2hvdWxkQmVVbmRlZmluZWQoImNvbnRleHQucGl4ZWxTdG9y
ZWkoY29udGV4dC5VTlBBQ0tfUFJFTVVMVElQTFlfQUxQSEFfV0VCR0wsIHRydWUpIik7CitzaG91
bGRCZVVuZGVmaW5lZCgiY29udGV4dC50ZXhTdWJJbWFnZTJEKGNvbnRleHQuVEVYVFVSRV8yRCwg
MCwgMTAsIDIwLCBjb250ZXh0LlJHQkEsIGNvbnRleHQuVU5TSUdORURfQllURSwgdmlkZW8pIik7
CiAKIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cg==
</data>
<flag name="review"
          id="44669"
          type_id="1"
          status="+"
          setter="dglazkov"
    />
    <flag name="commit-queue"
          id="44670"
          type_id="3"
          status="-"
          setter="kbr"
    />
          </attachment>
      

    </bug>

</bugzilla>