<?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>189611</bug_id>
          
          <creation_ts>2018-09-13 19:59:34 -0700</creation_ts>
          <short_desc>[WHLSL] Each Node instance should have a type property for its concrete type.</short_desc>
          <delta_ts>2018-10-14 21:42:27 -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>MOVED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Thomas Denney">tdenney</reporter>
          <assigned_to name="Thomas Denney">tdenney</assigned_to>
          <cc>dino</cc>
    
    <cc>mmaxfield</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1459642</commentid>
    <comment_count>0</comment_count>
    <who name="Thomas Denney">tdenney</who>
    <bug_when>2018-09-13 19:59:34 -0700</bug_when>
    <thetext>We should add an additional preparation stage that annotates each Node instance in the tree with its concrete type (i.e. not a TypeRef instance!). It doesn’t matter when this happens in the preparation so long as it happens after Checker.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1459643</commentid>
    <comment_count>1</comment_count>
    <who name="Thomas Denney">tdenney</who>
    <bug_when>2018-09-13 20:01:45 -0700</bug_when>
    <thetext>Ideally this phase should also assure that each user-defined/Array/ArrayRef type instance A that is equivalent to another instance B is identical to B.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1461553</commentid>
    <comment_count>2</comment_count>
      <attachid>350268</attachid>
    <who name="Thomas Denney">tdenney</who>
    <bug_when>2018-09-20 14:54:06 -0700</bug_when>
    <thetext>Created attachment 350268
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1469124</commentid>
    <comment_count>3</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2018-10-14 21:42:27 -0700</bug_when>
    <thetext>Migrated to https://github.com/gpuweb/WHLSL/issues/216</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>350268</attachid>
            <date>2018-09-20 14:54:06 -0700</date>
            <delta_ts>2018-09-20 14:54:06 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>bug-189611-20180920145401.patch</filename>
            <type>text/plain</type>
            <size>30116</size>
            <attacher name="Thomas Denney">tdenney</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM2MjYzCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYjE3OGU2N2IzYzU2MWEwMDEyZjBjMTVlODg0M2FkNTIz
