<?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>143056</bug_id>
          
          <creation_ts>2015-03-25 12:33:37 -0700</creation_ts>
          <short_desc>Use std::unique_ptr instead of PassOwnPtr|OwnPtr for ResourceResponse</short_desc>
          <delta_ts>2015-04-13 04:19:11 -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>WebCore Misc.</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>
          
          <blocked>128007</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Joonghun Park">jh718.park</reporter>
          <assigned_to name="Joonghun Park">jh718.park</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>rniwa</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1080012</commentid>
    <comment_count>0</comment_count>
    <who name="Joonghun Park">jh718.park</who>
    <bug_when>2015-03-25 12:33:37 -0700</bug_when>
    <thetext>Change from PassOwnPtr|OwnPtr to std::unique_ptr for ResourceResponse in All ports.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1080013</commentid>
    <comment_count>1</comment_count>
      <attachid>249423</attachid>
    <who name="Joonghun Park">jh718.park</who>
    <bug_when>2015-03-25 12:36:17 -0700</bug_when>
    <thetext>Created attachment 249423
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1080151</commentid>
    <comment_count>2</comment_count>
      <attachid>249460</attachid>
    <who name="Joonghun Park">jh718.park</who>
    <bug_when>2015-03-25 18:38:15 -0700</bug_when>
    <thetext>Created attachment 249460
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1080154</commentid>
    <comment_count>3</comment_count>
    <who name="Joonghun Park">jh718.park</who>
    <bug_when>2015-03-25 18:42:24 -0700</bug_when>
    <thetext>FYI, https://bugs.webkit.org/show_bug.cgi?id=142995 for introducing adoptUniquePtr and leakUniquePtr.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1081083</commentid>
    <comment_count>4</comment_count>
      <attachid>249460</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2015-03-29 19:39:38 -0700</bug_when>
    <thetext>Comment on attachment 249460
Patch

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

&gt; Source/WebCore/loader/WorkerThreadableLoader.cpp:169
&gt;          delete responseData;

I wonder if we should delete responseData. Because response.copyData() releases own pointer in 163 line. Then *responseData* looks manage the memory.

&gt; Source/WebCore/platform/network/cf/ResourceResponse.h:105
&gt; +    void doPlatformAdopt(std::unique_ptr&lt;CrossThreadResourceResponseData&gt;) { }

One question. Can&apos;t we move doPlatformCopyData() and doPlatformAdopt() declarations to ResourceResponseBase.h ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1081621</commentid>
    <comment_count>5</comment_count>
    <who name="Joonghun Park">jh718.park</who>
    <bug_when>2015-03-31 05:38:55 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; Comment on attachment 249460 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=249460&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/loader/WorkerThreadableLoader.cpp:169
&gt; &gt;          delete responseData;
&gt; 
&gt; I wonder if we should delete responseData. Because response.copyData()
&gt; releases own pointer in 163 line. Then *responseData* looks manage the
&gt; memory.
&gt; 

As you said, after we call response.copyData().leakPtr(), it releases the raw pointer of CrossThreadResourceResponseData. And it is passed into lambda, and in lambda body, it is used as parameter of unique_ptr ctor. As you can see in StdLibExtras.h:335, make_unique() is only a wrapper of unique_ptr ctor. In this case, we already have CrossThreadResourceResponseData*, and we want to use it. So no need to use make_unique, that is why I use std::unique_ptr&lt;CrossThreadResourceResponseData&gt;(responseData) in 166 line.

&gt; &gt; Source/WebCore/platform/network/cf/ResourceResponse.h:105
&gt; &gt; +    void doPlatformAdopt(std::unique_ptr&lt;CrossThreadResourceResponseData&gt;) { }
&gt; 
&gt; One question. Can&apos;t we move doPlatformCopyData() and doPlatformAdopt()
&gt; declarations to ResourceResponseBase.h ?

Well, I guess moving this to the ResourceResponseBase.h is possible.
But it seems that the name is intended for the platform specific use(e.g.cf, curl, soup specific).
So I doubt that it would be needed though the current implementation state is the same among them.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1084513</commentid>
    <comment_count>6</comment_count>
      <attachid>249460</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2015-04-11 07:49:16 -0700</bug_when>
    <thetext>Comment on attachment 249460
Patch

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

&gt; Source/WebCore/loader/WorkerThreadableLoader.cpp:93
&gt; +    CrossThreadResourceRequestData* requestData = request.copyData().release();

Why do you change auto with CrossThreadResourceRequestData* ?

&gt; Source/WebCore/loader/WorkerThreadableLoader.cpp:163
&gt; +    CrossThreadResourceResponseData* responseData = response.copyData().release();

*auto* instead of CrossThreadResourceResponseData* ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1084664</commentid>
    <comment_count>7</comment_count>
    <who name="Joonghun Park">jh718.park</who>
    <bug_when>2015-04-12 10:35:16 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; Comment on attachment 249460 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=249460&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/loader/WorkerThreadableLoader.cpp:93
&gt; &gt; +    CrossThreadResourceRequestData* requestData = request.copyData().release();
&gt; 
&gt; Why do you change auto with CrossThreadResourceRequestData* ?
&gt; 
I thought that it&apos;s not a type of std::unique_ptr but raw pointer, so I changed it back to raw pointer type. Do you think it would be better to use auto* here?
&gt; &gt; Source/WebCore/loader/WorkerThreadableLoader.cpp:163
&gt; &gt; +    CrossThreadResourceResponseData* responseData = response.copyData().release();
&gt; 
&gt; *auto* instead of CrossThreadResourceResponseData* ?
Same question here as I wrote above. How do you think?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1084748</commentid>
    <comment_count>8</comment_count>
      <attachid>249460</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2015-04-13 00:56:03 -0700</bug_when>
    <thetext>Comment on attachment 249460
Patch

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

&gt;&gt;&gt; Source/WebCore/loader/WorkerThreadableLoader.cpp:93
&gt;&gt;&gt; +    CrossThreadResourceRequestData* requestData = request.copyData().release();
&gt;&gt; 
&gt;&gt; Why do you change auto with CrossThreadResourceRequestData* ?
&gt; 
&gt; I thought that it&apos;s not a type of std::unique_ptr but raw pointer, so I changed it back to raw pointer type. Do you think it would be better to use auto* here?

yes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1084750</commentid>
    <comment_count>9</comment_count>
    <who name="Joonghun Park">jh718.park</who>
    <bug_when>2015-04-13 01:04:40 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; Comment on attachment 249460 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=249460&amp;action=review
&gt; 
&gt; &gt;&gt;&gt; Source/WebCore/loader/WorkerThreadableLoader.cpp:93
&gt; &gt;&gt;&gt; +    CrossThreadResourceRequestData* requestData = request.copyData().release();
&gt; &gt;&gt; 
&gt; &gt;&gt; Why do you change auto with CrossThreadResourceRequestData* ?
&gt; &gt; 
&gt; &gt; I thought that it&apos;s not a type of std::unique_ptr but raw pointer, so I changed it back to raw pointer type. Do you think it would be better to use auto* here?
&gt; 
&gt; yes.

Ok, then I will change the type to auto* because the return type is CrossThreadResourceRequestData*. And I will use auto* instead of CrossThreadResourceResponseData* in 163 line, too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1084751</commentid>
    <comment_count>10</comment_count>
      <attachid>250630</attachid>
    <who name="Joonghun Park">jh718.park</who>
    <bug_when>2015-04-13 01:39:52 -0700</bug_when>
    <thetext>Created attachment 250630
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1084764</commentid>
    <comment_count>11</comment_count>
      <attachid>250630</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-04-13 04:19:04 -0700</bug_when>
    <thetext>Comment on attachment 250630
Patch

Clearing flags on attachment: 250630

Committed r182707: &lt;http://trac.webkit.org/changeset/182707&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1084765</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-04-13 04:19:11 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>249423</attachid>
            <date>2015-03-25 12:36:17 -0700</date>
            <delta_ts>2015-03-25 18:38:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-143056-20150326043539.patch</filename>
            <type>text/plain</type>
            <size>10548</size>
            <attacher name="Joonghun Park">jh718.park</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgxOTU4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDBhODNhMGE1OTkyZGRj
