<?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>39572</bug_id>
          
          <creation_ts>2010-05-23 15:17:08 -0700</creation_ts>
          <short_desc>Add new HTML5TreeBuilder class to hold the tree builder section of the HTML5 parsing spec</short_desc>
          <delta_ts>2010-05-23 18:38:33 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Eric Seidel (no email)">eric</reporter>
          <assigned_to name="Eric Seidel (no email)">eric</assigned_to>
          <cc>abarth</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eric</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>229521</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-05-23 15:17:08 -0700</bug_when>
    <thetext>Add new HTML5TreeBuilder class to hold the tree builder section of the HTML5 parsing spec</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>229525</commentid>
    <comment_count>1</comment_count>
      <attachid>56833</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-05-23 15:27:01 -0700</bug_when>
    <thetext>Created attachment 56833
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>229526</commentid>
    <comment_count>2</comment_count>
      <attachid>56833</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-05-23 15:30:25 -0700</bug_when>
    <thetext>Comment on attachment 56833
Patch

WebCore/html/HTML5Tokenizer.cpp:40
 +      , m_parser(new HTML5TreeBuilder(doc, reportErrors))
Should we change the name of this member variable?

WebCore/html/HTML5TreeBuilder.cpp:37
 +  
One space in C++ land

WebCore/html/HTML5TreeBuilder.cpp:82
 +          // FIXME: This work is supposed to be done by the parser, but
This code is now in the right file, so maybe update the comment?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>229527</commentid>
    <comment_count>3</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-05-23 15:37:21 -0700</bug_when>
    <thetext>Done, done and Done.  Will merge and land shortly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>229530</commentid>
    <comment_count>4</comment_count>
      <attachid>56835</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-05-23 15:53:25 -0700</bug_when>
    <thetext>Created attachment 56835
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>229534</commentid>
    <comment_count>5</comment_count>
      <attachid>56837</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-05-23 16:40:34 -0700</bug_when>
    <thetext>Created attachment 56837
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>229537</commentid>
    <comment_count>6</comment_count>
      <attachid>56838</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-05-23 17:47:03 -0700</bug_when>
    <thetext>Created attachment 56838
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>229544</commentid>
    <comment_count>7</comment_count>
      <attachid>56837</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-05-23 18:06:03 -0700</bug_when>
    <thetext>Comment on attachment 56837
Patch for landing

Rejecting patch 56837 from commit-queue.

Failed to run &quot;[&apos;WebKitTools/Scripts/build-webkit&apos;, &apos;--debug&apos;]&quot; exit_code: 1
Last 500 characters of output:
setenv YACC /Developer/usr/bin/yacc
    /bin/sh -c /Users/eseidel/Projects/CommitQueue/WebKitBuild/WebCore.build/Debug/WebCore.build/Script-5DF50887116F3077005202AB.sh
** BUILD FAILED **

The following build commands failed:
WebCore:
	Distributed-CompileC /Users/eseidel/Projects/CommitQueue/WebKitBuild/WebCore.build/Debug/WebCore.build/Objects-normal/i386/HTML5Tokenizer.o /Users/eseidel/Projects/CommitQueue/WebCore/html/HTML5Tokenizer.cpp normal i386 c++ com.apple.compilers.gcc.4_2
(1 failure)


Full output: http://webkit-commit-queue.appspot.com/results/2356098</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>229549</commentid>
    <comment_count>8</comment_count>
      <attachid>56838</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-05-23 18:21:00 -0700</bug_when>
    <thetext>Comment on attachment 56838
Patch for landing

Clearing flags on attachment: 56838

Committed r60055: &lt;http://trac.webkit.org/changeset/60055&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>229550</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-05-23 18:21:05 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>229553</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-05-23 18:27:18 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/60055 might have broken Qt Linux Release minimal and Chromium Linux Release</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>229556</commentid>
    <comment_count>11</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-05-23 18:30:16 -0700</bug_when>
    <thetext>Preparing buildfix now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>229560</commentid>
    <comment_count>12</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-05-23 18:38:33 -0700</bug_when>
    <thetext>Committed r60056: &lt;http://trac.webkit.org/changeset/60056&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>56833</attachid>
            <date>2010-05-23 15:27:01 -0700</date>
            <delta_ts>2010-05-23 15:53:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-39572-20100523152700.patch</filename>
            <type>text/plain</type>
            <size>16967</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