YTY1NjY3My4uYWIxZWFkYmQ4OGVhNTJlOTA3Yjk1NTViOTc1N2VkMDU3NDQ3Y2Y1MyAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg3
IEBACisyMDE4LTA5LTIwICBUaG9tYXMgRGVubmV5ICA8dGRlbm5leUBhcHBsZS5jb20+CisKKyAg
ICAgICAgW1dITFNMXSBFYWNoIE5vZGUgaW5zdGFuY2Ugc2hvdWxkIGhhdmUgYSB0eXBlIHByb3Bl
cnR5IGZvciBpdHMgY29uY3JldGUgdHlwZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE4OTYxMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQWxsLmpzOgorICAg
ICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0Fubm90YXRlQ29uY3JldGVUeXBlcy5qczog
QWRkZWQuCisgICAgICAgIChhbm5vdGF0ZUNvbmNyZXRlVHlwZXMuQ29uY3JldGVUeXBlQW5ub3Rh
dG9yLnByb3RvdHlwZS52aXNpdEFub255bW91c1ZhcmlhYmxlKToKKyAgICAgICAgKGFubm90YXRl
Q29uY3JldGVUeXBlcy5Db25jcmV0ZVR5cGVBbm5vdGF0b3IucHJvdG90eXBlLnZpc2l0QXJyYXlS
ZWZUeXBlKToKKyAgICAgICAgKGFubm90YXRlQ29uY3JldGVUeXBlcy5Db25jcmV0ZVR5cGVBbm5v
dGF0b3IucHJvdG90eXBlLnZpc2l0QXJyYXlUeXBlKToKKyAgICAgICAgKGFubm90YXRlQ29uY3Jl
dGVUeXBlcy5Db25jcmV0ZVR5cGVBbm5vdGF0b3IucHJvdG90eXBlLnZpc2l0QXNzaWdubWVudCk6
CisgICAgICAgIChhbm5vdGF0ZUNvbmNyZXRlVHlwZXMuQ29uY3JldGVUeXBlQW5ub3RhdG9yLnBy
b3RvdHlwZS52aXNpdENhbGxFeHByZXNzaW9uKToKKyAgICAgICAgKGFubm90YXRlQ29uY3JldGVU
eXBlcy5Db25jcmV0ZVR5cGVBbm5vdGF0b3IucHJvdG90eXBlLnZpc2l0Q29tbWFFeHByZXNzaW9u
KToKKyAgICAgICAgKGFubm90YXRlQ29uY3JldGVUeXBlcy5Db25jcmV0ZVR5cGVBbm5vdGF0b3Iu
cHJvdG90eXBlLnZpc2l0Q29udmVydFB0clRvQXJyYXlSZWZFeHByZXNzaW9uKToKKyAgICAgICAg
KGFubm90YXRlQ29uY3JldGVUeXBlcy5Db25jcmV0ZVR5cGVBbm5vdGF0b3IucHJvdG90eXBlLnZp
c2l0RG90RXhwcmVzc2lvbik6CisgICAgICAgIChhbm5vdGF0ZUNvbmNyZXRlVHlwZXMuQ29uY3Jl
dGVUeXBlQW5ub3RhdG9yLnByb3RvdHlwZS52aXNpdEVsZW1lbnRhbFR5cGUpOgorICAgICAgICAo
YW5ub3RhdGVDb25jcmV0ZVR5cGVzLkNvbmNyZXRlVHlwZUFubm90YXRvci5wcm90b3R5cGUudmlz
aXRFbnVtVHlwZSk6CisgICAgICAgIChhbm5vdGF0ZUNvbmNyZXRlVHlwZXMuQ29uY3JldGVUeXBl
QW5ub3RhdG9yLnByb3RvdHlwZS52aXNpdEZpZWxkKToKKyAgICAgICAgKGFubm90YXRlQ29uY3Jl
dGVUeXBlcy5Db25jcmV0ZVR5cGVBbm5vdGF0b3IucHJvdG90eXBlLnZpc2l0RnVuYyk6CisgICAg
ICAgIChhbm5vdGF0ZUNvbmNyZXRlVHlwZXMuQ29uY3JldGVUeXBlQW5ub3RhdG9yLnByb3RvdHlw
ZS52aXNpdEZ1bmNEZWYpOgorICAgICAgICAoYW5ub3RhdGVDb25jcmV0ZVR5cGVzLkNvbmNyZXRl
VHlwZUFubm90YXRvci5wcm90b3R5cGUudmlzaXRGdW5jUGFyYW1ldGVyKToKKyAgICAgICAgKGFu
bm90YXRlQ29uY3JldGVUeXBlcy5Db25jcmV0ZVR5cGVBbm5vdGF0b3IucHJvdG90eXBlLnZpc2l0
RnVuY3Rpb25MaWtlQmxvY2spOgorICAgICAgICAoYW5ub3RhdGVDb25jcmV0ZVR5cGVzLkNvbmNy
ZXRlVHlwZUFubm90YXRvci5wcm90b3R5cGUudmlzaXRHZW5lcmljTGl0ZXJhbFR5cGUpOgorICAg
ICAgICAoYW5ub3RhdGVDb25jcmV0ZVR5cGVzLkNvbmNyZXRlVHlwZUFubm90YXRvci5wcm90b3R5
cGUudmlzaXRJZGVudGl0eUV4cHJlc3Npb24pOgorICAgICAgICAoYW5ub3RhdGVDb25jcmV0ZVR5
cGVzLkNvbmNyZXRlVHlwZUFubm90YXRvci5wcm90b3R5cGUudmlzaXRJbmRleEV4cHJlc3Npb24p
OgorICAgICAgICAoYW5ub3RhdGVDb25jcmV0ZVR5cGVzLkNvbmNyZXRlVHlwZUFubm90YXRvci5w
cm90b3R5cGUudmlzaXRMb2dpY2FsRXhwcmVzc2lvbik6CisgICAgICAgIChhbm5vdGF0ZUNvbmNy
ZXRlVHlwZXMuQ29uY3JldGVUeXBlQW5ub3RhdG9yLnByb3RvdHlwZS52aXNpdExvZ2ljYWxOb3Qp
OgorICAgICAgICAoYW5ub3RhdGVDb25jcmV0ZVR5cGVzLkNvbmNyZXRlVHlwZUFubm90YXRvci5w
cm90b3R5cGUudmlzaXRNYWtlQXJyYXlSZWZFeHByZXNzaW9uKToKKyAgICAgICAgKGFubm90YXRl
Q29uY3JldGVUeXBlcy5Db25jcmV0ZVR5cGVBbm5vdGF0b3IucHJvdG90eXBlLnZpc2l0TWFrZVB0
ckV4cHJlc3Npb24pOgorICAgICAgICAoYW5ub3RhdGVDb25jcmV0ZVR5cGVzLkNvbmNyZXRlVHlw
ZUFubm90YXRvcik6CisgICAgICAgIChhbm5vdGF0ZUNvbmNyZXRlVHlwZXMpOgorICAgICAgICAq
IFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL05vZGUuanM6CisgICAgICAgIChOb2RlKToKKyAgICAg
ICAgKE5vZGUucHJvdG90eXBlLmdldCBjb25jcmV0ZVR5cGUpOgorICAgICAgICAoTm9kZS5wcm90
b3R5cGUuc2V0IGNvbmNyZXRlVHlwZSk6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdl
UkkvUHJlcGFyZS5qczoKKyAgICAgICAgKGxldC5wcmVwYXJlKToKKyAgICAgICAgKiBXZWJHUFVT
aGFkaW5nTGFuZ3VhZ2VSSS9SZXdyaXRlci5qczoKKyAgICAgICAgKFJld3JpdGVyLnByb3RvdHlw
ZS52aXNpdEZ1bmNQYXJhbWV0ZXIpOgorICAgICAgICAoUmV3cml0ZXIucHJvdG90eXBlLnZpc2l0
VmFyaWFibGVEZWNsKToKKyAgICAgICAgKFJld3JpdGVyLnByb3RvdHlwZS52aXNpdEJsb2NrKToK
KyAgICAgICAgKFJld3JpdGVyLnByb3RvdHlwZS52aXNpdENvbW1hRXhwcmVzc2lvbik6CisgICAg
ICAgIChSZXdyaXRlci5wcm90b3R5cGUudmlzaXRUeXBlUmVmKToKKyAgICAgICAgKFJld3JpdGVy
LnByb3RvdHlwZS52aXNpdEZpZWxkKToKKyAgICAgICAgKFJld3JpdGVyLnByb3RvdHlwZS52aXNp
dEVudW1NZW1iZXIpOgorICAgICAgICAoUmV3cml0ZXIucHJvdG90eXBlLnZpc2l0RW51bUxpdGVy
YWwpOgorICAgICAgICAoUmV3cml0ZXIucHJvdG90eXBlLnZpc2l0UmVmZXJlbmNlVHlwZSk6Cisg
ICAgICAgIChSZXdyaXRlci5wcm90b3R5cGUudmlzaXRBcnJheVR5cGUpOgorICAgICAgICAoUmV3
cml0ZXIucHJvdG90eXBlLnZpc2l0QXNzaWdubWVudCk6CisgICAgICAgIChSZXdyaXRlci5wcm90
b3R5cGUudmlzaXRSZWFkTW9kaWZ5V3JpdGVFeHByZXNzaW9uKToKKyAgICAgICAgKFJld3JpdGVy
LnByb3RvdHlwZS52aXNpdERlcmVmZXJlbmNlRXhwcmVzc2lvbik6CisgICAgICAgIChSZXdyaXRl
ci5wcm90b3R5cGUudmlzaXRUZXJuYXJ5RXhwcmVzc2lvbik6CisgICAgICAgIChSZXdyaXRlci5w
cm90b3R5cGUudmlzaXREb3RFeHByZXNzaW9uKToKKyAgICAgICAgKFJld3JpdGVyLnByb3RvdHlw
ZS52aXNpdEluZGV4RXhwcmVzc2lvbik6CisgICAgICAgIChSZXdyaXRlci5wcm90b3R5cGUudmlz
aXRNYWtlUHRyRXhwcmVzc2lvbik6CisgICAgICAgIChSZXdyaXRlci5wcm90b3R5cGUudmlzaXRN
YWtlQXJyYXlSZWZFeHByZXNzaW9uKToKKyAgICAgICAgKFJld3JpdGVyLnByb3RvdHlwZS52aXNp
dENvbnZlcnRQdHJUb0FycmF5UmVmRXhwcmVzc2lvbik6CisgICAgICAgIChSZXdyaXRlci5wcm90
b3R5cGUudmlzaXRWYXJpYWJsZVJlZik6CisgICAgICAgIChSZXdyaXRlci5wcm90b3R5cGUudmlz
aXRSZXR1cm4pOgorICAgICAgICAoUmV3cml0ZXIucHJvdG90eXBlLnZpc2l0Q29udGludWUpOgor
ICAgICAgICAoUmV3cml0ZXIucHJvdG90eXBlLnZpc2l0QnJlYWspOgorICAgICAgICAoUmV3cml0
ZXIucHJvdG90eXBlLnZpc2l0VHJhcFN0YXRlbWVudCk6CisgICAgICAgIChSZXdyaXRlci5wcm90
b3R5cGUudmlzaXRHZW5lcmljTGl0ZXJhbCk6CisgICAgICAgIChSZXdyaXRlci5wcm90b3R5cGUu
dmlzaXRHZW5lcmljTGl0ZXJhbFR5cGUpOgorICAgICAgICAoUmV3cml0ZXIucHJvdG90eXBlLnZp
c2l0TnVsbExpdGVyYWwpOgorICAgICAgICAoUmV3cml0ZXIucHJvdG90eXBlLnZpc2l0TnVsbFR5
cGUpOgorICAgICAgICAoUmV3cml0ZXIucHJvdG90eXBlLnByb2Nlc3NEZXJpdmVkQ2FsbERhdGEp
OgorICAgICAgICAoUmV3cml0ZXIucHJvdG90eXBlLnZpc2l0Q2FsbEV4cHJlc3Npb24pOgorICAg
ICAgICAoUmV3cml0ZXIucHJvdG90eXBlLnZpc2l0RnVuY3Rpb25MaWtlQmxvY2spOgorICAgICAg
ICAoUmV3cml0ZXIucHJvdG90eXBlLnZpc2l0TG9naWNhbE5vdCk6CisgICAgICAgIChSZXdyaXRl
ci5wcm90b3R5cGUudmlzaXRMb2dpY2FsRXhwcmVzc2lvbik6CisgICAgICAgIChSZXdyaXRlci5w
cm90b3R5cGUudmlzaXRTd2l0Y2hTdGF0ZW1lbnQpOgorICAgICAgICAoUmV3cml0ZXIucHJvdG90
eXBlLnZpc2l0QW5vbnltb3VzVmFyaWFibGUpOgorICAgICAgICAoUmV3cml0ZXIucHJvdG90eXBl
LnZpc2l0SWRlbnRpdHlFeHByZXNzaW9uKToKKyAgICAgICAgKFJld3JpdGVyLnByb3RvdHlwZS52
aXNpdFZlY3RvclR5cGUpOgorICAgICAgICAoUmV3cml0ZXIucHJvdG90eXBlLnZpc2l0TWF0cml4
VHlwZSk6CisgICAgICAgIChSZXdyaXRlcik6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvVGVzdC5odG1sOgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Rlc3Qu
anM6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVHlwZVJlZi5qczoKKyAgICAg
ICAgKFR5cGVSZWYucHJvdG90eXBlLmdldCBjb25jcmV0ZVR5cGUpOgorCiAyMDE4LTA5LTIwICBN
aWNoYWVsIENhdGFuemFybyAgPG1jYXRhbnphcm9AaWdhbGlhLmNvbT4KIAogICAgICAgICBVbnJl
dmlld2VkLCBtYW51YWxseSByb2xsb3V0IG91ciBzd2l0Y2ggdG8gbWFzdGVyIHJ1bnRpbWUKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0FsbC5qcyBiL1Rvb2xzL1dl
YkdQVVNoYWRpbmdMYW5ndWFnZVJJL0FsbC5qcwppbmRleCAzYzJjNDg3NDIwMDExMTVhMTcxMzQ4
M2ExZjIzY2UyODY2OGJiOWM2Li44MjVhMGM1ZWI3YWU0MGI2MTNhOGQzNDBmYjdhNmE1YTNjMDRh
ZmM3IDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9BbGwuanMKKysr
IGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQWxsLmpzCkBAIC0zNyw2ICszNyw3IEBA
IGxvYWQoIlByb3BlcnR5QWNjZXNzRXhwcmVzc2lvbi5qcyIpOwogbG9hZCgiTmF0aXZlVHlwZS5q
cyIpOwogCiBsb2FkKCJBZGRyZXNzU3BhY2UuanMiKTsKK2xvYWQoIkFubm90YXRlQ29uY3JldGVU
eXBlcy5qcyIpOwogbG9hZCgiQW5vbnltb3VzVmFyaWFibGUuanMiKTsKIGxvYWQoIkFycmF5UmVm
VHlwZS5qcyIpOwogbG9hZCgiQXJyYXlUeXBlLmpzIik7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJH
UFVTaGFkaW5nTGFuZ3VhZ2VSSS9Bbm5vdGF0ZUNvbmNyZXRlVHlwZXMuanMgYi9Ub29scy9XZWJH
UFVTaGFkaW5nTGFuZ3VhZ2VSSS9Bbm5vdGF0ZUNvbmNyZXRlVHlwZXMuanMKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
Y2RlMjE4YmNmOTMxZGEwMTQ2YzI0NjhiMjMxNmVjMDcyNzhkMWE3NQotLS0gL2Rldi9udWxsCisr
KyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0Fubm90YXRlQ29uY3JldGVUeXBlcy5q
cwpAQCAtMCwwICsxLDI5MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LiAKKyAqLworInVzZSBzdHJpY3QiOworCitmdW5jdGlvbiBhbm5vdGF0ZUNvbmNyZXRlVHlwZXMo
cHJvZ3JhbSkKK3sKKyAgICAvLyBGSVhNRTogV29yayBvdXQgd2hpY2ggdmlzaXRUIGZ1bmN0aW9u
cyBhcmUgcmVkdW5kYW50CisgICAgLy8gCisgICAgY2xhc3MgQ29uY3JldGVUeXBlQW5ub3RhdG9y
IGV4dGVuZHMgVmlzaXRvciB7CisgICAgICAgIHZpc2l0QW5vbnltb3VzVmFyaWFibGUobm9kZSkK
KyAgICAgICAgeworICAgICAgICAgICAgc3VwZXIudmlzaXRBbm9ueW1vdXNWYXJpYWJsZShub2Rl
KTsKKyAgICAgICAgICAgIG5vZGUuY29uY3JldGVUeXBlID0gbm9kZS50eXBlLmNvbmNyZXRlVHlw
ZTsKKyAgICAgICAgfQorCisgICAgICAgIHZpc2l0QXJyYXlSZWZUeXBlKG5vZGUpCisgICAgICAg
IHsKKyAgICAgICAgICAgIHN1cGVyLnZpc2l0QXJyYXlSZWZUeXBlKG5vZGUpOworICAgICAgICAg
ICAgbm9kZS5jb25jcmV0ZVR5cGUgPSBub2RlOworICAgICAgICB9CisKKyAgICAgICAgdmlzaXRB
cnJheVR5cGUobm9kZSkKKyAgICAgICAgeworICAgICAgICAgICAgc3VwZXIudmlzaXRBcnJheVR5
cGUobm9kZSk7CisgICAgICAgICAgICBub2RlLmNvbmNyZXRlVHlwZSA9IG5vZGU7CisgICAgICAg
IH0KKworICAgICAgICB2aXNpdEFzc2lnbm1lbnQobm9kZSkKKyAgICAgICAgeworICAgICAgICAg
ICAgc3VwZXIudmlzaXRBc3NpZ25tZW50KG5vZGUpOworICAgICAgICAgICAgbm9kZS5jb25jcmV0
ZVR5cGUgPSBub2RlLnR5cGUuY29uY3JldGVUeXBlOworICAgICAgICB9CisKKyAgICAgICAgdmlz
aXRDYWxsRXhwcmVzc2lvbihub2RlKQorICAgICAgICB7CisgICAgICAgICAgICBzdXBlci52aXNp
dENhbGxFeHByZXNzaW9uKG5vZGUpOworICAgICAgICAgICAgbm9kZS5jb25jcmV0ZVR5cGUgPSBu
b2RlLnJlc3VsdFR5cGUuY29uY3JldGVUeXBlOworICAgICAgICB9CisKKyAgICAgICAgdmlzaXRD
b21tYUV4cHJlc3Npb24obm9kZSkKKyAgICAgICAgeworICAgICAgICAgICAgc3VwZXIudmlzaXRD
b21tYUV4cHJlc3Npb24obm9kZSk7CisgICAgICAgICAgICBub2RlLmNvbmNyZXRlVHlwZSA9IG5v
ZGUubGlzdFtub2RlLmxpc3QubGVuZ3RoIC0gMV0uY29uY3JldGVUeXBlOworICAgICAgICB9CisK
KyAgICAgICAgdmlzaXRDb252ZXJ0UHRyVG9BcnJheVJlZkV4cHJlc3Npb24obm9kZSkKKyAgICAg
ICAgeworICAgICAgICAgICAgc3VwZXIudmlzaXRDb252ZXJ0UHRyVG9BcnJheVJlZkV4cHJlc3Np
b24obm9kZSk7CisgICAgICAgICAgICBjb25zdCBwdHJUeXBlID0gbm9kZS5sVmFsdWUuY29uY3Jl
dGVUeXBlOworICAgICAgICAgICAgbm9kZS5jb25jcmV0ZVR5cGUgPSBuZXcgQXJyYXlSZWZUeXBl
KG5vZGUub3JpZ2luLCBwdHJUeXBlLmFkZHJlc3NTcGFjZSwgcHRyVHlwZS5lbGVtZW50VHlwZS5j
b25jcmV0ZVR5cGUpOworICAgICAgICB9CisKKyAgICAgICAgdmlzaXREb3RFeHByZXNzaW9uKG5v
ZGUpCisgICAgICAgIHsKKyAgICAgICAgICAgIHN1cGVyLnZpc2l0RG90RXhwcmVzc2lvbihub2Rl
KTsKKyAgICAgICAgICAgIG5vZGUuY29uY3JldGVUeXBlID0gbm9kZS5zdHJ1Y3QuZmllbGRNYXAu
Z2V0KG5vZGUuZmllbGROYW1lKS50eXBlLmNvbmNyZXRlVHlwZTsKKyAgICAgICAgfQorCisgICAg
ICAgIHZpc2l0RWxlbWVudGFsVHlwZShub2RlKQorICAgICAgICB7CisgICAgICAgICAgICBzdXBl
ci52aXNpdEVsZW1lbnRhbFR5cGUobm9kZSk7CisgICAgICAgICAgICBub2RlLmNvbmNyZXRlVHlw
ZSA9IG5vZGU7CisgICAgICAgIH0KKworICAgICAgICB2aXNpdEVudW1UeXBlKG5vZGUpCisgICAg
ICAgIHsKKyAgICAgICAgICAgIHN1cGVyLnZpc2l0RW51bVR5cGUobm9kZSk7CisgICAgICAgICAg
ICBub2RlLmNvbmNyZXRlVHlwZSA9IG5vZGUuYmFzZVR5cGUuY29uY3JldGVUeXBlOworICAgICAg
ICB9CisKKyAgICAgICAgdmlzaXRGaWVsZChub2RlKQorICAgICAgICB7CisgICAgICAgICAgICBz
dXBlci52aXNpdEZpZWxkKG5vZGUpOworICAgICAgICAgICAgbm9kZS5jb25jcmV0ZVR5cGUgPSBu
b2RlLnR5cGUuY29uY3JldGVUeXBlOworICAgICAgICB9CisKKyAgICAgICAgdmlzaXRGdW5jKG5v
ZGUpCisgICAgICAgIHsKKyAgICAgICAgICAgIHN1cGVyLnZpc2l0RnVuYyhub2RlKTsKKyAgICAg
ICAgICAgIG5vZGUuY29uY3JldGVUeXBlID0gbm9kZS5yZXR1cm5UeXBlLmNvbmNyZXRlVHlwZTsK
KyAgICAgICAgfQorCisgICAgICAgIHZpc2l0RnVuY0RlZihub2RlKQorICAgICAgICB7CisgICAg
ICAgICAgICBzdXBlci52aXNpdEZ1bmNEZWYobm9kZSk7CisgICAgICAgICAgICBub2RlLmNvbmNy
ZXRlVHlwZSA9IG5vZGUucmV0dXJuVHlwZS5jb25jcmV0ZVR5cGU7CisgICAgICAgIH0KKworICAg
ICAgICB2aXNpdEZ1bmNQYXJhbWV0ZXIobm9kZSkKKyAgICAgICAgeworICAgICAgICAgICAgc3Vw
ZXIudmlzaXRGdW5jUGFyYW1ldGVyKG5vZGUpOworICAgICAgICAgICAgbm9kZS5jb25jcmV0ZVR5
cGUgPSBub2RlLnR5cGUuY29uY3JldGVUeXBlOworICAgICAgICB9CisKKyAgICAgICAgdmlzaXRG
dW5jdGlvbkxpa2VCbG9jayhub2RlKQorICAgICAgICB7CisgICAgICAgICAgICBzdXBlci52aXNp
dEZ1bmN0aW9uTGlrZUJsb2NrKG5vZGUpOworICAgICAgICAgICAgbm9kZS5jb25jcmV0ZVR5cGUg
PSBub2RlLnJldHVyblR5cGUuY29uY3JldGVUeXBlOworICAgICAgICB9CisKKyAgICAgICAgdmlz
aXRHZW5lcmljTGl0ZXJhbFR5cGUobm9kZSkKKyAgICAgICAgeworICAgICAgICAgICAgc3VwZXIu
dmlzaXRHZW5lcmljTGl0ZXJhbFR5cGUobm9kZSk7CisgICAgICAgICAgICBub2RlLmNvbmNyZXRl
VHlwZSA9IG5vZGUudHlwZS5jb25jcmV0ZVR5cGU7CisgICAgICAgIH0KKworICAgICAgICB2aXNp
dElkZW50aXR5RXhwcmVzc2lvbihub2RlKQorICAgICAgICB7CisgICAgICAgICAgICBzdXBlci52
aXNpdElkZW50aXR5RXhwcmVzc2lvbihub2RlKTsKKyAgICAgICAgICAgIG5vZGUuY29uY3JldGVU
eXBlID0gbm9kZS50YXJnZXQuY29uY3JldGVUeXBlOworICAgICAgICB9CisKKyAgICAgICAgdmlz
aXRJbmRleEV4cHJlc3Npb24obm9kZSkKKyAgICAgICAgeworICAgICAgICAgICAgLy8gRklYTUU6
IE5vdCBzdXJlIGhvdyB0byB2ZXJpZnkgdGhpcyBzZWVuIGFzIGluZGV4IGV4cHJlc3Npb25zIGFy
ZSBlbGltaW5hdGVkLgorICAgICAgICAgICAgc3VwZXIudmlzaXRJbmRleEV4cHJlc3Npb24obm9k
ZSk7CisgICAgICAgICAgICBub2RlLmNvbmNyZXRlVHlwZSA9IG5vZGUuYXJyYXkuZWxlbWVudFR5
cGUuY29uY3JldGVUeXBlOworICAgICAgICB9CisKKyAgICAgICAgdmlzaXRMb2dpY2FsRXhwcmVz
c2lvbihub2RlKQorICAgICAgICB7CisgICAgICAgICAgICBzdXBlci52aXNpdExvZ2ljYWxFeHBy
ZXNzaW9uKG5vZGUpOworICAgICAgICAgICAgbm9kZS5jb25jcmV0ZVR5cGUgPSBwcm9ncmFtLnR5
cGVzLmdldCgiYm9vbCIpOworICAgICAgICB9CisKKyAgICAgICAgdmlzaXRMb2dpY2FsTm90KG5v
ZGUpCisgICAgICAgIHsKKyAgICAgICAgICAgIHN1cGVyLnZpc2l0TG9naWNhbE5vdChub2RlKTsK
KyAgICAgICAgICAgIG5vZGUuY29uY3JldGVUeXBlID0gcHJvZ3JhbS50eXBlcy5nZXQoImJvb2wi
KTsKKyAgICAgICAgfQorCisgICAgICAgIHZpc2l0TWFrZUFycmF5UmVmRXhwcmVzc2lvbihub2Rl
KQorICAgICAgICB7CisgICAgICAgICAgICBzdXBlci52aXNpdE1ha2VBcnJheVJlZkV4cHJlc3Np
b24obm9kZSk7CisgICAgICAgICAgICAvLyBGSVhNRTogVGhlIGNvZGUgZ2VuZXJhdGlvbiBwYXRj
aCBhZGRzIGEgbWV0aG9kIHRvIHR5cGVzIHRoYXQgYWxsb3dzIHlvdSB0byBnZXQgdGhlIGNvcnJl
Y3QgdHlwZSBvZiB0aGUgbFZhbHVlCisgICAgICAgICAgICAvLyBvZiBhIE1ha2VBcnJheVJlZkV4
cHJlc3Npb24uCisgICAgICAgICAgICBsZXQgZWxlbWVudFR5cGU7CisgICAgICAgICAgICBpZiAo
bm9kZS5sVmFsdWUuY29uY3JldGVUeXBlIGluc3RhbmNlb2YgQXJyYXlUeXBlKQorICAgICAgICAg
ICAgICAgIGVsZW1lbnRUeXBlID0gbm9kZS5sVmFsdWUuY29uY3JldGVUeXBlLmVsZW1lbnRUeXBl
LmNvbmNyZXRlVHlwZTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBlbGVtZW50
VHlwZSA9IG5vZGUubFZhbHVlLmNvbmNyZXRlVHlwZTsKKyAgICAgICAgICAgIG5vZGUuY29uY3Jl
dGVUeXBlID0gbmV3IEFycmF5UmVmVHlwZShub2RlLm9yaWdpbiwgInRocmVhZCIsIGVsZW1lbnRU
eXBlKTsKKyAgICAgICAgfQorCisgICAgICAgIHZpc2l0TWFrZVB0ckV4cHJlc3Npb24obm9kZSkK
KyAgICAgICAgeworICAgICAgICAgICAgc3VwZXIudmlzaXRNYWtlUHRyRXhwcmVzc2lvbihub2Rl
KTsKKyAgICAgICAgICAgIGlmICghbm9kZS5sVmFsdWUuY29uY3JldGVUeXBlKQorICAgICAgICAg
ICAgICAgIHRocm93IG5ldyBFcnJvcihgTnVsbCBsVmFsdWUgdHlwZSA6KGApOworICAgICAgICAg
ICAgbm9kZS5jb25jcmV0ZVR5cGUgPSAgbmV3IFB0clR5cGUobm9kZS5vcmlnaW4sICJ0aHJlYWQi
LCBub2RlLmxWYWx1ZS5jb25jcmV0ZVR5cGUpOworICAgICAgICB9CisKKyAgICAgICAgdmlzaXRN
YXRyaXhUeXBlKG5vZGUpCisgICAgICAgIHsKKyAgICAgICAgICAgIHN1cGVyLnZpc2l0TWF0cml4
VHlwZShub2RlKTsKKyAgICAgICAgICAgIG5vZGUuY29uY3JldGVUeXBlID0gbm9kZTsKKyAgICAg
ICAgfQorCisgICAgICAgIHZpc2l0TmF0aXZlRnVuYyhub2RlKQorICAgICAgICB7CisgICAgICAg
ICAgICBzdXBlci52aXNpdE5hdGl2ZUZ1bmMobm9kZSk7CisgICAgICAgICAgICBub2RlLmNvbmNy
ZXRlVHlwZSA9IG5vZGUucmV0dXJuVHlwZS5jb25jcmV0ZVR5cGU7CisgICAgICAgIH0KKworICAg
ICAgICB2aXNpdE5hdGl2ZUZ1bmNJbnN0YW5jZShub2RlKQorICAgICAgICB7CisgICAgICAgICAg
ICBzdXBlci52aXNpdE5hdGl2ZUZ1bmNJbnN0YW5jZShub2RlKTsKKyAgICAgICAgICAgIG5vZGUu
Y29uY3JldGVUeXBlID0gbm9kZS5yZXR1cm5UeXBlLmNvbmNyZXRlVHlwZTsKKyAgICAgICAgfQor
CisgICAgICAgIHZpc2l0TmF0aXZlVHlwZShub2RlKQorICAgICAgICB7CisgICAgICAgICAgICBz
dXBlci52aXNpdE5hdGl2ZVR5cGUobm9kZSk7CisgICAgICAgICAgICBub2RlLmNvbmNyZXRlVHlw
ZSA9IG5vZGU7CisgICAgICAgIH0KKworICAgICAgICB2aXNpdE5hdGl2ZVR5cGVJbnN0YW5jZShu
b2RlKQorICAgICAgICB7CisgICAgICAgICAgICBzdXBlci52aXNpdE5hdGl2ZVR5cGVJbnN0YW5j
ZShub2RlKTsKKyAgICAgICAgICAgIG5vZGUuY29uY3JldGVUeXBlID0gbm9kZTsKKyAgICAgICAg
fQorCisgICAgICAgIHZpc2l0TnVsbExpdGVyYWwobm9kZSkKKyAgICAgICAgeworICAgICAgICAg
ICAgc3VwZXIudmlzaXROdWxsTGl0ZXJhbChub2RlKTsKKyAgICAgICAgICAgIG5vZGUuY29uY3Jl
dGVUeXBlID0gbm9kZS50eXBlLmNvbmNyZXRlVHlwZTsKKyAgICAgICAgfQorCisgICAgICAgIHZp
c2l0TnVsbFR5cGUobm9kZSkKKyAgICAgICAgeworICAgICAgICAgICAgc3VwZXIudmlzaXROdWxs
VHlwZShub2RlKTsKKyAgICAgICAgICAgIG5vZGUuY29uY3JldGVUeXBlID0gbm9kZTsKKyAgICAg
ICAgfQorCisgICAgICAgIHZpc2l0UHRyVHlwZShub2RlKQorICAgICAgICB7CisgICAgICAgICAg
ICBzdXBlci52aXNpdFB0clR5cGUobm9kZSk7CisgICAgICAgICAgICBub2RlLmNvbmNyZXRlVHlw
ZSA9IG5vZGU7CisgICAgICAgIH0KKworICAgICAgICB2aXNpdFJlYWRNb2RpZnlXcml0ZUV4cHJl
c3Npb24obm9kZSkKKyAgICAgICAgeworICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJGSVhN
RTogSW1wbGVtZW50IENvbmNyZXRlVHlwZUFubm90YXRvci52aXNpdFJlYWRNb2RpZnlXcml0ZUV4
cHJlc3Npb24iKTsKKyAgICAgICAgfQorCisgICAgICAgIHZpc2l0UmVmZXJlbmNlVHlwZShub2Rl
KQorICAgICAgICB7CisgICAgICAgICAgICBzdXBlci52aXNpdFJlZmVyZW5jZVR5cGUobm9kZSk7
CisgICAgICAgICAgICBub2RlLmNvbmNyZXRlVHlwZSA9IG5vZGU7CisgICAgICAgIH0KKworICAg
ICAgICB2aXNpdFN0cnVjdFR5cGUobm9kZSkKKyAgICAgICAgeworICAgICAgICAgICAgc3VwZXIu
dmlzaXRTdHJ1Y3RUeXBlKG5vZGUpOworICAgICAgICAgICAgbm9kZS5jb25jcmV0ZVR5cGUgPSBu
b2RlOworICAgICAgICB9CisKKyAgICAgICAgdmlzaXRUeXBlRGVmKG5vZGUpCisgICAgICAgIHsK
KyAgICAgICAgICAgIHN1cGVyLnZpc2l0VHlwZURlZihub2RlKTsKKyAgICAgICAgICAgIG5vZGUu
Y29uY3JldGVUeXBlID0gbm9kZTsKKyAgICAgICAgfQorCisgICAgICAgIHZpc2l0VmFyaWFibGVE
ZWNsKG5vZGUpCisgICAgICAgIHsKKyAgICAgICAgICAgIHN1cGVyLnZpc2l0VmFyaWFibGVEZWNs
KG5vZGUpOworICAgICAgICAgICAgbm9kZS5jb25jcmV0ZVR5cGUgPSBub2RlLnR5cGUuY29uY3Jl
dGVUeXBlOworICAgICAgICB9CisKKyAgICAgICAgdmlzaXRWYXJpYWJsZVJlZihub2RlKQorICAg
ICAgICB7CisgICAgICAgICAgICBzdXBlci52aXNpdFZhcmlhYmxlUmVmKG5vZGUpOworICAgICAg
ICAgICAgbm9kZS5jb25jcmV0ZVR5cGUgPSBub2RlLnZhcmlhYmxlLmNvbmNyZXRlVHlwZTsKKyAg
ICAgICAgfQorCisgICAgICAgIHZpc2l0VmVjdG9yVHlwZShub2RlKQorICAgICAgICB7CisgICAg
ICAgICAgICBzdXBlci52aXNpdFZlY3RvclR5cGUobm9kZSk7CisgICAgICAgICAgICBub2RlLmNv
bmNyZXRlVHlwZSA9IG5vZGU7CisgICAgICAgIH0KKworICAgICAgICB2aXNpdEJvb2xMaXRlcmFs
KG5vZGUpCisgICAgICAgIHsKKyAgICAgICAgICAgIHN1cGVyLnZpc2l0Qm9vbExpdGVyYWwobm9k
ZSk7CisgICAgICAgICAgICBub2RlLmNvbmNyZXRlVHlwZSA9IHByb2dyYW0udHlwZXMuZ2V0KCJi
b29sIik7CisgICAgICAgIH0KKworICAgICAgICB2aXNpdERlcmVmZXJlbmNlRXhwcmVzc2lvbihu
b2RlKQorICAgICAgICB7CisgICAgICAgICAgICBzdXBlci52aXNpdERlcmVmZXJlbmNlRXhwcmVz
c2lvbihub2RlKTsKKyAgICAgICAgICAgIG5vZGUuY29uY3JldGVUeXBlID0gbm9kZS5wdHIuY29u
Y3JldGVUeXBlLmVsZW1lbnRUeXBlLmNvbmNyZXRlVHlwZTsKKyAgICAgICAgfQorCisgICAgICAg
IHZpc2l0RW51bUxpdGVyYWwobm9kZSkKKyAgICAgICAgeworICAgICAgICAgICAgc3VwZXIudmlz
aXRFbnVtTGl0ZXJhbChub2RlKTsKKyAgICAgICAgICAgIG5vZGUuY29uY3JldGVUeXBlID0gbm9k
ZS50eXBlLmNvbmNyZXRlVHlwZTsKKyAgICAgICAgfQorCisgICAgICAgIHZpc2l0R2VuZXJpY0xp
dGVyYWwobm9kZSkKKyAgICAgICAgeworICAgICAgICAgICAgc3VwZXIudmlzaXRHZW5lcmljTGl0
ZXJhbChub2RlKTsKKyAgICAgICAgICAgIG5vZGUuY29uY3JldGVUeXBlID0gbm9kZS50eXBlLmNv
bmNyZXRlVHlwZTsKKyAgICAgICAgfQorCisgICAgfQorICAgIHByb2dyYW0udmlzaXQobmV3IENv
bmNyZXRlVHlwZUFubm90YXRvcigpKTsKK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRp
ZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Ob2RlLmpzIGIvVG9vbHMv
V2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTm9kZS5qcwppbmRleCBjNGJhNDhjYjE0YjY2Y2Y4ZmZh
ZGMyNTI5ODhiZThlMWU0NDNhMTQ5Li5lM2I1NTAwMzczYmMzMjgwNWRhY2JmZjExMTE2MGM1Nzcw
ZDgxYzE5IDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Ob2RlLmpz
CisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL05vZGUuanMKQEAgLTI1LDYgKzI1
LDExIEBACiAidXNlIHN0cmljdCI7CiAKIGNsYXNzIE5vZGUgeworICAgIGNvbnN0cnVjdG9yKCkK
KyAgICB7CisgICAgICAgIHRoaXMuX2NvbmNyZXRlVHlwZSA9IG51bGw7CisgICAgfQorICAgIAog
ICAgIHZpc2l0KHZpc2l0b3IpCiAgICAgewogICAgICAgICBsZXQgdmlzaXRGdW5jID0gdmlzaXRv
clsidmlzaXQiICsgdGhpcy5jb25zdHJ1Y3Rvci5uYW1lXTsKQEAgLTgzLDYgKzg4LDkgQEAgY2xh
c3MgTm9kZSB7CiAgICAgcHJlcGFyZVRvVmVyaWZ5KHVuaWZpY2F0aW9uQ29udGV4dCkgeyB9CiAg
ICAgY29tbWl0VW5pZmljYXRpb24odW5pZmljYXRpb25Db250ZXh0KSB7IH0KICAgICAKKyAgICBn
ZXQgY29uY3JldGVUeXBlKCkgeyByZXR1cm4gdGhpcy5fY29uY3JldGVUeXBlOyB9CisgICAgc2V0
IGNvbmNyZXRlVHlwZShuZXdWYWx1ZSkgeyB0aGlzLl9jb25jcmV0ZVR5cGUgPSBuZXdWYWx1ZTsg
fQorICAgIAogICAgIGdldCB1bmlmeU5vZGUoKSB7IHJldHVybiB0aGlzOyB9CiAgICAgZ2V0IGlz
VW5pZmlhYmxlKCkgeyByZXR1cm4gZmFsc2U7IH0KICAgICBnZXQgaXNMaXRlcmFsKCkgeyByZXR1
cm4gZmFsc2U7IH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1By
ZXBhcmUuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9QcmVwYXJlLmpzCmluZGV4
IDEzZWJkZTgwYmQ5MWNjYjY1NDY4NjgxMjkyNTI2MzM0ZGQzODg3ZTguLjE1YWI3MjhkMDZlOGI2
OGY2YmQ4NzQ0MTUwODM5NTEyZjg0MjdiMGYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRp
bmdMYW5ndWFnZVJJL1ByZXBhcmUuanMKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdl
UkkvUHJlcGFyZS5qcwpAQCAtNjksNiArNjksNyBAQCBsZXQgcHJlcGFyZSA9ICgoKSA9PiB7CiAg
ICAgICAgIGZpbmRIaWdoWm9tYmllcyhwcm9ncmFtKTsKICAgICAgICAgcHJvZ3JhbS52aXNpdChu
ZXcgU3RydWN0TGF5b3V0QnVpbGRlcigpKTsKICAgICAgICAgbGF0ZUNoZWNrQW5kTGF5b3V0QnVm
ZmVycyhwcm9ncmFtKTsKKyAgICAgICAgYW5ub3RhdGVDb25jcmV0ZVR5cGVzKHByb2dyYW0pOwog
ICAgICAgICBpZiAoc2hvdWxkSW5saW5lKQogICAgICAgICAgICAgaW5saW5lKHByb2dyYW0pOwog
ICAgICAgICByZXR1cm4gcHJvZ3JhbTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdM
YW5ndWFnZVJJL1Jld3JpdGVyLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUmV3
cml0ZXIuanMKaW5kZXggMzAyNTg5M2EwNmEzZjU5MDMyYjlmNmNkNDNmMTI0NjUxZjAyNmNiOS4u
NTY1MzY2M2I0MTBkOGUzNWU1YjFlNDE5Yzg2MzFlM2IwNmJlYmFiYiAxMDA2NDQKLS0tIGEvVG9v
bHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUmV3cml0ZXIuanMKKysrIGIvVG9vbHMvV2ViR1BV
U2hhZGluZ0xhbmd1YWdlUkkvUmV3cml0ZXIuanMKQEAgLTYzLDYgKzYzLDcgQEAgY2xhc3MgUmV3
cml0ZXIgewogICAgICAgICBsZXQgcmVzdWx0ID0gbmV3IEZ1bmNQYXJhbWV0ZXIobm9kZS5vcmln
aW4sIG5vZGUubmFtZSwgbm9kZS50eXBlLnZpc2l0KHRoaXMpKTsKICAgICAgICAgdGhpcy5fbWFw
Tm9kZShub2RlLCByZXN1bHQpOwogICAgICAgICByZXN1bHQuZVB0ciA9IG5vZGUuZVB0cjsKKyAg
ICAgICAgcmVzdWx0LmNvbmNyZXRlVHlwZSA9IG5vZGUuY29uY3JldGVUeXBlOwogICAgICAgICBy
ZXR1cm4gcmVzdWx0OwogICAgIH0KICAgICAKQEAgLTc0LDYgKzc1LDcgQEAgY2xhc3MgUmV3cml0
ZXIgewogICAgICAgICAgICAgTm9kZS52aXNpdChub2RlLmluaXRpYWxpemVyLCB0aGlzKSk7CiAg
ICAgICAgIHRoaXMuX21hcE5vZGUobm9kZSwgcmVzdWx0KTsKICAgICAgICAgcmVzdWx0LmVQdHIg
PSBub2RlLmVQdHI7CisgICAgICAgIHJlc3VsdC5jb25jcmV0ZVR5cGUgPSBub2RlLmNvbmNyZXRl
VHlwZTsKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICB9CiAgICAgCkBAIC04MiwxNyArODQs
MjAgQEAgY2xhc3MgUmV3cml0ZXIgewogICAgICAgICBsZXQgcmVzdWx0ID0gbmV3IEJsb2NrKG5v
ZGUub3JpZ2luKTsKICAgICAgICAgZm9yIChsZXQgc3RhdGVtZW50IG9mIG5vZGUuc3RhdGVtZW50
cykKICAgICAgICAgICAgIHJlc3VsdC5hZGQoc3RhdGVtZW50LnZpc2l0KHRoaXMpKTsKKyAgICAg
ICAgcmVzdWx0LmNvbmNyZXRlVHlwZSA9IG5vZGUuY29uY3JldGVUeXBlOwogICAgICAgICByZXR1
cm4gcmVzdWx0OwogICAgIH0KICAgICAKICAgICB2aXNpdENvbW1hRXhwcmVzc2lvbihub2RlKQog
ICAgIHsKLSAgICAgICAgcmV0dXJuIG5ldyBDb21tYUV4cHJlc3Npb24obm9kZS5vcmlnaW4sIG5v
ZGUubGlzdC5tYXAoZXhwcmVzc2lvbiA9PiB7CisgICAgICAgIGNvbnN0IHJlc3VsdCA9IG5ldyBD
b21tYUV4cHJlc3Npb24obm9kZS5vcmlnaW4sIG5vZGUubGlzdC5tYXAoZXhwcmVzc2lvbiA9PiB7
CiAgICAgICAgICAgICBsZXQgcmVzdWx0ID0gZXhwcmVzc2lvbi52aXNpdCh0aGlzKTsKICAgICAg
ICAgICAgIGlmICghcmVzdWx0KQogICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiTnVs
bCByZXN1bHQgZnJvbSAiICsgZXhwcmVzc2lvbik7CiAgICAgICAgICAgICByZXR1cm4gcmVzdWx0
OwogICAgICAgICB9KSk7CisgICAgICAgIHJlc3VsdC5jb25jcmV0ZVR5cGUgPSBub2RlLmNvbmNy
ZXRlVHlwZTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICB9CiAgICAgCiAgICAgdmlzaXRU
eXBlUmVmKG5vZGUpCkBAIC0xMDAsMjkgKzEwNSwzNyBAQCBjbGFzcyBSZXdyaXRlciB7CiAgICAg
ICAgIGxldCByZXN1bHQgPSBuZXcgVHlwZVJlZihub2RlLm9yaWdpbiwgbm9kZS5uYW1lLCBub2Rl
LnR5cGVBcmd1bWVudHMubWFwKGFyZ3VtZW50ID0+IGFyZ3VtZW50LnZpc2l0KHRoaXMpKSk7CiAg
ICAgICAgIGlmIChub2RlLnR5cGUpCiAgICAgICAgICAgICByZXN1bHQudHlwZSA9IE5vZGUudmlz
aXQobm9kZS50eXBlLCB0aGlzKTsKKyAgICAgICAgLy8gcmVzdWx0LmNvbmNyZXRlVHlwZSA9IG5v
ZGUuY29uY3JldGVUeXBlOwogICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0KICAgICAKICAg
ICB2aXNpdEZpZWxkKG5vZGUpCiAgICAgewotICAgICAgICByZXR1cm4gbmV3IEZpZWxkKG5vZGUu
b3JpZ2luLCBub2RlLm5hbWUsIG5vZGUudHlwZS52aXNpdCh0aGlzKSk7CisgICAgICAgIGNvbnN0
IHJlc3VsdCA9IG5ldyBGaWVsZChub2RlLm9yaWdpbiwgbm9kZS5uYW1lLCBub2RlLnR5cGUudmlz
aXQodGhpcykpOworICAgICAgICByZXN1bHQuY29uY3JldGVUeXBlID0gbm9kZS5jb25jcmV0ZVR5
cGU7CisgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgfQogICAgIAogICAgIHZpc2l0RW51bU1l
bWJlcihub2RlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIG5ldyBFbnVtTWVtYmVyKG5vZGUub3Jp
Z2luLCBub2RlLm5hbWUsIG5vZGUudmFsdWUudmlzaXQodGhpcykpOworICAgICAgICBjb25zdCBy
ZXN1bHQgPSBuZXcgRW51bU1lbWJlcihub2RlLm9yaWdpbiwgbm9kZS5uYW1lLCBub2RlLnZhbHVl
LnZpc2l0KHRoaXMpKTsKKyAgICAgICAgcmVzdWx0LmNvbmNyZXRlVHlwZSA9IG5vZGUuY29uY3Jl
dGVUeXBlOworICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0KICAgICAKICAgICB2aXNpdEVu
dW1MaXRlcmFsKG5vZGUpCiAgICAgewogICAgICAgICBsZXQgcmVzdWx0ID0gbmV3IEVudW1MaXRl
cmFsKG5vZGUub3JpZ2luLCBub2RlLm1lbWJlcik7CiAgICAgICAgIHJlc3VsdC5lUHRyID0gbm9k
ZS5lUHRyOworICAgICAgICByZXN1bHQuY29uY3JldGVUeXBlID0gbm9kZS5jb25jcmV0ZVR5cGU7
CiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgfQogICAgIAogICAgIHZpc2l0UmVmZXJlbmNl
VHlwZShub2RlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIG5ldyBub2RlLmNvbnN0cnVjdG9yKG5v
ZGUub3JpZ2luLCBub2RlLmFkZHJlc3NTcGFjZSwgbm9kZS5lbGVtZW50VHlwZS52aXNpdCh0aGlz
KSk7CisgICAgICAgIGNvbnN0IHJlc3VsdCA9IG5ldyBub2RlLmNvbnN0cnVjdG9yKG5vZGUub3Jp
Z2luLCBub2RlLmFkZHJlc3NTcGFjZSwgbm9kZS5lbGVtZW50VHlwZS52aXNpdCh0aGlzKSk7Cisg
ICAgICAgIHJlc3VsdC5jb25jcmV0ZVR5cGUgPSBub2RlLmNvbmNyZXRlVHlwZTsKKyAgICAgICAg
cmV0dXJuIHJlc3VsdDsKICAgICB9CiAgICAgCiAgICAgdmlzaXRQdHJUeXBlKG5vZGUpCkBAIC0x
MzcsMTMgKzE1MCwxNiBAQCBjbGFzcyBSZXdyaXRlciB7CiAgICAgCiAgICAgdmlzaXRBcnJheVR5
cGUobm9kZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBuZXcgQXJyYXlUeXBlKG5vZGUub3JpZ2lu
LCBub2RlLmVsZW1lbnRUeXBlLnZpc2l0KHRoaXMpLCBub2RlLm51bUVsZW1lbnRzLnZpc2l0KHRo
aXMpKTsKKyAgICAgICAgY29uc3QgcmVzdWx0ID0gbmV3IEFycmF5VHlwZShub2RlLm9yaWdpbiwg
bm9kZS5lbGVtZW50VHlwZS52aXNpdCh0aGlzKSwgbm9kZS5udW1FbGVtZW50cy52aXNpdCh0aGlz
KSk7CisgICAgICAgIHJlc3VsdC5jb25jcmV0ZVR5cGUgPSBub2RlLmNvbmNyZXRlVHlwZTsKKyAg
ICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICB9CiAgICAgCiAgICAgdmlzaXRBc3NpZ25tZW50KG5v
ZGUpCiAgICAgewogICAgICAgICBsZXQgcmVzdWx0ID0gbmV3IEFzc2lnbm1lbnQobm9kZS5vcmln
aW4sIG5vZGUubGhzLnZpc2l0KHRoaXMpLCBub2RlLnJocy52aXNpdCh0aGlzKSk7CiAgICAgICAg
IHJlc3VsdC50eXBlID0gTm9kZS52aXNpdChub2RlLnR5cGUsIHRoaXMpOworICAgICAgICByZXN1
bHQuY29uY3JldGVUeXBlID0gbm9kZS5jb25jcmV0ZVR5cGU7CiAgICAgICAgIHJldHVybiByZXN1
bHQ7CiAgICAgfQogICAgIApAQCAtMTU0LDYgKzE3MCw3IEBAIGNsYXNzIFJld3JpdGVyIHsKICAg
ICAgICAgcmVzdWx0Lm5ld1ZhbHVlVmFyID0gbm9kZS5uZXdWYWx1ZVZhci52aXNpdCh0aGlzKTsK
ICAgICAgICAgcmVzdWx0Lm5ld1ZhbHVlRXhwID0gbm9kZS5uZXdWYWx1ZUV4cC52aXNpdCh0aGlz
KTsKICAgICAgICAgcmVzdWx0LnJlc3VsdEV4cCA9IG5vZGUucmVzdWx0RXhwLnZpc2l0KHRoaXMp
OworICAgICAgICByZXN1bHQuY29uY3JldGVUeXBlID0gbm9kZS5jb25jcmV0ZVR5cGU7CiAgICAg
ICAgIHJldHVybiByZXN1bHQ7CiAgICAgfQogICAgIApAQCAtMTYyLDYgKzE3OSw3IEBAIGNsYXNz
IFJld3JpdGVyIHsKICAgICAgICAgbGV0IHJlc3VsdCA9IG5ldyBEZXJlZmVyZW5jZUV4cHJlc3Np
b24obm9kZS5vcmlnaW4sIG5vZGUucHRyLnZpc2l0KHRoaXMpKTsKICAgICAgICAgcmVzdWx0LnR5
cGUgPSBOb2RlLnZpc2l0KG5vZGUudHlwZSwgdGhpcyk7CiAgICAgICAgIHJlc3VsdC5hZGRyZXNz
U3BhY2UgPSBub2RlLmFkZHJlc3NTcGFjZTsKKyAgICAgICAgcmVzdWx0LmNvbmNyZXRlVHlwZSA9
IG5vZGUuY29uY3JldGVUeXBlOwogICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0KIApAQCAt
MTY5LDYgKzE4Nyw3IEBAIGNsYXNzIFJld3JpdGVyIHsKICAgICB7CiAgICAgICAgIGxldCByZXN1
bHQgPSBuZXcgVGVybmFyeUV4cHJlc3Npb24obm9kZS5vcmlnaW4sIG5vZGUucHJlZGljYXRlLnZp
c2l0KHRoaXMpLCBub2RlLmJvZHlFeHByZXNzaW9uLnZpc2l0KHRoaXMpLCBub2RlLmVsc2VFeHBy
ZXNzaW9uLnZpc2l0KHRoaXMpKTsKICAgICAgICAgcmVzdWx0LmlzTFZhbHVlID0gbm9kZS5pc0xW
YWx1ZTsKKyAgICAgICAgcmVzdWx0LmNvbmNyZXRlVHlwZSA9IG5vZGUuY29uY3JldGVUeXBlOwog
ICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0KICAgICAKQEAgLTE5MSw2ICsyMTAsNyBAQCBj
bGFzcyBSZXdyaXRlciB7CiAgICAgewogICAgICAgICBsZXQgcmVzdWx0ID0gbmV3IERvdEV4cHJl
c3Npb24obm9kZS5vcmlnaW4sIG5vZGUuc3RydWN0LnZpc2l0KHRoaXMpLCBub2RlLmZpZWxkTmFt
ZSk7CiAgICAgICAgIHRoaXMuX2hhbmRsZVByb3BlcnR5QWNjZXNzRXhwcmVzc2lvbihyZXN1bHQs
IG5vZGUpOworICAgICAgICByZXN1bHQuY29uY3JldGVUeXBlID0gbm9kZS5jb25jcmV0ZVR5cGU7
CiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgfQogICAgIApAQCAtMTk4LDYgKzIxOCw3IEBA
IGNsYXNzIFJld3JpdGVyIHsKICAgICB7CiAgICAgICAgIGxldCByZXN1bHQgPSBuZXcgSW5kZXhF
eHByZXNzaW9uKG5vZGUub3JpZ2luLCBub2RlLmFycmF5LnZpc2l0KHRoaXMpLCBub2RlLmluZGV4
LnZpc2l0KHRoaXMpKTsKICAgICAgICAgdGhpcy5faGFuZGxlUHJvcGVydHlBY2Nlc3NFeHByZXNz
aW9uKHJlc3VsdCwgbm9kZSk7CisgICAgICAgIHJlc3VsdC5jb25jcmV0ZVR5cGUgPSBub2RlLmNv
bmNyZXRlVHlwZTsKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICB9CiAgICAgCkBAIC0yMDUs
NiArMjI2LDcgQEAgY2xhc3MgUmV3cml0ZXIgewogICAgIHsKICAgICAgICAgbGV0IHJlc3VsdCA9
IG5ldyBNYWtlUHRyRXhwcmVzc2lvbihub2RlLm9yaWdpbiwgbm9kZS5sVmFsdWUudmlzaXQodGhp
cykpOwogICAgICAgICByZXN1bHQuZVB0ciA9IG5vZGUuZVB0cjsKKyAgICAgICAgcmVzdWx0LmNv
bmNyZXRlVHlwZSA9IG5vZGUuY29uY3JldGVUeXBlOwogICAgICAgICByZXR1cm4gcmVzdWx0Owog
ICAgIH0KICAgICAKQEAgLTIxNCw2ICsyMzYsNyBAQCBjbGFzcyBSZXdyaXRlciB7CiAgICAgICAg
IGlmIChub2RlLm51bUVsZW1lbnRzKQogICAgICAgICAgICAgcmVzdWx0Lm51bUVsZW1lbnRzID0g
bm9kZS5udW1FbGVtZW50cy52aXNpdCh0aGlzKTsKICAgICAgICAgcmVzdWx0LmVQdHIgPSBub2Rl
LmVQdHI7CisgICAgICAgIHJlc3VsdC5jb25jcmV0ZVR5cGUgPSBub2RlLmNvbmNyZXRlVHlwZTsK
ICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICB9CiAgICAgCkBAIC0yMjEsNiArMjQ0LDcgQEAg
Y2xhc3MgUmV3cml0ZXIgewogICAgIHsKICAgICAgICAgbGV0IHJlc3VsdCA9IG5ldyBDb252ZXJ0
UHRyVG9BcnJheVJlZkV4cHJlc3Npb24obm9kZS5vcmlnaW4sIG5vZGUubFZhbHVlLnZpc2l0KHRo
aXMpKTsKICAgICAgICAgcmVzdWx0LmVQdHIgPSBub2RlLmVQdHI7CisgICAgICAgIHJlc3VsdC5j
b25jcmV0ZVR5cGUgPSBub2RlLmNvbmNyZXRlVHlwZTsKICAgICAgICAgcmV0dXJuIHJlc3VsdDsK
ICAgICB9CiAgICAgCkBAIC0yMjgsMjcgKzI1MiwzNiBAQCBjbGFzcyBSZXdyaXRlciB7CiAgICAg
ewogICAgICAgICBsZXQgcmVzdWx0ID0gbmV3IFZhcmlhYmxlUmVmKG5vZGUub3JpZ2luLCBub2Rl
Lm5hbWUpOwogICAgICAgICByZXN1bHQudmFyaWFibGUgPSB0aGlzLl9nZXRNYXBwaW5nKG5vZGUu
dmFyaWFibGUpOworICAgICAgICByZXN1bHQuY29uY3JldGVUeXBlID0gbm9kZS5jb25jcmV0ZVR5
cGU7CiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgfQogICAgIAogICAgIHZpc2l0UmV0dXJu
KG5vZGUpCiAgICAgewotICAgICAgICByZXR1cm4gbmV3IFJldHVybihub2RlLm9yaWdpbiwgTm9k
ZS52aXNpdChub2RlLnZhbHVlLCB0aGlzKSk7CisgICAgICAgIGNvbnN0IHJlc3VsdCA9IG5ldyBS
ZXR1cm4obm9kZS5vcmlnaW4sIE5vZGUudmlzaXQobm9kZS52YWx1ZSwgdGhpcykpOworICAgICAg
ICByZXN1bHQuY29uY3JldGVUeXBlID0gbm9kZS5jb25jcmV0ZVR5cGU7CisgICAgICAgIHJldHVy
biByZXN1bHQ7CiAgICAgfQogICAgIAogICAgIHZpc2l0Q29udGludWUobm9kZSkKICAgICB7Ci0g
ICAgICAgIHJldHVybiBuZXcgQ29udGludWUobm9kZS5vcmlnaW4pOworICAgICAgICBjb25zdCBy
ZXN1bHQgPSBuZXcgQ29udGludWUobm9kZS5vcmlnaW4pOworICAgICAgICByZXN1bHQuY29uY3Jl
dGVUeXBlID0gbm9kZS5jb25jcmV0ZVR5cGU7CisgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAg
fQogICAgIAogICAgIHZpc2l0QnJlYWsobm9kZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBuZXcg
QnJlYWsobm9kZS5vcmlnaW4pOworICAgICAgICBjb25zdCByZXN1bHQgPSBuZXcgQnJlYWsobm9k
ZS5vcmlnaW4pOworICAgICAgICByZXN1bHQuY29uY3JldGVUeXBlID0gbm9kZS5jb25jcmV0ZVR5
cGU7CisgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgfQogCiAgICAgdmlzaXRUcmFwU3RhdGVt
ZW50KG5vZGUpCiAgICAgewotICAgICAgICByZXR1cm4gbmV3IFRyYXBTdGF0ZW1lbnQobm9kZS5v
cmlnaW4pOworICAgICAgICBjb25zdCByZXN1bHQgPSBuZXcgVHJhcFN0YXRlbWVudChub2RlLm9y
aWdpbik7CisgICAgICAgIHJlc3VsdC5jb25jcmV0ZVR5cGUgPSBub2RlLmNvbmNyZXRlVHlwZTsK
KyAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICB9CiAgICAgCiAgICAgdmlzaXRHZW5lcmljTGl0
ZXJhbChub2RlKQpAQCAtMjU3LDYgKzI5MCw3IEBAIGNsYXNzIFJld3JpdGVyIHsKICAgICAgICAg
bGV0IHJlc3VsdCA9IG5ldyBJbnRMaXRlcmFsKG5vZGUub3JpZ2luLCBub2RlLnZhbHVlKTsKICAg
ICAgICAgcmVzdWx0LnR5cGUgPSBub2RlLnR5cGUudmlzaXQodGhpcyk7CiAgICAgICAgIHJlc3Vs
dC5lUHRyID0gbm9kZS5lUHRyOworICAgICAgICByZXN1bHQuY29uY3JldGVUeXBlID0gbm9kZS5j
b25jcmV0ZVR5cGU7CiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgfQogICAgIApAQCAtMjY1
LDYgKzI5OSw3IEBAIGNsYXNzIFJld3JpdGVyIHsKICAgICAgICAgbGV0IHJlc3VsdCA9IG5ldyBu
b2RlLmNvbnN0cnVjdG9yKG5vZGUub3JpZ2luLCBub2RlLnZhbHVlKTsKICAgICAgICAgcmVzdWx0
LnR5cGUgPSBOb2RlLnZpc2l0KG5vZGUudHlwZSwgdGhpcyk7CiAgICAgICAgIHJlc3VsdC5wcmVm
ZXJyZWRUeXBlID0gbm9kZS5wcmVmZXJyZWRUeXBlLnZpc2l0KHRoaXMpOworICAgICAgICByZXN1
bHQuY29uY3JldGVUeXBlID0gbm9kZS5jb25jcmV0ZVR5cGU7CiAgICAgICAgIHJldHVybiByZXN1
bHQ7CiAgICAgfQogCkBAIC0yNzgsNiArMzEzLDcgQEAgY2xhc3MgUmV3cml0ZXIgewogICAgICAg
ICBsZXQgcmVzdWx0ID0gbmV3IE51bGxMaXRlcmFsKG5vZGUub3JpZ2luKTsKICAgICAgICAgcmVz
dWx0LnR5cGUgPSBub2RlLnR5cGUudmlzaXQodGhpcyk7CiAgICAgICAgIHJlc3VsdC5lUHRyID0g
bm9kZS5lUHRyOworICAgICAgICByZXN1bHQuY29uY3JldGVUeXBlID0gbm9kZS5jb25jcmV0ZVR5
cGU7CiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgfQogICAgIApAQCAtMjg1LDYgKzMyMSw3
IEBAIGNsYXNzIFJld3JpdGVyIHsKICAgICB7CiAgICAgICAgIGxldCByZXN1bHQgPSBuZXcgTnVs
bFR5cGUobm9kZS5vcmlnaW4pOwogICAgICAgICByZXN1bHQudHlwZSA9IE5vZGUudmlzaXQobm9k
ZS50eXBlLCB0aGlzKTsKKyAgICAgICAgcmVzdWx0LmNvbmNyZXRlVHlwZSA9IG5vZGUuY29uY3Jl
dGVUeXBlOwogICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0KIApAQCAtMjk5LDYgKzMzNiw3
IEBAIGNsYXNzIFJld3JpdGVyIHsKICAgICAgICAgICAgIHJlc3VsdC5zZXRDYXN0RGF0YShub2Rl
LnJldHVyblR5cGUudmlzaXQodGhpcykpOwogICAgICAgICByZXN1bHQucmVzdWx0VHlwZSA9IE5v
ZGUudmlzaXQobm9kZS5yZXN1bHRUeXBlLCB0aGlzKTsKICAgICAgICAgcmVzdWx0LnJlc3VsdEVQ
dHIgPSBub2RlLnJlc3VsdEVQdHI7CisgICAgICAgIHJlc3VsdC5jb25jcmV0ZVR5cGUgPSBub2Rl
LmNvbmNyZXRlVHlwZTsKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICB9CiAKQEAgLTMwNyw2
ICszNDUsNyBAQCBjbGFzcyBSZXdyaXRlciB7CiAgICAgICAgIGxldCByZXN1bHQgPSBuZXcgQ2Fs
bEV4cHJlc3Npb24oCiAgICAgICAgICAgICBub2RlLm9yaWdpbiwgbm9kZS5uYW1lLAogICAgICAg
ICAgICAgbm9kZS5hcmd1bWVudExpc3QubWFwKGFyZ3VtZW50ID0+IE5vZGUudmlzaXQoYXJndW1l
bnQsIHRoaXMpKSk7CisgICAgICAgIHJlc3VsdC5jb25jcmV0ZVR5cGUgPSBub2RlLmNvbmNyZXRl
VHlwZTsKICAgICAgICAgcmV0dXJuIHRoaXMucHJvY2Vzc0Rlcml2ZWRDYWxsRGF0YShub2RlLCBy
ZXN1bHQpOwogICAgIH0KICAgICAKQEAgLTMxOCw2ICszNTcsNyBAQCBjbGFzcyBSZXdyaXRlciB7
CiAgICAgICAgICAgICBub2RlLmFyZ3VtZW50TGlzdC5tYXAoYXJnID0+IGFyZy52aXNpdCh0aGlz
KSkKICAgICAgICAgKTsKICAgICAgICAgcmVzdWx0LnJldHVybkVQdHIgPSBub2RlLnJldHVybkVQ
dHI7CisgICAgICAgIHJlc3VsdC5jb25jcmV0ZVR5cGUgPSBub2RlLmNvbmNyZXRlVHlwZTsKICAg
ICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICB9CiAgICAgCkBAIC0zMjUsNiArMzY1LDcgQEAgY2xh
c3MgUmV3cml0ZXIgewogICAgIHsKICAgICAgICAgbGV0IHJlc3VsdCA9IG5ldyBMb2dpY2FsTm90
KG5vZGUub3JpZ2luLCBub2RlLm9wZXJhbmQudmlzaXQodGhpcykpOwogICAgICAgICByZXN1bHQu
ZVB0ciA9IG5vZGUuZVB0cjsKKyAgICAgICAgcmVzdWx0LmNvbmNyZXRlVHlwZSA9IG5vZGUuY29u
Y3JldGVUeXBlOwogICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0KICAgICAKQEAgLTMzMiw2
ICszNzMsNyBAQCBjbGFzcyBSZXdyaXRlciB7CiAgICAgewogICAgICAgICBsZXQgcmVzdWx0ID0g
bmV3IExvZ2ljYWxFeHByZXNzaW9uKG5vZGUub3JpZ2luLCBub2RlLnRleHQsIG5vZGUubGVmdC52
aXNpdCh0aGlzKSwgbm9kZS5yaWdodC52aXNpdCh0aGlzKSk7CiAgICAgICAgIHJlc3VsdC5lUHRy
ID0gbm9kZS5lUHRyOworICAgICAgICByZXN1bHQuY29uY3JldGVUeXBlID0gbm9kZS5jb25jcmV0
ZVR5cGU7CiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgfQogCkBAIC0zNjQsNiArNDA2LDcg
QEAgY2xhc3MgUmV3cml0ZXIgewogICAgICAgICBsZXQgcmVzdWx0ID0gbmV3IFN3aXRjaFN0YXRl
bWVudChub2RlLm9yaWdpbiwgTm9kZS52aXNpdChub2RlLnZhbHVlLCB0aGlzKSk7CiAgICAgICAg
IGZvciAobGV0IHN3aXRjaENhc2Ugb2Ygbm9kZS5zd2l0Y2hDYXNlcykKICAgICAgICAgICAgIHJl
c3VsdC5hZGQoc3dpdGNoQ2FzZS52aXNpdCh0aGlzKSk7CisgICAgICAgIC8vIEZJWE1FOiBXaHkg
d291bGQgYSBzd2l0Y2ggc3RhdGVtZW50IGV2ZXIgaGF2ZSBhbiBhc3NvY2lhdGVkIHR5cGU/CiAg
ICAgICAgIHJlc3VsdC50eXBlID0gTm9kZS52aXNpdChub2RlLnR5cGUsIHRoaXMpOwogICAgICAg
ICByZXR1cm4gcmVzdWx0OwogICAgIH0KQEAgLTM3OSwyNSArNDIyLDMwIEBAIGNsYXNzIFJld3Jp
dGVyIHsKICAgICAgICAgcmVzdWx0Ll9pbmRleCA9IG5vZGUuX2luZGV4OwogICAgICAgICB0aGlz
Ll9tYXBOb2RlKG5vZGUsIHJlc3VsdCk7CiAgICAgICAgIHJlc3VsdC5lUHRyID0gbm9kZS5lUHRy
OworICAgICAgICByZXN1bHQuY29uY3JldGVUeXBlID0gbm9kZS5jb25jcmV0ZVR5cGU7CiAgICAg
ICAgIHJldHVybiByZXN1bHQ7CiAgICAgfQogICAgIAogICAgIHZpc2l0SWRlbnRpdHlFeHByZXNz
aW9uKG5vZGUpCiAgICAgewotICAgICAgICByZXR1cm4gbmV3IElkZW50aXR5RXhwcmVzc2lvbihu
b2RlLnRhcmdldC52aXNpdCh0aGlzKSk7CisgICAgICAgIGNvbnN0IHJlc3VsdCA9IG5ldyBJZGVu
dGl0eUV4cHJlc3Npb24obm9kZS50YXJnZXQudmlzaXQodGhpcykpOworICAgICAgICByZXN1bHQu
Y29uY3JldGVUeXBlID0gbm9kZS5jb25jcmV0ZVR5cGU7CisgICAgICAgIHJldHVybiByZXN1bHQ7
CiAgICAgfQogCiAgICAgdmlzaXRWZWN0b3JUeXBlKG5vZGUpCiAgICAgewotICAgICAgICBjb25z
dCB2ZWNUeXBlID0gbmV3IFZlY3RvclR5cGUobm9kZS5vcmlnaW4sIG5vZGUubmFtZSwgbm9kZS50
eXBlQXJndW1lbnRzLm1hcChhcmd1bWVudCA9PiBhcmd1bWVudC52aXNpdCh0aGlzKSkpOwotICAg
ICAgICB2ZWNUeXBlLl9lbGVtZW50VHlwZSA9IG5vZGUuZWxlbWVudFR5cGUudmlzaXQodGhpcyk7
Ci0gICAgICAgIHJldHVybiB2ZWNUeXBlOworICAgICAgICBjb25zdCByZXN1bHQgPSBuZXcgVmVj
dG9yVHlwZShub2RlLm9yaWdpbiwgbm9kZS5uYW1lLCBub2RlLnR5cGVBcmd1bWVudHMubWFwKGFy
Z3VtZW50ID0+IGFyZ3VtZW50LnZpc2l0KHRoaXMpKSk7CisgICAgICAgIHJlc3VsdC5fZWxlbWVu
dFR5cGUgPSBub2RlLmVsZW1lbnRUeXBlLnZpc2l0KHRoaXMpOworICAgICAgICByZXN1bHQuY29u
Y3JldGVUeXBlID0gbm9kZS5jb25jcmV0ZVR5cGU7CisgICAgICAgIHJldHVybiByZXN1bHQ7CiAg
ICAgfQogCiAgICAgdmlzaXRNYXRyaXhUeXBlKG5vZGUpCiAgICAgewotICAgICAgICBjb25zdCBt
YXRUeXBlID0gbmV3IE1hdHJpeFR5cGUobm9kZS5vcmlnaW4sIG5vZGUubmFtZSwgbm9kZS50eXBl
QXJndW1lbnRzLm1hcChhcmd1bWVudCA9PiBhcmd1bWVudC52aXNpdCh0aGlzKSkpOwotICAgICAg
ICByZXR1cm4gbWF0VHlwZTsKKyAgICAgICAgY29uc3QgcmVzdWx0ID0gbmV3IE1hdHJpeFR5cGUo
bm9kZS5vcmlnaW4sIG5vZGUubmFtZSwgbm9kZS50eXBlQXJndW1lbnRzLm1hcChhcmd1bWVudCA9
PiBhcmd1bWVudC52aXNpdCh0aGlzKSkpOworICAgICAgICByZXN1bHQuY29uY3JldGVUeXBlID0g
bm9kZS5jb25jcmV0ZVR5cGU7CisgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgfQogfQogCmRp
ZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXN0Lmh0bWwgYi9Ub29s
cy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXN0Lmh0bWwKaW5kZXggYzEyZTVkOTlkYzc0YTZm
MTkwMWM5NWRmOTFkMzRhMDVhZTg1NWUxYy4uZDA5OTI0NTA1YWJmMTk2ODVhNmZmY2I1OTc5ZTAw
ODFhN2Q2MzlkNCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVGVz
dC5odG1sCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Rlc3QuaHRtbApAQCAt
MTQsNiArMTQsNyBAQAogPHNjcmlwdCBzcmM9Ik5hdGl2ZVR5cGUuanMiPjwvc2NyaXB0PgogCiA8
c2NyaXB0IHNyYz0iQWRkcmVzc1NwYWNlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJBbm5v
dGF0ZUNvbmNyZXRlVHlwZXMuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IkFub255bW91c1Zh
cmlhYmxlLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJBcnJheVJlZlR5cGUuanMiPjwvc2Ny
aXB0PgogPHNjcmlwdCBzcmM9IkFycmF5VHlwZS5qcyI+PC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9U
b29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXN0LmpzIGIvVG9vbHMvV2ViR1BVU2hhZGlu
Z0xhbmd1YWdlUkkvVGVzdC5qcwppbmRleCA1ZmQ0YmIzYmJmOTNhNTVjMjE1NzdlNDUwN2ExZTUw
NDhkNGJmNTY2Li4yNmQ5MjkxMmIwMmViOTJlMDZhZWRkNWYwYmZiNWM2ODAyNDgzMDY0IDEwMDY0
NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXN0LmpzCisrKyBiL1Rvb2xz
L1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Rlc3QuanMKQEAgLTc5MTksNyArNzkxOSw3IEBAIHRl
c3RzLmlubGluaW5nRG9lc250UHJvZHVjZUFsaWFzaW5nSXNzdWVzID0gKCkgPT4gewogCiBva1Rv
VGVzdCA9IHRydWU7CiAKLWxldCB0ZXN0RmlsdGVyID0gLy4qLzsgLy8gcnVuIGV2ZXJ5dGhpbmcg
YnkgZGVmYXVsdAorbGV0IHRlc3RGaWx0ZXIgPSAvXihtfG58b3xwfHF8cnxzfHR8dXx2fHd8eHx5
fHopLzsgLy8gcnVuIGV2ZXJ5dGhpbmcgYnkgZGVmYXVsdAogbGV0IHRlc3RFeGNsdXNpb25GaWx0
ZXIgPSAvXkRJU0FCTEVEXy87CiBpZiAodGhpc1siYXJndW1lbnRzIl0pIHsKICAgICBmb3IgKGxl
dCBpID0gMDsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykgewpAQCAtNzkzOSwxMiArNzkzOSwx
MiBAQCBmdW5jdGlvbiogZG9UZXN0KHRlc3RGaWx0ZXIpCiAgICAgICAgIHRocm93IG5ldyBFcnJv
cigiVGVzdCBzZXR1cCBpcyBpbmNvbXBsZXRlLiIpOwogICAgIGxldCBiZWZvcmUgPSBwcmVjaXNl
VGltZSgpOwogCi0gICAgcHJpbnQoIkNvbXBpbGluZyBzdGFuZGFyZCBsaWJyYXJ5Li4uIik7Ci0g
ICAgY29uc3QgY29tcGlsZUJlZm9yZSA9IHByZWNpc2VUaW1lKCk7Ci0gICAgeWllbGQ7Ci0gICAg
cHJlcGFyZSgpOwotICAgIGNvbnN0IGNvbXBpbGVBZnRlciA9IHByZWNpc2VUaW1lKCk7Ci0gICAg
cHJpbnQoYCAgICBPSywgdG9vayAke01hdGgucm91bmQoKGNvbXBpbGVBZnRlciAtIGNvbXBpbGVC
ZWZvcmUpICogMTAwMCl9IG1zYCk7CisgICAgLy8gcHJpbnQoIkNvbXBpbGluZyBzdGFuZGFyZCBs
aWJyYXJ5Li4uIik7CisgICAgLy8gY29uc3QgY29tcGlsZUJlZm9yZSA9IHByZWNpc2VUaW1lKCk7
CisgICAgLy8geWllbGQ7CisgICAgLy8gcHJlcGFyZSgpOworICAgIC8vIGNvbnN0IGNvbXBpbGVB
ZnRlciA9IHByZWNpc2VUaW1lKCk7CisgICAgLy8gcHJpbnQoYCAgICBPSywgdG9vayAke01hdGgu
cm91bmQoKGNvbXBpbGVBZnRlciAtIGNvbXBpbGVCZWZvcmUpICogMTAwMCl9IG1zYCk7CiAKICAg
ICBsZXQgbmFtZXMgPSBbXTsKICAgICBmb3IgKGxldCBzIGluIHRlc3RzKQpkaWZmIC0tZ2l0IGEv
VG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVHlwZVJlZi5qcyBiL1Rvb2xzL1dlYkdQVVNo
YWRpbmdMYW5ndWFnZVJJL1R5cGVSZWYuanMKaW5kZXggNDFiYjA2MDJmZjA5NTc0N2MxNzJhY2Q5
ODY3MWUwMDUxNGVjOTAwOC4uYmQ2Y2NmYWFjYjg5ODAzM2EzNzUwZmNkODEwMDA3OTk3NWQ5MmQ1
ZiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVHlwZVJlZi5qcwor
KysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UeXBlUmVmLmpzCkBAIC0xMDEsNiAr
MTAxLDExIEBAIGNsYXNzIFR5cGVSZWYgZXh0ZW5kcyBUeXBlIHsKICAgICAgICAgcmV0dXJuIHRo
aXMudHlwZS51bmlmeU5vZGU7CiAgICAgfQogICAgIAorICAgIGdldCBjb25jcmV0ZVR5cGUoKSAK
KyAgICB7IAorICAgICAgICByZXR1cm4gdGhpcy50eXBlID8gdGhpcy50eXBlLnVuaWZ5Tm9kZSA6
IG51bGw7IAorICAgIH0KKyAgICAKICAgICBwb3B1bGF0ZURlZmF1bHRWYWx1ZShidWZmZXIsIG9m
ZnNldCkKICAgICB7CiAgICAgICAgIHJldHVybiB0aGlzLnR5cGUucG9wdWxhdGVEZWZhdWx0VmFs
dWUoYnVmZmVyLCBvZmZzZXQpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>