<?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>132602</bug_id>
          
          <creation_ts>2014-05-06 01:52:20 -0700</creation_ts>
          <short_desc>[GTK] [Stable] Can&apos;t browse new Google maps with latest stable</short_desc>
          <delta_ts>2021-02-17 07:21:05 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=142074</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Xabier Rodríguez Calvar">calvaris</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>berto</cc>
    
    <cc>cgarcia</cc>
    
    <cc>clopez</cc>
    
    <cc>gustavo</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>svillar</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1006895</commentid>
    <comment_count>0</comment_count>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2014-05-06 01:52:20 -0700</bug_when>
    <thetext>Since I updated and recompiled my webkit stack, I can&apos;t see the new Google Maps interface properly. It opens, but after I search some place I can see nothing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1006903</commentid>
    <comment_count>1</comment_count>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2014-05-06 03:19:08 -0700</bug_when>
    <thetext>Seems this is caused by the string &quot;Version/6.0&quot; of the user-agent that WebKitGTK+ sends.

I guess that reverting r166405 &lt;http://trac.webkit.org/r166405&gt; would fix this issue.


If you have epiphany, you can test it with:

# set the UA with the &quot;Version/6.0&quot; substring and try google maps
gsettings set &apos;org.gnome.Epiphany&apos; &apos;user-agent&apos; &apos;Mozilla/5.0 (Macintosh; Intel Mac OS X) AppleWebKit/538.15 (KHTML, like Gecko) Safari/538.15 Version/6.0 Debian/unstable (3.12.0-1) Epiphany/3.12.0&apos;