OTk0ZjQ2NGVlNTRhYjI1NGVmZjI4NzEwZmMwYWZlMDRmNjM1NTJhNy4uNzE2NTRmN2MzMjRjZjUz
YjM4ODg3YzIzZTNiZjk0MjdmMDg2ODg0ZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMiBAQAorMjAxMC0wNS0yMyAgRXJp
YyBTZWlkZWwgIDxlcmljQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgQWRkIG5ldyBIVE1MNVRyZWVCdWlsZGVyIGNsYXNzIHRvIGhv
bGQgdGhlIHRyZWUgYnVpbGRlciBzZWN0aW9uIG9mIHRoZSBIVE1MNSBwYXJzaW5nIHNwZWMKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM5NTcyCisKKyAg
ICAgICAgV2UndmUgYmVlbiB3b3JraW5nIG9uIHRoZSB0b2tlbml6YXRpb24gKGxleGluZykgc2Vj
dGlvbiBvZiB0aGUgSFRNTDUKKyAgICAgICAgc3BlYyB1bnRpbCBub3cgYW5kIGxlYW5pbmcgb24g
dGhlIG9sZCBIVE1MUGFyc2VyIGZvciB0cmVlIGJ1aWxkaW5nLgorICAgICAgICBXZSBuZWVkIHRv
IHN0YXJ0IHdyaXRpbmcgbW9yZSBvZiB0aGUgdHJlZSBidWlsZGluZyBzZWN0aW9ucyBvZiB0aGUg
c3BlYywKKyAgICAgICAgYnV0IHRvIGRvIHRoYXQgd2UgbmVlZCBhIHBsYWNlIHRvIHB1dCB0aGUg
bmV3IGNvZGUuCisKKyAgICAgICAgVGhpcyBwYXRjaCBtb3ZlcyBvdXIgb2xkLXRvLW5ldyBjb252
ZXJzaW9uIGhhY2tzIG91dCBvZiBIVE1MNVRva2VuaXplcgorICAgICAgICAob3VyIFRva2VuaXpl
ci5oIGltcGxlbWVudGF0aW9uKSBhbmQgaW50byBIVE1MNVRyZWVCdWlsZGVyLgorICAgICAgICBG
b2xsb3ctdXAgcGF0Y2hlcyB3aWxsIGFkZCBuZXcgSFRNTDUgdHJlZSBidWlsZGluZyBjb2RlIHRv
IHRoaXMgZmlsZQorICAgICAgICBhbmQgd2lsbCBhbGxvdyB1cyB0byBzd2l0Y2ggYmV0d2VlbiBv
bGQgYW5kIG5ldyBwYXJzZXIvdHJlZWJ1aWxkZXIKKyAgICAgICAgaW1wbGVtZW50YXRpb25zLgor
CisgICAgICAgIE5vIGNoYW5nZSBpbiBiZWhhdmlvciwgdGh1cyBubyBuZXcgdGVzdHMuCisKKyAg
ICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogaHRt
bC9IVE1MNVRva2VuaXplci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MNVRva2VuaXplcjo6
SFRNTDVUb2tlbml6ZXIpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTDVUb2tlbml6ZXI6OndyaXRl
KToKKyAgICAgICAgIC0gQ2FsbCB0aGUgbmV3IEhUTUw1VHJlZUJ1aWxkZXIgY29kZS4KKyAgICAg
ICAgKiBodG1sL0hUTUw1VG9rZW5pemVyLmg6CisgICAgICAgICogaHRtbC9IVE1MNVRyZWVCdWls
ZGVyLmNwcDogQWRkZWQuCisgICAgICAgICogaHRtbC9IVE1MNVRyZWVCdWlsZGVyLmg6IEFkZGVk
LgorCiAyMDEwLTA1LTIzICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CiAKICAgICAg
ICAgUmV2aWV3ZWQgYnkgRXJpYyBTZWlkZWwuCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCmluZGV4IDFmYWU4OWNkMTNiODdlNWZlZWQ0N2Q2YmQ3ZWRjMDkwOWEzYjBm
MjYuLjFiYWY5M2E0ZGYyYmEzMjczN2NmNzM1NzkzNTg5OTZkYWY4MGRjOWMgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0zMDA4LDYgKzMwMDgsOCBAQAog
CQlBODcxREZFMzBBMTUzNzZCMDBCMTJBNjggLyogUmVuZGVyUmVwbGFjZWQuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4NzFERkRGMEExNTM3NkIwMEIx
MkE2OCAvKiBSZW5kZXJSZXBsYWNlZC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCUE4NzFERkU0MEExNTM3NkIwMEIxMkE2OCAvKiBSZW5kZXJXaWRn
ZXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4NzFE
RkUwMEExNTM3NkIwMEIxMkE2OCAvKiBSZW5kZXJXaWRnZXQuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlBODcxREZFNTBBMTUzNzZCMDBCMTJBNjgg
LyogUmVuZGVyV2lkZ2V0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEE4NzFERkUxMEExNTM3NkIwMEIxMkE2OCAvKiBSZW5kZXJXaWRnZXQuY3BwICov
OyB9OworCQlBODc5QzYyNTExQTlEMUY3MDA1OTIzN0EgLyogSFRNTDVUcmVlQnVpbGRlci5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODc5QzYyMzEx
QTlEMUY3MDA1OTIzN0EgLyogSFRNTDVUcmVlQnVpbGRlci5jcHAgKi87IH07CisJCUE4NzlDNjI2
MTFBOUQxRjcwMDU5MjM3QSAvKiBIVE1MNVRyZWVCdWlsZGVyLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODc5QzYyNDExQTlEMUY3MDA1OTIzN0EgLyog
SFRNTDVUcmVlQnVpbGRlci5oICovOyB9OwogCQlBODgzREYyNzBGM0QwNDVEMDBGMTlCRjYgLyog
VmlzaWJsZVNlbGVjdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBBODgzREYyNTBGM0QwNDVEMDBGMTlCRjYgLyogVmlzaWJsZVNlbGVjdGlvbi5j
cHAgKi87IH07CiAJCUE4ODNERjI4MEYzRDA0NUQwMEYxOUJGNiAvKiBWaXNpYmxlU2VsZWN0aW9u
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODgzREYy
NjBGM0QwNDVEMDBGMTlCRjYgLyogVmlzaWJsZVNlbGVjdGlvbi5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUE4OEFENTJGMDk1MjRCOTIwMDFERDE5
NiAvKiBRdWFydHpDb3JlLmZyYW1ld29yayBpbiBGcmFtZXdvcmtzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEE4NUQ3QTJGMDg3OUVCQTkwMDZBOTE3MiAvKiBRdWFydHpDb3Jl
LmZyYW1ld29yayAqLzsgfTsKQEAgLTg0MzUsNiArODQzNyw4IEBACiAJCUE4NzFERkRGMEExNTM3
NkIwMEIxMkE2OCAvKiBSZW5kZXJSZXBsYWNlZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gUmVuZGVyUmVwbGFjZWQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
QTg3MURGRTAwQTE1Mzc2QjAwQjEyQTY4IC8qIFJlbmRlcldpZGdldC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gUmVuZGVyV2lkZ2V0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUE4NzFERkUxMEExNTM3NkIwMEIxMkE2OCAvKiBSZW5kZXJXaWRnZXQuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbmRlcldpZGdldC5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUE4NzlDNjIzMTFBOUQxRjcwMDU5MjM3QSAvKiBI
VE1MNVRyZWVCdWlsZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IEhUTUw1VHJlZUJ1aWxkZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBODc5
QzYyNDExQTlEMUY3MDA1OTIzN0EgLyogSFRNTDVUcmVlQnVpbGRlci5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBIVE1MNVRyZWVCdWlsZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUE4ODNERjI1MEYzRDA0NUQwMEYxOUJGNiAvKiBWaXNpYmxlU2VsZWN0aW9u
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFZpc2libGVTZWxlY3Rp
b24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBODgzREYyNjBGM0QwNDVEMDBG
MTlCRjYgLyogVmlzaWJsZVNlbGVjdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBWaXNpYmxlU2VsZWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4
OERENDg2MEI0NjI5QTMwMEMwMjk5MCAvKiBQYXRoVHJhdmVyc2FsU3RhdGUuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGF0aFRyYXZlcnNhbFN0YXRlLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CkBAIC0xMzMzMCw2ICsxMzMzNCw4IEBACiAJCQkJQTgxMzZEMzYwOTcz
QThFNzAwRDc0NDYzIC8qIEZvcm1EYXRhTGlzdC5oICovLAogCQkJCTk3RThCMzU0MTFBMjNDRTIw
MDE2OTQwOSAvKiBIVE1MNUxleGVyLmNwcCAqLywKIAkJCQk5N0U4QjM1NTExQTIzQ0UyMDAxNjk0
MDkgLyogSFRNTDVMZXhlci5oICovLAorCQkJCUE4NzlDNjIzMTFBOUQxRjcwMDU5MjM3QSAvKiBI
VE1MNVRyZWVCdWlsZGVyLmNwcCAqLywKKwkJCQlBODc5QzYyNDExQTlEMUY3MDA1OTIzN0EgLyog
SFRNTDVUcmVlQnVpbGRlci5oICovLAogCQkJCTk3RThCM0MyMTFBMjg5MDgwMDE2OTQwOSAvKiBI
VE1MNVRva2VuLmggKi8sCiAJCQkJQTg3MTAzODgxMUEyOTQ3MDAwREJENTBFIC8qIEhUTUw1VG9r
ZW5pemVyLmNwcCAqLywKIAkJCQlBODcxMDM4OTExQTI5NDcwMDBEQkQ1MEUgLyogSFRNTDVUb2tl
bml6ZXIuaCAqLywKQEAgLTE5Mjk3LDYgKzE5MzAzLDcgQEAKIAkJCQkyRTNGQUEwOTExQTM2QkYx
MDA1NzY2MjQgLyogQ3Jvc3NUaHJlYWRUYXNrLmggaW4gSGVhZGVycyAqLywKIAkJCQk1OUE4RjFE
NjExQTY5NTEzMDAxQUMzNEEgLyogRGV2aWNlT3JpZW50YXRpb24uaCBpbiBIZWFkZXJzICovLAog
CQkJCTU5QThGMUQ4MTFBNjk1MjAwMDFBQzM0QSAvKiBEZXZpY2VPcmllbnRhdGlvbkNsaWVudC5o
IGluIEhlYWRlcnMgKi8sCisJCQkJQTg3OUM2MjYxMUE5RDFGNzAwNTkyMzdBIC8qIEhUTUw1VHJl
ZUJ1aWxkZXIuaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50
UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtMjE1ODMsNiArMjE1OTAsNyBAQAogCQkJCTU5
QTg1RUEyMTE5RDY4RDkwMERFRjFFRiAvKiBEZXZpY2VPcmllbnRhdGlvbkV2ZW50LmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTU5QTg2MDA2MTE5REFGN0YwMERFRjFFRiAvKiBKU0RldmljZU9yaWVu
dGF0aW9uRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTlBOEYxRDQxMUE2OTUwODAwMUFD
MzRBIC8qIERldmljZU9yaWVudGF0aW9uLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUE4NzlDNjI1
MTFBOUQxRjcwMDU5MjM3QSAvKiBIVE1MNVRyZWVCdWlsZGVyLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9Owpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUw1VG9rZW5pemVyLmNwcCBiL1dlYkNvcmUvaHRt
bC9IVE1MNVRva2VuaXplci5jcHAKaW5kZXggZGFlN2Y1MDhjZWUzNDhiNTE3MTA3ODAwOGM5N2Jh
N2YzZDFhNTJjNC4uNGZhMmE4YmQwN2I1NDExNzMyYzVmNzE1MjBlMzJjZDMzNjZlN2M2YyAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUw1VG9rZW5pemVyLmNwcAorKysgYi9XZWJDb3JlL2h0
bWwvSFRNTDVUb2tlbml6ZXIuY3BwCkBAIC0yOCw1MCArMjgsMTYgQEAKIAogI2luY2x1ZGUgIkhU
TUw1TGV4ZXIuaCIKICNpbmNsdWRlICJIVE1MNVRva2VuLmgiCi0jaW5jbHVkZSAiSFRNTERvY3Vt
ZW50LmgiCi0jaW5jbHVkZSAiSFRNTFBhcnNlci5oIgotI2luY2x1ZGUgIkhUTUxUb2tlbml6ZXIu
aCIKLSNpbmNsdWRlICJBdHRyaWJ1dGUuaCIKKyNpbmNsdWRlICJIVE1MNVRyZWVCdWlsZGVyLmgi
CiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1z
dGF0aWMgdm9pZCBjb252ZXJ0VG9PbGRTdHlsZShIVE1MNVRva2VuJiB0b2tlbiwgVG9rZW4mIG9s
ZFN0eWxlVG9rZW4pCi17Ci0gICAgc3dpdGNoICh0b2tlbi50eXBlKCkpIHsKLSAgICBjYXNlIEhU
TUw1VG9rZW46OlN0YXJ0VGFnOgotICAgIGNhc2UgSFRNTDVUb2tlbjo6RW5kVGFnOiB7Ci0gICAg
ICAgIG9sZFN0eWxlVG9rZW4uYmVnaW5UYWcgPSAodG9rZW4udHlwZSgpID09IEhUTUw1VG9rZW46
OlN0YXJ0VGFnKTsKLSAgICAgICAgb2xkU3R5bGVUb2tlbi5zZWxmQ2xvc2luZ1RhZyA9IHRva2Vu
LnNlbGZDbG9zaW5nKCk7Ci0gICAgICAgIG9sZFN0eWxlVG9rZW4udGFnTmFtZSA9IHRva2VuLm5h
bWUoKTsKLSAgICAgICAgSFRNTDVUb2tlbjo6QXR0cmlidXRlTGlzdCYgYXR0cmlidXRlcyA9IHRv
a2VuLmF0dHJpYnV0ZXMoKTsKLSAgICAgICAgZm9yIChIVE1MNVRva2VuOjpBdHRyaWJ1dGVMaXN0
OjppdGVyYXRvciBpdGVyID0gYXR0cmlidXRlcy5iZWdpbigpOwotICAgICAgICAgICAgIGl0ZXIg
IT0gYXR0cmlidXRlcy5lbmQoKTsgKytpdGVyKSB7Ci0gICAgICAgICAgICBpZiAoIWl0ZXItPm1f
bmFtZS5pc0VtcHR5KCkpIHsKLSAgICAgICAgICAgICAgICBTdHJpbmcgbmFtZSA9IFN0cmluZyhT
dHJpbmdJbXBsOjphZG9wdChpdGVyLT5tX25hbWUpKTsKLSAgICAgICAgICAgICAgICBTdHJpbmcg
dmFsdWUgPSBTdHJpbmcoU3RyaW5nSW1wbDo6YWRvcHQoaXRlci0+bV92YWx1ZSkpOwotICAgICAg
ICAgICAgICAgIFJlZlB0cjxBdHRyaWJ1dGU+IG1hcHBlZEF0dHJpYnV0ZSA9IEF0dHJpYnV0ZTo6
Y3JlYXRlTWFwcGVkKG5hbWUsIHZhbHVlKTsKLSAgICAgICAgICAgICAgICBpZiAoIW9sZFN0eWxl
VG9rZW4uYXR0cnMpCi0gICAgICAgICAgICAgICAgICAgIG9sZFN0eWxlVG9rZW4uYXR0cnMgPSBO
YW1lZE1hcHBlZEF0dHJNYXA6OmNyZWF0ZSgpOwotICAgICAgICAgICAgICAgIG9sZFN0eWxlVG9r
ZW4uYXR0cnMtPmluc2VydEF0dHJpYnV0ZShtYXBwZWRBdHRyaWJ1dGUucmVsZWFzZSgpLCBmYWxz
ZSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgYnJlYWs7Ci0gICAgfQotICAg
IGNhc2UgSFRNTDVUb2tlbjo6Q2hhcmFjdGVyOgotICAgICAgICBvbGRTdHlsZVRva2VuLnRhZ05h
bWUgPSB0ZXh0QXRvbTsKLSAgICAgICAgb2xkU3R5bGVUb2tlbi50ZXh0ID0gdG9rZW4uY2hhcmFj
dGVycygpLmltcGwoKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgZGVmYXVsdDoKLSAgICAgICAgbm90
SW1wbGVtZW50ZWQoKTsKLSAgICB9Ci19Ci0KIEhUTUw1VG9rZW5pemVyOjpIVE1MNVRva2VuaXpl
cihIVE1MRG9jdW1lbnQqIGRvYywgYm9vbCByZXBvcnRFcnJvcnMpCiAgICAgOiBUb2tlbml6ZXIo
KQogICAgICwgbV9kb2MoZG9jKQogICAgICwgbV9sZXhlcihuZXcgSFRNTDVMZXhlcikKLSAgICAs
IG1fcGFyc2VyKG5ldyBIVE1MUGFyc2VyKGRvYywgcmVwb3J0RXJyb3JzKSkKKyAgICAsIG1fcGFy
c2VyKG5ldyBIVE1MNVRyZWVCdWlsZGVyKGRvYywgcmVwb3J0RXJyb3JzKSkKIHsKICAgICBiZWdp
bigpOwogfQpAQCAtOTEsMjQgKzU3LDcgQEAgdm9pZCBIVE1MNVRva2VuaXplcjo6d3JpdGUoY29u
c3QgU2VnbWVudGVkU3RyaW5nJiBzb3VyY2UsIGJvb2wpCiAgICAgSFRNTDVUb2tlbiB0b2tlbjsK
ICAgICB3aGlsZSAoIW1fc291cmNlLmlzRW1wdHkoKSkgewogICAgICAgICBpZiAobV9sZXhlci0+
bmV4dFRva2VuKG1fc291cmNlLCB0b2tlbikpIHsKLSAgICAgICAgICAgIC8vIGh0dHA6Ly93d3cu
d2hhdHdnLm9yZy9zcGVjcy93ZWItYXBwcy9jdXJyZW50LXdvcmsvI3RyZWUtY29uc3RydWN0aW9u
Ci0gICAgICAgICAgICAvLyBXZSBuZWVkIHRvIGFkZCBjb2RlIHRvIHRoZSBwYXJzZXIgaW4gb3Jk
ZXIgdG8gdW5kZXJzdGFuZAotICAgICAgICAgICAgLy8gSFRNTDVUb2tlbiBvYmplY3RzLiAgVGhl
IG9sZCBIVE1MIGNvZGVwYXRoIGRvZXMgbm90IGhhdmUgYSBuaWNlCi0gICAgICAgICAgICAvLyBz
ZXBhcmF0aW9uIGJldHdlZW4gdGhlIHBhcnNlciBsb2dpYyBhbmQgdG9rZW5pemVyIGxvZ2ljIGxp
a2UKLSAgICAgICAgICAgIC8vIHRoZSBIVE1MNSBjb2RlcGF0aCBzaG91bGQuICBUaGUgY2FsbCBz
aG91bGQgbG9vayBzb21ldGhpbmcgbGlrZToKLSAgICAgICAgICAgIC8vIG1fcGFyc2VyLT5jb25z
dHJ1Y3RUcmVlRnJvbVRva2VuKHRva2VuKTsKLSAgICAgICAgICAgIGlmICh0b2tlbi50eXBlKCkg
PT0gSFRNTDVUb2tlbjo6U3RhcnRUYWcgJiYgdG9rZW4ubmFtZSgpID09ICJzY3JpcHQiKSB7Ci0g
ICAgICAgICAgICAgICAgLy8gRklYTUU6IFRoaXMgd29yayBpcyBzdXBwb3NlZCB0byBiZSBkb25l
IGJ5IHRoZSBwYXJzZXIsIGJ1dAotICAgICAgICAgICAgICAgIC8vIHdlIHdhbnQgdG8ga2VlcCB1
c2luZyB0aGUgb2xkIHBhcnNlciBmb3Igbm93LCBzbyB3ZSBoYXZlIHRvCi0gICAgICAgICAgICAg
ICAgLy8gZG8gdGhpcyB3b3JrIG1hbnVhbGx5LgotICAgICAgICAgICAgICAgIG1fbGV4ZXItPnNl
dFN0YXRlKEhUTUw1TGV4ZXI6OlNjcmlwdERhdGFTdGF0ZSk7Ci0gICAgICAgICAgICB9ICAgICAg
ICAgICAKLSAgICAgICAgICAgIC8vIEZvciBub3csIHdlIHRyYW5zbGF0ZSBpbnRvIGFuIG9sZC1z
dHlsZSB0b2tlbiBmb3IgdGVzdGluZy4KLSAgICAgICAgICAgIFRva2VuIG9sZFN0eWxlVG9rZW47
Ci0gICAgICAgICAgICBjb252ZXJ0VG9PbGRTdHlsZSh0b2tlbiwgb2xkU3R5bGVUb2tlbik7Ci0K
LSAgICAgICAgICAgIG1fcGFyc2VyLT5wYXJzZVRva2VuKCZvbGRTdHlsZVRva2VuKTsKLQorICAg
ICAgICAgICAgbV9wYXJzZXItPmNvbnN0cnVjdFRyZWVGcm9tVG9rZW4odG9rZW4pOwogICAgICAg
ICAgICAgdG9rZW4uY2xlYXIoKTsKICAgICAgICAgfQogICAgIH0KZGlmZiAtLWdpdCBhL1dlYkNv
cmUvaHRtbC9IVE1MNVRva2VuaXplci5oIGIvV2ViQ29yZS9odG1sL0hUTUw1VG9rZW5pemVyLmgK
aW5kZXggM2YyZGFmZTEyOGY0MGQxYjA0OTBiY2Q1MzAyNWRmNGY2Zjc5NGJiNi4uZDFhMjQ3NTQ2
OGFiM2NiYTYxZjE4MTExM2ZkZWMzN2Y4YTRhNThmMiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1s
L0hUTUw1VG9rZW5pemVyLmgKKysrIGIvV2ViQ29yZS9odG1sL0hUTUw1VG9rZW5pemVyLmgKQEAg
LTM1LDcgKzM1LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBEb2N1bWVudDsKIGNs
YXNzIEhUTUxEb2N1bWVudDsKLWNsYXNzIEhUTUxQYXJzZXI7CitjbGFzcyBIVE1MNVRyZWVCdWls
ZGVyOwogY2xhc3MgSFRNTDVMZXhlcjsKIAogLy8gRklYTUU6IFRoaXMgaXMgdGhlIHdyb25nIGxh
eWVyIHRvIGhvb2sgaW4gdGhlIG5ldyBIVE1MIDUgTGV4ZXIsCkBAIC02MSw3ICs2MSw3IEBAIHBy
aXZhdGU6CiAKICAgICBEb2N1bWVudCogbV9kb2M7CiAgICAgT3duUHRyPEhUTUw1TGV4ZXI+IG1f
bGV4ZXI7Ci0gICAgT3duUHRyPEhUTUxQYXJzZXI+IG1fcGFyc2VyOworICAgIE93blB0cjxIVE1M
NVRyZWVCdWlsZGVyPiBtX3BhcnNlcjsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRt
bC9IVE1MNVRyZWVCdWlsZGVyLmNwcCBiL1dlYkNvcmUvaHRtbC9IVE1MNVRyZWVCdWlsZGVyLmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4xZGZlNGZlNzg2ZGM2MjVjYjE4ZjJjZDdkMTUzOTgxYWQ4OTJhZDg1Ci0t
LSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9odG1sL0hUTUw1VHJlZUJ1aWxkZXIuY3BwCkBAIC0w
LDAgKzEsMTA1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSwgSW5jLiBBbGwg
UmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgR09PR0xFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBHT09H
TEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
KyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAK
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiSFRNTDVUcmVlQnVpbGRlci5o
IgorCisjaW5jbHVkZSAiQXR0cmlidXRlLmgiCisjaW5jbHVkZSAiSFRNTDVMZXhlci5oIgorI2lu
Y2x1ZGUgIkhUTUw1VG9rZW4uaCIKKyNpbmNsdWRlICJIVE1MRG9jdW1lbnQuaCIKKyNpbmNsdWRl
ICJIVE1MUGFyc2VyLmgiCisjaW5jbHVkZSAiSFRNTFRva2VuaXplci5oIgorI2luY2x1ZGUgIk5v
dEltcGxlbWVudGVkLmgiCisKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitIVE1MNVRyZWVCdWls
ZGVyOjpIVE1MNVRyZWVCdWlsZGVyKEhUTUw1TGV4ZXIqIGxleGVyLCBIVE1MRG9jdW1lbnQqIGRv
Y3VtZW50LCBib29sIHJlcG9ydEVycm9ycykKKyAgICA6IG1fZG9jdW1lbnQoZG9jdW1lbnQpCisg
ICAgLCBtX3JlcG9ydEVycm9ycyhyZXBvcnRFcnJvcnMpCisgICAgLCBtX2xleGVyKGxleGVyKQor
ICAgICwgbV9sZWdhY3lIVE1MUGFyc2VyKG5ldyBIVE1MUGFyc2VyKGRvY3VtZW50LCByZXBvcnRF
cnJvcnMpKQoreworfQorCitzdGF0aWMgdm9pZCBjb252ZXJ0VG9PbGRTdHlsZShIVE1MNVRva2Vu
JiB0b2tlbiwgVG9rZW4mIG9sZFN0eWxlVG9rZW4pCit7CisgICAgc3dpdGNoICh0b2tlbi50eXBl
KCkpIHsKKyAgICBjYXNlIEhUTUw1VG9rZW46OlN0YXJ0VGFnOgorICAgIGNhc2UgSFRNTDVUb2tl
bjo6RW5kVGFnOiB7CisgICAgICAgIG9sZFN0eWxlVG9rZW4uYmVnaW5UYWcgPSAodG9rZW4udHlw
ZSgpID09IEhUTUw1VG9rZW46OlN0YXJ0VGFnKTsKKyAgICAgICAgb2xkU3R5bGVUb2tlbi5zZWxm
Q2xvc2luZ1RhZyA9IHRva2VuLnNlbGZDbG9zaW5nKCk7CisgICAgICAgIG9sZFN0eWxlVG9rZW4u
dGFnTmFtZSA9IHRva2VuLm5hbWUoKTsKKyAgICAgICAgSFRNTDVUb2tlbjo6QXR0cmlidXRlTGlz
dCYgYXR0cmlidXRlcyA9IHRva2VuLmF0dHJpYnV0ZXMoKTsKKyAgICAgICAgZm9yIChIVE1MNVRv
a2VuOjpBdHRyaWJ1dGVMaXN0OjppdGVyYXRvciBpdGVyID0gYXR0cmlidXRlcy5iZWdpbigpOwor
ICAgICAgICAgICAgIGl0ZXIgIT0gYXR0cmlidXRlcy5lbmQoKTsgKytpdGVyKSB7CisgICAgICAg
ICAgICBpZiAoIWl0ZXItPm1fbmFtZS5pc0VtcHR5KCkpIHsKKyAgICAgICAgICAgICAgICBTdHJp
bmcgbmFtZSA9IFN0cmluZyhTdHJpbmdJbXBsOjphZG9wdChpdGVyLT5tX25hbWUpKTsKKyAgICAg
ICAgICAgICAgICBTdHJpbmcgdmFsdWUgPSBTdHJpbmcoU3RyaW5nSW1wbDo6YWRvcHQoaXRlci0+
bV92YWx1ZSkpOworICAgICAgICAgICAgICAgIFJlZlB0cjxBdHRyaWJ1dGU+IG1hcHBlZEF0dHJp
YnV0ZSA9IEF0dHJpYnV0ZTo6Y3JlYXRlTWFwcGVkKG5hbWUsIHZhbHVlKTsKKyAgICAgICAgICAg
ICAgICBpZiAoIW9sZFN0eWxlVG9rZW4uYXR0cnMpCisgICAgICAgICAgICAgICAgICAgIG9sZFN0
eWxlVG9rZW4uYXR0cnMgPSBOYW1lZE1hcHBlZEF0dHJNYXA6OmNyZWF0ZSgpOworICAgICAgICAg
ICAgICAgIG9sZFN0eWxlVG9rZW4uYXR0cnMtPmluc2VydEF0dHJpYnV0ZShtYXBwZWRBdHRyaWJ1
dGUucmVsZWFzZSgpLCBmYWxzZSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAg
YnJlYWs7CisgICAgfQorICAgIGNhc2UgSFRNTDVUb2tlbjo6Q2hhcmFjdGVyOgorICAgICAgICBv
bGRTdHlsZVRva2VuLnRhZ05hbWUgPSB0ZXh0QXRvbTsKKyAgICAgICAgb2xkU3R5bGVUb2tlbi50
ZXh0ID0gdG9rZW4uY2hhcmFjdGVycygpLmltcGwoKTsKKyAgICAgICAgYnJlYWs7CisgICAgZGVm
YXVsdDoKKyAgICAgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICB9Cit9CisKK1Bhc3NSZWZQdHI8
Tm9kZT4gSFRNTDVUcmVlQnVpbGRlcjo6cGFzc1Rva2VuVG9MZWdhY3lQYXJzZXIoSFRNTDVUb2tl
biYgdG9rZW4pCit7CisgICAgaWYgKHRva2VuLnR5cGUoKSA9PSBIVE1MNVRva2VuOjpTdGFydFRh
ZyAmJiB0b2tlbi5uYW1lKCkgPT0gInNjcmlwdCIpIHsKKyAgICAgICAgLy8gRklYTUU6IFRoaXMg
d29yayBpcyBzdXBwb3NlZCB0byBiZSBkb25lIGJ5IHRoZSBwYXJzZXIsIGJ1dAorICAgICAgICAv
LyB3ZSB3YW50IHRvIGtlZXAgdXNpbmcgdGhlIG9sZCBwYXJzZXIgZm9yIG5vdywgc28gd2UgaGF2
ZSB0bworICAgICAgICAvLyBkbyB0aGlzIHdvcmsgbWFudWFsbHkuCisgICAgICAgIG1fbGV4ZXIt
PnNldFN0YXRlKEhUTUw1TGV4ZXI6OlNjcmlwdERhdGFTdGF0ZSk7CisgICAgfSAgICAgICAgICAg
CisgICAgLy8gRm9yIG5vdywgd2UgdHJhbnNsYXRlIGludG8gYW4gb2xkLXN0eWxlIHRva2VuIGZv
ciB0ZXN0aW5nLgorICAgIFRva2VuIG9sZFN0eWxlVG9rZW47CisgICAgY29udmVydFRvT2xkU3R5
bGUodG9rZW4sIG9sZFN0eWxlVG9rZW4pOworCisgICAgcmV0dXJuIG1fbGVnYWN5SFRNTFBhcnNl
ci0+cGFyc2VUb2tlbigmb2xkU3R5bGVUb2tlbik7Cit9CisKK1Bhc3NSZWZQdHI8Tm9kZT4gSFRN
TDVUcmVlQnVpbGRlcjo6Y29uc3RydWN0VHJlZUZyb21Ub2tlbihIVE1MNVRva2VuJiB0b2tlbikK
K3sKKyAgICByZXR1cm4gcGFzc1Rva2VuVG9MZWdhY3lQYXJzZXIodG9rZW4pOworICAgIC8vIE91
ciBIVE1MNSBwYXJzZXIgaW1wbGVtZW50YXRpb24gd2lsbCBnbyBoZXJlIGluIGEgc2VwYXJhdGUg
cGF0Y2guCit9CisKK3ZvaWQgSFRNTDVUcmVlQnVpbGRlcjo6ZmluaXNoZWQoKQoreworICAgIG1f
bGVnYWN5SFRNTFBhcnNlci0+ZmluaXNoZWQoKTsKK30KKworfQpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9odG1sL0hUTUw1VHJlZUJ1aWxkZXIuaCBiL1dlYkNvcmUvaHRtbC9IVE1MNVRyZWVCdWlsZGVy
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMzc5YjA4ODM4YjliN2IzZmNhMGI4NDNkODcwMmY4OTRiNGM5ZjU5Nwot
LS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MNVRyZWVCdWlsZGVyLmgKQEAgLTAs
MCArMSw2NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUsIEluYy4gQWxsIFJp
Z2h0cyBSZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEdPT0dMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgR09PR0xF
IElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisg
KiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisg
Ki8KKworI2lmbmRlZiBIVE1MNVRyZWVCdWlsZGVyX2gKKyNkZWZpbmUgSFRNTDVUcmVlQnVpbGRl
cl9oCisKKyNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KKyNpbmNsdWRlIDx3dGYvT3duUHRy
Lmg+CisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgewor
Y2xhc3MgRG9jdW1lbnQ7CitjbGFzcyBIVE1MNUxleGVyOworY2xhc3MgSFRNTDVUb2tlbjsKK2Ns
YXNzIEhUTUxEb2N1bWVudDsKK2NsYXNzIEhUTUxQYXJzZXI7CitjbGFzcyBOb2RlOworCitjbGFz
cyBIVE1MNVRyZWVCdWlsZGVyIDogcHVibGljIE5vbmNvcHlhYmxlIHsKK3B1YmxpYzoKKyAgICBI
VE1MNVRyZWVCdWlsZGVyKEhUTUw1TGV4ZXIqLCBIVE1MRG9jdW1lbnQqLCBib29sIHJlcG9ydEVy
cm9ycyk7CisKKyAgICAvLyBUaGUgdG9rZW4gcmVhbGx5IHNob3VsZCBiZSBwYXNzZWQgYXMgYSBj
b25zdCYgc2luY2UgaXQncyBuZXZlciBtb2RpZmllZC4KKyAgICBQYXNzUmVmUHRyPE5vZGU+IGNv
bnN0cnVjdFRyZWVGcm9tVG9rZW4oSFRNTDVUb2tlbiYpOworICAgIHZvaWQgZmluaXNoZWQoKTsK
KworcHJpdmF0ZToKKyAgICBQYXNzUmVmUHRyPE5vZGU+IHBhc3NUb2tlblRvTGVnYWN5UGFyc2Vy
KEhUTUw1VG9rZW4mKTsKKworICAgIC8vIFdlIGNvdWxkIGdyYWIgbV9kb2N1bWVudCBvZmYgdGhl
IGxleGVyIGlmIHdlIHdhbnRlZCB0byBzYXZlIHNwYWNlLgorICAgIERvY3VtZW50KiBtX2RvY3Vt
ZW50OworICAgIGJvb2wgbV9yZXBvcnRFcnJvcnM7CisgICAgLy8gSFRNTDUgc3BlYyByZXF1aXJl
cyB0aGF0IHdlIGJlIGFibGUgdG8gY2hhbmdlIHRoZSBzdGF0ZSBvZiB0aGUgbGV4ZXIKKyAgICAv
LyBmcm9tIHdpdGhpbiBwYXJzZXIgYWN0aW9ucy4KKyAgICBIVE1MNUxleGVyKiBtX2xleGVyOwor
CisgICAgLy8gV2UncmUgcmUtdXNpbmcgbG9naWMgZnJvbSB0aGUgb2xkIEhUTUxQYXJzZXIgd2hp
bGUgdGhpcyBjbGFzcyBpcyBiZWluZyB3cml0dGVuLgorICAgIE93blB0cjxIVE1MUGFyc2VyPiBt
X2xlZ2FjeUhUTUxQYXJzZXI7Cit9OworCit9CisKKyNlbmRpZgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>56835</attachid>
            <date>2010-05-23 15:53:25 -0700</date>
            <delta_ts>2010-05-23 16:40:00 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-39572-20100523155323.patch</filename>
            <type>text/plain</type>
            <size>17573</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