OTM5NGUxNWJlNmRhODFhMjYzZjg3NTBmMC4uYjEzYWVmODA5MGVlYzg1ODc2NTQyMjlmYWFmNmRl
ZjI3YzQwYjFmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDE1LTAzLTI1ICBKb29u
Z2h1biBQYXJrICA8amg3MTgucGFya0BzYW1zdW5nLmNvbT4KKworICAgICAgICBVc2Ugc3RkOjp1
bmlxdWVfcHRyIGluc3RlYWQgb2YgUGFzc093blB0cnxPd25QdHIgZm9yIFJlc291cmNlUmVxdWVz
dCBmb3IgUmVzb3VyY2VSZXNwb25zZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTQzMDU2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBubyBiZWhhdmlvciBjaGFuZ2VzLgorCisgICAg
ICAgICogbG9hZGVyL1dvcmtlclRocmVhZGFibGVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6V29ya2VyVGhyZWFkYWJsZUxvYWRlcjo6TWFpblRocmVhZEJyaWRnZTo6TWFpblRocmVhZEJy
aWRnZSk6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJUaHJlYWRhYmxlTG9hZGVyOjpNYWluVGhy
ZWFkQnJpZGdlOjpkaWRSZWNlaXZlUmVzcG9uc2UpOgorICAgICAgICAqIHBsYXRmb3JtL0Nyb3Nz
VGhyZWFkQ29waWVyLmg6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZVJlc3Bv
bnNlQmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlQmFzZTo6YWRv
cHQpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZUJhc2U6OmNvcHlEYXRhKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVzcG9uc2VCYXNlLmg6CisgICAg
ICAgICogcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZVJlc3BvbnNlLmg6CisgICAgICAgIChX
ZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlOjpkb1BsYXRmb3JtQ29weURhdGEpOgorICAgICAgICAo
V2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZTo6ZG9QbGF0Zm9ybUFkb3B0KToKKyAgICAgICAgKiBw
bGF0Zm9ybS9uZXR3b3JrL2N1cmwvUmVzb3VyY2VSZXNwb25zZS5oOgorICAgICAgICAoV2ViQ29y
ZTo6UmVzb3VyY2VSZXNwb25zZTo6ZG9QbGF0Zm9ybUNvcHlEYXRhKToKKyAgICAgICAgKFdlYkNv
cmU6OlJlc291cmNlUmVzcG9uc2U6OmRvUGxhdGZvcm1BZG9wdCk6CisgICAgICAgICogcGxhdGZv
cm0vbmV0d29yay9zb3VwL1Jlc291cmNlUmVzcG9uc2UuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJl
c291cmNlUmVzcG9uc2U6OmRvUGxhdGZvcm1Db3B5RGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpS
ZXNvdXJjZVJlc3BvbnNlOjpkb1BsYXRmb3JtQWRvcHQpOgorCiAyMDE1LTAzLTI1ICBEYW4gQmVy
bnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CiAKICAgICAgICAgaU9TIFNpbXVsYXRvciBidWlsZCBm
aXguCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvV29ya2VyVGhyZWFkYWJsZUxv
YWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvV29ya2VyVGhyZWFkYWJsZUxvYWRlci5j
cHAKaW5kZXggZWEyZGU2MjMzYmY5MGQ4YzE5NWJmYzg1NDUxZDI5YTVlM2I5ODhmMy4uMDJjNzU4
NjdjNmI4NTkxMGQwNmRmNjk0ZmRiZTYzMDkwZjViN2I4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL1dvcmtlclRocmVhZGFibGVMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9Xb3JrZXJUaHJlYWRhYmxlTG9hZGVyLmNwcApAQCAtNDIsNyArNDIsNiBAQAog
I2luY2x1ZGUgIldvcmtlckxvYWRlclByb3h5LmgiCiAjaW5jbHVkZSAiV29ya2VyVGhyZWFkLmgi
CiAjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KLSNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CiAj
aW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC05MSw3ICs5
MCw3IEBAIFdvcmtlclRocmVhZGFibGVMb2FkZXI6Ok1haW5UaHJlYWRCcmlkZ2U6Ok1haW5UaHJl
YWRCcmlkZ2UoUGFzc1JlZlB0cjxUaHJlYWRhYmxlCiB7CiAgICAgQVNTRVJUKG1fd29ya2VyQ2xp
ZW50V3JhcHBlci5nZXQoKSk7CiAKLSAgICBhdXRvIHJlcXVlc3REYXRhID0gcmVxdWVzdC5jb3B5
RGF0YSgpLnJlbGVhc2UoKTsKKyAgICBDcm9zc1RocmVhZFJlc291cmNlUmVxdWVzdERhdGEqIHJl
cXVlc3REYXRhID0gcmVxdWVzdC5jb3B5RGF0YSgpLnJlbGVhc2UoKTsKICAgICBTdHJpbmdDYXB0
dXJlIGNhcHR1cmVkT3V0Z29pbmdSZWZlcnJlcihvdXRnb2luZ1JlZmVycmVyKTsKICAgICBtX2xv
YWRlclByb3h5LnBvc3RUYXNrVG9Mb2FkZXIoW3RoaXMsIHJlcXVlc3REYXRhLCBvcHRpb25zLCBj
YXB0dXJlZE91dGdvaW5nUmVmZXJyZXJdKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQp
IHsKICAgICAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKQEAgLTE2MSwxMCArMTYwLDEwIEBA
IHZvaWQgV29ya2VyVGhyZWFkYWJsZUxvYWRlcjo6TWFpblRocmVhZEJyaWRnZTo6ZGlkU2VuZERh
dGEodW5zaWduZWQgbG9uZyBsb25nIGJ5CiB2b2lkIFdvcmtlclRocmVhZGFibGVMb2FkZXI6Ok1h
aW5UaHJlYWRCcmlkZ2U6OmRpZFJlY2VpdmVSZXNwb25zZSh1bnNpZ25lZCBsb25nIGlkZW50aWZp
ZXIsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQogewogICAgIFJlZlB0cjxUaHJl
YWRhYmxlTG9hZGVyQ2xpZW50V3JhcHBlcj4gd29ya2VyQ2xpZW50V3JhcHBlciA9IG1fd29ya2Vy
Q2xpZW50V3JhcHBlcjsKLSAgICBDcm9zc1RocmVhZFJlc291cmNlUmVzcG9uc2VEYXRhKiByZXNw
b25zZURhdGEgPSByZXNwb25zZS5jb3B5RGF0YSgpLmxlYWtQdHIoKTsKKyAgICBDcm9zc1RocmVh
ZFJlc291cmNlUmVzcG9uc2VEYXRhKiByZXNwb25zZURhdGEgPSByZXNwb25zZS5jb3B5RGF0YSgp
LnJlbGVhc2UoKTsKICAgICBpZiAoIW1fbG9hZGVyUHJveHkucG9zdFRhc2tGb3JNb2RlVG9Xb3Jr
ZXJHbG9iYWxTY29wZShbd29ya2VyQ2xpZW50V3JhcHBlciwgaWRlbnRpZmllciwgcmVzcG9uc2VE
YXRhXSAoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCkgewogICAgICAgICBBU1NFUlRf
VU5VU0VEKGNvbnRleHQsIGNvbnRleHQuaXNXb3JrZXJHbG9iYWxTY29wZSgpKTsKLSAgICAgICAg
T3duUHRyPFJlc291cmNlUmVzcG9uc2U+IHJlc3BvbnNlKFJlc291cmNlUmVzcG9uc2U6OmFkb3B0
KGFkb3B0UHRyKHJlc3BvbnNlRGF0YSkpKTsKKyAgICAgICAgYXV0byByZXNwb25zZShSZXNvdXJj
ZVJlc3BvbnNlOjphZG9wdChzdGQ6OnVuaXF1ZV9wdHI8Q3Jvc3NUaHJlYWRSZXNvdXJjZVJlc3Bv
bnNlRGF0YT4ocmVzcG9uc2VEYXRhKSkpOwogICAgICAgICB3b3JrZXJDbGllbnRXcmFwcGVyLT5k
aWRSZWNlaXZlUmVzcG9uc2UoaWRlbnRpZmllciwgKnJlc3BvbnNlKTsKICAgICB9LCBtX3Rhc2tN
b2RlKSkKICAgICAgICAgZGVsZXRlIHJlc3BvbnNlRGF0YTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL0Nyb3NzVGhyZWFkQ29waWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9Dcm9zc1RocmVhZENvcGllci5oCmluZGV4IGM5ODA5NzE4MzY4N2QxZDkwN2U0ZDNkYWNk
YjM4NTMyMmE3MzZiZWQuLmYzODY2M2MyNjI4ZjE0MDgzMTNjYzcyMjE4OTBjODAyNTEwYTJmMGQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0Nyb3NzVGhyZWFkQ29waWVyLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ3Jvc3NUaHJlYWRDb3BpZXIuaApAQCAtMTQy
LDcgKzE0Miw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICB9OwogCiAgICAgdGVtcGxhdGU8
PiBzdHJ1Y3QgQ3Jvc3NUaHJlYWRDb3BpZXJCYXNlPGZhbHNlLCBmYWxzZSwgUmVzb3VyY2VSZXNw
b25zZT4gewotICAgICAgICB0eXBlZGVmIFBhc3NPd25QdHI8Q3Jvc3NUaHJlYWRSZXNvdXJjZVJl
c3BvbnNlRGF0YT4gVHlwZTsKKyAgICAgICAgdHlwZWRlZiBzdGQ6OnVuaXF1ZV9wdHI8Q3Jvc3NU
aHJlYWRSZXNvdXJjZVJlc3BvbnNlRGF0YT4gVHlwZTsKICAgICAgICAgc3RhdGljIFR5cGUgY29w
eShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJik7CiAgICAgfTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZVJlc3BvbnNlQmFzZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVzcG9uc2VCYXNlLmNwcAppbmRl
eCAxYjE4YjhhMDBmMDU0MzM0NzhlZWRjNDJmYjhmYzk0N2NjZjZiZGRmLi5jODljZTY2NzZjOGQz
YmFiMjVjOGRmODM2NDdiMjZmNWZjNjkzOWVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVzcG9uc2VCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVzcG9uc2VCYXNlLmNwcApAQCAtOTEsOSAr
OTEsOSBAQCBSZXNvdXJjZVJlc3BvbnNlQmFzZTo6UmVzb3VyY2VSZXNwb25zZUJhc2UoY29uc3Qg
VVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgbWltZVR5cAogewogfQogCi1QYXNzT3duUHRyPFJlc291
cmNlUmVzcG9uc2U+IFJlc291cmNlUmVzcG9uc2VCYXNlOjphZG9wdChQYXNzT3duUHRyPENyb3Nz
VGhyZWFkUmVzb3VyY2VSZXNwb25zZURhdGE+IGRhdGEpCitzdGQ6OnVuaXF1ZV9wdHI8UmVzb3Vy
Y2VSZXNwb25zZT4gUmVzb3VyY2VSZXNwb25zZUJhc2U6OmFkb3B0KHN0ZDo6dW5pcXVlX3B0cjxD
cm9zc1RocmVhZFJlc291cmNlUmVzcG9uc2VEYXRhPiBkYXRhKQogewotICAgIE93blB0cjxSZXNv
dXJjZVJlc3BvbnNlPiByZXNwb25zZSA9IGFkb3B0UHRyKG5ldyBSZXNvdXJjZVJlc3BvbnNlKTsK
KyAgICBhdXRvIHJlc3BvbnNlID0gc3RkOjptYWtlX3VuaXF1ZTxSZXNvdXJjZVJlc3BvbnNlPigp
OwogICAgIHJlc3BvbnNlLT5zZXRVUkwoZGF0YS0+bV91cmwpOwogICAgIHJlc3BvbnNlLT5zZXRN
aW1lVHlwZShkYXRhLT5tX21pbWVUeXBlKTsKICAgICByZXNwb25zZS0+c2V0RXhwZWN0ZWRDb250
ZW50TGVuZ3RoKGRhdGEtPm1fZXhwZWN0ZWRDb250ZW50TGVuZ3RoKTsKQEAgLTEwNSwxMyArMTA1
LDEzIEBAIFBhc3NPd25QdHI8UmVzb3VyY2VSZXNwb25zZT4gUmVzb3VyY2VSZXNwb25zZUJhc2U6
OmFkb3B0KFBhc3NPd25QdHI8Q3Jvc3NUaHJlYWRSCiAgICAgcmVzcG9uc2UtPmxhenlJbml0KEFs
bEZpZWxkcyk7CiAgICAgcmVzcG9uc2UtPm1faHR0cEhlYWRlckZpZWxkcy5hZG9wdChXVEY6Om1v
dmUoZGF0YS0+bV9odHRwSGVhZGVycykpOwogICAgIHJlc3BvbnNlLT5tX3Jlc291cmNlTG9hZFRp
bWluZyA9IGRhdGEtPm1fcmVzb3VyY2VMb2FkVGltaW5nOwotICAgIHJlc3BvbnNlLT5kb1BsYXRm
b3JtQWRvcHQoZGF0YSk7Ci0gICAgcmV0dXJuIHJlc3BvbnNlLnJlbGVhc2UoKTsKKyAgICByZXNw
b25zZS0+ZG9QbGF0Zm9ybUFkb3B0KFdURjo6bW92ZShkYXRhKSk7CisgICAgcmV0dXJuIHJlc3Bv
bnNlOwogfQogCi1QYXNzT3duUHRyPENyb3NzVGhyZWFkUmVzb3VyY2VSZXNwb25zZURhdGE+IFJl
c291cmNlUmVzcG9uc2VCYXNlOjpjb3B5RGF0YSgpIGNvbnN0CitzdGQ6OnVuaXF1ZV9wdHI8Q3Jv
c3NUaHJlYWRSZXNvdXJjZVJlc3BvbnNlRGF0YT4gUmVzb3VyY2VSZXNwb25zZUJhc2U6OmNvcHlE
YXRhKCkgY29uc3QKIHsKLSAgICBPd25QdHI8Q3Jvc3NUaHJlYWRSZXNvdXJjZVJlc3BvbnNlRGF0
YT4gZGF0YSA9IGFkb3B0UHRyKG5ldyBDcm9zc1RocmVhZFJlc291cmNlUmVzcG9uc2VEYXRhKTsK
KyAgICBhdXRvIGRhdGEgPSBzdGQ6Om1ha2VfdW5pcXVlPENyb3NzVGhyZWFkUmVzb3VyY2VSZXNw
b25zZURhdGE+KCk7CiAgICAgZGF0YS0+bV91cmwgPSB1cmwoKS5jb3B5KCk7CiAgICAgZGF0YS0+
bV9taW1lVHlwZSA9IG1pbWVUeXBlKCkuaXNvbGF0ZWRDb3B5KCk7CiAgICAgZGF0YS0+bV9leHBl
Y3RlZENvbnRlbnRMZW5ndGggPSBleHBlY3RlZENvbnRlbnRMZW5ndGgoKTsKQEAgLTEyMCw3ICsx
MjAsNyBAQCBQYXNzT3duUHRyPENyb3NzVGhyZWFkUmVzb3VyY2VSZXNwb25zZURhdGE+IFJlc291
cmNlUmVzcG9uc2VCYXNlOjpjb3B5RGF0YSgpIGNvbgogICAgIGRhdGEtPm1faHR0cFN0YXR1c1Rl
eHQgPSBodHRwU3RhdHVzVGV4dCgpLmlzb2xhdGVkQ29weSgpOwogICAgIGRhdGEtPm1faHR0cEhl
YWRlcnMgPSBodHRwSGVhZGVyRmllbGRzKCkuY29weURhdGEoKTsKICAgICBkYXRhLT5tX3Jlc291
cmNlTG9hZFRpbWluZyA9IG1fcmVzb3VyY2VMb2FkVGltaW5nOwotICAgIHJldHVybiBhc1Jlc291
cmNlUmVzcG9uc2UoKS5kb1BsYXRmb3JtQ29weURhdGEoZGF0YS5yZWxlYXNlKCkpOworICAgIHJl
dHVybiBhc1Jlc291cmNlUmVzcG9uc2UoKS5kb1BsYXRmb3JtQ29weURhdGEoV1RGOjptb3ZlKGRh
dGEpKTsKIH0KIAogYm9vbCBSZXNvdXJjZVJlc3BvbnNlQmFzZTo6aXNIVFRQKCkgY29uc3QKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VSZXNwb25z
ZUJhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VSZXNwb25z
ZUJhc2UuaAppbmRleCAyMzUwYTRhMmMyYWY0YzMxZThjODc5OGU3YmIzOTkwNzViZjYxYWE4Li43
NTRjNDFhZGU2OWNmOWRkNmQxZTFkZTJmMTZmNTI0OTdlZjNjNWMxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVzcG9uc2VCYXNlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZVJlc3BvbnNlQmFzZS5oCkBA
IC00OCwxMCArNDgsMTAgQEAgc3RydWN0IENyb3NzVGhyZWFkUmVzb3VyY2VSZXNwb25zZURhdGE7
CiBjbGFzcyBSZXNvdXJjZVJlc3BvbnNlQmFzZSB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FU
RUQ7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NPd25QdHI8UmVzb3VyY2VSZXNwb25zZT4gYWRv
cHQoUGFzc093blB0cjxDcm9zc1RocmVhZFJlc291cmNlUmVzcG9uc2VEYXRhPik7CisgICAgc3Rh
dGljIHN0ZDo6dW5pcXVlX3B0cjxSZXNvdXJjZVJlc3BvbnNlPiBhZG9wdChzdGQ6OnVuaXF1ZV9w
dHI8Q3Jvc3NUaHJlYWRSZXNvdXJjZVJlc3BvbnNlRGF0YT4pOwogCiAgICAgLy8gR2V0cyBhIGNv
cHkgb2YgdGhlIGRhdGEgc3VpdGFibGUgZm9yIHBhc3NpbmcgdG8gYW5vdGhlciB0aHJlYWQuCi0g
ICAgUGFzc093blB0cjxDcm9zc1RocmVhZFJlc291cmNlUmVzcG9uc2VEYXRhPiBjb3B5RGF0YSgp
IGNvbnN0OworICAgIHN0ZDo6dW5pcXVlX3B0cjxDcm9zc1RocmVhZFJlc291cmNlUmVzcG9uc2VE
YXRhPiBjb3B5RGF0YSgpIGNvbnN0OwogCiAgICAgYm9vbCBpc051bGwoKSBjb25zdCB7IHJldHVy
biBtX2lzTnVsbDsgfQogICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgaXNIVFRQKCkgY29uc3Q7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlUmVz
cG9uc2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VSZXNw
b25zZS5oCmluZGV4IDY1Mjg0YmQyNzQ5MjJlNDM5MjMyZjIzMjFiYmIzNjRiOTIyOWExNjcuLmFj
YzFkNDU2OTc1Y2MxMmYzOWEzMzhkYmIyNDM5NDFlNTdjMjZkMWEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VSZXNwb25zZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VSZXNwb25zZS5oCkBAIC0x
MDEsOCArMTAxLDggQEAgcHJpdmF0ZToKICAgICBTdHJpbmcgcGxhdGZvcm1TdWdnZXN0ZWRGaWxl
bmFtZSgpIGNvbnN0OwogICAgIENlcnRpZmljYXRlSW5mbyBwbGF0Zm9ybUNlcnRpZmljYXRlSW5m
bygpIGNvbnN0OwogCi0gICAgUGFzc093blB0cjxDcm9zc1RocmVhZFJlc291cmNlUmVzcG9uc2VE
YXRhPiBkb1BsYXRmb3JtQ29weURhdGEoUGFzc093blB0cjxDcm9zc1RocmVhZFJlc291cmNlUmVz
cG9uc2VEYXRhPiBkYXRhKSBjb25zdCB7IHJldHVybiBkYXRhOyB9Ci0gICAgdm9pZCBkb1BsYXRm
b3JtQWRvcHQoUGFzc093blB0cjxDcm9zc1RocmVhZFJlc291cmNlUmVzcG9uc2VEYXRhPikgeyB9
CisgICAgc3RkOjp1bmlxdWVfcHRyPENyb3NzVGhyZWFkUmVzb3VyY2VSZXNwb25zZURhdGE+IGRv
UGxhdGZvcm1Db3B5RGF0YShzdGQ6OnVuaXF1ZV9wdHI8Q3Jvc3NUaHJlYWRSZXNvdXJjZVJlc3Bv
bnNlRGF0YT4gZGF0YSkgY29uc3QgeyByZXR1cm4gZGF0YTsgfQorICAgIHZvaWQgZG9QbGF0Zm9y
bUFkb3B0KHN0ZDo6dW5pcXVlX3B0cjxDcm9zc1RocmVhZFJlc291cmNlUmVzcG9uc2VEYXRhPikg
eyB9CiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgdm9pZCBpbml0TlNVUkxSZXNwb25zZSgpIGNv
bnN0OwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L2N1cmwvUmVzb3VyY2VSZXNwb25zZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9jdXJsL1Jlc291cmNlUmVzcG9uc2UuaAppbmRleCBjNzkyZjkyNTRlNzc0YTJlZGRjNDc1MGFk
YjMwMzQ0NDE4ZmNlYzgxLi40MzA3ZjZlNDBjZTE5NjE0MzU4ZTRmMDNkMDQ5YzNjZWRmMGYyOGEz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUmVzb3Vy
Y2VSZXNwb25zZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9S
ZXNvdXJjZVJlc3BvbnNlLmgKQEAgLTU5LDggKzU5LDggQEAgcHVibGljOgogcHJpdmF0ZToKICAg
ICBmcmllbmQgY2xhc3MgUmVzb3VyY2VSZXNwb25zZUJhc2U7CiAKLSAgICBQYXNzT3duUHRyPENy
b3NzVGhyZWFkUmVzb3VyY2VSZXNwb25zZURhdGE+IGRvUGxhdGZvcm1Db3B5RGF0YShQYXNzT3du
UHRyPENyb3NzVGhyZWFkUmVzb3VyY2VSZXNwb25zZURhdGE+IGRhdGEpIGNvbnN0IHsgcmV0dXJu
IGRhdGE7IH0KLSAgICB2b2lkIGRvUGxhdGZvcm1BZG9wdChQYXNzT3duUHRyPENyb3NzVGhyZWFk
UmVzb3VyY2VSZXNwb25zZURhdGE+KSB7IH0KKyAgICBzdGQ6OnVuaXF1ZV9wdHI8Q3Jvc3NUaHJl
YWRSZXNvdXJjZVJlc3BvbnNlRGF0YT4gZG9QbGF0Zm9ybUNvcHlEYXRhKHN0ZDo6dW5pcXVlX3B0
cjxDcm9zc1RocmVhZFJlc291cmNlUmVzcG9uc2VEYXRhPiBkYXRhKSBjb25zdCB7IHJldHVybiBk
YXRhOyB9CisgICAgdm9pZCBkb1BsYXRmb3JtQWRvcHQoc3RkOjp1bmlxdWVfcHRyPENyb3NzVGhy
ZWFkUmVzb3VyY2VSZXNwb25zZURhdGE+KSB7IH0KICAgICBTdHJpbmcgcGxhdGZvcm1TdWdnZXN0
ZWRGaWxlbmFtZSgpIGNvbnN0CiAgICAgewogICAgICAgICByZXR1cm4gZmlsZW5hbWVGcm9tSFRU
UENvbnRlbnREaXNwb3NpdGlvbihodHRwSGVhZGVyRmllbGQoSFRUUEhlYWRlck5hbWU6OkNvbnRl
bnREaXNwb3NpdGlvbikpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9zb3VwL1Jlc291cmNlUmVzcG9uc2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvc291cC9SZXNvdXJjZVJlc3BvbnNlLmgKaW5kZXggZGUzNWQyYTZjNzk5MDgxN2MyNzAw
NGM1MjUzZjYwZmUzOWVlYmJiZS4uMzk3ZTFhMTI4ODBkNDM5M2RlNDRmYWQ5OGI3ZDQ0ODRiOTU4
ZWM1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jl
c291cmNlUmVzcG9uc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3Nv
dXAvUmVzb3VyY2VSZXNwb25zZS5oCkBAIC05MSw4ICs5MSw4IEBAIHByaXZhdGU6CiAgICAgU3Ry
aW5nIHBsYXRmb3JtU3VnZ2VzdGVkRmlsZW5hbWUoKSBjb25zdDsKICAgICBDZXJ0aWZpY2F0ZUlu
Zm8gcGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8oKSBjb25zdDsKIAotICAgIFBhc3NPd25QdHI8Q3Jv
c3NUaHJlYWRSZXNvdXJjZVJlc3BvbnNlRGF0YT4gZG9QbGF0Zm9ybUNvcHlEYXRhKFBhc3NPd25Q
dHI8Q3Jvc3NUaHJlYWRSZXNvdXJjZVJlc3BvbnNlRGF0YT4gZGF0YSkgY29uc3QgeyByZXR1cm4g
ZGF0YTsgfQotICAgIHZvaWQgZG9QbGF0Zm9ybUFkb3B0KFBhc3NPd25QdHI8Q3Jvc3NUaHJlYWRS
ZXNvdXJjZVJlc3BvbnNlRGF0YT4pIHsgfQorICAgIHN0ZDo6dW5pcXVlX3B0cjxDcm9zc1RocmVh
ZFJlc291cmNlUmVzcG9uc2VEYXRhPiBkb1BsYXRmb3JtQ29weURhdGEoc3RkOjp1bmlxdWVfcHRy
PENyb3NzVGhyZWFkUmVzb3VyY2VSZXNwb25zZURhdGE+IGRhdGEpIGNvbnN0IHsgcmV0dXJuIGRh
dGE7IH0KKyAgICB2b2lkIGRvUGxhdGZvcm1BZG9wdChzdGQ6OnVuaXF1ZV9wdHI8Q3Jvc3NUaHJl
YWRSZXNvdXJjZVJlc3BvbnNlRGF0YT4pIHsgfQogfTsKIAogdGVtcGxhdGU8Y2xhc3MgRW5jb2Rl
cj4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>249460</attachid>
            <date>2015-03-25 18:38:15 -0700</date>
            <delta_ts>2015-04-13 01:39:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-143056-20150326103736.patch</filename>
            <type>text/plain</type>
            <size>10528</size>
            <attacher name="Joonghun Park">jh718.park</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgxOTU4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDBhODNhMGE1OTkyZGRj
