<?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>23708</bug_id>
          
          <creation_ts>2009-02-03 11:34:20 -0800</creation_ts>
          <short_desc>Would like to have a callback when an HTML element is first added to the DOM</short_desc>
          <delta_ts>2009-02-05 23:41:47 -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>WebKit API</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Aaron Boodman">aa</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>ap</cc>
    
    <cc>hyatt</cc>
    
    <cc>oliver</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>108133</commentid>
    <comment_count>0</comment_count>
    <who name="Aaron Boodman">aa</who>
    <bug_when>2009-02-03 11:34:20 -0800</bug_when>
    <thetext>It would be useful to have a callback (perhaps on FrameLoaderClient) for when the HTML element is first added to the DOM. This would b fired around the same time as the existing windowObjectCleared() callback, but the difference would be that clients would be guaranteed there is a root HTML element available that they can start using.

The specific use case I have in mind in user scripts in Chromium. In Firefox, developers frequently asked for a way to run their user scripts before any HTML or script had been run on the page. A typical reason would be so that they could add CSS to the page before rendering started, or to setup event handlers.

In order to add CSS, we need a callback after there is an HTML element to append new style elements to, and windowObjectCleared() happens before this point currently.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>108134</commentid>
    <comment_count>1</comment_count>
      <attachid>27282</attachid>
    <who name="Aaron Boodman">aa</who>
    <bug_when>2009-02-03 11:37:47 -0800</bug_when>
    <thetext>Created attachment 27282
Adds htmlElementAvailable() callback to FrameLoaderClient

This is a first cut of what I&apos;m talking about. It works for HTML and XHTML documents, but not SVG. SVG is not critical for my use case, and it looks like parsing works much differently in SVG.

Also, please let me know what the right way is to add testing for something like this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>108137</commentid>
    <comment_count>2</comment_count>
      <attachid>27282</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2009-02-03 11:52:19 -0800</bug_when>
    <thetext>Comment on attachment 27282
Adds htmlElementAvailable() callback to FrameLoaderClient

I think this callback should just be documentElementAvailable rather than being specific to &lt;html&gt;.

You did not patch XHTML, but only patched the HTML parser.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>108193</commentid>
    <comment_count>3</comment_count>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2009-02-03 15:34:06 -0800</bug_when>
    <thetext>You&apos;d also need to implement the new method for all platforms rather than just Mac, otherwise the build will break.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>108211</commentid>
    <comment_count>4</comment_count>
      <attachid>27300</attachid>
    <who name="Aaron Boodman">aa</who>
    <bug_when>2009-02-03 17:03:45 -0800</bug_when>
    <thetext>Created attachment 27300
Fixes per review feedback

Changed callback name to documentElementAvailable(), implemented for XML documents (which should cover SVG, XHTML, and WML I believe), and added empty implementations of callback for other platforms.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>108212</commentid>
    <comment_count>5</comment_count>
      <attachid>27301</attachid>
    <who name="Aaron Boodman">aa</who>
    <bug_when>2009-02-03 17:10:06 -0800</bug_when>
    <thetext>Created attachment 27301
Fix whitespace issues in previous patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>108379</commentid>
    <comment_count>6</comment_count>
      <attachid>27301</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2009-02-04 17:51:02 -0800</bug_when>
    <thetext>Comment on attachment 27301
Fix whitespace issues in previous patch

Nearly there...

Looks like your Changelog needs to be regenerated?

The change to HTMLParser.cpp could just be a single if statement.

if (localName == htmlTag &amp;&amp; document-&gt;frame())

I don&apos;t know if Qt wants this or not but for completeness you would need to patch their XMLTokenizer as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>108404</commentid>
    <comment_count>7</comment_count>
      <attachid>27343</attachid>
    <who name="Aaron Boodman">aa</who>
    <bug_when>2009-02-04 23:56:04 -0800</bug_when>
    <thetext>Created attachment 27343
More fixes

Updated ChangeLog, made changes as suggested in HTMLParser, and added an implementation to XMLTokenizerQt.cpp.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>108405</commentid>
    <comment_count>8</comment_count>
      <attachid>27343</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2009-02-05 00:04:11 -0800</bug_when>
    <thetext>Comment on attachment 27343
More fixes

&gt;Index: WebCore/ChangeLog
...
&gt;+2009-02-04  Aaron Boodman  &lt;set EMAIL_ADDRESS environment variable&gt;
&gt;+
&gt;+        Reviewed by NOBODY (OOPS!).
&gt;+
&gt;+        WARNING: NO TEST CASES ADDED OR CHANGED
&gt;+

Usually, this is where people add a link to the bug and a description of the change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>108406</commentid>
    <comment_count>9</comment_count>
      <attachid>27344</attachid>
    <who name="Aaron Boodman">aa</who>
    <bug_when>2009-02-05 00:10:06 -0800</bug_when>
    <thetext>Created attachment 27344
Add description and link to bug to ChangeLog files

Whoops, you are right. Fixed now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>108522</commentid>
    <comment_count>10</comment_count>
      <attachid>27344</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2009-02-05 14:52:54 -0800</bug_when>
    <thetext>Comment on attachment 27344
Add description and link to bug to ChangeLog files

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>108544</commentid>
    <comment_count>11</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2009-02-05 16:01:08 -0800</bug_when>
    <thetext>Landed as http://trac.webkit.org/changeset/40694.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>108596</commentid>
    <comment_count>12</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2009-02-05 23:41:47 -0800</bug_when>
    <thetext>This broke the gtk build:
http://build.webkit.org/builders/trunk-qt-linux-release/builds/13432/steps/compile-release_2/logs/stdio

/home/zrusin/WebKit-BuildSlave/trunk-qt-linux-release/build/WebKitBuild/Release/lib/libQtWebKit.so: undefined reference to `non-virtual thunk to WebCore::FrameLoaderClientQt::documentElementAvailable()&apos;
/home/zrusin/WebKit-BuildSlave/trunk-qt-linux-release/build/WebKitBuild/Release/lib/libQtWebKit.so: undefined reference to `WebCore::FrameLoaderClientQt::documentElementAvailable()&apos;
</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>27282</attachid>
            <date>2009-02-03 11:37:47 -0800</date>
            <delta_ts>2009-02-04 23:56:04 -0800</delta_ts>
            <desc>Adds htmlElementAvailable() callback to FrameLoaderClient</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>5295</size>
            <attacher name="Aaron Boodman">aa</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0MDUzOSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjIgQEAKKzIwMDktMDItMDMgIEFhcm9uIEJvb2RtYW4gIGFhQGNocm9taXVtLm9y
ZworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdBUk5J
Tkc6IE5PIFRFU1QgQ0FTRVMgQURERUQgT1IgQ0hBTkdFRAorCisgICAgICAgICogaHRtbC9IVE1M
UGFyc2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxQYXJzZXI6Omluc2VydE5vZGUpOiBJ
bnZva2UgbmV3IGh0bWxFbGVtZW50QXZhaWxhYmxlKCkKKyAgICAgICAgY2FsbGJhY2sgb24gRnJh
bWVMb2FlckNsaWVudC4KKyAgICAgICAgKiBsb2FkZXIvRW1wdHlDbGllbnRzLmg6CisgICAgICAg
IChXZWJDb3JlOjpFbXB0eUZyYW1lTG9hZGVyQ2xpZW50OjpodG1sRWxlbWVudEF2YWlsYWJsZSk6
CisgICAgICAgIGh0bWxFbGVtZW50QXZhaWxhYmxlKCkgY2FsbGJhY2sgcGx1bWJpbmcuCisgICAg
ICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcDogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpG
cmFtZUxvYWRlcjo6bG9hZEl0ZW0pOiBEaXR0by4KKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2Fk
ZXIuaDogRGl0dG8uCisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50Lmg6IEFkZCBu
ZXcgaHRtbEVsZW1lbnRBdmFpbGFibGUoKQorICAgICAgICBjYWxsYmFjayB3aGljaCBpcyBydW4g
d2hlbiB0aGUgcGFyc2VyIGZpcnN0IGFkZHMgYW4gSFRNTAorICAgICAgICBlbGVtZW50LgorCiAy
MDA5LTAyLTAzICBBZGFtIFRyZWF0ICA8YWRhbS50cmVhdEB0b3JjaG1vYmlsZS5jb20+CiAKICAg
ICAgICAgRml4IHRoZSBRdCBidWlsZCBhZnRlciByNDA1MzYuCkluZGV4OiBXZWJDb3JlL2h0bWwv
SFRNTFBhcnNlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL0hUTUxQYXJzZXIuY3Bw
CShyZXZpc2lvbiA0MDUzOSkKKysrIFdlYkNvcmUvaHRtbC9IVE1MUGFyc2VyLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMzUzLDYgKzM1MywxMSBAQCBib29sIEhUTUxQYXJzZXI6Omluc2VydE5vZGUo
Tm9kZSogbiwgYm9vCiAgICAgICAgIG4tPmZpbmlzaFBhcnNpbmdDaGlsZHJlbigpOwogICAgIH0K
IAorICAgIGlmIChsb2NhbE5hbWUgPT0gaHRtbFRhZykgeworICAgICAgICBpZiAoZG9jdW1lbnQt
PmZyYW1lKCkpCisgICAgICAgICAgICBkb2N1bWVudC0+ZnJhbWUoKS0+bG9hZGVyKCktPmRpc3Bh
dGNoSHRtbEVsZW1lbnRBdmFpbGFibGUoKTsKKyAgICB9CisKICAgICByZXR1cm4gdHJ1ZTsKIH0K
IApJbmRleDogV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgJKHJldmlzaW9uIDQwNTM5KQorKysgV2ViQ29yZS9s
b2FkZXIvRW1wdHlDbGllbnRzLmgJKHdvcmtpbmcgY29weSkKQEAgLTI1OCw2ICsyNTgsNyBAQCBw
dWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgcmVkaXJlY3REYXRhVG9QbHVnaW4oV2lkZ2V0Kikg
eyB9CiAgICAgdmlydHVhbCB2b2lkIHdpbmRvd09iamVjdENsZWFyZWQoKSB7IH0KKyAgICB2aXJ0
dWFsIHZvaWQgaHRtbEVsZW1lbnRBdmFpbGFibGUoKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgZGlk
UGVyZm9ybUZpcnN0TmF2aWdhdGlvbigpIGNvbnN0IHsgfQogCiAgICAgdmlydHVhbCB2b2lkIHJl
Z2lzdGVyRm9ySWNvbk5vdGlmaWNhdGlvbihib29sKSB7IH0KSW5kZXg6IFdlYkNvcmUvbG9hZGVy
L0ZyYW1lTG9hZGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRl
ci5jcHAJKHJldmlzaW9uIDQwNTM5KQorKysgV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC01MTI1LDYgKzUxMjUsMTEgQEAgU3RyaW5nIEZyYW1lTG9hZGVy
OjpyZWZlcnJlcigpIGNvbnN0CiAgICAgcmV0dXJuIGRvY3VtZW50TG9hZGVyKCktPnJlcXVlc3Qo
KS5odHRwUmVmZXJyZXIoKTsKIH0KIAordm9pZCBGcmFtZUxvYWRlcjo6ZGlzcGF0Y2hIdG1sRWxl
bWVudEF2YWlsYWJsZSgpCit7CisgICAgbV9jbGllbnQtPmh0bWxFbGVtZW50QXZhaWxhYmxlKCk7
Cit9CisKIHZvaWQgRnJhbWVMb2FkZXI6OmRpc3BhdGNoV2luZG93T2JqZWN0QXZhaWxhYmxlKCkK
IHsKICAgICBpZiAoIW1fZnJhbWUtPnNjcmlwdCgpLT5pc0VuYWJsZWQoKSB8fCAhbV9mcmFtZS0+
c2NyaXB0KCktPmhhdmVXaW5kb3dTaGVsbCgpKQpJbmRleDogV2ViQ29yZS9sb2FkZXIvRnJhbWVM
b2FkZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5oCShyZXZp
c2lvbiA0MDUzOSkKKysrIFdlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTM0Niw2ICszNDYsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIFdpZGdl
dCogY3JlYXRlSmF2YUFwcGxldFdpZGdldChjb25zdCBJbnRTaXplJiwgSFRNTEFwcGxldEVsZW1l
bnQqLCBjb25zdCBIYXNoTWFwPFN0cmluZywgU3RyaW5nPiYgYXJncyk7CiAKICAgICAgICAgdm9p
ZCBkaXNwYXRjaFdpbmRvd09iamVjdEF2YWlsYWJsZSgpOworICAgICAgICB2b2lkIGRpc3BhdGNo
SHRtbEVsZW1lbnRBdmFpbGFibGUoKTsKICAgICAgICAgdm9pZCByZXN0b3JlRG9jdW1lbnRTdGF0
ZSgpOwogCiAgICAgICAgIEZyYW1lKiBvcGVuZXIoKTsKSW5kZXg6IFdlYkNvcmUvbG9hZGVyL0Zy
YW1lTG9hZGVyQ2xpZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2Fk
ZXJDbGllbnQuaAkocmV2aXNpb24gNDA1MzkpCisrKyBXZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRl
ckNsaWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMDcsNiArMjA3LDcgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogICAgICAgICB2aXJ0dWFsIFN0cmluZyBvdmVycmlkZU1lZGlhVHlwZSgpIGNvbnN0
ID0gMDsKIAogICAgICAgICB2aXJ0dWFsIHZvaWQgd2luZG93T2JqZWN0Q2xlYXJlZCgpID0gMDsK
KyAgICAgICAgdmlydHVhbCB2b2lkIGh0bWxFbGVtZW50QXZhaWxhYmxlKCkgPSAwOwogICAgICAg
ICB2aXJ0dWFsIHZvaWQgZGlkUGVyZm9ybUZpcnN0TmF2aWdhdGlvbigpIGNvbnN0ID0gMDsgLy8g
Ik5hdmlnYXRpb24iIGhlcmUgbWVhbnMgYSB0cmFuc2l0aW9uIGZyb20gb25lIHBhZ2UgdG8gYW5v
dGhlciB0aGF0IGVuZHMgdXAgaW4gdGhlIGJhY2svZm9yd2FyZCBsaXN0LgogICAgICAgICAKICAg
ICAgICAgdmlydHVhbCB2b2lkIHJlZ2lzdGVyRm9ySWNvbk5vdGlmaWNhdGlvbihib29sIGxpc3Rl
biA9IHRydWUpID0gMDsKSW5kZXg6IFdlYktpdC9tYWMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYktpdC9tYWMvQ2hhbmdlTG9nCShyZXZpc2lvbiA0MDUzOSkKKysrIFdlYktpdC9tYWMvQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTIgQEAKKzIwMDktMDItMDMgIEFhcm9u
IEJvb2RtYW4gIGFhQGNocm9taXVtLm9yZworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQu
aDoKKyAgICAgICAgU3R1YiBvdXQgbmV3IGh0bWxFbGVtZW50QXZhaWxhYmxlKCkgY2FsbGJhY2su
CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW06CisgICAg
ICAgIERpdHRvLgorCiAyMDA5LTAyLTAyICBHZW9mZnJleSBHYXJlbiAgPGdnYXJlbkBhcHBsZS5j
b20+CiAKICAgICAgICAgQnVpbGQgZml4LgpJbmRleDogV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9y
dC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9tYWMvV2ViQ29y
ZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAkocmV2aXNpb24gNDA1MzkpCisrKyBXZWJL
aXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgJKHdvcmtpbmcgY29w
eSkKQEAgLTE4OCw2ICsxODgsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgV2ViQ29yZTo6U3Ry
aW5nIG92ZXJyaWRlTWVkaWFUeXBlKCkgY29uc3Q7CiAgICAgCiAgICAgdmlydHVhbCB2b2lkIHdp
bmRvd09iamVjdENsZWFyZWQoKTsKKyAgICB2aXJ0dWFsIHZvaWQgaHRtbEVsZW1lbnRBdmFpbGFi
bGUoKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkUGVyZm9ybUZpcnN0TmF2aWdhdGlvbigpIGNvbnN0
OwogCiAgICAgdmlydHVhbCB2b2lkIHJlZ2lzdGVyRm9ySWNvbk5vdGlmaWNhdGlvbihib29sIGxp
c3Rlbik7CkluZGV4OiBXZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xp
ZW50Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVM
b2FkZXJDbGllbnQubW0JKHJldmlzaW9uIDQwNTM5KQorKysgV2ViS2l0L21hYy9XZWJDb3JlU3Vw
cG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbQkod29ya2luZyBjb3B5KQpAQCAtMTU5Miw2ICsx
NTkyLDkgQEAgU3RyaW5nIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpvdmVycmlkZU1lZAogICAgICAg
ICByZXR1cm4gb3ZlcnJpZGVUeXBlOwogICAgIHJldHVybiBTdHJpbmcoKTsKIH0KKyAgICAKK3Zv
aWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6Omh0bWxFbGVtZW50QXZhaWxhYmxlKCkgeworfQogCiB2
b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50Ojp3aW5kb3dPYmplY3RDbGVhcmVkKCkKIHsK
</data>
<flag name="review"
          id="13152"
          type_id="1"
          status="-"
          setter="hyatt"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>27300</attachid>
            <date>2009-02-03 17:03:45 -0800</date>
            <delta_ts>2009-02-04 23:56:04 -0800</delta_ts>
            <desc>Fixes per review feedback</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>12865</size>
            <attacher name="Aaron Boodman">aa</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0MDU1NykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjIgQEAKKzIwMDktMDItMDMgIEFhcm9uIEJvb2RtYW4gIDxhYUBjaHJvbWl1bS5v
cmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV0FS
TklORzogTk8gVEVTVCBDQVNFUyBBRERFRCBPUiBDSEFOR0VECisKKyAgICAgICAgKiBodG1sL0hU
TUxQYXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFBhcnNlcjo6aW5zZXJ0Tm9kZSk6
IEludm9rZSBuZXcgZG9jdW1lbnRFbGVtZW50QXZhaWxhYmxlKCkKKyAgICAgICAgY2FsbGJhY2sg
b24gRnJhbWVMb2FlckNsaWVudC4KKyAgICAgICAgKiBsb2FkZXIvRW1wdHlDbGllbnRzLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpFbXB0eUZyYW1lTG9hZGVyQ2xpZW50Ojpkb2N1bWVudEVsZW1lbnRB
dmFpbGFibGUpOgorICAgICAgICBkb2N1bWVudEVsZW1lbnRBdmFpbGFibGUoKSBjYWxsYmFjayBw
bHVtYmluZy4KKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXIuY3BwOiBEaXR0by4KKyAgICAg
ICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpsb2FkSXRlbSk6IERpdHRvLgorICAgICAgICAqIGxv
YWRlci9GcmFtZUxvYWRlci5oOiBEaXR0by4KKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXJD
bGllbnQuaDogQWRkIG5ldyBkb2N1bWVudEVsZW1lbnRBdmFpbGFibGUoKQorICAgICAgICBjYWxs
YmFjayB3aGljaCBpcyBydW4gd2hlbiB0aGUgcGFyc2VyIGZpcnN0IGFkZHMgYW4gSFRNTAorICAg
ICAgICBlbGVtZW50LgorCiAyMDA5LTAyLTAzICBEYXZpZCBIeWF0dCAgPGh5YXR0QGFwcGxlLmNv
bT4KIAogICAgICAgICBCYWNrIHRoaXMgY2hhbmdlIG91dCBzaW5jZSBpdCBpcyBjYXVzaW5nIGxh
eW91dCB0ZXN0cyB0byBjcmFzaC4gIFRoZXJlIGlzIHNvbWV0aGluZyBzdWJ0bGUgZ29pbmcgb24K
SW5kZXg6IFdlYkNvcmUvZG9tL1hNTFRva2VuaXplckxpYnhtbDIuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvZG9tL1hNTFRva2VuaXplckxpYnhtbDIuY3BwCShyZXZpc2lvbiA0MDUzOSkKKysr
IFdlYkNvcmUvZG9tL1hNTFRva2VuaXplckxpYnhtbDIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03
MDYsNyArNzA2LDggQEAgdm9pZCBYTUxUb2tlbml6ZXI6OnN0YXJ0RWxlbWVudE5zKGNvbnN0IAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
bmJfYXR0cmlidXRlcywgbmJfZGVmYXVsdGVkLCBsaWJ4bWxBdHRyaWJ1dGVzKTsKICAgICAgICAg
cmV0dXJuOwogICAgIH0KLSAgICAKKworICAgIGJvb2wgaXNGaXJzdEVsZW1lbnQgPSAhbV9zYXdG
aXJzdEVsZW1lbnQ7CiAgICAgbV9zYXdGaXJzdEVsZW1lbnQgPSB0cnVlOwogCiAgICAgZXhpdFRl
eHQoKTsKQEAgLTc2Myw2ICs3NjQsOSBAQCB2b2lkIFhNTFRva2VuaXplcjo6c3RhcnRFbGVtZW50
TnMoY29uc3QgCiAgICAgc2V0Q3VycmVudE5vZGUobmV3RWxlbWVudC5nZXQoKSk7CiAgICAgaWYg
KG1fdmlldyAmJiAhbmV3RWxlbWVudC0+YXR0YWNoZWQoKSkKICAgICAgICAgbmV3RWxlbWVudC0+
YXR0YWNoKCk7CisKKyAgICBpZiAoaXNGaXJzdEVsZW1lbnQgJiYgbV9kb2MtPmZyYW1lKCkpCisg
ICAgICAgIG1fZG9jLT5mcmFtZSgpLT5sb2FkZXIoKS0+ZGlzcGF0Y2hEb2N1bWVudEVsZW1lbnRB
dmFpbGFibGUoKTsKIH0KIAogdm9pZCBYTUxUb2tlbml6ZXI6OmVuZEVsZW1lbnROcygpCkluZGV4
OiBXZWJDb3JlL2h0bWwvSFRNTFBhcnNlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1s
L0hUTUxQYXJzZXIuY3BwCShyZXZpc2lvbiA0MDUzOSkKKysrIFdlYkNvcmUvaHRtbC9IVE1MUGFy
c2VyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzUzLDYgKzM1MywxMSBAQCBib29sIEhUTUxQYXJz
ZXI6Omluc2VydE5vZGUoTm9kZSogbiwgYm9vCiAgICAgICAgIG4tPmZpbmlzaFBhcnNpbmdDaGls
ZHJlbigpOwogICAgIH0KIAorICAgICBpZiAobG9jYWxOYW1lID09IGh0bWxUYWcpIHsKKyAgICAg
ICAgIGlmIChkb2N1bWVudC0+ZnJhbWUoKSkKKyAgICAgICAgICAgICBkb2N1bWVudC0+ZnJhbWUo
KS0+bG9hZGVyKCktPmRpc3BhdGNoRG9jdW1lbnRFbGVtZW50QXZhaWxhYmxlKCk7CisgICAgIH0K
KwogICAgIHJldHVybiB0cnVlOwogfQogCkluZGV4OiBXZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVu
dHMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAkocmV2aXNp
b24gNDA1MzkpCisrKyBXZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAkod29ya2luZyBjb3B5
KQpAQCAtMjU4LDYgKzI1OCw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCByZWRpcmVj
dERhdGFUb1BsdWdpbihXaWRnZXQqKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgd2luZG93T2JqZWN0
Q2xlYXJlZCgpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBkb2N1bWVudEVsZW1lbnRBdmFpbGFibGUo
KSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgZGlkUGVyZm9ybUZpcnN0TmF2aWdhdGlvbigpIGNvbnN0
IHsgfQogCiAgICAgdmlydHVhbCB2b2lkIHJlZ2lzdGVyRm9ySWNvbk5vdGlmaWNhdGlvbihib29s
KSB7IH0KSW5kZXg6IFdlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAJKHJldmlzaW9uIDQwNTM5KQorKysgV2Vi
Q29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01MTI1LDYgKzUx
MjUsMTEgQEAgU3RyaW5nIEZyYW1lTG9hZGVyOjpyZWZlcnJlcigpIGNvbnN0CiAgICAgcmV0dXJu
IGRvY3VtZW50TG9hZGVyKCktPnJlcXVlc3QoKS5odHRwUmVmZXJyZXIoKTsKIH0KIAordm9pZCBG
cmFtZUxvYWRlcjo6ZGlzcGF0Y2hEb2N1bWVudEVsZW1lbnRBdmFpbGFibGUoKQoreworICAgIG1f
Y2xpZW50LT5kb2N1bWVudEVsZW1lbnRBdmFpbGFibGUoKTsKK30KKwogdm9pZCBGcmFtZUxvYWRl
cjo6ZGlzcGF0Y2hXaW5kb3dPYmplY3RBdmFpbGFibGUoKQogewogICAgIGlmICghbV9mcmFtZS0+
c2NyaXB0KCktPmlzRW5hYmxlZCgpIHx8ICFtX2ZyYW1lLT5zY3JpcHQoKS0+aGF2ZVdpbmRvd1No
ZWxsKCkpCkluZGV4OiBXZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmgJKHJldmlzaW9uIDQwNTM5KQorKysgV2ViQ29y
ZS9sb2FkZXIvRnJhbWVMb2FkZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMzQ2LDYgKzM0Niw3IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgV2lkZ2V0KiBjcmVhdGVKYXZhQXBwbGV0V2lk
Z2V0KGNvbnN0IEludFNpemUmLCBIVE1MQXBwbGV0RWxlbWVudCosIGNvbnN0IEhhc2hNYXA8U3Ry
aW5nLCBTdHJpbmc+JiBhcmdzKTsKIAogICAgICAgICB2b2lkIGRpc3BhdGNoV2luZG93T2JqZWN0
QXZhaWxhYmxlKCk7CisgICAgICAgIHZvaWQgZGlzcGF0Y2hEb2N1bWVudEVsZW1lbnRBdmFpbGFi
bGUoKTsKICAgICAgICAgdm9pZCByZXN0b3JlRG9jdW1lbnRTdGF0ZSgpOwogCiAgICAgICAgIEZy
YW1lKiBvcGVuZXIoKTsKSW5kZXg6IFdlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaAkocmV2aXNp
b24gNDA1MzkpCisrKyBXZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oCSh3b3JraW5n
IGNvcHkpCkBAIC0yMDcsNiArMjA3LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2
aXJ0dWFsIFN0cmluZyBvdmVycmlkZU1lZGlhVHlwZSgpIGNvbnN0ID0gMDsKIAogICAgICAgICB2
aXJ0dWFsIHZvaWQgd2luZG93T2JqZWN0Q2xlYXJlZCgpID0gMDsKKyAgICAgICAgdmlydHVhbCB2
b2lkIGRvY3VtZW50RWxlbWVudEF2YWlsYWJsZSgpID0gMDsKICAgICAgICAgdmlydHVhbCB2b2lk
IGRpZFBlcmZvcm1GaXJzdE5hdmlnYXRpb24oKSBjb25zdCA9IDA7IC8vICJOYXZpZ2F0aW9uIiBo
ZXJlIG1lYW5zIGEgdHJhbnNpdGlvbiBmcm9tIG9uZSBwYWdlIHRvIGFub3RoZXIgdGhhdCBlbmRz
IHVwIGluIHRoZSBiYWNrL2ZvcndhcmQgbGlzdC4KICAgICAgICAgCiAgICAgICAgIHZpcnR1YWwg
dm9pZCByZWdpc3RlckZvckljb25Ob3RpZmljYXRpb24oYm9vbCBsaXN0ZW4gPSB0cnVlKSA9IDA7
CkluZGV4OiBXZWJLaXQvZ3RrL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvZ3RrL0No
YW5nZUxvZwkocmV2aXNpb24gNDA1NTcpCisrKyBXZWJLaXQvZ3RrL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDEzIEBACisyMDA5LTAyLTAzICBBYXJvbiBCb29kbWFuIDxhYUBj
aHJvbWl1bS5vcmc+IAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudDo6ZG9jdW1lbnRFbGVtZW50QXZhaWxhYmxlKToK
KwlTdHViIG91dCBkb2N1bWVudEVsZW1lbnRBdmFpbGFibGUoKQorICAgICAgICAqIFdlYkNvcmVT
dXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmg6CisJRGl0dG8uCisKIDIwMDktMDItMDMgIEhp
cm95dWtpIElrZXpvZSAgPHBvaW5jYXJlQGlrZXpvZS5uZXQ+CiAKICAgICAgICAgUmV2aWV3ZWQg
YnkgSG9sZ2VyIEZyZXl0aGVyLgpJbmRleDogV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFt
ZUxvYWRlckNsaWVudEd0ay5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2d0ay9XZWJDb3JlU3Vw
cG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHAJKHJldmlzaW9uIDQwNTM5KQorKysgV2ViS2l0
L2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTQ3MCw2ICs0NzAsMTAgQEAgdm9pZCBGcmFtZUxvYWRlckNsaWVudDo6d2luZG93T2Jq
ZWN0Q2xlYQogICAgIC8vIFRPRE86IFJlLWF0dGFjaCBkZWJ1ZyBjbGllbnRzIGlmIHByZXNlbnQu
CiAgICAgLy8gVGhlIFdpbiBwb3J0IGhhcyBhbiBleGFtcGxlIG9mIGhvdyB3ZSBtaWdodCBkbyB0
aGlzLgogfQorCQordm9pZCBGcmFtZUxvYWRlckNsaWVudDo6ZG9jdW1lbnRFbGVtZW50QXZhaWxh
YmxlKCkKK3sKK30KIAogdm9pZCBGcmFtZUxvYWRlckNsaWVudDo6ZGlkUGVyZm9ybUZpcnN0TmF2
aWdhdGlvbigpIGNvbnN0CiB7CkluZGV4OiBXZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1l
TG9hZGVyQ2xpZW50R3RrLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9y
dC9GcmFtZUxvYWRlckNsaWVudEd0ay5oCShyZXZpc2lvbiA0MDUzOSkKKysrIFdlYktpdC9ndGsv
V2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuaAkod29ya2luZyBjb3B5KQpAQCAt
MTE0LDYgKzExNCw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogICAgICAgICB2aXJ0dWFsIFdlYkNv
cmU6OldpZGdldCogY3JlYXRlSmF2YUFwcGxldFdpZGdldChjb25zdCBXZWJDb3JlOjpJbnRTaXpl
JiwgV2ViQ29yZTo6SFRNTEFwcGxldEVsZW1lbnQqLCBjb25zdCBXZWJDb3JlOjpLVVJMJiBiYXNl
VVJMLCBjb25zdCBXVEY6OlZlY3RvcjxXZWJDb3JlOjpTdHJpbmc+JiBwYXJhbU5hbWVzLCBjb25z
dCBXVEY6OlZlY3RvcjxXZWJDb3JlOjpTdHJpbmc+JiBwYXJhbVZhbHVlcyk7CiAgICAgICAgIHZp
cnR1YWwgV2ViQ29yZTo6U3RyaW5nIG92ZXJyaWRlTWVkaWFUeXBlKCkgY29uc3Q7CiAgICAgICAg
IHZpcnR1YWwgdm9pZCB3aW5kb3dPYmplY3RDbGVhcmVkKCk7CisgICAgICAgIHZpcnR1YWwgdm9p
ZCBkb2N1bWVudEVsZW1lbnRBdmFpbGFibGUoKTsKICAgICAgICAgdmlydHVhbCB2b2lkIGRpZFBl
cmZvcm1GaXJzdE5hdmlnYXRpb24oKSBjb25zdDsKIAogICAgICAgICB2aXJ0dWFsIHZvaWQgcmVn
aXN0ZXJGb3JJY29uTm90aWZpY2F0aW9uKGJvb2wpOwpJbmRleDogV2ViS2l0L21hYy9DaGFuZ2VM
b2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViS2l0L21hYy9DaGFuZ2VMb2cJKHJldmlzaW9uIDQwNTU3KQor
KysgV2ViS2l0L21hYy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxMiBAQAor
MjAwOS0wMi0wMyAgQWFyb24gQm9vZG1hbiAgPGFhQGNocm9taXVtLm9yZz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dl
YkZyYW1lTG9hZGVyQ2xpZW50Lmg6CisgICAgICAgIFN0dWIgb3V0IGRvY3VtZW50RWxlbWVudEF2
YWlsYWJsZSgpLgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50
Lm1tOgorICAgICAgICBEaXR0by4KKwogMjAwOS0wMi0wMyAgU2ltb24gRnJhc2VyICA8c2ltb24u
ZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXZlIEh5YXR0CkluZGV4
OiBXZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5o
CShyZXZpc2lvbiA0MDUzOSkKKysrIFdlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVM
b2FkZXJDbGllbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMTg4LDYgKzE4OCw3IEBAIHByaXZhdGU6
CiAgICAgdmlydHVhbCBXZWJDb3JlOjpTdHJpbmcgb3ZlcnJpZGVNZWRpYVR5cGUoKSBjb25zdDsK
ICAgICAKICAgICB2aXJ0dWFsIHZvaWQgd2luZG93T2JqZWN0Q2xlYXJlZCgpOworICAgIHZpcnR1
YWwgdm9pZCBkb2N1bWVudEVsZW1lbnRBdmFpbGFibGUoKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlk
UGVyZm9ybUZpcnN0TmF2aWdhdGlvbigpIGNvbnN0OwogCiAgICAgdmlydHVhbCB2b2lkIHJlZ2lz
dGVyRm9ySWNvbk5vdGlmaWNhdGlvbihib29sIGxpc3Rlbik7CkluZGV4OiBXZWJLaXQvbWFjL1dl
YkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktp
dC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW0JKHJldmlzaW9uIDQw
NTM5KQorKysgV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5t
bQkod29ya2luZyBjb3B5KQpAQCAtMTU5Miw2ICsxNTkyLDkgQEAgU3RyaW5nIFdlYkZyYW1lTG9h
ZGVyQ2xpZW50OjpvdmVycmlkZU1lZAogICAgICAgICByZXR1cm4gb3ZlcnJpZGVUeXBlOwogICAg
IHJldHVybiBTdHJpbmcoKTsKIH0KKyAgICAKK3ZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRv
Y3VtZW50RWxlbWVudEF2YWlsYWJsZSgpIHsKK30KIAogdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVu
dDo6d2luZG93T2JqZWN0Q2xlYXJlZCgpCiB7CkluZGV4OiBXZWJLaXQvcXQvQ2hhbmdlTG9nCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYktpdC9xdC9DaGFuZ2VMb2cJKHJldmlzaW9uIDQwNTU3KQorKysgV2Vi
S2l0L3F0L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEzIEBACisyMDA5LTAy
LTAzICBBYXJvbiBCb29kbWFuICA8YWFAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2Fk
ZXJDbGllbnRRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlckNsaWVudDo6ZG9j
dW1lbnRFbGVtZW50QXZhaWxhYmxlKToKKwlTdHViIG91dCBkb2N1bWVudEVsZW1lbnRBdmFpbGFi
bGUoKS4KKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0Lmg6CisJ
RGl0dG8uCisKIDIwMDktMDItMDMgIFNpbW9uIEhhdXNtYW5uICA8c2ltb24uaGF1c21hbm5Abm9r
aWEuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFRvciBBcm5lIFZlc3Riw7guCkluZGV4OiBX
ZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuY3BwCShy
ZXZpc2lvbiA0MDUzOSkKKysrIFdlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNs
aWVudFF0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjA4LDYgKzYwOCwxMSBAQCB2b2lkIEZyYW1l
TG9hZGVyQ2xpZW50UXQ6OndpbmRvd09iamVjdENsCiAgICAgaWYgKG1fd2ViRnJhbWUpCiAgICAg
ICAgIGVtaXQgbV93ZWJGcmFtZS0+amF2YVNjcmlwdFdpbmRvd09iamVjdENsZWFyZWQoKTsKIH0K
KwkKK3ZvaWQgRnJhbWVMb2FkZXJDbGllbnQ6OmRvY3VtZW50RWxlbWVudEF2YWlsYWJsZSgpCit7
CisJcmV0dXJuOworfQogCiB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50UXQ6OmRpZFBlcmZvcm1GaXJz
dE5hdmlnYXRpb24oKSBjb25zdAogewpJbmRleDogV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Zy
YW1lTG9hZGVyQ2xpZW50UXQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvcXQvV2ViQ29yZVN1cHBv
cnQvRnJhbWVMb2FkZXJDbGllbnRRdC5oCShyZXZpc2lvbiA0MDUzOSkKKysrIFdlYktpdC9xdC9X
ZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0LmgJKHdvcmtpbmcgY29weSkKQEAgLTE5
Niw2ICsxOTYsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZpcnR1YWwgU3RyaW5n
IG92ZXJyaWRlTWVkaWFUeXBlKCkgY29uc3Q7CiAKICAgICAgICAgdmlydHVhbCB2b2lkIHdpbmRv
d09iamVjdENsZWFyZWQoKTsKKyAgICAgICAgdmlydHVhbCB2b2lkIGRvY3VtZW50RWxlbWVudEF2
YWlsYWJsZSgpOwogICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkUGVyZm9ybUZpcnN0TmF2aWdhdGlv
bigpIGNvbnN0OwogCiAgICAgICAgIHZpcnR1YWwgdm9pZCByZWdpc3RlckZvckljb25Ob3RpZmlj
YXRpb24oYm9vbCk7CkluZGV4OiBXZWJLaXQvd2luL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJLaXQvd2luL0NoYW5nZUxvZwkocmV2aXNpb24gNDA1NTcpCisrKyBXZWJLaXQvd2luL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEzIEBACisyMDA5LTAyLTAzICBBYXJvbiBC
b29kbWFuICA8YWFAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogV2ViRnJhbWUuY3BwOgorICAgICAgICAoV2ViRnJhbWU6OmRv
Y3VtZW50RWxlbWVudEF2YWlsYWJsZSk6CisJU3R1YiBvdXQgZG9jdW1lbnRFbGVtZW50QXZhaWxh
YmxlKCkKKyAgICAgICAgKiBXZWJGcmFtZS5oOgorCURpdHRvLgorCQogMjAwOS0wMi0wMyAgR2Vv
ZmZyZXkgR2FyZW4gIDxnZ2FyZW5AYXBwbGUuY29tPgogCiAgICAgICAgIEJ1aWxkIGZpeC4KSW5k
ZXg6IFdlYktpdC93aW4vV2ViRnJhbWUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC93aW4vV2Vi
RnJhbWUuY3BwCShyZXZpc2lvbiA0MDUzOSkKKysrIFdlYktpdC93aW4vV2ViRnJhbWUuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0xNTk1LDYgKzE1OTUsMTAgQEAgdm9pZCBXZWJGcmFtZTo6d2luZG93
T2JqZWN0Q2xlYXJlZCgpCiAgICAgfQogfQogCit2b2lkIFdlYkZyYW1lOjpkb2N1bWVudEVsZW1l
bnRBdmFpbGFibGUoKQoreworfQorCiB2b2lkIFdlYkZyYW1lOjpkaWRQZXJmb3JtRmlyc3ROYXZp
Z2F0aW9uKCkgY29uc3QKIHsKICAgICBDT01QdHI8SVdlYlByZWZlcmVuY2VzPiBwcmVmZXJlbmNl
czsKSW5kZXg6IFdlYktpdC93aW4vV2ViRnJhbWUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvd2lu
L1dlYkZyYW1lLmgJKHJldmlzaW9uIDQwNTM5KQorKysgV2ViS2l0L3dpbi9XZWJGcmFtZS5oCSh3
b3JraW5nIGNvcHkpCkBAIC0yODYsNiArMjg2LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgV2Vi
Q29yZTo6U3RyaW5nIG92ZXJyaWRlTWVkaWFUeXBlKCkgY29uc3Q7CiAKICAgICB2aXJ0dWFsIHZv
aWQgd2luZG93T2JqZWN0Q2xlYXJlZCgpOworICAgIHZpcnR1YWwgdm9pZCBkb2N1bWVudEVsZW1l
bnRBdmFpbGFibGUoKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkUGVyZm9ybUZpcnN0TmF2aWdhdGlv
bigpIGNvbnN0OwogCiAgICAgdmlydHVhbCB2b2lkIHJlZ2lzdGVyRm9ySWNvbk5vdGlmaWNhdGlv
bihib29sIGxpc3Rlbik7CkluZGV4OiBXZWJLaXQvd3gvQ2hhbmdlTG9nCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYktpdC93eC9DaGFuZ2VMb2cJKHJldmlzaW9uIDQwNTU3KQorKysgV2ViS2l0L3d4L0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEzIEBACisyMDA5LTAyLTAzICBBYXJvbiBC
b29kbWFuICA8YWFAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogV2ViS2l0U3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFd4LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50V3g6OmRvY3VtZW50RWxlbWVu
dEF2YWlsYWJsZSk6CisJU3R1YiBvdXQgZG9jdW1lbnRFbGVtZW50QXZhaWxhYmxlKCkuCisgICAg
ICAgICogV2ViS2l0U3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFd4Lmg6CisJRGl0dG8uCisJCiAy
MDA5LTAyLTAyICBHZW9mZnJleSBHYXJlbiAgPGdnYXJlbkBhcHBsZS5jb20+CiAKICAgICAgICAg
QnVpbGQgZml4LgpJbmRleDogV2ViS2l0L3d4L1dlYktpdFN1cHBvcnQvRnJhbWVMb2FkZXJDbGll
bnRXeC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L3d4L1dlYktpdFN1cHBvcnQvRnJhbWVMb2Fk
ZXJDbGllbnRXeC5jcHAJKHJldmlzaW9uIDQwNTM5KQorKysgV2ViS2l0L3d4L1dlYktpdFN1cHBv
cnQvRnJhbWVMb2FkZXJDbGllbnRXeC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTgyMCw2ICs4MjAs
MTAgQEAgdm9pZCBGcmFtZUxvYWRlckNsaWVudFd4Ojp3aW5kb3dPYmplY3RDbAogewogICAgIG5v
dEltcGxlbWVudGVkKCk7CiB9CisJCit2b2lkIEZyYW1lTG9hZGVyQ2xpZW50V3g6OmRvY3VtZW50
RWxlbWVudEF2YWlsYWJsZSgpIAoreworfQogCiB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50V3g6OmRp
ZFBlcmZvcm1GaXJzdE5hdmlnYXRpb24oKSBjb25zdAogewpJbmRleDogV2ViS2l0L3d4L1dlYktp
dFN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRXeC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC93eC9X
ZWJLaXRTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50V3guaAkocmV2aXNpb24gNDA1MzkpCisrKyBX
ZWJLaXQvd3gvV2ViS2l0U3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFd4LmgJKHdvcmtpbmcgY29w
eSkKQEAgLTE5OSw2ICsxOTksNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZpcnR1
YWwgU3RyaW5nIG92ZXJyaWRlTWVkaWFUeXBlKCkgY29uc3Q7CiAKICAgICAgICAgdmlydHVhbCB2
b2lkIHdpbmRvd09iamVjdENsZWFyZWQoKTsKKyAgICAgICAgdmlydHVhbCB2b2lkIGRvY3VtZW50
RWxlbWVudEF2YWlsYWJsZSgpOwogICAgICAgICAKICAgICAgICAgdmlydHVhbCB2b2lkIGRpZFBl
cmZvcm1GaXJzdE5hdmlnYXRpb24oKSBjb25zdDsKICAgICAgICAgCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>27301</attachid>
            <date>2009-02-03 17:10:06 -0800</date>
            <delta_ts>2009-02-04 23:56:04 -0800</delta_ts>
            <desc>Fix whitespace issues in previous patch</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>12901</size>
            <attacher name="Aaron Boodman">aa</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0MDU1NykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjIgQEAKKzIwMDktMDItMDMgIEFhcm9uIEJvb2RtYW4gIDxhYUBjaHJvbWl1bS5v
cmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV0FS
TklORzogTk8gVEVTVCBDQVNFUyBBRERFRCBPUiBDSEFOR0VECisKKyAgICAgICAgKiBodG1sL0hU
TUxQYXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFBhcnNlcjo6aW5zZXJ0Tm9kZSk6
IEludm9rZSBuZXcgZG9jdW1lbnRFbGVtZW50QXZhaWxhYmxlKCkKKyAgICAgICAgY2FsbGJhY2sg
b24gRnJhbWVMb2FkZXJDbGllbnQuCisgICAgICAgICogbG9hZGVyL0VtcHR5Q2xpZW50cy5oOgor
ICAgICAgICAoV2ViQ29yZTo6RW1wdHlGcmFtZUxvYWRlckNsaWVudDo6ZG9jdW1lbnRFbGVtZW50
QXZhaWxhYmxlKToKKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RnJhbWVMb2FkZXI6OmxvYWRJdGVtKToKKyAgICAgICAgKiBsb2FkZXIvRnJhbWVM
b2FkZXIuaDoKKyAgICAgICAgZG9jdW1lbnRFbGVtZW50QXZhaWxhYmxlKCkgY2FsbGJhY2sgcGx1
bWJpbmcuCisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50Lmg6IEFkZCBuZXcgZG9j
dW1lbnRFbGVtZW50QXZhaWxhYmxlKCkKKyAgICAgICAgY2FsbGJhY2sgd2hpY2ggaXMgcnVuIHdo
ZW4gdGhlIHBhcnNlciBmaXJzdCBhZGRzIGFuIEhUTUwKKyAgICAgICAgZWxlbWVudC4KKwogMjAw
OS0wMi0wMyAgRGF2aWQgSHlhdHQgIDxoeWF0dEBhcHBsZS5jb20+CiAKICAgICAgICAgQmFjayB0
aGlzIGNoYW5nZSBvdXQgc2luY2UgaXQgaXMgY2F1c2luZyBsYXlvdXQgdGVzdHMgdG8gY3Jhc2gu
ICBUaGVyZSBpcyBzb21ldGhpbmcgc3VidGxlIGdvaW5nIG9uCkluZGV4OiBXZWJDb3JlL2RvbS9Y
TUxUb2tlbml6ZXJMaWJ4bWwyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2RvbS9YTUxUb2tl
bml6ZXJMaWJ4bWwyLmNwcAkocmV2aXNpb24gNDA1MzkpCisrKyBXZWJDb3JlL2RvbS9YTUxUb2tl
bml6ZXJMaWJ4bWwyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzA2LDcgKzcwNiw4IEBAIHZvaWQg
WE1MVG9rZW5pemVyOjpzdGFydEVsZW1lbnROcyhjb25zdCAKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5iX2F0dHJpYnV0ZXMsIG5iX2Rl
ZmF1bHRlZCwgbGlieG1sQXR0cmlidXRlcyk7CiAgICAgICAgIHJldHVybjsKICAgICB9Ci0gICAg
CisKKyAgICBib29sIGlzRmlyc3RFbGVtZW50ID0gIW1fc2F3Rmlyc3RFbGVtZW50OwogICAgIG1f
c2F3Rmlyc3RFbGVtZW50ID0gdHJ1ZTsKIAogICAgIGV4aXRUZXh0KCk7CkBAIC03NjMsNiArNzY0
LDkgQEAgdm9pZCBYTUxUb2tlbml6ZXI6OnN0YXJ0RWxlbWVudE5zKGNvbnN0IAogICAgIHNldEN1
cnJlbnROb2RlKG5ld0VsZW1lbnQuZ2V0KCkpOwogICAgIGlmIChtX3ZpZXcgJiYgIW5ld0VsZW1l
bnQtPmF0dGFjaGVkKCkpCiAgICAgICAgIG5ld0VsZW1lbnQtPmF0dGFjaCgpOworCisgICAgaWYg
KGlzRmlyc3RFbGVtZW50ICYmIG1fZG9jLT5mcmFtZSgpKQorICAgICAgICBtX2RvYy0+ZnJhbWUo
KS0+bG9hZGVyKCktPmRpc3BhdGNoRG9jdW1lbnRFbGVtZW50QXZhaWxhYmxlKCk7CiB9CiAKIHZv
aWQgWE1MVG9rZW5pemVyOjplbmRFbGVtZW50TnMoKQpJbmRleDogV2ViQ29yZS9odG1sL0hUTUxQ
YXJzZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9IVE1MUGFyc2VyLmNwcAkocmV2
aXNpb24gNDA1MzkpCisrKyBXZWJDb3JlL2h0bWwvSFRNTFBhcnNlci5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTM1Myw2ICszNTMsMTEgQEAgYm9vbCBIVE1MUGFyc2VyOjppbnNlcnROb2RlKE5vZGUq
IG4sIGJvbwogICAgICAgICBuLT5maW5pc2hQYXJzaW5nQ2hpbGRyZW4oKTsKICAgICB9CiAKKyAg
ICAgaWYgKGxvY2FsTmFtZSA9PSBodG1sVGFnKSB7CisgICAgICAgICBpZiAoZG9jdW1lbnQtPmZy
YW1lKCkpCisgICAgICAgICAgICAgZG9jdW1lbnQtPmZyYW1lKCktPmxvYWRlcigpLT5kaXNwYXRj
aERvY3VtZW50RWxlbWVudEF2YWlsYWJsZSgpOworICAgICB9CisKICAgICByZXR1cm4gdHJ1ZTsK
IH0KIApJbmRleDogV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgJKHJldmlzaW9uIDQwNTM5KQorKysgV2ViQ29y
ZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgJKHdvcmtpbmcgY29weSkKQEAgLTI1OCw2ICsyNTgsNyBA
QCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgcmVkaXJlY3REYXRhVG9QbHVnaW4oV2lkZ2V0
KikgeyB9CiAgICAgdmlydHVhbCB2b2lkIHdpbmRvd09iamVjdENsZWFyZWQoKSB7IH0KKyAgICB2
aXJ0dWFsIHZvaWQgZG9jdW1lbnRFbGVtZW50QXZhaWxhYmxlKCkgeyB9CiAgICAgdmlydHVhbCB2
b2lkIGRpZFBlcmZvcm1GaXJzdE5hdmlnYXRpb24oKSBjb25zdCB7IH0KIAogICAgIHZpcnR1YWwg
dm9pZCByZWdpc3RlckZvckljb25Ob3RpZmljYXRpb24oYm9vbCkgeyB9CkluZGV4OiBXZWJDb3Jl
L2xvYWRlci9GcmFtZUxvYWRlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9sb2FkZXIvRnJh
bWVMb2FkZXIuY3BwCShyZXZpc2lvbiA0MDUzOSkKKysrIFdlYkNvcmUvbG9hZGVyL0ZyYW1lTG9h
ZGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTEyNSw2ICs1MTI1LDExIEBAIFN0cmluZyBGcmFt
ZUxvYWRlcjo6cmVmZXJyZXIoKSBjb25zdAogICAgIHJldHVybiBkb2N1bWVudExvYWRlcigpLT5y
ZXF1ZXN0KCkuaHR0cFJlZmVycmVyKCk7CiB9CiAKK3ZvaWQgRnJhbWVMb2FkZXI6OmRpc3BhdGNo
RG9jdW1lbnRFbGVtZW50QXZhaWxhYmxlKCkKK3sKKyAgICBtX2NsaWVudC0+ZG9jdW1lbnRFbGVt
ZW50QXZhaWxhYmxlKCk7Cit9CisKIHZvaWQgRnJhbWVMb2FkZXI6OmRpc3BhdGNoV2luZG93T2Jq
ZWN0QXZhaWxhYmxlKCkKIHsKICAgICBpZiAoIW1fZnJhbWUtPnNjcmlwdCgpLT5pc0VuYWJsZWQo
KSB8fCAhbV9mcmFtZS0+c2NyaXB0KCktPmhhdmVXaW5kb3dTaGVsbCgpKQpJbmRleDogV2ViQ29y
ZS9sb2FkZXIvRnJhbWVMb2FkZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2xvYWRlci9GcmFt
ZUxvYWRlci5oCShyZXZpc2lvbiA0MDUzOSkKKysrIFdlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVy
LmgJKHdvcmtpbmcgY29weSkKQEAgLTM0Niw2ICszNDYsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAgICAgICAgIFdpZGdldCogY3JlYXRlSmF2YUFwcGxldFdpZGdldChjb25zdCBJbnRTaXplJiwg
SFRNTEFwcGxldEVsZW1lbnQqLCBjb25zdCBIYXNoTWFwPFN0cmluZywgU3RyaW5nPiYgYXJncyk7
CiAKICAgICAgICAgdm9pZCBkaXNwYXRjaFdpbmRvd09iamVjdEF2YWlsYWJsZSgpOworICAgICAg
ICB2b2lkIGRpc3BhdGNoRG9jdW1lbnRFbGVtZW50QXZhaWxhYmxlKCk7CiAgICAgICAgIHZvaWQg
cmVzdG9yZURvY3VtZW50U3RhdGUoKTsKIAogICAgICAgICBGcmFtZSogb3BlbmVyKCk7CkluZGV4
OiBXZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmgJKHJldmlzaW9uIDQwNTM5KQorKysgV2ViQ29y
ZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMjA3LDYgKzIw
Nyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdmlydHVhbCBTdHJpbmcgb3ZlcnJp
ZGVNZWRpYVR5cGUoKSBjb25zdCA9IDA7CiAKICAgICAgICAgdmlydHVhbCB2b2lkIHdpbmRvd09i
amVjdENsZWFyZWQoKSA9IDA7CisgICAgICAgIHZpcnR1YWwgdm9pZCBkb2N1bWVudEVsZW1lbnRB
dmFpbGFibGUoKSA9IDA7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBkaWRQZXJmb3JtRmlyc3ROYXZp
Z2F0aW9uKCkgY29uc3QgPSAwOyAvLyAiTmF2aWdhdGlvbiIgaGVyZSBtZWFucyBhIHRyYW5zaXRp
b24gZnJvbSBvbmUgcGFnZSB0byBhbm90aGVyIHRoYXQgZW5kcyB1cCBpbiB0aGUgYmFjay9mb3J3
YXJkIGxpc3QuCiAgICAgICAgIAogICAgICAgICB2aXJ0dWFsIHZvaWQgcmVnaXN0ZXJGb3JJY29u
Tm90aWZpY2F0aW9uKGJvb2wgbGlzdGVuID0gdHJ1ZSkgPSAwOwpJbmRleDogV2ViS2l0L2d0ay9D
aGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2d0ay9DaGFuZ2VMb2cJKHJldmlzaW9uIDQw
NTU3KQorKysgV2ViS2l0L2d0ay9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwx
MyBAQAorMjAwOS0wMi0wMyAgQWFyb24gQm9vZG1hbiA8YWFAY2hyb21pdW0ub3JnPiAKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmVTdXBw
b3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcDoKKyAgICAgICAgKFdlYktpdDo6RnJhbWVMb2Fk
ZXJDbGllbnQ6OmRvY3VtZW50RWxlbWVudEF2YWlsYWJsZSk6CisgICAgICAgIFN0dWIgb3V0IGRv
Y3VtZW50RWxlbWVudEF2YWlsYWJsZSgpCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVM
b2FkZXJDbGllbnRHdGsuaDoKKyAgICAgICAgRGl0dG8uCisKIDIwMDktMDItMDMgIEhpcm95dWtp
IElrZXpvZSAgPHBvaW5jYXJlQGlrZXpvZS5uZXQ+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgSG9s
Z2VyIEZyZXl0aGVyLgpJbmRleDogV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRl
ckNsaWVudEd0ay5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9G
cmFtZUxvYWRlckNsaWVudEd0ay5jcHAJKHJldmlzaW9uIDQwNTM5KQorKysgV2ViS2l0L2d0ay9X
ZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTQ3MCw2ICs0NzAsMTAgQEAgdm9pZCBGcmFtZUxvYWRlckNsaWVudDo6d2luZG93T2JqZWN0Q2xl
YQogICAgIC8vIFRPRE86IFJlLWF0dGFjaCBkZWJ1ZyBjbGllbnRzIGlmIHByZXNlbnQuCiAgICAg
Ly8gVGhlIFdpbiBwb3J0IGhhcyBhbiBleGFtcGxlIG9mIGhvdyB3ZSBtaWdodCBkbyB0aGlzLgog
fQorCQordm9pZCBGcmFtZUxvYWRlckNsaWVudDo6ZG9jdW1lbnRFbGVtZW50QXZhaWxhYmxlKCkK
K3sKK30KIAogdm9pZCBGcmFtZUxvYWRlckNsaWVudDo6ZGlkUGVyZm9ybUZpcnN0TmF2aWdhdGlv
bigpIGNvbnN0CiB7CkluZGV4OiBXZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVy
Q2xpZW50R3RrLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFt
ZUxvYWRlckNsaWVudEd0ay5oCShyZXZpc2lvbiA0MDUzOSkKKysrIFdlYktpdC9ndGsvV2ViQ29y
ZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuaAkod29ya2luZyBjb3B5KQpAQCAtMTE0LDYg
KzExNCw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogICAgICAgICB2aXJ0dWFsIFdlYkNvcmU6Oldp
ZGdldCogY3JlYXRlSmF2YUFwcGxldFdpZGdldChjb25zdCBXZWJDb3JlOjpJbnRTaXplJiwgV2Vi
Q29yZTo6SFRNTEFwcGxldEVsZW1lbnQqLCBjb25zdCBXZWJDb3JlOjpLVVJMJiBiYXNlVVJMLCBj
b25zdCBXVEY6OlZlY3RvcjxXZWJDb3JlOjpTdHJpbmc+JiBwYXJhbU5hbWVzLCBjb25zdCBXVEY6
OlZlY3RvcjxXZWJDb3JlOjpTdHJpbmc+JiBwYXJhbVZhbHVlcyk7CiAgICAgICAgIHZpcnR1YWwg
V2ViQ29yZTo6U3RyaW5nIG92ZXJyaWRlTWVkaWFUeXBlKCkgY29uc3Q7CiAgICAgICAgIHZpcnR1
YWwgdm9pZCB3aW5kb3dPYmplY3RDbGVhcmVkKCk7CisgICAgICAgIHZpcnR1YWwgdm9pZCBkb2N1
bWVudEVsZW1lbnRBdmFpbGFibGUoKTsKICAgICAgICAgdmlydHVhbCB2b2lkIGRpZFBlcmZvcm1G
aXJzdE5hdmlnYXRpb24oKSBjb25zdDsKIAogICAgICAgICB2aXJ0dWFsIHZvaWQgcmVnaXN0ZXJG
b3JJY29uTm90aWZpY2F0aW9uKGJvb2wpOwpJbmRleDogV2ViS2l0L21hYy9DaGFuZ2VMb2cKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViS2l0L21hYy9DaGFuZ2VMb2cJKHJldmlzaW9uIDQwNTU3KQorKysgV2Vi
S2l0L21hYy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxMiBAQAorMjAwOS0w
Mi0wMyAgQWFyb24gQm9vZG1hbiAgPGFhQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkZyYW1l
TG9hZGVyQ2xpZW50Lmg6CisgICAgICAgIFN0dWIgb3V0IGRvY3VtZW50RWxlbWVudEF2YWlsYWJs
ZSgpLgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tOgor
ICAgICAgICBEaXR0by4KKwogMjAwOS0wMi0wMyAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2Vy
QGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXZlIEh5YXR0CkluZGV4OiBXZWJL
aXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCShyZXZp
c2lvbiA0MDUzOSkKKysrIFdlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJD
bGllbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMTg4LDYgKzE4OCw3IEBAIHByaXZhdGU6CiAgICAg
dmlydHVhbCBXZWJDb3JlOjpTdHJpbmcgb3ZlcnJpZGVNZWRpYVR5cGUoKSBjb25zdDsKICAgICAK
ICAgICB2aXJ0dWFsIHZvaWQgd2luZG93T2JqZWN0Q2xlYXJlZCgpOworICAgIHZpcnR1YWwgdm9p
ZCBkb2N1bWVudEVsZW1lbnRBdmFpbGFibGUoKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkUGVyZm9y
bUZpcnN0TmF2aWdhdGlvbigpIGNvbnN0OwogCiAgICAgdmlydHVhbCB2b2lkIHJlZ2lzdGVyRm9y
SWNvbk5vdGlmaWNhdGlvbihib29sIGxpc3Rlbik7CkluZGV4OiBXZWJLaXQvbWFjL1dlYkNvcmVT
dXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9tYWMv
V2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW0JKHJldmlzaW9uIDQwNTM5KQor
KysgV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbQkod29y
a2luZyBjb3B5KQpAQCAtMTU5Miw2ICsxNTkyLDkgQEAgU3RyaW5nIFdlYkZyYW1lTG9hZGVyQ2xp
ZW50OjpvdmVycmlkZU1lZAogICAgICAgICByZXR1cm4gb3ZlcnJpZGVUeXBlOwogICAgIHJldHVy
biBTdHJpbmcoKTsKIH0KKyAgICAKK3ZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRvY3VtZW50
RWxlbWVudEF2YWlsYWJsZSgpIHsKK30KIAogdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6d2lu
ZG93T2JqZWN0Q2xlYXJlZCgpCiB7CkluZGV4OiBXZWJLaXQvcXQvQ2hhbmdlTG9nCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYktpdC9xdC9DaGFuZ2VMb2cJKHJldmlzaW9uIDQwNTU3KQorKysgV2ViS2l0L3F0
L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEzIEBACisyMDA5LTAyLTAzICBB
YXJvbiBCb29kbWFuICA8YWFAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGll
bnRRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlckNsaWVudDo6ZG9jdW1lbnRF
bGVtZW50QXZhaWxhYmxlKToKKyAgICAgICAgU3R1YiBvdXQgZG9jdW1lbnRFbGVtZW50QXZhaWxh
YmxlKCkuCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5oOgor
ICAgICAgICBEaXR0by4KKwogMjAwOS0wMi0wMyAgU2ltb24gSGF1c21hbm4gIDxzaW1vbi5oYXVz
bWFubkBub2tpYS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgVG9yIEFybmUgVmVzdGLDuC4K
SW5kZXg6IFdlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRR
dC5jcHAJKHJldmlzaW9uIDQwNTM5KQorKysgV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1l
TG9hZGVyQ2xpZW50UXQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02MDgsNiArNjA4LDExIEBAIHZv
aWQgRnJhbWVMb2FkZXJDbGllbnRRdDo6d2luZG93T2JqZWN0Q2wKICAgICBpZiAobV93ZWJGcmFt
ZSkKICAgICAgICAgZW1pdCBtX3dlYkZyYW1lLT5qYXZhU2NyaXB0V2luZG93T2JqZWN0Q2xlYXJl
ZCgpOwogfQorCQordm9pZCBGcmFtZUxvYWRlckNsaWVudDo6ZG9jdW1lbnRFbGVtZW50QXZhaWxh
YmxlKCkKK3sKKwlyZXR1cm47Cit9CiAKIHZvaWQgRnJhbWVMb2FkZXJDbGllbnRRdDo6ZGlkUGVy
Zm9ybUZpcnN0TmF2aWdhdGlvbigpIGNvbnN0CiB7CkluZGV4OiBXZWJLaXQvcXQvV2ViQ29yZVN1
cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9xdC9XZWJD
b3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0LmgJKHJldmlzaW9uIDQwNTM5KQorKysgV2Vi
S2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuaAkod29ya2luZyBjb3B5
KQpAQCAtMTk2LDYgKzE5Niw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdmlydHVh
bCBTdHJpbmcgb3ZlcnJpZGVNZWRpYVR5cGUoKSBjb25zdDsKIAogICAgICAgICB2aXJ0dWFsIHZv
aWQgd2luZG93T2JqZWN0Q2xlYXJlZCgpOworICAgICAgICB2aXJ0dWFsIHZvaWQgZG9jdW1lbnRF
bGVtZW50QXZhaWxhYmxlKCk7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBkaWRQZXJmb3JtRmlyc3RO
YXZpZ2F0aW9uKCkgY29uc3Q7CiAKICAgICAgICAgdmlydHVhbCB2b2lkIHJlZ2lzdGVyRm9ySWNv
bk5vdGlmaWNhdGlvbihib29sKTsKSW5kZXg6IFdlYktpdC93aW4vQ2hhbmdlTG9nCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYktpdC93aW4vQ2hhbmdlTG9nCShyZXZpc2lvbiA0MDU1NykKKysrIFdlYktpdC93
aW4vQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTMgQEAKKzIwMDktMDItMDMg
IEFhcm9uIEJvb2RtYW4gIDxhYUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJGcmFtZS5jcHA6CisgICAgICAgIChXZWJG
cmFtZTo6ZG9jdW1lbnRFbGVtZW50QXZhaWxhYmxlKToKKyAgICAgICAgU3R1YiBvdXQgZG9jdW1l
bnRFbGVtZW50QXZhaWxhYmxlKCkKKyAgICAgICAgKiBXZWJGcmFtZS5oOgorICAgICAgICBEaXR0
by4KKwkKIDIwMDktMDItMDMgIEdlb2ZmcmV5IEdhcmVuICA8Z2dhcmVuQGFwcGxlLmNvbT4KIAog
ICAgICAgICBCdWlsZCBmaXguCkluZGV4OiBXZWJLaXQvd2luL1dlYkZyYW1lLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJLaXQvd2luL1dlYkZyYW1lLmNwcAkocmV2aXNpb24gNDA1MzkpCisrKyBXZWJL
aXQvd2luL1dlYkZyYW1lLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTU5NSw2ICsxNTk1LDEwIEBA
IHZvaWQgV2ViRnJhbWU6OndpbmRvd09iamVjdENsZWFyZWQoKQogICAgIH0KIH0KIAordm9pZCBX
ZWJGcmFtZTo6ZG9jdW1lbnRFbGVtZW50QXZhaWxhYmxlKCkKK3sKK30KKwogdm9pZCBXZWJGcmFt
ZTo6ZGlkUGVyZm9ybUZpcnN0TmF2aWdhdGlvbigpIGNvbnN0CiB7CiAgICAgQ09NUHRyPElXZWJQ
cmVmZXJlbmNlcz4gcHJlZmVyZW5jZXM7CkluZGV4OiBXZWJLaXQvd2luL1dlYkZyYW1lLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViS2l0L3dpbi9XZWJGcmFtZS5oCShyZXZpc2lvbiA0MDUzOSkKKysrIFdl
YktpdC93aW4vV2ViRnJhbWUuaAkod29ya2luZyBjb3B5KQpAQCAtMjg2LDYgKzI4Niw3IEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIFdlYkNvcmU6OlN0cmluZyBvdmVycmlkZU1lZGlhVHlwZSgpIGNv
bnN0OwogCiAgICAgdmlydHVhbCB2b2lkIHdpbmRvd09iamVjdENsZWFyZWQoKTsKKyAgICB2aXJ0
dWFsIHZvaWQgZG9jdW1lbnRFbGVtZW50QXZhaWxhYmxlKCk7CiAgICAgdmlydHVhbCB2b2lkIGRp
ZFBlcmZvcm1GaXJzdE5hdmlnYXRpb24oKSBjb25zdDsKIAogICAgIHZpcnR1YWwgdm9pZCByZWdp
c3RlckZvckljb25Ob3RpZmljYXRpb24oYm9vbCBsaXN0ZW4pOwpJbmRleDogV2ViS2l0L3d4L0No
YW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvd3gvQ2hhbmdlTG9nCShyZXZpc2lvbiA0MDU1
NykKKysrIFdlYktpdC93eC9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxMyBA
QAorMjAwOS0wMi0wMyAgQWFyb24gQm9vZG1hbiAgPGFhQGNocm9taXVtLm9yZz4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYktpdFN1cHBvcnQv
RnJhbWVMb2FkZXJDbGllbnRXeC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlckNs
aWVudFd4Ojpkb2N1bWVudEVsZW1lbnRBdmFpbGFibGUpOgorICAgICAgICBTdHViIG91dCBkb2N1
bWVudEVsZW1lbnRBdmFpbGFibGUoKS4KKyAgICAgICAgKiBXZWJLaXRTdXBwb3J0L0ZyYW1lTG9h
ZGVyQ2xpZW50V3guaDoKKyAgICAgICAgRGl0dG8uCisJCiAyMDA5LTAyLTAyICBHZW9mZnJleSBH
YXJlbiAgPGdnYXJlbkBhcHBsZS5jb20+CiAKICAgICAgICAgQnVpbGQgZml4LgpJbmRleDogV2Vi
S2l0L3d4L1dlYktpdFN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRXeC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViS2l0L3d4L1dlYktpdFN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRXeC5jcHAJKHJldmlz
aW9uIDQwNTM5KQorKysgV2ViS2l0L3d4L1dlYktpdFN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRX
eC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTgyMCw2ICs4MjAsMTAgQEAgdm9pZCBGcmFtZUxvYWRl
ckNsaWVudFd4Ojp3aW5kb3dPYmplY3RDbAogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CisJ
Cit2b2lkIEZyYW1lTG9hZGVyQ2xpZW50V3g6OmRvY3VtZW50RWxlbWVudEF2YWlsYWJsZSgpIAor
eworfQogCiB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50V3g6OmRpZFBlcmZvcm1GaXJzdE5hdmlnYXRp
b24oKSBjb25zdAogewpJbmRleDogV2ViS2l0L3d4L1dlYktpdFN1cHBvcnQvRnJhbWVMb2FkZXJD
bGllbnRXeC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC93eC9XZWJLaXRTdXBwb3J0L0ZyYW1lTG9h
ZGVyQ2xpZW50V3guaAkocmV2aXNpb24gNDA1MzkpCisrKyBXZWJLaXQvd3gvV2ViS2l0U3VwcG9y
dC9GcmFtZUxvYWRlckNsaWVudFd4LmgJKHdvcmtpbmcgY29weSkKQEAgLTE5OSw2ICsxOTksNyBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZpcnR1YWwgU3RyaW5nIG92ZXJyaWRlTWVk
aWFUeXBlKCkgY29uc3Q7CiAKICAgICAgICAgdmlydHVhbCB2b2lkIHdpbmRvd09iamVjdENsZWFy
ZWQoKTsKKyAgICAgICAgdmlydHVhbCB2b2lkIGRvY3VtZW50RWxlbWVudEF2YWlsYWJsZSgpOwog
ICAgICAgICAKICAgICAgICAgdmlydHVhbCB2b2lkIGRpZFBlcmZvcm1GaXJzdE5hdmlnYXRpb24o
KSBjb25zdDsKICAgICAgICAgCg==
</data>
<flag name="review"
          id="13167"
          type_id="1"
          status="-"
          setter="hyatt"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>27343</attachid>
            <date>2009-02-04 23:56:04 -0800</date>
            <delta_ts>2009-02-05 00:10:53 -0800</delta_ts>
            <desc>More fixes</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>13719</size>
            <attacher name="Aaron Boodman">aa</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0MDY2OCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjggQEAKKzIwMDktMDItMDQgIEFhcm9uIEJvb2RtYW4gIDxzZXQgRU1BSUxfQURE
