<?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>81780</bug_id>
          
          <creation_ts>2012-03-21 07:35:20 -0700</creation_ts>
          <short_desc>Web Inspector: rename ClosureCompilerSourceMapping to SourceMapParser and move it to CompilerScriptMapping.js.</short_desc>
          <delta_ts>2012-03-22 00:15:47 -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>Web Inspector (Deprecated)</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Pavel Podivilov">podivilov</reporter>
          <assigned_to name="Pavel Podivilov">podivilov</assigned_to>
          <cc>apavlov</cc>
    
    <cc>bweinstein</cc>
    
    <cc>dglazkov</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rik</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>584119</commentid>
    <comment_count>0</comment_count>
    <who name="Pavel Podivilov">podivilov</who>
    <bug_when>2012-03-21 07:35:20 -0700</bug_when>
    <thetext>Web Inspector: rename ClosureCompilerSourceMapping to SourceMapParser and move it to CompilerScriptMapping.js.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>584120</commentid>
    <comment_count>1</comment_count>
      <attachid>133038</attachid>
    <who name="Pavel Podivilov">podivilov</who>
    <bug_when>2012-03-21 07:36:39 -0700</bug_when>
    <thetext>Created attachment 133038
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>584144</commentid>
    <comment_count>2</comment_count>
      <attachid>133038</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-21 08:17:48 -0700</bug_when>
    <thetext>Comment on attachment 133038
Patch

Attachment 133038 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/12071422

New failing tests:
http/tests/inspector/compiler-source-mapping.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>584199</commentid>
    <comment_count>3</comment_count>
      <attachid>133038</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-03-21 09:10:59 -0700</bug_when>
    <thetext>Comment on attachment 133038
Patch

Note that one of the tests is failing on the ews</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>585017</commentid>
    <comment_count>4</comment_count>
    <who name="Pavel Podivilov">podivilov</who>
    <bug_when>2012-03-22 00:15:47 -0700</bug_when>
    <thetext>Committed r111655: &lt;http://trac.webkit.org/changeset/111655&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>133038</attachid>
            <date>2012-03-21 07:36:39 -0700</date>
            <delta_ts>2012-03-21 09:10:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-81780-20120321183637.patch</filename>
            <type>text/plain</type>
            <size>26419</size>
            <attacher name="Pavel Podivilov">podivilov</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTExNTI0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmFlNmVjNTgwYWE4OTM2
OTMwYmRkMWExOWZiNjJlMWY2ZDJlMTZjZC4uY2ZhM2I1MjQyZDZkZTlkMzk1YWI5MjIxNjdiODYz
ZTk3ZGI3NzhmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDEyLTAzLTIxICBQYXZl
bCBQb2Rpdmlsb3YgIDxwb2Rpdmlsb3ZAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNw
ZWN0b3I6IHJlbmFtZSBDbG9zdXJlQ29tcGlsZXJTb3VyY2VNYXBwaW5nIHRvIFNvdXJjZU1hcFBh
cnNlciBhbmQgbW92ZSBpdCB0byBDb21waWxlclNjcmlwdE1hcHBpbmcuanMuCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MTc4MAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAg
ICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOgorICAgICAgICAqIGluc3BlY3Rv
ci9jb21waWxlLWZyb250LWVuZC5weToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0Nv
bXBpbGVyU2NyaXB0TWFwcGluZy5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Db21waWxlclNj
cmlwdE1hcHBpbmcucHJvdG90eXBlLmxvYWRTb3VyY2VNYXBGb3JTY3JpcHQpOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLlNvdXJjZU1hcFBhcnNlclBheWxvYWQpOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLlNvdXJjZU1hcFBhcnNlcik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU291cmNlTWFwUGFy
c2VyLnByb3RvdHlwZS5sb2FkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Tb3VyY2VNYXBQYXJz
ZXIucHJvdG90eXBlLmNvbXBpbGVkTG9jYXRpb25Ub1NvdXJjZUxvY2F0aW9uKToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5Tb3VyY2VNYXBQYXJzZXIucHJvdG90eXBlLnNvdXJjZUxvY2F0aW9uVG9D
b21waWxlZExvY2F0aW9uKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Tb3VyY2VNYXBQYXJzZXIu
cHJvdG90eXBlLnNvdXJjZXMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNvdXJjZU1hcFBhcnNl
ci5wcm90b3R5cGUubG9hZFNvdXJjZUNvZGUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNvdXJj
ZU1hcFBhcnNlci5wcm90b3R5cGUuX2ZpbmRNYXBwaW5nKToKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5Tb3VyY2VNYXBQYXJzZXIucHJvdG90eXBlLl9wYXJzZU1hcHBpbmdQYXlsb2FkKToKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5Tb3VyY2VNYXBQYXJzZXIucHJvdG90eXBlLl9wYXJzZVNlY3Rpb25z
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Tb3VyY2VNYXBQYXJzZXIucHJvdG90eXBlLl9wYXJz
ZU1hcCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU291cmNlTWFwUGFyc2VyLnByb3RvdHlwZS5f
aXNTZXBhcmF0b3IpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNvdXJjZU1hcFBhcnNlci5wcm90
b3R5cGUuX2RlY29kZVZMUSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU291cmNlTWFwUGFyc2Vy
LnByb3RvdHlwZS5fY2Fub25pY2FsaXplVVJMKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Tb3Vy
Y2VNYXBQYXJzZXIuU3RyaW5nQ2hhckl0ZXJhdG9yKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5T
b3VyY2VNYXBQYXJzZXIuU3RyaW5nQ2hhckl0ZXJhdG9yLnByb3RvdHlwZS5uZXh0KToKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5Tb3VyY2VNYXBQYXJzZXIuU3RyaW5nQ2hhckl0ZXJhdG9yLnByb3Rv
dHlwZS5wZWVrKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Tb3VyY2VNYXBQYXJzZXIuU3RyaW5n
Q2hhckl0ZXJhdG9yLnByb3RvdHlwZS5oYXNOZXh0KToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJv
bnQtZW5kL0NvbXBpbGVyU291cmNlTWFwcGluZy5qczogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNw
ZWN0b3IvZnJvbnQtZW5kL1dlYktpdC5xcmM6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVu
ZC9pbnNwZWN0b3IuaHRtbDoKKwogMjAxMi0wMy0yMSAgWmVubyBBbGJpc3NlciAgPHplbm9Ad2Vi
a2l0Lm9yZz4KIAogICAgICAgICBbUXRdW1dLMl1bTWFjXSBNaW5pQnJvd3NlciBhc3NlcnRzIGF0
IEhhc2hUYWJsZS5oOjQ4MApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBp
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IDBkZTE2MjAyYjk1OTFhMWMxYzYz
YWNjMDg1Y2E1YjJjM2Q1YTIxNzcuLjU1YTBjNTQ1YjE2ZmY5NmJhMjExZTM4ZGJiNzEwMzcwMTBj
ZmEwZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTYxOTcsNyArNjE5Nyw2IEBACiAgICAgICAgICAg
ICAnaW5zcGVjdG9yL2Zyb250LWVuZC9DaGVja2JveC5qcycsCiAgICAgICAgICAgICAnaW5zcGVj
dG9yL2Zyb250LWVuZC9Db2xvci5qcycsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVu
ZC9Db21waWxlclNjcmlwdE1hcHBpbmcuanMnLAotICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9u
dC1lbmQvQ29tcGlsZXJTb3VyY2VNYXBwaW5nLmpzJywKICAgICAgICAgICAgICdpbnNwZWN0b3Iv
ZnJvbnQtZW5kL0NvbnNvbGVNZXNzYWdlLmpzJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvZnJv
bnQtZW5kL0NvbnNvbGVNb2RlbC5qcycsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVu
ZC9Db25zb2xlUGFuZWwuanMnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52
Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJD
b3JlLnZjcHJvagppbmRleCAyMDc0NWY3ZjRjMmNmMDViNTBjYWVjNzEwZjFkOTVlY2Q0ZDRkNjQ5
Li4yNzdkZjkyMDU4ZmE3MjBkZWRjYWE5MWM4OTZmNWNlMDIwNDI0YjI5IDEwMDc1NQotLS0gYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAtNzM0NTMsMTAgKzczNDUz
LDYgQEAKIAkJCQkJPgogCQkJCTwvRmlsZT4KIAkJCQk8RmlsZQotCQkJCQlSZWxhdGl2ZVBhdGg9
Ii4uXGluc3BlY3Rvclxmcm9udC1lbmRcQ29tcGlsZXJTb3VyY2VNYXBwaW5nLmpzIgotCQkJCQk+
Ci0JCQkJPC9GaWxlPgotCQkJCTxGaWxlCiAJCQkJCVJlbGF0aXZlUGF0aD0iLi5caW5zcGVjdG9y
XGZyb250LWVuZFxDb25zb2xlTWVzc2FnZS5qcyIKIAkJCQkJPgogCQkJCTwvRmlsZT4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9jb21waWxlLWZyb250LWVuZC5weSBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9jb21waWxlLWZyb250LWVuZC5weQppbmRleCA1ODlkZWZm
Mjg2NzQ1NDNlN2JlNGJhMmVmOWI2ZjY4YzI0NDYzZmIxLi5lYTkzN2ZhNWRiNDQ5NjU4ODYzZmU5
OTIzNmI2ZWNmMmYwODU3ODk0IDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
Y29tcGlsZS1mcm9udC1lbmQucHkKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2NvbXBp
bGUtZnJvbnQtZW5kLnB5CkBAIC02Miw3ICs2Miw2IEBAIG1vZHVsZXMgPSBbCiAgICAgICAgICAg
ICAiQXBwbGljYXRpb25DYWNoZU1vZGVsLmpzIiwKICAgICAgICAgICAgICJDb2xvci5qcyIsCiAg
ICAgICAgICAgICAiQ29tcGlsZXJTY3JpcHRNYXBwaW5nLmpzIiwKLSAgICAgICAgICAgICJDb21w
aWxlclNvdXJjZU1hcHBpbmcuanMiLAogICAgICAgICAgICAgIkNvbnNvbGVNb2RlbC5qcyIsCiAg
ICAgICAgICAgICAiQ29udGVudFByb3ZpZGVycy5qcyIsCiAgICAgICAgICAgICAiQ29va2llUGFy
c2VyLmpzIiwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
Q29tcGlsZXJTY3JpcHRNYXBwaW5nLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9Db21waWxlclNjcmlwdE1hcHBpbmcuanMKaW5kZXggYzdlMTNjOTVmMzA0M2ZlOTNmOWYz
MzcxYjhmYWFkMzYyOGE2OTdkYS4uNmM2ZTZiMjY1YTA3ZDgzNmRjYTY0ZDBhNGY3ODQ5MGQ5YTAx
Y2IyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Db21w
aWxlclNjcmlwdE1hcHBpbmcuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9Db21waWxlclNjcmlwdE1hcHBpbmcuanMKQEAgLTExNSwxNiArMTE1LDE2IEBAIFdlYklu
c3BlY3Rvci5Db21waWxlclNjcmlwdE1hcHBpbmcucHJvdG90eXBlID0gewogCiAgICAgLyoqCiAg
ICAgICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuU2NyaXB0fSBzY3JpcHQKLSAgICAgKiBAcmV0dXJu
IHtXZWJJbnNwZWN0b3IuQ2xvc3VyZUNvbXBpbGVyU291cmNlTWFwcGluZ30KKyAgICAgKiBAcmV0
dXJuIHtXZWJJbnNwZWN0b3IuU291cmNlTWFwUGFyc2VyfQogICAgICAqLwogICAgIGxvYWRTb3Vy
Y2VNYXBGb3JTY3JpcHQ6IGZ1bmN0aW9uKHNjcmlwdCkKICAgICB7Ci0gICAgICAgIHZhciBzb3Vy
Y2VNYXBVUkwgPSBXZWJJbnNwZWN0b3IuQ2xvc3VyZUNvbXBpbGVyU291cmNlTWFwcGluZy5wcm90
b3R5cGUuX2Nhbm9uaWNhbGl6ZVVSTChzY3JpcHQuc291cmNlTWFwVVJMLCBzY3JpcHQuc291cmNl
VVJMKTsKKyAgICAgICAgdmFyIHNvdXJjZU1hcFVSTCA9IFdlYkluc3BlY3Rvci5Tb3VyY2VNYXBQ
YXJzZXIucHJvdG90eXBlLl9jYW5vbmljYWxpemVVUkwoc2NyaXB0LnNvdXJjZU1hcFVSTCwgc2Ny
aXB0LnNvdXJjZVVSTCk7CiAgICAgICAgIHZhciBzb3VyY2VNYXAgPSB0aGlzLl9zb3VyY2VNYXBC
eVVSTFtzb3VyY2VNYXBVUkxdOwogICAgICAgICBpZiAoc291cmNlTWFwKQogICAgICAgICAgICAg
cmV0dXJuIHNvdXJjZU1hcDsKIAotICAgICAgICBzb3VyY2VNYXAgPSBuZXcgV2ViSW5zcGVjdG9y
LkNsb3N1cmVDb21waWxlclNvdXJjZU1hcHBpbmcoc2NyaXB0LnNvdXJjZU1hcFVSTCwgc2NyaXB0
LnNvdXJjZVVSTCk7CisgICAgICAgIHNvdXJjZU1hcCA9IG5ldyBXZWJJbnNwZWN0b3IuU291cmNl
TWFwUGFyc2VyKHNjcmlwdC5zb3VyY2VNYXBVUkwsIHNjcmlwdC5zb3VyY2VVUkwpOwogICAgICAg
ICBpZiAoIXNvdXJjZU1hcC5sb2FkKCkpCiAgICAgICAgICAgICByZXR1cm4gbnVsbDsKIApAQCAt
MTQ2LDMgKzE0NiwyNjMgQEAgV2ViSW5zcGVjdG9yLkNvbXBpbGVyU2NyaXB0TWFwcGluZy5wcm90
b3R5cGUgPSB7CiB9CiAKIFdlYkluc3BlY3Rvci5Db21waWxlclNjcmlwdE1hcHBpbmcucHJvdG90
eXBlLl9fcHJvdG9fXyA9IFdlYkluc3BlY3Rvci5TY3JpcHRNYXBwaW5nLnByb3RvdHlwZTsKKwor
LyoqCisgKiBAY29uc3RydWN0b3IKKyAqLworV2ViSW5zcGVjdG9yLlNvdXJjZU1hcFBhcnNlclBh
eWxvYWQgPSBmdW5jdGlvbigpCit7CisgICAgdGhpcy5tYXBwaW5ncyA9ICIiOworICAgIHRoaXMu
c291cmNlUm9vdCA9ICIiOworICAgIHRoaXMuc291cmNlcyA9IFtdOworfQorCisvKioKKyAqIElt
cGxlbWVudHMgU291cmNlIE1hcCBWMyBjb25zdW1lci4gU2VlIGh0dHA6Ly9jb2RlLmdvb2dsZS5j
b20vcC9jbG9zdXJlLWNvbXBpbGVyL3dpa2kvU291cmNlTWFwcworICogZm9yIGZvcm1hdCBkZXNj
cmlwdGlvbi4KKyAqIEBjb25zdHJ1Y3RvcgorICogQHBhcmFtIHtzdHJpbmd9IHNvdXJjZU1hcHBp
bmdVUkwKKyAqIEBwYXJhbSB7c3RyaW5nfSBzY3JpcHRTb3VyY2VPcmlnaW4KKyAqLworV2ViSW5z
cGVjdG9yLlNvdXJjZU1hcFBhcnNlciA9IGZ1bmN0aW9uKHNvdXJjZU1hcHBpbmdVUkwsIHNjcmlw
dFNvdXJjZU9yaWdpbikKK3sKKyAgICBpZiAoIVdlYkluc3BlY3Rvci5Tb3VyY2VNYXBQYXJzZXIu
cHJvdG90eXBlLl9iYXNlNjRNYXApIHsKKyAgICAgICAgY29uc3QgYmFzZTY0RGlnaXRzID0gIkFC
Q0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2
Nzg5Ky8iOworICAgICAgICBXZWJJbnNwZWN0b3IuU291cmNlTWFwUGFyc2VyLnByb3RvdHlwZS5f
YmFzZTY0TWFwID0ge307CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYmFzZTY0RGlnaXRz
Lmxlbmd0aDsgKytpKQorICAgICAgICAgICAgV2ViSW5zcGVjdG9yLlNvdXJjZU1hcFBhcnNlci5w
cm90b3R5cGUuX2Jhc2U2NE1hcFtiYXNlNjREaWdpdHMuY2hhckF0KGkpXSA9IGk7CisgICAgfQor
CisgICAgdGhpcy5fc291cmNlTWFwcGluZ1VSTCA9IHRoaXMuX2Nhbm9uaWNhbGl6ZVVSTChzb3Vy
Y2VNYXBwaW5nVVJMLCBzY3JpcHRTb3VyY2VPcmlnaW4pOworICAgIHRoaXMuX21hcHBpbmdzID0g
W107CisgICAgdGhpcy5fcmV2ZXJzZU1hcHBpbmdzQnlTb3VyY2VVUkwgPSB7fTsKKyAgICB0aGlz
Ll9zb3VyY2VDb250ZW50QnlVUkwgPSB7fTsKK30KKworV2ViSW5zcGVjdG9yLlNvdXJjZU1hcFBh
cnNlci5wcm90b3R5cGUgPSB7CisgICAgLyoqCisgICAgICogQHJldHVybiB7Ym9vbGVhbn0KKyAg
ICAgKi8KKyAgICBsb2FkOiBmdW5jdGlvbigpCisgICAgeworICAgICAgICB0cnkgeworICAgICAg
ICAgICAgLy8gRklYTUU6IG1ha2Ugc2VuZFJlcXVlc3QgYXN5bmMuCisgICAgICAgICAgICB2YXIg
cmVzcG9uc2UgPSBJbnNwZWN0b3JGcm9udGVuZEhvc3QubG9hZFJlc291cmNlU3luY2hyb25vdXNs
eSh0aGlzLl9zb3VyY2VNYXBwaW5nVVJMKTsKKyAgICAgICAgICAgIGlmIChyZXNwb25zZS5zbGlj
ZSgwLCAzKSA9PT0gIildfSIpCisgICAgICAgICAgICAgICAgcmVzcG9uc2UgPSByZXNwb25zZS5z
dWJzdHJpbmcocmVzcG9uc2UuaW5kZXhPZignXG4nKSk7CisgICAgICAgICAgICB0aGlzLl9wYXJz
ZU1hcHBpbmdQYXlsb2FkKEpTT04ucGFyc2UocmVzcG9uc2UpKTsKKyAgICAgICAgICAgIHJldHVy
biB0cnVlCisgICAgICAgIH0gY2F0Y2goZSkgeworICAgICAgICAgICAgY29uc29sZS5lcnJvcihl
Lm1lc3NhZ2UpOworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgfSwK
KworICAgIC8qKgorICAgICAqIEBwYXJhbSB7bnVtYmVyfSBsaW5lTnVtYmVyCisgICAgICogQHBh
cmFtIHtudW1iZXJ9IGNvbHVtbk51bWJlcgorICAgICAqIEByZXR1cm4ge09iamVjdH0KKyAgICAg
Ki8KKyAgICBjb21waWxlZExvY2F0aW9uVG9Tb3VyY2VMb2NhdGlvbjogZnVuY3Rpb24obGluZU51
bWJlciwgY29sdW1uTnVtYmVyKQorICAgIHsKKyAgICAgICAgdmFyIG1hcHBpbmcgPSB0aGlzLl9m
aW5kTWFwcGluZyhsaW5lTnVtYmVyLCBjb2x1bW5OdW1iZXIpOworICAgICAgICByZXR1cm4geyBz
b3VyY2VVUkw6IG1hcHBpbmdbMl0sIGxpbmVOdW1iZXI6IG1hcHBpbmdbM10sIGNvbHVtbk51bWJl
cjogbWFwcGluZ1s0XSB9OworICAgIH0sCisKKyAgICBzb3VyY2VMb2NhdGlvblRvQ29tcGlsZWRM
b2NhdGlvbjogZnVuY3Rpb24oc291cmNlVVJMLCBsaW5lTnVtYmVyKQorICAgIHsKKyAgICAgICAg
dmFyIG1hcHBpbmdzID0gdGhpcy5fcmV2ZXJzZU1hcHBpbmdzQnlTb3VyY2VVUkxbc291cmNlVVJM
XTsKKyAgICAgICAgZm9yICggOyBsaW5lTnVtYmVyIDwgbWFwcGluZ3MubGVuZ3RoOyArK2xpbmVO
dW1iZXIpIHsKKyAgICAgICAgICAgIHZhciBtYXBwaW5nID0gbWFwcGluZ3NbbGluZU51bWJlcl07
CisgICAgICAgICAgICBpZiAobWFwcGluZykKKyAgICAgICAgICAgICAgICByZXR1cm4gW21hcHBp
bmdbMF0sIG1hcHBpbmdbMV1dOworICAgICAgICB9CisgICAgfSwKKworICAgIC8qKgorICAgICAq
IEByZXR1cm4ge0FycmF5LjxzdHJpbmc+fQorICAgICAqLworICAgIHNvdXJjZXM6IGZ1bmN0aW9u
KCkKKyAgICB7CisgICAgICAgIHZhciBzb3VyY2VzID0gW107CisgICAgICAgIGZvciAodmFyIHNv
dXJjZVVSTCBpbiB0aGlzLl9yZXZlcnNlTWFwcGluZ3NCeVNvdXJjZVVSTCkKKyAgICAgICAgICAg
IHNvdXJjZXMucHVzaChzb3VyY2VVUkwpOworICAgICAgICByZXR1cm4gc291cmNlczsKKyAgICB9
LAorCisgICAgLyoqCisgICAgICogQHBhcmFtIHtzdHJpbmd9IHNvdXJjZVVSTAorICAgICAqIEBy
ZXR1cm4ge3N0cmluZ30KKyAgICAgKi8KKyAgICBsb2FkU291cmNlQ29kZTogZnVuY3Rpb24oc291
cmNlVVJMKQorICAgIHsKKyAgICAgICAgaWYgKHRoaXMuX3NvdXJjZUNvbnRlbnRCeVVSTFtzb3Vy
Y2VVUkxdKQorICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3NvdXJjZUNvbnRlbnRCeVVSTFtzb3Vy
Y2VVUkxdOworCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICAvLyBGSVhNRTogbWFrZSBzZW5k
UmVxdWVzdCBhc3luYy4KKyAgICAgICAgICAgIHJldHVybiBJbnNwZWN0b3JGcm9udGVuZEhvc3Qu
bG9hZFJlc291cmNlU3luY2hyb25vdXNseShzb3VyY2VVUkwpOworICAgICAgICB9IGNhdGNoKGUp
IHsKKyAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZS5tZXNzYWdlKTsKKyAgICAgICAgICAgIHJl
dHVybiAiIjsKKyAgICAgICAgfQorICAgIH0sCisKKyAgICBfZmluZE1hcHBpbmc6IGZ1bmN0aW9u
KGxpbmVOdW1iZXIsIGNvbHVtbk51bWJlcikKKyAgICB7CisgICAgICAgIHZhciBmaXJzdCA9IDA7
CisgICAgICAgIHZhciBjb3VudCA9IHRoaXMuX21hcHBpbmdzLmxlbmd0aDsKKyAgICAgICAgd2hp
bGUgKGNvdW50ID4gMSkgeworICAgICAgICAgIHZhciBzdGVwID0gY291bnQgPj4gMTsKKyAgICAg
ICAgICB2YXIgbWlkZGxlID0gZmlyc3QgKyBzdGVwOworICAgICAgICAgIHZhciBtYXBwaW5nID0g
dGhpcy5fbWFwcGluZ3NbbWlkZGxlXTsKKyAgICAgICAgICBpZiAobGluZU51bWJlciA8IG1hcHBp
bmdbMF0gfHwgKGxpbmVOdW1iZXIgPT0gbWFwcGluZ1swXSAmJiBjb2x1bW5OdW1iZXIgPCBtYXBw
aW5nWzFdKSkKKyAgICAgICAgICAgICAgY291bnQgPSBzdGVwOworICAgICAgICAgIGVsc2Ugewor
ICAgICAgICAgICAgICBmaXJzdCA9IG1pZGRsZTsKKyAgICAgICAgICAgICAgY291bnQgLT0gc3Rl
cDsKKyAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRoaXMuX21hcHBpbmdz
W2ZpcnN0XTsKKyAgICB9LAorCisgICAgX3BhcnNlTWFwcGluZ1BheWxvYWQ6IGZ1bmN0aW9uKG1h
cHBpbmdQYXlsb2FkKQorICAgIHsKKyAgICAgICAgaWYgKG1hcHBpbmdQYXlsb2FkLnNlY3Rpb25z
KQorICAgICAgICAgICAgdGhpcy5fcGFyc2VTZWN0aW9ucyhtYXBwaW5nUGF5bG9hZC5zZWN0aW9u
cyk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHRoaXMuX3BhcnNlTWFwKG1hcHBpbmdQYXls
b2FkLCAwLCAwKTsKKyAgICB9LAorCisgICAgX3BhcnNlU2VjdGlvbnM6IGZ1bmN0aW9uKHNlY3Rp
b25zKQorICAgIHsKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzZWN0aW9ucy5sZW5ndGg7
ICsraSkgeworICAgICAgICAgICAgdmFyIHNlY3Rpb24gPSBzZWN0aW9uc1tpXTsKKyAgICAgICAg
ICAgIHRoaXMuX3BhcnNlTWFwKHNlY3Rpb24ubWFwLCBzZWN0aW9uLm9mZnNldC5saW5lLCBzZWN0
aW9uLm9mZnNldC5jb2x1bW4pCisgICAgICAgIH0KKyAgICB9LAorCisgICAgX3BhcnNlTWFwOiBm
dW5jdGlvbihtYXAsIGxpbmVOdW1iZXIsIGNvbHVtbk51bWJlcikKKyAgICB7CisgICAgICAgIHZh
ciBzb3VyY2VJbmRleCA9IDA7CisgICAgICAgIHZhciBzb3VyY2VMaW5lTnVtYmVyID0gMDsKKyAg
ICAgICAgdmFyIHNvdXJjZUNvbHVtbk51bWJlciA9IDA7CisgICAgICAgIHZhciBuYW1lSW5kZXgg
PSAwOworCisgICAgICAgIHZhciBzb3VyY2VzID0gW107CisgICAgICAgIGZvciAodmFyIGkgPSAw
OyBpIDwgbWFwLnNvdXJjZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIHZhciBzb3VyY2VV
UkwgPSBtYXAuc291cmNlc1tpXTsKKyAgICAgICAgICAgIGlmIChtYXAuc291cmNlUm9vdCkKKyAg
ICAgICAgICAgICAgICBzb3VyY2VVUkwgPSBtYXAuc291cmNlUm9vdCArICIvIiArIHNvdXJjZVVS
TDsKKyAgICAgICAgICAgIHZhciB1cmwgPSB0aGlzLl9jYW5vbmljYWxpemVVUkwoc291cmNlVVJM
LCB0aGlzLl9zb3VyY2VNYXBwaW5nVVJMKTsKKyAgICAgICAgICAgIHNvdXJjZXMucHVzaCh1cmwp
OworICAgICAgICAgICAgaWYgKCF0aGlzLl9yZXZlcnNlTWFwcGluZ3NCeVNvdXJjZVVSTFt1cmxd
KQorICAgICAgICAgICAgICAgIHRoaXMuX3JldmVyc2VNYXBwaW5nc0J5U291cmNlVVJMW3VybF0g
PSBbXTsKKyAgICAgICAgICAgIGlmIChtYXAuc291cmNlc0NvbnRlbnQgJiYgbWFwLnNvdXJjZXND
b250ZW50W2ldKQorICAgICAgICAgICAgICAgIHRoaXMuX3NvdXJjZUNvbnRlbnRCeVVSTFt1cmxd
ID0gbWFwLnNvdXJjZXNDb250ZW50W2ldOworICAgICAgICB9CisKKyAgICAgICAgdmFyIHN0cmlu
Z0NoYXJJdGVyYXRvciA9IG5ldyBXZWJJbnNwZWN0b3IuU291cmNlTWFwUGFyc2VyLlN0cmluZ0No
YXJJdGVyYXRvcihtYXAubWFwcGluZ3MpOworICAgICAgICB2YXIgc291cmNlVVJMID0gc291cmNl
c1tzb3VyY2VJbmRleF07CisgICAgICAgIHZhciByZXZlcnNlTWFwcGluZ3MgPSB0aGlzLl9yZXZl
cnNlTWFwcGluZ3NCeVNvdXJjZVVSTFtzb3VyY2VVUkxdOworCisgICAgICAgIHdoaWxlICh0cnVl
KSB7CisgICAgICAgICAgICBpZiAoc3RyaW5nQ2hhckl0ZXJhdG9yLnBlZWsoKSA9PT0gIiwiKQor
ICAgICAgICAgICAgICAgIHN0cmluZ0NoYXJJdGVyYXRvci5uZXh0KCk7CisgICAgICAgICAgICBl
bHNlIHsKKyAgICAgICAgICAgICAgICB3aGlsZSAoc3RyaW5nQ2hhckl0ZXJhdG9yLnBlZWsoKSA9
PT0gIjsiKSB7CisgICAgICAgICAgICAgICAgICAgIGxpbmVOdW1iZXIgKz0gMTsKKyAgICAgICAg
ICAgICAgICAgICAgY29sdW1uTnVtYmVyID0gMDsKKyAgICAgICAgICAgICAgICAgICAgc3RyaW5n
Q2hhckl0ZXJhdG9yLm5leHQoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
aWYgKCFzdHJpbmdDaGFySXRlcmF0b3IuaGFzTmV4dCgpKQorICAgICAgICAgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgY29sdW1uTnVtYmVyICs9IHRoaXMu
X2RlY29kZVZMUShzdHJpbmdDaGFySXRlcmF0b3IpOworICAgICAgICAgICAgaWYgKCF0aGlzLl9p
c1NlcGFyYXRvcihzdHJpbmdDaGFySXRlcmF0b3IucGVlaygpKSkgeworICAgICAgICAgICAgICAg
IHZhciBzb3VyY2VJbmRleERlbHRhID0gdGhpcy5fZGVjb2RlVkxRKHN0cmluZ0NoYXJJdGVyYXRv
cik7CisgICAgICAgICAgICAgICAgaWYgKHNvdXJjZUluZGV4RGVsdGEpIHsKKyAgICAgICAgICAg
ICAgICAgICAgc291cmNlSW5kZXggKz0gc291cmNlSW5kZXhEZWx0YTsKKyAgICAgICAgICAgICAg
ICAgICAgc291cmNlVVJMID0gc291cmNlc1tzb3VyY2VJbmRleF07CisgICAgICAgICAgICAgICAg
ICAgIHJldmVyc2VNYXBwaW5ncyA9IHRoaXMuX3JldmVyc2VNYXBwaW5nc0J5U291cmNlVVJMW3Nv
dXJjZVVSTF07CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHNvdXJjZUxpbmVO
dW1iZXIgKz0gdGhpcy5fZGVjb2RlVkxRKHN0cmluZ0NoYXJJdGVyYXRvcik7CisgICAgICAgICAg
ICAgICAgc291cmNlQ29sdW1uTnVtYmVyICs9IHRoaXMuX2RlY29kZVZMUShzdHJpbmdDaGFySXRl
cmF0b3IpOworICAgICAgICAgICAgICAgIGlmICghdGhpcy5faXNTZXBhcmF0b3Ioc3RyaW5nQ2hh
ckl0ZXJhdG9yLnBlZWsoKSkpCisgICAgICAgICAgICAgICAgICAgIG5hbWVJbmRleCArPSB0aGlz
Ll9kZWNvZGVWTFEoc3RyaW5nQ2hhckl0ZXJhdG9yKTsKKworICAgICAgICAgICAgICAgIHRoaXMu
X21hcHBpbmdzLnB1c2goW2xpbmVOdW1iZXIsIGNvbHVtbk51bWJlciwgc291cmNlVVJMLCBzb3Vy
Y2VMaW5lTnVtYmVyLCBzb3VyY2VDb2x1bW5OdW1iZXJdKTsKKyAgICAgICAgICAgICAgICBpZiAo
IXJldmVyc2VNYXBwaW5nc1tzb3VyY2VMaW5lTnVtYmVyXSkKKyAgICAgICAgICAgICAgICAgICAg
cmV2ZXJzZU1hcHBpbmdzW3NvdXJjZUxpbmVOdW1iZXJdID0gW2xpbmVOdW1iZXIsIGNvbHVtbk51
bWJlcl07CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9LAorCisgICAgX2lzU2VwYXJh
dG9yOiBmdW5jdGlvbihjaGFyKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGNoYXIgPT09ICIsIiB8
fCBjaGFyID09PSAiOyI7CisgICAgfSwKKworICAgIF9kZWNvZGVWTFE6IGZ1bmN0aW9uKHN0cmlu
Z0NoYXJJdGVyYXRvcikKKyAgICB7CisgICAgICAgIC8vIFJlYWQgdW5zaWduZWQgdmFsdWUuCisg
ICAgICAgIHZhciByZXN1bHQgPSAwOworICAgICAgICB2YXIgc2hpZnQgPSAwOworICAgICAgICBk
byB7CisgICAgICAgICAgICB2YXIgZGlnaXQgPSB0aGlzLl9iYXNlNjRNYXBbc3RyaW5nQ2hhckl0
ZXJhdG9yLm5leHQoKV07CisgICAgICAgICAgICByZXN1bHQgKz0gKGRpZ2l0ICYgdGhpcy5fVkxR
X0JBU0VfTUFTSykgPDwgc2hpZnQ7CisgICAgICAgICAgICBzaGlmdCArPSB0aGlzLl9WTFFfQkFT
RV9TSElGVDsKKyAgICAgICAgfSB3aGlsZSAoZGlnaXQgJiB0aGlzLl9WTFFfQ09OVElOVUFUSU9O
X01BU0spOworCisgICAgICAgIC8vIEZpeCB0aGUgc2lnbi4KKyAgICAgICAgdmFyIG5lZ2F0aXZl
ID0gcmVzdWx0ICYgMTsKKyAgICAgICAgcmVzdWx0ID4+PSAxOworICAgICAgICByZXR1cm4gbmVn
YXRpdmUgPyAtcmVzdWx0IDogcmVzdWx0OworICAgIH0sCisKKyAgICBfY2Fub25pY2FsaXplVVJM
OiBmdW5jdGlvbih1cmwsIGJhc2VVUkwpCisgICAgeworICAgICAgICBpZiAoIXVybCB8fCAhYmFz
ZVVSTCB8fCB1cmwuYXNQYXJzZWRVUkwoKSB8fCB1cmwuc3Vic3RyaW5nKDAsIDUpID09PSAiZGF0
YToiKQorICAgICAgICAgICAgcmV0dXJuIHVybDsKKworICAgICAgICB2YXIgYmFzZSA9IGJhc2VV
UkwuYXNQYXJzZWRVUkwoKTsKKyAgICAgICAgaWYgKCFiYXNlKQorICAgICAgICAgICAgcmV0dXJu
IHVybDsKKworICAgICAgICB2YXIgYmFzZUhvc3QgPSBiYXNlLnNjaGVtZSArICI6Ly8iICsgYmFz
ZS5ob3N0ICsgKGJhc2UucG9ydCA/ICI6IiArIGJhc2UucG9ydCA6ICIiKTsKKyAgICAgICAgaWYg
KHVybFswXSA9PT0gIi8iKQorICAgICAgICAgICAgcmV0dXJuIGJhc2VIb3N0ICsgdXJsOworICAg
ICAgICByZXR1cm4gYmFzZUhvc3QgKyBiYXNlLmZpcnN0UGF0aENvbXBvbmVudHMgKyB1cmw7Cisg
ICAgfSwKKworICAgIF9WTFFfQkFTRV9TSElGVDogNSwKKyAgICBfVkxRX0JBU0VfTUFTSzogKDEg
PDwgNSkgLSAxLAorICAgIF9WTFFfQ09OVElOVUFUSU9OX01BU0s6IDEgPDwgNQorfQorCisvKioK
KyAqIEBjb25zdHJ1Y3RvcgorICovCitXZWJJbnNwZWN0b3IuU291cmNlTWFwUGFyc2VyLlN0cmlu
Z0NoYXJJdGVyYXRvciA9IGZ1bmN0aW9uKHN0cmluZykKK3sKKyAgICB0aGlzLl9zdHJpbmcgPSBz
dHJpbmc7CisgICAgdGhpcy5fcG9zaXRpb24gPSAwOworfQorCitXZWJJbnNwZWN0b3IuU291cmNl
TWFwUGFyc2VyLlN0cmluZ0NoYXJJdGVyYXRvci5wcm90b3R5cGUgPSB7CisgICAgbmV4dDogZnVu
Y3Rpb24oKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuX3N0cmluZy5jaGFyQXQodGhpcy5f
cG9zaXRpb24rKyk7CisgICAgfSwKKworICAgIHBlZWs6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAg
ICAgIHJldHVybiB0aGlzLl9zdHJpbmcuY2hhckF0KHRoaXMuX3Bvc2l0aW9uKTsKKyAgICB9LAor
CisgICAgaGFzTmV4dDogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuX3Bv
c2l0aW9uIDwgdGhpcy5fc3RyaW5nLmxlbmd0aDsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NvbXBpbGVyU291cmNlTWFwcGluZy5qcyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29tcGlsZXJTb3VyY2VNYXBwaW5n
LmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4N2Y1Y2IyZWQwZWViYTZkZDVmZDZh
ODRlMmI5NDc4MzMzZmYyNThkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29tcGlsZXJTb3Vy
Y2VNYXBwaW5nLmpzCisrKyAvZGV2L251bGwKQEAgLTEsMzE4ICswLDAgQEAKLS8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSAqIG1ldDoKLSAqCi0gKiAgICAgKiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgotICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZQotICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotICogaW4gdGhlIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotICogZGlzdHJpYnV0
aW9uLgotICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5h
bWVzIG9mIGl0cwotICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJv
bW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVj
aWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotICogIkFT
IElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QKLSAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUgotICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSAqIE9XTkVSIE9SIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAot
ICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVAotICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0vKioKLSAqIEBpbnRl
cmZhY2UKLSAqLwotV2ViSW5zcGVjdG9yLkNvbXBpbGVyU291cmNlTWFwcGluZyA9IGZ1bmN0aW9u
KCkKLXsKLX0KLQotV2ViSW5zcGVjdG9yLkNvbXBpbGVyU291cmNlTWFwcGluZy5wcm90b3R5cGUg
PSB7Ci0gICAgLyoqCi0gICAgICogQHBhcmFtIHtudW1iZXJ9IGxpbmVOdW1iZXIKLSAgICAgKiBA
cGFyYW0ge251bWJlcn0gY29sdW1uTnVtYmVyCi0gICAgICogQHJldHVybiB7T2JqZWN0fQotICAg
ICAqLwotICAgIGNvbXBpbGVkTG9jYXRpb25Ub1NvdXJjZUxvY2F0aW9uOiBmdW5jdGlvbihsaW5l
TnVtYmVyLCBjb2x1bW5OdW1iZXIpIHsgfSwKLQotICAgIC8qKgotICAgICAqIEBwYXJhbSB7c3Ry
aW5nfSBzb3VyY2VVUkwKLSAgICAgKiBAcGFyYW0ge251bWJlcn0gbGluZU51bWJlcgotICAgICAq
IEByZXR1cm4ge0FycmF5LjxudW1iZXI+fQotICAgICAqLwotICAgIHNvdXJjZUxvY2F0aW9uVG9D
b21waWxlZExvY2F0aW9uOiBmdW5jdGlvbihzb3VyY2VVUkwsIGxpbmVOdW1iZXIpIHsgfSwKLQot
ICAgIC8qKgotICAgICAqIEByZXR1cm4ge0FycmF5LjxzdHJpbmc+fQotICAgICAqLwotICAgIHNv
dXJjZXM6IGZ1bmN0aW9uKCkgeyB9Ci19Ci0KLS8qKgotICogQGNvbnN0cnVjdG9yCi0gKi8KLVdl
Ykluc3BlY3Rvci5DbG9zdXJlQ29tcGlsZXJTb3VyY2VNYXBwaW5nUGF5bG9hZCA9IGZ1bmN0aW9u
KCkKLXsKLSAgICB0aGlzLm1hcHBpbmdzID0gIiI7Ci0gICAgdGhpcy5zb3VyY2VSb290ID0gIiI7
Ci0gICAgdGhpcy5zb3VyY2VzID0gW107Ci19Ci0KLS8qKgotICogSW1wbGVtZW50cyBTb3VyY2Ug
TWFwIFYzIGNvbnN1bWVyLiBTZWUgaHR0cDovL2NvZGUuZ29vZ2xlLmNvbS9wL2Nsb3N1cmUtY29t
cGlsZXIvd2lraS9Tb3VyY2VNYXBzCi0gKiBmb3IgZm9ybWF0IGRlc2NyaXB0aW9uLgotICogQGlt
cGxlbWVudHMge1dlYkluc3BlY3Rvci5Db21waWxlclNvdXJjZU1hcHBpbmd9Ci0gKiBAY29uc3Ry
dWN0b3IKLSAqIEBwYXJhbSB7c3RyaW5nfSBzb3VyY2VNYXBwaW5nVVJMCi0gKiBAcGFyYW0ge3N0
cmluZ30gc2NyaXB0U291cmNlT3JpZ2luCi0gKi8KLVdlYkluc3BlY3Rvci5DbG9zdXJlQ29tcGls
ZXJTb3VyY2VNYXBwaW5nID0gZnVuY3Rpb24oc291cmNlTWFwcGluZ1VSTCwgc2NyaXB0U291cmNl
T3JpZ2luKQotewotICAgIGlmICghV2ViSW5zcGVjdG9yLkNsb3N1cmVDb21waWxlclNvdXJjZU1h
cHBpbmcucHJvdG90eXBlLl9iYXNlNjRNYXApIHsKLSAgICAgICAgY29uc3QgYmFzZTY0RGlnaXRz
ID0gIkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXow
MTIzNDU2Nzg5Ky8iOwotICAgICAgICBXZWJJbnNwZWN0b3IuQ2xvc3VyZUNvbXBpbGVyU291cmNl
TWFwcGluZy5wcm90b3R5cGUuX2Jhc2U2NE1hcCA9IHt9OwotICAgICAgICBmb3IgKHZhciBpID0g
MDsgaSA8IGJhc2U2NERpZ2l0cy5sZW5ndGg7ICsraSkKLSAgICAgICAgICAgIFdlYkluc3BlY3Rv
ci5DbG9zdXJlQ29tcGlsZXJTb3VyY2VNYXBwaW5nLnByb3RvdHlwZS5fYmFzZTY0TWFwW2Jhc2U2
NERpZ2l0cy5jaGFyQXQoaSldID0gaTsKLSAgICB9Ci0KLSAgICB0aGlzLl9zb3VyY2VNYXBwaW5n
VVJMID0gdGhpcy5fY2Fub25pY2FsaXplVVJMKHNvdXJjZU1hcHBpbmdVUkwsIHNjcmlwdFNvdXJj
ZU9yaWdpbik7Ci0gICAgdGhpcy5fbWFwcGluZ3MgPSBbXTsKLSAgICB0aGlzLl9yZXZlcnNlTWFw
cGluZ3NCeVNvdXJjZVVSTCA9IHt9OwotICAgIHRoaXMuX3NvdXJjZUNvbnRlbnRCeVVSTCA9IHt9
OwotfQotCi1XZWJJbnNwZWN0b3IuQ2xvc3VyZUNvbXBpbGVyU291cmNlTWFwcGluZy5wcm90b3R5
cGUgPSB7Ci0gICAgLyoqCi0gICAgICogQHJldHVybiB7Ym9vbGVhbn0KLSAgICAgKi8KLSAgICBs
b2FkOiBmdW5jdGlvbigpCi0gICAgewotICAgICAgICB0cnkgewotICAgICAgICAgICAgLy8gRklY
TUU6IG1ha2Ugc2VuZFJlcXVlc3QgYXN5bmMuCi0gICAgICAgICAgICB2YXIgcmVzcG9uc2UgPSBJ
bnNwZWN0b3JGcm9udGVuZEhvc3QubG9hZFJlc291cmNlU3luY2hyb25vdXNseSh0aGlzLl9zb3Vy
Y2VNYXBwaW5nVVJMKTsKLSAgICAgICAgICAgIGlmIChyZXNwb25zZS5zbGljZSgwLCAzKSA9PT0g
IildfSIpCi0gICAgICAgICAgICAgICAgcmVzcG9uc2UgPSByZXNwb25zZS5zdWJzdHJpbmcocmVz
cG9uc2UuaW5kZXhPZignXG4nKSk7Ci0gICAgICAgICAgICB0aGlzLl9wYXJzZU1hcHBpbmdQYXls
b2FkKEpTT04ucGFyc2UocmVzcG9uc2UpKTsKLSAgICAgICAgICAgIHJldHVybiB0cnVlCi0gICAg
ICAgIH0gY2F0Y2goZSkgewotICAgICAgICAgICAgY29uc29sZS5lcnJvcihlLm1lc3NhZ2UpOwot
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICB9Ci0gICAgfSwKLQotICAgIC8qKgot
ICAgICAqIEBwYXJhbSB7bnVtYmVyfSBsaW5lTnVtYmVyCi0gICAgICogQHBhcmFtIHtudW1iZXJ9
IGNvbHVtbk51bWJlcgotICAgICAqIEByZXR1cm4ge09iamVjdH0KLSAgICAgKi8KLSAgICBjb21w
aWxlZExvY2F0aW9uVG9Tb3VyY2VMb2NhdGlvbjogZnVuY3Rpb24obGluZU51bWJlciwgY29sdW1u
TnVtYmVyKQotICAgIHsKLSAgICAgICAgdmFyIG1hcHBpbmcgPSB0aGlzLl9maW5kTWFwcGluZyhs
aW5lTnVtYmVyLCBjb2x1bW5OdW1iZXIpOwotICAgICAgICByZXR1cm4geyBzb3VyY2VVUkw6IG1h
cHBpbmdbMl0sIGxpbmVOdW1iZXI6IG1hcHBpbmdbM10sIGNvbHVtbk51bWJlcjogbWFwcGluZ1s0
XSB9OwotICAgIH0sCi0KLSAgICBzb3VyY2VMb2NhdGlvblRvQ29tcGlsZWRMb2NhdGlvbjogZnVu
Y3Rpb24oc291cmNlVVJMLCBsaW5lTnVtYmVyKQotICAgIHsKLSAgICAgICAgdmFyIG1hcHBpbmdz
ID0gdGhpcy5fcmV2ZXJzZU1hcHBpbmdzQnlTb3VyY2VVUkxbc291cmNlVVJMXTsKLSAgICAgICAg
Zm9yICggOyBsaW5lTnVtYmVyIDwgbWFwcGluZ3MubGVuZ3RoOyArK2xpbmVOdW1iZXIpIHsKLSAg
ICAgICAgICAgIHZhciBtYXBwaW5nID0gbWFwcGluZ3NbbGluZU51bWJlcl07Ci0gICAgICAgICAg
ICBpZiAobWFwcGluZykKLSAgICAgICAgICAgICAgICByZXR1cm4gW21hcHBpbmdbMF0sIG1hcHBp
bmdbMV1dOwotICAgICAgICB9Ci0gICAgfSwKLQotICAgIC8qKgotICAgICAqIEByZXR1cm4ge0Fy
cmF5LjxzdHJpbmc+fQotICAgICAqLwotICAgIHNvdXJjZXM6IGZ1bmN0aW9uKCkKLSAgICB7Ci0g
ICAgICAgIHZhciBzb3VyY2VzID0gW107Ci0gICAgICAgIGZvciAodmFyIHNvdXJjZVVSTCBpbiB0
aGlzLl9yZXZlcnNlTWFwcGluZ3NCeVNvdXJjZVVSTCkKLSAgICAgICAgICAgIHNvdXJjZXMucHVz
aChzb3VyY2VVUkwpOwotICAgICAgICByZXR1cm4gc291cmNlczsKLSAgICB9LAotCi0gICAgLyoq
Ci0gICAgICogQHBhcmFtIHtzdHJpbmd9IHNvdXJjZVVSTAotICAgICAqIEByZXR1cm4ge3N0cmlu
Z30KLSAgICAgKi8KLSAgICBsb2FkU291cmNlQ29kZTogZnVuY3Rpb24oc291cmNlVVJMKQotICAg
IHsKLSAgICAgICAgaWYgKHRoaXMuX3NvdXJjZUNvbnRlbnRCeVVSTFtzb3VyY2VVUkxdKQotICAg
ICAgICAgICAgcmV0dXJuIHRoaXMuX3NvdXJjZUNvbnRlbnRCeVVSTFtzb3VyY2VVUkxdOwotCi0g
ICAgICAgIHRyeSB7Ci0gICAgICAgICAgICAvLyBGSVhNRTogbWFrZSBzZW5kUmVxdWVzdCBhc3lu
Yy4KLSAgICAgICAgICAgIHJldHVybiBJbnNwZWN0b3JGcm9udGVuZEhvc3QubG9hZFJlc291cmNl
U3luY2hyb25vdXNseShzb3VyY2VVUkwpOwotICAgICAgICB9IGNhdGNoKGUpIHsKLSAgICAgICAg
ICAgIGNvbnNvbGUuZXJyb3IoZS5tZXNzYWdlKTsKLSAgICAgICAgICAgIHJldHVybiAiIjsKLSAg
ICAgICAgfQotICAgIH0sCi0KLSAgICBfZmluZE1hcHBpbmc6IGZ1bmN0aW9uKGxpbmVOdW1iZXIs
IGNvbHVtbk51bWJlcikKLSAgICB7Ci0gICAgICAgIHZhciBmaXJzdCA9IDA7Ci0gICAgICAgIHZh
ciBjb3VudCA9IHRoaXMuX21hcHBpbmdzLmxlbmd0aDsKLSAgICAgICAgd2hpbGUgKGNvdW50ID4g
MSkgewotICAgICAgICAgIHZhciBzdGVwID0gY291bnQgPj4gMTsKLSAgICAgICAgICB2YXIgbWlk
ZGxlID0gZmlyc3QgKyBzdGVwOwotICAgICAgICAgIHZhciBtYXBwaW5nID0gdGhpcy5fbWFwcGlu
Z3NbbWlkZGxlXTsKLSAgICAgICAgICBpZiAobGluZU51bWJlciA8IG1hcHBpbmdbMF0gfHwgKGxp
bmVOdW1iZXIgPT0gbWFwcGluZ1swXSAmJiBjb2x1bW5OdW1iZXIgPCBtYXBwaW5nWzFdKSkKLSAg
ICAgICAgICAgICAgY291bnQgPSBzdGVwOwotICAgICAgICAgIGVsc2UgewotICAgICAgICAgICAg
ICBmaXJzdCA9IG1pZGRsZTsKLSAgICAgICAgICAgICAgY291bnQgLT0gc3RlcDsKLSAgICAgICAg
ICB9Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIHRoaXMuX21hcHBpbmdzW2ZpcnN0XTsKLSAg
ICB9LAotCi0gICAgX3BhcnNlTWFwcGluZ1BheWxvYWQ6IGZ1bmN0aW9uKG1hcHBpbmdQYXlsb2Fk
KQotICAgIHsKLSAgICAgICAgaWYgKG1hcHBpbmdQYXlsb2FkLnNlY3Rpb25zKQotICAgICAgICAg
ICAgdGhpcy5fcGFyc2VTZWN0aW9ucyhtYXBwaW5nUGF5bG9hZC5zZWN0aW9ucyk7Ci0gICAgICAg
IGVsc2UKLSAgICAgICAgICAgIHRoaXMuX3BhcnNlTWFwKG1hcHBpbmdQYXlsb2FkLCAwLCAwKTsK
LSAgICB9LAotCi0gICAgX3BhcnNlU2VjdGlvbnM6IGZ1bmN0aW9uKHNlY3Rpb25zKQotICAgIHsK
LSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzZWN0aW9ucy5sZW5ndGg7ICsraSkgewotICAg
ICAgICAgICAgdmFyIHNlY3Rpb24gPSBzZWN0aW9uc1tpXTsKLSAgICAgICAgICAgIHRoaXMuX3Bh
cnNlTWFwKHNlY3Rpb24ubWFwLCBzZWN0aW9uLm9mZnNldC5saW5lLCBzZWN0aW9uLm9mZnNldC5j
b2x1bW4pCi0gICAgICAgIH0KLSAgICB9LAotCi0gICAgX3BhcnNlTWFwOiBmdW5jdGlvbihtYXAs
IGxpbmVOdW1iZXIsIGNvbHVtbk51bWJlcikKLSAgICB7Ci0gICAgICAgIHZhciBzb3VyY2VJbmRl
eCA9IDA7Ci0gICAgICAgIHZhciBzb3VyY2VMaW5lTnVtYmVyID0gMDsKLSAgICAgICAgdmFyIHNv
dXJjZUNvbHVtbk51bWJlciA9IDA7Ci0gICAgICAgIHZhciBuYW1lSW5kZXggPSAwOwotCi0gICAg
ICAgIHZhciBzb3VyY2VzID0gW107Ci0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbWFwLnNv
dXJjZXMubGVuZ3RoOyArK2kpIHsKLSAgICAgICAgICAgIHZhciBzb3VyY2VVUkwgPSBtYXAuc291
cmNlc1tpXTsKLSAgICAgICAgICAgIGlmIChtYXAuc291cmNlUm9vdCkKLSAgICAgICAgICAgICAg
ICBzb3VyY2VVUkwgPSBtYXAuc291cmNlUm9vdCArICIvIiArIHNvdXJjZVVSTDsKLSAgICAgICAg
ICAgIHZhciB1cmwgPSB0aGlzLl9jYW5vbmljYWxpemVVUkwoc291cmNlVVJMLCB0aGlzLl9zb3Vy
Y2VNYXBwaW5nVVJMKTsKLSAgICAgICAgICAgIHNvdXJjZXMucHVzaCh1cmwpOwotICAgICAgICAg
ICAgaWYgKCF0aGlzLl9yZXZlcnNlTWFwcGluZ3NCeVNvdXJjZVVSTFt1cmxdKQotICAgICAgICAg
ICAgICAgIHRoaXMuX3JldmVyc2VNYXBwaW5nc0J5U291cmNlVVJMW3VybF0gPSBbXTsKLSAgICAg
ICAgICAgIGlmIChtYXAuc291cmNlc0NvbnRlbnQgJiYgbWFwLnNvdXJjZXNDb250ZW50W2ldKQot
ICAgICAgICAgICAgICAgIHRoaXMuX3NvdXJjZUNvbnRlbnRCeVVSTFt1cmxdID0gbWFwLnNvdXJj
ZXNDb250ZW50W2ldOwotICAgICAgICB9Ci0KLSAgICAgICAgdmFyIHN0cmluZ0NoYXJJdGVyYXRv
ciA9IG5ldyBXZWJJbnNwZWN0b3IuQ2xvc3VyZUNvbXBpbGVyU291cmNlTWFwcGluZy5TdHJpbmdD
aGFySXRlcmF0b3IobWFwLm1hcHBpbmdzKTsKLSAgICAgICAgdmFyIHNvdXJjZVVSTCA9IHNvdXJj
ZXNbc291cmNlSW5kZXhdOwotICAgICAgICB2YXIgcmV2ZXJzZU1hcHBpbmdzID0gdGhpcy5fcmV2
ZXJzZU1hcHBpbmdzQnlTb3VyY2VVUkxbc291cmNlVVJMXTsKLQotICAgICAgICB3aGlsZSAodHJ1
ZSkgewotICAgICAgICAgICAgaWYgKHN0cmluZ0NoYXJJdGVyYXRvci5wZWVrKCkgPT09ICIsIikK
LSAgICAgICAgICAgICAgICBzdHJpbmdDaGFySXRlcmF0b3IubmV4dCgpOwotICAgICAgICAgICAg
ZWxzZSB7Ci0gICAgICAgICAgICAgICAgd2hpbGUgKHN0cmluZ0NoYXJJdGVyYXRvci5wZWVrKCkg
PT09ICI7IikgewotICAgICAgICAgICAgICAgICAgICBsaW5lTnVtYmVyICs9IDE7Ci0gICAgICAg
ICAgICAgICAgICAgIGNvbHVtbk51bWJlciA9IDA7Ci0gICAgICAgICAgICAgICAgICAgIHN0cmlu
Z0NoYXJJdGVyYXRvci5uZXh0KCk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAg
IGlmICghc3RyaW5nQ2hhckl0ZXJhdG9yLmhhc05leHQoKSkKLSAgICAgICAgICAgICAgICAgICAg
YnJlYWs7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGNvbHVtbk51bWJlciArPSB0aGlz
Ll9kZWNvZGVWTFEoc3RyaW5nQ2hhckl0ZXJhdG9yKTsKLSAgICAgICAgICAgIGlmICghdGhpcy5f
aXNTZXBhcmF0b3Ioc3RyaW5nQ2hhckl0ZXJhdG9yLnBlZWsoKSkpIHsKLSAgICAgICAgICAgICAg
ICB2YXIgc291cmNlSW5kZXhEZWx0YSA9IHRoaXMuX2RlY29kZVZMUShzdHJpbmdDaGFySXRlcmF0
b3IpOwotICAgICAgICAgICAgICAgIGlmIChzb3VyY2VJbmRleERlbHRhKSB7Ci0gICAgICAgICAg
ICAgICAgICAgIHNvdXJjZUluZGV4ICs9IHNvdXJjZUluZGV4RGVsdGE7Ci0gICAgICAgICAgICAg
ICAgICAgIHNvdXJjZVVSTCA9IHNvdXJjZXNbc291cmNlSW5kZXhdOwotICAgICAgICAgICAgICAg
ICAgICByZXZlcnNlTWFwcGluZ3MgPSB0aGlzLl9yZXZlcnNlTWFwcGluZ3NCeVNvdXJjZVVSTFtz
b3VyY2VVUkxdOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBzb3VyY2VMaW5l
TnVtYmVyICs9IHRoaXMuX2RlY29kZVZMUShzdHJpbmdDaGFySXRlcmF0b3IpOwotICAgICAgICAg
ICAgICAgIHNvdXJjZUNvbHVtbk51bWJlciArPSB0aGlzLl9kZWNvZGVWTFEoc3RyaW5nQ2hhckl0
ZXJhdG9yKTsKLSAgICAgICAgICAgICAgICBpZiAoIXRoaXMuX2lzU2VwYXJhdG9yKHN0cmluZ0No
YXJJdGVyYXRvci5wZWVrKCkpKQotICAgICAgICAgICAgICAgICAgICBuYW1lSW5kZXggKz0gdGhp
cy5fZGVjb2RlVkxRKHN0cmluZ0NoYXJJdGVyYXRvcik7Ci0KLSAgICAgICAgICAgICAgICB0aGlz
Ll9tYXBwaW5ncy5wdXNoKFtsaW5lTnVtYmVyLCBjb2x1bW5OdW1iZXIsIHNvdXJjZVVSTCwgc291
cmNlTGluZU51bWJlciwgc291cmNlQ29sdW1uTnVtYmVyXSk7Ci0gICAgICAgICAgICAgICAgaWYg
KCFyZXZlcnNlTWFwcGluZ3Nbc291cmNlTGluZU51bWJlcl0pCi0gICAgICAgICAgICAgICAgICAg
IHJldmVyc2VNYXBwaW5nc1tzb3VyY2VMaW5lTnVtYmVyXSA9IFtsaW5lTnVtYmVyLCBjb2x1bW5O
dW1iZXJdOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgfSwKLQotICAgIF9pc1NlcGFy
YXRvcjogZnVuY3Rpb24oY2hhcikKLSAgICB7Ci0gICAgICAgIHJldHVybiBjaGFyID09PSAiLCIg
fHwgY2hhciA9PT0gIjsiOwotICAgIH0sCi0KLSAgICBfZGVjb2RlVkxROiBmdW5jdGlvbihzdHJp
bmdDaGFySXRlcmF0b3IpCi0gICAgewotICAgICAgICAvLyBSZWFkIHVuc2lnbmVkIHZhbHVlLgot
ICAgICAgICB2YXIgcmVzdWx0ID0gMDsKLSAgICAgICAgdmFyIHNoaWZ0ID0gMDsKLSAgICAgICAg
ZG8gewotICAgICAgICAgICAgdmFyIGRpZ2l0ID0gdGhpcy5fYmFzZTY0TWFwW3N0cmluZ0NoYXJJ
dGVyYXRvci5uZXh0KCldOwotICAgICAgICAgICAgcmVzdWx0ICs9IChkaWdpdCAmIHRoaXMuX1ZM
UV9CQVNFX01BU0spIDw8IHNoaWZ0OwotICAgICAgICAgICAgc2hpZnQgKz0gdGhpcy5fVkxRX0JB
U0VfU0hJRlQ7Ci0gICAgICAgIH0gd2hpbGUgKGRpZ2l0ICYgdGhpcy5fVkxRX0NPTlRJTlVBVElP
Tl9NQVNLKTsKLQotICAgICAgICAvLyBGaXggdGhlIHNpZ24uCi0gICAgICAgIHZhciBuZWdhdGl2
ZSA9IHJlc3VsdCAmIDE7Ci0gICAgICAgIHJlc3VsdCA+Pj0gMTsKLSAgICAgICAgcmV0dXJuIG5l
Z2F0aXZlID8gLXJlc3VsdCA6IHJlc3VsdDsKLSAgICB9LAotCi0gICAgX2Nhbm9uaWNhbGl6ZVVS
TDogZnVuY3Rpb24odXJsLCBiYXNlVVJMKQotICAgIHsKLSAgICAgICAgaWYgKCF1cmwgfHwgIWJh
c2VVUkwgfHwgdXJsLmFzUGFyc2VkVVJMKCkgfHwgdXJsLnN1YnN0cmluZygwLCA1KSA9PT0gImRh
dGE6IikKLSAgICAgICAgICAgIHJldHVybiB1cmw7Ci0KLSAgICAgICAgdmFyIGJhc2UgPSBiYXNl
VVJMLmFzUGFyc2VkVVJMKCk7Ci0gICAgICAgIGlmICghYmFzZSkKLSAgICAgICAgICAgIHJldHVy
biB1cmw7Ci0KLSAgICAgICAgdmFyIGJhc2VIb3N0ID0gYmFzZS5zY2hlbWUgKyAiOi8vIiArIGJh
c2UuaG9zdCArIChiYXNlLnBvcnQgPyAiOiIgKyBiYXNlLnBvcnQgOiAiIik7Ci0gICAgICAgIGlm
ICh1cmxbMF0gPT09ICIvIikKLSAgICAgICAgICAgIHJldHVybiBiYXNlSG9zdCArIHVybDsKLSAg
ICAgICAgcmV0dXJuIGJhc2VIb3N0ICsgYmFzZS5maXJzdFBhdGhDb21wb25lbnRzICsgdXJsOwot
ICAgIH0sCi0KLSAgICBfVkxRX0JBU0VfU0hJRlQ6IDUsCi0gICAgX1ZMUV9CQVNFX01BU0s6ICgx
IDw8IDUpIC0gMSwKLSAgICBfVkxRX0NPTlRJTlVBVElPTl9NQVNLOiAxIDw8IDUKLX0KLQotLyoq
Ci0gKiBAY29uc3RydWN0b3IKLSAqLwotV2ViSW5zcGVjdG9yLkNsb3N1cmVDb21waWxlclNvdXJj
ZU1hcHBpbmcuU3RyaW5nQ2hhckl0ZXJhdG9yID0gZnVuY3Rpb24oc3RyaW5nKQotewotICAgIHRo
aXMuX3N0cmluZyA9IHN0cmluZzsKLSAgICB0aGlzLl9wb3NpdGlvbiA9IDA7Ci19Ci0KLVdlYklu
c3BlY3Rvci5DbG9zdXJlQ29tcGlsZXJTb3VyY2VNYXBwaW5nLlN0cmluZ0NoYXJJdGVyYXRvci5w
cm90b3R5cGUgPSB7Ci0gICAgbmV4dDogZnVuY3Rpb24oKQotICAgIHsKLSAgICAgICAgcmV0dXJu
IHRoaXMuX3N0cmluZy5jaGFyQXQodGhpcy5fcG9zaXRpb24rKyk7Ci0gICAgfSwKLQotICAgIHBl
ZWs6IGZ1bmN0aW9uKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiB0aGlzLl9zdHJpbmcuY2hhckF0
KHRoaXMuX3Bvc2l0aW9uKTsKLSAgICB9LAotCi0gICAgaGFzTmV4dDogZnVuY3Rpb24oKQotICAg
IHsKLSAgICAgICAgcmV0dXJuIHRoaXMuX3Bvc2l0aW9uIDwgdGhpcy5fc3RyaW5nLmxlbmd0aDsK
LSAgICB9Ci19CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L1dlYktpdC5xcmMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1dlYktpdC5x
cmMKaW5kZXggNGJiNDY3MjBkMzg4ZmZiNDUxYzA4MWQ5N2FkOGUzM2Y3NDUxOTU0MC4uZTc2OGIw
Yjc2OWIyZDQ5YWQwYmMwZTZiNGQ2MzgwZDUxODdiMzQ5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9XZWJLaXQucXJjCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvV2ViS2l0LnFyYwpAQCAtMTgsNyArMTgsNiBAQAogICAgIDxm
aWxlPkNoZWNrYm94LmpzPC9maWxlPgogICAgIDxmaWxlPkNvbG9yLmpzPC9maWxlPgogICAgIDxm
aWxlPkNvbXBpbGVyU2NyaXB0TWFwcGluZy5qczwvZmlsZT4KLSAgICA8ZmlsZT5Db21waWxlclNv
dXJjZU1hcHBpbmcuanM8L2ZpbGU+CiAgICAgPGZpbGU+Q29uc29sZU1lc3NhZ2UuanM8L2ZpbGU+
CiAgICAgPGZpbGU+Q29uc29sZU1vZGVsLmpzPC9maWxlPgogICAgIDxmaWxlPkNvbnNvbGVQYW5l
bC5qczwvZmlsZT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvaW5zcGVjdG9yLmh0bWwgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2lu
c3BlY3Rvci5odG1sCmluZGV4IDVhNmRmY2Y0NzQ0YjIzYzcwYTU0MTIyOGI5MGNmOTU3ZjAwNWI3
NDUuLmVmZTE2ZThmMTQxODY2NzE5ODNkODEzZTFkNWMzNjVkN2E1N2M3YjggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmh0bWwKKysrIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuaHRtbApAQCAtMTc2
LDcgKzE3Niw2IEBAIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQi
IHNyYz0iUmF3U291cmNlQ29kZS5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0
L2phdmFzY3JpcHQiIHNyYz0iUmVzb3VyY2VTY3JpcHRNYXBwaW5nLmpzIj48L3NjcmlwdD4KICAg
ICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJDb21waWxlclNjcmlwdE1hcHBp
bmcuanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9
IkNvbXBpbGVyU291cmNlTWFwcGluZy5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCB0eXBlPSJ0
ZXh0L2phdmFzY3JpcHQiIHNyYz0iU2NyaXB0c1NlYXJjaFNjb3BlLmpzIj48L3NjcmlwdD4KICAg
ICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJET01BZ2VudC5qcyI+PC9zY3Jp
cHQ+CiAgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iVGltZWxpbmVQcmVz
ZW50YXRpb25Nb2RlbC5qcyI+PC9zY3JpcHQ+Cg==
</data>
<flag name="review"
          id="136889"
          type_id="1"
          status="+"
          setter="pfeldman"
    />
    <flag name="commit-queue"
          id="136899"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
      

    </bug>

</bugzilla>