<?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>27494</bug_id>
          
          <creation_ts>2009-07-21 02:15:46 -0700</creation_ts>
          <short_desc>Crash/Unexpected behavior if call ScriptSourceCode::source on a CachedScript</short_desc>
          <delta_ts>2009-07-22 07:04:53 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore JavaScript</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>27174</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Daniel Bates">dbates</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>dbates</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>133418</commentid>
    <comment_count>0</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2009-07-21 02:15:46 -0700</bug_when>
    <thetext>ScriptSourceCode::source assumes the provider for the source code of a script is of type StringSourceProvider. However, if the source code is from a cached script, then the provider is CachedScriptSourceProvider. Hence, unexpected behavior and/or a crash can follow if you call ScriptSourceCode::source on a cached script.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>133422</commentid>
    <comment_count>1</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2009-07-21 02:41:57 -0700</bug_when>
    <thetext>You can reproducibly cause a crash by adding the following line above line 87 in ScriptController.cpp (http://trac.webkit.org/browser/trunk/WebCore/bindings/js/ScriptController.cpp#L87):

printf(&quot;%s\n&quot;, sourceCode.source().ascii().data());

Then run layout test /http/tests/security/xssAuditor/base-href.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>133423</commentid>
    <comment_count>2</comment_count>
      <attachid>33165</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2009-07-21 02:46:28 -0700</bug_when>
    <thetext>Created attachment 33165
Patch

Created a new base class called ScriptSourceProvider which is inherited by both StringSourceProvider and CachedScriptSourceProvider.

Blindly edited the WebCore Visual C++ project file.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>133496</commentid>
    <comment_count>3</comment_count>
      <attachid>33165</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-07-21 09:57:10 -0700</bug_when>
    <thetext>Comment on attachment 33165
Patch

The code looks good, but when you add a file to the project, you should really add it to all the build systems.  I think you&apos;ve missed WebCore.gypi for example.   You should find &quot;ScriptSourceCode.h&quot; and make sure your new file shows up in all the same places.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>133665</commentid>
    <comment_count>4</comment_count>
      <attachid>33230</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2009-07-21 17:32:24 -0700</bug_when>
    <thetext>Created attachment 33230
Patch

Added ScriptSourceProvider to WebCore.gypi.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>133675</commentid>
    <comment_count>5</comment_count>
      <attachid>33230</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-07-21 18:29:00 -0700</bug_when>
    <thetext>Comment on attachment 33230
Patch

There are yet more build systems in the tree.  Yes it sucks.  For example:

http://trac.webkit.org/browser/trunk/WebCore/WebCore.pro

Also, can we test for this crash in a LayoutTest?  If it involves a cached script, we might need to load the same script twice.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>133694</commentid>
    <comment_count>6</comment_count>
      <attachid>33239</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2009-07-21 21:51:47 -0700</bug_when>
    <thetext>Created attachment 33239
Patch

Added bindings/js/ScriptSourceProvider.h, ScriptSourceCode.h, StringSourceProvider.h to WebCore.pro.

I hope I&apos;ve got all the build systems covered.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>133695</commentid>
    <comment_count>7</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2009-07-21 22:02:07 -0700</bug_when>
    <thetext>It does not appear that anybody (besides ScriptController.cpp) calls ScriptSourceCode::source. So, I don&apos;t believe we can test this crash in a LayoutTest alone.

(In reply to comment #5)
&gt; (From update of attachment 33230 [details])
&gt; There are yet more build systems in the tree.  Yes it sucks.  For example:
&gt; 
&gt; http://trac.webkit.org/browser/trunk/WebCore/WebCore.pro
&gt; 
&gt; Also, can we test for this crash in a LayoutTest?  If it involves a cached
&gt; script, we might need to load the same script twice.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>133696</commentid>
    <comment_count>8</comment_count>
      <attachid>33239</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-07-21 22:07:01 -0700</bug_when>
    <thetext>Comment on attachment 33239
Patch

Confirmed with Dan on IRC that this crash only surfaces after he makes another change he&apos;s working on.  It&apos;s a crash fix from the future!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>133707</commentid>
    <comment_count>9</comment_count>
      <attachid>33245</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2009-07-21 22:57:20 -0700</bug_when>
    <thetext>Created attachment 33245
Patch

I hope this fixes the Xcode issue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>133708</commentid>
    <comment_count>10</comment_count>
      <attachid>33246</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2009-07-21 23:01:05 -0700</bug_when>
    <thetext>Created attachment 33246
Patch

Oops. Forgot the change log last time.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>133709</commentid>
    <comment_count>11</comment_count>
      <attachid>33246</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-07-21 23:17:29 -0700</bug_when>
    <thetext>Comment on attachment 33246
Patch

Ok.  Let&apos;s try it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>133710</commentid>
    <comment_count>12</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-07-21 23:20:06 -0700</bug_when>
    <thetext>Committing to http://svn.webkit.org/repository/webkit/trunk ...
	M	WebCore/ChangeLog
	M	WebCore/GNUmakefile.am
	M	WebCore/WebCore.gypi
	M	WebCore/WebCore.pro
	M	WebCore/WebCore.vcproj/WebCore.vcproj
	M	WebCore/WebCore.xcodeproj/project.pbxproj
	M	WebCore/bindings/js/CachedScriptSourceProvider.h
	M	WebCore/bindings/js/ScriptSourceCode.h
	A	WebCore/bindings/js/ScriptSourceProvider.h
	M	WebCore/bindings/js/StringSourceProvider.h
Committed r46216
	M	WebCore/WebCore.pro
	M	WebCore/ChangeLog
	M	WebCore/WebCore.vcproj/WebCore.vcproj
	M	WebCore/GNUmakefile.am
	M	WebCore/WebCore.gypi
	M	WebCore/bindings/js/StringSourceProvider.h
	M	WebCore/bindings/js/CachedScriptSourceProvider.h
	M	WebCore/bindings/js/ScriptSourceCode.h
	A	WebCore/bindings/js/ScriptSourceProvider.h
	M	WebCore/WebCore.xcodeproj/project.pbxproj
r46216 = 2e428bb4856f165dba70c85ccd5666e79af5d6bf (trunk)
No changes between current HEAD and refs/remotes/trunk
Resetting to the latest refs/remotes/trunk
http://trac.webkit.org/changeset/46216</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>133761</commentid>
    <comment_count>13</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2009-07-22 07:04:53 -0700</bug_when>
    <thetext>+        virtual ~ScriptSourceProvider() { }

There is no need to explicitly define an empty inline destructor here - the compiler would generate an identical one. It could make sense to define it as non-inline though, to reduce code bloat.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>33165</attachid>
            <date>2009-07-21 02:46:28 -0700</date>
            <delta_ts>2009-07-21 17:32:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>Bug27494_1.patch</filename>
            <type>text/plain</type>
            <size>12253</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0NjE1NikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzAgQEAKKzIwMDktMDctMjEgIERhbmllbCBCYXRlcyAgPGRiYXRlc0BpbnR1ZGF0
YS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI3NDk0CisKKyAgICAgICAg
Rml4ZXMgYW4gaXNzdWUgdGhhdCBjYW4gY2F1c2UgYSBjcmFzaCBvciB1bmV4cGVjdGVkIGJlaGF2
aW9yIHdoZW4gY2FsbGluZworICAgICAgICBXZWJDb3JlOjpTY3JpcHRTb3VyY2VDb2RlOjpzb3Vy
Y2Ugb24gYSBjYWNoZWQgc2NyaXB0LgorCisgICAgICAgICogR05VbWFrZWZpbGUuYW06CisgICAg
ICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAgICogV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0NhY2hlZFNj
cmlwdFNvdXJjZVByb3ZpZGVyLmg6IE1vZGlmaWVkIHRvIGluaGVyaXQgZnJvbSAKKyAgICAgICAg
V2ViQ29yZTo6U2NyaXB0U291cmNlQ29kZS4KKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFNjcmlw
dFNvdXJjZVByb3ZpZGVyOjpzb3VyY2UpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkU2NyaXB0
U291cmNlUHJvdmlkZXI6OkNhY2hlZFNjcmlwdFNvdXJjZVByb3ZpZGVyKToKKyAgICAgICAgKiBi
aW5kaW5ncy9qcy9TY3JpcHRTb3VyY2VDb2RlLmg6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRT
b3VyY2VDb2RlOjpTY3JpcHRTb3VyY2VDb2RlKTogU2VwYXJhdGVkIG91dCBzb3VyY2UgcHJvdmlk
ZXIgYW5kCisgICAgICAgIHJld3JvdGUgdG8gdXNlIFdlYkNvcmU6OlNjcmlwdFNvdXJjZVByb3Zp
ZGVyLgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0U291cmNlQ29kZTo6c291cmNlKToKKyAgICAg
ICAgKiBiaW5kaW5ncy9qcy9TY3JpcHRTb3VyY2VQcm92aWRlci5oOiBBZGRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OlNjcmlwdFNvdXJjZVByb3ZpZGVyOjpTY3JpcHRTb3VyY2VQcm92aWRlcik6Cisg
ICAgICAgIChXZWJDb3JlOjpTY3JpcHRTb3VyY2VQcm92aWRlcjo6flNjcmlwdFNvdXJjZVByb3Zp
ZGVyKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9TdHJpbmdTb3VyY2VQcm92aWRlci5oOiBNb2Rp
ZmllZCB0byBpbmhlcml0IGZyb20gCisgICAgICAgIFdlYkNvcmU6OlNjcmlwdFNvdXJjZUNvZGUu
CisgICAgICAgIChXZWJDb3JlOjpTdHJpbmdTb3VyY2VQcm92aWRlcjo6U3RyaW5nU291cmNlUHJv
dmlkZXIpOgorCiAyMDA5LTA3LTIwICBPbGl2ZXIgSHVudCAgPG9saXZlckBhcHBsZS5jb20+CiAK
ICAgICAgICAgUmV2aWV3ZWQgYnkgR2F2aW4gQmFycmFjbG91Z2guCkluZGV4OiBXZWJDb3JlL0dO
VW1ha2VmaWxlLmFtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvR05VbWFrZWZpbGUuYW0JKHJldmlz
aW9uIDQ1Nzg4KQorKysgV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQkod29ya2luZyBjb3B5KQpAQCAt
NDMzLDYgKzQzMyw3IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJV2ViQ29yZS9iaW5kaW5ncy9q
cy9TY3JpcHRPYmplY3RRdWFyYW50aW5lLmNwcCBcCiAJV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3Jp
cHRPYmplY3RRdWFyYW50aW5lLmggXAogCVdlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0U291cmNl
Q29kZS5oIFwKKwlXZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdFNvdXJjZVByb3ZpZGVyLmggXAog
CVdlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0U3RhdGUuY3BwIFwKIAlXZWJDb3JlL2JpbmRpbmdz
L2pzL1NjcmlwdFN0YXRlLmggXAogCVdlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0U3RyaW5nLmgg
XApJbmRleDogV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvago9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCShyZXZpc2lvbiA0NTc4
OCkKKysrIFdlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oJKHdvcmtpbmcgY29w
eSkKQEAgLTI4NjM4LDYgKzI4NjM4LDEwIEBACiAJCQkJCT4NCiAJCQkJPC9GaWxlPg0KIAkJCQk8
RmlsZQ0KKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xTY3JpcHRTb3VyY2VQcm92
aWRlci5oIg0KKwkJCQkJPg0KKwkJCQk8L0ZpbGU+DQorCQkJCTxGaWxlDQogCQkJCQlSZWxhdGl2
ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXFNjcmlwdFN0YXRlLmNwcCINCiAJCQkJCT4NCiAJCQkJPC9G
aWxlPg0KSW5kZXg6IFdlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShy
ZXZpc2lvbiA0NTc4OCkKKysrIFdlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCSh3b3JraW5nIGNvcHkpCkBAIC00MzE4LDYgKzQzMTgsNyBAQAogCQlDNTVFMzhDMDEwMDQw
RDVEMDBBNTZCREIgLyogU3RvcmFnZU5hbWVzcGFjZUltcGwuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzU1RTM4QkMxMDA0MEQ1RDAwQTU2QkRCIC8q
IFN0b3JhZ2VOYW1lc3BhY2VJbXBsLmNwcCAqLzsgfTsKIAkJQzZENzRBRDUwOUFBMjgyRTAwMEIw
QTUyIC8qIE1vZGlmeVNlbGVjdGlvbkxpc3RMZXZlbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzZENzRBRDMwOUFBMjgyRTAwMEIwQTUyIC8qIE1vZGlm
eVNlbGVjdGlvbkxpc3RMZXZlbC5oICovOyB9OwogCQlDNkQ3NEFFNDA5QUEyOTBBMDAwQjBBNTIg
LyogTW9kaWZ5U2VsZWN0aW9uTGlzdExldmVsLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEM2RDc0QUUzMDlBQTI5MEEwMDBCMEE1MiAvKiBNb2RpZnlT
ZWxlY3Rpb25MaXN0TGV2ZWwuY3BwICovOyB9OworCQlDRTUzNjY5RDEwMTU3MDkyMDA2MUJBRkYg
LyogU2NyaXB0U291cmNlUHJvdmlkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IENFNTM2NjlCMTAxNTcwOTIwMDYxQkFGRiAvKiBTY3JpcHRTb3VyY2VQ
cm92aWRlci5oICovOyB9OwogCQlEMDVDRUQyOTBBNDBCQjJDMDBDNUFGMzggLyogRm9ybWF0Qmxv
Y2tDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEQwNUNFRDI3MEE0MEJCMkMwMEM1QUYzOCAvKiBGb3JtYXRCbG9ja0NvbW1hbmQuY3BwICov
OyB9OwogCQlEMDVDRUQyQTBBNDBCQjJDMDBDNUFGMzggLyogRm9ybWF0QmxvY2tDb21tYW5kLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEMDVDRUQyODBB
NDBCQjJDMDBDNUFGMzggLyogRm9ybWF0QmxvY2tDb21tYW5kLmggKi87IH07CiAJCUQwNkMwRDhG
MENGRDExNDYwMDY1RjQzRiAvKiBSZW1vdmVGb3JtYXRDb21tYW5kLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEMDZDMEQ4RDBDRkQxMTQ2MDA2NUY0M0Yg
LyogUmVtb3ZlRm9ybWF0Q29tbWFuZC5oICovOyB9OwpAQCAtOTE2OCw2ICs5MTY5LDcgQEAKIAkJ
QzU1RTM4QkMxMDA0MEQ1RDAwQTU2QkRCIC8qIFN0b3JhZ2VOYW1lc3BhY2VJbXBsLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFN0b3JhZ2VOYW1lc3BhY2VJbXBsLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzZENzRBRDMwOUFBMjgyRTAwMEIwQTUy
IC8qIE1vZGlmeVNlbGVjdGlvbkxpc3RMZXZlbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBNb2RpZnlTZWxlY3Rpb25MaXN0TGV2ZWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQzZENzRBRTMwOUFBMjkwQTAwMEIwQTUyIC8qIE1vZGlmeVNlbGVjdGlvbkxpc3RM
ZXZlbC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNb2RpZnlTZWxl
Y3Rpb25MaXN0TGV2ZWwuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDRTUzNjY5
QjEwMTU3MDkyMDA2MUJBRkYgLyogU2NyaXB0U291cmNlUHJvdmlkZXIuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gU2NyaXB0U291cmNlUHJvdmlkZXIuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJRDA1Q0VEMjcwQTQwQkIyQzAwQzVBRjM4IC8qIEZvcm1hdEJsb2Nr
Q29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
MzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRm9ybWF0
QmxvY2tDb21tYW5kLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRDA1Q0VEMjgw
QTQwQkIyQzAwQzVBRjM4IC8qIEZvcm1hdEJsb2NrQ29tbWFuZC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gRm9ybWF0QmxvY2tDb21tYW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUQwNkMwRDhEMENGRDExNDYwMDY1RjQzRiAvKiBSZW1vdmVGb3JtYXRDb21t
YW5kLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW92ZUZvcm1hdENvbW1h
bmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEzNDk5LDYgKzEzNTAxLDcgQEAK
IAkJCQk0MTJBNjg0NjBGNkIwM0REMDAwRUE2NkUgLyogU2NyaXB0T2JqZWN0UXVhcmFudGluZS5j
cHAgKi8sCiAJCQkJNDE5NTM2NTAwRjY4MjIyNDAwRDBDNjc5IC8qIFNjcmlwdE9iamVjdFF1YXJh
bnRpbmUuaCAqLywKIAkJCQk5MzRDQzEwOTBFREIyMjM5MDBBNjU4RjIgLyogU2NyaXB0U291cmNl
Q29kZS5oICovLAorCQkJCUNFNTM2NjlCMTAxNTcwOTIwMDYxQkFGRiAvKiBTY3JpcHRTb3VyY2VQ
cm92aWRlci5oICovLAogCQkJCTQxMjdENTM2MEY4QUFCMUQwMEU0MjRGNSAvKiBTY3JpcHRTdGF0
ZS5jcHAgKi8sCiAJCQkJNDFDNzYwQjAwRURFMDNEMzAwQzE2NTVGIC8qIFNjcmlwdFN0YXRlLmgg
Ki8sCiAJCQkJNDE2RjQ1RUYwRUQ3QjMxMTAwODIxNUI2IC8qIFNjcmlwdFN0cmluZy5oICovLApA
QCAtMTY5NjUsNiArMTY5NjgsNyBAQAogCQkJCTkzRjE5OUVEMDgyNDVFNTkwMDFFOUFCQyAvKiBY
U0xUUHJvY2Vzc29yLmggaW4gSGVhZGVycyAqLywKIAkJCQlFMUJFNTEyRTBDRjZDNTEyMDAyRUE5
NTkgLyogWFNMVFVuaWNvZGVTb3J0LmggaW4gSGVhZGVycyAqLywKIAkJCQk5N0RENEQ4NzBGREY0
RDZFMDBFQ0Y5QTQgLyogWFNTQXVkaXRvci5oIGluIEhlYWRlcnMgKi8sCisJCQkJQ0U1MzY2OUQx
MDE1NzA5MjAwNjFCQUZGIC8qIFNjcmlwdFNvdXJjZVByb3ZpZGVyLmggaW4gSGVhZGVycyAqLywK
IAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsK
SW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvanMvQ2FjaGVkU2NyaXB0U291cmNlUHJvdmlkZXIuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL2pzL0NhY2hlZFNjcmlwdFNvdXJjZVByb3Zp
ZGVyLmgJKHJldmlzaW9uIDQ1Nzg4KQorKysgV2ViQ29yZS9iaW5kaW5ncy9qcy9DYWNoZWRTY3Jp
cHRTb3VyY2VQcm92aWRlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOSwxMSArMjksMTIgQEAKICNp
bmNsdWRlICJDYWNoZWRSZXNvdXJjZUNsaWVudC5oIgogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNl
SGFuZGxlLmgiCiAjaW5jbHVkZSAiQ2FjaGVkU2NyaXB0LmgiCisjaW5jbHVkZSAiU2NyaXB0U291
cmNlUHJvdmlkZXIuaCIKICNpbmNsdWRlIDxwYXJzZXIvU291cmNlQ29kZS5oPgogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKLSAgICBjbGFzcyBDYWNoZWRTY3JpcHRTb3VyY2VQcm92aWRlciA6IHB1
YmxpYyBKU0M6OlNvdXJjZVByb3ZpZGVyLCBwdWJsaWMgQ2FjaGVkUmVzb3VyY2VDbGllbnQgewor
ICAgIGNsYXNzIENhY2hlZFNjcmlwdFNvdXJjZVByb3ZpZGVyIDogcHVibGljIFNjcmlwdFNvdXJj
ZVByb3ZpZGVyLCBwdWJsaWMgQ2FjaGVkUmVzb3VyY2VDbGllbnQgewogICAgIHB1YmxpYzoKICAg
ICAgICAgc3RhdGljIFBhc3NSZWZQdHI8Q2FjaGVkU2NyaXB0U291cmNlUHJvdmlkZXI+IGNyZWF0
ZShDYWNoZWRTY3JpcHQqIGNhY2hlZFNjcmlwdCkgeyByZXR1cm4gYWRvcHRSZWYobmV3IENhY2hl
ZFNjcmlwdFNvdXJjZVByb3ZpZGVyKGNhY2hlZFNjcmlwdCkpOyB9CiAKQEAgLTQ1LDEwICs0Niwx
MSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIEpTQzo6VVN0cmluZyBnZXRSYW5nZShp
bnQgc3RhcnQsIGludCBlbmQpIGNvbnN0IHsgcmV0dXJuIEpTQzo6VVN0cmluZyhtX2NhY2hlZFNj
cmlwdC0+c2NyaXB0KCkuY2hhcmFjdGVycygpICsgc3RhcnQsIGVuZCAtIHN0YXJ0KTsgfQogICAg
ICAgICBjb25zdCBVQ2hhciogZGF0YSgpIGNvbnN0IHsgcmV0dXJuIG1fY2FjaGVkU2NyaXB0LT5z
Y3JpcHQoKS5jaGFyYWN0ZXJzKCk7IH0KICAgICAgICAgaW50IGxlbmd0aCgpIGNvbnN0IHsgcmV0
dXJuIG1fY2FjaGVkU2NyaXB0LT5zY3JpcHQoKS5sZW5ndGgoKTsgfQorICAgICAgICBjb25zdCBT
dHJpbmcmIHNvdXJjZSgpIGNvbnN0IHsgcmV0dXJuIG1fY2FjaGVkU2NyaXB0LT5zY3JpcHQoKTsg
fQogCiAgICAgcHJpdmF0ZToKICAgICAgICAgQ2FjaGVkU2NyaXB0U291cmNlUHJvdmlkZXIoQ2Fj
aGVkU2NyaXB0KiBjYWNoZWRTY3JpcHQpCi0gICAgICAgICAgICA6IFNvdXJjZVByb3ZpZGVyKGNh
Y2hlZFNjcmlwdC0+dXJsKCkpCisgICAgICAgICAgICA6IFNjcmlwdFNvdXJjZVByb3ZpZGVyKGNh
Y2hlZFNjcmlwdC0+dXJsKCkpCiAgICAgICAgICAgICAsIG1fY2FjaGVkU2NyaXB0KGNhY2hlZFNj
cmlwdCkKICAgICAgICAgewogICAgICAgICAgICAgbV9jYWNoZWRTY3JpcHQtPmFkZENsaWVudCh0
aGlzKTsKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0U291cmNlQ29kZS5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0U291cmNlQ29kZS5oCShyZXZpc2lv
biA0NTc4OCkKKysrIFdlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0U291cmNlQ29kZS5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zMiwyMCArMzIsMjQgQEAKICNkZWZpbmUgU2NyaXB0U291cmNlQ29kZV9o
CiAKICNpbmNsdWRlICJDYWNoZWRTY3JpcHRTb3VyY2VQcm92aWRlci5oIgorI2luY2x1ZGUgIlNj
cmlwdFNvdXJjZVByb3ZpZGVyLmgiCiAjaW5jbHVkZSAiU3RyaW5nU291cmNlUHJvdmlkZXIuaCIK
ICNpbmNsdWRlICJLVVJMLmgiCisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIGNsYXNzIFNjcmlwdFNvdXJjZUNvZGUgewogcHVibGljOgogICAgIFNjcmlw
dFNvdXJjZUNvZGUoY29uc3QgU3RyaW5nJiBzb3VyY2UsIGNvbnN0IEtVUkwmIHVybCA9IEtVUkwo
KSwgaW50IHN0YXJ0TGluZSA9IDEpCi0gICAgICAgIDogbV9jb2RlKG1ha2VTb3VyY2Uoc291cmNl
LCB1cmwuaXNOdWxsKCkgPyBTdHJpbmcoKSA6IHVybC5zdHJpbmcoKSwgc3RhcnRMaW5lKSkKKyAg
ICAgICAgOiBtX3Byb3ZpZGVyKFN0cmluZ1NvdXJjZVByb3ZpZGVyOjpjcmVhdGUoc291cmNlLCB1
cmwuaXNOdWxsKCkgPyBTdHJpbmcoKSA6IHVybC5zdHJpbmcoKSkpCisgICAgICAgICwgbV9jb2Rl
KG1fcHJvdmlkZXIsIHN0YXJ0TGluZSkKICAgICB7CiAgICAgfQogCiAgICAgU2NyaXB0U291cmNl
Q29kZShDYWNoZWRTY3JpcHQqIGNzKQotICAgICAgICA6IG1fY29kZShtYWtlU291cmNlKGNzKSkK
KyAgICAgICAgOiBtX3Byb3ZpZGVyKENhY2hlZFNjcmlwdFNvdXJjZVByb3ZpZGVyOjpjcmVhdGUo
Y3MpKQorICAgICAgICAsIG1fY29kZShtX3Byb3ZpZGVyKQogICAgIHsKICAgICB9CiAKQEAgLTUz
LDkgKzU3LDExIEBAIHB1YmxpYzoKIAogICAgIGNvbnN0IEpTQzo6U291cmNlQ29kZSYganNTb3Vy
Y2VDb2RlKCkgY29uc3QgeyByZXR1cm4gbV9jb2RlOyB9CiAKLSAgICBjb25zdCBTdHJpbmcmIHNv
dXJjZSgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PFN0cmluZ1NvdXJjZVByb3ZpZGVyKj4o
bV9jb2RlLnByb3ZpZGVyKCkpLT5zb3VyY2UoKTsgfQorICAgIGNvbnN0IFN0cmluZyYgc291cmNl
KCkgY29uc3QgeyByZXR1cm4gbV9wcm92aWRlci0+c291cmNlKCk7IH0KIAogcHJpdmF0ZToKKyAg
ICBSZWZQdHI8U2NyaXB0U291cmNlUHJvdmlkZXI+IG1fcHJvdmlkZXI7CisgICAgCiAgICAgSlND
OjpTb3VyY2VDb2RlIG1fY29kZTsKIH07CiAKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvanMvU2Ny
aXB0U291cmNlUHJvdmlkZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL2pzL1Nj
cmlwdFNvdXJjZVByb3ZpZGVyLmgJKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL2JpbmRpbmdzL2pz
L1NjcmlwdFNvdXJjZVByb3ZpZGVyLmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNTAgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMDkgRGFuaWVsIEJhdGVzIChkYmF0ZXNAaW50dWRhdGEuY29t
KQorICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
CisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgU2NyaXB0U291cmNlUHJvdmlkZXJfaAor
I2RlZmluZSBTY3JpcHRTb3VyY2VQcm92aWRlcl9oCisKKyNpbmNsdWRlIDxwYXJzZXIvU291cmNl
UHJvdmlkZXIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCisgICAgY2xhc3MgU3RyaW5nOwor
CisgICAgY2xhc3MgU2NyaXB0U291cmNlUHJvdmlkZXIgOiBwdWJsaWMgSlNDOjpTb3VyY2VQcm92
aWRlciB7CisgICAgcHVibGljOgorICAgICAgICBTY3JpcHRTb3VyY2VQcm92aWRlcihjb25zdCBK
U0M6OlVTdHJpbmcmIHVybCwgSlNDOjpTb3VyY2VCT01QcmVzZW5jZSBoYXNCT01zID0gSlNDOjpT
b3VyY2VDb3VsZEhhdmVCT01zKQorICAgICAgICAgICAgOiBTb3VyY2VQcm92aWRlcih1cmwsIGhh
c0JPTXMpCisgICAgICAgIHsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgdmlydHVhbCB+
U2NyaXB0U291cmNlUHJvdmlkZXIoKSB7IH0KKyAgICAgICAgCisgICAgICAgIHZpcnR1YWwgY29u
c3QgU3RyaW5nJiBzb3VyY2UoKSBjb25zdCA9IDA7CisgICAgfTsKKyAgICAKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFNjcmlwdFNvdXJjZVByb3ZpZGVyX2gKSW5kZXg6IFdl
YkNvcmUvYmluZGluZ3MvanMvU3RyaW5nU291cmNlUHJvdmlkZXIuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL2JpbmRpbmdzL2pzL1N0cmluZ1NvdXJjZVByb3ZpZGVyLmgJKHJldmlzaW9uIDQ1Nzg4
KQorKysgV2ViQ29yZS9iaW5kaW5ncy9qcy9TdHJpbmdTb3VyY2VQcm92aWRlci5oCSh3b3JraW5n
IGNvcHkpCkBAIC0yOSwxMSArMjksMTIgQEAKICNpZm5kZWYgU3RyaW5nU291cmNlUHJvdmlkZXJf
aAogI2RlZmluZSBTdHJpbmdTb3VyY2VQcm92aWRlcl9oCiAKKyNpbmNsdWRlICJTY3JpcHRTb3Vy
Y2VQcm92aWRlci5oIgogI2luY2x1ZGUgPHBhcnNlci9Tb3VyY2VDb2RlLmg+CiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAotICAgIGNsYXNzIFN0cmluZ1NvdXJjZVByb3ZpZGVyIDogcHVibGljIEpT
Qzo6U291cmNlUHJvdmlkZXIgeworICAgIGNsYXNzIFN0cmluZ1NvdXJjZVByb3ZpZGVyIDogcHVi
bGljIFNjcmlwdFNvdXJjZVByb3ZpZGVyIHsKICAgICBwdWJsaWM6CiAgICAgICAgIHN0YXRpYyBQ
YXNzUmVmUHRyPFN0cmluZ1NvdXJjZVByb3ZpZGVyPiBjcmVhdGUoY29uc3QgU3RyaW5nJiBzb3Vy
Y2UsIGNvbnN0IFN0cmluZyYgdXJsKSB7IHJldHVybiBhZG9wdFJlZihuZXcgU3RyaW5nU291cmNl
UHJvdmlkZXIoc291cmNlLCB1cmwpKTsgfQogCkBAIC00NCw3ICs0NSw3IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogICAgIHByaXZhdGU6CiAgICAgICAgIFN0cmluZ1NvdXJjZVByb3ZpZGVyKGNv
bnN0IFN0cmluZyYgc291cmNlLCBjb25zdCBTdHJpbmcmIHVybCkKLSAgICAgICAgICAgIDogU291
cmNlUHJvdmlkZXIodXJsKQorICAgICAgICAgICAgOiBTY3JpcHRTb3VyY2VQcm92aWRlcih1cmwp
CiAgICAgICAgICAgICAsIG1fc291cmNlKHNvdXJjZSkKICAgICAgICAgewogICAgICAgICB9Cg==
</data>
<flag name="review"
          id="17486"
          type_id="1"
          status="-"
          setter="abarth"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>33230</attachid>
            <date>2009-07-21 17:32:24 -0700</date>
            <delta_ts>2009-07-21 21:51:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>Bug27494_2.patch</filename>
            <type>text/plain</type>
            <size>12810</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0NjE1NikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzEgQEAKKzIwMDktMDctMjEgIERhbmllbCBCYXRlcyAgPGRiYXRlc0BpbnR1ZGF0
YS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI3NDk0CisKKyAgICAgICAg
Rml4ZXMgYW4gaXNzdWUgdGhhdCBjYW4gY2F1c2UgYSBjcmFzaCBvciB1bmV4cGVjdGVkIGJlaGF2
aW9yIHdoZW4gY2FsbGluZworICAgICAgICBXZWJDb3JlOjpTY3JpcHRTb3VyY2VDb2RlOjpzb3Vy
Y2Ugb24gYSBjYWNoZWQgc2NyaXB0LgorCisgICAgICAgICogR05VbWFrZWZpbGUuYW06CisgICAg
ICAgICogV2ViQ29yZS5neXBpCisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3By
b2o6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAg
ICAqIGJpbmRpbmdzL2pzL0NhY2hlZFNjcmlwdFNvdXJjZVByb3ZpZGVyLmg6IE1vZGlmaWVkIHRv
IGluaGVyaXQgZnJvbSAKKyAgICAgICAgV2ViQ29yZTo6U2NyaXB0U291cmNlQ29kZS4KKyAgICAg
ICAgKFdlYkNvcmU6OkNhY2hlZFNjcmlwdFNvdXJjZVByb3ZpZGVyOjpzb3VyY2UpOgorICAgICAg
ICAoV2ViQ29yZTo6Q2FjaGVkU2NyaXB0U291cmNlUHJvdmlkZXI6OkNhY2hlZFNjcmlwdFNvdXJj
ZVByb3ZpZGVyKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9TY3JpcHRTb3VyY2VDb2RlLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpTY3JpcHRTb3VyY2VDb2RlOjpTY3JpcHRTb3VyY2VDb2RlKTogU2Vw
YXJhdGVkIG91dCBzb3VyY2UgcHJvdmlkZXIgYW5kCisgICAgICAgIHJld3JvdGUgdG8gdXNlIFdl
YkNvcmU6OlNjcmlwdFNvdXJjZVByb3ZpZGVyLgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0U291
cmNlQ29kZTo6c291cmNlKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9TY3JpcHRTb3VyY2VQcm92
aWRlci5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdFNvdXJjZVByb3ZpZGVyOjpT
Y3JpcHRTb3VyY2VQcm92aWRlcik6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRTb3VyY2VQcm92
aWRlcjo6flNjcmlwdFNvdXJjZVByb3ZpZGVyKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9TdHJp
bmdTb3VyY2VQcm92aWRlci5oOiBNb2RpZmllZCB0byBpbmhlcml0IGZyb20gCisgICAgICAgIFdl
YkNvcmU6OlNjcmlwdFNvdXJjZUNvZGUuCisgICAgICAgIChXZWJDb3JlOjpTdHJpbmdTb3VyY2VQ
cm92aWRlcjo6U3RyaW5nU291cmNlUHJvdmlkZXIpOgorCiAyMDA5LTA3LTIwICBPbGl2ZXIgSHVu
dCAgPG9saXZlckBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgR2F2aW4gQmFycmFj
bG91Z2guCkluZGV4OiBXZWJDb3JlL0dOVW1ha2VmaWxlLmFtCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvR05VbWFrZWZpbGUuYW0JKHJldmlzaW9uIDQ1Nzg4KQorKysgV2ViQ29yZS9HTlVtYWtlZmls
ZS5hbQkod29ya2luZyBjb3B5KQpAQCAtNDMzLDYgKzQzMyw3IEBAIHdlYmNvcmVfc291cmNlcyAr
PSBcCiAJV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRPYmplY3RRdWFyYW50aW5lLmNwcCBcCiAJ
V2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRPYmplY3RRdWFyYW50aW5lLmggXAogCVdlYkNvcmUv
YmluZGluZ3MvanMvU2NyaXB0U291cmNlQ29kZS5oIFwKKwlXZWJDb3JlL2JpbmRpbmdzL2pzL1Nj
cmlwdFNvdXJjZVByb3ZpZGVyLmggXAogCVdlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0U3RhdGUu
Y3BwIFwKIAlXZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdFN0YXRlLmggXAogCVdlYkNvcmUvYmlu
ZGluZ3MvanMvU2NyaXB0U3RyaW5nLmggXApJbmRleDogV2ViQ29yZS9XZWJDb3JlLmd5cGkKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9XZWJDb3JlLmd5cGkJKHJldmlzaW9uIDQ1Nzg4KQorKysgV2Vi
Q29yZS9XZWJDb3JlLmd5cGkJKHdvcmtpbmcgY29weSkKQEAgLTU2OCw2ICs1NjgsNyBAQAogICAg
ICAgICAgICAgJ2JpbmRpbmdzL2pzL1NjcmlwdE9iamVjdFF1YXJhbnRpbmUuY3BwJywKICAgICAg
ICAgICAgICdiaW5kaW5ncy9qcy9TY3JpcHRPYmplY3RRdWFyYW50aW5lLmgnLAogICAgICAgICAg
ICAgJ2JpbmRpbmdzL2pzL1NjcmlwdFNvdXJjZUNvZGUuaCcsCisgICAgICAgICAgICAnYmluZGlu
Z3MvanMvU2NyaXB0U291cmNlUHJvdmlkZXIuaCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvanMv
U2NyaXB0U3RhdGUuY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy9qcy9TY3JpcHRTdGF0ZS5o
JywKICAgICAgICAgICAgICdiaW5kaW5ncy9qcy9TY3JpcHRTdHJpbmcuaCcsCkluZGV4OiBXZWJD
b3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
V2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oJKHJldmlzaW9uIDQ1Nzg4KQorKysgV2ViQ29y
ZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagkod29ya2luZyBjb3B5KQpAQCAtMjg2Mzgs
NiArMjg2MzgsMTAgQEAKIAkJCQkJPg0KIAkJCQk8L0ZpbGU+DQogCQkJCTxGaWxlDQorCQkJCQlS
ZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXFNjcmlwdFNvdXJjZVByb3ZpZGVyLmgiDQorCQkJ
CQk+DQorCQkJCTwvRmlsZT4NCisJCQkJPEZpbGUNCiAJCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmlu
ZGluZ3NcanNcU2NyaXB0U3RhdGUuY3BwIg0KIAkJCQkJPg0KIAkJCQk8L0ZpbGU+DQpJbmRleDog
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDQ1Nzg4
KQorKysgV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcg
Y29weSkKQEAgLTQzMTgsNiArNDMxOCw3IEBACiAJCUM1NUUzOEMwMTAwNDBENUQwMEE1NkJEQiAv
KiBTdG9yYWdlTmFtZXNwYWNlSW1wbC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBDNTVFMzhCQzEwMDQwRDVEMDBBNTZCREIgLyogU3RvcmFnZU5hbWVz
cGFjZUltcGwuY3BwICovOyB9OwogCQlDNkQ3NEFENTA5QUEyODJFMDAwQjBBNTIgLyogTW9kaWZ5
U2VsZWN0aW9uTGlzdExldmVsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBDNkQ3NEFEMzA5QUEyODJFMDAwQjBBNTIgLyogTW9kaWZ5U2VsZWN0aW9uTGlz
dExldmVsLmggKi87IH07CiAJCUM2RDc0QUU0MDlBQTI5MEEwMDBCMEE1MiAvKiBNb2RpZnlTZWxl
Y3Rpb25MaXN0TGV2ZWwuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQzZENzRBRTMwOUFBMjkwQTAwMEIwQTUyIC8qIE1vZGlmeVNlbGVjdGlvbkxpc3RM
ZXZlbC5jcHAgKi87IH07CisJCUNFNTM2NjlEMTAxNTcwOTIwMDYxQkFGRiAvKiBTY3JpcHRTb3Vy
Y2VQcm92aWRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQ0U1MzY2OUIxMDE1NzA5MjAwNjFCQUZGIC8qIFNjcmlwdFNvdXJjZVByb3ZpZGVyLmggKi87
IH07CiAJCUQwNUNFRDI5MEE0MEJCMkMwMEM1QUYzOCAvKiBGb3JtYXRCbG9ja0NvbW1hbmQuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRDA1Q0VEMjcw
QTQwQkIyQzAwQzVBRjM4IC8qIEZvcm1hdEJsb2NrQ29tbWFuZC5jcHAgKi87IH07CiAJCUQwNUNF
RDJBMEE0MEJCMkMwMEM1QUYzOCAvKiBGb3JtYXRCbG9ja0NvbW1hbmQuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEQwNUNFRDI4MEE0MEJCMkMwMEM1QUYz
OCAvKiBGb3JtYXRCbG9ja0NvbW1hbmQuaCAqLzsgfTsKIAkJRDA2QzBEOEYwQ0ZEMTE0NjAwNjVG
NDNGIC8qIFJlbW92ZUZvcm1hdENvbW1hbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEQwNkMwRDhEMENGRDExNDYwMDY1RjQzRiAvKiBSZW1vdmVGb3Jt
YXRDb21tYW5kLmggKi87IH07CkBAIC05MTY4LDYgKzkxNjksNyBAQAogCQlDNTVFMzhCQzEwMDQw
RDVEMDBBNTZCREIgLyogU3RvcmFnZU5hbWVzcGFjZUltcGwuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gU3RvcmFnZU5hbWVzcGFjZUltcGwuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlDNkQ3NEFEMzA5QUEyODJFMDAwQjBBNTIgLyogTW9kaWZ5U2Vs
ZWN0aW9uTGlzdExldmVsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1vZGlm
eVNlbGVjdGlvbkxpc3RMZXZlbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDNkQ3
NEFFMzA5QUEyOTBBMDAwQjBBNTIgLyogTW9kaWZ5U2VsZWN0aW9uTGlzdExldmVsLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1vZGlmeVNlbGVjdGlvbkxpc3RMZXZl
bC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNFNTM2NjlCMTAxNTcwOTIwMDYx
QkFGRiAvKiBTY3JpcHRTb3VyY2VQcm92aWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBTY3JpcHRTb3VyY2VQcm92aWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlEMDVDRUQyNzBBNDBCQjJDMDBDNUFGMzggLyogRm9ybWF0QmxvY2tDb21tYW5kLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBGb3JtYXRCbG9ja0NvbW1hbmQu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEMDVDRUQyODBBNDBCQjJDMDBDNUFG
MzggLyogRm9ybWF0QmxvY2tDb21tYW5kLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBGb3JtYXRCbG9ja0NvbW1hbmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
RDA2QzBEOEQwQ0ZEMTE0NjAwNjVGNDNGIC8qIFJlbW92ZUZvcm1hdENvbW1hbmQuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3ZlRm9ybWF0Q29tbWFuZC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTM0OTksNiArMTM1MDEsNyBAQAogCQkJCTQxMkE2ODQ2
MEY2QjAzREQwMDBFQTY2RSAvKiBTY3JpcHRPYmplY3RRdWFyYW50aW5lLmNwcCAqLywKIAkJCQk0
MTk1MzY1MDBGNjgyMjI0MDBEMEM2NzkgLyogU2NyaXB0T2JqZWN0UXVhcmFudGluZS5oICovLAog
CQkJCTkzNENDMTA5MEVEQjIyMzkwMEE2NThGMiAvKiBTY3JpcHRTb3VyY2VDb2RlLmggKi8sCisJ
CQkJQ0U1MzY2OUIxMDE1NzA5MjAwNjFCQUZGIC8qIFNjcmlwdFNvdXJjZVByb3ZpZGVyLmggKi8s
CiAJCQkJNDEyN0Q1MzYwRjhBQUIxRDAwRTQyNEY1IC8qIFNjcmlwdFN0YXRlLmNwcCAqLywKIAkJ
CQk0MUM3NjBCMDBFREUwM0QzMDBDMTY1NUYgLyogU2NyaXB0U3RhdGUuaCAqLywKIAkJCQk0MTZG
NDVFRjBFRDdCMzExMDA4MjE1QjYgLyogU2NyaXB0U3RyaW5nLmggKi8sCkBAIC0xNjk2NSw2ICsx
Njk2OCw3IEBACiAJCQkJOTNGMTk5RUQwODI0NUU1OTAwMUU5QUJDIC8qIFhTTFRQcm9jZXNzb3Iu
aCBpbiBIZWFkZXJzICovLAogCQkJCUUxQkU1MTJFMENGNkM1MTIwMDJFQTk1OSAvKiBYU0xUVW5p
Y29kZVNvcnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTk3REQ0RDg3MEZERjRENkUwMEVDRjlBNCAv
KiBYU1NBdWRpdG9yLmggaW4gSGVhZGVycyAqLywKKwkJCQlDRTUzNjY5RDEwMTU3MDkyMDA2MUJB
RkYgLyogU2NyaXB0U291cmNlUHJvdmlkZXIuaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1
bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpJbmRleDogV2ViQ29y
ZS9iaW5kaW5ncy9qcy9DYWNoZWRTY3JpcHRTb3VyY2VQcm92aWRlci5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvYmluZGluZ3MvanMvQ2FjaGVkU2NyaXB0U291cmNlUHJvdmlkZXIuaAkocmV2aXNp
b24gNDU3ODgpCisrKyBXZWJDb3JlL2JpbmRpbmdzL2pzL0NhY2hlZFNjcmlwdFNvdXJjZVByb3Zp
ZGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTI5LDExICsyOSwxMiBAQAogI2luY2x1ZGUgIkNhY2hl
ZFJlc291cmNlQ2xpZW50LmgiCiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VIYW5kbGUuaCIKICNp
bmNsdWRlICJDYWNoZWRTY3JpcHQuaCIKKyNpbmNsdWRlICJTY3JpcHRTb3VyY2VQcm92aWRlci5o
IgogI2luY2x1ZGUgPHBhcnNlci9Tb3VyY2VDb2RlLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAotICAgIGNsYXNzIENhY2hlZFNjcmlwdFNvdXJjZVByb3ZpZGVyIDogcHVibGljIEpTQzo6U291
cmNlUHJvdmlkZXIsIHB1YmxpYyBDYWNoZWRSZXNvdXJjZUNsaWVudCB7CisgICAgY2xhc3MgQ2Fj
aGVkU2NyaXB0U291cmNlUHJvdmlkZXIgOiBwdWJsaWMgU2NyaXB0U291cmNlUHJvdmlkZXIsIHB1
YmxpYyBDYWNoZWRSZXNvdXJjZUNsaWVudCB7CiAgICAgcHVibGljOgogICAgICAgICBzdGF0aWMg
UGFzc1JlZlB0cjxDYWNoZWRTY3JpcHRTb3VyY2VQcm92aWRlcj4gY3JlYXRlKENhY2hlZFNjcmlw
dCogY2FjaGVkU2NyaXB0KSB7IHJldHVybiBhZG9wdFJlZihuZXcgQ2FjaGVkU2NyaXB0U291cmNl
UHJvdmlkZXIoY2FjaGVkU2NyaXB0KSk7IH0KIApAQCAtNDUsMTAgKzQ2LDExIEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKICAgICAgICAgSlNDOjpVU3RyaW5nIGdldFJhbmdlKGludCBzdGFydCwgaW50
IGVuZCkgY29uc3QgeyByZXR1cm4gSlNDOjpVU3RyaW5nKG1fY2FjaGVkU2NyaXB0LT5zY3JpcHQo
KS5jaGFyYWN0ZXJzKCkgKyBzdGFydCwgZW5kIC0gc3RhcnQpOyB9CiAgICAgICAgIGNvbnN0IFVD
aGFyKiBkYXRhKCkgY29uc3QgeyByZXR1cm4gbV9jYWNoZWRTY3JpcHQtPnNjcmlwdCgpLmNoYXJh
Y3RlcnMoKTsgfQogICAgICAgICBpbnQgbGVuZ3RoKCkgY29uc3QgeyByZXR1cm4gbV9jYWNoZWRT
Y3JpcHQtPnNjcmlwdCgpLmxlbmd0aCgpOyB9CisgICAgICAgIGNvbnN0IFN0cmluZyYgc291cmNl
KCkgY29uc3QgeyByZXR1cm4gbV9jYWNoZWRTY3JpcHQtPnNjcmlwdCgpOyB9CiAKICAgICBwcml2
YXRlOgogICAgICAgICBDYWNoZWRTY3JpcHRTb3VyY2VQcm92aWRlcihDYWNoZWRTY3JpcHQqIGNh
Y2hlZFNjcmlwdCkKLSAgICAgICAgICAgIDogU291cmNlUHJvdmlkZXIoY2FjaGVkU2NyaXB0LT51
cmwoKSkKKyAgICAgICAgICAgIDogU2NyaXB0U291cmNlUHJvdmlkZXIoY2FjaGVkU2NyaXB0LT51
cmwoKSkKICAgICAgICAgICAgICwgbV9jYWNoZWRTY3JpcHQoY2FjaGVkU2NyaXB0KQogICAgICAg
ICB7CiAgICAgICAgICAgICBtX2NhY2hlZFNjcmlwdC0+YWRkQ2xpZW50KHRoaXMpOwpJbmRleDog
V2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRTb3VyY2VDb2RlLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9iaW5kaW5ncy9qcy9TY3JpcHRTb3VyY2VDb2RlLmgJKHJldmlzaW9uIDQ1Nzg4KQorKysg
V2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRTb3VyY2VDb2RlLmgJKHdvcmtpbmcgY29weSkKQEAg
LTMyLDIwICszMiwyNCBAQAogI2RlZmluZSBTY3JpcHRTb3VyY2VDb2RlX2gKIAogI2luY2x1ZGUg
IkNhY2hlZFNjcmlwdFNvdXJjZVByb3ZpZGVyLmgiCisjaW5jbHVkZSAiU2NyaXB0U291cmNlUHJv
dmlkZXIuaCIKICNpbmNsdWRlICJTdHJpbmdTb3VyY2VQcm92aWRlci5oIgogI2luY2x1ZGUgIktV
UkwuaCIKKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
Y2xhc3MgU2NyaXB0U291cmNlQ29kZSB7CiBwdWJsaWM6CiAgICAgU2NyaXB0U291cmNlQ29kZShj
b25zdCBTdHJpbmcmIHNvdXJjZSwgY29uc3QgS1VSTCYgdXJsID0gS1VSTCgpLCBpbnQgc3RhcnRM
aW5lID0gMSkKLSAgICAgICAgOiBtX2NvZGUobWFrZVNvdXJjZShzb3VyY2UsIHVybC5pc051bGwo
KSA/IFN0cmluZygpIDogdXJsLnN0cmluZygpLCBzdGFydExpbmUpKQorICAgICAgICA6IG1fcHJv
dmlkZXIoU3RyaW5nU291cmNlUHJvdmlkZXI6OmNyZWF0ZShzb3VyY2UsIHVybC5pc051bGwoKSA/
IFN0cmluZygpIDogdXJsLnN0cmluZygpKSkKKyAgICAgICAgLCBtX2NvZGUobV9wcm92aWRlciwg
c3RhcnRMaW5lKQogICAgIHsKICAgICB9CiAKICAgICBTY3JpcHRTb3VyY2VDb2RlKENhY2hlZFNj
cmlwdCogY3MpCi0gICAgICAgIDogbV9jb2RlKG1ha2VTb3VyY2UoY3MpKQorICAgICAgICA6IG1f
cHJvdmlkZXIoQ2FjaGVkU2NyaXB0U291cmNlUHJvdmlkZXI6OmNyZWF0ZShjcykpCisgICAgICAg
ICwgbV9jb2RlKG1fcHJvdmlkZXIpCiAgICAgewogICAgIH0KIApAQCAtNTMsOSArNTcsMTEgQEAg
cHVibGljOgogCiAgICAgY29uc3QgSlNDOjpTb3VyY2VDb2RlJiBqc1NvdXJjZUNvZGUoKSBjb25z
dCB7IHJldHVybiBtX2NvZGU7IH0KIAotICAgIGNvbnN0IFN0cmluZyYgc291cmNlKCkgY29uc3Qg
eyByZXR1cm4gc3RhdGljX2Nhc3Q8U3RyaW5nU291cmNlUHJvdmlkZXIqPihtX2NvZGUucHJvdmlk
ZXIoKSktPnNvdXJjZSgpOyB9CisgICAgY29uc3QgU3RyaW5nJiBzb3VyY2UoKSBjb25zdCB7IHJl
dHVybiBtX3Byb3ZpZGVyLT5zb3VyY2UoKTsgfQogCiBwcml2YXRlOgorICAgIFJlZlB0cjxTY3Jp
cHRTb3VyY2VQcm92aWRlcj4gbV9wcm92aWRlcjsKKyAgICAKICAgICBKU0M6OlNvdXJjZUNvZGUg
bV9jb2RlOwogfTsKIApJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRTb3VyY2VQcm92
aWRlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0U291cmNlUHJv
dmlkZXIuaAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0U291cmNl
UHJvdmlkZXIuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw1MCBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAwOSBEYW5pZWwgQmF0ZXMgKGRiYXRlc0BpbnR1ZGF0YS5jb20pCisgKiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENP
TVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2lmbmRlZiBTY3JpcHRTb3VyY2VQcm92aWRlcl9oCisjZGVmaW5lIFNjcmlw
dFNvdXJjZVByb3ZpZGVyX2gKKworI2luY2x1ZGUgPHBhcnNlci9Tb3VyY2VQcm92aWRlci5oPgor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKKyAgICBjbGFzcyBTdHJpbmc7CisKKyAgICBjbGFzcyBT
Y3JpcHRTb3VyY2VQcm92aWRlciA6IHB1YmxpYyBKU0M6OlNvdXJjZVByb3ZpZGVyIHsKKyAgICBw
dWJsaWM6CisgICAgICAgIFNjcmlwdFNvdXJjZVByb3ZpZGVyKGNvbnN0IEpTQzo6VVN0cmluZyYg
dXJsLCBKU0M6OlNvdXJjZUJPTVByZXNlbmNlIGhhc0JPTXMgPSBKU0M6OlNvdXJjZUNvdWxkSGF2
ZUJPTXMpCisgICAgICAgICAgICA6IFNvdXJjZVByb3ZpZGVyKHVybCwgaGFzQk9NcykKKyAgICAg
ICAgeworICAgICAgICB9CisgICAgICAgIAorICAgICAgICB2aXJ0dWFsIH5TY3JpcHRTb3VyY2VQ
cm92aWRlcigpIHsgfQorICAgICAgICAKKyAgICAgICAgdmlydHVhbCBjb25zdCBTdHJpbmcmIHNv
dXJjZSgpIGNvbnN0ID0gMDsKKyAgICB9OworICAgIAorfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQor
CisjZW5kaWYgLy8gU2NyaXB0U291cmNlUHJvdmlkZXJfaApJbmRleDogV2ViQ29yZS9iaW5kaW5n
cy9qcy9TdHJpbmdTb3VyY2VQcm92aWRlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGlu
Z3MvanMvU3RyaW5nU291cmNlUHJvdmlkZXIuaAkocmV2aXNpb24gNDU3ODgpCisrKyBXZWJDb3Jl
L2JpbmRpbmdzL2pzL1N0cmluZ1NvdXJjZVByb3ZpZGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTI5
LDExICsyOSwxMiBAQAogI2lmbmRlZiBTdHJpbmdTb3VyY2VQcm92aWRlcl9oCiAjZGVmaW5lIFN0
cmluZ1NvdXJjZVByb3ZpZGVyX2gKIAorI2luY2x1ZGUgIlNjcmlwdFNvdXJjZVByb3ZpZGVyLmgi
CiAjaW5jbHVkZSA8cGFyc2VyL1NvdXJjZUNvZGUuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
Ci0gICAgY2xhc3MgU3RyaW5nU291cmNlUHJvdmlkZXIgOiBwdWJsaWMgSlNDOjpTb3VyY2VQcm92
aWRlciB7CisgICAgY2xhc3MgU3RyaW5nU291cmNlUHJvdmlkZXIgOiBwdWJsaWMgU2NyaXB0U291
cmNlUHJvdmlkZXIgewogICAgIHB1YmxpYzoKICAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8U3Ry
aW5nU291cmNlUHJvdmlkZXI+IGNyZWF0ZShjb25zdCBTdHJpbmcmIHNvdXJjZSwgY29uc3QgU3Ry
aW5nJiB1cmwpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBTdHJpbmdTb3VyY2VQcm92aWRlcihzb3Vy
Y2UsIHVybCkpOyB9CiAKQEAgLTQ0LDcgKzQ1LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAg
ICAgcHJpdmF0ZToKICAgICAgICAgU3RyaW5nU291cmNlUHJvdmlkZXIoY29uc3QgU3RyaW5nJiBz
b3VyY2UsIGNvbnN0IFN0cmluZyYgdXJsKQotICAgICAgICAgICAgOiBTb3VyY2VQcm92aWRlcih1
cmwpCisgICAgICAgICAgICA6IFNjcmlwdFNvdXJjZVByb3ZpZGVyKHVybCkKICAgICAgICAgICAg
ICwgbV9zb3VyY2Uoc291cmNlKQogICAgICAgICB7CiAgICAgICAgIH0K
</data>
<flag name="review"
          id="17545"
          type_id="1"
          status="-"
          setter="abarth"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>33239</attachid>
            <date>2009-07-21 21:51:47 -0700</date>
            <delta_ts>2009-07-21 22:57:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>Bug27494_5.patch</filename>
            <type>text/plain</type>
            <size>13800</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0NjE1NikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzIgQEAKKzIwMDktMDctMjEgIERhbmllbCBCYXRlcyAgPGRiYXRlc0BpbnR1ZGF0
YS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI3NDk0CisKKyAgICAgICAg
Rml4ZXMgYW4gaXNzdWUgdGhhdCBjYW4gY2F1c2UgYSBjcmFzaCBvciB1bmV4cGVjdGVkIGJlaGF2
aW9yIHdoZW4gY2FsbGluZworICAgICAgICBXZWJDb3JlOjpTY3JpcHRTb3VyY2VDb2RlOjpzb3Vy
Y2Ugb24gYSBjYWNoZWQgc2NyaXB0LgorCisgICAgICAgICogR05VbWFrZWZpbGUuYW06CisgICAg
ICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNw
cm9qOgorICAgICAgICAqIFdlYkNvcmUvV2ViQ29yZS5wcm86CisgICAgICAgICogV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0NhY2hlZFNj
cmlwdFNvdXJjZVByb3ZpZGVyLmg6IE1vZGlmaWVkIHRvIGluaGVyaXQgZnJvbSAKKyAgICAgICAg
V2ViQ29yZTo6U2NyaXB0U291cmNlQ29kZS4KKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFNjcmlw
dFNvdXJjZVByb3ZpZGVyOjpzb3VyY2UpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkU2NyaXB0
U291cmNlUHJvdmlkZXI6OkNhY2hlZFNjcmlwdFNvdXJjZVByb3ZpZGVyKToKKyAgICAgICAgKiBi
aW5kaW5ncy9qcy9TY3JpcHRTb3VyY2VDb2RlLmg6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRT
b3VyY2VDb2RlOjpTY3JpcHRTb3VyY2VDb2RlKTogU2VwYXJhdGVkIG91dCBzb3VyY2UgcHJvdmlk
ZXIgYW5kCisgICAgICAgIHJld3JvdGUgdG8gdXNlIFdlYkNvcmU6OlNjcmlwdFNvdXJjZVByb3Zp
ZGVyLgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0U291cmNlQ29kZTo6c291cmNlKToKKyAgICAg
ICAgKiBiaW5kaW5ncy9qcy9TY3JpcHRTb3VyY2VQcm92aWRlci5oOiBBZGRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OlNjcmlwdFNvdXJjZVByb3ZpZGVyOjpTY3JpcHRTb3VyY2VQcm92aWRlcik6Cisg
ICAgICAgIChXZWJDb3JlOjpTY3JpcHRTb3VyY2VQcm92aWRlcjo6flNjcmlwdFNvdXJjZVByb3Zp
ZGVyKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9TdHJpbmdTb3VyY2VQcm92aWRlci5oOiBNb2Rp
ZmllZCB0byBpbmhlcml0IGZyb20gCisgICAgICAgIFdlYkNvcmU6OlNjcmlwdFNvdXJjZUNvZGUu
CisgICAgICAgIChXZWJDb3JlOjpTdHJpbmdTb3VyY2VQcm92aWRlcjo6U3RyaW5nU291cmNlUHJv
dmlkZXIpOgorCiAyMDA5LTA3LTIwICBPbGl2ZXIgSHVudCAgPG9saXZlckBhcHBsZS5jb20+CiAK
ICAgICAgICAgUmV2aWV3ZWQgYnkgR2F2aW4gQmFycmFjbG91Z2guCkluZGV4OiBXZWJDb3JlL0dO
VW1ha2VmaWxlLmFtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvR05VbWFrZWZpbGUuYW0JKHJldmlz
aW9uIDQ2MjEwKQorKysgV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQkod29ya2luZyBjb3B5KQpAQCAt
NDM3LDYgKzQzNyw3IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJV2ViQ29yZS9iaW5kaW5ncy9q
cy9TY3JpcHRPYmplY3RRdWFyYW50aW5lLmNwcCBcCiAJV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3Jp
cHRPYmplY3RRdWFyYW50aW5lLmggXAogCVdlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0U291cmNl
Q29kZS5oIFwKKwlXZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdFNvdXJjZVByb3ZpZGVyLmggXAog
CVdlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0U3RhdGUuY3BwIFwKIAlXZWJDb3JlL2JpbmRpbmdz
L2pzL1NjcmlwdFN0YXRlLmggXAogCVdlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0U3RyaW5nLmgg
XApJbmRleDogV2ViQ29yZS9XZWJDb3JlLmd5cGkKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJD
b3JlLmd5cGkJKHJldmlzaW9uIDQ1Nzg4KQorKysgV2ViQ29yZS9XZWJDb3JlLmd5cGkJKHdvcmtp
bmcgY29weSkKQEAgLTU2OCw2ICs1NjgsNyBAQAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL1Nj
cmlwdE9iamVjdFF1YXJhbnRpbmUuY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy9qcy9TY3Jp
cHRPYmplY3RRdWFyYW50aW5lLmgnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL1NjcmlwdFNv
dXJjZUNvZGUuaCcsCisgICAgICAgICAgICAnYmluZGluZ3MvanMvU2NyaXB0U291cmNlUHJvdmlk
ZXIuaCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvanMvU2NyaXB0U3RhdGUuY3BwJywKICAgICAg
ICAgICAgICdiaW5kaW5ncy9qcy9TY3JpcHRTdGF0ZS5oJywKICAgICAgICAgICAgICdiaW5kaW5n
cy9qcy9TY3JpcHRTdHJpbmcuaCcsCkluZGV4OiBXZWJDb3JlL1dlYkNvcmUucHJvCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvV2ViQ29yZS5wcm8JKHJldmlzaW9uIDQ2MjA5KQorKysgV2ViQ29yZS9X
ZWJDb3JlLnBybwkod29ya2luZyBjb3B5KQpAQCAtMTEzNCw2ICsxMTM0LDcgQEAgSEVBREVSUyAr
PSBcCiAgICAgYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGVIZWFkZXJDb250YWluZXIu
aCBcCiAgICAgYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGVSb3cuaCBcCiAgICAgYWNj
ZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmggXAorICAgIGJpbmRpbmdzL2pzL0NhY2hlZFNjcmlw
dFNvdXJjZVByb3ZpZGVyLmggXAogICAgIGJpbmRpbmdzL2pzL0RPTU9iamVjdFdpdGhTVkdDb250
ZXh0LmggXAogICAgIGJpbmRpbmdzL2pzL0dDQ29udHJvbGxlci5oIFwKICAgICBiaW5kaW5ncy9q
cy9KU0F1ZGlvQ29uc3RydWN0b3IuaCBcCkBAIC0xMTkzLDggKzExOTQsMTEgQEAgSEVBREVSUyAr
PSBcCiAgICAgYmluZGluZ3MvanMvU2NyaXB0RnVuY3Rpb25DYWxsLmggXAogICAgIGJpbmRpbmdz
L2pzL1NjcmlwdE9iamVjdC5oIFwKICAgICBiaW5kaW5ncy9qcy9TY3JpcHRPYmplY3RRdWFyYW50
aW5lLmggXAorICAgIGJpbmRpbmdzL2pzL1NjcmlwdFNvdXJjZUNvZGUuaCBcCisgICAgYmluZGlu
Z3MvanMvU2NyaXB0U291cmNlUHJvdmlkZXIuaCBcCiAgICAgYmluZGluZ3MvanMvU2NyaXB0U3Rh
dGUuaCBcCiAgICAgYmluZGluZ3MvanMvU2NyaXB0VmFsdWUuaCBcCisgICAgYmluZGluZ3MvanMv
U3RyaW5nU291cmNlUHJvdmlkZXIuaCBcCiAgICAgYmluZGluZ3MvanMvV29ya2VyU2NyaXB0Q29u
dHJvbGxlci5oIFwKICAgICBicmlkZ2UvYy9jX2NsYXNzLmggXAogICAgIGJyaWRnZS9jL2NfaW5z
dGFuY2UuaCBcCkluZGV4OiBXZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oJKHJldmlz
aW9uIDQ1Nzg4KQorKysgV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagkod29y
a2luZyBjb3B5KQpAQCAtMjg2MzgsNiArMjg2MzgsMTAgQEAKIAkJCQkJPg0KIAkJCQk8L0ZpbGU+
DQogCQkJCTxGaWxlDQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXFNjcmlwdFNv
dXJjZVByb3ZpZGVyLmgiDQorCQkJCQk+DQorCQkJCTwvRmlsZT4NCisJCQkJPEZpbGUNCiAJCQkJ
CVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcU2NyaXB0U3RhdGUuY3BwIg0KIAkJCQkJPg0K
IAkJCQk8L0ZpbGU+DQpJbmRleDogV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oJKHJldmlzaW9uIDQ1Nzg4KQorKysgV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTQzMTgsNiArNDMxOCw3IEBACiAJCUM1NUUz
OEMwMTAwNDBENUQwMEE1NkJEQiAvKiBTdG9yYWdlTmFtZXNwYWNlSW1wbC5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDNTVFMzhCQzEwMDQwRDVEMDBB
NTZCREIgLyogU3RvcmFnZU5hbWVzcGFjZUltcGwuY3BwICovOyB9OwogCQlDNkQ3NEFENTA5QUEy
ODJFMDAwQjBBNTIgLyogTW9kaWZ5U2VsZWN0aW9uTGlzdExldmVsLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDNkQ3NEFEMzA5QUEyODJFMDAwQjBBNTIg
LyogTW9kaWZ5U2VsZWN0aW9uTGlzdExldmVsLmggKi87IH07CiAJCUM2RDc0QUU0MDlBQTI5MEEw
MDBCMEE1MiAvKiBNb2RpZnlTZWxlY3Rpb25MaXN0TGV2ZWwuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzZENzRBRTMwOUFBMjkwQTAwMEIwQTUyIC8q
IE1vZGlmeVNlbGVjdGlvbkxpc3RMZXZlbC5jcHAgKi87IH07CisJCUNFNTM2NjlEMTAxNTcwOTIw
MDYxQkFGRiAvKiBTY3JpcHRTb3VyY2VQcm92aWRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0U1MzY2OUIxMDE1NzA5MjAwNjFCQUZGIC8qIFNjcmlw
dFNvdXJjZVByb3ZpZGVyLmggKi87IH07CiAJCUQwNUNFRDI5MEE0MEJCMkMwMEM1QUYzOCAvKiBG
b3JtYXRCbG9ja0NvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRDA1Q0VEMjcwQTQwQkIyQzAwQzVBRjM4IC8qIEZvcm1hdEJsb2NrQ29tbWFu
ZC5jcHAgKi87IH07CiAJCUQwNUNFRDJBMEE0MEJCMkMwMEM1QUYzOCAvKiBGb3JtYXRCbG9ja0Nv
bW1hbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEQw
NUNFRDI4MEE0MEJCMkMwMEM1QUYzOCAvKiBGb3JtYXRCbG9ja0NvbW1hbmQuaCAqLzsgfTsKIAkJ
RDA2QzBEOEYwQ0ZEMTE0NjAwNjVGNDNGIC8qIFJlbW92ZUZvcm1hdENvbW1hbmQuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEQwNkMwRDhEMENGRDExNDYw
MDY1RjQzRiAvKiBSZW1vdmVGb3JtYXRDb21tYW5kLmggKi87IH07CkBAIC05MTY4LDYgKzkxNjks
NyBAQAogCQlDNTVFMzhCQzEwMDQwRDVEMDBBNTZCREIgLyogU3RvcmFnZU5hbWVzcGFjZUltcGwu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3RvcmFnZU5hbWVzcGFj
ZUltcGwuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDNkQ3NEFEMzA5QUEyODJF
MDAwQjBBNTIgLyogTW9kaWZ5U2VsZWN0aW9uTGlzdExldmVsLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IE1vZGlmeVNlbGVjdGlvbkxpc3RMZXZlbC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlDNkQ3NEFFMzA5QUEyOTBBMDAwQjBBNTIgLyogTW9kaWZ5U2VsZWN0
aW9uTGlzdExldmVsLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1v
ZGlmeVNlbGVjdGlvbkxpc3RMZXZlbC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CUNFNTM2NjlCMTAxNTcwOTIwMDYxQkFGRiAvKiBTY3JpcHRTb3VyY2VQcm92aWRlci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTY3JpcHRTb3VyY2VQcm92aWRlci5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEMDVDRUQyNzBBNDBCQjJDMDBDNUFGMzggLyogRm9y
bWF0QmxvY2tDb21tYW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBGb3JtYXRCbG9ja0NvbW1hbmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlE
MDVDRUQyODBBNDBCQjJDMDBDNUFGMzggLyogRm9ybWF0QmxvY2tDb21tYW5kLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGb3JtYXRCbG9ja0NvbW1hbmQuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRDA2QzBEOEQwQ0ZEMTE0NjAwNjVGNDNGIC8qIFJlbW92ZUZv
cm1hdENvbW1hbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3ZlRm9y
bWF0Q29tbWFuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTM0OTksNiArMTM1
MDEsNyBAQAogCQkJCTQxMkE2ODQ2MEY2QjAzREQwMDBFQTY2RSAvKiBTY3JpcHRPYmplY3RRdWFy
YW50aW5lLmNwcCAqLywKIAkJCQk0MTk1MzY1MDBGNjgyMjI0MDBEMEM2NzkgLyogU2NyaXB0T2Jq
ZWN0UXVhcmFudGluZS5oICovLAogCQkJCTkzNENDMTA5MEVEQjIyMzkwMEE2NThGMiAvKiBTY3Jp
cHRTb3VyY2VDb2RlLmggKi8sCisJCQkJQ0U1MzY2OUIxMDE1NzA5MjAwNjFCQUZGIC8qIFNjcmlw
dFNvdXJjZVByb3ZpZGVyLmggKi8sCiAJCQkJNDEyN0Q1MzYwRjhBQUIxRDAwRTQyNEY1IC8qIFNj
cmlwdFN0YXRlLmNwcCAqLywKIAkJCQk0MUM3NjBCMDBFREUwM0QzMDBDMTY1NUYgLyogU2NyaXB0
U3RhdGUuaCAqLywKIAkJCQk0MTZGNDVFRjBFRDdCMzExMDA4MjE1QjYgLyogU2NyaXB0U3RyaW5n
LmggKi8sCkBAIC0xNjk2NSw2ICsxNjk2OCw3IEBACiAJCQkJOTNGMTk5RUQwODI0NUU1OTAwMUU5
QUJDIC8qIFhTTFRQcm9jZXNzb3IuaCBpbiBIZWFkZXJzICovLAogCQkJCUUxQkU1MTJFMENGNkM1
MTIwMDJFQTk1OSAvKiBYU0xUVW5pY29kZVNvcnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTk3REQ0
RDg3MEZERjRENkUwMEVDRjlBNCAvKiBYU1NBdWRpdG9yLmggaW4gSGVhZGVycyAqLywKKwkJCQlD
RTUzNjY5RDEwMTU3MDkyMDA2MUJBRkYgLyogU2NyaXB0U291cmNlUHJvdmlkZXIuaCBpbiBIZWFk
ZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAw
OwogCQl9OwpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9qcy9DYWNoZWRTY3JpcHRTb3VyY2VQcm92
aWRlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvanMvQ2FjaGVkU2NyaXB0U291
cmNlUHJvdmlkZXIuaAkocmV2aXNpb24gNDU3ODgpCisrKyBXZWJDb3JlL2JpbmRpbmdzL2pzL0Nh
Y2hlZFNjcmlwdFNvdXJjZVByb3ZpZGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTI5LDExICsyOSwx
MiBAQAogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlQ2xpZW50LmgiCiAjaW5jbHVkZSAiQ2FjaGVk
UmVzb3VyY2VIYW5kbGUuaCIKICNpbmNsdWRlICJDYWNoZWRTY3JpcHQuaCIKKyNpbmNsdWRlICJT
Y3JpcHRTb3VyY2VQcm92aWRlci5oIgogI2luY2x1ZGUgPHBhcnNlci9Tb3VyY2VDb2RlLmg+CiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotICAgIGNsYXNzIENhY2hlZFNjcmlwdFNvdXJjZVByb3Zp
ZGVyIDogcHVibGljIEpTQzo6U291cmNlUHJvdmlkZXIsIHB1YmxpYyBDYWNoZWRSZXNvdXJjZUNs
aWVudCB7CisgICAgY2xhc3MgQ2FjaGVkU2NyaXB0U291cmNlUHJvdmlkZXIgOiBwdWJsaWMgU2Ny
aXB0U291cmNlUHJvdmlkZXIsIHB1YmxpYyBDYWNoZWRSZXNvdXJjZUNsaWVudCB7CiAgICAgcHVi
bGljOgogICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxDYWNoZWRTY3JpcHRTb3VyY2VQcm92aWRl
cj4gY3JlYXRlKENhY2hlZFNjcmlwdCogY2FjaGVkU2NyaXB0KSB7IHJldHVybiBhZG9wdFJlZihu
ZXcgQ2FjaGVkU2NyaXB0U291cmNlUHJvdmlkZXIoY2FjaGVkU2NyaXB0KSk7IH0KIApAQCAtNDUs
MTAgKzQ2LDExIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgSlNDOjpVU3RyaW5nIGdl
dFJhbmdlKGludCBzdGFydCwgaW50IGVuZCkgY29uc3QgeyByZXR1cm4gSlNDOjpVU3RyaW5nKG1f
Y2FjaGVkU2NyaXB0LT5zY3JpcHQoKS5jaGFyYWN0ZXJzKCkgKyBzdGFydCwgZW5kIC0gc3RhcnQp
OyB9CiAgICAgICAgIGNvbnN0IFVDaGFyKiBkYXRhKCkgY29uc3QgeyByZXR1cm4gbV9jYWNoZWRT
Y3JpcHQtPnNjcmlwdCgpLmNoYXJhY3RlcnMoKTsgfQogICAgICAgICBpbnQgbGVuZ3RoKCkgY29u
c3QgeyByZXR1cm4gbV9jYWNoZWRTY3JpcHQtPnNjcmlwdCgpLmxlbmd0aCgpOyB9CisgICAgICAg
IGNvbnN0IFN0cmluZyYgc291cmNlKCkgY29uc3QgeyByZXR1cm4gbV9jYWNoZWRTY3JpcHQtPnNj
cmlwdCgpOyB9CiAKICAgICBwcml2YXRlOgogICAgICAgICBDYWNoZWRTY3JpcHRTb3VyY2VQcm92
aWRlcihDYWNoZWRTY3JpcHQqIGNhY2hlZFNjcmlwdCkKLSAgICAgICAgICAgIDogU291cmNlUHJv
dmlkZXIoY2FjaGVkU2NyaXB0LT51cmwoKSkKKyAgICAgICAgICAgIDogU2NyaXB0U291cmNlUHJv
dmlkZXIoY2FjaGVkU2NyaXB0LT51cmwoKSkKICAgICAgICAgICAgICwgbV9jYWNoZWRTY3JpcHQo
Y2FjaGVkU2NyaXB0KQogICAgICAgICB7CiAgICAgICAgICAgICBtX2NhY2hlZFNjcmlwdC0+YWRk
Q2xpZW50KHRoaXMpOwpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRTb3VyY2VDb2Rl
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRTb3VyY2VDb2RlLmgJ
KHJldmlzaW9uIDQ1Nzg4KQorKysgV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRTb3VyY2VDb2Rl
LmgJKHdvcmtpbmcgY29weSkKQEAgLTMyLDIwICszMiwyNCBAQAogI2RlZmluZSBTY3JpcHRTb3Vy
Y2VDb2RlX2gKIAogI2luY2x1ZGUgIkNhY2hlZFNjcmlwdFNvdXJjZVByb3ZpZGVyLmgiCisjaW5j
bHVkZSAiU2NyaXB0U291cmNlUHJvdmlkZXIuaCIKICNpbmNsdWRlICJTdHJpbmdTb3VyY2VQcm92
aWRlci5oIgogI2luY2x1ZGUgIktVUkwuaCIKKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgU2NyaXB0U291cmNlQ29kZSB7CiBwdWJsaWM6CiAg
ICAgU2NyaXB0U291cmNlQ29kZShjb25zdCBTdHJpbmcmIHNvdXJjZSwgY29uc3QgS1VSTCYgdXJs
ID0gS1VSTCgpLCBpbnQgc3RhcnRMaW5lID0gMSkKLSAgICAgICAgOiBtX2NvZGUobWFrZVNvdXJj
ZShzb3VyY2UsIHVybC5pc051bGwoKSA/IFN0cmluZygpIDogdXJsLnN0cmluZygpLCBzdGFydExp
bmUpKQorICAgICAgICA6IG1fcHJvdmlkZXIoU3RyaW5nU291cmNlUHJvdmlkZXI6OmNyZWF0ZShz
b3VyY2UsIHVybC5pc051bGwoKSA/IFN0cmluZygpIDogdXJsLnN0cmluZygpKSkKKyAgICAgICAg
LCBtX2NvZGUobV9wcm92aWRlciwgc3RhcnRMaW5lKQogICAgIHsKICAgICB9CiAKICAgICBTY3Jp
cHRTb3VyY2VDb2RlKENhY2hlZFNjcmlwdCogY3MpCi0gICAgICAgIDogbV9jb2RlKG1ha2VTb3Vy
Y2UoY3MpKQorICAgICAgICA6IG1fcHJvdmlkZXIoQ2FjaGVkU2NyaXB0U291cmNlUHJvdmlkZXI6
OmNyZWF0ZShjcykpCisgICAgICAgICwgbV9jb2RlKG1fcHJvdmlkZXIpCiAgICAgewogICAgIH0K
IApAQCAtNTMsOSArNTcsMTEgQEAgcHVibGljOgogCiAgICAgY29uc3QgSlNDOjpTb3VyY2VDb2Rl
JiBqc1NvdXJjZUNvZGUoKSBjb25zdCB7IHJldHVybiBtX2NvZGU7IH0KIAotICAgIGNvbnN0IFN0
cmluZyYgc291cmNlKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8U3RyaW5nU291cmNlUHJv
dmlkZXIqPihtX2NvZGUucHJvdmlkZXIoKSktPnNvdXJjZSgpOyB9CisgICAgY29uc3QgU3RyaW5n
JiBzb3VyY2UoKSBjb25zdCB7IHJldHVybiBtX3Byb3ZpZGVyLT5zb3VyY2UoKTsgfQogCiBwcml2
YXRlOgorICAgIFJlZlB0cjxTY3JpcHRTb3VyY2VQcm92aWRlcj4gbV9wcm92aWRlcjsKKyAgICAK
ICAgICBKU0M6OlNvdXJjZUNvZGUgbV9jb2RlOwogfTsKIApJbmRleDogV2ViQ29yZS9iaW5kaW5n
cy9qcy9TY3JpcHRTb3VyY2VQcm92aWRlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGlu
Z3MvanMvU2NyaXB0U291cmNlUHJvdmlkZXIuaAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUvYmlu
ZGluZ3MvanMvU2NyaXB0U291cmNlUHJvdmlkZXIuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw1
MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOSBEYW5pZWwgQmF0ZXMgKGRiYXRlc0BpbnR1
ZGF0YS5jb20pCisgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBTY3JpcHRTb3VyY2VQcm92
aWRlcl9oCisjZGVmaW5lIFNjcmlwdFNvdXJjZVByb3ZpZGVyX2gKKworI2luY2x1ZGUgPHBhcnNl
ci9Tb3VyY2VQcm92aWRlci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKKyAgICBjbGFzcyBT
dHJpbmc7CisKKyAgICBjbGFzcyBTY3JpcHRTb3VyY2VQcm92aWRlciA6IHB1YmxpYyBKU0M6OlNv
dXJjZVByb3ZpZGVyIHsKKyAgICBwdWJsaWM6CisgICAgICAgIFNjcmlwdFNvdXJjZVByb3ZpZGVy
KGNvbnN0IEpTQzo6VVN0cmluZyYgdXJsLCBKU0M6OlNvdXJjZUJPTVByZXNlbmNlIGhhc0JPTXMg
PSBKU0M6OlNvdXJjZUNvdWxkSGF2ZUJPTXMpCisgICAgICAgICAgICA6IFNvdXJjZVByb3ZpZGVy
KHVybCwgaGFzQk9NcykKKyAgICAgICAgeworICAgICAgICB9CisgICAgICAgIAorICAgICAgICB2
aXJ0dWFsIH5TY3JpcHRTb3VyY2VQcm92aWRlcigpIHsgfQorICAgICAgICAKKyAgICAgICAgdmly
dHVhbCBjb25zdCBTdHJpbmcmIHNvdXJjZSgpIGNvbnN0ID0gMDsKKyAgICB9OworICAgIAorfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gU2NyaXB0U291cmNlUHJvdmlkZXJfaApJ
bmRleDogV2ViQ29yZS9iaW5kaW5ncy9qcy9TdHJpbmdTb3VyY2VQcm92aWRlci5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvanMvU3RyaW5nU291cmNlUHJvdmlkZXIuaAkocmV2aXNp
b24gNDU3ODgpCisrKyBXZWJDb3JlL2JpbmRpbmdzL2pzL1N0cmluZ1NvdXJjZVByb3ZpZGVyLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTI5LDExICsyOSwxMiBAQAogI2lmbmRlZiBTdHJpbmdTb3VyY2VQ
cm92aWRlcl9oCiAjZGVmaW5lIFN0cmluZ1NvdXJjZVByb3ZpZGVyX2gKIAorI2luY2x1ZGUgIlNj
cmlwdFNvdXJjZVByb3ZpZGVyLmgiCiAjaW5jbHVkZSA8cGFyc2VyL1NvdXJjZUNvZGUuaD4KIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCi0gICAgY2xhc3MgU3RyaW5nU291cmNlUHJvdmlkZXIgOiBw
dWJsaWMgSlNDOjpTb3VyY2VQcm92aWRlciB7CisgICAgY2xhc3MgU3RyaW5nU291cmNlUHJvdmlk
ZXIgOiBwdWJsaWMgU2NyaXB0U291cmNlUHJvdmlkZXIgewogICAgIHB1YmxpYzoKICAgICAgICAg
c3RhdGljIFBhc3NSZWZQdHI8U3RyaW5nU291cmNlUHJvdmlkZXI+IGNyZWF0ZShjb25zdCBTdHJp
bmcmIHNvdXJjZSwgY29uc3QgU3RyaW5nJiB1cmwpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBTdHJp
bmdTb3VyY2VQcm92aWRlcihzb3VyY2UsIHVybCkpOyB9CiAKQEAgLTQ0LDcgKzQ1LDcgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogCiAgICAgcHJpdmF0ZToKICAgICAgICAgU3RyaW5nU291cmNlUHJv
dmlkZXIoY29uc3QgU3RyaW5nJiBzb3VyY2UsIGNvbnN0IFN0cmluZyYgdXJsKQotICAgICAgICAg
ICAgOiBTb3VyY2VQcm92aWRlcih1cmwpCisgICAgICAgICAgICA6IFNjcmlwdFNvdXJjZVByb3Zp
ZGVyKHVybCkKICAgICAgICAgICAgICwgbV9zb3VyY2Uoc291cmNlKQogICAgICAgICB7CiAgICAg
ICAgIH0K
</data>
<flag name="review"
          id="17552"
          type_id="1"
          status="+"
          setter="abarth"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>33245</attachid>
            <date>2009-07-21 22:57:20 -0700</date>
            <delta_ts>2009-07-21 23:01:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>Bug27494_6.patch</filename>
            <type>text/plain</type>
            <size>12228</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvR05VbWFrZWZpbGUuYW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9HTlVt
YWtlZmlsZS5hbQkocmV2aXNpb24gNDYyMTQpCisrKyBXZWJDb3JlL0dOVW1ha2VmaWxlLmFtCSh3
b3JraW5nIGNvcHkpCkBAIC00MzQsNiArNDM0LDcgQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlX
ZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdE9iamVjdFF1YXJhbnRpbmUuY3BwIFwKIAlXZWJDb3Jl
L2JpbmRpbmdzL2pzL1NjcmlwdE9iamVjdFF1YXJhbnRpbmUuaCBcCiAJV2ViQ29yZS9iaW5kaW5n
cy9qcy9TY3JpcHRTb3VyY2VDb2RlLmggXAorCVdlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0U291
cmNlUHJvdmlkZXIuaCBcCiAJV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRTdGF0ZS5jcHAgXAog
CVdlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0U3RhdGUuaCBcCiAJV2ViQ29yZS9iaW5kaW5ncy9q
cy9TY3JpcHRTdHJpbmcuaCBcCkluZGV4OiBXZWJDb3JlL1dlYkNvcmUuZ3lwaQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL1dlYkNvcmUuZ3lwaQkocmV2aXNpb24gNDYyMTQpCisrKyBXZWJDb3JlL1dl
YkNvcmUuZ3lwaQkod29ya2luZyBjb3B5KQpAQCAtNTczLDYgKzU3Myw3IEBACiAgICAgICAgICAg
ICAnYmluZGluZ3MvanMvU2NyaXB0T2JqZWN0UXVhcmFudGluZS5jcHAnLAogICAgICAgICAgICAg
J2JpbmRpbmdzL2pzL1NjcmlwdE9iamVjdFF1YXJhbnRpbmUuaCcsCiAgICAgICAgICAgICAnYmlu
ZGluZ3MvanMvU2NyaXB0U291cmNlQ29kZS5oJywKKyAgICAgICAgICAgICdiaW5kaW5ncy9qcy9T
Y3JpcHRTb3VyY2VQcm92aWRlci5oJywKICAgICAgICAgICAgICdiaW5kaW5ncy9qcy9TY3JpcHRT
dGF0ZS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL1NjcmlwdFN0YXRlLmgnLAogICAg
ICAgICAgICAgJ2JpbmRpbmdzL2pzL1NjcmlwdFN0cmluZy5oJywKSW5kZXg6IFdlYkNvcmUvV2Vi
Q29yZS5wcm8KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJDb3JlLnBybwkocmV2aXNpb24gNDYy
MTQpCisrKyBXZWJDb3JlL1dlYkNvcmUucHJvCSh3b3JraW5nIGNvcHkpCkBAIC0xMTMzLDYgKzEx
MzMsNyBAQCBIRUFERVJTICs9IFwKICAgICBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJs
ZUhlYWRlckNvbnRhaW5lci5oIFwKICAgICBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJs
ZVJvdy5oIFwKICAgICBhY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaCBcCisgICAgYmluZGlu
Z3MvanMvQ2FjaGVkU2NyaXB0U291cmNlUHJvdmlkZXIuaCBcCiAgICAgYmluZGluZ3MvanMvRE9N
T2JqZWN0V2l0aFNWR0NvbnRleHQuaCBcCiAgICAgYmluZGluZ3MvanMvR0NDb250cm9sbGVyLmgg
XAogICAgIGJpbmRpbmdzL2pzL0pTQXVkaW9Db25zdHJ1Y3Rvci5oIFwKQEAgLTExOTIsOCArMTE5
MywxMSBAQCBIRUFERVJTICs9IFwKICAgICBiaW5kaW5ncy9qcy9TY3JpcHRGdW5jdGlvbkNhbGwu
aCBcCiAgICAgYmluZGluZ3MvanMvU2NyaXB0T2JqZWN0LmggXAogICAgIGJpbmRpbmdzL2pzL1Nj
cmlwdE9iamVjdFF1YXJhbnRpbmUuaCBcCisgICAgYmluZGluZ3MvanMvU2NyaXB0U291cmNlQ29k
ZS5oIFwKKyAgICBiaW5kaW5ncy9qcy9TY3JpcHRTb3VyY2VQcm92aWRlci5oIFwKICAgICBiaW5k
aW5ncy9qcy9TY3JpcHRTdGF0ZS5oIFwKICAgICBiaW5kaW5ncy9qcy9TY3JpcHRWYWx1ZS5oIFwK
KyAgICBiaW5kaW5ncy9qcy9TdHJpbmdTb3VyY2VQcm92aWRlci5oIFwKICAgICBiaW5kaW5ncy9q
cy9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmggXAogICAgIGJyaWRnZS9jL2NfY2xhc3MuaCBcCiAg
ICAgYnJpZGdlL2MvY19pbnN0YW5jZS5oIFwKSW5kZXg6IFdlYkNvcmUvV2ViQ29yZS52Y3Byb2ov
V2ViQ29yZS52Y3Byb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJD
b3JlLnZjcHJvagkocmV2aXNpb24gNDYyMTQpCisrKyBXZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dl
YkNvcmUudmNwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0yODg3MCw2ICsyODg3MCwxMCBAQAogCQkJ
CQk+DQogCQkJCTwvRmlsZT4NCiAJCQkJPEZpbGUNCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmlu
ZGluZ3NcanNcU2NyaXB0U291cmNlUHJvdmlkZXIuaCINCisJCQkJCT4NCisJCQkJPC9GaWxlPg0K
KwkJCQk8RmlsZQ0KIAkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xTY3JpcHRTdGF0
ZS5jcHAiDQogCQkJCQk+DQogCQkJCTwvRmlsZT4NCkluZGV4OiBXZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gNDYyMTQpCisrKyBXZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtNDMzNyw2ICs0
MzM3LDcgQEAKIAkJQzU1RTM4QzAxMDA0MEQ1RDAwQTU2QkRCIC8qIFN0b3JhZ2VOYW1lc3BhY2VJ
bXBsLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEM1
NUUzOEJDMTAwNDBENUQwMEE1NkJEQiAvKiBTdG9yYWdlTmFtZXNwYWNlSW1wbC5jcHAgKi87IH07
CiAJCUM2RDc0QUQ1MDlBQTI4MkUwMDBCMEE1MiAvKiBNb2RpZnlTZWxlY3Rpb25MaXN0TGV2ZWwu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEM2RDc0QUQz
MDlBQTI4MkUwMDBCMEE1MiAvKiBNb2RpZnlTZWxlY3Rpb25MaXN0TGV2ZWwuaCAqLzsgfTsKIAkJ
QzZENzRBRTQwOUFBMjkwQTAwMEIwQTUyIC8qIE1vZGlmeVNlbGVjdGlvbkxpc3RMZXZlbC5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDNkQ3NEFFMzA5
QUEyOTBBMDAwQjBBNTIgLyogTW9kaWZ5U2VsZWN0aW9uTGlzdExldmVsLmNwcCAqLzsgfTsKKwkJ
Q0U1NEZEMzgxMDE2RDlBNjAwOEI0NEM4IC8qIFNjcmlwdFNvdXJjZVByb3ZpZGVyLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRTU0RkQzNzEwMTZEOUE2
MDA4QjQ0QzggLyogU2NyaXB0U291cmNlUHJvdmlkZXIuaCAqLzsgfTsKIAkJRDA1Q0VEMjkwQTQw
QkIyQzAwQzVBRjM4IC8qIEZvcm1hdEJsb2NrQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEMDVDRUQyNzBBNDBCQjJDMDBDNUFGMzggLyog
Rm9ybWF0QmxvY2tDb21tYW5kLmNwcCAqLzsgfTsKIAkJRDA1Q0VEMkEwQTQwQkIyQzAwQzVBRjM4
IC8qIEZvcm1hdEJsb2NrQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRDA1Q0VEMjgwQTQwQkIyQzAwQzVBRjM4IC8qIEZvcm1hdEJsb2NrQ29t
bWFuZC5oICovOyB9OwogCQlEMDZDMEQ4RjBDRkQxMTQ2MDA2NUY0M0YgLyogUmVtb3ZlRm9ybWF0
Q29tbWFuZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RDA2QzBEOEQwQ0ZEMTE0NjAwNjVGNDNGIC8qIFJlbW92ZUZvcm1hdENvbW1hbmQuaCAqLzsgfTsK
QEAgLTkyMDYsNiArOTIwNyw3IEBACiAJCUM1NUUzOEJDMTAwNDBENUQwMEE1NkJEQiAvKiBTdG9y
YWdlTmFtZXNwYWNlSW1wbC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBTdG9yYWdlTmFtZXNwYWNlSW1wbC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUM2RDc0QUQzMDlBQTI4MkUwMDBCMEE1MiAvKiBNb2RpZnlTZWxlY3Rpb25MaXN0TGV2ZWwuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTW9kaWZ5U2VsZWN0aW9uTGlzdExldmVs
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUM2RDc0QUUzMDlBQTI5MEEwMDBCMEE1
MiAvKiBNb2RpZnlTZWxlY3Rpb25MaXN0TGV2ZWwuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gTW9kaWZ5U2VsZWN0aW9uTGlzdExldmVsLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJQ0U1NEZEMzcxMDE2RDlBNjAwOEI0NEM4IC8qIFNjcmlwdFNvdXJj
ZVByb3ZpZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNjcmlwdFNvdXJj
ZVByb3ZpZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUQwNUNFRDI3MEE0MEJC
MkMwMEM1QUYzOCAvKiBGb3JtYXRCbG9ja0NvbW1hbmQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IEZvcm1hdEJsb2NrQ29tbWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUQwNUNFRDI4MEE0MEJCMkMwMEM1QUYzOCAvKiBGb3JtYXRCbG9ja0Nv
bW1hbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZvcm1hdEJsb2NrQ29t
bWFuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEMDZDMEQ4RDBDRkQxMTQ2MDA2
NUY0M0YgLyogUmVtb3ZlRm9ybWF0Q29tbWFuZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBSZW1vdmVGb3JtYXRDb21tYW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CkBAIC0xMzU0MCw2ICsxMzU0Miw3IEBACiAJCQkJNDEyQTY4NDYwRjZCMDNERDAwMEVBNjZFIC8q
IFNjcmlwdE9iamVjdFF1YXJhbnRpbmUuY3BwICovLAogCQkJCTQxOTUzNjUwMEY2ODIyMjQwMEQw
QzY3OSAvKiBTY3JpcHRPYmplY3RRdWFyYW50aW5lLmggKi8sCiAJCQkJOTM0Q0MxMDkwRURCMjIz
OTAwQTY1OEYyIC8qIFNjcmlwdFNvdXJjZUNvZGUuaCAqLywKKwkJCQlDRTU0RkQzNzEwMTZEOUE2
MDA4QjQ0QzggLyogU2NyaXB0U291cmNlUHJvdmlkZXIuaCAqLywKIAkJCQk0MTI3RDUzNjBGOEFB
QjFEMDBFNDI0RjUgLyogU2NyaXB0U3RhdGUuY3BwICovLAogCQkJCTQxQzc2MEIwMEVERTAzRDMw
MEMxNjU1RiAvKiBTY3JpcHRTdGF0ZS5oICovLAogCQkJCTQxNkY0NUVGMEVEN0IzMTEwMDgyMTVC
NiAvKiBTY3JpcHRTdHJpbmcuaCAqLywKQEAgLTE3MDI0LDYgKzE3MDI3LDcgQEAKIAkJCQkyRUNG
N0FERDEwMTYyQjM4MDA0MjdERTcgLyogSlNFcnJvckV2ZW50LmggaW4gSGVhZGVycyAqLywKIAkJ
CQkyRUNGN0FFMjEwMTYyQjU4MDA0MjdERTcgLyogRXJyb3JFdmVudC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQThFREIwM0QxMDE2ODQ5NDAwRkU4MTEzIC8qIERPTU9iamVjdFdpdGhTVkdDb250ZXh0
LmggaW4gSGVhZGVycyAqLywKKwkJCQlDRTU0RkQzODEwMTZEOUE2MDA4QjQ0QzggLyogU2NyaXB0
U291cmNlUHJvdmlkZXIuaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBs
b3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9q
cy9DYWNoZWRTY3JpcHRTb3VyY2VQcm92aWRlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmlu
ZGluZ3MvanMvQ2FjaGVkU2NyaXB0U291cmNlUHJvdmlkZXIuaAkocmV2aXNpb24gNDYyMTQpCisr
KyBXZWJDb3JlL2JpbmRpbmdzL2pzL0NhY2hlZFNjcmlwdFNvdXJjZVByb3ZpZGVyLmgJKHdvcmtp
bmcgY29weSkKQEAgLTI5LDExICsyOSwxMiBAQAogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlQ2xp
ZW50LmgiCiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VIYW5kbGUuaCIKICNpbmNsdWRlICJDYWNo
ZWRTY3JpcHQuaCIKKyNpbmNsdWRlICJTY3JpcHRTb3VyY2VQcm92aWRlci5oIgogI2luY2x1ZGUg
PHBhcnNlci9Tb3VyY2VDb2RlLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotICAgIGNsYXNz
IENhY2hlZFNjcmlwdFNvdXJjZVByb3ZpZGVyIDogcHVibGljIEpTQzo6U291cmNlUHJvdmlkZXIs
IHB1YmxpYyBDYWNoZWRSZXNvdXJjZUNsaWVudCB7CisgICAgY2xhc3MgQ2FjaGVkU2NyaXB0U291
cmNlUHJvdmlkZXIgOiBwdWJsaWMgU2NyaXB0U291cmNlUHJvdmlkZXIsIHB1YmxpYyBDYWNoZWRS
ZXNvdXJjZUNsaWVudCB7CiAgICAgcHVibGljOgogICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxD
YWNoZWRTY3JpcHRTb3VyY2VQcm92aWRlcj4gY3JlYXRlKENhY2hlZFNjcmlwdCogY2FjaGVkU2Ny
aXB0KSB7IHJldHVybiBhZG9wdFJlZihuZXcgQ2FjaGVkU2NyaXB0U291cmNlUHJvdmlkZXIoY2Fj
aGVkU2NyaXB0KSk7IH0KIApAQCAtNDUsMTAgKzQ2LDExIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
ICAgICAgICAgSlNDOjpVU3RyaW5nIGdldFJhbmdlKGludCBzdGFydCwgaW50IGVuZCkgY29uc3Qg
eyByZXR1cm4gSlNDOjpVU3RyaW5nKG1fY2FjaGVkU2NyaXB0LT5zY3JpcHQoKS5jaGFyYWN0ZXJz
KCkgKyBzdGFydCwgZW5kIC0gc3RhcnQpOyB9CiAgICAgICAgIGNvbnN0IFVDaGFyKiBkYXRhKCkg
Y29uc3QgeyByZXR1cm4gbV9jYWNoZWRTY3JpcHQtPnNjcmlwdCgpLmNoYXJhY3RlcnMoKTsgfQog
ICAgICAgICBpbnQgbGVuZ3RoKCkgY29uc3QgeyByZXR1cm4gbV9jYWNoZWRTY3JpcHQtPnNjcmlw
dCgpLmxlbmd0aCgpOyB9CisgICAgICAgIGNvbnN0IFN0cmluZyYgc291cmNlKCkgY29uc3QgeyBy
ZXR1cm4gbV9jYWNoZWRTY3JpcHQtPnNjcmlwdCgpOyB9CiAKICAgICBwcml2YXRlOgogICAgICAg
ICBDYWNoZWRTY3JpcHRTb3VyY2VQcm92aWRlcihDYWNoZWRTY3JpcHQqIGNhY2hlZFNjcmlwdCkK
LSAgICAgICAgICAgIDogU291cmNlUHJvdmlkZXIoY2FjaGVkU2NyaXB0LT51cmwoKSkKKyAgICAg
ICAgICAgIDogU2NyaXB0U291cmNlUHJvdmlkZXIoY2FjaGVkU2NyaXB0LT51cmwoKSkKICAgICAg
ICAgICAgICwgbV9jYWNoZWRTY3JpcHQoY2FjaGVkU2NyaXB0KQogICAgICAgICB7CiAgICAgICAg
ICAgICBtX2NhY2hlZFNjcmlwdC0+YWRkQ2xpZW50KHRoaXMpOwpJbmRleDogV2ViQ29yZS9iaW5k
aW5ncy9qcy9TY3JpcHRTb3VyY2VDb2RlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5n
cy9qcy9TY3JpcHRTb3VyY2VDb2RlLmgJKHJldmlzaW9uIDQ2MjE0KQorKysgV2ViQ29yZS9iaW5k
aW5ncy9qcy9TY3JpcHRTb3VyY2VDb2RlLmgJKHdvcmtpbmcgY29weSkKQEAgLTMyLDIwICszMiwy
NCBAQAogI2RlZmluZSBTY3JpcHRTb3VyY2VDb2RlX2gKIAogI2luY2x1ZGUgIkNhY2hlZFNjcmlw
dFNvdXJjZVByb3ZpZGVyLmgiCisjaW5jbHVkZSAiU2NyaXB0U291cmNlUHJvdmlkZXIuaCIKICNp
bmNsdWRlICJTdHJpbmdTb3VyY2VQcm92aWRlci5oIgogI2luY2x1ZGUgIktVUkwuaCIKKyNpbmNs
dWRlIDx3dGYvUmVmUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgU2NyaXB0
U291cmNlQ29kZSB7CiBwdWJsaWM6CiAgICAgU2NyaXB0U291cmNlQ29kZShjb25zdCBTdHJpbmcm
IHNvdXJjZSwgY29uc3QgS1VSTCYgdXJsID0gS1VSTCgpLCBpbnQgc3RhcnRMaW5lID0gMSkKLSAg
ICAgICAgOiBtX2NvZGUobWFrZVNvdXJjZShzb3VyY2UsIHVybC5pc051bGwoKSA/IFN0cmluZygp
IDogdXJsLnN0cmluZygpLCBzdGFydExpbmUpKQorICAgICAgICA6IG1fcHJvdmlkZXIoU3RyaW5n
U291cmNlUHJvdmlkZXI6OmNyZWF0ZShzb3VyY2UsIHVybC5pc051bGwoKSA/IFN0cmluZygpIDog
dXJsLnN0cmluZygpKSkKKyAgICAgICAgLCBtX2NvZGUobV9wcm92aWRlciwgc3RhcnRMaW5lKQog
ICAgIHsKICAgICB9CiAKICAgICBTY3JpcHRTb3VyY2VDb2RlKENhY2hlZFNjcmlwdCogY3MpCi0g
ICAgICAgIDogbV9jb2RlKG1ha2VTb3VyY2UoY3MpKQorICAgICAgICA6IG1fcHJvdmlkZXIoQ2Fj
aGVkU2NyaXB0U291cmNlUHJvdmlkZXI6OmNyZWF0ZShjcykpCisgICAgICAgICwgbV9jb2RlKG1f
cHJvdmlkZXIpCiAgICAgewogICAgIH0KIApAQCAtNTMsOSArNTcsMTEgQEAgcHVibGljOgogCiAg
ICAgY29uc3QgSlNDOjpTb3VyY2VDb2RlJiBqc1NvdXJjZUNvZGUoKSBjb25zdCB7IHJldHVybiBt
X2NvZGU7IH0KIAotICAgIGNvbnN0IFN0cmluZyYgc291cmNlKCkgY29uc3QgeyByZXR1cm4gc3Rh
dGljX2Nhc3Q8U3RyaW5nU291cmNlUHJvdmlkZXIqPihtX2NvZGUucHJvdmlkZXIoKSktPnNvdXJj
ZSgpOyB9CisgICAgY29uc3QgU3RyaW5nJiBzb3VyY2UoKSBjb25zdCB7IHJldHVybiBtX3Byb3Zp
ZGVyLT5zb3VyY2UoKTsgfQogCiBwcml2YXRlOgorICAgIFJlZlB0cjxTY3JpcHRTb3VyY2VQcm92
aWRlcj4gbV9wcm92aWRlcjsKKyAgICAKICAgICBKU0M6OlNvdXJjZUNvZGUgbV9jb2RlOwogfTsK
IApJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRTb3VyY2VQcm92aWRlci5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0U291cmNlUHJvdmlkZXIuaAkocmV2
aXNpb24gMCkKKysrIFdlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0U291cmNlUHJvdmlkZXIuaAko
cmV2aXNpb24gMCkKQEAgLTAsMCArMSw1MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOSBE
YW5pZWwgQmF0ZXMgKGRiYXRlc0BpbnR1ZGF0YS5jb20pCisgKiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMu
IE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2lmbmRlZiBTY3JpcHRTb3VyY2VQcm92aWRlcl9oCisjZGVmaW5lIFNjcmlwdFNvdXJjZVByb3Zp
ZGVyX2gKKworI2luY2x1ZGUgPHBhcnNlci9Tb3VyY2VQcm92aWRlci5oPgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKKyAgICBjbGFzcyBTdHJpbmc7CisKKyAgICBjbGFzcyBTY3JpcHRTb3VyY2VQ
cm92aWRlciA6IHB1YmxpYyBKU0M6OlNvdXJjZVByb3ZpZGVyIHsKKyAgICBwdWJsaWM6CisgICAg
ICAgIFNjcmlwdFNvdXJjZVByb3ZpZGVyKGNvbnN0IEpTQzo6VVN0cmluZyYgdXJsLCBKU0M6OlNv
dXJjZUJPTVByZXNlbmNlIGhhc0JPTXMgPSBKU0M6OlNvdXJjZUNvdWxkSGF2ZUJPTXMpCisgICAg
ICAgICAgICA6IFNvdXJjZVByb3ZpZGVyKHVybCwgaGFzQk9NcykKKyAgICAgICAgeworICAgICAg
ICB9CisgICAgICAgIAorICAgICAgICB2aXJ0dWFsIH5TY3JpcHRTb3VyY2VQcm92aWRlcigpIHsg
fQorICAgICAgICAKKyAgICAgICAgdmlydHVhbCBjb25zdCBTdHJpbmcmIHNvdXJjZSgpIGNvbnN0
ID0gMDsKKyAgICB9OworICAgIAorfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8g
U2NyaXB0U291cmNlUHJvdmlkZXJfaApJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9qcy9TdHJpbmdT
b3VyY2VQcm92aWRlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvanMvU3RyaW5n
U291cmNlUHJvdmlkZXIuaAkocmV2aXNpb24gNDYyMTQpCisrKyBXZWJDb3JlL2JpbmRpbmdzL2pz
L1N0cmluZ1NvdXJjZVByb3ZpZGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTI5LDExICsyOSwxMiBA
QAogI2lmbmRlZiBTdHJpbmdTb3VyY2VQcm92aWRlcl9oCiAjZGVmaW5lIFN0cmluZ1NvdXJjZVBy
b3ZpZGVyX2gKIAorI2luY2x1ZGUgIlNjcmlwdFNvdXJjZVByb3ZpZGVyLmgiCiAjaW5jbHVkZSA8
cGFyc2VyL1NvdXJjZUNvZGUuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi0gICAgY2xhc3Mg
U3RyaW5nU291cmNlUHJvdmlkZXIgOiBwdWJsaWMgSlNDOjpTb3VyY2VQcm92aWRlciB7CisgICAg
Y2xhc3MgU3RyaW5nU291cmNlUHJvdmlkZXIgOiBwdWJsaWMgU2NyaXB0U291cmNlUHJvdmlkZXIg
ewogICAgIHB1YmxpYzoKICAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8U3RyaW5nU291cmNlUHJv
dmlkZXI+IGNyZWF0ZShjb25zdCBTdHJpbmcmIHNvdXJjZSwgY29uc3QgU3RyaW5nJiB1cmwpIHsg
cmV0dXJuIGFkb3B0UmVmKG5ldyBTdHJpbmdTb3VyY2VQcm92aWRlcihzb3VyY2UsIHVybCkpOyB9
CiAKQEAgLTQ0LDcgKzQ1LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgcHJpdmF0ZToK
ICAgICAgICAgU3RyaW5nU291cmNlUHJvdmlkZXIoY29uc3QgU3RyaW5nJiBzb3VyY2UsIGNvbnN0
IFN0cmluZyYgdXJsKQotICAgICAgICAgICAgOiBTb3VyY2VQcm92aWRlcih1cmwpCisgICAgICAg
ICAgICA6IFNjcmlwdFNvdXJjZVByb3ZpZGVyKHVybCkKICAgICAgICAgICAgICwgbV9zb3VyY2Uo
c291cmNlKQogICAgICAgICB7CiAgICAgICAgIH0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>33246</attachid>
            <date>2009-07-21 23:01:05 -0700</date>
            <delta_ts>2009-07-21 23:17:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>Bug27494_7.patch</filename>
            <type>text/plain</type>
            <size>13807</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0NjIxNSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzIgQEAKKzIwMDktMDctMjEgIERhbmllbCBCYXRlcyAgPGRiYXRlc0BpbnR1ZGF0
YS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI3NDk0CisKKyAgICAgICAg
Rml4ZXMgYW4gaXNzdWUgdGhhdCBjYW4gY2F1c2UgYSBjcmFzaCBvciB1bmV4cGVjdGVkIGJlaGF2
aW9yIHdoZW4gY2FsbGluZworICAgICAgICBXZWJDb3JlOjpTY3JpcHRTb3VyY2VDb2RlOjpzb3Vy
Y2Ugb24gYSBjYWNoZWQgc2NyaXB0LgorCisgICAgICAgICogR05VbWFrZWZpbGUuYW06CisgICAg
ICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIFdlYkNvcmUucHJvOgorICAgICAgICAqIFdl
YkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9DYWNoZWRTY3JpcHRTb3Vy
Y2VQcm92aWRlci5oOiBNb2RpZmllZCB0byBpbmhlcml0IGZyb20gCisgICAgICAgIFdlYkNvcmU6
OlNjcmlwdFNvdXJjZUNvZGUuCisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRTY3JpcHRTb3VyY2VQ
cm92aWRlcjo6c291cmNlKToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFNjcmlwdFNvdXJjZVBy
b3ZpZGVyOjpDYWNoZWRTY3JpcHRTb3VyY2VQcm92aWRlcik6CisgICAgICAgICogYmluZGluZ3Mv
anMvU2NyaXB0U291cmNlQ29kZS5oOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0U291cmNlQ29k
ZTo6U2NyaXB0U291cmNlQ29kZSk6IFNlcGFyYXRlZCBvdXQgc291cmNlIHByb3ZpZGVyIGFuZAor
ICAgICAgICByZXdyb3RlIHRvIHVzZSBXZWJDb3JlOjpTY3JpcHRTb3VyY2VQcm92aWRlci4KKyAg
ICAgICAgKFdlYkNvcmU6OlNjcmlwdFNvdXJjZUNvZGU6OnNvdXJjZSk6CisgICAgICAgICogYmlu
ZGluZ3MvanMvU2NyaXB0U291cmNlUHJvdmlkZXIuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3Jl
OjpTY3JpcHRTb3VyY2VQcm92aWRlcjo6U2NyaXB0U291cmNlUHJvdmlkZXIpOgorICAgICAgICAo
V2ViQ29yZTo6U2NyaXB0U291cmNlUHJvdmlkZXI6On5TY3JpcHRTb3VyY2VQcm92aWRlcik6Cisg
ICAgICAgICogYmluZGluZ3MvanMvU3RyaW5nU291cmNlUHJvdmlkZXIuaDogTW9kaWZpZWQgdG8g
aW5oZXJpdCBmcm9tIAorICAgICAgICBXZWJDb3JlOjpTY3JpcHRTb3VyY2VDb2RlLgorICAgICAg
ICAoV2ViQ29yZTo6U3RyaW5nU291cmNlUHJvdmlkZXI6OlN0cmluZ1NvdXJjZVByb3ZpZGVyKToK
KwogMjAwOS0wNy0yMSAgU2FtIFdlaW5pZyAgPHNhbUB3ZWJraXQub3JnPgogCiAgICAgICAgIEFu
b3RoZXIgYXR0ZW1wdCB0byBmaXggdGhlIFdpbmRvd3MgYnVpbGQuCkluZGV4OiBXZWJDb3JlL0dO
VW1ha2VmaWxlLmFtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvR05VbWFrZWZpbGUuYW0JKHJldmlz
aW9uIDQ2MjE0KQorKysgV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQkod29ya2luZyBjb3B5KQpAQCAt
NDM0LDYgKzQzNCw3IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJV2ViQ29yZS9iaW5kaW5ncy9q
cy9TY3JpcHRPYmplY3RRdWFyYW50aW5lLmNwcCBcCiAJV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3Jp
cHRPYmplY3RRdWFyYW50aW5lLmggXAogCVdlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0U291cmNl
Q29kZS5oIFwKKwlXZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdFNvdXJjZVByb3ZpZGVyLmggXAog
CVdlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0U3RhdGUuY3BwIFwKIAlXZWJDb3JlL2JpbmRpbmdz
L2pzL1NjcmlwdFN0YXRlLmggXAogCVdlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0U3RyaW5nLmgg
XApJbmRleDogV2ViQ29yZS9XZWJDb3JlLmd5cGkKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJD
b3JlLmd5cGkJKHJldmlzaW9uIDQ2MjE0KQorKysgV2ViQ29yZS9XZWJDb3JlLmd5cGkJKHdvcmtp
bmcgY29weSkKQEAgLTU3Myw2ICs1NzMsNyBAQAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL1Nj
cmlwdE9iamVjdFF1YXJhbnRpbmUuY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy9qcy9TY3Jp
cHRPYmplY3RRdWFyYW50aW5lLmgnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL1NjcmlwdFNv
dXJjZUNvZGUuaCcsCisgICAgICAgICAgICAnYmluZGluZ3MvanMvU2NyaXB0U291cmNlUHJvdmlk
ZXIuaCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvanMvU2NyaXB0U3RhdGUuY3BwJywKICAgICAg
ICAgICAgICdiaW5kaW5ncy9qcy9TY3JpcHRTdGF0ZS5oJywKICAgICAgICAgICAgICdiaW5kaW5n
cy9qcy9TY3JpcHRTdHJpbmcuaCcsCkluZGV4OiBXZWJDb3JlL1dlYkNvcmUucHJvCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvV2ViQ29yZS5wcm8JKHJldmlzaW9uIDQ2MjE0KQorKysgV2ViQ29yZS9X
ZWJDb3JlLnBybwkod29ya2luZyBjb3B5KQpAQCAtMTEzMyw2ICsxMTMzLDcgQEAgSEVBREVSUyAr
PSBcCiAgICAgYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGVIZWFkZXJDb250YWluZXIu
aCBcCiAgICAgYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGVSb3cuaCBcCiAgICAgYWNj
ZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmggXAorICAgIGJpbmRpbmdzL2pzL0NhY2hlZFNjcmlw
dFNvdXJjZVByb3ZpZGVyLmggXAogICAgIGJpbmRpbmdzL2pzL0RPTU9iamVjdFdpdGhTVkdDb250
ZXh0LmggXAogICAgIGJpbmRpbmdzL2pzL0dDQ29udHJvbGxlci5oIFwKICAgICBiaW5kaW5ncy9q
cy9KU0F1ZGlvQ29uc3RydWN0b3IuaCBcCkBAIC0xMTkyLDggKzExOTMsMTEgQEAgSEVBREVSUyAr
PSBcCiAgICAgYmluZGluZ3MvanMvU2NyaXB0RnVuY3Rpb25DYWxsLmggXAogICAgIGJpbmRpbmdz
L2pzL1NjcmlwdE9iamVjdC5oIFwKICAgICBiaW5kaW5ncy9qcy9TY3JpcHRPYmplY3RRdWFyYW50
aW5lLmggXAorICAgIGJpbmRpbmdzL2pzL1NjcmlwdFNvdXJjZUNvZGUuaCBcCisgICAgYmluZGlu
Z3MvanMvU2NyaXB0U291cmNlUHJvdmlkZXIuaCBcCiAgICAgYmluZGluZ3MvanMvU2NyaXB0U3Rh
dGUuaCBcCiAgICAgYmluZGluZ3MvanMvU2NyaXB0VmFsdWUuaCBcCisgICAgYmluZGluZ3MvanMv
U3RyaW5nU291cmNlUHJvdmlkZXIuaCBcCiAgICAgYmluZGluZ3MvanMvV29ya2VyU2NyaXB0Q29u
dHJvbGxlci5oIFwKICAgICBicmlkZ2UvYy9jX2NsYXNzLmggXAogICAgIGJyaWRnZS9jL2NfaW5z
dGFuY2UuaCBcCkluZGV4OiBXZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oJKHJldmlz
aW9uIDQ2MjE0KQorKysgV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagkod29y
a2luZyBjb3B5KQpAQCAtMjg4NzAsNiArMjg4NzAsMTAgQEAKIAkJCQkJPg0KIAkJCQk8L0ZpbGU+
DQogCQkJCTxGaWxlDQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXFNjcmlwdFNv
dXJjZVByb3ZpZGVyLmgiDQorCQkJCQk+DQorCQkJCTwvRmlsZT4NCisJCQkJPEZpbGUNCiAJCQkJ
CVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcU2NyaXB0U3RhdGUuY3BwIg0KIAkJCQkJPg0K
IAkJCQk8L0ZpbGU+DQpJbmRleDogV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oJKHJldmlzaW9uIDQ2MjE0KQorKysgV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTQzMzcsNiArNDMzNyw3IEBACiAJCUM1NUUz
OEMwMTAwNDBENUQwMEE1NkJEQiAvKiBTdG9yYWdlTmFtZXNwYWNlSW1wbC5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDNTVFMzhCQzEwMDQwRDVEMDBB
NTZCREIgLyogU3RvcmFnZU5hbWVzcGFjZUltcGwuY3BwICovOyB9OwogCQlDNkQ3NEFENTA5QUEy
ODJFMDAwQjBBNTIgLyogTW9kaWZ5U2VsZWN0aW9uTGlzdExldmVsLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDNkQ3NEFEMzA5QUEyODJFMDAwQjBBNTIg
LyogTW9kaWZ5U2VsZWN0aW9uTGlzdExldmVsLmggKi87IH07CiAJCUM2RDc0QUU0MDlBQTI5MEEw
MDBCMEE1MiAvKiBNb2RpZnlTZWxlY3Rpb25MaXN0TGV2ZWwuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzZENzRBRTMwOUFBMjkwQTAwMEIwQTUyIC8q
IE1vZGlmeVNlbGVjdGlvbkxpc3RMZXZlbC5jcHAgKi87IH07CisJCUNFNTRGRDM4MTAxNkQ5QTYw
MDhCNDRDOCAvKiBTY3JpcHRTb3VyY2VQcm92aWRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0U1NEZEMzcxMDE2RDlBNjAwOEI0NEM4IC8qIFNjcmlw
dFNvdXJjZVByb3ZpZGVyLmggKi87IH07CiAJCUQwNUNFRDI5MEE0MEJCMkMwMEM1QUYzOCAvKiBG
b3JtYXRCbG9ja0NvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRDA1Q0VEMjcwQTQwQkIyQzAwQzVBRjM4IC8qIEZvcm1hdEJsb2NrQ29tbWFu
ZC5jcHAgKi87IH07CiAJCUQwNUNFRDJBMEE0MEJCMkMwMEM1QUYzOCAvKiBGb3JtYXRCbG9ja0Nv
bW1hbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEQw
NUNFRDI4MEE0MEJCMkMwMEM1QUYzOCAvKiBGb3JtYXRCbG9ja0NvbW1hbmQuaCAqLzsgfTsKIAkJ
RDA2QzBEOEYwQ0ZEMTE0NjAwNjVGNDNGIC8qIFJlbW92ZUZvcm1hdENvbW1hbmQuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEQwNkMwRDhEMENGRDExNDYw
MDY1RjQzRiAvKiBSZW1vdmVGb3JtYXRDb21tYW5kLmggKi87IH07CkBAIC05MjA2LDYgKzkyMDcs
NyBAQAogCQlDNTVFMzhCQzEwMDQwRDVEMDBBNTZCREIgLyogU3RvcmFnZU5hbWVzcGFjZUltcGwu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3RvcmFnZU5hbWVzcGFj
ZUltcGwuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDNkQ3NEFEMzA5QUEyODJF
MDAwQjBBNTIgLyogTW9kaWZ5U2VsZWN0aW9uTGlzdExldmVsLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IE1vZGlmeVNlbGVjdGlvbkxpc3RMZXZlbC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlDNkQ3NEFFMzA5QUEyOTBBMDAwQjBBNTIgLyogTW9kaWZ5U2VsZWN0
aW9uTGlzdExldmVsLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1v
ZGlmeVNlbGVjdGlvbkxpc3RMZXZlbC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CUNFNTRGRDM3MTAxNkQ5QTYwMDhCNDRDOCAvKiBTY3JpcHRTb3VyY2VQcm92aWRlci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTY3JpcHRTb3VyY2VQcm92aWRlci5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEMDVDRUQyNzBBNDBCQjJDMDBDNUFGMzggLyogRm9y
bWF0QmxvY2tDb21tYW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBGb3JtYXRCbG9ja0NvbW1hbmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlE
MDVDRUQyODBBNDBCQjJDMDBDNUFGMzggLyogRm9ybWF0QmxvY2tDb21tYW5kLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGb3JtYXRCbG9ja0NvbW1hbmQuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRDA2QzBEOEQwQ0ZEMTE0NjAwNjVGNDNGIC8qIFJlbW92ZUZv
cm1hdENvbW1hbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3ZlRm9y
bWF0Q29tbWFuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTM1NDAsNiArMTM1
NDIsNyBAQAogCQkJCTQxMkE2ODQ2MEY2QjAzREQwMDBFQTY2RSAvKiBTY3JpcHRPYmplY3RRdWFy
YW50aW5lLmNwcCAqLywKIAkJCQk0MTk1MzY1MDBGNjgyMjI0MDBEMEM2NzkgLyogU2NyaXB0T2Jq
ZWN0UXVhcmFudGluZS5oICovLAogCQkJCTkzNENDMTA5MEVEQjIyMzkwMEE2NThGMiAvKiBTY3Jp
cHRTb3VyY2VDb2RlLmggKi8sCisJCQkJQ0U1NEZEMzcxMDE2RDlBNjAwOEI0NEM4IC8qIFNjcmlw
dFNvdXJjZVByb3ZpZGVyLmggKi8sCiAJCQkJNDEyN0Q1MzYwRjhBQUIxRDAwRTQyNEY1IC8qIFNj
cmlwdFN0YXRlLmNwcCAqLywKIAkJCQk0MUM3NjBCMDBFREUwM0QzMDBDMTY1NUYgLyogU2NyaXB0
U3RhdGUuaCAqLywKIAkJCQk0MTZGNDVFRjBFRDdCMzExMDA4MjE1QjYgLyogU2NyaXB0U3RyaW5n
LmggKi8sCkBAIC0xNzAyNCw2ICsxNzAyNyw3IEBACiAJCQkJMkVDRjdBREQxMDE2MkIzODAwNDI3
REU3IC8qIEpTRXJyb3JFdmVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkVDRjdBRTIxMDE2MkI1
ODAwNDI3REU3IC8qIEVycm9yRXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4RURCMDNEMTAx
Njg0OTQwMEZFODExMyAvKiBET01PYmplY3RXaXRoU1ZHQ29udGV4dC5oIGluIEhlYWRlcnMgKi8s
CisJCQkJQ0U1NEZEMzgxMDE2RDlBNjAwOEI0NEM4IC8qIFNjcmlwdFNvdXJjZVByb3ZpZGVyLmgg
aW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNz
aW5nID0gMDsKIAkJfTsKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvanMvQ2FjaGVkU2NyaXB0U291
cmNlUHJvdmlkZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL2pzL0NhY2hlZFNj
cmlwdFNvdXJjZVByb3ZpZGVyLmgJKHJldmlzaW9uIDQ2MjE0KQorKysgV2ViQ29yZS9iaW5kaW5n
cy9qcy9DYWNoZWRTY3JpcHRTb3VyY2VQcm92aWRlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOSwx
MSArMjksMTIgQEAKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUNsaWVudC5oIgogI2luY2x1ZGUg
IkNhY2hlZFJlc291cmNlSGFuZGxlLmgiCiAjaW5jbHVkZSAiQ2FjaGVkU2NyaXB0LmgiCisjaW5j
bHVkZSAiU2NyaXB0U291cmNlUHJvdmlkZXIuaCIKICNpbmNsdWRlIDxwYXJzZXIvU291cmNlQ29k
ZS5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLSAgICBjbGFzcyBDYWNoZWRTY3JpcHRTb3Vy
Y2VQcm92aWRlciA6IHB1YmxpYyBKU0M6OlNvdXJjZVByb3ZpZGVyLCBwdWJsaWMgQ2FjaGVkUmVz
b3VyY2VDbGllbnQgeworICAgIGNsYXNzIENhY2hlZFNjcmlwdFNvdXJjZVByb3ZpZGVyIDogcHVi
bGljIFNjcmlwdFNvdXJjZVByb3ZpZGVyLCBwdWJsaWMgQ2FjaGVkUmVzb3VyY2VDbGllbnQgewog
ICAgIHB1YmxpYzoKICAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8Q2FjaGVkU2NyaXB0U291cmNl
UHJvdmlkZXI+IGNyZWF0ZShDYWNoZWRTY3JpcHQqIGNhY2hlZFNjcmlwdCkgeyByZXR1cm4gYWRv
cHRSZWYobmV3IENhY2hlZFNjcmlwdFNvdXJjZVByb3ZpZGVyKGNhY2hlZFNjcmlwdCkpOyB9CiAK
QEAgLTQ1LDEwICs0NiwxMSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIEpTQzo6VVN0
cmluZyBnZXRSYW5nZShpbnQgc3RhcnQsIGludCBlbmQpIGNvbnN0IHsgcmV0dXJuIEpTQzo6VVN0
cmluZyhtX2NhY2hlZFNjcmlwdC0+c2NyaXB0KCkuY2hhcmFjdGVycygpICsgc3RhcnQsIGVuZCAt
IHN0YXJ0KTsgfQogICAgICAgICBjb25zdCBVQ2hhciogZGF0YSgpIGNvbnN0IHsgcmV0dXJuIG1f
Y2FjaGVkU2NyaXB0LT5zY3JpcHQoKS5jaGFyYWN0ZXJzKCk7IH0KICAgICAgICAgaW50IGxlbmd0
aCgpIGNvbnN0IHsgcmV0dXJuIG1fY2FjaGVkU2NyaXB0LT5zY3JpcHQoKS5sZW5ndGgoKTsgfQor
ICAgICAgICBjb25zdCBTdHJpbmcmIHNvdXJjZSgpIGNvbnN0IHsgcmV0dXJuIG1fY2FjaGVkU2Ny
aXB0LT5zY3JpcHQoKTsgfQogCiAgICAgcHJpdmF0ZToKICAgICAgICAgQ2FjaGVkU2NyaXB0U291
cmNlUHJvdmlkZXIoQ2FjaGVkU2NyaXB0KiBjYWNoZWRTY3JpcHQpCi0gICAgICAgICAgICA6IFNv
dXJjZVByb3ZpZGVyKGNhY2hlZFNjcmlwdC0+dXJsKCkpCisgICAgICAgICAgICA6IFNjcmlwdFNv
dXJjZVByb3ZpZGVyKGNhY2hlZFNjcmlwdC0+dXJsKCkpCiAgICAgICAgICAgICAsIG1fY2FjaGVk
U2NyaXB0KGNhY2hlZFNjcmlwdCkKICAgICAgICAgewogICAgICAgICAgICAgbV9jYWNoZWRTY3Jp
cHQtPmFkZENsaWVudCh0aGlzKTsKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0U291
cmNlQ29kZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0U291cmNl
Q29kZS5oCShyZXZpc2lvbiA0NjIxNCkKKysrIFdlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0U291
cmNlQ29kZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMiwyMCArMzIsMjQgQEAKICNkZWZpbmUgU2Ny
aXB0U291cmNlQ29kZV9oCiAKICNpbmNsdWRlICJDYWNoZWRTY3JpcHRTb3VyY2VQcm92aWRlci5o
IgorI2luY2x1ZGUgIlNjcmlwdFNvdXJjZVByb3ZpZGVyLmgiCiAjaW5jbHVkZSAiU3RyaW5nU291
cmNlUHJvdmlkZXIuaCIKICNpbmNsdWRlICJLVVJMLmgiCisjaW5jbHVkZSA8d3RmL1JlZlB0ci5o
PgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFNjcmlwdFNvdXJjZUNvZGUgewogcHVi
bGljOgogICAgIFNjcmlwdFNvdXJjZUNvZGUoY29uc3QgU3RyaW5nJiBzb3VyY2UsIGNvbnN0IEtV
UkwmIHVybCA9IEtVUkwoKSwgaW50IHN0YXJ0TGluZSA9IDEpCi0gICAgICAgIDogbV9jb2RlKG1h
a2VTb3VyY2Uoc291cmNlLCB1cmwuaXNOdWxsKCkgPyBTdHJpbmcoKSA6IHVybC5zdHJpbmcoKSwg
c3RhcnRMaW5lKSkKKyAgICAgICAgOiBtX3Byb3ZpZGVyKFN0cmluZ1NvdXJjZVByb3ZpZGVyOjpj
cmVhdGUoc291cmNlLCB1cmwuaXNOdWxsKCkgPyBTdHJpbmcoKSA6IHVybC5zdHJpbmcoKSkpCisg
ICAgICAgICwgbV9jb2RlKG1fcHJvdmlkZXIsIHN0YXJ0TGluZSkKICAgICB7CiAgICAgfQogCiAg
ICAgU2NyaXB0U291cmNlQ29kZShDYWNoZWRTY3JpcHQqIGNzKQotICAgICAgICA6IG1fY29kZSht
YWtlU291cmNlKGNzKSkKKyAgICAgICAgOiBtX3Byb3ZpZGVyKENhY2hlZFNjcmlwdFNvdXJjZVBy
b3ZpZGVyOjpjcmVhdGUoY3MpKQorICAgICAgICAsIG1fY29kZShtX3Byb3ZpZGVyKQogICAgIHsK
ICAgICB9CiAKQEAgLTUzLDkgKzU3LDExIEBAIHB1YmxpYzoKIAogICAgIGNvbnN0IEpTQzo6U291
cmNlQ29kZSYganNTb3VyY2VDb2RlKCkgY29uc3QgeyByZXR1cm4gbV9jb2RlOyB9CiAKLSAgICBj
b25zdCBTdHJpbmcmIHNvdXJjZSgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PFN0cmluZ1Nv
dXJjZVByb3ZpZGVyKj4obV9jb2RlLnByb3ZpZGVyKCkpLT5zb3VyY2UoKTsgfQorICAgIGNvbnN0
IFN0cmluZyYgc291cmNlKCkgY29uc3QgeyByZXR1cm4gbV9wcm92aWRlci0+c291cmNlKCk7IH0K
IAogcHJpdmF0ZToKKyAgICBSZWZQdHI8U2NyaXB0U291cmNlUHJvdmlkZXI+IG1fcHJvdmlkZXI7
CisgICAgCiAgICAgSlNDOjpTb3VyY2VDb2RlIG1fY29kZTsKIH07CiAKSW5kZXg6IFdlYkNvcmUv
YmluZGluZ3MvanMvU2NyaXB0U291cmNlUHJvdmlkZXIuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L2JpbmRpbmdzL2pzL1NjcmlwdFNvdXJjZVByb3ZpZGVyLmgJKHJldmlzaW9uIDApCisrKyBXZWJD
b3JlL2JpbmRpbmdzL2pzL1NjcmlwdFNvdXJjZVByb3ZpZGVyLmgJKHJldmlzaW9uIDApCkBAIC0w
LDAgKzEsNTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDkgRGFuaWVsIEJhdGVzIChkYmF0
ZXNAaW50dWRhdGEuY29tKQorICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBB
TlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
ICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgU2NyaXB0U291
cmNlUHJvdmlkZXJfaAorI2RlZmluZSBTY3JpcHRTb3VyY2VQcm92aWRlcl9oCisKKyNpbmNsdWRl
IDxwYXJzZXIvU291cmNlUHJvdmlkZXIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCisgICAg
Y2xhc3MgU3RyaW5nOworCisgICAgY2xhc3MgU2NyaXB0U291cmNlUHJvdmlkZXIgOiBwdWJsaWMg
SlNDOjpTb3VyY2VQcm92aWRlciB7CisgICAgcHVibGljOgorICAgICAgICBTY3JpcHRTb3VyY2VQ
cm92aWRlcihjb25zdCBKU0M6OlVTdHJpbmcmIHVybCwgSlNDOjpTb3VyY2VCT01QcmVzZW5jZSBo
YXNCT01zID0gSlNDOjpTb3VyY2VDb3VsZEhhdmVCT01zKQorICAgICAgICAgICAgOiBTb3VyY2VQ
cm92aWRlcih1cmwsIGhhc0JPTXMpCisgICAgICAgIHsKKyAgICAgICAgfQorICAgICAgICAKKyAg
ICAgICAgdmlydHVhbCB+U2NyaXB0U291cmNlUHJvdmlkZXIoKSB7IH0KKyAgICAgICAgCisgICAg
ICAgIHZpcnR1YWwgY29uc3QgU3RyaW5nJiBzb3VyY2UoKSBjb25zdCA9IDA7CisgICAgfTsKKyAg
ICAKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFNjcmlwdFNvdXJjZVByb3Zp
ZGVyX2gKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvanMvU3RyaW5nU291cmNlUHJvdmlkZXIuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL2pzL1N0cmluZ1NvdXJjZVByb3ZpZGVyLmgJ
KHJldmlzaW9uIDQ2MjE0KQorKysgV2ViQ29yZS9iaW5kaW5ncy9qcy9TdHJpbmdTb3VyY2VQcm92
aWRlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOSwxMSArMjksMTIgQEAKICNpZm5kZWYgU3RyaW5n
U291cmNlUHJvdmlkZXJfaAogI2RlZmluZSBTdHJpbmdTb3VyY2VQcm92aWRlcl9oCiAKKyNpbmNs
dWRlICJTY3JpcHRTb3VyY2VQcm92aWRlci5oIgogI2luY2x1ZGUgPHBhcnNlci9Tb3VyY2VDb2Rl
Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotICAgIGNsYXNzIFN0cmluZ1NvdXJjZVByb3Zp
ZGVyIDogcHVibGljIEpTQzo6U291cmNlUHJvdmlkZXIgeworICAgIGNsYXNzIFN0cmluZ1NvdXJj
ZVByb3ZpZGVyIDogcHVibGljIFNjcmlwdFNvdXJjZVByb3ZpZGVyIHsKICAgICBwdWJsaWM6CiAg
ICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0cmluZ1NvdXJjZVByb3ZpZGVyPiBjcmVhdGUoY29u
c3QgU3RyaW5nJiBzb3VyY2UsIGNvbnN0IFN0cmluZyYgdXJsKSB7IHJldHVybiBhZG9wdFJlZihu
ZXcgU3RyaW5nU291cmNlUHJvdmlkZXIoc291cmNlLCB1cmwpKTsgfQogCkBAIC00NCw3ICs0NSw3
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgIHByaXZhdGU6CiAgICAgICAgIFN0cmluZ1Nv
dXJjZVByb3ZpZGVyKGNvbnN0IFN0cmluZyYgc291cmNlLCBjb25zdCBTdHJpbmcmIHVybCkKLSAg
ICAgICAgICAgIDogU291cmNlUHJvdmlkZXIodXJsKQorICAgICAgICAgICAgOiBTY3JpcHRTb3Vy
Y2VQcm92aWRlcih1cmwpCiAgICAgICAgICAgICAsIG1fc291cmNlKHNvdXJjZSkKICAgICAgICAg
ewogICAgICAgICB9Cg==
</data>
<flag name="review"
          id="17558"
          type_id="1"
          status="+"
          setter="abarth"
    />
          </attachment>
      

    </bug>

</bugzilla>