<?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>27779</bug_id>
          
          <creation_ts>2009-07-28 13:42:32 -0700</creation_ts>
          <short_desc>WINCE PORT: modified graphics files</short_desc>
          <delta_ts>2009-07-30 11:09:02 -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>Platform</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>Other</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>23154</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="Yong Li">yong.li.webkit</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>manyoso</cc>
    
    <cc>staikos</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>135359</commentid>
    <comment_count>0</comment_count>
    <who name="Yong Li">yong.li.webkit</who>
    <bug_when>2009-07-28 13:42:32 -0700</bug_when>
    <thetext>patch is comming</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>135361</commentid>
    <comment_count>1</comment_count>
      <attachid>33668</attachid>
    <who name="Yong Li">yong.li.webkit</who>
    <bug_when>2009-07-28 13:45:50 -0700</bug_when>
    <thetext>Created attachment 33668
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>135363</commentid>
    <comment_count>2</comment_count>
      <attachid>33669</attachid>
    <who name="Yong Li">yong.li.webkit</who>
    <bug_when>2009-07-28 13:51:53 -0700</bug_when>
    <thetext>Created attachment 33669
remove an unnecessary line</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>135449</commentid>
    <comment_count>3</comment_count>
      <attachid>33669</attachid>
    <who name="George Staikos">staikos</who>
    <bug_when>2009-07-28 18:32:41 -0700</bug_when>
    <thetext>Comment on attachment 33669
remove an unnecessary line

A lot of the things conditionally removed in this patch look suspicious to me.  Are you sure they&apos;re correct?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>135576</commentid>
    <comment_count>4</comment_count>
    <who name="Yong Li">yong.li.webkit</who>
    <bug_when>2009-07-29 06:54:48 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 33669 [details])
&gt; A lot of the things conditionally removed in this patch look suspicious to me. 
&gt; Are you sure they&apos;re correct?

Which things do you mean?

I didn&apos;t see many things removed. We don&apos;t have PlatformGradient.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>135577</commentid>
    <comment_count>5</comment_count>
    <who name="George Staikos">staikos</who>
    <bug_when>2009-07-29 07:18:00 -0700</bug_when>
    <thetext>Is it possible to refactor this into a PlatformGradient class that doesn&apos;t do any &quot;platform&quot; calls so we still fit within the framework?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>135598</commentid>
    <comment_count>6</comment_count>
    <who name="Yong Li">yong.li.webkit</who>
    <bug_when>2009-07-29 08:45:15 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; Is it possible to refactor this into a PlatformGradient class that doesn&apos;t do
&gt; any &quot;platform&quot; calls so we still fit within the framework?

Yes. We can leave a void* for it. just a waste of 4 bytes. I&apos;ll clean it up</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>135615</commentid>
    <comment_count>7</comment_count>
      <attachid>33719</attachid>
    <who name="Yong Li">yong.li.webkit</who>
    <bug_when>2009-07-29 10:06:00 -0700</bug_when>
    <thetext>Created attachment 33719
remove unnecessary changes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>135642</commentid>
    <comment_count>8</comment_count>
      <attachid>33731</attachid>
    <who name="Yong Li">yong.li.webkit</who>
    <bug_when>2009-07-29 12:30:52 -0700</bug_when>
    <thetext>Created attachment 33731
add some comments for removed ASSERT</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>135644</commentid>
    <comment_count>9</comment_count>
      <attachid>33731</attachid>
    <who name="George Staikos">staikos</who>
    <bug_when>2009-07-29 12:37:10 -0700</bug_when>
    <thetext>Comment on attachment 33731
add some comments for removed ASSERT

Still more ifdef than I&apos;d like to see but I think it&apos;s ok for now.  Unfortunately WinCE doesn&apos;t make this easy.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>135780</commentid>
    <comment_count>10</comment_count>
      <attachid>33731</attachid>
    <who name="George Staikos">staikos</who>
    <bug_when>2009-07-29 20:49:45 -0700</bug_when>
    <thetext>Comment on attachment 33731
add some comments for removed ASSERT

        
&gt; +#if !PLATFORM(WINCE) || PLATFORM(QT)
&gt;          PlatformGraphicsContext* platformContext() const;
&gt; +#endif
&gt; +
&gt; +        const Font&amp; font() const;
&gt; +        void setFont(const Font&amp;);

  I think we have a problem here.  Why are these unconditionally added?

  In retrospect I think we need more cleanup.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>135836</commentid>
    <comment_count>11</comment_count>
    <who name="Yong Li">yong.li.webkit</who>
    <bug_when>2009-07-30 06:41:52 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; (From update of attachment 33731 [details])
&gt; 
&gt; &gt; +#if !PLATFORM(WINCE) || PLATFORM(QT)
&gt; &gt;          PlatformGraphicsContext* platformContext() const;
&gt; &gt; +#endif
&gt; &gt; +
&gt; &gt; +        const Font&amp; font() const;
&gt; &gt; +        void setFont(const Font&amp;);
&gt; 
&gt;   I think we have a problem here.  Why are these unconditionally added?
&gt; 
&gt;   In retrospect I think we need more cleanup.

Hm... we don&apos;t use them. probably it&apos;s a garbage from very old revision. I&apos;ll do do more cleanup.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>135841</commentid>
    <comment_count>12</comment_count>
      <attachid>33777</attachid>
    <who name="Yong Li">yong.li.webkit</who>
    <bug_when>2009-07-30 07:27:11 -0700</bug_when>
    <thetext>Created attachment 33777
more clean up</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>135890</commentid>
    <comment_count>13</comment_count>
    <who name="George Staikos">staikos</who>
    <bug_when>2009-07-30 11:09:02 -0700</bug_when>
    <thetext>Committed r46590</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>33668</attachid>
            <date>2009-07-28 13:45:50 -0700</date>
            <delta_ts>2009-07-28 13:51:53 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>27779.patch</filename>
            <type>text/plain</type>
            <size>17127</size>
            <attacher name="Yong Li">yong.li.webkit</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
