<?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>42717</bug_id>
          
          <creation_ts>2010-07-20 16:50:16 -0700</creation_ts>
          <short_desc>A wrong password entered for site or proxy auth remains in WebCore credential storage, and is sent with subsequent requests</short_desc>
          <delta_ts>2010-07-21 10:21:46 -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>Page Loading</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alexey Proskuryakov">ap</reporter>
          <assigned_to name="Alexey Proskuryakov">ap</assigned_to>
          <cc>abarth</cc>
    
    <cc>beidson</cc>
    
    <cc>eric</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>254070</commentid>
    <comment_count>0</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-07-20 16:50:16 -0700</bug_when>
    <thetext>Credentials are never removed from WebCore credential storage, which has at least two downsides:
- if the remembered credentials are wrong, they will be sent with future requests, doubling server-side incorrect login counts;
- implementing logout by returning 401 in a response to valid credentials doesn&apos;t work. Note that this is not the best way to log out though, since an auth dialog will appear, which the user will have to cancel.

&lt;rdar://problem/7062824&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>254071</commentid>
    <comment_count>1</comment_count>
      <attachid>62134</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-07-20 16:54:37 -0700</bug_when>
    <thetext>Created attachment 62134
proposed fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>254074</commentid>
    <comment_count>2</comment_count>
      <attachid>62134</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-07-20 17:15:14 -0700</bug_when>
    <thetext>Comment on attachment 62134
proposed fix

Is there a race in the “storing a new credential” case was well as in the removal case? I ask because your comment in removal seemed to offer no reason this was specific to removal.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>254080</commentid>
    <comment_count>3</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-07-20 17:31:07 -0700</bug_when>
    <thetext>The credentials are stored when they become known (and re-stored as default for directory when used). If a race condition happens there, it&apos;s really a bug in Web site code, we can do nothing to fix it.

In contrast, we could store ResourceHandle &quot;current credential&quot; to make sure that we&apos;re not removing a different one.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>254379</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-07-21 10:06:36 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/63834 might have broken GTK Linux 32-bit Release</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>254391</commentid>
    <comment_count>5</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-07-21 10:21:46 -0700</bug_when>
    <thetext>Yes, committed in &lt;http://trac.webkit.org/changeset/63834&gt; with follow up fixes in &lt;http://trac.webkit.org/changeset/63836&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>62134</attachid>
            <date>2010-07-20 16:54:37 -0700</date>
            <delta_ts>2010-07-20 17:15:14 -0700</delta_ts>
            <desc>proposed fix</desc>
            <filename>401Logout.txt</filename>
            <type>text/plain</type>
            <size>16531</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2Mzc4OCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDQgKzEsMjMgQEAKLTIwMTAtMDctMTYgIEphbWVzIEhhd2tpbnMgIDxqaGF3a2luc0BjaHJv
