<?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>20806</bug_id>
          
          <creation_ts>2008-09-12 11:53:22 -0700</creation_ts>
          <short_desc>Referer is not sent when going back to an uncached page (blank page at kin.naver.com)</short_desc>
          <delta_ts>2009-01-28 22:29:38 -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>History</component>
          <version>525.x (Safari 3.1)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>http://kin.naver.com/list/list_kinup.php?d1id=6&amp;dir_id=601</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>13631</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jungshik Shin">jshin</reporter>
          <assigned_to name="Eric Roman">eroman</assigned_to>
          <cc>andersca</cc>
    
    <cc>ap</cc>
    
    <cc>eroman</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>90952</commentid>
    <comment_count>0</comment_count>
    <who name="Jungshik Shin">jshin</who>
    <bug_when>2008-09-12 11:53:22 -0700</bug_when>
    <thetext>How to reproduce:

1. Go to http://kin.naver.com/list/list_kinup.php?d1id=6&amp;dir_id=601 
2. Around the bottom of the page, there&apos;s a list of pages (1 2 3 4 5 6 
...). Click on one of them (other than &apos;1&apos;) to go to the corresponding 
page.
3. If you click on &apos;3&apos;, the url will be http://kin.naver.com/list/list_kinup.phpd1id=6&amp;dir_id=601&amp;sort=kinup_point&amp;
page=3

4. Click on the 2nd column from the left in the list of Q&amp;A items with 
&apos;thumb-up&apos; icons in the rightmost column.

5. The url will be something like this:
http://kin.naver.com/detail/detail.php?
d1id=6&amp;dir_id=60101&amp;eid=jbyUO8ElqrWTXbxk7ObSqBSon7Nxrg8Z&amp;l_url=L2xpc3QvbGlz
dF9raW51cC5waHA/ZDFpZD02JmRpcl9pZD02MDEmc29ydD1raW51cF9wb2ludCZwYWdlPTM=

6. Press &apos;the back button&apos;.

7. The url in the address bar is 
http://kin.naver.com/list/list_kinup.phpd1id=6&amp;dir_id=601&amp;sort=kinup_point&amp;
page=3

Exactly the same as what you had in step 3

What&apos;s expected:

In step 7, get the same page as shown in step 3

Actual result:

In step 7, a blank screen is shown.   