NTk5ZjI2My4uNzhmOWFkOCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMSBAQAorMjAwOS0wNy0yOCAgWW9uZyBMaSAgPHlv
bmcubGlAdG9yY2htb2JpbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFdJTkNFIFBPUlQ6IG1vZGlmaWVkIGdyYXBoaWNzIGZpbGVzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNzc3OQorCisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuaDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9HcmFkaWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFkaWVudDo6c2V0
U3ByZWFkTWV0aG9kKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFkaWVudC5oOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5jcHA6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0Lmg6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvSW1hZ2VTb3VyY2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9N
ZWRpYVBsYXllci5jcHA6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvUGF0aC5oOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL1BhdHRlcm4uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy90cmFuc2Zvcm1zL01hdHJpeDNEVHJhbnNmb3JtT3BlcmF0aW9uLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6Ok1hdHJpeDNEVHJhbnNmb3JtT3BlcmF0aW9uOjpibGVuZCk6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9NYXRyaXhUcmFuc2Zvcm1PcGVyYXRpb24u
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6TWF0cml4VHJhbnNmb3JtT3BlcmF0aW9uOjpibGVuZCk6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9UcmFuc2Zvcm1hdGlvbk1h
dHJpeC5oOgorICAgICAgICAoV2ViQ29yZTo6VHJhbnNmb3JtYXRpb25NYXRyaXg6Om9wZXJhdG9y
Kik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ljb25XaW4uY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SWNvbjo6Y3JlYXRlSWNvbkZvckZpbGUpOgorICAgICAgICAoV2ViQ29yZTo6
SWNvbjo6Y3JlYXRlSWNvbkZvckZpbGVzKToKKyAgICAgICAgKFdlYkNvcmU6Okljb246OnBhaW50
KToKKwogMjAwOS0wNy0yNyAgWW9uZyBMaSAgPHlvbmcubGlAdG9yY2htb2JpbGUuY29tPgogCiAg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9CaXRtYXBJbWFnZS5oCmluZGV4IDhiNzcwYTEuLjNlMmUwY2QgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuaAorKysgYi9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0JpdG1hcEltYWdlLmgKQEAgLTEsNiArMSw3IEBACiAvKgogICogQ29weXJpZ2h0
IChDKSAyMDA2IFNhbXVlbCBXZWluaWcgKHNhbS53ZWluaWdAZ21haWwuY29tKQogICogQ29weXJp
Z2h0IChDKSAyMDA0LCAyMDA1LCAyMDA2IEFwcGxlIENvbXB1dGVyLCBJbmMuICBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA4LTIwMDkgVG9yY2ggTW9iaWxlLCBJbmMu
CiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTE2MCw3ICsxNjEsNyBAQCBwcm90
ZWN0ZWQ6CiAgICAgdmlydHVhbCB2b2lkIGRyYXdGcmFtZU1hdGNoaW5nU291cmNlU2l6ZShHcmFw
aGljc0NvbnRleHQqLCBjb25zdCBGbG9hdFJlY3QmIGRzdFJlY3QsIGNvbnN0IEludFNpemUmIHNy
Y1NpemUsIENvbXBvc2l0ZU9wZXJhdG9yKTsKICNlbmRpZgogICAgIHZpcnR1YWwgdm9pZCBkcmF3
KEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IEZsb2F0UmVjdCYgZHN0UmVjdCwgY29uc3QgRmxvYXRS
ZWN0JiBzcmNSZWN0LCBDb21wb3NpdGVPcGVyYXRvcik7Ci0jaWYgUExBVEZPUk0oV1gpCisjaWYg
UExBVEZPUk0oV1gpIHx8IFBMQVRGT1JNKFdJTkNFKQogICAgIHZpcnR1YWwgdm9pZCBkcmF3UGF0
dGVybihHcmFwaGljc0NvbnRleHQqLCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IFRy
YW5zZm9ybWF0aW9uTWF0cml4JiBwYXR0ZXJuVHJhbnNmb3JtLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBjb25zdCBGbG9hdFBvaW50JiBwaGFzZSwgQ29tcG9zaXRlT3BlcmF0b3IsIGNv
bnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QpOwogI2VuZGlmICAgIApAQCAtMjIwLDcgKzIyMSw5IEBA
IHByb3RlY3RlZDoKICAgICB7CiAgICAgICAgIGlmICghbV9jaGVja2VkRm9yU29saWRDb2xvciAm
JiBmcmFtZUNvdW50KCkgPiAwKSB7CiAgICAgICAgICAgICBjaGVja0ZvclNvbGlkQ29sb3IoKTsK
KyNpZiAhUExBVEZPUk0oV0lOQ0UpCiAgICAgICAgICAgICBBU1NFUlQobV9jaGVja2VkRm9yU29s
aWRDb2xvcik7CisjZW5kaWYKICAgICAgICAgfQogICAgICAgICByZXR1cm4gbV9pc1NvbGlkQ29s
b3IgJiYgbV9jdXJyZW50RnJhbWUgPT0gMDsKICAgICB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0dyYWRpZW50LmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
R3JhZGllbnQuY3BwCmluZGV4IDc3YTBkMjEuLjkyYmIyNjggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvR3JhZGllbnQuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvR3JhZGllbnQuY3BwCkBAIC0xNTAsOCArMTUwLDEwIEBAIGludCBHcmFkaWVudDo6Zmlu
ZFN0b3AoZmxvYXQgdmFsdWUpIGNvbnN0CiAKIHZvaWQgR3JhZGllbnQ6OnNldFNwcmVhZE1ldGhv
ZChHcmFkaWVudFNwcmVhZE1ldGhvZCBzcHJlYWRNZXRob2QpCiB7CisjaWYgIVBMQVRGT1JNKFdJ
TkNFKQogICAgIC8vIEZJWE1FOiBTaG91bGQgaXQgYmVjb21lIG5lY2Vzc2FyeSwgYWxsb3cgY2Fs
bHMgdG8gdGhpcyBtZXRob2QgYWZ0ZXIgbV9ncmFkaWVudCBoYXMgYmVlbiBzZXQuCiAgICAgQVNT
RVJUKG1fZ3JhZGllbnQgPT0gMCk7CisjZW5kaWYKICAgICBtX3NwcmVhZE1ldGhvZCA9IHNwcmVh
ZE1ldGhvZDsKIH0KIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFk
aWVudC5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFkaWVudC5oCmluZGV4IGE3NGIx
ZWYuLmM4MTJlZTUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhZGll
bnQuaAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYWRpZW50LmgKQEAgLTEsNiAr
MSw3IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3LCAyMDA4IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAwNyBBbHAgVG9rZXIgPGFs
cEBhdG9rZXIuY29tPgorICogQ29weXJpZ2h0IChDKSAyMDA4IFRvcmNoIE1vYmlsZSwgSW5jLgog
ICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC00OSw2ICs1MCw4IEBAIHR5cGVkZWYg
Y2Fpcm9fcGF0dGVybl90KiBQbGF0Zm9ybUdyYWRpZW50OwogY2xhc3MgU2tTaGFkZXI7CiB0eXBl
ZGVmIGNsYXNzIFNrU2hhZGVyKiBQbGF0Zm9ybUdyYWRpZW50OwogdHlwZWRlZiBjbGFzcyBTa1No
YWRlciogUGxhdGZvcm1QYXR0ZXJuOworI2VsaWYgUExBVEZPUk0oV0lOQ0UpCit0eXBlZGVmIHZv
aWQqIFdpbmNlR3JhZGllbnQ7CiAjZWxzZQogdHlwZWRlZiB2b2lkKiBQbGF0Zm9ybUdyYWRpZW50
OwogI2VuZGlmCkBAIC03Myw4ICs3NiwxNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICAg
ICAgdm9pZCBnZXRDb2xvcihmbG9hdCB2YWx1ZSwgZmxvYXQqIHIsIGZsb2F0KiBnLCBmbG9hdCog
YiwgZmxvYXQqIGEpIGNvbnN0OwogCisjaWYgUExBVEZPUk0oV0lOQ0UpICYmICFQTEFURk9STShR
VCkKKyAgICAgICAgY29uc3QgRmxvYXRQb2ludCYgcDAoKSBjb25zdCB7IHJldHVybiBtX3AwOyB9
CisgICAgICAgIGNvbnN0IEZsb2F0UG9pbnQmIHAxKCkgY29uc3QgeyByZXR1cm4gbV9wMTsgfQor
ICAgICAgICBmbG9hdCByMCgpIGNvbnN0IHsgcmV0dXJuIG1fcjA7IH0KKyAgICAgICAgZmxvYXQg
cjEoKSBjb25zdCB7IHJldHVybiBtX3IxOyB9CisgICAgICAgIGJvb2wgaXNSYWRpYWwoKSBjb25z
dCB7IHJldHVybiBtX3JhZGlhbDsgfQorICAgICAgICBzdHJ1Y3QgQ29sb3JTdG9wOworICAgICAg
ICBjb25zdCBWZWN0b3I8Q29sb3JTdG9wPiYgZ2V0U3RvcHMoKSBjb25zdDsKKyNlbHNlCiAgICAg
ICAgIFBsYXRmb3JtR3JhZGllbnQgcGxhdGZvcm1HcmFkaWVudCgpOwotCisjZW5kaWYKICAgICAg
ICAgc3RydWN0IENvbG9yU3RvcCB7CiAgICAgICAgICAgICBmbG9hdCBzdG9wOwogICAgICAgICAg
ICAgZmxvYXQgcmVkOwpAQCAtMTAxLDcgKzExMywxMSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAg
ICAgICAgIEdyYWRpZW50KGNvbnN0IEZsb2F0UG9pbnQmIHAwLCBjb25zdCBGbG9hdFBvaW50JiBw
MSk7CiAgICAgICAgIEdyYWRpZW50KGNvbnN0IEZsb2F0UG9pbnQmIHAwLCBmbG9hdCByMCwgY29u
c3QgRmxvYXRQb2ludCYgcDEsIGZsb2F0IHIxKTsKIAorI2lmIFBMQVRGT1JNKFdJTkNFKSAmJiAh
UExBVEZPUk0oUVQpCisgICAgICAgIHZvaWQgcGxhdGZvcm1Jbml0KCkge30KKyNlbHNlCiAgICAg
ICAgIHZvaWQgcGxhdGZvcm1Jbml0KCkgeyBtX2dyYWRpZW50ID0gMDsgfQorI2VuZGlmCiAgICAg
ICAgIHZvaWQgcGxhdGZvcm1EZXN0cm95KCk7CiAKICAgICAgICAgaW50IGZpbmRTdG9wKGZsb2F0
IHZhbHVlKSBjb25zdDsKQEAgLTExNyw3ICsxMzMsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAg
ICAgICAgIEdyYWRpZW50U3ByZWFkTWV0aG9kIG1fc3ByZWFkTWV0aG9kOwogICAgICAgICBUcmFu
c2Zvcm1hdGlvbk1hdHJpeCBtX2dyYWRpZW50U3BhY2VUcmFuc2Zvcm1hdGlvbjsKIAorI2lmICFQ
TEFURk9STShXSU5DRSkgfHwgUExBVEZPUk0oUVQpCiAgICAgICAgIFBsYXRmb3JtR3JhZGllbnQg
bV9ncmFkaWVudDsKKyNlbmRpZgogICAgIH07CiAKIH0gLy9uYW1lc3BhY2UKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmNwcCBiL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmNwcAppbmRleCAzZTM2ZjczLi5hNGU4
NDA4IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4
dC5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuY3Bw
CkBAIC0zMjQsNiArMzI0LDcgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdJbWFnZShJbWFn
ZSogaW1hZ2UsIGNvbnN0IEludFJlY3QmIGRlc3QsIGNvbnN0IEludFJlY3QKICAgICBkcmF3SW1h
Z2UoaW1hZ2UsIEZsb2F0UmVjdChkZXN0KSwgc3JjUmVjdCwgb3AsIHVzZUxvd1F1YWxpdHlTY2Fs
ZSk7CiB9CiAKKyNpZiAhUExBVEZPUk0oV0lOQ0UpIHx8IFBMQVRGT1JNKFFUKQogdm9pZCBHcmFw
aGljc0NvbnRleHQ6OmRyYXdUZXh0KGNvbnN0IEZvbnQmIGZvbnQsIGNvbnN0IFRleHRSdW4mIHJ1
biwgY29uc3QgSW50UG9pbnQmIHBvaW50LCBpbnQgZnJvbSwgaW50IHRvKQogewogICAgIGlmIChw
YWludGluZ0Rpc2FibGVkKCkpCkBAIC0zMzEsNiArMzMyLDcgQEAgdm9pZCBHcmFwaGljc0NvbnRl
eHQ6OmRyYXdUZXh0KGNvbnN0IEZvbnQmIGZvbnQsIGNvbnN0IFRleHRSdW4mIHJ1biwgY29uc3Qg
SW50UG8KICAgICAKICAgICBmb250LmRyYXdUZXh0KHRoaXMsIHJ1biwgcG9pbnQsIGZyb20sIHRv
KTsKIH0KKyNlbmRpZgogCiB2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJhd0JpZGlUZXh0KGNvbnN0
IEZvbnQmIGZvbnQsIGNvbnN0IFRleHRSdW4mIHJ1biwgY29uc3QgRmxvYXRQb2ludCYgcG9pbnQp
CiB7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4
dC5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuaAppbmRleCAw
MjM3YWJmLi4zZmY1ZGEwIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dy
YXBoaWNzQ29udGV4dC5oCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3ND
b250ZXh0LmgKQEAgLTEsNSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDAzLCAyMDA2
LCAyMDA3IEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMp
IDIwMDgtMjAwOSBUb3JjaCBNb2JpbGUsIEluYy4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwpAQCAtNjUsNiArNjYsOCBAQCBjbGFzcyB3eFdpbmRvd0RDOwogI2VuZGlmCiAjZWxpZiBQ
TEFURk9STShTS0lBKQogdHlwZWRlZiBjbGFzcyBQbGF0Zm9ybUNvbnRleHRTa2lhIFBsYXRmb3Jt
R3JhcGhpY3NDb250ZXh0OworI2VsaWYgUExBVEZPUk0oV0lOQ0UpCit0eXBlZGVmIHN0cnVjdCBI
RENfXyBQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dDsKICNlbHNlCiB0eXBlZGVmIHZvaWQgUGxhdGZv
cm1HcmFwaGljc0NvbnRleHQ7CiAjZW5kaWYKQEAgLTg4LDYgKzkxLDEyIEBAIHR5cGVkZWYgdW5z
aWduZWQgY2hhciBVSW50ODsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCisjaWYgUExBVEZPUk0o
V0lOQ0UpICYmICFQTEFURk9STShRVCkKKyAgICBjbGFzcyBTaGFyZWRCaXRtYXA7CisgICAgY2xh
c3MgU2ltcGxlRm9udERhdGE7CisgICAgY2xhc3MgR2x5cGhCdWZmZXI7CisjZW5kaWYKKwogICAg
IGNvbnN0IGludCBjTWlzc3BlbGxpbmdMaW5lVGhpY2tuZXNzID0gMzsKICAgICBjb25zdCBpbnQg
Y01pc3NwZWxsaW5nTGluZVBhdHRlcm5XaWR0aCA9IDQ7CiAgICAgY29uc3QgaW50IGNNaXNzcGVs
bGluZ0xpbmVQYXR0ZXJuR2FwV2lkdGggPSAxOwpAQCAtMTQyLDcgKzE1MSwxMiBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAgICAgICAgIEdyYXBoaWNzQ29udGV4dChQbGF0Zm9ybUdyYXBoaWNzQ29u
dGV4dCopOwogICAgICAgICB+R3JhcGhpY3NDb250ZXh0KCk7CiAgICAgICAgCisjaWYgIVBMQVRG
T1JNKFdJTkNFKSB8fCBQTEFURk9STShRVCkKICAgICAgICAgUGxhdGZvcm1HcmFwaGljc0NvbnRl
eHQqIHBsYXRmb3JtQ29udGV4dCgpIGNvbnN0OworI2VuZGlmCisKKyAgICAgICAgY29uc3QgRm9u
dCYgZm9udCgpIGNvbnN0OworICAgICAgICB2b2lkIHNldEZvbnQoY29uc3QgRm9udCYpOwogICAg
ICAgICAKICAgICAgICAgZmxvYXQgc3Ryb2tlVGhpY2tuZXNzKCkgY29uc3Q7CiAgICAgICAgIHZv
aWQgc2V0U3Ryb2tlVGhpY2tuZXNzKGZsb2F0KTsKQEAgLTI5NSwxMCArMzA5LDI2IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKICAgICAgICAgVHJhbnNmb3JtYXRpb25NYXRyaXggZ2V0Q1RNKCkgY29u
c3Q7CiAKICNpZiBQTEFURk9STShXSU4pCisgICAgICAgIEhEQyBnZXRXaW5kb3dzQ29udGV4dChj
b25zdCBJbnRSZWN0JiwgYm9vbCBzdXBwb3J0QWxwaGFCbGVuZCA9IGZhbHNlLCBib29sIG1heUNy
ZWF0ZUJpdG1hcCA9IHRydWUpOyAvLyBUaGUgcGFzc2VkIGluIHJlY3QgaXMgdXNlZCB0byBjcmVh
dGUgYSBiaXRtYXAgZm9yIGNvbXBvc2l0aW5nIGluc2lkZSB0cmFuc3BhcmVuY3kgbGF5ZXJzLgor
ICAgICAgICB2b2lkIHJlbGVhc2VXaW5kb3dzQ29udGV4dChIREMsIGNvbnN0IEludFJlY3QmLCBi
b29sIHN1cHBvcnRBbHBoYUJsZW5kID0gZmFsc2UsIGJvb2wgbWF5Q3JlYXRlQml0bWFwID0gdHJ1
ZSk7ICAgIC8vIFRoZSBwYXNzZWQgaW4gSERDIHNob3VsZCBiZSB0aGUgb25lIGhhbmRlZCBiYWNr
IGJ5IGdldFdpbmRvd3NDb250ZXh0LgorI2VuZGlmCisKKyNpZiBQTEFURk9STShXSU5DRSkgJiYg
IVBMQVRGT1JNKFFUKQorICAgICAgICB2b2lkIHNldEJpdG1hcChQYXNzUmVmUHRyPFNoYXJlZEJp
dG1hcD4pOworICAgICAgICBjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgYWZmaW5lVHJhbnNm
b3JtKCkgY29uc3Q7CisgICAgICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4JiBhZmZpbmVUcmFuc2Zv
cm0oKTsKKyAgICAgICAgdm9pZCByZXNldEFmZmluZVRyYW5zZm9ybSgpOworICAgICAgICB2b2lk
IGZpbGxSZWN0KGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IEdyYWRpZW50Kik7CisgICAgICAgIHZv
aWQgZHJhd1RleHQoY29uc3QgU2ltcGxlRm9udERhdGEqIGZvbnREYXRhLCBjb25zdCBHbHlwaEJ1
ZmZlciYgZ2x5cGhCdWZmZXIsIGludCBmcm9tLCBpbnQgbnVtR2x5cGhzLCBjb25zdCBGbG9hdFBv
aW50JiBwb2ludCk7CisgICAgICAgIHZvaWQgZHJhd0ZyYW1lQ29udHJvbChjb25zdCBJbnRSZWN0
JiByZWN0LCB1bnNpZ25lZCB0eXBlLCB1bnNpZ25lZCBzdGF0ZSk7CisgICAgICAgIHZvaWQgZHJh
d0ZvY3VzUmVjdChjb25zdCBJbnRSZWN0JiByZWN0KTsKKyAgICAgICAgdm9pZCBwYWludFRleHRG
aWVsZChjb25zdCBJbnRSZWN0JiByZWN0LCB1bnNpZ25lZCBzdGF0ZSk7CisgICAgICAgIHZvaWQg
ZHJhd0JpdG1hcChTaGFyZWRCaXRtYXAqLCBjb25zdCBJbnRSZWN0JiBkc3RSZWN0LCBjb25zdCBJ
bnRSZWN0JiBzcmNSZWN0LCBDb21wb3NpdGVPcGVyYXRvciBjb21wb3NpdGVPcCk7CisgICAgICAg
IHZvaWQgZHJhd0JpdG1hcFBhdHRlcm4oU2hhcmVkQml0bWFwKiwgY29uc3QgRmxvYXRSZWN0JiB0
aWxlUmVjdEluLCBjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgcGF0dGVyblRyYW5zZm9ybSwg
Y29uc3QgRmxvYXRQb2ludCYgcGhhc2UsIENvbXBvc2l0ZU9wZXJhdG9yIG9wLCBjb25zdCBGbG9h
dFJlY3QmIGRlc3RSZWN0LCBjb25zdCBJbnRTaXplJiBvcmlnU291cmNlU2l6ZSk7CisgICAgICAg
IHZvaWQgZHJhd0ljb24oSElDT04gaWNvbiwgY29uc3QgSW50UmVjdCYgZHN0UmVjdCwgVUlOVCBm
bGFncyk7CisjZWxpZiBQTEFURk9STShXSU4pCiAgICAgICAgIEdyYXBoaWNzQ29udGV4dChIREMs
IGJvb2wgaGFzQWxwaGEgPSBmYWxzZSk7IC8vIEZJWE1FOiBUbyBiZSByZW1vdmVkLgogICAgICAg
ICBib29sIGluVHJhbnNwYXJlbmN5TGF5ZXIoKSBjb25zdDsKLSAgICAgICAgSERDIGdldFdpbmRv
d3NDb250ZXh0KGNvbnN0IEludFJlY3QmLCBib29sIHN1cHBvcnRBbHBoYUJsZW5kID0gdHJ1ZSwg
Ym9vbCBtYXlDcmVhdGVCaXRtYXAgPSB0cnVlKTsgLy8gVGhlIHBhc3NlZCBpbiByZWN0IGlzIHVz
ZWQgdG8gY3JlYXRlIGEgYml0bWFwIGZvciBjb21wb3NpdGluZyBpbnNpZGUgdHJhbnNwYXJlbmN5
IGxheWVycy4KLSAgICAgICAgdm9pZCByZWxlYXNlV2luZG93c0NvbnRleHQoSERDLCBjb25zdCBJ
bnRSZWN0JiwgYm9vbCBzdXBwb3J0QWxwaGFCbGVuZCA9IHRydWUsIGJvb2wgbWF5Q3JlYXRlQml0
bWFwID0gdHJ1ZSk7ICAgIC8vIFRoZSBwYXNzZWQgaW4gSERDIHNob3VsZCBiZSB0aGUgb25lIGhh
bmRlZCBiYWNrIGJ5IGdldFdpbmRvd3NDb250ZXh0LgogCiAgICAgICAgIC8vIFdoZW4gc2V0IHRv
IHRydWUsIGNoaWxkIHdpbmRvd3Mgc2hvdWxkIGJlIHJlbmRlcmVkIGludG8gdGhpcyBjb250ZXh0
CiAgICAgICAgIC8vIHJhdGhlciB0aGFuIGFsbG93aW5nIHRoZW0ganVzdCB0byByZW5kZXIgdG8g
dGhlIHNjcmVlbi4gRGVmYXVsdHMgdG8KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvSW1hZ2VTb3VyY2UuaCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VTb3Vy
Y2UuaAppbmRleCBhY2I2NGRlLi43MjRmODgxIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0ltYWdlU291cmNlLmgKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9J
bWFnZVNvdXJjZS5oCkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAwNCwg
MjAwNSwgMjAwNiBBcHBsZSBDb21wdXRlciwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
IENvcHlyaWdodCAoQykgMjAwNy0yMDA4IFRvcmNoIE1vYmlsZSwgSW5jLgogICoKICAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCkBAIC00Niw2ICs0Nyw4IEBAIHN0cnVjdCBfY2Fpcm9fc3VyZmFj
ZTsKIHR5cGVkZWYgc3RydWN0IF9jYWlyb19zdXJmYWNlIGNhaXJvX3N1cmZhY2VfdDsKICNlbGlm
IFBMQVRGT1JNKFNLSUEpCiBjbGFzcyBOYXRpdmVJbWFnZVNraWE7CisjZWxpZiBQTEFURk9STShX
SU5DRSkKKyNpbmNsdWRlICJTaGFyZWRCaXRtYXAuaCIKICNlbmRpZgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CkBAIC03OCw2ICs4MSwxMCBAQCB0eXBlZGVmIGNhaXJvX3N1cmZhY2VfdCogTmF0aXZl
SW1hZ2VQdHI7CiBjbGFzcyBJbWFnZURlY29kZXI7CiB0eXBlZGVmIEltYWdlRGVjb2RlciogTmF0
aXZlSW1hZ2VTb3VyY2VQdHI7CiB0eXBlZGVmIE5hdGl2ZUltYWdlU2tpYSogTmF0aXZlSW1hZ2VQ
dHI7CisjZWxpZiBQTEFURk9STShXSU5DRSkKK2NsYXNzIEltYWdlRGVjb2RlcjsKK3R5cGVkZWYg
SW1hZ2VEZWNvZGVyKiBOYXRpdmVJbWFnZVNvdXJjZVB0cjsKK3R5cGVkZWYgUmVmUHRyPFNoYXJl
ZEJpdG1hcD4gTmF0aXZlSW1hZ2VQdHI7CiAjZW5kaWYKIAogY29uc3QgaW50IGNBbmltYXRpb25M
b29wT25jZSA9IC0xOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRp
YVBsYXllci5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcApp
bmRleCBkNGZhYjUyLi5kN2Q4Y2VmIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL01lZGlhUGxheWVyLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlh
UGxheWVyLmNwcApAQCAtMzgsNiArMzgsOCBAQAogCiAjaWYgUExBVEZPUk0oTUFDKQogI2luY2x1
ZGUgIk1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0LmgiCisjZWxpZiBQTEFURk9STShXSU5DRSkKKyNp
bmNsdWRlICJNZWRpYVBsYXllclByaXZhdGVXaW5jZS5oIgogI2VsaWYgUExBVEZPUk0oV0lOKQog
I2luY2x1ZGUgIk1lZGlhUGxheWVyUHJpdmF0ZVF1aWNrVGltZVdpbi5oIgogI2VsaWYgUExBVEZP
Uk0oR1RLKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QYXRoLmggYi9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BhdGguaAppbmRleCAwNDcxNzI0Li42NjJmY2RjIDEw
MDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BhdGguaAorKysgYi9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL1BhdGguaApAQCAtMSw2ICsxLDcgQEAKIC8qCiAgKiBDb3B5cmln
aHQgKEMpIDIwMDMsIDIwMDYsIDIwMDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgog
ICogICAgICAgICAgICAgICAyMDA2IFJvYiBCdWlzIDxidWlzQGtkZS5vcmc+CisgKiBDb3B5cmln
aHQgKEMpIDIwMDctMjAwOCBUb3JjaCBNb2JpbGUsIEluYy4KICAqCiAgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwpAQCAtNDgsNiArNDksMTAgQEAgdHlwZWRlZiBXZWJDb3JlOjpDYWlyb1BhdGgg
UGxhdGZvcm1QYXRoOwogI2VsaWYgUExBVEZPUk0oU0tJQSkKIGNsYXNzIFNrUGF0aDsKIHR5cGVk
ZWYgU2tQYXRoIFBsYXRmb3JtUGF0aDsKKyNlbGlmIFBMQVRGT1JNKFdJTkNFKQorbmFtZXNwYWNl
IFdlYkNvcmUgeworICAgIGNsYXNzIFBsYXRmb3JtUGF0aDsKK30KICNlbHNlCiB0eXBlZGVmIHZv
aWQgUGxhdGZvcm1QYXRoOwogI2VuZGlmCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL1BhdHRlcm4uaCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGF0dGVybi5oCmlu
ZGV4IGQ0YWEzYjkuLmU1MzE5MmEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvUGF0dGVybi5oCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGF0dGVybi5oCkBA
IC0xLDYgKzEsNyBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAwNywgMjAwOCBBcHBs
ZSBDb21wdXRlciwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykg
MjAwOCBFcmljIFNlaWRlbCA8ZXJpY0B3ZWJraXQub3JnPgorICogQ29weXJpZ2h0IChDKSAyMDA3
LTIwMDggVG9yY2ggTW9iaWxlLCBJbmMuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
QEAgLTUyLDYgKzUzLDggQEAgdHlwZWRlZiB3eEdyYXBoaWNzQnJ1c2gqIFBsYXRmb3JtUGF0dGVy
blB0cjsKIGNsYXNzIHd4QnJ1c2g7CiB0eXBlZGVmIHd4QnJ1c2gqIFBsYXRmb3JtUGF0dGVyblB0
cjsKICNlbmRpZiAvLyBVU0UoV1hHQykKKyNlbGlmIFBMQVRGT1JNKFdJTkNFKQordHlwZWRlZiB2
b2lkKiBQbGF0Zm9ybVBhdHRlcm5QdHI7CiAjZW5kaWYKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL01hdHJpeDNE
VHJhbnNmb3JtT3BlcmF0aW9uLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNm
b3Jtcy9NYXRyaXgzRFRyYW5zZm9ybU9wZXJhdGlvbi5jcHAKaW5kZXggYWIzNDEzYi4uMjMwYmUz
YyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL01hdHJp
eDNEVHJhbnNmb3JtT3BlcmF0aW9uLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3RyYW5zZm9ybXMvTWF0cml4M0RUcmFuc2Zvcm1PcGVyYXRpb24uY3BwCkBAIC00Nyw3ICs0Nyw3
IEBAIFBhc3NSZWZQdHI8VHJhbnNmb3JtT3BlcmF0aW9uPiBNYXRyaXgzRFRyYW5zZm9ybU9wZXJh
dGlvbjo6YmxlbmQoY29uc3QgVHJhbnNmb3JtCiAgICAgYXBwbHkodG9ULCBzaXplKTsKIAogICAg
IGlmIChibGVuZFRvSWRlbnRpdHkpCi0gICAgICAgIHN3YXAoZnJvbVQsIHRvVCk7CisgICAgICAg
IHN0ZDo6c3dhcChmcm9tVCwgdG9UKTsKIAogICAgIHRvVC5ibGVuZChmcm9tVCwgcHJvZ3Jlc3Mp
OwogICAgIHJldHVybiBNYXRyaXgzRFRyYW5zZm9ybU9wZXJhdGlvbjo6Y3JlYXRlKHRvVCk7CmRp
ZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvTWF0cml4VHJh
bnNmb3JtT3BlcmF0aW9uLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jt
cy9NYXRyaXhUcmFuc2Zvcm1PcGVyYXRpb24uY3BwCmluZGV4IDQ5MzRmYTYuLjBlYWNjZWEgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9NYXRyaXhUcmFu
c2Zvcm1PcGVyYXRpb24uY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNm
b3Jtcy9NYXRyaXhUcmFuc2Zvcm1PcGVyYXRpb24uY3BwCkBAIC00Myw3ICs0Myw3IEBAIFBhc3NS
ZWZQdHI8VHJhbnNmb3JtT3BlcmF0aW9uPiBNYXRyaXhUcmFuc2Zvcm1PcGVyYXRpb246OmJsZW5k
KGNvbnN0IFRyYW5zZm9ybU9wCiAgICAgfQogICAgIAogICAgIGlmIChibGVuZFRvSWRlbnRpdHkp
Ci0gICAgICAgIHN3YXAoZnJvbVQsIHRvVCk7CisgICAgICAgIHN0ZDo6c3dhcChmcm9tVCwgdG9U
KTsKIAogICAgIHRvVC5ibGVuZChmcm9tVCwgcHJvZ3Jlc3MpOwogICAgIHJldHVybiBNYXRyaXhU
cmFuc2Zvcm1PcGVyYXRpb246OmNyZWF0ZSh0b1QuYSgpLCB0b1QuYigpLCB0b1QuYygpLCB0b1Qu
ZCgpLCB0b1QuZSgpLCB0b1QuZigpKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvdHJhbnNmb3Jtcy9UcmFuc2Zvcm1hdGlvbk1hdHJpeC5oIGIvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy90cmFuc2Zvcm1zL1RyYW5zZm9ybWF0aW9uTWF0cml4LmgKaW5kZXggMzZlNGI3
MC4uMzE0NjYxZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zv
cm1zL1RyYW5zZm9ybWF0aW9uTWF0cml4LmgKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy90cmFuc2Zvcm1zL1RyYW5zZm9ybWF0aW9uTWF0cml4LmgKQEAgLTI4NCw3ICsyODQsNyBAQCBw
dWJsaWM6CiAgICAgfQogICAgIAogICAgIC8vIHJlc3VsdCA9ICp0aGlzICogdCAoaS5lLiwgYSBt
dWx0UmlnaHQpCi0gICAgVHJhbnNmb3JtYXRpb25NYXRyaXggb3BlcmF0b3IqKGNvbnN0IFRyYW5z
Zm9ybWF0aW9uTWF0cml4JiB0KQorICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IG9wZXJhdG9yKihj
b25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgdCkgY29uc3QKICAgICB7CiAgICAgICAgIFRyYW5z
Zm9ybWF0aW9uTWF0cml4IHJlc3VsdCA9IHQ7CiAgICAgICAgIHJlc3VsdC5tdWx0TGVmdCgqdGhp
cyk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9JY29uV2luLmNw
cCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ljb25XaW4uY3BwCmluZGV4IGMwMmI1
NmUuLjkwNjVhOWYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0lj
b25XaW4uY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ljb25XaW4uY3Bw
CkBAIC0xLDUgKzEsNiBAQAogLyoKICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3LCAyMDA4IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyogQ29weXJpZ2h0IChDKSAyMDA3LTIwMDkg
VG9yY2ggTW9iaWxlLCBJbmMuCiAqCiAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5
b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJt
cyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTQ3LDcgKzQ4LDEyIEBAIFBh
c3NSZWZQdHI8SWNvbj4gSWNvbjo6Y3JlYXRlSWNvbkZvckZpbGUoY29uc3QgU3RyaW5nJiBmaWxl
bmFtZSkKICAgICBtZW1zZXQoJnNmaSwgMCwgc2l6ZW9mKHNmaSkpOwogCiAgICAgU3RyaW5nIHRt
cEZpbGVuYW1lID0gZmlsZW5hbWU7Ci0gICAgaWYgKCFTSEdldEZpbGVJbmZvKHRtcEZpbGVuYW1l
LmNoYXJhY3RlcnNXaXRoTnVsbFRlcm1pbmF0aW9uKCksIDAsICZzZmksIHNpemVvZihzZmkpLCBT
SEdGSV9JQ09OIHwgU0hHRklfU0hFTExJQ09OU0laRSB8IFNIR0ZJX1NNQUxMSUNPTikpCisgICAg
aWYgKCFTSEdldEZpbGVJbmZvKHRtcEZpbGVuYW1lLmNoYXJhY3RlcnNXaXRoTnVsbFRlcm1pbmF0
aW9uKCksIDAsICZzZmksIHNpemVvZihzZmkpCisgICAgICAgICwgU0hHRklfSUNPTgorI2lmICFQ
TEFURk9STShXSU5DRSkKKyAgICAgICAgfCBTSEdGSV9TSEVMTElDT05TSVpFCisjZW5kaWYKKyAg
ICAgICAgfCBTSEdGSV9TTUFMTElDT04pKQogICAgICAgICByZXR1cm4gMDsKIAogICAgIHJldHVy
biBhZG9wdFJlZihuZXcgSWNvbihzZmkuaEljb24pKTsKQEAgLTU1LDYgKzYxLDkgQEAgUGFzc1Jl
ZlB0cjxJY29uPiBJY29uOjpjcmVhdGVJY29uRm9yRmlsZShjb25zdCBTdHJpbmcmIGZpbGVuYW1l
KQogCiBQYXNzUmVmUHRyPEljb24+IEljb246OmNyZWF0ZUljb25Gb3JGaWxlcyhjb25zdCBWZWN0
b3I8U3RyaW5nPiYpCiB7CisjaWYgUExBVEZPUk0oV0lOQ0UpCisgICAgcmV0dXJuIDA7CisjZWxz
ZQogICAgIFRDSEFSIGJ1ZmZlcltNQVhfUEFUSF07ICAgIAogICAgIFVJTlQgbGVuZ3RoID0gOjpH
ZXRTeXN0ZW1EaXJlY3RvcnkoYnVmZmVyLCBBUlJBWVNJWkUoYnVmZmVyKSk7CiAgICAgaWYgKCFs
ZW5ndGgpCkBAIC02Nyw2ICs3Niw3IEBAIFBhc3NSZWZQdHI8SWNvbj4gSWNvbjo6Y3JlYXRlSWNv
bkZvckZpbGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JikKICAgICBpZiAoITo6RXh0cmFjdEljb25F
eChidWZmZXIsIHNoZWxsMzJNdWx0aXBsZUZpbGVJY29uSW5kZXgsIDAsICZoSWNvbiwgMSkpCiAg
ICAgICAgIHJldHVybiAwOwogICAgIHJldHVybiBhZG9wdFJlZihuZXcgSWNvbihoSWNvbikpOwor
I2VuZGlmCiB9CiAKIHZvaWQgSWNvbjo6cGFpbnQoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBj
b25zdCBJbnRSZWN0JiByKQpAQCAtNzQsMTEgKzg0LDE1IEBAIHZvaWQgSWNvbjo6cGFpbnQoR3Jh
cGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBJbnRSZWN0JiByKQogICAgIGlmIChjb250ZXh0
LT5wYWludGluZ0Rpc2FibGVkKCkpCiAgICAgICAgIHJldHVybjsKIAorI2lmIFBMQVRGT1JNKFdJ
TkNFKQorICAgIGNvbnRleHQtPmRyYXdJY29uKG1faEljb24sIHIsIERJX05PUk1BTCk7CisjZWxz
ZQogICAgIEhEQyBoZGMgPSBjb250ZXh0LT5nZXRXaW5kb3dzQ29udGV4dChyKTsKIAogICAgIERy
YXdJY29uRXgoaGRjLCByLngoKSwgci55KCksIG1faEljb24sIHIud2lkdGgoKSwgci5oZWlnaHQo
KSwgMCwgMCwgRElfTk9STUFMKTsKIAogICAgIGNvbnRleHQtPnJlbGVhc2VXaW5kb3dzQ29udGV4
dChoZGMsIHIpOworI2VuZGlmCiB9CiAKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>33669</attachid>
            <date>2009-07-28 13:51:53 -0700</date>
            <delta_ts>2009-07-29 10:06:00 -0700</delta_ts>
            <desc>remove an unnecessary line</desc>
            <filename>27779.patch</filename>
            <type>text/plain</type>
            <size>16863</size>
            <attacher name="Yong Li">yong.li.webkit</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
