<?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>69414</bug_id>
          
          <creation_ts>2011-10-05 05:20:47 -0700</creation_ts>
          <short_desc>Using RetainPtr as the key type in HashMap/HashSet fails to compile</short_desc>
          <delta_ts>2011-10-05 15:22:16 -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>Web Template Framework</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="Adam Roben (:aroben)">aroben</reporter>
          <assigned_to name="Adam Roben (:aroben)">aroben</assigned_to>
          <cc>andersca</cc>
    
    <cc>sullivan</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>478283</commentid>
    <comment_count>0</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2011-10-05 05:20:47 -0700</bug_when>
    <thetext>The following code fails to compile:

HashSet&lt;RetainPtr&lt;CFStringRef&gt; &gt; set;

Here are some of the errors:



JavaScriptCore.framework/PrivateHeaders/RetainPtr.h:70:61:{70:55-70:60}{70:64-70:87}: error: comparison of distinct pointer types (&apos;PtrType&apos; (aka &apos;const __CFString *&apos;) and &apos;const __CFString **&apos;) [2]
         bool isHashTableDeletedValue() const { return m_ptr == hashTableDeletedValue(); }
                                                       ~~~~~ ^  ~~~~~~~~~~~~~~~~~~~~~~~
JavaScriptCore.framework/PrivateHeaders/HashTraits.h:90:67: note: in instantiation of member function &apos;WTF::RetainPtr&lt;const __CFString *&gt;::isHashTableDeletedValue&apos; requested here [2]
         static bool isDeletedValue(const T&amp; value) { return value.isHashTableDeletedValue(); }
                                                                   ^
JavaScriptCore.framework/PrivateHeaders/HashTable.h:342:81: note: in instantiation of member function &apos;WTF::SimpleClassHashTraits&lt;WTF::RetainPtr&lt;const __CFString *&gt; &gt;::isDeletedValue&apos; requested here [2]
         static bool isDeletedBucket(const ValueType&amp; value) { return KeyTraits::isDeletedValue(Extractor::extract(value)); }
                                                                                 ^
JavaScriptCore.framework/PrivateHeaders/HashTable.h:891:22: note: in instantiation of member function &apos;WTF::HashTable&lt;WTF::RetainPtr&lt;const __CFString *&gt;, WTF::RetainPtr&lt;const __CFString *&gt;, WTF::IdentityExtractor&lt;WTF::RetainPtr&lt;const __CFString *&gt; &gt;, WTF::PtrHash&lt;WTF::RetainPtr&lt;const __CFString *&gt; &gt;, WTF::HashTraits&lt;WTF::RetainPtr&lt;const __CFString *&gt; &gt;, WTF::HashTraits&lt;WTF::RetainPtr&lt;const __CFString *&gt; &gt; &gt;::isDeletedBucket&apos; requested here [2]
                 if (!isDeletedBucket(table[i]))
                      ^
JavaScriptCore.framework/PrivateHeaders/HashTable.h:300:13: note: in instantiation of member function &apos;WTF::HashTable&lt;WTF::RetainPtr&lt;const __CFString *&gt;, WTF::RetainPtr&lt;const __CFString *&gt;, WTF::IdentityExtractor&lt;WTF::RetainPtr&lt;const __CFString *&gt; &gt;, WTF::PtrHash&lt;WTF::RetainPtr&lt;const __CFString *&gt; &gt;, WTF::HashTraits&lt;WTF::RetainPtr&lt;const __CFString *&gt; &gt;, WTF::HashTraits&lt;WTF::RetainPtr&lt;const __CFString *&gt; &gt; &gt;::deallocateTable&apos; requested here [2]
             deallocateTable(m_table, m_tableSize); 
             ^