# now set the UA without the &quot;Version/6.0&quot; substring and try again
gsettings set &apos;org.gnome.Epiphany&apos; &apos;user-agent&apos; &apos;Mozilla/5.0 (Macintosh; Intel Mac OS X) AppleWebKit/538.15 (KHTML, like Gecko) Safari/538.15 Debian/unstable (3.12.0-1) Epiphany/3.12.0&apos;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1006911</commentid>
    <comment_count>2</comment_count>
    <who name="Alberto Garcia">berto</who>
    <bug_when>2014-05-06 04:25:15 -0700</bug_when>
    <thetext>Reproduced with r168307</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1006923</commentid>
    <comment_count>3</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2014-05-06 05:33:52 -0700</bug_when>
    <thetext>(In reply to comment #1)
&gt; Seems this is caused by the string &quot;Version/6.0&quot; of the user-agent that WebKitGTK+ sends.
&gt; 
&gt; I guess that reverting r166405 &lt;http://trac.webkit.org/r166405&gt; would fix this issue.

As an FYI: the user agent prior to r166405 caused us to receive the fallback www.google.com (with the black header bar and the I&apos;m feeling lucky button) for ancient browsers. This annoyed me perhaps more than it should have.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1020482</commentid>
    <comment_count>4</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2014-07-04 04:46:16 -0700</bug_when>
    <thetext>*** Bug 134631 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1020483</commentid>
    <comment_count>5</comment_count>
      <attachid>234402</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2014-07-04 04:47:46 -0700</bug_when>
    <thetext>Created attachment 234402
Patch

This is only for stable for now. The google maps quirk is not needed in trunk, but maybe the other google domains quirk is required, I don&apos;t really know.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1020484</commentid>
    <comment_count>6</comment_count>
      <attachid>234403</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2014-07-04 04:59:29 -0700</bug_when>
    <thetext>Created attachment 234403
Updated patch

Patch updated to cover the case where Google Maps is used with url http://google.com/maps instead of maps.google.com</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1020792</commentid>
    <comment_count>7</comment_count>
      <attachid>234403</attachid>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2014-07-07 01:58:55 -0700</bug_when>
    <thetext>Comment on attachment 234403
Updated patch

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

Overall the patch looks good but I disagree on removing only the &quot;Version&quot; part. See bellow.

&gt; Source/WebCore/platform/gtk/UserAgentGtk.cpp:253
&gt; +    uaString.appendLiteral(&quot; Safari/&quot;);

I wouldn&apos;t do this. As I mentioned in the change that added the &quot;Version&quot; part, there is no point on having &quot;Safari/&quot; without the &quot;Version&quot; string as that&apos;s invalid. So either we add them both or we add nothing.

That&apos;d mean that we should likely rename the quirk to something like ClaimToBeSafari or something.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1020796</commentid>
    <comment_count>8</comment_count>
    <who name="Alberto Garcia">berto</who>
    <bug_when>2014-07-07 02:07:55 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; there is no point on having &quot;Safari/&quot; without the &quot;Version&quot; string
&gt; as that&apos;s invalid. So either we add them both or we add nothing.

Google maps works fine if we add nothing. The interesting thing is
that in that case the &quot;Try the new Google Maps&quot; option doesn&apos;t appear.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1020799</commentid>
    <comment_count>9</comment_count>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2014-07-07 02:16:39 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; (In reply to comment #7)
&gt; &gt; there is no point on having &quot;Safari/&quot; without the &quot;Version&quot; string
&gt; &gt; as that&apos;s invalid. So either we add them both or we add nothing.
&gt; 
&gt; Google maps works fine if we add nothing. The interesting thing is
&gt; that in that case the &quot;Try the new Google Maps&quot; option doesn&apos;t appear.

Another option could be to downgrade the Version number we use in stable so that google and other providers could safely assume that we have a given JS API. What about using &quot;Version 7&quot;? Does it fix the issues?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1020801</commentid>
    <comment_count>10</comment_count>
    <who name="Alberto Garcia">berto</who>
    <bug_when>2014-07-07 02:26:30 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; What about using &quot;Version 7&quot;? Does it fix the issues?

No, it actually fails already with Version 6.

Version 5 (if such a thing exists) works fine though, sending the old
version of the maps.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1020803</commentid>
    <comment_count>11</comment_count>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2014-07-07 02:41:38 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; (In reply to comment #7)
&gt; &gt; there is no point on having &quot;Safari/&quot; without the &quot;Version&quot; string
&gt; &gt; as that&apos;s invalid. So either we add them both or we add nothing.
&gt; 
&gt; Google maps works fine if we add nothing. The interesting thing is
&gt; that in that case the &quot;Try the new Google Maps&quot; option doesn&apos;t appear.

The problem happens when you switched already to the new maps. In that case, it&apos;s non-functional.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1020807</commentid>
    <comment_count>12</comment_count>
    <who name="Alberto Garcia">berto</who>
    <bug_when>2014-07-07 03:57:37 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; (In reply to comment #8)
&gt; &gt; (In reply to comment #7)
&gt; &gt; &gt; there is no point on having &quot;Safari/&quot; without the &quot;Version&quot; string
&gt; &gt; &gt; as that&apos;s invalid. So either we add them both or we add nothing.
&gt; &gt;
&gt; &gt; Google maps works fine if we add nothing. The interesting thing is
&gt; &gt; that in that case the &quot;Try the new Google Maps&quot; option doesn&apos;t appear.
&gt;
&gt; The problem happens when you switched already to the new maps. In
&gt; that case, it&apos;s non-functional.

If you have only the &quot;Safari/&quot; part of the user-agent it will show you
the old maps plus the button to try the new ones. The interesting
thing is that in that case the new maps do work fine.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1020817</commentid>
    <comment_count>13</comment_count>
    <who name="Alberto Garcia">berto</who>
    <bug_when>2014-07-07 06:42:19 -0700</bug_when>
    <thetext>Anyway, removing both the &quot;Version/&quot; and the &quot;Safari/&quot; part for the maps lgtm, can we do this then? I think it&apos;s the only missing patch for the 2.4.4 release, isn&apos;t it?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1021051</commentid>
    <comment_count>14</comment_count>
      <attachid>234550</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2014-07-08 00:01:41 -0700</bug_when>
    <thetext>Created attachment 234550
Updated path

Rename the quirk and remove the whole safari part of the user agent as suggested by Sergio</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1021054</commentid>
    <comment_count>15</comment_count>
    <who name="Alberto Garcia">berto</who>
    <bug_when>2014-07-08 01:38:01 -0700</bug_when>
    <thetext>(In reply to comment #14)
&gt; Created an attachment (id=234550) [details]
&gt; Updated path
&gt; 
&gt; Rename the quirk and remove the whole safari part of the user agent as suggested by Sergio

Tested, it works fine.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1021060</commentid>
    <comment_count>16</comment_count>
      <attachid>234550</attachid>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2014-07-08 02:32:16 -0700</bug_when>
    <thetext>Comment on attachment 234550
Updated path

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

Let&apos;s go for it

&gt; Source/WebCore/platform/gtk/UserAgentGtk.cpp:252
&gt; +        uaString.appendLiteral(&quot; Safari/&quot;);

Use a single appendLiteral() here</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1021062</commentid>
    <comment_count>17</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2014-07-08 02:42:25 -0700</bug_when>
    <thetext>Committed &lt;http://trac.webkit.org/changeset/170882&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>234402</attachid>
            <date>2014-07-04 04:47:46 -0700</date>
            <delta_ts>2014-07-04 04:59:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>wk-google-maps-quirk.diff</filename>
            <type>text/plain</type>
            <size>20175</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA2YTAyZjdjLi41NjgwY2QwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjcg
QEAKKzIwMTQtMDctMDQgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29t
PgorCisgICAgICAgIFtHVEtdW1N0YWJsZV0gR29vZ2xlIE1hcHMgZG9lc24ndCB3b3JrIHdpdGgg
VmVyc2lvbi9YIGluIHRoZSB1c2VyIGFnZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMzQ2MzEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBCZWNhdXNlIG9mIHRoZSBKU0MgdmVyc2lvbiB1c2VkIGluIHN0
YWJsZSBicmFuY2gsIHdoZW4gdGhlCisgICAgICAgIFZlcnNpb24vWCBzdHJpbmcgaXMgcHJlc2Vu
dCBpbiB0aGUgdXNlciBhZ2VudCwgZ29vZ2xlIG1hcHMgdXNlcworICAgICAgICBKYXZhU2NyaXB0
IEFQSSB0aGF0IHdlIGRvbid0IHN1cHBvcnQuIE1vdmUgdGhlIGdvb2dsZSBkb21haW4gcXVpcmtz
CisgICAgICAgIGZyb20gV2ViS2l0MSB0byBXZWJDb3JlIGFuZCBhZGQgYSBxdWlyayBmb3IgZ29v
Z2xlIG1hcHMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvVXNlckFnZW50R3RrLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Omdvb2dsZURvbWFpbnMpOgorICAgICAgICAoV2ViQ29yZTo6b3RoZXJH
b29nbGVEb21haW5zKToKKyAgICAgICAgKFdlYkNvcmU6OmlzR29vZ2xlRG9tYWluKTogUmV0dXJu
cyB3aGV0aGVyIHRoZSBnaXZlbiBob3N0IGlzIGEKKyAgICAgICAga25vd24gZ29vZ2xlIGRvbWFp
bgorICAgICAgICAoV2ViQ29yZTo6YnVpbGRVc2VyQWdlbnRTdHJpbmcpOiBEbyBub3QgaW5jbHVk
ZSB0aGUgVmVyc2lvbi9YCisgICAgICAgIHN0cmluZyBpbiB0aGUgdXNlciBhZ2VudCBpZiB0aGUg
U2hvdWxkTm90SW5jbHVkZVNhZmFyaVZlcnNpb24KKyAgICAgICAgcXVpcmsgaXMgcHJlc2VudC4K
KyAgICAgICAgKFdlYkNvcmU6OnN0YW5kYXJkVXNlckFnZW50Rm9yVVJMKTogQWRkIFJlcXVpcmVz
U3RhbmRhcmRVc2VyQWdlbnQKKyAgICAgICAgcXVpcmsgZm9yIGFueSBnb29nbGUgZG9hbWluIGFu
ZCBTaG91bGROb3RJbmNsdWRlU2FmYXJpVmVyc2lvbiBmb3IKKyAgICAgICAgR29vZ2xlIE1hcHMu
CisKIDIwMTQtMDYtMjcgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgog
CiAgICAgICAgIFtHVEtdIDh0cmFja3MuY29tIHRyaWdnZXJzIGFubm95aW5nIHBvcC11cCB3aW5k
b3cvaW5zdGFsbGF0aW9uIG9mICJBYm91dCBwcm90b2NvbCBzb3VyY2UgcGx1Z2luIiAoR1N0cmVh
bWVyPykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9Vc2VyQWdlbnRH
dGsuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1VzZXJBZ2VudEd0ay5jcHAKaW5k
ZXggYWRmMTI4Ny4uOGM4OTExOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3RrL1VzZXJBZ2VudEd0ay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1Vz
ZXJBZ2VudEd0ay5jcHAKQEAgLTI4LDcgKzI4LDkgQEAKIAogI2luY2x1ZGUgIlVSTC5oIgogI2lu
Y2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgorI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAj
aW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1N0
cmluZ0hhc2guaD4KIAogI2lmIE9TKFVOSVgpCiAjaW5jbHVkZSA8c3lzL3V0c25hbWUuaD4KQEAg
LTQwLDYgKzQyLDggQEAgY2xhc3MgVXNlckFnZW50UXVpcmtzIHsKIHB1YmxpYzoKICAgICBlbnVt
IFVzZXJBZ2VudFF1aXJrIHsKICAgICAgICAgTmVlZHNNYWNpbnRvc2hQbGF0Zm9ybSwKKyAgICAg
ICAgUmVxdWlyZXNTdGFuZGFyZFVzZXJBZ2VudCwKKyAgICAgICAgU2hvdWxkTm90SW5jbHVkZVNh
ZmFyaVZlcnNpb24sCiAKICAgICAgICAgTnVtVXNlckFnZW50UXVpcmtzCiAgICAgfTsKQEAgLTY5
LDYgKzczLDEwNyBAQCBwcml2YXRlOgogICAgIHVpbnQzMl90IG1fcXVpcmtzOwogfTsKIAorc3Rh
dGljIGNvbnN0IEhhc2hTZXQ8U3RyaW5nPiYgZ29vZ2xlRG9tYWlucygpCit7CisgICAgc3RhdGlj
IE5ldmVyRGVzdHJveWVkPEhhc2hTZXQ8U3RyaW5nPj4gZG9tYWlucyhzdGQ6OmluaXRpYWxpemVy
X2xpc3Q8U3RyaW5nPih7CisgICAgICAgICJiaXoiLAorICAgICAgICAiY29tIiwKKyAgICAgICAg
Im5ldCIsCisgICAgICAgICJvcmciLAorICAgICAgICAiYWUiLAorICAgICAgICAiYWciLAorICAg
ICAgICAiYW0iLAorICAgICAgICAiYXQiLAorICAgICAgICAiYXoiLAorICAgICAgICAiYmUiLAor
ICAgICAgICAiYmkiLAorICAgICAgICAiY2EiLAorICAgICAgICAiY2MiLAorICAgICAgICAiY2Qi
LAorICAgICAgICAiY2ciLAorICAgICAgICAiY2giLAorICAgICAgICAiY2wiLAorICAgICAgICAi
Y29tLmJyIiwKKyAgICAgICAgImNvbS5kbyIsCisgICAgICAgICJjby51ayIsCisgICAgICAgICJj
by5rciIsCisgICAgICAgICJjby5qcCIsCisgICAgICAgICJkZSIsCisgICAgICAgICJkaiIsCisg
ICAgICAgICJkayIsCisgICAgICAgICJlZSIsCisgICAgICAgICJlcyIsCisgICAgICAgICJmaSIs
CisgICAgICAgICJmbSIsCisgICAgICAgICJmciIsCisgICAgICAgICJnZyIsCisgICAgICAgICJn
bCIsCisgICAgICAgICJnbSIsCisgICAgICAgICJncyIsCisgICAgICAgICJobiIsCisgICAgICAg
ICJodSIsCisgICAgICAgICJpZSIsCisgICAgICAgICJpdCIsCisgICAgICAgICJqZSIsCisgICAg
ICAgICJreiIsCisgICAgICAgICJsaSIsCisgICAgICAgICJsdCIsCisgICAgICAgICJsdSIsCisg
ICAgICAgICJsdiIsCisgICAgICAgICJtYSIsCisgICAgICAgICJtcyIsCisgICAgICAgICJtdSIs
CisgICAgICAgICJtdyIsCisgICAgICAgICJubCIsCisgICAgICAgICJubyIsCisgICAgICAgICJu
dSIsCisgICAgICAgICJwbCIsCisgICAgICAgICJwbiIsCisgICAgICAgICJwdCIsCisgICAgICAg
ICJydSIsCisgICAgICAgICJydyIsCisgICAgICAgICJzaCIsCisgICAgICAgICJzayIsCisgICAg
ICAgICJzbSIsCisgICAgICAgICJzdCIsCisgICAgICAgICJ0ZCIsCisgICAgICAgICJ0ayIsCisg
ICAgICAgICJ0cCIsCisgICAgICAgICJ0diIsCisgICAgICAgICJ1cyIsCisgICAgICAgICJ1eiIs
CisgICAgICAgICJ3cyIKKyAgICB9KSk7CisgICAgcmV0dXJuIGRvbWFpbnM7Cit9CisKK3N0YXRp
YyBjb25zdCBWZWN0b3I8U3RyaW5nPiYgb3RoZXJHb29nbGVEb21haW5zKCkKK3sKKyAgICBzdGF0
aWMgTmV2ZXJEZXN0cm95ZWQ8VmVjdG9yPFN0cmluZz4+IG90aGVyRG9tYWlucyhzdGQ6OmluaXRp
YWxpemVyX2xpc3Q8U3RyaW5nPih7CisgICAgICAgICJnbWFpbC5jb20iLAorICAgICAgICAieW91
dHViZS5jb20iLAorICAgICAgICAiZ3N0YXRpYy5jb20iLAorICAgICAgICAieXRpbWcuY29tIgor
ICAgIH0pKTsKKyAgICByZXR1cm4gb3RoZXJEb21haW5zOworfQorCitzdGF0aWMgYm9vbCBpc0dv
b2dsZURvbWFpbihTdHJpbmcgaG9zdCkKK3sKKyAgICAvLyBGaXJzdCBjaGVjayBpZiB0aGlzIGlz
IG9uZSBvZiB0aGUgdmFyaW91cyBnb29nbGUuY29tIGludGVybmF0aW9uYWwgZG9tYWlucy4KKyAg
ICBpbnQgcG9zaXRpb24gPSBob3N0LmZpbmQoIi5nb29nbGUuIik7CisgICAgaWYgKHBvc2l0aW9u
ID4gMCAmJiBnb29nbGVEb21haW5zKCkuY29udGFpbnMoaG9zdC5zdWJzdHJpbmcocG9zaXRpb24g
KyBzaXplb2YoIi5nb29nbGUuIikgLSAxKSkpCisgICAgICAgIHJldHVybiB0cnVlOworCisgICAg
Ly8gVGhlbiB3ZSBjaGVjayB0aGUgcG9zc2liaWxpdHkgb2YgaXQgYmVpbmcgb25lIG9mIHRoZSBv
dGhlciwgLmNvbS1vbmx5IGdvb2dsZSBkb21haW5zLgorICAgIGZvciAodW5zaWduZWQgaSA9IDA7
IGkgPCBvdGhlckdvb2dsZURvbWFpbnMoKS5zaXplKCk7IGkrKykgeworICAgICAgICBpZiAoaG9z
dC5lbmRzV2l0aChvdGhlckdvb2dsZURvbWFpbnMoKS5hdChpKSkpCisgICAgICAgICAgICByZXR1
cm4gdHJ1ZTsKKyAgICB9CisKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKIHN0YXRpYyBjb25zdCBj
aGFyKiBjcHVEZXNjcmlwdGlvbkZvclVBU3RyaW5nKCkKIHsKICNpZiBDUFUoUFBDKSB8fCBDUFUo
UFBDNjQpCkBAIC0xMzgsOSArMjQzLDE0IEBAIHN0YXRpYyBTdHJpbmcgYnVpbGRVc2VyQWdlbnRT
dHJpbmcoY29uc3QgVXNlckFnZW50UXVpcmtzJiBxdWlya3MpCiAKICAgICB1YVN0cmluZy5hcHBl
bmRMaXRlcmFsKCIpIEFwcGxlV2ViS2l0LyIpOwogICAgIHVhU3RyaW5nLmFwcGVuZCh2ZXJzaW9u
Rm9yVUFTdHJpbmcoKSk7Ci0gICAgLy8gVmVyc2lvbi9YIGlzIG1hbmRhdG9yeSAqYmVmb3JlKiBT
YWZhcmkvWCB0byBiZSBhIHZhbGlkIFNhZmFyaSBVQS4gU2VlCi0gICAgLy8gaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzMzQwMyBmb3IgZGV0YWlscy4KLSAgICB1YVN0
cmluZy5hcHBlbmRMaXRlcmFsKCIgKEtIVE1MLCBsaWtlIEdlY2tvKSBWZXJzaW9uLzguMCBTYWZh
cmkvIik7CisKKyAgICB1YVN0cmluZy5hcHBlbmRMaXRlcmFsKCIgKEtIVE1MLCBsaWtlIEdlY2tv
KSIpOworICAgIGlmICghcXVpcmtzLmNvbnRhaW5zKFVzZXJBZ2VudFF1aXJrczo6U2hvdWxkTm90
SW5jbHVkZVNhZmFyaVZlcnNpb24pKSB7CisgICAgICAgIC8vIFZlcnNpb24vWCBpcyBtYW5kYXRv
cnkgKmJlZm9yZSogU2FmYXJpL1ggdG8gYmUgYSB2YWxpZCBTYWZhcmkgVUEuIFNlZQorICAgICAg
ICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMzNDAzIGZvciBk
ZXRhaWxzLgorICAgICAgICB1YVN0cmluZy5hcHBlbmRMaXRlcmFsKCIgVmVyc2lvbi84LjAiKTsK
KyAgICB9CisgICAgdWFTdHJpbmcuYXBwZW5kTGl0ZXJhbCgiIFNhZmFyaS8iKTsKICAgICB1YVN0
cmluZy5hcHBlbmQodmVyc2lvbkZvclVBU3RyaW5nKCkpOwogCiAgICAgcmV0dXJuIHVhU3RyaW5n
LnRvU3RyaW5nKCk7CkBAIC0xODAsNiArMjkwLDE0IEBAIFN0cmluZyBzdGFuZGFyZFVzZXJBZ2Vu
dEZvclVSTChjb25zdCBVUkwmIHVybCkKICAgICAgICAgLy8gd3d3LnlhaG9vLmNvbSByZWRpcmVj
dHMgdG8gdGhlIG1vYmlsZSB2ZXJzaW9uIHdoZW4gTGludXggaXMgcHJlc2VudCBpbiB0aGUgVUEs
CiAgICAgICAgIC8vIHVzZSBhbHdheXMgTWFjaW50b3NoIGFzIHBsYXRmb3JtLiBTZWUgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNTQ0NC4KICAgICAgICAgcXVpcmtz
LmFkZChVc2VyQWdlbnRRdWlya3M6Ok5lZWRzTWFjaW50b3NoUGxhdGZvcm0pOworICAgIH0gZWxz
ZSBpZiAoaXNHb29nbGVEb21haW4odXJsLmhvc3QoKSkpIHsKKyAgICAgICAgLy8gRm9yIEdvb2ds
ZSBkb21haW5zLCBkcm9wIHRoZSBicm93c2VyJ3MgY3VzdG9tIFVzZXIgQWdlbnQgc3RyaW5nLCBh
bmQgdXNlIHRoZQorICAgICAgICAvLyBzdGFuZGFyZCBvbmUsIHNvIHRoZXkgZG9uJ3QgZ2l2ZSB1
cyBhIGJyb2tlbiBleHBlcmllbmNlLgorICAgICAgICBxdWlya3MuYWRkKFVzZXJBZ2VudFF1aXJr
czo6UmVxdWlyZXNTdGFuZGFyZFVzZXJBZ2VudCk7CisKKyAgICAgICAgLy8gR29vZ2xlIE1hcHMg
dXNlcyBuZXcgSmF2YVNjcmlwdCBBUEkgbm90IHN1cHBvcnRlZCBieSB1cyB3aGVuIFNhZmFyaSBW
ZXJzaW9uIGlzIHByZXNlbnQgaW4gdGhlIHVzZXIgYWdlbnQuCisgICAgICAgIGlmICh1cmwuaG9z
dCgpLnN0YXJ0c1dpdGgoIm1hcHMiKSkKKyAgICAgICAgICAgIHF1aXJrcy5hZGQoVXNlckFnZW50
UXVpcmtzOjpTaG91bGROb3RJbmNsdWRlU2FmYXJpVmVyc2lvbik7CiAgICAgfQogCiAgICAgLy8g
VGhlIG51bGwgc3RyaW5nIG1lYW5zIHdlIGRvbid0IG5lZWQgYSBzcGVjaWZpYyBVQSBmb3IgdGhl
IGdpdmVuIFVSTC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZwppbmRleCBmNTIwMjA3Li5lMTY2OTVlMyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3Rr
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDE0LTA3LTA0ICBDYXJsb3MgR2FyY2lhIENh
bXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KKworICAgICAgICBbR1RLXVtTdGFibGVdIEdvb2ds
ZSBNYXBzIGRvZXNuJ3Qgd29yayB3aXRoIFZlcnNpb24vWCBpbiB0aGUgdXNlciBhZ2VudAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM0NjMxCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVtb3ZlIHVzZXIg
YWdlbnQgcXVpcmtzIGZvciBnb29nbGUgZG9tYWlucywgc2luY2UgdGhleSBhcmUgbm93CisgICAg
ICAgIGltcGxlbWVudGVkIGluIFdlYkNvcmUuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9G
cmFtZUxvYWRlckNsaWVudEd0ay5jcHA6CisgICAgICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xp
ZW50Ojp1c2VyQWdlbnQpOiBQYXNzIHRoZSBXZWJDb3JlOjpVUkwKKyAgICAgICAgY29uc3QgcmVm
ZXJlbmNlIHRvIHdlYmtpdFdlYlNldHRpbmdzVXNlckFnZW50Rm9yVVJJKCkuCisgICAgICAgICog
d2Via2l0L3dlYmtpdHdlYnNldHRpbmdzLmNwcDoKKyAgICAgICAgKHdlYmtpdFdlYlNldHRpbmdz
VXNlckFnZW50Rm9yVVJJKTogVXNlCisgICAgICAgIFdlYkNvcmU6OnN0YW5kYXJkVXNlckFnZW50
Rm9yVVJMKCkgd2hlbiBzaXRlIHNwZWNpZmljIHF1aXJrcyBhcmUgZW5hYmxlZC4KKyAgICAgICAg
KiB3ZWJraXQvd2Via2l0d2Vic2V0dGluZ3Nwcml2YXRlLmg6CisKIDIwMTQtMDUtMjYgIENhcmxv
cyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFVucmV2aWV3
ZWQuIFVwZGF0ZSBORVdTIGFuZCBWZXJzaW9ucy5tNCBmb3IgMi40LjMgcmVsZWFzZS4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50
R3RrLmNwcCBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xp
ZW50R3RrLmNwcAppbmRleCBiMjRlMDg5Li4yYTZhNmQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuY3BwCkBA
IC0xMjMsNyArMTIzLDcgQEAgRnJhbWVMb2FkZXJDbGllbnQ6On5GcmFtZUxvYWRlckNsaWVudCgp
CiBTdHJpbmcgRnJhbWVMb2FkZXJDbGllbnQ6OnVzZXJBZ2VudChjb25zdCBVUkwmIHVybCkKIHsK
ICAgICBXZWJLaXRXZWJTZXR0aW5ncyogc2V0dGluZ3MgPSB3ZWJraXRfd2ViX3ZpZXdfZ2V0X3Nl
dHRpbmdzKGdldFZpZXdGcm9tRnJhbWUobV9mcmFtZSkpOwotICAgIEdVbmlxdWVQdHI8Z2NoYXI+
IHVzZXJBZ2VudFN0cmluZyh3ZWJraXRXZWJTZXR0aW5nc1VzZXJBZ2VudEZvclVSSShzZXR0aW5n
cywgdXJsLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpKTsKKyAgICBHVW5pcXVlUHRyPGdjaGFyPiB1
c2VyQWdlbnRTdHJpbmcod2Via2l0V2ViU2V0dGluZ3NVc2VyQWdlbnRGb3JVUkkoc2V0dGluZ3Ms
IHVybCkpOwogICAgIHJldHVybiBTdHJpbmc6OmZyb21VVEY4KHVzZXJBZ2VudFN0cmluZy5nZXQo
KSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJz
ZXR0aW5ncy5jcHAgYi9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vic2V0dGluZ3Mu
Y3BwCmluZGV4IDVmNzEzOTUuLjA2M2U5ZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3Rr
L3dlYmtpdC93ZWJraXR3ZWJzZXR0aW5ncy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ndGsvd2Vi
a2l0L3dlYmtpdHdlYnNldHRpbmdzLmNwcApAQCAtMTUwNCwxMjEgKzE1MDQsNiBAQCBjb25zdCBn
Y2hhciogd2Via2l0X3dlYl9zZXR0aW5nc19nZXRfdXNlcl9hZ2VudChXZWJLaXRXZWJTZXR0aW5n
cyogd2ViU2V0dGluZ3MpCiAgICAgcmV0dXJuIHdlYlNldHRpbmdzLT5wcml2LT51c2VyQWdlbnQu
ZGF0YSgpOwogfQogCi1zdGF0aWMgdm9pZCBpbml0aWFsaXplRG9tYWluc0xpc3QoSGFzaFNldDxT
dHJpbmc+JiBnb29nbGVEb21haW5zKQotewotICAgIC8vIEdvb2dsZSBzZWFyY2ggZG9tYWlucy4K
LSAgICBnb29nbGVEb21haW5zLmFkZCgiYml6Iik7Ci0gICAgZ29vZ2xlRG9tYWlucy5hZGQoImNv
bSIpOwotICAgIGdvb2dsZURvbWFpbnMuYWRkKCJuZXQiKTsKLSAgICBnb29nbGVEb21haW5zLmFk
ZCgib3JnIik7Ci0gICAgZ29vZ2xlRG9tYWlucy5hZGQoImFlIik7Ci0gICAgZ29vZ2xlRG9tYWlu
cy5hZGQoImFnIik7Ci0gICAgZ29vZ2xlRG9tYWlucy5hZGQoImFtIik7Ci0gICAgZ29vZ2xlRG9t
YWlucy5hZGQoImF0Iik7Ci0gICAgZ29vZ2xlRG9tYWlucy5hZGQoImF6Iik7Ci0gICAgZ29vZ2xl
RG9tYWlucy5hZGQoImJlIik7Ci0gICAgZ29vZ2xlRG9tYWlucy5hZGQoImJpIik7Ci0gICAgZ29v
Z2xlRG9tYWlucy5hZGQoImNhIik7Ci0gICAgZ29vZ2xlRG9tYWlucy5hZGQoImNjIik7Ci0gICAg
Z29vZ2xlRG9tYWlucy5hZGQoImNkIik7Ci0gICAgZ29vZ2xlRG9tYWlucy5hZGQoImNnIik7Ci0g
ICAgZ29vZ2xlRG9tYWlucy5hZGQoImNoIik7Ci0gICAgZ29vZ2xlRG9tYWlucy5hZGQoImNsIik7
Ci0gICAgZ29vZ2xlRG9tYWlucy5hZGQoImNvbS5iciIpOwotICAgIGdvb2dsZURvbWFpbnMuYWRk
KCJjb20uZG8iKTsKLSAgICBnb29nbGVEb21haW5zLmFkZCgiY28udWsiKTsKLSAgICBnb29nbGVE
b21haW5zLmFkZCgiY28ua3IiKTsKLSAgICBnb29nbGVEb21haW5zLmFkZCgiY28uanAiKTsKLSAg
ICBnb29nbGVEb21haW5zLmFkZCgiZGUiKTsKLSAgICBnb29nbGVEb21haW5zLmFkZCgiZGoiKTsK
LSAgICBnb29nbGVEb21haW5zLmFkZCgiZGsiKTsKLSAgICBnb29nbGVEb21haW5zLmFkZCgiZWUi
KTsKLSAgICBnb29nbGVEb21haW5zLmFkZCgiZXMiKTsKLSAgICBnb29nbGVEb21haW5zLmFkZCgi
ZmkiKTsKLSAgICBnb29nbGVEb21haW5zLmFkZCgiZm0iKTsKLSAgICBnb29nbGVEb21haW5zLmFk
ZCgiZnIiKTsKLSAgICBnb29nbGVEb21haW5zLmFkZCgiZ2ciKTsKLSAgICBnb29nbGVEb21haW5z
LmFkZCgiZ2wiKTsKLSAgICBnb29nbGVEb21haW5zLmFkZCgiZ20iKTsKLSAgICBnb29nbGVEb21h
aW5zLmFkZCgiZ3MiKTsKLSAgICBnb29nbGVEb21haW5zLmFkZCgiaG4iKTsKLSAgICBnb29nbGVE
b21haW5zLmFkZCgiaHUiKTsKLSAgICBnb29nbGVEb21haW5zLmFkZCgiaWUiKTsKLSAgICBnb29n
bGVEb21haW5zLmFkZCgiaXQiKTsKLSAgICBnb29nbGVEb21haW5zLmFkZCgiamUiKTsKLSAgICBn
b29nbGVEb21haW5zLmFkZCgia3oiKTsKLSAgICBnb29nbGVEb21haW5zLmFkZCgibGkiKTsKLSAg
ICBnb29nbGVEb21haW5zLmFkZCgibHQiKTsKLSAgICBnb29nbGVEb21haW5zLmFkZCgibHUiKTsK
LSAgICBnb29nbGVEb21haW5zLmFkZCgibHYiKTsKLSAgICBnb29nbGVEb21haW5zLmFkZCgibWEi
KTsKLSAgICBnb29nbGVEb21haW5zLmFkZCgibXMiKTsKLSAgICBnb29nbGVEb21haW5zLmFkZCgi
bXUiKTsKLSAgICBnb29nbGVEb21haW5zLmFkZCgibXciKTsKLSAgICBnb29nbGVEb21haW5zLmFk
ZCgibmwiKTsKLSAgICBnb29nbGVEb21haW5zLmFkZCgibm8iKTsKLSAgICBnb29nbGVEb21haW5z
LmFkZCgibnUiKTsKLSAgICBnb29nbGVEb21haW5zLmFkZCgicGwiKTsKLSAgICBnb29nbGVEb21h
aW5zLmFkZCgicG4iKTsKLSAgICBnb29nbGVEb21haW5zLmFkZCgicHQiKTsKLSAgICBnb29nbGVE
b21haW5zLmFkZCgicnUiKTsKLSAgICBnb29nbGVEb21haW5zLmFkZCgicnciKTsKLSAgICBnb29n
bGVEb21haW5zLmFkZCgic2giKTsKLSAgICBnb29nbGVEb21haW5zLmFkZCgic2siKTsKLSAgICBn
b29nbGVEb21haW5zLmFkZCgic20iKTsKLSAgICBnb29nbGVEb21haW5zLmFkZCgic3QiKTsKLSAg
ICBnb29nbGVEb21haW5zLmFkZCgidGQiKTsKLSAgICBnb29nbGVEb21haW5zLmFkZCgidGsiKTsK
LSAgICBnb29nbGVEb21haW5zLmFkZCgidHAiKTsKLSAgICBnb29nbGVEb21haW5zLmFkZCgidHYi
KTsKLSAgICBnb29nbGVEb21haW5zLmFkZCgidXMiKTsKLSAgICBnb29nbGVEb21haW5zLmFkZCgi
dXoiKTsKLSAgICBnb29nbGVEb21haW5zLmFkZCgid3MiKTsKLX0KLQotc3RhdGljIHZvaWQgaW5p
dGlhbGl6ZU90aGVyR29vZ2xlRG9tYWlucyhWZWN0b3I8U3RyaW5nPiYgb3RoZXJHb29nbGVEb21h
aW5zKQotewotICAgIG90aGVyR29vZ2xlRG9tYWlucy5hcHBlbmQoImdtYWlsLmNvbSIpOwotICAg
IG90aGVyR29vZ2xlRG9tYWlucy5hcHBlbmQoInlvdXR1YmUuY29tIik7Ci0gICAgb3RoZXJHb29n
bGVEb21haW5zLmFwcGVuZCgiZ3N0YXRpYy5jb20iKTsKLSAgICBvdGhlckdvb2dsZURvbWFpbnMu
YXBwZW5kKCJ5dGltZy5jb20iKTsKLX0KLQotc3RhdGljIGJvb2wgaXNHb29nbGVEb21haW4oU3Ry
aW5nIGhvc3QpCi17Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChIYXNoU2V0PFN0cmluZz4sIGdv
b2dsZURvbWFpbnMsICgpKTsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFZlY3RvcjxTdHJpbmc+
LCBvdGhlckdvb2dsZURvbWFpbnMsICgpKTsKLQotICAgIGlmIChnb29nbGVEb21haW5zLmlzRW1w
dHkoKSkKLSAgICAgICAgaW5pdGlhbGl6ZURvbWFpbnNMaXN0KGdvb2dsZURvbWFpbnMpOwotCi0g
ICAgaWYgKG90aGVyR29vZ2xlRG9tYWlucy5pc0VtcHR5KCkpCi0gICAgICAgIGluaXRpYWxpemVP
dGhlckdvb2dsZURvbWFpbnMob3RoZXJHb29nbGVEb21haW5zKTsKLQotICAgIC8vIEZpcnN0IGNo
ZWNrIGlmIHRoaXMgaXMgb25lIG9mIHRoZSB2YXJpb3VzIGdvb2dsZS5jb20gaW50ZXJuYXRpb25h
bCBkb21haW5zLgotICAgIGludCBwb3NpdGlvbiA9IGhvc3QuZmluZCgiLmdvb2dsZS4iKTsKLSAg
ICBpZiAocG9zaXRpb24gPiAwICYmIGdvb2dsZURvbWFpbnMuY29udGFpbnMoaG9zdC5zdWJzdHJp
bmcocG9zaXRpb24gKyBzaXplb2YoIi5nb29nbGUuIikgLSAxKSkpCi0gICAgICAgIHJldHVybiB0
cnVlOwotCi0gICAgLy8gVGhlbiB3ZSBjaGVjayB0aGUgcG9zc2liaWxpdHkgb2YgaXQgYmVpbmcg
b25lIG9mIHRoZSBvdGhlciwgLmNvbS1vbmx5IGdvb2dsZSBkb21haW5zLgotICAgIGZvciAodW5z
aWduZWQgaW50IGkgPSAwOyBpIDwgb3RoZXJHb29nbGVEb21haW5zLnNpemUoKTsgaSsrKSB7Ci0g
ICAgICAgIGlmIChob3N0LmVuZHNXaXRoKG90aGVyR29vZ2xlRG9tYWlucy5hdChpKSkpCi0gICAg
ICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0KLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0KLXN0
YXRpYyBTdHJpbmcgdXNlckFnZW50Rm9yVVJMKGNvbnN0IFVSTCYgdXJsKQotewotICAgIC8vIEZv
ciBHb29nbGUgZG9tYWlucywgZHJvcCB0aGUgYnJvd3NlcidzIGN1c3RvbSBVc2VyIEFnZW50IHN0
cmluZywgYW5kIHVzZSB0aGUKLSAgICAvLyBzdGFuZGFyZCBvbmUsIHNvIHRoZXkgZG9uJ3QgZ2l2
ZSB1cyBhIGJyb2tlbiBleHBlcmllbmNlLgotICAgIGlmIChpc0dvb2dsZURvbWFpbih1cmwuaG9z
dCgpKSkKLSAgICAgICAgcmV0dXJuIHN0YW5kYXJkVXNlckFnZW50KCk7Ci0KLSAgICByZXR1cm4g
U3RyaW5nKCk7Ci19Ci0KIC8qCiAgKiBQcml2YXRlIHVzYWdlIG9ubHkuCiAgKiB3ZWJraXRXZWJT
ZXR0aW5nc1VzZXJBZ2VudEZvclVSSToKQEAgLTE2NDQsMTQgKzE1MjksMTMgQEAgc3RhdGljIFN0
cmluZyB1c2VyQWdlbnRGb3JVUkwoY29uc3QgVVJMJiB1cmwpCiAgKiBSZXR1cm5zOiAodHJhbnNm
ZXIgZnVsbCk6IGEgbmV3bHkgYWxsb2NhdGVkIHN0cmluZyBjb250YWluaW5nIHRoZQogICogVXNl
ci1BZ2VudCB0aGF0IHdpbGwgYmUgc2VudCBmb3IgdGhlIGdpdmVuIFVSSS4KICAqLwotY2hhciog
d2Via2l0V2ViU2V0dGluZ3NVc2VyQWdlbnRGb3JVUkkoV2ViS2l0V2ViU2V0dGluZ3MqIHdlYlNl
dHRpbmdzLCBjb25zdCBjaGFyKiB1cmkpCitjaGFyKiB3ZWJraXRXZWJTZXR0aW5nc1VzZXJBZ2Vu
dEZvclVSSShXZWJLaXRXZWJTZXR0aW5ncyogd2ViU2V0dGluZ3MsIGNvbnN0IFdlYkNvcmU6OlVS
TCYgdXJsKQogewotICAgIGlmICh3ZWJTZXR0aW5ncy0+cHJpdi0+ZW5hYmxlU2l0ZVNwZWNpZmlj
UXVpcmtzKSB7Ci0gICAgICAgIFN0cmluZyB1c2VyQWdlbnRTdHJpbmcgPSB1c2VyQWdlbnRGb3JV
UkwoV2ViQ29yZTo6VVJMKFdlYkNvcmU6OlVSTCgpLCBTdHJpbmc6OmZyb21VVEY4KHVyaSkpKTsK
KyAgICBpZiAod2ViU2V0dGluZ3MtPnByaXYtPmVuYWJsZVNpdGVTcGVjaWZpY1F1aXJrcyAmJiAh
dXJsLmlzTnVsbCgpKSB7CisgICAgICAgIFN0cmluZyB1c2VyQWdlbnRTdHJpbmcgPSBXZWJDb3Jl
OjpzdGFuZGFyZFVzZXJBZ2VudEZvclVSTCh1cmwpOwogICAgICAgICBpZiAoIXVzZXJBZ2VudFN0
cmluZy5pc0VtcHR5KCkpCiAgICAgICAgICAgICByZXR1cm4gZ19zdHJkdXAodXNlckFnZW50U3Ry
aW5nLnV0ZjgoKS5kYXRhKCkpOwogICAgIH0KLQogICAgIHJldHVybiBnX3N0cmR1cCh3ZWJraXRf
d2ViX3NldHRpbmdzX2dldF91c2VyX2FnZW50KHdlYlNldHRpbmdzKSk7CiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJzZXR0aW5nc3ByaXZhdGUuaCBi
L1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJzZXR0aW5nc3ByaXZhdGUuaAppbmRl
eCBiNWU0NmY4Li4zM2EyMDEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQv
d2Via2l0d2Vic2V0dGluZ3Nwcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9ndGsvd2Via2l0
L3dlYmtpdHdlYnNldHRpbmdzcHJpdmF0ZS5oCkBAIC0yNCw2ICsyNCw3IEBACiAjZGVmaW5lIHdl
YmtpdHdlYnNldHRpbmdzcHJpdmF0ZV9oCiAKICNpbmNsdWRlICJ3ZWJraXR3ZWJzZXR0aW5ncy5o
IgorI2luY2x1ZGUgIlVSTC5oIgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KIAogZXh0
ZXJuICJDIiB7CkBAIC05Miw3ICs5Myw3IEBAIHN0cnVjdCBfV2ViS2l0V2ViU2V0dGluZ3NQcml2
YXRlIHsKIAogV0VCS0lUX0FQSSB2b2lkIHdlYmtpdF93ZWJfc2V0dGluZ3NfYWRkX2V4dHJhX3Bs
dWdpbl9kaXJlY3RvcnkoV2ViS2l0V2ViVmlldyosIGNvbnN0IGdjaGFyKiBkaXJlY3RvcnkpOwog
Ci1XRUJLSVRfQVBJIGNoYXIqIHdlYmtpdFdlYlNldHRpbmdzVXNlckFnZW50Rm9yVVJJKFdlYktp
dFdlYlNldHRpbmdzKiwgY29uc3QgZ2NoYXIqIHVyaSk7CitXRUJLSVRfQVBJIGNoYXIqIHdlYmtp
dFdlYlNldHRpbmdzVXNlckFnZW50Rm9yVVJJKFdlYktpdFdlYlNldHRpbmdzKiwgY29uc3QgV2Vi
Q29yZTo6VVJMJik7CiAKIEdTTGlzdCogd2Via2l0V2ViVmlld0dldEVuY2hhbnREaWN0cyhXZWJL
aXRXZWJWaWV3Kik7CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5n
ZUxvZwppbmRleCAyODM2NDNjLi4yOTc1MWQxIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cK
KysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTQtMDctMDQgIENhcmxv
cyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgorCisgICAgICAgIFtHVEtdW1N0
YWJsZV0gR29vZ2xlIE1hcHMgZG9lc24ndCB3b3JrIHdpdGggVmVyc2lvbi9YIGluIHRoZSB1c2Vy
IGFnZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MzQ2MzEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBN
b3ZlIHVzZXIgYWdlbnQgcXVpcmtzIHRlc3RzIGZyb20gV2ViS2l0MSB0byBXZWJDb3JlLgorCisg
ICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL2d0ay9Vc2VyQWdlbnRRdWlya3Mu
Y3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRHdGsvdGVzdHdlYnNldHRpbmdzLmM6CisgICAgICAgICh0ZXN0X3dl
YmtpdF93ZWJfc2V0dGluZ3NfdXNlcl9hZ2VudCk6CisKIDIwMTQtMDItMDUgIFphbiBEb2JlcnNl
ayAgPHpkb2JlcnNla0BpZ2FsaWEuY29tPgogCiAgICAgICAgIFJlbW92ZSB0aGUgV1RGX0NPTVBJ
TEVSX1NVUFBPUlRTX0NYWF9HRU5FUkFMSVpFRF9JTklUSUFMSVpFUlMgbWFjcm8KZGlmZiAtLWdp
dCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9ndGsvVXNlckFnZW50UXVpcmtz
LmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9ndGsvVXNlckFnZW50UXVp
cmtzLmNwcAppbmRleCA0MDMzYjM3Li4wZjBlZDk0IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYkNvcmUvZ3RrL1VzZXJBZ2VudFF1aXJrcy5jcHAKKysrIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL2d0ay9Vc2VyQWdlbnRRdWlya3MuY3BwCkBAIC00
Myw2ICs0MywyMCBAQCBURVNUKFdlYkNvcmUsIFVzZXJBZ2VudFF1aXJrc1Rlc3QpCiAgICAgRVhQ
RUNUX1RSVUUodWFTdHJpbmcuY29udGFpbnMoIk1hY2ludG9zaCIpKTsKICAgICBFWFBFQ1RfVFJV
RSh1YVN0cmluZy5jb250YWlucygiTWFjIE9TIFgiKSk7CiAgICAgRVhQRUNUX0ZBTFNFKHVhU3Ry
aW5nLmNvbnRhaW5zKCJMaW51eCIpKTsKKworICAgIC8vIEZvciBHb29nbGUgZG9tYWlucyB3ZSBh
bHdheXMgcmV0dXJuIHRoZSBzdGFuZGFyZCBVQS4KKyAgICB1YVN0cmluZyA9IHN0YW5kYXJkVXNl
ckFnZW50KCk7CisgICAgRVhQRUNUX0ZBTFNFKHVhU3RyaW5nLmlzTnVsbCgpKTsKKyAgICBFWFBF
Q1RfVFJVRSh1YVN0cmluZyA9PSBzdGFuZGFyZFVzZXJBZ2VudEZvclVSTChVUkwoUGFyc2VkVVJM
U3RyaW5nLCAiaHR0cDovL3d3dy5nb29nbGUuY29tLyIpKSk7CisgICAgRVhQRUNUX1RSVUUodWFT
dHJpbmcgPT0gc3RhbmRhcmRVc2VyQWdlbnRGb3JVUkwoVVJMKFBhcnNlZFVSTFN0cmluZywgImh0
dHA6Ly9jYWxlbmRhci5nb29nbGUuY29tLyIpKSk7CisgICAgRVhQRUNUX1RSVUUodWFTdHJpbmcg
PT0gc3RhbmRhcmRVc2VyQWdlbnRGb3JVUkwoVVJMKFBhcnNlZFVSTFN0cmluZywgImh0dHA6Ly9n
bWFpbC5jb20vIikpKTsKKyAgICBFWFBFQ1RfVFJVRSh1YVN0cmluZyA9PSBzdGFuZGFyZFVzZXJB
Z2VudEZvclVSTChVUkwoUGFyc2VkVVJMU3RyaW5nLCAiaHR0cDovL3d3dy5nb29nbGUuY29tLmJy
LyIpKSk7CisgICAgRVhQRUNUX1RSVUUodWFTdHJpbmcgPT0gc3RhbmRhcmRVc2VyQWdlbnRGb3JV
UkwoVVJMKFBhcnNlZFVSTFN0cmluZywgImh0dHA6Ly93d3cueW91dHViZS5jb20vIikpKTsKKyAg
ICBFWFBFQ1RfVFJVRSh1YVN0cmluZyAhPSBzdGFuZGFyZFVzZXJBZ2VudEZvclVSTChVUkwoUGFy
c2VkVVJMU3RyaW5nLCAiaHR0cDovL3d3dy5nb29nbGUudWsubm90LmNvbS5ici8iKSkpOworCisg
ICAgLy8gRm9yIEdvb2dsZSBNYXBzIHdlIHJlbW92ZSB0aGUgVmVyc2lvbi84LjAgc3RyaW5nLgor
ICAgIHVhU3RyaW5nID0gc3RhbmRhcmRVc2VyQWdlbnRGb3JVUkwoVVJMKFBhcnNlZFVSTFN0cmlu
ZywgImh0dHA6Ly9tYXBzLmdvb2dsZS5jb20vIikpOworICAgIEVYUEVDVF9GQUxTRSh1YVN0cmlu
Zy5jb250YWlucygiVmVyc2lvbi84LjAiKSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFRlc3RXZWJL
aXRBUEkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R3RrL3Rl
c3R3ZWJzZXR0aW5ncy5jIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHdGsvdGVz
dHdlYnNldHRpbmdzLmMKaW5kZXggODAzMjI1YS4uZTU1N2UxMyAxMDA2NDQKLS0tIGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHdGsvdGVzdHdlYnNldHRpbmdzLmMKKysrIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHdGsvdGVzdHdlYnNldHRpbmdzLmMKQEAgLTIy
LDkgKzIyLDYgQEAKICNpbmNsdWRlIDxndGsvZ3RrLmg+CiAjaW5jbHVkZSA8d2Via2l0L3dlYmtp
dC5oPgogCi0vKiBQcml2YXRlIEFQSSAqLwotY2hhciogd2Via2l0V2ViU2V0dGluZ3NVc2VyQWdl
bnRGb3JVUkkoV2ViS2l0V2ViU2V0dGluZ3MgKnNldHRpbmdzLCBjb25zdCBjaGFyICp1cmkpOwot
CiBzdGF0aWMgdm9pZCB0ZXN0X3dlYmtpdF93ZWJfc2V0dGluZ3NfY29weSh2b2lkKQogewogICAg
IFdlYktpdFdlYlNldHRpbmdzICpzZXR0aW5ncyA9IHdlYmtpdF93ZWJfc2V0dGluZ3NfbmV3KCk7
CkBAIC02MSwzMSArNTgsNiBAQCBzdGF0aWMgdm9pZCB0ZXN0X3dlYmtpdF93ZWJfc2V0dGluZ3Nf
Y29weSh2b2lkKQogICAgIGdfZnJlZShkZWZhdWx0RW5jb2RpbmcpOwogfQogCi1zdGF0aWMgdm9p
ZCB0ZXN0X25vbl9xdWlya3lfdXNlcl9hZ2VudHMoV2ViS2l0V2ViU2V0dGluZ3MgKnNldHRpbmdz
LCBjb25zdCBjaGFyICpkZWZhdWx0VXNlckFnZW50KQotewotICAgIGNoYXIgKnVzZXJBZ2VudCA9
IDA7Ci0KLSAgICAvLyB0ZXN0IGEgY3VzdG9tIFVBIHN0cmluZwotICAgIHVzZXJBZ2VudCA9IDA7
Ci0gICAgZ19vYmplY3Rfc2V0KHNldHRpbmdzLCAidXNlci1hZ2VudCIsICJ0ZXN0d2Vic2V0dGlu
Z3MvMC4xIiwgTlVMTCk7Ci0gICAgZ19vYmplY3RfZ2V0KHNldHRpbmdzLCJ1c2VyLWFnZW50Iiwg
JnVzZXJBZ2VudCwgTlVMTCk7Ci0gICAgZ19hc3NlcnRfY21wc3RyKHVzZXJBZ2VudCwgPT0sICJ0
ZXN0d2Vic2V0dGluZ3MvMC4xIik7Ci0gICAgZ19mcmVlKHVzZXJBZ2VudCk7Ci0KLSAgICAvLyBz
ZXR0aW5nIGl0IHRvIE5VTEwgb3IgYW4gZW1wdHkgdmFsdWUgc2hvdWxkIGdpdmUgdXMgdGhlIGRl
ZmF1bHQgVUEgc3RyaW5nCi0gICAgdXNlckFnZW50ID0gMDsKLSAgICBnX29iamVjdF9zZXQoc2V0
dGluZ3MsICJ1c2VyLWFnZW50IiwgMCwgTlVMTCk7Ci0gICAgZ19vYmplY3RfZ2V0KHNldHRpbmdz
LCJ1c2VyLWFnZW50IiwgJnVzZXJBZ2VudCwgTlVMTCk7Ci0gICAgZ19hc3NlcnRfY21wc3RyKHVz
ZXJBZ2VudCwgPT0sIGRlZmF1bHRVc2VyQWdlbnQpOwotICAgIGdfZnJlZSh1c2VyQWdlbnQpOwot
Ci0gICAgdXNlckFnZW50ID0gMDsKLSAgICBnX29iamVjdF9zZXQoc2V0dGluZ3MsICJ1c2VyLWFn
ZW50IiwgIiIsIE5VTEwpOwotICAgIGdfb2JqZWN0X2dldChzZXR0aW5ncywidXNlci1hZ2VudCIs
ICZ1c2VyQWdlbnQsIE5VTEwpOwotICAgIGdfYXNzZXJ0X2NtcHN0cih1c2VyQWdlbnQsID09LCBk
ZWZhdWx0VXNlckFnZW50KTsKLSAgICBnX2ZyZWUodXNlckFnZW50KTsKLX0KLQogc3RhdGljIHZv
aWQgdGVzdF93ZWJraXRfd2ViX3NldHRpbmdzX3VzZXJfYWdlbnQodm9pZCkKIHsKICAgICBXZWJL
aXRXZWJTZXR0aW5ncyAqc2V0dGluZ3M7CkBAIC0xMDMsNTAgKzc1LDI2IEBAIHN0YXRpYyB2b2lk
IHRlc3Rfd2Via2l0X3dlYl9zZXR0aW5nc191c2VyX2FnZW50KHZvaWQpCiAgICAgZ19hc3NlcnQo
Z19zdHJzdHJfbGVuKGRlZmF1bHRVc2VyQWdlbnQsIC0xLCAiVmVyc2lvbi84LjAgU2FmYXJpLyIp
KTsKICAgICBnX2Fzc2VydChnX3N0cnN0cl9sZW4oZGVmYXVsdFVzZXJBZ2VudCwgLTEsICJWZXJz
aW9uLzguMCIpIDwgZ19zdHJzdHJfbGVuKGRlZmF1bHRVc2VyQWdlbnQsIC0xLCAiU2FmYXJpLyIp
KTsKIAotICAgIHRlc3Rfbm9uX3F1aXJreV91c2VyX2FnZW50cyhzZXR0aW5ncywgZGVmYXVsdFVz
ZXJBZ2VudCk7Ci0KLSAgICAvKiBUZXN0IHF1aXJreSBnb29nbGUgZG9tYWlucyAqLworICAgIC8v
IHRlc3QgYSBjdXN0b20gVUEgc3RyaW5nCisgICAgdXNlckFnZW50ID0gMDsKICAgICBnX29iamVj
dF9zZXQoc2V0dGluZ3MsICJ1c2VyLWFnZW50IiwgInRlc3R3ZWJzZXR0aW5ncy8wLjEiLCBOVUxM
KTsKLQotICAgIHVzZXJBZ2VudCA9IHdlYmtpdFdlYlNldHRpbmdzVXNlckFnZW50Rm9yVVJJKHNl
dHRpbmdzLCAiaHR0cDovL3d3dy5nb29nbGUuY29tLyIpOwotICAgIGdfYXNzZXJ0X2NtcHN0cih1
c2VyQWdlbnQsID09LCAidGVzdHdlYnNldHRpbmdzLzAuMSIpOwotICAgIGdfZnJlZSh1c2VyQWdl
bnQpOwotCi0gICAgdXNlckFnZW50ID0gd2Via2l0V2ViU2V0dGluZ3NVc2VyQWdlbnRGb3JVUkko
c2V0dGluZ3MsICJodHRwOi8vZ21haWwuY29tLyIpOwotICAgIGdfYXNzZXJ0X2NtcHN0cih1c2Vy
QWdlbnQsID09LCAidGVzdHdlYnNldHRpbmdzLzAuMSIpOwotICAgIGdfZnJlZSh1c2VyQWdlbnQp
OwotCi0gICAgdXNlckFnZW50ID0gd2Via2l0V2ViU2V0dGluZ3NVc2VyQWdlbnRGb3JVUkkoc2V0
dGluZ3MsICJodHRwOi8vd3d3Lmdvb2dsZS5jb20uYnIvIik7Ci0gICAgZ19hc3NlcnRfY21wc3Ry
KHVzZXJBZ2VudCwgPT0sICJ0ZXN0d2Vic2V0dGluZ3MvMC4xIik7Ci0gICAgZ19mcmVlKHVzZXJB
Z2VudCk7Ci0KLSAgICB1c2VyQWdlbnQgPSB3ZWJraXRXZWJTZXR0aW5nc1VzZXJBZ2VudEZvclVS
SShzZXR0aW5ncywgImh0dHA6Ly9jYWxlbmRhci5nb29nbGUuY29tLyIpOworICAgIGdfb2JqZWN0
X2dldChzZXR0aW5ncywidXNlci1hZ2VudCIsICZ1c2VyQWdlbnQsIE5VTEwpOwogICAgIGdfYXNz
ZXJ0X2NtcHN0cih1c2VyQWdlbnQsID09LCAidGVzdHdlYnNldHRpbmdzLzAuMSIpOwogICAgIGdf
ZnJlZSh1c2VyQWdlbnQpOwogCi0gICAgLyogTm93IGVuYWJsZSBxdWlya3MgaGFuZGxpbmcgKi8K
LSAgICBnX29iamVjdF9zZXQoc2V0dGluZ3MsICJlbmFibGUtc2l0ZS1zcGVjaWZpYy1xdWlya3Mi
LCBUUlVFLCBOVUxMKTsKLQotICAgIHRlc3Rfbm9uX3F1aXJreV91c2VyX2FnZW50cyhzZXR0aW5n
cywgZGVmYXVsdFVzZXJBZ2VudCk7Ci0KLSAgICBnX29iamVjdF9zZXQoc2V0dGluZ3MsICJ1c2Vy
LWFnZW50IiwgInRlc3R3ZWJzZXR0aW5ncy8wLjEiLCBOVUxMKTsKLQotICAgIHVzZXJBZ2VudCA9
IHdlYmtpdFdlYlNldHRpbmdzVXNlckFnZW50Rm9yVVJJKHNldHRpbmdzLCAiaHR0cDovL3d3dy5n
b29nbGUuY29tLyIpOwotICAgIGdfYXNzZXJ0X2NtcHN0cih1c2VyQWdlbnQsID09LCBkZWZhdWx0
VXNlckFnZW50KTsKLSAgICBnX2ZyZWUodXNlckFnZW50KTsKLQotICAgIHVzZXJBZ2VudCA9IHdl
YmtpdFdlYlNldHRpbmdzVXNlckFnZW50Rm9yVVJJKHNldHRpbmdzLCAiaHR0cDovL2dtYWlsLmNv
bS8iKTsKKyAgICAvLyBzZXR0aW5nIGl0IHRvIE5VTEwgb3IgYW4gZW1wdHkgdmFsdWUgc2hvdWxk
IGdpdmUgdXMgdGhlIGRlZmF1bHQgVUEgc3RyaW5nCisgICAgdXNlckFnZW50ID0gMDsKKyAgICBn
X29iamVjdF9zZXQoc2V0dGluZ3MsICJ1c2VyLWFnZW50IiwgMCwgTlVMTCk7CisgICAgZ19vYmpl
Y3RfZ2V0KHNldHRpbmdzLCJ1c2VyLWFnZW50IiwgJnVzZXJBZ2VudCwgTlVMTCk7CiAgICAgZ19h
c3NlcnRfY21wc3RyKHVzZXJBZ2VudCwgPT0sIGRlZmF1bHRVc2VyQWdlbnQpOwogICAgIGdfZnJl
ZSh1c2VyQWdlbnQpOwogCi0gICAgdXNlckFnZW50ID0gd2Via2l0V2ViU2V0dGluZ3NVc2VyQWdl
bnRGb3JVUkkoc2V0dGluZ3MsICJodHRwOi8vd3d3Lmdvb2dsZS5jb20uYnIvIik7CisgICAgdXNl
ckFnZW50ID0gMDsKKyAgICBnX29iamVjdF9zZXQoc2V0dGluZ3MsICJ1c2VyLWFnZW50IiwgIiIs
IE5VTEwpOworICAgIGdfb2JqZWN0X2dldChzZXR0aW5ncywidXNlci1hZ2VudCIsICZ1c2VyQWdl
bnQsIE5VTEwpOwogICAgIGdfYXNzZXJ0X2NtcHN0cih1c2VyQWdlbnQsID09LCBkZWZhdWx0VXNl
ckFnZW50KTsKICAgICBnX2ZyZWUodXNlckFnZW50KTsKIAotICAgIHVzZXJBZ2VudCA9IHdlYmtp
dFdlYlNldHRpbmdzVXNlckFnZW50Rm9yVVJJKHNldHRpbmdzLCAiaHR0cDovL3d3dy5nb29nbGUu
dWsubm90LmNvbS5ici8iKTsKLSAgICBnX2Fzc2VydF9jbXBzdHIodXNlckFnZW50LCA9PSwgInRl
c3R3ZWJzZXR0aW5ncy8wLjEiKTsKLSAgICBnX2ZyZWUodXNlckFnZW50KTsKLQogICAgIGdfZnJl
ZShkZWZhdWx0VXNlckFnZW50KTsKICAgICBnX29iamVjdF91bnJlZih3ZWJWaWV3KTsKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>234403</attachid>
            <date>2014-07-04 04:59:29 -0700</date>
            <delta_ts>2014-07-08 00:01:41 -0700</delta_ts>
            <desc>Updated patch</desc>
            <filename>wk-google-maps-quirk.diff</filename>
            <type>text/plain</type>
            <size>20318</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA2YTAyZjdjLi41NjgwY2QwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjcg
QEAKKzIwMTQtMDctMDQgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29t
PgorCisgICAgICAgIFtHVEtdW1N0YWJsZV0gR29vZ2xlIE1hcHMgZG9lc24ndCB3b3JrIHdpdGgg
VmVyc2lvbi9YIGluIHRoZSB1c2VyIGFnZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMzQ2MzEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBCZWNhdXNlIG9mIHRoZSBKU0MgdmVyc2lvbiB1c2VkIGluIHN0
YWJsZSBicmFuY2gsIHdoZW4gdGhlCisgICAgICAgIFZlcnNpb24vWCBzdHJpbmcgaXMgcHJlc2Vu
dCBpbiB0aGUgdXNlciBhZ2VudCwgZ29vZ2xlIG1hcHMgdXNlcworICAgICAgICBKYXZhU2NyaXB0
IEFQSSB0aGF0IHdlIGRvbid0IHN1cHBvcnQuIE1vdmUgdGhlIGdvb2dsZSBkb21haW4gcXVpcmtz
CisgICAgICAgIGZyb20gV2ViS2l0MSB0byBXZWJDb3JlIGFuZCBhZGQgYSBxdWlyayBmb3IgZ29v
Z2xlIG1hcHMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvVXNlckFnZW50R3RrLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Omdvb2dsZURvbWFpbnMpOgorICAgICAgICAoV2ViQ29yZTo6b3RoZXJH
b29nbGVEb21haW5zKToKKyAgICAgICAgKFdlYkNvcmU6OmlzR29vZ2xlRG9tYWluKTogUmV0dXJu
cyB3aGV0aGVyIHRoZSBnaXZlbiBob3N0IGlzIGEKKyAgICAgICAga25vd24gZ29vZ2xlIGRvbWFp
bgorICAgICAgICAoV2ViQ29yZTo6YnVpbGRVc2VyQWdlbnRTdHJpbmcpOiBEbyBub3QgaW5jbHVk
ZSB0aGUgVmVyc2lvbi9YCisgICAgICAgIHN0cmluZyBpbiB0aGUgdXNlciBhZ2VudCBpZiB0aGUg
U2hvdWxkTm90SW5jbHVkZVNhZmFyaVZlcnNpb24KKyAgICAgICAgcXVpcmsgaXMgcHJlc2VudC4K
KyAgICAgICAgKFdlYkNvcmU6OnN0YW5kYXJkVXNlckFnZW50Rm9yVVJMKTogQWRkIFJlcXVpcmVz
U3RhbmRhcmRVc2VyQWdlbnQKKyAgICAgICAgcXVpcmsgZm9yIGFueSBnb29nbGUgZG9hbWluIGFu
ZCBTaG91bGROb3RJbmNsdWRlU2FmYXJpVmVyc2lvbiBmb3IKKyAgICAgICAgR29vZ2xlIE1hcHMu
CisKIDIwMTQtMDYtMjcgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgog
CiAgICAgICAgIFtHVEtdIDh0cmFja3MuY29tIHRyaWdnZXJzIGFubm95aW5nIHBvcC11cCB3aW5k
b3cvaW5zdGFsbGF0aW9uIG9mICJBYm91dCBwcm90b2NvbCBzb3VyY2UgcGx1Z2luIiAoR1N0cmVh
bWVyPykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9Vc2VyQWdlbnRH
dGsuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1VzZXJBZ2VudEd0ay5jcHAKaW5k
ZXggYWRmMTI4Ny4uYmFkMzZlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3RrL1VzZXJBZ2VudEd0ay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1Vz
ZXJBZ2VudEd0ay5jcHAKQEAgLTI4LDcgKzI4LDkgQEAKIAogI2luY2x1ZGUgIlVSTC5oIgogI2lu
Y2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgorI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAj
aW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1N0
cmluZ0hhc2guaD4KIAogI2lmIE9TKFVOSVgpCiAjaW5jbHVkZSA8c3lzL3V0c25hbWUuaD4KQEAg
LTQwLDYgKzQyLDggQEAgY2xhc3MgVXNlckFnZW50UXVpcmtzIHsKIHB1YmxpYzoKICAgICBlbnVt
IFVzZXJBZ2VudFF1aXJrIHsKICAgICAgICAgTmVlZHNNYWNpbnRvc2hQbGF0Zm9ybSwKKyAgICAg
ICAgUmVxdWlyZXNTdGFuZGFyZFVzZXJBZ2VudCwKKyAgICAgICAgU2hvdWxkTm90SW5jbHVkZVNh
ZmFyaVZlcnNpb24sCiAKICAgICAgICAgTnVtVXNlckFnZW50UXVpcmtzCiAgICAgfTsKQEAgLTY5
LDYgKzczLDEwNyBAQCBwcml2YXRlOgogICAgIHVpbnQzMl90IG1fcXVpcmtzOwogfTsKIAorc3Rh
dGljIGNvbnN0IEhhc2hTZXQ8U3RyaW5nPiYgZ29vZ2xlRG9tYWlucygpCit7CisgICAgc3RhdGlj
IE5ldmVyRGVzdHJveWVkPEhhc2hTZXQ8U3RyaW5nPj4gZG9tYWlucyhzdGQ6OmluaXRpYWxpemVy
X2xpc3Q8U3RyaW5nPih7CisgICAgICAgICJiaXoiLAorICAgICAgICAiY29tIiwKKyAgICAgICAg
Im5ldCIsCisgICAgICAgICJvcmciLAorICAgICAgICAiYWUiLAorICAgICAgICAiYWciLAorICAg
ICAgICAiYW0iLAorICAgICAgICAiYXQiLAorICAgICAgICAiYXoiLAorICAgICAgICAiYmUiLAor
ICAgICAgICAiYmkiLAorICAgICAgICAiY2EiLAorICAgICAgICAiY2MiLAorICAgICAgICAiY2Qi
LAorICAgICAgICAiY2ciLAorICAgICAgICAiY2giLAorICAgICAgICAiY2wiLAorICAgICAgICAi
Y29tLmJyIiwKKyAgICAgICAgImNvbS5kbyIsCisgICAgICAgICJjby51ayIsCisgICAgICAgICJj
by5rciIsCisgICAgICAgICJjby5qcCIsCisgICAgICAgICJkZSIsCisgICAgICAgICJkaiIsCisg
ICAgICAgICJkayIsCisgICAgICAgICJlZSIsCisgICAgICAgICJlcyIsCisgICAgICAgICJmaSIs
CisgICAgICAgICJmbSIsCisgICAgICAgICJmciIsCisgICAgICAgICJnZyIsCisgICAgICAgICJn
bCIsCisgICAgICAgICJnbSIsCisgICAgICAgICJncyIsCisgICAgICAgICJobiIsCisgICAgICAg
ICJodSIsCisgICAgICAgICJpZSIsCisgICAgICAgICJpdCIsCisgICAgICAgICJqZSIsCisgICAg
ICAgICJreiIsCisgICAgICAgICJsaSIsCisgICAgICAgICJsdCIsCisgICAgICAgICJsdSIsCisg
ICAgICAgICJsdiIsCisgICAgICAgICJtYSIsCisgICAgICAgICJtcyIsCisgICAgICAgICJtdSIs
CisgICAgICAgICJtdyIsCisgICAgICAgICJubCIsCisgICAgICAgICJubyIsCisgICAgICAgICJu
dSIsCisgICAgICAgICJwbCIsCisgICAgICAgICJwbiIsCisgICAgICAgICJwdCIsCisgICAgICAg
ICJydSIsCisgICAgICAgICJydyIsCisgICAgICAgICJzaCIsCisgICAgICAgICJzayIsCisgICAg
ICAgICJzbSIsCisgICAgICAgICJzdCIsCisgICAgICAgICJ0ZCIsCisgICAgICAgICJ0ayIsCisg
ICAgICAgICJ0cCIsCisgICAgICAgICJ0diIsCisgICAgICAgICJ1cyIsCisgICAgICAgICJ1eiIs
CisgICAgICAgICJ3cyIKKyAgICB9KSk7CisgICAgcmV0dXJuIGRvbWFpbnM7Cit9CisKK3N0YXRp
YyBjb25zdCBWZWN0b3I8U3RyaW5nPiYgb3RoZXJHb29nbGVEb21haW5zKCkKK3sKKyAgICBzdGF0
aWMgTmV2ZXJEZXN0cm95ZWQ8VmVjdG9yPFN0cmluZz4+IG90aGVyRG9tYWlucyhzdGQ6OmluaXRp
YWxpemVyX2xpc3Q8U3RyaW5nPih7CisgICAgICAgICJnbWFpbC5jb20iLAorICAgICAgICAieW91
dHViZS5jb20iLAorICAgICAgICAiZ3N0YXRpYy5jb20iLAorICAgICAgICAieXRpbWcuY29tIgor
ICAgIH0pKTsKKyAgICByZXR1cm4gb3RoZXJEb21haW5zOworfQorCitzdGF0aWMgYm9vbCBpc0dv
b2dsZURvbWFpbihTdHJpbmcgaG9zdCkKK3sKKyAgICAvLyBGaXJzdCBjaGVjayBpZiB0aGlzIGlz
IG9uZSBvZiB0aGUgdmFyaW91cyBnb29nbGUuY29tIGludGVybmF0aW9uYWwgZG9tYWlucy4KKyAg
ICBpbnQgcG9zaXRpb24gPSBob3N0LmZpbmQoIi5nb29nbGUuIik7CisgICAgaWYgKHBvc2l0aW9u
ID4gMCAmJiBnb29nbGVEb21haW5zKCkuY29udGFpbnMoaG9zdC5zdWJzdHJpbmcocG9zaXRpb24g
KyBzaXplb2YoIi5nb29nbGUuIikgLSAxKSkpCisgICAgICAgIHJldHVybiB0cnVlOworCisgICAg
Ly8gVGhlbiB3ZSBjaGVjayB0aGUgcG9zc2liaWxpdHkgb2YgaXQgYmVpbmcgb25lIG9mIHRoZSBv
dGhlciwgLmNvbS1vbmx5IGdvb2dsZSBkb21haW5zLgorICAgIGZvciAodW5zaWduZWQgaSA9IDA7
IGkgPCBvdGhlckdvb2dsZURvbWFpbnMoKS5zaXplKCk7IGkrKykgeworICAgICAgICBpZiAoaG9z
dC5lbmRzV2l0aChvdGhlckdvb2dsZURvbWFpbnMoKS5hdChpKSkpCisgICAgICAgICAgICByZXR1
cm4gdHJ1ZTsKKyAgICB9CisKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKIHN0YXRpYyBjb25zdCBj
aGFyKiBjcHVEZXNjcmlwdGlvbkZvclVBU3RyaW5nKCkKIHsKICNpZiBDUFUoUFBDKSB8fCBDUFUo
UFBDNjQpCkBAIC0xMzgsOSArMjQzLDE0IEBAIHN0YXRpYyBTdHJpbmcgYnVpbGRVc2VyQWdlbnRT
dHJpbmcoY29uc3QgVXNlckFnZW50UXVpcmtzJiBxdWlya3MpCiAKICAgICB1YVN0cmluZy5hcHBl
bmRMaXRlcmFsKCIpIEFwcGxlV2ViS2l0LyIpOwogICAgIHVhU3RyaW5nLmFwcGVuZCh2ZXJzaW9u
Rm9yVUFTdHJpbmcoKSk7Ci0gICAgLy8gVmVyc2lvbi9YIGlzIG1hbmRhdG9yeSAqYmVmb3JlKiBT
YWZhcmkvWCB0byBiZSBhIHZhbGlkIFNhZmFyaSBVQS4gU2VlCi0gICAgLy8gaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzMzQwMyBmb3IgZGV0YWlscy4KLSAgICB1YVN0
cmluZy5hcHBlbmRMaXRlcmFsKCIgKEtIVE1MLCBsaWtlIEdlY2tvKSBWZXJzaW9uLzguMCBTYWZh
cmkvIik7CisKKyAgICB1YVN0cmluZy5hcHBlbmRMaXRlcmFsKCIgKEtIVE1MLCBsaWtlIEdlY2tv
KSIpOworICAgIGlmICghcXVpcmtzLmNvbnRhaW5zKFVzZXJBZ2VudFF1aXJrczo6U2hvdWxkTm90
SW5jbHVkZVNhZmFyaVZlcnNpb24pKSB7CisgICAgICAgIC8vIFZlcnNpb24vWCBpcyBtYW5kYXRv
cnkgKmJlZm9yZSogU2FmYXJpL1ggdG8gYmUgYSB2YWxpZCBTYWZhcmkgVUEuIFNlZQorICAgICAg
ICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMzNDAzIGZvciBk
ZXRhaWxzLgorICAgICAgICB1YVN0cmluZy5hcHBlbmRMaXRlcmFsKCIgVmVyc2lvbi84LjAiKTsK
KyAgICB9CisgICAgdWFTdHJpbmcuYXBwZW5kTGl0ZXJhbCgiIFNhZmFyaS8iKTsKICAgICB1YVN0
cmluZy5hcHBlbmQodmVyc2lvbkZvclVBU3RyaW5nKCkpOwogCiAgICAgcmV0dXJuIHVhU3RyaW5n
LnRvU3RyaW5nKCk7CkBAIC0xODAsNiArMjkwLDE0IEBAIFN0cmluZyBzdGFuZGFyZFVzZXJBZ2Vu
dEZvclVSTChjb25zdCBVUkwmIHVybCkKICAgICAgICAgLy8gd3d3LnlhaG9vLmNvbSByZWRpcmVj
dHMgdG8gdGhlIG1vYmlsZSB2ZXJzaW9uIHdoZW4gTGludXggaXMgcHJlc2VudCBpbiB0aGUgVUEs
CiAgICAgICAgIC8vIHVzZSBhbHdheXMgTWFjaW50b3NoIGFzIHBsYXRmb3JtLiBTZWUgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNTQ0NC4KICAgICAgICAgcXVpcmtz
LmFkZChVc2VyQWdlbnRRdWlya3M6Ok5lZWRzTWFjaW50b3NoUGxhdGZvcm0pOworICAgIH0gZWxz
ZSBpZiAoaXNHb29nbGVEb21haW4odXJsLmhvc3QoKSkpIHsKKyAgICAgICAgLy8gRm9yIEdvb2ds
ZSBkb21haW5zLCBkcm9wIHRoZSBicm93c2VyJ3MgY3VzdG9tIFVzZXIgQWdlbnQgc3RyaW5nLCBh
bmQgdXNlIHRoZQorICAgICAgICAvLyBzdGFuZGFyZCBvbmUsIHNvIHRoZXkgZG9uJ3QgZ2l2ZSB1
cyBhIGJyb2tlbiBleHBlcmllbmNlLgorICAgICAgICBxdWlya3MuYWRkKFVzZXJBZ2VudFF1aXJr
czo6UmVxdWlyZXNTdGFuZGFyZFVzZXJBZ2VudCk7CisKKyAgICAgICAgLy8gR29vZ2xlIE1hcHMg
dXNlcyBuZXcgSmF2YVNjcmlwdCBBUEkgbm90IHN1cHBvcnRlZCBieSB1cyB3aGVuIFNhZmFyaSBW
ZXJzaW9uIGlzIHByZXNlbnQgaW4gdGhlIHVzZXIgYWdlbnQuCisgICAgICAgIGlmICh1cmwuaG9z
dCgpLnN0YXJ0c1dpdGgoIm1hcHMuIikgfHwgdXJsLnBhdGgoKS5zdGFydHNXaXRoKCIvbWFwcyIp
KQorICAgICAgICAgICAgcXVpcmtzLmFkZChVc2VyQWdlbnRRdWlya3M6OlNob3VsZE5vdEluY2x1
ZGVTYWZhcmlWZXJzaW9uKTsKICAgICB9CiAKICAgICAvLyBUaGUgbnVsbCBzdHJpbmcgbWVhbnMg
d2UgZG9uJ3QgbmVlZCBhIHNwZWNpZmljIFVBIGZvciB0aGUgZ2l2ZW4gVVJMLgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdl
TG9nCmluZGV4IGY1MjAyMDcuLmUxNjY5NWUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0
ay9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MjEgQEAKKzIwMTQtMDctMDQgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEu
Y29tPgorCisgICAgICAgIFtHVEtdW1N0YWJsZV0gR29vZ2xlIE1hcHMgZG9lc24ndCB3b3JrIHdp
dGggVmVyc2lvbi9YIGluIHRoZSB1c2VyIGFnZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzQ2MzEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBSZW1vdmUgdXNlciBhZ2VudCBxdWlya3MgZm9yIGdvb2ds
ZSBkb21haW5zLCBzaW5jZSB0aGV5IGFyZSBub3cKKyAgICAgICAgaW1wbGVtZW50ZWQgaW4gV2Vi
Q29yZS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnQ6OnVzZXJBZ2VudCk6IFBhc3Mg
dGhlIFdlYkNvcmU6OlVSTAorICAgICAgICBjb25zdCByZWZlcmVuY2UgdG8gd2Via2l0V2ViU2V0
dGluZ3NVc2VyQWdlbnRGb3JVUkkoKS4KKyAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vic2V0dGlu
Z3MuY3BwOgorICAgICAgICAod2Via2l0V2ViU2V0dGluZ3NVc2VyQWdlbnRGb3JVUkkpOiBVc2UK
KyAgICAgICAgV2ViQ29yZTo6c3RhbmRhcmRVc2VyQWdlbnRGb3JVUkwoKSB3aGVuIHNpdGUgc3Bl
Y2lmaWMgcXVpcmtzIGFyZSBlbmFibGVkLgorICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJzZXR0
aW5nc3ByaXZhdGUuaDoKKwogMjAxNC0wNS0yNiAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2Fy
Y2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZC4gVXBkYXRlIE5FV1MgYW5kIFZl
cnNpb25zLm00IGZvciAyLjQuMyByZWxlYXNlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9n
dGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuY3BwIGIvU291cmNlL1dlYktp
dC9ndGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuY3BwCmluZGV4IGIyNGUw
ODkuLjJhNmE2ZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0
L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3Jl
U3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHAKQEAgLTEyMyw3ICsxMjMsNyBAQCBGcmFt
ZUxvYWRlckNsaWVudDo6fkZyYW1lTG9hZGVyQ2xpZW50KCkKIFN0cmluZyBGcmFtZUxvYWRlckNs
aWVudDo6dXNlckFnZW50KGNvbnN0IFVSTCYgdXJsKQogewogICAgIFdlYktpdFdlYlNldHRpbmdz
KiBzZXR0aW5ncyA9IHdlYmtpdF93ZWJfdmlld19nZXRfc2V0dGluZ3MoZ2V0Vmlld0Zyb21GcmFt
ZShtX2ZyYW1lKSk7Ci0gICAgR1VuaXF1ZVB0cjxnY2hhcj4gdXNlckFnZW50U3RyaW5nKHdlYmtp
dFdlYlNldHRpbmdzVXNlckFnZW50Rm9yVVJJKHNldHRpbmdzLCB1cmwuc3RyaW5nKCkudXRmOCgp
LmRhdGEoKSkpOworICAgIEdVbmlxdWVQdHI8Z2NoYXI+IHVzZXJBZ2VudFN0cmluZyh3ZWJraXRX
ZWJTZXR0aW5nc1VzZXJBZ2VudEZvclVSSShzZXR0aW5ncywgdXJsKSk7CiAgICAgcmV0dXJuIFN0
cmluZzo6ZnJvbVVURjgodXNlckFnZW50U3RyaW5nLmdldCgpKTsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnNldHRpbmdzLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJzZXR0aW5ncy5jcHAKaW5kZXggNWY3MTM5NS4uMDYz
ZTllMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnNldHRp
bmdzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vic2V0dGluZ3Mu
Y3BwCkBAIC0xNTA0LDEyMSArMTUwNCw2IEBAIGNvbnN0IGdjaGFyKiB3ZWJraXRfd2ViX3NldHRp
bmdzX2dldF91c2VyX2FnZW50KFdlYktpdFdlYlNldHRpbmdzKiB3ZWJTZXR0aW5ncykKICAgICBy
ZXR1cm4gd2ViU2V0dGluZ3MtPnByaXYtPnVzZXJBZ2VudC5kYXRhKCk7CiB9CiAKLXN0YXRpYyB2
b2lkIGluaXRpYWxpemVEb21haW5zTGlzdChIYXNoU2V0PFN0cmluZz4mIGdvb2dsZURvbWFpbnMp
Ci17Ci0gICAgLy8gR29vZ2xlIHNlYXJjaCBkb21haW5zLgotICAgIGdvb2dsZURvbWFpbnMuYWRk
KCJiaXoiKTsKLSAgICBnb29nbGVEb21haW5zLmFkZCgiY29tIik7Ci0gICAgZ29vZ2xlRG9tYWlu
cy5hZGQoIm5ldCIpOwotICAgIGdvb2dsZURvbWFpbnMuYWRkKCJvcmciKTsKLSAgICBnb29nbGVE
b21haW5zLmFkZCgiYWUiKTsKLSAgICBnb29nbGVEb21haW5zLmFkZCgiYWciKTsKLSAgICBnb29n
bGVEb21haW5zLmFkZCgiYW0iKTsKLSAgICBnb29nbGVEb21haW5zLmFkZCgiYXQiKTsKLSAgICBn
b29nbGVEb21haW5zLmFkZCgiYXoiKTsKLSAgICBnb29nbGVEb21haW5zLmFkZCgiYmUiKTsKLSAg
ICBnb29nbGVEb21haW5zLmFkZCgiYmkiKTsKLSAgICBnb29nbGVEb21haW5zLmFkZCgiY2EiKTsK
LSAgICBnb29nbGVEb21haW5zLmFkZCgiY2MiKTsKLSAgICBnb29nbGVEb21haW5zLmFkZCgiY2Qi
KTsKLSAgICBnb29nbGVEb21haW5zLmFkZCgiY2ciKTsKLSAgICBnb29nbGVEb21haW5zLmFkZCgi
Y2giKTsKLSAgICBnb29nbGVEb21haW5zLmFkZCgiY2wiKTsKLSAgICBnb29nbGVEb21haW5zLmFk
ZCgiY29tLmJyIik7Ci0gICAgZ29vZ2xlRG9tYWlucy5hZGQoImNvbS5kbyIpOwotICAgIGdvb2ds
ZURvbWFpbnMuYWRkKCJjby51ayIpOwotICAgIGdvb2dsZURvbWFpbnMuYWRkKCJjby5rciIpOwot
ICAgIGdvb2dsZURvbWFpbnMuYWRkKCJjby5qcCIpOwotICAgIGdvb2dsZURvbWFpbnMuYWRkKCJk
ZSIpOwotICAgIGdvb2dsZURvbWFpbnMuYWRkKCJkaiIpOwotICAgIGdvb2dsZURvbWFpbnMuYWRk
KCJkayIpOwotICAgIGdvb2dsZURvbWFpbnMuYWRkKCJlZSIpOwotICAgIGdvb2dsZURvbWFpbnMu
YWRkKCJlcyIpOwotICAgIGdvb2dsZURvbWFpbnMuYWRkKCJmaSIpOwotICAgIGdvb2dsZURvbWFp
bnMuYWRkKCJmbSIpOwotICAgIGdvb2dsZURvbWFpbnMuYWRkKCJmciIpOwotICAgIGdvb2dsZURv
bWFpbnMuYWRkKCJnZyIpOwotICAgIGdvb2dsZURvbWFpbnMuYWRkKCJnbCIpOwotICAgIGdvb2ds
ZURvbWFpbnMuYWRkKCJnbSIpOwotICAgIGdvb2dsZURvbWFpbnMuYWRkKCJncyIpOwotICAgIGdv
b2dsZURvbWFpbnMuYWRkKCJobiIpOwotICAgIGdvb2dsZURvbWFpbnMuYWRkKCJodSIpOwotICAg
IGdvb2dsZURvbWFpbnMuYWRkKCJpZSIpOwotICAgIGdvb2dsZURvbWFpbnMuYWRkKCJpdCIpOwot
ICAgIGdvb2dsZURvbWFpbnMuYWRkKCJqZSIpOwotICAgIGdvb2dsZURvbWFpbnMuYWRkKCJreiIp
OwotICAgIGdvb2dsZURvbWFpbnMuYWRkKCJsaSIpOwotICAgIGdvb2dsZURvbWFpbnMuYWRkKCJs
dCIpOwotICAgIGdvb2dsZURvbWFpbnMuYWRkKCJsdSIpOwotICAgIGdvb2dsZURvbWFpbnMuYWRk
KCJsdiIpOwotICAgIGdvb2dsZURvbWFpbnMuYWRkKCJtYSIpOwotICAgIGdvb2dsZURvbWFpbnMu
YWRkKCJtcyIpOwotICAgIGdvb2dsZURvbWFpbnMuYWRkKCJtdSIpOwotICAgIGdvb2dsZURvbWFp
bnMuYWRkKCJtdyIpOwotICAgIGdvb2dsZURvbWFpbnMuYWRkKCJubCIpOwotICAgIGdvb2dsZURv
bWFpbnMuYWRkKCJubyIpOwotICAgIGdvb2dsZURvbWFpbnMuYWRkKCJudSIpOwotICAgIGdvb2ds
ZURvbWFpbnMuYWRkKCJwbCIpOwotICAgIGdvb2dsZURvbWFpbnMuYWRkKCJwbiIpOwotICAgIGdv
b2dsZURvbWFpbnMuYWRkKCJwdCIpOwotICAgIGdvb2dsZURvbWFpbnMuYWRkKCJydSIpOwotICAg
IGdvb2dsZURvbWFpbnMuYWRkKCJydyIpOwotICAgIGdvb2dsZURvbWFpbnMuYWRkKCJzaCIpOwot
ICAgIGdvb2dsZURvbWFpbnMuYWRkKCJzayIpOwotICAgIGdvb2dsZURvbWFpbnMuYWRkKCJzbSIp
OwotICAgIGdvb2dsZURvbWFpbnMuYWRkKCJzdCIpOwotICAgIGdvb2dsZURvbWFpbnMuYWRkKCJ0
ZCIpOwotICAgIGdvb2dsZURvbWFpbnMuYWRkKCJ0ayIpOwotICAgIGdvb2dsZURvbWFpbnMuYWRk
KCJ0cCIpOwotICAgIGdvb2dsZURvbWFpbnMuYWRkKCJ0diIpOwotICAgIGdvb2dsZURvbWFpbnMu
YWRkKCJ1cyIpOwotICAgIGdvb2dsZURvbWFpbnMuYWRkKCJ1eiIpOwotICAgIGdvb2dsZURvbWFp
bnMuYWRkKCJ3cyIpOwotfQotCi1zdGF0aWMgdm9pZCBpbml0aWFsaXplT3RoZXJHb29nbGVEb21h
aW5zKFZlY3RvcjxTdHJpbmc+JiBvdGhlckdvb2dsZURvbWFpbnMpCi17Ci0gICAgb3RoZXJHb29n
bGVEb21haW5zLmFwcGVuZCgiZ21haWwuY29tIik7Ci0gICAgb3RoZXJHb29nbGVEb21haW5zLmFw
cGVuZCgieW91dHViZS5jb20iKTsKLSAgICBvdGhlckdvb2dsZURvbWFpbnMuYXBwZW5kKCJnc3Rh
dGljLmNvbSIpOwotICAgIG90aGVyR29vZ2xlRG9tYWlucy5hcHBlbmQoInl0aW1nLmNvbSIpOwot
fQotCi1zdGF0aWMgYm9vbCBpc0dvb2dsZURvbWFpbihTdHJpbmcgaG9zdCkKLXsKLSAgICBERUZJ
TkVfU1RBVElDX0xPQ0FMKEhhc2hTZXQ8U3RyaW5nPiwgZ29vZ2xlRG9tYWlucywgKCkpOwotICAg
IERFRklORV9TVEFUSUNfTE9DQUwoVmVjdG9yPFN0cmluZz4sIG90aGVyR29vZ2xlRG9tYWlucywg
KCkpOwotCi0gICAgaWYgKGdvb2dsZURvbWFpbnMuaXNFbXB0eSgpKQotICAgICAgICBpbml0aWFs
aXplRG9tYWluc0xpc3QoZ29vZ2xlRG9tYWlucyk7Ci0KLSAgICBpZiAob3RoZXJHb29nbGVEb21h
aW5zLmlzRW1wdHkoKSkKLSAgICAgICAgaW5pdGlhbGl6ZU90aGVyR29vZ2xlRG9tYWlucyhvdGhl
ckdvb2dsZURvbWFpbnMpOwotCi0gICAgLy8gRmlyc3QgY2hlY2sgaWYgdGhpcyBpcyBvbmUgb2Yg
dGhlIHZhcmlvdXMgZ29vZ2xlLmNvbSBpbnRlcm5hdGlvbmFsIGRvbWFpbnMuCi0gICAgaW50IHBv
c2l0aW9uID0gaG9zdC5maW5kKCIuZ29vZ2xlLiIpOwotICAgIGlmIChwb3NpdGlvbiA+IDAgJiYg
Z29vZ2xlRG9tYWlucy5jb250YWlucyhob3N0LnN1YnN0cmluZyhwb3NpdGlvbiArIHNpemVvZigi
Lmdvb2dsZS4iKSAtIDEpKSkKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0KLSAgICAvLyBUaGVuIHdl
IGNoZWNrIHRoZSBwb3NzaWJpbGl0eSBvZiBpdCBiZWluZyBvbmUgb2YgdGhlIG90aGVyLCAuY29t
LW9ubHkgZ29vZ2xlIGRvbWFpbnMuCi0gICAgZm9yICh1bnNpZ25lZCBpbnQgaSA9IDA7IGkgPCBv
dGhlckdvb2dsZURvbWFpbnMuc2l6ZSgpOyBpKyspIHsKLSAgICAgICAgaWYgKGhvc3QuZW5kc1dp
dGgob3RoZXJHb29nbGVEb21haW5zLmF0KGkpKSkKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwot
ICAgIH0KLQotICAgIHJldHVybiBmYWxzZTsKLX0KLQotc3RhdGljIFN0cmluZyB1c2VyQWdlbnRG
b3JVUkwoY29uc3QgVVJMJiB1cmwpCi17Ci0gICAgLy8gRm9yIEdvb2dsZSBkb21haW5zLCBkcm9w
IHRoZSBicm93c2VyJ3MgY3VzdG9tIFVzZXIgQWdlbnQgc3RyaW5nLCBhbmQgdXNlIHRoZQotICAg
IC8vIHN0YW5kYXJkIG9uZSwgc28gdGhleSBkb24ndCBnaXZlIHVzIGEgYnJva2VuIGV4cGVyaWVu
Y2UuCi0gICAgaWYgKGlzR29vZ2xlRG9tYWluKHVybC5ob3N0KCkpKQotICAgICAgICByZXR1cm4g
c3RhbmRhcmRVc2VyQWdlbnQoKTsKLQotICAgIHJldHVybiBTdHJpbmcoKTsKLX0KLQogLyoKICAq
IFByaXZhdGUgdXNhZ2Ugb25seS4KICAqIHdlYmtpdFdlYlNldHRpbmdzVXNlckFnZW50Rm9yVVJJ
OgpAQCAtMTY0NCwxNCArMTUyOSwxMyBAQCBzdGF0aWMgU3RyaW5nIHVzZXJBZ2VudEZvclVSTChj
b25zdCBVUkwmIHVybCkKICAqIFJldHVybnM6ICh0cmFuc2ZlciBmdWxsKTogYSBuZXdseSBhbGxv
Y2F0ZWQgc3RyaW5nIGNvbnRhaW5pbmcgdGhlCiAgKiBVc2VyLUFnZW50IHRoYXQgd2lsbCBiZSBz
ZW50IGZvciB0aGUgZ2l2ZW4gVVJJLgogICovCi1jaGFyKiB3ZWJraXRXZWJTZXR0aW5nc1VzZXJB
Z2VudEZvclVSSShXZWJLaXRXZWJTZXR0aW5ncyogd2ViU2V0dGluZ3MsIGNvbnN0IGNoYXIqIHVy
aSkKK2NoYXIqIHdlYmtpdFdlYlNldHRpbmdzVXNlckFnZW50Rm9yVVJJKFdlYktpdFdlYlNldHRp
bmdzKiB3ZWJTZXR0aW5ncywgY29uc3QgV2ViQ29yZTo6VVJMJiB1cmwpCiB7Ci0gICAgaWYgKHdl
YlNldHRpbmdzLT5wcml2LT5lbmFibGVTaXRlU3BlY2lmaWNRdWlya3MpIHsKLSAgICAgICAgU3Ry
aW5nIHVzZXJBZ2VudFN0cmluZyA9IHVzZXJBZ2VudEZvclVSTChXZWJDb3JlOjpVUkwoV2ViQ29y
ZTo6VVJMKCksIFN0cmluZzo6ZnJvbVVURjgodXJpKSkpOworICAgIGlmICh3ZWJTZXR0aW5ncy0+
cHJpdi0+ZW5hYmxlU2l0ZVNwZWNpZmljUXVpcmtzICYmICF1cmwuaXNOdWxsKCkpIHsKKyAgICAg
ICAgU3RyaW5nIHVzZXJBZ2VudFN0cmluZyA9IFdlYkNvcmU6OnN0YW5kYXJkVXNlckFnZW50Rm9y
VVJMKHVybCk7CiAgICAgICAgIGlmICghdXNlckFnZW50U3RyaW5nLmlzRW1wdHkoKSkKICAgICAg
ICAgICAgIHJldHVybiBnX3N0cmR1cCh1c2VyQWdlbnRTdHJpbmcudXRmOCgpLmRhdGEoKSk7CiAg
ICAgfQotCiAgICAgcmV0dXJuIGdfc3RyZHVwKHdlYmtpdF93ZWJfc2V0dGluZ3NfZ2V0X3VzZXJf
YWdlbnQod2ViU2V0dGluZ3MpKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsv
d2Via2l0L3dlYmtpdHdlYnNldHRpbmdzcHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9ndGsvd2Vi
a2l0L3dlYmtpdHdlYnNldHRpbmdzcHJpdmF0ZS5oCmluZGV4IGI1ZTQ2ZjguLjMzYTIwMTAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJzZXR0aW5nc3ByaXZh
dGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vic2V0dGluZ3Nwcml2
YXRlLmgKQEAgLTI0LDYgKzI0LDcgQEAKICNkZWZpbmUgd2Via2l0d2Vic2V0dGluZ3Nwcml2YXRl
X2gKIAogI2luY2x1ZGUgIndlYmtpdHdlYnNldHRpbmdzLmgiCisjaW5jbHVkZSAiVVJMLmgiCiAj
aW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogCiBleHRlcm4gIkMiIHsKQEAgLTkyLDcgKzkz
LDcgQEAgc3RydWN0IF9XZWJLaXRXZWJTZXR0aW5nc1ByaXZhdGUgewogCiBXRUJLSVRfQVBJIHZv
aWQgd2Via2l0X3dlYl9zZXR0aW5nc19hZGRfZXh0cmFfcGx1Z2luX2RpcmVjdG9yeShXZWJLaXRX
ZWJWaWV3KiwgY29uc3QgZ2NoYXIqIGRpcmVjdG9yeSk7CiAKLVdFQktJVF9BUEkgY2hhciogd2Vi
a2l0V2ViU2V0dGluZ3NVc2VyQWdlbnRGb3JVUkkoV2ViS2l0V2ViU2V0dGluZ3MqLCBjb25zdCBn
Y2hhciogdXJpKTsKK1dFQktJVF9BUEkgY2hhciogd2Via2l0V2ViU2V0dGluZ3NVc2VyQWdlbnRG
b3JVUkkoV2ViS2l0V2ViU2V0dGluZ3MqLCBjb25zdCBXZWJDb3JlOjpVUkwmKTsKIAogR1NMaXN0
KiB3ZWJraXRXZWJWaWV3R2V0RW5jaGFudERpY3RzKFdlYktpdFdlYlZpZXcqKTsKIApkaWZmIC0t
Z2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDI4MzY0M2MuLjI5
NzUxZDEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxNyBAQAorMjAxNC0wNy0wNCAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2Fy
Y2lhQGlnYWxpYS5jb20+CisKKyAgICAgICAgW0dUS11bU3RhYmxlXSBHb29nbGUgTWFwcyBkb2Vz
bid0IHdvcmsgd2l0aCBWZXJzaW9uL1ggaW4gdGhlIHVzZXIgYWdlbnQKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNDYzMQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1vdmUgdXNlciBhZ2VudCBxdWlya3Mg
dGVzdHMgZnJvbSBXZWJLaXQxIHRvIFdlYkNvcmUuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYkNvcmUvZ3RrL1VzZXJBZ2VudFF1aXJrcy5jcHA6CisgICAgICAgIChUZXN0V2Vi
S2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEd0ay90
ZXN0d2Vic2V0dGluZ3MuYzoKKyAgICAgICAgKHRlc3Rfd2Via2l0X3dlYl9zZXR0aW5nc191c2Vy
X2FnZW50KToKKwogMjAxNC0wMi0wNSAgWmFuIERvYmVyc2VrICA8emRvYmVyc2VrQGlnYWxpYS5j
b20+CiAKICAgICAgICAgUmVtb3ZlIHRoZSBXVEZfQ09NUElMRVJfU1VQUE9SVFNfQ1hYX0dFTkVS
QUxJWkVEX0lOSVRJQUxJWkVSUyBtYWNybwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJDb3JlL2d0ay9Vc2VyQWdlbnRRdWlya3MuY3BwIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJDb3JlL2d0ay9Vc2VyQWdlbnRRdWlya3MuY3BwCmluZGV4IDQwMzNiMzcu
LjZiMjk4MzAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9n
dGsvVXNlckFnZW50UXVpcmtzLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YkNvcmUvZ3RrL1VzZXJBZ2VudFF1aXJrcy5jcHAKQEAgLTQzLDYgKzQzLDIxIEBAIFRFU1QoV2Vi
Q29yZSwgVXNlckFnZW50UXVpcmtzVGVzdCkKICAgICBFWFBFQ1RfVFJVRSh1YVN0cmluZy5jb250
YWlucygiTWFjaW50b3NoIikpOwogICAgIEVYUEVDVF9UUlVFKHVhU3RyaW5nLmNvbnRhaW5zKCJN
YWMgT1MgWCIpKTsKICAgICBFWFBFQ1RfRkFMU0UodWFTdHJpbmcuY29udGFpbnMoIkxpbnV4Iikp
OworCisgICAgLy8gRm9yIEdvb2dsZSBkb21haW5zIHdlIGFsd2F5cyByZXR1cm4gdGhlIHN0YW5k
YXJkIFVBLgorICAgIHVhU3RyaW5nID0gc3RhbmRhcmRVc2VyQWdlbnQoKTsKKyAgICBFWFBFQ1Rf
RkFMU0UodWFTdHJpbmcuaXNOdWxsKCkpOworICAgIEVYUEVDVF9UUlVFKHVhU3RyaW5nID09IHN0
YW5kYXJkVXNlckFnZW50Rm9yVVJMKFVSTChQYXJzZWRVUkxTdHJpbmcsICJodHRwOi8vd3d3Lmdv
b2dsZS5jb20vIikpKTsKKyAgICBFWFBFQ1RfVFJVRSh1YVN0cmluZyA9PSBzdGFuZGFyZFVzZXJB
Z2VudEZvclVSTChVUkwoUGFyc2VkVVJMU3RyaW5nLCAiaHR0cDovL2NhbGVuZGFyLmdvb2dsZS5j
b20vIikpKTsKKyAgICBFWFBFQ1RfVFJVRSh1YVN0cmluZyA9PSBzdGFuZGFyZFVzZXJBZ2VudEZv
clVSTChVUkwoUGFyc2VkVVJMU3RyaW5nLCAiaHR0cDovL2dtYWlsLmNvbS8iKSkpOworICAgIEVY
UEVDVF9UUlVFKHVhU3RyaW5nID09IHN0YW5kYXJkVXNlckFnZW50Rm9yVVJMKFVSTChQYXJzZWRV
UkxTdHJpbmcsICJodHRwOi8vd3d3Lmdvb2dsZS5jb20uYnIvIikpKTsKKyAgICBFWFBFQ1RfVFJV
RSh1YVN0cmluZyA9PSBzdGFuZGFyZFVzZXJBZ2VudEZvclVSTChVUkwoUGFyc2VkVVJMU3RyaW5n
LCAiaHR0cDovL3d3dy55b3V0dWJlLmNvbS8iKSkpOworICAgIEVYUEVDVF9UUlVFKHVhU3RyaW5n
ICE9IHN0YW5kYXJkVXNlckFnZW50Rm9yVVJMKFVSTChQYXJzZWRVUkxTdHJpbmcsICJodHRwOi8v
d3d3Lmdvb2dsZS51ay5ub3QuY29tLmJyLyIpKSk7CisKKyAgICAvLyBGb3IgR29vZ2xlIE1hcHMg
d2UgcmVtb3ZlIHRoZSBWZXJzaW9uLzguMCBzdHJpbmcuCisgICAgdWFTdHJpbmcgPSBzdGFuZGFy
ZFVzZXJBZ2VudEZvclVSTChVUkwoUGFyc2VkVVJMU3RyaW5nLCAiaHR0cDovL21hcHMuZ29vZ2xl
LmNvbS8iKSk7CisgICAgRVhQRUNUX1RSVUUodWFTdHJpbmcgPT0gc3RhbmRhcmRVc2VyQWdlbnRG
b3JVUkwoVVJMKFBhcnNlZFVSTFN0cmluZywgImh0dHA6Ly93d3cuZ29vZ2xlLmNvbS9tYXBzLyIp
KSk7CisgICAgRVhQRUNUX0ZBTFNFKHVhU3RyaW5nLmNvbnRhaW5zKCJWZXJzaW9uLzguMCIpKTsK
IH0KIAogfSAvLyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHdGsvdGVzdHdlYnNldHRpbmdzLmMgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEd0ay90ZXN0d2Vic2V0dGluZ3MuYwppbmRleCA4MDMyMjVh
Li5lNTU3ZTEzIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEd0
ay90ZXN0d2Vic2V0dGluZ3MuYworKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dEd0ay90ZXN0d2Vic2V0dGluZ3MuYwpAQCAtMjIsOSArMjIsNiBAQAogI2luY2x1ZGUgPGd0ay9n
dGsuaD4KICNpbmNsdWRlIDx3ZWJraXQvd2Via2l0Lmg+CiAKLS8qIFByaXZhdGUgQVBJICovCi1j
aGFyKiB3ZWJraXRXZWJTZXR0aW5nc1VzZXJBZ2VudEZvclVSSShXZWJLaXRXZWJTZXR0aW5ncyAq
c2V0dGluZ3MsIGNvbnN0IGNoYXIgKnVyaSk7Ci0KIHN0YXRpYyB2b2lkIHRlc3Rfd2Via2l0X3dl
Yl9zZXR0aW5nc19jb3B5KHZvaWQpCiB7CiAgICAgV2ViS2l0V2ViU2V0dGluZ3MgKnNldHRpbmdz
ID0gd2Via2l0X3dlYl9zZXR0aW5nc19uZXcoKTsKQEAgLTYxLDMxICs1OCw2IEBAIHN0YXRpYyB2
b2lkIHRlc3Rfd2Via2l0X3dlYl9zZXR0aW5nc19jb3B5KHZvaWQpCiAgICAgZ19mcmVlKGRlZmF1
bHRFbmNvZGluZyk7CiB9CiAKLXN0YXRpYyB2b2lkIHRlc3Rfbm9uX3F1aXJreV91c2VyX2FnZW50
cyhXZWJLaXRXZWJTZXR0aW5ncyAqc2V0dGluZ3MsIGNvbnN0IGNoYXIgKmRlZmF1bHRVc2VyQWdl
bnQpCi17Ci0gICAgY2hhciAqdXNlckFnZW50ID0gMDsKLQotICAgIC8vIHRlc3QgYSBjdXN0b20g
VUEgc3RyaW5nCi0gICAgdXNlckFnZW50ID0gMDsKLSAgICBnX29iamVjdF9zZXQoc2V0dGluZ3Ms
ICJ1c2VyLWFnZW50IiwgInRlc3R3ZWJzZXR0aW5ncy8wLjEiLCBOVUxMKTsKLSAgICBnX29iamVj
dF9nZXQoc2V0dGluZ3MsInVzZXItYWdlbnQiLCAmdXNlckFnZW50LCBOVUxMKTsKLSAgICBnX2Fz
c2VydF9jbXBzdHIodXNlckFnZW50LCA9PSwgInRlc3R3ZWJzZXR0aW5ncy8wLjEiKTsKLSAgICBn
X2ZyZWUodXNlckFnZW50KTsKLQotICAgIC8vIHNldHRpbmcgaXQgdG8gTlVMTCBvciBhbiBlbXB0
eSB2YWx1ZSBzaG91bGQgZ2l2ZSB1cyB0aGUgZGVmYXVsdCBVQSBzdHJpbmcKLSAgICB1c2VyQWdl
bnQgPSAwOwotICAgIGdfb2JqZWN0X3NldChzZXR0aW5ncywgInVzZXItYWdlbnQiLCAwLCBOVUxM
KTsKLSAgICBnX29iamVjdF9nZXQoc2V0dGluZ3MsInVzZXItYWdlbnQiLCAmdXNlckFnZW50LCBO
VUxMKTsKLSAgICBnX2Fzc2VydF9jbXBzdHIodXNlckFnZW50LCA9PSwgZGVmYXVsdFVzZXJBZ2Vu
dCk7Ci0gICAgZ19mcmVlKHVzZXJBZ2VudCk7Ci0KLSAgICB1c2VyQWdlbnQgPSAwOwotICAgIGdf
b2JqZWN0X3NldChzZXR0aW5ncywgInVzZXItYWdlbnQiLCAiIiwgTlVMTCk7Ci0gICAgZ19vYmpl
Y3RfZ2V0KHNldHRpbmdzLCJ1c2VyLWFnZW50IiwgJnVzZXJBZ2VudCwgTlVMTCk7Ci0gICAgZ19h
c3NlcnRfY21wc3RyKHVzZXJBZ2VudCwgPT0sIGRlZmF1bHRVc2VyQWdlbnQpOwotICAgIGdfZnJl
ZSh1c2VyQWdlbnQpOwotfQotCiBzdGF0aWMgdm9pZCB0ZXN0X3dlYmtpdF93ZWJfc2V0dGluZ3Nf
dXNlcl9hZ2VudCh2b2lkKQogewogICAgIFdlYktpdFdlYlNldHRpbmdzICpzZXR0aW5nczsKQEAg
LTEwMyw1MCArNzUsMjYgQEAgc3RhdGljIHZvaWQgdGVzdF93ZWJraXRfd2ViX3NldHRpbmdzX3Vz
ZXJfYWdlbnQodm9pZCkKICAgICBnX2Fzc2VydChnX3N0cnN0cl9sZW4oZGVmYXVsdFVzZXJBZ2Vu
dCwgLTEsICJWZXJzaW9uLzguMCBTYWZhcmkvIikpOwogICAgIGdfYXNzZXJ0KGdfc3Ryc3RyX2xl
bihkZWZhdWx0VXNlckFnZW50LCAtMSwgIlZlcnNpb24vOC4wIikgPCBnX3N0cnN0cl9sZW4oZGVm
YXVsdFVzZXJBZ2VudCwgLTEsICJTYWZhcmkvIikpOwogCi0gICAgdGVzdF9ub25fcXVpcmt5X3Vz
ZXJfYWdlbnRzKHNldHRpbmdzLCBkZWZhdWx0VXNlckFnZW50KTsKLQotICAgIC8qIFRlc3QgcXVp
cmt5IGdvb2dsZSBkb21haW5zICovCisgICAgLy8gdGVzdCBhIGN1c3RvbSBVQSBzdHJpbmcKKyAg
ICB1c2VyQWdlbnQgPSAwOwogICAgIGdfb2JqZWN0X3NldChzZXR0aW5ncywgInVzZXItYWdlbnQi
LCAidGVzdHdlYnNldHRpbmdzLzAuMSIsIE5VTEwpOwotCi0gICAgdXNlckFnZW50ID0gd2Via2l0
V2ViU2V0dGluZ3NVc2VyQWdlbnRGb3JVUkkoc2V0dGluZ3MsICJodHRwOi8vd3d3Lmdvb2dsZS5j
b20vIik7Ci0gICAgZ19hc3NlcnRfY21wc3RyKHVzZXJBZ2VudCwgPT0sICJ0ZXN0d2Vic2V0dGlu
Z3MvMC4xIik7Ci0gICAgZ19mcmVlKHVzZXJBZ2VudCk7Ci0KLSAgICB1c2VyQWdlbnQgPSB3ZWJr
aXRXZWJTZXR0aW5nc1VzZXJBZ2VudEZvclVSSShzZXR0aW5ncywgImh0dHA6Ly9nbWFpbC5jb20v
Iik7Ci0gICAgZ19hc3NlcnRfY21wc3RyKHVzZXJBZ2VudCwgPT0sICJ0ZXN0d2Vic2V0dGluZ3Mv
MC4xIik7Ci0gICAgZ19mcmVlKHVzZXJBZ2VudCk7Ci0KLSAgICB1c2VyQWdlbnQgPSB3ZWJraXRX
ZWJTZXR0aW5nc1VzZXJBZ2VudEZvclVSSShzZXR0aW5ncywgImh0dHA6Ly93d3cuZ29vZ2xlLmNv
bS5ici8iKTsKLSAgICBnX2Fzc2VydF9jbXBzdHIodXNlckFnZW50LCA9PSwgInRlc3R3ZWJzZXR0
aW5ncy8wLjEiKTsKLSAgICBnX2ZyZWUodXNlckFnZW50KTsKLQotICAgIHVzZXJBZ2VudCA9IHdl
YmtpdFdlYlNldHRpbmdzVXNlckFnZW50Rm9yVVJJKHNldHRpbmdzLCAiaHR0cDovL2NhbGVuZGFy
Lmdvb2dsZS5jb20vIik7CisgICAgZ19vYmplY3RfZ2V0KHNldHRpbmdzLCJ1c2VyLWFnZW50Iiwg
JnVzZXJBZ2VudCwgTlVMTCk7CiAgICAgZ19hc3NlcnRfY21wc3RyKHVzZXJBZ2VudCwgPT0sICJ0
ZXN0d2Vic2V0dGluZ3MvMC4xIik7CiAgICAgZ19mcmVlKHVzZXJBZ2VudCk7CiAKLSAgICAvKiBO
b3cgZW5hYmxlIHF1aXJrcyBoYW5kbGluZyAqLwotICAgIGdfb2JqZWN0X3NldChzZXR0aW5ncywg
ImVuYWJsZS1zaXRlLXNwZWNpZmljLXF1aXJrcyIsIFRSVUUsIE5VTEwpOwotCi0gICAgdGVzdF9u
b25fcXVpcmt5X3VzZXJfYWdlbnRzKHNldHRpbmdzLCBkZWZhdWx0VXNlckFnZW50KTsKLQotICAg
IGdfb2JqZWN0X3NldChzZXR0aW5ncywgInVzZXItYWdlbnQiLCAidGVzdHdlYnNldHRpbmdzLzAu
MSIsIE5VTEwpOwotCi0gICAgdXNlckFnZW50ID0gd2Via2l0V2ViU2V0dGluZ3NVc2VyQWdlbnRG
b3JVUkkoc2V0dGluZ3MsICJodHRwOi8vd3d3Lmdvb2dsZS5jb20vIik7Ci0gICAgZ19hc3NlcnRf
Y21wc3RyKHVzZXJBZ2VudCwgPT0sIGRlZmF1bHRVc2VyQWdlbnQpOwotICAgIGdfZnJlZSh1c2Vy
QWdlbnQpOwotCi0gICAgdXNlckFnZW50ID0gd2Via2l0V2ViU2V0dGluZ3NVc2VyQWdlbnRGb3JV
Ukkoc2V0dGluZ3MsICJodHRwOi8vZ21haWwuY29tLyIpOworICAgIC8vIHNldHRpbmcgaXQgdG8g
TlVMTCBvciBhbiBlbXB0eSB2YWx1ZSBzaG91bGQgZ2l2ZSB1cyB0aGUgZGVmYXVsdCBVQSBzdHJp
bmcKKyAgICB1c2VyQWdlbnQgPSAwOworICAgIGdfb2JqZWN0X3NldChzZXR0aW5ncywgInVzZXIt
YWdlbnQiLCAwLCBOVUxMKTsKKyAgICBnX29iamVjdF9nZXQoc2V0dGluZ3MsInVzZXItYWdlbnQi
LCAmdXNlckFnZW50LCBOVUxMKTsKICAgICBnX2Fzc2VydF9jbXBzdHIodXNlckFnZW50LCA9PSwg
ZGVmYXVsdFVzZXJBZ2VudCk7CiAgICAgZ19mcmVlKHVzZXJBZ2VudCk7CiAKLSAgICB1c2VyQWdl
bnQgPSB3ZWJraXRXZWJTZXR0aW5nc1VzZXJBZ2VudEZvclVSSShzZXR0aW5ncywgImh0dHA6Ly93
d3cuZ29vZ2xlLmNvbS5ici8iKTsKKyAgICB1c2VyQWdlbnQgPSAwOworICAgIGdfb2JqZWN0X3Nl
dChzZXR0aW5ncywgInVzZXItYWdlbnQiLCAiIiwgTlVMTCk7CisgICAgZ19vYmplY3RfZ2V0KHNl
dHRpbmdzLCJ1c2VyLWFnZW50IiwgJnVzZXJBZ2VudCwgTlVMTCk7CiAgICAgZ19hc3NlcnRfY21w
c3RyKHVzZXJBZ2VudCwgPT0sIGRlZmF1bHRVc2VyQWdlbnQpOwogICAgIGdfZnJlZSh1c2VyQWdl
bnQpOwogCi0gICAgdXNlckFnZW50ID0gd2Via2l0V2ViU2V0dGluZ3NVc2VyQWdlbnRGb3JVUkko
c2V0dGluZ3MsICJodHRwOi8vd3d3Lmdvb2dsZS51ay5ub3QuY29tLmJyLyIpOwotICAgIGdfYXNz
ZXJ0X2NtcHN0cih1c2VyQWdlbnQsID09LCAidGVzdHdlYnNldHRpbmdzLzAuMSIpOwotICAgIGdf
ZnJlZSh1c2VyQWdlbnQpOwotCiAgICAgZ19mcmVlKGRlZmF1bHRVc2VyQWdlbnQpOwogICAgIGdf
b2JqZWN0X3VucmVmKHdlYlZpZXcpOwogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>234550</attachid>
            <date>2014-07-08 00:01:41 -0700</date>
            <delta_ts>2014-07-08 02:32:15 -0700</delta_ts>
            <desc>Updated path</desc>
            <filename>wk-google-user-agent.diff</filename>
            <type>text/plain</type>
            <size>20367</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA2YTAyZjdjLi41NjgwY2QwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjcg
QEAKKzIwMTQtMDctMDQgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29t
PgorCisgICAgICAgIFtHVEtdW1N0YWJsZV0gR29vZ2xlIE1hcHMgZG9lc24ndCB3b3JrIHdpdGgg
VmVyc2lvbi9YIGluIHRoZSB1c2VyIGFnZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMzQ2MzEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBCZWNhdXNlIG9mIHRoZSBKU0MgdmVyc2lvbiB1c2VkIGluIHN0
YWJsZSBicmFuY2gsIHdoZW4gdGhlCisgICAgICAgIFZlcnNpb24vWCBzdHJpbmcgaXMgcHJlc2Vu
dCBpbiB0aGUgdXNlciBhZ2VudCwgZ29vZ2xlIG1hcHMgdXNlcworICAgICAgICBKYXZhU2NyaXB0
IEFQSSB0aGF0IHdlIGRvbid0IHN1cHBvcnQuIE1vdmUgdGhlIGdvb2dsZSBkb21haW4gcXVpcmtz
CisgICAgICAgIGZyb20gV2ViS2l0MSB0byBXZWJDb3JlIGFuZCBhZGQgYSBxdWlyayBmb3IgZ29v
Z2xlIG1hcHMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvVXNlckFnZW50R3RrLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Omdvb2dsZURvbWFpbnMpOgorICAgICAgICAoV2ViQ29yZTo6b3RoZXJH
b29nbGVEb21haW5zKToKKyAgICAgICAgKFdlYkNvcmU6OmlzR29vZ2xlRG9tYWluKTogUmV0dXJu
cyB3aGV0aGVyIHRoZSBnaXZlbiBob3N0IGlzIGEKKyAgICAgICAga25vd24gZ29vZ2xlIGRvbWFp
bgorICAgICAgICAoV2ViQ29yZTo6YnVpbGRVc2VyQWdlbnRTdHJpbmcpOiBEbyBub3QgaW5jbHVk
ZSB0aGUgVmVyc2lvbi9YCisgICAgICAgIHN0cmluZyBpbiB0aGUgdXNlciBhZ2VudCBpZiB0aGUg
U2hvdWxkTm90SW5jbHVkZVNhZmFyaVZlcnNpb24KKyAgICAgICAgcXVpcmsgaXMgcHJlc2VudC4K
KyAgICAgICAgKFdlYkNvcmU6OnN0YW5kYXJkVXNlckFnZW50Rm9yVVJMKTogQWRkIFJlcXVpcmVz
U3RhbmRhcmRVc2VyQWdlbnQKKyAgICAgICAgcXVpcmsgZm9yIGFueSBnb29nbGUgZG9hbWluIGFu
ZCBTaG91bGROb3RJbmNsdWRlU2FmYXJpVmVyc2lvbiBmb3IKKyAgICAgICAgR29vZ2xlIE1hcHMu
CisKIDIwMTQtMDYtMjcgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgog
CiAgICAgICAgIFtHVEtdIDh0cmFja3MuY29tIHRyaWdnZXJzIGFubm95aW5nIHBvcC11cCB3aW5k
b3cvaW5zdGFsbGF0aW9uIG9mICJBYm91dCBwcm90b2NvbCBzb3VyY2UgcGx1Z2luIiAoR1N0cmVh
bWVyPykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9Vc2VyQWdlbnRH
dGsuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1VzZXJBZ2VudEd0ay5jcHAKaW5k
ZXggYWRmMTI4Ny4uMDEzMmI2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3RrL1VzZXJBZ2VudEd0ay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1Vz
ZXJBZ2VudEd0ay5jcHAKQEAgLTI4LDcgKzI4LDkgQEAKIAogI2luY2x1ZGUgIlVSTC5oIgogI2lu
Y2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgorI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAj
aW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1N0
cmluZ0hhc2guaD4KIAogI2lmIE9TKFVOSVgpCiAjaW5jbHVkZSA8c3lzL3V0c25hbWUuaD4KQEAg
LTQwLDYgKzQyLDggQEAgY2xhc3MgVXNlckFnZW50UXVpcmtzIHsKIHB1YmxpYzoKICAgICBlbnVt
IFVzZXJBZ2VudFF1aXJrIHsKICAgICAgICAgTmVlZHNNYWNpbnRvc2hQbGF0Zm9ybSwKKyAgICAg
ICAgUmVxdWlyZXNTdGFuZGFyZFVzZXJBZ2VudCwKKyAgICAgICAgU2hvdWxkTm90Q2xhaW1Ub0Jl
U2FmYXJpLAogCiAgICAgICAgIE51bVVzZXJBZ2VudFF1aXJrcwogICAgIH07CkBAIC02OSw2ICs3
MywxMDcgQEAgcHJpdmF0ZToKICAgICB1aW50MzJfdCBtX3F1aXJrczsKIH07CiAKK3N0YXRpYyBj
b25zdCBIYXNoU2V0PFN0cmluZz4mIGdvb2dsZURvbWFpbnMoKQoreworICAgIHN0YXRpYyBOZXZl
ckRlc3Ryb3llZDxIYXNoU2V0PFN0cmluZz4+IGRvbWFpbnMoc3RkOjppbml0aWFsaXplcl9saXN0
PFN0cmluZz4oeworICAgICAgICAiYml6IiwKKyAgICAgICAgImNvbSIsCisgICAgICAgICJuZXQi
LAorICAgICAgICAib3JnIiwKKyAgICAgICAgImFlIiwKKyAgICAgICAgImFnIiwKKyAgICAgICAg
ImFtIiwKKyAgICAgICAgImF0IiwKKyAgICAgICAgImF6IiwKKyAgICAgICAgImJlIiwKKyAgICAg
ICAgImJpIiwKKyAgICAgICAgImNhIiwKKyAgICAgICAgImNjIiwKKyAgICAgICAgImNkIiwKKyAg
ICAgICAgImNnIiwKKyAgICAgICAgImNoIiwKKyAgICAgICAgImNsIiwKKyAgICAgICAgImNvbS5i
ciIsCisgICAgICAgICJjb20uZG8iLAorICAgICAgICAiY28udWsiLAorICAgICAgICAiY28ua3Ii
LAorICAgICAgICAiY28uanAiLAorICAgICAgICAiZGUiLAorICAgICAgICAiZGoiLAorICAgICAg
ICAiZGsiLAorICAgICAgICAiZWUiLAorICAgICAgICAiZXMiLAorICAgICAgICAiZmkiLAorICAg
ICAgICAiZm0iLAorICAgICAgICAiZnIiLAorICAgICAgICAiZ2ciLAorICAgICAgICAiZ2wiLAor
ICAgICAgICAiZ20iLAorICAgICAgICAiZ3MiLAorICAgICAgICAiaG4iLAorICAgICAgICAiaHUi
LAorICAgICAgICAiaWUiLAorICAgICAgICAiaXQiLAorICAgICAgICAiamUiLAorICAgICAgICAi
a3oiLAorICAgICAgICAibGkiLAorICAgICAgICAibHQiLAorICAgICAgICAibHUiLAorICAgICAg
ICAibHYiLAorICAgICAgICAibWEiLAorICAgICAgICAibXMiLAorICAgICAgICAibXUiLAorICAg
ICAgICAibXciLAorICAgICAgICAibmwiLAorICAgICAgICAibm8iLAorICAgICAgICAibnUiLAor
ICAgICAgICAicGwiLAorICAgICAgICAicG4iLAorICAgICAgICAicHQiLAorICAgICAgICAicnUi
LAorICAgICAgICAicnciLAorICAgICAgICAic2giLAorICAgICAgICAic2siLAorICAgICAgICAi
c20iLAorICAgICAgICAic3QiLAorICAgICAgICAidGQiLAorICAgICAgICAidGsiLAorICAgICAg
ICAidHAiLAorICAgICAgICAidHYiLAorICAgICAgICAidXMiLAorICAgICAgICAidXoiLAorICAg
ICAgICAid3MiCisgICAgfSkpOworICAgIHJldHVybiBkb21haW5zOworfQorCitzdGF0aWMgY29u
c3QgVmVjdG9yPFN0cmluZz4mIG90aGVyR29vZ2xlRG9tYWlucygpCit7CisgICAgc3RhdGljIE5l
dmVyRGVzdHJveWVkPFZlY3RvcjxTdHJpbmc+PiBvdGhlckRvbWFpbnMoc3RkOjppbml0aWFsaXpl
cl9saXN0PFN0cmluZz4oeworICAgICAgICAiZ21haWwuY29tIiwKKyAgICAgICAgInlvdXR1YmUu
Y29tIiwKKyAgICAgICAgImdzdGF0aWMuY29tIiwKKyAgICAgICAgInl0aW1nLmNvbSIKKyAgICB9
KSk7CisgICAgcmV0dXJuIG90aGVyRG9tYWluczsKK30KKworc3RhdGljIGJvb2wgaXNHb29nbGVE
b21haW4oU3RyaW5nIGhvc3QpCit7CisgICAgLy8gRmlyc3QgY2hlY2sgaWYgdGhpcyBpcyBvbmUg
b2YgdGhlIHZhcmlvdXMgZ29vZ2xlLmNvbSBpbnRlcm5hdGlvbmFsIGRvbWFpbnMuCisgICAgaW50
IHBvc2l0aW9uID0gaG9zdC5maW5kKCIuZ29vZ2xlLiIpOworICAgIGlmIChwb3NpdGlvbiA+IDAg
JiYgZ29vZ2xlRG9tYWlucygpLmNvbnRhaW5zKGhvc3Quc3Vic3RyaW5nKHBvc2l0aW9uICsgc2l6
ZW9mKCIuZ29vZ2xlLiIpIC0gMSkpKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgIC8vIFRo
ZW4gd2UgY2hlY2sgdGhlIHBvc3NpYmlsaXR5IG9mIGl0IGJlaW5nIG9uZSBvZiB0aGUgb3RoZXIs
IC5jb20tb25seSBnb29nbGUgZG9tYWlucy4KKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwg
b3RoZXJHb29nbGVEb21haW5zKCkuc2l6ZSgpOyBpKyspIHsKKyAgICAgICAgaWYgKGhvc3QuZW5k
c1dpdGgob3RoZXJHb29nbGVEb21haW5zKCkuYXQoaSkpKQorICAgICAgICAgICAgcmV0dXJuIHRy
dWU7CisgICAgfQorCisgICAgcmV0dXJuIGZhbHNlOworfQorCiBzdGF0aWMgY29uc3QgY2hhciog
Y3B1RGVzY3JpcHRpb25Gb3JVQVN0cmluZygpCiB7CiAjaWYgQ1BVKFBQQykgfHwgQ1BVKFBQQzY0
KQpAQCAtMTM4LDEwICsyNDMsMTUgQEAgc3RhdGljIFN0cmluZyBidWlsZFVzZXJBZ2VudFN0cmlu
Zyhjb25zdCBVc2VyQWdlbnRRdWlya3MmIHF1aXJrcykKIAogICAgIHVhU3RyaW5nLmFwcGVuZExp
dGVyYWwoIikgQXBwbGVXZWJLaXQvIik7CiAgICAgdWFTdHJpbmcuYXBwZW5kKHZlcnNpb25Gb3JV
QVN0cmluZygpKTsKLSAgICAvLyBWZXJzaW9uL1ggaXMgbWFuZGF0b3J5ICpiZWZvcmUqIFNhZmFy
aS9YIHRvIGJlIGEgdmFsaWQgU2FmYXJpIFVBLiBTZWUKLSAgICAvLyBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMzNDAzIGZvciBkZXRhaWxzLgotICAgIHVhU3RyaW5n
LmFwcGVuZExpdGVyYWwoIiAoS0hUTUwsIGxpa2UgR2Vja28pIFZlcnNpb24vOC4wIFNhZmFyaS8i
KTsKLSAgICB1YVN0cmluZy5hcHBlbmQodmVyc2lvbkZvclVBU3RyaW5nKCkpOworCisgICAgdWFT
dHJpbmcuYXBwZW5kTGl0ZXJhbCgiIChLSFRNTCwgbGlrZSBHZWNrbykiKTsKKyAgICBpZiAoIXF1
aXJrcy5jb250YWlucyhVc2VyQWdlbnRRdWlya3M6OlNob3VsZE5vdENsYWltVG9CZVNhZmFyaSkp
IHsKKyAgICAgICAgLy8gVmVyc2lvbi9YIGlzIG1hbmRhdG9yeSAqYmVmb3JlKiBTYWZhcmkvWCB0
byBiZSBhIHZhbGlkIFNhZmFyaSBVQS4gU2VlCisgICAgICAgIC8vIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzM0MDMgZm9yIGRldGFpbHMuCisgICAgICAgIHVhU3Ry
aW5nLmFwcGVuZExpdGVyYWwoIiBWZXJzaW9uLzguMCIpOworICAgICAgICB1YVN0cmluZy5hcHBl
bmRMaXRlcmFsKCIgU2FmYXJpLyIpOworICAgICAgICB1YVN0cmluZy5hcHBlbmQodmVyc2lvbkZv
clVBU3RyaW5nKCkpOworICAgIH0KIAogICAgIHJldHVybiB1YVN0cmluZy50b1N0cmluZygpOwog
fQpAQCAtMTgwLDYgKzI5MCwxNCBAQCBTdHJpbmcgc3RhbmRhcmRVc2VyQWdlbnRGb3JVUkwoY29u
c3QgVVJMJiB1cmwpCiAgICAgICAgIC8vIHd3dy55YWhvby5jb20gcmVkaXJlY3RzIHRvIHRoZSBt
b2JpbGUgdmVyc2lvbiB3aGVuIExpbnV4IGlzIHByZXNlbnQgaW4gdGhlIFVBLAogICAgICAgICAv
LyB1c2UgYWx3YXlzIE1hY2ludG9zaCBhcyBwbGF0Zm9ybS4gU2VlIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjU0NDQuCiAgICAgICAgIHF1aXJrcy5hZGQoVXNlckFn
ZW50UXVpcmtzOjpOZWVkc01hY2ludG9zaFBsYXRmb3JtKTsKKyAgICB9IGVsc2UgaWYgKGlzR29v
Z2xlRG9tYWluKHVybC5ob3N0KCkpKSB7CisgICAgICAgIC8vIEZvciBHb29nbGUgZG9tYWlucywg
ZHJvcCB0aGUgYnJvd3NlcidzIGN1c3RvbSBVc2VyIEFnZW50IHN0cmluZywgYW5kIHVzZSB0aGUK
KyAgICAgICAgLy8gc3RhbmRhcmQgb25lLCBzbyB0aGV5IGRvbid0IGdpdmUgdXMgYSBicm9rZW4g
ZXhwZXJpZW5jZS4KKyAgICAgICAgcXVpcmtzLmFkZChVc2VyQWdlbnRRdWlya3M6OlJlcXVpcmVz
U3RhbmRhcmRVc2VyQWdlbnQpOworCisgICAgICAgIC8vIEdvb2dsZSBNYXBzIHVzZXMgbmV3IEph
dmFTY3JpcHQgQVBJIG5vdCBzdXBwb3J0ZWQgYnkgdXMgd2hlbiBTYWZhcmkgVmVyc2lvbiBpcyBw
cmVzZW50IGluIHRoZSB1c2VyIGFnZW50LgorICAgICAgICBpZiAodXJsLmhvc3QoKS5zdGFydHNX
aXRoKCJtYXBzLiIpIHx8IHVybC5wYXRoKCkuc3RhcnRzV2l0aCgiL21hcHMiKSkKKyAgICAgICAg
ICAgIHF1aXJrcy5hZGQoVXNlckFnZW50UXVpcmtzOjpTaG91bGROb3RDbGFpbVRvQmVTYWZhcmkp
OwogICAgIH0KIAogICAgIC8vIFRoZSBudWxsIHN0cmluZyBtZWFucyB3ZSBkb24ndCBuZWVkIGEg
c3BlY2lmaWMgVUEgZm9yIHRoZSBnaXZlbiBVUkwuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L2d0ay9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKaW5kZXggZjUyMDIw
Ny4uZTE2Njk1ZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAxNC0wNy0w
NCAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CisKKyAgICAgICAg
W0dUS11bU3RhYmxlXSBHb29nbGUgTWFwcyBkb2Vzbid0IHdvcmsgd2l0aCBWZXJzaW9uL1ggaW4g
dGhlIHVzZXIgYWdlbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTEzNDYzMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFJlbW92ZSB1c2VyIGFnZW50IHF1aXJrcyBmb3IgZ29vZ2xlIGRvbWFpbnMsIHNpbmNl
IHRoZXkgYXJlIG5vdworICAgICAgICBpbXBsZW1lbnRlZCBpbiBXZWJDb3JlLgorCisgICAgICAg
ICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpGcmFtZUxvYWRlckNsaWVudDo6dXNlckFnZW50KTogUGFzcyB0aGUgV2ViQ29yZTo6VVJM
CisgICAgICAgIGNvbnN0IHJlZmVyZW5jZSB0byB3ZWJraXRXZWJTZXR0aW5nc1VzZXJBZ2VudEZv
clVSSSgpLgorICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJzZXR0aW5ncy5jcHA6CisgICAgICAg
ICh3ZWJraXRXZWJTZXR0aW5nc1VzZXJBZ2VudEZvclVSSSk6IFVzZQorICAgICAgICBXZWJDb3Jl
OjpzdGFuZGFyZFVzZXJBZ2VudEZvclVSTCgpIHdoZW4gc2l0ZSBzcGVjaWZpYyBxdWlya3MgYXJl
IGVuYWJsZWQuCisgICAgICAgICogd2Via2l0L3dlYmtpdHdlYnNldHRpbmdzcHJpdmF0ZS5oOgor
CiAyMDE0LTA1LTI2ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4K
IAogICAgICAgICBVbnJldmlld2VkLiBVcGRhdGUgTkVXUyBhbmQgVmVyc2lvbnMubTQgZm9yIDIu
NC4zIHJlbGVhc2UuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9y
dC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHAgYi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3Vw
cG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHAKaW5kZXggYjI0ZTA4OS4uMmE2YTZkNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGll
bnRHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9h
ZGVyQ2xpZW50R3RrLmNwcApAQCAtMTIzLDcgKzEyMyw3IEBAIEZyYW1lTG9hZGVyQ2xpZW50Ojp+
RnJhbWVMb2FkZXJDbGllbnQoKQogU3RyaW5nIEZyYW1lTG9hZGVyQ2xpZW50Ojp1c2VyQWdlbnQo
Y29uc3QgVVJMJiB1cmwpCiB7CiAgICAgV2ViS2l0V2ViU2V0dGluZ3MqIHNldHRpbmdzID0gd2Vi
a2l0X3dlYl92aWV3X2dldF9zZXR0aW5ncyhnZXRWaWV3RnJvbUZyYW1lKG1fZnJhbWUpKTsKLSAg
ICBHVW5pcXVlUHRyPGdjaGFyPiB1c2VyQWdlbnRTdHJpbmcod2Via2l0V2ViU2V0dGluZ3NVc2Vy
QWdlbnRGb3JVUkkoc2V0dGluZ3MsIHVybC5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKSk7CisgICAg
R1VuaXF1ZVB0cjxnY2hhcj4gdXNlckFnZW50U3RyaW5nKHdlYmtpdFdlYlNldHRpbmdzVXNlckFn
ZW50Rm9yVVJJKHNldHRpbmdzLCB1cmwpKTsKICAgICByZXR1cm4gU3RyaW5nOjpmcm9tVVRGOCh1
c2VyQWdlbnRTdHJpbmcuZ2V0KCkpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0
ay93ZWJraXQvd2Via2l0d2Vic2V0dGluZ3MuY3BwIGIvU291cmNlL1dlYktpdC9ndGsvd2Via2l0
L3dlYmtpdHdlYnNldHRpbmdzLmNwcAppbmRleCA1ZjcxMzk1Li4wNjNlOWUyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vic2V0dGluZ3MuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJzZXR0aW5ncy5jcHAKQEAgLTE1MDQsMTIx
ICsxNTA0LDYgQEAgY29uc3QgZ2NoYXIqIHdlYmtpdF93ZWJfc2V0dGluZ3NfZ2V0X3VzZXJfYWdl
bnQoV2ViS2l0V2ViU2V0dGluZ3MqIHdlYlNldHRpbmdzKQogICAgIHJldHVybiB3ZWJTZXR0aW5n
cy0+cHJpdi0+dXNlckFnZW50LmRhdGEoKTsKIH0KIAotc3RhdGljIHZvaWQgaW5pdGlhbGl6ZURv
bWFpbnNMaXN0KEhhc2hTZXQ8U3RyaW5nPiYgZ29vZ2xlRG9tYWlucykKLXsKLSAgICAvLyBHb29n
bGUgc2VhcmNoIGRvbWFpbnMuCi0gICAgZ29vZ2xlRG9tYWlucy5hZGQoImJpeiIpOwotICAgIGdv
b2dsZURvbWFpbnMuYWRkKCJjb20iKTsKLSAgICBnb29nbGVEb21haW5zLmFkZCgibmV0Iik7Ci0g
ICAgZ29vZ2xlRG9tYWlucy5hZGQoIm9yZyIpOwotICAgIGdvb2dsZURvbWFpbnMuYWRkKCJhZSIp
OwotICAgIGdvb2dsZURvbWFpbnMuYWRkKCJhZyIpOwotICAgIGdvb2dsZURvbWFpbnMuYWRkKCJh
bSIpOwotICAgIGdvb2dsZURvbWFpbnMuYWRkKCJhdCIpOwotICAgIGdvb2dsZURvbWFpbnMuYWRk
KCJheiIpOwotICAgIGdvb2dsZURvbWFpbnMuYWRkKCJiZSIpOwotICAgIGdvb2dsZURvbWFpbnMu
YWRkKCJiaSIpOwotICAgIGdvb2dsZURvbWFpbnMuYWRkKCJjYSIpOwotICAgIGdvb2dsZURvbWFp
bnMuYWRkKCJjYyIpOwotICAgIGdvb2dsZURvbWFpbnMuYWRkKCJjZCIpOwotICAgIGdvb2dsZURv
bWFpbnMuYWRkKCJjZyIpOwotICAgIGdvb2dsZURvbWFpbnMuYWRkKCJjaCIpOwotICAgIGdvb2ds
ZURvbWFpbnMuYWRkKCJjbCIpOwotICAgIGdvb2dsZURvbWFpbnMuYWRkKCJjb20uYnIiKTsKLSAg
ICBnb29nbGVEb21haW5zLmFkZCgiY29tLmRvIik7Ci0gICAgZ29vZ2xlRG9tYWlucy5hZGQoImNv
LnVrIik7Ci0gICAgZ29vZ2xlRG9tYWlucy5hZGQoImNvLmtyIik7Ci0gICAgZ29vZ2xlRG9tYWlu
cy5hZGQoImNvLmpwIik7Ci0gICAgZ29vZ2xlRG9tYWlucy5hZGQoImRlIik7Ci0gICAgZ29vZ2xl
RG9tYWlucy5hZGQoImRqIik7Ci0gICAgZ29vZ2xlRG9tYWlucy5hZGQoImRrIik7Ci0gICAgZ29v
Z2xlRG9tYWlucy5hZGQoImVlIik7Ci0gICAgZ29vZ2xlRG9tYWlucy5hZGQoImVzIik7Ci0gICAg
Z29vZ2xlRG9tYWlucy5hZGQoImZpIik7Ci0gICAgZ29vZ2xlRG9tYWlucy5hZGQoImZtIik7Ci0g
ICAgZ29vZ2xlRG9tYWlucy5hZGQoImZyIik7Ci0gICAgZ29vZ2xlRG9tYWlucy5hZGQoImdnIik7
Ci0gICAgZ29vZ2xlRG9tYWlucy5hZGQoImdsIik7Ci0gICAgZ29vZ2xlRG9tYWlucy5hZGQoImdt
Iik7Ci0gICAgZ29vZ2xlRG9tYWlucy5hZGQoImdzIik7Ci0gICAgZ29vZ2xlRG9tYWlucy5hZGQo
ImhuIik7Ci0gICAgZ29vZ2xlRG9tYWlucy5hZGQoImh1Iik7Ci0gICAgZ29vZ2xlRG9tYWlucy5h
ZGQoImllIik7Ci0gICAgZ29vZ2xlRG9tYWlucy5hZGQoIml0Iik7Ci0gICAgZ29vZ2xlRG9tYWlu
cy5hZGQoImplIik7Ci0gICAgZ29vZ2xlRG9tYWlucy5hZGQoImt6Iik7Ci0gICAgZ29vZ2xlRG9t
YWlucy5hZGQoImxpIik7Ci0gICAgZ29vZ2xlRG9tYWlucy5hZGQoImx0Iik7Ci0gICAgZ29vZ2xl
RG9tYWlucy5hZGQoImx1Iik7Ci0gICAgZ29vZ2xlRG9tYWlucy5hZGQoImx2Iik7Ci0gICAgZ29v
Z2xlRG9tYWlucy5hZGQoIm1hIik7Ci0gICAgZ29vZ2xlRG9tYWlucy5hZGQoIm1zIik7Ci0gICAg
Z29vZ2xlRG9tYWlucy5hZGQoIm11Iik7Ci0gICAgZ29vZ2xlRG9tYWlucy5hZGQoIm13Iik7Ci0g
ICAgZ29vZ2xlRG9tYWlucy5hZGQoIm5sIik7Ci0gICAgZ29vZ2xlRG9tYWlucy5hZGQoIm5vIik7
Ci0gICAgZ29vZ2xlRG9tYWlucy5hZGQoIm51Iik7Ci0gICAgZ29vZ2xlRG9tYWlucy5hZGQoInBs
Iik7Ci0gICAgZ29vZ2xlRG9tYWlucy5hZGQoInBuIik7Ci0gICAgZ29vZ2xlRG9tYWlucy5hZGQo
InB0Iik7Ci0gICAgZ29vZ2xlRG9tYWlucy5hZGQoInJ1Iik7Ci0gICAgZ29vZ2xlRG9tYWlucy5h
ZGQoInJ3Iik7Ci0gICAgZ29vZ2xlRG9tYWlucy5hZGQoInNoIik7Ci0gICAgZ29vZ2xlRG9tYWlu
cy5hZGQoInNrIik7Ci0gICAgZ29vZ2xlRG9tYWlucy5hZGQoInNtIik7Ci0gICAgZ29vZ2xlRG9t
YWlucy5hZGQoInN0Iik7Ci0gICAgZ29vZ2xlRG9tYWlucy5hZGQoInRkIik7Ci0gICAgZ29vZ2xl
RG9tYWlucy5hZGQoInRrIik7Ci0gICAgZ29vZ2xlRG9tYWlucy5hZGQoInRwIik7Ci0gICAgZ29v
Z2xlRG9tYWlucy5hZGQoInR2Iik7Ci0gICAgZ29vZ2xlRG9tYWlucy5hZGQoInVzIik7Ci0gICAg
Z29vZ2xlRG9tYWlucy5hZGQoInV6Iik7Ci0gICAgZ29vZ2xlRG9tYWlucy5hZGQoIndzIik7Ci19
Ci0KLXN0YXRpYyB2b2lkIGluaXRpYWxpemVPdGhlckdvb2dsZURvbWFpbnMoVmVjdG9yPFN0cmlu
Zz4mIG90aGVyR29vZ2xlRG9tYWlucykKLXsKLSAgICBvdGhlckdvb2dsZURvbWFpbnMuYXBwZW5k
KCJnbWFpbC5jb20iKTsKLSAgICBvdGhlckdvb2dsZURvbWFpbnMuYXBwZW5kKCJ5b3V0dWJlLmNv
bSIpOwotICAgIG90aGVyR29vZ2xlRG9tYWlucy5hcHBlbmQoImdzdGF0aWMuY29tIik7Ci0gICAg
b3RoZXJHb29nbGVEb21haW5zLmFwcGVuZCgieXRpbWcuY29tIik7Ci19Ci0KLXN0YXRpYyBib29s
IGlzR29vZ2xlRG9tYWluKFN0cmluZyBob3N0KQotewotICAgIERFRklORV9TVEFUSUNfTE9DQUwo
SGFzaFNldDxTdHJpbmc+LCBnb29nbGVEb21haW5zLCAoKSk7Ci0gICAgREVGSU5FX1NUQVRJQ19M
T0NBTChWZWN0b3I8U3RyaW5nPiwgb3RoZXJHb29nbGVEb21haW5zLCAoKSk7Ci0KLSAgICBpZiAo
Z29vZ2xlRG9tYWlucy5pc0VtcHR5KCkpCi0gICAgICAgIGluaXRpYWxpemVEb21haW5zTGlzdChn
b29nbGVEb21haW5zKTsKLQotICAgIGlmIChvdGhlckdvb2dsZURvbWFpbnMuaXNFbXB0eSgpKQot
ICAgICAgICBpbml0aWFsaXplT3RoZXJHb29nbGVEb21haW5zKG90aGVyR29vZ2xlRG9tYWlucyk7
Ci0KLSAgICAvLyBGaXJzdCBjaGVjayBpZiB0aGlzIGlzIG9uZSBvZiB0aGUgdmFyaW91cyBnb29n
bGUuY29tIGludGVybmF0aW9uYWwgZG9tYWlucy4KLSAgICBpbnQgcG9zaXRpb24gPSBob3N0LmZp
bmQoIi5nb29nbGUuIik7Ci0gICAgaWYgKHBvc2l0aW9uID4gMCAmJiBnb29nbGVEb21haW5zLmNv
bnRhaW5zKGhvc3Quc3Vic3RyaW5nKHBvc2l0aW9uICsgc2l6ZW9mKCIuZ29vZ2xlLiIpIC0gMSkp
KQotICAgICAgICByZXR1cm4gdHJ1ZTsKLQotICAgIC8vIFRoZW4gd2UgY2hlY2sgdGhlIHBvc3Np
YmlsaXR5IG9mIGl0IGJlaW5nIG9uZSBvZiB0aGUgb3RoZXIsIC5jb20tb25seSBnb29nbGUgZG9t
YWlucy4KLSAgICBmb3IgKHVuc2lnbmVkIGludCBpID0gMDsgaSA8IG90aGVyR29vZ2xlRG9tYWlu
cy5zaXplKCk7IGkrKykgewotICAgICAgICBpZiAoaG9zdC5lbmRzV2l0aChvdGhlckdvb2dsZURv
bWFpbnMuYXQoaSkpKQotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotCi0gICAgcmV0
dXJuIGZhbHNlOwotfQotCi1zdGF0aWMgU3RyaW5nIHVzZXJBZ2VudEZvclVSTChjb25zdCBVUkwm
IHVybCkKLXsKLSAgICAvLyBGb3IgR29vZ2xlIGRvbWFpbnMsIGRyb3AgdGhlIGJyb3dzZXIncyBj
dXN0b20gVXNlciBBZ2VudCBzdHJpbmcsIGFuZCB1c2UgdGhlCi0gICAgLy8gc3RhbmRhcmQgb25l
LCBzbyB0aGV5IGRvbid0IGdpdmUgdXMgYSBicm9rZW4gZXhwZXJpZW5jZS4KLSAgICBpZiAoaXNH
b29nbGVEb21haW4odXJsLmhvc3QoKSkpCi0gICAgICAgIHJldHVybiBzdGFuZGFyZFVzZXJBZ2Vu
dCgpOwotCi0gICAgcmV0dXJuIFN0cmluZygpOwotfQotCiAvKgogICogUHJpdmF0ZSB1c2FnZSBv
bmx5LgogICogd2Via2l0V2ViU2V0dGluZ3NVc2VyQWdlbnRGb3JVUkk6CkBAIC0xNjQ0LDE0ICsx
NTI5LDEzIEBAIHN0YXRpYyBTdHJpbmcgdXNlckFnZW50Rm9yVVJMKGNvbnN0IFVSTCYgdXJsKQog
ICogUmV0dXJuczogKHRyYW5zZmVyIGZ1bGwpOiBhIG5ld2x5IGFsbG9jYXRlZCBzdHJpbmcgY29u
dGFpbmluZyB0aGUKICAqIFVzZXItQWdlbnQgdGhhdCB3aWxsIGJlIHNlbnQgZm9yIHRoZSBnaXZl
biBVUkkuCiAgKi8KLWNoYXIqIHdlYmtpdFdlYlNldHRpbmdzVXNlckFnZW50Rm9yVVJJKFdlYktp
dFdlYlNldHRpbmdzKiB3ZWJTZXR0aW5ncywgY29uc3QgY2hhciogdXJpKQorY2hhciogd2Via2l0
V2ViU2V0dGluZ3NVc2VyQWdlbnRGb3JVUkkoV2ViS2l0V2ViU2V0dGluZ3MqIHdlYlNldHRpbmdz
LCBjb25zdCBXZWJDb3JlOjpVUkwmIHVybCkKIHsKLSAgICBpZiAod2ViU2V0dGluZ3MtPnByaXYt
PmVuYWJsZVNpdGVTcGVjaWZpY1F1aXJrcykgewotICAgICAgICBTdHJpbmcgdXNlckFnZW50U3Ry
aW5nID0gdXNlckFnZW50Rm9yVVJMKFdlYkNvcmU6OlVSTChXZWJDb3JlOjpVUkwoKSwgU3RyaW5n
Ojpmcm9tVVRGOCh1cmkpKSk7CisgICAgaWYgKHdlYlNldHRpbmdzLT5wcml2LT5lbmFibGVTaXRl
U3BlY2lmaWNRdWlya3MgJiYgIXVybC5pc051bGwoKSkgeworICAgICAgICBTdHJpbmcgdXNlckFn
ZW50U3RyaW5nID0gV2ViQ29yZTo6c3RhbmRhcmRVc2VyQWdlbnRGb3JVUkwodXJsKTsKICAgICAg
ICAgaWYgKCF1c2VyQWdlbnRTdHJpbmcuaXNFbXB0eSgpKQogICAgICAgICAgICAgcmV0dXJuIGdf
c3RyZHVwKHVzZXJBZ2VudFN0cmluZy51dGY4KCkuZGF0YSgpKTsKICAgICB9Ci0KICAgICByZXR1
cm4gZ19zdHJkdXAod2Via2l0X3dlYl9zZXR0aW5nc19nZXRfdXNlcl9hZ2VudCh3ZWJTZXR0aW5n
cykpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vi
c2V0dGluZ3Nwcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vic2V0
dGluZ3Nwcml2YXRlLmgKaW5kZXggYjVlNDZmOC4uMzNhMjAxMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnNldHRpbmdzcHJpdmF0ZS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJzZXR0aW5nc3ByaXZhdGUuaApAQCAtMjQsNiAr
MjQsNyBAQAogI2RlZmluZSB3ZWJraXR3ZWJzZXR0aW5nc3ByaXZhdGVfaAogCiAjaW5jbHVkZSAi
d2Via2l0d2Vic2V0dGluZ3MuaCIKKyNpbmNsdWRlICJVUkwuaCIKICNpbmNsdWRlIDx3dGYvdGV4
dC9DU3RyaW5nLmg+CiAKIGV4dGVybiAiQyIgewpAQCAtOTIsNyArOTMsNyBAQCBzdHJ1Y3QgX1dl
YktpdFdlYlNldHRpbmdzUHJpdmF0ZSB7CiAKIFdFQktJVF9BUEkgdm9pZCB3ZWJraXRfd2ViX3Nl
dHRpbmdzX2FkZF9leHRyYV9wbHVnaW5fZGlyZWN0b3J5KFdlYktpdFdlYlZpZXcqLCBjb25zdCBn
Y2hhciogZGlyZWN0b3J5KTsKIAotV0VCS0lUX0FQSSBjaGFyKiB3ZWJraXRXZWJTZXR0aW5nc1Vz
ZXJBZ2VudEZvclVSSShXZWJLaXRXZWJTZXR0aW5ncyosIGNvbnN0IGdjaGFyKiB1cmkpOworV0VC
S0lUX0FQSSBjaGFyKiB3ZWJraXRXZWJTZXR0aW5nc1VzZXJBZ2VudEZvclVSSShXZWJLaXRXZWJT
ZXR0aW5ncyosIGNvbnN0IFdlYkNvcmU6OlVSTCYpOwogCiBHU0xpc3QqIHdlYmtpdFdlYlZpZXdH
ZXRFbmNoYW50RGljdHMoV2ViS2l0V2ViVmlldyopOwogCmRpZmYgLS1naXQgYS9Ub29scy9DaGFu
Z2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMjgzNjQzYy4uMjk3NTFkMSAxMDA2NDQKLS0t
IGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBA
CisyMDE0LTA3LTA0ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4K
KworICAgICAgICBbR1RLXVtTdGFibGVdIEdvb2dsZSBNYXBzIGRvZXNuJ3Qgd29yayB3aXRoIFZl
cnNpb24vWCBpbiB0aGUgdXNlciBhZ2VudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTM0NjMxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgTW92ZSB1c2VyIGFnZW50IHF1aXJrcyB0ZXN0cyBmcm9tIFdlYktp
dDEgdG8gV2ViQ29yZS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9n
dGsvVXNlckFnZW50UXVpcmtzLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgor
ICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R3RrL3Rlc3R3ZWJzZXR0aW5ncy5j
OgorICAgICAgICAodGVzdF93ZWJraXRfd2ViX3NldHRpbmdzX3VzZXJfYWdlbnQpOgorCiAyMDE0
LTAyLTA1ICBaYW4gRG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KIAogICAgICAgICBS
ZW1vdmUgdGhlIFdURl9DT01QSUxFUl9TVVBQT1JUU19DWFhfR0VORVJBTElaRURfSU5JVElBTEla
RVJTIG1hY3JvCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUv
Z3RrL1VzZXJBZ2VudFF1aXJrcy5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNv
cmUvZ3RrL1VzZXJBZ2VudFF1aXJrcy5jcHAKaW5kZXggNDAzM2IzNy4uNDAzMDVlOCAxMDA2NDQK
LS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL2d0ay9Vc2VyQWdlbnRRdWly
a3MuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9ndGsvVXNlckFn
ZW50UXVpcmtzLmNwcApAQCAtNDMsNiArNDMsMjEgQEAgVEVTVChXZWJDb3JlLCBVc2VyQWdlbnRR
dWlya3NUZXN0KQogICAgIEVYUEVDVF9UUlVFKHVhU3RyaW5nLmNvbnRhaW5zKCJNYWNpbnRvc2gi
KSk7CiAgICAgRVhQRUNUX1RSVUUodWFTdHJpbmcuY29udGFpbnMoIk1hYyBPUyBYIikpOwogICAg
IEVYUEVDVF9GQUxTRSh1YVN0cmluZy5jb250YWlucygiTGludXgiKSk7CisKKyAgICAvLyBGb3Ig
R29vZ2xlIGRvbWFpbnMgd2UgYWx3YXlzIHJldHVybiB0aGUgc3RhbmRhcmQgVUEuCisgICAgdWFT
dHJpbmcgPSBzdGFuZGFyZFVzZXJBZ2VudCgpOworICAgIEVYUEVDVF9GQUxTRSh1YVN0cmluZy5p
c051bGwoKSk7CisgICAgRVhQRUNUX1RSVUUodWFTdHJpbmcgPT0gc3RhbmRhcmRVc2VyQWdlbnRG
b3JVUkwoVVJMKFBhcnNlZFVSTFN0cmluZywgImh0dHA6Ly93d3cuZ29vZ2xlLmNvbS8iKSkpOwor
ICAgIEVYUEVDVF9UUlVFKHVhU3RyaW5nID09IHN0YW5kYXJkVXNlckFnZW50Rm9yVVJMKFVSTChQ
YXJzZWRVUkxTdHJpbmcsICJodHRwOi8vY2FsZW5kYXIuZ29vZ2xlLmNvbS8iKSkpOworICAgIEVY
UEVDVF9UUlVFKHVhU3RyaW5nID09IHN0YW5kYXJkVXNlckFnZW50Rm9yVVJMKFVSTChQYXJzZWRV
UkxTdHJpbmcsICJodHRwOi8vZ21haWwuY29tLyIpKSk7CisgICAgRVhQRUNUX1RSVUUodWFTdHJp
bmcgPT0gc3RhbmRhcmRVc2VyQWdlbnRGb3JVUkwoVVJMKFBhcnNlZFVSTFN0cmluZywgImh0dHA6
Ly93d3cuZ29vZ2xlLmNvbS5ici8iKSkpOworICAgIEVYUEVDVF9UUlVFKHVhU3RyaW5nID09IHN0
YW5kYXJkVXNlckFnZW50Rm9yVVJMKFVSTChQYXJzZWRVUkxTdHJpbmcsICJodHRwOi8vd3d3Lnlv
dXR1YmUuY29tLyIpKSk7CisgICAgRVhQRUNUX1RSVUUodWFTdHJpbmcgIT0gc3RhbmRhcmRVc2Vy
QWdlbnRGb3JVUkwoVVJMKFBhcnNlZFVSTFN0cmluZywgImh0dHA6Ly93d3cuZ29vZ2xlLnVrLm5v
dC5jb20uYnIvIikpKTsKKworICAgIC8vIEZvciBHb29nbGUgTWFwcyB3ZSByZW1vdmUgdGhlIFZl
cnNpb24vOC4wIHN0cmluZy4KKyAgICB1YVN0cmluZyA9IHN0YW5kYXJkVXNlckFnZW50Rm9yVVJM
KFVSTChQYXJzZWRVUkxTdHJpbmcsICJodHRwOi8vbWFwcy5nb29nbGUuY29tLyIpKTsKKyAgICBF
WFBFQ1RfVFJVRSh1YVN0cmluZyA9PSBzdGFuZGFyZFVzZXJBZ2VudEZvclVSTChVUkwoUGFyc2Vk
VVJMU3RyaW5nLCAiaHR0cDovL3d3dy5nb29nbGUuY29tL21hcHMvIikpKTsKKyAgICBFWFBFQ1Rf
RkFMU0UodWFTdHJpbmcuY29udGFpbnMoIlZlcnNpb24vOC4wIFNhZmFyaS8iKSk7CiB9CiAKIH0g
Ly8gbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0R3RrL3Rlc3R3ZWJzZXR0aW5ncy5jIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRHdGsvdGVzdHdlYnNldHRpbmdzLmMKaW5kZXggODAzMjI1YS4uZTU1N2Ux
MyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHdGsvdGVzdHdl
YnNldHRpbmdzLmMKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHdGsvdGVz
dHdlYnNldHRpbmdzLmMKQEAgLTIyLDkgKzIyLDYgQEAKICNpbmNsdWRlIDxndGsvZ3RrLmg+CiAj
aW5jbHVkZSA8d2Via2l0L3dlYmtpdC5oPgogCi0vKiBQcml2YXRlIEFQSSAqLwotY2hhciogd2Vi
a2l0V2ViU2V0dGluZ3NVc2VyQWdlbnRGb3JVUkkoV2ViS2l0V2ViU2V0dGluZ3MgKnNldHRpbmdz
LCBjb25zdCBjaGFyICp1cmkpOwotCiBzdGF0aWMgdm9pZCB0ZXN0X3dlYmtpdF93ZWJfc2V0dGlu
Z3NfY29weSh2b2lkKQogewogICAgIFdlYktpdFdlYlNldHRpbmdzICpzZXR0aW5ncyA9IHdlYmtp
dF93ZWJfc2V0dGluZ3NfbmV3KCk7CkBAIC02MSwzMSArNTgsNiBAQCBzdGF0aWMgdm9pZCB0ZXN0
X3dlYmtpdF93ZWJfc2V0dGluZ3NfY29weSh2b2lkKQogICAgIGdfZnJlZShkZWZhdWx0RW5jb2Rp
bmcpOwogfQogCi1zdGF0aWMgdm9pZCB0ZXN0X25vbl9xdWlya3lfdXNlcl9hZ2VudHMoV2ViS2l0
V2ViU2V0dGluZ3MgKnNldHRpbmdzLCBjb25zdCBjaGFyICpkZWZhdWx0VXNlckFnZW50KQotewot
ICAgIGNoYXIgKnVzZXJBZ2VudCA9IDA7Ci0KLSAgICAvLyB0ZXN0IGEgY3VzdG9tIFVBIHN0cmlu
ZwotICAgIHVzZXJBZ2VudCA9IDA7Ci0gICAgZ19vYmplY3Rfc2V0KHNldHRpbmdzLCAidXNlci1h
Z2VudCIsICJ0ZXN0d2Vic2V0dGluZ3MvMC4xIiwgTlVMTCk7Ci0gICAgZ19vYmplY3RfZ2V0KHNl
dHRpbmdzLCJ1c2VyLWFnZW50IiwgJnVzZXJBZ2VudCwgTlVMTCk7Ci0gICAgZ19hc3NlcnRfY21w
c3RyKHVzZXJBZ2VudCwgPT0sICJ0ZXN0d2Vic2V0dGluZ3MvMC4xIik7Ci0gICAgZ19mcmVlKHVz
ZXJBZ2VudCk7Ci0KLSAgICAvLyBzZXR0aW5nIGl0IHRvIE5VTEwgb3IgYW4gZW1wdHkgdmFsdWUg
c2hvdWxkIGdpdmUgdXMgdGhlIGRlZmF1bHQgVUEgc3RyaW5nCi0gICAgdXNlckFnZW50ID0gMDsK
LSAgICBnX29iamVjdF9zZXQoc2V0dGluZ3MsICJ1c2VyLWFnZW50IiwgMCwgTlVMTCk7Ci0gICAg
Z19vYmplY3RfZ2V0KHNldHRpbmdzLCJ1c2VyLWFnZW50IiwgJnVzZXJBZ2VudCwgTlVMTCk7Ci0g
ICAgZ19hc3NlcnRfY21wc3RyKHVzZXJBZ2VudCwgPT0sIGRlZmF1bHRVc2VyQWdlbnQpOwotICAg
IGdfZnJlZSh1c2VyQWdlbnQpOwotCi0gICAgdXNlckFnZW50ID0gMDsKLSAgICBnX29iamVjdF9z
ZXQoc2V0dGluZ3MsICJ1c2VyLWFnZW50IiwgIiIsIE5VTEwpOwotICAgIGdfb2JqZWN0X2dldChz
ZXR0aW5ncywidXNlci1hZ2VudCIsICZ1c2VyQWdlbnQsIE5VTEwpOwotICAgIGdfYXNzZXJ0X2Nt
cHN0cih1c2VyQWdlbnQsID09LCBkZWZhdWx0VXNlckFnZW50KTsKLSAgICBnX2ZyZWUodXNlckFn
ZW50KTsKLX0KLQogc3RhdGljIHZvaWQgdGVzdF93ZWJraXRfd2ViX3NldHRpbmdzX3VzZXJfYWdl
bnQodm9pZCkKIHsKICAgICBXZWJLaXRXZWJTZXR0aW5ncyAqc2V0dGluZ3M7CkBAIC0xMDMsNTAg
Kzc1LDI2IEBAIHN0YXRpYyB2b2lkIHRlc3Rfd2Via2l0X3dlYl9zZXR0aW5nc191c2VyX2FnZW50
KHZvaWQpCiAgICAgZ19hc3NlcnQoZ19zdHJzdHJfbGVuKGRlZmF1bHRVc2VyQWdlbnQsIC0xLCAi
VmVyc2lvbi84LjAgU2FmYXJpLyIpKTsKICAgICBnX2Fzc2VydChnX3N0cnN0cl9sZW4oZGVmYXVs
dFVzZXJBZ2VudCwgLTEsICJWZXJzaW9uLzguMCIpIDwgZ19zdHJzdHJfbGVuKGRlZmF1bHRVc2Vy
QWdlbnQsIC0xLCAiU2FmYXJpLyIpKTsKIAotICAgIHRlc3Rfbm9uX3F1aXJreV91c2VyX2FnZW50
cyhzZXR0aW5ncywgZGVmYXVsdFVzZXJBZ2VudCk7Ci0KLSAgICAvKiBUZXN0IHF1aXJreSBnb29n
bGUgZG9tYWlucyAqLworICAgIC8vIHRlc3QgYSBjdXN0b20gVUEgc3RyaW5nCisgICAgdXNlckFn
ZW50ID0gMDsKICAgICBnX29iamVjdF9zZXQoc2V0dGluZ3MsICJ1c2VyLWFnZW50IiwgInRlc3R3
ZWJzZXR0aW5ncy8wLjEiLCBOVUxMKTsKLQotICAgIHVzZXJBZ2VudCA9IHdlYmtpdFdlYlNldHRp
bmdzVXNlckFnZW50Rm9yVVJJKHNldHRpbmdzLCAiaHR0cDovL3d3dy5nb29nbGUuY29tLyIpOwot
ICAgIGdfYXNzZXJ0X2NtcHN0cih1c2VyQWdlbnQsID09LCAidGVzdHdlYnNldHRpbmdzLzAuMSIp
OwotICAgIGdfZnJlZSh1c2VyQWdlbnQpOwotCi0gICAgdXNlckFnZW50ID0gd2Via2l0V2ViU2V0
dGluZ3NVc2VyQWdlbnRGb3JVUkkoc2V0dGluZ3MsICJodHRwOi8vZ21haWwuY29tLyIpOwotICAg
IGdfYXNzZXJ0X2NtcHN0cih1c2VyQWdlbnQsID09LCAidGVzdHdlYnNldHRpbmdzLzAuMSIpOwot
ICAgIGdfZnJlZSh1c2VyQWdlbnQpOwotCi0gICAgdXNlckFnZW50ID0gd2Via2l0V2ViU2V0dGlu
Z3NVc2VyQWdlbnRGb3JVUkkoc2V0dGluZ3MsICJodHRwOi8vd3d3Lmdvb2dsZS5jb20uYnIvIik7
Ci0gICAgZ19hc3NlcnRfY21wc3RyKHVzZXJBZ2VudCwgPT0sICJ0ZXN0d2Vic2V0dGluZ3MvMC4x
Iik7Ci0gICAgZ19mcmVlKHVzZXJBZ2VudCk7Ci0KLSAgICB1c2VyQWdlbnQgPSB3ZWJraXRXZWJT
ZXR0aW5nc1VzZXJBZ2VudEZvclVSSShzZXR0aW5ncywgImh0dHA6Ly9jYWxlbmRhci5nb29nbGUu
Y29tLyIpOworICAgIGdfb2JqZWN0X2dldChzZXR0aW5ncywidXNlci1hZ2VudCIsICZ1c2VyQWdl
bnQsIE5VTEwpOwogICAgIGdfYXNzZXJ0X2NtcHN0cih1c2VyQWdlbnQsID09LCAidGVzdHdlYnNl
dHRpbmdzLzAuMSIpOwogICAgIGdfZnJlZSh1c2VyQWdlbnQpOwogCi0gICAgLyogTm93IGVuYWJs
ZSBxdWlya3MgaGFuZGxpbmcgKi8KLSAgICBnX29iamVjdF9zZXQoc2V0dGluZ3MsICJlbmFibGUt
c2l0ZS1zcGVjaWZpYy1xdWlya3MiLCBUUlVFLCBOVUxMKTsKLQotICAgIHRlc3Rfbm9uX3F1aXJr
eV91c2VyX2FnZW50cyhzZXR0aW5ncywgZGVmYXVsdFVzZXJBZ2VudCk7Ci0KLSAgICBnX29iamVj
dF9zZXQoc2V0dGluZ3MsICJ1c2VyLWFnZW50IiwgInRlc3R3ZWJzZXR0aW5ncy8wLjEiLCBOVUxM
KTsKLQotICAgIHVzZXJBZ2VudCA9IHdlYmtpdFdlYlNldHRpbmdzVXNlckFnZW50Rm9yVVJJKHNl
dHRpbmdzLCAiaHR0cDovL3d3dy5nb29nbGUuY29tLyIpOwotICAgIGdfYXNzZXJ0X2NtcHN0cih1
c2VyQWdlbnQsID09LCBkZWZhdWx0VXNlckFnZW50KTsKLSAgICBnX2ZyZWUodXNlckFnZW50KTsK
LQotICAgIHVzZXJBZ2VudCA9IHdlYmtpdFdlYlNldHRpbmdzVXNlckFnZW50Rm9yVVJJKHNldHRp
bmdzLCAiaHR0cDovL2dtYWlsLmNvbS8iKTsKKyAgICAvLyBzZXR0aW5nIGl0IHRvIE5VTEwgb3Ig
YW4gZW1wdHkgdmFsdWUgc2hvdWxkIGdpdmUgdXMgdGhlIGRlZmF1bHQgVUEgc3RyaW5nCisgICAg
dXNlckFnZW50ID0gMDsKKyAgICBnX29iamVjdF9zZXQoc2V0dGluZ3MsICJ1c2VyLWFnZW50Iiwg
MCwgTlVMTCk7CisgICAgZ19vYmplY3RfZ2V0KHNldHRpbmdzLCJ1c2VyLWFnZW50IiwgJnVzZXJB
Z2VudCwgTlVMTCk7CiAgICAgZ19hc3NlcnRfY21wc3RyKHVzZXJBZ2VudCwgPT0sIGRlZmF1bHRV
c2VyQWdlbnQpOwogICAgIGdfZnJlZSh1c2VyQWdlbnQpOwogCi0gICAgdXNlckFnZW50ID0gd2Vi
a2l0V2ViU2V0dGluZ3NVc2VyQWdlbnRGb3JVUkkoc2V0dGluZ3MsICJodHRwOi8vd3d3Lmdvb2ds
ZS5jb20uYnIvIik7CisgICAgdXNlckFnZW50ID0gMDsKKyAgICBnX29iamVjdF9zZXQoc2V0dGlu
Z3MsICJ1c2VyLWFnZW50IiwgIiIsIE5VTEwpOworICAgIGdfb2JqZWN0X2dldChzZXR0aW5ncywi
dXNlci1hZ2VudCIsICZ1c2VyQWdlbnQsIE5VTEwpOwogICAgIGdfYXNzZXJ0X2NtcHN0cih1c2Vy
QWdlbnQsID09LCBkZWZhdWx0VXNlckFnZW50KTsKICAgICBnX2ZyZWUodXNlckFnZW50KTsKIAot
ICAgIHVzZXJBZ2VudCA9IHdlYmtpdFdlYlNldHRpbmdzVXNlckFnZW50Rm9yVVJJKHNldHRpbmdz
LCAiaHR0cDovL3d3dy5nb29nbGUudWsubm90LmNvbS5ici8iKTsKLSAgICBnX2Fzc2VydF9jbXBz
dHIodXNlckFnZW50LCA9PSwgInRlc3R3ZWJzZXR0aW5ncy8wLjEiKTsKLSAgICBnX2ZyZWUodXNl
ckFnZW50KTsKLQogICAgIGdfZnJlZShkZWZhdWx0VXNlckFnZW50KTsKICAgICBnX29iamVjdF91
bnJlZih3ZWJWaWV3KTsKIH0K
</data>
<flag name="review"
          id="259087"
          type_id="1"
          status="+"
          setter="svillar"
    />
          </attachment>
      

    </bug>

</bugzilla>