<?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>167037</bug_id>
          
          <creation_ts>2017-01-13 17:08:33 -0800</creation_ts>
          <short_desc>Instrument calls to render()</short_desc>
          <delta_ts>2017-01-13 18:55:03 -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>Perf Dashboard</component>
          <version>Other</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryosuke Niwa">rniwa</reporter>
          <assigned_to name="Ryosuke Niwa">rniwa</assigned_to>
          <cc>cdumez</cc>
    
    <cc>joepeck</cc>
    
    <cc>kling</cc>
    
    <cc>koivisto</cc>
    
    <cc>rniwa</cc>
    
    <cc>slewis</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1266684</commentid>
    <comment_count>0</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2017-01-13 17:08:33 -0800</bug_when>
    <thetext>Apparently we&apos;re making 5100 calls to render() when opening the perf dashboard.
Add an instrumentation for this so that we can improve this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1266696</commentid>
    <comment_count>1</comment_count>
      <attachid>298814</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2017-01-13 17:21:54 -0800</bug_when>
    <thetext>Created attachment 298814
Refactoring</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1266727</commentid>
    <comment_count>2</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2017-01-13 18:51:17 -0800</bug_when>
    <thetext>Thanks for the review!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1266728</commentid>
    <comment_count>3</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2017-01-13 18:55:03 -0800</bug_when>
    <thetext>Committed r210755: &lt;http://trac.webkit.org/changeset/210755&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>298814</attachid>
            <date>2017-01-13 17:21:54 -0800</date>
            <delta_ts>2017-01-13 17:41:33 -0800</delta_ts>
            <desc>Refactoring</desc>
            <filename>bug-167037-20170113172017.patch</filename>
            <type>text/plain</type>
            <size>39180</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL0NoYW5nZUxvZwkocmV2aXNpb24gMjEwNzUzKQorKysg
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDEwMiBAQAorMjAxNy0wMS0xMyAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4K
KworICAgICAgICBJbnN0cnVtZW50IGNhbGxzIHRvIHJlbmRlcigpCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjcwMzcKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXcmFwIGV2ZXJ5IGNhbGwgdG8gcmVuZGVy
KCkgYnkgbmV3bHkgYWRkZWQgQ29tcG9uZW50QmFzZS51cGRhdGVSZW5kZXJpbmcoKSB0byBpbnN0
cnVtZW50IGl0LgorICAgICAgICBBbHNvLCB1c2UgYXJyb3cgZnVuY3Rpb25zIGluc3RlYWQgb2Yg
dGhpcy5yZW5kZXIuYmluZCBvciByZWd1bGFyIGNsb3N1cmVzIGZvciBzaW1wbGljaXR5LgorCisg
ICAgICAgIEN1cnJlbnRseSwgd2UncmUgbWFraW5nIDUxMDAgY2FsbHMgdG8gcmVuZGVyKCkgd2hp
bGUgb3BlbmluZyB0aGUgc3VtbWFyeSBwYWdlLCBhbmQgdGhhdCdzIHdheSB0b28gaGlnaC4KKwor
ICAgICAgICAqIHB1YmxpYy92My9jb21wb25lbnRzL2FuYWx5c2lzLXJlc3VsdHMtdmlld2VyLmpz
OgorICAgICAgICAoQW5hbHlzaXNSZXN1bHRzVmlld2VyLnByb3RvdHlwZS5fZXhwYW5kQmV0d2Vl
bik6CisgICAgICAgICogcHVibGljL3YzL2NvbXBvbmVudHMvYmFyLWdyYXBoLWdyb3VwLmpzOgor
ICAgICAgICAoQmFyR3JhcGhHcm91cC5wcm90b3R5cGUudXBkYXRlR3JvdXBSZW5kZXJpbmcpOiBS
ZW5hbWVkIGZvcm0gcmVuZGVyKCkgYXMgQmFyR3JhcGhHcm91cCBpcyBub3QgYSBjb21wb25lbnQu
CisgICAgICAgICogcHVibGljL3YzL2NvbXBvbmVudHMvYmFzZS5qczoKKyAgICAgICAgKENvbXBv
bmVudEJhc2UucHJvdG90eXBlLnVwZGF0ZVJlbmRlcmluZyk6IEFkZGVkLiBJbnN0cnVtZW50cyBy
ZW5kZXIoKSBjYWxsLgorICAgICAgICAqIHB1YmxpYy92My9jb21wb25lbnRzL2NoYXJ0LXBhbmUt
YmFzZS5qczoKKyAgICAgICAgKENoYXJ0UGFuZUJhc2UucHJvdG90eXBlLmZldGNoQW5hbHlzaXNU
YXNrcyk6CisgICAgICAgIChDaGFydFBhbmVCYXNlLnByb3RvdHlwZS5fbWFpblNlbGVjdGlvbkRp
ZFpvb20pOgorICAgICAgICAoQ2hhcnRQYW5lQmFzZS5wcm90b3R5cGUuX3VwZGF0ZVN0YXR1cyk6
CisgICAgICAgIChDaGFydFBhbmVCYXNlLnByb3RvdHlwZS5fcmVxdWVzdE9wZW5pbmdDb21taXRW
aWV3ZXIpOgorICAgICAgICAoQ2hhcnRQYW5lQmFzZS5wcm90b3R5cGUuX2tleXVwKToKKyAgICAg
ICAgKENoYXJ0UGFuZUJhc2UucHJvdG90eXBlLnJlbmRlcik6CisgICAgICAgICogcHVibGljL3Yz
L2NvbXBvbmVudHMvY29tbWl0LWxvZy12aWV3ZXIuanM6CisgICAgICAgICogcHVibGljL3YzL2Nv
bXBvbmVudHMvY3VzdG9taXphYmxlLXRlc3QtZ3JvdXAtZm9ybS5qczoKKyAgICAgICAgKEN1c3Rv
bWl6YWJsZVRlc3RHcm91cEZvcm0pOgorICAgICAgICAoQ3VzdG9taXphYmxlVGVzdEdyb3VwRm9y
bS5wcm90b3R5cGUuX2N1c3RvbWl6ZSk6CisgICAgICAgICogcHVibGljL3YzL2NvbXBvbmVudHMv
ZWRpdGFibGUtdGV4dC5qczoKKyAgICAgICAgKEVkaXRhYmxlVGV4dC5wcm90b3R5cGUuX2RpZFVw
ZGF0ZSk6CisgICAgICAgICogcHVibGljL3YzL2NvbXBvbmVudHMvcGFuZS1zZWxlY3Rvci5qczoK
KyAgICAgICAgKFBhbmVTZWxlY3Rvci5wcm90b3R5cGUuX3NlbGVjdGVkSXRlbSk6CisgICAgICAg
ICogcHVibGljL3YzL2NvbXBvbmVudHMvcmVzdWx0cy10YWJsZS5qczoKKyAgICAgICAgKFJlc3Vs
dHNUYWJsZS5wcm90b3R5cGUucmVuZGVyKToKKyAgICAgICAgKiBwdWJsaWMvdjMvY29tcG9uZW50
cy90aW1lLXNlcmllcy1jaGFydC5qczoKKyAgICAgICAgKFRpbWVTZXJpZXNDaGFydC5fcmVuZGVy
RW5xdWV1ZWRDaGFydHMpOgorICAgICAgICAqIHB1YmxpYy92My9wYWdlcy9hbmFseXNpcy1jYXRl
Z29yeS1wYWdlLmpzOgorICAgICAgICAoQW5hbHlzaXNDYXRlZ29yeVBhZ2UucHJvdG90eXBlLm9w
ZW4pOgorICAgICAgICAoQW5hbHlzaXNDYXRlZ29yeVBhZ2UucHJvdG90eXBlLnVwZGF0ZUZyb21T
ZXJpYWxpemVkU3RhdGUpOgorICAgICAgICAoQW5hbHlzaXNDYXRlZ29yeVBhZ2UucHJvdG90eXBl
LmZpbHRlckRpZENoYW5nZSk6CisgICAgICAgIChBbmFseXNpc0NhdGVnb3J5UGFnZS5wcm90b3R5
cGUucmVuZGVyKToKKyAgICAgICAgKiBwdWJsaWMvdjMvcGFnZXMvYW5hbHlzaXMtdGFzay1wYWdl
LmpzOgorICAgICAgICAoQW5hbHlzaXNUYXNrQ2hhcnRQYW5lLnByb3RvdHlwZS5fdXBkYXRlU3Rh
dHVzKToKKyAgICAgICAgKEFuYWx5c2lzVGFza1BhZ2UucHJvdG90eXBlLnVwZGF0ZUZyb21TZXJp
YWxpemVkU3RhdGUpOgorICAgICAgICAoQW5hbHlzaXNUYXNrUGFnZS5wcm90b3R5cGUuX2RpZEZl
dGNoVGFzayk6CisgICAgICAgIChBbmFseXNpc1Rhc2tQYWdlLnByb3RvdHlwZS5fZGlkRmV0Y2hS
ZWxhdGVkQW5hbHlzaXNUYXNrcyk6CisgICAgICAgIChBbmFseXNpc1Rhc2tQYWdlLnByb3RvdHlw
ZS5fZGlkRmV0Y2hNZWFzdXJlbWVudCk6CisgICAgICAgIChBbmFseXNpc1Rhc2tQYWdlLnByb3Rv
dHlwZS5fZGlkRmV0Y2hUZXN0R3JvdXBzKToKKyAgICAgICAgKEFuYWx5c2lzVGFza1BhZ2UucHJv
dG90eXBlLl9zaG93QWxsVGVzdEdyb3Vwcyk6CisgICAgICAgIChBbmFseXNpc1Rhc2tQYWdlLnBy
b3RvdHlwZS5fZGlkRmV0Y2hBbmFseXNpc1Jlc3VsdHMpOgorICAgICAgICAoQW5hbHlzaXNUYXNr
UGFnZS5wcm90b3R5cGUucmVuZGVyKToKKyAgICAgICAgKEFuYWx5c2lzVGFza1BhZ2UucHJvdG90
eXBlLl9yZW5kZXJUZXN0R3JvdXBMaXN0Lik6CisgICAgICAgIChBbmFseXNpc1Rhc2tQYWdlLnBy
b3RvdHlwZS5fcmVuZGVyVGVzdEdyb3VwTGlzdCk6CisgICAgICAgIChBbmFseXNpc1Rhc2tQYWdl
LnByb3RvdHlwZS5fY3JlYXRlVGVzdEdyb3VwTGlzdEl0ZW0pOgorICAgICAgICAoQW5hbHlzaXNU
YXNrUGFnZS5wcm90b3R5cGUuX3Nob3dUZXN0R3JvdXApOgorICAgICAgICAoQW5hbHlzaXNUYXNr
UGFnZS5wcm90b3R5cGUuX2RpZFN0YXJ0RWRpdGluZ1Rhc2tOYW1lKToKKyAgICAgICAgKEFuYWx5
c2lzVGFza1BhZ2UucHJvdG90eXBlLl91cGRhdGVUYXNrTmFtZSk6CisgICAgICAgIChBbmFseXNp
c1Rhc2tQYWdlLnByb3RvdHlwZS5fdXBkYXRlVGVzdEdyb3VwTmFtZSk6CisgICAgICAgIChBbmFs
eXNpc1Rhc2tQYWdlLnByb3RvdHlwZS5faGlkZUN1cnJlbnRUZXN0R3JvdXApOgorICAgICAgICAo
QW5hbHlzaXNUYXNrUGFnZS5wcm90b3R5cGUuX3VwZGF0ZUNoYW5nZVR5cGUpOgorICAgICAgICAo
QW5hbHlzaXNUYXNrUGFnZS5wcm90b3R5cGUuX2Fzc29jaWF0ZUJ1Zyk6CisgICAgICAgIChBbmFs
eXNpc1Rhc2tQYWdlLnByb3RvdHlwZS5fZGlzc29jaWF0ZUJ1Zyk6CisgICAgICAgIChBbmFseXNp
c1Rhc2tQYWdlLnByb3RvdHlwZS5fYXNzb2NpYXRlQ29tbWl0KToKKyAgICAgICAgKEFuYWx5c2lz
VGFza1BhZ2UucHJvdG90eXBlLl9kaXNzb2NpYXRlQ29tbWl0KToKKyAgICAgICAgKEFuYWx5c2lz
VGFza1BhZ2UucHJvdG90eXBlLl9jaGFydFNlbGVjdGlvbkRpZENoYW5nZSk6CisgICAgICAgIChB
bmFseXNpc1Rhc2tQYWdlLnByb3RvdHlwZS5fc2VsZWN0ZWRSb3dJbkFuYWx5c2lzUmVzdWx0c1Zp
ZXdlcik6CisgICAgICAgICogcHVibGljL3YzL3BhZ2VzL2J1aWxkLXJlcXVlc3QtcXVldWUtcGFn
ZS5qczoKKyAgICAgICAgKEJ1aWxkUmVxdWVzdFF1ZXVlUGFnZS5wcm90b3R5cGUub3Blbi4pOgor
ICAgICAgICAoQnVpbGRSZXF1ZXN0UXVldWVQYWdlLnByb3RvdHlwZS5vcGVuKToKKyAgICAgICAg
KiBwdWJsaWMvdjMvcGFnZXMvY2hhcnQtcGFuZS5qczoKKyAgICAgICAgKENoYXJ0UGFuZS5wcm90
b3R5cGUuc2V0T3BlblJlcG9zaXRvcnkpOgorICAgICAgICAoQ2hhcnRQYW5lLnByb3RvdHlwZS5f
dHJlbmRMaW5lVHlwZURpZENoYW5nZSk6CisgICAgICAgIChDaGFydFBhbmUucHJvdG90eXBlLl91
cGRhdGVUcmVuZExpbmUpOgorICAgICAgICAqIHB1YmxpYy92My9wYWdlcy9jaGFydHMtcGFnZS5q
czoKKyAgICAgICAgKENoYXJ0c1BhZ2UucHJvdG90eXBlLnVwZGF0ZUZyb21TZXJpYWxpemVkU3Rh
dGUpOgorICAgICAgICAoQ2hhcnRzUGFnZS5wcm90b3R5cGUuX3VwZGF0ZURvbWFpbnNGcm9tU2Vy
aWFsaXplZFN0YXRlKToKKyAgICAgICAgKENoYXJ0c1BhZ2UucHJvdG90eXBlLnNldE51bWJlck9m
RGF5c0Zyb21Ub29sYmFyKToKKyAgICAgICAgKENoYXJ0c1BhZ2UucHJvdG90eXBlLl9kaWRNdXRh
dGVQYW5lTGlzdCk6CisgICAgICAgIChDaGFydHNQYWdlLnByb3RvdHlwZS5yZW5kZXIpOgorICAg
ICAgICAqIHB1YmxpYy92My9wYWdlcy9jaGFydHMtdG9vbGJhci5qczoKKyAgICAgICAgKENoYXJ0
c1Rvb2xiYXIucHJvdG90eXBlLnJlbmRlcik6CisgICAgICAgICogcHVibGljL3YzL3BhZ2VzL2Ny
ZWF0ZS1hbmFseXNpcy10YXNrLXBhZ2UuanM6CisgICAgICAgIChDcmVhdGVBbmFseXNpc1Rhc2tQ
YWdlLnByb3RvdHlwZS51cGRhdGVGcm9tU2VyaWFsaXplZFN0YXRlKToKKyAgICAgICAgKiBwdWJs
aWMvdjMvcGFnZXMvZGFzaGJvYXJkLXBhZ2UuanM6CisgICAgICAgIChEYXNoYm9hcmRQYWdlLnBy
b3RvdHlwZS51cGRhdGVGcm9tU2VyaWFsaXplZFN0YXRlKToKKyAgICAgICAgKERhc2hib2FyZFBh
Z2UucHJvdG90eXBlLl9mZXRjaGVkRGF0YSk6CisgICAgICAgICogcHVibGljL3YzL3BhZ2VzL2hl
YWRpbmcuanM6CisgICAgICAgIChIZWFkaW5nLnByb3RvdHlwZS5yZW5kZXIpOgorICAgICAgICAq
IHB1YmxpYy92My9wYWdlcy9wYWdlLXdpdGgtaGVhZGluZy5qczoKKyAgICAgICAgKFBhZ2VXaXRo
SGVhZGluZy5wcm90b3R5cGUucmVuZGVyKToKKyAgICAgICAgKiBwdWJsaWMvdjMvcGFnZXMvcGFn
ZS5qczoKKyAgICAgICAgKFBhZ2UucHJvdG90eXBlLm9wZW4pOgorICAgICAgICAqIHB1YmxpYy92
My9wYWdlcy9zdW1tYXJ5LXBhZ2UuanM6CisgICAgICAgIChTdW1tYXJ5UGFnZS5wcm90b3R5cGUu
b3Blbik6CisgICAgICAgIChTdW1tYXJ5UGFnZS5wcm90b3R5cGUudGhpcy5fcmVuZGVyUXVldWUu
cHVzaCk6CisgICAgICAgIChTdW1tYXJ5UGFnZSk6CisgICAgICAgIChTdW1tYXJ5UGFnZS5wcm90
b3R5cGUuX3JlbmRlckNlbGwpOgorCiAyMDE3LTAxLTEyICBSeW9zdWtlIE5pd2EgIDxybml3YUB3
ZWJraXQub3JnPgogCiAgICAgICAgIE91dGxpZXJzIGFyZSBub3QgaGlkZGVuIGluIHYzIFVJCklu
ZGV4OiBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL2NvbXBvbmVudHMvYW5hbHlz
aXMtcmVzdWx0cy12aWV3ZXIuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vic2l0ZXMvcGVyZi53ZWJraXQu
b3JnL3B1YmxpYy92My9jb21wb25lbnRzL2FuYWx5c2lzLXJlc3VsdHMtdmlld2VyLmpzCShyZXZp
c2lvbiAyMTA3NTEpCisrKyBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL2NvbXBv
bmVudHMvYW5hbHlzaXMtcmVzdWx0cy12aWV3ZXIuanMJKHdvcmtpbmcgY29weSkKQEAgLTI2MCw3
ICsyNjAsNyBAQCBjbGFzcyBBbmFseXNpc1Jlc3VsdHNWaWV3ZXIgZXh0ZW5kcyBSZXN1CiAgICAg
ICAgIGZvciAodmFyIGkgPSBpbmRleEJlZm9yZVN0YXJ0ICsgMTsgaSA8IGluZGV4QWZ0ZXJFbmQ7
IGkgKz0gaW5jcmVtZW50KQogICAgICAgICAgICAgdGhpcy5fZXhwYW5kZWRQb2ludHMuYWRkKHNl
cmllcy5maW5kUG9pbnRCeUluZGV4KGkpKTsKICAgICAgICAgdGhpcy5fc2hvdWxkUmVuZGVyVGFi
bGUgPSB0cnVlOwotICAgICAgICB0aGlzLnJlbmRlcigpOworICAgICAgICB0aGlzLnVwZGF0ZVJl
bmRlcmluZygpOwogICAgIH0KIAogICAgIHN0YXRpYyBodG1sVGVtcGxhdGUoKQpJbmRleDogV2Vi
c2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9jb21wb25lbnRzL2Jhci1ncmFwaC1ncm91
cC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL2Nv
bXBvbmVudHMvYmFyLWdyYXBoLWdyb3VwLmpzCShyZXZpc2lvbiAyMTA3NTEpCisrKyBXZWJzaXRl
cy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL2NvbXBvbmVudHMvYmFyLWdyYXBoLWdyb3VwLmpz
CSh3b3JraW5nIGNvcHkpCkBAIC0xMyw5ICsxMyw5IEBAIGNsYXNzIEJhckdyYXBoR3JvdXAgewog
ICAgICAgICByZXR1cm4gbmV3QmFyOwogICAgIH0KIAotICAgIHJlbmRlcigpCisgICAgdXBkYXRl
R3JvdXBSZW5kZXJpbmcoKQogICAgIHsKLSAgICAgICAgSW5zdHJ1bWVudGF0aW9uLnN0YXJ0TWVh
c3VyaW5nVGltZSgnQmFyR3JhcGhHcm91cCcsICdyZW5kZXInKTsKKyAgICAgICAgSW5zdHJ1bWVu
dGF0aW9uLnN0YXJ0TWVhc3VyaW5nVGltZSgnQmFyR3JhcGhHcm91cCcsICd1cGRhdGVHcm91cFJl
bmRlcmluZycpOwogCiAgICAgICAgIHZhciBtaW4gPSBJbmZpbml0eTsKICAgICAgICAgdmFyIG1h
eCA9IC1JbmZpbml0eTsKQEAgLTM1LDEwICszNSwxMCBAQCBjbGFzcyBCYXJHcmFwaEdyb3VwIHsK
ICAgICAgICAgICAgIHZhciBzdGFydCA9IG1pbiAtIChyYW5nZSAtIGRpZmYpIC8gMjsKIAogICAg
ICAgICAgICAgZW50cnkuYmFyLnVwZGF0ZSgodmFsdWUgLSBzdGFydCkgLyByYW5nZSwgZm9ybWF0
dGVkVmFsdWUpOwotICAgICAgICAgICAgZW50cnkuYmFyLnJlbmRlcigpOworICAgICAgICAgICAg
ZW50cnkuYmFyLnVwZGF0ZVJlbmRlcmluZygpOwogICAgICAgICB9CiAKLSAgICAgICAgSW5zdHJ1
bWVudGF0aW9uLmVuZE1lYXN1cmluZ1RpbWUoJ0JhckdyYXBoR3JvdXAnLCAncmVuZGVyJyk7Cisg
ICAgICAgIEluc3RydW1lbnRhdGlvbi5lbmRNZWFzdXJpbmdUaW1lKCdCYXJHcmFwaEdyb3VwJywg
J3VwZGF0ZUdyb3VwUmVuZGVyaW5nJyk7CiAgICAgfQogfQogCkluZGV4OiBXZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvcHVibGljL3YzL2NvbXBvbmVudHMvYmFzZS5qcwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL2NvbXBvbmVudHMvYmFzZS5qcwkocmV2
aXNpb24gMjEwNzUxKQorKysgV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9jb21w
b25lbnRzL2Jhc2UuanMJKHdvcmtpbmcgY29weSkKQEAgLTEyLDYgKzEyLDEzIEBAIGNsYXNzIENv
bXBvbmVudEJhc2UgewogICAgIGNvbnRlbnQoKSB7IHJldHVybiB0aGlzLl9zaGFkb3c7IH0KICAg
ICByZW5kZXIoKSB7IH0KIAorICAgIHVwZGF0ZVJlbmRlcmluZygpCisgICAgeworICAgICAgICBJ
bnN0cnVtZW50YXRpb24uc3RhcnRNZWFzdXJpbmdUaW1lKCdDb21wb25lbnRCYXNlJywgJ3VwZGF0
ZVJlbmRlcmluZycpOworICAgICAgICB0aGlzLnJlbmRlcigpOworICAgICAgICBJbnN0cnVtZW50
YXRpb24uZW5kTWVhc3VyaW5nVGltZSgnQ29tcG9uZW50QmFzZScsICd1cGRhdGVSZW5kZXJpbmcn
KTsKKyAgICB9CisKICAgICByZW5kZXJSZXBsYWNlKGVsZW1lbnQsIGNvbnRlbnQpIHsgQ29tcG9u
ZW50QmFzZS5yZW5kZXJSZXBsYWNlKGVsZW1lbnQsIGNvbnRlbnQpOyB9CiAKICAgICBzdGF0aWMg
cmVuZGVyUmVwbGFjZShlbGVtZW50LCBjb250ZW50KQpJbmRleDogV2Vic2l0ZXMvcGVyZi53ZWJr
aXQub3JnL3B1YmxpYy92My9jb21wb25lbnRzL2NoYXJ0LXBhbmUtYmFzZS5qcwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL2NvbXBvbmVudHMvY2hhcnQt
cGFuZS1iYXNlLmpzCShyZXZpc2lvbiAyMTA3NTEpCisrKyBXZWJzaXRlcy9wZXJmLndlYmtpdC5v
cmcvcHVibGljL3YzL2NvbXBvbmVudHMvY2hhcnQtcGFuZS1iYXNlLmpzCSh3b3JraW5nIGNvcHkp
CkBAIC05Niw3ICs5Niw3IEBAIGNsYXNzIENoYXJ0UGFuZUJhc2UgZXh0ZW5kcyBDb21wb25lbnRC
YXMKICAgICAgICAgQW5hbHlzaXNUYXNrLmZldGNoQnlQbGF0Zm9ybUFuZE1ldHJpYyh0aGlzLl9w
bGF0Zm9ybUlkLCB0aGlzLl9tZXRyaWNJZCwgbm9DYWNoZSkudGhlbihmdW5jdGlvbiAodGFza3Mp
IHsKICAgICAgICAgICAgIHNlbGYuX3Rhc2tzRm9yQW5ub3RhdGlvbnMgPSB0YXNrczsKICAgICAg
ICAgICAgIHNlbGYuX3JlbmRlcmVkQW5ub3RhdGlvbnMgPSBmYWxzZTsKLSAgICAgICAgICAgIHNl
bGYucmVuZGVyKCk7CisgICAgICAgICAgICBzZWxmLnVwZGF0ZVJlbmRlcmluZygpOwogICAgICAg
ICB9KTsKICAgICB9CiAKQEAgLTEzMiw3ICsxMzIsNyBAQCBjbGFzcyBDaGFydFBhbmVCYXNlIGV4
dGVuZHMgQ29tcG9uZW50QmFzCiAgICAgewogICAgICAgICB0aGlzLl9vdmVydmlld0NoYXJ0LnNl
dFNlbGVjdGlvbihzZWxlY3Rpb24sIHRoaXMpOwogICAgICAgICB0aGlzLl9tYWluQ2hhcnQuc2V0
U2VsZWN0aW9uKG51bGwpOwotICAgICAgICB0aGlzLnJlbmRlcigpOworICAgICAgICB0aGlzLnVw
ZGF0ZVJlbmRlcmluZygpOwogICAgIH0KIAogICAgIF9pbmRpY2F0b3JEaWRDaGFuZ2UoaW5kaWNh
dG9ySUQsIGlzTG9ja2VkKQpAQCAtMTQ4LDggKzE0OCw5IEBAIGNsYXNzIENoYXJ0UGFuZUJhc2Ug
ZXh0ZW5kcyBDb21wb25lbnRCYXMKICAgICBfdXBkYXRlU3RhdHVzKCkKICAgICB7CiAgICAgICAg
IHZhciByYW5nZSA9IHRoaXMuX21haW5DaGFydFN0YXR1cy51cGRhdGVSZXZpc2lvbkxpc3QoKTsK
LSAgICAgICAgdGhpcy5fY29tbWl0TG9nVmlld2VyLnZpZXcocmFuZ2UucmVwb3NpdG9yeSwgcmFu
Z2UuZnJvbSwgcmFuZ2UudG8pLnRoZW4odGhpcy5yZW5kZXIuYmluZCh0aGlzKSk7Ci0gICAgICAg
IHRoaXMucmVuZGVyKCk7CisgICAgICAgIGNvbnN0IHVwZGF0ZVJlbmRlcmluZyA9ICgpID0+IHsg
dGhpcy51cGRhdGVSZW5kZXJpbmcoKTsgfTsKKyAgICAgICAgdGhpcy5fY29tbWl0TG9nVmlld2Vy
LnZpZXcocmFuZ2UucmVwb3NpdG9yeSwgcmFuZ2UuZnJvbSwgcmFuZ2UudG8pLnRoZW4odXBkYXRl
UmVuZGVyaW5nKTsKKyAgICAgICAgdXBkYXRlUmVuZGVyaW5nKCk7CiAgICAgfQogCiAgICAgX29w
ZW5BbmFseXNpc1Rhc2soYW5ub3RhdGlvbikKQEAgLTE2NCw4ICsxNjUsOSBAQCBjbGFzcyBDaGFy
dFBhbmVCYXNlIGV4dGVuZHMgQ29tcG9uZW50QmFzCiAgICAgX3JlcXVlc3RPcGVuaW5nQ29tbWl0
Vmlld2VyKHJlcG9zaXRvcnksIGZyb20sIHRvKQogICAgIHsKICAgICAgICAgdGhpcy5fbWFpbkNo
YXJ0U3RhdHVzLnNldEN1cnJlbnRSZXBvc2l0b3J5KHJlcG9zaXRvcnkpOwotICAgICAgICB0aGlz
Ll9jb21taXRMb2dWaWV3ZXIudmlldyhyZXBvc2l0b3J5LCBmcm9tLCB0bykudGhlbih0aGlzLnJl
bmRlci5iaW5kKHRoaXMpKTsKLSAgICAgICAgdGhpcy5yZW5kZXIoKTsKKyAgICAgICAgY29uc3Qg
dXBkYXRlUmVuZGVyaW5nID0gKCkgPT4geyB0aGlzLnVwZGF0ZVJlbmRlcmluZygpOyB9OworICAg
ICAgICB0aGlzLl9jb21taXRMb2dWaWV3ZXIudmlldyhyZXBvc2l0b3J5LCBmcm9tLCB0bykudGhl
bih1cGRhdGVSZW5kZXJpbmcpOworICAgICAgICB1cGRhdGVSZW5kZXJpbmcoKTsKICAgICB9CiAK
ICAgICBfa2V5dXAoZXZlbnQpCkBAIC0xODksNyArMTkxLDcgQEAgY2xhc3MgQ2hhcnRQYW5lQmFz
ZSBleHRlbmRzIENvbXBvbmVudEJhcwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAK
LSAgICAgICAgdGhpcy5yZW5kZXIoKTsKKyAgICAgICAgdGhpcy51cGRhdGVSZW5kZXJpbmcoKTsK
IAogICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpOwogICAgICAgICBldmVudC5zdG9wUHJv
cGFnYXRpb24oKTsKQEAgLTIxNSwxMiArMjE3LDEyIEBAIGNsYXNzIENoYXJ0UGFuZUJhc2UgZXh0
ZW5kcyBDb21wb25lbnRCYXMKICAgICAgICAgdGhpcy5fcmVuZGVyQW5ub3RhdGlvbnMoKTsKIAog
ICAgICAgICBpZiAodGhpcy5fbWFpbkNoYXJ0U3RhdHVzKQotICAgICAgICAgICAgdGhpcy5fbWFp
bkNoYXJ0U3RhdHVzLnJlbmRlcigpOworICAgICAgICAgICAgdGhpcy5fbWFpbkNoYXJ0U3RhdHVz
LnVwZGF0ZVJlbmRlcmluZygpOwogCiAgICAgICAgIHZhciBib2R5ID0gdGhpcy5jb250ZW50KCku
cXVlcnlTZWxlY3RvcignLmNoYXJ0LXBhbmUtYm9keScpOwogICAgICAgICBpZiAodGhpcy5fY29t
bWl0TG9nVmlld2VyICYmIHRoaXMuX2NvbW1pdExvZ1ZpZXdlci5jdXJyZW50UmVwb3NpdG9yeSgp
KSB7CiAgICAgICAgICAgICBib2R5LmNsYXNzTGlzdC5hZGQoJ2hhcy1zZWNvbmQtc2lkZWJhcicp
OwotICAgICAgICAgICAgdGhpcy5fY29tbWl0TG9nVmlld2VyLnJlbmRlcigpOworICAgICAgICAg
ICAgdGhpcy5fY29tbWl0TG9nVmlld2VyLnVwZGF0ZVJlbmRlcmluZygpOwogICAgICAgICB9IGVs
c2UKICAgICAgICAgICAgIGJvZHkuY2xhc3NMaXN0LnJlbW92ZSgnaGFzLXNlY29uZC1zaWRlYmFy
Jyk7CiAKSW5kZXg6IFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvY29tcG9uZW50
cy9jb21taXQtbG9nLXZpZXdlci5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJzaXRlcy9wZXJmLndlYmtp
dC5vcmcvcHVibGljL3YzL2NvbXBvbmVudHMvY29tbWl0LWxvZy12aWV3ZXIuanMJKHJldmlzaW9u
IDIxMDc1MSkKKysrIFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvY29tcG9uZW50
cy9jb21taXQtbG9nLXZpZXdlci5qcwkod29ya2luZyBjb3B5KQpAQCAtMzEsNyArMzEsNyBAQCBj
bGFzcyBDb21taXRMb2dWaWV3ZXIgZXh0ZW5kcyBDb21wb25lbnRCCiAKICAgICAgICAgaWYgKCF0
bykgewogICAgICAgICAgICAgdGhpcy5fZmV0Y2hpbmdQcm9taXNlID0gbnVsbDsKLSAgICAgICAg
ICAgIHRoaXMucmVuZGVyKCk7CisgICAgICAgICAgICB0aGlzLnVwZGF0ZVJlbmRlcmluZygpOwog
ICAgICAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShudWxsKTsKICAgICAgICAgfQogCkBA
IC00MSw3ICs0MSw3IEBAIGNsYXNzIENvbW1pdExvZ1ZpZXdlciBleHRlbmRzIENvbXBvbmVudEIK
IAogICAgICAgICB2YXIgc2VsZiA9IHRoaXM7CiAgICAgICAgIHZhciBzcGlubmVyVGltZXIgPSBz
ZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgIHNlbGYucmVuZGVyKCk7CisgICAg
ICAgICAgICBzZWxmLnVwZGF0ZVJlbmRlcmluZygpOwogICAgICAgICB9LCAzMDApOwogCiAgICAg
ICAgIHRoaXMuX2ZldGNoaW5nUHJvbWlzZS50aGVuKGZ1bmN0aW9uIChjb21taXRzKSB7CkluZGV4
OiBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL2NvbXBvbmVudHMvY3VzdG9taXph
YmxlLXRlc3QtZ3JvdXAtZm9ybS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJzaXRlcy9wZXJmLndlYmtp
dC5vcmcvcHVibGljL3YzL2NvbXBvbmVudHMvY3VzdG9taXphYmxlLXRlc3QtZ3JvdXAtZm9ybS5q
cwkocmV2aXNpb24gMjEwNzUxKQorKysgV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92
My9jb21wb25lbnRzL2N1c3RvbWl6YWJsZS10ZXN0LWdyb3VwLWZvcm0uanMJKHdvcmtpbmcgY29w
eSkKQEAgLTgsNyArOCw3IEBAIGNsYXNzIEN1c3RvbWl6YWJsZVRlc3RHcm91cEZvcm0gZXh0ZW5k
cyAKICAgICAgICAgdGhpcy5fcmVuZGVyZWRSZXBvc2l0b3J5bGlzdCA9IG51bGw7CiAgICAgICAg
IHRoaXMuX2N1c3RvbWl6ZWQgPSBmYWxzZTsKICAgICAgICAgdGhpcy5fbmFtZUNvbnRyb2wgPSB0
aGlzLmNvbnRlbnQoKS5xdWVyeVNlbGVjdG9yKCcubmFtZScpOwotICAgICAgICB0aGlzLl9uYW1l
Q29udHJvbC5vbmlucHV0ID0gdGhpcy5yZW5kZXIuYmluZCh0aGlzKTsKKyAgICAgICAgdGhpcy5f
bmFtZUNvbnRyb2wub25pbnB1dCA9ICgpID0+IHsgdGhpcy51cGRhdGVSZW5kZXJpbmcoKTsgfQog
ICAgICAgICB0aGlzLmNvbnRlbnQoKS5xdWVyeVNlbGVjdG9yKCdhJykub25jbGljayA9IHRoaXMu
X2N1c3RvbWl6ZS5iaW5kKHRoaXMpOwogICAgIH0KIApAQCAtMjgsNyArMjgsNyBAQCBjbGFzcyBD
dXN0b21pemFibGVUZXN0R3JvdXBGb3JtIGV4dGVuZHMgCiAgICAgewogICAgICAgICBldmVudC5w
cmV2ZW50RGVmYXVsdCgpOwogICAgICAgICB0aGlzLl9jdXN0b21pemVkID0gdHJ1ZTsKLSAgICAg
ICAgdGhpcy5yZW5kZXIoKTsKKyAgICAgICAgdGhpcy51cGRhdGVSZW5kZXJpbmcoKTsKICAgICB9
CiAKICAgICBfY29tcHV0ZVJvb3RTZXRNYXAoKQpJbmRleDogV2Vic2l0ZXMvcGVyZi53ZWJraXQu
b3JnL3B1YmxpYy92My9jb21wb25lbnRzL2VkaXRhYmxlLXRleHQuanMKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9jb21wb25lbnRzL2VkaXRhYmxlLXRl
eHQuanMJKHJldmlzaW9uIDIxMDc1MSkKKysrIFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJs
aWMvdjMvY29tcG9uZW50cy9lZGl0YWJsZS10ZXh0LmpzCSh3b3JraW5nIGNvcHkpCkBAIC03Myw3
ICs3Myw3IEBAIGNsYXNzIEVkaXRhYmxlVGV4dCBleHRlbmRzIENvbXBvbmVudEJhc2UKICAgICB7
CiAgICAgICAgIHRoaXMuX2luRWRpdGluZ01vZGUgPSBmYWxzZTsKICAgICAgICAgdGhpcy5fdXBk
YXRpbmdQcm9taXNlID0gbnVsbDsKLSAgICAgICAgdGhpcy5yZW5kZXIoKTsKKyAgICAgICAgdGhp
cy51cGRhdGVSZW5kZXJpbmcoKTsKICAgICB9CiAKICAgICBzdGF0aWMgaHRtbFRlbXBsYXRlKCkK
SW5kZXg6IFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvY29tcG9uZW50cy9wYW5l
LXNlbGVjdG9yLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJs
aWMvdjMvY29tcG9uZW50cy9wYW5lLXNlbGVjdG9yLmpzCShyZXZpc2lvbiAyMTA3NTEpCisrKyBX
ZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL2NvbXBvbmVudHMvcGFuZS1zZWxlY3Rv
ci5qcwkod29ya2luZyBjb3B5KQpAQCAtMTY3LDcgKzE2Nyw3IEBAIGNsYXNzIFBhbmVTZWxlY3Rv
ciBleHRlbmRzIENvbXBvbmVudEJhc2UKICAgICAgICAgICAgIGlmIChkYXRhIGluc3RhbmNlb2Yg
TWV0cmljICYmIGRhdGEudGVzdCgpLm9ubHlDb250YWluc1NpbmdsZU1ldHJpYygpKQogICAgICAg
ICAgICAgICAgIHRoaXMuX2N1cnJlbnRQYXRoLnNwbGljZSh0aGlzLl9jdXJyZW50UGF0aC5sZW5n
dGggLSAyLCAxKTsKICAgICAgICAgfQotICAgICAgICB0aGlzLnJlbmRlcigpOworICAgICAgICB0
aGlzLnVwZGF0ZVJlbmRlcmluZygpOwogICAgIH0KIAogICAgIHNldENhbGxiYWNrKGNhbGxiYWNr
KQpJbmRleDogV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9jb21wb25lbnRzL3Jl
c3VsdHMtdGFibGUuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1
YmxpYy92My9jb21wb25lbnRzL3Jlc3VsdHMtdGFibGUuanMJKHJldmlzaW9uIDIxMDc1MSkKKysr
IFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvY29tcG9uZW50cy9yZXN1bHRzLXRh
YmxlLmpzCSh3b3JraW5nIGNvcHkpCkBAIC04Nyw3ICs4Nyw3IEBAIGNsYXNzIFJlc3VsdHNUYWJs
ZSBleHRlbmRzIENvbXBvbmVudEJhc2UKICAgICAgICAgdGhpcy5yZW5kZXJSZXBsYWNlKHRoaXMu
Y29udGVudCgpLnF1ZXJ5U2VsZWN0b3IoJy5yZXN1bHRzLXRhYmxlLWV4dHJhLXJlcG9zaXRvcmll
cycpLAogICAgICAgICAgICAgZXh0cmFSZXBvc2l0b3JpZXMubWFwKGZ1bmN0aW9uIChjb21taXQp
IHsgcmV0dXJuIGVsZW1lbnQoJ2xpJywgY29tbWl0LnRpdGxlKCkpOyB9KSk7CiAKLSAgICAgICAg
YmFyR3JhcGhHcm91cC5yZW5kZXIoKTsKKyAgICAgICAgYmFyR3JhcGhHcm91cC51cGRhdGVHcm91
cFJlbmRlcmluZygpOwogCiAgICAgICAgIEluc3RydW1lbnRhdGlvbi5lbmRNZWFzdXJpbmdUaW1l
KCdSZXN1bHRzVGFibGUnLCAncmVuZGVyJyk7CiAgICAgfQpJbmRleDogV2Vic2l0ZXMvcGVyZi53
ZWJraXQub3JnL3B1YmxpYy92My9jb21wb25lbnRzL3RpbWUtc2VyaWVzLWNoYXJ0LmpzCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvY29tcG9uZW50cy90
aW1lLXNlcmllcy1jaGFydC5qcwkocmV2aXNpb24gMjEwNzUxKQorKysgV2Vic2l0ZXMvcGVyZi53
ZWJraXQub3JnL3B1YmxpYy92My9jb21wb25lbnRzL3RpbWUtc2VyaWVzLWNoYXJ0LmpzCSh3b3Jr
aW5nIGNvcHkpCkBAIC02OSw3ICs2OSw3IEBAIGNsYXNzIFRpbWVTZXJpZXNDaGFydCBleHRlbmRz
IENvbXBvbmVudEIKICAgICBzdGF0aWMgX3JlbmRlckVucXVldWVkQ2hhcnRzKCkKICAgICB7CiAg
ICAgICAgIGZvciAodmFyIGNoYXJ0IG9mIFRpbWVTZXJpZXNDaGFydC5fY2hhcnRRdWV1ZSkKLSAg
ICAgICAgICAgIGNoYXJ0LnJlbmRlcigpOworICAgICAgICAgICAgY2hhcnQudXBkYXRlUmVuZGVy
aW5nKCk7CiAgICAgICAgIFRpbWVTZXJpZXNDaGFydC5fY2hhcnRRdWV1ZSA9IG51bGw7CiAgICAg
fQogCkluZGV4OiBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL3BhZ2VzL2FuYWx5
c2lzLWNhdGVnb3J5LXBhZ2UuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vic2l0ZXMvcGVyZi53ZWJraXQu
b3JnL3B1YmxpYy92My9wYWdlcy9hbmFseXNpcy1jYXRlZ29yeS1wYWdlLmpzCShyZXZpc2lvbiAy
MTA3NTEpCisrKyBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL3BhZ2VzL2FuYWx5
c2lzLWNhdGVnb3J5LXBhZ2UuanMJKHdvcmtpbmcgY29weSkKQEAgLTIzLDEwICsyMywxMCBAQCBj
bGFzcyBBbmFseXNpc0NhdGVnb3J5UGFnZSBleHRlbmRzIFBhZ2VXCiAgICAgICAgIHZhciBzZWxm
ID0gdGhpczsKICAgICAgICAgQW5hbHlzaXNUYXNrLmZldGNoQWxsKCkudGhlbihmdW5jdGlvbiAo
KSB7CiAgICAgICAgICAgICBzZWxmLl9mZXRjaGVkID0gdHJ1ZTsKLSAgICAgICAgICAgIHNlbGYu
cmVuZGVyKCk7CisgICAgICAgICAgICBzZWxmLnVwZGF0ZVJlbmRlcmluZygpOwogICAgICAgICB9
LCBmdW5jdGlvbiAoZXJyb3IpIHsKICAgICAgICAgICAgIHNlbGYuX2Vycm9yTWVzc2FnZSA9ICdG
YWlsZWQgdG8gZmV0Y2ggdGhlIGxpc3Qgb2YgYW5hbHlzaXMgdGFza3M6ICcgKyBlcnJvcjsKLSAg
ICAgICAgICAgIHNlbGYucmVuZGVyKCk7CisgICAgICAgICAgICBzZWxmLnVwZGF0ZVJlbmRlcmlu
ZygpOwogICAgICAgICB9KTsKICAgICAgICAgc3VwZXIub3BlbihzdGF0ZSk7CiAgICAgfQpAQCAt
NTksMTIgKzU5LDEyIEBAIGNsYXNzIEFuYWx5c2lzQ2F0ZWdvcnlQYWdlIGV4dGVuZHMgUGFnZVcK
ICAgICAgICAgICAgIHRoaXMuX2NhdGVnb3J5VG9vbGJhci5zZXRGaWx0ZXIoc3RhdGUuZmlsdGVy
KTsKIAogICAgICAgICBpZiAoIWlzT3BlbikKLSAgICAgICAgICAgIHRoaXMucmVuZGVyKCk7Cisg
ICAgICAgICAgICB0aGlzLnVwZGF0ZVJlbmRlcmluZygpOwogICAgIH0KIAogICAgIGZpbHRlckRp
ZENoYW5nZShzaG91bGRVcGRhdGVTdGF0ZSkKICAgICB7Ci0gICAgICAgIHRoaXMucmVuZGVyKCk7
CisgICAgICAgIHRoaXMudXBkYXRlUmVuZGVyaW5nKCk7CiAgICAgICAgIGlmIChzaG91bGRVcGRh
dGVTdGF0ZSkKICAgICAgICAgICAgIHRoaXMuc2NoZWR1bGVVcmxTdGF0ZVVwZGF0ZSgpOwogICAg
IH0KQEAgLTc0LDcgKzc0LDcgQEAgY2xhc3MgQW5hbHlzaXNDYXRlZ29yeVBhZ2UgZXh0ZW5kcyBQ
YWdlVwogICAgICAgICBJbnN0cnVtZW50YXRpb24uc3RhcnRNZWFzdXJpbmdUaW1lKCdBbmFseXNp
c0NhdGVnb3J5UGFnZScsICdyZW5kZXInKTsKIAogICAgICAgICBzdXBlci5yZW5kZXIoKTsKLSAg
ICAgICAgdGhpcy5fY2F0ZWdvcnlUb29sYmFyLnJlbmRlcigpOworICAgICAgICB0aGlzLl9jYXRl
Z29yeVRvb2xiYXIudXBkYXRlUmVuZGVyaW5nKCk7CiAKICAgICAgICAgaWYgKHRoaXMuX2Vycm9y
TWVzc2FnZSkgewogICAgICAgICAgICAgY29uc29sZS5hc3NlcnQoIXRoaXMuX2ZldGNoZWQpOwpJ
bmRleDogV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9wYWdlcy9hbmFseXNpcy10
YXNrLXBhZ2UuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1Ymxp
Yy92My9wYWdlcy9hbmFseXNpcy10YXNrLXBhZ2UuanMJKHJldmlzaW9uIDIxMDc1MSkKKysrIFdl
YnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvcGFnZXMvYW5hbHlzaXMtdGFzay1wYWdl
LmpzCSh3b3JraW5nIGNvcHkpCkBAIC0xOSw3ICsxOSw3IEBAIGNsYXNzIEFuYWx5c2lzVGFza0No
YXJ0UGFuZSBleHRlbmRzIENoYXIKICAgICBfdXBkYXRlU3RhdHVzKCkKICAgICB7CiAgICAgICAg
IHN1cGVyLl91cGRhdGVTdGF0dXMoKTsKLSAgICAgICAgdGhpcy5fcGFnZS5yZW5kZXIoKTsKKyAg
ICAgICAgdGhpcy5fcGFnZS51cGRhdGVSZW5kZXJpbmcoKTsKICAgICB9CiAKICAgICBzZWxlY3Rl
ZFBvaW50cygpCkBAIC0xMDEsNyArMTAxLDcgQEAgY2xhc3MgQW5hbHlzaXNUYXNrUGFnZSBleHRl
bmRzIFBhZ2VXaXRoSAogICAgICAgICAgICAgdmFyIHRhc2tJZCA9IHBhcnNlSW50KHN0YXRlLnJl
bWFpbmluZ1JvdXRlKTsKICAgICAgICAgICAgIEFuYWx5c2lzVGFzay5mZXRjaEJ5SWQodGFza0lk
KS50aGVuKHRoaXMuX2RpZEZldGNoVGFzay5iaW5kKHRoaXMpLCBmdW5jdGlvbiAoZXJyb3IpIHsK
ICAgICAgICAgICAgICAgICBzZWxmLl9lcnJvck1lc3NhZ2UgPSBgRmFpbGVkIHRvIGZldGNoIHRo
ZSBhbmFseXNpcyB0YXNrICR7c3RhdGUucmVtYWluaW5nUm91dGV9OiAke2Vycm9yfWA7Ci0gICAg
ICAgICAgICAgICAgc2VsZi5yZW5kZXIoKTsKKyAgICAgICAgICAgICAgICBzZWxmLnVwZGF0ZVJl
bmRlcmluZygpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICB0aGlzLl9mZXRjaFJlbGF0
ZWRJbmZvRm9yVGFza0lkKHRhc2tJZCk7CiAgICAgICAgIH0gZWxzZSBpZiAoc3RhdGUuYnVpbGRS
ZXF1ZXN0KSB7CkBAIC0xMTAsNyArMTEwLDcgQEAgY2xhc3MgQW5hbHlzaXNUYXNrUGFnZSBleHRl
bmRzIFBhZ2VXaXRoSAogICAgICAgICAgICAgICAgIHNlbGYuX2ZldGNoUmVsYXRlZEluZm9Gb3JU
YXNrSWQodGFzay5pZCgpKTsKICAgICAgICAgICAgIH0sIGZ1bmN0aW9uIChlcnJvcikgewogICAg
ICAgICAgICAgICAgIHNlbGYuX2Vycm9yTWVzc2FnZSA9IGBGYWlsZWQgdG8gZmV0Y2ggdGhlIGFu
YWx5c2lzIHRhc2sgZm9yIHRoZSBidWlsZCByZXF1ZXN0ICR7YnVpbGRSZXF1ZXN0SWR9OiAke2Vy
cm9yfWA7Ci0gICAgICAgICAgICAgICAgc2VsZi5yZW5kZXIoKTsKKyAgICAgICAgICAgICAgICBz
ZWxmLnVwZGF0ZVJlbmRlcmluZygpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0KICAgICB9
CkBAIC0xNDYsNyArMTQ2LDcgQEAgY2xhc3MgQW5hbHlzaXNUYXNrUGFnZSBleHRlbmRzIFBhZ2VX
aXRoSAogICAgICAgICB0aGlzLl9jaGFydFBhbmUuc2V0T3ZlcnZpZXdEb21haW4oZG9tYWluWzBd
LCBkb21haW5bMV0pOwogICAgICAgICB0aGlzLl9jaGFydFBhbmUuc2V0TWFpbkRvbWFpbihkb21h
aW5bMF0sIGRvbWFpblsxXSk7CiAKLSAgICAgICAgdGhpcy5yZW5kZXIoKTsKKyAgICAgICAgdGhp
cy51cGRhdGVSZW5kZXJpbmcoKTsKIAogICAgICAgICByZXR1cm4gdGFzazsKICAgICB9CkBAIC0x
NTQsNyArMTU0LDcgQEAgY2xhc3MgQW5hbHlzaXNUYXNrUGFnZSBleHRlbmRzIFBhZ2VXaXRoSAog
ICAgIF9kaWRGZXRjaFJlbGF0ZWRBbmFseXNpc1Rhc2tzKHJlbGF0ZWRUYXNrcykKICAgICB7CiAg
ICAgICAgIHRoaXMuX3JlbGF0ZWRUYXNrcyA9IHJlbGF0ZWRUYXNrczsKLSAgICAgICAgdGhpcy5y
ZW5kZXIoKTsKKyAgICAgICAgdGhpcy51cGRhdGVSZW5kZXJpbmcoKTsKICAgICB9CiAKICAgICBf
ZGlkRmV0Y2hNZWFzdXJlbWVudCgpCkBAIC0xNzEsNyArMTcxLDcgQEAgY2xhc3MgQW5hbHlzaXNU
YXNrUGFnZSBleHRlbmRzIFBhZ2VXaXRoSAogCiAgICAgICAgIHRoaXMuX3N0YXJ0UG9pbnQgPSBz
dGFydFBvaW50OwogICAgICAgICB0aGlzLl9lbmRQb2ludCA9IGVuZFBvaW50OwotICAgICAgICB0
aGlzLnJlbmRlcigpOworICAgICAgICB0aGlzLnVwZGF0ZVJlbmRlcmluZygpOwogICAgIH0KIAog
ICAgIF9kaWRGZXRjaFRlc3RHcm91cHModGVzdEdyb3VwcykKQEAgLTE3OSwxNCArMTc5LDE0IEBA
IGNsYXNzIEFuYWx5c2lzVGFza1BhZ2UgZXh0ZW5kcyBQYWdlV2l0aEgKICAgICAgICAgdGhpcy5f
dGVzdEdyb3VwcyA9IHRlc3RHcm91cHMuc29ydChmdW5jdGlvbiAoYSwgYikgeyByZXR1cm4gK2Eu
Y3JlYXRlZEF0KCkgLSBiLmNyZWF0ZWRBdCgpOyB9KTsKICAgICAgICAgdGhpcy5fZGlkVXBkYXRl
VGVzdEdyb3VwSGlkZGVuU3RhdGUoKTsKICAgICAgICAgdGhpcy5fYXNzaWduVGVzdFJlc3VsdHNJ
ZlBvc3NpYmxlKCk7Ci0gICAgICAgIHRoaXMucmVuZGVyKCk7CisgICAgICAgIHRoaXMudXBkYXRl
UmVuZGVyaW5nKCk7CiAgICAgfQogCiAgICAgX3Nob3dBbGxUZXN0R3JvdXBzKCkKICAgICB7CiAg
ICAgICAgIHRoaXMuX3Nob3dIaWRkZW5UZXN0R3JvdXBzID0gdHJ1ZTsKICAgICAgICAgdGhpcy5f
ZGlkVXBkYXRlVGVzdEdyb3VwSGlkZGVuU3RhdGUoKTsKLSAgICAgICAgdGhpcy5yZW5kZXIoKTsK
KyAgICAgICAgdGhpcy51cGRhdGVSZW5kZXJpbmcoKTsKICAgICB9CiAKICAgICBfZGlkVXBkYXRl
VGVzdEdyb3VwSGlkZGVuU3RhdGUoKQpAQCAtMjA2LDcgKzIwNiw3IEBAIGNsYXNzIEFuYWx5c2lz
VGFza1BhZ2UgZXh0ZW5kcyBQYWdlV2l0aEgKICAgICB7CiAgICAgICAgIHRoaXMuX2FuYWx5c2lz
UmVzdWx0cyA9IHJlc3VsdHM7CiAgICAgICAgIGlmICh0aGlzLl9hc3NpZ25UZXN0UmVzdWx0c0lm
UG9zc2libGUoKSkKLSAgICAgICAgICAgIHRoaXMucmVuZGVyKCk7CisgICAgICAgICAgICB0aGlz
LnVwZGF0ZVJlbmRlcmluZygpOwogICAgIH0KIAogICAgIF9hc3NpZ25UZXN0UmVzdWx0c0lmUG9z
c2libGUoKQpAQCAtMjMzLDcgKzIzMyw3IEBAIGNsYXNzIEFuYWx5c2lzVGFza1BhZ2UgZXh0ZW5k
cyBQYWdlV2l0aEgKIAogICAgICAgICB0aGlzLmNvbnRlbnQoKS5xdWVyeVNlbGVjdG9yKCcuZXJy
b3ItbWVzc2FnZScpLnRleHRDb250ZW50ID0gdGhpcy5fZXJyb3JNZXNzYWdlIHx8ICcnOwogCi0g
ICAgICAgIHRoaXMuX2NoYXJ0UGFuZS5yZW5kZXIoKTsKKyAgICAgICAgdGhpcy5fY2hhcnRQYW5l
LnVwZGF0ZVJlbmRlcmluZygpOwogCiAgICAgICAgIHZhciBlbGVtZW50ID0gQ29tcG9uZW50QmFz
ZS5jcmVhdGVFbGVtZW50OwogICAgICAgICB2YXIgbGluayA9IENvbXBvbmVudEJhc2UuY3JlYXRl
TGluazsKQEAgLTI2NCwxOCArMjY0LDE4IEBAIGNsYXNzIEFuYWx5c2lzVGFza1BhZ2UgZXh0ZW5k
cyBQYWdlV2l0aEgKICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICByZXBvc2l0b3J5TGlzdCA9
IFJlcG9zaXRvcnkuc29ydEJ5TmFtZVByZWZlcnJpbmdPbmVzV2l0aFVSTChSZXBvc2l0b3J5LmFs
bCgpKTsKIAotICAgICAgICB0aGlzLl9idWdMaXN0LnJlbmRlcigpOworICAgICAgICB0aGlzLl9i
dWdMaXN0LnVwZGF0ZVJlbmRlcmluZygpOwogCiAgICAgICAgIHRoaXMuX2NhdXNlTGlzdC5zZXRL
aW5kTGlzdChyZXBvc2l0b3J5TGlzdCk7Ci0gICAgICAgIHRoaXMuX2NhdXNlTGlzdC5yZW5kZXIo
KTsKKyAgICAgICAgdGhpcy5fY2F1c2VMaXN0LnVwZGF0ZVJlbmRlcmluZygpOwogCiAgICAgICAg
IHRoaXMuX2ZpeExpc3Quc2V0S2luZExpc3QocmVwb3NpdG9yeUxpc3QpOwotICAgICAgICB0aGlz
Ll9maXhMaXN0LnJlbmRlcigpOworICAgICAgICB0aGlzLl9maXhMaXN0LnVwZGF0ZVJlbmRlcmlu
ZygpOwogCiAgICAgICAgIHRoaXMuY29udGVudCgpLnF1ZXJ5U2VsZWN0b3IoJy5hbmFseXNpcy10
YXNrLXN0YXR1cycpLnN0eWxlLmRpc3BsYXkgPSB0aGlzLl90YXNrID8gbnVsbCA6ICdub25lJzsK
ICAgICAgICAgdGhpcy5jb250ZW50KCkucXVlcnlTZWxlY3RvcignLm92ZXJ2aWV3LWNoYXJ0Jyku
c3R5bGUuZGlzcGxheSA9IHRoaXMuX3Rhc2sgPyBudWxsIDogJ25vbmUnOwogICAgICAgICB0aGlz
LmNvbnRlbnQoKS5xdWVyeVNlbGVjdG9yKCcudGVzdC1ncm91cC12aWV3Jykuc3R5bGUuZGlzcGxh
eSA9IHRoaXMuX3Rhc2sgJiYgdGhpcy5fdGVzdEdyb3VwcyAmJiB0aGlzLl90ZXN0R3JvdXBzLmxl
bmd0aCA/IG51bGwgOiAnbm9uZSc7Ci0gICAgICAgIHRoaXMuX3Rhc2tOYW1lTGFiZWwucmVuZGVy
KCk7CisgICAgICAgIHRoaXMuX3Rhc2tOYW1lTGFiZWwudXBkYXRlUmVuZGVyaW5nKCk7CiAKICAg
ICAgICAgaWYgKHRoaXMuX3JlbGF0ZWRUYXNrcyAmJiB0aGlzLl90YXNrKSB7CiAgICAgICAgICAg
ICB2YXIgcm91dGVyID0gdGhpcy5yb3V0ZXIoKTsKQEAgLTI5Niw3ICsyOTYsNyBAQCBjbGFzcyBB
bmFseXNpc1Rhc2tQYWdlIGV4dGVuZHMgUGFnZVdpdGhICiAgICAgICAgIHZhciBhID0gc2VsZWN0
ZWRSYW5nZVsnQSddOwogICAgICAgICB2YXIgYiA9IHNlbGVjdGVkUmFuZ2VbJ0InXTsKICAgICAg
ICAgdGhpcy5fbmV3VGVzdEdyb3VwRm9ybUZvclZpZXdlci5zZXRSb290U2V0TWFwKGEgJiYgYiA/
IHsnQSc6IGEucm9vdFNldCgpLCAnQic6IGIucm9vdFNldCgpfSA6IG51bGwpOwotICAgICAgICB0
aGlzLl9uZXdUZXN0R3JvdXBGb3JtRm9yVmlld2VyLnJlbmRlcigpOworICAgICAgICB0aGlzLl9u
ZXdUZXN0R3JvdXBGb3JtRm9yVmlld2VyLnVwZGF0ZVJlbmRlcmluZygpOwogICAgICAgICB0aGlz
Ll9uZXdUZXN0R3JvdXBGb3JtRm9yVmlld2VyLmVsZW1lbnQoKS5zdHlsZS5kaXNwbGF5ID0gdGhp
cy5fdHJpZ2dlcmFibGUgPyBudWxsIDogJ25vbmUnOwogCiAgICAgICAgIHRoaXMuX3JlbmRlclRl
c3RHcm91cExpc3QoKTsKQEAgLTMwOCwxMyArMzA4LDEzIEBAIGNsYXNzIEFuYWx5c2lzVGFza1Bh
Z2UgZXh0ZW5kcyBQYWdlV2l0aEgKICAgICAgICAgdmFyIHBvaW50cyA9IHRoaXMuX2NoYXJ0UGFu
ZS5zZWxlY3RlZFBvaW50cygpOwogICAgICAgICB0aGlzLl9uZXdUZXN0R3JvdXBGb3JtRm9yQ2hh
cnQuc2V0Um9vdFNldE1hcChwb2ludHMgJiYgcG9pbnRzLmxlbmd0aCA+PSAyID8KICAgICAgICAg
ICAgICAgICB7J0EnOiBwb2ludHNbMF0ucm9vdFNldCgpLCAnQic6IHBvaW50c1twb2ludHMubGVu
Z3RoIC0gMV0ucm9vdFNldCgpfSA6IG51bGwpOwotICAgICAgICB0aGlzLl9uZXdUZXN0R3JvdXBG
b3JtRm9yQ2hhcnQucmVuZGVyKCk7CisgICAgICAgIHRoaXMuX25ld1Rlc3RHcm91cEZvcm1Gb3JD
aGFydC51cGRhdGVSZW5kZXJpbmcoKTsKICAgICAgICAgdGhpcy5fbmV3VGVzdEdyb3VwRm9ybUZv
ckNoYXJ0LmVsZW1lbnQoKS5zdHlsZS5kaXNwbGF5ID0gdGhpcy5fdHJpZ2dlcmFibGUgPyBudWxs
IDogJ25vbmUnOwogCiAgICAgICAgIHRoaXMuX2FuYWx5c2lzUmVzdWx0c1ZpZXdlci5zZXRDdXJy
ZW50VGVzdEdyb3VwKHRoaXMuX2N1cnJlbnRUZXN0R3JvdXApOwotICAgICAgICB0aGlzLl9hbmFs
eXNpc1Jlc3VsdHNWaWV3ZXIucmVuZGVyKCk7CisgICAgICAgIHRoaXMuX2FuYWx5c2lzUmVzdWx0
c1ZpZXdlci51cGRhdGVSZW5kZXJpbmcoKTsKIAotICAgICAgICB0aGlzLl90ZXN0R3JvdXBSZXN1
bHRzVGFibGUucmVuZGVyKCk7CisgICAgICAgIHRoaXMuX3Rlc3RHcm91cFJlc3VsdHNUYWJsZS51
cGRhdGVSZW5kZXJpbmcoKTsKIAogICAgICAgICBJbnN0cnVtZW50YXRpb24uZW5kTWVhc3VyaW5n
VGltZSgnQW5hbHlzaXNUYXNrUGFnZScsICdyZW5kZXInKTsKICAgICB9CkBAIC0zNTYsNyArMzU2
LDcgQEAgY2xhc3MgQW5hbHlzaXNUYXNrUGFnZSBleHRlbmRzIFBhZ2VXaXRoSAogICAgICAgICAg
ICAgZm9yICh2YXIgdGVzdEdyb3VwIG9mIHRoaXMuX2ZpbHRlcmVkVGVzdEdyb3VwcykgewogICAg
ICAgICAgICAgICAgIHZhciBsYWJlbCA9IHRoaXMuX3Rlc3RHcm91cExhYmVsTWFwLmdldCh0ZXN0
R3JvdXApOwogICAgICAgICAgICAgICAgIGxhYmVsLnNldFRleHQodGVzdEdyb3VwLmxhYmVsKCkp
OwotICAgICAgICAgICAgICAgIGxhYmVsLnJlbmRlcigpOworICAgICAgICAgICAgICAgIGxhYmVs
LnVwZGF0ZVJlbmRlcmluZygpOwogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfQpAQCAt
MzY0LDcgKzM2NCw3IEBAIGNsYXNzIEFuYWx5c2lzVGFza1BhZ2UgZXh0ZW5kcyBQYWdlV2l0aEgK
ICAgICBfY3JlYXRlVGVzdEdyb3VwTGlzdEl0ZW0oZ3JvdXApCiAgICAgewogICAgICAgICB2YXIg
dGV4dCA9IG5ldyBFZGl0YWJsZVRleHQoZ3JvdXAubGFiZWwoKSk7Ci0gICAgICAgIHRleHQuc2V0
U3RhcnRlZEVkaXRpbmdDYWxsYmFjayhmdW5jdGlvbiAoKSB7IHJldHVybiB0ZXh0LnJlbmRlcigp
OyB9KTsKKyAgICAgICAgdGV4dC5zZXRTdGFydGVkRWRpdGluZ0NhbGxiYWNrKCgpID0+IHsgcmV0
dXJuIHRleHQudXBkYXRlUmVuZGVyaW5nKCk7IH0pOwogICAgICAgICB0ZXh0LnNldFVwZGF0ZUNh
bGxiYWNrKHRoaXMuX3VwZGF0ZVRlc3RHcm91cE5hbWUuYmluZCh0aGlzLCBncm91cCkpOwogCiAg
ICAgICAgIHRoaXMuX3Rlc3RHcm91cExhYmVsTWFwLnNldChncm91cCwgdGV4dCk7CkBAIC00MDgs
MzEgKzQwOCwzMCBAQCBjbGFzcyBBbmFseXNpc1Rhc2tQYWdlIGV4dGVuZHMgUGFnZVdpdGhICiAK
ICAgICAgICAgICAgIHRoaXMuX3JlbmRlcmVkQ3VycmVudFRlc3RHcm91cCA9IHRoaXMuX2N1cnJl
bnRUZXN0R3JvdXA7CiAgICAgICAgIH0KLSAgICAgICAgdGhpcy5fcmV0cnlGb3JtLnJlbmRlcigp
OworICAgICAgICB0aGlzLl9yZXRyeUZvcm0udXBkYXRlUmVuZGVyaW5nKCk7CiAgICAgfQogCiAg
ICAgX3Nob3dUZXN0R3JvdXAodGVzdEdyb3VwKQogICAgIHsKICAgICAgICAgdGhpcy5fY3VycmVu
dFRlc3RHcm91cCA9IHRlc3RHcm91cDsgICAgICAgIAogICAgICAgICB0aGlzLl90ZXN0R3JvdXBS
ZXN1bHRzVGFibGUuc2V0VGVzdEdyb3VwKHRoaXMuX2N1cnJlbnRUZXN0R3JvdXApOwotICAgICAg
ICB0aGlzLnJlbmRlcigpOworICAgICAgICB0aGlzLnVwZGF0ZVJlbmRlcmluZygpOwogICAgIH0K
IAogICAgIF9kaWRTdGFydEVkaXRpbmdUYXNrTmFtZSgpCiAgICAgewotICAgICAgICB0aGlzLl90
YXNrTmFtZUxhYmVsLnJlbmRlcigpOworICAgICAgICB0aGlzLl90YXNrTmFtZUxhYmVsLnVwZGF0
ZVJlbmRlcmluZygpOwogICAgIH0KIAogICAgIF91cGRhdGVUYXNrTmFtZSgpCiAgICAgewogICAg
ICAgICBjb25zb2xlLmFzc2VydCh0aGlzLl90YXNrKTsKLSAgICAgICAgdGhpcy5fdGFza05hbWVM
YWJlbC5yZW5kZXIoKTsKKyAgICAgICAgdGhpcy5fdGFza05hbWVMYWJlbC51cGRhdGVSZW5kZXJp
bmcoKTsKIAotICAgICAgICB2YXIgc2VsZiA9IHRoaXM7Ci0gICAgICAgIHJldHVybiBzZWxmLl90
YXNrLnVwZGF0ZU5hbWUoc2VsZi5fdGFza05hbWVMYWJlbC5lZGl0ZWRUZXh0KCkpLnRoZW4oZnVu
Y3Rpb24gKCkgewotICAgICAgICAgICAgc2VsZi5yZW5kZXIoKTsKLSAgICAgICAgfSwgZnVuY3Rp
b24gKGVycm9yKSB7Ci0gICAgICAgICAgICBzZWxmLnJlbmRlcigpOworICAgICAgICByZXR1cm4g
dGhpcy5fdGFzay51cGRhdGVOYW1lKHRoaXMuX3Rhc2tOYW1lTGFiZWwuZWRpdGVkVGV4dCgpKS50
aGVuKCgpID0+IHsKKyAgICAgICAgICAgIHRoaXMudXBkYXRlUmVuZGVyaW5nKCk7CisgICAgICAg
IH0sIChlcnJvcikgPT4geworICAgICAgICAgICAgdGhpcy51cGRhdGVSZW5kZXJpbmcoKTsKICAg
ICAgICAgICAgIGFsZXJ0KCdGYWlsZWQgdG8gdXBkYXRlIHRoZSBuYW1lOiAnICsgZXJyb3IpOwog
ICAgICAgICB9KTsKICAgICB9CkBAIC00NDAsMjcgKzQzOSwyNSBAQCBjbGFzcyBBbmFseXNpc1Rh
c2tQYWdlIGV4dGVuZHMgUGFnZVdpdGhICiAgICAgX3VwZGF0ZVRlc3RHcm91cE5hbWUodGVzdEdy
b3VwKQogICAgIHsKICAgICAgICAgdmFyIGxhYmVsID0gdGhpcy5fdGVzdEdyb3VwTGFiZWxNYXAu
Z2V0KHRlc3RHcm91cCk7Ci0gICAgICAgIGxhYmVsLnJlbmRlcigpOworICAgICAgICBsYWJlbC51
cGRhdGVSZW5kZXJpbmcoKTsKIAotICAgICAgICB2YXIgc2VsZiA9IHRoaXM7Ci0gICAgICAgIHJl
dHVybiB0ZXN0R3JvdXAudXBkYXRlTmFtZShsYWJlbC5lZGl0ZWRUZXh0KCkpLnRoZW4oZnVuY3Rp
b24gKCkgewotICAgICAgICAgICAgc2VsZi5yZW5kZXIoKTsKLSAgICAgICAgfSwgZnVuY3Rpb24g
KGVycm9yKSB7Ci0gICAgICAgICAgICBzZWxmLnJlbmRlcigpOworICAgICAgICByZXR1cm4gdGVz
dEdyb3VwLnVwZGF0ZU5hbWUobGFiZWwuZWRpdGVkVGV4dCgpKS50aGVuKCgpID0+IHsKKyAgICAg
ICAgICAgIHRoaXMudXBkYXRlUmVuZGVyaW5nKCk7CisgICAgICAgIH0sIChlcnJvcikgPT4gewor
ICAgICAgICAgICAgdGhpcy51cGRhdGVSZW5kZXJpbmcoKTsKICAgICAgICAgICAgIGFsZXJ0KCdG
YWlsZWQgdG8gaGlkZSB0aGUgdGVzdCBuYW1lOiAnICsgZXJyb3IpOwogICAgICAgICB9KTsKICAg
ICB9CiAKICAgICBfaGlkZUN1cnJlbnRUZXN0R3JvdXAoKQogICAgIHsKLSAgICAgICAgdmFyIHNl
bGYgPSB0aGlzOwogICAgICAgICBjb25zb2xlLmFzc2VydCh0aGlzLl9jdXJyZW50VGVzdEdyb3Vw
KTsKLSAgICAgICAgcmV0dXJuIHRoaXMuX2N1cnJlbnRUZXN0R3JvdXAudXBkYXRlSGlkZGVuRmxh
ZyghdGhpcy5fY3VycmVudFRlc3RHcm91cC5pc0hpZGRlbigpKS50aGVuKGZ1bmN0aW9uICgpIHsK
LSAgICAgICAgICAgIHNlbGYuX2RpZFVwZGF0ZVRlc3RHcm91cEhpZGRlblN0YXRlKCk7Ci0gICAg
ICAgICAgICBzZWxmLnJlbmRlcigpOworICAgICAgICByZXR1cm4gdGhpcy5fY3VycmVudFRlc3RH
cm91cC51cGRhdGVIaWRkZW5GbGFnKCF0aGlzLl9jdXJyZW50VGVzdEdyb3VwLmlzSGlkZGVuKCkp
LnRoZW4oKCkgPT4geworICAgICAgICAgICAgdGhpcy5fZGlkVXBkYXRlVGVzdEdyb3VwSGlkZGVu
U3RhdGUoKTsKKyAgICAgICAgICAgIHRoaXMudXBkYXRlUmVuZGVyaW5nKCk7CiAgICAgICAgIH0s
IGZ1bmN0aW9uIChlcnJvcikgewotICAgICAgICAgICAgc2VsZi5fbWF5SGF2ZU11dGF0ZWRUZXN0
R3JvdXBIaWRkZW5TdGF0ZSgpOwotICAgICAgICAgICAgc2VsZi5yZW5kZXIoKTsKKyAgICAgICAg
ICAgIHRoaXMuX21heUhhdmVNdXRhdGVkVGVzdEdyb3VwSGlkZGVuU3RhdGUoKTsKKyAgICAgICAg
ICAgIHRoaXMudXBkYXRlUmVuZGVyaW5nKCk7CiAgICAgICAgICAgICBhbGVydCgnRmFpbGVkIHRv
IHVwZGF0ZSB0aGUgZ3JvdXA6ICcgKyBlcnJvcik7CiAgICAgICAgIH0pOwogICAgIH0KQEAgLTQ3
NCw5ICs0NzEsOSBAQCBjbGFzcyBBbmFseXNpc1Rhc2tQYWdlIGV4dGVuZHMgUGFnZVdpdGhICiAg
ICAgICAgIGlmIChuZXdDaGFuZ2VUeXBlID09ICd1bmNvbmZpcm1lZCcpCiAgICAgICAgICAgICBu
ZXdDaGFuZ2VUeXBlID0gbnVsbDsKIAotICAgICAgICB2YXIgcmVuZGVyID0gdGhpcy5yZW5kZXIu
YmluZCh0aGlzKTsKLSAgICAgICAgcmV0dXJuIHRoaXMuX3Rhc2sudXBkYXRlQ2hhbmdlVHlwZShu
ZXdDaGFuZ2VUeXBlKS50aGVuKHJlbmRlciwgZnVuY3Rpb24gKGVycm9yKSB7Ci0gICAgICAgICAg
ICByZW5kZXIoKTsKKyAgICAgICAgY29uc3QgdXBkYXRlUmVuZGVyaW5nID0gKCkgPT4geyB0aGlz
LnVwZGF0ZVJlbmRlcmluZygpOyB9OworICAgICAgICByZXR1cm4gdGhpcy5fdGFzay51cGRhdGVD
aGFuZ2VUeXBlKG5ld0NoYW5nZVR5cGUpLnRoZW4odXBkYXRlUmVuZGVyaW5nLCAoZXJyb3IpID0+
IHsKKyAgICAgICAgICAgIHVwZGF0ZVJlbmRlcmluZygpOwogICAgICAgICAgICAgYWxlcnQoJ0Zh
aWxlZCB0byB1cGRhdGUgdGhlIHN0YXR1czogJyArIGVycm9yKTsKICAgICAgICAgfSk7CiAgICAg
fQpAQCAtNDg2LDI3ICs0ODMsMjcgQEAgY2xhc3MgQW5hbHlzaXNUYXNrUGFnZSBleHRlbmRzIFBh
Z2VXaXRoSAogICAgICAgICBjb25zb2xlLmFzc2VydCh0cmFja2VyIGluc3RhbmNlb2YgQnVnVHJh
Y2tlcik7CiAgICAgICAgIGJ1Z051bWJlciA9IHBhcnNlSW50KGJ1Z051bWJlcik7CiAKLSAgICAg
ICAgdmFyIHJlbmRlciA9IHRoaXMucmVuZGVyLmJpbmQodGhpcyk7Ci0gICAgICAgIHJldHVybiB0
aGlzLl90YXNrLmFzc29jaWF0ZUJ1Zyh0cmFja2VyLCBidWdOdW1iZXIpLnRoZW4ocmVuZGVyLCBm
dW5jdGlvbiAoZXJyb3IpIHsKLSAgICAgICAgICAgIHJlbmRlcigpOworICAgICAgICBjb25zdCB1
cGRhdGVSZW5kZXJpbmcgPSAoKSA9PiB7IHRoaXMudXBkYXRlUmVuZGVyaW5nKCk7IH07CisgICAg
ICAgIHJldHVybiB0aGlzLl90YXNrLmFzc29jaWF0ZUJ1Zyh0cmFja2VyLCBidWdOdW1iZXIpLnRo
ZW4odXBkYXRlUmVuZGVyaW5nLCAoZXJyb3IpID0+IHsKKyAgICAgICAgICAgIHVwZGF0ZVJlbmRl
cmluZygpOwogICAgICAgICAgICAgYWxlcnQoJ0ZhaWxlZCB0byBhc3NvY2lhdGUgdGhlIGJ1Zzog
JyArIGVycm9yKTsKICAgICAgICAgfSk7CiAgICAgfQogCiAgICAgX2Rpc3NvY2lhdGVCdWcoYnVn
KQogICAgIHsKLSAgICAgICAgdmFyIHJlbmRlciA9IHRoaXMucmVuZGVyLmJpbmQodGhpcyk7Ci0g
ICAgICAgIHJldHVybiB0aGlzLl90YXNrLmRpc3NvY2lhdGVCdWcoYnVnKS50aGVuKHJlbmRlciwg
ZnVuY3Rpb24gKGVycm9yKSB7Ci0gICAgICAgICAgICByZW5kZXIoKTsKKyAgICAgICAgY29uc3Qg
dXBkYXRlUmVuZGVyaW5nID0gKCkgPT4geyB0aGlzLnVwZGF0ZVJlbmRlcmluZygpOyB9OworICAg
ICAgICByZXR1cm4gdGhpcy5fdGFzay5kaXNzb2NpYXRlQnVnKGJ1ZykudGhlbih1cGRhdGVSZW5k
ZXJpbmcsIChlcnJvcikgPT4geworICAgICAgICAgICAgdXBkYXRlUmVuZGVyaW5nKCk7CiAgICAg
ICAgICAgICBhbGVydCgnRmFpbGVkIHRvIGRpc3NvY2lhdGUgdGhlIGJ1ZzogJyArIGVycm9yKTsK
ICAgICAgICAgfSk7CiAgICAgfQogCiAgICAgX2Fzc29jaWF0ZUNvbW1pdChraW5kLCByZXBvc2l0
b3J5LCByZXZpc2lvbikKICAgICB7Ci0gICAgICAgIHZhciByZW5kZXIgPSB0aGlzLnJlbmRlci5i
aW5kKHRoaXMpOwotICAgICAgICByZXR1cm4gdGhpcy5fdGFzay5hc3NvY2lhdGVDb21taXQoa2lu
ZCwgcmVwb3NpdG9yeSwgcmV2aXNpb24pLnRoZW4ocmVuZGVyLCBmdW5jdGlvbiAoZXJyb3IpIHsK
LSAgICAgICAgICAgIHJlbmRlcigpOworICAgICAgICBjb25zdCB1cGRhdGVSZW5kZXJpbmcgPSAo
KSA9PiB7IHRoaXMudXBkYXRlUmVuZGVyaW5nKCk7IH07CisgICAgICAgIHJldHVybiB0aGlzLl90
YXNrLmFzc29jaWF0ZUNvbW1pdChraW5kLCByZXBvc2l0b3J5LCByZXZpc2lvbikudGhlbih1cGRh
dGVSZW5kZXJpbmcsIChlcnJvcikgPT4geworICAgICAgICAgICAgdXBkYXRlUmVuZGVyaW5nKCk7
CiAgICAgICAgICAgICBpZiAoZXJyb3IgPT0gJ0FtYmlndW91c1JldmlzaW9uJykKICAgICAgICAg
ICAgICAgICBhbGVydCgnVGhlcmUgYXJlIG11bHRpcGxlIHJldmlzaW9ucyB0aGF0IG1hdGNoIHRo
ZSBzcGVjaWZpZWQgc3RyaW5nOiAnICsgcmV2aXNpb24pOwogICAgICAgICAgICAgZWxzZSBpZiAo
ZXJyb3IgPT0gJ0NvbW1pdE5vdEZvdW5kJykKQEAgLTUxOCw5ICs1MTUsOSBAQCBjbGFzcyBBbmFs
eXNpc1Rhc2tQYWdlIGV4dGVuZHMgUGFnZVdpdGhICiAKICAgICBfZGlzc29jaWF0ZUNvbW1pdChj
b21taXQpCiAgICAgewotICAgICAgICB2YXIgcmVuZGVyID0gdGhpcy5yZW5kZXIuYmluZCh0aGlz
KTsKLSAgICAgICAgcmV0dXJuIHRoaXMuX3Rhc2suZGlzc29jaWF0ZUNvbW1pdChjb21taXQpLnRo
ZW4ocmVuZGVyLCBmdW5jdGlvbiAoZXJyb3IpIHsKLSAgICAgICAgICAgIHJlbmRlcigpOworICAg
ICAgICBjb25zdCB1cGRhdGVSZW5kZXJpbmcgPSAoKSA9PiB7IHRoaXMudXBkYXRlUmVuZGVyaW5n
KCk7IH07CisgICAgICAgIHJldHVybiB0aGlzLl90YXNrLmRpc3NvY2lhdGVDb21taXQoY29tbWl0
KS50aGVuKHVwZGF0ZVJlbmRlcmluZywgKGVycm9yKSA9PiB7CisgICAgICAgICAgICB1cGRhdGVS
ZW5kZXJpbmcoKTsKICAgICAgICAgICAgIGFsZXJ0KCdGYWlsZWQgdG8gZGlzc29jaWF0ZSB0aGUg
Y29tbWl0OiAnICsgZXJyb3IpOwogICAgICAgICB9KTsKICAgICB9CkBAIC01NDIsNyArNTM5LDcg
QEAgY2xhc3MgQW5hbHlzaXNUYXNrUGFnZSBleHRlbmRzIFBhZ2VXaXRoSAogICAgIF9jaGFydFNl
bGVjdGlvbkRpZENoYW5nZSgpCiAgICAgewogICAgICAgICB0aGlzLl9zZWxlY3Rpb25XYXNNb2Rp
ZmllZEJ5VXNlciA9IHRydWU7Ci0gICAgICAgIHRoaXMucmVuZGVyKCk7CisgICAgICAgIHRoaXMu
dXBkYXRlUmVuZGVyaW5nKCk7CiAgICAgfQogCiAgICAgX2NyZWF0ZU5ld1Rlc3RHcm91cEZyb21D
aGFydChuYW1lLCByZXBldGl0aW9uQ291bnQsIHJvb3RTZXRNYXApCkBAIC01NTIsNyArNTQ5LDcg
QEAgY2xhc3MgQW5hbHlzaXNUYXNrUGFnZSBleHRlbmRzIFBhZ2VXaXRoSAogCiAgICAgX3NlbGVj
dGVkUm93SW5BbmFseXNpc1Jlc3VsdHNWaWV3ZXIoKQogICAgIHsKLSAgICAgICAgdGhpcy5yZW5k
ZXIoKTsKKyAgICAgICAgdGhpcy51cGRhdGVSZW5kZXJpbmcoKTsKICAgICB9CiAKICAgICBfY3Jl
YXRlTmV3VGVzdEdyb3VwRnJvbVZpZXdlcihuYW1lLCByZXBldGl0aW9uQ291bnQsIHJvb3RTZXRN
YXApCkluZGV4OiBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL3BhZ2VzL2J1aWxk
LXJlcXVlc3QtcXVldWUtcGFnZS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJzaXRlcy9wZXJmLndlYmtp
dC5vcmcvcHVibGljL3YzL3BhZ2VzL2J1aWxkLXJlcXVlc3QtcXVldWUtcGFnZS5qcwkocmV2aXNp
b24gMjEwNzUxKQorKysgV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9wYWdlcy9i
dWlsZC1yZXF1ZXN0LXF1ZXVlLXBhZ2UuanMJKHdvcmtpbmcgY29weSkKQEAgLTE4LDE2ICsxOCwx
NiBAQCBjbGFzcyBCdWlsZFJlcXVlc3RRdWV1ZVBhZ2UgZXh0ZW5kcyBQYWdlCiAKICAgICAgICAg
ICAgICAgICBCdWlsZFJlcXVlc3QuZmV0Y2hGb3JUcmlnZ2VyYWJsZShlbnRyeS5uYW1lKS50aGVu
KGZ1bmN0aW9uIChyZXF1ZXN0cykgewogICAgICAgICAgICAgICAgICAgICB0cmlnZ2VyYWJsZS5i
dWlsZFJlcXVlc3RzID0gcmVxdWVzdHM7Ci0gICAgICAgICAgICAgICAgICAgIHNlbGYucmVuZGVy
KCk7CisgICAgICAgICAgICAgICAgICAgIHNlbGYudXBkYXRlUmVuZGVyaW5nKCk7CiAgICAgICAg
ICAgICAgICAgfSk7CiAKICAgICAgICAgICAgICAgICByZXR1cm4gdHJpZ2dlcmFibGU7CiAgICAg
ICAgICAgICB9KTsKLSAgICAgICAgICAgIHNlbGYucmVuZGVyKCk7CisgICAgICAgICAgICBzZWxm
LnVwZGF0ZVJlbmRlcmluZygpOwogICAgICAgICB9KTsKIAogICAgICAgICBBbmFseXNpc1Rhc2su
ZmV0Y2hBbGwoKS50aGVuKGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgIHNlbGYucmVuZGVyKCk7
CisgICAgICAgICAgICBzZWxmLnVwZGF0ZVJlbmRlcmluZygpOwogICAgICAgICB9KTsKIAogICAg
ICAgICBzdXBlci5vcGVuKHN0YXRlKTsKSW5kZXg6IFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9w
dWJsaWMvdjMvcGFnZXMvY2hhcnQtcGFuZS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvcHVibGljL3YzL3BhZ2VzL2NoYXJ0LXBhbmUuanMJKHJldmlzaW9uIDIxMDc1
MSkKKysrIFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvcGFnZXMvY2hhcnQtcGFu
ZS5qcwkod29ya2luZyBjb3B5KQpAQCAtMTg2LDggKzE4Niw4IEBAIGNsYXNzIENoYXJ0UGFuZSBl
eHRlbmRzIENoYXJ0UGFuZUJhc2UgewogICAgIHsKICAgICAgICAgaWYgKHJlcG9zaXRvcnkgIT0g
dGhpcy5fY29tbWl0TG9nVmlld2VyLmN1cnJlbnRSZXBvc2l0b3J5KCkpIHsKICAgICAgICAgICAg
IHZhciByYW5nZSA9IHRoaXMuX21haW5DaGFydFN0YXR1cy5zZXRDdXJyZW50UmVwb3NpdG9yeShy
ZXBvc2l0b3J5KTsKLSAgICAgICAgICAgIHRoaXMuX2NvbW1pdExvZ1ZpZXdlci52aWV3KHJlcG9z
aXRvcnksIHJhbmdlLmZyb20sIHJhbmdlLnRvKS50aGVuKHRoaXMucmVuZGVyLmJpbmQodGhpcykp
OwotICAgICAgICAgICAgdGhpcy5yZW5kZXIoKTsKKyAgICAgICAgICAgIHRoaXMuX2NvbW1pdExv
Z1ZpZXdlci52aWV3KHJlcG9zaXRvcnksIHJhbmdlLmZyb20sIHJhbmdlLnRvKS50aGVuKCgpID0+
IHsgdGhpcy51cGRhdGVSZW5kZXJpbmcoKTsgfSk7CisgICAgICAgICAgICB0aGlzLnVwZGF0ZVJl
bmRlcmluZygpOwogICAgICAgICB9CiAgICAgfQogCkBAIC00NDgsNyArNDQ4LDcgQEAgY2xhc3Mg
Q2hhcnRQYW5lIGV4dGVuZHMgQ2hhcnRQYW5lQmFzZSB7CiAKICAgICAgICAgdGhpcy5fdXBkYXRl
VHJlbmRMaW5lKCk7CiAgICAgICAgIHRoaXMuX2NoYXJ0c1BhZ2UuZ3JhcGhPcHRpb25zRGlkQ2hh
bmdlKCk7Ci0gICAgICAgIHRoaXMucmVuZGVyKCk7CisgICAgICAgIHRoaXMudXBkYXRlUmVuZGVy
aW5nKCk7CiAgICAgfQogCiAgICAgX2RlZmF1bHRQYXJhbWV0ZXJzRm9yVHJlbmRMaW5lKHR5cGUp
CkBAIC00OTMsNyArNDkzLDcgQEAgY2xhc3MgQ2hhcnRQYW5lIGV4dGVuZHMgQ2hhcnRQYW5lQmFz
ZSB7CiAKICAgICAgICAgaWYgKCFjdXJyZW50VHJlbmRMaW5lVHlwZS5leGVjdXRlKSB7CiAgICAg
ICAgICAgICB0aGlzLl9tYWluQ2hhcnQuY2xlYXJUcmVuZExpbmVzKCk7Ci0gICAgICAgICAgICB0
aGlzLnJlbmRlcigpOworICAgICAgICAgICAgdGhpcy51cGRhdGVSZW5kZXJpbmcoKTsKICAgICAg
ICAgfSBlbHNlIHsKICAgICAgICAgICAgIC8vIFdhaXQgZm9yIGFsbCB0cmVuZGxpbmVzIHRvIGJl
IHJlYWR5LiBPdGhlcndpc2Ugd2UgbWlnaHQgc2VlIEZPQyB3aGVuIHRoZSBkb21haW4gaXMgZXhw
YW5kZWQuCiAgICAgICAgICAgICBQcm9taXNlLmFsbChzb3VyY2VMaXN0Lm1hcChmdW5jdGlvbiAo
c291cmNlLCBzb3VyY2VJbmRleCkgewpAQCAtNTAyLDcgKzUwMiw3IEBAIGNsYXNzIENoYXJ0UGFu
ZSBleHRlbmRzIENoYXJ0UGFuZUJhc2UgewogICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5f
bWFpbkNoYXJ0LnNldFRyZW5kTGluZShzb3VyY2VJbmRleCwgdHJlbmRsaW5lU2VyaWVzKTsKICAg
ICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgIH0pKS50aGVuKGZ1bmN0aW9uICgpIHsKLSAg
ICAgICAgICAgICAgICBzZWxmLnJlbmRlcigpOworICAgICAgICAgICAgICAgIHNlbGYudXBkYXRl
UmVuZGVyaW5nKCk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfQogICAgIH0KSW5kZXg6IFdl
YnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvcGFnZXMvY2hhcnRzLXBhZ2UuanMKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9wYWdlcy9jaGFy
dHMtcGFnZS5qcwkocmV2aXNpb24gMjEwNzUxKQorKysgV2Vic2l0ZXMvcGVyZi53ZWJraXQub3Jn
L3B1YmxpYy92My9wYWdlcy9jaGFydHMtcGFnZS5qcwkod29ya2luZyBjb3B5KQpAQCAtNzksNyAr
NzksNyBAQCBjbGFzcyBDaGFydHNQYWdlIGV4dGVuZHMgUGFnZVdpdGhIZWFkaW5nCiAgICAgICAg
IGlmIChuZXdQYW5lTGlzdCkgewogICAgICAgICAgICAgdGhpcy5fcGFuZUxpc3QgPSBuZXdQYW5l
TGlzdDsKICAgICAgICAgICAgIHRoaXMuX3BhbmVMaXN0Q2hhbmdlZCA9IHRydWU7Ci0gICAgICAg
ICAgICB0aGlzLnJlbmRlcigpOworICAgICAgICAgICAgdGhpcy51cGRhdGVSZW5kZXJpbmcoKTsK
ICAgICAgICAgfQogCiAgICAgICAgIHRoaXMuX3VwZGF0ZURvbWFpbnNGcm9tU2VyaWFsaXplZFN0
YXRlKHN0YXRlKTsKQEAgLTEwOSw3ICsxMDksNyBAQCBjbGFzcyBDaGFydHNQYWdlIGV4dGVuZHMg
UGFnZVdpdGhIZWFkaW5nCiAgICAgICAgICAgICBzaW5jZSA9IHpvb21bMF0gLSAoem9vbVsxXSAt
IHpvb21bMF0pIC8gMjsKIAogICAgICAgICB0aGlzLnRvb2xiYXIoKS5zZXRTdGFydFRpbWUoc2lu
Y2UpOwotICAgICAgICB0aGlzLnRvb2xiYXIoKS5yZW5kZXIoKTsKKyAgICAgICAgdGhpcy50b29s
YmFyKCkudXBkYXRlUmVuZGVyaW5nKCk7CiAKICAgICAgICAgdGhpcy5fbWFpbkRvbWFpbiA9IHpv
b20gfHwgbnVsbDsKIApAQCAtMTUxLDcgKzE1MSw3IEBAIGNsYXNzIENoYXJ0c1BhZ2UgZXh0ZW5k
cyBQYWdlV2l0aEhlYWRpbmcKICAgICBzZXROdW1iZXJPZkRheXNGcm9tVG9vbGJhcihudW1iZXJP
ZkRheXMsIHNob3VsZFVwZGF0ZVN0YXRlKQogICAgIHsKICAgICAgICAgdGhpcy50b29sYmFyKCku
c2V0TnVtYmVyT2ZEYXlzKG51bWJlck9mRGF5cywgdHJ1ZSk7Ci0gICAgICAgIHRoaXMudG9vbGJh
cigpLnJlbmRlcigpOworICAgICAgICB0aGlzLnRvb2xiYXIoKS51cGRhdGVSZW5kZXJpbmcoKTsK
ICAgICAgICAgdGhpcy5fdXBkYXRlT3ZlcnZpZXdEb21haW4oKTsKICAgICAgICAgdGhpcy5fdXBk
YXRlTWFpbkRvbWFpbigpOwogICAgICAgICBpZiAoc2hvdWxkVXBkYXRlU3RhdGUpCkBAIC0yOTgs
NyArMjk4LDcgQEAgY2xhc3MgQ2hhcnRzUGFnZSBleHRlbmRzIFBhZ2VXaXRoSGVhZGluZwogICAg
ICAgICAgICAgdGhpcy5fdXBkYXRlT3ZlcnZpZXdEb21haW4oKTsKICAgICAgICAgICAgIHRoaXMu
X3VwZGF0ZU1haW5Eb21haW4oKTsKICAgICAgICAgfQotICAgICAgICB0aGlzLnJlbmRlcigpOwor
ICAgICAgICB0aGlzLnVwZGF0ZVJlbmRlcmluZygpOwogICAgICAgICB0aGlzLnNjaGVkdWxlVXJs
U3RhdGVVcGRhdGUoKTsKICAgICB9CiAKQEAgLTMxMCw3ICszMTAsNyBAQCBjbGFzcyBDaGFydHNQ
YWdlIGV4dGVuZHMgUGFnZVdpdGhIZWFkaW5nCiAgICAgICAgICAgICB0aGlzLnJlbmRlclJlcGxh
Y2UodGhpcy5jb250ZW50KCkucXVlcnlTZWxlY3RvcignLnBhbmUtbGlzdCcpLCB0aGlzLl9wYW5l
TGlzdCk7CiAKICAgICAgICAgZm9yICh2YXIgcGFuZSBvZiB0aGlzLl9wYW5lTGlzdCkKLSAgICAg
ICAgICAgIHBhbmUucmVuZGVyKCk7CisgICAgICAgICAgICBwYW5lLnVwZGF0ZVJlbmRlcmluZygp
OwogCiAgICAgICAgIHRoaXMuX3BhbmVMaXN0Q2hhbmdlZCA9IGZhbHNlOwogICAgIH0KSW5kZXg6
IFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvcGFnZXMvY2hhcnRzLXRvb2xiYXIu
anMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9wYWdl
cy9jaGFydHMtdG9vbGJhci5qcwkocmV2aXNpb24gMjEwNzUxKQorKysgV2Vic2l0ZXMvcGVyZi53
ZWJraXQub3JnL3B1YmxpYy92My9wYWdlcy9jaGFydHMtdG9vbGJhci5qcwkod29ya2luZyBjb3B5
KQpAQCAtMzQsNyArMzQsNyBAQCBjbGFzcyBDaGFydHNUb29sYmFyIGV4dGVuZHMgRG9tYWluQ29u
dHJvCiAgICAgcmVuZGVyKCkKICAgICB7CiAgICAgICAgIHN1cGVyLnJlbmRlcigpOwotICAgICAg
ICB0aGlzLl9wYW5lU2VsZWN0b3IucmVuZGVyKCk7CisgICAgICAgIHRoaXMuX3BhbmVTZWxlY3Rv
ci51cGRhdGVSZW5kZXJpbmcoKTsKICAgICAgICAgdGhpcy5fbGFiZWxTcGFuLnRleHRDb250ZW50
ID0gdGhpcy5fbnVtYmVyT2ZEYXlzOwogICAgICAgICB0aGlzLl9zZXRJbnB1dEVsZW1lbnRWYWx1
ZSh0aGlzLl9udW1iZXJPZkRheXMpOwogICAgIH0KSW5kZXg6IFdlYnNpdGVzL3BlcmYud2Via2l0
Lm9yZy9wdWJsaWMvdjMvcGFnZXMvY3JlYXRlLWFuYWx5c2lzLXRhc2stcGFnZS5qcwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL3BhZ2VzL2NyZWF0ZS1h
bmFseXNpcy10YXNrLXBhZ2UuanMJKHJldmlzaW9uIDIxMDc1MSkKKysrIFdlYnNpdGVzL3BlcmYu
d2Via2l0Lm9yZy9wdWJsaWMvdjMvcGFnZXMvY3JlYXRlLWFuYWx5c2lzLXRhc2stcGFnZS5qcwko
d29ya2luZyBjb3B5KQpAQCAtMTYsNyArMTYsNyBAQCBjbGFzcyBDcmVhdGVBbmFseXNpc1Rhc2tQ
YWdlIGV4dGVuZHMgUGFnCiAKICAgICAgICAgdGhpcy5fZXJyb3JNZXNzYWdlID0gc3RhdGUuZXJy
b3I7CiAgICAgICAgIGlmICghaXNPcGVuKQotICAgICAgICAgICAgdGhpcy5yZW5kZXIoKTsKKyAg
ICAgICAgICAgIHRoaXMudXBkYXRlUmVuZGVyaW5nKCk7CiAgICAgfQogCiAgICAgcmVuZGVyKCkK
SW5kZXg6IFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvcGFnZXMvZGFzaGJvYXJk
LXBhZ2UuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92
My9wYWdlcy9kYXNoYm9hcmQtcGFnZS5qcwkocmV2aXNpb24gMjEwNzUxKQorKysgV2Vic2l0ZXMv
cGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9wYWdlcy9kYXNoYm9hcmQtcGFnZS5qcwkod29ya2lu
ZyBjb3B5KQpAQCAtMzUsNyArMzUsNyBAQCBjbGFzcyBEYXNoYm9hcmRQYWdlIGV4dGVuZHMgUGFn
ZVdpdGhIZWFkCiAKICAgICAgICAgdGhpcy5fbmVlZHNUYWJsZUNvbnN0cnVjdGlvbiA9IHRydWU7
CiAgICAgICAgIGlmICghaXNPcGVuKQotICAgICAgICAgICAgdGhpcy5yZW5kZXIoKTsKKyAgICAg
ICAgICAgIHRoaXMudXBkYXRlUmVuZGVyaW5nKCk7CiAgICAgfQogCiAgICAgb3BlbihzdGF0ZSkK
QEAgLTExNCw3ICsxMTQsNyBAQCBjbGFzcyBEYXNoYm9hcmRQYWdlIGV4dGVuZHMgUGFnZVdpdGhI
ZWFkCiAKICAgICAgICAgaWYgKHRoaXMuX25lZWRzU3RhdHVzVXBkYXRlKSB7CiAgICAgICAgICAg
ICBmb3IgKHZhciBzdGF0dXNWaWV3IG9mIHRoaXMuX3N0YXR1c1ZpZXdzKQotICAgICAgICAgICAg
ICAgIHN0YXR1c1ZpZXcucmVuZGVyKCk7CisgICAgICAgICAgICAgICAgc3RhdHVzVmlldy51cGRh
dGVSZW5kZXJpbmcoKTsKICAgICAgICAgICAgIHRoaXMuX25lZWRzU3RhdHVzVXBkYXRlID0gZmFs
c2U7CiAgICAgICAgIH0KICAgICB9CkBAIC0xNTUsNyArMTU1LDcgQEAgY2xhc3MgRGFzaGJvYXJk
UGFnZSBleHRlbmRzIFBhZ2VXaXRoSGVhZAogICAgICAgICAgICAgcmV0dXJuOwogCiAgICAgICAg
IHRoaXMuX25lZWRzU3RhdHVzVXBkYXRlID0gdHJ1ZTsKLSAgICAgICAgc2V0VGltZW91dCh0aGlz
LnJlbmRlci5iaW5kKHRoaXMpLCAxMCk7CisgICAgICAgIHNldFRpbWVvdXQoKCkgPT4geyB0aGlz
LnVwZGF0ZVJlbmRlcmluZygpOyB9LCAxMCk7CiAgICAgfQogCiAgICAgc3RhdGljIGh0bWxUZW1w
bGF0ZSgpCkluZGV4OiBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL3BhZ2VzL2hl
YWRpbmcuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92
My9wYWdlcy9oZWFkaW5nLmpzCShyZXZpc2lvbiAyMTA3NTEpCisrKyBXZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvcHVibGljL3YzL3BhZ2VzL2hlYWRpbmcuanMJKHdvcmtpbmcgY29weSkKQEAgLTUw
LDcgKzUwLDcgQEAgY2xhc3MgSGVhZGluZyBleHRlbmRzIENvbXBvbmVudEJhc2UgewogICAgICAg
ICB9CiAKICAgICAgICAgaWYgKHRoaXMuX3Rvb2xiYXIpCi0gICAgICAgICAgICB0aGlzLl90b29s
YmFyLnJlbmRlcigpOworICAgICAgICAgICAgdGhpcy5fdG9vbGJhci51cGRhdGVSZW5kZXJpbmco
KTsKIAogICAgICAgICB2YXIgY3VycmVudFBhZ2UgPSB0aGlzLl9yb3V0ZXIuY3VycmVudFBhZ2Uo
KTsKICAgICAgICAgaWYgKHRoaXMuX3JlbmRlcmVkQ3VycmVudFBhZ2UgPT0gY3VycmVudFBhZ2Up
CkluZGV4OiBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL3BhZ2VzL3BhZ2Utd2l0
aC1oZWFkaW5nLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJs
aWMvdjMvcGFnZXMvcGFnZS13aXRoLWhlYWRpbmcuanMJKHJldmlzaW9uIDIxMDc1MSkKKysrIFdl
YnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvcGFnZXMvcGFnZS13aXRoLWhlYWRpbmcu
anMJKHdvcmtpbmcgY29weSkKQEAgLTMyLDcgKzMyLDcgQEAgY2xhc3MgUGFnZVdpdGhIZWFkaW5n
IGV4dGVuZHMgUGFnZSB7CiAgICAgICAgICAgICBkb2N1bWVudC5ib2R5Lmluc2VydEJlZm9yZSh0
aGlzLmhlYWRpbmcoKS5lbGVtZW50KCksIGRvY3VtZW50LmJvZHkuZmlyc3RDaGlsZCk7CiAKICAg
ICAgICAgc3VwZXIucmVuZGVyKCk7Ci0gICAgICAgIHRoaXMuaGVhZGluZygpLnJlbmRlcigpOwor
ICAgICAgICB0aGlzLmhlYWRpbmcoKS51cGRhdGVSZW5kZXJpbmcoKTsKICAgICB9CiAKICAgICBz
dGF0aWMgaHRtbFRlbXBsYXRlKCkKSW5kZXg6IFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJs
aWMvdjMvcGFnZXMvcGFnZS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJzaXRlcy9wZXJmLndlYmtpdC5v
cmcvcHVibGljL3YzL3BhZ2VzL3BhZ2UuanMJKHJldmlzaW9uIDIxMDc1MSkKKysrIFdlYnNpdGVz
L3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvcGFnZXMvcGFnZS5qcwkod29ya2luZyBjb3B5KQpA
QCAtMTksNyArMTksNyBAQCBjbGFzcyBQYWdlIGV4dGVuZHMgQ29tcG9uZW50QmFzZSB7CiAgICAg
ICAgIGlmICh0aGlzLl9yb3V0ZXIpCiAgICAgICAgICAgICB0aGlzLl9yb3V0ZXIucGFnZURpZE9w
ZW4odGhpcyk7CiAgICAgICAgIHRoaXMudXBkYXRlRnJvbVNlcmlhbGl6ZWRTdGF0ZShzdGF0ZSwg
dHJ1ZSk7Ci0gICAgICAgIHRoaXMucmVuZGVyKCk7CisgICAgICAgIHRoaXMudXBkYXRlUmVuZGVy
aW5nKCk7CiAgICAgfQogCiAgICAgcmVuZGVyKCkKSW5kZXg6IFdlYnNpdGVzL3BlcmYud2Via2l0
Lm9yZy9wdWJsaWMvdjMvcGFnZXMvc3VtbWFyeS1wYWdlLmpzCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYnNp
dGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvcGFnZXMvc3VtbWFyeS1wYWdlLmpzCShyZXZp
c2lvbiAyMTA3NTEpCisrKyBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL3BhZ2Vz
L3N1bW1hcnktcGFnZS5qcwkod29ya2luZyBjb3B5KQpAQCAtMzYsNyArMzYsNyBAQCBjbGFzcyBT
dW1tYXJ5UGFnZSBleHRlbmRzIFBhZ2VXaXRoSGVhZGluCiAgICAgICAgIHZhciBjdXJyZW50ID0g
RGF0ZS5ub3coKTsKICAgICAgICAgdmFyIHRpbWVSYW5nZSA9IFtjdXJyZW50IC0gMjQgKiAzNjAw
ICogMTAwMCwgY3VycmVudF07CiAgICAgICAgIGZvciAodmFyIGdyb3VwIG9mIHRoaXMuX2NvbmZp
Z0dyb3VwcykKLSAgICAgICAgICAgIGdyb3VwLmZldGNoQW5kQ29tcHV0ZVN1bW1hcnkodGltZVJh
bmdlKS50aGVuKHRoaXMucmVuZGVyLmJpbmQodGhpcykpOworICAgICAgICAgICAgZ3JvdXAuZmV0
Y2hBbmRDb21wdXRlU3VtbWFyeSh0aW1lUmFuZ2UpLnRoZW4oKCkgPT4geyB0aGlzLnVwZGF0ZVJl
bmRlcmluZygpOyB9KTsKICAgICB9CiAKICAgICByZW5kZXIoKQpAQCAtMTA2LDcgKzEwNiw3IEBA
IGNsYXNzIFN1bW1hcnlQYWdlIGV4dGVuZHMgUGFnZVdpdGhIZWFkaW4KICAgICAgICAgdmFyIHJh
dGlvR3JhcGggPSBuZXcgUmF0aW9CYXJHcmFwaCgpOwogCiAgICAgICAgIGlmIChjb25maWd1cmF0
aW9uTGlzdC5sZW5ndGggPT0gMCkgewotICAgICAgICAgICAgdGhpcy5fcmVuZGVyUXVldWUucHVz
aChmdW5jdGlvbiAoKSB7IHJhdGlvR3JhcGgucmVuZGVyKCk7IH0pOworICAgICAgICAgICAgdGhp
cy5fcmVuZGVyUXVldWUucHVzaCgoKSA9PiB7IHJhdGlvR3JhcGgudXBkYXRlUmVuZGVyaW5nKCk7
IH0pOwogICAgICAgICAgICAgcmV0dXJuIGVsZW1lbnQoJ3RkJywgcmF0aW9HcmFwaCk7CiAgICAg
ICAgIH0KIApAQCAtMTI4LDcgKzEyOCw3IEBAIGNsYXNzIFN1bW1hcnlQYWdlIGV4dGVuZHMgUGFn
ZVdpdGhIZWFkaW4KICAgICAgICAgdmFyIHdhcm5pbmdUZXh0ID0gdGhpcy5fd2FybmluZ1RleHRG
b3JHcm91cChjb25maWd1cmF0aW9uR3JvdXApOwogICAgICAgICBhbmNob3IudGl0bGUgPSB3YXJu
aW5nVGV4dCB8fCAnT3BlbiBjaGFydHMnOwogICAgICAgICByYXRpb0dyYXBoLnVwZGF0ZShjb25m
aWd1cmF0aW9uR3JvdXAucmF0aW8oKSwgY29uZmlndXJhdGlvbkdyb3VwLmxhYmVsKCksICEhd2Fy
bmluZ1RleHQpOwotICAgICAgICByYXRpb0dyYXBoLnJlbmRlcigpOworICAgICAgICByYXRpb0dy
YXBoLnVwZGF0ZVJlbmRlcmluZygpOwogICAgIH0KIAogICAgIF93YXJuaW5nVGV4dEZvckdyb3Vw
KGNvbmZpZ3VyYXRpb25Hcm91cCkK
</data>
<flag name="review"
          id="320917"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
      

    </bug>

</bugzilla>