OTM5NGUxNWJlNmRhODFhMjYzZjg3NTBmMC4uOGM0MTc3MDZhZTQ5MmViNjI3ZjAyMDFkNjJkZjU1
ODdhY2Y3MjUxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDE1LTAzLTI1ICBKb29u
Z2h1biBQYXJrICA8amg3MTgucGFya0BzYW1zdW5nLmNvbT4KKworICAgICAgICBVc2Ugc3RkOjp1
bmlxdWVfcHRyIGluc3RlYWQgb2YgUGFzc093blB0cnxPd25QdHIgZm9yIFJlc291cmNlUmVzcG9u
c2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MzA1
NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5l
dyB0ZXN0cywgbm8gYmVoYXZpb3IgY2hhbmdlcy4KKworICAgICAgICAqIGxvYWRlci9Xb3JrZXJU
aHJlYWRhYmxlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlclRocmVhZGFibGVM
b2FkZXI6Ok1haW5UaHJlYWRCcmlkZ2U6Ok1haW5UaHJlYWRCcmlkZ2UpOgorICAgICAgICAoV2Vi
Q29yZTo6V29ya2VyVGhyZWFkYWJsZUxvYWRlcjo6TWFpblRocmVhZEJyaWRnZTo6ZGlkUmVjZWl2
ZVJlc3BvbnNlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9Dcm9zc1RocmVhZENvcGllci5oOgorICAg
ICAgICAqIHBsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VSZXNwb25zZUJhc2UuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZUJhc2U6OmFkb3B0KToKKyAgICAgICAgKFdlYkNv
cmU6OlJlc291cmNlUmVzcG9uc2VCYXNlOjpjb3B5RGF0YSk6CisgICAgICAgICogcGxhdGZvcm0v
bmV0d29yay9SZXNvdXJjZVJlc3BvbnNlQmFzZS5oOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdv
cmsvY2YvUmVzb3VyY2VSZXNwb25zZS5oOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VSZXNw
b25zZTo6ZG9QbGF0Zm9ybUNvcHlEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlUmVz
cG9uc2U6OmRvUGxhdGZvcm1BZG9wdCk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jdXJs
L1Jlc291cmNlUmVzcG9uc2UuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2U6
OmRvUGxhdGZvcm1Db3B5RGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNl
Ojpkb1BsYXRmb3JtQWRvcHQpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvc291cC9SZXNv
dXJjZVJlc3BvbnNlLmg6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlOjpkb1Bs
YXRmb3JtQ29weURhdGEpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZTo6ZG9Q
bGF0Zm9ybUFkb3B0KToKKwogMjAxNS0wMy0yNSAgRGFuIEJlcm5zdGVpbiAgPG1pdHpAYXBwbGUu
Y29tPgogCiAgICAgICAgIGlPUyBTaW11bGF0b3IgYnVpbGQgZml4LgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL1dvcmtlclRocmVhZGFibGVMb2FkZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvbG9hZGVyL1dvcmtlclRocmVhZGFibGVMb2FkZXIuY3BwCmluZGV4IGVhMmRlNjIzM2Jm
OTBkOGMxOTViZmM4NTQ1MWQyOWE1ZTNiOTg4ZjMuLjAyYzc1ODY3YzZiODU5MTBkMDZkZjY5NGZk
YmU2MzA5MGY1YjdiODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Xb3JrZXJU
aHJlYWRhYmxlTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvV29ya2VyVGhy
ZWFkYWJsZUxvYWRlci5jcHAKQEAgLTQyLDcgKzQyLDYgQEAKICNpbmNsdWRlICJXb3JrZXJMb2Fk
ZXJQcm94eS5oIgogI2luY2x1ZGUgIldvcmtlclRocmVhZC5oIgogI2luY2x1ZGUgPHd0Zi9NYWlu
VGhyZWFkLmg+Ci0jaW5jbHVkZSA8d3RmL093blB0ci5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3Iu
aD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtOTEsNyArOTAsNyBAQCBXb3JrZXJUaHJlYWRh
YmxlTG9hZGVyOjpNYWluVGhyZWFkQnJpZGdlOjpNYWluVGhyZWFkQnJpZGdlKFBhc3NSZWZQdHI8
VGhyZWFkYWJsZQogewogICAgIEFTU0VSVChtX3dvcmtlckNsaWVudFdyYXBwZXIuZ2V0KCkpOwog
Ci0gICAgYXV0byByZXF1ZXN0RGF0YSA9IHJlcXVlc3QuY29weURhdGEoKS5yZWxlYXNlKCk7Cisg
ICAgQ3Jvc3NUaHJlYWRSZXNvdXJjZVJlcXVlc3REYXRhKiByZXF1ZXN0RGF0YSA9IHJlcXVlc3Qu
Y29weURhdGEoKS5yZWxlYXNlKCk7CiAgICAgU3RyaW5nQ2FwdHVyZSBjYXB0dXJlZE91dGdvaW5n
UmVmZXJyZXIob3V0Z29pbmdSZWZlcnJlcik7CiAgICAgbV9sb2FkZXJQcm94eS5wb3N0VGFza1Rv
TG9hZGVyKFt0aGlzLCByZXF1ZXN0RGF0YSwgb3B0aW9ucywgY2FwdHVyZWRPdXRnb2luZ1JlZmVy
cmVyXShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0KSB7CiAgICAgICAgIEFTU0VSVChp
c01haW5UaHJlYWQoKSk7CkBAIC0xNjEsMTAgKzE2MCwxMCBAQCB2b2lkIFdvcmtlclRocmVhZGFi
bGVMb2FkZXI6Ok1haW5UaHJlYWRCcmlkZ2U6OmRpZFNlbmREYXRhKHVuc2lnbmVkIGxvbmcgbG9u
ZyBieQogdm9pZCBXb3JrZXJUaHJlYWRhYmxlTG9hZGVyOjpNYWluVGhyZWFkQnJpZGdlOjpkaWRS
ZWNlaXZlUmVzcG9uc2UodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBSZXNvdXJjZVJl
c3BvbnNlJiByZXNwb25zZSkKIHsKICAgICBSZWZQdHI8VGhyZWFkYWJsZUxvYWRlckNsaWVudFdy
YXBwZXI+IHdvcmtlckNsaWVudFdyYXBwZXIgPSBtX3dvcmtlckNsaWVudFdyYXBwZXI7Ci0gICAg
Q3Jvc3NUaHJlYWRSZXNvdXJjZVJlc3BvbnNlRGF0YSogcmVzcG9uc2VEYXRhID0gcmVzcG9uc2Uu
Y29weURhdGEoKS5sZWFrUHRyKCk7CisgICAgQ3Jvc3NUaHJlYWRSZXNvdXJjZVJlc3BvbnNlRGF0
YSogcmVzcG9uc2VEYXRhID0gcmVzcG9uc2UuY29weURhdGEoKS5yZWxlYXNlKCk7CiAgICAgaWYg
KCFtX2xvYWRlclByb3h5LnBvc3RUYXNrRm9yTW9kZVRvV29ya2VyR2xvYmFsU2NvcGUoW3dvcmtl
ckNsaWVudFdyYXBwZXIsIGlkZW50aWZpZXIsIHJlc3BvbnNlRGF0YV0gKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQmIGNvbnRleHQpIHsKICAgICAgICAgQVNTRVJUX1VOVVNFRChjb250ZXh0LCBjb250
ZXh0LmlzV29ya2VyR2xvYmFsU2NvcGUoKSk7Ci0gICAgICAgIE93blB0cjxSZXNvdXJjZVJlc3Bv
bnNlPiByZXNwb25zZShSZXNvdXJjZVJlc3BvbnNlOjphZG9wdChhZG9wdFB0cihyZXNwb25zZURh
dGEpKSk7CisgICAgICAgIGF1dG8gcmVzcG9uc2UoUmVzb3VyY2VSZXNwb25zZTo6YWRvcHQoc3Rk
Ojp1bmlxdWVfcHRyPENyb3NzVGhyZWFkUmVzb3VyY2VSZXNwb25zZURhdGE+KHJlc3BvbnNlRGF0
YSkpKTsKICAgICAgICAgd29ya2VyQ2xpZW50V3JhcHBlci0+ZGlkUmVjZWl2ZVJlc3BvbnNlKGlk
ZW50aWZpZXIsICpyZXNwb25zZSk7CiAgICAgfSwgbV90YXNrTW9kZSkpCiAgICAgICAgIGRlbGV0
ZSByZXNwb25zZURhdGE7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Dcm9z
c1RocmVhZENvcGllci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ3Jvc3NUaHJlYWRDb3Bp
ZXIuaAppbmRleCBjOTgwOTcxODM2ODdkMWQ5MDdlNGQzZGFjZGIzODUzMjJhNzM2YmVkLi5mMzg2
NjNjMjYyOGYxNDA4MzEzY2M3MjIxODkwYzgwMjUxMGEyZjBkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9Dcm9zc1RocmVhZENvcGllci5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL0Nyb3NzVGhyZWFkQ29waWVyLmgKQEAgLTE0Miw3ICsxNDIsNyBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAgICAgfTsKIAogICAgIHRlbXBsYXRlPD4gc3RydWN0IENyb3NzVGhyZWFk
Q29waWVyQmFzZTxmYWxzZSwgZmFsc2UsIFJlc291cmNlUmVzcG9uc2U+IHsKLSAgICAgICAgdHlw
ZWRlZiBQYXNzT3duUHRyPENyb3NzVGhyZWFkUmVzb3VyY2VSZXNwb25zZURhdGE+IFR5cGU7Cisg
ICAgICAgIHR5cGVkZWYgc3RkOjp1bmlxdWVfcHRyPENyb3NzVGhyZWFkUmVzb3VyY2VSZXNwb25z
ZURhdGE+IFR5cGU7CiAgICAgICAgIHN0YXRpYyBUeXBlIGNvcHkoY29uc3QgUmVzb3VyY2VSZXNw
b25zZSYpOwogICAgIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvUmVzb3VyY2VSZXNwb25zZUJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9SZXNvdXJjZVJlc3BvbnNlQmFzZS5jcHAKaW5kZXggMWIxOGI4YTAwZjA1NDMzNDc4
ZWVkYzQyZmI4ZmM5NDdjY2Y2YmRkZi4uYzg5Y2U2Njc2YzhkM2JhYjI1YzhkZjgzNjQ3YjI2ZjVm
YzY5MzllZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNv
dXJjZVJlc3BvbnNlQmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9SZXNvdXJjZVJlc3BvbnNlQmFzZS5jcHAKQEAgLTkxLDkgKzkxLDkgQEAgUmVzb3VyY2VSZXNw
b25zZUJhc2U6OlJlc291cmNlUmVzcG9uc2VCYXNlKGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJp
bmcmIG1pbWVUeXAKIHsKIH0KIAotUGFzc093blB0cjxSZXNvdXJjZVJlc3BvbnNlPiBSZXNvdXJj
ZVJlc3BvbnNlQmFzZTo6YWRvcHQoUGFzc093blB0cjxDcm9zc1RocmVhZFJlc291cmNlUmVzcG9u
c2VEYXRhPiBkYXRhKQorc3RkOjp1bmlxdWVfcHRyPFJlc291cmNlUmVzcG9uc2U+IFJlc291cmNl
UmVzcG9uc2VCYXNlOjphZG9wdChzdGQ6OnVuaXF1ZV9wdHI8Q3Jvc3NUaHJlYWRSZXNvdXJjZVJl
c3BvbnNlRGF0YT4gZGF0YSkKIHsKLSAgICBPd25QdHI8UmVzb3VyY2VSZXNwb25zZT4gcmVzcG9u
c2UgPSBhZG9wdFB0cihuZXcgUmVzb3VyY2VSZXNwb25zZSk7CisgICAgYXV0byByZXNwb25zZSA9
IHN0ZDo6bWFrZV91bmlxdWU8UmVzb3VyY2VSZXNwb25zZT4oKTsKICAgICByZXNwb25zZS0+c2V0
VVJMKGRhdGEtPm1fdXJsKTsKICAgICByZXNwb25zZS0+c2V0TWltZVR5cGUoZGF0YS0+bV9taW1l
VHlwZSk7CiAgICAgcmVzcG9uc2UtPnNldEV4cGVjdGVkQ29udGVudExlbmd0aChkYXRhLT5tX2V4
cGVjdGVkQ29udGVudExlbmd0aCk7CkBAIC0xMDUsMTMgKzEwNSwxMyBAQCBQYXNzT3duUHRyPFJl
c291cmNlUmVzcG9uc2U+IFJlc291cmNlUmVzcG9uc2VCYXNlOjphZG9wdChQYXNzT3duUHRyPENy
b3NzVGhyZWFkUgogICAgIHJlc3BvbnNlLT5sYXp5SW5pdChBbGxGaWVsZHMpOwogICAgIHJlc3Bv
bnNlLT5tX2h0dHBIZWFkZXJGaWVsZHMuYWRvcHQoV1RGOjptb3ZlKGRhdGEtPm1faHR0cEhlYWRl
cnMpKTsKICAgICByZXNwb25zZS0+bV9yZXNvdXJjZUxvYWRUaW1pbmcgPSBkYXRhLT5tX3Jlc291
cmNlTG9hZFRpbWluZzsKLSAgICByZXNwb25zZS0+ZG9QbGF0Zm9ybUFkb3B0KGRhdGEpOwotICAg
IHJldHVybiByZXNwb25zZS5yZWxlYXNlKCk7CisgICAgcmVzcG9uc2UtPmRvUGxhdGZvcm1BZG9w
dChXVEY6Om1vdmUoZGF0YSkpOworICAgIHJldHVybiByZXNwb25zZTsKIH0KIAotUGFzc093blB0
cjxDcm9zc1RocmVhZFJlc291cmNlUmVzcG9uc2VEYXRhPiBSZXNvdXJjZVJlc3BvbnNlQmFzZTo6
Y29weURhdGEoKSBjb25zdAorc3RkOjp1bmlxdWVfcHRyPENyb3NzVGhyZWFkUmVzb3VyY2VSZXNw
b25zZURhdGE+IFJlc291cmNlUmVzcG9uc2VCYXNlOjpjb3B5RGF0YSgpIGNvbnN0CiB7Ci0gICAg
T3duUHRyPENyb3NzVGhyZWFkUmVzb3VyY2VSZXNwb25zZURhdGE+IGRhdGEgPSBhZG9wdFB0cihu
ZXcgQ3Jvc3NUaHJlYWRSZXNvdXJjZVJlc3BvbnNlRGF0YSk7CisgICAgYXV0byBkYXRhID0gc3Rk
OjptYWtlX3VuaXF1ZTxDcm9zc1RocmVhZFJlc291cmNlUmVzcG9uc2VEYXRhPigpOwogICAgIGRh
dGEtPm1fdXJsID0gdXJsKCkuY29weSgpOwogICAgIGRhdGEtPm1fbWltZVR5cGUgPSBtaW1lVHlw
ZSgpLmlzb2xhdGVkQ29weSgpOwogICAgIGRhdGEtPm1fZXhwZWN0ZWRDb250ZW50TGVuZ3RoID0g
ZXhwZWN0ZWRDb250ZW50TGVuZ3RoKCk7CkBAIC0xMjAsNyArMTIwLDcgQEAgUGFzc093blB0cjxD
cm9zc1RocmVhZFJlc291cmNlUmVzcG9uc2VEYXRhPiBSZXNvdXJjZVJlc3BvbnNlQmFzZTo6Y29w
eURhdGEoKSBjb24KICAgICBkYXRhLT5tX2h0dHBTdGF0dXNUZXh0ID0gaHR0cFN0YXR1c1RleHQo
KS5pc29sYXRlZENvcHkoKTsKICAgICBkYXRhLT5tX2h0dHBIZWFkZXJzID0gaHR0cEhlYWRlckZp
ZWxkcygpLmNvcHlEYXRhKCk7CiAgICAgZGF0YS0+bV9yZXNvdXJjZUxvYWRUaW1pbmcgPSBtX3Jl
c291cmNlTG9hZFRpbWluZzsKLSAgICByZXR1cm4gYXNSZXNvdXJjZVJlc3BvbnNlKCkuZG9QbGF0
Zm9ybUNvcHlEYXRhKGRhdGEucmVsZWFzZSgpKTsKKyAgICByZXR1cm4gYXNSZXNvdXJjZVJlc3Bv
bnNlKCkuZG9QbGF0Zm9ybUNvcHlEYXRhKFdURjo6bW92ZShkYXRhKSk7CiB9CiAKIGJvb2wgUmVz
b3VyY2VSZXNwb25zZUJhc2U6OmlzSFRUUCgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVzcG9uc2VCYXNlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVzcG9uc2VCYXNlLmgKaW5kZXggMjM1MGE0
YTJjMmFmNGMzMWU4Yzg3OThlN2JiMzk5MDc1YmY2MWFhOC4uNzU0YzQxYWRlNjljZjlkZDZkMWUx
ZGUyZjE2ZjUyNDk3ZWYzYzVjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9SZXNvdXJjZVJlc3BvbnNlQmFzZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvUmVzb3VyY2VSZXNwb25zZUJhc2UuaApAQCAtNDgsMTAgKzQ4LDEwIEBAIHN0
cnVjdCBDcm9zc1RocmVhZFJlc291cmNlUmVzcG9uc2VEYXRhOwogY2xhc3MgUmVzb3VyY2VSZXNw
b25zZUJhc2UgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIHN0
YXRpYyBQYXNzT3duUHRyPFJlc291cmNlUmVzcG9uc2U+IGFkb3B0KFBhc3NPd25QdHI8Q3Jvc3NU
aHJlYWRSZXNvdXJjZVJlc3BvbnNlRGF0YT4pOworICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8
UmVzb3VyY2VSZXNwb25zZT4gYWRvcHQoc3RkOjp1bmlxdWVfcHRyPENyb3NzVGhyZWFkUmVzb3Vy
Y2VSZXNwb25zZURhdGE+KTsKIAogICAgIC8vIEdldHMgYSBjb3B5IG9mIHRoZSBkYXRhIHN1aXRh
YmxlIGZvciBwYXNzaW5nIHRvIGFub3RoZXIgdGhyZWFkLgotICAgIFBhc3NPd25QdHI8Q3Jvc3NU
aHJlYWRSZXNvdXJjZVJlc3BvbnNlRGF0YT4gY29weURhdGEoKSBjb25zdDsKKyAgICBzdGQ6OnVu
aXF1ZV9wdHI8Q3Jvc3NUaHJlYWRSZXNvdXJjZVJlc3BvbnNlRGF0YT4gY29weURhdGEoKSBjb25z
dDsKIAogICAgIGJvb2wgaXNOdWxsKCkgY29uc3QgeyByZXR1cm4gbV9pc051bGw7IH0KICAgICBX
RUJDT1JFX0VYUE9SVCBib29sIGlzSFRUUCgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZVJlc3BvbnNlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlUmVzcG9uc2UuaAppbmRleCA2NTI4NGJk
Mjc0OTIyZTQzOTIzMmYyMzIxYmJiMzY0YjkyMjlhMTY3Li5hY2MxZDQ1Njk3NWNjMTJmMzlhMzM4
ZGJiMjQzOTQxZTU3YzI2ZDFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL2NmL1Jlc291cmNlUmVzcG9uc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL2NmL1Jlc291cmNlUmVzcG9uc2UuaApAQCAtMTAxLDggKzEwMSw4IEBAIHByaXZh
dGU6CiAgICAgU3RyaW5nIHBsYXRmb3JtU3VnZ2VzdGVkRmlsZW5hbWUoKSBjb25zdDsKICAgICBD
ZXJ0aWZpY2F0ZUluZm8gcGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8oKSBjb25zdDsKIAotICAgIFBh
c3NPd25QdHI8Q3Jvc3NUaHJlYWRSZXNvdXJjZVJlc3BvbnNlRGF0YT4gZG9QbGF0Zm9ybUNvcHlE
YXRhKFBhc3NPd25QdHI8Q3Jvc3NUaHJlYWRSZXNvdXJjZVJlc3BvbnNlRGF0YT4gZGF0YSkgY29u
c3QgeyByZXR1cm4gZGF0YTsgfQotICAgIHZvaWQgZG9QbGF0Zm9ybUFkb3B0KFBhc3NPd25QdHI8
Q3Jvc3NUaHJlYWRSZXNvdXJjZVJlc3BvbnNlRGF0YT4pIHsgfQorICAgIHN0ZDo6dW5pcXVlX3B0
cjxDcm9zc1RocmVhZFJlc291cmNlUmVzcG9uc2VEYXRhPiBkb1BsYXRmb3JtQ29weURhdGEoc3Rk
Ojp1bmlxdWVfcHRyPENyb3NzVGhyZWFkUmVzb3VyY2VSZXNwb25zZURhdGE+IGRhdGEpIGNvbnN0
IHsgcmV0dXJuIGRhdGE7IH0KKyAgICB2b2lkIGRvUGxhdGZvcm1BZG9wdChzdGQ6OnVuaXF1ZV9w
dHI8Q3Jvc3NUaHJlYWRSZXNvdXJjZVJlc3BvbnNlRGF0YT4pIHsgfQogI2lmIFBMQVRGT1JNKENP
Q09BKQogICAgIHZvaWQgaW5pdE5TVVJMUmVzcG9uc2UoKSBjb25zdDsKICNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1Jlc291cmNlUmVzcG9u
c2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZVJlc3Bv
bnNlLmgKaW5kZXggYzc5MmY5MjU0ZTc3NGEyZWRkYzQ3NTBhZGIzMDM0NDQxOGZjZWM4MS4uNDMw
N2Y2ZTQwY2UxOTYxNDM1OGU0ZjAzZDA0OWMzY2VkZjBmMjhhMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1Jlc291cmNlUmVzcG9uc2UuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUmVzb3VyY2VSZXNwb25zZS5oCkBA
IC01OSw4ICs1OSw4IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgZnJpZW5kIGNsYXNzIFJlc291
cmNlUmVzcG9uc2VCYXNlOwogCi0gICAgUGFzc093blB0cjxDcm9zc1RocmVhZFJlc291cmNlUmVz
cG9uc2VEYXRhPiBkb1BsYXRmb3JtQ29weURhdGEoUGFzc093blB0cjxDcm9zc1RocmVhZFJlc291
cmNlUmVzcG9uc2VEYXRhPiBkYXRhKSBjb25zdCB7IHJldHVybiBkYXRhOyB9Ci0gICAgdm9pZCBk
b1BsYXRmb3JtQWRvcHQoUGFzc093blB0cjxDcm9zc1RocmVhZFJlc291cmNlUmVzcG9uc2VEYXRh
PikgeyB9CisgICAgc3RkOjp1bmlxdWVfcHRyPENyb3NzVGhyZWFkUmVzb3VyY2VSZXNwb25zZURh
dGE+IGRvUGxhdGZvcm1Db3B5RGF0YShzdGQ6OnVuaXF1ZV9wdHI8Q3Jvc3NUaHJlYWRSZXNvdXJj
ZVJlc3BvbnNlRGF0YT4gZGF0YSkgY29uc3QgeyByZXR1cm4gZGF0YTsgfQorICAgIHZvaWQgZG9Q
bGF0Zm9ybUFkb3B0KHN0ZDo6dW5pcXVlX3B0cjxDcm9zc1RocmVhZFJlc291cmNlUmVzcG9uc2VE
YXRhPikgeyB9CiAgICAgU3RyaW5nIHBsYXRmb3JtU3VnZ2VzdGVkRmlsZW5hbWUoKSBjb25zdAog
ICAgIHsKICAgICAgICAgcmV0dXJuIGZpbGVuYW1lRnJvbUhUVFBDb250ZW50RGlzcG9zaXRpb24o
aHR0cEhlYWRlckZpZWxkKEhUVFBIZWFkZXJOYW1lOjpDb250ZW50RGlzcG9zaXRpb24pKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZVJl
c3BvbnNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VS
ZXNwb25zZS5oCmluZGV4IGRlMzVkMmE2Yzc5OTA4MTdjMjcwMDRjNTI1M2Y2MGZlMzllZWJiYmUu
LjM5N2UxYTEyODgwZDQzOTNkZTQ0ZmFkOThiN2Q0NDg0Yjk1OGVjNTIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZVJlc3BvbnNlLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlUmVzcG9uc2Uu
aApAQCAtOTEsOCArOTEsOCBAQCBwcml2YXRlOgogICAgIFN0cmluZyBwbGF0Zm9ybVN1Z2dlc3Rl
ZEZpbGVuYW1lKCkgY29uc3Q7CiAgICAgQ2VydGlmaWNhdGVJbmZvIHBsYXRmb3JtQ2VydGlmaWNh
dGVJbmZvKCkgY29uc3Q7CiAKLSAgICBQYXNzT3duUHRyPENyb3NzVGhyZWFkUmVzb3VyY2VSZXNw
b25zZURhdGE+IGRvUGxhdGZvcm1Db3B5RGF0YShQYXNzT3duUHRyPENyb3NzVGhyZWFkUmVzb3Vy
Y2VSZXNwb25zZURhdGE+IGRhdGEpIGNvbnN0IHsgcmV0dXJuIGRhdGE7IH0KLSAgICB2b2lkIGRv
UGxhdGZvcm1BZG9wdChQYXNzT3duUHRyPENyb3NzVGhyZWFkUmVzb3VyY2VSZXNwb25zZURhdGE+
KSB7IH0KKyAgICBzdGQ6OnVuaXF1ZV9wdHI8Q3Jvc3NUaHJlYWRSZXNvdXJjZVJlc3BvbnNlRGF0
YT4gZG9QbGF0Zm9ybUNvcHlEYXRhKHN0ZDo6dW5pcXVlX3B0cjxDcm9zc1RocmVhZFJlc291cmNl
UmVzcG9uc2VEYXRhPiBkYXRhKSBjb25zdCB7IHJldHVybiBkYXRhOyB9CisgICAgdm9pZCBkb1Bs
YXRmb3JtQWRvcHQoc3RkOjp1bmlxdWVfcHRyPENyb3NzVGhyZWFkUmVzb3VyY2VSZXNwb25zZURh
dGE+KSB7IH0KIH07CiAKIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>250630</attachid>
            <date>2015-04-13 01:39:52 -0700</date>
            <delta_ts>2015-04-13 04:19:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-143056-20150413173857.patch</filename>
            <type>text/plain</type>
            <size>10554</size>
            <attacher name="Joonghun Park">jh718.park</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgyNjc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzE0N2VkOTM2NmU0NGQy
