<?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>71873</bug_id>
          
          <creation_ts>2011-11-08 18:35:02 -0800</creation_ts>
          <short_desc>Better abstract &apos;abs&apos; operation through the MacroAssembler.</short_desc>
          <delta_ts>2012-03-08 16:34:19 -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>
          <dependson>71876</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Gavin Barraclough">barraclough</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>evilpies</cc>
    
    <cc>ossy</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>498589</commentid>
    <comment_count>0</comment_count>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2011-11-08 18:35:02 -0800</bug_when>
    <thetext>Currently the x86 specific instruction sequence to perform a double abs is duplicated throughout the JITs / thunk generators.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>498590</commentid>
    <comment_count>1</comment_count>
      <attachid>114190</attachid>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2011-11-08 18:36:04 -0800</bug_when>
    <thetext>Created attachment 114190
Fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>498594</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-08 18:40:30 -0800</bug_when>
    <thetext>Attachment 114190 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/JavaScriptCore/ChangeLog&apos;, u&apos;Source...&quot; exit_code: 1

Source/JavaScriptCore/assembler/X86Assembler.h:1571:  andpd_rr is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
Source/JavaScriptCore/assembler/X86Assembler.h:1577:  andpd_mr is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
Source/JavaScriptCore/assembler/X86Assembler.h:1584:  andpd_mr is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
Total errors found: 3 in 14 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>498595</commentid>
    <comment_count>3</comment_count>
      <attachid>114194</attachid>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2011-11-08 18:44:42 -0800</bug_when>
    <thetext>Created attachment 114194
Fixed typo in changelog.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>498601</commentid>
    <comment_count>4</comment_count>
      <attachid>114194</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2011-11-08 18:56:16 -0800</bug_when>
    <thetext>Comment on attachment 114194
Fixed typo in changelog.

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

r=me

&gt; Source/JavaScriptCore/runtime/JSGlobalData.cpp:92
&gt; +const uint64_t MacroAssemblerX86Common::s_maskSignBit = 0x7FFFFFFFFFFFFFFFull;

I think I saw this line of code on Reddit once.

FFFFFFFFFFU!!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>498603</commentid>
    <comment_count>5</comment_count>
      <attachid>114194</attachid>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2011-11-08 19:01:29 -0800</bug_when>
    <thetext>Comment on attachment 114194
Fixed typo in changelog.

committing by hand!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>498604</commentid>
    <comment_count>6</comment_count>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2011-11-08 19:02:34 -0800</bug_when>
    <thetext>Fixed in r99647.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>498650</commentid>
    <comment_count>7</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2011-11-08 22:24:13 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; Fixed in r99647.

It broke jsc and layout tests on all bot.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>498668</commentid>
    <comment_count>8</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2011-11-08 22:50:18 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; Fixed in r99647.

I tried to ping you on #webkit, but I assume you aren&apos;t in the office now.

