<?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>105799</bug_id>
          
          <creation_ts>2012-12-27 05:34:53 -0800</creation_ts>
          <short_desc>Web Inspector: Introduce uri as a UISourceCode unique identifier in workspace.</short_desc>
          <delta_ts>2012-12-28 08:12:28 -0800</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>1</everconfirmed>
          <reporter name="Vsevolod Vlasov">vsevik</reporter>
          <assigned_to name="Vsevolod Vlasov">vsevik</assigned_to>
          <cc>apavlov</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>vsevik</cc>
    
    <cc>web-inspector-bugs</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>797523</commentid>
    <comment_count>0</comment_count>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2012-12-27 05:34:53 -0800</bug_when>
    <thetext>Added uri field to UISourceCode. 
Debugger and LiveEdit uiSourceCodes are now created through WorkspaceProviders (not projects yet though)
which are responsible for unique uri generation. 
Extracted generic content provider based WorkspaceProvider functionality and url-to-uri conversion logic to ContentProviderWorkspaceProvider class.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>797527</commentid>
    <comment_count>1</comment_count>
      <attachid>180795</attachid>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2012-12-27 05:57:28 -0800</bug_when>
    <thetext>Created attachment 180795
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>797903</commentid>
    <comment_count>2</comment_count>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2012-12-28 08:12:28 -0800</bug_when>
    <thetext>Committed r138536: &lt;http://trac.webkit.org/changeset/138536&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>180795</attachid>
            <date>2012-12-27 05:57:28 -0800</date>
            <delta_ts>2012-12-28 04:51:44 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-105799-20121227175438.patch</filename>
            <type>text/plain</type>
            <size>51302</size>
            <attacher name="Vsevolod Vlasov">vsevik</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM4NDk2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2I4YjAwNDZlNjhkMDcy