MWQ1NWY3ZjdmYzA0N2NlZTBkMDFjODU1NTJlMTI5ZTU4ODRkZmVkZS4uMWQ1ZTJmNjdkMTZmMjlj
MmUxOTRiN2I2ZjIzMjI4YTI4OWZmNzk1NCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMiBAQAorMjAxMC0wNS0yMyAgRXJp
YyBTZWlkZWwgIDxlcmljQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBC
YXJ0aC4KKworICAgICAgICBBZGQgbmV3IEhUTUw1VHJlZUJ1aWxkZXIgY2xhc3MgdG8gaG9sZCB0
aGUgdHJlZSBidWlsZGVyIHNlY3Rpb24gb2YgdGhlIEhUTUw1IHBhcnNpbmcgc3BlYworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mzk1NzIKKworICAgICAg
ICBXZSd2ZSBiZWVuIHdvcmtpbmcgb24gdGhlIHRva2VuaXphdGlvbiAobGV4aW5nKSBzZWN0aW9u
IG9mIHRoZSBIVE1MNQorICAgICAgICBzcGVjIHVudGlsIG5vdyBhbmQgbGVhbmluZyBvbiB0aGUg
b2xkIEhUTUxQYXJzZXIgZm9yIHRyZWUgYnVpbGRpbmcuCisgICAgICAgIFdlIG5lZWQgdG8gc3Rh
cnQgd3JpdGluZyBtb3JlIG9mIHRoZSB0cmVlIGJ1aWxkaW5nIHNlY3Rpb25zIG9mIHRoZSBzcGVj
LAorICAgICAgICBidXQgdG8gZG8gdGhhdCB3ZSBuZWVkIGEgcGxhY2UgdG8gcHV0IHRoZSBuZXcg
Y29kZS4KKworICAgICAgICBUaGlzIHBhdGNoIG1vdmVzIG91ciBvbGQtdG8tbmV3IGNvbnZlcnNp
b24gaGFja3Mgb3V0IG9mIEhUTUw1VG9rZW5pemVyCisgICAgICAgIChvdXIgVG9rZW5pemVyLmgg
aW1wbGVtZW50YXRpb24pIGFuZCBpbnRvIEhUTUw1VHJlZUJ1aWxkZXIuCisgICAgICAgIEZvbGxv
dy11cCBwYXRjaGVzIHdpbGwgYWRkIG5ldyBIVE1MNSB0cmVlIGJ1aWxkaW5nIGNvZGUgdG8gdGhp
cyBmaWxlCisgICAgICAgIGFuZCB3aWxsIGFsbG93IHVzIHRvIHN3aXRjaCBiZXR3ZWVuIG9sZCBh
bmQgbmV3IHBhcnNlci90cmVlYnVpbGRlcgorICAgICAgICBpbXBsZW1lbnRhdGlvbnMuCisKKyAg
ICAgICAgTm8gY2hhbmdlIGluIGJlaGF2aW9yLCB0aHVzIG5vIG5ldyB0ZXN0cy4KKworICAgICAg
ICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBodG1sL0hU
TUw1VG9rZW5pemVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUw1VG9rZW5pemVyOjpIVE1M
NVRva2VuaXplcik6CisgICAgICAgIChXZWJDb3JlOjpIVE1MNVRva2VuaXplcjo6d3JpdGUpOgor
ICAgICAgICAgLSBDYWxsIHRoZSBuZXcgSFRNTDVUcmVlQnVpbGRlciBjb2RlLgorICAgICAgICAq
IGh0bWwvSFRNTDVUb2tlbml6ZXIuaDoKKyAgICAgICAgKiBodG1sL0hUTUw1VHJlZUJ1aWxkZXIu
Y3BwOiBBZGRlZC4KKyAgICAgICAgKiBodG1sL0hUTUw1VHJlZUJ1aWxkZXIuaDogQWRkZWQuCisK
IDIwMTAtMDUtMjMgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KIAogICAgICAgICBS
ZXZpZXdlZCBieSBFcmljIFNlaWRlbC4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKaW5kZXggMWZhZTg5Y2QxM2I4N2U1ZmVlZDQ3ZDZiZDdlZGMwOTA5YTNiMGYyNi4u
MWJhZjkzYTRkZjJiYTMyNzM3Y2Y3MzU3OTM1ODk5NmRhZjgwZGM5YyAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTMwMDgsNiArMzAwOCw4IEBACiAJCUE4
NzFERkUzMEExNTM3NkIwMEIxMkE2OCAvKiBSZW5kZXJSZXBsYWNlZC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTg3MURGREYwQTE1Mzc2QjAwQjEyQTY4
IC8qIFJlbmRlclJlcGxhY2VkLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJQTg3MURGRTQwQTE1Mzc2QjAwQjEyQTY4IC8qIFJlbmRlcldpZGdldC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTg3MURGRTAw
QTE1Mzc2QjAwQjEyQTY4IC8qIFJlbmRlcldpZGdldC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUE4NzFERkU1MEExNTM3NkIwMEIxMkE2OCAvKiBS
ZW5kZXJXaWRnZXQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQTg3MURGRTEwQTE1Mzc2QjAwQjEyQTY4IC8qIFJlbmRlcldpZGdldC5jcHAgKi87IH07
CisJCUE4NzlDNjI1MTFBOUQxRjcwMDU5MjM3QSAvKiBIVE1MNVRyZWVCdWlsZGVyLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4NzlDNjIzMTFBOUQx
RjcwMDU5MjM3QSAvKiBIVE1MNVRyZWVCdWlsZGVyLmNwcCAqLzsgfTsKKwkJQTg3OUM2MjYxMUE5
RDFGNzAwNTkyMzdBIC8qIEhUTUw1VHJlZUJ1aWxkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4NzlDNjI0MTFBOUQxRjcwMDU5MjM3QSAvKiBIVE1M
NVRyZWVCdWlsZGVyLmggKi87IH07CiAJCUE4ODNERjI3MEYzRDA0NUQwMEYxOUJGNiAvKiBWaXNp
YmxlU2VsZWN0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEE4ODNERjI1MEYzRDA0NUQwMEYxOUJGNiAvKiBWaXNpYmxlU2VsZWN0aW9uLmNwcCAq
LzsgfTsKIAkJQTg4M0RGMjgwRjNEMDQ1RDAwRjE5QkY2IC8qIFZpc2libGVTZWxlY3Rpb24uaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4ODNERjI2MEYz
RDA0NUQwMEYxOUJGNiAvKiBWaXNpYmxlU2VsZWN0aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQTg4QUQ1MkYwOTUyNEI5MjAwMUREMTk2IC8q
IFF1YXJ0ekNvcmUuZnJhbWV3b3JrIGluIEZyYW1ld29ya3MgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQTg1RDdBMkYwODc5RUJBOTAwNkE5MTcyIC8qIFF1YXJ0ekNvcmUuZnJh
bWV3b3JrICovOyB9OwpAQCAtODQzNSw2ICs4NDM3LDggQEAKIAkJQTg3MURGREYwQTE1Mzc2QjAw
QjEyQTY4IC8qIFJlbmRlclJlcGxhY2VkLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBSZW5kZXJSZXBsYWNlZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBODcx
REZFMDBBMTUzNzZCMDBCMTJBNjggLyogUmVuZGVyV2lkZ2V0LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBSZW5kZXJXaWRnZXQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJQTg3MURGRTEwQTE1Mzc2QjAwQjEyQTY4IC8qIFJlbmRlcldpZGdldC5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVuZGVyV2lkZ2V0LmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTg3OUM2MjMxMUE5RDFGNzAwNTkyMzdBIC8qIEhUTUw1
VHJlZUJ1aWxkZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSFRN
TDVUcmVlQnVpbGRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUE4NzlDNjI0
MTFBOUQxRjcwMDU5MjM3QSAvKiBIVE1MNVRyZWVCdWlsZGVyLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEhUTUw1VHJlZUJ1aWxkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQTg4M0RGMjUwRjNEMDQ1RDAwRjE5QkY2IC8qIFZpc2libGVTZWxlY3Rpb24uY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVmlzaWJsZVNlbGVjdGlvbi5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4ODNERjI2MEYzRDA0NUQwMEYxOUJG
NiAvKiBWaXNpYmxlU2VsZWN0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFZpc2libGVTZWxlY3Rpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTg4REQ0
ODYwQjQ2MjlBMzAwQzAyOTkwIC8qIFBhdGhUcmF2ZXJzYWxTdGF0ZS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBQYXRoVHJhdmVyc2FsU3RhdGUuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKQEAgLTEzMzMwLDYgKzEzMzM0LDggQEAKIAkJCQlBODEzNkQzNjA5NzNBOEU3
MDBENzQ0NjMgLyogRm9ybURhdGFMaXN0LmggKi8sCiAJCQkJOTdFOEIzNTQxMUEyM0NFMjAwMTY5
NDA5IC8qIEhUTUw1TGV4ZXIuY3BwICovLAogCQkJCTk3RThCMzU1MTFBMjNDRTIwMDE2OTQwOSAv
KiBIVE1MNUxleGVyLmggKi8sCisJCQkJQTg3OUM2MjMxMUE5RDFGNzAwNTkyMzdBIC8qIEhUTUw1
VHJlZUJ1aWxkZXIuY3BwICovLAorCQkJCUE4NzlDNjI0MTFBOUQxRjcwMDU5MjM3QSAvKiBIVE1M
NVRyZWVCdWlsZGVyLmggKi8sCiAJCQkJOTdFOEIzQzIxMUEyODkwODAwMTY5NDA5IC8qIEhUTUw1
VG9rZW4uaCAqLywKIAkJCQlBODcxMDM4ODExQTI5NDcwMDBEQkQ1MEUgLyogSFRNTDVUb2tlbml6
ZXIuY3BwICovLAogCQkJCUE4NzEwMzg5MTFBMjk0NzAwMERCRDUwRSAvKiBIVE1MNVRva2VuaXpl
ci5oICovLApAQCAtMTkyOTcsNiArMTkzMDMsNyBAQAogCQkJCTJFM0ZBQTA5MTFBMzZCRjEwMDU3
NjYyNCAvKiBDcm9zc1RocmVhZFRhc2suaCBpbiBIZWFkZXJzICovLAogCQkJCTU5QThGMUQ2MTFB
Njk1MTMwMDFBQzM0QSAvKiBEZXZpY2VPcmllbnRhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NTlBOEYxRDgxMUE2OTUyMDAwMUFDMzRBIC8qIERldmljZU9yaWVudGF0aW9uQ2xpZW50LmggaW4g
SGVhZGVycyAqLywKKwkJCQlBODc5QzYyNjExQTlEMUY3MDA1OTIzN0EgLyogSFRNTDVUcmVlQnVp
bGRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0
cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBAIC0yMTU4Myw2ICsyMTU5MCw3IEBACiAJCQkJNTlBODVF
QTIxMTlENjhEOTAwREVGMUVGIC8qIERldmljZU9yaWVudGF0aW9uRXZlbnQuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJNTlBODYwMDYxMTlEQUY3RjAwREVGMUVGIC8qIEpTRGV2aWNlT3JpZW50YXRp
b25FdmVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1OUE4RjFENDExQTY5NTA4MDAxQUMzNEEg
LyogRGV2aWNlT3JpZW50YXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQTg3OUM2MjUxMUE5
RDFGNzAwNTkyMzdBIC8qIEhUTUw1VHJlZUJ1aWxkZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkp
OwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CmRpZmYg
LS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTDVUb2tlbml6ZXIuY3BwIGIvV2ViQ29yZS9odG1sL0hU
TUw1VG9rZW5pemVyLmNwcAppbmRleCBhY2UzOGI3ZDQyMzcwNjBhNzZlZDU1YzY1ZmUyYzY4ZGIz
NWZjYzMwLi4yMDFlZDM1ZTZmMGMzZDFlZTZkZmQ4OGQwYTNjYTQ1MjA5M2ZkYTkwIDEwMDY0NAot
LS0gYS9XZWJDb3JlL2h0bWwvSFRNTDVUb2tlbml6ZXIuY3BwCisrKyBiL1dlYkNvcmUvaHRtbC9I
VE1MNVRva2VuaXplci5jcHAKQEAgLTI4LDYwICsyOCwxNiBAQAogCiAjaW5jbHVkZSAiSFRNTDVM
ZXhlci5oIgogI2luY2x1ZGUgIkhUTUw1VG9rZW4uaCIKLSNpbmNsdWRlICJIVE1MRG9jdW1lbnQu
aCIKLSNpbmNsdWRlICJIVE1MUGFyc2VyLmgiCi0jaW5jbHVkZSAiSFRNTFRva2VuaXplci5oIgot
I2luY2x1ZGUgIkF0dHJpYnV0ZS5oIgorI2luY2x1ZGUgIkhUTUw1VHJlZUJ1aWxkZXIuaCIKICNp
bmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXN0YXRp
YyB2b2lkIGNvbnZlcnRUb09sZFN0eWxlKEhUTUw1VG9rZW4mIHRva2VuLCBUb2tlbiYgb2xkU3R5
bGVUb2tlbikKLXsKLSAgICBzd2l0Y2ggKHRva2VuLnR5cGUoKSkgewotICAgIGNhc2UgSFRNTDVU
b2tlbjo6VW5pbml0aWFsaXplZDoKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAg
ICAgIGJyZWFrOwotICAgIGNhc2UgSFRNTDVUb2tlbjo6RE9DVFlQRToKLSAgICBjYXNlIEhUTUw1
VG9rZW46OkVuZE9mRmlsZToKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAg
IG5vdEltcGxlbWVudGVkKCk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgSFRNTDVUb2tlbjo6
U3RhcnRUYWc6Ci0gICAgY2FzZSBIVE1MNVRva2VuOjpFbmRUYWc6IHsKLSAgICAgICAgb2xkU3R5
bGVUb2tlbi5iZWdpblRhZyA9ICh0b2tlbi50eXBlKCkgPT0gSFRNTDVUb2tlbjo6U3RhcnRUYWcp
OwotICAgICAgICBvbGRTdHlsZVRva2VuLnNlbGZDbG9zaW5nVGFnID0gdG9rZW4uc2VsZkNsb3Np
bmcoKTsKLSAgICAgICAgb2xkU3R5bGVUb2tlbi50YWdOYW1lID0gdG9rZW4ubmFtZSgpOwotICAg
ICAgICBIVE1MNVRva2VuOjpBdHRyaWJ1dGVMaXN0JiBhdHRyaWJ1dGVzID0gdG9rZW4uYXR0cmli
dXRlcygpOwotICAgICAgICBmb3IgKEhUTUw1VG9rZW46OkF0dHJpYnV0ZUxpc3Q6Oml0ZXJhdG9y
IGl0ZXIgPSBhdHRyaWJ1dGVzLmJlZ2luKCk7Ci0gICAgICAgICAgICAgaXRlciAhPSBhdHRyaWJ1
dGVzLmVuZCgpOyArK2l0ZXIpIHsKLSAgICAgICAgICAgIGlmICghaXRlci0+bV9uYW1lLmlzRW1w
dHkoKSkgewotICAgICAgICAgICAgICAgIFN0cmluZyBuYW1lID0gU3RyaW5nKFN0cmluZ0ltcGw6
OmFkb3B0KGl0ZXItPm1fbmFtZSkpOwotICAgICAgICAgICAgICAgIFN0cmluZyB2YWx1ZSA9IFN0
cmluZyhTdHJpbmdJbXBsOjphZG9wdChpdGVyLT5tX3ZhbHVlKSk7Ci0gICAgICAgICAgICAgICAg
UmVmUHRyPEF0dHJpYnV0ZT4gbWFwcGVkQXR0cmlidXRlID0gQXR0cmlidXRlOjpjcmVhdGVNYXBw
ZWQobmFtZSwgdmFsdWUpOwotICAgICAgICAgICAgICAgIGlmICghb2xkU3R5bGVUb2tlbi5hdHRy
cykKLSAgICAgICAgICAgICAgICAgICAgb2xkU3R5bGVUb2tlbi5hdHRycyA9IE5hbWVkTWFwcGVk
QXR0ck1hcDo6Y3JlYXRlKCk7Ci0gICAgICAgICAgICAgICAgb2xkU3R5bGVUb2tlbi5hdHRycy0+
aW5zZXJ0QXR0cmlidXRlKG1hcHBlZEF0dHJpYnV0ZS5yZWxlYXNlKCksIGZhbHNlKTsKLSAgICAg
ICAgICAgIH0KLSAgICAgICAgfQotICAgICAgICBicmVhazsKLSAgICB9Ci0gICAgY2FzZSBIVE1M
NVRva2VuOjpDb21tZW50OgotICAgICAgICBvbGRTdHlsZVRva2VuLnRhZ05hbWUgPSBjb21tZW50
QXRvbTsKLSAgICAgICAgb2xkU3R5bGVUb2tlbi50ZXh0ID0gdG9rZW4uZGF0YSgpLmltcGwoKTsK
LSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBIVE1MNVRva2VuOjpDaGFyYWN0ZXI6Ci0gICAgICAg
IG9sZFN0eWxlVG9rZW4udGFnTmFtZSA9IHRleHRBdG9tOwotICAgICAgICBvbGRTdHlsZVRva2Vu
LnRleHQgPSB0b2tlbi5jaGFyYWN0ZXJzKCkuaW1wbCgpOwotICAgICAgICBicmVhazsKLSAgICB9
Ci19Ci0KIEhUTUw1VG9rZW5pemVyOjpIVE1MNVRva2VuaXplcihIVE1MRG9jdW1lbnQqIGRvYywg
Ym9vbCByZXBvcnRFcnJvcnMpCiAgICAgOiBUb2tlbml6ZXIoKQogICAgICwgbV9kb2MoZG9jKQog
ICAgICwgbV9sZXhlcihuZXcgSFRNTDVMZXhlcikKLSAgICAsIG1fcGFyc2VyKG5ldyBIVE1MUGFy
c2VyKGRvYywgcmVwb3J0RXJyb3JzKSkKKyAgICAsIG1fdHJlZUJ1aWxkZXIobmV3IEhUTUw1VHJl
ZUJ1aWxkZXIoZG9jLCByZXBvcnRFcnJvcnMpKQogewogICAgIGJlZ2luKCk7CiB9CkBAIC0xMDEs
MjQgKzU3LDcgQEAgdm9pZCBIVE1MNVRva2VuaXplcjo6d3JpdGUoY29uc3QgU2VnbWVudGVkU3Ry
aW5nJiBzb3VyY2UsIGJvb2wpCiAgICAgSFRNTDVUb2tlbiB0b2tlbjsKICAgICB3aGlsZSAoIW1f
c291cmNlLmlzRW1wdHkoKSkgewogICAgICAgICBpZiAobV9sZXhlci0+bmV4dFRva2VuKG1fc291
cmNlLCB0b2tlbikpIHsKLSAgICAgICAgICAgIC8vIGh0dHA6Ly93d3cud2hhdHdnLm9yZy9zcGVj
cy93ZWItYXBwcy9jdXJyZW50LXdvcmsvI3RyZWUtY29uc3RydWN0aW9uCi0gICAgICAgICAgICAv
LyBXZSBuZWVkIHRvIGFkZCBjb2RlIHRvIHRoZSBwYXJzZXIgaW4gb3JkZXIgdG8gdW5kZXJzdGFu
ZAotICAgICAgICAgICAgLy8gSFRNTDVUb2tlbiBvYmplY3RzLiAgVGhlIG9sZCBIVE1MIGNvZGVw
YXRoIGRvZXMgbm90IGhhdmUgYSBuaWNlCi0gICAgICAgICAgICAvLyBzZXBhcmF0aW9uIGJldHdl
ZW4gdGhlIHBhcnNlciBsb2dpYyBhbmQgdG9rZW5pemVyIGxvZ2ljIGxpa2UKLSAgICAgICAgICAg
IC8vIHRoZSBIVE1MNSBjb2RlcGF0aCBzaG91bGQuICBUaGUgY2FsbCBzaG91bGQgbG9vayBzb21l
dGhpbmcgbGlrZToKLSAgICAgICAgICAgIC8vIG1fcGFyc2VyLT5jb25zdHJ1Y3RUcmVlRnJvbVRv
a2VuKHRva2VuKTsKLSAgICAgICAgICAgIGlmICh0b2tlbi50eXBlKCkgPT0gSFRNTDVUb2tlbjo6
U3RhcnRUYWcgJiYgdG9rZW4ubmFtZSgpID09ICJzY3JpcHQiKSB7Ci0gICAgICAgICAgICAgICAg
Ly8gRklYTUU6IFRoaXMgd29yayBpcyBzdXBwb3NlZCB0byBiZSBkb25lIGJ5IHRoZSBwYXJzZXIs
IGJ1dAotICAgICAgICAgICAgICAgIC8vIHdlIHdhbnQgdG8ga2VlcCB1c2luZyB0aGUgb2xkIHBh
cnNlciBmb3Igbm93LCBzbyB3ZSBoYXZlIHRvCi0gICAgICAgICAgICAgICAgLy8gZG8gdGhpcyB3
b3JrIG1hbnVhbGx5LgotICAgICAgICAgICAgICAgIG1fbGV4ZXItPnNldFN0YXRlKEhUTUw1TGV4
ZXI6OlNjcmlwdERhdGFTdGF0ZSk7Ci0gICAgICAgICAgICB9ICAgICAgICAgICAKLSAgICAgICAg
ICAgIC8vIEZvciBub3csIHdlIHRyYW5zbGF0ZSBpbnRvIGFuIG9sZC1zdHlsZSB0b2tlbiBmb3Ig
dGVzdGluZy4KLSAgICAgICAgICAgIFRva2VuIG9sZFN0eWxlVG9rZW47Ci0gICAgICAgICAgICBj
b252ZXJ0VG9PbGRTdHlsZSh0b2tlbiwgb2xkU3R5bGVUb2tlbik7Ci0KLSAgICAgICAgICAgIG1f
cGFyc2VyLT5wYXJzZVRva2VuKCZvbGRTdHlsZVRva2VuKTsKLQorICAgICAgICAgICAgbV90cmVl
QnVpbGRlci0+Y29uc3RydWN0VHJlZUZyb21Ub2tlbih0b2tlbik7CiAgICAgICAgICAgICB0b2tl
bi5jbGVhcigpOwogICAgICAgICB9CiAgICAgfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hU
TUw1VG9rZW5pemVyLmggYi9XZWJDb3JlL2h0bWwvSFRNTDVUb2tlbml6ZXIuaAppbmRleCAzZjJk
YWZlMTI4ZjQwZDFiMDQ5MGJjZDUzMDI1ZGY0ZjZmNzk0YmI2Li5jZTg5YzRkNDA3MmVhNmUyOGZl
Yjg3NjY4MTA3OWFiNmIyZWRjMTZmIDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTDVUb2tl
bml6ZXIuaAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTDVUb2tlbml6ZXIuaApAQCAtMzUsNyArMzUs
NyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIERvY3VtZW50OwogY2xhc3MgSFRNTERv
Y3VtZW50OwotY2xhc3MgSFRNTFBhcnNlcjsKK2NsYXNzIEhUTUw1VHJlZUJ1aWxkZXI7CiBjbGFz
cyBIVE1MNUxleGVyOwogCiAvLyBGSVhNRTogVGhpcyBpcyB0aGUgd3JvbmcgbGF5ZXIgdG8gaG9v
ayBpbiB0aGUgbmV3IEhUTUwgNSBMZXhlciwKQEAgLTYxLDcgKzYxLDcgQEAgcHJpdmF0ZToKIAog
ICAgIERvY3VtZW50KiBtX2RvYzsKICAgICBPd25QdHI8SFRNTDVMZXhlcj4gbV9sZXhlcjsKLSAg
ICBPd25QdHI8SFRNTFBhcnNlcj4gbV9wYXJzZXI7CisgICAgT3duUHRyPEhUTUw1VHJlZUJ1aWxk
ZXI+IG1fdHJlZUJ1aWxkZXI7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRN
TDVUcmVlQnVpbGRlci5jcHAgYi9XZWJDb3JlL2h0bWwvSFRNTDVUcmVlQnVpbGRlci5jcHAKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNGE2ZDlhY2Q1OTg1ZTA0M2IzMjA1ZmNlMzQ3YzkyNjQ2ZDZlNmIxYQotLS0gL2Rl
di9udWxsCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MNVRyZWVCdWlsZGVyLmNwcApAQCAtMCwwICsx
LDExMyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUsIEluYy4gQWxsIFJpZ2h0
cyBSZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEdPT0dMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgR09PR0xFIElO
Qy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkhUTUw1VHJlZUJ1aWxkZXIuaCIKKwor
I2luY2x1ZGUgIkF0dHJpYnV0ZS5oIgorI2luY2x1ZGUgIkhUTUw1TGV4ZXIuaCIKKyNpbmNsdWRl
ICJIVE1MNVRva2VuLmgiCisjaW5jbHVkZSAiSFRNTERvY3VtZW50LmgiCisjaW5jbHVkZSAiSFRN
TFBhcnNlci5oIgorI2luY2x1ZGUgIkhUTUxUb2tlbml6ZXIuaCIKKyNpbmNsdWRlICJOb3RJbXBs
ZW1lbnRlZC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0hUTUw1VHJlZUJ1aWxkZXI6OkhU
TUw1VHJlZUJ1aWxkZXIoSFRNTDVMZXhlciogbGV4ZXIsIEhUTUxEb2N1bWVudCogZG9jdW1lbnQs
IGJvb2wgcmVwb3J0RXJyb3JzKQorICAgIDogbV9kb2N1bWVudChkb2N1bWVudCkKKyAgICAsIG1f
cmVwb3J0RXJyb3JzKHJlcG9ydEVycm9ycykKKyAgICAsIG1fbGV4ZXIobGV4ZXIpCisgICAgLCBt
X2xlZ2FjeUhUTUxQYXJzZXIobmV3IEhUTUxQYXJzZXIoZG9jdW1lbnQsIHJlcG9ydEVycm9ycykp
Cit7Cit9CisKK3N0YXRpYyB2b2lkIGNvbnZlcnRUb09sZFN0eWxlKEhUTUw1VG9rZW4mIHRva2Vu
LCBUb2tlbiYgb2xkU3R5bGVUb2tlbikKK3sKKyAgICBzd2l0Y2ggKHRva2VuLnR5cGUoKSkgewor
ICAgIGNhc2UgSFRNTDVUb2tlbjo6VW5pbml0aWFsaXplZDoKKyAgICAgICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgSFRNTDVUb2tlbjo6RE9DVFlQRToK
KyAgICBjYXNlIEhUTUw1VG9rZW46OkVuZE9mRmlsZToKKyAgICAgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7CisgICAgICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgSFRNTDVUb2tlbjo6U3RhcnRUYWc6CisgICAgY2FzZSBIVE1MNVRva2VuOjpFbmRUYWc6IHsK
KyAgICAgICAgb2xkU3R5bGVUb2tlbi5iZWdpblRhZyA9ICh0b2tlbi50eXBlKCkgPT0gSFRNTDVU
b2tlbjo6U3RhcnRUYWcpOworICAgICAgICBvbGRTdHlsZVRva2VuLnNlbGZDbG9zaW5nVGFnID0g
dG9rZW4uc2VsZkNsb3NpbmcoKTsKKyAgICAgICAgb2xkU3R5bGVUb2tlbi50YWdOYW1lID0gdG9r
ZW4ubmFtZSgpOworICAgICAgICBIVE1MNVRva2VuOjpBdHRyaWJ1dGVMaXN0JiBhdHRyaWJ1dGVz
ID0gdG9rZW4uYXR0cmlidXRlcygpOworICAgICAgICBmb3IgKEhUTUw1VG9rZW46OkF0dHJpYnV0
ZUxpc3Q6Oml0ZXJhdG9yIGl0ZXIgPSBhdHRyaWJ1dGVzLmJlZ2luKCk7CisgICAgICAgICAgICAg
aXRlciAhPSBhdHRyaWJ1dGVzLmVuZCgpOyArK2l0ZXIpIHsKKyAgICAgICAgICAgIGlmICghaXRl
ci0+bV9uYW1lLmlzRW1wdHkoKSkgeworICAgICAgICAgICAgICAgIFN0cmluZyBuYW1lID0gU3Ry
aW5nKFN0cmluZ0ltcGw6OmFkb3B0KGl0ZXItPm1fbmFtZSkpOworICAgICAgICAgICAgICAgIFN0
cmluZyB2YWx1ZSA9IFN0cmluZyhTdHJpbmdJbXBsOjphZG9wdChpdGVyLT5tX3ZhbHVlKSk7Cisg
ICAgICAgICAgICAgICAgUmVmUHRyPEF0dHJpYnV0ZT4gbWFwcGVkQXR0cmlidXRlID0gQXR0cmli
dXRlOjpjcmVhdGVNYXBwZWQobmFtZSwgdmFsdWUpOworICAgICAgICAgICAgICAgIGlmICghb2xk
U3R5bGVUb2tlbi5hdHRycykKKyAgICAgICAgICAgICAgICAgICAgb2xkU3R5bGVUb2tlbi5hdHRy
cyA9IE5hbWVkTWFwcGVkQXR0ck1hcDo6Y3JlYXRlKCk7CisgICAgICAgICAgICAgICAgb2xkU3R5
bGVUb2tlbi5hdHRycy0+aW5zZXJ0QXR0cmlidXRlKG1hcHBlZEF0dHJpYnV0ZS5yZWxlYXNlKCks
IGZhbHNlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBicmVhazsKKyAgICB9
CisgICAgY2FzZSBIVE1MNVRva2VuOjpDb21tZW50OgorICAgICAgICBvbGRTdHlsZVRva2VuLnRh
Z05hbWUgPSBjb21tZW50QXRvbTsKKyAgICAgICAgb2xkU3R5bGVUb2tlbi50ZXh0ID0gdG9rZW4u
ZGF0YSgpLmltcGwoKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBIVE1MNVRva2VuOjpDaGFy
YWN0ZXI6CisgICAgICAgIG9sZFN0eWxlVG9rZW4udGFnTmFtZSA9IHRleHRBdG9tOworICAgICAg
ICBvbGRTdHlsZVRva2VuLnRleHQgPSB0b2tlbi5jaGFyYWN0ZXJzKCkuaW1wbCgpOworICAgICAg
ICBicmVhazsKKyAgICB9Cit9CisKK1Bhc3NSZWZQdHI8Tm9kZT4gSFRNTDVUcmVlQnVpbGRlcjo6
cGFzc1Rva2VuVG9MZWdhY3lQYXJzZXIoSFRNTDVUb2tlbiYgdG9rZW4pCit7CisgICAgaWYgKHRv
a2VuLnR5cGUoKSA9PSBIVE1MNVRva2VuOjpTdGFydFRhZyAmJiB0b2tlbi5uYW1lKCkgPT0gInNj
cmlwdCIpIHsKKyAgICAgICAgLy8gVGhpcyB3b3JrIGlzIHN1cHBvc2VkIHRvIGJlIGRvbmUgYnkg
dGhlIHBhcnNlciwgYnV0CisgICAgICAgIC8vIHdoZW4gdXNpbmcgdGhlIG9sZCBwYXJzZXIgZm9y
IHdlIGhhdmUgdG8gZG8gdGhpcyBtYW51YWxseS4KKyAgICAgICAgbV9sZXhlci0+c2V0U3RhdGUo
SFRNTDVMZXhlcjo6U2NyaXB0RGF0YVN0YXRlKTsKKyAgICB9CisgICAgLy8gRm9yIG5vdywgd2Ug
dHJhbnNsYXRlIGludG8gYW4gb2xkLXN0eWxlIHRva2VuIGZvciB0ZXN0aW5nLgorICAgIFRva2Vu
IG9sZFN0eWxlVG9rZW47CisgICAgY29udmVydFRvT2xkU3R5bGUodG9rZW4sIG9sZFN0eWxlVG9r
ZW4pOworCisgICAgcmV0dXJuIG1fbGVnYWN5SFRNTFBhcnNlci0+cGFyc2VUb2tlbigmb2xkU3R5
bGVUb2tlbik7Cit9CisKK1Bhc3NSZWZQdHI8Tm9kZT4gSFRNTDVUcmVlQnVpbGRlcjo6Y29uc3Ry
dWN0VHJlZUZyb21Ub2tlbihIVE1MNVRva2VuJiB0b2tlbikKK3sKKyAgICByZXR1cm4gcGFzc1Rv
a2VuVG9MZWdhY3lQYXJzZXIodG9rZW4pOworICAgIC8vIE91ciBIVE1MNSBwYXJzZXIgaW1wbGVt
ZW50YXRpb24gd2lsbCBnbyBoZXJlIGluIGEgc2VwYXJhdGUgcGF0Y2guCit9CisKK3ZvaWQgSFRN
TDVUcmVlQnVpbGRlcjo6ZmluaXNoZWQoKQoreworICAgIG1fbGVnYWN5SFRNTFBhcnNlci0+Zmlu
aXNoZWQoKTsKK30KKworfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUw1VHJlZUJ1aWxk
ZXIuaCBiL1dlYkNvcmUvaHRtbC9IVE1MNVRyZWVCdWlsZGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzc5YjA4
ODM4YjliN2IzZmNhMGI4NDNkODcwMmY4OTRiNGM5ZjU5NwotLS0gL2Rldi9udWxsCisrKyBiL1dl
YkNvcmUvaHRtbC9IVE1MNVRyZWVCdWlsZGVyLmgKQEAgLTAsMCArMSw2NSBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxMCBHb29nbGUsIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEdPT0dMRSBJTkMuIGBgQVMg
SVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgR09PR0xFIElOQy4gT1IKKyAqIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBIVE1MNVRy
ZWVCdWlsZGVyX2gKKyNkZWZpbmUgSFRNTDVUcmVlQnVpbGRlcl9oCisKKyNpbmNsdWRlIDx3dGYv
Tm9uY29weWFibGUuaD4KKyNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CisjaW5jbHVkZSA8d3RmL1Bh
c3NSZWZQdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgRG9jdW1lbnQ7CitjbGFz
cyBIVE1MNUxleGVyOworY2xhc3MgSFRNTDVUb2tlbjsKK2NsYXNzIEhUTUxEb2N1bWVudDsKK2Ns
YXNzIEhUTUxQYXJzZXI7CitjbGFzcyBOb2RlOworCitjbGFzcyBIVE1MNVRyZWVCdWlsZGVyIDog
cHVibGljIE5vbmNvcHlhYmxlIHsKK3B1YmxpYzoKKyAgICBIVE1MNVRyZWVCdWlsZGVyKEhUTUw1
TGV4ZXIqLCBIVE1MRG9jdW1lbnQqLCBib29sIHJlcG9ydEVycm9ycyk7CisKKyAgICAvLyBUaGUg
dG9rZW4gcmVhbGx5IHNob3VsZCBiZSBwYXNzZWQgYXMgYSBjb25zdCYgc2luY2UgaXQncyBuZXZl
ciBtb2RpZmllZC4KKyAgICBQYXNzUmVmUHRyPE5vZGU+IGNvbnN0cnVjdFRyZWVGcm9tVG9rZW4o
SFRNTDVUb2tlbiYpOworICAgIHZvaWQgZmluaXNoZWQoKTsKKworcHJpdmF0ZToKKyAgICBQYXNz
UmVmUHRyPE5vZGU+IHBhc3NUb2tlblRvTGVnYWN5UGFyc2VyKEhUTUw1VG9rZW4mKTsKKworICAg
IC8vIFdlIGNvdWxkIGdyYWIgbV9kb2N1bWVudCBvZmYgdGhlIGxleGVyIGlmIHdlIHdhbnRlZCB0
byBzYXZlIHNwYWNlLgorICAgIERvY3VtZW50KiBtX2RvY3VtZW50OworICAgIGJvb2wgbV9yZXBv
cnRFcnJvcnM7CisgICAgLy8gSFRNTDUgc3BlYyByZXF1aXJlcyB0aGF0IHdlIGJlIGFibGUgdG8g
Y2hhbmdlIHRoZSBzdGF0ZSBvZiB0aGUgbGV4ZXIKKyAgICAvLyBmcm9tIHdpdGhpbiBwYXJzZXIg
YWN0aW9ucy4KKyAgICBIVE1MNUxleGVyKiBtX2xleGVyOworCisgICAgLy8gV2UncmUgcmUtdXNp
bmcgbG9naWMgZnJvbSB0aGUgb2xkIEhUTUxQYXJzZXIgd2hpbGUgdGhpcyBjbGFzcyBpcyBiZWlu
ZyB3cml0dGVuLgorICAgIE93blB0cjxIVE1MUGFyc2VyPiBtX2xlZ2FjeUhUTUxQYXJzZXI7Cit9
OworCit9CisKKyNlbmRpZgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>56837</attachid>
            <date>2010-05-23 16:40:34 -0700</date>
            <delta_ts>2010-05-23 18:06:03 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-39572-20100523164032.patch</filename>
            <type>text/plain</type>
            <size>17558</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
