<?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>96311</bug_id>
          
          <creation_ts>2012-09-10 13:38:27 -0700</creation_ts>
          <short_desc>Remove m_classInfo from JSCell</short_desc>
          <delta_ts>2012-09-10 22:05:34 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>716451</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2012-09-10 13:38:27 -0700</bug_when>
    <thetext>Now that no one is using the ClassInfo in JSCell, we can remove it for the greater good.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>716736</commentid>
    <comment_count>1</comment_count>
      <attachid>163257</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2012-09-10 17:50:16 -0700</bug_when>
    <thetext>Created attachment 163257
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>716741</commentid>
    <comment_count>2</comment_count>
      <attachid>163258</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2012-09-10 18:09:27 -0700</bug_when>
    <thetext>Created attachment 163258
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>716743</commentid>
    <comment_count>3</comment_count>
      <attachid>163258</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2012-09-10 18:14:21 -0700</bug_when>
    <thetext>Comment on attachment 163258
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=163258&amp;action=review

r=me assuming 32_64 changes are in fact legitimate

&gt; Source/JavaScriptCore/llint/LowLevelInterpreter.asm:91
&gt; +    const InlineStorageCapacity = 7

Does 32bit gain a full JSValue in a cell?  You&apos;ve removed one pointer but a value is 64bits.

&gt; Source/JavaScriptCore/runtime/PropertyOffset.h:39
&gt; -#define INLINE_STORAGE_CAPACITY 6
&gt; +#define INLINE_STORAGE_CAPACITY 7
&gt;  #else
&gt; -#define INLINE_STORAGE_CAPACITY 5
&gt; +#define INLINE_STORAGE_CAPACITY 6

See  my earlier comment</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>716761</commentid>
    <comment_count>4</comment_count>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2012-09-10 18:40:32 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 163258 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=163258&amp;action=review
&gt; 
&gt; r=me assuming 32_64 changes are in fact legitimate
&gt; 
&gt; &gt; Source/JavaScriptCore/llint/LowLevelInterpreter.asm:91
&gt; &gt; +    const InlineStorageCapacity = 7
&gt; 
&gt; Does 32bit gain a full JSValue in a cell?  You&apos;ve removed one pointer but a value is 64bits.
&gt; 
It should be okay because I removed a void* that was added on 32_64 to pad out JSObjects after I removed inheritorID a while back. So technically there were two pointer-sized removals on 32_64 in this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>716765</commentid>
    <comment_count>5</comment_count>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2012-09-10 18:41:10 -0700</bug_when>
    <thetext>&gt; It should be okay because I removed a void* that was added on 32_64 to pad out JSObjects after I removed inheritorID a while back. So technically there were two pointer-sized removals on 32_64 in this patch.

(See changes to JSObject.h in this patch)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>716839</commentid>
    <comment_count>6</comment_count>
      <attachid>163258</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-10 22:05:30 -0700</bug_when>
    <thetext>Comment on attachment 163258
Patch

Clearing flags on attachment: 163258

Committed r128146: &lt;http://trac.webkit.org/changeset/128146&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>716840</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-10 22:05:34 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>163257</attachid>
            <date>2012-09-10 17:50:16 -0700</date>
            <delta_ts>2012-09-10 18:09:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-96311-20120910174951.patch</filename>
            <type>text/plain</type>
            <size>15865</size>
            <attacher name="Mark Hahnenberg">mhahnenberg</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTI4MTM1KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQzIEBA
CisyMDEyLTA5LTEwICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFobmVuYmVyZ0BhcHBsZS5jb20+CisK
KyAgICAgICAgUmVtb3ZlIG1fY2xhc3NJbmZvIGZyb20gSlNDZWxsCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NjMxMQorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vdyB0aGF0IG5vIG9uZSBpcyB1c2luZyB0
aGUgQ2xhc3NJbmZvIGluIEpTQ2VsbCwgd2UgY2FuIHJlbW92ZSBpdCBmb3IgdGhlIGdyZWF0ZXIg
Z29vZC4gVGhpcyBpcyBhIDEuNSUgd2luIG9uIHY4djcgYW5kIAorICAgICAgICBhIDEuNyUgd2lu
IG9uIGtyYWtlbiwgYW5kIGlzIGFuIG92ZXJhbGwgcGVyZm9ybWFuY2UgcHJvZ3Jlc3Npb24uCisK
KyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQuaDoKKyAgICAgICAgKEpTQzo6REZHOjpT
cGVjdWxhdGl2ZUpJVDo6ZW1pdEFsbG9jYXRlQmFzaWNKU09iamVjdCk6IEhhZCB0byByZWFycmFu
Z2UgdGhlIG9yZGVyIG9mIHdoZW4gd2UgdGFrZSB0aGluZ3Mgb2ZmIHRoZSBmcmVlIGxpc3QgCisg
ICAgICAgIGFuZCB3aGVuIHdlIHN0b3JlIHRoZSBTdHJ1Y3R1cmUgaW4gdGhlIG9iamVjdCBiZWNh
dXNlIHdlIHdvdWxkIGNsb2JiZXIgdGhlIGZyZWUgbGlzdCBvdGhlcndpc2UuIFRoaXMgbWFkZSBp
dCBub3Qgb2theSBmb3IgCisgICAgICAgIHRoZSBzdHJ1Y3R1cmUgYXJndW1lbnQgYW5kIHRoZSBz
Y3JhdGNoIHJlZ2lzdGVyIHRvIGFsaWFzIG9uZSBhbm90aGVyLiBBbHNvIHJlbW92ZWQgdGhlIHN0
b3JlIG9mIHRoZSBDbGFzc0luZm8gcG9pbnRlciBpbiB0aGUKKyAgICAgICAgb2JqZWN0LiBZYXkh
CisgICAgICAgIChTcGVjdWxhdGl2ZUpJVCk6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZl
SklUMzJfNjQuY3BwOiBTaW5jZSBpdCdzIG5vIGxvbmdlciBva2F5IGZvciBmb3IgdGhlIHNjcmF0
Y2ggcmVnaXN0ZXIgYW5kIHN0cnVjdHVyZSByZWdpc3RlciB0byBhbGlhcyAKKyAgICAgICAgb25l
IGFub3RoZXIgYXMgc3RhdGVkIGFib3ZlLCBoYWQgdG8gYWRkIGFuIGV4dHJhIHRlbXBvcmFyeSBm
b3IgcGFzc2luZyB0aGUgU3RydWN0dXJlLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZl
SklUOjpjb21waWxlKToKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHA6IERp
dHRvLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlKToKKyAgICAg
ICAgKiBqaXQvSklUSW5saW5lTWV0aG9kcy5oOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRBbGxv
Y2F0ZUJhc2ljSlNPYmplY3QpOiBTaW1pbGFyIGNoYW5nZXMgdG8gREZHJ3MgaW5saW5lIGFsbG9j
YXRpb24gZXhjZXB0IHRoYXQgaXQgcmVtb3ZlZCB0aGUgb2JqZWN0IGZyb20gCisgICAgICAgIHRo
ZSBmcmVlIGxpc3QgZmlyc3QsIHNvIG5vIGNoYW5nZXMgd2VyZSBuZWNlc3NhcnkgdGhlcmUuCisg
ICAgICAgICogbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5hc206IENoYW5nZSB0aGUgY29uc3Rh
bnRzIGZvciBhbW91bnQgb2YgaW5saW5lIHN0b3JhZ2UgdG8gbWF0Y2ggUHJvcGVydHlPZmZzZXQu
aCBhbmQgcmVtb3ZlIAorICAgICAgICB0aGUgc3RvcmUgb2YgdGhlIENsYXNzSW5mbyBwb2ludGVy
IGR1cmluZyBpbmxpbmUgYWxsb2NhdGlvbi4KKyAgICAgICAgKiBsbGludC9Mb3dMZXZlbEludGVy
cHJldGVyMzJfNjQuYXNtOgorICAgICAgICAqIGxsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXI2NC5h
c206CisgICAgICAgICogcnVudGltZS9KU0NlbGwuaDogUmVtb3ZlIHRoZSBtX2NsYXNzSW5mbyBm
aWVsZCBhbmQgYXNzb2NpYXRlZCBtZXRob2RzLgorICAgICAgICAoSlNDZWxsKToKKyAgICAgICAg
KiBydW50aW1lL0pTT2JqZWN0Lmg6CisgICAgICAgIChKU09iamVjdCk6CisgICAgICAgICogcnVu
dGltZS9Qcm9wZXJ0eU9mZnNldC5oOiBFeHBhbmQgdGhlIG51bWJlciBvZiBpbmxpbmUgc3RvcmFn
ZSBwcm9wZXJ0aWVzIHRvIHRha2UgdXAgdGhlIGV4dHJhIHNwYWNlIHRoYXQgd2UncmUgZnJlZWlu
ZyAKKyAgICAgICAgd2l0aCB0aGUgcmVtb3ZhbCBvZiB0aGUgQ2xhc3NJbmZvIHBvaW50ZXIuCisg
ICAgICAgIChKU0MpOgorICAgICAgICAqIHJ1bnRpbWUvU3RydWN0dXJlLmg6CisgICAgICAgIChK
U0MpOgorICAgICAgICAoSlNDOjpKU0NlbGw6OkpTQ2VsbCk6CisgICAgICAgIChKU0M6OkpTQ2Vs
bDo6ZmluaXNoQ3JlYXRpb24pOgorCiAyMDEyLTA5LTEwICBHZW9mZnJleSBHYXJlbiAgPGdnYXJl
bkBhcHBsZS5jb20+CiAKICAgICAgICAgVHJ5IHRvIGZpeCB0aGUgV2luZG93cyAoMzItYml0KSBi
dWlsZC4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQz
Ml82NC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVj
dWxhdGl2ZUpJVDMyXzY0LmNwcAkocmV2aXNpb24gMTI4MDc4KQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MzI5NiwxOCArMzI5NiwyMCBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlKE5vZGUmIG5v
ZGUpCiAgICAgICAgIAogICAgICAgICBTcGVjdWxhdGVDZWxsT3BlcmFuZCBjYWxsZWUodGhpcywg
bm9kZS5jaGlsZDEoKSk7CiAgICAgICAgIEdQUlRlbXBvcmFyeSByZXN1bHQodGhpcyk7CisgICAg
ICAgIEdQUlRlbXBvcmFyeSBzdHJ1Y3R1cmUodGhpcyk7CiAgICAgICAgIEdQUlRlbXBvcmFyeSBz
Y3JhdGNoKHRoaXMpOwogICAgICAgICAKICAgICAgICAgR1BSUmVnIGNhbGxlZUdQUiA9IGNhbGxl
ZS5ncHIoKTsKICAgICAgICAgR1BSUmVnIHJlc3VsdEdQUiA9IHJlc3VsdC5ncHIoKTsKKyAgICAg
ICAgR1BSUmVnIHN0cnVjdHVyZUdQUiA9IHN0cnVjdHVyZS5ncHIoKTsKICAgICAgICAgR1BSUmVn
IHNjcmF0Y2hHUFIgPSBzY3JhdGNoLmdwcigpOwogICAgICAgICAKICAgICAgICAgLy8gTG9hZCB0
aGUgaW5oZXJpdG9ySUQuIElmIHRoZSBpbmhlcml0b3JJRCBpcyBub3Qgc2V0LCBnbyB0byBzbG93
IHBhdGguCi0gICAgICAgIG1faml0LmxvYWRQdHIoTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MoY2Fs
bGVlR1BSLCBKU0Z1bmN0aW9uOjpvZmZzZXRPZkNhY2hlZEluaGVyaXRvcklEKCkpLCBzY3JhdGNo
R1BSKTsKKyAgICAgICAgbV9qaXQubG9hZFB0cihNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhjYWxs
ZWVHUFIsIEpTRnVuY3Rpb246Om9mZnNldE9mQ2FjaGVkSW5oZXJpdG9ySUQoKSksIHN0cnVjdHVy
ZUdQUik7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wTGlzdCBzbG93UGF0aDsKLSAgICAg
ICAgc2xvd1BhdGguYXBwZW5kKG1faml0LmJyYW5jaFRlc3RQdHIoTWFjcm9Bc3NlbWJsZXI6Olpl
cm8sIHNjcmF0Y2hHUFIpKTsKKyAgICAgICAgc2xvd1BhdGguYXBwZW5kKG1faml0LmJyYW5jaFRl
c3RQdHIoTWFjcm9Bc3NlbWJsZXI6Olplcm8sIHN0cnVjdHVyZUdQUikpOwogICAgICAgICAKLSAg
ICAgICAgZW1pdEFsbG9jYXRlSlNGaW5hbE9iamVjdChzY3JhdGNoR1BSLCByZXN1bHRHUFIsIHNj
cmF0Y2hHUFIsIHNsb3dQYXRoKTsKKyAgICAgICAgZW1pdEFsbG9jYXRlSlNGaW5hbE9iamVjdChz
dHJ1Y3R1cmVHUFIsIHJlc3VsdEdQUiwgc2NyYXRjaEdQUiwgc2xvd1BhdGgpOwogICAgICAgICAK
ICAgICAgICAgYWRkU2xvd1BhdGhHZW5lcmF0b3Ioc2xvd1BhdGhDYWxsKHNsb3dQYXRoLCB0aGlz
LCBvcGVyYXRpb25DcmVhdGVUaGlzLCByZXN1bHRHUFIsIGNhbGxlZUdQUikpOwogICAgICAgICAK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJ
VDY0LmNwcAkocmV2aXNpb24gMTI4MDc4KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdTcGVjdWxhdGl2ZUpJVDY0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzI4OSwxOCArMzI4OSwy
MCBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlKE5vZGUmIG5vZGUpCiAgICAgICAgIAog
ICAgICAgICBTcGVjdWxhdGVDZWxsT3BlcmFuZCBjYWxsZWUodGhpcywgbm9kZS5jaGlsZDEoKSk7
CiAgICAgICAgIEdQUlRlbXBvcmFyeSByZXN1bHQodGhpcyk7CisgICAgICAgIEdQUlRlbXBvcmFy
eSBzdHJ1Y3R1cmUodGhpcyk7CiAgICAgICAgIEdQUlRlbXBvcmFyeSBzY3JhdGNoKHRoaXMpOwog
ICAgICAgICAKICAgICAgICAgR1BSUmVnIGNhbGxlZUdQUiA9IGNhbGxlZS5ncHIoKTsKICAgICAg
ICAgR1BSUmVnIHJlc3VsdEdQUiA9IHJlc3VsdC5ncHIoKTsKKyAgICAgICAgR1BSUmVnIHN0cnVj
dHVyZUdQUiA9IHN0cnVjdHVyZS5ncHIoKTsKICAgICAgICAgR1BSUmVnIHNjcmF0Y2hHUFIgPSBz
Y3JhdGNoLmdwcigpOwogICAgICAgICAKICAgICAgICAgLy8gTG9hZCB0aGUgaW5oZXJpdG9ySUQu
IElmIHRoZSBpbmhlcml0b3JJRCBpcyBub3Qgc2V0LCBnbyB0byBzbG93IHBhdGguCi0gICAgICAg
IG1faml0LmxvYWRQdHIoTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MoY2FsbGVlR1BSLCBKU0Z1bmN0
aW9uOjpvZmZzZXRPZkNhY2hlZEluaGVyaXRvcklEKCkpLCBzY3JhdGNoR1BSKTsKKyAgICAgICAg
bV9qaXQubG9hZFB0cihNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhjYWxsZWVHUFIsIEpTRnVuY3Rp
b246Om9mZnNldE9mQ2FjaGVkSW5oZXJpdG9ySUQoKSksIHN0cnVjdHVyZUdQUik7CiAgICAgICAg
IE1hY3JvQXNzZW1ibGVyOjpKdW1wTGlzdCBzbG93UGF0aDsKLSAgICAgICAgc2xvd1BhdGguYXBw
ZW5kKG1faml0LmJyYW5jaFRlc3RQdHIoTWFjcm9Bc3NlbWJsZXI6Olplcm8sIHNjcmF0Y2hHUFIp
KTsKKyAgICAgICAgc2xvd1BhdGguYXBwZW5kKG1faml0LmJyYW5jaFRlc3RQdHIoTWFjcm9Bc3Nl
bWJsZXI6Olplcm8sIHN0cnVjdHVyZUdQUikpOwogICAgICAgICAKLSAgICAgICAgZW1pdEFsbG9j
YXRlSlNGaW5hbE9iamVjdChzY3JhdGNoR1BSLCByZXN1bHRHUFIsIHNjcmF0Y2hHUFIsIHNsb3dQ
YXRoKTsKKyAgICAgICAgZW1pdEFsbG9jYXRlSlNGaW5hbE9iamVjdChzdHJ1Y3R1cmVHUFIsIHJl
c3VsdEdQUiwgc2NyYXRjaEdQUiwgc2xvd1BhdGgpOwogICAgICAgICAKICAgICAgICAgYWRkU2xv
d1BhdGhHZW5lcmF0b3Ioc2xvd1BhdGhDYWxsKHNsb3dQYXRoLCB0aGlzLCBvcGVyYXRpb25DcmVh
dGVUaGlzLCByZXN1bHRHUFIsIGNhbGxlZUdQUikpOwogICAgICAgICAKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmgJKHJldmlzaW9uIDEyODA3
OCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaAkod29y
a2luZyBjb3B5KQpAQCAtMjEzNiw3ICsyMTM2LDkgQEAgcHVibGljOgogICAgIHZvaWQgY29tcGls
ZU5ld0Z1bmN0aW9uTm9DaGVjayhOb2RlJik7CiAgICAgdm9pZCBjb21waWxlTmV3RnVuY3Rpb25F
eHByZXNzaW9uKE5vZGUmKTsKICAgICBib29sIGNvbXBpbGVSZWdFeHBFeGVjKE5vZGUmKTsKLSAg
ICAKKyAgIAorICAgIC8vIEl0IGlzIE5PVCBva2F5IGZvciB0aGUgc3RydWN0dXJlIGFuZCB0aGUg
c2NyYXRjaCByZWdpc3RlciB0byBiZSB0aGUgc2FtZSB0aGluZyBiZWNhdXNlIGlmIHRoZXkgYXJl
IHRoZW4gdGhlIFN0cnVjdHVyZSB3aWxsIAorICAgIC8vIGdldCBjbG9iYmVyZWQuIAogICAgIHRl
bXBsYXRlIDx0eXBlbmFtZSBDbGFzc1R5cGUsIGJvb2wgZGVzdHJ1Y3RvciwgdHlwZW5hbWUgU3Ry
dWN0dXJlVHlwZT4gCiAgICAgdm9pZCBlbWl0QWxsb2NhdGVCYXNpY0pTT2JqZWN0KFN0cnVjdHVy
ZVR5cGUgc3RydWN0dXJlLCBHUFJSZWcgcmVzdWx0R1BSLCBHUFJSZWcgc2NyYXRjaEdQUiwgTWFj
cm9Bc3NlbWJsZXI6Okp1bXBMaXN0JiBzbG93UGF0aCkKICAgICB7CkBAIC0yMTUxLDI0ICsyMTUz
LDE2IEBAIHB1YmxpYzoKICAgICAgICAgCiAgICAgICAgIC8vIFRoZSBvYmplY3QgaXMgaGFsZi1h
bGxvY2F0ZWQ6IHdlIGhhdmUgd2hhdCB3ZSBrbm93IGlzIGEgZnJlc2ggb2JqZWN0LCBidXQKICAg
ICAgICAgLy8gaXQncyBzdGlsbCBvbiB0aGUgR0MncyBmcmVlIGxpc3QuCi0gICAgICAgIAotICAg
ICAgICAvLyBEaXRjaCB0aGUgc3RydWN0dXJlIGJ5IHBsYWNpbmcgaXQgaW50byB0aGUgc3RydWN0
dXJlIHNsb3QsIHNvIHRoYXQgd2UgY2FuIHJldXNlCi0gICAgICAgIC8vIHNjcmF0Y2hHUFIuCi0g
ICAgICAgIG1faml0LnN0b3JlUHRyKHN0cnVjdHVyZSwgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3Mo
cmVzdWx0R1BSLCBKU09iamVjdDo6c3RydWN0dXJlT2Zmc2V0KCkpKTsKLSAgICAgICAgCi0gICAg
ICAgIC8vIE5vdyB0aGF0IHdlIGhhdmUgc2NyYXRjaEdQUiBiYWNrLCByZW1vdmUgdGhlIG9iamVj
dCBmcm9tIHRoZSBmcmVlIGxpc3QKICAgICAgICAgbV9qaXQubG9hZFB0cihNYWNyb0Fzc2VtYmxl
cjo6QWRkcmVzcyhyZXN1bHRHUFIpLCBzY3JhdGNoR1BSKTsKICAgICAgICAgbV9qaXQuc3RvcmVQ
dHIoc2NyYXRjaEdQUiwgJmFsbG9jYXRvci0+bV9mcmVlTGlzdC5oZWFkKTsKLSAgICAgICAgCi0g
ICAgICAgIC8vIEluaXRpYWxpemUgdGhlIG9iamVjdCdzIGNsYXNzSW5mbyBwb2ludGVyCi0gICAg
ICAgIG1faml0LnN0b3JlUHRyKE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tUHRyKCZDbGFzc1R5
cGU6OnNfaW5mbyksIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKHJlc3VsdEdQUiwgSlNDZWxsOjpj
bGFzc0luZm9PZmZzZXQoKSkpOworCisgICAgICAgIC8vIEluaXRpYWxpemUgdGhlIG9iamVjdCdz
IFN0cnVjdHVyZS4KKyAgICAgICAgbV9qaXQuc3RvcmVQdHIoc3RydWN0dXJlLCBNYWNyb0Fzc2Vt
Ymxlcjo6QWRkcmVzcyhyZXN1bHRHUFIsIEpTQ2VsbDo6c3RydWN0dXJlT2Zmc2V0KCkpKTsKICAg
ICAgICAgCiAgICAgICAgIC8vIEluaXRpYWxpemUgdGhlIG9iamVjdCdzIHByb3BlcnR5IHN0b3Jh
Z2UgcG9pbnRlci4KICAgICAgICAgbV9qaXQuc3RvcmVQdHIoTWFjcm9Bc3NlbWJsZXI6OlRydXN0
ZWRJbW1QdHIoMCksIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKHJlc3VsdEdQUiwgQ2xhc3NUeXBl
OjpvZmZzZXRPZk91dE9mTGluZVN0b3JhZ2UoKSkpOwogICAgIH0KIAotICAgIC8vIEl0IGlzIGFj
Y2VwdGFibGUgdG8gaGF2ZSBzdHJ1Y3R1cmUgYmUgZXF1YWwgdG8gc2NyYXRjaCwgc28gbG9uZyBh
cyB5b3UncmUgZmluZQotICAgIC8vIHdpdGggdGhlIHN0cnVjdHVyZSBHUFIgYmVpbmcgY2xvYmJl
cmVkLgogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CiAgICAgdm9pZCBlbWl0QWxsb2NhdGVKU0Zp
bmFsT2JqZWN0KFQgc3RydWN0dXJlLCBHUFJSZWcgcmVzdWx0R1BSLCBHUFJSZWcgc2NyYXRjaEdQ
UiwgTWFjcm9Bc3NlbWJsZXI6Okp1bXBMaXN0JiBzbG93UGF0aCkKICAgICB7CkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVElubGluZU1ldGhvZHMuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVElubGluZU1ldGhvZHMuaAkocmV2aXNpb24gMTI4
MDc4KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRJbmxpbmVNZXRob2RzLmgJKHdv
cmtpbmcgY29weSkKQEAgLTQyMiw5ICs0MjIsNiBAQCB0ZW1wbGF0ZSA8dHlwZW5hbWUgQ2xhc3NU
eXBlLCBib29sIGRlc3RyCiAgICAgLy8gaW5pdGlhbGl6ZSB0aGUgb2JqZWN0J3Mgc3RydWN0dXJl
CiAgICAgc3RvcmVQdHIoc3RydWN0dXJlLCBBZGRyZXNzKHJlc3VsdCwgSlNDZWxsOjpzdHJ1Y3R1
cmVPZmZzZXQoKSkpOwogCi0gICAgLy8gaW5pdGlhbGl6ZSB0aGUgb2JqZWN0J3MgY2xhc3NJbmZv
IHBvaW50ZXIKLSAgICBzdG9yZVB0cihUcnVzdGVkSW1tUHRyKCZDbGFzc1R5cGU6OnNfaW5mbyks
IEFkZHJlc3MocmVzdWx0LCBKU0NlbGw6OmNsYXNzSW5mb09mZnNldCgpKSk7Ci0KICAgICAvLyBp
bml0aWFsaXplIHRoZSBvYmplY3QncyBwcm9wZXJ0eSBzdG9yYWdlIHBvaW50ZXIKICAgICBzdG9y
ZVB0cihUcnVzdGVkSW1tUHRyKDApLCBBZGRyZXNzKHJlc3VsdCwgQ2xhc3NUeXBlOjpvZmZzZXRP
Zk91dE9mTGluZVN0b3JhZ2UoKSkpOwogfQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2xs
aW50L0xvd0xldmVsSW50ZXJwcmV0ZXIzMl82NC5hc20KPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIzMl82NC5hc20JKHJldmlzaW9u
IDEyODA3OCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJl
dGVyMzJfNjQuYXNtCSh3b3JraW5nIGNvcHkpCkBAIC0zNTIsNyArMzUyLDcgQEAgX2xsaW50X29w
X2NyZWF0ZV90aGlzOgogICAgIGxvYWRwIENhbGxlZVtjZnJdLCB0MAogICAgIGxvYWRwIEpTRnVu
Y3Rpb246Om1fY2FjaGVkSW5oZXJpdG9ySURbdDBdLCB0MgogICAgIGJ0cHogdDIsIC5vcENyZWF0
ZVRoaXNTbG93Ci0gICAgYWxsb2NhdGVCYXNpY0pTT2JqZWN0KEpTRmluYWxPYmplY3RTaXplQ2xh
c3NJbmRleCwgSlNHbG9iYWxEYXRhOjpqc0ZpbmFsT2JqZWN0Q2xhc3NJbmZvLCB0MiwgdDAsIHQx
LCB0MywgLm9wQ3JlYXRlVGhpc1Nsb3cpCisgICAgYWxsb2NhdGVCYXNpY0pTT2JqZWN0KEpTRmlu
YWxPYmplY3RTaXplQ2xhc3NJbmRleCwgdDIsIHQwLCB0MSwgdDMsIC5vcENyZWF0ZVRoaXNTbG93
KQogICAgIGxvYWRpIDRbUENdLCB0MQogICAgIHN0b3JlaSBDZWxsVGFnLCBUYWdPZmZzZXRbY2Zy
LCB0MSwgOF0KICAgICBzdG9yZWkgdDAsIFBheWxvYWRPZmZzZXRbY2ZyLCB0MSwgOF0KQEAgLTM4
NCw3ICszODQsNyBAQCBfbGxpbnRfb3BfbmV3X29iamVjdDoKICAgICBsb2FkcCBDb2RlQmxvY2tb
Y2ZyXSwgdDAKICAgICBsb2FkcCBDb2RlQmxvY2s6Om1fZ2xvYmFsT2JqZWN0W3QwXSwgdDAKICAg
ICBsb2FkcCBKU0dsb2JhbE9iamVjdDo6bV9lbXB0eU9iamVjdFN0cnVjdHVyZVt0MF0sIHQxCi0g
ICAgYWxsb2NhdGVCYXNpY0pTT2JqZWN0KEpTRmluYWxPYmplY3RTaXplQ2xhc3NJbmRleCwgSlNH
bG9iYWxEYXRhOjpqc0ZpbmFsT2JqZWN0Q2xhc3NJbmZvLCB0MSwgdDAsIHQyLCB0MywgLm9wTmV3
T2JqZWN0U2xvdykKKyAgICBhbGxvY2F0ZUJhc2ljSlNPYmplY3QoSlNGaW5hbE9iamVjdFNpemVD
bGFzc0luZGV4LCB0MSwgdDAsIHQyLCB0MywgLm9wTmV3T2JqZWN0U2xvdykKICAgICBsb2FkaSA0
W1BDXSwgdDEKICAgICBzdG9yZWkgQ2VsbFRhZywgVGFnT2Zmc2V0W2NmciwgdDEsIDhdCiAgICAg
c3RvcmVpIHQwLCBQYXlsb2FkT2Zmc2V0W2NmciwgdDEsIDhdCkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0LmFzbQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0LmFzbQkocmV2
aXNpb24gMTI4MDc4KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50
ZXJwcmV0ZXI2NC5hc20JKHdvcmtpbmcgY29weSkKQEAgLTIzNiw3ICsyMzYsNyBAQCBfbGxpbnRf
b3BfY3JlYXRlX3RoaXM6CiAgICAgbG9hZHAgQ2FsbGVlW2Nmcl0sIHQwCiAgICAgbG9hZHAgSlNG
dW5jdGlvbjo6bV9jYWNoZWRJbmhlcml0b3JJRFt0MF0sIHQyCiAgICAgYnRweiB0MiwgLm9wQ3Jl
YXRlVGhpc1Nsb3cKLSAgICBhbGxvY2F0ZUJhc2ljSlNPYmplY3QoSlNGaW5hbE9iamVjdFNpemVD
bGFzc0luZGV4LCBKU0dsb2JhbERhdGE6OmpzRmluYWxPYmplY3RDbGFzc0luZm8sIHQyLCB0MCwg
dDEsIHQzLCAub3BDcmVhdGVUaGlzU2xvdykKKyAgICBhbGxvY2F0ZUJhc2ljSlNPYmplY3QoSlNG
aW5hbE9iamVjdFNpemVDbGFzc0luZGV4LCB0MiwgdDAsIHQxLCB0MywgLm9wQ3JlYXRlVGhpc1Ns
b3cpCiAgICAgbG9hZGlzIDhbUEIsIFBDLCA4XSwgdDEKICAgICBzdG9yZXAgdDAsIFtjZnIsIHQx
LCA4XQogICAgIGRpc3BhdGNoKDIpCkBAIC0yNjcsNyArMjY3LDcgQEAgX2xsaW50X29wX25ld19v
YmplY3Q6CiAgICAgbG9hZHAgQ29kZUJsb2NrW2Nmcl0sIHQwCiAgICAgbG9hZHAgQ29kZUJsb2Nr
OjptX2dsb2JhbE9iamVjdFt0MF0sIHQwCiAgICAgbG9hZHAgSlNHbG9iYWxPYmplY3Q6Om1fZW1w
dHlPYmplY3RTdHJ1Y3R1cmVbdDBdLCB0MQotICAgIGFsbG9jYXRlQmFzaWNKU09iamVjdChKU0Zp
bmFsT2JqZWN0U2l6ZUNsYXNzSW5kZXgsIEpTR2xvYmFsRGF0YTo6anNGaW5hbE9iamVjdENsYXNz
SW5mbywgdDEsIHQwLCB0MiwgdDMsIC5vcE5ld09iamVjdFNsb3cpCisgICAgYWxsb2NhdGVCYXNp
Y0pTT2JqZWN0KEpTRmluYWxPYmplY3RTaXplQ2xhc3NJbmRleCwgdDEsIHQwLCB0MiwgdDMsIC5v
cE5ld09iamVjdFNsb3cpCiAgICAgbG9hZGlzIDhbUEIsIFBDLCA4XSwgdDEKICAgICBzdG9yZXAg
dDAsIFtjZnIsIHQxLCA4XQogICAgIGRpc3BhdGNoKDIpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5hc20KPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuYXNtCShyZXZpc2lvbiAx
MjgwNzgpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRl
ci5hc20JKHdvcmtpbmcgY29weSkKQEAgLTg2LDkgKzg2LDkgQEAgY29uc3QgSGFzaEZsYWdzOEJp
dEJ1ZmZlciA9IDY0CiAKICMgUHJvcGVydHkgc3RvcmFnZSBjb25zdGFudHMKIGlmIEpTVkFMVUU2
NAotICAgIGNvbnN0IElubGluZVN0b3JhZ2VDYXBhY2l0eSA9IDUKLWVsc2UKICAgICBjb25zdCBJ
bmxpbmVTdG9yYWdlQ2FwYWNpdHkgPSA2CitlbHNlCisgICAgY29uc3QgSW5saW5lU3RvcmFnZUNh
cGFjaXR5ID0gNwogZW5kCiAKICMgQWxsb2NhdGlvbiBjb25zdGFudHMKQEAgLTMxMCw3ICszMTAs
NyBAQCBtYWNybyBmdW5jdGlvbkluaXRpYWxpemF0aW9uKHByb2ZpbGVBcmdTCiAuc3RhY2tIZWln
aHRPSzoKIGVuZAogCi1tYWNybyBhbGxvY2F0ZUJhc2ljSlNPYmplY3Qoc2l6ZUNsYXNzSW5kZXgs
IGNsYXNzSW5mb09mZnNldCwgc3RydWN0dXJlLCByZXN1bHQsIHNjcmF0Y2gxLCBzY3JhdGNoMiwg
c2xvd0Nhc2UpCittYWNybyBhbGxvY2F0ZUJhc2ljSlNPYmplY3Qoc2l6ZUNsYXNzSW5kZXgsIHN0
cnVjdHVyZSwgcmVzdWx0LCBzY3JhdGNoMSwgc2NyYXRjaDIsIHNsb3dDYXNlKQogICAgIGlmIEFM
V0FZU19BTExPQ0FURV9TTE9XCiAgICAgICAgIGptcCBzbG93Q2FzZQogICAgIGVsc2UKQEAgLTMz
OCw4ICszMzgsNiBAQCBtYWNybyBhbGxvY2F0ZUJhc2ljSlNPYmplY3Qoc2l6ZUNsYXNzSW5kCiAg
ICAgICAgIHN0b3JlcCBzY3JhdGNoMiwgb2Zmc2V0T2ZNeVNpemVDbGFzcyArIG9mZnNldE9mRmly
c3RGcmVlQ2VsbFtzY3JhdGNoMV0KICAgICAKICAgICAgICAgIyBJbml0aWFsaXplIHRoZSBvYmpl
Y3QuCi0gICAgICAgIGxvYWRwIGNsYXNzSW5mb09mZnNldFtzY3JhdGNoMV0sIHNjcmF0Y2gyCi0g
ICAgICAgIHN0b3JlcCBzY3JhdGNoMiwgW3Jlc3VsdF0KICAgICAgICAgc3RvcmVwIHN0cnVjdHVy
ZSwgSlNDZWxsOjptX3N0cnVjdHVyZVtyZXN1bHRdCiAgICAgICAgIHN0b3JlcCAwLCBKU09iamVj
dDo6bV9vdXRPZkxpbmVTdG9yYWdlW3Jlc3VsdF0KICAgICBlbmQKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTQ2VsbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTQ2VsbC5oCShyZXZpc2lvbiAxMjgwNzgpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGwuaAkod29ya2luZyBjb3B5KQpAQCAtMTA4LDcgKzEw
OCw2IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgICAgIC8vIE9iamVjdCBvcGVyYXRpb25zLCB3
aXRoIHRoZSB0b09iamVjdCBvcGVyYXRpb24gaW5jbHVkZWQuCiAgICAgICAgIGNvbnN0IENsYXNz
SW5mbyogY2xhc3NJbmZvKCkgY29uc3Q7Ci0gICAgICAgIGNvbnN0IENsYXNzSW5mbyogdmFsaWRh
dGVkQ2xhc3NJbmZvKCkgY29uc3Q7CiAgICAgICAgIGNvbnN0IE1ldGhvZFRhYmxlKiBtZXRob2RU
YWJsZSgpIGNvbnN0OwogICAgICAgICBzdGF0aWMgdm9pZCBwdXQoSlNDZWxsKiwgRXhlY1N0YXRl
KiwgUHJvcGVydHlOYW1lLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgc3Rh
dGljIHZvaWQgcHV0QnlJbmRleChKU0NlbGwqLCBFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0
eU5hbWUsIEpTVmFsdWUsIGJvb2wgc2hvdWxkVGhyb3cpOwpAQCAtMTMzLDExICsxMzIsNiBAQCBu
YW1lc3BhY2UgSlNDIHsKICAgICAgICAgICAgIHJldHVybiBPQkpFQ1RfT0ZGU0VUT0YoSlNDZWxs
LCBtX3N0cnVjdHVyZSk7CiAgICAgICAgIH0KIAotICAgICAgICBzdGF0aWMgcHRyZGlmZl90IGNs
YXNzSW5mb09mZnNldCgpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBPQkpFQ1RfT0ZG
U0VUT0YoSlNDZWxsLCBtX2NsYXNzSW5mbyk7Ci0gICAgICAgIH0KLSAgICAgICAgCiAgICAgICAg
IHZvaWQqIHN0cnVjdHVyZUFkZHJlc3MoKQogICAgICAgICB7CiAgICAgICAgICAgICByZXR1cm4g
Jm1fc3RydWN0dXJlOwpAQCAtMTcwLDcgKzE2NCw2IEBAIG5hbWVzcGFjZSBKU0MgewogICAgIHBy
aXZhdGU6CiAgICAgICAgIGZyaWVuZCBjbGFzcyBMTEludE9mZnNldHNFeHRyYWN0b3I7CiAgICAg
ICAgIAotICAgICAgICBjb25zdCBDbGFzc0luZm8qIG1fY2xhc3NJbmZvOwogICAgICAgICBXcml0
ZUJhcnJpZXI8U3RydWN0dXJlPiBtX3N0cnVjdHVyZTsKICAgICB9OwogCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmgJKHJldmlzaW9uIDEyODA3OCkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmgJKHdvcmtpbmcgY29weSkKQEAg
LTM0Niw5ICszNDYsNiBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgU3RydWN0dXJlKiBjcmVh
dGVJbmhlcml0b3JJRChKU0dsb2JhbERhdGEmKTsKIAogICAgICAgICBTdG9yYWdlQmFycmllciBt
X291dE9mTGluZVN0b3JhZ2U7Ci0jaWYgVVNFKEpTVkFMVUUzMl82NCkKLSAgICAgICAgdm9pZCog
bV9wYWRkaW5nOwotI2VuZGlmCiAgICAgfTsKIAogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9Qcm9wZXJ0eU9mZnNldC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1Byb3BlcnR5T2Zmc2V0LmgJKHJldmlzaW9uIDEyODA3OCkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3BlcnR5T2Zmc2V0LmgJKHdvcmtpbmcgY29w
eSkKQEAgLTM0LDkgKzM0LDkgQEAKIG5hbWVzcGFjZSBKU0MgewogCiAjaWYgVVNFKEpTVkFMVUUz
Ml82NCkKLSNkZWZpbmUgSU5MSU5FX1NUT1JBR0VfQ0FQQUNJVFkgNgorI2RlZmluZSBJTkxJTkVf
U1RPUkFHRV9DQVBBQ0lUWSA3CiAjZWxzZQotI2RlZmluZSBJTkxJTkVfU1RPUkFHRV9DQVBBQ0lU
WSA1CisjZGVmaW5lIElOTElORV9TVE9SQUdFX0NBUEFDSVRZIDYKICNlbmRpZgogCiB0eXBlZGVm
IGludCBQcm9wZXJ0eU9mZnNldDsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1N0cnVjdHVyZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1N0cnVjdHVyZS5oCShyZXZpc2lvbiAxMjgwNzgpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9TdHJ1Y3R1cmUuaAkod29ya2luZyBjb3B5KQpAQCAtNTU0LDE2ICs1NTQsNiBAQCBu
YW1lc3BhY2UgSlNDIHsKICAgICAgICAgbV9zdHJ1Y3R1cmUuc2V0KGdsb2JhbERhdGEsIHRoaXMs
IHN0cnVjdHVyZSk7CiAgICAgfQogCi0gICAgaW5saW5lIGNvbnN0IENsYXNzSW5mbyogSlNDZWxs
Ojp2YWxpZGF0ZWRDbGFzc0luZm8oKSBjb25zdAotICAgIHsKLSNpZiBFTkFCTEUoR0NfVkFMSURB
VElPTikKLSAgICAgICAgQVNTRVJUKG1fc3RydWN0dXJlLnVudmFsaWRhdGVkR2V0KCktPmNsYXNz
SW5mbygpID09IG1fY2xhc3NJbmZvKTsKLSNlbHNlCi0gICAgICAgIEFTU0VSVChtX3N0cnVjdHVy
ZS0+Y2xhc3NJbmZvKCkgPT0gbV9jbGFzc0luZm8pOwotI2VuZGlmCi0gICAgICAgIHJldHVybiBt
X2NsYXNzSW5mbzsKLSAgICB9Ci0KICAgICBBTFdBWVNfSU5MSU5FIHZvaWQgTWFya1N0YWNrOjpp
bnRlcm5hbEFwcGVuZChKU0NlbGwqIGNlbGwpCiAgICAgewogICAgICAgICBBU1NFUlQoIW1faXND
aGVja2luZ0ZvckRlZmF1bHRNYXJrVmlvbGF0aW9uKTsKQEAgLTYwMyw4ICs1OTMsNyBAQCBuYW1l
c3BhY2UgSlNDIHsKICAgICB9CiAKICAgICBpbmxpbmUgSlNDZWxsOjpKU0NlbGwoSlNHbG9iYWxE
YXRhJiBnbG9iYWxEYXRhLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKLSAgICAgICAgOiBtX2NsYXNz
SW5mbyhzdHJ1Y3R1cmUtPmNsYXNzSW5mbygpKQotICAgICAgICAsIG1fc3RydWN0dXJlKGdsb2Jh
bERhdGEsIHRoaXMsIHN0cnVjdHVyZSkKKyAgICAgICAgOiBtX3N0cnVjdHVyZShnbG9iYWxEYXRh
LCB0aGlzLCBzdHJ1Y3R1cmUpCiAgICAgewogICAgIH0KIApAQCAtNjE2LDcgKzYwNSw2IEBAIG5h
bWVzcGFjZSBKU0MgewogICAgICAgICBpZiAoc3RydWN0dXJlKQogI2VuZGlmCiAgICAgICAgICAg
ICBtX3N0cnVjdHVyZS5zZXRFYXJseVZhbHVlKGdsb2JhbERhdGEsIHRoaXMsIHN0cnVjdHVyZSk7
Ci0gICAgICAgIG1fY2xhc3NJbmZvID0gc3RydWN0dXJlLT5jbGFzc0luZm8oKTsKICAgICAgICAg
Ly8gVmVyeSBmaXJzdCBzZXQgb2YgYWxsb2NhdGlvbnMgd29uJ3QgaGF2ZSBhIHJlYWwgc3RydWN0
dXJlLgogICAgICAgICBBU1NFUlQobV9zdHJ1Y3R1cmUgfHwgIWdsb2JhbERhdGEuc3RydWN0dXJl
U3RydWN0dXJlKTsKICAgICB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>163258</attachid>
            <date>2012-09-10 18:09:27 -0700</date>
            <delta_ts>2012-09-10 22:05:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-96311-20120910180903.patch</filename>
            <type>text/plain</type>
            <size>15867</size>
            <attacher name="Mark Hahnenberg">mhahnenberg</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTI4MTM2KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQzIEBA
CisyMDEyLTA5LTEwICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFobmVuYmVyZ0BhcHBsZS5jb20+CisK
KyAgICAgICAgUmVtb3ZlIG1fY2xhc3NJbmZvIGZyb20gSlNDZWxsCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NjMxMQorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vdyB0aGF0IG5vIG9uZSBpcyB1c2luZyB0
aGUgQ2xhc3NJbmZvIGluIEpTQ2VsbCwgd2UgY2FuIHJlbW92ZSBpdCBmb3IgdGhlIGdyZWF0ZXIg
Z29vZC4gVGhpcyBpcyBhIDEuNSUgd2luIG9uIHY4djcgYW5kIAorICAgICAgICBhIDEuNyUgd2lu
IG9uIGtyYWtlbiwgYW5kIGlzIGFuIG92ZXJhbGwgcGVyZm9ybWFuY2UgcHJvZ3Jlc3Npb24uCisK
KyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQuaDoKKyAgICAgICAgKEpTQzo6REZHOjpT
cGVjdWxhdGl2ZUpJVDo6ZW1pdEFsbG9jYXRlQmFzaWNKU09iamVjdCk6IEhhZCB0byByZWFycmFu
Z2UgdGhlIG9yZGVyIG9mIHdoZW4gd2UgdGFrZSB0aGluZ3Mgb2ZmIHRoZSBmcmVlIGxpc3QgCisg
ICAgICAgIGFuZCB3aGVuIHdlIHN0b3JlIHRoZSBTdHJ1Y3R1cmUgaW4gdGhlIG9iamVjdCBiZWNh
dXNlIHdlIHdvdWxkIGNsb2JiZXIgdGhlIGZyZWUgbGlzdCBvdGhlcndpc2UuIFRoaXMgbWFkZSBp
dCBub3Qgb2theSBmb3IgCisgICAgICAgIHRoZSBzdHJ1Y3R1cmUgYXJndW1lbnQgYW5kIHRoZSBz
Y3JhdGNoIHJlZ2lzdGVyIHRvIGFsaWFzIG9uZSBhbm90aGVyLiBBbHNvIHJlbW92ZWQgdGhlIHN0
b3JlIG9mIHRoZSBDbGFzc0luZm8gcG9pbnRlciBpbiB0aGUKKyAgICAgICAgb2JqZWN0LiBZYXkh
CisgICAgICAgIChTcGVjdWxhdGl2ZUpJVCk6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZl
SklUMzJfNjQuY3BwOiBTaW5jZSBpdCdzIG5vIGxvbmdlciBva2F5IGZvciBmb3IgdGhlIHNjcmF0
Y2ggcmVnaXN0ZXIgYW5kIHN0cnVjdHVyZSByZWdpc3RlciB0byBhbGlhcyAKKyAgICAgICAgb25l
IGFub3RoZXIgYXMgc3RhdGVkIGFib3ZlLCBoYWQgdG8gYWRkIGFuIGV4dHJhIHRlbXBvcmFyeSBm
b3IgcGFzc2luZyB0aGUgU3RydWN0dXJlLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZl
SklUOjpjb21waWxlKToKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHA6IERp
dHRvLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlKToKKyAgICAg
ICAgKiBqaXQvSklUSW5saW5lTWV0aG9kcy5oOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRBbGxv
Y2F0ZUJhc2ljSlNPYmplY3QpOiBTaW1pbGFyIGNoYW5nZXMgdG8gREZHJ3MgaW5saW5lIGFsbG9j
YXRpb24gZXhjZXB0IHRoYXQgaXQgcmVtb3ZlZCB0aGUgb2JqZWN0IGZyb20gCisgICAgICAgIHRo
ZSBmcmVlIGxpc3QgZmlyc3QsIHNvIG5vIGNoYW5nZXMgd2VyZSBuZWNlc3NhcnkgdGhlcmUuCisg
ICAgICAgICogbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5hc206IENoYW5nZSB0aGUgY29uc3Rh
bnRzIGZvciBhbW91bnQgb2YgaW5saW5lIHN0b3JhZ2UgdG8gbWF0Y2ggUHJvcGVydHlPZmZzZXQu
aCBhbmQgcmVtb3ZlIAorICAgICAgICB0aGUgc3RvcmUgb2YgdGhlIENsYXNzSW5mbyBwb2ludGVy
IGR1cmluZyBpbmxpbmUgYWxsb2NhdGlvbi4KKyAgICAgICAgKiBsbGludC9Mb3dMZXZlbEludGVy
cHJldGVyMzJfNjQuYXNtOgorICAgICAgICAqIGxsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXI2NC5h
c206CisgICAgICAgICogcnVudGltZS9KU0NlbGwuaDogUmVtb3ZlIHRoZSBtX2NsYXNzSW5mbyBm
aWVsZCBhbmQgYXNzb2NpYXRlZCBtZXRob2RzLgorICAgICAgICAoSlNDZWxsKToKKyAgICAgICAg
KiBydW50aW1lL0pTT2JqZWN0Lmg6CisgICAgICAgIChKU09iamVjdCk6CisgICAgICAgICogcnVu
dGltZS9Qcm9wZXJ0eU9mZnNldC5oOiBFeHBhbmQgdGhlIG51bWJlciBvZiBpbmxpbmUgc3RvcmFn
ZSBwcm9wZXJ0aWVzIHRvIHRha2UgdXAgdGhlIGV4dHJhIHNwYWNlIHRoYXQgd2UncmUgZnJlZWlu
ZyAKKyAgICAgICAgd2l0aCB0aGUgcmVtb3ZhbCBvZiB0aGUgQ2xhc3NJbmZvIHBvaW50ZXIuCisg
ICAgICAgIChKU0MpOgorICAgICAgICAqIHJ1bnRpbWUvU3RydWN0dXJlLmg6CisgICAgICAgIChK
U0MpOgorICAgICAgICAoSlNDOjpKU0NlbGw6OkpTQ2VsbCk6CisgICAgICAgIChKU0M6OkpTQ2Vs
bDo6ZmluaXNoQ3JlYXRpb24pOgorCiAyMDEyLTA5LTEwICBHZW9mZnJleSBHYXJlbiAgPGdnYXJl
bkBhcHBsZS5jb20+CiAKICAgICAgICAgVHJ5IHRvIGZpeCB0aGUgV2luZG93cyAoMzItYml0KSBi
dWlsZC4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQz
Ml82NC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVj
dWxhdGl2ZUpJVDMyXzY0LmNwcAkocmV2aXNpb24gMTI4MTM2KQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MzI5NiwxOCArMzI5NiwyMCBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlKE5vZGUmIG5v
ZGUpCiAgICAgICAgIAogICAgICAgICBTcGVjdWxhdGVDZWxsT3BlcmFuZCBjYWxsZWUodGhpcywg
bm9kZS5jaGlsZDEoKSk7CiAgICAgICAgIEdQUlRlbXBvcmFyeSByZXN1bHQodGhpcyk7CisgICAg
ICAgIEdQUlRlbXBvcmFyeSBzdHJ1Y3R1cmUodGhpcyk7CiAgICAgICAgIEdQUlRlbXBvcmFyeSBz
Y3JhdGNoKHRoaXMpOwogICAgICAgICAKICAgICAgICAgR1BSUmVnIGNhbGxlZUdQUiA9IGNhbGxl
ZS5ncHIoKTsKICAgICAgICAgR1BSUmVnIHJlc3VsdEdQUiA9IHJlc3VsdC5ncHIoKTsKKyAgICAg
ICAgR1BSUmVnIHN0cnVjdHVyZUdQUiA9IHN0cnVjdHVyZS5ncHIoKTsKICAgICAgICAgR1BSUmVn
IHNjcmF0Y2hHUFIgPSBzY3JhdGNoLmdwcigpOwogICAgICAgICAKICAgICAgICAgLy8gTG9hZCB0
aGUgaW5oZXJpdG9ySUQuIElmIHRoZSBpbmhlcml0b3JJRCBpcyBub3Qgc2V0LCBnbyB0byBzbG93
IHBhdGguCi0gICAgICAgIG1faml0LmxvYWRQdHIoTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MoY2Fs
bGVlR1BSLCBKU0Z1bmN0aW9uOjpvZmZzZXRPZkNhY2hlZEluaGVyaXRvcklEKCkpLCBzY3JhdGNo
R1BSKTsKKyAgICAgICAgbV9qaXQubG9hZFB0cihNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhjYWxs
ZWVHUFIsIEpTRnVuY3Rpb246Om9mZnNldE9mQ2FjaGVkSW5oZXJpdG9ySUQoKSksIHN0cnVjdHVy
ZUdQUik7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wTGlzdCBzbG93UGF0aDsKLSAgICAg
ICAgc2xvd1BhdGguYXBwZW5kKG1faml0LmJyYW5jaFRlc3RQdHIoTWFjcm9Bc3NlbWJsZXI6Olpl
cm8sIHNjcmF0Y2hHUFIpKTsKKyAgICAgICAgc2xvd1BhdGguYXBwZW5kKG1faml0LmJyYW5jaFRl
c3RQdHIoTWFjcm9Bc3NlbWJsZXI6Olplcm8sIHN0cnVjdHVyZUdQUikpOwogICAgICAgICAKLSAg
ICAgICAgZW1pdEFsbG9jYXRlSlNGaW5hbE9iamVjdChzY3JhdGNoR1BSLCByZXN1bHRHUFIsIHNj
cmF0Y2hHUFIsIHNsb3dQYXRoKTsKKyAgICAgICAgZW1pdEFsbG9jYXRlSlNGaW5hbE9iamVjdChz
dHJ1Y3R1cmVHUFIsIHJlc3VsdEdQUiwgc2NyYXRjaEdQUiwgc2xvd1BhdGgpOwogICAgICAgICAK
ICAgICAgICAgYWRkU2xvd1BhdGhHZW5lcmF0b3Ioc2xvd1BhdGhDYWxsKHNsb3dQYXRoLCB0aGlz
LCBvcGVyYXRpb25DcmVhdGVUaGlzLCByZXN1bHRHUFIsIGNhbGxlZUdQUikpOwogICAgICAgICAK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJ
VDY0LmNwcAkocmV2aXNpb24gMTI4MTM2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdTcGVjdWxhdGl2ZUpJVDY0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzI4OSwxOCArMzI4OSwy
MCBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlKE5vZGUmIG5vZGUpCiAgICAgICAgIAog
ICAgICAgICBTcGVjdWxhdGVDZWxsT3BlcmFuZCBjYWxsZWUodGhpcywgbm9kZS5jaGlsZDEoKSk7
CiAgICAgICAgIEdQUlRlbXBvcmFyeSByZXN1bHQodGhpcyk7CisgICAgICAgIEdQUlRlbXBvcmFy
eSBzdHJ1Y3R1cmUodGhpcyk7CiAgICAgICAgIEdQUlRlbXBvcmFyeSBzY3JhdGNoKHRoaXMpOwog
ICAgICAgICAKICAgICAgICAgR1BSUmVnIGNhbGxlZUdQUiA9IGNhbGxlZS5ncHIoKTsKICAgICAg
ICAgR1BSUmVnIHJlc3VsdEdQUiA9IHJlc3VsdC5ncHIoKTsKKyAgICAgICAgR1BSUmVnIHN0cnVj
dHVyZUdQUiA9IHN0cnVjdHVyZS5ncHIoKTsKICAgICAgICAgR1BSUmVnIHNjcmF0Y2hHUFIgPSBz
Y3JhdGNoLmdwcigpOwogICAgICAgICAKICAgICAgICAgLy8gTG9hZCB0aGUgaW5oZXJpdG9ySUQu
IElmIHRoZSBpbmhlcml0b3JJRCBpcyBub3Qgc2V0LCBnbyB0byBzbG93IHBhdGguCi0gICAgICAg
IG1faml0LmxvYWRQdHIoTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MoY2FsbGVlR1BSLCBKU0Z1bmN0
aW9uOjpvZmZzZXRPZkNhY2hlZEluaGVyaXRvcklEKCkpLCBzY3JhdGNoR1BSKTsKKyAgICAgICAg
bV9qaXQubG9hZFB0cihNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhjYWxsZWVHUFIsIEpTRnVuY3Rp
b246Om9mZnNldE9mQ2FjaGVkSW5oZXJpdG9ySUQoKSksIHN0cnVjdHVyZUdQUik7CiAgICAgICAg
IE1hY3JvQXNzZW1ibGVyOjpKdW1wTGlzdCBzbG93UGF0aDsKLSAgICAgICAgc2xvd1BhdGguYXBw
ZW5kKG1faml0LmJyYW5jaFRlc3RQdHIoTWFjcm9Bc3NlbWJsZXI6Olplcm8sIHNjcmF0Y2hHUFIp
KTsKKyAgICAgICAgc2xvd1BhdGguYXBwZW5kKG1faml0LmJyYW5jaFRlc3RQdHIoTWFjcm9Bc3Nl
bWJsZXI6Olplcm8sIHN0cnVjdHVyZUdQUikpOwogICAgICAgICAKLSAgICAgICAgZW1pdEFsbG9j
YXRlSlNGaW5hbE9iamVjdChzY3JhdGNoR1BSLCByZXN1bHRHUFIsIHNjcmF0Y2hHUFIsIHNsb3dQ
YXRoKTsKKyAgICAgICAgZW1pdEFsbG9jYXRlSlNGaW5hbE9iamVjdChzdHJ1Y3R1cmVHUFIsIHJl
c3VsdEdQUiwgc2NyYXRjaEdQUiwgc2xvd1BhdGgpOwogICAgICAgICAKICAgICAgICAgYWRkU2xv
d1BhdGhHZW5lcmF0b3Ioc2xvd1BhdGhDYWxsKHNsb3dQYXRoLCB0aGlzLCBvcGVyYXRpb25DcmVh
dGVUaGlzLCByZXN1bHRHUFIsIGNhbGxlZUdQUikpOwogICAgICAgICAKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmgJKHJldmlzaW9uIDEyODEz
NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaAkod29y
a2luZyBjb3B5KQpAQCAtMjE2MSw3ICsyMTYxLDkgQEAgcHVibGljOgogICAgIHZvaWQgY29tcGls
ZU5ld0Z1bmN0aW9uTm9DaGVjayhOb2RlJik7CiAgICAgdm9pZCBjb21waWxlTmV3RnVuY3Rpb25F
eHByZXNzaW9uKE5vZGUmKTsKICAgICBib29sIGNvbXBpbGVSZWdFeHBFeGVjKE5vZGUmKTsKLSAg
ICAKKyAgIAorICAgIC8vIEl0IGlzIE5PVCBva2F5IGZvciB0aGUgc3RydWN0dXJlIGFuZCB0aGUg
c2NyYXRjaCByZWdpc3RlciB0byBiZSB0aGUgc2FtZSB0aGluZyBiZWNhdXNlIGlmIHRoZXkgYXJl
IHRoZW4gdGhlIFN0cnVjdHVyZSB3aWxsIAorICAgIC8vIGdldCBjbG9iYmVyZWQuIAogICAgIHRl
bXBsYXRlIDx0eXBlbmFtZSBDbGFzc1R5cGUsIGJvb2wgZGVzdHJ1Y3RvciwgdHlwZW5hbWUgU3Ry
dWN0dXJlVHlwZT4gCiAgICAgdm9pZCBlbWl0QWxsb2NhdGVCYXNpY0pTT2JqZWN0KFN0cnVjdHVy
ZVR5cGUgc3RydWN0dXJlLCBHUFJSZWcgcmVzdWx0R1BSLCBHUFJSZWcgc2NyYXRjaEdQUiwgTWFj
cm9Bc3NlbWJsZXI6Okp1bXBMaXN0JiBzbG93UGF0aCkKICAgICB7CkBAIC0yMTc2LDI0ICsyMTc4
LDE2IEBAIHB1YmxpYzoKICAgICAgICAgCiAgICAgICAgIC8vIFRoZSBvYmplY3QgaXMgaGFsZi1h
bGxvY2F0ZWQ6IHdlIGhhdmUgd2hhdCB3ZSBrbm93IGlzIGEgZnJlc2ggb2JqZWN0LCBidXQKICAg
ICAgICAgLy8gaXQncyBzdGlsbCBvbiB0aGUgR0MncyBmcmVlIGxpc3QuCi0gICAgICAgIAotICAg
ICAgICAvLyBEaXRjaCB0aGUgc3RydWN0dXJlIGJ5IHBsYWNpbmcgaXQgaW50byB0aGUgc3RydWN0
dXJlIHNsb3QsIHNvIHRoYXQgd2UgY2FuIHJldXNlCi0gICAgICAgIC8vIHNjcmF0Y2hHUFIuCi0g
ICAgICAgIG1faml0LnN0b3JlUHRyKHN0cnVjdHVyZSwgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3Mo
cmVzdWx0R1BSLCBKU09iamVjdDo6c3RydWN0dXJlT2Zmc2V0KCkpKTsKLSAgICAgICAgCi0gICAg
ICAgIC8vIE5vdyB0aGF0IHdlIGhhdmUgc2NyYXRjaEdQUiBiYWNrLCByZW1vdmUgdGhlIG9iamVj
dCBmcm9tIHRoZSBmcmVlIGxpc3QKICAgICAgICAgbV9qaXQubG9hZFB0cihNYWNyb0Fzc2VtYmxl
cjo6QWRkcmVzcyhyZXN1bHRHUFIpLCBzY3JhdGNoR1BSKTsKICAgICAgICAgbV9qaXQuc3RvcmVQ
dHIoc2NyYXRjaEdQUiwgJmFsbG9jYXRvci0+bV9mcmVlTGlzdC5oZWFkKTsKLSAgICAgICAgCi0g
ICAgICAgIC8vIEluaXRpYWxpemUgdGhlIG9iamVjdCdzIGNsYXNzSW5mbyBwb2ludGVyCi0gICAg
ICAgIG1faml0LnN0b3JlUHRyKE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tUHRyKCZDbGFzc1R5
cGU6OnNfaW5mbyksIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKHJlc3VsdEdQUiwgSlNDZWxsOjpj
bGFzc0luZm9PZmZzZXQoKSkpOworCisgICAgICAgIC8vIEluaXRpYWxpemUgdGhlIG9iamVjdCdz
IFN0cnVjdHVyZS4KKyAgICAgICAgbV9qaXQuc3RvcmVQdHIoc3RydWN0dXJlLCBNYWNyb0Fzc2Vt
Ymxlcjo6QWRkcmVzcyhyZXN1bHRHUFIsIEpTQ2VsbDo6c3RydWN0dXJlT2Zmc2V0KCkpKTsKICAg
ICAgICAgCiAgICAgICAgIC8vIEluaXRpYWxpemUgdGhlIG9iamVjdCdzIHByb3BlcnR5IHN0b3Jh
Z2UgcG9pbnRlci4KICAgICAgICAgbV9qaXQuc3RvcmVQdHIoTWFjcm9Bc3NlbWJsZXI6OlRydXN0
ZWRJbW1QdHIoMCksIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKHJlc3VsdEdQUiwgQ2xhc3NUeXBl
OjpvZmZzZXRPZk91dE9mTGluZVN0b3JhZ2UoKSkpOwogICAgIH0KIAotICAgIC8vIEl0IGlzIGFj
Y2VwdGFibGUgdG8gaGF2ZSBzdHJ1Y3R1cmUgYmUgZXF1YWwgdG8gc2NyYXRjaCwgc28gbG9uZyBh
cyB5b3UncmUgZmluZQotICAgIC8vIHdpdGggdGhlIHN0cnVjdHVyZSBHUFIgYmVpbmcgY2xvYmJl
cmVkLgogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CiAgICAgdm9pZCBlbWl0QWxsb2NhdGVKU0Zp
bmFsT2JqZWN0KFQgc3RydWN0dXJlLCBHUFJSZWcgcmVzdWx0R1BSLCBHUFJSZWcgc2NyYXRjaEdQ
UiwgTWFjcm9Bc3NlbWJsZXI6Okp1bXBMaXN0JiBzbG93UGF0aCkKICAgICB7CkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVElubGluZU1ldGhvZHMuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVElubGluZU1ldGhvZHMuaAkocmV2aXNpb24gMTI4
MTM2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRJbmxpbmVNZXRob2RzLmgJKHdv
cmtpbmcgY29weSkKQEAgLTQyMiw5ICs0MjIsNiBAQCB0ZW1wbGF0ZSA8dHlwZW5hbWUgQ2xhc3NU
eXBlLCBib29sIGRlc3RyCiAgICAgLy8gaW5pdGlhbGl6ZSB0aGUgb2JqZWN0J3Mgc3RydWN0dXJl
CiAgICAgc3RvcmVQdHIoc3RydWN0dXJlLCBBZGRyZXNzKHJlc3VsdCwgSlNDZWxsOjpzdHJ1Y3R1
cmVPZmZzZXQoKSkpOwogCi0gICAgLy8gaW5pdGlhbGl6ZSB0aGUgb2JqZWN0J3MgY2xhc3NJbmZv
IHBvaW50ZXIKLSAgICBzdG9yZVB0cihUcnVzdGVkSW1tUHRyKCZDbGFzc1R5cGU6OnNfaW5mbyks
IEFkZHJlc3MocmVzdWx0LCBKU0NlbGw6OmNsYXNzSW5mb09mZnNldCgpKSk7Ci0KICAgICAvLyBp
bml0aWFsaXplIHRoZSBvYmplY3QncyBwcm9wZXJ0eSBzdG9yYWdlIHBvaW50ZXIKICAgICBzdG9y
ZVB0cihUcnVzdGVkSW1tUHRyKDApLCBBZGRyZXNzKHJlc3VsdCwgQ2xhc3NUeXBlOjpvZmZzZXRP
Zk91dE9mTGluZVN0b3JhZ2UoKSkpOwogfQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2xs
aW50L0xvd0xldmVsSW50ZXJwcmV0ZXIzMl82NC5hc20KPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIzMl82NC5hc20JKHJldmlzaW9u
IDEyODEzNikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJl
dGVyMzJfNjQuYXNtCSh3b3JraW5nIGNvcHkpCkBAIC0zNTIsNyArMzUyLDcgQEAgX2xsaW50X29w
X2NyZWF0ZV90aGlzOgogICAgIGxvYWRwIENhbGxlZVtjZnJdLCB0MAogICAgIGxvYWRwIEpTRnVu
Y3Rpb246Om1fY2FjaGVkSW5oZXJpdG9ySURbdDBdLCB0MgogICAgIGJ0cHogdDIsIC5vcENyZWF0
ZVRoaXNTbG93Ci0gICAgYWxsb2NhdGVCYXNpY0pTT2JqZWN0KEpTRmluYWxPYmplY3RTaXplQ2xh
c3NJbmRleCwgSlNHbG9iYWxEYXRhOjpqc0ZpbmFsT2JqZWN0Q2xhc3NJbmZvLCB0MiwgdDAsIHQx
LCB0MywgLm9wQ3JlYXRlVGhpc1Nsb3cpCisgICAgYWxsb2NhdGVCYXNpY0pTT2JqZWN0KEpTRmlu
YWxPYmplY3RTaXplQ2xhc3NJbmRleCwgdDIsIHQwLCB0MSwgdDMsIC5vcENyZWF0ZVRoaXNTbG93
KQogICAgIGxvYWRpIDRbUENdLCB0MQogICAgIHN0b3JlaSBDZWxsVGFnLCBUYWdPZmZzZXRbY2Zy
LCB0MSwgOF0KICAgICBzdG9yZWkgdDAsIFBheWxvYWRPZmZzZXRbY2ZyLCB0MSwgOF0KQEAgLTM4
NCw3ICszODQsNyBAQCBfbGxpbnRfb3BfbmV3X29iamVjdDoKICAgICBsb2FkcCBDb2RlQmxvY2tb
Y2ZyXSwgdDAKICAgICBsb2FkcCBDb2RlQmxvY2s6Om1fZ2xvYmFsT2JqZWN0W3QwXSwgdDAKICAg
ICBsb2FkcCBKU0dsb2JhbE9iamVjdDo6bV9lbXB0eU9iamVjdFN0cnVjdHVyZVt0MF0sIHQxCi0g
ICAgYWxsb2NhdGVCYXNpY0pTT2JqZWN0KEpTRmluYWxPYmplY3RTaXplQ2xhc3NJbmRleCwgSlNH
bG9iYWxEYXRhOjpqc0ZpbmFsT2JqZWN0Q2xhc3NJbmZvLCB0MSwgdDAsIHQyLCB0MywgLm9wTmV3
T2JqZWN0U2xvdykKKyAgICBhbGxvY2F0ZUJhc2ljSlNPYmplY3QoSlNGaW5hbE9iamVjdFNpemVD
bGFzc0luZGV4LCB0MSwgdDAsIHQyLCB0MywgLm9wTmV3T2JqZWN0U2xvdykKICAgICBsb2FkaSA0
W1BDXSwgdDEKICAgICBzdG9yZWkgQ2VsbFRhZywgVGFnT2Zmc2V0W2NmciwgdDEsIDhdCiAgICAg
c3RvcmVpIHQwLCBQYXlsb2FkT2Zmc2V0W2NmciwgdDEsIDhdCkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0LmFzbQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0LmFzbQkocmV2
aXNpb24gMTI4MTM2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50
ZXJwcmV0ZXI2NC5hc20JKHdvcmtpbmcgY29weSkKQEAgLTIzNiw3ICsyMzYsNyBAQCBfbGxpbnRf
b3BfY3JlYXRlX3RoaXM6CiAgICAgbG9hZHAgQ2FsbGVlW2Nmcl0sIHQwCiAgICAgbG9hZHAgSlNG
dW5jdGlvbjo6bV9jYWNoZWRJbmhlcml0b3JJRFt0MF0sIHQyCiAgICAgYnRweiB0MiwgLm9wQ3Jl
YXRlVGhpc1Nsb3cKLSAgICBhbGxvY2F0ZUJhc2ljSlNPYmplY3QoSlNGaW5hbE9iamVjdFNpemVD
bGFzc0luZGV4LCBKU0dsb2JhbERhdGE6OmpzRmluYWxPYmplY3RDbGFzc0luZm8sIHQyLCB0MCwg
dDEsIHQzLCAub3BDcmVhdGVUaGlzU2xvdykKKyAgICBhbGxvY2F0ZUJhc2ljSlNPYmplY3QoSlNG
aW5hbE9iamVjdFNpemVDbGFzc0luZGV4LCB0MiwgdDAsIHQxLCB0MywgLm9wQ3JlYXRlVGhpc1Ns
b3cpCiAgICAgbG9hZGlzIDhbUEIsIFBDLCA4XSwgdDEKICAgICBzdG9yZXAgdDAsIFtjZnIsIHQx
LCA4XQogICAgIGRpc3BhdGNoKDIpCkBAIC0yNjcsNyArMjY3LDcgQEAgX2xsaW50X29wX25ld19v
YmplY3Q6CiAgICAgbG9hZHAgQ29kZUJsb2NrW2Nmcl0sIHQwCiAgICAgbG9hZHAgQ29kZUJsb2Nr
OjptX2dsb2JhbE9iamVjdFt0MF0sIHQwCiAgICAgbG9hZHAgSlNHbG9iYWxPYmplY3Q6Om1fZW1w
dHlPYmplY3RTdHJ1Y3R1cmVbdDBdLCB0MQotICAgIGFsbG9jYXRlQmFzaWNKU09iamVjdChKU0Zp
bmFsT2JqZWN0U2l6ZUNsYXNzSW5kZXgsIEpTR2xvYmFsRGF0YTo6anNGaW5hbE9iamVjdENsYXNz
SW5mbywgdDEsIHQwLCB0MiwgdDMsIC5vcE5ld09iamVjdFNsb3cpCisgICAgYWxsb2NhdGVCYXNp
Y0pTT2JqZWN0KEpTRmluYWxPYmplY3RTaXplQ2xhc3NJbmRleCwgdDEsIHQwLCB0MiwgdDMsIC5v
cE5ld09iamVjdFNsb3cpCiAgICAgbG9hZGlzIDhbUEIsIFBDLCA4XSwgdDEKICAgICBzdG9yZXAg
dDAsIFtjZnIsIHQxLCA4XQogICAgIGRpc3BhdGNoKDIpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5hc20KPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuYXNtCShyZXZpc2lvbiAx
MjgxMzYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRl
ci5hc20JKHdvcmtpbmcgY29weSkKQEAgLTg2LDkgKzg2LDkgQEAgY29uc3QgSGFzaEZsYWdzOEJp
dEJ1ZmZlciA9IDY0CiAKICMgUHJvcGVydHkgc3RvcmFnZSBjb25zdGFudHMKIGlmIEpTVkFMVUU2
NAotICAgIGNvbnN0IElubGluZVN0b3JhZ2VDYXBhY2l0eSA9IDUKLWVsc2UKICAgICBjb25zdCBJ
bmxpbmVTdG9yYWdlQ2FwYWNpdHkgPSA2CitlbHNlCisgICAgY29uc3QgSW5saW5lU3RvcmFnZUNh
cGFjaXR5ID0gNwogZW5kCiAKICMgQWxsb2NhdGlvbiBjb25zdGFudHMKQEAgLTMxMCw3ICszMTAs
NyBAQCBtYWNybyBmdW5jdGlvbkluaXRpYWxpemF0aW9uKHByb2ZpbGVBcmdTCiAuc3RhY2tIZWln
aHRPSzoKIGVuZAogCi1tYWNybyBhbGxvY2F0ZUJhc2ljSlNPYmplY3Qoc2l6ZUNsYXNzSW5kZXgs
IGNsYXNzSW5mb09mZnNldCwgc3RydWN0dXJlLCByZXN1bHQsIHNjcmF0Y2gxLCBzY3JhdGNoMiwg
c2xvd0Nhc2UpCittYWNybyBhbGxvY2F0ZUJhc2ljSlNPYmplY3Qoc2l6ZUNsYXNzSW5kZXgsIHN0
cnVjdHVyZSwgcmVzdWx0LCBzY3JhdGNoMSwgc2NyYXRjaDIsIHNsb3dDYXNlKQogICAgIGlmIEFM
V0FZU19BTExPQ0FURV9TTE9XCiAgICAgICAgIGptcCBzbG93Q2FzZQogICAgIGVsc2UKQEAgLTMz
OCw4ICszMzgsNiBAQCBtYWNybyBhbGxvY2F0ZUJhc2ljSlNPYmplY3Qoc2l6ZUNsYXNzSW5kCiAg
ICAgICAgIHN0b3JlcCBzY3JhdGNoMiwgb2Zmc2V0T2ZNeVNpemVDbGFzcyArIG9mZnNldE9mRmly
c3RGcmVlQ2VsbFtzY3JhdGNoMV0KICAgICAKICAgICAgICAgIyBJbml0aWFsaXplIHRoZSBvYmpl
Y3QuCi0gICAgICAgIGxvYWRwIGNsYXNzSW5mb09mZnNldFtzY3JhdGNoMV0sIHNjcmF0Y2gyCi0g
ICAgICAgIHN0b3JlcCBzY3JhdGNoMiwgW3Jlc3VsdF0KICAgICAgICAgc3RvcmVwIHN0cnVjdHVy
ZSwgSlNDZWxsOjptX3N0cnVjdHVyZVtyZXN1bHRdCiAgICAgICAgIHN0b3JlcCAwLCBKU09iamVj
dDo6bV9vdXRPZkxpbmVTdG9yYWdlW3Jlc3VsdF0KICAgICBlbmQKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTQ2VsbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTQ2VsbC5oCShyZXZpc2lvbiAxMjgxMzYpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGwuaAkod29ya2luZyBjb3B5KQpAQCAtMTA5LDcgKzEw
OSw2IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgICAgIC8vIE9iamVjdCBvcGVyYXRpb25zLCB3
aXRoIHRoZSB0b09iamVjdCBvcGVyYXRpb24gaW5jbHVkZWQuCiAgICAgICAgIGNvbnN0IENsYXNz
SW5mbyogY2xhc3NJbmZvKCkgY29uc3Q7Ci0gICAgICAgIGNvbnN0IENsYXNzSW5mbyogdmFsaWRh
dGVkQ2xhc3NJbmZvKCkgY29uc3Q7CiAgICAgICAgIGNvbnN0IE1ldGhvZFRhYmxlKiBtZXRob2RU
YWJsZSgpIGNvbnN0OwogICAgICAgICBzdGF0aWMgdm9pZCBwdXQoSlNDZWxsKiwgRXhlY1N0YXRl
KiwgUHJvcGVydHlOYW1lLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgc3Rh
dGljIHZvaWQgcHV0QnlJbmRleChKU0NlbGwqLCBFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0
eU5hbWUsIEpTVmFsdWUsIGJvb2wgc2hvdWxkVGhyb3cpOwpAQCAtMTM0LDExICsxMzMsNiBAQCBu
YW1lc3BhY2UgSlNDIHsKICAgICAgICAgICAgIHJldHVybiBPQkpFQ1RfT0ZGU0VUT0YoSlNDZWxs
LCBtX3N0cnVjdHVyZSk7CiAgICAgICAgIH0KIAotICAgICAgICBzdGF0aWMgcHRyZGlmZl90IGNs
YXNzSW5mb09mZnNldCgpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBPQkpFQ1RfT0ZG
U0VUT0YoSlNDZWxsLCBtX2NsYXNzSW5mbyk7Ci0gICAgICAgIH0KLSAgICAgICAgCiAgICAgICAg
IHZvaWQqIHN0cnVjdHVyZUFkZHJlc3MoKQogICAgICAgICB7CiAgICAgICAgICAgICByZXR1cm4g
Jm1fc3RydWN0dXJlOwpAQCAtMTcxLDcgKzE2NSw2IEBAIG5hbWVzcGFjZSBKU0MgewogICAgIHBy
aXZhdGU6CiAgICAgICAgIGZyaWVuZCBjbGFzcyBMTEludE9mZnNldHNFeHRyYWN0b3I7CiAgICAg
ICAgIAotICAgICAgICBjb25zdCBDbGFzc0luZm8qIG1fY2xhc3NJbmZvOwogICAgICAgICBXcml0
ZUJhcnJpZXI8U3RydWN0dXJlPiBtX3N0cnVjdHVyZTsKICAgICB9OwogCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmgJKHJldmlzaW9uIDEyODEzNikKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmgJKHdvcmtpbmcgY29weSkKQEAg
LTM0Niw5ICszNDYsNiBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgU3RydWN0dXJlKiBjcmVh
dGVJbmhlcml0b3JJRChKU0dsb2JhbERhdGEmKTsKIAogICAgICAgICBTdG9yYWdlQmFycmllciBt
X291dE9mTGluZVN0b3JhZ2U7Ci0jaWYgVVNFKEpTVkFMVUUzMl82NCkKLSAgICAgICAgdm9pZCog
bV9wYWRkaW5nOwotI2VuZGlmCiAgICAgfTsKIAogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9Qcm9wZXJ0eU9mZnNldC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1Byb3BlcnR5T2Zmc2V0LmgJKHJldmlzaW9uIDEyODEzNikKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3BlcnR5T2Zmc2V0LmgJKHdvcmtpbmcgY29w
eSkKQEAgLTM0LDkgKzM0LDkgQEAKIG5hbWVzcGFjZSBKU0MgewogCiAjaWYgVVNFKEpTVkFMVUUz
Ml82NCkKLSNkZWZpbmUgSU5MSU5FX1NUT1JBR0VfQ0FQQUNJVFkgNgorI2RlZmluZSBJTkxJTkVf
U1RPUkFHRV9DQVBBQ0lUWSA3CiAjZWxzZQotI2RlZmluZSBJTkxJTkVfU1RPUkFHRV9DQVBBQ0lU
WSA1CisjZGVmaW5lIElOTElORV9TVE9SQUdFX0NBUEFDSVRZIDYKICNlbmRpZgogCiB0eXBlZGVm
IGludCBQcm9wZXJ0eU9mZnNldDsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1N0cnVjdHVyZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1N0cnVjdHVyZS5oCShyZXZpc2lvbiAxMjgxMzYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9TdHJ1Y3R1cmUuaAkod29ya2luZyBjb3B5KQpAQCAtNTU0LDE2ICs1NTQsNiBAQCBu
YW1lc3BhY2UgSlNDIHsKICAgICAgICAgbV9zdHJ1Y3R1cmUuc2V0KGdsb2JhbERhdGEsIHRoaXMs
IHN0cnVjdHVyZSk7CiAgICAgfQogCi0gICAgaW5saW5lIGNvbnN0IENsYXNzSW5mbyogSlNDZWxs
Ojp2YWxpZGF0ZWRDbGFzc0luZm8oKSBjb25zdAotICAgIHsKLSNpZiBFTkFCTEUoR0NfVkFMSURB
VElPTikKLSAgICAgICAgQVNTRVJUKG1fc3RydWN0dXJlLnVudmFsaWRhdGVkR2V0KCktPmNsYXNz
SW5mbygpID09IG1fY2xhc3NJbmZvKTsKLSNlbHNlCi0gICAgICAgIEFTU0VSVChtX3N0cnVjdHVy
ZS0+Y2xhc3NJbmZvKCkgPT0gbV9jbGFzc0luZm8pOwotI2VuZGlmCi0gICAgICAgIHJldHVybiBt
X2NsYXNzSW5mbzsKLSAgICB9Ci0KICAgICBBTFdBWVNfSU5MSU5FIHZvaWQgU2xvdFZpc2l0b3I6
OmludGVybmFsQXBwZW5kKEpTQ2VsbCogY2VsbCkKICAgICB7CiAgICAgICAgIEFTU0VSVCghbV9p
c0NoZWNraW5nRm9yRGVmYXVsdE1hcmtWaW9sYXRpb24pOwpAQCAtNjAzLDggKzU5Myw3IEBAIG5h
bWVzcGFjZSBKU0MgewogICAgIH0KIAogICAgIGlubGluZSBKU0NlbGw6OkpTQ2VsbChKU0dsb2Jh
bERhdGEmIGdsb2JhbERhdGEsIFN0cnVjdHVyZSogc3RydWN0dXJlKQotICAgICAgICA6IG1fY2xh
c3NJbmZvKHN0cnVjdHVyZS0+Y2xhc3NJbmZvKCkpCi0gICAgICAgICwgbV9zdHJ1Y3R1cmUoZ2xv
YmFsRGF0YSwgdGhpcywgc3RydWN0dXJlKQorICAgICAgICA6IG1fc3RydWN0dXJlKGdsb2JhbERh
dGEsIHRoaXMsIHN0cnVjdHVyZSkKICAgICB7CiAgICAgfQogCkBAIC02MTYsNyArNjA1LDYgQEAg
bmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIGlmIChzdHJ1Y3R1cmUpCiAjZW5kaWYKICAgICAgICAg
ICAgIG1fc3RydWN0dXJlLnNldEVhcmx5VmFsdWUoZ2xvYmFsRGF0YSwgdGhpcywgc3RydWN0dXJl
KTsKLSAgICAgICAgbV9jbGFzc0luZm8gPSBzdHJ1Y3R1cmUtPmNsYXNzSW5mbygpOwogICAgICAg
ICAvLyBWZXJ5IGZpcnN0IHNldCBvZiBhbGxvY2F0aW9ucyB3b24ndCBoYXZlIGEgcmVhbCBzdHJ1
Y3R1cmUuCiAgICAgICAgIEFTU0VSVChtX3N0cnVjdHVyZSB8fCAhZ2xvYmFsRGF0YS5zdHJ1Y3R1
cmVTdHJ1Y3R1cmUpOwogICAgIH0K
</data>

          </attachment>
      

    </bug>

</bugzilla>