<?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>40137</bug_id>
          
          <creation_ts>2010-06-03 13:55:17 -0700</creation_ts>
          <short_desc>Plumb FormSubmission through to ScheduledFormSubmission.</short_desc>
          <delta_ts>2010-06-21 10:54:04 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>40084</dependson>
          <blocked>40184</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Dimitri Glazkov (Google)">dglazkov</reporter>
          <assigned_to name="Dimitri Glazkov (Google)">dglazkov</assigned_to>
          <cc>darin</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>233913</commentid>
    <comment_count>0</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2010-06-03 13:55:17 -0700</bug_when>
    <thetext>Plumb FormSubmission through to ScheduledFormSubmission.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>233920</commentid>
    <comment_count>1</comment_count>
      <attachid>57811</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2010-06-03 14:09:25 -0700</bug_when>
    <thetext>Created attachment 57811
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>240535</commentid>
    <comment_count>2</comment_count>
      <attachid>59218</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2010-06-20 15:17:13 -0700</bug_when>
    <thetext>Created attachment 59218
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>240536</commentid>
    <comment_count>3</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2010-06-20 15:20:22 -0700</bug_when>
    <thetext>... and one more!

Here I just basically plumb FormSubmission further in (not quite to the very end), and move some of the logic to more logical places :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>240590</commentid>
    <comment_count>4</comment_count>
      <attachid>59218</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-06-20 22:15:55 -0700</bug_when>
    <thetext>Comment on attachment 59218
Patch

&gt; +#include &quot;KURL.h&quot;
&gt;  #include &quot;PlatformString.h&quot;
&gt;  #include &lt;wtf/Forward.h&gt;
&gt;  #include &lt;wtf/RefCounted.h&gt;

You probably don&apos;t need to include anything else if you include &quot;KURL.h&quot;. I believe that includes all those other headers.

&gt; +    void populateFrameLoadRequest(FrameLoadRequest&amp;);

This should be a const member function.

&gt; +    void setReferrer(String referrer) { m_referrer = referrer; }

&gt; +    void setOrigin(String origin) { m_origin = origin; }

The arguments to these functions should be const String&amp; rather than String.

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>240779</commentid>
    <comment_count>5</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2010-06-21 10:54:04 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 59218 [details])
&gt; &gt; +#include &quot;KURL.h&quot;
&gt; &gt;  #include &quot;PlatformString.h&quot;
&gt; &gt;  #include &lt;wtf/Forward.h&gt;
&gt; &gt;  #include &lt;wtf/RefCounted.h&gt;
&gt; 
&gt; You probably don&apos;t need to include anything else if you include &quot;KURL.h&quot;. I believe that includes all those other headers.
&gt; 
&gt; &gt; +    void populateFrameLoadRequest(FrameLoadRequest&amp;);
&gt; 
&gt; This should be a const member function.

Not yet -- I still have to modify m_action there. But we&apos;re getting there :)

&gt; 
&gt; &gt; +    void setReferrer(String referrer) { m_referrer = referrer; }
&gt; 
&gt; &gt; +    void setOrigin(String origin) { m_origin = origin; }
&gt; 
&gt; The arguments to these functions should be const String&amp; rather than String.

Done.

&gt; 
&gt; r=me

Landed as http://trac.webkit.org/changeset/61546.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>57811</attachid>
            <date>2010-06-03 14:09:25 -0700</date>
            <delta_ts>2010-06-20 15:17:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-40137-20100603140923.patch</filename>
            <type>text/plain</type>
            <size>19975</size>
            <attacher name="Dimitri Glazkov (Google)">dglazkov</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
