<?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>189108</bug_id>
          
          <creation_ts>2018-08-29 16:12:06 -0700</creation_ts>
          <short_desc>[WHSL] Need grammar to specify kernel group size</short_desc>
          <delta_ts>2018-10-13 14:58:53 -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>WebGPU</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>176199</blocked>
    
    <blocked>189202</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Myles C. Maxfield">mmaxfield</reporter>
          <assigned_to name="Myles C. Maxfield">mmaxfield</assigned_to>
          <cc>dino</cc>
    
    <cc>jonlee</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1454976</commentid>
    <comment_count>0</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2018-08-29 16:12:06 -0700</bug_when>
    <thetext>https://github.com/Microsoft/DirectX-Graphics-Samples/blob/8f68bf07dfd134df3b90e83a63535d053bae9a8a/Libraries/D3D12RaytracingFallback/src/FallbackLayerUnitTests/DynamicIndexTest.hlsl

Compute shader entry points need to have something like the following before their declaration:
[numthreads( 8, 8, 1 )]</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1454978</commentid>
    <comment_count>1</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2018-08-29 16:13:44 -0700</bug_when>
    <thetext>https://docs.microsoft.com/en-us/windows/desktop/direct3dhlsl/d3d11-graphics-reference-sm5-attributes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1459213</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-09-12 18:51:02 -0700</bug_when>
    <thetext>&lt;rdar://problem/44403004&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1462413</commentid>
    <comment_count>3</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2018-09-22 14:05:55 -0700</bug_when>
    <thetext>*** Bug 189384 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1462422</commentid>
    <comment_count>4</comment_count>
      <attachid>350534</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2018-09-22 15:17:26 -0700</bug_when>
    <thetext>Created attachment 350534
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1462447</commentid>
    <comment_count>5</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2018-09-22 16:49:42 -0700</bug_when>
    <thetext>Committed r236390: &lt;https://trac.webkit.org/changeset/236390&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1468864</commentid>
    <comment_count>6</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2018-10-13 14:58:53 -0700</bug_when>
    <thetext>Migrated to https://github.com/gpuweb/WHLSL/issues/66</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>350534</attachid>
            <date>2018-09-22 15:17:26 -0700</date>
            <delta_ts>2018-09-22 16:03:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-189108-20180923071725.patch</filename>
            <type>text/plain</type>
            <size>22419</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM2Mzg2CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMWIzZjhlOGY1OWNkZGQ2MGI1ZTBiNTNjNGI5NWE1NWQz
