<?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>59220</bug_id>
          
          <creation_ts>2011-04-22 12:15:45 -0700</creation_ts>
          <short_desc>Factor PatchAnalysis task out of CommitQueueTask</short_desc>
          <delta_ts>2011-04-22 12:25:54 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</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="Adam Barth">abarth</reporter>
          <assigned_to name="Adam Barth">abarth</assigned_to>
          <cc>eric</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>390960</commentid>
    <comment_count>0</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-04-22 12:15:45 -0700</bug_when>
    <thetext>Factor PatchAnalysis task out of CommitQueueTask</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>390961</commentid>
    <comment_count>1</comment_count>
      <attachid>90739</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-04-22 12:16:55 -0700</bug_when>
    <thetext>Created attachment 90739
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>390965</commentid>
    <comment_count>2</comment_count>
      <attachid>90739</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-04-22 12:21:13 -0700</bug_when>
    <thetext>Comment on attachment 90739
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=90739&amp;action=review

OK.  Shouldn&apos;t the unit tests move too?

&gt; Tools/Scripts/webkitpy/tool/bot/patchanalysistask.py:213
&gt; +        assert(self._patch.id() == patch.id())  # CommitQueueTask is not currently re-useable.

CommitQueueTask?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>390966</commentid>
    <comment_count>3</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-04-22 12:25:39 -0700</bug_when>
    <thetext>Committed r84658: &lt;http://trac.webkit.org/changeset/84658&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>390967</commentid>
    <comment_count>4</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-04-22 12:25:54 -0700</bug_when>
    <thetext>&gt; OK.  Shouldn&apos;t the unit tests move too?

The unit tests are testing run(), which only exists on the child object.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>90739</attachid>
            <date>2011-04-22 12:16:55 -0700</date>
            <delta_ts>2011-04-22 12:21:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-59220-20110422121653.patch</filename>
            <type>text/plain</type>
            <size>20199</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDg0NjU3KQorKysgVG9vbHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMg
KzEsMTYgQEAKKzIwMTEtMDQtMjIgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGYWN0b3IgUGF0
Y2hBbmFseXNpcyB0YXNrIG91dCBvZiBDb21taXRRdWV1ZVRhc2sKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU5MjIwCisKKyAgICAgICAgVGhpcyBpcyBh
IGZpcnN0IHN0ZXAgdG93YXJkcyB0ZWFjaGluZyB0aGUgRVdTIHRvIHJ1biB0ZXN0cy4KKworICAg
ICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvY29tbWl0cXVldWV0YXNrLnB5OgorICAg
ICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvY29tbWl0cXVldWV0YXNrX3VuaXR0ZXN0
LnB5OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvcGF0Y2hhbmFseXNpc3Rh
c2sucHk6IEFkZGVkLgorCiAyMDExLTA0LTIyICBQaGlsaXBwZSBOb3JtYW5kICA8cG5vcm1hbmRA
aWdhbGlhLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBNYXJ0aW4gUm9iaW5zb24uCkluZGV4
OiBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2NvbW1pdHF1ZXVldGFzay5weQo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2NvbW1pdHF1ZXVldGFz
ay5weQkocmV2aXNpb24gODQ2NTUpCisrKyBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90
L2NvbW1pdHF1ZXVldGFzay5weQkod29ya2luZyBjb3B5KQpAQCAtMjYsNDQgKzI2LDE1IEBACiAj
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQogIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogCi1mcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0
ZW0uZXhlY3V0aXZlIGltcG9ydCBTY3JpcHRFcnJvcgotZnJvbSB3ZWJraXRweS5jb21tb24ubmV0
LmxheW91dHRlc3RyZXN1bHRzIGltcG9ydCBMYXlvdXRUZXN0UmVzdWx0cwotZnJvbSB3ZWJraXRw
eS50b29sLmJvdC5leHBlY3RlZGZhaWx1cmVzIGltcG9ydCBFeHBlY3RlZEZhaWx1cmVzCitmcm9t
IHdlYmtpdHB5LnRvb2wuYm90LnBhdGNoYW5hbHlzaXN0YXNrIGltcG9ydCBQYXRjaEFuYWx5c2lz
VGFzaywgUGF0Y2hBbmFseXNpc1Rhc2tEZWxlZ2F0ZQogCiAKLWNsYXNzIENvbW1pdFF1ZXVlVGFz
a0RlbGVnYXRlKG9iamVjdCk6Ci0gICAgZGVmIHJ1bl9jb21tYW5kKHNlbGYsIGNvbW1hbmQpOgot
ICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yKCJzdWJjbGFzc2VzIG11c3QgaW1wbGVt
ZW50IikKK2NsYXNzIENvbW1pdFF1ZXVlVGFza0RlbGVnYXRlKFBhdGNoQW5hbHlzaXNUYXNrRGVs
ZWdhdGUpOgorICAgIHBhc3MKIAotICAgIGRlZiBjb21tYW5kX3Bhc3NlZChzZWxmLCBtZXNzYWdl
LCBwYXRjaCk6Ci0gICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IoInN1YmNsYXNzZXMg
bXVzdCBpbXBsZW1lbnQiKQogCi0gICAgZGVmIGNvbW1hbmRfZmFpbGVkKHNlbGYsIG1lc3NhZ2Us
IHNjcmlwdF9lcnJvciwgcGF0Y2gpOgotICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9y
KCJzdWJjbGFzc2VzIG11c3QgaW1wbGVtZW50IikKLQotICAgIGRlZiByZWZldGNoX3BhdGNoKHNl
bGYsIHBhdGNoKToKLSAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcigic3ViY2xhc3Nl
cyBtdXN0IGltcGxlbWVudCIpCi0KLSAgICBkZWYgbGF5b3V0X3Rlc3RfcmVzdWx0cyhzZWxmKToK
LSAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcigic3ViY2xhc3NlcyBtdXN0IGltcGxl
bWVudCIpCi0KLSAgICBkZWYgYXJjaGl2ZV9sYXN0X2xheW91dF90ZXN0X3Jlc3VsdHMoc2VsZiwg
cGF0Y2gpOgotICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yKCJzdWJjbGFzc2VzIG11
c3QgaW1wbGVtZW50IikKLQotICAgICMgV2UgY291bGQgbWFrZSByZXN1bHRzX2FyY2hpdmUgb3B0
aW9uYWwsIGJ1dCBmb3Igbm93IGl0J3MgcmVxdWlyZWQuCi0gICAgZGVmIHJlcG9ydF9mbGFreV90
ZXN0cyhzZWxmLCBwYXRjaCwgZmxha3lfdGVzdHMsIHJlc3VsdHNfYXJjaGl2ZSk6Ci0gICAgICAg
IHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IoInN1YmNsYXNzZXMgbXVzdCBpbXBsZW1lbnQiKQot
Ci0KLWNsYXNzIENvbW1pdFF1ZXVlVGFzayhvYmplY3QpOgotICAgIGRlZiBfX2luaXRfXyhzZWxm
LCBkZWxlZ2F0ZSwgcGF0Y2gpOgotICAgICAgICBzZWxmLl9kZWxlZ2F0ZSA9IGRlbGVnYXRlCi0g
ICAgICAgIHNlbGYuX3BhdGNoID0gcGF0Y2gKLSAgICAgICAgc2VsZi5fc2NyaXB0X2Vycm9yID0g
Tm9uZQotICAgICAgICBzZWxmLl9yZXN1bHRzX2FyY2hpdmVfZnJvbV9wYXRjaF90ZXN0X3J1biA9
IE5vbmUKLSAgICAgICAgc2VsZi5fZXhwZWN0ZWRfZmFpbHVyZXMgPSBFeHBlY3RlZEZhaWx1cmVz
KCkKLQotICAgIGRlZiBfdmFsaWRhdGUoc2VsZik6CitjbGFzcyBDb21taXRRdWV1ZVRhc2soUGF0
Y2hBbmFseXNpc1Rhc2spOgorICAgIGRlZiB2YWxpZGF0ZShzZWxmKToKICAgICAgICAgIyBCdWdz
IG1pZ2h0IGdldCBjbG9zZWQsIG9yIHBhdGNoZXMgbWlnaHQgYmUgb2Jzb2xldGVkIG9yIHItJ2Qg
d2hpbGUgdGhlCiAgICAgICAgICMgY29tbWl0LXF1ZXVlIGlzIHByb2Nlc3NpbmcuCiAgICAgICAg
IHNlbGYuX3BhdGNoID0gc2VsZi5fZGVsZWdhdGUucmVmZXRjaF9wYXRjaChzZWxmLl9wYXRjaCkK
QEAgLTc5LDE2NCArNTAsOCBAQCBjbGFzcyBDb21taXRRdWV1ZVRhc2sob2JqZWN0KToKICAgICAg
ICAgIyB0aGUgQ2hhbmdlTG9nIGNoZWNrIGR1cmluZyBsYW5kaW5nLgogICAgICAgICByZXR1cm4g
VHJ1ZQogCi0gICAgZGVmIF9ydW5fY29tbWFuZChzZWxmLCBjb21tYW5kLCBzdWNjZXNzX21lc3Nh
Z2UsIGZhaWx1cmVfbWVzc2FnZSk6Ci0gICAgICAgIHRyeToKLSAgICAgICAgICAgIHNlbGYuX2Rl
bGVnYXRlLnJ1bl9jb21tYW5kKGNvbW1hbmQpCi0gICAgICAgICAgICBzZWxmLl9kZWxlZ2F0ZS5j
b21tYW5kX3Bhc3NlZChzdWNjZXNzX21lc3NhZ2UsIHBhdGNoPXNlbGYuX3BhdGNoKQotICAgICAg
ICAgICAgcmV0dXJuIFRydWUKLSAgICAgICAgZXhjZXB0IFNjcmlwdEVycm9yLCBlOgotICAgICAg
ICAgICAgc2VsZi5fc2NyaXB0X2Vycm9yID0gZQotICAgICAgICAgICAgc2VsZi5mYWlsdXJlX3N0
YXR1c19pZCA9IHNlbGYuX2RlbGVnYXRlLmNvbW1hbmRfZmFpbGVkKGZhaWx1cmVfbWVzc2FnZSwg
c2NyaXB0X2Vycm9yPXNlbGYuX3NjcmlwdF9lcnJvciwgcGF0Y2g9c2VsZi5fcGF0Y2gpCi0gICAg
ICAgICAgICByZXR1cm4gRmFsc2UKLQotICAgIGRlZiBfY2xlYW4oc2VsZik6Ci0gICAgICAgIHJl
dHVybiBzZWxmLl9ydW5fY29tbWFuZChbCi0gICAgICAgICAgICAiY2xlYW4iLAotICAgICAgICBd
LAotICAgICAgICAiQ2xlYW5lZCB3b3JraW5nIGRpcmVjdG9yeSIsCi0gICAgICAgICJVbmFibGUg
dG8gY2xlYW4gd29ya2luZyBkaXJlY3RvcnkiKQotCi0gICAgZGVmIF91cGRhdGUoc2VsZik6Ci0g
ICAgICAgICMgRklYTUU6IElkZWFsbHkgdGhlIHN0YXR1cyBzZXJ2ZXIgbG9nIG1lc3NhZ2Ugc2hv
dWxkIGluY2x1ZGUgd2hpY2ggcmV2aXNpb24gd2UgdXBkYXRlZCB0by4KLSAgICAgICAgcmV0dXJu
IHNlbGYuX3J1bl9jb21tYW5kKFsKLSAgICAgICAgICAgICJ1cGRhdGUiLAotICAgICAgICBdLAot
ICAgICAgICAiVXBkYXRlZCB3b3JraW5nIGRpcmVjdG9yeSIsCi0gICAgICAgICJVbmFibGUgdG8g
dXBkYXRlIHdvcmtpbmcgZGlyZWN0b3J5IikKLQotICAgIGRlZiBfYXBwbHkoc2VsZik6Ci0gICAg
ICAgIHJldHVybiBzZWxmLl9ydW5fY29tbWFuZChbCi0gICAgICAgICAgICAiYXBwbHktYXR0YWNo
bWVudCIsCi0gICAgICAgICAgICAiLS1uby11cGRhdGUiLAotICAgICAgICAgICAgIi0tbm9uLWlu
dGVyYWN0aXZlIiwKLSAgICAgICAgICAgIHNlbGYuX3BhdGNoLmlkKCksCi0gICAgICAgIF0sCi0g
ICAgICAgICJBcHBsaWVkIHBhdGNoIiwKLSAgICAgICAgIlBhdGNoIGRvZXMgbm90IGFwcGx5IikK
LQotICAgIGRlZiBfYnVpbGQoc2VsZik6Ci0gICAgICAgIHJldHVybiBzZWxmLl9ydW5fY29tbWFu
ZChbCi0gICAgICAgICAgICAiYnVpbGQiLAotICAgICAgICAgICAgIi0tbm8tY2xlYW4iLAotICAg
ICAgICAgICAgIi0tbm8tdXBkYXRlIiwKLSAgICAgICAgICAgICItLWJ1aWxkLXN0eWxlPWJvdGgi
LAotICAgICAgICBdLAotICAgICAgICAiQnVpbHQgcGF0Y2giLAotICAgICAgICAiUGF0Y2ggZG9l
cyBub3QgYnVpbGQiKQotCi0gICAgZGVmIF9idWlsZF93aXRob3V0X3BhdGNoKHNlbGYpOgotICAg
ICAgICByZXR1cm4gc2VsZi5fcnVuX2NvbW1hbmQoWwotICAgICAgICAgICAgImJ1aWxkIiwKLSAg
ICAgICAgICAgICItLWZvcmNlLWNsZWFuIiwKLSAgICAgICAgICAgICItLW5vLXVwZGF0ZSIsCi0g
ICAgICAgICAgICAiLS1idWlsZC1zdHlsZT1ib3RoIiwKLSAgICAgICAgXSwKLSAgICAgICAgIkFi
bGUgdG8gYnVpbGQgd2l0aG91dCBwYXRjaCIsCi0gICAgICAgICJVbmFibGUgdG8gYnVpbGQgd2l0
aG91dCBwYXRjaCIpCi0KLSAgICBkZWYgX3Rlc3Qoc2VsZik6Ci0gICAgICAgIHN1Y2Nlc3MgPSBz
ZWxmLl9ydW5fY29tbWFuZChbCi0gICAgICAgICAgICAiYnVpbGQtYW5kLXRlc3QiLAotICAgICAg
ICAgICAgIi0tbm8tY2xlYW4iLAotICAgICAgICAgICAgIi0tbm8tdXBkYXRlIiwKLSAgICAgICAg
ICAgICMgTm90aWNlIHRoYXQgd2UgZG9uJ3QgcGFzcyAtLWJ1aWxkLCB3aGljaCBtZWFucyB3ZSB3
b24ndCBidWlsZCEKLSAgICAgICAgICAgICItLXRlc3QiLAotICAgICAgICAgICAgIi0tbm9uLWlu
dGVyYWN0aXZlIiwKLSAgICAgICAgXSwKLSAgICAgICAgIlBhc3NlZCB0ZXN0cyIsCi0gICAgICAg
ICJQYXRjaCBkb2VzIG5vdCBwYXNzIHRlc3RzIikKLQotICAgICAgICBzZWxmLl9leHBlY3RlZF9m
YWlsdXJlcy5zaHJpbmtfZXhwZWN0ZWRfZmFpbHVyZXMoc2VsZi5fZGVsZWdhdGUubGF5b3V0X3Rl
c3RfcmVzdWx0cygpLCBzdWNjZXNzKQotICAgICAgICByZXR1cm4gc3VjY2VzcwotCi0gICAgZGVm
IF9idWlsZF9hbmRfdGVzdF93aXRob3V0X3BhdGNoKHNlbGYpOgotICAgICAgICBzdWNjZXNzID0g
c2VsZi5fcnVuX2NvbW1hbmQoWwotICAgICAgICAgICAgImJ1aWxkLWFuZC10ZXN0IiwKLSAgICAg
ICAgICAgICItLWZvcmNlLWNsZWFuIiwKLSAgICAgICAgICAgICItLW5vLXVwZGF0ZSIsCi0gICAg
ICAgICAgICAiLS1idWlsZCIsCi0gICAgICAgICAgICAiLS10ZXN0IiwKLSAgICAgICAgICAgICIt
LW5vbi1pbnRlcmFjdGl2ZSIsCi0gICAgICAgIF0sCi0gICAgICAgICJBYmxlIHRvIHBhc3MgdGVz
dHMgd2l0aG91dCBwYXRjaCIsCi0gICAgICAgICJVbmFibGUgdG8gcGFzcyB0ZXN0cyB3aXRob3V0
IHBhdGNoICh0cmVlIGlzIHJlZD8pIikKLQotICAgICAgICBzZWxmLl9leHBlY3RlZF9mYWlsdXJl
cy5zaHJpbmtfZXhwZWN0ZWRfZmFpbHVyZXMoc2VsZi5fZGVsZWdhdGUubGF5b3V0X3Rlc3RfcmVz
dWx0cygpLCBzdWNjZXNzKQotICAgICAgICByZXR1cm4gc3VjY2VzcwotCi0gICAgZGVmIF9sYW5k
KHNlbGYpOgotICAgICAgICAjIFVuY2xlYXIgaWYgdGhpcyBzaG91bGQgcGFzcyAtLXF1aWV0IG9y
IG5vdC4gIElmIC0tcGFyZW50LWNvbW1hbmQgYWx3YXlzIGRvZXMgdGhlIHJlcG9ydGluZywgdGhl
biBpdCBzaG91bGQuCi0gICAgICAgIHJldHVybiBzZWxmLl9ydW5fY29tbWFuZChbCi0gICAgICAg
ICAgICAibGFuZC1hdHRhY2htZW50IiwKLSAgICAgICAgICAgICItLWZvcmNlLWNsZWFuIiwKLSAg
ICAgICAgICAgICItLWlnbm9yZS1idWlsZGVycyIsCi0gICAgICAgICAgICAiLS1ub24taW50ZXJh
Y3RpdmUiLAotICAgICAgICAgICAgIi0tcGFyZW50LWNvbW1hbmQ9Y29tbWl0LXF1ZXVlIiwKLSAg
ICAgICAgICAgIHNlbGYuX3BhdGNoLmlkKCksCi0gICAgICAgIF0sCi0gICAgICAgICJMYW5kZWQg
cGF0Y2giLAotICAgICAgICAiVW5hYmxlIHRvIGxhbmQgcGF0Y2giKQotCi0gICAgZGVmIF9yZXBv
cnRfZmxha3lfdGVzdHMoc2VsZiwgZmxha3lfdGVzdF9yZXN1bHRzLCByZXN1bHRzX2FyY2hpdmUp
OgotICAgICAgICBzZWxmLl9kZWxlZ2F0ZS5yZXBvcnRfZmxha3lfdGVzdHMoc2VsZi5fcGF0Y2gs
IGZsYWt5X3Rlc3RfcmVzdWx0cywgcmVzdWx0c19hcmNoaXZlKQotCi0gICAgZGVmIF9yZXN1bHRz
X2ZhaWxlZF9kaWZmZXJlbnRfdGVzdHMoc2VsZiwgZmlyc3QsIHNlY29uZCk6Ci0gICAgICAgIGZp
cnN0X2ZhaWxpbmdfdGVzdHMgPSBbXSBpZiBub3QgZmlyc3QgZWxzZSBmaXJzdC5mYWlsaW5nX3Rl
c3RzKCkKLSAgICAgICAgc2Vjb25kX2ZhaWxpbmdfdGVzdHMgPSBbXSBpZiBub3Qgc2Vjb25kIGVs
c2Ugc2Vjb25kLmZhaWxpbmdfdGVzdHMoKQotICAgICAgICByZXR1cm4gZmlyc3RfZmFpbGluZ190
ZXN0cyAhPSBzZWNvbmRfZmFpbGluZ190ZXN0cwotCi0gICAgZGVmIF90ZXN0X3BhdGNoKHNlbGYp
OgotICAgICAgICBpZiBzZWxmLl90ZXN0KCk6Ci0gICAgICAgICAgICByZXR1cm4gVHJ1ZQotCi0g
ICAgICAgICMgTm90ZTogYXJjaGl2ZV9sYXN0X2xheW91dF90ZXN0X3Jlc3VsdHMgZGVsZXRlcyB0
aGUgcmVzdWx0cyBkaXJlY3RvcnksIG1ha2luZyB0aGVzZSBjYWxscyBvcmRlci1zZW5zaXR2ZS4K
LSAgICAgICAgIyBXZSBjb3VsZCByZW1vdmUgdGhpcyBkZXBlbmRlbmN5IGJ5IGJ1aWxkaW5nIHRo
ZSBsYXlvdXRfdGVzdF9yZXN1bHRzIGZyb20gdGhlIGFyY2hpdmUuCi0gICAgICAgIGZpcnN0X3Jl
c3VsdHMgPSBzZWxmLl9kZWxlZ2F0ZS5sYXlvdXRfdGVzdF9yZXN1bHRzKCkKLSAgICAgICAgZmly
c3RfcmVzdWx0c19hcmNoaXZlID0gc2VsZi5fZGVsZWdhdGUuYXJjaGl2ZV9sYXN0X2xheW91dF90
ZXN0X3Jlc3VsdHMoc2VsZi5fcGF0Y2gpCi0KLSAgICAgICAgaWYgc2VsZi5fZXhwZWN0ZWRfZmFp
bHVyZXMuZmFpbHVyZXNfd2VyZV9leHBlY3RlZChmaXJzdF9yZXN1bHRzKToKLSAgICAgICAgICAg
IHJldHVybiBUcnVlCi0KLSAgICAgICAgaWYgc2VsZi5fdGVzdCgpOgotICAgICAgICAgICAgIyBP
bmx5IHJlcG9ydCBmbGFreSB0ZXN0cyBpZiB3ZSB3ZXJlIHN1Y2Nlc3NmdWwgYXQgcGFyc2luZyBy
ZXN1bHRzLmh0bWwgYW5kIGFyY2hpdmluZyByZXN1bHRzLgotICAgICAgICAgICAgaWYgZmlyc3Rf
cmVzdWx0cyBhbmQgZmlyc3RfcmVzdWx0c19hcmNoaXZlOgotICAgICAgICAgICAgICAgIHNlbGYu
X3JlcG9ydF9mbGFreV90ZXN0cyhmaXJzdF9yZXN1bHRzLmZhaWxpbmdfdGVzdF9yZXN1bHRzKCks
IGZpcnN0X3Jlc3VsdHNfYXJjaGl2ZSkKLSAgICAgICAgICAgIHJldHVybiBUcnVlCi0KLSAgICAg
ICAgc2Vjb25kX3Jlc3VsdHMgPSBzZWxmLl9kZWxlZ2F0ZS5sYXlvdXRfdGVzdF9yZXN1bHRzKCkK
LSAgICAgICAgaWYgc2VsZi5fcmVzdWx0c19mYWlsZWRfZGlmZmVyZW50X3Rlc3RzKGZpcnN0X3Jl
c3VsdHMsIHNlY29uZF9yZXN1bHRzKToKLSAgICAgICAgICAgICMgV2UgY291bGQgcmVwb3J0IGZs
YWt5IHRlc3RzIGhlcmUsIGJ1dCB3ZSB3b3VsZCBuZWVkIHRvIGJlIGNhcmVmdWwKLSAgICAgICAg
ICAgICMgdG8gdXNlIHNpbWlsYXIgY2hlY2tzIHRvIEV4cGVjdGVkRmFpbHVyZXMuX2Nhbl90cnVz
dF9yZXN1bHRzCi0gICAgICAgICAgICAjIHRvIG1ha2Ugc3VyZSB3ZSBkb24ndCByZXBvcnQgY29u
c3RhbnQgZmFpbHVyZXMgYXMgZmxha2VzIHdoZW4KLSAgICAgICAgICAgICMgd2UgaGFwcGVuIHRv
IGhpdCB0aGUgLS1leGl0LWFmdGVyLU4tZmFpbHVyZXMgbGltaXQuCi0gICAgICAgICAgICAjIFNl
ZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTEyNzIKLSAgICAgICAg
ICAgIHJldHVybiBGYWxzZQotCi0gICAgICAgICMgQXJjaGl2ZSAoYW5kIHJlbW92ZSkgc2Vjb25k
IHJlc3VsdHMgc28gbGF5b3V0X3Rlc3RfcmVzdWx0cygpIGFmdGVyCi0gICAgICAgICMgYnVpbGRf
YW5kX3Rlc3Rfd2l0aG91dF9wYXRjaCB3b24ndCB1c2Ugc2Vjb25kIHJlc3VsdHMgaW5zdGVhZCBv
ZiB0aGUgY2xlYW4tdHJlZSByZXN1bHRzLgotICAgICAgICBzZWNvbmRfcmVzdWx0c19hcmNoaXZl
ID0gc2VsZi5fZGVsZWdhdGUuYXJjaGl2ZV9sYXN0X2xheW91dF90ZXN0X3Jlc3VsdHMoc2VsZi5f
cGF0Y2gpCi0KLSAgICAgICAgaWYgc2VsZi5fYnVpbGRfYW5kX3Rlc3Rfd2l0aG91dF9wYXRjaCgp
OgotICAgICAgICAgICAgIyBUaGUgZXJyb3IgZnJvbSB0aGUgcHJldmlvdXMgLl90ZXN0KCkgcnVu
IGlzIHJlYWwsIHJlcG9ydCBpdC4KLSAgICAgICAgICAgIHJldHVybiBzZWxmLnJlcG9ydF9mYWls
dXJlKGZpcnN0X3Jlc3VsdHNfYXJjaGl2ZSkKLQotICAgICAgICBjbGVhbl90cmVlX3Jlc3VsdHMg
PSBzZWxmLl9kZWxlZ2F0ZS5sYXlvdXRfdGVzdF9yZXN1bHRzKCkKLSAgICAgICAgc2VsZi5fZXhw
ZWN0ZWRfZmFpbHVyZXMuZ3Jvd19leHBlY3RlZF9mYWlsdXJlcyhjbGVhbl90cmVlX3Jlc3VsdHMp
Ci0KLSAgICAgICAgcmV0dXJuIEZhbHNlICAjIFRyZWUgbXVzdCBiZSByZWRkZXIgdGhhbiB3ZSBl
eHBlY3RlZCwganVzdCByZXRyeSBsYXRlci4KLQotICAgIGRlZiByZXN1bHRzX2FyY2hpdmVfZnJv
bV9wYXRjaF90ZXN0X3J1bihzZWxmLCBwYXRjaCk6Ci0gICAgICAgIGFzc2VydChzZWxmLl9wYXRj
aC5pZCgpID09IHBhdGNoLmlkKCkpICAjIENvbW1pdFF1ZXVlVGFzayBpcyBub3QgY3VycmVudGx5
IHJlLXVzZWFibGUuCi0gICAgICAgIHJldHVybiBzZWxmLl9yZXN1bHRzX2FyY2hpdmVfZnJvbV9w
YXRjaF90ZXN0X3J1bgotCi0gICAgZGVmIHJlcG9ydF9mYWlsdXJlKHNlbGYsIHJlc3VsdHNfYXJj
aGl2ZT1Ob25lKToKLSAgICAgICAgaWYgbm90IHNlbGYuX3ZhbGlkYXRlKCk6Ci0gICAgICAgICAg
ICByZXR1cm4gRmFsc2UKLSAgICAgICAgc2VsZi5fcmVzdWx0c19hcmNoaXZlX2Zyb21fcGF0Y2hf
dGVzdF9ydW4gPSByZXN1bHRzX2FyY2hpdmUKLSAgICAgICAgcmFpc2Ugc2VsZi5fc2NyaXB0X2Vy
cm9yCi0KICAgICBkZWYgcnVuKHNlbGYpOgotICAgICAgICBpZiBub3Qgc2VsZi5fdmFsaWRhdGUo
KToKKyAgICAgICAgaWYgbm90IHNlbGYudmFsaWRhdGUoKToKICAgICAgICAgICAgIHJldHVybiBG
YWxzZQogICAgICAgICBpZiBub3Qgc2VsZi5fY2xlYW4oKToKICAgICAgICAgICAgIHJldHVybiBG
YWxzZQpAQCAtMjUzLDcgKzY4LDcgQEAgY2xhc3MgQ29tbWl0UXVldWVUYXNrKG9iamVjdCk6CiAg
ICAgICAgICAgICAgICAgcmV0dXJuIEZhbHNlCiAgICAgICAgICMgTWFrZSBzdXJlIHRoZSBwYXRj
aCBpcyBzdGlsbCB2YWxpZCBiZWZvcmUgbGFuZGluZyAoZS5nLiwgbWFrZSBzdXJlCiAgICAgICAg
ICMgbm8gb25lIGhhcyBzZXQgY29tbWl0LXF1ZXVlLSBzaW5jZSB3ZSBzdGFydGVkIHdvcmtpbmcg
b24gdGhlIHBhdGNoLikKLSAgICAgICAgaWYgbm90IHNlbGYuX3ZhbGlkYXRlKCk6CisgICAgICAg
IGlmIG5vdCBzZWxmLnZhbGlkYXRlKCk6CiAgICAgICAgICAgICByZXR1cm4gRmFsc2UKICAgICAg
ICAgIyBGSVhNRTogV2Ugc2hvdWxkIHVuZGVyc3RhbmQgd2h5IHRoZSBsYW5kIGZhaWx1cmUgb2Nj
dXJlZCBhbmQgcmV0cnkgaWYgcG9zc2libGUuCiAgICAgICAgIGlmIG5vdCBzZWxmLl9sYW5kKCk6
CkluZGV4OiBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2NvbW1pdHF1ZXVldGFza191
bml0dGVzdC5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90
L2NvbW1pdHF1ZXVldGFza191bml0dGVzdC5weQkocmV2aXNpb24gODQ2NTUpCisrKyBUb29scy9T
Y3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2NvbW1pdHF1ZXVldGFza191bml0dGVzdC5weQkod29y
a2luZyBjb3B5KQpAQCAtMzc2LDcgKzM3Niw3IEBAIGNvbW1hbmRfZmFpbGVkOiBmYWlsdXJlX21l
c3NhZ2U9J1VuYWJsZSAKICAgICAgICAgICAgICAgICByZXR1cm4gcGF0Y2gKIAogICAgICAgICB0
YXNrID0gQ29tbWl0UXVldWVUYXNrKE1vY2tEZWxlZ2F0ZSgpLCBwYXRjaCkKLSAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbHModGFzay5fdmFsaWRhdGUoKSwgaXNfdmFsaWQpCisgICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWxzKHRhc2sudmFsaWRhdGUoKSwgaXNfdmFsaWQpCiAKICAgICBkZWYgX21vY2tf
cGF0Y2goc2VsZiwgYXR0YWNobWVudF9kaWN0PXt9LCBidWdfZGljdD17J2J1Z19zdGF0dXMnOiAn
TkVXJ30sIGNvbW1pdHRlcj0iZmFrZSIpOgogICAgICAgICBidWcgPSBidWd6aWxsYS5CdWcoYnVn
X2RpY3QsIE5vbmUpCkluZGV4OiBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L3BhdGNo
YW5hbHlzaXN0YXNrLnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9v
bC9ib3QvcGF0Y2hhbmFseXNpc3Rhc2sucHkJKHJldmlzaW9uIDApCisrKyBUb29scy9TY3JpcHRz
L3dlYmtpdHB5L3Rvb2wvYm90L3BhdGNoYW5hbHlzaXN0YXNrLnB5CShyZXZpc2lvbiAwKQpAQCAt
MCwwICsxLDIyNiBAQAorIyBDb3B5cmlnaHQgKGMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyMgbWV0OgorIwor
IyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisjICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorIyBpbiB0aGUg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisj
IGRpc3RyaWJ1dGlvbi4KKyMgICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBu
b3IgdGhlIG5hbWVzIG9mIGl0cworIyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3Jz
ZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorIyB0aGlzIHNvZnR3YXJlIHdpdGhv
dXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorIworIyBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisj
ICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UCisjIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorIyBPV05FUiBPUiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwK
KyMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVAorIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisjIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKK2Zyb20gd2Via2l0cHkuY29tbW9uLnN5
c3RlbS5leGVjdXRpdmUgaW1wb3J0IFNjcmlwdEVycm9yCitmcm9tIHdlYmtpdHB5LmNvbW1vbi5u
ZXQubGF5b3V0dGVzdHJlc3VsdHMgaW1wb3J0IExheW91dFRlc3RSZXN1bHRzCitmcm9tIHdlYmtp
dHB5LnRvb2wuYm90LmV4cGVjdGVkZmFpbHVyZXMgaW1wb3J0IEV4cGVjdGVkRmFpbHVyZXMKKwor
CitjbGFzcyBQYXRjaEFuYWx5c2lzVGFza0RlbGVnYXRlKG9iamVjdCk6CisgICAgZGVmIHJ1bl9j
b21tYW5kKHNlbGYsIGNvbW1hbmQpOgorICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9y
KCJzdWJjbGFzc2VzIG11c3QgaW1wbGVtZW50IikKKworICAgIGRlZiBjb21tYW5kX3Bhc3NlZChz
ZWxmLCBtZXNzYWdlLCBwYXRjaCk6CisgICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3Io
InN1YmNsYXNzZXMgbXVzdCBpbXBsZW1lbnQiKQorCisgICAgZGVmIGNvbW1hbmRfZmFpbGVkKHNl
bGYsIG1lc3NhZ2UsIHNjcmlwdF9lcnJvciwgcGF0Y2gpOgorICAgICAgICByYWlzZSBOb3RJbXBs
ZW1lbnRlZEVycm9yKCJzdWJjbGFzc2VzIG11c3QgaW1wbGVtZW50IikKKworICAgIGRlZiByZWZl
dGNoX3BhdGNoKHNlbGYsIHBhdGNoKToKKyAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJv
cigic3ViY2xhc3NlcyBtdXN0IGltcGxlbWVudCIpCisKKyAgICBkZWYgbGF5b3V0X3Rlc3RfcmVz
dWx0cyhzZWxmKToKKyAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcigic3ViY2xhc3Nl
cyBtdXN0IGltcGxlbWVudCIpCisKKyAgICBkZWYgYXJjaGl2ZV9sYXN0X2xheW91dF90ZXN0X3Jl
c3VsdHMoc2VsZiwgcGF0Y2gpOgorICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yKCJz
dWJjbGFzc2VzIG11c3QgaW1wbGVtZW50IikKKworICAgICMgV2UgY291bGQgbWFrZSByZXN1bHRz
X2FyY2hpdmUgb3B0aW9uYWwsIGJ1dCBmb3Igbm93IGl0J3MgcmVxdWlyZWQuCisgICAgZGVmIHJl
cG9ydF9mbGFreV90ZXN0cyhzZWxmLCBwYXRjaCwgZmxha3lfdGVzdHMsIHJlc3VsdHNfYXJjaGl2
ZSk6CisgICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IoInN1YmNsYXNzZXMgbXVzdCBp
bXBsZW1lbnQiKQorCisKK2NsYXNzIFBhdGNoQW5hbHlzaXNUYXNrKG9iamVjdCk6CisgICAgZGVm
IF9faW5pdF9fKHNlbGYsIGRlbGVnYXRlLCBwYXRjaCk6CisgICAgICAgIHNlbGYuX2RlbGVnYXRl
ID0gZGVsZWdhdGUKKyAgICAgICAgc2VsZi5fcGF0Y2ggPSBwYXRjaAorICAgICAgICBzZWxmLl9z
Y3JpcHRfZXJyb3IgPSBOb25lCisgICAgICAgIHNlbGYuX3Jlc3VsdHNfYXJjaGl2ZV9mcm9tX3Bh
dGNoX3Rlc3RfcnVuID0gTm9uZQorICAgICAgICBzZWxmLl9leHBlY3RlZF9mYWlsdXJlcyA9IEV4
cGVjdGVkRmFpbHVyZXMoKQorCisgICAgZGVmIF9ydW5fY29tbWFuZChzZWxmLCBjb21tYW5kLCBz
dWNjZXNzX21lc3NhZ2UsIGZhaWx1cmVfbWVzc2FnZSk6CisgICAgICAgIHRyeToKKyAgICAgICAg
ICAgIHNlbGYuX2RlbGVnYXRlLnJ1bl9jb21tYW5kKGNvbW1hbmQpCisgICAgICAgICAgICBzZWxm
Ll9kZWxlZ2F0ZS5jb21tYW5kX3Bhc3NlZChzdWNjZXNzX21lc3NhZ2UsIHBhdGNoPXNlbGYuX3Bh
dGNoKQorICAgICAgICAgICAgcmV0dXJuIFRydWUKKyAgICAgICAgZXhjZXB0IFNjcmlwdEVycm9y
LCBlOgorICAgICAgICAgICAgc2VsZi5fc2NyaXB0X2Vycm9yID0gZQorICAgICAgICAgICAgc2Vs
Zi5mYWlsdXJlX3N0YXR1c19pZCA9IHNlbGYuX2RlbGVnYXRlLmNvbW1hbmRfZmFpbGVkKGZhaWx1
cmVfbWVzc2FnZSwgc2NyaXB0X2Vycm9yPXNlbGYuX3NjcmlwdF9lcnJvciwgcGF0Y2g9c2VsZi5f
cGF0Y2gpCisgICAgICAgICAgICByZXR1cm4gRmFsc2UKKworICAgIGRlZiBfY2xlYW4oc2VsZik6
CisgICAgICAgIHJldHVybiBzZWxmLl9ydW5fY29tbWFuZChbCisgICAgICAgICAgICAiY2xlYW4i
LAorICAgICAgICBdLAorICAgICAgICAiQ2xlYW5lZCB3b3JraW5nIGRpcmVjdG9yeSIsCisgICAg
ICAgICJVbmFibGUgdG8gY2xlYW4gd29ya2luZyBkaXJlY3RvcnkiKQorCisgICAgZGVmIF91cGRh
dGUoc2VsZik6CisgICAgICAgICMgRklYTUU6IElkZWFsbHkgdGhlIHN0YXR1cyBzZXJ2ZXIgbG9n
IG1lc3NhZ2Ugc2hvdWxkIGluY2x1ZGUgd2hpY2ggcmV2aXNpb24gd2UgdXBkYXRlZCB0by4KKyAg
ICAgICAgcmV0dXJuIHNlbGYuX3J1bl9jb21tYW5kKFsKKyAgICAgICAgICAgICJ1cGRhdGUiLAor
ICAgICAgICBdLAorICAgICAgICAiVXBkYXRlZCB3b3JraW5nIGRpcmVjdG9yeSIsCisgICAgICAg
ICJVbmFibGUgdG8gdXBkYXRlIHdvcmtpbmcgZGlyZWN0b3J5IikKKworICAgIGRlZiBfYXBwbHko
c2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLl9ydW5fY29tbWFuZChbCisgICAgICAgICAgICAi
YXBwbHktYXR0YWNobWVudCIsCisgICAgICAgICAgICAiLS1uby11cGRhdGUiLAorICAgICAgICAg
ICAgIi0tbm9uLWludGVyYWN0aXZlIiwKKyAgICAgICAgICAgIHNlbGYuX3BhdGNoLmlkKCksCisg
ICAgICAgIF0sCisgICAgICAgICJBcHBsaWVkIHBhdGNoIiwKKyAgICAgICAgIlBhdGNoIGRvZXMg
bm90IGFwcGx5IikKKworICAgIGRlZiBfYnVpbGQoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxm
Ll9ydW5fY29tbWFuZChbCisgICAgICAgICAgICAiYnVpbGQiLAorICAgICAgICAgICAgIi0tbm8t
Y2xlYW4iLAorICAgICAgICAgICAgIi0tbm8tdXBkYXRlIiwKKyAgICAgICAgICAgICItLWJ1aWxk
LXN0eWxlPWJvdGgiLAorICAgICAgICBdLAorICAgICAgICAiQnVpbHQgcGF0Y2giLAorICAgICAg
ICAiUGF0Y2ggZG9lcyBub3QgYnVpbGQiKQorCisgICAgZGVmIF9idWlsZF93aXRob3V0X3BhdGNo
KHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5fcnVuX2NvbW1hbmQoWworICAgICAgICAgICAg
ImJ1aWxkIiwKKyAgICAgICAgICAgICItLWZvcmNlLWNsZWFuIiwKKyAgICAgICAgICAgICItLW5v
LXVwZGF0ZSIsCisgICAgICAgICAgICAiLS1idWlsZC1zdHlsZT1ib3RoIiwKKyAgICAgICAgXSwK
KyAgICAgICAgIkFibGUgdG8gYnVpbGQgd2l0aG91dCBwYXRjaCIsCisgICAgICAgICJVbmFibGUg
dG8gYnVpbGQgd2l0aG91dCBwYXRjaCIpCisKKyAgICBkZWYgX3Rlc3Qoc2VsZik6CisgICAgICAg
IHN1Y2Nlc3MgPSBzZWxmLl9ydW5fY29tbWFuZChbCisgICAgICAgICAgICAiYnVpbGQtYW5kLXRl
c3QiLAorICAgICAgICAgICAgIi0tbm8tY2xlYW4iLAorICAgICAgICAgICAgIi0tbm8tdXBkYXRl
IiwKKyAgICAgICAgICAgICMgTm90aWNlIHRoYXQgd2UgZG9uJ3QgcGFzcyAtLWJ1aWxkLCB3aGlj
aCBtZWFucyB3ZSB3b24ndCBidWlsZCEKKyAgICAgICAgICAgICItLXRlc3QiLAorICAgICAgICAg
ICAgIi0tbm9uLWludGVyYWN0aXZlIiwKKyAgICAgICAgXSwKKyAgICAgICAgIlBhc3NlZCB0ZXN0
cyIsCisgICAgICAgICJQYXRjaCBkb2VzIG5vdCBwYXNzIHRlc3RzIikKKworICAgICAgICBzZWxm
Ll9leHBlY3RlZF9mYWlsdXJlcy5zaHJpbmtfZXhwZWN0ZWRfZmFpbHVyZXMoc2VsZi5fZGVsZWdh
dGUubGF5b3V0X3Rlc3RfcmVzdWx0cygpLCBzdWNjZXNzKQorICAgICAgICByZXR1cm4gc3VjY2Vz
cworCisgICAgZGVmIF9idWlsZF9hbmRfdGVzdF93aXRob3V0X3BhdGNoKHNlbGYpOgorICAgICAg
ICBzdWNjZXNzID0gc2VsZi5fcnVuX2NvbW1hbmQoWworICAgICAgICAgICAgImJ1aWxkLWFuZC10
ZXN0IiwKKyAgICAgICAgICAgICItLWZvcmNlLWNsZWFuIiwKKyAgICAgICAgICAgICItLW5vLXVw
ZGF0ZSIsCisgICAgICAgICAgICAiLS1idWlsZCIsCisgICAgICAgICAgICAiLS10ZXN0IiwKKyAg
ICAgICAgICAgICItLW5vbi1pbnRlcmFjdGl2ZSIsCisgICAgICAgIF0sCisgICAgICAgICJBYmxl
IHRvIHBhc3MgdGVzdHMgd2l0aG91dCBwYXRjaCIsCisgICAgICAgICJVbmFibGUgdG8gcGFzcyB0
ZXN0cyB3aXRob3V0IHBhdGNoICh0cmVlIGlzIHJlZD8pIikKKworICAgICAgICBzZWxmLl9leHBl
Y3RlZF9mYWlsdXJlcy5zaHJpbmtfZXhwZWN0ZWRfZmFpbHVyZXMoc2VsZi5fZGVsZWdhdGUubGF5
b3V0X3Rlc3RfcmVzdWx0cygpLCBzdWNjZXNzKQorICAgICAgICByZXR1cm4gc3VjY2VzcworCisg
ICAgZGVmIF9sYW5kKHNlbGYpOgorICAgICAgICAjIFVuY2xlYXIgaWYgdGhpcyBzaG91bGQgcGFz
cyAtLXF1aWV0IG9yIG5vdC4gIElmIC0tcGFyZW50LWNvbW1hbmQgYWx3YXlzIGRvZXMgdGhlIHJl
cG9ydGluZywgdGhlbiBpdCBzaG91bGQuCisgICAgICAgIHJldHVybiBzZWxmLl9ydW5fY29tbWFu
ZChbCisgICAgICAgICAgICAibGFuZC1hdHRhY2htZW50IiwKKyAgICAgICAgICAgICItLWZvcmNl
LWNsZWFuIiwKKyAgICAgICAgICAgICItLWlnbm9yZS1idWlsZGVycyIsCisgICAgICAgICAgICAi
LS1ub24taW50ZXJhY3RpdmUiLAorICAgICAgICAgICAgIi0tcGFyZW50LWNvbW1hbmQ9Y29tbWl0
LXF1ZXVlIiwKKyAgICAgICAgICAgIHNlbGYuX3BhdGNoLmlkKCksCisgICAgICAgIF0sCisgICAg
ICAgICJMYW5kZWQgcGF0Y2giLAorICAgICAgICAiVW5hYmxlIHRvIGxhbmQgcGF0Y2giKQorCisg
ICAgZGVmIF9yZXBvcnRfZmxha3lfdGVzdHMoc2VsZiwgZmxha3lfdGVzdF9yZXN1bHRzLCByZXN1
bHRzX2FyY2hpdmUpOgorICAgICAgICBzZWxmLl9kZWxlZ2F0ZS5yZXBvcnRfZmxha3lfdGVzdHMo
c2VsZi5fcGF0Y2gsIGZsYWt5X3Rlc3RfcmVzdWx0cywgcmVzdWx0c19hcmNoaXZlKQorCisgICAg
ZGVmIF9yZXN1bHRzX2ZhaWxlZF9kaWZmZXJlbnRfdGVzdHMoc2VsZiwgZmlyc3QsIHNlY29uZCk6
CisgICAgICAgIGZpcnN0X2ZhaWxpbmdfdGVzdHMgPSBbXSBpZiBub3QgZmlyc3QgZWxzZSBmaXJz
dC5mYWlsaW5nX3Rlc3RzKCkKKyAgICAgICAgc2Vjb25kX2ZhaWxpbmdfdGVzdHMgPSBbXSBpZiBu
b3Qgc2Vjb25kIGVsc2Ugc2Vjb25kLmZhaWxpbmdfdGVzdHMoKQorICAgICAgICByZXR1cm4gZmly
c3RfZmFpbGluZ190ZXN0cyAhPSBzZWNvbmRfZmFpbGluZ190ZXN0cworCisgICAgZGVmIF90ZXN0
X3BhdGNoKHNlbGYpOgorICAgICAgICBpZiBzZWxmLl90ZXN0KCk6CisgICAgICAgICAgICByZXR1
cm4gVHJ1ZQorCisgICAgICAgICMgTm90ZTogYXJjaGl2ZV9sYXN0X2xheW91dF90ZXN0X3Jlc3Vs
dHMgZGVsZXRlcyB0aGUgcmVzdWx0cyBkaXJlY3RvcnksIG1ha2luZyB0aGVzZSBjYWxscyBvcmRl
ci1zZW5zaXR2ZS4KKyAgICAgICAgIyBXZSBjb3VsZCByZW1vdmUgdGhpcyBkZXBlbmRlbmN5IGJ5
IGJ1aWxkaW5nIHRoZSBsYXlvdXRfdGVzdF9yZXN1bHRzIGZyb20gdGhlIGFyY2hpdmUuCisgICAg
ICAgIGZpcnN0X3Jlc3VsdHMgPSBzZWxmLl9kZWxlZ2F0ZS5sYXlvdXRfdGVzdF9yZXN1bHRzKCkK
KyAgICAgICAgZmlyc3RfcmVzdWx0c19hcmNoaXZlID0gc2VsZi5fZGVsZWdhdGUuYXJjaGl2ZV9s
YXN0X2xheW91dF90ZXN0X3Jlc3VsdHMoc2VsZi5fcGF0Y2gpCisKKyAgICAgICAgaWYgc2VsZi5f
ZXhwZWN0ZWRfZmFpbHVyZXMuZmFpbHVyZXNfd2VyZV9leHBlY3RlZChmaXJzdF9yZXN1bHRzKToK
KyAgICAgICAgICAgIHJldHVybiBUcnVlCisKKyAgICAgICAgaWYgc2VsZi5fdGVzdCgpOgorICAg
ICAgICAgICAgIyBPbmx5IHJlcG9ydCBmbGFreSB0ZXN0cyBpZiB3ZSB3ZXJlIHN1Y2Nlc3NmdWwg
YXQgcGFyc2luZyByZXN1bHRzLmh0bWwgYW5kIGFyY2hpdmluZyByZXN1bHRzLgorICAgICAgICAg
ICAgaWYgZmlyc3RfcmVzdWx0cyBhbmQgZmlyc3RfcmVzdWx0c19hcmNoaXZlOgorICAgICAgICAg
ICAgICAgIHNlbGYuX3JlcG9ydF9mbGFreV90ZXN0cyhmaXJzdF9yZXN1bHRzLmZhaWxpbmdfdGVz
dF9yZXN1bHRzKCksIGZpcnN0X3Jlc3VsdHNfYXJjaGl2ZSkKKyAgICAgICAgICAgIHJldHVybiBU
cnVlCisKKyAgICAgICAgc2Vjb25kX3Jlc3VsdHMgPSBzZWxmLl9kZWxlZ2F0ZS5sYXlvdXRfdGVz
dF9yZXN1bHRzKCkKKyAgICAgICAgaWYgc2VsZi5fcmVzdWx0c19mYWlsZWRfZGlmZmVyZW50X3Rl
c3RzKGZpcnN0X3Jlc3VsdHMsIHNlY29uZF9yZXN1bHRzKToKKyAgICAgICAgICAgICMgV2UgY291
bGQgcmVwb3J0IGZsYWt5IHRlc3RzIGhlcmUsIGJ1dCB3ZSB3b3VsZCBuZWVkIHRvIGJlIGNhcmVm
dWwKKyAgICAgICAgICAgICMgdG8gdXNlIHNpbWlsYXIgY2hlY2tzIHRvIEV4cGVjdGVkRmFpbHVy
ZXMuX2Nhbl90cnVzdF9yZXN1bHRzCisgICAgICAgICAgICAjIHRvIG1ha2Ugc3VyZSB3ZSBkb24n
dCByZXBvcnQgY29uc3RhbnQgZmFpbHVyZXMgYXMgZmxha2VzIHdoZW4KKyAgICAgICAgICAgICMg
d2UgaGFwcGVuIHRvIGhpdCB0aGUgLS1leGl0LWFmdGVyLU4tZmFpbHVyZXMgbGltaXQuCisgICAg
ICAgICAgICAjIFNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTEy
NzIKKyAgICAgICAgICAgIHJldHVybiBGYWxzZQorCisgICAgICAgICMgQXJjaGl2ZSAoYW5kIHJl
bW92ZSkgc2Vjb25kIHJlc3VsdHMgc28gbGF5b3V0X3Rlc3RfcmVzdWx0cygpIGFmdGVyCisgICAg
ICAgICMgYnVpbGRfYW5kX3Rlc3Rfd2l0aG91dF9wYXRjaCB3b24ndCB1c2Ugc2Vjb25kIHJlc3Vs
dHMgaW5zdGVhZCBvZiB0aGUgY2xlYW4tdHJlZSByZXN1bHRzLgorICAgICAgICBzZWNvbmRfcmVz
dWx0c19hcmNoaXZlID0gc2VsZi5fZGVsZWdhdGUuYXJjaGl2ZV9sYXN0X2xheW91dF90ZXN0X3Jl
c3VsdHMoc2VsZi5fcGF0Y2gpCisKKyAgICAgICAgaWYgc2VsZi5fYnVpbGRfYW5kX3Rlc3Rfd2l0
aG91dF9wYXRjaCgpOgorICAgICAgICAgICAgIyBUaGUgZXJyb3IgZnJvbSB0aGUgcHJldmlvdXMg
Ll90ZXN0KCkgcnVuIGlzIHJlYWwsIHJlcG9ydCBpdC4KKyAgICAgICAgICAgIHJldHVybiBzZWxm
LnJlcG9ydF9mYWlsdXJlKGZpcnN0X3Jlc3VsdHNfYXJjaGl2ZSkKKworICAgICAgICBjbGVhbl90
cmVlX3Jlc3VsdHMgPSBzZWxmLl9kZWxlZ2F0ZS5sYXlvdXRfdGVzdF9yZXN1bHRzKCkKKyAgICAg
ICAgc2VsZi5fZXhwZWN0ZWRfZmFpbHVyZXMuZ3Jvd19leHBlY3RlZF9mYWlsdXJlcyhjbGVhbl90
cmVlX3Jlc3VsdHMpCisKKyAgICAgICAgcmV0dXJuIEZhbHNlICAjIFRyZWUgbXVzdCBiZSByZWRk
ZXIgdGhhbiB3ZSBleHBlY3RlZCwganVzdCByZXRyeSBsYXRlci4KKworICAgIGRlZiByZXN1bHRz
X2FyY2hpdmVfZnJvbV9wYXRjaF90ZXN0X3J1bihzZWxmLCBwYXRjaCk6CisgICAgICAgIGFzc2Vy
dChzZWxmLl9wYXRjaC5pZCgpID09IHBhdGNoLmlkKCkpICAjIENvbW1pdFF1ZXVlVGFzayBpcyBu
b3QgY3VycmVudGx5IHJlLXVzZWFibGUuCisgICAgICAgIHJldHVybiBzZWxmLl9yZXN1bHRzX2Fy
Y2hpdmVfZnJvbV9wYXRjaF90ZXN0X3J1bgorCisgICAgZGVmIHJlcG9ydF9mYWlsdXJlKHNlbGYs
IHJlc3VsdHNfYXJjaGl2ZT1Ob25lKToKKyAgICAgICAgaWYgbm90IHNlbGYudmFsaWRhdGUoKToK
KyAgICAgICAgICAgIHJldHVybiBGYWxzZQorICAgICAgICBzZWxmLl9yZXN1bHRzX2FyY2hpdmVf
ZnJvbV9wYXRjaF90ZXN0X3J1biA9IHJlc3VsdHNfYXJjaGl2ZQorICAgICAgICByYWlzZSBzZWxm
Ll9zY3JpcHRfZXJyb3IKKworICAgIGRlZiB2YWxpZGF0ZShzZWxmKToKKyAgICAgICAgcmFpc2Ug
Tm90SW1wbGVtZW50ZWRFcnJvcigic3ViY2xhc3NlcyBtdXN0IGltcGxlbWVudCIpCisKKyAgICBk
ZWYgcnVuKHNlbGYpOgorICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yKCJzdWJjbGFz
c2VzIG11c3QgaW1wbGVtZW50IikK
</data>
<flag name="review"
          id="83504"
          type_id="1"
          status="+"
          setter="eric"
    />
          </attachment>
      

    </bug>

</bugzilla>