ZDE5OThhYmQwMDgzMTExNWU3OWUzNWY0ZGU2ODU3Y2U0NmI4ZWM5OS4uZmI3M2I1YWZhYzViYmZi
YWZlODdiZGM2ZjQ3ZDQ5YWIzY2ZlOGRhYiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMiBAQAorMjAxMC0wNS0yMyAgRXJp
YyBTZWlkZWwgIDxlcmljQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBC
YXJ0aC4KKworICAgICAgICBBZGQgbmV3IEhUTUw1VHJlZUJ1aWxkZXIgY2xhc3MgdG8gaG9sZCB0
aGUgdHJlZSBidWlsZGVyIHNlY3Rpb24gb2YgdGhlIEhUTUw1IHBhcnNpbmcgc3BlYworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mzk1NzIKKworICAgICAg
ICBXZSd2ZSBiZWVuIHdvcmtpbmcgb24gdGhlIHRva2VuaXphdGlvbiAobGV4aW5nKSBzZWN0aW9u
IG9mIHRoZSBIVE1MNQorICAgICAgICBzcGVjIHVudGlsIG5vdyBhbmQgbGVhbmluZyBvbiB0aGUg
b2xkIEhUTUxQYXJzZXIgZm9yIHRyZWUgYnVpbGRpbmcuCisgICAgICAgIFdlIG5lZWQgdG8gc3Rh
cnQgd3JpdGluZyBtb3JlIG9mIHRoZSB0cmVlIGJ1aWxkaW5nIHNlY3Rpb25zIG9mIHRoZSBzcGVj
LAorICAgICAgICBidXQgdG8gZG8gdGhhdCB3ZSBuZWVkIGEgcGxhY2UgdG8gcHV0IHRoZSBuZXcg
Y29kZS4KKworICAgICAgICBUaGlzIHBhdGNoIG1vdmVzIG91ciBvbGQtdG8tbmV3IGNvbnZlcnNp
b24gaGFja3Mgb3V0IG9mIEhUTUw1VG9rZW5pemVyCisgICAgICAgIChvdXIgVG9rZW5pemVyLmgg
aW1wbGVtZW50YXRpb24pIGFuZCBpbnRvIEhUTUw1VHJlZUJ1aWxkZXIuCisgICAgICAgIEZvbGxv
dy11cCBwYXRjaGVzIHdpbGwgYWRkIG5ldyBIVE1MNSB0cmVlIGJ1aWxkaW5nIGNvZGUgdG8gdGhp
cyBmaWxlCisgICAgICAgIGFuZCB3aWxsIGFsbG93IHVzIHRvIHN3aXRjaCBiZXR3ZWVuIG9sZCBh
bmQgbmV3IHBhcnNlci90cmVlYnVpbGRlcgorICAgICAgICBpbXBsZW1lbnRhdGlvbnMuCisKKyAg
ICAgICAgTm8gY2hhbmdlIGluIGJlaGF2aW9yLCB0aHVzIG5vIG5ldyB0ZXN0cy4KKworICAgICAg
ICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBodG1sL0hU
TUw1VG9rZW5pemVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUw1VG9rZW5pemVyOjpIVE1M
NVRva2VuaXplcik6CisgICAgICAgIChXZWJDb3JlOjpIVE1MNVRva2VuaXplcjo6d3JpdGUpOgor
ICAgICAgICAgLSBDYWxsIHRoZSBuZXcgSFRNTDVUcmVlQnVpbGRlciBjb2RlLgorICAgICAgICAq
IGh0bWwvSFRNTDVUb2tlbml6ZXIuaDoKKyAgICAgICAgKiBodG1sL0hUTUw1VHJlZUJ1aWxkZXIu
Y3BwOiBBZGRlZC4KKyAgICAgICAgKiBodG1sL0hUTUw1VHJlZUJ1aWxkZXIuaDogQWRkZWQuCisK
IDIwMTAtMDUtMjMgIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZp
ZXdlZCBieSBPbGl2ZXIgSHVudC4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qIGIvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKaW5kZXggYTBjZTYzYWU3MTY4YWJmYzliNzY0MzEzNzlmMDRmZTFjM2FkMzM3Ny4uZjY3
YmZhMTI2YThiYzI1OTAwMzE3YThlNGI0YjAyNWY2OGU4Mjc1NiAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTMwMDgsNiArMzAwOCw4IEBACiAJCUE4NzFE
RkUzMEExNTM3NkIwMEIxMkE2OCAvKiBSZW5kZXJSZXBsYWNlZC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTg3MURGREYwQTE1Mzc2QjAwQjEyQTY4IC8q
IFJlbmRlclJlcGxhY2VkLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJQTg3MURGRTQwQTE1Mzc2QjAwQjEyQTY4IC8qIFJlbmRlcldpZGdldC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTg3MURGRTAwQTE1
Mzc2QjAwQjEyQTY4IC8qIFJlbmRlcldpZGdldC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCUE4NzFERkU1MEExNTM3NkIwMEIxMkE2OCAvKiBSZW5k
ZXJXaWRnZXQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQTg3MURGRTEwQTE1Mzc2QjAwQjEyQTY4IC8qIFJlbmRlcldpZGdldC5jcHAgKi87IH07CisJ
CUE4NzlDNjI1MTFBOUQxRjcwMDU5MjM3QSAvKiBIVE1MNVRyZWVCdWlsZGVyLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4NzlDNjIzMTFBOUQxRjcw
MDU5MjM3QSAvKiBIVE1MNVRyZWVCdWlsZGVyLmNwcCAqLzsgfTsKKwkJQTg3OUM2MjYxMUE5RDFG
NzAwNTkyMzdBIC8qIEhUTUw1VHJlZUJ1aWxkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4NzlDNjI0MTFBOUQxRjcwMDU5MjM3QSAvKiBIVE1MNVRy
ZWVCdWlsZGVyLmggKi87IH07CiAJCUE4ODNERjI3MEYzRDA0NUQwMEYxOUJGNiAvKiBWaXNpYmxl
U2VsZWN0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEE4ODNERjI1MEYzRDA0NUQwMEYxOUJGNiAvKiBWaXNpYmxlU2VsZWN0aW9uLmNwcCAqLzsg
fTsKIAkJQTg4M0RGMjgwRjNEMDQ1RDAwRjE5QkY2IC8qIFZpc2libGVTZWxlY3Rpb24uaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4ODNERjI2MEYzRDA0
NUQwMEYxOUJGNiAvKiBWaXNpYmxlU2VsZWN0aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQTg4QUQ1MkYwOTUyNEI5MjAwMUREMTk2IC8qIFF1
YXJ0ekNvcmUuZnJhbWV3b3JrIGluIEZyYW1ld29ya3MgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQTg1RDdBMkYwODc5RUJBOTAwNkE5MTcyIC8qIFF1YXJ0ekNvcmUuZnJhbWV3
b3JrICovOyB9OwpAQCAtODQzMyw2ICs4NDM1LDggQEAKIAkJQTg3MURGREYwQTE1Mzc2QjAwQjEy
QTY4IC8qIFJlbmRlclJlcGxhY2VkLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBSZW5kZXJSZXBsYWNlZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBODcxREZF
MDBBMTUzNzZCMDBCMTJBNjggLyogUmVuZGVyV2lkZ2V0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBSZW5kZXJXaWRnZXQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJQTg3MURGRTEwQTE1Mzc2QjAwQjEyQTY4IC8qIFJlbmRlcldpZGdldC5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVuZGVyV2lkZ2V0LmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTg3OUM2MjMxMUE5RDFGNzAwNTkyMzdBIC8qIEhUTUw1VHJl
ZUJ1aWxkZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSFRNTDVU
cmVlQnVpbGRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUE4NzlDNjI0MTFB
OUQxRjcwMDU5MjM3QSAvKiBIVE1MNVRyZWVCdWlsZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEhUTUw1VHJlZUJ1aWxkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJQTg4M0RGMjUwRjNEMDQ1RDAwRjE5QkY2IC8qIFZpc2libGVTZWxlY3Rpb24uY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVmlzaWJsZVNlbGVjdGlvbi5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4ODNERjI2MEYzRDA0NUQwMEYxOUJGNiAv
KiBWaXNpYmxlU2VsZWN0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFZp
c2libGVTZWxlY3Rpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTg4REQ0ODYw
QjQ2MjlBMzAwQzAyOTkwIC8qIFBhdGhUcmF2ZXJzYWxTdGF0ZS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBQYXRoVHJhdmVyc2FsU3RhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTEzMzI2LDYgKzEzMzMwLDggQEAKIAkJCQlBODEzNkQzNjA5NzNBOEU3MDBE
NzQ0NjMgLyogRm9ybURhdGFMaXN0LmggKi8sCiAJCQkJOTdFOEIzNTQxMUEyM0NFMjAwMTY5NDA5
IC8qIEhUTUw1TGV4ZXIuY3BwICovLAogCQkJCTk3RThCMzU1MTFBMjNDRTIwMDE2OTQwOSAvKiBI
VE1MNUxleGVyLmggKi8sCisJCQkJQTg3OUM2MjMxMUE5RDFGNzAwNTkyMzdBIC8qIEhUTUw1VHJl
ZUJ1aWxkZXIuY3BwICovLAorCQkJCUE4NzlDNjI0MTFBOUQxRjcwMDU5MjM3QSAvKiBIVE1MNVRy
ZWVCdWlsZGVyLmggKi8sCiAJCQkJOTdFOEIzQzIxMUEyODkwODAwMTY5NDA5IC8qIEhUTUw1VG9r
ZW4uaCAqLywKIAkJCQlBODcxMDM4ODExQTI5NDcwMDBEQkQ1MEUgLyogSFRNTDVUb2tlbml6ZXIu
Y3BwICovLAogCQkJCUE4NzEwMzg5MTFBMjk0NzAwMERCRDUwRSAvKiBIVE1MNVRva2VuaXplci5o
ICovLApAQCAtMTkyOTAsNiArMTkyOTYsNyBAQAogCQkJCTJFM0ZBQTA5MTFBMzZCRjEwMDU3NjYy
NCAvKiBDcm9zc1RocmVhZFRhc2suaCBpbiBIZWFkZXJzICovLAogCQkJCTU5QThGMUQ2MTFBNjk1
MTMwMDFBQzM0QSAvKiBEZXZpY2VPcmllbnRhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTlB
OEYxRDgxMUE2OTUyMDAwMUFDMzRBIC8qIERldmljZU9yaWVudGF0aW9uQ2xpZW50LmggaW4gSGVh
ZGVycyAqLywKKwkJCQlBODc5QzYyNjExQTlEMUY3MDA1OTIzN0EgLyogSFRNTDVUcmVlQnVpbGRl
ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJv
Y2Vzc2luZyA9IDA7CiAJCX07CkBAIC0yMTU3NSw2ICsyMTU4Miw3IEBACiAJCQkJNTlBODVFQTIx
MTlENjhEOTAwREVGMUVGIC8qIERldmljZU9yaWVudGF0aW9uRXZlbnQuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJNTlBODYwMDYxMTlEQUY3RjAwREVGMUVGIC8qIEpTRGV2aWNlT3JpZW50YXRpb25F
dmVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1OUE4RjFENDExQTY5NTA4MDAxQUMzNEEgLyog
RGV2aWNlT3JpZW50YXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQTg3OUM2MjUxMUE5RDFG
NzAwNTkyMzdBIC8qIEhUTUw1VHJlZUJ1aWxkZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkpOwog
CQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CmRpZmYgLS1n
aXQgYS9XZWJDb3JlL2h0bWwvSFRNTDVUb2tlbml6ZXIuY3BwIGIvV2ViQ29yZS9odG1sL0hUTUw1
VG9rZW5pemVyLmNwcAppbmRleCBmN2JhYmM1OTcxNTRmMjQxZjUwZDI2NjVjMzNjZjU4OGQ5NmEy
MDc3Li4yMDFlZDM1ZTZmMGMzZDFlZTZkZmQ4OGQwYTNjYTQ1MjA5M2ZkYTkwIDEwMDY0NAotLS0g
YS9XZWJDb3JlL2h0bWwvSFRNTDVUb2tlbml6ZXIuY3BwCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1M
NVRva2VuaXplci5jcHAKQEAgLTI4LDYwICsyOCwxNiBAQAogCiAjaW5jbHVkZSAiSFRNTDVMZXhl
ci5oIgogI2luY2x1ZGUgIkhUTUw1VG9rZW4uaCIKLSNpbmNsdWRlICJIVE1MRG9jdW1lbnQuaCIK
LSNpbmNsdWRlICJIVE1MUGFyc2VyLmgiCi0jaW5jbHVkZSAiSFRNTFRva2VuaXplci5oIgotI2lu
Y2x1ZGUgIkF0dHJpYnV0ZS5oIgorI2luY2x1ZGUgIkhUTUw1VHJlZUJ1aWxkZXIuaCIKICNpbmNs
dWRlICJOb3RJbXBsZW1lbnRlZC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXN0YXRpYyB2
b2lkIGNvbnZlcnRUb09sZFN0eWxlKEhUTUw1VG9rZW4mIHRva2VuLCBUb2tlbiYgb2xkU3R5bGVU
b2tlbikKLXsKLSAgICBzd2l0Y2ggKHRva2VuLnR5cGUoKSkgewotICAgIGNhc2UgSFRNTDVUb2tl
bjo6VW5pbml0aWFsaXplZDoKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAg
IGJyZWFrOwotICAgIGNhc2UgSFRNTDVUb2tlbjo6RE9DVFlQRToKLSAgICBjYXNlIEhUTUw1VG9r
ZW46OkVuZE9mRmlsZToKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIG5v
dEltcGxlbWVudGVkKCk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgSFRNTDVUb2tlbjo6U3Rh
cnRUYWc6Ci0gICAgY2FzZSBIVE1MNVRva2VuOjpFbmRUYWc6IHsKLSAgICAgICAgb2xkU3R5bGVU
b2tlbi5iZWdpblRhZyA9ICh0b2tlbi50eXBlKCkgPT0gSFRNTDVUb2tlbjo6U3RhcnRUYWcpOwot
ICAgICAgICBvbGRTdHlsZVRva2VuLnNlbGZDbG9zaW5nVGFnID0gdG9rZW4uc2VsZkNsb3Npbmco
KTsKLSAgICAgICAgb2xkU3R5bGVUb2tlbi50YWdOYW1lID0gdG9rZW4ubmFtZSgpOwotICAgICAg
ICBIVE1MNVRva2VuOjpBdHRyaWJ1dGVMaXN0JiBhdHRyaWJ1dGVzID0gdG9rZW4uYXR0cmlidXRl
cygpOwotICAgICAgICBmb3IgKEhUTUw1VG9rZW46OkF0dHJpYnV0ZUxpc3Q6Oml0ZXJhdG9yIGl0
ZXIgPSBhdHRyaWJ1dGVzLmJlZ2luKCk7Ci0gICAgICAgICAgICAgaXRlciAhPSBhdHRyaWJ1dGVz
LmVuZCgpOyArK2l0ZXIpIHsKLSAgICAgICAgICAgIGlmICghaXRlci0+bV9uYW1lLmlzRW1wdHko
KSkgewotICAgICAgICAgICAgICAgIFN0cmluZyBuYW1lID0gU3RyaW5nKFN0cmluZ0ltcGw6OmFk
b3B0KGl0ZXItPm1fbmFtZSkpOwotICAgICAgICAgICAgICAgIFN0cmluZyB2YWx1ZSA9IFN0cmlu
ZyhTdHJpbmdJbXBsOjphZG9wdChpdGVyLT5tX3ZhbHVlKSk7Ci0gICAgICAgICAgICAgICAgUmVm
UHRyPEF0dHJpYnV0ZT4gbWFwcGVkQXR0cmlidXRlID0gQXR0cmlidXRlOjpjcmVhdGVNYXBwZWQo
bmFtZSwgdmFsdWUpOwotICAgICAgICAgICAgICAgIGlmICghb2xkU3R5bGVUb2tlbi5hdHRycykK
LSAgICAgICAgICAgICAgICAgICAgb2xkU3R5bGVUb2tlbi5hdHRycyA9IE5hbWVkTm9kZU1hcDo6
Y3JlYXRlKCk7Ci0gICAgICAgICAgICAgICAgb2xkU3R5bGVUb2tlbi5hdHRycy0+aW5zZXJ0QXR0
cmlidXRlKG1hcHBlZEF0dHJpYnV0ZS5yZWxlYXNlKCksIGZhbHNlKTsKLSAgICAgICAgICAgIH0K
LSAgICAgICAgfQotICAgICAgICBicmVhazsKLSAgICB9Ci0gICAgY2FzZSBIVE1MNVRva2VuOjpD
b21tZW50OgotICAgICAgICBvbGRTdHlsZVRva2VuLnRhZ05hbWUgPSBjb21tZW50QXRvbTsKLSAg
ICAgICAgb2xkU3R5bGVUb2tlbi50ZXh0ID0gdG9rZW4uZGF0YSgpLmltcGwoKTsKLSAgICAgICAg
YnJlYWs7Ci0gICAgY2FzZSBIVE1MNVRva2VuOjpDaGFyYWN0ZXI6Ci0gICAgICAgIG9sZFN0eWxl
VG9rZW4udGFnTmFtZSA9IHRleHRBdG9tOwotICAgICAgICBvbGRTdHlsZVRva2VuLnRleHQgPSB0
b2tlbi5jaGFyYWN0ZXJzKCkuaW1wbCgpOwotICAgICAgICBicmVhazsKLSAgICB9Ci19Ci0KIEhU
TUw1VG9rZW5pemVyOjpIVE1MNVRva2VuaXplcihIVE1MRG9jdW1lbnQqIGRvYywgYm9vbCByZXBv
cnRFcnJvcnMpCiAgICAgOiBUb2tlbml6ZXIoKQogICAgICwgbV9kb2MoZG9jKQogICAgICwgbV9s
ZXhlcihuZXcgSFRNTDVMZXhlcikKLSAgICAsIG1fcGFyc2VyKG5ldyBIVE1MUGFyc2VyKGRvYywg
cmVwb3J0RXJyb3JzKSkKKyAgICAsIG1fdHJlZUJ1aWxkZXIobmV3IEhUTUw1VHJlZUJ1aWxkZXIo
ZG9jLCByZXBvcnRFcnJvcnMpKQogewogICAgIGJlZ2luKCk7CiB9CkBAIC0xMDEsMjQgKzU3LDcg
QEAgdm9pZCBIVE1MNVRva2VuaXplcjo6d3JpdGUoY29uc3QgU2VnbWVudGVkU3RyaW5nJiBzb3Vy
Y2UsIGJvb2wpCiAgICAgSFRNTDVUb2tlbiB0b2tlbjsKICAgICB3aGlsZSAoIW1fc291cmNlLmlz
RW1wdHkoKSkgewogICAgICAgICBpZiAobV9sZXhlci0+bmV4dFRva2VuKG1fc291cmNlLCB0b2tl
bikpIHsKLSAgICAgICAgICAgIC8vIGh0dHA6Ly93d3cud2hhdHdnLm9yZy9zcGVjcy93ZWItYXBw
cy9jdXJyZW50LXdvcmsvI3RyZWUtY29uc3RydWN0aW9uCi0gICAgICAgICAgICAvLyBXZSBuZWVk
IHRvIGFkZCBjb2RlIHRvIHRoZSBwYXJzZXIgaW4gb3JkZXIgdG8gdW5kZXJzdGFuZAotICAgICAg
ICAgICAgLy8gSFRNTDVUb2tlbiBvYmplY3RzLiAgVGhlIG9sZCBIVE1MIGNvZGVwYXRoIGRvZXMg
bm90IGhhdmUgYSBuaWNlCi0gICAgICAgICAgICAvLyBzZXBhcmF0aW9uIGJldHdlZW4gdGhlIHBh
cnNlciBsb2dpYyBhbmQgdG9rZW5pemVyIGxvZ2ljIGxpa2UKLSAgICAgICAgICAgIC8vIHRoZSBI
VE1MNSBjb2RlcGF0aCBzaG91bGQuICBUaGUgY2FsbCBzaG91bGQgbG9vayBzb21ldGhpbmcgbGlr
ZToKLSAgICAgICAgICAgIC8vIG1fcGFyc2VyLT5jb25zdHJ1Y3RUcmVlRnJvbVRva2VuKHRva2Vu
KTsKLSAgICAgICAgICAgIGlmICh0b2tlbi50eXBlKCkgPT0gSFRNTDVUb2tlbjo6U3RhcnRUYWcg
JiYgdG9rZW4ubmFtZSgpID09ICJzY3JpcHQiKSB7Ci0gICAgICAgICAgICAgICAgLy8gRklYTUU6
IFRoaXMgd29yayBpcyBzdXBwb3NlZCB0byBiZSBkb25lIGJ5IHRoZSBwYXJzZXIsIGJ1dAotICAg
ICAgICAgICAgICAgIC8vIHdlIHdhbnQgdG8ga2VlcCB1c2luZyB0aGUgb2xkIHBhcnNlciBmb3Ig
bm93LCBzbyB3ZSBoYXZlIHRvCi0gICAgICAgICAgICAgICAgLy8gZG8gdGhpcyB3b3JrIG1hbnVh
bGx5LgotICAgICAgICAgICAgICAgIG1fbGV4ZXItPnNldFN0YXRlKEhUTUw1TGV4ZXI6OlNjcmlw
dERhdGFTdGF0ZSk7Ci0gICAgICAgICAgICB9ICAgICAgICAgICAKLSAgICAgICAgICAgIC8vIEZv
ciBub3csIHdlIHRyYW5zbGF0ZSBpbnRvIGFuIG9sZC1zdHlsZSB0b2tlbiBmb3IgdGVzdGluZy4K
LSAgICAgICAgICAgIFRva2VuIG9sZFN0eWxlVG9rZW47Ci0gICAgICAgICAgICBjb252ZXJ0VG9P
bGRTdHlsZSh0b2tlbiwgb2xkU3R5bGVUb2tlbik7Ci0KLSAgICAgICAgICAgIG1fcGFyc2VyLT5w
YXJzZVRva2VuKCZvbGRTdHlsZVRva2VuKTsKLQorICAgICAgICAgICAgbV90cmVlQnVpbGRlci0+
Y29uc3RydWN0VHJlZUZyb21Ub2tlbih0b2tlbik7CiAgICAgICAgICAgICB0b2tlbi5jbGVhcigp
OwogICAgICAgICB9CiAgICAgfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUw1VG9rZW5p
emVyLmggYi9XZWJDb3JlL2h0bWwvSFRNTDVUb2tlbml6ZXIuaAppbmRleCAzZjJkYWZlMTI4ZjQw
ZDFiMDQ5MGJjZDUzMDI1ZGY0ZjZmNzk0YmI2Li5jZTg5YzRkNDA3MmVhNmUyOGZlYjg3NjY4MTA3
OWFiNmIyZWRjMTZmIDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTDVUb2tlbml6ZXIuaAor
KysgYi9XZWJDb3JlL2h0bWwvSFRNTDVUb2tlbml6ZXIuaApAQCAtMzUsNyArMzUsNyBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIERvY3VtZW50OwogY2xhc3MgSFRNTERvY3VtZW50Owot
Y2xhc3MgSFRNTFBhcnNlcjsKK2NsYXNzIEhUTUw1VHJlZUJ1aWxkZXI7CiBjbGFzcyBIVE1MNUxl
eGVyOwogCiAvLyBGSVhNRTogVGhpcyBpcyB0aGUgd3JvbmcgbGF5ZXIgdG8gaG9vayBpbiB0aGUg
bmV3IEhUTUwgNSBMZXhlciwKQEAgLTYxLDcgKzYxLDcgQEAgcHJpdmF0ZToKIAogICAgIERvY3Vt
ZW50KiBtX2RvYzsKICAgICBPd25QdHI8SFRNTDVMZXhlcj4gbV9sZXhlcjsKLSAgICBPd25QdHI8
SFRNTFBhcnNlcj4gbV9wYXJzZXI7CisgICAgT3duUHRyPEhUTUw1VHJlZUJ1aWxkZXI+IG1fdHJl
ZUJ1aWxkZXI7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTDVUcmVlQnVp
bGRlci5jcHAgYi9XZWJDb3JlL2h0bWwvSFRNTDVUcmVlQnVpbGRlci5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
YzgxZGJkNDc1MTEwZWY3YWFhMmQwZmIxNDI3NGU4MTQ4NTY5MGVjOAotLS0gL2Rldi9udWxsCisr
KyBiL1dlYkNvcmUvaHRtbC9IVE1MNVRyZWVCdWlsZGVyLmNwcApAQCAtMCwwICsxLDExMyBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUsIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEdPT0dMRSBJ
TkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgR09PR0xFIElOQy4gT1IKKyAq
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
CisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkhUTUw1VHJlZUJ1aWxkZXIuaCIKKworI2luY2x1ZGUg
IkF0dHJpYnV0ZS5oIgorI2luY2x1ZGUgIkhUTUw1TGV4ZXIuaCIKKyNpbmNsdWRlICJIVE1MNVRv
a2VuLmgiCisjaW5jbHVkZSAiSFRNTERvY3VtZW50LmgiCisjaW5jbHVkZSAiSFRNTFBhcnNlci5o
IgorI2luY2x1ZGUgIkhUTUxUb2tlbml6ZXIuaCIKKyNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5o
IgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0hUTUw1VHJlZUJ1aWxkZXI6OkhUTUw1VHJlZUJ1
aWxkZXIoSFRNTDVMZXhlciogbGV4ZXIsIEhUTUxEb2N1bWVudCogZG9jdW1lbnQsIGJvb2wgcmVw
b3J0RXJyb3JzKQorICAgIDogbV9kb2N1bWVudChkb2N1bWVudCkKKyAgICAsIG1fcmVwb3J0RXJy
b3JzKHJlcG9ydEVycm9ycykKKyAgICAsIG1fbGV4ZXIobGV4ZXIpCisgICAgLCBtX2xlZ2FjeUhU
TUxQYXJzZXIobmV3IEhUTUxQYXJzZXIoZG9jdW1lbnQsIHJlcG9ydEVycm9ycykpCit7Cit9CisK
K3N0YXRpYyB2b2lkIGNvbnZlcnRUb09sZFN0eWxlKEhUTUw1VG9rZW4mIHRva2VuLCBUb2tlbiYg
b2xkU3R5bGVUb2tlbikKK3sKKyAgICBzd2l0Y2ggKHRva2VuLnR5cGUoKSkgeworICAgIGNhc2Ug
SFRNTDVUb2tlbjo6VW5pbml0aWFsaXplZDoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgSFRNTDVUb2tlbjo6RE9DVFlQRToKKyAgICBjYXNl
IEhUTUw1VG9rZW46OkVuZE9mRmlsZToKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cisg
ICAgICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgSFRNTDVU
b2tlbjo6U3RhcnRUYWc6CisgICAgY2FzZSBIVE1MNVRva2VuOjpFbmRUYWc6IHsKKyAgICAgICAg
b2xkU3R5bGVUb2tlbi5iZWdpblRhZyA9ICh0b2tlbi50eXBlKCkgPT0gSFRNTDVUb2tlbjo6U3Rh
cnRUYWcpOworICAgICAgICBvbGRTdHlsZVRva2VuLnNlbGZDbG9zaW5nVGFnID0gdG9rZW4uc2Vs
ZkNsb3NpbmcoKTsKKyAgICAgICAgb2xkU3R5bGVUb2tlbi50YWdOYW1lID0gdG9rZW4ubmFtZSgp
OworICAgICAgICBIVE1MNVRva2VuOjpBdHRyaWJ1dGVMaXN0JiBhdHRyaWJ1dGVzID0gdG9rZW4u
YXR0cmlidXRlcygpOworICAgICAgICBmb3IgKEhUTUw1VG9rZW46OkF0dHJpYnV0ZUxpc3Q6Oml0
ZXJhdG9yIGl0ZXIgPSBhdHRyaWJ1dGVzLmJlZ2luKCk7CisgICAgICAgICAgICAgaXRlciAhPSBh
dHRyaWJ1dGVzLmVuZCgpOyArK2l0ZXIpIHsKKyAgICAgICAgICAgIGlmICghaXRlci0+bV9uYW1l
LmlzRW1wdHkoKSkgeworICAgICAgICAgICAgICAgIFN0cmluZyBuYW1lID0gU3RyaW5nKFN0cmlu
Z0ltcGw6OmFkb3B0KGl0ZXItPm1fbmFtZSkpOworICAgICAgICAgICAgICAgIFN0cmluZyB2YWx1
ZSA9IFN0cmluZyhTdHJpbmdJbXBsOjphZG9wdChpdGVyLT5tX3ZhbHVlKSk7CisgICAgICAgICAg
ICAgICAgUmVmUHRyPEF0dHJpYnV0ZT4gbWFwcGVkQXR0cmlidXRlID0gQXR0cmlidXRlOjpjcmVh
dGVNYXBwZWQobmFtZSwgdmFsdWUpOworICAgICAgICAgICAgICAgIGlmICghb2xkU3R5bGVUb2tl
bi5hdHRycykKKyAgICAgICAgICAgICAgICAgICAgb2xkU3R5bGVUb2tlbi5hdHRycyA9IE5hbWVk
Tm9kZU1hcDo6Y3JlYXRlKCk7CisgICAgICAgICAgICAgICAgb2xkU3R5bGVUb2tlbi5hdHRycy0+
aW5zZXJ0QXR0cmlidXRlKG1hcHBlZEF0dHJpYnV0ZS5yZWxlYXNlKCksIGZhbHNlKTsKKyAgICAg
ICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBicmVhazsKKyAgICB9CisgICAgY2FzZSBIVE1M
NVRva2VuOjpDb21tZW50OgorICAgICAgICBvbGRTdHlsZVRva2VuLnRhZ05hbWUgPSBjb21tZW50
QXRvbTsKKyAgICAgICAgb2xkU3R5bGVUb2tlbi50ZXh0ID0gdG9rZW4uZGF0YSgpLmltcGwoKTsK
KyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBIVE1MNVRva2VuOjpDaGFyYWN0ZXI6CisgICAgICAg
IG9sZFN0eWxlVG9rZW4udGFnTmFtZSA9IHRleHRBdG9tOworICAgICAgICBvbGRTdHlsZVRva2Vu
LnRleHQgPSB0b2tlbi5jaGFyYWN0ZXJzKCkuaW1wbCgpOworICAgICAgICBicmVhazsKKyAgICB9
Cit9CisKK1Bhc3NSZWZQdHI8Tm9kZT4gSFRNTDVUcmVlQnVpbGRlcjo6cGFzc1Rva2VuVG9MZWdh
Y3lQYXJzZXIoSFRNTDVUb2tlbiYgdG9rZW4pCit7CisgICAgaWYgKHRva2VuLnR5cGUoKSA9PSBI
VE1MNVRva2VuOjpTdGFydFRhZyAmJiB0b2tlbi5uYW1lKCkgPT0gInNjcmlwdCIpIHsKKyAgICAg
ICAgLy8gVGhpcyB3b3JrIGlzIHN1cHBvc2VkIHRvIGJlIGRvbmUgYnkgdGhlIHBhcnNlciwgYnV0
CisgICAgICAgIC8vIHdoZW4gdXNpbmcgdGhlIG9sZCBwYXJzZXIgZm9yIHdlIGhhdmUgdG8gZG8g
dGhpcyBtYW51YWxseS4KKyAgICAgICAgbV9sZXhlci0+c2V0U3RhdGUoSFRNTDVMZXhlcjo6U2Ny
aXB0RGF0YVN0YXRlKTsKKyAgICB9CisgICAgLy8gRm9yIG5vdywgd2UgdHJhbnNsYXRlIGludG8g
YW4gb2xkLXN0eWxlIHRva2VuIGZvciB0ZXN0aW5nLgorICAgIFRva2VuIG9sZFN0eWxlVG9rZW47
CisgICAgY29udmVydFRvT2xkU3R5bGUodG9rZW4sIG9sZFN0eWxlVG9rZW4pOworCisgICAgcmV0
dXJuIG1fbGVnYWN5SFRNTFBhcnNlci0+cGFyc2VUb2tlbigmb2xkU3R5bGVUb2tlbik7Cit9CisK
K1Bhc3NSZWZQdHI8Tm9kZT4gSFRNTDVUcmVlQnVpbGRlcjo6Y29uc3RydWN0VHJlZUZyb21Ub2tl
bihIVE1MNVRva2VuJiB0b2tlbikKK3sKKyAgICByZXR1cm4gcGFzc1Rva2VuVG9MZWdhY3lQYXJz
ZXIodG9rZW4pOworICAgIC8vIE91ciBIVE1MNSBwYXJzZXIgaW1wbGVtZW50YXRpb24gd2lsbCBn
byBoZXJlIGluIGEgc2VwYXJhdGUgcGF0Y2guCit9CisKK3ZvaWQgSFRNTDVUcmVlQnVpbGRlcjo6
ZmluaXNoZWQoKQoreworICAgIG1fbGVnYWN5SFRNTFBhcnNlci0+ZmluaXNoZWQoKTsKK30KKwor
fQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUw1VHJlZUJ1aWxkZXIuaCBiL1dlYkNvcmUv
aHRtbC9IVE1MNVRyZWVCdWlsZGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzc5YjA4ODM4YjliN2IzZmNhMGI4
NDNkODcwMmY4OTRiNGM5ZjU5NwotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1M
NVRyZWVCdWlsZGVyLmgKQEAgLTAsMCArMSw2NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
MCBHb29nbGUsIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEdPT0dMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisg
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4g
Tk8gRVZFTlQgU0hBTEwgR09PR0xFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBIVE1MNVRyZWVCdWlsZGVyX2gKKyNk
ZWZpbmUgSFRNTDVUcmVlQnVpbGRlcl9oCisKKyNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4K
KyNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgRG9jdW1lbnQ7CitjbGFzcyBIVE1MNUxleGVyOwor
Y2xhc3MgSFRNTDVUb2tlbjsKK2NsYXNzIEhUTUxEb2N1bWVudDsKK2NsYXNzIEhUTUxQYXJzZXI7
CitjbGFzcyBOb2RlOworCitjbGFzcyBIVE1MNVRyZWVCdWlsZGVyIDogcHVibGljIE5vbmNvcHlh
YmxlIHsKK3B1YmxpYzoKKyAgICBIVE1MNVRyZWVCdWlsZGVyKEhUTUw1TGV4ZXIqLCBIVE1MRG9j
dW1lbnQqLCBib29sIHJlcG9ydEVycm9ycyk7CisKKyAgICAvLyBUaGUgdG9rZW4gcmVhbGx5IHNo
b3VsZCBiZSBwYXNzZWQgYXMgYSBjb25zdCYgc2luY2UgaXQncyBuZXZlciBtb2RpZmllZC4KKyAg
ICBQYXNzUmVmUHRyPE5vZGU+IGNvbnN0cnVjdFRyZWVGcm9tVG9rZW4oSFRNTDVUb2tlbiYpOwor
ICAgIHZvaWQgZmluaXNoZWQoKTsKKworcHJpdmF0ZToKKyAgICBQYXNzUmVmUHRyPE5vZGU+IHBh
c3NUb2tlblRvTGVnYWN5UGFyc2VyKEhUTUw1VG9rZW4mKTsKKworICAgIC8vIFdlIGNvdWxkIGdy
YWIgbV9kb2N1bWVudCBvZmYgdGhlIGxleGVyIGlmIHdlIHdhbnRlZCB0byBzYXZlIHNwYWNlLgor
ICAgIERvY3VtZW50KiBtX2RvY3VtZW50OworICAgIGJvb2wgbV9yZXBvcnRFcnJvcnM7CisgICAg
Ly8gSFRNTDUgc3BlYyByZXF1aXJlcyB0aGF0IHdlIGJlIGFibGUgdG8gY2hhbmdlIHRoZSBzdGF0
ZSBvZiB0aGUgbGV4ZXIKKyAgICAvLyBmcm9tIHdpdGhpbiBwYXJzZXIgYWN0aW9ucy4KKyAgICBI
VE1MNUxleGVyKiBtX2xleGVyOworCisgICAgLy8gV2UncmUgcmUtdXNpbmcgbG9naWMgZnJvbSB0
aGUgb2xkIEhUTUxQYXJzZXIgd2hpbGUgdGhpcyBjbGFzcyBpcyBiZWluZyB3cml0dGVuLgorICAg
IE93blB0cjxIVE1MUGFyc2VyPiBtX2xlZ2FjeUhUTUxQYXJzZXI7Cit9OworCit9CisKKyNlbmRp
Zgo=
</data>
<flag name="commit-queue"
          id="41321"
          type_id="3"
          status="-"
          setter="commit-queue"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>56838</attachid>
            <date>2010-05-23 17:47:03 -0700</date>
            <delta_ts>2010-05-23 18:21:00 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-39572-20100523174701.patch</filename>
            <type>text/plain</type>
            <size>17999</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
