<?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>241699</bug_id>
          
          <creation_ts>2022-06-16 13:56:54 -0700</creation_ts>
          <short_desc>TextureMapper: nesting 3D rendering context support</short_desc>
          <delta_ts>2024-10-29 03:04:42 -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>Platform</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>DUPLICATE</resolution>
          <dup_id>281079</dup_id>
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=113455</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=281079</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>244526</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Fujii Hironori">fujii</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>cgarcia</cc>
    
    <cc>magomez</cc>
    
    <cc>mattwoodrow</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1876329</commentid>
    <comment_count>0</comment_count>
      <attachid>460275</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2022-06-16 13:56:54 -0700</bug_when>
    <thetext>Created attachment 460275
test case

TextureMapperGL: rendering glitch of a 3d transformed text in Strange-Loop-2012

hyper texts in the slides aren&apos;t painted as expected if they are :hover.
https://github.com/BrendanEich/Strange-Loop-2012</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1876380</commentid>
    <comment_count>1</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2022-06-16 18:30:26 -0700</bug_when>
    <thetext>Safari, Chrome, Firefox: Very smooth animation
WebKitGTK, WinCairo WK1: not smooth animation
WinCairo WK2: not smooth animation, text disappears</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1876668</commentid>
    <comment_count>2</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2022-06-19 13:38:15 -0700</bug_when>
    <thetext>Disabling tet depth test makes the animation smooth. This seems to be a regression of my change (231816@main) enabling depth test.

diff --git a/Source/WebCore/platform/graphics/texmap/TextureMapperGL.cpp b/Source/WebCore/platform/graphics/texmap/TextureMapperGL.cpp
index f4d99408ff15..3890e1fa8c82 100644
--- a/Source/WebCore/platform/graphics/texmap/TextureMapperGL.cpp
+++ b/Source/WebCore/platform/graphics/texmap/TextureMapperGL.cpp
@@ -1043,7 +1043,6 @@ IntRect TextureMapperGL::clipBounds()
 
 void TextureMapperGL::beginPreserves3D()
 {
-    glEnable(GL_DEPTH_TEST);
     glClear(GL_DEPTH_BUFFER_BIT);
 }</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1876669</commentid>
    <comment_count>3</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2022-06-19 14:20:28 -0700</bug_when>
    <thetext>In this test case, &lt;section&gt; and &lt;span&gt; elements has transform-style:preseve-3d, but intermediate &lt;a&gt; element doesn&apos;t have it.
This is the case not supported as 231816@main change log explains.

&lt;section&gt; transform-style:preseve-3d
 +&lt;a&gt;
   +&lt;span&gt; transform-style:preseve-3d
     +&lt;span::after&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1877817</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-06-23 13:57:11 -0700</bug_when>
    <thetext>&lt;rdar://problem/95804784&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1906014</commentid>
    <comment_count>5</comment_count>
      <attachid>463018</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2022-10-16 18:45:19 -0700</bug_when>
    <thetext>Created attachment 463018
WIP patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1914525</commentid>
    <comment_count>6</comment_count>
    <who name="Matt Woodrow">mattwoodrow</who>
    <bug_when>2022-11-24 11:00:28 -0800</bug_when>
    <thetext>In https://github.com/WebKit/WebKit/pull/6770 I&apos;m adding 3 new TestExpectation annotations for this bug, for 3d tests that now pass on Mac/iOS, but still fail on GTK due to this bug (I think!).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2071198</commentid>
    <comment_count>7</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2024-10-29 03:04:42 -0700</bug_when>
    <thetext>

*** This bug has been marked as a duplicate of bug 281079 ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>460275</attachid>
            <date>2022-06-16 13:56:54 -0700</date>
            <delta_ts>2022-06-16 13:56:54 -0700</delta_ts>
            <desc>test case</desc>
            <filename>a.html</filename>
            <type>text/html</type>
            <size>29822</size>
            <attacher name="Fujii Hironori">fujii</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIGh0bWw+DQoNCjxzdHlsZT4NCmh0bWwsIGJvZHkgew0KCXBvc2l0aW9uOiByZWxh