JavaScriptCore.framework/PrivateHeaders/HashSet.h:38:59: note: in instantiation of member function &apos;WTF::HashTable&lt;WTF::RetainPtr&lt;const __CFString *&gt;, WTF::RetainPtr&lt;const __CFString *&gt;, WTF::IdentityExtractor&lt;WTF::RetainPtr&lt;const __CFString *&gt; &gt;, WTF::PtrHash&lt;WTF::RetainPtr&lt;const __CFString *&gt; &gt;, WTF::HashTraits&lt;WTF::RetainPtr&lt;const __CFString *&gt; &gt;, WTF::HashTraits&lt;WTF::RetainPtr&lt;const __CFString *&gt; &gt; &gt;::~HashTable&apos; requested here [2]
         typename TraitsArg = HashTraits&lt;ValueArg&gt; &gt; class HashSet {
                                                           ^</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>478284</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2011-10-05 05:21:03 -0700</bug_when>
    <thetext>&lt;rdar://problem/10236833&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>478287</commentid>
    <comment_count>2</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2011-10-05 05:30:19 -0700</bug_when>
    <thetext>Looks like HashMap&lt;RetainPtr&lt;CFStringRef&gt;, int&gt; also fails to compile.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>478291</commentid>
    <comment_count>3</comment_count>
      <attachid>109777</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2011-10-05 05:37:50 -0700</bug_when>
    <thetext>Created attachment 109777
Ensure RetainPtr::hashTableDeletedValue returns a pointer, not a pointer to a pointer</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>478730</commentid>
    <comment_count>4</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2011-10-05 15:22:16 -0700</bug_when>
    <thetext>Committed r96757: &lt;http://trac.webkit.org/changeset/96757&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>109777</attachid>
            <date>2011-10-05 05:37:50 -0700</date>
            <delta_ts>2011-10-05 06:21:38 -0700</delta_ts>
            <desc>Ensure RetainPtr::hashTableDeletedValue returns a pointer, not a pointer to a pointer</desc>
            <filename>bug-69414-20111005083748.patch</filename>
            <type>text/plain</type>
            <size>16363</size>
            <attacher name="Adam Roben (:aroben)">aroben</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTY2OTQKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IGVk
OTQzNDMxMTk5NWJiN2ZiOTVkMTFmYzU3ZDBhNWY2NTIwM2VkYmEuLjZjOGU4N2U1NmZmYmNkYWJm
MzZkYWFlMzI1NTI1ODAzNjYzZjM2ZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDIyIEBACisyMDExLTEwLTA1ICBBZGFtIFJvYmVuICA8YXJvYmVuQGFwcGxlLmNvbT4KKwor
ICAgICAgICBFbnN1cmUgUmV0YWluUHRyOjpoYXNoVGFibGVEZWxldGVkVmFsdWUgcmV0dXJucyBh
IHBvaW50ZXIsIG5vdCBhIHBvaW50ZXIgdG8gYSBwb2ludGVyCisKKyAgICAgICAgUmV0YWluUHRy
J3MgYmVoYXZpb3Igb2YgYWxsb3dpbmcgdGhlIHRlbXBsYXRlIHBhcmFtZXRlciB0byBiZSBlaXRo
ZXIgYSBwb2ludGVyIHR5cGUgb3IgYQorICAgICAgICBwb2ludGVkLXRvIHR5cGUgY29uZnVzZWQg
dXMgd2hlbiB3ZSBpbXBsZW1lbnRlZCBoYXNoVGFibGVEZWxldGVkVmFsdWUuCisKKyAgICAgICAg
Rml4ZXMgPGh0dHA6Ly93ZWJraXQub3JnL2IvNjk0MTQ+IFVzaW5nIFJldGFpblB0ciBhcyB0aGUg
a2V5IHR5cGUgaW4gSGFzaE1hcC9IYXNoU2V0IGZhaWxzCisgICAgICAgIHRvIGNvbXBpbGUKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHd0Zi9SZXRh
aW5QdHIuaDoKKyAgICAgICAgKFdURjo6UmV0YWluUHRyOjpoYXNoVGFibGVEZWxldGVkVmFsdWUp
OiBDaGFuZ2VkIHRvIHVzZSB0aGUgUHRyVHlwZSB0eXBlZGVmIHJhdGhlciB0aGFuIFQqLAorICAg
ICAgICBzaW5jZSBUIG1pZ2h0IGl0c2VsZiBiZSBhIHBvaW50ZXIuCisKKyAgICAgICAgKFdURjo6
UHRySGFzaDxSZXRhaW5QdHI8UD4gPik6IFVwZGF0ZWQgdGhpcyB0byB1c2UgUHRyVHlwZSBldmVy
eXdoZXJlLCBldmVuIHRob3VnaCBUKiBkaWRuJ3QKKyAgICAgICAgc2VlbSB0byBiZSBjYXVzaW5n
IGEgcHJvYmxlbS4KKwogMjAxMS0xMC0wNSAgUGF0cmljayBHYW5zdGVyZXIgIDxwYXJvZ2FAd2Vi
a2l0Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkIFdpbkNFIGJ1aWxkIGZpeCBmb3Igcjk2NTk1
LgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9SZXRhaW5QdHIuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvUmV0YWluUHRyLmgKaW5kZXggYTcxNjM5MDEyYjcyMjkx
MzQ2OTQ4MDg4MjE5NzgwMTVmYTBhYzVkNC4uOGFhM2E1MTM3ZGRlNTA0MDU0NzZjYWZiNzNhZTY4
Y2E3MzA5YWJlNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9SZXRhaW5Q
dHIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL1JldGFpblB0ci5oCkBAIC0xMDMs
NyArMTAzLDcgQEAgbmFtZXNwYWNlIFdURiB7CiAgICAgICAgIFB0clR5cGUgcmVsZWFzZVJlZigp
IHsgcmV0dXJuIGxlYWtSZWYoKTsgfQogCiAgICAgcHJpdmF0ZToKLSAgICAgICAgc3RhdGljIFQq
IGhhc2hUYWJsZURlbGV0ZWRWYWx1ZSgpIHsgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8VCo+KC0x
KTsgfQorICAgICAgICBzdGF0aWMgUHRyVHlwZSBoYXNoVGFibGVEZWxldGVkVmFsdWUoKSB7IHJl
dHVybiByZWludGVycHJldF9jYXN0PFB0clR5cGU+KC0xKTsgfQogCiAgICAgICAgIFB0clR5cGUg
bV9wdHI7CiAgICAgfTsKQEAgLTIzNiwxMyArMjM2LDEzIEBAIG5hbWVzcGFjZSBXVEYgewogICAg
IAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFA+IHN0cnVjdCBIYXNoVHJhaXRzPFJldGFpblB0cjxQ
PiA+IDogU2ltcGxlQ2xhc3NIYXNoVHJhaXRzPFJldGFpblB0cjxQPiA+IHsgfTsKICAgICAKLSAg
ICB0ZW1wbGF0ZTx0eXBlbmFtZSBQPiBzdHJ1Y3QgUHRySGFzaDxSZXRhaW5QdHI8UD4gPiA6IFB0
ckhhc2g8UCo+IHsKLSAgICAgICAgdXNpbmcgUHRySGFzaDxQKj46Omhhc2g7CisgICAgdGVtcGxh
dGU8dHlwZW5hbWUgUD4gc3RydWN0IFB0ckhhc2g8UmV0YWluUHRyPFA+ID4gOiBQdHJIYXNoPHR5
cGVuYW1lIFJldGFpblB0cjxQPjo6UHRyVHlwZT4geworICAgICAgICB1c2luZyBQdHJIYXNoPHR5
cGVuYW1lIFJldGFpblB0cjxQPjo6UHRyVHlwZT46Omhhc2g7CiAgICAgICAgIHN0YXRpYyB1bnNp
Z25lZCBoYXNoKGNvbnN0IFJldGFpblB0cjxQPiYga2V5KSB7IHJldHVybiBoYXNoKGtleS5nZXQo
KSk7IH0KLSAgICAgICAgdXNpbmcgUHRySGFzaDxQKj46OmVxdWFsOworICAgICAgICB1c2luZyBQ
dHJIYXNoPHR5cGVuYW1lIFJldGFpblB0cjxQPjo6UHRyVHlwZT46OmVxdWFsOwogICAgICAgICBz
dGF0aWMgYm9vbCBlcXVhbChjb25zdCBSZXRhaW5QdHI8UD4mIGEsIGNvbnN0IFJldGFpblB0cjxQ
PiYgYikgeyByZXR1cm4gYSA9PSBiOyB9Ci0gICAgICAgIHN0YXRpYyBib29sIGVxdWFsKFAqIGEs
IGNvbnN0IFJldGFpblB0cjxQPiYgYikgeyByZXR1cm4gYSA9PSBiOyB9Ci0gICAgICAgIHN0YXRp
YyBib29sIGVxdWFsKGNvbnN0IFJldGFpblB0cjxQPiYgYSwgUCogYikgeyByZXR1cm4gYSA9PSBi
OyB9CisgICAgICAgIHN0YXRpYyBib29sIGVxdWFsKHR5cGVuYW1lIFJldGFpblB0cjxQPjo6UHRy
VHlwZSBhLCBjb25zdCBSZXRhaW5QdHI8UD4mIGIpIHsgcmV0dXJuIGEgPT0gYjsgfQorICAgICAg
ICBzdGF0aWMgYm9vbCBlcXVhbChjb25zdCBSZXRhaW5QdHI8UD4mIGEsIHR5cGVuYW1lIFJldGFp
blB0cjxQPjo6UHRyVHlwZSBiKSB7IHJldHVybiBhID09IGI7IH0KICAgICB9OwogICAgIAogICAg
IHRlbXBsYXRlPHR5cGVuYW1lIFA+IHN0cnVjdCBEZWZhdWx0SGFzaDxSZXRhaW5QdHI8UD4gPiB7
IHR5cGVkZWYgUHRySGFzaDxSZXRhaW5QdHI8UD4gPiBIYXNoOyB9OwpkaWZmIC0tZ2l0IGEvVG9v
bHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDk4YzQ4YjJlNWY2MmU2NDQ2ZDdk
ZTgyMzk0MzYzNzFhZTc3OWUzOTYuLmQ2MWM5NDg1YTVkMmNhYzYyMGJlNWE4ODE3YTkzNDc4ZWYy
ZTE1NWQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwyMCBAQAorMjAxMS0xMC0wNSAgQWRhbSBSb2JlbiAgPGFyb2JlbkBhcHBsZS5j
b20+CisKKyAgICAgICAgQWRkIHRlc3RzIGZvciB1c2luZyBSZXRhaW5QdHJzIGluc2lkZSBIYXNo
TWFwIGFuZCBIYXNoU2V0CisKKyAgICAgICAgRml4ZXMgPGh0dHA6Ly93ZWJraXQub3JnL2IvNjk0
MTQ+IFVzaW5nIFJldGFpblB0ciBhcyB0aGUga2V5IHR5cGUgaW4gSGFzaE1hcC9IYXNoU2V0IGZh
aWxzCisgICAgICAgIHRvIGNvbXBpbGUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL2NmL1JldGFpblB0ckhh
c2hpbmcuY3BwOiBBZGRlZC4KKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOiBTaG93IHRo
YXQgUmV0YWluUHRyIGNhbiBiZSB1c2VkIGluc2lkZSBIYXNoU2V0IGFuZCBhcyBib3RoIHRoZSBr
ZXkKKyAgICAgICAgYW5kIHZhbHVlIHR5cGUgb2YgSGFzaE1hcC4KKworICAgICAgICAqIFRlc3RX
ZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAg
ICAqIFRlc3RXZWJLaXRBUEkvd2luL1Rlc3RXZWJLaXRBUEkudmNwcm9qOgorICAgICAgICBBZGRl
ZCBuZXcgZmlsZS4KKwogMjAxMS0xMC0wNSAgRGF2aWQgTGV2aW4gIDxsZXZpbkBjaHJvbWl1bS5v
cmc+CiAKICAgICAgICAgd2F0Y2hsaXN0OiBBZGQgbW9yZSBydWxlcyBmb3IgY2hyb21pdW0gcHVi
bGljIGFwaSBhbmQgc29ydCB0aGUgZmlsZS4KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNzAx
Njg1YWNjMzU0OTFkZjc5ZmMxZTljYzg3NjIzYjVhNzk4OTZhMi4uNWRjOTg4ZjNkYTNiMzNmY2Q2
YTYyYjMxNDA4MjBiZmJlOWFkYWExNSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTI5LDkg
KzI5LDkgQEAKIAkJMzdEQzY3OTExNDBEN0Q3NjAwQUJDQ0RCIC8qIERPTVJhbmdlT2ZTdHJpbmcu
aHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAzN0RDNjc4RjE0MEQ3RDNBMDBBQkNDREIgLyogRE9NUmFuZ2VPZlN0cmluZy5odG1sICovOyB9
OwogCQk0QkZERkZBNzEzMTQ3NzZDMDA2MUYyNEIgLyogSGl0VGVzdFJlc3VsdE5vZGVIYW5kbGVf
QnVuZGxlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDRCRkRGRkE2MTMxNDc3NkMwMDYxRjI0QiAvKiBIaXRUZXN0UmVzdWx0Tm9kZUhhbmRsZV9CdW5k
bGUuY3BwICovOyB9OwogCQk0QkZERkZBOTEzMTQ3Nzc3MDA2MUYyNEIgLyogSGl0VGVzdFJlc3Vs
dE5vZGVIYW5kbGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNEJGREZGQTgxMzE0Nzc3NzAwNjFGMjRCIC8qIEhpdFRlc3RSZXN1bHROb2RlSGFuZGxl
LmNwcCAqLzsgfTsKLQkJODFCNTAxOTMxNDBGMjMyMzAwRDlFQjU4IC8qIFN0cmluZ0J1aWxkZXIu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODFCNTAx
OTIxNDBGMjMyMzAwRDlFQjU4IC8qIFN0cmluZ0J1aWxkZXIuY3BwICovOyB9OwogCQk1MjBCQ0Y0
QzE0MUVCMDlFMDA5MzdFQTggLyogV2ViQXJjaGl2ZV9CdW5kbGUuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTIwQkNGNEExNDFFQjA5RTAwOTM3RUE4
IC8qIFdlYkFyY2hpdmVfQnVuZGxlLmNwcCAqLzsgfTsKIAkJNTIwQkNGNEQxNDFFQjA5RTAwOTM3
RUE4IC8qIFdlYkFyY2hpdmUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNTIwQkNGNEIxNDFFQjA5RTAwOTM3RUE4IC8qIFdlYkFyY2hpdmUuY3BwICov
OyB9OworCQk4MUI1MDE5MzE0MEYyMzIzMDBEOUVCNTggLyogU3RyaW5nQnVpbGRlci5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MUI1MDE5MjE0MEYy
MzIzMDBEOUVCNTggLyogU3RyaW5nQnVpbGRlci5jcHAgKi87IH07CiAJCTkzOUJBOTE3MTQxMDM0
MTIwMDFBMDFCRCAvKiBEZXZpY2VTY2FsZUZhY3Rvck9uQmFjay5tbSBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzOUJBOTE2MTQxMDM0MTIwMDFBMDFCRCAv
KiBEZXZpY2VTY2FsZUZhY3Rvck9uQmFjay5tbSAqLzsgfTsKIAkJQTdBOTY2REIxNDBFQ0NDODAw
NUVGOUI0IC8qIENoZWNrZWRBcml0aG1ldGljT3BlcmF0aW9ucy5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBN0E5NjZEQTE0MEVDQ0M4MDA1RUY5QjQg
LyogQ2hlY2tlZEFyaXRobWV0aWNPcGVyYXRpb25zLmNwcCAqLzsgfTsKIAkJQkMxMzE4ODUxMTcx
MTRCNjAwQjY5NzI3IC8qIFBsYXRmb3JtVXRpbGl0aWVzTWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMxMzE4ODQxMTcxMTRCNjAwQjY5NzI3IC8q
IFBsYXRmb3JtVXRpbGl0aWVzTWFjLm1tICovOyB9OwpAQCAtODEsNiArODEsNyBAQAogCQlDMDg1
ODdCRjEzRkU5NTZDMDAxRUY0RTUgLyogV2ViS2l0QWdub3N0aWNUZXN0Lm1tIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzA4NTg3QkQxM0ZFOTU2QzAwMUVG
NEU1IC8qIFdlYktpdEFnbm9zdGljVGVzdC5tbSAqLzsgfTsKIAkJQzA4NTg3RkMxM0ZFQzM5QjAw
MUVGNEU1IC8qIEluc3RhbmNlTWV0aG9kU3dpenpsZXIubW0gaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMDg1ODdGQjEzRkVDMzlCMDAxRUY0RTUgLyogSW5z
dGFuY2VNZXRob2RTd2l6emxlci5tbSAqLzsgfTsKIAkJQzA4NTg4MDAxM0ZFQzNBNjAwMUVGNEU1
IC8qIEluc3RhbmNlTWV0aG9kU3dpenpsZXIubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBDMDg1ODdGRjEzRkVDM0E2MDAxRUY0RTUgLyogSW5zdGFuY2VN
ZXRob2RTd2l6emxlci5tbSAqLzsgfTsKKwkJQzA5OTFDNTExNDNDN0Q2ODAwNzk5OEYyIC8qIFJl
dGFpblB0ckhhc2hpbmcuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQzA5OTFDNTAxNDNDN0Q2ODAwNzk5OEYyIC8qIFJldGFpblB0ckhhc2hpbmcuY3Bw
ICovOyB9OwogCQlDMEFEQkU3QzEyRkNBNEQwMDBEMkMxMjkgLyogSmF2YVNjcmlwdFRlc3QuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzBBREJFN0Ex
MkZDQTREMDAwRDJDMTI5IC8qIEphdmFTY3JpcHRUZXN0LmNwcCAqLzsgfTsKIAkJQzBBREJFODMx
MkZDQTZBQTAwRDJDMTI5IC8qIFJlc3RvcmVTZXNzaW9uU3RhdGVDb250YWluaW5nRm9ybURhdGEu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzBBREJF
ODIxMkZDQTZBQTAwRDJDMTI5IC8qIFJlc3RvcmVTZXNzaW9uU3RhdGVDb250YWluaW5nRm9ybURh
dGEuY3BwICovOyB9OwogCQlDMEFEQkU5NjEyRkNBNzlCMDBEMkMxMjkgLyogc2ltcGxlLWZvcm0u
aHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBDMEFEQkU4NDEyRkNBNkI2MDBEMkMxMjkgLyogc2ltcGxlLWZvcm0uaHRtbCAqLzsgfTsKQEAg
LTE1OSw5ICsxNjAsOSBAQAogCQkzN0RDNjc4RjE0MEQ3RDNBMDBBQkNDREIgLyogRE9NUmFuZ2VP
ZlN0cmluZy5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gRE9NUmFuZ2VPZlN0cmlu
Zy5odG1sOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0QkZERkZBNjEzMTQ3NzZDMDA2
MUYyNEIgLyogSGl0VGVzdFJlc3VsdE5vZGVIYW5kbGVfQnVuZGxlLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEhpdFRlc3RSZXN1bHROb2RlSGFuZGxlX0J1bmRsZS5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTRCRkRGRkE4MTMxNDc3NzcwMDYxRjI0
QiAvKiBIaXRUZXN0UmVzdWx0Tm9kZUhhbmRsZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBIaXRUZXN0UmVzdWx0Tm9kZUhhbmRsZS5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07Ci0JCTgxQjUwMTkyMTQwRjIzMjMwMEQ5RUI1OCAvKiBTdHJpbmdCdWlsZGVy
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFN0cmluZ0J1aWxkZXIu
Y3BwOyBwYXRoID0gV1RGL1N0cmluZ0J1aWxkZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk1MjBCQ0Y0QTE0MUVCMDlFMDA5MzdFQTggLyogV2ViQXJjaGl2ZV9CdW5kbGUuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViQXJjaGl2ZV9CdW5kbGUu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MjBCQ0Y0QjE0MUVCMDlFMDA5MzdF
QTggLyogV2ViQXJjaGl2ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBXZWJBcmNoaXZlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODFCNTAxOTIx
NDBGMjMyMzAwRDlFQjU4IC8qIFN0cmluZ0J1aWxkZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBuYW1lID0gU3RyaW5nQnVpbGRlci5jcHA7IHBhdGggPSBXVEYvU3RyaW5nQnVp
bGRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCThERDc2RkExMDQ4NkFBNzYw
MEQ5NkI1RSAvKiBUZXN0V2ViS2l0QVBJICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGV4
cGxpY2l0RmlsZVR5cGUgPSAiY29tcGlsZWQubWFjaC1vLmV4ZWN1dGFibGUiOyBpbmNsdWRlSW5J
bmRleCA9IDA7IHBhdGggPSBUZXN0V2ViS2l0QVBJOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVD
VFNfRElSOyB9OwogCQk5MzlCQTkxNjE0MTAzNDEyMDAxQTAxQkQgLyogRGV2aWNlU2NhbGVGYWN0
b3JPbkJhY2subW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBEZXZp
Y2VTY2FsZUZhY3Rvck9uQmFjay5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTdB
OTY2REExNDBFQ0NDODAwNUVGOUI0IC8qIENoZWNrZWRBcml0aG1ldGljT3BlcmF0aW9ucy5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBDaGVja2VkQXJpdGhtZXRpY09w
ZXJhdGlvbnMuY3BwOyBwYXRoID0gV1RGL0NoZWNrZWRBcml0aG1ldGljT3BlcmF0aW9ucy5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMjUsNiArMjI2LDcgQEAKIAkJQzA4NTg3
RkIxM0ZFQzM5QjAwMUVGNEU1IC8qIEluc3RhbmNlTWV0aG9kU3dpenpsZXIubW0gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBJbnN0YW5jZU1ldGhvZFN3aXp6bGVyLm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDMDg1ODdGRTEzRkVDM0E2MDAxRUY0RTUg
LyogSW5zdGFuY2VNZXRob2RTd2l6emxlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBJbnN0YW5jZU1ldGhvZFN3aXp6bGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUMwODU4N0ZGMTNGRUMzQTYwMDFFRjRFNSAvKiBJbnN0YW5jZU1ldGhvZFN3aXp6bGVyLm1t
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gSW5zdGFuY2VNZXRob2RT
d2l6emxlci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQzA5OTFDNTAxNDNDN0Q2
ODAwNzk5OEYyIC8qIFJldGFpblB0ckhhc2hpbmcuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gUmV0YWluUHRySGFzaGluZy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUMwQURCRTdBMTJGQ0E0RDAwMEQyQzEyOSAvKiBKYXZhU2NyaXB0VGVzdC5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKYXZhU2NyaXB0VGVzdC5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUMwQURCRTdCMTJGQ0E0RDAwMEQyQzEyOSAv
KiBKYXZhU2NyaXB0VGVzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKYXZh
U2NyaXB0VGVzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDMEFEQkU4MjEyRkNB
NkFBMDBEMkMxMjkgLyogUmVzdG9yZVNlc3Npb25TdGF0ZUNvbnRhaW5pbmdGb3JtRGF0YS5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZXN0b3JlU2Vzc2lvblN0YXRl
Q29udGFpbmluZ0Zvcm1EYXRhLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTM4
NSw2ICszODcsNyBAQAogCQlCQzkwOTY0NjEyNTU2MTg5MDAwODM3NTYgLyogV1RGICovID0gewog
CQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQlDMDk5MUM0RjE0M0M3RDY4
MDA3OTk4RjIgLyogY2YgKi8sCiAJCQkJMEZDNkM0Q0UxNDEwMzRBRDAwNUI3RjBDIC8qIE1ldGFB
bGxvY2F0b3IuY3BwICovLAogCQkJCTBGQzZDNENCMTQxMDI3RTAwMDVCN0YwQyAvKiBSZWRCbGFj
a1RyZWUuY3BwICovLAogCQkJCUE3QTk2NkRBMTQwRUNDQzgwMDVFRjlCNCAvKiBDaGVja2VkQXJp
dGhtZXRpY09wZXJhdGlvbnMuY3BwICovLApAQCAtNDgwLDYgKzQ4MywxNSBAQAogCQkJcGF0aCA9
IG1hYzsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07CisJCUMwOTkxQzRGMTQzQzdE
NjgwMDc5OThGMiAvKiBjZiAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4g
PSAoCisJCQkJQzA5OTFDNTAxNDNDN0Q2ODAwNzk5OEYyIC8qIFJldGFpblB0ckhhc2hpbmcuY3Bw
ICovLAorCQkJKTsKKwkJCW5hbWUgPSBjZjsKKwkJCXBhdGggPSBXVEYvY2Y7CisJCQlzb3VyY2VU
cmVlID0gIjxncm91cD4iOworCQl9OwogLyogRW5kIFBCWEdyb3VwIHNlY3Rpb24gKi8KIAogLyog
QmVnaW4gUEJYTmF0aXZlVGFyZ2V0IHNlY3Rpb24gKi8KQEAgLTYwOCw2ICs2MjAsNyBAQAogCQkJ
CTMzREM4OTExMTQxOTUzQTMwMDc0N0VGNyAvKiBMb2FkQ2FuY2VsZWROb1NlcnZlclJlZGlyZWN0
Q2FsbGJhY2suY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTIwQkNGNEQxNDFFQjA5RTAwOTM3RUE4
IC8qIFdlYkFyY2hpdmUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRjZGRERERDMxNDI0MUFENDAw
NEYxNzI5IC8qIFByaXZhdGVCcm93c2luZ1B1c2hTdGF0ZU5vSGlzdG9yeUNhbGxiYWNrLmNwcCBp
biBTb3VyY2VzICovLAorCQkJCUMwOTkxQzUxMTQzQzdENjgwMDc5OThGMiAvKiBSZXRhaW5QdHJI
YXNoaW5nLmNwcCBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50
UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XVEYvY2YvUmV0YWluUHRySGFzaGluZy5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dURi9jZi9SZXRhaW5QdHJIYXNoaW5nLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wY2QyOGM5YmIy
YjZhNTUzYzA2MDA0MjIwYjY0NGRhYzE0MTE3NmU3Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvY2YvUmV0YWluUHRySGFzaGluZy5jcHAKQEAgLTAsMCAr
MSw5MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiAgTmVpdGhlciB0aGUgbmFtZSBvZiBB
cHBsZSBDb21wdXRlciwgSW5jLiAoIkFwcGxlIikgbm9yIHRoZSBuYW1lcyBvZgorICogICAgIGl0
cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3Rz
IGRlcml2ZWQKKyAqICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlv
ciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
IElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4K
KyNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KKwor
bmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgeworCitURVNUKFJldGFpblB0ckhhc2hpbmcsIEhhc2hT
ZXQpCit7CisgICAgSGFzaFNldDxSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+ID4gc2V0OworCisgICAg
UmV0YWluUHRyPENGU3RyaW5nUmVmPiBmb28oQWRvcHRDRiwgQ0ZTdHJpbmdDcmVhdGVXaXRoQ1N0
cmluZyhrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAiZm9vIiwga0NGU3RyaW5nRW5jb2RpbmdVVEY4KSk7
CisKKyAgICBFWFBFQ1RfRkFMU0Uoc2V0LmNvbnRhaW5zKGZvbykpOworICAgIHNldC5hZGQoZm9v
KTsKKyAgICBFWFBFQ1RfVFJVRShzZXQuY29udGFpbnMoZm9vKSk7CisKKyAgICBSZXRhaW5QdHI8
Q0ZTdHJpbmdSZWY+IGZvbzIoQWRvcHRDRiwgQ0ZTdHJpbmdDcmVhdGVXaXRoQ1N0cmluZyhrQ0ZB
bGxvY2F0b3JEZWZhdWx0LCAiZm9vIiwga0NGU3RyaW5nRW5jb2RpbmdVVEY4KSk7CisgICAgRVhQ
RUNUX0ZBTFNFKHNldC5jb250YWlucyhmb28yKSk7CisgICAgc2V0LmFkZChmb28yKTsKKyAgICBF
WFBFQ1RfVFJVRShzZXQuY29udGFpbnMoZm9vMikpOworCisgICAgc2V0LnJlbW92ZShmb28pOwor
ICAgIEVYUEVDVF9GQUxTRShzZXQuY29udGFpbnMoZm9vKSk7Cit9CisKK1RFU1QoUmV0YWluUHRy
SGFzaGluZywgSGFzaE1hcEtleSkKK3sKKyAgICBIYXNoTWFwPFJldGFpblB0cjxDRlN0cmluZ1Jl
Zj4sIGludD4gbWFwOworCisgICAgUmV0YWluUHRyPENGU3RyaW5nUmVmPiBmb28oQWRvcHRDRiwg
Q0ZTdHJpbmdDcmVhdGVXaXRoQ1N0cmluZyhrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAiZm9vIiwga0NG
U3RyaW5nRW5jb2RpbmdVVEY4KSk7CisKKyAgICBFWFBFQ1RfRkFMU0UobWFwLmNvbnRhaW5zKGZv
bykpOworICAgIG1hcC5hZGQoZm9vLCAxKTsKKyAgICBFWFBFQ1RfRVEoMSwgbWFwLmdldChmb28p
KTsKKworICAgIFJldGFpblB0cjxDRlN0cmluZ1JlZj4gZm9vMihBZG9wdENGLCBDRlN0cmluZ0Ny
ZWF0ZVdpdGhDU3RyaW5nKGtDRkFsbG9jYXRvckRlZmF1bHQsICJmb28iLCBrQ0ZTdHJpbmdFbmNv
ZGluZ1VURjgpKTsKKyAgICBFWFBFQ1RfRkFMU0UobWFwLmNvbnRhaW5zKGZvbzIpKTsKKyAgICBt
YXAuYWRkKGZvbzIsIDIpOworICAgIEVYUEVDVF9FUSgyLCBtYXAuZ2V0KGZvbzIpKTsKKworICAg
IG1hcC5yZW1vdmUoZm9vKTsKKyAgICBFWFBFQ1RfRkFMU0UobWFwLmNvbnRhaW5zKGZvbykpOwor
fQorCitURVNUKFJldGFpblB0ckhhc2hpbmcsIEhhc2hNYXBWYWx1ZSkKK3sKKyAgICBIYXNoTWFw
PGludCwgUmV0YWluUHRyPENGU3RyaW5nUmVmPiA+IG1hcDsKKworICAgIFJldGFpblB0cjxDRlN0
cmluZ1JlZj4gZm9vKEFkb3B0Q0YsIENGU3RyaW5nQ3JlYXRlV2l0aENTdHJpbmcoa0NGQWxsb2Nh
dG9yRGVmYXVsdCwgImZvbyIsIGtDRlN0cmluZ0VuY29kaW5nVVRGOCkpOworCisgICAgRVhQRUNU
X0ZBTFNFKG1hcC5jb250YWlucygxKSk7CisgICAgbWFwLmFkZCgxLCBmb28pOworICAgIEVYUEVD
VF9FUShmb28sIG1hcC5nZXQoMSkpOworCisgICAgUmV0YWluUHRyPENGU3RyaW5nUmVmPiBmb28y
KEFkb3B0Q0YsIENGU3RyaW5nQ3JlYXRlV2l0aENTdHJpbmcoa0NGQWxsb2NhdG9yRGVmYXVsdCwg
ImZvbyIsIGtDRlN0cmluZ0VuY29kaW5nVVRGOCkpOworICAgIEVYUEVDVF9GQUxTRShtYXAuY29u
dGFpbnMoMikpOworICAgIG1hcC5hZGQoMiwgZm9vMik7CisgICAgRVhQRUNUX0VRKGZvbzIsIG1h
cC5nZXQoMikpOworfQorCit9IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJCmRpZmYgLS1naXQg
YS9Ub29scy9UZXN0V2ViS2l0QVBJL3dpbi9UZXN0V2ViS2l0QVBJLnZjcHJvaiBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvd2luL1Rlc3RXZWJLaXRBUEkudmNwcm9qCmluZGV4IGI4NjNmODlhNTJlMmQ2
YzNmYWUzOTdmYWI4NTU5ZDI0ZWU5ODA2ZWIuLjdkMWZiOGUyNDZiYzcyODM1YTE4Njk2MTRkZTY5
ODM0ZDhlNGJiMjAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvd2luL1Rlc3RXZWJL
aXRBUEkudmNwcm9qCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvd2luL1Rlc3RXZWJLaXRBUEku
dmNwcm9qCkBAIC02MTksNiArNjE5LDE0IEBACiAJCQk8RmlsdGVyCiAJCQkJTmFtZT0iV1RGIgog
CQkJCT4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEZpbHRlcgorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5hbWU9ImNmIgorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgID4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA8RmlsZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgUmVsYXRpdmVQYXRoPSIuLlxUZXN0c1xXVEZcY2ZcUmV0YWluUHRySGFzaGluZy5j
cHAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9GaWxlPgorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA8L0ZpbHRlcj4KIAkJCQk8RmlsZQogCQkJCQlSZWxhdGl2
ZVBhdGg9Ii4uXFRlc3RzXFdURlxDaGVja2VkQXJpdGhtZXRpY09wZXJhdGlvbnMuY3BwIgogCQkJ
CQk+Cg==
</data>
<flag name="review"
          id="107085"
          type_id="1"
          status="+"
          setter="sullivan"
    />
          </attachment>
      

    </bug>

</bugzilla>