<?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>110170</bug_id>
          
          <creation_ts>2013-02-18 18:02:24 -0800</creation_ts>
          <short_desc>Add a DefaultHash for RefPtr&lt;SecurityOrigin&gt;</short_desc>
          <delta_ts>2013-02-18 19:17:44 -0800</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>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Anders Carlsson">andersca</reporter>
          <assigned_to name="Anders Carlsson">andersca</assigned_to>
          <cc>darin</cc>
    
    <cc>japhet</cc>
    
    <cc>kling</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>835870</commentid>
    <comment_count>0</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2013-02-18 18:02:24 -0800</bug_when>
    <thetext>Add a DefaultHash for RefPtr&lt;SecurityOrigin&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>835877</commentid>
    <comment_count>1</comment_count>
      <attachid>188972</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2013-02-18 18:16:17 -0800</bug_when>
    <thetext>Created attachment 188972
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>835879</commentid>
    <comment_count>2</comment_count>
      <attachid>188972</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2013-02-18 18:20:11 -0800</bug_when>
    <thetext>Comment on attachment 188972
Patch

Fabulous! r=me. Might wanna let EWS chew on it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>835880</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-18 18:21:13 -0800</bug_when>
    <thetext>Attachment 188972 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCore/Modules/webdatabase/DatabaseTracker.h&apos;, u&apos;Source/WebCore/Modules/webdatabase/OriginQuotaManager.h&apos;, u&apos;Source/WebCore/loader/appcache/ApplicationCacheStorage.cpp&apos;, u&apos;Source/WebCore/loader/cache/MemoryCache.h&apos;, u&apos;Source/WebCore/page/SecurityOriginHash.h&apos;, u&apos;Source/WebCore/storage/StorageNamespaceImpl.h&apos;, u&apos;Source/WebKit/mac/ChangeLog&apos;, u&apos;Source/WebKit/mac/WebCoreSupport/WebApplicationCache.mm&apos;, u&apos;Source/WebKit2/ChangeLog&apos;, u&apos;Source/WebKit2/UIProcess/Storage/StorageManager.cpp&apos;, u&apos;Source/WebKit2/WebProcess/ApplicationCache/WebApplicationCacheManager.cpp&apos;, u&apos;Source/WebKit2/WebProcess/InjectedBundle/InjectedBundle.cpp&apos;, u&apos;Source/WebKit2/WebProcess/Notifications/NotificationPermissionRequestManager.h&apos;, u&apos;Source/WebKit2/WebProcess/ResourceCache/WebResourceCacheManager.cpp&apos;, u&apos;Source/WebKit2/WebProcess/ResourceCache/WebResourceCacheManager.h&apos;]&quot; exit_code: 1
Source/WebCore/page/SecurityOriginHash.h:82:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
Total errors found: 1 in 16 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>835888</commentid>
    <comment_count>4</comment_count>
      <attachid>188972</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-18 18:57:09 -0800</bug_when>
    <thetext>Comment on attachment 188972
Patch

Clearing flags on attachment: 188972

Committed r143287: &lt;http://trac.webkit.org/changeset/143287&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>835889</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-18 18:57:12 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>835891</commentid>
    <comment_count>6</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-02-18 18:59:10 -0800</bug_when>
    <thetext>Seems a little strange for a RefPtr to hash by what’s pointed to rather than the pointer by default. Should we do this for other classes like RefPtr&lt;StringImpl&gt; too?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>835896</commentid>
    <comment_count>7</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-02-18 19:12:59 -0800</bug_when>
    <thetext>Does compilation fail if you forget to include &quot;SecurityOriginHash.h&quot;?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>835899</commentid>
    <comment_count>8</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2013-02-18 19:17:44 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; Seems a little strange for a RefPtr to hash by what’s pointed to rather than the pointer by default. Should we do this for other classes like RefPtr&lt;StringImpl&gt; too?

This is already the case. From StringImpl.h:

// StringHash is the default hash for StringImpl* and RefPtr&lt;StringImpl&gt;
template&lt;typename T&gt; struct DefaultHash;
template&lt;&gt; struct DefaultHash&lt;StringImpl*&gt; {
    typedef StringHash Hash;
};
template&lt;&gt; struct DefaultHash&lt;RefPtr&lt;StringImpl&gt; &gt; {
    typedef StringHash Hash;
};</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>188972</attachid>
            <date>2013-02-18 18:16:17 -0800</date>
            <delta_ts>2013-02-18 18:57:09 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-110170-20130218181239.patch</filename>
            <type>text/plain</type>
            <size>16194</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQzMjc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmM2YTRlNTk3NDNiYmY2
