<?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>112645</bug_id>
          
          <creation_ts>2013-03-18 17:27:35 -0700</creation_ts>
          <short_desc>Dashboards: Introduce history namespace and unit tests.</short_desc>
          <delta_ts>2013-03-19 13:54:09 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tools / Tests</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Julie Parent">jparent</reporter>
          <assigned_to name="Julie Parent">jparent</assigned_to>
          <cc>abarth</cc>
    
    <cc>dpranke</cc>
    
    <cc>ojan</cc>
    
    <cc>tony</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>857781</commentid>
    <comment_count>0</comment_count>
    <who name="Julie Parent">jparent</who>
    <bug_when>2013-03-18 17:27:35 -0700</bug_when>
    <thetext>Dashboards: Introduce history namespace and unit tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>857790</commentid>
    <comment_count>1</comment_count>
      <attachid>193702</attachid>
    <who name="Julie Parent">jparent</who>
    <bug_when>2013-03-18 17:31:00 -0700</bug_when>
    <thetext>Created attachment 193702
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>858706</commentid>
    <comment_count>2</comment_count>
      <attachid>193702</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-19 13:54:06 -0700</bug_when>
    <thetext>Comment on attachment 193702
Patch

Clearing flags on attachment: 193702

Committed r146254: &lt;http://trac.webkit.org/changeset/146254&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>858707</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-19 13:54:09 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>193702</attachid>
            <date>2013-03-18 17:31:00 -0700</date>
            <delta_ts>2013-03-19 13:54:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-112645-20130318172652.patch</filename>
            <type>text/plain</type>
            <size>26169</size>
            <attacher name="Julie Parent">jparent</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ2MTQ0CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggM2E5MGJmMTdkNGU4ZmVkZjc2YWJjNjEwZjA4ZTRiN2Ix