NTk5ZjI2My4uNzhmOWFkOCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMSBAQAorMjAwOS0wNy0yOCAgWW9uZyBMaSAgPHlv
bmcubGlAdG9yY2htb2JpbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFdJTkNFIFBPUlQ6IG1vZGlmaWVkIGdyYXBoaWNzIGZpbGVzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNzc3OQorCisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuaDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9HcmFkaWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFkaWVudDo6c2V0
U3ByZWFkTWV0aG9kKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFkaWVudC5oOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5jcHA6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0Lmg6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvSW1hZ2VTb3VyY2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9N
ZWRpYVBsYXllci5jcHA6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvUGF0aC5oOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL1BhdHRlcm4uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy90cmFuc2Zvcm1zL01hdHJpeDNEVHJhbnNmb3JtT3BlcmF0aW9uLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6Ok1hdHJpeDNEVHJhbnNmb3JtT3BlcmF0aW9uOjpibGVuZCk6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9NYXRyaXhUcmFuc2Zvcm1PcGVyYXRpb24u
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6TWF0cml4VHJhbnNmb3JtT3BlcmF0aW9uOjpibGVuZCk6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9UcmFuc2Zvcm1hdGlvbk1h
dHJpeC5oOgorICAgICAgICAoV2ViQ29yZTo6VHJhbnNmb3JtYXRpb25NYXRyaXg6Om9wZXJhdG9y
Kik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ljb25XaW4uY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SWNvbjo6Y3JlYXRlSWNvbkZvckZpbGUpOgorICAgICAgICAoV2ViQ29yZTo6
SWNvbjo6Y3JlYXRlSWNvbkZvckZpbGVzKToKKyAgICAgICAgKFdlYkNvcmU6Okljb246OnBhaW50
KToKKwogMjAwOS0wNy0yNyAgWW9uZyBMaSAgPHlvbmcubGlAdG9yY2htb2JpbGUuY29tPgogCiAg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9CaXRtYXBJbWFnZS5oCmluZGV4IDhiNzcwYTEuLjNlMmUwY2QgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuaAorKysgYi9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0JpdG1hcEltYWdlLmgKQEAgLTEsNiArMSw3IEBACiAvKgogICogQ29weXJpZ2h0
IChDKSAyMDA2IFNhbXVlbCBXZWluaWcgKHNhbS53ZWluaWdAZ21haWwuY29tKQogICogQ29weXJp
Z2h0IChDKSAyMDA0LCAyMDA1LCAyMDA2IEFwcGxlIENvbXB1dGVyLCBJbmMuICBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA4LTIwMDkgVG9yY2ggTW9iaWxlLCBJbmMu
CiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTE2MCw3ICsxNjEsNyBAQCBwcm90
ZWN0ZWQ6CiAgICAgdmlydHVhbCB2b2lkIGRyYXdGcmFtZU1hdGNoaW5nU291cmNlU2l6ZShHcmFw
aGljc0NvbnRleHQqLCBjb25zdCBGbG9hdFJlY3QmIGRzdFJlY3QsIGNvbnN0IEludFNpemUmIHNy
Y1NpemUsIENvbXBvc2l0ZU9wZXJhdG9yKTsKICNlbmRpZgogICAgIHZpcnR1YWwgdm9pZCBkcmF3
KEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IEZsb2F0UmVjdCYgZHN0UmVjdCwgY29uc3QgRmxvYXRS
ZWN0JiBzcmNSZWN0LCBDb21wb3NpdGVPcGVyYXRvcik7Ci0jaWYgUExBVEZPUk0oV1gpCisjaWYg
UExBVEZPUk0oV1gpIHx8IFBMQVRGT1JNKFdJTkNFKQogICAgIHZpcnR1YWwgdm9pZCBkcmF3UGF0
dGVybihHcmFwaGljc0NvbnRleHQqLCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IFRy
YW5zZm9ybWF0aW9uTWF0cml4JiBwYXR0ZXJuVHJhbnNmb3JtLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBjb25zdCBGbG9hdFBvaW50JiBwaGFzZSwgQ29tcG9zaXRlT3BlcmF0b3IsIGNv
bnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QpOwogI2VuZGlmICAgIApAQCAtMjIwLDcgKzIyMSw5IEBA
IHByb3RlY3RlZDoKICAgICB7CiAgICAgICAgIGlmICghbV9jaGVja2VkRm9yU29saWRDb2xvciAm
JiBmcmFtZUNvdW50KCkgPiAwKSB7CiAgICAgICAgICAgICBjaGVja0ZvclNvbGlkQ29sb3IoKTsK
KyNpZiAhUExBVEZPUk0oV0lOQ0UpCiAgICAgICAgICAgICBBU1NFUlQobV9jaGVja2VkRm9yU29s
aWRDb2xvcik7CisjZW5kaWYKICAgICAgICAgfQogICAgICAgICByZXR1cm4gbV9pc1NvbGlkQ29s
b3IgJiYgbV9jdXJyZW50RnJhbWUgPT0gMDsKICAgICB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0dyYWRpZW50LmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
R3JhZGllbnQuY3BwCmluZGV4IDc3YTBkMjEuLjkyYmIyNjggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvR3JhZGllbnQuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvR3JhZGllbnQuY3BwCkBAIC0xNTAsOCArMTUwLDEwIEBAIGludCBHcmFkaWVudDo6Zmlu
ZFN0b3AoZmxvYXQgdmFsdWUpIGNvbnN0CiAKIHZvaWQgR3JhZGllbnQ6OnNldFNwcmVhZE1ldGhv
ZChHcmFkaWVudFNwcmVhZE1ldGhvZCBzcHJlYWRNZXRob2QpCiB7CisjaWYgIVBMQVRGT1JNKFdJ
TkNFKQogICAgIC8vIEZJWE1FOiBTaG91bGQgaXQgYmVjb21lIG5lY2Vzc2FyeSwgYWxsb3cgY2Fs
bHMgdG8gdGhpcyBtZXRob2QgYWZ0ZXIgbV9ncmFkaWVudCBoYXMgYmVlbiBzZXQuCiAgICAgQVNT
RVJUKG1fZ3JhZGllbnQgPT0gMCk7CisjZW5kaWYKICAgICBtX3NwcmVhZE1ldGhvZCA9IHNwcmVh
ZE1ldGhvZDsKIH0KIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFk
aWVudC5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFkaWVudC5oCmluZGV4IGE3NGIx
ZWYuLjc0ODUyY2MgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhZGll
bnQuaAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYWRpZW50LmgKQEAgLTEsNiAr
MSw3IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3LCAyMDA4IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAwNyBBbHAgVG9rZXIgPGFs
cEBhdG9rZXIuY29tPgorICogQ29weXJpZ2h0IChDKSAyMDA4IFRvcmNoIE1vYmlsZSwgSW5jLgog
ICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC03Myw4ICs3NCwxNyBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKICAgICAgICAgdm9pZCBnZXRDb2xvcihmbG9hdCB2YWx1ZSwgZmxvYXQq
IHIsIGZsb2F0KiBnLCBmbG9hdCogYiwgZmxvYXQqIGEpIGNvbnN0OwogCisjaWYgUExBVEZPUk0o
V0lOQ0UpICYmICFQTEFURk9STShRVCkKKyAgICAgICAgY29uc3QgRmxvYXRQb2ludCYgcDAoKSBj
b25zdCB7IHJldHVybiBtX3AwOyB9CisgICAgICAgIGNvbnN0IEZsb2F0UG9pbnQmIHAxKCkgY29u
c3QgeyByZXR1cm4gbV9wMTsgfQorICAgICAgICBmbG9hdCByMCgpIGNvbnN0IHsgcmV0dXJuIG1f
cjA7IH0KKyAgICAgICAgZmxvYXQgcjEoKSBjb25zdCB7IHJldHVybiBtX3IxOyB9CisgICAgICAg
IGJvb2wgaXNSYWRpYWwoKSBjb25zdCB7IHJldHVybiBtX3JhZGlhbDsgfQorICAgICAgICBzdHJ1
Y3QgQ29sb3JTdG9wOworICAgICAgICBjb25zdCBWZWN0b3I8Q29sb3JTdG9wPiYgZ2V0U3RvcHMo
KSBjb25zdDsKKyNlbHNlCiAgICAgICAgIFBsYXRmb3JtR3JhZGllbnQgcGxhdGZvcm1HcmFkaWVu
dCgpOwotCisjZW5kaWYKICAgICAgICAgc3RydWN0IENvbG9yU3RvcCB7CiAgICAgICAgICAgICBm
bG9hdCBzdG9wOwogICAgICAgICAgICAgZmxvYXQgcmVkOwpAQCAtMTAxLDcgKzExMSwxMSBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIEdyYWRpZW50KGNvbnN0IEZsb2F0UG9pbnQmIHAw
LCBjb25zdCBGbG9hdFBvaW50JiBwMSk7CiAgICAgICAgIEdyYWRpZW50KGNvbnN0IEZsb2F0UG9p
bnQmIHAwLCBmbG9hdCByMCwgY29uc3QgRmxvYXRQb2ludCYgcDEsIGZsb2F0IHIxKTsKIAorI2lm
IFBMQVRGT1JNKFdJTkNFKSAmJiAhUExBVEZPUk0oUVQpCisgICAgICAgIHZvaWQgcGxhdGZvcm1J
bml0KCkge30KKyNlbHNlCiAgICAgICAgIHZvaWQgcGxhdGZvcm1Jbml0KCkgeyBtX2dyYWRpZW50
ID0gMDsgfQorI2VuZGlmCiAgICAgICAgIHZvaWQgcGxhdGZvcm1EZXN0cm95KCk7CiAKICAgICAg
ICAgaW50IGZpbmRTdG9wKGZsb2F0IHZhbHVlKSBjb25zdDsKQEAgLTExNyw3ICsxMzEsOSBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIEdyYWRpZW50U3ByZWFkTWV0aG9kIG1fc3ByZWFk
TWV0aG9kOwogICAgICAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBtX2dyYWRpZW50U3BhY2VUcmFu
c2Zvcm1hdGlvbjsKIAorI2lmICFQTEFURk9STShXSU5DRSkgfHwgUExBVEZPUk0oUVQpCiAgICAg
ICAgIFBsYXRmb3JtR3JhZGllbnQgbV9ncmFkaWVudDsKKyNlbmRpZgogICAgIH07CiAKIH0gLy9u
YW1lc3BhY2UKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3ND
b250ZXh0LmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmNw
cAppbmRleCAzZTM2ZjczLi5hNGU4NDA4IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0dyYXBoaWNzQ29udGV4dC5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9HcmFwaGljc0NvbnRleHQuY3BwCkBAIC0zMjQsNiArMzI0LDcgQEAgdm9pZCBHcmFwaGljc0Nv
bnRleHQ6OmRyYXdJbWFnZShJbWFnZSogaW1hZ2UsIGNvbnN0IEludFJlY3QmIGRlc3QsIGNvbnN0
IEludFJlY3QKICAgICBkcmF3SW1hZ2UoaW1hZ2UsIEZsb2F0UmVjdChkZXN0KSwgc3JjUmVjdCwg
b3AsIHVzZUxvd1F1YWxpdHlTY2FsZSk7CiB9CiAKKyNpZiAhUExBVEZPUk0oV0lOQ0UpIHx8IFBM
QVRGT1JNKFFUKQogdm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdUZXh0KGNvbnN0IEZvbnQmIGZv
bnQsIGNvbnN0IFRleHRSdW4mIHJ1biwgY29uc3QgSW50UG9pbnQmIHBvaW50LCBpbnQgZnJvbSwg
aW50IHRvKQogewogICAgIGlmIChwYWludGluZ0Rpc2FibGVkKCkpCkBAIC0zMzEsNiArMzMyLDcg
QEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdUZXh0KGNvbnN0IEZvbnQmIGZvbnQsIGNvbnN0
IFRleHRSdW4mIHJ1biwgY29uc3QgSW50UG8KICAgICAKICAgICBmb250LmRyYXdUZXh0KHRoaXMs
IHJ1biwgcG9pbnQsIGZyb20sIHRvKTsKIH0KKyNlbmRpZgogCiB2b2lkIEdyYXBoaWNzQ29udGV4
dDo6ZHJhd0JpZGlUZXh0KGNvbnN0IEZvbnQmIGZvbnQsIGNvbnN0IFRleHRSdW4mIHJ1biwgY29u
c3QgRmxvYXRQb2ludCYgcG9pbnQpCiB7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0dyYXBoaWNzQ29udGV4dC5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFw
aGljc0NvbnRleHQuaAppbmRleCAwMjM3YWJmLi4zZmY1ZGEwIDEwMDY0NAotLS0gYS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5oCisrKyBiL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmgKQEAgLTEsNSArMSw2IEBACiAvKgogICogQ29w
eXJpZ2h0IChDKSAyMDAzLCAyMDA2LCAyMDA3IEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDgtMjAwOSBUb3JjaCBNb2JpbGUsIEluYy4KICAqCiAg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNjUsNiArNjYsOCBAQCBjbGFzcyB3eFdpbmRv
d0RDOwogI2VuZGlmCiAjZWxpZiBQTEFURk9STShTS0lBKQogdHlwZWRlZiBjbGFzcyBQbGF0Zm9y
bUNvbnRleHRTa2lhIFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0OworI2VsaWYgUExBVEZPUk0oV0lO
Q0UpCit0eXBlZGVmIHN0cnVjdCBIRENfXyBQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dDsKICNlbHNl
CiB0eXBlZGVmIHZvaWQgUGxhdGZvcm1HcmFwaGljc0NvbnRleHQ7CiAjZW5kaWYKQEAgLTg4LDYg
KzkxLDEyIEBAIHR5cGVkZWYgdW5zaWduZWQgY2hhciBVSW50ODsKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCisjaWYgUExBVEZPUk0oV0lOQ0UpICYmICFQTEFURk9STShRVCkKKyAgICBjbGFzcyBT
aGFyZWRCaXRtYXA7CisgICAgY2xhc3MgU2ltcGxlRm9udERhdGE7CisgICAgY2xhc3MgR2x5cGhC
dWZmZXI7CisjZW5kaWYKKwogICAgIGNvbnN0IGludCBjTWlzc3BlbGxpbmdMaW5lVGhpY2tuZXNz
ID0gMzsKICAgICBjb25zdCBpbnQgY01pc3NwZWxsaW5nTGluZVBhdHRlcm5XaWR0aCA9IDQ7CiAg
ICAgY29uc3QgaW50IGNNaXNzcGVsbGluZ0xpbmVQYXR0ZXJuR2FwV2lkdGggPSAxOwpAQCAtMTQy
LDcgKzE1MSwxMiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIEdyYXBoaWNzQ29udGV4
dChQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dCopOwogICAgICAgICB+R3JhcGhpY3NDb250ZXh0KCk7
CiAgICAgICAgCisjaWYgIVBMQVRGT1JNKFdJTkNFKSB8fCBQTEFURk9STShRVCkKICAgICAgICAg
UGxhdGZvcm1HcmFwaGljc0NvbnRleHQqIHBsYXRmb3JtQ29udGV4dCgpIGNvbnN0OworI2VuZGlm
CisKKyAgICAgICAgY29uc3QgRm9udCYgZm9udCgpIGNvbnN0OworICAgICAgICB2b2lkIHNldEZv
bnQoY29uc3QgRm9udCYpOwogICAgICAgICAKICAgICAgICAgZmxvYXQgc3Ryb2tlVGhpY2tuZXNz
KCkgY29uc3Q7CiAgICAgICAgIHZvaWQgc2V0U3Ryb2tlVGhpY2tuZXNzKGZsb2F0KTsKQEAgLTI5
NSwxMCArMzA5LDI2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgVHJhbnNmb3JtYXRp
b25NYXRyaXggZ2V0Q1RNKCkgY29uc3Q7CiAKICNpZiBQTEFURk9STShXSU4pCisgICAgICAgIEhE
QyBnZXRXaW5kb3dzQ29udGV4dChjb25zdCBJbnRSZWN0JiwgYm9vbCBzdXBwb3J0QWxwaGFCbGVu
ZCA9IGZhbHNlLCBib29sIG1heUNyZWF0ZUJpdG1hcCA9IHRydWUpOyAvLyBUaGUgcGFzc2VkIGlu
IHJlY3QgaXMgdXNlZCB0byBjcmVhdGUgYSBiaXRtYXAgZm9yIGNvbXBvc2l0aW5nIGluc2lkZSB0
cmFuc3BhcmVuY3kgbGF5ZXJzLgorICAgICAgICB2b2lkIHJlbGVhc2VXaW5kb3dzQ29udGV4dChI
REMsIGNvbnN0IEludFJlY3QmLCBib29sIHN1cHBvcnRBbHBoYUJsZW5kID0gZmFsc2UsIGJvb2wg
bWF5Q3JlYXRlQml0bWFwID0gdHJ1ZSk7ICAgIC8vIFRoZSBwYXNzZWQgaW4gSERDIHNob3VsZCBi
ZSB0aGUgb25lIGhhbmRlZCBiYWNrIGJ5IGdldFdpbmRvd3NDb250ZXh0LgorI2VuZGlmCisKKyNp
ZiBQTEFURk9STShXSU5DRSkgJiYgIVBMQVRGT1JNKFFUKQorICAgICAgICB2b2lkIHNldEJpdG1h
cChQYXNzUmVmUHRyPFNoYXJlZEJpdG1hcD4pOworICAgICAgICBjb25zdCBUcmFuc2Zvcm1hdGlv
bk1hdHJpeCYgYWZmaW5lVHJhbnNmb3JtKCkgY29uc3Q7CisgICAgICAgIFRyYW5zZm9ybWF0aW9u
TWF0cml4JiBhZmZpbmVUcmFuc2Zvcm0oKTsKKyAgICAgICAgdm9pZCByZXNldEFmZmluZVRyYW5z
Zm9ybSgpOworICAgICAgICB2b2lkIGZpbGxSZWN0KGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IEdy
YWRpZW50Kik7CisgICAgICAgIHZvaWQgZHJhd1RleHQoY29uc3QgU2ltcGxlRm9udERhdGEqIGZv
bnREYXRhLCBjb25zdCBHbHlwaEJ1ZmZlciYgZ2x5cGhCdWZmZXIsIGludCBmcm9tLCBpbnQgbnVt
R2x5cGhzLCBjb25zdCBGbG9hdFBvaW50JiBwb2ludCk7CisgICAgICAgIHZvaWQgZHJhd0ZyYW1l
Q29udHJvbChjb25zdCBJbnRSZWN0JiByZWN0LCB1bnNpZ25lZCB0eXBlLCB1bnNpZ25lZCBzdGF0
ZSk7CisgICAgICAgIHZvaWQgZHJhd0ZvY3VzUmVjdChjb25zdCBJbnRSZWN0JiByZWN0KTsKKyAg
ICAgICAgdm9pZCBwYWludFRleHRGaWVsZChjb25zdCBJbnRSZWN0JiByZWN0LCB1bnNpZ25lZCBz
dGF0ZSk7CisgICAgICAgIHZvaWQgZHJhd0JpdG1hcChTaGFyZWRCaXRtYXAqLCBjb25zdCBJbnRS
ZWN0JiBkc3RSZWN0LCBjb25zdCBJbnRSZWN0JiBzcmNSZWN0LCBDb21wb3NpdGVPcGVyYXRvciBj
b21wb3NpdGVPcCk7CisgICAgICAgIHZvaWQgZHJhd0JpdG1hcFBhdHRlcm4oU2hhcmVkQml0bWFw
KiwgY29uc3QgRmxvYXRSZWN0JiB0aWxlUmVjdEluLCBjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJp
eCYgcGF0dGVyblRyYW5zZm9ybSwgY29uc3QgRmxvYXRQb2ludCYgcGhhc2UsIENvbXBvc2l0ZU9w
ZXJhdG9yIG9wLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBJbnRTaXplJiBvcmln
U291cmNlU2l6ZSk7CisgICAgICAgIHZvaWQgZHJhd0ljb24oSElDT04gaWNvbiwgY29uc3QgSW50
UmVjdCYgZHN0UmVjdCwgVUlOVCBmbGFncyk7CisjZWxpZiBQTEFURk9STShXSU4pCiAgICAgICAg
IEdyYXBoaWNzQ29udGV4dChIREMsIGJvb2wgaGFzQWxwaGEgPSBmYWxzZSk7IC8vIEZJWE1FOiBU
byBiZSByZW1vdmVkLgogICAgICAgICBib29sIGluVHJhbnNwYXJlbmN5TGF5ZXIoKSBjb25zdDsK
LSAgICAgICAgSERDIGdldFdpbmRvd3NDb250ZXh0KGNvbnN0IEludFJlY3QmLCBib29sIHN1cHBv
cnRBbHBoYUJsZW5kID0gdHJ1ZSwgYm9vbCBtYXlDcmVhdGVCaXRtYXAgPSB0cnVlKTsgLy8gVGhl
IHBhc3NlZCBpbiByZWN0IGlzIHVzZWQgdG8gY3JlYXRlIGEgYml0bWFwIGZvciBjb21wb3NpdGlu
ZyBpbnNpZGUgdHJhbnNwYXJlbmN5IGxheWVycy4KLSAgICAgICAgdm9pZCByZWxlYXNlV2luZG93
c0NvbnRleHQoSERDLCBjb25zdCBJbnRSZWN0JiwgYm9vbCBzdXBwb3J0QWxwaGFCbGVuZCA9IHRy
dWUsIGJvb2wgbWF5Q3JlYXRlQml0bWFwID0gdHJ1ZSk7ICAgIC8vIFRoZSBwYXNzZWQgaW4gSERD
IHNob3VsZCBiZSB0aGUgb25lIGhhbmRlZCBiYWNrIGJ5IGdldFdpbmRvd3NDb250ZXh0LgogCiAg
ICAgICAgIC8vIFdoZW4gc2V0IHRvIHRydWUsIGNoaWxkIHdpbmRvd3Mgc2hvdWxkIGJlIHJlbmRl
cmVkIGludG8gdGhpcyBjb250ZXh0CiAgICAgICAgIC8vIHJhdGhlciB0aGFuIGFsbG93aW5nIHRo
ZW0ganVzdCB0byByZW5kZXIgdG8gdGhlIHNjcmVlbi4gRGVmYXVsdHMgdG8KZGlmZiAtLWdpdCBh
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VTb3VyY2UuaCBiL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvSW1hZ2VTb3VyY2UuaAppbmRleCBhY2I2NGRlLi43MjRmODgxIDEwMDY0NAot
LS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlU291cmNlLmgKKysrIGIvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZVNvdXJjZS5oCkBAIC0xLDUgKzEsNiBAQAogLyoKICAq
IENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNiBBcHBsZSBDb21wdXRlciwgSW5jLiAgQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNy0yMDA4IFRvcmNoIE1vYmls
ZSwgSW5jLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC00Niw2ICs0Nyw4IEBA
IHN0cnVjdCBfY2Fpcm9fc3VyZmFjZTsKIHR5cGVkZWYgc3RydWN0IF9jYWlyb19zdXJmYWNlIGNh
aXJvX3N1cmZhY2VfdDsKICNlbGlmIFBMQVRGT1JNKFNLSUEpCiBjbGFzcyBOYXRpdmVJbWFnZVNr
aWE7CisjZWxpZiBQTEFURk9STShXSU5DRSkKKyNpbmNsdWRlICJTaGFyZWRCaXRtYXAuaCIKICNl
bmRpZgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC03OCw2ICs4MSwxMCBAQCB0eXBlZGVmIGNh
aXJvX3N1cmZhY2VfdCogTmF0aXZlSW1hZ2VQdHI7CiBjbGFzcyBJbWFnZURlY29kZXI7CiB0eXBl
ZGVmIEltYWdlRGVjb2RlciogTmF0aXZlSW1hZ2VTb3VyY2VQdHI7CiB0eXBlZGVmIE5hdGl2ZUlt
YWdlU2tpYSogTmF0aXZlSW1hZ2VQdHI7CisjZWxpZiBQTEFURk9STShXSU5DRSkKK2NsYXNzIElt
YWdlRGVjb2RlcjsKK3R5cGVkZWYgSW1hZ2VEZWNvZGVyKiBOYXRpdmVJbWFnZVNvdXJjZVB0cjsK
K3R5cGVkZWYgUmVmUHRyPFNoYXJlZEJpdG1hcD4gTmF0aXZlSW1hZ2VQdHI7CiAjZW5kaWYKIAog
Y29uc3QgaW50IGNBbmltYXRpb25Mb29wT25jZSA9IC0xOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL01lZGlhUGxheWVyLmNwcAppbmRleCBkNGZhYjUyLi5kN2Q4Y2VmIDEwMDY0NAotLS0gYS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcAorKysgYi9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcApAQCAtMzgsNiArMzgsOCBAQAogCiAjaWYg
UExBVEZPUk0oTUFDKQogI2luY2x1ZGUgIk1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0LmgiCisjZWxp
ZiBQTEFURk9STShXSU5DRSkKKyNpbmNsdWRlICJNZWRpYVBsYXllclByaXZhdGVXaW5jZS5oIgog
I2VsaWYgUExBVEZPUk0oV0lOKQogI2luY2x1ZGUgIk1lZGlhUGxheWVyUHJpdmF0ZVF1aWNrVGlt
ZVdpbi5oIgogI2VsaWYgUExBVEZPUk0oR1RLKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9QYXRoLmggYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BhdGguaAppbmRl
eCAwNDcxNzI0Li42NjJmY2RjIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L1BhdGguaAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BhdGguaApAQCAtMSw2ICsx
LDcgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDMsIDIwMDYsIDIwMDkgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICogICAgICAgICAgICAgICAyMDA2IFJvYiBCdWlzIDxidWlz
QGtkZS5vcmc+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDctMjAwOCBUb3JjaCBNb2JpbGUsIEluYy4K
ICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNDgsNiArNDksMTAgQEAgdHlwZWRl
ZiBXZWJDb3JlOjpDYWlyb1BhdGggUGxhdGZvcm1QYXRoOwogI2VsaWYgUExBVEZPUk0oU0tJQSkK
IGNsYXNzIFNrUGF0aDsKIHR5cGVkZWYgU2tQYXRoIFBsYXRmb3JtUGF0aDsKKyNlbGlmIFBMQVRG
T1JNKFdJTkNFKQorbmFtZXNwYWNlIFdlYkNvcmUgeworICAgIGNsYXNzIFBsYXRmb3JtUGF0aDsK
K30KICNlbHNlCiB0eXBlZGVmIHZvaWQgUGxhdGZvcm1QYXRoOwogI2VuZGlmCmRpZmYgLS1naXQg
YS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BhdHRlcm4uaCBiL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvUGF0dGVybi5oCmluZGV4IGQ0YWEzYjkuLmU1MzE5MmEgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGF0dGVybi5oCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvUGF0dGVybi5oCkBAIC0xLDYgKzEsNyBAQAogLyoKICAqIENvcHlyaWdodCAoQykg
MjAwNiwgMjAwNywgMjAwOCBBcHBsZSBDb21wdXRlciwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICAqIENvcHlyaWdodCAoQykgMjAwOCBFcmljIFNlaWRlbCA8ZXJpY0B3ZWJraXQub3JnPgor
ICogQ29weXJpZ2h0IChDKSAyMDA3LTIwMDggVG9yY2ggTW9iaWxlLCBJbmMuCiAgKgogICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTUyLDYgKzUzLDggQEAgdHlwZWRlZiB3eEdyYXBoaWNz
QnJ1c2gqIFBsYXRmb3JtUGF0dGVyblB0cjsKIGNsYXNzIHd4QnJ1c2g7CiB0eXBlZGVmIHd4QnJ1
c2gqIFBsYXRmb3JtUGF0dGVyblB0cjsKICNlbmRpZiAvLyBVU0UoV1hHQykKKyNlbGlmIFBMQVRG
T1JNKFdJTkNFKQordHlwZWRlZiB2b2lkKiBQbGF0Zm9ybVBhdHRlcm5QdHI7CiAjZW5kaWYKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy90cmFuc2Zvcm1zL01hdHJpeDNEVHJhbnNmb3JtT3BlcmF0aW9uLmNwcCBiL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9NYXRyaXgzRFRyYW5zZm9ybU9wZXJhdGlvbi5jcHAK
aW5kZXggYWIzNDEzYi4uMjMwYmUzYyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy90cmFuc2Zvcm1zL01hdHJpeDNEVHJhbnNmb3JtT3BlcmF0aW9uLmNwcAorKysgYi9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvTWF0cml4M0RUcmFuc2Zvcm1PcGVyYXRp
b24uY3BwCkBAIC00Nyw3ICs0Nyw3IEBAIFBhc3NSZWZQdHI8VHJhbnNmb3JtT3BlcmF0aW9uPiBN
YXRyaXgzRFRyYW5zZm9ybU9wZXJhdGlvbjo6YmxlbmQoY29uc3QgVHJhbnNmb3JtCiAgICAgYXBw
bHkodG9ULCBzaXplKTsKIAogICAgIGlmIChibGVuZFRvSWRlbnRpdHkpCi0gICAgICAgIHN3YXAo
ZnJvbVQsIHRvVCk7CisgICAgICAgIHN0ZDo6c3dhcChmcm9tVCwgdG9UKTsKIAogICAgIHRvVC5i
bGVuZChmcm9tVCwgcHJvZ3Jlc3MpOwogICAgIHJldHVybiBNYXRyaXgzRFRyYW5zZm9ybU9wZXJh
dGlvbjo6Y3JlYXRlKHRvVCk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3RyYW5zZm9ybXMvTWF0cml4VHJhbnNmb3JtT3BlcmF0aW9uLmNwcCBiL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9NYXRyaXhUcmFuc2Zvcm1PcGVyYXRpb24uY3BwCmluZGV4
IDQ5MzRmYTYuLjBlYWNjZWEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
dHJhbnNmb3Jtcy9NYXRyaXhUcmFuc2Zvcm1PcGVyYXRpb24uY3BwCisrKyBiL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9NYXRyaXhUcmFuc2Zvcm1PcGVyYXRpb24uY3BwCkBA
IC00Myw3ICs0Myw3IEBAIFBhc3NSZWZQdHI8VHJhbnNmb3JtT3BlcmF0aW9uPiBNYXRyaXhUcmFu
c2Zvcm1PcGVyYXRpb246OmJsZW5kKGNvbnN0IFRyYW5zZm9ybU9wCiAgICAgfQogICAgIAogICAg
IGlmIChibGVuZFRvSWRlbnRpdHkpCi0gICAgICAgIHN3YXAoZnJvbVQsIHRvVCk7CisgICAgICAg
IHN0ZDo6c3dhcChmcm9tVCwgdG9UKTsKIAogICAgIHRvVC5ibGVuZChmcm9tVCwgcHJvZ3Jlc3Mp
OwogICAgIHJldHVybiBNYXRyaXhUcmFuc2Zvcm1PcGVyYXRpb246OmNyZWF0ZSh0b1QuYSgpLCB0
b1QuYigpLCB0b1QuYygpLCB0b1QuZCgpLCB0b1QuZSgpLCB0b1QuZigpKTsKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9UcmFuc2Zvcm1hdGlvbk1hdHJp
eC5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL1RyYW5zZm9ybWF0aW9u
TWF0cml4LmgKaW5kZXggMzZlNGI3MC4uMzE0NjYxZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL1RyYW5zZm9ybWF0aW9uTWF0cml4LmgKKysrIGIvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL1RyYW5zZm9ybWF0aW9uTWF0cml4LmgK
QEAgLTI4NCw3ICsyODQsNyBAQCBwdWJsaWM6CiAgICAgfQogICAgIAogICAgIC8vIHJlc3VsdCA9
ICp0aGlzICogdCAoaS5lLiwgYSBtdWx0UmlnaHQpCi0gICAgVHJhbnNmb3JtYXRpb25NYXRyaXgg
b3BlcmF0b3IqKGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiB0KQorICAgIFRyYW5zZm9ybWF0
aW9uTWF0cml4IG9wZXJhdG9yKihjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgdCkgY29uc3QK
ICAgICB7CiAgICAgICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IHJlc3VsdCA9IHQ7CiAgICAgICAg
IHJlc3VsdC5tdWx0TGVmdCgqdGhpcyk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3dpbi9JY29uV2luLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0lj
b25XaW4uY3BwCmluZGV4IGMwMmI1NmUuLjkwNjVhOWYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3Mvd2luL0ljb25XaW4uY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvd2luL0ljb25XaW4uY3BwCkBAIC0xLDUgKzEsNiBAQAogLyoKICogQ29weXJpZ2h0IChD
KSAyMDA2LCAyMDA3LCAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyogQ29w
eXJpZ2h0IChDKSAyMDA3LTIwMDkgVG9yY2ggTW9iaWxlLCBJbmMuCiAqCiAqIFRoaXMgbGlicmFy
eSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICogbW9k
aWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMK
QEAgLTQ3LDcgKzQ4LDEyIEBAIFBhc3NSZWZQdHI8SWNvbj4gSWNvbjo6Y3JlYXRlSWNvbkZvckZp
bGUoY29uc3QgU3RyaW5nJiBmaWxlbmFtZSkKICAgICBtZW1zZXQoJnNmaSwgMCwgc2l6ZW9mKHNm
aSkpOwogCiAgICAgU3RyaW5nIHRtcEZpbGVuYW1lID0gZmlsZW5hbWU7Ci0gICAgaWYgKCFTSEdl
dEZpbGVJbmZvKHRtcEZpbGVuYW1lLmNoYXJhY3RlcnNXaXRoTnVsbFRlcm1pbmF0aW9uKCksIDAs
ICZzZmksIHNpemVvZihzZmkpLCBTSEdGSV9JQ09OIHwgU0hHRklfU0hFTExJQ09OU0laRSB8IFNI
R0ZJX1NNQUxMSUNPTikpCisgICAgaWYgKCFTSEdldEZpbGVJbmZvKHRtcEZpbGVuYW1lLmNoYXJh
Y3RlcnNXaXRoTnVsbFRlcm1pbmF0aW9uKCksIDAsICZzZmksIHNpemVvZihzZmkpCisgICAgICAg
ICwgU0hHRklfSUNPTgorI2lmICFQTEFURk9STShXSU5DRSkKKyAgICAgICAgfCBTSEdGSV9TSEVM
TElDT05TSVpFCisjZW5kaWYKKyAgICAgICAgfCBTSEdGSV9TTUFMTElDT04pKQogICAgICAgICBy
ZXR1cm4gMDsKIAogICAgIHJldHVybiBhZG9wdFJlZihuZXcgSWNvbihzZmkuaEljb24pKTsKQEAg
LTU1LDYgKzYxLDkgQEAgUGFzc1JlZlB0cjxJY29uPiBJY29uOjpjcmVhdGVJY29uRm9yRmlsZShj
b25zdCBTdHJpbmcmIGZpbGVuYW1lKQogCiBQYXNzUmVmUHRyPEljb24+IEljb246OmNyZWF0ZUlj
b25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYpCiB7CisjaWYgUExBVEZPUk0oV0lOQ0Up
CisgICAgcmV0dXJuIDA7CisjZWxzZQogICAgIFRDSEFSIGJ1ZmZlcltNQVhfUEFUSF07ICAgIAog
ICAgIFVJTlQgbGVuZ3RoID0gOjpHZXRTeXN0ZW1EaXJlY3RvcnkoYnVmZmVyLCBBUlJBWVNJWkUo
YnVmZmVyKSk7CiAgICAgaWYgKCFsZW5ndGgpCkBAIC02Nyw2ICs3Niw3IEBAIFBhc3NSZWZQdHI8
SWNvbj4gSWNvbjo6Y3JlYXRlSWNvbkZvckZpbGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JikKICAg
ICBpZiAoITo6RXh0cmFjdEljb25FeChidWZmZXIsIHNoZWxsMzJNdWx0aXBsZUZpbGVJY29uSW5k
ZXgsIDAsICZoSWNvbiwgMSkpCiAgICAgICAgIHJldHVybiAwOwogICAgIHJldHVybiBhZG9wdFJl
ZihuZXcgSWNvbihoSWNvbikpOworI2VuZGlmCiB9CiAKIHZvaWQgSWNvbjo6cGFpbnQoR3JhcGhp
Y3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBJbnRSZWN0JiByKQpAQCAtNzQsMTEgKzg0LDE1IEBA
IHZvaWQgSWNvbjo6cGFpbnQoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBJbnRSZWN0
JiByKQogICAgIGlmIChjb250ZXh0LT5wYWludGluZ0Rpc2FibGVkKCkpCiAgICAgICAgIHJldHVy
bjsKIAorI2lmIFBMQVRGT1JNKFdJTkNFKQorICAgIGNvbnRleHQtPmRyYXdJY29uKG1faEljb24s
IHIsIERJX05PUk1BTCk7CisjZWxzZQogICAgIEhEQyBoZGMgPSBjb250ZXh0LT5nZXRXaW5kb3dz
Q29udGV4dChyKTsKIAogICAgIERyYXdJY29uRXgoaGRjLCByLngoKSwgci55KCksIG1faEljb24s
IHIud2lkdGgoKSwgci5oZWlnaHQoKSwgMCwgMCwgRElfTk9STUFMKTsKIAogICAgIGNvbnRleHQt
PnJlbGVhc2VXaW5kb3dzQ29udGV4dChoZGMsIHIpOworI2VuZGlmCiB9CiAKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>33719</attachid>
            <date>2009-07-29 10:06:00 -0700</date>
            <delta_ts>2009-07-29 12:30:52 -0700</delta_ts>
            <desc>remove unnecessary changes</desc>
            <filename>27779.patch</filename>
            <type>text/plain</type>
            <size>15663</size>
            <attacher name="Yong Li">yong.li.webkit</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