OGNkOTM1NjZkNWJjMTc2MjIwZjZlZGIyMi4uNzNhM2Q1NDg2YzQyNzViODdmZTM1YjVjMDgxZDI0
OTU2MDI5OGJlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDEzLTAyLTE4ICBBbmRl
cnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIGEgRGVmYXVs
dEhhc2ggZm9yIFJlZlB0cjxTZWN1cml0eU9yaWdpbj4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMDE3MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbW92ZSBhbGwgZXhwbGljaXQgdXNlcyBvZiBTZWN1
cml0eU9yaWdpbkhhc2guCisKKyAgICAgICAgKiBNb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNl
VHJhY2tlci5oOgorICAgICAgICAqIE1vZHVsZXMvd2ViZGF0YWJhc2UvT3JpZ2luUXVvdGFNYW5h
Z2VyLmg6CisgICAgICAgICogbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVTdG9yYWdl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlOjpnZXRPcmln
aW5zV2l0aENhY2hlKToKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvTWVtb3J5Q2FjaGUuaDoKKyAg
ICAgICAgKiBwYWdlL1NlY3VyaXR5T3JpZ2luSGFzaC5oOgorICAgICAgICAqIHN0b3JhZ2UvU3Rv
cmFnZU5hbWVzcGFjZUltcGwuaDoKKyAgICAgICAgKFN0b3JhZ2VOYW1lc3BhY2VJbXBsKToKKwog
MjAxMy0wMi0xOCAgcGVhdm9Ab3V0bG9vay5jb20gIDxwZWF2b0BvdXRsb29rLmNvbT4KIAogICAg
ICAgICBbQ3VybF0gVGhlIGZ1bmN0aW9uIGNvb2tpZXNGb3JET00oKSBkb2VzIG5vdCBiZWhhdmUg
Y29ycmVjdGx5LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4IDM3MTY0NjQ4OWM3ZmFiMTIxZmFkMTE1OTgy
YTc5NWYxN2Y1NGZhY2YuLjQzYmE0OWI0ZDk0ZTc3OGU0NTg5N2IwOGVlNDgwNTRkMDEwNDJmZWMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
S2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMy0wMi0xOCAgQW5kZXJzIENh
cmxzc29uICA8YW5kZXJzY2FAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBhIERlZmF1bHRIYXNo
IGZvciBSZWZQdHI8U2VjdXJpdHlPcmlnaW4+CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMTAxNzAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBSZW1vdmUgYWxsIGV4cGxpY2l0IHVzZXMgb2YgU2VjdXJpdHlP
cmlnaW5IYXNoLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViQXBwbGljYXRpb25DYWNo
ZS5tbToKKyAgICAgICAgKCtbV2ViQXBwbGljYXRpb25DYWNoZSBvcmlnaW5zV2l0aENhY2hlXSk6
CisKIDIwMTMtMDItMTUgIEVyaWMgQ2FybHNvbiAgPGVyaWMuY2FybHNvbkBhcHBsZS5jb20+CiAK
ICAgICAgICAgW01hY10gcmVtb3ZlIHdrQ2FwdGlvbkFwcGVhcmFuY2UgZnJvbSBXZWJLaXRTeXN0
ZW1JbnRlcmZhY2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCAyYTRkMmY2ZGUwODNjYWZlOTUyOTNjZWU5ODRmZGEw
OTVhMDk1YjAzLi5mMzFhNGM5MmZjNzFhNjIzOGM3MzIwMWZkNzhhNmQ0NmMwMjgzNzgxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hh
bmdlTG9nCkBAIC0xLDUgKzEsMzAgQEAKIDIwMTMtMDItMTggIEFuZGVycyBDYXJsc3NvbiAgPGFu
ZGVyc2NhQGFwcGxlLmNvbT4KIAorICAgICAgICBBZGQgYSBEZWZhdWx0SGFzaCBmb3IgUmVmUHRy
PFNlY3VyaXR5T3JpZ2luPgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTEwMTcwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgUmVtb3ZlIGFsbCBleHBsaWNpdCB1c2VzIG9mIFNlY3VyaXR5T3JpZ2luSGFzaC4K
KworICAgICAgICAqIFVJUHJvY2Vzcy9TdG9yYWdlL1N0b3JhZ2VNYW5hZ2VyLmNwcDoKKyAgICAg
ICAgKFN0b3JhZ2VNYW5hZ2VyOjpTZXNzaW9uU3RvcmFnZU5hbWVzcGFjZSk6CisgICAgICAgICog
V2ViUHJvY2Vzcy9BcHBsaWNhdGlvbkNhY2hlL1dlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6V2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXI6OmdldEFwcGxp
Y2F0aW9uQ2FjaGVPcmlnaW5zKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0luamVjdGVkQnVuZGxlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6SW5qZWN0ZWRCdW5kbGU6Om9y
aWdpbnNXaXRoQXBwbGljYXRpb25DYWNoZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9Ob3RpZmlj
YXRpb25zL05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5oOgorICAgICAgICBJ
bmNsdWRlIFNlY3VyaXR5T3JpZ2luSGFzaC5oLiBUaGlzIGZpeGVzIGEgYnVnIHdoZXJlIG1fb3Jp
Z2luVG9JRE1hcCB1c2VkIHBvaW50ZXItZXF1YWxpdHkKKyAgICAgICAgZm9yIGxvb2tpbmcgdXAg
c2VjdXJpdHkgb3JpZ2lucy4KKworICAgICAgICAqIFdlYlByb2Nlc3MvUmVzb3VyY2VDYWNoZS9X
ZWJSZXNvdXJjZUNhY2hlTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNl
Q2FjaGVNYW5hZ2VyOjpjbGVhckNhY2hlRm9yT3JpZ2luKToKKyAgICAgICAgVGhpcyBjYW4ganVz
dCB0YWtlIGEgY29uc3QgcmVmZXJlbmNlLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9SZXNvdXJj
ZUNhY2hlL1dlYlJlc291cmNlQ2FjaGVNYW5hZ2VyLmg6CisKKzIwMTMtMDItMTggIEFuZGVycyBD
YXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KKwogICAgICAgICBCZWdpbiBzdHViYmluZyBv
dXQgc2Vzc2lvbiBzdG9yYWdlIGNsYXNzZXMKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTExMDE2OAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlVHJhY2tlci5oIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRyYWNrZXIuaAppbmRleCAyMzBlY2U2ODM3Mzk3ZjQ5
MThkNzMzYmY0NWU0ODMwODAwODQ0YTUxLi5jMTgyOTNiN2Q0YTg4OTBlMWI4NTk3OGZlMzVlNjA2
ZjNjZTI5M2UzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNl
L0RhdGFiYXNlVHJhY2tlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJh
c2UvRGF0YWJhc2VUcmFja2VyLmgKQEAgLTQwLDYgKzQwLDcgQEAKICNpZiAhUExBVEZPUk0oQ0hS
T01JVU0pCiAjaW5jbHVkZSAiRGF0YWJhc2VEZXRhaWxzLmgiCiAjaW5jbHVkZSAiU1FMaXRlRGF0
YWJhc2UuaCIKKyNpbmNsdWRlICJTZWN1cml0eU9yaWdpbkhhc2guaCIKICNpbmNsdWRlIDx3dGYv
T3duUHRyLmg+CiAjZW5kaWYgLy8gIVBMQVRGT1JNKENIUk9NSVVNKQogCkBAIC00OSwxMiArNTAs
OSBAQCBjbGFzcyBEYXRhYmFzZUJhY2tlbmQ7CiBjbGFzcyBEYXRhYmFzZUJhY2tlbmRDb250ZXh0
OwogY2xhc3MgU2VjdXJpdHlPcmlnaW47CiAKLXN0cnVjdCBTZWN1cml0eU9yaWdpbkhhc2g7Ci0K
ICNpZiAhUExBVEZPUk0oQ0hST01JVU0pCiBjbGFzcyBEYXRhYmFzZU1hbmFnZXJDbGllbnQ7CiAK
LXN0cnVjdCBTZWN1cml0eU9yaWdpblRyYWl0czsKICNlbmRpZiAvLyAhUExBVEZPUk0oQ0hST01J
VU0pCiAKIGNsYXNzIERhdGFiYXNlVHJhY2tlciB7CkBAIC0xNDUsNyArMTQzLDcgQEAgcHJpdmF0
ZToKIAogICAgIHR5cGVkZWYgSGFzaFNldDxEYXRhYmFzZUJhY2tlbmQqPiBEYXRhYmFzZVNldDsK
ICAgICB0eXBlZGVmIEhhc2hNYXA8U3RyaW5nLCBEYXRhYmFzZVNldCo+IERhdGFiYXNlTmFtZU1h
cDsKLSAgICB0eXBlZGVmIEhhc2hNYXA8UmVmUHRyPFNlY3VyaXR5T3JpZ2luPiwgRGF0YWJhc2VO
YW1lTWFwKiwgU2VjdXJpdHlPcmlnaW5IYXNoPiBEYXRhYmFzZU9yaWdpbk1hcDsKKyAgICB0eXBl
ZGVmIEhhc2hNYXA8UmVmUHRyPFNlY3VyaXR5T3JpZ2luPiwgRGF0YWJhc2VOYW1lTWFwKj4gRGF0
YWJhc2VPcmlnaW5NYXA7CiAKICAgICBNdXRleCBtX29wZW5EYXRhYmFzZU1hcEd1YXJkOwogICAg
IG11dGFibGUgT3duUHRyPERhdGFiYXNlT3JpZ2luTWFwPiBtX29wZW5EYXRhYmFzZU1hcDsKQEAg
LTE1NCw3ICsxNTIsNyBAQCBwcml2YXRlOgogICAgIE11dGV4IG1fZGF0YWJhc2VHdWFyZDsKICAg
ICBTUUxpdGVEYXRhYmFzZSBtX2RhdGFiYXNlOwogCi0gICAgdHlwZWRlZiBIYXNoTWFwPFJlZlB0
cjxTZWN1cml0eU9yaWdpbj4sIHVuc2lnbmVkIGxvbmcgbG9uZywgU2VjdXJpdHlPcmlnaW5IYXNo
PiBRdW90YU1hcDsKKyAgICB0eXBlZGVmIEhhc2hNYXA8UmVmUHRyPFNlY3VyaXR5T3JpZ2luPiwg
dW5zaWduZWQgbG9uZyBsb25nPiBRdW90YU1hcDsKICAgICBtdXRhYmxlIE93blB0cjxRdW90YU1h
cD4gbV9xdW90YU1hcDsKIAogICAgIFN0cmluZyBtX2RhdGFiYXNlRGlyZWN0b3J5UGF0aDsKQEAg
LTE2NSw4ICsxNjMsOCBAQCBwcml2YXRlOgogICAgIHR5cGVkZWYgSGFzaE1hcDxSZWZQdHI8U2Vj
dXJpdHlPcmlnaW4+LCBOYW1lQ291bnRNYXAqLCBTZWN1cml0eU9yaWdpbkhhc2g+IENyZWF0ZVNl
dDsKICAgICBDcmVhdGVTZXQgbV9iZWluZ0NyZWF0ZWQ7CiAgICAgdHlwZWRlZiBIYXNoU2V0PFN0
cmluZz4gTmFtZVNldDsKLSAgICBIYXNoTWFwPFJlZlB0cjxTZWN1cml0eU9yaWdpbj4sIE5hbWVT
ZXQqLCBTZWN1cml0eU9yaWdpbkhhc2g+IG1fYmVpbmdEZWxldGVkOwotICAgIEhhc2hTZXQ8UmVm
UHRyPFNlY3VyaXR5T3JpZ2luPiwgU2VjdXJpdHlPcmlnaW5IYXNoPiBtX29yaWdpbnNCZWluZ0Rl
bGV0ZWQ7CisgICAgSGFzaE1hcDxSZWZQdHI8U2VjdXJpdHlPcmlnaW4+LCBOYW1lU2V0Kj4gbV9i
ZWluZ0RlbGV0ZWQ7CisgICAgSGFzaFNldDxSZWZQdHI8U2VjdXJpdHlPcmlnaW4+ID4gbV9vcmln
aW5zQmVpbmdEZWxldGVkOwogICAgIGJvb2wgaXNEZWxldGluZ0RhdGFiYXNlT3JPcmlnaW5Gb3Io
U2VjdXJpdHlPcmlnaW4qLCBjb25zdCBTdHJpbmcmIG5hbWUpOwogICAgIHZvaWQgcmVjb3JkQ3Jl
YXRpbmdEYXRhYmFzZShTZWN1cml0eU9yaWdpbiosIGNvbnN0IFN0cmluZyYgbmFtZSk7CiAgICAg
dm9pZCBkb25lQ3JlYXRpbmdEYXRhYmFzZShTZWN1cml0eU9yaWdpbiosIGNvbnN0IFN0cmluZyYg
bmFtZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL09y
aWdpblF1b3RhTWFuYWdlci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9P
cmlnaW5RdW90YU1hbmFnZXIuaAppbmRleCBkYjcwNDIwMGRmN2Q3MzEyOTAyODQ0MzhkNzNjZGVj
Y2E3Nzc2NDAwLi5iZGM5ZTQyZmQ2YjYxMTVmNzg3ZWEzNjY1NjUyNTcxODcxZGNkODk4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL09yaWdpblF1b3RhTWFu
YWdlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvT3JpZ2luUXVv
dGFNYW5hZ2VyLmgKQEAgLTQwLDYgKzQwLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFz
cyBEYXRhYmFzZUJhY2tlbmQ7CiBjbGFzcyBPcmlnaW5Vc2FnZVJlY29yZDsKK2NsYXNzIFNlY3Vy
aXR5T3JpZ2luOwogCiBjbGFzcyBPcmlnaW5RdW90YU1hbmFnZXIgewogICAgIFdURl9NQUtFX05P
TkNPUFlBQkxFKE9yaWdpblF1b3RhTWFuYWdlcik7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwpA
QCAtNjUsNyArNjYsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV91c2FnZVJlY29yZEd1YXJkTG9j
a2VkOwogI2VuZGlmCiAKLSAgICB0eXBlZGVmIEhhc2hNYXA8UmVmUHRyPFNlY3VyaXR5T3JpZ2lu
PiwgT3JpZ2luVXNhZ2VSZWNvcmQqLCBTZWN1cml0eU9yaWdpbkhhc2g+IE9yaWdpblVzYWdlTWFw
OworICAgIHR5cGVkZWYgSGFzaE1hcDxSZWZQdHI8U2VjdXJpdHlPcmlnaW4+LCBPcmlnaW5Vc2Fn
ZVJlY29yZCo+IE9yaWdpblVzYWdlTWFwOwogICAgIE9yaWdpblVzYWdlTWFwIG1fdXNhZ2VNYXA7
CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGlj
YXRpb25DYWNoZVN0b3JhZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0Fw
cGxpY2F0aW9uQ2FjaGVTdG9yYWdlLmNwcAppbmRleCA0YTUxOTA3MGYxZWRjYjIzZTg4OWMzNjNk
NDkyOTgxMzMyOGRiNWM5Li4zZjljYzJiMjk4NzljZjQxYjdiN2I2NmYwYzkwMjhhYTQ1OTE3ZTYw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25D
YWNoZVN0b3JhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBs
aWNhdGlvbkNhY2hlU3RvcmFnZS5jcHAKQEAgLTE1MTIsNyArMTUxMiw3IEBAIGxvbmcgbG9uZyBB
cHBsaWNhdGlvbkNhY2hlU3RvcmFnZTo6ZmxhdEZpbGVBcmVhU2l6ZSgpCiAgICAgcmV0dXJuIHRv
dGFsU2l6ZTsKIH0KIAotdm9pZCBBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZTo6Z2V0T3JpZ2luc1dp
dGhDYWNoZShIYXNoU2V0PFJlZlB0cjxTZWN1cml0eU9yaWdpbj4sIFNlY3VyaXR5T3JpZ2luSGFz
aD4mIG9yaWdpbnMpCit2b2lkIEFwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlOjpnZXRPcmlnaW5zV2l0
aENhY2hlKEhhc2hTZXQ8UmVmUHRyPFNlY3VyaXR5T3JpZ2luPiA+JiBvcmlnaW5zKQogewogICAg
IFZlY3RvcjxLVVJMPiB1cmxzOwogICAgIGlmICghbWFuaWZlc3RVUkxzKCZ1cmxzKSkgewpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL01lbW9yeUNhY2hlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvTWVtb3J5Q2FjaGUuaAppbmRleCA3MzAzZWI0YzlhMjRm
OGRkZDk0ODY4Zjg3Mjc4NDY4MDY5NzM0ZjY5Li4yMDQ1ODU2ZTI5N2QxMWEyMjE4NGVkZjFkNDAw
ZmFkMTlmM2FiNzJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvTWVt
b3J5Q2FjaGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvTWVtb3J5Q2FjaGUu
aApAQCAtMjYsNiArMjYsNyBAQAogI2RlZmluZSBDYWNoZV9oCiAKICNpbmNsdWRlICJDYWNoZWRS
ZXNvdXJjZS5oIgorI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luSGFzaC5oIgogI2luY2x1ZGUgPHd0
Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvTm9u
Y29weWFibGUuaD4KQEAgLTE1OCw3ICsxNTksNyBAQCBwdWJsaWM6CiAgICAgCiAgICAgdm9pZCBy
ZXNvdXJjZUFjY2Vzc2VkKENhY2hlZFJlc291cmNlKik7CiAKLSAgICB0eXBlZGVmIEhhc2hTZXQ8
UmVmUHRyPFNlY3VyaXR5T3JpZ2luPiwgU2VjdXJpdHlPcmlnaW5IYXNoPiBTZWN1cml0eU9yaWdp
blNldDsKKyAgICB0eXBlZGVmIEhhc2hTZXQ8UmVmUHRyPFNlY3VyaXR5T3JpZ2luPiA+IFNlY3Vy
aXR5T3JpZ2luU2V0OwogICAgIHZvaWQgcmVtb3ZlUmVzb3VyY2VzV2l0aE9yaWdpbihTZWN1cml0
eU9yaWdpbiopOwogICAgIHZvaWQgZ2V0T3JpZ2luc1dpdGhDYWNoZShTZWN1cml0eU9yaWdpblNl
dCYgb3JpZ2lucyk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2VjdXJpdHlP
cmlnaW5IYXNoLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NlY3VyaXR5T3JpZ2luSGFzaC5oCmlu
ZGV4IGRiMzg0NWNiNjMwYTBhMmMwMTMwNzc5YWJmNmYyY2Q3MzA1ZmY1NmQuLjlkZWFmYjEyYWRk
ZjAzNjM0Mzg2NzQ5YjcwOWRjM2M2N2RhYTQyYjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvU2VjdXJpdHlPcmlnaW5IYXNoLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZWN1
cml0eU9yaWdpbkhhc2guaApAQCAtNzgsNCArNzgsMTMgQEAgc3RydWN0IFNlY3VyaXR5T3JpZ2lu
SGFzaCB7CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAotI2VuZGlmCituYW1lc3BhY2UgV1RG
IHsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZT4gc3RydWN0IERlZmF1bHRIYXNoOworCisgICAgdGVt
cGxhdGU8PiBzdHJ1Y3QgRGVmYXVsdEhhc2g8UmVmUHRyPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2lu
PiA+IHsKKyAgICAgICAgdHlwZWRlZiBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkhhc2ggSGFzaDsK
KyAgICB9OworCit9IC8vIG5hbWVzcGFjZSBXVEYKKworI2VuZGlmIC8vIFNlY3VyaXR5T3JpZ2lu
SGFzaF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VOYW1lc3Bh
Y2VJbXBsLmggYi9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VOYW1lc3BhY2VJbXBsLmgK
aW5kZXggY2E0MTVhYjU0ZjRhNDhmYjdkZGM0MGJhYmIwZDMyNWE0NWZjMGFkMS4uMDRkMzViNDlk
OTExYTY5NTViMzY0MTJiNDUyYWVkOGQ2MzFkZGE5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvc3RvcmFnZS9TdG9yYWdlTmFtZXNwYWNlSW1wbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0
b3JhZ2UvU3RvcmFnZU5hbWVzcGFjZUltcGwuaApAQCAtNTksNyArNTksNyBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAgICAgcHJpdmF0ZToKICAgICAgICAgU3RvcmFnZU5hbWVzcGFjZUltcGwoU3Rv
cmFnZVR5cGUsIGNvbnN0IFN0cmluZyYgcGF0aCwgdW5zaWduZWQgcXVvdGEpOwogCi0gICAgICAg
IHR5cGVkZWYgSGFzaE1hcDxSZWZQdHI8U2VjdXJpdHlPcmlnaW4+LCBSZWZQdHI8U3RvcmFnZUFy
ZWFJbXBsPiwgU2VjdXJpdHlPcmlnaW5IYXNoPiBTdG9yYWdlQXJlYU1hcDsKKyAgICAgICAgdHlw
ZWRlZiBIYXNoTWFwPFJlZlB0cjxTZWN1cml0eU9yaWdpbj4sIFJlZlB0cjxTdG9yYWdlQXJlYUlt
cGw+ID4gU3RvcmFnZUFyZWFNYXA7CiAgICAgICAgIFN0b3JhZ2VBcmVhTWFwIG1fc3RvcmFnZUFy
ZWFNYXA7CiAKICAgICAgICAgU3RvcmFnZVR5cGUgbV9zdG9yYWdlVHlwZTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkFwcGxpY2F0aW9uQ2FjaGUubW0g
Yi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJBcHBsaWNhdGlvbkNhY2hlLm1t
CmluZGV4IDlkNzBjZDJhMzBlZjVmNjRiMmM5MTc3OWJkYWIxMmU5MDZlYzkzZWUuLjQzYTY5YTVm
NGY0M2JiOTNlNWEwZDQzYjExZDMyOWY2YmFhNzg3YTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkFwcGxpY2F0aW9uQ2FjaGUubW0KKysrIGIvU291cmNl
L1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQXBwbGljYXRpb25DYWNoZS5tbQpAQCAtNzMs
MTMgKzczLDEzIEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiArIChOU0FycmF5ICopb3Jp
Z2luc1dpdGhDYWNoZQogewotICAgIEhhc2hTZXQ8UmVmUHRyPFNlY3VyaXR5T3JpZ2luPiwgU2Vj
dXJpdHlPcmlnaW5IYXNoPiBjb3JlT3JpZ2luczsKKyAgICBIYXNoU2V0PFJlZlB0cjxTZWN1cml0
eU9yaWdpbj4gPiBjb3JlT3JpZ2luczsKICAgICBjYWNoZVN0b3JhZ2UoKS5nZXRPcmlnaW5zV2l0
aENhY2hlKGNvcmVPcmlnaW5zKTsKICAgICAKICAgICBOU011dGFibGVBcnJheSAqd2ViT3JpZ2lu
cyA9IFtbW05TTXV0YWJsZUFycmF5IGFsbG9jXSBpbml0V2l0aENhcGFjaXR5OmNvcmVPcmlnaW5z
LnNpemUoKV0gYXV0b3JlbGVhc2VdOwogICAgIAotICAgIEhhc2hTZXQ8UmVmUHRyPFNlY3VyaXR5
T3JpZ2luPiwgU2VjdXJpdHlPcmlnaW5IYXNoPjo6Y29uc3RfaXRlcmF0b3IgZW5kID0gY29yZU9y
aWdpbnMuZW5kKCk7Ci0gICAgZm9yIChIYXNoU2V0PFJlZlB0cjxTZWN1cml0eU9yaWdpbj4sIFNl
Y3VyaXR5T3JpZ2luSGFzaD46OmNvbnN0X2l0ZXJhdG9yIGl0ID0gY29yZU9yaWdpbnMuYmVnaW4o
KTsgaXQgIT0gZW5kOyArK2l0KSB7CisgICAgSGFzaFNldDxSZWZQdHI8U2VjdXJpdHlPcmlnaW4+
ID46OmNvbnN0X2l0ZXJhdG9yIGVuZCA9IGNvcmVPcmlnaW5zLmVuZCgpOworICAgIGZvciAoSGFz
aFNldDxSZWZQdHI8U2VjdXJpdHlPcmlnaW4+ID46OmNvbnN0X2l0ZXJhdG9yIGl0ID0gY29yZU9y
aWdpbnMuYmVnaW4oKTsgaXQgIT0gZW5kOyArK2l0KSB7CiAgICAgICAgIFJldGFpblB0cjxXZWJT
ZWN1cml0eU9yaWdpbj4gd2ViT3JpZ2luKEFkb3B0TlMsIFtbV2ViU2VjdXJpdHlPcmlnaW4gYWxs
b2NdIF9pbml0V2l0aFdlYkNvcmVTZWN1cml0eU9yaWdpbjooKml0KS5nZXQoKV0pOwogICAgICAg
ICBbd2ViT3JpZ2lucyBhZGRPYmplY3Q6d2ViT3JpZ2luLmdldCgpXTsKICAgICB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvU3RvcmFnZS9TdG9yYWdlTWFuYWdlci5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvU3RvcmFnZS9TdG9yYWdlTWFuYWdlci5jcHAKaW5k
ZXggNGIyMTk1YjkwNjk1YTFiNmNiMjQzNjhjY2E5YTQwOGEzYTBiYmViNi4uOGM0ZGYxYTY1ZTdl
M2I4ZmVlMjI1MTkwODMzOGU4YWEyNmU3NGU3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1N0b3JhZ2UvU3RvcmFnZU1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9TdG9yYWdlL1N0b3JhZ2VNYW5hZ2VyLmNwcApAQCAtNjksNyArNjksNyBAQCBw
dWJsaWM6CiBwcml2YXRlOgogICAgIFNlc3Npb25TdG9yYWdlTmFtZXNwYWNlKCk7CiAKLSAgICBI
YXNoTWFwPFJlZlB0cjxTZWN1cml0eU9yaWdpbj4sIFJlZlB0cjxTdG9yYWdlQXJlYT4sIFNlY3Vy
aXR5T3JpZ2luSGFzaD4gbV9zdG9yYWdlQXJlYU1hcDsKKyAgICBIYXNoTWFwPFJlZlB0cjxTZWN1
cml0eU9yaWdpbj4sIFJlZlB0cjxTdG9yYWdlQXJlYT4gPiBtX3N0b3JhZ2VBcmVhTWFwOwogfTsK
IAogUGFzc1JlZlB0cjxTdG9yYWdlTWFuYWdlcjo6U2Vzc2lvblN0b3JhZ2VOYW1lc3BhY2U+IFN0
b3JhZ2VNYW5hZ2VyOjpTZXNzaW9uU3RvcmFnZU5hbWVzcGFjZTo6Y3JlYXRlKCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvQXBwbGljYXRpb25DYWNoZS9XZWJBcHBsaWNh
dGlvbkNhY2hlTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0FwcGxpY2F0
aW9uQ2FjaGUvV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXIuY3BwCmluZGV4IGFlZDg2YWQ4MjQx
NzIzMzIxNTE4OWY5OTE1ZDgwMTY5YWZjNTQ2MDEuLjBkNjIxMTQyMzI5NmJlNGZkMWUwODViZDVj
YTBiOWNhYTEwNmM4MDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvQXBw
bGljYXRpb25DYWNoZS9XZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlci5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9BcHBsaWNhdGlvbkNhY2hlL1dlYkFwcGxpY2F0aW9uQ2FjaGVN
YW5hZ2VyLmNwcApAQCAtNTMsMTUgKzUzLDE1IEBAIFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2Vy
OjpXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlcihDaGlsZFByb2Nlc3MqIGNoaWxkUHJvY2VzCiAK
IHZvaWQgV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXI6OmdldEFwcGxpY2F0aW9uQ2FjaGVPcmln
aW5zKHVpbnQ2NF90IGNhbGxiYWNrSUQpCiB7Ci0gICAgSGFzaFNldDxSZWZQdHI8U2VjdXJpdHlP
cmlnaW4+LCBTZWN1cml0eU9yaWdpbkhhc2g+IG9yaWdpbnM7CisgICAgSGFzaFNldDxSZWZQdHI8
U2VjdXJpdHlPcmlnaW4+ID4gb3JpZ2luczsKIAogICAgIGNhY2hlU3RvcmFnZSgpLmdldE9yaWdp
bnNXaXRoQ2FjaGUob3JpZ2lucyk7CiAKICAgICBWZWN0b3I8U2VjdXJpdHlPcmlnaW5EYXRhPiBp
ZGVudGlmaWVyczsKICAgICBpZGVudGlmaWVycy5yZXNlcnZlQ2FwYWNpdHkob3JpZ2lucy5zaXpl
KCkpOwogCi0gICAgSGFzaFNldDxSZWZQdHI8U2VjdXJpdHlPcmlnaW4+LCBTZWN1cml0eU9yaWdp
bkhhc2g+OjppdGVyYXRvciBlbmQgPSBvcmlnaW5zLmVuZCgpOwotICAgIEhhc2hTZXQ8UmVmUHRy
PFNlY3VyaXR5T3JpZ2luPiwgU2VjdXJpdHlPcmlnaW5IYXNoPjo6aXRlcmF0b3IgaSA9IG9yaWdp
bnMuYmVnaW4oKTsKKyAgICBIYXNoU2V0PFJlZlB0cjxTZWN1cml0eU9yaWdpbj4gPjo6aXRlcmF0
b3IgZW5kID0gb3JpZ2lucy5lbmQoKTsKKyAgICBIYXNoU2V0PFJlZlB0cjxTZWN1cml0eU9yaWdp
bj4gPjo6aXRlcmF0b3IgaSA9IG9yaWdpbnMuYmVnaW4oKTsKICAgICBmb3IgKDsgaSAhPSBlbmQ7
ICsraSkgewogICAgICAgICBSZWZQdHI8U2VjdXJpdHlPcmlnaW4+IG9yaWdpbiA9ICppOwogICAg
ICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvSW5qZWN0ZWRCdW5kbGUuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAKaW5kZXggNmRmODE3MGUxYTNjMDNiYmNlZmU3MDE3
NjI2NTgyODczZDY0ZDY2OC4uOTM5MzliNTI2ZjU1NmFjYzI3NDAzZWQwNWU3MGU1YjM4YWNlNzE0
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9J
bmplY3RlZEJ1bmRsZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAKQEAgLTM5OCwxMiArMzk4LDEyIEBAIHZvaWQgSW5q
ZWN0ZWRCdW5kbGU6OnJlc2V0QXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhKGNvbnN0IFN0cmlu
ZyYgb3JpZ2luU3RyaW5nCiAKIFBhc3NSZWZQdHI8SW1tdXRhYmxlQXJyYXk+IEluamVjdGVkQnVu
ZGxlOjpvcmlnaW5zV2l0aEFwcGxpY2F0aW9uQ2FjaGUoKQogewotICAgIEhhc2hTZXQ8UmVmUHRy
PFNlY3VyaXR5T3JpZ2luPiwgU2VjdXJpdHlPcmlnaW5IYXNoPiBvcmlnaW5zOworICAgIEhhc2hT
ZXQ8UmVmUHRyPFNlY3VyaXR5T3JpZ2luPiA+IG9yaWdpbnM7CiAgICAgY2FjaGVTdG9yYWdlKCku
Z2V0T3JpZ2luc1dpdGhDYWNoZShvcmlnaW5zKTsKICAgICBWZWN0b3I8IFJlZlB0cjxBUElPYmpl
Y3Q+ID4gb3JpZ2luc1ZlY3RvcjsKIAotICAgIEhhc2hTZXQ8UmVmUHRyPFNlY3VyaXR5T3JpZ2lu
PiwgU2VjdXJpdHlPcmlnaW5IYXNoPjo6aXRlcmF0b3IgaXQgPSBvcmlnaW5zLmJlZ2luKCk7Ci0g
ICAgSGFzaFNldDxSZWZQdHI8U2VjdXJpdHlPcmlnaW4+LCBTZWN1cml0eU9yaWdpbkhhc2g+Ojpp
dGVyYXRvciBlbmQgPSBvcmlnaW5zLmVuZCgpOworICAgIEhhc2hTZXQ8UmVmUHRyPFNlY3VyaXR5
T3JpZ2luPiA+OjppdGVyYXRvciBpdCA9IG9yaWdpbnMuYmVnaW4oKTsKKyAgICBIYXNoU2V0PFJl
ZlB0cjxTZWN1cml0eU9yaWdpbj4gPjo6aXRlcmF0b3IgZW5kID0gb3JpZ2lucy5lbmQoKTsKICAg
ICBmb3IgKCA7IGl0ICE9IGVuZDsgKytpdCkKICAgICAgICAgb3JpZ2luc1ZlY3Rvci5hcHBlbmQo
V2ViU3RyaW5nOjpjcmVhdGUoKCppdCktPmRhdGFiYXNlSWRlbnRpZmllcigpKSk7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRp
b25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
Tm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuaAppbmRl
eCAxODk5YzAxZDQ3YzE4NjkyM2RhODBhZTAwYTg2MzcxYTdlN2YzYmMwLi4xNTNhYjIxMTgyMDc2
OTU0MDg0NTI0OTE5YjMzNjAyOTJlN2RkOTY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05vdGlm
aWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5oCkBAIC0yOCw2ICsyOCw3IEBACiAKICNp
bmNsdWRlIDxXZWJDb3JlL05vdGlmaWNhdGlvbkNsaWVudC5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
Tm90aWZpY2F0aW9uUGVybWlzc2lvbkNhbGxiYWNrLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TZWN1
cml0eU9yaWdpbkhhc2guaD4KICNpbmNsdWRlIDxXZWJDb3JlL1ZvaWRDYWxsYmFjay5oPgogI2lu
Y2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUmVzb3VyY2VDYWNoZS9XZWJSZXNvdXJj
ZUNhY2hlTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1Jlc291cmNlQ2Fj
aGUvV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXIuY3BwCmluZGV4IDYzZTg3Y2UxYTk4NWI0NGI0ZGEy
OTg4YTE4MjcxN2ZhYzJjNTU1N2IuLmNkY2MwZGU2MWU5NDRjMTFjZjU0MDhmYTY3NWNhMjIyNTky
ZTk2ODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUmVzb3VyY2VDYWNo
ZS9XZWJSZXNvdXJjZUNhY2hlTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9SZXNvdXJjZUNhY2hlL1dlYlJlc291cmNlQ2FjaGVNYW5hZ2VyLmNwcApAQCAtODYsNyAr
ODYsNyBAQCB2b2lkIFdlYlJlc291cmNlQ2FjaGVNYW5hZ2VyOjpnZXRDYWNoZU9yaWdpbnModWlu
dDY0X3QgY2FsbGJhY2tJRCkgY29uc3QKICAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6Oldl
YlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHk6OkRpZEdldENhY2hlT3JpZ2lucyhpZGVudGlmaWVy
cywgY2FsbGJhY2tJRCksIDApOwogfQogCi12b2lkIFdlYlJlc291cmNlQ2FjaGVNYW5hZ2VyOjpj
bGVhckNhY2hlRm9yT3JpZ2luKFNlY3VyaXR5T3JpZ2luRGF0YSBvcmlnaW5EYXRhLCB1aW50MzJf
dCBjYWNoZXNUb0NsZWFyKSBjb25zdAordm9pZCBXZWJSZXNvdXJjZUNhY2hlTWFuYWdlcjo6Y2xl
YXJDYWNoZUZvck9yaWdpbihjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIG9yaWdpbkRhdGEsIHVp
bnQzMl90IGNhY2hlc1RvQ2xlYXIpIGNvbnN0CiB7CiAjaWYgVVNFKENGVVJMQ0FDSEUpCiAgICAg
UmVzb3VyY2VDYWNoZXNUb0NsZWFyIHJlc291cmNlQ2FjaGVzVG9DbGVhciA9IHN0YXRpY19jYXN0
PFJlc291cmNlQ2FjaGVzVG9DbGVhcj4oY2FjaGVzVG9DbGVhcik7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1Jlc291cmNlQ2FjaGUvV2ViUmVzb3VyY2VDYWNoZU1hbmFn
ZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUmVzb3VyY2VDYWNoZS9XZWJSZXNvdXJj
ZUNhY2hlTWFuYWdlci5oCmluZGV4IDM5Y2FjZmQ0YWM1MTZjMTk3NGYzN2QwOTI2MmYwOTZmNjIy
ZWY0OGYuLjRkMWYxNzY4ZDFhYmQ4NWMxZWVkNGE3ODkwY2E2ZDRjYTBiZDBjYjEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUmVzb3VyY2VDYWNoZS9XZWJSZXNvdXJjZUNh
Y2hlTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUmVzb3VyY2VDYWNo
ZS9XZWJSZXNvdXJjZUNhY2hlTWFuYWdlci5oCkBAIC01MSw3ICs1MSw3IEBAIHByaXZhdGU6CiAg
ICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBD
b3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpIE9WRVJSSURFOwogCiAgICAgdm9pZCBnZXRDYWNoZU9y
aWdpbnModWludDY0X3QgY2FsbGJhY2tJRCkgY29uc3Q7Ci0gICAgdm9pZCBjbGVhckNhY2hlRm9y
T3JpZ2luKFNlY3VyaXR5T3JpZ2luRGF0YSwgdWludDMyX3QgY2FjaGVzVG9DbGVhcikgY29uc3Q7
CisgICAgdm9pZCBjbGVhckNhY2hlRm9yT3JpZ2luKGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYs
IHVpbnQzMl90IGNhY2hlc1RvQ2xlYXIpIGNvbnN0OwogICAgIHZvaWQgY2xlYXJDYWNoZUZvckFs
bE9yaWdpbnModWludDMyX3QgY2FjaGVzVG9DbGVhcikgY29uc3Q7CiAKICNpZiBVU0UoQ0ZVUkxD
QUNIRSkK
</data>

          </attachment>
      

    </bug>

</bugzilla>