MDFhN2FjNi4uNzFiNTVlZjEyMWYwODg5NDFiYzMwYWVlZmE2ZmY5MDgyYWJhY2YzOCAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3
IEBACisyMDEzLTAzLTE4ICBKdWxpZSBQYXJlbnQgIDxqcGFyZW50QGNocm9taXVtLm9yZz4KKwor
ICAgICAgICBEYXNoYm9hcmRzOiBJbnRyb2R1Y2UgaGlzdG9yeSBuYW1lc3BhY2UgYW5kIHVuaXQg
dGVzdHMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MTI2NDUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKyAgICAgICAgCisg
ICAgICAgIExheWluZyB0aGUgZnJhbWV3b3JrIGZvciBpbnRyb2R1Y2luZyB0aGUgbmV3IGhpc3Rv
cnkgb2JqZWN0IGFuZAorICAgICAgICBuYW1lc3BhY2UuICBUaGlzIG1vdmVzIG9ubHkgc3RhdGlj
IGZ1bmN0aW9ucyBpbnRvIHRoZSBoaXN0b3J5CisgICAgICAgIG5hbWVzcGFjZSwgYW5kIG1vdmVz
IGNvcnJlc3BvbmRpbmcgdW5pdCB0ZXN0cyBpbnRvIHNlcGVyYXRlCisgICAgICAgIHVuaXQgdGVz
dCBmaWxlLgorCisgICAgICAgICogVGVzdFJlc3VsdFNlcnZlci9zdGF0aWMtZGFzaGJvYXJkcy9h
Z2dyZWdhdGVfcmVzdWx0cy5odG1sOgorICAgICAgICAqIFRlc3RSZXN1bHRTZXJ2ZXIvc3RhdGlj
LWRhc2hib2FyZHMvZGFzaGJvYXJkX2Jhc2UuanM6CisgICAgICAgIChwYXJzZUNyb3NzRGFzaGJv
YXJkUGFyYW1ldGVycyk6CisgICAgICAgIChwYXJzZURhc2hib2FyZFNwZWNpZmljUGFyYW1ldGVy
cyk6CisgICAgICAgIChwYXJzZVBhcmFtZXRlcnMpOgorICAgICAgICAqIFRlc3RSZXN1bHRTZXJ2
ZXIvc3RhdGljLWRhc2hib2FyZHMvZmxha2luZXNzX2Rhc2hib2FyZC5odG1sOgorICAgICAgICAq
IFRlc3RSZXN1bHRTZXJ2ZXIvc3RhdGljLWRhc2hib2FyZHMvZmxha2luZXNzX2Rhc2hib2FyZC5q
czoKKyAgICAgICAgKC5zd2l0Y2gucmV0dXJuKToKKyAgICAgICAgKiBUZXN0UmVzdWx0U2VydmVy
L3N0YXRpYy1kYXNoYm9hcmRzL2ZsYWtpbmVzc19kYXNoYm9hcmRfdW5pdHRlc3RzLmpzOgorICAg
ICAgICAqIFRlc3RSZXN1bHRTZXJ2ZXIvc3RhdGljLWRhc2hib2FyZHMvaGlzdG9yeS5qczogQWRk
ZWQuCisgICAgICAgICogVGVzdFJlc3VsdFNlcnZlci9zdGF0aWMtZGFzaGJvYXJkcy9oaXN0b3J5
X3VuaXR0ZXN0cy5qczogQWRkZWQuCisgICAgICAgICogVGVzdFJlc3VsdFNlcnZlci9zdGF0aWMt
ZGFzaGJvYXJkcy9sb2FkZXIuanM6CisgICAgICAgICguKToKKyAgICAgICAgKiBUZXN0UmVzdWx0
U2VydmVyL3N0YXRpYy1kYXNoYm9hcmRzL3J1bi1lbWJlZGRlZC11bml0dGVzdHMuaHRtbDoKKyAg
ICAgICAgKiBUZXN0UmVzdWx0U2VydmVyL3N0YXRpYy1kYXNoYm9hcmRzL3J1bi11bml0dGVzdHMu
aHRtbDoKKyAgICAgICAgKiBUZXN0UmVzdWx0U2VydmVyL3N0YXRpYy1kYXNoYm9hcmRzL3RpbWVs
aW5lX2V4cGxvcmVyLmh0bWw6CisgICAgICAgICogVGVzdFJlc3VsdFNlcnZlci9zdGF0aWMtZGFz
aGJvYXJkcy90aW1lbGluZV9leHBsb3Jlci5qczoKKyAgICAgICAgKiBUZXN0UmVzdWx0U2VydmVy
L3N0YXRpYy1kYXNoYm9hcmRzL3RyZWVtYXAuaHRtbDoKKyAgICAgICAgKiBUZXN0UmVzdWx0U2Vy
dmVyL3N0YXRpYy1kYXNoYm9hcmRzL3RyZWVtYXAuanM6CisgICAgICAgICguc3dpdGNoLnJldHVy
bik6CisgICAgICAgICogVGVzdFJlc3VsdFNlcnZlci9zdGF0aWMtZGFzaGJvYXJkcy91aS5qczoK
KwogMjAxMy0wMy0xOCAgRGF2aWQgTGV2aW4gIDxsZXZpbkBjaHJvbWl1bS5vcmc+CiAKICAgICAg
ICAgSW1wbGVtZW50IGljb24gY2hhbmdlIG5vdGlmaWNhdGlvbiBkdW1wIGZvciBDaHJvbWl1bSdz
IHRlc3Qgc2hlbGwuCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0UmVzdWx0U2VydmVyL3N0YXRpYy1k
YXNoYm9hcmRzL2FnZ3JlZ2F0ZV9yZXN1bHRzLmh0bWwgYi9Ub29scy9UZXN0UmVzdWx0U2VydmVy
L3N0YXRpYy1kYXNoYm9hcmRzL2FnZ3JlZ2F0ZV9yZXN1bHRzLmh0bWwKaW5kZXggZjllNWUzODZi
M2ZkNTA3YmI4MGU5OWQwN2NlNTcxYjVhZjgwNTA0Yy4uMjc5MGRkY2ViOTg0YzIyNWIzOWE1MGEy
ZGVjOGEwMjM5YTZkN2FiMCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFJlc3VsdFNlcnZlci9zdGF0
aWMtZGFzaGJvYXJkcy9hZ2dyZWdhdGVfcmVzdWx0cy5odG1sCisrKyBiL1Rvb2xzL1Rlc3RSZXN1
bHRTZXJ2ZXIvc3RhdGljLWRhc2hib2FyZHMvYWdncmVnYXRlX3Jlc3VsdHMuaHRtbApAQCAtNTMs
NiArNTMsNyBAQCBpbWcgewogPHNjcmlwdCBzcmM9ImJ1aWxkZXJzLmpzIj48L3NjcmlwdD4KIDxz
Y3JpcHQgc3JjPSJsb2FkZXIuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9InN0cmluZy5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iaGlzdG9yeS5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNy
Yz0iZGFzaGJvYXJkX2Jhc2UuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9InVpLmpzIj48L3Nj
cmlwdD4KIDxzY3JpcHQgc3JjPSJhZ2dyZWdhdGVfcmVzdWx0cy5qcyI+PC9zY3JpcHQ+CmRpZmYg
LS1naXQgYS9Ub29scy9UZXN0UmVzdWx0U2VydmVyL3N0YXRpYy1kYXNoYm9hcmRzL2Rhc2hib2Fy
ZF9iYXNlLmpzIGIvVG9vbHMvVGVzdFJlc3VsdFNlcnZlci9zdGF0aWMtZGFzaGJvYXJkcy9kYXNo
Ym9hcmRfYmFzZS5qcwppbmRleCBhNjU2ZDg1YzYwZjg2MzIxNzI3ODkwZTFkNThiOTI2M2Q1MmRh
MWI1Li4wMmZkODhhYzJlOWEyODE5MjY5ZDkwM2E0ODdiNjEyZjQzMjg0ZTNhIDEwMDY0NAotLS0g
YS9Ub29scy9UZXN0UmVzdWx0U2VydmVyL3N0YXRpYy1kYXNoYm9hcmRzL2Rhc2hib2FyZF9iYXNl
LmpzCisrKyBiL1Rvb2xzL1Rlc3RSZXN1bHRTZXJ2ZXIvc3RhdGljLWRhc2hib2FyZHMvZGFzaGJv
YXJkX2Jhc2UuanMKQEAgLTE3MiwxMiArMTcyLDEyIEBAIGZ1bmN0aW9uIGhhbmRsZVZhbGlkSGFz
aFBhcmFtZXRlcldyYXBwZXIoa2V5LCB2YWx1ZSkKIHsKICAgICBzd2l0Y2goa2V5KSB7CiAgICAg
Y2FzZSAndGVzdFR5cGUnOgotICAgICAgICB2YWxpZGF0ZVBhcmFtZXRlcihnX2Nyb3NzRGFzaGJv
YXJkU3RhdGUsIGtleSwgdmFsdWUsCisgICAgICAgIGhpc3RvcnkudmFsaWRhdGVQYXJhbWV0ZXIo
Z19jcm9zc0Rhc2hib2FyZFN0YXRlLCBrZXksIHZhbHVlLAogICAgICAgICAgICAgZnVuY3Rpb24o
KSB7IHJldHVybiBURVNUX1RZUEVTLmluZGV4T2YodmFsdWUpICE9IC0xOyB9KTsKICAgICAgICAg
cmV0dXJuIHRydWU7CiAKICAgICBjYXNlICdncm91cCc6Ci0gICAgICAgIHZhbGlkYXRlUGFyYW1l
dGVyKGdfY3Jvc3NEYXNoYm9hcmRTdGF0ZSwga2V5LCB2YWx1ZSwKKyAgICAgICAgaGlzdG9yeS52
YWxpZGF0ZVBhcmFtZXRlcihnX2Nyb3NzRGFzaGJvYXJkU3RhdGUsIGtleSwgdmFsdWUsCiAgICAg
ICAgICAgICBmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlIGluIExBWU9V
VF9URVNUU19CVUlMREVSX0dST1VQUyB8fAogICAgICAgICAgICAgICAgICAgdmFsdWUgaW4gQ0hS
T01JVU1fR1BVX1RFU1RTX0JVSUxERVJfR1JPVVBTIHx8CkBAIC0yMDksNDQgKzIwOSw2IEBAIGZ1
bmN0aW9uICQoaWQpCiAgICAgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKTsKIH0K
IAotCi1mdW5jdGlvbiB2YWxpZGF0ZVBhcmFtZXRlcihzdGF0ZSwga2V5LCB2YWx1ZSwgdmFsaWRh
dGVGbikKLXsKLSAgICBpZiAodmFsaWRhdGVGbigpKQotICAgICAgICBzdGF0ZVtrZXldID0gdmFs
dWU7Ci0gICAgZWxzZQotICAgICAgICBjb25zb2xlLmxvZyhrZXkgKyAnIHZhbHVlIGlzIG5vdCB2
YWxpZDogJyArIHZhbHVlKTsKLX0KLQotZnVuY3Rpb24gcXVlcnlIYXNoQXNNYXAoKQotewotICAg
IHZhciBoYXNoID0gd2luZG93LmxvY2F0aW9uLmhhc2g7Ci0gICAgdmFyIHBhcmFtc0xpc3QgPSBo
YXNoID8gaGFzaC5zdWJzdHJpbmcoMSkuc3BsaXQoJyYnKSA6IFtdOwotICAgIHZhciBwYXJhbXNN
YXAgPSB7fTsKLSAgICB2YXIgaW52YWxpZEtleXMgPSBbXTsKLSAgICBmb3IgKHZhciBpID0gMDsg
aSA8IHBhcmFtc0xpc3QubGVuZ3RoOyBpKyspIHsKLSAgICAgICAgdmFyIHRoaXNQYXJhbSA9IHBh
cmFtc0xpc3RbaV0uc3BsaXQoJz0nKTsKLSAgICAgICAgaWYgKHRoaXNQYXJhbS5sZW5ndGggIT0g
MikgewotICAgICAgICAgICAgY29uc29sZS5sb2coJ0ludmFsaWQgcXVlcnkgcGFyYW1ldGVyOiAn
ICsgcGFyYW1zTGlzdFtpXSk7Ci0gICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgfQotCi0g
ICAgICAgIHBhcmFtc01hcFt0aGlzUGFyYW1bMF1dID0gZGVjb2RlVVJJQ29tcG9uZW50KHRoaXNQ
YXJhbVsxXSk7Ci0gICAgfQotCi0gICAgLy8gRklYTUU6IHJlbW92ZSBzdXBwb3J0IGZvciBtYXBw
aW5nIGZyb20gdGhlIG1hc3RlciBwYXJhbWV0ZXIgdG8gdGhlIGdyb3VwCi0gICAgLy8gb25lIG9u
Y2UgdGhlIHdhdGVyZmFsbCBzdGFydHMgdG8gcGFzcyBpbiB0aGUgYnVpbGRlciBuYW1lIGluc3Rl
YWQuCi0gICAgaWYgKHBhcmFtc01hcC5tYXN0ZXIpIHsKLSAgICAgICAgcGFyYW1zTWFwLmdyb3Vw
ID0gTEVHQUNZX0JVSUxERVJfTUFTVEVSU19UT19HUk9VUFNbcGFyYW1zTWFwLm1hc3Rlcl07Ci0g
ICAgICAgIGlmICghcGFyYW1zTWFwLmdyb3VwKQotICAgICAgICAgICAgY29uc29sZS5sb2coJ0VS
Uk9SOiBVbmtub3duIG1hc3RlciBuYW1lOiAnICsgcGFyYW1zTWFwLm1hc3Rlcik7Ci0gICAgICAg
IHdpbmRvdy5sb2NhdGlvbi5oYXNoID0gd2luZG93LmxvY2F0aW9uLmhhc2gucmVwbGFjZSgnbWFz
dGVyPScgKyBwYXJhbXNNYXAubWFzdGVyLCAnZ3JvdXA9JyArIHBhcmFtc01hcC5ncm91cCk7Ci0g
ICAgICAgIGRlbGV0ZSBwYXJhbXNNYXAubWFzdGVyOwotICAgIH0KLQotICAgIHJldHVybiBwYXJh
bXNNYXA7Ci19Ci0KIGZ1bmN0aW9uIHBhcnNlUGFyYW1ldGVyKHBhcmFtZXRlcnMsIGtleSkKIHsK
ICAgICBpZiAoIShrZXkgaW4gcGFyYW1ldGVycykpCkBAIC0yNTksMTcgKzIyMSwxNyBAQCBmdW5j
dGlvbiBwYXJzZVBhcmFtZXRlcihwYXJhbWV0ZXJzLCBrZXkpCiBmdW5jdGlvbiBwYXJzZUNyb3Nz
RGFzaGJvYXJkUGFyYW1ldGVycygpCiB7CiAgICAgZ19jcm9zc0Rhc2hib2FyZFN0YXRlID0ge307
Ci0gICAgdmFyIHBhcmFtZXRlcnMgPSBxdWVyeUhhc2hBc01hcCgpOworICAgIHZhciBwYXJhbWV0
ZXJzID0gaGlzdG9yeS5xdWVyeUhhc2hBc01hcCgpOwogICAgIGZvciAocGFyYW1ldGVyTmFtZSBp
biBnX2RlZmF1bHRDcm9zc0Rhc2hib2FyZFN0YXRlVmFsdWVzKQogICAgICAgICBwYXJzZVBhcmFt
ZXRlcihwYXJhbWV0ZXJzLCBwYXJhbWV0ZXJOYW1lKTsKIAotICAgIGZpbGxNaXNzaW5nVmFsdWVz
KGdfY3Jvc3NEYXNoYm9hcmRTdGF0ZSwgZ19kZWZhdWx0Q3Jvc3NEYXNoYm9hcmRTdGF0ZVZhbHVl
cyk7CisgICAgaGlzdG9yeS5maWxsTWlzc2luZ1ZhbHVlcyhnX2Nyb3NzRGFzaGJvYXJkU3RhdGUs
IGdfZGVmYXVsdENyb3NzRGFzaGJvYXJkU3RhdGVWYWx1ZXMpOwogfQogCiBmdW5jdGlvbiBwYXJz
ZURhc2hib2FyZFNwZWNpZmljUGFyYW1ldGVycygpCiB7CiAgICAgZ19jdXJyZW50U3RhdGUgPSB7
fTsKLSAgICB2YXIgcGFyYW1ldGVycyA9IHF1ZXJ5SGFzaEFzTWFwKCk7CisgICAgdmFyIHBhcmFt
ZXRlcnMgPSBoaXN0b3J5LnF1ZXJ5SGFzaEFzTWFwKCk7CiAgICAgZm9yIChwYXJhbWV0ZXJOYW1l
IGluIGdfZGVmYXVsdERhc2hib2FyZFNwZWNpZmljU3RhdGVWYWx1ZXMpCiAgICAgICAgIHBhcnNl
UGFyYW1ldGVyKHBhcmFtZXRlcnMsIHBhcmFtZXRlck5hbWUpOwogfQpAQCAtMjkzLDkgKzI1NSw5
IEBAIGZ1bmN0aW9uIHBhcnNlUGFyYW1ldGVycygpCiAgICAgfQogCiAgICAgcGFyc2VEYXNoYm9h
cmRTcGVjaWZpY1BhcmFtZXRlcnMoKTsKLSAgICB2YXIgZGFzaGJvYXJkU3BlY2lmaWNEaWZmU3Rh
dGUgPSBkaWZmU3RhdGVzKG9sZERhc2hib2FyZFNwZWNpZmljU3RhdGUsIGdfY3VycmVudFN0YXRl
KTsKKyAgICB2YXIgZGFzaGJvYXJkU3BlY2lmaWNEaWZmU3RhdGUgPSBoaXN0b3J5LmRpZmZTdGF0
ZXMob2xkRGFzaGJvYXJkU3BlY2lmaWNTdGF0ZSwgZ19jdXJyZW50U3RhdGUpOwogCi0gICAgZmls
bE1pc3NpbmdWYWx1ZXMoZ19jdXJyZW50U3RhdGUsIGdfZGVmYXVsdERhc2hib2FyZFNwZWNpZmlj
U3RhdGVWYWx1ZXMpOworICAgIGhpc3RvcnkuZmlsbE1pc3NpbmdWYWx1ZXMoZ19jdXJyZW50U3Rh
dGUsIGdfZGVmYXVsdERhc2hib2FyZFNwZWNpZmljU3RhdGVWYWx1ZXMpOwogCiAgICAgLy8gRklY
TUU6IGRhc2hib2FyZF9iYXNlIHNob3VsZG4ndCBrbm93IGFueXRoaW5nIGFib3V0IHNwZWNpZmlj
IGRhc2hib2FyZCBzcGVjaWZpYyBrZXlzLgogICAgIGlmIChkYXNoYm9hcmRTcGVjaWZpY0RpZmZT
dGF0ZS5idWlsZGVyKQpAQCAtMzA5LDIzICsyNzEsNiBAQCBmdW5jdGlvbiBwYXJzZVBhcmFtZXRl
cnMoKQogICAgIHJldHVybiBzaG91bGRHZW5lcmF0ZVBhZ2U7CiB9CiAKLWZ1bmN0aW9uIGRpZmZT
dGF0ZXMob2xkU3RhdGUsIG5ld1N0YXRlKQotewotICAgIC8vIElmIHRoZXJlIGlzIG5vIG9sZCBz
dGF0ZSwgZXZlcnl0aGluZyBpbiB0aGUgY3VycmVudCBzdGF0ZSBpcyBuZXcuCi0gICAgaWYgKCFv
bGRTdGF0ZSkKLSAgICAgICAgcmV0dXJuIG5ld1N0YXRlOwotCi0gICAgdmFyIGNoYW5nZWRQYXJh
bXMgPSB7fTsKLSAgICBmb3IgKGN1cktleSBpbiBuZXdTdGF0ZSkgewotICAgICAgICB2YXIgb2xk
VmFsID0gb2xkU3RhdGVbY3VyS2V5XTsKLSAgICAgICAgdmFyIG5ld1ZhbCA9IG5ld1N0YXRlW2N1
cktleV07Ci0gICAgICAgIC8vIEFkZCBuZXcga2V5cyBvciBjaGFuZ2VkIHZhbHVlcy4KLSAgICAg
ICAgaWYgKCFvbGRWYWwgfHwgb2xkVmFsICE9IG5ld1ZhbCkKLSAgICAgICAgICAgIGNoYW5nZWRQ
YXJhbXNbY3VyS2V5XSA9IG5ld1ZhbDsKLSAgICB9Ci0gICAgcmV0dXJuIGNoYW5nZWRQYXJhbXM7
Ci19Ci0KIGZ1bmN0aW9uIGRlZmF1bHRWYWx1ZShrZXkpCiB7CiAgICAgaWYgKGtleSBpbiBnX2Rl
ZmF1bHREYXNoYm9hcmRTcGVjaWZpY1N0YXRlVmFsdWVzKQpAQCAtMzMzLDE0ICsyNzgsNiBAQCBm
dW5jdGlvbiBkZWZhdWx0VmFsdWUoa2V5KQogICAgIHJldHVybiBnX2RlZmF1bHRDcm9zc0Rhc2hi
b2FyZFN0YXRlVmFsdWVzW2tleV07CiB9CiAKLWZ1bmN0aW9uIGZpbGxNaXNzaW5nVmFsdWVzKHRv
LCBmcm9tKQotewotICAgIGZvciAodmFyIHN0YXRlIGluIGZyb20pIHsKLSAgICAgICAgaWYgKCEo
c3RhdGUgaW4gdG8pKQotICAgICAgICAgICAgdG9bc3RhdGVdID0gZnJvbVtzdGF0ZV07Ci0gICAg
fQotfQotCiAvLyBGSVhNRTogUmVuYW1lIHRoaXMgdG8gZ19kYXNoYm9hcmRTcGVjaWZpY1N0YXRl
OwogdmFyIGdfY3VycmVudFN0YXRlID0ge307CiB2YXIgZ19jcm9zc0Rhc2hib2FyZFN0YXRlID0g
e307CkBAIC00MDEsMTEgKzMzOCw2IEBAIGZ1bmN0aW9uIGlzVGlwT2ZUcmVlV2ViS2l0QnVpbGRl
cigpCiB2YXIgZ19yZXN1bHRzQnlCdWlsZGVyID0ge307CiB2YXIgZ19leHBlY3RhdGlvbnNCeVBs
YXRmb3JtID0ge307CiAKLWZ1bmN0aW9uIGlzVHJlZU1hcCgpCi17Ci0gICAgcmV0dXJuIHN0cmlu
Zy5lbmRzV2l0aCh3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUsICd0cmVlbWFwLmh0bWwnKTsKLX0K
LQogZnVuY3Rpb24gaXNGbGFraW5lc3NEYXNoYm9hcmQoKQogewogICAgIHJldHVybiBzdHJpbmcu
ZW5kc1dpdGgod2luZG93LmxvY2F0aW9uLnBhdGhuYW1lLCAnZmxha2luZXNzX2Rhc2hib2FyZC5o
dG1sJyk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0UmVzdWx0U2VydmVyL3N0YXRpYy1kYXNoYm9h
cmRzL2ZsYWtpbmVzc19kYXNoYm9hcmQuaHRtbCBiL1Rvb2xzL1Rlc3RSZXN1bHRTZXJ2ZXIvc3Rh
dGljLWRhc2hib2FyZHMvZmxha2luZXNzX2Rhc2hib2FyZC5odG1sCmluZGV4IDBmZmUyNmZjYjc1
NTI5YzVhODJhOGY4NWZkMWNjN2Y1MmZhN2ZmOTQuLjcyNWJjYzg2MzljZGJkNDRiNTM2MTNjM2Y5
MTgwZGFjMWE0NjU2OWUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RSZXN1bHRTZXJ2ZXIvc3RhdGlj
LWRhc2hib2FyZHMvZmxha2luZXNzX2Rhc2hib2FyZC5odG1sCisrKyBiL1Rvb2xzL1Rlc3RSZXN1
bHRTZXJ2ZXIvc3RhdGljLWRhc2hib2FyZHMvZmxha2luZXNzX2Rhc2hib2FyZC5odG1sCkBAIC0z
Myw2ICszMyw3IEBAIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiA8c2NyaXB0IHNyYz0iYnVpbGRlcnMuanMiPjwvc2Ny
aXB0PgogPHNjcmlwdCBzcmM9ImxvYWRlci5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0ic3Ry
aW5nLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJoaXN0b3J5LmpzIj48L3NjcmlwdD4KIDxz
Y3JpcHQgc3JjPSJkYXNoYm9hcmRfYmFzZS5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0idWku
anMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9ImZsYWtpbmVzc19kYXNoYm9hcmQuanMiPjwvc2Ny
aXB0PgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFJlc3VsdFNlcnZlci9zdGF0aWMtZGFzaGJvYXJk
cy9mbGFraW5lc3NfZGFzaGJvYXJkLmpzIGIvVG9vbHMvVGVzdFJlc3VsdFNlcnZlci9zdGF0aWMt
ZGFzaGJvYXJkcy9mbGFraW5lc3NfZGFzaGJvYXJkLmpzCmluZGV4IDA0ZDVkY2VmYTk3NGE4NDY4
YjJkYjQ5Yzc2NmYyYmQ3NWNhOTI4Y2YuLmQyNjYxYjNjODJkNGUwMzM0YTUwMmMzMDQ5NzllYzM3
YzZhMjdkMGYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RSZXN1bHRTZXJ2ZXIvc3RhdGljLWRhc2hi
b2FyZHMvZmxha2luZXNzX2Rhc2hib2FyZC5qcworKysgYi9Ub29scy9UZXN0UmVzdWx0U2VydmVy
L3N0YXRpYy1kYXNoYm9hcmRzL2ZsYWtpbmVzc19kYXNoYm9hcmQuanMKQEAgLTE2Niw3ICsxNjYs
NyBAQCBmdW5jdGlvbiBoYW5kbGVWYWxpZEhhc2hQYXJhbWV0ZXIoa2V5LCB2YWx1ZSkKIHsKICAg
ICBzd2l0Y2goa2V5KSB7CiAgICAgY2FzZSAndGVzdHMnOgotICAgICAgICB2YWxpZGF0ZVBhcmFt
ZXRlcihnX2N1cnJlbnRTdGF0ZSwga2V5LCB2YWx1ZSwKKyAgICAgICAgaGlzdG9yeS52YWxpZGF0
ZVBhcmFtZXRlcihnX2N1cnJlbnRTdGF0ZSwga2V5LCB2YWx1ZSwKICAgICAgICAgICAgIGZ1bmN0
aW9uKCkgewogICAgICAgICAgICAgICAgIHJldHVybiBzdHJpbmcuaXNWYWxpZE5hbWUodmFsdWUp
OwogICAgICAgICAgICAgfSk7CkBAIC0xNzQsNyArMTc0LDcgQEAgZnVuY3Rpb24gaGFuZGxlVmFs
aWRIYXNoUGFyYW1ldGVyKGtleSwgdmFsdWUpCiAKICAgICBjYXNlICdyZXN1bHQnOgogICAgICAg
ICB2YWx1ZSA9IHZhbHVlLnRvVXBwZXJDYXNlKCk7Ci0gICAgICAgIHZhbGlkYXRlUGFyYW1ldGVy
KGdfY3VycmVudFN0YXRlLCBrZXksIHZhbHVlLAorICAgICAgICBoaXN0b3J5LnZhbGlkYXRlUGFy
YW1ldGVyKGdfY3VycmVudFN0YXRlLCBrZXksIHZhbHVlLAogICAgICAgICAgICAgZnVuY3Rpb24o
KSB7CiAgICAgICAgICAgICAgICAgZm9yICh2YXIgcmVzdWx0IGluIExBWU9VVF9URVNUX0VYUEVD
VEFUSU9OU19NQVBfKSB7CiAgICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZSA9PSBMQVlPVVRf
VEVTVF9FWFBFQ1RBVElPTlNfTUFQX1tyZXN1bHRdKQpAQCAtMTg1LDcgKzE4NSw3IEBAIGZ1bmN0
aW9uIGhhbmRsZVZhbGlkSGFzaFBhcmFtZXRlcihrZXksIHZhbHVlKQogICAgICAgICByZXR1cm4g
dHJ1ZTsKIAogICAgIGNhc2UgJ2J1aWxkZXInOgotICAgICAgICB2YWxpZGF0ZVBhcmFtZXRlcihn
X2N1cnJlbnRTdGF0ZSwga2V5LCB2YWx1ZSwKKyAgICAgICAgaGlzdG9yeS52YWxpZGF0ZVBhcmFt
ZXRlcihnX2N1cnJlbnRTdGF0ZSwga2V5LCB2YWx1ZSwKICAgICAgICAgICAgIGZ1bmN0aW9uKCkg
ewogICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZSBpbiBjdXJyZW50QnVpbGRlcnMoKTsKICAg
ICAgICAgICAgIH0pOwpAQCAtMTkzLDcgKzE5Myw3IEBAIGZ1bmN0aW9uIGhhbmRsZVZhbGlkSGFz
aFBhcmFtZXRlcihrZXksIHZhbHVlKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAogICAgIGNhc2Ug
J3NvcnRDb2x1bW4nOgotICAgICAgICB2YWxpZGF0ZVBhcmFtZXRlcihnX2N1cnJlbnRTdGF0ZSwg
a2V5LCB2YWx1ZSwKKyAgICAgICAgaGlzdG9yeS52YWxpZGF0ZVBhcmFtZXRlcihnX2N1cnJlbnRT
dGF0ZSwga2V5LCB2YWx1ZSwKICAgICAgICAgICAgIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAg
ICAgIC8vIEdldCBhbGwgcG9zc2libGUgaGVhZGVycyBzaW5jZSB0aGUgYWN0dWFsIHVzZWQgc2V0
IG9mIGhlYWRlcnMKICAgICAgICAgICAgICAgICAvLyBkZXBlbmRzIG9uIHRoZSB2YWx1ZXMgaW4g
Z19jdXJyZW50U3RhdGUsIHdoaWNoIGFyZSBjdXJyZW50bHkgYmVpbmcgc2V0LgpAQCAtMjA3LDcg
KzIwNyw3IEBAIGZ1bmN0aW9uIGhhbmRsZVZhbGlkSGFzaFBhcmFtZXRlcihrZXksIHZhbHVlKQog
ICAgICAgICByZXR1cm4gdHJ1ZTsKIAogICAgIGNhc2UgJ3NvcnRPcmRlcic6Ci0gICAgICAgIHZh
bGlkYXRlUGFyYW1ldGVyKGdfY3VycmVudFN0YXRlLCBrZXksIHZhbHVlLAorICAgICAgICBoaXN0
b3J5LnZhbGlkYXRlUGFyYW1ldGVyKGdfY3VycmVudFN0YXRlLCBrZXksIHZhbHVlLAogICAgICAg
ICAgICAgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlID09IEZPUldB
UkQgfHwgdmFsdWUgPT0gQkFDS1dBUkQ7CiAgICAgICAgICAgICB9KTsKQEAgLTIxNiw3ICsyMTYs
NyBAQCBmdW5jdGlvbiBoYW5kbGVWYWxpZEhhc2hQYXJhbWV0ZXIoa2V5LCB2YWx1ZSkKICAgICBj
YXNlICdyZXN1bHRzSGVpZ2h0JzoKICAgICBjYXNlICd1cGRhdGVJbmRleCc6CiAgICAgY2FzZSAn
cmV2aXNpb24nOgotICAgICAgICB2YWxpZGF0ZVBhcmFtZXRlcihnX2N1cnJlbnRTdGF0ZSwga2V5
LCBOdW1iZXIodmFsdWUpLAorICAgICAgICBoaXN0b3J5LnZhbGlkYXRlUGFyYW1ldGVyKGdfY3Vy
cmVudFN0YXRlLCBrZXksIE51bWJlcih2YWx1ZSksCiAgICAgICAgICAgICBmdW5jdGlvbigpIHsK
ICAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWUubWF0Y2goL15cZCskLyk7CiAgICAgICAgICAg
ICB9KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RSZXN1bHRTZXJ2ZXIvc3RhdGljLWRhc2hib2Fy
ZHMvZmxha2luZXNzX2Rhc2hib2FyZF91bml0dGVzdHMuanMgYi9Ub29scy9UZXN0UmVzdWx0U2Vy
dmVyL3N0YXRpYy1kYXNoYm9hcmRzL2ZsYWtpbmVzc19kYXNoYm9hcmRfdW5pdHRlc3RzLmpzCmlu
ZGV4IDdlNWRlZmE4ZmE3YjUyMzI4MDM2YmIxYzhjYzgzN2U2YWJiNjE3ZDguLjM4ZGMwYzIyOTk0
ZGE2OTA0YWU2NGZlOTJlYTk1YjdiMzBkZGQ3NjEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RSZXN1
bHRTZXJ2ZXIvc3RhdGljLWRhc2hib2FyZHMvZmxha2luZXNzX2Rhc2hib2FyZF91bml0dGVzdHMu
anMKKysrIGIvVG9vbHMvVGVzdFJlc3VsdFNlcnZlci9zdGF0aWMtZGFzaGJvYXJkcy9mbGFraW5l
c3NfZGFzaGJvYXJkX3VuaXR0ZXN0cy5qcwpAQCAtNTQ1LDExICs1NDUsNiBAQCB0ZXN0KCdpc0No
cm9taXVtV2Via2l0RGVwc1Rlc3RSdW5uZXInLCAxLCBmdW5jdGlvbigpIHsKICAgICBkZWVwRXF1
YWwoYnVpbGRlckxpc3QuZmlsdGVyKGlzQ2hyb21pdW1XZWJraXREZXBzVGVzdFJ1bm5lciksIGV4
cGVjdGVkQnVpbGRlcnMpOwogfSk7CiAKLXRlc3QoJ3F1ZXJ5SGFzaEFzTWFwJywgMiwgZnVuY3Rp
b24oKSB7Ci0gICAgZXF1YWwod2luZG93LmxvY2F0aW9uLmhhc2gsICcjdXNlVGVzdERhdGE9dHJ1
ZScpOwotICAgIGRlZXBFcXVhbChxdWVyeUhhc2hBc01hcCgpLCB7dXNlVGVzdERhdGE6ICd0cnVl
J30pOwotfSk7Ci0KIHRlc3QoJ3BhcnNlQ3Jvc3NEYXNoYm9hcmRQYXJhbWV0ZXJzJywgMiwgZnVu
Y3Rpb24oKSB7CiAgICAgZXF1YWwod2luZG93LmxvY2F0aW9uLmhhc2gsICcjdXNlVGVzdERhdGE9
dHJ1ZScpOwogICAgIHBhcnNlQ3Jvc3NEYXNoYm9hcmRQYXJhbWV0ZXJzKCk7CkBAIC01NjIsMjUg
KzU1Nyw2IEBAIHRlc3QoJ3BhcnNlQ3Jvc3NEYXNoYm9hcmRQYXJhbWV0ZXJzJywgMiwgZnVuY3Rp
b24oKSB7CiAgICAgZGVlcEVxdWFsKGdfY3Jvc3NEYXNoYm9hcmRTdGF0ZSwgZXhwZWN0ZWRQYXJh
bWV0ZXJzKTsKIH0pOwogCi10ZXN0KCdkaWZmU3RhdGVzJywgNSwgZnVuY3Rpb24oKSB7Ci0gICAg
dmFyIG5ld1N0YXRlID0ge2E6IDEsIGI6IDJ9OwotICAgIGRlZXBFcXVhbChkaWZmU3RhdGVzKG51
bGwsIG5ld1N0YXRlKSwgbmV3U3RhdGUpOwotCi0gICAgdmFyIG9sZFN0YXRlID0ge2E6IDF9Owot
ICAgIGRlZXBFcXVhbChkaWZmU3RhdGVzKG9sZFN0YXRlLCBuZXdTdGF0ZSksIHtiOiAyfSk7Ci0K
LSAgICAvLyBGSVhNRTogVGhpcyBpcyBraW5kIG9mIHdlaXJkLiBJIHRoaW5rIHRoZSBleGlzdGlu
ZyB1c2VycyBvZiB0aGlzIGNvZGUgd29yayBjb3JyZWN0bHksIGJ1dCBpdCdzIGEgY29uZnVzaW5n
IHJlc3VsdC4KLSAgICB2YXIgb2xkU3RhdGUgPSB7YzogMX07Ci0gICAgZGVlcEVxdWFsKGRpZmZT
dGF0ZXMob2xkU3RhdGUsIG5ld1N0YXRlKSwge2E6MSwgYjogMn0pOwotCi0gICAgdmFyIG9sZFN0
YXRlID0ge2E6IDEsIGI6IDJ9OwotICAgIGRlZXBFcXVhbChkaWZmU3RhdGVzKG9sZFN0YXRlLCBu
ZXdTdGF0ZSksIHt9KTsKLQotICAgIHZhciBvbGRTdGF0ZSA9IHthOiAyLCBiOiAzfTsKLSAgICBk
ZWVwRXF1YWwoZGlmZlN0YXRlcyhvbGRTdGF0ZSwgbmV3U3RhdGUpLCB7YTogMSwgYjogMn0pOwot
fSk7Ci0KLQogdGVzdCgnYnVpbGRlckdyb3VwSXNUb1RXZWJLaXRBdHRyaWJ1dGUnLCAyLCBmdW5j
dGlvbigpIHsKICAgICB2YXIgZHVtbXlNYXN0ZXIgPSBuZXcgYnVpbGRlcnMuQnVpbGRlck1hc3Rl
cignQ2hyb21pdW0nLCAnZHVtbXl1cmwnLCB7J2xheW91dC10ZXN0cyc6IHsnYnVpbGRlcnMnOiBb
J1dlYktpdCBMaW51eCcsICdXZWJLaXQgTGludXggKGRiZyknLCAnV2ViS2l0IE1hYzEwLjcnLCAn
V2ViS2l0IFdpbiddfX0pOwogICAgIHZhciB0ZXN0QnVpbGRlckdyb3VwcyA9IHsKZGlmZiAtLWdp
dCBhL1Rvb2xzL1Rlc3RSZXN1bHRTZXJ2ZXIvc3RhdGljLWRhc2hib2FyZHMvaGlzdG9yeS5qcyBi
L1Rvb2xzL1Rlc3RSZXN1bHRTZXJ2ZXIvc3RhdGljLWRhc2hib2FyZHMvaGlzdG9yeS5qcwpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4yOGQyM2RkMjRiZjJmMjVjYzdiYmE4MDU1MjcwYmNiMTRmNmRkNWIzCi0tLSAvZGV2
L251bGwKKysrIGIvVG9vbHMvVGVzdFJlc3VsdFNlcnZlci9zdGF0aWMtZGFzaGJvYXJkcy9oaXN0
b3J5LmpzCkBAIC0wLDAgKzEsMTA0IEBACisvLyBDb3B5cmlnaHQgKEMpIDIwMTMgR29vZ2xlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vCisvLyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKy8vIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBh
cmUKKy8vIG1ldDoKKy8vCisvLyAgICAgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKy8vIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKy8vICAgICAgICAg
KiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
CisvLyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyCisvLyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisvLyBkaXN0cmlidXRpb24uCisvLyAgICAgICAg
ICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwor
Ly8gY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0
cyBkZXJpdmVkIGZyb20KKy8vIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3
cml0dGVuIHBlcm1pc3Npb24uCisvLworLy8gVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBU
SEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworLy8gIkFTIElTIiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKy8vIExJ
TUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUgorLy8gQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKy8vIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorLy8gU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAor
Ly8gTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsCisvLyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKy8vIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKy8vIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorLy8gT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworCit2YXIgaGlzdG9yeSA9IGhpc3RvcnkgfHwge307
CisKKyhmdW5jdGlvbigpIHsKKworaGlzdG9yeS52YWxpZGF0ZVBhcmFtZXRlciA9IGZ1bmN0aW9u
KHN0YXRlLCBrZXksIHZhbHVlLCB2YWxpZGF0ZUZuKQoreworICAgIGlmICh2YWxpZGF0ZUZuKCkp
CisgICAgICAgIHN0YXRlW2tleV0gPSB2YWx1ZTsKKyAgICBlbHNlCisgICAgICAgIGNvbnNvbGUu
bG9nKGtleSArICcgdmFsdWUgaXMgbm90IHZhbGlkOiAnICsgdmFsdWUpOworfQorCitoaXN0b3J5
LmlzVHJlZU1hcCA9IGZ1bmN0aW9uKCkKK3sKKyAgICByZXR1cm4gc3RyaW5nLmVuZHNXaXRoKHdp
bmRvdy5sb2NhdGlvbi5wYXRobmFtZSwgJ3RyZWVtYXAuaHRtbCcpOworfQorCisvLyBUT0RPKGpw
YXJlbnQpOiBNYWtlIHByaXZhdGUgb25jZSBjYWxsZXJzIG1vdmUgaGVyZS4KK2hpc3RvcnkucXVl
cnlIYXNoQXNNYXAgPSBmdW5jdGlvbigpCit7CisgICAgdmFyIGhhc2ggPSB3aW5kb3cubG9jYXRp
b24uaGFzaDsKKyAgICB2YXIgcGFyYW1zTGlzdCA9IGhhc2ggPyBoYXNoLnN1YnN0cmluZygxKS5z
cGxpdCgnJicpIDogW107CisgICAgdmFyIHBhcmFtc01hcCA9IHt9OworICAgIHZhciBpbnZhbGlk
S2V5cyA9IFtdOworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcGFyYW1zTGlzdC5sZW5ndGg7IGkr
KykgeworICAgICAgICB2YXIgdGhpc1BhcmFtID0gcGFyYW1zTGlzdFtpXS5zcGxpdCgnPScpOwor
ICAgICAgICBpZiAodGhpc1BhcmFtLmxlbmd0aCAhPSAyKSB7CisgICAgICAgICAgICBjb25zb2xl
LmxvZygnSW52YWxpZCBxdWVyeSBwYXJhbWV0ZXI6ICcgKyBwYXJhbXNMaXN0W2ldKTsKKyAgICAg
ICAgICAgIGNvbnRpbnVlOworICAgICAgICB9CisKKyAgICAgICAgcGFyYW1zTWFwW3RoaXNQYXJh
bVswXV0gPSBkZWNvZGVVUklDb21wb25lbnQodGhpc1BhcmFtWzFdKTsKKyAgICB9CisKKyAgICAv
LyBGSVhNRTogcmVtb3ZlIHN1cHBvcnQgZm9yIG1hcHBpbmcgZnJvbSB0aGUgbWFzdGVyIHBhcmFt
ZXRlciB0byB0aGUgZ3JvdXAKKyAgICAvLyBvbmUgb25jZSB0aGUgd2F0ZXJmYWxsIHN0YXJ0cyB0
byBwYXNzIGluIHRoZSBidWlsZGVyIG5hbWUgaW5zdGVhZC4KKyAgICBpZiAocGFyYW1zTWFwLm1h
c3RlcikgeworICAgICAgICBwYXJhbXNNYXAuZ3JvdXAgPSBMRUdBQ1lfQlVJTERFUl9NQVNURVJT
X1RPX0dST1VQU1twYXJhbXNNYXAubWFzdGVyXTsKKyAgICAgICAgaWYgKCFwYXJhbXNNYXAuZ3Jv
dXApCisgICAgICAgICAgICBjb25zb2xlLmxvZygnRVJST1I6IFVua25vd24gbWFzdGVyIG5hbWU6
ICcgKyBwYXJhbXNNYXAubWFzdGVyKTsKKyAgICAgICAgd2luZG93LmxvY2F0aW9uLmhhc2ggPSB3
aW5kb3cubG9jYXRpb24uaGFzaC5yZXBsYWNlKCdtYXN0ZXI9JyArIHBhcmFtc01hcC5tYXN0ZXIs
ICdncm91cD0nICsgcGFyYW1zTWFwLmdyb3VwKTsKKyAgICAgICAgZGVsZXRlIHBhcmFtc01hcC5t
YXN0ZXI7CisgICAgfQorCisgICAgcmV0dXJuIHBhcmFtc01hcDsKK30KKworLy8gVE9ETyhqcGFy
ZW50KTogTWFrZSBwcml2YXRlIG9uY2UgY2FsbGVycyBtb3ZlIGhlcmUuCitoaXN0b3J5LmRpZmZT
dGF0ZXMgPSBmdW5jdGlvbihvbGRTdGF0ZSwgbmV3U3RhdGUpCit7CisgICAgLy8gSWYgdGhlcmUg
aXMgbm8gb2xkIHN0YXRlLCBldmVyeXRoaW5nIGluIHRoZSBjdXJyZW50IHN0YXRlIGlzIG5ldy4K
KyAgICBpZiAoIW9sZFN0YXRlKQorICAgICAgICByZXR1cm4gbmV3U3RhdGU7CisKKyAgICB2YXIg
Y2hhbmdlZFBhcmFtcyA9IHt9OworICAgIGZvciAoY3VyS2V5IGluIG5ld1N0YXRlKSB7CisgICAg
ICAgIHZhciBvbGRWYWwgPSBvbGRTdGF0ZVtjdXJLZXldOworICAgICAgICB2YXIgbmV3VmFsID0g
bmV3U3RhdGVbY3VyS2V5XTsKKyAgICAgICAgLy8gQWRkIG5ldyBrZXlzIG9yIGNoYW5nZWQgdmFs
dWVzLgorICAgICAgICBpZiAoIW9sZFZhbCB8fCBvbGRWYWwgIT0gbmV3VmFsKQorICAgICAgICAg
ICAgY2hhbmdlZFBhcmFtc1tjdXJLZXldID0gbmV3VmFsOworICAgIH0KKyAgICByZXR1cm4gY2hh
bmdlZFBhcmFtczsKK30KKworLy8gVE9ETyhqcGFyZW50KTogTWFrZSBwcml2YXRlIG9uY2UgY2Fs
bGVycyBtb3ZlIGhlcmUuCitoaXN0b3J5LmZpbGxNaXNzaW5nVmFsdWVzID0gZnVuY3Rpb24odG8s
IGZyb20pCit7CisgICAgZm9yICh2YXIgc3RhdGUgaW4gZnJvbSkgeworICAgICAgICBpZiAoIShz
dGF0ZSBpbiB0bykpCisgICAgICAgICAgICB0b1tzdGF0ZV0gPSBmcm9tW3N0YXRlXTsKKyAgICB9
Cit9CisKK30pKCk7ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvVG9v
bHMvVGVzdFJlc3VsdFNlcnZlci9zdGF0aWMtZGFzaGJvYXJkcy9oaXN0b3J5X3VuaXR0ZXN0cy5q
cyBiL1Rvb2xzL1Rlc3RSZXN1bHRTZXJ2ZXIvc3RhdGljLWRhc2hib2FyZHMvaGlzdG9yeV91bml0
dGVzdHMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNTFjMDJjNDUyNDk4MjVlMmYwZjkxODA5ZDcxNzBjZThiYTJi
MzcxZQotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RSZXN1bHRTZXJ2ZXIvc3RhdGljLWRh
c2hib2FyZHMvaGlzdG9yeV91bml0dGVzdHMuanMKQEAgLTAsMCArMSw1MCBAQAorLy8gQ29weXJp
Z2h0IChDKSAyMDEzIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLworLy8gUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisvLyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisvLyBtZXQ6CisvLworLy8gICAgKiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorLy8g
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorLy8gICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlCisvLyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisvLyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisvLyBkaXN0cmlidXRpb24u
CisvLyAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBv
ZiBpdHMKKy8vIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUg
cHJvZHVjdHMgZGVyaXZlZCBmcm9tCisvLyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMg
cHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorLy8KKy8vIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKy8vICJBUyBJUyIg
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
CisvLyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IKKy8vIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisvLyBPV05FUiBPUiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKy8vIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QKKy8vIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLAorLy8gREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisvLyBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisv
LyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKy8vIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKK3Rlc3QoJ3F1ZXJ5SGFzaEFzTWFwJywg
MiwgZnVuY3Rpb24oKSB7CisgICAgZXF1YWwod2luZG93LmxvY2F0aW9uLmhhc2gsICcjdXNlVGVz
dERhdGE9dHJ1ZScpOworICAgIGRlZXBFcXVhbChoaXN0b3J5LnF1ZXJ5SGFzaEFzTWFwKCksIHt1
c2VUZXN0RGF0YTogJ3RydWUnfSk7Cit9KTsKKwordGVzdCgnZGlmZlN0YXRlcycsIDUsIGZ1bmN0
aW9uKCkgeworICAgIHZhciBuZXdTdGF0ZSA9IHthOiAxLCBiOiAyfTsKKyAgICBkZWVwRXF1YWwo
aGlzdG9yeS5kaWZmU3RhdGVzKG51bGwsIG5ld1N0YXRlKSwgbmV3U3RhdGUpOworCisgICAgdmFy
IG9sZFN0YXRlID0ge2E6IDF9OworICAgIGRlZXBFcXVhbChoaXN0b3J5LmRpZmZTdGF0ZXMob2xk
U3RhdGUsIG5ld1N0YXRlKSwge2I6IDJ9KTsKKworICAgIC8vIEZJWE1FOiBUaGlzIGlzIGtpbmQg
b2Ygd2VpcmQuIEkgdGhpbmsgdGhlIGV4aXN0aW5nIHVzZXJzIG9mIHRoaXMgY29kZSB3b3JrIGNv
cnJlY3RseSwgYnV0IGl0J3MgYSBjb25mdXNpbmcgcmVzdWx0LgorICAgIHZhciBvbGRTdGF0ZSA9
IHtjOiAxfTsKKyAgICBkZWVwRXF1YWwoaGlzdG9yeS5kaWZmU3RhdGVzKG9sZFN0YXRlLCBuZXdT
dGF0ZSksIHthOjEsIGI6IDJ9KTsKKworICAgIHZhciBvbGRTdGF0ZSA9IHthOiAxLCBiOiAyfTsK
KyAgICBkZWVwRXF1YWwoaGlzdG9yeS5kaWZmU3RhdGVzKG9sZFN0YXRlLCBuZXdTdGF0ZSksIHt9
KTsKKworICAgIHZhciBvbGRTdGF0ZSA9IHthOiAyLCBiOiAzfTsKKyAgICBkZWVwRXF1YWwoaGlz
dG9yeS5kaWZmU3RhdGVzKG9sZFN0YXRlLCBuZXdTdGF0ZSksIHthOiAxLCBiOiAyfSk7Cit9KTsK
XCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0UmVzdWx0
U2VydmVyL3N0YXRpYy1kYXNoYm9hcmRzL2xvYWRlci5qcyBiL1Rvb2xzL1Rlc3RSZXN1bHRTZXJ2
ZXIvc3RhdGljLWRhc2hib2FyZHMvbG9hZGVyLmpzCmluZGV4IGM2M2I5NGRhNTExNDlmMjAyMzgw
YTdjMWM1YTI3M2M2OTc0NDkyZWYuLmE3YjNiMTg5OTkzYmNmMzY0MjE4OGU3YTJhZmI4YzE5OGZh
MmM3YmYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RSZXN1bHRTZXJ2ZXIvc3RhdGljLWRhc2hib2Fy
ZHMvbG9hZGVyLmpzCisrKyBiL1Rvb2xzL1Rlc3RSZXN1bHRTZXJ2ZXIvc3RhdGljLWRhc2hib2Fy
ZHMvbG9hZGVyLmpzCkBAIC0xMjMsNyArMTIzLDcgQEAgbG9hZGVyLkxvYWRlci5wcm90b3R5cGUg
PSB7CiAgICAgX2xvYWRSZXN1bHRzRmlsZUZvckJ1aWxkZXI6IGZ1bmN0aW9uKGJ1aWxkZXJOYW1l
KQogICAgIHsKICAgICAgICAgdmFyIHJlc3VsdHNGaWxlbmFtZTsKLSAgICAgICAgaWYgKGlzVHJl
ZU1hcCgpKQorICAgICAgICBpZiAoaGlzdG9yeS5pc1RyZWVNYXAoKSkKICAgICAgICAgICAgIHJl
c3VsdHNGaWxlbmFtZSA9ICd0aW1lc19tcy5qc29uJzsKICAgICAgICAgZWxzZSBpZiAoZ19jcm9z
c0Rhc2hib2FyZFN0YXRlLnNob3dBbGxSdW5zKQogICAgICAgICAgICAgcmVzdWx0c0ZpbGVuYW1l
ID0gJ3Jlc3VsdHMuanNvbic7CkBAIC0xNDEsNyArMTQxLDcgQEAgbG9hZGVyLkxvYWRlci5wcm90
b3R5cGUgPSB7CiAgICAgfSwKICAgICBfaGFuZGxlUmVzdWx0c0ZpbGVMb2FkZWQ6IGZ1bmN0aW9u
KGJ1aWxkZXJOYW1lLCBmaWxlRGF0YSkKICAgICB7Ci0gICAgICAgIGlmIChpc1RyZWVNYXAoKSkK
KyAgICAgICAgaWYgKGhpc3RvcnkuaXNUcmVlTWFwKCkpCiAgICAgICAgICAgICB0aGlzLl9wcm9j
ZXNzVGltZXNKU09ORGF0YShidWlsZGVyTmFtZSwgZmlsZURhdGEpOwogICAgICAgICBlbHNlCiAg
ICAgICAgICAgICB0aGlzLl9wcm9jZXNzUmVzdWx0c0pTT05EYXRhKGJ1aWxkZXJOYW1lLCBmaWxl
RGF0YSk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0UmVzdWx0U2VydmVyL3N0YXRpYy1kYXNoYm9h
cmRzL3J1bi1lbWJlZGRlZC11bml0dGVzdHMuaHRtbCBiL1Rvb2xzL1Rlc3RSZXN1bHRTZXJ2ZXIv
c3RhdGljLWRhc2hib2FyZHMvcnVuLWVtYmVkZGVkLXVuaXR0ZXN0cy5odG1sCmluZGV4IGIxOTFj
MGJhYWRiM2QwNTViOWRiNzY3MWY4YTlhZjc0NDhlNDgwN2QuLjE2MWVjYmI2NDY2MmQzOTRlZTk4
NDc3M2M0NWVmZGI1Y2E3MmU5NzggMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RSZXN1bHRTZXJ2ZXIv
c3RhdGljLWRhc2hib2FyZHMvcnVuLWVtYmVkZGVkLXVuaXR0ZXN0cy5odG1sCisrKyBiL1Rvb2xz
L1Rlc3RSZXN1bHRTZXJ2ZXIvc3RhdGljLWRhc2hib2FyZHMvcnVuLWVtYmVkZGVkLXVuaXR0ZXN0
cy5odG1sCkBAIC00OCw2ICs0OCw4IEBAIHdpbmRvdy5wYXJlbnQgPSBudWxsOwogPC9zY3JpcHQ+
CiAKIDxzY3JpcHQgc3JjPSJzdHJpbmcuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Imhpc3Rv
cnkuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Imhpc3RvcnlfdW5pdHRlc3RzLmpzIj48L3Nj
cmlwdD4KIDxzY3JpcHQgc3JjPSJkYXNoYm9hcmRfYmFzZS5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0
IHNyYz0idWkuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9ImxvYWRlci5qcyI+PC9zY3JpcHQ+
CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0UmVzdWx0U2VydmVyL3N0YXRpYy1kYXNoYm9hcmRzL3J1
bi11bml0dGVzdHMuaHRtbCBiL1Rvb2xzL1Rlc3RSZXN1bHRTZXJ2ZXIvc3RhdGljLWRhc2hib2Fy
ZHMvcnVuLXVuaXR0ZXN0cy5odG1sCmluZGV4IDBmY2E3MDZhZTkwOGI4MmQ4M2MyMjA1ZWM2ZTM2
ZWE3NGJhMjhjMzIuLmQzM2M2NTU4OThhM2Y4Yzk1YjAwNTAzMjk0M2M2OTcyN2EyYWZjNDQgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RSZXN1bHRTZXJ2ZXIvc3RhdGljLWRhc2hib2FyZHMvcnVuLXVu
aXR0ZXN0cy5odG1sCisrKyBiL1Rvb2xzL1Rlc3RSZXN1bHRTZXJ2ZXIvc3RhdGljLWRhc2hib2Fy
ZHMvcnVuLXVuaXR0ZXN0cy5odG1sCkBAIC00Miw2ICs0Miw4IEBAIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KIDxzY3JpcHQgc3JjPSJidWlsZGVycy5qcyI+PC9zY3JpcHQ+CiA8c2Ny
aXB0IHNyYz0iYnVpbGRlcnNfdW5pdHRlc3RzLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJz
dHJpbmcuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Imhpc3RvcnkuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9Imhpc3RvcnlfdW5pdHRlc3RzLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3Jj
PSJkYXNoYm9hcmRfYmFzZS5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0idWkuanMiPjwvc2Ny
aXB0PgogPHNjcmlwdCBzcmM9ImxvYWRlci5qcyI+PC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9Ub29s
cy9UZXN0UmVzdWx0U2VydmVyL3N0YXRpYy1kYXNoYm9hcmRzL3RpbWVsaW5lX2V4cGxvcmVyLmh0
bWwgYi9Ub29scy9UZXN0UmVzdWx0U2VydmVyL3N0YXRpYy1kYXNoYm9hcmRzL3RpbWVsaW5lX2V4
cGxvcmVyLmh0bWwKaW5kZXggYjJjYmM1MjczZGE2MzE5ZjI5NjRkZDRkMjIwZDMzYzc5N2NiNDEw
OC4uMDVkMmI1MWI4Y2FlNGUzNmY5YmE1MjhlYzdkZTg1MGJjNWJhZTMyMiAxMDA2NDQKLS0tIGEv
VG9vbHMvVGVzdFJlc3VsdFNlcnZlci9zdGF0aWMtZGFzaGJvYXJkcy90aW1lbGluZV9leHBsb3Jl
ci5odG1sCisrKyBiL1Rvb2xzL1Rlc3RSZXN1bHRTZXJ2ZXIvc3RhdGljLWRhc2hib2FyZHMvdGlt
ZWxpbmVfZXhwbG9yZXIuaHRtbApAQCAtOTksNiArOTksNyBAQCBib2R5IHsKIDxzY3JpcHQgc3Jj
PSJidWlsZGVycy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0ibG9hZGVyLmpzIj48L3Njcmlw
dD4KIDxzY3JpcHQgc3JjPSJzdHJpbmcuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Imhpc3Rv
cnkuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9ImRhc2hib2FyZF9iYXNlLmpzIj48L3Njcmlw
dD4KIDxzY3JpcHQgc3JjPSJ0aW1lbGluZV9leHBsb3Jlci5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0
IHNyYz0idWkuanMiPjwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFJlc3VsdFNlcnZl
ci9zdGF0aWMtZGFzaGJvYXJkcy90aW1lbGluZV9leHBsb3Jlci5qcyBiL1Rvb2xzL1Rlc3RSZXN1
bHRTZXJ2ZXIvc3RhdGljLWRhc2hib2FyZHMvdGltZWxpbmVfZXhwbG9yZXIuanMKaW5kZXggNzEw
ZTQ0ZTQxZmIxYTdlMGRjOTQxNTlmNzkzNDc4ZDdjOTNmNWZhZC4uMDBkYTljMzI1ZGRiZjUzMzNh
Y2M0NGFhYWVjMzU0MDZhYTRlNzZhMCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFJlc3VsdFNlcnZl
ci9zdGF0aWMtZGFzaGJvYXJkcy90aW1lbGluZV9leHBsb3Jlci5qcworKysgYi9Ub29scy9UZXN0
UmVzdWx0U2VydmVyL3N0YXRpYy1kYXNoYm9hcmRzL3RpbWVsaW5lX2V4cGxvcmVyLmpzCkBAIC03
OCw3ICs3OCw3IEBAIGZ1bmN0aW9uIGhhbmRsZVZhbGlkSGFzaFBhcmFtZXRlcihrZXksIHZhbHVl
KQogewogICAgIHN3aXRjaChrZXkpIHsKICAgICBjYXNlICdidWlsZGVyJzoKLSAgICAgICAgdmFs
aWRhdGVQYXJhbWV0ZXIoZ19jdXJyZW50U3RhdGUsIGtleSwgdmFsdWUsCisgICAgICAgIGhpc3Rv
cnkudmFsaWRhdGVQYXJhbWV0ZXIoZ19jdXJyZW50U3RhdGUsIGtleSwgdmFsdWUsCiAgICAgICAg
ICAgICBmdW5jdGlvbigpIHsgcmV0dXJuIHZhbHVlIGluIGN1cnJlbnRCdWlsZGVycygpOyB9KTsK
ICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgY2FzZSAnYnVpbGRUaW1lc3RhbXAnOgpkaWZmIC0t
Z2l0IGEvVG9vbHMvVGVzdFJlc3VsdFNlcnZlci9zdGF0aWMtZGFzaGJvYXJkcy90cmVlbWFwLmh0
bWwgYi9Ub29scy9UZXN0UmVzdWx0U2VydmVyL3N0YXRpYy1kYXNoYm9hcmRzL3RyZWVtYXAuaHRt
bAppbmRleCA4MWI2ZDJjMDcyZGZiZDIyZTQwYWIxZjAyOTQ0OTYyOTRmMDBhYWYyLi5hY2Y5YWY5
OWFkZDk5MGFjZjMwYjhlNjRkZWI5MmQ4MzBmYTMxNWU0IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0
UmVzdWx0U2VydmVyL3N0YXRpYy1kYXNoYm9hcmRzL3RyZWVtYXAuaHRtbAorKysgYi9Ub29scy9U
ZXN0UmVzdWx0U2VydmVyL3N0YXRpYy1kYXNoYm9hcmRzL3RyZWVtYXAuaHRtbApAQCAtMTEwLDYg
KzExMCw3IEBAIHRkIHsKIDxzY3JpcHQgc3JjPSJidWlsZGVycy5qcyI+PC9zY3JpcHQ+CiA8c2Ny
aXB0IHNyYz0ibG9hZGVyLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJzdHJpbmcuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Imhpc3RvcnkuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9
ImRhc2hib2FyZF9iYXNlLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJ1aS5qcyI+PC9zY3Jp
cHQ+CiA8c2NyaXB0IHNyYz0idHJlZW1hcC5qcyI+PC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9Ub29s
cy9UZXN0UmVzdWx0U2VydmVyL3N0YXRpYy1kYXNoYm9hcmRzL3RyZWVtYXAuanMgYi9Ub29scy9U
ZXN0UmVzdWx0U2VydmVyL3N0YXRpYy1kYXNoYm9hcmRzL3RyZWVtYXAuanMKaW5kZXggYTNkMGZk
ZTljMzgzM2RhM2VkMjFhMDg3ODMwN2MxODYzMWFiYzY3ZS4uYWQ5YWQ2ZGZmOTNmODFlYzMzMWM0
MDhlOWQxY2Q1NDI4MGNmYTBmMSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFJlc3VsdFNlcnZlci9z
dGF0aWMtZGFzaGJvYXJkcy90cmVlbWFwLmpzCisrKyBiL1Rvb2xzL1Rlc3RSZXN1bHRTZXJ2ZXIv
c3RhdGljLWRhc2hib2FyZHMvdHJlZW1hcC5qcwpAQCAtMTgyLDEyICsxODIsMTIgQEAgZnVuY3Rp
b24gaGFuZGxlVmFsaWRIYXNoUGFyYW1ldGVyKGtleSwgdmFsdWUpCiB7CiAgICAgc3dpdGNoKGtl
eSkgewogICAgIGNhc2UgJ2J1aWxkZXInOgotICAgICAgICB2YWxpZGF0ZVBhcmFtZXRlcihnX2N1
cnJlbnRTdGF0ZSwga2V5LCB2YWx1ZSwKKyAgICAgICAgaGlzdG9yeS52YWxpZGF0ZVBhcmFtZXRl
cihnX2N1cnJlbnRTdGF0ZSwga2V5LCB2YWx1ZSwKICAgICAgICAgICAgIGZ1bmN0aW9uKCkgeyBy
ZXR1cm4gdmFsdWUgaW4gY3VycmVudEJ1aWxkZXJzKCk7IH0pOwogICAgICAgICByZXR1cm4gdHJ1
ZTsKIAogICAgIGNhc2UgJ3RyZWVtYXBmb2N1cyc6Ci0gICAgICAgIHZhbGlkYXRlUGFyYW1ldGVy
KGdfY3VycmVudFN0YXRlLCBrZXksIHZhbHVlLAorICAgICAgICBoaXN0b3J5LnZhbGlkYXRlUGFy
YW1ldGVyKGdfY3VycmVudFN0YXRlLCBrZXksIHZhbHVlLAogICAgICAgICAgICAgZnVuY3Rpb24o
KSB7CiAgICAgICAgICAgICAgICAgLy8gRklYTUU6IFRoZXJlJ3MgcHJvYmFibHkgYSBzaW1wbGVy
IHJlZ2V4cCBoZXJlLiBKdXN0IHRyeWluZyB0byBtYXRjaCBhc2NpaSArIGZvcndhcmQtc2xhc2gu
CiAgICAgICAgICAgICAgICAgLy8gZS5nLiBMYXlvdXRUZXN0cy9mb28vYmFyLmh0bWwKZGlmZiAt
LWdpdCBhL1Rvb2xzL1Rlc3RSZXN1bHRTZXJ2ZXIvc3RhdGljLWRhc2hib2FyZHMvdWkuanMgYi9U
b29scy9UZXN0UmVzdWx0U2VydmVyL3N0YXRpYy1kYXNoYm9hcmRzL3VpLmpzCmluZGV4IDAyOTYw
NzIzZmYxNWJhMjA2OTI1ZGZiMmJlNzM2MTcxZGQyMjkxNjYuLjlmNzkxYTMzMTgzMTgxZWQ2YjZj
YWFjNzMyOGY1YzM0NTk3Zjc0NTEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RSZXN1bHRTZXJ2ZXIv
c3RhdGljLWRhc2hib2FyZHMvdWkuanMKKysrIGIvVG9vbHMvVGVzdFJlc3VsdFNlcnZlci9zdGF0
aWMtZGFzaGJvYXJkcy91aS5qcwpAQCAtMTIyLDcgKzEyMiw3IEBAIHVpLmh0bWwudGVzdFR5cGVT
d2l0Y2hlciA9IGZ1bmN0aW9uKG9wdF9ub0J1aWxkZXJNZW51LCBvcHRfZXh0cmFIdG1sLCBvcHRf
aW5jbHVkCiAgICAgaHRtbCArPSB1aS5odG1sLnNlbGVjdCgnR3JvdXAnLCAnZ3JvdXAnLAogICAg
ICAgICBPYmplY3Qua2V5cyhjdXJyZW50QnVpbGRlckdyb3VwQ2F0ZWdvcnkoKSkpOwogCi0gICAg
aWYgKCFpc1RyZWVNYXAoKSkKKyAgICBpZiAoIWhpc3RvcnkuaXNUcmVlTWFwKCkpCiAgICAgICAg
IGh0bWwgKz0gdWkuaHRtbC5jaGVja2JveCgnc2hvd0FsbFJ1bnMnLCAnU2hvdyBhbGwgcnVucycs
IGdfY3Jvc3NEYXNoYm9hcmRTdGF0ZS5zaG93QWxsUnVucyk7CiAKICAgICBpZiAob3B0X2V4dHJh
SHRtbCkK
</data>

          </attachment>
      

    </bug>

</bugzilla>