<?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>108659</bug_id>
          
          <creation_ts>2013-02-01 10:43:46 -0800</creation_ts>
          <short_desc>Structure should have a StructureRareData field to save space</short_desc>
          <delta_ts>2013-02-01 15:14:53 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</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="Mark Hahnenberg">mhahnenberg</reporter>
          <assigned_to name="Mark Hahnenberg">mhahnenberg</assigned_to>
          <cc>gyuyoung.kim</cc>
    
    <cc>philn</cc>
    
    <cc>rakuco</cc>
    
    <cc>webkit-ews</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>822946</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2013-02-01 10:43:46 -0800</bug_when>
    <thetext>Many of the fields in Structure are used in a subset of all total Structures; however, all Structures must pay the memory cost of those fields, regardless of whether they use them or not. Since we can have potentially many Structures on a single page (e.g. bing.com creates ~1500 Structures), it would be profitable to refactor Structure so that not every Structure has to pay the memory costs for these infrequently used fields.

To accomplish this, we can create a new StructureRareData class to house these seldom used fields which we can allocate on demand whenever a Structure requires it. This StructureRareData can itself be a JSCell, and can do all the marking of the fields for the Structure. The StructureRareData field will be part of a union with m_previous to minimize overhead. We&apos;ll add a new field to JSTypeInfo to indicate that the Structure has a StructureRareData field. During transitions, a Structure will clone its previous Structure&apos;s StructureRareData if it has one. There could be some potential for optimizing this process, but the initial implementation will be dumb since we&apos;d be paying these overhead costs for each Structure anyways.

Initially we&apos;ll only put two fields in the StructureRareData to avoid a memory regression. Over time we&apos;ll continue to move fields from Structure to StructureRareData. Optimistically, this could potentially reduce our Structure memory footprint by up to around 75%. It could also clear the way for removing destructors from Structures (and into StructureRareData).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>823092</commentid>
    <comment_count>1</comment_count>
      <attachid>186097</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2013-02-01 12:00:36 -0800</bug_when>
    <thetext>Created attachment 186097
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>823100</commentid>
    <comment_count>2</comment_count>
      <attachid>186097</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-02-01 12:06:38 -0800</bug_when>
    <thetext>Comment on attachment 186097
Patch

Attachment 186097 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/16293947</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>823136</commentid>
    <comment_count>3</comment_count>
      <attachid>186106</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2013-02-01 12:34:57 -0800</bug_when>
    <thetext>Created attachment 186106
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>823147</commentid>
    <comment_count>4</comment_count>
      <attachid>186106</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-02-01 12:46:31 -0800</bug_when>
    <thetext>Comment on attachment 186106
Patch

Attachment 186106 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/16333034</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>823231</commentid>
    <comment_count>5</comment_count>
      <attachid>186106</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-02-01 13:52:10 -0800</bug_when>
    <thetext>Comment on attachment 186106
Patch

Attachment 186106 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/16337115</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>823255</commentid>
    <comment_count>6</comment_count>
      <attachid>186106</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-02-01 14:16:00 -0800</bug_when>
    <thetext>Comment on attachment 186106
Patch

Attachment 186106 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/16341089</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>823265</commentid>
    <comment_count>7</comment_count>
      <attachid>186136</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2013-02-01 14:21:20 -0800</bug_when>
    <thetext>Created attachment 186136
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>823311</commentid>
    <comment_count>8</comment_count>
      <attachid>186153</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2013-02-01 14:56:32 -0800</bug_when>
    <thetext>Created attachment 186153
perf results</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>823316</commentid>
    <comment_count>9</comment_count>
      <attachid>186136</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-02-01 15:03:08 -0800</bug_when>
    <thetext>Comment on attachment 186136
Patch

r=me too</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>823328</commentid>
    <comment_count>10</comment_count>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2013-02-01 15:14:45 -0800</bug_when>
    <thetext>Landed in http://trac.webkit.org/changeset/141651.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>186097</attachid>
            <date>2013-02-01 12:00:36 -0800</date>
            <delta_ts>2013-02-01 12:34:55 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-108659-20130201115718.patch</filename>
            <type>text/plain</type>
            <size>39767</size>
            <attacher name="Mark Hahnenberg">mhahnenberg</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTQxNjE4KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDg1IEBA
CisyMDEzLTAyLTAxICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFobmVuYmVyZ0BhcHBsZS5jb20+CisK
KyAgICAgICAgU3RydWN0dXJlIHNob3VsZCBoYXZlIGEgU3RydWN0dXJlUmFyZURhdGEgZmllbGQg
dG8gc2F2ZSBzcGFjZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTA4NjU5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgTWFueSBvZiB0aGUgZmllbGRzIGluIFN0cnVjdHVyZSBhcmUgdXNlZCBpbiBhIHN1YnNl
dCBvZiBhbGwgdG90YWwgU3RydWN0dXJlczsgaG93ZXZlciwgYWxsIFN0cnVjdHVyZXMgbXVzdCAK
KyAgICAgICAgcGF5IHRoZSBtZW1vcnkgY29zdCBvZiB0aG9zZSBmaWVsZHMsIHJlZ2FyZGxlc3Mg
b2Ygd2hldGhlciB0aGV5IHVzZSB0aGVtIG9yIG5vdC4gU2luY2Ugd2UgY2FuIGhhdmUgcG90ZW50
aWFsbHkgCisgICAgICAgIG1hbnkgU3RydWN0dXJlcyBvbiBhIHNpbmdsZSBwYWdlIChlLmcuIGJp
bmcuY29tIGNyZWF0ZXMgfjE1MDAgU3RydWN0dXJlcyksIGl0IHdvdWxkIGJlIHByb2ZpdGFibGUg
dG8gCisgICAgICAgIHJlZmFjdG9yIFN0cnVjdHVyZSBzbyB0aGF0IG5vdCBldmVyeSBTdHJ1Y3R1
cmUgaGFzIHRvIHBheSB0aGUgbWVtb3J5IGNvc3RzIGZvciB0aGVzZSBpbmZyZXF1ZW50bHkgdXNl
ZCBmaWVsZHMuCisKKyAgICAgICAgVG8gYWNjb21wbGlzaCB0aGlzLCB3ZSBjYW4gY3JlYXRlIGEg
bmV3IFN0cnVjdHVyZVJhcmVEYXRhIGNsYXNzIHRvIGhvdXNlIHRoZXNlIHNlbGRvbSB1c2VkIGZp
ZWxkcyB3aGljaCB3ZSAKKyAgICAgICAgY2FuIGFsbG9jYXRlIG9uIGRlbWFuZCB3aGVuZXZlciBh
IFN0cnVjdHVyZSByZXF1aXJlcyBpdC4gVGhpcyBTdHJ1Y3R1cmVSYXJlRGF0YSBjYW4gaXRzZWxm
IGJlIGEgSlNDZWxsLCBhbmQgCisgICAgICAgIGNhbiBkbyBhbGwgdGhlIG1hcmtpbmcgb2YgdGhl
IGZpZWxkcyBmb3IgdGhlIFN0cnVjdHVyZS4gVGhlIFN0cnVjdHVyZVJhcmVEYXRhIGZpZWxkIHdp
bGwgYmUgcGFydCBvZiBhIHVuaW9uIAorICAgICAgICB3aXRoIG1fcHJldmlvdXMgdG8gbWluaW1p
emUgb3ZlcmhlYWQuIFdlJ2xsIGFkZCBhIG5ldyBmaWVsZCB0byBKU1R5cGVJbmZvIHRvIGluZGlj
YXRlIHRoYXQgdGhlIFN0cnVjdHVyZSBoYXMgCisgICAgICAgIGEgU3RydWN0dXJlUmFyZURhdGEg
ZmllbGQuIER1cmluZyB0cmFuc2l0aW9ucywgYSBTdHJ1Y3R1cmUgd2lsbCBjbG9uZSBpdHMgcHJl
dmlvdXMgU3RydWN0dXJlJ3MgU3RydWN0dXJlUmFyZURhdGEgCisgICAgICAgIGlmIGl0IGhhcyBv
bmUuIFRoZXJlIGNvdWxkIGJlIHNvbWUgcG90ZW50aWFsIGZvciBvcHRpbWl6aW5nIHRoaXMgcHJv
Y2VzcywgYnV0IHRoZSBpbml0aWFsIGltcGxlbWVudGF0aW9uIHdpbGwgCisgICAgICAgIGJlIGR1
bWIgc2luY2Ugd2UnZCBiZSBwYXlpbmcgdGhlc2Ugb3ZlcmhlYWQgY29zdHMgZm9yIGVhY2ggU3Ry
dWN0dXJlIGFueXdheXMuCisKKyAgICAgICAgSW5pdGlhbGx5IHdlJ2xsIG9ubHkgcHV0IHR3byBm
aWVsZHMgaW4gdGhlIFN0cnVjdHVyZVJhcmVEYXRhIHRvIGF2b2lkIGEgbWVtb3J5IHJlZ3Jlc3Np
b24uIE92ZXIgdGltZSB3ZSdsbCAKKyAgICAgICAgY29udGludWUgdG8gbW92ZSBmaWVsZHMgZnJv
bSBTdHJ1Y3R1cmUgdG8gU3RydWN0dXJlUmFyZURhdGEuIE9wdGltaXN0aWNhbGx5LCB0aGlzIGNv
dWxkIHBvdGVudGlhbGx5IHJlZHVjZSBvdXIgCisgICAgICAgIFN0cnVjdHVyZSBtZW1vcnkgZm9v
dHByaW50IGJ5IHVwIHRvIGFyb3VuZCA3NSUuIEl0IGNvdWxkIGFsc28gY2xlYXIgdGhlIHdheSBm
b3IgcmVtb3ZpbmcgZGVzdHJ1Y3RvcnMgZnJvbSAKKyAgICAgICAgU3RydWN0dXJlcyAoYW5kIGlu
dG8gU3RydWN0dXJlUmFyZURhdGEpLgorCisgICAgICAgICogSmF2YVNjcmlwdENvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBkZmcvREZHUmVwYXRjaC5jcHA6IEluY2x1
ZGVzIGZvciBsaW5raW5nIHB1cnBvc2VzLgorICAgICAgICAqIGppdC9KSVRTdHVicy5jcHA6Cisg
ICAgICAgICoganNjLmNwcDoKKyAgICAgICAgKiBsbGludC9MTEludFNsb3dQYXRocy5jcHA6Cisg
ICAgICAgICogcnVudGltZS9KU0NlbGxJbmxpbmVzLmg6CisgICAgICAgICogcnVudGltZS9KU0ds
b2JhbERhdGEuY3BwOiBOZXcgU3RydWN0dXJlIGZvciBTdHJ1Y3R1cmVSYXJlRGF0YSBjbGFzcy4K
KyAgICAgICAgKEpTQzo6SlNHbG9iYWxEYXRhOjpKU0dsb2JhbERhdGEpOgorICAgICAgICAqIHJ1
bnRpbWUvSlNHbG9iYWxEYXRhLmg6CisgICAgICAgIChKU0dsb2JhbERhdGEpOgorICAgICAgICAq
IHJ1bnRpbWUvSlNHbG9iYWxPYmplY3QuaDoKKyAgICAgICAgKiBydW50aW1lL0pTVHlwZUluZm8u
aDogTmV3IGZsYWcgdG8gaW5kaWNhdGUgd2hldGhlciBvciBub3QgYSBTdHJ1Y3R1cmUgaGFzIGEg
U3RydWN0dXJlUmFyZURhdGEgZmllbGQuCisgICAgICAgIChKU0M6OlR5cGVJbmZvOjpmbGFncyk6
CisgICAgICAgIChKU0M6OlR5cGVJbmZvOjpzdHJ1Y3R1cmVIYXNSYXJlRGF0YSk6CisgICAgICAg
ICogcnVudGltZS9PYmplY3RQcm90b3R5cGUuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvU3RydWN0
dXJlLmNwcDoKKyAgICAgICAgKEpTQzo6U3RydWN0dXJlOjpkdW1wU3RhdGlzdGljcyk6CisgICAg
ICAgIChKU0M6OlN0cnVjdHVyZTo6U3RydWN0dXJlKTogTWFrZSBzdXJlIHRvIGluaXRpYWxpemUg
dGhlIHVuaW9uIGV4cGxpY2l0bHkgdG8gemVybywgc2luY2UgdGhhdCBkb2Vzbid0IGhhcHBlbiBi
eQorICAgICAgICBpdHNlbGYgbm93LiBSZXBsYWNlIGFsbCBhY2Nlc3NlcyBvZiBtX3ByZXZpb3Vz
IHRvIGNhbGxzIHRvIHByZXZpb3VzSUQoKSwgd2hpY2ggbm93IGhhbmRsZXMgdGhlIGxvZ2ljIG9m
IHdoZXJlIHRvIAorICAgICAgICByZWFkIHRoZSBmaWVsZCBmcm9tLgorICAgICAgICAoSlNDOjpT
dHJ1Y3R1cmU6Om1hdGVyaWFsaXplUHJvcGVydHlNYXApOgorICAgICAgICAoSlNDOjpTdHJ1Y3R1
cmU6OmFkZFByb3BlcnR5VHJhbnNpdGlvbik6CisgICAgICAgIChKU0M6OlN0cnVjdHVyZTo6bm9u
UHJvcGVydHlUcmFuc2l0aW9uKToKKyAgICAgICAgKEpTQzo6U3RydWN0dXJlOjpwaW4pOgorICAg
ICAgICAoSlNDOjpTdHJ1Y3R1cmU6OmFsbG9jYXRlUmFyZURhdGEpOiBIYW5kbGVzIGFsbG9jYXRp
bmcgYSBicmFuZCBuZXcgU3RydWN0dXJlUmFyZURhdGEgZmllbGQuCisgICAgICAgIChKU0M6OlN0
cnVjdHVyZTo6Y2xvbmVSYXJlRGF0YUZyb20pOiBIYW5kbGVzIGNsb25pbmcgYSBTdHJ1Y3R1cmVS
YXJlRGF0YSBmaWVsZCBmcm9tIGFub3RoZXIuIFVzZWQgZHVyaW5nIFN0cnVjdHVyZSAKKyAgICAg
ICAgdHJhbnNpdGlvbnMuCisgICAgICAgIChKU0M6OlN0cnVjdHVyZTo6dmlzaXRDaGlsZHJlbik6
IFdlIG5vIGxvbmdlciBoYXZlIHRvIHdvcnJ5IGFib3V0IG1hcmtpbmcgbV9vYmplY3RUb1N0cmlu
Z1ZhbHVlLgorICAgICAgICAqIHJ1bnRpbWUvU3RydWN0dXJlLmg6CisgICAgICAgIChKU0M6OlN0
cnVjdHVyZTo6cHJldmlvdXNJRCk6IENoZWNrcyB0aGUgc3RydWN0dXJlSGFzUmFyZURhdGEgZmxh
ZyB0byBzZWUgd2hlcmUgaXQgc2hvdWxkIGdldCB0aGUgcHJldmlvdXMgU3RydWN0dXJlLgorICAg
ICAgICAoSlNDOjpTdHJ1Y3R1cmU6Om9iamVjdFRvU3RyaW5nVmFsdWUpOiBSZWFkcyB0aGUgdmFs
dWUgZnJvbSB0aGUgU3RydWN0dXJlUmFyZURhdGEuIElmIGl0IGRvZXNuJ3QgZXhpc3QsIHJldHVy
bnMgMC4KKyAgICAgICAgKEpTQzo6U3RydWN0dXJlOjpzZXRPYmplY3RUb1N0cmluZ1ZhbHVlKTog
RW5zdXJlcyB0aGF0IHdlIGhhdmUgYSBTdHJ1Y3R1cmVSYXJlRGF0YSBmaWVsZCwgdGhlbiBmb3J3
YXJkcyB0aGUgZnVuY3Rpb24gCisgICAgICAgIGNhbGwgdG8gaXQuCisgICAgICAgIChKU0M6OlN0
cnVjdHVyZTo6bWF0ZXJpYWxpemVQcm9wZXJ0eU1hcElmTmVjZXNzYXJ5KToKKyAgICAgICAgKEpT
Qzo6U3RydWN0dXJlOjpzZXRQcmV2aW91c0lEKTogQ2hlY2tzIGZvciBTdHJ1Y3R1cmVSYXJlRGF0
YSBhbmQgZm9yd2FyZHMgaWYgbmVjZXNzYXJ5LgorICAgICAgICAoU3RydWN0dXJlKToKKyAgICAg
ICAgKEpTQzo6U3RydWN0dXJlOjpjbGVhclByZXZpb3VzSUQpOiBEaXR0by4KKyAgICAgICAgKEpT
Qzo6U3RydWN0dXJlOjpjcmVhdGUpOgorICAgICAgICAqIHJ1bnRpbWUvU3RydWN0dXJlUmFyZURh
dGEuY3BwOiBBZGRlZC4gQWxsIG9mIHRoZSBiYXNpYyBmdW5jdGlvbmFsaXR5IG9mIGEgSlNDZWxs
IHdpdGggdGhlIGZpZWxkcyB0aGF0IHdlJ3ZlIG1vdmVkIAorICAgICAgICBmcm9tIFN0cnVjdHVy
ZSBhbmQgdGhlIGZ1bmN0aW9ucyByZXF1aXJlZCB0byBhY2Nlc3MvbW9kaWZ5IHRob3NlIGZpZWxk
cyBhcyBTdHJ1Y3R1cmUgd291bGQgaGF2ZSBkb25lLgorICAgICAgICAoSlNDKToKKyAgICAgICAg
KEpTQzo6U3RydWN0dXJlUmFyZURhdGE6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgIChKU0M6
OlN0cnVjdHVyZVJhcmVEYXRhOjpjcmVhdGUpOgorICAgICAgICAoSlNDOjpTdHJ1Y3R1cmVSYXJl
RGF0YTo6Y2xvbmUpOgorICAgICAgICAoSlNDOjpTdHJ1Y3R1cmVSYXJlRGF0YTo6U3RydWN0dXJl
UmFyZURhdGEpOgorICAgICAgICAoSlNDOjpTdHJ1Y3R1cmVSYXJlRGF0YTo6dmlzaXRDaGlsZHJl
bik6CisgICAgICAgICogcnVudGltZS9TdHJ1Y3R1cmVSYXJlRGF0YS5oOiBBZGRlZC4KKyAgICAg
ICAgKEpTQyk6CisgICAgICAgIChTdHJ1Y3R1cmVSYXJlRGF0YSk6CisgICAgICAgICogcnVudGlt
ZS9TdHJ1Y3R1cmVSYXJlRGF0YUlubGluZXMuaDogQWRkZWQuCisgICAgICAgIChKU0MpOgorICAg
ICAgICAoSlNDOjpTdHJ1Y3R1cmVSYXJlRGF0YTo6cHJldmlvdXNJRCk6CisgICAgICAgIChKU0M6
OlN0cnVjdHVyZVJhcmVEYXRhOjpzZXRQcmV2aW91c0lEKToKKyAgICAgICAgKEpTQzo6U3RydWN0
dXJlUmFyZURhdGE6OmNsZWFyUHJldmlvdXNJRCk6CisgICAgICAgIChKU0M6OlN0cnVjdHVyZVJh
cmVEYXRhOjpvYmplY3RUb1N0cmluZ1ZhbHVlKToKKyAgICAgICAgKEpTQzo6U3RydWN0dXJlUmFy
ZURhdGE6OnNldE9iamVjdFRvU3RyaW5nVmFsdWUpOgorCiAyMDEzLTAyLTAxICBHZW9mZnJleSBH
YXJlbiAgPGdnYXJlbkBhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlZCBhbiB1bnVzZWQgZnVu
Y3Rpb246IEpTR2xvYmFsT2JqZWN0OjpjcmVhdGVGdW5jdGlvbkV4ZWN1dGFibGVGcm9tR2xvYmFs
Q29kZQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAJKHJldmlzaW9uIDE0MTYxMykKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zOCw2ICszOCw3IEBA
CiAjaW5jbHVkZSAiSlNTdHJpbmcuaCIKICNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVk
ZSAiU2FtcGxpbmdUb29sLmgiCisjaW5jbHVkZSAiU3RydWN0dXJlUmFyZURhdGFJbmxpbmVzLmgi
CiAjaW5jbHVkZSA8bWF0aC5oPgogI2luY2x1ZGUgPHN0ZGlvLmg+CiAjaW5jbHVkZSA8c3RkbGli
Lmg+CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2
YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMTQxNjEzKQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTc5MCw2ICs3OTAsNyBAQAogCQlCQ0Y2MDUxNDBF
MjAzRUY4MDBCOUE2NEQgLyogQXJnTGlzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQkNGNjA1MTIwRTIwM0VGODAwQjlBNjREIC8qIEFyZ0xpc3QuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlCQ0ZEOEM5
MjBFRUIyRUU3MDAyODM4NDggLyogSnVtcFRhYmxlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDRkQ4QzkwMEVFQjJFRTcwMDI4Mzg0OCAvKiBKdW1w
VGFibGUuY3BwICovOyB9OwogCQlCQ0ZEOEM5MzBFRUIyRUU3MDAyODM4NDggLyogSnVtcFRhYmxl
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0ZEOEM5
MTBFRUIyRUU3MDAyODM4NDggLyogSnVtcFRhYmxlLmggKi87IH07CisJCUMyMEJBOTJEMTZCQjFD
MTUwMEIzQUVBMiAvKiBTdHJ1Y3R1cmVSYXJlRGF0YUlubGluZXMuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMyMEJBOTJDMTZCQjFDMTUwMEIzQUVBMiAv
KiBTdHJ1Y3R1cmVSYXJlRGF0YUlubGluZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQlDMjExMjJFMTE1REQ5QUIzMDA3OTBFM0EgLyogR0NUaHJl
YWRTaGFyZWREYXRhLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEMyMTEyMkRFMTVERDlBQjMwMDc5MEUzQSAvKiBHQ1RocmVhZFNoYXJlZERhdGEuY3Bw
ICovOyB9OwogCQlDMjExMjJFMjE1REQ5QUIzMDA3OTBFM0EgLyogR0NUaHJlYWRTaGFyZWREYXRh
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMjExMjJE
RjE1REQ5QUIzMDA3OTBFM0EgLyogR0NUaHJlYWRTaGFyZWREYXRhLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQzIxMTIyRTMxNUREOUFCMzAwNzkw
RTNBIC8qIE1hcmtTdGFja0lubGluZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEMyMTEyMkUwMTVERDlBQjMwMDc5MEUzQSAvKiBNYXJrU3RhY2tJbmxp
bmVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAg
LTgxOCw3ICs4MTksOSBAQAogCQlDMkU1MjZCRTE1OTBFRjAwMDA1NEU0OEQgLyogSGVhcFRpbWVy
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMkU1MjZC
QzE1OTBFRjAwMDA1NEU0OEQgLyogSGVhcFRpbWVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQzJFQUEzRkExNDlBODM1RTAwRkNFMTEyIC8qIENv
cGllZFNwYWNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBDMkVBQTNGODE0OUE4MzA4MDBGQ0UxMTIgLyogQ29waWVkU3BhY2UuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlDMkVBRDJGQzE0RjAyNDk4MDBB
NEIxNTkgLyogQ29waWVkQWxsb2NhdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBDMkVBRDJGQjE0RjAyNDk4MDBBNEIxNTkgLyogQ29waWVkQWxsb2Nh
dG9yLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJ
QzJGMEYyRDExNkJBRUVFOTAwMTg3QzE5IC8qIFN0cnVjdHVyZVJhcmVEYXRhLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMyRjBGMkQwMTZCQUVFRTkw
MDE4N0MxOSAvKiBTdHJ1Y3R1cmVSYXJlRGF0YS5jcHAgKi87IH07CiAJCUMyRkM5QkQzMTY2NDRE
RkIwMDgxMEQzMyAvKiBDb3BpZWRCbG9ja0lubGluZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMyRkM5QkQyMTY2NDRERkIwMDgxMEQzMyAvKiBDb3Bp
ZWRCbG9ja0lubGluZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OworCQlDMkZFMThBNDE2QkFFQzQwMDBBRjMwNjEgLyogU3RydWN0dXJlUmFyZURhdGEu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMyRkUxOEEz
MTZCQUVDNDAwMEFGMzA2MSAvKiBTdHJ1Y3R1cmVSYXJlRGF0YS5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCURERjdBQkQ0MTFGNjBFRDIwMDEwOEUz
NiAvKiBHQ0FjdGl2aXR5Q2FsbGJhY2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IERERjdBQkQyMTFGNjBFRDIwMDEwOEUzNiAvKiBHQ0FjdGl2aXR5Q2Fs
bGJhY2suaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQlFMTI0QThGNzBFNTU1Nzc1MDAzMDkxRjEgLyogT3BhcXVlSlNTdHJpbmcuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxMjRBOEY1MEU1NTU3NzUwMDMw
OTFGMSAvKiBPcGFxdWVKU1N0cmluZy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCUUxMjRBOEY4MEU1NTU3NzUwMDMwOTFGMSAvKiBPcGFxdWVKU1N0
cmluZy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBF
MTI0QThGNjBFNTU1Nzc1MDAzMDkxRjEgLyogT3BhcXVlSlNTdHJpbmcuY3BwICovOyB9OwpAQCAt
MTY3MCw2ICsxNjczLDcgQEAKIAkJQkNGNjA1MTIwRTIwM0VGODAwQjlBNjREIC8qIEFyZ0xpc3Qu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXJnTGlzdC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlCQ0ZEOEM5MDBFRUIyRUU3MDAyODM4NDggLyogSnVtcFRhYmxl
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEp1bXBUYWJsZS5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDRkQ4QzkxMEVFQjJFRTcwMDI4Mzg0OCAv
KiBKdW1wVGFibGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSnVtcFRhYmxl
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUMyMEJBOTJDMTZCQjFDMTUwMEIzQUVB
MiAvKiBTdHJ1Y3R1cmVSYXJlRGF0YUlubGluZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gU3RydWN0dXJlUmFyZURhdGFJbmxpbmVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUMyMTEyMkRFMTVERDlBQjMwMDc5MEUzQSAvKiBHQ1RocmVhZFNoYXJlZERhdGEu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gR0NUaHJlYWRTaGFyZWRE
YXRhLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzIxMTIyREYxNUREOUFCMzAw
NzkwRTNBIC8qIEdDVGhyZWFkU2hhcmVkRGF0YS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBHQ1RocmVhZFNoYXJlZERhdGEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJQzIxMTIyRTAxNUREOUFCMzAwNzkwRTNBIC8qIE1hcmtTdGFja0lubGluZXMuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWFya1N0YWNrSW5saW5lcy5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtMTY5Niw3ICsxNzAwLDkgQEAKIAkJQzJFNTI2QkMxNTkwRUYw
MDAwNTRFNDhEIC8qIEhlYXBUaW1lci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBIZWFwVGltZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzJFQUEzRjgxNDlB
ODMwODAwRkNFMTEyIC8qIENvcGllZFNwYWNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IENvcGllZFNwYWNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUMyRUFE
MkZCMTRGMDI0OTgwMEE0QjE1OSAvKiBDb3BpZWRBbGxvY2F0b3IuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gQ29waWVkQWxsb2NhdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUMyRjBGMkQwMTZCQUVFRTkwMDE4N0MxOSAvKiBTdHJ1Y3R1cmVSYXJlRGF0YS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTdHJ1Y3R1cmVSYXJlRGF0
YS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUMyRkM5QkQyMTY2NDRERkIwMDgx
MEQzMyAvKiBDb3BpZWRCbG9ja0lubGluZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gQ29waWVkQmxvY2tJbmxpbmVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CUMyRkUxOEEzMTZCQUVDNDAwMEFGMzA2MSAvKiBTdHJ1Y3R1cmVSYXJlRGF0YS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTdHJ1Y3R1cmVSYXJlRGF0YS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlEMjEyMDIyODBBRDQzMTBDMDBFRDc5QjYgLyogRGF0ZUNvbnZl
cnNpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMw
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERhdGVDb252
ZXJzaW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRDIxMjAyMjkwQUQ0MzEw
QzAwRUQ3OUI2IC8qIERhdGVDb252ZXJzaW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBEYXRlQ29udmVyc2lvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlE
REY3QUJEMjExRjYwRUQyMDAxMDhFMzYgLyogR0NBY3Rpdml0eUNhbGxiYWNrLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdDQWN0aXZpdHlDYWxsYmFjay5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtMjUyMiw2ICsyNTI4LDkgQEAKIAkJCQkxNDIwQkU3QTEwQUE2
RERCMDBGNDU1RDIgLyogV2Vha1JhbmRvbS5oICovLAogCQkJCUE3RENCNzc5MTJFM0Q5MDUwMDkx
MTk0MCAvKiBXcml0ZUJhcnJpZXIuaCAqLywKIAkJCQlDMkQ1OEMzMzE1OTEyRkVFMDAyMUE4NDQg
LyogR0NBY3Rpdml0eUNhbGxiYWNrLmNwcCAqLywKKwkJCQlDMkZFMThBMzE2QkFFQzQwMDBBRjMw
NjEgLyogU3RydWN0dXJlUmFyZURhdGEuaCAqLywKKwkJCQlDMkYwRjJEMDE2QkFFRUU5MDAxODdD
MTkgLyogU3RydWN0dXJlUmFyZURhdGEuY3BwICovLAorCQkJCUMyMEJBOTJDMTZCQjFDMTUwMEIz
QUVBMiAvKiBTdHJ1Y3R1cmVSYXJlRGF0YUlubGluZXMuaCAqLywKIAkJCSk7CiAJCQlwYXRoID0g
cnVudGltZTsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC0yODg1LDcgKzI4OTQsOSBA
QAogCQkJCUJDMThDNTI0MEUxNkZDOEEwMEIzNDQ2MCAvKiBBcnJheVByb3RvdHlwZS5sdXQuaCBp
biBIZWFkZXJzICovLAogCQkJCTBGQjdGMzk2MTVFRDhFNDYwMEYxNjdCMiAvKiBBcnJheVN0b3Jh
Z2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTk2ODhDQjE1MEVEMTJCNEUwMDFENjQ5RiAvKiBBc3Nl
bWJsZXJCdWZmZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCUMyMEJBOTJEMTZCQjFDMTUwMEIzQUVB
MiAvKiBTdHJ1Y3R1cmVSYXJlRGF0YUlubGluZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTg2RDNC
MkM1MTAxNTZCREUwMDI4NjVFNyAvKiBBc3NlbWJsZXJCdWZmZXJXaXRoQ29uc3RhbnRQb29sLmgg
aW4gSGVhZGVycyAqLywKKwkJCQlDMkZFMThBNDE2QkFFQzQwMDBBRjMwNjEgLyogU3RydWN0dXJl
UmFyZURhdGEuaCBpbiBIZWFkZXJzICovLAogCQkJCUE3ODRBMjYxMTFEMTY2MjIwMDU3NzZBQyAv
KiBBU1RCdWlsZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkxNDdCODNBQzBFNkRCOEM5MDA0Nzc1
QTQgLyogQmF0Y2hlZFRyYW5zaXRpb25PcHRpbWl6ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTg2
NjczOUQyMTNCRkRFNzEwMDIzRDg3QyAvKiBCaWdJbnRlZ2VyLmggaW4gSGVhZGVycyAqLywKQEAg
LTM5NTEsNiArMzk2Miw3IEBACiAJCQkJMEZGMEYxOUQxNkI3MkEwODAwNURGOTVCIC8qIERGR0Nv
bW1vbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkYwRjE5RTE2QjcyQTBCMDA1REY5NUIgLyog
REZHRWRnZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkYwRjE5RjE2QjcyQTE3MDA1REY5NUIg
LyogRnVuY3Rpb25FeGVjdXRhYmxlRHVtcC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlDMkYwRjJE
MTE2QkFFRUU5MDAxODdDMTkgLyogU3RydWN0dXJlUmFyZURhdGEuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1JlcGF0Y2guY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUmVwYXRjaC5jcHAJKHJldmlzaW9u
IDE0MTYxMykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUmVwYXRjaC5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTM3LDYgKzM3LDcgQEAKICNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAj
aW5jbHVkZSAiUG9seW1vcnBoaWNQdXRCeUlkTGlzdC5oIgogI2luY2x1ZGUgIlJlcGF0Y2hCdWZm
ZXIuaCIKKyNpbmNsdWRlICJTdHJ1Y3R1cmVSYXJlRGF0YUlubGluZXMuaCIKICNpbmNsdWRlIDx3
dGYvU3RyaW5nUHJpbnRTdHJlYW0uaD4KIAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBERkcg
ewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVicy5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVicy5jcHAJKHJldmlzaW9uIDE0
MTYxMykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnMuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC02OCw2ICs2OCw3IEBACiAjaW5jbHVkZSAiUmVwYXRjaEJ1ZmZlci5oIgogI2lu
Y2x1ZGUgIlNhbXBsaW5nVG9vbC5oIgogI2luY2x1ZGUgIlN0cm9uZy5oIgorI2luY2x1ZGUgIlN0
cnVjdHVyZVJhcmVEYXRhSW5saW5lcy5oIgogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4K
ICNpbmNsdWRlIDxzdGRhcmcuaD4KICNpbmNsdWRlIDxzdGRpby5oPgpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRTbG93UGF0aHMuY3BwCShyZXZpc2lvbiAxNDE2
MTMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRTbG93UGF0aHMuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC00OSw2ICs0OSw3IEBACiAjaW5jbHVkZSAiTG93TGV2ZWxJbnRlcnBy
ZXRlci5oIgogI2luY2x1ZGUgIk9iamVjdENvbnN0cnVjdG9yLmgiCiAjaW5jbHVkZSAiT3BlcmF0
aW9ucy5oIgorI2luY2x1ZGUgIlN0cnVjdHVyZVJhcmVEYXRhSW5saW5lcy5oIgogI2luY2x1ZGUg
PHd0Zi9TdHJpbmdQcmludFN0cmVhbS5oPgogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIExM
SW50IHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2VsbElubGluZXMu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGxJbmxp
bmVzLmgJKHJldmlzaW9uIDE0MTYxMykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTQ2VsbElubGluZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMjMsOCArMjMsMTUgQEAKICAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuIAogICovCiAKKyNpZm5kZWYgSlNDZWxsSW5saW5lc19oCisjZGVmaW5lIEpTQ2Vs
bElubGluZXNfaAorCiAjaW5jbHVkZSAiQ2FsbEZyYW1lLmgiCisjaW5jbHVkZSAiSGFuZGxlLmgi
CiAjaW5jbHVkZSAiSlNDZWxsLmgiCisjaW5jbHVkZSAiSlNPYmplY3QuaCIKKyNpbmNsdWRlICJK
U1N0cmluZy5oIgorI2luY2x1ZGUgIlN0cnVjdHVyZS5oIgogCiBuYW1lc3BhY2UgSlNDIHsKIApA
QCAtMTg3LDMgKzE5NCw0IEBAIGlubGluZSBib29sIEpTQ2VsbDo6dG9Cb29sZWFuKEV4ZWNTdGF0
ZSoKIAogfSAvLyBuYW1lc3BhY2UgSlNDCiAKKyNlbmRpZiAvLyBKU0NlbGxJbmxpbmVzX2gKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsRGF0YS5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxEYXRhLmNwcAko
cmV2aXNpb24gMTQxNjEzKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9i
YWxEYXRhLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjA4LDYgKzIwOCw3IEBAIEpTR2xvYmFsRGF0
YTo6SlNHbG9iYWxEYXRhKEdsb2JhbERhdGFUeXAKICAgICBKU0xvY2tIb2xkZXIgbG9jayh0aGlz
KTsKICAgICBJZGVudGlmaWVyVGFibGUqIGV4aXN0aW5nRW50cnlJZGVudGlmaWVyVGFibGUgPSB3
dGZUaHJlYWREYXRhKCkuc2V0Q3VycmVudElkZW50aWZpZXJUYWJsZShpZGVudGlmaWVyVGFibGUp
OwogICAgIHN0cnVjdHVyZVN0cnVjdHVyZS5zZXQoKnRoaXMsIFN0cnVjdHVyZTo6Y3JlYXRlU3Ry
dWN0dXJlKCp0aGlzKSk7CisgICAgc3RydWN0dXJlUmFyZURhdGFTdHJ1Y3R1cmUuc2V0KCp0aGlz
LCBTdHJ1Y3R1cmVSYXJlRGF0YTo6Y3JlYXRlU3RydWN0dXJlKCp0aGlzLCAwLCBqc051bGwoKSkp
OwogICAgIGRlYnVnZ2VyQWN0aXZhdGlvblN0cnVjdHVyZS5zZXQoKnRoaXMsIERlYnVnZ2VyQWN0
aXZhdGlvbjo6Y3JlYXRlU3RydWN0dXJlKCp0aGlzLCAwLCBqc051bGwoKSkpOwogICAgIGludGVy
cnVwdGVkRXhlY3V0aW9uRXJyb3JTdHJ1Y3R1cmUuc2V0KCp0aGlzLCBJbnRlcnJ1cHRlZEV4ZWN1
dGlvbkVycm9yOjpjcmVhdGVTdHJ1Y3R1cmUoKnRoaXMsIDAsIGpzTnVsbCgpKSk7CiAgICAgdGVy
bWluYXRlZEV4ZWN1dGlvbkVycm9yU3RydWN0dXJlLnNldCgqdGhpcywgVGVybWluYXRlZEV4ZWN1
dGlvbkVycm9yOjpjcmVhdGVTdHJ1Y3R1cmUoKnRoaXMsIDAsIGpzTnVsbCgpKSk7CkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbERhdGEuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbERhdGEuaAkocmV2aXNpb24g
MTQxNjEzKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxEYXRhLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTIyNiw2ICsyMjYsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAg
ICAgY29uc3QgSGFzaFRhYmxlKiBzdHJpbmdDb25zdHJ1Y3RvclRhYmxlOwogICAgICAgICAKICAg
ICAgICAgU3Ryb25nPFN0cnVjdHVyZT4gc3RydWN0dXJlU3RydWN0dXJlOworICAgICAgICBTdHJv
bmc8U3RydWN0dXJlPiBzdHJ1Y3R1cmVSYXJlRGF0YVN0cnVjdHVyZTsKICAgICAgICAgU3Ryb25n
PFN0cnVjdHVyZT4gZGVidWdnZXJBY3RpdmF0aW9uU3RydWN0dXJlOwogICAgICAgICBTdHJvbmc8
U3RydWN0dXJlPiBpbnRlcnJ1cHRlZEV4ZWN1dGlvbkVycm9yU3RydWN0dXJlOwogICAgICAgICBT
dHJvbmc8U3RydWN0dXJlPiB0ZXJtaW5hdGVkRXhlY3V0aW9uRXJyb3JTdHJ1Y3R1cmU7CkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmgJKHJl
dmlzaW9uIDE0MTYxMykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFs
T2JqZWN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJTcGVj
aWFsUG9pbnRlci5oIgogI2luY2x1ZGUgIlN0cmluZ1Byb3RvdHlwZS5oIgogI2luY2x1ZGUgIlN0
cnVjdHVyZUNoYWluLmgiCisjaW5jbHVkZSAiU3RydWN0dXJlUmFyZURhdGFJbmxpbmVzLmgiCiAj
aW5jbHVkZSAiV2F0Y2hwb2ludC5oIgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAjaW5jbHVk
ZSA8d3RmL093blB0ci5oPgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNU
eXBlSW5mby5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
VHlwZUluZm8uaAkocmV2aXNpb24gMTQxNjEzKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNUeXBlSW5mby5oCSh3b3JraW5nIGNvcHkpCkBAIC00Nyw2ICs0Nyw3IEBAIG5hbWVz
cGFjZSBKU0MgewogICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBPdmVycmlkZXNHZXRQcm9wZXJ0
eU5hbWVzID0gMSA8PCA4OwogICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBQcm9oaWJpdHNQcm9w
ZXJ0eUNhY2hpbmcgPSAxIDw8IDk7CiAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIEhhc0ltcHVy
ZUdldE93blByb3BlcnR5U2xvdCA9IDEgPDwgMTA7CisgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVk
IFN0cnVjdHVyZUhhc1JhcmVEYXRhID0gMSA8PCAxMTsKIAogICAgIGNsYXNzIFR5cGVJbmZvIHsK
ICAgICBwdWJsaWM6CkBAIC03MCw2ICs3MSw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBi
b29sIGlzTnVtYmVyT2JqZWN0KCkgY29uc3QgeyByZXR1cm4gdHlwZSgpID09IE51bWJlck9iamVj
dFR5cGU7IH0KICAgICAgICAgYm9vbCBpc05hbWUoKSBjb25zdCB7IHJldHVybiB0eXBlKCkgPT0g
TmFtZUluc3RhbmNlVHlwZTsgfQogCisgICAgICAgIHVuc2lnbmVkIGZsYWdzKCkgY29uc3QgeyBy
ZXR1cm4gKHN0YXRpY19jYXN0PHVuc2lnbmVkPihtX2ZsYWdzMikgPDwgOCkgfCBzdGF0aWNfY2Fz
dDx1bnNpZ25lZD4obV9mbGFncyk7IH0KICAgICAgICAgYm9vbCBtYXNxdWVyYWRlc0FzVW5kZWZp
bmVkKCkgY29uc3QgeyByZXR1cm4gaXNTZXRPbkZsYWdzMShNYXNxdWVyYWRlc0FzVW5kZWZpbmVk
KTsgfQogICAgICAgICBib29sIGltcGxlbWVudHNIYXNJbnN0YW5jZSgpIGNvbnN0IHsgcmV0dXJu
IGlzU2V0T25GbGFnczEoSW1wbGVtZW50c0hhc0luc3RhbmNlKTsgfQogICAgICAgICBib29sIGlz
RW52aXJvbm1lbnRSZWNvcmQoKSBjb25zdCB7IHJldHVybiBpc1NldE9uRmxhZ3MxKElzRW52aXJv
bm1lbnRSZWNvcmQpOyB9CkBAIC04MSw2ICs4Myw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAg
ICBib29sIG92ZXJyaWRlc0dldFByb3BlcnR5TmFtZXMoKSBjb25zdCB7IHJldHVybiBpc1NldE9u
RmxhZ3MyKE92ZXJyaWRlc0dldFByb3BlcnR5TmFtZXMpOyB9CiAgICAgICAgIGJvb2wgcHJvaGli
aXRzUHJvcGVydHlDYWNoaW5nKCkgY29uc3QgeyByZXR1cm4gaXNTZXRPbkZsYWdzMihQcm9oaWJp
dHNQcm9wZXJ0eUNhY2hpbmcpOyB9CiAgICAgICAgIGJvb2wgaGFzSW1wdXJlR2V0T3duUHJvcGVy
dHlTbG90KCkgY29uc3QgeyByZXR1cm4gaXNTZXRPbkZsYWdzMihIYXNJbXB1cmVHZXRPd25Qcm9w
ZXJ0eVNsb3QpOyB9CisgICAgICAgIGJvb2wgc3RydWN0dXJlSGFzUmFyZURhdGEoKSBjb25zdCB7
IHJldHVybiBpc1NldE9uRmxhZ3MyKFN0cnVjdHVyZUhhc1JhcmVEYXRhKTsgfQogCiAgICAgICAg
IHN0YXRpYyBwdHJkaWZmX3QgZmxhZ3NPZmZzZXQoKQogICAgICAgICB7CkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RQcm90b3R5cGUuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdFByb3RvdHlwZS5jcHAJKHJldmlz
aW9uIDE0MTYxMykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdFByb3Rv
dHlwZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI2LDYgKzI2LDcgQEAKICNpbmNsdWRlICJKU1N0
cmluZy5oIgogI2luY2x1ZGUgIkpTU3RyaW5nQnVpbGRlci5oIgogI2luY2x1ZGUgIk9wZXJhdGlv
bnMuaCIKKyNpbmNsdWRlICJTdHJ1Y3R1cmVSYXJlRGF0YUlubGluZXMuaCIKIAogbmFtZXNwYWNl
IEpTQyB7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJl
LmNwcAkocmV2aXNpb24gMTQxNjEzKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
U3RydWN0dXJlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUg
Ikxvb2t1cC5oIgogI2luY2x1ZGUgIlByb3BlcnR5TmFtZUFycmF5LmgiCiAjaW5jbHVkZSAiU3Ry
dWN0dXJlQ2hhaW4uaCIKKyNpbmNsdWRlICJTdHJ1Y3R1cmVSYXJlRGF0YUlubGluZXMuaCIKICNp
bmNsdWRlIDx3dGYvUmVmQ291bnRlZExlYWtDb3VudGVyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0
ci5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KQEAgLTEyMCw3ICsxMjEsNyBAQCB2b2lk
IFN0cnVjdHVyZTo6ZHVtcFN0YXRpc3RpY3MoKQogICAgICAgICBzd2l0Y2ggKHN0cnVjdHVyZS0+
bV90cmFuc2l0aW9uVGFibGUuc2l6ZSgpKSB7CiAgICAgICAgICAgICBjYXNlIDA6CiAgICAgICAg
ICAgICAgICAgKytudW1iZXJMZWFmOwotICAgICAgICAgICAgICAgaWYgKCFzdHJ1Y3R1cmUtPm1f
cHJldmlvdXMpCisgICAgICAgICAgICAgICAgaWYgKCFzdHJ1Y3R1cmUtPnByZXZpb3VzSUQoKSkK
ICAgICAgICAgICAgICAgICAgICAgKytudW1iZXJTaW5nbGV0b25zOwogICAgICAgICAgICAgICAg
IGJyZWFrOwogCkBAIC0xNTUsNiArMTU2LDcgQEAgU3RydWN0dXJlOjpTdHJ1Y3R1cmUoSlNHbG9i
YWxEYXRhJiBnbG9iYQogICAgICwgbV9pbmRleGluZ1R5cGUoaW5kZXhpbmdUeXBlKQogICAgICwg
bV9nbG9iYWxPYmplY3QoZ2xvYmFsRGF0YSwgdGhpcywgZ2xvYmFsT2JqZWN0LCBXcml0ZUJhcnJp
ZXI8SlNHbG9iYWxPYmplY3Q+OjpNYXlCZU51bGwpCiAgICAgLCBtX3Byb3RvdHlwZShnbG9iYWxE
YXRhLCB0aGlzLCBwcm90b3R5cGUpCisgICAgLCBtX3ByZXZpb3VzKCkKICAgICAsIG1fY2xhc3NJ
bmZvKGNsYXNzSW5mbykKICAgICAsIG1fdHJhbnNpdGlvbldhdGNocG9pbnRTZXQoSW5pdGlhbGl6
ZWRXYXRjaGluZykKICAgICAsIG1faW5saW5lQ2FwYWNpdHkoaW5saW5lQ2FwYWNpdHkpCkBAIC0x
NzIsNiArMTc0LDcgQEAgU3RydWN0dXJlOjpTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYQog
ewogICAgIEFTU0VSVChpbmxpbmVDYXBhY2l0eSA8PSBKU0ZpbmFsT2JqZWN0OjptYXhJbmxpbmVD
YXBhY2l0eSgpKTsKICAgICBBU1NFUlQoc3RhdGljX2Nhc3Q8UHJvcGVydHlPZmZzZXQ+KGlubGlu
ZUNhcGFjaXR5KSA8IGZpcnN0T3V0T2ZMaW5lT2Zmc2V0KTsKKyAgICBBU1NFUlQoIXR5cGVJbmZv
LnN0cnVjdHVyZUhhc1JhcmVEYXRhKCkpOwogfQogCiBjb25zdCBDbGFzc0luZm8gU3RydWN0dXJl
OjpzX2luZm8gPSB7ICJTdHJ1Y3R1cmUiLCAwLCAwLCAwLCBDUkVBVEVfTUVUSE9EX1RBQkxFKFN0
cnVjdHVyZSkgfTsKQEAgLTE4MSw2ICsxODQsNyBAQCBTdHJ1Y3R1cmU6OlN0cnVjdHVyZShKU0ds
b2JhbERhdGEmIGdsb2JhCiAgICAgLCBtX3R5cGVJbmZvKENvbXBvdW5kVHlwZSwgT3ZlcnJpZGVz
VmlzaXRDaGlsZHJlbikKICAgICAsIG1faW5kZXhpbmdUeXBlKDApCiAgICAgLCBtX3Byb3RvdHlw
ZShnbG9iYWxEYXRhLCB0aGlzLCBqc051bGwoKSkKKyAgICAsIG1fcHJldmlvdXMoKQogICAgICwg
bV9jbGFzc0luZm8oJnNfaW5mbykKICAgICAsIG1fdHJhbnNpdGlvbldhdGNocG9pbnRTZXQoSW5p
dGlhbGl6ZWRXYXRjaGluZykKICAgICAsIG1faW5saW5lQ2FwYWNpdHkoMCkKQEAgLTIwMyw2ICsy
MDcsNyBAQCBTdHJ1Y3R1cmU6OlN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2JhCiAgICAgLCBt
X3R5cGVJbmZvKHByZXZpb3VzLT50eXBlSW5mbygpKQogICAgICwgbV9pbmRleGluZ1R5cGUocHJl
dmlvdXMtPmluZGV4aW5nVHlwZUluY2x1ZGluZ0hpc3RvcnkoKSkKICAgICAsIG1fcHJvdG90eXBl
KGdsb2JhbERhdGEsIHRoaXMsIHByZXZpb3VzLT5zdG9yZWRQcm90b3R5cGUoKSkKKyAgICAsIG1f
cHJldmlvdXMoKQogICAgICwgbV9jbGFzc0luZm8ocHJldmlvdXMtPm1fY2xhc3NJbmZvKQogICAg
ICwgbV90cmFuc2l0aW9uV2F0Y2hwb2ludFNldChJbml0aWFsaXplZFdhdGNoaW5nKQogICAgICwg
bV9pbmxpbmVDYXBhY2l0eShwcmV2aW91cy0+bV9pbmxpbmVDYXBhY2l0eSkKQEAgLTI0Miw3ICsy
NDcsNyBAQCB2b2lkIFN0cnVjdHVyZTo6bWF0ZXJpYWxpemVQcm9wZXJ0eU1hcChKCiAgICAgd2hp
bGUgKChzdHJ1Y3R1cmUgPSBzdHJ1Y3R1cmUtPnByZXZpb3VzSUQoKSkpIHsKICAgICAgICAgaWYg
KHN0cnVjdHVyZS0+bV9pc1Bpbm5lZFByb3BlcnR5VGFibGUpIHsKICAgICAgICAgICAgIEFTU0VS
VChzdHJ1Y3R1cmUtPm1fcHJvcGVydHlUYWJsZSk7Ci0gICAgICAgICAgICBBU1NFUlQoIXN0cnVj
dHVyZS0+bV9wcmV2aW91cyk7CisgICAgICAgICAgICBBU1NFUlQoIXN0cnVjdHVyZS0+cHJldmlv
dXNJRCgpKTsKIAogICAgICAgICAgICAgbV9wcm9wZXJ0eVRhYmxlID0gc3RydWN0dXJlLT5tX3By
b3BlcnR5VGFibGUtPmNvcHkoZ2xvYmFsRGF0YSwgMCwgbnVtYmVyT2ZTbG90c0Zvckxhc3RPZmZz
ZXQobV9vZmZzZXQsIG1faW5saW5lQ2FwYWNpdHkpKTsKICAgICAgICAgICAgIGJyZWFrOwpAQCAt
MzYzLDcgKzM2OCw3IEBAIFN0cnVjdHVyZSogU3RydWN0dXJlOjphZGRQcm9wZXJ0eVRyYW5zaXQK
ICAgICBTdHJ1Y3R1cmUqIHRyYW5zaXRpb24gPSBjcmVhdGUoZ2xvYmFsRGF0YSwgc3RydWN0dXJl
KTsKIAogICAgIHRyYW5zaXRpb24tPm1fY2FjaGVkUHJvdG90eXBlQ2hhaW4uc2V0TWF5QmVOdWxs
KGdsb2JhbERhdGEsIHRyYW5zaXRpb24sIHN0cnVjdHVyZS0+bV9jYWNoZWRQcm90b3R5cGVDaGFp
bi5nZXQoKSk7Ci0gICAgdHJhbnNpdGlvbi0+bV9wcmV2aW91cy5zZXQoZ2xvYmFsRGF0YSwgdHJh
bnNpdGlvbiwgc3RydWN0dXJlKTsKKyAgICB0cmFuc2l0aW9uLT5zZXRQcmV2aW91c0lEKGdsb2Jh
bERhdGEsIHRyYW5zaXRpb24sIHN0cnVjdHVyZSk7CiAgICAgdHJhbnNpdGlvbi0+bV9uYW1lSW5Q
cmV2aW91cyA9IHByb3BlcnR5TmFtZS51aWQoKTsKICAgICB0cmFuc2l0aW9uLT5tX2F0dHJpYnV0
ZXNJblByZXZpb3VzID0gYXR0cmlidXRlczsKICAgICB0cmFuc2l0aW9uLT5tX3NwZWNpZmljVmFs
dWVJblByZXZpb3VzLnNldE1heUJlTnVsbChnbG9iYWxEYXRhLCB0cmFuc2l0aW9uLCBzcGVjaWZp
Y1ZhbHVlKTsKQEAgLTM3NCw3ICszNzksNyBAQCBTdHJ1Y3R1cmUqIFN0cnVjdHVyZTo6YWRkUHJv
cGVydHlUcmFuc2l0CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIHRyYW5zaXRpb24tPm1fcHJv
cGVydHlUYWJsZSA9IHN0cnVjdHVyZS0+bV9wcm9wZXJ0eVRhYmxlLnJlbGVhc2UoKTsKICAgICB9
IGVsc2UgewotICAgICAgICBpZiAoc3RydWN0dXJlLT5tX3ByZXZpb3VzKQorICAgICAgICBpZiAo
c3RydWN0dXJlLT5wcmV2aW91c0lEKCkpCiAgICAgICAgICAgICB0cmFuc2l0aW9uLT5tYXRlcmlh
bGl6ZVByb3BlcnR5TWFwKGdsb2JhbERhdGEpOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICB0
cmFuc2l0aW9uLT5jcmVhdGVQcm9wZXJ0eU1hcCgpOwpAQCAtNTUxLDcgKzU1Niw3IEBAIFN0cnVj
dHVyZSogU3RydWN0dXJlOjpub25Qcm9wZXJ0eVRyYW5zaXQKICAgICB9CiAgICAgCiAgICAgU3Ry
dWN0dXJlKiB0cmFuc2l0aW9uID0gY3JlYXRlKGdsb2JhbERhdGEsIHN0cnVjdHVyZSk7Ci0gICAg
dHJhbnNpdGlvbi0+bV9wcmV2aW91cy5zZXQoZ2xvYmFsRGF0YSwgdHJhbnNpdGlvbiwgc3RydWN0
dXJlKTsKKyAgICB0cmFuc2l0aW9uLT5zZXRQcmV2aW91c0lEKGdsb2JhbERhdGEsIHRyYW5zaXRp
b24sIHN0cnVjdHVyZSk7CiAgICAgdHJhbnNpdGlvbi0+bV9hdHRyaWJ1dGVzSW5QcmV2aW91cyA9
IGF0dHJpYnV0ZXM7CiAgICAgdHJhbnNpdGlvbi0+bV9pbmRleGluZ1R5cGUgPSBpbmRleGluZ1R5
cGU7CiAgICAgdHJhbnNpdGlvbi0+bV9vZmZzZXQgPSBzdHJ1Y3R1cmUtPm1fb2Zmc2V0OwpAQCAt
NTYzLDcgKzU2OCw3IEBAIFN0cnVjdHVyZSogU3RydWN0dXJlOjpub25Qcm9wZXJ0eVRyYW5zaXQK
ICAgICAgICAgZWxzZQogICAgICAgICAgICAgdHJhbnNpdGlvbi0+bV9wcm9wZXJ0eVRhYmxlID0g
c3RydWN0dXJlLT5tX3Byb3BlcnR5VGFibGUucmVsZWFzZSgpOwogICAgIH0gZWxzZSB7Ci0gICAg
ICAgIGlmIChzdHJ1Y3R1cmUtPm1fcHJldmlvdXMpCisgICAgICAgIGlmIChzdHJ1Y3R1cmUtPnBy
ZXZpb3VzSUQoKSkKICAgICAgICAgICAgIHRyYW5zaXRpb24tPm1hdGVyaWFsaXplUHJvcGVydHlN
YXAoZ2xvYmFsRGF0YSk7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIHRyYW5zaXRpb24tPmNy
ZWF0ZVByb3BlcnR5TWFwKCk7CkBAIC02NzAsMTAgKzY3NSwyNSBAQCB2b2lkIFN0cnVjdHVyZTo6
cGluKCkKIHsKICAgICBBU1NFUlQobV9wcm9wZXJ0eVRhYmxlKTsKICAgICBtX2lzUGlubmVkUHJv
cGVydHlUYWJsZSA9IHRydWU7Ci0gICAgbV9wcmV2aW91cy5jbGVhcigpOworICAgIGNsZWFyUHJl
dmlvdXNJRCgpOwogICAgIG1fbmFtZUluUHJldmlvdXMuY2xlYXIoKTsKIH0KIAordm9pZCBTdHJ1
Y3R1cmU6OmFsbG9jYXRlUmFyZURhdGEoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhKQoreworICAg
IEFTU0VSVCghdHlwZUluZm8oKS5zdHJ1Y3R1cmVIYXNSYXJlRGF0YSgpKTsKKyAgICBTdHJ1Y3R1
cmVSYXJlRGF0YSogcmFyZURhdGEgPSBTdHJ1Y3R1cmVSYXJlRGF0YTo6Y3JlYXRlKGdsb2JhbERh
dGEsIG1fcHJldmlvdXMuZ2V0KCkpOworICAgIG1fdHlwZUluZm8gPSBUeXBlSW5mbyh0eXBlSW5m
bygpLnR5cGUoKSwgdHlwZUluZm8oKS5mbGFncygpIHwgU3RydWN0dXJlSGFzUmFyZURhdGEpOwor
ICAgIG1fcmFyZURhdGEuc2V0KGdsb2JhbERhdGEsIHRoaXMsIHJhcmVEYXRhKTsKK30KKwordm9p
ZCBTdHJ1Y3R1cmU6OmNsb25lUmFyZURhdGFGcm9tKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwg
Y29uc3QgU3RydWN0dXJlKiBvdGhlcikKK3sKKyAgICBBU1NFUlQob3RoZXItPnR5cGVJbmZvKCku
c3RydWN0dXJlSGFzUmFyZURhdGEoKSk7CisgICAgU3RydWN0dXJlUmFyZURhdGEqIG5ld1JhcmVE
YXRhID0gU3RydWN0dXJlUmFyZURhdGE6OmNsb25lKGdsb2JhbERhdGEsIG90aGVyLT5tX3JhcmVE
YXRhLmdldCgpKTsKKyAgICBtX3JhcmVEYXRhLnNldChnbG9iYWxEYXRhLCB0aGlzLCBuZXdSYXJl
RGF0YSk7Cit9CisKICNpZiBEVU1QX1BST1BFUlRZTUFQX1NUQVRTCiAKIHN0cnVjdCBQcm9wZXJ0
eU1hcFN0YXRpc3RpY3NFeGl0TG9nZ2VyIHsKQEAgLTg0MCw3ICs4NjAsMTAgQEAgdm9pZCBTdHJ1
Y3R1cmU6OnZpc2l0Q2hpbGRyZW4oSlNDZWxsKiBjZQogICAgICAgICB2aXNpdG9yLmFwcGVuZCgm
dGhpc09iamVjdC0+bV9wcm90b3R5cGUpOwogICAgICAgICB2aXNpdG9yLmFwcGVuZCgmdGhpc09i
amVjdC0+bV9jYWNoZWRQcm90b3R5cGVDaGFpbik7CiAgICAgfQotICAgIHZpc2l0b3IuYXBwZW5k
KCZ0aGlzT2JqZWN0LT5tX3ByZXZpb3VzKTsKKyAgICBpZiAodGhpc09iamVjdC0+dHlwZUluZm8o
KS5zdHJ1Y3R1cmVIYXNSYXJlRGF0YSgpKQorICAgICAgICB2aXNpdG9yLmFwcGVuZCgmdGhpc09i
amVjdC0+bV9yYXJlRGF0YSk7CisgICAgZWxzZQorICAgICAgICB2aXNpdG9yLmFwcGVuZCgmdGhp
c09iamVjdC0+bV9wcmV2aW91cyk7CiAgICAgdmlzaXRvci5hcHBlbmQoJnRoaXNPYmplY3QtPm1f
c3BlY2lmaWNWYWx1ZUluUHJldmlvdXMpOwogICAgIHZpc2l0b3IuYXBwZW5kKCZ0aGlzT2JqZWN0
LT5tX2VudW1lcmF0aW9uQ2FjaGUpOwogICAgIGlmICh0aGlzT2JqZWN0LT5tX3Byb3BlcnR5VGFi
bGUpIHsKQEAgLTg0OCw3ICs4NzEsNiBAQCB2b2lkIFN0cnVjdHVyZTo6dmlzaXRDaGlsZHJlbihK
U0NlbGwqIGNlCiAgICAgICAgIGZvciAoUHJvcGVydHlUYWJsZTo6aXRlcmF0b3IgcHRyID0gdGhp
c09iamVjdC0+bV9wcm9wZXJ0eVRhYmxlLT5iZWdpbigpOyBwdHIgIT0gZW5kOyArK3B0cikKICAg
ICAgICAgICAgIHZpc2l0b3IuYXBwZW5kKCZwdHItPnNwZWNpZmljVmFsdWUpOwogICAgIH0KLSAg
ICB2aXNpdG9yLmFwcGVuZCgmdGhpc09iamVjdC0+bV9vYmplY3RUb1N0cmluZ1ZhbHVlKTsKIH0K
IAogYm9vbCBTdHJ1Y3R1cmU6OnByb3RvdHlwZUNoYWluTWF5SW50ZXJjZXB0U3RvcmVUbyhKU0ds
b2JhbERhdGEmIGdsb2JhbERhdGEsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUpCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuaAkocmV2aXNpb24gMTQxNjEz
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTM1LDYgKzM1LDcgQEAKICNpbmNsdWRlICJQcm9wZXJ0eU5hbWUuaCIKICNpbmNs
dWRlICJQcm9wZXJ0eU5hbWVBcnJheS5oIgogI2luY2x1ZGUgIlByb3RlY3QuaCIKKyNpbmNsdWRl
ICJTdHJ1Y3R1cmVSYXJlRGF0YS5oIgogI2luY2x1ZGUgIlN0cnVjdHVyZVRyYW5zaXRpb25UYWJs
ZS5oIgogI2luY2x1ZGUgIkpTVHlwZUluZm8uaCIKICNpbmNsdWRlICJXYXRjaHBvaW50LmgiCkBA
IC0xNzgsNiArMTc5LDggQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIFN0cnVjdHVyZSogcHJl
dmlvdXNJRCgpIGNvbnN0CiAgICAgICAgIHsKICAgICAgICAgICAgIEFTU0VSVChzdHJ1Y3R1cmUo
KS0+Y2xhc3NJbmZvKCkgPT0gJnNfaW5mbyk7CisgICAgICAgICAgICBpZiAodHlwZUluZm8oKS5z
dHJ1Y3R1cmVIYXNSYXJlRGF0YSgpKQorICAgICAgICAgICAgICAgIHJldHVybiBtX3JhcmVEYXRh
LT5wcmV2aW91c0lEKCk7CiAgICAgICAgICAgICByZXR1cm4gbV9wcmV2aW91cy5nZXQoKTsKICAg
ICAgICAgfQogICAgICAgICBib29sIHRyYW5zaXRpdmVseVRyYW5zaXRpb25lZEZyb20oU3RydWN0
dXJlKiBzdHJ1Y3R1cmVUb0ZpbmQpOwpAQCAtMjg5LDExICsyOTIsMTggQEAgbmFtZXNwYWNlIEpT
QyB7CiAgICAgICAgIEpTUHJvcGVydHlOYW1lSXRlcmF0b3IqIGVudW1lcmF0aW9uQ2FjaGUoKTsg
Ly8gRGVmaW5lZCBpbiBKU1Byb3BlcnR5TmFtZUl0ZXJhdG9yLmguCiAgICAgICAgIHZvaWQgZ2V0
UHJvcGVydHlOYW1lc0Zyb21TdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiwgUHJvcGVydHlOYW1lQXJy
YXkmLCBFbnVtZXJhdGlvbk1vZGUpOwogCi0gICAgICAgIEpTU3RyaW5nKiBvYmplY3RUb1N0cmlu
Z1ZhbHVlKCkgeyByZXR1cm4gbV9vYmplY3RUb1N0cmluZ1ZhbHVlLmdldCgpOyB9CisgICAgICAg
IEpTU3RyaW5nKiBvYmplY3RUb1N0cmluZ1ZhbHVlKCkKKyAgICAgICAgeworICAgICAgICAgICAg
aWYgKCF0eXBlSW5mbygpLnN0cnVjdHVyZUhhc1JhcmVEYXRhKCkpCisgICAgICAgICAgICAgICAg
cmV0dXJuIDA7CisgICAgICAgICAgICByZXR1cm4gbV9yYXJlRGF0YS0+b2JqZWN0VG9TdHJpbmdW
YWx1ZSgpOworICAgICAgICB9CiAKICAgICAgICAgdm9pZCBzZXRPYmplY3RUb1N0cmluZ1ZhbHVl
KEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgY29uc3QgSlNDZWxsKiBvd25lciwgSlNTdHJpbmcq
IHZhbHVlKQogICAgICAgICB7Ci0gICAgICAgICAgICBtX29iamVjdFRvU3RyaW5nVmFsdWUuc2V0
KGdsb2JhbERhdGEsIG93bmVyLCB2YWx1ZSk7CisgICAgICAgICAgICBpZiAoIXR5cGVJbmZvKCku
c3RydWN0dXJlSGFzUmFyZURhdGEoKSkKKyAgICAgICAgICAgICAgICBhbGxvY2F0ZVJhcmVEYXRh
KGdsb2JhbERhdGEpOworICAgICAgICAgICAgbV9yYXJlRGF0YS0+c2V0T2JqZWN0VG9TdHJpbmdW
YWx1ZShnbG9iYWxEYXRhLCBvd25lciwgdmFsdWUpOwogICAgICAgICB9CiAKICAgICAgICAgYm9v
bCBzdGF0aWNGdW5jdGlvbnNSZWlmaWVkKCkKQEAgLTM5NCw3ICs0MDQsNyBAQCBuYW1lc3BhY2Ug
SlNDIHsKICAgICAgICAgdm9pZCBtYXRlcmlhbGl6ZVByb3BlcnR5TWFwSWZOZWNlc3NhcnkoSlNH
bG9iYWxEYXRhJiBnbG9iYWxEYXRhKQogICAgICAgICB7CiAgICAgICAgICAgICBBU1NFUlQoc3Ry
dWN0dXJlKCktPmNsYXNzSW5mbygpID09ICZzX2luZm8pOwotICAgICAgICAgICAgaWYgKCFtX3By
b3BlcnR5VGFibGUgJiYgbV9wcmV2aW91cykKKyAgICAgICAgICAgIGlmICghbV9wcm9wZXJ0eVRh
YmxlICYmIHByZXZpb3VzSUQoKSkKICAgICAgICAgICAgICAgICBtYXRlcmlhbGl6ZVByb3BlcnR5
TWFwKGdsb2JhbERhdGEpOwogICAgICAgICB9CiAgICAgICAgIHZvaWQgbWF0ZXJpYWxpemVQcm9w
ZXJ0eU1hcElmTmVjZXNzYXJ5Rm9yUGlubmluZyhKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEpCkBA
IC00MDQsNiArNDE0LDIyIEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICAgICAgICAgIG1hdGVy
aWFsaXplUHJvcGVydHlNYXAoZ2xvYmFsRGF0YSk7CiAgICAgICAgIH0KIAorICAgICAgICB2b2lk
IHNldFByZXZpb3VzSUQoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBTdHJ1Y3R1cmUqIHRyYW5z
aXRpb24sIFN0cnVjdHVyZSogc3RydWN0dXJlKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAo
dHlwZUluZm8oKS5zdHJ1Y3R1cmVIYXNSYXJlRGF0YSgpKQorICAgICAgICAgICAgICAgIG1fcmFy
ZURhdGEtPnNldFByZXZpb3VzSUQoZ2xvYmFsRGF0YSwgdHJhbnNpdGlvbiwgc3RydWN0dXJlKTsK
KyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBtX3ByZXZpb3VzLnNldChnbG9iYWxE
YXRhLCB0cmFuc2l0aW9uLCBzdHJ1Y3R1cmUpOworICAgICAgICB9CisKKyAgICAgICAgdm9pZCBj
bGVhclByZXZpb3VzSUQoKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAodHlwZUluZm8oKS5z
dHJ1Y3R1cmVIYXNSYXJlRGF0YSgpKQorICAgICAgICAgICAgICAgIG1fcmFyZURhdGEtPmNsZWFy
UHJldmlvdXNJRCgpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIG1fcHJldmlv
dXMuY2xlYXIoKTsKKyAgICAgICAgfQorCiAgICAgICAgIGludCB0cmFuc2l0aW9uQ291bnQoKSBj
b25zdAogICAgICAgICB7CiAgICAgICAgICAgICAvLyBTaW5jZSB0aGUgbnVtYmVyIG9mIHRyYW5z
aXRpb25zIGlzIGFsd2F5cyB0aGUgc2FtZSBhcyBtX29mZnNldCwgd2Uga2VlcCB0aGUgc2l6ZSBv
ZiBTdHJ1Y3R1cmUgZG93biBieSBub3Qgc3RvcmluZyBib3RoLgpAQCAtNDE1LDYgKzQ0MSw5IEBA
IG5hbWVzcGFjZSBKU0MgewogICAgICAgICAKICAgICAgICAgdm9pZCBwaW4oKTsKIAorICAgICAg
ICB2b2lkIGFsbG9jYXRlUmFyZURhdGEoSlNHbG9iYWxEYXRhJik7CisgICAgICAgIHZvaWQgY2xv
bmVSYXJlRGF0YUZyb20oSlNHbG9iYWxEYXRhJiwgY29uc3QgU3RydWN0dXJlKik7CisKICAgICAg
ICAgc3RhdGljIGNvbnN0IGludCBzX21heFRyYW5zaXRpb25MZW5ndGggPSA2NDsKIAogICAgICAg
ICBzdGF0aWMgY29uc3QgdW5zaWduZWQgbWF4U3BlY2lmaWNGdW5jdGlvblRocmFzaENvdW50ID0g
MzsKQEAgLTQyNiw3ICs0NTUsMTEgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIFdyaXRlQmFy
cmllcjxVbmtub3duPiBtX3Byb3RvdHlwZTsKICAgICAgICAgbXV0YWJsZSBXcml0ZUJhcnJpZXI8
U3RydWN0dXJlQ2hhaW4+IG1fY2FjaGVkUHJvdG90eXBlQ2hhaW47CiAKLSAgICAgICAgV3JpdGVC
YXJyaWVyPFN0cnVjdHVyZT4gbV9wcmV2aW91czsKKyAgICAgICAgdW5pb24geworICAgICAgICAg
ICAgV3JpdGVCYXJyaWVyPFN0cnVjdHVyZT4gbV9wcmV2aW91czsKKyAgICAgICAgICAgIFdyaXRl
QmFycmllcjxTdHJ1Y3R1cmVSYXJlRGF0YT4gbV9yYXJlRGF0YTsKKyAgICAgICAgfTsKKwogICAg
ICAgICBSZWZQdHI8U3RyaW5nSW1wbD4gbV9uYW1lSW5QcmV2aW91czsKICAgICAgICAgV3JpdGVC
YXJyaWVyPEpTQ2VsbD4gbV9zcGVjaWZpY1ZhbHVlSW5QcmV2aW91czsKIApAQCAtNDM4LDggKzQ3
MSw2IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgICAgIE93blB0cjxQcm9wZXJ0eVRhYmxlPiBt
X3Byb3BlcnR5VGFibGU7CiAKLSAgICAgICAgV3JpdGVCYXJyaWVyPEpTU3RyaW5nPiBtX29iamVj
dFRvU3RyaW5nVmFsdWU7Ci0gICAgICAgIAogICAgICAgICBtdXRhYmxlIElubGluZVdhdGNocG9p
bnRTZXQgbV90cmFuc2l0aW9uV2F0Y2hwb2ludFNldDsKIAogICAgICAgICB1aW50OF90IG1faW5s
aW5lQ2FwYWNpdHk7CkBAIC00ODIsNiArNTEzLDggQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAg
IEFTU0VSVChnbG9iYWxEYXRhLnN0cnVjdHVyZVN0cnVjdHVyZSk7CiAgICAgICAgIFN0cnVjdHVy
ZSogbmV3U3RydWN0dXJlID0gbmV3IChOb3ROdWxsLCBhbGxvY2F0ZUNlbGw8U3RydWN0dXJlPihn
bG9iYWxEYXRhLmhlYXApKSBTdHJ1Y3R1cmUoZ2xvYmFsRGF0YSwgc3RydWN0dXJlKTsKICAgICAg
ICAgbmV3U3RydWN0dXJlLT5maW5pc2hDcmVhdGlvbihnbG9iYWxEYXRhKTsKKyAgICAgICAgaWYg
KHN0cnVjdHVyZS0+dHlwZUluZm8oKS5zdHJ1Y3R1cmVIYXNSYXJlRGF0YSgpKQorICAgICAgICAg
ICAgbmV3U3RydWN0dXJlLT5jbG9uZVJhcmVEYXRhRnJvbShnbG9iYWxEYXRhLCBzdHJ1Y3R1cmUp
OwogICAgICAgICByZXR1cm4gbmV3U3RydWN0dXJlOwogICAgIH0KICAgICAgICAgCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmVSYXJlRGF0YS5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlUmFyZURhdGEu
Y3BwCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0
dXJlUmFyZURhdGEuY3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDg0IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlN0cnVjdHVyZVJhcmVEYXRhLmgiCisK
KyNpbmNsdWRlICJKU0NKU1ZhbHVlSW5saW5lcy5oIgorI2luY2x1ZGUgIkpTQ2VsbElubGluZXMu
aCIKKyNpbmNsdWRlICJKU1N0cmluZy5oIgorI2luY2x1ZGUgIlN0cnVjdHVyZS5oIgorCituYW1l
c3BhY2UgSlNDIHsKKworY29uc3QgQ2xhc3NJbmZvIFN0cnVjdHVyZVJhcmVEYXRhOjpzX2luZm8g
PSB7ICJTdHJ1Y3R1cmVSYXJlRGF0YSIsIDAsIDAsIDAsIENSRUFURV9NRVRIT0RfVEFCTEUoU3Ry
dWN0dXJlUmFyZURhdGEpIH07CisKK1N0cnVjdHVyZSogU3RydWN0dXJlUmFyZURhdGE6OmNyZWF0
ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIEpTVmFsdWUgcHJvdG90eXBlKQoreworICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNy
ZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oQ29tcG91
bmRUeXBlLCBTdHJ1Y3R1cmVGbGFncyksICZzX2luZm8pOworfQorCitTdHJ1Y3R1cmVSYXJlRGF0
YSogU3RydWN0dXJlUmFyZURhdGE6OmNyZWF0ZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIFN0
cnVjdHVyZSogcHJldmlvdXMpCit7CisgICAgU3RydWN0dXJlUmFyZURhdGEqIHJhcmVEYXRhID0g
bmV3IChOb3ROdWxsLCBhbGxvY2F0ZUNlbGw8U3RydWN0dXJlUmFyZURhdGE+KGdsb2JhbERhdGEu
aGVhcCkpIFN0cnVjdHVyZVJhcmVEYXRhKGdsb2JhbERhdGEsIHByZXZpb3VzKTsKKyAgICByYXJl
RGF0YS0+ZmluaXNoQ3JlYXRpb24oZ2xvYmFsRGF0YSk7CisgICAgcmV0dXJuIHJhcmVEYXRhOwor
fQorCitTdHJ1Y3R1cmVSYXJlRGF0YSogU3RydWN0dXJlUmFyZURhdGE6OmNsb25lKEpTR2xvYmFs
RGF0YSYgZ2xvYmFsRGF0YSwgY29uc3QgU3RydWN0dXJlUmFyZURhdGEqIG90aGVyKQoreworICAg
IFN0cnVjdHVyZVJhcmVEYXRhKiBuZXdSYXJlRGF0YSA9IG5ldyAoTm90TnVsbCwgYWxsb2NhdGVD
ZWxsPFN0cnVjdHVyZVJhcmVEYXRhPihnbG9iYWxEYXRhLmhlYXApKSBTdHJ1Y3R1cmVSYXJlRGF0
YShnbG9iYWxEYXRhLCBvdGhlcik7CisgICAgbmV3UmFyZURhdGEtPmZpbmlzaENyZWF0aW9uKGds
b2JhbERhdGEpOworICAgIHJldHVybiBuZXdSYXJlRGF0YTsKK30KKworU3RydWN0dXJlUmFyZURh
dGE6OlN0cnVjdHVyZVJhcmVEYXRhKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgU3RydWN0dXJl
KiBwcmV2aW91cykKKyAgICA6IEpTQ2VsbChnbG9iYWxEYXRhLCBnbG9iYWxEYXRhLnN0cnVjdHVy
ZVJhcmVEYXRhU3RydWN0dXJlLmdldCgpKQoreworICAgIGlmIChwcmV2aW91cykKKyAgICAgICAg
bV9wcmV2aW91cy5zZXQoZ2xvYmFsRGF0YSwgdGhpcywgcHJldmlvdXMpOworfQorCitTdHJ1Y3R1
cmVSYXJlRGF0YTo6U3RydWN0dXJlUmFyZURhdGEoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBj
b25zdCBTdHJ1Y3R1cmVSYXJlRGF0YSogb3RoZXIpCisgICAgOiBKU0NlbGwoZ2xvYmFsRGF0YSwg
b3RoZXItPnN0cnVjdHVyZSgpKQoreworICAgIGlmIChvdGhlci0+cHJldmlvdXNJRCgpKQorICAg
ICAgICBtX3ByZXZpb3VzLnNldChnbG9iYWxEYXRhLCB0aGlzLCBvdGhlci0+cHJldmlvdXNJRCgp
KTsKKyAgICBpZiAob3RoZXItPm9iamVjdFRvU3RyaW5nVmFsdWUoKSkKKyAgICAgICAgbV9vYmpl
Y3RUb1N0cmluZ1ZhbHVlLnNldChnbG9iYWxEYXRhLCB0aGlzLCBvdGhlci0+b2JqZWN0VG9TdHJp
bmdWYWx1ZSgpKTsKK30KKwordm9pZCBTdHJ1Y3R1cmVSYXJlRGF0YTo6dmlzaXRDaGlsZHJlbihK
U0NlbGwqIGNlbGwsIFNsb3RWaXNpdG9yJiB2aXNpdG9yKQoreworICAgIFN0cnVjdHVyZVJhcmVE
YXRhKiB0aGlzT2JqZWN0ID0ganNDYXN0PFN0cnVjdHVyZVJhcmVEYXRhKj4oY2VsbCk7CisgICAg
QVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyh0aGlzT2JqZWN0LCAmc19pbmZvKTsKKyAgICBBU1NF
UlQodGhpc09iamVjdC0+c3RydWN0dXJlKCktPnR5cGVJbmZvKCkub3ZlcnJpZGVzVmlzaXRDaGls
ZHJlbigpKTsKKworICAgIEpTQ2VsbDo6dmlzaXRDaGlsZHJlbih0aGlzT2JqZWN0LCB2aXNpdG9y
KTsKKyAgICB2aXNpdG9yLmFwcGVuZCgmdGhpc09iamVjdC0+bV9wcmV2aW91cyk7CisgICAgdmlz
aXRvci5hcHBlbmQoJnRoaXNPYmplY3QtPm1fb2JqZWN0VG9TdHJpbmdWYWx1ZSk7Cit9CisKK30g
Ly8gbmFtZXNwYWNlIEpTQwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3Ry
dWN0dXJlUmFyZURhdGEuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9TdHJ1Y3R1cmVSYXJlRGF0YS5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlUmFyZURhdGEuaAkocmV2aXNpb24gMCkKQEAgLTAsMCAr
MSw2OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgU3RydWN0dXJlUmFyZURhdGFfaAorI2RlZmlu
ZSBTdHJ1Y3R1cmVSYXJlRGF0YV9oCisKKyNpbmNsdWRlICJDbGFzc0luZm8uaCIKKyNpbmNsdWRl
ICJKU0NlbGwuaCIKKyNpbmNsdWRlICJKU1R5cGVJbmZvLmgiCisKK25hbWVzcGFjZSBKU0Mgewor
CitjbGFzcyBTdHJ1Y3R1cmU7CisKK2NsYXNzIFN0cnVjdHVyZVJhcmVEYXRhIDogcHVibGljIEpT
Q2VsbCB7CisgICAgZnJpZW5kIGNsYXNzIFN0cnVjdHVyZTsKK3B1YmxpYzoKKyAgICBzdGF0aWMg
U3RydWN0dXJlUmFyZURhdGEqIGNyZWF0ZShKU0dsb2JhbERhdGEmLCBTdHJ1Y3R1cmUqKTsKKyAg
ICBzdGF0aWMgU3RydWN0dXJlUmFyZURhdGEqIGNsb25lKEpTR2xvYmFsRGF0YSYsIGNvbnN0IFN0
cnVjdHVyZVJhcmVEYXRhKiBvdGhlcik7CisKKyAgICBzdGF0aWMgdm9pZCB2aXNpdENoaWxkcmVu
KEpTQ2VsbCosIFNsb3RWaXNpdG9yJik7CisKKyAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVT
dHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiwgSlNHbG9iYWxPYmplY3QqLCBKU1ZhbHVlIHByb3RvdHlw
ZSk7CisKKyAgICBTdHJ1Y3R1cmUqIHByZXZpb3VzSUQoKSBjb25zdDsKKyAgICB2b2lkIHNldFBy
ZXZpb3VzSUQoSlNHbG9iYWxEYXRhJiwgU3RydWN0dXJlKiB0cmFuc2l0aW9uLCBTdHJ1Y3R1cmUq
KTsKKyAgICB2b2lkIGNsZWFyUHJldmlvdXNJRCgpOworCisgICAgSlNTdHJpbmcqIG9iamVjdFRv
U3RyaW5nVmFsdWUoKSBjb25zdDsKKyAgICB2b2lkIHNldE9iamVjdFRvU3RyaW5nVmFsdWUoSlNH
bG9iYWxEYXRhJiwgY29uc3QgSlNDZWxsKiBvd25lciwgSlNTdHJpbmcqIHZhbHVlKTsKKworICAg
IHN0YXRpYyBKU19FWFBPUlREQVRBIGNvbnN0IENsYXNzSW5mbyBzX2luZm87CisKK3ByaXZhdGU6
CisgICAgU3RydWN0dXJlUmFyZURhdGEoSlNHbG9iYWxEYXRhJiwgU3RydWN0dXJlKik7CisgICAg
U3RydWN0dXJlUmFyZURhdGEoSlNHbG9iYWxEYXRhJiwgY29uc3QgU3RydWN0dXJlUmFyZURhdGEq
KTsKKworICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IE92ZXJyaWRl
c1Zpc2l0Q2hpbGRyZW4gfCBKU0NlbGw6OlN0cnVjdHVyZUZsYWdzOworCisgICAgV3JpdGVCYXJy
aWVyPFN0cnVjdHVyZT4gbV9wcmV2aW91czsKKyAgICBXcml0ZUJhcnJpZXI8SlNTdHJpbmc+IG1f
b2JqZWN0VG9TdHJpbmdWYWx1ZTsKK307CisKK30gLy8gbmFtZXNwYWNlIEpTQworCisjZW5kaWYg
Ly8gU3RydWN0dXJlUmFyZURhdGFfaApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvU3RydWN0dXJlUmFyZURhdGFJbmxpbmVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlUmFyZURhdGFJbmxpbmVzLmgJKHJldmlzaW9uIDAp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmVSYXJlRGF0YUlubGlu
ZXMuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw2MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYg
U3RydWN0dXJlUmFyZURhdGFJbmxpbmVzX2gKKyNkZWZpbmUgU3RydWN0dXJlUmFyZURhdGFJbmxp
bmVzX2gKKworI2luY2x1ZGUgIlN0cnVjdHVyZVJhcmVEYXRhLmgiCisKK25hbWVzcGFjZSBKU0Mg
eworCitpbmxpbmUgU3RydWN0dXJlKiBTdHJ1Y3R1cmVSYXJlRGF0YTo6cHJldmlvdXNJRCgpIGNv
bnN0Cit7CisgICAgcmV0dXJuIG1fcHJldmlvdXMuZ2V0KCk7Cit9CisKK2lubGluZSB2b2lkIFN0
cnVjdHVyZVJhcmVEYXRhOjpzZXRQcmV2aW91c0lEKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwg
U3RydWN0dXJlKiB0cmFuc2l0aW9uLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKK3sKKyAgICBtX3By
ZXZpb3VzLnNldChnbG9iYWxEYXRhLCB0cmFuc2l0aW9uLCBzdHJ1Y3R1cmUpOworfQorCitpbmxp
bmUgdm9pZCBTdHJ1Y3R1cmVSYXJlRGF0YTo6Y2xlYXJQcmV2aW91c0lEKCkKK3sKKyAgICBtX3By
ZXZpb3VzLmNsZWFyKCk7Cit9CisKK2lubGluZSBKU1N0cmluZyogU3RydWN0dXJlUmFyZURhdGE6
Om9iamVjdFRvU3RyaW5nVmFsdWUoKSBjb25zdAoreworICAgIHJldHVybiBtX29iamVjdFRvU3Ry
aW5nVmFsdWUuZ2V0KCk7Cit9CisKK2lubGluZSB2b2lkIFN0cnVjdHVyZVJhcmVEYXRhOjpzZXRP
YmplY3RUb1N0cmluZ1ZhbHVlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgY29uc3QgSlNDZWxs
KiBvd25lciwgSlNTdHJpbmcqIHZhbHVlKQoreworICAgIG1fb2JqZWN0VG9TdHJpbmdWYWx1ZS5z
ZXQoZ2xvYmFsRGF0YSwgb3duZXIsIHZhbHVlKTsKK30KKworfSAvLyBuYW1lc3BhY2UgSlNDCisK
KyNlbmRpZiAvLyBTdHJ1Y3R1cmVSYXJlRGF0YUlubGluZXNfaAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>186106</attachid>
            <date>2013-02-01 12:34:57 -0800</date>
            <delta_ts>2013-02-01 14:19:10 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-108659-20130201123139.patch</filename>
            <type>text/plain</type>
            <size>44532</size>
            <attacher name="Mark Hahnenberg">mhahnenberg</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTQxNjI3KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0MyBA
QAorMjAxMy0wMi0wMSAgTWFyayBIYWhuZW5iZXJnICA8bWhhaG5lbmJlcmdAYXBwbGUuY29tPgor
CisgICAgICAgIFN0cnVjdHVyZSBzaG91bGQgaGF2ZSBhIFN0cnVjdHVyZVJhcmVEYXRhIGZpZWxk
IHRvIHNhdmUgc3BhY2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTEwODY1OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIE1hbnkgb2YgdGhlIGZpZWxkcyBpbiBTdHJ1Y3R1cmUgYXJlIHVzZWQgaW4gYSBzdWJz
ZXQgb2YgYWxsIHRvdGFsIFN0cnVjdHVyZXM7IGhvd2V2ZXIsIGFsbCBTdHJ1Y3R1cmVzIG11c3Qg
CisgICAgICAgIHBheSB0aGUgbWVtb3J5IGNvc3Qgb2YgdGhvc2UgZmllbGRzLCByZWdhcmRsZXNz
IG9mIHdoZXRoZXIgdGhleSB1c2UgdGhlbSBvciBub3QuIFNpbmNlIHdlIGNhbiBoYXZlIHBvdGVu
dGlhbGx5IAorICAgICAgICBtYW55IFN0cnVjdHVyZXMgb24gYSBzaW5nbGUgcGFnZSAoZS5nLiBi
aW5nLmNvbSBjcmVhdGVzIH4xNTAwIFN0cnVjdHVyZXMpLCBpdCB3b3VsZCBiZSBwcm9maXRhYmxl
IHRvIAorICAgICAgICByZWZhY3RvciBTdHJ1Y3R1cmUgc28gdGhhdCBub3QgZXZlcnkgU3RydWN0
dXJlIGhhcyB0byBwYXkgdGhlIG1lbW9yeSBjb3N0cyBmb3IgdGhlc2UgaW5mcmVxdWVudGx5IHVz
ZWQgZmllbGRzLgorCisgICAgICAgIFRvIGFjY29tcGxpc2ggdGhpcywgd2UgY2FuIGNyZWF0ZSBh
IG5ldyBTdHJ1Y3R1cmVSYXJlRGF0YSBjbGFzcyB0byBob3VzZSB0aGVzZSBzZWxkb20gdXNlZCBm
aWVsZHMgd2hpY2ggd2UgCisgICAgICAgIGNhbiBhbGxvY2F0ZSBvbiBkZW1hbmQgd2hlbmV2ZXIg
YSBTdHJ1Y3R1cmUgcmVxdWlyZXMgaXQuIFRoaXMgU3RydWN0dXJlUmFyZURhdGEgY2FuIGl0c2Vs
ZiBiZSBhIEpTQ2VsbCwgYW5kIAorICAgICAgICBjYW4gZG8gYWxsIHRoZSBtYXJraW5nIG9mIHRo
ZSBmaWVsZHMgZm9yIHRoZSBTdHJ1Y3R1cmUuIFRoZSBTdHJ1Y3R1cmVSYXJlRGF0YSBmaWVsZCB3
aWxsIGJlIHBhcnQgb2YgYSB1bmlvbiAKKyAgICAgICAgd2l0aCBtX3ByZXZpb3VzIHRvIG1pbmlt
aXplIG92ZXJoZWFkLiBXZSdsbCBhZGQgYSBuZXcgZmllbGQgdG8gSlNUeXBlSW5mbyB0byBpbmRp
Y2F0ZSB0aGF0IHRoZSBTdHJ1Y3R1cmUgaGFzIAorICAgICAgICBhIFN0cnVjdHVyZVJhcmVEYXRh
IGZpZWxkLiBEdXJpbmcgdHJhbnNpdGlvbnMsIGEgU3RydWN0dXJlIHdpbGwgY2xvbmUgaXRzIHBy
ZXZpb3VzIFN0cnVjdHVyZSdzIFN0cnVjdHVyZVJhcmVEYXRhIAorICAgICAgICBpZiBpdCBoYXMg
b25lLiBUaGVyZSBjb3VsZCBiZSBzb21lIHBvdGVudGlhbCBmb3Igb3B0aW1pemluZyB0aGlzIHBy
b2Nlc3MsIGJ1dCB0aGUgaW5pdGlhbCBpbXBsZW1lbnRhdGlvbiB3aWxsIAorICAgICAgICBiZSBk
dW1iIHNpbmNlIHdlJ2QgYmUgcGF5aW5nIHRoZXNlIG92ZXJoZWFkIGNvc3RzIGZvciBlYWNoIFN0
cnVjdHVyZSBhbnl3YXlzLgorCisgICAgICAgIEluaXRpYWxseSB3ZSdsbCBvbmx5IHB1dCB0d28g
ZmllbGRzIGluIHRoZSBTdHJ1Y3R1cmVSYXJlRGF0YSB0byBhdm9pZCBhIG1lbW9yeSByZWdyZXNz
aW9uLiBPdmVyIHRpbWUgd2UnbGwgCisgICAgICAgIGNvbnRpbnVlIHRvIG1vdmUgZmllbGRzIGZy
b20gU3RydWN0dXJlIHRvIFN0cnVjdHVyZVJhcmVEYXRhLiBPcHRpbWlzdGljYWxseSwgdGhpcyBj
b3VsZCBwb3RlbnRpYWxseSByZWR1Y2Ugb3VyIAorICAgICAgICBTdHJ1Y3R1cmUgbWVtb3J5IGZv
b3RwcmludCBieSB1cCB0byBhcm91bmQgNzUlLiBJdCBjb3VsZCBhbHNvIGNsZWFyIHRoZSB3YXkg
Zm9yIHJlbW92aW5nIGRlc3RydWN0b3JzIGZyb20gCisgICAgICAgIFN0cnVjdHVyZXMgKGFuZCBp
bnRvIFN0cnVjdHVyZVJhcmVEYXRhKS4KKworICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogZGZnL0RGR1JlcGF0Y2guY3BwOiBJbmNs
dWRlcyBmb3IgbGlua2luZyBwdXJwb3Nlcy4KKyAgICAgICAgKiBqaXQvSklUU3R1YnMuY3BwOgor
ICAgICAgICAqIGpzYy5jcHA6CisgICAgICAgICogbGxpbnQvTExJbnRTbG93UGF0aHMuY3BwOgor
ICAgICAgICAqIHJ1bnRpbWUvSlNDZWxsSW5saW5lcy5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNH
bG9iYWxEYXRhLmNwcDogTmV3IFN0cnVjdHVyZSBmb3IgU3RydWN0dXJlUmFyZURhdGEgY2xhc3Mu
CisgICAgICAgIChKU0M6OkpTR2xvYmFsRGF0YTo6SlNHbG9iYWxEYXRhKToKKyAgICAgICAgKiBy
dW50aW1lL0pTR2xvYmFsRGF0YS5oOgorICAgICAgICAoSlNHbG9iYWxEYXRhKToKKyAgICAgICAg
KiBydW50aW1lL0pTR2xvYmFsT2JqZWN0Lmg6CisgICAgICAgICogcnVudGltZS9KU1R5cGVJbmZv
Lmg6IE5ldyBmbGFnIHRvIGluZGljYXRlIHdoZXRoZXIgb3Igbm90IGEgU3RydWN0dXJlIGhhcyBh
IFN0cnVjdHVyZVJhcmVEYXRhIGZpZWxkLgorICAgICAgICAoSlNDOjpUeXBlSW5mbzo6ZmxhZ3Mp
OgorICAgICAgICAoSlNDOjpUeXBlSW5mbzo6c3RydWN0dXJlSGFzUmFyZURhdGEpOgorICAgICAg
ICAqIHJ1bnRpbWUvT2JqZWN0UHJvdG90eXBlLmNwcDoKKyAgICAgICAgKiBydW50aW1lL1N0cnVj
dHVyZS5jcHA6CisgICAgICAgIChKU0M6OlN0cnVjdHVyZTo6ZHVtcFN0YXRpc3RpY3MpOgorICAg
ICAgICAoSlNDOjpTdHJ1Y3R1cmU6OlN0cnVjdHVyZSk6IE1ha2Ugc3VyZSB0byBpbml0aWFsaXpl
IHRoZSB1bmlvbiBleHBsaWNpdGx5IHRvIHplcm8sIHNpbmNlIHRoYXQgZG9lc24ndCBoYXBwZW4g
YnkKKyAgICAgICAgaXRzZWxmIG5vdy4gUmVwbGFjZSBhbGwgYWNjZXNzZXMgb2YgbV9wcmV2aW91
cyB0byBjYWxscyB0byBwcmV2aW91c0lEKCksIHdoaWNoIG5vdyBoYW5kbGVzIHRoZSBsb2dpYyBv
ZiB3aGVyZSB0byAKKyAgICAgICAgcmVhZCB0aGUgZmllbGQgZnJvbS4KKyAgICAgICAgKEpTQzo6
U3RydWN0dXJlOjptYXRlcmlhbGl6ZVByb3BlcnR5TWFwKToKKyAgICAgICAgKEpTQzo6U3RydWN0
dXJlOjphZGRQcm9wZXJ0eVRyYW5zaXRpb24pOgorICAgICAgICAoSlNDOjpTdHJ1Y3R1cmU6Om5v
blByb3BlcnR5VHJhbnNpdGlvbik6CisgICAgICAgIChKU0M6OlN0cnVjdHVyZTo6cGluKToKKyAg
ICAgICAgKEpTQzo6U3RydWN0dXJlOjphbGxvY2F0ZVJhcmVEYXRhKTogSGFuZGxlcyBhbGxvY2F0
aW5nIGEgYnJhbmQgbmV3IFN0cnVjdHVyZVJhcmVEYXRhIGZpZWxkLgorICAgICAgICAoSlNDOjpT
dHJ1Y3R1cmU6OmNsb25lUmFyZURhdGFGcm9tKTogSGFuZGxlcyBjbG9uaW5nIGEgU3RydWN0dXJl
UmFyZURhdGEgZmllbGQgZnJvbSBhbm90aGVyLiBVc2VkIGR1cmluZyBTdHJ1Y3R1cmUgCisgICAg
ICAgIHRyYW5zaXRpb25zLgorICAgICAgICAoSlNDOjpTdHJ1Y3R1cmU6OnZpc2l0Q2hpbGRyZW4p
OiBXZSBubyBsb25nZXIgaGF2ZSB0byB3b3JyeSBhYm91dCBtYXJraW5nIG1fb2JqZWN0VG9TdHJp
bmdWYWx1ZS4KKyAgICAgICAgKiBydW50aW1lL1N0cnVjdHVyZS5oOgorICAgICAgICAoSlNDOjpT
dHJ1Y3R1cmU6OnByZXZpb3VzSUQpOiBDaGVja3MgdGhlIHN0cnVjdHVyZUhhc1JhcmVEYXRhIGZs
YWcgdG8gc2VlIHdoZXJlIGl0IHNob3VsZCBnZXQgdGhlIHByZXZpb3VzIFN0cnVjdHVyZS4KKyAg
ICAgICAgKEpTQzo6U3RydWN0dXJlOjpvYmplY3RUb1N0cmluZ1ZhbHVlKTogUmVhZHMgdGhlIHZh
bHVlIGZyb20gdGhlIFN0cnVjdHVyZVJhcmVEYXRhLiBJZiBpdCBkb2Vzbid0IGV4aXN0LCByZXR1
cm5zIDAuCisgICAgICAgIChKU0M6OlN0cnVjdHVyZTo6c2V0T2JqZWN0VG9TdHJpbmdWYWx1ZSk6
IEVuc3VyZXMgdGhhdCB3ZSBoYXZlIGEgU3RydWN0dXJlUmFyZURhdGEgZmllbGQsIHRoZW4gZm9y
d2FyZHMgdGhlIGZ1bmN0aW9uIAorICAgICAgICBjYWxsIHRvIGl0LgorICAgICAgICAoSlNDOjpT
dHJ1Y3R1cmU6Om1hdGVyaWFsaXplUHJvcGVydHlNYXBJZk5lY2Vzc2FyeSk6CisgICAgICAgIChK
U0M6OlN0cnVjdHVyZTo6c2V0UHJldmlvdXNJRCk6IENoZWNrcyBmb3IgU3RydWN0dXJlUmFyZURh
dGEgYW5kIGZvcndhcmRzIGlmIG5lY2Vzc2FyeS4KKyAgICAgICAgKFN0cnVjdHVyZSk6CisgICAg
ICAgIChKU0M6OlN0cnVjdHVyZTo6Y2xlYXJQcmV2aW91c0lEKTogRGl0dG8uCisgICAgICAgIChK
U0M6OlN0cnVjdHVyZTo6Y3JlYXRlKToKKyAgICAgICAgKiBydW50aW1lL1N0cnVjdHVyZVJhcmVE
YXRhLmNwcDogQWRkZWQuIEFsbCBvZiB0aGUgYmFzaWMgZnVuY3Rpb25hbGl0eSBvZiBhIEpTQ2Vs
bCB3aXRoIHRoZSBmaWVsZHMgdGhhdCB3ZSd2ZSBtb3ZlZCAKKyAgICAgICAgZnJvbSBTdHJ1Y3R1
cmUgYW5kIHRoZSBmdW5jdGlvbnMgcmVxdWlyZWQgdG8gYWNjZXNzL21vZGlmeSB0aG9zZSBmaWVs
ZHMgYXMgU3RydWN0dXJlIHdvdWxkIGhhdmUgZG9uZS4KKyAgICAgICAgKEpTQyk6CisgICAgICAg
IChKU0M6OlN0cnVjdHVyZVJhcmVEYXRhOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAoSlND
OjpTdHJ1Y3R1cmVSYXJlRGF0YTo6Y3JlYXRlKToKKyAgICAgICAgKEpTQzo6U3RydWN0dXJlUmFy
ZURhdGE6OmNsb25lKToKKyAgICAgICAgKEpTQzo6U3RydWN0dXJlUmFyZURhdGE6OlN0cnVjdHVy
ZVJhcmVEYXRhKToKKyAgICAgICAgKEpTQzo6U3RydWN0dXJlUmFyZURhdGE6OnZpc2l0Q2hpbGRy
ZW4pOgorICAgICAgICAqIHJ1bnRpbWUvU3RydWN0dXJlUmFyZURhdGEuaDogQWRkZWQuCisgICAg
ICAgIChKU0MpOgorICAgICAgICAoU3RydWN0dXJlUmFyZURhdGEpOgorICAgICAgICAqIHJ1bnRp
bWUvU3RydWN0dXJlUmFyZURhdGFJbmxpbmVzLmg6IEFkZGVkLgorICAgICAgICAoSlNDKToKKyAg
ICAgICAgKEpTQzo6U3RydWN0dXJlUmFyZURhdGE6OnByZXZpb3VzSUQpOgorICAgICAgICAoSlND
OjpTdHJ1Y3R1cmVSYXJlRGF0YTo6c2V0UHJldmlvdXNJRCk6CisgICAgICAgIChKU0M6OlN0cnVj
dHVyZVJhcmVEYXRhOjpjbGVhclByZXZpb3VzSUQpOgorICAgICAgICAoSlNDOjpTdHJ1Y3R1cmVS
YXJlRGF0YTo6b2JqZWN0VG9TdHJpbmdWYWx1ZSk6CisgICAgICAgIChKU0M6OlN0cnVjdHVyZVJh
cmVEYXRhOjpzZXRPYmplY3RUb1N0cmluZ1ZhbHVlKToKKworICAgICAgICAqIENNYWtlTGlzdHMu
dHh0OgorICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAgICogSmF2YVNjcmlw
dENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvajoKKyAgICAg
ICAgKiBKYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAq
IFRhcmdldC5wcmk6CisgICAgICAgICogZGZnL0RGR1JlcGF0Y2guY3BwOgorICAgICAgICAqIGpp
dC9KSVRTdHVicy5jcHA6CisgICAgICAgICoganNjLmNwcDoKKyAgICAgICAgKiBsbGludC9MTElu
dFNsb3dQYXRocy5jcHA6CisgICAgICAgICogcnVudGltZS9KU0NlbGxJbmxpbmVzLmg6CisgICAg
ICAgICogcnVudGltZS9KU0dsb2JhbERhdGEuY3BwOgorICAgICAgICAoSlNDOjpKU0dsb2JhbERh
dGE6OkpTR2xvYmFsRGF0YSk6CisgICAgICAgICogcnVudGltZS9KU0dsb2JhbERhdGEuaDoKKyAg
ICAgICAgKEpTR2xvYmFsRGF0YSk6CisgICAgICAgICogcnVudGltZS9KU0dsb2JhbE9iamVjdC5o
OgorICAgICAgICAqIHJ1bnRpbWUvSlNUeXBlSW5mby5oOgorICAgICAgICAoSlNDKToKKyAgICAg
ICAgKEpTQzo6VHlwZUluZm86OmZsYWdzKToKKyAgICAgICAgKEpTQzo6VHlwZUluZm86OnN0cnVj
dHVyZUhhc1JhcmVEYXRhKToKKyAgICAgICAgKiBydW50aW1lL09iamVjdFByb3RvdHlwZS5jcHA6
CisgICAgICAgICogcnVudGltZS9TdHJ1Y3R1cmUuY3BwOgorICAgICAgICAoSlNDOjpTdHJ1Y3R1
cmU6OmR1bXBTdGF0aXN0aWNzKToKKyAgICAgICAgKEpTQzo6U3RydWN0dXJlOjpTdHJ1Y3R1cmUp
OgorICAgICAgICAoSlNDOjpTdHJ1Y3R1cmU6Om1hdGVyaWFsaXplUHJvcGVydHlNYXApOgorICAg
ICAgICAoSlNDOjpTdHJ1Y3R1cmU6OmFkZFByb3BlcnR5VHJhbnNpdGlvbik6CisgICAgICAgIChK
U0M6OlN0cnVjdHVyZTo6bm9uUHJvcGVydHlUcmFuc2l0aW9uKToKKyAgICAgICAgKEpTQzo6U3Ry
dWN0dXJlOjpwaW4pOgorICAgICAgICAoSlNDOjpTdHJ1Y3R1cmU6OmFsbG9jYXRlUmFyZURhdGEp
OgorICAgICAgICAoSlNDKToKKyAgICAgICAgKEpTQzo6U3RydWN0dXJlOjpjbG9uZVJhcmVEYXRh
RnJvbSk6CisgICAgICAgIChKU0M6OlN0cnVjdHVyZTo6dmlzaXRDaGlsZHJlbik6CisgICAgICAg
ICogcnVudGltZS9TdHJ1Y3R1cmUuaDoKKyAgICAgICAgKEpTQzo6U3RydWN0dXJlOjpwcmV2aW91
c0lEKToKKyAgICAgICAgKEpTQzo6U3RydWN0dXJlOjpvYmplY3RUb1N0cmluZ1ZhbHVlKToKKyAg
ICAgICAgKEpTQzo6U3RydWN0dXJlOjpzZXRPYmplY3RUb1N0cmluZ1ZhbHVlKToKKyAgICAgICAg
KEpTQzo6U3RydWN0dXJlOjptYXRlcmlhbGl6ZVByb3BlcnR5TWFwSWZOZWNlc3NhcnkpOgorICAg
ICAgICAoSlNDOjpTdHJ1Y3R1cmU6OnNldFByZXZpb3VzSUQpOgorICAgICAgICAoU3RydWN0dXJl
KToKKyAgICAgICAgKEpTQzo6U3RydWN0dXJlOjpjbGVhclByZXZpb3VzSUQpOgorICAgICAgICAo
SlNDOjpTdHJ1Y3R1cmU6OmNyZWF0ZSk6CisgICAgICAgICogcnVudGltZS9TdHJ1Y3R1cmVSYXJl
RGF0YS5jcHA6IEFkZGVkLgorICAgICAgICAoSlNDKToKKyAgICAgICAgKEpTQzo6U3RydWN0dXJl
UmFyZURhdGE6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgIChKU0M6OlN0cnVjdHVyZVJhcmVE
YXRhOjpjcmVhdGUpOgorICAgICAgICAoSlNDOjpTdHJ1Y3R1cmVSYXJlRGF0YTo6Y2xvbmUpOgor
ICAgICAgICAoSlNDOjpTdHJ1Y3R1cmVSYXJlRGF0YTo6U3RydWN0dXJlUmFyZURhdGEpOgorICAg
ICAgICAoSlNDOjpTdHJ1Y3R1cmVSYXJlRGF0YTo6dmlzaXRDaGlsZHJlbik6CisgICAgICAgICog
cnVudGltZS9TdHJ1Y3R1cmVSYXJlRGF0YS5oOiBBZGRlZC4KKyAgICAgICAgKEpTQyk6CisgICAg
ICAgIChTdHJ1Y3R1cmVSYXJlRGF0YSk6CisgICAgICAgICogcnVudGltZS9TdHJ1Y3R1cmVSYXJl
RGF0YUlubGluZXMuaDogQWRkZWQuCisgICAgICAgIChKU0MpOgorICAgICAgICAoSlNDOjpTdHJ1
Y3R1cmVSYXJlRGF0YTo6cHJldmlvdXNJRCk6CisgICAgICAgIChKU0M6OlN0cnVjdHVyZVJhcmVE
YXRhOjpzZXRQcmV2aW91c0lEKToKKyAgICAgICAgKEpTQzo6U3RydWN0dXJlUmFyZURhdGE6OmNs
ZWFyUHJldmlvdXNJRCk6CisgICAgICAgIChKU0M6OlN0cnVjdHVyZVJhcmVEYXRhOjpvYmplY3RU
b1N0cmluZ1ZhbHVlKToKKyAgICAgICAgKEpTQzo6U3RydWN0dXJlUmFyZURhdGE6OnNldE9iamVj
dFRvU3RyaW5nVmFsdWUpOgorCiAyMDEzLTAyLTAxICBHZW9mZnJleSBHYXJlbiAgPGdnYXJlbkBh
cHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlZCBhbiB1bnVzZWQgZnVuY3Rpb246IEpTR2xvYmFs
T2JqZWN0OjpjcmVhdGVGdW5jdGlvbkV4ZWN1dGFibGVGcm9tR2xvYmFsQ29kZQpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0Cj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dAkocmV2aXNpb24gMTQxNjEzKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0yOTAsNiAr
MjkwLDcgQEAgc2V0KEphdmFTY3JpcHRDb3JlX1NPVVJDRVMKICAgICBydW50aW1lL1N0cmluZ1By
b3RvdHlwZS5jcHAKICAgICBydW50aW1lL1N0cmluZ1JlY3Vyc2lvbkNoZWNrZXIuY3BwCiAgICAg
cnVudGltZS9TdHJ1Y3R1cmUuY3BwCisgICAgcnVudGltZS9TdHJ1Y3R1cmVSYXJlRGF0YS5jcHAK
ICAgICBydW50aW1lL1N0cnVjdHVyZUNoYWluLmNwcAogICAgIHJ1bnRpbWUvU3ltYm9sVGFibGUu
Y3BwCiAgICAgcnVudGltZS9UaW1lb3V0Q2hlY2tlci5jcHAKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCShyZXZpc2lvbiAxNDE2MTMpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvR05VbWFrZWZpbGUubGlzdC5hbQkod29ya2luZyBjb3B5KQpAQCAtNzQ4
LDYgKzc0OCw5IEBAIGphdmFzY3JpcHRjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZUNoYWluLmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1N0cnVjdHVyZS5jcHAgXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1N0cnVjdHVyZS5oIFwKKwlTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmVS
YXJlRGF0YS5jcHAgXAorCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZVJh
cmVEYXRhLmggXAorCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZVJhcmVE
YXRhSW5saW5lcy5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmVU
cmFuc2l0aW9uVGFibGUuaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3ltYm9s
VGFibGUuY3BwIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TeW1ib2xUYWJsZS5o
IFwKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9UYXJnZXQucHJpCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9UYXJnZXQucHJpCShyZXZpc2lvbiAxNDE2MTMpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvVGFyZ2V0LnByaQkod29ya2luZyBjb3B5KQpAQCAtMzEwLDYg
KzMxMCw3IEBAIFNPVVJDRVMgKz0gXAogICAgIHJ1bnRpbWUvU3RyaW5nUmVjdXJzaW9uQ2hlY2tl
ci5jcHAgXAogICAgIHJ1bnRpbWUvU3RydWN0dXJlQ2hhaW4uY3BwIFwKICAgICBydW50aW1lL1N0
cnVjdHVyZS5jcHAgXAorICAgIHJ1bnRpbWUvU3RydWN0dXJlUmFyZURhdGEuY3BwIFwKICAgICBy
dW50aW1lL1N5bWJvbFRhYmxlLmNwcCBcCiAgICAgcnVudGltZS9UaW1lb3V0Q2hlY2tlci5jcHAg
XAogICAgIHRvb2xzL0NvZGVQcm9maWxlLmNwcCBcCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvanNjLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcAko
cmV2aXNpb24gMTQxNjEzKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTM4LDYgKzM4LDcgQEAKICNpbmNsdWRlICJKU1N0cmluZy5oIgogI2luY2x1
ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJTYW1wbGluZ1Rvb2wuaCIKKyNpbmNsdWRlICJT
dHJ1Y3R1cmVSYXJlRGF0YUlubGluZXMuaCIKICNpbmNsdWRlIDxtYXRoLmg+CiAjaW5jbHVkZSA8
c3RkaW8uaD4KICNpbmNsdWRlIDxzdGRsaWIuaD4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2ovSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNw
cm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52
Y3Byb2ovSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qCShyZXZpc2lvbiAxNDE2
MTMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL0phdmFT
Y3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvagkod29ya2luZyBjb3B5KQpAQCAtMTMzOCw2
ICsxMzM4LDE4IEBACiAJCQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBh
dGg9Ii4uXC4uXHJ1bnRpbWVcU3RydWN0dXJlUmFyZURhdGEuY3BwIgorCQkJCT4KKwkJCTwvRmls
ZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxydW50aW1lXFN0cnVjdHVyZVJh
cmVEYXRhLmgiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9
Ii4uXC4uXHJ1bnRpbWVcU3RydWN0dXJlUmFyZURhdGFJbmxpbmVzLmgiCisJCQkJPgorCQkJPC9G
aWxlPgorCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXHJ1bnRpbWVcU3RydWN0dXJl
VHJhbnNpdGlvblRhYmxlLmgiCiAJCQkJPgogCQkJPC9GaWxlPgpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDE0MTYxMykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkp
CkBAIC03OTAsNiArNzkwLDcgQEAKIAkJQkNGNjA1MTQwRTIwM0VGODAwQjlBNjREIC8qIEFyZ0xp
c3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDRjYw
NTEyMEUyMDNFRjgwMEI5QTY0RCAvKiBBcmdMaXN0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQkNGRDhDOTIwRUVCMkVFNzAwMjgzODQ4IC8qIEp1
bXBUYWJsZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBCQ0ZEOEM5MDBFRUIyRUU3MDAyODM4NDggLyogSnVtcFRhYmxlLmNwcCAqLzsgfTsKIAkJQkNG
RDhDOTMwRUVCMkVFNzAwMjgzODQ4IC8qIEp1bXBUYWJsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNGRDhDOTEwRUVCMkVFNzAwMjgzODQ4IC8qIEp1
bXBUYWJsZS5oICovOyB9OworCQlDMjBCQTkyRDE2QkIxQzE1MDBCM0FFQTIgLyogU3RydWN0dXJl
UmFyZURhdGFJbmxpbmVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBDMjBCQTkyQzE2QkIxQzE1MDBCM0FFQTIgLyogU3RydWN0dXJlUmFyZURhdGFJbmxp
bmVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
QzIxMTIyRTExNUREOUFCMzAwNzkwRTNBIC8qIEdDVGhyZWFkU2hhcmVkRGF0YS5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMjExMjJERTE1REQ5QUIz
MDA3OTBFM0EgLyogR0NUaHJlYWRTaGFyZWREYXRhLmNwcCAqLzsgfTsKIAkJQzIxMTIyRTIxNURE
OUFCMzAwNzkwRTNBIC8qIEdDVGhyZWFkU2hhcmVkRGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzIxMTIyREYxNUREOUFCMzAwNzkwRTNBIC8qIEdD
VGhyZWFkU2hhcmVkRGF0YS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCUMyMTEyMkUzMTVERDlBQjMwMDc5MEUzQSAvKiBNYXJrU3RhY2tJbmxpbmVz
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMjExMjJF
MDE1REQ5QUIzMDA3OTBFM0EgLyogTWFya1N0YWNrSW5saW5lcy5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC04MTgsNyArODE5LDkgQEAKIAkJQzJF
NTI2QkUxNTkwRUYwMDAwNTRFNDhEIC8qIEhlYXBUaW1lci5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzJFNTI2QkMxNTkwRUYwMDAwNTRFNDhEIC8qIEhl
YXBUaW1lci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCUMyRUFBM0ZBMTQ5QTgzNUUwMEZDRTExMiAvKiBDb3BpZWRTcGFjZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzJFQUEzRjgxNDlBODMwODAwRkNF
MTEyIC8qIENvcGllZFNwYWNlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJQzJFQUQyRkMxNEYwMjQ5ODAwQTRCMTU5IC8qIENvcGllZEFsbG9jYXRv
ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzJFQUQy
RkIxNEYwMjQ5ODAwQTRCMTU5IC8qIENvcGllZEFsbG9jYXRvci5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUMyRjBGMkQxMTZCQUVFRTkwMDE4N0Mx
OSAvKiBTdHJ1Y3R1cmVSYXJlRGF0YS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBDMkYwRjJEMDE2QkFFRUU5MDAxODdDMTkgLyogU3RydWN0dXJlUmFy
ZURhdGEuY3BwICovOyB9OwogCQlDMkZDOUJEMzE2NjQ0REZCMDA4MTBEMzMgLyogQ29waWVkQmxv
Y2tJbmxpbmVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBDMkZDOUJEMjE2NjQ0REZCMDA4MTBEMzMgLyogQ29waWVkQmxvY2tJbmxpbmVzLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJQzJGRTE4QTQxNkJB
RUM0MDAwQUYzMDYxIC8qIFN0cnVjdHVyZVJhcmVEYXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMkZFMThBMzE2QkFFQzQwMDBBRjMwNjEgLyogU3Ry
dWN0dXJlUmFyZURhdGEuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQlEREY3QUJENDExRjYwRUQyMDAxMDhFMzYgLyogR0NBY3Rpdml0eUNhbGxiYWNr
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEREY3QUJE
MjExRjYwRUQyMDAxMDhFMzYgLyogR0NBY3Rpdml0eUNhbGxiYWNrLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRTEyNEE4RjcwRTU1NTc3NTAwMzA5
MUYxIC8qIE9wYXF1ZUpTU3RyaW5nLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBFMTI0QThGNTBFNTU1Nzc1MDAzMDkxRjEgLyogT3BhcXVlSlNTdHJpbmcu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlFMTI0
QThGODBFNTU1Nzc1MDAzMDkxRjEgLyogT3BhcXVlSlNTdHJpbmcuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTEyNEE4RjYwRTU1NTc3NTAwMzA5MUYx
IC8qIE9wYXF1ZUpTU3RyaW5nLmNwcCAqLzsgfTsKQEAgLTE2NzAsNiArMTY3Myw3IEBACiAJCUJD
RjYwNTEyMEUyMDNFRjgwMEI5QTY0RCAvKiBBcmdMaXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEFyZ0xpc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkNG
RDhDOTAwRUVCMkVFNzAwMjgzODQ4IC8qIEp1bXBUYWJsZS5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBKdW1wVGFibGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlCQ0ZEOEM5MTBFRUIyRUU3MDAyODM4NDggLyogSnVtcFRhYmxlLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEp1bXBUYWJsZS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQlDMjBCQTkyQzE2QkIxQzE1MDBCM0FFQTIgLyogU3RydWN0dXJlUmFyZURhdGFJ
bmxpbmVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN0cnVjdHVyZVJhcmVE
YXRhSW5saW5lcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDMjExMjJERTE1REQ5
QUIzMDA3OTBFM0EgLyogR0NUaHJlYWRTaGFyZWREYXRhLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IEdDVGhyZWFkU2hhcmVkRGF0YS5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUMyMTEyMkRGMTVERDlBQjMwMDc5MEUzQSAvKiBHQ1RocmVhZFNoYXJl
ZERhdGEuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR0NUaHJlYWRTaGFyZWRE
YXRhLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUMyMTEyMkUwMTVERDlBQjMwMDc5
MEUzQSAvKiBNYXJrU3RhY2tJbmxpbmVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IE1hcmtTdGFja0lubGluZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE2
OTYsNyArMTcwMCw5IEBACiAJCUMyRTUyNkJDMTU5MEVGMDAwMDU0RTQ4RCAvKiBIZWFwVGltZXIu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSGVhcFRpbWVyLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUMyRUFBM0Y4MTQ5QTgzMDgwMEZDRTExMiAvKiBDb3BpZWRT
cGFjZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDb3BpZWRTcGFjZS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDMkVBRDJGQjE0RjAyNDk4MDBBNEIxNTkgLyog
Q29waWVkQWxsb2NhdG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENvcGll
ZEFsbG9jYXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDMkYwRjJEMDE2QkFF
RUU5MDAxODdDMTkgLyogU3RydWN0dXJlUmFyZURhdGEuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gU3RydWN0dXJlUmFyZURhdGEuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlDMkZDOUJEMjE2NjQ0REZCMDA4MTBEMzMgLyogQ29waWVkQmxvY2tJbmxp
bmVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENvcGllZEJsb2NrSW5saW5l
cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDMkZFMThBMzE2QkFFQzQwMDBBRjMw
NjEgLyogU3RydWN0dXJlUmFyZURhdGEuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gU3RydWN0dXJlUmFyZURhdGEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRDIx
MjAyMjgwQUQ0MzEwQzAwRUQ3OUI2IC8qIERhdGVDb252ZXJzaW9uLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEYXRlQ29udmVyc2lvbi5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUQyMTIwMjI5MEFENDMxMEMwMEVENzlCNiAvKiBEYXRlQ29udmVy
c2lvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGF0ZUNvbnZlcnNpb24u
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRERGN0FCRDIxMUY2MEVEMjAwMTA4RTM2
IC8qIEdDQWN0aXZpdHlDYWxsYmFjay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBHQ0FjdGl2aXR5Q2FsbGJhY2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI1
MjIsNiArMjUyOCw5IEBACiAJCQkJMTQyMEJFN0ExMEFBNkREQjAwRjQ1NUQyIC8qIFdlYWtSYW5k
b20uaCAqLywKIAkJCQlBN0RDQjc3OTEyRTNEOTA1MDA5MTE5NDAgLyogV3JpdGVCYXJyaWVyLmgg
Ki8sCiAJCQkJQzJENThDMzMxNTkxMkZFRTAwMjFBODQ0IC8qIEdDQWN0aXZpdHlDYWxsYmFjay5j
cHAgKi8sCisJCQkJQzJGRTE4QTMxNkJBRUM0MDAwQUYzMDYxIC8qIFN0cnVjdHVyZVJhcmVEYXRh
LmggKi8sCisJCQkJQzJGMEYyRDAxNkJBRUVFOTAwMTg3QzE5IC8qIFN0cnVjdHVyZVJhcmVEYXRh
LmNwcCAqLywKKwkJCQlDMjBCQTkyQzE2QkIxQzE1MDBCM0FFQTIgLyogU3RydWN0dXJlUmFyZURh
dGFJbmxpbmVzLmggKi8sCiAJCQkpOwogCQkJcGF0aCA9IHJ1bnRpbWU7CiAJCQlzb3VyY2VUcmVl
ID0gIjxncm91cD4iOwpAQCAtMjg4NSw3ICsyODk0LDkgQEAKIAkJCQlCQzE4QzUyNDBFMTZGQzhB
MDBCMzQ0NjAgLyogQXJyYXlQcm90b3R5cGUubHV0LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkI3
RjM5NjE1RUQ4RTQ2MDBGMTY3QjIgLyogQXJyYXlTdG9yYWdlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk5Njg4Q0IxNTBFRDEyQjRFMDAxRDY0OUYgLyogQXNzZW1ibGVyQnVmZmVyLmggaW4gSGVhZGVy
cyAqLywKKwkJCQlDMjBCQTkyRDE2QkIxQzE1MDBCM0FFQTIgLyogU3RydWN0dXJlUmFyZURhdGFJ
bmxpbmVzLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NkQzQjJDNTEwMTU2QkRFMDAyODY1RTcgLyog
QXNzZW1ibGVyQnVmZmVyV2l0aENvbnN0YW50UG9vbC5oIGluIEhlYWRlcnMgKi8sCisJCQkJQzJG
RTE4QTQxNkJBRUM0MDAwQUYzMDYxIC8qIFN0cnVjdHVyZVJhcmVEYXRhLmggaW4gSGVhZGVycyAq
LywKIAkJCQlBNzg0QTI2MTExRDE2NjIyMDA1Nzc2QUMgLyogQVNUQnVpbGRlci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMTQ3QjgzQUMwRTZEQjhDOTAwNDc3NUE0IC8qIEJhdGNoZWRUcmFuc2l0aW9u
T3B0aW1pemVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NjY3MzlEMjEzQkZERTcxMDAyM0Q4N0Mg
LyogQmlnSW50ZWdlci5oIGluIEhlYWRlcnMgKi8sCkBAIC0zOTUxLDYgKzM5NjIsNyBAQAogCQkJ
CTBGRjBGMTlEMTZCNzJBMDgwMDVERjk1QiAvKiBERkdDb21tb24uY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJMEZGMEYxOUUxNkI3MkEwQjAwNURGOTVCIC8qIERGR0VkZ2UuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJMEZGMEYxOUYxNkI3MkExNzAwNURGOTVCIC8qIEZ1bmN0aW9uRXhlY3V0YWJsZUR1
bXAuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQzJGMEYyRDExNkJBRUVFOTAwMTg3QzE5IC8qIFN0
cnVjdHVyZVJhcmVEYXRhLmNwcCBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JE
ZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdSZXBhdGNoLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR1JlcGF0Y2guY3BwCShyZXZpc2lvbiAxNDE2MTMpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1JlcGF0Y2guY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNyw2ICsz
Nyw3IEBACiAjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgIlBvbHltb3JwaGljUHV0
QnlJZExpc3QuaCIKICNpbmNsdWRlICJSZXBhdGNoQnVmZmVyLmgiCisjaW5jbHVkZSAiU3RydWN0
dXJlUmFyZURhdGFJbmxpbmVzLmgiCiAjaW5jbHVkZSA8d3RmL1N0cmluZ1ByaW50U3RyZWFtLmg+
CiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklUU3R1YnMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklUU3R1YnMuY3BwCShyZXZpc2lvbiAxNDE2MTMpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0pJVFN0dWJzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjgsNiArNjgsNyBA
QAogI2luY2x1ZGUgIlJlcGF0Y2hCdWZmZXIuaCIKICNpbmNsdWRlICJTYW1wbGluZ1Rvb2wuaCIK
ICNpbmNsdWRlICJTdHJvbmcuaCIKKyNpbmNsdWRlICJTdHJ1Y3R1cmVSYXJlRGF0YUlubGluZXMu
aCIKICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CiAjaW5jbHVkZSA8c3RkYXJnLmg+CiAj
aW5jbHVkZSA8c3RkaW8uaD4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTElu
dFNsb3dQYXRocy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50
L0xMSW50U2xvd1BhdGhzLmNwcAkocmV2aXNpb24gMTQxNjEzKQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDksNiAr
NDksNyBAQAogI2luY2x1ZGUgIkxvd0xldmVsSW50ZXJwcmV0ZXIuaCIKICNpbmNsdWRlICJPYmpl
Y3RDb25zdHJ1Y3Rvci5oIgogI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKKyNpbmNsdWRlICJTdHJ1
Y3R1cmVSYXJlRGF0YUlubGluZXMuaCIKICNpbmNsdWRlIDx3dGYvU3RyaW5nUHJpbnRTdHJlYW0u
aD4KIAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBMTEludCB7CkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGxJbmxpbmVzLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsSW5saW5lcy5oCShyZXZpc2lvbiAxNDE2MTMp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGxJbmxpbmVzLmgJKHdvcmtp
bmcgY29weSkKQEAgLTIzLDggKzIzLDE1IEBACiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKICAqLwogCisjaWZu
ZGVmIEpTQ2VsbElubGluZXNfaAorI2RlZmluZSBKU0NlbGxJbmxpbmVzX2gKKwogI2luY2x1ZGUg
IkNhbGxGcmFtZS5oIgorI2luY2x1ZGUgIkhhbmRsZS5oIgogI2luY2x1ZGUgIkpTQ2VsbC5oIgor
I2luY2x1ZGUgIkpTT2JqZWN0LmgiCisjaW5jbHVkZSAiSlNTdHJpbmcuaCIKKyNpbmNsdWRlICJT
dHJ1Y3R1cmUuaCIKIAogbmFtZXNwYWNlIEpTQyB7CiAKQEAgLTE4NywzICsxOTQsNCBAQCBpbmxp
bmUgYm9vbCBKU0NlbGw6OnRvQm9vbGVhbihFeGVjU3RhdGUqCiAKIH0gLy8gbmFtZXNwYWNlIEpT
QwogCisjZW5kaWYgLy8gSlNDZWxsSW5saW5lc19oCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0dsb2JhbERhdGEuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsRGF0YS5jcHAJKHJldmlzaW9uIDE0MTYxMykKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsRGF0YS5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTIwOCw2ICsyMDgsNyBAQCBKU0dsb2JhbERhdGE6OkpTR2xvYmFsRGF0YShHbG9iYWxE
YXRhVHlwCiAgICAgSlNMb2NrSG9sZGVyIGxvY2sodGhpcyk7CiAgICAgSWRlbnRpZmllclRhYmxl
KiBleGlzdGluZ0VudHJ5SWRlbnRpZmllclRhYmxlID0gd3RmVGhyZWFkRGF0YSgpLnNldEN1cnJl
bnRJZGVudGlmaWVyVGFibGUoaWRlbnRpZmllclRhYmxlKTsKICAgICBzdHJ1Y3R1cmVTdHJ1Y3R1
cmUuc2V0KCp0aGlzLCBTdHJ1Y3R1cmU6OmNyZWF0ZVN0cnVjdHVyZSgqdGhpcykpOworICAgIHN0
cnVjdHVyZVJhcmVEYXRhU3RydWN0dXJlLnNldCgqdGhpcywgU3RydWN0dXJlUmFyZURhdGE6OmNy
ZWF0ZVN0cnVjdHVyZSgqdGhpcywgMCwganNOdWxsKCkpKTsKICAgICBkZWJ1Z2dlckFjdGl2YXRp
b25TdHJ1Y3R1cmUuc2V0KCp0aGlzLCBEZWJ1Z2dlckFjdGl2YXRpb246OmNyZWF0ZVN0cnVjdHVy
ZSgqdGhpcywgMCwganNOdWxsKCkpKTsKICAgICBpbnRlcnJ1cHRlZEV4ZWN1dGlvbkVycm9yU3Ry
dWN0dXJlLnNldCgqdGhpcywgSW50ZXJydXB0ZWRFeGVjdXRpb25FcnJvcjo6Y3JlYXRlU3RydWN0
dXJlKCp0aGlzLCAwLCBqc051bGwoKSkpOwogICAgIHRlcm1pbmF0ZWRFeGVjdXRpb25FcnJvclN0
cnVjdHVyZS5zZXQoKnRoaXMsIFRlcm1pbmF0ZWRFeGVjdXRpb25FcnJvcjo6Y3JlYXRlU3RydWN0
dXJlKCp0aGlzLCAwLCBqc051bGwoKSkpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNHbG9iYWxEYXRhLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNHbG9iYWxEYXRhLmgJKHJldmlzaW9uIDE0MTYxMykKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsRGF0YS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMjYs
NiArMjI2LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIGNvbnN0IEhhc2hUYWJsZSogc3Ry
aW5nQ29uc3RydWN0b3JUYWJsZTsKICAgICAgICAgCiAgICAgICAgIFN0cm9uZzxTdHJ1Y3R1cmU+
IHN0cnVjdHVyZVN0cnVjdHVyZTsKKyAgICAgICAgU3Ryb25nPFN0cnVjdHVyZT4gc3RydWN0dXJl
UmFyZURhdGFTdHJ1Y3R1cmU7CiAgICAgICAgIFN0cm9uZzxTdHJ1Y3R1cmU+IGRlYnVnZ2VyQWN0
aXZhdGlvblN0cnVjdHVyZTsKICAgICAgICAgU3Ryb25nPFN0cnVjdHVyZT4gaW50ZXJydXB0ZWRF
eGVjdXRpb25FcnJvclN0cnVjdHVyZTsKICAgICAgICAgU3Ryb25nPFN0cnVjdHVyZT4gdGVybWlu
YXRlZEV4ZWN1dGlvbkVycm9yU3RydWN0dXJlOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5oCShyZXZpc2lvbiAxNDE2MTMpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5oCSh3b3JraW5nIGNvcHkp
CkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiU3BlY2lhbFBvaW50ZXIuaCIKICNpbmNsdWRl
ICJTdHJpbmdQcm90b3R5cGUuaCIKICNpbmNsdWRlICJTdHJ1Y3R1cmVDaGFpbi5oIgorI2luY2x1
ZGUgIlN0cnVjdHVyZVJhcmVEYXRhSW5saW5lcy5oIgogI2luY2x1ZGUgIldhdGNocG9pbnQuaCIK
ICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVHlwZUluZm8uaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1R5cGVJbmZvLmgJKHJldmlzaW9uIDE0
MTYxMykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVHlwZUluZm8uaAkod29y
a2luZyBjb3B5KQpAQCAtNDcsNiArNDcsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICBzdGF0aWMg
Y29uc3QgdW5zaWduZWQgT3ZlcnJpZGVzR2V0UHJvcGVydHlOYW1lcyA9IDEgPDwgODsKICAgICBz
dGF0aWMgY29uc3QgdW5zaWduZWQgUHJvaGliaXRzUHJvcGVydHlDYWNoaW5nID0gMSA8PCA5Owog
ICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBIYXNJbXB1cmVHZXRPd25Qcm9wZXJ0eVNsb3QgPSAx
IDw8IDEwOworICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVIYXNSYXJlRGF0YSA9
IDEgPDwgMTE7CiAKICAgICBjbGFzcyBUeXBlSW5mbyB7CiAgICAgcHVibGljOgpAQCAtNzAsNiAr
NzEsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgYm9vbCBpc051bWJlck9iamVjdCgpIGNv
bnN0IHsgcmV0dXJuIHR5cGUoKSA9PSBOdW1iZXJPYmplY3RUeXBlOyB9CiAgICAgICAgIGJvb2wg
aXNOYW1lKCkgY29uc3QgeyByZXR1cm4gdHlwZSgpID09IE5hbWVJbnN0YW5jZVR5cGU7IH0KIAor
ICAgICAgICB1bnNpZ25lZCBmbGFncygpIGNvbnN0IHsgcmV0dXJuIChzdGF0aWNfY2FzdDx1bnNp
Z25lZD4obV9mbGFnczIpIDw8IDgpIHwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KG1fZmxhZ3MpOyB9
CiAgICAgICAgIGJvb2wgbWFzcXVlcmFkZXNBc1VuZGVmaW5lZCgpIGNvbnN0IHsgcmV0dXJuIGlz
U2V0T25GbGFnczEoTWFzcXVlcmFkZXNBc1VuZGVmaW5lZCk7IH0KICAgICAgICAgYm9vbCBpbXBs
ZW1lbnRzSGFzSW5zdGFuY2UoKSBjb25zdCB7IHJldHVybiBpc1NldE9uRmxhZ3MxKEltcGxlbWVu
dHNIYXNJbnN0YW5jZSk7IH0KICAgICAgICAgYm9vbCBpc0Vudmlyb25tZW50UmVjb3JkKCkgY29u
c3QgeyByZXR1cm4gaXNTZXRPbkZsYWdzMShJc0Vudmlyb25tZW50UmVjb3JkKTsgfQpAQCAtODEs
NiArODMsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgYm9vbCBvdmVycmlkZXNHZXRQcm9w
ZXJ0eU5hbWVzKCkgY29uc3QgeyByZXR1cm4gaXNTZXRPbkZsYWdzMihPdmVycmlkZXNHZXRQcm9w
ZXJ0eU5hbWVzKTsgfQogICAgICAgICBib29sIHByb2hpYml0c1Byb3BlcnR5Q2FjaGluZygpIGNv
bnN0IHsgcmV0dXJuIGlzU2V0T25GbGFnczIoUHJvaGliaXRzUHJvcGVydHlDYWNoaW5nKTsgfQog
ICAgICAgICBib29sIGhhc0ltcHVyZUdldE93blByb3BlcnR5U2xvdCgpIGNvbnN0IHsgcmV0dXJu
IGlzU2V0T25GbGFnczIoSGFzSW1wdXJlR2V0T3duUHJvcGVydHlTbG90KTsgfQorICAgICAgICBi
b29sIHN0cnVjdHVyZUhhc1JhcmVEYXRhKCkgY29uc3QgeyByZXR1cm4gaXNTZXRPbkZsYWdzMihT
dHJ1Y3R1cmVIYXNSYXJlRGF0YSk7IH0KIAogICAgICAgICBzdGF0aWMgcHRyZGlmZl90IGZsYWdz
T2Zmc2V0KCkKICAgICAgICAgewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
T2JqZWN0UHJvdG90eXBlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9PYmplY3RQcm90b3R5cGUuY3BwCShyZXZpc2lvbiAxNDE2MTMpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RQcm90b3R5cGUuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0yNiw2ICsyNiw3IEBACiAjaW5jbHVkZSAiSlNTdHJpbmcuaCIKICNpbmNsdWRlICJKU1N0
cmluZ0J1aWxkZXIuaCIKICNpbmNsdWRlICJPcGVyYXRpb25zLmgiCisjaW5jbHVkZSAiU3RydWN0
dXJlUmFyZURhdGFJbmxpbmVzLmgiCiAKIG5hbWVzcGFjZSBKU0MgewogCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5jcHAJKHJldmlzaW9uIDE0MTYxMykK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJMb29rdXAuaCIKICNpbmNsdWRlICJQ
cm9wZXJ0eU5hbWVBcnJheS5oIgogI2luY2x1ZGUgIlN0cnVjdHVyZUNoYWluLmgiCisjaW5jbHVk
ZSAiU3RydWN0dXJlUmFyZURhdGFJbmxpbmVzLmgiCiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWRM
ZWFrQ291bnRlci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvVGhy
ZWFkaW5nLmg+CkBAIC0xMjAsNyArMTIxLDcgQEAgdm9pZCBTdHJ1Y3R1cmU6OmR1bXBTdGF0aXN0
aWNzKCkKICAgICAgICAgc3dpdGNoIChzdHJ1Y3R1cmUtPm1fdHJhbnNpdGlvblRhYmxlLnNpemUo
KSkgewogICAgICAgICAgICAgY2FzZSAwOgogICAgICAgICAgICAgICAgICsrbnVtYmVyTGVhZjsK
LSAgICAgICAgICAgICAgIGlmICghc3RydWN0dXJlLT5tX3ByZXZpb3VzKQorICAgICAgICAgICAg
ICAgIGlmICghc3RydWN0dXJlLT5wcmV2aW91c0lEKCkpCiAgICAgICAgICAgICAgICAgICAgICsr
bnVtYmVyU2luZ2xldG9uczsKICAgICAgICAgICAgICAgICBicmVhazsKIApAQCAtMTU1LDYgKzE1
Niw3IEBAIFN0cnVjdHVyZTo6U3RydWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmEKICAgICAsIG1f
aW5kZXhpbmdUeXBlKGluZGV4aW5nVHlwZSkKICAgICAsIG1fZ2xvYmFsT2JqZWN0KGdsb2JhbERh
dGEsIHRoaXMsIGdsb2JhbE9iamVjdCwgV3JpdGVCYXJyaWVyPEpTR2xvYmFsT2JqZWN0Pjo6TWF5
QmVOdWxsKQogICAgICwgbV9wcm90b3R5cGUoZ2xvYmFsRGF0YSwgdGhpcywgcHJvdG90eXBlKQor
ICAgICwgbV9wcmV2aW91cygpCiAgICAgLCBtX2NsYXNzSW5mbyhjbGFzc0luZm8pCiAgICAgLCBt
X3RyYW5zaXRpb25XYXRjaHBvaW50U2V0KEluaXRpYWxpemVkV2F0Y2hpbmcpCiAgICAgLCBtX2lu
bGluZUNhcGFjaXR5KGlubGluZUNhcGFjaXR5KQpAQCAtMTcyLDYgKzE3NCw3IEBAIFN0cnVjdHVy
ZTo6U3RydWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmEKIHsKICAgICBBU1NFUlQoaW5saW5lQ2Fw
YWNpdHkgPD0gSlNGaW5hbE9iamVjdDo6bWF4SW5saW5lQ2FwYWNpdHkoKSk7CiAgICAgQVNTRVJU
KHN0YXRpY19jYXN0PFByb3BlcnR5T2Zmc2V0PihpbmxpbmVDYXBhY2l0eSkgPCBmaXJzdE91dE9m
TGluZU9mZnNldCk7CisgICAgQVNTRVJUKCF0eXBlSW5mby5zdHJ1Y3R1cmVIYXNSYXJlRGF0YSgp
KTsKIH0KIAogY29uc3QgQ2xhc3NJbmZvIFN0cnVjdHVyZTo6c19pbmZvID0geyAiU3RydWN0dXJl
IiwgMCwgMCwgMCwgQ1JFQVRFX01FVEhPRF9UQUJMRShTdHJ1Y3R1cmUpIH07CkBAIC0xODEsNiAr
MTg0LDcgQEAgU3RydWN0dXJlOjpTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYQogICAgICwg
bV90eXBlSW5mbyhDb21wb3VuZFR5cGUsIE92ZXJyaWRlc1Zpc2l0Q2hpbGRyZW4pCiAgICAgLCBt
X2luZGV4aW5nVHlwZSgwKQogICAgICwgbV9wcm90b3R5cGUoZ2xvYmFsRGF0YSwgdGhpcywganNO
dWxsKCkpCisgICAgLCBtX3ByZXZpb3VzKCkKICAgICAsIG1fY2xhc3NJbmZvKCZzX2luZm8pCiAg
ICAgLCBtX3RyYW5zaXRpb25XYXRjaHBvaW50U2V0KEluaXRpYWxpemVkV2F0Y2hpbmcpCiAgICAg
LCBtX2lubGluZUNhcGFjaXR5KDApCkBAIC0yMDMsNiArMjA3LDcgQEAgU3RydWN0dXJlOjpTdHJ1
Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYQogICAgICwgbV90eXBlSW5mbyhwcmV2aW91cy0+dHlw
ZUluZm8oKSkKICAgICAsIG1faW5kZXhpbmdUeXBlKHByZXZpb3VzLT5pbmRleGluZ1R5cGVJbmNs
dWRpbmdIaXN0b3J5KCkpCiAgICAgLCBtX3Byb3RvdHlwZShnbG9iYWxEYXRhLCB0aGlzLCBwcmV2
aW91cy0+c3RvcmVkUHJvdG90eXBlKCkpCisgICAgLCBtX3ByZXZpb3VzKCkKICAgICAsIG1fY2xh
c3NJbmZvKHByZXZpb3VzLT5tX2NsYXNzSW5mbykKICAgICAsIG1fdHJhbnNpdGlvbldhdGNocG9p
bnRTZXQoSW5pdGlhbGl6ZWRXYXRjaGluZykKICAgICAsIG1faW5saW5lQ2FwYWNpdHkocHJldmlv
dXMtPm1faW5saW5lQ2FwYWNpdHkpCkBAIC0yNDIsNyArMjQ3LDcgQEAgdm9pZCBTdHJ1Y3R1cmU6
Om1hdGVyaWFsaXplUHJvcGVydHlNYXAoSgogICAgIHdoaWxlICgoc3RydWN0dXJlID0gc3RydWN0
dXJlLT5wcmV2aW91c0lEKCkpKSB7CiAgICAgICAgIGlmIChzdHJ1Y3R1cmUtPm1faXNQaW5uZWRQ
cm9wZXJ0eVRhYmxlKSB7CiAgICAgICAgICAgICBBU1NFUlQoc3RydWN0dXJlLT5tX3Byb3BlcnR5
VGFibGUpOwotICAgICAgICAgICAgQVNTRVJUKCFzdHJ1Y3R1cmUtPm1fcHJldmlvdXMpOworICAg
ICAgICAgICAgQVNTRVJUKCFzdHJ1Y3R1cmUtPnByZXZpb3VzSUQoKSk7CiAKICAgICAgICAgICAg
IG1fcHJvcGVydHlUYWJsZSA9IHN0cnVjdHVyZS0+bV9wcm9wZXJ0eVRhYmxlLT5jb3B5KGdsb2Jh
bERhdGEsIDAsIG51bWJlck9mU2xvdHNGb3JMYXN0T2Zmc2V0KG1fb2Zmc2V0LCBtX2lubGluZUNh
cGFjaXR5KSk7CiAgICAgICAgICAgICBicmVhazsKQEAgLTM2Myw3ICszNjgsNyBAQCBTdHJ1Y3R1
cmUqIFN0cnVjdHVyZTo6YWRkUHJvcGVydHlUcmFuc2l0CiAgICAgU3RydWN0dXJlKiB0cmFuc2l0
aW9uID0gY3JlYXRlKGdsb2JhbERhdGEsIHN0cnVjdHVyZSk7CiAKICAgICB0cmFuc2l0aW9uLT5t
X2NhY2hlZFByb3RvdHlwZUNoYWluLnNldE1heUJlTnVsbChnbG9iYWxEYXRhLCB0cmFuc2l0aW9u
LCBzdHJ1Y3R1cmUtPm1fY2FjaGVkUHJvdG90eXBlQ2hhaW4uZ2V0KCkpOwotICAgIHRyYW5zaXRp
b24tPm1fcHJldmlvdXMuc2V0KGdsb2JhbERhdGEsIHRyYW5zaXRpb24sIHN0cnVjdHVyZSk7Cisg
ICAgdHJhbnNpdGlvbi0+c2V0UHJldmlvdXNJRChnbG9iYWxEYXRhLCB0cmFuc2l0aW9uLCBzdHJ1
Y3R1cmUpOwogICAgIHRyYW5zaXRpb24tPm1fbmFtZUluUHJldmlvdXMgPSBwcm9wZXJ0eU5hbWUu
dWlkKCk7CiAgICAgdHJhbnNpdGlvbi0+bV9hdHRyaWJ1dGVzSW5QcmV2aW91cyA9IGF0dHJpYnV0
ZXM7CiAgICAgdHJhbnNpdGlvbi0+bV9zcGVjaWZpY1ZhbHVlSW5QcmV2aW91cy5zZXRNYXlCZU51
bGwoZ2xvYmFsRGF0YSwgdHJhbnNpdGlvbiwgc3BlY2lmaWNWYWx1ZSk7CkBAIC0zNzQsNyArMzc5
LDcgQEAgU3RydWN0dXJlKiBTdHJ1Y3R1cmU6OmFkZFByb3BlcnR5VHJhbnNpdAogICAgICAgICBl
bHNlCiAgICAgICAgICAgICB0cmFuc2l0aW9uLT5tX3Byb3BlcnR5VGFibGUgPSBzdHJ1Y3R1cmUt
Pm1fcHJvcGVydHlUYWJsZS5yZWxlYXNlKCk7CiAgICAgfSBlbHNlIHsKLSAgICAgICAgaWYgKHN0
cnVjdHVyZS0+bV9wcmV2aW91cykKKyAgICAgICAgaWYgKHN0cnVjdHVyZS0+cHJldmlvdXNJRCgp
KQogICAgICAgICAgICAgdHJhbnNpdGlvbi0+bWF0ZXJpYWxpemVQcm9wZXJ0eU1hcChnbG9iYWxE
YXRhKTsKICAgICAgICAgZWxzZQogICAgICAgICAgICAgdHJhbnNpdGlvbi0+Y3JlYXRlUHJvcGVy
dHlNYXAoKTsKQEAgLTU1MSw3ICs1NTYsNyBAQCBTdHJ1Y3R1cmUqIFN0cnVjdHVyZTo6bm9uUHJv
cGVydHlUcmFuc2l0CiAgICAgfQogICAgIAogICAgIFN0cnVjdHVyZSogdHJhbnNpdGlvbiA9IGNy
ZWF0ZShnbG9iYWxEYXRhLCBzdHJ1Y3R1cmUpOwotICAgIHRyYW5zaXRpb24tPm1fcHJldmlvdXMu
c2V0KGdsb2JhbERhdGEsIHRyYW5zaXRpb24sIHN0cnVjdHVyZSk7CisgICAgdHJhbnNpdGlvbi0+
c2V0UHJldmlvdXNJRChnbG9iYWxEYXRhLCB0cmFuc2l0aW9uLCBzdHJ1Y3R1cmUpOwogICAgIHRy
YW5zaXRpb24tPm1fYXR0cmlidXRlc0luUHJldmlvdXMgPSBhdHRyaWJ1dGVzOwogICAgIHRyYW5z
aXRpb24tPm1faW5kZXhpbmdUeXBlID0gaW5kZXhpbmdUeXBlOwogICAgIHRyYW5zaXRpb24tPm1f
b2Zmc2V0ID0gc3RydWN0dXJlLT5tX29mZnNldDsKQEAgLTU2Myw3ICs1NjgsNyBAQCBTdHJ1Y3R1
cmUqIFN0cnVjdHVyZTo6bm9uUHJvcGVydHlUcmFuc2l0CiAgICAgICAgIGVsc2UKICAgICAgICAg
ICAgIHRyYW5zaXRpb24tPm1fcHJvcGVydHlUYWJsZSA9IHN0cnVjdHVyZS0+bV9wcm9wZXJ0eVRh
YmxlLnJlbGVhc2UoKTsKICAgICB9IGVsc2UgewotICAgICAgICBpZiAoc3RydWN0dXJlLT5tX3By
ZXZpb3VzKQorICAgICAgICBpZiAoc3RydWN0dXJlLT5wcmV2aW91c0lEKCkpCiAgICAgICAgICAg
ICB0cmFuc2l0aW9uLT5tYXRlcmlhbGl6ZVByb3BlcnR5TWFwKGdsb2JhbERhdGEpOwogICAgICAg
ICBlbHNlCiAgICAgICAgICAgICB0cmFuc2l0aW9uLT5jcmVhdGVQcm9wZXJ0eU1hcCgpOwpAQCAt
NjcwLDEwICs2NzUsMjUgQEAgdm9pZCBTdHJ1Y3R1cmU6OnBpbigpCiB7CiAgICAgQVNTRVJUKG1f
cHJvcGVydHlUYWJsZSk7CiAgICAgbV9pc1Bpbm5lZFByb3BlcnR5VGFibGUgPSB0cnVlOwotICAg
IG1fcHJldmlvdXMuY2xlYXIoKTsKKyAgICBjbGVhclByZXZpb3VzSUQoKTsKICAgICBtX25hbWVJ
blByZXZpb3VzLmNsZWFyKCk7CiB9CiAKK3ZvaWQgU3RydWN0dXJlOjphbGxvY2F0ZVJhcmVEYXRh
KEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSkKK3sKKyAgICBBU1NFUlQoIXR5cGVJbmZvKCkuc3Ry
dWN0dXJlSGFzUmFyZURhdGEoKSk7CisgICAgU3RydWN0dXJlUmFyZURhdGEqIHJhcmVEYXRhID0g
U3RydWN0dXJlUmFyZURhdGE6OmNyZWF0ZShnbG9iYWxEYXRhLCBtX3ByZXZpb3VzLmdldCgpKTsK
KyAgICBtX3R5cGVJbmZvID0gVHlwZUluZm8odHlwZUluZm8oKS50eXBlKCksIHR5cGVJbmZvKCku
ZmxhZ3MoKSB8IFN0cnVjdHVyZUhhc1JhcmVEYXRhKTsKKyAgICBtX3JhcmVEYXRhLnNldChnbG9i
YWxEYXRhLCB0aGlzLCByYXJlRGF0YSk7Cit9CisKK3ZvaWQgU3RydWN0dXJlOjpjbG9uZVJhcmVE
YXRhRnJvbShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIGNvbnN0IFN0cnVjdHVyZSogb3RoZXIp
Cit7CisgICAgQVNTRVJUKG90aGVyLT50eXBlSW5mbygpLnN0cnVjdHVyZUhhc1JhcmVEYXRhKCkp
OworICAgIFN0cnVjdHVyZVJhcmVEYXRhKiBuZXdSYXJlRGF0YSA9IFN0cnVjdHVyZVJhcmVEYXRh
OjpjbG9uZShnbG9iYWxEYXRhLCBvdGhlci0+bV9yYXJlRGF0YS5nZXQoKSk7CisgICAgbV9yYXJl
RGF0YS5zZXQoZ2xvYmFsRGF0YSwgdGhpcywgbmV3UmFyZURhdGEpOworfQorCiAjaWYgRFVNUF9Q
Uk9QRVJUWU1BUF9TVEFUUwogCiBzdHJ1Y3QgUHJvcGVydHlNYXBTdGF0aXN0aWNzRXhpdExvZ2dl
ciB7CkBAIC04NDAsNyArODYwLDEwIEBAIHZvaWQgU3RydWN0dXJlOjp2aXNpdENoaWxkcmVuKEpT
Q2VsbCogY2UKICAgICAgICAgdmlzaXRvci5hcHBlbmQoJnRoaXNPYmplY3QtPm1fcHJvdG90eXBl
KTsKICAgICAgICAgdmlzaXRvci5hcHBlbmQoJnRoaXNPYmplY3QtPm1fY2FjaGVkUHJvdG90eXBl
Q2hhaW4pOwogICAgIH0KLSAgICB2aXNpdG9yLmFwcGVuZCgmdGhpc09iamVjdC0+bV9wcmV2aW91
cyk7CisgICAgaWYgKHRoaXNPYmplY3QtPnR5cGVJbmZvKCkuc3RydWN0dXJlSGFzUmFyZURhdGEo
KSkKKyAgICAgICAgdmlzaXRvci5hcHBlbmQoJnRoaXNPYmplY3QtPm1fcmFyZURhdGEpOworICAg
IGVsc2UKKyAgICAgICAgdmlzaXRvci5hcHBlbmQoJnRoaXNPYmplY3QtPm1fcHJldmlvdXMpOwog
ICAgIHZpc2l0b3IuYXBwZW5kKCZ0aGlzT2JqZWN0LT5tX3NwZWNpZmljVmFsdWVJblByZXZpb3Vz
KTsKICAgICB2aXNpdG9yLmFwcGVuZCgmdGhpc09iamVjdC0+bV9lbnVtZXJhdGlvbkNhY2hlKTsK
ICAgICBpZiAodGhpc09iamVjdC0+bV9wcm9wZXJ0eVRhYmxlKSB7CkBAIC04NDgsNyArODcxLDYg
QEAgdm9pZCBTdHJ1Y3R1cmU6OnZpc2l0Q2hpbGRyZW4oSlNDZWxsKiBjZQogICAgICAgICBmb3Ig
KFByb3BlcnR5VGFibGU6Oml0ZXJhdG9yIHB0ciA9IHRoaXNPYmplY3QtPm1fcHJvcGVydHlUYWJs
ZS0+YmVnaW4oKTsgcHRyICE9IGVuZDsgKytwdHIpCiAgICAgICAgICAgICB2aXNpdG9yLmFwcGVu
ZCgmcHRyLT5zcGVjaWZpY1ZhbHVlKTsKICAgICB9Ci0gICAgdmlzaXRvci5hcHBlbmQoJnRoaXNP
YmplY3QtPm1fb2JqZWN0VG9TdHJpbmdWYWx1ZSk7CiB9CiAKIGJvb2wgU3RydWN0dXJlOjpwcm90
b3R5cGVDaGFpbk1heUludGVyY2VwdFN0b3JlVG8oSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBQ
cm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvU3RydWN0dXJlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvU3RydWN0dXJlLmgJKHJldmlzaW9uIDE0MTYxMykKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNSw2ICszNSw3IEBA
CiAjaW5jbHVkZSAiUHJvcGVydHlOYW1lLmgiCiAjaW5jbHVkZSAiUHJvcGVydHlOYW1lQXJyYXku
aCIKICNpbmNsdWRlICJQcm90ZWN0LmgiCisjaW5jbHVkZSAiU3RydWN0dXJlUmFyZURhdGEuaCIK
ICNpbmNsdWRlICJTdHJ1Y3R1cmVUcmFuc2l0aW9uVGFibGUuaCIKICNpbmNsdWRlICJKU1R5cGVJ
bmZvLmgiCiAjaW5jbHVkZSAiV2F0Y2hwb2ludC5oIgpAQCAtMTc4LDYgKzE3OSw4IEBAIG5hbWVz
cGFjZSBKU0MgewogICAgICAgICBTdHJ1Y3R1cmUqIHByZXZpb3VzSUQoKSBjb25zdAogICAgICAg
ICB7CiAgICAgICAgICAgICBBU1NFUlQoc3RydWN0dXJlKCktPmNsYXNzSW5mbygpID09ICZzX2lu
Zm8pOworICAgICAgICAgICAgaWYgKHR5cGVJbmZvKCkuc3RydWN0dXJlSGFzUmFyZURhdGEoKSkK
KyAgICAgICAgICAgICAgICByZXR1cm4gbV9yYXJlRGF0YS0+cHJldmlvdXNJRCgpOwogICAgICAg
ICAgICAgcmV0dXJuIG1fcHJldmlvdXMuZ2V0KCk7CiAgICAgICAgIH0KICAgICAgICAgYm9vbCB0
cmFuc2l0aXZlbHlUcmFuc2l0aW9uZWRGcm9tKFN0cnVjdHVyZSogc3RydWN0dXJlVG9GaW5kKTsK
QEAgLTI4OSwxMSArMjkyLDE4IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBKU1Byb3BlcnR5
TmFtZUl0ZXJhdG9yKiBlbnVtZXJhdGlvbkNhY2hlKCk7IC8vIERlZmluZWQgaW4gSlNQcm9wZXJ0
eU5hbWVJdGVyYXRvci5oLgogICAgICAgICB2b2lkIGdldFByb3BlcnR5TmFtZXNGcm9tU3RydWN0
dXJlKEpTR2xvYmFsRGF0YSYsIFByb3BlcnR5TmFtZUFycmF5JiwgRW51bWVyYXRpb25Nb2RlKTsK
IAotICAgICAgICBKU1N0cmluZyogb2JqZWN0VG9TdHJpbmdWYWx1ZSgpIHsgcmV0dXJuIG1fb2Jq
ZWN0VG9TdHJpbmdWYWx1ZS5nZXQoKTsgfQorICAgICAgICBKU1N0cmluZyogb2JqZWN0VG9TdHJp
bmdWYWx1ZSgpCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmICghdHlwZUluZm8oKS5zdHJ1Y3R1
cmVIYXNSYXJlRGF0YSgpKQorICAgICAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICAgICAg
cmV0dXJuIG1fcmFyZURhdGEtPm9iamVjdFRvU3RyaW5nVmFsdWUoKTsKKyAgICAgICAgfQogCiAg
ICAgICAgIHZvaWQgc2V0T2JqZWN0VG9TdHJpbmdWYWx1ZShKU0dsb2JhbERhdGEmIGdsb2JhbERh
dGEsIGNvbnN0IEpTQ2VsbCogb3duZXIsIEpTU3RyaW5nKiB2YWx1ZSkKICAgICAgICAgewotICAg
ICAgICAgICAgbV9vYmplY3RUb1N0cmluZ1ZhbHVlLnNldChnbG9iYWxEYXRhLCBvd25lciwgdmFs
dWUpOworICAgICAgICAgICAgaWYgKCF0eXBlSW5mbygpLnN0cnVjdHVyZUhhc1JhcmVEYXRhKCkp
CisgICAgICAgICAgICAgICAgYWxsb2NhdGVSYXJlRGF0YShnbG9iYWxEYXRhKTsKKyAgICAgICAg
ICAgIG1fcmFyZURhdGEtPnNldE9iamVjdFRvU3RyaW5nVmFsdWUoZ2xvYmFsRGF0YSwgb3duZXIs
IHZhbHVlKTsKICAgICAgICAgfQogCiAgICAgICAgIGJvb2wgc3RhdGljRnVuY3Rpb25zUmVpZmll
ZCgpCkBAIC0zOTQsNyArNDA0LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHZvaWQgbWF0
ZXJpYWxpemVQcm9wZXJ0eU1hcElmTmVjZXNzYXJ5KEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSkK
ICAgICAgICAgewogICAgICAgICAgICAgQVNTRVJUKHN0cnVjdHVyZSgpLT5jbGFzc0luZm8oKSA9
PSAmc19pbmZvKTsKLSAgICAgICAgICAgIGlmICghbV9wcm9wZXJ0eVRhYmxlICYmIG1fcHJldmlv
dXMpCisgICAgICAgICAgICBpZiAoIW1fcHJvcGVydHlUYWJsZSAmJiBwcmV2aW91c0lEKCkpCiAg
ICAgICAgICAgICAgICAgbWF0ZXJpYWxpemVQcm9wZXJ0eU1hcChnbG9iYWxEYXRhKTsKICAgICAg
ICAgfQogICAgICAgICB2b2lkIG1hdGVyaWFsaXplUHJvcGVydHlNYXBJZk5lY2Vzc2FyeUZvclBp
bm5pbmcoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhKQpAQCAtNDA0LDYgKzQxNCwyMiBAQCBuYW1l
c3BhY2UgSlNDIHsKICAgICAgICAgICAgICAgICBtYXRlcmlhbGl6ZVByb3BlcnR5TWFwKGdsb2Jh
bERhdGEpOwogICAgICAgICB9CiAKKyAgICAgICAgdm9pZCBzZXRQcmV2aW91c0lEKEpTR2xvYmFs
RGF0YSYgZ2xvYmFsRGF0YSwgU3RydWN0dXJlKiB0cmFuc2l0aW9uLCBTdHJ1Y3R1cmUqIHN0cnVj
dHVyZSkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKHR5cGVJbmZvKCkuc3RydWN0dXJlSGFz
UmFyZURhdGEoKSkKKyAgICAgICAgICAgICAgICBtX3JhcmVEYXRhLT5zZXRQcmV2aW91c0lEKGds
b2JhbERhdGEsIHRyYW5zaXRpb24sIHN0cnVjdHVyZSk7CisgICAgICAgICAgICBlbHNlCisgICAg
ICAgICAgICAgICAgbV9wcmV2aW91cy5zZXQoZ2xvYmFsRGF0YSwgdHJhbnNpdGlvbiwgc3RydWN0
dXJlKTsKKyAgICAgICAgfQorCisgICAgICAgIHZvaWQgY2xlYXJQcmV2aW91c0lEKCkKKyAgICAg
ICAgeworICAgICAgICAgICAgaWYgKHR5cGVJbmZvKCkuc3RydWN0dXJlSGFzUmFyZURhdGEoKSkK
KyAgICAgICAgICAgICAgICBtX3JhcmVEYXRhLT5jbGVhclByZXZpb3VzSUQoKTsKKyAgICAgICAg
ICAgIGVsc2UKKyAgICAgICAgICAgICAgICBtX3ByZXZpb3VzLmNsZWFyKCk7CisgICAgICAgIH0K
KwogICAgICAgICBpbnQgdHJhbnNpdGlvbkNvdW50KCkgY29uc3QKICAgICAgICAgewogICAgICAg
ICAgICAgLy8gU2luY2UgdGhlIG51bWJlciBvZiB0cmFuc2l0aW9ucyBpcyBhbHdheXMgdGhlIHNh
bWUgYXMgbV9vZmZzZXQsIHdlIGtlZXAgdGhlIHNpemUgb2YgU3RydWN0dXJlIGRvd24gYnkgbm90
IHN0b3JpbmcgYm90aC4KQEAgLTQxNSw2ICs0NDEsOSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAg
ICAgCiAgICAgICAgIHZvaWQgcGluKCk7CiAKKyAgICAgICAgdm9pZCBhbGxvY2F0ZVJhcmVEYXRh
KEpTR2xvYmFsRGF0YSYpOworICAgICAgICB2b2lkIGNsb25lUmFyZURhdGFGcm9tKEpTR2xvYmFs
RGF0YSYsIGNvbnN0IFN0cnVjdHVyZSopOworCiAgICAgICAgIHN0YXRpYyBjb25zdCBpbnQgc19t
YXhUcmFuc2l0aW9uTGVuZ3RoID0gNjQ7CiAKICAgICAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVk
IG1heFNwZWNpZmljRnVuY3Rpb25UaHJhc2hDb3VudCA9IDM7CkBAIC00MjYsNyArNDU1LDExIEBA
IG5hbWVzcGFjZSBKU0MgewogICAgICAgICBXcml0ZUJhcnJpZXI8VW5rbm93bj4gbV9wcm90b3R5
cGU7CiAgICAgICAgIG11dGFibGUgV3JpdGVCYXJyaWVyPFN0cnVjdHVyZUNoYWluPiBtX2NhY2hl
ZFByb3RvdHlwZUNoYWluOwogCi0gICAgICAgIFdyaXRlQmFycmllcjxTdHJ1Y3R1cmU+IG1fcHJl
dmlvdXM7CisgICAgICAgIHVuaW9uIHsKKyAgICAgICAgICAgIFdyaXRlQmFycmllcjxTdHJ1Y3R1
cmU+IG1fcHJldmlvdXM7CisgICAgICAgICAgICBXcml0ZUJhcnJpZXI8U3RydWN0dXJlUmFyZURh
dGE+IG1fcmFyZURhdGE7CisgICAgICAgIH07CisKICAgICAgICAgUmVmUHRyPFN0cmluZ0ltcGw+
IG1fbmFtZUluUHJldmlvdXM7CiAgICAgICAgIFdyaXRlQmFycmllcjxKU0NlbGw+IG1fc3BlY2lm
aWNWYWx1ZUluUHJldmlvdXM7CiAKQEAgLTQzOCw4ICs0NzEsNiBAQCBuYW1lc3BhY2UgSlNDIHsK
IAogICAgICAgICBPd25QdHI8UHJvcGVydHlUYWJsZT4gbV9wcm9wZXJ0eVRhYmxlOwogCi0gICAg
ICAgIFdyaXRlQmFycmllcjxKU1N0cmluZz4gbV9vYmplY3RUb1N0cmluZ1ZhbHVlOwotICAgICAg
ICAKICAgICAgICAgbXV0YWJsZSBJbmxpbmVXYXRjaHBvaW50U2V0IG1fdHJhbnNpdGlvbldhdGNo
cG9pbnRTZXQ7CiAKICAgICAgICAgdWludDhfdCBtX2lubGluZUNhcGFjaXR5OwpAQCAtNDgyLDYg
KzUxMyw4IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBBU1NFUlQoZ2xvYmFsRGF0YS5zdHJ1
Y3R1cmVTdHJ1Y3R1cmUpOwogICAgICAgICBTdHJ1Y3R1cmUqIG5ld1N0cnVjdHVyZSA9IG5ldyAo
Tm90TnVsbCwgYWxsb2NhdGVDZWxsPFN0cnVjdHVyZT4oZ2xvYmFsRGF0YS5oZWFwKSkgU3RydWN0
dXJlKGdsb2JhbERhdGEsIHN0cnVjdHVyZSk7CiAgICAgICAgIG5ld1N0cnVjdHVyZS0+ZmluaXNo
Q3JlYXRpb24oZ2xvYmFsRGF0YSk7CisgICAgICAgIGlmIChzdHJ1Y3R1cmUtPnR5cGVJbmZvKCku
c3RydWN0dXJlSGFzUmFyZURhdGEoKSkKKyAgICAgICAgICAgIG5ld1N0cnVjdHVyZS0+Y2xvbmVS
YXJlRGF0YUZyb20oZ2xvYmFsRGF0YSwgc3RydWN0dXJlKTsKICAgICAgICAgcmV0dXJuIG5ld1N0
cnVjdHVyZTsKICAgICB9CiAgICAgICAgIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvU3RydWN0dXJlUmFyZURhdGEuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZVJhcmVEYXRhLmNwcAkocmV2aXNpb24gMCkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZVJhcmVEYXRhLmNwcAkocmV2aXNp
b24gMCkKQEAgLTAsMCArMSw4NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KyNpbmNsdWRlICJTdHJ1Y3R1cmVSYXJlRGF0YS5oIgorCisjaW5jbHVkZSAiSlNDSlNWYWx1ZUlu
bGluZXMuaCIKKyNpbmNsdWRlICJKU0NlbGxJbmxpbmVzLmgiCisjaW5jbHVkZSAiSlNTdHJpbmcu
aCIKKyNpbmNsdWRlICJTdHJ1Y3R1cmUuaCIKKworbmFtZXNwYWNlIEpTQyB7CisKK2NvbnN0IENs
YXNzSW5mbyBTdHJ1Y3R1cmVSYXJlRGF0YTo6c19pbmZvID0geyAiU3RydWN0dXJlUmFyZURhdGEi
LCAwLCAwLCAwLCBDUkVBVEVfTUVUSE9EX1RBQkxFKFN0cnVjdHVyZVJhcmVEYXRhKSB9OworCitT
dHJ1Y3R1cmUqIFN0cnVjdHVyZVJhcmVEYXRhOjpjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRh
JiBnbG9iYWxEYXRhLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3Rv
dHlwZSkKK3sKKyAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFs
T2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKENvbXBvdW5kVHlwZSwgU3RydWN0dXJlRmxhZ3Mp
LCAmc19pbmZvKTsKK30KKworU3RydWN0dXJlUmFyZURhdGEqIFN0cnVjdHVyZVJhcmVEYXRhOjpj
cmVhdGUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBTdHJ1Y3R1cmUqIHByZXZpb3VzKQorewor
ICAgIFN0cnVjdHVyZVJhcmVEYXRhKiByYXJlRGF0YSA9IG5ldyAoTm90TnVsbCwgYWxsb2NhdGVD
ZWxsPFN0cnVjdHVyZVJhcmVEYXRhPihnbG9iYWxEYXRhLmhlYXApKSBTdHJ1Y3R1cmVSYXJlRGF0
YShnbG9iYWxEYXRhLCBwcmV2aW91cyk7CisgICAgcmFyZURhdGEtPmZpbmlzaENyZWF0aW9uKGds
b2JhbERhdGEpOworICAgIHJldHVybiByYXJlRGF0YTsKK30KKworU3RydWN0dXJlUmFyZURhdGEq
IFN0cnVjdHVyZVJhcmVEYXRhOjpjbG9uZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIGNvbnN0
IFN0cnVjdHVyZVJhcmVEYXRhKiBvdGhlcikKK3sKKyAgICBTdHJ1Y3R1cmVSYXJlRGF0YSogbmV3
UmFyZURhdGEgPSBuZXcgKE5vdE51bGwsIGFsbG9jYXRlQ2VsbDxTdHJ1Y3R1cmVSYXJlRGF0YT4o
Z2xvYmFsRGF0YS5oZWFwKSkgU3RydWN0dXJlUmFyZURhdGEoZ2xvYmFsRGF0YSwgb3RoZXIpOwor
ICAgIG5ld1JhcmVEYXRhLT5maW5pc2hDcmVhdGlvbihnbG9iYWxEYXRhKTsKKyAgICByZXR1cm4g
bmV3UmFyZURhdGE7Cit9CisKK1N0cnVjdHVyZVJhcmVEYXRhOjpTdHJ1Y3R1cmVSYXJlRGF0YShK
U0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIFN0cnVjdHVyZSogcHJldmlvdXMpCisgICAgOiBKU0Nl
bGwoZ2xvYmFsRGF0YSwgZ2xvYmFsRGF0YS5zdHJ1Y3R1cmVSYXJlRGF0YVN0cnVjdHVyZS5nZXQo
KSkKK3sKKyAgICBpZiAocHJldmlvdXMpCisgICAgICAgIG1fcHJldmlvdXMuc2V0KGdsb2JhbERh
dGEsIHRoaXMsIHByZXZpb3VzKTsKK30KKworU3RydWN0dXJlUmFyZURhdGE6OlN0cnVjdHVyZVJh
cmVEYXRhKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgY29uc3QgU3RydWN0dXJlUmFyZURhdGEq
IG90aGVyKQorICAgIDogSlNDZWxsKGdsb2JhbERhdGEsIG90aGVyLT5zdHJ1Y3R1cmUoKSkKK3sK
KyAgICBpZiAob3RoZXItPnByZXZpb3VzSUQoKSkKKyAgICAgICAgbV9wcmV2aW91cy5zZXQoZ2xv
YmFsRGF0YSwgdGhpcywgb3RoZXItPnByZXZpb3VzSUQoKSk7CisgICAgaWYgKG90aGVyLT5vYmpl
Y3RUb1N0cmluZ1ZhbHVlKCkpCisgICAgICAgIG1fb2JqZWN0VG9TdHJpbmdWYWx1ZS5zZXQoZ2xv
YmFsRGF0YSwgdGhpcywgb3RoZXItPm9iamVjdFRvU3RyaW5nVmFsdWUoKSk7Cit9CisKK3ZvaWQg
U3RydWN0dXJlUmFyZURhdGE6OnZpc2l0Q2hpbGRyZW4oSlNDZWxsKiBjZWxsLCBTbG90VmlzaXRv
ciYgdmlzaXRvcikKK3sKKyAgICBTdHJ1Y3R1cmVSYXJlRGF0YSogdGhpc09iamVjdCA9IGpzQ2Fz
dDxTdHJ1Y3R1cmVSYXJlRGF0YSo+KGNlbGwpOworICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJ
VFModGhpc09iamVjdCwgJnNfaW5mbyk7CisgICAgQVNTRVJUKHRoaXNPYmplY3QtPnN0cnVjdHVy
ZSgpLT50eXBlSW5mbygpLm92ZXJyaWRlc1Zpc2l0Q2hpbGRyZW4oKSk7CisKKyAgICBKU0NlbGw6
OnZpc2l0Q2hpbGRyZW4odGhpc09iamVjdCwgdmlzaXRvcik7CisgICAgdmlzaXRvci5hcHBlbmQo
JnRoaXNPYmplY3QtPm1fcHJldmlvdXMpOworICAgIHZpc2l0b3IuYXBwZW5kKCZ0aGlzT2JqZWN0
LT5tX29iamVjdFRvU3RyaW5nVmFsdWUpOworfQorCit9IC8vIG5hbWVzcGFjZSBKU0MKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZVJhcmVEYXRhLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlUmFyZURhdGEu
aAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVy
ZVJhcmVEYXRhLmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNjggQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aWZuZGVmIFN0cnVjdHVyZVJhcmVEYXRhX2gKKyNkZWZpbmUgU3RydWN0dXJlUmFyZURhdGFfaAor
CisjaW5jbHVkZSAiQ2xhc3NJbmZvLmgiCisjaW5jbHVkZSAiSlNDZWxsLmgiCisjaW5jbHVkZSAi
SlNUeXBlSW5mby5oIgorCituYW1lc3BhY2UgSlNDIHsKKworY2xhc3MgU3RydWN0dXJlOworCitj
bGFzcyBTdHJ1Y3R1cmVSYXJlRGF0YSA6IHB1YmxpYyBKU0NlbGwgeworICAgIGZyaWVuZCBjbGFz
cyBTdHJ1Y3R1cmU7CitwdWJsaWM6CisgICAgc3RhdGljIFN0cnVjdHVyZVJhcmVEYXRhKiBjcmVh
dGUoSlNHbG9iYWxEYXRhJiwgU3RydWN0dXJlKik7CisgICAgc3RhdGljIFN0cnVjdHVyZVJhcmVE
YXRhKiBjbG9uZShKU0dsb2JhbERhdGEmLCBjb25zdCBTdHJ1Y3R1cmVSYXJlRGF0YSogb3RoZXIp
OworCisgICAgc3RhdGljIHZvaWQgdmlzaXRDaGlsZHJlbihKU0NlbGwqLCBTbG90VmlzaXRvciYp
OworCisgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKEpTR2xvYmFsRGF0YSYs
IEpTR2xvYmFsT2JqZWN0KiwgSlNWYWx1ZSBwcm90b3R5cGUpOworCisgICAgU3RydWN0dXJlKiBw
cmV2aW91c0lEKCkgY29uc3Q7CisgICAgdm9pZCBzZXRQcmV2aW91c0lEKEpTR2xvYmFsRGF0YSYs
IFN0cnVjdHVyZSogdHJhbnNpdGlvbiwgU3RydWN0dXJlKik7CisgICAgdm9pZCBjbGVhclByZXZp
b3VzSUQoKTsKKworICAgIEpTU3RyaW5nKiBvYmplY3RUb1N0cmluZ1ZhbHVlKCkgY29uc3Q7Cisg
ICAgdm9pZCBzZXRPYmplY3RUb1N0cmluZ1ZhbHVlKEpTR2xvYmFsRGF0YSYsIGNvbnN0IEpTQ2Vs
bCogb3duZXIsIEpTU3RyaW5nKiB2YWx1ZSk7CisKKyAgICBzdGF0aWMgSlNfRVhQT1JUREFUQSBj
b25zdCBDbGFzc0luZm8gc19pbmZvOworCitwcml2YXRlOgorICAgIFN0cnVjdHVyZVJhcmVEYXRh
KEpTR2xvYmFsRGF0YSYsIFN0cnVjdHVyZSopOworICAgIFN0cnVjdHVyZVJhcmVEYXRhKEpTR2xv
YmFsRGF0YSYsIGNvbnN0IFN0cnVjdHVyZVJhcmVEYXRhKik7CisKKyAgICBzdGF0aWMgY29uc3Qg
dW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBPdmVycmlkZXNWaXNpdENoaWxkcmVuIHwgSlNDZWxs
OjpTdHJ1Y3R1cmVGbGFnczsKKworICAgIFdyaXRlQmFycmllcjxTdHJ1Y3R1cmU+IG1fcHJldmlv
dXM7CisgICAgV3JpdGVCYXJyaWVyPEpTU3RyaW5nPiBtX29iamVjdFRvU3RyaW5nVmFsdWU7Cit9
OworCit9IC8vIG5hbWVzcGFjZSBKU0MKKworI2VuZGlmIC8vIFN0cnVjdHVyZVJhcmVEYXRhX2gK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZVJhcmVEYXRhSW5s
aW5lcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVj
dHVyZVJhcmVEYXRhSW5saW5lcy5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvU3RydWN0dXJlUmFyZURhdGFJbmxpbmVzLmgJKHJldmlzaW9uIDApCkBAIC0w
LDAgKzEsNjAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFN0cnVjdHVyZVJhcmVEYXRhSW5saW5l
c19oCisjZGVmaW5lIFN0cnVjdHVyZVJhcmVEYXRhSW5saW5lc19oCisKKyNpbmNsdWRlICJTdHJ1
Y3R1cmVSYXJlRGF0YS5oIgorCituYW1lc3BhY2UgSlNDIHsKKworaW5saW5lIFN0cnVjdHVyZSog
U3RydWN0dXJlUmFyZURhdGE6OnByZXZpb3VzSUQoKSBjb25zdAoreworICAgIHJldHVybiBtX3By
ZXZpb3VzLmdldCgpOworfQorCitpbmxpbmUgdm9pZCBTdHJ1Y3R1cmVSYXJlRGF0YTo6c2V0UHJl
dmlvdXNJRChKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIFN0cnVjdHVyZSogdHJhbnNpdGlvbiwg
U3RydWN0dXJlKiBzdHJ1Y3R1cmUpCit7CisgICAgbV9wcmV2aW91cy5zZXQoZ2xvYmFsRGF0YSwg
dHJhbnNpdGlvbiwgc3RydWN0dXJlKTsKK30KKworaW5saW5lIHZvaWQgU3RydWN0dXJlUmFyZURh
dGE6OmNsZWFyUHJldmlvdXNJRCgpCit7CisgICAgbV9wcmV2aW91cy5jbGVhcigpOworfQorCitp
bmxpbmUgSlNTdHJpbmcqIFN0cnVjdHVyZVJhcmVEYXRhOjpvYmplY3RUb1N0cmluZ1ZhbHVlKCkg
Y29uc3QKK3sKKyAgICByZXR1cm4gbV9vYmplY3RUb1N0cmluZ1ZhbHVlLmdldCgpOworfQorCitp
bmxpbmUgdm9pZCBTdHJ1Y3R1cmVSYXJlRGF0YTo6c2V0T2JqZWN0VG9TdHJpbmdWYWx1ZShKU0ds
b2JhbERhdGEmIGdsb2JhbERhdGEsIGNvbnN0IEpTQ2VsbCogb3duZXIsIEpTU3RyaW5nKiB2YWx1
ZSkKK3sKKyAgICBtX29iamVjdFRvU3RyaW5nVmFsdWUuc2V0KGdsb2JhbERhdGEsIG93bmVyLCB2
YWx1ZSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIEpTQworCisjZW5kaWYgLy8gU3RydWN0dXJlUmFy
ZURhdGFJbmxpbmVzX2gK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>186136</attachid>
            <date>2013-02-01 14:21:20 -0800</date>
            <delta_ts>2013-02-01 15:03:08 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-108659-20130201141802.patch</filename>
            <type>text/plain</type>
            <size>43956</size>
            <attacher name="Mark Hahnenberg">mhahnenberg</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTQxNjQzKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0OSBA
QAorMjAxMy0wMi0wMSAgTWFyayBIYWhuZW5iZXJnICA8bWhhaG5lbmJlcmdAYXBwbGUuY29tPgor
CisgICAgICAgIFN0cnVjdHVyZSBzaG91bGQgaGF2ZSBhIFN0cnVjdHVyZVJhcmVEYXRhIGZpZWxk
IHRvIHNhdmUgc3BhY2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTEwODY1OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIE1hbnkgb2YgdGhlIGZpZWxkcyBpbiBTdHJ1Y3R1cmUgYXJlIHVzZWQgaW4gYSBzdWJz
ZXQgb2YgYWxsIHRvdGFsIFN0cnVjdHVyZXM7IGhvd2V2ZXIsIGFsbCBTdHJ1Y3R1cmVzIG11c3Qg
CisgICAgICAgIHBheSB0aGUgbWVtb3J5IGNvc3Qgb2YgdGhvc2UgZmllbGRzLCByZWdhcmRsZXNz
IG9mIHdoZXRoZXIgdGhleSB1c2UgdGhlbSBvciBub3QuIFNpbmNlIHdlIGNhbiBoYXZlIHBvdGVu
dGlhbGx5IAorICAgICAgICBtYW55IFN0cnVjdHVyZXMgb24gYSBzaW5nbGUgcGFnZSAoZS5nLiBi
aW5nLmNvbSBjcmVhdGVzIH4xNTAwIFN0cnVjdHVyZXMpLCBpdCB3b3VsZCBiZSBwcm9maXRhYmxl
IHRvIAorICAgICAgICByZWZhY3RvciBTdHJ1Y3R1cmUgc28gdGhhdCBub3QgZXZlcnkgU3RydWN0
dXJlIGhhcyB0byBwYXkgdGhlIG1lbW9yeSBjb3N0cyBmb3IgdGhlc2UgaW5mcmVxdWVudGx5IHVz
ZWQgZmllbGRzLgorCisgICAgICAgIFRvIGFjY29tcGxpc2ggdGhpcywgd2UgY2FuIGNyZWF0ZSBh
IG5ldyBTdHJ1Y3R1cmVSYXJlRGF0YSBjbGFzcyB0byBob3VzZSB0aGVzZSBzZWxkb20gdXNlZCBm
aWVsZHMgd2hpY2ggd2UgCisgICAgICAgIGNhbiBhbGxvY2F0ZSBvbiBkZW1hbmQgd2hlbmV2ZXIg
YSBTdHJ1Y3R1cmUgcmVxdWlyZXMgaXQuIFRoaXMgU3RydWN0dXJlUmFyZURhdGEgY2FuIGl0c2Vs
ZiBiZSBhIEpTQ2VsbCwgYW5kIAorICAgICAgICBjYW4gZG8gYWxsIHRoZSBtYXJraW5nIG9mIHRo
ZSBmaWVsZHMgZm9yIHRoZSBTdHJ1Y3R1cmUuIFRoZSBTdHJ1Y3R1cmVSYXJlRGF0YSBmaWVsZCB3
aWxsIGJlIHBhcnQgb2YgYSB1bmlvbiAKKyAgICAgICAgd2l0aCBtX3ByZXZpb3VzIHRvIG1pbmlt
aXplIG92ZXJoZWFkLiBXZSdsbCBhZGQgYSBuZXcgZmllbGQgdG8gSlNUeXBlSW5mbyB0byBpbmRp
Y2F0ZSB0aGF0IHRoZSBTdHJ1Y3R1cmUgaGFzIAorICAgICAgICBhIFN0cnVjdHVyZVJhcmVEYXRh
IGZpZWxkLiBEdXJpbmcgdHJhbnNpdGlvbnMsIGEgU3RydWN0dXJlIHdpbGwgY2xvbmUgaXRzIHBy
ZXZpb3VzIFN0cnVjdHVyZSdzIFN0cnVjdHVyZVJhcmVEYXRhIAorICAgICAgICBpZiBpdCBoYXMg
b25lLiBUaGVyZSBjb3VsZCBiZSBzb21lIHBvdGVudGlhbCBmb3Igb3B0aW1pemluZyB0aGlzIHBy
b2Nlc3MsIGJ1dCB0aGUgaW5pdGlhbCBpbXBsZW1lbnRhdGlvbiB3aWxsIAorICAgICAgICBiZSBk
dW1iIHNpbmNlIHdlJ2QgYmUgcGF5aW5nIHRoZXNlIG92ZXJoZWFkIGNvc3RzIGZvciBlYWNoIFN0
cnVjdHVyZSBhbnl3YXlzLgorCisgICAgICAgIEluaXRpYWxseSB3ZSdsbCBvbmx5IHB1dCB0d28g
ZmllbGRzIGluIHRoZSBTdHJ1Y3R1cmVSYXJlRGF0YSB0byBhdm9pZCBhIG1lbW9yeSByZWdyZXNz
aW9uLiBPdmVyIHRpbWUgd2UnbGwgCisgICAgICAgIGNvbnRpbnVlIHRvIG1vdmUgZmllbGRzIGZy
b20gU3RydWN0dXJlIHRvIFN0cnVjdHVyZVJhcmVEYXRhLiBPcHRpbWlzdGljYWxseSwgdGhpcyBj
b3VsZCBwb3RlbnRpYWxseSByZWR1Y2Ugb3VyIAorICAgICAgICBTdHJ1Y3R1cmUgbWVtb3J5IGZv
b3RwcmludCBieSB1cCB0byBhcm91bmQgNzUlLiBJdCBjb3VsZCBhbHNvIGNsZWFyIHRoZSB3YXkg
Zm9yIHJlbW92aW5nIGRlc3RydWN0b3JzIGZyb20gCisgICAgICAgIFN0cnVjdHVyZXMgKGFuZCBp
bnRvIFN0cnVjdHVyZVJhcmVEYXRhKS4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAg
ICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAgICogSmF2YVNjcmlwdENvcmUudmNw
cm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvajoKKyAgICAgICAgKiBKYXZh
U2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFRhcmdldC5w
cmk6CisgICAgICAgICogZGZnL0RGR1JlcGF0Y2guY3BwOiBJbmNsdWRlcyBmb3IgbGlua2luZyBw
dXJwb3Nlcy4KKyAgICAgICAgKiBqaXQvSklUU3R1YnMuY3BwOgorICAgICAgICAqIGpzYy5jcHA6
CisgICAgICAgICogbGxpbnQvTExJbnRTbG93UGF0aHMuY3BwOgorICAgICAgICAqIHJ1bnRpbWUv
SlNDZWxsSW5saW5lcy5oOiBBZGRlZCBpZmRlZiBndWFyZHMuCisgICAgICAgICogcnVudGltZS9K
U0dsb2JhbERhdGEuY3BwOiBOZXcgU3RydWN0dXJlIGZvciBTdHJ1Y3R1cmVSYXJlRGF0YSBjbGFz
cy4KKyAgICAgICAgKEpTQzo6SlNHbG9iYWxEYXRhOjpKU0dsb2JhbERhdGEpOgorICAgICAgICAq
IHJ1bnRpbWUvSlNHbG9iYWxEYXRhLmg6CisgICAgICAgIChKU0dsb2JhbERhdGEpOgorICAgICAg
ICAqIHJ1bnRpbWUvSlNHbG9iYWxPYmplY3QuaDoKKyAgICAgICAgKiBydW50aW1lL0pTVHlwZUlu
Zm8uaDogTmV3IGZsYWcgdG8gaW5kaWNhdGUgd2hldGhlciBvciBub3QgYSBTdHJ1Y3R1cmUgaGFz
IGEgU3RydWN0dXJlUmFyZURhdGEgZmllbGQuCisgICAgICAgIChKU0M6OlR5cGVJbmZvOjpmbGFn
cyk6CisgICAgICAgIChKU0M6OlR5cGVJbmZvOjpzdHJ1Y3R1cmVIYXNSYXJlRGF0YSk6CisgICAg
ICAgICogcnVudGltZS9PYmplY3RQcm90b3R5cGUuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvU3Ry
dWN0dXJlLmNwcDogV2UgdXNlIGEgY29tYmluZWQgV3JpdGVCYXJyaWVyPEpTQ2VsbD4gZmllbGQg
bV9wcmV2aW91c09yUmFyZURhdGEgdG8gYXZvaWQgY29tcGlsZXIgaXNzdWVzLgorICAgICAgICAo
SlNDOjpTdHJ1Y3R1cmU6OmR1bXBTdGF0aXN0aWNzKToKKyAgICAgICAgKEpTQzo6U3RydWN0dXJl
OjpTdHJ1Y3R1cmUpOiAKKyAgICAgICAgKEpTQzo6U3RydWN0dXJlOjptYXRlcmlhbGl6ZVByb3Bl
cnR5TWFwKToKKyAgICAgICAgKEpTQzo6U3RydWN0dXJlOjphZGRQcm9wZXJ0eVRyYW5zaXRpb24p
OgorICAgICAgICAoSlNDOjpTdHJ1Y3R1cmU6Om5vblByb3BlcnR5VHJhbnNpdGlvbik6CisgICAg
ICAgIChKU0M6OlN0cnVjdHVyZTo6cGluKToKKyAgICAgICAgKEpTQzo6U3RydWN0dXJlOjphbGxv
Y2F0ZVJhcmVEYXRhKTogSGFuZGxlcyBhbGxvY2F0aW5nIGEgYnJhbmQgbmV3IFN0cnVjdHVyZVJh
cmVEYXRhIGZpZWxkLgorICAgICAgICAoSlNDOjpTdHJ1Y3R1cmU6OmNsb25lUmFyZURhdGFGcm9t
KTogSGFuZGxlcyBjbG9uaW5nIGEgU3RydWN0dXJlUmFyZURhdGEgZmllbGQgZnJvbSBhbm90aGVy
LiBVc2VkIGR1cmluZyBTdHJ1Y3R1cmUgCisgICAgICAgIHRyYW5zaXRpb25zLgorICAgICAgICAo
SlNDOjpTdHJ1Y3R1cmU6OnZpc2l0Q2hpbGRyZW4pOiBXZSBubyBsb25nZXIgaGF2ZSB0byB3b3Jy
eSBhYm91dCBtYXJraW5nIG1fb2JqZWN0VG9TdHJpbmdWYWx1ZS4KKyAgICAgICAgKiBydW50aW1l
L1N0cnVjdHVyZS5oOgorICAgICAgICAoSlNDOjpTdHJ1Y3R1cmU6OnByZXZpb3VzSUQpOiBDaGVj
a3MgdGhlIHN0cnVjdHVyZUhhc1JhcmVEYXRhIGZsYWcgdG8gc2VlIHdoZXJlIGl0IHNob3VsZCBn
ZXQgdGhlIHByZXZpb3VzIFN0cnVjdHVyZS4KKyAgICAgICAgKEpTQzo6U3RydWN0dXJlOjpvYmpl
Y3RUb1N0cmluZ1ZhbHVlKTogUmVhZHMgdGhlIHZhbHVlIGZyb20gdGhlIFN0cnVjdHVyZVJhcmVE
YXRhLiBJZiBpdCBkb2Vzbid0IGV4aXN0LCByZXR1cm5zIDAuCisgICAgICAgIChKU0M6OlN0cnVj
dHVyZTo6c2V0T2JqZWN0VG9TdHJpbmdWYWx1ZSk6IEVuc3VyZXMgdGhhdCB3ZSBoYXZlIGEgU3Ry
dWN0dXJlUmFyZURhdGEgZmllbGQsIHRoZW4gZm9yd2FyZHMgdGhlIGZ1bmN0aW9uIAorICAgICAg
ICBjYWxsIHRvIGl0LgorICAgICAgICAoSlNDOjpTdHJ1Y3R1cmU6Om1hdGVyaWFsaXplUHJvcGVy
dHlNYXBJZk5lY2Vzc2FyeSk6CisgICAgICAgIChKU0M6OlN0cnVjdHVyZTo6c2V0UHJldmlvdXNJ
RCk6IENoZWNrcyBmb3IgU3RydWN0dXJlUmFyZURhdGEgYW5kIGZvcndhcmRzIGlmIG5lY2Vzc2Fy
eS4KKyAgICAgICAgKFN0cnVjdHVyZSk6CisgICAgICAgIChKU0M6OlN0cnVjdHVyZTo6Y2xlYXJQ
cmV2aW91c0lEKTogRGl0dG8uCisgICAgICAgIChKU0M6OlN0cnVjdHVyZTo6Y3JlYXRlKToKKyAg
ICAgICAgKiBydW50aW1lL1N0cnVjdHVyZVJhcmVEYXRhLmNwcDogQWRkZWQuIEFsbCBvZiB0aGUg
YmFzaWMgZnVuY3Rpb25hbGl0eSBvZiBhIEpTQ2VsbCB3aXRoIHRoZSBmaWVsZHMgdGhhdCB3ZSd2
ZSBtb3ZlZCAKKyAgICAgICAgZnJvbSBTdHJ1Y3R1cmUgYW5kIHRoZSBmdW5jdGlvbnMgcmVxdWly
ZWQgdG8gYWNjZXNzL21vZGlmeSB0aG9zZSBmaWVsZHMgYXMgU3RydWN0dXJlIHdvdWxkIGhhdmUg
ZG9uZS4KKyAgICAgICAgKEpTQyk6CisgICAgICAgIChKU0M6OlN0cnVjdHVyZVJhcmVEYXRhOjpj
cmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAoSlNDOjpTdHJ1Y3R1cmVSYXJlRGF0YTo6Y3JlYXRl
KToKKyAgICAgICAgKEpTQzo6U3RydWN0dXJlUmFyZURhdGE6OmNsb25lKToKKyAgICAgICAgKEpT
Qzo6U3RydWN0dXJlUmFyZURhdGE6OlN0cnVjdHVyZVJhcmVEYXRhKToKKyAgICAgICAgKEpTQzo6
U3RydWN0dXJlUmFyZURhdGE6OnZpc2l0Q2hpbGRyZW4pOgorICAgICAgICAqIHJ1bnRpbWUvU3Ry
dWN0dXJlUmFyZURhdGEuaDogQWRkZWQuCisgICAgICAgIChKU0MpOgorICAgICAgICAoU3RydWN0
dXJlUmFyZURhdGEpOgorICAgICAgICAqIHJ1bnRpbWUvU3RydWN0dXJlUmFyZURhdGFJbmxpbmVz
Lmg6IEFkZGVkLgorICAgICAgICAoSlNDKToKKyAgICAgICAgKEpTQzo6U3RydWN0dXJlUmFyZURh
dGE6OnByZXZpb3VzSUQpOgorICAgICAgICAoSlNDOjpTdHJ1Y3R1cmVSYXJlRGF0YTo6c2V0UHJl
dmlvdXNJRCk6CisgICAgICAgIChKU0M6OlN0cnVjdHVyZVJhcmVEYXRhOjpjbGVhclByZXZpb3Vz
SUQpOgorICAgICAgICAoSlNDOjpTdHJ1Y3R1cmU6OnByZXZpb3VzKTogSGFuZGxlcyB0aGUgdWds
eSBjYXN0aW5nIHRvIGdldCB0aGUgdmFsdWUgb2YgdGhlIHJpZ2h0IHR5cGUgb2YgbV9wcmV2aW91
c09yUmFyZURhdGEuCisgICAgICAgIChKU0M6OlN0cnVjdHVyZTo6cmFyZURhdGEpOiBEaXR0by4K
KyAgICAgICAgKEpTQzo6U3RydWN0dXJlUmFyZURhdGE6Om9iamVjdFRvU3RyaW5nVmFsdWUpOgor
ICAgICAgICAoSlNDOjpTdHJ1Y3R1cmVSYXJlRGF0YTo6c2V0T2JqZWN0VG9TdHJpbmdWYWx1ZSk6
CisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0
LmFtOgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnZjcHJvai9KYXZhU2NyaXB0Q29yZS9KYXZh
U2NyaXB0Q29yZS52Y3Byb2o6CisgICAgICAgICogSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBUYXJnZXQucHJpOgorICAgICAgICAqIGRmZy9ERkdS
ZXBhdGNoLmNwcDoKKyAgICAgICAgKiBqaXQvSklUU3R1YnMuY3BwOgorICAgICAgICAqIGpzYy5j
cHA6CisgICAgICAgICogbGxpbnQvTExJbnRTbG93UGF0aHMuY3BwOgorICAgICAgICAqIHJ1bnRp
bWUvSlNDZWxsSW5saW5lcy5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNHbG9iYWxEYXRhLmNwcDoK
KyAgICAgICAgKEpTQzo6SlNHbG9iYWxEYXRhOjpKU0dsb2JhbERhdGEpOgorICAgICAgICAqIHJ1
bnRpbWUvSlNHbG9iYWxEYXRhLmg6CisgICAgICAgIChKU0dsb2JhbERhdGEpOgorICAgICAgICAq
IHJ1bnRpbWUvSlNHbG9iYWxPYmplY3QuaDoKKyAgICAgICAgKiBydW50aW1lL0pTVHlwZUluZm8u
aDoKKyAgICAgICAgKEpTQyk6CisgICAgICAgIChKU0M6OlR5cGVJbmZvOjpmbGFncyk6CisgICAg
ICAgIChKU0M6OlR5cGVJbmZvOjpzdHJ1Y3R1cmVIYXNSYXJlRGF0YSk6CisgICAgICAgICogcnVu
dGltZS9PYmplY3RQcm90b3R5cGUuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvU3RydWN0dXJlLmNw
cDoKKyAgICAgICAgKEpTQzo6U3RydWN0dXJlOjpkdW1wU3RhdGlzdGljcyk6CisgICAgICAgIChK
U0M6OlN0cnVjdHVyZTo6U3RydWN0dXJlKToKKyAgICAgICAgKEpTQzo6U3RydWN0dXJlOjptYXRl
cmlhbGl6ZVByb3BlcnR5TWFwKToKKyAgICAgICAgKEpTQzo6U3RydWN0dXJlOjphZGRQcm9wZXJ0
eVRyYW5zaXRpb24pOgorICAgICAgICAoSlNDOjpTdHJ1Y3R1cmU6Om5vblByb3BlcnR5VHJhbnNp
dGlvbik6CisgICAgICAgIChKU0M6OlN0cnVjdHVyZTo6cGluKToKKyAgICAgICAgKEpTQzo6U3Ry
dWN0dXJlOjphbGxvY2F0ZVJhcmVEYXRhKToKKyAgICAgICAgKEpTQyk6CisgICAgICAgIChKU0M6
OlN0cnVjdHVyZTo6Y2xvbmVSYXJlRGF0YUZyb20pOgorICAgICAgICAoSlNDOjpTdHJ1Y3R1cmU6
OnZpc2l0Q2hpbGRyZW4pOgorICAgICAgICAqIHJ1bnRpbWUvU3RydWN0dXJlLmg6CisgICAgICAg
IChKU0M6OlN0cnVjdHVyZTo6cHJldmlvdXNJRCk6CisgICAgICAgIChKU0M6OlN0cnVjdHVyZTo6
b2JqZWN0VG9TdHJpbmdWYWx1ZSk6CisgICAgICAgIChKU0M6OlN0cnVjdHVyZTo6c2V0T2JqZWN0
VG9TdHJpbmdWYWx1ZSk6CisgICAgICAgIChKU0M6OlN0cnVjdHVyZTo6bWF0ZXJpYWxpemVQcm9w
ZXJ0eU1hcElmTmVjZXNzYXJ5KToKKyAgICAgICAgKEpTQzo6U3RydWN0dXJlOjpzZXRQcmV2aW91
c0lEKToKKyAgICAgICAgKFN0cnVjdHVyZSk6CisgICAgICAgIChKU0M6OlN0cnVjdHVyZTo6Y2xl
YXJQcmV2aW91c0lEKToKKyAgICAgICAgKEpTQzo6U3RydWN0dXJlOjpwcmV2aW91cyk6CisgICAg
ICAgIChKU0M6OlN0cnVjdHVyZTo6cmFyZURhdGEpOgorICAgICAgICAoSlNDOjpTdHJ1Y3R1cmU6
OmNyZWF0ZSk6CisgICAgICAgICogcnVudGltZS9TdHJ1Y3R1cmVSYXJlRGF0YS5jcHA6IEFkZGVk
LgorICAgICAgICAoSlNDKToKKyAgICAgICAgKEpTQzo6U3RydWN0dXJlUmFyZURhdGE6OmNyZWF0
ZVN0cnVjdHVyZSk6CisgICAgICAgIChKU0M6OlN0cnVjdHVyZVJhcmVEYXRhOjpjcmVhdGUpOgor
ICAgICAgICAoSlNDOjpTdHJ1Y3R1cmVSYXJlRGF0YTo6Y2xvbmUpOgorICAgICAgICAoSlNDOjpT
dHJ1Y3R1cmVSYXJlRGF0YTo6U3RydWN0dXJlUmFyZURhdGEpOgorICAgICAgICAoSlNDOjpTdHJ1
Y3R1cmVSYXJlRGF0YTo6dmlzaXRDaGlsZHJlbik6CisgICAgICAgICogcnVudGltZS9TdHJ1Y3R1
cmVSYXJlRGF0YS5oOiBBZGRlZC4KKyAgICAgICAgKEpTQyk6CisgICAgICAgIChTdHJ1Y3R1cmVS
YXJlRGF0YSk6CisgICAgICAgICogcnVudGltZS9TdHJ1Y3R1cmVSYXJlRGF0YUlubGluZXMuaDog
QWRkZWQuCisgICAgICAgIChKU0MpOgorICAgICAgICAoSlNDOjpTdHJ1Y3R1cmVSYXJlRGF0YTo6
cHJldmlvdXNJRCk6CisgICAgICAgIChKU0M6OlN0cnVjdHVyZVJhcmVEYXRhOjpzZXRQcmV2aW91
c0lEKToKKyAgICAgICAgKEpTQzo6U3RydWN0dXJlUmFyZURhdGE6OmNsZWFyUHJldmlvdXNJRCk6
CisgICAgICAgIChKU0M6OlN0cnVjdHVyZVJhcmVEYXRhOjpvYmplY3RUb1N0cmluZ1ZhbHVlKToK
KyAgICAgICAgKEpTQzo6U3RydWN0dXJlUmFyZURhdGE6OnNldE9iamVjdFRvU3RyaW5nVmFsdWUp
OgorCiAyMDEzLTAyLTAxICBCYWxhenMgS2lsdmFkeSAgPGtpbHZhZHliQGhvbWVqaW5uaS5jb20+
CiAKICAgICAgICAgb2ZmbGluZWFzbSBCYXNlSW5kZXggaGFuZGxpbmcgaXMgYnJva2VuIG9uIEFS
TSBkdWUgdG8gTUlQUyBjaGFuZ2VzCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VM
aXN0cy50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMu
dHh0CShyZXZpc2lvbiAxNDE2MTMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0
cy50eHQJKHdvcmtpbmcgY29weSkKQEAgLTI5MCw2ICsyOTAsNyBAQCBzZXQoSmF2YVNjcmlwdENv
cmVfU09VUkNFUwogICAgIHJ1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmNwcAogICAgIHJ1bnRpbWUv
U3RyaW5nUmVjdXJzaW9uQ2hlY2tlci5jcHAKICAgICBydW50aW1lL1N0cnVjdHVyZS5jcHAKKyAg
ICBydW50aW1lL1N0cnVjdHVyZVJhcmVEYXRhLmNwcAogICAgIHJ1bnRpbWUvU3RydWN0dXJlQ2hh
aW4uY3BwCiAgICAgcnVudGltZS9TeW1ib2xUYWJsZS5jcHAKICAgICBydW50aW1lL1RpbWVvdXRD
aGVja2VyLmNwcApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL0dOVW1ha2VmaWxlLmxpc3Qu
YW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0dOVW1ha2VmaWxlLmxpc3Qu
YW0JKHJldmlzaW9uIDE0MTYxMykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9HTlVtYWtlZmls
ZS5saXN0LmFtCSh3b3JraW5nIGNvcHkpCkBAIC03NDgsNiArNzQ4LDkgQEAgamF2YXNjcmlwdGNv
cmVfc291cmNlcyArPSBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJl
Q2hhaW4uaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlLmNwcCBc
CiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlLmggXAorCVNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZVJhcmVEYXRhLmNwcCBcCisJU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlUmFyZURhdGEuaCBcCisJU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlUmFyZURhdGFJbmxpbmVzLmggXAogCVNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZVRyYW5zaXRpb25UYWJsZS5oIFwKIAlTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TeW1ib2xUYWJsZS5jcHAgXAogCVNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1N5bWJvbFRhYmxlLmggXApJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL1RhcmdldC5wcmkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL1Rh
cmdldC5wcmkJKHJldmlzaW9uIDE0MTYxMykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9UYXJn
ZXQucHJpCSh3b3JraW5nIGNvcHkpCkBAIC0zMTAsNiArMzEwLDcgQEAgU09VUkNFUyArPSBcCiAg
ICAgcnVudGltZS9TdHJpbmdSZWN1cnNpb25DaGVja2VyLmNwcCBcCiAgICAgcnVudGltZS9TdHJ1
Y3R1cmVDaGFpbi5jcHAgXAogICAgIHJ1bnRpbWUvU3RydWN0dXJlLmNwcCBcCisgICAgcnVudGlt
ZS9TdHJ1Y3R1cmVSYXJlRGF0YS5jcHAgXAogICAgIHJ1bnRpbWUvU3ltYm9sVGFibGUuY3BwIFwK
ICAgICBydW50aW1lL1RpbWVvdXRDaGVja2VyLmNwcCBcCiAgICAgdG9vbHMvQ29kZVByb2ZpbGUu
Y3BwIFwKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwCShyZXZpc2lvbiAxNDE2MTMpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzgsNiArMzgsNyBA
QAogI2luY2x1ZGUgIkpTU3RyaW5nLmgiCiAjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogI2luY2x1
ZGUgIlNhbXBsaW5nVG9vbC5oIgorI2luY2x1ZGUgIlN0cnVjdHVyZVJhcmVEYXRhSW5saW5lcy5o
IgogI2luY2x1ZGUgPG1hdGguaD4KICNpbmNsdWRlIDxzdGRpby5oPgogI2luY2x1ZGUgPHN0ZGxp
Yi5oPgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvai9K
YXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2oKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvai9KYXZhU2NyaXB0Q29yZS9KYXZh
U2NyaXB0Q29yZS52Y3Byb2oJKHJldmlzaW9uIDE0MTYxMykKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2ovSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUu
dmNwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0xMzM4LDYgKzEzMzgsMTggQEAKIAkJCQk+CiAJCQk8
L0ZpbGU+CiAJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5ccnVudGltZVxTdHJ1Y3R1
cmVSYXJlRGF0YS5jcHAiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKKwkJCQlSZWxhdGl2
ZVBhdGg9Ii4uXC4uXHJ1bnRpbWVcU3RydWN0dXJlUmFyZURhdGEuaCIKKwkJCQk+CisJCQk8L0Zp
bGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5ccnVudGltZVxTdHJ1Y3R1cmVS
YXJlRGF0YUlubGluZXMuaCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQogCQkJCVJlbGF0
aXZlUGF0aD0iLi5cLi5ccnVudGltZVxTdHJ1Y3R1cmVUcmFuc2l0aW9uVGFibGUuaCIKIAkJCQk+
CiAJCQk8L0ZpbGU+CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24g
MTQxNjEzKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTc5MCw2ICs3OTAsNyBAQAogCQlC
Q0Y2MDUxNDBFMjAzRUY4MDBCOUE2NEQgLyogQXJnTGlzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNGNjA1MTIwRTIwM0VGODAwQjlBNjREIC8qIEFy
Z0xpc3QuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQlCQ0ZEOEM5MjBFRUIyRUU3MDAyODM4NDggLyogSnVtcFRhYmxlLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDRkQ4QzkwMEVFQjJFRTcwMDI4Mzg0
OCAvKiBKdW1wVGFibGUuY3BwICovOyB9OwogCQlCQ0ZEOEM5MzBFRUIyRUU3MDAyODM4NDggLyog
SnVtcFRhYmxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBCQ0ZEOEM5MTBFRUIyRUU3MDAyODM4NDggLyogSnVtcFRhYmxlLmggKi87IH07CisJCUMyMEJB
OTJEMTZCQjFDMTUwMEIzQUVBMiAvKiBTdHJ1Y3R1cmVSYXJlRGF0YUlubGluZXMuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMyMEJBOTJDMTZCQjFDMTUw
MEIzQUVBMiAvKiBTdHJ1Y3R1cmVSYXJlRGF0YUlubGluZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlDMjExMjJFMTE1REQ5QUIzMDA3OTBFM0Eg
LyogR0NUaHJlYWRTaGFyZWREYXRhLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEMyMTEyMkRFMTVERDlBQjMwMDc5MEUzQSAvKiBHQ1RocmVhZFNoYXJl
ZERhdGEuY3BwICovOyB9OwogCQlDMjExMjJFMjE1REQ5QUIzMDA3OTBFM0EgLyogR0NUaHJlYWRT
aGFyZWREYXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBDMjExMjJERjE1REQ5QUIzMDA3OTBFM0EgLyogR0NUaHJlYWRTaGFyZWREYXRhLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQzIxMTIyRTMxNURE
OUFCMzAwNzkwRTNBIC8qIE1hcmtTdGFja0lubGluZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMyMTEyMkUwMTVERDlBQjMwMDc5MEUzQSAvKiBNYXJr
U3RhY2tJbmxpbmVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKQEAgLTgxOCw3ICs4MTksOSBAQAogCQlDMkU1MjZCRTE1OTBFRjAwMDA1NEU0OEQgLyog
SGVhcFRpbWVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBDMkU1MjZCQzE1OTBFRjAwMDA1NEU0OEQgLyogSGVhcFRpbWVyLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQzJFQUEzRkExNDlBODM1RTAwRkNF
MTEyIC8qIENvcGllZFNwYWNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBDMkVBQTNGODE0OUE4MzA4MDBGQ0UxMTIgLyogQ29waWVkU3BhY2UuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlDMkVBRDJGQzE0
RjAyNDk4MDBBNEIxNTkgLyogQ29waWVkQWxsb2NhdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMkVBRDJGQjE0RjAyNDk4MDBBNEIxNTkgLyogQ29w
aWVkQWxsb2NhdG9yLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKKwkJQzJGMEYyRDExNkJBRUVFOTAwMTg3QzE5IC8qIFN0cnVjdHVyZVJhcmVEYXRhLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMyRjBGMkQw
MTZCQUVFRTkwMDE4N0MxOSAvKiBTdHJ1Y3R1cmVSYXJlRGF0YS5jcHAgKi87IH07CiAJCUMyRkM5
QkQzMTY2NDRERkIwMDgxMEQzMyAvKiBDb3BpZWRCbG9ja0lubGluZXMuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMyRkM5QkQyMTY2NDRERkIwMDgxMEQz
MyAvKiBDb3BpZWRCbG9ja0lubGluZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OworCQlDMkZFMThBNDE2QkFFQzQwMDBBRjMwNjEgLyogU3RydWN0dXJl
UmFyZURhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEMyRkUxOEEzMTZCQUVDNDAwMEFGMzA2MSAvKiBTdHJ1Y3R1cmVSYXJlRGF0YS5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCURERjdBQkQ0MTFGNjBF
RDIwMDEwOEUzNiAvKiBHQ0FjdGl2aXR5Q2FsbGJhY2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IERERjdBQkQyMTFGNjBFRDIwMDEwOEUzNiAvKiBHQ0Fj
dGl2aXR5Q2FsbGJhY2suaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQlFMTI0QThGNzBFNTU1Nzc1MDAzMDkxRjEgLyogT3BhcXVlSlNTdHJpbmcuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxMjRBOEY1MEU1
NTU3NzUwMDMwOTFGMSAvKiBPcGFxdWVKU1N0cmluZy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUUxMjRBOEY4MEU1NTU3NzUwMDMwOTFGMSAvKiBP
cGFxdWVKU1N0cmluZy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBFMTI0QThGNjBFNTU1Nzc1MDAzMDkxRjEgLyogT3BhcXVlSlNTdHJpbmcuY3BwICov
OyB9OwpAQCAtMTY3MCw2ICsxNjczLDcgQEAKIAkJQkNGNjA1MTIwRTIwM0VGODAwQjlBNjREIC8q
IEFyZ0xpc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXJnTGlzdC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQ0ZEOEM5MDBFRUIyRUU3MDAyODM4NDggLyog
SnVtcFRhYmxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEp1bXBU
YWJsZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDRkQ4QzkxMEVFQjJFRTcw
MDI4Mzg0OCAvKiBKdW1wVGFibGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
SnVtcFRhYmxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUMyMEJBOTJDMTZCQjFD
MTUwMEIzQUVBMiAvKiBTdHJ1Y3R1cmVSYXJlRGF0YUlubGluZXMuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gU3RydWN0dXJlUmFyZURhdGFJbmxpbmVzLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUMyMTEyMkRFMTVERDlBQjMwMDc5MEUzQSAvKiBHQ1RocmVhZFNo
YXJlZERhdGEuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gR0NUaHJl
YWRTaGFyZWREYXRhLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzIxMTIyREYx
NUREOUFCMzAwNzkwRTNBIC8qIEdDVGhyZWFkU2hhcmVkRGF0YS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBHQ1RocmVhZFNoYXJlZERhdGEuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJQzIxMTIyRTAxNUREOUFCMzAwNzkwRTNBIC8qIE1hcmtTdGFja0lubGluZXMu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWFya1N0YWNrSW5saW5lcy5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTY5Niw3ICsxNzAwLDkgQEAKIAkJQzJFNTI2
QkMxNTkwRUYwMDAwNTRFNDhEIC8qIEhlYXBUaW1lci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBIZWFwVGltZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzJF
QUEzRjgxNDlBODMwODAwRkNFMTEyIC8qIENvcGllZFNwYWNlLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IENvcGllZFNwYWNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUMyRUFEMkZCMTRGMDI0OTgwMEE0QjE1OSAvKiBDb3BpZWRBbGxvY2F0b3IuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ29waWVkQWxsb2NhdG9yLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUMyRjBGMkQwMTZCQUVFRTkwMDE4N0MxOSAvKiBTdHJ1Y3R1cmVS
YXJlRGF0YS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTdHJ1Y3R1
cmVSYXJlRGF0YS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUMyRkM5QkQyMTY2
NDRERkIwMDgxMEQzMyAvKiBDb3BpZWRCbG9ja0lubGluZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gQ29waWVkQmxvY2tJbmxpbmVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUMyRkUxOEEzMTZCQUVDNDAwMEFGMzA2MSAvKiBTdHJ1Y3R1cmVSYXJlRGF0YS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTdHJ1Y3R1cmVSYXJlRGF0YS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEMjEyMDIyODBBRDQzMTBDMDBFRDc5QjYgLyog
RGF0ZUNvbnZlcnNpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IERhdGVDb252ZXJzaW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRDIxMjAy
MjkwQUQ0MzEwQzAwRUQ3OUI2IC8qIERhdGVDb252ZXJzaW9uLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBEYXRlQ29udmVyc2lvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlEREY3QUJEMjExRjYwRUQyMDAxMDhFMzYgLyogR0NBY3Rpdml0eUNhbGxiYWNrLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdDQWN0aXZpdHlDYWxsYmFjay5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjUyMiw2ICsyNTI4LDkgQEAKIAkJCQkxNDIw
QkU3QTEwQUE2RERCMDBGNDU1RDIgLyogV2Vha1JhbmRvbS5oICovLAogCQkJCUE3RENCNzc5MTJF
M0Q5MDUwMDkxMTk0MCAvKiBXcml0ZUJhcnJpZXIuaCAqLywKIAkJCQlDMkQ1OEMzMzE1OTEyRkVF
MDAyMUE4NDQgLyogR0NBY3Rpdml0eUNhbGxiYWNrLmNwcCAqLywKKwkJCQlDMkZFMThBMzE2QkFF
QzQwMDBBRjMwNjEgLyogU3RydWN0dXJlUmFyZURhdGEuaCAqLywKKwkJCQlDMkYwRjJEMDE2QkFF
RUU5MDAxODdDMTkgLyogU3RydWN0dXJlUmFyZURhdGEuY3BwICovLAorCQkJCUMyMEJBOTJDMTZC
QjFDMTUwMEIzQUVBMiAvKiBTdHJ1Y3R1cmVSYXJlRGF0YUlubGluZXMuaCAqLywKIAkJCSk7CiAJ
CQlwYXRoID0gcnVudGltZTsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC0yODg1LDcg
KzI4OTQsOSBAQAogCQkJCUJDMThDNTI0MEUxNkZDOEEwMEIzNDQ2MCAvKiBBcnJheVByb3RvdHlw
ZS5sdXQuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGQjdGMzk2MTVFRDhFNDYwMEYxNjdCMiAvKiBB
cnJheVN0b3JhZ2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTk2ODhDQjE1MEVEMTJCNEUwMDFENjQ5
RiAvKiBBc3NlbWJsZXJCdWZmZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCUMyMEJBOTJEMTZCQjFD
MTUwMEIzQUVBMiAvKiBTdHJ1Y3R1cmVSYXJlRGF0YUlubGluZXMuaCBpbiBIZWFkZXJzICovLAog
CQkJCTg2RDNCMkM1MTAxNTZCREUwMDI4NjVFNyAvKiBBc3NlbWJsZXJCdWZmZXJXaXRoQ29uc3Rh
bnRQb29sLmggaW4gSGVhZGVycyAqLywKKwkJCQlDMkZFMThBNDE2QkFFQzQwMDBBRjMwNjEgLyog
U3RydWN0dXJlUmFyZURhdGEuaCBpbiBIZWFkZXJzICovLAogCQkJCUE3ODRBMjYxMTFEMTY2MjIw
MDU3NzZBQyAvKiBBU1RCdWlsZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkxNDdCODNBQzBFNkRC
OEM5MDA0Nzc1QTQgLyogQmF0Y2hlZFRyYW5zaXRpb25PcHRpbWl6ZXIuaCBpbiBIZWFkZXJzICov
LAogCQkJCTg2NjczOUQyMTNCRkRFNzEwMDIzRDg3QyAvKiBCaWdJbnRlZ2VyLmggaW4gSGVhZGVy
cyAqLywKQEAgLTM5NTEsNiArMzk2Miw3IEBACiAJCQkJMEZGMEYxOUQxNkI3MkEwODAwNURGOTVC
IC8qIERGR0NvbW1vbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkYwRjE5RTE2QjcyQTBCMDA1
REY5NUIgLyogREZHRWRnZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkYwRjE5RjE2QjcyQTE3
MDA1REY5NUIgLyogRnVuY3Rpb25FeGVjdXRhYmxlRHVtcC5jcHAgaW4gU291cmNlcyAqLywKKwkJ
CQlDMkYwRjJEMTE2QkFFRUU5MDAxODdDMTkgLyogU3RydWN0dXJlUmFyZURhdGEuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9
IDA7CiAJCX07CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1JlcGF0Y2guY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUmVwYXRjaC5jcHAJ
KHJldmlzaW9uIDE0MTYxMykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUmVwYXRj
aC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM3LDYgKzM3LDcgQEAKICNpbmNsdWRlICJPcGVyYXRp
b25zLmgiCiAjaW5jbHVkZSAiUG9seW1vcnBoaWNQdXRCeUlkTGlzdC5oIgogI2luY2x1ZGUgIlJl
cGF0Y2hCdWZmZXIuaCIKKyNpbmNsdWRlICJTdHJ1Y3R1cmVSYXJlRGF0YUlubGluZXMuaCIKICNp
bmNsdWRlIDx3dGYvU3RyaW5nUHJpbnRTdHJlYW0uaD4KIAogbmFtZXNwYWNlIEpTQyB7IG5hbWVz
cGFjZSBERkcgewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVicy5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVicy5jcHAJKHJl
dmlzaW9uIDE0MTYxMykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnMuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC02OCw2ICs2OCw3IEBACiAjaW5jbHVkZSAiUmVwYXRjaEJ1ZmZl
ci5oIgogI2luY2x1ZGUgIlNhbXBsaW5nVG9vbC5oIgogI2luY2x1ZGUgIlN0cm9uZy5oIgorI2lu
Y2x1ZGUgIlN0cnVjdHVyZVJhcmVEYXRhSW5saW5lcy5oIgogI2luY2x1ZGUgPHd0Zi9TdGRMaWJF
eHRyYXMuaD4KICNpbmNsdWRlIDxzdGRhcmcuaD4KICNpbmNsdWRlIDxzdGRpby5oPgpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRTbG93UGF0aHMuY3BwCShyZXZp
c2lvbiAxNDE2MTMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRTbG93UGF0
aHMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00OSw2ICs0OSw3IEBACiAjaW5jbHVkZSAiTG93TGV2
ZWxJbnRlcnByZXRlci5oIgogI2luY2x1ZGUgIk9iamVjdENvbnN0cnVjdG9yLmgiCiAjaW5jbHVk
ZSAiT3BlcmF0aW9ucy5oIgorI2luY2x1ZGUgIlN0cnVjdHVyZVJhcmVEYXRhSW5saW5lcy5oIgog
I2luY2x1ZGUgPHd0Zi9TdHJpbmdQcmludFN0cmVhbS5oPgogCiBuYW1lc3BhY2UgSlNDIHsgbmFt
ZXNwYWNlIExMSW50IHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2Vs
bElubGluZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U0NlbGxJbmxpbmVzLmgJKHJldmlzaW9uIDE0MTYxMykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTQ2VsbElubGluZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMjMsOCArMjMsMTUg
QEAKICAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuIAogICovCiAKKyNpZm5kZWYgSlNDZWxsSW5saW5lc19oCisjZGVm
aW5lIEpTQ2VsbElubGluZXNfaAorCiAjaW5jbHVkZSAiQ2FsbEZyYW1lLmgiCisjaW5jbHVkZSAi
SGFuZGxlLmgiCiAjaW5jbHVkZSAiSlNDZWxsLmgiCisjaW5jbHVkZSAiSlNPYmplY3QuaCIKKyNp
bmNsdWRlICJKU1N0cmluZy5oIgorI2luY2x1ZGUgIlN0cnVjdHVyZS5oIgogCiBuYW1lc3BhY2Ug
SlNDIHsKIApAQCAtMTg3LDMgKzE5NCw0IEBAIGlubGluZSBib29sIEpTQ2VsbDo6dG9Cb29sZWFu
KEV4ZWNTdGF0ZSoKIAogfSAvLyBuYW1lc3BhY2UgSlNDCiAKKyNlbmRpZiAvLyBKU0NlbGxJbmxp
bmVzX2gKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsRGF0YS5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxE
YXRhLmNwcAkocmV2aXNpb24gMTQxNjEzKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNHbG9iYWxEYXRhLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjA4LDYgKzIwOCw3IEBAIEpT
R2xvYmFsRGF0YTo6SlNHbG9iYWxEYXRhKEdsb2JhbERhdGFUeXAKICAgICBKU0xvY2tIb2xkZXIg
bG9jayh0aGlzKTsKICAgICBJZGVudGlmaWVyVGFibGUqIGV4aXN0aW5nRW50cnlJZGVudGlmaWVy
VGFibGUgPSB3dGZUaHJlYWREYXRhKCkuc2V0Q3VycmVudElkZW50aWZpZXJUYWJsZShpZGVudGlm
aWVyVGFibGUpOwogICAgIHN0cnVjdHVyZVN0cnVjdHVyZS5zZXQoKnRoaXMsIFN0cnVjdHVyZTo6
Y3JlYXRlU3RydWN0dXJlKCp0aGlzKSk7CisgICAgc3RydWN0dXJlUmFyZURhdGFTdHJ1Y3R1cmUu
c2V0KCp0aGlzLCBTdHJ1Y3R1cmVSYXJlRGF0YTo6Y3JlYXRlU3RydWN0dXJlKCp0aGlzLCAwLCBq
c051bGwoKSkpOwogICAgIGRlYnVnZ2VyQWN0aXZhdGlvblN0cnVjdHVyZS5zZXQoKnRoaXMsIERl
YnVnZ2VyQWN0aXZhdGlvbjo6Y3JlYXRlU3RydWN0dXJlKCp0aGlzLCAwLCBqc051bGwoKSkpOwog
ICAgIGludGVycnVwdGVkRXhlY3V0aW9uRXJyb3JTdHJ1Y3R1cmUuc2V0KCp0aGlzLCBJbnRlcnJ1
cHRlZEV4ZWN1dGlvbkVycm9yOjpjcmVhdGVTdHJ1Y3R1cmUoKnRoaXMsIDAsIGpzTnVsbCgpKSk7
CiAgICAgdGVybWluYXRlZEV4ZWN1dGlvbkVycm9yU3RydWN0dXJlLnNldCgqdGhpcywgVGVybWlu
YXRlZEV4ZWN1dGlvbkVycm9yOjpjcmVhdGVTdHJ1Y3R1cmUoKnRoaXMsIDAsIGpzTnVsbCgpKSk7
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbERhdGEuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbERhdGEuaAko
cmV2aXNpb24gMTQxNjEzKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9i
YWxEYXRhLmgJKHdvcmtpbmcgY29weSkKQEAgLTIyNiw2ICsyMjYsNyBAQCBuYW1lc3BhY2UgSlND
IHsKICAgICAgICAgY29uc3QgSGFzaFRhYmxlKiBzdHJpbmdDb25zdHJ1Y3RvclRhYmxlOwogICAg
ICAgICAKICAgICAgICAgU3Ryb25nPFN0cnVjdHVyZT4gc3RydWN0dXJlU3RydWN0dXJlOworICAg
ICAgICBTdHJvbmc8U3RydWN0dXJlPiBzdHJ1Y3R1cmVSYXJlRGF0YVN0cnVjdHVyZTsKICAgICAg
ICAgU3Ryb25nPFN0cnVjdHVyZT4gZGVidWdnZXJBY3RpdmF0aW9uU3RydWN0dXJlOwogICAgICAg
ICBTdHJvbmc8U3RydWN0dXJlPiBpbnRlcnJ1cHRlZEV4ZWN1dGlvbkVycm9yU3RydWN0dXJlOwog
ICAgICAgICBTdHJvbmc8U3RydWN0dXJlPiB0ZXJtaW5hdGVkRXhlY3V0aW9uRXJyb3JTdHJ1Y3R1
cmU7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2Jq
ZWN0LmgJKHJldmlzaW9uIDE0MTYxMykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTR2xvYmFsT2JqZWN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNs
dWRlICJTcGVjaWFsUG9pbnRlci5oIgogI2luY2x1ZGUgIlN0cmluZ1Byb3RvdHlwZS5oIgogI2lu
Y2x1ZGUgIlN0cnVjdHVyZUNoYWluLmgiCisjaW5jbHVkZSAiU3RydWN0dXJlUmFyZURhdGFJbmxp
bmVzLmgiCiAjaW5jbHVkZSAiV2F0Y2hwb2ludC5oIgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+
CiAjaW5jbHVkZSA8d3RmL093blB0ci5oPgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNUeXBlSW5mby5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTVHlwZUluZm8uaAkocmV2aXNpb24gMTQxNjEzKQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNUeXBlSW5mby5oCSh3b3JraW5nIGNvcHkpCkBAIC00Nyw2ICs0Nyw3
IEBAIG5hbWVzcGFjZSBKU0MgewogICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBPdmVycmlkZXNH
ZXRQcm9wZXJ0eU5hbWVzID0gMSA8PCA4OwogICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBQcm9o
aWJpdHNQcm9wZXJ0eUNhY2hpbmcgPSAxIDw8IDk7CiAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVk
IEhhc0ltcHVyZUdldE93blByb3BlcnR5U2xvdCA9IDEgPDwgMTA7CisgICAgc3RhdGljIGNvbnN0
IHVuc2lnbmVkIFN0cnVjdHVyZUhhc1JhcmVEYXRhID0gMSA8PCAxMTsKIAogICAgIGNsYXNzIFR5
cGVJbmZvIHsKICAgICBwdWJsaWM6CkBAIC03MCw2ICs3MSw3IEBAIG5hbWVzcGFjZSBKU0Mgewog
ICAgICAgICBib29sIGlzTnVtYmVyT2JqZWN0KCkgY29uc3QgeyByZXR1cm4gdHlwZSgpID09IE51
bWJlck9iamVjdFR5cGU7IH0KICAgICAgICAgYm9vbCBpc05hbWUoKSBjb25zdCB7IHJldHVybiB0
eXBlKCkgPT0gTmFtZUluc3RhbmNlVHlwZTsgfQogCisgICAgICAgIHVuc2lnbmVkIGZsYWdzKCkg
Y29uc3QgeyByZXR1cm4gKHN0YXRpY19jYXN0PHVuc2lnbmVkPihtX2ZsYWdzMikgPDwgOCkgfCBz
dGF0aWNfY2FzdDx1bnNpZ25lZD4obV9mbGFncyk7IH0KICAgICAgICAgYm9vbCBtYXNxdWVyYWRl
c0FzVW5kZWZpbmVkKCkgY29uc3QgeyByZXR1cm4gaXNTZXRPbkZsYWdzMShNYXNxdWVyYWRlc0Fz
VW5kZWZpbmVkKTsgfQogICAgICAgICBib29sIGltcGxlbWVudHNIYXNJbnN0YW5jZSgpIGNvbnN0
IHsgcmV0dXJuIGlzU2V0T25GbGFnczEoSW1wbGVtZW50c0hhc0luc3RhbmNlKTsgfQogICAgICAg
ICBib29sIGlzRW52aXJvbm1lbnRSZWNvcmQoKSBjb25zdCB7IHJldHVybiBpc1NldE9uRmxhZ3Mx
KElzRW52aXJvbm1lbnRSZWNvcmQpOyB9CkBAIC04MSw2ICs4Myw3IEBAIG5hbWVzcGFjZSBKU0Mg
ewogICAgICAgICBib29sIG92ZXJyaWRlc0dldFByb3BlcnR5TmFtZXMoKSBjb25zdCB7IHJldHVy
biBpc1NldE9uRmxhZ3MyKE92ZXJyaWRlc0dldFByb3BlcnR5TmFtZXMpOyB9CiAgICAgICAgIGJv
b2wgcHJvaGliaXRzUHJvcGVydHlDYWNoaW5nKCkgY29uc3QgeyByZXR1cm4gaXNTZXRPbkZsYWdz
MihQcm9oaWJpdHNQcm9wZXJ0eUNhY2hpbmcpOyB9CiAgICAgICAgIGJvb2wgaGFzSW1wdXJlR2V0
T3duUHJvcGVydHlTbG90KCkgY29uc3QgeyByZXR1cm4gaXNTZXRPbkZsYWdzMihIYXNJbXB1cmVH
ZXRPd25Qcm9wZXJ0eVNsb3QpOyB9CisgICAgICAgIGJvb2wgc3RydWN0dXJlSGFzUmFyZURhdGEo
KSBjb25zdCB7IHJldHVybiBpc1NldE9uRmxhZ3MyKFN0cnVjdHVyZUhhc1JhcmVEYXRhKTsgfQog
CiAgICAgICAgIHN0YXRpYyBwdHJkaWZmX3QgZmxhZ3NPZmZzZXQoKQogICAgICAgICB7CkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RQcm90b3R5cGUuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdFByb3RvdHlwZS5j
cHAJKHJldmlzaW9uIDE0MTYxMykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09i
amVjdFByb3RvdHlwZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI2LDYgKzI2LDcgQEAKICNpbmNs
dWRlICJKU1N0cmluZy5oIgogI2luY2x1ZGUgIkpTU3RyaW5nQnVpbGRlci5oIgogI2luY2x1ZGUg
Ik9wZXJhdGlvbnMuaCIKKyNpbmNsdWRlICJTdHJ1Y3R1cmVSYXJlRGF0YUlubGluZXMuaCIKIAog
bmFtZXNwYWNlIEpTQyB7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0
cnVjdHVyZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
U3RydWN0dXJlLmNwcAkocmV2aXNpb24gMTQxNjEzKQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvU3RydWN0dXJlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzEsNiArMzEsNyBAQAog
I2luY2x1ZGUgIkxvb2t1cC5oIgogI2luY2x1ZGUgIlByb3BlcnR5TmFtZUFycmF5LmgiCiAjaW5j
bHVkZSAiU3RydWN0dXJlQ2hhaW4uaCIKKyNpbmNsdWRlICJTdHJ1Y3R1cmVSYXJlRGF0YUlubGlu
ZXMuaCIKICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZExlYWtDb3VudGVyLmg+CiAjaW5jbHVkZSA8
d3RmL1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KQEAgLTEyMCw3ICsxMjEs
NyBAQCB2b2lkIFN0cnVjdHVyZTo6ZHVtcFN0YXRpc3RpY3MoKQogICAgICAgICBzd2l0Y2ggKHN0
cnVjdHVyZS0+bV90cmFuc2l0aW9uVGFibGUuc2l6ZSgpKSB7CiAgICAgICAgICAgICBjYXNlIDA6
CiAgICAgICAgICAgICAgICAgKytudW1iZXJMZWFmOwotICAgICAgICAgICAgICAgaWYgKCFzdHJ1
Y3R1cmUtPm1fcHJldmlvdXMpCisgICAgICAgICAgICAgICAgaWYgKCFzdHJ1Y3R1cmUtPnByZXZp
b3VzSUQoKSkKICAgICAgICAgICAgICAgICAgICAgKytudW1iZXJTaW5nbGV0b25zOwogICAgICAg
ICAgICAgICAgIGJyZWFrOwogCkBAIC0xNzIsNiArMTczLDcgQEAgU3RydWN0dXJlOjpTdHJ1Y3R1
cmUoSlNHbG9iYWxEYXRhJiBnbG9iYQogewogICAgIEFTU0VSVChpbmxpbmVDYXBhY2l0eSA8PSBK
U0ZpbmFsT2JqZWN0OjptYXhJbmxpbmVDYXBhY2l0eSgpKTsKICAgICBBU1NFUlQoc3RhdGljX2Nh
c3Q8UHJvcGVydHlPZmZzZXQ+KGlubGluZUNhcGFjaXR5KSA8IGZpcnN0T3V0T2ZMaW5lT2Zmc2V0
KTsKKyAgICBBU1NFUlQoIXR5cGVJbmZvLnN0cnVjdHVyZUhhc1JhcmVEYXRhKCkpOwogfQogCiBj
b25zdCBDbGFzc0luZm8gU3RydWN0dXJlOjpzX2luZm8gPSB7ICJTdHJ1Y3R1cmUiLCAwLCAwLCAw
LCBDUkVBVEVfTUVUSE9EX1RBQkxFKFN0cnVjdHVyZSkgfTsKQEAgLTI0Miw3ICsyNDQsNyBAQCB2
b2lkIFN0cnVjdHVyZTo6bWF0ZXJpYWxpemVQcm9wZXJ0eU1hcChKCiAgICAgd2hpbGUgKChzdHJ1
Y3R1cmUgPSBzdHJ1Y3R1cmUtPnByZXZpb3VzSUQoKSkpIHsKICAgICAgICAgaWYgKHN0cnVjdHVy
ZS0+bV9pc1Bpbm5lZFByb3BlcnR5VGFibGUpIHsKICAgICAgICAgICAgIEFTU0VSVChzdHJ1Y3R1
cmUtPm1fcHJvcGVydHlUYWJsZSk7Ci0gICAgICAgICAgICBBU1NFUlQoIXN0cnVjdHVyZS0+bV9w
cmV2aW91cyk7CisgICAgICAgICAgICBBU1NFUlQoIXN0cnVjdHVyZS0+cHJldmlvdXNJRCgpKTsK
IAogICAgICAgICAgICAgbV9wcm9wZXJ0eVRhYmxlID0gc3RydWN0dXJlLT5tX3Byb3BlcnR5VGFi
bGUtPmNvcHkoZ2xvYmFsRGF0YSwgMCwgbnVtYmVyT2ZTbG90c0Zvckxhc3RPZmZzZXQobV9vZmZz
ZXQsIG1faW5saW5lQ2FwYWNpdHkpKTsKICAgICAgICAgICAgIGJyZWFrOwpAQCAtMzYzLDcgKzM2
NSw3IEBAIFN0cnVjdHVyZSogU3RydWN0dXJlOjphZGRQcm9wZXJ0eVRyYW5zaXQKICAgICBTdHJ1
Y3R1cmUqIHRyYW5zaXRpb24gPSBjcmVhdGUoZ2xvYmFsRGF0YSwgc3RydWN0dXJlKTsKIAogICAg
IHRyYW5zaXRpb24tPm1fY2FjaGVkUHJvdG90eXBlQ2hhaW4uc2V0TWF5QmVOdWxsKGdsb2JhbERh
dGEsIHRyYW5zaXRpb24sIHN0cnVjdHVyZS0+bV9jYWNoZWRQcm90b3R5cGVDaGFpbi5nZXQoKSk7
Ci0gICAgdHJhbnNpdGlvbi0+bV9wcmV2aW91cy5zZXQoZ2xvYmFsRGF0YSwgdHJhbnNpdGlvbiwg
c3RydWN0dXJlKTsKKyAgICB0cmFuc2l0aW9uLT5zZXRQcmV2aW91c0lEKGdsb2JhbERhdGEsIHRy
YW5zaXRpb24sIHN0cnVjdHVyZSk7CiAgICAgdHJhbnNpdGlvbi0+bV9uYW1lSW5QcmV2aW91cyA9
IHByb3BlcnR5TmFtZS51aWQoKTsKICAgICB0cmFuc2l0aW9uLT5tX2F0dHJpYnV0ZXNJblByZXZp
b3VzID0gYXR0cmlidXRlczsKICAgICB0cmFuc2l0aW9uLT5tX3NwZWNpZmljVmFsdWVJblByZXZp
b3VzLnNldE1heUJlTnVsbChnbG9iYWxEYXRhLCB0cmFuc2l0aW9uLCBzcGVjaWZpY1ZhbHVlKTsK
QEAgLTM3NCw3ICszNzYsNyBAQCBTdHJ1Y3R1cmUqIFN0cnVjdHVyZTo6YWRkUHJvcGVydHlUcmFu
c2l0CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIHRyYW5zaXRpb24tPm1fcHJvcGVydHlUYWJs
ZSA9IHN0cnVjdHVyZS0+bV9wcm9wZXJ0eVRhYmxlLnJlbGVhc2UoKTsKICAgICB9IGVsc2Ugewot
ICAgICAgICBpZiAoc3RydWN0dXJlLT5tX3ByZXZpb3VzKQorICAgICAgICBpZiAoc3RydWN0dXJl
LT5wcmV2aW91c0lEKCkpCiAgICAgICAgICAgICB0cmFuc2l0aW9uLT5tYXRlcmlhbGl6ZVByb3Bl
cnR5TWFwKGdsb2JhbERhdGEpOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICB0cmFuc2l0aW9u
LT5jcmVhdGVQcm9wZXJ0eU1hcCgpOwpAQCAtNTUxLDcgKzU1Myw3IEBAIFN0cnVjdHVyZSogU3Ry
dWN0dXJlOjpub25Qcm9wZXJ0eVRyYW5zaXQKICAgICB9CiAgICAgCiAgICAgU3RydWN0dXJlKiB0
cmFuc2l0aW9uID0gY3JlYXRlKGdsb2JhbERhdGEsIHN0cnVjdHVyZSk7Ci0gICAgdHJhbnNpdGlv
bi0+bV9wcmV2aW91cy5zZXQoZ2xvYmFsRGF0YSwgdHJhbnNpdGlvbiwgc3RydWN0dXJlKTsKKyAg
ICB0cmFuc2l0aW9uLT5zZXRQcmV2aW91c0lEKGdsb2JhbERhdGEsIHRyYW5zaXRpb24sIHN0cnVj
dHVyZSk7CiAgICAgdHJhbnNpdGlvbi0+bV9hdHRyaWJ1dGVzSW5QcmV2aW91cyA9IGF0dHJpYnV0
ZXM7CiAgICAgdHJhbnNpdGlvbi0+bV9pbmRleGluZ1R5cGUgPSBpbmRleGluZ1R5cGU7CiAgICAg
dHJhbnNpdGlvbi0+bV9vZmZzZXQgPSBzdHJ1Y3R1cmUtPm1fb2Zmc2V0OwpAQCAtNTYzLDcgKzU2
NSw3IEBAIFN0cnVjdHVyZSogU3RydWN0dXJlOjpub25Qcm9wZXJ0eVRyYW5zaXQKICAgICAgICAg
ZWxzZQogICAgICAgICAgICAgdHJhbnNpdGlvbi0+bV9wcm9wZXJ0eVRhYmxlID0gc3RydWN0dXJl
LT5tX3Byb3BlcnR5VGFibGUucmVsZWFzZSgpOwogICAgIH0gZWxzZSB7Ci0gICAgICAgIGlmIChz
dHJ1Y3R1cmUtPm1fcHJldmlvdXMpCisgICAgICAgIGlmIChzdHJ1Y3R1cmUtPnByZXZpb3VzSUQo
KSkKICAgICAgICAgICAgIHRyYW5zaXRpb24tPm1hdGVyaWFsaXplUHJvcGVydHlNYXAoZ2xvYmFs
RGF0YSk7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIHRyYW5zaXRpb24tPmNyZWF0ZVByb3Bl
cnR5TWFwKCk7CkBAIC02NzAsMTAgKzY3MiwyNSBAQCB2b2lkIFN0cnVjdHVyZTo6cGluKCkKIHsK
ICAgICBBU1NFUlQobV9wcm9wZXJ0eVRhYmxlKTsKICAgICBtX2lzUGlubmVkUHJvcGVydHlUYWJs
ZSA9IHRydWU7Ci0gICAgbV9wcmV2aW91cy5jbGVhcigpOworICAgIGNsZWFyUHJldmlvdXNJRCgp
OwogICAgIG1fbmFtZUluUHJldmlvdXMuY2xlYXIoKTsKIH0KIAordm9pZCBTdHJ1Y3R1cmU6OmFs
bG9jYXRlUmFyZURhdGEoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhKQoreworICAgIEFTU0VSVCgh
dHlwZUluZm8oKS5zdHJ1Y3R1cmVIYXNSYXJlRGF0YSgpKTsKKyAgICBTdHJ1Y3R1cmVSYXJlRGF0
YSogcmFyZURhdGEgPSBTdHJ1Y3R1cmVSYXJlRGF0YTo6Y3JlYXRlKGdsb2JhbERhdGEsIHByZXZp
b3VzKCkpOworICAgIG1fdHlwZUluZm8gPSBUeXBlSW5mbyh0eXBlSW5mbygpLnR5cGUoKSwgdHlw
ZUluZm8oKS5mbGFncygpIHwgU3RydWN0dXJlSGFzUmFyZURhdGEpOworICAgIG1fcHJldmlvdXNP
clJhcmVEYXRhLnNldChnbG9iYWxEYXRhLCB0aGlzLCByYXJlRGF0YSk7Cit9CisKK3ZvaWQgU3Ry
dWN0dXJlOjpjbG9uZVJhcmVEYXRhRnJvbShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIGNvbnN0
IFN0cnVjdHVyZSogb3RoZXIpCit7CisgICAgQVNTRVJUKG90aGVyLT50eXBlSW5mbygpLnN0cnVj
dHVyZUhhc1JhcmVEYXRhKCkpOworICAgIFN0cnVjdHVyZVJhcmVEYXRhKiBuZXdSYXJlRGF0YSA9
IFN0cnVjdHVyZVJhcmVEYXRhOjpjbG9uZShnbG9iYWxEYXRhLCBvdGhlci0+cmFyZURhdGEoKSk7
CisgICAgbV9wcmV2aW91c09yUmFyZURhdGEuc2V0KGdsb2JhbERhdGEsIHRoaXMsIG5ld1JhcmVE
YXRhKTsKK30KKwogI2lmIERVTVBfUFJPUEVSVFlNQVBfU1RBVFMKIAogc3RydWN0IFByb3BlcnR5
TWFwU3RhdGlzdGljc0V4aXRMb2dnZXIgewpAQCAtODQwLDcgKzg1Nyw3IEBAIHZvaWQgU3RydWN0
dXJlOjp2aXNpdENoaWxkcmVuKEpTQ2VsbCogY2UKICAgICAgICAgdmlzaXRvci5hcHBlbmQoJnRo
aXNPYmplY3QtPm1fcHJvdG90eXBlKTsKICAgICAgICAgdmlzaXRvci5hcHBlbmQoJnRoaXNPYmpl
Y3QtPm1fY2FjaGVkUHJvdG90eXBlQ2hhaW4pOwogICAgIH0KLSAgICB2aXNpdG9yLmFwcGVuZCgm
dGhpc09iamVjdC0+bV9wcmV2aW91cyk7CisgICAgdmlzaXRvci5hcHBlbmQoJnRoaXNPYmplY3Qt
Pm1fcHJldmlvdXNPclJhcmVEYXRhKTsKICAgICB2aXNpdG9yLmFwcGVuZCgmdGhpc09iamVjdC0+
bV9zcGVjaWZpY1ZhbHVlSW5QcmV2aW91cyk7CiAgICAgdmlzaXRvci5hcHBlbmQoJnRoaXNPYmpl
Y3QtPm1fZW51bWVyYXRpb25DYWNoZSk7CiAgICAgaWYgKHRoaXNPYmplY3QtPm1fcHJvcGVydHlU
YWJsZSkgewpAQCAtODQ4LDcgKzg2NSw2IEBAIHZvaWQgU3RydWN0dXJlOjp2aXNpdENoaWxkcmVu
KEpTQ2VsbCogY2UKICAgICAgICAgZm9yIChQcm9wZXJ0eVRhYmxlOjppdGVyYXRvciBwdHIgPSB0
aGlzT2JqZWN0LT5tX3Byb3BlcnR5VGFibGUtPmJlZ2luKCk7IHB0ciAhPSBlbmQ7ICsrcHRyKQog
ICAgICAgICAgICAgdmlzaXRvci5hcHBlbmQoJnB0ci0+c3BlY2lmaWNWYWx1ZSk7CiAgICAgfQot
ICAgIHZpc2l0b3IuYXBwZW5kKCZ0aGlzT2JqZWN0LT5tX29iamVjdFRvU3RyaW5nVmFsdWUpOwog
fQogCiBib29sIFN0cnVjdHVyZTo6cHJvdG90eXBlQ2hhaW5NYXlJbnRlcmNlcHRTdG9yZVRvKEpT
R2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSkKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5oCShyZXZpc2lvbiAxNDE2
MTMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMzUsNiArMzUsNyBAQAogI2luY2x1ZGUgIlByb3BlcnR5TmFtZS5oIgogI2lu
Y2x1ZGUgIlByb3BlcnR5TmFtZUFycmF5LmgiCiAjaW5jbHVkZSAiUHJvdGVjdC5oIgorI2luY2x1
ZGUgIlN0cnVjdHVyZVJhcmVEYXRhLmgiCiAjaW5jbHVkZSAiU3RydWN0dXJlVHJhbnNpdGlvblRh
YmxlLmgiCiAjaW5jbHVkZSAiSlNUeXBlSW5mby5oIgogI2luY2x1ZGUgIldhdGNocG9pbnQuaCIK
QEAgLTE3OCw3ICsxNzksOSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgU3RydWN0dXJlKiBw
cmV2aW91c0lEKCkgY29uc3QKICAgICAgICAgewogICAgICAgICAgICAgQVNTRVJUKHN0cnVjdHVy
ZSgpLT5jbGFzc0luZm8oKSA9PSAmc19pbmZvKTsKLSAgICAgICAgICAgIHJldHVybiBtX3ByZXZp
b3VzLmdldCgpOworICAgICAgICAgICAgaWYgKHR5cGVJbmZvKCkuc3RydWN0dXJlSGFzUmFyZURh
dGEoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gcmFyZURhdGEoKS0+cHJldmlvdXNJRCgpOwor
ICAgICAgICAgICAgcmV0dXJuIHByZXZpb3VzKCk7CiAgICAgICAgIH0KICAgICAgICAgYm9vbCB0
cmFuc2l0aXZlbHlUcmFuc2l0aW9uZWRGcm9tKFN0cnVjdHVyZSogc3RydWN0dXJlVG9GaW5kKTsK
IApAQCAtMjg5LDExICsyOTIsMTggQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIEpTUHJvcGVy
dHlOYW1lSXRlcmF0b3IqIGVudW1lcmF0aW9uQ2FjaGUoKTsgLy8gRGVmaW5lZCBpbiBKU1Byb3Bl
cnR5TmFtZUl0ZXJhdG9yLmguCiAgICAgICAgIHZvaWQgZ2V0UHJvcGVydHlOYW1lc0Zyb21TdHJ1
Y3R1cmUoSlNHbG9iYWxEYXRhJiwgUHJvcGVydHlOYW1lQXJyYXkmLCBFbnVtZXJhdGlvbk1vZGUp
OwogCi0gICAgICAgIEpTU3RyaW5nKiBvYmplY3RUb1N0cmluZ1ZhbHVlKCkgeyByZXR1cm4gbV9v
YmplY3RUb1N0cmluZ1ZhbHVlLmdldCgpOyB9CisgICAgICAgIEpTU3RyaW5nKiBvYmplY3RUb1N0
cmluZ1ZhbHVlKCkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKCF0eXBlSW5mbygpLnN0cnVj
dHVyZUhhc1JhcmVEYXRhKCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgICAg
ICByZXR1cm4gcmFyZURhdGEoKS0+b2JqZWN0VG9TdHJpbmdWYWx1ZSgpOworICAgICAgICB9CiAK
ICAgICAgICAgdm9pZCBzZXRPYmplY3RUb1N0cmluZ1ZhbHVlKEpTR2xvYmFsRGF0YSYgZ2xvYmFs
RGF0YSwgY29uc3QgSlNDZWxsKiBvd25lciwgSlNTdHJpbmcqIHZhbHVlKQogICAgICAgICB7Ci0g
ICAgICAgICAgICBtX29iamVjdFRvU3RyaW5nVmFsdWUuc2V0KGdsb2JhbERhdGEsIG93bmVyLCB2
YWx1ZSk7CisgICAgICAgICAgICBpZiAoIXR5cGVJbmZvKCkuc3RydWN0dXJlSGFzUmFyZURhdGEo
KSkKKyAgICAgICAgICAgICAgICBhbGxvY2F0ZVJhcmVEYXRhKGdsb2JhbERhdGEpOworICAgICAg
ICAgICAgcmFyZURhdGEoKS0+c2V0T2JqZWN0VG9TdHJpbmdWYWx1ZShnbG9iYWxEYXRhLCBvd25l
ciwgdmFsdWUpOwogICAgICAgICB9CiAKICAgICAgICAgYm9vbCBzdGF0aWNGdW5jdGlvbnNSZWlm
aWVkKCkKQEAgLTM5NCw3ICs0MDQsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgdm9pZCBt
YXRlcmlhbGl6ZVByb3BlcnR5TWFwSWZOZWNlc3NhcnkoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRh
KQogICAgICAgICB7CiAgICAgICAgICAgICBBU1NFUlQoc3RydWN0dXJlKCktPmNsYXNzSW5mbygp
ID09ICZzX2luZm8pOwotICAgICAgICAgICAgaWYgKCFtX3Byb3BlcnR5VGFibGUgJiYgbV9wcmV2
aW91cykKKyAgICAgICAgICAgIGlmICghbV9wcm9wZXJ0eVRhYmxlICYmIHByZXZpb3VzSUQoKSkK
ICAgICAgICAgICAgICAgICBtYXRlcmlhbGl6ZVByb3BlcnR5TWFwKGdsb2JhbERhdGEpOwogICAg
ICAgICB9CiAgICAgICAgIHZvaWQgbWF0ZXJpYWxpemVQcm9wZXJ0eU1hcElmTmVjZXNzYXJ5Rm9y
UGlubmluZyhKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEpCkBAIC00MDQsNiArNDE0LDIyIEBAIG5h
bWVzcGFjZSBKU0MgewogICAgICAgICAgICAgICAgIG1hdGVyaWFsaXplUHJvcGVydHlNYXAoZ2xv
YmFsRGF0YSk7CiAgICAgICAgIH0KIAorICAgICAgICB2b2lkIHNldFByZXZpb3VzSUQoSlNHbG9i
YWxEYXRhJiBnbG9iYWxEYXRhLCBTdHJ1Y3R1cmUqIHRyYW5zaXRpb24sIFN0cnVjdHVyZSogc3Ry
dWN0dXJlKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAodHlwZUluZm8oKS5zdHJ1Y3R1cmVI
YXNSYXJlRGF0YSgpKQorICAgICAgICAgICAgICAgIHJhcmVEYXRhKCktPnNldFByZXZpb3VzSUQo
Z2xvYmFsRGF0YSwgdHJhbnNpdGlvbiwgc3RydWN0dXJlKTsKKyAgICAgICAgICAgIGVsc2UKKyAg
ICAgICAgICAgICAgICBtX3ByZXZpb3VzT3JSYXJlRGF0YS5zZXQoZ2xvYmFsRGF0YSwgdHJhbnNp
dGlvbiwgc3RydWN0dXJlKTsKKyAgICAgICAgfQorCisgICAgICAgIHZvaWQgY2xlYXJQcmV2aW91
c0lEKCkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKHR5cGVJbmZvKCkuc3RydWN0dXJlSGFz
UmFyZURhdGEoKSkKKyAgICAgICAgICAgICAgICByYXJlRGF0YSgpLT5jbGVhclByZXZpb3VzSUQo
KTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBtX3ByZXZpb3VzT3JSYXJlRGF0
YS5jbGVhcigpOworICAgICAgICB9CisKICAgICAgICAgaW50IHRyYW5zaXRpb25Db3VudCgpIGNv
bnN0CiAgICAgICAgIHsKICAgICAgICAgICAgIC8vIFNpbmNlIHRoZSBudW1iZXIgb2YgdHJhbnNp
dGlvbnMgaXMgYWx3YXlzIHRoZSBzYW1lIGFzIG1fb2Zmc2V0LCB3ZSBrZWVwIHRoZSBzaXplIG9m
IFN0cnVjdHVyZSBkb3duIGJ5IG5vdCBzdG9yaW5nIGJvdGguCkBAIC00MTUsNiArNDQxLDIxIEBA
IG5hbWVzcGFjZSBKU0MgewogICAgICAgICAKICAgICAgICAgdm9pZCBwaW4oKTsKIAorICAgICAg
ICBTdHJ1Y3R1cmUqIHByZXZpb3VzKCkgY29uc3QKKyAgICAgICAgeworICAgICAgICAgICAgQVNT
RVJUKCF0eXBlSW5mbygpLnN0cnVjdHVyZUhhc1JhcmVEYXRhKCkpOworICAgICAgICAgICAgcmV0
dXJuIHN0YXRpY19jYXN0PFN0cnVjdHVyZSo+KG1fcHJldmlvdXNPclJhcmVEYXRhLmdldCgpKTsK
KyAgICAgICAgfQorCisgICAgICAgIFN0cnVjdHVyZVJhcmVEYXRhKiByYXJlRGF0YSgpIGNvbnN0
CisgICAgICAgIHsKKyAgICAgICAgICAgIEFTU0VSVCh0eXBlSW5mbygpLnN0cnVjdHVyZUhhc1Jh
cmVEYXRhKCkpOworICAgICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PFN0cnVjdHVyZVJhcmVE
YXRhKj4obV9wcmV2aW91c09yUmFyZURhdGEuZ2V0KCkpOworICAgICAgICB9CisKKyAgICAgICAg
dm9pZCBhbGxvY2F0ZVJhcmVEYXRhKEpTR2xvYmFsRGF0YSYpOworICAgICAgICB2b2lkIGNsb25l
UmFyZURhdGFGcm9tKEpTR2xvYmFsRGF0YSYsIGNvbnN0IFN0cnVjdHVyZSopOworCiAgICAgICAg
IHN0YXRpYyBjb25zdCBpbnQgc19tYXhUcmFuc2l0aW9uTGVuZ3RoID0gNjQ7CiAKICAgICAgICAg
c3RhdGljIGNvbnN0IHVuc2lnbmVkIG1heFNwZWNpZmljRnVuY3Rpb25UaHJhc2hDb3VudCA9IDM7
CkBAIC00MjYsNyArNDY3LDggQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIFdyaXRlQmFycmll
cjxVbmtub3duPiBtX3Byb3RvdHlwZTsKICAgICAgICAgbXV0YWJsZSBXcml0ZUJhcnJpZXI8U3Ry
dWN0dXJlQ2hhaW4+IG1fY2FjaGVkUHJvdG90eXBlQ2hhaW47CiAKLSAgICAgICAgV3JpdGVCYXJy
aWVyPFN0cnVjdHVyZT4gbV9wcmV2aW91czsKKyAgICAgICAgV3JpdGVCYXJyaWVyPEpTQ2VsbD4g
bV9wcmV2aW91c09yUmFyZURhdGE7CisKICAgICAgICAgUmVmUHRyPFN0cmluZ0ltcGw+IG1fbmFt
ZUluUHJldmlvdXM7CiAgICAgICAgIFdyaXRlQmFycmllcjxKU0NlbGw+IG1fc3BlY2lmaWNWYWx1
ZUluUHJldmlvdXM7CiAKQEAgLTQzOCw4ICs0ODAsNiBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAg
ICAgICBPd25QdHI8UHJvcGVydHlUYWJsZT4gbV9wcm9wZXJ0eVRhYmxlOwogCi0gICAgICAgIFdy
aXRlQmFycmllcjxKU1N0cmluZz4gbV9vYmplY3RUb1N0cmluZ1ZhbHVlOwotICAgICAgICAKICAg
ICAgICAgbXV0YWJsZSBJbmxpbmVXYXRjaHBvaW50U2V0IG1fdHJhbnNpdGlvbldhdGNocG9pbnRT
ZXQ7CiAKICAgICAgICAgdWludDhfdCBtX2lubGluZUNhcGFjaXR5OwpAQCAtNDgyLDYgKzUyMiw4
IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBBU1NFUlQoZ2xvYmFsRGF0YS5zdHJ1Y3R1cmVT
dHJ1Y3R1cmUpOwogICAgICAgICBTdHJ1Y3R1cmUqIG5ld1N0cnVjdHVyZSA9IG5ldyAoTm90TnVs
bCwgYWxsb2NhdGVDZWxsPFN0cnVjdHVyZT4oZ2xvYmFsRGF0YS5oZWFwKSkgU3RydWN0dXJlKGds
b2JhbERhdGEsIHN0cnVjdHVyZSk7CiAgICAgICAgIG5ld1N0cnVjdHVyZS0+ZmluaXNoQ3JlYXRp
b24oZ2xvYmFsRGF0YSk7CisgICAgICAgIGlmIChzdHJ1Y3R1cmUtPnR5cGVJbmZvKCkuc3RydWN0
dXJlSGFzUmFyZURhdGEoKSkKKyAgICAgICAgICAgIG5ld1N0cnVjdHVyZS0+Y2xvbmVSYXJlRGF0
YUZyb20oZ2xvYmFsRGF0YSwgc3RydWN0dXJlKTsKICAgICAgICAgcmV0dXJuIG5ld1N0cnVjdHVy
ZTsKICAgICB9CiAgICAgICAgIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
U3RydWN0dXJlUmFyZURhdGEuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1N0cnVjdHVyZVJhcmVEYXRhLmNwcAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZVJhcmVEYXRhLmNwcAkocmV2aXNpb24gMCkK
QEAgLTAsMCArMSw4NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNs
dWRlICJTdHJ1Y3R1cmVSYXJlRGF0YS5oIgorCisjaW5jbHVkZSAiSlNDSlNWYWx1ZUlubGluZXMu
aCIKKyNpbmNsdWRlICJKU0NlbGxJbmxpbmVzLmgiCisjaW5jbHVkZSAiSlNTdHJpbmcuaCIKKyNp
bmNsdWRlICJTdHJ1Y3R1cmUuaCIKKworbmFtZXNwYWNlIEpTQyB7CisKK2NvbnN0IENsYXNzSW5m
byBTdHJ1Y3R1cmVSYXJlRGF0YTo6c19pbmZvID0geyAiU3RydWN0dXJlUmFyZURhdGEiLCAwLCAw
LCAwLCBDUkVBVEVfTUVUSE9EX1RBQkxFKFN0cnVjdHVyZVJhcmVEYXRhKSB9OworCitTdHJ1Y3R1
cmUqIFN0cnVjdHVyZVJhcmVEYXRhOjpjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9i
YWxEYXRhLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlwZSkK
K3sKKyAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0
LCBwcm90b3R5cGUsIFR5cGVJbmZvKENvbXBvdW5kVHlwZSwgU3RydWN0dXJlRmxhZ3MpLCAmc19p
bmZvKTsKK30KKworU3RydWN0dXJlUmFyZURhdGEqIFN0cnVjdHVyZVJhcmVEYXRhOjpjcmVhdGUo
SlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBTdHJ1Y3R1cmUqIHByZXZpb3VzKQoreworICAgIFN0
cnVjdHVyZVJhcmVEYXRhKiByYXJlRGF0YSA9IG5ldyAoTm90TnVsbCwgYWxsb2NhdGVDZWxsPFN0
cnVjdHVyZVJhcmVEYXRhPihnbG9iYWxEYXRhLmhlYXApKSBTdHJ1Y3R1cmVSYXJlRGF0YShnbG9i
YWxEYXRhLCBwcmV2aW91cyk7CisgICAgcmFyZURhdGEtPmZpbmlzaENyZWF0aW9uKGdsb2JhbERh
dGEpOworICAgIHJldHVybiByYXJlRGF0YTsKK30KKworU3RydWN0dXJlUmFyZURhdGEqIFN0cnVj
dHVyZVJhcmVEYXRhOjpjbG9uZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIGNvbnN0IFN0cnVj
dHVyZVJhcmVEYXRhKiBvdGhlcikKK3sKKyAgICBTdHJ1Y3R1cmVSYXJlRGF0YSogbmV3UmFyZURh
dGEgPSBuZXcgKE5vdE51bGwsIGFsbG9jYXRlQ2VsbDxTdHJ1Y3R1cmVSYXJlRGF0YT4oZ2xvYmFs
RGF0YS5oZWFwKSkgU3RydWN0dXJlUmFyZURhdGEoZ2xvYmFsRGF0YSwgb3RoZXIpOworICAgIG5l
d1JhcmVEYXRhLT5maW5pc2hDcmVhdGlvbihnbG9iYWxEYXRhKTsKKyAgICByZXR1cm4gbmV3UmFy
ZURhdGE7Cit9CisKK1N0cnVjdHVyZVJhcmVEYXRhOjpTdHJ1Y3R1cmVSYXJlRGF0YShKU0dsb2Jh
bERhdGEmIGdsb2JhbERhdGEsIFN0cnVjdHVyZSogcHJldmlvdXMpCisgICAgOiBKU0NlbGwoZ2xv
YmFsRGF0YSwgZ2xvYmFsRGF0YS5zdHJ1Y3R1cmVSYXJlRGF0YVN0cnVjdHVyZS5nZXQoKSkKK3sK
KyAgICBpZiAocHJldmlvdXMpCisgICAgICAgIG1fcHJldmlvdXMuc2V0KGdsb2JhbERhdGEsIHRo
aXMsIHByZXZpb3VzKTsKK30KKworU3RydWN0dXJlUmFyZURhdGE6OlN0cnVjdHVyZVJhcmVEYXRh
KEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgY29uc3QgU3RydWN0dXJlUmFyZURhdGEqIG90aGVy
KQorICAgIDogSlNDZWxsKGdsb2JhbERhdGEsIG90aGVyLT5zdHJ1Y3R1cmUoKSkKK3sKKyAgICBp
ZiAob3RoZXItPnByZXZpb3VzSUQoKSkKKyAgICAgICAgbV9wcmV2aW91cy5zZXQoZ2xvYmFsRGF0
YSwgdGhpcywgb3RoZXItPnByZXZpb3VzSUQoKSk7CisgICAgaWYgKG90aGVyLT5vYmplY3RUb1N0
cmluZ1ZhbHVlKCkpCisgICAgICAgIG1fb2JqZWN0VG9TdHJpbmdWYWx1ZS5zZXQoZ2xvYmFsRGF0
YSwgdGhpcywgb3RoZXItPm9iamVjdFRvU3RyaW5nVmFsdWUoKSk7Cit9CisKK3ZvaWQgU3RydWN0
dXJlUmFyZURhdGE6OnZpc2l0Q2hpbGRyZW4oSlNDZWxsKiBjZWxsLCBTbG90VmlzaXRvciYgdmlz
aXRvcikKK3sKKyAgICBTdHJ1Y3R1cmVSYXJlRGF0YSogdGhpc09iamVjdCA9IGpzQ2FzdDxTdHJ1
Y3R1cmVSYXJlRGF0YSo+KGNlbGwpOworICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFModGhp
c09iamVjdCwgJnNfaW5mbyk7CisgICAgQVNTRVJUKHRoaXNPYmplY3QtPnN0cnVjdHVyZSgpLT50
eXBlSW5mbygpLm92ZXJyaWRlc1Zpc2l0Q2hpbGRyZW4oKSk7CisKKyAgICBKU0NlbGw6OnZpc2l0
Q2hpbGRyZW4odGhpc09iamVjdCwgdmlzaXRvcik7CisgICAgdmlzaXRvci5hcHBlbmQoJnRoaXNP
YmplY3QtPm1fcHJldmlvdXMpOworICAgIHZpc2l0b3IuYXBwZW5kKCZ0aGlzT2JqZWN0LT5tX29i
amVjdFRvU3RyaW5nVmFsdWUpOworfQorCit9IC8vIG5hbWVzcGFjZSBKU0MKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZVJhcmVEYXRhLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlUmFyZURhdGEuaAkocmV2
aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZVJhcmVE
YXRhLmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNjggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVm
IFN0cnVjdHVyZVJhcmVEYXRhX2gKKyNkZWZpbmUgU3RydWN0dXJlUmFyZURhdGFfaAorCisjaW5j
bHVkZSAiQ2xhc3NJbmZvLmgiCisjaW5jbHVkZSAiSlNDZWxsLmgiCisjaW5jbHVkZSAiSlNUeXBl
SW5mby5oIgorCituYW1lc3BhY2UgSlNDIHsKKworY2xhc3MgU3RydWN0dXJlOworCitjbGFzcyBT
dHJ1Y3R1cmVSYXJlRGF0YSA6IHB1YmxpYyBKU0NlbGwgeworICAgIGZyaWVuZCBjbGFzcyBTdHJ1
Y3R1cmU7CitwdWJsaWM6CisgICAgc3RhdGljIFN0cnVjdHVyZVJhcmVEYXRhKiBjcmVhdGUoSlNH
bG9iYWxEYXRhJiwgU3RydWN0dXJlKik7CisgICAgc3RhdGljIFN0cnVjdHVyZVJhcmVEYXRhKiBj
bG9uZShKU0dsb2JhbERhdGEmLCBjb25zdCBTdHJ1Y3R1cmVSYXJlRGF0YSogb3RoZXIpOworCisg
ICAgc3RhdGljIHZvaWQgdmlzaXRDaGlsZHJlbihKU0NlbGwqLCBTbG90VmlzaXRvciYpOworCisg
ICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKEpTR2xvYmFsRGF0YSYsIEpTR2xv
YmFsT2JqZWN0KiwgSlNWYWx1ZSBwcm90b3R5cGUpOworCisgICAgU3RydWN0dXJlKiBwcmV2aW91
c0lEKCkgY29uc3Q7CisgICAgdm9pZCBzZXRQcmV2aW91c0lEKEpTR2xvYmFsRGF0YSYsIFN0cnVj
dHVyZSogdHJhbnNpdGlvbiwgU3RydWN0dXJlKik7CisgICAgdm9pZCBjbGVhclByZXZpb3VzSUQo
KTsKKworICAgIEpTU3RyaW5nKiBvYmplY3RUb1N0cmluZ1ZhbHVlKCkgY29uc3Q7CisgICAgdm9p
ZCBzZXRPYmplY3RUb1N0cmluZ1ZhbHVlKEpTR2xvYmFsRGF0YSYsIGNvbnN0IEpTQ2VsbCogb3du
ZXIsIEpTU3RyaW5nKiB2YWx1ZSk7CisKKyAgICBzdGF0aWMgSlNfRVhQT1JUREFUQSBjb25zdCBD
bGFzc0luZm8gc19pbmZvOworCitwcml2YXRlOgorICAgIFN0cnVjdHVyZVJhcmVEYXRhKEpTR2xv
YmFsRGF0YSYsIFN0cnVjdHVyZSopOworICAgIFN0cnVjdHVyZVJhcmVEYXRhKEpTR2xvYmFsRGF0
YSYsIGNvbnN0IFN0cnVjdHVyZVJhcmVEYXRhKik7CisKKyAgICBzdGF0aWMgY29uc3QgdW5zaWdu
ZWQgU3RydWN0dXJlRmxhZ3MgPSBPdmVycmlkZXNWaXNpdENoaWxkcmVuIHwgSlNDZWxsOjpTdHJ1
Y3R1cmVGbGFnczsKKworICAgIFdyaXRlQmFycmllcjxTdHJ1Y3R1cmU+IG1fcHJldmlvdXM7Cisg
ICAgV3JpdGVCYXJyaWVyPEpTU3RyaW5nPiBtX29iamVjdFRvU3RyaW5nVmFsdWU7Cit9OworCit9
IC8vIG5hbWVzcGFjZSBKU0MKKworI2VuZGlmIC8vIFN0cnVjdHVyZVJhcmVEYXRhX2gKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZVJhcmVEYXRhSW5saW5lcy5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZVJh
cmVEYXRhSW5saW5lcy5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvU3RydWN0dXJlUmFyZURhdGFJbmxpbmVzLmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEs
NjAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFN0cnVjdHVyZVJhcmVEYXRhSW5saW5lc19oCisj
ZGVmaW5lIFN0cnVjdHVyZVJhcmVEYXRhSW5saW5lc19oCisKKyNpbmNsdWRlICJTdHJ1Y3R1cmVS
YXJlRGF0YS5oIgorCituYW1lc3BhY2UgSlNDIHsKKworaW5saW5lIFN0cnVjdHVyZSogU3RydWN0
dXJlUmFyZURhdGE6OnByZXZpb3VzSUQoKSBjb25zdAoreworICAgIHJldHVybiBtX3ByZXZpb3Vz
LmdldCgpOworfQorCitpbmxpbmUgdm9pZCBTdHJ1Y3R1cmVSYXJlRGF0YTo6c2V0UHJldmlvdXNJ
RChKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIFN0cnVjdHVyZSogdHJhbnNpdGlvbiwgU3RydWN0
dXJlKiBzdHJ1Y3R1cmUpCit7CisgICAgbV9wcmV2aW91cy5zZXQoZ2xvYmFsRGF0YSwgdHJhbnNp
dGlvbiwgc3RydWN0dXJlKTsKK30KKworaW5saW5lIHZvaWQgU3RydWN0dXJlUmFyZURhdGE6OmNs
ZWFyUHJldmlvdXNJRCgpCit7CisgICAgbV9wcmV2aW91cy5jbGVhcigpOworfQorCitpbmxpbmUg
SlNTdHJpbmcqIFN0cnVjdHVyZVJhcmVEYXRhOjpvYmplY3RUb1N0cmluZ1ZhbHVlKCkgY29uc3QK
K3sKKyAgICByZXR1cm4gbV9vYmplY3RUb1N0cmluZ1ZhbHVlLmdldCgpOworfQorCitpbmxpbmUg
dm9pZCBTdHJ1Y3R1cmVSYXJlRGF0YTo6c2V0T2JqZWN0VG9TdHJpbmdWYWx1ZShKU0dsb2JhbERh
dGEmIGdsb2JhbERhdGEsIGNvbnN0IEpTQ2VsbCogb3duZXIsIEpTU3RyaW5nKiB2YWx1ZSkKK3sK
KyAgICBtX29iamVjdFRvU3RyaW5nVmFsdWUuc2V0KGdsb2JhbERhdGEsIG93bmVyLCB2YWx1ZSk7
Cit9CisKK30gLy8gbmFtZXNwYWNlIEpTQworCisjZW5kaWYgLy8gU3RydWN0dXJlUmFyZURhdGFJ
bmxpbmVzX2gK
</data>
<flag name="review"
          id="205462"
          type_id="1"
          status="+"
          setter="oliver"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>186153</attachid>
            <date>2013-02-01 14:56:32 -0800</date>
            <delta_ts>2013-02-01 14:56:32 -0800</delta_ts>
            <desc>perf results</desc>
            <filename>ToT_New_SunSpiderV8SpiderOctaneKrakenJSRegress_Marks-Mac-Pro_20130201_1448_report.txt</filename>
            <type>text/plain</type>
            <size>19536</size>
            <attacher name="Mark Hahnenberg">mhahnenberg</attacher>
            
              <data encoding="base64">QmVuY2htYXJrIHJlcG9ydCBmb3IgU3VuU3BpZGVyLCBWOFNwaWRlciwgT2N0YW5lLCBLcmFrZW4s
IGFuZCBKU1JlZ3Jlc3Mgb24gTWFya3MtTWFjLVBybyAoTWFjUHJvNSwxKS4KClZNcyB0ZXN0ZWQ6
CiJUb1QiIGF0IC9Wb2x1bWVzL0RhdGEvV2ViS2l0LXN2bi0wMS9PcGVuU291cmNlL1dlYktpdEJ1
aWxkL1JlbGVhc2UvanNjIChyMTQxNjQ0KQoiTmV3IiBhdCAvVm9sdW1lcy9EYXRhL1dlYktpdC1z
dm4tMDQvT3BlblNvdXJjZS9XZWJLaXRCdWlsZC9SZWxlYXNlL2pzYyAocjE0MTY0NCkKCkNvbGxl
Y3RlZCAxMiBzYW1wbGVzIHBlciBiZW5jaG1hcmsvVk0sIHdpdGggNCBWTSBpbnZvY2F0aW9ucyBw
ZXIgYmVuY2htYXJrLiBFbWl0dGVkIGEgY2FsbCB0byBnYygpIGJldHdlZW4gc2FtcGxlCm1lYXN1
cmVtZW50cy4gVXNlZCAxIGJlbmNobWFyayBpdGVyYXRpb24gcGVyIFZNIGludm9jYXRpb24gZm9y
IHdhcm0tdXAuIFVzZWQgdGhlIGpzYy1zcGVjaWZpYyBwcmVjaXNlVGltZSgpIGZ1bmN0aW9uIHRv
IGdldAptaWNyb3NlY29uZC1sZXZlbCB0aW1pbmcuIFJlcG9ydGluZyBiZW5jaG1hcmsgZXhlY3V0
aW9uIHRpbWVzIHdpdGggOTUlIGNvbmZpZGVuY2UgaW50ZXJ2YWxzIGluIG1pbGxpc2Vjb25kcy4K
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
VG9UICAgICAgICAgICAgICAgICAgICAgICBOZXcgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgClN1blNwaWRlcjoKICAgM2QtY3ViZSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgOC4wNzI4Ky0wLjEwOTMgICAgICAgICAgICA4LjAwNjMrLTAuMTE2
NyAgICAgICAgCiAgIDNkLW1vcnBoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDcuOTM3OSstMC4xMDgwICAgICAgICAgICAgNy45MjI5Ky0wLjA5NjUgICAgICAgIAogICAz
ZC1yYXl0cmFjZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA4LjkyNTArLTAu
MTIxNiAgICAgICAgICAgIDguODU4OCstMC4wOTg3ICAgICAgICAKICAgYWNjZXNzLWJpbmFyeS10
cmVlcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMS41Mzk4Ky0wLjAwNjQgICAgID8gICAg
ICAxLjU0MjIrLTAuMDA0MSAgICAgICAgPwogICBhY2Nlc3MtZmFubmt1Y2ggICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA2LjYyMDArLTAuMTMxNiAgICAgICAgICAgIDYuNjA5OCstMC4x
MzAzICAgICAgICAKICAgYWNjZXNzLW5ib2R5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgMy44OTQ2Ky0wLjAwNjYgICAgICAgICAgICAzLjg3ODcrLTAuMDMyMCAgICAgICAgCiAg
IGFjY2Vzcy1uc2lldmUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQuMTY2MSst
MC4wNTY4ICAgICA/ICAgICAgNC4xODc2Ky0wLjA1MzEgICAgICAgID8KICAgYml0b3BzLTNiaXQt
Yml0cy1pbi1ieXRlICAgICAgICAgICAgICAgICAgICAgICAgMS40OTc4Ky0wLjAwODIgICAgICAg
ICAgICAxLjQ5NjYrLTAuMDA4MSAgICAgICAgCiAgIGJpdG9wcy1iaXRzLWluLWJ5dGUgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDUuNzY1NistMC4wNzA1ICAgICAgICAgICAgNS43MDc2Ky0w
LjA2OTMgICAgICAgICAgbWlnaHQgYmUgMS4wMTAyeCBmYXN0ZXIKICAgYml0b3BzLWJpdHdpc2Ut
YW5kICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMi4xNTQ3Ky0wLjA0MjQgICAgICAgICAg
ICAyLjEzOTYrLTAuMDc1NiAgICAgICAgCiAgIGJpdG9wcy1uc2lldmUtYml0cyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDMuNTUxNCstMC4wMjc0ICAgICA/ICAgICAgMy42MDE5Ky0wLjA3
MzkgICAgICAgID8gbWlnaHQgYmUgMS4wMTQyeCBzbG93ZXIKICAgY29udHJvbGZsb3ctcmVjdXJz
aXZlICAgICAgICAgICAgICAgICAgICAgICAgICAgMi41MjgxKy0wLjA4NjQgICAgICAgICAgICAy
LjUyNDArLTAuMDg3MiAgICAgICAgCiAgIGNyeXB0by1hZXMgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDYuNjUyNystMC4xMDMxICAgICA/ICAgICAgNi42NjI5Ky0wLjEwNjcg
ICAgICAgID8KICAgY3J5cHRvLW1kNSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgMy4zNTg0Ky0wLjAxNzIgICAgIF4gICAgICAzLjIxOTkrLTAuMDEzMSAgICAgICAgXiBkZWZp
bml0ZWx5IDEuMDQzMHggZmFzdGVyCiAgIGNyeXB0by1zaGExICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDIuNzE1OCstMC4wMTI0ICAgICAgICAgICAgMi43MTUyKy0wLjAxMDIg
ICAgICAgIAogICBkYXRlLWZvcm1hdC10b2Z0ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDEyLjczNjMrLTAuMTUzMyAgICAgPyAgICAgMTIuNzYyOSstMC4xNjY2ICAgICAgICA/CiAgIGRh
dGUtZm9ybWF0LXhwYXJiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTIuODA2NystMC4y
ODQyICAgICAhICAgICAxMy42NTA5Ky0wLjE0MDAgICAgICAgICEgZGVmaW5pdGVseSAxLjA2NTl4
IHNsb3dlcgogICBtYXRoLWNvcmRpYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAzLjI2NDgrLTAuMDIzMyAgICAgICAgICAgIDMuMjY0MCstMC4wMjI2ICAgICAgICAKICAgbWF0
aC1wYXJ0aWFsLXN1bXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMC4yOTY3Ky0wLjA4
MTAgICAgID8gICAgIDEwLjMyNjQrLTAuMTA3MCAgICAgICAgPwogICBtYXRoLXNwZWN0cmFsLW5v
cm0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyLjYyODMrLTAuMDA4OSAgICAgICAgICAg
IDIuNjIzNSstMC4wMTE2ICAgICAgICAKICAgcmVnZXhwLWRuYSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgOC41NjcyKy0wLjEwMDIgICAgICAgICAgICA4LjU2NDErLTAuMTE2
NyAgICAgICAgCiAgIHN0cmluZy1iYXNlNjQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDQuMzkzNCstMC4wNjc5ICAgICA/ICAgICAgNC40MjgyKy0wLjA0ODUgICAgICAgID8KICAg
c3RyaW5nLWZhc3RhICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOC42MDM3Ky0w
LjEzMTggICAgICAgICAgICA4LjUzMDQrLTAuMTE4OSAgICAgICAgCiAgIHN0cmluZy10YWdjbG91
ZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTIuNDg3NSstMC4yMDE0ICAgICAgICAg
ICAxMi4yOTAxKy0wLjE0OTEgICAgICAgICAgbWlnaHQgYmUgMS4wMTYxeCBmYXN0ZXIKICAgc3Ry
aW5nLXVucGFjay1jb2RlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyMS41NTE4Ky0wLjE3
MTYgICAgICAgICAgIDIxLjI2MTkrLTAuMTM1NCAgICAgICAgICBtaWdodCBiZSAxLjAxMzZ4IGZh
c3RlcgogICBzdHJpbmctdmFsaWRhdGUtaW5wdXQgICAgICAgICAgICAgICAgICAgICAgICAgICA2
LjQ2NDQrLTAuMTAyNCAgICAgICAgICAgIDYuMzg2NistMC4wODQ4ICAgICAgICAgIG1pZ2h0IGJl
IDEuMDEyMnggZmFzdGVyCgogICA8YXJpdGhtZXRpYz4gKiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA2LjY2MDgrLTAuMDUxNSAgICAgICAgICAgIDYuNjYwMSstMC4wNDUxICAgICAg
ICAgIG1pZ2h0IGJlIDEuMDAwMXggZmFzdGVyCiAgIDxnZW9tZXRyaWM+ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDUuMzI3MystMC4wMjc2ICAgICAgICAgICAgNS4zMTkxKy0w
LjAyMjQgICAgICAgICAgbWlnaHQgYmUgMS4wMDE1eCBmYXN0ZXIKICAgPGhhcm1vbmljPiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNC4yMzI4Ky0wLjAxMjAgICAgICAgICAg
ICA0LjIyMjArLTAuMDE1MiAgICAgICAgICBtaWdodCBiZSAxLjAwMjV4IGZhc3RlcgoKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUb1QgICAg
ICAgICAgICAgICAgICAgICAgIE5ldyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAKVjhTcGlkZXI6CiAgIGNyeXB0byAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgNjkuMzk5MSstMC4xNDExICAgICAgICAgICA2OS4yNzAwKy0wLjEzNDMgICAgICAg
IAogICBkZWx0YWJsdWUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTA3LjM4
MzcrLTAuMjMzNSAgICAgPyAgICAxMDcuNjY1NSstMC4zNTU5ICAgICAgICA/CiAgIGVhcmxleS1i
b3llciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNjkuODg1OCstMC4xODQyICAg
ICAgICAgICA2OS43OTcxKy0wLjIzNTUgICAgICAgIAogICByYXl0cmFjZSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDU0LjUwNzUrLTAuNTUzOSAgICAgICAgICAgNTQuMTMx
OCstMC4xNTE1ICAgICAgICAKICAgcmVnZXhwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA4NC4xMDMzKy0wLjM5MTcgICAgICEgICAgIDg1LjM3NDIrLTAuNDM3NyAgICAg
ICAgISBkZWZpbml0ZWx5IDEuMDE1MXggc2xvd2VyCiAgIHJpY2hhcmRzICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgOTUuNzc0MistMC4zNTEwICAgICA/ICAgICA5NS44MDU1
Ky0wLjMyNjggICAgICAgID8KICAgc3BsYXkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA0Ni43NzkyKy0wLjI4MTcgICAgID8gICAgIDQ3LjA4MDIrLTAuMzgyMCAgICAg
ICAgPwoKICAgPGFyaXRobWV0aWM+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA3
NS40MDQ3Ky0wLjExMDMgICAgID8gICAgIDc1LjU4OTIrLTAuMTEyMCAgICAgICAgPyBtaWdodCBi
ZSAxLjAwMjR4IHNsb3dlcgogICA8Z2VvbWV0cmljPiAqICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDcyLjY2MjQrLTAuMTE5MSAgICAgPyAgICAgNzIuODExNystMC4xMjE5ICAgICAg
ICA/IG1pZ2h0IGJlIDEuMDAyMXggc2xvd2VyCiAgIDxoYXJtb25pYz4gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgNjkuOTM1NystMC4xMzY2ICAgICA/ICAgICA3MC4wNTU3Ky0w
LjE0MTkgICAgICAgID8gbWlnaHQgYmUgMS4wMDE3eCBzbG93ZXIKCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVG9UICAgICAgICAgICAgICAg
ICAgICAgICBOZXcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCk9jdGFu
ZSBhbmQgVjh2NzoKICAgZW5jcnlwdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAwLjM3MTM0Ky0wLjAwMTE0ICAgICAgICAgIDAuMzY5OTQrLTAuMDAwMjggICAgICAgCiAg
IGRlY3J5cHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNi43NDY0Mist
MC4wMTU2MSAgICA/ICAgICA2Ljc1MzE3Ky0wLjAxNzkyICAgICAgID8KICAgZGVsdGFibHVlICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB4MiAgICAgICAwLjQ5MTEwKy0wLjAwMDYyICAgID8g
ICAgIDAuNDkzOTkrLTAuMDAyMzAgICAgICAgPwogICBlYXJsZXkgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDAuNzM0MzYrLTAuMDA1NDggICAgISAgICAgMC43NDgxOCst
MC4wMDUzNyAgICAgICAhIGRlZmluaXRlbHkgMS4wMTg4eCBzbG93ZXIKICAgYm95ZXIgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEwLjc0MzM1Ky0wLjAzNzE2ICAgID8g
ICAgMTAuNzU1NDYrLTAuMDM4NTQgICAgICAgPwogICByYXl0cmFjZSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHgyICAgICAgIDMuNzgyNTgrLTAuMDEwMTIgICAgPyAgICAgMy43OTI5MSst
MC4wMDY0NSAgICAgICA/CiAgIHJlZ2V4cCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
eDIgICAgICAyNS4yNzcxMystMC4yMjAyMCAgICA/ICAgIDI1LjU2MjQzKy0wLjE0MzA4ICAgICAg
ID8gbWlnaHQgYmUgMS4wMTEzeCBzbG93ZXIKICAgcmljaGFyZHMgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB4MiAgICAgICAwLjI0NTA5Ky0wLjAwMDc0ICAgIF4gICAgIDAuMjQyOTkrLTAu
MDAwNDQgICAgICAgXiBkZWZpbml0ZWx5IDEuMDA4NnggZmFzdGVyCiAgIHNwbGF5ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgeDIgICAgICAgMC42MDU0MSstMC4wMTUwNCAgICA/ICAg
ICAwLjYwNzc1Ky0wLjAxODkwICAgICAgID8KICAgbmF2aWVyLXN0b2tlcyAgICAgICAgICAgICAg
ICAgICAgICAgICB4MiAgICAgICA5LjU5NDA2Ky0wLjAxNjY1ICAgID8gICAgIDkuNjA1NTgrLTAu
MDIxMzkgICAgICAgPwogICBjbG9zdXJlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDAuNDU5ODUrLTAuMDAxODEgICAgPyAgICAgMC40NjEyMSstMC4wMDIzNCAgICAgICA/
CiAgIGpxdWVyeSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNi4xMTQ0
MSstMC4wNjcxOSAgICA/ICAgICA2LjE1OTMxKy0wLjA3NTQ2ICAgICAgID8KICAgZ2JlbXUgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4MiAgICAgMjExLjMyMzI0Ky0xMS4zNTI1MiAg
ICAgICAyMDkuMTc1NjUrLTEyLjczMjg1ICAgICAgICBtaWdodCBiZSAxLjAxMDN4IGZhc3Rlcgog
ICBib3gyZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHgyICAgICAgMjkuMTgxNzYr
LTAuMzYxNjcgICAgPyAgICAyOS40ODY0NistMC4zNzQ4NiAgICAgICA/IG1pZ2h0IGJlIDEuMDEw
NHggc2xvd2VyCgpWOHY3OgogICA8YXJpdGhtZXRpYz4gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDYuMTYxNjQrLTAuMDI5NjkgICAgPyAgICAgNi4yMDIzOCstMC4wMTg5MyAgICAg
ICA/IG1pZ2h0IGJlIDEuMDA2Nnggc2xvd2VyCiAgIDxnZW9tZXRyaWM+ICogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgMi4wMzc0NCstMC4wMDY4NSAgICA/ICAgICAyLjA0MzY5Ky0w
LjAwODE3ICAgICAgID8gbWlnaHQgYmUgMS4wMDMxeCBzbG93ZXIKICAgPGhhcm1vbmljPiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLjc3NDcxKy0wLjAwMjk3ICAgICAgICAg
IDAuNzc0MDMrLTAuMDAzODkgICAgICAgICBtaWdodCBiZSAxLjAwMDl4IGZhc3RlcgoKT2N0YW5l
IGluY2x1ZGluZyBWOHY3OgogICA8YXJpdGhtZXRpYz4gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgMjYuNjQ0MTErLTEuMDAzNjcgICAgICAgICAyNi41MDgzMSstMS4xMzYxOSAgICAg
ICAgIG1pZ2h0IGJlIDEuMDA1MXggZmFzdGVyCiAgIDxnZW9tZXRyaWM+ICogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgMy44ODY5MystMC4wMTUzMiAgICA/ICAgICAzLjg5NzE5Ky0w
LjAyMzk2ICAgICAgID8gbWlnaHQgYmUgMS4wMDI2eCBzbG93ZXIKICAgPGhhcm1vbmljPiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLjk1MzY1Ky0wLjAwMzIwICAgICAgICAg
IDAuOTUzMjMrLTAuMDA0MzYgICAgICAgICBtaWdodCBiZSAxLjAwMDR4IGZhc3RlcgoKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUb1QgICAg
ICAgICAgICAgICAgICAgICAgIE5ldyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAKS3Jha2VuOgogICBhaS1hc3RhciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDQ0NS40NjYrLTEuNTE2ICAgICAgICAgICAgNDQxLjY4MSstNS4zOTIgICAgICAgICAK
ICAgYXVkaW8tYmVhdC1kZXRlY3Rpb24gICAgICAgICAgICAgICAgICAgICAgICAgICAyMDAuNzgx
Ky0xLjAzNCAgICAgICAgICAgIDIwMC4xNjgrLTEuMDYzICAgICAgICAgCiAgIGF1ZGlvLWRmdCAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjYxLjU5NSstMy4xNTUgICAgICA/
ICAgICAyNjIuNjQzKy0zLjY4OCAgICAgICAgID8KICAgYXVkaW8tZmZ0ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAxMTcuOTIxKy0wLjE3MCAgICAgICAgICAgIDExNy44NDYr
LTAuMTI4ICAgICAgICAgCiAgIGF1ZGlvLW9zY2lsbGF0b3IgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgMTkzLjAyOCstMC42NTUgICAgICA/ICAgICAxOTMuODExKy0wLjg5NiAgICAgICAg
ID8KICAgaW1hZ2luZy1kYXJrcm9vbSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyMzQu
Nzc3Ky0yLjA5OCAgICAgID8gICAgIDIzNC44NzArLTEuNTE5ICAgICAgICAgPwogICBpbWFnaW5n
LWRlc2F0dXJhdGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEzMC4zMzkrLTAuNjU0ICAg
ICAgICAgICAgMTMwLjEwMCstMC40NTUgICAgICAgICAKICAgaW1hZ2luZy1nYXVzc2lhbi1ibHVy
ICAgICAgICAgICAgICAgICAgICAgICAgICAzMzMuNzg5Ky0xLjEwNCAgICAgICAgICAgIDMzMy40
OTkrLTAuOTI5ICAgICAgICAgCiAgIGpzb24tcGFyc2UtZmluYW5jaWFsICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDY1LjcyNystMC40MDQgICAgICAhICAgICAgNjYuNDIxKy0wLjE0MCAgICAg
ICAgICEgZGVmaW5pdGVseSAxLjAxMDZ4IHNsb3dlcgogICBqc29uLXN0cmluZ2lmeS10aW5kZXJi
b3ggICAgICAgICAgICAgICAgICAgICAgICA4NS40MTIrLTAuMzc0ICAgICAgXiAgICAgIDc5Ljgw
MSstMC4yODEgICAgICAgICBeIGRlZmluaXRlbHkgMS4wNzAzeCBmYXN0ZXIKICAgc3RhbmZvcmQt
Y3J5cHRvLWFlcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgODIuNDE2Ky0wLjM4OSAgICAg
ICAgICAgICA4Mi4wMDMrLTAuMzc1ICAgICAgICAgCiAgIHN0YW5mb3JkLWNyeXB0by1jY20gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDg2Ljg5OSstMy41MDAgICAgICAgICAgICAgODYuODA4
Ky0zLjQ1OSAgICAgICAgIAogICBzdGFuZm9yZC1jcnlwdG8tcGJrZGYyICAgICAgICAgICAgICAg
ICAgICAgICAgIDIzNi4yNjYrLTMuOTQ5ICAgICAgXiAgICAgMjI4LjQ5NystMS4wNjkgICAgICAg
ICBeIGRlZmluaXRlbHkgMS4wMzQweCBmYXN0ZXIKICAgc3RhbmZvcmQtY3J5cHRvLXNoYTI1Ni1p
dGVyYXRpdmUgICAgICAgICAgICAgICAgOTUuMTg5Ky0wLjI5OSAgICAgID8gICAgICA5NS4yNzUr
LTAuMjExICAgICAgICAgPwoKICAgPGFyaXRobWV0aWM+ICogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAxODMuNTQzKy0wLjQ1OSAgICAgIF4gICAgIDE4Mi4zODcrLTAuNjEwICAgICAg
ICAgXiBkZWZpbml0ZWx5IDEuMDA2M3ggZmFzdGVyCiAgIDxnZW9tZXRyaWM+ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgMTU1LjY2OCstMC41NjQgICAgICBeICAgICAxNTQuNTM0
Ky0wLjQ2NiAgICAgICAgIF4gZGVmaW5pdGVseSAxLjAwNzN4IGZhc3RlcgogICA8aGFybW9uaWM+
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEzMy4zNTUrLTAuNzE1ICAgICAg
ICAgICAgMTMyLjIzNSstMC41NjQgICAgICAgICAgIG1pZ2h0IGJlIDEuMDA4NXggZmFzdGVyCgog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRv
VCAgICAgICAgICAgICAgICAgICAgICAgTmV3ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIApKU1JlZ3Jlc3M6CiAgIGFkYXB0LXRvLWRvdWJsZS1kaXZpZGUgICAgICAgICAg
ICAgICAgICAgICAgICAgNzIuNjE0NSstMC4xOTczICAgICAgICAgICA3Mi41MjQyKy0wLjA4NzEg
ICAgICAgIAogICBhbGlhc2VkLWFyZ3VtZW50cy1nZXRieXZhbCAgICAgICAgICAgICAgICAgICAg
ICAwLjgzODcrLTAuMDA4MyAgICAgICAgICAgIDAuODM3MCstMC4wMDg0ICAgICAgICAKICAgYWxs
b2NhdGUtYmlnLW9iamVjdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMS43NzQ4Ky0wLjAz
OTggICAgICAgICAgICAxLjc1NzMrLTAuMDMwMCAgICAgICAgICBtaWdodCBiZSAxLjAxMDB4IGZh
c3RlcgogICBhcml0eS1taXNtYXRjaC1pbmxpbmluZyAgICAgICAgICAgICAgICAgICAgICAgICAw
LjYxOTQrLTAuMDA5MyAgICAgICAgICAgIDAuNjE3MistMC4wMDk1ICAgICAgICAKICAgYXJyYXkt
YWNjZXNzLXBvbHltb3JwaGljLXN0cnVjdHVyZSAgICAgICAgICAgICA1My40NDcyKy0wLjMzODcg
ICAgICAgICAgIDUzLjEzMzYrLTAuNTIzOSAgICAgICAgCiAgIGFycmF5LXdpdGgtZG91YmxlLWFk
ZCAgICAgICAgICAgICAgICAgICAgICAgICAgIDQuNzk5MistMC4wNjk1ICAgICA/ICAgICAgNC44
NTY0Ky0wLjAxMDAgICAgICAgID8gbWlnaHQgYmUgMS4wMTE5eCBzbG93ZXIKICAgYXJyYXktd2l0
aC1kb3VibGUtaW5jcmVtZW50ICAgICAgICAgICAgICAgICAgICAgMy4zNDk0Ky0wLjA3NzUgICAg
ID8gICAgICAzLjUwNzIrLTAuMDkwMSAgICAgICAgPyBtaWdodCBiZSAxLjA0NzF4IHNsb3dlcgog
ICBhcnJheS13aXRoLWRvdWJsZS1tdWwtYWRkICAgICAgICAgICAgICAgICAgICAgICA1Ljk3MjIr
LTAuMjM5NCAgICAgICAgICAgIDUuOTU4MystMC4yMjM2ICAgICAgICAKICAgYXJyYXktd2l0aC1k
b3VibGUtc3VtICAgICAgICAgICAgICAgICAgICAgICAgICAgNi40MjMzKy0wLjA2NjggICAgID8g
ICAgICA2LjQ2NzQrLTAuMDgzMSAgICAgICAgPwogICBhcnJheS13aXRoLWludDMyLWFkZC1zdWIg
ICAgICAgICAgICAgICAgICAgICAgICA4LjYxMjMrLTAuMDgwNCAgICAgICAgICAgIDguNTY4NCst
MC4wNTc4ICAgICAgICAKICAgYXJyYXktd2l0aC1pbnQzMi1vci1kb3VibGUtc3VtICAgICAgICAg
ICAgICAgICAgNi42MTY3Ky0wLjA3NzYgICAgICAgICAgICA2LjUxODArLTAuMDc4MiAgICAgICAg
ICBtaWdodCBiZSAxLjAxNTF4IGZhc3RlcgogICBiaWctaW50LW11bCAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA0LjA1NjArLTAuMDI3MiAgICAgICAgICAgIDQuMDQ2NSstMC4w
MzIwICAgICAgICAKICAgYm9vbGVhbi10ZXN0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgMy43NTAxKy0wLjAwNTMgICAgID8gICAgICAzLjc2MjIrLTAuMDE4OSAgICAgICAgPwog
ICBjYXN0LWludC10by1kb3VibGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDExLjcyNjAr
LTAuMDg2MSAgICAgPyAgICAgMTEuNzU3MistMC4xMDk4ICAgICAgICA/CiAgIGNlbGwtYXJndW1l
bnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTEuOTQ3NistMC4xMzY4ICAgICA/
ICAgICAxMS45NzIyKy0wLjEyODQgICAgICAgID8KICAgY2ZnLXNpbXBsaWZ5ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgMy4xMzI1Ky0wLjAwNzYgICAgICAgICAgICAzLjEzMTgr
LTAuMDA3OSAgICAgICAgCiAgIGNtcGVxLW9iai10by1vYmotb3RoZXIgICAgICAgICAgICAgICAg
ICAgICAgICAgMTAuMzIzNCstMC4yMTg5ICAgICA/ICAgICAxMC41NDUzKy0wLjE0MDUgICAgICAg
ID8gbWlnaHQgYmUgMS4wMjE1eCBzbG93ZXIKICAgY29uc3RhbnQtdGVzdCAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgNi45MDU2Ky0wLjA5NTkgICAgICAgICAgICA2LjgzMTUrLTAu
MDgzMSAgICAgICAgICBtaWdodCBiZSAxLjAxMDh4IGZhc3RlcgogICBkaXJlY3QtYXJndW1lbnRz
LWdldGJ5dmFsICAgICAgICAgICAgICAgICAgICAgICAwLjc1ODUrLTAuMDA5MiAgICAgPyAgICAg
IDAuNzU5NSstMC4wMDgxICAgICAgICA/CiAgIGRvdWJsZS1wb2xsdXRpb24tZ2V0Ynl2YWwgICAg
ICAgICAgICAgICAgICAgICAgIDguNzkxMystMC4wNTQyICAgICA/ICAgICAgOC44NDM1Ky0wLjA5
MzggICAgICAgID8KICAgZG91YmxlLXBvbGx1dGlvbi1wdXRieW9mZnNldCAgICAgICAgICAgICAg
ICAgICAgNC4zMzc1Ky0wLjAxNjkgICAgICAgICAgICA0LjMzMTErLTAuMDEyNyAgICAgICAgCiAg
IGV4dGVybmFsLWFyZ3VtZW50cy1nZXRieXZhbCAgICAgICAgICAgICAgICAgICAgIDEuNzU1Mist
MC4wMTI3ICAgICA/ICAgICAgMS43NjgyKy0wLjAxMDkgICAgICAgID8KICAgZXh0ZXJuYWwtYXJn
dW1lbnRzLXB1dGJ5dmFsICAgICAgICAgICAgICAgICAgICAgMi42MTYzKy0wLjAxODUgICAgID8g
ICAgICAyLjYxOTUrLTAuMDE1NSAgICAgICAgPwogICBGbG9hdDMyQXJyYXktbWF0cml4LW11bHQg
ICAgICAgICAgICAgICAgICAgICAgIDExLjI3NzErLTAuMTQ0MyAgICAgICAgICAgMTAuOTk0OCst
MC4yMDY0ICAgICAgICAgIG1pZ2h0IGJlIDEuMDI1N3ggZmFzdGVyCiAgIGZvbGQtZG91YmxlLXRv
LWludCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTkuODYzOSstMC4yMzE5ICAgICA/ICAg
ICAxOS45MDQwKy0wLjM2MDMgICAgICAgID8KICAgZnVuY3Rpb24tZG90LWFwcGx5ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgMi41NTg3Ky0wLjAwODMgICAgID8gICAgICAyLjU2MDErLTAu
MDEzOCAgICAgICAgPwogICBmdW5jdGlvbi10ZXN0ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA0LjA0NjYrLTAuMDYyNSAgICAgICAgICAgIDQuMDIxMystMC4wMjcwICAgICAgICAK
ICAgZ2V0LWJ5LWlkLWNoYWluLWZyb20tdHJ5LWJsb2NrICAgICAgICAgICAgICAgICAgNi4wODk1
Ky0wLjA3MzEgICAgICAgICAgICA2LjAyNTYrLTAuMDcwOCAgICAgICAgICBtaWdodCBiZSAxLjAx
MDZ4IGZhc3RlcgogICBpbmRleGVkLXByb3BlcnRpZXMtaW4tb2JqZWN0cyAgICAgICAgICAgICAg
ICAgICAzLjYyNTYrLTAuMDEyMyAgICAgICAgICAgIDMuNjAyMystMC4wMzI0ICAgICAgICAKICAg
aW5saW5lLWFyZ3VtZW50cy1hY2Nlc3MgICAgICAgICAgICAgICAgICAgICAgICAgMS4wNjM0Ky0w
LjAwNjIgICAgICAgICAgICAxLjA2MjcrLTAuMDA2MiAgICAgICAgCiAgIGlubGluZS1hcmd1bWVu
dHMtbG9jYWwtZXNjYXBlICAgICAgICAgICAgICAgICAgMTcuNTY1MystMC4yNDg0ICAgICA/ICAg
ICAxNy43NzgyKy0wLjE5MzUgICAgICAgID8gbWlnaHQgYmUgMS4wMTIxeCBzbG93ZXIKICAgaW5s
aW5lLWdldC1zY29wZWQtdmFyICAgICAgICAgICAgICAgICAgICAgICAgICAgNS40MzM5Ky0wLjA3
NjUgICAgID8gICAgICA1LjQzOTcrLTAuMDc3NiAgICAgICAgPwogICBpbmxpbmVkLXB1dC1ieS1p
ZC10cmFuc2l0aW9uICAgICAgICAgICAgICAgICAgIDEyLjQzODArLTAuMjIxOSAgICAgICAgICAg
MTIuNDEwNCstMC4xNjEzICAgICAgICAKICAgaW50LW9yLW90aGVyLWFicy10aGVuLWdldC1ieS12
YWwgICAgICAgICAgICAgICAgNi45NTMwKy0wLjA3MzUgICAgID8gICAgICA3LjAxMDMrLTAuMDc4
MSAgICAgICAgPwogICBpbnQtb3Itb3RoZXItYWJzLXplcm8tdGhlbi1nZXQtYnktdmFsICAgICAg
ICAgIDMwLjY1OTQrLTAuMDcxNyAgICAgPyAgICAgMzAuNjgyMystMC4wODAxICAgICAgICA/CiAg
IGludC1vci1vdGhlci1hZGQtdGhlbi1nZXQtYnktdmFsICAgICAgICAgICAgICAgIDguNzkzNist
MC4wODIwICAgICAgICAgICAgOC43NTM0Ky0wLjA4MzggICAgICAgIAogICBpbnQtb3Itb3RoZXIt
YWRkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA4LjgxMTYrLTAuMTE4NyAgICAgICAg
ICAgIDguNzgwNystMC4wNzYxICAgICAgICAKICAgaW50LW9yLW90aGVyLWRpdi10aGVuLWdldC1i
eS12YWwgICAgICAgICAgICAgICAgNi41MTk2Ky0wLjEwMDEgICAgID8gICAgICA2LjU0OTcrLTAu
MDk3MSAgICAgICAgPwogICBpbnQtb3Itb3RoZXItbWF4LXRoZW4tZ2V0LWJ5LXZhbCAgICAgICAg
ICAgICAgICA4LjI1MzArLTAuMjIwNyAgICAgICAgICAgIDguMTQ1MSstMC4yNTc2ICAgICAgICAg
IG1pZ2h0IGJlIDEuMDEzMnggZmFzdGVyCiAgIGludC1vci1vdGhlci1taW4tdGhlbi1nZXQtYnkt
dmFsICAgICAgICAgICAgICAgIDYuNTMzMistMC4wNjQxICAgICA/ICAgICAgNi41NDI0Ky0wLjA2
NzMgICAgICAgID8KICAgaW50LW9yLW90aGVyLW1vZC10aGVuLWdldC1ieS12YWwgICAgICAgICAg
ICAgICAgNi4zODc3Ky0wLjA2ODUgICAgID8gICAgICA2LjQzNjIrLTAuMDY3NyAgICAgICAgPwog
ICBpbnQtb3Itb3RoZXItbXVsLXRoZW4tZ2V0LWJ5LXZhbCAgICAgICAgICAgICAgICA1Ljc0NzYr
LTAuMDc2MiAgICAgPyAgICAgIDUuNzk5MSstMC4wNjc4ICAgICAgICA/CiAgIGludC1vci1vdGhl
ci1uZWctdGhlbi1nZXQtYnktdmFsICAgICAgICAgICAgICAgIDYuOTUxOCstMC4xNDYzICAgICAg
ICAgICAgNi44NDYxKy0wLjE4NDYgICAgICAgICAgbWlnaHQgYmUgMS4wMTU0eCBmYXN0ZXIKICAg
aW50LW9yLW90aGVyLW5lZy16ZXJvLXRoZW4tZ2V0LWJ5LXZhbCAgICAgICAgICAyOS45Nzk0Ky0w
LjExNDggICAgID8gICAgIDMwLjA4OTkrLTAuMTA2MyAgICAgICAgPwogICBpbnQtb3Itb3RoZXIt
c3ViLXRoZW4tZ2V0LWJ5LXZhbCAgICAgICAgICAgICAgICA4LjcyNTcrLTAuMDY5MCAgICAgPyAg
ICAgIDguNzQ1MistMC4wOTcwICAgICAgICA/CiAgIGludC1vci1vdGhlci1zdWIgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDcuMDg3MystMC4wODMwICAgICA/ICAgICAgNy4wODk4Ky0w
LjA4OTIgICAgICAgID8KICAgaW50LW92ZXJmbG93LWxvY2FsICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDI2NS42NzM2Ky0wLjg4NDQgICAgIF4gICAgMjY0LjQ4NzUrLTAuMTk3MiAgICAgICAg
XiBkZWZpbml0ZWx5IDEuMDA0NXggZmFzdGVyCiAgIEludDE2QXJyYXktYnViYmxlLXNvcnQgICAg
ICAgICAgICAgICAgICAgICAgICAgNDAuNjkyNSstMC4wOTI0ICAgICA/ICAgICA0MC43MTAxKy0w
LjEwMTQgICAgICAgID8KICAgSW50MTZBcnJheS1sb2FkLWludC1tdWwgICAgICAgICAgICAgICAg
ICAgICAgICAgMS41NDAyKy0wLjAwOTggICAgICAgICAgICAxLjUzODYrLTAuMDExNCAgICAgICAg
CiAgIEludDhBcnJheS1sb2FkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMuOTQx
MCstMC4wNDg4ICAgICA/ICAgICAgMy45NjQwKy0wLjAzMTUgICAgICAgID8KICAgaW50ZWdlci1k
aXZpZGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMi4xOTY5Ky0wLjA3NTkgICAg
ICAgICAgIDEyLjE3MTQrLTAuMDg2NCAgICAgICAgCiAgIGludGVnZXItbW9kdWxvICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDEuNjgxOSstMC4wMDcwICAgICAgICAgICAgMS42NjU5
Ky0wLjAwOTcgICAgICAgIAogICBtYWtlLWluZGV4ZWQtc3RvcmFnZSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAzLjI0ODUrLTAuMDE2NCAgICAgXiAgICAgIDMuMjA0OCstMC4wMDY3ICAgICAg
ICBeIGRlZmluaXRlbHkgMS4wMTM2eCBmYXN0ZXIKICAgbWV0aG9kLW9uLW51bWJlciAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDE5NS45MzMzKy0wLjE5NDIgICAgICAgICAgMTkzLjI1NTMr
LTQuMDkzMSAgICAgICAgICBtaWdodCBiZSAxLjAxMzl4IGZhc3RlcgogICBuZXctYXJyYXktYnVm
ZmVyLWRlYWQgICAgICAgICAgICAgICAgICAgICAgICAgICAyLjkzMzArLTAuMDA4NiAgICAgICAg
ICAgIDIuOTMyMistMC4wMDkwICAgICAgICAKICAgbmV3LWFycmF5LWJ1ZmZlci1wdXNoICAgICAg
ICAgICAgICAgICAgICAgICAgICAgOC40OTQ0Ky0wLjA5MzQgICAgICAgICAgICA4LjQ5MDIrLTAu
MDc1OCAgICAgICAgCiAgIG5ldy1hcnJheS1kZWFkICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgMjMuMjc3MSstMC4wNjQxICAgICA/ICAgICAyMy4yODQ2Ky0wLjA3MjMgICAgICAgID8K
ICAgbmV3LWFycmF5LXB1c2ggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNC45MjM3
Ky0wLjA4NzMgICAgID8gICAgICA0LjkyNjgrLTAuMDgzMyAgICAgICAgPwogICBudW1iZXItdGVz
dCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzLjY5NjUrLTAuMDQ1NiAgICAg
ICAgICAgIDMuNjg1NystMC4wNTAyICAgICAgICAKICAgb2JqZWN0LWNsb3N1cmUtY2FsbCAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgNi44Mzc0Ky0wLjA4MDIgICAgICAgICAgICA2Ljc4MDIr
LTAuMDcwNCAgICAgICAgCiAgIG9iamVjdC10ZXN0ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDMuOTk1NystMC4wNTYyICAgICAgICAgICAgMy45ODEyKy0wLjAzMjMgICAgICAg
IAogICBwb2x5LXN0cmljdGVxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDc1LjQy
NzcrLTAuNjc3NyAgICAgICAgICAgNzUuMDg3MystMC4yMzg4ICAgICAgICAKICAgcG9seW1vcnBo
aWMtc3RydWN0dXJlICAgICAgICAgICAgICAgICAgICAgICAgICAxNi41MTQ3Ky0wLjEwNzkgICAg
ID8gICAgIDE2LjY0OTErLTAuMjA1OSAgICAgICAgPwogICBwb2x5dmFyaWFudC1tb25vbW9ycGhp
Yy1nZXQtYnktaWQgICAgICAgICAgICAgIDEwLjI5MjMrLTAuMDg2MyAgICAgPyAgICAgMTAuMzA0
NistMC4wOTAwICAgICAgICA/CiAgIHJhcmUtb3NyLWV4aXQtb24tbG9jYWwgICAgICAgICAgICAg
ICAgICAgICAgICAxNjcuNzczNystMC41NDQ4ICAgICAgICAgIDE2Ny41MzI3Ky0wLjQ5NTcgICAg
ICAgIAogICByZWdpc3Rlci1wcmVzc3VyZS1mcm9tLW9zciAgICAgICAgICAgICAgICAgICAgIDI2
LjEwMzgrLTAuMTU0OCAgICAgICAgICAgMjYuMDExOSstMC4wNzU2ICAgICAgICAKICAgc2ltcGxl
LWFjdGl2YXRpb24tZGVtbyAgICAgICAgICAgICAgICAgICAgICAgICAyOC44MTcxKy0wLjE0OTQg
ICAgICAgICAgIDI4LjgxMzIrLTAuMTI0OSAgICAgICAgCiAgIHNsb3ctYXJyYXktcHJvZmlsZS1j
b252ZXJnZW5jZSAgICAgICAgICAgICAgICAgIDMuNjI2NistMC4wMTU0ICAgICBeICAgICAgMy41
OTk2Ky0wLjAxMDUgICAgICAgIF4gZGVmaW5pdGVseSAxLjAwNzV4IGZhc3RlcgogICBzbG93LWNv
bnZlcmdlbmNlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDcyLjU4NTcrLTAuMTM3MiAg
ICAgICAgICAgNzIuMjQwNSstMC40MDc5ICAgICAgICAKICAgc3BhcnNlLWNvbmRpdGlvbmFsICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgMS4wOTQ1Ky0wLjAwNDkgICAgICAgICAgICAxLjA4
OTIrLTAuMDEyMiAgICAgICAgCiAgIHNwbGljZS10by1yZW1vdmUgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgNDEuMjAxNSstMC4yNTc5ICAgICAgICAgICA0MS4wMjY1Ky0wLjE2NzYgICAg
ICAgIAogICBzdHJpbmctaGFzaCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAy
LjE4NTkrLTAuMDA5NSAgICAgPyAgICAgIDIuMTg5MystMC4wMDYxICAgICAgICA/CiAgIHN0cmlu
Zy1yZXBlYXQtYXJpdGggICAgICAgICAgICAgICAgICAgICAgICAgICAgMzYuMzQwNSstMC4xNzIy
ICAgICAhICAgICAzNi45ODU2Ky0wLjE0MzAgICAgICAgICEgZGVmaW5pdGVseSAxLjAxNzh4IHNs
b3dlcgogICBzdHJpbmctc3ViICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDcw
LjcwOTErLTAuNTQ0NCAgICAgPyAgICAgNzEuNzA2MSstMC44MzkyICAgICAgICA/IG1pZ2h0IGJl
IDEuMDE0MXggc2xvd2VyCiAgIHN0cmluZy10ZXN0ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDMuODU2NistMC4wNjEzICAgICBeICAgICAgMy43NjEyKy0wLjAxNTYgICAgICAg
IF4gZGVmaW5pdGVseSAxLjAyNTR4IGZhc3RlcgogICBzdHJ1Y3R1cmUtaG9pc3Qtb3Zlci10cmFu
c2l0aW9ucyAgICAgICAgICAgICAgICAyLjY3MjMrLTAuMDEwNCAgICAgICAgICAgIDIuNjU1MCst
MC4wMDk5ICAgICAgICAKICAgdGVhci1vZmYtYXJndW1lbnRzLXNpbXBsZSAgICAgICAgICAgICAg
ICAgICAgICAgMS42OTM4Ky0wLjAwNzcgICAgID8gICAgICAxLjcwMDUrLTAuMDA2MSAgICAgICAg
PwogICB0ZWFyLW9mZi1hcmd1bWVudHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyLjk3
MjgrLTAuMDEwMSAgICAgPyAgICAgIDIuOTc1NCstMC4wMDM5ICAgICAgICA/CiAgIHRlbXBvcmFs
LXN0cnVjdHVyZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTcuMjUxMSstMC4wODM2ICAg
ICA/ICAgICAxNy4yNzkyKy0wLjEwMzggICAgICAgID8KICAgdG8taW50MzItYm9vbGVhbiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAyMy4xNzgwKy0wLjA3NjggICAgID8gICAgIDIzLjE4
MDIrLTAuMDcxNiAgICAgICAgPwogICB1bmRlZmluZWQtdGVzdCAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAzLjg1OTkrLTAuMDMwOSAgICAgPyAgICAgIDMuODYwNSstMC4wMDYxICAg
ICAgICA/CgogICA8YXJpdGhtZXRpYz4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDIwLjM0MjcrLTAuMDE3OSAgICAgICAgICAgMjAuMjk3NistMC4wNTY1ICAgICAgICAgIG1pZ2h0
IGJlIDEuMDAyMnggZmFzdGVyCiAgIDxnZW9tZXRyaWM+ICogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDcuODQ3NystMC4wMTQ4ICAgICAgICAgICAgNy44NDI3Ky0wLjAxNzEgICAg
ICAgICAgbWlnaHQgYmUgMS4wMDA2eCBmYXN0ZXIKICAgPGhhcm1vbmljPiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgNC4xMjcxKy0wLjAxMjggICAgICAgICAgICA0LjEyMjUr
LTAuMDExNCAgICAgICAgICBtaWdodCBiZSAxLjAwMTF4IGZhc3RlcgoKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUb1QgICAgICAgICAgICAg
ICAgICAgICAgIE5ldyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKQWxs
IGJlbmNobWFya3M6CiAgIDxhcml0aG1ldGljPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgMzYuNjk3MCstMC4xODUyICAgICAgICAgICAzNi41NTM0Ky0wLjIwMDYgICAgICAgICAg
bWlnaHQgYmUgMS4wMDM5eCBmYXN0ZXIKICAgPGdlb21ldHJpYz4gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgOS43MDU3Ky0wLjAyMjcgICAgICAgICAgICA5LjY5NzkrLTAuMDI2
MiAgICAgICAgICBtaWdodCBiZSAxLjAwMDh4IGZhc3RlcgogICA8aGFybW9uaWM+ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzLjA1ODUrLTAuMDA3OCAgICAgICAgICAgIDMu
MDU1NSstMC4wMDgxICAgICAgICAgIG1pZ2h0IGJlIDEuMDAxMHggZmFzdGVyCgogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRvVCAgICAgICAg
ICAgICAgICAgICAgICAgTmV3ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IApHZW9tZWFuIG9mIHByZWZlcnJlZCBtZWFuczoKICAgPHNjYWxlZC1yZXN1bHQ+ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAxOS4zNDU1Ky0wLjA1MzYgICAgICAgICAgIDE5LjMzNjMr
LTAuMDU4OSAgICAgICAgICBtaWdodCBiZSAxLjAwMDV4IGZhc3RlcgoK
</data>

          </attachment>
      

    </bug>

</bugzilla>