Additional info : 
IE 7 and Firefox do not have this issue. Chrome has the same issue ( http://code.google.com/p/chromium/issues/detail?id=2189 : Chrome shows HTTP 404 error page. ). So does Safari with webkit trunk build on Mac OS 10.4.11</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>90953</commentid>
    <comment_count>1</comment_count>
    <who name="Jungshik Shin">jshin</who>
    <bug_when>2008-09-12 11:56:04 -0700</bug_when>
    <thetext>FYI : Naver is #1 portal in Korea with ~70% market share. 

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>91048</commentid>
    <comment_count>2</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2008-09-13 07:48:42 -0700</bug_when>
    <thetext>A blank page is what this server gives for the page 3 URL when loading it manually, too. Compare output of

curl -i &quot;http://kin.naver.com/list/list_kinup.php?d1id=6&amp;dir_id=601&amp;sort=kinup_point&amp;page=3&quot; --header &quot;Referer: http://kin.naver.com/list/list_kinup.php?d1id=6&amp;dir_id=601&quot;

and 

curl -i &quot;http://kin.naver.com/list/list_kinup.php?d1id=6&amp;dir_id=601&amp;sort=kinup_point&amp;page=3&quot;

So, the issue is two-fold. First, the page doesn&apos;t go to back/forward cache, that&apos;s bug 13631. Second, we don&apos;t re-send Referer header when going back involves a reload. I think that we should fix both.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>91240</commentid>
    <comment_count>3</comment_count>
    <who name="Jungshik Shin">jshin</who>
    <bug_when>2008-09-15 14:36:01 -0700</bug_when>
    <thetext>Thanks for the diagnosis. 

So, if we go directly to &apos;http://kin.naver.com/list/list_kinup.php?d1id=6&amp;dir_id=601&amp;sort=kinup_point&amp;page=3&apos;, we&apos;ll get 404 error. 

Ick ...   I guess I know why Naver does that ....

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>97777</commentid>
    <comment_count>4</comment_count>
      <attachid>24935</attachid>
    <who name="Eric Roman">eroman</who>
    <bug_when>2008-11-05 22:27:21 -0800</bug_when>
    <thetext>Created attachment 24935
Preserve the request referrer across history navigations.

This patch replaces the two referrer fields in HistoryItem (m_rssFeedReferrer, m_formReferrer) with a single generic one (m_referrer). It doesn&apos;t look like the distinction was necessary.

I am not sure how to write a test for this, ideas welcome (in particular how to avoid page cache in layout test?)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>97779</commentid>
    <comment_count>5</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2008-11-05 23:02:13 -0800</bug_when>
    <thetext>Page cache is currently always disabled in DumpRenderTree. There are also many examples of reasons of documents not to use it in bug 4123.

But these are all bugs that need to be fixed some day.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>98224</commentid>
    <comment_count>6</comment_count>
      <attachid>25032</attachid>
    <who name="Eric Roman">eroman</who>
    <bug_when>2008-11-10 16:21:06 -0800</bug_when>
    <thetext>Created attachment 25032
Send referrer on history navigations.

Added layout test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>99099</commentid>
    <comment_count>7</comment_count>
      <attachid>25032</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2008-11-17 13:38:56 -0800</bug_when>
    <thetext>Comment on attachment 25032
Send referrer on history navigations.

This looks good from my perspective, but I think Bradee or Anders will need to chime in.  Apple will need to do an internal code search before removing the RSSReferrer methods (which could be changed to just grab referrer() (possibly conditionally on if it&apos;s an RSS url) if necessary as a crutch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>101877</commentid>
    <comment_count>8</comment_count>
      <attachid>25032</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2008-12-08 15:49:29 -0800</bug_when>
    <thetext>Comment on attachment 25032
Send referrer on history navigations.

On second thought, I would suggest *not* removing the RSSFeedReferrer methods, since that will make this harder to review.  The Apple folks who maintain those APIs should take care of that.  You should just fix those methods to do the right thing, and then the Apple folks can come back and remove them when they&apos;re not needed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>104935</commentid>
    <comment_count>9</comment_count>
      <attachid>26534</attachid>
    <who name="Eric Roman">eroman</who>
    <bug_when>2009-01-08 14:12:17 -0800</bug_when>
    <thetext>Created attachment 26534
Send referrer on history navigations.

&gt; I would suggest *not* removing the RSSFeedReferrer methods,
&gt; since that will make this harder to review.  The Apple folks who maintain those
&gt; APIs should take care of that.

Done.
I removed the deletion of the &quot;rss&quot; and &quot;form&quot; referrers, and marked them as deprecated instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>104958</commentid>
    <comment_count>10</comment_count>
      <attachid>26543</attachid>
    <who name="Eric Roman">eroman</who>
    <bug_when>2009-01-08 16:22:59 -0800</bug_when>
    <thetext>Created attachment 26543
Send referrer on history navigations.

I had misunderstood Eric Seidel&apos;s previous comment.
This time it should be what he had suggested.

Do I also need to add the new symbol to WebCore.order ?

Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>104967</commentid>
    <comment_count>11</comment_count>
      <attachid>26543</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-01-08 16:46:08 -0800</bug_when>
    <thetext>Comment on attachment 26543
Send referrer on history navigations.

Apple maintains the order files.  They&apos;ll get regenerated when necessary.  Missing symbols from an order file just won&apos;t get sorted to the front of the linked binary.

This patch looks good to me, but ideally someone from Apple would comment about if this could have unintended consequences for RSS stuff.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>106525</commentid>
    <comment_count>12</comment_count>
    <who name="Eric Roman">eroman</who>
    <bug_when>2009-01-21 15:23:59 -0800</bug_when>
    <thetext>ping. Any feedback on this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>106546</commentid>
    <comment_count>13</comment_count>
      <attachid>26543</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-01-21 17:01:22 -0800</bug_when>
    <thetext>Comment on attachment 26543
Send referrer on history navigations.

This looks fine to me.  r=me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>107438</commentid>
    <comment_count>14</comment_count>
    <who name="Eric Roman">eroman</who>
    <bug_when>2009-01-28 17:11:52 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/40132</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>107459</commentid>
    <comment_count>15</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2009-01-28 22:29:38 -0800</bug_when>
    <thetext>So, this was landed a while ago, marking as FIXED.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>24935</attachid>
            <date>2008-11-05 22:27:21 -0800</date>
            <delta_ts>2008-11-10 16:21:06 -0800</delta_ts>
            <desc>Preserve the request referrer across history navigations.</desc>
            <filename>referrer-historyitem.txt</filename>
            <type>text/plain</type>
            <size>12516</size>
            <attacher name="Eric Roman">eroman</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAzODE0OSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjMgQEAKKzIwMDgtMTEtMDUgIEVyaWMgUm9tYW4gIDxlcm9tYW5AY2hyb21pdW0u
b3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDgwNgorICAgICAgICBTZW5k
IHJlZmVycmVyIG9uIGJhY2sgbmF2aWdhdGlvbnMuCisKKyAgICAgICAgV0FSTklORzogTk8gVEVT
VCBDQVNFUyBBRERFRCBPUiBDSEFOR0VECisKKyAgICAgICAgKiBXZWJDb3JlLmJhc2UuZXhwOgor
ICAgICAgICAqIFdlYkNvcmUub3JkZXI6CisgICAgICAgICogaGlzdG9yeS9IaXN0b3J5SXRlbS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpIaXN0b3J5SXRlbTo6SGlzdG9yeUl0ZW0pOgorICAgICAg
ICAoV2ViQ29yZTo6SGlzdG9yeUl0ZW06OnJlZmVycmVyKToKKyAgICAgICAgKFdlYkNvcmU6Okhp
c3RvcnlJdGVtOjpzZXRSZWZlcnJlcik6CisgICAgICAgIChXZWJDb3JlOjpIaXN0b3J5SXRlbTo6
c2V0Rm9ybUluZm9Gcm9tUmVxdWVzdCk6CisgICAgICAgICogaGlzdG9yeS9IaXN0b3J5SXRlbS5o
OgorICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpG
cmFtZUxvYWRlcjo6bG9hZEl0ZW0pOgorCiAyMDA4LTExLTA1ICBBbnR0aSBLb2l2aXN0byAgPGFu
dHRpQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYW4gQmVybnN0ZWluLgpJbmRl
eDogV2ViQ29yZS9XZWJDb3JlLmJhc2UuZXhwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvV2ViQ29y
ZS5iYXNlLmV4cAkocmV2aXNpb24gMzgxMTgpCisrKyBXZWJDb3JlL1dlYkNvcmUuYmFzZS5leHAJ
KHdvcmtpbmcgY29weSkKQEAgLTE4MSw3ICsxODEsNiBAQCBfX1pON1dlYkNvcmUxMUhpc3RvcnlJ
dGVtMTRzZXRTY3JvbGxQb2luCiBfX1pON1dlYkNvcmUxMUhpc3RvcnlJdGVtMTVzZXRJc1Rhcmdl
dEl0ZW1FYgogX19aTjdXZWJDb3JlMTFIaXN0b3J5SXRlbTE3c2V0QWx0ZXJuYXRlVGl0bGVFUktO
U182U3RyaW5nRQogX19aTjdXZWJDb3JlMTFIaXN0b3J5SXRlbTE4c2V0TGFzdFZpc2l0ZWRUaW1l
RWQKLV9fWk43V2ViQ29yZTExSGlzdG9yeUl0ZW0xOHNldFJTU0ZlZWRSZWZlcnJlckVSS05TXzZT
dHJpbmdFCiBfX1pON1dlYkNvcmUxMUhpc3RvcnlJdGVtMjBzZXRPcmlnaW5hbFVSTFN0cmluZ0VS
S05TXzZTdHJpbmdFCiBfX1pON1dlYkNvcmUxMUhpc3RvcnlJdGVtMjBzZXRUcmFuc2llbnRQcm9w
ZXJ0eUVSS05TXzZTdHJpbmdFUDExb2JqY19vYmplY3QKIF9fWk43V2ViQ29yZTExSGlzdG9yeUl0
ZW0yMm1lcmdlQXV0b0NvbXBsZXRlSGludHNFUFMwXwpAQCAtNzAxLDcgKzcwMCw2IEBAIF9fWk5L
N1dlYkNvcmUxMUhpc3RvcnlJdGVtMTFzY3JvbGxQb2ludEUKIF9fWk5LN1dlYkNvcmUxMUhpc3Rv
cnlJdGVtMTJpc1RhcmdldEl0ZW1FdgogX19aTks3V2ViQ29yZTExSGlzdG9yeUl0ZW0xNGFsdGVy
bmF0ZVRpdGxlRXYKIF9fWk5LN1dlYkNvcmUxMUhpc3RvcnlJdGVtMTVsYXN0VmlzaXRlZFRpbWVF
dgotX19aTks3V2ViQ29yZTExSGlzdG9yeUl0ZW0xNXJzc0ZlZWRSZWZlcnJlckV2CiBfX1pOSzdX
ZWJDb3JlMTFIaXN0b3J5SXRlbTE3Y2hpbGRJdGVtV2l0aE5hbWVFUktOU182U3RyaW5nRQogX19a
Tks3V2ViQ29yZTExSGlzdG9yeUl0ZW0xN29yaWdpbmFsVVJMU3RyaW5nRXYKIF9fWk5LN1dlYkNv
cmUxMUhpc3RvcnlJdGVtMjBnZXRUcmFuc2llbnRQcm9wZXJ0eUVSS05TXzZTdHJpbmdFCkluZGV4
OiBXZWJDb3JlL1dlYkNvcmUub3JkZXIKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJDb3JlLm9y
ZGVyCShyZXZpc2lvbiAzODExOCkKKysrIFdlYkNvcmUvV2ViQ29yZS5vcmRlcgkod29ya2luZyBj
b3B5KQpAQCAtNjUxOSw3ICs2NTE5LDYgQEAgX19aTjdXZWJDb3JlMTRSZW5kZXJUaGVtZU1hYzE2
cGFpbnRTbGlkZQogX19aTks3V2ViQ29yZTE0UmVuZGVyVGhlbWVNYWMyMXNsaWRlclRodW1iSG9y
aXpvbnRhbEV2CiBfX1pOSzdXZWJDb3JlMTJSZW5kZXJTbGlkZXIxMGluRHJhZ01vZGVFdgogX19a
Tks3V2ViQ29yZTEyUmVuZGVyT2JqZWN0MTRjYXJldE1heE9mZnNldEV2Ci1fX1pOSzdXZWJDb3Jl
MTFIaXN0b3J5SXRlbTE1cnNzRmVlZFJlZmVycmVyRXYKIF9fWk43V2ViQ29yZTExRnJhbWVMb2Fk
ZXI2cmVsb2FkRXYKIF9fWk43V2ViQ29yZTE3UmVuZGVyRmxleGlibGVCb3hEMUV2CiBfX1pON1dl
YkNvcmUxMUVsbGlwc2lzQm94RDFFdgpAQCAtODYwMiw3ICs4NjAxLDYgQEAgX19aTjdXZWJDb3Jl
N01hcnF1ZWUxNWNvbXB1dGVQb3NpdGlvbkVOUwogX19aTjdXZWJDb3JlN01hcnF1ZWU1c3RhcnRF
dgogX19aTjdXZWJDb3JlNVRpbWVySU5TXzdNYXJxdWVlRUU1ZmlyZWRFdgogX19aTjdXZWJDb3Jl
N01hcnF1ZWUxMHRpbWVyRmlyZWRFUE5TXzVUaW1lcklTMF9FRQotX19aTks3V2ViQ29yZTExSGlz
dG9yeUl0ZW0xMmZvcm1SZWZlcnJlckV2CiBfX1pOSzdXZWJDb3JlMTFIaXN0b3J5SXRlbTE1Zm9y
bUNvbnRlbnRUeXBlRXYKIF9fWk43V2ViQ29yZTE0UmVzb3VyY2VIYW5kbGUxN3dpbGxMb2FkRnJv
bUNhY2hlRVJOU18xNVJlc291cmNlUmVxdWVzdEUKIF9fWk5LN1dlYkNvcmUxNUhUTUxMaW5rRWxl
bWVudDE0aXNVUkxBdHRyaWJ1dGVFUE5TXzlBdHRyaWJ1dGVFCkluZGV4OiBXZWJDb3JlL2hpc3Rv
cnkvSGlzdG9yeUl0ZW0uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaGlzdG9yeS9IaXN0b3J5
SXRlbS5jcHAJKHJldmlzaW9uIDM4MTE4KQorKysgV2ViQ29yZS9oaXN0b3J5L0hpc3RvcnlJdGVt
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTAxLDYgKzEwMSw3IEBAIGlubGluZSBIaXN0b3J5SXRl
bTo6SGlzdG9yeUl0ZW0oY29uc3QgSGkKICAgICA6IFJlZkNvdW50ZWQ8SGlzdG9yeUl0ZW0+KCkK
ICAgICAsIG1fdXJsU3RyaW5nKGl0ZW0ubV91cmxTdHJpbmcpCiAgICAgLCBtX29yaWdpbmFsVVJM
U3RyaW5nKGl0ZW0ubV9vcmlnaW5hbFVSTFN0cmluZykKKyAgICAsIG1fcmVmZXJyZXIoaXRlbS5t
X3JlZmVycmVyKQogICAgICwgbV90YXJnZXQoaXRlbS5tX3RhcmdldCkKICAgICAsIG1fcGFyZW50
KGl0ZW0ubV9wYXJlbnQpCiAgICAgLCBtX3RpdGxlKGl0ZW0ubV90aXRsZSkKQEAgLTExMSw4ICsx
MTIsNiBAQCBpbmxpbmUgSGlzdG9yeUl0ZW06Okhpc3RvcnlJdGVtKGNvbnN0IEhpCiAgICAgLCBt
X2lzVGFyZ2V0SXRlbShpdGVtLm1faXNUYXJnZXRJdGVtKQogICAgICwgbV92aXNpdENvdW50KGl0
ZW0ubV92aXNpdENvdW50KQogICAgICwgbV9mb3JtQ29udGVudFR5cGUoaXRlbS5tX2Zvcm1Db250
ZW50VHlwZSkKLSAgICAsIG1fZm9ybVJlZmVycmVyKGl0ZW0ubV9mb3JtUmVmZXJyZXIpCi0gICAg
LCBtX3Jzc0ZlZWRSZWZlcnJlcihpdGVtLm1fcnNzRmVlZFJlZmVycmVyKQogewogICAgIGlmIChp
dGVtLm1fZm9ybURhdGEpCiAgICAgICAgIG1fZm9ybURhdGEgPSBpdGVtLm1fZm9ybURhdGEtPmNv
cHkoKTsKQEAgLTE3MSw2ICsxNzAsMTEgQEAgS1VSTCBIaXN0b3J5SXRlbTo6b3JpZ2luYWxVUkwo
KSBjb25zdAogICAgIHJldHVybiBLVVJMKG1fb3JpZ2luYWxVUkxTdHJpbmcpOwogfQogCitjb25z
dCBTdHJpbmcmIEhpc3RvcnlJdGVtOjpyZWZlcnJlcigpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1f
cmVmZXJyZXI7Cit9CisKIGNvbnN0IFN0cmluZyYgSGlzdG9yeUl0ZW06OnRhcmdldCgpIGNvbnN0
CiB7CiAgICAgcmV0dXJuIG1fdGFyZ2V0OwpAQCAtMjExLDYgKzIxNSwxMiBAQCB2b2lkIEhpc3Rv
cnlJdGVtOjpzZXRPcmlnaW5hbFVSTFN0cmluZyhjCiAgICAgbm90aWZ5SGlzdG9yeUl0ZW1DaGFu
Z2VkKCk7CiB9CiAKK3ZvaWQgSGlzdG9yeUl0ZW06OnNldFJlZmVycmVyKGNvbnN0IFN0cmluZyYg
cmVmZXJyZXIpCit7CisgICAgbV9yZWZlcnJlciA9IHJlZmVycmVyOworICAgIG5vdGlmeUhpc3Rv
cnlJdGVtQ2hhbmdlZCgpOworfQorCiB2b2lkIEhpc3RvcnlJdGVtOjpzZXRUaXRsZShjb25zdCBT
dHJpbmcmIHRpdGxlKQogewogICAgIG1fdGl0bGUgPSB0aXRsZTsKQEAgLTM0OSwzMyArMzU5LDE4
IEBAIFN0cmluZyBIaXN0b3J5SXRlbTo6Zm9ybUNvbnRlbnRUeXBlKCkgY28KICAgICByZXR1cm4g
bV9mb3JtQ29udGVudFR5cGU7CiB9CiAKLVN0cmluZyBIaXN0b3J5SXRlbTo6Zm9ybVJlZmVycmVy
KCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9mb3JtUmVmZXJyZXI7Ci19Ci0KLVN0cmluZyBIaXN0
b3J5SXRlbTo6cnNzRmVlZFJlZmVycmVyKCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9yc3NGZWVk
UmVmZXJyZXI7Ci19Ci0KLXZvaWQgSGlzdG9yeUl0ZW06OnNldFJTU0ZlZWRSZWZlcnJlcihjb25z
dCBTdHJpbmcmIHJlZmVycmVyKQotewotICAgIG1fcnNzRmVlZFJlZmVycmVyID0gcmVmZXJyZXI7
Ci19Ci0KIHZvaWQgSGlzdG9yeUl0ZW06OnNldEZvcm1JbmZvRnJvbVJlcXVlc3QoY29uc3QgUmVz
b3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQogeworICAgIG1fcmVmZXJyZXIgPSByZXF1ZXN0Lmh0dHBS
ZWZlcnJlcigpOworICAgIAogICAgIGlmIChlcXVhbElnbm9yaW5nQ2FzZShyZXF1ZXN0Lmh0dHBN
ZXRob2QoKSwgIlBPU1QiKSkgewogICAgICAgICAvLyBGSVhNRTogRXZlbnR1YWxseSB3ZSBoYXZl
IHRvIG1ha2UgdGhpcyBzbWFydCBlbm91Z2ggdG8gaGFuZGxlIHRoZSBjYXNlIHdoZXJlCiAgICAg
ICAgIC8vIHdlIGhhdmUgYSBzdHJlYW0gZm9yIHRoZSBib2R5IHRvIGhhbmRsZSB0aGUgImRhdGEg
aW50ZXJzcGVyc2VkIHdpdGggZmlsZXMiIGZlYXR1cmUuCiAgICAgICAgIG1fZm9ybURhdGEgPSBy
ZXF1ZXN0Lmh0dHBCb2R5KCk7CiAgICAgICAgIG1fZm9ybUNvbnRlbnRUeXBlID0gcmVxdWVzdC5o
dHRwQ29udGVudFR5cGUoKTsKLSAgICAgICAgbV9mb3JtUmVmZXJyZXIgPSByZXF1ZXN0Lmh0dHBS
ZWZlcnJlcigpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIG1fZm9ybURhdGEgPSAwOwogICAgICAg
ICBtX2Zvcm1Db250ZW50VHlwZSA9IFN0cmluZygpOwotICAgICAgICBtX2Zvcm1SZWZlcnJlciA9
IFN0cmluZygpOwogICAgIH0KIH0KIApJbmRleDogV2ViQ29yZS9oaXN0b3J5L0hpc3RvcnlJdGVt
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9oaXN0b3J5L0hpc3RvcnlJdGVtLmgJKHJldmlzaW9u
IDM4MTE4KQorKysgV2ViQ29yZS9oaXN0b3J5L0hpc3RvcnlJdGVtLmgJKHdvcmtpbmcgY29weSkK
QEAgLTk3LDEzICs5NywxMiBAQCBwdWJsaWM6IAogICAgIGNvbnN0IFN0cmluZyYgcGFyZW50KCkg
Y29uc3Q7CiAgICAgS1VSTCB1cmwoKSBjb25zdDsKICAgICBLVVJMIG9yaWdpbmFsVVJMKCkgY29u
c3Q7CisgICAgY29uc3QgU3RyaW5nJiByZWZlcnJlcigpIGNvbnN0OwogICAgIGNvbnN0IFN0cmlu
ZyYgdGFyZ2V0KCkgY29uc3Q7CiAgICAgYm9vbCBpc1RhcmdldEl0ZW0oKSBjb25zdDsKICAgICAK
ICAgICBGb3JtRGF0YSogZm9ybURhdGEoKTsKICAgICBTdHJpbmcgZm9ybUNvbnRlbnRUeXBlKCkg
Y29uc3Q7Ci0gICAgU3RyaW5nIGZvcm1SZWZlcnJlcigpIGNvbnN0OwotICAgIFN0cmluZyByc3NG
ZWVkUmVmZXJyZXIoKSBjb25zdDsKICAgICAKICAgICBpbnQgdmlzaXRDb3VudCgpIGNvbnN0Owog
CkBAIC0xMTksNiArMTE4LDcgQEAgcHVibGljOiAKICAgICB2b2lkIHNldFVSTChjb25zdCBLVVJM
Jik7CiAgICAgdm9pZCBzZXRVUkxTdHJpbmcoY29uc3QgU3RyaW5nJik7CiAgICAgdm9pZCBzZXRP
cmlnaW5hbFVSTFN0cmluZyhjb25zdCBTdHJpbmcmKTsKKyAgICB2b2lkIHNldFJlZmVycmVyKGNv
bnN0IFN0cmluZyYpOwogICAgIHZvaWQgc2V0VGFyZ2V0KGNvbnN0IFN0cmluZyYpOwogICAgIHZv
aWQgc2V0UGFyZW50KGNvbnN0IFN0cmluZyYpOwogICAgIHZvaWQgc2V0VGl0bGUoY29uc3QgU3Ry
aW5nJik7CkBAIC0xMjYsNyArMTI2LDYgQEAgcHVibGljOiAKICAgICAKICAgICB2b2lkIHNldEZv
cm1JbmZvRnJvbVJlcXVlc3QoY29uc3QgUmVzb3VyY2VSZXF1ZXN0Jik7CiAKLSAgICB2b2lkIHNl
dFJTU0ZlZWRSZWZlcnJlcihjb25zdCBTdHJpbmcmKTsKICAgICB2b2lkIHNldFZpc2l0Q291bnQo
aW50KTsKIAogICAgIHZvaWQgYWRkQ2hpbGRJdGVtKFBhc3NSZWZQdHI8SGlzdG9yeUl0ZW0+KTsK
QEAgLTE3Myw2ICsxNzIsNyBAQCBwcml2YXRlOgogICAgIAogICAgIFN0cmluZyBtX3VybFN0cmlu
ZzsKICAgICBTdHJpbmcgbV9vcmlnaW5hbFVSTFN0cmluZzsKKyAgICBTdHJpbmcgbV9yZWZlcnJl
cjsKICAgICBTdHJpbmcgbV90YXJnZXQ7CiAgICAgU3RyaW5nIG1fcGFyZW50OwogICAgIFN0cmlu
ZyBtX3RpdGxlOwpAQCAtMTkyLDEwICsxOTIsNiBAQCBwcml2YXRlOgogICAgIC8vIGluZm8gdXNl
ZCB0byByZXBvc3QgZm9ybSBkYXRhCiAgICAgUmVmUHRyPEZvcm1EYXRhPiBtX2Zvcm1EYXRhOwog
ICAgIFN0cmluZyBtX2Zvcm1Db250ZW50VHlwZTsKLSAgICBTdHJpbmcgbV9mb3JtUmVmZXJyZXI7
Ci0gICAgCi0gICAgLy8gaW5mbyB1c2VkIHRvIHN1cHBvcnQgUlNTIGZlZWRzCi0gICAgU3RyaW5n
IG1fcnNzRmVlZFJlZmVycmVyOwogCiAgICAgLy8gUGFnZUNhY2hlIGNvbnRyb2xzIHRoZXNlIGZp
ZWxkcy4KICAgICBIaXN0b3J5SXRlbSogbV9uZXh0OwpJbmRleDogV2ViQ29yZS9sb2FkZXIvRnJh
bWVMb2FkZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNw
cAkocmV2aXNpb24gMzgxMTgpCisrKyBXZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTQzNDUsNiArNDM0NSw5IEBAIHZvaWQgRnJhbWVMb2FkZXI6OmxvYWRJ
dGVtKEhpc3RvcnlJdGVtKiAKICAgICAgICAgaWYgKCFpblBhZ2VDYWNoZSkgewogICAgICAgICAg
ICAgUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QoaXRlbVVSTCk7CiAKKyAgICAgICAgICAgIGlmICgh
aXRlbS0+cmVmZXJyZXIoKS5pc051bGwoKSkKKyAgICAgICAgICAgICAgICByZXF1ZXN0LnNldEhU
VFBSZWZlcnJlcihpdGVtLT5yZWZlcnJlcigpKTsKKyAgICAgICAgICAgIAogICAgICAgICAgICAg
Ly8gSWYgdGhpcyB3YXMgYSByZXBvc3QgdGhhdCBmYWlsZWQgdGhlIHBhZ2UgY2FjaGUsIHdlIG1p
Z2h0IHRyeSB0byByZXBvc3QgdGhlIGZvcm0uCiAgICAgICAgICAgICBOYXZpZ2F0aW9uQWN0aW9u
IGFjdGlvbjsKICAgICAgICAgICAgIGlmIChmb3JtRGF0YSkgewpAQCAtNDM1MiwxMCArNDM1NSw5
IEBAIHZvaWQgRnJhbWVMb2FkZXI6OmxvYWRJdGVtKEhpc3RvcnlJdGVtKiAKICAgICAgICAgICAg
ICAgICBmb3JtRGF0YS0+Z2VuZXJhdGVGaWxlcyhtX2ZyYW1lLT5wYWdlKCktPmNocm9tZSgpLT5j
bGllbnQoKSk7CiAKICAgICAgICAgICAgICAgICByZXF1ZXN0LnNldEhUVFBNZXRob2QoIlBPU1Qi
KTsKLSAgICAgICAgICAgICAgICByZXF1ZXN0LnNldEhUVFBSZWZlcnJlcihpdGVtLT5mb3JtUmVm
ZXJyZXIoKSk7CiAgICAgICAgICAgICAgICAgcmVxdWVzdC5zZXRIVFRQQm9keShmb3JtRGF0YSk7
CiAgICAgICAgICAgICAgICAgcmVxdWVzdC5zZXRIVFRQQ29udGVudFR5cGUoaXRlbS0+Zm9ybUNv
bnRlbnRUeXBlKCkpOwotICAgICAgICAgICAgICAgIFJlZlB0cjxTZWN1cml0eU9yaWdpbj4gc2Vj
dXJpdHlPcmlnaW4gPSBTZWN1cml0eU9yaWdpbjo6Y3JlYXRlRnJvbVN0cmluZyhpdGVtLT5mb3Jt
UmVmZXJyZXIoKSk7CisgICAgICAgICAgICAgICAgUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiBzZWN1
cml0eU9yaWdpbiA9IFNlY3VyaXR5T3JpZ2luOjpjcmVhdGVGcm9tU3RyaW5nKGl0ZW0tPnJlZmVy
cmVyKCkpOwogICAgICAgICAgICAgICAgIGFkZEhUVFBPcmlnaW5JZk5lZWRlZChyZXF1ZXN0LCBz
ZWN1cml0eU9yaWdpbi0+dG9TdHJpbmcoKSk7CiAgICAgICAgIAogICAgICAgICAgICAgICAgIC8v
IEZJWE1FOiBTbGlnaHQgaGFjayB0byB0ZXN0IGlmIHRoZSBOU1VSTCBjYWNoZSBjb250YWlucyB0
aGUgcGFnZSB3ZSdyZSBnb2luZyB0by4KSW5kZXg6IFdlYktpdC9tYWMvQ2hhbmdlTG9nCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYktpdC9tYWMvQ2hhbmdlTG9nCShyZXZpc2lvbiAzODE0OSkKKysrIFdlYktp
dC9tYWMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTMgQEAKKzIwMDgtMTEt
MDUgIEVyaWMgUm9tYW4gIDxlcm9tYW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbW92ZSByc3NGZWVkUmVmZXJyZXIgZnJv
bSBXZWJIaXN0b3J5SXRlbS4KKworICAgICAgICAqIEhpc3RvcnkvV2ViSGlzdG9yeUl0ZW0ubW06
CisgICAgICAgICogSGlzdG9yeS9XZWJIaXN0b3J5SXRlbVByaXZhdGUuaDoKKyAgICAgICAgKiBX
ZWJLaXQub3JkZXI6CisKIDIwMDgtMTEtMDUgIEFuZGVycyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFw
cGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBNYXJrIFJvd2UuCkluZGV4OiBXZWJLaXQv
bWFjL1dlYktpdC5vcmRlcgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvbWFjL1dlYktpdC5vcmRlcgko
cmV2aXNpb24gMzgxMTgpCisrKyBXZWJLaXQvbWFjL1dlYktpdC5vcmRlcgkod29ya2luZyBjb3B5
KQpAQCAtMTAyNiw3ICsxMDI2LDYgQEAgX19aTjIwV2ViRnJhbWVMb2FkZXJDbGllbnQyOWludGVy
cnVwdEZvcgogLVtXZWJGcmFtZVBvbGljeUxpc3RlbmVyIGlnbm9yZV0KICtbTlNPYmplY3QoV2Vi
U2NyaXB0aW5nKSBpc0tleUV4Y2x1ZGVkRnJvbVdlYlNjcmlwdDpdCiAtW1dlYkljb25EYXRhYmFz
ZSBpY29uVVJMRm9yVVJMOl0KLS1bV2ViSGlzdG9yeUl0ZW0oV2ViUHJpdmF0ZSkgUlNTRmVlZFJl
ZmVycmVyXQogLVtXZWJWaWV3KFdlYklCQWN0aW9ucykgcmVsb2FkOl0KIC1bV2ViRnJhbWUgcmVs
b2FkXQogX19aTjE1V2ViQ2hyb21lQ2xpZW50N3VuZm9jdXNFdgpJbmRleDogV2ViS2l0L21hYy9I
aXN0b3J5L1dlYkhpc3RvcnlJdGVtLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9tYWMvSGlzdG9y
eS9XZWJIaXN0b3J5SXRlbS5tbQkocmV2aXNpb24gMzgxMTgpCisrKyBXZWJLaXQvbWFjL0hpc3Rv
cnkvV2ViSGlzdG9yeUl0ZW0ubW0JKHdvcmtpbmcgY29weSkKQEAgLTQzNSwxNiArNDM1LDYgQEAg
c3RhdGljIFdlYldpbmRvd1dhdGNoZXIgKl93aW5kb3dXYXRjaGVyIAogICAgIHJldHVybiBjb3Jl
KF9wcml2YXRlKS0+dmlzaXRDb3VudCgpOwogfQogCi0tIChOU1N0cmluZyAqKVJTU0ZlZWRSZWZl
cnJlcgotewotICAgIHJldHVybiBuc1N0cmluZ05pbElmRW1wdHkoY29yZShfcHJpdmF0ZSktPnJz
c0ZlZWRSZWZlcnJlcigpKTsKLX0KLQotLSAodm9pZClzZXRSU1NGZWVkUmVmZXJyZXI6KE5TU3Ry
aW5nICopcmVmZXJyZXIKLXsKLSAgICBjb3JlKF9wcml2YXRlKS0+c2V0UlNTRmVlZFJlZmVycmVy
KHJlZmVycmVyKTsKLX0KLQogLSAoTlNBcnJheSAqKWNoaWxkcmVuCiB7CiAgICAgQVNTRVJUX01B
SU5fVEhSRUFEKCk7CkluZGV4OiBXZWJLaXQvbWFjL0hpc3RvcnkvV2ViSGlzdG9yeUl0ZW1Qcml2
YXRlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L21hYy9IaXN0b3J5L1dlYkhpc3RvcnlJdGVtUHJp
dmF0ZS5oCShyZXZpc2lvbiAzODExOCkKKysrIFdlYktpdC9tYWMvSGlzdG9yeS9XZWJIaXN0b3J5
SXRlbVByaXZhdGUuaAkod29ya2luZyBjb3B5KQpAQCAtMzksOCArMzksNiBAQAogLSAoTlNVUkwg
KilVUkw7CiAtIChpbnQpdmlzaXRDb3VudDsKIAotLSAoTlNTdHJpbmcgKilSU1NGZWVkUmVmZXJy
ZXI7Ci0tICh2b2lkKXNldFJTU0ZlZWRSZWZlcnJlcjooTlNTdHJpbmcgKilyZWZlcnJlcjsKIC0g
KE5TQ2FsZW5kYXJEYXRlICopX2xhc3RWaXNpdGVkRGF0ZTsKIAogLSAoV2ViSGlzdG9yeUl0ZW0g
Kil0YXJnZXRJdGVtOwpJbmRleDogV2ViS2l0L3dpbi9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViS2l0L3dpbi9DaGFuZ2VMb2cJKHJldmlzaW9uIDM4MTQ5KQorKysgV2ViS2l0L3dpbi9DaGFu
Z2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxMiBAQAorMjAwOC0xMS0wNSAgRXJpYyBS
b21hbiAgPGVyb21hbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgUmVtb3ZlIHJzc0ZlZWRSZWZlcnJlciBmcm9tIFdlYkhpc3Rv
cnlJdGVtLgorCisgICAgICAgICogV2ViSGlzdG9yeUl0ZW0uY3BwOgorICAgICAgICAqIFdlYkhp
c3RvcnlJdGVtLmg6CisKIDIwMDgtMTEtMDUgIERhbiBCZXJuc3RlaW4gIDxtaXR6QGFwcGxlLmNv
bT4KIAogICAgICAgICBSZXZpZXdlZCBieSBKb2huIFN1bGxpdmFuLgpJbmRleDogV2ViS2l0L3dp
bi9XZWJIaXN0b3J5SXRlbS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L3dpbi9XZWJIaXN0b3J5
SXRlbS5jcHAJKHJldmlzaW9uIDM4MTE4KQorKysgV2ViS2l0L3dpbi9XZWJIaXN0b3J5SXRlbS5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTIyMywyMSArMjIzLDYgQEAgSFJFU1VMVCBTVERNRVRIT0RD
QUxMVFlQRSBXZWJIaXN0b3J5SXRlbQogICAgIHJldHVybiBTX09LOwogfQogCi1IUkVTVUxUIFNU
RE1FVEhPRENBTExUWVBFIFdlYkhpc3RvcnlJdGVtOjpSU1NGZWVkUmVmZXJyZXIoQlNUUiogdXJs
KQotewotICAgIEJTdHJpbmcgc3RyKG1faGlzdG9yeUl0ZW0tPnJzc0ZlZWRSZWZlcnJlcigpKTsK
LSAgICAqdXJsID0gc3RyLnJlbGVhc2UoKTsKLQotICAgIHJldHVybiBTX09LOwotfQotCi1IUkVT
VUxUIFNURE1FVEhPRENBTExUWVBFIFdlYkhpc3RvcnlJdGVtOjpzZXRSU1NGZWVkUmVmZXJyZXIo
QlNUUiB1cmwpCi17Ci0gICAgbV9oaXN0b3J5SXRlbS0+c2V0UlNTRmVlZFJlZmVycmVyKFN0cmlu
Zyh1cmwsIFN5c1N0cmluZ0xlbih1cmwpKSk7Ci0KLSAgICByZXR1cm4gU19PSzsKLX0KLQogSFJF
U1VMVCBTVERNRVRIT0RDQUxMVFlQRSBXZWJIaXN0b3J5SXRlbTo6aGFzUGFnZUNhY2hlKEJPT0wq
IC8qaGFzQ2FjaGUqLykKIHsKICAgICAvLyBGSVhNRSAtIFRPRE8KSW5kZXg6IFdlYktpdC93aW4v
V2ViSGlzdG9yeUl0ZW0uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvd2luL1dlYkhpc3RvcnlJdGVt
LmgJKHJldmlzaW9uIDM4MTE4KQorKysgV2ViS2l0L3dpbi9XZWJIaXN0b3J5SXRlbS5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC05MCw4ICs5MCw2IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIEhSRVNVTFQg
U1RETUVUSE9EQ0FMTFRZUEUgbWVyZ2VBdXRvQ29tcGxldGVIaW50cyhJV2ViSGlzdG9yeUl0ZW0q
IG90aGVySXRlbSk7CiAgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIHNldExh
c3RWaXNpdGVkVGltZUludGVydmFsKERBVEUgdGltZSk7CiAgICAgdmlydHVhbCBIUkVTVUxUIFNU
RE1FVEhPRENBTExUWVBFIHNldFRpdGxlKEJTVFIgdGl0bGUpOwotICAgIHZpcnR1YWwgSFJFU1VM
VCBTVERNRVRIT0RDQUxMVFlQRSBSU1NGZWVkUmVmZXJyZXIoQlNUUiogdXJsKTsKLSAgICB2aXJ0
dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgc2V0UlNTRmVlZFJlZmVycmVyKEJTVFIgdXJs
KTsKICAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgaGFzUGFnZUNhY2hlKEJP
T0wgKmhhc0NhY2hlKTsKICAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgc2V0
SGFzUGFnZUNhY2hlKEJPT0wgaGFzQ2FjaGUpOwogICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRI
T0RDQUxMVFlQRSB0YXJnZXQoQlNUUiogdGFyZ2V0KTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>25032</attachid>
            <date>2008-11-10 16:21:06 -0800</date>
            <delta_ts>2009-01-08 14:12:17 -0800</delta_ts>
            <desc>Send referrer on history navigations.</desc>
            <filename>referrer-historyitem-v2.txt</filename>
            <type>text/plain</type>
            <size>15576</size>
            <attacher name="Eric Roman">eroman</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAzODI3NykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjQgQEAKKzIwMDgtMTEtMTAgIEVyaWMgUm9tYW4gIDxlcm9tYW5AY2hyb21pdW0u
b3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFNl
bmQgcmVmZXJyZXIgZm9yIGhpc3RvcnkgbmF2aWdhdGlvbnMuCisKKyAgICAgICAgPGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDgwNj4KKworICAgICAgICBUZXN0OiBo
dHRwL3Rlc3RzL25hdmlnYXRpb24vYmFjay1zZW5kLXJlZmVycmVyLmh0bWwKKworICAgICAgICAq
IFdlYkNvcmUuYmFzZS5leHA6CisgICAgICAgICogV2ViQ29yZS5vcmRlcjoKKyAgICAgICAgKiBo
aXN0b3J5L0hpc3RvcnlJdGVtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okhpc3RvcnlJdGVtOjpI
aXN0b3J5SXRlbSk6CisgICAgICAgIChXZWJDb3JlOjpIaXN0b3J5SXRlbTo6cmVmZXJyZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6SGlzdG9yeUl0ZW06OnNldFJlZmVycmVyKToKKyAgICAgICAgKFdl
YkNvcmU6Okhpc3RvcnlJdGVtOjpzZXRGb3JtSW5mb0Zyb21SZXF1ZXN0KToKKyAgICAgICAgKiBo
aXN0b3J5L0hpc3RvcnlJdGVtLmg6CisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpsb2FkSXRlbSk6CisKIDIwMDgtMTEtMTAg
IEFkYW0gUm9iZW4gIDxhcm9iZW5AYXBwbGUuY29tPgogCiAgICAgICAgIEZpeCBCdWcgMjIxNjE6
IEFzc2VydGlvbiBmYWlsdXJlIGluIFJlbmRlclRoZW1lV2luOjpzeXN0ZW1Db2xvciB3aGVuCklu
ZGV4OiBXZWJDb3JlL1dlYkNvcmUuYmFzZS5leHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJD
b3JlLmJhc2UuZXhwCShyZXZpc2lvbiAzODI3NykKKysrIFdlYkNvcmUvV2ViQ29yZS5iYXNlLmV4
cAkod29ya2luZyBjb3B5KQpAQCAtMTgxLDcgKzE4MSw2IEBAIF9fWk43V2ViQ29yZTExSGlzdG9y
eUl0ZW0xNHNldFNjcm9sbFBvaW4KIF9fWk43V2ViQ29yZTExSGlzdG9yeUl0ZW0xNXNldElzVGFy
Z2V0SXRlbUViCiBfX1pON1dlYkNvcmUxMUhpc3RvcnlJdGVtMTdzZXRBbHRlcm5hdGVUaXRsZUVS
S05TXzZTdHJpbmdFCiBfX1pON1dlYkNvcmUxMUhpc3RvcnlJdGVtMThzZXRMYXN0VmlzaXRlZFRp
bWVFZAotX19aTjdXZWJDb3JlMTFIaXN0b3J5SXRlbTE4c2V0UlNTRmVlZFJlZmVycmVyRVJLTlNf
NlN0cmluZ0UKIF9fWk43V2ViQ29yZTExSGlzdG9yeUl0ZW0yMHNldE9yaWdpbmFsVVJMU3RyaW5n
RVJLTlNfNlN0cmluZ0UKIF9fWk43V2ViQ29yZTExSGlzdG9yeUl0ZW0yMHNldFRyYW5zaWVudFBy
b3BlcnR5RVJLTlNfNlN0cmluZ0VQMTFvYmpjX29iamVjdAogX19aTjdXZWJDb3JlMTFIaXN0b3J5
SXRlbTIybWVyZ2VBdXRvQ29tcGxldGVIaW50c0VQUzBfCkBAIC03MDMsNyArNzAyLDYgQEAgX19a
Tks3V2ViQ29yZTExSGlzdG9yeUl0ZW0xMXNjcm9sbFBvaW50RQogX19aTks3V2ViQ29yZTExSGlz
dG9yeUl0ZW0xMmlzVGFyZ2V0SXRlbUV2CiBfX1pOSzdXZWJDb3JlMTFIaXN0b3J5SXRlbTE0YWx0
ZXJuYXRlVGl0bGVFdgogX19aTks3V2ViQ29yZTExSGlzdG9yeUl0ZW0xNWxhc3RWaXNpdGVkVGlt
ZUV2Ci1fX1pOSzdXZWJDb3JlMTFIaXN0b3J5SXRlbTE1cnNzRmVlZFJlZmVycmVyRXYKIF9fWk5L
N1dlYkNvcmUxMUhpc3RvcnlJdGVtMTdjaGlsZEl0ZW1XaXRoTmFtZUVSS05TXzZTdHJpbmdFCiBf
X1pOSzdXZWJDb3JlMTFIaXN0b3J5SXRlbTE3b3JpZ2luYWxVUkxTdHJpbmdFdgogX19aTks3V2Vi
Q29yZTExSGlzdG9yeUl0ZW0yMGdldFRyYW5zaWVudFByb3BlcnR5RVJLTlNfNlN0cmluZ0UKSW5k
ZXg6IFdlYkNvcmUvV2ViQ29yZS5vcmRlcgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL1dlYkNvcmUu
b3JkZXIJKHJldmlzaW9uIDM4Mjc3KQorKysgV2ViQ29yZS9XZWJDb3JlLm9yZGVyCSh3b3JraW5n
IGNvcHkpCkBAIC02NTE5LDcgKzY1MTksNiBAQCBfX1pON1dlYkNvcmUxNFJlbmRlclRoZW1lTWFj
MTZwYWludFNsaWRlCiBfX1pOSzdXZWJDb3JlMTRSZW5kZXJUaGVtZU1hYzIxc2xpZGVyVGh1bWJI
b3Jpem9udGFsRXYKIF9fWk5LN1dlYkNvcmUxMlJlbmRlclNsaWRlcjEwaW5EcmFnTW9kZUV2CiBf
X1pOSzdXZWJDb3JlMTJSZW5kZXJPYmplY3QxNGNhcmV0TWF4T2Zmc2V0RXYKLV9fWk5LN1dlYkNv
cmUxMUhpc3RvcnlJdGVtMTVyc3NGZWVkUmVmZXJyZXJFdgogX19aTjdXZWJDb3JlMTFGcmFtZUxv
YWRlcjZyZWxvYWRFdgogX19aTjdXZWJDb3JlMTdSZW5kZXJGbGV4aWJsZUJveEQxRXYKIF9fWk43
V2ViQ29yZTExRWxsaXBzaXNCb3hEMUV2CkBAIC04NjAyLDcgKzg2MDEsNiBAQCBfX1pON1dlYkNv
cmU3TWFycXVlZTE1Y29tcHV0ZVBvc2l0aW9uRU5TCiBfX1pON1dlYkNvcmU3TWFycXVlZTVzdGFy
dEV2CiBfX1pON1dlYkNvcmU1VGltZXJJTlNfN01hcnF1ZWVFRTVmaXJlZEV2CiBfX1pON1dlYkNv
cmU3TWFycXVlZTEwdGltZXJGaXJlZEVQTlNfNVRpbWVySVMwX0VFCi1fX1pOSzdXZWJDb3JlMTFI
aXN0b3J5SXRlbTEyZm9ybVJlZmVycmVyRXYKIF9fWk5LN1dlYkNvcmUxMUhpc3RvcnlJdGVtMTVm
b3JtQ29udGVudFR5cGVFdgogX19aTjdXZWJDb3JlMTRSZXNvdXJjZUhhbmRsZTE3d2lsbExvYWRG
cm9tQ2FjaGVFUk5TXzE1UmVzb3VyY2VSZXF1ZXN0RQogX19aTks3V2ViQ29yZTE1SFRNTExpbmtF
bGVtZW50MTRpc1VSTEF0dHJpYnV0ZUVQTlNfOUF0dHJpYnV0ZUUKSW5kZXg6IFdlYkNvcmUvaGlz
dG9yeS9IaXN0b3J5SXRlbS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9oaXN0b3J5L0hpc3Rv
cnlJdGVtLmNwcAkocmV2aXNpb24gMzgyNzcpCisrKyBXZWJDb3JlL2hpc3RvcnkvSGlzdG9yeUl0
ZW0uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDEsNiArMTAxLDcgQEAgaW5saW5lIEhpc3RvcnlJ
dGVtOjpIaXN0b3J5SXRlbShjb25zdCBIaQogICAgIDogUmVmQ291bnRlZDxIaXN0b3J5SXRlbT4o
KQogICAgICwgbV91cmxTdHJpbmcoaXRlbS5tX3VybFN0cmluZykKICAgICAsIG1fb3JpZ2luYWxV
UkxTdHJpbmcoaXRlbS5tX29yaWdpbmFsVVJMU3RyaW5nKQorICAgICwgbV9yZWZlcnJlcihpdGVt
Lm1fcmVmZXJyZXIpCiAgICAgLCBtX3RhcmdldChpdGVtLm1fdGFyZ2V0KQogICAgICwgbV9wYXJl
bnQoaXRlbS5tX3BhcmVudCkKICAgICAsIG1fdGl0bGUoaXRlbS5tX3RpdGxlKQpAQCAtMTExLDgg
KzExMiw2IEBAIGlubGluZSBIaXN0b3J5SXRlbTo6SGlzdG9yeUl0ZW0oY29uc3QgSGkKICAgICAs
IG1faXNUYXJnZXRJdGVtKGl0ZW0ubV9pc1RhcmdldEl0ZW0pCiAgICAgLCBtX3Zpc2l0Q291bnQo
aXRlbS5tX3Zpc2l0Q291bnQpCiAgICAgLCBtX2Zvcm1Db250ZW50VHlwZShpdGVtLm1fZm9ybUNv
bnRlbnRUeXBlKQotICAgICwgbV9mb3JtUmVmZXJyZXIoaXRlbS5tX2Zvcm1SZWZlcnJlcikKLSAg
ICAsIG1fcnNzRmVlZFJlZmVycmVyKGl0ZW0ubV9yc3NGZWVkUmVmZXJyZXIpCiB7CiAgICAgaWYg
KGl0ZW0ubV9mb3JtRGF0YSkKICAgICAgICAgbV9mb3JtRGF0YSA9IGl0ZW0ubV9mb3JtRGF0YS0+
Y29weSgpOwpAQCAtMTcxLDYgKzE3MCwxMSBAQCBLVVJMIEhpc3RvcnlJdGVtOjpvcmlnaW5hbFVS
TCgpIGNvbnN0CiAgICAgcmV0dXJuIEtVUkwobV9vcmlnaW5hbFVSTFN0cmluZyk7CiB9CiAKK2Nv
bnN0IFN0cmluZyYgSGlzdG9yeUl0ZW06OnJlZmVycmVyKCkgY29uc3QKK3sKKyAgICByZXR1cm4g
bV9yZWZlcnJlcjsKK30KKwogY29uc3QgU3RyaW5nJiBIaXN0b3J5SXRlbTo6dGFyZ2V0KCkgY29u
c3QKIHsKICAgICByZXR1cm4gbV90YXJnZXQ7CkBAIC0yMTEsNiArMjE1LDEyIEBAIHZvaWQgSGlz
dG9yeUl0ZW06OnNldE9yaWdpbmFsVVJMU3RyaW5nKGMKICAgICBub3RpZnlIaXN0b3J5SXRlbUNo
YW5nZWQoKTsKIH0KIAordm9pZCBIaXN0b3J5SXRlbTo6c2V0UmVmZXJyZXIoY29uc3QgU3RyaW5n
JiByZWZlcnJlcikKK3sKKyAgICBtX3JlZmVycmVyID0gcmVmZXJyZXI7CisgICAgbm90aWZ5SGlz
dG9yeUl0ZW1DaGFuZ2VkKCk7Cit9CisKIHZvaWQgSGlzdG9yeUl0ZW06OnNldFRpdGxlKGNvbnN0
IFN0cmluZyYgdGl0bGUpCiB7CiAgICAgbV90aXRsZSA9IHRpdGxlOwpAQCAtMzQ5LDMzICszNTks
MTggQEAgU3RyaW5nIEhpc3RvcnlJdGVtOjpmb3JtQ29udGVudFR5cGUoKSBjbwogICAgIHJldHVy
biBtX2Zvcm1Db250ZW50VHlwZTsKIH0KIAotU3RyaW5nIEhpc3RvcnlJdGVtOjpmb3JtUmVmZXJy
ZXIoKSBjb25zdAotewotICAgIHJldHVybiBtX2Zvcm1SZWZlcnJlcjsKLX0KLQotU3RyaW5nIEhp
c3RvcnlJdGVtOjpyc3NGZWVkUmVmZXJyZXIoKSBjb25zdAotewotICAgIHJldHVybiBtX3Jzc0Zl
ZWRSZWZlcnJlcjsKLX0KLQotdm9pZCBIaXN0b3J5SXRlbTo6c2V0UlNTRmVlZFJlZmVycmVyKGNv
bnN0IFN0cmluZyYgcmVmZXJyZXIpCi17Ci0gICAgbV9yc3NGZWVkUmVmZXJyZXIgPSByZWZlcnJl
cjsKLX0KLQogdm9pZCBIaXN0b3J5SXRlbTo6c2V0Rm9ybUluZm9Gcm9tUmVxdWVzdChjb25zdCBS
ZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCiB7CisgICAgbV9yZWZlcnJlciA9IHJlcXVlc3QuaHR0
cFJlZmVycmVyKCk7CisgICAgCiAgICAgaWYgKGVxdWFsSWdub3JpbmdDYXNlKHJlcXVlc3QuaHR0
cE1ldGhvZCgpLCAiUE9TVCIpKSB7CiAgICAgICAgIC8vIEZJWE1FOiBFdmVudHVhbGx5IHdlIGhh
dmUgdG8gbWFrZSB0aGlzIHNtYXJ0IGVub3VnaCB0byBoYW5kbGUgdGhlIGNhc2Ugd2hlcmUKICAg
ICAgICAgLy8gd2UgaGF2ZSBhIHN0cmVhbSBmb3IgdGhlIGJvZHkgdG8gaGFuZGxlIHRoZSAiZGF0
YSBpbnRlcnNwZXJzZWQgd2l0aCBmaWxlcyIgZmVhdHVyZS4KICAgICAgICAgbV9mb3JtRGF0YSA9
IHJlcXVlc3QuaHR0cEJvZHkoKTsKICAgICAgICAgbV9mb3JtQ29udGVudFR5cGUgPSByZXF1ZXN0
Lmh0dHBDb250ZW50VHlwZSgpOwotICAgICAgICBtX2Zvcm1SZWZlcnJlciA9IHJlcXVlc3QuaHR0
cFJlZmVycmVyKCk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgbV9mb3JtRGF0YSA9IDA7CiAgICAg
ICAgIG1fZm9ybUNvbnRlbnRUeXBlID0gU3RyaW5nKCk7Ci0gICAgICAgIG1fZm9ybVJlZmVycmVy
ID0gU3RyaW5nKCk7CiAgICAgfQogfQogCkluZGV4OiBXZWJDb3JlL2hpc3RvcnkvSGlzdG9yeUl0
ZW0uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2hpc3RvcnkvSGlzdG9yeUl0ZW0uaAkocmV2aXNp
b24gMzgyNzcpCisrKyBXZWJDb3JlL2hpc3RvcnkvSGlzdG9yeUl0ZW0uaAkod29ya2luZyBjb3B5
KQpAQCAtOTcsMTMgKzk3LDEyIEBAIHB1YmxpYzogCiAgICAgY29uc3QgU3RyaW5nJiBwYXJlbnQo
KSBjb25zdDsKICAgICBLVVJMIHVybCgpIGNvbnN0OwogICAgIEtVUkwgb3JpZ2luYWxVUkwoKSBj
b25zdDsKKyAgICBjb25zdCBTdHJpbmcmIHJlZmVycmVyKCkgY29uc3Q7CiAgICAgY29uc3QgU3Ry
aW5nJiB0YXJnZXQoKSBjb25zdDsKICAgICBib29sIGlzVGFyZ2V0SXRlbSgpIGNvbnN0OwogICAg
IAogICAgIEZvcm1EYXRhKiBmb3JtRGF0YSgpOwogICAgIFN0cmluZyBmb3JtQ29udGVudFR5cGUo
KSBjb25zdDsKLSAgICBTdHJpbmcgZm9ybVJlZmVycmVyKCkgY29uc3Q7Ci0gICAgU3RyaW5nIHJz
c0ZlZWRSZWZlcnJlcigpIGNvbnN0OwogICAgIAogICAgIGludCB2aXNpdENvdW50KCkgY29uc3Q7
CiAKQEAgLTExOSw2ICsxMTgsNyBAQCBwdWJsaWM6IAogICAgIHZvaWQgc2V0VVJMKGNvbnN0IEtV
UkwmKTsKICAgICB2b2lkIHNldFVSTFN0cmluZyhjb25zdCBTdHJpbmcmKTsKICAgICB2b2lkIHNl
dE9yaWdpbmFsVVJMU3RyaW5nKGNvbnN0IFN0cmluZyYpOworICAgIHZvaWQgc2V0UmVmZXJyZXIo
Y29uc3QgU3RyaW5nJik7CiAgICAgdm9pZCBzZXRUYXJnZXQoY29uc3QgU3RyaW5nJik7CiAgICAg
dm9pZCBzZXRQYXJlbnQoY29uc3QgU3RyaW5nJik7CiAgICAgdm9pZCBzZXRUaXRsZShjb25zdCBT
dHJpbmcmKTsKQEAgLTEyNiw3ICsxMjYsNiBAQCBwdWJsaWM6IAogICAgIAogICAgIHZvaWQgc2V0
Rm9ybUluZm9Gcm9tUmVxdWVzdChjb25zdCBSZXNvdXJjZVJlcXVlc3QmKTsKIAotICAgIHZvaWQg
c2V0UlNTRmVlZFJlZmVycmVyKGNvbnN0IFN0cmluZyYpOwogICAgIHZvaWQgc2V0VmlzaXRDb3Vu
dChpbnQpOwogCiAgICAgdm9pZCBhZGRDaGlsZEl0ZW0oUGFzc1JlZlB0cjxIaXN0b3J5SXRlbT4p
OwpAQCAtMTczLDYgKzE3Miw3IEBAIHByaXZhdGU6CiAgICAgCiAgICAgU3RyaW5nIG1fdXJsU3Ry
aW5nOwogICAgIFN0cmluZyBtX29yaWdpbmFsVVJMU3RyaW5nOworICAgIFN0cmluZyBtX3JlZmVy
cmVyOwogICAgIFN0cmluZyBtX3RhcmdldDsKICAgICBTdHJpbmcgbV9wYXJlbnQ7CiAgICAgU3Ry
aW5nIG1fdGl0bGU7CkBAIC0xOTIsMTAgKzE5Miw2IEBAIHByaXZhdGU6CiAgICAgLy8gaW5mbyB1
c2VkIHRvIHJlcG9zdCBmb3JtIGRhdGEKICAgICBSZWZQdHI8Rm9ybURhdGE+IG1fZm9ybURhdGE7
CiAgICAgU3RyaW5nIG1fZm9ybUNvbnRlbnRUeXBlOwotICAgIFN0cmluZyBtX2Zvcm1SZWZlcnJl
cjsKLSAgICAKLSAgICAvLyBpbmZvIHVzZWQgdG8gc3VwcG9ydCBSU1MgZmVlZHMKLSAgICBTdHJp
bmcgbV9yc3NGZWVkUmVmZXJyZXI7CiAKICAgICAvLyBQYWdlQ2FjaGUgY29udHJvbHMgdGhlc2Ug
ZmllbGRzLgogICAgIEhpc3RvcnlJdGVtKiBtX25leHQ7CkluZGV4OiBXZWJDb3JlL2xvYWRlci9G
cmFtZUxvYWRlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIu
Y3BwCShyZXZpc2lvbiAzODI3NykKKysrIFdlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNDM0NSw2ICs0MzQ1LDkgQEAgdm9pZCBGcmFtZUxvYWRlcjo6bG9h
ZEl0ZW0oSGlzdG9yeUl0ZW0qIAogICAgICAgICBpZiAoIWluUGFnZUNhY2hlKSB7CiAgICAgICAg
ICAgICBSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChpdGVtVVJMKTsKIAorICAgICAgICAgICAgaWYg
KCFpdGVtLT5yZWZlcnJlcigpLmlzTnVsbCgpKQorICAgICAgICAgICAgICAgIHJlcXVlc3Quc2V0
SFRUUFJlZmVycmVyKGl0ZW0tPnJlZmVycmVyKCkpOworICAgICAgICAgICAgCiAgICAgICAgICAg
ICAvLyBJZiB0aGlzIHdhcyBhIHJlcG9zdCB0aGF0IGZhaWxlZCB0aGUgcGFnZSBjYWNoZSwgd2Ug
bWlnaHQgdHJ5IHRvIHJlcG9zdCB0aGUgZm9ybS4KICAgICAgICAgICAgIE5hdmlnYXRpb25BY3Rp
b24gYWN0aW9uOwogICAgICAgICAgICAgaWYgKGZvcm1EYXRhKSB7CkBAIC00MzUyLDEwICs0MzU1
LDkgQEAgdm9pZCBGcmFtZUxvYWRlcjo6bG9hZEl0ZW0oSGlzdG9yeUl0ZW0qIAogICAgICAgICAg
ICAgICAgIGZvcm1EYXRhLT5nZW5lcmF0ZUZpbGVzKG1fZnJhbWUtPnBhZ2UoKS0+Y2hyb21lKCkt
PmNsaWVudCgpKTsKIAogICAgICAgICAgICAgICAgIHJlcXVlc3Quc2V0SFRUUE1ldGhvZCgiUE9T
VCIpOwotICAgICAgICAgICAgICAgIHJlcXVlc3Quc2V0SFRUUFJlZmVycmVyKGl0ZW0tPmZvcm1S
ZWZlcnJlcigpKTsKICAgICAgICAgICAgICAgICByZXF1ZXN0LnNldEhUVFBCb2R5KGZvcm1EYXRh
KTsKICAgICAgICAgICAgICAgICByZXF1ZXN0LnNldEhUVFBDb250ZW50VHlwZShpdGVtLT5mb3Jt
Q29udGVudFR5cGUoKSk7Ci0gICAgICAgICAgICAgICAgUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiBz
ZWN1cml0eU9yaWdpbiA9IFNlY3VyaXR5T3JpZ2luOjpjcmVhdGVGcm9tU3RyaW5nKGl0ZW0tPmZv
cm1SZWZlcnJlcigpKTsKKyAgICAgICAgICAgICAgICBSZWZQdHI8U2VjdXJpdHlPcmlnaW4+IHNl
Y3VyaXR5T3JpZ2luID0gU2VjdXJpdHlPcmlnaW46OmNyZWF0ZUZyb21TdHJpbmcoaXRlbS0+cmVm
ZXJyZXIoKSk7CiAgICAgICAgICAgICAgICAgYWRkSFRUUE9yaWdpbklmTmVlZGVkKHJlcXVlc3Qs
IHNlY3VyaXR5T3JpZ2luLT50b1N0cmluZygpKTsKICAgICAgICAgCiAgICAgICAgICAgICAgICAg
Ly8gRklYTUU6IFNsaWdodCBoYWNrIHRvIHRlc3QgaWYgdGhlIE5TVVJMIGNhY2hlIGNvbnRhaW5z
IHRoZSBwYWdlIHdlJ3JlIGdvaW5nIHRvLgpJbmRleDogV2ViS2l0L21hYy9DaGFuZ2VMb2cKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViS2l0L21hYy9DaGFuZ2VMb2cJKHJldmlzaW9uIDM4Mjc3KQorKysgV2Vi
S2l0L21hYy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxMyBAQAorMjAwOC0x
MS0xMCAgRXJpYyBSb21hbiAgPGVyb21hbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVtb3ZlIHJzc0ZlZWRSZWZlcnJlciBm
cm9tIFdlYkhpc3RvcnlJdGVtLgorCisgICAgICAgICogSGlzdG9yeS9XZWJIaXN0b3J5SXRlbS5t
bToKKyAgICAgICAgKiBIaXN0b3J5L1dlYkhpc3RvcnlJdGVtUHJpdmF0ZS5oOgorICAgICAgICAq
IFdlYktpdC5vcmRlcjoKKwogMjAwOC0xMS0xMCAgQW5kZXJzIENhcmxzc29uICA8YW5kZXJzY2FA
YXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEtldmluIERlY2tlci4KSW5kZXg6IFdl
YktpdC9tYWMvV2ViS2l0Lm9yZGVyCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9tYWMvV2ViS2l0Lm9y
ZGVyCShyZXZpc2lvbiAzODI3NykKKysrIFdlYktpdC9tYWMvV2ViS2l0Lm9yZGVyCSh3b3JraW5n
IGNvcHkpCkBAIC0xMDI2LDcgKzEwMjYsNiBAQCBfX1pOMjBXZWJGcmFtZUxvYWRlckNsaWVudDI5
aW50ZXJydXB0Rm9yCiAtW1dlYkZyYW1lUG9saWN5TGlzdGVuZXIgaWdub3JlXQogK1tOU09iamVj
dChXZWJTY3JpcHRpbmcpIGlzS2V5RXhjbHVkZWRGcm9tV2ViU2NyaXB0Ol0KIC1bV2ViSWNvbkRh
dGFiYXNlIGljb25VUkxGb3JVUkw6XQotLVtXZWJIaXN0b3J5SXRlbShXZWJQcml2YXRlKSBSU1NG
ZWVkUmVmZXJyZXJdCiAtW1dlYlZpZXcoV2ViSUJBY3Rpb25zKSByZWxvYWQ6XQogLVtXZWJGcmFt
ZSByZWxvYWRdCiBfX1pOMTVXZWJDaHJvbWVDbGllbnQ3dW5mb2N1c0V2CkluZGV4OiBXZWJLaXQv
bWFjL0hpc3RvcnkvV2ViSGlzdG9yeUl0ZW0ubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L21hYy9I
aXN0b3J5L1dlYkhpc3RvcnlJdGVtLm1tCShyZXZpc2lvbiAzODI3NykKKysrIFdlYktpdC9tYWMv
SGlzdG9yeS9XZWJIaXN0b3J5SXRlbS5tbQkod29ya2luZyBjb3B5KQpAQCAtNDM1LDE2ICs0MzUs
NiBAQCBzdGF0aWMgV2ViV2luZG93V2F0Y2hlciAqX3dpbmRvd1dhdGNoZXIgCiAgICAgcmV0dXJu
IGNvcmUoX3ByaXZhdGUpLT52aXNpdENvdW50KCk7CiB9CiAKLS0gKE5TU3RyaW5nICopUlNTRmVl
ZFJlZmVycmVyCi17Ci0gICAgcmV0dXJuIG5zU3RyaW5nTmlsSWZFbXB0eShjb3JlKF9wcml2YXRl
KS0+cnNzRmVlZFJlZmVycmVyKCkpOwotfQotCi0tICh2b2lkKXNldFJTU0ZlZWRSZWZlcnJlcjoo
TlNTdHJpbmcgKilyZWZlcnJlcgotewotICAgIGNvcmUoX3ByaXZhdGUpLT5zZXRSU1NGZWVkUmVm
ZXJyZXIocmVmZXJyZXIpOwotfQotCiAtIChOU0FycmF5ICopY2hpbGRyZW4KIHsKICAgICBBU1NF
UlRfTUFJTl9USFJFQUQoKTsKSW5kZXg6IFdlYktpdC9tYWMvSGlzdG9yeS9XZWJIaXN0b3J5SXRl
bVByaXZhdGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvbWFjL0hpc3RvcnkvV2ViSGlzdG9yeUl0
ZW1Qcml2YXRlLmgJKHJldmlzaW9uIDM4Mjc3KQorKysgV2ViS2l0L21hYy9IaXN0b3J5L1dlYkhp
c3RvcnlJdGVtUHJpdmF0ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zOSw4ICszOSw2IEBACiAtIChO
U1VSTCAqKVVSTDsKIC0gKGludCl2aXNpdENvdW50OwogCi0tIChOU1N0cmluZyAqKVJTU0ZlZWRS
ZWZlcnJlcjsKLS0gKHZvaWQpc2V0UlNTRmVlZFJlZmVycmVyOihOU1N0cmluZyAqKXJlZmVycmVy
OwogLSAoTlNDYWxlbmRhckRhdGUgKilfbGFzdFZpc2l0ZWREYXRlOwogCiAtIChXZWJIaXN0b3J5
SXRlbSAqKXRhcmdldEl0ZW07CkluZGV4OiBXZWJLaXQvd2luL0NoYW5nZUxvZwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJLaXQvd2luL0NoYW5nZUxvZwkocmV2aXNpb24gMzgyNzcpCisrKyBXZWJLaXQvd2lu
L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEyIEBACisyMDA4LTExLTEwICBF
cmljIFJvbWFuICA8ZXJvbWFuQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW1vdmUgcnNzRmVlZFJlZmVycmVyIGZyb20gV2Vi
SGlzdG9yeUl0ZW0uCisKKyAgICAgICAgKiBXZWJIaXN0b3J5SXRlbS5jcHA6CisgICAgICAgICog
V2ViSGlzdG9yeUl0ZW0uaDoKKwogMjAwOC0xMS0xMCAgQWRhbSBSb2JlbiAgPGFyb2JlbkBhcHBs
ZS5jb20+CiAKICAgICAgICAgRml4IEJ1ZyAyMjE1ODogV291bGQgbGlrZSB0byB0dXJuIG9uIFdl
YkNvcmUgbG9nZ2luZyBjaGFubmVscyB2aWEgYW4KSW5kZXg6IFdlYktpdC93aW4vV2ViSGlzdG9y
eUl0ZW0uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC93aW4vV2ViSGlzdG9yeUl0ZW0uY3BwCShy
ZXZpc2lvbiAzODI3NykKKysrIFdlYktpdC93aW4vV2ViSGlzdG9yeUl0ZW0uY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0yMjMsMjEgKzIyMyw2IEBAIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgV2Vi
SGlzdG9yeUl0ZW0KICAgICByZXR1cm4gU19PSzsKIH0KIAotSFJFU1VMVCBTVERNRVRIT0RDQUxM
VFlQRSBXZWJIaXN0b3J5SXRlbTo6UlNTRmVlZFJlZmVycmVyKEJTVFIqIHVybCkKLXsKLSAgICBC
U3RyaW5nIHN0cihtX2hpc3RvcnlJdGVtLT5yc3NGZWVkUmVmZXJyZXIoKSk7Ci0gICAgKnVybCA9
IHN0ci5yZWxlYXNlKCk7Ci0KLSAgICByZXR1cm4gU19PSzsKLX0KLQotSFJFU1VMVCBTVERNRVRI
T0RDQUxMVFlQRSBXZWJIaXN0b3J5SXRlbTo6c2V0UlNTRmVlZFJlZmVycmVyKEJTVFIgdXJsKQot
ewotICAgIG1faGlzdG9yeUl0ZW0tPnNldFJTU0ZlZWRSZWZlcnJlcihTdHJpbmcodXJsLCBTeXNT
dHJpbmdMZW4odXJsKSkpOwotCi0gICAgcmV0dXJuIFNfT0s7Ci19Ci0KIEhSRVNVTFQgU1RETUVU
SE9EQ0FMTFRZUEUgV2ViSGlzdG9yeUl0ZW06Omhhc1BhZ2VDYWNoZShCT09MKiAvKmhhc0NhY2hl
Ki8pCiB7CiAgICAgLy8gRklYTUUgLSBUT0RPCkluZGV4OiBXZWJLaXQvd2luL1dlYkhpc3RvcnlJ
dGVtLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L3dpbi9XZWJIaXN0b3J5SXRlbS5oCShyZXZpc2lv
biAzODI3NykKKysrIFdlYktpdC93aW4vV2ViSGlzdG9yeUl0ZW0uaAkod29ya2luZyBjb3B5KQpA
QCAtOTAsOCArOTAsNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENB
TExUWVBFIG1lcmdlQXV0b0NvbXBsZXRlSGludHMoSVdlYkhpc3RvcnlJdGVtKiBvdGhlckl0ZW0p
OwogICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBzZXRMYXN0VmlzaXRlZFRp
bWVJbnRlcnZhbChEQVRFIHRpbWUpOwogICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxM
VFlQRSBzZXRUaXRsZShCU1RSIHRpdGxlKTsKLSAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9E
Q0FMTFRZUEUgUlNTRmVlZFJlZmVycmVyKEJTVFIqIHVybCk7Ci0gICAgdmlydHVhbCBIUkVTVUxU
IFNURE1FVEhPRENBTExUWVBFIHNldFJTU0ZlZWRSZWZlcnJlcihCU1RSIHVybCk7CiAgICAgdmly
dHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIGhhc1BhZ2VDYWNoZShCT09MICpoYXNDYWNo
ZSk7CiAgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIHNldEhhc1BhZ2VDYWNo
ZShCT09MIGhhc0NhY2hlKTsKICAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUg
dGFyZ2V0KEJTVFIqIHRhcmdldCk7CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAzODI3NykKKysrIExheW91
dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEzIEBACisyMDA4LTEx
LTEwICBFcmljIFJvbWFuICA8ZXJvbWFuQGNocm9taXVtLm9yZz4KKworICAgICAgICBUZXN0IGZv
ciBCdWcgMjA4MDY6ICJSZWZlcmVyIiBoZWFkZXIgbm90IHNlbnQgZm9yIGhpc3RvcnkgbmF2aWdh
dGlvbi4KKworICAgICAgICA8aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIwODA2PgorCisgICAgICAgICogaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL2JhY2stc2VuZC1yZWZl
cnJlci1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvbmF2aWdhdGlv
bi9iYWNrLXNlbmQtcmVmZXJyZXIuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9u
YXZpZ2F0aW9uL3Jlc291cmNlcy9iYWNrLXNlbmQtcmVmZXJyZXItaGVscGVyLnBocDogQWRkZWQu
CisKIDIwMDgtMTEtMTAgIEFkYW0gUm9iZW4gIDxhcm9iZW5AYXBwbGUuY29tPgogCiAgICAgICAg
IFRlc3QgZm9yIEJ1ZyAyMjE2MTogQXNzZXJ0aW9uIGZhaWx1cmUgaW4gUmVuZGVyVGhlbWVXaW46
OnN5c3RlbUNvbG9yCkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vYmFj
ay1zZW5kLXJlZmVycmVyLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL25hdmlnYXRpb24vYmFjay1zZW5kLXJlZmVycmVyLWV4cGVjdGVkLnR4dAkocmV2
aXNpb24gMCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9iYWNrLXNlbmQt
cmVmZXJyZXItZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDMgQEAKK1JlZmVy
cmVyOiBodHRwOi8vMTI3LjAuMC4xOjgwMDAvbmF2aWdhdGlvbi9iYWNrLXNlbmQtcmVmZXJyZXIu
aHRtbAord2luZG93Lm5hbWU6IDMKKwpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZp
Z2F0aW9uL2JhY2stc2VuZC1yZWZlcnJlci5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9iYWNrLXNlbmQtcmVmZXJyZXIuaHRtbAkocmV2aXNpb24g
MCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9iYWNrLXNlbmQtcmVmZXJy
ZXIuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw5IEBACis8c2NyaXB0PgorICAgIGlmICh3
aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICAgIGxheW91dFRlc3RDb250cm9sbGVy
LndhaXRVbnRpbERvbmUoKTsKKyAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQo
KTsKKyAgICB9CisKKyAgICB3aW5kb3cubmFtZSA9ICIwIjsKKyAgICB3aW5kb3cubG9jYXRpb24g
PSAicmVzb3VyY2VzL2JhY2stc2VuZC1yZWZlcnJlci1oZWxwZXIucGhwIjsKKzwvc2NyaXB0PgpJ
bmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3Jlc291cmNlcy9iYWNrLXNl
bmQtcmVmZXJyZXItaGVscGVyLnBocAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL25hdmlnYXRpb24vcmVzb3VyY2VzL2JhY2stc2VuZC1yZWZlcnJlci1oZWxwZXIucGhwCShy
ZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3Jlc291cmNl
cy9iYWNrLXNlbmQtcmVmZXJyZXItaGVscGVyLnBocAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwz
MSBAQAorPD9waHAKKyAgICAvLyBQcmV2ZW50IGZyb20gYmVpbmcgY2FjaGVkLgorICAgIGhlYWRl
cigiQ2FjaGUtQ29udHJvbDogbm8tY2FjaGUsIHByaXZhdGUsIG1heC1hZ2U9MCIpOworICAgIGhl
YWRlcigiQ29udGVudC1UeXBlOiB0ZXh0L2h0bWwiKTsKKz8+CisKKzxodG1sPgorCis8c2NyaXB0
PgorICAgIHdpbmRvdy5uYW1lID0gcGFyc2VJbnQod2luZG93Lm5hbWUpICsgMTsKKzwvc2NyaXB0
PgorCitSZWZlcnJlcjogPD9waHAgZWNobyAkX1NFUlZFUlsnSFRUUF9SRUZFUkVSJ107ID8+Cis8
YnIvPgord2luZG93Lm5hbWU6IDxzY3JpcHQ+ZG9jdW1lbnQud3JpdGUod2luZG93Lm5hbWUpPC9z
Y3JpcHQ+CisKKzxmb3JtIG5hbWU9bG9vcGJhY2sgYWN0aW9uPSIiIG1ldGhvZD1HRVQ+PC9mb3Jt
PgorCis8c2NyaXB0PgorICAgIGlmICh3aW5kb3cubmFtZSA9PSAxKSB7CisgICAgICAgIC8vIE5h
dmlnYXRlIG9uY2UgbW9yZSB0byBhZGQgYSBoaXN0b3J5IGVudHJ5LgorICAgICAgICBkb2N1bWVu
dC5sb29wYmFjay5zdWJtaXQoKTsKKyAgICB9IGVsc2UgaWYgKHdpbmRvdy5uYW1lID09IDIpIHsK
KyAgICAgICAgaGlzdG9yeS5nbygtMSk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgaWYgKHdpbmRv
dy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgICAgd2luZG93LmxheW91dFRlc3RDb250
cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICB9Cis8L3NjcmlwdD4KKworPC9odG1sPgoKUHJvcGVy
dHkgY2hhbmdlcyBvbjogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3Jlc291cmNl
cy9iYWNrLXNlbmQtcmVmZXJyZXItaGVscGVyLnBocApfX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCk5hbWU6IHN2bjpleGVj
dXRhYmxlCiAgICsgKgoK
</data>
<flag name="review"
          id="11497"
          type_id="1"
          status="-"
          setter="eric"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>26534</attachid>
            <date>2009-01-08 14:12:17 -0800</date>
            <delta_ts>2009-01-08 16:22:59 -0800</delta_ts>
            <desc>Send referrer on history navigations.</desc>
            <filename>referrer-historyitem-v3.txt</filename>
            <type>text/plain</type>
            <size>10067</size>
            <attacher name="Eric Roman">eroman</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAzOTcxNykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjYgQEAKKzIwMDktMDEtMDggIEVyaWMgUm9tYW4gIDxlcm9tYW5AY2hyb21pdW0u
b3JnPgorCisgICAgICAgIFNlbmQgcmVmZXJyZXIgZm9yIGhpc3RvcnkgbmF2aWdhdGlvbnMuCisK
KyAgICAgICAgPGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDgwNj4K
KworICAgICAgICBUZXN0OiBodHRwL3Rlc3RzL25hdmlnYXRpb24vYmFjay1zZW5kLXJlZmVycmVy
Lmh0bWwKKworICAgICAgICBDb25zb2xpZGF0ZXMgSGlzdG9yeUl0ZW06OnJzc0ZlZWRSZWZlcnJl
ciBhbmQgSGlzdG9yeUl0ZW06OmZvcm1SZWZlcnJlciBpbnRvIGEgc2luZ2xlIEhpc3RvcnlJdGVt
OjpyZWZlcnJlciBwcm9wZXJ0eS4KKyAgICAgICAgVGhlICJyc3MiIGFuZCAiZm9ybSIgcmVmZXJy
ZXIgdmFyaWFudHMgaGF2ZSBiZWVuIGRlcHJlY2F0ZWQuIFRoZXJlIGFyZSBubyByZW1haW5pbmcg
cmVmZXJlbmNlcyBpbiBXZWJDb3JlLCBidXQgaXQgaXMgc3RpbGwgZXhwb3J0ZWQgYnkgV2ViS2l0
LgorCisgICAgICAgICogaGlzdG9yeS9IaXN0b3J5SXRlbS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpIaXN0b3J5SXRlbTo6SGlzdG9yeUl0ZW0pOgorICAgICAgICAoV2ViQ29yZTo6SGlzdG9yeUl0
ZW06OnJlZmVycmVyKToKKyAgICAgICAgKFdlYkNvcmU6Okhpc3RvcnlJdGVtOjpzZXRSZWZlcnJl
cik6CisgICAgICAgIChXZWJDb3JlOjpIaXN0b3J5SXRlbTo6Zm9ybVJlZmVycmVyKToKKyAgICAg
ICAgKFdlYkNvcmU6Okhpc3RvcnlJdGVtOjpyc3NGZWVkUmVmZXJyZXIpOgorICAgICAgICAoV2Vi
Q29yZTo6SGlzdG9yeUl0ZW06OnNldFJTU0ZlZWRSZWZlcnJlcik6CisgICAgICAgIChXZWJDb3Jl
OjpIaXN0b3J5SXRlbTo6c2V0Rm9ybUluZm9Gcm9tUmVxdWVzdCk6CisgICAgICAgICogaGlzdG9y
eS9IaXN0b3J5SXRlbS5oOgorICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6bG9hZEl0ZW0pOgorCiAyMDA5LTAxLTA4ICBEYXZp
ZCBIeWF0dCAgPGh5YXR0QGFwcGxlLmNvbT4KIAogICAgICAgICBGaXggZm9yIDxyZGFyOi8vcHJv
YmxlbS82NDY1NjgyPiBSRUdSRVNTSU9OOiBJbiBNYWlsLCBjYW4ndCBmb3JjZSBhIG1lc3NhZ2Ug
dG8gYXV0byBzY3JvbGwuCkluZGV4OiBXZWJDb3JlL2hpc3RvcnkvSGlzdG9yeUl0ZW0uY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvaGlzdG9yeS9IaXN0b3J5SXRlbS5jcHAJKHJldmlzaW9uIDM5
NzE3KQorKysgV2ViQ29yZS9oaXN0b3J5L0hpc3RvcnlJdGVtLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMTAzLDYgKzEwMyw3IEBAIGlubGluZSBIaXN0b3J5SXRlbTo6SGlzdG9yeUl0ZW0oY29uc3Qg
SGkKICAgICA6IFJlZkNvdW50ZWQ8SGlzdG9yeUl0ZW0+KCkKICAgICAsIG1fdXJsU3RyaW5nKGl0
ZW0ubV91cmxTdHJpbmcpCiAgICAgLCBtX29yaWdpbmFsVVJMU3RyaW5nKGl0ZW0ubV9vcmlnaW5h
bFVSTFN0cmluZykKKyAgICAsIG1fcmVmZXJyZXIoaXRlbS5tX3JlZmVycmVyKQogICAgICwgbV90
YXJnZXQoaXRlbS5tX3RhcmdldCkKICAgICAsIG1fcGFyZW50KGl0ZW0ubV9wYXJlbnQpCiAgICAg
LCBtX3RpdGxlKGl0ZW0ubV90aXRsZSkKQEAgLTExNCw4ICsxMTUsNiBAQCBpbmxpbmUgSGlzdG9y
eUl0ZW06Okhpc3RvcnlJdGVtKGNvbnN0IEhpCiAgICAgLCBtX2lzVGFyZ2V0SXRlbShpdGVtLm1f
aXNUYXJnZXRJdGVtKQogICAgICwgbV92aXNpdENvdW50KGl0ZW0ubV92aXNpdENvdW50KQogICAg
ICwgbV9mb3JtQ29udGVudFR5cGUoaXRlbS5tX2Zvcm1Db250ZW50VHlwZSkKLSAgICAsIG1fZm9y
bVJlZmVycmVyKGl0ZW0ubV9mb3JtUmVmZXJyZXIpCi0gICAgLCBtX3Jzc0ZlZWRSZWZlcnJlcihp
dGVtLm1fcnNzRmVlZFJlZmVycmVyKQogewogICAgIGlmIChpdGVtLm1fZm9ybURhdGEpCiAgICAg
ICAgIG1fZm9ybURhdGEgPSBpdGVtLm1fZm9ybURhdGEtPmNvcHkoKTsKQEAgLTE3NCw2ICsxNzMs
MTEgQEAgS1VSTCBIaXN0b3J5SXRlbTo6b3JpZ2luYWxVUkwoKSBjb25zdAogICAgIHJldHVybiBL
VVJMKG1fb3JpZ2luYWxVUkxTdHJpbmcpOwogfQogCitjb25zdCBTdHJpbmcmIEhpc3RvcnlJdGVt
OjpyZWZlcnJlcigpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcmVmZXJyZXI7Cit9CisKIGNvbnN0
IFN0cmluZyYgSGlzdG9yeUl0ZW06OnRhcmdldCgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fdGFy
Z2V0OwpAQCAtMjE0LDYgKzIxOCwxMiBAQCB2b2lkIEhpc3RvcnlJdGVtOjpzZXRPcmlnaW5hbFVS
TFN0cmluZyhjCiAgICAgbm90aWZ5SGlzdG9yeUl0ZW1DaGFuZ2VkKCk7CiB9CiAKK3ZvaWQgSGlz
dG9yeUl0ZW06OnNldFJlZmVycmVyKGNvbnN0IFN0cmluZyYgcmVmZXJyZXIpCit7CisgICAgbV9y
ZWZlcnJlciA9IHJlZmVycmVyOworICAgIG5vdGlmeUhpc3RvcnlJdGVtQ2hhbmdlZCgpOworfQor
CiB2b2lkIEhpc3RvcnlJdGVtOjpzZXRUaXRsZShjb25zdCBTdHJpbmcmIHRpdGxlKQogewogICAg
IG1fdGl0bGUgPSB0aXRsZTsKQEAgLTM1NCwzMSArMzY0LDMxIEBAIFN0cmluZyBIaXN0b3J5SXRl
bTo6Zm9ybUNvbnRlbnRUeXBlKCkgY28KIAogU3RyaW5nIEhpc3RvcnlJdGVtOjpmb3JtUmVmZXJy
ZXIoKSBjb25zdAogewotICAgIHJldHVybiBtX2Zvcm1SZWZlcnJlcjsKKyAgICByZXR1cm4gcmVm
ZXJyZXIoKTsKIH0KIAogU3RyaW5nIEhpc3RvcnlJdGVtOjpyc3NGZWVkUmVmZXJyZXIoKSBjb25z
dAogewotICAgIHJldHVybiBtX3Jzc0ZlZWRSZWZlcnJlcjsKKyAgICByZXR1cm4gcmVmZXJyZXIo
KTsKIH0KIAogdm9pZCBIaXN0b3J5SXRlbTo6c2V0UlNTRmVlZFJlZmVycmVyKGNvbnN0IFN0cmlu
ZyYgcmVmZXJyZXIpCiB7Ci0gICAgbV9yc3NGZWVkUmVmZXJyZXIgPSByZWZlcnJlcjsKKyAgICBz
ZXRSZWZlcnJlcihyZWZlcnJlcik7CiB9CiAKIHZvaWQgSGlzdG9yeUl0ZW06OnNldEZvcm1JbmZv
RnJvbVJlcXVlc3QoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQogeworICAgIG1fcmVm
ZXJyZXIgPSByZXF1ZXN0Lmh0dHBSZWZlcnJlcigpOworICAgIAogICAgIGlmIChlcXVhbElnbm9y
aW5nQ2FzZShyZXF1ZXN0Lmh0dHBNZXRob2QoKSwgIlBPU1QiKSkgewogICAgICAgICAvLyBGSVhN
RTogRXZlbnR1YWxseSB3ZSBoYXZlIHRvIG1ha2UgdGhpcyBzbWFydCBlbm91Z2ggdG8gaGFuZGxl
IHRoZSBjYXNlIHdoZXJlCiAgICAgICAgIC8vIHdlIGhhdmUgYSBzdHJlYW0gZm9yIHRoZSBib2R5
IHRvIGhhbmRsZSB0aGUgImRhdGEgaW50ZXJzcGVyc2VkIHdpdGggZmlsZXMiIGZlYXR1cmUuCiAg
ICAgICAgIG1fZm9ybURhdGEgPSByZXF1ZXN0Lmh0dHBCb2R5KCk7CiAgICAgICAgIG1fZm9ybUNv
bnRlbnRUeXBlID0gcmVxdWVzdC5odHRwQ29udGVudFR5cGUoKTsKLSAgICAgICAgbV9mb3JtUmVm
ZXJyZXIgPSByZXF1ZXN0Lmh0dHBSZWZlcnJlcigpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIG1f
Zm9ybURhdGEgPSAwOwogICAgICAgICBtX2Zvcm1Db250ZW50VHlwZSA9IFN0cmluZygpOwotICAg
ICAgICBtX2Zvcm1SZWZlcnJlciA9IFN0cmluZygpOwogICAgIH0KIH0KIApJbmRleDogV2ViQ29y
ZS9oaXN0b3J5L0hpc3RvcnlJdGVtLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9oaXN0b3J5L0hp
c3RvcnlJdGVtLmgJKHJldmlzaW9uIDM5NzE3KQorKysgV2ViQ29yZS9oaXN0b3J5L0hpc3RvcnlJ
dGVtLmgJKHdvcmtpbmcgY29weSkKQEAgLTkxLDEzICs5MSwxOCBAQCBwdWJsaWM6IAogICAgIGNv
bnN0IFN0cmluZyYgcGFyZW50KCkgY29uc3Q7CiAgICAgS1VSTCB1cmwoKSBjb25zdDsKICAgICBL
VVJMIG9yaWdpbmFsVVJMKCkgY29uc3Q7CisgICAgY29uc3QgU3RyaW5nJiByZWZlcnJlcigpIGNv
bnN0OwogICAgIGNvbnN0IFN0cmluZyYgdGFyZ2V0KCkgY29uc3Q7CiAgICAgYm9vbCBpc1Rhcmdl
dEl0ZW0oKSBjb25zdDsKICAgICAKICAgICBGb3JtRGF0YSogZm9ybURhdGEoKTsKICAgICBTdHJp
bmcgZm9ybUNvbnRlbnRUeXBlKCkgY29uc3Q7CisKKyAgICAvLyBGSVhNRTogVGhlIGZvbGxvd2lu
ZyBtZXRob2RzIGFyZSBkZXByZWNhdGVkLgorICAgIC8vIEluc3RlYWQgdXNlIHJlZmVycmVyKCkg
YW5kIHNldFJlZmVycmVyKCkgaW5zdGVhZC4KICAgICBTdHJpbmcgZm9ybVJlZmVycmVyKCkgY29u
c3Q7CiAgICAgU3RyaW5nIHJzc0ZlZWRSZWZlcnJlcigpIGNvbnN0OworICAgIHZvaWQgc2V0UlNT
RmVlZFJlZmVycmVyKGNvbnN0IFN0cmluZyYpOwogICAgIAogICAgIGludCB2aXNpdENvdW50KCkg
Y29uc3Q7CiAgICAgYm9vbCBsYXN0VmlzaXRXYXNGYWlsdXJlKCkgY29uc3QgeyByZXR1cm4gbV9s
YXN0VmlzaXRXYXNGYWlsdXJlOyB9CkBAIC0xMTQsNiArMTE5LDcgQEAgcHVibGljOiAKICAgICB2
b2lkIHNldFVSTChjb25zdCBLVVJMJik7CiAgICAgdm9pZCBzZXRVUkxTdHJpbmcoY29uc3QgU3Ry
aW5nJik7CiAgICAgdm9pZCBzZXRPcmlnaW5hbFVSTFN0cmluZyhjb25zdCBTdHJpbmcmKTsKKyAg
ICB2b2lkIHNldFJlZmVycmVyKGNvbnN0IFN0cmluZyYpOwogICAgIHZvaWQgc2V0VGFyZ2V0KGNv
bnN0IFN0cmluZyYpOwogICAgIHZvaWQgc2V0UGFyZW50KGNvbnN0IFN0cmluZyYpOwogICAgIHZv
aWQgc2V0VGl0bGUoY29uc3QgU3RyaW5nJik7CkBAIC0xMjEsNyArMTI3LDcgQEAgcHVibGljOiAK
ICAgICAKICAgICB2b2lkIHNldEZvcm1JbmZvRnJvbVJlcXVlc3QoY29uc3QgUmVzb3VyY2VSZXF1
ZXN0Jik7CiAKLSAgICB2b2lkIHNldFJTU0ZlZWRSZWZlcnJlcihjb25zdCBTdHJpbmcmKTsKKwog
ICAgIHZvaWQgc2V0VmlzaXRDb3VudChpbnQpOwogICAgIHZvaWQgc2V0TGFzdFZpc2l0V2FzRmFp
bHVyZShib29sIHdhc0ZhaWx1cmUpIHsgbV9sYXN0VmlzaXRXYXNGYWlsdXJlID0gd2FzRmFpbHVy
ZTsgfQogCkBAIC0xNjksNiArMTc1LDcgQEAgcHJpdmF0ZToKIAogICAgIFN0cmluZyBtX3VybFN0
cmluZzsKICAgICBTdHJpbmcgbV9vcmlnaW5hbFVSTFN0cmluZzsKKyAgICBTdHJpbmcgbV9yZWZl
cnJlcjsKICAgICBTdHJpbmcgbV90YXJnZXQ7CiAgICAgU3RyaW5nIG1fcGFyZW50OwogICAgIFN0
cmluZyBtX3RpdGxlOwpAQCAtMTg5LDEwICsxOTYsNiBAQCBwcml2YXRlOgogICAgIC8vIGluZm8g
dXNlZCB0byByZXBvc3QgZm9ybSBkYXRhCiAgICAgUmVmUHRyPEZvcm1EYXRhPiBtX2Zvcm1EYXRh
OwogICAgIFN0cmluZyBtX2Zvcm1Db250ZW50VHlwZTsKLSAgICBTdHJpbmcgbV9mb3JtUmVmZXJy
ZXI7Ci0gICAgCi0gICAgLy8gaW5mbyB1c2VkIHRvIHN1cHBvcnQgUlNTIGZlZWRzCi0gICAgU3Ry
aW5nIG1fcnNzRmVlZFJlZmVycmVyOwogCiAgICAgLy8gUGFnZUNhY2hlIGNvbnRyb2xzIHRoZXNl
IGZpZWxkcy4KICAgICBIaXN0b3J5SXRlbSogbV9uZXh0OwpJbmRleDogV2ViQ29yZS9sb2FkZXIv
RnJhbWVMb2FkZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVy
LmNwcAkocmV2aXNpb24gMzk3MTcpCisrKyBXZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTQ0MTYsNiArNDQxNiw5IEBAIHZvaWQgRnJhbWVMb2FkZXI6Omxv
YWRJdGVtKEhpc3RvcnlJdGVtKiAKICAgICAgICAgICAgIGJvb2wgYWRkZWRFeHRyYUZpZWxkcyA9
IGZhbHNlOwogICAgICAgICAgICAgUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QoaXRlbVVSTCk7CiAK
KyAgICAgICAgICAgIGlmICghaXRlbS0+cmVmZXJyZXIoKS5pc051bGwoKSkKKyAgICAgICAgICAg
ICAgICByZXF1ZXN0LnNldEhUVFBSZWZlcnJlcihpdGVtLT5yZWZlcnJlcigpKTsKKyAgICAgICAg
ICAgIAogICAgICAgICAgICAgLy8gSWYgdGhpcyB3YXMgYSByZXBvc3QgdGhhdCBmYWlsZWQgdGhl
IHBhZ2UgY2FjaGUsIHdlIG1pZ2h0IHRyeSB0byByZXBvc3QgdGhlIGZvcm0uCiAgICAgICAgICAg
ICBOYXZpZ2F0aW9uQWN0aW9uIGFjdGlvbjsKICAgICAgICAgICAgIGlmIChmb3JtRGF0YSkgewpA
QCAtNDQyMywxMCArNDQyNiw5IEBAIHZvaWQgRnJhbWVMb2FkZXI6OmxvYWRJdGVtKEhpc3RvcnlJ
dGVtKiAKICAgICAgICAgICAgICAgICBmb3JtRGF0YS0+Z2VuZXJhdGVGaWxlcyhtX2ZyYW1lLT5w
YWdlKCktPmNocm9tZSgpLT5jbGllbnQoKSk7CiAKICAgICAgICAgICAgICAgICByZXF1ZXN0LnNl
dEhUVFBNZXRob2QoIlBPU1QiKTsKLSAgICAgICAgICAgICAgICByZXF1ZXN0LnNldEhUVFBSZWZl
cnJlcihpdGVtLT5mb3JtUmVmZXJyZXIoKSk7CiAgICAgICAgICAgICAgICAgcmVxdWVzdC5zZXRI
VFRQQm9keShmb3JtRGF0YSk7CiAgICAgICAgICAgICAgICAgcmVxdWVzdC5zZXRIVFRQQ29udGVu
dFR5cGUoaXRlbS0+Zm9ybUNvbnRlbnRUeXBlKCkpOwotICAgICAgICAgICAgICAgIFJlZlB0cjxT
ZWN1cml0eU9yaWdpbj4gc2VjdXJpdHlPcmlnaW4gPSBTZWN1cml0eU9yaWdpbjo6Y3JlYXRlRnJv
bVN0cmluZyhpdGVtLT5mb3JtUmVmZXJyZXIoKSk7CisgICAgICAgICAgICAgICAgUmVmUHRyPFNl
Y3VyaXR5T3JpZ2luPiBzZWN1cml0eU9yaWdpbiA9IFNlY3VyaXR5T3JpZ2luOjpjcmVhdGVGcm9t
U3RyaW5nKGl0ZW0tPnJlZmVycmVyKCkpOwogICAgICAgICAgICAgICAgIGFkZEhUVFBPcmlnaW5J
Zk5lZWRlZChyZXF1ZXN0LCBzZWN1cml0eU9yaWdpbi0+dG9TdHJpbmcoKSk7CiAgICAgICAgIAog
ICAgICAgICAgICAgICAgIC8vIE1ha2Ugc3VyZSB0byBhZGQgZXh0cmEgZmllbGRzIHRvIHRoZSBy
ZXF1ZXN0IGFmdGVyIHRoZSBPcmlnaW4gaGVhZGVyIGlzIGFkZGVkIGZvciB0aGUgRm9ybURhdGEg
Y2FzZS4KSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDM5NzE3KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTMgQEAKKzIwMDktMDEtMDggIEVyaWMgUm9tYW4g
IDxlcm9tYW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFRlc3QgZm9yIEJ1ZyAyMDgwNjogIlJl
ZmVyZXIiIGhlYWRlciBub3Qgc2VudCBmb3IgaGlzdG9yeSBuYXZpZ2F0aW9uLgorICAgICAgICAK
KyAgICAgICAgPGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDgwNj4K
KworICAgICAgICAqIGh0dHAvdGVzdHMvbmF2aWdhdGlvbi9iYWNrLXNlbmQtcmVmZXJyZXItZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL25hdmlnYXRpb24vYmFjay1z
ZW5kLXJlZmVycmVyLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvbmF2aWdhdGlv
bi9yZXNvdXJjZXMvYmFjay1zZW5kLXJlZmVycmVyLWhlbHBlci5waHA6IEFkZGVkLgorCiAyMDA5
LTAxLTA4ICBQaWVycmUtT2xpdmllciBMYXRvdXIgIDxwb2xAYXBwbGUuY29tPgogCiAgICAgICAg
IFJldmlld2VkIGJ5IERhbiBCZXJuc3RlaW4uCkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L25hdmlnYXRpb24vYmFjay1zZW5kLXJlZmVycmVyLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vYmFjay1zZW5kLXJlZmVycmVyLWV4
cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdh
dGlvbi9iYWNrLXNlbmQtcmVmZXJyZXItZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCww
ICsxLDMgQEAKK1JlZmVycmVyOiBodHRwOi8vMTI3LjAuMC4xOjgwMDAvbmF2aWdhdGlvbi9iYWNr
LXNlbmQtcmVmZXJyZXIuaHRtbAord2luZG93Lm5hbWU6IDMKKwpJbmRleDogTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9uYXZpZ2F0aW9uL2JhY2stc2VuZC1yZWZlcnJlci5odG1sCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9iYWNrLXNlbmQtcmVmZXJyZXIu
aHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9i
YWNrLXNlbmQtcmVmZXJyZXIuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw5IEBACis8c2Ny
aXB0PgorICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICAgICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworICAgICAgICBsYXlvdXRUZXN0Q29u
dHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgfQorCisgICAgd2luZG93Lm5hbWUgPSAiMCI7Cisg
ICAgd2luZG93LmxvY2F0aW9uID0gInJlc291cmNlcy9iYWNrLXNlbmQtcmVmZXJyZXItaGVscGVy
LnBocCI7Cis8L3NjcmlwdD4KSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlv
bi9yZXNvdXJjZXMvYmFjay1zZW5kLXJlZmVycmVyLWhlbHBlci5waHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3Jlc291cmNlcy9iYWNrLXNlbmQtcmVm
ZXJyZXItaGVscGVyLnBocAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMv
bmF2aWdhdGlvbi9yZXNvdXJjZXMvYmFjay1zZW5kLXJlZmVycmVyLWhlbHBlci5waHAJKHJldmlz
aW9uIDApCkBAIC0wLDAgKzEsMzEgQEAKKzw/cGhwCisgICAgLy8gUHJldmVudCBmcm9tIGJlaW5n
IGNhY2hlZC4KKyAgICBoZWFkZXIoIkNhY2hlLUNvbnRyb2w6IG5vLWNhY2hlLCBwcml2YXRlLCBt
YXgtYWdlPTAiKTsKKyAgICBoZWFkZXIoIkNvbnRlbnQtVHlwZTogdGV4dC9odG1sIik7Cis/Pgor
Cis8aHRtbD4KKworPHNjcmlwdD4KKyAgICB3aW5kb3cubmFtZSA9IHBhcnNlSW50KHdpbmRvdy5u
YW1lKSArIDE7Cis8L3NjcmlwdD4KKworUmVmZXJyZXI6IDw/cGhwIGVjaG8gJF9TRVJWRVJbJ0hU
VFBfUkVGRVJFUiddOyA/PgorPGJyLz4KK3dpbmRvdy5uYW1lOiA8c2NyaXB0PmRvY3VtZW50Lndy
aXRlKHdpbmRvdy5uYW1lKTwvc2NyaXB0PgorCis8Zm9ybSBuYW1lPWxvb3BiYWNrIGFjdGlvbj0i
IiBtZXRob2Q9R0VUPjwvZm9ybT4KKworPHNjcmlwdD4KKyAgICBpZiAod2luZG93Lm5hbWUgPT0g
MSkgeworICAgICAgICAvLyBOYXZpZ2F0ZSBvbmNlIG1vcmUgdG8gYWRkIGEgaGlzdG9yeSBlbnRy
eS4KKyAgICAgICAgZG9jdW1lbnQubG9vcGJhY2suc3VibWl0KCk7CisgICAgfSBlbHNlIGlmICh3
aW5kb3cubmFtZSA9PSAyKSB7CisgICAgICAgIGhpc3RvcnkuZ28oLTEpOworICAgIH0gZWxzZSB7
CisgICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgICAgICB3
aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworICAgIH0KKzwvc2NyaXB0
PgorCis8L2h0bWw+CgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBMYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L25hdmlnYXRpb24vcmVzb3VyY2VzL2JhY2stc2VuZC1yZWZlcnJlci1oZWxwZXIucGhwCl9fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX18KTmFtZTogc3ZuOmV4ZWN1dGFibGUKICAgKyAqCgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>26543</attachid>
            <date>2009-01-08 16:22:59 -0800</date>
            <delta_ts>2009-01-21 17:01:22 -0800</delta_ts>
            <desc>Send referrer on history navigations.</desc>
            <filename>referrer-historyitem-v4.txt</filename>
            <type>text/plain</type>
            <size>15075</size>
            <attacher name="Eric Roman">eroman</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAzOTcyNSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjUgQEAKKzIwMDktMDEtMDggIEVyaWMgUm9tYW4gIDxlcm9tYW5AY2hyb21pdW0u
b3JnPgorCisgICAgICAgIFNlbmQgcmVmZXJyZXIgZm9yIGhpc3RvcnkgbmF2aWdhdGlvbnMuCisK
KyAgICAgICAgPGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDgwNj4K
KworICAgICAgICBUZXN0OiBodHRwL3Rlc3RzL25hdmlnYXRpb24vYmFjay1zZW5kLXJlZmVycmVy
Lmh0bWwKKworICAgICAgICBDb25zb2xpZGF0ZXMgSGlzdG9yeUl0ZW06OnJzc0ZlZWRSZWZlcnJl
ciBhbmQgSGlzdG9yeUl0ZW06OmZvcm1SZWZlcnJlciBpbnRvIGEgc2luZ2xlIEhpc3RvcnlJdGVt
OjpyZWZlcnJlciBwcm9wZXJ0eS4KKworICAgICAgICAqIGhpc3RvcnkvSGlzdG9yeUl0ZW0uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SGlzdG9yeUl0ZW06Okhpc3RvcnlJdGVtKToKKyAgICAgICAg
KFdlYkNvcmU6Okhpc3RvcnlJdGVtOjpyZWZlcnJlcik6CisgICAgICAgIChXZWJDb3JlOjpIaXN0
b3J5SXRlbTo6c2V0UmVmZXJyZXIpOgorICAgICAgICAoV2ViQ29yZTo6SGlzdG9yeUl0ZW06OmZv
cm1SZWZlcnJlcik6CisgICAgICAgIChXZWJDb3JlOjpIaXN0b3J5SXRlbTo6cnNzRmVlZFJlZmVy
cmVyKToKKyAgICAgICAgKFdlYkNvcmU6Okhpc3RvcnlJdGVtOjpzZXRSU1NGZWVkUmVmZXJyZXIp
OgorICAgICAgICAoV2ViQ29yZTo6SGlzdG9yeUl0ZW06OnNldEZvcm1JbmZvRnJvbVJlcXVlc3Qp
OgorICAgICAgICAqIGhpc3RvcnkvSGlzdG9yeUl0ZW0uaDoKKyAgICAgICAgKiBsb2FkZXIvRnJh
bWVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmxvYWRJdGVtKToK
KwogMjAwOS0wMS0wOCAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CiAKICAgICAg
ICAgUmV2aWV3ZWQgYnkgT2xpdmVyIEh1bnQuCkluZGV4OiBXZWJDb3JlL1dlYkNvcmUuYmFzZS5l
eHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJDb3JlLmJhc2UuZXhwCShyZXZpc2lvbiAzOTcx
NykKKysrIFdlYkNvcmUvV2ViQ29yZS5iYXNlLmV4cAkod29ya2luZyBjb3B5KQpAQCAtMTc0LDYg
KzE3NCw3IEBAIF9fWk43V2ViQ29yZTExRnJhbWVMb2FkZXI0bG9hZEVSS05TXzE1UmUKIF9fWk43
V2ViQ29yZTExRnJhbWVMb2FkZXI2cmVsb2FkRWIKIF9fWk43V2ViQ29yZTExRnJhbWVMb2FkZXI3
YWRkRGF0YUVQS2NpCiBfX1pON1dlYkNvcmUxMUZyYW1lTG9hZGVyN2NhbkxvYWRFUktOU180S1VS
TEVSS05TXzZTdHJpbmdFUEtOU184RG9jdW1lbnRFCitfX1pON1dlYkNvcmUxMUhpc3RvcnlJdGVt
MTFzZXRSZWZlcnJlckVSS05TXzZTdHJpbmdFCiBfX1pON1dlYkNvcmUxMUhpc3RvcnlJdGVtMTJh
ZGRDaGlsZEl0ZW1FTjNXVEYxMFBhc3NSZWZQdHJJUzBfRUUKIF9fWk43V2ViQ29yZTExSGlzdG9y
eUl0ZW0xMnNldFVSTFN0cmluZ0VSS05TXzZTdHJpbmdFCiBfX1pON1dlYkNvcmUxMUhpc3RvcnlJ
dGVtMTJzZXRWaWV3U3RhdGVFUDExb2JqY19vYmplY3QKQEAgLTE4Miw3ICsxODMsNiBAQCBfX1pO
N1dlYkNvcmUxMUhpc3RvcnlJdGVtMTRzZXRTY3JvbGxQb2luCiBfX1pON1dlYkNvcmUxMUhpc3Rv
cnlJdGVtMTVzZXRJc1RhcmdldEl0ZW1FYgogX19aTjdXZWJDb3JlMTFIaXN0b3J5SXRlbTE3c2V0
QWx0ZXJuYXRlVGl0bGVFUktOU182U3RyaW5nRQogX19aTjdXZWJDb3JlMTFIaXN0b3J5SXRlbTE4
c2V0TGFzdFZpc2l0ZWRUaW1lRWQKLV9fWk43V2ViQ29yZTExSGlzdG9yeUl0ZW0xOHNldFJTU0Zl
ZWRSZWZlcnJlckVSS05TXzZTdHJpbmdFCiBfX1pON1dlYkNvcmUxMUhpc3RvcnlJdGVtMjBzZXRP
cmlnaW5hbFVSTFN0cmluZ0VSS05TXzZTdHJpbmdFCiBfX1pON1dlYkNvcmUxMUhpc3RvcnlJdGVt
MjBzZXRUcmFuc2llbnRQcm9wZXJ0eUVSS05TXzZTdHJpbmdFUDExb2JqY19vYmplY3QKIF9fWk43
V2ViQ29yZTExSGlzdG9yeUl0ZW0yMm1lcmdlQXV0b0NvbXBsZXRlSGludHNFUFMwXwpAQCAtNzE1
LDcgKzcxNSw2IEBAIF9fWk5LN1dlYkNvcmUxMUhpc3RvcnlJdGVtMTFzY3JvbGxQb2ludEUKIF9f
Wk5LN1dlYkNvcmUxMUhpc3RvcnlJdGVtMTJpc1RhcmdldEl0ZW1FdgogX19aTks3V2ViQ29yZTEx
SGlzdG9yeUl0ZW0xNGFsdGVybmF0ZVRpdGxlRXYKIF9fWk5LN1dlYkNvcmUxMUhpc3RvcnlJdGVt
MTVsYXN0VmlzaXRlZFRpbWVFdgotX19aTks3V2ViQ29yZTExSGlzdG9yeUl0ZW0xNXJzc0ZlZWRS
ZWZlcnJlckV2CiBfX1pOSzdXZWJDb3JlMTFIaXN0b3J5SXRlbTE3Y2hpbGRJdGVtV2l0aE5hbWVF
UktOU182U3RyaW5nRQogX19aTks3V2ViQ29yZTExSGlzdG9yeUl0ZW0xN29yaWdpbmFsVVJMU3Ry
aW5nRXYKIF9fWk5LN1dlYkNvcmUxMUhpc3RvcnlJdGVtMjBnZXRUcmFuc2llbnRQcm9wZXJ0eUVS
S05TXzZTdHJpbmdFCkBAIC03MjUsNiArNzI0LDcgQEAgX19aTks3V2ViQ29yZTExSGlzdG9yeUl0
ZW00aWNvbkV2CiBfX1pOSzdXZWJDb3JlMTFIaXN0b3J5SXRlbTV0aXRsZUV2CiBfX1pOSzdXZWJD
b3JlMTFIaXN0b3J5SXRlbTZ0YXJnZXRFdgogX19aTks3V2ViQ29yZTExSGlzdG9yeUl0ZW04Y2hp
bGRyZW5FdgorX19aTks3V2ViQ29yZTExSGlzdG9yeUl0ZW04cmVmZXJyZXJFdgogX19aTks3V2Vi
Q29yZTExSGlzdG9yeUl0ZW05dXJsU3RyaW5nRXYKIF9fWk5LN1dlYkNvcmUxMUhpc3RvcnlJdGVt
OXZpZXdTdGF0ZUV2CiBfX1pOSzdXZWJDb3JlMTJFdmVudEhhbmRsZXIxN2V2ZW50TWF5U3RhcnRE
cmFnRVJLTlNfMThQbGF0Zm9ybU1vdXNlRXZlbnRFCkluZGV4OiBXZWJDb3JlL1dlYkNvcmUub3Jk
ZXIKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJDb3JlLm9yZGVyCShyZXZpc2lvbiAzOTcxNykK
KysrIFdlYkNvcmUvV2ViQ29yZS5vcmRlcgkod29ya2luZyBjb3B5KQpAQCAtNjUxOSw3ICs2NTE5
LDYgQEAgX19aTjdXZWJDb3JlMTRSZW5kZXJUaGVtZU1hYzE2cGFpbnRTbGlkZQogX19aTks3V2Vi
Q29yZTE0UmVuZGVyVGhlbWVNYWMyMXNsaWRlclRodW1iSG9yaXpvbnRhbEV2CiBfX1pOSzdXZWJD
b3JlMTJSZW5kZXJTbGlkZXIxMGluRHJhZ01vZGVFdgogX19aTks3V2ViQ29yZTEyUmVuZGVyT2Jq
ZWN0MTRjYXJldE1heE9mZnNldEV2Ci1fX1pOSzdXZWJDb3JlMTFIaXN0b3J5SXRlbTE1cnNzRmVl
ZFJlZmVycmVyRXYKIF9fWk43V2ViQ29yZTExRnJhbWVMb2FkZXI2cmVsb2FkRXYKIF9fWk43V2Vi
Q29yZTE3UmVuZGVyRmxleGlibGVCb3hEMUV2CiBfX1pON1dlYkNvcmUxMUVsbGlwc2lzQm94RDFF
dgpAQCAtODYwMiw3ICs4NjAxLDYgQEAgX19aTjdXZWJDb3JlN01hcnF1ZWUxNWNvbXB1dGVQb3Np
dGlvbkVOUwogX19aTjdXZWJDb3JlN01hcnF1ZWU1c3RhcnRFdgogX19aTjdXZWJDb3JlNVRpbWVy
SU5TXzdNYXJxdWVlRUU1ZmlyZWRFdgogX19aTjdXZWJDb3JlN01hcnF1ZWUxMHRpbWVyRmlyZWRF
UE5TXzVUaW1lcklTMF9FRQotX19aTks3V2ViQ29yZTExSGlzdG9yeUl0ZW0xMmZvcm1SZWZlcnJl
ckV2CiBfX1pOSzdXZWJDb3JlMTFIaXN0b3J5SXRlbTE1Zm9ybUNvbnRlbnRUeXBlRXYKIF9fWk43
V2ViQ29yZTE0UmVzb3VyY2VIYW5kbGUxN3dpbGxMb2FkRnJvbUNhY2hlRVJOU18xNVJlc291cmNl
UmVxdWVzdEUKIF9fWk5LN1dlYkNvcmUxNUhUTUxMaW5rRWxlbWVudDE0aXNVUkxBdHRyaWJ1dGVF
UE5TXzlBdHRyaWJ1dGVFCkluZGV4OiBXZWJDb3JlL2hpc3RvcnkvSGlzdG9yeUl0ZW0uY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvaGlzdG9yeS9IaXN0b3J5SXRlbS5jcHAJKHJldmlzaW9uIDM5
NzE3KQorKysgV2ViQ29yZS9oaXN0b3J5L0hpc3RvcnlJdGVtLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMTAzLDYgKzEwMyw3IEBAIGlubGluZSBIaXN0b3J5SXRlbTo6SGlzdG9yeUl0ZW0oY29uc3Qg
SGkKICAgICA6IFJlZkNvdW50ZWQ8SGlzdG9yeUl0ZW0+KCkKICAgICAsIG1fdXJsU3RyaW5nKGl0
ZW0ubV91cmxTdHJpbmcpCiAgICAgLCBtX29yaWdpbmFsVVJMU3RyaW5nKGl0ZW0ubV9vcmlnaW5h
bFVSTFN0cmluZykKKyAgICAsIG1fcmVmZXJyZXIoaXRlbS5tX3JlZmVycmVyKQogICAgICwgbV90
YXJnZXQoaXRlbS5tX3RhcmdldCkKICAgICAsIG1fcGFyZW50KGl0ZW0ubV9wYXJlbnQpCiAgICAg
LCBtX3RpdGxlKGl0ZW0ubV90aXRsZSkKQEAgLTExNCw4ICsxMTUsNiBAQCBpbmxpbmUgSGlzdG9y
eUl0ZW06Okhpc3RvcnlJdGVtKGNvbnN0IEhpCiAgICAgLCBtX2lzVGFyZ2V0SXRlbShpdGVtLm1f
aXNUYXJnZXRJdGVtKQogICAgICwgbV92aXNpdENvdW50KGl0ZW0ubV92aXNpdENvdW50KQogICAg
ICwgbV9mb3JtQ29udGVudFR5cGUoaXRlbS5tX2Zvcm1Db250ZW50VHlwZSkKLSAgICAsIG1fZm9y
bVJlZmVycmVyKGl0ZW0ubV9mb3JtUmVmZXJyZXIpCi0gICAgLCBtX3Jzc0ZlZWRSZWZlcnJlcihp
dGVtLm1fcnNzRmVlZFJlZmVycmVyKQogewogICAgIGlmIChpdGVtLm1fZm9ybURhdGEpCiAgICAg
ICAgIG1fZm9ybURhdGEgPSBpdGVtLm1fZm9ybURhdGEtPmNvcHkoKTsKQEAgLTE3NCw2ICsxNzMs
MTEgQEAgS1VSTCBIaXN0b3J5SXRlbTo6b3JpZ2luYWxVUkwoKSBjb25zdAogICAgIHJldHVybiBL
VVJMKG1fb3JpZ2luYWxVUkxTdHJpbmcpOwogfQogCitjb25zdCBTdHJpbmcmIEhpc3RvcnlJdGVt
OjpyZWZlcnJlcigpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcmVmZXJyZXI7Cit9CisKIGNvbnN0
IFN0cmluZyYgSGlzdG9yeUl0ZW06OnRhcmdldCgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fdGFy
Z2V0OwpAQCAtMjE0LDYgKzIxOCwxMiBAQCB2b2lkIEhpc3RvcnlJdGVtOjpzZXRPcmlnaW5hbFVS
TFN0cmluZyhjCiAgICAgbm90aWZ5SGlzdG9yeUl0ZW1DaGFuZ2VkKCk7CiB9CiAKK3ZvaWQgSGlz
dG9yeUl0ZW06OnNldFJlZmVycmVyKGNvbnN0IFN0cmluZyYgcmVmZXJyZXIpCit7CisgICAgbV9y
ZWZlcnJlciA9IHJlZmVycmVyOworICAgIG5vdGlmeUhpc3RvcnlJdGVtQ2hhbmdlZCgpOworfQor
CiB2b2lkIEhpc3RvcnlJdGVtOjpzZXRUaXRsZShjb25zdCBTdHJpbmcmIHRpdGxlKQogewogICAg
IG1fdGl0bGUgPSB0aXRsZTsKQEAgLTM1MiwzMyArMzYyLDE4IEBAIFN0cmluZyBIaXN0b3J5SXRl
bTo6Zm9ybUNvbnRlbnRUeXBlKCkgY28KICAgICByZXR1cm4gbV9mb3JtQ29udGVudFR5cGU7CiB9
CiAKLVN0cmluZyBIaXN0b3J5SXRlbTo6Zm9ybVJlZmVycmVyKCkgY29uc3QKLXsKLSAgICByZXR1
cm4gbV9mb3JtUmVmZXJyZXI7Ci19Ci0KLVN0cmluZyBIaXN0b3J5SXRlbTo6cnNzRmVlZFJlZmVy
cmVyKCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9yc3NGZWVkUmVmZXJyZXI7Ci19Ci0KLXZvaWQg
SGlzdG9yeUl0ZW06OnNldFJTU0ZlZWRSZWZlcnJlcihjb25zdCBTdHJpbmcmIHJlZmVycmVyKQot
ewotICAgIG1fcnNzRmVlZFJlZmVycmVyID0gcmVmZXJyZXI7Ci19Ci0KIHZvaWQgSGlzdG9yeUl0
ZW06OnNldEZvcm1JbmZvRnJvbVJlcXVlc3QoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0
KQogeworICAgIG1fcmVmZXJyZXIgPSByZXF1ZXN0Lmh0dHBSZWZlcnJlcigpOworICAgIAogICAg
IGlmIChlcXVhbElnbm9yaW5nQ2FzZShyZXF1ZXN0Lmh0dHBNZXRob2QoKSwgIlBPU1QiKSkgewog
ICAgICAgICAvLyBGSVhNRTogRXZlbnR1YWxseSB3ZSBoYXZlIHRvIG1ha2UgdGhpcyBzbWFydCBl
bm91Z2ggdG8gaGFuZGxlIHRoZSBjYXNlIHdoZXJlCiAgICAgICAgIC8vIHdlIGhhdmUgYSBzdHJl
YW0gZm9yIHRoZSBib2R5IHRvIGhhbmRsZSB0aGUgImRhdGEgaW50ZXJzcGVyc2VkIHdpdGggZmls
ZXMiIGZlYXR1cmUuCiAgICAgICAgIG1fZm9ybURhdGEgPSByZXF1ZXN0Lmh0dHBCb2R5KCk7CiAg
ICAgICAgIG1fZm9ybUNvbnRlbnRUeXBlID0gcmVxdWVzdC5odHRwQ29udGVudFR5cGUoKTsKLSAg
ICAgICAgbV9mb3JtUmVmZXJyZXIgPSByZXF1ZXN0Lmh0dHBSZWZlcnJlcigpOwogICAgIH0gZWxz
ZSB7CiAgICAgICAgIG1fZm9ybURhdGEgPSAwOwogICAgICAgICBtX2Zvcm1Db250ZW50VHlwZSA9
IFN0cmluZygpOwotICAgICAgICBtX2Zvcm1SZWZlcnJlciA9IFN0cmluZygpOwogICAgIH0KIH0K
IApJbmRleDogV2ViQ29yZS9oaXN0b3J5L0hpc3RvcnlJdGVtLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9oaXN0b3J5L0hpc3RvcnlJdGVtLmgJKHJldmlzaW9uIDM5NzE3KQorKysgV2ViQ29yZS9o
aXN0b3J5L0hpc3RvcnlJdGVtLmgJKHdvcmtpbmcgY29weSkKQEAgLTkxLDEzICs5MSwxMiBAQCBw
dWJsaWM6IAogICAgIGNvbnN0IFN0cmluZyYgcGFyZW50KCkgY29uc3Q7CiAgICAgS1VSTCB1cmwo
KSBjb25zdDsKICAgICBLVVJMIG9yaWdpbmFsVVJMKCkgY29uc3Q7CisgICAgY29uc3QgU3RyaW5n
JiByZWZlcnJlcigpIGNvbnN0OwogICAgIGNvbnN0IFN0cmluZyYgdGFyZ2V0KCkgY29uc3Q7CiAg
ICAgYm9vbCBpc1RhcmdldEl0ZW0oKSBjb25zdDsKICAgICAKICAgICBGb3JtRGF0YSogZm9ybURh
dGEoKTsKICAgICBTdHJpbmcgZm9ybUNvbnRlbnRUeXBlKCkgY29uc3Q7Ci0gICAgU3RyaW5nIGZv
cm1SZWZlcnJlcigpIGNvbnN0OwotICAgIFN0cmluZyByc3NGZWVkUmVmZXJyZXIoKSBjb25zdDsK
ICAgICAKICAgICBpbnQgdmlzaXRDb3VudCgpIGNvbnN0OwogICAgIGJvb2wgbGFzdFZpc2l0V2Fz
RmFpbHVyZSgpIGNvbnN0IHsgcmV0dXJuIG1fbGFzdFZpc2l0V2FzRmFpbHVyZTsgfQpAQCAtMTE0
LDYgKzExMyw3IEBAIHB1YmxpYzogCiAgICAgdm9pZCBzZXRVUkwoY29uc3QgS1VSTCYpOwogICAg
IHZvaWQgc2V0VVJMU3RyaW5nKGNvbnN0IFN0cmluZyYpOwogICAgIHZvaWQgc2V0T3JpZ2luYWxV
UkxTdHJpbmcoY29uc3QgU3RyaW5nJik7CisgICAgdm9pZCBzZXRSZWZlcnJlcihjb25zdCBTdHJp
bmcmKTsKICAgICB2b2lkIHNldFRhcmdldChjb25zdCBTdHJpbmcmKTsKICAgICB2b2lkIHNldFBh
cmVudChjb25zdCBTdHJpbmcmKTsKICAgICB2b2lkIHNldFRpdGxlKGNvbnN0IFN0cmluZyYpOwpA
QCAtMTIxLDcgKzEyMSw3IEBAIHB1YmxpYzogCiAgICAgCiAgICAgdm9pZCBzZXRGb3JtSW5mb0Zy
b21SZXF1ZXN0KGNvbnN0IFJlc291cmNlUmVxdWVzdCYpOwogCi0gICAgdm9pZCBzZXRSU1NGZWVk
UmVmZXJyZXIoY29uc3QgU3RyaW5nJik7CisKICAgICB2b2lkIHNldFZpc2l0Q291bnQoaW50KTsK
ICAgICB2b2lkIHNldExhc3RWaXNpdFdhc0ZhaWx1cmUoYm9vbCB3YXNGYWlsdXJlKSB7IG1fbGFz
dFZpc2l0V2FzRmFpbHVyZSA9IHdhc0ZhaWx1cmU7IH0KIApAQCAtMTY5LDYgKzE2OSw3IEBAIHBy
aXZhdGU6CiAKICAgICBTdHJpbmcgbV91cmxTdHJpbmc7CiAgICAgU3RyaW5nIG1fb3JpZ2luYWxV
UkxTdHJpbmc7CisgICAgU3RyaW5nIG1fcmVmZXJyZXI7CiAgICAgU3RyaW5nIG1fdGFyZ2V0Owog
ICAgIFN0cmluZyBtX3BhcmVudDsKICAgICBTdHJpbmcgbV90aXRsZTsKQEAgLTE4OSwxMCArMTkw
LDYgQEAgcHJpdmF0ZToKICAgICAvLyBpbmZvIHVzZWQgdG8gcmVwb3N0IGZvcm0gZGF0YQogICAg
IFJlZlB0cjxGb3JtRGF0YT4gbV9mb3JtRGF0YTsKICAgICBTdHJpbmcgbV9mb3JtQ29udGVudFR5
cGU7Ci0gICAgU3RyaW5nIG1fZm9ybVJlZmVycmVyOwotICAgIAotICAgIC8vIGluZm8gdXNlZCB0
byBzdXBwb3J0IFJTUyBmZWVkcwotICAgIFN0cmluZyBtX3Jzc0ZlZWRSZWZlcnJlcjsKIAogICAg
IC8vIFBhZ2VDYWNoZSBjb250cm9scyB0aGVzZSBmaWVsZHMuCiAgICAgSGlzdG9yeUl0ZW0qIG1f
bmV4dDsKSW5kZXg6IFdlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAJKHJldmlzaW9uIDM5NzE3KQorKysgV2Vi
Q29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NDE2LDYgKzQ0
MTYsOSBAQCB2b2lkIEZyYW1lTG9hZGVyOjpsb2FkSXRlbShIaXN0b3J5SXRlbSogCiAgICAgICAg
ICAgICBib29sIGFkZGVkRXh0cmFGaWVsZHMgPSBmYWxzZTsKICAgICAgICAgICAgIFJlc291cmNl
UmVxdWVzdCByZXF1ZXN0KGl0ZW1VUkwpOwogCisgICAgICAgICAgICBpZiAoIWl0ZW0tPnJlZmVy
cmVyKCkuaXNOdWxsKCkpCisgICAgICAgICAgICAgICAgcmVxdWVzdC5zZXRIVFRQUmVmZXJyZXIo
aXRlbS0+cmVmZXJyZXIoKSk7CisgICAgICAgICAgICAKICAgICAgICAgICAgIC8vIElmIHRoaXMg
d2FzIGEgcmVwb3N0IHRoYXQgZmFpbGVkIHRoZSBwYWdlIGNhY2hlLCB3ZSBtaWdodCB0cnkgdG8g
cmVwb3N0IHRoZSBmb3JtLgogICAgICAgICAgICAgTmF2aWdhdGlvbkFjdGlvbiBhY3Rpb247CiAg
ICAgICAgICAgICBpZiAoZm9ybURhdGEpIHsKQEAgLTQ0MjMsMTAgKzQ0MjYsOSBAQCB2b2lkIEZy
YW1lTG9hZGVyOjpsb2FkSXRlbShIaXN0b3J5SXRlbSogCiAgICAgICAgICAgICAgICAgZm9ybURh
dGEtPmdlbmVyYXRlRmlsZXMobV9mcmFtZS0+cGFnZSgpLT5jaHJvbWUoKS0+Y2xpZW50KCkpOwog
CiAgICAgICAgICAgICAgICAgcmVxdWVzdC5zZXRIVFRQTWV0aG9kKCJQT1NUIik7Ci0gICAgICAg
ICAgICAgICAgcmVxdWVzdC5zZXRIVFRQUmVmZXJyZXIoaXRlbS0+Zm9ybVJlZmVycmVyKCkpOwog
ICAgICAgICAgICAgICAgIHJlcXVlc3Quc2V0SFRUUEJvZHkoZm9ybURhdGEpOwogICAgICAgICAg
ICAgICAgIHJlcXVlc3Quc2V0SFRUUENvbnRlbnRUeXBlKGl0ZW0tPmZvcm1Db250ZW50VHlwZSgp
KTsKLSAgICAgICAgICAgICAgICBSZWZQdHI8U2VjdXJpdHlPcmlnaW4+IHNlY3VyaXR5T3JpZ2lu
ID0gU2VjdXJpdHlPcmlnaW46OmNyZWF0ZUZyb21TdHJpbmcoaXRlbS0+Zm9ybVJlZmVycmVyKCkp
OworICAgICAgICAgICAgICAgIFJlZlB0cjxTZWN1cml0eU9yaWdpbj4gc2VjdXJpdHlPcmlnaW4g
PSBTZWN1cml0eU9yaWdpbjo6Y3JlYXRlRnJvbVN0cmluZyhpdGVtLT5yZWZlcnJlcigpKTsKICAg
ICAgICAgICAgICAgICBhZGRIVFRQT3JpZ2luSWZOZWVkZWQocmVxdWVzdCwgc2VjdXJpdHlPcmln
aW4tPnRvU3RyaW5nKCkpOwogICAgICAgICAKICAgICAgICAgICAgICAgICAvLyBNYWtlIHN1cmUg
dG8gYWRkIGV4dHJhIGZpZWxkcyB0byB0aGUgcmVxdWVzdCBhZnRlciB0aGUgT3JpZ2luIGhlYWRl
ciBpcyBhZGRlZCBmb3IgdGhlIEZvcm1EYXRhIGNhc2UuCkluZGV4OiBXZWJLaXQvbWFjL0NoYW5n
ZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvbWFjL0NoYW5nZUxvZwkocmV2aXNpb24gMzk3MjUp
CisrKyBXZWJLaXQvbWFjL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEzIEBA
CisyMDA5LTAxLTA4ICBFcmljIFJvbWFuICA8ZXJvbWFuQGNocm9taXVtLm9nPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIERlcHJlY2F0ZSBSU1NGZWVk
UmVmZXJyZXIoKSBhbmQgc2V0UlNTRmVlZFJlZmVycmVyKCkuCisKKyAgICAgICAgKiBIaXN0b3J5
L1dlYkhpc3RvcnlJdGVtLm1tOgorICAgICAgICAoLVtXZWJIaXN0b3J5SXRlbSBSU1NGZWVkUmVm
ZXJyZXJdKToKKyAgICAgICAgKC1bV2ViSGlzdG9yeUl0ZW0gc2V0UlNTRmVlZFJlZmVycmVyOl0p
OgorCiAyMDA5LTAxLTA4ICBTdGVwaGFuaWUgTGV3aXMgIDxzbGV3aXNAZ21haWwuY29tPgogCiAg
ICAgICAgIEZpeCBUaWdlciBidWlsZC4gICAgICAgIApJbmRleDogV2ViS2l0L21hYy9IaXN0b3J5
L1dlYkhpc3RvcnlJdGVtLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9tYWMvSGlzdG9yeS9XZWJI
aXN0b3J5SXRlbS5tbQkocmV2aXNpb24gMzk3MTcpCisrKyBXZWJLaXQvbWFjL0hpc3RvcnkvV2Vi
SGlzdG9yeUl0ZW0ubW0JKHdvcmtpbmcgY29weSkKQEAgLTQ1MiwxMiArNDUyLDEyIEBAIHN0YXRp
YyBXZWJXaW5kb3dXYXRjaGVyICpfd2luZG93V2F0Y2hlciAKIAogLSAoTlNTdHJpbmcgKilSU1NG
ZWVkUmVmZXJyZXIKIHsKLSAgICByZXR1cm4gbnNTdHJpbmdOaWxJZkVtcHR5KGNvcmUoX3ByaXZh
dGUpLT5yc3NGZWVkUmVmZXJyZXIoKSk7CisgICAgcmV0dXJuIG5zU3RyaW5nTmlsSWZFbXB0eShj
b3JlKF9wcml2YXRlKS0+cmVmZXJyZXIoKSk7CiB9CiAKIC0gKHZvaWQpc2V0UlNTRmVlZFJlZmVy
cmVyOihOU1N0cmluZyAqKXJlZmVycmVyCiB7Ci0gICAgY29yZShfcHJpdmF0ZSktPnNldFJTU0Zl
ZWRSZWZlcnJlcihyZWZlcnJlcik7CisgICAgY29yZShfcHJpdmF0ZSktPnNldFJlZmVycmVyKHJl
ZmVycmVyKTsKIH0KIAogLSAoTlNBcnJheSAqKWNoaWxkcmVuCkluZGV4OiBXZWJLaXQvd2luL0No
YW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvd2luL0NoYW5nZUxvZwkocmV2aXNpb24gMzk3
MjUpCisrKyBXZWJLaXQvd2luL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEz
IEBACisyMDA5LTAxLTA4ICBFcmljIFJvbWFuICA8ZXJvbWFuQGNocm9taXVtLm9yZz4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBEZXByZWNhdGUgUlNT
RmVlZFJlZmVycmVyKCkgYW5kIHNldFJTU0ZlZWRSZWZlcnJlcigpLgorCisgICAgICAgICogV2Vi
SGlzdG9yeUl0ZW0uY3BwOgorICAgICAgICAoV2ViSGlzdG9yeUl0ZW06OlJTU0ZlZWRSZWZlcnJl
cik6CisgICAgICAgIChXZWJIaXN0b3J5SXRlbTo6c2V0UlNTRmVlZFJlZmVycmVyKToKKwogMjAw
OS0wMS0wNyAgSm9uIEhvbmV5Y3V0dCAgPGpob25leWN1dHRAYXBwbGUuY29tPgogCiAgICAgICAg
IEZpeCBhIGNyYXNoIHdpdGggcXVlcnlpbmcgYSBXZWJWaWV3IGZvciBpdHMgZ2xvYmFsIGhpc3Rv
cnkgaXRlbSB3aGVuCkluZGV4OiBXZWJLaXQvd2luL1dlYkhpc3RvcnlJdGVtLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJLaXQvd2luL1dlYkhpc3RvcnlJdGVtLmNwcAkocmV2aXNpb24gMzk3MTcpCisr
KyBXZWJLaXQvd2luL1dlYkhpc3RvcnlJdGVtLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjI2LDcg
KzIyNiw3IEBAIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgV2ViSGlzdG9yeUl0ZW0KIAogSFJF
U1VMVCBTVERNRVRIT0RDQUxMVFlQRSBXZWJIaXN0b3J5SXRlbTo6UlNTRmVlZFJlZmVycmVyKEJT
VFIqIHVybCkKIHsKLSAgICBCU3RyaW5nIHN0cihtX2hpc3RvcnlJdGVtLT5yc3NGZWVkUmVmZXJy
ZXIoKSk7CisgICAgQlN0cmluZyBzdHIobV9oaXN0b3J5SXRlbS0+cmVmZXJyZXIoKSk7CiAgICAg
KnVybCA9IHN0ci5yZWxlYXNlKCk7CiAKICAgICByZXR1cm4gU19PSzsKQEAgLTIzNCw3ICsyMzQs
NyBAQCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIFdlYkhpc3RvcnlJdGVtCiAKIEhSRVNVTFQg
U1RETUVUSE9EQ0FMTFRZUEUgV2ViSGlzdG9yeUl0ZW06OnNldFJTU0ZlZWRSZWZlcnJlcihCU1RS
IHVybCkKIHsKLSAgICBtX2hpc3RvcnlJdGVtLT5zZXRSU1NGZWVkUmVmZXJyZXIoU3RyaW5nKHVy
bCwgU3lzU3RyaW5nTGVuKHVybCkpKTsKKyAgICBtX2hpc3RvcnlJdGVtLT5zZXRSZWZlcnJlcihT
dHJpbmcodXJsLCBTeXNTdHJpbmdMZW4odXJsKSkpOwogCiAgICAgcmV0dXJuIFNfT0s7CiB9Cklu
ZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCShyZXZpc2lvbiAzOTcyNSkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDEzIEBACisyMDA5LTAxLTA4ICBFcmljIFJvbWFuICA8ZXJvbWFu
QGNocm9taXVtLm9yZz4KKworICAgICAgICBUZXN0IGZvciBCdWcgMjA4MDY6ICJSZWZlcmVyIiBo
ZWFkZXIgbm90IHNlbnQgZm9yIGhpc3RvcnkgbmF2aWdhdGlvbi4KKyAgICAgICAgCisgICAgICAg
IDxodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA4MDY+CisKKyAgICAg
ICAgKiBodHRwL3Rlc3RzL25hdmlnYXRpb24vYmFjay1zZW5kLXJlZmVycmVyLWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL2JhY2stc2VuZC1yZWZl
cnJlci5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL25hdmlnYXRpb24vcmVzb3Vy
Y2VzL2JhY2stc2VuZC1yZWZlcnJlci1oZWxwZXIucGhwOiBBZGRlZC4KKwogMjAwOS0wMS0wOCAg
UGllcnJlLU9saXZpZXIgTGF0b3VyICA8cG9sQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdl
ZCBieSBEYW4gQmVybnN0ZWluLgpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0
aW9uL2JhY2stc2VuZC1yZWZlcnJlci1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL2JhY2stc2VuZC1yZWZlcnJlci1leHBlY3RlZC50
eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vYmFj
ay1zZW5kLXJlZmVycmVyLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwzIEBA
CitSZWZlcnJlcjogaHR0cDovLzEyNy4wLjAuMTo4MDAwL25hdmlnYXRpb24vYmFjay1zZW5kLXJl
ZmVycmVyLmh0bWwKK3dpbmRvdy5uYW1lOiAzCisKSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVz
dHMvbmF2aWdhdGlvbi9iYWNrLXNlbmQtcmVmZXJyZXIuaHRtbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vYmFjay1zZW5kLXJlZmVycmVyLmh0bWwJKHJl
dmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vYmFjay1zZW5k
LXJlZmVycmVyLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsOSBAQAorPHNjcmlwdD4KKyAg
ICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgICAgIGxheW91dFRlc3RD
b250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
ZHVtcEFzVGV4dCgpOworICAgIH0KKworICAgIHdpbmRvdy5uYW1lID0gIjAiOworICAgIHdpbmRv
dy5sb2NhdGlvbiA9ICJyZXNvdXJjZXMvYmFjay1zZW5kLXJlZmVycmVyLWhlbHBlci5waHAiOwor
PC9zY3JpcHQ+CkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcmVzb3Vy
Y2VzL2JhY2stc2VuZC1yZWZlcnJlci1oZWxwZXIucGhwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9yZXNvdXJjZXMvYmFjay1zZW5kLXJlZmVycmVyLWhl
bHBlci5waHAJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRp
b24vcmVzb3VyY2VzL2JhY2stc2VuZC1yZWZlcnJlci1oZWxwZXIucGhwCShyZXZpc2lvbiAwKQpA
QCAtMCwwICsxLDMxIEBACis8P3BocAorICAgIC8vIFByZXZlbnQgZnJvbSBiZWluZyBjYWNoZWQu
CisgICAgaGVhZGVyKCJDYWNoZS1Db250cm9sOiBuby1jYWNoZSwgcHJpdmF0ZSwgbWF4LWFnZT0w
Iik7CisgICAgaGVhZGVyKCJDb250ZW50LVR5cGU6IHRleHQvaHRtbCIpOworPz4KKworPGh0bWw+
CisKKzxzY3JpcHQ+CisgICAgd2luZG93Lm5hbWUgPSBwYXJzZUludCh3aW5kb3cubmFtZSkgKyAx
OworPC9zY3JpcHQ+CisKK1JlZmVycmVyOiA8P3BocCBlY2hvICRfU0VSVkVSWydIVFRQX1JFRkVS
RVInXTsgPz4KKzxici8+Cit3aW5kb3cubmFtZTogPHNjcmlwdD5kb2N1bWVudC53cml0ZSh3aW5k
b3cubmFtZSk8L3NjcmlwdD4KKworPGZvcm0gbmFtZT1sb29wYmFjayBhY3Rpb249IiIgbWV0aG9k
PUdFVD48L2Zvcm0+CisKKzxzY3JpcHQ+CisgICAgaWYgKHdpbmRvdy5uYW1lID09IDEpIHsKKyAg
ICAgICAgLy8gTmF2aWdhdGUgb25jZSBtb3JlIHRvIGFkZCBhIGhpc3RvcnkgZW50cnkuCisgICAg
ICAgIGRvY3VtZW50Lmxvb3BiYWNrLnN1Ym1pdCgpOworICAgIH0gZWxzZSBpZiAod2luZG93Lm5h
bWUgPT0gMikgeworICAgICAgICBoaXN0b3J5LmdvKC0xKTsKKyAgICB9IGVsc2UgeworICAgICAg
ICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICAgICAgd2luZG93Lmxh
eW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICB9Cis8L3NjcmlwdD4KKworPC9o
dG1sPgoKUHJvcGVydHkgY2hhbmdlcyBvbjogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0
aW9uL3Jlc291cmNlcy9iYWNrLXNlbmQtcmVmZXJyZXItaGVscGVyLnBocApfX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCk5h
bWU6IHN2bjpleGVjdXRhYmxlCiAgICsgKgoK
</data>
<flag name="review"
          id="12613"
          type_id="1"
          status="+"
          setter="eric"
    />
          </attachment>
      

    </bug>

</bugzilla>