<?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>43999</bug_id>
          
          <creation_ts>2010-08-13 18:22:41 -0700</creation_ts>
          <short_desc>Support JSVALUE32_64 on MIPS</short_desc>
          <delta_ts>2010-09-06 13:29:31 -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>Other</rep_platform>
          <op_sys>Linux</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="Chao-ying Fu">fu</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>barraclough</cc>
    
    <cc>commit-queue</cc>
    
    <cc>loki</cc>
    
    <cc>oliver</cc>
    
    <cc>ossy</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>264573</commentid>
    <comment_count>0</comment_count>
    <who name="Chao-ying Fu">fu</who>
    <bug_when>2010-08-13 18:22:41 -0700</bug_when>
    <thetext>Hi All,

  I added some missing assembly functions to support JSVALUE32_64 on MIPS.
SunSpider test on a MIPS board is as follows.

JSVALUE32:    11045.8ms +/- 0.3%
JSVALUE32_64:  7290.5ms +/- 0.3%

  Regression test is ok.  I will send a patch soon.  Thanks!

Regards,
Chao-ying</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>264577</commentid>
    <comment_count>1</comment_count>
      <attachid>64395</attachid>
    <who name="Chao-ying Fu">fu</who>
    <bug_when>2010-08-13 18:30:15 -0700</bug_when>
    <thetext>Created attachment 64395
JSVALUE32_64 on MIPS

Here is the patch.  Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>264580</commentid>
    <comment_count>2</comment_count>
      <attachid>64396</attachid>
    <who name="Chao-ying Fu">fu</who>
    <bug_when>2010-08-13 18:37:03 -0700</bug_when>
    <thetext>Created attachment 64396
New patch to fix format error in the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>264581</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-08-13 18:38:54 -0700</bug_when>
    <thetext>Attachment 64396 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;]&quot; exit_code: 1