UkVTUyBlbnZpcm9ubWVudCB2YXJpYWJsZT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBXQVJOSU5HOiBOTyBURVNUIENBU0VTIEFEREVEIE9SIENIQU5H
RUQKKworICAgICAgICAqIGRvbS9YTUxUb2tlbml6ZXJMaWJ4bWwyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlhNTFRva2VuaXplcjo6c3RhcnRFbGVtZW50TnMpOgorICAgICAgICBBZGQgY2FsbCB0
byBkaXNwYXRjaERvY3VtZW50RWxlbWVudEF2YWlsYWJsZSgpCisgICAgICAgICogZG9tL1hNTFRv
a2VuaXplclF0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlhNTFRva2VuaXplcjo6cGFyc2VTdGFy
dEVsZW1lbnQpOgorICAgICAgICBEaXR0by4KKyAgICAgICAgKiBodG1sL0hUTUxQYXJzZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SFRNTFBhcnNlcjo6aW5zZXJ0Tm9kZSk6CisgICAgICAgIERp
dHRvLgorICAgICAgICAqIGxvYWRlci9FbXB0eUNsaWVudHMuaDoKKyAgICAgICAgKFdlYkNvcmU6
OkVtcHR5RnJhbWVMb2FkZXJDbGllbnQ6OmRvY3VtZW50RWxlbWVudEF2YWlsYWJsZSk6CisgICAg
ICAgIFN0dWIgb3V0IGRvY3VtZW50RWxlbWVudEF2YWlsYWJsZSgpLgorICAgICAgICAqIGxvYWRl
ci9GcmFtZUxvYWRlci5jcHA6CisgICAgICAgIGRvY3VtZW50RWxlbWVudEF2YWlsYWJsZSgpIGNh
bGxiYWNrIHBsdW1iaW5nLgorICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRlci5oOgorICAgICAg
ICBEaXR0by4KKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaDoKKyAgICAgICAg
QWRkIG5ldyBkb2N1bWVudEVsZW1lbnRBdmFpbGFibGUoKSBjYWxsYmFjay4KKwogMjAwOS0wMi0w
NCAgRmVuZyBRaWFuICA8ZmVuZ0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkg
RGFyaW4gQWRsZXIuCkluZGV4OiBXZWJDb3JlL2RvbS9YTUxUb2tlbml6ZXJMaWJ4bWwyLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL2RvbS9YTUxUb2tlbml6ZXJMaWJ4bWwyLmNwcAkocmV2aXNp
b24gNDA1MzkpCisrKyBXZWJDb3JlL2RvbS9YTUxUb2tlbml6ZXJMaWJ4bWwyLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtNzA2LDcgKzcwNiw4IEBAIHZvaWQgWE1MVG9rZW5pemVyOjpzdGFydEVsZW1l
bnROcyhjb25zdCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIG5iX2F0dHJpYnV0ZXMsIG5iX2RlZmF1bHRlZCwgbGlieG1sQXR0cmlidXRl
cyk7CiAgICAgICAgIHJldHVybjsKICAgICB9Ci0gICAgCisKKyAgICBib29sIGlzRmlyc3RFbGVt
ZW50ID0gIW1fc2F3Rmlyc3RFbGVtZW50OwogICAgIG1fc2F3Rmlyc3RFbGVtZW50ID0gdHJ1ZTsK
IAogICAgIGV4aXRUZXh0KCk7CkBAIC03NjMsNiArNzY0LDkgQEAgdm9pZCBYTUxUb2tlbml6ZXI6
OnN0YXJ0RWxlbWVudE5zKGNvbnN0IAogICAgIHNldEN1cnJlbnROb2RlKG5ld0VsZW1lbnQuZ2V0
KCkpOwogICAgIGlmIChtX3ZpZXcgJiYgIW5ld0VsZW1lbnQtPmF0dGFjaGVkKCkpCiAgICAgICAg
IG5ld0VsZW1lbnQtPmF0dGFjaCgpOworCisgICAgaWYgKGlzRmlyc3RFbGVtZW50ICYmIG1fZG9j
LT5mcmFtZSgpKQorICAgICAgICBtX2RvYy0+ZnJhbWUoKS0+bG9hZGVyKCktPmRpc3BhdGNoRG9j
dW1lbnRFbGVtZW50QXZhaWxhYmxlKCk7CiB9CiAKIHZvaWQgWE1MVG9rZW5pemVyOjplbmRFbGVt
ZW50TnMoKQpJbmRleDogV2ViQ29yZS9kb20vWE1MVG9rZW5pemVyUXQuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUvZG9tL1hNTFRva2VuaXplclF0LmNwcAkocmV2aXNpb24gNDA1MzkpCisrKyBX
ZWJDb3JlL2RvbS9YTUxUb2tlbml6ZXJRdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUwNyw2ICs1
MDcsOCBAQCB2b2lkIFhNTFRva2VuaXplcjo6cGFyc2VTdGFydEVsZW1lbnQoKQogICAgICAgICBt
X3Nhd0ZpcnN0RWxlbWVudCA9IHRydWU7CiAgICAgICAgIHJldHVybjsKICAgICB9CisKKyAgICBi
b29sIGlzRmlyc3RFbGVtZW50ID0gIW1fc2F3Rmlyc3RFbGVtZW50OwogICAgIG1fc2F3Rmlyc3RF
bGVtZW50ID0gdHJ1ZTsKIAogICAgIGV4aXRUZXh0KCk7CkBAIC01NTIsNiArNTU0LDkgQEAgdm9p
ZCBYTUxUb2tlbml6ZXI6OnBhcnNlU3RhcnRFbGVtZW50KCkKICAgICBzZXRDdXJyZW50Tm9kZShu
ZXdFbGVtZW50LmdldCgpKTsKICAgICBpZiAobV92aWV3ICYmICFuZXdFbGVtZW50LT5hdHRhY2hl
ZCgpKQogICAgICAgICBuZXdFbGVtZW50LT5hdHRhY2goKTsKKworICAgIGlmIChpc0ZpcnN0RWxl
bWVudCAmJiBtX2RvYy0+ZnJhbWUoKSkKKyAgICAgICAgbV9kb2MtPmZyYW1lKCktPmxvYWRlcigp
LT5kaXNwYXRjaERvY3VtZW50RWxlbWVudEF2YWlsYWJsZSgpOwogfQogCiB2b2lkIFhNTFRva2Vu
aXplcjo6cGFyc2VFbmRFbGVtZW50KCkKSW5kZXg6IFdlYkNvcmUvaHRtbC9IVE1MUGFyc2VyLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvSFRNTFBhcnNlci5jcHAJKHJldmlzaW9uIDQw
NTM5KQorKysgV2ViQ29yZS9odG1sL0hUTUxQYXJzZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0z
NTMsNiArMzUzLDkgQEAgYm9vbCBIVE1MUGFyc2VyOjppbnNlcnROb2RlKE5vZGUqIG4sIGJvbwog
ICAgICAgICBuLT5maW5pc2hQYXJzaW5nQ2hpbGRyZW4oKTsKICAgICB9CiAKKyAgICBpZiAobG9j
YWxOYW1lID09IGh0bWxUYWcgJiYgZG9jdW1lbnQtPmZyYW1lKCkpCisgICAgICAgIGRvY3VtZW50
LT5mcmFtZSgpLT5sb2FkZXIoKS0+ZGlzcGF0Y2hEb2N1bWVudEVsZW1lbnRBdmFpbGFibGUoKTsK
KwogICAgIHJldHVybiB0cnVlOwogfQogCkluZGV4OiBXZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVu
dHMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAkocmV2aXNp
b24gNDA1MzkpCisrKyBXZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAkod29ya2luZyBjb3B5
KQpAQCAtMjU4LDYgKzI1OCw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCByZWRpcmVj
dERhdGFUb1BsdWdpbihXaWRnZXQqKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgd2luZG93T2JqZWN0
Q2xlYXJlZCgpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBkb2N1bWVudEVsZW1lbnRBdmFpbGFibGUo
KSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgZGlkUGVyZm9ybUZpcnN0TmF2aWdhdGlvbigpIGNvbnN0
IHsgfQogCiAgICAgdmlydHVhbCB2b2lkIHJlZ2lzdGVyRm9ySWNvbk5vdGlmaWNhdGlvbihib29s
KSB7IH0KSW5kZXg6IFdlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAJKHJldmlzaW9uIDQwNTM5KQorKysgV2Vi
Q29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01MTI1LDYgKzUx
MjUsMTEgQEAgU3RyaW5nIEZyYW1lTG9hZGVyOjpyZWZlcnJlcigpIGNvbnN0CiAgICAgcmV0dXJu
IGRvY3VtZW50TG9hZGVyKCktPnJlcXVlc3QoKS5odHRwUmVmZXJyZXIoKTsKIH0KIAordm9pZCBG
cmFtZUxvYWRlcjo6ZGlzcGF0Y2hEb2N1bWVudEVsZW1lbnRBdmFpbGFibGUoKQoreworICAgIG1f
Y2xpZW50LT5kb2N1bWVudEVsZW1lbnRBdmFpbGFibGUoKTsKK30KKwogdm9pZCBGcmFtZUxvYWRl
cjo6ZGlzcGF0Y2hXaW5kb3dPYmplY3RBdmFpbGFibGUoKQogewogICAgIGlmICghbV9mcmFtZS0+
c2NyaXB0KCktPmlzRW5hYmxlZCgpIHx8ICFtX2ZyYW1lLT5zY3JpcHQoKS0+aGF2ZVdpbmRvd1No
ZWxsKCkpCkluZGV4OiBXZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmgJKHJldmlzaW9uIDQwNTM5KQorKysgV2ViQ29y
ZS9sb2FkZXIvRnJhbWVMb2FkZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMzQ2LDYgKzM0Niw3IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgV2lkZ2V0KiBjcmVhdGVKYXZhQXBwbGV0V2lk
Z2V0KGNvbnN0IEludFNpemUmLCBIVE1MQXBwbGV0RWxlbWVudCosIGNvbnN0IEhhc2hNYXA8U3Ry
aW5nLCBTdHJpbmc+JiBhcmdzKTsKIAogICAgICAgICB2b2lkIGRpc3BhdGNoV2luZG93T2JqZWN0
QXZhaWxhYmxlKCk7CisgICAgICAgIHZvaWQgZGlzcGF0Y2hEb2N1bWVudEVsZW1lbnRBdmFpbGFi
bGUoKTsKICAgICAgICAgdm9pZCByZXN0b3JlRG9jdW1lbnRTdGF0ZSgpOwogCiAgICAgICAgIEZy
YW1lKiBvcGVuZXIoKTsKSW5kZXg6IFdlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaAkocmV2aXNp
b24gNDA1MzkpCisrKyBXZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oCSh3b3JraW5n
IGNvcHkpCkBAIC0yMDcsNiArMjA3LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2
aXJ0dWFsIFN0cmluZyBvdmVycmlkZU1lZGlhVHlwZSgpIGNvbnN0ID0gMDsKIAogICAgICAgICB2
aXJ0dWFsIHZvaWQgd2luZG93T2JqZWN0Q2xlYXJlZCgpID0gMDsKKyAgICAgICAgdmlydHVhbCB2
b2lkIGRvY3VtZW50RWxlbWVudEF2YWlsYWJsZSgpID0gMDsKICAgICAgICAgdmlydHVhbCB2b2lk
IGRpZFBlcmZvcm1GaXJzdE5hdmlnYXRpb24oKSBjb25zdCA9IDA7IC8vICJOYXZpZ2F0aW9uIiBo
ZXJlIG1lYW5zIGEgdHJhbnNpdGlvbiBmcm9tIG9uZSBwYWdlIHRvIGFub3RoZXIgdGhhdCBlbmRz
IHVwIGluIHRoZSBiYWNrL2ZvcndhcmQgbGlzdC4KICAgICAgICAgCiAgICAgICAgIHZpcnR1YWwg
dm9pZCByZWdpc3RlckZvckljb25Ob3RpZmljYXRpb24oYm9vbCBsaXN0ZW4gPSB0cnVlKSA9IDA7
CkluZGV4OiBXZWJLaXQvZ3RrL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvZ3RrL0No
YW5nZUxvZwkocmV2aXNpb24gNDA1NTcpCisrKyBXZWJLaXQvZ3RrL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDEzIEBACisyMDA5LTAyLTA0ICBBYXJvbiBCb29kbWFuIDxhYUBj
aHJvbWl1bS5vcmc+IAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudDo6ZG9jdW1lbnRFbGVtZW50QXZhaWxhYmxlKToK
KyAgICAgICAgU3R1YiBvdXQgZG9jdW1lbnRFbGVtZW50QXZhaWxhYmxlKCkKKyAgICAgICAgKiBX
ZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5oOgorICAgICAgICBEaXR0by4KKwog
MjAwOS0wMi0wMyAgSGlyb3l1a2kgSWtlem9lICA8cG9pbmNhcmVAaWtlem9lLm5ldD4KIAogICAg
ICAgICBSZXZpZXdlZCBieSBIb2xnZXIgRnJleXRoZXIuCkluZGV4OiBXZWJLaXQvZ3RrL1dlYkNv
cmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQv
Z3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcAkocmV2aXNpb24gNDA1
MzkpCisrKyBXZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtNDcwLDYgKzQ3MCwxMCBAQCB2b2lkIEZyYW1lTG9hZGVyQ2xp
ZW50Ojp3aW5kb3dPYmplY3RDbGVhCiAgICAgLy8gVE9ETzogUmUtYXR0YWNoIGRlYnVnIGNsaWVu
dHMgaWYgcHJlc2VudC4KICAgICAvLyBUaGUgV2luIHBvcnQgaGFzIGFuIGV4YW1wbGUgb2YgaG93
IHdlIG1pZ2h0IGRvIHRoaXMuCiB9CisJCit2b2lkIEZyYW1lTG9hZGVyQ2xpZW50Ojpkb2N1bWVu
dEVsZW1lbnRBdmFpbGFibGUoKQoreworfQogCiB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50OjpkaWRQ
ZXJmb3JtRmlyc3ROYXZpZ2F0aW9uKCkgY29uc3QKIHsKSW5kZXg6IFdlYktpdC9ndGsvV2ViQ29y
ZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvZ3Rr
L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmgJKHJldmlzaW9uIDQwNTM5KQor
KysgV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xMTQsNiArMTE0LDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAgICAgICAg
IHZpcnR1YWwgV2ViQ29yZTo6V2lkZ2V0KiBjcmVhdGVKYXZhQXBwbGV0V2lkZ2V0KGNvbnN0IFdl
YkNvcmU6OkludFNpemUmLCBXZWJDb3JlOjpIVE1MQXBwbGV0RWxlbWVudCosIGNvbnN0IFdlYkNv
cmU6OktVUkwmIGJhc2VVUkwsIGNvbnN0IFdURjo6VmVjdG9yPFdlYkNvcmU6OlN0cmluZz4mIHBh
cmFtTmFtZXMsIGNvbnN0IFdURjo6VmVjdG9yPFdlYkNvcmU6OlN0cmluZz4mIHBhcmFtVmFsdWVz
KTsKICAgICAgICAgdmlydHVhbCBXZWJDb3JlOjpTdHJpbmcgb3ZlcnJpZGVNZWRpYVR5cGUoKSBj
b25zdDsKICAgICAgICAgdmlydHVhbCB2b2lkIHdpbmRvd09iamVjdENsZWFyZWQoKTsKKyAgICAg
ICAgdmlydHVhbCB2b2lkIGRvY3VtZW50RWxlbWVudEF2YWlsYWJsZSgpOwogICAgICAgICB2aXJ0
dWFsIHZvaWQgZGlkUGVyZm9ybUZpcnN0TmF2aWdhdGlvbigpIGNvbnN0OwogCiAgICAgICAgIHZp
cnR1YWwgdm9pZCByZWdpc3RlckZvckljb25Ob3RpZmljYXRpb24oYm9vbCk7CkluZGV4OiBXZWJL
aXQvbWFjL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvbWFjL0NoYW5nZUxvZwkocmV2
aXNpb24gNDA1NTcpCisrKyBXZWJLaXQvbWFjL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAt
MSwzICsxLDEyIEBACisyMDA5LTAyLTA0ICBBYXJvbiBCb29kbWFuICA8YWFAY2hyb21pdW0ub3Jn
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2Vi
Q29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaDoKKyAgICAgICAgU3R1YiBvdXQgZG9j
dW1lbnRFbGVtZW50QXZhaWxhYmxlKCkuCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRnJh
bWVMb2FkZXJDbGllbnQubW06CisgICAgICAgIERpdHRvLgorCiAyMDA5LTAyLTAzICBTaW1vbiBG
cmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERh
dmUgSHlhdHQKSW5kZXg6IFdlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJD
bGllbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1l
TG9hZGVyQ2xpZW50LmgJKHJldmlzaW9uIDQwNTM5KQorKysgV2ViS2l0L21hYy9XZWJDb3JlU3Vw
cG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xODgsNiArMTg4
LDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIFdlYkNvcmU6OlN0cmluZyBvdmVycmlkZU1lZGlh
VHlwZSgpIGNvbnN0OwogICAgIAogICAgIHZpcnR1YWwgdm9pZCB3aW5kb3dPYmplY3RDbGVhcmVk
KCk7CisgICAgdmlydHVhbCB2b2lkIGRvY3VtZW50RWxlbWVudEF2YWlsYWJsZSgpOwogICAgIHZp
cnR1YWwgdm9pZCBkaWRQZXJmb3JtRmlyc3ROYXZpZ2F0aW9uKCkgY29uc3Q7CiAKICAgICB2aXJ0
dWFsIHZvaWQgcmVnaXN0ZXJGb3JJY29uTm90aWZpY2F0aW9uKGJvb2wgbGlzdGVuKTsKSW5kZXg6
IFdlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW0KPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5t
bQkocmV2aXNpb24gNDA1MzkpCisrKyBXZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1l
TG9hZGVyQ2xpZW50Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xNTkyLDYgKzE1OTIsOSBAQCBTdHJp
bmcgV2ViRnJhbWVMb2FkZXJDbGllbnQ6Om92ZXJyaWRlTWVkCiAgICAgICAgIHJldHVybiBvdmVy
cmlkZVR5cGU7CiAgICAgcmV0dXJuIFN0cmluZygpOwogfQorICAgIAordm9pZCBXZWJGcmFtZUxv
YWRlckNsaWVudDo6ZG9jdW1lbnRFbGVtZW50QXZhaWxhYmxlKCkgeworfQogCiB2b2lkIFdlYkZy
YW1lTG9hZGVyQ2xpZW50Ojp3aW5kb3dPYmplY3RDbGVhcmVkKCkKIHsKSW5kZXg6IFdlYktpdC9x
dC9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L3F0L0NoYW5nZUxvZwkocmV2aXNpb24g
NDA1NTcpCisrKyBXZWJLaXQvcXQvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEs
MTMgQEAKKzIwMDktMDItMDQgIEFhcm9uIEJvb2RtYW4gIDxhYUBjaHJvbWl1bS5vcmc+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJDb3JlU3Vw
cG9ydC9GcmFtZUxvYWRlckNsaWVudFF0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9h
ZGVyQ2xpZW50Ojpkb2N1bWVudEVsZW1lbnRBdmFpbGFibGUpOgorICAgICAgICBTdHViIG91dCBk
b2N1bWVudEVsZW1lbnRBdmFpbGFibGUoKS4KKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFt
ZUxvYWRlckNsaWVudFF0Lmg6CisgICAgICAgIERpdHRvLgorCiAyMDA5LTAyLTAzICBTaW1vbiBI
YXVzbWFubiAgPHNpbW9uLmhhdXNtYW5uQG5va2lhLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBi
eSBUb3IgQXJuZSBWZXN0YsO4LgpJbmRleDogV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1l
TG9hZGVyQ2xpZW50UXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9xdC9XZWJDb3JlU3VwcG9y
dC9GcmFtZUxvYWRlckNsaWVudFF0LmNwcAkocmV2aXNpb24gNDA1MzkpCisrKyBXZWJLaXQvcXQv
V2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTYwOCw2ICs2MDgsMTEgQEAgdm9pZCBGcmFtZUxvYWRlckNsaWVudFF0Ojp3aW5kb3dPYmplY3RD
bAogICAgIGlmIChtX3dlYkZyYW1lKQogICAgICAgICBlbWl0IG1fd2ViRnJhbWUtPmphdmFTY3Jp
cHRXaW5kb3dPYmplY3RDbGVhcmVkKCk7CiB9CisJCit2b2lkIEZyYW1lTG9hZGVyQ2xpZW50Ojpk
b2N1bWVudEVsZW1lbnRBdmFpbGFibGUoKQoreworCXJldHVybjsKK30KIAogdm9pZCBGcmFtZUxv
YWRlckNsaWVudFF0OjpkaWRQZXJmb3JtRmlyc3ROYXZpZ2F0aW9uKCkgY29uc3QKIHsKSW5kZXg6
IFdlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0LmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuaAkocmV2
aXNpb24gNDA1MzkpCisrKyBXZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGll
bnRRdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xOTYsNiArMTk2LDcgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogICAgICAgICB2aXJ0dWFsIFN0cmluZyBvdmVycmlkZU1lZGlhVHlwZSgpIGNvbnN0Owog
CiAgICAgICAgIHZpcnR1YWwgdm9pZCB3aW5kb3dPYmplY3RDbGVhcmVkKCk7CisgICAgICAgIHZp
cnR1YWwgdm9pZCBkb2N1bWVudEVsZW1lbnRBdmFpbGFibGUoKTsKICAgICAgICAgdmlydHVhbCB2
b2lkIGRpZFBlcmZvcm1GaXJzdE5hdmlnYXRpb24oKSBjb25zdDsKIAogICAgICAgICB2aXJ0dWFs
IHZvaWQgcmVnaXN0ZXJGb3JJY29uTm90aWZpY2F0aW9uKGJvb2wpOwpJbmRleDogV2ViS2l0L3dp
bi9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L3dpbi9DaGFuZ2VMb2cJKHJldmlzaW9u
IDQwNTU3KQorKysgV2ViS2l0L3dpbi9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyAr
MSwxMyBAQAorMjAwOS0wMi0wNCAgQWFyb24gQm9vZG1hbiAgPGFhQGNocm9taXVtLm9yZz4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkZyYW1l
LmNwcDoKKyAgICAgICAgKFdlYkZyYW1lOjpkb2N1bWVudEVsZW1lbnRBdmFpbGFibGUpOgorICAg
ICAgICBTdHViIG91dCBkb2N1bWVudEVsZW1lbnRBdmFpbGFibGUoKQorICAgICAgICAqIFdlYkZy
YW1lLmg6CisgICAgICAgIERpdHRvLgorCQogMjAwOS0wMi0wMyAgR2VvZmZyZXkgR2FyZW4gIDxn
Z2FyZW5AYXBwbGUuY29tPgogCiAgICAgICAgIEJ1aWxkIGZpeC4KSW5kZXg6IFdlYktpdC93aW4v
V2ViRnJhbWUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC93aW4vV2ViRnJhbWUuY3BwCShyZXZp
c2lvbiA0MDUzOSkKKysrIFdlYktpdC93aW4vV2ViRnJhbWUuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0xNTk1LDYgKzE1OTUsMTAgQEAgdm9pZCBXZWJGcmFtZTo6d2luZG93T2JqZWN0Q2xlYXJlZCgp
CiAgICAgfQogfQogCit2b2lkIFdlYkZyYW1lOjpkb2N1bWVudEVsZW1lbnRBdmFpbGFibGUoKQor
eworfQorCiB2b2lkIFdlYkZyYW1lOjpkaWRQZXJmb3JtRmlyc3ROYXZpZ2F0aW9uKCkgY29uc3QK
IHsKICAgICBDT01QdHI8SVdlYlByZWZlcmVuY2VzPiBwcmVmZXJlbmNlczsKSW5kZXg6IFdlYktp
dC93aW4vV2ViRnJhbWUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvd2luL1dlYkZyYW1lLmgJKHJl
dmlzaW9uIDQwNTM5KQorKysgV2ViS2l0L3dpbi9XZWJGcmFtZS5oCSh3b3JraW5nIGNvcHkpCkBA
IC0yODYsNiArMjg2LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgV2ViQ29yZTo6U3RyaW5nIG92
ZXJyaWRlTWVkaWFUeXBlKCkgY29uc3Q7CiAKICAgICB2aXJ0dWFsIHZvaWQgd2luZG93T2JqZWN0
Q2xlYXJlZCgpOworICAgIHZpcnR1YWwgdm9pZCBkb2N1bWVudEVsZW1lbnRBdmFpbGFibGUoKTsK
ICAgICB2aXJ0dWFsIHZvaWQgZGlkUGVyZm9ybUZpcnN0TmF2aWdhdGlvbigpIGNvbnN0OwogCiAg
ICAgdmlydHVhbCB2b2lkIHJlZ2lzdGVyRm9ySWNvbk5vdGlmaWNhdGlvbihib29sIGxpc3Rlbik7
CkluZGV4OiBXZWJLaXQvd3gvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC93eC9DaGFu
Z2VMb2cJKHJldmlzaW9uIDQwNTU3KQorKysgV2ViS2l0L3d4L0NoYW5nZUxvZwkod29ya2luZyBj
b3B5KQpAQCAtMSwzICsxLDEzIEBACisyMDA5LTAyLTA0ICBBYXJvbiBCb29kbWFuICA8YWFAY2hy
b21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogV2ViS2l0U3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFd4LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50V3g6OmRvY3VtZW50RWxlbWVudEF2YWlsYWJsZSk6Cisg
ICAgICAgIFN0dWIgb3V0IGRvY3VtZW50RWxlbWVudEF2YWlsYWJsZSgpLgorICAgICAgICAqIFdl
YktpdFN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRXeC5oOgorICAgICAgICBEaXR0by4KKwkKIDIw
MDktMDItMDIgIEdlb2ZmcmV5IEdhcmVuICA8Z2dhcmVuQGFwcGxlLmNvbT4KIAogICAgICAgICBC
dWlsZCBmaXguCkluZGV4OiBXZWJLaXQvd3gvV2ViS2l0U3VwcG9ydC9GcmFtZUxvYWRlckNsaWVu
dFd4LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvd3gvV2ViS2l0U3VwcG9ydC9GcmFtZUxvYWRl
ckNsaWVudFd4LmNwcAkocmV2aXNpb24gNDA1MzkpCisrKyBXZWJLaXQvd3gvV2ViS2l0U3VwcG9y
dC9GcmFtZUxvYWRlckNsaWVudFd4LmNwcAkod29ya2luZyBjb3B5KQpAQCAtODIwLDYgKzgyMCwx
MCBAQCB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50V3g6OndpbmRvd09iamVjdENsCiB7CiAgICAgbm90
SW1wbGVtZW50ZWQoKTsKIH0KKwkKK3ZvaWQgRnJhbWVMb2FkZXJDbGllbnRXeDo6ZG9jdW1lbnRF
bGVtZW50QXZhaWxhYmxlKCkgCit7Cit9CiAKIHZvaWQgRnJhbWVMb2FkZXJDbGllbnRXeDo6ZGlk
UGVyZm9ybUZpcnN0TmF2aWdhdGlvbigpIGNvbnN0CiB7CkluZGV4OiBXZWJLaXQvd3gvV2ViS2l0
U3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFd4LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L3d4L1dl
YktpdFN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRXeC5oCShyZXZpc2lvbiA0MDUzOSkKKysrIFdl
YktpdC93eC9XZWJLaXRTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50V3guaAkod29ya2luZyBjb3B5
KQpAQCAtMTk5LDYgKzE5OSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdmlydHVh
bCBTdHJpbmcgb3ZlcnJpZGVNZWRpYVR5cGUoKSBjb25zdDsKIAogICAgICAgICB2aXJ0dWFsIHZv
aWQgd2luZG93T2JqZWN0Q2xlYXJlZCgpOworICAgICAgICB2aXJ0dWFsIHZvaWQgZG9jdW1lbnRF
bGVtZW50QXZhaWxhYmxlKCk7CiAgICAgICAgIAogICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkUGVy
Zm9ybUZpcnN0TmF2aWdhdGlvbigpIGNvbnN0OwogICAgICAgICAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>27344</attachid>
            <date>2009-02-05 00:10:06 -0800</date>
            <delta_ts>2009-02-05 14:52:54 -0800</delta_ts>
            <desc>Add description and link to bug to ChangeLog files</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>14494</size>
            <attacher name="Aaron Boodman">aa</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0MDY2OCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzEgQEAKKzIwMDktMDItMDQgIEFhcm9uIEJvb2RtYW4gIDxzZXQgRU1BSUxfQURE
