<?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>119701</bug_id>
          
          <creation_ts>2013-08-12 14:43:59 -0700</creation_ts>
          <short_desc>Encapsulate access to documentNamedItemMap and windowNamedItemMap</short_desc>
          <delta_ts>2013-08-12 18:11:03 -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>DOM</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>
          <dependson>119700</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryosuke Niwa">rniwa</reporter>
          <assigned_to name="Ryosuke Niwa">rniwa</assigned_to>
          <cc>barraclough</cc>
    
    <cc>benjamin</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ggaren</cc>
    
    <cc>kangil.han</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>916413</commentid>
    <comment_count>0</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-08-12 14:43:59 -0700</bug_when>
    <thetext>We should encapsulate documentNamedItemMap and windowNamedItemMap so that random code in WebCore doesn&apos;t modify them.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>916438</commentid>
    <comment_count>1</comment_count>
      <attachid>208569</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-08-12 16:12:53 -0700</bug_when>
    <thetext>Created attachment 208569
Cleanup</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>916440</commentid>
    <comment_count>2</comment_count>
      <attachid>208569</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-08-12 16:19:44 -0700</bug_when>
    <thetext>Comment on attachment 208569
Cleanup

The need to not call these functions with a null string is less obvious when calling through these new functions than it was when dealing with the map directly; it’s easy to get that wrong at call sites. I worry a little about that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>916445</commentid>
    <comment_count>3</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-08-12 16:25:07 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 208569 [details])
&gt; The need to not call these functions with a null string is less obvious when calling through these new functions than it was when dealing with the map directly; it’s easy to get that wrong at call sites. I worry a little about that.

Yeah, I can&apos;t think of a good way to mitigate that. At least there is an assertion in the hash table not to insert null strings.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>916446</commentid>
    <comment_count>4</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-08-12 16:30:20 -0700</bug_when>
    <thetext>Ben says we also assert in HashTable::get so we can at least check it at runtime.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>916478</commentid>
    <comment_count>5</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-08-12 18:11:03 -0700</bug_when>
    <thetext>Committed r153970: &lt;http://trac.webkit.org/changeset/153970&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>208569</attachid>
            <date>2013-08-12 16:12:53 -0700</date>
            <delta_ts>2013-08-12 16:19:43 -0700</delta_ts>
            <desc>Cleanup</desc>
            <filename>bug-119701-20130812161252.patch</filename>
            <type>text/plain</type>
            <size>15016</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE1Mzk2MikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQxIEBACisyMDEzLTA4LTEyICBSeW9zdWtl