NzZjYTJjZDdhNmU5MGQ2MGZmZmNjMTc3YmE3MWQ0NmI5YjU1YTlmMS4uYmVkYTYwZmZlMDI1ZTNj
ODljZTFmYTNjYjIyMjU5NDVmNGJiMGQ3YSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzOCBAQAorMjAxMC0wNi0wMyAgRGlt
aXRyaSBHbGF6a292ICA8ZGdsYXprb3ZAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFBsdW1iIEZvcm1TdWJtaXNzaW9uIHRocm91
Z2ggdG8gU2NoZWR1bGVkRm9ybVN1Ym1pc3Npb24uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MDEzNworCisgICAgICAgIE5vIGJlaGF2aW9yIGNoYW5n
ZSwgY292ZXJlZCBieSBleGlzdGluZyB0ZXN0cy4KKworICAgICAgICAqIGh0bWwvSFRNTEZvcm1F
bGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxGb3JtRWxlbWVudDo6cHJlcGFyZUZv
cm1TdWJtaXNzaW9uKTogTW92ZWQgY3JlYXRpb24gb2YgYWN0aW9uIFVSTAorICAgICAgICAgICAg
aW5zdGFuY2UgaGVyZSBmcm9tIEZyYW1lTG9hZGVyOjpzdWJtaXQsIGJlY2F1c2UgaXQgbWFrZXMg
bW9yZSBzZW5zZSBoZXJlLAorICAgICAgICAgICAgYWxzbyBhZGRlZCBhIEZJWE1FIHRvIGludmVz
dGlnYXRlIGV4aXN0aW5nIGNvZGUgbGF0ZXIuCisgICAgICAgICogbG9hZGVyL0Zvcm1TdWJtaXNz
aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZvcm1TdWJtaXNzaW9uOjpGb3JtU3VibWlzc2lv
bik6IENoYW5nZWQgYWN0aW9uIHRvIGJlIGEgS1VSTCwgbm90IGEgU3RyaW5nLgorICAgICAgICAo
V2ViQ29yZTo6Rm9ybVN1Ym1pc3Npb246OmNyZWF0ZSk6IERpdHRvLgorICAgICAgICAoV2ViQ29y
ZTo6Rm9ybVN1Ym1pc3Npb246OnBvcHVsYXRlRnJhbWVMb2FkUmVxdWVzdCk6IEFkZGVkLCBtb3Zp
bmcgdGhlIGxvZ2ljIGZyb20KKyAgICAgICAgICAgIEZyYW1lTG9hZGVyOjpzdWJtaXQgY2xvc2Vy
IHRvIHRoZSBkYXRhLgorICAgICAgICAqIGxvYWRlci9Gb3JtU3VibWlzc2lvbi5oOgorICAgICAg
ICAoV2ViQ29yZTo6Rm9ybVN1Ym1pc3Npb246OmFjdGlvbik6IENoYW5nZWQgdHlwZSB0byBLVVJM
LgorICAgICAgICAoV2ViQ29yZTo6Rm9ybVN1Ym1pc3Npb246OmNsZWFyVGFyZ2V0KTogQWRkZWQu
CisgICAgICAgIChXZWJDb3JlOjpGb3JtU3VibWlzc2lvbjo6cmVmZXJyZXIpOiBBZGRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OkZvcm1TdWJtaXNzaW9uOjpzZXRSZWZlcnJlcik6IEFkZGVkLgorICAg
ICAgICAoV2ViQ29yZTo6Rm9ybVN1Ym1pc3Npb246Om9yaWdpbik6IEFkZGVkLgorICAgICAgICAo
V2ViQ29yZTo6Rm9ybVN1Ym1pc3Npb246OnNldE9yaWdpbik6IEFkZGVkLgorICAgICAgICAqIGxv
YWRlci9GcmFtZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6c3Vi
bWl0Rm9ybSk6IENsZWFuZWQgdXAgdG8gbWFrZSBpdCBtb3JlIGFib3V0IGRlY2lzaW9uLW1ha2lu
ZywKKyAgICAgICAgICAgIG5vdCBkYXRhIG1hbmlwdWxhdGlvbi4KKyAgICAgICAgKiBsb2FkZXIv
UmVkaXJlY3RTY2hlZHVsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NoZWR1bGVkRm9ybVN1
Ym1pc3Npb246OlNjaGVkdWxlZEZvcm1TdWJtaXNzaW9uKTogQ2hhbmdlZCB0byBhY2NlcHQgRm9y
bVN1Ym1pc3Npb24gYXMgYXJndW1lbnQuCisgICAgICAgIChXZWJDb3JlOjpTY2hlZHVsZWRGb3Jt
U3VibWlzc2lvbjo6ZmlyZSk6IENoYW5nZWQgdG8gdXNlIEZvcm1TdWJtaXNzaW9uLgorICAgICAg
ICAoV2ViQ29yZTo6UmVkaXJlY3RTY2hlZHVsZXI6OnNjaGVkdWxlRm9ybVN1Ym1pc3Npb24pOiBS
ZW1vdmVkIGFzc2VydCB0aGF0IG5vIGxvbmdlciBtYWtlcyBzZW5zZSwKKyAgICAgICAgICAgIGNo
YW5nZWQgdG8gdXNlIEZvcm1TdWJtaXNzaW9uLgorICAgICAgICAqIGxvYWRlci9SZWRpcmVjdFNj
aGVkdWxlci5oOiBVcGRhdGVkIFNjaGVkdWxlZEZvcm1TdWJtaXNzaW9uIGRlY2wgdG8gaG9sZCBG
b3JtU3VibWlzc2lvbiByZWYuCisKIDIwMTAtMDYtMDIgIERpbWl0cmkgR2xhemtvdiAgPGRnbGF6
a292QGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUVsZW1lbnQuY3BwIGIvV2ViQ29yZS9o
dG1sL0hUTUxGb3JtRWxlbWVudC5jcHAKaW5kZXggMjhmNDFkNjdhMzRjMDAyYTI3NjA2ZGYzOTI4
NDE1MDA3MDJjYWNiOC4uMDgwZGQyYTFmODlkNDgzZDQzYTZkOTcxMGYxOTlmODRiNDUyMDkwMSAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxGb3JtRWxlbWVudC5jcHAKKysrIGIvV2ViQ29y
ZS9odG1sL0hUTUxGb3JtRWxlbWVudC5jcHAKQEAgLTI1Miw2ICsyNTIsOCBAQCBQYXNzUmVmUHRy
PEZvcm1TdWJtaXNzaW9uPiBIVE1MRm9ybUVsZW1lbnQ6OnByZXBhcmVGb3JtU3VibWlzc2lvbihF
dmVudCogZXZlbnQsCiAKICAgICBSZWZQdHI8Rm9ybURhdGE+IGZvcm1EYXRhOwogICAgIFN0cmlu
ZyBib3VuZGFyeTsKKyAgICAvLyBGSVhNRTogRmlndXJlIG91dCB3aGV0aGVyIG1fdXJsLmlzTnVs
bCBjaGVjayBpcyBuZWNlc3NhcnkuCisgICAgS1VSTCBhY3Rpb25VUkwgPSBkb2N1bWVudCgpLT5j
b21wbGV0ZVVSTChtX3VybC5pc051bGwoKSA/ICIiIDogbV91cmwpOwogCiAgICAgaWYgKG1fZm9y
bURhdGFCdWlsZGVyLmlzTXVsdGlQYXJ0Rm9ybSgpKSB7CiAgICAgICAgIGZvcm1EYXRhID0gRm9y
bURhdGE6OmNyZWF0ZU11bHRpUGFydCgqZG9tRm9ybURhdGEsIGRvY3VtZW50KCkpOwpAQCAtMjYw
LDkgKzI2Miw5IEBAIFBhc3NSZWZQdHI8Rm9ybVN1Ym1pc3Npb24+IEhUTUxGb3JtRWxlbWVudDo6
cHJlcGFyZUZvcm1TdWJtaXNzaW9uKEV2ZW50KiBldmVudCwKICAgICAgICAgZm9ybURhdGEgPSBG
b3JtRGF0YTo6Y3JlYXRlKCpkb21Gb3JtRGF0YSk7CiAgICAgICAgIGlmIChtX2Zvcm1EYXRhQnVp
bGRlci5pc1Bvc3RNZXRob2QoKSAmJiBpc01haWx0b0Zvcm0oKSkgewogICAgICAgICAgICAgLy8g
Q29udmVydCB0aGUgZm9ybSBkYXRhIGludG8gYSBzdHJpbmcgdGhhdCB3ZSBwdXQgaW50byB0aGUg
VVJMLgotICAgICAgICAgICAgS1VSTCB1cmwgPSBkb2N1bWVudCgpLT5jb21wbGV0ZVVSTChtX3Vy
bCk7Ci0gICAgICAgICAgICBhcHBlbmRNYWlsdG9Qb3N0Rm9ybURhdGFUb1VSTCh1cmwsICpmb3Jt
RGF0YSwgbV9mb3JtRGF0YUJ1aWxkZXIuZW5jb2RpbmdUeXBlKCkpOwotICAgICAgICAgICAgbV91
cmwgPSB1cmwuc3RyaW5nKCk7CisgICAgICAgICAgICBhcHBlbmRNYWlsdG9Qb3N0Rm9ybURhdGFU
b1VSTChhY3Rpb25VUkwsICpmb3JtRGF0YSwgbV9mb3JtRGF0YUJ1aWxkZXIuZW5jb2RpbmdUeXBl
KCkpOworICAgICAgICAgICAgLy8gRklYTUU6IFdoeSBpcyBzZXR0aW5nIG1fdXJsIG5lY2Vzc2Fy
eSBoZXJlPyBUaGlzIHNlZW1zIHdyb25nIGlmIG1haWwgZm9ybSBpcyBzdWJtaXR0ZWQgbXVsdGlw
bGUgdGltZXM/CisgICAgICAgICAgICBtX3VybCA9IGFjdGlvblVSTC5zdHJpbmcoKTsKIAogICAg
ICAgICAgICAgZm9ybURhdGEgPSBGb3JtRGF0YTo6Y3JlYXRlKCk7CiAgICAgICAgIH0KQEAgLTI3
MCw3ICsyNzIsOCBAQCBQYXNzUmVmUHRyPEZvcm1TdWJtaXNzaW9uPiBIVE1MRm9ybUVsZW1lbnQ6
OnByZXBhcmVGb3JtU3VibWlzc2lvbihFdmVudCogZXZlbnQsCiAKICAgICBmb3JtRGF0YS0+c2V0
SWRlbnRpZmllcihnZW5lcmF0ZUZvcm1EYXRhSWRlbnRpZmllcigpKTsKICAgICBGb3JtU3VibWlz
c2lvbjo6TWV0aG9kIG1ldGhvZCA9IG1fZm9ybURhdGFCdWlsZGVyLmlzUG9zdE1ldGhvZCgpID8g
Rm9ybVN1Ym1pc3Npb246OlBvc3RNZXRob2QgOiBGb3JtU3VibWlzc2lvbjo6R2V0TWV0aG9kOwot
ICAgIHJldHVybiBGb3JtU3VibWlzc2lvbjo6Y3JlYXRlKG1ldGhvZCwgbV91cmwsIG1fdGFyZ2V0
LCBtX2Zvcm1EYXRhQnVpbGRlci5lbmNvZGluZ1R5cGUoKSwgRm9ybVN0YXRlOjpjcmVhdGUodGhp
cywgZm9ybVZhbHVlcywgZG9jdW1lbnQoKS0+ZnJhbWUoKSwgdHJpZ2dlciksIGZvcm1EYXRhLnJl
bGVhc2UoKSwgYm91bmRhcnksIGxvY2tIaXN0b3J5LCBldmVudCk7CisgICAgU3RyaW5nIHRhcmdl
dE9yQmFzZVRhcmdldCA9IG1fdGFyZ2V0LmlzRW1wdHkoKSA/IGRvY3VtZW50KCktPmJhc2VUYXJn
ZXQoKSA6IG1fdGFyZ2V0OworICAgIHJldHVybiBGb3JtU3VibWlzc2lvbjo6Y3JlYXRlKG1ldGhv
ZCwgYWN0aW9uVVJMLCB0YXJnZXRPckJhc2VUYXJnZXQsIG1fZm9ybURhdGFCdWlsZGVyLmVuY29k
aW5nVHlwZSgpLCBGb3JtU3RhdGU6OmNyZWF0ZSh0aGlzLCBmb3JtVmFsdWVzLCBkb2N1bWVudCgp
LT5mcmFtZSgpLCB0cmlnZ2VyKSwgZm9ybURhdGEucmVsZWFzZSgpLCBib3VuZGFyeSwgbG9ja0hp
c3RvcnksIGV2ZW50KTsKIH0KIAogYm9vbCBIVE1MRm9ybUVsZW1lbnQ6OmlzTWFpbHRvRm9ybSgp
IGNvbnN0CmRpZmYgLS1naXQgYS9XZWJDb3JlL2xvYWRlci9Gb3JtU3VibWlzc2lvbi5jcHAgYi9X
ZWJDb3JlL2xvYWRlci9Gb3JtU3VibWlzc2lvbi5jcHAKaW5kZXggZGVhN2QxNzdmYzc1MjA5MmY2
MDJkNDVmZDMxODk2YmM1NDI4ZjEzNC4uNGQ0NDE3NDJmMjg4NWQ2NzdjYzg3ZDFjYWJjNGQyYzIz
YWFmMGZhOSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9sb2FkZXIvRm9ybVN1Ym1pc3Npb24uY3BwCisr
KyBiL1dlYkNvcmUvbG9hZGVyL0Zvcm1TdWJtaXNzaW9uLmNwcApAQCAtMzUsMTIgKzM1LDE0IEBA
CiAjaW5jbHVkZSAiRm9ybURhdGEuaCIKICNpbmNsdWRlICJGb3JtU3RhdGUuaCIKICNpbmNsdWRl
ICJGcmFtZS5oIgorI2luY2x1ZGUgIkZyYW1lTG9hZFJlcXVlc3QuaCIKKyNpbmNsdWRlICJGcmFt
ZUxvYWRlci5oIgogI2luY2x1ZGUgIkhUTUxGb3JtRWxlbWVudC5oIgogI2luY2x1ZGUgPHd0Zi9Q
YXNzUmVmUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotRm9ybVN1Ym1pc3Npb246OkZv
cm1TdWJtaXNzaW9uKE1ldGhvZCBtZXRob2QsIGNvbnN0IFN0cmluZyYgYWN0aW9uLCBjb25zdCBT
dHJpbmcmIHRhcmdldCwgY29uc3QgU3RyaW5nJiBjb250ZW50VHlwZSwgUGFzc1JlZlB0cjxGb3Jt
U3RhdGU+IHN0YXRlLCBQYXNzUmVmUHRyPEZvcm1EYXRhPiBkYXRhLCBjb25zdCBTdHJpbmcmIGJv
dW5kYXJ5LCBib29sIGxvY2tIaXN0b3J5LCBQYXNzUmVmUHRyPEV2ZW50PiBldmVudCkKK0Zvcm1T
dWJtaXNzaW9uOjpGb3JtU3VibWlzc2lvbihNZXRob2QgbWV0aG9kLCBjb25zdCBLVVJMJiBhY3Rp
b24sIGNvbnN0IFN0cmluZyYgdGFyZ2V0LCBjb25zdCBTdHJpbmcmIGNvbnRlbnRUeXBlLCBQYXNz
UmVmUHRyPEZvcm1TdGF0ZT4gc3RhdGUsIFBhc3NSZWZQdHI8Rm9ybURhdGE+IGRhdGEsIGNvbnN0
IFN0cmluZyYgYm91bmRhcnksIGJvb2wgbG9ja0hpc3RvcnksIFBhc3NSZWZQdHI8RXZlbnQ+IGV2
ZW50KQogICAgIDogbV9tZXRob2QobWV0aG9kKQogICAgICwgbV9hY3Rpb24oYWN0aW9uKQogICAg
ICwgbV90YXJnZXQodGFyZ2V0KQpAQCAtNTMsMTAgKzU1LDM0IEBAIEZvcm1TdWJtaXNzaW9uOjpG
b3JtU3VibWlzc2lvbihNZXRob2QgbWV0aG9kLCBjb25zdCBTdHJpbmcmIGFjdGlvbiwgY29uc3Qg
U3RyaW5nCiB7CiB9CiAKLQotUGFzc1JlZlB0cjxGb3JtU3VibWlzc2lvbj4gRm9ybVN1Ym1pc3Np
b246OmNyZWF0ZShNZXRob2QgbWV0aG9kLCBjb25zdCBTdHJpbmcmIGFjdGlvbiwgY29uc3QgU3Ry
aW5nJiB0YXJnZXQsIGNvbnN0IFN0cmluZyYgY29udGVudFR5cGUsIFBhc3NSZWZQdHI8Rm9ybVN0
YXRlPiBzdGF0ZSwgUGFzc1JlZlB0cjxGb3JtRGF0YT4gZGF0YSwgY29uc3QgU3RyaW5nJiBib3Vu
ZGFyeSwgYm9vbCBsb2NrSGlzdG9yeSwgUGFzc1JlZlB0cjxFdmVudD4gZXZlbnQpCitQYXNzUmVm
UHRyPEZvcm1TdWJtaXNzaW9uPiBGb3JtU3VibWlzc2lvbjo6Y3JlYXRlKE1ldGhvZCBtZXRob2Qs
IGNvbnN0IEtVUkwmIGFjdGlvbiwgY29uc3QgU3RyaW5nJiB0YXJnZXQsIGNvbnN0IFN0cmluZyYg
Y29udGVudFR5cGUsIFBhc3NSZWZQdHI8Rm9ybVN0YXRlPiBzdGF0ZSwgUGFzc1JlZlB0cjxGb3Jt
RGF0YT4gZGF0YSwgY29uc3QgU3RyaW5nJiBib3VuZGFyeSwgYm9vbCBsb2NrSGlzdG9yeSwgUGFz
c1JlZlB0cjxFdmVudD4gZXZlbnQpCiB7CiAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBGb3JtU3Vi
bWlzc2lvbihtZXRob2QsIGFjdGlvbiwgdGFyZ2V0LCBjb250ZW50VHlwZSwgc3RhdGUsIGRhdGEs
IGJvdW5kYXJ5LCBsb2NrSGlzdG9yeSwgZXZlbnQpKTsKIH0KIAordm9pZCBGb3JtU3VibWlzc2lv
bjo6cG9wdWxhdGVGcmFtZUxvYWRSZXF1ZXN0KEZyYW1lTG9hZFJlcXVlc3QmIGZyYW1lUmVxdWVz
dCkKK3sKKyAgICBpZiAoIW1fdGFyZ2V0LmlzRW1wdHkoKSkKKyAgICAgICAgZnJhbWVSZXF1ZXN0
LnNldEZyYW1lTmFtZShtX3RhcmdldCk7CisKKyAgICBpZiAoIW1fcmVmZXJyZXIuaXNFbXB0eSgp
KQorICAgICAgICBmcmFtZVJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCkuc2V0SFRUUFJlZmVycmVy
KG1fcmVmZXJyZXIpOworCisgICAgaWYgKG1fbWV0aG9kID09IEZvcm1TdWJtaXNzaW9uOjpHZXRN
ZXRob2QpCisgICAgICAgIG1fYWN0aW9uLnNldFF1ZXJ5KG1fZm9ybURhdGEtPmZsYXR0ZW5Ub1N0
cmluZygpKTsKKyAgICBlbHNlIHsKKyAgICAgICAgZnJhbWVSZXF1ZXN0LnJlc291cmNlUmVxdWVz
dCgpLnNldEhUVFBNZXRob2QoIlBPU1QiKTsKKyAgICAgICAgZnJhbWVSZXF1ZXN0LnJlc291cmNl
UmVxdWVzdCgpLnNldEhUVFBCb2R5KG1fZm9ybURhdGEpOworCisgICAgICAgIC8vIGNvbnN0cnVj
dCBzb21lIHVzZXIgaGVhZGVycyBpZiBuZWNlc3NhcnkKKyAgICAgICAgaWYgKG1fY29udGVudFR5
cGUuaXNOdWxsKCkgfHwgbV9jb250ZW50VHlwZSA9PSAiYXBwbGljYXRpb24veC13d3ctZm9ybS11
cmxlbmNvZGVkIikKKyAgICAgICAgICAgIGZyYW1lUmVxdWVzdC5yZXNvdXJjZVJlcXVlc3QoKS5z
ZXRIVFRQQ29udGVudFR5cGUobV9jb250ZW50VHlwZSk7CisgICAgICAgIGVsc2UgLy8gY29udGVu
dFR5cGUgbXVzdCBiZSAibXVsdGlwYXJ0L2Zvcm0tZGF0YSIKKyAgICAgICAgICAgIGZyYW1lUmVx
dWVzdC5yZXNvdXJjZVJlcXVlc3QoKS5zZXRIVFRQQ29udGVudFR5cGUobV9jb250ZW50VHlwZSAr
ICI7IGJvdW5kYXJ5PSIgKyBtX2JvdW5kYXJ5KTsKKyAgICB9CisKKyAgICBmcmFtZVJlcXVlc3Qu
cmVzb3VyY2VSZXF1ZXN0KCkuc2V0VVJMKG1fYWN0aW9uKTsKKyAgICBGcmFtZUxvYWRlcjo6YWRk
SFRUUE9yaWdpbklmTmVlZGVkKGZyYW1lUmVxdWVzdC5yZXNvdXJjZVJlcXVlc3QoKSwgbV9vcmln
aW4pOworfQorCiB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL2xvYWRlci9Gb3JtU3VibWlzc2lvbi5o
IGIvV2ViQ29yZS9sb2FkZXIvRm9ybVN1Ym1pc3Npb24uaAppbmRleCAwOTViZDM5MzEzYTRhNjBh
NWYwZDEyMGFiODM4MDU3ZTQ0YjA1MGJmLi5lZDFmYzQzODUyYTNhMzhjN2IxOWY1M2VhZTI4M2Zh
NTQ4Y2M4YjlhIDEwMDY0NAotLS0gYS9XZWJDb3JlL2xvYWRlci9Gb3JtU3VibWlzc2lvbi5oCisr
KyBiL1dlYkNvcmUvbG9hZGVyL0Zvcm1TdWJtaXNzaW9uLmgKQEAgLTMxLDYgKzMxLDcgQEAKICNp
Zm5kZWYgRm9ybVN1Ym1pc3Npb25faAogI2RlZmluZSBGb3JtU3VibWlzc2lvbl9oCiAKKyNpbmNs
dWRlICJLVVJMLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKICNpbmNsdWRlIDx3dGYv
Rm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CkBAIC00MCw2ICs0MSw3IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIEV2ZW50OwogY2xhc3MgRm9ybURhdGE7CiBjbGFz
cyBGb3JtU3RhdGU7CitjbGFzcyBGcmFtZUxvYWRSZXF1ZXN0OwogCiBjbGFzcyBGb3JtU3VibWlz
c2lvbiA6IHB1YmxpYyBSZWZDb3VudGVkPEZvcm1TdWJtaXNzaW9uPiB7CiBwdWJsaWM6CkBAIC00
OCwxMSArNTAsMTQgQEAgcHVibGljOgogICAgICAgICBQb3N0TWV0aG9kCiAgICAgfTsKIAotICAg
IHN0YXRpYyBQYXNzUmVmUHRyPEZvcm1TdWJtaXNzaW9uPiBjcmVhdGUoTWV0aG9kLCBjb25zdCBT
dHJpbmcmIGFjdGlvbiwgY29uc3QgU3RyaW5nJiB0YXJnZXQsIGNvbnN0IFN0cmluZyYgY29udGVu
dFR5cGUsIFBhc3NSZWZQdHI8Rm9ybVN0YXRlPiwgUGFzc1JlZlB0cjxGb3JtRGF0YT4sIGNvbnN0
IFN0cmluZyYgYm91bmRhcnksIGJvb2wgbG9ja0hpc3RvcnksIFBhc3NSZWZQdHI8RXZlbnQ+KTsK
KyAgICBzdGF0aWMgUGFzc1JlZlB0cjxGb3JtU3VibWlzc2lvbj4gY3JlYXRlKE1ldGhvZCwgY29u
c3QgS1VSTCYgYWN0aW9uLCBjb25zdCBTdHJpbmcmIHRhcmdldCwgY29uc3QgU3RyaW5nJiBjb250
ZW50VHlwZSwgUGFzc1JlZlB0cjxGb3JtU3RhdGU+LCBQYXNzUmVmUHRyPEZvcm1EYXRhPiwgY29u
c3QgU3RyaW5nJiBib3VuZGFyeSwgYm9vbCBsb2NrSGlzdG9yeSwgUGFzc1JlZlB0cjxFdmVudD4p
OworCisgICAgdm9pZCBwb3B1bGF0ZUZyYW1lTG9hZFJlcXVlc3QoRnJhbWVMb2FkUmVxdWVzdCYp
OwogCiAgICAgTWV0aG9kIG1ldGhvZCgpIGNvbnN0IHsgcmV0dXJuIG1fbWV0aG9kOyB9Ci0gICAg
U3RyaW5nIGFjdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fYWN0aW9uOyB9CisgICAgY29uc3QgS1VS
TCYgYWN0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9hY3Rpb247IH0KICAgICBTdHJpbmcgdGFyZ2V0
KCkgY29uc3QgeyByZXR1cm4gbV90YXJnZXQ7IH0KKyAgICB2b2lkIGNsZWFyVGFyZ2V0KCkgeyBt
X3RhcmdldCA9IFN0cmluZygpOyB9CiAgICAgU3RyaW5nIGNvbnRlbnRUeXBlKCkgY29uc3QgeyBy
ZXR1cm4gbV9jb250ZW50VHlwZTsgfQogICAgIEZvcm1TdGF0ZSogc3RhdGUoKSBjb25zdCB7IHJl
dHVybiBtX2Zvcm1TdGF0ZS5nZXQoKTsgfQogICAgIEZvcm1EYXRhKiBkYXRhKCkgY29uc3QgeyBy
ZXR1cm4gbV9mb3JtRGF0YS5nZXQoKTsgfQpAQCAtNjAsMTEgKzY1LDE2IEBAIHB1YmxpYzoKICAg
ICBib29sIGxvY2tIaXN0b3J5KCkgY29uc3QgeyByZXR1cm4gbV9sb2NrSGlzdG9yeTsgfQogICAg
IEV2ZW50KiBldmVudCgpIGNvbnN0IHsgcmV0dXJuIG1fZXZlbnQuZ2V0KCk7IH0KIAorICAgIGNv
bnN0IFN0cmluZyYgcmVmZXJyZXIoKSBjb25zdCB7IHJldHVybiBtX3JlZmVycmVyOyB9CisgICAg
dm9pZCBzZXRSZWZlcnJlcihTdHJpbmcgcmVmZXJyZXIpIHsgbV9yZWZlcnJlciA9IHJlZmVycmVy
OyB9CisgICAgY29uc3QgU3RyaW5nJiBvcmlnaW4oKSBjb25zdCB7IHJldHVybiBtX29yaWdpbjsg
fQorICAgIHZvaWQgc2V0T3JpZ2luKFN0cmluZyBvcmlnaW4pIHsgbV9vcmlnaW4gPSBvcmlnaW47
IH0KKwogcHJpdmF0ZToKLSAgICBGb3JtU3VibWlzc2lvbihNZXRob2QsIGNvbnN0IFN0cmluZyYg
YWN0aW9uLCBjb25zdCBTdHJpbmcmIHRhcmdldCwgY29uc3QgU3RyaW5nJiBjb250ZW50VHlwZSwg
UGFzc1JlZlB0cjxGb3JtU3RhdGU+LCBQYXNzUmVmUHRyPEZvcm1EYXRhPiwgY29uc3QgU3RyaW5n
JiBib3VuZGFyeSwgYm9vbCBsb2NrSGlzdG9yeSwgUGFzc1JlZlB0cjxFdmVudD4pOworICAgIEZv
cm1TdWJtaXNzaW9uKE1ldGhvZCwgY29uc3QgS1VSTCYgYWN0aW9uLCBjb25zdCBTdHJpbmcmIHRh
cmdldCwgY29uc3QgU3RyaW5nJiBjb250ZW50VHlwZSwgUGFzc1JlZlB0cjxGb3JtU3RhdGU+LCBQ
YXNzUmVmUHRyPEZvcm1EYXRhPiwgY29uc3QgU3RyaW5nJiBib3VuZGFyeSwgYm9vbCBsb2NrSGlz
dG9yeSwgUGFzc1JlZlB0cjxFdmVudD4pOwogCiAgICAgTWV0aG9kIG1fbWV0aG9kOwotICAgIFN0
cmluZyBtX2FjdGlvbjsKKyAgICBLVVJMIG1fYWN0aW9uOwogICAgIFN0cmluZyBtX3RhcmdldDsK
ICAgICBTdHJpbmcgbV9jb250ZW50VHlwZTsKICAgICBSZWZQdHI8Rm9ybVN0YXRlPiBtX2Zvcm1T
dGF0ZTsKQEAgLTcyLDYgKzgyLDggQEAgcHJpdmF0ZToKICAgICBTdHJpbmcgbV9ib3VuZGFyeTsK
ICAgICBib29sIG1fbG9ja0hpc3Rvcnk7CiAgICAgUmVmUHRyPEV2ZW50PiBtX2V2ZW50OworICAg
IFN0cmluZyBtX3JlZmVycmVyOworICAgIFN0cmluZyBtX29yaWdpbjsKIH07CiAKIH0KZGlmZiAt
LWdpdCBhL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcCBiL1dlYkNvcmUvbG9hZGVyL0Zy
YW1lTG9hZGVyLmNwcAppbmRleCA5Zjk1MDQ3NjJmMzQ1MDdkNjI4NjkyMDk3ZGU5ODU3MjVhNTBm
ZTRiLi4wMDAwNjRmNDQyNmMwMjhhZTkyMWYyZGFhYjA2NTM2ZjZjZjA5NDczIDEwMDY0NAotLS0g
YS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKKysrIGIvV2ViQ29yZS9sb2FkZXIvRnJh
bWVMb2FkZXIuY3BwCkBAIC00NjQsNDQgKzQ2NCwzMCBAQCBGcmFtZSogRnJhbWVMb2FkZXI6Omxv
YWRTdWJmcmFtZShIVE1MRnJhbWVPd25lckVsZW1lbnQqIG93bmVyRWxlbWVudCwgY29uc3QgS1VS
TAogCiB2b2lkIEZyYW1lTG9hZGVyOjpzdWJtaXRGb3JtKFBhc3NSZWZQdHI8Rm9ybVN1Ym1pc3Np
b24+IHN1Ym1pc3Npb24pCiB7Ci0gICAgLy8gRklYTUU6IFBsdW1iIHRoaXMgZnVydGhlciBpbi4K
LSAgICBjb25zdCBjaGFyKiBhY3Rpb24gPSBzdWJtaXNzaW9uLT5tZXRob2QoKSA9PSBGb3JtU3Vi
bWlzc2lvbjo6UG9zdE1ldGhvZCA/ICJQT1NUIiA6ICJHRVQiOwotICAgIFJlZlB0cjxGb3JtRGF0
YT4gZm9ybURhdGEgPSBzdWJtaXNzaW9uLT5kYXRhKCk7Ci0gICAgUmVmUHRyPEZvcm1TdGF0ZT4g
Zm9ybVN0YXRlID0gc3VibWlzc2lvbi0+c3RhdGUoKTsKLSAgICBTdHJpbmcgdXJsID0gc3VibWlz
c2lvbi0+YWN0aW9uKCk7Ci0gICAgU3RyaW5nIHRhcmdldCA9IHN1Ym1pc3Npb24tPnRhcmdldCgp
OwotICAgIFN0cmluZyBib3VuZGFyeSA9IHN1Ym1pc3Npb24tPmJvdW5kYXJ5KCk7Ci0gICAgU3Ry
aW5nIGNvbnRlbnRUeXBlID0gc3VibWlzc2lvbi0+Y29udGVudFR5cGUoKTsKLSAgICBib29sIGxv
Y2tIaXN0b3J5ID0gc3VibWlzc2lvbi0+bG9ja0hpc3RvcnkoKTsKLSAgICBSZWZQdHI8RXZlbnQ+
IGV2ZW50ID0gc3VibWlzc2lvbi0+ZXZlbnQoKTsKLQotICAgIEFTU0VSVChhY3Rpb24pOwotICAg
IEFTU0VSVChzdHJjbXAoYWN0aW9uLCAiR0VUIikgPT0gMCB8fCBzdHJjbXAoYWN0aW9uLCAiUE9T
VCIpID09IDApOwotICAgIEFTU0VSVChmb3JtRGF0YSk7Ci0gICAgQVNTRVJUKGZvcm1TdGF0ZSk7
Ci0gICAgQVNTRVJUKGZvcm1TdGF0ZS0+c291cmNlRnJhbWUoKSA9PSBtX2ZyYW1lKTsKKyAgICBB
U1NFUlQoc3VibWlzc2lvbi0+bWV0aG9kKCkgPT0gRm9ybVN1Ym1pc3Npb246OlBvc3RNZXRob2Qg
fHwgc3VibWlzc2lvbi0+bWV0aG9kKCkgPT0gRm9ybVN1Ym1pc3Npb246OkdldE1ldGhvZCk7CisK
KyAgICAvLyBGSVhNRTogRmluZCBhIGdvb2Qgc3BvdCBmb3IgdGhlc2UuCisgICAgQVNTRVJUKHN1
Ym1pc3Npb24tPmRhdGEoKSk7CisgICAgQVNTRVJUKHN1Ym1pc3Npb24tPnN0YXRlKCkpOworICAg
IEFTU0VSVChzdWJtaXNzaW9uLT5zdGF0ZSgpLT5zb3VyY2VGcmFtZSgpID09IG1fZnJhbWUpOwog
ICAgIAogICAgIGlmICghbV9mcmFtZS0+cGFnZSgpKQogICAgICAgICByZXR1cm47CiAgICAgCi0g
ICAgS1VSTCB1ID0gY29tcGxldGVVUkwodXJsLmlzTnVsbCgpID8gIiIgOiB1cmwpOwotICAgIGlm
ICh1LmlzRW1wdHkoKSkKKyAgICBpZiAoc3VibWlzc2lvbi0+YWN0aW9uKCkuaXNFbXB0eSgpKQog
ICAgICAgICByZXR1cm47CiAKICAgICBpZiAoaXNEb2N1bWVudFNhbmRib3hlZChtX2ZyYW1lLCBT
YW5kYm94Rm9ybXMpKQogICAgICAgICByZXR1cm47CiAKLSAgICBpZiAocHJvdG9jb2xJc0phdmFT
Y3JpcHQodSkpIHsKKyAgICBpZiAocHJvdG9jb2xJc0phdmFTY3JpcHQoc3VibWlzc2lvbi0+YWN0
aW9uKCkpKSB7CiAgICAgICAgIG1faXNFeGVjdXRpbmdKYXZhU2NyaXB0Rm9ybUFjdGlvbiA9IHRy
dWU7Ci0gICAgICAgIG1fZnJhbWUtPnNjcmlwdCgpLT5leGVjdXRlSWZKYXZhU2NyaXB0VVJMKHUs
IGZhbHNlLCBEb05vdFJlcGxhY2VEb2N1bWVudElmSmF2YVNjcmlwdFVSTCk7CisgICAgICAgIG1f
ZnJhbWUtPnNjcmlwdCgpLT5leGVjdXRlSWZKYXZhU2NyaXB0VVJMKHN1Ym1pc3Npb24tPmFjdGlv
bigpLCBmYWxzZSwgRG9Ob3RSZXBsYWNlRG9jdW1lbnRJZkphdmFTY3JpcHRVUkwpOwogICAgICAg
ICBtX2lzRXhlY3V0aW5nSmF2YVNjcmlwdEZvcm1BY3Rpb24gPSBmYWxzZTsKICAgICAgICAgcmV0
dXJuOwogICAgIH0KIAotICAgIEZyYW1lTG9hZFJlcXVlc3QgZnJhbWVSZXF1ZXN0OwotCi0gICAg
U3RyaW5nIHRhcmdldE9yQmFzZVRhcmdldCA9IHRhcmdldC5pc0VtcHR5KCkgPyBtX2ZyYW1lLT5k
b2N1bWVudCgpLT5iYXNlVGFyZ2V0KCkgOiB0YXJnZXQ7Ci0gICAgRnJhbWUqIHRhcmdldEZyYW1l
ID0gbV9mcmFtZS0+dHJlZSgpLT5maW5kKHRhcmdldE9yQmFzZVRhcmdldCk7CisgICAgRnJhbWUq
IHRhcmdldEZyYW1lID0gbV9mcmFtZS0+dHJlZSgpLT5maW5kKHN1Ym1pc3Npb24tPnRhcmdldCgp
KTsKICAgICBpZiAoIXNob3VsZEFsbG93TmF2aWdhdGlvbih0YXJnZXRGcmFtZSkpCiAgICAgICAg
IHJldHVybjsKICAgICBpZiAoIXRhcmdldEZyYW1lKSB7CkBAIC01MDksOCArNDk1LDkgQEAgdm9p
ZCBGcmFtZUxvYWRlcjo6c3VibWl0Rm9ybShQYXNzUmVmUHRyPEZvcm1TdWJtaXNzaW9uPiBzdWJt
aXNzaW9uKQogICAgICAgICAgICAgcmV0dXJuOwogCiAgICAgICAgIHRhcmdldEZyYW1lID0gbV9m
cmFtZTsKLSAgICAgICAgZnJhbWVSZXF1ZXN0LnNldEZyYW1lTmFtZSh0YXJnZXRPckJhc2VUYXJn
ZXQpOwotICAgIH0KKyAgICB9IGVsc2UKKyAgICAgICAgc3VibWlzc2lvbi0+Y2xlYXJUYXJnZXQo
KTsKKwogICAgIGlmICghdGFyZ2V0RnJhbWUtPnBhZ2UoKSkKICAgICAgICAgcmV0dXJuOwogCkBA
IC01MjcsMzMgKzUxNCwxNiBAQCB2b2lkIEZyYW1lTG9hZGVyOjpzdWJtaXRGb3JtKFBhc3NSZWZQ
dHI8Rm9ybVN1Ym1pc3Npb24+IHN1Ym1pc3Npb24pCiAgICAgLy8gbmVlZGVkIGFueSBtb3JlIG5v
dyB0aGF0IHdlIHJlc2V0IG1fc3VibWl0dGVkRm9ybVVSTCBvbiBlYWNoIG1vdXNlIG9yIGtleSBk
b3duIGV2ZW50LgogCiAgICAgaWYgKG1fZnJhbWUtPnRyZWUoKS0+aXNEZXNjZW5kYW50T2YodGFy
Z2V0RnJhbWUpKSB7Ci0gICAgICAgIGlmIChtX3N1Ym1pdHRlZEZvcm1VUkwgPT0gdSkKKyAgICAg
ICAgaWYgKG1fc3VibWl0dGVkRm9ybVVSTCA9PSBzdWJtaXNzaW9uLT5hY3Rpb24oKSkKICAgICAg
ICAgICAgIHJldHVybjsKLSAgICAgICAgbV9zdWJtaXR0ZWRGb3JtVVJMID0gdTsKLSAgICB9Ci0K
LSAgICBmb3JtRGF0YS0+Z2VuZXJhdGVGaWxlcyhtX2ZyYW1lLT5kb2N1bWVudCgpKTsKLSAgICAK
LSAgICBpZiAoIW1fb3V0Z29pbmdSZWZlcnJlci5pc0VtcHR5KCkpCi0gICAgICAgIGZyYW1lUmVx
dWVzdC5yZXNvdXJjZVJlcXVlc3QoKS5zZXRIVFRQUmVmZXJyZXIobV9vdXRnb2luZ1JlZmVycmVy
KTsKLQotICAgIGlmIChzdHJjbXAoYWN0aW9uLCAiR0VUIikgPT0gMCkKLSAgICAgICAgdS5zZXRR
dWVyeShmb3JtRGF0YS0+ZmxhdHRlblRvU3RyaW5nKCkpOwotICAgIGVsc2UgewotICAgICAgICBm
cmFtZVJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCkuc2V0SFRUUE1ldGhvZCgiUE9TVCIpOwotICAg
ICAgICBmcmFtZVJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCkuc2V0SFRUUEJvZHkoZm9ybURhdGEp
OwotCi0gICAgICAgIC8vIGNvbnN0cnVjdCBzb21lIHVzZXIgaGVhZGVycyBpZiBuZWNlc3NhcnkK
LSAgICAgICAgaWYgKGNvbnRlbnRUeXBlLmlzTnVsbCgpIHx8IGNvbnRlbnRUeXBlID09ICJhcHBs
aWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiKQotICAgICAgICAgICAgZnJhbWVSZXF1ZXN0
LnJlc291cmNlUmVxdWVzdCgpLnNldEhUVFBDb250ZW50VHlwZShjb250ZW50VHlwZSk7Ci0gICAg
ICAgIGVsc2UgLy8gY29udGVudFR5cGUgbXVzdCBiZSAibXVsdGlwYXJ0L2Zvcm0tZGF0YSIKLSAg
ICAgICAgICAgIGZyYW1lUmVxdWVzdC5yZXNvdXJjZVJlcXVlc3QoKS5zZXRIVFRQQ29udGVudFR5
cGUoY29udGVudFR5cGUgKyAiOyBib3VuZGFyeT0iICsgYm91bmRhcnkpOworICAgICAgICBtX3N1
Ym1pdHRlZEZvcm1VUkwgPSBzdWJtaXNzaW9uLT5hY3Rpb24oKTsKICAgICB9CiAKLSAgICBmcmFt
ZVJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCkuc2V0VVJMKHUpOwotICAgIGFkZEhUVFBPcmlnaW5J
Zk5lZWRlZChmcmFtZVJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCksIG91dGdvaW5nT3JpZ2luKCkp
OworICAgIHN1Ym1pc3Npb24tPmRhdGEoKS0+Z2VuZXJhdGVGaWxlcyhtX2ZyYW1lLT5kb2N1bWVu
dCgpKTsKKyAgICBzdWJtaXNzaW9uLT5zZXRSZWZlcnJlcihtX291dGdvaW5nUmVmZXJyZXIpOwor
ICAgIHN1Ym1pc3Npb24tPnNldE9yaWdpbihvdXRnb2luZ09yaWdpbigpKTsKIAotICAgIHRhcmdl
dEZyYW1lLT5yZWRpcmVjdFNjaGVkdWxlcigpLT5zY2hlZHVsZUZvcm1TdWJtaXNzaW9uKGZyYW1l
UmVxdWVzdCwgbG9ja0hpc3RvcnksIGV2ZW50LCBmb3JtU3RhdGUpOworICAgIHRhcmdldEZyYW1l
LT5yZWRpcmVjdFNjaGVkdWxlcigpLT5zY2hlZHVsZUZvcm1TdWJtaXNzaW9uKHN1Ym1pc3Npb24p
OwogfQogCiB2b2lkIEZyYW1lTG9hZGVyOjpzdG9wTG9hZGluZyhVbmxvYWRFdmVudFBvbGljeSB1
bmxvYWRFdmVudFBvbGljeSwgRGF0YWJhc2VQb2xpY3kgZGF0YWJhc2VQb2xpY3kpCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL2xvYWRlci9SZWRpcmVjdFNjaGVkdWxlci5jcHAgYi9XZWJDb3JlL2xvYWRl
ci9SZWRpcmVjdFNjaGVkdWxlci5jcHAKaW5kZXggYjRjODZkNGY4NzIxNWY5ZDMyNGVlODczYjQ4
YTQzNjIwN2Q4YWQxMC4uNDlmMGU5ZDgyYjU0NDIzYTc3MjMxZThlODMxZTIwMzg1ZGU1NzFkYiAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9sb2FkZXIvUmVkaXJlY3RTY2hlZHVsZXIuY3BwCisrKyBiL1dl
YkNvcmUvbG9hZGVyL1JlZGlyZWN0U2NoZWR1bGVyLmNwcApAQCAtMzYsNiArMzYsNyBAQAogI2lu
Y2x1ZGUgIkRvY3VtZW50TG9hZGVyLmgiCiAjaW5jbHVkZSAiRXZlbnQuaCIKICNpbmNsdWRlICJG
b3JtU3RhdGUuaCIKKyNpbmNsdWRlICJGb3JtU3VibWlzc2lvbi5oIgogI2luY2x1ZGUgIkZyYW1l
LmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkUmVxdWVzdC5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVy
LmgiCkBAIC0xNzAsMTUgKzE3MSwxMiBAQCBwcml2YXRlOgogCiBjbGFzcyBTY2hlZHVsZWRGb3Jt
U3VibWlzc2lvbiA6IHB1YmxpYyBTY2hlZHVsZWROYXZpZ2F0aW9uIHsKIHB1YmxpYzoKLSAgICBT
Y2hlZHVsZWRGb3JtU3VibWlzc2lvbihjb25zdCBGcmFtZUxvYWRSZXF1ZXN0JiBmcmFtZVJlcXVl
c3QsIGJvb2wgbG9ja0hpc3RvcnksIGJvb2wgbG9ja0JhY2tGb3J3YXJkTGlzdCwgUGFzc1JlZlB0
cjxFdmVudD4gZXZlbnQsIFBhc3NSZWZQdHI8Rm9ybVN0YXRlPiBmb3JtU3RhdGUsIGJvb2wgZHVy
aW5nTG9hZCkKLSAgICAgICAgOiBTY2hlZHVsZWROYXZpZ2F0aW9uKDAsIGxvY2tIaXN0b3J5LCBs
b2NrQmFja0ZvcndhcmRMaXN0LCBkdXJpbmdMb2FkLCB0cnVlKQotICAgICAgICAsIG1fZnJhbWVS
ZXF1ZXN0KGZyYW1lUmVxdWVzdCkKLSAgICAgICAgLCBtX2V2ZW50KGV2ZW50KQotICAgICAgICAs
IG1fZm9ybVN0YXRlKGZvcm1TdGF0ZSkKKyAgICBTY2hlZHVsZWRGb3JtU3VibWlzc2lvbihQYXNz
UmVmUHRyPEZvcm1TdWJtaXNzaW9uPiBzdWJtaXNzaW9uLCBib29sIGxvY2tCYWNrRm9yd2FyZExp
c3QsIGJvb2wgZHVyaW5nTG9hZCkKKyAgICAgICAgOiBTY2hlZHVsZWROYXZpZ2F0aW9uKDAsIHN1
Ym1pc3Npb24tPmxvY2tIaXN0b3J5KCksIGxvY2tCYWNrRm9yd2FyZExpc3QsIGR1cmluZ0xvYWQs
IHRydWUpCisgICAgICAgICwgbV9zdWJtaXNzaW9uKHN1Ym1pc3Npb24pCiAgICAgICAgICwgbV93
YXNQcm9jZXNzaW5nVXNlckdlc3R1cmUoVXNlckdlc3R1cmVJbmRpY2F0b3I6OnByb2Nlc3NpbmdV
c2VyR2VzdHVyZSgpKQogICAgIHsKLSAgICAgICAgQVNTRVJUKCFmcmFtZVJlcXVlc3QuaXNFbXB0
eSgpKTsKLSAgICAgICAgQVNTRVJUKG1fZm9ybVN0YXRlKTsKKyAgICAgICAgQVNTRVJUKG1fc3Vi
bWlzc2lvbi0+c3RhdGUoKSk7CiAgICAgfQogCiAgICAgdmlydHVhbCB2b2lkIGZpcmUoRnJhbWUq
IGZyYW1lKQpAQCAtMTg5LDkgKzE4NywxMSBAQCBwdWJsaWM6CiAgICAgICAgIC8vIE5vdyB0aGF0
IHRoZSB0aW1lciBoYXMgZmlyZWQsIHdlIG5lZWQgdG8gcmVwZWF0IHRoZSBzZWN1cml0eSBjaGVj
ayB3aGljaCBub3JtYWxseSBpcyBkb25lIHdoZW4KICAgICAgICAgLy8gc2VsZWN0aW5nIGEgdGFy
Z2V0LCBpbiBjYXNlIGNvbmRpdGlvbnMgaGF2ZSBjaGFuZ2VkLiBPdGhlciBjb2RlIHBhdGhzIGF2
b2lkIHRoaXMgYnkgdGFyZ2V0aW5nCiAgICAgICAgIC8vIHdpdGhvdXQgbGVhdmluZyBhIHRpbWUg
d2luZG93LiBJZiB3ZSBmYWlsIHRoZSBjaGVjayBqdXN0IHNpbGVudGx5IGRyb3AgdGhlIGZvcm0g
c3VibWlzc2lvbi4KLSAgICAgICAgaWYgKCFtX2Zvcm1TdGF0ZS0+c291cmNlRnJhbWUoKS0+bG9h
ZGVyKCktPnNob3VsZEFsbG93TmF2aWdhdGlvbihmcmFtZSkpCisgICAgICAgIGlmICghbV9zdWJt
aXNzaW9uLT5zdGF0ZSgpLT5zb3VyY2VGcmFtZSgpLT5sb2FkZXIoKS0+c2hvdWxkQWxsb3dOYXZp
Z2F0aW9uKGZyYW1lKSkKICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgZnJhbWUtPmxvYWRl
cigpLT5sb2FkRnJhbWVSZXF1ZXN0KG1fZnJhbWVSZXF1ZXN0LCBsb2NrSGlzdG9yeSgpLCBsb2Nr
QmFja0ZvcndhcmRMaXN0KCksIG1fZXZlbnQsIG1fZm9ybVN0YXRlLCBTZW5kUmVmZXJyZXIpOwor
ICAgICAgICBGcmFtZUxvYWRSZXF1ZXN0IGZyYW1lUmVxdWVzdDsKKyAgICAgICAgbV9zdWJtaXNz
aW9uLT5wb3B1bGF0ZUZyYW1lTG9hZFJlcXVlc3QoZnJhbWVSZXF1ZXN0KTsKKyAgICAgICAgZnJh
bWUtPmxvYWRlcigpLT5sb2FkRnJhbWVSZXF1ZXN0KGZyYW1lUmVxdWVzdCwgbG9ja0hpc3Rvcnko
KSwgbG9ja0JhY2tGb3J3YXJkTGlzdCgpLCBtX3N1Ym1pc3Npb24tPmV2ZW50KCksIG1fc3VibWlz
c2lvbi0+c3RhdGUoKSwgU2VuZFJlZmVycmVyKTsKICAgICB9CiAKICAgICAvLyBGSVhNRTogSW1w
bGVtZW50IGRpZFN0YXJ0VGltZXI/IEl0IHdvdWxkIG1ha2Ugc2Vuc2UgdG8gcmVwb3J0IGZvcm0K
QEAgLTIwMCw5ICsyMDAsNyBAQCBwdWJsaWM6CiAgICAgLy8gYmUgYSBiZWhhdmlvciBjaGFuZ2Uu
CiAKIHByaXZhdGU6Ci0gICAgY29uc3QgRnJhbWVMb2FkUmVxdWVzdCBtX2ZyYW1lUmVxdWVzdDsK
LSAgICBjb25zdCBSZWZQdHI8RXZlbnQ+IG1fZXZlbnQ7Ci0gICAgY29uc3QgUmVmUHRyPEZvcm1T
dGF0ZT4gbV9mb3JtU3RhdGU7CisgICAgUmVmUHRyPEZvcm1TdWJtaXNzaW9uPiBtX3N1Ym1pc3Np
b247CiAgICAgYm9vbCBtX3dhc1Byb2Nlc3NpbmdVc2VyR2VzdHVyZTsKIH07CiAKQEAgLTI4Niwx
MSArMjg0LDkgQEAgdm9pZCBSZWRpcmVjdFNjaGVkdWxlcjo6c2NoZWR1bGVMb2NhdGlvbkNoYW5n
ZShjb25zdCBTdHJpbmcmIHVybCwgY29uc3QgU3RyaW5nJgogICAgIHNjaGVkdWxlKG5ldyBTY2hl
ZHVsZWRMb2NhdGlvbkNoYW5nZSh1cmwsIHJlZmVycmVyLCBsb2NrSGlzdG9yeSwgbG9ja0JhY2tG
b3J3YXJkTGlzdCwgd2FzVXNlckdlc3R1cmUsIGR1cmluZ0xvYWQpKTsKIH0KIAotdm9pZCBSZWRp
cmVjdFNjaGVkdWxlcjo6c2NoZWR1bGVGb3JtU3VibWlzc2lvbihjb25zdCBGcmFtZUxvYWRSZXF1
ZXN0JiBmcmFtZVJlcXVlc3QsCi0gICAgYm9vbCBsb2NrSGlzdG9yeSwgUGFzc1JlZlB0cjxFdmVu
dD4gZXZlbnQsIFBhc3NSZWZQdHI8Rm9ybVN0YXRlPiBmb3JtU3RhdGUpCit2b2lkIFJlZGlyZWN0
U2NoZWR1bGVyOjpzY2hlZHVsZUZvcm1TdWJtaXNzaW9uKFBhc3NSZWZQdHI8Rm9ybVN1Ym1pc3Np
b24+IHN1Ym1pc3Npb24pCiB7CiAgICAgQVNTRVJUKG1fZnJhbWUtPnBhZ2UoKSk7Ci0gICAgQVNT
RVJUKCFmcmFtZVJlcXVlc3QuaXNFbXB0eSgpKTsKIAogICAgIC8vIEZJWE1FOiBEbyB3ZSBuZWVk
IHNwZWNpYWwgaGFuZGxpbmcgZm9yIGZvcm0gc3VibWlzc2lvbnMgd2hlcmUgdGhlIFVSTCBpcyB0
aGUgc2FtZQogICAgIC8vIGFzIHRoZSBjdXJyZW50IG9uZSBleGNlcHQgZm9yIHRoZSBmcmFnbWVu
dCBwYXJ0PyBTZWUgc2NoZWR1bGVMb2NhdGlvbkNoYW5nZSBhYm92ZS4KQEAgLTMwMyw5ICsyOTks
OSBAQCB2b2lkIFJlZGlyZWN0U2NoZWR1bGVyOjpzY2hlZHVsZUZvcm1TdWJtaXNzaW9uKGNvbnN0
IEZyYW1lTG9hZFJlcXVlc3QmIGZyYW1lUmVxdQogICAgIC8vIHRvIG1hdGNoIElFIGFuZCBPcGVy
YS4KICAgICAvLyBTZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMy
MzgzIGZvciB0aGUgb3JpZ2luYWwgbW90aXZhdGlvbiBmb3IgdGhpcy4KIAotICAgIGJvb2wgbG9j
a0JhY2tGb3J3YXJkTGlzdCA9IG11c3RMb2NrQmFja0ZvcndhcmRMaXN0KG1fZnJhbWUpIHx8IChm
b3JtU3RhdGUtPmZvcm1TdWJtaXNzaW9uVHJpZ2dlcigpID09IFN1Ym1pdHRlZEJ5SmF2YVNjcmlw
dCAmJiBtX2ZyYW1lLT50cmVlKCktPnBhcmVudCgpKTsKKyAgICBib29sIGxvY2tCYWNrRm9yd2Fy
ZExpc3QgPSBtdXN0TG9ja0JhY2tGb3J3YXJkTGlzdChtX2ZyYW1lKSB8fCAoc3VibWlzc2lvbi0+
c3RhdGUoKS0+Zm9ybVN1Ym1pc3Npb25UcmlnZ2VyKCkgPT0gU3VibWl0dGVkQnlKYXZhU2NyaXB0
ICYmIG1fZnJhbWUtPnRyZWUoKS0+cGFyZW50KCkpOwogCi0gICAgc2NoZWR1bGUobmV3IFNjaGVk
dWxlZEZvcm1TdWJtaXNzaW9uKGZyYW1lUmVxdWVzdCwgbG9ja0hpc3RvcnksIGxvY2tCYWNrRm9y
d2FyZExpc3QsIGV2ZW50LCBmb3JtU3RhdGUsIGR1cmluZ0xvYWQpKTsKKyAgICBzY2hlZHVsZShu
ZXcgU2NoZWR1bGVkRm9ybVN1Ym1pc3Npb24oc3VibWlzc2lvbiwgbG9ja0JhY2tGb3J3YXJkTGlz
dCwgZHVyaW5nTG9hZCkpOwogfQogCiB2b2lkIFJlZGlyZWN0U2NoZWR1bGVyOjpzY2hlZHVsZVJl
ZnJlc2goYm9vbCB3YXNVc2VyR2VzdHVyZSkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvbG9hZGVyL1Jl
ZGlyZWN0U2NoZWR1bGVyLmggYi9XZWJDb3JlL2xvYWRlci9SZWRpcmVjdFNjaGVkdWxlci5oCmlu
ZGV4IGFjMzczMWM2MGQxMjRjMWU5ZjYxNjQxM2RkZjQ1MmJlOWY0OGQyY2QuLmU5ZDA0ZGM2ZDM2
OTYwYTc3NmRkZjYwZWQ4OWEzZDhiYjUyZDM2NjkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvbG9hZGVy
L1JlZGlyZWN0U2NoZWR1bGVyLmgKKysrIGIvV2ViQ29yZS9sb2FkZXIvUmVkaXJlY3RTY2hlZHVs
ZXIuaApAQCAtNDAsNiArNDAsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBGb3Jt
U3RhdGU7CitjbGFzcyBGb3JtU3VibWlzc2lvbjsKIGNsYXNzIEZyYW1lOwogY2xhc3MgU3RyaW5n
OwogCkBAIC01Niw3ICs1Nyw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgc2NoZWR1bGVSZWRpcmVj
dChkb3VibGUgZGVsYXksIGNvbnN0IFN0cmluZyYgdXJsKTsKICAgICB2b2lkIHNjaGVkdWxlTG9j
YXRpb25DaGFuZ2UoY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IFN0cmluZyYgcmVmZXJyZXIsIGJv
b2wgbG9ja0hpc3RvcnkgPSB0cnVlLCBib29sIGxvY2tCYWNrRm9yd2FyZExpc3QgPSB0cnVlLCBi
b29sIHVzZXJHZXN0dXJlID0gZmFsc2UpOwotICAgIHZvaWQgc2NoZWR1bGVGb3JtU3VibWlzc2lv
bihjb25zdCBGcmFtZUxvYWRSZXF1ZXN0JiwgYm9vbCBsb2NrSGlzdG9yeSwgUGFzc1JlZlB0cjxF
dmVudD4sIFBhc3NSZWZQdHI8Rm9ybVN0YXRlPik7CisgICAgdm9pZCBzY2hlZHVsZUZvcm1TdWJt
aXNzaW9uKFBhc3NSZWZQdHI8Rm9ybVN1Ym1pc3Npb24+KTsKICAgICB2b2lkIHNjaGVkdWxlUmVm
cmVzaChib29sIHVzZXJHZXN0dXJlID0gZmFsc2UpOwogICAgIHZvaWQgc2NoZWR1bGVIaXN0b3J5
TmF2aWdhdGlvbihpbnQgc3RlcHMpOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>59218</attachid>
            <date>2010-06-20 15:17:13 -0700</date>
            <delta_ts>2010-06-20 22:15:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-40137-20100620151711.patch</filename>
            <type>text/plain</type>
            <size>20038</size>
            <attacher name="Dimitri Glazkov (Google)">dglazkov</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