UkVTUyBlbnZpcm9ubWVudCB2YXJpYWJsZT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBXQVJOSU5HOiBOTyBURVNUIENBU0VTIEFEREVEIE9SIENIQU5H
RUQKKwkKKyAgICAgICAgQWRkcyBkb2N1bWVudEVsZW1lbnRBdmFpbGFibGUoKSBjYWxsYmFjayB0
byBGcmFtZUxvYWRlckNsaWVudC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIzNzA4CisKKyAgICAgICAgKiBkb20vWE1MVG9rZW5pemVyTGlieG1sMi5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpYTUxUb2tlbml6ZXI6OnN0YXJ0RWxlbWVudE5zKToKKyAg
ICAgICAgQWRkIGNhbGwgdG8gZGlzcGF0Y2hEb2N1bWVudEVsZW1lbnRBdmFpbGFibGUoKQorICAg
ICAgICAqIGRvbS9YTUxUb2tlbml6ZXJRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpYTUxUb2tl
bml6ZXI6OnBhcnNlU3RhcnRFbGVtZW50KToKKyAgICAgICAgRGl0dG8uCisgICAgICAgICogaHRt
bC9IVE1MUGFyc2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxQYXJzZXI6Omluc2VydE5v
ZGUpOgorICAgICAgICBEaXR0by4KKyAgICAgICAgKiBsb2FkZXIvRW1wdHlDbGllbnRzLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpFbXB0eUZyYW1lTG9hZGVyQ2xpZW50Ojpkb2N1bWVudEVsZW1lbnRB
dmFpbGFibGUpOgorICAgICAgICBTdHViIG91dCBkb2N1bWVudEVsZW1lbnRBdmFpbGFibGUoKS4K
KyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXIuY3BwOgorICAgICAgICBkb2N1bWVudEVsZW1l
bnRBdmFpbGFibGUoKSBjYWxsYmFjayBwbHVtYmluZy4KKyAgICAgICAgKiBsb2FkZXIvRnJhbWVM
b2FkZXIuaDoKKyAgICAgICAgRGl0dG8uCisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyQ2xp
ZW50Lmg6CisgICAgICAgIEFkZCBuZXcgZG9jdW1lbnRFbGVtZW50QXZhaWxhYmxlKCkgY2FsbGJh
Y2suCisKIDIwMDktMDItMDQgIEZlbmcgUWlhbiAgPGZlbmdAY2hyb21pdW0ub3JnPgogCiAgICAg
ICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgpJbmRleDogV2ViQ29yZS9kb20vWE1MVG9rZW5p
emVyTGlieG1sMi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9kb20vWE1MVG9rZW5pemVyTGli
eG1sMi5jcHAJKHJldmlzaW9uIDQwNTM5KQorKysgV2ViQ29yZS9kb20vWE1MVG9rZW5pemVyTGli
eG1sMi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTcwNiw3ICs3MDYsOCBAQCB2b2lkIFhNTFRva2Vu
aXplcjo6c3RhcnRFbGVtZW50TnMoY29uc3QgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYl9hdHRyaWJ1dGVzLCBuYl9kZWZhdWx0ZWQs
IGxpYnhtbEF0dHJpYnV0ZXMpOwogICAgICAgICByZXR1cm47CiAgICAgfQotICAgIAorCisgICAg
Ym9vbCBpc0ZpcnN0RWxlbWVudCA9ICFtX3Nhd0ZpcnN0RWxlbWVudDsKICAgICBtX3Nhd0ZpcnN0
RWxlbWVudCA9IHRydWU7CiAKICAgICBleGl0VGV4dCgpOwpAQCAtNzYzLDYgKzc2NCw5IEBAIHZv
aWQgWE1MVG9rZW5pemVyOjpzdGFydEVsZW1lbnROcyhjb25zdCAKICAgICBzZXRDdXJyZW50Tm9k
ZShuZXdFbGVtZW50LmdldCgpKTsKICAgICBpZiAobV92aWV3ICYmICFuZXdFbGVtZW50LT5hdHRh
Y2hlZCgpKQogICAgICAgICBuZXdFbGVtZW50LT5hdHRhY2goKTsKKworICAgIGlmIChpc0ZpcnN0
RWxlbWVudCAmJiBtX2RvYy0+ZnJhbWUoKSkKKyAgICAgICAgbV9kb2MtPmZyYW1lKCktPmxvYWRl
cigpLT5kaXNwYXRjaERvY3VtZW50RWxlbWVudEF2YWlsYWJsZSgpOwogfQogCiB2b2lkIFhNTFRv
a2VuaXplcjo6ZW5kRWxlbWVudE5zKCkKSW5kZXg6IFdlYkNvcmUvZG9tL1hNTFRva2VuaXplclF0
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2RvbS9YTUxUb2tlbml6ZXJRdC5jcHAJKHJldmlz
aW9uIDQwNTM5KQorKysgV2ViQ29yZS9kb20vWE1MVG9rZW5pemVyUXQuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC01MDcsNiArNTA3LDggQEAgdm9pZCBYTUxUb2tlbml6ZXI6OnBhcnNlU3RhcnRFbGVt
ZW50KCkKICAgICAgICAgbV9zYXdGaXJzdEVsZW1lbnQgPSB0cnVlOwogICAgICAgICByZXR1cm47
CiAgICAgfQorCisgICAgYm9vbCBpc0ZpcnN0RWxlbWVudCA9ICFtX3Nhd0ZpcnN0RWxlbWVudDsK
ICAgICBtX3Nhd0ZpcnN0RWxlbWVudCA9IHRydWU7CiAKICAgICBleGl0VGV4dCgpOwpAQCAtNTUy
LDYgKzU1NCw5IEBAIHZvaWQgWE1MVG9rZW5pemVyOjpwYXJzZVN0YXJ0RWxlbWVudCgpCiAgICAg
c2V0Q3VycmVudE5vZGUobmV3RWxlbWVudC5nZXQoKSk7CiAgICAgaWYgKG1fdmlldyAmJiAhbmV3
RWxlbWVudC0+YXR0YWNoZWQoKSkKICAgICAgICAgbmV3RWxlbWVudC0+YXR0YWNoKCk7CisKKyAg
ICBpZiAoaXNGaXJzdEVsZW1lbnQgJiYgbV9kb2MtPmZyYW1lKCkpCisgICAgICAgIG1fZG9jLT5m
cmFtZSgpLT5sb2FkZXIoKS0+ZGlzcGF0Y2hEb2N1bWVudEVsZW1lbnRBdmFpbGFibGUoKTsKIH0K
IAogdm9pZCBYTUxUb2tlbml6ZXI6OnBhcnNlRW5kRWxlbWVudCgpCkluZGV4OiBXZWJDb3JlL2h0
bWwvSFRNTFBhcnNlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL0hUTUxQYXJzZXIu
Y3BwCShyZXZpc2lvbiA0MDUzOSkKKysrIFdlYkNvcmUvaHRtbC9IVE1MUGFyc2VyLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMzUzLDYgKzM1Myw5IEBAIGJvb2wgSFRNTFBhcnNlcjo6aW5zZXJ0Tm9k
ZShOb2RlKiBuLCBib28KICAgICAgICAgbi0+ZmluaXNoUGFyc2luZ0NoaWxkcmVuKCk7CiAgICAg
fQogCisgICAgaWYgKGxvY2FsTmFtZSA9PSBodG1sVGFnICYmIGRvY3VtZW50LT5mcmFtZSgpKQor
ICAgICAgICBkb2N1bWVudC0+ZnJhbWUoKS0+bG9hZGVyKCktPmRpc3BhdGNoRG9jdW1lbnRFbGVt
ZW50QXZhaWxhYmxlKCk7CisKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApJbmRleDogV2ViQ29yZS9s
b2FkZXIvRW1wdHlDbGllbnRzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9sb2FkZXIvRW1wdHlD
bGllbnRzLmgJKHJldmlzaW9uIDQwNTM5KQorKysgV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRz
LmgJKHdvcmtpbmcgY29weSkKQEAgLTI1OCw2ICsyNTgsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0
dWFsIHZvaWQgcmVkaXJlY3REYXRhVG9QbHVnaW4oV2lkZ2V0KikgeyB9CiAgICAgdmlydHVhbCB2
b2lkIHdpbmRvd09iamVjdENsZWFyZWQoKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZG9jdW1lbnRF
bGVtZW50QXZhaWxhYmxlKCkgeyB9CiAgICAgdmlydHVhbCB2b2lkIGRpZFBlcmZvcm1GaXJzdE5h
dmlnYXRpb24oKSBjb25zdCB7IH0KIAogICAgIHZpcnR1YWwgdm9pZCByZWdpc3RlckZvckljb25O
b3RpZmljYXRpb24oYm9vbCkgeyB9CkluZGV4OiBXZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCShyZXZpc2lv
biA0MDUzOSkKKysrIFdlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtNTEyNSw2ICs1MTI1LDExIEBAIFN0cmluZyBGcmFtZUxvYWRlcjo6cmVmZXJyZXIoKSBj
b25zdAogICAgIHJldHVybiBkb2N1bWVudExvYWRlcigpLT5yZXF1ZXN0KCkuaHR0cFJlZmVycmVy
KCk7CiB9CiAKK3ZvaWQgRnJhbWVMb2FkZXI6OmRpc3BhdGNoRG9jdW1lbnRFbGVtZW50QXZhaWxh
YmxlKCkKK3sKKyAgICBtX2NsaWVudC0+ZG9jdW1lbnRFbGVtZW50QXZhaWxhYmxlKCk7Cit9CisK
IHZvaWQgRnJhbWVMb2FkZXI6OmRpc3BhdGNoV2luZG93T2JqZWN0QXZhaWxhYmxlKCkKIHsKICAg
ICBpZiAoIW1fZnJhbWUtPnNjcmlwdCgpLT5pc0VuYWJsZWQoKSB8fCAhbV9mcmFtZS0+c2NyaXB0
KCktPmhhdmVXaW5kb3dTaGVsbCgpKQpJbmRleDogV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5oCShyZXZpc2lvbiA0
MDUzOSkKKysrIFdlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmgJKHdvcmtpbmcgY29weSkKQEAg
LTM0Niw2ICszNDYsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIFdpZGdldCogY3Jl
YXRlSmF2YUFwcGxldFdpZGdldChjb25zdCBJbnRTaXplJiwgSFRNTEFwcGxldEVsZW1lbnQqLCBj
b25zdCBIYXNoTWFwPFN0cmluZywgU3RyaW5nPiYgYXJncyk7CiAKICAgICAgICAgdm9pZCBkaXNw
YXRjaFdpbmRvd09iamVjdEF2YWlsYWJsZSgpOworICAgICAgICB2b2lkIGRpc3BhdGNoRG9jdW1l
bnRFbGVtZW50QXZhaWxhYmxlKCk7CiAgICAgICAgIHZvaWQgcmVzdG9yZURvY3VtZW50U3RhdGUo
KTsKIAogICAgICAgICBGcmFtZSogb3BlbmVyKCk7CkluZGV4OiBXZWJDb3JlL2xvYWRlci9GcmFt
ZUxvYWRlckNsaWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVy
Q2xpZW50LmgJKHJldmlzaW9uIDQwNTM5KQorKysgV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJD
bGllbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMjA3LDYgKzIwNyw3IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKICAgICAgICAgdmlydHVhbCBTdHJpbmcgb3ZlcnJpZGVNZWRpYVR5cGUoKSBjb25zdCA9
IDA7CiAKICAgICAgICAgdmlydHVhbCB2b2lkIHdpbmRvd09iamVjdENsZWFyZWQoKSA9IDA7Cisg
ICAgICAgIHZpcnR1YWwgdm9pZCBkb2N1bWVudEVsZW1lbnRBdmFpbGFibGUoKSA9IDA7CiAgICAg
ICAgIHZpcnR1YWwgdm9pZCBkaWRQZXJmb3JtRmlyc3ROYXZpZ2F0aW9uKCkgY29uc3QgPSAwOyAv
LyAiTmF2aWdhdGlvbiIgaGVyZSBtZWFucyBhIHRyYW5zaXRpb24gZnJvbSBvbmUgcGFnZSB0byBh
bm90aGVyIHRoYXQgZW5kcyB1cCBpbiB0aGUgYmFjay9mb3J3YXJkIGxpc3QuCiAgICAgICAgIAog
ICAgICAgICB2aXJ0dWFsIHZvaWQgcmVnaXN0ZXJGb3JJY29uTm90aWZpY2F0aW9uKGJvb2wgbGlz
dGVuID0gdHJ1ZSkgPSAwOwpJbmRleDogV2ViS2l0L2d0ay9DaGFuZ2VMb2cKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViS2l0L2d0ay9DaGFuZ2VMb2cJKHJldmlzaW9uIDQwNTU3KQorKysgV2ViS2l0L2d0ay9D
aGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNiBAQAorMjAwOS0wMi0wNCAgQWFy
b24gQm9vZG1hbiA8YWFAY2hyb21pdW0ub3JnPiAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBBZGRzIGRvY3VtZW50RWxlbWVudEF2YWlsYWJsZSgpIGNh
bGxiYWNrIHRvIEZyYW1lTG9hZGVyQ2xpZW50LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM3MDgKKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Zy
YW1lTG9hZGVyQ2xpZW50R3RrLmNwcDoKKyAgICAgICAgKFdlYktpdDo6RnJhbWVMb2FkZXJDbGll
bnQ6OmRvY3VtZW50RWxlbWVudEF2YWlsYWJsZSk6CisgICAgICAgIFN0dWIgb3V0IGRvY3VtZW50
RWxlbWVudEF2YWlsYWJsZSgpCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJD
bGllbnRHdGsuaDoKKyAgICAgICAgRGl0dG8uCisKIDIwMDktMDItMDMgIEhpcm95dWtpIElrZXpv
ZSAgPHBvaW5jYXJlQGlrZXpvZS5uZXQ+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgSG9sZ2VyIEZy
ZXl0aGVyLgpJbmRleDogV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVu
dEd0ay5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFtZUxv
YWRlckNsaWVudEd0ay5jcHAJKHJldmlzaW9uIDQwNTM5KQorKysgV2ViS2l0L2d0ay9XZWJDb3Jl
U3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ3MCw2
ICs0NzAsMTAgQEAgdm9pZCBGcmFtZUxvYWRlckNsaWVudDo6d2luZG93T2JqZWN0Q2xlYQogICAg
IC8vIFRPRE86IFJlLWF0dGFjaCBkZWJ1ZyBjbGllbnRzIGlmIHByZXNlbnQuCiAgICAgLy8gVGhl
IFdpbiBwb3J0IGhhcyBhbiBleGFtcGxlIG9mIGhvdyB3ZSBtaWdodCBkbyB0aGlzLgogfQorCQor
dm9pZCBGcmFtZUxvYWRlckNsaWVudDo6ZG9jdW1lbnRFbGVtZW50QXZhaWxhYmxlKCkKK3sKK30K
IAogdm9pZCBGcmFtZUxvYWRlckNsaWVudDo6ZGlkUGVyZm9ybUZpcnN0TmF2aWdhdGlvbigpIGNv
bnN0CiB7CkluZGV4OiBXZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50
R3RrLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRl
ckNsaWVudEd0ay5oCShyZXZpc2lvbiA0MDUzOSkKKysrIFdlYktpdC9ndGsvV2ViQ29yZVN1cHBv
cnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuaAkod29ya2luZyBjb3B5KQpAQCAtMTE0LDYgKzExNCw3
IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogICAgICAgICB2aXJ0dWFsIFdlYkNvcmU6OldpZGdldCog
Y3JlYXRlSmF2YUFwcGxldFdpZGdldChjb25zdCBXZWJDb3JlOjpJbnRTaXplJiwgV2ViQ29yZTo6
SFRNTEFwcGxldEVsZW1lbnQqLCBjb25zdCBXZWJDb3JlOjpLVVJMJiBiYXNlVVJMLCBjb25zdCBX
VEY6OlZlY3RvcjxXZWJDb3JlOjpTdHJpbmc+JiBwYXJhbU5hbWVzLCBjb25zdCBXVEY6OlZlY3Rv
cjxXZWJDb3JlOjpTdHJpbmc+JiBwYXJhbVZhbHVlcyk7CiAgICAgICAgIHZpcnR1YWwgV2ViQ29y
ZTo6U3RyaW5nIG92ZXJyaWRlTWVkaWFUeXBlKCkgY29uc3Q7CiAgICAgICAgIHZpcnR1YWwgdm9p
ZCB3aW5kb3dPYmplY3RDbGVhcmVkKCk7CisgICAgICAgIHZpcnR1YWwgdm9pZCBkb2N1bWVudEVs
ZW1lbnRBdmFpbGFibGUoKTsKICAgICAgICAgdmlydHVhbCB2b2lkIGRpZFBlcmZvcm1GaXJzdE5h
dmlnYXRpb24oKSBjb25zdDsKIAogICAgICAgICB2aXJ0dWFsIHZvaWQgcmVnaXN0ZXJGb3JJY29u
Tm90aWZpY2F0aW9uKGJvb2wpOwpJbmRleDogV2ViS2l0L21hYy9DaGFuZ2VMb2cKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViS2l0L21hYy9DaGFuZ2VMb2cJKHJldmlzaW9uIDQwNTU3KQorKysgV2ViS2l0L21h
Yy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNSBAQAorMjAwOS0wMi0wNCAg
QWFyb24gQm9vZG1hbiAgPGFhQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRzIGRvY3VtZW50RWxlbWVudEF2YWlsYWJsZSgp
IGNhbGxiYWNrIHRvIEZyYW1lTG9hZGVyQ2xpZW50LgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM3MDgKKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0
L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lmg6CisgICAgICAgIFN0dWIgb3V0IGRvY3VtZW50RWxlbWVu
dEF2YWlsYWJsZSgpLgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xp
ZW50Lm1tOgorICAgICAgICBEaXR0by4KKwogMjAwOS0wMi0wMyAgU2ltb24gRnJhc2VyICA8c2lt
b24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXZlIEh5YXR0Cklu
ZGV4OiBXZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVu
dC5oCShyZXZpc2lvbiA0MDUzOSkKKysrIFdlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJh
bWVMb2FkZXJDbGllbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMTg4LDYgKzE4OCw3IEBAIHByaXZh
dGU6CiAgICAgdmlydHVhbCBXZWJDb3JlOjpTdHJpbmcgb3ZlcnJpZGVNZWRpYVR5cGUoKSBjb25z
dDsKICAgICAKICAgICB2aXJ0dWFsIHZvaWQgd2luZG93T2JqZWN0Q2xlYXJlZCgpOworICAgIHZp
cnR1YWwgdm9pZCBkb2N1bWVudEVsZW1lbnRBdmFpbGFibGUoKTsKICAgICB2aXJ0dWFsIHZvaWQg
ZGlkUGVyZm9ybUZpcnN0TmF2aWdhdGlvbigpIGNvbnN0OwogCiAgICAgdmlydHVhbCB2b2lkIHJl
Z2lzdGVyRm9ySWNvbk5vdGlmaWNhdGlvbihib29sIGxpc3Rlbik7CkluZGV4OiBXZWJLaXQvbWFj
L1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW0JKHJldmlzaW9u
IDQwNTM5KQorKysgV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVu
dC5tbQkod29ya2luZyBjb3B5KQpAQCAtMTU5Miw2ICsxNTkyLDkgQEAgU3RyaW5nIFdlYkZyYW1l
TG9hZGVyQ2xpZW50OjpvdmVycmlkZU1lZAogICAgICAgICByZXR1cm4gb3ZlcnJpZGVUeXBlOwog
ICAgIHJldHVybiBTdHJpbmcoKTsKIH0KKyAgICAKK3ZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6
OmRvY3VtZW50RWxlbWVudEF2YWlsYWJsZSgpIHsKK30KIAogdm9pZCBXZWJGcmFtZUxvYWRlckNs
aWVudDo6d2luZG93T2JqZWN0Q2xlYXJlZCgpCiB7CkluZGV4OiBXZWJLaXQvcXQvQ2hhbmdlTG9n
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYktpdC9xdC9DaGFuZ2VMb2cJKHJldmlzaW9uIDQwNTU3KQorKysg
V2ViS2l0L3F0L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE2IEBACisyMDA5
LTAyLTA0ICBBYXJvbiBCb29kbWFuICA8YWFAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZHMgZG9jdW1lbnRFbGVtZW50QXZh
aWxhYmxlKCkgY2FsbGJhY2sgdG8gRnJhbWVMb2FkZXJDbGllbnQuCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzcwOAorCisgICAgICAgICogV2ViQ29y
ZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFt
ZUxvYWRlckNsaWVudDo6ZG9jdW1lbnRFbGVtZW50QXZhaWxhYmxlKToKKyAgICAgICAgU3R1YiBv
dXQgZG9jdW1lbnRFbGVtZW50QXZhaWxhYmxlKCkuCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQv
RnJhbWVMb2FkZXJDbGllbnRRdC5oOgorICAgICAgICBEaXR0by4KKwogMjAwOS0wMi0wMyAgU2lt
b24gSGF1c21hbm4gIDxzaW1vbi5oYXVzbWFubkBub2tpYS5jb20+CiAKICAgICAgICAgUmV2aWV3
ZWQgYnkgVG9yIEFybmUgVmVzdGLDuC4KSW5kZXg6IFdlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9G
cmFtZUxvYWRlckNsaWVudFF0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvcXQvV2ViQ29yZVN1
cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5jcHAJKHJldmlzaW9uIDQwNTM5KQorKysgV2ViS2l0
L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC02MDgsNiArNjA4LDExIEBAIHZvaWQgRnJhbWVMb2FkZXJDbGllbnRRdDo6d2luZG93T2Jq
ZWN0Q2wKICAgICBpZiAobV93ZWJGcmFtZSkKICAgICAgICAgZW1pdCBtX3dlYkZyYW1lLT5qYXZh
U2NyaXB0V2luZG93T2JqZWN0Q2xlYXJlZCgpOwogfQorCQordm9pZCBGcmFtZUxvYWRlckNsaWVu
dDo6ZG9jdW1lbnRFbGVtZW50QXZhaWxhYmxlKCkKK3sKKwlyZXR1cm47Cit9CiAKIHZvaWQgRnJh
bWVMb2FkZXJDbGllbnRRdDo6ZGlkUGVyZm9ybUZpcnN0TmF2aWdhdGlvbigpIGNvbnN0CiB7Cklu
ZGV4OiBXZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0LmgJ
KHJldmlzaW9uIDQwNTM5KQorKysgV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVy
Q2xpZW50UXQuaAkod29ya2luZyBjb3B5KQpAQCAtMTk2LDYgKzE5Niw3IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKICAgICAgICAgdmlydHVhbCBTdHJpbmcgb3ZlcnJpZGVNZWRpYVR5cGUoKSBjb25z
dDsKIAogICAgICAgICB2aXJ0dWFsIHZvaWQgd2luZG93T2JqZWN0Q2xlYXJlZCgpOworICAgICAg
ICB2aXJ0dWFsIHZvaWQgZG9jdW1lbnRFbGVtZW50QXZhaWxhYmxlKCk7CiAgICAgICAgIHZpcnR1
YWwgdm9pZCBkaWRQZXJmb3JtRmlyc3ROYXZpZ2F0aW9uKCkgY29uc3Q7CiAKICAgICAgICAgdmly
dHVhbCB2b2lkIHJlZ2lzdGVyRm9ySWNvbk5vdGlmaWNhdGlvbihib29sKTsKSW5kZXg6IFdlYktp
dC93aW4vQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC93aW4vQ2hhbmdlTG9nCShyZXZp
c2lvbiA0MDU1NykKKysrIFdlYktpdC93aW4vQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDMgKzEsMTYgQEAKKzIwMDktMDItMDQgIEFhcm9uIEJvb2RtYW4gIDxhYUBjaHJvbWl1bS5vcmc+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkcyBk
b2N1bWVudEVsZW1lbnRBdmFpbGFibGUoKSBjYWxsYmFjayB0byBGcmFtZUxvYWRlckNsaWVudC4K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNzA4CisK
KyAgICAgICAgKiBXZWJGcmFtZS5jcHA6CisgICAgICAgIChXZWJGcmFtZTo6ZG9jdW1lbnRFbGVt
ZW50QXZhaWxhYmxlKToKKyAgICAgICAgU3R1YiBvdXQgZG9jdW1lbnRFbGVtZW50QXZhaWxhYmxl
KCkKKyAgICAgICAgKiBXZWJGcmFtZS5oOgorICAgICAgICBEaXR0by4KKwkKIDIwMDktMDItMDMg
IEdlb2ZmcmV5IEdhcmVuICA8Z2dhcmVuQGFwcGxlLmNvbT4KIAogICAgICAgICBCdWlsZCBmaXgu
CkluZGV4OiBXZWJLaXQvd2luL1dlYkZyYW1lLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvd2lu
L1dlYkZyYW1lLmNwcAkocmV2aXNpb24gNDA1MzkpCisrKyBXZWJLaXQvd2luL1dlYkZyYW1lLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMTU5NSw2ICsxNTk1LDEwIEBAIHZvaWQgV2ViRnJhbWU6Ondp
bmRvd09iamVjdENsZWFyZWQoKQogICAgIH0KIH0KIAordm9pZCBXZWJGcmFtZTo6ZG9jdW1lbnRF
bGVtZW50QXZhaWxhYmxlKCkKK3sKK30KKwogdm9pZCBXZWJGcmFtZTo6ZGlkUGVyZm9ybUZpcnN0
TmF2aWdhdGlvbigpIGNvbnN0CiB7CiAgICAgQ09NUHRyPElXZWJQcmVmZXJlbmNlcz4gcHJlZmVy
ZW5jZXM7CkluZGV4OiBXZWJLaXQvd2luL1dlYkZyYW1lLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0
L3dpbi9XZWJGcmFtZS5oCShyZXZpc2lvbiA0MDUzOSkKKysrIFdlYktpdC93aW4vV2ViRnJhbWUu
aAkod29ya2luZyBjb3B5KQpAQCAtMjg2LDYgKzI4Niw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFs
IFdlYkNvcmU6OlN0cmluZyBvdmVycmlkZU1lZGlhVHlwZSgpIGNvbnN0OwogCiAgICAgdmlydHVh
bCB2b2lkIHdpbmRvd09iamVjdENsZWFyZWQoKTsKKyAgICB2aXJ0dWFsIHZvaWQgZG9jdW1lbnRF
bGVtZW50QXZhaWxhYmxlKCk7CiAgICAgdmlydHVhbCB2b2lkIGRpZFBlcmZvcm1GaXJzdE5hdmln
YXRpb24oKSBjb25zdDsKIAogICAgIHZpcnR1YWwgdm9pZCByZWdpc3RlckZvckljb25Ob3RpZmlj
YXRpb24oYm9vbCBsaXN0ZW4pOwpJbmRleDogV2ViS2l0L3d4L0NoYW5nZUxvZwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJLaXQvd3gvQ2hhbmdlTG9nCShyZXZpc2lvbiA0MDU1NykKKysrIFdlYktpdC93eC9D
aGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNiBAQAorMjAwOS0wMi0wNCAgQWFy
b24gQm9vZG1hbiAgPGFhQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBBZGRzIGRvY3VtZW50RWxlbWVudEF2YWlsYWJsZSgpIGNh
bGxiYWNrIHRvIEZyYW1lTG9hZGVyQ2xpZW50LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM3MDgKKworICAgICAgICAqIFdlYktpdFN1cHBvcnQvRnJh
bWVMb2FkZXJDbGllbnRXeC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlckNsaWVu
dFd4Ojpkb2N1bWVudEVsZW1lbnRBdmFpbGFibGUpOgorICAgICAgICBTdHViIG91dCBkb2N1bWVu
dEVsZW1lbnRBdmFpbGFibGUoKS4KKyAgICAgICAgKiBXZWJLaXRTdXBwb3J0L0ZyYW1lTG9hZGVy
Q2xpZW50V3guaDoKKyAgICAgICAgRGl0dG8uCisJCiAyMDA5LTAyLTAyICBHZW9mZnJleSBHYXJl
biAgPGdnYXJlbkBhcHBsZS5jb20+CiAKICAgICAgICAgQnVpbGQgZml4LgpJbmRleDogV2ViS2l0
L3d4L1dlYktpdFN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRXeC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViS2l0L3d4L1dlYktpdFN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRXeC5jcHAJKHJldmlzaW9u
IDQwNTM5KQorKysgV2ViS2l0L3d4L1dlYktpdFN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRXeC5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTgyMCw2ICs4MjAsMTAgQEAgdm9pZCBGcmFtZUxvYWRlckNs
aWVudFd4Ojp3aW5kb3dPYmplY3RDbAogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CisJCit2
b2lkIEZyYW1lTG9hZGVyQ2xpZW50V3g6OmRvY3VtZW50RWxlbWVudEF2YWlsYWJsZSgpIAorewor
fQogCiB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50V3g6OmRpZFBlcmZvcm1GaXJzdE5hdmlnYXRpb24o
KSBjb25zdAogewpJbmRleDogV2ViS2l0L3d4L1dlYktpdFN1cHBvcnQvRnJhbWVMb2FkZXJDbGll
bnRXeC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC93eC9XZWJLaXRTdXBwb3J0L0ZyYW1lTG9hZGVy
Q2xpZW50V3guaAkocmV2aXNpb24gNDA1MzkpCisrKyBXZWJLaXQvd3gvV2ViS2l0U3VwcG9ydC9G
cmFtZUxvYWRlckNsaWVudFd4LmgJKHdvcmtpbmcgY29weSkKQEAgLTE5OSw2ICsxOTksNyBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZpcnR1YWwgU3RyaW5nIG92ZXJyaWRlTWVkaWFU
eXBlKCkgY29uc3Q7CiAKICAgICAgICAgdmlydHVhbCB2b2lkIHdpbmRvd09iamVjdENsZWFyZWQo
KTsKKyAgICAgICAgdmlydHVhbCB2b2lkIGRvY3VtZW50RWxlbWVudEF2YWlsYWJsZSgpOwogICAg
ICAgICAKICAgICAgICAgdmlydHVhbCB2b2lkIGRpZFBlcmZvcm1GaXJzdE5hdmlnYXRpb24oKSBj
b25zdDsKICAgICAgICAgCg==
</data>
<flag name="review"
          id="13200"
          type_id="1"
          status="+"
          setter="hyatt"
    />
          </attachment>
      

    </bug>

</bugzilla>