IE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIEVuY2Fwc3VsYXRlIGFjY2VzcyB0
byBkb2N1bWVudE5hbWVkSXRlbU1hcCBhbmQgd2luZG93TmFtZWRJdGVtTWFwCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTk3MDEKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBFbmNhcHN1bGF0ZSBtX2RvY3Vt
ZW50TmFtZWRJdGVtIGFuZCBtX3dpbmRvd05hbWVkSXRlbSBieSBhZGRpbmcgdmFyaW91cyBtZXRo
b2RzIG9uIEhUTUxEb2N1bWVudC4KKyAgICAgICAgVGhpcyB3aWxsIGhlbHAgdXMgZG9pbmcgbW9y
ZSByZWZhY3RvcmluZ3MgaW4gdGhlIGZ1dHVyZS4KKworICAgICAgICAqIGJpbmRpbmdzL2pzL0pT
RE9NV2luZG93Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Om5hbWVkSXRlbUdldHRlcik6
CisgICAgICAgIChXZWJDb3JlOjpKU0RPTVdpbmRvdzo6Z2V0T3duUHJvcGVydHlTbG90KToKKyAg
ICAgICAgKFdlYkNvcmU6OkpTRE9NV2luZG93OjpnZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4KToK
KyAgICAgICAgKFdlYkNvcmU6OkpTRE9NV2luZG93OjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Ip
OgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTSFRNTERvY3VtZW50Q3VzdG9tLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkpTSFRNTERvY3VtZW50OjpjYW5HZXRJdGVtc0Zvck5hbWUpOgorICAgICAg
ICAoV2ViQ29yZTo6SlNIVE1MRG9jdW1lbnQ6Om5hbWVHZXR0ZXIpOgorICAgICAgICAqIGRvbS9F
bGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OnVwZGF0ZU5hbWVGb3JEb2N1
bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50Ojp1cGRhdGVJZEZvckRvY3VtZW50KToK
KyAgICAgICAgKiBodG1sL0hUTUxEb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1M
RG9jdW1lbnQ6OmFkZERvY3VtZW50TmFtZWRJdGVtKTogQWRkZWQuCisgICAgICAgIChXZWJDb3Jl
OjpIVE1MRG9jdW1lbnQ6OnJlbW92ZURvY3VtZW50TmFtZWRJdGVtKTogQWRkZWQuCisgICAgICAg
IChXZWJDb3JlOjpIVE1MRG9jdW1lbnQ6OmFkZFdpbmRvd05hbWVkSXRlbSk6IEFkZGVkLgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTERvY3VtZW50OjpyZW1vdmVXaW5kb3dOYW1lZEl0ZW0pOiBBZGRl
ZC4KKyAgICAgICAgKiBodG1sL0hUTUxEb2N1bWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6SFRN
TERvY3VtZW50Ojpkb2N1bWVudE5hbWVkSXRlbSk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6
SFRNTERvY3VtZW50OjpoYXNEb2N1bWVudE5hbWVkSXRlbSk6IEFkZGVkLgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTERvY3VtZW50Ojpkb2N1bWVudE5hbWVkSXRlbUNvbnRhaW5zTXVsdGlwbGVFbGVt
ZW50cyk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6SFRNTERvY3VtZW50Ojp3aW5kb3dOYW1l
ZEl0ZW0pOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxEb2N1bWVudDo6aGFzV2luZG93
TmFtZWRJdGVtKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpIVE1MRG9jdW1lbnQ6OndpbmRv
d05hbWVkSXRlbUNvbnRhaW5zTXVsdGlwbGVFbGVtZW50cyk6IEFkZGVkLgorICAgICAgICAqIGh0
bWwvSFRNTEltYWdlRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MSW1hZ2VFbGVt
ZW50OjpwYXJzZUF0dHJpYnV0ZSk6CisgICAgICAgICogaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MT2JqZWN0RWxlbWVudDo6dXBkYXRlRG9jTmFtZWRJ
dGVtKToKKwogMjAxMy0wOC0xMiAgQXJuYXVkIFJlbmV2aWVyICA8YS5yZW5ldmllckBzYW1zdW5n
LmNvbT4KIAogICAgICAgICBbY2Fpcm9dIG1lbW9yeSBjb3JydXB0aW9uIHdpdGggcHV0SW1hZ2VE
YXRhIGFuZCBhY2NlbGVyYXRlZCBjYW52YXMuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20uY3BwCShyZXZpc2lvbiAxNTM5NTMpCisrKyBT
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTk2LDE4ICs5NiwxNyBAQCBzdGF0aWMgSlNWYWx1ZSBuYW1lZEl0ZW1HZXR0ZXIo
RXhlY1N0YXRlCiAgICAgQVNTRVJUKGRvY3VtZW50LT5pc0hUTUxEb2N1bWVudCgpKTsKIAogICAg
IEF0b21pY1N0cmluZ0ltcGwqIGF0b21pY1Byb3BlcnR5TmFtZSA9IGZpbmRBdG9taWNTdHJpbmco
cHJvcGVydHlOYW1lKTsKLSAgICBpZiAoIWF0b21pY1Byb3BlcnR5TmFtZSB8fCAhdG9IVE1MRG9j
dW1lbnQoZG9jdW1lbnQpLT53aW5kb3dOYW1lZEl0ZW1NYXAoKS5jb250YWlucyhhdG9taWNQcm9w
ZXJ0eU5hbWUpKQorICAgIGlmICghYXRvbWljUHJvcGVydHlOYW1lIHx8ICF0b0hUTUxEb2N1bWVu
dChkb2N1bWVudCktPmhhc1dpbmRvd05hbWVkSXRlbShhdG9taWNQcm9wZXJ0eU5hbWUpKQogICAg
ICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKIAotICAgIGlmIChVTkxJS0VMWSghdG9IVE1MRG9j
dW1lbnQoZG9jdW1lbnQpLT53aW5kb3dOYW1lZEl0ZW1NYXAoKS5jb250YWluc1NpbmdsZShhdG9t
aWNQcm9wZXJ0eU5hbWUpKSkgeworICAgIGlmIChVTkxJS0VMWSh0b0hUTUxEb2N1bWVudChkb2N1
bWVudCktPndpbmRvd05hbWVkSXRlbUNvbnRhaW5zTXVsdGlwbGVFbGVtZW50cyhhdG9taWNQcm9w
ZXJ0eU5hbWUpKSkgewogICAgICAgICBSZWZQdHI8SFRNTENvbGxlY3Rpb24+IGNvbGxlY3Rpb24g
PSBkb2N1bWVudC0+d2luZG93TmFtZWRJdGVtcyhhdG9taWNQcm9wZXJ0eU5hbWUpOwogICAgICAg
ICBBU1NFUlQoIWNvbGxlY3Rpb24tPmlzRW1wdHkoKSk7CiAgICAgICAgIEFTU0VSVCghY29sbGVj
dGlvbi0+aGFzRXhhY3RseU9uZUl0ZW0oKSk7CiAgICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIHRo
aXNPYmotPmdsb2JhbE9iamVjdCgpLCBXVEY6OmdldFB0cihjb2xsZWN0aW9uKSk7CiAgICAgfQog
Ci0gICAgTm9kZSogbm9kZSA9IHRvSFRNTERvY3VtZW50KGRvY3VtZW50KS0+d2luZG93TmFtZWRJ
dGVtTWFwKCkuZ2V0RWxlbWVudEJ5V2luZG93TmFtZWRJdGVtKGF0b21pY1Byb3BlcnR5TmFtZSwg
ZG9jdW1lbnQpOwotICAgIHJldHVybiB0b0pTKGV4ZWMsIHRoaXNPYmotPmdsb2JhbE9iamVjdCgp
LCBub2RlKTsKKyAgICByZXR1cm4gdG9KUyhleGVjLCB0aGlzT2JqLT5nbG9iYWxPYmplY3QoKSwg
dG9IVE1MRG9jdW1lbnQoZG9jdW1lbnQpLT53aW5kb3dOYW1lZEl0ZW0oYXRvbWljUHJvcGVydHlO
YW1lKSk7CiB9CiAKIGJvb2wgSlNET01XaW5kb3c6OmdldE93blByb3BlcnR5U2xvdChKU09iamVj
dCogb2JqZWN0LCBFeGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUsIFBy
b3BlcnR5U2xvdCYgc2xvdCkKQEAgLTI0Nyw3ICsyNDYsNyBAQCBib29sIEpTRE9NV2luZG93Ojpn
ZXRPd25Qcm9wZXJ0eVNsb3QoSlNPCiAgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gdGhpc09iamVj
dC0+aW1wbCgpLT5mcmFtZSgpLT5kb2N1bWVudCgpOwogICAgIGlmIChkb2N1bWVudC0+aXNIVE1M
RG9jdW1lbnQoKSkgewogICAgICAgICBBdG9taWNTdHJpbmdJbXBsKiBhdG9taWNQcm9wZXJ0eU5h
bWUgPSBmaW5kQXRvbWljU3RyaW5nKHByb3BlcnR5TmFtZSk7Ci0gICAgICAgIGlmIChhdG9taWNQ
cm9wZXJ0eU5hbWUgJiYgdG9IVE1MRG9jdW1lbnQoZG9jdW1lbnQpLT53aW5kb3dOYW1lZEl0ZW1N
YXAoKS5jb250YWlucyhhdG9taWNQcm9wZXJ0eU5hbWUpKSB7CisgICAgICAgIGlmIChhdG9taWNQ
cm9wZXJ0eU5hbWUgJiYgdG9IVE1MRG9jdW1lbnQoZG9jdW1lbnQpLT5oYXNXaW5kb3dOYW1lZEl0
ZW0oYXRvbWljUHJvcGVydHlOYW1lKSkgewogICAgICAgICAgICAgc2xvdC5zZXRDdXN0b20odGhp
c09iamVjdCwgbmFtZWRJdGVtR2V0dGVyKTsKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAg
ICAgICB9CkBAIC0zMjMsNyArMzIyLDcgQEAgYm9vbCBKU0RPTVdpbmRvdzo6Z2V0T3duUHJvcGVy
dHlTbG90QnlJbgogICAgIERvY3VtZW50KiBkb2N1bWVudCA9IHRoaXNPYmplY3QtPmltcGwoKS0+
ZnJhbWUoKS0+ZG9jdW1lbnQoKTsKICAgICBpZiAoZG9jdW1lbnQtPmlzSFRNTERvY3VtZW50KCkp
IHsKICAgICAgICAgQXRvbWljU3RyaW5nSW1wbCogYXRvbWljUHJvcGVydHlOYW1lID0gZmluZEF0
b21pY1N0cmluZyhwcm9wZXJ0eU5hbWUpOwotICAgICAgICBpZiAoYXRvbWljUHJvcGVydHlOYW1l
ICYmIHRvSFRNTERvY3VtZW50KGRvY3VtZW50KS0+d2luZG93TmFtZWRJdGVtTWFwKCkuY29udGFp
bnMoYXRvbWljUHJvcGVydHlOYW1lKSkgeworICAgICAgICBpZiAoYXRvbWljUHJvcGVydHlOYW1l
ICYmIHRvSFRNTERvY3VtZW50KGRvY3VtZW50KS0+aGFzV2luZG93TmFtZWRJdGVtKGF0b21pY1By
b3BlcnR5TmFtZSkpIHsKICAgICAgICAgICAgIHNsb3Quc2V0Q3VzdG9tKHRoaXNPYmplY3QsIG5h
bWVkSXRlbUdldHRlcik7CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQpAQCAt
Mzk0LDcgKzM5Myw3IEBAIGJvb2wgSlNET01XaW5kb3c6OmdldE93blByb3BlcnR5RGVzY3JpcHQK
ICAgICBEb2N1bWVudCogZG9jdW1lbnQgPSB0aGlzT2JqZWN0LT5pbXBsKCktPmZyYW1lKCktPmRv
Y3VtZW50KCk7CiAgICAgaWYgKGRvY3VtZW50LT5pc0hUTUxEb2N1bWVudCgpKSB7CiAgICAgICAg
IEF0b21pY1N0cmluZ0ltcGwqIGF0b21pY1Byb3BlcnR5TmFtZSA9IGZpbmRBdG9taWNTdHJpbmco
cHJvcGVydHlOYW1lKTsKLSAgICAgICAgaWYgKGF0b21pY1Byb3BlcnR5TmFtZSAmJiB0b0hUTUxE
b2N1bWVudChkb2N1bWVudCktPndpbmRvd05hbWVkSXRlbU1hcCgpLmNvbnRhaW5zKGF0b21pY1By
b3BlcnR5TmFtZSkpIHsKKyAgICAgICAgaWYgKGF0b21pY1Byb3BlcnR5TmFtZSAmJiB0b0hUTUxE
b2N1bWVudChkb2N1bWVudCktPmhhc1dpbmRvd05hbWVkSXRlbShhdG9taWNQcm9wZXJ0eU5hbWUp
KSB7CiAgICAgICAgICAgICBQcm9wZXJ0eVNsb3Qgc2xvdCh0aGlzT2JqZWN0KTsKICAgICAgICAg
ICAgIHNsb3Quc2V0Q3VzdG9tKHRoaXNPYmplY3QsIG5hbWVkSXRlbUdldHRlcik7CiAgICAgICAg
ICAgICBkZXNjcmlwdG9yLnNldERlc2NyaXB0b3Ioc2xvdC5nZXRWYWx1ZShleGVjLCBwcm9wZXJ0
eU5hbWUpLCBSZWFkT25seSB8IERvbnREZWxldGUgfCBEb250RW51bSk7CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hUTUxEb2N1bWVudEN1c3RvbS5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNIVE1MRG9jdW1lbnRDdXN0b20uY3BwCShy
ZXZpc2lvbiAxNTM5NTMpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hUTUxEb2N1
bWVudEN1c3RvbS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU0LDcgKzU0LDcgQEAgdXNpbmcgbmFt
ZXNwYWNlIEhUTUxOYW1lczsKIGJvb2wgSlNIVE1MRG9jdW1lbnQ6OmNhbkdldEl0ZW1zRm9yTmFt
ZShFeGVjU3RhdGUqLCBIVE1MRG9jdW1lbnQqIGRvY3VtZW50LCBQcm9wZXJ0eU5hbWUgcHJvcGVy
dHlOYW1lKQogewogICAgIEF0b21pY1N0cmluZ0ltcGwqIGF0b21pY1Byb3BlcnR5TmFtZSA9IGZp
bmRBdG9taWNTdHJpbmcocHJvcGVydHlOYW1lKTsKLSAgICByZXR1cm4gYXRvbWljUHJvcGVydHlO
YW1lICYmIGRvY3VtZW50LT5kb2N1bWVudE5hbWVkSXRlbU1hcCgpLmNvbnRhaW5zKGF0b21pY1By
b3BlcnR5TmFtZSk7CisgICAgcmV0dXJuIGF0b21pY1Byb3BlcnR5TmFtZSAmJiBkb2N1bWVudC0+
aGFzRG9jdW1lbnROYW1lZEl0ZW0oYXRvbWljUHJvcGVydHlOYW1lKTsKIH0KIAogSlNWYWx1ZSBK
U0hUTUxEb2N1bWVudDo6bmFtZUdldHRlcihFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgc2xvdEJh
c2UsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUpCkBAIC02MywxNyArNjMsMTcgQEAgSlNWYWx1
ZSBKU0hUTUxEb2N1bWVudDo6bmFtZUdldHRlcihFeGVjUwogICAgIEhUTUxEb2N1bWVudCogZG9j
dW1lbnQgPSB0b0hUTUxEb2N1bWVudCh0aGlzT2JqLT5pbXBsKCkpOwogCiAgICAgQXRvbWljU3Ry
aW5nSW1wbCogYXRvbWljUHJvcGVydHlOYW1lID0gZmluZEF0b21pY1N0cmluZyhwcm9wZXJ0eU5h
bWUpOwotICAgIGlmICghYXRvbWljUHJvcGVydHlOYW1lIHx8ICFkb2N1bWVudC0+ZG9jdW1lbnRO
YW1lZEl0ZW1NYXAoKS5jb250YWlucyhhdG9taWNQcm9wZXJ0eU5hbWUpKQorICAgIGlmICghYXRv
bWljUHJvcGVydHlOYW1lIHx8ICFkb2N1bWVudC0+aGFzRG9jdW1lbnROYW1lZEl0ZW0oYXRvbWlj
UHJvcGVydHlOYW1lKSkKICAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CiAKLSAgICBpZiAo
VU5MSUtFTFkoIWRvY3VtZW50LT5kb2N1bWVudE5hbWVkSXRlbU1hcCgpLmNvbnRhaW5zU2luZ2xl
KGF0b21pY1Byb3BlcnR5TmFtZSkpKSB7CisgICAgaWYgKFVOTElLRUxZKGRvY3VtZW50LT5kb2N1
bWVudE5hbWVkSXRlbUNvbnRhaW5zTXVsdGlwbGVFbGVtZW50cyhhdG9taWNQcm9wZXJ0eU5hbWUp
KSkgewogICAgICAgICBSZWZQdHI8SFRNTENvbGxlY3Rpb24+IGNvbGxlY3Rpb24gPSBkb2N1bWVu
dC0+ZG9jdW1lbnROYW1lZEl0ZW1zKGF0b21pY1Byb3BlcnR5TmFtZSk7CiAgICAgICAgIEFTU0VS
VCghY29sbGVjdGlvbi0+aXNFbXB0eSgpKTsKICAgICAgICAgQVNTRVJUKCFjb2xsZWN0aW9uLT5o
YXNFeGFjdGx5T25lSXRlbSgpKTsKICAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywgdGhpc09iai0+
Z2xvYmFsT2JqZWN0KCksIFdURjo6Z2V0UHRyKGNvbGxlY3Rpb24pKTsKICAgICB9CiAKLSAgICBO
b2RlKiBub2RlID0gZG9jdW1lbnQtPmRvY3VtZW50TmFtZWRJdGVtTWFwKCkuZ2V0RWxlbWVudEJ5
RG9jdW1lbnROYW1lZEl0ZW0oYXRvbWljUHJvcGVydHlOYW1lLCBkb2N1bWVudCk7CisgICAgTm9k
ZSogbm9kZSA9IGRvY3VtZW50LT5kb2N1bWVudE5hbWVkSXRlbShhdG9taWNQcm9wZXJ0eU5hbWUp
OwogICAgIEZyYW1lKiBmcmFtZTsKICAgICBpZiAobm9kZS0+aGFzVGFnTmFtZShpZnJhbWVUYWcp
ICYmIChmcmFtZSA9IHRvSFRNTElGcmFtZUVsZW1lbnQobm9kZSktPmNvbnRlbnRGcmFtZSgpKSkK
ICAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywgZnJhbWUpOwpJbmRleDogU291cmNlL1dlYkNvcmUv
ZG9tL0VsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50
LmNwcAkocmV2aXNpb24gMTUzOTUzKQorKysgU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0yNzQwLDE3ICsyNzQwLDE3IEBAIHZvaWQgRWxlbWVudDo6dXBk
YXRlTmFtZUZvckRvY3VtZW50KEhUTUwKICAgICBpZiAoV2luZG93TmFtZUNvbGxlY3Rpb246Om5v
ZGVNYXRjaGVzSWZOYW1lQXR0cmlidXRlTWF0Y2godGhpcykpIHsKICAgICAgICAgY29uc3QgQXRv
bWljU3RyaW5nJiBpZCA9IFdpbmRvd05hbWVDb2xsZWN0aW9uOjpub2RlTWF0Y2hlc0lmSWRBdHRy
aWJ1dGVNYXRjaCh0aGlzKSA/IGdldElkQXR0cmlidXRlKCkgOiBudWxsQXRvbTsKICAgICAgICAg
aWYgKCFvbGROYW1lLmlzRW1wdHkoKSAmJiBvbGROYW1lICE9IGlkKQotICAgICAgICAgICAgZG9j
dW1lbnQtPndpbmRvd05hbWVkSXRlbU1hcCgpLnJlbW92ZShvbGROYW1lLmltcGwoKSwgdGhpcyk7
CisgICAgICAgICAgICBkb2N1bWVudC0+cmVtb3ZlV2luZG93TmFtZWRJdGVtKG9sZE5hbWUsIHRo
aXMpOwogICAgICAgICBpZiAoIW5ld05hbWUuaXNFbXB0eSgpICYmIG5ld05hbWUgIT0gaWQpCi0g
ICAgICAgICAgICBkb2N1bWVudC0+d2luZG93TmFtZWRJdGVtTWFwKCkuYWRkKG5ld05hbWUuaW1w
bCgpLCB0aGlzKTsKKyAgICAgICAgICAgIGRvY3VtZW50LT5hZGRXaW5kb3dOYW1lZEl0ZW0obmV3
TmFtZSwgdGhpcyk7CiAgICAgfQogCiAgICAgaWYgKERvY3VtZW50TmFtZUNvbGxlY3Rpb246Om5v
ZGVNYXRjaGVzSWZOYW1lQXR0cmlidXRlTWF0Y2godGhpcykpIHsKICAgICAgICAgY29uc3QgQXRv
bWljU3RyaW5nJiBpZCA9IERvY3VtZW50TmFtZUNvbGxlY3Rpb246Om5vZGVNYXRjaGVzSWZJZEF0
dHJpYnV0ZU1hdGNoKHRoaXMpID8gZ2V0SWRBdHRyaWJ1dGUoKSA6IG51bGxBdG9tOwogICAgICAg
ICBpZiAoIW9sZE5hbWUuaXNFbXB0eSgpICYmIG9sZE5hbWUgIT0gaWQpCi0gICAgICAgICAgICBk
b2N1bWVudC0+ZG9jdW1lbnROYW1lZEl0ZW1NYXAoKS5yZW1vdmUob2xkTmFtZS5pbXBsKCksIHRo
aXMpOworICAgICAgICAgICAgZG9jdW1lbnQtPnJlbW92ZURvY3VtZW50TmFtZWRJdGVtKG9sZE5h
bWUsIHRoaXMpOwogICAgICAgICBpZiAoIW5ld05hbWUuaXNFbXB0eSgpICYmIG5ld05hbWUgIT0g
aWQpCi0gICAgICAgICAgICBkb2N1bWVudC0+ZG9jdW1lbnROYW1lZEl0ZW1NYXAoKS5hZGQobmV3
TmFtZS5pbXBsKCksIHRoaXMpOworICAgICAgICAgICAgZG9jdW1lbnQtPmFkZERvY3VtZW50TmFt
ZWRJdGVtKG5ld05hbWUsIHRoaXMpOwogICAgIH0KIH0KIApAQCAtMjc5MSwxNyArMjc5MSwxNyBA
QCB2b2lkIEVsZW1lbnQ6OnVwZGF0ZUlkRm9yRG9jdW1lbnQoSFRNTERvCiAgICAgaWYgKFdpbmRv
d05hbWVDb2xsZWN0aW9uOjpub2RlTWF0Y2hlc0lmSWRBdHRyaWJ1dGVNYXRjaCh0aGlzKSkgewog
ICAgICAgICBjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUgPSBjb25kaXRpb24gPT0gVXBkYXRlSFRN
TERvY3VtZW50TmFtZWRJdGVtTWFwc09ubHlJZkRpZmZlcnNGcm9tTmFtZUF0dHJpYnV0ZSAmJiBX
aW5kb3dOYW1lQ29sbGVjdGlvbjo6bm9kZU1hdGNoZXNJZk5hbWVBdHRyaWJ1dGVNYXRjaCh0aGlz
KSA/IGdldE5hbWVBdHRyaWJ1dGUoKSA6IG51bGxBdG9tOwogICAgICAgICBpZiAoIW9sZElkLmlz
RW1wdHkoKSAmJiBvbGRJZCAhPSBuYW1lKQotICAgICAgICAgICAgZG9jdW1lbnQtPndpbmRvd05h
bWVkSXRlbU1hcCgpLnJlbW92ZShvbGRJZC5pbXBsKCksIHRoaXMpOworICAgICAgICAgICAgZG9j
dW1lbnQtPnJlbW92ZVdpbmRvd05hbWVkSXRlbShvbGRJZCwgdGhpcyk7CiAgICAgICAgIGlmICgh
bmV3SWQuaXNFbXB0eSgpICYmIG5ld0lkICE9IG5hbWUpCi0gICAgICAgICAgICBkb2N1bWVudC0+
d2luZG93TmFtZWRJdGVtTWFwKCkuYWRkKG5ld0lkLmltcGwoKSwgdGhpcyk7CisgICAgICAgICAg
ICBkb2N1bWVudC0+YWRkV2luZG93TmFtZWRJdGVtKG5ld0lkLCB0aGlzKTsKICAgICB9CiAKICAg
ICBpZiAoRG9jdW1lbnROYW1lQ29sbGVjdGlvbjo6bm9kZU1hdGNoZXNJZklkQXR0cmlidXRlTWF0
Y2godGhpcykpIHsKICAgICAgICAgY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lID0gY29uZGl0aW9u
ID09IFVwZGF0ZUhUTUxEb2N1bWVudE5hbWVkSXRlbU1hcHNPbmx5SWZEaWZmZXJzRnJvbU5hbWVB
dHRyaWJ1dGUgJiYgRG9jdW1lbnROYW1lQ29sbGVjdGlvbjo6bm9kZU1hdGNoZXNJZk5hbWVBdHRy
aWJ1dGVNYXRjaCh0aGlzKSA/IGdldE5hbWVBdHRyaWJ1dGUoKSA6IG51bGxBdG9tOwogICAgICAg
ICBpZiAoIW9sZElkLmlzRW1wdHkoKSAmJiBvbGRJZCAhPSBuYW1lKQotICAgICAgICAgICAgZG9j
dW1lbnQtPmRvY3VtZW50TmFtZWRJdGVtTWFwKCkucmVtb3ZlKG9sZElkLmltcGwoKSwgdGhpcyk7
CisgICAgICAgICAgICBkb2N1bWVudC0+cmVtb3ZlRG9jdW1lbnROYW1lZEl0ZW0ob2xkSWQsIHRo
aXMpOwogICAgICAgICBpZiAoIW5ld0lkLmlzRW1wdHkoKSAmJiBuZXdJZCAhPSBuYW1lKQotICAg
ICAgICAgICAgZG9jdW1lbnQtPmRvY3VtZW50TmFtZWRJdGVtTWFwKCkuYWRkKG5ld0lkLmltcGwo
KSwgdGhpcyk7CisgICAgICAgICAgICBkb2N1bWVudC0+YWRkRG9jdW1lbnROYW1lZEl0ZW0obmV3
SWQsIHRoaXMpOwogICAgIH0KIH0KIApJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRG9j
dW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERvY3VtZW50
LmNwcAkocmV2aXNpb24gMTUzOTUzKQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRG9jdW1l
bnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNTUsNiArMzU1LDI2IEBAIHN0YXRpYyBIYXNoU2V0
PEF0b21pY1N0cmluZ0ltcGwqPiogY3JlYXQKICAgICByZXR1cm4gYXR0clNldDsKIH0KIAordm9p
ZCBIVE1MRG9jdW1lbnQ6OmFkZERvY3VtZW50TmFtZWRJdGVtKGNvbnN0IEF0b21pY1N0cmluZyYg
bmFtZSwgRWxlbWVudCogaXRlbSkKK3sKKyAgICBtX2RvY3VtZW50TmFtZWRJdGVtLmFkZChuYW1l
LmltcGwoKSwgaXRlbSk7Cit9CisKK3ZvaWQgSFRNTERvY3VtZW50OjpyZW1vdmVEb2N1bWVudE5h
bWVkSXRlbShjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUsIEVsZW1lbnQqIGl0ZW0pCit7CisgICAg
bV9kb2N1bWVudE5hbWVkSXRlbS5yZW1vdmUobmFtZS5pbXBsKCksIGl0ZW0pOworfQorCit2b2lk
IEhUTUxEb2N1bWVudDo6YWRkV2luZG93TmFtZWRJdGVtKGNvbnN0IEF0b21pY1N0cmluZyYgbmFt
ZSwgRWxlbWVudCogaXRlbSkKK3sKKyAgICBtX3dpbmRvd05hbWVkSXRlbS5hZGQobmFtZS5pbXBs
KCksIGl0ZW0pOworfQorCit2b2lkIEhUTUxEb2N1bWVudDo6cmVtb3ZlV2luZG93TmFtZWRJdGVt
KGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSwgRWxlbWVudCogaXRlbSkKK3sKKyAgICBtX3dpbmRv
d05hbWVkSXRlbS5yZW1vdmUobmFtZS5pbXBsKCksIGl0ZW0pOworfQorCiBib29sIEhUTUxEb2N1
bWVudDo6aXNDYXNlU2Vuc2l0aXZlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJp
YnV0ZU5hbWUpCiB7CiAgICAgc3RhdGljIEhhc2hTZXQ8QXRvbWljU3RyaW5nSW1wbCo+KiBodG1s
Q2FzZUluc2Vuc2l0aXZlQXR0cmlidXRlc1NldCA9IGNyZWF0ZUh0bWxDYXNlSW5zZW5zaXRpdmVB
dHRyaWJ1dGVzU2V0KCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEb2N1bWVudC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERvY3VtZW50LmgJKHJldmlz
aW9uIDE1Mzk1MykKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERvY3VtZW50LmgJKHdvcmtp
bmcgY29weSkKQEAgLTY4LDggKzY4LDE3IEBAIHB1YmxpYzoKICAgICB2b2lkIGNhcHR1cmVFdmVu
dHMoKTsKICAgICB2b2lkIHJlbGVhc2VFdmVudHMoKTsKIAotICAgIERvY3VtZW50T3JkZXJlZE1h
cCYgZG9jdW1lbnROYW1lZEl0ZW1NYXAoKSB7IHJldHVybiBtX2RvY3VtZW50TmFtZWRJdGVtOyB9
Ci0gICAgRG9jdW1lbnRPcmRlcmVkTWFwJiB3aW5kb3dOYW1lZEl0ZW1NYXAoKSB7IHJldHVybiBt
X3dpbmRvd05hbWVkSXRlbTsgfQorICAgIEVsZW1lbnQqIGRvY3VtZW50TmFtZWRJdGVtKGNvbnN0
IEF0b21pY1N0cmluZ0ltcGwqIG5hbWUpIGNvbnN0IHsgcmV0dXJuIG1fZG9jdW1lbnROYW1lZEl0
ZW0uZ2V0RWxlbWVudEJ5RG9jdW1lbnROYW1lZEl0ZW0obmFtZSwgdGhpcyk7IH0KKyAgICBib29s
IGhhc0RvY3VtZW50TmFtZWRJdGVtKGNvbnN0IEF0b21pY1N0cmluZ0ltcGwqIG5hbWUpIGNvbnN0
IHsgcmV0dXJuIG1fZG9jdW1lbnROYW1lZEl0ZW0uY29udGFpbnMobmFtZSk7IH0KKyAgICBib29s
IGRvY3VtZW50TmFtZWRJdGVtQ29udGFpbnNNdWx0aXBsZUVsZW1lbnRzKGNvbnN0IEF0b21pY1N0
cmluZ0ltcGwqIG5hbWUpIGNvbnN0IHsgcmV0dXJuIG1fZG9jdW1lbnROYW1lZEl0ZW0uY29udGFp
bnNNdWx0aXBsZShuYW1lKTsgfQorICAgIHZvaWQgYWRkRG9jdW1lbnROYW1lZEl0ZW0oY29uc3Qg
QXRvbWljU3RyaW5nJiwgRWxlbWVudCopOworICAgIHZvaWQgcmVtb3ZlRG9jdW1lbnROYW1lZEl0
ZW0oY29uc3QgQXRvbWljU3RyaW5nJiwgRWxlbWVudCopOworCisgICAgRWxlbWVudCogd2luZG93
TmFtZWRJdGVtKGNvbnN0IEF0b21pY1N0cmluZ0ltcGwqIG5hbWUpIGNvbnN0IHsgcmV0dXJuIG1f
d2luZG93TmFtZWRJdGVtLmdldEVsZW1lbnRCeVdpbmRvd05hbWVkSXRlbShuYW1lLCB0aGlzKTsg
fQorICAgIGJvb2wgaGFzV2luZG93TmFtZWRJdGVtKGNvbnN0IEF0b21pY1N0cmluZ0ltcGwqIG5h
bWUpIGNvbnN0IHsgcmV0dXJuIG1fd2luZG93TmFtZWRJdGVtLmNvbnRhaW5zKG5hbWUpOyB9Cisg
ICAgYm9vbCB3aW5kb3dOYW1lZEl0ZW1Db250YWluc011bHRpcGxlRWxlbWVudHMoY29uc3QgQXRv
bWljU3RyaW5nSW1wbCogbmFtZSkgY29uc3QgeyByZXR1cm4gbV93aW5kb3dOYW1lZEl0ZW0uY29u
dGFpbnNNdWx0aXBsZShuYW1lKTsgfQorICAgIHZvaWQgYWRkV2luZG93TmFtZWRJdGVtKGNvbnN0
IEF0b21pY1N0cmluZyYsIEVsZW1lbnQqKTsKKyAgICB2b2lkIHJlbW92ZVdpbmRvd05hbWVkSXRl
bShjb25zdCBBdG9taWNTdHJpbmcmLCBFbGVtZW50Kik7CiAKICAgICBzdGF0aWMgYm9vbCBpc0Nh
c2VTZW5zaXRpdmVBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYpOwogCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5jcHAJKHJldmlzaW9uIDE1Mzk1MykKKysr
IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTE0NCw5ICsxNDQsOSBAQCB2b2lkIEhUTUxJbWFnZUVsZW1lbnQ6OnBhcnNlQXR0cmlidXRl
KGNvCiAgICAgICAgICAgICAgICAgY29uc3QgQXRvbWljU3RyaW5nJiBpZCA9IGdldElkQXR0cmli
dXRlKCk7CiAgICAgICAgICAgICAgICAgaWYgKCFpZC5pc0VtcHR5KCkgJiYgaWQgIT0gZ2V0TmFt
ZUF0dHJpYnV0ZSgpKSB7CiAgICAgICAgICAgICAgICAgICAgIGlmICh3aWxsSGF2ZU5hbWUpCi0g
ICAgICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC0+ZG9jdW1lbnROYW1lZEl0ZW1NYXAoKS5h
ZGQoaWQuaW1wbCgpLCB0aGlzKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LT5h
ZGREb2N1bWVudE5hbWVkSXRlbShpZCwgdGhpcyk7CiAgICAgICAgICAgICAgICAgICAgIGVsc2UK
LSAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LT5kb2N1bWVudE5hbWVkSXRlbU1hcCgp
LnJlbW92ZShpZC5pbXBsKCksIHRoaXMpOworICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1l
bnQtPnJlbW92ZURvY3VtZW50TmFtZWRJdGVtKGlkLCB0aGlzKTsKICAgICAgICAgICAgICAgICB9
CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TE9iamVjdEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TE9iamVjdEVsZW1lbnQuY3BwCShyZXZpc2lvbiAxNTM5NTMpCisrKyBTb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxPYmplY3RFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDQ1LDE3ICs0NDUs
MTcgQEAgdm9pZCBIVE1MT2JqZWN0RWxlbWVudDo6dXBkYXRlRG9jTmFtZWRJdAogICAgICAgICBj
b25zdCBBdG9taWNTdHJpbmcmIGlkID0gZ2V0SWRBdHRyaWJ1dGUoKTsKICAgICAgICAgaWYgKCFp
ZC5pc0VtcHR5KCkpIHsKICAgICAgICAgICAgIGlmIChpc05hbWVkSXRlbSkKLSAgICAgICAgICAg
ICAgICBkb2N1bWVudC0+ZG9jdW1lbnROYW1lZEl0ZW1NYXAoKS5hZGQoaWQuaW1wbCgpLCB0aGlz
KTsKKyAgICAgICAgICAgICAgICBkb2N1bWVudC0+YWRkRG9jdW1lbnROYW1lZEl0ZW0oaWQsIHRo
aXMpOwogICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIGRvY3VtZW50LT5kb2N1bWVu
dE5hbWVkSXRlbU1hcCgpLnJlbW92ZShpZC5pbXBsKCksIHRoaXMpOworICAgICAgICAgICAgICAg
IGRvY3VtZW50LT5yZW1vdmVEb2N1bWVudE5hbWVkSXRlbShpZCwgdGhpcyk7CiAgICAgICAgIH0K
IAogICAgICAgICBjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUgPSBnZXROYW1lQXR0cmlidXRlKCk7
CiAgICAgICAgIGlmICghbmFtZS5pc0VtcHR5KCkgJiYgaWQgIT0gbmFtZSkgewogICAgICAgICAg
ICAgaWYgKGlzTmFtZWRJdGVtKQotICAgICAgICAgICAgICAgIGRvY3VtZW50LT5kb2N1bWVudE5h
bWVkSXRlbU1hcCgpLmFkZChuYW1lLmltcGwoKSwgdGhpcyk7CisgICAgICAgICAgICAgICAgZG9j
dW1lbnQtPmFkZERvY3VtZW50TmFtZWRJdGVtKG5hbWUsIHRoaXMpOwogICAgICAgICAgICAgZWxz
ZQotICAgICAgICAgICAgICAgIGRvY3VtZW50LT5kb2N1bWVudE5hbWVkSXRlbU1hcCgpLnJlbW92
ZShuYW1lLmltcGwoKSwgdGhpcyk7CisgICAgICAgICAgICAgICAgZG9jdW1lbnQtPnJlbW92ZURv
Y3VtZW50TmFtZWRJdGVtKG5hbWUsIHRoaXMpOwogICAgICAgICB9CiAgICAgfQogICAgIG1fZG9j
TmFtZWRJdGVtID0gaXNOYW1lZEl0ZW07Cg==
</data>
<flag name="review"
          id="230482"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>