This patch broke almost all jsc tests and layout tests on SL, GTK and Qt, so
I had to roll it out to recover the test coverage: http://trac.webkit.org/changeset/99652 (when nobody was on board to fix it quickly)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>498684</commentid>
    <comment_count>9</comment_count>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2011-11-08 23:42:44 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; (In reply to comment #6)
&gt; &gt; Fixed in r99647.
&gt; 
&gt; I tried to ping you on #webkit, but I assume you aren&apos;t in the office now.
&gt; 
&gt; This patch broke almost all jsc tests and layout tests on SL, GTK and Qt, so
&gt; I had to roll it out to recover the test coverage: http://trac.webkit.org/changeset/99652 (when nobody was on board to fix it quickly)

Hey Ossy,

I just saw the rollout, I&apos;m still a little confused – the jsc tests all pass on my machine, I&apos;m just re-running the webkit ones now.  Still, clearly looks like something bad happened on the bots, and understood, we can&apos;t leave them broken.

G.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>498692</commentid>
    <comment_count>10</comment_count>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2011-11-09 00:10:26 -0800</bug_when>
    <thetext>Still not seeing any crashes on my machine.  I&apos;m testing on Lion, rather than Snow Leopard, but not obvious what wound be different.  Hmmmm.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>499250</commentid>
    <comment_count>11</comment_count>
    <who name="Tom Schuster">evilpies</who>
    <bug_when>2011-11-09 12:29:25 -0800</bug_when>
    <thetext>We have code in SpiderMonkey for absDouble, in think you could use that. We also have double -&gt; int32 conversation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>574377</commentid>
    <comment_count>12</comment_count>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2012-03-08 16:34:19 -0800</bug_when>
    <thetext>The important parts of this have been re-landed.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>114190</attachid>
            <date>2011-11-08 18:36:04 -0800</date>
            <delta_ts>2011-11-08 18:44:42 -0800</delta_ts>
            <desc>Fix</desc>
            <filename>71873.patch</filename>
            <type>text/plain</type>
            <size>20729</size>
            <attacher name="Gavin Barraclough">barraclough</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gOTk2NDUpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsODMgQEAK
KzIwMTEtMTEtMDggIEdhdmluIEJhcnJhY2xvdWdoICA8YmFycmFjbG91Z2hAYXBwbGUuY29tPgor
CisgICAgICAgIEJldHRlciBhYnN0cmFjdCAnYWJzJyBvcGVyYXRpb24gdGhyb3VnaCB0aGUgTWFj
cm9Bc3NlbWJsZXIuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD03MTg3MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEN1cnJlbnRseSB0aGUgeDg2IHNwZWNpZmljIGluc3RydWN0aW9uIHNlcXVlbmNlIHRvIHBl
cmZvcm0gYSBkb3VibGUgYWJzCisgICAgICAgIGlzIGR1cGxpY2F0ZWQgdGhyb3VnaG91dCB0aGUg
SklUcyAvIHRodW5rIGdlbmVyYXRvcnMuCisKKyAgICAgICAgKiBhc3NlbWJsZXIvTWFjcm9Bc3Nl
bWJsZXJBUk0uaDoKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk06OnN1cHBvcnRzRmxv
YXRpbmdQb2ludCk6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJNOjpzdXBwb3J0c0Zs
b2F0aW5nUG9pbnRUcnVuY2F0ZSk6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJNOjpz
dXBwb3J0c0Zsb2F0aW5nUG9pbnRTcXJ0KToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJB
Uk06OnN1cHBvcnRzRmxvYXRpbmdQb2ludEFicyk6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1i
bGVyQVJNOjphYnNEb3VibGUpOgorICAgICAgICAgICAgLSBSZW5hbWVkIHN1cHBvcnRzRmxvYXRp
bmdQb2ludEFicywgbWFrZSB0aGVzZSBtZXRob2RzIHN0YXRpYyBzbyB0aGF0CisgICAgICAgICAg
ICAgIHdlIGNhbiBjaGVjbiB0aGUgSklUJ3MgY2FwYWJpbGl0ZXMgYmVmb3JlIHdlIGJlZ2luIGNv
bXBpbGF0aW9uLgorICAgICAgICAqIGFzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTXY3Lmg6Cisg
ICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJNdjc6OnN1cHBvcnRzRmxvYXRpbmdQb2ludCk6
CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJNdjc6OnN1cHBvcnRzRmxvYXRpbmdQb2lu
dFRydW5jYXRlKToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk12Nzo6c3VwcG9ydHNG
bG9hdGluZ1BvaW50U3FydCk6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJNdjc6OnN1
cHBvcnRzRmxvYXRpbmdQb2ludEFicyk6CisgICAgICAgICAgICAtIFJlbmFtZWQgc3VwcG9ydHNG
bG9hdGluZ1BvaW50QWJzLCBtYWtlIHRoZXNlIG1ldGhvZHMgc3RhdGljIHNvIHRoYXQKKyAgICAg
ICAgICAgICAgd2UgY2FuIGNoZWNuIHRoZSBKSVQncyBjYXBhYmlsaXRlcyBiZWZvcmUgd2UgYmVn
aW4gY29tcGlsYXRpb24uCisgICAgICAgICogYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyTUlQUy5o
OgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlck1JUFM6OmFic0RvdWJsZSk6CisgICAgICAg
IChKU0M6Ok1hY3JvQXNzZW1ibGVyTUlQUzo6c3VwcG9ydHNGbG9hdGluZ1BvaW50KToKKyAgICAg
ICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJNSVBTOjpzdXBwb3J0c0Zsb2F0aW5nUG9pbnRUcnVuY2F0
ZSk6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyTUlQUzo6c3VwcG9ydHNGbG9hdGluZ1Bv
aW50U3FydCk6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyTUlQUzo6c3VwcG9ydHNGbG9h
dGluZ1BvaW50QWJzKToKKyAgICAgICAgICAgIC0gUmVuYW1lZCBzdXBwb3J0c0Zsb2F0aW5nUG9p
bnRBYnMsIG1ha2UgdGhlc2UgbWV0aG9kcyBzdGF0aWMgc28gdGhhdAorICAgICAgICAgICAgICB3
ZSBjYW4gY2hlY24gdGhlIEpJVCdzIGNhcGFiaWxpdGVzIGJlZm9yZSB3ZSBiZWdpbiBjb21waWxh
dGlvbi4KKyAgICAgICAgKiBhc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJTSDQuaDoKKyAgICAgICAg
KEpTQzo6TWFjcm9Bc3NlbWJsZXJTSDQ6OnN1cHBvcnRzRmxvYXRpbmdQb2ludCk6CisgICAgICAg
IChKU0M6Ok1hY3JvQXNzZW1ibGVyU0g0OjpzdXBwb3J0c0Zsb2F0aW5nUG9pbnRUcnVuY2F0ZSk6
CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyU0g0OjpzdXBwb3J0c0Zsb2F0aW5nUG9pbnRT
cXJ0KToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJTSDQ6OnN1cHBvcnRzRmxvYXRpbmdQ
b2ludEFicyk6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyU0g0OjphYnNEb3VibGUpOgor
ICAgICAgICAgICAgLSBSZW5hbWVkIHN1cHBvcnRzRmxvYXRpbmdQb2ludEFicywgbWFrZSB0aGVz
ZSBtZXRob2RzIHN0YXRpYyBzbyB0aGF0CisgICAgICAgICAgICAgIHdlIGNhbiBjaGVjbiB0aGUg
SklUJ3MgY2FwYWJpbGl0ZXMgYmVmb3JlIHdlIGJlZ2luIGNvbXBpbGF0aW9uLgorICAgICAgICAq
IGFzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4Ni5oOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2Vt
Ymxlclg4Njo6YWJzRG91YmxlKToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJYODY6OnN1
cHBvcnRzRmxvYXRpbmdQb2ludCk6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyWDg2Ojpz
dXBwb3J0c0Zsb2F0aW5nUG9pbnRUcnVuY2F0ZSk6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1i
bGVyWDg2OjpzdXBwb3J0c0Zsb2F0aW5nUG9pbnRTcXJ0KToKKyAgICAgICAgKEpTQzo6TWFjcm9B
c3NlbWJsZXJYODY6OnN1cHBvcnRzRmxvYXRpbmdQb2ludEFicyk6CisgICAgICAgICAgICAtIE1h
ZGUgc3VwcG9ydHMqIG1ldGhvZHMgc3RhdGljIHNvIHRoYXQgd2UgY2FuIGNoZWNuIHRoZSBKSVQn
cworICAgICAgICAgICAgICBjYXBhYmlsaXRlcyBiZWZvcmUgd2UgYmVnaW4gY29tcGlsYXRpb24u
IEFkZGVkIGFic0RvdWJsZS4KKyAgICAgICAgKiBhc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJYODZD
b21tb24uaDoKKyAgICAgICAgICAgIC0gUmVtb3ZlZCBhbmRub3REb3VibGUsIGFkZGVkIHNfbWFz
a1NpZ25CaXQuCisgICAgICAgICogYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2XzY0Lmg6Cisg
ICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyWDg2XzY0OjphYnNEb3VibGUpOgorICAgICAgICAo
SlNDOjpNYWNyb0Fzc2VtYmxlclg4Nl82NDo6c3VwcG9ydHNGbG9hdGluZ1BvaW50KToKKyAgICAg
ICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJYODZfNjQ6OnN1cHBvcnRzRmxvYXRpbmdQb2ludFRydW5j
YXRlKToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJYODZfNjQ6OnN1cHBvcnRzRmxvYXRp
bmdQb2ludFNxcnQpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlclg4Nl82NDo6c3VwcG9y
dHNGbG9hdGluZ1BvaW50QWJzKToKKyAgICAgICAgICAgIC0gTWFkZSBzdXBwb3J0cyogbWV0aG9k
cyBzdGF0aWMgc28gdGhhdCB3ZSBjYW4gY2hlY24gdGhlIEpJVCdzCisgICAgICAgICAgICAgIGNh
cGFiaWxpdGVzIGJlZm9yZSB3ZSBiZWdpbiBjb21waWxhdGlvbi4gQWRkZWQgYWJzRG91YmxlLgor
ICAgICAgICAqIGFzc2VtYmxlci9YODZBc3NlbWJsZXIuaDoKKyAgICAgICAgKEpTQzo6WDg2QXNz
ZW1ibGVyOjphbmRwZF9ycik6CisgICAgICAgIChKU0M6Olg4NkFzc2VtYmxlcjo6YW5kcGRfbXIp
OgorICAgICAgICAgICAgLSBBZGRlZCBzdXBwb3J0IGZvciBhbmRwZCBpbnN0cnVjdGlvbi4KKyAg
ICAgICAgKiBkZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwOgorICAgICAgICAoSlNDOjpERkc6OkJ5
dGVDb2RlUGFyc2VyOjpoYW5kbGVJbnRyaW5zaWMpOgorICAgICAgICAgICAgLSBBZGRlZCBjaGVj
a3MgZm9yIHN1cHBvcnRzRmxvYXRpbmdQb2ludEFicywgc3VwcG9ydHNGbG9hdGluZ1BvaW50U3Fy
dC4KKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHA6CisgICAgICAgIChK
U0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUpOgorICAgICAgICAgICAgLSBTd2l0Y2hl
ZCB0byB1c2UgZG91YmxlQWJzLCB3ZSBjYW4gbm93IGFsc28gcmV1c2UgdGhlIG9wZXJhbmQgcmVn
aXN0ZXIgZm9yIHRoZSByZXN1bHQuCisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQu
Y3BwOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlKToKKyAgICAg
ICAgICAgIC0gU3dpdGNoZWQgdG8gdXNlIGRvdWJsZUFicywgd2UgY2FuIG5vdyBhbHNvIHJldXNl
IHRoZSBvcGVyYW5kIHJlZ2lzdGVyIGZvciB0aGUgcmVzdWx0LgorICAgICAgICAqIGppdC9UaHVu
a0dlbmVyYXRvcnMuY3BwOgorICAgICAgICAgICAgLSBTd2l0Y2hlZCB0byB1c2UgZG91YmxlQWJz
LgorICAgICAgICAoSlNDOjphYnNUaHVua0dlbmVyYXRvcik6CisgICAgICAgICogcnVudGltZS9K
U0dsb2JhbERhdGEuY3BwOgorICAgICAgICAgICAgLSBEZWNsYXJlZCBNYWNyb0Fzc2VtYmxlclg4
NkNvbW1vbjo6c19tYXNrU2lnbkJpdCBoZXJlLgorICAgICAgICAgICAgICBUaGlzIGlzIGEgbGl0
dGxlIHVnbHksIGJ1dCBpdCBkb2Vzbid0IHNlZW0gd29ydGggYWRkaW5nIGEgd2hvbGUgZXh0cmEg
LmNwcAorICAgICAgICAgICAgICB0byB0aGUgY29tcGlsZSBmb3IganVzdCBvbmUgY29uc3RhbnQu
CisKIDIwMTEtMTEtMDggIEdhdmluIEJhcnJhY2xvdWdoICA8YmFycmFjbG91Z2hAYXBwbGUuY29t
PgogCiAgICAgICAgIE1vdmUgZHVwbGljYXRlcyBvZiBTWU1CT0xfU1RSSU5HKiBtYWNyb3MgdG8g
dGhlIHNpbmdsZSBsb2NhdGlvbgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxl
ci9NYWNyb0Fzc2VtYmxlckFSTS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk0uaAkocmV2aXNpb24gOTk2MzMpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTc4MCwyMSArNzgwLDIxIEBAIHB1YmxpYzoKICAgICB9CiAKICAgICAvLyBGbG9h
dGluZyBwb2ludCBvcGVyYXRvcnMKLSAgICBib29sIHN1cHBvcnRzRmxvYXRpbmdQb2ludCgpIGNv
bnN0CisgICAgc3RhdGljIGJvb2wgc3VwcG9ydHNGbG9hdGluZ1BvaW50KCkKICAgICB7CiAgICAg
ICAgIHJldHVybiBzX2lzVkZQUHJlc2VudDsKICAgICB9CiAKLSAgICBib29sIHN1cHBvcnRzRmxv
YXRpbmdQb2ludFRydW5jYXRlKCkgY29uc3QKKyAgICBzdGF0aWMgYm9vbCBzdXBwb3J0c0Zsb2F0
aW5nUG9pbnRUcnVuY2F0ZSgpCiAgICAgewogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQog
Ci0gICAgYm9vbCBzdXBwb3J0c0Zsb2F0aW5nUG9pbnRTcXJ0KCkgY29uc3QKKyAgICBzdGF0aWMg
Ym9vbCBzdXBwb3J0c0Zsb2F0aW5nUG9pbnRTcXJ0KCkKICAgICB7CiAgICAgICAgIHJldHVybiBz
X2lzVkZQUHJlc2VudDsKICAgICB9Ci0gICAgYm9vbCBzdXBwb3J0c0RvdWJsZUJpdG9wcygpIGNv
bnN0IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgc3RhdGljIGJvb2wgc3VwcG9ydHNGbG9hdGluZ1Bv
aW50QWJzKCkgeyByZXR1cm4gZmFsc2U7IH0KIAogICAgIHZvaWQgbG9hZERvdWJsZShJbXBsaWNp
dEFkZHJlc3MgYWRkcmVzcywgRlBSZWdpc3RlcklEIGRlc3QpCiAgICAgewpAQCAtODYyLDcgKzg2
Miw3IEBAIHB1YmxpYzoKICAgICAgICAgbV9hc3NlbWJsZXIudnNxcnRfZjY0X3IoZGVzdCwgc3Jj
KTsKICAgICB9CiAgICAgCi0gICAgdm9pZCBhbmRub3REb3VibGUoRlBSZWdpc3RlcklELCBGUFJl
Z2lzdGVySUQpCisgICAgdm9pZCBhYnNEb3VibGUoRlBSZWdpc3RlcklELCBGUFJlZ2lzdGVySUQp
CiAgICAgewogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICB9CkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNdjcuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJN
djcuaAkocmV2aXNpb24gOTk2MzMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVy
L01hY3JvQXNzZW1ibGVyQVJNdjcuaAkod29ya2luZyBjb3B5KQpAQCAtNTY0LDcgKzU2NCw3IEBA
IHB1YmxpYzoKIAogICAgIC8vIEZsb2F0aW5nLXBvaW50IG9wZXJhdGlvbnM6CiAKLSAgICBib29s
IHN1cHBvcnRzRmxvYXRpbmdQb2ludCgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KKyAgICBzdGF0
aWMgYm9vbCBzdXBwb3J0c0Zsb2F0aW5nUG9pbnQoKSB7IHJldHVybiB0cnVlOyB9CiAgICAgLy8g
T24geDg2KF82NCkgdGhlIE1hY3JvQXNzZW1ibGVyIHByb3ZpZGVzIGFuIGludGVyZmFjZSB0byB0
cnVuY2F0ZSBhIGRvdWJsZSB0byBhbiBpbnRlZ2VyLgogICAgIC8vIElmIGEgdmFsdWUgaXMgbm90
IHJlcHJlc2VudGFibGUgYXMgYW4gaW50ZWdlciwgYW5kIHBvc3NpYmx5IGZvciBzb21lIHZhbHVl
cyB0aGF0IGFyZSwKICAgICAvLyAob24geDg2IElOVF9NSU4sIHNpbmNlIHRoaXMgaXMgaW5kaXN0
aW5ndWlzaGFibGUgZnJvbSByZXN1bHRzIGZvciBvdXQtb2YtcmFuZ2UvTmFOIGlucHV0KQpAQCAt
NTc2LDEzICs1NzYsMTMgQEAgcHVibGljOgogICAgIC8vIGdlbmVyaWMsIG9yIGRlY2lkZSB0aGF0
IHRoZSBNYWNyb0Fzc2VtYmxlciBjYW5ub3QgcHJhY3RpY2FsbHkgYmUgdXNlZCB0byBhYnN0cmFj
dGVkIHRoZXNlCiAgICAgLy8gb3BlcmF0aW9ucywgYW5kIG1ha2UgY2xpZW50cyBnbyBkaXJlY3Rs
eSB0byB0aGUgbV9hc3NlbWJsZXIgdG8gcGxhbnQgdHJ1bmNhdGlvbiBpbnN0cnVjdGlvbnMuCiAg
ICAgLy8gSW4gc2hvcnQsIEZJWE1FOi4KLSAgICBib29sIHN1cHBvcnRzRmxvYXRpbmdQb2ludFRy
dW5jYXRlKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICBzdGF0aWMgYm9vbCBzdXBwb3J0
c0Zsb2F0aW5nUG9pbnRUcnVuY2F0ZSgpIHsgcmV0dXJuIGZhbHNlOyB9CiAKLSAgICBib29sIHN1
cHBvcnRzRmxvYXRpbmdQb2ludFNxcnQoKSBjb25zdAorICAgIHN0YXRpYyBib29sIHN1cHBvcnRz
RmxvYXRpbmdQb2ludFNxcnQoKQogICAgIHsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0K
LSAgICBib29sIHN1cHBvcnRzRG91YmxlQml0b3BzKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0K
KyAgICBzdGF0aWMgYm9vbCBzdXBwb3J0c0Zsb2F0aW5nUG9pbnRBYnMoKSB7IHJldHVybiBmYWxz
ZTsgfQogCiAgICAgdm9pZCBsb2FkRG91YmxlKEltcGxpY2l0QWRkcmVzcyBhZGRyZXNzLCBGUFJl
Z2lzdGVySUQgZGVzdCkKICAgICB7CkBAIC02NjMsNyArNjYzLDcgQEAgcHVibGljOgogICAgICAg
ICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICB9CiAgICAgCi0gICAgdm9pZCBhbmRub3REb3Vi
bGUoRlBSZWdpc3RlcklELCBGUFJlZ2lzdGVySUQpIE5PX1JFVFVSTl9EVUVfVE9fQVNTRVJUCisg
ICAgdm9pZCBhYnNEb3VibGUoRlBSZWdpc3RlcklELCBGUFJlZ2lzdGVySUQpIE5PX1JFVFVSTl9E
VUVfVE9fQVNTRVJUCiAgICAgewogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICB9
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyTUlQ
Uy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9B
c3NlbWJsZXJNSVBTLmgJKHJldmlzaW9uIDk5NjMzKQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlck1JUFMuaAkod29ya2luZyBjb3B5KQpAQCAtNDcxLDcg
KzQ3MSw3IEBAIHB1YmxpYzoKICAgICAgICAgbV9hc3NlbWJsZXIuc3FydGQoZHN0LCBzcmMpOwog
ICAgIH0KICAgICAKLSAgICB2b2lkIGFuZG5vdERvdWJsZShGUFJlZ2lzdGVySUQsIEZQUmVnaXN0
ZXJJRCkKKyAgICB2b2lkIGFic0RvdWJsZShGUFJlZ2lzdGVySUQsIEZQUmVnaXN0ZXJJRCkKICAg
ICB7CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIH0KQEAgLTgzNCw3ICs4MzQs
NyBAQCBwdWJsaWM6CiAKICAgICAvLyBGbG9hdGluZy1wb2ludCBvcGVyYXRpb25zOgogCi0gICAg
Ym9vbCBzdXBwb3J0c0Zsb2F0aW5nUG9pbnQoKSBjb25zdAorICAgIHN0YXRpYyBib29sIHN1cHBv
cnRzRmxvYXRpbmdQb2ludCgpCiAgICAgewogI2lmIFdURl9NSVBTX0RPVUJMRV9GTE9BVAogICAg
ICAgICByZXR1cm4gdHJ1ZTsKQEAgLTg0Myw3ICs4NDMsNyBAQCBwdWJsaWM6CiAjZW5kaWYKICAg
ICB9CiAKLSAgICBib29sIHN1cHBvcnRzRmxvYXRpbmdQb2ludFRydW5jYXRlKCkgY29uc3QKKyAg
ICBzdGF0aWMgYm9vbCBzdXBwb3J0c0Zsb2F0aW5nUG9pbnRUcnVuY2F0ZSgpCiAgICAgewogI2lm
IFdURl9NSVBTX0RPVUJMRV9GTE9BVCAmJiBXVEZfTUlQU19JU0FfQVRfTEVBU1QoMikKICAgICAg
ICAgcmV0dXJuIHRydWU7CkBAIC04NTIsNyArODUyLDcgQEAgcHVibGljOgogI2VuZGlmCiAgICAg
fQogCi0gICAgYm9vbCBzdXBwb3J0c0Zsb2F0aW5nUG9pbnRTcXJ0KCkgY29uc3QKKyAgICBzdGF0
aWMgYm9vbCBzdXBwb3J0c0Zsb2F0aW5nUG9pbnRTcXJ0KCkKICAgICB7CiAjaWYgV1RGX01JUFNf
RE9VQkxFX0ZMT0FUICYmIFdURl9NSVBTX0lTQV9BVF9MRUFTVCgyKQogICAgICAgICByZXR1cm4g
dHJ1ZTsKQEAgLTg2MCw3ICs4NjAsNyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBmYWxzZTsK
ICNlbmRpZgogICAgIH0KLSAgICBib29sIHN1cHBvcnRzRG91YmxlQml0b3BzKCkgY29uc3QgeyBy
ZXR1cm4gZmFsc2U7IH0KKyAgICBzdGF0aWMgYm9vbCBzdXBwb3J0c0Zsb2F0aW5nUG9pbnRBYnMo
KSB7IHJldHVybiBmYWxzZTsgfQogCiAgICAgLy8gU3RhY2sgbWFuaXB1bGF0aW9uIG9wZXJhdGlv
bnM6CiAgICAgLy8KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9B
c3NlbWJsZXJTSDQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1i
bGVyL01hY3JvQXNzZW1ibGVyU0g0LmgJKHJldmlzaW9uIDk5NjMzKQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclNINC5oCSh3b3JraW5nIGNvcHkpCkBA
IC03ODYsMTAgKzc4NiwxMCBAQCBwdWJsaWM6CiAKICAgICAgLy8gRmxvYXRpbmctcG9pbnQgb3Bl
cmF0aW9ucwogCi0gICAgYm9vbCBzdXBwb3J0c0Zsb2F0aW5nUG9pbnQoKSBjb25zdCB7IHJldHVy
biB0cnVlOyB9Ci0gICAgYm9vbCBzdXBwb3J0c0Zsb2F0aW5nUG9pbnRUcnVuY2F0ZSgpIGNvbnN0
IHsgcmV0dXJuIHRydWU7IH0KLSAgICBib29sIHN1cHBvcnRzRmxvYXRpbmdQb2ludFNxcnQoKSBj
b25zdCB7IHJldHVybiB0cnVlOyB9Ci0gICAgYm9vbCBzdXBwb3J0c0RvdWJsZUJpdG9wcygpIGNv
bnN0IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgc3RhdGljIGJvb2wgc3VwcG9ydHNGbG9hdGluZ1Bv
aW50KCkgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHN0YXRpYyBib29sIHN1cHBvcnRzRmxvYXRpbmdQ
b2ludFRydW5jYXRlKCkgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHN0YXRpYyBib29sIHN1cHBvcnRz
RmxvYXRpbmdQb2ludFNxcnQoKSB7IHJldHVybiB0cnVlOyB9CisgICAgc3RhdGljIGJvb2wgc3Vw
cG9ydHNGbG9hdGluZ1BvaW50QWJzKCkgeyByZXR1cm4gZmFsc2U7IH0KIAogICAgIHZvaWQgbG9h
ZERvdWJsZShJbXBsaWNpdEFkZHJlc3MgYWRkcmVzcywgRlBSZWdpc3RlcklEIGRlc3QpCiAgICAg
ewpAQCAtMTEyOSw3ICsxMTI5LDcgQEAgcHVibGljOgogICAgICAgICBtX2Fzc2VtYmxlci5kc3Fy
dChkZXN0KTsKICAgICB9CiAgICAgCi0gICAgdm9pZCBhbmRub3REb3VibGUoRlBSZWdpc3RlcklE
LCBGUFJlZ2lzdGVySUQpCisgICAgdm9pZCBhYnNEb3VibGUoRlBSZWdpc3RlcklELCBGUFJlZ2lz
dGVySUQpCiAgICAgewogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICB9CkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2LmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxl
clg4Ni5oCShyZXZpc2lvbiA5OTYzMykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJs
ZXIvTWFjcm9Bc3NlbWJsZXJYODYuaAkod29ya2luZyBjb3B5KQpAQCAtMzQsMTEgKzM0LDYgQEAg
bmFtZXNwYWNlIEpTQyB7CiAKIGNsYXNzIE1hY3JvQXNzZW1ibGVyWDg2IDogcHVibGljIE1hY3Jv
QXNzZW1ibGVyWDg2Q29tbW9uIHsKIHB1YmxpYzoKLSAgICBNYWNyb0Fzc2VtYmxlclg4NigpCi0g
ICAgICAgIDogbV9pc1NTRTJQcmVzZW50KGlzU1NFMlByZXNlbnQoKSkKLSAgICB7Ci0gICAgfQot
CiAgICAgc3RhdGljIGNvbnN0IFNjYWxlIFNjYWxlUHRyID0gVGltZXNGb3VyOwogCiAgICAgdXNp
bmcgTWFjcm9Bc3NlbWJsZXJYODZDb21tb246OmFkZDMyOwpAQCAtMTEzLDYgKzEwOCwxMiBAQCBw
dWJsaWM6CiAgICAgICAgIG1fYXNzZW1ibGVyLmN2dHNpMnNkX21yKHNyYy5tX3B0ciwgZGVzdCk7
CiAgICAgfQogCisgICAgdm9pZCBhYnNEb3VibGUoRlBSZWdpc3RlcklEIHNyYywgRlBSZWdpc3Rl
cklEIGRzdCkKKyAgICB7CisgICAgICAgIG1vdmVEb3VibGUoc3JjLCBkc3QpOworICAgICAgICBt
X2Fzc2VtYmxlci5hbmRwZF9tcigmc19tYXNrU2lnbkJpdCwgZHN0KTsKKyAgICB9CisKICAgICB2
b2lkIHN0b3JlMzIoVHJ1c3RlZEltbTMyIGltbSwgdm9pZCogYWRkcmVzcykKICAgICB7CiAgICAg
ICAgIG1fYXNzZW1ibGVyLm1vdmxfaTMybShpbW0ubV92YWx1ZSwgYWRkcmVzcyk7CkBAIC0xODks
MTUgKzE5MCwxMyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBEYXRhTGFiZWxQdHIodGhpcyk7
CiAgICAgfQogCi0gICAgYm9vbCBzdXBwb3J0c0Zsb2F0aW5nUG9pbnQoKSBjb25zdCB7IHJldHVy
biBtX2lzU1NFMlByZXNlbnQ7IH0KKyAgICBzdGF0aWMgYm9vbCBzdXBwb3J0c0Zsb2F0aW5nUG9p
bnQoKSB7IHJldHVybiBpc1NTRTJQcmVzZW50KCk7IH0KICAgICAvLyBTZWUgY29tbWVudCBvbiBN
YWNyb0Fzc2VtYmxlckFSTXY3OjpzdXBwb3J0c0Zsb2F0aW5nUG9pbnRUcnVuY2F0ZSgpCi0gICAg
Ym9vbCBzdXBwb3J0c0Zsb2F0aW5nUG9pbnRUcnVuY2F0ZSgpIGNvbnN0IHsgcmV0dXJuIG1faXNT
U0UyUHJlc2VudDsgfQotICAgIGJvb2wgc3VwcG9ydHNGbG9hdGluZ1BvaW50U3FydCgpIGNvbnN0
IHsgcmV0dXJuIG1faXNTU0UyUHJlc2VudDsgfQotICAgIGJvb2wgc3VwcG9ydHNEb3VibGVCaXRv
cHMoKSBjb25zdCB7IHJldHVybiBtX2lzU1NFMlByZXNlbnQ7IH0KKyAgICBzdGF0aWMgYm9vbCBz
dXBwb3J0c0Zsb2F0aW5nUG9pbnRUcnVuY2F0ZSgpIHsgcmV0dXJuIGlzU1NFMlByZXNlbnQoKTsg
fQorICAgIHN0YXRpYyBib29sIHN1cHBvcnRzRmxvYXRpbmdQb2ludFNxcnQoKSB7IHJldHVybiBp
c1NTRTJQcmVzZW50KCk7IH0KKyAgICBzdGF0aWMgYm9vbCBzdXBwb3J0c0Zsb2F0aW5nUG9pbnRB
YnMoKSB7IHJldHVybiBpc1NTRTJQcmVzZW50KCk7IH0KIAogcHJpdmF0ZToKLSAgICBjb25zdCBi
b29sIG1faXNTU0UyUHJlc2VudDsKLQogICAgIGZyaWVuZCBjbGFzcyBMaW5rQnVmZmVyOwogICAg
IGZyaWVuZCBjbGFzcyBSZXBhdGNoQnVmZmVyOwogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2Q29tbW9uLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4NkNvbW1vbi5oCShy
ZXZpc2lvbiA5OTY0MCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9B
c3NlbWJsZXJYODZDb21tb24uaAkod29ya2luZyBjb3B5KQpAQCAtNDI0LDExICs0MjQsNiBAQCBw
dWJsaWM6CiAgICAgICAgIG1fYXNzZW1ibGVyLnNxcnRzZF9ycihzcmMsIGRzdCk7CiAgICAgfQog
Ci0gICAgdm9pZCBhbmRub3REb3VibGUoRlBSZWdpc3RlcklEIHNyYywgRlBSZWdpc3RlcklEIGRz
dCkKLSAgICB7Ci0gICAgICAgIG1fYXNzZW1ibGVyLmFuZG5wZF9ycihzcmMsIGRzdCk7Ci0gICAg
fQotCiAgICAgLy8gTWVtb3J5IGFjY2VzcyBvcGVyYXRpb25zOgogICAgIC8vCiAgICAgLy8gTG9h
ZHMgYXJlIG9mIHRoZSBmb3JtIGxvYWQoYWRkcmVzcywgZGVzdGluYXRpb24pIGFuZCBzdG9yZXMg
b2YgdGhlIGZvcm0KQEAgLTEyNjYsNiArMTI2MSw5IEBAIHB1YmxpYzoKICAgICB9CiAKIHByb3Rl
Y3RlZDoKKyAgICAvLyBBIDY0LWJpdCBtYXNrIHdpdGggYWxsIGJpdHMgc2V0IG90aGVyIHRoYW4g
dGhlIHNpZ24gYml0ICh1c2VkIGluIGFicykuCisgICAgc3RhdGljIGNvbnN0IHVpbnQ2NF90IHNf
bWFza1NpZ25CaXQ7CisKICAgICBYODZBc3NlbWJsZXI6OkNvbmRpdGlvbiB4ODZDb25kaXRpb24o
UmVsYXRpb25hbENvbmRpdGlvbiBjb25kKQogICAgIHsKICAgICAgICAgcmV0dXJuIHN0YXRpY19j
YXN0PFg4NkFzc2VtYmxlcjo6Q29uZGl0aW9uPihjb25kKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJYODZfNjQuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2XzY0LmgJKHJl
dmlzaW9uIDk5NjMzKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fz
c2VtYmxlclg4Nl82NC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMDUsNiArMTA1LDEzIEBAIHB1Ymxp
YzoKICAgICAgICAgbV9hc3NlbWJsZXIuY3Z0c2kyc2RfcnIoc2NyYXRjaFJlZ2lzdGVyLCBkZXN0
KTsKICAgICB9CiAKKyAgICB2b2lkIGFic0RvdWJsZShGUFJlZ2lzdGVySUQgc3JjLCBGUFJlZ2lz
dGVySUQgZHN0KQorICAgIHsKKyAgICAgICAgbW92ZURvdWJsZShzcmMsIGRzdCk7CisgICAgICAg
IG1vdmUoVHJ1c3RlZEltbVB0cigmc19tYXNrU2lnbkJpdCksIHNjcmF0Y2hSZWdpc3Rlcik7Cisg
ICAgICAgIG1fYXNzZW1ibGVyLmFuZHBkX21yKDAsIHNjcmF0Y2hSZWdpc3RlciwgZHN0KTsKKyAg
ICB9CisKICAgICB2b2lkIHN0b3JlMzIoVHJ1c3RlZEltbTMyIGltbSwgdm9pZCogYWRkcmVzcykK
ICAgICB7CiAgICAgICAgIG1vdmUoVHJ1c3RlZEltbVB0cihhZGRyZXNzKSwgc2NyYXRjaFJlZ2lz
dGVyKTsKQEAgLTQ2MSwxMSArNDY4LDExIEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIE1hY3Jv
QXNzZW1ibGVyWDg2Q29tbW9uOjpicmFuY2hUZXN0OChjb25kLCBCYXNlSW5kZXgoc2NyYXRjaFJl
Z2lzdGVyLCBhZGRyZXNzLmJhc2UsIFRpbWVzT25lKSwgbWFzayk7CiAgICAgfQogCi0gICAgYm9v
bCBzdXBwb3J0c0Zsb2F0aW5nUG9pbnQoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CisgICAgc3Rh
dGljIGJvb2wgc3VwcG9ydHNGbG9hdGluZ1BvaW50KCkgeyByZXR1cm4gdHJ1ZTsgfQogICAgIC8v
IFNlZSBjb21tZW50IG9uIE1hY3JvQXNzZW1ibGVyQVJNdjc6OnN1cHBvcnRzRmxvYXRpbmdQb2lu
dFRydW5jYXRlKCkKLSAgICBib29sIHN1cHBvcnRzRmxvYXRpbmdQb2ludFRydW5jYXRlKCkgY29u
c3QgeyByZXR1cm4gdHJ1ZTsgfQotICAgIGJvb2wgc3VwcG9ydHNGbG9hdGluZ1BvaW50U3FydCgp
IGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KLSAgICBib29sIHN1cHBvcnRzRG91YmxlQml0b3BzKCkg
Y29uc3QgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHN0YXRpYyBib29sIHN1cHBvcnRzRmxvYXRpbmdQ
b2ludFRydW5jYXRlKCkgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHN0YXRpYyBib29sIHN1cHBvcnRz
RmxvYXRpbmdQb2ludFNxcnQoKSB7IHJldHVybiB0cnVlOyB9CisgICAgc3RhdGljIGJvb2wgc3Vw
cG9ydHNGbG9hdGluZ1BvaW50QWJzKCkgeyByZXR1cm4gdHJ1ZTsgfQogCiBwcml2YXRlOgogICAg
IGZyaWVuZCBjbGFzcyBMaW5rQnVmZmVyOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Fz
c2VtYmxlci9YODZBc3NlbWJsZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYXNzZW1ibGVyL1g4NkFzc2VtYmxlci5oCShyZXZpc2lvbiA5OTY0MCkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvWDg2QXNzZW1ibGVyLmgJKHdvcmtpbmcgY29weSkKQEAg
LTE3Myw2ICsxNzMsNyBAQCBwcml2YXRlOgogICAgICAgICBPUDJfU1VCU0RfVnNkV3NkICAgID0g
MHg1QywKICAgICAgICAgT1AyX0RJVlNEX1ZzZFdzZCAgICA9IDB4NUUsCiAgICAgICAgIE9QMl9T
UVJUU0RfVnNkV3NkICAgPSAweDUxLAorICAgICAgICBPUDJfQU5EUERfVnBkV3BkICAgID0gMHg1
NCwKICAgICAgICAgT1AyX0FORE5QRF9WcGRXcGQgICA9IDB4NTUsCiAgICAgICAgIE9QMl9YT1JQ
RF9WcGRXcGQgICAgPSAweDU3LAogICAgICAgICBPUDJfTU9WRF9WZEVkICAgICAgID0gMHg2RSwK
QEAgLTE1NjcsNiArMTU2OCwyNiBAQCBwdWJsaWM6CiAgICAgICAgIG1fZm9ybWF0dGVyLnR3b0J5
dGVPcChPUDJfQU5ETlBEX1ZwZFdwZCwgKFJlZ2lzdGVySUQpZHN0LCAoUmVnaXN0ZXJJRClzcmMp
OwogICAgIH0KIAorICAgIHZvaWQgYW5kcGRfcnIoWE1NUmVnaXN0ZXJJRCBzcmMsIFhNTVJlZ2lz
dGVySUQgZHN0KQorICAgIHsKKyAgICAgICAgbV9mb3JtYXR0ZXIucHJlZml4KFBSRV9TU0VfNjYp
OworICAgICAgICBtX2Zvcm1hdHRlci50d29CeXRlT3AoT1AyX0FORFBEX1ZwZFdwZCwgKFJlZ2lz
dGVySUQpZHN0LCAoUmVnaXN0ZXJJRClzcmMpOworICAgIH0KKworICAgIHZvaWQgYW5kcGRfbXIo
aW50IG9mZnNldCwgUmVnaXN0ZXJJRCBiYXNlLCBYTU1SZWdpc3RlcklEIGRzdCkKKyAgICB7Cisg
ICAgICAgIG1fZm9ybWF0dGVyLnByZWZpeChQUkVfU1NFXzY2KTsKKyAgICAgICAgbV9mb3JtYXR0
ZXIudHdvQnl0ZU9wKE9QMl9BTkRQRF9WcGRXcGQsIChSZWdpc3RlcklEKWRzdCwgYmFzZSwgb2Zm
c2V0KTsKKyAgICB9CisKKyNpZiBDUFUoWDg2KQorICAgIHZvaWQgYW5kcGRfbXIoY29uc3Qgdm9p
ZCogYWRkcmVzcywgWE1NUmVnaXN0ZXJJRCBkc3QpCisgICAgeworICAgICAgICBtX2Zvcm1hdHRl
ci5wcmVmaXgoUFJFX1NTRV82Nik7CisgICAgICAgIG1fZm9ybWF0dGVyLnR3b0J5dGVPcChPUDJf
QU5EUERfVnBkV3BkLCAoUmVnaXN0ZXJJRClkc3QsIGFkZHJlc3MpOworICAgIH0KKyNlbmRpZgor
CiAgICAgdm9pZCBzcXJ0c2RfcnIoWE1NUmVnaXN0ZXJJRCBzcmMsIFhNTVJlZ2lzdGVySUQgZHN0
KQogICAgIHsKICAgICAgICAgbV9mb3JtYXR0ZXIucHJlZml4KFBSRV9TU0VfRjIpOwpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAJKHJl
dmlzaW9uIDk5NjMzKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBh
cnNlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTExNDEsMTAgKzExNDEsMTUgQEAgYm9vbCBCeXRl
Q29kZVBhcnNlcjo6aGFuZGxlSW50cmluc2ljKGJvbwogICAgICAgICAvLyBXZSBkb24ndCBjYXJl
IGFib3V0IHRoZSB0aGlzIGFyZ3VtZW50LiBJZiB3ZSBkb24ndCBoYXZlIGEgZmlyc3QKICAgICAg
ICAgLy8gYXJndW1lbnQgdGhlbiBtYWtlIHRoaXMgSlNDb25zdGFudChOYU4pLgogICAgICAgICBp
bnQgYWJzQXJnID0gZmlyc3RBcmcgKyAxOwotICAgICAgICBpZiAoYWJzQXJnID4gbGFzdEFyZykK
KyAgICAgICAgaWYgKGFic0FyZyA+IGxhc3RBcmcpIHsKICAgICAgICAgICAgIHNldChyZXN1bHRP
cGVyYW5kLCBjb25zdGFudE5hTigpKTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgc2V0KHJl
c3VsdE9wZXJhbmQsIGFkZFRvR3JhcGgoQXJpdGhBYnMsIE9wSW5mbyhOb2RlVXNlQm90dG9tKSwg
Z2V0VG9OdW1iZXIoYWJzQXJnKSkpOworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAg
IH0KKworICAgICAgICBpZiAoIU1hY3JvQXNzZW1ibGVyOjpzdXBwb3J0c0Zsb2F0aW5nUG9pbnRB
YnMoKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICBzZXQocmVzdWx0T3Bl
cmFuZCwgYWRkVG9HcmFwaChBcml0aEFicywgT3BJbmZvKE5vZGVVc2VCb3R0b20pLCBnZXRUb051
bWJlcihhYnNBcmcpKSk7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KICAgICAgICAgCkBA
IC0xMTYzLDYgKzExNjgsOSBAQCBib29sIEJ5dGVDb2RlUGFyc2VyOjpoYW5kbGVJbnRyaW5zaWMo
Ym9vCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQogICAgICAgICAKKyAgICAg
ICAgaWYgKCFNYWNyb0Fzc2VtYmxlcjo6c3VwcG9ydHNGbG9hdGluZ1BvaW50U3FydCgpKQorICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAKICAgICAgICAgc2V0KHJlc3VsdE9wZXJh
bmQsIGFkZFRvR3JhcGgoQXJpdGhTcXJ0LCBnZXRUb051bWJlcihmaXJzdEFyZyArIDEpKSk7CiAg
ICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcAkocmV2aXNpb24gOTk2MzMp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0xMjU2LDEyICsxMjU2LDkgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJ
VDo6Y29tcGlsZShOb2RlJiBub2RlKQogICAgICAgICB9CiAgICAgICAgIAogICAgICAgICBTcGVj
dWxhdGVEb3VibGVPcGVyYW5kIG9wMSh0aGlzLCBub2RlLmNoaWxkMSgpKTsKLSAgICAgICAgRlBS
VGVtcG9yYXJ5IHJlc3VsdCh0aGlzKTsKLSAgICAgICAgCi0gICAgICAgIHN0YXRpYyBjb25zdCBk
b3VibGUgbmVnYXRpdmVaZXJvQ29uc3RhbnQgPSAtMC4wOworICAgICAgICBGUFJUZW1wb3Jhcnkg
cmVzdWx0KHRoaXMsIG9wMSk7CiAgICAgICAgIAotICAgICAgICBtX2ppdC5sb2FkRG91YmxlKCZu
ZWdhdGl2ZVplcm9Db25zdGFudCwgcmVzdWx0LmZwcigpKTsKLSAgICAgICAgbV9qaXQuYW5kbm90
RG91YmxlKG9wMS5mcHIoKSwgcmVzdWx0LmZwcigpKTsKKyAgICAgICAgbV9qaXQuYWJzRG91Ymxl
KG9wMS5mcHIoKSwgcmVzdWx0LmZwcigpKTsKICAgICAgICAgZG91YmxlUmVzdWx0KHJlc3VsdC5m
cHIoKSwgbV9jb21waWxlSW5kZXgpOwogICAgICAgICBicmVhazsKICAgICB9CkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAJKHJl
dmlzaW9uIDk5NjMzKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2
ZUpJVDY0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTMwNiwxMiArMTMwNiw5IEBAIHZvaWQgU3Bl
Y3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSYgbm9kZSkKICAgICAgICAgfQogICAgICAgICAKICAg
ICAgICAgU3BlY3VsYXRlRG91YmxlT3BlcmFuZCBvcDEodGhpcywgbm9kZS5jaGlsZDEoKSk7Ci0g
ICAgICAgIEZQUlRlbXBvcmFyeSByZXN1bHQodGhpcyk7Ci0gICAgICAgIAotICAgICAgICBzdGF0
aWMgY29uc3QgZG91YmxlIG5lZ2F0aXZlWmVyb0NvbnN0YW50ID0gLTAuMDsKKyAgICAgICAgRlBS
VGVtcG9yYXJ5IHJlc3VsdCh0aGlzLCBvcDEpOwogICAgICAgICAKLSAgICAgICAgbV9qaXQubG9h
ZERvdWJsZSgmbmVnYXRpdmVaZXJvQ29uc3RhbnQsIHJlc3VsdC5mcHIoKSk7Ci0gICAgICAgIG1f
aml0LmFuZG5vdERvdWJsZShvcDEuZnByKCksIHJlc3VsdC5mcHIoKSk7CisgICAgICAgIG1faml0
LmFic0RvdWJsZShvcDEuZnByKCksIHJlc3VsdC5mcHIoKSk7CiAgICAgICAgIGRvdWJsZVJlc3Vs
dChyZXN1bHQuZnByKCksIG1fY29tcGlsZUluZGV4KTsKICAgICAgICAgYnJlYWs7CiAgICAgfQpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9UaHVua0dlbmVyYXRvcnMuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvVGh1bmtHZW5lcmF0b3JzLmNwcAko
cmV2aXNpb24gOTk2MzMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1RodW5rR2VuZXJh
dG9ycy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI3Nyw3ICsyNzcsNyBAQCBNYWNyb0Fzc2VtYmxl
ckNvZGVSZWYgbG9nVGh1bmtHZW5lcmF0b3IoCiBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgYWJzVGh1
bmtHZW5lcmF0b3IoSlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRhKQogewogICAgIFNwZWNpYWxpemVk
VGh1bmtKSVQgaml0KDEsIGdsb2JhbERhdGEpOwotICAgIGlmICghaml0LnN1cHBvcnRzRG91Ymxl
Qml0b3BzKCkpCisgICAgaWYgKCFqaXQuc3VwcG9ydHNGbG9hdGluZ1BvaW50QWJzKCkpCiAgICAg
ICAgIHJldHVybiBNYWNyb0Fzc2VtYmxlckNvZGVSZWY6OmNyZWF0ZVNlbGZNYW5hZ2VkQ29kZVJl
ZihnbG9iYWxEYXRhLT5qaXRTdHVicy0+Y3RpTmF0aXZlQ2FsbCgpKTsKICAgICBNYWNyb0Fzc2Vt
Ymxlcjo6SnVtcCBub25JbnRKdW1wOwogICAgIGppdC5sb2FkSW50MzJBcmd1bWVudCgwLCBTcGVj
aWFsaXplZFRodW5rSklUOjpyZWdUMCwgbm9uSW50SnVtcCk7CkBAIC0yODgsOSArMjg4LDggQEAg
TWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGFic1RodW5rR2VuZXJhdG9yKAogICAgIGppdC5yZXR1cm5J
bnQzMihTcGVjaWFsaXplZFRodW5rSklUOjpyZWdUMCk7CiAgICAgbm9uSW50SnVtcC5saW5rKCZq
aXQpOwogICAgIC8vIFNoYW1lIGFib3V0IHRoZSBkb3VibGUgaW50IGNvbnZlcnNpb24gaGVyZS4K
LSAgICBqaXQubG9hZERvdWJsZSgmbmVnYXRpdmVaZXJvQ29uc3RhbnQsIFNwZWNpYWxpemVkVGh1
bmtKSVQ6OmZwUmVnVDEpOwogICAgIGppdC5sb2FkRG91YmxlQXJndW1lbnQoMCwgU3BlY2lhbGl6
ZWRUaHVua0pJVDo6ZnBSZWdUMCwgU3BlY2lhbGl6ZWRUaHVua0pJVDo6cmVnVDApOwotICAgIGpp
dC5hbmRub3REb3VibGUoU3BlY2lhbGl6ZWRUaHVua0pJVDo6ZnBSZWdUMCwgU3BlY2lhbGl6ZWRU
aHVua0pJVDo6ZnBSZWdUMSk7CisgICAgaml0LmFic0RvdWJsZShTcGVjaWFsaXplZFRodW5rSklU
OjpmcFJlZ1QwLCBTcGVjaWFsaXplZFRodW5rSklUOjpmcFJlZ1QxKTsKICAgICBqaXQucmV0dXJu
RG91YmxlKFNwZWNpYWxpemVkVGh1bmtKSVQ6OmZwUmVnVDEpOwogICAgIHJldHVybiBqaXQuZmlu
YWxpemUoKmdsb2JhbERhdGEsIGdsb2JhbERhdGEtPmppdFN0dWJzLT5jdGlOYXRpdmVDYWxsKCkp
OwogfQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxEYXRhLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbERh
dGEuY3BwCShyZXZpc2lvbiA5OTYzMykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTR2xvYmFsRGF0YS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTg4LDYgKzg4LDEwIEBAIGlubGlu
ZSB2b2lkIFJlY29tcGlsZXI6Om9wZXJhdG9yKCkoSlNDZWwKIAogbmFtZXNwYWNlIEpTQyB7CiAK
KyNpZiBFTkFCTEUoQVNTRU1CTEVSKSAmJiAoQ1BVKFg4NikgfHwgQ1BVKFg4Nl82NCkpCitjb25z
dCB1aW50NjRfdCBNYWNyb0Fzc2VtYmxlclg4NkNvbW1vbjo6c19tYXNrU2lnbkJpdCA9IDB4N0ZG
RkZGRkZGRkZGRkZGRnVsbDsKKyNlbmRpZgorCiBleHRlcm4gSlNDX0NPTlNUX0hBU0hUQUJMRSBI
YXNoVGFibGUgYXJyYXlDb25zdHJ1Y3RvclRhYmxlOwogZXh0ZXJuIEpTQ19DT05TVF9IQVNIVEFC
TEUgSGFzaFRhYmxlIGFycmF5UHJvdG90eXBlVGFibGU7CiBleHRlcm4gSlNDX0NPTlNUX0hBU0hU
QUJMRSBIYXNoVGFibGUgYm9vbGVhblByb3RvdHlwZVRhYmxlOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>114194</attachid>
            <date>2011-11-08 18:44:42 -0800</date>
            <delta_ts>2011-11-08 22:42:55 -0800</delta_ts>
            <desc>Fixed typo in changelog.</desc>
            <filename>71873.2.patch</filename>
            <type>text/plain</type>
            <size>20729</size>
            <attacher name="Gavin Barraclough">barraclough</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gOTk2NDUpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsODMgQEAK
KzIwMTEtMTEtMDggIEdhdmluIEJhcnJhY2xvdWdoICA8YmFycmFjbG91Z2hAYXBwbGUuY29tPgor
CisgICAgICAgIEJldHRlciBhYnN0cmFjdCAnYWJzJyBvcGVyYXRpb24gdGhyb3VnaCB0aGUgTWFj
cm9Bc3NlbWJsZXIuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD03MTg3MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEN1cnJlbnRseSB0aGUgeDg2IHNwZWNpZmljIGluc3RydWN0aW9uIHNlcXVlbmNlIHRvIHBl
cmZvcm0gYSBkb3VibGUgYWJzCisgICAgICAgIGlzIGR1cGxpY2F0ZWQgdGhyb3VnaG91dCB0aGUg
SklUcyAvIHRodW5rIGdlbmVyYXRvcnMuCisKKyAgICAgICAgKiBhc3NlbWJsZXIvTWFjcm9Bc3Nl
bWJsZXJBUk0uaDoKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk06OnN1cHBvcnRzRmxv
YXRpbmdQb2ludCk6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJNOjpzdXBwb3J0c0Zs
b2F0aW5nUG9pbnRUcnVuY2F0ZSk6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJNOjpz
dXBwb3J0c0Zsb2F0aW5nUG9pbnRTcXJ0KToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJB
Uk06OnN1cHBvcnRzRmxvYXRpbmdQb2ludEFicyk6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1i
bGVyQVJNOjphYnNEb3VibGUpOgorICAgICAgICAgICAgLSBSZW5hbWVkIHN1cHBvcnRzRmxvYXRp
bmdQb2ludEFicywgbWFrZSB0aGVzZSBtZXRob2RzIHN0YXRpYyBzbyB0aGF0CisgICAgICAgICAg
ICAgIHdlIGNhbiBjaGVjayB0aGUgSklUJ3MgY2FwYWJpbGl0ZXMgYmVmb3JlIHdlIGJlZ2luIGNv
bXBpbGF0aW9uLgorICAgICAgICAqIGFzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTXY3Lmg6Cisg
ICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJNdjc6OnN1cHBvcnRzRmxvYXRpbmdQb2ludCk6
CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJNdjc6OnN1cHBvcnRzRmxvYXRpbmdQb2lu
dFRydW5jYXRlKToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk12Nzo6c3VwcG9ydHNG
bG9hdGluZ1BvaW50U3FydCk6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJNdjc6OnN1
cHBvcnRzRmxvYXRpbmdQb2ludEFicyk6CisgICAgICAgICAgICAtIFJlbmFtZWQgc3VwcG9ydHNG
bG9hdGluZ1BvaW50QWJzLCBtYWtlIHRoZXNlIG1ldGhvZHMgc3RhdGljIHNvIHRoYXQKKyAgICAg
ICAgICAgICAgd2UgY2FuIGNoZWNrIHRoZSBKSVQncyBjYXBhYmlsaXRlcyBiZWZvcmUgd2UgYmVn
aW4gY29tcGlsYXRpb24uCisgICAgICAgICogYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyTUlQUy5o
OgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlck1JUFM6OmFic0RvdWJsZSk6CisgICAgICAg
IChKU0M6Ok1hY3JvQXNzZW1ibGVyTUlQUzo6c3VwcG9ydHNGbG9hdGluZ1BvaW50KToKKyAgICAg
ICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJNSVBTOjpzdXBwb3J0c0Zsb2F0aW5nUG9pbnRUcnVuY2F0
ZSk6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyTUlQUzo6c3VwcG9ydHNGbG9hdGluZ1Bv
aW50U3FydCk6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyTUlQUzo6c3VwcG9ydHNGbG9h
dGluZ1BvaW50QWJzKToKKyAgICAgICAgICAgIC0gUmVuYW1lZCBzdXBwb3J0c0Zsb2F0aW5nUG9p
bnRBYnMsIG1ha2UgdGhlc2UgbWV0aG9kcyBzdGF0aWMgc28gdGhhdAorICAgICAgICAgICAgICB3
ZSBjYW4gY2hlY2sgdGhlIEpJVCdzIGNhcGFiaWxpdGVzIGJlZm9yZSB3ZSBiZWdpbiBjb21waWxh
dGlvbi4KKyAgICAgICAgKiBhc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJTSDQuaDoKKyAgICAgICAg
KEpTQzo6TWFjcm9Bc3NlbWJsZXJTSDQ6OnN1cHBvcnRzRmxvYXRpbmdQb2ludCk6CisgICAgICAg
IChKU0M6Ok1hY3JvQXNzZW1ibGVyU0g0OjpzdXBwb3J0c0Zsb2F0aW5nUG9pbnRUcnVuY2F0ZSk6
CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyU0g0OjpzdXBwb3J0c0Zsb2F0aW5nUG9pbnRT
cXJ0KToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJTSDQ6OnN1cHBvcnRzRmxvYXRpbmdQ
b2ludEFicyk6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyU0g0OjphYnNEb3VibGUpOgor
ICAgICAgICAgICAgLSBSZW5hbWVkIHN1cHBvcnRzRmxvYXRpbmdQb2ludEFicywgbWFrZSB0aGVz
ZSBtZXRob2RzIHN0YXRpYyBzbyB0aGF0CisgICAgICAgICAgICAgIHdlIGNhbiBjaGVjayB0aGUg
SklUJ3MgY2FwYWJpbGl0ZXMgYmVmb3JlIHdlIGJlZ2luIGNvbXBpbGF0aW9uLgorICAgICAgICAq
IGFzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4Ni5oOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2Vt
Ymxlclg4Njo6YWJzRG91YmxlKToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJYODY6OnN1
cHBvcnRzRmxvYXRpbmdQb2ludCk6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyWDg2Ojpz
dXBwb3J0c0Zsb2F0aW5nUG9pbnRUcnVuY2F0ZSk6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1i
bGVyWDg2OjpzdXBwb3J0c0Zsb2F0aW5nUG9pbnRTcXJ0KToKKyAgICAgICAgKEpTQzo6TWFjcm9B
c3NlbWJsZXJYODY6OnN1cHBvcnRzRmxvYXRpbmdQb2ludEFicyk6CisgICAgICAgICAgICAtIE1h
ZGUgc3VwcG9ydHMqIG1ldGhvZHMgc3RhdGljIHNvIHRoYXQgd2UgY2FuIGNoZWNrIHRoZSBKSVQn
cworICAgICAgICAgICAgICBjYXBhYmlsaXRlcyBiZWZvcmUgd2UgYmVnaW4gY29tcGlsYXRpb24u
IEFkZGVkIGFic0RvdWJsZS4KKyAgICAgICAgKiBhc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJYODZD
b21tb24uaDoKKyAgICAgICAgICAgIC0gUmVtb3ZlZCBhbmRub3REb3VibGUsIGFkZGVkIHNfbWFz
a1NpZ25CaXQuCisgICAgICAgICogYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2XzY0Lmg6Cisg
ICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyWDg2XzY0OjphYnNEb3VibGUpOgorICAgICAgICAo
SlNDOjpNYWNyb0Fzc2VtYmxlclg4Nl82NDo6c3VwcG9ydHNGbG9hdGluZ1BvaW50KToKKyAgICAg
ICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJYODZfNjQ6OnN1cHBvcnRzRmxvYXRpbmdQb2ludFRydW5j
YXRlKToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJYODZfNjQ6OnN1cHBvcnRzRmxvYXRp
bmdQb2ludFNxcnQpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlclg4Nl82NDo6c3VwcG9y
dHNGbG9hdGluZ1BvaW50QWJzKToKKyAgICAgICAgICAgIC0gTWFkZSBzdXBwb3J0cyogbWV0aG9k
cyBzdGF0aWMgc28gdGhhdCB3ZSBjYW4gY2hlY2sgdGhlIEpJVCdzCisgICAgICAgICAgICAgIGNh
cGFiaWxpdGVzIGJlZm9yZSB3ZSBiZWdpbiBjb21waWxhdGlvbi4gQWRkZWQgYWJzRG91YmxlLgor
ICAgICAgICAqIGFzc2VtYmxlci9YODZBc3NlbWJsZXIuaDoKKyAgICAgICAgKEpTQzo6WDg2QXNz
ZW1ibGVyOjphbmRwZF9ycik6CisgICAgICAgIChKU0M6Olg4NkFzc2VtYmxlcjo6YW5kcGRfbXIp
OgorICAgICAgICAgICAgLSBBZGRlZCBzdXBwb3J0IGZvciBhbmRwZCBpbnN0cnVjdGlvbi4KKyAg
ICAgICAgKiBkZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwOgorICAgICAgICAoSlNDOjpERkc6OkJ5
dGVDb2RlUGFyc2VyOjpoYW5kbGVJbnRyaW5zaWMpOgorICAgICAgICAgICAgLSBBZGRlZCBjaGVj
a3MgZm9yIHN1cHBvcnRzRmxvYXRpbmdQb2ludEFicywgc3VwcG9ydHNGbG9hdGluZ1BvaW50U3Fy
dC4KKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHA6CisgICAgICAgIChK
U0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUpOgorICAgICAgICAgICAgLSBTd2l0Y2hl
ZCB0byB1c2UgZG91YmxlQWJzLCB3ZSBjYW4gbm93IGFsc28gcmV1c2UgdGhlIG9wZXJhbmQgcmVn
aXN0ZXIgZm9yIHRoZSByZXN1bHQuCisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQu
Y3BwOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlKToKKyAgICAg
ICAgICAgIC0gU3dpdGNoZWQgdG8gdXNlIGRvdWJsZUFicywgd2UgY2FuIG5vdyBhbHNvIHJldXNl
IHRoZSBvcGVyYW5kIHJlZ2lzdGVyIGZvciB0aGUgcmVzdWx0LgorICAgICAgICAqIGppdC9UaHVu
a0dlbmVyYXRvcnMuY3BwOgorICAgICAgICAgICAgLSBTd2l0Y2hlZCB0byB1c2UgZG91YmxlQWJz
LgorICAgICAgICAoSlNDOjphYnNUaHVua0dlbmVyYXRvcik6CisgICAgICAgICogcnVudGltZS9K
U0dsb2JhbERhdGEuY3BwOgorICAgICAgICAgICAgLSBEZWNsYXJlZCBNYWNyb0Fzc2VtYmxlclg4
NkNvbW1vbjo6c19tYXNrU2lnbkJpdCBoZXJlLgorICAgICAgICAgICAgICBUaGlzIGlzIGEgbGl0
dGxlIHVnbHksIGJ1dCBpdCBkb2Vzbid0IHNlZW0gd29ydGggYWRkaW5nIGEgd2hvbGUgZXh0cmEg
LmNwcAorICAgICAgICAgICAgICB0byB0aGUgY29tcGlsZSBmb3IganVzdCBvbmUgY29uc3RhbnQu
CisKIDIwMTEtMTEtMDggIEdhdmluIEJhcnJhY2xvdWdoICA8YmFycmFjbG91Z2hAYXBwbGUuY29t
PgogCiAgICAgICAgIE1vdmUgZHVwbGljYXRlcyBvZiBTWU1CT0xfU1RSSU5HKiBtYWNyb3MgdG8g
dGhlIHNpbmdsZSBsb2NhdGlvbgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxl
ci9NYWNyb0Fzc2VtYmxlckFSTS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk0uaAkocmV2aXNpb24gOTk2MzMpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTc4MCwyMSArNzgwLDIxIEBAIHB1YmxpYzoKICAgICB9CiAKICAgICAvLyBGbG9h
dGluZyBwb2ludCBvcGVyYXRvcnMKLSAgICBib29sIHN1cHBvcnRzRmxvYXRpbmdQb2ludCgpIGNv
bnN0CisgICAgc3RhdGljIGJvb2wgc3VwcG9ydHNGbG9hdGluZ1BvaW50KCkKICAgICB7CiAgICAg
ICAgIHJldHVybiBzX2lzVkZQUHJlc2VudDsKICAgICB9CiAKLSAgICBib29sIHN1cHBvcnRzRmxv
YXRpbmdQb2ludFRydW5jYXRlKCkgY29uc3QKKyAgICBzdGF0aWMgYm9vbCBzdXBwb3J0c0Zsb2F0
aW5nUG9pbnRUcnVuY2F0ZSgpCiAgICAgewogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQog
Ci0gICAgYm9vbCBzdXBwb3J0c0Zsb2F0aW5nUG9pbnRTcXJ0KCkgY29uc3QKKyAgICBzdGF0aWMg
Ym9vbCBzdXBwb3J0c0Zsb2F0aW5nUG9pbnRTcXJ0KCkKICAgICB7CiAgICAgICAgIHJldHVybiBz
X2lzVkZQUHJlc2VudDsKICAgICB9Ci0gICAgYm9vbCBzdXBwb3J0c0RvdWJsZUJpdG9wcygpIGNv
bnN0IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgc3RhdGljIGJvb2wgc3VwcG9ydHNGbG9hdGluZ1Bv
aW50QWJzKCkgeyByZXR1cm4gZmFsc2U7IH0KIAogICAgIHZvaWQgbG9hZERvdWJsZShJbXBsaWNp
dEFkZHJlc3MgYWRkcmVzcywgRlBSZWdpc3RlcklEIGRlc3QpCiAgICAgewpAQCAtODYyLDcgKzg2
Miw3IEBAIHB1YmxpYzoKICAgICAgICAgbV9hc3NlbWJsZXIudnNxcnRfZjY0X3IoZGVzdCwgc3Jj
KTsKICAgICB9CiAgICAgCi0gICAgdm9pZCBhbmRub3REb3VibGUoRlBSZWdpc3RlcklELCBGUFJl
Z2lzdGVySUQpCisgICAgdm9pZCBhYnNEb3VibGUoRlBSZWdpc3RlcklELCBGUFJlZ2lzdGVySUQp
CiAgICAgewogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICB9CkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNdjcuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJN
djcuaAkocmV2aXNpb24gOTk2MzMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVy
L01hY3JvQXNzZW1ibGVyQVJNdjcuaAkod29ya2luZyBjb3B5KQpAQCAtNTY0LDcgKzU2NCw3IEBA
IHB1YmxpYzoKIAogICAgIC8vIEZsb2F0aW5nLXBvaW50IG9wZXJhdGlvbnM6CiAKLSAgICBib29s
IHN1cHBvcnRzRmxvYXRpbmdQb2ludCgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KKyAgICBzdGF0
aWMgYm9vbCBzdXBwb3J0c0Zsb2F0aW5nUG9pbnQoKSB7IHJldHVybiB0cnVlOyB9CiAgICAgLy8g
T24geDg2KF82NCkgdGhlIE1hY3JvQXNzZW1ibGVyIHByb3ZpZGVzIGFuIGludGVyZmFjZSB0byB0
cnVuY2F0ZSBhIGRvdWJsZSB0byBhbiBpbnRlZ2VyLgogICAgIC8vIElmIGEgdmFsdWUgaXMgbm90
IHJlcHJlc2VudGFibGUgYXMgYW4gaW50ZWdlciwgYW5kIHBvc3NpYmx5IGZvciBzb21lIHZhbHVl
cyB0aGF0IGFyZSwKICAgICAvLyAob24geDg2IElOVF9NSU4sIHNpbmNlIHRoaXMgaXMgaW5kaXN0
aW5ndWlzaGFibGUgZnJvbSByZXN1bHRzIGZvciBvdXQtb2YtcmFuZ2UvTmFOIGlucHV0KQpAQCAt
NTc2LDEzICs1NzYsMTMgQEAgcHVibGljOgogICAgIC8vIGdlbmVyaWMsIG9yIGRlY2lkZSB0aGF0
IHRoZSBNYWNyb0Fzc2VtYmxlciBjYW5ub3QgcHJhY3RpY2FsbHkgYmUgdXNlZCB0byBhYnN0cmFj
dGVkIHRoZXNlCiAgICAgLy8gb3BlcmF0aW9ucywgYW5kIG1ha2UgY2xpZW50cyBnbyBkaXJlY3Rs
eSB0byB0aGUgbV9hc3NlbWJsZXIgdG8gcGxhbnQgdHJ1bmNhdGlvbiBpbnN0cnVjdGlvbnMuCiAg
ICAgLy8gSW4gc2hvcnQsIEZJWE1FOi4KLSAgICBib29sIHN1cHBvcnRzRmxvYXRpbmdQb2ludFRy
dW5jYXRlKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICBzdGF0aWMgYm9vbCBzdXBwb3J0
c0Zsb2F0aW5nUG9pbnRUcnVuY2F0ZSgpIHsgcmV0dXJuIGZhbHNlOyB9CiAKLSAgICBib29sIHN1
cHBvcnRzRmxvYXRpbmdQb2ludFNxcnQoKSBjb25zdAorICAgIHN0YXRpYyBib29sIHN1cHBvcnRz
RmxvYXRpbmdQb2ludFNxcnQoKQogICAgIHsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0K
LSAgICBib29sIHN1cHBvcnRzRG91YmxlQml0b3BzKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0K
KyAgICBzdGF0aWMgYm9vbCBzdXBwb3J0c0Zsb2F0aW5nUG9pbnRBYnMoKSB7IHJldHVybiBmYWxz
ZTsgfQogCiAgICAgdm9pZCBsb2FkRG91YmxlKEltcGxpY2l0QWRkcmVzcyBhZGRyZXNzLCBGUFJl
Z2lzdGVySUQgZGVzdCkKICAgICB7CkBAIC02NjMsNyArNjYzLDcgQEAgcHVibGljOgogICAgICAg
ICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICB9CiAgICAgCi0gICAgdm9pZCBhbmRub3REb3Vi
bGUoRlBSZWdpc3RlcklELCBGUFJlZ2lzdGVySUQpIE5PX1JFVFVSTl9EVUVfVE9fQVNTRVJUCisg
ICAgdm9pZCBhYnNEb3VibGUoRlBSZWdpc3RlcklELCBGUFJlZ2lzdGVySUQpIE5PX1JFVFVSTl9E
VUVfVE9fQVNTRVJUCiAgICAgewogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICB9
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyTUlQ
Uy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9B
c3NlbWJsZXJNSVBTLmgJKHJldmlzaW9uIDk5NjMzKQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlck1JUFMuaAkod29ya2luZyBjb3B5KQpAQCAtNDcxLDcg
KzQ3MSw3IEBAIHB1YmxpYzoKICAgICAgICAgbV9hc3NlbWJsZXIuc3FydGQoZHN0LCBzcmMpOwog
ICAgIH0KICAgICAKLSAgICB2b2lkIGFuZG5vdERvdWJsZShGUFJlZ2lzdGVySUQsIEZQUmVnaXN0
ZXJJRCkKKyAgICB2b2lkIGFic0RvdWJsZShGUFJlZ2lzdGVySUQsIEZQUmVnaXN0ZXJJRCkKICAg
ICB7CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIH0KQEAgLTgzNCw3ICs4MzQs
NyBAQCBwdWJsaWM6CiAKICAgICAvLyBGbG9hdGluZy1wb2ludCBvcGVyYXRpb25zOgogCi0gICAg
Ym9vbCBzdXBwb3J0c0Zsb2F0aW5nUG9pbnQoKSBjb25zdAorICAgIHN0YXRpYyBib29sIHN1cHBv
cnRzRmxvYXRpbmdQb2ludCgpCiAgICAgewogI2lmIFdURl9NSVBTX0RPVUJMRV9GTE9BVAogICAg
ICAgICByZXR1cm4gdHJ1ZTsKQEAgLTg0Myw3ICs4NDMsNyBAQCBwdWJsaWM6CiAjZW5kaWYKICAg
ICB9CiAKLSAgICBib29sIHN1cHBvcnRzRmxvYXRpbmdQb2ludFRydW5jYXRlKCkgY29uc3QKKyAg
ICBzdGF0aWMgYm9vbCBzdXBwb3J0c0Zsb2F0aW5nUG9pbnRUcnVuY2F0ZSgpCiAgICAgewogI2lm
IFdURl9NSVBTX0RPVUJMRV9GTE9BVCAmJiBXVEZfTUlQU19JU0FfQVRfTEVBU1QoMikKICAgICAg
ICAgcmV0dXJuIHRydWU7CkBAIC04NTIsNyArODUyLDcgQEAgcHVibGljOgogI2VuZGlmCiAgICAg
fQogCi0gICAgYm9vbCBzdXBwb3J0c0Zsb2F0aW5nUG9pbnRTcXJ0KCkgY29uc3QKKyAgICBzdGF0
aWMgYm9vbCBzdXBwb3J0c0Zsb2F0aW5nUG9pbnRTcXJ0KCkKICAgICB7CiAjaWYgV1RGX01JUFNf
RE9VQkxFX0ZMT0FUICYmIFdURl9NSVBTX0lTQV9BVF9MRUFTVCgyKQogICAgICAgICByZXR1cm4g
dHJ1ZTsKQEAgLTg2MCw3ICs4NjAsNyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBmYWxzZTsK
ICNlbmRpZgogICAgIH0KLSAgICBib29sIHN1cHBvcnRzRG91YmxlQml0b3BzKCkgY29uc3QgeyBy
ZXR1cm4gZmFsc2U7IH0KKyAgICBzdGF0aWMgYm9vbCBzdXBwb3J0c0Zsb2F0aW5nUG9pbnRBYnMo
KSB7IHJldHVybiBmYWxzZTsgfQogCiAgICAgLy8gU3RhY2sgbWFuaXB1bGF0aW9uIG9wZXJhdGlv
bnM6CiAgICAgLy8KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9B
c3NlbWJsZXJTSDQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1i
bGVyL01hY3JvQXNzZW1ibGVyU0g0LmgJKHJldmlzaW9uIDk5NjMzKQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclNINC5oCSh3b3JraW5nIGNvcHkpCkBA
IC03ODYsMTAgKzc4NiwxMCBAQCBwdWJsaWM6CiAKICAgICAgLy8gRmxvYXRpbmctcG9pbnQgb3Bl
cmF0aW9ucwogCi0gICAgYm9vbCBzdXBwb3J0c0Zsb2F0aW5nUG9pbnQoKSBjb25zdCB7IHJldHVy
biB0cnVlOyB9Ci0gICAgYm9vbCBzdXBwb3J0c0Zsb2F0aW5nUG9pbnRUcnVuY2F0ZSgpIGNvbnN0
IHsgcmV0dXJuIHRydWU7IH0KLSAgICBib29sIHN1cHBvcnRzRmxvYXRpbmdQb2ludFNxcnQoKSBj
b25zdCB7IHJldHVybiB0cnVlOyB9Ci0gICAgYm9vbCBzdXBwb3J0c0RvdWJsZUJpdG9wcygpIGNv
bnN0IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgc3RhdGljIGJvb2wgc3VwcG9ydHNGbG9hdGluZ1Bv
aW50KCkgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHN0YXRpYyBib29sIHN1cHBvcnRzRmxvYXRpbmdQ
b2ludFRydW5jYXRlKCkgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHN0YXRpYyBib29sIHN1cHBvcnRz
RmxvYXRpbmdQb2ludFNxcnQoKSB7IHJldHVybiB0cnVlOyB9CisgICAgc3RhdGljIGJvb2wgc3Vw
cG9ydHNGbG9hdGluZ1BvaW50QWJzKCkgeyByZXR1cm4gZmFsc2U7IH0KIAogICAgIHZvaWQgbG9h
ZERvdWJsZShJbXBsaWNpdEFkZHJlc3MgYWRkcmVzcywgRlBSZWdpc3RlcklEIGRlc3QpCiAgICAg
ewpAQCAtMTEyOSw3ICsxMTI5LDcgQEAgcHVibGljOgogICAgICAgICBtX2Fzc2VtYmxlci5kc3Fy
dChkZXN0KTsKICAgICB9CiAgICAgCi0gICAgdm9pZCBhbmRub3REb3VibGUoRlBSZWdpc3RlcklE
LCBGUFJlZ2lzdGVySUQpCisgICAgdm9pZCBhYnNEb3VibGUoRlBSZWdpc3RlcklELCBGUFJlZ2lz
dGVySUQpCiAgICAgewogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICB9CkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2LmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxl
clg4Ni5oCShyZXZpc2lvbiA5OTYzMykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJs
ZXIvTWFjcm9Bc3NlbWJsZXJYODYuaAkod29ya2luZyBjb3B5KQpAQCAtMzQsMTEgKzM0LDYgQEAg
bmFtZXNwYWNlIEpTQyB7CiAKIGNsYXNzIE1hY3JvQXNzZW1ibGVyWDg2IDogcHVibGljIE1hY3Jv
QXNzZW1ibGVyWDg2Q29tbW9uIHsKIHB1YmxpYzoKLSAgICBNYWNyb0Fzc2VtYmxlclg4NigpCi0g
ICAgICAgIDogbV9pc1NTRTJQcmVzZW50KGlzU1NFMlByZXNlbnQoKSkKLSAgICB7Ci0gICAgfQot
CiAgICAgc3RhdGljIGNvbnN0IFNjYWxlIFNjYWxlUHRyID0gVGltZXNGb3VyOwogCiAgICAgdXNp
bmcgTWFjcm9Bc3NlbWJsZXJYODZDb21tb246OmFkZDMyOwpAQCAtMTEzLDYgKzEwOCwxMiBAQCBw
dWJsaWM6CiAgICAgICAgIG1fYXNzZW1ibGVyLmN2dHNpMnNkX21yKHNyYy5tX3B0ciwgZGVzdCk7
CiAgICAgfQogCisgICAgdm9pZCBhYnNEb3VibGUoRlBSZWdpc3RlcklEIHNyYywgRlBSZWdpc3Rl
cklEIGRzdCkKKyAgICB7CisgICAgICAgIG1vdmVEb3VibGUoc3JjLCBkc3QpOworICAgICAgICBt
X2Fzc2VtYmxlci5hbmRwZF9tcigmc19tYXNrU2lnbkJpdCwgZHN0KTsKKyAgICB9CisKICAgICB2
b2lkIHN0b3JlMzIoVHJ1c3RlZEltbTMyIGltbSwgdm9pZCogYWRkcmVzcykKICAgICB7CiAgICAg
ICAgIG1fYXNzZW1ibGVyLm1vdmxfaTMybShpbW0ubV92YWx1ZSwgYWRkcmVzcyk7CkBAIC0xODks
MTUgKzE5MCwxMyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBEYXRhTGFiZWxQdHIodGhpcyk7
CiAgICAgfQogCi0gICAgYm9vbCBzdXBwb3J0c0Zsb2F0aW5nUG9pbnQoKSBjb25zdCB7IHJldHVy
biBtX2lzU1NFMlByZXNlbnQ7IH0KKyAgICBzdGF0aWMgYm9vbCBzdXBwb3J0c0Zsb2F0aW5nUG9p
bnQoKSB7IHJldHVybiBpc1NTRTJQcmVzZW50KCk7IH0KICAgICAvLyBTZWUgY29tbWVudCBvbiBN
YWNyb0Fzc2VtYmxlckFSTXY3OjpzdXBwb3J0c0Zsb2F0aW5nUG9pbnRUcnVuY2F0ZSgpCi0gICAg
Ym9vbCBzdXBwb3J0c0Zsb2F0aW5nUG9pbnRUcnVuY2F0ZSgpIGNvbnN0IHsgcmV0dXJuIG1faXNT
U0UyUHJlc2VudDsgfQotICAgIGJvb2wgc3VwcG9ydHNGbG9hdGluZ1BvaW50U3FydCgpIGNvbnN0
IHsgcmV0dXJuIG1faXNTU0UyUHJlc2VudDsgfQotICAgIGJvb2wgc3VwcG9ydHNEb3VibGVCaXRv
cHMoKSBjb25zdCB7IHJldHVybiBtX2lzU1NFMlByZXNlbnQ7IH0KKyAgICBzdGF0aWMgYm9vbCBz
dXBwb3J0c0Zsb2F0aW5nUG9pbnRUcnVuY2F0ZSgpIHsgcmV0dXJuIGlzU1NFMlByZXNlbnQoKTsg
fQorICAgIHN0YXRpYyBib29sIHN1cHBvcnRzRmxvYXRpbmdQb2ludFNxcnQoKSB7IHJldHVybiBp
c1NTRTJQcmVzZW50KCk7IH0KKyAgICBzdGF0aWMgYm9vbCBzdXBwb3J0c0Zsb2F0aW5nUG9pbnRB
YnMoKSB7IHJldHVybiBpc1NTRTJQcmVzZW50KCk7IH0KIAogcHJpdmF0ZToKLSAgICBjb25zdCBi
b29sIG1faXNTU0UyUHJlc2VudDsKLQogICAgIGZyaWVuZCBjbGFzcyBMaW5rQnVmZmVyOwogICAg
IGZyaWVuZCBjbGFzcyBSZXBhdGNoQnVmZmVyOwogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2Q29tbW9uLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4NkNvbW1vbi5oCShy
ZXZpc2lvbiA5OTY0MCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9B
c3NlbWJsZXJYODZDb21tb24uaAkod29ya2luZyBjb3B5KQpAQCAtNDI0LDExICs0MjQsNiBAQCBw
dWJsaWM6CiAgICAgICAgIG1fYXNzZW1ibGVyLnNxcnRzZF9ycihzcmMsIGRzdCk7CiAgICAgfQog
Ci0gICAgdm9pZCBhbmRub3REb3VibGUoRlBSZWdpc3RlcklEIHNyYywgRlBSZWdpc3RlcklEIGRz
dCkKLSAgICB7Ci0gICAgICAgIG1fYXNzZW1ibGVyLmFuZG5wZF9ycihzcmMsIGRzdCk7Ci0gICAg
fQotCiAgICAgLy8gTWVtb3J5IGFjY2VzcyBvcGVyYXRpb25zOgogICAgIC8vCiAgICAgLy8gTG9h
ZHMgYXJlIG9mIHRoZSBmb3JtIGxvYWQoYWRkcmVzcywgZGVzdGluYXRpb24pIGFuZCBzdG9yZXMg
b2YgdGhlIGZvcm0KQEAgLTEyNjYsNiArMTI2MSw5IEBAIHB1YmxpYzoKICAgICB9CiAKIHByb3Rl
Y3RlZDoKKyAgICAvLyBBIDY0LWJpdCBtYXNrIHdpdGggYWxsIGJpdHMgc2V0IG90aGVyIHRoYW4g
dGhlIHNpZ24gYml0ICh1c2VkIGluIGFicykuCisgICAgc3RhdGljIGNvbnN0IHVpbnQ2NF90IHNf
bWFza1NpZ25CaXQ7CisKICAgICBYODZBc3NlbWJsZXI6OkNvbmRpdGlvbiB4ODZDb25kaXRpb24o
UmVsYXRpb25hbENvbmRpdGlvbiBjb25kKQogICAgIHsKICAgICAgICAgcmV0dXJuIHN0YXRpY19j
YXN0PFg4NkFzc2VtYmxlcjo6Q29uZGl0aW9uPihjb25kKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJYODZfNjQuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2XzY0LmgJKHJl
dmlzaW9uIDk5NjMzKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fz
c2VtYmxlclg4Nl82NC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMDUsNiArMTA1LDEzIEBAIHB1Ymxp
YzoKICAgICAgICAgbV9hc3NlbWJsZXIuY3Z0c2kyc2RfcnIoc2NyYXRjaFJlZ2lzdGVyLCBkZXN0
KTsKICAgICB9CiAKKyAgICB2b2lkIGFic0RvdWJsZShGUFJlZ2lzdGVySUQgc3JjLCBGUFJlZ2lz
dGVySUQgZHN0KQorICAgIHsKKyAgICAgICAgbW92ZURvdWJsZShzcmMsIGRzdCk7CisgICAgICAg
IG1vdmUoVHJ1c3RlZEltbVB0cigmc19tYXNrU2lnbkJpdCksIHNjcmF0Y2hSZWdpc3Rlcik7Cisg
ICAgICAgIG1fYXNzZW1ibGVyLmFuZHBkX21yKDAsIHNjcmF0Y2hSZWdpc3RlciwgZHN0KTsKKyAg
ICB9CisKICAgICB2b2lkIHN0b3JlMzIoVHJ1c3RlZEltbTMyIGltbSwgdm9pZCogYWRkcmVzcykK
ICAgICB7CiAgICAgICAgIG1vdmUoVHJ1c3RlZEltbVB0cihhZGRyZXNzKSwgc2NyYXRjaFJlZ2lz
dGVyKTsKQEAgLTQ2MSwxMSArNDY4LDExIEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIE1hY3Jv
QXNzZW1ibGVyWDg2Q29tbW9uOjpicmFuY2hUZXN0OChjb25kLCBCYXNlSW5kZXgoc2NyYXRjaFJl
Z2lzdGVyLCBhZGRyZXNzLmJhc2UsIFRpbWVzT25lKSwgbWFzayk7CiAgICAgfQogCi0gICAgYm9v
bCBzdXBwb3J0c0Zsb2F0aW5nUG9pbnQoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CisgICAgc3Rh
dGljIGJvb2wgc3VwcG9ydHNGbG9hdGluZ1BvaW50KCkgeyByZXR1cm4gdHJ1ZTsgfQogICAgIC8v
IFNlZSBjb21tZW50IG9uIE1hY3JvQXNzZW1ibGVyQVJNdjc6OnN1cHBvcnRzRmxvYXRpbmdQb2lu
dFRydW5jYXRlKCkKLSAgICBib29sIHN1cHBvcnRzRmxvYXRpbmdQb2ludFRydW5jYXRlKCkgY29u
c3QgeyByZXR1cm4gdHJ1ZTsgfQotICAgIGJvb2wgc3VwcG9ydHNGbG9hdGluZ1BvaW50U3FydCgp
IGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KLSAgICBib29sIHN1cHBvcnRzRG91YmxlQml0b3BzKCkg
Y29uc3QgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHN0YXRpYyBib29sIHN1cHBvcnRzRmxvYXRpbmdQ
b2ludFRydW5jYXRlKCkgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHN0YXRpYyBib29sIHN1cHBvcnRz
RmxvYXRpbmdQb2ludFNxcnQoKSB7IHJldHVybiB0cnVlOyB9CisgICAgc3RhdGljIGJvb2wgc3Vw
cG9ydHNGbG9hdGluZ1BvaW50QWJzKCkgeyByZXR1cm4gdHJ1ZTsgfQogCiBwcml2YXRlOgogICAg
IGZyaWVuZCBjbGFzcyBMaW5rQnVmZmVyOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Fz
c2VtYmxlci9YODZBc3NlbWJsZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYXNzZW1ibGVyL1g4NkFzc2VtYmxlci5oCShyZXZpc2lvbiA5OTY0MCkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvWDg2QXNzZW1ibGVyLmgJKHdvcmtpbmcgY29weSkKQEAg
LTE3Myw2ICsxNzMsNyBAQCBwcml2YXRlOgogICAgICAgICBPUDJfU1VCU0RfVnNkV3NkICAgID0g
MHg1QywKICAgICAgICAgT1AyX0RJVlNEX1ZzZFdzZCAgICA9IDB4NUUsCiAgICAgICAgIE9QMl9T
UVJUU0RfVnNkV3NkICAgPSAweDUxLAorICAgICAgICBPUDJfQU5EUERfVnBkV3BkICAgID0gMHg1
NCwKICAgICAgICAgT1AyX0FORE5QRF9WcGRXcGQgICA9IDB4NTUsCiAgICAgICAgIE9QMl9YT1JQ
RF9WcGRXcGQgICAgPSAweDU3LAogICAgICAgICBPUDJfTU9WRF9WZEVkICAgICAgID0gMHg2RSwK
QEAgLTE1NjcsNiArMTU2OCwyNiBAQCBwdWJsaWM6CiAgICAgICAgIG1fZm9ybWF0dGVyLnR3b0J5
dGVPcChPUDJfQU5ETlBEX1ZwZFdwZCwgKFJlZ2lzdGVySUQpZHN0LCAoUmVnaXN0ZXJJRClzcmMp
OwogICAgIH0KIAorICAgIHZvaWQgYW5kcGRfcnIoWE1NUmVnaXN0ZXJJRCBzcmMsIFhNTVJlZ2lz
dGVySUQgZHN0KQorICAgIHsKKyAgICAgICAgbV9mb3JtYXR0ZXIucHJlZml4KFBSRV9TU0VfNjYp
OworICAgICAgICBtX2Zvcm1hdHRlci50d29CeXRlT3AoT1AyX0FORFBEX1ZwZFdwZCwgKFJlZ2lz
dGVySUQpZHN0LCAoUmVnaXN0ZXJJRClzcmMpOworICAgIH0KKworICAgIHZvaWQgYW5kcGRfbXIo
aW50IG9mZnNldCwgUmVnaXN0ZXJJRCBiYXNlLCBYTU1SZWdpc3RlcklEIGRzdCkKKyAgICB7Cisg
ICAgICAgIG1fZm9ybWF0dGVyLnByZWZpeChQUkVfU1NFXzY2KTsKKyAgICAgICAgbV9mb3JtYXR0
ZXIudHdvQnl0ZU9wKE9QMl9BTkRQRF9WcGRXcGQsIChSZWdpc3RlcklEKWRzdCwgYmFzZSwgb2Zm
c2V0KTsKKyAgICB9CisKKyNpZiBDUFUoWDg2KQorICAgIHZvaWQgYW5kcGRfbXIoY29uc3Qgdm9p
ZCogYWRkcmVzcywgWE1NUmVnaXN0ZXJJRCBkc3QpCisgICAgeworICAgICAgICBtX2Zvcm1hdHRl
ci5wcmVmaXgoUFJFX1NTRV82Nik7CisgICAgICAgIG1fZm9ybWF0dGVyLnR3b0J5dGVPcChPUDJf
QU5EUERfVnBkV3BkLCAoUmVnaXN0ZXJJRClkc3QsIGFkZHJlc3MpOworICAgIH0KKyNlbmRpZgor
CiAgICAgdm9pZCBzcXJ0c2RfcnIoWE1NUmVnaXN0ZXJJRCBzcmMsIFhNTVJlZ2lzdGVySUQgZHN0
KQogICAgIHsKICAgICAgICAgbV9mb3JtYXR0ZXIucHJlZml4KFBSRV9TU0VfRjIpOwpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAJKHJl
dmlzaW9uIDk5NjMzKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBh
cnNlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTExNDEsMTAgKzExNDEsMTUgQEAgYm9vbCBCeXRl
Q29kZVBhcnNlcjo6aGFuZGxlSW50cmluc2ljKGJvbwogICAgICAgICAvLyBXZSBkb24ndCBjYXJl
IGFib3V0IHRoZSB0aGlzIGFyZ3VtZW50LiBJZiB3ZSBkb24ndCBoYXZlIGEgZmlyc3QKICAgICAg
ICAgLy8gYXJndW1lbnQgdGhlbiBtYWtlIHRoaXMgSlNDb25zdGFudChOYU4pLgogICAgICAgICBp
bnQgYWJzQXJnID0gZmlyc3RBcmcgKyAxOwotICAgICAgICBpZiAoYWJzQXJnID4gbGFzdEFyZykK
KyAgICAgICAgaWYgKGFic0FyZyA+IGxhc3RBcmcpIHsKICAgICAgICAgICAgIHNldChyZXN1bHRP
cGVyYW5kLCBjb25zdGFudE5hTigpKTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgc2V0KHJl
c3VsdE9wZXJhbmQsIGFkZFRvR3JhcGgoQXJpdGhBYnMsIE9wSW5mbyhOb2RlVXNlQm90dG9tKSwg
Z2V0VG9OdW1iZXIoYWJzQXJnKSkpOworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAg
IH0KKworICAgICAgICBpZiAoIU1hY3JvQXNzZW1ibGVyOjpzdXBwb3J0c0Zsb2F0aW5nUG9pbnRB
YnMoKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICBzZXQocmVzdWx0T3Bl
cmFuZCwgYWRkVG9HcmFwaChBcml0aEFicywgT3BJbmZvKE5vZGVVc2VCb3R0b20pLCBnZXRUb051
bWJlcihhYnNBcmcpKSk7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KICAgICAgICAgCkBA
IC0xMTYzLDYgKzExNjgsOSBAQCBib29sIEJ5dGVDb2RlUGFyc2VyOjpoYW5kbGVJbnRyaW5zaWMo
Ym9vCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQogICAgICAgICAKKyAgICAg
ICAgaWYgKCFNYWNyb0Fzc2VtYmxlcjo6c3VwcG9ydHNGbG9hdGluZ1BvaW50U3FydCgpKQorICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAKICAgICAgICAgc2V0KHJlc3VsdE9wZXJh
bmQsIGFkZFRvR3JhcGgoQXJpdGhTcXJ0LCBnZXRUb051bWJlcihmaXJzdEFyZyArIDEpKSk7CiAg
ICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcAkocmV2aXNpb24gOTk2MzMp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0xMjU2LDEyICsxMjU2LDkgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJ
VDo6Y29tcGlsZShOb2RlJiBub2RlKQogICAgICAgICB9CiAgICAgICAgIAogICAgICAgICBTcGVj
dWxhdGVEb3VibGVPcGVyYW5kIG9wMSh0aGlzLCBub2RlLmNoaWxkMSgpKTsKLSAgICAgICAgRlBS
VGVtcG9yYXJ5IHJlc3VsdCh0aGlzKTsKLSAgICAgICAgCi0gICAgICAgIHN0YXRpYyBjb25zdCBk
b3VibGUgbmVnYXRpdmVaZXJvQ29uc3RhbnQgPSAtMC4wOworICAgICAgICBGUFJUZW1wb3Jhcnkg
cmVzdWx0KHRoaXMsIG9wMSk7CiAgICAgICAgIAotICAgICAgICBtX2ppdC5sb2FkRG91YmxlKCZu
ZWdhdGl2ZVplcm9Db25zdGFudCwgcmVzdWx0LmZwcigpKTsKLSAgICAgICAgbV9qaXQuYW5kbm90
RG91YmxlKG9wMS5mcHIoKSwgcmVzdWx0LmZwcigpKTsKKyAgICAgICAgbV9qaXQuYWJzRG91Ymxl
KG9wMS5mcHIoKSwgcmVzdWx0LmZwcigpKTsKICAgICAgICAgZG91YmxlUmVzdWx0KHJlc3VsdC5m
cHIoKSwgbV9jb21waWxlSW5kZXgpOwogICAgICAgICBicmVhazsKICAgICB9CkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAJKHJl
dmlzaW9uIDk5NjMzKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2
ZUpJVDY0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTMwNiwxMiArMTMwNiw5IEBAIHZvaWQgU3Bl
Y3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSYgbm9kZSkKICAgICAgICAgfQogICAgICAgICAKICAg
ICAgICAgU3BlY3VsYXRlRG91YmxlT3BlcmFuZCBvcDEodGhpcywgbm9kZS5jaGlsZDEoKSk7Ci0g
ICAgICAgIEZQUlRlbXBvcmFyeSByZXN1bHQodGhpcyk7Ci0gICAgICAgIAotICAgICAgICBzdGF0
aWMgY29uc3QgZG91YmxlIG5lZ2F0aXZlWmVyb0NvbnN0YW50ID0gLTAuMDsKKyAgICAgICAgRlBS
VGVtcG9yYXJ5IHJlc3VsdCh0aGlzLCBvcDEpOwogICAgICAgICAKLSAgICAgICAgbV9qaXQubG9h
ZERvdWJsZSgmbmVnYXRpdmVaZXJvQ29uc3RhbnQsIHJlc3VsdC5mcHIoKSk7Ci0gICAgICAgIG1f
aml0LmFuZG5vdERvdWJsZShvcDEuZnByKCksIHJlc3VsdC5mcHIoKSk7CisgICAgICAgIG1faml0
LmFic0RvdWJsZShvcDEuZnByKCksIHJlc3VsdC5mcHIoKSk7CiAgICAgICAgIGRvdWJsZVJlc3Vs
dChyZXN1bHQuZnByKCksIG1fY29tcGlsZUluZGV4KTsKICAgICAgICAgYnJlYWs7CiAgICAgfQpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9UaHVua0dlbmVyYXRvcnMuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvVGh1bmtHZW5lcmF0b3JzLmNwcAko
cmV2aXNpb24gOTk2MzMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1RodW5rR2VuZXJh
dG9ycy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI3Nyw3ICsyNzcsNyBAQCBNYWNyb0Fzc2VtYmxl
ckNvZGVSZWYgbG9nVGh1bmtHZW5lcmF0b3IoCiBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgYWJzVGh1
bmtHZW5lcmF0b3IoSlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRhKQogewogICAgIFNwZWNpYWxpemVk
VGh1bmtKSVQgaml0KDEsIGdsb2JhbERhdGEpOwotICAgIGlmICghaml0LnN1cHBvcnRzRG91Ymxl
Qml0b3BzKCkpCisgICAgaWYgKCFqaXQuc3VwcG9ydHNGbG9hdGluZ1BvaW50QWJzKCkpCiAgICAg
ICAgIHJldHVybiBNYWNyb0Fzc2VtYmxlckNvZGVSZWY6OmNyZWF0ZVNlbGZNYW5hZ2VkQ29kZVJl
ZihnbG9iYWxEYXRhLT5qaXRTdHVicy0+Y3RpTmF0aXZlQ2FsbCgpKTsKICAgICBNYWNyb0Fzc2Vt
Ymxlcjo6SnVtcCBub25JbnRKdW1wOwogICAgIGppdC5sb2FkSW50MzJBcmd1bWVudCgwLCBTcGVj
aWFsaXplZFRodW5rSklUOjpyZWdUMCwgbm9uSW50SnVtcCk7CkBAIC0yODgsOSArMjg4LDggQEAg
TWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGFic1RodW5rR2VuZXJhdG9yKAogICAgIGppdC5yZXR1cm5J
bnQzMihTcGVjaWFsaXplZFRodW5rSklUOjpyZWdUMCk7CiAgICAgbm9uSW50SnVtcC5saW5rKCZq
aXQpOwogICAgIC8vIFNoYW1lIGFib3V0IHRoZSBkb3VibGUgaW50IGNvbnZlcnNpb24gaGVyZS4K
LSAgICBqaXQubG9hZERvdWJsZSgmbmVnYXRpdmVaZXJvQ29uc3RhbnQsIFNwZWNpYWxpemVkVGh1
bmtKSVQ6OmZwUmVnVDEpOwogICAgIGppdC5sb2FkRG91YmxlQXJndW1lbnQoMCwgU3BlY2lhbGl6
ZWRUaHVua0pJVDo6ZnBSZWdUMCwgU3BlY2lhbGl6ZWRUaHVua0pJVDo6cmVnVDApOwotICAgIGpp
dC5hbmRub3REb3VibGUoU3BlY2lhbGl6ZWRUaHVua0pJVDo6ZnBSZWdUMCwgU3BlY2lhbGl6ZWRU
aHVua0pJVDo6ZnBSZWdUMSk7CisgICAgaml0LmFic0RvdWJsZShTcGVjaWFsaXplZFRodW5rSklU
OjpmcFJlZ1QwLCBTcGVjaWFsaXplZFRodW5rSklUOjpmcFJlZ1QxKTsKICAgICBqaXQucmV0dXJu
RG91YmxlKFNwZWNpYWxpemVkVGh1bmtKSVQ6OmZwUmVnVDEpOwogICAgIHJldHVybiBqaXQuZmlu
YWxpemUoKmdsb2JhbERhdGEsIGdsb2JhbERhdGEtPmppdFN0dWJzLT5jdGlOYXRpdmVDYWxsKCkp
OwogfQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxEYXRhLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbERh
dGEuY3BwCShyZXZpc2lvbiA5OTYzMykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTR2xvYmFsRGF0YS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTg4LDYgKzg4LDEwIEBAIGlubGlu
ZSB2b2lkIFJlY29tcGlsZXI6Om9wZXJhdG9yKCkoSlNDZWwKIAogbmFtZXNwYWNlIEpTQyB7CiAK
KyNpZiBFTkFCTEUoQVNTRU1CTEVSKSAmJiAoQ1BVKFg4NikgfHwgQ1BVKFg4Nl82NCkpCitjb25z
dCB1aW50NjRfdCBNYWNyb0Fzc2VtYmxlclg4NkNvbW1vbjo6c19tYXNrU2lnbkJpdCA9IDB4N0ZG
RkZGRkZGRkZGRkZGRnVsbDsKKyNlbmRpZgorCiBleHRlcm4gSlNDX0NPTlNUX0hBU0hUQUJMRSBI
YXNoVGFibGUgYXJyYXlDb25zdHJ1Y3RvclRhYmxlOwogZXh0ZXJuIEpTQ19DT05TVF9IQVNIVEFC
TEUgSGFzaFRhYmxlIGFycmF5UHJvdG90eXBlVGFibGU7CiBleHRlcm4gSlNDX0NPTlNUX0hBU0hU
QUJMRSBIYXNoVGFibGUgYm9vbGVhblByb3RvdHlwZVRhYmxlOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>