bWl1bS5vcmc+CisyMDEwLTA3LTIwICBBbGV4ZXkgUHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29t
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MjcxNworICAgICAgICA8cmRhcjov
L3Byb2JsZW0vNzA2MjgyND4gQSB3cm9uZyBwYXNzd29yZCBlbnRlcmVkIGZvciBzaXRlIG9yIHBy
b3h5IGF1dGggcmVtYWlucyBpbiBXZWJDb3JlCisgICAgICAgIGNyZWRlbnRpYWwgc3RvcmFnZSwg
YW5kIGlzIHNlbnQgd2l0aCBzdWJzZXF1ZW50IHJlcXVlc3RzCisKKyAgICAgICAgVGVzdHM6IGh0
dHAvdGVzdHMvc2VjdXJpdHkvNDAxLWxvZ291dC80MDEtbG9nb3V0LnBocAorICAgICAgICAgICAg
ICAgaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9yZW1lbWJlci1iYWQtcGFzc3dvcmQuaHRtbAor
CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9DcmVkZW50aWFsU3RvcmFnZS5jcHA6IChXZWJD
b3JlOjpDcmVkZW50aWFsU3RvcmFnZTo6cmVtb3ZlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3
b3JrL0NyZWRlbnRpYWxTdG9yYWdlLmg6CisgICAgICAgIEFkZGVkIGEgd2F5IHRvIHJlbW92ZSBz
dG9yZWQgY3JlZGVudGlhbHMgZm9yIGEgZ2l2ZW4gcHJvdGVjdGlvbiBzcGFjZS4KKworICAgICAg
ICAqIHBsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VIYW5kbGVDRk5ldC5jcHA6IChXZWJDb3Jl
OjpSZXNvdXJjZUhhbmRsZTo6ZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJjZUhhbmRsZU1hYy5tbTogKFdlYkNv
cmU6OlJlc291cmNlSGFuZGxlOjpkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UpOgor
ICAgICAgICBSZW1vdmUgc3RvcmVkIGNyZWRlbnRpYWxzIGlmIHRoZXkgZGlkbid0IHdvcmsgdGhl
IGZpcnN0IHRpbWUuCisKKzIwMTAtMDctMjAgIEphbWVzIEhhd2tpbnMgIDxqaGF3a2luc0BjaHJv
bWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gRmlzaGVyLgogCkluZGV4OiBX
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQ3JlZGVudGlhbFN0b3JhZ2UuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9DcmVkZW50aWFsU3RvcmFnZS5jcHAJKHJldmlz
aW9uIDYzNzYwKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0NyZWRlbnRpYWxTdG9yYWdl
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTA2LDYgKzEwNiwxMSBAQCBDcmVkZW50aWFsIENyZWRl
bnRpYWxTdG9yYWdlOjpnZXQoY29uc3QgCiAgICAgcmV0dXJuIHByb3RlY3Rpb25TcGFjZVRvQ3Jl
ZGVudGlhbE1hcCgpLmdldChwcm90ZWN0aW9uU3BhY2UpOwogfQogCit2b2lkIENyZWRlbnRpYWxT
dG9yYWdlOjpyZW1vdmUoY29uc3QgUHJvdGVjdGlvblNwYWNlJiBwcm90ZWN0aW9uU3BhY2UpCit7
CisgICAgcHJvdGVjdGlvblNwYWNlVG9DcmVkZW50aWFsTWFwKCkucmVtb3ZlKHByb3RlY3Rpb25T
cGFjZSk7Cit9CisKIHN0YXRpYyBQYXRoVG9EZWZhdWx0UHJvdGVjdGlvblNwYWNlTWFwOjppdGVy
YXRvciBmaW5kRGVmYXVsdFByb3RlY3Rpb25TcGFjZUZvclVSTChjb25zdCBLVVJMJiB1cmwpCiB7
CiAgICAgQVNTRVJUKHVybC5wcm90b2NvbEluSFRUUEZhbWlseSgpKTsKSW5kZXg6IFdlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9DcmVkZW50aWFsU3RvcmFnZS5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9DcmVkZW50aWFsU3RvcmFnZS5oCShyZXZpc2lvbiA2Mzc2MCkK
KysrIFdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9DcmVkZW50aWFsU3RvcmFnZS5oCSh3b3JraW5n
IGNvcHkpCkBAIC0zNyw2ICszNyw3IEBAIHB1YmxpYzoKICAgICAvLyBXZWJDb3JlIHNlc3Npb24g
Y3JlZGVudGlhbCBzdG9yYWdlLgogICAgIHN0YXRpYyB2b2lkIHNldChjb25zdCBDcmVkZW50aWFs
JiwgY29uc3QgUHJvdGVjdGlvblNwYWNlJiwgY29uc3QgS1VSTCYpOwogICAgIHN0YXRpYyBDcmVk
ZW50aWFsIGdldChjb25zdCBQcm90ZWN0aW9uU3BhY2UmKTsKKyAgICBzdGF0aWMgdm9pZCByZW1v
dmUoY29uc3QgUHJvdGVjdGlvblNwYWNlJik7CiAKICAgICAvLyBPUyBwZXJzaXN0ZW50IHN0b3Jh
Z2UuCiAgICAgc3RhdGljIENyZWRlbnRpYWwgZ2V0RnJvbVBlcnNpc3RlbnRTdG9yYWdlKGNvbnN0
IFByb3RlY3Rpb25TcGFjZSYpOwpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jl
c291cmNlSGFuZGxlQ0ZOZXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9jZi9SZXNvdXJjZUhhbmRsZUNGTmV0LmNwcAkocmV2aXNpb24gNjM3NjApCisrKyBXZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VIYW5kbGVDRk5ldC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTUxOCwxNyArNTE4LDI1IEBAIHZvaWQgUmVzb3VyY2VIYW5kbGU6OmRpZFJlY2Vp
dmVBdXRoZW50aWMKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGlmICghY2hhbGxlbmdl
LnByZXZpb3VzRmFpbHVyZUNvdW50KCkgJiYgKCFjbGllbnQoKSB8fCBjbGllbnQoKS0+c2hvdWxk
VXNlQ3JlZGVudGlhbFN0b3JhZ2UodGhpcykpKSB7Ci0gICAgICAgIENyZWRlbnRpYWwgY3JlZGVu
dGlhbCA9IENyZWRlbnRpYWxTdG9yYWdlOjpnZXQoY2hhbGxlbmdlLnByb3RlY3Rpb25TcGFjZSgp
KTsKLSAgICAgICAgaWYgKCFjcmVkZW50aWFsLmlzRW1wdHkoKSAmJiBjcmVkZW50aWFsICE9IGQt
Pm1faW5pdGlhbENyZWRlbnRpYWwpIHsKLSAgICAgICAgICAgIEFTU0VSVChjcmVkZW50aWFsLnBl
cnNpc3RlbmNlKCkgPT0gQ3JlZGVudGlhbFBlcnNpc3RlbmNlTm9uZSk7Ci0gICAgICAgICAgICBp
ZiAoY2hhbGxlbmdlLmZhaWx1cmVSZXNwb25zZSgpLmh0dHBTdGF0dXNDb2RlKCkgPT0gNDAxKSB7
Ci0gICAgICAgICAgICAgICAgLy8gU3RvcmUgdGhlIGNyZWRlbnRpYWwgYmFjaywgcG9zc2libHkg
YWRkaW5nIGl0IGFzIGEgZGVmYXVsdCBmb3IgdGhpcyBkaXJlY3RvcnkuCi0gICAgICAgICAgICAg
ICAgQ3JlZGVudGlhbFN0b3JhZ2U6OnNldChjcmVkZW50aWFsLCBjaGFsbGVuZ2UucHJvdGVjdGlv
blNwYWNlKCksIGZpcnN0UmVxdWVzdCgpLnVybCgpKTsKKyAgICBpZiAoIWNsaWVudCgpIHx8IGNs
aWVudCgpLT5zaG91bGRVc2VDcmVkZW50aWFsU3RvcmFnZSh0aGlzKSkgeworICAgICAgICBpZiAo
IWQtPm1faW5pdGlhbENyZWRlbnRpYWwuaXNFbXB0eSgpIHx8IGNoYWxsZW5nZS5wcmV2aW91c0Zh
aWx1cmVDb3VudCgpKSB7CisgICAgICAgICAgICAvLyBUaGUgc3RvcmVkIGNyZWRlbnRpYWwgd2Fz
bid0IGFjY2VwdGVkLCBzdG9wIHVzaW5nIGl0LgorICAgICAgICAgICAgLy8gVGhlcmUgaXMgYSBy
YWNlIGNvbmRpdGlvbiBoZXJlLCBzaW5jZSBhIGRpZmZlcmVudCBjcmVkZW50aWFsIG1pZ2h0IGhh
dmUgYWxyZWFkeSBiZWVuIHN0b3JlZCBieSBhbm90aGVyIFJlc291cmNlSGFuZGxlLAorICAgICAg
ICAgICAgLy8gYnV0IHRoZSBvYnNlcnZhYmxlIGVmZmVjdCBzaG91bGQgYmUgdmVyeSBtaW5vciwg
aWYgYW55LgorICAgICAgICAgICAgQ3JlZGVudGlhbFN0b3JhZ2U6OnJlbW92ZShjaGFsbGVuZ2Uu
cHJvdGVjdGlvblNwYWNlKCkpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKCFjaGFsbGVuZ2Uu
cHJldmlvdXNGYWlsdXJlQ291bnQoKSkgeworICAgICAgICAgICAgQ3JlZGVudGlhbCBjcmVkZW50
aWFsID0gQ3JlZGVudGlhbFN0b3JhZ2U6OmdldChjaGFsbGVuZ2UucHJvdGVjdGlvblNwYWNlKCkp
OworICAgICAgICAgICAgaWYgKCFjcmVkZW50aWFsLmlzRW1wdHkoKSAmJiBjcmVkZW50aWFsICE9
IGQtPm1faW5pdGlhbENyZWRlbnRpYWwpIHsKKyAgICAgICAgICAgICAgICBBU1NFUlQoY3JlZGVu
dGlhbC5wZXJzaXN0ZW5jZSgpID09IENyZWRlbnRpYWxQZXJzaXN0ZW5jZU5vbmUpOworICAgICAg
ICAgICAgICAgIGlmIChjaGFsbGVuZ2UuZmFpbHVyZVJlc3BvbnNlKCkuaHR0cFN0YXR1c0NvZGUo
KSA9PSA0MDEpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gU3RvcmUgdGhlIGNyZWRlbnRpYWwg
YmFjaywgcG9zc2libHkgYWRkaW5nIGl0IGFzIGEgZGVmYXVsdCBmb3IgdGhpcyBkaXJlY3Rvcnku
CisgICAgICAgICAgICAgICAgICAgIENyZWRlbnRpYWxTdG9yYWdlOjpzZXQoY3JlZGVudGlhbCwg
Y2hhbGxlbmdlLnByb3RlY3Rpb25TcGFjZSgpLCBmaXJzdFJlcXVlc3QoKS51cmwoKSk7CisgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIFtjaGFsbGVuZ2Uuc2VuZGVyKCkgdXNlQ3Jl
ZGVudGlhbDptYWMoY3JlZGVudGlhbCkgZm9yQXV0aGVudGljYXRpb25DaGFsbGVuZ2U6bWFjKGNo
YWxsZW5nZSldOworICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgIFJldGFpblB0cjxDRlVSTENyZWRlbnRpYWxSZWY+IGNmQ3JlZGVudGlhbChBZG9wdENG
LCBjcmVhdGVDRihjcmVkZW50aWFsKSk7Ci0gICAgICAgICAgICBDRlVSTENvbm5lY3Rpb25Vc2VD
cmVkZW50aWFsKGQtPm1fY29ubmVjdGlvbi5nZXQoKSwgY2ZDcmVkZW50aWFsLmdldCgpLCBjaGFs
bGVuZ2UuY2ZVUkxBdXRoQ2hhbGxlbmdlUmVmKCkpOwotICAgICAgICAgICAgcmV0dXJuOwogICAg
ICAgICB9CiAgICAgfQogCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291
cmNlSGFuZGxlTWFjLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9t
YWMvUmVzb3VyY2VIYW5kbGVNYWMubW0JKHJldmlzaW9uIDYzNzYwKQorKysgV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJjZUhhbmRsZU1hYy5tbQkod29ya2luZyBjb3B5KQpAQCAt
NTgxLDE2ICs1ODEsMjUgQEAgdm9pZCBSZXNvdXJjZUhhbmRsZTo6ZGlkUmVjZWl2ZUF1dGhlbnRp
YwogICAgIH0KIAogI2lmbmRlZiBCVUlMRElOR19PTl9USUdFUgotICAgIGlmICghY2hhbGxlbmdl
LnByZXZpb3VzRmFpbHVyZUNvdW50KCkgJiYgKCFjbGllbnQoKSB8fCBjbGllbnQoKS0+c2hvdWxk
VXNlQ3JlZGVudGlhbFN0b3JhZ2UodGhpcykpKSB7Ci0gICAgICAgIENyZWRlbnRpYWwgY3JlZGVu
dGlhbCA9IENyZWRlbnRpYWxTdG9yYWdlOjpnZXQoY2hhbGxlbmdlLnByb3RlY3Rpb25TcGFjZSgp
KTsKLSAgICAgICAgaWYgKCFjcmVkZW50aWFsLmlzRW1wdHkoKSAmJiBjcmVkZW50aWFsICE9IGQt
Pm1faW5pdGlhbENyZWRlbnRpYWwpIHsKLSAgICAgICAgICAgIEFTU0VSVChjcmVkZW50aWFsLnBl
cnNpc3RlbmNlKCkgPT0gQ3JlZGVudGlhbFBlcnNpc3RlbmNlTm9uZSk7Ci0gICAgICAgICAgICBp
ZiAoY2hhbGxlbmdlLmZhaWx1cmVSZXNwb25zZSgpLmh0dHBTdGF0dXNDb2RlKCkgPT0gNDAxKSB7
Ci0gICAgICAgICAgICAgICAgLy8gU3RvcmUgdGhlIGNyZWRlbnRpYWwgYmFjaywgcG9zc2libHkg
YWRkaW5nIGl0IGFzIGEgZGVmYXVsdCBmb3IgdGhpcyBkaXJlY3RvcnkuCi0gICAgICAgICAgICAg
ICAgQ3JlZGVudGlhbFN0b3JhZ2U6OnNldChjcmVkZW50aWFsLCBjaGFsbGVuZ2UucHJvdGVjdGlv
blNwYWNlKCksIGZpcnN0UmVxdWVzdCgpLnVybCgpKTsKKyAgICBpZiAoIWNsaWVudCgpIHx8IGNs
aWVudCgpLT5zaG91bGRVc2VDcmVkZW50aWFsU3RvcmFnZSh0aGlzKSkgeworICAgICAgICBpZiAo
IWQtPm1faW5pdGlhbENyZWRlbnRpYWwuaXNFbXB0eSgpIHx8IGNoYWxsZW5nZS5wcmV2aW91c0Zh
aWx1cmVDb3VudCgpKSB7CisgICAgICAgICAgICAvLyBUaGUgc3RvcmVkIGNyZWRlbnRpYWwgd2Fz
bid0IGFjY2VwdGVkLCBzdG9wIHVzaW5nIGl0LgorICAgICAgICAgICAgLy8gVGhlcmUgaXMgYSBy
YWNlIGNvbmRpdGlvbiBoZXJlLCBzaW5jZSBhIGRpZmZlcmVudCBjcmVkZW50aWFsIG1pZ2h0IGhh
dmUgYWxyZWFkeSBiZWVuIHN0b3JlZCBieSBhbm90aGVyIFJlc291cmNlSGFuZGxlLAorICAgICAg
ICAgICAgLy8gYnV0IHRoZSBvYnNlcnZhYmxlIGVmZmVjdCBzaG91bGQgYmUgdmVyeSBtaW5vciwg
aWYgYW55LgorICAgICAgICAgICAgQ3JlZGVudGlhbFN0b3JhZ2U6OnJlbW92ZShjaGFsbGVuZ2Uu
cHJvdGVjdGlvblNwYWNlKCkpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKCFjaGFsbGVuZ2Uu
cHJldmlvdXNGYWlsdXJlQ291bnQoKSkgeworICAgICAgICAgICAgQ3JlZGVudGlhbCBjcmVkZW50
aWFsID0gQ3JlZGVudGlhbFN0b3JhZ2U6OmdldChjaGFsbGVuZ2UucHJvdGVjdGlvblNwYWNlKCkp
OworICAgICAgICAgICAgaWYgKCFjcmVkZW50aWFsLmlzRW1wdHkoKSAmJiBjcmVkZW50aWFsICE9
IGQtPm1faW5pdGlhbENyZWRlbnRpYWwpIHsKKyAgICAgICAgICAgICAgICBBU1NFUlQoY3JlZGVu
dGlhbC5wZXJzaXN0ZW5jZSgpID09IENyZWRlbnRpYWxQZXJzaXN0ZW5jZU5vbmUpOworICAgICAg
ICAgICAgICAgIGlmIChjaGFsbGVuZ2UuZmFpbHVyZVJlc3BvbnNlKCkuaHR0cFN0YXR1c0NvZGUo
KSA9PSA0MDEpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gU3RvcmUgdGhlIGNyZWRlbnRpYWwg
YmFjaywgcG9zc2libHkgYWRkaW5nIGl0IGFzIGEgZGVmYXVsdCBmb3IgdGhpcyBkaXJlY3Rvcnku
CisgICAgICAgICAgICAgICAgICAgIENyZWRlbnRpYWxTdG9yYWdlOjpzZXQoY3JlZGVudGlhbCwg
Y2hhbGxlbmdlLnByb3RlY3Rpb25TcGFjZSgpLCBmaXJzdFJlcXVlc3QoKS51cmwoKSk7CisgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIFtjaGFsbGVuZ2Uuc2VuZGVyKCkgdXNlQ3Jl
ZGVudGlhbDptYWMoY3JlZGVudGlhbCkgZm9yQXV0aGVudGljYXRpb25DaGFsbGVuZ2U6bWFjKGNo
YWxsZW5nZSldOworICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgIFtjaGFsbGVuZ2Uuc2VuZGVyKCkgdXNlQ3JlZGVudGlhbDptYWMoY3JlZGVudGlhbCkg
Zm9yQXV0aGVudGljYXRpb25DaGFsbGVuZ2U6bWFjKGNoYWxsZW5nZSldOwotICAgICAgICAgICAg
cmV0dXJuOwogICAgICAgICB9CiAgICAgfQogI2VuZGlmCkluZGV4OiBMYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA2Mzc4
OCkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIx
IEBACisyMDEwLTA3LTIwICBBbGV4ZXkgUHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MjcxNworICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vNzA2MjgyND4gQSB3cm9uZyBwYXNzd29yZCBlbnRlcmVkIGZvciBzaXRlIG9yIHByb3h5IGF1
dGggcmVtYWlucyBpbiBXZWJDb3JlCisgICAgICAgIGNyZWRlbnRpYWwgc3RvcmFnZSwgYW5kIGlz
IHNlbnQgd2l0aCBzdWJzZXF1ZW50IHJlcXVlc3RzCisKKyAgICAgICAgQWRkaW5nIHRlc3RzIHdp
dGggYW5kIHdpdGhvdXQgWE1MSHR0cFJlcXVlc3QuCisKKyAgICAgICAgKiBodHRwL3Rlc3RzL3Nl
Y3VyaXR5LzQwMS1sb2dvdXQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkv
NDAxLWxvZ291dC80MDEtbG9nb3V0LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0
cC90ZXN0cy9zZWN1cml0eS80MDEtbG9nb3V0LzQwMS1sb2dvdXQucGhwOiBBZGRlZC4KKyAgICAg
ICAgKiBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3JlbWVtYmVyLWJhZC1wYXNzd29yZC1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvcmVt
ZW1iZXItYmFkLXBhc3N3b3JkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMveG1s
aHR0cHJlcXVlc3QvcmVzb3VyY2VzL3JlbWVtYmVyLWJhZC1wYXNzd29yZDogQWRkZWQuCisgICAg
ICAgICogaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9yZXNvdXJjZXMvcmVtZW1iZXItYmFkLXBh
c3N3b3JkL2NvdW50LWZhaWx1cmVzLnBocDogQWRkZWQuCisKIDIwMTAtMDctMjAgIFNhbSBXZWlu
aWcgIDxzYW1Ad2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBNYWNpZWogU3RhY2hv
d2lhay4KSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvNDAxLWxvZ291dC80
MDEtbG9nb3V0LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3NlY3VyaXR5LzQwMS1sb2dvdXQvNDAxLWxvZ291dC1leHBlY3RlZC50eHQJKHJldmlzaW9u
IDApCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5LzQwMS1sb2dvdXQvNDAxLWxv
Z291dC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMyBAQAorPHVua25vd24+
IC0gZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlIC0gUmVzcG9uZGluZyB3aXRoIHVz
ZXJuYW1lOnBhc3N3b3JkCis8dW5rbm93bj4gLSBkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFs
bGVuZ2UgLSBTaW11bGF0aW5nIGNhbmNlbGxlZCBhdXRoZW50aWNhdGlvbiBzaGVldAorUEFTUwpJ
bmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS80MDEtbG9nb3V0LzQwMS1sb2dv
dXQucGhwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvNDAx
LWxvZ291dC80MDEtbG9nb3V0LnBocAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2h0dHAv
dGVzdHMvc2VjdXJpdHkvNDAxLWxvZ291dC80MDEtbG9nb3V0LnBocAkocmV2aXNpb24gMCkKQEAg
LTAsMCArMSw0NiBAQAorPD9waHAKKyAgaWYgKCFpc3NldCgkX1JFUVVFU1RbJ3VpZCddKSkgewor
ICAgIC8vIFN0ZXAgMSAtIG5hdmlnYXRlIHRvIGEgcGFnZSB0aGF0IHdpbGwgbWFrZSB1cyByZW1l
bWJlciBjcmVkZW50aWFscy4KKyAgICBlY2hvICI8c2NyaXB0PlxuIjsKKyAgICBlY2hvICJpZiAo
IXdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikge1xuIjsKKyAgICBlY2hvICIgICAgZG9jdW1l
bnQud3JpdGUoJ1RoaXMgdGVzdCBvbmx5IHdvcmtzIGFzIGFuIGF1dG9tYXRlZCBvbmUnKTtcbiI7
CisgICAgZWNobyAiICAgIHRocm93IDA7XG4iOworICAgIGVjaG8gIn1cbiI7CisgICAgZWNobyAi
bGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpO1xuIjsKKyAgICBlY2hvICJsYXlv
dXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7XG4iOworICAgIGVjaG8gImxheW91dFRlc3RD
b250cm9sbGVyLnNldEhhbmRsZXNBdXRoZW50aWNhdGlvbkNoYWxsZW5nZXModHJ1ZSlcbiI7Cisg
ICAgZWNobyAibGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0QXV0aGVudGljYXRpb25Vc2VybmFtZSgn
dXNlcm5hbWUnKVxuIjsKKyAgICBlY2hvICJsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRBdXRoZW50
aWNhdGlvblBhc3N3b3JkKCdwYXNzd29yZCcpXG4iOworICAgIGVjaG8gImxvY2F0aW9uID0gJ2h0
dHA6Ly8xMjcuMC4wLjE6ODAwMC9zZWN1cml0eS80MDEtbG9nb3V0LzQwMS1sb2dvdXQucGhwP3Vp
ZD11c2VybmFtZSc7XG4iOworICAgIGVjaG8gIjwvc2NyaXB0PlxuIjsKKyAgfSBlbHNlIGlmICgh
aXNzZXQoJF9TRVJWRVJbJ1BIUF9BVVRIX1VTRVInXSkgfHwgKCRfUkVRVUVTVFsndWlkJ10gIT0g
JF9TRVJWRVJbJ1BIUF9BVVRIX1VTRVInXSkpIHsKKyAgICBpZiAoaXNzZXQoJF9SRVFVRVNUWyds
YXN0c3RlcCddKSkgeworICAgICAgLy8gU3RlcCA0IC0gQ3JlZGVudGlhbHMgYXJlIG5vIGxvbmdl
ciBiZWluZyBzZW50CisgICAgICBlY2hvICJQQVNTIjsKKyAgICAgIGVjaG8gIjxzY3JpcHQ+XG4i
OworICAgICAgZWNobyAiaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikge1xuIjsKKyAg
ICAgIGVjaG8gIiAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7XG4iOworICAg
ICAgZWNobyAifVxuIjsKKyAgICAgIGVjaG8gIjwvc2NyaXB0PlxuIjsKKyAgICB9IGVsc2Ugewor
ICAgICAgLy8gQXNrIGZvciBjcmVkZW50aWFscyBpZiB0aGVyZSBhcmUgbm9uZQorICAgICAgaGVh
ZGVyKCdXV1ctQXV0aGVudGljYXRlOiBCYXNpYyByZWFsbT0iNDAxLWxvZ291dCInKTsKKyAgICAg
IGhlYWRlcignSFRUUC8xLjAgNDAxIFVuYXV0aG9yaXplZCcpOworICAgIH0KKyAgfSBlbHNlIHsK
KyAgICBpZiAoIWlzc2V0KCRfUkVRVUVTVFsnbG9nb3V0J10pKSB7CisgICAgICAvLyBTdGVwIDIg
LSBuYXZpZ2F0ZSB0byBhIHBhZ2UgdGhhdCB3aWxsIG1ha2UgdXMgZm9yZ2V0IHRoZSBjcmVkZW50
aWFscworICAgICAgZWNobyAiPHNjcmlwdD5cbiI7CisgICAgICBlY2hvICJsYXlvdXRUZXN0Q29u
dHJvbGxlci5zZXRIYW5kbGVzQXV0aGVudGljYXRpb25DaGFsbGVuZ2VzKGZhbHNlKVxuIjsKKyAg
ICAgIGVjaG8gImxvY2F0aW9uID0gJ2h0dHA6Ly8xMjcuMC4wLjE6ODAwMC9zZWN1cml0eS80MDEt
bG9nb3V0LzQwMS1sb2dvdXQucGhwP3VpZD11c2VybmFtZSZsb2dvdXQ9MSc7XG4iOworICAgICAg
ZWNobyAiPC9zY3JpcHQ+XG4iOworICAgIH0gZWxzZSB7CisgICAgICAvLyBTdGVwIDMgLSBsb2dv
dXQKKyAgICAgIGhlYWRlcignV1dXLUF1dGhlbnRpY2F0ZTogQmFzaWMgcmVhbG09IjQwMS1sb2dv
dXQiJyk7CisgICAgICBoZWFkZXIoJ0hUVFAvMS4wIDQwMSBVbmF1dGhvcml6ZWQnKTsKKyAgICAg
IGVjaG8gIjxzY3JpcHQ+XG4iOworICAgICAgZWNobyAibG9jYXRpb24gPSAnaHR0cDovLzEyNy4w
LjAuMTo4MDAwL3NlY3VyaXR5LzQwMS1sb2dvdXQvNDAxLWxvZ291dC5waHA/dWlkPXVzZXJuYW1l
Jmxhc3RzdGVwPTEnO1xuIjsKKyAgICAgIGVjaG8gIjwvc2NyaXB0PlxuIjsKKyAgICB9CisgIH0K
Kz8+CkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3JlbWVtYmVy
LWJhZC1wYXNzd29yZC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy94bWxodHRwcmVxdWVzdC9yZW1lbWJlci1iYWQtcGFzc3dvcmQtZXhwZWN0ZWQudHh0
CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9y
ZW1lbWJlci1iYWQtcGFzc3dvcmQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsx
LDEzIEBACis8dW5rbm93bj4gLSBkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UgLSBT
aW11bGF0aW5nIGNhbmNlbGxlZCBhdXRoZW50aWNhdGlvbiBzaGVldAorPHVua25vd24+IC0gZGlk
UmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlIC0gU2ltdWxhdGluZyBjYW5jZWxsZWQgYXV0
aGVudGljYXRpb24gc2hlZXQKK3JkYXI6Ly9wcm9ibGVtLzcwNjI4MjQgQSB3cm9uZyBwYXNzd29y
ZCBlbnRlcmVkIGZvciBzaXRlIG9yIHByb3h5IGF1dGggcmVtYWlucyBpbiBXZWJDb3JlIGNyZWRl
bnRpYWwgc3RvcmFnZSwgYW5kIGlzIHNlbnQgd2l0aCBzdWJzZXF1ZW50IHJlcXVlc3RzLgorCitU
aGlzIHRlc3QgY291bnRzIHRoZSBudW1iZXIgb2YgZmFpbGVkIHJlcXVlc3RzIHNlcnZlciBzaWRl
LgorCitQQVNTCisKK1N5bmMKK1dpdGggY3JlZGVudGlhbHMgV2l0aG91dCBjcmVkZW50aWFscwor
QXN5bmMKK1dpdGggY3JlZGVudGlhbHMgV2l0aG91dCBjcmVkZW50aWFscyAKK1N0YXR1cwpJbmRl
eDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9yZW1lbWJlci1iYWQtcGFz
c3dvcmQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHBy
ZXF1ZXN0L3JlbWVtYmVyLWJhZC1wYXNzd29yZC5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9yZW1lbWJlci1iYWQtcGFzc3dvcmQuaHRt
bAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw2OCBAQAorPGJvZHk+Cis8cD48YSBocmVmPSJyZGFy
Oi8vcHJvYmxlbS83MDYyODI0Ij5yZGFyOi8vcHJvYmxlbS83MDYyODI0PC9hPiBBIHdyb25nIHBh
c3N3b3JkIGVudGVyZWQgZm9yIHNpdGUgb3IgcHJveHkgYXV0aCByZW1haW5zIGluIFdlYkNvcmUg
Y3JlZGVudGlhbCBzdG9yYWdlLCBhbmQgaXMgc2VudCB3aXRoIHN1YnNlcXVlbnQgcmVxdWVzdHMu
PC9wPgorPHA+VGhpcyB0ZXN0IGNvdW50cyB0aGUgbnVtYmVyIG9mIGZhaWxlZCByZXF1ZXN0cyBz
ZXJ2ZXIgc2lkZS48L3A+Cis8ZGl2IGlkID0gcmVzdWx0PlRlc3RpbmcuLi4gUGxlYXNlIGNhbmNl
bCBhbGwgYXV0aGVudGljYXRpb24gZGlhbG9ncy48L2Rpdj48L2JyPgorPGRpdj5TeW5jPC9kaXY+
Cis8YnV0dG9uIG9uY2xpY2s9InNlbmRXaXRoQ3JlZGVudGlhbHMoZmFsc2UpIj5XaXRoIGNyZWRl
bnRpYWxzPC9idXR0b24+Cis8YnV0dG9uIG9uY2xpY2s9InNlbmRXaXRob3V0Q3JlZGVudGlhbHMo
ZmFsc2UpIj5XaXRob3V0IGNyZWRlbnRpYWxzPC9idXR0b24+Cis8ZGl2PkFzeW5jPC9kaXY+Cis8
YnV0dG9uIG9uY2xpY2s9InNlbmRXaXRoQ3JlZGVudGlhbHModHJ1ZSkiPldpdGggY3JlZGVudGlh
bHM8L2J1dHRvbj4KKzxidXR0b24gb25jbGljaz0ic2VuZFdpdGhvdXRDcmVkZW50aWFscyh0cnVl
KSI+V2l0aG91dCBjcmVkZW50aWFsczwvYnV0dG9uPgorPGJyPgorPGJ1dHRvbiBvbmNsaWNrPSJz
dGF0dXMoKSI+U3RhdHVzPC9idXR0b24+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy5sYXlvdXRUZXN0
Q29udHJvbGxlcikgeworICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCkKK30KKworZnVuY3Rpb24gc2Vu
ZFdpdGhDcmVkZW50aWFscyhuZXh0KQoreworICAgIHZhciB4aHIgPSBuZXcgWE1MSHR0cFJlcXVl
c3Q7CisgICAgeGhyLm9wZW4oIkdFVCIsICJyZXNvdXJjZXMvcmVtZW1iZXItYmFkLXBhc3N3b3Jk
L2NvdW50LWZhaWx1cmVzLnBocCIsIG5leHQgPyB0cnVlIDogZmFsc2UsICJmb28iLCAiYmFyIik7
CisgICAgeGhyLnNlbmQoIiIpOworICAgIGlmIChuZXh0KSB7CisgICAgICAgIHhoci5vbmxvYWQg
PSBuZXh0OworICAgICAgICB4aHIub25lcnJvciA9IG5leHQ7CisgICAgfQorfQorCitmdW5jdGlv
biBzZW5kV2l0aG91dENyZWRlbnRpYWxzKG5leHQpCit7CisgICAgdmFyIHhociA9IG5ldyBYTUxI
dHRwUmVxdWVzdDsKKyAgICB4aHIub3BlbigiR0VUIiwgInJlc291cmNlcy9yZW1lbWJlci1iYWQt
cGFzc3dvcmQvY291bnQtZmFpbHVyZXMucGhwIiwgbmV4dCA/IHRydWUgOiBmYWxzZSk7CisgICAg
eGhyLnNlbmQoIiIpOworCisgICAgaWYgKG5leHQpIHsKKyAgICAgICAgeGhyLm9ubG9hZCA9IG5l
eHQ7CisgICAgICAgIHhoci5vbmVycm9yID0gbmV4dDsKKyAgICB9Cit9CisKK2Z1bmN0aW9uIHN0
YXR1cygpCit7CisgICAgdmFyIHhociA9IG5ldyBYTUxIdHRwUmVxdWVzdDsKKyAgICB4aHIub3Bl
bigiR0VUIiwgInJlc291cmNlcy9yZW1lbWJlci1iYWQtcGFzc3dvcmQvY291bnQtZmFpbHVyZXMu
cGhwP2NvbW1hbmQ9c3RhdHVzIiwgZmFsc2UpOworICAgIHhoci5zZW5kKCIiKTsKKyAgICByZXR1
cm4geGhyLnJlc3BvbnNlVGV4dDsKK30KKworZnVuY3Rpb24gcmVzZXQoKQoreworICAgIHZhciB4
aHIgPSBuZXcgWE1MSHR0cFJlcXVlc3Q7CisgICAgeGhyLm9wZW4oIkdFVCIsICJyZXNvdXJjZXMv
cmVtZW1iZXItYmFkLXBhc3N3b3JkL2NvdW50LWZhaWx1cmVzLnBocD9jb21tYW5kPXJlc2V0Iiwg
ZmFsc2UpOworICAgIHhoci5zZW5kKCIiKTsKK30KKworcmVzZXQoKTsKK3NlbmRXaXRoQ3JlZGVu
dGlhbHMoKTsKK3NlbmRXaXRob3V0Q3JlZGVudGlhbHMoKTsKK3NlbmRXaXRoQ3JlZGVudGlhbHMo
ZnVuY3Rpb24oKSB7CitzZW5kV2l0aG91dENyZWRlbnRpYWxzKGZ1bmN0aW9uKCkgewordmFyIHMg
PSBzdGF0dXMoKTsKK2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZXN1bHQiKS5pbm5lckhUTUwg
PSAocyA9PSAyID8gIlBBU1MiIDogKCJGQUlMOiAiICsgcykpOworaWYgKHdpbmRvdy5sYXlvdXRU
ZXN0Q29udHJvbGxlcikKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7Cit9
KX0pOworPC9zY3JpcHQ+Cis8L2JvZHk+CkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ht
bGh0dHByZXF1ZXN0L3Jlc291cmNlcy9yZW1lbWJlci1iYWQtcGFzc3dvcmQvY291bnQtZmFpbHVy
ZXMucGhwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVl
c3QvcmVzb3VyY2VzL3JlbWVtYmVyLWJhZC1wYXNzd29yZC9jb3VudC1mYWlsdXJlcy5waHAJKHJl
dmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3Jlc291
cmNlcy9yZW1lbWJlci1iYWQtcGFzc3dvcmQvY291bnQtZmFpbHVyZXMucGhwCShyZXZpc2lvbiAw
KQpAQCAtMCwwICsxLDQ4IEBACis8P3BocAorcmVxdWlyZV9vbmNlICcuLi8uLi8uLi9yZXNvdXJj
ZXMvcG9ydGFiaWxpdHlMYXllci5waHAnOworCitoZWFkZXIoIkV4cGlyZXM6IFRodSwgMDEgRGVj
IDIwMDMgMTY6MDA6MDAgR01UIik7CitoZWFkZXIoIkNhY2hlLUNvbnRyb2w6IG5vLWNhY2hlLCBu
by1zdG9yZSwgbXVzdC1yZXZhbGlkYXRlIik7CitoZWFkZXIoIlByYWdtYTogbm8tY2FjaGUiKTsK
KworaWYgKCFzeXNfZ2V0X3RlbXBfZGlyKCkpIHsKKyAgICBlY2hvICJGQUlMOiBObyB0ZW1wIGRp
ciB3YXMgcmV0dXJuZWQuXG4iOworICAgIGV4aXQoKTsKK30KKworZnVuY3Rpb24gc2V0U3RhdGUo
JG5ld1N0YXRlLCAkZmlsZSkKK3sKKyAgICBmaWxlX3B1dF9jb250ZW50cygkZmlsZSwgJG5ld1N0
YXRlKTsKK30KKworZnVuY3Rpb24gZ2V0U3RhdGUoJGZpbGUpCit7CisgICAgaWYgKCFmaWxlX2V4
aXN0cygkZmlsZSkpIHsKKyAgICAgICAgcmV0dXJuICIwIjsKKyAgICB9CisgICAgcmV0dXJuIGZp
bGVfZ2V0X2NvbnRlbnRzKCRmaWxlKTsKK30KKworJHN0YXRlRmlsZSA9IHN5c19nZXRfdGVtcF9k
aXIoKSAuICIvcmVtZW1iZXItYmFkLXBhc3N3b3JkLXN0YXR1cyI7CisKKyRjb21tYW5kID0gJF9H
RVRbJ2NvbW1hbmQnXTsKK2lmICgkY29tbWFuZCkgeworICAgIGlmICgkY29tbWFuZCA9PSAic3Rh
dHVzIikKKyAgICAgICAgZWNobyBnZXRTdGF0ZSgkc3RhdGVGaWxlKTsKKyAgICBlbHNlIGlmICgk
Y29tbWFuZCA9PSAicmVzZXQiKQorICAgICAgICBlY2hvIHNldFN0YXRlKCIwIiwgJHN0YXRlRmls
ZSk7CisgICAgZXhpdCgpOworfQorCitpZiAoIWlzc2V0KCRfU0VSVkVSWydQSFBfQVVUSF9VU0VS
J10pIHx8ICFpc3NldCgkX1JFUVVFU1RbJ3VpZCddKSB8fCAoJF9SRVFVRVNUWyd1aWQnXSAhPSAk
X1NFUlZFUlsnUEhQX0FVVEhfVVNFUiddKSkgeworICAgIGhlYWRlcignV1dXLUF1dGhlbnRpY2F0
ZTogQmFzaWMgcmVhbG09IldlYktpdCBUZXN0IFJlYWxtIicpOworICAgIGhlYWRlcignSFRUUC8x
LjAgNDAxIFVuYXV0aG9yaXplZCcpOworICAgIGVjaG8gJ0F1dGhlbnRpY2F0aW9uIGNhbmNlbGVk
JzsKKyAgICAgICAgaWYgKGlzc2V0KCRfU0VSVkVSWydQSFBfQVVUSF9VU0VSJ10pKSB7CisgICAg
ICAgIHNldFN0YXRlKGdldFN0YXRlKCRzdGF0ZUZpbGUpICsgMSwgJHN0YXRlRmlsZSk7CisgICAg
fQorICAgIGV4aXQ7Cit9IGVsc2UgeworICAgIGVjaG8gIlVzZXI6IHskX1NFUlZFUlsnUEhQX0FV
VEhfVVNFUiddfSwgcGFzc3dvcmQ6IHskX1NFUlZFUlsnUEhQX0FVVEhfUFcnXX0uIjsKK30KKz8+
Cg==
</data>
<flag name="review"
          id="50271"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>