JavaScriptCore/wtf/Platform.h:916:  Extra space before ( in function call  [whitespace/parens] [4]
Total errors found: 1 in 9 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>264952</commentid>
    <comment_count>4</comment_count>
    <who name="Gabor Loki">loki</who>
    <bug_when>2010-08-15 23:55:00 -0700</bug_when>
    <thetext>The patch looks good to me, but I have some questions.

&gt;      struct JITStackFrame {
&gt;          void* reserved; // Unused
&gt; +#if USE(JSVALUE32_64)
&gt; +        void* padding1; // Maintain 8-byte stack alignment.
&gt; +#endif

You could switch the type of &apos;reserved&apos; member to JITStubArg which is a 32 bits wide data if JSVALUE32 is enabled, and 64 bits wide otherwise. So the alignment of the &apos;args&apos; should be fine in both cases.

&gt;          JITStubArg args[6];
&gt;  
&gt; +#if USE(JSVALUE32_64)
&gt; +        void* padding2; // Maintain 8-byte stack alignment.
&gt; +#endif
&gt; +

I do not get why it is needed. If &apos;args&apos; member is aligned, the preservedGP is aligned too.

&gt;          void* preservedGP; // store GP when using PIC code
&gt;          void* preservedS0;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>265167</commentid>
    <comment_count>5</comment_count>
    <who name="Chao-ying Fu">fu</who>
    <bug_when>2010-08-16 11:00:32 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; The patch looks good to me, but I have some questions.
&gt; 
&gt; &gt;      struct JITStackFrame {
&gt; &gt;          void* reserved; // Unused
&gt; &gt; +#if USE(JSVALUE32_64)
&gt; &gt; +        void* padding1; // Maintain 8-byte stack alignment.
&gt; &gt; +#endif
&gt; 
&gt; You could switch the type of &apos;reserved&apos; member to JITStubArg which is a 32 bits wide data if JSVALUE32 is enabled, and 64 bits wide otherwise. So the alignment of the &apos;args&apos; should be fine in both cases.

  Yes, this is a good idea.  I can use JITStubArg to avoid padding1.

&gt; 
&gt; &gt;          JITStubArg args[6];
&gt; &gt;  
&gt; &gt; +#if USE(JSVALUE32_64)
&gt; &gt; +        void* padding2; // Maintain 8-byte stack alignment.
&gt; &gt; +#endif
&gt; &gt; +
&gt; 
&gt; I do not get why it is needed. If &apos;args&apos; member is aligned, the preservedGP is aligned too.

  Yes, preservedGP is already aligned.  But I need padding2, so that the overall stack length can be a multiple of 8 bytes.  MIPS O32 ABI requires this.

&gt; 
&gt; &gt;          void* preservedGP; // store GP when using PIC code
&gt; &gt;          void* preservedS0;

  Thanks!

Regards,
Chao-ying</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>266453</commentid>
    <comment_count>6</comment_count>
      <attachid>64788</attachid>
    <who name="Chao-ying Fu">fu</who>
    <bug_when>2010-08-18 16:37:24 -0700</bug_when>
    <thetext>Created attachment 64788
Update padding in JITStackFrame

Here is a new patch to update padding in JITStackFrame.  Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>270219</commentid>
    <comment_count>7</comment_count>
      <attachid>64788</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2010-08-26 16:58:40 -0700</bug_when>
    <thetext>Comment on attachment 64788
Update padding in JITStackFrame


&gt; Index: JavaScriptCore/jit/JITPropertyAccess32_64.cpp
&gt; ===================================================================
&gt; +#if CPU(MIPS)
&gt; +    // For MIPS, we don&apos;t add sizeof(void*) to the stack offset.
&gt; +    load32(Address(stackPointerRegister, OBJECT_OFFSETOF(JITStackFrame, args[2]) + OBJECT_OFFSETOF(JSValue, u.asBits.payload)), regT3);
&gt; +    load32(Address(stackPointerRegister, OBJECT_OFFSETOF(JITStackFrame, args[2]) + OBJECT_OFFSETOF(JSValue, u.asBits.tag)), regT2);
&gt; +#else
&gt;      load32(Address(stackPointerRegister, OBJECT_OFFSETOF(JITStackFrame, args[2]) + sizeof(void*) + OBJECT_OFFSETOF(JSValue, u.asBits.payload)), regT3);
&gt;      load32(Address(stackPointerRegister, OBJECT_OFFSETOF(JITStackFrame, args[2]) + sizeof(void*) + OBJECT_OFFSETOF(JSValue, u.asBits.tag)), regT2);
&gt; +#endif
&gt;      

I don&apos;t particularly like this change -- in general we don&apos;t want to add ifdefs unless absolutely necessary, i assume the void* is for the return address here which makes me wonder why MIPS needs it when ARM doesn&apos;t -- does arm put the return address on the stack?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>270229</commentid>
    <comment_count>8</comment_count>
    <who name="Chao-ying Fu">fu</who>
    <bug_when>2010-08-26 17:15:52 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; (From update of attachment 64788 [details])
&gt; 
&gt; &gt; Index: JavaScriptCore/jit/JITPropertyAccess32_64.cpp
&gt; &gt; ===================================================================
&gt; &gt; +#if CPU(MIPS)
&gt; &gt; +    // For MIPS, we don&apos;t add sizeof(void*) to the stack offset.
&gt; &gt; +    load32(Address(stackPointerRegister, OBJECT_OFFSETOF(JITStackFrame, args[2]) + OBJECT_OFFSETOF(JSValue, u.asBits.payload)), regT3);
&gt; &gt; +    load32(Address(stackPointerRegister, OBJECT_OFFSETOF(JITStackFrame, args[2]) + OBJECT_OFFSETOF(JSValue, u.asBits.tag)), regT2);
&gt; &gt; +#else
&gt; &gt;      load32(Address(stackPointerRegister, OBJECT_OFFSETOF(JITStackFrame, args[2]) + sizeof(void*) + OBJECT_OFFSETOF(JSValue, u.asBits.payload)), regT3);
&gt; &gt;      load32(Address(stackPointerRegister, OBJECT_OFFSETOF(JITStackFrame, args[2]) + sizeof(void*) + OBJECT_OFFSETOF(JSValue, u.asBits.tag)), regT2);
&gt; &gt; +#endif
&gt; &gt;      
&gt; 
&gt; I don&apos;t particularly like this change -- in general we don&apos;t want to add ifdefs unless absolutely necessary, i assume the void* is for the return address here which makes me wonder why MIPS needs it when ARM doesn&apos;t -- does arm put the return address on the stack?

  This stack offset issue took me several days to debug MIPS JIT code and finally found out that the stack offset was wrong on MIPS.  I don&apos;t know why ARM needs sizeof(void*), similar to X86.  Thanks!

Regards,
Chao-ying</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>274721</commentid>
    <comment_count>9</comment_count>
      <attachid>64788</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2010-09-06 11:18:24 -0700</bug_when>
    <thetext>Comment on attachment 64788
Update padding in JITStackFrame

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>274765</commentid>
    <comment_count>10</comment_count>
      <attachid>64788</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-09-06 13:29:26 -0700</bug_when>
    <thetext>Comment on attachment 64788
Update padding in JITStackFrame

Clearing flags on attachment: 64788

Committed r66846: &lt;http://trac.webkit.org/changeset/66846&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>274766</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-09-06 13:29:31 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>64395</attachid>
            <date>2010-08-13 18:30:15 -0700</date>
            <delta_ts>2010-08-13 18:37:03 -0700</delta_ts>
            <desc>JSVALUE32_64 on MIPS</desc>
            <filename>mips-jsvalue3264.diff</filename>
            <type>text/plain</type>
            <size>30141</size>
            <attacher name="Chao-ying Fu">fu</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDY1MzQzKQorKysgSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzcgQEAKKzIwMTAtMDgtMTMgIENoYW8teWlu
ZyBGdSAgPGZ1QG1pcHMuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFN1cHBvcnQgSlNWQUxVRTMyXzY0IG9uIE1JUFMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQzOTk5CisKKyAgICAgICAgQWRkIG1p
c3NpbmcgZnVuY3Rpb25zIHRvIHN1cHBvcnQgSlNWQUxVRTMyXzY0IG9uIE1JUFMuCisgICAgICAg
IFJlbW92ZSBKU1ZBTFVFMzIgYXMgdGhlIGRlZmF1bHQgZm9yIE1JUFMuCisKKyAgICAgICAgKiBh
c3NlbWJsZXIvTUlQU0Fzc2VtYmxlci5oOgorICAgICAgICAoSlNDOjpNSVBTQXNzZW1ibGVyOjpk
aXZkKToKKyAgICAgICAgKEpTQzo6TUlQU0Fzc2VtYmxlcjo6bXRoYzEpOgorICAgICAgICAoSlND
OjpNSVBTQXNzZW1ibGVyOjpjdnR3ZCk6CisgICAgICAgICogYXNzZW1ibGVyL01hY3JvQXNzZW1i
bGVyTUlQUy5oOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlck1JUFM6Om5lZzMyKToKKyAg
ICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJNSVBTOjpicmFuY2hPcjMyKToKKyAgICAgICAgKEpT
Qzo6TWFjcm9Bc3NlbWJsZXJNSVBTOjpzZXQ4KToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJs
ZXJNSVBTOjpsb2FkRG91YmxlKToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJNSVBTOjpk
aXZEb3VibGUpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlck1JUFM6OmNvbnZlcnRJbnQz
MlRvRG91YmxlKToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJNSVBTOjpicmFuY2hEb3Vi
bGUpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlck1JUFM6OmJyYW5jaENvbnZlcnREb3Vi
bGVUb0ludDMyKToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJNSVBTOjp6ZXJvRG91Ymxl
KToKKyAgICAgICAgKiBqaXQvSklULmg6CisgICAgICAgICogaml0L0pJVE9wY29kZXMzMl82NC5j
cHA6CisgICAgICAgIChKU0M6OkpJVDo6cHJpdmF0ZUNvbXBpbGVDVElOYXRpdmVDYWxsKToKKyAg
ICAgICAgKiBqaXQvSklUUHJvcGVydHlBY2Nlc3MzMl82NC5jcHA6CisgICAgICAgIChKU0M6OkpJ
VDo6cHJpdmF0ZUNvbXBpbGVQdXRCeUlkVHJhbnNpdGlvbik6CisgICAgICAgICogaml0L0pJVFN0
dWJzLmNwcDoKKyAgICAgICAgKEpTQzo6SklUVGh1bmtzOjpKSVRUaHVua3MpOgorICAgICAgICAq
IGppdC9KSVRTdHVicy5oOgorICAgICAgICAqIHd0Zi9QbGF0Zm9ybS5oOgorCiAyMDEwLTA4LTEz
ICBHYWJvciBMb2tpICA8bG9raUB3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEdh
dmluIEJhcnJhY2xvdWdoLgpJbmRleDogSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01JUFNBc3Nl
bWJsZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTUlQU0Fzc2Vt
Ymxlci5oCShyZXZpc2lvbiA2NTMzNykKKysrIEphdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NSVBT
QXNzZW1ibGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTI4Nyw2ICsyODcsMTEgQEAgcHVibGljOgog
ICAgICAgICBlbWl0SW5zdCgweDAwMDAwMDE4IHwgKHJzIDw8IE9QX1NIX1JTKSB8IChydCA8PCBP
UF9TSF9SVCkpOwogICAgIH0KIAogICAgIHZvaWQgbWZoaShSZWdpc3RlcklEIHJkKQogICAgIHsK
ICAgICAgICAgZW1pdEluc3QoMHgwMDAwMDAxMCB8IChyZCA8PCBPUF9TSF9SRCkpOwpAQCAtNTI0
LDYgKzUyOSwxMiBAQCBwdWJsaWM6CiAgICAgICAgICAgICAgICAgIHwgKGZ0IDw8IE9QX1NIX0ZU
KSk7CiAgICAgfQogCisgICAgdm9pZCBkaXZkKEZQUmVnaXN0ZXJJRCBmZCwgRlBSZWdpc3RlcklE
IGZzLCBGUFJlZ2lzdGVySUQgZnQpCisgICAgeworICAgICAgICBlbWl0SW5zdCgweDQ2MjAwMDAz
IHwgKGZkIDw8IE9QX1NIX0ZEKSB8IChmcyA8PCBPUF9TSF9GUykKKyAgICAgICAgICAgICAgICAg
fCAoZnQgPDwgT1BfU0hfRlQpKTsKKyAgICB9CisKICAgICB2b2lkIGx3YzEoRlBSZWdpc3RlcklE
IGZ0LCBSZWdpc3RlcklEIHJzLCBpbnQgb2Zmc2V0KQogICAgIHsKICAgICAgICAgZW1pdEluc3Qo
MHhjNDAwMDAwMCB8IChmdCA8PCBPUF9TSF9GVCkgfCAocnMgPDwgT1BfU0hfUlMpCkBAIC01NTUs
NiArNTY2LDEyIEBAIHB1YmxpYzoKICAgICAgICAgY29wRGVsYXlOb3AoKTsKICAgICB9CiAKKyAg
ICB2b2lkIG10aGMxKFJlZ2lzdGVySUQgcnQsIEZQUmVnaXN0ZXJJRCBmcykKKyAgICB7CisgICAg
ICAgIGVtaXRJbnN0KDB4NDRlMDAwMDAgfCAoZnMgPDwgT1BfU0hfRlMpIHwgKHJ0IDw8IE9QX1NI
X1JUKSk7CisgICAgICAgIGNvcERlbGF5Tm9wKCk7CisgICAgfQorCiAgICAgdm9pZCBtZmMxKFJl
Z2lzdGVySUQgcnQsIEZQUmVnaXN0ZXJJRCBmcykKICAgICB7CiAgICAgICAgIGVtaXRJbnN0KDB4
NDQwMDAwMDAgfCAoZnMgPDwgT1BfU0hfRlMpIHwgKHJ0IDw8IE9QX1NIX1JUKSk7CkBAIC01NzYs
NiArNTkzLDExIEBAIHB1YmxpYzoKICAgICAgICAgZW1pdEluc3QoMHg0NjgwMDAyMSB8IChmZCA8
PCBPUF9TSF9GRCkgfCAoZnMgPDwgT1BfU0hfRlMpKTsKICAgICB9CiAKKyAgICB2b2lkIGN2dHdk
KEZQUmVnaXN0ZXJJRCBmZCwgRlBSZWdpc3RlcklEIGZzKQorICAgIHsKKyAgICAgICAgZW1pdElu
c3QoMHg0NjIwMDAyNCB8IChmZCA8PCBPUF9TSF9GRCkgfCAoZnMgPDwgT1BfU0hfRlMpKTsKKyAg
ICB9CisKICAgICB2b2lkIGNlcWQoRlBSZWdpc3RlcklEIGZzLCBGUFJlZ2lzdGVySUQgZnQpCiAg
ICAgewogICAgICAgICBlbWl0SW5zdCgweDQ2MjAwMDMyIHwgKGZzIDw8IE9QX1NIX0ZTKSB8IChm
dCA8PCBPUF9TSF9GVCkpOwpJbmRleDogSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNz
ZW1ibGVyTUlQUy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEphdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNy
b0Fzc2VtYmxlck1JUFMuaAkocmV2aXNpb24gNjUzMzcpCisrKyBKYXZhU2NyaXB0Q29yZS9hc3Nl
bWJsZXIvTWFjcm9Bc3NlbWJsZXJNSVBTLmgJKHdvcmtpbmcgY29weSkKQEAgLTI4MSw2ICsyODEs
MTEgQEAgcHVibGljOgogICAgICAgICB9CiAgICAgfQogCisgICAgdm9pZCBuZWczMihSZWdpc3Rl
cklEIHNyY0Rlc3QpCisgICAgeworICAgICAgICBtX2Fzc2VtYmxlci5zdWJ1KHNyY0Rlc3QsIE1J
UFNSZWdpc3RlcnM6Onplcm8sIHNyY0Rlc3QpOworICAgIH0KKwogICAgIHZvaWQgbm90MzIoUmVn
aXN0ZXJJRCBzcmNEZXN0KQogICAgIHsKICAgICAgICAgbV9hc3NlbWJsZXIubm9yKHNyY0Rlc3Qs
IHNyY0Rlc3QsIE1JUFNSZWdpc3RlcnM6Onplcm8pOwpAQCAtNjIwLDExICs2MjUsNiBAQCBwdWJs
aWM6CiAgICAgICAgIHJldHVybiBsYWJlbDsKICAgICB9CiAKLSAgICBMYWJlbCBsb2FkUHRyV2l0
aEFkZHJlc3NPZmZzZXRQYXRjaChBZGRyZXNzIGFkZHJlc3MsIFJlZ2lzdGVySUQgZGVzdCkKLSAg
ICB7Ci0gICAgICAgIHJldHVybiBsb2FkUHRyV2l0aFBhdGNoVG9MRUEoYWRkcmVzcywgZGVzdCk7
Ci0gICAgfQotCiAgICAgLyogTmVlZCB0byB1c2UgemVyby1leHRlbmVkIGxvYWQgaGFsZi13b3Jk
IGZvciBsb2FkMTYuICAqLwogICAgIHZvaWQgbG9hZDE2KEltcGxpY2l0QWRkcmVzcyBhZGRyZXNz
LCBSZWdpc3RlcklEIGRlc3QpCiAgICAgewpAQCAtMTMwMiw2ICsxMzAyLDI3IEBAIHB1YmxpYzoK
ICAgICAgICAgcmV0dXJuIGJyYW5jaFN1YjMyKGNvbmQsIGltbVRlbXBSZWdpc3RlciwgZGVzdCk7
CiAgICAgfQogCisgICAgSnVtcCBicmFuY2hPcjMyKENvbmRpdGlvbiBjb25kLCBSZWdpc3RlcklE
IHNyYywgUmVnaXN0ZXJJRCBkZXN0KQorICAgIHsKKyAgICAgICAgQVNTRVJUKChjb25kID09IFNp
Z25lZCkgfHwgKGNvbmQgPT0gWmVybykgfHwgKGNvbmQgPT0gTm9uWmVybykpOworICAgICAgICBp
ZiAoY29uZCA9PSBTaWduZWQpIHsKKyAgICAgICAgICAgIG9yMzIoc3JjLCBkZXN0KTsKKyAgICAg
ICAgICAgIC8vIENoZWNrIGlmIGRlc3QgaXMgbmVnYXRpdmUuCisgICAgICAgICAgICBtX2Fzc2Vt
Ymxlci5zbHQoY21wVGVtcFJlZ2lzdGVyLCBkZXN0LCBNSVBTUmVnaXN0ZXJzOjp6ZXJvKTsKKyAg
ICAgICAgICAgIHJldHVybiBicmFuY2hOb3RFcXVhbChjbXBUZW1wUmVnaXN0ZXIsIE1JUFNSZWdp
c3RlcnM6Onplcm8pOworICAgICAgICB9CisgICAgICAgIGlmIChjb25kID09IFplcm8pIHsKKyAg
ICAgICAgICAgIG9yMzIoc3JjLCBkZXN0KTsKKyAgICAgICAgICAgIHJldHVybiBicmFuY2hFcXVh
bChkZXN0LCBNSVBTUmVnaXN0ZXJzOjp6ZXJvKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoY29u
ZCA9PSBOb25aZXJvKSB7CisgICAgICAgICAgICBvcjMyKHNyYywgZGVzdCk7CisgICAgICAgICAg
ICByZXR1cm4gYnJhbmNoTm90RXF1YWwoZGVzdCwgTUlQU1JlZ2lzdGVyczo6emVybyk7CisgICAg
ICAgIH0KKyAgICAgICAgQVNTRVJUKDApOworICAgICAgICByZXR1cm4gSnVtcCgpOworICAgIH0K
KwogICAgIC8vIE1pc2NlbGxhbmVvdXMgb3BlcmF0aW9uczoKIAogICAgIHZvaWQgYnJlYWtwb2lu
dCgpCkBAIC0xMzUxLDYgKzEzNzIsMTcgQEAgcHVibGljOgogICAgICAgICBtX2Fzc2VtYmxlci5u
b3AoKTsKICAgICB9CiAKKyAgICB2b2lkIHNldDgoQ29uZGl0aW9uIGNvbmQsIFJlZ2lzdGVySUQg
bGVmdCwgUmVnaXN0ZXJJRCByaWdodCwgUmVnaXN0ZXJJRCBkZXN0KQorICAgIHsKKyAgICAgICAg
c2V0MzIoY29uZCwgbGVmdCwgcmlnaHQsIGRlc3QpOworICAgIH0KKworICAgIHZvaWQgc2V0OChD
b25kaXRpb24gY29uZCwgUmVnaXN0ZXJJRCBsZWZ0LCBJbW0zMiByaWdodCwgUmVnaXN0ZXJJRCBk
ZXN0KQorICAgIHsKKyAgICAgICAgbW92ZShyaWdodCwgaW1tVGVtcFJlZ2lzdGVyKTsKKyAgICAg
ICAgc2V0MzIoY29uZCwgbGVmdCwgaW1tVGVtcFJlZ2lzdGVyLCBkZXN0KTsKKyAgICB9CisKICAg
ICB2b2lkIHNldDMyKENvbmRpdGlvbiBjb25kLCBSZWdpc3RlcklEIGxlZnQsIFJlZ2lzdGVySUQg
cmlnaHQsIFJlZ2lzdGVySUQgZGVzdCkKICAgICB7CiAgICAgICAgIGlmIChjb25kID09IEVxdWFs
IHx8IGNvbmQgPT0gWmVybykgewpAQCAtMTU0Niw2ICsxNTc4LDI4IEBAIHB1YmxpYzoKICNlbmRp
ZgogICAgIH0KIAorICAgIHZvaWQgbG9hZERvdWJsZShjb25zdCB2b2lkKiBhZGRyZXNzLCBGUFJl
Z2lzdGVySUQgZGVzdCkKKyAgICB7CisjaWYgV1RGX01JUFNfSVNBKDEpCisgICAgICAgIC8qCisg
ICAgICAgICAgICBsaSAgICAgICAgICBhZGRyVGVtcCwgYWRkcmVzcworICAgICAgICAgICAgbHdj
MSAgICAgICAgZGVzdCwgMChhZGRyVGVtcCkKKyAgICAgICAgICAgIGx3YzEgICAgICAgIGRlc3Qr
MSwgNChhZGRyVGVtcCkKKyAgICAgICAgICovCisgICAgICAgIG1vdmUoSW1tUHRyKGFkZHJlc3Mp
LCBhZGRyVGVtcFJlZ2lzdGVyKTsKKyAgICAgICAgbV9hc3NlbWJsZXIubHdjMShkZXN0LCBhZGRy
VGVtcFJlZ2lzdGVyLCAwKTsKKyAgICAgICAgbV9hc3NlbWJsZXIubHdjMShGUFJlZ2lzdGVySUQo
ZGVzdCArIDEpLCBhZGRyVGVtcFJlZ2lzdGVyLCA0KTsKKyNlbHNlCisgICAgICAgIC8qCisgICAg
ICAgICAgICBsaSAgICAgICAgICBhZGRyVGVtcCwgYWRkcmVzcworICAgICAgICAgICAgbGRjMSAg
ICAgICAgZGVzdCwgMChhZGRyVGVtcCkKKyAgICAgICAgKi8KKyAgICAgICAgbW92ZShJbW1QdHIo
YWRkcmVzcyksIGFkZHJUZW1wUmVnaXN0ZXIpOworICAgICAgICBtX2Fzc2VtYmxlci5sZGMxKGRl
c3QsIGFkZHJUZW1wUmVnaXN0ZXIsIDApOworI2VuZGlmCisgICAgfQorCisKICAgICB2b2lkIHN0
b3JlRG91YmxlKEZQUmVnaXN0ZXJJRCBzcmMsIEltcGxpY2l0QWRkcmVzcyBhZGRyZXNzKQogICAg
IHsKICNpZiBXVEZfTUlQU19JU0EoMSkKQEAgLTE2MDksMTIgKzE2NjMsMzEgQEAgcHVibGljOgog
ICAgICAgICBtX2Fzc2VtYmxlci5tdWxkKGRlc3QsIGRlc3QsIGZwVGVtcFJlZ2lzdGVyKTsKICAg
ICB9CiAKKyAgICB2b2lkIGRpdkRvdWJsZShGUFJlZ2lzdGVySUQgc3JjLCBGUFJlZ2lzdGVySUQg
ZGVzdCkKKyAgICB7CisgICAgICAgIG1fYXNzZW1ibGVyLmRpdmQoZGVzdCwgZGVzdCwgc3JjKTsK
KyAgICB9CisKICAgICB2b2lkIGNvbnZlcnRJbnQzMlRvRG91YmxlKFJlZ2lzdGVySUQgc3JjLCBG
UFJlZ2lzdGVySUQgZGVzdCkKICAgICB7CiAgICAgICAgIG1fYXNzZW1ibGVyLm10YzEoc3JjLCBm
cFRlbXBSZWdpc3Rlcik7CiAgICAgICAgIG1fYXNzZW1ibGVyLmN2dGR3KGRlc3QsIGZwVGVtcFJl
Z2lzdGVyKTsKICAgICB9CiAKKyAgICB2b2lkIGNvbnZlcnRJbnQzMlRvRG91YmxlKEFkZHJlc3Mg
c3JjLCBGUFJlZ2lzdGVySUQgZGVzdCkKKyAgICB7CisgICAgICAgIGxvYWQzMihzcmMsIGRhdGFU
ZW1wUmVnaXN0ZXIpOworICAgICAgICBtX2Fzc2VtYmxlci5tdGMxKGRhdGFUZW1wUmVnaXN0ZXIs
IGZwVGVtcFJlZ2lzdGVyKTsKKyAgICAgICAgbV9hc3NlbWJsZXIuY3Z0ZHcoZGVzdCwgZnBUZW1w
UmVnaXN0ZXIpOworICAgIH0KKworICAgIHZvaWQgY29udmVydEludDMyVG9Eb3VibGUoQWJzb2x1
dGVBZGRyZXNzIHNyYywgRlBSZWdpc3RlcklEIGRlc3QpCisgICAgeworICAgICAgICBsb2FkMzIo
c3JjLm1fcHRyLCBkYXRhVGVtcFJlZ2lzdGVyKTsKKyAgICAgICAgbV9hc3NlbWJsZXIubXRjMShk
YXRhVGVtcFJlZ2lzdGVyLCBmcFRlbXBSZWdpc3Rlcik7CisgICAgICAgIG1fYXNzZW1ibGVyLmN2
dGR3KGRlc3QsIGZwVGVtcFJlZ2lzdGVyKTsKKyAgICB9CisKICAgICB2b2lkIGluc2VydFJlbGF4
YXRpb25Xb3JkcygpCiAgICAgewogICAgICAgICAvKiBXZSBuZWVkIGZvdXIgd29yZHMgZm9yIHJl
bGF4YXRpb24uICovCkBAIC0xNjY3LDcgKzE3NDAsNyBAQCBwdWJsaWM6CiAgICAgICAgICAgICBy
ZXR1cm4gYnJhbmNoVHJ1ZSgpOwogICAgICAgICB9CiAgICAgICAgIGlmIChjb25kID09IERvdWJs
ZU5vdEVxdWFsKSB7Ci0gICAgICAgICAgICBtX2Fzc2VtYmxlci5jZXFkKGxlZnQsIHJpZ2h0KTsK
KyAgICAgICAgICAgIG1fYXNzZW1ibGVyLmN1ZXFkKGxlZnQsIHJpZ2h0KTsKICAgICAgICAgICAg
IHJldHVybiBicmFuY2hGYWxzZSgpOyAvLyBmYWxzZQogICAgICAgICB9CiAgICAgICAgIGlmIChj
b25kID09IERvdWJsZUdyZWF0ZXJUaGFuKSB7CkBAIC0xNjkwLDYgKzE3NjMsMTAgQEAgcHVibGlj
OgogICAgICAgICAgICAgbV9hc3NlbWJsZXIuY3VlcWQobGVmdCwgcmlnaHQpOwogICAgICAgICAg
ICAgcmV0dXJuIGJyYW5jaFRydWUoKTsKICAgICAgICAgfQorICAgICAgICBpZiAoY29uZCA9PSBE
b3VibGVOb3RFcXVhbE9yVW5vcmRlcmVkKSB7CisgICAgICAgICAgICBtX2Fzc2VtYmxlci5jZXFk
KGxlZnQsIHJpZ2h0KTsKKyAgICAgICAgICAgIHJldHVybiBicmFuY2hGYWxzZSgpOyAvLyBmYWxz
ZQorICAgICAgICB9CiAgICAgICAgIGlmIChjb25kID09IERvdWJsZUdyZWF0ZXJUaGFuT3JVbm9y
ZGVyZWQpIHsKICAgICAgICAgICAgIG1fYXNzZW1ibGVyLmNvbGVkKGxlZnQsIHJpZ2h0KTsKICAg
ICAgICAgICAgIHJldHVybiBicmFuY2hGYWxzZSgpOyAvLyBmYWxzZQpAQCAtMTcyMiw2ICsxNzk5
LDM0IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGJyYW5jaDMyKEVxdWFsLCBkZXN0LCBJbW0z
MigweDdmZmZmZmZmKSk7CiAgICAgfQogCisgICAgLy8gQ29udmVydCAnc3JjJyB0byBhbiBpbnRl
Z2VyLCBhbmQgcGxhY2VzIHRoZSByZXN1bHRpbmcgJ2Rlc3QnLgorICAgIC8vIElmIHRoZSByZXN1
bHQgaXMgbm90IHJlcHJlc2VudGFibGUgYXMgYSAzMiBiaXQgdmFsdWUsIGJyYW5jaC4KKyAgICAv
LyBNYXkgYWxzbyBicmFuY2ggZm9yIHNvbWUgdmFsdWVzIHRoYXQgYXJlIHJlcHJlc2VudGFibGUg
aW4gMzIgYml0cworICAgIC8vIChzcGVjaWZpY2FsbHksIGluIHRoaXMgY2FzZSwgMCkuCisgICAg
dm9pZCBicmFuY2hDb252ZXJ0RG91YmxlVG9JbnQzMihGUFJlZ2lzdGVySUQgc3JjLCBSZWdpc3Rl
cklEIGRlc3QsIEp1bXBMaXN0JiBmYWlsdXJlQ2FzZXMsIEZQUmVnaXN0ZXJJRCBmcFRlbXApCisg
ICAgeworICAgICAgICBtX2Fzc2VtYmxlci5jdnR3ZChmcFRlbXBSZWdpc3Rlciwgc3JjKTsKKyAg
ICAgICAgbV9hc3NlbWJsZXIubWZjMShkZXN0LCBmcFRlbXBSZWdpc3Rlcik7CisKKyAgICAgICAg
Ly8gSWYgdGhlIHJlc3VsdCBpcyB6ZXJvLCBpdCBtaWdodCBoYXZlIGJlZW4gLTAuMCwgYW5kIHRo
ZSBkb3VibGUgY29tcGFyaXNvbiB3b24ndCBjYXRjaCB0aGlzIQorICAgICAgICBmYWlsdXJlQ2Fz
ZXMuYXBwZW5kKGJyYW5jaDMyKEVxdWFsLCBkZXN0LCBNSVBTUmVnaXN0ZXJzOjp6ZXJvKSk7CisK
KyAgICAgICAgLy8gQ29udmVydCB0aGUgaW50ZWdlciByZXN1bHQgYmFjayB0byBmbG9hdCAmIGNv
bXBhcmUgdG8gdGhlIG9yaWdpbmFsIHZhbHVlIC0gaWYgbm90IGVxdWFsIG9yIHVub3JkZXJlZCAo
TmFOKSB0aGVuIGp1bXAuCisgICAgICAgIGNvbnZlcnRJbnQzMlRvRG91YmxlKGRlc3QsIGZwVGVt
cCk7CisgICAgICAgIGZhaWx1cmVDYXNlcy5hcHBlbmQoYnJhbmNoRG91YmxlKERvdWJsZU5vdEVx
dWFsT3JVbm9yZGVyZWQsIGZwVGVtcCwgc3JjKSk7CisgICAgfQorCisgICAgdm9pZCB6ZXJvRG91
YmxlKEZQUmVnaXN0ZXJJRCBkZXN0KQorICAgIHsKKyNpZiBXVEZfTUlQU19JU0FfUkVWKDIpICYm
IFdURl9NSVBTX0ZQNjQKKyAgICAgICAgbV9hc3NlbWJsZXIubXRjMShNSVBTUmVnaXN0ZXJzOjp6
ZXJvLCBkZXN0KTsKKyAgICAgICAgbV9hc3NlbWJsZXIubXRoYzEoTUlQU1JlZ2lzdGVyczo6emVy
bywgZGVzdCk7CisjZWxzZQorICAgICAgICBtX2Fzc2VtYmxlci5tdGMxKE1JUFNSZWdpc3RlcnM6
Onplcm8sIGRlc3QpOworICAgICAgICBtX2Fzc2VtYmxlci5tdGMxKE1JUFNSZWdpc3RlcnM6Onpl
cm8sIEZQUmVnaXN0ZXJJRChkZXN0ICsgMSkpOworI2VuZGlmCisgICAgfQorCiBwcml2YXRlOgog
ICAgIC8vIElmIG1fZml4ZWRXaWR0aCBpcyB0cnVlLCB3ZSB3aWxsIGdlbmVyYXRlIGEgZml4ZWQg
bnVtYmVyIG9mIGluc3RydWN0aW9ucy4KICAgICAvLyBPdGhlcndpc2UsIHdlIGNhbiBlbWl0IGFu
eSBudW1iZXIgb2YgaW5zdHJ1Y3Rpb25zLgpJbmRleDogSmF2YVNjcmlwdENvcmUvaml0L0pJVC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIEphdmFTY3JpcHRDb3JlL2ppdC9KSVQuaAkocmV2aXNpb24gNjUzMzcp
CisrKyBKYXZhU2NyaXB0Q29yZS9qaXQvSklULmgJKHdvcmtpbmcgY29weSkKQEAgLTQ0OCw2ICs0
NDgsNTIgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIC8vIHNlcXVlbmNlUHV0QnlJZAogICAg
ICAgICBzdGF0aWMgY29uc3QgaW50IHNlcXVlbmNlUHV0QnlJZEluc3RydWN0aW9uU3BhY2UgPSAz
NjsKICAgICAgICAgc3RhdGljIGNvbnN0IGludCBzZXF1ZW5jZVB1dEJ5SWRDb25zdGFudFNwYWNl
ID0gNDsKKyNlbGlmIENQVShNSVBTKQorI2lmIFdURl9NSVBTX0lTQSgxKQorICAgICAgICBzdGF0
aWMgY29uc3QgaW50IHBhdGNoT2Zmc2V0UHV0QnlJZFN0cnVjdHVyZSA9IDE2OworICAgICAgICBz
dGF0aWMgY29uc3QgaW50IHBhdGNoT2Zmc2V0UHV0QnlJZEV4dGVybmFsTG9hZCA9IDQ4OworICAg
ICAgICBzdGF0aWMgY29uc3QgaW50IHBhdGNoTGVuZ3RoUHV0QnlJZEV4dGVybmFsTG9hZCA9IDIw
OworICAgICAgICBzdGF0aWMgY29uc3QgaW50IHBhdGNoT2Zmc2V0UHV0QnlJZFByb3BlcnR5TWFw
T2Zmc2V0MSA9IDY4OworICAgICAgICBzdGF0aWMgY29uc3QgaW50IHBhdGNoT2Zmc2V0UHV0QnlJ
ZFByb3BlcnR5TWFwT2Zmc2V0MiA9IDg0OworICAgICAgICBzdGF0aWMgY29uc3QgaW50IHBhdGNo
T2Zmc2V0R2V0QnlJZFN0cnVjdHVyZSA9IDE2OworICAgICAgICBzdGF0aWMgY29uc3QgaW50IHBh
dGNoT2Zmc2V0R2V0QnlJZEJyYW5jaFRvU2xvd0Nhc2UgPSA0ODsKKyAgICAgICAgc3RhdGljIGNv
bnN0IGludCBwYXRjaE9mZnNldEdldEJ5SWRFeHRlcm5hbExvYWQgPSA0ODsKKyAgICAgICAgc3Rh
dGljIGNvbnN0IGludCBwYXRjaExlbmd0aEdldEJ5SWRFeHRlcm5hbExvYWQgPSAyMDsKKyAgICAg
ICAgc3RhdGljIGNvbnN0IGludCBwYXRjaE9mZnNldEdldEJ5SWRQcm9wZXJ0eU1hcE9mZnNldDEg
PSA2ODsKKyAgICAgICAgc3RhdGljIGNvbnN0IGludCBwYXRjaE9mZnNldEdldEJ5SWRQcm9wZXJ0
eU1hcE9mZnNldDIgPSA4ODsKKyAgICAgICAgc3RhdGljIGNvbnN0IGludCBwYXRjaE9mZnNldEdl
dEJ5SWRQdXRSZXN1bHQgPSAxMDg7CisjaWYgRU5BQkxFKE9QQ09ERV9TQU1QTElORykKKyAgICAg
ICAgI2Vycm9yICJPUENPREVfU0FNUExJTkcgaXMgbm90IHlldCBzdXBwb3J0ZWQiCisjZWxzZQor
ICAgICAgICBzdGF0aWMgY29uc3QgaW50IHBhdGNoT2Zmc2V0R2V0QnlJZFNsb3dDYXNlQ2FsbCA9
IDQ0OworI2VuZGlmCisgICAgICAgIHN0YXRpYyBjb25zdCBpbnQgcGF0Y2hPZmZzZXRPcENhbGxD
b21wYXJlVG9KdW1wID0gMzI7CisgICAgICAgIHN0YXRpYyBjb25zdCBpbnQgcGF0Y2hPZmZzZXRN
ZXRob2RDaGVja1Byb3RvT2JqID0gMzI7CisgICAgICAgIHN0YXRpYyBjb25zdCBpbnQgcGF0Y2hP
ZmZzZXRNZXRob2RDaGVja1Byb3RvU3RydWN0ID0gNTY7CisgICAgICAgIHN0YXRpYyBjb25zdCBp
bnQgcGF0Y2hPZmZzZXRNZXRob2RDaGVja1B1dEZ1bmN0aW9uID0gODg7CisjZWxzZSAvLyBXVEZf
TUlQU19JU0EoMSkKKyAgICAgICAgc3RhdGljIGNvbnN0IGludCBwYXRjaE9mZnNldFB1dEJ5SWRT
dHJ1Y3R1cmUgPSAxMjsKKyAgICAgICAgc3RhdGljIGNvbnN0IGludCBwYXRjaE9mZnNldFB1dEJ5
SWRFeHRlcm5hbExvYWQgPSA0NDsKKyAgICAgICAgc3RhdGljIGNvbnN0IGludCBwYXRjaExlbmd0
aFB1dEJ5SWRFeHRlcm5hbExvYWQgPSAxNjsKKyAgICAgICAgc3RhdGljIGNvbnN0IGludCBwYXRj
aE9mZnNldFB1dEJ5SWRQcm9wZXJ0eU1hcE9mZnNldDEgPSA2MDsKKyAgICAgICAgc3RhdGljIGNv
bnN0IGludCBwYXRjaE9mZnNldFB1dEJ5SWRQcm9wZXJ0eU1hcE9mZnNldDIgPSA3NjsKKyAgICAg
ICAgc3RhdGljIGNvbnN0IGludCBwYXRjaE9mZnNldEdldEJ5SWRTdHJ1Y3R1cmUgPSAxMjsKKyAg
ICAgICAgc3RhdGljIGNvbnN0IGludCBwYXRjaE9mZnNldEdldEJ5SWRCcmFuY2hUb1Nsb3dDYXNl
ID0gNDQ7CisgICAgICAgIHN0YXRpYyBjb25zdCBpbnQgcGF0Y2hPZmZzZXRHZXRCeUlkRXh0ZXJu
YWxMb2FkID0gNDQ7CisgICAgICAgIHN0YXRpYyBjb25zdCBpbnQgcGF0Y2hMZW5ndGhHZXRCeUlk
RXh0ZXJuYWxMb2FkID0gMTY7CisgICAgICAgIHN0YXRpYyBjb25zdCBpbnQgcGF0Y2hPZmZzZXRH
ZXRCeUlkUHJvcGVydHlNYXBPZmZzZXQxID0gNjA7CisgICAgICAgIHN0YXRpYyBjb25zdCBpbnQg
cGF0Y2hPZmZzZXRHZXRCeUlkUHJvcGVydHlNYXBPZmZzZXQyID0gNzY7CisgICAgICAgIHN0YXRp
YyBjb25zdCBpbnQgcGF0Y2hPZmZzZXRHZXRCeUlkUHV0UmVzdWx0ID0gOTI7CisjaWYgRU5BQkxF
KE9QQ09ERV9TQU1QTElORykKKyAgICAgICAgI2Vycm9yICJPUENPREVfU0FNUExJTkcgaXMgbm90
IHlldCBzdXBwb3J0ZWQiCisjZWxzZQorICAgICAgICBzdGF0aWMgY29uc3QgaW50IHBhdGNoT2Zm
c2V0R2V0QnlJZFNsb3dDYXNlQ2FsbCA9IDQ0OworI2VuZGlmCisgICAgICAgIHN0YXRpYyBjb25z
dCBpbnQgcGF0Y2hPZmZzZXRPcENhbGxDb21wYXJlVG9KdW1wID0gMzI7CisgICAgICAgIHN0YXRp
YyBjb25zdCBpbnQgcGF0Y2hPZmZzZXRNZXRob2RDaGVja1Byb3RvT2JqID0gMzI7CisgICAgICAg
IHN0YXRpYyBjb25zdCBpbnQgcGF0Y2hPZmZzZXRNZXRob2RDaGVja1Byb3RvU3RydWN0ID0gNTI7
CisgICAgICAgIHN0YXRpYyBjb25zdCBpbnQgcGF0Y2hPZmZzZXRNZXRob2RDaGVja1B1dEZ1bmN0
aW9uID0gODQ7CisjZW5kaWYKICNlbHNlCiAjZXJyb3IgIkpTVkFMVUUzMl82NCBub3Qgc3VwcG9y
dGVkIG9uIHRoaXMgcGxhdGZvcm0uIgogI2VuZGlmCkluZGV4OiBKYXZhU2NyaXB0Q29yZS9qaXQv
SklUT3Bjb2RlczMyXzY0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0Q29yZS9qaXQvSklU
T3Bjb2RlczMyXzY0LmNwcAkocmV2aXNpb24gNjUzMzcpCisrKyBKYXZhU2NyaXB0Q29yZS9qaXQv
SklUT3Bjb2RlczMyXzY0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjUwLDYgKzI1MCwzNyBAQCBK
SVQ6OkxhYmVsIEpJVDo6cHJpdmF0ZUNvbXBpbGVDVElOYXRpdmVDCiAKICAgICByZXN0b3JlUmV0
dXJuQWRkcmVzc0JlZm9yZVJldHVybihyZWdUMyk7CiAKKyNlbGlmIENQVShNSVBTKQorICAgIC8v
IExvYWQgY2FsbGVyIGZyYW1lJ3Mgc2NvcGUgY2hhaW4gaW50byB0aGlzIGNhbGxmcmFtZSBzbyB0
aGF0IHdoYXRldmVyIHdlIGNhbGwgY2FuCisgICAgLy8gZ2V0IHRvIGl0cyBnbG9iYWwgZGF0YS4K
KyAgICBlbWl0R2V0RnJvbUNhbGxGcmFtZUhlYWRlclB0cihSZWdpc3RlckZpbGU6OkNhbGxlckZy
YW1lLCByZWdUMCk7CisgICAgZW1pdEdldEZyb21DYWxsRnJhbWVIZWFkZXJQdHIoUmVnaXN0ZXJG
aWxlOjpTY29wZUNoYWluLCByZWdUMSwgcmVnVDApOworICAgIGVtaXRQdXRUb0NhbGxGcmFtZUhl
YWRlcihyZWdUMSwgUmVnaXN0ZXJGaWxlOjpTY29wZUNoYWluKTsKKworICAgIHByZXNlcnZlUmV0
dXJuQWRkcmVzc0FmdGVyQ2FsbChyZWdUMyk7IC8vIENhbGxlZSBwcmVzZXJ2ZWQKKyAgICBlbWl0
UHV0VG9DYWxsRnJhbWVIZWFkZXIocmVnVDMsIFJlZ2lzdGVyRmlsZTo6UmV0dXJuUEMpOworCisg
ICAgLy8gQ2FsbGluZyBjb252ZW50aW9uOiAgICAgIGYoYTAsIGExLCBhMiwgYTMpOworICAgIC8v
IEhvc3QgZnVuY3Rpb24gc2lnbmF0dXJlOiBmKEV4ZWNTdGF0ZSopOworCisgICAgLy8gQWxsb2Nh
dGUgc3RhY2sgc3BhY2UgZm9yIDE2IGJ5dGVzICg4LWJ5dGUgYWxpZ25lZCkKKyAgICAvLyAxNiBi
eXRlcyAodW51c2VkKSBmb3IgNCBhcmd1bWVudHMKKyAgICBzdWJQdHIoSW1tMzIoMTYpLCBzdGFj
a1BvaW50ZXJSZWdpc3Rlcik7CisKKyAgICAvLyBTZXR1cCBhcmcwCisgICAgbW92ZShjYWxsRnJh
bWVSZWdpc3RlciwgTUlQU1JlZ2lzdGVyczo6YTApOworCisgICAgLy8gQ2FsbAorICAgIGVtaXRH
ZXRGcm9tQ2FsbEZyYW1lSGVhZGVyUHRyKFJlZ2lzdGVyRmlsZTo6Q2FsbGVlLCBNSVBTUmVnaXN0
ZXJzOjphMik7CisgICAgbG9hZFB0cihBZGRyZXNzKE1JUFNSZWdpc3RlcnM6OmEyLCBPQkpFQ1Rf
T0ZGU0VUT0YoSlNGdW5jdGlvbiwgbV9leGVjdXRhYmxlKSksIHJlZ1QyKTsKKyAgICBtb3ZlKHJl
Z1QwLCBjYWxsRnJhbWVSZWdpc3Rlcik7IC8vIEVhZ2VybHkgcmVzdG9yZSBjYWxsZXIgZnJhbWUg
cmVnaXN0ZXIgdG8gYXZvaWQgbG9hZGluZyBmcm9tIHN0YWNrLgorICAgIGNhbGwoQWRkcmVzcyhy
ZWdUMiwgZXhlY3V0YWJsZU9mZnNldFRvRnVuY3Rpb24pKTsKKworICAgIC8vIFJlc3RvcmUgc3Rh
Y2sgc3BhY2UKKyAgICBhZGRQdHIoSW1tMzIoMTYpLCBzdGFja1BvaW50ZXJSZWdpc3Rlcik7CisK
KyAgICByZXN0b3JlUmV0dXJuQWRkcmVzc0JlZm9yZVJldHVybihyZWdUMyk7CisKICNlbGlmIEVO
QUJMRShKSVRfT1BUSU1JWkVfTkFUSVZFX0NBTEwpCiAjZXJyb3IgIkpJVF9PUFRJTUlaRV9OQVRJ
VkVfQ0FMTCBub3QgeWV0IHN1cHBvcnRlZCBvbiB0aGlzIHBsYXRmb3JtLiIKICNlbHNlCkBAIC0z
MzMsNiArMzY0LDM5IEBAIEpJVDo6Q29kZVB0ciBKSVQ6OnByaXZhdGVDb21waWxlQ1RJTmF0aXYK
IAogICAgIHJlc3RvcmVSZXR1cm5BZGRyZXNzQmVmb3JlUmV0dXJuKHJlZ1QzKTsKIAorI2VsaWYg
Q1BVKE1JUFMpCisgICAgLy8gTG9hZCBjYWxsZXIgZnJhbWUncyBzY29wZSBjaGFpbiBpbnRvIHRo
aXMgY2FsbGZyYW1lIHNvIHRoYXQgd2hhdGV2ZXIgd2UgY2FsbCBjYW4KKyAgICAvLyBnZXQgdG8g
aXRzIGdsb2JhbCBkYXRhLgorICAgIGVtaXRHZXRGcm9tQ2FsbEZyYW1lSGVhZGVyUHRyKFJlZ2lz
dGVyRmlsZTo6Q2FsbGVyRnJhbWUsIHJlZ1QwKTsKKyAgICBlbWl0R2V0RnJvbUNhbGxGcmFtZUhl
YWRlclB0cihSZWdpc3RlckZpbGU6OlNjb3BlQ2hhaW4sIHJlZ1QxLCByZWdUMCk7CisgICAgZW1p
dFB1dFRvQ2FsbEZyYW1lSGVhZGVyKHJlZ1QxLCBSZWdpc3RlckZpbGU6OlNjb3BlQ2hhaW4pOwor
CisgICAgcHJlc2VydmVSZXR1cm5BZGRyZXNzQWZ0ZXJDYWxsKHJlZ1QzKTsgLy8gQ2FsbGVlIHBy
ZXNlcnZlZAorICAgIGVtaXRQdXRUb0NhbGxGcmFtZUhlYWRlcihyZWdUMywgUmVnaXN0ZXJGaWxl
OjpSZXR1cm5QQyk7CisKKyAgICAvLyBDYWxsaW5nIGNvbnZlbnRpb246ICAgICAgZihhMCwgYTEs
IGEyLCBhMyk7CisgICAgLy8gSG9zdCBmdW5jdGlvbiBzaWduYXR1cmU6IGYoRXhlY1N0YXRlKik7
CisKKyAgICAvLyBBbGxvY2F0ZSBzdGFjayBzcGFjZSBmb3IgMTYgYnl0ZXMgKDgtYnl0ZSBhbGln
bmVkKQorICAgIC8vIDE2IGJ5dGVzICh1bnVzZWQpIGZvciA0IGFyZ3VtZW50cworICAgIHN1YlB0
cihJbW0zMigxNiksIHN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKKworICAgIC8vIFNldHVwIGFyZzAK
KyAgICBtb3ZlKGNhbGxGcmFtZVJlZ2lzdGVyLCBNSVBTUmVnaXN0ZXJzOjphMCk7CisKKyAgICAv
LyBDYWxsCisgICAgZW1pdEdldEZyb21DYWxsRnJhbWVIZWFkZXJQdHIoUmVnaXN0ZXJGaWxlOjpD
YWxsZWUsIE1JUFNSZWdpc3RlcnM6OmEyKTsKKyAgICBsb2FkUHRyKEFkZHJlc3MoTUlQU1JlZ2lz
dGVyczo6YTIsIE9CSkVDVF9PRkZTRVRPRihKU0Z1bmN0aW9uLCBtX2V4ZWN1dGFibGUpKSwgcmVn
VDIpOworICAgIG1vdmUocmVnVDAsIGNhbGxGcmFtZVJlZ2lzdGVyKTsgLy8gRWFnZXJseSByZXN0
b3JlIGNhbGxlciBmcmFtZSByZWdpc3RlciB0byBhdm9pZCBsb2FkaW5nIGZyb20gc3RhY2suCisg
ICAgCisgICAgLy8gY2FsbCB0aGUgZnVuY3Rpb24KKyAgICBuYXRpdmVDYWxsID0gY2FsbCgpOwor
CisgICAgLy8gUmVzdG9yZSBzdGFjayBzcGFjZQorICAgIGFkZFB0cihJbW0zMigxNiksIHN0YWNr
UG9pbnRlclJlZ2lzdGVyKTsKKworICAgIHJlc3RvcmVSZXR1cm5BZGRyZXNzQmVmb3JlUmV0dXJu
KHJlZ1QzKTsKKwogI2VsaWYgRU5BQkxFKEpJVF9PUFRJTUlaRV9OQVRJVkVfQ0FMTCkKICNlcnJv
ciAiSklUX09QVElNSVpFX05BVElWRV9DQUxMIG5vdCB5ZXQgc3VwcG9ydGVkIG9uIHRoaXMgcGxh
dGZvcm0uIgogI2Vsc2UKSW5kZXg6IEphdmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2Vz
czMyXzY0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlB
Y2Nlc3MzMl82NC5jcHAJKHJldmlzaW9uIDY1MzM4KQorKysgSmF2YVNjcmlwdENvcmUvaml0L0pJ
VFByb3BlcnR5QWNjZXNzMzJfNjQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02NDMsOCArNjQzLDE0
IEBAIGJvb2wgSklUOjpwcml2YXRlQ29tcGlsZVB1dEJ5SWRUcmFuc2l0aW8KICAgICBhZGQzMihJ
bW0zMigxKSwgQWJzb2x1dGVBZGRyZXNzKG5ld1N0cnVjdHVyZS0+YWRkcmVzc09mQ291bnQoKSkp
OwogICAgIHN0b3JlUHRyKEltbVB0cihuZXdTdHJ1Y3R1cmUpLCBBZGRyZXNzKHJlZ1QwLCBPQkpF
Q1RfT0ZGU0VUT0YoSlNDZWxsLCBtX3N0cnVjdHVyZSkpKTsKICAgICAKKyNpZiBDUFUoTUlQUykK
KyAgICAvLyBGb3IgTUlQUywgd2UgZG9uJ3QgYWRkIHNpemVvZih2b2lkKikgdG8gdGhlIHN0YWNr
IG9mZnNldC4KKyAgICBsb2FkMzIoQWRkcmVzcyhzdGFja1BvaW50ZXJSZWdpc3RlciwgT0JKRUNU
X09GRlNFVE9GKEpJVFN0YWNrRnJhbWUsIGFyZ3NbMl0pICsgT0JKRUNUX09GRlNFVE9GKEpTVmFs
dWUsIHUuYXNCaXRzLnBheWxvYWQpKSwgcmVnVDMpOworICAgIGxvYWQzMihBZGRyZXNzKHN0YWNr
UG9pbnRlclJlZ2lzdGVyLCBPQkpFQ1RfT0ZGU0VUT0YoSklUU3RhY2tGcmFtZSwgYXJnc1syXSkg
KyBPQkpFQ1RfT0ZGU0VUT0YoSlNWYWx1ZSwgdS5hc0JpdHMudGFnKSksIHJlZ1QyKTsKKyNlbHNl
CiAgICAgbG9hZDMyKEFkZHJlc3Moc3RhY2tQb2ludGVyUmVnaXN0ZXIsIE9CSkVDVF9PRkZTRVRP
RihKSVRTdGFja0ZyYW1lLCBhcmdzWzJdKSArIHNpemVvZih2b2lkKikgKyBPQkpFQ1RfT0ZGU0VU
T0YoSlNWYWx1ZSwgdS5hc0JpdHMucGF5bG9hZCkpLCByZWdUMyk7CiAgICAgbG9hZDMyKEFkZHJl
c3Moc3RhY2tQb2ludGVyUmVnaXN0ZXIsIE9CSkVDVF9PRkZTRVRPRihKSVRTdGFja0ZyYW1lLCBh
cmdzWzJdKSArIHNpemVvZih2b2lkKikgKyBPQkpFQ1RfT0ZGU0VUT0YoSlNWYWx1ZSwgdS5hc0Jp
dHMudGFnKSksIHJlZ1QyKTsKKyNlbmRpZgogICAgIAogICAgIC8vIFdyaXRlIHRoZSB2YWx1ZQog
ICAgIGNvbXBpbGVQdXREaXJlY3RPZmZzZXQocmVnVDAsIHJlZ1QyLCByZWdUMywgbmV3U3RydWN0
dXJlLCBjYWNoZWRPZmZzZXQpOwpJbmRleDogSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnMuY3BwCShyZXZpc2lv
biA2NTMzNykKKysrIEphdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVicy5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTMxMCw2ICszMTAsMjEgQEAgZXh0ZXJuICJDIiB7CiAjZGVmaW5lIFBSRVNFUlZFRFI0
X09GRlNFVCAgICAgICAgICA2OAogLy8gU2VlIERFRklORV9TVFVCX0ZVTkNUSU9OIGZvciBtb3Jl
IGluZm9ybWF0aW9uLgogCisjZWxpZiBDUFUoTUlQUykKKworI2RlZmluZSBQUkVTRVJWRURfR1Bf
T0ZGU0VUICAgICAgICAgNjAKKyNkZWZpbmUgUFJFU0VSVkVEX1MwX09GRlNFVCAgICAgICAgIDY0
CisjZGVmaW5lIFBSRVNFUlZFRF9TMV9PRkZTRVQgICAgICAgICA2OAorI2RlZmluZSBQUkVTRVJW
RURfUzJfT0ZGU0VUICAgICAgICAgNzIKKyNkZWZpbmUgUFJFU0VSVkVEX1JFVFVSTl9BRERSRVNT
X09GRlNFVCA3NgorI2RlZmluZSBUSFVOS19SRVRVUk5fQUREUkVTU19PRkZTRVQgODAKKyNkZWZp
bmUgUkVHSVNURVJfRklMRV9PRkZTRVQgICAgICAgIDg0CisjZGVmaW5lIENBTExGUkFNRV9PRkZT
RVQgICAgICAgICAgICA4OAorI2RlZmluZSBFWENFUFRJT05fT0ZGU0VUICAgICAgICAgICAgOTIK
KyNkZWZpbmUgRU5BQkxFX1BST0ZJTEVSX1JFRkVSRU5DRV9PRkZTRVQgOTYKKyNkZWZpbmUgR0xP
QkFMX0RBVEFfT0ZGU0VUICAgICAgICAgMTAwCisjZGVmaW5lIFNUQUNLX0xFTkdUSCAgICAgICAg
ICAgICAgIDEwNAorCiAjZWxzZQogICAgICNlcnJvciAiSklUIG5vdCBzdXBwb3J0ZWQgb24gdGhp
cyBwbGF0Zm9ybS4iCiAjZW5kaWYKQEAgLTQ2NCw5NSArNDc5LDE4IEBAIFNZTUJPTF9TVFJJTkco
Y3RpT3BUaHJvd05vdENhdWdodCkgIjoiICIKIAogI2VsaWYgQ1BVKE1JUFMpCiAKLWFzbSB2b2xh
dGlsZSgKLSIudGV4dCIgIlxuIgotIi5hbGlnbiAyIiAiXG4iCi0iLnNldCBub3Jlb3JkZXIiICJc
biIKLSIuc2V0IG5vbWFjcm8iICJcbiIKLSIuc2V0IG5vbWlwczE2IiAiXG4iCi0iLmdsb2JsICIg
U1lNQk9MX1NUUklORyhjdGlUcmFtcG9saW5lKSAiXG4iCi0iLmVudCAiIFNZTUJPTF9TVFJJTkco
Y3RpVHJhbXBvbGluZSkgIlxuIgotU1lNQk9MX1NUUklORyhjdGlUcmFtcG9saW5lKSAiOiIgIlxu
IgotICAgICJhZGRpdSAkMjksJDI5LC03MiIgIlxuIgotICAgICJzdyAgICAkMzEsNDQoJDI5KSIg
IlxuIgotICAgICJzdyAgICAkMTgsNDAoJDI5KSIgIlxuIgotICAgICJzdyAgICAkMTcsMzYoJDI5
KSIgIlxuIgotICAgICJzdyAgICAkMTYsMzIoJDI5KSIgIlxuIgotI2lmIFdURl9NSVBTX1BJQwot
ICAgICJzdyAgICAkMjgsMjgoJDI5KSIgIlxuIgotI2VuZGlmCi0gICAgIm1vdmUgICQxNiwkNiAg
ICAgICAjIHNldCBjYWxsRnJhbWVSZWdpc3RlciIgIlxuIgotICAgICJsaSAgICAkMTcsNTEyICAg
ICAgIyBzZXQgdGltZW91dENoZWNrUmVnaXN0ZXIiICJcbiIKLSAgICAibW92ZSAgJDI1LCQ0ICAg
ICAgICMgbW92ZSBleGVjdXRhYmxlQWRkcmVzcyB0byB0OSIgIlxuIgotICAgICJzdyAgICAkNSw1
MigkMjkpICAgIyBzdG9yZSByZWdpc3RlckZpbGUgdG8gY3VycmVudCBzdGFjayIgIlxuIgotICAg
ICJzdyAgICAkNiw1NigkMjkpICAgIyBzdG9yZSBjYWxsRnJhbWUgdG8gY3VyZW50IHN0YWNrIiAi
XG4iCi0gICAgInN3ICAgICQ3LDYwKCQyOSkgICAjIHN0b3JlIGV4Y2VwdGlvbiB0byBjdXJyZW50
IHN0YWNrIiAiXG4iCi0gICAgImx3ICAgICQ4LDg4KCQyOSkgICAjIGxvYWQgZW5hYmxlUHJvZmls
ZXJSZWZlcmVuY2UgZnJvbSBwcmV2aW91cyBzdGFjayIgIlxuIgotICAgICJsdyAgICAkOSw5Migk
MjkpICAgIyBsb2FkIGdsb2JhbERhdGEgZnJvbSBwcmV2aW91cyBzdGFjayIgIlxuIgotICAgICJz
dyAgICAkOCw2NCgkMjkpICAgIyBzdG9yZSBlbmFibGVQcm9maWxlclJlZmVyZW5jZSB0byBjdXJy
ZW50IHN0YWNrIiAiXG4iCi0gICAgImphbHIgICQyNSIgIlxuIgotICAgICJzdyAgICAkOSw2OCgk
MjkpICAgIyBzdG9yZSBnbG9iYWxEYXRhIHRvIGN1cnJlbnQgc3RhY2siICJcbiIKLSAgICAibHcg
ICAgJDE2LDMyKCQyOSkiICJcbiIKLSAgICAibHcgICAgJDE3LDM2KCQyOSkiICJcbiIKLSAgICAi
bHcgICAgJDE4LDQwKCQyOSkiICJcbiIKLSAgICAibHcgICAgJDMxLDQ0KCQyOSkiICJcbiIKLSAg
ICAianIgICAgJDMxIiAiXG4iCi0gICAgImFkZGl1ICQyOSwkMjksNzIiICJcbiIKLSIuc2V0IHJl
b3JkZXIiICJcbiIKLSIuc2V0IG1hY3JvIiAiXG4iCi0iLmVuZCAiIFNZTUJPTF9TVFJJTkcoY3Rp
VHJhbXBvbGluZSkgIlxuIgotKTsKLQotYXNtIHZvbGF0aWxlKAotIi50ZXh0IiAiXG4iCi0iLmFs
aWduIDIiICJcbiIKLSIuc2V0IG5vcmVvcmRlciIgIlxuIgotIi5zZXQgbm9tYWNybyIgIlxuIgot
Ii5zZXQgbm9taXBzMTYiICJcbiIKLSIuZ2xvYmwgIiBTWU1CT0xfU1RSSU5HKGN0aVZNVGhyb3dU
cmFtcG9saW5lKSAiXG4iCi0iLmVudCAiIFNZTUJPTF9TVFJJTkcoY3RpVk1UaHJvd1RyYW1wb2xp
bmUpICJcbiIKLVNZTUJPTF9TVFJJTkcoY3RpVk1UaHJvd1RyYW1wb2xpbmUpICI6IiAiXG4iCi0j
aWYgV1RGX01JUFNfUElDCi0gICAgImx3ICAgICQyOCwyOCgkMjkpIiAiXG4iCi0iLnNldCBtYWNy
byIgIlxuIgotICAgICJsYSAgICAkMjUsIiBTWU1CT0xfU1RSSU5HKGN0aV92bV90aHJvdykgIlxu
IgotIi5zZXQgbm9tYWNybyIgIlxuIgotICAgICJiYWwgIiBTWU1CT0xfU1RSSU5HKGN0aV92bV90
aHJvdykgIlxuIgotICAgICJtb3ZlICAkNCwkMjkiICJcbiIKLSNlbHNlCi0gICAgImphbCAiIFNZ
TUJPTF9TVFJJTkcoY3RpX3ZtX3Rocm93KSAiXG4iCi0gICAgIm1vdmUgICQ0LCQyOSIgIlxuIgot
I2VuZGlmCi0gICAgImx3ICAgICQxNiwzMigkMjkpIiAiXG4iCi0gICAgImx3ICAgICQxNywzNigk
MjkpIiAiXG4iCi0gICAgImx3ICAgICQxOCw0MCgkMjkpIiAiXG4iCi0gICAgImx3ICAgICQzMSw0
NCgkMjkpIiAiXG4iCi0gICAgImpyICAgICQzMSIgIlxuIgotICAgICJhZGRpdSAkMjksJDI5LDcy
IiAiXG4iCi0iLnNldCByZW9yZGVyIiAiXG4iCi0iLnNldCBtYWNybyIgIlxuIgotIi5lbmQgIiBT
WU1CT0xfU1RSSU5HKGN0aVZNVGhyb3dUcmFtcG9saW5lKSAiXG4iCi0pOwotCi1hc20gdm9sYXRp
bGUoCi0iLnRleHQiICJcbiIKLSIuYWxpZ24gMiIgIlxuIgotIi5zZXQgbm9yZW9yZGVyIiAiXG4i
Ci0iLnNldCBub21hY3JvIiAiXG4iCi0iLnNldCBub21pcHMxNiIgIlxuIgotIi5nbG9ibCAiIFNZ
TUJPTF9TVFJJTkcoY3RpT3BUaHJvd05vdENhdWdodCkgIlxuIgotIi5lbnQgIiBTWU1CT0xfU1RS
SU5HKGN0aU9wVGhyb3dOb3RDYXVnaHQpICJcbiIKLVNZTUJPTF9TVFJJTkcoY3RpT3BUaHJvd05v
dENhdWdodCkgIjoiICJcbiIKLSAgICAibHcgICAgJDE2LDMyKCQyOSkiICJcbiIKLSAgICAibHcg
ICAgJDE3LDM2KCQyOSkiICJcbiIKLSAgICAibHcgICAgJDE4LDQwKCQyOSkiICJcbiIKLSAgICAi
bHcgICAgJDMxLDQ0KCQyOSkiICJcbiIKLSAgICAianIgICAgJDMxIiAiXG4iCi0gICAgImFkZGl1
ICQyOSwkMjksNzIiICJcbiIKLSIuc2V0IHJlb3JkZXIiICJcbiIKLSIuc2V0IG1hY3JvIiAiXG4i
Ci0iLmVuZCAiIFNZTUJPTF9TVFJJTkcoY3RpT3BUaHJvd05vdENhdWdodCkgIlxuIgotKTsKKyNk
ZWZpbmUgUFJFU0VSVkVEX0dQX09GRlNFVCAgICAgICAgIDI4CisjZGVmaW5lIFBSRVNFUlZFRF9T
MF9PRkZTRVQgICAgICAgICAzMgorI2RlZmluZSBQUkVTRVJWRURfUzFfT0ZGU0VUICAgICAgICAg
MzYKKyNkZWZpbmUgUFJFU0VSVkVEX1MyX09GRlNFVCAgICAgICAgIDQwCisjZGVmaW5lIFBSRVNF
UlZFRF9SRVRVUk5fQUREUkVTU19PRkZTRVQgNDQKKyNkZWZpbmUgVEhVTktfUkVUVVJOX0FERFJF
U1NfT0ZGU0VUIDQ4CisjZGVmaW5lIFJFR0lTVEVSX0ZJTEVfT0ZGU0VUICAgICAgICA1MgorI2Rl
ZmluZSBDQUxMRlJBTUVfT0ZGU0VUICAgICAgICAgICAgNTYKKyNkZWZpbmUgRVhDRVBUSU9OX09G
RlNFVCAgICAgICAgICAgIDYwCisjZGVmaW5lIEVOQUJMRV9QUk9GSUxFUl9SRUZFUkVOQ0VfT0ZG
U0VUIDY0CisjZGVmaW5lIEdMT0JBTF9EQVRBX09GRlNFVCAgICAgICAgICA2OAorI2RlZmluZSBT
VEFDS19MRU5HVEggICAgICAgICAgICAgICAgNzIKIAogI2VsaWYgQ09NUElMRVIoTVNWQykgJiYg
Q1BVKFg4NikKIApAQCAtNjI1LDYgKzU2Myw5OCBAQCBleHRlcm4gIkMiIHsKIAogI2VuZGlmIC8v
IFVTRShKU1ZBTFVFMzJfNjQpCiAKKyNpZiBDUFUoTUlQUykKK2FzbSB2b2xhdGlsZSgKKyIudGV4
dCIgIlxuIgorIi5hbGlnbiAyIiAiXG4iCisiLnNldCBub3Jlb3JkZXIiICJcbiIKKyIuc2V0IG5v
bWFjcm8iICJcbiIKKyIuc2V0IG5vbWlwczE2IiAiXG4iCisiLmdsb2JsICIgU1lNQk9MX1NUUklO
RyhjdGlUcmFtcG9saW5lKSAiXG4iCisiLmVudCAiIFNZTUJPTF9TVFJJTkcoY3RpVHJhbXBvbGlu
ZSkgIlxuIgorU1lNQk9MX1NUUklORyhjdGlUcmFtcG9saW5lKSAiOiIgIlxuIgorICAgICJhZGRp
dSAkMjksJDI5LC0iIFNUUklOR0laRV9WQUxVRV9PRihTVEFDS19MRU5HVEgpICJcbiIKKyAgICAi
c3cgICAgJDMxLCIgU1RSSU5HSVpFX1ZBTFVFX09GKFBSRVNFUlZFRF9SRVRVUk5fQUREUkVTU19P
RkZTRVQpICIoJDI5KSIgIlxuIgorICAgICJzdyAgICAkMTgsIiBTVFJJTkdJWkVfVkFMVUVfT0Yo
UFJFU0VSVkVEX1MyX09GRlNFVCkgIigkMjkpIiAiXG4iCisgICAgInN3ICAgICQxNywiIFNUUklO
R0laRV9WQUxVRV9PRihQUkVTRVJWRURfUzFfT0ZGU0VUKSAiKCQyOSkiICJcbiIKKyAgICAic3cg
ICAgJDE2LCIgU1RSSU5HSVpFX1ZBTFVFX09GKFBSRVNFUlZFRF9TMF9PRkZTRVQpICIoJDI5KSIg
IlxuIgorI2lmIFdURl9NSVBTX1BJQworICAgICJzdyAgICAkMjgsIiBTVFJJTkdJWkVfVkFMVUVf
T0YoUFJFU0VSVkVEX0dQX09GRlNFVCkgIigkMjkpIiAiXG4iCisjZW5kaWYKKyAgICAibW92ZSAg
JDE2LCQ2ICAgICAgICMgc2V0IGNhbGxGcmFtZVJlZ2lzdGVyIiAiXG4iCisgICAgImxpICAgICQx
Nyw1MTIgICAgICAjIHNldCB0aW1lb3V0Q2hlY2tSZWdpc3RlciIgIlxuIgorICAgICJtb3ZlICAk
MjUsJDQgICAgICAgIyBtb3ZlIGV4ZWN1dGFibGVBZGRyZXNzIHRvIHQ5IiAiXG4iCisgICAgInN3
ICAgICQ1LCIgU1RSSU5HSVpFX1ZBTFVFX09GKFJFR0lTVEVSX0ZJTEVfT0ZGU0VUKSAiKCQyOSkg
IyBzdG9yZSByZWdpc3RlckZpbGUgdG8gY3VycmVudCBzdGFjayIgIlxuIgorICAgICJzdyAgICAk
NiwiIFNUUklOR0laRV9WQUxVRV9PRihDQUxMRlJBTUVfT0ZGU0VUKSAiKCQyOSkgICAgICMgc3Rv
cmUgY2FsbEZyYW1lIHRvIGN1cmVudCBzdGFjayIgIlxuIgorICAgICJzdyAgICAkNywiIFNUUklO
R0laRV9WQUxVRV9PRihFWENFUFRJT05fT0ZGU0VUKSAiKCQyOSkgICAgICMgc3RvcmUgZXhjZXB0
aW9uIHRvIGN1cnJlbnQgc3RhY2siICJcbiIKKyAgICAibHcgICAgJDgsIiBTVFJJTkdJWkVfVkFM
VUVfT0YoU1RBQ0tfTEVOR1RIICsgMTYpICIoJDI5KSAgICAjIGxvYWQgZW5hYmxlUHJvZmlsZXJS
ZWZlcmVuY2UgZnJvbSBwcmV2aW91cyBzdGFjayIgIlxuIgorICAgICJsdyAgICAkOSwiIFNUUklO
R0laRV9WQUxVRV9PRihTVEFDS19MRU5HVEggKyAyMCkgIigkMjkpICAgICMgbG9hZCBnbG9iYWxE
YXRhIGZyb20gcHJldmlvdXMgc3RhY2siICJcbiIKKyAgICAic3cgICAgJDgsIiBTVFJJTkdJWkVf
VkFMVUVfT0YoRU5BQkxFX1BST0ZJTEVSX1JFRkVSRU5DRV9PRkZTRVQpICIoJDI5KSAgICMgc3Rv
cmUgZW5hYmxlUHJvZmlsZXJSZWZlcmVuY2UgdG8gY3VycmVudCBzdGFjayIgIlxuIgorICAgICJq
YWxyICAkMjUiICJcbiIKKyAgICAic3cgICAgJDksIiBTVFJJTkdJWkVfVkFMVUVfT0YoR0xPQkFM
X0RBVEFfT0ZGU0VUKSAiKCQyOSkgICAjIHN0b3JlIGdsb2JhbERhdGEgdG8gY3VycmVudCBzdGFj
ayIgIlxuIgorICAgICJsdyAgICAkMTYsIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJFU0VSVkVEX1Mw
X09GRlNFVCkgIigkMjkpIiAiXG4iCisgICAgImx3ICAgICQxNywiIFNUUklOR0laRV9WQUxVRV9P
RihQUkVTRVJWRURfUzFfT0ZGU0VUKSAiKCQyOSkiICJcbiIKKyAgICAibHcgICAgJDE4LCIgU1RS
SU5HSVpFX1ZBTFVFX09GKFBSRVNFUlZFRF9TMl9PRkZTRVQpICIoJDI5KSIgIlxuIgorICAgICJs
dyAgICAkMzEsIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJFU0VSVkVEX1JFVFVSTl9BRERSRVNTX09G
RlNFVCkgIigkMjkpIiAiXG4iCisgICAgImpyICAgICQzMSIgIlxuIgorICAgICJhZGRpdSAkMjks
JDI5LCIgU1RSSU5HSVpFX1ZBTFVFX09GKFNUQUNLX0xFTkdUSCkgIlxuIgorIi5zZXQgcmVvcmRl
ciIgIlxuIgorIi5zZXQgbWFjcm8iICJcbiIKKyIuZW5kICIgU1lNQk9MX1NUUklORyhjdGlUcmFt
cG9saW5lKSAiXG4iCispOworCithc20gdm9sYXRpbGUoCisiLnRleHQiICJcbiIKKyIuYWxpZ24g
MiIgIlxuIgorIi5zZXQgbm9yZW9yZGVyIiAiXG4iCisiLnNldCBub21hY3JvIiAiXG4iCisiLnNl
dCBub21pcHMxNiIgIlxuIgorIi5nbG9ibCAiIFNZTUJPTF9TVFJJTkcoY3RpVk1UaHJvd1RyYW1w
b2xpbmUpICJcbiIKKyIuZW50ICIgU1lNQk9MX1NUUklORyhjdGlWTVRocm93VHJhbXBvbGluZSkg
IlxuIgorU1lNQk9MX1NUUklORyhjdGlWTVRocm93VHJhbXBvbGluZSkgIjoiICJcbiIKKyNpZiBX
VEZfTUlQU19QSUMKKyAgICAibHcgICAgJDI4LCIgU1RSSU5HSVpFX1ZBTFVFX09GKFBSRVNFUlZF
RF9HUF9PRkZTRVQpICIoJDI5KSIgIlxuIgorIi5zZXQgbWFjcm8iICJcbiIKKyAgICAibGEgICAg
JDI1LCIgU1lNQk9MX1NUUklORyhjdGlfdm1fdGhyb3cpICJcbiIKKyIuc2V0IG5vbWFjcm8iICJc
biIKKyAgICAiYmFsICIgU1lNQk9MX1NUUklORyhjdGlfdm1fdGhyb3cpICJcbiIKKyAgICAibW92
ZSAgJDQsJDI5IiAiXG4iCisjZWxzZQorICAgICJqYWwgIiBTWU1CT0xfU1RSSU5HKGN0aV92bV90
aHJvdykgIlxuIgorICAgICJtb3ZlICAkNCwkMjkiICJcbiIKKyNlbmRpZgorICAgICJsdyAgICAk
MTYsIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJFU0VSVkVEX1MwX09GRlNFVCkgIigkMjkpIiAiXG4i
CisgICAgImx3ICAgICQxNywiIFNUUklOR0laRV9WQUxVRV9PRihQUkVTRVJWRURfUzFfT0ZGU0VU
KSAiKCQyOSkiICJcbiIKKyAgICAibHcgICAgJDE4LCIgU1RSSU5HSVpFX1ZBTFVFX09GKFBSRVNF
UlZFRF9TMl9PRkZTRVQpICIoJDI5KSIgIlxuIgorICAgICJsdyAgICAkMzEsIiBTVFJJTkdJWkVf
VkFMVUVfT0YoUFJFU0VSVkVEX1JFVFVSTl9BRERSRVNTX09GRlNFVCkgIigkMjkpIiAiXG4iCisg
ICAgImpyICAgICQzMSIgIlxuIgorICAgICJhZGRpdSAkMjksJDI5LCIgU1RSSU5HSVpFX1ZBTFVF
X09GKFNUQUNLX0xFTkdUSCkgIlxuIgorIi5zZXQgcmVvcmRlciIgIlxuIgorIi5zZXQgbWFjcm8i
ICJcbiIKKyIuZW5kICIgU1lNQk9MX1NUUklORyhjdGlWTVRocm93VHJhbXBvbGluZSkgIlxuIgor
KTsKKworYXNtIHZvbGF0aWxlKAorIi50ZXh0IiAiXG4iCisiLmFsaWduIDIiICJcbiIKKyIuc2V0
IG5vcmVvcmRlciIgIlxuIgorIi5zZXQgbm9tYWNybyIgIlxuIgorIi5zZXQgbm9taXBzMTYiICJc
biIKKyIuZ2xvYmwgIiBTWU1CT0xfU1RSSU5HKGN0aU9wVGhyb3dOb3RDYXVnaHQpICJcbiIKKyIu
ZW50ICIgU1lNQk9MX1NUUklORyhjdGlPcFRocm93Tm90Q2F1Z2h0KSAiXG4iCitTWU1CT0xfU1RS
SU5HKGN0aU9wVGhyb3dOb3RDYXVnaHQpICI6IiAiXG4iCisgICAgImx3ICAgICQxNiwiIFNUUklO
R0laRV9WQUxVRV9PRihQUkVTRVJWRURfUzBfT0ZGU0VUKSAiKCQyOSkiICJcbiIKKyAgICAibHcg
ICAgJDE3LCIgU1RSSU5HSVpFX1ZBTFVFX09GKFBSRVNFUlZFRF9TMV9PRkZTRVQpICIoJDI5KSIg
IlxuIgorICAgICJsdyAgICAkMTgsIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJFU0VSVkVEX1MyX09G
RlNFVCkgIigkMjkpIiAiXG4iCisgICAgImx3ICAgICQzMSwiIFNUUklOR0laRV9WQUxVRV9PRihQ
UkVTRVJWRURfUkVUVVJOX0FERFJFU1NfT0ZGU0VUKSAiKCQyOSkiICJcbiIKKyAgICAianIgICAg
JDMxIiAiXG4iCisgICAgImFkZGl1ICQyOSwkMjksIiBTVFJJTkdJWkVfVkFMVUVfT0YoU1RBQ0tf
TEVOR1RIKSAiXG4iCisiLnNldCByZW9yZGVyIiAiXG4iCisiLnNldCBtYWNybyIgIlxuIgorIi5l
bmQgIiBTWU1CT0xfU1RSSU5HKGN0aU9wVGhyb3dOb3RDYXVnaHQpICJcbiIKKyk7CisjZW5kaWYK
KwogI2lmIENPTVBJTEVSKEdDQykgJiYgQ1BVKEFSTV9USFVNQjIpCiAKIGFzbSB2b2xhdGlsZSgK
QEAgLTgwMiwxNyArODMyLDE3IEBAIEpJVFRodW5rczo6SklUVGh1bmtzKEpTR2xvYmFsRGF0YSog
Z2xvYmEKIAogCiAjZWxpZiBDUFUoTUlQUykKLSAgICBBU1NFUlQoT0JKRUNUX09GRlNFVE9GKHN0
cnVjdCBKSVRTdGFja0ZyYW1lLCBwcmVzZXJ2ZWRHUCkgPT0gMjgpOwotICAgIEFTU0VSVChPQkpF
Q1RfT0ZGU0VUT0Yoc3RydWN0IEpJVFN0YWNrRnJhbWUsIHByZXNlcnZlZFMwKSA9PSAzMik7Ci0g
ICAgQVNTRVJUKE9CSkVDVF9PRkZTRVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwgcHJlc2VydmVk
UzEpID09IDM2KTsKLSAgICBBU1NFUlQoT0JKRUNUX09GRlNFVE9GKHN0cnVjdCBKSVRTdGFja0Zy
YW1lLCBwcmVzZXJ2ZWRTMikgPT0gNDApOwotICAgIEFTU0VSVChPQkpFQ1RfT0ZGU0VUT0Yoc3Ry
dWN0IEpJVFN0YWNrRnJhbWUsIHByZXNlcnZlZFJldHVybkFkZHJlc3MpID09IDQ0KTsKLSAgICBB
U1NFUlQoT0JKRUNUX09GRlNFVE9GKHN0cnVjdCBKSVRTdGFja0ZyYW1lLCB0aHVua1JldHVybkFk
ZHJlc3MpID09IDQ4KTsKLSAgICBBU1NFUlQoT0JKRUNUX09GRlNFVE9GKHN0cnVjdCBKSVRTdGFj
a0ZyYW1lLCByZWdpc3RlckZpbGUpID09IDUyKTsKLSAgICBBU1NFUlQoT0JKRUNUX09GRlNFVE9G
KHN0cnVjdCBKSVRTdGFja0ZyYW1lLCBjYWxsRnJhbWUpID09IDU2KTsKLSAgICBBU1NFUlQoT0JK
RUNUX09GRlNFVE9GKHN0cnVjdCBKSVRTdGFja0ZyYW1lLCBleGNlcHRpb24pID09IDYwKTsKLSAg
ICBBU1NFUlQoT0JKRUNUX09GRlNFVE9GKHN0cnVjdCBKSVRTdGFja0ZyYW1lLCBlbmFibGVkUHJv
ZmlsZXJSZWZlcmVuY2UpID09IDY0KTsKLSAgICBBU1NFUlQoT0JKRUNUX09GRlNFVE9GKHN0cnVj
dCBKSVRTdGFja0ZyYW1lLCBnbG9iYWxEYXRhKSA9PSA2OCk7CisgICAgQVNTRVJUKE9CSkVDVF9P
RkZTRVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwgcHJlc2VydmVkR1ApID09IFBSRVNFUlZFRF9H
UF9PRkZTRVQpOworICAgIEFTU0VSVChPQkpFQ1RfT0ZGU0VUT0Yoc3RydWN0IEpJVFN0YWNrRnJh
bWUsIHByZXNlcnZlZFMwKSA9PSBQUkVTRVJWRURfUzBfT0ZGU0VUKTsKKyAgICBBU1NFUlQoT0JK
RUNUX09GRlNFVE9GKHN0cnVjdCBKSVRTdGFja0ZyYW1lLCBwcmVzZXJ2ZWRTMSkgPT0gUFJFU0VS
VkVEX1MxX09GRlNFVCk7CisgICAgQVNTRVJUKE9CSkVDVF9PRkZTRVRPRihzdHJ1Y3QgSklUU3Rh
Y2tGcmFtZSwgcHJlc2VydmVkUzIpID09IFBSRVNFUlZFRF9TMl9PRkZTRVQpOworICAgIEFTU0VS
VChPQkpFQ1RfT0ZGU0VUT0Yoc3RydWN0IEpJVFN0YWNrRnJhbWUsIHByZXNlcnZlZFJldHVybkFk
ZHJlc3MpID09IFBSRVNFUlZFRF9SRVRVUk5fQUREUkVTU19PRkZTRVQpOworICAgIEFTU0VSVChP
QkpFQ1RfT0ZGU0VUT0Yoc3RydWN0IEpJVFN0YWNrRnJhbWUsIHRodW5rUmV0dXJuQWRkcmVzcykg
PT0gVEhVTktfUkVUVVJOX0FERFJFU1NfT0ZGU0VUKTsKKyAgICBBU1NFUlQoT0JKRUNUX09GRlNF
VE9GKHN0cnVjdCBKSVRTdGFja0ZyYW1lLCByZWdpc3RlckZpbGUpID09IFJFR0lTVEVSX0ZJTEVf
T0ZGU0VUKTsKKyAgICBBU1NFUlQoT0JKRUNUX09GRlNFVE9GKHN0cnVjdCBKSVRTdGFja0ZyYW1l
LCBjYWxsRnJhbWUpID09IENBTExGUkFNRV9PRkZTRVQpOworICAgIEFTU0VSVChPQkpFQ1RfT0ZG
U0VUT0Yoc3RydWN0IEpJVFN0YWNrRnJhbWUsIGV4Y2VwdGlvbikgPT0gRVhDRVBUSU9OX09GRlNF
VCk7CisgICAgQVNTRVJUKE9CSkVDVF9PRkZTRVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwgZW5h
YmxlZFByb2ZpbGVyUmVmZXJlbmNlKSA9PSBFTkFCTEVfUFJPRklMRVJfUkVGRVJFTkNFX09GRlNF
VCk7CisgICAgQVNTRVJUKE9CSkVDVF9PRkZTRVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwgZ2xv
YmFsRGF0YSkgPT0gR0xPQkFMX0RBVEFfT0ZGU0VUKTsKIAogI2VuZGlmCiB9CkBAIC0xMDU4LDE0
ICsxMDg4LDE0IEBAIHN0YXRpYyBORVZFUl9JTkxJTkUgdm9pZCB0aHJvd1N0YWNrT3ZlcmYKICAg
ICAgICAgIi5nbG9ibCAiIFNZTUJPTF9TVFJJTkcoY3RpXyMjb3ApICJcbiIgXAogICAgICAgICAi
LmVudCAiIFNZTUJPTF9TVFJJTkcoY3RpXyMjb3ApICJcbiIgXAogICAgICAgICBTWU1CT0xfU1RS
SU5HKGN0aV8jI29wKSAiOiIgIlxuIiBcCi0gICAgICAgICJsdyAgICAkMjgsMjgoJDI5KSIgIlxu
IiBcCi0gICAgICAgICJzdyAgICAkMzEsNDgoJDI5KSIgIlxuIiBcCisgICAgICAgICJsdyAgICAk
MjgsIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJFU0VSVkVEX0dQX09GRlNFVCkgIigkMjkpIiAiXG4i
IFwKKyAgICAgICAgInN3ICAgICQzMSwiIFNUUklOR0laRV9WQUxVRV9PRihUSFVOS19SRVRVUk5f
QUREUkVTU19PRkZTRVQpICIoJDI5KSIgIlxuIiBcCiAgICAgICAgICIuc2V0IG1hY3JvIiAiXG4i
IFwKICAgICAgICAgImxhICAgICQyNSwiIFNZTUJPTF9TVFJJTkcoSklUU3R1YlRodW5rZWRfIyNv
cCkgIlxuIiBcCiAgICAgICAgICIuc2V0IG5vbWFjcm8iICJcbiIgXAogICAgICAgICAiYmFsICIg
U1lNQk9MX1NUUklORyhKSVRTdHViVGh1bmtlZF8jI29wKSAiXG4iIFwKICAgICAgICAgIm5vcCIg
IlxuIiBcCi0gICAgICAgICJsdyAgICAkMzEsNDgoJDI5KSIgIlxuIiBcCisgICAgICAgICJsdyAg
ICAkMzEsIiBTVFJJTkdJWkVfVkFMVUVfT0YoVEhVTktfUkVUVVJOX0FERFJFU1NfT0ZGU0VUKSAi
KCQyOSkiICJcbiIgXAogICAgICAgICAianIgICAgJDMxIiAiXG4iIFwKICAgICAgICAgIm5vcCIg
IlxuIiBcCiAgICAgICAgICIuc2V0IHJlb3JkZXIiICJcbiIgXApAQCAtMTA4OCwxMCArMTExOCwx
MCBAQCBzdGF0aWMgTkVWRVJfSU5MSU5FIHZvaWQgdGhyb3dTdGFja092ZXJmCiAgICAgICAgICIu
Z2xvYmwgIiBTWU1CT0xfU1RSSU5HKGN0aV8jI29wKSAiXG4iIFwKICAgICAgICAgIi5lbnQgIiBT
WU1CT0xfU1RSSU5HKGN0aV8jI29wKSAiXG4iIFwKICAgICAgICAgU1lNQk9MX1NUUklORyhjdGlf
IyNvcCkgIjoiICJcbiIgXAotICAgICAgICAic3cgICAgJDMxLDQ4KCQyOSkiICJcbiIgXAorICAg
ICAgICAic3cgICAgJDMxLCIgU1RSSU5HSVpFX1ZBTFVFX09GKFRIVU5LX1JFVFVSTl9BRERSRVNT
X09GRlNFVCkgIigkMjkpIiAiXG4iIFwKICAgICAgICAgImphbCAiIFNZTUJPTF9TVFJJTkcoSklU
U3R1YlRodW5rZWRfIyNvcCkgIlxuIiBcCiAgICAgICAgICJub3AiICJcbiIgXAotICAgICAgICAi
bHcgICAgJDMxLDQ4KCQyOSkiICJcbiIgXAorICAgICAgICAibHcgICAgJDMxLCIgU1RSSU5HSVpF
X1ZBTFVFX09GKFRIVU5LX1JFVFVSTl9BRERSRVNTX09GRlNFVCkgIigkMjkpIiAiXG4iIFwKICAg
ICAgICAgImpyICAgICQzMSIgIlxuIiBcCiAgICAgICAgICJub3AiICJcbiIgXAogICAgICAgICAi
LnNldCByZW9yZGVyIiAiXG4iIFwKSW5kZXg6IEphdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVicy5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIEphdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVicy5oCShyZXZpc2lvbiA2
NTMzNykKKysrIEphdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVicy5oCSh3b3JraW5nIGNvcHkpCkBA
IC0yMDUsOCArMjA1LDE1IEBAIG5hbWVzcGFjZSBKU0MgewogI2VsaWYgQ1BVKE1JUFMpCiAgICAg
c3RydWN0IEpJVFN0YWNrRnJhbWUgewogICAgICAgICB2b2lkKiByZXNlcnZlZDsgLy8gVW51c2Vk
CisjaWYgVVNFKEpTVkFMVUUzMl82NCkKKyAgICAgICAgdm9pZCogcGFkZGluZzE7IC8vIE1haW50
YWluIDgtYnl0ZSBzdGFjayBhbGlnbm1lbnQuCisjZW5kaWYKICAgICAgICAgSklUU3R1YkFyZyBh
cmdzWzZdOwogCisjaWYgVVNFKEpTVkFMVUUzMl82NCkKKyAgICAgICAgdm9pZCogcGFkZGluZzI7
IC8vIE1haW50YWluIDgtYnl0ZSBzdGFjayBhbGlnbm1lbnQuCisjZW5kaWYKKwogICAgICAgICB2
b2lkKiBwcmVzZXJ2ZWRHUDsgLy8gc3RvcmUgR1Agd2hlbiB1c2luZyBQSUMgY29kZQogICAgICAg
ICB2b2lkKiBwcmVzZXJ2ZWRTMDsKICAgICAgICAgdm9pZCogcHJlc2VydmVkUzE7CkluZGV4OiBK
YXZhU2NyaXB0Q29yZS93dGYvUGxhdGZvcm0uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0Q29y
ZS93dGYvUGxhdGZvcm0uaAkocmV2aXNpb24gNjUzMzcpCisrKyBKYXZhU2NyaXB0Q29yZS93dGYv
UGxhdGZvcm0uaAkod29ya2luZyBjb3B5KQpAQCAtMTQyLDYgKzE0Miw3IEBACiAjZGVmaW5lIFdU
Rl9NSVBTX0FSQ0hfUkVWIF9fbWlwc19pc2FfcmV2CiAjZGVmaW5lIFdURl9NSVBTX0lTQV9SRVYo
dikgKGRlZmluZWQgV1RGX01JUFNfQVJDSF9SRVYgJiYgV1RGX01JUFNfQVJDSF9SRVYgPT0gdikK
ICNkZWZpbmUgV1RGX01JUFNfRE9VQkxFX0ZMT0FUIChkZWZpbmVkIF9fbWlwc19oYXJkX2Zsb2F0
ICYmICFkZWZpbmVkIF9fbWlwc19zaW5nbGVfZmxvYXQpCisjZGVmaW5lIFdURl9NSVBTX0ZQNjQg
KGRlZmluZWQgX19taXBzX2ZwciAmJiBfX21pcHNfZnByID09IDY0KQogLyogTUlQUyByZXF1aXJl
cyBhbGxvY2F0b3JzIHRvIHVzZSBhbGlnbmVkIG1lbW9yeSAqLwogI2RlZmluZSBXVEZfVVNFX0FS
RU5BX0FMTE9DX0FMSUdOTUVOVF9JTlRFR0VSIDEKICNlbmRpZiAvKiBNSVBTICovCkBAIC05MTIs
NyArOTEzLDcgQEAKICAgICB8fCBDUFUoU1BBUkM2NCkgXAogICAgIHx8IENQVShQUEM2NCkKICNk
ZWZpbmUgV1RGX1VTRV9KU1ZBTFVFNjQgMQotI2VsaWYgQ1BVKE1JUFMpIHx8IChDUFUoQVJNX1RS
QURJVElPTkFMKSAmJiBDT01QSUxFUihNU1ZDKSkKKyNlbGlmIChDUFUoQVJNX1RSQURJVElPTkFM
KSAmJiBDT01QSUxFUihNU1ZDKSkKICNkZWZpbmUgV1RGX1VTRV9KU1ZBTFVFMzIgMQogI2VsaWYg
T1MoV0lORE9XUykgJiYgQ09NUElMRVIoTUlOR1cpCiAvKiBVc2luZyBKU1ZBTFVFMzJfNjQgY2F1
c2VzIHBhZGRpbmcvYWxpZ25lbWVudCBpc3N1ZXMgZm9yIEpJVFN0dWJBcmcK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>64396</attachid>
            <date>2010-08-13 18:37:03 -0700</date>
            <delta_ts>2010-08-18 16:37:24 -0700</delta_ts>
            <desc>New patch to fix format error in the patch</desc>
            <filename>new-mips-jsvalue3264.diff</filename>
            <type>text/plain</type>
            <size>29947</size>
            <attacher name="Chao-ying Fu">fu</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDY1MzQzKQorKysgSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzcgQEAKKzIwMTAtMDgtMTMgIENoYW8teWlu
ZyBGdSAgPGZ1QG1pcHMuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFN1cHBvcnQgSlNWQUxVRTMyXzY0IG9uIE1JUFMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQzOTk5CisKKyAgICAgICAgQWRkIG1p
c3NpbmcgZnVuY3Rpb25zIHRvIHN1cHBvcnQgSlNWQUxVRTMyXzY0IG9uIE1JUFMuCisgICAgICAg
IFJlbW92ZSBKU1ZBTFVFMzIgYXMgdGhlIGRlZmF1bHQgZm9yIE1JUFMuCisKKyAgICAgICAgKiBh
c3NlbWJsZXIvTUlQU0Fzc2VtYmxlci5oOgorICAgICAgICAoSlNDOjpNSVBTQXNzZW1ibGVyOjpk
aXZkKToKKyAgICAgICAgKEpTQzo6TUlQU0Fzc2VtYmxlcjo6bXRoYzEpOgorICAgICAgICAoSlND
OjpNSVBTQXNzZW1ibGVyOjpjdnR3ZCk6CisgICAgICAgICogYXNzZW1ibGVyL01hY3JvQXNzZW1i
bGVyTUlQUy5oOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlck1JUFM6Om5lZzMyKToKKyAg
ICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJNSVBTOjpicmFuY2hPcjMyKToKKyAgICAgICAgKEpT
Qzo6TWFjcm9Bc3NlbWJsZXJNSVBTOjpzZXQ4KToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJs
ZXJNSVBTOjpsb2FkRG91YmxlKToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJNSVBTOjpk
aXZEb3VibGUpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlck1JUFM6OmNvbnZlcnRJbnQz
MlRvRG91YmxlKToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJNSVBTOjpicmFuY2hEb3Vi
bGUpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlck1JUFM6OmJyYW5jaENvbnZlcnREb3Vi
bGVUb0ludDMyKToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJNSVBTOjp6ZXJvRG91Ymxl
KToKKyAgICAgICAgKiBqaXQvSklULmg6CisgICAgICAgICogaml0L0pJVE9wY29kZXMzMl82NC5j
cHA6CisgICAgICAgIChKU0M6OkpJVDo6cHJpdmF0ZUNvbXBpbGVDVElOYXRpdmVDYWxsKToKKyAg
ICAgICAgKiBqaXQvSklUUHJvcGVydHlBY2Nlc3MzMl82NC5jcHA6CisgICAgICAgIChKU0M6OkpJ
VDo6cHJpdmF0ZUNvbXBpbGVQdXRCeUlkVHJhbnNpdGlvbik6CisgICAgICAgICogaml0L0pJVFN0
dWJzLmNwcDoKKyAgICAgICAgKEpTQzo6SklUVGh1bmtzOjpKSVRUaHVua3MpOgorICAgICAgICAq
IGppdC9KSVRTdHVicy5oOgorICAgICAgICAqIHd0Zi9QbGF0Zm9ybS5oOgorCiAyMDEwLTA4LTEz
ICBHYWJvciBMb2tpICA8bG9raUB3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEdh
dmluIEJhcnJhY2xvdWdoLgpJbmRleDogSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01JUFNBc3Nl
bWJsZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTUlQU0Fzc2Vt
Ymxlci5oCShyZXZpc2lvbiA2NTMzNykKKysrIEphdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NSVBT
QXNzZW1ibGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTUyNCw2ICs1MjksMTIgQEAgcHVibGljOgog
ICAgICAgICAgICAgICAgICB8IChmdCA8PCBPUF9TSF9GVCkpOwogICAgIH0KIAorICAgIHZvaWQg
ZGl2ZChGUFJlZ2lzdGVySUQgZmQsIEZQUmVnaXN0ZXJJRCBmcywgRlBSZWdpc3RlcklEIGZ0KQor
ICAgIHsKKyAgICAgICAgZW1pdEluc3QoMHg0NjIwMDAwMyB8IChmZCA8PCBPUF9TSF9GRCkgfCAo
ZnMgPDwgT1BfU0hfRlMpCisgICAgICAgICAgICAgICAgIHwgKGZ0IDw8IE9QX1NIX0ZUKSk7Cisg
ICAgfQorCiAgICAgdm9pZCBsd2MxKEZQUmVnaXN0ZXJJRCBmdCwgUmVnaXN0ZXJJRCBycywgaW50
IG9mZnNldCkKICAgICB7CiAgICAgICAgIGVtaXRJbnN0KDB4YzQwMDAwMDAgfCAoZnQgPDwgT1Bf
U0hfRlQpIHwgKHJzIDw8IE9QX1NIX1JTKQpAQCAtNTU1LDYgKzU2NiwxMiBAQCBwdWJsaWM6CiAg
ICAgICAgIGNvcERlbGF5Tm9wKCk7CiAgICAgfQogCisgICAgdm9pZCBtdGhjMShSZWdpc3RlcklE
IHJ0LCBGUFJlZ2lzdGVySUQgZnMpCisgICAgeworICAgICAgICBlbWl0SW5zdCgweDQ0ZTAwMDAw
IHwgKGZzIDw8IE9QX1NIX0ZTKSB8IChydCA8PCBPUF9TSF9SVCkpOworICAgICAgICBjb3BEZWxh
eU5vcCgpOworICAgIH0KKwogICAgIHZvaWQgbWZjMShSZWdpc3RlcklEIHJ0LCBGUFJlZ2lzdGVy
SUQgZnMpCiAgICAgewogICAgICAgICBlbWl0SW5zdCgweDQ0MDAwMDAwIHwgKGZzIDw8IE9QX1NI
X0ZTKSB8IChydCA8PCBPUF9TSF9SVCkpOwpAQCAtNTc2LDYgKzU5MywxMSBAQCBwdWJsaWM6CiAg
ICAgICAgIGVtaXRJbnN0KDB4NDY4MDAwMjEgfCAoZmQgPDwgT1BfU0hfRkQpIHwgKGZzIDw8IE9Q
X1NIX0ZTKSk7CiAgICAgfQogCisgICAgdm9pZCBjdnR3ZChGUFJlZ2lzdGVySUQgZmQsIEZQUmVn
aXN0ZXJJRCBmcykKKyAgICB7CisgICAgICAgIGVtaXRJbnN0KDB4NDYyMDAwMjQgfCAoZmQgPDwg
T1BfU0hfRkQpIHwgKGZzIDw8IE9QX1NIX0ZTKSk7CisgICAgfQorCiAgICAgdm9pZCBjZXFkKEZQ
UmVnaXN0ZXJJRCBmcywgRlBSZWdpc3RlcklEIGZ0KQogICAgIHsKICAgICAgICAgZW1pdEluc3Qo
MHg0NjIwMDAzMiB8IChmcyA8PCBPUF9TSF9GUykgfCAoZnQgPDwgT1BfU0hfRlQpKTsKSW5kZXg6
IEphdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlck1JUFMuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBKYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJNSVBTLmgJKHJldmlz
aW9uIDY1MzM3KQorKysgSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyTUlQ
Uy5oCSh3b3JraW5nIGNvcHkpCkBAIC0yODEsNiArMjgxLDExIEBAIHB1YmxpYzoKICAgICAgICAg
fQogICAgIH0KIAorICAgIHZvaWQgbmVnMzIoUmVnaXN0ZXJJRCBzcmNEZXN0KQorICAgIHsKKyAg
ICAgICAgbV9hc3NlbWJsZXIuc3VidShzcmNEZXN0LCBNSVBTUmVnaXN0ZXJzOjp6ZXJvLCBzcmNE
ZXN0KTsKKyAgICB9CisKICAgICB2b2lkIG5vdDMyKFJlZ2lzdGVySUQgc3JjRGVzdCkKICAgICB7
CiAgICAgICAgIG1fYXNzZW1ibGVyLm5vcihzcmNEZXN0LCBzcmNEZXN0LCBNSVBTUmVnaXN0ZXJz
Ojp6ZXJvKTsKQEAgLTYyMCwxMSArNjI1LDYgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gbGFi
ZWw7CiAgICAgfQogCi0gICAgTGFiZWwgbG9hZFB0cldpdGhBZGRyZXNzT2Zmc2V0UGF0Y2goQWRk
cmVzcyBhZGRyZXNzLCBSZWdpc3RlcklEIGRlc3QpCi0gICAgewotICAgICAgICByZXR1cm4gbG9h
ZFB0cldpdGhQYXRjaFRvTEVBKGFkZHJlc3MsIGRlc3QpOwotICAgIH0KLQogICAgIC8qIE5lZWQg
dG8gdXNlIHplcm8tZXh0ZW5lZCBsb2FkIGhhbGYtd29yZCBmb3IgbG9hZDE2LiAgKi8KICAgICB2
b2lkIGxvYWQxNihJbXBsaWNpdEFkZHJlc3MgYWRkcmVzcywgUmVnaXN0ZXJJRCBkZXN0KQogICAg
IHsKQEAgLTEzMDIsNiArMTMwMiwyNyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBicmFuY2hT
dWIzMihjb25kLCBpbW1UZW1wUmVnaXN0ZXIsIGRlc3QpOwogICAgIH0KIAorICAgIEp1bXAgYnJh
bmNoT3IzMihDb25kaXRpb24gY29uZCwgUmVnaXN0ZXJJRCBzcmMsIFJlZ2lzdGVySUQgZGVzdCkK
KyAgICB7CisgICAgICAgIEFTU0VSVCgoY29uZCA9PSBTaWduZWQpIHx8IChjb25kID09IFplcm8p
IHx8IChjb25kID09IE5vblplcm8pKTsKKyAgICAgICAgaWYgKGNvbmQgPT0gU2lnbmVkKSB7Cisg
ICAgICAgICAgICBvcjMyKHNyYywgZGVzdCk7CisgICAgICAgICAgICAvLyBDaGVjayBpZiBkZXN0
IGlzIG5lZ2F0aXZlLgorICAgICAgICAgICAgbV9hc3NlbWJsZXIuc2x0KGNtcFRlbXBSZWdpc3Rl
ciwgZGVzdCwgTUlQU1JlZ2lzdGVyczo6emVybyk7CisgICAgICAgICAgICByZXR1cm4gYnJhbmNo
Tm90RXF1YWwoY21wVGVtcFJlZ2lzdGVyLCBNSVBTUmVnaXN0ZXJzOjp6ZXJvKTsKKyAgICAgICAg
fQorICAgICAgICBpZiAoY29uZCA9PSBaZXJvKSB7CisgICAgICAgICAgICBvcjMyKHNyYywgZGVz
dCk7CisgICAgICAgICAgICByZXR1cm4gYnJhbmNoRXF1YWwoZGVzdCwgTUlQU1JlZ2lzdGVyczo6
emVybyk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGNvbmQgPT0gTm9uWmVybykgeworICAgICAg
ICAgICAgb3IzMihzcmMsIGRlc3QpOworICAgICAgICAgICAgcmV0dXJuIGJyYW5jaE5vdEVxdWFs
KGRlc3QsIE1JUFNSZWdpc3RlcnM6Onplcm8pOworICAgICAgICB9CisgICAgICAgIEFTU0VSVCgw
KTsKKyAgICAgICAgcmV0dXJuIEp1bXAoKTsKKyAgICB9CisKICAgICAvLyBNaXNjZWxsYW5lb3Vz
IG9wZXJhdGlvbnM6CiAKICAgICB2b2lkIGJyZWFrcG9pbnQoKQpAQCAtMTM1MSw2ICsxMzcyLDE3
IEBAIHB1YmxpYzoKICAgICAgICAgbV9hc3NlbWJsZXIubm9wKCk7CiAgICAgfQogCisgICAgdm9p
ZCBzZXQ4KENvbmRpdGlvbiBjb25kLCBSZWdpc3RlcklEIGxlZnQsIFJlZ2lzdGVySUQgcmlnaHQs
IFJlZ2lzdGVySUQgZGVzdCkKKyAgICB7CisgICAgICAgIHNldDMyKGNvbmQsIGxlZnQsIHJpZ2h0
LCBkZXN0KTsKKyAgICB9CisKKyAgICB2b2lkIHNldDgoQ29uZGl0aW9uIGNvbmQsIFJlZ2lzdGVy
SUQgbGVmdCwgSW1tMzIgcmlnaHQsIFJlZ2lzdGVySUQgZGVzdCkKKyAgICB7CisgICAgICAgIG1v
dmUocmlnaHQsIGltbVRlbXBSZWdpc3Rlcik7CisgICAgICAgIHNldDMyKGNvbmQsIGxlZnQsIGlt
bVRlbXBSZWdpc3RlciwgZGVzdCk7CisgICAgfQorCiAgICAgdm9pZCBzZXQzMihDb25kaXRpb24g
Y29uZCwgUmVnaXN0ZXJJRCBsZWZ0LCBSZWdpc3RlcklEIHJpZ2h0LCBSZWdpc3RlcklEIGRlc3Qp
CiAgICAgewogICAgICAgICBpZiAoY29uZCA9PSBFcXVhbCB8fCBjb25kID09IFplcm8pIHsKQEAg
LTE1NDYsNiArMTU3OCwyOCBAQCBwdWJsaWM6CiAjZW5kaWYKICAgICB9CiAKKyAgICB2b2lkIGxv
YWREb3VibGUoY29uc3Qgdm9pZCogYWRkcmVzcywgRlBSZWdpc3RlcklEIGRlc3QpCisgICAgewor
I2lmIFdURl9NSVBTX0lTQSgxKQorICAgICAgICAvKgorICAgICAgICAgICAgbGkgICAgICAgICAg
YWRkclRlbXAsIGFkZHJlc3MKKyAgICAgICAgICAgIGx3YzEgICAgICAgIGRlc3QsIDAoYWRkclRl
bXApCisgICAgICAgICAgICBsd2MxICAgICAgICBkZXN0KzEsIDQoYWRkclRlbXApCisgICAgICAg
ICAqLworICAgICAgICBtb3ZlKEltbVB0cihhZGRyZXNzKSwgYWRkclRlbXBSZWdpc3Rlcik7Cisg
ICAgICAgIG1fYXNzZW1ibGVyLmx3YzEoZGVzdCwgYWRkclRlbXBSZWdpc3RlciwgMCk7CisgICAg
ICAgIG1fYXNzZW1ibGVyLmx3YzEoRlBSZWdpc3RlcklEKGRlc3QgKyAxKSwgYWRkclRlbXBSZWdp
c3RlciwgNCk7CisjZWxzZQorICAgICAgICAvKgorICAgICAgICAgICAgbGkgICAgICAgICAgYWRk
clRlbXAsIGFkZHJlc3MKKyAgICAgICAgICAgIGxkYzEgICAgICAgIGRlc3QsIDAoYWRkclRlbXAp
CisgICAgICAgICovCisgICAgICAgIG1vdmUoSW1tUHRyKGFkZHJlc3MpLCBhZGRyVGVtcFJlZ2lz
dGVyKTsKKyAgICAgICAgbV9hc3NlbWJsZXIubGRjMShkZXN0LCBhZGRyVGVtcFJlZ2lzdGVyLCAw
KTsKKyNlbmRpZgorICAgIH0KKworCiAgICAgdm9pZCBzdG9yZURvdWJsZShGUFJlZ2lzdGVySUQg
c3JjLCBJbXBsaWNpdEFkZHJlc3MgYWRkcmVzcykKICAgICB7CiAjaWYgV1RGX01JUFNfSVNBKDEp
CkBAIC0xNjA5LDEyICsxNjYzLDMxIEBAIHB1YmxpYzoKICAgICAgICAgbV9hc3NlbWJsZXIubXVs
ZChkZXN0LCBkZXN0LCBmcFRlbXBSZWdpc3Rlcik7CiAgICAgfQogCisgICAgdm9pZCBkaXZEb3Vi
bGUoRlBSZWdpc3RlcklEIHNyYywgRlBSZWdpc3RlcklEIGRlc3QpCisgICAgeworICAgICAgICBt
X2Fzc2VtYmxlci5kaXZkKGRlc3QsIGRlc3QsIHNyYyk7CisgICAgfQorCiAgICAgdm9pZCBjb252
ZXJ0SW50MzJUb0RvdWJsZShSZWdpc3RlcklEIHNyYywgRlBSZWdpc3RlcklEIGRlc3QpCiAgICAg
ewogICAgICAgICBtX2Fzc2VtYmxlci5tdGMxKHNyYywgZnBUZW1wUmVnaXN0ZXIpOwogICAgICAg
ICBtX2Fzc2VtYmxlci5jdnRkdyhkZXN0LCBmcFRlbXBSZWdpc3Rlcik7CiAgICAgfQogCisgICAg
dm9pZCBjb252ZXJ0SW50MzJUb0RvdWJsZShBZGRyZXNzIHNyYywgRlBSZWdpc3RlcklEIGRlc3Qp
CisgICAgeworICAgICAgICBsb2FkMzIoc3JjLCBkYXRhVGVtcFJlZ2lzdGVyKTsKKyAgICAgICAg
bV9hc3NlbWJsZXIubXRjMShkYXRhVGVtcFJlZ2lzdGVyLCBmcFRlbXBSZWdpc3Rlcik7CisgICAg
ICAgIG1fYXNzZW1ibGVyLmN2dGR3KGRlc3QsIGZwVGVtcFJlZ2lzdGVyKTsKKyAgICB9CisKKyAg
ICB2b2lkIGNvbnZlcnRJbnQzMlRvRG91YmxlKEFic29sdXRlQWRkcmVzcyBzcmMsIEZQUmVnaXN0
ZXJJRCBkZXN0KQorICAgIHsKKyAgICAgICAgbG9hZDMyKHNyYy5tX3B0ciwgZGF0YVRlbXBSZWdp
c3Rlcik7CisgICAgICAgIG1fYXNzZW1ibGVyLm10YzEoZGF0YVRlbXBSZWdpc3RlciwgZnBUZW1w
UmVnaXN0ZXIpOworICAgICAgICBtX2Fzc2VtYmxlci5jdnRkdyhkZXN0LCBmcFRlbXBSZWdpc3Rl
cik7CisgICAgfQorCiAgICAgdm9pZCBpbnNlcnRSZWxheGF0aW9uV29yZHMoKQogICAgIHsKICAg
ICAgICAgLyogV2UgbmVlZCBmb3VyIHdvcmRzIGZvciByZWxheGF0aW9uLiAqLwpAQCAtMTY2Nyw3
ICsxNzQwLDcgQEAgcHVibGljOgogICAgICAgICAgICAgcmV0dXJuIGJyYW5jaFRydWUoKTsKICAg
ICAgICAgfQogICAgICAgICBpZiAoY29uZCA9PSBEb3VibGVOb3RFcXVhbCkgewotICAgICAgICAg
ICAgbV9hc3NlbWJsZXIuY2VxZChsZWZ0LCByaWdodCk7CisgICAgICAgICAgICBtX2Fzc2VtYmxl
ci5jdWVxZChsZWZ0LCByaWdodCk7CiAgICAgICAgICAgICByZXR1cm4gYnJhbmNoRmFsc2UoKTsg
Ly8gZmFsc2UKICAgICAgICAgfQogICAgICAgICBpZiAoY29uZCA9PSBEb3VibGVHcmVhdGVyVGhh
bikgewpAQCAtMTY5MCw2ICsxNzYzLDEwIEBAIHB1YmxpYzoKICAgICAgICAgICAgIG1fYXNzZW1i
bGVyLmN1ZXFkKGxlZnQsIHJpZ2h0KTsKICAgICAgICAgICAgIHJldHVybiBicmFuY2hUcnVlKCk7
CiAgICAgICAgIH0KKyAgICAgICAgaWYgKGNvbmQgPT0gRG91YmxlTm90RXF1YWxPclVub3JkZXJl
ZCkgeworICAgICAgICAgICAgbV9hc3NlbWJsZXIuY2VxZChsZWZ0LCByaWdodCk7CisgICAgICAg
ICAgICByZXR1cm4gYnJhbmNoRmFsc2UoKTsgLy8gZmFsc2UKKyAgICAgICAgfQogICAgICAgICBp
ZiAoY29uZCA9PSBEb3VibGVHcmVhdGVyVGhhbk9yVW5vcmRlcmVkKSB7CiAgICAgICAgICAgICBt
X2Fzc2VtYmxlci5jb2xlZChsZWZ0LCByaWdodCk7CiAgICAgICAgICAgICByZXR1cm4gYnJhbmNo
RmFsc2UoKTsgLy8gZmFsc2UKQEAgLTE3MjIsNiArMTc5OSwzNCBAQCBwdWJsaWM6CiAgICAgICAg
IHJldHVybiBicmFuY2gzMihFcXVhbCwgZGVzdCwgSW1tMzIoMHg3ZmZmZmZmZikpOwogICAgIH0K
IAorICAgIC8vIENvbnZlcnQgJ3NyYycgdG8gYW4gaW50ZWdlciwgYW5kIHBsYWNlcyB0aGUgcmVz
dWx0aW5nICdkZXN0Jy4KKyAgICAvLyBJZiB0aGUgcmVzdWx0IGlzIG5vdCByZXByZXNlbnRhYmxl
IGFzIGEgMzIgYml0IHZhbHVlLCBicmFuY2guCisgICAgLy8gTWF5IGFsc28gYnJhbmNoIGZvciBz
b21lIHZhbHVlcyB0aGF0IGFyZSByZXByZXNlbnRhYmxlIGluIDMyIGJpdHMKKyAgICAvLyAoc3Bl
Y2lmaWNhbGx5LCBpbiB0aGlzIGNhc2UsIDApLgorICAgIHZvaWQgYnJhbmNoQ29udmVydERvdWJs
ZVRvSW50MzIoRlBSZWdpc3RlcklEIHNyYywgUmVnaXN0ZXJJRCBkZXN0LCBKdW1wTGlzdCYgZmFp
bHVyZUNhc2VzLCBGUFJlZ2lzdGVySUQgZnBUZW1wKQorICAgIHsKKyAgICAgICAgbV9hc3NlbWJs
ZXIuY3Z0d2QoZnBUZW1wUmVnaXN0ZXIsIHNyYyk7CisgICAgICAgIG1fYXNzZW1ibGVyLm1mYzEo
ZGVzdCwgZnBUZW1wUmVnaXN0ZXIpOworCisgICAgICAgIC8vIElmIHRoZSByZXN1bHQgaXMgemVy
bywgaXQgbWlnaHQgaGF2ZSBiZWVuIC0wLjAsIGFuZCB0aGUgZG91YmxlIGNvbXBhcmlzb24gd29u
J3QgY2F0Y2ggdGhpcyEKKyAgICAgICAgZmFpbHVyZUNhc2VzLmFwcGVuZChicmFuY2gzMihFcXVh
bCwgZGVzdCwgTUlQU1JlZ2lzdGVyczo6emVybykpOworCisgICAgICAgIC8vIENvbnZlcnQgdGhl
IGludGVnZXIgcmVzdWx0IGJhY2sgdG8gZmxvYXQgJiBjb21wYXJlIHRvIHRoZSBvcmlnaW5hbCB2
YWx1ZSAtIGlmIG5vdCBlcXVhbCBvciB1bm9yZGVyZWQgKE5hTikgdGhlbiBqdW1wLgorICAgICAg
ICBjb252ZXJ0SW50MzJUb0RvdWJsZShkZXN0LCBmcFRlbXApOworICAgICAgICBmYWlsdXJlQ2Fz
ZXMuYXBwZW5kKGJyYW5jaERvdWJsZShEb3VibGVOb3RFcXVhbE9yVW5vcmRlcmVkLCBmcFRlbXAs
IHNyYykpOworICAgIH0KKworICAgIHZvaWQgemVyb0RvdWJsZShGUFJlZ2lzdGVySUQgZGVzdCkK
KyAgICB7CisjaWYgV1RGX01JUFNfSVNBX1JFVigyKSAmJiBXVEZfTUlQU19GUDY0CisgICAgICAg
IG1fYXNzZW1ibGVyLm10YzEoTUlQU1JlZ2lzdGVyczo6emVybywgZGVzdCk7CisgICAgICAgIG1f
YXNzZW1ibGVyLm10aGMxKE1JUFNSZWdpc3RlcnM6Onplcm8sIGRlc3QpOworI2Vsc2UKKyAgICAg
ICAgbV9hc3NlbWJsZXIubXRjMShNSVBTUmVnaXN0ZXJzOjp6ZXJvLCBkZXN0KTsKKyAgICAgICAg
bV9hc3NlbWJsZXIubXRjMShNSVBTUmVnaXN0ZXJzOjp6ZXJvLCBGUFJlZ2lzdGVySUQoZGVzdCAr
IDEpKTsKKyNlbmRpZgorICAgIH0KKwogcHJpdmF0ZToKICAgICAvLyBJZiBtX2ZpeGVkV2lkdGgg
aXMgdHJ1ZSwgd2Ugd2lsbCBnZW5lcmF0ZSBhIGZpeGVkIG51bWJlciBvZiBpbnN0cnVjdGlvbnMu
CiAgICAgLy8gT3RoZXJ3aXNlLCB3ZSBjYW4gZW1pdCBhbnkgbnVtYmVyIG9mIGluc3RydWN0aW9u
cy4KSW5kZXg6IEphdmFTY3JpcHRDb3JlL2ppdC9KSVQuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2Ny
aXB0Q29yZS9qaXQvSklULmgJKHJldmlzaW9uIDY1MzM3KQorKysgSmF2YVNjcmlwdENvcmUvaml0
L0pJVC5oCSh3b3JraW5nIGNvcHkpCkBAIC00NDgsNiArNDQ4LDUyIEBAIG5hbWVzcGFjZSBKU0Mg
ewogICAgICAgICAvLyBzZXF1ZW5jZVB1dEJ5SWQKICAgICAgICAgc3RhdGljIGNvbnN0IGludCBz
ZXF1ZW5jZVB1dEJ5SWRJbnN0cnVjdGlvblNwYWNlID0gMzY7CiAgICAgICAgIHN0YXRpYyBjb25z
dCBpbnQgc2VxdWVuY2VQdXRCeUlkQ29uc3RhbnRTcGFjZSA9IDQ7CisjZWxpZiBDUFUoTUlQUykK
KyNpZiBXVEZfTUlQU19JU0EoMSkKKyAgICAgICAgc3RhdGljIGNvbnN0IGludCBwYXRjaE9mZnNl
dFB1dEJ5SWRTdHJ1Y3R1cmUgPSAxNjsKKyAgICAgICAgc3RhdGljIGNvbnN0IGludCBwYXRjaE9m
ZnNldFB1dEJ5SWRFeHRlcm5hbExvYWQgPSA0ODsKKyAgICAgICAgc3RhdGljIGNvbnN0IGludCBw
YXRjaExlbmd0aFB1dEJ5SWRFeHRlcm5hbExvYWQgPSAyMDsKKyAgICAgICAgc3RhdGljIGNvbnN0
IGludCBwYXRjaE9mZnNldFB1dEJ5SWRQcm9wZXJ0eU1hcE9mZnNldDEgPSA2ODsKKyAgICAgICAg
c3RhdGljIGNvbnN0IGludCBwYXRjaE9mZnNldFB1dEJ5SWRQcm9wZXJ0eU1hcE9mZnNldDIgPSA4
NDsKKyAgICAgICAgc3RhdGljIGNvbnN0IGludCBwYXRjaE9mZnNldEdldEJ5SWRTdHJ1Y3R1cmUg
PSAxNjsKKyAgICAgICAgc3RhdGljIGNvbnN0IGludCBwYXRjaE9mZnNldEdldEJ5SWRCcmFuY2hU
b1Nsb3dDYXNlID0gNDg7CisgICAgICAgIHN0YXRpYyBjb25zdCBpbnQgcGF0Y2hPZmZzZXRHZXRC
eUlkRXh0ZXJuYWxMb2FkID0gNDg7CisgICAgICAgIHN0YXRpYyBjb25zdCBpbnQgcGF0Y2hMZW5n
dGhHZXRCeUlkRXh0ZXJuYWxMb2FkID0gMjA7CisgICAgICAgIHN0YXRpYyBjb25zdCBpbnQgcGF0
Y2hPZmZzZXRHZXRCeUlkUHJvcGVydHlNYXBPZmZzZXQxID0gNjg7CisgICAgICAgIHN0YXRpYyBj
b25zdCBpbnQgcGF0Y2hPZmZzZXRHZXRCeUlkUHJvcGVydHlNYXBPZmZzZXQyID0gODg7CisgICAg
ICAgIHN0YXRpYyBjb25zdCBpbnQgcGF0Y2hPZmZzZXRHZXRCeUlkUHV0UmVzdWx0ID0gMTA4Owor
I2lmIEVOQUJMRShPUENPREVfU0FNUExJTkcpCisgICAgICAgICNlcnJvciAiT1BDT0RFX1NBTVBM
SU5HIGlzIG5vdCB5ZXQgc3VwcG9ydGVkIgorI2Vsc2UKKyAgICAgICAgc3RhdGljIGNvbnN0IGlu
dCBwYXRjaE9mZnNldEdldEJ5SWRTbG93Q2FzZUNhbGwgPSA0NDsKKyNlbmRpZgorICAgICAgICBz
dGF0aWMgY29uc3QgaW50IHBhdGNoT2Zmc2V0T3BDYWxsQ29tcGFyZVRvSnVtcCA9IDMyOworICAg
ICAgICBzdGF0aWMgY29uc3QgaW50IHBhdGNoT2Zmc2V0TWV0aG9kQ2hlY2tQcm90b09iaiA9IDMy
OworICAgICAgICBzdGF0aWMgY29uc3QgaW50IHBhdGNoT2Zmc2V0TWV0aG9kQ2hlY2tQcm90b1N0
cnVjdCA9IDU2OworICAgICAgICBzdGF0aWMgY29uc3QgaW50IHBhdGNoT2Zmc2V0TWV0aG9kQ2hl
Y2tQdXRGdW5jdGlvbiA9IDg4OworI2Vsc2UgLy8gV1RGX01JUFNfSVNBKDEpCisgICAgICAgIHN0
YXRpYyBjb25zdCBpbnQgcGF0Y2hPZmZzZXRQdXRCeUlkU3RydWN0dXJlID0gMTI7CisgICAgICAg
IHN0YXRpYyBjb25zdCBpbnQgcGF0Y2hPZmZzZXRQdXRCeUlkRXh0ZXJuYWxMb2FkID0gNDQ7Cisg
ICAgICAgIHN0YXRpYyBjb25zdCBpbnQgcGF0Y2hMZW5ndGhQdXRCeUlkRXh0ZXJuYWxMb2FkID0g
MTY7CisgICAgICAgIHN0YXRpYyBjb25zdCBpbnQgcGF0Y2hPZmZzZXRQdXRCeUlkUHJvcGVydHlN
YXBPZmZzZXQxID0gNjA7CisgICAgICAgIHN0YXRpYyBjb25zdCBpbnQgcGF0Y2hPZmZzZXRQdXRC
eUlkUHJvcGVydHlNYXBPZmZzZXQyID0gNzY7CisgICAgICAgIHN0YXRpYyBjb25zdCBpbnQgcGF0
Y2hPZmZzZXRHZXRCeUlkU3RydWN0dXJlID0gMTI7CisgICAgICAgIHN0YXRpYyBjb25zdCBpbnQg
cGF0Y2hPZmZzZXRHZXRCeUlkQnJhbmNoVG9TbG93Q2FzZSA9IDQ0OworICAgICAgICBzdGF0aWMg
Y29uc3QgaW50IHBhdGNoT2Zmc2V0R2V0QnlJZEV4dGVybmFsTG9hZCA9IDQ0OworICAgICAgICBz
dGF0aWMgY29uc3QgaW50IHBhdGNoTGVuZ3RoR2V0QnlJZEV4dGVybmFsTG9hZCA9IDE2OworICAg
ICAgICBzdGF0aWMgY29uc3QgaW50IHBhdGNoT2Zmc2V0R2V0QnlJZFByb3BlcnR5TWFwT2Zmc2V0
MSA9IDYwOworICAgICAgICBzdGF0aWMgY29uc3QgaW50IHBhdGNoT2Zmc2V0R2V0QnlJZFByb3Bl
cnR5TWFwT2Zmc2V0MiA9IDc2OworICAgICAgICBzdGF0aWMgY29uc3QgaW50IHBhdGNoT2Zmc2V0
R2V0QnlJZFB1dFJlc3VsdCA9IDkyOworI2lmIEVOQUJMRShPUENPREVfU0FNUExJTkcpCisgICAg
ICAgICNlcnJvciAiT1BDT0RFX1NBTVBMSU5HIGlzIG5vdCB5ZXQgc3VwcG9ydGVkIgorI2Vsc2UK
KyAgICAgICAgc3RhdGljIGNvbnN0IGludCBwYXRjaE9mZnNldEdldEJ5SWRTbG93Q2FzZUNhbGwg
PSA0NDsKKyNlbmRpZgorICAgICAgICBzdGF0aWMgY29uc3QgaW50IHBhdGNoT2Zmc2V0T3BDYWxs
Q29tcGFyZVRvSnVtcCA9IDMyOworICAgICAgICBzdGF0aWMgY29uc3QgaW50IHBhdGNoT2Zmc2V0
TWV0aG9kQ2hlY2tQcm90b09iaiA9IDMyOworICAgICAgICBzdGF0aWMgY29uc3QgaW50IHBhdGNo
T2Zmc2V0TWV0aG9kQ2hlY2tQcm90b1N0cnVjdCA9IDUyOworICAgICAgICBzdGF0aWMgY29uc3Qg
aW50IHBhdGNoT2Zmc2V0TWV0aG9kQ2hlY2tQdXRGdW5jdGlvbiA9IDg0OworI2VuZGlmCiAjZWxz
ZQogI2Vycm9yICJKU1ZBTFVFMzJfNjQgbm90IHN1cHBvcnRlZCBvbiB0aGlzIHBsYXRmb3JtLiIK
ICNlbmRpZgpJbmRleDogSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMzMl82NC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMzMl82NC5jcHAJKHJldmlz
aW9uIDY1MzM3KQorKysgSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMzMl82NC5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTI1MCw2ICsyNTAsMzcgQEAgSklUOjpMYWJlbCBKSVQ6OnByaXZhdGVD
b21waWxlQ1RJTmF0aXZlQwogCiAgICAgcmVzdG9yZVJldHVybkFkZHJlc3NCZWZvcmVSZXR1cm4o
cmVnVDMpOwogCisjZWxpZiBDUFUoTUlQUykKKyAgICAvLyBMb2FkIGNhbGxlciBmcmFtZSdzIHNj
b3BlIGNoYWluIGludG8gdGhpcyBjYWxsZnJhbWUgc28gdGhhdCB3aGF0ZXZlciB3ZSBjYWxsIGNh
bgorICAgIC8vIGdldCB0byBpdHMgZ2xvYmFsIGRhdGEuCisgICAgZW1pdEdldEZyb21DYWxsRnJh
bWVIZWFkZXJQdHIoUmVnaXN0ZXJGaWxlOjpDYWxsZXJGcmFtZSwgcmVnVDApOworICAgIGVtaXRH
ZXRGcm9tQ2FsbEZyYW1lSGVhZGVyUHRyKFJlZ2lzdGVyRmlsZTo6U2NvcGVDaGFpbiwgcmVnVDEs
IHJlZ1QwKTsKKyAgICBlbWl0UHV0VG9DYWxsRnJhbWVIZWFkZXIocmVnVDEsIFJlZ2lzdGVyRmls
ZTo6U2NvcGVDaGFpbik7CisKKyAgICBwcmVzZXJ2ZVJldHVybkFkZHJlc3NBZnRlckNhbGwocmVn
VDMpOyAvLyBDYWxsZWUgcHJlc2VydmVkCisgICAgZW1pdFB1dFRvQ2FsbEZyYW1lSGVhZGVyKHJl
Z1QzLCBSZWdpc3RlckZpbGU6OlJldHVyblBDKTsKKworICAgIC8vIENhbGxpbmcgY29udmVudGlv
bjogICAgICBmKGEwLCBhMSwgYTIsIGEzKTsKKyAgICAvLyBIb3N0IGZ1bmN0aW9uIHNpZ25hdHVy
ZTogZihFeGVjU3RhdGUqKTsKKworICAgIC8vIEFsbG9jYXRlIHN0YWNrIHNwYWNlIGZvciAxNiBi
eXRlcyAoOC1ieXRlIGFsaWduZWQpCisgICAgLy8gMTYgYnl0ZXMgKHVudXNlZCkgZm9yIDQgYXJn
dW1lbnRzCisgICAgc3ViUHRyKEltbTMyKDE2KSwgc3RhY2tQb2ludGVyUmVnaXN0ZXIpOworCisg
ICAgLy8gU2V0dXAgYXJnMAorICAgIG1vdmUoY2FsbEZyYW1lUmVnaXN0ZXIsIE1JUFNSZWdpc3Rl
cnM6OmEwKTsKKworICAgIC8vIENhbGwKKyAgICBlbWl0R2V0RnJvbUNhbGxGcmFtZUhlYWRlclB0
cihSZWdpc3RlckZpbGU6OkNhbGxlZSwgTUlQU1JlZ2lzdGVyczo6YTIpOworICAgIGxvYWRQdHIo
QWRkcmVzcyhNSVBTUmVnaXN0ZXJzOjphMiwgT0JKRUNUX09GRlNFVE9GKEpTRnVuY3Rpb24sIG1f
ZXhlY3V0YWJsZSkpLCByZWdUMik7CisgICAgbW92ZShyZWdUMCwgY2FsbEZyYW1lUmVnaXN0ZXIp
OyAvLyBFYWdlcmx5IHJlc3RvcmUgY2FsbGVyIGZyYW1lIHJlZ2lzdGVyIHRvIGF2b2lkIGxvYWRp
bmcgZnJvbSBzdGFjay4KKyAgICBjYWxsKEFkZHJlc3MocmVnVDIsIGV4ZWN1dGFibGVPZmZzZXRU
b0Z1bmN0aW9uKSk7CisKKyAgICAvLyBSZXN0b3JlIHN0YWNrIHNwYWNlCisgICAgYWRkUHRyKElt
bTMyKDE2KSwgc3RhY2tQb2ludGVyUmVnaXN0ZXIpOworCisgICAgcmVzdG9yZVJldHVybkFkZHJl
c3NCZWZvcmVSZXR1cm4ocmVnVDMpOworCiAjZWxpZiBFTkFCTEUoSklUX09QVElNSVpFX05BVElW
RV9DQUxMKQogI2Vycm9yICJKSVRfT1BUSU1JWkVfTkFUSVZFX0NBTEwgbm90IHlldCBzdXBwb3J0
ZWQgb24gdGhpcyBwbGF0Zm9ybS4iCiAjZWxzZQpAQCAtMzMzLDYgKzM2NCwzOSBAQCBKSVQ6OkNv
ZGVQdHIgSklUOjpwcml2YXRlQ29tcGlsZUNUSU5hdGl2CiAKICAgICByZXN0b3JlUmV0dXJuQWRk
cmVzc0JlZm9yZVJldHVybihyZWdUMyk7CiAKKyNlbGlmIENQVShNSVBTKQorICAgIC8vIExvYWQg
Y2FsbGVyIGZyYW1lJ3Mgc2NvcGUgY2hhaW4gaW50byB0aGlzIGNhbGxmcmFtZSBzbyB0aGF0IHdo
YXRldmVyIHdlIGNhbGwgY2FuCisgICAgLy8gZ2V0IHRvIGl0cyBnbG9iYWwgZGF0YS4KKyAgICBl
bWl0R2V0RnJvbUNhbGxGcmFtZUhlYWRlclB0cihSZWdpc3RlckZpbGU6OkNhbGxlckZyYW1lLCBy
ZWdUMCk7CisgICAgZW1pdEdldEZyb21DYWxsRnJhbWVIZWFkZXJQdHIoUmVnaXN0ZXJGaWxlOjpT
Y29wZUNoYWluLCByZWdUMSwgcmVnVDApOworICAgIGVtaXRQdXRUb0NhbGxGcmFtZUhlYWRlcihy
ZWdUMSwgUmVnaXN0ZXJGaWxlOjpTY29wZUNoYWluKTsKKworICAgIHByZXNlcnZlUmV0dXJuQWRk
cmVzc0FmdGVyQ2FsbChyZWdUMyk7IC8vIENhbGxlZSBwcmVzZXJ2ZWQKKyAgICBlbWl0UHV0VG9D
YWxsRnJhbWVIZWFkZXIocmVnVDMsIFJlZ2lzdGVyRmlsZTo6UmV0dXJuUEMpOworCisgICAgLy8g
Q2FsbGluZyBjb252ZW50aW9uOiAgICAgIGYoYTAsIGExLCBhMiwgYTMpOworICAgIC8vIEhvc3Qg
ZnVuY3Rpb24gc2lnbmF0dXJlOiBmKEV4ZWNTdGF0ZSopOworCisgICAgLy8gQWxsb2NhdGUgc3Rh
Y2sgc3BhY2UgZm9yIDE2IGJ5dGVzICg4LWJ5dGUgYWxpZ25lZCkKKyAgICAvLyAxNiBieXRlcyAo
dW51c2VkKSBmb3IgNCBhcmd1bWVudHMKKyAgICBzdWJQdHIoSW1tMzIoMTYpLCBzdGFja1BvaW50
ZXJSZWdpc3Rlcik7CisKKyAgICAvLyBTZXR1cCBhcmcwCisgICAgbW92ZShjYWxsRnJhbWVSZWdp
c3RlciwgTUlQU1JlZ2lzdGVyczo6YTApOworCisgICAgLy8gQ2FsbAorICAgIGVtaXRHZXRGcm9t
Q2FsbEZyYW1lSGVhZGVyUHRyKFJlZ2lzdGVyRmlsZTo6Q2FsbGVlLCBNSVBTUmVnaXN0ZXJzOjph
Mik7CisgICAgbG9hZFB0cihBZGRyZXNzKE1JUFNSZWdpc3RlcnM6OmEyLCBPQkpFQ1RfT0ZGU0VU
T0YoSlNGdW5jdGlvbiwgbV9leGVjdXRhYmxlKSksIHJlZ1QyKTsKKyAgICBtb3ZlKHJlZ1QwLCBj
YWxsRnJhbWVSZWdpc3Rlcik7IC8vIEVhZ2VybHkgcmVzdG9yZSBjYWxsZXIgZnJhbWUgcmVnaXN0
ZXIgdG8gYXZvaWQgbG9hZGluZyBmcm9tIHN0YWNrLgorICAgIAorICAgIC8vIGNhbGwgdGhlIGZ1
bmN0aW9uCisgICAgbmF0aXZlQ2FsbCA9IGNhbGwoKTsKKworICAgIC8vIFJlc3RvcmUgc3RhY2sg
c3BhY2UKKyAgICBhZGRQdHIoSW1tMzIoMTYpLCBzdGFja1BvaW50ZXJSZWdpc3Rlcik7CisKKyAg
ICByZXN0b3JlUmV0dXJuQWRkcmVzc0JlZm9yZVJldHVybihyZWdUMyk7CisKICNlbGlmIEVOQUJM
RShKSVRfT1BUSU1JWkVfTkFUSVZFX0NBTEwpCiAjZXJyb3IgIkpJVF9PUFRJTUlaRV9OQVRJVkVf
Q0FMTCBub3QgeWV0IHN1cHBvcnRlZCBvbiB0aGlzIHBsYXRmb3JtLiIKICNlbHNlCkluZGV4OiBK
YXZhU2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MzMl82NC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gSmF2YVNjcmlwdENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNzMzJfNjQuY3BwCShyZXZpc2lv
biA2NTMzOCkKKysrIEphdmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2VzczMyXzY0LmNw
cAkod29ya2luZyBjb3B5KQpAQCAtNjQzLDggKzY0MywxNCBAQCBib29sIEpJVDo6cHJpdmF0ZUNv
bXBpbGVQdXRCeUlkVHJhbnNpdGlvCiAgICAgYWRkMzIoSW1tMzIoMSksIEFic29sdXRlQWRkcmVz
cyhuZXdTdHJ1Y3R1cmUtPmFkZHJlc3NPZkNvdW50KCkpKTsKICAgICBzdG9yZVB0cihJbW1QdHIo
bmV3U3RydWN0dXJlKSwgQWRkcmVzcyhyZWdUMCwgT0JKRUNUX09GRlNFVE9GKEpTQ2VsbCwgbV9z
dHJ1Y3R1cmUpKSk7CiAgICAgCisjaWYgQ1BVKE1JUFMpCisgICAgLy8gRm9yIE1JUFMsIHdlIGRv
bid0IGFkZCBzaXplb2Yodm9pZCopIHRvIHRoZSBzdGFjayBvZmZzZXQuCisgICAgbG9hZDMyKEFk
ZHJlc3Moc3RhY2tQb2ludGVyUmVnaXN0ZXIsIE9CSkVDVF9PRkZTRVRPRihKSVRTdGFja0ZyYW1l
LCBhcmdzWzJdKSArIE9CSkVDVF9PRkZTRVRPRihKU1ZhbHVlLCB1LmFzQml0cy5wYXlsb2FkKSks
IHJlZ1QzKTsKKyAgICBsb2FkMzIoQWRkcmVzcyhzdGFja1BvaW50ZXJSZWdpc3RlciwgT0JKRUNU
X09GRlNFVE9GKEpJVFN0YWNrRnJhbWUsIGFyZ3NbMl0pICsgT0JKRUNUX09GRlNFVE9GKEpTVmFs
dWUsIHUuYXNCaXRzLnRhZykpLCByZWdUMik7CisjZWxzZQogICAgIGxvYWQzMihBZGRyZXNzKHN0
YWNrUG9pbnRlclJlZ2lzdGVyLCBPQkpFQ1RfT0ZGU0VUT0YoSklUU3RhY2tGcmFtZSwgYXJnc1sy
XSkgKyBzaXplb2Yodm9pZCopICsgT0JKRUNUX09GRlNFVE9GKEpTVmFsdWUsIHUuYXNCaXRzLnBh
eWxvYWQpKSwgcmVnVDMpOwogICAgIGxvYWQzMihBZGRyZXNzKHN0YWNrUG9pbnRlclJlZ2lzdGVy
LCBPQkpFQ1RfT0ZGU0VUT0YoSklUU3RhY2tGcmFtZSwgYXJnc1syXSkgKyBzaXplb2Yodm9pZCop
ICsgT0JKRUNUX09GRlNFVE9GKEpTVmFsdWUsIHUuYXNCaXRzLnRhZykpLCByZWdUMik7CisjZW5k
aWYKICAgICAKICAgICAvLyBXcml0ZSB0aGUgdmFsdWUKICAgICBjb21waWxlUHV0RGlyZWN0T2Zm
c2V0KHJlZ1QwLCByZWdUMiwgcmVnVDMsIG5ld1N0cnVjdHVyZSwgY2FjaGVkT2Zmc2V0KTsKSW5k
ZXg6IEphdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVicy5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSmF2YVNj
cmlwdENvcmUvaml0L0pJVFN0dWJzLmNwcAkocmV2aXNpb24gNjUzMzcpCisrKyBKYXZhU2NyaXB0
Q29yZS9qaXQvSklUU3R1YnMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMTAsNiArMzEwLDIxIEBA
IGV4dGVybiAiQyIgewogI2RlZmluZSBQUkVTRVJWRURSNF9PRkZTRVQgICAgICAgICAgNjgKIC8v
IFNlZSBERUZJTkVfU1RVQl9GVU5DVElPTiBmb3IgbW9yZSBpbmZvcm1hdGlvbi4KIAorI2VsaWYg
Q1BVKE1JUFMpCisKKyNkZWZpbmUgUFJFU0VSVkVEX0dQX09GRlNFVCAgICAgICAgIDYwCisjZGVm
aW5lIFBSRVNFUlZFRF9TMF9PRkZTRVQgICAgICAgICA2NAorI2RlZmluZSBQUkVTRVJWRURfUzFf
T0ZGU0VUICAgICAgICAgNjgKKyNkZWZpbmUgUFJFU0VSVkVEX1MyX09GRlNFVCAgICAgICAgIDcy
CisjZGVmaW5lIFBSRVNFUlZFRF9SRVRVUk5fQUREUkVTU19PRkZTRVQgNzYKKyNkZWZpbmUgVEhV
TktfUkVUVVJOX0FERFJFU1NfT0ZGU0VUIDgwCisjZGVmaW5lIFJFR0lTVEVSX0ZJTEVfT0ZGU0VU
ICAgICAgICA4NAorI2RlZmluZSBDQUxMRlJBTUVfT0ZGU0VUICAgICAgICAgICAgODgKKyNkZWZp
bmUgRVhDRVBUSU9OX09GRlNFVCAgICAgICAgICAgIDkyCisjZGVmaW5lIEVOQUJMRV9QUk9GSUxF
Ul9SRUZFUkVOQ0VfT0ZGU0VUIDk2CisjZGVmaW5lIEdMT0JBTF9EQVRBX09GRlNFVCAgICAgICAg
IDEwMAorI2RlZmluZSBTVEFDS19MRU5HVEggICAgICAgICAgICAgICAxMDQKKwogI2Vsc2UKICAg
ICAjZXJyb3IgIkpJVCBub3Qgc3VwcG9ydGVkIG9uIHRoaXMgcGxhdGZvcm0uIgogI2VuZGlmCkBA
IC00NjQsOTUgKzQ3OSwxOCBAQCBTWU1CT0xfU1RSSU5HKGN0aU9wVGhyb3dOb3RDYXVnaHQpICI6
IiAiCiAKICNlbGlmIENQVShNSVBTKQogCi1hc20gdm9sYXRpbGUoCi0iLnRleHQiICJcbiIKLSIu
YWxpZ24gMiIgIlxuIgotIi5zZXQgbm9yZW9yZGVyIiAiXG4iCi0iLnNldCBub21hY3JvIiAiXG4i
Ci0iLnNldCBub21pcHMxNiIgIlxuIgotIi5nbG9ibCAiIFNZTUJPTF9TVFJJTkcoY3RpVHJhbXBv
bGluZSkgIlxuIgotIi5lbnQgIiBTWU1CT0xfU1RSSU5HKGN0aVRyYW1wb2xpbmUpICJcbiIKLVNZ
TUJPTF9TVFJJTkcoY3RpVHJhbXBvbGluZSkgIjoiICJcbiIKLSAgICAiYWRkaXUgJDI5LCQyOSwt
NzIiICJcbiIKLSAgICAic3cgICAgJDMxLDQ0KCQyOSkiICJcbiIKLSAgICAic3cgICAgJDE4LDQw
KCQyOSkiICJcbiIKLSAgICAic3cgICAgJDE3LDM2KCQyOSkiICJcbiIKLSAgICAic3cgICAgJDE2
LDMyKCQyOSkiICJcbiIKLSNpZiBXVEZfTUlQU19QSUMKLSAgICAic3cgICAgJDI4LDI4KCQyOSki
ICJcbiIKLSNlbmRpZgotICAgICJtb3ZlICAkMTYsJDYgICAgICAgIyBzZXQgY2FsbEZyYW1lUmVn
aXN0ZXIiICJcbiIKLSAgICAibGkgICAgJDE3LDUxMiAgICAgICMgc2V0IHRpbWVvdXRDaGVja1Jl
Z2lzdGVyIiAiXG4iCi0gICAgIm1vdmUgICQyNSwkNCAgICAgICAjIG1vdmUgZXhlY3V0YWJsZUFk
ZHJlc3MgdG8gdDkiICJcbiIKLSAgICAic3cgICAgJDUsNTIoJDI5KSAgICMgc3RvcmUgcmVnaXN0
ZXJGaWxlIHRvIGN1cnJlbnQgc3RhY2siICJcbiIKLSAgICAic3cgICAgJDYsNTYoJDI5KSAgICMg
c3RvcmUgY2FsbEZyYW1lIHRvIGN1cmVudCBzdGFjayIgIlxuIgotICAgICJzdyAgICAkNyw2MCgk
MjkpICAgIyBzdG9yZSBleGNlcHRpb24gdG8gY3VycmVudCBzdGFjayIgIlxuIgotICAgICJsdyAg
ICAkOCw4OCgkMjkpICAgIyBsb2FkIGVuYWJsZVByb2ZpbGVyUmVmZXJlbmNlIGZyb20gcHJldmlv
dXMgc3RhY2siICJcbiIKLSAgICAibHcgICAgJDksOTIoJDI5KSAgICMgbG9hZCBnbG9iYWxEYXRh
IGZyb20gcHJldmlvdXMgc3RhY2siICJcbiIKLSAgICAic3cgICAgJDgsNjQoJDI5KSAgICMgc3Rv
cmUgZW5hYmxlUHJvZmlsZXJSZWZlcmVuY2UgdG8gY3VycmVudCBzdGFjayIgIlxuIgotICAgICJq
YWxyICAkMjUiICJcbiIKLSAgICAic3cgICAgJDksNjgoJDI5KSAgICMgc3RvcmUgZ2xvYmFsRGF0
YSB0byBjdXJyZW50IHN0YWNrIiAiXG4iCi0gICAgImx3ICAgICQxNiwzMigkMjkpIiAiXG4iCi0g
ICAgImx3ICAgICQxNywzNigkMjkpIiAiXG4iCi0gICAgImx3ICAgICQxOCw0MCgkMjkpIiAiXG4i
Ci0gICAgImx3ICAgICQzMSw0NCgkMjkpIiAiXG4iCi0gICAgImpyICAgICQzMSIgIlxuIgotICAg
ICJhZGRpdSAkMjksJDI5LDcyIiAiXG4iCi0iLnNldCByZW9yZGVyIiAiXG4iCi0iLnNldCBtYWNy
byIgIlxuIgotIi5lbmQgIiBTWU1CT0xfU1RSSU5HKGN0aVRyYW1wb2xpbmUpICJcbiIKLSk7Ci0K
LWFzbSB2b2xhdGlsZSgKLSIudGV4dCIgIlxuIgotIi5hbGlnbiAyIiAiXG4iCi0iLnNldCBub3Jl
b3JkZXIiICJcbiIKLSIuc2V0IG5vbWFjcm8iICJcbiIKLSIuc2V0IG5vbWlwczE2IiAiXG4iCi0i
Lmdsb2JsICIgU1lNQk9MX1NUUklORyhjdGlWTVRocm93VHJhbXBvbGluZSkgIlxuIgotIi5lbnQg
IiBTWU1CT0xfU1RSSU5HKGN0aVZNVGhyb3dUcmFtcG9saW5lKSAiXG4iCi1TWU1CT0xfU1RSSU5H
KGN0aVZNVGhyb3dUcmFtcG9saW5lKSAiOiIgIlxuIgotI2lmIFdURl9NSVBTX1BJQwotICAgICJs
dyAgICAkMjgsMjgoJDI5KSIgIlxuIgotIi5zZXQgbWFjcm8iICJcbiIKLSAgICAibGEgICAgJDI1
LCIgU1lNQk9MX1NUUklORyhjdGlfdm1fdGhyb3cpICJcbiIKLSIuc2V0IG5vbWFjcm8iICJcbiIK
LSAgICAiYmFsICIgU1lNQk9MX1NUUklORyhjdGlfdm1fdGhyb3cpICJcbiIKLSAgICAibW92ZSAg
JDQsJDI5IiAiXG4iCi0jZWxzZQotICAgICJqYWwgIiBTWU1CT0xfU1RSSU5HKGN0aV92bV90aHJv
dykgIlxuIgotICAgICJtb3ZlICAkNCwkMjkiICJcbiIKLSNlbmRpZgotICAgICJsdyAgICAkMTYs
MzIoJDI5KSIgIlxuIgotICAgICJsdyAgICAkMTcsMzYoJDI5KSIgIlxuIgotICAgICJsdyAgICAk
MTgsNDAoJDI5KSIgIlxuIgotICAgICJsdyAgICAkMzEsNDQoJDI5KSIgIlxuIgotICAgICJqciAg
ICAkMzEiICJcbiIKLSAgICAiYWRkaXUgJDI5LCQyOSw3MiIgIlxuIgotIi5zZXQgcmVvcmRlciIg
IlxuIgotIi5zZXQgbWFjcm8iICJcbiIKLSIuZW5kICIgU1lNQk9MX1NUUklORyhjdGlWTVRocm93
VHJhbXBvbGluZSkgIlxuIgotKTsKLQotYXNtIHZvbGF0aWxlKAotIi50ZXh0IiAiXG4iCi0iLmFs
aWduIDIiICJcbiIKLSIuc2V0IG5vcmVvcmRlciIgIlxuIgotIi5zZXQgbm9tYWNybyIgIlxuIgot
Ii5zZXQgbm9taXBzMTYiICJcbiIKLSIuZ2xvYmwgIiBTWU1CT0xfU1RSSU5HKGN0aU9wVGhyb3dO
b3RDYXVnaHQpICJcbiIKLSIuZW50ICIgU1lNQk9MX1NUUklORyhjdGlPcFRocm93Tm90Q2F1Z2h0
KSAiXG4iCi1TWU1CT0xfU1RSSU5HKGN0aU9wVGhyb3dOb3RDYXVnaHQpICI6IiAiXG4iCi0gICAg
Imx3ICAgICQxNiwzMigkMjkpIiAiXG4iCi0gICAgImx3ICAgICQxNywzNigkMjkpIiAiXG4iCi0g
ICAgImx3ICAgICQxOCw0MCgkMjkpIiAiXG4iCi0gICAgImx3ICAgICQzMSw0NCgkMjkpIiAiXG4i
Ci0gICAgImpyICAgICQzMSIgIlxuIgotICAgICJhZGRpdSAkMjksJDI5LDcyIiAiXG4iCi0iLnNl
dCByZW9yZGVyIiAiXG4iCi0iLnNldCBtYWNybyIgIlxuIgotIi5lbmQgIiBTWU1CT0xfU1RSSU5H
KGN0aU9wVGhyb3dOb3RDYXVnaHQpICJcbiIKLSk7CisjZGVmaW5lIFBSRVNFUlZFRF9HUF9PRkZT
RVQgICAgICAgICAyOAorI2RlZmluZSBQUkVTRVJWRURfUzBfT0ZGU0VUICAgICAgICAgMzIKKyNk
ZWZpbmUgUFJFU0VSVkVEX1MxX09GRlNFVCAgICAgICAgIDM2CisjZGVmaW5lIFBSRVNFUlZFRF9T
Ml9PRkZTRVQgICAgICAgICA0MAorI2RlZmluZSBQUkVTRVJWRURfUkVUVVJOX0FERFJFU1NfT0ZG
U0VUIDQ0CisjZGVmaW5lIFRIVU5LX1JFVFVSTl9BRERSRVNTX09GRlNFVCA0OAorI2RlZmluZSBS
RUdJU1RFUl9GSUxFX09GRlNFVCAgICAgICAgNTIKKyNkZWZpbmUgQ0FMTEZSQU1FX09GRlNFVCAg
ICAgICAgICAgIDU2CisjZGVmaW5lIEVYQ0VQVElPTl9PRkZTRVQgICAgICAgICAgICA2MAorI2Rl
ZmluZSBFTkFCTEVfUFJPRklMRVJfUkVGRVJFTkNFX09GRlNFVCA2NAorI2RlZmluZSBHTE9CQUxf
REFUQV9PRkZTRVQgICAgICAgICAgNjgKKyNkZWZpbmUgU1RBQ0tfTEVOR1RIICAgICAgICAgICAg
ICAgIDcyCiAKICNlbGlmIENPTVBJTEVSKE1TVkMpICYmIENQVShYODYpCiAKQEAgLTYyNSw2ICs1
NjMsOTggQEAgZXh0ZXJuICJDIiB7CiAKICNlbmRpZiAvLyBVU0UoSlNWQUxVRTMyXzY0KQogCisj
aWYgQ1BVKE1JUFMpCithc20gdm9sYXRpbGUoCisiLnRleHQiICJcbiIKKyIuYWxpZ24gMiIgIlxu
IgorIi5zZXQgbm9yZW9yZGVyIiAiXG4iCisiLnNldCBub21hY3JvIiAiXG4iCisiLnNldCBub21p
cHMxNiIgIlxuIgorIi5nbG9ibCAiIFNZTUJPTF9TVFJJTkcoY3RpVHJhbXBvbGluZSkgIlxuIgor
Ii5lbnQgIiBTWU1CT0xfU1RSSU5HKGN0aVRyYW1wb2xpbmUpICJcbiIKK1NZTUJPTF9TVFJJTkco
Y3RpVHJhbXBvbGluZSkgIjoiICJcbiIKKyAgICAiYWRkaXUgJDI5LCQyOSwtIiBTVFJJTkdJWkVf
VkFMVUVfT0YoU1RBQ0tfTEVOR1RIKSAiXG4iCisgICAgInN3ICAgICQzMSwiIFNUUklOR0laRV9W
QUxVRV9PRihQUkVTRVJWRURfUkVUVVJOX0FERFJFU1NfT0ZGU0VUKSAiKCQyOSkiICJcbiIKKyAg
ICAic3cgICAgJDE4LCIgU1RSSU5HSVpFX1ZBTFVFX09GKFBSRVNFUlZFRF9TMl9PRkZTRVQpICIo
JDI5KSIgIlxuIgorICAgICJzdyAgICAkMTcsIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJFU0VSVkVE
X1MxX09GRlNFVCkgIigkMjkpIiAiXG4iCisgICAgInN3ICAgICQxNiwiIFNUUklOR0laRV9WQUxV
RV9PRihQUkVTRVJWRURfUzBfT0ZGU0VUKSAiKCQyOSkiICJcbiIKKyNpZiBXVEZfTUlQU19QSUMK
KyAgICAic3cgICAgJDI4LCIgU1RSSU5HSVpFX1ZBTFVFX09GKFBSRVNFUlZFRF9HUF9PRkZTRVQp
ICIoJDI5KSIgIlxuIgorI2VuZGlmCisgICAgIm1vdmUgICQxNiwkNiAgICAgICAjIHNldCBjYWxs
RnJhbWVSZWdpc3RlciIgIlxuIgorICAgICJsaSAgICAkMTcsNTEyICAgICAgIyBzZXQgdGltZW91
dENoZWNrUmVnaXN0ZXIiICJcbiIKKyAgICAibW92ZSAgJDI1LCQ0ICAgICAgICMgbW92ZSBleGVj
dXRhYmxlQWRkcmVzcyB0byB0OSIgIlxuIgorICAgICJzdyAgICAkNSwiIFNUUklOR0laRV9WQUxV
RV9PRihSRUdJU1RFUl9GSUxFX09GRlNFVCkgIigkMjkpICMgc3RvcmUgcmVnaXN0ZXJGaWxlIHRv
IGN1cnJlbnQgc3RhY2siICJcbiIKKyAgICAic3cgICAgJDYsIiBTVFJJTkdJWkVfVkFMVUVfT0Yo
Q0FMTEZSQU1FX09GRlNFVCkgIigkMjkpICAgICAjIHN0b3JlIGNhbGxGcmFtZSB0byBjdXJlbnQg
c3RhY2siICJcbiIKKyAgICAic3cgICAgJDcsIiBTVFJJTkdJWkVfVkFMVUVfT0YoRVhDRVBUSU9O
X09GRlNFVCkgIigkMjkpICAgICAjIHN0b3JlIGV4Y2VwdGlvbiB0byBjdXJyZW50IHN0YWNrIiAi
XG4iCisgICAgImx3ICAgICQ4LCIgU1RSSU5HSVpFX1ZBTFVFX09GKFNUQUNLX0xFTkdUSCArIDE2
KSAiKCQyOSkgICAgIyBsb2FkIGVuYWJsZVByb2ZpbGVyUmVmZXJlbmNlIGZyb20gcHJldmlvdXMg
c3RhY2siICJcbiIKKyAgICAibHcgICAgJDksIiBTVFJJTkdJWkVfVkFMVUVfT0YoU1RBQ0tfTEVO
R1RIICsgMjApICIoJDI5KSAgICAjIGxvYWQgZ2xvYmFsRGF0YSBmcm9tIHByZXZpb3VzIHN0YWNr
IiAiXG4iCisgICAgInN3ICAgICQ4LCIgU1RSSU5HSVpFX1ZBTFVFX09GKEVOQUJMRV9QUk9GSUxF
Ul9SRUZFUkVOQ0VfT0ZGU0VUKSAiKCQyOSkgICAjIHN0b3JlIGVuYWJsZVByb2ZpbGVyUmVmZXJl
bmNlIHRvIGN1cnJlbnQgc3RhY2siICJcbiIKKyAgICAiamFsciAgJDI1IiAiXG4iCisgICAgInN3
ICAgICQ5LCIgU1RSSU5HSVpFX1ZBTFVFX09GKEdMT0JBTF9EQVRBX09GRlNFVCkgIigkMjkpICAg
IyBzdG9yZSBnbG9iYWxEYXRhIHRvIGN1cnJlbnQgc3RhY2siICJcbiIKKyAgICAibHcgICAgJDE2
LCIgU1RSSU5HSVpFX1ZBTFVFX09GKFBSRVNFUlZFRF9TMF9PRkZTRVQpICIoJDI5KSIgIlxuIgor
ICAgICJsdyAgICAkMTcsIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJFU0VSVkVEX1MxX09GRlNFVCkg
IigkMjkpIiAiXG4iCisgICAgImx3ICAgICQxOCwiIFNUUklOR0laRV9WQUxVRV9PRihQUkVTRVJW
RURfUzJfT0ZGU0VUKSAiKCQyOSkiICJcbiIKKyAgICAibHcgICAgJDMxLCIgU1RSSU5HSVpFX1ZB
TFVFX09GKFBSRVNFUlZFRF9SRVRVUk5fQUREUkVTU19PRkZTRVQpICIoJDI5KSIgIlxuIgorICAg
ICJqciAgICAkMzEiICJcbiIKKyAgICAiYWRkaXUgJDI5LCQyOSwiIFNUUklOR0laRV9WQUxVRV9P
RihTVEFDS19MRU5HVEgpICJcbiIKKyIuc2V0IHJlb3JkZXIiICJcbiIKKyIuc2V0IG1hY3JvIiAi
XG4iCisiLmVuZCAiIFNZTUJPTF9TVFJJTkcoY3RpVHJhbXBvbGluZSkgIlxuIgorKTsKKworYXNt
IHZvbGF0aWxlKAorIi50ZXh0IiAiXG4iCisiLmFsaWduIDIiICJcbiIKKyIuc2V0IG5vcmVvcmRl
ciIgIlxuIgorIi5zZXQgbm9tYWNybyIgIlxuIgorIi5zZXQgbm9taXBzMTYiICJcbiIKKyIuZ2xv
YmwgIiBTWU1CT0xfU1RSSU5HKGN0aVZNVGhyb3dUcmFtcG9saW5lKSAiXG4iCisiLmVudCAiIFNZ
TUJPTF9TVFJJTkcoY3RpVk1UaHJvd1RyYW1wb2xpbmUpICJcbiIKK1NZTUJPTF9TVFJJTkcoY3Rp
Vk1UaHJvd1RyYW1wb2xpbmUpICI6IiAiXG4iCisjaWYgV1RGX01JUFNfUElDCisgICAgImx3ICAg
ICQyOCwiIFNUUklOR0laRV9WQUxVRV9PRihQUkVTRVJWRURfR1BfT0ZGU0VUKSAiKCQyOSkiICJc
biIKKyIuc2V0IG1hY3JvIiAiXG4iCisgICAgImxhICAgICQyNSwiIFNZTUJPTF9TVFJJTkcoY3Rp
X3ZtX3Rocm93KSAiXG4iCisiLnNldCBub21hY3JvIiAiXG4iCisgICAgImJhbCAiIFNZTUJPTF9T
VFJJTkcoY3RpX3ZtX3Rocm93KSAiXG4iCisgICAgIm1vdmUgICQ0LCQyOSIgIlxuIgorI2Vsc2UK
KyAgICAiamFsICIgU1lNQk9MX1NUUklORyhjdGlfdm1fdGhyb3cpICJcbiIKKyAgICAibW92ZSAg
JDQsJDI5IiAiXG4iCisjZW5kaWYKKyAgICAibHcgICAgJDE2LCIgU1RSSU5HSVpFX1ZBTFVFX09G
KFBSRVNFUlZFRF9TMF9PRkZTRVQpICIoJDI5KSIgIlxuIgorICAgICJsdyAgICAkMTcsIiBTVFJJ
TkdJWkVfVkFMVUVfT0YoUFJFU0VSVkVEX1MxX09GRlNFVCkgIigkMjkpIiAiXG4iCisgICAgImx3
ICAgICQxOCwiIFNUUklOR0laRV9WQUxVRV9PRihQUkVTRVJWRURfUzJfT0ZGU0VUKSAiKCQyOSki
ICJcbiIKKyAgICAibHcgICAgJDMxLCIgU1RSSU5HSVpFX1ZBTFVFX09GKFBSRVNFUlZFRF9SRVRV
Uk5fQUREUkVTU19PRkZTRVQpICIoJDI5KSIgIlxuIgorICAgICJqciAgICAkMzEiICJcbiIKKyAg
ICAiYWRkaXUgJDI5LCQyOSwiIFNUUklOR0laRV9WQUxVRV9PRihTVEFDS19MRU5HVEgpICJcbiIK
KyIuc2V0IHJlb3JkZXIiICJcbiIKKyIuc2V0IG1hY3JvIiAiXG4iCisiLmVuZCAiIFNZTUJPTF9T
VFJJTkcoY3RpVk1UaHJvd1RyYW1wb2xpbmUpICJcbiIKKyk7CisKK2FzbSB2b2xhdGlsZSgKKyIu
dGV4dCIgIlxuIgorIi5hbGlnbiAyIiAiXG4iCisiLnNldCBub3Jlb3JkZXIiICJcbiIKKyIuc2V0
IG5vbWFjcm8iICJcbiIKKyIuc2V0IG5vbWlwczE2IiAiXG4iCisiLmdsb2JsICIgU1lNQk9MX1NU
UklORyhjdGlPcFRocm93Tm90Q2F1Z2h0KSAiXG4iCisiLmVudCAiIFNZTUJPTF9TVFJJTkcoY3Rp
T3BUaHJvd05vdENhdWdodCkgIlxuIgorU1lNQk9MX1NUUklORyhjdGlPcFRocm93Tm90Q2F1Z2h0
KSAiOiIgIlxuIgorICAgICJsdyAgICAkMTYsIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJFU0VSVkVE
X1MwX09GRlNFVCkgIigkMjkpIiAiXG4iCisgICAgImx3ICAgICQxNywiIFNUUklOR0laRV9WQUxV
RV9PRihQUkVTRVJWRURfUzFfT0ZGU0VUKSAiKCQyOSkiICJcbiIKKyAgICAibHcgICAgJDE4LCIg
U1RSSU5HSVpFX1ZBTFVFX09GKFBSRVNFUlZFRF9TMl9PRkZTRVQpICIoJDI5KSIgIlxuIgorICAg
ICJsdyAgICAkMzEsIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJFU0VSVkVEX1JFVFVSTl9BRERSRVNT
X09GRlNFVCkgIigkMjkpIiAiXG4iCisgICAgImpyICAgICQzMSIgIlxuIgorICAgICJhZGRpdSAk
MjksJDI5LCIgU1RSSU5HSVpFX1ZBTFVFX09GKFNUQUNLX0xFTkdUSCkgIlxuIgorIi5zZXQgcmVv
cmRlciIgIlxuIgorIi5zZXQgbWFjcm8iICJcbiIKKyIuZW5kICIgU1lNQk9MX1NUUklORyhjdGlP
cFRocm93Tm90Q2F1Z2h0KSAiXG4iCispOworI2VuZGlmCisKICNpZiBDT01QSUxFUihHQ0MpICYm
IENQVShBUk1fVEhVTUIyKQogCiBhc20gdm9sYXRpbGUoCkBAIC04MDIsMTcgKzgzMiwxNyBAQCBK
SVRUaHVua3M6OkpJVFRodW5rcyhKU0dsb2JhbERhdGEqIGdsb2JhCiAKIAogI2VsaWYgQ1BVKE1J
UFMpCi0gICAgQVNTRVJUKE9CSkVDVF9PRkZTRVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwgcHJl
c2VydmVkR1ApID09IDI4KTsKLSAgICBBU1NFUlQoT0JKRUNUX09GRlNFVE9GKHN0cnVjdCBKSVRT
dGFja0ZyYW1lLCBwcmVzZXJ2ZWRTMCkgPT0gMzIpOwotICAgIEFTU0VSVChPQkpFQ1RfT0ZGU0VU
T0Yoc3RydWN0IEpJVFN0YWNrRnJhbWUsIHByZXNlcnZlZFMxKSA9PSAzNik7Ci0gICAgQVNTRVJU
KE9CSkVDVF9PRkZTRVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwgcHJlc2VydmVkUzIpID09IDQw
KTsKLSAgICBBU1NFUlQoT0JKRUNUX09GRlNFVE9GKHN0cnVjdCBKSVRTdGFja0ZyYW1lLCBwcmVz
ZXJ2ZWRSZXR1cm5BZGRyZXNzKSA9PSA0NCk7Ci0gICAgQVNTRVJUKE9CSkVDVF9PRkZTRVRPRihz
dHJ1Y3QgSklUU3RhY2tGcmFtZSwgdGh1bmtSZXR1cm5BZGRyZXNzKSA9PSA0OCk7Ci0gICAgQVNT
RVJUKE9CSkVDVF9PRkZTRVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwgcmVnaXN0ZXJGaWxlKSA9
PSA1Mik7Ci0gICAgQVNTRVJUKE9CSkVDVF9PRkZTRVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwg
Y2FsbEZyYW1lKSA9PSA1Nik7Ci0gICAgQVNTRVJUKE9CSkVDVF9PRkZTRVRPRihzdHJ1Y3QgSklU
U3RhY2tGcmFtZSwgZXhjZXB0aW9uKSA9PSA2MCk7Ci0gICAgQVNTRVJUKE9CSkVDVF9PRkZTRVRP
RihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwgZW5hYmxlZFByb2ZpbGVyUmVmZXJlbmNlKSA9PSA2NCk7
Ci0gICAgQVNTRVJUKE9CSkVDVF9PRkZTRVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwgZ2xvYmFs
RGF0YSkgPT0gNjgpOworICAgIEFTU0VSVChPQkpFQ1RfT0ZGU0VUT0Yoc3RydWN0IEpJVFN0YWNr
RnJhbWUsIHByZXNlcnZlZEdQKSA9PSBQUkVTRVJWRURfR1BfT0ZGU0VUKTsKKyAgICBBU1NFUlQo
T0JKRUNUX09GRlNFVE9GKHN0cnVjdCBKSVRTdGFja0ZyYW1lLCBwcmVzZXJ2ZWRTMCkgPT0gUFJF
U0VSVkVEX1MwX09GRlNFVCk7CisgICAgQVNTRVJUKE9CSkVDVF9PRkZTRVRPRihzdHJ1Y3QgSklU
U3RhY2tGcmFtZSwgcHJlc2VydmVkUzEpID09IFBSRVNFUlZFRF9TMV9PRkZTRVQpOworICAgIEFT
U0VSVChPQkpFQ1RfT0ZGU0VUT0Yoc3RydWN0IEpJVFN0YWNrRnJhbWUsIHByZXNlcnZlZFMyKSA9
PSBQUkVTRVJWRURfUzJfT0ZGU0VUKTsKKyAgICBBU1NFUlQoT0JKRUNUX09GRlNFVE9GKHN0cnVj
dCBKSVRTdGFja0ZyYW1lLCBwcmVzZXJ2ZWRSZXR1cm5BZGRyZXNzKSA9PSBQUkVTRVJWRURfUkVU
VVJOX0FERFJFU1NfT0ZGU0VUKTsKKyAgICBBU1NFUlQoT0JKRUNUX09GRlNFVE9GKHN0cnVjdCBK
SVRTdGFja0ZyYW1lLCB0aHVua1JldHVybkFkZHJlc3MpID09IFRIVU5LX1JFVFVSTl9BRERSRVNT
X09GRlNFVCk7CisgICAgQVNTRVJUKE9CSkVDVF9PRkZTRVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFt
ZSwgcmVnaXN0ZXJGaWxlKSA9PSBSRUdJU1RFUl9GSUxFX09GRlNFVCk7CisgICAgQVNTRVJUKE9C
SkVDVF9PRkZTRVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwgY2FsbEZyYW1lKSA9PSBDQUxMRlJB
TUVfT0ZGU0VUKTsKKyAgICBBU1NFUlQoT0JKRUNUX09GRlNFVE9GKHN0cnVjdCBKSVRTdGFja0Zy
YW1lLCBleGNlcHRpb24pID09IEVYQ0VQVElPTl9PRkZTRVQpOworICAgIEFTU0VSVChPQkpFQ1Rf
T0ZGU0VUT0Yoc3RydWN0IEpJVFN0YWNrRnJhbWUsIGVuYWJsZWRQcm9maWxlclJlZmVyZW5jZSkg
PT0gRU5BQkxFX1BST0ZJTEVSX1JFRkVSRU5DRV9PRkZTRVQpOworICAgIEFTU0VSVChPQkpFQ1Rf
T0ZGU0VUT0Yoc3RydWN0IEpJVFN0YWNrRnJhbWUsIGdsb2JhbERhdGEpID09IEdMT0JBTF9EQVRB
X09GRlNFVCk7CiAKICNlbmRpZgogfQpAQCAtMTA1OCwxNCArMTA4OCwxNCBAQCBzdGF0aWMgTkVW
RVJfSU5MSU5FIHZvaWQgdGhyb3dTdGFja092ZXJmCiAgICAgICAgICIuZ2xvYmwgIiBTWU1CT0xf
U1RSSU5HKGN0aV8jI29wKSAiXG4iIFwKICAgICAgICAgIi5lbnQgIiBTWU1CT0xfU1RSSU5HKGN0
aV8jI29wKSAiXG4iIFwKICAgICAgICAgU1lNQk9MX1NUUklORyhjdGlfIyNvcCkgIjoiICJcbiIg
XAotICAgICAgICAibHcgICAgJDI4LDI4KCQyOSkiICJcbiIgXAotICAgICAgICAic3cgICAgJDMx
LDQ4KCQyOSkiICJcbiIgXAorICAgICAgICAibHcgICAgJDI4LCIgU1RSSU5HSVpFX1ZBTFVFX09G
KFBSRVNFUlZFRF9HUF9PRkZTRVQpICIoJDI5KSIgIlxuIiBcCisgICAgICAgICJzdyAgICAkMzEs
IiBTVFJJTkdJWkVfVkFMVUVfT0YoVEhVTktfUkVUVVJOX0FERFJFU1NfT0ZGU0VUKSAiKCQyOSki
ICJcbiIgXAogICAgICAgICAiLnNldCBtYWNybyIgIlxuIiBcCiAgICAgICAgICJsYSAgICAkMjUs
IiBTWU1CT0xfU1RSSU5HKEpJVFN0dWJUaHVua2VkXyMjb3ApICJcbiIgXAogICAgICAgICAiLnNl
dCBub21hY3JvIiAiXG4iIFwKICAgICAgICAgImJhbCAiIFNZTUJPTF9TVFJJTkcoSklUU3R1YlRo
dW5rZWRfIyNvcCkgIlxuIiBcCiAgICAgICAgICJub3AiICJcbiIgXAotICAgICAgICAibHcgICAg
JDMxLDQ4KCQyOSkiICJcbiIgXAorICAgICAgICAibHcgICAgJDMxLCIgU1RSSU5HSVpFX1ZBTFVF
X09GKFRIVU5LX1JFVFVSTl9BRERSRVNTX09GRlNFVCkgIigkMjkpIiAiXG4iIFwKICAgICAgICAg
ImpyICAgICQzMSIgIlxuIiBcCiAgICAgICAgICJub3AiICJcbiIgXAogICAgICAgICAiLnNldCBy
ZW9yZGVyIiAiXG4iIFwKQEAgLTEwODgsMTAgKzExMTgsMTAgQEAgc3RhdGljIE5FVkVSX0lOTElO
RSB2b2lkIHRocm93U3RhY2tPdmVyZgogICAgICAgICAiLmdsb2JsICIgU1lNQk9MX1NUUklORyhj
dGlfIyNvcCkgIlxuIiBcCiAgICAgICAgICIuZW50ICIgU1lNQk9MX1NUUklORyhjdGlfIyNvcCkg
IlxuIiBcCiAgICAgICAgIFNZTUJPTF9TVFJJTkcoY3RpXyMjb3ApICI6IiAiXG4iIFwKLSAgICAg
ICAgInN3ICAgICQzMSw0OCgkMjkpIiAiXG4iIFwKKyAgICAgICAgInN3ICAgICQzMSwiIFNUUklO
R0laRV9WQUxVRV9PRihUSFVOS19SRVRVUk5fQUREUkVTU19PRkZTRVQpICIoJDI5KSIgIlxuIiBc
CiAgICAgICAgICJqYWwgIiBTWU1CT0xfU1RSSU5HKEpJVFN0dWJUaHVua2VkXyMjb3ApICJcbiIg
XAogICAgICAgICAibm9wIiAiXG4iIFwKLSAgICAgICAgImx3ICAgICQzMSw0OCgkMjkpIiAiXG4i
IFwKKyAgICAgICAgImx3ICAgICQzMSwiIFNUUklOR0laRV9WQUxVRV9PRihUSFVOS19SRVRVUk5f
QUREUkVTU19PRkZTRVQpICIoJDI5KSIgIlxuIiBcCiAgICAgICAgICJqciAgICAkMzEiICJcbiIg
XAogICAgICAgICAibm9wIiAiXG4iIFwKICAgICAgICAgIi5zZXQgcmVvcmRlciIgIlxuIiBcCklu
ZGV4OiBKYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnMuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2Ny
aXB0Q29yZS9qaXQvSklUU3R1YnMuaAkocmV2aXNpb24gNjUzMzcpCisrKyBKYXZhU2NyaXB0Q29y
ZS9qaXQvSklUU3R1YnMuaAkod29ya2luZyBjb3B5KQpAQCAtMjA1LDggKzIwNSwxNSBAQCBuYW1l
c3BhY2UgSlNDIHsKICNlbGlmIENQVShNSVBTKQogICAgIHN0cnVjdCBKSVRTdGFja0ZyYW1lIHsK
ICAgICAgICAgdm9pZCogcmVzZXJ2ZWQ7IC8vIFVudXNlZAorI2lmIFVTRShKU1ZBTFVFMzJfNjQp
CisgICAgICAgIHZvaWQqIHBhZGRpbmcxOyAvLyBNYWludGFpbiA4LWJ5dGUgc3RhY2sgYWxpZ25t
ZW50LgorI2VuZGlmCiAgICAgICAgIEpJVFN0dWJBcmcgYXJnc1s2XTsKIAorI2lmIFVTRShKU1ZB
TFVFMzJfNjQpCisgICAgICAgIHZvaWQqIHBhZGRpbmcyOyAvLyBNYWludGFpbiA4LWJ5dGUgc3Rh
Y2sgYWxpZ25tZW50LgorI2VuZGlmCisKICAgICAgICAgdm9pZCogcHJlc2VydmVkR1A7IC8vIHN0
b3JlIEdQIHdoZW4gdXNpbmcgUElDIGNvZGUKICAgICAgICAgdm9pZCogcHJlc2VydmVkUzA7CiAg
ICAgICAgIHZvaWQqIHByZXNlcnZlZFMxOwpJbmRleDogSmF2YVNjcmlwdENvcmUvd3RmL1BsYXRm
b3JtLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gSmF2YVNjcmlwdENvcmUvd3RmL1BsYXRmb3JtLmgJKHJldmlz
aW9uIDY1MzM3KQorKysgSmF2YVNjcmlwdENvcmUvd3RmL1BsYXRmb3JtLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTE0Miw2ICsxNDIsNyBAQAogI2RlZmluZSBXVEZfTUlQU19BUkNIX1JFViBfX21pcHNf
aXNhX3JldgogI2RlZmluZSBXVEZfTUlQU19JU0FfUkVWKHYpIChkZWZpbmVkIFdURl9NSVBTX0FS
Q0hfUkVWICYmIFdURl9NSVBTX0FSQ0hfUkVWID09IHYpCiAjZGVmaW5lIFdURl9NSVBTX0RPVUJM
RV9GTE9BVCAoZGVmaW5lZCBfX21pcHNfaGFyZF9mbG9hdCAmJiAhZGVmaW5lZCBfX21pcHNfc2lu
Z2xlX2Zsb2F0KQorI2RlZmluZSBXVEZfTUlQU19GUDY0IChkZWZpbmVkIF9fbWlwc19mcHIgJiYg
X19taXBzX2ZwciA9PSA2NCkKIC8qIE1JUFMgcmVxdWlyZXMgYWxsb2NhdG9ycyB0byB1c2UgYWxp
Z25lZCBtZW1vcnkgKi8KICNkZWZpbmUgV1RGX1VTRV9BUkVOQV9BTExPQ19BTElHTk1FTlRfSU5U
RUdFUiAxCiAjZW5kaWYgLyogTUlQUyAqLwpAQCAtOTEyLDcgKzkxMyw3IEBACiAgICAgfHwgQ1BV
KFNQQVJDNjQpIFwKICAgICB8fCBDUFUoUFBDNjQpCiAjZGVmaW5lIFdURl9VU0VfSlNWQUxVRTY0
IDEKLSNlbGlmIENQVShNSVBTKSB8fCAoQ1BVKEFSTV9UUkFESVRJT05BTCkgJiYgQ09NUElMRVIo
TVNWQykpCisjZWxpZiAoQ1BVKEFSTV9UUkFESVRJT05BTCkgJiYgQ09NUElMRVIoTVNWQykpCiAj
ZGVmaW5lIFdURl9VU0VfSlNWQUxVRTMyIDEKICNlbGlmIE9TKFdJTkRPV1MpICYmIENPTVBJTEVS
KE1JTkdXKQogLyogVXNpbmcgSlNWQUxVRTMyXzY0IGNhdXNlcyBwYWRkaW5nL2FsaWduZW1lbnQg
aXNzdWVzIGZvciBKSVRTdHViQXJnCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>64788</attachid>
            <date>2010-08-18 16:37:24 -0700</date>
            <delta_ts>2010-09-06 13:29:26 -0700</delta_ts>
            <desc>Update padding in JITStackFrame</desc>
            <filename>mips20100818.diff</filename>
            <type>text/plain</type>
            <size>29931</size>
            <attacher name="Chao-ying Fu">fu</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDY1NjQwKQorKysgSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzcgQEAKKzIwMTAtMDgtMTggIENoYW8teWlu
ZyBGdSAgPGZ1QG1pcHMuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFN1cHBvcnQgSlNWQUxVRTMyXzY0IG9uIE1JUFMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQzOTk5CisKKyAgICAgICAgQWRkIG1p
c3NpbmcgZnVuY3Rpb25zIHRvIHN1cHBvcnQgSlNWQUxVRTMyXzY0IG9uIE1JUFMuCisgICAgICAg
IFJlbW92ZSBKU1ZBTFVFMzIgYXMgdGhlIGRlZmF1bHQgZm9yIE1JUFMuCisKKyAgICAgICAgKiBh
c3NlbWJsZXIvTUlQU0Fzc2VtYmxlci5oOgorICAgICAgICAoSlNDOjpNSVBTQXNzZW1ibGVyOjpk
aXZkKToKKyAgICAgICAgKEpTQzo6TUlQU0Fzc2VtYmxlcjo6bXRoYzEpOgorICAgICAgICAoSlND
OjpNSVBTQXNzZW1ibGVyOjpjdnR3ZCk6CisgICAgICAgICogYXNzZW1ibGVyL01hY3JvQXNzZW1i
bGVyTUlQUy5oOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlck1JUFM6Om5lZzMyKToKKyAg
ICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJNSVBTOjpicmFuY2hPcjMyKToKKyAgICAgICAgKEpT
Qzo6TWFjcm9Bc3NlbWJsZXJNSVBTOjpzZXQ4KToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJs
ZXJNSVBTOjpsb2FkRG91YmxlKToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJNSVBTOjpk
aXZEb3VibGUpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlck1JUFM6OmNvbnZlcnRJbnQz
MlRvRG91YmxlKToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJNSVBTOjpicmFuY2hEb3Vi
bGUpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlck1JUFM6OmJyYW5jaENvbnZlcnREb3Vi
bGVUb0ludDMyKToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJNSVBTOjp6ZXJvRG91Ymxl
KToKKyAgICAgICAgKiBqaXQvSklULmg6CisgICAgICAgICogaml0L0pJVE9wY29kZXMzMl82NC5j
cHA6CisgICAgICAgIChKU0M6OkpJVDo6cHJpdmF0ZUNvbXBpbGVDVElOYXRpdmVDYWxsKToKKyAg
ICAgICAgKiBqaXQvSklUUHJvcGVydHlBY2Nlc3MzMl82NC5jcHA6CisgICAgICAgIChKU0M6OkpJ
VDo6cHJpdmF0ZUNvbXBpbGVQdXRCeUlkVHJhbnNpdGlvbik6CisgICAgICAgICogaml0L0pJVFN0
dWJzLmNwcDoKKyAgICAgICAgKEpTQzo6SklUVGh1bmtzOjpKSVRUaHVua3MpOgorICAgICAgICAq
IGppdC9KSVRTdHVicy5oOgorICAgICAgICAqIHd0Zi9QbGF0Zm9ybS5oOgorCiAyMDEwLTA4LTE4
ICBHYWJvciBMb2tpICA8bG9raUB3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEdh
dmluIEJhcnJhY2xvdWdoLgpJbmRleDogSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01JUFNBc3Nl
bWJsZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTUlQU0Fzc2Vt
Ymxlci5oCShyZXZpc2lvbiA2NTYyNCkKKysrIEphdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NSVBT
QXNzZW1ibGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTUyNCw2ICs1MjQsMTIgQEAgcHVibGljOgog
ICAgICAgICAgICAgICAgICB8IChmdCA8PCBPUF9TSF9GVCkpOwogICAgIH0KIAorICAgIHZvaWQg
ZGl2ZChGUFJlZ2lzdGVySUQgZmQsIEZQUmVnaXN0ZXJJRCBmcywgRlBSZWdpc3RlcklEIGZ0KQor
ICAgIHsKKyAgICAgICAgZW1pdEluc3QoMHg0NjIwMDAwMyB8IChmZCA8PCBPUF9TSF9GRCkgfCAo
ZnMgPDwgT1BfU0hfRlMpCisgICAgICAgICAgICAgICAgIHwgKGZ0IDw8IE9QX1NIX0ZUKSk7Cisg
ICAgfQorCiAgICAgdm9pZCBsd2MxKEZQUmVnaXN0ZXJJRCBmdCwgUmVnaXN0ZXJJRCBycywgaW50
IG9mZnNldCkKICAgICB7CiAgICAgICAgIGVtaXRJbnN0KDB4YzQwMDAwMDAgfCAoZnQgPDwgT1Bf
U0hfRlQpIHwgKHJzIDw8IE9QX1NIX1JTKQpAQCAtNTU1LDYgKzU2MSwxMiBAQCBwdWJsaWM6CiAg
ICAgICAgIGNvcERlbGF5Tm9wKCk7CiAgICAgfQogCisgICAgdm9pZCBtdGhjMShSZWdpc3RlcklE
IHJ0LCBGUFJlZ2lzdGVySUQgZnMpCisgICAgeworICAgICAgICBlbWl0SW5zdCgweDQ0ZTAwMDAw
IHwgKGZzIDw8IE9QX1NIX0ZTKSB8IChydCA8PCBPUF9TSF9SVCkpOworICAgICAgICBjb3BEZWxh
eU5vcCgpOworICAgIH0KKwogICAgIHZvaWQgbWZjMShSZWdpc3RlcklEIHJ0LCBGUFJlZ2lzdGVy
SUQgZnMpCiAgICAgewogICAgICAgICBlbWl0SW5zdCgweDQ0MDAwMDAwIHwgKGZzIDw8IE9QX1NI
X0ZTKSB8IChydCA8PCBPUF9TSF9SVCkpOwpAQCAtNTc2LDYgKzU4OCwxMSBAQCBwdWJsaWM6CiAg
ICAgICAgIGVtaXRJbnN0KDB4NDY4MDAwMjEgfCAoZmQgPDwgT1BfU0hfRkQpIHwgKGZzIDw8IE9Q
X1NIX0ZTKSk7CiAgICAgfQogCisgICAgdm9pZCBjdnR3ZChGUFJlZ2lzdGVySUQgZmQsIEZQUmVn
aXN0ZXJJRCBmcykKKyAgICB7CisgICAgICAgIGVtaXRJbnN0KDB4NDYyMDAwMjQgfCAoZmQgPDwg
T1BfU0hfRkQpIHwgKGZzIDw8IE9QX1NIX0ZTKSk7CisgICAgfQorCiAgICAgdm9pZCBjZXFkKEZQ
UmVnaXN0ZXJJRCBmcywgRlBSZWdpc3RlcklEIGZ0KQogICAgIHsKICAgICAgICAgZW1pdEluc3Qo
MHg0NjIwMDAzMiB8IChmcyA8PCBPUF9TSF9GUykgfCAoZnQgPDwgT1BfU0hfRlQpKTsKSW5kZXg6
IEphdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlck1JUFMuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBKYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJNSVBTLmgJKHJldmlz
aW9uIDY1NjI0KQorKysgSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyTUlQ
Uy5oCSh3b3JraW5nIGNvcHkpCkBAIC0yODEsNiArMjgxLDExIEBAIHB1YmxpYzoKICAgICAgICAg
fQogICAgIH0KIAorICAgIHZvaWQgbmVnMzIoUmVnaXN0ZXJJRCBzcmNEZXN0KQorICAgIHsKKyAg
ICAgICAgbV9hc3NlbWJsZXIuc3VidShzcmNEZXN0LCBNSVBTUmVnaXN0ZXJzOjp6ZXJvLCBzcmNE
ZXN0KTsKKyAgICB9CisKICAgICB2b2lkIG5vdDMyKFJlZ2lzdGVySUQgc3JjRGVzdCkKICAgICB7
CiAgICAgICAgIG1fYXNzZW1ibGVyLm5vcihzcmNEZXN0LCBzcmNEZXN0LCBNSVBTUmVnaXN0ZXJz
Ojp6ZXJvKTsKQEAgLTYyMCwxMSArNjI1LDYgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gbGFi
ZWw7CiAgICAgfQogCi0gICAgTGFiZWwgbG9hZFB0cldpdGhBZGRyZXNzT2Zmc2V0UGF0Y2goQWRk
cmVzcyBhZGRyZXNzLCBSZWdpc3RlcklEIGRlc3QpCi0gICAgewotICAgICAgICByZXR1cm4gbG9h
ZFB0cldpdGhQYXRjaFRvTEVBKGFkZHJlc3MsIGRlc3QpOwotICAgIH0KLQogICAgIC8qIE5lZWQg
dG8gdXNlIHplcm8tZXh0ZW5lZCBsb2FkIGhhbGYtd29yZCBmb3IgbG9hZDE2LiAgKi8KICAgICB2
b2lkIGxvYWQxNihJbXBsaWNpdEFkZHJlc3MgYWRkcmVzcywgUmVnaXN0ZXJJRCBkZXN0KQogICAg
IHsKQEAgLTEzMDIsNiArMTMwMiwyNyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBicmFuY2hT
dWIzMihjb25kLCBpbW1UZW1wUmVnaXN0ZXIsIGRlc3QpOwogICAgIH0KIAorICAgIEp1bXAgYnJh
bmNoT3IzMihDb25kaXRpb24gY29uZCwgUmVnaXN0ZXJJRCBzcmMsIFJlZ2lzdGVySUQgZGVzdCkK
KyAgICB7CisgICAgICAgIEFTU0VSVCgoY29uZCA9PSBTaWduZWQpIHx8IChjb25kID09IFplcm8p
IHx8IChjb25kID09IE5vblplcm8pKTsKKyAgICAgICAgaWYgKGNvbmQgPT0gU2lnbmVkKSB7Cisg
ICAgICAgICAgICBvcjMyKHNyYywgZGVzdCk7CisgICAgICAgICAgICAvLyBDaGVjayBpZiBkZXN0
IGlzIG5lZ2F0aXZlLgorICAgICAgICAgICAgbV9hc3NlbWJsZXIuc2x0KGNtcFRlbXBSZWdpc3Rl
ciwgZGVzdCwgTUlQU1JlZ2lzdGVyczo6emVybyk7CisgICAgICAgICAgICByZXR1cm4gYnJhbmNo
Tm90RXF1YWwoY21wVGVtcFJlZ2lzdGVyLCBNSVBTUmVnaXN0ZXJzOjp6ZXJvKTsKKyAgICAgICAg
fQorICAgICAgICBpZiAoY29uZCA9PSBaZXJvKSB7CisgICAgICAgICAgICBvcjMyKHNyYywgZGVz
dCk7CisgICAgICAgICAgICByZXR1cm4gYnJhbmNoRXF1YWwoZGVzdCwgTUlQU1JlZ2lzdGVyczo6
emVybyk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGNvbmQgPT0gTm9uWmVybykgeworICAgICAg
ICAgICAgb3IzMihzcmMsIGRlc3QpOworICAgICAgICAgICAgcmV0dXJuIGJyYW5jaE5vdEVxdWFs
KGRlc3QsIE1JUFNSZWdpc3RlcnM6Onplcm8pOworICAgICAgICB9CisgICAgICAgIEFTU0VSVCgw
KTsKKyAgICAgICAgcmV0dXJuIEp1bXAoKTsKKyAgICB9CisKICAgICAvLyBNaXNjZWxsYW5lb3Vz
IG9wZXJhdGlvbnM6CiAKICAgICB2b2lkIGJyZWFrcG9pbnQoKQpAQCAtMTM1MSw2ICsxMzcyLDE3
IEBAIHB1YmxpYzoKICAgICAgICAgbV9hc3NlbWJsZXIubm9wKCk7CiAgICAgfQogCisgICAgdm9p
ZCBzZXQ4KENvbmRpdGlvbiBjb25kLCBSZWdpc3RlcklEIGxlZnQsIFJlZ2lzdGVySUQgcmlnaHQs
IFJlZ2lzdGVySUQgZGVzdCkKKyAgICB7CisgICAgICAgIHNldDMyKGNvbmQsIGxlZnQsIHJpZ2h0
LCBkZXN0KTsKKyAgICB9CisKKyAgICB2b2lkIHNldDgoQ29uZGl0aW9uIGNvbmQsIFJlZ2lzdGVy
SUQgbGVmdCwgSW1tMzIgcmlnaHQsIFJlZ2lzdGVySUQgZGVzdCkKKyAgICB7CisgICAgICAgIG1v
dmUocmlnaHQsIGltbVRlbXBSZWdpc3Rlcik7CisgICAgICAgIHNldDMyKGNvbmQsIGxlZnQsIGlt
bVRlbXBSZWdpc3RlciwgZGVzdCk7CisgICAgfQorCiAgICAgdm9pZCBzZXQzMihDb25kaXRpb24g
Y29uZCwgUmVnaXN0ZXJJRCBsZWZ0LCBSZWdpc3RlcklEIHJpZ2h0LCBSZWdpc3RlcklEIGRlc3Qp
CiAgICAgewogICAgICAgICBpZiAoY29uZCA9PSBFcXVhbCB8fCBjb25kID09IFplcm8pIHsKQEAg
LTE1NDYsNiArMTU3OCwyOCBAQCBwdWJsaWM6CiAjZW5kaWYKICAgICB9CiAKKyAgICB2b2lkIGxv
YWREb3VibGUoY29uc3Qgdm9pZCogYWRkcmVzcywgRlBSZWdpc3RlcklEIGRlc3QpCisgICAgewor
I2lmIFdURl9NSVBTX0lTQSgxKQorICAgICAgICAvKgorICAgICAgICAgICAgbGkgICAgICAgICAg
YWRkclRlbXAsIGFkZHJlc3MKKyAgICAgICAgICAgIGx3YzEgICAgICAgIGRlc3QsIDAoYWRkclRl
bXApCisgICAgICAgICAgICBsd2MxICAgICAgICBkZXN0KzEsIDQoYWRkclRlbXApCisgICAgICAg
ICAqLworICAgICAgICBtb3ZlKEltbVB0cihhZGRyZXNzKSwgYWRkclRlbXBSZWdpc3Rlcik7Cisg
ICAgICAgIG1fYXNzZW1ibGVyLmx3YzEoZGVzdCwgYWRkclRlbXBSZWdpc3RlciwgMCk7CisgICAg
ICAgIG1fYXNzZW1ibGVyLmx3YzEoRlBSZWdpc3RlcklEKGRlc3QgKyAxKSwgYWRkclRlbXBSZWdp
c3RlciwgNCk7CisjZWxzZQorICAgICAgICAvKgorICAgICAgICAgICAgbGkgICAgICAgICAgYWRk
clRlbXAsIGFkZHJlc3MKKyAgICAgICAgICAgIGxkYzEgICAgICAgIGRlc3QsIDAoYWRkclRlbXAp
CisgICAgICAgICovCisgICAgICAgIG1vdmUoSW1tUHRyKGFkZHJlc3MpLCBhZGRyVGVtcFJlZ2lz
dGVyKTsKKyAgICAgICAgbV9hc3NlbWJsZXIubGRjMShkZXN0LCBhZGRyVGVtcFJlZ2lzdGVyLCAw
KTsKKyNlbmRpZgorICAgIH0KKworCiAgICAgdm9pZCBzdG9yZURvdWJsZShGUFJlZ2lzdGVySUQg
c3JjLCBJbXBsaWNpdEFkZHJlc3MgYWRkcmVzcykKICAgICB7CiAjaWYgV1RGX01JUFNfSVNBKDEp
CkBAIC0xNjA5LDEyICsxNjYzLDMxIEBAIHB1YmxpYzoKICAgICAgICAgbV9hc3NlbWJsZXIubXVs
ZChkZXN0LCBkZXN0LCBmcFRlbXBSZWdpc3Rlcik7CiAgICAgfQogCisgICAgdm9pZCBkaXZEb3Vi
bGUoRlBSZWdpc3RlcklEIHNyYywgRlBSZWdpc3RlcklEIGRlc3QpCisgICAgeworICAgICAgICBt
X2Fzc2VtYmxlci5kaXZkKGRlc3QsIGRlc3QsIHNyYyk7CisgICAgfQorCiAgICAgdm9pZCBjb252
ZXJ0SW50MzJUb0RvdWJsZShSZWdpc3RlcklEIHNyYywgRlBSZWdpc3RlcklEIGRlc3QpCiAgICAg
ewogICAgICAgICBtX2Fzc2VtYmxlci5tdGMxKHNyYywgZnBUZW1wUmVnaXN0ZXIpOwogICAgICAg
ICBtX2Fzc2VtYmxlci5jdnRkdyhkZXN0LCBmcFRlbXBSZWdpc3Rlcik7CiAgICAgfQogCisgICAg
dm9pZCBjb252ZXJ0SW50MzJUb0RvdWJsZShBZGRyZXNzIHNyYywgRlBSZWdpc3RlcklEIGRlc3Qp
CisgICAgeworICAgICAgICBsb2FkMzIoc3JjLCBkYXRhVGVtcFJlZ2lzdGVyKTsKKyAgICAgICAg
bV9hc3NlbWJsZXIubXRjMShkYXRhVGVtcFJlZ2lzdGVyLCBmcFRlbXBSZWdpc3Rlcik7CisgICAg
ICAgIG1fYXNzZW1ibGVyLmN2dGR3KGRlc3QsIGZwVGVtcFJlZ2lzdGVyKTsKKyAgICB9CisKKyAg
ICB2b2lkIGNvbnZlcnRJbnQzMlRvRG91YmxlKEFic29sdXRlQWRkcmVzcyBzcmMsIEZQUmVnaXN0
ZXJJRCBkZXN0KQorICAgIHsKKyAgICAgICAgbG9hZDMyKHNyYy5tX3B0ciwgZGF0YVRlbXBSZWdp
c3Rlcik7CisgICAgICAgIG1fYXNzZW1ibGVyLm10YzEoZGF0YVRlbXBSZWdpc3RlciwgZnBUZW1w
UmVnaXN0ZXIpOworICAgICAgICBtX2Fzc2VtYmxlci5jdnRkdyhkZXN0LCBmcFRlbXBSZWdpc3Rl
cik7CisgICAgfQorCiAgICAgdm9pZCBpbnNlcnRSZWxheGF0aW9uV29yZHMoKQogICAgIHsKICAg
ICAgICAgLyogV2UgbmVlZCBmb3VyIHdvcmRzIGZvciByZWxheGF0aW9uLiAqLwpAQCAtMTY2Nyw3
ICsxNzQwLDcgQEAgcHVibGljOgogICAgICAgICAgICAgcmV0dXJuIGJyYW5jaFRydWUoKTsKICAg
ICAgICAgfQogICAgICAgICBpZiAoY29uZCA9PSBEb3VibGVOb3RFcXVhbCkgewotICAgICAgICAg
ICAgbV9hc3NlbWJsZXIuY2VxZChsZWZ0LCByaWdodCk7CisgICAgICAgICAgICBtX2Fzc2VtYmxl
ci5jdWVxZChsZWZ0LCByaWdodCk7CiAgICAgICAgICAgICByZXR1cm4gYnJhbmNoRmFsc2UoKTsg
Ly8gZmFsc2UKICAgICAgICAgfQogICAgICAgICBpZiAoY29uZCA9PSBEb3VibGVHcmVhdGVyVGhh
bikgewpAQCAtMTY5MCw2ICsxNzYzLDEwIEBAIHB1YmxpYzoKICAgICAgICAgICAgIG1fYXNzZW1i
bGVyLmN1ZXFkKGxlZnQsIHJpZ2h0KTsKICAgICAgICAgICAgIHJldHVybiBicmFuY2hUcnVlKCk7
CiAgICAgICAgIH0KKyAgICAgICAgaWYgKGNvbmQgPT0gRG91YmxlTm90RXF1YWxPclVub3JkZXJl
ZCkgeworICAgICAgICAgICAgbV9hc3NlbWJsZXIuY2VxZChsZWZ0LCByaWdodCk7CisgICAgICAg
ICAgICByZXR1cm4gYnJhbmNoRmFsc2UoKTsgLy8gZmFsc2UKKyAgICAgICAgfQogICAgICAgICBp
ZiAoY29uZCA9PSBEb3VibGVHcmVhdGVyVGhhbk9yVW5vcmRlcmVkKSB7CiAgICAgICAgICAgICBt
X2Fzc2VtYmxlci5jb2xlZChsZWZ0LCByaWdodCk7CiAgICAgICAgICAgICByZXR1cm4gYnJhbmNo
RmFsc2UoKTsgLy8gZmFsc2UKQEAgLTE3MjIsNiArMTc5OSwzNCBAQCBwdWJsaWM6CiAgICAgICAg
IHJldHVybiBicmFuY2gzMihFcXVhbCwgZGVzdCwgSW1tMzIoMHg3ZmZmZmZmZikpOwogICAgIH0K
IAorICAgIC8vIENvbnZlcnQgJ3NyYycgdG8gYW4gaW50ZWdlciwgYW5kIHBsYWNlcyB0aGUgcmVz
dWx0aW5nICdkZXN0Jy4KKyAgICAvLyBJZiB0aGUgcmVzdWx0IGlzIG5vdCByZXByZXNlbnRhYmxl
IGFzIGEgMzIgYml0IHZhbHVlLCBicmFuY2guCisgICAgLy8gTWF5IGFsc28gYnJhbmNoIGZvciBz
b21lIHZhbHVlcyB0aGF0IGFyZSByZXByZXNlbnRhYmxlIGluIDMyIGJpdHMKKyAgICAvLyAoc3Bl
Y2lmaWNhbGx5LCBpbiB0aGlzIGNhc2UsIDApLgorICAgIHZvaWQgYnJhbmNoQ29udmVydERvdWJs
ZVRvSW50MzIoRlBSZWdpc3RlcklEIHNyYywgUmVnaXN0ZXJJRCBkZXN0LCBKdW1wTGlzdCYgZmFp
bHVyZUNhc2VzLCBGUFJlZ2lzdGVySUQgZnBUZW1wKQorICAgIHsKKyAgICAgICAgbV9hc3NlbWJs
ZXIuY3Z0d2QoZnBUZW1wUmVnaXN0ZXIsIHNyYyk7CisgICAgICAgIG1fYXNzZW1ibGVyLm1mYzEo
ZGVzdCwgZnBUZW1wUmVnaXN0ZXIpOworCisgICAgICAgIC8vIElmIHRoZSByZXN1bHQgaXMgemVy
bywgaXQgbWlnaHQgaGF2ZSBiZWVuIC0wLjAsIGFuZCB0aGUgZG91YmxlIGNvbXBhcmlzb24gd29u
J3QgY2F0Y2ggdGhpcyEKKyAgICAgICAgZmFpbHVyZUNhc2VzLmFwcGVuZChicmFuY2gzMihFcXVh
bCwgZGVzdCwgTUlQU1JlZ2lzdGVyczo6emVybykpOworCisgICAgICAgIC8vIENvbnZlcnQgdGhl
IGludGVnZXIgcmVzdWx0IGJhY2sgdG8gZmxvYXQgJiBjb21wYXJlIHRvIHRoZSBvcmlnaW5hbCB2
YWx1ZSAtIGlmIG5vdCBlcXVhbCBvciB1bm9yZGVyZWQgKE5hTikgdGhlbiBqdW1wLgorICAgICAg
ICBjb252ZXJ0SW50MzJUb0RvdWJsZShkZXN0LCBmcFRlbXApOworICAgICAgICBmYWlsdXJlQ2Fz
ZXMuYXBwZW5kKGJyYW5jaERvdWJsZShEb3VibGVOb3RFcXVhbE9yVW5vcmRlcmVkLCBmcFRlbXAs
IHNyYykpOworICAgIH0KKworICAgIHZvaWQgemVyb0RvdWJsZShGUFJlZ2lzdGVySUQgZGVzdCkK
KyAgICB7CisjaWYgV1RGX01JUFNfSVNBX1JFVigyKSAmJiBXVEZfTUlQU19GUDY0CisgICAgICAg
IG1fYXNzZW1ibGVyLm10YzEoTUlQU1JlZ2lzdGVyczo6emVybywgZGVzdCk7CisgICAgICAgIG1f
YXNzZW1ibGVyLm10aGMxKE1JUFNSZWdpc3RlcnM6Onplcm8sIGRlc3QpOworI2Vsc2UKKyAgICAg
ICAgbV9hc3NlbWJsZXIubXRjMShNSVBTUmVnaXN0ZXJzOjp6ZXJvLCBkZXN0KTsKKyAgICAgICAg
bV9hc3NlbWJsZXIubXRjMShNSVBTUmVnaXN0ZXJzOjp6ZXJvLCBGUFJlZ2lzdGVySUQoZGVzdCAr
IDEpKTsKKyNlbmRpZgorICAgIH0KKwogcHJpdmF0ZToKICAgICAvLyBJZiBtX2ZpeGVkV2lkdGgg
aXMgdHJ1ZSwgd2Ugd2lsbCBnZW5lcmF0ZSBhIGZpeGVkIG51bWJlciBvZiBpbnN0cnVjdGlvbnMu
CiAgICAgLy8gT3RoZXJ3aXNlLCB3ZSBjYW4gZW1pdCBhbnkgbnVtYmVyIG9mIGluc3RydWN0aW9u
cy4KSW5kZXg6IEphdmFTY3JpcHRDb3JlL2ppdC9KSVQuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2Ny
aXB0Q29yZS9qaXQvSklULmgJKHJldmlzaW9uIDY1NjI0KQorKysgSmF2YVNjcmlwdENvcmUvaml0
L0pJVC5oCSh3b3JraW5nIGNvcHkpCkBAIC00NDgsNiArNDQ4LDUyIEBAIG5hbWVzcGFjZSBKU0Mg
ewogICAgICAgICAvLyBzZXF1ZW5jZVB1dEJ5SWQKICAgICAgICAgc3RhdGljIGNvbnN0IGludCBz
ZXF1ZW5jZVB1dEJ5SWRJbnN0cnVjdGlvblNwYWNlID0gMzY7CiAgICAgICAgIHN0YXRpYyBjb25z
dCBpbnQgc2VxdWVuY2VQdXRCeUlkQ29uc3RhbnRTcGFjZSA9IDQ7CisjZWxpZiBDUFUoTUlQUykK
KyNpZiBXVEZfTUlQU19JU0EoMSkKKyAgICAgICAgc3RhdGljIGNvbnN0IGludCBwYXRjaE9mZnNl
dFB1dEJ5SWRTdHJ1Y3R1cmUgPSAxNjsKKyAgICAgICAgc3RhdGljIGNvbnN0IGludCBwYXRjaE9m
ZnNldFB1dEJ5SWRFeHRlcm5hbExvYWQgPSA0ODsKKyAgICAgICAgc3RhdGljIGNvbnN0IGludCBw
YXRjaExlbmd0aFB1dEJ5SWRFeHRlcm5hbExvYWQgPSAyMDsKKyAgICAgICAgc3RhdGljIGNvbnN0
IGludCBwYXRjaE9mZnNldFB1dEJ5SWRQcm9wZXJ0eU1hcE9mZnNldDEgPSA2ODsKKyAgICAgICAg
c3RhdGljIGNvbnN0IGludCBwYXRjaE9mZnNldFB1dEJ5SWRQcm9wZXJ0eU1hcE9mZnNldDIgPSA4
NDsKKyAgICAgICAgc3RhdGljIGNvbnN0IGludCBwYXRjaE9mZnNldEdldEJ5SWRTdHJ1Y3R1cmUg
PSAxNjsKKyAgICAgICAgc3RhdGljIGNvbnN0IGludCBwYXRjaE9mZnNldEdldEJ5SWRCcmFuY2hU
b1Nsb3dDYXNlID0gNDg7CisgICAgICAgIHN0YXRpYyBjb25zdCBpbnQgcGF0Y2hPZmZzZXRHZXRC
eUlkRXh0ZXJuYWxMb2FkID0gNDg7CisgICAgICAgIHN0YXRpYyBjb25zdCBpbnQgcGF0Y2hMZW5n
dGhHZXRCeUlkRXh0ZXJuYWxMb2FkID0gMjA7CisgICAgICAgIHN0YXRpYyBjb25zdCBpbnQgcGF0
Y2hPZmZzZXRHZXRCeUlkUHJvcGVydHlNYXBPZmZzZXQxID0gNjg7CisgICAgICAgIHN0YXRpYyBj
b25zdCBpbnQgcGF0Y2hPZmZzZXRHZXRCeUlkUHJvcGVydHlNYXBPZmZzZXQyID0gODg7CisgICAg
ICAgIHN0YXRpYyBjb25zdCBpbnQgcGF0Y2hPZmZzZXRHZXRCeUlkUHV0UmVzdWx0ID0gMTA4Owor
I2lmIEVOQUJMRShPUENPREVfU0FNUExJTkcpCisgICAgICAgICNlcnJvciAiT1BDT0RFX1NBTVBM
SU5HIGlzIG5vdCB5ZXQgc3VwcG9ydGVkIgorI2Vsc2UKKyAgICAgICAgc3RhdGljIGNvbnN0IGlu
dCBwYXRjaE9mZnNldEdldEJ5SWRTbG93Q2FzZUNhbGwgPSA0NDsKKyNlbmRpZgorICAgICAgICBz
dGF0aWMgY29uc3QgaW50IHBhdGNoT2Zmc2V0T3BDYWxsQ29tcGFyZVRvSnVtcCA9IDMyOworICAg
ICAgICBzdGF0aWMgY29uc3QgaW50IHBhdGNoT2Zmc2V0TWV0aG9kQ2hlY2tQcm90b09iaiA9IDMy
OworICAgICAgICBzdGF0aWMgY29uc3QgaW50IHBhdGNoT2Zmc2V0TWV0aG9kQ2hlY2tQcm90b1N0
cnVjdCA9IDU2OworICAgICAgICBzdGF0aWMgY29uc3QgaW50IHBhdGNoT2Zmc2V0TWV0aG9kQ2hl
Y2tQdXRGdW5jdGlvbiA9IDg4OworI2Vsc2UgLy8gV1RGX01JUFNfSVNBKDEpCisgICAgICAgIHN0
YXRpYyBjb25zdCBpbnQgcGF0Y2hPZmZzZXRQdXRCeUlkU3RydWN0dXJlID0gMTI7CisgICAgICAg
IHN0YXRpYyBjb25zdCBpbnQgcGF0Y2hPZmZzZXRQdXRCeUlkRXh0ZXJuYWxMb2FkID0gNDQ7Cisg
ICAgICAgIHN0YXRpYyBjb25zdCBpbnQgcGF0Y2hMZW5ndGhQdXRCeUlkRXh0ZXJuYWxMb2FkID0g
MTY7CisgICAgICAgIHN0YXRpYyBjb25zdCBpbnQgcGF0Y2hPZmZzZXRQdXRCeUlkUHJvcGVydHlN
YXBPZmZzZXQxID0gNjA7CisgICAgICAgIHN0YXRpYyBjb25zdCBpbnQgcGF0Y2hPZmZzZXRQdXRC
eUlkUHJvcGVydHlNYXBPZmZzZXQyID0gNzY7CisgICAgICAgIHN0YXRpYyBjb25zdCBpbnQgcGF0
Y2hPZmZzZXRHZXRCeUlkU3RydWN0dXJlID0gMTI7CisgICAgICAgIHN0YXRpYyBjb25zdCBpbnQg
cGF0Y2hPZmZzZXRHZXRCeUlkQnJhbmNoVG9TbG93Q2FzZSA9IDQ0OworICAgICAgICBzdGF0aWMg
Y29uc3QgaW50IHBhdGNoT2Zmc2V0R2V0QnlJZEV4dGVybmFsTG9hZCA9IDQ0OworICAgICAgICBz
dGF0aWMgY29uc3QgaW50IHBhdGNoTGVuZ3RoR2V0QnlJZEV4dGVybmFsTG9hZCA9IDE2OworICAg
ICAgICBzdGF0aWMgY29uc3QgaW50IHBhdGNoT2Zmc2V0R2V0QnlJZFByb3BlcnR5TWFwT2Zmc2V0
MSA9IDYwOworICAgICAgICBzdGF0aWMgY29uc3QgaW50IHBhdGNoT2Zmc2V0R2V0QnlJZFByb3Bl
cnR5TWFwT2Zmc2V0MiA9IDc2OworICAgICAgICBzdGF0aWMgY29uc3QgaW50IHBhdGNoT2Zmc2V0
R2V0QnlJZFB1dFJlc3VsdCA9IDkyOworI2lmIEVOQUJMRShPUENPREVfU0FNUExJTkcpCisgICAg
ICAgICNlcnJvciAiT1BDT0RFX1NBTVBMSU5HIGlzIG5vdCB5ZXQgc3VwcG9ydGVkIgorI2Vsc2UK
KyAgICAgICAgc3RhdGljIGNvbnN0IGludCBwYXRjaE9mZnNldEdldEJ5SWRTbG93Q2FzZUNhbGwg
PSA0NDsKKyNlbmRpZgorICAgICAgICBzdGF0aWMgY29uc3QgaW50IHBhdGNoT2Zmc2V0T3BDYWxs
Q29tcGFyZVRvSnVtcCA9IDMyOworICAgICAgICBzdGF0aWMgY29uc3QgaW50IHBhdGNoT2Zmc2V0
TWV0aG9kQ2hlY2tQcm90b09iaiA9IDMyOworICAgICAgICBzdGF0aWMgY29uc3QgaW50IHBhdGNo
T2Zmc2V0TWV0aG9kQ2hlY2tQcm90b1N0cnVjdCA9IDUyOworICAgICAgICBzdGF0aWMgY29uc3Qg
aW50IHBhdGNoT2Zmc2V0TWV0aG9kQ2hlY2tQdXRGdW5jdGlvbiA9IDg0OworI2VuZGlmCiAjZWxz
ZQogI2Vycm9yICJKU1ZBTFVFMzJfNjQgbm90IHN1cHBvcnRlZCBvbiB0aGlzIHBsYXRmb3JtLiIK
ICNlbmRpZgpJbmRleDogSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMzMl82NC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMzMl82NC5jcHAJKHJldmlz
aW9uIDY1NjI0KQorKysgSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMzMl82NC5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTI1MCw2ICsyNTAsMzcgQEAgSklUOjpMYWJlbCBKSVQ6OnByaXZhdGVD
b21waWxlQ1RJTmF0aXZlQwogCiAgICAgcmVzdG9yZVJldHVybkFkZHJlc3NCZWZvcmVSZXR1cm4o
cmVnVDMpOwogCisjZWxpZiBDUFUoTUlQUykKKyAgICAvLyBMb2FkIGNhbGxlciBmcmFtZSdzIHNj
b3BlIGNoYWluIGludG8gdGhpcyBjYWxsZnJhbWUgc28gdGhhdCB3aGF0ZXZlciB3ZSBjYWxsIGNh
bgorICAgIC8vIGdldCB0byBpdHMgZ2xvYmFsIGRhdGEuCisgICAgZW1pdEdldEZyb21DYWxsRnJh
bWVIZWFkZXJQdHIoUmVnaXN0ZXJGaWxlOjpDYWxsZXJGcmFtZSwgcmVnVDApOworICAgIGVtaXRH
ZXRGcm9tQ2FsbEZyYW1lSGVhZGVyUHRyKFJlZ2lzdGVyRmlsZTo6U2NvcGVDaGFpbiwgcmVnVDEs
IHJlZ1QwKTsKKyAgICBlbWl0UHV0VG9DYWxsRnJhbWVIZWFkZXIocmVnVDEsIFJlZ2lzdGVyRmls
ZTo6U2NvcGVDaGFpbik7CisKKyAgICBwcmVzZXJ2ZVJldHVybkFkZHJlc3NBZnRlckNhbGwocmVn
VDMpOyAvLyBDYWxsZWUgcHJlc2VydmVkCisgICAgZW1pdFB1dFRvQ2FsbEZyYW1lSGVhZGVyKHJl
Z1QzLCBSZWdpc3RlckZpbGU6OlJldHVyblBDKTsKKworICAgIC8vIENhbGxpbmcgY29udmVudGlv
bjogICAgICBmKGEwLCBhMSwgYTIsIGEzKTsKKyAgICAvLyBIb3N0IGZ1bmN0aW9uIHNpZ25hdHVy
ZTogZihFeGVjU3RhdGUqKTsKKworICAgIC8vIEFsbG9jYXRlIHN0YWNrIHNwYWNlIGZvciAxNiBi
eXRlcyAoOC1ieXRlIGFsaWduZWQpCisgICAgLy8gMTYgYnl0ZXMgKHVudXNlZCkgZm9yIDQgYXJn
dW1lbnRzCisgICAgc3ViUHRyKEltbTMyKDE2KSwgc3RhY2tQb2ludGVyUmVnaXN0ZXIpOworCisg
ICAgLy8gU2V0dXAgYXJnMAorICAgIG1vdmUoY2FsbEZyYW1lUmVnaXN0ZXIsIE1JUFNSZWdpc3Rl
cnM6OmEwKTsKKworICAgIC8vIENhbGwKKyAgICBlbWl0R2V0RnJvbUNhbGxGcmFtZUhlYWRlclB0
cihSZWdpc3RlckZpbGU6OkNhbGxlZSwgTUlQU1JlZ2lzdGVyczo6YTIpOworICAgIGxvYWRQdHIo
QWRkcmVzcyhNSVBTUmVnaXN0ZXJzOjphMiwgT0JKRUNUX09GRlNFVE9GKEpTRnVuY3Rpb24sIG1f
ZXhlY3V0YWJsZSkpLCByZWdUMik7CisgICAgbW92ZShyZWdUMCwgY2FsbEZyYW1lUmVnaXN0ZXIp
OyAvLyBFYWdlcmx5IHJlc3RvcmUgY2FsbGVyIGZyYW1lIHJlZ2lzdGVyIHRvIGF2b2lkIGxvYWRp
bmcgZnJvbSBzdGFjay4KKyAgICBjYWxsKEFkZHJlc3MocmVnVDIsIGV4ZWN1dGFibGVPZmZzZXRU
b0Z1bmN0aW9uKSk7CisKKyAgICAvLyBSZXN0b3JlIHN0YWNrIHNwYWNlCisgICAgYWRkUHRyKElt
bTMyKDE2KSwgc3RhY2tQb2ludGVyUmVnaXN0ZXIpOworCisgICAgcmVzdG9yZVJldHVybkFkZHJl
c3NCZWZvcmVSZXR1cm4ocmVnVDMpOworCiAjZWxpZiBFTkFCTEUoSklUX09QVElNSVpFX05BVElW
RV9DQUxMKQogI2Vycm9yICJKSVRfT1BUSU1JWkVfTkFUSVZFX0NBTEwgbm90IHlldCBzdXBwb3J0
ZWQgb24gdGhpcyBwbGF0Zm9ybS4iCiAjZWxzZQpAQCAtMzMzLDYgKzM2NCwzOSBAQCBKSVQ6OkNv
ZGVQdHIgSklUOjpwcml2YXRlQ29tcGlsZUNUSU5hdGl2CiAKICAgICByZXN0b3JlUmV0dXJuQWRk
cmVzc0JlZm9yZVJldHVybihyZWdUMyk7CiAKKyNlbGlmIENQVShNSVBTKQorICAgIC8vIExvYWQg
Y2FsbGVyIGZyYW1lJ3Mgc2NvcGUgY2hhaW4gaW50byB0aGlzIGNhbGxmcmFtZSBzbyB0aGF0IHdo
YXRldmVyIHdlIGNhbGwgY2FuCisgICAgLy8gZ2V0IHRvIGl0cyBnbG9iYWwgZGF0YS4KKyAgICBl
bWl0R2V0RnJvbUNhbGxGcmFtZUhlYWRlclB0cihSZWdpc3RlckZpbGU6OkNhbGxlckZyYW1lLCBy
ZWdUMCk7CisgICAgZW1pdEdldEZyb21DYWxsRnJhbWVIZWFkZXJQdHIoUmVnaXN0ZXJGaWxlOjpT
Y29wZUNoYWluLCByZWdUMSwgcmVnVDApOworICAgIGVtaXRQdXRUb0NhbGxGcmFtZUhlYWRlcihy
ZWdUMSwgUmVnaXN0ZXJGaWxlOjpTY29wZUNoYWluKTsKKworICAgIHByZXNlcnZlUmV0dXJuQWRk
cmVzc0FmdGVyQ2FsbChyZWdUMyk7IC8vIENhbGxlZSBwcmVzZXJ2ZWQKKyAgICBlbWl0UHV0VG9D
YWxsRnJhbWVIZWFkZXIocmVnVDMsIFJlZ2lzdGVyRmlsZTo6UmV0dXJuUEMpOworCisgICAgLy8g
Q2FsbGluZyBjb252ZW50aW9uOiAgICAgIGYoYTAsIGExLCBhMiwgYTMpOworICAgIC8vIEhvc3Qg
ZnVuY3Rpb24gc2lnbmF0dXJlOiBmKEV4ZWNTdGF0ZSopOworCisgICAgLy8gQWxsb2NhdGUgc3Rh
Y2sgc3BhY2UgZm9yIDE2IGJ5dGVzICg4LWJ5dGUgYWxpZ25lZCkKKyAgICAvLyAxNiBieXRlcyAo
dW51c2VkKSBmb3IgNCBhcmd1bWVudHMKKyAgICBzdWJQdHIoSW1tMzIoMTYpLCBzdGFja1BvaW50
ZXJSZWdpc3Rlcik7CisKKyAgICAvLyBTZXR1cCBhcmcwCisgICAgbW92ZShjYWxsRnJhbWVSZWdp
c3RlciwgTUlQU1JlZ2lzdGVyczo6YTApOworCisgICAgLy8gQ2FsbAorICAgIGVtaXRHZXRGcm9t
Q2FsbEZyYW1lSGVhZGVyUHRyKFJlZ2lzdGVyRmlsZTo6Q2FsbGVlLCBNSVBTUmVnaXN0ZXJzOjph
Mik7CisgICAgbG9hZFB0cihBZGRyZXNzKE1JUFNSZWdpc3RlcnM6OmEyLCBPQkpFQ1RfT0ZGU0VU
T0YoSlNGdW5jdGlvbiwgbV9leGVjdXRhYmxlKSksIHJlZ1QyKTsKKyAgICBtb3ZlKHJlZ1QwLCBj
YWxsRnJhbWVSZWdpc3Rlcik7IC8vIEVhZ2VybHkgcmVzdG9yZSBjYWxsZXIgZnJhbWUgcmVnaXN0
ZXIgdG8gYXZvaWQgbG9hZGluZyBmcm9tIHN0YWNrLgorICAgIAorICAgIC8vIGNhbGwgdGhlIGZ1
bmN0aW9uCisgICAgbmF0aXZlQ2FsbCA9IGNhbGwoKTsKKworICAgIC8vIFJlc3RvcmUgc3RhY2sg
c3BhY2UKKyAgICBhZGRQdHIoSW1tMzIoMTYpLCBzdGFja1BvaW50ZXJSZWdpc3Rlcik7CisKKyAg
ICByZXN0b3JlUmV0dXJuQWRkcmVzc0JlZm9yZVJldHVybihyZWdUMyk7CisKICNlbGlmIEVOQUJM
RShKSVRfT1BUSU1JWkVfTkFUSVZFX0NBTEwpCiAjZXJyb3IgIkpJVF9PUFRJTUlaRV9OQVRJVkVf
Q0FMTCBub3QgeWV0IHN1cHBvcnRlZCBvbiB0aGlzIHBsYXRmb3JtLiIKICNlbHNlCkluZGV4OiBK
YXZhU2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MzMl82NC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gSmF2YVNjcmlwdENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNzMzJfNjQuY3BwCShyZXZpc2lv
biA2NTYyNCkKKysrIEphdmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2VzczMyXzY0LmNw
cAkod29ya2luZyBjb3B5KQpAQCAtNjQzLDggKzY0MywxNCBAQCBib29sIEpJVDo6cHJpdmF0ZUNv
bXBpbGVQdXRCeUlkVHJhbnNpdGlvCiAgICAgYWRkMzIoSW1tMzIoMSksIEFic29sdXRlQWRkcmVz
cyhuZXdTdHJ1Y3R1cmUtPmFkZHJlc3NPZkNvdW50KCkpKTsKICAgICBzdG9yZVB0cihJbW1QdHIo
bmV3U3RydWN0dXJlKSwgQWRkcmVzcyhyZWdUMCwgT0JKRUNUX09GRlNFVE9GKEpTQ2VsbCwgbV9z
dHJ1Y3R1cmUpKSk7CiAgICAgCisjaWYgQ1BVKE1JUFMpCisgICAgLy8gRm9yIE1JUFMsIHdlIGRv
bid0IGFkZCBzaXplb2Yodm9pZCopIHRvIHRoZSBzdGFjayBvZmZzZXQuCisgICAgbG9hZDMyKEFk
ZHJlc3Moc3RhY2tQb2ludGVyUmVnaXN0ZXIsIE9CSkVDVF9PRkZTRVRPRihKSVRTdGFja0ZyYW1l
LCBhcmdzWzJdKSArIE9CSkVDVF9PRkZTRVRPRihKU1ZhbHVlLCB1LmFzQml0cy5wYXlsb2FkKSks
IHJlZ1QzKTsKKyAgICBsb2FkMzIoQWRkcmVzcyhzdGFja1BvaW50ZXJSZWdpc3RlciwgT0JKRUNU
X09GRlNFVE9GKEpJVFN0YWNrRnJhbWUsIGFyZ3NbMl0pICsgT0JKRUNUX09GRlNFVE9GKEpTVmFs
dWUsIHUuYXNCaXRzLnRhZykpLCByZWdUMik7CisjZWxzZQogICAgIGxvYWQzMihBZGRyZXNzKHN0
YWNrUG9pbnRlclJlZ2lzdGVyLCBPQkpFQ1RfT0ZGU0VUT0YoSklUU3RhY2tGcmFtZSwgYXJnc1sy
XSkgKyBzaXplb2Yodm9pZCopICsgT0JKRUNUX09GRlNFVE9GKEpTVmFsdWUsIHUuYXNCaXRzLnBh
eWxvYWQpKSwgcmVnVDMpOwogICAgIGxvYWQzMihBZGRyZXNzKHN0YWNrUG9pbnRlclJlZ2lzdGVy
LCBPQkpFQ1RfT0ZGU0VUT0YoSklUU3RhY2tGcmFtZSwgYXJnc1syXSkgKyBzaXplb2Yodm9pZCop
ICsgT0JKRUNUX09GRlNFVE9GKEpTVmFsdWUsIHUuYXNCaXRzLnRhZykpLCByZWdUMik7CisjZW5k
aWYKICAgICAKICAgICAvLyBXcml0ZSB0aGUgdmFsdWUKICAgICBjb21waWxlUHV0RGlyZWN0T2Zm
c2V0KHJlZ1QwLCByZWdUMiwgcmVnVDMsIG5ld1N0cnVjdHVyZSwgY2FjaGVkT2Zmc2V0KTsKSW5k
ZXg6IEphdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVicy5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSmF2YVNj
cmlwdENvcmUvaml0L0pJVFN0dWJzLmNwcAkocmV2aXNpb24gNjU2MjQpCisrKyBKYXZhU2NyaXB0
Q29yZS9qaXQvSklUU3R1YnMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMTEsNiArMzExLDIxIEBA
IGV4dGVybiAiQyIgewogI2RlZmluZSBQUkVTRVJWRURSNF9PRkZTRVQgICAgICAgICAgNjgKIC8v
IFNlZSBERUZJTkVfU1RVQl9GVU5DVElPTiBmb3IgbW9yZSBpbmZvcm1hdGlvbi4KIAorI2VsaWYg
Q1BVKE1JUFMpCisKKyNkZWZpbmUgUFJFU0VSVkVEX0dQX09GRlNFVCAgICAgICAgIDYwCisjZGVm
aW5lIFBSRVNFUlZFRF9TMF9PRkZTRVQgICAgICAgICA2NAorI2RlZmluZSBQUkVTRVJWRURfUzFf
T0ZGU0VUICAgICAgICAgNjgKKyNkZWZpbmUgUFJFU0VSVkVEX1MyX09GRlNFVCAgICAgICAgIDcy
CisjZGVmaW5lIFBSRVNFUlZFRF9SRVRVUk5fQUREUkVTU19PRkZTRVQgNzYKKyNkZWZpbmUgVEhV
TktfUkVUVVJOX0FERFJFU1NfT0ZGU0VUIDgwCisjZGVmaW5lIFJFR0lTVEVSX0ZJTEVfT0ZGU0VU
ICAgICAgICA4NAorI2RlZmluZSBDQUxMRlJBTUVfT0ZGU0VUICAgICAgICAgICAgODgKKyNkZWZp
bmUgRVhDRVBUSU9OX09GRlNFVCAgICAgICAgICAgIDkyCisjZGVmaW5lIEVOQUJMRV9QUk9GSUxF
Ul9SRUZFUkVOQ0VfT0ZGU0VUIDk2CisjZGVmaW5lIEdMT0JBTF9EQVRBX09GRlNFVCAgICAgICAg
IDEwMAorI2RlZmluZSBTVEFDS19MRU5HVEggICAgICAgICAgICAgICAxMDQKKwogI2Vsc2UKICAg
ICAjZXJyb3IgIkpJVCBub3Qgc3VwcG9ydGVkIG9uIHRoaXMgcGxhdGZvcm0uIgogI2VuZGlmCkBA
IC00NjUsOTUgKzQ4MCwxOCBAQCBTWU1CT0xfU1RSSU5HKGN0aU9wVGhyb3dOb3RDYXVnaHQpICI6
IiAiCiAKICNlbGlmIENQVShNSVBTKQogCi1hc20gdm9sYXRpbGUoCi0iLnRleHQiICJcbiIKLSIu
YWxpZ24gMiIgIlxuIgotIi5zZXQgbm9yZW9yZGVyIiAiXG4iCi0iLnNldCBub21hY3JvIiAiXG4i
Ci0iLnNldCBub21pcHMxNiIgIlxuIgotIi5nbG9ibCAiIFNZTUJPTF9TVFJJTkcoY3RpVHJhbXBv
bGluZSkgIlxuIgotIi5lbnQgIiBTWU1CT0xfU1RSSU5HKGN0aVRyYW1wb2xpbmUpICJcbiIKLVNZ
TUJPTF9TVFJJTkcoY3RpVHJhbXBvbGluZSkgIjoiICJcbiIKLSAgICAiYWRkaXUgJDI5LCQyOSwt
NzIiICJcbiIKLSAgICAic3cgICAgJDMxLDQ0KCQyOSkiICJcbiIKLSAgICAic3cgICAgJDE4LDQw
KCQyOSkiICJcbiIKLSAgICAic3cgICAgJDE3LDM2KCQyOSkiICJcbiIKLSAgICAic3cgICAgJDE2
LDMyKCQyOSkiICJcbiIKLSNpZiBXVEZfTUlQU19QSUMKLSAgICAic3cgICAgJDI4LDI4KCQyOSki
ICJcbiIKLSNlbmRpZgotICAgICJtb3ZlICAkMTYsJDYgICAgICAgIyBzZXQgY2FsbEZyYW1lUmVn
aXN0ZXIiICJcbiIKLSAgICAibGkgICAgJDE3LDUxMiAgICAgICMgc2V0IHRpbWVvdXRDaGVja1Jl
Z2lzdGVyIiAiXG4iCi0gICAgIm1vdmUgICQyNSwkNCAgICAgICAjIG1vdmUgZXhlY3V0YWJsZUFk
ZHJlc3MgdG8gdDkiICJcbiIKLSAgICAic3cgICAgJDUsNTIoJDI5KSAgICMgc3RvcmUgcmVnaXN0
ZXJGaWxlIHRvIGN1cnJlbnQgc3RhY2siICJcbiIKLSAgICAic3cgICAgJDYsNTYoJDI5KSAgICMg
c3RvcmUgY2FsbEZyYW1lIHRvIGN1cmVudCBzdGFjayIgIlxuIgotICAgICJzdyAgICAkNyw2MCgk
MjkpICAgIyBzdG9yZSBleGNlcHRpb24gdG8gY3VycmVudCBzdGFjayIgIlxuIgotICAgICJsdyAg
ICAkOCw4OCgkMjkpICAgIyBsb2FkIGVuYWJsZVByb2ZpbGVyUmVmZXJlbmNlIGZyb20gcHJldmlv
dXMgc3RhY2siICJcbiIKLSAgICAibHcgICAgJDksOTIoJDI5KSAgICMgbG9hZCBnbG9iYWxEYXRh
IGZyb20gcHJldmlvdXMgc3RhY2siICJcbiIKLSAgICAic3cgICAgJDgsNjQoJDI5KSAgICMgc3Rv
cmUgZW5hYmxlUHJvZmlsZXJSZWZlcmVuY2UgdG8gY3VycmVudCBzdGFjayIgIlxuIgotICAgICJq
YWxyICAkMjUiICJcbiIKLSAgICAic3cgICAgJDksNjgoJDI5KSAgICMgc3RvcmUgZ2xvYmFsRGF0
YSB0byBjdXJyZW50IHN0YWNrIiAiXG4iCi0gICAgImx3ICAgICQxNiwzMigkMjkpIiAiXG4iCi0g
ICAgImx3ICAgICQxNywzNigkMjkpIiAiXG4iCi0gICAgImx3ICAgICQxOCw0MCgkMjkpIiAiXG4i
Ci0gICAgImx3ICAgICQzMSw0NCgkMjkpIiAiXG4iCi0gICAgImpyICAgICQzMSIgIlxuIgotICAg
ICJhZGRpdSAkMjksJDI5LDcyIiAiXG4iCi0iLnNldCByZW9yZGVyIiAiXG4iCi0iLnNldCBtYWNy
byIgIlxuIgotIi5lbmQgIiBTWU1CT0xfU1RSSU5HKGN0aVRyYW1wb2xpbmUpICJcbiIKLSk7Ci0K
LWFzbSB2b2xhdGlsZSgKLSIudGV4dCIgIlxuIgotIi5hbGlnbiAyIiAiXG4iCi0iLnNldCBub3Jl
b3JkZXIiICJcbiIKLSIuc2V0IG5vbWFjcm8iICJcbiIKLSIuc2V0IG5vbWlwczE2IiAiXG4iCi0i
Lmdsb2JsICIgU1lNQk9MX1NUUklORyhjdGlWTVRocm93VHJhbXBvbGluZSkgIlxuIgotIi5lbnQg
IiBTWU1CT0xfU1RSSU5HKGN0aVZNVGhyb3dUcmFtcG9saW5lKSAiXG4iCi1TWU1CT0xfU1RSSU5H
KGN0aVZNVGhyb3dUcmFtcG9saW5lKSAiOiIgIlxuIgotI2lmIFdURl9NSVBTX1BJQwotICAgICJs
dyAgICAkMjgsMjgoJDI5KSIgIlxuIgotIi5zZXQgbWFjcm8iICJcbiIKLSAgICAibGEgICAgJDI1
LCIgU1lNQk9MX1NUUklORyhjdGlfdm1fdGhyb3cpICJcbiIKLSIuc2V0IG5vbWFjcm8iICJcbiIK
LSAgICAiYmFsICIgU1lNQk9MX1NUUklORyhjdGlfdm1fdGhyb3cpICJcbiIKLSAgICAibW92ZSAg
JDQsJDI5IiAiXG4iCi0jZWxzZQotICAgICJqYWwgIiBTWU1CT0xfU1RSSU5HKGN0aV92bV90aHJv
dykgIlxuIgotICAgICJtb3ZlICAkNCwkMjkiICJcbiIKLSNlbmRpZgotICAgICJsdyAgICAkMTYs
MzIoJDI5KSIgIlxuIgotICAgICJsdyAgICAkMTcsMzYoJDI5KSIgIlxuIgotICAgICJsdyAgICAk
MTgsNDAoJDI5KSIgIlxuIgotICAgICJsdyAgICAkMzEsNDQoJDI5KSIgIlxuIgotICAgICJqciAg
ICAkMzEiICJcbiIKLSAgICAiYWRkaXUgJDI5LCQyOSw3MiIgIlxuIgotIi5zZXQgcmVvcmRlciIg
IlxuIgotIi5zZXQgbWFjcm8iICJcbiIKLSIuZW5kICIgU1lNQk9MX1NUUklORyhjdGlWTVRocm93
VHJhbXBvbGluZSkgIlxuIgotKTsKLQotYXNtIHZvbGF0aWxlKAotIi50ZXh0IiAiXG4iCi0iLmFs
aWduIDIiICJcbiIKLSIuc2V0IG5vcmVvcmRlciIgIlxuIgotIi5zZXQgbm9tYWNybyIgIlxuIgot
Ii5zZXQgbm9taXBzMTYiICJcbiIKLSIuZ2xvYmwgIiBTWU1CT0xfU1RSSU5HKGN0aU9wVGhyb3dO
b3RDYXVnaHQpICJcbiIKLSIuZW50ICIgU1lNQk9MX1NUUklORyhjdGlPcFRocm93Tm90Q2F1Z2h0
KSAiXG4iCi1TWU1CT0xfU1RSSU5HKGN0aU9wVGhyb3dOb3RDYXVnaHQpICI6IiAiXG4iCi0gICAg
Imx3ICAgICQxNiwzMigkMjkpIiAiXG4iCi0gICAgImx3ICAgICQxNywzNigkMjkpIiAiXG4iCi0g
ICAgImx3ICAgICQxOCw0MCgkMjkpIiAiXG4iCi0gICAgImx3ICAgICQzMSw0NCgkMjkpIiAiXG4i
Ci0gICAgImpyICAgICQzMSIgIlxuIgotICAgICJhZGRpdSAkMjksJDI5LDcyIiAiXG4iCi0iLnNl
dCByZW9yZGVyIiAiXG4iCi0iLnNldCBtYWNybyIgIlxuIgotIi5lbmQgIiBTWU1CT0xfU1RSSU5H
KGN0aU9wVGhyb3dOb3RDYXVnaHQpICJcbiIKLSk7CisjZGVmaW5lIFBSRVNFUlZFRF9HUF9PRkZT
RVQgICAgICAgICAyOAorI2RlZmluZSBQUkVTRVJWRURfUzBfT0ZGU0VUICAgICAgICAgMzIKKyNk
ZWZpbmUgUFJFU0VSVkVEX1MxX09GRlNFVCAgICAgICAgIDM2CisjZGVmaW5lIFBSRVNFUlZFRF9T
Ml9PRkZTRVQgICAgICAgICA0MAorI2RlZmluZSBQUkVTRVJWRURfUkVUVVJOX0FERFJFU1NfT0ZG
U0VUIDQ0CisjZGVmaW5lIFRIVU5LX1JFVFVSTl9BRERSRVNTX09GRlNFVCA0OAorI2RlZmluZSBS
RUdJU1RFUl9GSUxFX09GRlNFVCAgICAgICAgNTIKKyNkZWZpbmUgQ0FMTEZSQU1FX09GRlNFVCAg
ICAgICAgICAgIDU2CisjZGVmaW5lIEVYQ0VQVElPTl9PRkZTRVQgICAgICAgICAgICA2MAorI2Rl
ZmluZSBFTkFCTEVfUFJPRklMRVJfUkVGRVJFTkNFX09GRlNFVCA2NAorI2RlZmluZSBHTE9CQUxf
REFUQV9PRkZTRVQgICAgICAgICAgNjgKKyNkZWZpbmUgU1RBQ0tfTEVOR1RIICAgICAgICAgICAg
ICAgIDcyCiAKICNlbGlmIENPTVBJTEVSKE1TVkMpICYmIENQVShYODYpCiAKQEAgLTYyNiw2ICs1
NjQsOTggQEAgZXh0ZXJuICJDIiB7CiAKICNlbmRpZiAvLyBVU0UoSlNWQUxVRTMyXzY0KQogCisj
aWYgQ1BVKE1JUFMpCithc20gdm9sYXRpbGUoCisiLnRleHQiICJcbiIKKyIuYWxpZ24gMiIgIlxu
IgorIi5zZXQgbm9yZW9yZGVyIiAiXG4iCisiLnNldCBub21hY3JvIiAiXG4iCisiLnNldCBub21p
cHMxNiIgIlxuIgorIi5nbG9ibCAiIFNZTUJPTF9TVFJJTkcoY3RpVHJhbXBvbGluZSkgIlxuIgor
Ii5lbnQgIiBTWU1CT0xfU1RSSU5HKGN0aVRyYW1wb2xpbmUpICJcbiIKK1NZTUJPTF9TVFJJTkco
Y3RpVHJhbXBvbGluZSkgIjoiICJcbiIKKyAgICAiYWRkaXUgJDI5LCQyOSwtIiBTVFJJTkdJWkVf
VkFMVUVfT0YoU1RBQ0tfTEVOR1RIKSAiXG4iCisgICAgInN3ICAgICQzMSwiIFNUUklOR0laRV9W
QUxVRV9PRihQUkVTRVJWRURfUkVUVVJOX0FERFJFU1NfT0ZGU0VUKSAiKCQyOSkiICJcbiIKKyAg
ICAic3cgICAgJDE4LCIgU1RSSU5HSVpFX1ZBTFVFX09GKFBSRVNFUlZFRF9TMl9PRkZTRVQpICIo
JDI5KSIgIlxuIgorICAgICJzdyAgICAkMTcsIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJFU0VSVkVE
X1MxX09GRlNFVCkgIigkMjkpIiAiXG4iCisgICAgInN3ICAgICQxNiwiIFNUUklOR0laRV9WQUxV
RV9PRihQUkVTRVJWRURfUzBfT0ZGU0VUKSAiKCQyOSkiICJcbiIKKyNpZiBXVEZfTUlQU19QSUMK
KyAgICAic3cgICAgJDI4LCIgU1RSSU5HSVpFX1ZBTFVFX09GKFBSRVNFUlZFRF9HUF9PRkZTRVQp
ICIoJDI5KSIgIlxuIgorI2VuZGlmCisgICAgIm1vdmUgICQxNiwkNiAgICAgICAjIHNldCBjYWxs
RnJhbWVSZWdpc3RlciIgIlxuIgorICAgICJsaSAgICAkMTcsNTEyICAgICAgIyBzZXQgdGltZW91
dENoZWNrUmVnaXN0ZXIiICJcbiIKKyAgICAibW92ZSAgJDI1LCQ0ICAgICAgICMgbW92ZSBleGVj
dXRhYmxlQWRkcmVzcyB0byB0OSIgIlxuIgorICAgICJzdyAgICAkNSwiIFNUUklOR0laRV9WQUxV
RV9PRihSRUdJU1RFUl9GSUxFX09GRlNFVCkgIigkMjkpICMgc3RvcmUgcmVnaXN0ZXJGaWxlIHRv
IGN1cnJlbnQgc3RhY2siICJcbiIKKyAgICAic3cgICAgJDYsIiBTVFJJTkdJWkVfVkFMVUVfT0Yo
Q0FMTEZSQU1FX09GRlNFVCkgIigkMjkpICAgICAjIHN0b3JlIGNhbGxGcmFtZSB0byBjdXJlbnQg
c3RhY2siICJcbiIKKyAgICAic3cgICAgJDcsIiBTVFJJTkdJWkVfVkFMVUVfT0YoRVhDRVBUSU9O
X09GRlNFVCkgIigkMjkpICAgICAjIHN0b3JlIGV4Y2VwdGlvbiB0byBjdXJyZW50IHN0YWNrIiAi
XG4iCisgICAgImx3ICAgICQ4LCIgU1RSSU5HSVpFX1ZBTFVFX09GKFNUQUNLX0xFTkdUSCArIDE2
KSAiKCQyOSkgICAgIyBsb2FkIGVuYWJsZVByb2ZpbGVyUmVmZXJlbmNlIGZyb20gcHJldmlvdXMg
c3RhY2siICJcbiIKKyAgICAibHcgICAgJDksIiBTVFJJTkdJWkVfVkFMVUVfT0YoU1RBQ0tfTEVO
R1RIICsgMjApICIoJDI5KSAgICAjIGxvYWQgZ2xvYmFsRGF0YSBmcm9tIHByZXZpb3VzIHN0YWNr
IiAiXG4iCisgICAgInN3ICAgICQ4LCIgU1RSSU5HSVpFX1ZBTFVFX09GKEVOQUJMRV9QUk9GSUxF
Ul9SRUZFUkVOQ0VfT0ZGU0VUKSAiKCQyOSkgICAjIHN0b3JlIGVuYWJsZVByb2ZpbGVyUmVmZXJl
bmNlIHRvIGN1cnJlbnQgc3RhY2siICJcbiIKKyAgICAiamFsciAgJDI1IiAiXG4iCisgICAgInN3
ICAgICQ5LCIgU1RSSU5HSVpFX1ZBTFVFX09GKEdMT0JBTF9EQVRBX09GRlNFVCkgIigkMjkpICAg
IyBzdG9yZSBnbG9iYWxEYXRhIHRvIGN1cnJlbnQgc3RhY2siICJcbiIKKyAgICAibHcgICAgJDE2
LCIgU1RSSU5HSVpFX1ZBTFVFX09GKFBSRVNFUlZFRF9TMF9PRkZTRVQpICIoJDI5KSIgIlxuIgor
ICAgICJsdyAgICAkMTcsIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJFU0VSVkVEX1MxX09GRlNFVCkg
IigkMjkpIiAiXG4iCisgICAgImx3ICAgICQxOCwiIFNUUklOR0laRV9WQUxVRV9PRihQUkVTRVJW
RURfUzJfT0ZGU0VUKSAiKCQyOSkiICJcbiIKKyAgICAibHcgICAgJDMxLCIgU1RSSU5HSVpFX1ZB
TFVFX09GKFBSRVNFUlZFRF9SRVRVUk5fQUREUkVTU19PRkZTRVQpICIoJDI5KSIgIlxuIgorICAg
ICJqciAgICAkMzEiICJcbiIKKyAgICAiYWRkaXUgJDI5LCQyOSwiIFNUUklOR0laRV9WQUxVRV9P
RihTVEFDS19MRU5HVEgpICJcbiIKKyIuc2V0IHJlb3JkZXIiICJcbiIKKyIuc2V0IG1hY3JvIiAi
XG4iCisiLmVuZCAiIFNZTUJPTF9TVFJJTkcoY3RpVHJhbXBvbGluZSkgIlxuIgorKTsKKworYXNt
IHZvbGF0aWxlKAorIi50ZXh0IiAiXG4iCisiLmFsaWduIDIiICJcbiIKKyIuc2V0IG5vcmVvcmRl
ciIgIlxuIgorIi5zZXQgbm9tYWNybyIgIlxuIgorIi5zZXQgbm9taXBzMTYiICJcbiIKKyIuZ2xv
YmwgIiBTWU1CT0xfU1RSSU5HKGN0aVZNVGhyb3dUcmFtcG9saW5lKSAiXG4iCisiLmVudCAiIFNZ
TUJPTF9TVFJJTkcoY3RpVk1UaHJvd1RyYW1wb2xpbmUpICJcbiIKK1NZTUJPTF9TVFJJTkcoY3Rp
Vk1UaHJvd1RyYW1wb2xpbmUpICI6IiAiXG4iCisjaWYgV1RGX01JUFNfUElDCisgICAgImx3ICAg
ICQyOCwiIFNUUklOR0laRV9WQUxVRV9PRihQUkVTRVJWRURfR1BfT0ZGU0VUKSAiKCQyOSkiICJc
biIKKyIuc2V0IG1hY3JvIiAiXG4iCisgICAgImxhICAgICQyNSwiIFNZTUJPTF9TVFJJTkcoY3Rp
X3ZtX3Rocm93KSAiXG4iCisiLnNldCBub21hY3JvIiAiXG4iCisgICAgImJhbCAiIFNZTUJPTF9T
VFJJTkcoY3RpX3ZtX3Rocm93KSAiXG4iCisgICAgIm1vdmUgICQ0LCQyOSIgIlxuIgorI2Vsc2UK
KyAgICAiamFsICIgU1lNQk9MX1NUUklORyhjdGlfdm1fdGhyb3cpICJcbiIKKyAgICAibW92ZSAg
JDQsJDI5IiAiXG4iCisjZW5kaWYKKyAgICAibHcgICAgJDE2LCIgU1RSSU5HSVpFX1ZBTFVFX09G
KFBSRVNFUlZFRF9TMF9PRkZTRVQpICIoJDI5KSIgIlxuIgorICAgICJsdyAgICAkMTcsIiBTVFJJ
TkdJWkVfVkFMVUVfT0YoUFJFU0VSVkVEX1MxX09GRlNFVCkgIigkMjkpIiAiXG4iCisgICAgImx3
ICAgICQxOCwiIFNUUklOR0laRV9WQUxVRV9PRihQUkVTRVJWRURfUzJfT0ZGU0VUKSAiKCQyOSki
ICJcbiIKKyAgICAibHcgICAgJDMxLCIgU1RSSU5HSVpFX1ZBTFVFX09GKFBSRVNFUlZFRF9SRVRV
Uk5fQUREUkVTU19PRkZTRVQpICIoJDI5KSIgIlxuIgorICAgICJqciAgICAkMzEiICJcbiIKKyAg
ICAiYWRkaXUgJDI5LCQyOSwiIFNUUklOR0laRV9WQUxVRV9PRihTVEFDS19MRU5HVEgpICJcbiIK
KyIuc2V0IHJlb3JkZXIiICJcbiIKKyIuc2V0IG1hY3JvIiAiXG4iCisiLmVuZCAiIFNZTUJPTF9T
VFJJTkcoY3RpVk1UaHJvd1RyYW1wb2xpbmUpICJcbiIKKyk7CisKK2FzbSB2b2xhdGlsZSgKKyIu
dGV4dCIgIlxuIgorIi5hbGlnbiAyIiAiXG4iCisiLnNldCBub3Jlb3JkZXIiICJcbiIKKyIuc2V0
IG5vbWFjcm8iICJcbiIKKyIuc2V0IG5vbWlwczE2IiAiXG4iCisiLmdsb2JsICIgU1lNQk9MX1NU
UklORyhjdGlPcFRocm93Tm90Q2F1Z2h0KSAiXG4iCisiLmVudCAiIFNZTUJPTF9TVFJJTkcoY3Rp
T3BUaHJvd05vdENhdWdodCkgIlxuIgorU1lNQk9MX1NUUklORyhjdGlPcFRocm93Tm90Q2F1Z2h0
KSAiOiIgIlxuIgorICAgICJsdyAgICAkMTYsIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJFU0VSVkVE
X1MwX09GRlNFVCkgIigkMjkpIiAiXG4iCisgICAgImx3ICAgICQxNywiIFNUUklOR0laRV9WQUxV
RV9PRihQUkVTRVJWRURfUzFfT0ZGU0VUKSAiKCQyOSkiICJcbiIKKyAgICAibHcgICAgJDE4LCIg
U1RSSU5HSVpFX1ZBTFVFX09GKFBSRVNFUlZFRF9TMl9PRkZTRVQpICIoJDI5KSIgIlxuIgorICAg
ICJsdyAgICAkMzEsIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJFU0VSVkVEX1JFVFVSTl9BRERSRVNT
X09GRlNFVCkgIigkMjkpIiAiXG4iCisgICAgImpyICAgICQzMSIgIlxuIgorICAgICJhZGRpdSAk
MjksJDI5LCIgU1RSSU5HSVpFX1ZBTFVFX09GKFNUQUNLX0xFTkdUSCkgIlxuIgorIi5zZXQgcmVv
cmRlciIgIlxuIgorIi5zZXQgbWFjcm8iICJcbiIKKyIuZW5kICIgU1lNQk9MX1NUUklORyhjdGlP
cFRocm93Tm90Q2F1Z2h0KSAiXG4iCispOworI2VuZGlmCisKICNpZiBDT01QSUxFUihHQ0MpICYm
IENQVShBUk1fVEhVTUIyKQogCiBhc20gdm9sYXRpbGUoCkBAIC04MDMsMTcgKzgzMywxNyBAQCBK
SVRUaHVua3M6OkpJVFRodW5rcyhKU0dsb2JhbERhdGEqIGdsb2JhCiAKIAogI2VsaWYgQ1BVKE1J
UFMpCi0gICAgQVNTRVJUKE9CSkVDVF9PRkZTRVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwgcHJl
c2VydmVkR1ApID09IDI4KTsKLSAgICBBU1NFUlQoT0JKRUNUX09GRlNFVE9GKHN0cnVjdCBKSVRT
dGFja0ZyYW1lLCBwcmVzZXJ2ZWRTMCkgPT0gMzIpOwotICAgIEFTU0VSVChPQkpFQ1RfT0ZGU0VU
T0Yoc3RydWN0IEpJVFN0YWNrRnJhbWUsIHByZXNlcnZlZFMxKSA9PSAzNik7Ci0gICAgQVNTRVJU
KE9CSkVDVF9PRkZTRVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwgcHJlc2VydmVkUzIpID09IDQw
KTsKLSAgICBBU1NFUlQoT0JKRUNUX09GRlNFVE9GKHN0cnVjdCBKSVRTdGFja0ZyYW1lLCBwcmVz
ZXJ2ZWRSZXR1cm5BZGRyZXNzKSA9PSA0NCk7Ci0gICAgQVNTRVJUKE9CSkVDVF9PRkZTRVRPRihz
dHJ1Y3QgSklUU3RhY2tGcmFtZSwgdGh1bmtSZXR1cm5BZGRyZXNzKSA9PSA0OCk7Ci0gICAgQVNT
RVJUKE9CSkVDVF9PRkZTRVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwgcmVnaXN0ZXJGaWxlKSA9
PSA1Mik7Ci0gICAgQVNTRVJUKE9CSkVDVF9PRkZTRVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwg
Y2FsbEZyYW1lKSA9PSA1Nik7Ci0gICAgQVNTRVJUKE9CSkVDVF9PRkZTRVRPRihzdHJ1Y3QgSklU
U3RhY2tGcmFtZSwgZXhjZXB0aW9uKSA9PSA2MCk7Ci0gICAgQVNTRVJUKE9CSkVDVF9PRkZTRVRP
RihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwgZW5hYmxlZFByb2ZpbGVyUmVmZXJlbmNlKSA9PSA2NCk7
Ci0gICAgQVNTRVJUKE9CSkVDVF9PRkZTRVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwgZ2xvYmFs
RGF0YSkgPT0gNjgpOworICAgIEFTU0VSVChPQkpFQ1RfT0ZGU0VUT0Yoc3RydWN0IEpJVFN0YWNr
RnJhbWUsIHByZXNlcnZlZEdQKSA9PSBQUkVTRVJWRURfR1BfT0ZGU0VUKTsKKyAgICBBU1NFUlQo
T0JKRUNUX09GRlNFVE9GKHN0cnVjdCBKSVRTdGFja0ZyYW1lLCBwcmVzZXJ2ZWRTMCkgPT0gUFJF
U0VSVkVEX1MwX09GRlNFVCk7CisgICAgQVNTRVJUKE9CSkVDVF9PRkZTRVRPRihzdHJ1Y3QgSklU
U3RhY2tGcmFtZSwgcHJlc2VydmVkUzEpID09IFBSRVNFUlZFRF9TMV9PRkZTRVQpOworICAgIEFT
U0VSVChPQkpFQ1RfT0ZGU0VUT0Yoc3RydWN0IEpJVFN0YWNrRnJhbWUsIHByZXNlcnZlZFMyKSA9
PSBQUkVTRVJWRURfUzJfT0ZGU0VUKTsKKyAgICBBU1NFUlQoT0JKRUNUX09GRlNFVE9GKHN0cnVj
dCBKSVRTdGFja0ZyYW1lLCBwcmVzZXJ2ZWRSZXR1cm5BZGRyZXNzKSA9PSBQUkVTRVJWRURfUkVU
VVJOX0FERFJFU1NfT0ZGU0VUKTsKKyAgICBBU1NFUlQoT0JKRUNUX09GRlNFVE9GKHN0cnVjdCBK
SVRTdGFja0ZyYW1lLCB0aHVua1JldHVybkFkZHJlc3MpID09IFRIVU5LX1JFVFVSTl9BRERSRVNT
X09GRlNFVCk7CisgICAgQVNTRVJUKE9CSkVDVF9PRkZTRVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFt
ZSwgcmVnaXN0ZXJGaWxlKSA9PSBSRUdJU1RFUl9GSUxFX09GRlNFVCk7CisgICAgQVNTRVJUKE9C
SkVDVF9PRkZTRVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwgY2FsbEZyYW1lKSA9PSBDQUxMRlJB
TUVfT0ZGU0VUKTsKKyAgICBBU1NFUlQoT0JKRUNUX09GRlNFVE9GKHN0cnVjdCBKSVRTdGFja0Zy
YW1lLCBleGNlcHRpb24pID09IEVYQ0VQVElPTl9PRkZTRVQpOworICAgIEFTU0VSVChPQkpFQ1Rf
T0ZGU0VUT0Yoc3RydWN0IEpJVFN0YWNrRnJhbWUsIGVuYWJsZWRQcm9maWxlclJlZmVyZW5jZSkg
PT0gRU5BQkxFX1BST0ZJTEVSX1JFRkVSRU5DRV9PRkZTRVQpOworICAgIEFTU0VSVChPQkpFQ1Rf
T0ZGU0VUT0Yoc3RydWN0IEpJVFN0YWNrRnJhbWUsIGdsb2JhbERhdGEpID09IEdMT0JBTF9EQVRB
X09GRlNFVCk7CiAKICNlbmRpZgogfQpAQCAtMTA1OSwxNCArMTA4OSwxNCBAQCBzdGF0aWMgTkVW
RVJfSU5MSU5FIHZvaWQgdGhyb3dTdGFja092ZXJmCiAgICAgICAgICIuZ2xvYmwgIiBTWU1CT0xf
U1RSSU5HKGN0aV8jI29wKSAiXG4iIFwKICAgICAgICAgIi5lbnQgIiBTWU1CT0xfU1RSSU5HKGN0
aV8jI29wKSAiXG4iIFwKICAgICAgICAgU1lNQk9MX1NUUklORyhjdGlfIyNvcCkgIjoiICJcbiIg
XAotICAgICAgICAibHcgICAgJDI4LDI4KCQyOSkiICJcbiIgXAotICAgICAgICAic3cgICAgJDMx
LDQ4KCQyOSkiICJcbiIgXAorICAgICAgICAibHcgICAgJDI4LCIgU1RSSU5HSVpFX1ZBTFVFX09G
KFBSRVNFUlZFRF9HUF9PRkZTRVQpICIoJDI5KSIgIlxuIiBcCisgICAgICAgICJzdyAgICAkMzEs
IiBTVFJJTkdJWkVfVkFMVUVfT0YoVEhVTktfUkVUVVJOX0FERFJFU1NfT0ZGU0VUKSAiKCQyOSki
ICJcbiIgXAogICAgICAgICAiLnNldCBtYWNybyIgIlxuIiBcCiAgICAgICAgICJsYSAgICAkMjUs
IiBTWU1CT0xfU1RSSU5HKEpJVFN0dWJUaHVua2VkXyMjb3ApICJcbiIgXAogICAgICAgICAiLnNl
dCBub21hY3JvIiAiXG4iIFwKICAgICAgICAgImJhbCAiIFNZTUJPTF9TVFJJTkcoSklUU3R1YlRo
dW5rZWRfIyNvcCkgIlxuIiBcCiAgICAgICAgICJub3AiICJcbiIgXAotICAgICAgICAibHcgICAg
JDMxLDQ4KCQyOSkiICJcbiIgXAorICAgICAgICAibHcgICAgJDMxLCIgU1RSSU5HSVpFX1ZBTFVF
X09GKFRIVU5LX1JFVFVSTl9BRERSRVNTX09GRlNFVCkgIigkMjkpIiAiXG4iIFwKICAgICAgICAg
ImpyICAgICQzMSIgIlxuIiBcCiAgICAgICAgICJub3AiICJcbiIgXAogICAgICAgICAiLnNldCBy
ZW9yZGVyIiAiXG4iIFwKQEAgLTEwODksMTAgKzExMTksMTAgQEAgc3RhdGljIE5FVkVSX0lOTElO
RSB2b2lkIHRocm93U3RhY2tPdmVyZgogICAgICAgICAiLmdsb2JsICIgU1lNQk9MX1NUUklORyhj
dGlfIyNvcCkgIlxuIiBcCiAgICAgICAgICIuZW50ICIgU1lNQk9MX1NUUklORyhjdGlfIyNvcCkg
IlxuIiBcCiAgICAgICAgIFNZTUJPTF9TVFJJTkcoY3RpXyMjb3ApICI6IiAiXG4iIFwKLSAgICAg
ICAgInN3ICAgICQzMSw0OCgkMjkpIiAiXG4iIFwKKyAgICAgICAgInN3ICAgICQzMSwiIFNUUklO
R0laRV9WQUxVRV9PRihUSFVOS19SRVRVUk5fQUREUkVTU19PRkZTRVQpICIoJDI5KSIgIlxuIiBc
CiAgICAgICAgICJqYWwgIiBTWU1CT0xfU1RSSU5HKEpJVFN0dWJUaHVua2VkXyMjb3ApICJcbiIg
XAogICAgICAgICAibm9wIiAiXG4iIFwKLSAgICAgICAgImx3ICAgICQzMSw0OCgkMjkpIiAiXG4i
IFwKKyAgICAgICAgImx3ICAgICQzMSwiIFNUUklOR0laRV9WQUxVRV9PRihUSFVOS19SRVRVUk5f
QUREUkVTU19PRkZTRVQpICIoJDI5KSIgIlxuIiBcCiAgICAgICAgICJqciAgICAkMzEiICJcbiIg
XAogICAgICAgICAibm9wIiAiXG4iIFwKICAgICAgICAgIi5zZXQgcmVvcmRlciIgIlxuIiBcCklu
ZGV4OiBKYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnMuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2Ny
aXB0Q29yZS9qaXQvSklUU3R1YnMuaAkocmV2aXNpb24gNjU2MjQpCisrKyBKYXZhU2NyaXB0Q29y
ZS9qaXQvSklUU3R1YnMuaAkod29ya2luZyBjb3B5KQpAQCAtMjA0LDkgKzIwNCwxMyBAQCBuYW1l
c3BhY2UgSlNDIHsKICNlbmRpZiAvLyBDT01QSUxFUihNU1ZDKQogI2VsaWYgQ1BVKE1JUFMpCiAg
ICAgc3RydWN0IEpJVFN0YWNrRnJhbWUgewotICAgICAgICB2b2lkKiByZXNlcnZlZDsgLy8gVW51
c2VkCisgICAgICAgIEpJVFN0dWJBcmcgcmVzZXJ2ZWQ7IC8vIFVudXNlZAogICAgICAgICBKSVRT
dHViQXJnIGFyZ3NbNl07CiAKKyNpZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgICAgICB2b2lkKiBw
YWRkaW5nOyAvLyBNYWtlIHRoZSBvdmVyYWxsIHN0YWNrIGxlbmd0aCA4LWJ5dGUgYWxpZ25lZC4K
KyNlbmRpZgorCiAgICAgICAgIHZvaWQqIHByZXNlcnZlZEdQOyAvLyBzdG9yZSBHUCB3aGVuIHVz
aW5nIFBJQyBjb2RlCiAgICAgICAgIHZvaWQqIHByZXNlcnZlZFMwOwogICAgICAgICB2b2lkKiBw
cmVzZXJ2ZWRTMTsKSW5kZXg6IEphdmFTY3JpcHRDb3JlL3d0Zi9QbGF0Zm9ybS5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIEphdmFTY3JpcHRDb3JlL3d0Zi9QbGF0Zm9ybS5oCShyZXZpc2lvbiA2NTYyNCkKKysr
IEphdmFTY3JpcHRDb3JlL3d0Zi9QbGF0Zm9ybS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNDIsNiAr
MTQyLDcgQEAKICNkZWZpbmUgV1RGX01JUFNfQVJDSF9SRVYgX19taXBzX2lzYV9yZXYKICNkZWZp
bmUgV1RGX01JUFNfSVNBX1JFVih2KSAoZGVmaW5lZCBXVEZfTUlQU19BUkNIX1JFViAmJiBXVEZf
TUlQU19BUkNIX1JFViA9PSB2KQogI2RlZmluZSBXVEZfTUlQU19ET1VCTEVfRkxPQVQgKGRlZmlu
ZWQgX19taXBzX2hhcmRfZmxvYXQgJiYgIWRlZmluZWQgX19taXBzX3NpbmdsZV9mbG9hdCkKKyNk
ZWZpbmUgV1RGX01JUFNfRlA2NCAoZGVmaW5lZCBfX21pcHNfZnByICYmIF9fbWlwc19mcHIgPT0g
NjQpCiAvKiBNSVBTIHJlcXVpcmVzIGFsbG9jYXRvcnMgdG8gdXNlIGFsaWduZWQgbWVtb3J5ICov
CiAjZGVmaW5lIFdURl9VU0VfQVJFTkFfQUxMT0NfQUxJR05NRU5UX0lOVEVHRVIgMQogI2VuZGlm
IC8qIE1JUFMgKi8KQEAgLTkxMiw3ICs5MTMsNyBAQAogICAgIHx8IENQVShTUEFSQzY0KSBcCiAg
ICAgfHwgQ1BVKFBQQzY0KQogI2RlZmluZSBXVEZfVVNFX0pTVkFMVUU2NCAxCi0jZWxpZiBDUFUo
TUlQUykgfHwgKENQVShBUk1fVFJBRElUSU9OQUwpICYmIENPTVBJTEVSKE1TVkMpKQorI2VsaWYg
Q1BVKEFSTV9UUkFESVRJT05BTCkgJiYgQ09NUElMRVIoTVNWQykKICNkZWZpbmUgV1RGX1VTRV9K
U1ZBTFVFMzIgMQogI2VsaWYgT1MoV0lORE9XUykgJiYgQ09NUElMRVIoTUlOR1cpCiAvKiBVc2lu
ZyBKU1ZBTFVFMzJfNjQgY2F1c2VzIHBhZGRpbmcvYWxpZ25lbWVudCBpc3N1ZXMgZm9yIEpJVFN0
dWJBcmcK
</data>

          </attachment>
      

    </bug>

</bugzilla>