NTQ1NGU2MC4uZDExZGY1NSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMiBAQAorMjAwOS0wNy0yOSAgWW9uZyBMaSAgPHlv
bmcubGlAdG9yY2htb2JpbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIE5lZWQgYSBzaG9ydCBkZXNjcmlwdGlvbiBhbmQgYnVnIFVSTCAoT09Q
UyEpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNzc3
OQorCisgICAgICAgIE5vIG5ldyB0ZXN0cy4gKE9PUFMhKQorCisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvQml0bWFwSW1hZ2UuaDoKKyAgICAgICAgKFdlYkNvcmU6OkJpdG1hcEltYWdlOjpt
YXlGaWxsV2l0aFNvbGlkQ29sb3IpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYWRp
ZW50Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmNwcDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuaDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9JbWFnZVNvdXJjZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL01lZGlhUGxheWVyLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9QYXRo
Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvUGF0dGVybi5oOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvTWF0cml4M0RUcmFuc2Zvcm1PcGVyYXRpb24uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6TWF0cml4M0RUcmFuc2Zvcm1PcGVyYXRpb246OmJsZW5kKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL01hdHJpeFRyYW5zZm9ybU9w
ZXJhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNYXRyaXhUcmFuc2Zvcm1PcGVyYXRpb246
OmJsZW5kKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL1RyYW5zZm9y
bWF0aW9uTWF0cml4Lmg6CisgICAgICAgIChXZWJDb3JlOjpUcmFuc2Zvcm1hdGlvbk1hdHJpeDo6
b3BlcmF0b3IqKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93aW4vSWNvbldpbi5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpJY29uOjpjcmVhdGVJY29uRm9yRmlsZSk6CisgICAgICAgIChX
ZWJDb3JlOjpJY29uOjpjcmVhdGVJY29uRm9yRmlsZXMpOgorICAgICAgICAoV2ViQ29yZTo6SWNv
bjo6cGFpbnQpOgorCiAyMDA5LTA3LTI4ICBZb25nIExpICA8eW9uZy5saUB0b3JjaG1vYmlsZS5j
b20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCmRpZmYgLS1naXQgYS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmggYi9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0JpdG1hcEltYWdlLmgKaW5kZXggOGI3NzBhMS4uM2UyZTBjZCAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5oCisrKyBiL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuaApAQCAtMSw2ICsxLDcgQEAKIC8qCiAgKiBD
b3B5cmlnaHQgKEMpIDIwMDYgU2FtdWVsIFdlaW5pZyAoc2FtLndlaW5pZ0BnbWFpbC5jb20pCiAg
KiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYgQXBwbGUgQ29tcHV0ZXIsIEluYy4gIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDgtMjAwOSBUb3JjaCBNb2Jp
bGUsIEluYy4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMTYwLDcgKzE2MSw3
IEBAIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIHZvaWQgZHJhd0ZyYW1lTWF0Y2hpbmdTb3VyY2VT
aXplKEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IEZsb2F0UmVjdCYgZHN0UmVjdCwgY29uc3QgSW50
U2l6ZSYgc3JjU2l6ZSwgQ29tcG9zaXRlT3BlcmF0b3IpOwogI2VuZGlmCiAgICAgdmlydHVhbCB2
b2lkIGRyYXcoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgRmxvYXRSZWN0JiBkc3RSZWN0LCBjb25z
dCBGbG9hdFJlY3QmIHNyY1JlY3QsIENvbXBvc2l0ZU9wZXJhdG9yKTsKLSNpZiBQTEFURk9STShX
WCkKKyNpZiBQTEFURk9STShXWCkgfHwgUExBVEZPUk0oV0lOQ0UpCiAgICAgdmlydHVhbCB2b2lk
IGRyYXdQYXR0ZXJuKEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwg
Y29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmIHBhdHRlcm5UcmFuc2Zvcm0sCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGNvbnN0IEZsb2F0UG9pbnQmIHBoYXNlLCBDb21wb3NpdGVPcGVy
YXRvciwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCk7CiAjZW5kaWYgICAgCkBAIC0yMjAsNyAr
MjIxLDkgQEAgcHJvdGVjdGVkOgogICAgIHsKICAgICAgICAgaWYgKCFtX2NoZWNrZWRGb3JTb2xp
ZENvbG9yICYmIGZyYW1lQ291bnQoKSA+IDApIHsKICAgICAgICAgICAgIGNoZWNrRm9yU29saWRD
b2xvcigpOworI2lmICFQTEFURk9STShXSU5DRSkKICAgICAgICAgICAgIEFTU0VSVChtX2NoZWNr
ZWRGb3JTb2xpZENvbG9yKTsKKyNlbmRpZgogICAgICAgICB9CiAgICAgICAgIHJldHVybiBtX2lz
U29saWRDb2xvciAmJiBtX2N1cnJlbnRGcmFtZSA9PSAwOwogICAgIH0KZGlmZiAtLWdpdCBhL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhZGllbnQuaCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvR3JhZGllbnQuaAppbmRleCBhNzRiMWVmLi4wZTM5ZTczIDEwMDY0NAotLS0gYS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYWRpZW50LmgKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9HcmFkaWVudC5oCkBAIC0xLDYgKzEsNyBAQAogLyoKICAqIENvcHlyaWdodCAoQykg
MjAwNiwgMjAwNywgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5
cmlnaHQgKEMpIDIwMDcgQWxwIFRva2VyIDxhbHBAYXRva2VyLmNvbT4KKyAqIENvcHlyaWdodCAo
QykgMjAwOCBUb3JjaCBNb2JpbGUsIEluYy4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwpAQCAtNzMsOCArNzQsMTcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgICAgIHZvaWQg
Z2V0Q29sb3IoZmxvYXQgdmFsdWUsIGZsb2F0KiByLCBmbG9hdCogZywgZmxvYXQqIGIsIGZsb2F0
KiBhKSBjb25zdDsKIAorI2lmIFBMQVRGT1JNKFdJTkNFKSAmJiAhUExBVEZPUk0oUVQpCisgICAg
ICAgIGNvbnN0IEZsb2F0UG9pbnQmIHAwKCkgY29uc3QgeyByZXR1cm4gbV9wMDsgfQorICAgICAg
ICBjb25zdCBGbG9hdFBvaW50JiBwMSgpIGNvbnN0IHsgcmV0dXJuIG1fcDE7IH0KKyAgICAgICAg
ZmxvYXQgcjAoKSBjb25zdCB7IHJldHVybiBtX3IwOyB9CisgICAgICAgIGZsb2F0IHIxKCkgY29u
c3QgeyByZXR1cm4gbV9yMTsgfQorICAgICAgICBib29sIGlzUmFkaWFsKCkgY29uc3QgeyByZXR1
cm4gbV9yYWRpYWw7IH0KKyAgICAgICAgc3RydWN0IENvbG9yU3RvcDsKKyAgICAgICAgY29uc3Qg
VmVjdG9yPENvbG9yU3RvcD4mIGdldFN0b3BzKCkgY29uc3Q7CisjZWxzZQogICAgICAgICBQbGF0
Zm9ybUdyYWRpZW50IHBsYXRmb3JtR3JhZGllbnQoKTsKLQorI2VuZGlmCiAgICAgICAgIHN0cnVj
dCBDb2xvclN0b3AgewogICAgICAgICAgICAgZmxvYXQgc3RvcDsKICAgICAgICAgICAgIGZsb2F0
IHJlZDsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250
ZXh0LmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmNwcApp
bmRleCAzZTM2ZjczLi5hNGU4NDA4IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0dyYXBoaWNzQ29udGV4dC5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9H
cmFwaGljc0NvbnRleHQuY3BwCkBAIC0zMjQsNiArMzI0LDcgQEAgdm9pZCBHcmFwaGljc0NvbnRl
eHQ6OmRyYXdJbWFnZShJbWFnZSogaW1hZ2UsIGNvbnN0IEludFJlY3QmIGRlc3QsIGNvbnN0IElu
dFJlY3QKICAgICBkcmF3SW1hZ2UoaW1hZ2UsIEZsb2F0UmVjdChkZXN0KSwgc3JjUmVjdCwgb3As
IHVzZUxvd1F1YWxpdHlTY2FsZSk7CiB9CiAKKyNpZiAhUExBVEZPUk0oV0lOQ0UpIHx8IFBMQVRG
T1JNKFFUKQogdm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdUZXh0KGNvbnN0IEZvbnQmIGZvbnQs
IGNvbnN0IFRleHRSdW4mIHJ1biwgY29uc3QgSW50UG9pbnQmIHBvaW50LCBpbnQgZnJvbSwgaW50
IHRvKQogewogICAgIGlmIChwYWludGluZ0Rpc2FibGVkKCkpCkBAIC0zMzEsNiArMzMyLDcgQEAg
dm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdUZXh0KGNvbnN0IEZvbnQmIGZvbnQsIGNvbnN0IFRl
eHRSdW4mIHJ1biwgY29uc3QgSW50UG8KICAgICAKICAgICBmb250LmRyYXdUZXh0KHRoaXMsIHJ1
biwgcG9pbnQsIGZyb20sIHRvKTsKIH0KKyNlbmRpZgogCiB2b2lkIEdyYXBoaWNzQ29udGV4dDo6
ZHJhd0JpZGlUZXh0KGNvbnN0IEZvbnQmIGZvbnQsIGNvbnN0IFRleHRSdW4mIHJ1biwgY29uc3Qg
RmxvYXRQb2ludCYgcG9pbnQpCiB7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0dyYXBoaWNzQ29udGV4dC5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGlj
c0NvbnRleHQuaAppbmRleCAwMjM3YWJmLi4zZmY1ZGEwIDEwMDY0NAotLS0gYS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5oCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmgKQEAgLTEsNSArMSw2IEBACiAvKgogICogQ29weXJp
Z2h0IChDKSAyMDAzLCAyMDA2LCAyMDA3IEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKiBDb3B5cmlnaHQgKEMpIDIwMDgtMjAwOSBUb3JjaCBNb2JpbGUsIEluYy4KICAqCiAgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNjUsNiArNjYsOCBAQCBjbGFzcyB3eFdpbmRvd0RD
OwogI2VuZGlmCiAjZWxpZiBQTEFURk9STShTS0lBKQogdHlwZWRlZiBjbGFzcyBQbGF0Zm9ybUNv
bnRleHRTa2lhIFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0OworI2VsaWYgUExBVEZPUk0oV0lOQ0Up
Cit0eXBlZGVmIHN0cnVjdCBIRENfXyBQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dDsKICNlbHNlCiB0
eXBlZGVmIHZvaWQgUGxhdGZvcm1HcmFwaGljc0NvbnRleHQ7CiAjZW5kaWYKQEAgLTg4LDYgKzkx
LDEyIEBAIHR5cGVkZWYgdW5zaWduZWQgY2hhciBVSW50ODsKIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCisjaWYgUExBVEZPUk0oV0lOQ0UpICYmICFQTEFURk9STShRVCkKKyAgICBjbGFzcyBTaGFy
ZWRCaXRtYXA7CisgICAgY2xhc3MgU2ltcGxlRm9udERhdGE7CisgICAgY2xhc3MgR2x5cGhCdWZm
ZXI7CisjZW5kaWYKKwogICAgIGNvbnN0IGludCBjTWlzc3BlbGxpbmdMaW5lVGhpY2tuZXNzID0g
MzsKICAgICBjb25zdCBpbnQgY01pc3NwZWxsaW5nTGluZVBhdHRlcm5XaWR0aCA9IDQ7CiAgICAg
Y29uc3QgaW50IGNNaXNzcGVsbGluZ0xpbmVQYXR0ZXJuR2FwV2lkdGggPSAxOwpAQCAtMTQyLDcg
KzE1MSwxMiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIEdyYXBoaWNzQ29udGV4dChQ
bGF0Zm9ybUdyYXBoaWNzQ29udGV4dCopOwogICAgICAgICB+R3JhcGhpY3NDb250ZXh0KCk7CiAg
ICAgICAgCisjaWYgIVBMQVRGT1JNKFdJTkNFKSB8fCBQTEFURk9STShRVCkKICAgICAgICAgUGxh
dGZvcm1HcmFwaGljc0NvbnRleHQqIHBsYXRmb3JtQ29udGV4dCgpIGNvbnN0OworI2VuZGlmCisK
KyAgICAgICAgY29uc3QgRm9udCYgZm9udCgpIGNvbnN0OworICAgICAgICB2b2lkIHNldEZvbnQo
Y29uc3QgRm9udCYpOwogICAgICAgICAKICAgICAgICAgZmxvYXQgc3Ryb2tlVGhpY2tuZXNzKCkg
Y29uc3Q7CiAgICAgICAgIHZvaWQgc2V0U3Ryb2tlVGhpY2tuZXNzKGZsb2F0KTsKQEAgLTI5NSwx
MCArMzA5LDI2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgVHJhbnNmb3JtYXRpb25N
YXRyaXggZ2V0Q1RNKCkgY29uc3Q7CiAKICNpZiBQTEFURk9STShXSU4pCisgICAgICAgIEhEQyBn
ZXRXaW5kb3dzQ29udGV4dChjb25zdCBJbnRSZWN0JiwgYm9vbCBzdXBwb3J0QWxwaGFCbGVuZCA9
IGZhbHNlLCBib29sIG1heUNyZWF0ZUJpdG1hcCA9IHRydWUpOyAvLyBUaGUgcGFzc2VkIGluIHJl
Y3QgaXMgdXNlZCB0byBjcmVhdGUgYSBiaXRtYXAgZm9yIGNvbXBvc2l0aW5nIGluc2lkZSB0cmFu
c3BhcmVuY3kgbGF5ZXJzLgorICAgICAgICB2b2lkIHJlbGVhc2VXaW5kb3dzQ29udGV4dChIREMs
IGNvbnN0IEludFJlY3QmLCBib29sIHN1cHBvcnRBbHBoYUJsZW5kID0gZmFsc2UsIGJvb2wgbWF5
Q3JlYXRlQml0bWFwID0gdHJ1ZSk7ICAgIC8vIFRoZSBwYXNzZWQgaW4gSERDIHNob3VsZCBiZSB0
aGUgb25lIGhhbmRlZCBiYWNrIGJ5IGdldFdpbmRvd3NDb250ZXh0LgorI2VuZGlmCisKKyNpZiBQ
TEFURk9STShXSU5DRSkgJiYgIVBMQVRGT1JNKFFUKQorICAgICAgICB2b2lkIHNldEJpdG1hcChQ
YXNzUmVmUHRyPFNoYXJlZEJpdG1hcD4pOworICAgICAgICBjb25zdCBUcmFuc2Zvcm1hdGlvbk1h
dHJpeCYgYWZmaW5lVHJhbnNmb3JtKCkgY29uc3Q7CisgICAgICAgIFRyYW5zZm9ybWF0aW9uTWF0
cml4JiBhZmZpbmVUcmFuc2Zvcm0oKTsKKyAgICAgICAgdm9pZCByZXNldEFmZmluZVRyYW5zZm9y
bSgpOworICAgICAgICB2b2lkIGZpbGxSZWN0KGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IEdyYWRp
ZW50Kik7CisgICAgICAgIHZvaWQgZHJhd1RleHQoY29uc3QgU2ltcGxlRm9udERhdGEqIGZvbnRE
YXRhLCBjb25zdCBHbHlwaEJ1ZmZlciYgZ2x5cGhCdWZmZXIsIGludCBmcm9tLCBpbnQgbnVtR2x5
cGhzLCBjb25zdCBGbG9hdFBvaW50JiBwb2ludCk7CisgICAgICAgIHZvaWQgZHJhd0ZyYW1lQ29u
dHJvbChjb25zdCBJbnRSZWN0JiByZWN0LCB1bnNpZ25lZCB0eXBlLCB1bnNpZ25lZCBzdGF0ZSk7
CisgICAgICAgIHZvaWQgZHJhd0ZvY3VzUmVjdChjb25zdCBJbnRSZWN0JiByZWN0KTsKKyAgICAg
ICAgdm9pZCBwYWludFRleHRGaWVsZChjb25zdCBJbnRSZWN0JiByZWN0LCB1bnNpZ25lZCBzdGF0
ZSk7CisgICAgICAgIHZvaWQgZHJhd0JpdG1hcChTaGFyZWRCaXRtYXAqLCBjb25zdCBJbnRSZWN0
JiBkc3RSZWN0LCBjb25zdCBJbnRSZWN0JiBzcmNSZWN0LCBDb21wb3NpdGVPcGVyYXRvciBjb21w
b3NpdGVPcCk7CisgICAgICAgIHZvaWQgZHJhd0JpdG1hcFBhdHRlcm4oU2hhcmVkQml0bWFwKiwg
Y29uc3QgRmxvYXRSZWN0JiB0aWxlUmVjdEluLCBjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYg
cGF0dGVyblRyYW5zZm9ybSwgY29uc3QgRmxvYXRQb2ludCYgcGhhc2UsIENvbXBvc2l0ZU9wZXJh
dG9yIG9wLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBJbnRTaXplJiBvcmlnU291
cmNlU2l6ZSk7CisgICAgICAgIHZvaWQgZHJhd0ljb24oSElDT04gaWNvbiwgY29uc3QgSW50UmVj
dCYgZHN0UmVjdCwgVUlOVCBmbGFncyk7CisjZWxpZiBQTEFURk9STShXSU4pCiAgICAgICAgIEdy
YXBoaWNzQ29udGV4dChIREMsIGJvb2wgaGFzQWxwaGEgPSBmYWxzZSk7IC8vIEZJWE1FOiBUbyBi
ZSByZW1vdmVkLgogICAgICAgICBib29sIGluVHJhbnNwYXJlbmN5TGF5ZXIoKSBjb25zdDsKLSAg
ICAgICAgSERDIGdldFdpbmRvd3NDb250ZXh0KGNvbnN0IEludFJlY3QmLCBib29sIHN1cHBvcnRB
bHBoYUJsZW5kID0gdHJ1ZSwgYm9vbCBtYXlDcmVhdGVCaXRtYXAgPSB0cnVlKTsgLy8gVGhlIHBh
c3NlZCBpbiByZWN0IGlzIHVzZWQgdG8gY3JlYXRlIGEgYml0bWFwIGZvciBjb21wb3NpdGluZyBp
bnNpZGUgdHJhbnNwYXJlbmN5IGxheWVycy4KLSAgICAgICAgdm9pZCByZWxlYXNlV2luZG93c0Nv
bnRleHQoSERDLCBjb25zdCBJbnRSZWN0JiwgYm9vbCBzdXBwb3J0QWxwaGFCbGVuZCA9IHRydWUs
IGJvb2wgbWF5Q3JlYXRlQml0bWFwID0gdHJ1ZSk7ICAgIC8vIFRoZSBwYXNzZWQgaW4gSERDIHNo
b3VsZCBiZSB0aGUgb25lIGhhbmRlZCBiYWNrIGJ5IGdldFdpbmRvd3NDb250ZXh0LgogCiAgICAg
ICAgIC8vIFdoZW4gc2V0IHRvIHRydWUsIGNoaWxkIHdpbmRvd3Mgc2hvdWxkIGJlIHJlbmRlcmVk
IGludG8gdGhpcyBjb250ZXh0CiAgICAgICAgIC8vIHJhdGhlciB0aGFuIGFsbG93aW5nIHRoZW0g
anVzdCB0byByZW5kZXIgdG8gdGhlIHNjcmVlbi4gRGVmYXVsdHMgdG8KZGlmZiAtLWdpdCBhL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VTb3VyY2UuaCBiL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvSW1hZ2VTb3VyY2UuaAppbmRleCBhY2I2NGRlLi43MjRmODgxIDEwMDY0NAotLS0g
YS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlU291cmNlLmgKKysrIGIvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9JbWFnZVNvdXJjZS5oCkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENv
cHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNiBBcHBsZSBDb21wdXRlciwgSW5jLiAgQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNy0yMDA4IFRvcmNoIE1vYmlsZSwg
SW5jLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC00Niw2ICs0Nyw4IEBAIHN0
cnVjdCBfY2Fpcm9fc3VyZmFjZTsKIHR5cGVkZWYgc3RydWN0IF9jYWlyb19zdXJmYWNlIGNhaXJv
X3N1cmZhY2VfdDsKICNlbGlmIFBMQVRGT1JNKFNLSUEpCiBjbGFzcyBOYXRpdmVJbWFnZVNraWE7
CisjZWxpZiBQTEFURk9STShXSU5DRSkKKyNpbmNsdWRlICJTaGFyZWRCaXRtYXAuaCIKICNlbmRp
ZgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC03OCw2ICs4MSwxMCBAQCB0eXBlZGVmIGNhaXJv
X3N1cmZhY2VfdCogTmF0aXZlSW1hZ2VQdHI7CiBjbGFzcyBJbWFnZURlY29kZXI7CiB0eXBlZGVm
IEltYWdlRGVjb2RlciogTmF0aXZlSW1hZ2VTb3VyY2VQdHI7CiB0eXBlZGVmIE5hdGl2ZUltYWdl
U2tpYSogTmF0aXZlSW1hZ2VQdHI7CisjZWxpZiBQTEFURk9STShXSU5DRSkKK2NsYXNzIEltYWdl
RGVjb2RlcjsKK3R5cGVkZWYgSW1hZ2VEZWNvZGVyKiBOYXRpdmVJbWFnZVNvdXJjZVB0cjsKK3R5
cGVkZWYgUmVmUHRyPFNoYXJlZEJpdG1hcD4gTmF0aXZlSW1hZ2VQdHI7CiAjZW5kaWYKIAogY29u
c3QgaW50IGNBbmltYXRpb25Mb29wT25jZSA9IC0xOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L01lZGlhUGxheWVyLmNwcAppbmRleCBkNGZhYjUyLi5kN2Q4Y2VmIDEwMDY0NAotLS0gYS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcAorKysgYi9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcApAQCAtMzgsNiArMzgsOCBAQAogCiAjaWYgUExB
VEZPUk0oTUFDKQogI2luY2x1ZGUgIk1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0LmgiCisjZWxpZiBQ
TEFURk9STShXSU5DRSkKKyNpbmNsdWRlICJNZWRpYVBsYXllclByaXZhdGVXaW5jZS5oIgogI2Vs
aWYgUExBVEZPUk0oV0lOKQogI2luY2x1ZGUgIk1lZGlhUGxheWVyUHJpdmF0ZVF1aWNrVGltZVdp
bi5oIgogI2VsaWYgUExBVEZPUk0oR1RLKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9QYXRoLmggYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BhdGguaAppbmRleCAw
NDcxNzI0Li42NjJmY2RjIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1Bh
dGguaAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BhdGguaApAQCAtMSw2ICsxLDcg
QEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDMsIDIwMDYsIDIwMDkgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogICogICAgICAgICAgICAgICAyMDA2IFJvYiBCdWlzIDxidWlzQGtk
ZS5vcmc+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDctMjAwOCBUb3JjaCBNb2JpbGUsIEluYy4KICAq
CiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNDgsNiArNDksMTAgQEAgdHlwZWRlZiBX
ZWJDb3JlOjpDYWlyb1BhdGggUGxhdGZvcm1QYXRoOwogI2VsaWYgUExBVEZPUk0oU0tJQSkKIGNs
YXNzIFNrUGF0aDsKIHR5cGVkZWYgU2tQYXRoIFBsYXRmb3JtUGF0aDsKKyNlbGlmIFBMQVRGT1JN
KFdJTkNFKQorbmFtZXNwYWNlIFdlYkNvcmUgeworICAgIGNsYXNzIFBsYXRmb3JtUGF0aDsKK30K
ICNlbHNlCiB0eXBlZGVmIHZvaWQgUGxhdGZvcm1QYXRoOwogI2VuZGlmCmRpZmYgLS1naXQgYS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BhdHRlcm4uaCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvUGF0dGVybi5oCmluZGV4IGQ0YWEzYjkuLmU1MzE5MmEgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGF0dGVybi5oCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvUGF0dGVybi5oCkBAIC0xLDYgKzEsNyBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAw
NiwgMjAwNywgMjAwOCBBcHBsZSBDb21wdXRlciwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4K
ICAqIENvcHlyaWdodCAoQykgMjAwOCBFcmljIFNlaWRlbCA8ZXJpY0B3ZWJraXQub3JnPgorICog
Q29weXJpZ2h0IChDKSAyMDA3LTIwMDggVG9yY2ggTW9iaWxlLCBJbmMuCiAgKgogICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKQEAgLTUyLDYgKzUzLDggQEAgdHlwZWRlZiB3eEdyYXBoaWNzQnJ1
c2gqIFBsYXRmb3JtUGF0dGVyblB0cjsKIGNsYXNzIHd4QnJ1c2g7CiB0eXBlZGVmIHd4QnJ1c2gq
IFBsYXRmb3JtUGF0dGVyblB0cjsKICNlbmRpZiAvLyBVU0UoV1hHQykKKyNlbGlmIFBMQVRGT1JN
KFdJTkNFKQordHlwZWRlZiB2b2lkKiBQbGF0Zm9ybVBhdHRlcm5QdHI7CiAjZW5kaWYKIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90
cmFuc2Zvcm1zL01hdHJpeDNEVHJhbnNmb3JtT3BlcmF0aW9uLmNwcCBiL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9NYXRyaXgzRFRyYW5zZm9ybU9wZXJhdGlvbi5jcHAKaW5k
ZXggYWIzNDEzYi4uMjMwYmUzYyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy90cmFuc2Zvcm1zL01hdHJpeDNEVHJhbnNmb3JtT3BlcmF0aW9uLmNwcAorKysgYi9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvTWF0cml4M0RUcmFuc2Zvcm1PcGVyYXRpb24u
Y3BwCkBAIC00Nyw3ICs0Nyw3IEBAIFBhc3NSZWZQdHI8VHJhbnNmb3JtT3BlcmF0aW9uPiBNYXRy
aXgzRFRyYW5zZm9ybU9wZXJhdGlvbjo6YmxlbmQoY29uc3QgVHJhbnNmb3JtCiAgICAgYXBwbHko
dG9ULCBzaXplKTsKIAogICAgIGlmIChibGVuZFRvSWRlbnRpdHkpCi0gICAgICAgIHN3YXAoZnJv
bVQsIHRvVCk7CisgICAgICAgIHN0ZDo6c3dhcChmcm9tVCwgdG9UKTsKIAogICAgIHRvVC5ibGVu
ZChmcm9tVCwgcHJvZ3Jlc3MpOwogICAgIHJldHVybiBNYXRyaXgzRFRyYW5zZm9ybU9wZXJhdGlv
bjo6Y3JlYXRlKHRvVCk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3Ry
YW5zZm9ybXMvTWF0cml4VHJhbnNmb3JtT3BlcmF0aW9uLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvdHJhbnNmb3Jtcy9NYXRyaXhUcmFuc2Zvcm1PcGVyYXRpb24uY3BwCmluZGV4IDQ5
MzRmYTYuLjBlYWNjZWEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJh
bnNmb3Jtcy9NYXRyaXhUcmFuc2Zvcm1PcGVyYXRpb24uY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9NYXRyaXhUcmFuc2Zvcm1PcGVyYXRpb24uY3BwCkBAIC00
Myw3ICs0Myw3IEBAIFBhc3NSZWZQdHI8VHJhbnNmb3JtT3BlcmF0aW9uPiBNYXRyaXhUcmFuc2Zv
cm1PcGVyYXRpb246OmJsZW5kKGNvbnN0IFRyYW5zZm9ybU9wCiAgICAgfQogICAgIAogICAgIGlm
IChibGVuZFRvSWRlbnRpdHkpCi0gICAgICAgIHN3YXAoZnJvbVQsIHRvVCk7CisgICAgICAgIHN0
ZDo6c3dhcChmcm9tVCwgdG9UKTsKIAogICAgIHRvVC5ibGVuZChmcm9tVCwgcHJvZ3Jlc3MpOwog
ICAgIHJldHVybiBNYXRyaXhUcmFuc2Zvcm1PcGVyYXRpb246OmNyZWF0ZSh0b1QuYSgpLCB0b1Qu
YigpLCB0b1QuYygpLCB0b1QuZCgpLCB0b1QuZSgpLCB0b1QuZigpKTsKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9UcmFuc2Zvcm1hdGlvbk1hdHJpeC5o
IGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL1RyYW5zZm9ybWF0aW9uTWF0
cml4LmgKaW5kZXggMzZlNGI3MC4uMzE0NjYxZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy90cmFuc2Zvcm1zL1RyYW5zZm9ybWF0aW9uTWF0cml4LmgKKysrIGIvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL1RyYW5zZm9ybWF0aW9uTWF0cml4LmgKQEAg
LTI4NCw3ICsyODQsNyBAQCBwdWJsaWM6CiAgICAgfQogICAgIAogICAgIC8vIHJlc3VsdCA9ICp0
aGlzICogdCAoaS5lLiwgYSBtdWx0UmlnaHQpCi0gICAgVHJhbnNmb3JtYXRpb25NYXRyaXggb3Bl
cmF0b3IqKGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiB0KQorICAgIFRyYW5zZm9ybWF0aW9u
TWF0cml4IG9wZXJhdG9yKihjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgdCkgY29uc3QKICAg
ICB7CiAgICAgICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IHJlc3VsdCA9IHQ7CiAgICAgICAgIHJl
c3VsdC5tdWx0TGVmdCgqdGhpcyk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3dpbi9JY29uV2luLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ljb25X
aW4uY3BwCmluZGV4IGMwMmI1NmUuLjkwNjVhOWYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3Mvd2luL0ljb25XaW4uY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3Mvd2luL0ljb25XaW4uY3BwCkBAIC0xLDUgKzEsNiBAQAogLyoKICogQ29weXJpZ2h0IChDKSAy
MDA2LCAyMDA3LCAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyogQ29weXJp
Z2h0IChDKSAyMDA3LTIwMDkgVG9yY2ggTW9iaWxlLCBJbmMuCiAqCiAqIFRoaXMgbGlicmFyeSBp
cyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICogbW9kaWZ5
IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAg
LTQ3LDcgKzQ4LDEyIEBAIFBhc3NSZWZQdHI8SWNvbj4gSWNvbjo6Y3JlYXRlSWNvbkZvckZpbGUo
Y29uc3QgU3RyaW5nJiBmaWxlbmFtZSkKICAgICBtZW1zZXQoJnNmaSwgMCwgc2l6ZW9mKHNmaSkp
OwogCiAgICAgU3RyaW5nIHRtcEZpbGVuYW1lID0gZmlsZW5hbWU7Ci0gICAgaWYgKCFTSEdldEZp
bGVJbmZvKHRtcEZpbGVuYW1lLmNoYXJhY3RlcnNXaXRoTnVsbFRlcm1pbmF0aW9uKCksIDAsICZz
ZmksIHNpemVvZihzZmkpLCBTSEdGSV9JQ09OIHwgU0hHRklfU0hFTExJQ09OU0laRSB8IFNIR0ZJ
X1NNQUxMSUNPTikpCisgICAgaWYgKCFTSEdldEZpbGVJbmZvKHRtcEZpbGVuYW1lLmNoYXJhY3Rl
cnNXaXRoTnVsbFRlcm1pbmF0aW9uKCksIDAsICZzZmksIHNpemVvZihzZmkpCisgICAgICAgICwg
U0hHRklfSUNPTgorI2lmICFQTEFURk9STShXSU5DRSkKKyAgICAgICAgfCBTSEdGSV9TSEVMTElD
T05TSVpFCisjZW5kaWYKKyAgICAgICAgfCBTSEdGSV9TTUFMTElDT04pKQogICAgICAgICByZXR1
cm4gMDsKIAogICAgIHJldHVybiBhZG9wdFJlZihuZXcgSWNvbihzZmkuaEljb24pKTsKQEAgLTU1
LDYgKzYxLDkgQEAgUGFzc1JlZlB0cjxJY29uPiBJY29uOjpjcmVhdGVJY29uRm9yRmlsZShjb25z
dCBTdHJpbmcmIGZpbGVuYW1lKQogCiBQYXNzUmVmUHRyPEljb24+IEljb246OmNyZWF0ZUljb25G
b3JGaWxlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYpCiB7CisjaWYgUExBVEZPUk0oV0lOQ0UpCisg
ICAgcmV0dXJuIDA7CisjZWxzZQogICAgIFRDSEFSIGJ1ZmZlcltNQVhfUEFUSF07ICAgIAogICAg
IFVJTlQgbGVuZ3RoID0gOjpHZXRTeXN0ZW1EaXJlY3RvcnkoYnVmZmVyLCBBUlJBWVNJWkUoYnVm
ZmVyKSk7CiAgICAgaWYgKCFsZW5ndGgpCkBAIC02Nyw2ICs3Niw3IEBAIFBhc3NSZWZQdHI8SWNv
bj4gSWNvbjo6Y3JlYXRlSWNvbkZvckZpbGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JikKICAgICBp
ZiAoITo6RXh0cmFjdEljb25FeChidWZmZXIsIHNoZWxsMzJNdWx0aXBsZUZpbGVJY29uSW5kZXgs
IDAsICZoSWNvbiwgMSkpCiAgICAgICAgIHJldHVybiAwOwogICAgIHJldHVybiBhZG9wdFJlZihu
ZXcgSWNvbihoSWNvbikpOworI2VuZGlmCiB9CiAKIHZvaWQgSWNvbjo6cGFpbnQoR3JhcGhpY3ND
b250ZXh0KiBjb250ZXh0LCBjb25zdCBJbnRSZWN0JiByKQpAQCAtNzQsMTEgKzg0LDE1IEBAIHZv
aWQgSWNvbjo6cGFpbnQoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBJbnRSZWN0JiBy
KQogICAgIGlmIChjb250ZXh0LT5wYWludGluZ0Rpc2FibGVkKCkpCiAgICAgICAgIHJldHVybjsK
IAorI2lmIFBMQVRGT1JNKFdJTkNFKQorICAgIGNvbnRleHQtPmRyYXdJY29uKG1faEljb24sIHIs
IERJX05PUk1BTCk7CisjZWxzZQogICAgIEhEQyBoZGMgPSBjb250ZXh0LT5nZXRXaW5kb3dzQ29u
dGV4dChyKTsKIAogICAgIERyYXdJY29uRXgoaGRjLCByLngoKSwgci55KCksIG1faEljb24sIHIu
d2lkdGgoKSwgci5oZWlnaHQoKSwgMCwgMCwgRElfTk9STUFMKTsKIAogICAgIGNvbnRleHQtPnJl
bGVhc2VXaW5kb3dzQ29udGV4dChoZGMsIHIpOworI2VuZGlmCiB9CiAKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>33731</attachid>
            <date>2009-07-29 12:30:52 -0700</date>
            <delta_ts>2009-07-30 07:27:11 -0700</delta_ts>
            <desc>add some comments for removed ASSERT</desc>
            <filename>27779.patch</filename>
            <type>text/plain</type>
            <size>15779</size>
            <attacher name="Yong Li">yong.li.webkit</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