Yzk4ZTdhMjE2Yzk3ZjdiNmE3MGM1OWY3Zjc0NTBlYmE4MjY5MTEyZS4uNDdmYTVlYjQxMWVjNzA3
NmRkOThkZjY5NDNjNjQ2NTliZjk1MTI5MSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzOCBAQAorMjAxMC0wNi0wMyAgRGlt
aXRyaSBHbGF6a292ICA8ZGdsYXprb3ZAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFBsdW1iIEZvcm1TdWJtaXNzaW9uIHRocm91
Z2ggdG8gU2NoZWR1bGVkRm9ybVN1Ym1pc3Npb24uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MDEzNworCisgICAgICAgIE5vIGJlaGF2aW9yIGNoYW5n
ZSwgY292ZXJlZCBieSBleGlzdGluZyB0ZXN0cy4KKworICAgICAgICAqIGh0bWwvSFRNTEZvcm1F
bGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxGb3JtRWxlbWVudDo6cHJlcGFyZUZv
cm1TdWJtaXNzaW9uKTogTW92ZWQgY3JlYXRpb24gb2YgYWN0aW9uIFVSTAorICAgICAgICAgICAg
aW5zdGFuY2UgaGVyZSBmcm9tIEZyYW1lTG9hZGVyOjpzdWJtaXQsIGJlY2F1c2UgaXQgbWFrZXMg
bW9yZSBzZW5zZSBoZXJlLAorICAgICAgICAgICAgYWxzbyBhZGRlZCBhIEZJWE1FIHRvIGludmVz
dGlnYXRlIGV4aXN0aW5nIGNvZGUgbGF0ZXIuCisgICAgICAgICogbG9hZGVyL0Zvcm1TdWJtaXNz
aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZvcm1TdWJtaXNzaW9uOjpGb3JtU3VibWlzc2lv
bik6IENoYW5nZWQgYWN0aW9uIHRvIGJlIGEgS1VSTCwgbm90IGEgU3RyaW5nLgorICAgICAgICAo
V2ViQ29yZTo6Rm9ybVN1Ym1pc3Npb246OmNyZWF0ZSk6IERpdHRvLgorICAgICAgICAoV2ViQ29y
ZTo6Rm9ybVN1Ym1pc3Npb246OnBvcHVsYXRlRnJhbWVMb2FkUmVxdWVzdCk6IEFkZGVkLCBtb3Zp
bmcgdGhlIGxvZ2ljIGZyb20KKyAgICAgICAgICAgIEZyYW1lTG9hZGVyOjpzdWJtaXQgY2xvc2Vy
IHRvIHRoZSBkYXRhLgorICAgICAgICAqIGxvYWRlci9Gb3JtU3VibWlzc2lvbi5oOgorICAgICAg
ICAoV2ViQ29yZTo6Rm9ybVN1Ym1pc3Npb246OmFjdGlvbik6IENoYW5nZWQgdHlwZSB0byBLVVJM
LgorICAgICAgICAoV2ViQ29yZTo6Rm9ybVN1Ym1pc3Npb246OmNsZWFyVGFyZ2V0KTogQWRkZWQu
CisgICAgICAgIChXZWJDb3JlOjpGb3JtU3VibWlzc2lvbjo6cmVmZXJyZXIpOiBBZGRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OkZvcm1TdWJtaXNzaW9uOjpzZXRSZWZlcnJlcik6IEFkZGVkLgorICAg
ICAgICAoV2ViQ29yZTo6Rm9ybVN1Ym1pc3Npb246Om9yaWdpbik6IEFkZGVkLgorICAgICAgICAo
V2ViQ29yZTo6Rm9ybVN1Ym1pc3Npb246OnNldE9yaWdpbik6IEFkZGVkLgorICAgICAgICAqIGxv
YWRlci9GcmFtZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6c3Vi
bWl0Rm9ybSk6IENsZWFuZWQgdXAgdG8gbWFrZSBpdCBtb3JlIGFib3V0IGRlY2lzaW9uLW1ha2lu
ZywKKyAgICAgICAgICAgIG5vdCBkYXRhIG1hbmlwdWxhdGlvbi4KKyAgICAgICAgKiBsb2FkZXIv
UmVkaXJlY3RTY2hlZHVsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NoZWR1bGVkRm9ybVN1
Ym1pc3Npb246OlNjaGVkdWxlZEZvcm1TdWJtaXNzaW9uKTogQ2hhbmdlZCB0byBhY2NlcHQgRm9y
bVN1Ym1pc3Npb24gYXMgYXJndW1lbnQuCisgICAgICAgIChXZWJDb3JlOjpTY2hlZHVsZWRGb3Jt
U3VibWlzc2lvbjo6ZmlyZSk6IENoYW5nZWQgdG8gdXNlIEZvcm1TdWJtaXNzaW9uLgorICAgICAg
ICAoV2ViQ29yZTo6UmVkaXJlY3RTY2hlZHVsZXI6OnNjaGVkdWxlRm9ybVN1Ym1pc3Npb24pOiBS
ZW1vdmVkIGFzc2VydCB0aGF0IG5vIGxvbmdlciBtYWtlcyBzZW5zZSwKKyAgICAgICAgICAgIGNo
YW5nZWQgdG8gdXNlIEZvcm1TdWJtaXNzaW9uLgorICAgICAgICAqIGxvYWRlci9SZWRpcmVjdFNj
aGVkdWxlci5oOiBVcGRhdGVkIFNjaGVkdWxlZEZvcm1TdWJtaXNzaW9uIGRlY2wgdG8gaG9sZCBG
b3JtU3VibWlzc2lvbiByZWYuCisKIDIwMTAtMDYtMTQgIERpbWl0cmkgR2xhemtvdiAgPGRnbGF6
a292QGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUVsZW1lbnQuY3BwIGIvV2ViQ29yZS9odG1s
L0hUTUxGb3JtRWxlbWVudC5jcHAKaW5kZXggOWVkNWRlOTU3ZTg4MTFiZDE0YTE4YjBjMWNiMmE2
MTI5ZGNmMWEyNy4uNThlN2RjNDBlODZjYWQ3NWEwNmI4OGZhOTY1NDlkN2JkYTVhZTU5OSAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxGb3JtRWxlbWVudC5jcHAKKysrIGIvV2ViQ29yZS9o
dG1sL0hUTUxGb3JtRWxlbWVudC5jcHAKQEAgLTI1Miw2ICsyNTIsOCBAQCBQYXNzUmVmUHRyPEZv
cm1TdWJtaXNzaW9uPiBIVE1MRm9ybUVsZW1lbnQ6OnByZXBhcmVGb3JtU3VibWlzc2lvbihFdmVu
dCogZXZlbnQsCiAKICAgICBSZWZQdHI8Rm9ybURhdGE+IGZvcm1EYXRhOwogICAgIFN0cmluZyBi
b3VuZGFyeTsKKyAgICAvLyBGSVhNRTogRmlndXJlIG91dCB3aGV0aGVyIG1fdXJsLmlzTnVsbCBj
aGVjayBpcyBuZWNlc3NhcnkuCisgICAgS1VSTCBhY3Rpb25VUkwgPSBkb2N1bWVudCgpLT5jb21w
bGV0ZVVSTChtX3VybC5pc051bGwoKSA/ICIiIDogbV91cmwpOwogCiAgICAgaWYgKG1fZm9ybURh
dGFCdWlsZGVyLmlzTXVsdGlQYXJ0Rm9ybSgpKSB7CiAgICAgICAgIGZvcm1EYXRhID0gRm9ybURh
dGE6OmNyZWF0ZU11bHRpUGFydChkb21Gb3JtRGF0YS0+aXRlbXMoKSwgZG9tRm9ybURhdGEtPmVu
Y29kaW5nKCksIGRvY3VtZW50KCkpOwpAQCAtMjYwLDkgKzI2Miw5IEBAIFBhc3NSZWZQdHI8Rm9y
bVN1Ym1pc3Npb24+IEhUTUxGb3JtRWxlbWVudDo6cHJlcGFyZUZvcm1TdWJtaXNzaW9uKEV2ZW50
KiBldmVudCwKICAgICAgICAgZm9ybURhdGEgPSBGb3JtRGF0YTo6Y3JlYXRlKGRvbUZvcm1EYXRh
LT5pdGVtcygpLCBkb21Gb3JtRGF0YS0+ZW5jb2RpbmcoKSk7CiAgICAgICAgIGlmIChtX2Zvcm1E
YXRhQnVpbGRlci5pc1Bvc3RNZXRob2QoKSAmJiBpc01haWx0b0Zvcm0oKSkgewogICAgICAgICAg
ICAgLy8gQ29udmVydCB0aGUgZm9ybSBkYXRhIGludG8gYSBzdHJpbmcgdGhhdCB3ZSBwdXQgaW50
byB0aGUgVVJMLgotICAgICAgICAgICAgS1VSTCB1cmwgPSBkb2N1bWVudCgpLT5jb21wbGV0ZVVS
TChtX3VybCk7Ci0gICAgICAgICAgICBhcHBlbmRNYWlsdG9Qb3N0Rm9ybURhdGFUb1VSTCh1cmws
ICpmb3JtRGF0YSwgbV9mb3JtRGF0YUJ1aWxkZXIuZW5jb2RpbmdUeXBlKCkpOwotICAgICAgICAg
ICAgbV91cmwgPSB1cmwuc3RyaW5nKCk7CisgICAgICAgICAgICBhcHBlbmRNYWlsdG9Qb3N0Rm9y
bURhdGFUb1VSTChhY3Rpb25VUkwsICpmb3JtRGF0YSwgbV9mb3JtRGF0YUJ1aWxkZXIuZW5jb2Rp
bmdUeXBlKCkpOworICAgICAgICAgICAgLy8gRklYTUU6IFdoeSBpcyBzZXR0aW5nIG1fdXJsIG5l
Y2Vzc2FyeSBoZXJlPyBUaGlzIHNlZW1zIHdyb25nIGlmIG1haWwgZm9ybSBpcyBzdWJtaXR0ZWQg
bXVsdGlwbGUgdGltZXM/CisgICAgICAgICAgICBtX3VybCA9IGFjdGlvblVSTC5zdHJpbmcoKTsK
IAogICAgICAgICAgICAgZm9ybURhdGEgPSBGb3JtRGF0YTo6Y3JlYXRlKCk7CiAgICAgICAgIH0K
QEAgLTI3MCw3ICsyNzIsOCBAQCBQYXNzUmVmUHRyPEZvcm1TdWJtaXNzaW9uPiBIVE1MRm9ybUVs
ZW1lbnQ6OnByZXBhcmVGb3JtU3VibWlzc2lvbihFdmVudCogZXZlbnQsCiAKICAgICBmb3JtRGF0
YS0+c2V0SWRlbnRpZmllcihnZW5lcmF0ZUZvcm1EYXRhSWRlbnRpZmllcigpKTsKICAgICBGb3Jt
U3VibWlzc2lvbjo6TWV0aG9kIG1ldGhvZCA9IG1fZm9ybURhdGFCdWlsZGVyLmlzUG9zdE1ldGhv
ZCgpID8gRm9ybVN1Ym1pc3Npb246OlBvc3RNZXRob2QgOiBGb3JtU3VibWlzc2lvbjo6R2V0TWV0
aG9kOwotICAgIHJldHVybiBGb3JtU3VibWlzc2lvbjo6Y3JlYXRlKG1ldGhvZCwgbV91cmwsIG1f
dGFyZ2V0LCBtX2Zvcm1EYXRhQnVpbGRlci5lbmNvZGluZ1R5cGUoKSwgRm9ybVN0YXRlOjpjcmVh
dGUodGhpcywgZm9ybVZhbHVlcywgZG9jdW1lbnQoKS0+ZnJhbWUoKSwgdHJpZ2dlciksIGZvcm1E
YXRhLnJlbGVhc2UoKSwgYm91bmRhcnksIGxvY2tIaXN0b3J5LCBldmVudCk7CisgICAgU3RyaW5n
IHRhcmdldE9yQmFzZVRhcmdldCA9IG1fdGFyZ2V0LmlzRW1wdHkoKSA/IGRvY3VtZW50KCktPmJh
c2VUYXJnZXQoKSA6IG1fdGFyZ2V0OworICAgIHJldHVybiBGb3JtU3VibWlzc2lvbjo6Y3JlYXRl
KG1ldGhvZCwgYWN0aW9uVVJMLCB0YXJnZXRPckJhc2VUYXJnZXQsIG1fZm9ybURhdGFCdWlsZGVy
LmVuY29kaW5nVHlwZSgpLCBGb3JtU3RhdGU6OmNyZWF0ZSh0aGlzLCBmb3JtVmFsdWVzLCBkb2N1
bWVudCgpLT5mcmFtZSgpLCB0cmlnZ2VyKSwgZm9ybURhdGEucmVsZWFzZSgpLCBib3VuZGFyeSwg
bG9ja0hpc3RvcnksIGV2ZW50KTsKIH0KIAogYm9vbCBIVE1MRm9ybUVsZW1lbnQ6OmlzTWFpbHRv
Rm9ybSgpIGNvbnN0CmRpZmYgLS1naXQgYS9XZWJDb3JlL2xvYWRlci9Gb3JtU3VibWlzc2lvbi5j
cHAgYi9XZWJDb3JlL2xvYWRlci9Gb3JtU3VibWlzc2lvbi5jcHAKaW5kZXggZGVhN2QxNzdmYzc1
MjA5MmY2MDJkNDVmZDMxODk2YmM1NDI4ZjEzNC4uNGQ0NDE3NDJmMjg4NWQ2NzdjYzg3ZDFjYWJj
NGQyYzIzYWFmMGZhOSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9sb2FkZXIvRm9ybVN1Ym1pc3Npb24u
Y3BwCisrKyBiL1dlYkNvcmUvbG9hZGVyL0Zvcm1TdWJtaXNzaW9uLmNwcApAQCAtMzUsMTIgKzM1
LDE0IEBACiAjaW5jbHVkZSAiRm9ybURhdGEuaCIKICNpbmNsdWRlICJGb3JtU3RhdGUuaCIKICNp
bmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIkZyYW1lTG9hZFJlcXVlc3QuaCIKKyNpbmNsdWRl
ICJGcmFtZUxvYWRlci5oIgogI2luY2x1ZGUgIkhUTUxGb3JtRWxlbWVudC5oIgogI2luY2x1ZGUg
PHd0Zi9QYXNzUmVmUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotRm9ybVN1Ym1pc3Np
b246OkZvcm1TdWJtaXNzaW9uKE1ldGhvZCBtZXRob2QsIGNvbnN0IFN0cmluZyYgYWN0aW9uLCBj
b25zdCBTdHJpbmcmIHRhcmdldCwgY29uc3QgU3RyaW5nJiBjb250ZW50VHlwZSwgUGFzc1JlZlB0
cjxGb3JtU3RhdGU+IHN0YXRlLCBQYXNzUmVmUHRyPEZvcm1EYXRhPiBkYXRhLCBjb25zdCBTdHJp
bmcmIGJvdW5kYXJ5LCBib29sIGxvY2tIaXN0b3J5LCBQYXNzUmVmUHRyPEV2ZW50PiBldmVudCkK
K0Zvcm1TdWJtaXNzaW9uOjpGb3JtU3VibWlzc2lvbihNZXRob2QgbWV0aG9kLCBjb25zdCBLVVJM
JiBhY3Rpb24sIGNvbnN0IFN0cmluZyYgdGFyZ2V0LCBjb25zdCBTdHJpbmcmIGNvbnRlbnRUeXBl
LCBQYXNzUmVmUHRyPEZvcm1TdGF0ZT4gc3RhdGUsIFBhc3NSZWZQdHI8Rm9ybURhdGE+IGRhdGEs
IGNvbnN0IFN0cmluZyYgYm91bmRhcnksIGJvb2wgbG9ja0hpc3RvcnksIFBhc3NSZWZQdHI8RXZl
bnQ+IGV2ZW50KQogICAgIDogbV9tZXRob2QobWV0aG9kKQogICAgICwgbV9hY3Rpb24oYWN0aW9u
KQogICAgICwgbV90YXJnZXQodGFyZ2V0KQpAQCAtNTMsMTAgKzU1LDM0IEBAIEZvcm1TdWJtaXNz
aW9uOjpGb3JtU3VibWlzc2lvbihNZXRob2QgbWV0aG9kLCBjb25zdCBTdHJpbmcmIGFjdGlvbiwg
Y29uc3QgU3RyaW5nCiB7CiB9CiAKLQotUGFzc1JlZlB0cjxGb3JtU3VibWlzc2lvbj4gRm9ybVN1
Ym1pc3Npb246OmNyZWF0ZShNZXRob2QgbWV0aG9kLCBjb25zdCBTdHJpbmcmIGFjdGlvbiwgY29u
c3QgU3RyaW5nJiB0YXJnZXQsIGNvbnN0IFN0cmluZyYgY29udGVudFR5cGUsIFBhc3NSZWZQdHI8
Rm9ybVN0YXRlPiBzdGF0ZSwgUGFzc1JlZlB0cjxGb3JtRGF0YT4gZGF0YSwgY29uc3QgU3RyaW5n
JiBib3VuZGFyeSwgYm9vbCBsb2NrSGlzdG9yeSwgUGFzc1JlZlB0cjxFdmVudD4gZXZlbnQpCitQ
YXNzUmVmUHRyPEZvcm1TdWJtaXNzaW9uPiBGb3JtU3VibWlzc2lvbjo6Y3JlYXRlKE1ldGhvZCBt
ZXRob2QsIGNvbnN0IEtVUkwmIGFjdGlvbiwgY29uc3QgU3RyaW5nJiB0YXJnZXQsIGNvbnN0IFN0
cmluZyYgY29udGVudFR5cGUsIFBhc3NSZWZQdHI8Rm9ybVN0YXRlPiBzdGF0ZSwgUGFzc1JlZlB0
cjxGb3JtRGF0YT4gZGF0YSwgY29uc3QgU3RyaW5nJiBib3VuZGFyeSwgYm9vbCBsb2NrSGlzdG9y
eSwgUGFzc1JlZlB0cjxFdmVudD4gZXZlbnQpCiB7CiAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBG
b3JtU3VibWlzc2lvbihtZXRob2QsIGFjdGlvbiwgdGFyZ2V0LCBjb250ZW50VHlwZSwgc3RhdGUs
IGRhdGEsIGJvdW5kYXJ5LCBsb2NrSGlzdG9yeSwgZXZlbnQpKTsKIH0KIAordm9pZCBGb3JtU3Vi
bWlzc2lvbjo6cG9wdWxhdGVGcmFtZUxvYWRSZXF1ZXN0KEZyYW1lTG9hZFJlcXVlc3QmIGZyYW1l
UmVxdWVzdCkKK3sKKyAgICBpZiAoIW1fdGFyZ2V0LmlzRW1wdHkoKSkKKyAgICAgICAgZnJhbWVS
ZXF1ZXN0LnNldEZyYW1lTmFtZShtX3RhcmdldCk7CisKKyAgICBpZiAoIW1fcmVmZXJyZXIuaXNF
bXB0eSgpKQorICAgICAgICBmcmFtZVJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCkuc2V0SFRUUFJl
ZmVycmVyKG1fcmVmZXJyZXIpOworCisgICAgaWYgKG1fbWV0aG9kID09IEZvcm1TdWJtaXNzaW9u
OjpHZXRNZXRob2QpCisgICAgICAgIG1fYWN0aW9uLnNldFF1ZXJ5KG1fZm9ybURhdGEtPmZsYXR0
ZW5Ub1N0cmluZygpKTsKKyAgICBlbHNlIHsKKyAgICAgICAgZnJhbWVSZXF1ZXN0LnJlc291cmNl
UmVxdWVzdCgpLnNldEhUVFBNZXRob2QoIlBPU1QiKTsKKyAgICAgICAgZnJhbWVSZXF1ZXN0LnJl
c291cmNlUmVxdWVzdCgpLnNldEhUVFBCb2R5KG1fZm9ybURhdGEpOworCisgICAgICAgIC8vIGNv
bnN0cnVjdCBzb21lIHVzZXIgaGVhZGVycyBpZiBuZWNlc3NhcnkKKyAgICAgICAgaWYgKG1fY29u
dGVudFR5cGUuaXNOdWxsKCkgfHwgbV9jb250ZW50VHlwZSA9PSAiYXBwbGljYXRpb24veC13d3ct
Zm9ybS11cmxlbmNvZGVkIikKKyAgICAgICAgICAgIGZyYW1lUmVxdWVzdC5yZXNvdXJjZVJlcXVl
c3QoKS5zZXRIVFRQQ29udGVudFR5cGUobV9jb250ZW50VHlwZSk7CisgICAgICAgIGVsc2UgLy8g
Y29udGVudFR5cGUgbXVzdCBiZSAibXVsdGlwYXJ0L2Zvcm0tZGF0YSIKKyAgICAgICAgICAgIGZy
YW1lUmVxdWVzdC5yZXNvdXJjZVJlcXVlc3QoKS5zZXRIVFRQQ29udGVudFR5cGUobV9jb250ZW50
VHlwZSArICI7IGJvdW5kYXJ5PSIgKyBtX2JvdW5kYXJ5KTsKKyAgICB9CisKKyAgICBmcmFtZVJl
cXVlc3QucmVzb3VyY2VSZXF1ZXN0KCkuc2V0VVJMKG1fYWN0aW9uKTsKKyAgICBGcmFtZUxvYWRl
cjo6YWRkSFRUUE9yaWdpbklmTmVlZGVkKGZyYW1lUmVxdWVzdC5yZXNvdXJjZVJlcXVlc3QoKSwg
bV9vcmlnaW4pOworfQorCiB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL2xvYWRlci9Gb3JtU3VibWlz
c2lvbi5oIGIvV2ViQ29yZS9sb2FkZXIvRm9ybVN1Ym1pc3Npb24uaAppbmRleCAwOTViZDM5MzEz
YTRhNjBhNWYwZDEyMGFiODM4MDU3ZTQ0YjA1MGJmLi5lZDFmYzQzODUyYTNhMzhjN2IxOWY1M2Vh
ZTI4M2ZhNTQ4Y2M4YjlhIDEwMDY0NAotLS0gYS9XZWJDb3JlL2xvYWRlci9Gb3JtU3VibWlzc2lv
bi5oCisrKyBiL1dlYkNvcmUvbG9hZGVyL0Zvcm1TdWJtaXNzaW9uLmgKQEAgLTMxLDYgKzMxLDcg
QEAKICNpZm5kZWYgRm9ybVN1Ym1pc3Npb25faAogI2RlZmluZSBGb3JtU3VibWlzc2lvbl9oCiAK
KyNpbmNsdWRlICJLVVJMLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKICNpbmNsdWRl
IDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CkBAIC00MCw2ICs0
MSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIEV2ZW50OwogY2xhc3MgRm9ybURhdGE7
CiBjbGFzcyBGb3JtU3RhdGU7CitjbGFzcyBGcmFtZUxvYWRSZXF1ZXN0OwogCiBjbGFzcyBGb3Jt
U3VibWlzc2lvbiA6IHB1YmxpYyBSZWZDb3VudGVkPEZvcm1TdWJtaXNzaW9uPiB7CiBwdWJsaWM6
CkBAIC00OCwxMSArNTAsMTQgQEAgcHVibGljOgogICAgICAgICBQb3N0TWV0aG9kCiAgICAgfTsK
IAotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEZvcm1TdWJtaXNzaW9uPiBjcmVhdGUoTWV0aG9kLCBj
b25zdCBTdHJpbmcmIGFjdGlvbiwgY29uc3QgU3RyaW5nJiB0YXJnZXQsIGNvbnN0IFN0cmluZyYg
Y29udGVudFR5cGUsIFBhc3NSZWZQdHI8Rm9ybVN0YXRlPiwgUGFzc1JlZlB0cjxGb3JtRGF0YT4s
IGNvbnN0IFN0cmluZyYgYm91bmRhcnksIGJvb2wgbG9ja0hpc3RvcnksIFBhc3NSZWZQdHI8RXZl
bnQ+KTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxGb3JtU3VibWlzc2lvbj4gY3JlYXRlKE1ldGhv
ZCwgY29uc3QgS1VSTCYgYWN0aW9uLCBjb25zdCBTdHJpbmcmIHRhcmdldCwgY29uc3QgU3RyaW5n
JiBjb250ZW50VHlwZSwgUGFzc1JlZlB0cjxGb3JtU3RhdGU+LCBQYXNzUmVmUHRyPEZvcm1EYXRh
PiwgY29uc3QgU3RyaW5nJiBib3VuZGFyeSwgYm9vbCBsb2NrSGlzdG9yeSwgUGFzc1JlZlB0cjxF
dmVudD4pOworCisgICAgdm9pZCBwb3B1bGF0ZUZyYW1lTG9hZFJlcXVlc3QoRnJhbWVMb2FkUmVx
dWVzdCYpOwogCiAgICAgTWV0aG9kIG1ldGhvZCgpIGNvbnN0IHsgcmV0dXJuIG1fbWV0aG9kOyB9
Ci0gICAgU3RyaW5nIGFjdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fYWN0aW9uOyB9CisgICAgY29u
c3QgS1VSTCYgYWN0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9hY3Rpb247IH0KICAgICBTdHJpbmcg
dGFyZ2V0KCkgY29uc3QgeyByZXR1cm4gbV90YXJnZXQ7IH0KKyAgICB2b2lkIGNsZWFyVGFyZ2V0
KCkgeyBtX3RhcmdldCA9IFN0cmluZygpOyB9CiAgICAgU3RyaW5nIGNvbnRlbnRUeXBlKCkgY29u
c3QgeyByZXR1cm4gbV9jb250ZW50VHlwZTsgfQogICAgIEZvcm1TdGF0ZSogc3RhdGUoKSBjb25z
dCB7IHJldHVybiBtX2Zvcm1TdGF0ZS5nZXQoKTsgfQogICAgIEZvcm1EYXRhKiBkYXRhKCkgY29u
c3QgeyByZXR1cm4gbV9mb3JtRGF0YS5nZXQoKTsgfQpAQCAtNjAsMTEgKzY1LDE2IEBAIHB1Ymxp
YzoKICAgICBib29sIGxvY2tIaXN0b3J5KCkgY29uc3QgeyByZXR1cm4gbV9sb2NrSGlzdG9yeTsg
fQogICAgIEV2ZW50KiBldmVudCgpIGNvbnN0IHsgcmV0dXJuIG1fZXZlbnQuZ2V0KCk7IH0KIAor
ICAgIGNvbnN0IFN0cmluZyYgcmVmZXJyZXIoKSBjb25zdCB7IHJldHVybiBtX3JlZmVycmVyOyB9
CisgICAgdm9pZCBzZXRSZWZlcnJlcihTdHJpbmcgcmVmZXJyZXIpIHsgbV9yZWZlcnJlciA9IHJl
ZmVycmVyOyB9CisgICAgY29uc3QgU3RyaW5nJiBvcmlnaW4oKSBjb25zdCB7IHJldHVybiBtX29y
aWdpbjsgfQorICAgIHZvaWQgc2V0T3JpZ2luKFN0cmluZyBvcmlnaW4pIHsgbV9vcmlnaW4gPSBv
cmlnaW47IH0KKwogcHJpdmF0ZToKLSAgICBGb3JtU3VibWlzc2lvbihNZXRob2QsIGNvbnN0IFN0
cmluZyYgYWN0aW9uLCBjb25zdCBTdHJpbmcmIHRhcmdldCwgY29uc3QgU3RyaW5nJiBjb250ZW50
VHlwZSwgUGFzc1JlZlB0cjxGb3JtU3RhdGU+LCBQYXNzUmVmUHRyPEZvcm1EYXRhPiwgY29uc3Qg
U3RyaW5nJiBib3VuZGFyeSwgYm9vbCBsb2NrSGlzdG9yeSwgUGFzc1JlZlB0cjxFdmVudD4pOwor
ICAgIEZvcm1TdWJtaXNzaW9uKE1ldGhvZCwgY29uc3QgS1VSTCYgYWN0aW9uLCBjb25zdCBTdHJp
bmcmIHRhcmdldCwgY29uc3QgU3RyaW5nJiBjb250ZW50VHlwZSwgUGFzc1JlZlB0cjxGb3JtU3Rh
dGU+LCBQYXNzUmVmUHRyPEZvcm1EYXRhPiwgY29uc3QgU3RyaW5nJiBib3VuZGFyeSwgYm9vbCBs
b2NrSGlzdG9yeSwgUGFzc1JlZlB0cjxFdmVudD4pOwogCiAgICAgTWV0aG9kIG1fbWV0aG9kOwot
ICAgIFN0cmluZyBtX2FjdGlvbjsKKyAgICBLVVJMIG1fYWN0aW9uOwogICAgIFN0cmluZyBtX3Rh
cmdldDsKICAgICBTdHJpbmcgbV9jb250ZW50VHlwZTsKICAgICBSZWZQdHI8Rm9ybVN0YXRlPiBt
X2Zvcm1TdGF0ZTsKQEAgLTcyLDYgKzgyLDggQEAgcHJpdmF0ZToKICAgICBTdHJpbmcgbV9ib3Vu
ZGFyeTsKICAgICBib29sIG1fbG9ja0hpc3Rvcnk7CiAgICAgUmVmUHRyPEV2ZW50PiBtX2V2ZW50
OworICAgIFN0cmluZyBtX3JlZmVycmVyOworICAgIFN0cmluZyBtX29yaWdpbjsKIH07CiAKIH0K
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcCBiL1dlYkNvcmUvbG9h
ZGVyL0ZyYW1lTG9hZGVyLmNwcAppbmRleCA5MDc2OWE0OWIzZDJhYWMxY2RlNWM0M2E2MjU0NWU2
MTRlNGFkZTViLi4yYzIwMzg3OGRmMmE3MWE5MTZjMTkzMzllM2ZjMDZmZDM0NWNlNDVhIDEwMDY0
NAotLS0gYS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKKysrIGIvV2ViQ29yZS9sb2Fk
ZXIvRnJhbWVMb2FkZXIuY3BwCkBAIC00NjMsNDQgKzQ2MywzMCBAQCBGcmFtZSogRnJhbWVMb2Fk
ZXI6OmxvYWRTdWJmcmFtZShIVE1MRnJhbWVPd25lckVsZW1lbnQqIG93bmVyRWxlbWVudCwgY29u
c3QgS1VSTAogCiB2b2lkIEZyYW1lTG9hZGVyOjpzdWJtaXRGb3JtKFBhc3NSZWZQdHI8Rm9ybVN1
Ym1pc3Npb24+IHN1Ym1pc3Npb24pCiB7Ci0gICAgLy8gRklYTUU6IFBsdW1iIHRoaXMgZnVydGhl
ciBpbi4KLSAgICBjb25zdCBjaGFyKiBhY3Rpb24gPSBzdWJtaXNzaW9uLT5tZXRob2QoKSA9PSBG
b3JtU3VibWlzc2lvbjo6UG9zdE1ldGhvZCA/ICJQT1NUIiA6ICJHRVQiOwotICAgIFJlZlB0cjxG
b3JtRGF0YT4gZm9ybURhdGEgPSBzdWJtaXNzaW9uLT5kYXRhKCk7Ci0gICAgUmVmUHRyPEZvcm1T
dGF0ZT4gZm9ybVN0YXRlID0gc3VibWlzc2lvbi0+c3RhdGUoKTsKLSAgICBTdHJpbmcgdXJsID0g
c3VibWlzc2lvbi0+YWN0aW9uKCk7Ci0gICAgU3RyaW5nIHRhcmdldCA9IHN1Ym1pc3Npb24tPnRh
cmdldCgpOwotICAgIFN0cmluZyBib3VuZGFyeSA9IHN1Ym1pc3Npb24tPmJvdW5kYXJ5KCk7Ci0g
ICAgU3RyaW5nIGNvbnRlbnRUeXBlID0gc3VibWlzc2lvbi0+Y29udGVudFR5cGUoKTsKLSAgICBi
b29sIGxvY2tIaXN0b3J5ID0gc3VibWlzc2lvbi0+bG9ja0hpc3RvcnkoKTsKLSAgICBSZWZQdHI8
RXZlbnQ+IGV2ZW50ID0gc3VibWlzc2lvbi0+ZXZlbnQoKTsKLQotICAgIEFTU0VSVChhY3Rpb24p
OwotICAgIEFTU0VSVChzdHJjbXAoYWN0aW9uLCAiR0VUIikgPT0gMCB8fCBzdHJjbXAoYWN0aW9u
LCAiUE9TVCIpID09IDApOwotICAgIEFTU0VSVChmb3JtRGF0YSk7Ci0gICAgQVNTRVJUKGZvcm1T
dGF0ZSk7Ci0gICAgQVNTRVJUKGZvcm1TdGF0ZS0+c291cmNlRnJhbWUoKSA9PSBtX2ZyYW1lKTsK
KyAgICBBU1NFUlQoc3VibWlzc2lvbi0+bWV0aG9kKCkgPT0gRm9ybVN1Ym1pc3Npb246OlBvc3RN
ZXRob2QgfHwgc3VibWlzc2lvbi0+bWV0aG9kKCkgPT0gRm9ybVN1Ym1pc3Npb246OkdldE1ldGhv
ZCk7CisKKyAgICAvLyBGSVhNRTogRmluZCBhIGdvb2Qgc3BvdCBmb3IgdGhlc2UuCisgICAgQVNT
RVJUKHN1Ym1pc3Npb24tPmRhdGEoKSk7CisgICAgQVNTRVJUKHN1Ym1pc3Npb24tPnN0YXRlKCkp
OworICAgIEFTU0VSVChzdWJtaXNzaW9uLT5zdGF0ZSgpLT5zb3VyY2VGcmFtZSgpID09IG1fZnJh
bWUpOwogICAgIAogICAgIGlmICghbV9mcmFtZS0+cGFnZSgpKQogICAgICAgICByZXR1cm47CiAg
ICAgCi0gICAgS1VSTCB1ID0gY29tcGxldGVVUkwodXJsLmlzTnVsbCgpID8gIiIgOiB1cmwpOwot
ICAgIGlmICh1LmlzRW1wdHkoKSkKKyAgICBpZiAoc3VibWlzc2lvbi0+YWN0aW9uKCkuaXNFbXB0
eSgpKQogICAgICAgICByZXR1cm47CiAKICAgICBpZiAoaXNEb2N1bWVudFNhbmRib3hlZChtX2Zy
YW1lLCBTYW5kYm94Rm9ybXMpKQogICAgICAgICByZXR1cm47CiAKLSAgICBpZiAocHJvdG9jb2xJ
c0phdmFTY3JpcHQodSkpIHsKKyAgICBpZiAocHJvdG9jb2xJc0phdmFTY3JpcHQoc3VibWlzc2lv
bi0+YWN0aW9uKCkpKSB7CiAgICAgICAgIG1faXNFeGVjdXRpbmdKYXZhU2NyaXB0Rm9ybUFjdGlv
biA9IHRydWU7Ci0gICAgICAgIG1fZnJhbWUtPnNjcmlwdCgpLT5leGVjdXRlSWZKYXZhU2NyaXB0
VVJMKHUsIGZhbHNlLCBEb05vdFJlcGxhY2VEb2N1bWVudElmSmF2YVNjcmlwdFVSTCk7CisgICAg
ICAgIG1fZnJhbWUtPnNjcmlwdCgpLT5leGVjdXRlSWZKYXZhU2NyaXB0VVJMKHN1Ym1pc3Npb24t
PmFjdGlvbigpLCBmYWxzZSwgRG9Ob3RSZXBsYWNlRG9jdW1lbnRJZkphdmFTY3JpcHRVUkwpOwog
ICAgICAgICBtX2lzRXhlY3V0aW5nSmF2YVNjcmlwdEZvcm1BY3Rpb24gPSBmYWxzZTsKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KIAotICAgIEZyYW1lTG9hZFJlcXVlc3QgZnJhbWVSZXF1ZXN0Owot
Ci0gICAgU3RyaW5nIHRhcmdldE9yQmFzZVRhcmdldCA9IHRhcmdldC5pc0VtcHR5KCkgPyBtX2Zy
YW1lLT5kb2N1bWVudCgpLT5iYXNlVGFyZ2V0KCkgOiB0YXJnZXQ7Ci0gICAgRnJhbWUqIHRhcmdl
dEZyYW1lID0gbV9mcmFtZS0+dHJlZSgpLT5maW5kKHRhcmdldE9yQmFzZVRhcmdldCk7CisgICAg
RnJhbWUqIHRhcmdldEZyYW1lID0gbV9mcmFtZS0+dHJlZSgpLT5maW5kKHN1Ym1pc3Npb24tPnRh
cmdldCgpKTsKICAgICBpZiAoIXNob3VsZEFsbG93TmF2aWdhdGlvbih0YXJnZXRGcmFtZSkpCiAg
ICAgICAgIHJldHVybjsKICAgICBpZiAoIXRhcmdldEZyYW1lKSB7CkBAIC01MDgsOCArNDk0LDkg
QEAgdm9pZCBGcmFtZUxvYWRlcjo6c3VibWl0Rm9ybShQYXNzUmVmUHRyPEZvcm1TdWJtaXNzaW9u
PiBzdWJtaXNzaW9uKQogICAgICAgICAgICAgcmV0dXJuOwogCiAgICAgICAgIHRhcmdldEZyYW1l
ID0gbV9mcmFtZTsKLSAgICAgICAgZnJhbWVSZXF1ZXN0LnNldEZyYW1lTmFtZSh0YXJnZXRPckJh
c2VUYXJnZXQpOwotICAgIH0KKyAgICB9IGVsc2UKKyAgICAgICAgc3VibWlzc2lvbi0+Y2xlYXJU
YXJnZXQoKTsKKwogICAgIGlmICghdGFyZ2V0RnJhbWUtPnBhZ2UoKSkKICAgICAgICAgcmV0dXJu
OwogCkBAIC01MjYsMzMgKzUxMywxNiBAQCB2b2lkIEZyYW1lTG9hZGVyOjpzdWJtaXRGb3JtKFBh
c3NSZWZQdHI8Rm9ybVN1Ym1pc3Npb24+IHN1Ym1pc3Npb24pCiAgICAgLy8gbmVlZGVkIGFueSBt
b3JlIG5vdyB0aGF0IHdlIHJlc2V0IG1fc3VibWl0dGVkRm9ybVVSTCBvbiBlYWNoIG1vdXNlIG9y
IGtleSBkb3duIGV2ZW50LgogCiAgICAgaWYgKG1fZnJhbWUtPnRyZWUoKS0+aXNEZXNjZW5kYW50
T2YodGFyZ2V0RnJhbWUpKSB7Ci0gICAgICAgIGlmIChtX3N1Ym1pdHRlZEZvcm1VUkwgPT0gdSkK
KyAgICAgICAgaWYgKG1fc3VibWl0dGVkRm9ybVVSTCA9PSBzdWJtaXNzaW9uLT5hY3Rpb24oKSkK
ICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgbV9zdWJtaXR0ZWRGb3JtVVJMID0gdTsKLSAg
ICB9Ci0KLSAgICBmb3JtRGF0YS0+Z2VuZXJhdGVGaWxlcyhtX2ZyYW1lLT5kb2N1bWVudCgpKTsK
LSAgICAKLSAgICBpZiAoIW1fb3V0Z29pbmdSZWZlcnJlci5pc0VtcHR5KCkpCi0gICAgICAgIGZy
YW1lUmVxdWVzdC5yZXNvdXJjZVJlcXVlc3QoKS5zZXRIVFRQUmVmZXJyZXIobV9vdXRnb2luZ1Jl
ZmVycmVyKTsKLQotICAgIGlmIChzdHJjbXAoYWN0aW9uLCAiR0VUIikgPT0gMCkKLSAgICAgICAg
dS5zZXRRdWVyeShmb3JtRGF0YS0+ZmxhdHRlblRvU3RyaW5nKCkpOwotICAgIGVsc2UgewotICAg
ICAgICBmcmFtZVJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCkuc2V0SFRUUE1ldGhvZCgiUE9TVCIp
OwotICAgICAgICBmcmFtZVJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCkuc2V0SFRUUEJvZHkoZm9y
bURhdGEpOwotCi0gICAgICAgIC8vIGNvbnN0cnVjdCBzb21lIHVzZXIgaGVhZGVycyBpZiBuZWNl
c3NhcnkKLSAgICAgICAgaWYgKGNvbnRlbnRUeXBlLmlzTnVsbCgpIHx8IGNvbnRlbnRUeXBlID09
ICJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiKQotICAgICAgICAgICAgZnJhbWVS
ZXF1ZXN0LnJlc291cmNlUmVxdWVzdCgpLnNldEhUVFBDb250ZW50VHlwZShjb250ZW50VHlwZSk7
Ci0gICAgICAgIGVsc2UgLy8gY29udGVudFR5cGUgbXVzdCBiZSAibXVsdGlwYXJ0L2Zvcm0tZGF0
YSIKLSAgICAgICAgICAgIGZyYW1lUmVxdWVzdC5yZXNvdXJjZVJlcXVlc3QoKS5zZXRIVFRQQ29u
dGVudFR5cGUoY29udGVudFR5cGUgKyAiOyBib3VuZGFyeT0iICsgYm91bmRhcnkpOworICAgICAg
ICBtX3N1Ym1pdHRlZEZvcm1VUkwgPSBzdWJtaXNzaW9uLT5hY3Rpb24oKTsKICAgICB9CiAKLSAg
ICBmcmFtZVJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCkuc2V0VVJMKHUpOwotICAgIGFkZEhUVFBP
cmlnaW5JZk5lZWRlZChmcmFtZVJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCksIG91dGdvaW5nT3Jp
Z2luKCkpOworICAgIHN1Ym1pc3Npb24tPmRhdGEoKS0+Z2VuZXJhdGVGaWxlcyhtX2ZyYW1lLT5k
b2N1bWVudCgpKTsKKyAgICBzdWJtaXNzaW9uLT5zZXRSZWZlcnJlcihtX291dGdvaW5nUmVmZXJy
ZXIpOworICAgIHN1Ym1pc3Npb24tPnNldE9yaWdpbihvdXRnb2luZ09yaWdpbigpKTsKIAotICAg
IHRhcmdldEZyYW1lLT5yZWRpcmVjdFNjaGVkdWxlcigpLT5zY2hlZHVsZUZvcm1TdWJtaXNzaW9u
KGZyYW1lUmVxdWVzdCwgbG9ja0hpc3RvcnksIGV2ZW50LCBmb3JtU3RhdGUpOworICAgIHRhcmdl
dEZyYW1lLT5yZWRpcmVjdFNjaGVkdWxlcigpLT5zY2hlZHVsZUZvcm1TdWJtaXNzaW9uKHN1Ym1p
c3Npb24pOwogfQogCiB2b2lkIEZyYW1lTG9hZGVyOjpzdG9wTG9hZGluZyhVbmxvYWRFdmVudFBv
bGljeSB1bmxvYWRFdmVudFBvbGljeSwgRGF0YWJhc2VQb2xpY3kgZGF0YWJhc2VQb2xpY3kpCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL2xvYWRlci9SZWRpcmVjdFNjaGVkdWxlci5jcHAgYi9XZWJDb3Jl
L2xvYWRlci9SZWRpcmVjdFNjaGVkdWxlci5jcHAKaW5kZXggYjRjODZkNGY4NzIxNWY5ZDMyNGVl
ODczYjQ4YTQzNjIwN2Q4YWQxMC4uNDlmMGU5ZDgyYjU0NDIzYTc3MjMxZThlODMxZTIwMzg1ZGU1
NzFkYiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9sb2FkZXIvUmVkaXJlY3RTY2hlZHVsZXIuY3BwCisr
KyBiL1dlYkNvcmUvbG9hZGVyL1JlZGlyZWN0U2NoZWR1bGVyLmNwcApAQCAtMzYsNiArMzYsNyBA
QAogI2luY2x1ZGUgIkRvY3VtZW50TG9hZGVyLmgiCiAjaW5jbHVkZSAiRXZlbnQuaCIKICNpbmNs
dWRlICJGb3JtU3RhdGUuaCIKKyNpbmNsdWRlICJGb3JtU3VibWlzc2lvbi5oIgogI2luY2x1ZGUg
IkZyYW1lLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkUmVxdWVzdC5oIgogI2luY2x1ZGUgIkZyYW1l
TG9hZGVyLmgiCkBAIC0xNzAsMTUgKzE3MSwxMiBAQCBwcml2YXRlOgogCiBjbGFzcyBTY2hlZHVs
ZWRGb3JtU3VibWlzc2lvbiA6IHB1YmxpYyBTY2hlZHVsZWROYXZpZ2F0aW9uIHsKIHB1YmxpYzoK
LSAgICBTY2hlZHVsZWRGb3JtU3VibWlzc2lvbihjb25zdCBGcmFtZUxvYWRSZXF1ZXN0JiBmcmFt
ZVJlcXVlc3QsIGJvb2wgbG9ja0hpc3RvcnksIGJvb2wgbG9ja0JhY2tGb3J3YXJkTGlzdCwgUGFz
c1JlZlB0cjxFdmVudD4gZXZlbnQsIFBhc3NSZWZQdHI8Rm9ybVN0YXRlPiBmb3JtU3RhdGUsIGJv
b2wgZHVyaW5nTG9hZCkKLSAgICAgICAgOiBTY2hlZHVsZWROYXZpZ2F0aW9uKDAsIGxvY2tIaXN0
b3J5LCBsb2NrQmFja0ZvcndhcmRMaXN0LCBkdXJpbmdMb2FkLCB0cnVlKQotICAgICAgICAsIG1f
ZnJhbWVSZXF1ZXN0KGZyYW1lUmVxdWVzdCkKLSAgICAgICAgLCBtX2V2ZW50KGV2ZW50KQotICAg
ICAgICAsIG1fZm9ybVN0YXRlKGZvcm1TdGF0ZSkKKyAgICBTY2hlZHVsZWRGb3JtU3VibWlzc2lv
bihQYXNzUmVmUHRyPEZvcm1TdWJtaXNzaW9uPiBzdWJtaXNzaW9uLCBib29sIGxvY2tCYWNrRm9y
d2FyZExpc3QsIGJvb2wgZHVyaW5nTG9hZCkKKyAgICAgICAgOiBTY2hlZHVsZWROYXZpZ2F0aW9u
KDAsIHN1Ym1pc3Npb24tPmxvY2tIaXN0b3J5KCksIGxvY2tCYWNrRm9yd2FyZExpc3QsIGR1cmlu
Z0xvYWQsIHRydWUpCisgICAgICAgICwgbV9zdWJtaXNzaW9uKHN1Ym1pc3Npb24pCiAgICAgICAg
ICwgbV93YXNQcm9jZXNzaW5nVXNlckdlc3R1cmUoVXNlckdlc3R1cmVJbmRpY2F0b3I6OnByb2Nl
c3NpbmdVc2VyR2VzdHVyZSgpKQogICAgIHsKLSAgICAgICAgQVNTRVJUKCFmcmFtZVJlcXVlc3Qu
aXNFbXB0eSgpKTsKLSAgICAgICAgQVNTRVJUKG1fZm9ybVN0YXRlKTsKKyAgICAgICAgQVNTRVJU
KG1fc3VibWlzc2lvbi0+c3RhdGUoKSk7CiAgICAgfQogCiAgICAgdmlydHVhbCB2b2lkIGZpcmUo
RnJhbWUqIGZyYW1lKQpAQCAtMTg5LDkgKzE4NywxMSBAQCBwdWJsaWM6CiAgICAgICAgIC8vIE5v
dyB0aGF0IHRoZSB0aW1lciBoYXMgZmlyZWQsIHdlIG5lZWQgdG8gcmVwZWF0IHRoZSBzZWN1cml0
eSBjaGVjayB3aGljaCBub3JtYWxseSBpcyBkb25lIHdoZW4KICAgICAgICAgLy8gc2VsZWN0aW5n
IGEgdGFyZ2V0LCBpbiBjYXNlIGNvbmRpdGlvbnMgaGF2ZSBjaGFuZ2VkLiBPdGhlciBjb2RlIHBh
dGhzIGF2b2lkIHRoaXMgYnkgdGFyZ2V0aW5nCiAgICAgICAgIC8vIHdpdGhvdXQgbGVhdmluZyBh
IHRpbWUgd2luZG93LiBJZiB3ZSBmYWlsIHRoZSBjaGVjayBqdXN0IHNpbGVudGx5IGRyb3AgdGhl
IGZvcm0gc3VibWlzc2lvbi4KLSAgICAgICAgaWYgKCFtX2Zvcm1TdGF0ZS0+c291cmNlRnJhbWUo
KS0+bG9hZGVyKCktPnNob3VsZEFsbG93TmF2aWdhdGlvbihmcmFtZSkpCisgICAgICAgIGlmICgh
bV9zdWJtaXNzaW9uLT5zdGF0ZSgpLT5zb3VyY2VGcmFtZSgpLT5sb2FkZXIoKS0+c2hvdWxkQWxs
b3dOYXZpZ2F0aW9uKGZyYW1lKSkKICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgZnJhbWUt
PmxvYWRlcigpLT5sb2FkRnJhbWVSZXF1ZXN0KG1fZnJhbWVSZXF1ZXN0LCBsb2NrSGlzdG9yeSgp
LCBsb2NrQmFja0ZvcndhcmRMaXN0KCksIG1fZXZlbnQsIG1fZm9ybVN0YXRlLCBTZW5kUmVmZXJy
ZXIpOworICAgICAgICBGcmFtZUxvYWRSZXF1ZXN0IGZyYW1lUmVxdWVzdDsKKyAgICAgICAgbV9z
dWJtaXNzaW9uLT5wb3B1bGF0ZUZyYW1lTG9hZFJlcXVlc3QoZnJhbWVSZXF1ZXN0KTsKKyAgICAg
ICAgZnJhbWUtPmxvYWRlcigpLT5sb2FkRnJhbWVSZXF1ZXN0KGZyYW1lUmVxdWVzdCwgbG9ja0hp
c3RvcnkoKSwgbG9ja0JhY2tGb3J3YXJkTGlzdCgpLCBtX3N1Ym1pc3Npb24tPmV2ZW50KCksIG1f
c3VibWlzc2lvbi0+c3RhdGUoKSwgU2VuZFJlZmVycmVyKTsKICAgICB9CiAKICAgICAvLyBGSVhN
RTogSW1wbGVtZW50IGRpZFN0YXJ0VGltZXI/IEl0IHdvdWxkIG1ha2Ugc2Vuc2UgdG8gcmVwb3J0
IGZvcm0KQEAgLTIwMCw5ICsyMDAsNyBAQCBwdWJsaWM6CiAgICAgLy8gYmUgYSBiZWhhdmlvciBj
aGFuZ2UuCiAKIHByaXZhdGU6Ci0gICAgY29uc3QgRnJhbWVMb2FkUmVxdWVzdCBtX2ZyYW1lUmVx
dWVzdDsKLSAgICBjb25zdCBSZWZQdHI8RXZlbnQ+IG1fZXZlbnQ7Ci0gICAgY29uc3QgUmVmUHRy
PEZvcm1TdGF0ZT4gbV9mb3JtU3RhdGU7CisgICAgUmVmUHRyPEZvcm1TdWJtaXNzaW9uPiBtX3N1
Ym1pc3Npb247CiAgICAgYm9vbCBtX3dhc1Byb2Nlc3NpbmdVc2VyR2VzdHVyZTsKIH07CiAKQEAg
LTI4NiwxMSArMjg0LDkgQEAgdm9pZCBSZWRpcmVjdFNjaGVkdWxlcjo6c2NoZWR1bGVMb2NhdGlv
bkNoYW5nZShjb25zdCBTdHJpbmcmIHVybCwgY29uc3QgU3RyaW5nJgogICAgIHNjaGVkdWxlKG5l
dyBTY2hlZHVsZWRMb2NhdGlvbkNoYW5nZSh1cmwsIHJlZmVycmVyLCBsb2NrSGlzdG9yeSwgbG9j
a0JhY2tGb3J3YXJkTGlzdCwgd2FzVXNlckdlc3R1cmUsIGR1cmluZ0xvYWQpKTsKIH0KIAotdm9p
ZCBSZWRpcmVjdFNjaGVkdWxlcjo6c2NoZWR1bGVGb3JtU3VibWlzc2lvbihjb25zdCBGcmFtZUxv
YWRSZXF1ZXN0JiBmcmFtZVJlcXVlc3QsCi0gICAgYm9vbCBsb2NrSGlzdG9yeSwgUGFzc1JlZlB0
cjxFdmVudD4gZXZlbnQsIFBhc3NSZWZQdHI8Rm9ybVN0YXRlPiBmb3JtU3RhdGUpCit2b2lkIFJl
ZGlyZWN0U2NoZWR1bGVyOjpzY2hlZHVsZUZvcm1TdWJtaXNzaW9uKFBhc3NSZWZQdHI8Rm9ybVN1
Ym1pc3Npb24+IHN1Ym1pc3Npb24pCiB7CiAgICAgQVNTRVJUKG1fZnJhbWUtPnBhZ2UoKSk7Ci0g
ICAgQVNTRVJUKCFmcmFtZVJlcXVlc3QuaXNFbXB0eSgpKTsKIAogICAgIC8vIEZJWE1FOiBEbyB3
ZSBuZWVkIHNwZWNpYWwgaGFuZGxpbmcgZm9yIGZvcm0gc3VibWlzc2lvbnMgd2hlcmUgdGhlIFVS
TCBpcyB0aGUgc2FtZQogICAgIC8vIGFzIHRoZSBjdXJyZW50IG9uZSBleGNlcHQgZm9yIHRoZSBm
cmFnbWVudCBwYXJ0PyBTZWUgc2NoZWR1bGVMb2NhdGlvbkNoYW5nZSBhYm92ZS4KQEAgLTMwMyw5
ICsyOTksOSBAQCB2b2lkIFJlZGlyZWN0U2NoZWR1bGVyOjpzY2hlZHVsZUZvcm1TdWJtaXNzaW9u
KGNvbnN0IEZyYW1lTG9hZFJlcXVlc3QmIGZyYW1lUmVxdQogICAgIC8vIHRvIG1hdGNoIElFIGFu
ZCBPcGVyYS4KICAgICAvLyBTZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTMyMzgzIGZvciB0aGUgb3JpZ2luYWwgbW90aXZhdGlvbiBmb3IgdGhpcy4KIAotICAgIGJv
b2wgbG9ja0JhY2tGb3J3YXJkTGlzdCA9IG11c3RMb2NrQmFja0ZvcndhcmRMaXN0KG1fZnJhbWUp
IHx8IChmb3JtU3RhdGUtPmZvcm1TdWJtaXNzaW9uVHJpZ2dlcigpID09IFN1Ym1pdHRlZEJ5SmF2
YVNjcmlwdCAmJiBtX2ZyYW1lLT50cmVlKCktPnBhcmVudCgpKTsKKyAgICBib29sIGxvY2tCYWNr
Rm9yd2FyZExpc3QgPSBtdXN0TG9ja0JhY2tGb3J3YXJkTGlzdChtX2ZyYW1lKSB8fCAoc3VibWlz
c2lvbi0+c3RhdGUoKS0+Zm9ybVN1Ym1pc3Npb25UcmlnZ2VyKCkgPT0gU3VibWl0dGVkQnlKYXZh
U2NyaXB0ICYmIG1fZnJhbWUtPnRyZWUoKS0+cGFyZW50KCkpOwogCi0gICAgc2NoZWR1bGUobmV3
IFNjaGVkdWxlZEZvcm1TdWJtaXNzaW9uKGZyYW1lUmVxdWVzdCwgbG9ja0hpc3RvcnksIGxvY2tC
YWNrRm9yd2FyZExpc3QsIGV2ZW50LCBmb3JtU3RhdGUsIGR1cmluZ0xvYWQpKTsKKyAgICBzY2hl
ZHVsZShuZXcgU2NoZWR1bGVkRm9ybVN1Ym1pc3Npb24oc3VibWlzc2lvbiwgbG9ja0JhY2tGb3J3
YXJkTGlzdCwgZHVyaW5nTG9hZCkpOwogfQogCiB2b2lkIFJlZGlyZWN0U2NoZWR1bGVyOjpzY2hl
ZHVsZVJlZnJlc2goYm9vbCB3YXNVc2VyR2VzdHVyZSkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvbG9h
ZGVyL1JlZGlyZWN0U2NoZWR1bGVyLmggYi9XZWJDb3JlL2xvYWRlci9SZWRpcmVjdFNjaGVkdWxl
ci5oCmluZGV4IGFjMzczMWM2MGQxMjRjMWU5ZjYxNjQxM2RkZjQ1MmJlOWY0OGQyY2QuLmU5ZDA0
ZGM2ZDM2OTYwYTc3NmRkZjYwZWQ4OWEzZDhiYjUyZDM2NjkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
bG9hZGVyL1JlZGlyZWN0U2NoZWR1bGVyLmgKKysrIGIvV2ViQ29yZS9sb2FkZXIvUmVkaXJlY3RT
Y2hlZHVsZXIuaApAQCAtNDAsNiArNDAsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFz
cyBGb3JtU3RhdGU7CitjbGFzcyBGb3JtU3VibWlzc2lvbjsKIGNsYXNzIEZyYW1lOwogY2xhc3Mg
U3RyaW5nOwogCkBAIC01Niw3ICs1Nyw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgc2NoZWR1bGVS
ZWRpcmVjdChkb3VibGUgZGVsYXksIGNvbnN0IFN0cmluZyYgdXJsKTsKICAgICB2b2lkIHNjaGVk
dWxlTG9jYXRpb25DaGFuZ2UoY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IFN0cmluZyYgcmVmZXJy
ZXIsIGJvb2wgbG9ja0hpc3RvcnkgPSB0cnVlLCBib29sIGxvY2tCYWNrRm9yd2FyZExpc3QgPSB0
cnVlLCBib29sIHVzZXJHZXN0dXJlID0gZmFsc2UpOwotICAgIHZvaWQgc2NoZWR1bGVGb3JtU3Vi
bWlzc2lvbihjb25zdCBGcmFtZUxvYWRSZXF1ZXN0JiwgYm9vbCBsb2NrSGlzdG9yeSwgUGFzc1Jl
ZlB0cjxFdmVudD4sIFBhc3NSZWZQdHI8Rm9ybVN0YXRlPik7CisgICAgdm9pZCBzY2hlZHVsZUZv
cm1TdWJtaXNzaW9uKFBhc3NSZWZQdHI8Rm9ybVN1Ym1pc3Npb24+KTsKICAgICB2b2lkIHNjaGVk
dWxlUmVmcmVzaChib29sIHVzZXJHZXN0dXJlID0gZmFsc2UpOwogICAgIHZvaWQgc2NoZWR1bGVI
aXN0b3J5TmF2aWdhdGlvbihpbnQgc3RlcHMpOwogCg==
</data>
<flag name="review"
          id="45938"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>