OGQ4YTc5MS4uOWE2NDE5NmE4MjY4NjE4ZGJmZjI3NzNlYzc1NDY2OThkNDRkNDJlZSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5
IEBACisyMDE4LTA5LTIyICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+
CisKKyAgICAgICAgW1dIU0xdIE5lZWQgZ3JhbW1hciB0byBzcGVjaWZ5IGtlcm5lbCBncm91cCBz
aXplCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODkx
MDgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbiBI
TFNMLCBjb21wdXRlIGZ1bmN0aW9ucyBhcmUgYW5ub3RhdGVkIHdpdGggdGhlaXIgd29ya2dyb3Vw
IHNpemUuCisgICAgICAgIEZvciBleGFtcGxlLAorCisgICAgICAgIFtudW10aHJlYWRzKDMsIDQs
IDUpXSBjb21wdXRlIHZvaWQgZm9vKC4uLikgeyAuLi4gfQorCisgICAgICAgICogV2ViR1BVU2hh
ZGluZ0xhbmd1YWdlUkkvQWxsLmpzOgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJ
L0Z1bmMuanM6CisgICAgICAgIChGdW5jKToKKyAgICAgICAgKEZ1bmMucHJvdG90eXBlLmdldCBh
dHRyaWJ1dGVCbG9jayk6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvRnVuY0F0
dHJpYnV0ZS5qczogQ29waWVkIGZyb20gVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvRnVu
Y0RlZi5qcy4KKyAgICAgICAgKEZ1bmNBdHRyaWJ1dGUpOgorICAgICAgICAqIFdlYkdQVVNoYWRp
bmdMYW5ndWFnZVJJL0Z1bmNEZWYuanM6CisgICAgICAgIChGdW5jRGVmKToKKyAgICAgICAgKiBX
ZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9GdW5jTnVtVGhyZWFkc0F0dHJpYnV0ZS5qczogQ29waWVk
IGZyb20gVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvRnVuY0RlZi5qcy4KKyAgICAgICAg
KEZ1bmNOdW1UaHJlYWRzQXR0cmlidXRlKToKKyAgICAgICAgKEZ1bmNOdW1UaHJlYWRzQXR0cmli
dXRlLnByb3RvdHlwZS5nZXQgeCk6CisgICAgICAgIChGdW5jTnVtVGhyZWFkc0F0dHJpYnV0ZS5w
cm90b3R5cGUuZ2V0IHkpOgorICAgICAgICAoRnVuY051bVRocmVhZHNBdHRyaWJ1dGUucHJvdG90
eXBlLmdldCB6KToKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9MYXRlQ2hlY2tl
ci5qczoKKyAgICAgICAgKExhdGVDaGVja2VyLnByb3RvdHlwZS5fY2hlY2tTaGFkZXJUeXBlKToK
KyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9QYXJzZS5qczoKKyAgICAgICAgKHBh
cnNlQXR0cmlidXRlQmxvY2spOgorICAgICAgICAocGFyc2VGdW5jRGVjbCk6CisgICAgICAgIChw
YXJzZUZ1bmNEZWYpOgorICAgICAgICAocGFyc2VOYXRpdmVGdW5jKToKKyAgICAgICAgKiBXZWJH
UFVTaGFkaW5nTGFuZ3VhZ2VSSS9TUElSVi5odG1sOgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdM
YW5ndWFnZVJJL1N0YXRlbWVudENsb25lci5qczoKKyAgICAgICAgKFN0YXRlbWVudENsb25lci5w
cm90b3R5cGUudmlzaXRGdW5jRGVmKToKKyAgICAgICAgKFN0YXRlbWVudENsb25lci5wcm90b3R5
cGUudmlzaXRGdW5jTnVtVGhyZWFkc0F0dHJpYnV0ZSk6CisgICAgICAgIChTdGF0ZW1lbnRDbG9u
ZXIpOgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Rlc3QuaHRtbDoKKyAgICAg
ICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXN0LmpzOgorICAgICAgICAodGVzdHMubnVt
VGhyZWFkcyk6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVmlzaXRvci5qczoK
KyAgICAgICAgKFZpc2l0b3IucHJvdG90eXBlLnZpc2l0RnVuYyk6CisgICAgICAgIChWaXNpdG9y
LnByb3RvdHlwZS52aXNpdEZ1bmNOdW1UaHJlYWRzQXR0cmlidXRlKToKKyAgICAgICAgKFZpc2l0
b3IpOgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL2luZGV4Lmh0bWw6CisKIDIw
MTgtMDktMjIgIFRoaWJhdWx0IFNhdW5pZXIgIDx0c2F1bmllckBpZ2FsaWEuY29tPgogCiAgICAg
ICAgIFtXUEVdIEJlIHZlcnkgcGVybWlzc2l2ZSBpbiB0aGUgTWluaUJyb3dzZXIuCmRpZmYgLS1n
aXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9BbGwuanMgYi9Ub29scy9XZWJHUFVT
aGFkaW5nTGFuZ3VhZ2VSSS9BbGwuanMKaW5kZXggZTI5MTBkNzlkNmMyMzU5Yjc2MzE2MTk4MDMx
NmFmZjA5NDIyNzBmMy4uNGRiZWViODI0MTg1Mzc5ZTcwNTYzYWZhNGU2YTdlYzJiY2U0YTFjYiAx
MDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQWxsLmpzCisrKyBiL1Rv
b2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0FsbC5qcwpAQCAtOTAsNyArOTAsOSBAQCBsb2Fk
KCJGbG9hdExpdGVyYWxUeXBlLmpzIik7CiBsb2FkKCJGb2xkQ29uc3RleHBycy5qcyIpOwogbG9h
ZCgiRm9yTG9vcC5qcyIpOwogbG9hZCgiRnVuYy5qcyIpOworbG9hZCgiRnVuY0F0dHJpYnV0ZS5q
cyIpOwogbG9hZCgiRnVuY0RlZi5qcyIpOworbG9hZCgiRnVuY051bVRocmVhZHNBdHRyaWJ1dGUu
anMiKTsKIGxvYWQoIkZ1bmNQYXJhbWV0ZXIuanMiKTsKIGxvYWQoIkZ1bmN0aW9uTGlrZUJsb2Nr
LmpzIik7CiBsb2FkKCJIaWdoWm9tYmllRmluZGVyLmpzIik7CmRpZmYgLS1naXQgYS9Ub29scy9X
ZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9GdW5jLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvRnVuYy5qcwppbmRleCA0ZjU4OTA2MDdiMWEyOTE3MTgyMzRhZmEzZDZlMDY2ZjFkOTkw
NWQ1Li41NmIxZDJjYzc4Y2ZhMDUzYmU3YzkxYjc4YjBlN2E2Yzk5OTdlMzI4IDEwMDY0NAotLS0g
YS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9GdW5jLmpzCisrKyBiL1Rvb2xzL1dlYkdQ
VVNoYWRpbmdMYW5ndWFnZVJJL0Z1bmMuanMKQEAgLTI1LDcgKzI1LDcgQEAKICJ1c2Ugc3RyaWN0
IjsKIAogY2xhc3MgRnVuYyBleHRlbmRzIE5vZGUgewotICAgIGNvbnN0cnVjdG9yKG9yaWdpbiwg
bmFtZSwgcmV0dXJuVHlwZSwgcGFyYW1ldGVycywgaXNDYXN0LCBzaGFkZXJUeXBlKQorICAgIGNv
bnN0cnVjdG9yKG9yaWdpbiwgbmFtZSwgcmV0dXJuVHlwZSwgcGFyYW1ldGVycywgaXNDYXN0LCBz
aGFkZXJUeXBlLCBhdHRyaWJ1dGVCbG9jayA9IG51bGwpCiAgICAgewogICAgICAgICBpZiAoIShv
cmlnaW4gaW5zdGFuY2VvZiBMZXhlclRva2VuKSkKICAgICAgICAgICAgIHRocm93IG5ldyBFcnJv
cigiQmFkIG9yaWdpbjogIiArIG9yaWdpbik7CkBAIC00Miw2ICs0Miw3IEBAIGNsYXNzIEZ1bmMg
ZXh0ZW5kcyBOb2RlIHsKICAgICAgICAgdGhpcy5fcGFyYW1ldGVycyA9IHBhcmFtZXRlcnM7CiAg
ICAgICAgIHRoaXMuX2lzQ2FzdCA9IGlzQ2FzdDsKICAgICAgICAgdGhpcy5fc2hhZGVyVHlwZSA9
IHNoYWRlclR5cGU7CisgICAgICAgIHRoaXMuX2F0dHJpYnV0ZUJsb2NrID0gYXR0cmlidXRlQmxv
Y2s7CiAgICAgfQogICAgIAogICAgIGdldCBvcmlnaW4oKSB7IHJldHVybiB0aGlzLl9vcmlnaW47
IH0KQEAgLTUxLDYgKzUyLDcgQEAgY2xhc3MgRnVuYyBleHRlbmRzIE5vZGUgewogICAgIGdldCBw
YXJhbWV0ZXJUeXBlcygpIHsgcmV0dXJuIHRoaXMucGFyYW1ldGVycy5tYXAocGFyYW1ldGVyID0+
IHBhcmFtZXRlci50eXBlKTsgfQogICAgIGdldCBpc0Nhc3QoKSB7IHJldHVybiB0aGlzLl9pc0Nh
c3Q7IH0KICAgICBnZXQgc2hhZGVyVHlwZSgpIHsgcmV0dXJuIHRoaXMuX3NoYWRlclR5cGU7IH0K
KyAgICBnZXQgYXR0cmlidXRlQmxvY2soKSB7IHJldHVybiB0aGlzLl9hdHRyaWJ1dGVCbG9jazsg
fQogICAgIGdldCBpc0VudHJ5UG9pbnQoKSB7IHJldHVybiB0aGlzLnNoYWRlclR5cGUgIT0gbnVs
bDsgfQogICAgIGdldCByZXR1cm5UeXBlRm9yT3ZlcmxvYWRSZXNvbHV0aW9uKCkgeyByZXR1cm4g
dGhpcy5pc0Nhc3QgPyB0aGlzLnJldHVyblR5cGUgOiBudWxsOyB9CiAgICAgCmRpZmYgLS1naXQg
YS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9GdW5jQXR0cmlidXRlLmpzIGIvVG9vbHMv
V2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvRnVuY0F0dHJpYnV0ZS5qcwpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lMmUy
NjdlODkzYzY4MWQyNWEzYThlMDI4ODU5MWUwNDc5NTUwMjU3Ci0tLSAvZGV2L251bGwKKysrIGIv
VG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvRnVuY0F0dHJpYnV0ZS5qcwpAQCAtMCwwICsx
LDI5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
CisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKyJ1c2Ug
c3RyaWN0IjsKKworY2xhc3MgRnVuY0F0dHJpYnV0ZSBleHRlbmRzIE5vZGUgeworfQorCmRpZmYg
LS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9GdW5jRGVmLmpzIGIvVG9vbHMv
V2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvRnVuY0RlZi5qcwppbmRleCAzMDE2YjEzMjU5MTdkZDcy
ZWFhN2RlZDg1YTZlYjI3ZTU4MDI5OGFjLi5jMmQxMWYzMjYzY2MyMDNiZDcyYzMwZmMxM2RiYzE4
NGFiOWQzNjQ1IDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9GdW5j
RGVmLmpzCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0Z1bmNEZWYuanMKQEAg
LTI1LDkgKzI1LDkgQEAKICJ1c2Ugc3RyaWN0IjsKIAogY2xhc3MgRnVuY0RlZiBleHRlbmRzIEZ1
bmMgewotICAgIGNvbnN0cnVjdG9yKG9yaWdpbiwgbmFtZSwgcmV0dXJuVHlwZSwgcGFyYW1ldGVy
cywgYm9keSwgaXNDYXN0LCBzaGFkZXJUeXBlKQorICAgIGNvbnN0cnVjdG9yKG9yaWdpbiwgbmFt
ZSwgcmV0dXJuVHlwZSwgcGFyYW1ldGVycywgYm9keSwgaXNDYXN0LCBzaGFkZXJUeXBlLCBhdHRy
aWJ1dGVCbG9jayA9IG51bGwpCiAgICAgewotICAgICAgICBzdXBlcihvcmlnaW4sIG5hbWUsIHJl
dHVyblR5cGUsIHBhcmFtZXRlcnMsIGlzQ2FzdCwgc2hhZGVyVHlwZSk7CisgICAgICAgIHN1cGVy
KG9yaWdpbiwgbmFtZSwgcmV0dXJuVHlwZSwgcGFyYW1ldGVycywgaXNDYXN0LCBzaGFkZXJUeXBl
LCBhdHRyaWJ1dGVCbG9jayk7CiAgICAgICAgIHRoaXMuX2JvZHkgPSBib2R5OwogICAgICAgICB0
aGlzLmlzUmVzdHJpY3RlZCA9IGZhbHNlOwogICAgIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQ
VVNoYWRpbmdMYW5ndWFnZVJJL0Z1bmNOdW1UaHJlYWRzQXR0cmlidXRlLmpzIGIvVG9vbHMvV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvRnVuY051bVRocmVhZHNBdHRyaWJ1dGUuanMKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNmFiZTM0NDA3NDdhZWMzYjAwYmQ3OWQ0ODQ5ZmQ1YWIzZTc1ZWE1NAotLS0gL2Rldi9udWxs
CisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0Z1bmNOdW1UaHJlYWRzQXR0cmli
dXRlLmpzCkBAIC0wLDAgKzEsNDAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUK
KyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworInVzZSBzdHJpY3QiOworCitjbGFzcyBGdW5jTnVtVGhyZWFkc0F0dHJpYnV0
ZSBleHRlbmRzIEZ1bmNBdHRyaWJ1dGUgeworICAgIGNvbnN0cnVjdG9yKHgsIHksIHopCisgICAg
eworICAgICAgICBzdXBlcigpOworICAgICAgICB0aGlzLl94ID0geDsKKyAgICAgICAgdGhpcy5f
eSA9IHk7CisgICAgICAgIHRoaXMuX3ogPSB6OworICAgIH0KKworICAgIGdldCB4KCkgeyByZXR1
cm4gdGhpcy5feDsgfQorICAgIGdldCB5KCkgeyByZXR1cm4gdGhpcy5feTsgfQorICAgIGdldCB6
KCkgeyByZXR1cm4gdGhpcy5fejsgfQorfQorCmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFk
aW5nTGFuZ3VhZ2VSSS9MYXRlQ2hlY2tlci5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFn
ZVJJL0xhdGVDaGVja2VyLmpzCmluZGV4IGViNWVlNjk2OWMxZDkzMzYzYWUxNTY1YzE3ZGNjYzBh
YWIwYTFiYzMuLmViMWNlOTE0YTc5MDM5ZWZmOTMwMTM0ODczODc0ZWEyNDQ4YzliYmIgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0xhdGVDaGVja2VyLmpzCisrKyBi
L1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0xhdGVDaGVja2VyLmpzCkBAIC03MCw2ICs3
MCw4IEBAIGNsYXNzIExhdGVDaGVja2VyIGV4dGVuZHMgVmlzaXRvciB7CiAgICAgICAgICAgICAg
ICAgfQogICAgICAgICAgICAgfQogICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgImNv
bXB1dGUiOgorICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgInRlc3QiOgogICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgIGRlZmF1bHQ6CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVT
aGFkaW5nTGFuZ3VhZ2VSSS9QYXJzZS5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJ
L1BhcnNlLmpzCmluZGV4IDdkMTM4MWYyZTNjNWEzMGFkMWUzZDk3ZjYyMzU0N2JjZThiMDQ1ZTYu
LjNkZjZkMjE4NGNkMDJhZjBmMzFkZTQ2ZmNiYTI0Y2I3ZGE4MDc4MGMgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1BhcnNlLmpzCisrKyBiL1Rvb2xzL1dlYkdQVVNo
YWRpbmdMYW5ndWFnZVJJL1BhcnNlLmpzCkBAIC0xMTU1LDYgKzExNTUsNTAgQEAgZnVuY3Rpb24g
cGFyc2UocHJvZ3JhbSwgb3JpZ2luLCBvcmlnaW5LaW5kLCBsaW5lTnVtYmVyT2Zmc2V0LCB0ZXh0
KQogICAgICAgICByZXR1cm4gbWF5YmVFcnJvci50ZXh0OwogICAgIH0KIAorICAgIGZ1bmN0aW9u
IHBhcnNlQXR0cmlidXRlQmxvY2soKQorICAgIHsKKyAgICAgICAgbGV0IG1heWJlRXJyb3IgPSBj
b25zdW1lKCJbIik7CisgICAgICAgIGlmIChtYXliZUVycm9yIGluc3RhbmNlb2YgV1N5bnRheEVy
cm9yKQorICAgICAgICAgICAgcmV0dXJuIG1heWJlRXJyb3I7CisgICAgICAgIG1heWJlRXJyb3Ig
PSBjb25zdW1lKCJudW10aHJlYWRzIik7CisgICAgICAgIGlmIChtYXliZUVycm9yIGluc3RhbmNl
b2YgV1N5bnRheEVycm9yKQorICAgICAgICAgICAgcmV0dXJuIG1heWJlRXJyb3I7CisgICAgICAg
IG1heWJlRXJyb3IgPSBjb25zdW1lKCIoIik7CisgICAgICAgIGlmIChtYXliZUVycm9yIGluc3Rh
bmNlb2YgV1N5bnRheEVycm9yKQorICAgICAgICAgICAgcmV0dXJuIG1heWJlRXJyb3I7CisgICAg
ICAgIGxldCB4RGltZW5zaW9uID0gY29uc3VtZUtpbmQoImludExpdGVyYWwiKTsKKyAgICAgICAg
aWYgKHhEaW1lbnNpb24gaW5zdGFuY2VvZiBXU3ludGF4RXJyb3IpCisgICAgICAgICAgICByZXR1
cm4geERpbWVuc2lvbjsKKyAgICAgICAgbGV0IHhEaW1lbnNpb25VaW50VmVyc2lvbiA9IHhEaW1l
bnNpb24udGV4dCA+Pj4gMDsKKyAgICAgICAgaWYgKHhEaW1lbnNpb25VaW50VmVyc2lvbi50b1N0
cmluZygpICE9PSB4RGltZW5zaW9uLnRleHQpCisgICAgICAgICAgICByZXR1cm4gZmFpbCgiTnVt
dGhyZWFkcyBYIGF0dHJpYnV0ZSBpcyBub3QgMzItYml0IHVuc2lnbmVkIGludGVnZXI6ICIgKyB4
RGltZW5zaW9uLnRleHQpOworICAgICAgICBtYXliZUVycm9yID0gY29uc3VtZSgiLCIpOworICAg
ICAgICBpZiAobWF5YmVFcnJvciBpbnN0YW5jZW9mIFdTeW50YXhFcnJvcikKKyAgICAgICAgICAg
IHJldHVybiBtYXliZUVycm9yOworICAgICAgICBsZXQgeURpbWVuc2lvbiA9IGNvbnN1bWVLaW5k
KCJpbnRMaXRlcmFsIik7CisgICAgICAgIGlmICh5RGltZW5zaW9uIGluc3RhbmNlb2YgV1N5bnRh
eEVycm9yKQorICAgICAgICAgICAgcmV0dXJuIHlEaW1lbnNpb247CisgICAgICAgIGxldCB5RGlt
ZW5zaW9uVWludFZlcnNpb24gPSB5RGltZW5zaW9uLnRleHQgPj4+IDA7CisgICAgICAgIGlmICh5
RGltZW5zaW9uVWludFZlcnNpb24udG9TdHJpbmcoKSAhPT0geURpbWVuc2lvbi50ZXh0KQorICAg
ICAgICAgICAgcmV0dXJuIGZhaWwoIk51bXRocmVhZHMgWSBhdHRyaWJ1dGUgaXMgbm90IDMyLWJp
dCB1bnNpZ25lZCBpbnRlZ2VyOiAiICsgeURpbWVuc2lvbi50ZXh0KTsKKyAgICAgICAgbWF5YmVF
cnJvciA9IGNvbnN1bWUoIiwiKTsKKyAgICAgICAgaWYgKG1heWJlRXJyb3IgaW5zdGFuY2VvZiBX
U3ludGF4RXJyb3IpCisgICAgICAgICAgICByZXR1cm4gbWF5YmVFcnJvcjsKKyAgICAgICAgbGV0
IHpEaW1lbnNpb24gPSBjb25zdW1lS2luZCgiaW50TGl0ZXJhbCIpOworICAgICAgICBpZiAoekRp
bWVuc2lvbiBpbnN0YW5jZW9mIFdTeW50YXhFcnJvcikKKyAgICAgICAgICAgIHJldHVybiB6RGlt
ZW5zaW9uOworICAgICAgICBsZXQgekRpbWVuc2lvblVpbnRWZXJzaW9uID0gekRpbWVuc2lvbi50
ZXh0ID4+PiAwOworICAgICAgICBpZiAoekRpbWVuc2lvblVpbnRWZXJzaW9uLnRvU3RyaW5nKCkg
IT09IHpEaW1lbnNpb24udGV4dCkKKyAgICAgICAgICAgIHJldHVybiBmYWlsKCJOdW10aHJlYWRz
IFogYXR0cmlidXRlIGlzIG5vdCAzMi1iaXQgdW5zaWduZWQgaW50ZWdlcjogIiArIHpEaW1lbnNp
b24udGV4dCk7CisgICAgICAgIG1heWJlRXJyb3IgPSBjb25zdW1lKCIpIik7CisgICAgICAgIGlm
IChtYXliZUVycm9yIGluc3RhbmNlb2YgV1N5bnRheEVycm9yKQorICAgICAgICAgICAgcmV0dXJu
IG1heWJlRXJyb3I7CisgICAgICAgIG1heWJlRXJyb3IgPSBjb25zdW1lKCJdIik7CisgICAgICAg
IGlmIChtYXliZUVycm9yIGluc3RhbmNlb2YgV1N5bnRheEVycm9yKQorICAgICAgICAgICAgcmV0
dXJuIG1heWJlRXJyb3I7CisgICAgICAgIHJldHVybiBbbmV3IEZ1bmNOdW1UaHJlYWRzQXR0cmli
dXRlKHhEaW1lbnNpb25VaW50VmVyc2lvbiwgeURpbWVuc2lvblVpbnRWZXJzaW9uLCB6RGltZW5z
aW9uVWludFZlcnNpb24pXTsKKyAgICB9CisKICAgICBmdW5jdGlvbiBwYXJzZUZ1bmNEZWNsKCkK
ICAgICB7CiAgICAgICAgIGxldCBvcmlnaW47CkBAIC0xMTYyLDYgKzEyMDYsNyBAQCBmdW5jdGlv
biBwYXJzZShwcm9ncmFtLCBvcmlnaW4sIG9yaWdpbktpbmQsIGxpbmVOdW1iZXJPZmZzZXQsIHRl
eHQpCiAgICAgICAgIGxldCBuYW1lOwogICAgICAgICBsZXQgaXNDYXN0OwogICAgICAgICBsZXQg
c2hhZGVyVHlwZTsKKyAgICAgICAgbGV0IGF0dHJpYnV0ZUJsb2NrID0gbnVsbDsKICAgICAgICAg
bGV0IG9wZXJhdG9yVG9rZW4gPSB0cnlDb25zdW1lKCJvcGVyYXRvciIpOwogICAgICAgICBpZiAo
b3BlcmF0b3JUb2tlbikgewogICAgICAgICAgICAgb3JpZ2luID0gb3BlcmF0b3JUb2tlbjsKQEAg
LTExNzEsNyArMTIxNiwxNSBAQCBmdW5jdGlvbiBwYXJzZShwcm9ncmFtLCBvcmlnaW4sIG9yaWdp
bktpbmQsIGxpbmVOdW1iZXJPZmZzZXQsIHRleHQpCiAgICAgICAgICAgICBuYW1lID0gIm9wZXJh
dG9yIGNhc3QiOwogICAgICAgICAgICAgaXNDYXN0ID0gdHJ1ZTsKICAgICAgICAgfSBlbHNlIHsK
LSAgICAgICAgICAgIHNoYWRlclR5cGUgPSB0cnlDb25zdW1lKCJ2ZXJ0ZXgiLCAiZnJhZ21lbnQi
LCAidGVzdCIpOworICAgICAgICAgICAgaWYgKHRlc3QoIlsiKSkgeworICAgICAgICAgICAgICAg
IGF0dHJpYnV0ZUJsb2NrID0gcGFyc2VBdHRyaWJ1dGVCbG9jaygpOworICAgICAgICAgICAgICAg
IGlmIChhdHRyaWJ1dGVCbG9jayBpbnN0YW5jZW9mIFdTeW50YXhFcnJvcikKKyAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIGF0dHJpYnV0ZUJsb2NrOworICAgICAgICAgICAgICAgIHNoYWRlclR5
cGUgPSBjb25zdW1lKCJjb21wdXRlIik7CisgICAgICAgICAgICAgICAgaWYgKHNoYWRlclR5cGUg
aW5zdGFuY2VvZiBXU3ludGF4RXJyb3IpCisgICAgICAgICAgICAgICAgICAgIHJldHVybiBzaGFk
ZXJUeXBlOworICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgc2hhZGVyVHlwZSA9
IHRyeUNvbnN1bWUoInZlcnRleCIsICJmcmFnbWVudCIsICJ0ZXN0Iik7CiAgICAgICAgICAgICBy
ZXR1cm5UeXBlID0gcGFyc2VUeXBlKCk7CiAgICAgICAgICAgICBpZiAocmV0dXJuVHlwZSBpbnN0
YW5jZW9mIFdTeW50YXhFcnJvcikKICAgICAgICAgICAgICAgICByZXR1cm4gcmV0dXJuVHlwZTsK
QEAgLTExODgsNyArMTI0MSw3IEBAIGZ1bmN0aW9uIHBhcnNlKHByb2dyYW0sIG9yaWdpbiwgb3Jp
Z2luS2luZCwgbGluZU51bWJlck9mZnNldCwgdGV4dCkKICAgICAgICAgbGV0IHBhcmFtZXRlcnMg
PSBwYXJzZVBhcmFtZXRlcnMoKTsKICAgICAgICAgaWYgKHBhcmFtZXRlcnMgaW5zdGFuY2VvZiBX
U3ludGF4RXJyb3IpCiAgICAgICAgICAgICByZXR1cm4gcGFyYW1ldGVyczsKLSAgICAgICAgcmV0
dXJuIG5ldyBGdW5jKG9yaWdpbiwgbmFtZSwgcmV0dXJuVHlwZSwgcGFyYW1ldGVycywgaXNDYXN0
LCBzaGFkZXJUeXBlKTsKKyAgICAgICAgcmV0dXJuIG5ldyBGdW5jKG9yaWdpbiwgbmFtZSwgcmV0
dXJuVHlwZSwgcGFyYW1ldGVycywgaXNDYXN0LCBzaGFkZXJUeXBlLCBhdHRyaWJ1dGVCbG9jayk7
CiAgICAgfQogCiAgICAgZnVuY3Rpb24gcGFyc2VGdW5jRGVmKCkKQEAgLTExOTksNyArMTI1Miw3
IEBAIGZ1bmN0aW9uIHBhcnNlKHByb2dyYW0sIG9yaWdpbiwgb3JpZ2luS2luZCwgbGluZU51bWJl
ck9mZnNldCwgdGV4dCkKICAgICAgICAgbGV0IGJvZHkgPSBwYXJzZUJsb2NrKCk7CiAgICAgICAg
IGlmIChib2R5IGluc3RhbmNlb2YgV1N5bnRheEVycm9yKQogICAgICAgICAgICAgcmV0dXJuIGJv
ZHk7Ci0gICAgICAgIHJldHVybiBuZXcgRnVuY0RlZihmdW5jLm9yaWdpbiwgZnVuYy5uYW1lLCBm
dW5jLnJldHVyblR5cGUsIGZ1bmMucGFyYW1ldGVycywgYm9keSwgZnVuYy5pc0Nhc3QsIGZ1bmMu
c2hhZGVyVHlwZSk7CisgICAgICAgIHJldHVybiBuZXcgRnVuY0RlZihmdW5jLm9yaWdpbiwgZnVu
Yy5uYW1lLCBmdW5jLnJldHVyblR5cGUsIGZ1bmMucGFyYW1ldGVycywgYm9keSwgZnVuYy5pc0Nh
c3QsIGZ1bmMuc2hhZGVyVHlwZSwgZnVuYy5hdHRyaWJ1dGVCbG9jayk7CiAgICAgfQogCiAgICAg
ZnVuY3Rpb24gcGFyc2VGaWVsZCgpCkBAIC0xMjQyLDYgKzEyOTUsOCBAQCBmdW5jdGlvbiBwYXJz
ZShwcm9ncmFtLCBvcmlnaW4sIG9yaWdpbktpbmQsIGxpbmVOdW1iZXJPZmZzZXQsIHRleHQpCiAg
ICAgICAgIGxldCBmdW5jID0gcGFyc2VGdW5jRGVjbCgpOwogICAgICAgICBpZiAoZnVuYyBpbnN0
YW5jZW9mIFdTeW50YXhFcnJvcikKICAgICAgICAgICAgIHJldHVybiBmdW5jOworICAgICAgICBp
ZiAoZnVuYy5hdHRyaWJ1dGVCbG9jaykKKyAgICAgICAgICAgIHJldHVybiBmYWlsKCJOYXRpdmUg
ZnVuY3Rpb24gbXVzdCBub3QgaGF2ZSBhdHRyaWJ1dGUgYmxvY2siKTsKICAgICAgICAgbGV0IG1h
eWJlRXJyb3IgPSBjb25zdW1lKCI7Iik7CiAgICAgICAgIGlmIChtYXliZUVycm9yIGluc3RhbmNl
b2YgV1N5bnRheEVycm9yKQogICAgICAgICAgICAgcmV0dXJuIG1heWJlRXJyb3I7CmRpZmYgLS1n
aXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TUElSVi5odG1sIGIvVG9vbHMvV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvU1BJUlYuaHRtbAppbmRleCA4OTE4NjcxMWZmNWMwMTBmNTcy
MGUxNjg4ZmYzY2E1ZGZkZWUyNGVhLi4wYTA5YmEwNWNkNGYwNTg3OTU2N2I4ODNiNTQ3YWEzODE4
OGU4NWVkIDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TUElSVi5o
dG1sCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1NQSVJWLmh0bWwKQEAgLTcz
LDcgKzczLDkgQEAgdGQgewogICAgIDxzY3JpcHQgc3JjPSJGb2xkQ29uc3RleHBycy5qcyI+PC9z
Y3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IkZvckxvb3AuanMiPjwvc2NyaXB0PgogICAgIDxzY3Jp
cHQgc3JjPSJGdW5jLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iRnVuY0F0dHJpYnV0
ZS5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IkZ1bmNEZWYuanMiPjwvc2NyaXB0Pgor
ICAgIDxzY3JpcHQgc3JjPSJGdW5jTnVtVGhyZWFkc0F0dHJpYnV0ZS5qcyI+PC9zY3JpcHQ+CiAg
ICAgPHNjcmlwdCBzcmM9IkZ1bmNQYXJhbWV0ZXIuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQg
c3JjPSJGdW5jdGlvbkxpa2VCbG9jay5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ikhp
Z2hab21iaWVGaW5kZXIuanMiPjwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hh
ZGluZ0xhbmd1YWdlUkkvU3RhdGVtZW50Q2xvbmVyLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvU3RhdGVtZW50Q2xvbmVyLmpzCmluZGV4IDBkMDcxNWE5ODU0ZGVmMWJmZDJhODA4
Yzc0MDQxMTJiYTFhNGEwYzEuLjQ3MmU3YWMzYTUwZjk0ZjJkYjJiOTFjOWEwNGNmNjdhZDM0Y2Zm
NzMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1N0YXRlbWVudENs
b25lci5qcworKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TdGF0ZW1lbnRDbG9u
ZXIuanMKQEAgLTI3LDEyICsyNywxNSBAQAogY2xhc3MgU3RhdGVtZW50Q2xvbmVyIGV4dGVuZHMg
UmV3cml0ZXIgewogICAgIHZpc2l0RnVuY0RlZihub2RlKQogICAgIHsKKyAgICAgICAgbGV0IGF0
dHJpYnV0ZUJsb2NrID0gbnVsbDsKKyAgICAgICAgaWYgKG5vZGUuYXR0cmlidXRlQmxvY2spCisg
ICAgICAgICAgICBhdHRyaWJ1dGVCbG9jayA9IG5vZGUuYXR0cmlidXRlQmxvY2subWFwKGF0dHJp
YnV0ZSA9PiBhdHRyaWJ1dGUudmlzaXQodGhpcykpOwogICAgICAgICBsZXQgcmVzdWx0ID0gbmV3
IEZ1bmNEZWYoCiAgICAgICAgICAgICBub2RlLm9yaWdpbiwgbm9kZS5uYW1lLAogICAgICAgICAg
ICAgbm9kZS5yZXR1cm5UeXBlLnZpc2l0KHRoaXMpLAogICAgICAgICAgICAgbm9kZS5wYXJhbWV0
ZXJzLm1hcChwYXJhbWV0ZXIgPT4gcGFyYW1ldGVyLnZpc2l0KHRoaXMpKSwKICAgICAgICAgICAg
IG5vZGUuYm9keS52aXNpdCh0aGlzKSwKLSAgICAgICAgICAgIG5vZGUuaXNDYXN0LCBub2RlLnNo
YWRlclR5cGUpOworICAgICAgICAgICAgbm9kZS5pc0Nhc3QsIG5vZGUuc2hhZGVyVHlwZSwgYXR0
cmlidXRlQmxvY2spOwogICAgICAgICByZXN1bHQuaXNSZXN0cmljdGVkID0gbm9kZS5pc1Jlc3Ry
aWN0ZWQ7CiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgfQpAQCAtNzgsNSArODEsMTAgQEAg
Y2xhc3MgU3RhdGVtZW50Q2xvbmVyIGV4dGVuZHMgUmV3cml0ZXIgewogICAgICAgICAgICAgcmVz
dWx0LmFkZChtZW1iZXIpOwogICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0KKworICAgIHZp
c2l0RnVuY051bVRocmVhZHNBdHRyaWJ1dGUobm9kZSkKKyAgICB7CisgICAgICAgIHJldHVybiBu
ZXcgRnVuY051bVRocmVhZHNBdHRyaWJ1dGUobm9kZS54LCBub2RlLnksIG5vZGUueik7CisgICAg
fQogfQogCmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXN0Lmh0
bWwgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXN0Lmh0bWwKaW5kZXggOThlMzg1
MWYxNjk5YWE2Y2U2OGJmZDVhYjg0NjFhZTk3ZGVlZDFjMS4uYTMwMGRhY2Y1MTljMzYwNDk3N2I4
MTVjOTQxZTNlZjg4ZDU5MmVjYiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvVGVzdC5odG1sCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Rlc3Qu
aHRtbApAQCAtNjcsNyArNjcsOSBAQAogPHNjcmlwdCBzcmM9IkZvbGRDb25zdGV4cHJzLmpzIj48
L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJGb3JMb29wLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3Jj
PSJGdW5jLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJGdW5jQXR0cmlidXRlLmpzIj48L3Nj
cmlwdD4KIDxzY3JpcHQgc3JjPSJGdW5jRGVmLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJG
dW5jTnVtVGhyZWFkc0F0dHJpYnV0ZS5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iRnVuY1Bh
cmFtZXRlci5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iRnVuY3Rpb25MaWtlQmxvY2suanMi
Pjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IkhpZ2hab21iaWVGaW5kZXIuanMiPjwvc2NyaXB0Pgpk
aWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVGVzdC5qcyBiL1Rvb2xz
L1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Rlc3QuanMKaW5kZXggYmY5ZjU1ZTMxNTM3ODRiNmQw
MDc0YmUxYjlhOTE0OGJhMmU0MjQ5ZS4uOTk5OTA5MTQ2ZGVkYzc3YjQ5ZDE2OTZjYTZjZGIzNDM2
MDgyNDM5ZSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVGVzdC5q
cworKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXN0LmpzCkBAIC02MDY0LDYg
KzYwNjQsMTIwIEBAIHRlc3RzLmFycmF5SW5kZXggPSBmdW5jdGlvbigpIHsKICAgICBjaGVja0lu
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImFycmF5SW5kZXhpbmciLCBbIG1ha2VV
aW50KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCAyKSBdKSwgNik7CiB9CiAKK3Rlc3Rz
Lm51bVRocmVhZHMgPSBmdW5jdGlvbigpIHsKKyAgICBsZXQgcHJvZ3JhbSA9IGRvUHJlcChgCisg
ICAgICAgIFtudW10aHJlYWRzKDMsIDQsIDUpXQorICAgICAgICBjb21wdXRlIHZvaWQgZm9vKCkg
eworICAgICAgICB9CisKKyAgICAgICAgW251bXRocmVhZHMoNiwgNywgOCldCisgICAgICAgIGNv
bXB1dGUgdm9pZCBiYXIoKSB7CisgICAgICAgIH0KKworICAgICAgICBbbnVtdGhyZWFkcyg5LCAx
MCwgMTEpXQorICAgICAgICBjb21wdXRlIHZvaWQgYmFyKGRldmljZSBmbG9hdFtdIGJ1ZmZlcikg
eworICAgICAgICB9CisKKyAgICAgICAgc3RydWN0IFIgeworICAgICAgICAgICAgZmxvYXQ0IHBv
c2l0aW9uOworICAgICAgICB9CisgICAgICAgIHZlcnRleCBSIGJheigpIHsKKyAgICAgICAgICAg
IFIgcjsKKyAgICAgICAgICAgIHIucG9zaXRpb24gPSBmbG9hdDQoMSwgMiwgMywgNCk7CisgICAg
ICAgICAgICByZXR1cm4gcjsKKyAgICAgICAgfQorICAgIGApOworCisgICAgaWYgKHByb2dyYW0u
ZnVuY3Rpb25zLmdldCgiZm9vIikubGVuZ3RoICE9IDEpCisgICAgICAgIHRocm93IG5ldyBFcnJv
cigiQ2Fubm90IGZpbmQgZnVuY3Rpb24gbmFtZWQgJ2ZvbyciKTsKKyAgICBsZXQgZm9vID0gcHJv
Z3JhbS5mdW5jdGlvbnMuZ2V0KCJmb28iKVswXTsKKyAgICBpZiAoZm9vLmF0dHJpYnV0ZUJsb2Nr
Lmxlbmd0aCAhPSAxKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIidmb28nIGRvZXNuJ3QgaGF2
ZSBudW10aHJlYWRzIGF0dHJpYnV0ZSIpOworICAgIGlmIChmb28uYXR0cmlidXRlQmxvY2tbMF0u
eCAhPSAzKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIidmb28nIG51bXRocmVhZHMgeCBpcyBu
b3QgMyIpOworICAgIGlmIChmb28uYXR0cmlidXRlQmxvY2tbMF0ueSAhPSA0KQorICAgICAgICB0
aHJvdyBuZXcgRXJyb3IoIidmb28nIG51bXRocmVhZHMgeSBpcyBub3QgNCIpOworICAgIGlmIChm
b28uYXR0cmlidXRlQmxvY2tbMF0ueiAhPSA1KQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIidm
b28nIG51bXRocmVhZHMgeiBpcyBub3QgNSIpOworCisgICAgaWYgKHByb2dyYW0uZnVuY3Rpb25z
LmdldCgiYmFyIikubGVuZ3RoICE9IDIpCisgICAgICAgIHRocm93IG5ldyBFcnJvcigiQ2Fubm90
IGZpbmQgZnVuY3Rpb24gbmFtZWQgJ2JhciciKTsKKyAgICBsZXQgYmFyMSA9IG51bGw7CisgICAg
bGV0IGJhcjIgPSBudWxsOworICAgIGZvciAobGV0IGJhciBvZiBwcm9ncmFtLmZ1bmN0aW9ucy5n
ZXQoImJhciIpKSB7CisgICAgICAgIGlmIChiYXIucGFyYW1ldGVycy5sZW5ndGggPT0gMCkKKyAg
ICAgICAgICAgIGJhcjEgPSBiYXI7CisgICAgICAgIGVsc2UgaWYgKGJhci5wYXJhbWV0ZXJzLmxl
bmd0aCA9PSAxKQorICAgICAgICAgICAgYmFyMiA9IGJhcjsKKyAgICAgICAgZWxzZQorICAgICAg
ICAgICAgdGhyb3cgbmV3IEVycm9yKCJVbmV4cGVjdGVkICdiYXInIGZ1bmN0aW9uLiIpOworICAg
IH0KKyAgICBpZiAoIWJhcjEpCisgICAgICAgIHRocm93IG5ldyBFcnJvcigiQ291bGQgbm90IGZp
bmQgYXBwcm9wcmlhdGUgJ2JhcicgZnVuY3Rpb24iKTsKKyAgICBpZiAoIWJhcjIpCisgICAgICAg
IHRocm93IG5ldyBFcnJvcigiQ291bGQgbm90IGZpbmQgYXBwcm9wcmlhdGUgJ2JhcicgZnVuY3Rp
b24iKTsKKworICAgIGlmIChiYXIxLmF0dHJpYnV0ZUJsb2NrLmxlbmd0aCAhPSAxKQorICAgICAg
ICB0aHJvdyBuZXcgRXJyb3IoIidiYXIxJyBkb2Vzbid0IGhhdmUgbnVtdGhyZWFkcyBhdHRyaWJ1
dGUiKTsKKyAgICBpZiAoYmFyMS5hdHRyaWJ1dGVCbG9ja1swXS54ICE9IDYpCisgICAgICAgIHRo
cm93IG5ldyBFcnJvcigiJ2JhcjEnIG51bXRocmVhZHMgeCBpcyBub3QgNiIpOworICAgIGlmIChi
YXIxLmF0dHJpYnV0ZUJsb2NrWzBdLnkgIT0gNykKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCIn
YmFyMScgbnVtdGhyZWFkcyB5IGlzIG5vdCA3Iik7CisgICAgaWYgKGJhcjEuYXR0cmlidXRlQmxv
Y2tbMF0ueiAhPSA4KQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIidiYXIxJyBudW10aHJlYWRz
IHogaXMgbm90IDgiKTsKKworICAgIGlmIChiYXIyLmF0dHJpYnV0ZUJsb2NrLmxlbmd0aCAhPSAx
KQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIidiYXIyJyBkb2Vzbid0IGhhdmUgbnVtdGhyZWFk
cyBhdHRyaWJ1dGUiKTsKKyAgICBpZiAoYmFyMi5hdHRyaWJ1dGVCbG9ja1swXS54ICE9IDkpCisg
ICAgICAgIHRocm93IG5ldyBFcnJvcigiJ2JhcjInIG51bXRocmVhZHMgeCBpcyBub3QgOSIpOwor
ICAgIGlmIChiYXIyLmF0dHJpYnV0ZUJsb2NrWzBdLnkgIT0gMTApCisgICAgICAgIHRocm93IG5l
dyBFcnJvcigiJ2JhcjInIG51bXRocmVhZHMgeSBpcyBub3QgMTAiKTsKKyAgICBpZiAoYmFyMi5h
dHRyaWJ1dGVCbG9ja1swXS56ICE9IDExKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIidiYXIy
JyBudW10aHJlYWRzIHogaXMgbm90IDExIik7CisKKyAgICBpZiAocHJvZ3JhbS5mdW5jdGlvbnMu
Z2V0KCJiYXoiKS5sZW5ndGggIT0gMSkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJDYW5ub3Qg
ZmluZCBmdW5jdGlvbiBuYW1lZCAnYmF6JyIpOworICAgIGxldCBiYXogPSBwcm9ncmFtLmZ1bmN0
aW9ucy5nZXQoImJheiIpWzBdOworICAgIGlmIChiYXouYXR0cmlidXRlQmxvY2sgIT0gbnVsbCkK
KyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCInYmF6JyBoYXMgYXR0cmlidXRlIGJsb2NrIik7CisK
KyAgICBjaGVja0ZhaWwoKCkgPT4gZG9QcmVwKGAKKyAgICAgICAgW251bXRocmVhZHMoMywgNCld
CisgICAgICAgIGNvbXB1dGUgdm9pZCBmb28oKSB7CisgICAgICAgIH0KKyAgICBgKSwgZSA9PiBl
IGluc3RhbmNlb2YgV1N5bnRheEVycm9yKTsKKworICAgIGNoZWNrRmFpbCgoKSA9PiBkb1ByZXAo
YAorICAgICAgICBbXQorICAgICAgICBjb21wdXRlIHZvaWQgZm9vKCkgeworICAgICAgICB9Cisg
ICAgYCksIGUgPT4gZSBpbnN0YW5jZW9mIFdTeW50YXhFcnJvcik7CisKKyAgICBjaGVja0ZhaWwo
KCkgPT4gZG9QcmVwKGAKKyAgICAgICAgW251bXRocmVhZHMoMywgNCwgNSksIG51bXRocmVhZHMo
MywgNCwgNSldCisgICAgICAgIGNvbXB1dGUgdm9pZCBmb28oKSB7CisgICAgICAgIH0KKyAgICBg
KSwgZSA9PiBlIGluc3RhbmNlb2YgV1N5bnRheEVycm9yKTsKKworICAgIGNoZWNrRmFpbCgoKSA9
PiBkb1ByZXAoYAorICAgICAgICBjb21wdXRlIHZvaWQgZm9vKCkgeworICAgICAgICB9CisgICAg
YCksIGUgPT4gZSBpbnN0YW5jZW9mIFdTeW50YXhFcnJvcik7CisKKworICAgIGNoZWNrRmFpbCgo
KSA9PiBkb1ByZXAoYAorICAgICAgICBzdHJ1Y3QgUiB7CisgICAgICAgICAgICBmbG9hdDQgcG9z
aXRpb247CisgICAgICAgIH0KKyAgICAgICAgW251bXRocmVhZHMoMywgNCwgNSldCisgICAgICAg
IHZlcnRleCBSIGJheigpIHsKKyAgICAgICAgICAgIFIgcjsKKyAgICAgICAgICAgIHIucG9zaXRp
b24gPSBmbG9hdDQoMSwgMiwgMywgNCk7CisgICAgICAgICAgICByZXR1cm4gcjsKKyAgICAgICAg
fQorICAgIGApLCBlID0+IGUgaW5zdGFuY2VvZiBXU3ludGF4RXJyb3IpOworfQorCiBmdW5jdGlv
biBjcmVhdGVUZXh0dXJlc0ZvclRlc3RpbmcocHJvZ3JhbSkKIHsKICAgICBsZXQgdGV4dHVyZTFE
ID0gbWFrZTFEVGV4dHVyZShwcm9ncmFtLCBbWzEsIDcsIDE0LCA3OV0sIFsxMywgMTZdLCBbMTVd
XSwgImZsb2F0Iik7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9W
aXNpdG9yLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVmlzaXRvci5qcwppbmRl
eCBiOWVhN2U0NjNjNGUwOGJkZjg2ZmU5MDc2ZWFkNDA1ODc2ZDExNTkyLi5iOGY0ZGJjYzQ4N2M5
ZTgwNzIyMGNiNDAxMTliZTU5ZDJkNmU2NWM2IDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFk
aW5nTGFuZ3VhZ2VSSS9WaXNpdG9yLmpzCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFn
ZVJJL1Zpc2l0b3IuanMKQEAgLTM2LDYgKzM2LDEwIEBAIGNsYXNzIFZpc2l0b3IgewogICAgICAg
ICBub2RlLnJldHVyblR5cGUudmlzaXQodGhpcyk7CiAgICAgICAgIGZvciAobGV0IHBhcmFtZXRl
ciBvZiBub2RlLnBhcmFtZXRlcnMpCiAgICAgICAgICAgICBwYXJhbWV0ZXIudmlzaXQodGhpcyk7
CisgICAgICAgIGlmIChub2RlLmF0dHJpYnV0ZUJsb2NrKSB7CisgICAgICAgICAgICBmb3IgKGxl
dCBhdHRyaWJ1dGUgb2Ygbm9kZS5hdHRyaWJ1dGVCbG9jaykKKyAgICAgICAgICAgICAgICBhdHRy
aWJ1dGUudmlzaXQodGhpcyk7CisgICAgICAgIH0KICAgICB9CiAgICAgCiAgICAgdmlzaXRGdW5j
UGFyYW1ldGVyKG5vZGUpCkBAIC0zNDcsNSArMzUxLDkgQEAgY2xhc3MgVmlzaXRvciB7CiAgICAg
ICAgIG5vZGUubnVtUm93cy52aXNpdCh0aGlzKTsKICAgICAgICAgbm9kZS5udW1Db2x1bW5zLnZp
c2l0KHRoaXMpOwogICAgIH0KKworICAgIHZpc2l0RnVuY051bVRocmVhZHNBdHRyaWJ1dGUobm9k
ZSkKKyAgICB7CisgICAgfQogfQogCmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFu
Z3VhZ2VSSS9pbmRleC5odG1sIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvaW5kZXgu
aHRtbAppbmRleCAwOGY0ZWQ1YjA5MzFiNmJmYjNhNDIyODk3ODM3ZWVmOGExYWMzMjkwLi40MTY5
M2Q3YWQ0OGQ2ZGRiNjUzYzMxODlkN2ZlMzU0NmJiOGYwMTVmIDEwMDY0NAotLS0gYS9Ub29scy9X
ZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9pbmRleC5odG1sCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRp
bmdMYW5ndWFnZVJJL2luZGV4Lmh0bWwKQEAgLTY3LDcgKzY3LDkgQEAKIDxzY3JpcHQgc3JjPSJG
b2xkQ29uc3RleHBycy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iRm9yTG9vcC5qcyI+PC9z
Y3JpcHQ+CiA8c2NyaXB0IHNyYz0iRnVuYy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iRnVu
Y0F0dHJpYnV0ZS5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iRnVuY0RlZi5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iRnVuY051bVRocmVhZHNBdHRyaWJ1dGUuanMiPjwvc2NyaXB0Pgog
PHNjcmlwdCBzcmM9IkZ1bmNQYXJhbWV0ZXIuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IkZ1
bmN0aW9uTGlrZUJsb2NrLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJIaWdoWm9tYmllRmlu
ZGVyLmpzIj48L3NjcmlwdD4K
</data>
<flag name="review"
          id="367967"
          type_id="1"
          status="+"
          setter="dino"
    />
          </attachment>
      

    </bug>

</bugzilla>