NTk5ZjI2My4uZDNjNzc0YSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMCBAQAorMjAwOS0wNy0yOSAgWW9uZyBMaSAgPHlv
bmcubGlAdG9yY2htb2JpbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFdJTkNFIFBPUlQ6IG1vZGlmaWVkIGdyYXBoaWNzIGZpbGVzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNzc3OQorCisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuaDoKKyAgICAgICAgKFdlYkNvcmU6
OkJpdG1hcEltYWdlOjptYXlGaWxsV2l0aFNvbGlkQ29sb3IpOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL0dyYWRpZW50Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhp
Y3NDb250ZXh0LmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRl
eHQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9JbWFnZVNvdXJjZS5oOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9QYXRoLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvUGF0dGVybi5o
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvTWF0cml4M0RUcmFuc2Zv
cm1PcGVyYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWF0cml4M0RUcmFuc2Zvcm1PcGVy
YXRpb246OmJsZW5kKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL01h
dHJpeFRyYW5zZm9ybU9wZXJhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNYXRyaXhUcmFu
c2Zvcm1PcGVyYXRpb246OmJsZW5kKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90cmFu
c2Zvcm1zL1RyYW5zZm9ybWF0aW9uTWF0cml4Lmg6CisgICAgICAgIChXZWJDb3JlOjpUcmFuc2Zv
cm1hdGlvbk1hdHJpeDo6b3BlcmF0b3IqKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93
aW4vSWNvbldpbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJY29uOjpjcmVhdGVJY29uRm9yRmls
ZSk6CisgICAgICAgIChXZWJDb3JlOjpJY29uOjpjcmVhdGVJY29uRm9yRmlsZXMpOgorICAgICAg
ICAoV2ViQ29yZTo6SWNvbjo6cGFpbnQpOgorCiAyMDA5LTA3LTI3ICBZb25nIExpICA8eW9uZy5s
aUB0b3JjaG1vYmlsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmggYi9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmgKaW5kZXggOGI3NzBhMS4uMjdl
Nzg5OCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5o
CisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuaApAQCAtMSw2ICsx
LDcgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDYgU2FtdWVsIFdlaW5pZyAoc2FtLndlaW5p
Z0BnbWFpbC5jb20pCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYgQXBwbGUgQ29t
cHV0ZXIsIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDgt
MjAwOSBUb3JjaCBNb2JpbGUsIEluYy4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpA
QCAtMTYwLDcgKzE2MSw3IEBAIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIHZvaWQgZHJhd0ZyYW1l
TWF0Y2hpbmdTb3VyY2VTaXplKEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IEZsb2F0UmVjdCYgZHN0
UmVjdCwgY29uc3QgSW50U2l6ZSYgc3JjU2l6ZSwgQ29tcG9zaXRlT3BlcmF0b3IpOwogI2VuZGlm
CiAgICAgdmlydHVhbCB2b2lkIGRyYXcoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgRmxvYXRSZWN0
JiBkc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIENvbXBvc2l0ZU9wZXJhdG9yKTsK
LSNpZiBQTEFURk9STShXWCkKKyNpZiBQTEFURk9STShXWCkgfHwgUExBVEZPUk0oV0lOQ0UpCiAg
ICAgdmlydHVhbCB2b2lkIGRyYXdQYXR0ZXJuKEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IEZsb2F0
UmVjdCYgc3JjUmVjdCwgY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmIHBhdHRlcm5UcmFuc2Zv
cm0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEZsb2F0UG9pbnQmIHBoYXNl
LCBDb21wb3NpdGVPcGVyYXRvciwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCk7CiAjZW5kaWYg
ICAgCkBAIC0yMjAsNyArMjIxLDExIEBAIHByb3RlY3RlZDoKICAgICB7CiAgICAgICAgIGlmICgh
bV9jaGVja2VkRm9yU29saWRDb2xvciAmJiBmcmFtZUNvdW50KCkgPiAwKSB7CiAgICAgICAgICAg
ICBjaGVja0ZvclNvbGlkQ29sb3IoKTsKKyAgICAgICAgICAgIC8vIFdJTkNFIFBPUlQ6IGNoZWNr
Rm9yU29saWRDb2xvcigpIGRvZXNuJ3Qgc2V0IG1fY2hlY2tlZEZvclNvbGlkQ29sb3IgdW50aWwK
KyAgICAgICAgICAgIC8vIGl0IGdldHMgZW5vdWdoIGluZm9ybWF0aW9uIHRvIG1ha2UgZmluYWwg
ZGVjaXNpb24uCisjaWYgIVBMQVRGT1JNKFdJTkNFKQogICAgICAgICAgICAgQVNTRVJUKG1fY2hl
Y2tlZEZvclNvbGlkQ29sb3IpOworI2VuZGlmCiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuIG1f
aXNTb2xpZENvbG9yICYmIG1fY3VycmVudEZyYW1lID09IDA7CiAgICAgfQpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFkaWVudC5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9HcmFkaWVudC5oCmluZGV4IGE3NGIxZWYuLjBlMzllNzMgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhZGllbnQuaAorKysgYi9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0dyYWRpZW50LmgKQEAgLTEsNiArMSw3IEBACiAvKgogICogQ29weXJpZ2h0IChD
KSAyMDA2LCAyMDA3LCAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENv
cHlyaWdodCAoQykgMjAwNyBBbHAgVG9rZXIgPGFscEBhdG9rZXIuY29tPgorICogQ29weXJpZ2h0
IChDKSAyMDA4IFRvcmNoIE1vYmlsZSwgSW5jLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCkBAIC03Myw4ICs3NCwxNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICAgICAgdm9p
ZCBnZXRDb2xvcihmbG9hdCB2YWx1ZSwgZmxvYXQqIHIsIGZsb2F0KiBnLCBmbG9hdCogYiwgZmxv
YXQqIGEpIGNvbnN0OwogCisjaWYgUExBVEZPUk0oV0lOQ0UpICYmICFQTEFURk9STShRVCkKKyAg
ICAgICAgY29uc3QgRmxvYXRQb2ludCYgcDAoKSBjb25zdCB7IHJldHVybiBtX3AwOyB9CisgICAg
ICAgIGNvbnN0IEZsb2F0UG9pbnQmIHAxKCkgY29uc3QgeyByZXR1cm4gbV9wMTsgfQorICAgICAg
ICBmbG9hdCByMCgpIGNvbnN0IHsgcmV0dXJuIG1fcjA7IH0KKyAgICAgICAgZmxvYXQgcjEoKSBj
b25zdCB7IHJldHVybiBtX3IxOyB9CisgICAgICAgIGJvb2wgaXNSYWRpYWwoKSBjb25zdCB7IHJl
dHVybiBtX3JhZGlhbDsgfQorICAgICAgICBzdHJ1Y3QgQ29sb3JTdG9wOworICAgICAgICBjb25z
dCBWZWN0b3I8Q29sb3JTdG9wPiYgZ2V0U3RvcHMoKSBjb25zdDsKKyNlbHNlCiAgICAgICAgIFBs
YXRmb3JtR3JhZGllbnQgcGxhdGZvcm1HcmFkaWVudCgpOwotCisjZW5kaWYKICAgICAgICAgc3Ry
dWN0IENvbG9yU3RvcCB7CiAgICAgICAgICAgICBmbG9hdCBzdG9wOwogICAgICAgICAgICAgZmxv
YXQgcmVkOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0Nv
bnRleHQuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuY3Bw
CmluZGV4IDNlMzZmNzMuLmE0ZTg0MDggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvR3JhcGhpY3NDb250ZXh0LmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0dyYXBoaWNzQ29udGV4dC5jcHAKQEAgLTMyNCw2ICszMjQsNyBAQCB2b2lkIEdyYXBoaWNzQ29u
dGV4dDo6ZHJhd0ltYWdlKEltYWdlKiBpbWFnZSwgY29uc3QgSW50UmVjdCYgZGVzdCwgY29uc3Qg
SW50UmVjdAogICAgIGRyYXdJbWFnZShpbWFnZSwgRmxvYXRSZWN0KGRlc3QpLCBzcmNSZWN0LCBv
cCwgdXNlTG93UXVhbGl0eVNjYWxlKTsKIH0KIAorI2lmICFQTEFURk9STShXSU5DRSkgfHwgUExB
VEZPUk0oUVQpCiB2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJhd1RleHQoY29uc3QgRm9udCYgZm9u
dCwgY29uc3QgVGV4dFJ1biYgcnVuLCBjb25zdCBJbnRQb2ludCYgcG9pbnQsIGludCBmcm9tLCBp
bnQgdG8pCiB7CiAgICAgaWYgKHBhaW50aW5nRGlzYWJsZWQoKSkKQEAgLTMzMSw2ICszMzIsNyBA
QCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJhd1RleHQoY29uc3QgRm9udCYgZm9udCwgY29uc3Qg
VGV4dFJ1biYgcnVuLCBjb25zdCBJbnRQbwogICAgIAogICAgIGZvbnQuZHJhd1RleHQodGhpcywg
cnVuLCBwb2ludCwgZnJvbSwgdG8pOwogfQorI2VuZGlmCiAKIHZvaWQgR3JhcGhpY3NDb250ZXh0
OjpkcmF3QmlkaVRleHQoY29uc3QgRm9udCYgZm9udCwgY29uc3QgVGV4dFJ1biYgcnVuLCBjb25z
dCBGbG9hdFBvaW50JiBwb2ludCkKIHsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvR3JhcGhpY3NDb250ZXh0LmggYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBo
aWNzQ29udGV4dC5oCmluZGV4IDAyMzdhYmYuLjNmZjVkYTAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmgKKysrIGIvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuaApAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5
cmlnaHQgKEMpIDIwMDMsIDIwMDYsIDIwMDcgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqIENvcHlyaWdodCAoQykgMjAwOC0yMDA5IFRvcmNoIE1vYmlsZSwgSW5jLgogICoKICAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC02NSw2ICs2Niw4IEBAIGNsYXNzIHd4V2luZG93
REM7CiAjZW5kaWYKICNlbGlmIFBMQVRGT1JNKFNLSUEpCiB0eXBlZGVmIGNsYXNzIFBsYXRmb3Jt
Q29udGV4dFNraWEgUGxhdGZvcm1HcmFwaGljc0NvbnRleHQ7CisjZWxpZiBQTEFURk9STShXSU5D
RSkKK3R5cGVkZWYgc3RydWN0IEhEQ19fIFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0OwogI2Vsc2UK
IHR5cGVkZWYgdm9pZCBQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dDsKICNlbmRpZgpAQCAtODgsNiAr
OTEsMTIgQEAgdHlwZWRlZiB1bnNpZ25lZCBjaGFyIFVJbnQ4OwogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKKyNpZiBQTEFURk9STShXSU5DRSkgJiYgIVBMQVRGT1JNKFFUKQorICAgIGNsYXNzIFNo
YXJlZEJpdG1hcDsKKyAgICBjbGFzcyBTaW1wbGVGb250RGF0YTsKKyAgICBjbGFzcyBHbHlwaEJ1
ZmZlcjsKKyNlbmRpZgorCiAgICAgY29uc3QgaW50IGNNaXNzcGVsbGluZ0xpbmVUaGlja25lc3Mg
PSAzOwogICAgIGNvbnN0IGludCBjTWlzc3BlbGxpbmdMaW5lUGF0dGVybldpZHRoID0gNDsKICAg
ICBjb25zdCBpbnQgY01pc3NwZWxsaW5nTGluZVBhdHRlcm5HYXBXaWR0aCA9IDE7CkBAIC0xNDIs
NyArMTUxLDEyIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgR3JhcGhpY3NDb250ZXh0
KFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0Kik7CiAgICAgICAgIH5HcmFwaGljc0NvbnRleHQoKTsK
ICAgICAgICAKKyNpZiAhUExBVEZPUk0oV0lOQ0UpIHx8IFBMQVRGT1JNKFFUKQogICAgICAgICBQ
bGF0Zm9ybUdyYXBoaWNzQ29udGV4dCogcGxhdGZvcm1Db250ZXh0KCkgY29uc3Q7CisjZW5kaWYK
KworICAgICAgICBjb25zdCBGb250JiBmb250KCkgY29uc3Q7CisgICAgICAgIHZvaWQgc2V0Rm9u
dChjb25zdCBGb250Jik7CiAgICAgICAgIAogICAgICAgICBmbG9hdCBzdHJva2VUaGlja25lc3Mo
KSBjb25zdDsKICAgICAgICAgdm9pZCBzZXRTdHJva2VUaGlja25lc3MoZmxvYXQpOwpAQCAtMjk1
LDEwICszMDksMjYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBUcmFuc2Zvcm1hdGlv
bk1hdHJpeCBnZXRDVE0oKSBjb25zdDsKIAogI2lmIFBMQVRGT1JNKFdJTikKKyAgICAgICAgSERD
IGdldFdpbmRvd3NDb250ZXh0KGNvbnN0IEludFJlY3QmLCBib29sIHN1cHBvcnRBbHBoYUJsZW5k
ID0gZmFsc2UsIGJvb2wgbWF5Q3JlYXRlQml0bWFwID0gdHJ1ZSk7IC8vIFRoZSBwYXNzZWQgaW4g
cmVjdCBpcyB1c2VkIHRvIGNyZWF0ZSBhIGJpdG1hcCBmb3IgY29tcG9zaXRpbmcgaW5zaWRlIHRy
YW5zcGFyZW5jeSBsYXllcnMuCisgICAgICAgIHZvaWQgcmVsZWFzZVdpbmRvd3NDb250ZXh0KEhE
QywgY29uc3QgSW50UmVjdCYsIGJvb2wgc3VwcG9ydEFscGhhQmxlbmQgPSBmYWxzZSwgYm9vbCBt
YXlDcmVhdGVCaXRtYXAgPSB0cnVlKTsgICAgLy8gVGhlIHBhc3NlZCBpbiBIREMgc2hvdWxkIGJl
IHRoZSBvbmUgaGFuZGVkIGJhY2sgYnkgZ2V0V2luZG93c0NvbnRleHQuCisjZW5kaWYKKworI2lm
IFBMQVRGT1JNKFdJTkNFKSAmJiAhUExBVEZPUk0oUVQpCisgICAgICAgIHZvaWQgc2V0Qml0bWFw
KFBhc3NSZWZQdHI8U2hhcmVkQml0bWFwPik7CisgICAgICAgIGNvbnN0IFRyYW5zZm9ybWF0aW9u
TWF0cml4JiBhZmZpbmVUcmFuc2Zvcm0oKSBjb25zdDsKKyAgICAgICAgVHJhbnNmb3JtYXRpb25N
YXRyaXgmIGFmZmluZVRyYW5zZm9ybSgpOworICAgICAgICB2b2lkIHJlc2V0QWZmaW5lVHJhbnNm
b3JtKCk7CisgICAgICAgIHZvaWQgZmlsbFJlY3QoY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgR3Jh
ZGllbnQqKTsKKyAgICAgICAgdm9pZCBkcmF3VGV4dChjb25zdCBTaW1wbGVGb250RGF0YSogZm9u
dERhdGEsIGNvbnN0IEdseXBoQnVmZmVyJiBnbHlwaEJ1ZmZlciwgaW50IGZyb20sIGludCBudW1H
bHlwaHMsIGNvbnN0IEZsb2F0UG9pbnQmIHBvaW50KTsKKyAgICAgICAgdm9pZCBkcmF3RnJhbWVD
b250cm9sKGNvbnN0IEludFJlY3QmIHJlY3QsIHVuc2lnbmVkIHR5cGUsIHVuc2lnbmVkIHN0YXRl
KTsKKyAgICAgICAgdm9pZCBkcmF3Rm9jdXNSZWN0KGNvbnN0IEludFJlY3QmIHJlY3QpOworICAg
ICAgICB2b2lkIHBhaW50VGV4dEZpZWxkKGNvbnN0IEludFJlY3QmIHJlY3QsIHVuc2lnbmVkIHN0
YXRlKTsKKyAgICAgICAgdm9pZCBkcmF3Qml0bWFwKFNoYXJlZEJpdG1hcCosIGNvbnN0IEludFJl
Y3QmIGRzdFJlY3QsIGNvbnN0IEludFJlY3QmIHNyY1JlY3QsIENvbXBvc2l0ZU9wZXJhdG9yIGNv
bXBvc2l0ZU9wKTsKKyAgICAgICAgdm9pZCBkcmF3Qml0bWFwUGF0dGVybihTaGFyZWRCaXRtYXAq
LCBjb25zdCBGbG9hdFJlY3QmIHRpbGVSZWN0SW4sIGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4
JiBwYXR0ZXJuVHJhbnNmb3JtLCBjb25zdCBGbG9hdFBvaW50JiBwaGFzZSwgQ29tcG9zaXRlT3Bl
cmF0b3Igb3AsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEludFNpemUmIG9yaWdT
b3VyY2VTaXplKTsKKyAgICAgICAgdm9pZCBkcmF3SWNvbihISUNPTiBpY29uLCBjb25zdCBJbnRS
ZWN0JiBkc3RSZWN0LCBVSU5UIGZsYWdzKTsKKyNlbGlmIFBMQVRGT1JNKFdJTikKICAgICAgICAg
R3JhcGhpY3NDb250ZXh0KEhEQywgYm9vbCBoYXNBbHBoYSA9IGZhbHNlKTsgLy8gRklYTUU6IFRv
IGJlIHJlbW92ZWQuCiAgICAgICAgIGJvb2wgaW5UcmFuc3BhcmVuY3lMYXllcigpIGNvbnN0Owot
ICAgICAgICBIREMgZ2V0V2luZG93c0NvbnRleHQoY29uc3QgSW50UmVjdCYsIGJvb2wgc3VwcG9y
dEFscGhhQmxlbmQgPSB0cnVlLCBib29sIG1heUNyZWF0ZUJpdG1hcCA9IHRydWUpOyAvLyBUaGUg
cGFzc2VkIGluIHJlY3QgaXMgdXNlZCB0byBjcmVhdGUgYSBiaXRtYXAgZm9yIGNvbXBvc2l0aW5n
IGluc2lkZSB0cmFuc3BhcmVuY3kgbGF5ZXJzLgotICAgICAgICB2b2lkIHJlbGVhc2VXaW5kb3dz
Q29udGV4dChIREMsIGNvbnN0IEludFJlY3QmLCBib29sIHN1cHBvcnRBbHBoYUJsZW5kID0gdHJ1
ZSwgYm9vbCBtYXlDcmVhdGVCaXRtYXAgPSB0cnVlKTsgICAgLy8gVGhlIHBhc3NlZCBpbiBIREMg
c2hvdWxkIGJlIHRoZSBvbmUgaGFuZGVkIGJhY2sgYnkgZ2V0V2luZG93c0NvbnRleHQuCiAKICAg
ICAgICAgLy8gV2hlbiBzZXQgdG8gdHJ1ZSwgY2hpbGQgd2luZG93cyBzaG91bGQgYmUgcmVuZGVy
ZWQgaW50byB0aGlzIGNvbnRleHQKICAgICAgICAgLy8gcmF0aGVyIHRoYW4gYWxsb3dpbmcgdGhl
bSBqdXN0IHRvIHJlbmRlciB0byB0aGUgc2NyZWVuLiBEZWZhdWx0cyB0bwpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZVNvdXJjZS5oIGIvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9JbWFnZVNvdXJjZS5oCmluZGV4IGFjYjY0ZGUuLjcyNGY4ODEgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VTb3VyY2UuaAorKysgYi9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlU291cmNlLmgKQEAgLTEsNSArMSw2IEBACiAvKgogICog
Q29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAyMDA2IEFwcGxlIENvbXB1dGVyLCBJbmMuICBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA3LTIwMDggVG9yY2ggTW9iaWxl
LCBJbmMuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTQ2LDYgKzQ3LDggQEAg
c3RydWN0IF9jYWlyb19zdXJmYWNlOwogdHlwZWRlZiBzdHJ1Y3QgX2NhaXJvX3N1cmZhY2UgY2Fp
cm9fc3VyZmFjZV90OwogI2VsaWYgUExBVEZPUk0oU0tJQSkKIGNsYXNzIE5hdGl2ZUltYWdlU2tp
YTsKKyNlbGlmIFBMQVRGT1JNKFdJTkNFKQorI2luY2x1ZGUgIlNoYXJlZEJpdG1hcC5oIgogI2Vu
ZGlmCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTc4LDYgKzgxLDEwIEBAIHR5cGVkZWYgY2Fp
cm9fc3VyZmFjZV90KiBOYXRpdmVJbWFnZVB0cjsKIGNsYXNzIEltYWdlRGVjb2RlcjsKIHR5cGVk
ZWYgSW1hZ2VEZWNvZGVyKiBOYXRpdmVJbWFnZVNvdXJjZVB0cjsKIHR5cGVkZWYgTmF0aXZlSW1h
Z2VTa2lhKiBOYXRpdmVJbWFnZVB0cjsKKyNlbGlmIFBMQVRGT1JNKFdJTkNFKQorY2xhc3MgSW1h
Z2VEZWNvZGVyOwordHlwZWRlZiBJbWFnZURlY29kZXIqIE5hdGl2ZUltYWdlU291cmNlUHRyOwor
dHlwZWRlZiBSZWZQdHI8U2hhcmVkQml0bWFwPiBOYXRpdmVJbWFnZVB0cjsKICNlbmRpZgogCiBj
b25zdCBpbnQgY0FuaW1hdGlvbkxvb3BPbmNlID0gLTE7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvTWVkaWFQbGF5ZXIuY3BwCmluZGV4IGQ0ZmFiNTIuLmQ3ZDhjZWYgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCisrKyBiL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCkBAIC0zOCw2ICszOCw4IEBACiAKICNpZiBQ
TEFURk9STShNQUMpCiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQuaCIKKyNlbGlm
IFBMQVRGT1JNKFdJTkNFKQorI2luY2x1ZGUgIk1lZGlhUGxheWVyUHJpdmF0ZVdpbmNlLmgiCiAj
ZWxpZiBQTEFURk9STShXSU4pCiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXJQcml2YXRlUXVpY2tUaW1l
V2luLmgiCiAjZWxpZiBQTEFURk9STShHVEspCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL1BhdGguaCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGF0aC5oCmluZGV4
IDA0NzE3MjQuLjY2MmZjZGMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
UGF0aC5oCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGF0aC5oCkBAIC0xLDYgKzEs
NyBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAwMywgMjAwNiwgMjAwOSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCiAgKiAgICAgICAgICAgICAgIDIwMDYgUm9iIEJ1aXMgPGJ1aXNA
a2RlLm9yZz4KKyAqIENvcHlyaWdodCAoQykgMjAwNy0yMDA4IFRvcmNoIE1vYmlsZSwgSW5jLgog
ICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC00OCw2ICs0OSwxMCBAQCB0eXBlZGVm
IFdlYkNvcmU6OkNhaXJvUGF0aCBQbGF0Zm9ybVBhdGg7CiAjZWxpZiBQTEFURk9STShTS0lBKQog
Y2xhc3MgU2tQYXRoOwogdHlwZWRlZiBTa1BhdGggUGxhdGZvcm1QYXRoOworI2VsaWYgUExBVEZP
Uk0oV0lOQ0UpCituYW1lc3BhY2UgV2ViQ29yZSB7CisgICAgY2xhc3MgUGxhdGZvcm1QYXRoOwor
fQogI2Vsc2UKIHR5cGVkZWYgdm9pZCBQbGF0Zm9ybVBhdGg7CiAjZW5kaWYKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGF0dGVybi5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9QYXR0ZXJuLmgKaW5kZXggZDRhYTNiOS4uZTUzMTkyYSAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QYXR0ZXJuLmgKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9QYXR0ZXJuLmgKQEAgLTEsNiArMSw3IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAy
MDA2LCAyMDA3LCAyMDA4IEFwcGxlIENvbXB1dGVyLCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICogQ29weXJpZ2h0IChDKSAyMDA4IEVyaWMgU2VpZGVsIDxlcmljQHdlYmtpdC5vcmc+Cisg
KiBDb3B5cmlnaHQgKEMpIDIwMDctMjAwOCBUb3JjaCBNb2JpbGUsIEluYy4KICAqCiAgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNTIsNiArNTMsOCBAQCB0eXBlZGVmIHd4R3JhcGhpY3NC
cnVzaCogUGxhdGZvcm1QYXR0ZXJuUHRyOwogY2xhc3Mgd3hCcnVzaDsKIHR5cGVkZWYgd3hCcnVz
aCogUGxhdGZvcm1QYXR0ZXJuUHRyOwogI2VuZGlmIC8vIFVTRShXWEdDKQorI2VsaWYgUExBVEZP
Uk0oV0lOQ0UpCit0eXBlZGVmIHZvaWQqIFBsYXRmb3JtUGF0dGVyblB0cjsKICNlbmRpZgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3RyYW5zZm9ybXMvTWF0cml4M0RUcmFuc2Zvcm1PcGVyYXRpb24uY3BwIGIvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL01hdHJpeDNEVHJhbnNmb3JtT3BlcmF0aW9uLmNwcApp
bmRleCBhYjM0MTNiLi4yMzBiZTNjIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3RyYW5zZm9ybXMvTWF0cml4M0RUcmFuc2Zvcm1PcGVyYXRpb24uY3BwCisrKyBiL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9NYXRyaXgzRFRyYW5zZm9ybU9wZXJhdGlv
bi5jcHAKQEAgLTQ3LDcgKzQ3LDcgQEAgUGFzc1JlZlB0cjxUcmFuc2Zvcm1PcGVyYXRpb24+IE1h
dHJpeDNEVHJhbnNmb3JtT3BlcmF0aW9uOjpibGVuZChjb25zdCBUcmFuc2Zvcm0KICAgICBhcHBs
eSh0b1QsIHNpemUpOwogCiAgICAgaWYgKGJsZW5kVG9JZGVudGl0eSkKLSAgICAgICAgc3dhcChm
cm9tVCwgdG9UKTsKKyAgICAgICAgc3RkOjpzd2FwKGZyb21ULCB0b1QpOwogCiAgICAgdG9ULmJs
ZW5kKGZyb21ULCBwcm9ncmVzcyk7CiAgICAgcmV0dXJuIE1hdHJpeDNEVHJhbnNmb3JtT3BlcmF0
aW9uOjpjcmVhdGUodG9UKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
dHJhbnNmb3Jtcy9NYXRyaXhUcmFuc2Zvcm1PcGVyYXRpb24uY3BwIGIvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy90cmFuc2Zvcm1zL01hdHJpeFRyYW5zZm9ybU9wZXJhdGlvbi5jcHAKaW5kZXgg
NDkzNGZhNi4uMGVhY2NlYSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90
cmFuc2Zvcm1zL01hdHJpeFRyYW5zZm9ybU9wZXJhdGlvbi5jcHAKKysrIGIvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL01hdHJpeFRyYW5zZm9ybU9wZXJhdGlvbi5jcHAKQEAg
LTQzLDcgKzQzLDcgQEAgUGFzc1JlZlB0cjxUcmFuc2Zvcm1PcGVyYXRpb24+IE1hdHJpeFRyYW5z
Zm9ybU9wZXJhdGlvbjo6YmxlbmQoY29uc3QgVHJhbnNmb3JtT3AKICAgICB9CiAgICAgCiAgICAg
aWYgKGJsZW5kVG9JZGVudGl0eSkKLSAgICAgICAgc3dhcChmcm9tVCwgdG9UKTsKKyAgICAgICAg
c3RkOjpzd2FwKGZyb21ULCB0b1QpOwogCiAgICAgdG9ULmJsZW5kKGZyb21ULCBwcm9ncmVzcyk7
CiAgICAgcmV0dXJuIE1hdHJpeFRyYW5zZm9ybU9wZXJhdGlvbjo6Y3JlYXRlKHRvVC5hKCksIHRv
VC5iKCksIHRvVC5jKCksIHRvVC5kKCksIHRvVC5lKCksIHRvVC5mKCkpOwpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL1RyYW5zZm9ybWF0aW9uTWF0cml4
LmggYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvVHJhbnNmb3JtYXRpb25N
YXRyaXguaAppbmRleCAzNmU0YjcwLi4zMTQ2NjFkIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvVHJhbnNmb3JtYXRpb25NYXRyaXguaAorKysgYi9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvVHJhbnNmb3JtYXRpb25NYXRyaXguaApA
QCAtMjg0LDcgKzI4NCw3IEBAIHB1YmxpYzoKICAgICB9CiAgICAgCiAgICAgLy8gcmVzdWx0ID0g
KnRoaXMgKiB0IChpLmUuLCBhIG11bHRSaWdodCkKLSAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBv
cGVyYXRvciooY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmIHQpCisgICAgVHJhbnNmb3JtYXRp
b25NYXRyaXggb3BlcmF0b3IqKGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiB0KSBjb25zdAog
ICAgIHsKICAgICAgICAgVHJhbnNmb3JtYXRpb25NYXRyaXggcmVzdWx0ID0gdDsKICAgICAgICAg
cmVzdWx0Lm11bHRMZWZ0KCp0aGlzKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvd2luL0ljb25XaW4uY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vSWNv
bldpbi5jcHAKaW5kZXggYzAyYjU2ZS4uOTA2NWE5ZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy93aW4vSWNvbldpbi5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy93aW4vSWNvbldpbi5jcHAKQEAgLTEsNSArMSw2IEBACiAvKgogKiBDb3B5cmlnaHQgKEMp
IDIwMDYsIDIwMDcsIDIwMDggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorKiBDb3B5
cmlnaHQgKEMpIDIwMDctMjAwOSBUb3JjaCBNb2JpbGUsIEluYy4KICoKICogVGhpcyBsaWJyYXJ5
IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogKiBtb2Rp
ZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpA
QCAtNDcsNyArNDgsMTIgQEAgUGFzc1JlZlB0cjxJY29uPiBJY29uOjpjcmVhdGVJY29uRm9yRmls
ZShjb25zdCBTdHJpbmcmIGZpbGVuYW1lKQogICAgIG1lbXNldCgmc2ZpLCAwLCBzaXplb2Yoc2Zp
KSk7CiAKICAgICBTdHJpbmcgdG1wRmlsZW5hbWUgPSBmaWxlbmFtZTsKLSAgICBpZiAoIVNIR2V0
RmlsZUluZm8odG1wRmlsZW5hbWUuY2hhcmFjdGVyc1dpdGhOdWxsVGVybWluYXRpb24oKSwgMCwg
JnNmaSwgc2l6ZW9mKHNmaSksIFNIR0ZJX0lDT04gfCBTSEdGSV9TSEVMTElDT05TSVpFIHwgU0hH
RklfU01BTExJQ09OKSkKKyAgICBpZiAoIVNIR2V0RmlsZUluZm8odG1wRmlsZW5hbWUuY2hhcmFj
dGVyc1dpdGhOdWxsVGVybWluYXRpb24oKSwgMCwgJnNmaSwgc2l6ZW9mKHNmaSkKKyAgICAgICAg
LCBTSEdGSV9JQ09OCisjaWYgIVBMQVRGT1JNKFdJTkNFKQorICAgICAgICB8IFNIR0ZJX1NIRUxM
SUNPTlNJWkUKKyNlbmRpZgorICAgICAgICB8IFNIR0ZJX1NNQUxMSUNPTikpCiAgICAgICAgIHJl
dHVybiAwOwogCiAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBJY29uKHNmaS5oSWNvbikpOwpAQCAt
NTUsNiArNjEsOSBAQCBQYXNzUmVmUHRyPEljb24+IEljb246OmNyZWF0ZUljb25Gb3JGaWxlKGNv
bnN0IFN0cmluZyYgZmlsZW5hbWUpCiAKIFBhc3NSZWZQdHI8SWNvbj4gSWNvbjo6Y3JlYXRlSWNv
bkZvckZpbGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JikKIHsKKyNpZiBQTEFURk9STShXSU5DRSkK
KyAgICByZXR1cm4gMDsKKyNlbHNlCiAgICAgVENIQVIgYnVmZmVyW01BWF9QQVRIXTsgICAgCiAg
ICAgVUlOVCBsZW5ndGggPSA6OkdldFN5c3RlbURpcmVjdG9yeShidWZmZXIsIEFSUkFZU0laRShi
dWZmZXIpKTsKICAgICBpZiAoIWxlbmd0aCkKQEAgLTY3LDYgKzc2LDcgQEAgUGFzc1JlZlB0cjxJ
Y29uPiBJY29uOjpjcmVhdGVJY29uRm9yRmlsZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mKQogICAg
IGlmICghOjpFeHRyYWN0SWNvbkV4KGJ1ZmZlciwgc2hlbGwzMk11bHRpcGxlRmlsZUljb25JbmRl
eCwgMCwgJmhJY29uLCAxKSkKICAgICAgICAgcmV0dXJuIDA7CiAgICAgcmV0dXJuIGFkb3B0UmVm
KG5ldyBJY29uKGhJY29uKSk7CisjZW5kaWYKIH0KIAogdm9pZCBJY29uOjpwYWludChHcmFwaGlj
c0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IEludFJlY3QmIHIpCkBAIC03NCwxMSArODQsMTUgQEAg
dm9pZCBJY29uOjpwYWludChHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IEludFJlY3Qm
IHIpCiAgICAgaWYgKGNvbnRleHQtPnBhaW50aW5nRGlzYWJsZWQoKSkKICAgICAgICAgcmV0dXJu
OwogCisjaWYgUExBVEZPUk0oV0lOQ0UpCisgICAgY29udGV4dC0+ZHJhd0ljb24obV9oSWNvbiwg
ciwgRElfTk9STUFMKTsKKyNlbHNlCiAgICAgSERDIGhkYyA9IGNvbnRleHQtPmdldFdpbmRvd3ND
b250ZXh0KHIpOwogCiAgICAgRHJhd0ljb25FeChoZGMsIHIueCgpLCByLnkoKSwgbV9oSWNvbiwg
ci53aWR0aCgpLCByLmhlaWdodCgpLCAwLCAwLCBESV9OT1JNQUwpOwogCiAgICAgY29udGV4dC0+
cmVsZWFzZVdpbmRvd3NDb250ZXh0KGhkYywgcik7CisjZW5kaWYKIH0KIAogfQo=
</data>
<flag name="review"
          id="17940"
          type_id="1"
          status="-"
          setter="staikos"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>33777</attachid>
            <date>2009-07-30 07:27:11 -0700</date>
            <delta_ts>2009-07-30 10:40:53 -0700</delta_ts>
            <desc>more clean up</desc>
            <filename>27779.patch</filename>
            <type>text/plain</type>
            <size>15083</size>
            <attacher name="Yong Li">yong.li.webkit</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