ZDE5OThhYmQwMDgzMTExNWU3OWUzNWY0ZGU2ODU3Y2U0NmI4ZWM5OS4uZmI3M2I1YWZhYzViYmZi
YWZlODdiZGM2ZjQ3ZDQ5YWIzY2ZlOGRhYiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMiBAQAorMjAxMC0wNS0yMyAgRXJp
YyBTZWlkZWwgIDxlcmljQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBC
YXJ0aC4KKworICAgICAgICBBZGQgbmV3IEhUTUw1VHJlZUJ1aWxkZXIgY2xhc3MgdG8gaG9sZCB0
aGUgdHJlZSBidWlsZGVyIHNlY3Rpb24gb2YgdGhlIEhUTUw1IHBhcnNpbmcgc3BlYworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mzk1NzIKKworICAgICAg
ICBXZSd2ZSBiZWVuIHdvcmtpbmcgb24gdGhlIHRva2VuaXphdGlvbiAobGV4aW5nKSBzZWN0aW9u
IG9mIHRoZSBIVE1MNQorICAgICAgICBzcGVjIHVudGlsIG5vdyBhbmQgbGVhbmluZyBvbiB0aGUg
b2xkIEhUTUxQYXJzZXIgZm9yIHRyZWUgYnVpbGRpbmcuCisgICAgICAgIFdlIG5lZWQgdG8gc3Rh
cnQgd3JpdGluZyBtb3JlIG9mIHRoZSB0cmVlIGJ1aWxkaW5nIHNlY3Rpb25zIG9mIHRoZSBzcGVj
LAorICAgICAgICBidXQgdG8gZG8gdGhhdCB3ZSBuZWVkIGEgcGxhY2UgdG8gcHV0IHRoZSBuZXcg
Y29kZS4KKworICAgICAgICBUaGlzIHBhdGNoIG1vdmVzIG91ciBvbGQtdG8tbmV3IGNvbnZlcnNp
b24gaGFja3Mgb3V0IG9mIEhUTUw1VG9rZW5pemVyCisgICAgICAgIChvdXIgVG9rZW5pemVyLmgg
aW1wbGVtZW50YXRpb24pIGFuZCBpbnRvIEhUTUw1VHJlZUJ1aWxkZXIuCisgICAgICAgIEZvbGxv
dy11cCBwYXRjaGVzIHdpbGwgYWRkIG5ldyBIVE1MNSB0cmVlIGJ1aWxkaW5nIGNvZGUgdG8gdGhp
cyBmaWxlCisgICAgICAgIGFuZCB3aWxsIGFsbG93IHVzIHRvIHN3aXRjaCBiZXR3ZWVuIG9sZCBh
bmQgbmV3IHBhcnNlci90cmVlYnVpbGRlcgorICAgICAgICBpbXBsZW1lbnRhdGlvbnMuCisKKyAg
ICAgICAgTm8gY2hhbmdlIGluIGJlaGF2aW9yLCB0aHVzIG5vIG5ldyB0ZXN0cy4KKworICAgICAg
ICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBodG1sL0hU
TUw1VG9rZW5pemVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUw1VG9rZW5pemVyOjpIVE1M
NVRva2VuaXplcik6CisgICAgICAgIChXZWJDb3JlOjpIVE1MNVRva2VuaXplcjo6d3JpdGUpOgor
ICAgICAgICAgLSBDYWxsIHRoZSBuZXcgSFRNTDVUcmVlQnVpbGRlciBjb2RlLgorICAgICAgICAq
IGh0bWwvSFRNTDVUb2tlbml6ZXIuaDoKKyAgICAgICAgKiBodG1sL0hUTUw1VHJlZUJ1aWxkZXIu
Y3BwOiBBZGRlZC4KKyAgICAgICAgKiBodG1sL0hUTUw1VHJlZUJ1aWxkZXIuaDogQWRkZWQuCisK
IDIwMTAtMDUtMjMgIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZp
ZXdlZCBieSBPbGl2ZXIgSHVudC4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qIGIvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKaW5kZXggYTBjZTYzYWU3MTY4YWJmYzliNzY0MzEzNzlmMDRmZTFjM2FkMzM3Ny4uZjY3
YmZhMTI2YThiYzI1OTAwMzE3YThlNGI0YjAyNWY2OGU4Mjc1NiAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTMwMDgsNiArMzAwOCw4IEBACiAJCUE4NzFE
RkUzMEExNTM3NkIwMEIxMkE2OCAvKiBSZW5kZXJSZXBsYWNlZC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTg3MURGREYwQTE1Mzc2QjAwQjEyQTY4IC8q
IFJlbmRlclJlcGxhY2VkLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJQTg3MURGRTQwQTE1Mzc2QjAwQjEyQTY4IC8qIFJlbmRlcldpZGdldC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTg3MURGRTAwQTE1
Mzc2QjAwQjEyQTY4IC8qIFJlbmRlcldpZGdldC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCUE4NzFERkU1MEExNTM3NkIwMEIxMkE2OCAvKiBSZW5k
ZXJXaWRnZXQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQTg3MURGRTEwQTE1Mzc2QjAwQjEyQTY4IC8qIFJlbmRlcldpZGdldC5jcHAgKi87IH07CisJ
CUE4NzlDNjI1MTFBOUQxRjcwMDU5MjM3QSAvKiBIVE1MNVRyZWVCdWlsZGVyLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4NzlDNjIzMTFBOUQxRjcw
MDU5MjM3QSAvKiBIVE1MNVRyZWVCdWlsZGVyLmNwcCAqLzsgfTsKKwkJQTg3OUM2MjYxMUE5RDFG
NzAwNTkyMzdBIC8qIEhUTUw1VHJlZUJ1aWxkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4NzlDNjI0MTFBOUQxRjcwMDU5MjM3QSAvKiBIVE1MNVRy
ZWVCdWlsZGVyLmggKi87IH07CiAJCUE4ODNERjI3MEYzRDA0NUQwMEYxOUJGNiAvKiBWaXNpYmxl
U2VsZWN0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEE4ODNERjI1MEYzRDA0NUQwMEYxOUJGNiAvKiBWaXNpYmxlU2VsZWN0aW9uLmNwcCAqLzsg
fTsKIAkJQTg4M0RGMjgwRjNEMDQ1RDAwRjE5QkY2IC8qIFZpc2libGVTZWxlY3Rpb24uaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4ODNERjI2MEYzRDA0
NUQwMEYxOUJGNiAvKiBWaXNpYmxlU2VsZWN0aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQTg4QUQ1MkYwOTUyNEI5MjAwMUREMTk2IC8qIFF1
YXJ0ekNvcmUuZnJhbWV3b3JrIGluIEZyYW1ld29ya3MgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQTg1RDdBMkYwODc5RUJBOTAwNkE5MTcyIC8qIFF1YXJ0ekNvcmUuZnJhbWV3
b3JrICovOyB9OwpAQCAtODQzMyw2ICs4NDM1LDggQEAKIAkJQTg3MURGREYwQTE1Mzc2QjAwQjEy
QTY4IC8qIFJlbmRlclJlcGxhY2VkLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBSZW5kZXJSZXBsYWNlZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBODcxREZF
MDBBMTUzNzZCMDBCMTJBNjggLyogUmVuZGVyV2lkZ2V0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBSZW5kZXJXaWRnZXQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJQTg3MURGRTEwQTE1Mzc2QjAwQjEyQTY4IC8qIFJlbmRlcldpZGdldC5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVuZGVyV2lkZ2V0LmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTg3OUM2MjMxMUE5RDFGNzAwNTkyMzdBIC8qIEhUTUw1VHJl
ZUJ1aWxkZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSFRNTDVU
cmVlQnVpbGRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUE4NzlDNjI0MTFB
OUQxRjcwMDU5MjM3QSAvKiBIVE1MNVRyZWVCdWlsZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEhUTUw1VHJlZUJ1aWxkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJQTg4M0RGMjUwRjNEMDQ1RDAwRjE5QkY2IC8qIFZpc2libGVTZWxlY3Rpb24uY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVmlzaWJsZVNlbGVjdGlvbi5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4ODNERjI2MEYzRDA0NUQwMEYxOUJGNiAv
KiBWaXNpYmxlU2VsZWN0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFZp
c2libGVTZWxlY3Rpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTg4REQ0ODYw
QjQ2MjlBMzAwQzAyOTkwIC8qIFBhdGhUcmF2ZXJzYWxTdGF0ZS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBQYXRoVHJhdmVyc2FsU3RhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTEzMzI2LDYgKzEzMzMwLDggQEAKIAkJCQlBODEzNkQzNjA5NzNBOEU3MDBE
NzQ0NjMgLyogRm9ybURhdGFMaXN0LmggKi8sCiAJCQkJOTdFOEIzNTQxMUEyM0NFMjAwMTY5NDA5
IC8qIEhUTUw1TGV4ZXIuY3BwICovLAogCQkJCTk3RThCMzU1MTFBMjNDRTIwMDE2OTQwOSAvKiBI
VE1MNUxleGVyLmggKi8sCisJCQkJQTg3OUM2MjMxMUE5RDFGNzAwNTkyMzdBIC8qIEhUTUw1VHJl
ZUJ1aWxkZXIuY3BwICovLAorCQkJCUE4NzlDNjI0MTFBOUQxRjcwMDU5MjM3QSAvKiBIVE1MNVRy
ZWVCdWlsZGVyLmggKi8sCiAJCQkJOTdFOEIzQzIxMUEyODkwODAwMTY5NDA5IC8qIEhUTUw1VG9r
ZW4uaCAqLywKIAkJCQlBODcxMDM4ODExQTI5NDcwMDBEQkQ1MEUgLyogSFRNTDVUb2tlbml6ZXIu
Y3BwICovLAogCQkJCUE4NzEwMzg5MTFBMjk0NzAwMERCRDUwRSAvKiBIVE1MNVRva2VuaXplci5o
ICovLApAQCAtMTkyOTAsNiArMTkyOTYsNyBAQAogCQkJCTJFM0ZBQTA5MTFBMzZCRjEwMDU3NjYy
NCAvKiBDcm9zc1RocmVhZFRhc2suaCBpbiBIZWFkZXJzICovLAogCQkJCTU5QThGMUQ2MTFBNjk1
MTMwMDFBQzM0QSAvKiBEZXZpY2VPcmllbnRhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTlB
OEYxRDgxMUE2OTUyMDAwMUFDMzRBIC8qIERldmljZU9yaWVudGF0aW9uQ2xpZW50LmggaW4gSGVh
ZGVycyAqLywKKwkJCQlBODc5QzYyNjExQTlEMUY3MDA1OTIzN0EgLyogSFRNTDVUcmVlQnVpbGRl
ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJv
Y2Vzc2luZyA9IDA7CiAJCX07CkBAIC0yMTU3NSw2ICsyMTU4Miw3IEBACiAJCQkJNTlBODVFQTIx
MTlENjhEOTAwREVGMUVGIC8qIERldmljZU9yaWVudGF0aW9uRXZlbnQuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJNTlBODYwMDYxMTlEQUY3RjAwREVGMUVGIC8qIEpTRGV2aWNlT3JpZW50YXRpb25F
dmVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1OUE4RjFENDExQTY5NTA4MDAxQUMzNEEgLyog
RGV2aWNlT3JpZW50YXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQTg3OUM2MjUxMUE5RDFG
NzAwNTkyMzdBIC8qIEhUTUw1VHJlZUJ1aWxkZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkpOwog
CQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CmRpZmYgLS1n
aXQgYS9XZWJDb3JlL2h0bWwvSFRNTDVUb2tlbml6ZXIuY3BwIGIvV2ViQ29yZS9odG1sL0hUTUw1
VG9rZW5pemVyLmNwcAppbmRleCBmN2JhYmM1OTcxNTRmMjQxZjUwZDI2NjVjMzNjZjU4OGQ5NmEy
MDc3Li5jNTMxYzdlZDAzNjM0YTBjYmQyZmVmZWMxOTc3N2E2Mjg3NWI5ODYzIDEwMDY0NAotLS0g
YS9XZWJDb3JlL2h0bWwvSFRNTDVUb2tlbml6ZXIuY3BwCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1M
NVRva2VuaXplci5jcHAKQEAgLTI4LDYwICsyOCwxNiBAQAogCiAjaW5jbHVkZSAiSFRNTDVMZXhl
ci5oIgogI2luY2x1ZGUgIkhUTUw1VG9rZW4uaCIKLSNpbmNsdWRlICJIVE1MRG9jdW1lbnQuaCIK
LSNpbmNsdWRlICJIVE1MUGFyc2VyLmgiCi0jaW5jbHVkZSAiSFRNTFRva2VuaXplci5oIgotI2lu
Y2x1ZGUgIkF0dHJpYnV0ZS5oIgorI2luY2x1ZGUgIkhUTUw1VHJlZUJ1aWxkZXIuaCIKKyNpbmNs
dWRlICJOb2RlLmgiCiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCi1zdGF0aWMgdm9pZCBjb252ZXJ0VG9PbGRTdHlsZShIVE1MNVRva2VuJiB0b2tl
biwgVG9rZW4mIG9sZFN0eWxlVG9rZW4pCi17Ci0gICAgc3dpdGNoICh0b2tlbi50eXBlKCkpIHsK
LSAgICBjYXNlIEhUTUw1VG9rZW46OlVuaW5pdGlhbGl6ZWQ6Ci0gICAgICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEhUTUw1VG9rZW46OkRPQ1RZUEU6
Ci0gICAgY2FzZSBIVE1MNVRva2VuOjpFbmRPZkZpbGU6Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOwotICAgICAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgICAgICBicmVhazsKLSAgICBj
YXNlIEhUTUw1VG9rZW46OlN0YXJ0VGFnOgotICAgIGNhc2UgSFRNTDVUb2tlbjo6RW5kVGFnOiB7
Ci0gICAgICAgIG9sZFN0eWxlVG9rZW4uYmVnaW5UYWcgPSAodG9rZW4udHlwZSgpID09IEhUTUw1
VG9rZW46OlN0YXJ0VGFnKTsKLSAgICAgICAgb2xkU3R5bGVUb2tlbi5zZWxmQ2xvc2luZ1RhZyA9
IHRva2VuLnNlbGZDbG9zaW5nKCk7Ci0gICAgICAgIG9sZFN0eWxlVG9rZW4udGFnTmFtZSA9IHRv
a2VuLm5hbWUoKTsKLSAgICAgICAgSFRNTDVUb2tlbjo6QXR0cmlidXRlTGlzdCYgYXR0cmlidXRl
cyA9IHRva2VuLmF0dHJpYnV0ZXMoKTsKLSAgICAgICAgZm9yIChIVE1MNVRva2VuOjpBdHRyaWJ1
dGVMaXN0OjppdGVyYXRvciBpdGVyID0gYXR0cmlidXRlcy5iZWdpbigpOwotICAgICAgICAgICAg
IGl0ZXIgIT0gYXR0cmlidXRlcy5lbmQoKTsgKytpdGVyKSB7Ci0gICAgICAgICAgICBpZiAoIWl0
ZXItPm1fbmFtZS5pc0VtcHR5KCkpIHsKLSAgICAgICAgICAgICAgICBTdHJpbmcgbmFtZSA9IFN0
cmluZyhTdHJpbmdJbXBsOjphZG9wdChpdGVyLT5tX25hbWUpKTsKLSAgICAgICAgICAgICAgICBT
dHJpbmcgdmFsdWUgPSBTdHJpbmcoU3RyaW5nSW1wbDo6YWRvcHQoaXRlci0+bV92YWx1ZSkpOwot
ICAgICAgICAgICAgICAgIFJlZlB0cjxBdHRyaWJ1dGU+IG1hcHBlZEF0dHJpYnV0ZSA9IEF0dHJp
YnV0ZTo6Y3JlYXRlTWFwcGVkKG5hbWUsIHZhbHVlKTsKLSAgICAgICAgICAgICAgICBpZiAoIW9s
ZFN0eWxlVG9rZW4uYXR0cnMpCi0gICAgICAgICAgICAgICAgICAgIG9sZFN0eWxlVG9rZW4uYXR0
cnMgPSBOYW1lZE5vZGVNYXA6OmNyZWF0ZSgpOwotICAgICAgICAgICAgICAgIG9sZFN0eWxlVG9r
ZW4uYXR0cnMtPmluc2VydEF0dHJpYnV0ZShtYXBwZWRBdHRyaWJ1dGUucmVsZWFzZSgpLCBmYWxz
ZSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgYnJlYWs7Ci0gICAgfQotICAg
IGNhc2UgSFRNTDVUb2tlbjo6Q29tbWVudDoKLSAgICAgICAgb2xkU3R5bGVUb2tlbi50YWdOYW1l
ID0gY29tbWVudEF0b207Ci0gICAgICAgIG9sZFN0eWxlVG9rZW4udGV4dCA9IHRva2VuLmRhdGEo
KS5pbXBsKCk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgSFRNTDVUb2tlbjo6Q2hhcmFjdGVy
OgotICAgICAgICBvbGRTdHlsZVRva2VuLnRhZ05hbWUgPSB0ZXh0QXRvbTsKLSAgICAgICAgb2xk
U3R5bGVUb2tlbi50ZXh0ID0gdG9rZW4uY2hhcmFjdGVycygpLmltcGwoKTsKLSAgICAgICAgYnJl
YWs7Ci0gICAgfQotfQotCi1IVE1MNVRva2VuaXplcjo6SFRNTDVUb2tlbml6ZXIoSFRNTERvY3Vt
ZW50KiBkb2MsIGJvb2wgcmVwb3J0RXJyb3JzKQorSFRNTDVUb2tlbml6ZXI6OkhUTUw1VG9rZW5p
emVyKEhUTUxEb2N1bWVudCogZG9jdW1lbnQsIGJvb2wgcmVwb3J0RXJyb3JzKQogICAgIDogVG9r
ZW5pemVyKCkKLSAgICAsIG1fZG9jKGRvYykKICAgICAsIG1fbGV4ZXIobmV3IEhUTUw1TGV4ZXIp
Ci0gICAgLCBtX3BhcnNlcihuZXcgSFRNTFBhcnNlcihkb2MsIHJlcG9ydEVycm9ycykpCisgICAg
LCBtX3RyZWVCdWlsZGVyKG5ldyBIVE1MNVRyZWVCdWlsZGVyKG1fbGV4ZXIuZ2V0KCksIGRvY3Vt
ZW50LCByZXBvcnRFcnJvcnMpKQogewogICAgIGJlZ2luKCk7CiB9CkBAIC0xMDEsMjQgKzU3LDcg
QEAgdm9pZCBIVE1MNVRva2VuaXplcjo6d3JpdGUoY29uc3QgU2VnbWVudGVkU3RyaW5nJiBzb3Vy
Y2UsIGJvb2wpCiAgICAgSFRNTDVUb2tlbiB0b2tlbjsKICAgICB3aGlsZSAoIW1fc291cmNlLmlz
RW1wdHkoKSkgewogICAgICAgICBpZiAobV9sZXhlci0+bmV4dFRva2VuKG1fc291cmNlLCB0b2tl
bikpIHsKLSAgICAgICAgICAgIC8vIGh0dHA6Ly93d3cud2hhdHdnLm9yZy9zcGVjcy93ZWItYXBw
cy9jdXJyZW50LXdvcmsvI3RyZWUtY29uc3RydWN0aW9uCi0gICAgICAgICAgICAvLyBXZSBuZWVk
IHRvIGFkZCBjb2RlIHRvIHRoZSBwYXJzZXIgaW4gb3JkZXIgdG8gdW5kZXJzdGFuZAotICAgICAg
ICAgICAgLy8gSFRNTDVUb2tlbiBvYmplY3RzLiAgVGhlIG9sZCBIVE1MIGNvZGVwYXRoIGRvZXMg
bm90IGhhdmUgYSBuaWNlCi0gICAgICAgICAgICAvLyBzZXBhcmF0aW9uIGJldHdlZW4gdGhlIHBh
cnNlciBsb2dpYyBhbmQgdG9rZW5pemVyIGxvZ2ljIGxpa2UKLSAgICAgICAgICAgIC8vIHRoZSBI
VE1MNSBjb2RlcGF0aCBzaG91bGQuICBUaGUgY2FsbCBzaG91bGQgbG9vayBzb21ldGhpbmcgbGlr
ZToKLSAgICAgICAgICAgIC8vIG1fcGFyc2VyLT5jb25zdHJ1Y3RUcmVlRnJvbVRva2VuKHRva2Vu
KTsKLSAgICAgICAgICAgIGlmICh0b2tlbi50eXBlKCkgPT0gSFRNTDVUb2tlbjo6U3RhcnRUYWcg
JiYgdG9rZW4ubmFtZSgpID09ICJzY3JpcHQiKSB7Ci0gICAgICAgICAgICAgICAgLy8gRklYTUU6
IFRoaXMgd29yayBpcyBzdXBwb3NlZCB0byBiZSBkb25lIGJ5IHRoZSBwYXJzZXIsIGJ1dAotICAg
ICAgICAgICAgICAgIC8vIHdlIHdhbnQgdG8ga2VlcCB1c2luZyB0aGUgb2xkIHBhcnNlciBmb3Ig
bm93LCBzbyB3ZSBoYXZlIHRvCi0gICAgICAgICAgICAgICAgLy8gZG8gdGhpcyB3b3JrIG1hbnVh
bGx5LgotICAgICAgICAgICAgICAgIG1fbGV4ZXItPnNldFN0YXRlKEhUTUw1TGV4ZXI6OlNjcmlw
dERhdGFTdGF0ZSk7Ci0gICAgICAgICAgICB9ICAgICAgICAgICAKLSAgICAgICAgICAgIC8vIEZv
ciBub3csIHdlIHRyYW5zbGF0ZSBpbnRvIGFuIG9sZC1zdHlsZSB0b2tlbiBmb3IgdGVzdGluZy4K
LSAgICAgICAgICAgIFRva2VuIG9sZFN0eWxlVG9rZW47Ci0gICAgICAgICAgICBjb252ZXJ0VG9P
bGRTdHlsZSh0b2tlbiwgb2xkU3R5bGVUb2tlbik7Ci0KLSAgICAgICAgICAgIG1fcGFyc2VyLT5w
YXJzZVRva2VuKCZvbGRTdHlsZVRva2VuKTsKLQorICAgICAgICAgICAgbV90cmVlQnVpbGRlci0+
Y29uc3RydWN0VHJlZUZyb21Ub2tlbih0b2tlbik7CiAgICAgICAgICAgICB0b2tlbi5jbGVhcigp
OwogICAgICAgICB9CiAgICAgfQpAQCAtMTI2LDcgKzY1LDcgQEAgdm9pZCBIVE1MNVRva2VuaXpl
cjo6d3JpdGUoY29uc3QgU2VnbWVudGVkU3RyaW5nJiBzb3VyY2UsIGJvb2wpCiAKIHZvaWQgSFRN
TDVUb2tlbml6ZXI6OmVuZCgpCiB7Ci0gICAgbV9wYXJzZXItPmZpbmlzaGVkKCk7CisgICAgbV90
cmVlQnVpbGRlci0+ZmluaXNoZWQoKTsKIH0KIAogdm9pZCBIVE1MNVRva2VuaXplcjo6ZmluaXNo
KCkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MNVRva2VuaXplci5oIGIvV2ViQ29yZS9o
dG1sL0hUTUw1VG9rZW5pemVyLmgKaW5kZXggM2YyZGFmZTEyOGY0MGQxYjA0OTBiY2Q1MzAyNWRm
NGY2Zjc5NGJiNi4uN2Q1MDNhYWI1YWNkYzk3NWRjMjBhMzUyMjkyZGI1N2M5NDU0Y2FiZSAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUw1VG9rZW5pemVyLmgKKysrIGIvV2ViQ29yZS9odG1s
L0hUTUw1VG9rZW5pemVyLmgKQEAgLTMzLDkgKzMzLDggQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCi1jbGFzcyBEb2N1bWVudDsKIGNsYXNzIEhUTUxEb2N1bWVudDsKLWNsYXNzIEhUTUxQYXJz
ZXI7CitjbGFzcyBIVE1MNVRyZWVCdWlsZGVyOwogY2xhc3MgSFRNTDVMZXhlcjsKIAogLy8gRklY
TUU6IFRoaXMgaXMgdGhlIHdyb25nIGxheWVyIHRvIGhvb2sgaW4gdGhlIG5ldyBIVE1MIDUgTGV4
ZXIsCkBAIC01OSw5ICs1OCw4IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgU2VnbWVudGVkU3Ry
aW5nIG1fc291cmNlOwogCi0gICAgRG9jdW1lbnQqIG1fZG9jOwogICAgIE93blB0cjxIVE1MNUxl
eGVyPiBtX2xleGVyOwotICAgIE93blB0cjxIVE1MUGFyc2VyPiBtX3BhcnNlcjsKKyAgICBPd25Q
dHI8SFRNTDVUcmVlQnVpbGRlcj4gbV90cmVlQnVpbGRlcjsKIH07CiAKIH0KZGlmZiAtLWdpdCBh
L1dlYkNvcmUvaHRtbC9IVE1MNVRyZWVCdWlsZGVyLmNwcCBiL1dlYkNvcmUvaHRtbC9IVE1MNVRy
ZWVCdWlsZGVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hZjUzYWM2YjkyZGJkNWE1ZTc1ZDE0ZjcyZDQ3MjEy
YjU5YjQ3OTdkCi0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9odG1sL0hUTUw1VHJlZUJ1aWxk
ZXIuY3BwCkBAIC0wLDAgKzEsMTE3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2ds
ZSwgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgR09PR0xFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBHT09HTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiSFRNTDVU
cmVlQnVpbGRlci5oIgorCisjaW5jbHVkZSAiQXR0cmlidXRlLmgiCisjaW5jbHVkZSAiSFRNTDVM
ZXhlci5oIgorI2luY2x1ZGUgIkhUTUw1VG9rZW4uaCIKKyNpbmNsdWRlICJIVE1MRG9jdW1lbnQu
aCIKKyNpbmNsdWRlICJIVE1MUGFyc2VyLmgiCisjaW5jbHVkZSAiSFRNTFRva2VuaXplci5oIgor
I2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworSFRN
TDVUcmVlQnVpbGRlcjo6SFRNTDVUcmVlQnVpbGRlcihIVE1MNUxleGVyKiBsZXhlciwgSFRNTERv
Y3VtZW50KiBkb2N1bWVudCwgYm9vbCByZXBvcnRFcnJvcnMpCisgICAgOiBtX2RvY3VtZW50KGRv
Y3VtZW50KQorICAgICwgbV9yZXBvcnRFcnJvcnMocmVwb3J0RXJyb3JzKQorICAgICwgbV9sZXhl
cihsZXhlcikKKyAgICAsIG1fbGVnYWN5SFRNTFBhcnNlcihuZXcgSFRNTFBhcnNlcihkb2N1bWVu
dCwgcmVwb3J0RXJyb3JzKSkKK3sKK30KKworSFRNTDVUcmVlQnVpbGRlcjo6fkhUTUw1VHJlZUJ1
aWxkZXIoKQoreworfQorCitzdGF0aWMgdm9pZCBjb252ZXJ0VG9PbGRTdHlsZShIVE1MNVRva2Vu
JiB0b2tlbiwgVG9rZW4mIG9sZFN0eWxlVG9rZW4pCit7CisgICAgc3dpdGNoICh0b2tlbi50eXBl
KCkpIHsKKyAgICBjYXNlIEhUTUw1VG9rZW46OlVuaW5pdGlhbGl6ZWQ6CisgICAgICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEhUTUw1VG9rZW46OkRP
Q1RZUEU6CisgICAgY2FzZSBIVE1MNVRva2VuOjpFbmRPZkZpbGU6CisgICAgICAgIEFTU0VSVF9O
T1RfUkVBQ0hFRCgpOworICAgICAgICBub3RJbXBsZW1lbnRlZCgpOworICAgICAgICBicmVhazsK
KyAgICBjYXNlIEhUTUw1VG9rZW46OlN0YXJ0VGFnOgorICAgIGNhc2UgSFRNTDVUb2tlbjo6RW5k
VGFnOiB7CisgICAgICAgIG9sZFN0eWxlVG9rZW4uYmVnaW5UYWcgPSAodG9rZW4udHlwZSgpID09
IEhUTUw1VG9rZW46OlN0YXJ0VGFnKTsKKyAgICAgICAgb2xkU3R5bGVUb2tlbi5zZWxmQ2xvc2lu
Z1RhZyA9IHRva2VuLnNlbGZDbG9zaW5nKCk7CisgICAgICAgIG9sZFN0eWxlVG9rZW4udGFnTmFt
ZSA9IHRva2VuLm5hbWUoKTsKKyAgICAgICAgSFRNTDVUb2tlbjo6QXR0cmlidXRlTGlzdCYgYXR0
cmlidXRlcyA9IHRva2VuLmF0dHJpYnV0ZXMoKTsKKyAgICAgICAgZm9yIChIVE1MNVRva2VuOjpB
dHRyaWJ1dGVMaXN0OjppdGVyYXRvciBpdGVyID0gYXR0cmlidXRlcy5iZWdpbigpOworICAgICAg
ICAgICAgIGl0ZXIgIT0gYXR0cmlidXRlcy5lbmQoKTsgKytpdGVyKSB7CisgICAgICAgICAgICBp
ZiAoIWl0ZXItPm1fbmFtZS5pc0VtcHR5KCkpIHsKKyAgICAgICAgICAgICAgICBTdHJpbmcgbmFt
ZSA9IFN0cmluZyhTdHJpbmdJbXBsOjphZG9wdChpdGVyLT5tX25hbWUpKTsKKyAgICAgICAgICAg
ICAgICBTdHJpbmcgdmFsdWUgPSBTdHJpbmcoU3RyaW5nSW1wbDo6YWRvcHQoaXRlci0+bV92YWx1
ZSkpOworICAgICAgICAgICAgICAgIFJlZlB0cjxBdHRyaWJ1dGU+IG1hcHBlZEF0dHJpYnV0ZSA9
IEF0dHJpYnV0ZTo6Y3JlYXRlTWFwcGVkKG5hbWUsIHZhbHVlKTsKKyAgICAgICAgICAgICAgICBp
ZiAoIW9sZFN0eWxlVG9rZW4uYXR0cnMpCisgICAgICAgICAgICAgICAgICAgIG9sZFN0eWxlVG9r
ZW4uYXR0cnMgPSBOYW1lZE5vZGVNYXA6OmNyZWF0ZSgpOworICAgICAgICAgICAgICAgIG9sZFN0
eWxlVG9rZW4uYXR0cnMtPmluc2VydEF0dHJpYnV0ZShtYXBwZWRBdHRyaWJ1dGUucmVsZWFzZSgp
LCBmYWxzZSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAg
fQorICAgIGNhc2UgSFRNTDVUb2tlbjo6Q29tbWVudDoKKyAgICAgICAgb2xkU3R5bGVUb2tlbi50
YWdOYW1lID0gY29tbWVudEF0b207CisgICAgICAgIG9sZFN0eWxlVG9rZW4udGV4dCA9IHRva2Vu
LmRhdGEoKS5pbXBsKCk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgSFRNTDVUb2tlbjo6Q2hh
cmFjdGVyOgorICAgICAgICBvbGRTdHlsZVRva2VuLnRhZ05hbWUgPSB0ZXh0QXRvbTsKKyAgICAg
ICAgb2xkU3R5bGVUb2tlbi50ZXh0ID0gdG9rZW4uY2hhcmFjdGVycygpLmltcGwoKTsKKyAgICAg
ICAgYnJlYWs7CisgICAgfQorfQorCitQYXNzUmVmUHRyPE5vZGU+IEhUTUw1VHJlZUJ1aWxkZXI6
OnBhc3NUb2tlblRvTGVnYWN5UGFyc2VyKEhUTUw1VG9rZW4mIHRva2VuKQoreworICAgIGlmICh0
b2tlbi50eXBlKCkgPT0gSFRNTDVUb2tlbjo6U3RhcnRUYWcgJiYgdG9rZW4ubmFtZSgpID09ICJz
Y3JpcHQiKSB7CisgICAgICAgIC8vIFRoaXMgd29yayBpcyBzdXBwb3NlZCB0byBiZSBkb25lIGJ5
IHRoZSBwYXJzZXIsIGJ1dAorICAgICAgICAvLyB3aGVuIHVzaW5nIHRoZSBvbGQgcGFyc2VyIGZv
ciB3ZSBoYXZlIHRvIGRvIHRoaXMgbWFudWFsbHkuCisgICAgICAgIG1fbGV4ZXItPnNldFN0YXRl
KEhUTUw1TGV4ZXI6OlNjcmlwdERhdGFTdGF0ZSk7CisgICAgfQorICAgIC8vIEZvciBub3csIHdl
IHRyYW5zbGF0ZSBpbnRvIGFuIG9sZC1zdHlsZSB0b2tlbiBmb3IgdGVzdGluZy4KKyAgICBUb2tl
biBvbGRTdHlsZVRva2VuOworICAgIGNvbnZlcnRUb09sZFN0eWxlKHRva2VuLCBvbGRTdHlsZVRv
a2VuKTsKKworICAgIHJldHVybiBtX2xlZ2FjeUhUTUxQYXJzZXItPnBhcnNlVG9rZW4oJm9sZFN0
eWxlVG9rZW4pOworfQorCitQYXNzUmVmUHRyPE5vZGU+IEhUTUw1VHJlZUJ1aWxkZXI6OmNvbnN0
cnVjdFRyZWVGcm9tVG9rZW4oSFRNTDVUb2tlbiYgdG9rZW4pCit7CisgICAgcmV0dXJuIHBhc3NU
b2tlblRvTGVnYWN5UGFyc2VyKHRva2VuKTsKKyAgICAvLyBPdXIgSFRNTDUgcGFyc2VyIGltcGxl
bWVudGF0aW9uIHdpbGwgZ28gaGVyZSBpbiBhIHNlcGFyYXRlIHBhdGNoLgorfQorCit2b2lkIEhU
TUw1VHJlZUJ1aWxkZXI6OmZpbmlzaGVkKCkKK3sKKyAgICBtX2xlZ2FjeUhUTUxQYXJzZXItPmZp
bmlzaGVkKCk7Cit9CisKK30KZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MNVRyZWVCdWls
ZGVyLmggYi9XZWJDb3JlL2h0bWwvSFRNTDVUcmVlQnVpbGRlci5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ2NmZk
NmU3MGM2NmIxOWZhOWUxNmJhMzk1MDZiNDhiZTVhOGU0MTYKLS0tIC9kZXYvbnVsbAorKysgYi9X
ZWJDb3JlL2h0bWwvSFRNTDVUcmVlQnVpbGRlci5oCkBAIC0wLDAgKzEsNjYgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlLCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBHT09HTEUgSU5DLiBgYEFT
IElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEdPT0dMRSBJTkMuIE9SCisgKiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgSFRNTDVU
cmVlQnVpbGRlcl9oCisjZGVmaW5lIEhUTUw1VHJlZUJ1aWxkZXJfaAorCisjaW5jbHVkZSA8d3Rm
L05vbmNvcHlhYmxlLmg+CisjaW5jbHVkZSA8d3RmL093blB0ci5oPgorI2luY2x1ZGUgPHd0Zi9Q
YXNzUmVmUHRyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIERvY3VtZW50OworY2xh
c3MgSFRNTDVMZXhlcjsKK2NsYXNzIEhUTUw1VG9rZW47CitjbGFzcyBIVE1MRG9jdW1lbnQ7Citj
bGFzcyBIVE1MUGFyc2VyOworY2xhc3MgTm9kZTsKKworY2xhc3MgSFRNTDVUcmVlQnVpbGRlciA6
IHB1YmxpYyBOb25jb3B5YWJsZSB7CitwdWJsaWM6CisgICAgSFRNTDVUcmVlQnVpbGRlcihIVE1M
NUxleGVyKiwgSFRNTERvY3VtZW50KiwgYm9vbCByZXBvcnRFcnJvcnMpOworICAgIH5IVE1MNVRy
ZWVCdWlsZGVyKCk7CisKKyAgICAvLyBUaGUgdG9rZW4gcmVhbGx5IHNob3VsZCBiZSBwYXNzZWQg
YXMgYSBjb25zdCYgc2luY2UgaXQncyBuZXZlciBtb2RpZmllZC4KKyAgICBQYXNzUmVmUHRyPE5v
ZGU+IGNvbnN0cnVjdFRyZWVGcm9tVG9rZW4oSFRNTDVUb2tlbiYpOworICAgIHZvaWQgZmluaXNo
ZWQoKTsKKworcHJpdmF0ZToKKyAgICBQYXNzUmVmUHRyPE5vZGU+IHBhc3NUb2tlblRvTGVnYWN5
UGFyc2VyKEhUTUw1VG9rZW4mKTsKKworICAgIC8vIFdlIGNvdWxkIGdyYWIgbV9kb2N1bWVudCBv
ZmYgdGhlIGxleGVyIGlmIHdlIHdhbnRlZCB0byBzYXZlIHNwYWNlLgorICAgIERvY3VtZW50KiBt
X2RvY3VtZW50OworICAgIGJvb2wgbV9yZXBvcnRFcnJvcnM7CisgICAgLy8gSFRNTDUgc3BlYyBy
ZXF1aXJlcyB0aGF0IHdlIGJlIGFibGUgdG8gY2hhbmdlIHRoZSBzdGF0ZSBvZiB0aGUgbGV4ZXIK
KyAgICAvLyBmcm9tIHdpdGhpbiBwYXJzZXIgYWN0aW9ucy4KKyAgICBIVE1MNUxleGVyKiBtX2xl
eGVyOworCisgICAgLy8gV2UncmUgcmUtdXNpbmcgbG9naWMgZnJvbSB0aGUgb2xkIEhUTUxQYXJz
ZXIgd2hpbGUgdGhpcyBjbGFzcyBpcyBiZWluZyB3cml0dGVuLgorICAgIE93blB0cjxIVE1MUGFy
c2VyPiBtX2xlZ2FjeUhUTUxQYXJzZXI7Cit9OworCit9CisKKyNlbmRpZgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>