ZmRkNmFiMGJiNWM0OWI0NTRjMGFhMzE5Ni4uMzM0NjgwZWI2MmZmNDViZjEyODBiY2RmMmFkYjgx
ZDdhYzhkY2NjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDcwIEBACiAyMDEyLTEyLTI3ICBWc2V2
b2xvZCBWbGFzb3YgIDx2c2V2aWtAY2hyb21pdW0ub3JnPgogCisgICAgICAgIFdlYiBJbnNwZWN0
b3I6IEludHJvZHVjZSB1cmkgYXMgYSBVSVNvdXJjZUNvZGUgdW5pcXVlIGlkZW50aWZpZXIgaW4g
d29ya3NwYWNlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTA1Nzk5CisKKyAgICAgICAgQWRkZWQgdXJpIGZpZWxkIHRvIFVJU291cmNlQ29kZS4gCisg
ICAgICAgIERlYnVnZ2VyIGFuZCBMaXZlRWRpdCB1aVNvdXJjZUNvZGVzIGFyZSBub3cgY3JlYXRl
ZCB0aHJvdWdoIFdvcmtzcGFjZVByb3ZpZGVycyAobm90IHByb2plY3RzIHlldCB0aG91Z2gpCisg
ICAgICAgIHdoaWNoIGFyZSByZXNwb25zaWJsZSBmb3IgdW5pcXVlIHVyaSBnZW5lcmF0aW9uLiAK
KyAgICAgICAgRXh0cmFjdGVkIGdlbmVyaWMgY29udGVudCBwcm92aWRlciBiYXNlZCBXb3Jrc3Bh
Y2VQcm92aWRlciBmdW5jdGlvbmFsaXR5IGFuZCB1cmwtdG8tdXJpIGNvbnZlcnNpb24gbG9naWMg
dG8gQ29udGVudFByb3ZpZGVyV29ya3NwYWNlUHJvdmlkZXIgY2xhc3MuCisKKyAgICAgICAgKiBp
bnNwZWN0b3IvZnJvbnQtZW5kL0JyZWFrcG9pbnRNYW5hZ2VyLmpzOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLkJyZWFrcG9pbnRNYW5hZ2VyLnNvdXJjZUZpbGVJZCk6CisgICAgICAgICogaW5zcGVj
dG9yL2Zyb250LWVuZC9Db21waWxlclNjcmlwdE1hcHBpbmcuanM6CisgICAgICAgICogaW5zcGVj
dG9yL2Zyb250LWVuZC9EZWJ1Z2dlclNjcmlwdE1hcHBpbmcuanM6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuRGVidWdnZXJTY3JpcHRNYXBwaW5nKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQt
ZW5kL0RlZmF1bHRTY3JpcHRNYXBwaW5nLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRlZmF1
bHRTY3JpcHRNYXBwaW5nKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWZhdWx0U2NyaXB0TWFw
cGluZy5wcm90b3R5cGUuYWRkU2NyaXB0KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dl
cldvcmtzcGFjZVByb3ZpZGVyKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dlcldvcmtz
cGFjZVByb3ZpZGVyLnByb3RvdHlwZS5hZGREZWJ1Z2dlckZpbGUpOgorICAgICAgICAqIGluc3Bl
Y3Rvci9mcm9udC1lbmQvTGl2ZUVkaXRTdXBwb3J0LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LkxpdmVFZGl0U3VwcG9ydCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTGl2ZUVkaXRTdXBwb3J0
LnByb3RvdHlwZS51aVNvdXJjZUNvZGVGb3JMaXZlRWRpdCk6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuTGl2ZUVkaXRXb3Jrc3BhY2VQcm92aWRlcik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTGl2
ZUVkaXRXb3Jrc3BhY2VQcm92aWRlci5wcm90b3R5cGUuYWRkTGl2ZUVkaXRGaWxlKToKKyAgICAg
ICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL05ldHdvcmtVSVNvdXJjZUNvZGVQcm92aWRlci5qczoK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5OZXR3b3JrVUlTb3VyY2VDb2RlUHJvdmlkZXIucHJvdG90
eXBlLl9hZGRGaWxlKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL05ldHdvcmtXb3Jr
c3BhY2VQcm92aWRlci5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Db250ZW50UHJvdmlkZXJX
b3Jrc3BhY2VQcm92aWRlcik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ29udGVudFByb3ZpZGVy
V29ya3NwYWNlUHJvdmlkZXIudXJpRm9yVVJMKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Db250
ZW50UHJvdmlkZXJXb3Jrc3BhY2VQcm92aWRlci5wcm90b3R5cGUuYWRkRmlsZSk6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuQ29udGVudFByb3ZpZGVyV29ya3NwYWNlUHJvdmlkZXIucHJvdG90eXBl
LnVuaXF1ZVVSSSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTmV0d29ya1dvcmtzcGFjZVByb3Zp
ZGVyKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5OZXR3b3JrV29ya3NwYWNlUHJvdmlkZXIucHJv
dG90eXBlLmFkZE5ldHdvcmtGaWxlKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1NB
U1NTb3VyY2VNYXBwaW5nLmpzOgorICAgICAgICAoX2JpbmRVSVNvdXJjZUNvZGUpOgorICAgICAg
ICAqIGluc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0U25pcHBldE1vZGVsLmpzOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLlNjcmlwdFNuaXBwZXRNb2RlbC5wcm90b3R5cGUuX2FkZFNjcmlwdFNuaXBw
ZXQpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvVGFiYmVkRWRpdG9yQ29udGFpbmVy
LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRhYmJlZEVkaXRvckNvbnRhaW5lcik6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuVGFiYmVkRWRpdG9yQ29udGFpbmVyLnByb3RvdHlwZS5fc2Nyb2xs
Q2hhbmdlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGFiYmVkRWRpdG9yQ29udGFpbmVyLnBy
b3RvdHlwZS5fc2VsZWN0aW9uQ2hhbmdlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGFiYmVk
RWRpdG9yQ29udGFpbmVyLnByb3RvdHlwZS5fZWRpdG9yQ2xvc2VkQnlVc2VyQWN0aW9uKToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5UYWJiZWRFZGl0b3JDb250YWluZXIucHJvdG90eXBlLl91cGRh
dGVIaXN0b3J5LnRhYklkVG9VUkkpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRhYmJlZEVkaXRv
ckNvbnRhaW5lci5wcm90b3R5cGUuX3VwZGF0ZUhpc3RvcnkpOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLlRhYmJlZEVkaXRvckNvbnRhaW5lci5wcm90b3R5cGUuX2FwcGVuZEZpbGVUYWIpOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLlRhYmJlZEVkaXRvckNvbnRhaW5lci5wcm90b3R5cGUucmVzZXQp
OgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvVUlTb3VyY2VDb2RlLmpzOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVUlT
b3VyY2VDb2RlLnByb3RvdHlwZS51cmkpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQv
V29ya3NwYWNlLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkZpbGVEZXNjcmlwdG9yKToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5Qcm9qZWN0LnByb3RvdHlwZS5fZmlsZUFkZGVkKToKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5Qcm9qZWN0LnByb3RvdHlwZS5fZmlsZVJlbW92ZWQpOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLlByb2plY3QucHJvdG90eXBlLnVpU291cmNlQ29kZUZvclVSSSk6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuV29ya3NwYWNlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5X
b3Jrc3BhY2UucHJvdG90eXBlLnVpU291cmNlQ29kZUZvclVSSSk6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuV29ya3NwYWNlLnByb3RvdHlwZS5hZGRUZW1wb3JhcnlVSVNvdXJjZUNvZGUpOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLldvcmtzcGFjZS5wcm90b3R5cGUucmVtb3ZlVGVtcG9yYXJ5VUlT
b3VyY2VDb2RlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Xb3Jrc3BhY2UucHJvdG90eXBlLnJl
cXVlc3RGaWxlQ29udGVudCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuV29ya3NwYWNlLnByb3Rv
dHlwZS5zZXRGaWxlQ29udGVudCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuV29ya3NwYWNlLnBy
b3RvdHlwZS5zZWFyY2hJbkZpbGVDb250ZW50KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Xb3Jr
c3BhY2UucHJvdG90eXBlLnJlc2V0KToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL2lu
c3BlY3Rvci5qczoKKworMjAxMi0xMi0yNyAgVnNldm9sb2QgVmxhc292ICA8dnNldmlrQGNocm9t
aXVtLm9yZz4KKwogICAgICAgICBXZWIgSW5zcGVjdG9yOiBTaW1wbGlmeSBzY3JpcHQgbWFwcGlu
Z3MgYnkgaW50cm9kdWNpbmcgRGVmYXVsdFNjcmlwdE1hcHBpbmcuCiAgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDMwMzgKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9CcmVha3BvaW50TWFuYWdlci5qcyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQnJlYWtwb2ludE1hbmFnZXIuanMKaW5k
ZXggM2VjNGZhOGIyYWJhNDllYjE4NzJiMGQxZTkzOTZhMThhMjIwOTQ5YS4uYTlmZDZlZmU3ZDdh
MmVjZDhhYzM0MjgzYWEyZjkwOWFiYmE5ZDkzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9CcmVha3BvaW50TWFuYWdlci5qcworKysgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0JyZWFrcG9pbnRNYW5hZ2VyLmpzCkBAIC02MSw5ICs2
MSw4IEBAIFdlYkluc3BlY3Rvci5CcmVha3BvaW50TWFuYWdlci5zb3VyY2VGaWxlSWQgPSBmdW5j
dGlvbih1aVNvdXJjZUNvZGUpCiB7CiAgICAgaWYgKCF1aVNvdXJjZUNvZGUudXJsKQogICAgICAg
ICByZXR1cm4gIiI7Ci0gICAgdmFyIGlzVGVtcG9yYXJ5UHJlZml4ID0gdWlTb3VyY2VDb2RlLmlz
VGVtcG9yYXJ5ID8gInRlbXBvcmFyeToiIDogIiI7CiAgICAgdmFyIGRlb2JmdXNjYXRlZFByZWZp
eCA9IHVpU291cmNlQ29kZS5mb3JtYXR0ZWQoKSA/ICJkZW9iZnVzY2F0ZWQ6IiA6ICIiOwotICAg
IHJldHVybiBpc1RlbXBvcmFyeVByZWZpeCArIGRlb2JmdXNjYXRlZFByZWZpeCArIHVpU291cmNl
Q29kZS51cmw7CisgICAgcmV0dXJuIGRlb2JmdXNjYXRlZFByZWZpeCArIHVpU291cmNlQ29kZS51
cmkoKTsKIH0KIAogV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnRNYW5hZ2VyLnByb3RvdHlwZSA9IHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29tcGlsZXJT
Y3JpcHRNYXBwaW5nLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Db21w
aWxlclNjcmlwdE1hcHBpbmcuanMKaW5kZXggNWFhMzNiMjJkMzEwMmFmMzI3MTllMTcyMzAzYzUw
NGY4ZDIxNmY0NS4uMTM4MjUyMzQ4Mzg1Nzg3NmIyZmYzY2FiOWRjYTI4OGE0NmJkNjhmMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Db21waWxlclNjcmlw
dE1hcHBpbmcuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Db21w
aWxlclNjcmlwdE1hcHBpbmcuanMKQEAgLTEwNCw3ICsxMDQsNyBAQCBXZWJJbnNwZWN0b3IuQ29t
cGlsZXJTY3JpcHRNYXBwaW5nLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgICAgICBjb250ZW50
UHJvdmlkZXIgPSBuZXcgV2ViSW5zcGVjdG9yLlN0YXRpY0NvbnRlbnRQcm92aWRlcihXZWJJbnNw
ZWN0b3IucmVzb3VyY2VUeXBlcy5TY3JpcHQsIHNvdXJjZUNvbnRlbnQpOwogICAgICAgICAgICAg
ZWxzZQogICAgICAgICAgICAgICAgIGNvbnRlbnRQcm92aWRlciA9IG5ldyBXZWJJbnNwZWN0b3Iu
Q29tcGlsZXJTb3VyY2VNYXBwaW5nQ29udGVudFByb3ZpZGVyKHNvdXJjZVVSTCk7Ci0gICAgICAg
ICAgICB0aGlzLl9uZXR3b3JrV29ya3NwYWNlUHJvdmlkZXIuYWRkRmlsZShzb3VyY2VVUkwsIGNv
bnRlbnRQcm92aWRlciwgdHJ1ZSk7CisgICAgICAgICAgICB0aGlzLl9uZXR3b3JrV29ya3NwYWNl
UHJvdmlkZXIuYWRkTmV0d29ya0ZpbGUoc291cmNlVVJMLCBjb250ZW50UHJvdmlkZXIsIHRydWUp
OwogICAgICAgICAgICAgdmFyIHVpU291cmNlQ29kZSA9IHRoaXMuX3dvcmtzcGFjZS51aVNvdXJj
ZUNvZGVGb3JVUkwoc291cmNlVVJMKTsKICAgICAgICAgICAgIHVpU291cmNlQ29kZS5zZXRTb3Vy
Y2VNYXBwaW5nKHRoaXMpOwogICAgICAgICAgICAgdWlTb3VyY2VDb2RlLmlzQ29udGVudFNjcmlw
dCA9IHNjcmlwdC5pc0NvbnRlbnRTY3JpcHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL0RlYnVnZ2VyU2NyaXB0TWFwcGluZy5qcyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRGVidWdnZXJTY3JpcHRNYXBwaW5nLmpzCmluZGV4IDhm
ODhiOWQ4YjYwYTRjZjM0NjMwZjg0YTg1N2E1MTdiYzRjNzI0MWIuLmI5MzhjZTliNTMzYTM5Njcw
ZDVjM2RiNGU3YjM1YzQ0ODBhYzc1ODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvRGVidWdnZXJTY3JpcHRNYXBwaW5nLmpzCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRGVidWdnZXJTY3JpcHRNYXBwaW5nLmpzCkBAIC0zMSwx
MSArMzEsMTIgQEAKIC8qKgogICogQGNvbnN0cnVjdG9yCiAgKiBAcGFyYW0ge1dlYkluc3BlY3Rv
ci5Xb3Jrc3BhY2V9IHdvcmtzcGFjZQorICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuRGVidWdnZXJX
b3Jrc3BhY2VQcm92aWRlcn0gZGVidWdnZXJXb3Jrc3BhY2VQcm92aWRlcgogICogQHBhcmFtIHtX
ZWJJbnNwZWN0b3IuTmV0d29ya1dvcmtzcGFjZVByb3ZpZGVyfSBuZXR3b3JrV29ya3NwYWNlUHJv
dmlkZXIKICAqLwotV2ViSW5zcGVjdG9yLkRlYnVnZ2VyU2NyaXB0TWFwcGluZyA9IGZ1bmN0aW9u
KHdvcmtzcGFjZSwgbmV0d29ya1dvcmtzcGFjZVByb3ZpZGVyKQorV2ViSW5zcGVjdG9yLkRlYnVn
Z2VyU2NyaXB0TWFwcGluZyA9IGZ1bmN0aW9uKHdvcmtzcGFjZSwgZGVidWdnZXJXb3Jrc3BhY2VQ
cm92aWRlciwgbmV0d29ya1dvcmtzcGFjZVByb3ZpZGVyKQogewotICAgIHRoaXMuX2RlZmF1bHRN
YXBwaW5nID0gbmV3IFdlYkluc3BlY3Rvci5EZWZhdWx0U2NyaXB0TWFwcGluZyh3b3Jrc3BhY2Up
OworICAgIHRoaXMuX2RlZmF1bHRNYXBwaW5nID0gbmV3IFdlYkluc3BlY3Rvci5EZWZhdWx0U2Ny
aXB0TWFwcGluZyh3b3Jrc3BhY2UsIGRlYnVnZ2VyV29ya3NwYWNlUHJvdmlkZXIpOwogICAgIHRo
aXMuX3Jlc291cmNlTWFwcGluZyA9IG5ldyBXZWJJbnNwZWN0b3IuUmVzb3VyY2VTY3JpcHRNYXBw
aW5nKHdvcmtzcGFjZSk7CiAgICAgdGhpcy5fY29tcGlsZXJNYXBwaW5nID0gbmV3IFdlYkluc3Bl
Y3Rvci5Db21waWxlclNjcmlwdE1hcHBpbmcod29ya3NwYWNlLCBuZXR3b3JrV29ya3NwYWNlUHJv
dmlkZXIpOwogICAgIHRoaXMuX3NuaXBwZXRNYXBwaW5nID0gV2ViSW5zcGVjdG9yLnNjcmlwdFNu
aXBwZXRNb2RlbC5zY3JpcHRNYXBwaW5nOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9EZWZhdWx0U2NyaXB0TWFwcGluZy5qcyBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvRGVmYXVsdFNjcmlwdE1hcHBpbmcuanMKaW5kZXggMTJiNWRh
MTk1NDVlMWI3MWU1ZmE5OWYwMDZjYjdmMTE3NDlhMjczMC4uOTA4MTU2MmExMzgyYjc5MjYzM2Q0
MGMwOGM3NDJkZmNjN2UyOTQxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9EZWZhdWx0U2NyaXB0TWFwcGluZy5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL0RlZmF1bHRTY3JpcHRNYXBwaW5nLmpzCkBAIC0zMiwxMCArMzIs
MTIgQEAKICAqIEBjb25zdHJ1Y3RvcgogICogQGltcGxlbWVudHMge1dlYkluc3BlY3Rvci5TY3Jp
cHRTb3VyY2VNYXBwaW5nfQogICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuV29ya3NwYWNlfSB3b3Jr
c3BhY2UKKyAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLkRlYnVnZ2VyV29ya3NwYWNlUHJvdmlkZXJ9
IGRlYnVnZ2VyV29ya3NwYWNlUHJvdmlkZXIKICAqLwotV2ViSW5zcGVjdG9yLkRlZmF1bHRTY3Jp
cHRNYXBwaW5nID0gZnVuY3Rpb24od29ya3NwYWNlKQorV2ViSW5zcGVjdG9yLkRlZmF1bHRTY3Jp
cHRNYXBwaW5nID0gZnVuY3Rpb24od29ya3NwYWNlLCBkZWJ1Z2dlcldvcmtzcGFjZVByb3ZpZGVy
KQogewogICAgIHRoaXMuX3dvcmtzcGFjZSA9IHdvcmtzcGFjZTsKKyAgICB0aGlzLl9kZWJ1Z2dl
cldvcmtzcGFjZVByb3ZpZGVyID0gZGVidWdnZXJXb3Jrc3BhY2VQcm92aWRlcjsKICAgICB0aGlz
Ll93b3Jrc3BhY2UuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuV29ya3NwYWNlLkV2ZW50
cy5Qcm9qZWN0V2lsbFJlc2V0LCB0aGlzLl9yZXNldCwgdGhpcyk7CiAgICAgdGhpcy5fcmVzZXQo
KTsKIH0KQEAgLTc0LDcgKzc2LDcgQEAgV2ViSW5zcGVjdG9yLkRlZmF1bHRTY3JpcHRNYXBwaW5n
LnByb3RvdHlwZSA9IHsKICAgICBhZGRTY3JpcHQ6IGZ1bmN0aW9uKHNjcmlwdCkKICAgICB7CiAg
ICAgICAgIHZhciBjb250ZW50UHJvdmlkZXIgPSBzY3JpcHQuaXNJbmxpbmVTY3JpcHQoKSA/IG5l
dyBXZWJJbnNwZWN0b3IuQ29uY2F0ZW5hdGVkU2NyaXB0c0NvbnRlbnRQcm92aWRlcihbc2NyaXB0
XSkgOiBzY3JpcHQ7Ci0gICAgICAgIHZhciB1aVNvdXJjZUNvZGUgPSB0aGlzLl93b3Jrc3BhY2Uu
YWRkVGVtcG9yYXJ5VUlTb3VyY2VDb2RlKHNjcmlwdC5zb3VyY2VVUkwsIGNvbnRlbnRQcm92aWRl
ciwgZmFsc2UpOworICAgICAgICB2YXIgdWlTb3VyY2VDb2RlID0gdGhpcy5fZGVidWdnZXJXb3Jr
c3BhY2VQcm92aWRlci5hZGREZWJ1Z2dlckZpbGUoc2NyaXB0LnNvdXJjZVVSTCwgY29udGVudFBy
b3ZpZGVyLCBmYWxzZSk7CiAgICAgICAgIHRoaXMuX3VpU291cmNlQ29kZUZvclNjcmlwdElkW3Nj
cmlwdC5zY3JpcHRJZF0gPSB1aVNvdXJjZUNvZGU7CiAgICAgICAgIHRoaXMuX3NjcmlwdElkRm9y
VUlTb3VyY2VDb2RlLnB1dCh1aVNvdXJjZUNvZGUsIHNjcmlwdC5zY3JpcHRJZCk7CiAgICAgICAg
IHVpU291cmNlQ29kZS5zZXRTb3VyY2VNYXBwaW5nKHRoaXMpOwpAQCAtMTAwLDMgKzEwMiwzOCBA
QCBXZWJJbnNwZWN0b3IuRGVmYXVsdFNjcmlwdE1hcHBpbmcucHJvdG90eXBlID0gewogICAgICAg
ICB0aGlzLl9zY3JpcHRJZEZvclVJU291cmNlQ29kZSA9IG5ldyBNYXAoKTsKICAgICB9LAogfQor
CisvKioKKyAqIEBjb25zdHJ1Y3RvcgorICogQGV4dGVuZHMge1dlYkluc3BlY3Rvci5Db250ZW50
UHJvdmlkZXJXb3Jrc3BhY2VQcm92aWRlcn0KKyAqLworV2ViSW5zcGVjdG9yLkRlYnVnZ2VyV29y
a3NwYWNlUHJvdmlkZXIgPSBmdW5jdGlvbih3b3Jrc3BhY2UpCit7CisgICAgV2ViSW5zcGVjdG9y
LkNvbnRlbnRQcm92aWRlcldvcmtzcGFjZVByb3ZpZGVyLmNhbGwodGhpcyk7CisgICAgdGhpcy5f
d29ya3NwYWNlID0gd29ya3NwYWNlOworfQorCitXZWJJbnNwZWN0b3IuRGVidWdnZXJXb3Jrc3Bh
Y2VQcm92aWRlci5wcm90b3R5cGUgPSB7CisgICAgLyoqCisgICAgICogQHBhcmFtIHtzdHJpbmd9
IHVybAorICAgICAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLkNvbnRlbnRQcm92aWRlcn0gY29udGVu
dFByb3ZpZGVyCisgICAgICogQHBhcmFtIHtib29sZWFufSBpc0VkaXRhYmxlCisgICAgICogQHJl
dHVybiB7V2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZX0KKyAgICAgKi8KKyAgICBhZGREZWJ1Z2dl
ckZpbGU6IGZ1bmN0aW9uKHVybCwgY29udGVudFByb3ZpZGVyLCBpc0VkaXRhYmxlKQorICAgIHsK
KyAgICAgICAgdmFyIHVyaSA9ICJkZWJ1Z2dlcjoiICsgV2ViSW5zcGVjdG9yLkNvbnRlbnRQcm92
aWRlcldvcmtzcGFjZVByb3ZpZGVyLnVyaUZvclVSTCh1cmwpOworICAgICAgICB2YXIgdW5pcXVl
VVJJID0gdGhpcy51bmlxdWVVUkkodXJpKTsKKyAgICAgICAgdmFyIHVpU291cmNlQ29kZSA9IHRo
aXMuX3dvcmtzcGFjZS5hZGRUZW1wb3JhcnlVSVNvdXJjZUNvZGUodW5pcXVlVVJJLCB1cmwsIGNv
bnRlbnRQcm92aWRlciwgaXNFZGl0YWJsZSk7CisgICAgICAgIC8vIEZJWE1FOiB0aGlzIGlzIGEg
dGVtcG9yYXJ5IGhhY2sgdG8gYmUgcmVtb3ZlZCBvbmNlIERlZmF1bHRTY3JpcHRNYXBwaW5nIHVp
U291cmNlQ29kZSBiZWNvbWUgcGFydCBvZiB0aGUgd29ya3NwYWNlLgorICAgICAgICB0aGlzLl9j
b250ZW50UHJvdmlkZXJzW3VuaXF1ZVVSSV0gPSB1aVNvdXJjZUNvZGU7CisgICAgICAgIHJldHVy
biB1aVNvdXJjZUNvZGU7CisgICAgfSwKKworICAgIF9fcHJvdG9fXzogV2ViSW5zcGVjdG9yLkNv
bnRlbnRQcm92aWRlcldvcmtzcGFjZVByb3ZpZGVyLnByb3RvdHlwZQorfQorCisvKioKKyAqIEB0
eXBlIHs/V2ViSW5zcGVjdG9yLkRlYnVnZ2VyV29ya3NwYWNlUHJvdmlkZXJ9CisgKi8KK1dlYklu
c3BlY3Rvci5kZWJ1Z2dlcldvcmtzcGFjZVByb3ZpZGVyID0gbnVsbDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvTGl2ZUVkaXRTdXBwb3J0LmpzIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9MaXZlRWRpdFN1cHBvcnQuanMKaW5kZXgg
NWE3ZjNhNzg4ZDc4MGY2M2FhNTI3ZWE4NmMxNjE3MTRkM2NmZjkyZi4uNzVhNTk2M2E4YmM3ZWRh
MjgyZmVlM2U1NWEwMzAwOWY2NmQ0NzA5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9MaXZlRWRpdFN1cHBvcnQuanMKKysrIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9MaXZlRWRpdFN1cHBvcnQuanMKQEAgLTM1LDYgKzM1LDcgQEAK
IFdlYkluc3BlY3Rvci5MaXZlRWRpdFN1cHBvcnQgPSBmdW5jdGlvbih3b3Jrc3BhY2UpCiB7CiAg
ICAgdGhpcy5fd29ya3NwYWNlID0gd29ya3NwYWNlOworICAgIHRoaXMuX2xpdmVFZGl0V29ya3Nw
YWNlUHJvdmlkZXIgPSBuZXcgV2ViSW5zcGVjdG9yLkxpdmVFZGl0V29ya3NwYWNlUHJvdmlkZXIo
d29ya3NwYWNlKTsKICAgICB0aGlzLl93b3Jrc3BhY2UuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNw
ZWN0b3IuV29ya3NwYWNlLkV2ZW50cy5Qcm9qZWN0V2lsbFJlc2V0LCB0aGlzLl9yZXNldCwgdGhp
cyk7CiAgICAgdGhpcy5fcmVzZXQoKTsKIH0KQEAgLTU4LDcgKzU5LDggQEAgV2ViSW5zcGVjdG9y
LkxpdmVFZGl0U3VwcG9ydC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICByZXR1cm4gdGhpcy5f
dWlTb3VyY2VDb2RlRm9yU2NyaXB0SWRbc2NyaXB0LnNjcmlwdElkXTsKICAgICAgICAgCiAgICAg
ICAgIGNvbnNvbGUuYXNzZXJ0KCFzY3JpcHQuaXNJbmxpbmVTY3JpcHQoKSk7Ci0gICAgICAgIHZh
ciBsaXZlRWRpdFVJU291cmNlQ29kZSA9IHRoaXMuX3dvcmtzcGFjZS5hZGRUZW1wb3JhcnlVSVNv
dXJjZUNvZGUodWlTb3VyY2VDb2RlLnVybCwgc2NyaXB0LCB0cnVlKTsKKyAgICAgICAgdmFyIHVy
aSA9IHVpU291cmNlQ29kZS51cmkoKTsKKyAgICAgICAgdmFyIGxpdmVFZGl0VUlTb3VyY2VDb2Rl
ID0gdGhpcy5fbGl2ZUVkaXRXb3Jrc3BhY2VQcm92aWRlci5hZGRMaXZlRWRpdEZpbGUodWlTb3Vy
Y2VDb2RlLnVybCwgc2NyaXB0LCB0cnVlKTsKICAgICAgICAgbGl2ZUVkaXRVSVNvdXJjZUNvZGUu
c2V0U2NyaXB0RmlsZShuZXcgV2ViSW5zcGVjdG9yLkxpdmVFZGl0U2NyaXB0RmlsZSh1aVNvdXJj
ZUNvZGUsIGxpdmVFZGl0VUlTb3VyY2VDb2RlLCBzY3JpcHQuc2NyaXB0SWQpKTsKICAgICAgICAg
dGhpcy5fdWlTb3VyY2VDb2RlRm9yU2NyaXB0SWRbc2NyaXB0LnNjcmlwdElkXSA9IGxpdmVFZGl0
VUlTb3VyY2VDb2RlOwogICAgICAgICB0aGlzLl9zY3JpcHRJZEZvclVJU291cmNlQ29kZS5wdXQo
bGl2ZUVkaXRVSVNvdXJjZUNvZGUsIHNjcmlwdC5zY3JpcHRJZCk7CkBAIC0xMjksMyArMTMxLDMy
IEBAIFdlYkluc3BlY3Rvci5MaXZlRWRpdFNjcmlwdEZpbGUucHJvdG90eXBlID0gewogCiAvKiog
QHR5cGUge1dlYkluc3BlY3Rvci5MaXZlRWRpdFN1cHBvcnR9ICovCiBXZWJJbnNwZWN0b3IubGl2
ZUVkaXRTdXBwb3J0ID0gbnVsbDsKKworLyoqCisgKiBAY29uc3RydWN0b3IKKyAqIEBleHRlbmRz
IHtXZWJJbnNwZWN0b3IuQ29udGVudFByb3ZpZGVyV29ya3NwYWNlUHJvdmlkZXJ9CisgKi8KK1dl
Ykluc3BlY3Rvci5MaXZlRWRpdFdvcmtzcGFjZVByb3ZpZGVyID0gZnVuY3Rpb24od29ya3NwYWNl
KQoreworICAgIFdlYkluc3BlY3Rvci5Db250ZW50UHJvdmlkZXJXb3Jrc3BhY2VQcm92aWRlci5j
YWxsKHRoaXMpOworICAgIHRoaXMuX3dvcmtzcGFjZSA9IHdvcmtzcGFjZTsKK30KKworV2ViSW5z
cGVjdG9yLkxpdmVFZGl0V29ya3NwYWNlUHJvdmlkZXIucHJvdG90eXBlID0geworICAgIC8qKgor
ICAgICAqIEBwYXJhbSB7c3RyaW5nfSB1cmwKKyAgICAgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5D
b250ZW50UHJvdmlkZXJ9IGNvbnRlbnRQcm92aWRlcgorICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0g
aXNFZGl0YWJsZQorICAgICAqIEByZXR1cm4ge1dlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGV9Cisg
ICAgICovCisgICAgYWRkTGl2ZUVkaXRGaWxlOiBmdW5jdGlvbih1cmwsIGNvbnRlbnRQcm92aWRl
ciwgaXNFZGl0YWJsZSkKKyAgICB7CisgICAgICAgIHZhciB1cmkgPSAibGl2ZWVkaXQ6IiArIFdl
Ykluc3BlY3Rvci5Db250ZW50UHJvdmlkZXJXb3Jrc3BhY2VQcm92aWRlci51cmlGb3JVUkwodXJs
KTsKKyAgICAgICAgdmFyIHVuaXF1ZVVSSSA9IHRoaXMudW5pcXVlVVJJKHVyaSk7CisgICAgICAg
IC8vIEZJWE1FOiB0aGlzIGlzIGEgdGVtcG9yYXJ5IGhhY2sgdG8gYmUgcmVtb3ZlZCBvbmNlIExp
dmVFZGl0IHVpU291cmNlQ29kZSBiZWNvbWUgcGFydCBvZiB0aGUgd29ya3NwYWNlLgorICAgICAg
ICB0aGlzLl9jb250ZW50UHJvdmlkZXJzW3VuaXF1ZVVSSV0gPSBudWxsOworICAgICAgICByZXR1
cm4gdGhpcy5fd29ya3NwYWNlLmFkZFRlbXBvcmFyeVVJU291cmNlQ29kZSh1bmlxdWVVUkksIHVy
bCwgY29udGVudFByb3ZpZGVyLCBpc0VkaXRhYmxlKTsKKyAgICB9LAorCisgICAgX19wcm90b19f
OiBXZWJJbnNwZWN0b3IuQ29udGVudFByb3ZpZGVyV29ya3NwYWNlUHJvdmlkZXIucHJvdG90eXBl
Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL05ldHdv
cmtVSVNvdXJjZUNvZGVQcm92aWRlci5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvTmV0d29ya1VJU291cmNlQ29kZVByb3ZpZGVyLmpzCmluZGV4IDJmMGM3ZTIzNmQ4OWQx
OTk0NDFlOGRhMjQ5NTNkZmQ2ZTVhZmMyNWUuLjFkYjRiYmZkZDJmZTFhMzQxMTc4MGQ3NWE3MTQx
ZDI4MTg3ZDExMGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvTmV0d29ya1VJU291cmNlQ29kZVByb3ZpZGVyLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvTmV0d29ya1VJU291cmNlQ29kZVByb3ZpZGVyLmpzCkBAIC0xMTQs
NyArMTE0LDcgQEAgV2ViSW5zcGVjdG9yLk5ldHdvcmtVSVNvdXJjZUNvZGVQcm92aWRlci5wcm90
b3R5cGUgPSB7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIHRoaXMuX3Byb2Nlc3NlZFVS
THNbdXJsXSA9IHRydWU7CiAgICAgICAgIHZhciBpc0VkaXRhYmxlID0gdHlwZSAhPT0gV2ViSW5z
cGVjdG9yLnJlc291cmNlVHlwZXMuRG9jdW1lbnQ7Ci0gICAgICAgIHRoaXMuX25ldHdvcmtXb3Jr
c3BhY2VQcm92aWRlci5hZGRGaWxlKHVybCwgY29udGVudFByb3ZpZGVyLCBpc0VkaXRhYmxlLCBp
c0NvbnRlbnRTY3JpcHQpOworICAgICAgICB0aGlzLl9uZXR3b3JrV29ya3NwYWNlUHJvdmlkZXIu
YWRkTmV0d29ya0ZpbGUodXJsLCBjb250ZW50UHJvdmlkZXIsIGlzRWRpdGFibGUsIGlzQ29udGVu
dFNjcmlwdCk7CiAgICAgfSwKIAogICAgIF9wcm9qZWN0V2lsbFJlc2V0OiBmdW5jdGlvbigpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL05ldHdvcmtXb3Jr
c3BhY2VQcm92aWRlci5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvTmV0
d29ya1dvcmtzcGFjZVByb3ZpZGVyLmpzCmluZGV4IDBhNjAyN2M1OWJlNTBkOWVlZmE5ZTQ3MTg2
OGJkZjU2MWFlYzhlOTcuLjkyZjVhZmU0NmIxMmUxMDc3YjZhZTI1NjhjNmVjMjFmN2MzMWQzM2Mg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvTmV0d29ya1dv
cmtzcGFjZVByb3ZpZGVyLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvTmV0d29ya1dvcmtzcGFjZVByb3ZpZGVyLmpzCkBAIC0zMywxMyArMzMsMjMgQEAKICAqIEBp
bXBsZW1lbnRzIHtXZWJJbnNwZWN0b3IuV29ya3NwYWNlUHJvdmlkZXJ9CiAgKiBAZXh0ZW5kcyB7
V2ViSW5zcGVjdG9yLk9iamVjdH0KICAqLwotV2ViSW5zcGVjdG9yLk5ldHdvcmtXb3Jrc3BhY2VQ
cm92aWRlciA9IGZ1bmN0aW9uKCkKK1dlYkluc3BlY3Rvci5Db250ZW50UHJvdmlkZXJXb3Jrc3Bh
Y2VQcm92aWRlciA9IGZ1bmN0aW9uKCkKIHsKICAgICAvKiogQHR5cGUge09iamVjdC48c3RyaW5n
LCBXZWJJbnNwZWN0b3IuQ29udGVudFByb3ZpZGVyPn0gKi8KICAgICB0aGlzLl9jb250ZW50UHJv
dmlkZXJzID0ge307CiB9CiAKLVdlYkluc3BlY3Rvci5OZXR3b3JrV29ya3NwYWNlUHJvdmlkZXIu
cHJvdG90eXBlID0geworLyoqCisgKiBAcGFyYW0ge3N0cmluZ30gdXJsCisgKiBAcmV0dXJuIHtz
dHJpbmd9CisgKi8KK1dlYkluc3BlY3Rvci5Db250ZW50UHJvdmlkZXJXb3Jrc3BhY2VQcm92aWRl
ci51cmlGb3JVUkwgPSBmdW5jdGlvbih1cmwpCit7CisgICAgdmFyIHVyaSA9IHVybDsKKyAgICBy
ZXR1cm4gdXJpOworfSwKKworV2ViSW5zcGVjdG9yLkNvbnRlbnRQcm92aWRlcldvcmtzcGFjZVBy
b3ZpZGVyLnByb3RvdHlwZSA9IHsKICAgICAvKioKICAgICAgKiBAcGFyYW0ge3N0cmluZ30gdXJp
CiAgICAgICogQHBhcmFtIHtmdW5jdGlvbig/c3RyaW5nLGJvb2xlYW4sc3RyaW5nKX0gY2FsbGJh
Y2sKQEAgLTc0LDE0ICs4NCwxNiBAQCBXZWJJbnNwZWN0b3IuTmV0d29ya1dvcmtzcGFjZVByb3Zp
ZGVyLnByb3RvdHlwZSA9IHsKIAogICAgIC8qKgogICAgICAqIEBwYXJhbSB7c3RyaW5nfSB1cmkK
KyAgICAgKiBAcGFyYW0ge3N0cmluZ30gdXJsCiAgICAgICogQHBhcmFtIHtXZWJJbnNwZWN0b3Iu
Q29udGVudFByb3ZpZGVyfSBjb250ZW50UHJvdmlkZXIKICAgICAgKiBAcGFyYW0ge2Jvb2xlYW59
IGlzRWRpdGFibGUKICAgICAgKiBAcGFyYW0ge2Jvb2xlYW49fSBpc0NvbnRlbnRTY3JpcHQKICAg
ICAgKiBAcGFyYW0ge2Jvb2xlYW49fSBpc1NuaXBwZXQKICAgICAgKi8KLSAgICBhZGRGaWxlOiBm
dW5jdGlvbih1cmksIGNvbnRlbnRQcm92aWRlciwgaXNFZGl0YWJsZSwgaXNDb250ZW50U2NyaXB0
LCBpc1NuaXBwZXQpCisgICAgYWRkRmlsZTogZnVuY3Rpb24odXJpLCB1cmwsIGNvbnRlbnRQcm92
aWRlciwgaXNFZGl0YWJsZSwgaXNDb250ZW50U2NyaXB0LCBpc1NuaXBwZXQpCiAgICAgewotICAg
ICAgICB2YXIgZmlsZURlc2NyaXB0b3IgPSBuZXcgV2ViSW5zcGVjdG9yLkZpbGVEZXNjcmlwdG9y
KHVyaSwgY29udGVudFByb3ZpZGVyLmNvbnRlbnRUeXBlKCksIGlzRWRpdGFibGUsIGlzQ29udGVu
dFNjcmlwdCwgaXNTbmlwcGV0KTsKKyAgICAgICAgY29uc29sZS5hc3NlcnQoIXRoaXMuX2NvbnRl
bnRQcm92aWRlcnNbdXJpXSk7CisgICAgICAgIHZhciBmaWxlRGVzY3JpcHRvciA9IG5ldyBXZWJJ
bnNwZWN0b3IuRmlsZURlc2NyaXB0b3IodXJpLCB1cmwsIGNvbnRlbnRQcm92aWRlci5jb250ZW50
VHlwZSgpLCBpc0VkaXRhYmxlLCBpc0NvbnRlbnRTY3JpcHQsIGlzU25pcHBldCk7CiAgICAgICAg
IHRoaXMuX2NvbnRlbnRQcm92aWRlcnNbdXJpXSA9IGNvbnRlbnRQcm92aWRlcjsKICAgICAgICAg
dGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5zcGVjdG9yLldvcmtzcGFjZVByb3Zp
ZGVyLkV2ZW50cy5GaWxlQWRkZWQsIGZpbGVEZXNjcmlwdG9yKTsKICAgICB9LApAQCAtOTUsNiAr
MTA3LDE4IEBAIFdlYkluc3BlY3Rvci5OZXR3b3JrV29ya3NwYWNlUHJvdmlkZXIucHJvdG90eXBl
ID0gewogICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0b3Iu
V29ya3NwYWNlUHJvdmlkZXIuRXZlbnRzLkZpbGVSZW1vdmVkLCB1cmkpOwogICAgIH0sCiAKKyAg
ICAvKioKKyAgICAgKiBAcGFyYW0ge3N0cmluZ30gdXJpCisgICAgICogQHJldHVybiB7c3RyaW5n
fQorICAgICAqLworICAgIHVuaXF1ZVVSSTogZnVuY3Rpb24odXJpKQorICAgIHsKKyAgICAgICAg
dmFyIHVuaXF1ZVVSSSA9IHVyaTsKKyAgICAgICAgZm9yICh2YXIgaSA9IDE7IHRoaXMuX2NvbnRl
bnRQcm92aWRlcnNbdW5pcXVlVVJJXTsgKytpKQorICAgICAgICAgICAgdW5pcXVlVVJJID0gdXJp
ICsgIiAoIiArIGkgKyAiKSI7CisgICAgICAgIHJldHVybiB1bmlxdWVVUkk7CisgICAgfSwKKwog
ICAgIHJlc2V0OiBmdW5jdGlvbigpCiAgICAgewogICAgICAgICB0aGlzLl9jb250ZW50UHJvdmlk
ZXJzID0ge307CkBAIC0xMDQsNiArMTI4LDMyIEBAIFdlYkluc3BlY3Rvci5OZXR3b3JrV29ya3Nw
YWNlUHJvdmlkZXIucHJvdG90eXBlID0gewogfQogCiAvKioKKyAqIEBjb25zdHJ1Y3RvcgorICog
QGV4dGVuZHMge1dlYkluc3BlY3Rvci5Db250ZW50UHJvdmlkZXJXb3Jrc3BhY2VQcm92aWRlcn0K
KyAqLworV2ViSW5zcGVjdG9yLk5ldHdvcmtXb3Jrc3BhY2VQcm92aWRlciA9IGZ1bmN0aW9uKCkK
K3sKKyAgICBXZWJJbnNwZWN0b3IuQ29udGVudFByb3ZpZGVyV29ya3NwYWNlUHJvdmlkZXIuY2Fs
bCh0aGlzKTsKK30KKworV2ViSW5zcGVjdG9yLk5ldHdvcmtXb3Jrc3BhY2VQcm92aWRlci5wcm90
b3R5cGUgPSB7CisgICAgLyoqCisgICAgICogQHBhcmFtIHtzdHJpbmd9IHVybAorICAgICAqIEBw
YXJhbSB7V2ViSW5zcGVjdG9yLkNvbnRlbnRQcm92aWRlcn0gY29udGVudFByb3ZpZGVyCisgICAg
ICogQHBhcmFtIHtib29sZWFufSBpc0VkaXRhYmxlCisgICAgICogQHBhcmFtIHtib29sZWFuPX0g
aXNDb250ZW50U2NyaXB0CisgICAgICogQHBhcmFtIHtib29sZWFuPX0gaXNTbmlwcGV0CisgICAg
ICovCisgICAgYWRkTmV0d29ya0ZpbGU6IGZ1bmN0aW9uKHVybCwgY29udGVudFByb3ZpZGVyLCBp
c0VkaXRhYmxlLCBpc0NvbnRlbnRTY3JpcHQsIGlzU25pcHBldCkKKyAgICB7CisgICAgICAgIHZh
ciB1cmkgPSBXZWJJbnNwZWN0b3IuQ29udGVudFByb3ZpZGVyV29ya3NwYWNlUHJvdmlkZXIudXJp
Rm9yVVJMKHVybCk7CisgICAgICAgIHRoaXMuYWRkRmlsZSh1cmksIHVybCwgY29udGVudFByb3Zp
ZGVyLCBpc0VkaXRhYmxlLCBpc0NvbnRlbnRTY3JpcHQsIGlzU25pcHBldCk7CisgICAgfSwKKyAg
ICAKKyAgICBfX3Byb3RvX186IFdlYkluc3BlY3Rvci5Db250ZW50UHJvdmlkZXJXb3Jrc3BhY2VQ
cm92aWRlci5wcm90b3R5cGUKK30KKworLyoqCiAgKiBAdHlwZSB7P1dlYkluc3BlY3Rvci5OZXR3
b3JrV29ya3NwYWNlUHJvdmlkZXJ9CiAgKi8KIFdlYkluc3BlY3Rvci5uZXR3b3JrV29ya3NwYWNl
UHJvdmlkZXIgPSBudWxsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9TQVNTU291cmNlTWFwcGluZy5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvU0FTU1NvdXJjZU1hcHBpbmcuanMKaW5kZXggNDNiYzFlN2NmNDY2NDBlNzY4ZDk3
NmQ5MWVhZjBiNzY2ZWQwNTA2MS4uZDY3ZTZkNjJmZDY5Yjg1NTI5ZDI2MTdkMzY0NDQ3MWFlZjYx
NjljNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TQVNT
U291cmNlTWFwcGluZy5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L1NBU1NTb3VyY2VNYXBwaW5nLmpzCkBAIC0xNTcsNyArMTU3LDcgQEAgV2ViSW5zcGVjdG9yLlNB
U1NTb3VyY2VNYXBwaW5nLnByb3RvdHlwZSA9IHsKICAgICAgICAgaWYgKCF1aVNvdXJjZUNvZGUp
IHsKICAgICAgICAgICAgIHZhciBjb250ZW50ID0gSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmxvYWRS
ZXNvdXJjZVN5bmNocm9ub3VzbHkodXJsKTsKICAgICAgICAgICAgIHZhciBjb250ZW50UHJvdmlk
ZXIgPSBuZXcgV2ViSW5zcGVjdG9yLlN0YXRpY0NvbnRlbnRQcm92aWRlcihXZWJJbnNwZWN0b3Iu
cmVzb3VyY2VUeXBlcy5TdHlsZXNoZWV0LCBjb250ZW50LCAidGV4dC94LXNjc3MiKTsKLSAgICAg
ICAgICAgIHRoaXMuX25ldHdvcmtXb3Jrc3BhY2VQcm92aWRlci5hZGRGaWxlKHVybCwgY29udGVu
dFByb3ZpZGVyLCB0cnVlKTsKKyAgICAgICAgICAgIHRoaXMuX25ldHdvcmtXb3Jrc3BhY2VQcm92
aWRlci5hZGROZXR3b3JrRmlsZSh1cmwsIGNvbnRlbnRQcm92aWRlciwgdHJ1ZSk7CiAgICAgICAg
ICAgICB1aVNvdXJjZUNvZGUgPSB0aGlzLl93b3Jrc3BhY2UudWlTb3VyY2VDb2RlRm9yVVJMKHVy
bCk7CiAgICAgICAgICAgICBXZWJJbnNwZWN0b3IuY3NzTW9kZWwuc2V0U291cmNlTWFwcGluZyhy
YXdVUkwsIHRoaXMpOwogICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL1NjcmlwdFNuaXBwZXRNb2RlbC5qcyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0U25pcHBldE1vZGVsLmpzCmluZGV4IDE5MDYwYmRmNTBl
ZjAxNmE2MjBmMzZmMDg5NWFlNGM4ODUxOWY0MmIuLjllM2YwMzE3ZTg4MDg2MzZlY2IxMmU5ODk3
Mzk3ODU4YWE5YzUzZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvU2NyaXB0U25pcHBldE1vZGVsLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvU2NyaXB0U25pcHBldE1vZGVsLmpzCkBAIC04Miw3ICs4Miw3IEBAIFdlYklu
c3BlY3Rvci5TY3JpcHRTbmlwcGV0TW9kZWwucHJvdG90eXBlID0gewogICAgICAqLwogICAgIF9h
ZGRTY3JpcHRTbmlwcGV0OiBmdW5jdGlvbihzbmlwcGV0KQogICAgIHsKLSAgICAgICAgdGhpcy5f
bmV0d29ya1dvcmtzcGFjZVByb3ZpZGVyLmFkZEZpbGUoc25pcHBldC5uYW1lLCBuZXcgV2ViSW5z
cGVjdG9yLlNuaXBwZXRDb250ZW50UHJvdmlkZXIoc25pcHBldCksIHRydWUsIGZhbHNlLCB0cnVl
KTsKKyAgICAgICAgdGhpcy5fbmV0d29ya1dvcmtzcGFjZVByb3ZpZGVyLmFkZE5ldHdvcmtGaWxl
KHNuaXBwZXQubmFtZSwgbmV3IFdlYkluc3BlY3Rvci5TbmlwcGV0Q29udGVudFByb3ZpZGVyKHNu
aXBwZXQpLCB0cnVlLCBmYWxzZSwgdHJ1ZSk7CiAgICAgICAgIHZhciB1aVNvdXJjZUNvZGUgPSB0
aGlzLl93b3Jrc3BhY2UudWlTb3VyY2VDb2RlRm9yVVJMKHNuaXBwZXQubmFtZSk7CiAgICAgICAg
IHZhciBzY3JpcHRGaWxlID0gbmV3IFdlYkluc3BlY3Rvci5TbmlwcGV0U2NyaXB0RmlsZSh0aGlz
LCB1aVNvdXJjZUNvZGUpOwogICAgICAgICB1aVNvdXJjZUNvZGUuc2V0U2NyaXB0RmlsZShzY3Jp
cHRGaWxlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
VGFiYmVkRWRpdG9yQ29udGFpbmVyLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9UYWJiZWRFZGl0b3JDb250YWluZXIuanMKaW5kZXggZDA2NTdmNDkzYzBiZWNhMWEyNjE2
NTU5NTk3MGU5ODY2YmEzMWMwNi4uMmJhYWQ1MTYwNmViZWU0ZWMxYzczOWIyMjlkZTBkNTk0ZWM5
YzAxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UYWJi
ZWRFZGl0b3JDb250YWluZXIuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9UYWJiZWRFZGl0b3JDb250YWluZXIuanMKQEAgLTU5LDcgKzU5LDcgQEAgV2ViSW5zcGVj
dG9yLlRhYmJlZEVkaXRvckNvbnRhaW5lciA9IGZ1bmN0aW9uKGRlbGVnYXRlLCBzZXR0aW5nTmFt
ZSkKIAogICAgIHRoaXMuX3RhYklkcyA9IG5ldyBNYXAoKTsKICAgICB0aGlzLl9maWxlcyA9IHt9
OwotICAgIHRoaXMuX2xvYWRlZFVSTHMgPSB7fTsKKyAgICB0aGlzLl9sb2FkZWRVUklzID0ge307
CiAKICAgICB0aGlzLl9wcmV2aW91c2x5Vmlld2VkRmlsZXNTZXR0aW5nID0gV2ViSW5zcGVjdG9y
LnNldHRpbmdzLmNyZWF0ZVNldHRpbmcoc2V0dGluZ05hbWUsIFtdKTsKICAgICB0aGlzLl9oaXN0
b3J5ID0gV2ViSW5zcGVjdG9yLlRhYmJlZEVkaXRvckNvbnRhaW5lci5IaXN0b3J5LmZyb21PYmpl
Y3QodGhpcy5fcHJldmlvdXNseVZpZXdlZEZpbGVzU2V0dGluZy5nZXQoKSk7CkBAIC0xMjgsMTQg
KzEyOCwxNCBAQCBXZWJJbnNwZWN0b3IuVGFiYmVkRWRpdG9yQ29udGFpbmVyLnByb3RvdHlwZSA9
IHsKICAgICBfc2Nyb2xsQ2hhbmdlZDogZnVuY3Rpb24oZXZlbnQpCiAgICAgewogICAgICAgICB2
YXIgbGluZU51bWJlciA9IC8qKiBAdHlwZSB7bnVtYmVyfSAqLyAoZXZlbnQuZGF0YSk7Ci0gICAg
ICAgIHRoaXMuX2hpc3RvcnkudXBkYXRlU2Nyb2xsTGluZU51bWJlcih0aGlzLl9jdXJyZW50Rmls
ZS51cmwsIGxpbmVOdW1iZXIpOworICAgICAgICB0aGlzLl9oaXN0b3J5LnVwZGF0ZVNjcm9sbExp
bmVOdW1iZXIodGhpcy5fY3VycmVudEZpbGUudXJpKCksIGxpbmVOdW1iZXIpOwogICAgICAgICB0
aGlzLl9oaXN0b3J5LnNhdmUodGhpcy5fcHJldmlvdXNseVZpZXdlZEZpbGVzU2V0dGluZyk7CiAg
ICAgfSwKIAogICAgIF9zZWxlY3Rpb25DaGFuZ2VkOiBmdW5jdGlvbihldmVudCkKICAgICB7CiAg
ICAgICAgIHZhciByYW5nZSA9IC8qKiBAdHlwZSB7V2ViSW5zcGVjdG9yLlRleHRSYW5nZX0gKi8g
KGV2ZW50LmRhdGEpOwotICAgICAgICB0aGlzLl9oaXN0b3J5LnVwZGF0ZVNlbGVjdGlvblJhbmdl
KHRoaXMuX2N1cnJlbnRGaWxlLnVybCwgcmFuZ2UpOworICAgICAgICB0aGlzLl9oaXN0b3J5LnVw
ZGF0ZVNlbGVjdGlvblJhbmdlKHRoaXMuX2N1cnJlbnRGaWxlLnVyaSgpLCByYW5nZSk7CiAgICAg
ICAgIHRoaXMuX2hpc3Rvcnkuc2F2ZSh0aGlzLl9wcmV2aW91c2x5Vmlld2VkRmlsZXNTZXR0aW5n
KTsKICAgICB9LAogCkBAIC0xOTIsMTEgKzE5MiwxMSBAQCBXZWJJbnNwZWN0b3IuVGFiYmVkRWRp
dG9yQ29udGFpbmVyLnByb3RvdHlwZSA9IHsKICAgICAgKi8KICAgICBhZGRVSVNvdXJjZUNvZGU6
IGZ1bmN0aW9uKHVpU291cmNlQ29kZSkKICAgICB7Ci0gICAgICAgIGlmICh0aGlzLl91c2VyU2Vs
ZWN0ZWRGaWxlcyB8fCB0aGlzLl9sb2FkZWRVUkxzW3VpU291cmNlQ29kZS51cmxdKQorICAgICAg
ICBpZiAodGhpcy5fdXNlclNlbGVjdGVkRmlsZXMgfHwgdGhpcy5fbG9hZGVkVVJJc1t1aVNvdXJj
ZUNvZGUudXJpKCldKQogICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB0aGlzLl9sb2FkZWRV
UkxzW3VpU291cmNlQ29kZS51cmxdID0gdHJ1ZTsKKyAgICAgICAgdGhpcy5fbG9hZGVkVVJJc1t1
aVNvdXJjZUNvZGUudXJpKCldID0gdHJ1ZTsKIAotICAgICAgICB2YXIgaW5kZXggPSB0aGlzLl9o
aXN0b3J5LmluZGV4KHVpU291cmNlQ29kZS51cmwpCisgICAgICAgIHZhciBpbmRleCA9IHRoaXMu
X2hpc3RvcnkuaW5kZXgodWlTb3VyY2VDb2RlLnVyaSgpKQogICAgICAgICBpZiAoaW5kZXggPT09
IC0xKQogICAgICAgICAgICAgcmV0dXJuOwogCkBAIC0yMzYsNyArMjM2LDcgQEAgV2ViSW5zcGVj
dG9yLlRhYmJlZEVkaXRvckNvbnRhaW5lci5wcm90b3R5cGUgPSB7CiAgICAgX2VkaXRvckNsb3Nl
ZEJ5VXNlckFjdGlvbjogZnVuY3Rpb24odWlTb3VyY2VDb2RlKQogICAgIHsKICAgICAgICAgdGhp
cy5fdXNlclNlbGVjdGVkRmlsZXMgPSB0cnVlOwotICAgICAgICB0aGlzLl9oaXN0b3J5LnJlbW92
ZSh1aVNvdXJjZUNvZGUudXJsKTsKKyAgICAgICAgdGhpcy5faGlzdG9yeS5yZW1vdmUodWlTb3Vy
Y2VDb2RlLnVyaSgpKTsKICAgICAgICAgdGhpcy5fdXBkYXRlSGlzdG9yeSgpOwogICAgIH0sCiAK
QEAgLTI1MCwxMiArMjUwLDEyIEBAIFdlYkluc3BlY3Rvci5UYWJiZWRFZGl0b3JDb250YWluZXIu
cHJvdG90eXBlID0gewogICAgIHsKICAgICAgICAgdmFyIHRhYklkcyA9IHRoaXMuX3RhYmJlZFBh
bmUubGFzdE9wZW5lZFRhYklkcyhXZWJJbnNwZWN0b3IuVGFiYmVkRWRpdG9yQ29udGFpbmVyLm1h
eGltYWxQcmV2aW91c2x5Vmlld2VkRmlsZXNDb3VudCk7CiAgICAgICAgIAotICAgICAgICBmdW5j
dGlvbiB0YWJJZFRvVVJMKHRhYklkKQorICAgICAgICBmdW5jdGlvbiB0YWJJZFRvVVJJKHRhYklk
KQogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gdGhpcy5fZmlsZXNbdGFiSWRdLnVybDsK
KyAgICAgICAgICAgIHJldHVybiB0aGlzLl9maWxlc1t0YWJJZF0udXJpKCk7CiAgICAgICAgIH0K
ICAgICAgICAgCi0gICAgICAgIHRoaXMuX2hpc3RvcnkudXBkYXRlKHRhYklkcy5tYXAodGFiSWRU
b1VSTC5iaW5kKHRoaXMpKSk7CisgICAgICAgIHRoaXMuX2hpc3RvcnkudXBkYXRlKHRhYklkcy5t
YXAodGFiSWRUb1VSSS5iaW5kKHRoaXMpKSk7CiAgICAgICAgIHRoaXMuX2hpc3Rvcnkuc2F2ZSh0
aGlzLl9wcmV2aW91c2x5Vmlld2VkRmlsZXNTZXR0aW5nKTsKICAgICB9LAogCkBAIC0yODIsMTAg
KzI4MiwxMCBAQCBXZWJJbnNwZWN0b3IuVGFiYmVkRWRpdG9yQ29udGFpbmVyLnByb3RvdHlwZSA9
IHsKICAgICAgICAgdGhpcy5fdGFiSWRzLnB1dCh1aVNvdXJjZUNvZGUsIHRhYklkKTsKICAgICAg
ICAgdGhpcy5fZmlsZXNbdGFiSWRdID0gdWlTb3VyY2VDb2RlOwogCi0gICAgICAgIHZhciBzYXZl
ZFNjcm9sbExpbmVOdW1iZXIgPSB0aGlzLl9oaXN0b3J5LnNjcm9sbExpbmVOdW1iZXIodWlTb3Vy
Y2VDb2RlLnVybCk7CisgICAgICAgIHZhciBzYXZlZFNjcm9sbExpbmVOdW1iZXIgPSB0aGlzLl9o
aXN0b3J5LnNjcm9sbExpbmVOdW1iZXIodWlTb3VyY2VDb2RlLnVyaSgpKTsKICAgICAgICAgaWYg
KHNhdmVkU2Nyb2xsTGluZU51bWJlcikKICAgICAgICAgICAgIHZpZXcuc2Nyb2xsVG9MaW5lKHNh
dmVkU2Nyb2xsTGluZU51bWJlcik7Ci0gICAgICAgIHZhciBzYXZlZFNlbGVjdGlvblJhbmdlID0g
dGhpcy5faGlzdG9yeS5zZWxlY3Rpb25SYW5nZSh1aVNvdXJjZUNvZGUudXJsKTsKKyAgICAgICAg
dmFyIHNhdmVkU2VsZWN0aW9uUmFuZ2UgPSB0aGlzLl9oaXN0b3J5LnNlbGVjdGlvblJhbmdlKHVp
U291cmNlQ29kZS51cmkoKSk7CiAgICAgICAgIGlmIChzYXZlZFNlbGVjdGlvblJhbmdlKQogICAg
ICAgICAgICAgdmlldy5zZXRTZWxlY3Rpb24oc2F2ZWRTZWxlY3Rpb25SYW5nZSk7CiAKQEAgLTM5
Niw3ICszOTYsNyBAQCBXZWJJbnNwZWN0b3IuVGFiYmVkRWRpdG9yQ29udGFpbmVyLnByb3RvdHlw
ZSA9IHsKICAgICAgICAgdGhpcy5fZmlsZXMgPSB7fTsKICAgICAgICAgZGVsZXRlIHRoaXMuX2N1
cnJlbnRGaWxlOwogICAgICAgICBkZWxldGUgdGhpcy5fdXNlclNlbGVjdGVkRmlsZXM7Ci0gICAg
ICAgIHRoaXMuX2xvYWRlZFVSTHMgPSB7fTsKKyAgICAgICAgdGhpcy5fbG9hZGVkVVJJcyA9IHt9
OwogICAgIH0sCiAKICAgICAvKioKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvVUlTb3VyY2VDb2RlLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9VSVNvdXJjZUNvZGUuanMKaW5kZXggOTI0ZGY0MzU3YWQ1YmI1YTRiMGNjMGRkMWQ2
YTcxYjVjMjQyN2NhYy4uZTZjYWNiYTAyNDljMzViODFiZjkwNDczODcxOTU2ZjIxY2IwMjA5NyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9VSVNvdXJjZUNv
ZGUuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9VSVNvdXJjZUNv
ZGUuanMKQEAgLTM0LDEzICszNCwxNSBAQAogICogQGV4dGVuZHMge1dlYkluc3BlY3Rvci5PYmpl
Y3R9CiAgKiBAaW1wbGVtZW50cyB7V2ViSW5zcGVjdG9yLkNvbnRlbnRQcm92aWRlcn0KICAqIEBw
YXJhbSB7V2ViSW5zcGVjdG9yLldvcmtzcGFjZX0gd29ya3NwYWNlCisgKiBAcGFyYW0ge3N0cmlu
Z30gdXJpCiAgKiBAcGFyYW0ge3N0cmluZ30gdXJsCiAgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5S
ZXNvdXJjZVR5cGV9IGNvbnRlbnRUeXBlCiAgKiBAcGFyYW0ge2Jvb2xlYW59IGlzRWRpdGFibGUK
ICAqLwotV2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZSA9IGZ1bmN0aW9uKHdvcmtzcGFjZSwgdXJs
LCBjb250ZW50VHlwZSwgaXNFZGl0YWJsZSkKK1dlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGUgPSBm
dW5jdGlvbih3b3Jrc3BhY2UsIHVyaSwgdXJsLCBjb250ZW50VHlwZSwgaXNFZGl0YWJsZSkKIHsK
ICAgICB0aGlzLl93b3Jrc3BhY2UgPSB3b3Jrc3BhY2U7CisgICAgdGhpcy5fdXJpID0gdXJpOwog
ICAgIHRoaXMuX3VybCA9IHVybDsKICAgICB0aGlzLl9wYXJzZWRVUkwgPSBuZXcgV2ViSW5zcGVj
dG9yLlBhcnNlZFVSTCh1cmwpOwogICAgIHRoaXMuX2NvbnRlbnRUeXBlID0gY29udGVudFR5cGU7
CkBAIC04OCw2ICs5MCwxNCBAQCBXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2RlLnByb3RvdHlwZSA9
IHsKICAgICB9LAogCiAgICAgLyoqCisgICAgICogQHJldHVybiB7c3RyaW5nfQorICAgICAqLwor
ICAgIHVyaTogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuX3VyaTsKKyAg
ICB9LAorCisgICAgLyoqCiAgICAgICogQHBhcmFtIHtzdHJpbmd9IHVybAogICAgICAqLwogICAg
IHVybENoYW5nZWQ6IGZ1bmN0aW9uKHVybCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvV29ya3NwYWNlLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9Xb3Jrc3BhY2UuanMKaW5kZXggZjQ3M2ZiZDJlOGNmNWRiNDk2ZTgxZjA3ODRm
MTM4MmRmMjJjNDVlYS4uNmZmNDExN2IyNDczNDk0OTM2OGI3NGZlYmMxYjhkMjZkZWQ4Mzk2ZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Xb3Jrc3BhY2Uu
anMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Xb3Jrc3BhY2UuanMK
QEAgLTU5LDE0ICs1OSwxNiBAQCBXZWJJbnNwZWN0b3IuV29ya3NwYWNlQ29udHJvbGxlci5wcm90
b3R5cGUgPSB7CiAvKioKICAqIEBjb25zdHJ1Y3RvcgogICogQHBhcmFtIHtzdHJpbmd9IHVyaQor
ICogQHBhcmFtIHtzdHJpbmd9IHVybAogICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuUmVzb3VyY2VU
eXBlfSBjb250ZW50VHlwZQogICogQHBhcmFtIHtib29sZWFufSBpc0VkaXRhYmxlCiAgKiBAcGFy
YW0ge2Jvb2xlYW49fSBpc0NvbnRlbnRTY3JpcHQKICAqIEBwYXJhbSB7Ym9vbGVhbj19IGlzU25p
cHBldAogICovCi1XZWJJbnNwZWN0b3IuRmlsZURlc2NyaXB0b3IgPSBmdW5jdGlvbih1cmksIGNv
bnRlbnRUeXBlLCBpc0VkaXRhYmxlLCBpc0NvbnRlbnRTY3JpcHQsIGlzU25pcHBldCkKK1dlYklu
c3BlY3Rvci5GaWxlRGVzY3JpcHRvciA9IGZ1bmN0aW9uKHVyaSwgdXJsLCBjb250ZW50VHlwZSwg
aXNFZGl0YWJsZSwgaXNDb250ZW50U2NyaXB0LCBpc1NuaXBwZXQpCiB7CiAgICAgdGhpcy51cmkg
PSB1cmk7CisgICAgdGhpcy51cmwgPSB1cmw7CiAgICAgdGhpcy5jb250ZW50VHlwZSA9IGNvbnRl
bnRUeXBlOwogICAgIHRoaXMuaXNFZGl0YWJsZSA9IGlzRWRpdGFibGU7CiAgICAgdGhpcy5pc0Nv
bnRlbnRTY3JpcHQgPSBpc0NvbnRlbnRTY3JpcHQgfHwgZmFsc2U7CkBAIC0xNTAsMTIgKzE1Miwx
MiBAQCBXZWJJbnNwZWN0b3IuUHJvamVjdC5wcm90b3R5cGUgPSB7CiAgICAgX2ZpbGVBZGRlZDog
ZnVuY3Rpb24oZXZlbnQpCiAgICAgewogICAgICAgICB2YXIgZmlsZURlc2NyaXB0b3IgPSAvKiog
QHR5cGUge1dlYkluc3BlY3Rvci5GaWxlRGVzY3JpcHRvcn0gKi8gKGV2ZW50LmRhdGEpOwotICAg
ICAgICB2YXIgdWlTb3VyY2VDb2RlID0gdGhpcy51aVNvdXJjZUNvZGVGb3JVUkwoZmlsZURlc2Ny
aXB0b3IudXJpKTsKKyAgICAgICAgdmFyIHVpU291cmNlQ29kZSA9IHRoaXMudWlTb3VyY2VDb2Rl
Rm9yVVJJKGZpbGVEZXNjcmlwdG9yLnVyaSk7CiAgICAgICAgIGlmICh1aVNvdXJjZUNvZGUpIHsK
ICAgICAgICAgICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQKICAgICAgICAgICAgIHJldHVybjsKICAg
ICAgICAgfQotICAgICAgICB1aVNvdXJjZUNvZGUgPSBuZXcgV2ViSW5zcGVjdG9yLlVJU291cmNl
Q29kZSh0aGlzLl93b3Jrc3BhY2UsIGZpbGVEZXNjcmlwdG9yLnVyaSwgZmlsZURlc2NyaXB0b3Iu
Y29udGVudFR5cGUsIGZpbGVEZXNjcmlwdG9yLmlzRWRpdGFibGUpOworICAgICAgICB1aVNvdXJj
ZUNvZGUgPSBuZXcgV2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZSh0aGlzLl93b3Jrc3BhY2UsIGZp
bGVEZXNjcmlwdG9yLnVyaSwgZmlsZURlc2NyaXB0b3IudXJsLCBmaWxlRGVzY3JpcHRvci5jb250
ZW50VHlwZSwgZmlsZURlc2NyaXB0b3IuaXNFZGl0YWJsZSk7CiAgICAgICAgIHVpU291cmNlQ29k
ZS5pc0NvbnRlbnRTY3JpcHQgPSBmaWxlRGVzY3JpcHRvci5pc0NvbnRlbnRTY3JpcHQ7CiAgICAg
ICAgIHVpU291cmNlQ29kZS5pc1NuaXBwZXQgPSBmaWxlRGVzY3JpcHRvci5pc1NuaXBwZXQ7CiAg
ICAgICAgIHRoaXMuX3VpU291cmNlQ29kZXMucHVzaCh1aVNvdXJjZUNvZGUpOwpAQCAtMTY1LDcg
KzE2Nyw3IEBAIFdlYkluc3BlY3Rvci5Qcm9qZWN0LnByb3RvdHlwZSA9IHsKICAgICBfZmlsZVJl
bW92ZWQ6IGZ1bmN0aW9uKGV2ZW50KQogICAgIHsKICAgICAgICAgdmFyIHVyaSA9IC8qKiBAdHlw
ZSB7c3RyaW5nfSAqLyAoZXZlbnQuZGF0YSk7Ci0gICAgICAgIHZhciB1aVNvdXJjZUNvZGUgPSB0
aGlzLnVpU291cmNlQ29kZUZvclVSTCh1cmkpOworICAgICAgICB2YXIgdWlTb3VyY2VDb2RlID0g
dGhpcy51aVNvdXJjZUNvZGVGb3JVUkkodXJpKTsKICAgICAgICAgaWYgKCF1aVNvdXJjZUNvZGUp
CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIHRoaXMuX3VpU291cmNlQ29kZXMuc3BsaWNl
KHRoaXMuX3VpU291cmNlQ29kZXMuaW5kZXhPZih1aVNvdXJjZUNvZGUpLCAxKTsKQEAgLTE4Niw2
ICsxODgsMTkgQEAgV2ViSW5zcGVjdG9yLlByb2plY3QucHJvdG90eXBlID0gewogICAgIH0sCiAK
ICAgICAvKioKKyAgICAgKiBAcGFyYW0ge3N0cmluZ30gdXJpCisgICAgICogQHJldHVybiB7P1dl
Ykluc3BlY3Rvci5VSVNvdXJjZUNvZGV9CisgICAgICovCisgICAgdWlTb3VyY2VDb2RlRm9yVVJJ
OiBmdW5jdGlvbih1cmkpCisgICAgeworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMu
X3VpU291cmNlQ29kZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIGlmICh0aGlzLl91aVNv
dXJjZUNvZGVzW2ldLnVyaSgpID09PSB1cmkpCisgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMu
X3VpU291cmNlQ29kZXNbaV07CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG51bGw7CisgICAg
fSwKKworICAgIC8qKgogICAgICAqIEByZXR1cm4ge0FycmF5LjxXZWJJbnNwZWN0b3IuVUlTb3Vy
Y2VDb2RlPn0KICAgICAgKi8KICAgICB1aVNvdXJjZUNvZGVzOiBmdW5jdGlvbigpCkBAIC0yMzMs
NyArMjQ4LDkgQEAgV2ViSW5zcGVjdG9yLlByb2plY3QucHJvdG90eXBlID0gewogV2ViSW5zcGVj
dG9yLldvcmtzcGFjZSA9IGZ1bmN0aW9uKCkKIHsKICAgICAvKiogQHR5cGUge09iamVjdC48c3Ry
aW5nLCBXZWJJbnNwZWN0b3IuQ29udGVudFByb3ZpZGVyPn0gKi8KLSAgICB0aGlzLl90ZW1wb3Jh
cnlDb250ZW50UHJvdmlkZXJzID0gbmV3IE1hcCgpOworICAgIHRoaXMuX3RlbXBvcmFyeUNvbnRl
bnRQcm92aWRlcnMgPSB7fTsKKyAgICAvKiogQHR5cGUge09iamVjdC48c3RyaW5nLCBXZWJJbnNw
ZWN0b3IuVUlTb3VyY2VDb2RlPn0gKi8KKyAgICB0aGlzLl90ZW1wb3JhcnlVSVNvdXJjZUNvZGVz
ID0ge307CiB9CiAKIFdlYkluc3BlY3Rvci5Xb3Jrc3BhY2UuRXZlbnRzID0gewpAQCAtMjUzLDYg
KzI3MCwxNSBAQCBXZWJJbnNwZWN0b3IuV29ya3NwYWNlLnByb3RvdHlwZSA9IHsKICAgICB9LAog
CiAgICAgLyoqCisgICAgICogQHBhcmFtIHtzdHJpbmd9IHVyaQorICAgICAqIEByZXR1cm4gez9X
ZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2RlfQorICAgICAqLworICAgIHVpU291cmNlQ29kZUZvclVS
STogZnVuY3Rpb24odXJpKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuX3RlbXBvcmFyeVVJ
U291cmNlQ29kZXNbdXJpXSB8fCB0aGlzLl9wcm9qZWN0LnVpU291cmNlQ29kZUZvclVSSSh1cmkp
OworICAgIH0sCisKKyAgICAvKioKICAgICAgKiBAcGFyYW0ge3N0cmluZ30gcHJvamVjdE5hbWUK
ICAgICAgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5Xb3Jrc3BhY2VQcm92aWRlcn0gd29ya3NwYWNl
UHJvdmlkZXIKICAgICAgKi8KQEAgLTI4MCwxNCArMzA2LDE2IEBAIFdlYkluc3BlY3Rvci5Xb3Jr
c3BhY2UucHJvdG90eXBlID0gewogCiAgICAgLyoqCiAgICAgICogQHBhcmFtIHtzdHJpbmd9IHVy
aQorICAgICAqIEBwYXJhbSB7c3RyaW5nfSB1cmwKICAgICAgKiBAcGFyYW0ge1dlYkluc3BlY3Rv
ci5Db250ZW50UHJvdmlkZXJ9IGNvbnRlbnRQcm92aWRlcgogICAgICAqIEBwYXJhbSB7Ym9vbGVh
bn0gaXNFZGl0YWJsZQogICAgICAqIEBwYXJhbSB7Ym9vbGVhbj19IGlzQ29udGVudFNjcmlwdAog
ICAgICAqLwotICAgIGFkZFRlbXBvcmFyeVVJU291cmNlQ29kZTogZnVuY3Rpb24odXJpLCBjb250
ZW50UHJvdmlkZXIsIGlzRWRpdGFibGUsIGlzQ29udGVudFNjcmlwdCkKKyAgICBhZGRUZW1wb3Jh
cnlVSVNvdXJjZUNvZGU6IGZ1bmN0aW9uKHVyaSwgdXJsLCBjb250ZW50UHJvdmlkZXIsIGlzRWRp
dGFibGUsIGlzQ29udGVudFNjcmlwdCkKICAgICB7Ci0gICAgICAgIHZhciB1aVNvdXJjZUNvZGUg
PSBuZXcgV2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZSh0aGlzLCB1cmksIGNvbnRlbnRQcm92aWRl
ci5jb250ZW50VHlwZSgpLCBpc0VkaXRhYmxlKTsKLSAgICAgICAgdGhpcy5fdGVtcG9yYXJ5Q29u
dGVudFByb3ZpZGVycy5wdXQodWlTb3VyY2VDb2RlLCBjb250ZW50UHJvdmlkZXIpOworICAgICAg
ICB2YXIgdWlTb3VyY2VDb2RlID0gbmV3IFdlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGUodGhpcywg
dXJpLCB1cmwsIGNvbnRlbnRQcm92aWRlci5jb250ZW50VHlwZSgpLCBpc0VkaXRhYmxlKTsKKyAg
ICAgICAgdGhpcy5fdGVtcG9yYXJ5Q29udGVudFByb3ZpZGVyc1t1cmldID0gY29udGVudFByb3Zp
ZGVyOworICAgICAgICB0aGlzLl90ZW1wb3JhcnlVSVNvdXJjZUNvZGVzW3VyaV0gPSB1aVNvdXJj
ZUNvZGU7CiAgICAgICAgIHVpU291cmNlQ29kZS5pc0NvbnRlbnRTY3JpcHQgPSBpc0NvbnRlbnRT
Y3JpcHQ7CiAgICAgICAgIHVpU291cmNlQ29kZS5pc1RlbXBvcmFyeSA9IHRydWU7CiAgICAgICAg
IHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGVQ
cm92aWRlci5FdmVudHMuVGVtcG9yYXJ5VUlTb3VyY2VDb2RlQWRkZWQsIHVpU291cmNlQ29kZSk7
CkBAIC0yOTksNyArMzI3LDggQEAgV2ViSW5zcGVjdG9yLldvcmtzcGFjZS5wcm90b3R5cGUgPSB7
CiAgICAgICovCiAgICAgcmVtb3ZlVGVtcG9yYXJ5VUlTb3VyY2VDb2RlOiBmdW5jdGlvbih1aVNv
dXJjZUNvZGUpCiAgICAgewotICAgICAgICB0aGlzLl90ZW1wb3JhcnlDb250ZW50UHJvdmlkZXJz
LnJlbW92ZSh1aVNvdXJjZUNvZGUudXJsKTsKKyAgICAgICAgZGVsZXRlIHRoaXMuX3RlbXBvcmFy
eUNvbnRlbnRQcm92aWRlcnNbdWlTb3VyY2VDb2RlLnVyaSgpXTsKKyAgICAgICAgZGVsZXRlIHRo
aXMuX3RlbXBvcmFyeVVJU291cmNlQ29kZXNbdWlTb3VyY2VDb2RlLnVyaSgpXTsKICAgICAgICAg
dGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZVBy
b3ZpZGVyLkV2ZW50cy5UZW1wb3JhcnlVSVNvdXJjZUNvZGVSZW1vdmVkLCB1aVNvdXJjZUNvZGUp
OwogICAgIH0sCiAKQEAgLTMwOSwxMSArMzM4LDEyIEBAIFdlYkluc3BlY3Rvci5Xb3Jrc3BhY2Uu
cHJvdG90eXBlID0gewogICAgICAqLwogICAgIHJlcXVlc3RGaWxlQ29udGVudDogZnVuY3Rpb24o
dWlTb3VyY2VDb2RlLCBjYWxsYmFjaykKICAgICB7Ci0gICAgICAgIGlmICh0aGlzLl90ZW1wb3Jh
cnlDb250ZW50UHJvdmlkZXJzLmdldCh1aVNvdXJjZUNvZGUpKSB7Ci0gICAgICAgICAgICB0aGlz
Ll90ZW1wb3JhcnlDb250ZW50UHJvdmlkZXJzLmdldCh1aVNvdXJjZUNvZGUpLnJlcXVlc3RDb250
ZW50KGNhbGxiYWNrKTsKKyAgICAgICAgdmFyIHRlbXBvcmFyeUNvbnRlbnRQcm92aWRlciA9IHRo
aXMuX3RlbXBvcmFyeUNvbnRlbnRQcm92aWRlcnNbdWlTb3VyY2VDb2RlLnVyaSgpXTsKKyAgICAg
ICAgaWYgKHRlbXBvcmFyeUNvbnRlbnRQcm92aWRlcikgeworICAgICAgICAgICAgdGVtcG9yYXJ5
Q29udGVudFByb3ZpZGVyLnJlcXVlc3RDb250ZW50KGNhbGxiYWNrKTsKICAgICAgICAgICAgIHJl
dHVybjsKICAgICAgICAgfQotICAgICAgICB0aGlzLl9wcm9qZWN0LnJlcXVlc3RGaWxlQ29udGVu
dCh1aVNvdXJjZUNvZGUudXJsLCBjYWxsYmFjayk7CisgICAgICAgIHRoaXMuX3Byb2plY3QucmVx
dWVzdEZpbGVDb250ZW50KHVpU291cmNlQ29kZS51cmkoKSwgY2FsbGJhY2spOwogICAgIH0sCiAK
ICAgICAvKioKQEAgLTMyMyw3ICszNTMsNyBAQCBXZWJJbnNwZWN0b3IuV29ya3NwYWNlLnByb3Rv
dHlwZSA9IHsKICAgICAgKi8KICAgICBzZXRGaWxlQ29udGVudDogZnVuY3Rpb24odWlTb3VyY2VD
b2RlLCBuZXdDb250ZW50LCBjYWxsYmFjaykKICAgICB7Ci0gICAgICAgIGlmICh0aGlzLl90ZW1w
b3JhcnlDb250ZW50UHJvdmlkZXJzLmdldCh1aVNvdXJjZUNvZGUpKQorICAgICAgICBpZiAodGhp
cy5fdGVtcG9yYXJ5Q29udGVudFByb3ZpZGVyc1t1aVNvdXJjZUNvZGUudXJpKCldKQogICAgICAg
ICAgICAgcmV0dXJuOwogICAgICAgICB0aGlzLl9wcm9qZWN0LnNldEZpbGVDb250ZW50KHVpU291
cmNlQ29kZS51cmwsIG5ld0NvbnRlbnQsIGNhbGxiYWNrKTsKICAgICB9LApAQCAtMzM3LDE2ICsz
NjcsMTggQEAgV2ViSW5zcGVjdG9yLldvcmtzcGFjZS5wcm90b3R5cGUgPSB7CiAgICAgICovCiAg
ICAgc2VhcmNoSW5GaWxlQ29udGVudDogZnVuY3Rpb24odWlTb3VyY2VDb2RlLCBxdWVyeSwgY2Fz
ZVNlbnNpdGl2ZSwgaXNSZWdleCwgY2FsbGJhY2spCiAgICAgewotICAgICAgICBpZiAodGhpcy5f
dGVtcG9yYXJ5Q29udGVudFByb3ZpZGVycy5nZXQodWlTb3VyY2VDb2RlKSkgewotICAgICAgICAg
ICAgdGhpcy5fdGVtcG9yYXJ5Q29udGVudFByb3ZpZGVycy5nZXQodWlTb3VyY2VDb2RlKS5zZWFy
Y2hJbkNvbnRlbnQocXVlcnksIGNhc2VTZW5zaXRpdmUsIGlzUmVnZXgsIGNhbGxiYWNrKTsKKyAg
ICAgICAgdmFyIHRlbXBvcmFyeUNvbnRlbnRQcm92aWRlciA9IHRoaXMuX3RlbXBvcmFyeUNvbnRl
bnRQcm92aWRlcnNbdWlTb3VyY2VDb2RlLnVyaSgpXTsKKyAgICAgICAgaWYgKHRlbXBvcmFyeUNv
bnRlbnRQcm92aWRlcikgeworICAgICAgICAgICAgdGVtcG9yYXJ5Q29udGVudFByb3ZpZGVyLnNl
YXJjaEluQ29udGVudChxdWVyeSwgY2FzZVNlbnNpdGl2ZSwgaXNSZWdleCwgY2FsbGJhY2spOwog
ICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9Ci0gICAgICAgIHRoaXMuX3Byb2plY3Quc2Vh
cmNoSW5GaWxlQ29udGVudCh1aVNvdXJjZUNvZGUudXJsLCBxdWVyeSwgY2FzZVNlbnNpdGl2ZSwg
aXNSZWdleCwgY2FsbGJhY2spOworICAgICAgICB0aGlzLl9wcm9qZWN0LnNlYXJjaEluRmlsZUNv
bnRlbnQodWlTb3VyY2VDb2RlLnVyaSgpLCBxdWVyeSwgY2FzZVNlbnNpdGl2ZSwgaXNSZWdleCwg
Y2FsbGJhY2spOwogICAgIH0sCiAKICAgICByZXNldDogZnVuY3Rpb24oKQogICAgIHsKLSAgICAg
ICAgdGhpcy5fdGVtcG9yYXJ5Q29udGVudFByb3ZpZGVycyA9IG5ldyBNYXAoKTsKKyAgICAgICAg
dGhpcy5fdGVtcG9yYXJ5Q29udGVudFByb3ZpZGVycyA9IHt9OworICAgICAgICB0aGlzLl90ZW1w
b3JhcnlVSVNvdXJjZUNvZGVzID0ge307CiAgICAgfSwKIAogICAgIF9fcHJvdG9fXzogV2ViSW5z
cGVjdG9yLk9iamVjdC5wcm90b3R5cGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9pbnNwZWN0b3IuanMKaW5kZXggN2Q1NzA1YTg5MzY3MzY0ZGE2OWY4ZTBiYjU5Mjkz
M2IzYWUyNjljNy4uODc0NmNiNThkYzIzZmJhMGUxMzQ4NDM5NGJiN2UyY2M5MzEzZmU0MSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuanMK
KysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuanMKQEAg
LTQzMiwxMyArNDMyLDE0IEBAIFdlYkluc3BlY3Rvci5fZG9Mb2FkZWREb25lV2l0aENhcGFiaWxp
dGllcyA9IGZ1bmN0aW9uKCkKIAogICAgIHRoaXMubmV0d29ya1dvcmtzcGFjZVByb3ZpZGVyID0g
bmV3IFdlYkluc3BlY3Rvci5OZXR3b3JrV29ya3NwYWNlUHJvdmlkZXIoKTsKICAgICB0aGlzLndv
cmtzcGFjZSA9IG5ldyBXZWJJbnNwZWN0b3IuV29ya3NwYWNlKCk7CisgICAgdGhpcy5kZWJ1Z2dl
cldvcmtzcGFjZVByb3ZpZGVyID0gbmV3IFdlYkluc3BlY3Rvci5EZWJ1Z2dlcldvcmtzcGFjZVBy
b3ZpZGVyKHRoaXMud29ya3NwYWNlKTsKICAgICB0aGlzLndvcmtzcGFjZS5hZGRQcm9qZWN0KCJu
ZXR3b3JrIiwgdGhpcy5uZXR3b3JrV29ya3NwYWNlUHJvdmlkZXIpOwogICAgIHRoaXMud29ya3Nw
YWNlQ29udHJvbGxlciA9IG5ldyBXZWJJbnNwZWN0b3IuV29ya3NwYWNlQ29udHJvbGxlcih0aGlz
LndvcmtzcGFjZSk7CiAKICAgICB0aGlzLmJyZWFrcG9pbnRNYW5hZ2VyID0gbmV3IFdlYkluc3Bl
Y3Rvci5CcmVha3BvaW50TWFuYWdlcihXZWJJbnNwZWN0b3Iuc2V0dGluZ3MuYnJlYWtwb2ludHMs
IHRoaXMuZGVidWdnZXJNb2RlbCwgdGhpcy53b3Jrc3BhY2UpOwogCiAgICAgdGhpcy5zY3JpcHRT
bmlwcGV0TW9kZWwgPSBuZXcgV2ViSW5zcGVjdG9yLlNjcmlwdFNuaXBwZXRNb2RlbCh0aGlzLndv
cmtzcGFjZSwgdGhpcy5uZXR3b3JrV29ya3NwYWNlUHJvdmlkZXIpOwotICAgIG5ldyBXZWJJbnNw
ZWN0b3IuRGVidWdnZXJTY3JpcHRNYXBwaW5nKHRoaXMud29ya3NwYWNlLCB0aGlzLm5ldHdvcmtX
b3Jrc3BhY2VQcm92aWRlcik7CisgICAgbmV3IFdlYkluc3BlY3Rvci5EZWJ1Z2dlclNjcmlwdE1h
cHBpbmcodGhpcy53b3Jrc3BhY2UsIHRoaXMuZGVidWdnZXJXb3Jrc3BhY2VQcm92aWRlciwgdGhp
cy5uZXR3b3JrV29ya3NwYWNlUHJvdmlkZXIpOwogICAgIHRoaXMubGl2ZUVkaXRTdXBwb3J0ID0g
bmV3IFdlYkluc3BlY3Rvci5MaXZlRWRpdFN1cHBvcnQodGhpcy53b3Jrc3BhY2UpOwogICAgIHRo
aXMuc3R5bGVDb250ZW50QmluZGluZyA9IG5ldyBXZWJJbnNwZWN0b3IuU3R5bGVDb250ZW50Qmlu
ZGluZyh0aGlzLmNzc01vZGVsKTsKICAgICBuZXcgV2ViSW5zcGVjdG9yLk5ldHdvcmtVSVNvdXJj
ZUNvZGVQcm92aWRlcih0aGlzLndvcmtzcGFjZSwgdGhpcy5uZXR3b3JrV29ya3NwYWNlUHJvdmlk
ZXIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCmluZGV4IGY1YTBmZjdkMWU0ODlhN2NjYjNmN2VhYjgxZDFlYTU5MTgxNzMzY2QuLjFm
OTY5ZmJkMWU0MWE4OTVhNjAyYTdlOTYwMWNlNjMyOTViZDU5YTAgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsNSArMSwy
NSBAQAogMjAxMi0xMi0yNyAgVnNldm9sb2QgVmxhc292ICA8dnNldmlrQGNocm9taXVtLm9yZz4K
IAorICAgICAgICBXZWIgSW5zcGVjdG9yOiBJbnRyb2R1Y2UgdXJpIGFzIGEgVUlTb3VyY2VDb2Rl
IHVuaXF1ZSBpZGVudGlmaWVyIGluIHdvcmtzcGFjZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNTc5OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogaHR0cC90ZXN0cy9pbnNwZWN0b3IvY29tcGlsZXIt
c2NyaXB0LW1hcHBpbmcuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci93b3Jr
c3BhY2UtdGVzdC5qczoKKyAgICAgICAgKGluaXRpYWxpemVfV29ya3NwYWNlVGVzdC5JbnNwZWN0
b3JUZXN0LmNyZWF0ZVdvcmtzcGFjZSk6CisgICAgICAgIChpbml0aWFsaXplX1dvcmtzcGFjZVRl
c3QuSW5zcGVjdG9yVGVzdC5hZGRNb2NrVUlTb3VyY2VDb2RlVG9Xb3Jrc3BhY2UpOgorICAgICAg
ICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9icmVha3BvaW50LW1hbmFnZXIuaHRtbDoKKyAgICAgICAg
KiBpbnNwZWN0b3IvZGVidWdnZXIvcmVzb3VyY2Utc2NyaXB0LW1hcHBpbmcuaHRtbDoKKyAgICAg
ICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvc2NyaXB0cy1maWxlLXNlbGVjdG9yLmh0bWw6CisgICAg
ICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL3NjcmlwdHMtcGFuZWwuaHRtbDoKKyAgICAgICAgKiBp
bnNwZWN0b3IvZGVidWdnZXIvc2NyaXB0cy1zb3J0aW5nLmh0bWw6CisgICAgICAgICogaW5zcGVj
dG9yL2RlYnVnZ2VyL3VpLXNvdXJjZS1jb2RlLWRpc3BsYXktbmFtZS5odG1sOgorICAgICAgICAq
IGluc3BlY3Rvci9kZWJ1Z2dlci91aS1zb3VyY2UtY29kZS5odG1sOgorICAgICAgICAqIGluc3Bl
Y3Rvci91aXNvdXJjZWNvZGUtcmV2aXNpb25zLmh0bWw6CisKKzIwMTItMTItMjcgIFZzZXZvbG9k
IFZsYXNvdiAgPHZzZXZpa0BjaHJvbWl1bS5vcmc+CisKICAgICAgICAgV2ViIEluc3BlY3Rvcjog
U2ltcGxpZnkgc2NyaXB0IG1hcHBpbmdzIGJ5IGludHJvZHVjaW5nIERlZmF1bHRTY3JpcHRNYXBw
aW5nLgogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAz
MDM4CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2NvbXBp
bGVyLXNjcmlwdC1tYXBwaW5nLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rv
ci9jb21waWxlci1zY3JpcHQtbWFwcGluZy5odG1sCmluZGV4IDI3NjYwNWM2NjJkZWQ1NTFlYzA3
N2Q2OGYwMzg5OTUyNGNjMTg1YjQuLmNmZDU2ZDYwMGM4OGIzZGRmOTdiNzdmNTE4NmE2YWEyZDM5
M2RhMzcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2NvbXBp
bGVyLXNjcmlwdC1tYXBwaW5nLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNw
ZWN0b3IvY29tcGlsZXItc2NyaXB0LW1hcHBpbmcuaHRtbApAQCAtMTYsNyArMTYsNyBAQCBmdW5j
dGlvbiB0ZXN0KCkKICAgICAgICAgSW5zcGVjdG9yVGVzdC5jcmVhdGVXb3Jrc3BhY2UoKTsKICAg
ICAgICAgdmFyIGNvbXBpbGVyU2NyaXB0TWFwcGluZyA9IG5ldyBXZWJJbnNwZWN0b3IuQ29tcGls
ZXJTY3JpcHRNYXBwaW5nKEluc3BlY3RvclRlc3QudGVzdFdvcmtzcGFjZSwgSW5zcGVjdG9yVGVz
dC50ZXN0TmV0d29ya1dvcmtzcGFjZVByb3ZpZGVyKTsKICAgICAgICAgcmVzb3VyY2VTY3JpcHRN
YXBwaW5nID0gbmV3IFdlYkluc3BlY3Rvci5SZXNvdXJjZVNjcmlwdE1hcHBpbmcoSW5zcGVjdG9y
VGVzdC50ZXN0V29ya3NwYWNlKTsKLSAgICAgICAgZGVmYXVsdFNjcmlwdE1hcHBpbmcgPSBuZXcg
V2ViSW5zcGVjdG9yLkRlZmF1bHRTY3JpcHRNYXBwaW5nKEluc3BlY3RvclRlc3QudGVzdFdvcmtz
cGFjZSk7CisgICAgICAgIGRlZmF1bHRTY3JpcHRNYXBwaW5nID0gbmV3IFdlYkluc3BlY3Rvci5E
ZWZhdWx0U2NyaXB0TWFwcGluZyhJbnNwZWN0b3JUZXN0LnRlc3RXb3Jrc3BhY2UsIEluc3BlY3Rv
clRlc3QudGVzdERlYnVnZ2VyV29ya3NwYWNlUHJvdmlkZXIpOwogICAgICAgICByZXR1cm4gY29t
cGlsZXJTY3JpcHRNYXBwaW5nOwogICAgIH0KIApAQCAtMjUwLDkgKzI1MCw5IEBAIGZ1bmN0aW9u
IHRlc3QoKQogICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTW9kZWwuX3Jlc2V0KCk7
CiAgICAgICAgICAgICB2YXIgbmV0d29ya1dvcmtzcGFjZVByb3ZpZGVyID0gbmV3IFdlYkluc3Bl
Y3Rvci5OZXR3b3JrV29ya3NwYWNlUHJvdmlkZXIoKTsKICAgICAgICAgICAgIHZhciB3b3Jrc3Bh
Y2UgPSBuZXcgV2ViSW5zcGVjdG9yLldvcmtzcGFjZSgpOworICAgICAgICAgICAgdmFyIGRlYnVn
Z2VyV29ya3NwYWNlUHJvdmlkZXIgPSBuZXcgV2ViSW5zcGVjdG9yLkRlYnVnZ2VyV29ya3NwYWNl
UHJvdmlkZXIod29ya3NwYWNlKTsKICAgICAgICAgICAgIHdvcmtzcGFjZS5hZGRQcm9qZWN0KCJu
ZXR3b3JrIiwgbmV0d29ya1dvcmtzcGFjZVByb3ZpZGVyKTsKLQotICAgICAgICAgICAgdmFyIGRl
YnVnZ2VyU2NyaXB0TWFwcGluZyA9IG5ldyBXZWJJbnNwZWN0b3IuRGVidWdnZXJTY3JpcHRNYXBw
aW5nKHdvcmtzcGFjZSk7CisgICAgICAgICAgICB2YXIgZGVidWdnZXJTY3JpcHRNYXBwaW5nID0g
bmV3IFdlYkluc3BlY3Rvci5EZWJ1Z2dlclNjcmlwdE1hcHBpbmcod29ya3NwYWNlLCBkZWJ1Z2dl
cldvcmtzcGFjZVByb3ZpZGVyLCBuZXR3b3JrV29ya3NwYWNlUHJvdmlkZXIpOwogCiAgICAgICAg
ICAgICB2YXIgc2NyaXB0ID0gSW5zcGVjdG9yVGVzdC5jcmVhdGVTY3JpcHRNb2NrKCJjb21waWxl
ZC5qcyIsIDAsIDAsIHRydWUsICIiKTsKICAgICAgICAgICAgIHNjcmlwdC5zb3VyY2VNYXBVUkwg
PSAiaHR0cDovL2xvY2FsaG9zdDo4MDAwL2luc3BlY3Rvci9yZXNvdXJjZXMvc291cmNlLW1hcC5q
c29uXyI7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci93b3Jr
c3BhY2UtdGVzdC5qcyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3dvcmtzcGFj
ZS10ZXN0LmpzCmluZGV4IDNkNGU4ZGZjZDBmOWQ5ZWVhMjQzZjI4ZDI0YzdhZWFiZTViNWQyODMu
Ljc0NjlmMzYwMjBiNDYzOWZlMjk5ZmE5OTU0YmY1Y2ZiYjhkNWI5OTkgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3dvcmtzcGFjZS10ZXN0LmpzCisrKyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3dvcmtzcGFjZS10ZXN0LmpzCkBAIC01LDYg
KzUsNyBAQCBJbnNwZWN0b3JUZXN0LmNyZWF0ZVdvcmtzcGFjZSA9IGZ1bmN0aW9uKCkKIHsKICAg
ICBJbnNwZWN0b3JUZXN0LnRlc3ROZXR3b3JrV29ya3NwYWNlUHJvdmlkZXIgPSBuZXcgV2ViSW5z
cGVjdG9yLk5ldHdvcmtXb3Jrc3BhY2VQcm92aWRlcigpOwogICAgIEluc3BlY3RvclRlc3QudGVz
dFdvcmtzcGFjZSA9IG5ldyBXZWJJbnNwZWN0b3IuV29ya3NwYWNlKCk7CisgICAgSW5zcGVjdG9y
VGVzdC50ZXN0RGVidWdnZXJXb3Jrc3BhY2VQcm92aWRlciA9IG5ldyBXZWJJbnNwZWN0b3IuRGVi
dWdnZXJXb3Jrc3BhY2VQcm92aWRlcihJbnNwZWN0b3JUZXN0LnRlc3RXb3Jrc3BhY2UpOwogICAg
IEluc3BlY3RvclRlc3QudGVzdFdvcmtzcGFjZS5hZGRQcm9qZWN0KCJuZXR3b3JrIiwgSW5zcGVj
dG9yVGVzdC50ZXN0TmV0d29ya1dvcmtzcGFjZVByb3ZpZGVyKTsKICAgICBJbnNwZWN0b3JUZXN0
LnRlc3RXb3Jrc3BhY2UuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2Rl
UHJvdmlkZXIuRXZlbnRzLlVJU291cmNlQ29kZUFkZGVkLCBJbnNwZWN0b3JUZXN0Ll9kZWZhdWx0
VUlTb3VyY2VDb2RlUHJvdmlkZXJFdmVudEhhbmRsZXIpOwogICAgIEluc3BlY3RvclRlc3QudGVz
dFdvcmtzcGFjZS5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGVQcm92
aWRlci5FdmVudHMuVUlTb3VyY2VDb2RlUmVtb3ZlZCwgSW5zcGVjdG9yVGVzdC5fZGVmYXVsdFVJ
U291cmNlQ29kZVByb3ZpZGVyRXZlbnRIYW5kbGVyKTsKQEAgLTU1LDcgKzU2LDcgQEAgSW5zcGVj
dG9yVGVzdC5hZGRNb2NrVUlTb3VyY2VDb2RlVG9Xb3Jrc3BhY2UgPSBmdW5jdGlvbih1cmwsIHR5
cGUsIGNvbnRlbnQpCiB7CiAgICAgdmFyIGlzRG9jdW1lbnQgPSB0eXBlID09PSBXZWJJbnNwZWN0
b3IucmVzb3VyY2VUeXBlcy5Eb2N1bWVudDsKICAgICB2YXIgbW9ja0NvbnRlbnRQcm92aWRlciA9
IG5ldyBXZWJJbnNwZWN0b3IuU3RhdGljQ29udGVudFByb3ZpZGVyKHR5cGUsIGNvbnRlbnQpOwot
ICAgIEluc3BlY3RvclRlc3QudGVzdE5ldHdvcmtXb3Jrc3BhY2VQcm92aWRlci5hZGRGaWxlKHVy
bCwgbW9ja0NvbnRlbnRQcm92aWRlciwgIWlzRG9jdW1lbnQpOworICAgIEluc3BlY3RvclRlc3Qu
dGVzdE5ldHdvcmtXb3Jrc3BhY2VQcm92aWRlci5hZGROZXR3b3JrRmlsZSh1cmwsIG1vY2tDb250
ZW50UHJvdmlkZXIsICFpc0RvY3VtZW50KTsKIH0KIAogSW5zcGVjdG9yVGVzdC5fZGVmYXVsdFVJ
U291cmNlQ29kZVByb3ZpZGVyRXZlbnRIYW5kbGVyID0gZnVuY3Rpb24oZXZlbnQpCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJlYWtwb2ludC1tYW5hZ2VyLmh0
bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJlYWtwb2ludC1tYW5hZ2VyLmh0
bWwKaW5kZXggN2FkOWRjODcyMGUwMmM3ZTYyYWRhY2NlOTcyN2VmNmMzOTBiNWQyYS4uMjM2NGFl
NWNlZjM3MjIwMGY2OWU5M2Y1MDIxYjNmYmZiMzY1OTNkYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrcG9pbnQtbWFuYWdlci5odG1sCisrKyBiL0xheW91
dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9icmVha3BvaW50LW1hbmFnZXIuaHRtbApAQCAtMTE4
LDcgKzExOCw3IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgIFdvcmtzcGFjZU1vY2sucHJvdG90eXBl
ID0gewogICAgICAgICBfYWRkVUlTb3VyY2VDb2RlOiBmdW5jdGlvbih1cmwpCiAgICAgICAgIHsK
LSAgICAgICAgICAgIHZhciB1aVNvdXJjZUNvZGUgPSBuZXcgV2ViSW5zcGVjdG9yLlVJU291cmNl
Q29kZSh0aGlzLCB1cmwsIFdlYkluc3BlY3Rvci5yZXNvdXJjZVR5cGVzLlNjcmlwdCwgZmFsc2Up
OworICAgICAgICAgICAgdmFyIHVpU291cmNlQ29kZSA9IG5ldyBXZWJJbnNwZWN0b3IuVUlTb3Vy
Y2VDb2RlKHRoaXMsIHVybCwgdXJsLCBXZWJJbnNwZWN0b3IucmVzb3VyY2VUeXBlcy5TY3JpcHQs
IGZhbHNlKTsKICAgICAgICAgICAgIHVpU291cmNlQ29kZS5zZXRTb3VyY2VNYXBwaW5nKGRlZmF1
bHRNYXBwaW5nKTsKICAgICAgICAgICAgIHVpU291cmNlQ29kZXNbdXJsXSA9IHVpU291cmNlQ29k
ZTsKICAgICAgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rv
ci5VSVNvdXJjZUNvZGVQcm92aWRlci5FdmVudHMuVUlTb3VyY2VDb2RlQWRkZWQsIHVpU291cmNl
Q29kZSk7CkBAIC0xMjcsNyArMTI3LDcgQEAgZnVuY3Rpb24gdGVzdCgpCiAKICAgICAgICAgX2Fk
ZFRlbXBvcmFyeVVJU291cmNlQ29kZTogZnVuY3Rpb24odXJsKQogICAgICAgICB7Ci0gICAgICAg
ICAgICB2YXIgdWlTb3VyY2VDb2RlID0gbmV3IFdlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGUodGhp
cywgdXJsLCBXZWJJbnNwZWN0b3IucmVzb3VyY2VUeXBlcy5TY3JpcHQsIGZhbHNlKTsKKyAgICAg
ICAgICAgIHZhciB1aVNvdXJjZUNvZGUgPSBuZXcgV2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZSh0
aGlzLCAidGVtcG9yYXJ5OiIgKyB1cmwsIHVybCwgV2ViSW5zcGVjdG9yLnJlc291cmNlVHlwZXMu
U2NyaXB0LCBmYWxzZSk7CiAgICAgICAgICAgICB1aVNvdXJjZUNvZGUuaXNUZW1wb3JhcnkgPSB0
cnVlOwogICAgICAgICAgICAgdWlTb3VyY2VDb2RlLnNldFNvdXJjZU1hcHBpbmcoZGVmYXVsdE1h
cHBpbmcpOwogICAgICAgICAgICAgdWlTb3VyY2VDb2Rlc1t1cmxdID0gdWlTb3VyY2VDb2RlOwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3Jlc291cmNlLXNjcmlw
dC1tYXBwaW5nLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvcmVzb3VyY2Ut
c2NyaXB0LW1hcHBpbmcuaHRtbAppbmRleCAyNjJlMjUwZWNiODQ5OTlhODQ1NTA0OWIwMTZhMDg5
YTgxYjU5NTgyLi4yNzA1OGIwYzllNzNjZDRmMDZiM2QzYTc1ZmQ0MmU5Y2ZjNTQzYmM1IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvcmVzb3VyY2Utc2NyaXB0LW1h
cHBpbmcuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvcmVzb3VyY2Ut
c2NyaXB0LW1hcHBpbmcuaHRtbApAQCAtMTEsNyArMTEsNyBAQCBmdW5jdGlvbiB0ZXN0KCkKICAg
ICBmdW5jdGlvbiBjcmVhdGVSZXNvdXJjZVNjcmlwdE1hcHBpbmcoKQogICAgIHsKICAgICAgICAg
SW5zcGVjdG9yVGVzdC5jcmVhdGVXb3Jrc3BhY2UoKTsKLSAgICAgICAgZGVmYXVsdFNjcmlwdE1h
cHBpbmcgPSBuZXcgV2ViSW5zcGVjdG9yLkRlZmF1bHRTY3JpcHRNYXBwaW5nKEluc3BlY3RvclRl
c3QudGVzdFdvcmtzcGFjZSk7CisgICAgICAgIGRlZmF1bHRTY3JpcHRNYXBwaW5nID0gbmV3IFdl
Ykluc3BlY3Rvci5EZWZhdWx0U2NyaXB0TWFwcGluZyhJbnNwZWN0b3JUZXN0LnRlc3RXb3Jrc3Bh
Y2UsIEluc3BlY3RvclRlc3QudGVzdERlYnVnZ2VyV29ya3NwYWNlUHJvdmlkZXIpOwogICAgICAg
ICB2YXIgcmVzb3VyY2VTY3JpcHRNYXBwaW5nID0gbmV3IFdlYkluc3BlY3Rvci5SZXNvdXJjZVNj
cmlwdE1hcHBpbmcoSW5zcGVjdG9yVGVzdC50ZXN0V29ya3NwYWNlKTsKICAgICAgICAgcmV0dXJu
IHJlc291cmNlU2NyaXB0TWFwcGluZzsKICAgICB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvZGVidWdnZXIvc2NyaXB0cy1maWxlLXNlbGVjdG9yLmh0bWwgYi9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvZGVidWdnZXIvc2NyaXB0cy1maWxlLXNlbGVjdG9yLmh0bWwKaW5kZXggNmRj
MjI4NGY4ZGNlZTgzZWRhNTFhN2E2MTA2NDllNDYzODZlYTBlYy4uNGU4MjEyYzRmNTc3ZGFkNjE0
ZDdhOTY5MWVmYTVhMDViZDI4ZDRkYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2RlYnVnZ2VyL3NjcmlwdHMtZmlsZS1zZWxlY3Rvci5odG1sCisrKyBiL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9kZWJ1Z2dlci9zY3JpcHRzLWZpbGUtc2VsZWN0b3IuaHRtbApAQCAtMTQsNyArMTQs
NyBAQCBmdW5jdGlvbiB0ZXN0KCkKIAogICAgIGZ1bmN0aW9uIGFkZFVJU291cmNlQ29kZSh1cmws
IGlzQ29udGVudFNjcmlwdCkKICAgICB7Ci0gICAgICAgIHZhciB1aVNvdXJjZUNvZGUgPSBuZXcg
V2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZShXZWJJbnNwZWN0b3Iud29ya3NwYWNlLCB1cmwsIFdl
Ykluc3BlY3Rvci5yZXNvdXJjZVR5cGVzLlNjcmlwdCwgbnVsbCk7CisgICAgICAgIHZhciB1aVNv
dXJjZUNvZGUgPSBuZXcgV2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZShXZWJJbnNwZWN0b3Iud29y
a3NwYWNlLCB1cmwsIHVybCwgV2ViSW5zcGVjdG9yLnJlc291cmNlVHlwZXMuU2NyaXB0LCBudWxs
KTsKICAgICAgICAgdWlTb3VyY2VDb2RlLmlzQ29udGVudFNjcmlwdCA9IGlzQ29udGVudFNjcmlw
dDsKICAgICAgICAgbmF2aWdhdG9yRmlsZVNlbGVjdG9yLmFkZFVJU291cmNlQ29kZSh1aVNvdXJj
ZUNvZGUpOwogICAgIH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dl
ci9zY3JpcHRzLXBhbmVsLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc2Ny
aXB0cy1wYW5lbC5odG1sCmluZGV4IGQwOTFkZDIzYzkyZGQyZGFmMTIzYzc0OTZkNDBhYTMxNThj
YjNlNGQuLmRmYTZiNzJjZGJjZDA4YzU4ZTEyMjEzNzI3OTk5ZWUyZWQwYWFmZDUgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zY3JpcHRzLXBhbmVsLmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3NjcmlwdHMtcGFuZWwuaHRtbApAQCAt
MjEsNiArMjEsNyBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICB7CiAgICAgICAgIHZhciBuZXR3b3Jr
V29ya3NwYWNlUHJvdmlkZXIgPSBuZXcgV2ViSW5zcGVjdG9yLk5ldHdvcmtXb3Jrc3BhY2VQcm92
aWRlcigpOwogICAgICAgICB2YXIgd29ya3NwYWNlID0gbmV3IFdlYkluc3BlY3Rvci5Xb3Jrc3Bh
Y2UoKTsKKyAgICAgICAgd29ya3NwYWNlLmRlYnVnZ2VyV29ya3NwYWNlUHJvdmlkZXIgPSBuZXcg
V2ViSW5zcGVjdG9yLkRlYnVnZ2VyV29ya3NwYWNlUHJvdmlkZXIod29ya3NwYWNlKTsKICAgICAg
ICAgd29ya3NwYWNlLmFkZFByb2plY3QoIm5ldHdvcmsiLCBuZXR3b3JrV29ya3NwYWNlUHJvdmlk
ZXIpOwogICAgICAgICB3b3Jrc3BhY2UucmVxdWVzdEZpbGVDb250ZW50ID0gZnVuY3Rpb24odWlT
b3VyY2VDb2RlLCBjYWxsYmFjaykKICAgICAgICAgewpAQCAtMzYsMTQgKzM3LDE0IEBAIGZ1bmN0
aW9uIHRlc3QoKQogICAgICAgICB7CiAgICAgICAgICAgICB2YXIgd29ya3NwYWNlID0gY3JlYXRl
TW9ja1dvcmtzcGFjZSgpOwogCi0gICAgICAgICAgICB3b3Jrc3BhY2UubmV0d29ya1dvcmtzcGFj
ZVByb3ZpZGVyLmFkZEZpbGUoImZvb2Jhci5qcyIsIGNvbnRlbnRQcm92aWRlciwgZmFsc2UpOwor
ICAgICAgICAgICAgd29ya3NwYWNlLm5ldHdvcmtXb3Jrc3BhY2VQcm92aWRlci5hZGROZXR3b3Jr
RmlsZSgiZm9vYmFyLmpzIiwgY29udGVudFByb3ZpZGVyLCBmYWxzZSk7CiAKICAgICAgICAgICAg
IHZhciBwYW5lbCA9IG5ldyBXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsKHdvcmtzcGFjZSk7CiAg
ICAgICAgICAgICBwYW5lbC5zaG93KCk7CiAKLSAgICAgICAgICAgIHdvcmtzcGFjZS5uZXR3b3Jr
V29ya3NwYWNlUHJvdmlkZXIuYWRkRmlsZSgiZm9vLmpzIiwgY29udGVudFByb3ZpZGVyLCBmYWxz
ZSk7Ci0gICAgICAgICAgICB3b3Jrc3BhY2UubmV0d29ya1dvcmtzcGFjZVByb3ZpZGVyLmFkZEZp
bGUoImJhci5qcyIsIGNvbnRlbnRQcm92aWRlciwgZmFsc2UpOwotICAgICAgICAgICAgd29ya3Nw
YWNlLm5ldHdvcmtXb3Jrc3BhY2VQcm92aWRlci5hZGRGaWxlKCJiYXouanMiLCBjb250ZW50UHJv
dmlkZXIsIGZhbHNlKTsKKyAgICAgICAgICAgIHdvcmtzcGFjZS5uZXR3b3JrV29ya3NwYWNlUHJv
dmlkZXIuYWRkTmV0d29ya0ZpbGUoImZvby5qcyIsIGNvbnRlbnRQcm92aWRlciwgZmFsc2UpOwor
ICAgICAgICAgICAgd29ya3NwYWNlLm5ldHdvcmtXb3Jrc3BhY2VQcm92aWRlci5hZGROZXR3b3Jr
RmlsZSgiYmFyLmpzIiwgY29udGVudFByb3ZpZGVyLCBmYWxzZSk7CisgICAgICAgICAgICB3b3Jr
c3BhY2UubmV0d29ya1dvcmtzcGFjZVByb3ZpZGVyLmFkZE5ldHdvcmtGaWxlKCJiYXouanMiLCBj
b250ZW50UHJvdmlkZXIsIGZhbHNlKTsKIAogICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5kdW1w
U2NyaXB0c05hdmlnYXRvcihwYW5lbC5fbmF2aWdhdG9yKTsKIApAQCAtNjEsMTQgKzYyLDE0IEBA
IGZ1bmN0aW9uIHRlc3QoKQogICAgICAgICAgICAgdmFyIHBhbmVsID0gbmV3IFdlYkluc3BlY3Rv
ci5TY3JpcHRzUGFuZWwod29ya3NwYWNlKTsKICAgICAgICAgICAgIHBhbmVsLnNob3coKTsKIAot
ICAgICAgICAgICAgd29ya3NwYWNlLm5ldHdvcmtXb3Jrc3BhY2VQcm92aWRlci5hZGRGaWxlKCJm
b28uanMiLCBjb250ZW50UHJvdmlkZXIsIGZhbHNlKTsKLSAgICAgICAgICAgIHdvcmtzcGFjZS5u
ZXR3b3JrV29ya3NwYWNlUHJvdmlkZXIuYWRkRmlsZSgiYmFyLmpzIiwgY29udGVudFByb3ZpZGVy
LCBmYWxzZSk7Ci0gICAgICAgICAgICB3b3Jrc3BhY2UubmV0d29ya1dvcmtzcGFjZVByb3ZpZGVy
LmFkZEZpbGUoImJhei5qcyIsIGNvbnRlbnRQcm92aWRlciwgZmFsc2UpOworICAgICAgICAgICAg
d29ya3NwYWNlLm5ldHdvcmtXb3Jrc3BhY2VQcm92aWRlci5hZGROZXR3b3JrRmlsZSgiZm9vLmpz
IiwgY29udGVudFByb3ZpZGVyLCBmYWxzZSk7CisgICAgICAgICAgICB3b3Jrc3BhY2UubmV0d29y
a1dvcmtzcGFjZVByb3ZpZGVyLmFkZE5ldHdvcmtGaWxlKCJiYXIuanMiLCBjb250ZW50UHJvdmlk
ZXIsIGZhbHNlKTsKKyAgICAgICAgICAgIHdvcmtzcGFjZS5uZXR3b3JrV29ya3NwYWNlUHJvdmlk
ZXIuYWRkTmV0d29ya0ZpbGUoImJhei5qcyIsIGNvbnRlbnRQcm92aWRlciwgZmFsc2UpOwogCiAg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmR1bXBTY3JpcHRzTmF2aWdhdG9yKHBhbmVsLl9uYXZp
Z2F0b3IpOwogCiAgICAgICAgICAgICB3b3Jrc3BhY2VDb250cm9sbGVyLl9tYWluRnJhbWVOYXZp
Z2F0ZWQoKTsKLSAgICAgICAgICAgIHdvcmtzcGFjZS5uZXR3b3JrV29ya3NwYWNlUHJvdmlkZXIu
YWRkRmlsZSgiYmFyLmpzIiwgY29udGVudFByb3ZpZGVyLCBmYWxzZSk7CisgICAgICAgICAgICB3
b3Jrc3BhY2UubmV0d29ya1dvcmtzcGFjZVByb3ZpZGVyLmFkZE5ldHdvcmtGaWxlKCJiYXIuanMi
LCBjb250ZW50UHJvdmlkZXIsIGZhbHNlKTsKICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZHVt
cFNjcmlwdHNOYXZpZ2F0b3IocGFuZWwuX25hdmlnYXRvcik7CiAKICAgICAgICAgICAgIHBhbmVs
LmRldGFjaCgpOwpAQCAtODEsMTMgKzgyLDEzIEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgICAgICAg
ICAgdmFyIHBhbmVsID0gbmV3IFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwod29ya3NwYWNlKTsK
ICAgICAgICAgICAgIHBhbmVsLnNob3coKTsKIAotICAgICAgICAgICAgd29ya3NwYWNlLm5ldHdv
cmtXb3Jrc3BhY2VQcm92aWRlci5hZGRGaWxlKCJmb28uanMiLCBjb250ZW50UHJvdmlkZXIsIGZh
bHNlKTsKLSAgICAgICAgICAgIHZhciB0ZW1wb3JhcnlVSVNvdXJjZUNvZGUgPSB3b3Jrc3BhY2Uu
YWRkVGVtcG9yYXJ5VUlTb3VyY2VDb2RlKCJjb21waWxlZC5qcyIsIGNvbnRlbnRQcm92aWRlcik7
CisgICAgICAgICAgICB3b3Jrc3BhY2UubmV0d29ya1dvcmtzcGFjZVByb3ZpZGVyLmFkZE5ldHdv
cmtGaWxlKCJmb28uanMiLCBjb250ZW50UHJvdmlkZXIsIGZhbHNlKTsKKyAgICAgICAgICAgIHZh
ciB0ZW1wb3JhcnlVSVNvdXJjZUNvZGUgPSB3b3Jrc3BhY2UuZGVidWdnZXJXb3Jrc3BhY2VQcm92
aWRlci5hZGREZWJ1Z2dlckZpbGUoImNvbXBpbGVkLmpzIiwgY29udGVudFByb3ZpZGVyKTsKIAog
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5kdW1wU2NyaXB0c05hdmlnYXRvcihwYW5lbC5fbmF2
aWdhdG9yKTsKIAogICAgICAgICAgICAgLy8gUGx1ZyBjb21waWxlciBzb3VyY2UgbWFwcGluZy4K
LSAgICAgICAgICAgIHdvcmtzcGFjZS5uZXR3b3JrV29ya3NwYWNlUHJvdmlkZXIuYWRkRmlsZSgi
c291cmNlLmpzIiwgY29udGVudFByb3ZpZGVyLCBmYWxzZSk7CisgICAgICAgICAgICB3b3Jrc3Bh
Y2UubmV0d29ya1dvcmtzcGFjZVByb3ZpZGVyLmFkZE5ldHdvcmtGaWxlKCJzb3VyY2UuanMiLCBj
b250ZW50UHJvdmlkZXIsIGZhbHNlKTsKIAogICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5kdW1w
U2NyaXB0c05hdmlnYXRvcihwYW5lbC5fbmF2aWdhdG9yKTsKICAgICAgICAgICAgIG5leHQoKTsK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zY3JpcHRzLXNvcnRp
bmcuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zY3JpcHRzLXNvcnRpbmcu
aHRtbAppbmRleCAyYTFjNGMxNTE1YTVmY2JiZThmNTc0ZTZiMzU5MTJjYWFmMjYwMzIyLi5mODQx
ZjNlZDFiNzJjOTQ5NzQ4NWYxMzdmZGFjNGNlZjY3ZGRkOTU0IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc2NyaXB0cy1zb3J0aW5nLmh0bWwKKysrIGIvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3NjcmlwdHMtc29ydGluZy5odG1sCkBAIC0xNCw3ICsx
NCw3IEBAIGZ1bmN0aW9uIHRlc3QoKQogCiAgICAgZnVuY3Rpb24gYWRkVUlTb3VyY2VDb2RlKHVy
bCwgaXNDb250ZW50U2NyaXB0KQogICAgIHsKLSAgICAgICAgdmFyIHVpU291cmNlQ29kZSA9IG5l
dyBXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2RlKFdlYkluc3BlY3Rvci53b3Jrc3BhY2UsIHVybCwg
V2ViSW5zcGVjdG9yLnJlc291cmNlVHlwZXMuU2NyaXB0LCBudWxsKTsKKyAgICAgICAgdmFyIHVp
U291cmNlQ29kZSA9IG5ldyBXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2RlKFdlYkluc3BlY3Rvci53
b3Jrc3BhY2UsIHVybCwgdXJsLCBXZWJJbnNwZWN0b3IucmVzb3VyY2VUeXBlcy5TY3JpcHQsIG51
bGwpOwogICAgICAgICB1aVNvdXJjZUNvZGUuaXNDb250ZW50U2NyaXB0ID0gaXNDb250ZW50U2Ny
aXB0OwogICAgICAgICBuYXZpZ2F0b3JGaWxlU2VsZWN0b3IuYWRkVUlTb3VyY2VDb2RlKHVpU291
cmNlQ29kZSk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVn
Z2VyL3VpLXNvdXJjZS1jb2RlLWRpc3BsYXktbmFtZS5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2RlYnVnZ2VyL3VpLXNvdXJjZS1jb2RlLWRpc3BsYXktbmFtZS5odG1sCmluZGV4IGYxNjI1
ZGFiZWM3OGM2OTA3MDdjYzNiZmRlZGQ2NWNiZDliM2Y5MWYuLmI1M2Y3N2E0MzZiZGM3NGRlODE5
MWVjNjZmZDRkMjg1ZmJlMDEzOWEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9k
ZWJ1Z2dlci91aS1zb3VyY2UtY29kZS1kaXNwbGF5LW5hbWUuaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvZGVidWdnZXIvdWktc291cmNlLWNvZGUtZGlzcGxheS1uYW1lLmh0bWwKQEAg
LTcsNyArNyw3IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgIFdlYkluc3BlY3Rvci5zaG93UGFuZWwo
InNjcmlwdHMiKTsKICAgICBmdW5jdGlvbiBkdW1wVUlTb3VyY2VDb2RlRGlzcGxheU5hbWUodXJs
KQogICAgIHsKLSAgICAgICAgdmFyIHVpU291cmNlQ29kZSA9IG5ldyBXZWJJbnNwZWN0b3IuVUlT
b3VyY2VDb2RlKFdlYkluc3BlY3Rvci53b3Jrc3BhY2UsIHVybCwgbnVsbCk7CisgICAgICAgIHZh
ciB1aVNvdXJjZUNvZGUgPSBuZXcgV2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZShXZWJJbnNwZWN0
b3Iud29ya3NwYWNlLCB1cmwsIHVybCwgbnVsbCk7CiAgICAgICAgIEluc3BlY3RvclRlc3QuYWRk
UmVzdWx0KCJVSVNvdXJjZUNvZGUgZGlzcGxheSBuYW1lIGZvciB1cmwgXCIiICsgdXJsICsgIlwi
IGlzIFwiIiArIFdlYkluc3BlY3Rvci5UYWJiZWRFZGl0b3JDb250YWluZXIucHJvdG90eXBlLl90
aXRsZUZvckZpbGUodWlTb3VyY2VDb2RlKSArICJcIi4iKTsKICAgICB9CiAKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci91aS1zb3VyY2UtY29kZS5odG1sIGIvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3VpLXNvdXJjZS1jb2RlLmh0bWwKaW5kZXggMmE1
NDViMzFkZDFhN2Y0ODRmOTgwZGNiZGU2MmQ2MTk5NGJhNWQxYi4uZWFjNzc5YzBkMTRlNGM5YzE4
ZTdiNTc5ZmQyYTIyOGEzN2JmZDdmZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2RlYnVnZ2VyL3VpLXNvdXJjZS1jb2RlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2RlYnVnZ2VyL3VpLXNvdXJjZS1jb2RlLmh0bWwKQEAgLTksNyArOSw3IEBAIGZ1bmN0aW9uIHRl
c3QoKQogICAgIEluc3BlY3RvclRlc3QucnVuVGVzdFN1aXRlKFsKICAgICAgICAgZnVuY3Rpb24g
dGVzdFVJU291cmNlQ29kZShuZXh0KQogICAgICAgICB7Ci0gICAgICAgICAgICB2YXIgdWlTb3Vy
Y2VDb2RlID0gbmV3IFdlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGUoV2ViSW5zcGVjdG9yLndvcmtz
cGFjZSwgInVybCIsIFdlYkluc3BlY3Rvci5yZXNvdXJjZVR5cGVzLlNjcmlwdCwgdHJ1ZSk7Cisg
ICAgICAgICAgICB2YXIgdWlTb3VyY2VDb2RlID0gbmV3IFdlYkluc3BlY3Rvci5VSVNvdXJjZUNv
ZGUoV2ViSW5zcGVjdG9yLndvcmtzcGFjZSwgInVyaSIsICJ1cmwiLCBXZWJJbnNwZWN0b3IucmVz
b3VyY2VUeXBlcy5TY3JpcHQsIHRydWUpOwogICAgICAgICAgICAgV2ViSW5zcGVjdG9yLndvcmtz
cGFjZS5yZXF1ZXN0RmlsZUNvbnRlbnQgPSBmdW5jdGlvbihwYXRoLCBjYWxsYmFjaykKICAgICAg
ICAgICAgIHsKICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiQ29udGVu
dCBpcyByZXF1ZXN0ZWQgZnJvbSBTb3VyY2VDb2RlUHJvdmlkZXIuIik7CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvdWlzb3VyY2Vjb2RlLXJldmlzaW9ucy5odG1sIGIvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL3Vpc291cmNlY29kZS1yZXZpc2lvbnMuaHRtbAppbmRleCA4OTA5NzBi
Y2U1OGYzZWVjODdjY2Y2ODcwMjNhNjYxMjAzYTRkYWFkLi43MDI1YWQ5YjFkMDg5OTAyMjc0OTcw
ZmYxZmY3MGVkNGMyYjE4MDQ4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdWlz
b3VyY2Vjb2RlLXJldmlzaW9ucy5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci91aXNv
dXJjZWNvZGUtcmV2aXNpb25zLmh0bWwKQEAgLTM1LDcgKzM1LDcgQEAgZnVuY3Rpb24gdGVzdCgp
CiAgICAgSW5zcGVjdG9yVGVzdC5ydW5UZXN0U3VpdGUoWwogICAgICAgICBmdW5jdGlvbiB0ZXN0
QWRkUmV2aXNpb25zUmV2ZXJ0VG9PcmlnaW5hbChuZXh0KQogICAgICAgICB7Ci0gICAgICAgICAg
ICB2YXIgdWlTb3VyY2VDb2RlID0gbmV3IFdlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGUoY3JlYXRl
TW9ja1dvcmtzcGFjZSgpLCAidXJsIiwgV2ViSW5zcGVjdG9yLnJlc291cmNlVHlwZXMuU2NyaXB0
KTsKKyAgICAgICAgICAgIHZhciB1aVNvdXJjZUNvZGUgPSBuZXcgV2ViSW5zcGVjdG9yLlVJU291
cmNlQ29kZShjcmVhdGVNb2NrV29ya3NwYWNlKCksICJ1cmkiLCAidXJsIiwgV2ViSW5zcGVjdG9y
LnJlc291cmNlVHlwZXMuU2NyaXB0KTsKICAgICAgICAgICAgIHVpU291cmNlQ29kZS5zZXRXb3Jr
aW5nQ29weSgiY29udGVudDEiKTsKICAgICAgICAgICAgIHVpU291cmNlQ29kZS5zZXRXb3JraW5n
Q29weSgiY29udGVudDIiKTsKICAgICAgICAgICAgIHVpU291cmNlQ29kZS5jb21taXRXb3JraW5n
Q29weShmdW5jdGlvbigpIHsgfSk7CkBAIC01Niw3ICs1Niw3IEBAIGZ1bmN0aW9uIHRlc3QoKQog
CiAgICAgICAgIGZ1bmN0aW9uIHRlc3RBZGRSZXZpc2lvbnNSZXZlcnRBbmRDbGVhckhpc3Rvcnko
bmV4dCkKICAgICAgICAgewotICAgICAgICAgICAgdmFyIHVpU291cmNlQ29kZSA9IG5ldyBXZWJJ
bnNwZWN0b3IuVUlTb3VyY2VDb2RlKGNyZWF0ZU1vY2tXb3Jrc3BhY2UoKSwgInVybDIiLCBXZWJJ
bnNwZWN0b3IucmVzb3VyY2VUeXBlcy5TY3JpcHQpOworICAgICAgICAgICAgdmFyIHVpU291cmNl
Q29kZSA9IG5ldyBXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2RlKGNyZWF0ZU1vY2tXb3Jrc3BhY2Uo
KSwgInVyaTIiLCAidXJsMiIsIFdlYkluc3BlY3Rvci5yZXNvdXJjZVR5cGVzLlNjcmlwdCk7CiAK
ICAgICAgICAgICAgIHVpU291cmNlQ29kZS5zZXRXb3JraW5nQ29weSgiY29udGVudDEiKTsKICAg
ICAgICAgICAgIHVpU291cmNlQ29kZS5zZXRXb3JraW5nQ29weSgiY29udGVudDIiKTsKQEAgLTgy
LDcgKzgyLDcgQEAgZnVuY3Rpb24gdGVzdCgpCiAKICAgICAgICAgZnVuY3Rpb24gdGVzdEFkZFJl
dmlzaW9uc1JldmVydFRvUHJldmlvdXMobmV4dCkKICAgICAgICAgewotICAgICAgICAgICAgdmFy
IHVpU291cmNlQ29kZSA9IG5ldyBXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2RlKGNyZWF0ZU1vY2tX
b3Jrc3BhY2UoKSwgInVybDMiLCBXZWJJbnNwZWN0b3IucmVzb3VyY2VUeXBlcy5TY3JpcHQpOwor
ICAgICAgICAgICAgdmFyIHVpU291cmNlQ29kZSA9IG5ldyBXZWJJbnNwZWN0b3IuVUlTb3VyY2VD
b2RlKGNyZWF0ZU1vY2tXb3Jrc3BhY2UoKSwgInVyaTMiLCAidXJsMyIsIFdlYkluc3BlY3Rvci5y
ZXNvdXJjZVR5cGVzLlNjcmlwdCk7CiAKICAgICAgICAgICAgIHVpU291cmNlQ29kZS5zZXRXb3Jr
aW5nQ29weSgiY29udGVudDEiKTsKICAgICAgICAgICAgIHVpU291cmNlQ29kZS5zZXRXb3JraW5n
Q29weSgiY29udGVudDIiKTsKQEAgLTEwNCw3ICsxMDQsNyBAQCBmdW5jdGlvbiB0ZXN0KCkKIAog
ICAgICAgICBmdW5jdGlvbiB0ZXN0UmVxdWVzdENvbnRlbnRBZGRSZXZpc2lvbnNSZXZlcnRUb09y
aWdpbmFsKG5leHQpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHZhciB1aVNvdXJjZUNvZGUgPSBu
ZXcgV2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZShjcmVhdGVNb2NrV29ya3NwYWNlKCksICJ1cmw0
IiwgV2ViSW5zcGVjdG9yLnJlc291cmNlVHlwZXMuU2NyaXB0KTsKKyAgICAgICAgICAgIHZhciB1
aVNvdXJjZUNvZGUgPSBuZXcgV2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZShjcmVhdGVNb2NrV29y
a3NwYWNlKCksICJ1cmk0IiwgInVybDQiLCBXZWJJbnNwZWN0b3IucmVzb3VyY2VUeXBlcy5TY3Jp
cHQpOwogICAgICAgICAgICAgdWlTb3VyY2VDb2RlLnJlcXVlc3RDb250ZW50KGNvbnRlbnRSZWNl
aXZlZCk7CiAKICAgICAgICAgICAgIGZ1bmN0aW9uIGNvbnRlbnRSZWNlaXZlZCgpCkBAIC0xMzIs
NyArMTMyLDcgQEAgZnVuY3Rpb24gdGVzdCgpCiAKICAgICAgICAgZnVuY3Rpb24gdGVzdFJlcXVl
c3RDb250ZW50QWRkUmV2aXNpb25zUmV2ZXJ0QW5kQ2xlYXJIaXN0b3J5KG5leHQpCiAgICAgICAg
IHsKLSAgICAgICAgICAgIHZhciB1aVNvdXJjZUNvZGUgPSBuZXcgV2ViSW5zcGVjdG9yLlVJU291
cmNlQ29kZShjcmVhdGVNb2NrV29ya3NwYWNlKCksICJ1cmw1IiwgV2ViSW5zcGVjdG9yLnJlc291
cmNlVHlwZXMuU2NyaXB0KTsKKyAgICAgICAgICAgIHZhciB1aVNvdXJjZUNvZGUgPSBuZXcgV2Vi
SW5zcGVjdG9yLlVJU291cmNlQ29kZShjcmVhdGVNb2NrV29ya3NwYWNlKCksICJ1cmk1IiwgInVy
bDUiLCBXZWJJbnNwZWN0b3IucmVzb3VyY2VUeXBlcy5TY3JpcHQpOwogICAgICAgICAgICAgdWlT
b3VyY2VDb2RlLnJlcXVlc3RDb250ZW50KGNvbnRlbnRSZWNlaXZlZCk7CiAKICAgICAgICAgICAg
IGZ1bmN0aW9uIGNvbnRlbnRSZWNlaXZlZCgpCkBAIC0xNjQsNyArMTY0LDcgQEAgZnVuY3Rpb24g
dGVzdCgpCiAKICAgICAgICAgZnVuY3Rpb24gdGVzdFJlcXVlc3RDb250ZW50QWRkUmV2aXNpb25z
UmV2ZXJ0VG9QcmV2aW91cyhuZXh0KQogICAgICAgICB7Ci0gICAgICAgICAgICB2YXIgdWlTb3Vy
Y2VDb2RlID0gbmV3IFdlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGUoY3JlYXRlTW9ja1dvcmtzcGFj
ZSgpLCAidXJsNiIsIFdlYkluc3BlY3Rvci5yZXNvdXJjZVR5cGVzLlNjcmlwdCk7CisgICAgICAg
ICAgICB2YXIgdWlTb3VyY2VDb2RlID0gbmV3IFdlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGUoY3Jl
YXRlTW9ja1dvcmtzcGFjZSgpLCAidXJpNiIsICJ1cmw2IiwgV2ViSW5zcGVjdG9yLnJlc291cmNl
VHlwZXMuU2NyaXB0KTsKICAgICAgICAgICAgIHVpU291cmNlQ29kZS5yZXF1ZXN0Q29udGVudChj
b250ZW50UmVjZWl2ZWQpOwogCiAgICAgICAgICAgICBmdW5jdGlvbiBjb250ZW50UmVjZWl2ZWQo
KQo=
</data>
<flag name="review"
          id="198195"
          type_id="1"
          status="+"
          setter="pfeldman"
    />
          </attachment>
      

    </bug>

</bugzilla>