NTk5ZjI2My4uZDNjNzc0YSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMCBAQAorMjAwOS0wNy0yOSAgWW9uZyBMaSAgPHlv
bmcubGlAdG9yY2htb2JpbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFdJTkNFIFBPUlQ6IG1vZGlmaWVkIGdyYXBoaWNzIGZpbGVzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNzc3OQorCisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuaDoKKyAgICAgICAgKFdlYkNvcmU6
OkJpdG1hcEltYWdlOjptYXlGaWxsV2l0aFNvbGlkQ29sb3IpOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL0dyYWRpZW50Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhp
Y3NDb250ZXh0LmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRl
eHQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9JbWFnZVNvdXJjZS5oOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9QYXRoLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvUGF0dGVybi5o
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvTWF0cml4M0RUcmFuc2Zv
cm1PcGVyYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWF0cml4M0RUcmFuc2Zvcm1PcGVy
YXRpb246OmJsZW5kKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL01h
dHJpeFRyYW5zZm9ybU9wZXJhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNYXRyaXhUcmFu
c2Zvcm1PcGVyYXRpb246OmJsZW5kKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90cmFu
c2Zvcm1zL1RyYW5zZm9ybWF0aW9uTWF0cml4Lmg6CisgICAgICAgIChXZWJDb3JlOjpUcmFuc2Zv
cm1hdGlvbk1hdHJpeDo6b3BlcmF0b3IqKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93
aW4vSWNvbldpbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJY29uOjpjcmVhdGVJY29uRm9yRmls
ZSk6CisgICAgICAgIChXZWJDb3JlOjpJY29uOjpjcmVhdGVJY29uRm9yRmlsZXMpOgorICAgICAg
ICAoV2ViQ29yZTo6SWNvbjo6cGFpbnQpOgorCiAyMDA5LTA3LTI3ICBZb25nIExpICA8eW9uZy5s
aUB0b3JjaG1vYmlsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmggYi9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmgKaW5kZXggOGI3NzBhMS4uMjdl
Nzg5OCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5o
CisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuaApAQCAtMSw2ICsx
LDcgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDYgU2FtdWVsIFdlaW5pZyAoc2FtLndlaW5p
Z0BnbWFpbC5jb20pCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYgQXBwbGUgQ29t
cHV0ZXIsIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDgt
MjAwOSBUb3JjaCBNb2JpbGUsIEluYy4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpA
QCAtMTYwLDcgKzE2MSw3IEBAIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIHZvaWQgZHJhd0ZyYW1l
TWF0Y2hpbmdTb3VyY2VTaXplKEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IEZsb2F0UmVjdCYgZHN0
UmVjdCwgY29uc3QgSW50U2l6ZSYgc3JjU2l6ZSwgQ29tcG9zaXRlT3BlcmF0b3IpOwogI2VuZGlm
CiAgICAgdmlydHVhbCB2b2lkIGRyYXcoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgRmxvYXRSZWN0
JiBkc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIENvbXBvc2l0ZU9wZXJhdG9yKTsK
LSNpZiBQTEFURk9STShXWCkKKyNpZiBQTEFURk9STShXWCkgfHwgUExBVEZPUk0oV0lOQ0UpCiAg
ICAgdmlydHVhbCB2b2lkIGRyYXdQYXR0ZXJuKEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IEZsb2F0
UmVjdCYgc3JjUmVjdCwgY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmIHBhdHRlcm5UcmFuc2Zv
cm0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEZsb2F0UG9pbnQmIHBoYXNl
LCBDb21wb3NpdGVPcGVyYXRvciwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCk7CiAjZW5kaWYg
ICAgCkBAIC0yMjAsNyArMjIxLDExIEBAIHByb3RlY3RlZDoKICAgICB7CiAgICAgICAgIGlmICgh
bV9jaGVja2VkRm9yU29saWRDb2xvciAmJiBmcmFtZUNvdW50KCkgPiAwKSB7CiAgICAgICAgICAg
ICBjaGVja0ZvclNvbGlkQ29sb3IoKTsKKyAgICAgICAgICAgIC8vIFdJTkNFIFBPUlQ6IGNoZWNr
Rm9yU29saWRDb2xvcigpIGRvZXNuJ3Qgc2V0IG1fY2hlY2tlZEZvclNvbGlkQ29sb3IgdW50aWwK
KyAgICAgICAgICAgIC8vIGl0IGdldHMgZW5vdWdoIGluZm9ybWF0aW9uIHRvIG1ha2UgZmluYWwg
ZGVjaXNpb24uCisjaWYgIVBMQVRGT1JNKFdJTkNFKQogICAgICAgICAgICAgQVNTRVJUKG1fY2hl
Y2tlZEZvclNvbGlkQ29sb3IpOworI2VuZGlmCiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuIG1f
aXNTb2xpZENvbG9yICYmIG1fY3VycmVudEZyYW1lID09IDA7CiAgICAgfQpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFkaWVudC5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9HcmFkaWVudC5oCmluZGV4IGE3NGIxZWYuLjBlMzllNzMgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhZGllbnQuaAorKysgYi9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0dyYWRpZW50LmgKQEAgLTEsNiArMSw3IEBACiAvKgogICogQ29weXJpZ2h0IChD
KSAyMDA2LCAyMDA3LCAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENv
cHlyaWdodCAoQykgMjAwNyBBbHAgVG9rZXIgPGFscEBhdG9rZXIuY29tPgorICogQ29weXJpZ2h0
IChDKSAyMDA4IFRvcmNoIE1vYmlsZSwgSW5jLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCkBAIC03Myw4ICs3NCwxNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICAgICAgdm9p
ZCBnZXRDb2xvcihmbG9hdCB2YWx1ZSwgZmxvYXQqIHIsIGZsb2F0KiBnLCBmbG9hdCogYiwgZmxv
YXQqIGEpIGNvbnN0OwogCisjaWYgUExBVEZPUk0oV0lOQ0UpICYmICFQTEFURk9STShRVCkKKyAg
ICAgICAgY29uc3QgRmxvYXRQb2ludCYgcDAoKSBjb25zdCB7IHJldHVybiBtX3AwOyB9CisgICAg
ICAgIGNvbnN0IEZsb2F0UG9pbnQmIHAxKCkgY29uc3QgeyByZXR1cm4gbV9wMTsgfQorICAgICAg
ICBmbG9hdCByMCgpIGNvbnN0IHsgcmV0dXJuIG1fcjA7IH0KKyAgICAgICAgZmxvYXQgcjEoKSBj
b25zdCB7IHJldHVybiBtX3IxOyB9CisgICAgICAgIGJvb2wgaXNSYWRpYWwoKSBjb25zdCB7IHJl
dHVybiBtX3JhZGlhbDsgfQorICAgICAgICBzdHJ1Y3QgQ29sb3JTdG9wOworICAgICAgICBjb25z
dCBWZWN0b3I8Q29sb3JTdG9wPiYgZ2V0U3RvcHMoKSBjb25zdDsKKyNlbHNlCiAgICAgICAgIFBs
YXRmb3JtR3JhZGllbnQgcGxhdGZvcm1HcmFkaWVudCgpOwotCisjZW5kaWYKICAgICAgICAgc3Ry
dWN0IENvbG9yU3RvcCB7CiAgICAgICAgICAgICBmbG9hdCBzdG9wOwogICAgICAgICAgICAgZmxv
YXQgcmVkOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0Nv
bnRleHQuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuY3Bw
CmluZGV4IDNlMzZmNzMuLmE0ZTg0MDggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvR3JhcGhpY3NDb250ZXh0LmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0dyYXBoaWNzQ29udGV4dC5jcHAKQEAgLTMyNCw2ICszMjQsNyBAQCB2b2lkIEdyYXBoaWNzQ29u
dGV4dDo6ZHJhd0ltYWdlKEltYWdlKiBpbWFnZSwgY29uc3QgSW50UmVjdCYgZGVzdCwgY29uc3Qg
SW50UmVjdAogICAgIGRyYXdJbWFnZShpbWFnZSwgRmxvYXRSZWN0KGRlc3QpLCBzcmNSZWN0LCBv
cCwgdXNlTG93UXVhbGl0eVNjYWxlKTsKIH0KIAorI2lmICFQTEFURk9STShXSU5DRSkgfHwgUExB
VEZPUk0oUVQpCiB2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJhd1RleHQoY29uc3QgRm9udCYgZm9u
dCwgY29uc3QgVGV4dFJ1biYgcnVuLCBjb25zdCBJbnRQb2ludCYgcG9pbnQsIGludCBmcm9tLCBp
bnQgdG8pCiB7CiAgICAgaWYgKHBhaW50aW5nRGlzYWJsZWQoKSkKQEAgLTMzMSw2ICszMzIsNyBA
QCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJhd1RleHQoY29uc3QgRm9udCYgZm9udCwgY29uc3Qg
VGV4dFJ1biYgcnVuLCBjb25zdCBJbnRQbwogICAgIAogICAgIGZvbnQuZHJhd1RleHQodGhpcywg
cnVuLCBwb2ludCwgZnJvbSwgdG8pOwogfQorI2VuZGlmCiAKIHZvaWQgR3JhcGhpY3NDb250ZXh0
OjpkcmF3QmlkaVRleHQoY29uc3QgRm9udCYgZm9udCwgY29uc3QgVGV4dFJ1biYgcnVuLCBjb25z
dCBGbG9hdFBvaW50JiBwb2ludCkKIHsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvR3JhcGhpY3NDb250ZXh0LmggYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBo
aWNzQ29udGV4dC5oCmluZGV4IDAyMzdhYmYuLjZmNjMyMmQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmgKKysrIGIvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuaApAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5
cmlnaHQgKEMpIDIwMDMsIDIwMDYsIDIwMDcgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqIENvcHlyaWdodCAoQykgMjAwOC0yMDA5IFRvcmNoIE1vYmlsZSwgSW5jLgogICoKICAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC02NSw2ICs2Niw4IEBAIGNsYXNzIHd4V2luZG93
REM7CiAjZW5kaWYKICNlbGlmIFBMQVRGT1JNKFNLSUEpCiB0eXBlZGVmIGNsYXNzIFBsYXRmb3Jt
Q29udGV4dFNraWEgUGxhdGZvcm1HcmFwaGljc0NvbnRleHQ7CisjZWxpZiBQTEFURk9STShXSU5D
RSkKK3R5cGVkZWYgc3RydWN0IEhEQ19fIFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0OwogI2Vsc2UK
IHR5cGVkZWYgdm9pZCBQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dDsKICNlbmRpZgpAQCAtODgsNiAr
OTEsMTIgQEAgdHlwZWRlZiB1bnNpZ25lZCBjaGFyIFVJbnQ4OwogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKKyNpZiBQTEFURk9STShXSU5DRSkgJiYgIVBMQVRGT1JNKFFUKQorICAgIGNsYXNzIFNo
YXJlZEJpdG1hcDsKKyAgICBjbGFzcyBTaW1wbGVGb250RGF0YTsKKyAgICBjbGFzcyBHbHlwaEJ1
ZmZlcjsKKyNlbmRpZgorCiAgICAgY29uc3QgaW50IGNNaXNzcGVsbGluZ0xpbmVUaGlja25lc3Mg
PSAzOwogICAgIGNvbnN0IGludCBjTWlzc3BlbGxpbmdMaW5lUGF0dGVybldpZHRoID0gNDsKICAg
ICBjb25zdCBpbnQgY01pc3NwZWxsaW5nTGluZVBhdHRlcm5HYXBXaWR0aCA9IDE7CkBAIC0xNDIs
NyArMTUxLDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBHcmFwaGljc0NvbnRleHQo
UGxhdGZvcm1HcmFwaGljc0NvbnRleHQqKTsKICAgICAgICAgfkdyYXBoaWNzQ29udGV4dCgpOwog
ICAgICAgIAorI2lmICFQTEFURk9STShXSU5DRSkgfHwgUExBVEZPUk0oUVQpCiAgICAgICAgIFBs
YXRmb3JtR3JhcGhpY3NDb250ZXh0KiBwbGF0Zm9ybUNvbnRleHQoKSBjb25zdDsKKyNlbmRpZgog
ICAgICAgICAKICAgICAgICAgZmxvYXQgc3Ryb2tlVGhpY2tuZXNzKCkgY29uc3Q7CiAgICAgICAg
IHZvaWQgc2V0U3Ryb2tlVGhpY2tuZXNzKGZsb2F0KTsKQEAgLTI5NCw3ICszMDUsMjIgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2b2lkIGNvbmNhdENUTShjb25zdCBUcmFuc2Zvcm1h
dGlvbk1hdHJpeCYpOwogICAgICAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBnZXRDVE0oKSBjb25z
dDsKIAotI2lmIFBMQVRGT1JNKFdJTikKKyNpZiBQTEFURk9STShXSU5DRSkgJiYgIVBMQVRGT1JN
KFFUKQorICAgICAgICB2b2lkIHNldEJpdG1hcChQYXNzUmVmUHRyPFNoYXJlZEJpdG1hcD4pOwor
ICAgICAgICBjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgYWZmaW5lVHJhbnNmb3JtKCkgY29u
c3Q7CisgICAgICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4JiBhZmZpbmVUcmFuc2Zvcm0oKTsKKyAg
ICAgICAgdm9pZCByZXNldEFmZmluZVRyYW5zZm9ybSgpOworICAgICAgICB2b2lkIGZpbGxSZWN0
KGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IEdyYWRpZW50Kik7CisgICAgICAgIHZvaWQgZHJhd1Rl
eHQoY29uc3QgU2ltcGxlRm9udERhdGEqIGZvbnREYXRhLCBjb25zdCBHbHlwaEJ1ZmZlciYgZ2x5
cGhCdWZmZXIsIGludCBmcm9tLCBpbnQgbnVtR2x5cGhzLCBjb25zdCBGbG9hdFBvaW50JiBwb2lu
dCk7CisgICAgICAgIHZvaWQgZHJhd0ZyYW1lQ29udHJvbChjb25zdCBJbnRSZWN0JiByZWN0LCB1
bnNpZ25lZCB0eXBlLCB1bnNpZ25lZCBzdGF0ZSk7CisgICAgICAgIHZvaWQgZHJhd0ZvY3VzUmVj
dChjb25zdCBJbnRSZWN0JiByZWN0KTsKKyAgICAgICAgdm9pZCBwYWludFRleHRGaWVsZChjb25z
dCBJbnRSZWN0JiByZWN0LCB1bnNpZ25lZCBzdGF0ZSk7CisgICAgICAgIHZvaWQgZHJhd0JpdG1h
cChTaGFyZWRCaXRtYXAqLCBjb25zdCBJbnRSZWN0JiBkc3RSZWN0LCBjb25zdCBJbnRSZWN0JiBz
cmNSZWN0LCBDb21wb3NpdGVPcGVyYXRvciBjb21wb3NpdGVPcCk7CisgICAgICAgIHZvaWQgZHJh
d0JpdG1hcFBhdHRlcm4oU2hhcmVkQml0bWFwKiwgY29uc3QgRmxvYXRSZWN0JiB0aWxlUmVjdElu
LCBjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgcGF0dGVyblRyYW5zZm9ybSwgY29uc3QgRmxv
YXRQb2ludCYgcGhhc2UsIENvbXBvc2l0ZU9wZXJhdG9yIG9wLCBjb25zdCBGbG9hdFJlY3QmIGRl
c3RSZWN0LCBjb25zdCBJbnRTaXplJiBvcmlnU291cmNlU2l6ZSk7CisgICAgICAgIHZvaWQgZHJh
d0ljb24oSElDT04gaWNvbiwgY29uc3QgSW50UmVjdCYgZHN0UmVjdCwgVUlOVCBmbGFncyk7Cisg
ICAgICAgIEhEQyBnZXRXaW5kb3dzQ29udGV4dChjb25zdCBJbnRSZWN0JiwgYm9vbCBzdXBwb3J0
QWxwaGFCbGVuZCA9IGZhbHNlLCBib29sIG1heUNyZWF0ZUJpdG1hcCA9IHRydWUpOyAvLyBUaGUg
cGFzc2VkIGluIHJlY3QgaXMgdXNlZCB0byBjcmVhdGUgYSBiaXRtYXAgZm9yIGNvbXBvc2l0aW5n
IGluc2lkZSB0cmFuc3BhcmVuY3kgbGF5ZXJzLgorICAgICAgICB2b2lkIHJlbGVhc2VXaW5kb3dz
Q29udGV4dChIREMsIGNvbnN0IEludFJlY3QmLCBib29sIHN1cHBvcnRBbHBoYUJsZW5kID0gZmFs
c2UsIGJvb2wgbWF5Q3JlYXRlQml0bWFwID0gdHJ1ZSk7ICAgIC8vIFRoZSBwYXNzZWQgaW4gSERD
IHNob3VsZCBiZSB0aGUgb25lIGhhbmRlZCBiYWNrIGJ5IGdldFdpbmRvd3NDb250ZXh0LgorI2Vs
aWYgUExBVEZPUk0oV0lOKQogICAgICAgICBHcmFwaGljc0NvbnRleHQoSERDLCBib29sIGhhc0Fs
cGhhID0gZmFsc2UpOyAvLyBGSVhNRTogVG8gYmUgcmVtb3ZlZC4KICAgICAgICAgYm9vbCBpblRy
YW5zcGFyZW5jeUxheWVyKCkgY29uc3Q7CiAgICAgICAgIEhEQyBnZXRXaW5kb3dzQ29udGV4dChj
b25zdCBJbnRSZWN0JiwgYm9vbCBzdXBwb3J0QWxwaGFCbGVuZCA9IHRydWUsIGJvb2wgbWF5Q3Jl
YXRlQml0bWFwID0gdHJ1ZSk7IC8vIFRoZSBwYXNzZWQgaW4gcmVjdCBpcyB1c2VkIHRvIGNyZWF0
ZSBhIGJpdG1hcCBmb3IgY29tcG9zaXRpbmcgaW5zaWRlIHRyYW5zcGFyZW5jeSBsYXllcnMuCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlU291cmNlLmggYi9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlU291cmNlLmgKaW5kZXggYWNiNjRkZS4uNzI0Zjg4
MSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZVNvdXJjZS5oCisr
KyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VTb3VyY2UuaApAQCAtMSw1ICsxLDYg
QEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYgQXBwbGUgQ29tcHV0ZXIs
IEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDctMjAwOCBU
b3JjaCBNb2JpbGUsIEluYy4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNDYs
NiArNDcsOCBAQCBzdHJ1Y3QgX2NhaXJvX3N1cmZhY2U7CiB0eXBlZGVmIHN0cnVjdCBfY2Fpcm9f
c3VyZmFjZSBjYWlyb19zdXJmYWNlX3Q7CiAjZWxpZiBQTEFURk9STShTS0lBKQogY2xhc3MgTmF0
aXZlSW1hZ2VTa2lhOworI2VsaWYgUExBVEZPUk0oV0lOQ0UpCisjaW5jbHVkZSAiU2hhcmVkQml0
bWFwLmgiCiAjZW5kaWYKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNzgsNiArODEsMTAgQEAg
dHlwZWRlZiBjYWlyb19zdXJmYWNlX3QqIE5hdGl2ZUltYWdlUHRyOwogY2xhc3MgSW1hZ2VEZWNv
ZGVyOwogdHlwZWRlZiBJbWFnZURlY29kZXIqIE5hdGl2ZUltYWdlU291cmNlUHRyOwogdHlwZWRl
ZiBOYXRpdmVJbWFnZVNraWEqIE5hdGl2ZUltYWdlUHRyOworI2VsaWYgUExBVEZPUk0oV0lOQ0Up
CitjbGFzcyBJbWFnZURlY29kZXI7Cit0eXBlZGVmIEltYWdlRGVjb2RlciogTmF0aXZlSW1hZ2VT
b3VyY2VQdHI7Cit0eXBlZGVmIFJlZlB0cjxTaGFyZWRCaXRtYXA+IE5hdGl2ZUltYWdlUHRyOwog
I2VuZGlmCiAKIGNvbnN0IGludCBjQW5pbWF0aW9uTG9vcE9uY2UgPSAtMTsKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwIGIvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAKaW5kZXggZDRmYWI1Mi4uZDdkOGNlZiAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAKKysrIGIv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAKQEAgLTM4LDYgKzM4LDgg
QEAKIAogI2lmIFBMQVRGT1JNKE1BQykKICNpbmNsdWRlICJNZWRpYVBsYXllclByaXZhdGVRVEtp
dC5oIgorI2VsaWYgUExBVEZPUk0oV0lOQ0UpCisjaW5jbHVkZSAiTWVkaWFQbGF5ZXJQcml2YXRl
V2luY2UuaCIKICNlbGlmIFBMQVRGT1JNKFdJTikKICNpbmNsdWRlICJNZWRpYVBsYXllclByaXZh
dGVRdWlja1RpbWVXaW4uaCIKICNlbGlmIFBMQVRGT1JNKEdUSykKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGF0aC5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Q
YXRoLmgKaW5kZXggMDQ3MTcyNC4uNjYyZmNkYyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9QYXRoLmgKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QYXRoLmgK
QEAgLTEsNiArMSw3IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDAzLCAyMDA2LCAyMDA5IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqICAgICAgICAgICAgICAgMjAwNiBSb2Ig
QnVpcyA8YnVpc0BrZGUub3JnPgorICogQ29weXJpZ2h0IChDKSAyMDA3LTIwMDggVG9yY2ggTW9i
aWxlLCBJbmMuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTQ4LDYgKzQ5LDEw
IEBAIHR5cGVkZWYgV2ViQ29yZTo6Q2Fpcm9QYXRoIFBsYXRmb3JtUGF0aDsKICNlbGlmIFBMQVRG
T1JNKFNLSUEpCiBjbGFzcyBTa1BhdGg7CiB0eXBlZGVmIFNrUGF0aCBQbGF0Zm9ybVBhdGg7Cisj
ZWxpZiBQTEFURk9STShXSU5DRSkKK25hbWVzcGFjZSBXZWJDb3JlIHsKKyAgICBjbGFzcyBQbGF0
Zm9ybVBhdGg7Cit9CiAjZWxzZQogdHlwZWRlZiB2b2lkIFBsYXRmb3JtUGF0aDsKICNlbmRpZgpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QYXR0ZXJuLmggYi9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL1BhdHRlcm4uaAppbmRleCBkNGFhM2I5Li5lNTMxOTJhIDEwMDY0
NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BhdHRlcm4uaAorKysgYi9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL1BhdHRlcm4uaApAQCAtMSw2ICsxLDcgQEAKIC8qCiAgKiBDb3B5
cmlnaHQgKEMpIDIwMDYsIDIwMDcsIDIwMDggQXBwbGUgQ29tcHV0ZXIsIEluYy4gIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDggRXJpYyBTZWlkZWwgPGVyaWNAd2Vi
a2l0Lm9yZz4KKyAqIENvcHlyaWdodCAoQykgMjAwNy0yMDA4IFRvcmNoIE1vYmlsZSwgSW5jLgog
ICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC01Miw2ICs1Myw4IEBAIHR5cGVkZWYg
d3hHcmFwaGljc0JydXNoKiBQbGF0Zm9ybVBhdHRlcm5QdHI7CiBjbGFzcyB3eEJydXNoOwogdHlw
ZWRlZiB3eEJydXNoKiBQbGF0Zm9ybVBhdHRlcm5QdHI7CiAjZW5kaWYgLy8gVVNFKFdYR0MpCisj
ZWxpZiBQTEFURk9STShXSU5DRSkKK3R5cGVkZWYgdm9pZCogUGxhdGZvcm1QYXR0ZXJuUHRyOwog
I2VuZGlmCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9NYXRyaXgzRFRyYW5zZm9ybU9wZXJhdGlvbi5jcHAgYi9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvTWF0cml4M0RUcmFuc2Zvcm1PcGVy
YXRpb24uY3BwCmluZGV4IGFiMzQxM2IuLjIzMGJlM2MgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9NYXRyaXgzRFRyYW5zZm9ybU9wZXJhdGlvbi5jcHAK
KysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL01hdHJpeDNEVHJhbnNm
b3JtT3BlcmF0aW9uLmNwcApAQCAtNDcsNyArNDcsNyBAQCBQYXNzUmVmUHRyPFRyYW5zZm9ybU9w
ZXJhdGlvbj4gTWF0cml4M0RUcmFuc2Zvcm1PcGVyYXRpb246OmJsZW5kKGNvbnN0IFRyYW5zZm9y
bQogICAgIGFwcGx5KHRvVCwgc2l6ZSk7CiAKICAgICBpZiAoYmxlbmRUb0lkZW50aXR5KQotICAg
ICAgICBzd2FwKGZyb21ULCB0b1QpOworICAgICAgICBzdGQ6OnN3YXAoZnJvbVQsIHRvVCk7CiAK
ICAgICB0b1QuYmxlbmQoZnJvbVQsIHByb2dyZXNzKTsKICAgICByZXR1cm4gTWF0cml4M0RUcmFu
c2Zvcm1PcGVyYXRpb246OmNyZWF0ZSh0b1QpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy90cmFuc2Zvcm1zL01hdHJpeFRyYW5zZm9ybU9wZXJhdGlvbi5jcHAgYi9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvTWF0cml4VHJhbnNmb3JtT3BlcmF0aW9u
LmNwcAppbmRleCA0OTM0ZmE2Li4wZWFjY2VhIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3RyYW5zZm9ybXMvTWF0cml4VHJhbnNmb3JtT3BlcmF0aW9uLmNwcAorKysgYi9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvTWF0cml4VHJhbnNmb3JtT3BlcmF0
aW9uLmNwcApAQCAtNDMsNyArNDMsNyBAQCBQYXNzUmVmUHRyPFRyYW5zZm9ybU9wZXJhdGlvbj4g
TWF0cml4VHJhbnNmb3JtT3BlcmF0aW9uOjpibGVuZChjb25zdCBUcmFuc2Zvcm1PcAogICAgIH0K
ICAgICAKICAgICBpZiAoYmxlbmRUb0lkZW50aXR5KQotICAgICAgICBzd2FwKGZyb21ULCB0b1Qp
OworICAgICAgICBzdGQ6OnN3YXAoZnJvbVQsIHRvVCk7CiAKICAgICB0b1QuYmxlbmQoZnJvbVQs
IHByb2dyZXNzKTsKICAgICByZXR1cm4gTWF0cml4VHJhbnNmb3JtT3BlcmF0aW9uOjpjcmVhdGUo
dG9ULmEoKSwgdG9ULmIoKSwgdG9ULmMoKSwgdG9ULmQoKSwgdG9ULmUoKSwgdG9ULmYoKSk7CmRp
ZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvVHJhbnNmb3Jt
YXRpb25NYXRyaXguaCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9UcmFu
c2Zvcm1hdGlvbk1hdHJpeC5oCmluZGV4IDM2ZTRiNzAuLjMxNDY2MWQgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9UcmFuc2Zvcm1hdGlvbk1hdHJpeC5o
CisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9UcmFuc2Zvcm1hdGlv
bk1hdHJpeC5oCkBAIC0yODQsNyArMjg0LDcgQEAgcHVibGljOgogICAgIH0KICAgICAKICAgICAv
LyByZXN1bHQgPSAqdGhpcyAqIHQgKGkuZS4sIGEgbXVsdFJpZ2h0KQotICAgIFRyYW5zZm9ybWF0
aW9uTWF0cml4IG9wZXJhdG9yKihjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgdCkKKyAgICBU
cmFuc2Zvcm1hdGlvbk1hdHJpeCBvcGVyYXRvciooY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgm
IHQpIGNvbnN0CiAgICAgewogICAgICAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCByZXN1bHQgPSB0
OwogICAgICAgICByZXN1bHQubXVsdExlZnQoKnRoaXMpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy93aW4vSWNvbldpbi5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3dpbi9JY29uV2luLmNwcAppbmRleCBjMDJiNTZlLi42MWYxZmQzIDEwMDY0NAotLS0gYS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9JY29uV2luLmNwcAorKysgYi9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3dpbi9JY29uV2luLmNwcApAQCAtMSw1ICsxLDYgQEAKIC8qCiAqIENv
cHlyaWdodCAoQykgMjAwNiwgMjAwNywgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisqIENvcHlyaWdodCAoQykgMjAwNy0yMDA5IFRvcmNoIE1vYmlsZSwgSW5jLgogKgogKiBU
aGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5k
L29yCiAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVy
YWwgUHVibGljCkBAIC0yNiw2ICsyNywxMSBAQAogI2luY2x1ZGUgPHRjaGFyLmg+CiAjaW5jbHVk
ZSA8d2luZG93cy5oPgogCisjaWYgUExBVEZPUk0oV0lOQ0UpCisvLyBTSEdGSV9TSEVMTElDT05T
SVpFIGlzIG5vdCBhdmFpbGFibGUgb24gV0lOQ0UKKyNkZWZpbmUgU0hHRklfU0hFTExJQ09OU0la
RSAgICAgICAgIDAKKyNlbmRpZgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHN0YXRpYyBjb25z
dCBpbnQgc2hlbGwzMk11bHRpcGxlRmlsZUljb25JbmRleCA9IDU0OwpAQCAtNTUsNiArNjEsOSBA
QCBQYXNzUmVmUHRyPEljb24+IEljb246OmNyZWF0ZUljb25Gb3JGaWxlKGNvbnN0IFN0cmluZyYg
ZmlsZW5hbWUpCiAKIFBhc3NSZWZQdHI8SWNvbj4gSWNvbjo6Y3JlYXRlSWNvbkZvckZpbGVzKGNv
bnN0IFZlY3RvcjxTdHJpbmc+JikKIHsKKyNpZiBQTEFURk9STShXSU5DRSkKKyAgICByZXR1cm4g
MDsKKyNlbHNlCiAgICAgVENIQVIgYnVmZmVyW01BWF9QQVRIXTsgICAgCiAgICAgVUlOVCBsZW5n
dGggPSA6OkdldFN5c3RlbURpcmVjdG9yeShidWZmZXIsIEFSUkFZU0laRShidWZmZXIpKTsKICAg
ICBpZiAoIWxlbmd0aCkKQEAgLTY3LDYgKzc2LDcgQEAgUGFzc1JlZlB0cjxJY29uPiBJY29uOjpj
cmVhdGVJY29uRm9yRmlsZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mKQogICAgIGlmICghOjpFeHRy
YWN0SWNvbkV4KGJ1ZmZlciwgc2hlbGwzMk11bHRpcGxlRmlsZUljb25JbmRleCwgMCwgJmhJY29u
LCAxKSkKICAgICAgICAgcmV0dXJuIDA7CiAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBJY29uKGhJ
Y29uKSk7CisjZW5kaWYKIH0KIAogdm9pZCBJY29uOjpwYWludChHcmFwaGljc0NvbnRleHQqIGNv
bnRleHQsIGNvbnN0IEludFJlY3QmIHIpCkBAIC03NCwxMSArODQsMTUgQEAgdm9pZCBJY29uOjpw
YWludChHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IEludFJlY3QmIHIpCiAgICAgaWYg
KGNvbnRleHQtPnBhaW50aW5nRGlzYWJsZWQoKSkKICAgICAgICAgcmV0dXJuOwogCisjaWYgUExB
VEZPUk0oV0lOQ0UpCisgICAgY29udGV4dC0+ZHJhd0ljb24obV9oSWNvbiwgciwgRElfTk9STUFM
KTsKKyNlbHNlCiAgICAgSERDIGhkYyA9IGNvbnRleHQtPmdldFdpbmRvd3NDb250ZXh0KHIpOwog
CiAgICAgRHJhd0ljb25FeChoZGMsIHIueCgpLCByLnkoKSwgbV9oSWNvbiwgci53aWR0aCgpLCBy
LmhlaWdodCgpLCAwLCAwLCBESV9OT1JNQUwpOwogCiAgICAgY29udGV4dC0+cmVsZWFzZVdpbmRv
d3NDb250ZXh0KGhkYywgcik7CisjZW5kaWYKIH0KIAogfQo=
</data>
<flag name="review"
          id="17980"
          type_id="1"
          status="+"
          setter="staikos"
    />
          </attachment>
      

    </bug>

</bugzilla>