NWVlM2NlNTBjMDI3NjYyMTA4NjEzZmIxZi4uYjEyNDcyNmE3YWI2M2I3MzBiMGM5NjgwZWYwODJm
MDZjOWM0ZmY0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDE1LTA0LTEzICBKb29u
Z2h1biBQYXJrICA8amg3MTgucGFya0BzYW1zdW5nLmNvbT4KKworICAgICAgICBVc2Ugc3RkOjp1
bmlxdWVfcHRyIGluc3RlYWQgb2YgUGFzc093blB0cnxPd25QdHIgZm9yIFJlc291cmNlUmVzcG9u
c2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MzA1
NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5l
dyB0ZXN0cywgbm8gYmVoYXZpb3IgY2hhbmdlcy4KKworICAgICAgICAqIGxvYWRlci9Xb3JrZXJU
aHJlYWRhYmxlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlclRocmVhZGFibGVM
b2FkZXI6Ok1haW5UaHJlYWRCcmlkZ2U6Ok1haW5UaHJlYWRCcmlkZ2UpOgorICAgICAgICAoV2Vi
Q29yZTo6V29ya2VyVGhyZWFkYWJsZUxvYWRlcjo6TWFpblRocmVhZEJyaWRnZTo6ZGlkUmVjZWl2
ZVJlc3BvbnNlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9Dcm9zc1RocmVhZENvcGllci5oOgorICAg
ICAgICAqIHBsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VSZXNwb25zZUJhc2UuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZUJhc2U6OmFkb3B0KToKKyAgICAgICAgKFdlYkNv
cmU6OlJlc291cmNlUmVzcG9uc2VCYXNlOjpjb3B5RGF0YSk6CisgICAgICAgICogcGxhdGZvcm0v
bmV0d29yay9SZXNvdXJjZVJlc3BvbnNlQmFzZS5oOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdv
cmsvY2YvUmVzb3VyY2VSZXNwb25zZS5oOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VSZXNw
b25zZTo6ZG9QbGF0Zm9ybUNvcHlEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlUmVz
cG9uc2U6OmRvUGxhdGZvcm1BZG9wdCk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jdXJs
L1Jlc291cmNlUmVzcG9uc2UuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2U6
OmRvUGxhdGZvcm1Db3B5RGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNl
Ojpkb1BsYXRmb3JtQWRvcHQpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvc291cC9SZXNv
dXJjZVJlc3BvbnNlLmg6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlOjpkb1Bs
YXRmb3JtQ29weURhdGEpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZTo6ZG9Q
bGF0Zm9ybUFkb3B0KToKKwogMjAxNS0wNC0xMiAgQmVuamFtaW4gUG91bGFpbiAgPGJlbmphbWlu
QHdlYmtpdC5vcmc+CiAKICAgICAgICAgTGVnYWN5IHNjcm9sbCBiZWhhdmlvciBvbiBIVE1MQm9k
eUVsZW1lbnQgc2hvdWxkIG9ubHkgYXBwbHkgdG8gdGhlIGZpcnN0IGJvZHkgZWxlbWVudCBvZiBh
IGRvY3VtZW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvV29ya2VyVGhyZWFk
YWJsZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvV29ya2VyVGhyZWFkYWJsZUxv
YWRlci5jcHAKaW5kZXggZWEyZGU2MjMzYmY5MGQ4YzE5NWJmYzg1NDUxZDI5YTVlM2I5ODhmMy4u
ZTkyYjg5ZDJlMmY2ZWY0Y2QzMDQ0M2U2YzM1ZWI2ODQwYjU4NTZhZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL1dvcmtlclRocmVhZGFibGVMb2FkZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9Xb3JrZXJUaHJlYWRhYmxlTG9hZGVyLmNwcApAQCAtNDIsNyArNDIs
NiBAQAogI2luY2x1ZGUgIldvcmtlckxvYWRlclByb3h5LmgiCiAjaW5jbHVkZSAiV29ya2VyVGhy
ZWFkLmgiCiAjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KLSNpbmNsdWRlIDx3dGYvT3duUHRy
Lmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC05
MSw3ICs5MCw3IEBAIFdvcmtlclRocmVhZGFibGVMb2FkZXI6Ok1haW5UaHJlYWRCcmlkZ2U6Ok1h
aW5UaHJlYWRCcmlkZ2UoUGFzc1JlZlB0cjxUaHJlYWRhYmxlCiB7CiAgICAgQVNTRVJUKG1fd29y
a2VyQ2xpZW50V3JhcHBlci5nZXQoKSk7CiAKLSAgICBhdXRvIHJlcXVlc3REYXRhID0gcmVxdWVz
dC5jb3B5RGF0YSgpLnJlbGVhc2UoKTsKKyAgICBhdXRvKiByZXF1ZXN0RGF0YSA9IHJlcXVlc3Qu
Y29weURhdGEoKS5yZWxlYXNlKCk7CiAgICAgU3RyaW5nQ2FwdHVyZSBjYXB0dXJlZE91dGdvaW5n
UmVmZXJyZXIob3V0Z29pbmdSZWZlcnJlcik7CiAgICAgbV9sb2FkZXJQcm94eS5wb3N0VGFza1Rv
TG9hZGVyKFt0aGlzLCByZXF1ZXN0RGF0YSwgb3B0aW9ucywgY2FwdHVyZWRPdXRnb2luZ1JlZmVy
cmVyXShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0KSB7CiAgICAgICAgIEFTU0VSVChp
c01haW5UaHJlYWQoKSk7CkBAIC0xNjEsMTAgKzE2MCwxMCBAQCB2b2lkIFdvcmtlclRocmVhZGFi
bGVMb2FkZXI6Ok1haW5UaHJlYWRCcmlkZ2U6OmRpZFNlbmREYXRhKHVuc2lnbmVkIGxvbmcgbG9u
ZyBieQogdm9pZCBXb3JrZXJUaHJlYWRhYmxlTG9hZGVyOjpNYWluVGhyZWFkQnJpZGdlOjpkaWRS
ZWNlaXZlUmVzcG9uc2UodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBSZXNvdXJjZVJl
c3BvbnNlJiByZXNwb25zZSkKIHsKICAgICBSZWZQdHI8VGhyZWFkYWJsZUxvYWRlckNsaWVudFdy
YXBwZXI+IHdvcmtlckNsaWVudFdyYXBwZXIgPSBtX3dvcmtlckNsaWVudFdyYXBwZXI7Ci0gICAg
Q3Jvc3NUaHJlYWRSZXNvdXJjZVJlc3BvbnNlRGF0YSogcmVzcG9uc2VEYXRhID0gcmVzcG9uc2Uu
Y29weURhdGEoKS5sZWFrUHRyKCk7CisgICAgYXV0byogcmVzcG9uc2VEYXRhID0gcmVzcG9uc2Uu
Y29weURhdGEoKS5yZWxlYXNlKCk7CiAgICAgaWYgKCFtX2xvYWRlclByb3h5LnBvc3RUYXNrRm9y
TW9kZVRvV29ya2VyR2xvYmFsU2NvcGUoW3dvcmtlckNsaWVudFdyYXBwZXIsIGlkZW50aWZpZXIs
IHJlc3BvbnNlRGF0YV0gKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQpIHsKICAgICAg
ICAgQVNTRVJUX1VOVVNFRChjb250ZXh0LCBjb250ZXh0LmlzV29ya2VyR2xvYmFsU2NvcGUoKSk7
Ci0gICAgICAgIE93blB0cjxSZXNvdXJjZVJlc3BvbnNlPiByZXNwb25zZShSZXNvdXJjZVJlc3Bv
bnNlOjphZG9wdChhZG9wdFB0cihyZXNwb25zZURhdGEpKSk7CisgICAgICAgIGF1dG8gcmVzcG9u
c2UoUmVzb3VyY2VSZXNwb25zZTo6YWRvcHQoc3RkOjp1bmlxdWVfcHRyPENyb3NzVGhyZWFkUmVz
b3VyY2VSZXNwb25zZURhdGE+KHJlc3BvbnNlRGF0YSkpKTsKICAgICAgICAgd29ya2VyQ2xpZW50
V3JhcHBlci0+ZGlkUmVjZWl2ZVJlc3BvbnNlKGlkZW50aWZpZXIsICpyZXNwb25zZSk7CiAgICAg
fSwgbV90YXNrTW9kZSkpCiAgICAgICAgIGRlbGV0ZSByZXNwb25zZURhdGE7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Dcm9zc1RocmVhZENvcGllci5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vQ3Jvc3NUaHJlYWRDb3BpZXIuaAppbmRleCBjOTgwOTcxODM2ODdkMWQ5
MDdlNGQzZGFjZGIzODUzMjJhNzM2YmVkLi5mMzg2NjNjMjYyOGYxNDA4MzEzY2M3MjIxODkwYzgw
MjUxMGEyZjBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Dcm9zc1RocmVh
ZENvcGllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0Nyb3NzVGhyZWFkQ29waWVy
LmgKQEAgLTE0Miw3ICsxNDIsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgfTsKIAogICAg
IHRlbXBsYXRlPD4gc3RydWN0IENyb3NzVGhyZWFkQ29waWVyQmFzZTxmYWxzZSwgZmFsc2UsIFJl
c291cmNlUmVzcG9uc2U+IHsKLSAgICAgICAgdHlwZWRlZiBQYXNzT3duUHRyPENyb3NzVGhyZWFk
UmVzb3VyY2VSZXNwb25zZURhdGE+IFR5cGU7CisgICAgICAgIHR5cGVkZWYgc3RkOjp1bmlxdWVf
cHRyPENyb3NzVGhyZWFkUmVzb3VyY2VSZXNwb25zZURhdGE+IFR5cGU7CiAgICAgICAgIHN0YXRp
YyBUeXBlIGNvcHkoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpOwogICAgIH07CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VSZXNwb25zZUJhc2Uu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZVJlc3BvbnNlQmFz
ZS5jcHAKaW5kZXggM2YzZTY3ZTk0YzM0NzQ2MDQ5MjczMWFjOGU1YTBhOTRkYmJkOGQxZC4uYmZm
ZjJmZjU5YzYyMDIzZDRhMjgzMzE2NmVhZWUyMjM0NjcyYTQ3NyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZVJlc3BvbnNlQmFzZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZVJlc3BvbnNlQmFzZS5jcHAK
QEAgLTYyLDkgKzYyLDkgQEAgUmVzb3VyY2VSZXNwb25zZUJhc2U6OlJlc291cmNlUmVzcG9uc2VC
YXNlKGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIG1pbWVUeXAKIHsKIH0KIAotUGFzc093
blB0cjxSZXNvdXJjZVJlc3BvbnNlPiBSZXNvdXJjZVJlc3BvbnNlQmFzZTo6YWRvcHQoUGFzc093
blB0cjxDcm9zc1RocmVhZFJlc291cmNlUmVzcG9uc2VEYXRhPiBkYXRhKQorc3RkOjp1bmlxdWVf
cHRyPFJlc291cmNlUmVzcG9uc2U+IFJlc291cmNlUmVzcG9uc2VCYXNlOjphZG9wdChzdGQ6OnVu
aXF1ZV9wdHI8Q3Jvc3NUaHJlYWRSZXNvdXJjZVJlc3BvbnNlRGF0YT4gZGF0YSkKIHsKLSAgICBP
d25QdHI8UmVzb3VyY2VSZXNwb25zZT4gcmVzcG9uc2UgPSBhZG9wdFB0cihuZXcgUmVzb3VyY2VS
ZXNwb25zZSk7CisgICAgYXV0byByZXNwb25zZSA9IHN0ZDo6bWFrZV91bmlxdWU8UmVzb3VyY2VS
ZXNwb25zZT4oKTsKICAgICByZXNwb25zZS0+c2V0VVJMKGRhdGEtPm1fdXJsKTsKICAgICByZXNw
b25zZS0+c2V0TWltZVR5cGUoZGF0YS0+bV9taW1lVHlwZSk7CiAgICAgcmVzcG9uc2UtPnNldEV4
cGVjdGVkQ29udGVudExlbmd0aChkYXRhLT5tX2V4cGVjdGVkQ29udGVudExlbmd0aCk7CkBAIC03
NiwxMyArNzYsMTMgQEAgUGFzc093blB0cjxSZXNvdXJjZVJlc3BvbnNlPiBSZXNvdXJjZVJlc3Bv
bnNlQmFzZTo6YWRvcHQoUGFzc093blB0cjxDcm9zc1RocmVhZFIKICAgICByZXNwb25zZS0+bGF6
eUluaXQoQWxsRmllbGRzKTsKICAgICByZXNwb25zZS0+bV9odHRwSGVhZGVyRmllbGRzLmFkb3B0
KFdURjo6bW92ZShkYXRhLT5tX2h0dHBIZWFkZXJzKSk7CiAgICAgcmVzcG9uc2UtPm1fcmVzb3Vy
Y2VMb2FkVGltaW5nID0gZGF0YS0+bV9yZXNvdXJjZUxvYWRUaW1pbmc7Ci0gICAgcmVzcG9uc2Ut
PmRvUGxhdGZvcm1BZG9wdChkYXRhKTsKLSAgICByZXR1cm4gcmVzcG9uc2UucmVsZWFzZSgpOwor
ICAgIHJlc3BvbnNlLT5kb1BsYXRmb3JtQWRvcHQoV1RGOjptb3ZlKGRhdGEpKTsKKyAgICByZXR1
cm4gcmVzcG9uc2U7CiB9CiAKLVBhc3NPd25QdHI8Q3Jvc3NUaHJlYWRSZXNvdXJjZVJlc3BvbnNl
RGF0YT4gUmVzb3VyY2VSZXNwb25zZUJhc2U6OmNvcHlEYXRhKCkgY29uc3QKK3N0ZDo6dW5pcXVl
X3B0cjxDcm9zc1RocmVhZFJlc291cmNlUmVzcG9uc2VEYXRhPiBSZXNvdXJjZVJlc3BvbnNlQmFz
ZTo6Y29weURhdGEoKSBjb25zdAogewotICAgIE93blB0cjxDcm9zc1RocmVhZFJlc291cmNlUmVz
cG9uc2VEYXRhPiBkYXRhID0gYWRvcHRQdHIobmV3IENyb3NzVGhyZWFkUmVzb3VyY2VSZXNwb25z
ZURhdGEpOworICAgIGF1dG8gZGF0YSA9IHN0ZDo6bWFrZV91bmlxdWU8Q3Jvc3NUaHJlYWRSZXNv
dXJjZVJlc3BvbnNlRGF0YT4oKTsKICAgICBkYXRhLT5tX3VybCA9IHVybCgpLmNvcHkoKTsKICAg
ICBkYXRhLT5tX21pbWVUeXBlID0gbWltZVR5cGUoKS5pc29sYXRlZENvcHkoKTsKICAgICBkYXRh
LT5tX2V4cGVjdGVkQ29udGVudExlbmd0aCA9IGV4cGVjdGVkQ29udGVudExlbmd0aCgpOwpAQCAt
OTEsNyArOTEsNyBAQCBQYXNzT3duUHRyPENyb3NzVGhyZWFkUmVzb3VyY2VSZXNwb25zZURhdGE+
IFJlc291cmNlUmVzcG9uc2VCYXNlOjpjb3B5RGF0YSgpIGNvbgogICAgIGRhdGEtPm1faHR0cFN0
YXR1c1RleHQgPSBodHRwU3RhdHVzVGV4dCgpLmlzb2xhdGVkQ29weSgpOwogICAgIGRhdGEtPm1f
aHR0cEhlYWRlcnMgPSBodHRwSGVhZGVyRmllbGRzKCkuY29weURhdGEoKTsKICAgICBkYXRhLT5t
X3Jlc291cmNlTG9hZFRpbWluZyA9IG1fcmVzb3VyY2VMb2FkVGltaW5nOwotICAgIHJldHVybiBh
c1Jlc291cmNlUmVzcG9uc2UoKS5kb1BsYXRmb3JtQ29weURhdGEoZGF0YS5yZWxlYXNlKCkpOwor
ICAgIHJldHVybiBhc1Jlc291cmNlUmVzcG9uc2UoKS5kb1BsYXRmb3JtQ29weURhdGEoV1RGOjpt
b3ZlKGRhdGEpKTsKIH0KIAogYm9vbCBSZXNvdXJjZVJlc3BvbnNlQmFzZTo6aXNIVFRQKCkgY29u
c3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VS
ZXNwb25zZUJhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VS
ZXNwb25zZUJhc2UuaAppbmRleCBjYTNjMmMzZmQ5ZDc1MTM2MjkzNzcwYjhmMGFmOTJlY2JhNjJj
NWZhLi5mNzBhNGRjMjIxYmEyN2U0ZWQ3ZTg3YTJlYTAzNDdkNTE5NzhhNzhiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVzcG9uc2VCYXNlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZVJlc3BvbnNlQmFz
ZS5oCkBAIC00OSwxMCArNDksMTAgQEAgc3RydWN0IENyb3NzVGhyZWFkUmVzb3VyY2VSZXNwb25z
ZURhdGE7CiBjbGFzcyBSZXNvdXJjZVJlc3BvbnNlQmFzZSB7CiAgICAgV1RGX01BS0VfRkFTVF9B
TExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NPd25QdHI8UmVzb3VyY2VSZXNwb25z
ZT4gYWRvcHQoUGFzc093blB0cjxDcm9zc1RocmVhZFJlc291cmNlUmVzcG9uc2VEYXRhPik7Cisg
ICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxSZXNvdXJjZVJlc3BvbnNlPiBhZG9wdChzdGQ6OnVu
aXF1ZV9wdHI8Q3Jvc3NUaHJlYWRSZXNvdXJjZVJlc3BvbnNlRGF0YT4pOwogCiAgICAgLy8gR2V0
cyBhIGNvcHkgb2YgdGhlIGRhdGEgc3VpdGFibGUgZm9yIHBhc3NpbmcgdG8gYW5vdGhlciB0aHJl
YWQuCi0gICAgUGFzc093blB0cjxDcm9zc1RocmVhZFJlc291cmNlUmVzcG9uc2VEYXRhPiBjb3B5
RGF0YSgpIGNvbnN0OworICAgIHN0ZDo6dW5pcXVlX3B0cjxDcm9zc1RocmVhZFJlc291cmNlUmVz
cG9uc2VEYXRhPiBjb3B5RGF0YSgpIGNvbnN0OwogCiAgICAgYm9vbCBpc051bGwoKSBjb25zdCB7
IHJldHVybiBtX2lzTnVsbDsgfQogICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgaXNIVFRQKCkgY29u
c3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291
cmNlUmVzcG9uc2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3Vy
Y2VSZXNwb25zZS5oCmluZGV4IDY1Mjg0YmQyNzQ5MjJlNDM5MjMyZjIzMjFiYmIzNjRiOTIyOWEx
NjcuLmFjYzFkNDU2OTc1Y2MxMmYzOWEzMzhkYmIyNDM5NDFlNTdjMjZkMWEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VSZXNwb25zZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VSZXNwb25zZS5o
CkBAIC0xMDEsOCArMTAxLDggQEAgcHJpdmF0ZToKICAgICBTdHJpbmcgcGxhdGZvcm1TdWdnZXN0
ZWRGaWxlbmFtZSgpIGNvbnN0OwogICAgIENlcnRpZmljYXRlSW5mbyBwbGF0Zm9ybUNlcnRpZmlj
YXRlSW5mbygpIGNvbnN0OwogCi0gICAgUGFzc093blB0cjxDcm9zc1RocmVhZFJlc291cmNlUmVz
cG9uc2VEYXRhPiBkb1BsYXRmb3JtQ29weURhdGEoUGFzc093blB0cjxDcm9zc1RocmVhZFJlc291
cmNlUmVzcG9uc2VEYXRhPiBkYXRhKSBjb25zdCB7IHJldHVybiBkYXRhOyB9Ci0gICAgdm9pZCBk
b1BsYXRmb3JtQWRvcHQoUGFzc093blB0cjxDcm9zc1RocmVhZFJlc291cmNlUmVzcG9uc2VEYXRh
PikgeyB9CisgICAgc3RkOjp1bmlxdWVfcHRyPENyb3NzVGhyZWFkUmVzb3VyY2VSZXNwb25zZURh
dGE+IGRvUGxhdGZvcm1Db3B5RGF0YShzdGQ6OnVuaXF1ZV9wdHI8Q3Jvc3NUaHJlYWRSZXNvdXJj
ZVJlc3BvbnNlRGF0YT4gZGF0YSkgY29uc3QgeyByZXR1cm4gZGF0YTsgfQorICAgIHZvaWQgZG9Q
bGF0Zm9ybUFkb3B0KHN0ZDo6dW5pcXVlX3B0cjxDcm9zc1RocmVhZFJlc291cmNlUmVzcG9uc2VE
YXRhPikgeyB9CiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgdm9pZCBpbml0TlNVUkxSZXNwb25z
ZSgpIGNvbnN0OwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL2N1cmwvUmVzb3VyY2VSZXNwb25zZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9jdXJsL1Jlc291cmNlUmVzcG9uc2UuaAppbmRleCBjNzkyZjkyNTRlNzc0YTJlZGRj
NDc1MGFkYjMwMzQ0NDE4ZmNlYzgxLi40MzA3ZjZlNDBjZTE5NjE0MzU4ZTRmMDNkMDQ5YzNjZWRm
MGYyOGEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwv
UmVzb3VyY2VSZXNwb25zZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
Y3VybC9SZXNvdXJjZVJlc3BvbnNlLmgKQEAgLTU5LDggKzU5LDggQEAgcHVibGljOgogcHJpdmF0
ZToKICAgICBmcmllbmQgY2xhc3MgUmVzb3VyY2VSZXNwb25zZUJhc2U7CiAKLSAgICBQYXNzT3du
UHRyPENyb3NzVGhyZWFkUmVzb3VyY2VSZXNwb25zZURhdGE+IGRvUGxhdGZvcm1Db3B5RGF0YShQ
YXNzT3duUHRyPENyb3NzVGhyZWFkUmVzb3VyY2VSZXNwb25zZURhdGE+IGRhdGEpIGNvbnN0IHsg
cmV0dXJuIGRhdGE7IH0KLSAgICB2b2lkIGRvUGxhdGZvcm1BZG9wdChQYXNzT3duUHRyPENyb3Nz
VGhyZWFkUmVzb3VyY2VSZXNwb25zZURhdGE+KSB7IH0KKyAgICBzdGQ6OnVuaXF1ZV9wdHI8Q3Jv
c3NUaHJlYWRSZXNvdXJjZVJlc3BvbnNlRGF0YT4gZG9QbGF0Zm9ybUNvcHlEYXRhKHN0ZDo6dW5p
cXVlX3B0cjxDcm9zc1RocmVhZFJlc291cmNlUmVzcG9uc2VEYXRhPiBkYXRhKSBjb25zdCB7IHJl
dHVybiBkYXRhOyB9CisgICAgdm9pZCBkb1BsYXRmb3JtQWRvcHQoc3RkOjp1bmlxdWVfcHRyPENy
b3NzVGhyZWFkUmVzb3VyY2VSZXNwb25zZURhdGE+KSB7IH0KICAgICBTdHJpbmcgcGxhdGZvcm1T
dWdnZXN0ZWRGaWxlbmFtZSgpIGNvbnN0CiAgICAgewogICAgICAgICByZXR1cm4gZmlsZW5hbWVG
cm9tSFRUUENvbnRlbnREaXNwb3NpdGlvbihodHRwSGVhZGVyRmllbGQoSFRUUEhlYWRlck5hbWU6
OkNvbnRlbnREaXNwb3NpdGlvbikpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9zb3VwL1Jlc291cmNlUmVzcG9uc2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvc291cC9SZXNvdXJjZVJlc3BvbnNlLmgKaW5kZXggZGUzNWQyYTZjNzk5MDgx
N2MyNzAwNGM1MjUzZjYwZmUzOWVlYmJiZS4uMzk3ZTFhMTI4ODBkNDM5M2RlNDRmYWQ5OGI3ZDQ0
ODRiOTU4ZWM1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9z
b3VwL1Jlc291cmNlUmVzcG9uc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL3NvdXAvUmVzb3VyY2VSZXNwb25zZS5oCkBAIC05MSw4ICs5MSw4IEBAIHByaXZhdGU6CiAg
ICAgU3RyaW5nIHBsYXRmb3JtU3VnZ2VzdGVkRmlsZW5hbWUoKSBjb25zdDsKICAgICBDZXJ0aWZp
Y2F0ZUluZm8gcGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8oKSBjb25zdDsKIAotICAgIFBhc3NPd25Q
dHI8Q3Jvc3NUaHJlYWRSZXNvdXJjZVJlc3BvbnNlRGF0YT4gZG9QbGF0Zm9ybUNvcHlEYXRhKFBh
c3NPd25QdHI8Q3Jvc3NUaHJlYWRSZXNvdXJjZVJlc3BvbnNlRGF0YT4gZGF0YSkgY29uc3QgeyBy
ZXR1cm4gZGF0YTsgfQotICAgIHZvaWQgZG9QbGF0Zm9ybUFkb3B0KFBhc3NPd25QdHI8Q3Jvc3NU
aHJlYWRSZXNvdXJjZVJlc3BvbnNlRGF0YT4pIHsgfQorICAgIHN0ZDo6dW5pcXVlX3B0cjxDcm9z
c1RocmVhZFJlc291cmNlUmVzcG9uc2VEYXRhPiBkb1BsYXRmb3JtQ29weURhdGEoc3RkOjp1bmlx
dWVfcHRyPENyb3NzVGhyZWFkUmVzb3VyY2VSZXNwb25zZURhdGE+IGRhdGEpIGNvbnN0IHsgcmV0
dXJuIGRhdGE7IH0KKyAgICB2b2lkIGRvUGxhdGZvcm1BZG9wdChzdGQ6OnVuaXF1ZV9wdHI8Q3Jv
c3NUaHJlYWRSZXNvdXJjZVJlc3BvbnNlRGF0YT4pIHsgfQogfTsKIAogdGVtcGxhdGU8Y2xhc3Mg
RW5jb2Rlcj4K
</data>

          </attachment>
      

    </bug>

</bugzilla>