dGl2ZTsNCglwYWRkaW5nOiAwOw0KCW1hcmdpbjogMDsNCglvdmVyZmxvdzogaGlkZGVuOw0KCQ0K
CWZvbnQtZmFtaWx5OiAnTGF0bycsIFRpbWVzLCAnVGltZXMgTmV3IFJvbWFuJywgc2VyaWY7DQoJ
Zm9udC1zaXplOiAzNnB4Ow0KCWZvbnQtd2VpZ2h0OiAyMDA7DQoJbGV0dGVyLXNwYWNpbmc6IC0w
LjAyZW07DQoJDQoJY29sb3I6ICNlZWU7DQoJDQoJd2lkdGg6IDEwMCU7DQoJaGVpZ2h0OiAxMDAl
Ow0KDQoJbWluLWhlaWdodDogNjAwcHg7DQp9DQoNCmh0bWwgew0KCWJhY2tncm91bmQ6ICMxYzFl
MjA7DQoJYmFja2dyb3VuZDogLW1vei1yYWRpYWwtZ3JhZGllbnQoY2VudGVyLCBlbGxpcHNlIGNv
dmVyLCAjNTU1YTVmIDAlLCAjMWMxZTIwIDEwMCUpOw0KCWJhY2tncm91bmQ6IC13ZWJraXQtZ3Jh
ZGllbnQocmFkaWFsLCBjZW50ZXIgY2VudGVyLCAwcHgsIGNlbnRlciBjZW50ZXIsIDEwMCUsIGNv
bG9yLXN0b3AoMCUsIzU1NWE1ZiksIGNvbG9yLXN0b3AoMTAwJSwjMWMxZTIwKSk7DQoJYmFja2dy
b3VuZDogLXdlYmtpdC1yYWRpYWwtZ3JhZGllbnQoY2VudGVyLCBlbGxpcHNlIGNvdmVyLCAjNTU1
YTVmIDAlLCMxYzFlMjAgMTAwJSk7DQoJYmFja2dyb3VuZDogLW8tcmFkaWFsLWdyYWRpZW50KGNl
bnRlciwgZWxsaXBzZSBjb3ZlciwgIzU1NWE1ZiAwJSwjMWMxZTIwIDEwMCUpOw0KCWJhY2tncm91
bmQ6IC1tcy1yYWRpYWwtZ3JhZGllbnQoY2VudGVyLCBlbGxpcHNlIGNvdmVyLCAjNTU1YTVmIDAl
LCMxYzFlMjAgMTAwJSk7DQoJYmFja2dyb3VuZDogcmFkaWFsLWdyYWRpZW50KGNlbnRlciwgZWxs
aXBzZSBjb3ZlciwgIzU1NWE1ZiAwJSwjMWMxZTIwIDEwMCUpOw0KfQ0KDQovKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQogKiBIRUFERVJTDQogKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLw0KI3JldmVhbCBoMSwgDQojcmV2
ZWFsIGgyLCANCiNyZXZlYWwgaDMsIA0KI3JldmVhbCBoNCB7DQoJbWFyZ2luOiAwIDAgMjBweCAw
Ow0KCQ0KCWNvbG9yOiAjZWVlOw0KCQ0KCWZvbnQtZmFtaWx5OiAnTGVhZ3VlIEdvdGhpYycsIHNh
bnMtc2VyaWY7DQoJbGluZS1oZWlnaHQ6IDAuOWVtOw0KCWxldHRlci1zcGFjaW5nOiAwLjAyZW07
DQoJDQoJdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsNCgl0ZXh0LXNoYWRvdzogMHB4IDBweCA2
cHggcmdiYSgwLDAsMCwwLjIpOw0KfQ0KDQojcmV2ZWFsIGgxIHsgZm9udC1zaXplOiAxMzZweDsg
CX0NCiNyZXZlYWwgaDIgeyBmb250LXNpemU6IDc2cHg7CX0NCiNyZXZlYWwgaDMgeyBmb250LXNp
emU6IDU2cHg7CX0NCiNyZXZlYWwgaDQgeyBmb250LXNpemU6IDM2cHg7CX0NCg0KI3JldmVhbCBo
MS5pbnZlcnRlZCwNCiNyZXZlYWwgaDIuaW52ZXJ0ZWQsDQojcmV2ZWFsIGgzLmludmVydGVkLA0K
I3JldmVhbCBoNC5pbnZlcnRlZCB7DQoJY29sb3I6ICNmZmY7DQoJdGV4dC1zaGFkb3c6IDBweCAw
cHggMnB4IHJnYmEoMCwwLDAsMC4yKTsNCn0NCg0KI3JldmVhbCBoMSB7DQoJdGV4dC1zaGFkb3c6
IDAgMXB4IDAgI2NjYywNCiAgICAgICAgICAgICAgICAgMCAycHggMCAjYzljOWM5LA0KICAgICAg
ICAgICAgICAgICAwIDNweCAwICNiYmIsDQogICAgICAgICAgICAgICAgIDAgNHB4IDAgI2I5Yjli
OSwNCiAgICAgICAgICAgICAgICAgMCA1cHggMCAjYWFhLA0KICAgICAgICAgICAgICAgICAwIDZw
eCAxcHggcmdiYSgwLDAsMCwuMSksDQogICAgICAgICAgICAgICAgIDAgMCA1cHggcmdiYSgwLDAs
MCwuMSksDQogICAgICAgICAgICAgICAgIDAgMXB4IDNweCByZ2JhKDAsMCwwLC4zKSwNCiAgICAg
ICAgICAgICAgICAgMCAzcHggNXB4IHJnYmEoMCwwLDAsLjIpLA0KICAgICAgICAgICAgICAgICAw
IDVweCAxMHB4IHJnYmEoMCwwLDAsLjI1KSwNCiAgICAgICAgICAgICAgICAgMCAyMHB4IDIwcHgg
cmdiYSgwLDAsMCwuMTUpOw0KfQ0KDQojcmV2ZWFsIC5uYWNsLXNsaWRlIHVsIGxpIHsNCiAgICB0
ZXh0LXNoYWRvdzogMCAxcHggMCAjNjY2LA0KICAgICAgICAgICAgICAgICAwIDJweCAwICM2NjY7
DQovKg0KICAgICAgICAgICAgICAgICAwIDNweCAwICNiYmI7DQogICAgICAgICAgICAgICAgIDAg
NHB4IDAgI2I5YjliOSwNCiovDQp9DQoNCg0KLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKg0KICogVklFVyBGUkFHTUVOVFMNCiAqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKiovDQoNCiNyZXZlYWwgLnNsaWRlcyBzZWN0aW9uIC5m
cmFnbWVudCB7DQoJb3BhY2l0eTogMDsNCg0KCS13ZWJraXQtdHJhbnNpdGlvbjogYWxsIC4ycyBl
YXNlOw0KCSAgIC1tb3otdHJhbnNpdGlvbjogYWxsIC4ycyBlYXNlOw0KCSAgICAtbXMtdHJhbnNp
dGlvbjogYWxsIC4ycyBlYXNlOw0KCSAgICAgLW8tdHJhbnNpdGlvbjogYWxsIC4ycyBlYXNlOw0K
CSAgICAgICAgdHJhbnNpdGlvbjogYWxsIC4ycyBlYXNlOw0KfQ0KCSNyZXZlYWwgLnNsaWRlcyBz
ZWN0aW9uIC5mcmFnbWVudC52aXNpYmxlIHsNCgkJb3BhY2l0eTogMTsNCgl9DQoNCg0KLyoqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KICogREVGQVVMVCBFTEVN
RU5UIFNUWUxFUw0KICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
Ki8NCg0KI3JldmVhbCAuc2xpZGVzIHNlY3Rpb24gew0KCWxpbmUtaGVpZ2h0OiAxLjJlbTsNCglm
b250LXdlaWdodDogbm9ybWFsOw0KfQ0KDQojcmV2ZWFsIHN0cm9uZywgDQojcmV2ZWFsIGIgew0K
CWZvbnQtd2VpZ2h0OiBib2xkOw0KfQ0KDQojcmV2ZWFsIGVtLCANCiNyZXZlYWwgaSB7DQoJZm9u
dC1zdHlsZTogaXRhbGljOw0KfQ0KDQojcmV2ZWFsIG9sLCANCiNyZXZlYWwgdWwgew0KCWRpc3Bs
YXk6IGlubGluZS1ibG9jazsNCg0KCXRleHQtYWxpZ246IGxlZnQ7DQoJbWFyZ2luOiAwIGF1dG87
DQp9DQoNCiNyZXZlYWwgb2wgew0KCWxpc3Qtc3R5bGU6IGRlY2ltYWw7DQoJbGlzdC1zdHlsZS1w
b3NpdGlvbjogaW5zaWRlOw0KfQ0KDQojcmV2ZWFsIHVsIHsNCglsaXN0LXN0eWxlOiBkaXNjOw0K
fQ0KDQojcmV2ZWFsIHAgew0KCW1hcmdpbi1ib3R0b206IDEwcHg7DQp9DQoNCiNyZXZlYWwgYmxv
Y2txdW90ZSB7DQoJZGlzcGxheTogYmxvY2s7DQoJcG9zaXRpb246IHJlbGF0aXZlOw0KCXdpZHRo
OiA3MCU7DQoJbWFyZ2luOiA1cHggYXV0bzsNCglwYWRkaW5nOiA1cHg7DQoJDQoJZm9udC1zdHls
ZTogaXRhbGljOw0KCWJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNSk7DQoJYm94
LXNoYWRvdzogMHB4IDBweCAycHggcmdiYSgwLDAsMCwwLjIpOw0KfQ0KCSNyZXZlYWwgYmxvY2tx
dW90ZTpiZWZvcmUgew0KCQljb250ZW50OiAn4oCcJzsNCgl9DQoJI3JldmVhbCBibG9ja3F1b3Rl
OmFmdGVyIHsNCgkJY29udGVudDogJ+KAnSc7DQoJfQ0KDQojcmV2ZWFsIHByZSB7DQoJZGlzcGxh
eTogYmxvY2s7DQoJcG9zaXRpb246IHJlbGF0aXZlOw0KCXdpZHRoOiA5MCU7DQoJbWFyZ2luOiAx
MHB4IGF1dG87DQoNCgl0ZXh0LWFsaWduOiBsZWZ0Ow0KCWZvbnQtc2l6ZTogMTRweDsNCglmb250
LWZhbWlseTogbW9ub3NwYWNlOw0KCWxpbmUtaGVpZ2h0OiAxLjFlbTsNCg0KCXdvcmQtd3JhcDog
YnJlYWstd29yZDsNCg0KCWJveC1zaGFkb3c6IDBweCAwcHggNnB4IHJnYmEoMCwwLDAsMC4zKTsN
Cn0NCg0KI3JldmVhbCBjb2RlIHsNCglmb250LWZhbWlseTogbW9ub3NwYWNlOw0KfQ0KDQojcmV2
ZWFsIHNtYWxsIHsNCglmb250LXNpemU6IDYwJTsNCglsaW5lLWhlaWdodDogMWVtOw0KCXZlcnRp
Y2FsLWFsaWduOiB0b3A7DQp9DQoNCiNyZXZlYWwgcSB7CQ0KCWZvbnQtc3R5bGU6IGl0YWxpYzsN
Cn0NCgkjcmV2ZWFsIHE6YmVmb3JlIHsNCgkJY29udGVudDogJ+KAnCc7DQoJfQ0KCSNyZXZlYWwg
cTphZnRlciB7DQoJCWNvbnRlbnQ6ICfigJ0nOw0KCX0NCg0KI3JldmVhbCBhOm5vdCguaW1hZ2Up
IHsNCgljb2xvcjogaHNsKDE4NSwgODUlLCA1MCUpOw0KCXRleHQtZGVjb3JhdGlvbjogbm9uZTsN
Cg0KCS13ZWJraXQtdHJhbnNpdGlvbjogYWxsIC4ycyBlYXNlOw0KCSAgIC1tb3otdHJhbnNpdGlv
bjogYWxsIC4ycyBlYXNlOw0KCSAgICAtbXMtdHJhbnNpdGlvbjogYWxsIC4ycyBlYXNlOw0KCSAg
ICAgLW8tdHJhbnNpdGlvbjogYWxsIC4ycyBlYXNlOw0KCSAgICAgICAgdHJhbnNpdGlvbjogYWxs
IC4ycyBlYXNlOw0KfQ0KCQ0KCSNyZXZlYWwgYTpub3QoLmltYWdlKTpob3ZlciB7DQoJCWNvbG9y
OiBoc2woMTg1LCA4NSUsIDcwJSk7DQoJCWJhY2tncm91bmQ6IGhzbGEoMTg1LCAyNSUsIDIwJSwg
MC40KTsNCgkJdGV4dC1zaGFkb3c6IG5vbmU7DQoJCWJvcmRlcjogbm9uZTsNCgkJYm9yZGVyLXJh
ZGl1czogMnB4Ow0KCX0NCg0KI3JldmVhbCBzZWN0aW9uIGltZyB7DQoJbWFyZ2luOiAzMHB4IDAg
MCAwOw0KCWJhY2tncm91bmQ6IHJnYmEoMjU1LDI1NSwyNTUsMC4xMik7DQoJYm9yZGVyOiA0cHgg
c29saWQgI2VlZTsNCgkNCgktd2Via2l0LWJveC1zaGFkb3c6IDAgMCAxMHB4IHJnYmEoMCwgMCwg
MCwgMC4xNSk7DQoJICAgLW1vei1ib3gtc2hhZG93OiAwIDAgMTBweCByZ2JhKDAsIDAsIDAsIDAu
MTUpOw0KCSAgICAgLW8tYm94LXNoYWRvdzogMCAwIDEwcHggcmdiYSgwLCAwLCAwLCAwLjE1KTsN
CgkgICAgICAgIGJveC1zaGFkb3c6IDAgMCAxMHB4IHJnYmEoMCwgMCwgMCwgMC4xNSk7DQoJDQoJ
LXdlYmtpdC10cmFuc2l0aW9uOiBhbGwgLjJzIGxpbmVhcjsNCgkgICAtbW96LXRyYW5zaXRpb246
IGFsbCAuMnMgbGluZWFyOw0KCSAgICAtbXMtdHJhbnNpdGlvbjogYWxsIC4ycyBsaW5lYXI7DQoJ
ICAgICAtby10cmFuc2l0aW9uOiBhbGwgLjJzIGxpbmVhcjsNCgkgICAgICAgIHRyYW5zaXRpb246
IGFsbCAuMnMgbGluZWFyOw0KfQ0KDQoJI3JldmVhbCBhOmhvdmVyIGltZyB7DQoJCWJhY2tncm91
bmQ6IHJnYmEoMjU1LDI1NSwyNTUsMC4yKTsNCgkJYm9yZGVyLWNvbG9yOiAjMTNEQUVDOw0KCQkN
CgkJLXdlYmtpdC1ib3gtc2hhZG93OiAwIDAgMjBweCByZ2JhKDAsIDAsIDAsIDAuNTUpOw0KCQkg
ICAtbW96LWJveC1zaGFkb3c6IDAgMCAyMHB4IHJnYmEoMCwgMCwgMCwgMC41NSk7DQoJCSAgICAg
LW8tYm94LXNoYWRvdzogMCAwIDIwcHggcmdiYSgwLCAwLCAwLCAwLjU1KTsNCgkJICAgICAgICBi
b3gtc2hhZG93OiAwIDAgMjBweCByZ2JhKDAsIDAsIDAsIDAuNTUpOw0KCX0NCg0KDQovKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQogKiBDT05UUk9MUw0KICoq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8NCg0KI3JldmVhbCAu
Y29udHJvbHMgew0KCWRpc3BsYXk6IG5vbmU7DQoJcG9zaXRpb246IGZpeGVkOw0KCXdpZHRoOiAx
MDBweDsNCgloZWlnaHQ6IDEwMHB4Ow0KDQoJcmlnaHQ6IDA7DQoJYm90dG9tOiAwOw0KfQ0KCQ0K
CSNyZXZlYWwgLmNvbnRyb2xzIGEgew0KCQlmb250LXNpemU6IDMwcHg7DQoJCXBvc2l0aW9uOiBh
YnNvbHV0ZTsNCgkJb3BhY2l0eTogMC4xOw0KCQljb2xvcjogI2ZmZjsNCgl9DQoJCSNyZXZlYWwg
LmNvbnRyb2xzIGEuZW5hYmxlZCB7DQoJCQlvcGFjaXR5OiAwLjY7DQoJCQljb2xvcjogaHNsKDE4
NSwgODUlLCA3MCUpOw0KDQoJCQl0ZXh0LXNoYWRvdzogMHB4IDBweCAycHggaHNsYSgxODUsIDQ1
JSwgNzAlLCAwLjMpOw0KCQl9DQoJCSNyZXZlYWwgLmNvbnRyb2xzIGEuZW5hYmxlZDphY3RpdmUg
ew0KCQkJbWFyZ2luLXRvcDogMXB4Ow0KCQl9DQoNCgkjcmV2ZWFsIC5jb250cm9scyAubGVmdCB7
DQoJCXRvcDogMzBweDsNCgl9DQoNCgkjcmV2ZWFsIC5jb250cm9scyAucmlnaHQgew0KCQlsZWZ0
OiA2MHB4Ow0KCQl0b3A6IDMwcHg7DQoJfQ0KDQoJI3JldmVhbCAuY29udHJvbHMgLnVwIHsNCgkJ
bGVmdDogMzBweDsNCgl9DQoNCgkjcmV2ZWFsIC5jb250cm9scyAuZG93biB7DQoJCWxlZnQ6IDMw
cHg7DQoJCXRvcDogNjBweDsNCg0KCX0NCg0KDQovKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqDQogKiBQUk9HUkVTUyBCQVINCiAqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKiovDQoNCiNyZXZlYWwgLnByb2dyZXNzIHsNCglwb3Np
dGlvbjogZml4ZWQ7DQoJZGlzcGxheTogbm9uZTsNCgloZWlnaHQ6IDNweDsNCgl3aWR0aDogMTAw
JTsNCglib3R0b206IDA7DQoJbGVmdDogMDsNCg0KCWJhY2tncm91bmQ6IHJnYmEoMCwwLDAsMC4y
KTsNCn0NCgkNCgkjcmV2ZWFsIC5wcm9ncmVzcyBzcGFuIHsNCgkJZGlzcGxheTogYmxvY2s7DQoJ
CWJhY2tncm91bmQ6IGhzbCgxODUsIDg1JSwgNTAlKTsNCgkJaGVpZ2h0OiAxMDAlOw0KCQl3aWR0
aDogMHB4Ow0KDQoJCS13ZWJraXQtdHJhbnNpdGlvbjogd2lkdGggODAwbXMgY3ViaWMtYmV6aWVy
KDAuMjYwLCAwLjg2MCwgMC40NDAsIDAuOTg1KTsNCgkJICAgLW1vei10cmFuc2l0aW9uOiB3aWR0
aCA4MDBtcyBjdWJpYy1iZXppZXIoMC4yNjAsIDAuODYwLCAwLjQ0MCwgMC45ODUpOw0KCQkgICAg
LW1zLXRyYW5zaXRpb246IHdpZHRoIDgwMG1zIGN1YmljLWJlemllcigwLjI2MCwgMC44NjAsIDAu
NDQwLCAwLjk4NSk7DQoJCSAgICAgLW8tdHJhbnNpdGlvbjogd2lkdGggODAwbXMgY3ViaWMtYmV6
aWVyKDAuMjYwLCAwLjg2MCwgMC40NDAsIDAuOTg1KTsNCgkJICAgICAgICB0cmFuc2l0aW9uOiB3
aWR0aCA4MDBtcyBjdWJpYy1iZXppZXIoMC4yNjAsIDAuODYwLCAwLjQ0MCwgMC45ODUpOw0KCX0N
Cg0KLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KICogUk9M
TElORyBMSU5LUw0KICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
Ki8NCg0KI3JldmVhbCAucm9sbCB7DQogICAgZGlzcGxheTogaW5saW5lLWJsb2NrOw0KICAgIG92
ZXJmbG93OiBoaWRkZW47DQoNCiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wOw0KDQogICAgLXdlYmtp
dC1wZXJzcGVjdGl2ZTogNDAwcHg7DQogICAgICAgLW1vei1wZXJzcGVjdGl2ZTogNDAwcHg7DQog
ICAgICAgIC1tcy1wZXJzcGVjdGl2ZTogNDAwcHg7DQogICAgICAgICAgICBwZXJzcGVjdGl2ZTog
NDAwcHg7DQoNCiAgICAtd2Via2l0LXBlcnNwZWN0aXZlLW9yaWdpbjogNTAlIDUwJTsNCiAgICAg
ICAtbW96LXBlcnNwZWN0aXZlLW9yaWdpbjogNTAlIDUwJTsNCiAgICAgICAgLW1zLXBlcnNwZWN0
aXZlLW9yaWdpbjogNTAlIDUwJTsNCiAgICAgICAgICAgIHBlcnNwZWN0aXZlLW9yaWdpbjogNTAl
IDUwJTsNCn0NCgkjcmV2ZWFsIC5yb2xsOmhvdmVyIHsNCgkJYmFja2dyb3VuZDogbm9uZTsNCgkJ
dGV4dC1zaGFkb3c6IG5vbmU7DQoJfQ0KI3JldmVhbCAucm9sbCBzcGFuIHsNCiAgICBkaXNwbGF5
OiBibG9jazsNCiAgICBwb3NpdGlvbjogcmVsYXRpdmU7DQogICAgcGFkZGluZzogMCAycHg7DQoN
Cglwb2ludGVyLWV2ZW50czogbm9uZTsNCg0KICAgIC13ZWJraXQtdHJhbnNpdGlvbjogYWxsIDQw
MG1zIGVhc2U7DQogICAgICAgLW1vei10cmFuc2l0aW9uOiBhbGwgNDAwbXMgZWFzZTsNCiAgICAg
ICAgLW1zLXRyYW5zaXRpb246IGFsbCA0MDBtcyBlYXNlOw0KICAgICAgICAgICAgdHJhbnNpdGlv
bjogYWxsIDQwMG1zIGVhc2U7DQogICAgDQogICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiA1
MCUgMCU7DQogICAgICAgLW1vei10cmFuc2Zvcm0tb3JpZ2luOiA1MCUgMCU7DQogICAgICAgIC1t
cy10cmFuc2Zvcm0tb3JpZ2luOiA1MCUgMCU7DQogICAgICAgICAgICB0cmFuc2Zvcm0tb3JpZ2lu
OiA1MCUgMCU7DQogICAgDQogICAgLXdlYmtpdC10cmFuc2Zvcm0tc3R5bGU6IHByZXNlcnZlLTNk
Ow0KICAgICAgIC1tb3otdHJhbnNmb3JtLXN0eWxlOiBwcmVzZXJ2ZS0zZDsNCiAgICAgICAgLW1z
LXRyYW5zZm9ybS1zdHlsZTogcHJlc2VydmUtM2Q7DQogICAgICAgICAgICB0cmFuc2Zvcm0tc3R5
bGU6IHByZXNlcnZlLTNkOw0KfQ0KICAgICNyZXZlYWwgLnJvbGw6aG92ZXIgc3BhbiB7DQogICAg
ICAgIGJhY2tncm91bmQ6IHJnYmEoMCwwLDAsMC41KTsNCg0KICAgICAgICAtd2Via2l0LXRyYW5z
Zm9ybTogdHJhbnNsYXRlM2QoIDBweCwgMHB4LCAtNDVweCApIHJvdGF0ZVgoIDkwZGVnICk7DQog
ICAgICAgICAgIC1tb3otdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCggMHB4LCAwcHgsIC00NXB4ICkg
cm90YXRlWCggOTBkZWcgKTsNCiAgICAgICAgICAgIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZTNk
KCAwcHgsIDBweCwgLTQ1cHggKSByb3RhdGVYKCA5MGRlZyApOw0KICAgICAgICAgICAgICAgIHRy
YW5zZm9ybTogdHJhbnNsYXRlM2QoIDBweCwgMHB4LCAtNDVweCApIHJvdGF0ZVgoIDkwZGVnICk7
DQogICAgfQ0KI3JldmVhbCAucm9sbCBzcGFuOmFmdGVyIHsNCiAgICBjb250ZW50OiBhdHRyKGRh
dGEtdGl0bGUpOw0KDQogICAgZGlzcGxheTogYmxvY2s7DQogICAgcG9zaXRpb246IGFic29sdXRl
Ow0KICAgIGxlZnQ6IDA7DQogICAgdG9wOiAwOw0KICAgIHBhZGRpbmc6IDAgMnB4Ow0KDQogICAg
Y29sb3I6ICNmZmY7DQogICAgYmFja2dyb3VuZDogaHNsKDE4NSwgNjAlLCAzNSUpOw0KDQogICAg
LXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiA1MCUgMCU7DQogICAgICAgLW1vei10cmFuc2Zvcm0t
b3JpZ2luOiA1MCUgMCU7DQogICAgICAgIC1tcy10cmFuc2Zvcm0tb3JpZ2luOiA1MCUgMCU7DQog
ICAgICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiA1MCUgMCU7DQoNCiAgICAtd2Via2l0LXRyYW5z
Zm9ybTogdHJhbnNsYXRlM2QoIDBweCwgMTA1JSwgMHB4ICkgcm90YXRlWCggLTkwZGVnICk7DQog
ICAgICAgLW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKCAwcHgsIDEwNSUsIDBweCApIHJvdGF0
ZVgoIC05MGRlZyApOw0KICAgICAgICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCggMHB4LCAx
MDUlLCAwcHggKSByb3RhdGVYKCAtOTBkZWcgKTsNCiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJh
bnNsYXRlM2QoIDBweCwgMTA1JSwgMHB4ICkgcm90YXRlWCggLTkwZGVnICk7DQp9DQoNCg0KLyoq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KICogU0xJREVTDQog
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLw0KDQojcmV2ZWFs
IC5zbGlkZXMgew0KCXBvc2l0aW9uOiBhYnNvbHV0ZTsNCgl3aWR0aDogOTAwcHg7DQoJaGVpZ2h0
OiA2MDBweDsNCgkNCglsZWZ0OiA1MCU7DQoJdG9wOiA1MCU7DQoJbWFyZ2luLWxlZnQ6IC00NTBw
eDsNCgltYXJnaW4tdG9wOiAtMzIwcHg7DQoJcGFkZGluZzogMjBweCAwcHg7DQoJDQoJdGV4dC1h
bGlnbjogY2VudGVyOw0KDQoJLXdlYmtpdC10cmFuc2l0aW9uOiAtd2Via2l0LXBlcnNwZWN0aXZl
IC40cyBlYXNlOw0KCSAgIC1tb3otdHJhbnNpdGlvbjogLW1vei1wZXJzcGVjdGl2ZSAuNHMgZWFz
ZTsNCgkgICAgLW1zLXRyYW5zaXRpb246IC1tcy1wZXJzcGVjdGl2ZSAuNHMgZWFzZTsNCgkgICAg
IC1vLXRyYW5zaXRpb246IC1vLXBlcnNwZWN0aXZlIC40cyBlYXNlOw0KCSAgICAgICAgdHJhbnNp
dGlvbjogcGVyc3BlY3RpdmUgLjRzIGVhc2U7DQoJDQoJLXdlYmtpdC1wZXJzcGVjdGl2ZTogNjAw
cHg7DQoJICAgLW1vei1wZXJzcGVjdGl2ZTogNjAwcHg7DQoJICAgIC1tcy1wZXJzcGVjdGl2ZTog
NjAwcHg7DQoJICAgICAgICBwZXJzcGVjdGl2ZTogNjAwcHg7DQoNCiAJLXdlYmtpdC1wZXJzcGVj
dGl2ZS1vcmlnaW46IDUwJSAyNSU7DQogCSAgIC1tb3otcGVyc3BlY3RpdmUtb3JpZ2luOiA1MCUg
MjUlOw0KIAkgICAgLW1zLXBlcnNwZWN0aXZlLW9yaWdpbjogNTAlIDI1JTsNCiAJICAgICAgICBw
ZXJzcGVjdGl2ZS1vcmlnaW46IDUwJSAyNSU7DQp9DQoNCiNyZXZlYWwgLnNsaWRlcz5zZWN0aW9u
LA0KI3JldmVhbCAuc2xpZGVzPnNlY3Rpb24+c2VjdGlvbiB7DQoJZGlzcGxheTogbm9uZTsNCglw
b3NpdGlvbjogYWJzb2x1dGU7DQoJd2lkdGg6IDEwMCU7DQoJbWluLWhlaWdodDogNjAwcHg7DQoN
CiAgICB6LWluZGV4OiAxMDsNCgkNCgktd2Via2l0LXRyYW5zZm9ybS1zdHlsZTogcHJlc2VydmUt
M2Q7DQoJICAgLW1vei10cmFuc2Zvcm0tc3R5bGU6IHByZXNlcnZlLTNkOw0KCSAgICAtbXMtdHJh
bnNmb3JtLXN0eWxlOiBwcmVzZXJ2ZS0zZDsNCgkgICAgICAgIHRyYW5zZm9ybS1zdHlsZTogcHJl
c2VydmUtM2Q7DQoJDQoJLXdlYmtpdC10cmFuc2l0aW9uOiBhbGwgODAwbXMgY3ViaWMtYmV6aWVy
KDAuMjYwLCAwLjg2MCwgMC40NDAsIDAuOTg1KTsNCgkgICAtbW96LXRyYW5zaXRpb246IGFsbCA4
MDBtcyBjdWJpYy1iZXppZXIoMC4yNjAsIDAuODYwLCAwLjQ0MCwgMC45ODUpOw0KCSAgICAtbXMt
dHJhbnNpdGlvbjogYWxsIDgwMG1zIGN1YmljLWJlemllcigwLjI2MCwgMC44NjAsIDAuNDQwLCAw
Ljk4NSk7DQoJICAgICAtby10cmFuc2l0aW9uOiBhbGwgODAwbXMgY3ViaWMtYmV6aWVyKDAuMjYw
LCAwLjg2MCwgMC40NDAsIDAuOTg1KTsNCgkgICAgICAgIHRyYW5zaXRpb246IGFsbCA4MDBtcyBj
dWJpYy1iZXppZXIoMC4yNjAsIDAuODYwLCAwLjQ0MCwgMC45ODUpOw0KfQ0KDQojcmV2ZWFsIC5z
bGlkZXM+c2VjdGlvbi5wcmVzZW50IHsNCglkaXNwbGF5OiBibG9jazsNCgl6LWluZGV4OiAxMTsN
CglvcGFjaXR5OiAxOw0KfQ0KDQoNCi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioNCiAqIERFRkFVTFQgVFJBTlNJVElPTg0KICoqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKi8NCg0KI3JldmVhbCAuc2xpZGVzPnNlY3Rpb24ucGFz
dCB7DQoJZGlzcGxheTogYmxvY2s7DQoJb3BhY2l0eTogMDsNCgkNCgktd2Via2l0LXRyYW5zZm9y
bTogdHJhbnNsYXRlM2QoLTEwMCUsIDAsIDApIHJvdGF0ZVkoLTkwZGVnKSB0cmFuc2xhdGUzZCgt
MTAwJSwgMCwgMCk7DQoJICAgLW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0xMDAlLCAwLCAw
KSByb3RhdGVZKC05MGRlZykgdHJhbnNsYXRlM2QoLTEwMCUsIDAsIDApOw0KCSAgICAtbXMtdHJh
bnNmb3JtOiB0cmFuc2xhdGUzZCgtMTAwJSwgMCwgMCkgcm90YXRlWSgtOTBkZWcpIHRyYW5zbGF0
ZTNkKC0xMDAlLCAwLCAwKTsNCgkgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTEwMCUs
IDAsIDApIHJvdGF0ZVkoLTkwZGVnKSB0cmFuc2xhdGUzZCgtMTAwJSwgMCwgMCk7DQp9DQojcmV2
ZWFsIC5zbGlkZXM+c2VjdGlvbi5mdXR1cmUgew0KCWRpc3BsYXk6IGJsb2NrOw0KCW9wYWNpdHk6
IDA7DQoJDQoJLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEwMCUsIDAsIDApIHJvdGF0
ZVkoOTBkZWcpIHRyYW5zbGF0ZTNkKDEwMCUsIDAsIDApOw0KCSAgIC1tb3otdHJhbnNmb3JtOiB0
cmFuc2xhdGUzZCgxMDAlLCAwLCAwKSByb3RhdGVZKDkwZGVnKSB0cmFuc2xhdGUzZCgxMDAlLCAw
LCAwKTsNCgkgICAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMTAwJSwgMCwgMCkgcm90YXRl
WSg5MGRlZykgdHJhbnNsYXRlM2QoMTAwJSwgMCwgMCk7DQoJICAgICAgICB0cmFuc2Zvcm06IHRy
YW5zbGF0ZTNkKDEwMCUsIDAsIDApIHJvdGF0ZVkoOTBkZWcpIHRyYW5zbGF0ZTNkKDEwMCUsIDAs
IDApOw0KfQ0KDQojcmV2ZWFsIC5zbGlkZXM+c2VjdGlvbj5zZWN0aW9uLnBhc3Qgew0KCWRpc3Bs
YXk6IGJsb2NrOw0KCW9wYWNpdHk6IDA7DQoJDQoJLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0
ZTNkKDAsIC01MCUsIDApIHJvdGF0ZVgoNzBkZWcpIHRyYW5zbGF0ZTNkKDAsIC01MCUsIDApOw0K
CSAgIC1tb3otdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtNTAlLCAwKSByb3RhdGVYKDcwZGVn
KSB0cmFuc2xhdGUzZCgwLCAtNTAlLCAwKTsNCgkgICAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRl
M2QoMCwgLTUwJSwgMCkgcm90YXRlWCg3MGRlZykgdHJhbnNsYXRlM2QoMCwgLTUwJSwgMCk7DQoJ
ICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC01MCUsIDApIHJvdGF0ZVgoNzBkZWcp
IHRyYW5zbGF0ZTNkKDAsIC01MCUsIDApOw0KfQ0KI3JldmVhbCAuc2xpZGVzPnNlY3Rpb24+c2Vj
dGlvbi5mdXR1cmUgew0KCWRpc3BsYXk6IGJsb2NrOw0KCW9wYWNpdHk6IDA7DQoJDQoJLXdlYmtp
dC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDUwJSwgMCkgcm90YXRlWCgtNzBkZWcpIHRyYW5z
bGF0ZTNkKDAsIDUwJSwgMCk7DQoJICAgLW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDUw
JSwgMCkgcm90YXRlWCgtNzBkZWcpIHRyYW5zbGF0ZTNkKDAsIDUwJSwgMCk7DQoJICAgIC1tcy10
cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDUwJSwgMCkgcm90YXRlWCgtNzBkZWcpIHRyYW5zbGF0
ZTNkKDAsIDUwJSwgMCk7DQoJICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDUwJSwg
MCkgcm90YXRlWCgtNzBkZWcpIHRyYW5zbGF0ZTNkKDAsIDUwJSwgMCk7DQp9DQoNCg0KLyoqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KICogQ09OQ0FWRSBUUkFO
U0lUSU9ODQogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLw0K
DQojcmV2ZWFsLmNvbmNhdmUgIC5zbGlkZXM+c2VjdGlvbi5wYXN0IHsNCgktd2Via2l0LXRyYW5z
Zm9ybTogdHJhbnNsYXRlM2QoLTEwMCUsIDAsIDApIHJvdGF0ZVkoOTBkZWcpIHRyYW5zbGF0ZTNk
KC0xMDAlLCAwLCAwKTsNCgkgICAtbW96LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTEwMCUsIDAs
IDApIHJvdGF0ZVkoOTBkZWcpIHRyYW5zbGF0ZTNkKC0xMDAlLCAwLCAwKTsNCgkgICAgLW1zLXRy
YW5zZm9ybTogdHJhbnNsYXRlM2QoLTEwMCUsIDAsIDApIHJvdGF0ZVkoOTBkZWcpIHRyYW5zbGF0
ZTNkKC0xMDAlLCAwLCAwKTsNCgkgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTEwMCUs
IDAsIDApIHJvdGF0ZVkoOTBkZWcpIHRyYW5zbGF0ZTNkKC0xMDAlLCAwLCAwKTsNCn0NCiNyZXZl
YWwuY29uY2F2ZSAgLnNsaWRlcz5zZWN0aW9uLmZ1dHVyZSB7DQoJLXdlYmtpdC10cmFuc2Zvcm06
IHRyYW5zbGF0ZTNkKDEwMCUsIDAsIDApIHJvdGF0ZVkoLTkwZGVnKSB0cmFuc2xhdGUzZCgxMDAl
LCAwLCAwKTsNCgkgICAtbW96LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMTAwJSwgMCwgMCkgcm90
YXRlWSgtOTBkZWcpIHRyYW5zbGF0ZTNkKDEwMCUsIDAsIDApOw0KCSAgICAtbXMtdHJhbnNmb3Jt
OiB0cmFuc2xhdGUzZCgxMDAlLCAwLCAwKSByb3RhdGVZKC05MGRlZykgdHJhbnNsYXRlM2QoMTAw
JSwgMCwgMCk7DQoJICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEwMCUsIDAsIDApIHJv
dGF0ZVkoLTkwZGVnKSB0cmFuc2xhdGUzZCgxMDAlLCAwLCAwKTsNCn0NCg0KI3JldmVhbC5jb25j
YXZlICAuc2xpZGVzPnNlY3Rpb24+c2VjdGlvbi5wYXN0IHsNCgktd2Via2l0LXRyYW5zZm9ybTog
dHJhbnNsYXRlM2QoMCwgLTgwJSwgMCkgcm90YXRlWCgtNzBkZWcpIHRyYW5zbGF0ZTNkKDAsIC04
MCUsIDApOw0KCSAgIC1tb3otdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtODAlLCAwKSByb3Rh
dGVYKC03MGRlZykgdHJhbnNsYXRlM2QoMCwgLTgwJSwgMCk7DQoJICAgIC1tcy10cmFuc2Zvcm06
IHRyYW5zbGF0ZTNkKDAsIC04MCUsIDApIHJvdGF0ZVgoLTcwZGVnKSB0cmFuc2xhdGUzZCgwLCAt
ODAlLCAwKTsNCgkgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTgwJSwgMCkgcm90
YXRlWCgtNzBkZWcpIHRyYW5zbGF0ZTNkKDAsIC04MCUsIDApOw0KfQ0KI3JldmVhbC5jb25jYXZl
ICAuc2xpZGVzPnNlY3Rpb24+c2VjdGlvbi5mdXR1cmUgew0KCS13ZWJraXQtdHJhbnNmb3JtOiB0
cmFuc2xhdGUzZCgwLCA4MCUsIDApIHJvdGF0ZVgoNzBkZWcpIHRyYW5zbGF0ZTNkKDAsIDgwJSwg
MCk7DQoJICAgLW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDgwJSwgMCkgcm90YXRlWCg3
MGRlZykgdHJhbnNsYXRlM2QoMCwgODAlLCAwKTsNCgkgICAgLW1zLXRyYW5zZm9ybTogdHJhbnNs
YXRlM2QoMCwgODAlLCAwKSByb3RhdGVYKDcwZGVnKSB0cmFuc2xhdGUzZCgwLCA4MCUsIDApOw0K
CSAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCA4MCUsIDApIHJvdGF0ZVgoNzBkZWcp
IHRyYW5zbGF0ZTNkKDAsIDgwJSwgMCk7DQp9DQoNCg0KLyoqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKg0KICogTElORUFSIFRSQU5TSVRJT04NCiAqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovDQoNCiNyZXZlYWwubGluZWFyIC5z
bGlkZXM+c2VjdGlvbi5wYXN0IHsNCgktd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKC0xNTAl
LCAwKTsNCgkgICAtbW96LXRyYW5zZm9ybTogdHJhbnNsYXRlKC0xNTAlLCAwKTsNCgkgICAgLW1z
LXRyYW5zZm9ybTogdHJhbnNsYXRlKC0xNTAlLCAwKTsNCgkgICAgIC1vLXRyYW5zZm9ybTogdHJh
bnNsYXRlKC0xNTAlLCAwKTsNCgkgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC0xNTAlLCAw
KTsNCn0NCiNyZXZlYWwubGluZWFyIC5zbGlkZXM+c2VjdGlvbi5mdXR1cmUgew0KCS13ZWJraXQt
dHJhbnNmb3JtOiB0cmFuc2xhdGUoMTUwJSwgMCk7DQoJICAgLW1vei10cmFuc2Zvcm06IHRyYW5z
bGF0ZSgxNTAlLCAwKTsNCgkgICAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlKDE1MCUsIDApOw0K
CSAgICAgLW8tdHJhbnNmb3JtOiB0cmFuc2xhdGUoMTUwJSwgMCk7DQoJICAgICAgICB0cmFuc2Zv
cm06IHRyYW5zbGF0ZSgxNTAlLCAwKTsNCn0NCg0KI3JldmVhbC5saW5lYXIgLnNsaWRlcz5zZWN0
aW9uPnNlY3Rpb24ucGFzdCB7DQoJLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAtMTUw
JSk7DQoJICAgLW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAtMTUwJSk7DQoJICAgIC1tcy10
cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAtMTUwJSk7DQoJICAgICAtby10cmFuc2Zvcm06IHRyYW5z
bGF0ZSgwLCAtMTUwJSk7DQoJICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAtMTUwJSk7
DQp9DQojcmV2ZWFsLmxpbmVhciAuc2xpZGVzPnNlY3Rpb24+c2VjdGlvbi5mdXR1cmUgew0KCS13
ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMTUwJSk7DQoJICAgLW1vei10cmFuc2Zvcm06
IHRyYW5zbGF0ZSgwLCAxNTAlKTsNCgkgICAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDE1
MCUpOw0KCSAgICAgLW8tdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMTUwJSk7DQoJICAgICAgICB0
cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAxNTAlKTsNCn0NCg0KLyoqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKg0KICogQk9YIFRSQU5TSVRJT04NCiAqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovDQoNCiNyZXZlYWwuY3ViZSAuc2xp
ZGVzIHsNCgltYXJnaW4tdG9wOiAtMzUwcHg7DQoNCgktd2Via2l0LXBlcnNwZWN0aXZlLW9yaWdp
bjogNTAlIDI1JTsNCiAJICAgLW1vei1wZXJzcGVjdGl2ZS1vcmlnaW46IDUwJSAyNSU7DQogCSAg
ICAtbXMtcGVyc3BlY3RpdmUtb3JpZ2luOiA1MCUgMjUlOw0KIAkgICAgICAgIHBlcnNwZWN0aXZl
LW9yaWdpbjogNTAlIDI1JTsNCg0KCS13ZWJraXQtcGVyc3BlY3RpdmU6IDEzMDBweDsNCgkgICAt
bW96LXBlcnNwZWN0aXZlOiAxMzAwcHg7DQoJICAgIC1tcy1wZXJzcGVjdGl2ZTogMTMwMHB4Ow0K
CSAgICAgICAgcGVyc3BlY3RpdmU6IDEzMDBweDsNCn0NCg0KI3JldmVhbC5jdWJlIC5zbGlkZXMg
c2VjdGlvbiB7DQoJcGFkZGluZzogMzBweDsNCg0KCS13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0
eTogaGlkZGVuOw0KCSAgIC1tb3otYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuOw0KCSAgICAt
bXMtYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuOw0KCSAgICAgICAgYmFja2ZhY2UtdmlzaWJp
bGl0eTogaGlkZGVuOw0KCQ0KCS13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDsNCgkgICAt
bW96LWJveC1zaXppbmc6IGJvcmRlci1ib3g7DQoJICAgICAgICBib3gtc2l6aW5nOiBib3JkZXIt
Ym94Ow0KfQ0KCSNyZXZlYWwuY3ViZSAuc2xpZGVzIHNlY3Rpb246bm90KC5zdGFjayk6YmVmb3Jl
IHsNCgkJY29udGVudDogJyc7DQoJCXBvc2l0aW9uOiBhYnNvbHV0ZTsNCgkJZGlzcGxheTogYmxv
Y2s7DQoJCXdpZHRoOiAxMDAlOw0KCQloZWlnaHQ6IDEwMCU7DQoJCWxlZnQ6IDA7DQoJCXRvcDog
MDsNCgkJYmFja2dyb3VuZDogIzIzMjYyODsNCgkJYm9yZGVyLXJhZGl1czogNHB4Ow0KDQoJCS13
ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVaKCAtMjBweCApOw0KCQkgICAtbW96LXRyYW5zZm9y
bTogdHJhbnNsYXRlWiggLTIwcHggKTsNCgkJICAgIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZVoo
IC0yMHB4ICk7DQoJCSAgICAgLW8tdHJhbnNmb3JtOiB0cmFuc2xhdGVaKCAtMjBweCApOw0KCQkg
ICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWiggLTIwcHggKTsNCgl9DQoJI3JldmVhbC5jdWJl
IC5zbGlkZXMgc2VjdGlvbjpub3QoLnN0YWNrKTphZnRlciB7DQoJCWNvbnRlbnQ6ICcnOw0KCQlw
b3NpdGlvbjogYWJzb2x1dGU7DQoJCWRpc3BsYXk6IGJsb2NrOw0KCQl3aWR0aDogOTAlOw0KCQlo
ZWlnaHQ6IDMwcHg7DQoJCWxlZnQ6IDUlOw0KCQlib3R0b206IDA7DQoJCWJhY2tncm91bmQ6IG5v
bmU7DQoJCXotaW5kZXg6IDE7DQoNCgkJYm9yZGVyLXJhZGl1czogNHB4Ow0KCQlib3gtc2hhZG93
OiAwcHggOTVweCAyNXB4IHJnYmEoMCwwLDAsMC4yKTsNCg0KCQktd2Via2l0LXRyYW5zZm9ybTog
dHJhbnNsYXRlWigtOTBweCkgcm90YXRlWCggNjVkZWcgKTsNCgkJICAgLW1vei10cmFuc2Zvcm06
IHRyYW5zbGF0ZVooLTkwcHgpIHJvdGF0ZVgoIDY1ZGVnICk7DQoJCSAgICAtbXMtdHJhbnNmb3Jt
OiB0cmFuc2xhdGVaKC05MHB4KSByb3RhdGVYKCA2NWRlZyApOw0KCQkgICAgIC1vLXRyYW5zZm9y
bTogdHJhbnNsYXRlWigtOTBweCkgcm90YXRlWCggNjVkZWcgKTsNCgkJICAgICAgICB0cmFuc2Zv
cm06IHRyYW5zbGF0ZVooLTkwcHgpIHJvdGF0ZVgoIDY1ZGVnICk7DQoJfQ0KDQojcmV2ZWFsLmN1
YmUgLnNsaWRlcz5zZWN0aW9uLnN0YWNrIHsNCglwYWRkaW5nOiAwOw0KCWJhY2tncm91bmQ6IG5v
bmU7DQp9DQoNCiNyZXZlYWwuY3ViZSAuc2xpZGVzPnNlY3Rpb24ucGFzdCB7DQoJLXdlYmtpdC10
cmFuc2Zvcm0tb3JpZ2luOiAxMDAlIDAlOw0KCSAgIC1tb3otdHJhbnNmb3JtLW9yaWdpbjogMTAw
JSAwJTsNCgkgICAgLW1zLXRyYW5zZm9ybS1vcmlnaW46IDEwMCUgMCU7DQoJICAgICAgICB0cmFu
c2Zvcm0tb3JpZ2luOiAxMDAlIDAlOw0KDQoJLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNk
KC0xMDAlLCAwLCAwKSByb3RhdGVZKC05MGRlZyk7DQoJICAgLW1vei10cmFuc2Zvcm06IHRyYW5z
bGF0ZTNkKC0xMDAlLCAwLCAwKSByb3RhdGVZKC05MGRlZyk7DQoJICAgIC1tcy10cmFuc2Zvcm06
IHRyYW5zbGF0ZTNkKC0xMDAlLCAwLCAwKSByb3RhdGVZKC05MGRlZyk7DQoJICAgICAgICB0cmFu
c2Zvcm06IHRyYW5zbGF0ZTNkKC0xMDAlLCAwLCAwKSByb3RhdGVZKC05MGRlZyk7DQp9DQoNCiNy
ZXZlYWwuY3ViZSAuc2xpZGVzPnNlY3Rpb24uZnV0dXJlIHsNCgktd2Via2l0LXRyYW5zZm9ybS1v
cmlnaW46IDAlIDAlOw0KCSAgIC1tb3otdHJhbnNmb3JtLW9yaWdpbjogMCUgMCU7DQoJICAgIC1t
cy10cmFuc2Zvcm0tb3JpZ2luOiAwJSAwJTsNCgkgICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IDAl
IDAlOw0KDQoJLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEwMCUsIDAsIDApIHJvdGF0
ZVkoOTBkZWcpOw0KCSAgIC1tb3otdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgxMDAlLCAwLCAwKSBy
b3RhdGVZKDkwZGVnKTsNCgkgICAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMTAwJSwgMCwg
MCkgcm90YXRlWSg5MGRlZyk7DQoJICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEwMCUs
IDAsIDApIHJvdGF0ZVkoOTBkZWcpOw0KfQ0KDQojcmV2ZWFsLmN1YmUgLnNsaWRlcz5zZWN0aW9u
PnNlY3Rpb24ucGFzdCB7DQoJLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiAwJSAxMDAlOw0KCSAg
IC1tb3otdHJhbnNmb3JtLW9yaWdpbjogMCUgMTAwJTsNCgkgICAgLW1zLXRyYW5zZm9ybS1vcmln
aW46IDAlIDEwMCU7DQoJICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiAwJSAxMDAlOw0KDQoJLXdl
YmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0xMDAlLCAwKSByb3RhdGVYKDkwZGVnKTsN
CgkgICAtbW96LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTEwMCUsIDApIHJvdGF0ZVgoOTBk
ZWcpOw0KCSAgICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMTAwJSwgMCkgcm90YXRl
WCg5MGRlZyk7DQoJICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0xMDAlLCAwKSBy
b3RhdGVYKDkwZGVnKTsNCn0NCg0KI3JldmVhbC5jdWJlIC5zbGlkZXM+c2VjdGlvbj5zZWN0aW9u
LmZ1dHVyZSB7DQoJLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiAwJSAwJTsNCgkgICAtbW96LXRy
YW5zZm9ybS1vcmlnaW46IDAlIDAlOw0KCSAgICAtbXMtdHJhbnNmb3JtLW9yaWdpbjogMCUgMCU7
DQoJICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiAwJSAwJTsNCg0KCS13ZWJraXQtdHJhbnNmb3Jt
OiB0cmFuc2xhdGUzZCgwLCAxMDAlLCAwKSByb3RhdGVYKC05MGRlZyk7DQoJICAgLW1vei10cmFu
c2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDEwMCUsIDApIHJvdGF0ZVgoLTkwZGVnKTsNCgkgICAgLW1z
LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMTAwJSwgMCkgcm90YXRlWCgtOTBkZWcpOw0KCSAg
ICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAxMDAlLCAwKSByb3RhdGVYKC05MGRlZyk7
DQp9DQoNCg0KLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0K
ICogUEFHRSBUUkFOU0lUSU9ODQogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqLw0KDQojcmV2ZWFsLnBhZ2UgLnNsaWRlcyB7DQoJbWFyZ2luLXRvcDogLTM1MHB4
Ow0KDQoJLXdlYmtpdC1wZXJzcGVjdGl2ZS1vcmlnaW46IDUwJSA1MCU7DQogCSAgIC1tb3otcGVy
c3BlY3RpdmUtb3JpZ2luOiA1MCUgNTAlOw0KIAkgICAgLW1zLXBlcnNwZWN0aXZlLW9yaWdpbjog
NTAlIDUwJTsNCiAJICAgICAgICBwZXJzcGVjdGl2ZS1vcmlnaW46IDUwJSA1MCU7DQoNCgktd2Vi
a2l0LXBlcnNwZWN0aXZlOiAzMDAwcHg7DQoJICAgLW1vei1wZXJzcGVjdGl2ZTogMzAwMHB4Ow0K
CSAgICAtbXMtcGVyc3BlY3RpdmU6IDMwMDBweDsNCgkgICAgICAgIHBlcnNwZWN0aXZlOiAzMDAw
cHg7DQp9DQoNCiNyZXZlYWwucGFnZSAuc2xpZGVzIHNlY3Rpb24gew0KCXBhZGRpbmc6IDMwcHg7
DQoNCgktd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7DQoJICAgLW1vei1ib3gtc2l6aW5n
OiBib3JkZXItYm94Ow0KCSAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsNCn0NCgkjcmV2
ZWFsLnBhZ2UgLnNsaWRlcyBzZWN0aW9uLnBhc3Qgew0KCQl6LWluZGV4OiAxMjsNCgl9DQoJI3Jl
dmVhbC5wYWdlIC5zbGlkZXMgc2VjdGlvbjpub3QoLnN0YWNrKTpiZWZvcmUgew0KCQljb250ZW50
OiAnJzsNCgkJcG9zaXRpb246IGFic29sdXRlOw0KCQlkaXNwbGF5OiBibG9jazsNCgkJd2lkdGg6
IDEwMCU7DQoJCWhlaWdodDogMTAwJTsNCgkJbGVmdDogMDsNCgkJdG9wOiAwOw0KCQliYWNrZ3Jv
dW5kOiAjMjMyNjI4Ow0KDQoJCS13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVaKCAtMjBweCAp
Ow0KCQkgICAtbW96LXRyYW5zZm9ybTogdHJhbnNsYXRlWiggLTIwcHggKTsNCgkJICAgIC1tcy10
cmFuc2Zvcm06IHRyYW5zbGF0ZVooIC0yMHB4ICk7DQoJCSAgICAgLW8tdHJhbnNmb3JtOiB0cmFu
c2xhdGVaKCAtMjBweCApOw0KCQkgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWiggLTIwcHgg
KTsNCgl9DQoJI3JldmVhbC5wYWdlIC5zbGlkZXMgc2VjdGlvbjpub3QoLnN0YWNrKTphZnRlciB7
DQoJCWNvbnRlbnQ6ICcnOw0KCQlwb3NpdGlvbjogYWJzb2x1dGU7DQoJCWRpc3BsYXk6IGJsb2Nr
Ow0KCQl3aWR0aDogOTAlOw0KCQloZWlnaHQ6IDMwcHg7DQoJCWxlZnQ6IDUlOw0KCQlib3R0b206
IDA7DQoJCWJhY2tncm91bmQ6IG5vbmU7DQoJCXotaW5kZXg6IDE7DQoNCgkJYm9yZGVyLXJhZGl1
czogNHB4Ow0KCQlib3gtc2hhZG93OiAwcHggOTVweCAyNXB4IHJnYmEoMCwwLDAsMC4yKTsNCg0K
CQktd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWigtOTBweCkgcm90YXRlWCggNjVkZWcgKTsN
Cgl9DQoNCiNyZXZlYWwucGFnZSAuc2xpZGVzPnNlY3Rpb24uc3RhY2sgew0KCXBhZGRpbmc6IDA7
DQoJYmFja2dyb3VuZDogbm9uZTsNCn0NCg0KI3JldmVhbC5wYWdlIC5zbGlkZXM+c2VjdGlvbi5w
YXN0IHsNCgktd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IDAlIDAlOw0KCSAgIC1tb3otdHJhbnNm
b3JtLW9yaWdpbjogMCUgMCU7DQoJICAgIC1tcy10cmFuc2Zvcm0tb3JpZ2luOiAwJSAwJTsNCgkg
ICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IDAlIDAlOw0KDQoJLXdlYmtpdC10cmFuc2Zvcm06IHRy
YW5zbGF0ZTNkKC00MCUsIDAsIDApIHJvdGF0ZVkoLTgwZGVnKTsNCgkgICAtbW96LXRyYW5zZm9y
bTogdHJhbnNsYXRlM2QoLTQwJSwgMCwgMCkgcm90YXRlWSgtODBkZWcpOw0KCSAgICAtbXMtdHJh
bnNmb3JtOiB0cmFuc2xhdGUzZCgtNDAlLCAwLCAwKSByb3RhdGVZKC04MGRlZyk7DQoJICAgICAg
ICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC00MCUsIDAsIDApIHJvdGF0ZVkoLTgwZGVnKTsNCn0N
Cg0KI3JldmVhbC5wYWdlIC5zbGlkZXM+c2VjdGlvbi5mdXR1cmUgew0KCS13ZWJraXQtdHJhbnNm
b3JtLW9yaWdpbjogMTAwJSAwJTsNCgkgICAtbW96LXRyYW5zZm9ybS1vcmlnaW46IDEwMCUgMCU7
DQoJICAgIC1tcy10cmFuc2Zvcm0tb3JpZ2luOiAxMDAlIDAlOw0KCSAgICAgICAgdHJhbnNmb3Jt
LW9yaWdpbjogMTAwJSAwJTsNCg0KCS13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAw
LCAwKTsNCgkgICAtbW96LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7DQoJICAgIC1t
cy10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApOw0KCSAgICAgICAgdHJhbnNmb3JtOiB0
cmFuc2xhdGUzZCgwLCAwLCAwKTsNCn0NCg0KI3JldmVhbC5wYWdlIC5zbGlkZXM+c2VjdGlvbj5z
ZWN0aW9uLnBhc3Qgew0KCS13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogMCUgMCU7DQoJICAgLW1v
ei10cmFuc2Zvcm0tb3JpZ2luOiAwJSAwJTsNCgkgICAgLW1zLXRyYW5zZm9ybS1vcmlnaW46IDAl
IDAlOw0KCSAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogMCUgMCU7DQoNCgktd2Via2l0LXRyYW5z
Zm9ybTogdHJhbnNsYXRlM2QoMCwgLTQwJSwgMCkgcm90YXRlWCg4MGRlZyk7DQoJICAgLW1vei10
cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC00MCUsIDApIHJvdGF0ZVgoODBkZWcpOw0KCSAgICAt
bXMtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtNDAlLCAwKSByb3RhdGVYKDgwZGVnKTsNCgkg
ICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTQwJSwgMCkgcm90YXRlWCg4MGRlZyk7
DQp9DQoNCiNyZXZlYWwucGFnZSAuc2xpZGVzPnNlY3Rpb24+c2VjdGlvbi5mdXR1cmUgew0KCS13
ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogMCUgMTAwJTsNCgkgICAtbW96LXRyYW5zZm9ybS1vcmln
aW46IDAlIDEwMCU7DQoJICAgIC1tcy10cmFuc2Zvcm0tb3JpZ2luOiAwJSAxMDAlOw0KCSAgICAg
ICAgdHJhbnNmb3JtLW9yaWdpbjogMCUgMTAwJTsNCg0KCS13ZWJraXQtdHJhbnNmb3JtOiB0cmFu
c2xhdGUzZCgwLCAwLCAwKTsNCgkgICAtbW96LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwg
MCk7DQoJICAgIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApOw0KCSAgICAgICAg
dHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTsNCn0NCg0KDQovKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQogKiBORU9OIFRIRU1FDQogKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLw0KDQojcmV2ZWFsLm5lb24gYSwN
CiNyZXZlYWwubmVvbiBhOmhvdmVyLA0KI3JldmVhbC5uZW9uIC5jb250cm9scyBhLmVuYWJsZWQg
ew0KCWNvbG9yOiAjNWRlMDQ4Ow0KfQ0KDQojcmV2ZWFsLm5lb24gLnByb2dyZXNzIHNwYW4sDQoj
cmV2ZWFsLm5lb24gLnJvbGwgc3BhbjphZnRlciB7DQoJYmFja2dyb3VuZDogIzVkZTA0ODsNCn0N
Cg0KI3JldmVhbC5uZW9uIGEuaW1hZ2U6aG92ZXIgaW1nIHsNCglib3JkZXItY29sb3I6ICM1ZGUw
NDg7DQp9DQoNCg0KLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
Kg0KICogT1ZFUlZJRVcNCiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKiovDQoNCiNyZXZlYWwub3ZlcnZpZXcgLnNsaWRlcyB7DQoJLXdlYmtpdC1wZXJzcGVjdGl2
ZTogNzAwcHg7DQoJICAgLW1vei1wZXJzcGVjdGl2ZTogNzAwcHg7DQoJICAgIC1tcy1wZXJzcGVj
dGl2ZTogNzAwcHg7DQoJICAgICAgICBwZXJzcGVjdGl2ZTogNzAwcHg7DQp9DQoNCiNyZXZlYWwu
b3ZlcnZpZXcgLnNsaWRlcyBzZWN0aW9uIHsNCglwYWRkaW5nOiAyMHB4IDA7DQoJb3BhY2l0eTog
MTsNCgljdXJzb3I6IHBvaW50ZXI7DQoJYmFja2dyb3VuZDogcmdiYSgwLDAsMCwwLjEpOw0KfQ0K
I3JldmVhbC5vdmVydmlldyAuc2xpZGVzIHNlY3Rpb246YWZ0ZXIsDQojcmV2ZWFsLm92ZXJ2aWV3
IC5zbGlkZXMgc2VjdGlvbjpiZWZvcmUgew0KCWRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsNCn0N
CiNyZXZlYWwub3ZlcnZpZXcgLnNsaWRlcyBzZWN0aW9uPnNlY3Rpb24gew0KCW9wYWNpdHk6IDE7
DQoJY3Vyc29yOiBwb2ludGVyOw0KfQ0KCSNyZXZlYWwub3ZlcnZpZXcgLnNsaWRlcyBzZWN0aW9u
OmhvdmVyIHsNCgkJYmFja2dyb3VuZDogcmdiYSgwLDAsMCwwLjMpOw0KCX0NCg0KCSNyZXZlYWwu
b3ZlcnZpZXcgLnNsaWRlcyBzZWN0aW9uLnByZXNlbnQgew0KCQliYWNrZ3JvdW5kOiByZ2JhKDAs
MCwwLDAuMyk7DQoJfQ0KI3JldmVhbC5vdmVydmlldyAuc2xpZGVzPnNlY3Rpb24uc3RhY2sgew0K
CWJhY2tncm91bmQ6IG5vbmU7DQoJcGFkZGluZzogMDsNCn0NCg0KDQovKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQogKiBGQUxMQkFDSw0KICoqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8NCg0KLm5vLXRyYW5zZm9ybXMgew0K
CW92ZXJmbG93LXk6IGF1dG87DQp9DQoNCi5uby10cmFuc2Zvcm1zIC5zbGlkZXMgc2VjdGlvbiB7
DQoJLXdlYmtpdC10cmFuc2Zvcm06IG5vbmU7DQoJICAgLW1vei10cmFuc2Zvcm06IG5vbmU7DQoJ
ICAgIC1tcy10cmFuc2Zvcm06IG5vbmU7DQoJICAgICAgICB0cmFuc2Zvcm06IG5vbmU7DQoJDQoJ
ZGlzcGxheTogYmxvY2shaW1wb3J0YW50Ow0KCW9wYWNpdHk6IDEhaW1wb3J0YW50Ow0KCXBvc2l0
aW9uOiByZWxhdGl2ZSFpbXBvcnRhbnQ7DQp9DQoNCg0KLyoqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKg0KICogREVGQVVMVCBTVEFURVMNCiAqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovDQoNCi5zdGF0ZS1iYWNrZ3JvdW5kIHsN
Cglwb3NpdGlvbjogYWJzb2x1dGU7DQoJd2lkdGg6IDEwMCU7DQoJaGVpZ2h0OiAxMDAlOw0KCWJh
Y2tncm91bmQ6IHJnYmEoIDAsIDAsIDAsIDAgKTsNCg0KCS13ZWJraXQtdHJhbnNpdGlvbjogYmFj
a2dyb3VuZCA4MDBtcyBlYXNlOw0KCSAgIC1tb3otdHJhbnNpdGlvbjogYmFja2dyb3VuZCA4MDBt
cyBlYXNlOw0KCSAgICAtbXMtdHJhbnNpdGlvbjogYmFja2dyb3VuZCA4MDBtcyBlYXNlOw0KCSAg
ICAgLW8tdHJhbnNpdGlvbjogYmFja2dyb3VuZCA4MDBtcyBlYXNlOw0KCSAgICAgICAgdHJhbnNp
dGlvbjogYmFja2dyb3VuZCA4MDBtcyBlYXNlOw0KfQ0KLmFsZXJ0IC5zdGF0ZS1iYWNrZ3JvdW5k
IHsNCgliYWNrZ3JvdW5kOiByZ2JhKCAyMDAsIDUwLCAzMCwgMC42ICk7DQp9DQouc29vdGhlIC5z
dGF0ZS1iYWNrZ3JvdW5kIHsNCgliYWNrZ3JvdW5kOiByZ2JhKCA1MCwgMjAwLCA5MCwgMC40ICk7
DQp9DQouYmxhY2tvdXQgLnN0YXRlLWJhY2tncm91bmQgew0KCWJhY2tncm91bmQ6IHJnYmEoIDAs
IDAsIDAsIDAuNiApOw0KfQ0KDQoNCg0KDQoNCiBodG1sLCBib2R5IHsNCiAgICAgY29sb3I6ICM2
NjY7DQogfQ0KDQogaHRtbCB7DQogICAgIGJhY2tncm91bmQ6IC1tb3otcmFkaWFsLWdyYWRpZW50
KGNlbnRlciwgZWxsaXBzZSBjb3Zlciwgd2hpdGUgMCUsICNjMGMwYzAgMTAwJSk7DQogICAgIGJh
Y2tncm91bmQ6IC13ZWJraXQtcmFkaWFsLWdyYWRpZW50KGNlbnRlciwgZWxsaXBzZSBjb3Zlciwg
d2hpdGUgMCUsICNjMGMwYzAgMTAwJSk7DQogICAgIGJhY2tncm91bmQ6IC1vLXJhZGlhbC1ncmFk
aWVudChjZW50ZXIsIGVsbGlwc2UgY292ZXIsIHdoaXRlIDAlLCAjYzBjMGMwIDEwMCUpOw0KICAg
ICBiYWNrZ3JvdW5kOiAtbXMtcmFkaWFsLWdyYWRpZW50KGNlbnRlciwgZWxsaXBzZSBjb3Zlciwg
d2hpdGUgMCUsICNjMGMwYzAgMTAwJSk7DQogICAgIGJhY2tncm91bmQ6IHJhZGlhbC1ncmFkaWVu
dChjZW50ZXIsIGVsbGlwc2UgY292ZXIsIHdoaXRlIDAlLCAjYzBjMGMwIDEwMCUpOw0KIH0NCg0K
ICNyZXZlYWwgaDEsIA0KICNyZXZlYWwgaDIsIA0KICNyZXZlYWwgaDMsIA0KICNyZXZlYWwgaDQg
ew0KICAgICBtYXJnaW4tYm90dG9tOiA0MHB4Ow0KICAgICBjb2xvcjogYmxhY2s7DQogICAgIGZv
bnQtZmFtaWx5OiAnT3BlbiBTYW5zIENvbmRlbnNlZCcsICdUcm9jY2hpJywgc2Fucy1zZXJpZjsN
CiAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7DQogfQ0KDQogI3JldmVhbCBkaXYuZG9pbmctZ29v
ZC1sb2dvIHsNCiAgICAgcG9zaXRpb246IHJlbGF0aXZlOw0KICAgICB0b3A6IDE1MHB4Ow0KICAg
ICBsZWZ0OiAtNTBweDsNCiAgICAgLypsZWZ0OiAtMzMwcHg7Ki8NCiAgICAgZm9udC1mYW1pbHk6
ICdNZXRhQm9sZC1Sb21hbic7DQogICAgIGZvbnQtc2l6ZTogMjAwJTsNCiB9DQoNCiAjcmV2ZWFs
IGRpdi5kb2luZy1nb29kLWxvZ28gaW1nIHsNCiAgICAgZmxvYXQ6IGxlZnQ7DQogfQ0KDQogI3Jl
dmVhbCBkaXYuZG9pbmctZ29vZC1sb2dvIGRpdiB7DQogICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsN
CiAgICAgdG9wOiAxMDBweDsNCiAgICAgY29sb3I6IHdoaXRlOw0KIH0NCg0KICNyZXZlYWwgZGl2
LmRvaW5nLWdvb2QtbG9nbyBkaXYgc3BhbiB7DQogICAgIGNvbG9yOiBibGFjazsNCiB9DQoNCiAj
cmV2ZWFsIGgxLmRvaW5nLWdvb2Qgew0KICAgICBwb3NpdGlvbjogcmVsYXRpdmU7DQogICAgIHRv
cDogMTAwcHg7DQogICAgIGZvbnQtZmFtaWx5OiAnTWV0YUJvbGQtUm9tYW4nOw0KICAgICBmb250
LXNpemU6IDMwMCU7DQogICAgIGNvbG9yOiB3aGl0ZTsNCiAgICAgbGluZS1oZWlnaHQ6IDEuMmVt
Ow0KIH0NCg0KICNyZXZlYWwgaDEub2xkLXNjaG9vbCB7DQogICAgIGZvbnQtZmFtaWx5OiAnQ29t
bW9kb3JlIDY0JzsNCiB9DQoNCiAjcmV2ZWFsIGgxLmNvbXB1dGVyIHsNCiAgICAgZm9udC1mYW1p
bHk6IENvbXB1dGVyZm9udDsNCiAgICAgZm9udC1zaXplOiAxMjRweDsNCiB9DQoNCiAjcmV2ZWFs
IGgxLnRpdGxlLXNsaWRlIHsNCiAgICAgZm9udC1mYW1pbHk6ICdGZWFzdCBvZiBGbGVzaCBCQics
IHNhbnMtc2VyaWY7DQogfQ0KDQogI3JldmVhbCBoMS5pbnZlcnRlZCwNCiAjcmV2ZWFsIGgyLmlu
dmVydGVkLA0KICNyZXZlYWwgaDMuaW52ZXJ0ZWQsDQogI3JldmVhbCBoNC5pbnZlcnRlZCB7DQog
ICAgIGNvbG9yOiAjODg4Ow0KIH0NCg0KICNyZXZlYWwgaDMub2xkLXNjaG9vbCB7DQogICAgIGZv
bnQtZmFtaWx5OiAnQ29tbW9kb3JlIDY0IFBpeGVsaXplZCc7DQogICAgIGZvbnQtc2l6ZTogMjRw
dDsNCiB9DQoNCiAjcmV2ZWFsIHVsLm5vYnVsbGV0cyB7DQogICAgIGxpc3Qtc3R5bGU6IG5vbmU7
DQogfQ0KDQogI3JldmVhbCB0YWJsZS5mZWF0dXJlcyB7DQogICAgIHRleHQtYWxpZ246IGxlZnQ7
DQogICAgIGJvcmRlci1jb2xsYXBzZTogc2VwYXJhdGU7DQogICAgIGJvcmRlci1zcGFjaW5nOiA1
MHB4IDBweDsNCiAgICAgbWFyZ2luOiAxMDBweCBhdXRvOw0KIH0NCg0KICNyZXZlYWwgdGFibGUu
ZmVhdHVyZXMgdGQuZ3JlZW4gew0KICAgICBjb2xvcjogIzBhMDsNCiB9DQoNCiAjcmV2ZWFsIHRh
YmxlLmZlYXR1cmVzIHRkLnJlZCB7DQogICAgIGNvbG9yOiAjYzAwOw0KIH0NCg0KICNyZXZlYWwg
cHJlIHsNCiAgICAgZm9udC1zaXplOiAyNHB4Ow0KIH0NCg0KICNyZXZlYWwgYTpub3QoLmltYWdl
KSB7DQogICAgIGNvbG9yOiAjYjAwMDEwOw0KIH0NCg0KICNyZXZlYWwgLmNvbnRyb2xzIGEgew0K
ICAgICBvcGFjaXR5OiAwLjE7DQogICAgIGNvbG9yOiAjZmZmOw0KIH0NCg0KICNyZXZlYWwgLmNv
bnRyb2xzIGEuZW5hYmxlZCB7DQogICAgIGNvbG9yOiAjODg4Ow0KIH0NCg0KICNyZXZlYWwgc2Vj
dGlvbiBpbWcudHJhbnNwYXJlbnQgew0KICAgICBtYXJnaW46IDA7DQogICAgIGJhY2tncm91bmQ6
IG5vbmU7DQogICAgIGJvcmRlcjogbm9uZTsNCiAgICAgLW1vei1ib3gtc2hhZG93OiBub25lOw0K
ICAgICAtd2Via2l0LWJveC1zaGFkb3c6IG5vbmU7DQogICAgIC1vLWJveC1zaGFkb3c6IG5vbmU7
DQogICAgIC1tcy1ib3gtc2hhZG93OiBub25lOw0KICAgICBib3gtc2hhZG93OiBub25lOw0KIH0N
Cg0KICNyZXZlYWwgc2VjdGlvbiBpbWcud2hpdGUgew0KICAgICBiYWNrZ3JvdW5kOiB3aGl0ZTsN
CiAgICAgcGFkZGluZzogMTBweDsNCiB9DQoNCiAjcmV2ZWFsIGJsb2NrcXVvdGUubWlkZGxlIHsN
CiAgICAgZm9udC1zaXplOiA0OHB4Ow0KICAgICBtYXJnaW4tdG9wOiAyMDBweDsNCiAgICAgcGFk
ZGluZzogMjBweDsNCiAgICAgbGluZS1oZWlnaHQ6IDEuMWVtOw0KIH0NCg0KICNyZXZlYWwgLmF0
dHJpYnV0aW9uIHsNCiAgICAgbWFyZ2luLWJvdHRvbTogMWVtOw0KIH0NCg0KICNyZXZlYWwgc2Vj
dGlvbiBpbWcubWluaWNvZmZlZSB7DQogICAgIGJvcmRlcjogc29saWQgMXB4ICNiYmI7DQogICAg
IGJhY2tncm91bmQtY29sb3I6IHdoaXRlOw0KICAgICBwYWRkaW5nOiA1cHg7DQogICAgIGJvcmRl
ci1yYWRpdXM6IDNweDsNCiAgICAgYmFja2dyb3VuZDogLW1vei1saW5lYXItZ3JhZGllbnQoY2Vu
dGVyIHRvcCAsIHJnYigyNDgsIDI0OCwgMjQ4KSwgcmdiKDIxOCwgMjE4LCAyMTgpKSByZXBlYXQg
c2Nyb2xsIDAlIDAlIHRyYW5zcGFyZW50Ow0KICAgICBiYWNrZ3JvdW5kOiAtd2Via2l0LWxpbmVh
ci1ncmFkaWVudChjZW50ZXIgdG9wICwgcmdiKDI0OCwgMjQ4LCAyNDgpLCByZ2IoMjE4LCAyMTgs
IDIxOCkpIHJlcGVhdCBzY3JvbGwgMCUgMCUgdHJhbnNwYXJlbnQ7DQogICAgIGJhY2tncm91bmQ6
IC1vLWxpbmVhci1ncmFkaWVudChjZW50ZXIgdG9wICwgcmdiKDI0OCwgMjQ4LCAyNDgpLCByZ2Io
MjE4LCAyMTgsIDIxOCkpIHJlcGVhdCBzY3JvbGwgMCUgMCUgdHJhbnNwYXJlbnQ7DQogICAgIGJh
Y2tncm91bmQ6IC1tcy1saW5lYXItZ3JhZGllbnQoY2VudGVyIHRvcCAsIHJnYigyNDgsIDI0OCwg
MjQ4KSwgcmdiKDIxOCwgMjE4LCAyMTgpKSByZXBlYXQgc2Nyb2xsIDAlIDAlIHRyYW5zcGFyZW50
Ow0KICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoY2VudGVyIHRvcCAsIHJnYigyNDgs
IDI0OCwgMjQ4KSwgcmdiKDIxOCwgMjE4LCAyMTgpKSByZXBlYXQgc2Nyb2xsIDAlIDAlIHRyYW5z
cGFyZW50Ow0KIH0NCg0KICNyZXZlYWwgLmNvZmZlZXNjcmlwdCB7DQogICAgIG1hcmdpbjogNTBw
eCBhdXRvOw0KICAgICBwYWRkaW5nOiAxMHB4Ow0KICAgICBoZWlnaHQ6IDUwcHg7DQogICAgIHdp
ZHRoOiAyNDVweDsNCiAgICAgYmFja2dyb3VuZDogLW1vei1saW5lYXItZ3JhZGllbnQoY2VudGVy
IHRvcCAsIHJnYigyNDgsIDI0OCwgMjQ4KSwgcmdiKDIxOCwgMjE4LCAyMTgpKSByZXBlYXQgc2Ny
b2xsIDAlIDAlIHRyYW5zcGFyZW50Ow0KICAgICBiYWNrZ3JvdW5kOiAtd2Via2l0LWxpbmVhci1n
cmFkaWVudChjZW50ZXIgdG9wICwgcmdiKDI0OCwgMjQ4LCAyNDgpLCByZ2IoMjE4LCAyMTgsIDIx
OCkpIHJlcGVhdCBzY3JvbGwgMCUgMCUgdHJhbnNwYXJlbnQ7DQogICAgIGJhY2tncm91bmQ6IC1v
LWxpbmVhci1ncmFkaWVudChjZW50ZXIgdG9wICwgcmdiKDI0OCwgMjQ4LCAyNDgpLCByZ2IoMjE4
LCAyMTgsIDIxOCkpIHJlcGVhdCBzY3JvbGwgMCUgMCUgdHJhbnNwYXJlbnQ7DQogICAgIGJhY2tn
cm91bmQ6IC1tcy1saW5lYXItZ3JhZGllbnQoY2VudGVyIHRvcCAsIHJnYigyNDgsIDI0OCwgMjQ4
KSwgcmdiKDIxOCwgMjE4LCAyMTgpKSByZXBlYXQgc2Nyb2xsIDAlIDAlIHRyYW5zcGFyZW50Ow0K
ICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoY2VudGVyIHRvcCAsIHJnYigyNDgsIDI0
OCwgMjQ4KSwgcmdiKDIxOCwgMjE4LCAyMTgpKSByZXBlYXQgc2Nyb2xsIDAlIDAlIHRyYW5zcGFy
ZW50Ow0KICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCByZ2IoMTcwLCAxNzAsIDE3MCk7DQog
ICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgcmdiKDE3MCwgMTcwLCAxNzApOw0KICAgICAtbW96
LWJvcmRlci1pbWFnZTogbm9uZSAxMDAlIDEwMCUgMTAwJSAxMDAlIC8gMSAxIDEgMSAvIDAgMCAw
IDAgc3RyZXRjaCBzdHJldGNoOw0KICAgICAtd2Via2l0LWJvcmRlci1pbWFnZTogbm9uZSAxMDAl
IDEwMCUgMTAwJSAxMDAlIC8gMSAxIDEgMSAvIDAgMCAwIDAgc3RyZXRjaCBzdHJldGNoOw0KICAg
ICAtby1ib3JkZXItaW1hZ2U6IG5vbmUgMTAwJSAxMDAlIDEwMCUgMTAwJSAvIDEgMSAxIDEgLyAw
IDAgMCAwIHN0cmV0Y2ggc3RyZXRjaDsNCiAgICAgLW1zLWJvcmRlci1pbWFnZTogbm9uZSAxMDAl
IDEwMCUgMTAwJSAxMDAlIC8gMSAxIDEgMSAvIDAgMCAwIDAgc3RyZXRjaCBzdHJldGNoOw0KICAg
ICBib3JkZXItaW1hZ2U6IG5vbmUgMTAwJSAxMDAlIDEwMCUgMTAwJSAvIDEgMSAxIDEgLyAwIDAg
MCAwIHN0cmV0Y2ggc3RyZXRjaDsNCiAgICAgYm9yZGVyLXdpZHRoOiAxcHg7DQogICAgIGJvcmRl
ci1zdHlsZTogc29saWQ7DQogICAgIGJvcmRlci1jb2xvcjogcmdiKDE4NywgMTg3LCAxODcpIHJn
YigxNzAsIDE3MCwgMTcwKSByZ2IoMTM2LCAxMzYsIDEzNik7DQogICAgIGJvcmRlci1yYWRpdXM6
IDNweCAzcHggM3B4IDNweDsNCiAgICAgYm94LXNoYWRvdzogMHB4IDNweCA1cHggcmdiYSgwLCAw
LCAwLCAwLjEpOw0KIH0NCg0KICNyZXZlYWwgdWwgbGkgew0KICAgICBsaW5lLWhlaWdodDogMS41
ZW07DQogfQ0KDQogI3JldmVhbCB1bC5hbHRqcyB7DQogICAgIG1hcmdpbi10b3A6IDMwcHg7DQog
fQ0KDQogI3JldmVhbCB1bC5hbHRqcyBpbWcgew0KICAgICBtYXJnaW46IDVweCAwOw0KICAgICB2
ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOw0KIH0NCg0KPC9zdHlsZT4NCg0KPGRpdiBpZD0icmV2ZWFs
Ij4NCiAgICA8ZGl2IGNsYXNzPSJzbGlkZXMiPg0KCTxzZWN0aW9uIGNsYXNzPSJwcmVzZW50Ij4N
CgkgICAgPGgyPlRpdGxlPC9oMj4NCgkgICAgPGEgY2xhc3M9InJvbGwiIGhyZWY9IiI+PHNwYW4g
ZGF0YS10aXRsZT0iVGV4dCI+VGV4dDwvc3Bhbj48L2E+DQoJPC9zZWN0aW9uPg0KICAgIDwvZGl2
Pg0KPC9kaXY+DQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>463018</attachid>
            <date>2022-10-16 18:45:19 -0700</date>
            <delta_ts>2022-10-16 18:45:19 -0700</delta_ts>
            <desc>WIP patch</desc>
            <filename>wip.patch</filename>
            <type>text/plain</type>
            <size>25608</size>
            <attacher name="Fujii Hironori">fujii</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0
dXJlTWFwcGVyTGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4
bWFwL1RleHR1cmVNYXBwZXJMYXllci5jcHAKaW5kZXggZjg5MWQ5YmM4YzcwLi5hMDM2MWFlNmQ3
ZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9U
ZXh0dXJlTWFwcGVyTGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyTGF5ZXIuY3BwCkBAIC0zNSwxMyArMzUsMTUgQEAgcHVi
bGljOgogICAgIHsgfQogCiAgICAgVGV4dHVyZU1hcHBlciYgdGV4dHVyZU1hcHBlcjsKKyAgICAv
LyBhY2N1bXVsYXRlZCByZXBsaWNhIHRyYW5zZm9ybSBpbiB0aGUgY3VycmVudCBzdXJmYWNlCiAg
ICAgVHJhbnNmb3JtYXRpb25NYXRyaXggdHJhbnNmb3JtOworICAgIC8vIHRyYW5zZm9ybSBmcm9t
IHRoZSBjdXJyZW50IHN1cmZhY2UgdG8gdGhlIHZpZXdwb3J0CisgICAgVHJhbnNmb3JtYXRpb25N
YXRyaXggc3VyZmFjZVRyYW5zZm9ybTsKICAgICBSZWZQdHI8Qml0bWFwVGV4dHVyZT4gc3VyZmFj
ZTsKICAgICBmbG9hdCBvcGFjaXR5IHsgMSB9OwogICAgIEludFNpemUgb2Zmc2V0OwogICAgIFRl
eHR1cmVNYXBwZXJMYXllciogYmFja2Ryb3BMYXllciB7IG51bGxwdHIgfTsKICAgICBUZXh0dXJl
TWFwcGVyTGF5ZXIqIHJlcGxpY2FMYXllciB7IG51bGxwdHIgfTsKLSAgICBib29sIHByZXNlcnZl
czNEIHsgZmFsc2UgfTsKIH07CiAKIHN0cnVjdCBUZXh0dXJlTWFwcGVyTGF5ZXI6OkNvbXB1dGVU
cmFuc2Zvcm1EYXRhIHsKQEAgLTcyLDEwICs3NCwxOSBAQCB2b2lkIFRleHR1cmVNYXBwZXJMYXll
cjo6Y29tcHV0ZVRyYW5zZm9ybXNSZWN1cnNpdmUoQ29tcHV0ZVRyYW5zZm9ybURhdGEmIGRhdGEp
CiAgICAgaWYgKG1fc3RhdGUuc2l6ZS5pc0VtcHR5KCkgJiYgbV9zdGF0ZS5tYXNrc1RvQm91bmRz
KQogICAgICAgICByZXR1cm47CiAKKyAgICBtX2lzMkRSb290ID0gIW1fc3RhdGUucHJlc2VydmVz
M0QgJiYgKG1fcGFyZW50ICYmIG1fcGFyZW50LT5tX3N0YXRlLnByZXNlcnZlczNEKTsKKyAgICBt
X2lzM0RSb290ID0gbV9zdGF0ZS5wcmVzZXJ2ZXMzRCAmJiAoIW1fcGFyZW50IHx8ICFtX3BhcmVu
dC0+bV9zdGF0ZS5wcmVzZXJ2ZXMzRCk7CisKICAgICAvLyBDb21wdXRlIHRyYW5zZm9ybXMgcmVj
dXJzaXZlbHkgb24gdGhlIHdheSBkb3duIHRvIGxlYWZzLgogICAgIHsKICAgICAgICAgVHJhbnNm
b3JtYXRpb25NYXRyaXggcGFyZW50VHJhbnNmb3JtOwotICAgICAgICBpZiAobV9wYXJlbnQpCisg
ICAgICAgIGlmIChtX2lzM0RSb290KSB7CisgICAgICAgICAgICBjb25zdCBmbG9hdCBwYXJlbnRP
cmlnaW5YID0gbV9wYXJlbnQtPm1fc3RhdGUuYW5jaG9yUG9pbnQueCgpICogbV9wYXJlbnQtPm1f
c3RhdGUuc2l6ZS53aWR0aCgpOworICAgICAgICAgICAgY29uc3QgZmxvYXQgcGFyZW50T3JpZ2lu
WSA9IG1fcGFyZW50LT5tX3N0YXRlLmFuY2hvclBvaW50LnkoKSAqIG1fcGFyZW50LT5tX3N0YXRl
LnNpemUuaGVpZ2h0KCk7CisgICAgICAgICAgICBwYXJlbnRUcmFuc2Zvcm0udHJhbnNsYXRlM2Qo
cGFyZW50T3JpZ2luWCwgcGFyZW50T3JpZ2luWSwgbV9wYXJlbnQtPm1fc3RhdGUuYW5jaG9yUG9p
bnQueigpKTsKKyAgICAgICAgICAgIHBhcmVudFRyYW5zZm9ybS5tdWx0aXBseShtX3BhcmVudC0+
bV9zdGF0ZS5jaGlsZHJlblRyYW5zZm9ybSk7CisgICAgICAgICAgICBwYXJlbnRUcmFuc2Zvcm0u
dHJhbnNsYXRlM2QoLXBhcmVudE9yaWdpblgsIC1wYXJlbnRPcmlnaW5ZLCAtbV9wYXJlbnQtPm1f
c3RhdGUuYW5jaG9yUG9pbnQueigpKTsKKyAgICAgICAgfSBlbHNlIGlmIChtX3BhcmVudCkKICAg
ICAgICAgICAgIHBhcmVudFRyYW5zZm9ybSA9IG1fcGFyZW50LT5tX2xheWVyVHJhbnNmb3Jtcy5j
b21iaW5lZEZvckNoaWxkcmVuOwogICAgICAgICBlbHNlIGlmIChtX2VmZmVjdFRhcmdldCkKICAg
ICAgICAgICAgIHBhcmVudFRyYW5zZm9ybSA9IG1fZWZmZWN0VGFyZ2V0LT5tX2xheWVyVHJhbnNm
b3Jtcy5jb21iaW5lZDsKQEAgLTg0LDIzICs5NSwyNyBAQCB2b2lkIFRleHR1cmVNYXBwZXJMYXll
cjo6Y29tcHV0ZVRyYW5zZm9ybXNSZWN1cnNpdmUoQ29tcHV0ZVRyYW5zZm9ybURhdGEmIGRhdGEp
CiAgICAgICAgIGNvbnN0IGZsb2F0IG9yaWdpblkgPSBtX3N0YXRlLmFuY2hvclBvaW50LnkoKSAq
IG1fc3RhdGUuc2l6ZS5oZWlnaHQoKTsKIAogICAgICAgICBtX2xheWVyVHJhbnNmb3Jtcy5jb21i
aW5lZCA9IHBhcmVudFRyYW5zZm9ybTsKKworICAgICAgICBpZiAoIW1faXNSZXBsaWNhKQorICAg
ICAgICAgICAgbV9sYXllclRyYW5zZm9ybXMuY29tYmluZWQudHJhbnNsYXRlKG1fc3RhdGUucG9z
LngoKSwgbV9zdGF0ZS5wb3MueSgpKTsKKwogICAgICAgICBtX2xheWVyVHJhbnNmb3Jtcy5jb21i
aW5lZAotICAgICAgICAgICAgLnRyYW5zbGF0ZTNkKG9yaWdpblggKyAobV9zdGF0ZS5wb3MueCgp
IC0gbV9zdGF0ZS5ib3VuZHNPcmlnaW4ueCgpKSwgb3JpZ2luWSArIChtX3N0YXRlLnBvcy55KCkg
LSBtX3N0YXRlLmJvdW5kc09yaWdpbi55KCkpLCBtX3N0YXRlLmFuY2hvclBvaW50LnooKSkKKyAg
ICAgICAgICAgIC50cmFuc2xhdGUzZChvcmlnaW5YIC0gbV9zdGF0ZS5ib3VuZHNPcmlnaW4ueCgp
LCBvcmlnaW5ZIC0gbV9zdGF0ZS5ib3VuZHNPcmlnaW4ueSgpLCBtX3N0YXRlLmFuY2hvclBvaW50
LnooKSkKICAgICAgICAgICAgIC5tdWx0aXBseShtX2xheWVyVHJhbnNmb3Jtcy5sb2NhbFRyYW5z
Zm9ybSk7CiAKLSAgICAgICAgbV9sYXllclRyYW5zZm9ybXMuY29tYmluZWRGb3JDaGlsZHJlbiA9
IG1fbGF5ZXJUcmFuc2Zvcm1zLmNvbWJpbmVkOworICAgICAgICBpZiAobV9pczJEUm9vdCkKKyAg
ICAgICAgICAgIG1fbGF5ZXJUcmFuc2Zvcm1zLmNvbWJpbmVkRm9yQ2hpbGRyZW4gPSBUcmFuc2Zv
cm1hdGlvbk1hdHJpeCgpLnRyYW5zbGF0ZTNkKG9yaWdpblgsIG9yaWdpblksIG1fc3RhdGUuYW5j
aG9yUG9pbnQueigpKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgbV9sYXllclRyYW5zZm9y
bXMuY29tYmluZWRGb3JDaGlsZHJlbiA9IG1fbGF5ZXJUcmFuc2Zvcm1zLmNvbWJpbmVkOwogICAg
ICAgICBtX2xheWVyVHJhbnNmb3Jtcy5jb21iaW5lZC50cmFuc2xhdGUzZCgtb3JpZ2luWCwgLW9y
aWdpblksIC1tX3N0YXRlLmFuY2hvclBvaW50LnooKSk7CiAKLSAgICAgICAgaWYgKG1faXNSZXBs
aWNhKQotICAgICAgICAgICAgbV9sYXllclRyYW5zZm9ybXMuY29tYmluZWQudHJhbnNsYXRlKC1t
X3N0YXRlLnBvcy54KCksIC1tX3N0YXRlLnBvcy55KCkpOwotCi0gICAgICAgIGlmICghbV9zdGF0
ZS5wcmVzZXJ2ZXMzRCkKLSAgICAgICAgICAgIG1fbGF5ZXJUcmFuc2Zvcm1zLmNvbWJpbmVkRm9y
Q2hpbGRyZW4gPSBtX2xheWVyVHJhbnNmb3Jtcy5jb21iaW5lZEZvckNoaWxkcmVuLnRvMmRUcmFu
c2Zvcm0oKTsKICAgICAgICAgbV9sYXllclRyYW5zZm9ybXMuY29tYmluZWRGb3JDaGlsZHJlbi5t
dWx0aXBseShtX3N0YXRlLmNoaWxkcmVuVHJhbnNmb3JtKTsKICAgICAgICAgbV9sYXllclRyYW5z
Zm9ybXMuY29tYmluZWRGb3JDaGlsZHJlbi50cmFuc2xhdGUzZCgtb3JpZ2luWCwgLW9yaWdpblks
IC1tX3N0YXRlLmFuY2hvclBvaW50LnooKSk7CiAKICNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJ
Q1MpCi0gICAgICAgIC8vIENvbXB1dGUgdHJhbnNmb3JtcyBmb3IgdGhlIGZ1dHVyZSBhcyB3ZWxs
LgorICAgICAgICAvLyBDb21wdXRlIHRyYW5zZm9ybXMgZm9yIHRoZSBmdXR1cmUgZm9yIGNvbXB1
dGluZyB0aWxlIGNvdmVyYWdlLgorICAgICAgICAvLyBCZWNhdXNlIGZ1dHVyZUNvbWJpbmVkIGlz
IHVzZWQgZm9yIGNvbXB1dGluZyB2aXNpYmxlIHRpbGVzLCBpdCBpcyBjYWxjdWxhdGVkIG9ubHkg
aW4gdGhlIHZpZXdwb3J0CisgICAgICAgIC8vIHNwYWNlIG5vdCBpbiB0aGUgbG9jYWwgc3BhY2Uu
CiAgICAgICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IGZ1dHVyZVBhcmVudFRyYW5zZm9ybTsKICAg
ICAgICAgaWYgKG1fcGFyZW50KQogICAgICAgICAgICAgZnV0dXJlUGFyZW50VHJhbnNmb3JtID0g
bV9wYXJlbnQtPm1fbGF5ZXJUcmFuc2Zvcm1zLmZ1dHVyZUNvbWJpbmVkRm9yQ2hpbGRyZW47CkBA
IC0xOTEsNyArMjA2LDggQEAgdm9pZCBUZXh0dXJlTWFwcGVyTGF5ZXI6OnBhaW50U2VsZihUZXh0
dXJlTWFwcGVyUGFpbnRPcHRpb25zJiBvcHRpb25zKQogICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4
IHRyYW5zZm9ybTsKICAgICB0cmFuc2Zvcm0udHJhbnNsYXRlKG9wdGlvbnMub2Zmc2V0LndpZHRo
KCksIG9wdGlvbnMub2Zmc2V0LmhlaWdodCgpKTsKICAgICB0cmFuc2Zvcm0ubXVsdGlwbHkob3B0
aW9ucy50cmFuc2Zvcm0pOwotICAgIHRyYW5zZm9ybS5tdWx0aXBseShtX2xheWVyVHJhbnNmb3Jt
cy5jb21iaW5lZCk7CisgICAgaWYgKCFtX2lzMkRSb290KQorICAgICAgICB0cmFuc2Zvcm0ubXVs
dGlwbHkobV9sYXllclRyYW5zZm9ybXMuY29tYmluZWQpOwogCiAgICAgVGV4dHVyZU1hcHBlclNv
bGlkQ29sb3JMYXllciBzb2xpZENvbG9yTGF5ZXI7CiAgICAgVGV4dHVyZU1hcHBlckJhY2tpbmdT
dG9yZSogYmFja2luZ1N0b3JlID0gbV9iYWNraW5nU3RvcmU7CkBAIC0yNTksNyArMjc1LDggQEAg
dm9pZCBUZXh0dXJlTWFwcGVyTGF5ZXI6OnBhaW50U2VsZkFuZENoaWxkcmVuKFRleHR1cmVNYXBw
ZXJQYWludE9wdGlvbnMmIG9wdGlvbnMKICAgICAgICAgVHJhbnNmb3JtYXRpb25NYXRyaXggY2xp
cFRyYW5zZm9ybTsKICAgICAgICAgY2xpcFRyYW5zZm9ybS50cmFuc2xhdGUob3B0aW9ucy5vZmZz
ZXQud2lkdGgoKSwgb3B0aW9ucy5vZmZzZXQuaGVpZ2h0KCkpOwogICAgICAgICBjbGlwVHJhbnNm
b3JtLm11bHRpcGx5KG9wdGlvbnMudHJhbnNmb3JtKTsKLSAgICAgICAgY2xpcFRyYW5zZm9ybS5t
dWx0aXBseShtX2xheWVyVHJhbnNmb3Jtcy5jb21iaW5lZCk7CisgICAgICAgIGlmICghbV9pczJE
Um9vdCkKKyAgICAgICAgICAgIGNsaXBUcmFuc2Zvcm0ubXVsdGlwbHkobV9sYXllclRyYW5zZm9y
bXMuY29tYmluZWQpOwogICAgICAgICBvcHRpb25zLnRleHR1cmVNYXBwZXIuYmVnaW5DbGlwKGNs
aXBUcmFuc2Zvcm0sIG1fc3RhdGUuYmFja2Ryb3BGaWx0ZXJzUmVjdCk7CiAgICAgICAgIG1fc3Rh
dGUuYmFja2Ryb3BMYXllci0+cGFpbnRSZWN1cnNpdmUob3B0aW9ucyk7CiAgICAgICAgIG9wdGlv
bnMudGV4dHVyZU1hcHBlci5lbmRDbGlwKCk7CkBAIC0yNzUsNyArMjkyLDggQEAgdm9pZCBUZXh0
dXJlTWFwcGVyTGF5ZXI6OnBhaW50U2VsZkFuZENoaWxkcmVuKFRleHR1cmVNYXBwZXJQYWludE9w
dGlvbnMmIG9wdGlvbnMKICAgICAgICAgVHJhbnNmb3JtYXRpb25NYXRyaXggY2xpcFRyYW5zZm9y
bTsKICAgICAgICAgY2xpcFRyYW5zZm9ybS50cmFuc2xhdGUob3B0aW9ucy5vZmZzZXQud2lkdGgo
KSwgb3B0aW9ucy5vZmZzZXQuaGVpZ2h0KCkpOwogICAgICAgICBjbGlwVHJhbnNmb3JtLm11bHRp
cGx5KG9wdGlvbnMudHJhbnNmb3JtKTsKLSAgICAgICAgY2xpcFRyYW5zZm9ybS5tdWx0aXBseSht
X2xheWVyVHJhbnNmb3Jtcy5jb21iaW5lZCk7CisgICAgICAgIGlmICghbV9pczJEUm9vdCkKKyAg
ICAgICAgICAgIGNsaXBUcmFuc2Zvcm0ubXVsdGlwbHkobV9sYXllclRyYW5zZm9ybXMuY29tYmlu
ZWQpOwogICAgICAgICBpZiAobV9zdGF0ZS5jb250ZW50c1JlY3RDbGlwc0Rlc2NlbmRhbnRzKQog
ICAgICAgICAgICAgb3B0aW9ucy50ZXh0dXJlTWFwcGVyLmJlZ2luQ2xpcChjbGlwVHJhbnNmb3Jt
LCBtX3N0YXRlLmNvbnRlbnRzQ2xpcHBpbmdSZWN0KTsKICAgICAgICAgZWxzZSB7CkBAIC01MjIs
NDcgKzU0MCwxMjYgQEAgSW50UmVjdCB0cmFuc2Zvcm1lZEJvdW5kaW5nQm94KGNvbnN0IFRyYW5z
Zm9ybWF0aW9uTWF0cml4JiB0cmFuc2Zvcm0sIEZsb2F0UmVjdAogICAgIHJldHVybiB7IH07CiB9
CiAKLXZvaWQgVGV4dHVyZU1hcHBlckxheWVyOjpjb21wdXRlT3ZlcmxhcFJlZ2lvbnMoQ29tcHV0
ZU92ZXJsYXBSZWdpb25EYXRhJiBkYXRhLCBjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgYWNj
dW11bGF0ZWRSZXBsaWNhVHJhbnNmb3JtLCBib29sIGluY2x1ZGVzUmVwbGljYSkKK3N0YXRpYyB2
b2lkIHJlc29sdmVPdmVybGFwcyhjb25zdCBSZWdpb24mIG5ld1JlZ2lvbiwgUmVnaW9uJiBvdmVy
bGFwUmVnaW9uLCBSZWdpb24mIG5vbk92ZXJsYXBSZWdpb24pCiB7Ci0gICAgaWYgKCFtX3N0YXRl
LnZpc2libGUgfHwgIW1fc3RhdGUuY29udGVudHNWaXNpYmxlKQotICAgICAgICByZXR1cm47Cisg
ICAgUmVnaW9uIG5ld092ZXJsYXBSZWdpb24obmV3UmVnaW9uKTsKKyAgICBuZXdPdmVybGFwUmVn
aW9uLmludGVyc2VjdChub25PdmVybGFwUmVnaW9uKTsKKyAgICBub25PdmVybGFwUmVnaW9uLnN1
YnRyYWN0KG5ld092ZXJsYXBSZWdpb24pOworICAgIG92ZXJsYXBSZWdpb24udW5pdGUobmV3T3Zl
cmxhcFJlZ2lvbik7CiAKLSAgICBGbG9hdFJlY3QgbG9jYWxCb3VuZGluZ1JlY3Q7Ci0gICAgaWYg
KG1fYmFja2luZ1N0b3JlIHx8IG1fc3RhdGUubWFza3NUb0JvdW5kcyB8fCBtX3N0YXRlLm1hc2tM
YXllciB8fCBoYXNGaWx0ZXJzKCkpCi0gICAgICAgIGxvY2FsQm91bmRpbmdSZWN0ID0gbGF5ZXJS
ZWN0KCk7Ci0gICAgZWxzZSBpZiAobV9jb250ZW50c0xheWVyIHx8IG1fc3RhdGUuc29saWRDb2xv
ci5pc1Zpc2libGUoKSkKLSAgICAgICAgbG9jYWxCb3VuZGluZ1JlY3QgPSBtX3N0YXRlLmNvbnRl
bnRzUmVjdDsKKyAgICBSZWdpb24gbmV3Tm9uT3ZlcmxhcFJlZ2lvbihuZXdSZWdpb24pOworICAg
IG5ld05vbk92ZXJsYXBSZWdpb24uc3VidHJhY3Qob3ZlcmxhcFJlZ2lvbik7CisgICAgbm9uT3Zl
cmxhcFJlZ2lvbi51bml0ZShuZXdOb25PdmVybGFwUmVnaW9uKTsKK30KIAotICAgIGlmIChtX2N1
cnJlbnRGaWx0ZXJzLmhhc091dHNldHMoKSAmJiAhbV9zdGF0ZS5iYWNrZHJvcExheWVyICYmICFt
X3N0YXRlLm1hc2tzVG9Cb3VuZHMgJiYgIW1fc3RhdGUubWFza0xheWVyKSB7Ci0gICAgICAgIGF1
dG8gb3V0c2V0cyA9IG1fY3VycmVudEZpbHRlcnMub3V0c2V0cygpOwotICAgICAgICBsb2NhbEJv
dW5kaW5nUmVjdC5tb3ZlKC1vdXRzZXRzLmxlZnQoKSwgLW91dHNldHMudG9wKCkpOwotICAgICAg
ICBsb2NhbEJvdW5kaW5nUmVjdC5leHBhbmQob3V0c2V0cy5sZWZ0KCkgKyBvdXRzZXRzLnJpZ2h0
KCksIG91dHNldHMudG9wKCkgKyBvdXRzZXRzLmJvdHRvbSgpKTsKLSAgICB9Cit2b2lkIFRleHR1
cmVNYXBwZXJMYXllcjo6Y29tcHV0ZU92ZXJsYXBSZWdpb25zKENvbXB1dGVPdmVybGFwUmVnaW9u
TW9kZSBtb2RlLCBDb21wdXRlT3ZlcmxhcFJlZ2lvbkRhdGEmIGRhdGEsIGNvbnN0IFRyYW5zZm9y
bWF0aW9uTWF0cml4JiBzdXJmYWNlVHJhbnNmb3JtLCBjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJp
eCYgYWNjdW11bGF0ZWRSZXBsaWNhVHJhbnNmb3JtLCBib29sIGluY2x1ZGVzUmVwbGljYSkKK3sK
KyAgICBpZiAoIWlzVmlzaWJsZSgpKQorICAgICAgICByZXR1cm47CiAKLSAgICBUcmFuc2Zvcm1h
dGlvbk1hdHJpeCB0cmFuc2Zvcm0oYWNjdW11bGF0ZWRSZXBsaWNhVHJhbnNmb3JtKTsKLSAgICB0
cmFuc2Zvcm0ubXVsdGlwbHkobV9sYXllclRyYW5zZm9ybXMuY29tYmluZWQpOworICAgIGlmICht
X2lzMkRSb290IHx8IG1vZGUgPT0gQ29tcHV0ZU92ZXJsYXBSZWdpb25Nb2RlOjpVbmlvbikgewor
ICAgICAgICBSZWdpb24gcmVnaW9uOworICAgICAgICBhdXRvIGNvbGxlY3RMb2NhbFJlY3QgPSBb
Jl0oY29uc3QgRmxvYXRSZWN0JiBwYXNzZWRSZWN0LCBjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJp
eCYgdHJhbnNmb3JtKSB7CisgICAgICAgICAgICBJbnRSZWN0IHRyYW5zZm9ybWVkUmVjdCA9IGVu
Y2xvc2luZ0ludFJlY3QodHJhbnNmb3JtLm1hcFJlY3QocGFzc2VkUmVjdCkpOworICAgICAgICAg
ICAgdHJhbnNmb3JtZWRSZWN0LmludGVyc2VjdChkYXRhLmNsaXBCb3VuZHMpOworICAgICAgICAg
ICAgcmVnaW9uLnVuaXRlKHRyYW5zZm9ybWVkUmVjdCk7CisgICAgICAgIH07CisgICAgICAgIGNv
bGxlY3RMb2NhbFNwYWNlUmVjdHMoc3VyZmFjZVRyYW5zZm9ybSwgYWNjdW11bGF0ZWRSZXBsaWNh
VHJhbnNmb3JtLCBXVEZNb3ZlKGNvbGxlY3RMb2NhbFJlY3QpLCBpbmNsdWRlc1JlcGxpY2EpOwor
ICAgICAgICByZXNvbHZlT3ZlcmxhcHMocmVnaW9uLCBkYXRhLm92ZXJsYXBSZWdpb24sIGRhdGEu
bm9uT3ZlcmxhcFJlZ2lvbik7CisgICAgfSBlbHNlIHsKKyAgICAgICAgVHJhbnNmb3JtYXRpb25N
YXRyaXggbG9jYWxUcmFuc2Zvcm0gPSBzdXJmYWNlVHJhbnNmb3JtOworICAgICAgICBsb2NhbFRy
YW5zZm9ybS5tdWx0aXBseShhY2N1bXVsYXRlZFJlcGxpY2FUcmFuc2Zvcm0pOworICAgICAgICBp
ZiAoIW1faXMyRFJvb3QpCisgICAgICAgICAgICBsb2NhbFRyYW5zZm9ybS5tdWx0aXBseShtX2xh
eWVyVHJhbnNmb3Jtcy5jb21iaW5lZCk7CisKKyAgICAgICAgYXV0byBjb2xsZWN0UmVjdCA9IFsm
XShjb25zdCBGbG9hdFJlY3QmIHJlY3QsIGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiB0cmFu
c2Zvcm0pIHsKKyAgICAgICAgICAgIEludFJlY3QgdHJhbnNmb3JtZWRSZWN0ID0gZW5jbG9zaW5n
SW50UmVjdCh0cmFuc2Zvcm0ubWFwUmVjdChyZWN0KSk7CisgICAgICAgICAgICB0cmFuc2Zvcm1l
ZFJlY3QuaW50ZXJzZWN0KGRhdGEuY2xpcEJvdW5kcyk7CisgICAgICAgICAgICByZXNvbHZlT3Zl
cmxhcHMoUmVnaW9uKHRyYW5zZm9ybWVkUmVjdCksIGRhdGEub3ZlcmxhcFJlZ2lvbiwgZGF0YS5u
b25PdmVybGFwUmVnaW9uKTsKKyAgICAgICAgfTsKKyAgICAKKyAgICAgICAgY29sbGVjdFJlY3Qo
bGF5ZXJSZWN0KCksIGxvY2FsVHJhbnNmb3JtKTsKKyAgICAgICAgaWYgKG1fc3RhdGUucmVwbGlj
YUxheWVyICYmIGluY2x1ZGVzUmVwbGljYSkgeworICAgICAgICAgICAgVHJhbnNmb3JtYXRpb25N
YXRyaXggbmV3UmVwbGljYVRyYW5zZm9ybSA9IGFjY3VtdWxhdGVkUmVwbGljYVRyYW5zZm9ybTsK
KyAgICAgICAgICAgIG5ld1JlcGxpY2FUcmFuc2Zvcm0ubXVsdGlwbHkocmVwbGljYVRyYW5zZm9y
bSgpKTsKKyAgICAgICAgICAgIGNvbXB1dGVPdmVybGFwUmVnaW9ucyhtb2RlLCBkYXRhLCBzdXJm
YWNlVHJhbnNmb3JtLCBuZXdSZXBsaWNhVHJhbnNmb3JtLCBmYWxzZSk7CisgICAgICAgIH0KKyAg
ICAgICAgaWYgKCFtX3N0YXRlLm1hc2tzVG9Cb3VuZHMgJiYgIW1fc3RhdGUubWFza0xheWVyKSB7
CisgICAgICAgICAgICBpZiAobV9pczJEUm9vdCkKKyAgICAgICAgICAgICAgICBsb2NhbFRyYW5z
Zm9ybS5tdWx0aXBseShtX2xheWVyVHJhbnNmb3Jtcy5jb21iaW5lZCk7CisgICAgICAgICAgICBm
b3IgKGF1dG8qIGNoaWxkIDogbV9jaGlsZHJlbikgeworICAgICAgICAgICAgICAgIGlmIChjaGls
ZC0+c2hvdWxkQmxlbmQoKSkKKyAgICAgICAgICAgICAgICAgICAgY2hpbGQtPmNvbXB1dGVPdmVy
bGFwUmVnaW9ucyhDb21wdXRlT3ZlcmxhcFJlZ2lvbk1vZGU6OlVuaW9uLCBkYXRhLCBzdXJmYWNl
VHJhbnNmb3JtLCBhY2N1bXVsYXRlZFJlcGxpY2FUcmFuc2Zvcm0pOworICAgICAgICAgICAgICAg
IGVsc2UgaWYgKGNoaWxkLT5tX2lzMkRSb290KQorICAgICAgICAgICAgICAgICAgICBjaGlsZC0+
Y29tcHV0ZU92ZXJsYXBSZWdpb25zKG1vZGUsIGRhdGEsIGxvY2FsVHJhbnNmb3JtLCB7IH0pOwor
ICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgY2hpbGQtPmNvbXB1dGVP
dmVybGFwUmVnaW9ucyhtb2RlLCBkYXRhLCBzdXJmYWNlVHJhbnNmb3JtLCBhY2N1bXVsYXRlZFJl
cGxpY2FUcmFuc2Zvcm0pOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorfQogCi0g
ICAgSW50UmVjdCB2aWV3cG9ydEJvdW5kaW5nUmVjdCA9IHRyYW5zZm9ybWVkQm91bmRpbmdCb3go
dHJhbnNmb3JtLCBsb2NhbEJvdW5kaW5nUmVjdCwgZGF0YS5jbGlwQm91bmRzKTsKK3ZvaWQgVGV4
dHVyZU1hcHBlckxheWVyOjpjb21wdXRlTG9jYWxTcGFjZVN1cmZhY2VSZWdpb24oUmVnaW9uJiBy
ZWdpb24pCit7CisgICAgY29sbGVjdExvY2FsU3BhY2VSZWN0cyh7IH0sIHsgfSwgWyZdKGNvbnN0
IEZsb2F0UmVjdCYgcmVjdCwgY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmIHRyYW5zZm9ybSkg
eworICAgICAgICByZWdpb24udW5pdGUoZW5jbG9zaW5nSW50UmVjdCh0cmFuc2Zvcm0ubWFwUmVj
dChyZWN0KSkpOworICAgIH0sIGZhbHNlKTsKK30KIAotICAgIHN3aXRjaCAoZGF0YS5tb2RlKSB7
Ci0gICAgY2FzZSBDb21wdXRlT3ZlcmxhcFJlZ2lvbk1vZGU6OkludGVyc2VjdGlvbjoKLSAgICAg
ICAgcmVzb2x2ZU92ZXJsYXBzKHZpZXdwb3J0Qm91bmRpbmdSZWN0LCBkYXRhLm92ZXJsYXBSZWdp
b24sIGRhdGEubm9uT3ZlcmxhcFJlZ2lvbik7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgQ29t
cHV0ZU92ZXJsYXBSZWdpb25Nb2RlOjpVbmlvbjoKLSAgICBjYXNlIENvbXB1dGVPdmVybGFwUmVn
aW9uTW9kZTo6TWFzazoKLSAgICAgICAgZGF0YS5vdmVybGFwUmVnaW9uLnVuaXRlKHZpZXdwb3J0
Qm91bmRpbmdSZWN0KTsKLSAgICAgICAgYnJlYWs7Cit2b2lkIFRleHR1cmVNYXBwZXJMYXllcjo6
Y29sbGVjdExvY2FsU3BhY2VSZWN0cyhjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgc3VyZmFj
ZVRyYW5zZm9ybSwgY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmIGFjY3VtdWxhdGVkUmVwbGlj
YVRyYW5zZm9ybSwgY29uc3QgRnVuY3Rpb248dm9pZChjb25zdCBGbG9hdFJlY3QmLCBjb25zdCBU
cmFuc2Zvcm1hdGlvbk1hdHJpeCYpPiYgcGFzc2VkQ29sbGVjdFJlY3QsIGJvb2wgaW5jbHVkZXNS
ZXBsaWNhKQoreworICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IGxvY2FsVHJhbnNmb3JtID0gc3Vy
ZmFjZVRyYW5zZm9ybTsKKyAgICBpZiAoIW1faXMyRFJvb3QpIHsKKyAgICAgICAgbG9jYWxUcmFu
c2Zvcm0ubXVsdGlwbHkoYWNjdW11bGF0ZWRSZXBsaWNhVHJhbnNmb3JtKTsKKyAgICAgICAgbG9j
YWxUcmFuc2Zvcm0ubXVsdGlwbHkobV9sYXllclRyYW5zZm9ybXMuY29tYmluZWQpOwogICAgIH0K
IAorICAgIEZ1bmN0aW9uPHZvaWQoY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgVHJhbnNmb3JtYXRp
b25NYXRyaXgmKT4gZXhwYW5kT3V0c2V0c0FuZENvbGxlY3RSZWN0KFsmXShjb25zdCBGbG9hdFJl
Y3QmIHBhc3NlZFJlY3QsIGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiB0cmFuc2Zvcm0pIHsK
KyAgICAgICAgRmxvYXRSZWN0IHJlY3QgPSBwYXNzZWRSZWN0OworICAgICAgICBhdXRvIG91dHNl
dHMgPSBtX2N1cnJlbnRGaWx0ZXJzLm91dHNldHMoKTsKKyAgICAgICAgcmVjdC5tb3ZlKC1vdXRz
ZXRzLmxlZnQoKSwgLW91dHNldHMudG9wKCkpOworICAgICAgICByZWN0LmV4cGFuZChvdXRzZXRz
LmxlZnQoKSArIG91dHNldHMucmlnaHQoKSwgb3V0c2V0cy50b3AoKSArIG91dHNldHMuYm90dG9t
KCkpOworICAgICAgICBwYXNzZWRDb2xsZWN0UmVjdChyZWN0LCB0cmFuc2Zvcm0pOworICAgIH0p
OworCisgICAgYm9vbCBzaG91bGRFeHBhbmQgPSBtX2N1cnJlbnRGaWx0ZXJzLmhhc091dHNldHMo
KSAmJiAhbV9zdGF0ZS5tYXNrc1RvQm91bmRzICYmICFtX3N0YXRlLm1hc2tMYXllcjsKKyAgICBh
dXRvJiBjb2xsZWN0UmVjdCA9IHNob3VsZEV4cGFuZCA/IGV4cGFuZE91dHNldHNBbmRDb2xsZWN0
UmVjdCA6IHBhc3NlZENvbGxlY3RSZWN0OworICAgIGNvbGxlY3RSZWN0KGxheWVyUmVjdCgpLCBs
b2NhbFRyYW5zZm9ybSk7CiAgICAgaWYgKG1fc3RhdGUucmVwbGljYUxheWVyICYmIGluY2x1ZGVz
UmVwbGljYSkgewotICAgICAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBuZXdSZXBsaWNhVHJhbnNm
b3JtKGFjY3VtdWxhdGVkUmVwbGljYVRyYW5zZm9ybSk7CisgICAgICAgIFRyYW5zZm9ybWF0aW9u
TWF0cml4IG5ld1N1cmZhY2VUcmFuc2Zvcm0gPSBzdXJmYWNlVHJhbnNmb3JtOworICAgICAgICBU
cmFuc2Zvcm1hdGlvbk1hdHJpeCBuZXdSZXBsaWNhVHJhbnNmb3JtID0gYWNjdW11bGF0ZWRSZXBs
aWNhVHJhbnNmb3JtOwogICAgICAgICBuZXdSZXBsaWNhVHJhbnNmb3JtLm11bHRpcGx5KHJlcGxp
Y2FUcmFuc2Zvcm0oKSk7Ci0gICAgICAgIGNvbXB1dGVPdmVybGFwUmVnaW9ucyhkYXRhLCBuZXdS
ZXBsaWNhVHJhbnNmb3JtLCBmYWxzZSk7CisgICAgICAgIGlmIChtX2lzMkRSb290KSB7CisgICAg
ICAgICAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBuZXdMb2NhbFRyYW5zZm9ybSA9IGxvY2FsVHJh
bnNmb3JtOworICAgICAgICAgICAgbmV3TG9jYWxUcmFuc2Zvcm0ubXVsdGlwbHkobmV3UmVwbGlj
YVRyYW5zZm9ybSk7CisgICAgICAgICAgICBuZXdMb2NhbFRyYW5zZm9ybS5tdWx0aXBseShtX2xh
eWVyVHJhbnNmb3Jtcy5jb21iaW5lZCk7CisgICAgICAgICAgICBuZXdTdXJmYWNlVHJhbnNmb3Jt
ID0gbmV3TG9jYWxUcmFuc2Zvcm07CisgICAgICAgICAgICBuZXdSZXBsaWNhVHJhbnNmb3JtID0g
eyB9OworICAgICAgICB9CisgICAgICAgIGNvbGxlY3RMb2NhbFNwYWNlUmVjdHMobmV3U3VyZmFj
ZVRyYW5zZm9ybSwgbmV3UmVwbGljYVRyYW5zZm9ybSwgcGFzc2VkQ29sbGVjdFJlY3QsIGZhbHNl
KTsKICAgICB9CiAKLSAgICBpZiAoIW1fc3RhdGUubWFza3NUb0JvdW5kcyAmJiBkYXRhLm1vZGUg
IT0gQ29tcHV0ZU92ZXJsYXBSZWdpb25Nb2RlOjpNYXNrKSB7Ci0gICAgICAgIGZvciAoYXV0byog
Y2hpbGQgOiBtX2NoaWxkcmVuKQotICAgICAgICAgICAgY2hpbGQtPmNvbXB1dGVPdmVybGFwUmVn
aW9ucyhkYXRhLCBhY2N1bXVsYXRlZFJlcGxpY2FUcmFuc2Zvcm0pOworICAgIGlmICghbV9zdGF0
ZS5tYXNrc1RvQm91bmRzICYmICFtX3N0YXRlLm1hc2tMYXllcikgeworICAgICAgICBGdW5jdGlv
bjx2b2lkKGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4Jik+IHRy
YW5zZm9ybUFuZENvbGxlY3RSZWN0KFsmXShjb25zdCBGbG9hdFJlY3QmIHBhc3NlZFJlY3QsIGNv
bnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiB0cmFuc2Zvcm0pIHsKKyAgICAgICAgICAgIEZsb2F0
UmVjdCByZWN0ID0gdHJhbnNmb3JtLm1hcFJlY3QocGFzc2VkUmVjdCk7CisgICAgICAgICAgICBl
eHBhbmRPdXRzZXRzQW5kQ29sbGVjdFJlY3QocmVjdCwgbG9jYWxUcmFuc2Zvcm0pOworICAgICAg
ICB9KTsKKyAgICAgICAgYXV0byogY29sbGVjdFJlY3RGb3JDaGlsZCA9ICZwYXNzZWRDb2xsZWN0
UmVjdDsKKyAgICAgICAgVHJhbnNmb3JtYXRpb25NYXRyaXggbmV3U3VyZmFjZVRyYW5zZm9ybSA9
IHN1cmZhY2VUcmFuc2Zvcm07CisgICAgICAgIGlmIChzaG91bGRFeHBhbmQpIHsKKyAgICAgICAg
ICAgIGNvbGxlY3RSZWN0Rm9yQ2hpbGQgPSAmdHJhbnNmb3JtQW5kQ29sbGVjdFJlY3Q7CisgICAg
ICAgICAgICBuZXdTdXJmYWNlVHJhbnNmb3JtID0geyB9OworICAgICAgICAgICAgQVNTRVJUKGFj
Y3VtdWxhdGVkUmVwbGljYVRyYW5zZm9ybS5pc0lkZW50aXR5KCkpOworICAgICAgICB9CisgICAg
ICAgIGZvciAoYXV0byogY2hpbGQgOiBtX2NoaWxkcmVuKSB7CisgICAgICAgICAgICBpZiAoY2hp
bGQtPm1faXMyRFJvb3QpIHsKKyAgICAgICAgICAgICAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBu
ZXdMb2NhbFRyYW5zZm9ybSA9IGxvY2FsVHJhbnNmb3JtOworICAgICAgICAgICAgICAgIG5ld0xv
Y2FsVHJhbnNmb3JtLm11bHRpcGx5KGFjY3VtdWxhdGVkUmVwbGljYVRyYW5zZm9ybSk7CisgICAg
ICAgICAgICAgICAgbmV3TG9jYWxUcmFuc2Zvcm0ubXVsdGlwbHkoY2hpbGQtPm1fbGF5ZXJUcmFu
c2Zvcm1zLmNvbWJpbmVkKTsKKyAgICAgICAgICAgICAgICBjaGlsZC0+Y29sbGVjdExvY2FsU3Bh
Y2VSZWN0cyhuZXdMb2NhbFRyYW5zZm9ybSwgeyB9LCAqY29sbGVjdFJlY3RGb3JDaGlsZCwgdHJ1
ZSk7CisgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICBjaGlsZC0+Y29sbGVjdExv
Y2FsU3BhY2VSZWN0cyhuZXdTdXJmYWNlVHJhbnNmb3JtLCBhY2N1bXVsYXRlZFJlcGxpY2FUcmFu
c2Zvcm0sICpjb2xsZWN0UmVjdEZvckNoaWxkLCB0cnVlKTsKKyAgICAgICAgfQogICAgIH0KIH0K
IApAQCAtNTcwLDE1ICs2NjcsMTMgQEAgdm9pZCBUZXh0dXJlTWFwcGVyTGF5ZXI6OnBhaW50VXNp
bmdPdmVybGFwUmVnaW9ucyhUZXh0dXJlTWFwcGVyUGFpbnRPcHRpb25zJiBvcHQKIHsKICAgICBS
ZWdpb24gb3ZlcmxhcFJlZ2lvbjsKICAgICBSZWdpb24gbm9uT3ZlcmxhcFJlZ2lvbjsKLSAgICBh
dXRvIG1vZGUgPSBDb21wdXRlT3ZlcmxhcFJlZ2lvbk1vZGU6OkludGVyc2VjdGlvbjsKICAgICBD
b21wdXRlT3ZlcmxhcFJlZ2lvbkRhdGEgZGF0YSB7Ci0gICAgICAgIG1vZGUsCiAgICAgICAgIG9w
dGlvbnMudGV4dHVyZU1hcHBlci5jbGlwQm91bmRzKCksCiAgICAgICAgIG92ZXJsYXBSZWdpb24s
CiAgICAgICAgIG5vbk92ZXJsYXBSZWdpb24KICAgICB9OwogICAgIGRhdGEuY2xpcEJvdW5kcy5t
b3ZlKC1vcHRpb25zLm9mZnNldCk7Ci0gICAgY29tcHV0ZU92ZXJsYXBSZWdpb25zKGRhdGEsIG9w
dGlvbnMudHJhbnNmb3JtKTsKKyAgICBjb21wdXRlT3ZlcmxhcFJlZ2lvbnMoQ29tcHV0ZU92ZXJs
YXBSZWdpb25Nb2RlOjpJbnRlcnNlY3Rpb24sIGRhdGEsIHsgfSwgb3B0aW9ucy50cmFuc2Zvcm0p
OwogICAgIGlmIChvdmVybGFwUmVnaW9uLmlzRW1wdHkoKSkgewogICAgICAgICBwYWludFNlbGZD
aGlsZHJlblJlcGxpY2FGaWx0ZXJBbmRNYXNrKG9wdGlvbnMpOwogICAgICAgICByZXR1cm47CkBA
IC02MjQsMTggKzcxOSwxNSBAQCB2b2lkIFRleHR1cmVNYXBwZXJMYXllcjo6cGFpbnRTZWxmQ2hp
bGRyZW5GaWx0ZXJBbmRNYXNrKFRleHR1cmVNYXBwZXJQYWludE9wdGlvbgogewogICAgIFJlZ2lv
biBvdmVybGFwUmVnaW9uOwogICAgIFJlZ2lvbiBub25PdmVybGFwUmVnaW9uOwotICAgIGF1dG8g
bW9kZSA9IENvbXB1dGVPdmVybGFwUmVnaW9uTW9kZTo6VW5pb247Ci0gICAgaWYgKG1fc3RhdGUu
bWFza0xheWVyIHx8IChvcHRpb25zLnJlcGxpY2FMYXllciA9PSB0aGlzICYmIG1fc3RhdGUucmVw
bGljYUxheWVyLT5tX3N0YXRlLm1hc2tMYXllcikpCi0gICAgICAgIG1vZGUgPSBDb21wdXRlT3Zl
cmxhcFJlZ2lvbk1vZGU6Ok1hc2s7CiAgICAgQ29tcHV0ZU92ZXJsYXBSZWdpb25EYXRhIGRhdGEg
ewotICAgICAgICBtb2RlLAogICAgICAgICBvcHRpb25zLnRleHR1cmVNYXBwZXIuY2xpcEJvdW5k
cygpLAogICAgICAgICBvdmVybGFwUmVnaW9uLAogICAgICAgICBub25PdmVybGFwUmVnaW9uCiAg
ICAgfTsKICAgICBkYXRhLmNsaXBCb3VuZHMubW92ZSgtb3B0aW9ucy5vZmZzZXQpOwotICAgIGNv
bXB1dGVPdmVybGFwUmVnaW9ucyhkYXRhLCBvcHRpb25zLnRyYW5zZm9ybSwgZmFsc2UpOwotICAg
IEFTU0VSVChub25PdmVybGFwUmVnaW9uLmlzRW1wdHkoKSk7CisgICAgY29tcHV0ZU92ZXJsYXBS
ZWdpb25zKENvbXB1dGVPdmVybGFwUmVnaW9uTW9kZTo6VW5pb24sIGRhdGEsIHsgfSwgb3B0aW9u
cy50cmFuc2Zvcm0sIGZhbHNlKTsKKyAgICBBU1NFUlQob3ZlcmxhcFJlZ2lvbi5pc0VtcHR5KCkp
OworICAgIG92ZXJsYXBSZWdpb24gPSBub25PdmVybGFwUmVnaW9uOwogCiAgICAgYXV0byByZWN0
cyA9IG92ZXJsYXBSZWdpb24ucmVjdHMoKTsKICAgICBzdGF0aWMgY29uc3Qgc2l6ZV90IE92ZXJs
YXBSZWdpb25Db25zb2xpZGF0aW9uVGhyZXNob2xkID0gNDsKQEAgLTY2NCwxNSArNzU2LDIyIEBA
IHZvaWQgVGV4dHVyZU1hcHBlckxheWVyOjphcHBseU1hc2soVGV4dHVyZU1hcHBlclBhaW50T3B0
aW9ucyYgb3B0aW9ucykKICAgICBvcHRpb25zLnRleHR1cmVNYXBwZXIuc2V0TWFza01vZGUoZmFs
c2UpOwogfQogCit2b2lkIFRleHR1cmVNYXBwZXJMYXllcjo6cGFpbnRCYWNrZHJvcFJvb3RJbWFn
ZShUZXh0dXJlTWFwcGVyUGFpbnRPcHRpb25zJiBvcHRpb25zKQoreworICAgIEFTU0VSVChvcHRp
b25zLnN1cmZhY2VUcmFuc2Zvcm0uaW52ZXJzZSgpKTsKKyAgICBTZXRGb3JTY29wZSBzY29wZWRU
cmFuc2Zvcm0ob3B0aW9ucy50cmFuc2Zvcm0sICpvcHRpb25zLnN1cmZhY2VUcmFuc2Zvcm0uaW52
ZXJzZSgpKTsKKyAgICBTZXRGb3JTY29wZSBzY29wZWRTdXJmYWNlVHJhbnNmb3JtKG9wdGlvbnMu
c3VyZmFjZVRyYW5zZm9ybSwgVHJhbnNmb3JtYXRpb25NYXRyaXgoKSk7CisgICAgU2V0Rm9yU2Nv
cGUgc2NvcGVkUmVwbGljYUxheWVyKG9wdGlvbnMucmVwbGljYUxheWVyLCBudWxscHRyKTsKKyAg
ICBTZXRGb3JTY29wZSBzY29wZWRCYWNrZHJvcExheWVyKG9wdGlvbnMuYmFja2Ryb3BMYXllciwg
dGhpcyk7CisgICAgcm9vdExheWVyKCkucGFpbnRTZWxmQW5kQ2hpbGRyZW4ob3B0aW9ucyk7Cit9
CisKIHZvaWQgVGV4dHVyZU1hcHBlckxheWVyOjpwYWludEludG9TdXJmYWNlKFRleHR1cmVNYXBw
ZXJQYWludE9wdGlvbnMmIG9wdGlvbnMpCiB7CiAgICAgb3B0aW9ucy50ZXh0dXJlTWFwcGVyLmJp
bmRTdXJmYWNlKG9wdGlvbnMuc3VyZmFjZS5nZXQoKSk7Ci0gICAgaWYgKG1faXNCYWNrZHJvcCkg
ewotICAgICAgICBTZXRGb3JTY29wZSBzY29wZWRUcmFuc2Zvcm0ob3B0aW9ucy50cmFuc2Zvcm0s
IFRyYW5zZm9ybWF0aW9uTWF0cml4KCkpOwotICAgICAgICBTZXRGb3JTY29wZSBzY29wZWRSZXBs
aWNhTGF5ZXIob3B0aW9ucy5yZXBsaWNhTGF5ZXIsIG51bGxwdHIpOwotICAgICAgICBTZXRGb3JT
Y29wZSBzY29wZWRCYWNrZHJvcExheWVyKG9wdGlvbnMuYmFja2Ryb3BMYXllciwgdGhpcyk7Ci0g
ICAgICAgIHJvb3RMYXllcigpLnBhaW50U2VsZkFuZENoaWxkcmVuKG9wdGlvbnMpOwotICAgIH0g
ZWxzZQorICAgIGlmIChtX2lzQmFja2Ryb3ApCisgICAgICAgIHBhaW50QmFja2Ryb3BSb290SW1h
Z2Uob3B0aW9ucyk7CisgICAgZWxzZQogICAgICAgICBwYWludFNlbGZBbmRDaGlsZHJlbihvcHRp
b25zKTsKIAogICAgIGJvb2wgaGFzTWFzayA9ICEhbV9zdGF0ZS5tYXNrTGF5ZXI7CkBAIC03NTQs
NyArODUzLDkgQEAgdm9pZCBUZXh0dXJlTWFwcGVyTGF5ZXI6OnBhaW50UmVjdXJzaXZlKFRleHR1
cmVNYXBwZXJQYWludE9wdGlvbnMmIG9wdGlvbnMpCiAKICAgICBTZXRGb3JTY29wZSBzY29wZWRP
cGFjaXR5KG9wdGlvbnMub3BhY2l0eSwgb3B0aW9ucy5vcGFjaXR5ICogbV9jdXJyZW50T3BhY2l0
eSk7CiAKLSAgICBpZiAobV9zdGF0ZS5wcmVzZXJ2ZXMzRCkKKyAgICBpZiAobV9pczJEUm9vdCkK
KyAgICAgICAgcGFpbnQyRFJvb3Qob3B0aW9ucyk7CisgICAgZWxzZSBpZiAobV9pczNEUm9vdCkK
ICAgICAgICAgcGFpbnRXaXRoM0RSZW5kZXJpbmdDb250ZXh0KG9wdGlvbnMpOwogICAgIGVsc2Ug
aWYgKHNob3VsZEJsZW5kKCkpCiAgICAgICAgIHBhaW50VXNpbmdPdmVybGFwUmVnaW9ucyhvcHRp
b25zKTsKQEAgLTc2MiwyNSArODYzLDg0IEBAIHZvaWQgVGV4dHVyZU1hcHBlckxheWVyOjpwYWlu
dFJlY3Vyc2l2ZShUZXh0dXJlTWFwcGVyUGFpbnRPcHRpb25zJiBvcHRpb25zKQogICAgICAgICBw
YWludFNlbGZDaGlsZHJlblJlcGxpY2FGaWx0ZXJBbmRNYXNrKG9wdGlvbnMpOwogfQogCi12b2lk
IFRleHR1cmVNYXBwZXJMYXllcjo6cGFpbnRXaXRoM0RSZW5kZXJpbmdDb250ZXh0KFRleHR1cmVN
YXBwZXJQYWludE9wdGlvbnMmIG9wdGlvbnMpCit2b2lkIFRleHR1cmVNYXBwZXJMYXllcjo6cGFp
bnQyRFJvb3QoVGV4dHVyZU1hcHBlclBhaW50T3B0aW9ucyYgb3B0aW9ucykKIHsKLSAgICBpZiAo
b3B0aW9ucy5wcmVzZXJ2ZXMzRCkgewotICAgICAgICBwYWludFNlbGZBbmRDaGlsZHJlbldpdGhS
ZXBsaWNhKG9wdGlvbnMpOworICAgIGF1dG8gaW52ZXJzZWRUcmFuc2Zvcm0gPSBtX2xheWVyVHJh
bnNmb3Jtcy5jb21iaW5lZC5pbnZlcnNlKCk7CisgICAgaWYgKCFpbnZlcnNlZFRyYW5zZm9ybSkK
ICAgICAgICAgcmV0dXJuOworICAgIGF1dG8gY2xpcEJvdW5kcyA9IG9wdGlvbnMudGV4dHVyZU1h
cHBlci5jbGlwQm91bmRzKCk7CisgICAgY2xpcEJvdW5kcy5tb3ZlKC1vcHRpb25zLm9mZnNldCk7
CisgICAgYXV0byBwcm9qZWN0ZWRDbGlwQm91bmRzID0gaW52ZXJzZWRUcmFuc2Zvcm0tPnByb2pl
Y3RRdWFkKEZsb2F0UmVjdCB7IGNsaXBCb3VuZHMgfSkuZW5jbG9zaW5nQm91bmRpbmdCb3goKTsK
KworICAgIFJlZ2lvbiBvdmVybGFwUmVnaW9uOworICAgIFJlZ2lvbiBub25PdmVybGFwUmVnaW9u
OworICAgIENvbXB1dGVPdmVybGFwUmVnaW9uRGF0YSBkYXRhIHsKKyAgICAgICAgcHJvamVjdGVk
Q2xpcEJvdW5kcywKKyAgICAgICAgb3ZlcmxhcFJlZ2lvbiwKKyAgICAgICAgbm9uT3ZlcmxhcFJl
Z2lvbgorICAgIH07CisgICAgY29tcHV0ZU92ZXJsYXBSZWdpb25zKENvbXB1dGVPdmVybGFwUmVn
aW9uTW9kZTo6VW5pb24sIGRhdGEsIHsgfSwgb3B0aW9ucy50cmFuc2Zvcm0sIGZhbHNlKTsKKyAg
ICBBU1NFUlQob3ZlcmxhcFJlZ2lvbi5pc0VtcHR5KCkpOworICAgIG92ZXJsYXBSZWdpb24gPSBu
b25PdmVybGFwUmVnaW9uOworCisgICAgYXV0byByZWN0cyA9IG92ZXJsYXBSZWdpb24ucmVjdHMo
KTsKKyAgICBzdGF0aWMgY29uc3Qgc2l6ZV90IE92ZXJsYXBSZWdpb25Db25zb2xpZGF0aW9uVGhy
ZXNob2xkID0gNDsKKyAgICBpZiAocmVjdHMuc2l6ZSgpID4gT3ZlcmxhcFJlZ2lvbkNvbnNvbGlk
YXRpb25UaHJlc2hvbGQpIHsKKyAgICAgICAgcmVjdHMuY2xlYXIoKTsKKyAgICAgICAgcmVjdHMu
YXBwZW5kKG92ZXJsYXBSZWdpb24uYm91bmRzKCkpOwogICAgIH0KLSAgICBTZXRGb3JTY29wZSBz
Y29wZWRQcmVzZXJ2ZXMzRChvcHRpb25zLnByZXNlcnZlczNELCB0cnVlKTsKKworICAgIEludFNp
emUgbWF4VGV4dHVyZVNpemUgPSBvcHRpb25zLnRleHR1cmVNYXBwZXIubWF4VGV4dHVyZVNpemUo
KTsKKyAgICBmb3IgKGF1dG8mIHJlY3QgOiByZWN0cykgeworICAgICAgICBmb3IgKGludCB4ID0g
cmVjdC54KCk7IHggPCByZWN0Lm1heFgoKTsgeCArPSBtYXhUZXh0dXJlU2l6ZS53aWR0aCgpKSB7
CisgICAgICAgICAgICBmb3IgKGludCB5ID0gcmVjdC55KCk7IHkgPCByZWN0Lm1heFkoKTsgeSAr
PSBtYXhUZXh0dXJlU2l6ZS5oZWlnaHQoKSkgeworICAgICAgICAgICAgICAgIEludFJlY3QgdGls
ZVJlY3QoSW50UG9pbnQoeCwgeSksIG1heFRleHR1cmVTaXplKTsKKyAgICAgICAgICAgICAgICB0
aWxlUmVjdC5pbnRlcnNlY3QocmVjdCk7CisgICAgICAgICAgICAgICAgYXV0byBzdXJmYWNlID0g
b3B0aW9ucy50ZXh0dXJlTWFwcGVyLmFjcXVpcmVUZXh0dXJlRnJvbVBvb2wodGlsZVJlY3Quc2l6
ZSgpLCBCaXRtYXBUZXh0dXJlOjpTdXBwb3J0c0FscGhhKTsKKyAgICAgICAgICAgICAgICB7Cisg
ICAgICAgICAgICAgICAgICAgIFNldEZvclNjb3BlIHNjb3BlZFN1cmZhY2Uob3B0aW9ucy5zdXJm
YWNlLCBzdXJmYWNlKTsKKyAgICAgICAgICAgICAgICAgICAgU2V0Rm9yU2NvcGUgc2NvcGVkU3Vy
ZmFjZVRyYW5zZm9ybShvcHRpb25zLnN1cmZhY2VUcmFuc2Zvcm0sIG9wdGlvbnMuc3VyZmFjZVRy
YW5zZm9ybSk7CisgICAgICAgICAgICAgICAgICAgIG9wdGlvbnMuc3VyZmFjZVRyYW5zZm9ybS50
cmFuc2xhdGUocmVjdC5sb2NhdGlvbigpLngoKSwgcmVjdC5sb2NhdGlvbigpLnkoKSk7CisgICAg
ICAgICAgICAgICAgICAgIG9wdGlvbnMuc3VyZmFjZVRyYW5zZm9ybS5tdWx0aXBseShvcHRpb25z
LnRyYW5zZm9ybSk7CisgICAgICAgICAgICAgICAgICAgIG9wdGlvbnMuc3VyZmFjZVRyYW5zZm9y
bS5tdWx0aXBseShtX2xheWVyVHJhbnNmb3Jtcy5jb21iaW5lZCk7CisgICAgICAgICAgICAgICAg
ICAgIFNldEZvclNjb3BlIHNjb3BlZE9mZnNldChvcHRpb25zLm9mZnNldCwgLXRvSW50U2l6ZSh0
aWxlUmVjdC5sb2NhdGlvbigpKSk7CisgICAgICAgICAgICAgICAgICAgIFNldEZvclNjb3BlIHNj
b3BlZE9wYWNpdHkob3B0aW9ucy5vcGFjaXR5LCAxKTsKKyAgICAgICAgICAgICAgICAgICAgU2V0
Rm9yU2NvcGUgc2NvcGVkVHJhbnNmb3JtKG9wdGlvbnMudHJhbnNmb3JtLCBUcmFuc2Zvcm1hdGlv
bk1hdHJpeCgpKTsKKworICAgICAgICAgICAgICAgICAgICBvcHRpb25zLnRleHR1cmVNYXBwZXIu
YmluZFN1cmZhY2Uob3B0aW9ucy5zdXJmYWNlLmdldCgpKTsKKyAgICAgICAgICAgICAgICAgICAg
cGFpbnRTZWxmQW5kQ2hpbGRyZW5XaXRoUmVwbGljYShvcHRpb25zKTsKKyAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICAgICAgVHJhbnNmb3JtYXRpb25NYXRyaXggdHJhbnNmb3JtOworICAg
ICAgICAgICAgICAgIHRyYW5zZm9ybS50cmFuc2xhdGUob3B0aW9ucy5vZmZzZXQud2lkdGgoKSwg
b3B0aW9ucy5vZmZzZXQuaGVpZ2h0KCkpOworICAgICAgICAgICAgICAgIHRyYW5zZm9ybS5tdWx0
aXBseShvcHRpb25zLnRyYW5zZm9ybSk7CisgICAgICAgICAgICAgICAgdHJhbnNmb3JtLm11bHRp
cGx5KG1fbGF5ZXJUcmFuc2Zvcm1zLmNvbWJpbmVkKTsKKworICAgICAgICAgICAgICAgIG9wdGlv
bnMudGV4dHVyZU1hcHBlci5iaW5kU3VyZmFjZShvcHRpb25zLnN1cmZhY2UuZ2V0KCkpOworICAg
ICAgICAgICAgICAgIG9wdGlvbnMudGV4dHVyZU1hcHBlci5kcmF3VGV4dHVyZSgqc3VyZmFjZSwg
dGlsZVJlY3QsIHRyYW5zZm9ybSwgb3B0aW9ucy5vcGFjaXR5KTsKKyAgICAgICAgICAgIH0KKyAg
ICAgICAgfQorICAgIH0KK30KKwordm9pZCBUZXh0dXJlTWFwcGVyTGF5ZXI6OnBhaW50V2l0aDNE
UmVuZGVyaW5nQ29udGV4dChUZXh0dXJlTWFwcGVyUGFpbnRPcHRpb25zJiBvcHRpb25zKQorewor
ICAgIGF1dG8gaW52ZXJzZWRUcmFuc2Zvcm0gPSBtX3BhcmVudC0+bV9sYXllclRyYW5zZm9ybXMu
Y29tYmluZWQuaW52ZXJzZSgpOworICAgIGlmICghaW52ZXJzZWRUcmFuc2Zvcm0pCisgICAgICAg
IHJldHVybjsKKyAgICBhdXRvIGNsaXBCb3VuZHMgPSBvcHRpb25zLnRleHR1cmVNYXBwZXIuY2xp
cEJvdW5kcygpOworICAgIGNsaXBCb3VuZHMubW92ZSgtb3B0aW9ucy5vZmZzZXQpOworICAgIGF1
dG8gcHJvamVjdGVkQ2xpcEJvdW5kcyA9IGludmVyc2VkVHJhbnNmb3JtLT5wcm9qZWN0UXVhZChG
bG9hdFJlY3QgeyBjbGlwQm91bmRzIH0pLmVuY2xvc2luZ0JvdW5kaW5nQm94KCk7CiAKICAgICBS
ZWdpb24gb3ZlcmxhcFJlZ2lvbjsKICAgICBSZWdpb24gbm9uT3ZlcmxhcFJlZ2lvbjsKICAgICBD
b21wdXRlT3ZlcmxhcFJlZ2lvbkRhdGEgZGF0YSB7Ci0gICAgICAgIENvbXB1dGVPdmVybGFwUmVn
aW9uTW9kZTo6VW5pb24sCi0gICAgICAgIG9wdGlvbnMudGV4dHVyZU1hcHBlci5jbGlwQm91bmRz
KCksCisgICAgICAgIHByb2plY3RlZENsaXBCb3VuZHMsCiAgICAgICAgIG92ZXJsYXBSZWdpb24s
CiAgICAgICAgIG5vbk92ZXJsYXBSZWdpb24KICAgICB9OwotICAgIGRhdGEuY2xpcEJvdW5kcy5t
b3ZlKC1vcHRpb25zLm9mZnNldCk7Ci0gICAgY29tcHV0ZU92ZXJsYXBSZWdpb25zKGRhdGEsIG9w
dGlvbnMudHJhbnNmb3JtLCBmYWxzZSk7Ci0gICAgQVNTRVJUKG5vbk92ZXJsYXBSZWdpb24uaXNF
bXB0eSgpKTsKKyAgICBjb21wdXRlT3ZlcmxhcFJlZ2lvbnMoQ29tcHV0ZU92ZXJsYXBSZWdpb25N
b2RlOjpVbmlvbiwgZGF0YSwgeyB9LCBvcHRpb25zLnRyYW5zZm9ybSwgZmFsc2UpOworICAgIEFT
U0VSVChvdmVybGFwUmVnaW9uLmlzRW1wdHkoKSk7CisgICAgb3ZlcmxhcFJlZ2lvbiA9IG5vbk92
ZXJsYXBSZWdpb247CiAKICAgICBhdXRvIHJlY3RzID0gb3ZlcmxhcFJlZ2lvbi5yZWN0cygpOwog
ICAgIHN0YXRpYyBjb25zdCBzaXplX3QgT3ZlcmxhcFJlZ2lvbkNvbnNvbGlkYXRpb25UaHJlc2hv
bGQgPSA0OwpAQCAtNzk4LDEzICs5NTgsMjQgQEAgdm9pZCBUZXh0dXJlTWFwcGVyTGF5ZXI6OnBh
aW50V2l0aDNEUmVuZGVyaW5nQ29udGV4dChUZXh0dXJlTWFwcGVyUGFpbnRPcHRpb25zJgogICAg
ICAgICAgICAgICAgIGF1dG8gc3VyZmFjZSA9IG9wdGlvbnMudGV4dHVyZU1hcHBlci5hY3F1aXJl
VGV4dHVyZUZyb21Qb29sKHRpbGVSZWN0LnNpemUoKSwgQml0bWFwVGV4dHVyZTo6U3VwcG9ydHNB
bHBoYSB8IEJpdG1hcFRleHR1cmU6OkRlcHRoQnVmZmVyKTsKICAgICAgICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICAgICAgIFNldEZvclNjb3BlIHNjb3BlZFN1cmZhY2Uob3B0aW9ucy5zdXJm
YWNlLCBzdXJmYWNlKTsKKyAgICAgICAgICAgICAgICAgICAgU2V0Rm9yU2NvcGUgc2NvcGVkU3Vy
ZmFjZVRyYW5zZm9ybShvcHRpb25zLnN1cmZhY2VUcmFuc2Zvcm0sIG9wdGlvbnMuc3VyZmFjZVRy
YW5zZm9ybSk7CisgICAgICAgICAgICAgICAgICAgIG9wdGlvbnMuc3VyZmFjZVRyYW5zZm9ybS50
cmFuc2xhdGUocmVjdC5sb2NhdGlvbigpLngoKSwgcmVjdC5sb2NhdGlvbigpLnkoKSk7CisgICAg
ICAgICAgICAgICAgICAgIG9wdGlvbnMuc3VyZmFjZVRyYW5zZm9ybS5tdWx0aXBseShvcHRpb25z
LnRyYW5zZm9ybSk7CisgICAgICAgICAgICAgICAgICAgIG9wdGlvbnMuc3VyZmFjZVRyYW5zZm9y
bS5tdWx0aXBseShtX3BhcmVudC0+bV9sYXllclRyYW5zZm9ybXMuY29tYmluZWQpOwogICAgICAg
ICAgICAgICAgICAgICBTZXRGb3JTY29wZSBzY29wZWRPZmZzZXQob3B0aW9ucy5vZmZzZXQsIC10
b0ludFNpemUodGlsZVJlY3QubG9jYXRpb24oKSkpOwogICAgICAgICAgICAgICAgICAgICBTZXRG
b3JTY29wZSBzY29wZWRPcGFjaXR5KG9wdGlvbnMub3BhY2l0eSwgMSk7CisgICAgICAgICAgICAg
ICAgICAgIFNldEZvclNjb3BlIHNjb3BlZFRyYW5zZm9ybShvcHRpb25zLnRyYW5zZm9ybSwgVHJh
bnNmb3JtYXRpb25NYXRyaXgoKSk7CiAKICAgICAgICAgICAgICAgICAgICAgb3B0aW9ucy50ZXh0
dXJlTWFwcGVyLmJpbmRTdXJmYWNlKG9wdGlvbnMuc3VyZmFjZS5nZXQoKSk7CiAgICAgICAgICAg
ICAgICAgICAgIHBhaW50U2VsZkFuZENoaWxkcmVuV2l0aFJlcGxpY2Eob3B0aW9ucyk7CiAgICAg
ICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGNvbW1pdFN1cmZhY2Uob3B0aW9ucywgKnN1
cmZhY2UsIHRpbGVSZWN0LCBvcHRpb25zLm9wYWNpdHkpOworICAgICAgICAgICAgICAgIFRyYW5z
Zm9ybWF0aW9uTWF0cml4IHRyYW5zZm9ybTsKKyAgICAgICAgICAgICAgICB0cmFuc2Zvcm0udHJh
bnNsYXRlKG9wdGlvbnMub2Zmc2V0LndpZHRoKCksIG9wdGlvbnMub2Zmc2V0LmhlaWdodCgpKTsK
KyAgICAgICAgICAgICAgICB0cmFuc2Zvcm0ubXVsdGlwbHkob3B0aW9ucy50cmFuc2Zvcm0pOwor
ICAgICAgICAgICAgICAgIHRyYW5zZm9ybS5tdWx0aXBseShtX3BhcmVudC0+bV9sYXllclRyYW5z
Zm9ybXMuY29tYmluZWQpOworCisgICAgICAgICAgICAgICAgb3B0aW9ucy50ZXh0dXJlTWFwcGVy
LmJpbmRTdXJmYWNlKG9wdGlvbnMuc3VyZmFjZS5nZXQoKSk7CisgICAgICAgICAgICAgICAgb3B0
aW9ucy50ZXh0dXJlTWFwcGVyLmRyYXdUZXh0dXJlKCpzdXJmYWNlLCB0aWxlUmVjdCwgdHJhbnNm
b3JtLCBvcHRpb25zLm9wYWNpdHkpOwogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1
cmVNYXBwZXJMYXllci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFw
L1RleHR1cmVNYXBwZXJMYXllci5oCmluZGV4IGU4N2YxMWM4ZTFmNS4uN2EyYzk0Y2VmNTQ2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVy
ZU1hcHBlckxheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4
bWFwL1RleHR1cmVNYXBwZXJMYXllci5oCkBAIC0xMjYsMjAgKzEyNiwyMiBAQCBwcml2YXRlOgog
ICAgIGVudW0gY2xhc3MgQ29tcHV0ZU92ZXJsYXBSZWdpb25Nb2RlIDogdWludDhfdCB7CiAgICAg
ICAgIEludGVyc2VjdGlvbiwKICAgICAgICAgVW5pb24sCi0gICAgICAgIE1hc2sKICAgICB9Owog
ICAgIHN0cnVjdCBDb21wdXRlT3ZlcmxhcFJlZ2lvbkRhdGEgewotICAgICAgICBDb21wdXRlT3Zl
cmxhcFJlZ2lvbk1vZGUgbW9kZTsKICAgICAgICAgSW50UmVjdCBjbGlwQm91bmRzOwogICAgICAg
ICBSZWdpb24mIG92ZXJsYXBSZWdpb247CiAgICAgICAgIFJlZ2lvbiYgbm9uT3ZlcmxhcFJlZ2lv
bjsKICAgICB9OwotICAgIHZvaWQgY29tcHV0ZU92ZXJsYXBSZWdpb25zKENvbXB1dGVPdmVybGFw
UmVnaW9uRGF0YSYsIGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiwgYm9vbCBpbmNsdWRlc1Jl
cGxpY2EgPSB0cnVlKTsKKyAgICB2b2lkIGNvbXB1dGVPdmVybGFwUmVnaW9ucyhDb21wdXRlT3Zl
cmxhcFJlZ2lvbk1vZGUsIENvbXB1dGVPdmVybGFwUmVnaW9uRGF0YSYsIGNvbnN0IFRyYW5zZm9y
bWF0aW9uTWF0cml4JiwgY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmLCBib29sIGluY2x1ZGVz
UmVwbGljYSA9IHRydWUpOworICAgIHZvaWQgY29tcHV0ZUxvY2FsU3BhY2VTdXJmYWNlUmVnaW9u
KFJlZ2lvbiYpOworICAgIHZvaWQgY29sbGVjdExvY2FsU3BhY2VSZWN0cyhjb25zdCBUcmFuc2Zv
cm1hdGlvbk1hdHJpeCYsIGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiwgY29uc3QgRnVuY3Rp
b248dm9pZChjb25zdCBGbG9hdFJlY3QmLCBjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYpPiYs
IGJvb2wgaW5jbHVkZXNSZXBsaWNhKTsKIAogICAgIHZvaWQgcGFpbnRSZWN1cnNpdmUoVGV4dHVy
ZU1hcHBlclBhaW50T3B0aW9ucyYpOworICAgIHZvaWQgcGFpbnQyRFJvb3QoVGV4dHVyZU1hcHBl
clBhaW50T3B0aW9ucyYpOwogICAgIHZvaWQgcGFpbnRXaXRoM0RSZW5kZXJpbmdDb250ZXh0KFRl
eHR1cmVNYXBwZXJQYWludE9wdGlvbnMmKTsKICAgICB2b2lkIHBhaW50U2VsZkNoaWxkcmVuUmVw
bGljYUZpbHRlckFuZE1hc2soVGV4dHVyZU1hcHBlclBhaW50T3B0aW9ucyYpOwogICAgIHZvaWQg
cGFpbnRVc2luZ092ZXJsYXBSZWdpb25zKFRleHR1cmVNYXBwZXJQYWludE9wdGlvbnMmKTsKKyAg
ICB2b2lkIHBhaW50QmFja2Ryb3BSb290SW1hZ2UoVGV4dHVyZU1hcHBlclBhaW50T3B0aW9ucyYp
OwogICAgIHZvaWQgcGFpbnRJbnRvU3VyZmFjZShUZXh0dXJlTWFwcGVyUGFpbnRPcHRpb25zJik7
CiAgICAgdm9pZCBwYWludFdpdGhJbnRlcm1lZGlhdGVTdXJmYWNlKFRleHR1cmVNYXBwZXJQYWlu
dE9wdGlvbnMmLCBjb25zdCBJbnRSZWN0Jik7CiAgICAgdm9pZCBwYWludFNlbGZBbmRDaGlsZHJl
bldpdGhJbnRlcm1lZGlhdGVTdXJmYWNlKFRleHR1cmVNYXBwZXJQYWludE9wdGlvbnMmLCBjb25z
dCBJbnRSZWN0Jik7CkBAIC0yMjgsNiArMjMwLDggQEAgcHJpdmF0ZToKICNlbmRpZgogICAgIGJv
b2wgbV9pc0JhY2tkcm9wIHsgZmFsc2UgfTsKICAgICBib29sIG1faXNSZXBsaWNhIHsgZmFsc2Ug
fTsKKyAgICBib29sIG1faXMyRFJvb3QgeyBmYWxzZSB9OworICAgIGJvb2wgbV9pczNEUm9vdCB7
IGZhbHNlIH07CiAKICAgICBzdHJ1Y3QgewogICAgICAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBs
b2NhbFRyYW5zZm9ybTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>