<?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>158542</bug_id>
          
          <creation_ts>2016-06-08 14:20:23 -0700</creation_ts>
          <short_desc>Greatly simplify CrossThreadTask.h</short_desc>
          <delta_ts>2016-06-09 10:41:28 -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>Web Template Framework</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Brady Eidson">beidson</reporter>
          <assigned_to name="Brady Eidson">beidson</assigned_to>
          <cc>achristensen</cc>
    
    <cc>andersca</cc>
    
    <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1200593</commentid>
    <comment_count>0</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-06-08 14:20:23 -0700</bug_when>
    <thetext>Greatly simplify CrossThreadTask.h

The current implementation predates variadic templates in C++11.

Now with C++14 we can get rid of most of this nonsense.

There is an additional move constructor call per argument object, which is disappointing.

Maybe there&apos;s a way to get rid of that and I can&apos;t see that way.

But compared to two extra copies (which is what we needed up through this morning before I landed http://trac.webkit.org/changeset/201809) we&apos;re still way better off.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1200595</commentid>
    <comment_count>1</comment_count>
      <attachid>280837</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-06-08 14:22:35 -0700</bug_when>
    <thetext>Created attachment 280837
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1200601</commentid>
    <comment_count>2</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2016-06-08 14:31:49 -0700</bug_when>
    <thetext>Can this use std::index_sequence rather than the homespun GeneratedIndices? For an example usage of it, see WebKit2’s HandleMessage.h.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1200602</commentid>
    <comment_count>3</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-06-08 14:32:43 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; Can this use std::index_sequence rather than the homespun GeneratedIndices?
&gt; For an example usage of it, see WebKit2’s HandleMessage.h.

Holy crap, yes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1200610</commentid>
    <comment_count>4</comment_count>
      <attachid>280843</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-06-08 14:51:13 -0700</bug_when>
    <thetext>Created attachment 280843
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1200627</commentid>
    <comment_count>5</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-06-08 15:19:59 -0700</bug_when>
    <thetext>Yikes on the build failures.

Currently exploring why I&apos;m seemingly good locally...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1200636</commentid>
    <comment_count>6</comment_count>
      <attachid>280849</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-06-08 15:40:04 -0700</bug_when>
    <thetext>Created attachment 280849
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1200652</commentid>
    <comment_count>7</comment_count>
      <attachid>280852</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-06-08 15:57:17 -0700</bug_when>
    <thetext>Created attachment 280852
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1200763</commentid>
    <comment_count>8</comment_count>
      <attachid>280852</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-06-09 00:50:58 -0700</bug_when>
    <thetext>Comment on attachment 280852
Patch

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

&gt; Source/WTF/wtf/CrossThreadTask.h:80
&gt; +void callMemberFunctionForCrossThreadTaskImpl(C* object, MF function, ArgsTuple&amp;&amp; args, std::index_sequence&lt;ArgsIndex...&gt;)

std::index_sequence is quite clever.
After enough reading on the web, I actually understand what&apos;s happening here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1200875</commentid>
    <comment_count>9</comment_count>
      <attachid>280852</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2016-06-09 10:10:31 -0700</bug_when>
    <thetext>Comment on attachment 280852
Patch

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

&gt; Source/WTF/wtf/CrossThreadTask.h:65
&gt; +template &lt;typename F, typename ArgsTuple, typename ArgsIndicies = std::make_index_sequence&lt;std::tuple_size&lt;ArgsTuple&gt;::value&gt;&gt;

The word indices has only two &quot;i&quot;s in it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1200882</commentid>
    <comment_count>10</comment_count>
      <attachid>280852</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-06-09 10:33:25 -0700</bug_when>
    <thetext>Comment on attachment 280852
Patch

Clearing flags on attachment: 280852

Committed r201872: &lt;http://trac.webkit.org/changeset/201872&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1200883</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-06-09 10:33:30 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1200887</commentid>
    <comment_count>12</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-06-09 10:41:28 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; Comment on attachment 280852 [details]
&gt; Patch
&gt; 
&gt; Clearing flags on attachment: 280852
&gt; 
&gt; Committed r201872: &lt;http://trac.webkit.org/changeset/201872&gt;

Fixed the typo in http://trac.webkit.org/changeset/201873</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>280837</attachid>
            <date>2016-06-08 14:22:35 -0700</date>
            <delta_ts>2016-06-08 14:51:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-158542-20160608142403.patch</filename>
            <type>text/plain</type>
            <size>14838</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAxODExCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDVmZTY1MzZmMzYzODgyNjgzNmRiYzk0
ZWVjM2M0ODk3NzMwZmEyMTkuLjUyOGMwODMyNTY0MzU1MjNiYzU1M2NmNTUxNzU4Y2Y4NDRlYzEw
MTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDUgKzEsMTcgQEAKIDIwMTYtMDYtMDggIEJyYWR5IEVpZHNvbiAgPGJlaWRz
b25AYXBwbGUuY29tPgogCisgICAgICAgIEdyZWF0bHkgc2ltcGxpZnkgQ3Jvc3NUaHJlYWRUYXNr
LmguCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTg1
NDIKKyAgICAgICAgCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogd3RmL0Nyb3NzVGhyZWFkVGFzay5oOgorICAgICAgICAoV1RGOjpjcm9zc1RocmVhZENv
cHkpOgorICAgICAgICAoV1RGOjpjYWxsRnVuY3Rpb24pOgorICAgICAgICAoV1RGOjpjcmVhdGVD
cm9zc1RocmVhZFRhc2spOgorCisyMDE2LTA2LTA4ICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFw
cGxlLmNvbT4KKwogICAgICAgICBNYWtlIENyb3NzVGhyZWFkQ29waWVyIG1vcmUgZWZmaWNpZW50
IChmZXdlciBjb3BpZXMhKS4KICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE1ODQ1NgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9Dcm9zc1RocmVh
ZFRhc2suaCBiL1NvdXJjZS9XVEYvd3RmL0Nyb3NzVGhyZWFkVGFzay5oCmluZGV4IDUzODU4YmNl
MTQ0ZmFkMGM3ZDcxYWYzYzBjZjU5NzhlNzI0YWViOGIuLmY2N2NlOGY0YTMxN2Y2NDE0NDM5ZTM4
NmEwYTlhNWJhM2IxYjg1NTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0Nyb3NzVGhyZWFk
VGFzay5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL0Nyb3NzVGhyZWFkVGFzay5oCkBAIC0zMiwyNCAr
MzIsMTAgQEAKIG5hbWVzcGFjZSBXVEYgewogCiBjbGFzcyBDcm9zc1RocmVhZFRhc2sgewotICAg
IHRlbXBsYXRlPGNsYXNzIFQ+Ci0gICAgZnJpZW5kIENyb3NzVGhyZWFkVGFzayBjcmVhdGVDcm9z
c1RocmVhZFRhc2soVCYsIHZvaWQgKFQ6OiopKCkpOwotICAgIHRlbXBsYXRlPGNsYXNzIFQsIGNs
YXNzIFAxLCBjbGFzcyBNUDE+Ci0gICAgZnJpZW5kIENyb3NzVGhyZWFkVGFzayBjcmVhdGVDcm9z
c1RocmVhZFRhc2soVCYsIHZvaWQgKFQ6OiopKE1QMSksIGNvbnN0IFAxJik7Ci0gICAgdGVtcGxh
dGU8Y2xhc3MgVCwgY2xhc3MgUDEsIGNsYXNzIE1QMSwgY2xhc3MgUDIsIGNsYXNzIE1QMj4KLSAg
ICBmcmllbmQgQ3Jvc3NUaHJlYWRUYXNrIGNyZWF0ZUNyb3NzVGhyZWFkVGFzayhUJiwgdm9pZCAo
VDo6KikoTVAxLCBNUDIpLCBjb25zdCBQMSYsIGNvbnN0IFAyJik7Ci0gICAgdGVtcGxhdGU8Y2xh
c3MgVCwgY2xhc3MgUDEsIGNsYXNzIE1QMSwgY2xhc3MgUDIsIGNsYXNzIE1QMiwgY2xhc3MgUDMs
IGNsYXNzIE1QMz4KLSAgICBmcmllbmQgQ3Jvc3NUaHJlYWRUYXNrIGNyZWF0ZUNyb3NzVGhyZWFk
VGFzayhUJiwgdm9pZCAoVDo6KikoTVAxLCBNUDIsIE1QMyksIGNvbnN0IFAxJiwgY29uc3QgUDIm
LCBjb25zdCBQMyYpOwotICAgIHRlbXBsYXRlPGNsYXNzIFQsIGNsYXNzIFAxLCBjbGFzcyBNUDEs
IGNsYXNzIFAyLCBjbGFzcyBNUDIsIGNsYXNzIFAzLCBjbGFzcyBNUDMsIGNsYXNzIFA0LCBjbGFz
cyBNUDQ+Ci0gICAgZnJpZW5kIENyb3NzVGhyZWFkVGFzayBjcmVhdGVDcm9zc1RocmVhZFRhc2so
VCYsIHZvaWQgKFQ6OiopKE1QMSwgTVAyLCBNUDMsIE1QNCksIGNvbnN0IFAxJiwgY29uc3QgUDIm
LCBjb25zdCBQMyYsIGNvbnN0IFA0Jik7Ci0gICAgdGVtcGxhdGU8Y2xhc3MgVCwgY2xhc3MgUDEs
IGNsYXNzIE1QMSwgY2xhc3MgUDIsIGNsYXNzIE1QMiwgY2xhc3MgUDMsIGNsYXNzIE1QMywgY2xh
c3MgUDQsIGNsYXNzIE1QNCwgY2xhc3MgUDUsIGNsYXNzIE1QNT4KLSAgICBmcmllbmQgQ3Jvc3NU
aHJlYWRUYXNrIGNyZWF0ZUNyb3NzVGhyZWFkVGFzayhUJiwgdm9pZCAoVDo6KikoTVAxLCBNUDIs
IE1QMywgTVA0LCBNUDUpLCBjb25zdCBQMSYsIGNvbnN0IFAyJiwgY29uc3QgUDMmLCBjb25zdCBQ
NCYsIGNvbnN0IFA1Jik7Ci0gICAgdGVtcGxhdGU8Y2xhc3MgVCwgY2xhc3MgUDEsIGNsYXNzIE1Q
MSwgY2xhc3MgUDIsIGNsYXNzIE1QMiwgY2xhc3MgUDMsIGNsYXNzIE1QMywgY2xhc3MgUDQsIGNs
YXNzIE1QNCwgY2xhc3MgUDUsIGNsYXNzIE1QNSwgY2xhc3MgUDYsIGNsYXNzIE1QNj4KLSAgICBm
cmllbmQgQ3Jvc3NUaHJlYWRUYXNrIGNyZWF0ZUNyb3NzVGhyZWFkVGFzayhUJiwgdm9pZCAoVDo6
KikoTVAxLCBNUDIsIE1QMywgTVA0LCBNUDUsIE1QNiksIGNvbnN0IFAxJiwgY29uc3QgUDImLCBj
b25zdCBQMyYsIGNvbnN0IFA0JiwgY29uc3QgUDUmLCBjb25zdCBQNiYpOwotICAgIHRlbXBsYXRl
PGNsYXNzIFQsIGNsYXNzIFAxLCBjbGFzcyBNUDEsIGNsYXNzIFAyLCBjbGFzcyBNUDIsIGNsYXNz
IFAzLCBjbGFzcyBNUDMsIGNsYXNzIFA0LCBjbGFzcyBNUDQsIGNsYXNzIFA1LCBjbGFzcyBNUDUs
IGNsYXNzIFA2LCBjbGFzcyBNUDYsIGNsYXNzIFA3LCBjbGFzcyBNUDc+Ci0gICAgZnJpZW5kIENy
b3NzVGhyZWFkVGFzayBjcmVhdGVDcm9zc1RocmVhZFRhc2soVCYsIHZvaWQgKFQ6OiopKE1QMSwg
TVAyLCBNUDMsIE1QNCwgTVA1LCBNUDYsIE1QNyksIGNvbnN0IFAxJiwgY29uc3QgUDImLCBjb25z
dCBQMyYsIGNvbnN0IFA0JiwgY29uc3QgUDUmLCBjb25zdCBQNiYsIGNvbnN0IFA3Jik7Ci0gICAg
dGVtcGxhdGU8Y2xhc3MgVCwgY2xhc3MgUDEsIGNsYXNzIE1QMSwgY2xhc3MgUDIsIGNsYXNzIE1Q
MiwgY2xhc3MgUDMsIGNsYXNzIE1QMywgY2xhc3MgUDQsIGNsYXNzIE1QNCwgY2xhc3MgUDUsIGNs
YXNzIE1QNSwgY2xhc3MgUDYsIGNsYXNzIE1QNiwgY2xhc3MgUDcsIGNsYXNzIE1QNywgY2xhc3Mg
UDgsIGNsYXNzIE1QOD4KLSAgICBmcmllbmQgQ3Jvc3NUaHJlYWRUYXNrIGNyZWF0ZUNyb3NzVGhy
ZWFkVGFzayhUJiwgdm9pZCAoVDo6KikoTVAxLCBNUDIsIE1QMywgTVA0LCBNUDUsIE1QNiwgTVA3
LCBNUDgpLCBjb25zdCBQMSYsIGNvbnN0IFAyJiwgY29uc3QgUDMmLCBjb25zdCBQNCYsIGNvbnN0
IFA1JiwgY29uc3QgUDYmLCBjb25zdCBQNyYsIGNvbnN0IFA4Jik7CisgICAgdGVtcGxhdGU8dHlw
ZW5hbWUuLi4gUGFyYW1ldGVycywgdHlwZW5hbWUuLi4gQXJndW1lbnRzPgorICAgIGZyaWVuZCBD
cm9zc1RocmVhZFRhc2sgY3JlYXRlQ3Jvc3NUaHJlYWRUYXNrKHZvaWQgKCopKFBhcmFtZXRlcnMu
Li4pLCBBcmd1bWVudHMuLi4pOworICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lLi4u
IFBhcmFtZXRlcnMsIHR5cGVuYW1lLi4uIEFyZ3VtZW50cz4KKyAgICBmcmllbmQgQ3Jvc3NUaHJl
YWRUYXNrIGNyZWF0ZUNyb3NzVGhyZWFkVGFzayhUJiwgdm9pZCAoVDo6KikoUGFyYW1ldGVycy4u
LiksIEFyZ3VtZW50cy4uLik7CiBwdWJsaWM6CiAgICAgQ3Jvc3NUaHJlYWRUYXNrKCkgPSBkZWZh
dWx0OwogCkBAIC02OCwxODAgKzU0LDUyIEBAIHByb3RlY3RlZDoKICAgICBOb25jb3B5YWJsZUZ1
bmN0aW9uPHZvaWQgKCk+IG1fdGFza0Z1bmN0aW9uOwogfTsKIAotdGVtcGxhdGU8dHlwZW5hbWUg
VD4KLUNyb3NzVGhyZWFkVGFzayBjcmVhdGVDcm9zc1RocmVhZFRhc2soCi0gICAgVCYgY2FsbGVl
LAotICAgIHZvaWQgKFQ6OiptZXRob2QpKCkpCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KK1QgY3Jv
c3NUaHJlYWRDb3B5KGNvbnN0IFQmIHQpCiB7Ci0gICAgcmV0dXJuIENyb3NzVGhyZWFkVGFzayhb
Y2FsbGVlID0gJmNhbGxlZSwgbWV0aG9kXSgpIG11dGFibGUgewotICAgICAgICAoY2FsbGVlLT4q
bWV0aG9kKSgpOwotICAgIH0pOwotfQotCi10ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBQ
MSwgdHlwZW5hbWUgTVAxPgotQ3Jvc3NUaHJlYWRUYXNrIGNyZWF0ZUNyb3NzVGhyZWFkVGFzaygK
LSAgICBUJiBjYWxsZWUsCi0gICAgdm9pZCAoVDo6Km1ldGhvZCkoTVAxKSwKLSAgICBjb25zdCBQ
MSYgcGFyYW1ldGVyMSkKLXsKLSAgICByZXR1cm4gQ3Jvc3NUaHJlYWRUYXNrKFtjYWxsZWUgPSAm
Y2FsbGVlLCBtZXRob2QsCi0gICAgICAgIHAxID0gQ3Jvc3NUaHJlYWRDb3BpZXI8UDE+Ojpjb3B5
KHBhcmFtZXRlcjEpXSgpIG11dGFibGUgewotICAgICAgICAoY2FsbGVlLT4qbWV0aG9kKShwMSk7
Ci0gICAgfSk7CisgICAgcmV0dXJuIENyb3NzVGhyZWFkQ29waWVyPFQ+Ojpjb3B5KHQpOwogfQog
Ci10ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBQMSwgdHlwZW5hbWUgTVAxLCB0eXBlbmFt
ZSBQMiwgdHlwZW5hbWUgTVAyPgotQ3Jvc3NUaHJlYWRUYXNrIGNyZWF0ZUNyb3NzVGhyZWFkVGFz
aygKLSAgICBUJiBjYWxsZWUsCi0gICAgdm9pZCAoVDo6Km1ldGhvZCkoTVAxLCBNUDIpLAotICAg
IGNvbnN0IFAxJiBwYXJhbWV0ZXIxLAotICAgIGNvbnN0IFAyJiBwYXJhbWV0ZXIyKQordGVtcGxh
dGUgPHN0ZDo6c2l6ZV90Li4uIEFyZ3VtZW50cz4KK3N0cnVjdCBHZW5lcmF0ZWRJbmRpY2VzCiB7
Ci0gICAgcmV0dXJuIENyb3NzVGhyZWFkVGFzayhbY2FsbGVlID0gJmNhbGxlZSwgbWV0aG9kLAot
ICAgICAgICBwMSA9IENyb3NzVGhyZWFkQ29waWVyPFAxPjo6Y29weShwYXJhbWV0ZXIxKSwKLSAg
ICAgICAgcDIgPSBDcm9zc1RocmVhZENvcGllcjxQMj46OmNvcHkocGFyYW1ldGVyMildKCkgbXV0
YWJsZSB7Ci0gICAgICAgIChjYWxsZWUtPiptZXRob2QpKHAxLCBwMik7Ci0gICAgfSk7Ci19Ci0K
LXRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFAxLCB0eXBlbmFtZSBNUDEsIHR5cGVuYW1l
IFAyLCB0eXBlbmFtZSBNUDIsIHR5cGVuYW1lIFAzLCB0eXBlbmFtZSBNUDM+Ci1Dcm9zc1RocmVh
ZFRhc2sgY3JlYXRlQ3Jvc3NUaHJlYWRUYXNrKAotICAgIFQmIGNhbGxlZSwKLSAgICB2b2lkIChU
OjoqbWV0aG9kKShNUDEsIE1QMiwgTVAzKSwKLSAgICBjb25zdCBQMSYgcGFyYW1ldGVyMSwKLSAg
ICBjb25zdCBQMiYgcGFyYW1ldGVyMiwKLSAgICBjb25zdCBQMyYgcGFyYW1ldGVyMykKLXsKLSAg
ICByZXR1cm4gQ3Jvc3NUaHJlYWRUYXNrKFtjYWxsZWUgPSAmY2FsbGVlLCBtZXRob2QsCi0gICAg
ICAgIHAxID0gQ3Jvc3NUaHJlYWRDb3BpZXI8UDE+Ojpjb3B5KHBhcmFtZXRlcjEpLAotICAgICAg
ICBwMiA9IENyb3NzVGhyZWFkQ29waWVyPFAyPjo6Y29weShwYXJhbWV0ZXIyKSwKLSAgICAgICAg
cDMgPSBDcm9zc1RocmVhZENvcGllcjxQMz46OmNvcHkocGFyYW1ldGVyMyldKCkgbXV0YWJsZSB7
Ci0gICAgICAgIChjYWxsZWUtPiptZXRob2QpKHAxLCBwMiwgcDMpOwotICAgIH0pOwotfQorfTsK
IAotdGVtcGxhdGU8dHlwZW5hbWUgUDEsIHR5cGVuYW1lIE1QMSwgdHlwZW5hbWUgUDIsIHR5cGVu
YW1lIE1QMiwgdHlwZW5hbWUgUDMsIHR5cGVuYW1lIE1QMz4KLUNyb3NzVGhyZWFkVGFzayBjcmVh
dGVDcm9zc1RocmVhZFRhc2soCi0gICAgdm9pZCAoKm1ldGhvZCkoTVAxLCBNUDIsIE1QMyksCi0g
ICAgY29uc3QgUDEmIHBhcmFtZXRlcjEsCi0gICAgY29uc3QgUDImIHBhcmFtZXRlcjIsCi0gICAg
Y29uc3QgUDMmIHBhcmFtZXRlcjMpCit0ZW1wbGF0ZSA8c3RkOjpzaXplX3QgQ291bnQsIHN0ZDo6
c2l6ZV90Li4uIEFyZ3VtZW50cz4KK3N0cnVjdCBJbmRleEdlbmVyYXRvciA6IEluZGV4R2VuZXJh
dG9yPENvdW50IC0gMSwgQ291bnQgLSAxLCBBcmd1bWVudHMuLi4+CiB7Ci0gICAgcmV0dXJuIENy
b3NzVGhyZWFkVGFzayhbbWV0aG9kLAotICAgICAgICBwMSA9IENyb3NzVGhyZWFkQ29waWVyPFAx
Pjo6Y29weShwYXJhbWV0ZXIxKSwKLSAgICAgICAgcDIgPSBDcm9zc1RocmVhZENvcGllcjxQMj46
OmNvcHkocGFyYW1ldGVyMiksCi0gICAgICAgIHAzID0gQ3Jvc3NUaHJlYWRDb3BpZXI8UDM+Ojpj
b3B5KHBhcmFtZXRlcjMpXSgpIG11dGFibGUgewotICAgICAgICBtZXRob2QocDEsIHAyLCBwMyk7
Ci0gICAgfSk7Ci19Cit9OwogCi10ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBQMSwgdHlw
ZW5hbWUgTVAxLCB0eXBlbmFtZSBQMiwgdHlwZW5hbWUgTVAyLCB0eXBlbmFtZSBQMywgdHlwZW5h
bWUgTVAzLCB0eXBlbmFtZSBQNCwgdHlwZW5hbWUgTVA0PgotQ3Jvc3NUaHJlYWRUYXNrIGNyZWF0
ZUNyb3NzVGhyZWFkVGFzaygKLSAgICBUJiBjYWxsZWUsCi0gICAgdm9pZCAoVDo6Km1ldGhvZCko
TVAxLCBNUDIsIE1QMywgTVA0KSwKLSAgICBjb25zdCBQMSYgcGFyYW1ldGVyMSwKLSAgICBjb25z
dCBQMiYgcGFyYW1ldGVyMiwKLSAgICBjb25zdCBQMyYgcGFyYW1ldGVyMywKLSAgICBjb25zdCBQ
NCYgcGFyYW1ldGVyNCkKK3RlbXBsYXRlIDxzdGQ6OnNpemVfdC4uLiBBcmd1bWVudHM+CitzdHJ1
Y3QgSW5kZXhHZW5lcmF0b3I8MCwgQXJndW1lbnRzLi4uPiA6IEdlbmVyYXRlZEluZGljZXM8QXJn
dW1lbnRzLi4uPgogewotICAgIHJldHVybiBDcm9zc1RocmVhZFRhc2soW2NhbGxlZSA9ICZjYWxs
ZWUsIG1ldGhvZCwKLSAgICAgICAgcDEgPSBDcm9zc1RocmVhZENvcGllcjxQMT46OmNvcHkocGFy
YW1ldGVyMSksCi0gICAgICAgIHAyID0gQ3Jvc3NUaHJlYWRDb3BpZXI8UDI+Ojpjb3B5KHBhcmFt
ZXRlcjIpLAotICAgICAgICBwMyA9IENyb3NzVGhyZWFkQ29waWVyPFAzPjo6Y29weShwYXJhbWV0
ZXIzKSwKLSAgICAgICAgcDQgPSBDcm9zc1RocmVhZENvcGllcjxQND46OmNvcHkocGFyYW1ldGVy
NCldKCkgbXV0YWJsZSB7Ci0gICAgICAgIChjYWxsZWUtPiptZXRob2QpKHAxLCBwMiwgcDMsIHA0
KTsKLSAgICB9KTsKLX0KK307CiAKLXRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFAxLCB0
eXBlbmFtZSBNUDEsIHR5cGVuYW1lIFAyLCB0eXBlbmFtZSBNUDIsIHR5cGVuYW1lIFAzLCB0eXBl
bmFtZSBNUDMsIHR5cGVuYW1lIFA0LCB0eXBlbmFtZSBNUDQsIHR5cGVuYW1lIFA1LCB0eXBlbmFt
ZSBNUDU+Ci1Dcm9zc1RocmVhZFRhc2sgY3JlYXRlQ3Jvc3NUaHJlYWRUYXNrKAotICAgIFQmIGNh
bGxlZSwKLSAgICB2b2lkIChUOjoqbWV0aG9kKShNUDEsIE1QMiwgTVAzLCBNUDQsIE1QNSksCi0g
ICAgY29uc3QgUDEmIHBhcmFtZXRlcjEsCi0gICAgY29uc3QgUDImIHBhcmFtZXRlcjIsCi0gICAg
Y29uc3QgUDMmIHBhcmFtZXRlcjMsCi0gICAgY29uc3QgUDQmIHBhcmFtZXRlcjQsCi0gICAgY29u
c3QgUDUmIHBhcmFtZXRlcjUpCit0ZW1wbGF0ZSA8dHlwZW5hbWUuLi4gUGFyYW1ldGVycywgdHlw
ZW5hbWUuLi4gQXJndW1lbnRzLCBzaXplX3QuLi4gSW5kaWNlcz4KK3ZvaWQgY2FsbEZ1bmN0aW9u
KHZvaWQgKCpmdW5jdGlvbikoUGFyYW1ldGVycy4uLiksIGNvbnN0IHN0ZDo6dHVwbGU8QXJndW1l
bnRzLi4uPiYgYXJndW1lbnRzLCBHZW5lcmF0ZWRJbmRpY2VzPEluZGljZXMuLi4+KQogewotICAg
IHJldHVybiBDcm9zc1RocmVhZFRhc2soW2NhbGxlZSA9ICZjYWxsZWUsIG1ldGhvZCwKLSAgICAg
ICAgcDEgPSBDcm9zc1RocmVhZENvcGllcjxQMT46OmNvcHkocGFyYW1ldGVyMSksCi0gICAgICAg
IHAyID0gQ3Jvc3NUaHJlYWRDb3BpZXI8UDI+Ojpjb3B5KHBhcmFtZXRlcjIpLAotICAgICAgICBw
MyA9IENyb3NzVGhyZWFkQ29waWVyPFAzPjo6Y29weShwYXJhbWV0ZXIzKSwKLSAgICAgICAgcDQg
PSBDcm9zc1RocmVhZENvcGllcjxQND46OmNvcHkocGFyYW1ldGVyNCksCi0gICAgICAgIHA1ID0g
Q3Jvc3NUaHJlYWRDb3BpZXI8UDU+Ojpjb3B5KHBhcmFtZXRlcjUpXSgpIG11dGFibGUgewotICAg
ICAgICAoY2FsbGVlLT4qbWV0aG9kKShwMSwgcDIsIHAzLCBwNCwgcDUpOwotICAgIH0pOworICAg
IGZ1bmN0aW9uKHN0ZDo6Z2V0PEluZGljZXM+KGFyZ3VtZW50cykuLi4pOwogfQogCi10ZW1wbGF0
ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBQMSwgdHlwZW5hbWUgTVAxLCB0eXBlbmFtZSBQMiwgdHlw
ZW5hbWUgTVAyLCB0eXBlbmFtZSBQMywgdHlwZW5hbWUgTVAzLCB0eXBlbmFtZSBQNCwgdHlwZW5h
bWUgTVA0LCB0eXBlbmFtZSBQNSwgdHlwZW5hbWUgTVA1LCB0eXBlbmFtZSBQNiwgdHlwZW5hbWUg
TVA2PgotQ3Jvc3NUaHJlYWRUYXNrIGNyZWF0ZUNyb3NzVGhyZWFkVGFzaygKLSAgICBUJiBjYWxs
ZWUsCi0gICAgdm9pZCAoVDo6Km1ldGhvZCkoTVAxLCBNUDIsIE1QMywgTVA0LCBNUDUsIE1QNiks
Ci0gICAgY29uc3QgUDEmIHBhcmFtZXRlcjEsCi0gICAgY29uc3QgUDImIHBhcmFtZXRlcjIsCi0g
ICAgY29uc3QgUDMmIHBhcmFtZXRlcjMsCi0gICAgY29uc3QgUDQmIHBhcmFtZXRlcjQsCi0gICAg
Y29uc3QgUDUmIHBhcmFtZXRlcjUsCi0gICAgY29uc3QgUDYmIHBhcmFtZXRlcjYpCit0ZW1wbGF0
ZTx0eXBlbmFtZS4uLiBQYXJhbWV0ZXJzLCB0eXBlbmFtZS4uLiBBcmd1bWVudHM+CitDcm9zc1Ro
cmVhZFRhc2sgY3JlYXRlQ3Jvc3NUaHJlYWRUYXNrKHZvaWQgKCptZXRob2QpKFBhcmFtZXRlcnMu
Li4pLCBjb25zdCBBcmd1bWVudHMmLi4uIGFyZ3VtZW50cykKIHsKLSAgICByZXR1cm4gQ3Jvc3NU
aHJlYWRUYXNrKFtjYWxsZWUgPSAmY2FsbGVlLCBtZXRob2QsCi0gICAgICAgIHAxID0gQ3Jvc3NU
aHJlYWRDb3BpZXI8UDE+Ojpjb3B5KHBhcmFtZXRlcjEpLAotICAgICAgICBwMiA9IENyb3NzVGhy
ZWFkQ29waWVyPFAyPjo6Y29weShwYXJhbWV0ZXIyKSwKLSAgICAgICAgcDMgPSBDcm9zc1RocmVh
ZENvcGllcjxQMz46OmNvcHkocGFyYW1ldGVyMyksCi0gICAgICAgIHA0ID0gQ3Jvc3NUaHJlYWRD
b3BpZXI8UDQ+Ojpjb3B5KHBhcmFtZXRlcjQpLAotICAgICAgICBwNSA9IENyb3NzVGhyZWFkQ29w
aWVyPFA1Pjo6Y29weShwYXJhbWV0ZXI1KSwKLSAgICAgICAgcDYgPSBDcm9zc1RocmVhZENvcGll
cjxQNj46OmNvcHkocGFyYW1ldGVyNildKCkgbXV0YWJsZSB7Ci0gICAgICAgIChjYWxsZWUtPipt
ZXRob2QpKHAxLCBwMiwgcDMsIHA0LCBwNSwgcDYpOworICAgIHJldHVybiBDcm9zc1RocmVhZFRh
c2soW21ldGhvZCwgdHVwbGUgPSBzdGQ6Om1ha2VfdHVwbGUoY3Jvc3NUaHJlYWRDb3B5PEFyZ3Vt
ZW50cz4oYXJndW1lbnRzKS4uLildKCkgbXV0YWJsZSB7CisgICAgICAgIGNhbGxGdW5jdGlvbiht
ZXRob2QsIHR1cGxlLCBJbmRleEdlbmVyYXRvcjxzaXplb2YuLi4oQXJndW1lbnRzKT4geyB9KTsK
ICAgICB9KTsKIH0KIAotdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgUDEsIHR5cGVuYW1l
IE1QMSwgdHlwZW5hbWUgUDIsIHR5cGVuYW1lIE1QMiwgdHlwZW5hbWUgUDMsIHR5cGVuYW1lIE1Q
MywgdHlwZW5hbWUgUDQsIHR5cGVuYW1lIE1QNCwgdHlwZW5hbWUgUDUsIHR5cGVuYW1lIE1QNSwg
dHlwZW5hbWUgUDYsIHR5cGVuYW1lIE1QNiwgdHlwZW5hbWUgUDcsIHR5cGVuYW1lIE1QNz4KLUNy
b3NzVGhyZWFkVGFzayBjcmVhdGVDcm9zc1RocmVhZFRhc2soCi0gICAgVCYgY2FsbGVlLAotICAg
IHZvaWQgKFQ6OiptZXRob2QpKE1QMSwgTVAyLCBNUDMsIE1QNCwgTVA1LCBNUDYsIE1QNyksCi0g
ICAgY29uc3QgUDEmIHBhcmFtZXRlcjEsCi0gICAgY29uc3QgUDImIHBhcmFtZXRlcjIsCi0gICAg
Y29uc3QgUDMmIHBhcmFtZXRlcjMsCi0gICAgY29uc3QgUDQmIHBhcmFtZXRlcjQsCi0gICAgY29u
c3QgUDUmIHBhcmFtZXRlcjUsCi0gICAgY29uc3QgUDYmIHBhcmFtZXRlcjYsCi0gICAgY29uc3Qg
UDcmIHBhcmFtZXRlcjcpCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVCwgdHlwZW5hbWUuLi4gUGFyYW1l
dGVycywgdHlwZW5hbWUuLi4gQXJndW1lbnRzLCBzaXplX3QuLi4gSW5kaWNlcz4KK3ZvaWQgY2Fs
bEZ1bmN0aW9uKFQmIGNhbGxlZSwgdm9pZCAoVDo6KmZ1bmN0aW9uKShQYXJhbWV0ZXJzLi4uKSwg
Y29uc3Qgc3RkOjp0dXBsZTxBcmd1bWVudHMuLi4+JiBhcmd1bWVudHMsIEdlbmVyYXRlZEluZGlj
ZXM8SW5kaWNlcy4uLj4pCiB7Ci0gICAgcmV0dXJuIENyb3NzVGhyZWFkVGFzayhbY2FsbGVlID0g
JmNhbGxlZSwgbWV0aG9kLAotICAgICAgICBwMSA9IENyb3NzVGhyZWFkQ29waWVyPFAxPjo6Y29w
eShwYXJhbWV0ZXIxKSwKLSAgICAgICAgcDIgPSBDcm9zc1RocmVhZENvcGllcjxQMj46OmNvcHko
cGFyYW1ldGVyMiksCi0gICAgICAgIHAzID0gQ3Jvc3NUaHJlYWRDb3BpZXI8UDM+Ojpjb3B5KHBh
cmFtZXRlcjMpLAotICAgICAgICBwNCA9IENyb3NzVGhyZWFkQ29waWVyPFA0Pjo6Y29weShwYXJh
bWV0ZXI0KSwKLSAgICAgICAgcDUgPSBDcm9zc1RocmVhZENvcGllcjxQNT46OmNvcHkocGFyYW1l
dGVyNSksCi0gICAgICAgIHA2ID0gQ3Jvc3NUaHJlYWRDb3BpZXI8UDY+Ojpjb3B5KHBhcmFtZXRl
cjYpLAotICAgICAgICBwNyA9IENyb3NzVGhyZWFkQ29waWVyPFA3Pjo6Y29weShwYXJhbWV0ZXI3
KV0oKSBtdXRhYmxlIHsKLSAgICAgICAgKGNhbGxlZS0+Km1ldGhvZCkocDEsIHAyLCBwMywgcDQs
IHA1LCBwNiwgcDcpOwotICAgIH0pOworICAgIGNhbGxlZS4qZnVuY3Rpb24oc3RkOjpnZXQ8SW5k
aWNlcz4oYXJndW1lbnRzKS4uLik7CiB9CiAKLXRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1l
IFAxLCB0eXBlbmFtZSBNUDEsIHR5cGVuYW1lIFAyLCB0eXBlbmFtZSBNUDIsIHR5cGVuYW1lIFAz
LCB0eXBlbmFtZSBNUDMsIHR5cGVuYW1lIFA0LCB0eXBlbmFtZSBNUDQsIHR5cGVuYW1lIFA1LCB0
eXBlbmFtZSBNUDUsIHR5cGVuYW1lIFA2LCB0eXBlbmFtZSBNUDYsIHR5cGVuYW1lIFA3LCB0eXBl
bmFtZSBNUDcsIHR5cGVuYW1lIFA4LCB0eXBlbmFtZSBNUDg+Ci1Dcm9zc1RocmVhZFRhc2sgY3Jl
YXRlQ3Jvc3NUaHJlYWRUYXNrKAotICAgIFQmIGNhbGxlZSwKLSAgICB2b2lkIChUOjoqbWV0aG9k
KShNUDEsIE1QMiwgTVAzLCBNUDQsIE1QNSwgTVA2LCBNUDcsIE1QOCksCi0gICAgY29uc3QgUDEm
IHBhcmFtZXRlcjEsCi0gICAgY29uc3QgUDImIHBhcmFtZXRlcjIsCi0gICAgY29uc3QgUDMmIHBh
cmFtZXRlcjMsCi0gICAgY29uc3QgUDQmIHBhcmFtZXRlcjQsCi0gICAgY29uc3QgUDUmIHBhcmFt
ZXRlcjUsCi0gICAgY29uc3QgUDYmIHBhcmFtZXRlcjYsCi0gICAgY29uc3QgUDcmIHBhcmFtZXRl
cjcsCi0gICAgY29uc3QgUDgmIHBhcmFtZXRlcjgpCit0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBl
bmFtZS4uLiBQYXJhbWV0ZXJzLCB0eXBlbmFtZS4uLiBBcmd1bWVudHM+CitDcm9zc1RocmVhZFRh
c2sgY3JlYXRlQ3Jvc3NUaHJlYWRUYXNrKFQmIGNhbGxlZSwgdm9pZCAoVDo6Km1ldGhvZCkoUGFy
YW1ldGVycy4uLiksIGNvbnN0IEFyZ3VtZW50cyYuLi4gYXJndW1lbnRzKQogewotICAgIHJldHVy
biBDcm9zc1RocmVhZFRhc2soW2NhbGxlZSA9ICZjYWxsZWUsIG1ldGhvZCwKLSAgICAgICAgcDEg
PSBDcm9zc1RocmVhZENvcGllcjxQMT46OmNvcHkocGFyYW1ldGVyMSksCi0gICAgICAgIHAyID0g
Q3Jvc3NUaHJlYWRDb3BpZXI8UDI+Ojpjb3B5KHBhcmFtZXRlcjIpLAotICAgICAgICBwMyA9IENy
b3NzVGhyZWFkQ29waWVyPFAzPjo6Y29weShwYXJhbWV0ZXIzKSwKLSAgICAgICAgcDQgPSBDcm9z
c1RocmVhZENvcGllcjxQND46OmNvcHkocGFyYW1ldGVyNCksCi0gICAgICAgIHA1ID0gQ3Jvc3NU
aHJlYWRDb3BpZXI8UDU+Ojpjb3B5KHBhcmFtZXRlcjUpLAotICAgICAgICBwNiA9IENyb3NzVGhy
ZWFkQ29waWVyPFA2Pjo6Y29weShwYXJhbWV0ZXI2KSwKLSAgICAgICAgcDcgPSBDcm9zc1RocmVh
ZENvcGllcjxQNz46OmNvcHkocGFyYW1ldGVyNyksCi0gICAgICAgIHA4ID0gQ3Jvc3NUaHJlYWRD
b3BpZXI8UDg+Ojpjb3B5KHBhcmFtZXRlcjgpXSgpIG11dGFibGUgewotICAgICAgICAoY2FsbGVl
LT4qbWV0aG9kKShwMSwgcDIsIHAzLCBwNCwgcDUsIHA2LCBwNywgcDgpOworICAgIHJldHVybiBD
cm9zc1RocmVhZFRhc2soW2NhbGxlZSA9ICZjYWxsZWUsIG1ldGhvZCwgdHVwbGUgPSBzdGQ6Om1h
a2VfdHVwbGUoY3Jvc3NUaHJlYWRDb3B5PEFyZ3VtZW50cz4oYXJndW1lbnRzKS4uLildKCkgbXV0
YWJsZSB7CisgICAgICAgIGNhbGxGdW5jdGlvbihjYWxsZWUsIG1ldGhvZCwgdHVwbGUsIEluZGV4
R2VuZXJhdG9yPHNpemVvZi4uLihBcmd1bWVudHMpPiB7IH0pOwogICAgIH0pOwogfQogCmRpZmYg
LS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNjM5ODAzZDkx
YTU5OTFiMmViOTVmN2JhYTk3ZTE3YTZlZWEwOTQ4ZC4uNWVhNDJmOGNlMGU3NjFlNzYzMDVkOTAw
ODMwM2YwMWRhNzVhM2ZlYSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xz
L0NoYW5nZUxvZwpAQCAtMSw1ICsxLDE1IEBACiAyMDE2LTA2LTA4ICBCcmFkeSBFaWRzb24gIDxi
ZWlkc29uQGFwcGxlLmNvbT4KIAorICAgICAgICBHcmVhdGx5IHNpbXBsaWZ5IENyb3NzVGhyZWFk
VGFzay5oLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTU4NTQyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9Dcm9zc1RocmVhZFRhc2suY3BwOgorICAgICAgICAo
VGVzdFdlYktpdEFQSTo6VEVTVCk6CisKKzIwMTYtMDYtMDggIEJyYWR5IEVpZHNvbiAgPGJlaWRz
b25AYXBwbGUuY29tPgorCiAgICAgICAgIFRyeSB0byBmaXggdGhlIFdpbmRvd3MgYnVpbGQuCiAK
ICAgICAgICAgVW5yZXZpZXdlZC4KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV1RGL0Nyb3NzVGhyZWFkVGFzay5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dU
Ri9Dcm9zc1RocmVhZFRhc2suY3BwCmluZGV4IDg5OTUyZTkzNTVmMTdjMTcyMDgzNTIyNzViZjdm
NDcwMTE1MzllZWUuLmI1MGNiMzE3MDE0N2RkNTRjNjQ3OTcwZWQxMmU1NTFhNzhiNjRhOTcgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0Nyb3NzVGhyZWFkVGFzay5j
cHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvQ3Jvc3NUaHJlYWRUYXNrLmNw
cApAQCAtODUsNyArODUsNiBAQCBzdHJ1Y3QgTGlmZXRpbWVMb2dnZXIgewogICAgICAgICBsb2co
KS5zdHIoIiIpOwogICAgICAgICByZXR1cm4gc3RyaW5nOwogICAgIH0KLQogfTsKIAogdm9pZCB0
ZXN0RnVuY3Rpb24oY29uc3QgTGlmZXRpbWVMb2dnZXImLCBjb25zdCBMaWZldGltZUxvZ2dlciYs
IGNvbnN0IExpZmV0aW1lTG9nZ2VyJikKQEAgLTEwMyw3ICsxMDIsNyBAQCBURVNUKFdURl9Dcm9z
c1RocmVhZFRhc2ssIEJhc2ljKQogICAgICAgICBhdXRvIHRhc2sgPSBjcmVhdGVDcm9zc1RocmVh
ZFRhc2sodGVzdEZ1bmN0aW9uLCBsb2dnZXIxLCBsb2dnZXIyLCBsb2dnZXIzKTsKICAgICAgICAg
dGFzay5wZXJmb3JtVGFzaygpOwogICAgIH0KLSAgICBBU1NFUlRfU1RSRVEoImRlZmF1bHRfY29u
c3RydWN0b3IoPGRlZmF1bHQ+LTAtMCkgY29weV9jb25zdHJ1Y3Rvcig8ZGVmYXVsdD4tMS0wKSBu
YW1lX2NvbnN0cnVjdG9yKGxvZ2dlci0wLTApIGlzb2xhdGVkQ29weSgpIGNvcHlfY29uc3RydWN0
b3IoPGRlZmF1bHQ+LTEtMCkgaXNvbGF0ZWRDb3B5KCkgY29weV9jb25zdHJ1Y3Rvcig8ZGVmYXVs
dD4tMi0wKSBpc29sYXRlZENvcHkoKSBjb3B5X2NvbnN0cnVjdG9yKGxvZ2dlci0xLTApIG1vdmVf
Y29uc3RydWN0b3IoPGRlZmF1bHQ+LTEtMSkgbW92ZV9jb25zdHJ1Y3Rvcig8ZGVmYXVsdD4tMi0x
KSBtb3ZlX2NvbnN0cnVjdG9yKGxvZ2dlci0xLTEpIGRlc3RydWN0b3IobG9nZ2VyLTEtMCkgZGVz
dHJ1Y3Rvcig8ZGVmYXVsdD4tMi0wKSBkZXN0cnVjdG9yKDxkZWZhdWx0Pi0xLTApIHRlc3RGdW5j
dGlvbiBjYWxsZWQgZGVzdHJ1Y3Rvcihsb2dnZXItMS0xKSBkZXN0cnVjdG9yKDxkZWZhdWx0Pi0y
LTEpIGRlc3RydWN0b3IoPGRlZmF1bHQ+LTEtMSkgZGVzdHJ1Y3Rvcihsb2dnZXItMC0wKSBkZXN0
cnVjdG9yKDxkZWZhdWx0Pi0xLTApIGRlc3RydWN0b3IoPGRlZmF1bHQ+LTAtMCkgIiwgTGlmZXRp
bWVMb2dnZXI6OnRha2VMb2dTdHIoKS5jX3N0cigpKTsKKyAgICBBU1NFUlRfU1RSRVEoImRlZmF1
bHRfY29uc3RydWN0b3IoPGRlZmF1bHQ+LTAtMCkgY29weV9jb25zdHJ1Y3Rvcig8ZGVmYXVsdD4t
MS0wKSBuYW1lX2NvbnN0cnVjdG9yKGxvZ2dlci0wLTApIGlzb2xhdGVkQ29weSgpIGNvcHlfY29u
c3RydWN0b3IoPGRlZmF1bHQ+LTEtMCkgaXNvbGF0ZWRDb3B5KCkgY29weV9jb25zdHJ1Y3Rvcig8
ZGVmYXVsdD4tMi0wKSBpc29sYXRlZENvcHkoKSBjb3B5X2NvbnN0cnVjdG9yKGxvZ2dlci0xLTAp
IG1vdmVfY29uc3RydWN0b3IoPGRlZmF1bHQ+LTEtMSkgbW92ZV9jb25zdHJ1Y3Rvcig8ZGVmYXVs
dD4tMi0xKSBtb3ZlX2NvbnN0cnVjdG9yKGxvZ2dlci0xLTEpIGRlc3RydWN0b3IobG9nZ2VyLTEt
MCkgZGVzdHJ1Y3Rvcig8ZGVmYXVsdD4tMi0wKSBkZXN0cnVjdG9yKDxkZWZhdWx0Pi0xLTApIG1v
dmVfY29uc3RydWN0b3IoPGRlZmF1bHQ+LTEtMikgbW92ZV9jb25zdHJ1Y3Rvcig8ZGVmYXVsdD4t
Mi0yKSBtb3ZlX2NvbnN0cnVjdG9yKGxvZ2dlci0xLTIpIGRlc3RydWN0b3IobG9nZ2VyLTEtMSkg
ZGVzdHJ1Y3Rvcig8ZGVmYXVsdD4tMi0xKSBkZXN0cnVjdG9yKDxkZWZhdWx0Pi0xLTEpIHRlc3RG
dW5jdGlvbiBjYWxsZWQgZGVzdHJ1Y3Rvcihsb2dnZXItMS0yKSBkZXN0cnVjdG9yKDxkZWZhdWx0
Pi0yLTIpIGRlc3RydWN0b3IoPGRlZmF1bHQ+LTEtMikgZGVzdHJ1Y3Rvcihsb2dnZXItMC0wKSBk
ZXN0cnVjdG9yKDxkZWZhdWx0Pi0xLTApIGRlc3RydWN0b3IoPGRlZmF1bHQ+LTAtMCkgIiwgTGlm
ZXRpbWVMb2dnZXI6OnRha2VMb2dTdHIoKS5jX3N0cigpKTsKIH0KICAgICAKIH0gLy8gbmFtZXNw
YWNlIFRlc3RXZWJLaXRBUEkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>280843</attachid>
            <date>2016-06-08 14:51:13 -0700</date>
            <delta_ts>2016-06-08 15:40:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-158542-20160608145241.patch</filename>
            <type>text/plain</type>
            <size>15091</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAxODExCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDVmZTY1MzZmMzYzODgyNjgzNmRiYzk0
ZWVjM2M0ODk3NzMwZmEyMTkuLjUzOTE5Y2RiOGExNzY1OGU4YTc1YWFiN2VkYTRjMjc4Y2NiM2Zl
OGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDUgKzEsMjAgQEAKIDIwMTYtMDYtMDggIEJyYWR5IEVpZHNvbiAgPGJlaWRz
b25AYXBwbGUuY29tPgogCisgICAgICAgIEdyZWF0bHkgc2ltcGxpZnkgQ3Jvc3NUaHJlYWRUYXNr
LmguCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTg1
NDIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHd0
Zi9Dcm9zc1RocmVhZFRhc2suaDoKKyAgICAgICAgKFdURjo6Y3Jvc3NUaHJlYWRDb3B5KToKKyAg
ICAgICAgKFdURjo6Y2FsbEZ1bmN0aW9uSW1wbCk6CisgICAgICAgIChXVEY6OmNhbGxGdW5jdGlv
bik6CisgICAgICAgIChXVEY6OmNyZWF0ZUNyb3NzVGhyZWFkVGFzayk6CisgICAgICAgIChXVEY6
OmNhbGxNZW1iZXJGdW5jdGlvbkltcGwpOgorICAgICAgICAoV1RGOjpjYWxsTWVtYmVyRnVuY3Rp
b24pOgorCisyMDE2LTA2LTA4ICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KKwog
ICAgICAgICBNYWtlIENyb3NzVGhyZWFkQ29waWVyIG1vcmUgZWZmaWNpZW50IChmZXdlciBjb3Bp
ZXMhKS4KICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1
ODQ1NgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9Dcm9zc1RocmVhZFRhc2suaCBiL1Nv
dXJjZS9XVEYvd3RmL0Nyb3NzVGhyZWFkVGFzay5oCmluZGV4IDUzODU4YmNlMTQ0ZmFkMGM3ZDcx
YWYzYzBjZjU5NzhlNzI0YWViOGIuLjhkN2FlMDZkYWRmNTE2N2NlODM0ZWUwMmU1MTFkYWM0Mzgw
ODRjMmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0Nyb3NzVGhyZWFkVGFzay5oCisrKyBi
L1NvdXJjZS9XVEYvd3RmL0Nyb3NzVGhyZWFkVGFzay5oCkBAIC0zMiwyNCArMzIsMTAgQEAKIG5h
bWVzcGFjZSBXVEYgewogCiBjbGFzcyBDcm9zc1RocmVhZFRhc2sgewotICAgIHRlbXBsYXRlPGNs
YXNzIFQ+Ci0gICAgZnJpZW5kIENyb3NzVGhyZWFkVGFzayBjcmVhdGVDcm9zc1RocmVhZFRhc2so
VCYsIHZvaWQgKFQ6OiopKCkpOwotICAgIHRlbXBsYXRlPGNsYXNzIFQsIGNsYXNzIFAxLCBjbGFz
cyBNUDE+Ci0gICAgZnJpZW5kIENyb3NzVGhyZWFkVGFzayBjcmVhdGVDcm9zc1RocmVhZFRhc2so
VCYsIHZvaWQgKFQ6OiopKE1QMSksIGNvbnN0IFAxJik7Ci0gICAgdGVtcGxhdGU8Y2xhc3MgVCwg
Y2xhc3MgUDEsIGNsYXNzIE1QMSwgY2xhc3MgUDIsIGNsYXNzIE1QMj4KLSAgICBmcmllbmQgQ3Jv
c3NUaHJlYWRUYXNrIGNyZWF0ZUNyb3NzVGhyZWFkVGFzayhUJiwgdm9pZCAoVDo6KikoTVAxLCBN
UDIpLCBjb25zdCBQMSYsIGNvbnN0IFAyJik7Ci0gICAgdGVtcGxhdGU8Y2xhc3MgVCwgY2xhc3Mg
UDEsIGNsYXNzIE1QMSwgY2xhc3MgUDIsIGNsYXNzIE1QMiwgY2xhc3MgUDMsIGNsYXNzIE1QMz4K
LSAgICBmcmllbmQgQ3Jvc3NUaHJlYWRUYXNrIGNyZWF0ZUNyb3NzVGhyZWFkVGFzayhUJiwgdm9p
ZCAoVDo6KikoTVAxLCBNUDIsIE1QMyksIGNvbnN0IFAxJiwgY29uc3QgUDImLCBjb25zdCBQMyYp
OwotICAgIHRlbXBsYXRlPGNsYXNzIFQsIGNsYXNzIFAxLCBjbGFzcyBNUDEsIGNsYXNzIFAyLCBj
bGFzcyBNUDIsIGNsYXNzIFAzLCBjbGFzcyBNUDMsIGNsYXNzIFA0LCBjbGFzcyBNUDQ+Ci0gICAg
ZnJpZW5kIENyb3NzVGhyZWFkVGFzayBjcmVhdGVDcm9zc1RocmVhZFRhc2soVCYsIHZvaWQgKFQ6
OiopKE1QMSwgTVAyLCBNUDMsIE1QNCksIGNvbnN0IFAxJiwgY29uc3QgUDImLCBjb25zdCBQMyYs
IGNvbnN0IFA0Jik7Ci0gICAgdGVtcGxhdGU8Y2xhc3MgVCwgY2xhc3MgUDEsIGNsYXNzIE1QMSwg
Y2xhc3MgUDIsIGNsYXNzIE1QMiwgY2xhc3MgUDMsIGNsYXNzIE1QMywgY2xhc3MgUDQsIGNsYXNz
IE1QNCwgY2xhc3MgUDUsIGNsYXNzIE1QNT4KLSAgICBmcmllbmQgQ3Jvc3NUaHJlYWRUYXNrIGNy
ZWF0ZUNyb3NzVGhyZWFkVGFzayhUJiwgdm9pZCAoVDo6KikoTVAxLCBNUDIsIE1QMywgTVA0LCBN
UDUpLCBjb25zdCBQMSYsIGNvbnN0IFAyJiwgY29uc3QgUDMmLCBjb25zdCBQNCYsIGNvbnN0IFA1
Jik7Ci0gICAgdGVtcGxhdGU8Y2xhc3MgVCwgY2xhc3MgUDEsIGNsYXNzIE1QMSwgY2xhc3MgUDIs
IGNsYXNzIE1QMiwgY2xhc3MgUDMsIGNsYXNzIE1QMywgY2xhc3MgUDQsIGNsYXNzIE1QNCwgY2xh
c3MgUDUsIGNsYXNzIE1QNSwgY2xhc3MgUDYsIGNsYXNzIE1QNj4KLSAgICBmcmllbmQgQ3Jvc3NU
aHJlYWRUYXNrIGNyZWF0ZUNyb3NzVGhyZWFkVGFzayhUJiwgdm9pZCAoVDo6KikoTVAxLCBNUDIs
IE1QMywgTVA0LCBNUDUsIE1QNiksIGNvbnN0IFAxJiwgY29uc3QgUDImLCBjb25zdCBQMyYsIGNv
bnN0IFA0JiwgY29uc3QgUDUmLCBjb25zdCBQNiYpOwotICAgIHRlbXBsYXRlPGNsYXNzIFQsIGNs
YXNzIFAxLCBjbGFzcyBNUDEsIGNsYXNzIFAyLCBjbGFzcyBNUDIsIGNsYXNzIFAzLCBjbGFzcyBN
UDMsIGNsYXNzIFA0LCBjbGFzcyBNUDQsIGNsYXNzIFA1LCBjbGFzcyBNUDUsIGNsYXNzIFA2LCBj
bGFzcyBNUDYsIGNsYXNzIFA3LCBjbGFzcyBNUDc+Ci0gICAgZnJpZW5kIENyb3NzVGhyZWFkVGFz
ayBjcmVhdGVDcm9zc1RocmVhZFRhc2soVCYsIHZvaWQgKFQ6OiopKE1QMSwgTVAyLCBNUDMsIE1Q
NCwgTVA1LCBNUDYsIE1QNyksIGNvbnN0IFAxJiwgY29uc3QgUDImLCBjb25zdCBQMyYsIGNvbnN0
IFA0JiwgY29uc3QgUDUmLCBjb25zdCBQNiYsIGNvbnN0IFA3Jik7Ci0gICAgdGVtcGxhdGU8Y2xh
c3MgVCwgY2xhc3MgUDEsIGNsYXNzIE1QMSwgY2xhc3MgUDIsIGNsYXNzIE1QMiwgY2xhc3MgUDMs
IGNsYXNzIE1QMywgY2xhc3MgUDQsIGNsYXNzIE1QNCwgY2xhc3MgUDUsIGNsYXNzIE1QNSwgY2xh
c3MgUDYsIGNsYXNzIE1QNiwgY2xhc3MgUDcsIGNsYXNzIE1QNywgY2xhc3MgUDgsIGNsYXNzIE1Q
OD4KLSAgICBmcmllbmQgQ3Jvc3NUaHJlYWRUYXNrIGNyZWF0ZUNyb3NzVGhyZWFkVGFzayhUJiwg
dm9pZCAoVDo6KikoTVAxLCBNUDIsIE1QMywgTVA0LCBNUDUsIE1QNiwgTVA3LCBNUDgpLCBjb25z
dCBQMSYsIGNvbnN0IFAyJiwgY29uc3QgUDMmLCBjb25zdCBQNCYsIGNvbnN0IFA1JiwgY29uc3Qg
UDYmLCBjb25zdCBQNyYsIGNvbnN0IFA4Jik7CisgICAgdGVtcGxhdGU8dHlwZW5hbWUuLi4gUGFy
YW1ldGVycywgdHlwZW5hbWUuLi4gQXJndW1lbnRzPgorICAgIGZyaWVuZCBDcm9zc1RocmVhZFRh
c2sgY3JlYXRlQ3Jvc3NUaHJlYWRUYXNrKHZvaWQgKCopKFBhcmFtZXRlcnMuLi4pLCBBcmd1bWVu
dHMuLi4pOworICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lLi4uIFBhcmFtZXRlcnMs
IHR5cGVuYW1lLi4uIEFyZ3VtZW50cz4KKyAgICBmcmllbmQgQ3Jvc3NUaHJlYWRUYXNrIGNyZWF0
ZUNyb3NzVGhyZWFkVGFzayhUJiwgdm9pZCAoVDo6KikoUGFyYW1ldGVycy4uLiksIEFyZ3VtZW50
cy4uLik7CiBwdWJsaWM6CiAgICAgQ3Jvc3NUaHJlYWRUYXNrKCkgPSBkZWZhdWx0OwogCkBAIC02
OCwxODAgKzU0LDQ5IEBAIHByb3RlY3RlZDoKICAgICBOb25jb3B5YWJsZUZ1bmN0aW9uPHZvaWQg
KCk+IG1fdGFza0Z1bmN0aW9uOwogfTsKIAotdGVtcGxhdGU8dHlwZW5hbWUgVD4KLUNyb3NzVGhy
ZWFkVGFzayBjcmVhdGVDcm9zc1RocmVhZFRhc2soCi0gICAgVCYgY2FsbGVlLAotICAgIHZvaWQg
KFQ6OiptZXRob2QpKCkpCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KK1QgY3Jvc3NUaHJlYWRDb3B5
KGNvbnN0IFQmIHQpCiB7Ci0gICAgcmV0dXJuIENyb3NzVGhyZWFkVGFzayhbY2FsbGVlID0gJmNh
bGxlZSwgbWV0aG9kXSgpIG11dGFibGUgewotICAgICAgICAoY2FsbGVlLT4qbWV0aG9kKSgpOwot
ICAgIH0pOworICAgIHJldHVybiBDcm9zc1RocmVhZENvcGllcjxUPjo6Y29weSh0KTsKIH0KIAot
dGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgUDEsIHR5cGVuYW1lIE1QMT4KLUNyb3NzVGhy
ZWFkVGFzayBjcmVhdGVDcm9zc1RocmVhZFRhc2soCi0gICAgVCYgY2FsbGVlLAotICAgIHZvaWQg
KFQ6OiptZXRob2QpKE1QMSksCi0gICAgY29uc3QgUDEmIHBhcmFtZXRlcjEpCit0ZW1wbGF0ZSA8
dHlwZW5hbWUgRiwgdHlwZW5hbWUgQXJnc1R1cGxlLCBzaXplX3QuLi4gQXJnc0luZGV4Pgordm9p
ZCBjYWxsRnVuY3Rpb25JbXBsKEYgZnVuY3Rpb24sIEFyZ3NUdXBsZSYmIGFyZ3MsIHN0ZDo6aW5k
ZXhfc2VxdWVuY2U8QXJnc0luZGV4Li4uPikKIHsKLSAgICByZXR1cm4gQ3Jvc3NUaHJlYWRUYXNr
KFtjYWxsZWUgPSAmY2FsbGVlLCBtZXRob2QsCi0gICAgICAgIHAxID0gQ3Jvc3NUaHJlYWRDb3Bp
ZXI8UDE+Ojpjb3B5KHBhcmFtZXRlcjEpXSgpIG11dGFibGUgewotICAgICAgICAoY2FsbGVlLT4q
bWV0aG9kKShwMSk7Ci0gICAgfSk7CisgICAgZnVuY3Rpb24oc3RkOjpnZXQ8QXJnc0luZGV4Pihz
dGQ6OmZvcndhcmQ8QXJnc1R1cGxlPihhcmdzKSkuLi4pOwogfQogCi10ZW1wbGF0ZTx0eXBlbmFt
ZSBULCB0eXBlbmFtZSBQMSwgdHlwZW5hbWUgTVAxLCB0eXBlbmFtZSBQMiwgdHlwZW5hbWUgTVAy
PgotQ3Jvc3NUaHJlYWRUYXNrIGNyZWF0ZUNyb3NzVGhyZWFkVGFzaygKLSAgICBUJiBjYWxsZWUs
Ci0gICAgdm9pZCAoVDo6Km1ldGhvZCkoTVAxLCBNUDIpLAotICAgIGNvbnN0IFAxJiBwYXJhbWV0
ZXIxLAotICAgIGNvbnN0IFAyJiBwYXJhbWV0ZXIyKQordGVtcGxhdGUgPHR5cGVuYW1lIEYsIHR5
cGVuYW1lIEFyZ3NUdXBsZSwgdHlwZW5hbWUgQXJnc0luZGljaWVzID0gc3RkOjptYWtlX2luZGV4
X3NlcXVlbmNlPHN0ZDo6dHVwbGVfc2l6ZTxBcmdzVHVwbGU+Ojp2YWx1ZT4+Cit2b2lkIGNhbGxG
dW5jdGlvbihGIGZ1bmN0aW9uLCBBcmdzVHVwbGUmJiBhcmdzKQogewotICAgIHJldHVybiBDcm9z
c1RocmVhZFRhc2soW2NhbGxlZSA9ICZjYWxsZWUsIG1ldGhvZCwKLSAgICAgICAgcDEgPSBDcm9z
c1RocmVhZENvcGllcjxQMT46OmNvcHkocGFyYW1ldGVyMSksCi0gICAgICAgIHAyID0gQ3Jvc3NU
aHJlYWRDb3BpZXI8UDI+Ojpjb3B5KHBhcmFtZXRlcjIpXSgpIG11dGFibGUgewotICAgICAgICAo
Y2FsbGVlLT4qbWV0aG9kKShwMSwgcDIpOwotICAgIH0pOworICAgIGNhbGxGdW5jdGlvbkltcGwo
ZnVuY3Rpb24sIHN0ZDo6Zm9yd2FyZDxBcmdzVHVwbGU+KGFyZ3MpLCBBcmdzSW5kaWNpZXMoKSk7
CiB9CiAKLXRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFAxLCB0eXBlbmFtZSBNUDEsIHR5
cGVuYW1lIFAyLCB0eXBlbmFtZSBNUDIsIHR5cGVuYW1lIFAzLCB0eXBlbmFtZSBNUDM+Ci1Dcm9z
c1RocmVhZFRhc2sgY3JlYXRlQ3Jvc3NUaHJlYWRUYXNrKAotICAgIFQmIGNhbGxlZSwKLSAgICB2
b2lkIChUOjoqbWV0aG9kKShNUDEsIE1QMiwgTVAzKSwKLSAgICBjb25zdCBQMSYgcGFyYW1ldGVy
MSwKLSAgICBjb25zdCBQMiYgcGFyYW1ldGVyMiwKLSAgICBjb25zdCBQMyYgcGFyYW1ldGVyMykK
K3RlbXBsYXRlPHR5cGVuYW1lLi4uIFBhcmFtZXRlcnMsIHR5cGVuYW1lLi4uIEFyZ3VtZW50cz4K
K0Nyb3NzVGhyZWFkVGFzayBjcmVhdGVDcm9zc1RocmVhZFRhc2sodm9pZCAoKm1ldGhvZCkoUGFy
YW1ldGVycy4uLiksIGNvbnN0IEFyZ3VtZW50cyYuLi4gYXJndW1lbnRzKQogewotICAgIHJldHVy
biBDcm9zc1RocmVhZFRhc2soW2NhbGxlZSA9ICZjYWxsZWUsIG1ldGhvZCwKLSAgICAgICAgcDEg
PSBDcm9zc1RocmVhZENvcGllcjxQMT46OmNvcHkocGFyYW1ldGVyMSksCi0gICAgICAgIHAyID0g
Q3Jvc3NUaHJlYWRDb3BpZXI8UDI+Ojpjb3B5KHBhcmFtZXRlcjIpLAotICAgICAgICBwMyA9IENy
b3NzVGhyZWFkQ29waWVyPFAzPjo6Y29weShwYXJhbWV0ZXIzKV0oKSBtdXRhYmxlIHsKLSAgICAg
ICAgKGNhbGxlZS0+Km1ldGhvZCkocDEsIHAyLCBwMyk7CisgICAgcmV0dXJuIENyb3NzVGhyZWFk
VGFzayhbbWV0aG9kLCBhcmd1bWVudHMgPSBzdGQ6Om1ha2VfdHVwbGUoY3Jvc3NUaHJlYWRDb3B5
PEFyZ3VtZW50cz4oYXJndW1lbnRzKS4uLildKCkgbXV0YWJsZSB7CisgICAgICAgIGNhbGxGdW5j
dGlvbihtZXRob2QsIFdURk1vdmUoYXJndW1lbnRzKSk7CiAgICAgfSk7CiB9CiAKLXRlbXBsYXRl
PHR5cGVuYW1lIFAxLCB0eXBlbmFtZSBNUDEsIHR5cGVuYW1lIFAyLCB0eXBlbmFtZSBNUDIsIHR5
cGVuYW1lIFAzLCB0eXBlbmFtZSBNUDM+Ci1Dcm9zc1RocmVhZFRhc2sgY3JlYXRlQ3Jvc3NUaHJl
YWRUYXNrKAotICAgIHZvaWQgKCptZXRob2QpKE1QMSwgTVAyLCBNUDMpLAotICAgIGNvbnN0IFAx
JiBwYXJhbWV0ZXIxLAotICAgIGNvbnN0IFAyJiBwYXJhbWV0ZXIyLAotICAgIGNvbnN0IFAzJiBw
YXJhbWV0ZXIzKQordGVtcGxhdGUgPHR5cGVuYW1lIEMsIHR5cGVuYW1lIE1GLCB0eXBlbmFtZSBB
cmdzVHVwbGUsIHNpemVfdC4uLiBBcmdzSW5kZXg+Cit2b2lkIGNhbGxNZW1iZXJGdW5jdGlvbklt
cGwoQyogb2JqZWN0LCBNRiBmdW5jdGlvbiwgQXJnc1R1cGxlJiYgYXJncywgc3RkOjppbmRleF9z
ZXF1ZW5jZTxBcmdzSW5kZXguLi4+KQogewotICAgIHJldHVybiBDcm9zc1RocmVhZFRhc2soW21l
dGhvZCwKLSAgICAgICAgcDEgPSBDcm9zc1RocmVhZENvcGllcjxQMT46OmNvcHkocGFyYW1ldGVy
MSksCi0gICAgICAgIHAyID0gQ3Jvc3NUaHJlYWRDb3BpZXI8UDI+Ojpjb3B5KHBhcmFtZXRlcjIp
LAotICAgICAgICBwMyA9IENyb3NzVGhyZWFkQ29waWVyPFAzPjo6Y29weShwYXJhbWV0ZXIzKV0o
KSBtdXRhYmxlIHsKLSAgICAgICAgbWV0aG9kKHAxLCBwMiwgcDMpOwotICAgIH0pOworICAgIChv
YmplY3QtPipmdW5jdGlvbikoc3RkOjpnZXQ8QXJnc0luZGV4PihzdGQ6OmZvcndhcmQ8QXJnc1R1
cGxlPihhcmdzKSkuLi4pOwogfQogCi10ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBQMSwg
dHlwZW5hbWUgTVAxLCB0eXBlbmFtZSBQMiwgdHlwZW5hbWUgTVAyLCB0eXBlbmFtZSBQMywgdHlw
ZW5hbWUgTVAzLCB0eXBlbmFtZSBQNCwgdHlwZW5hbWUgTVA0PgotQ3Jvc3NUaHJlYWRUYXNrIGNy
ZWF0ZUNyb3NzVGhyZWFkVGFzaygKLSAgICBUJiBjYWxsZWUsCi0gICAgdm9pZCAoVDo6Km1ldGhv
ZCkoTVAxLCBNUDIsIE1QMywgTVA0KSwKLSAgICBjb25zdCBQMSYgcGFyYW1ldGVyMSwKLSAgICBj
b25zdCBQMiYgcGFyYW1ldGVyMiwKLSAgICBjb25zdCBQMyYgcGFyYW1ldGVyMywKLSAgICBjb25z
dCBQNCYgcGFyYW1ldGVyNCkKK3RlbXBsYXRlIDx0eXBlbmFtZSBDLCB0eXBlbmFtZSBNRiwgdHlw
ZW5hbWUgQXJnc1R1cGxlLCB0eXBlbmFtZSBBcmdzSW5kaWNpZXMgPSBzdGQ6Om1ha2VfaW5kZXhf
c2VxdWVuY2U8c3RkOjp0dXBsZV9zaXplPEFyZ3NUdXBsZT46OnZhbHVlPj4KK3ZvaWQgY2FsbE1l
bWJlckZ1bmN0aW9uKEMqIG9iamVjdCwgTUYgZnVuY3Rpb24sIEFyZ3NUdXBsZSYmIGFyZ3MpCiB7
Ci0gICAgcmV0dXJuIENyb3NzVGhyZWFkVGFzayhbY2FsbGVlID0gJmNhbGxlZSwgbWV0aG9kLAot
ICAgICAgICBwMSA9IENyb3NzVGhyZWFkQ29waWVyPFAxPjo6Y29weShwYXJhbWV0ZXIxKSwKLSAg
ICAgICAgcDIgPSBDcm9zc1RocmVhZENvcGllcjxQMj46OmNvcHkocGFyYW1ldGVyMiksCi0gICAg
ICAgIHAzID0gQ3Jvc3NUaHJlYWRDb3BpZXI8UDM+Ojpjb3B5KHBhcmFtZXRlcjMpLAotICAgICAg
ICBwNCA9IENyb3NzVGhyZWFkQ29waWVyPFA0Pjo6Y29weShwYXJhbWV0ZXI0KV0oKSBtdXRhYmxl
IHsKLSAgICAgICAgKGNhbGxlZS0+Km1ldGhvZCkocDEsIHAyLCBwMywgcDQpOwotICAgIH0pOwot
fQotCi10ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBQMSwgdHlwZW5hbWUgTVAxLCB0eXBl
bmFtZSBQMiwgdHlwZW5hbWUgTVAyLCB0eXBlbmFtZSBQMywgdHlwZW5hbWUgTVAzLCB0eXBlbmFt
ZSBQNCwgdHlwZW5hbWUgTVA0LCB0eXBlbmFtZSBQNSwgdHlwZW5hbWUgTVA1PgotQ3Jvc3NUaHJl
YWRUYXNrIGNyZWF0ZUNyb3NzVGhyZWFkVGFzaygKLSAgICBUJiBjYWxsZWUsCi0gICAgdm9pZCAo
VDo6Km1ldGhvZCkoTVAxLCBNUDIsIE1QMywgTVA0LCBNUDUpLAotICAgIGNvbnN0IFAxJiBwYXJh
bWV0ZXIxLAotICAgIGNvbnN0IFAyJiBwYXJhbWV0ZXIyLAotICAgIGNvbnN0IFAzJiBwYXJhbWV0
ZXIzLAotICAgIGNvbnN0IFA0JiBwYXJhbWV0ZXI0LAotICAgIGNvbnN0IFA1JiBwYXJhbWV0ZXI1
KQotewotICAgIHJldHVybiBDcm9zc1RocmVhZFRhc2soW2NhbGxlZSA9ICZjYWxsZWUsIG1ldGhv
ZCwKLSAgICAgICAgcDEgPSBDcm9zc1RocmVhZENvcGllcjxQMT46OmNvcHkocGFyYW1ldGVyMSks
Ci0gICAgICAgIHAyID0gQ3Jvc3NUaHJlYWRDb3BpZXI8UDI+Ojpjb3B5KHBhcmFtZXRlcjIpLAot
ICAgICAgICBwMyA9IENyb3NzVGhyZWFkQ29waWVyPFAzPjo6Y29weShwYXJhbWV0ZXIzKSwKLSAg
ICAgICAgcDQgPSBDcm9zc1RocmVhZENvcGllcjxQND46OmNvcHkocGFyYW1ldGVyNCksCi0gICAg
ICAgIHA1ID0gQ3Jvc3NUaHJlYWRDb3BpZXI8UDU+Ojpjb3B5KHBhcmFtZXRlcjUpXSgpIG11dGFi
bGUgewotICAgICAgICAoY2FsbGVlLT4qbWV0aG9kKShwMSwgcDIsIHAzLCBwNCwgcDUpOwotICAg
IH0pOwotfQotCi10ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBQMSwgdHlwZW5hbWUgTVAx
LCB0eXBlbmFtZSBQMiwgdHlwZW5hbWUgTVAyLCB0eXBlbmFtZSBQMywgdHlwZW5hbWUgTVAzLCB0
eXBlbmFtZSBQNCwgdHlwZW5hbWUgTVA0LCB0eXBlbmFtZSBQNSwgdHlwZW5hbWUgTVA1LCB0eXBl
bmFtZSBQNiwgdHlwZW5hbWUgTVA2PgotQ3Jvc3NUaHJlYWRUYXNrIGNyZWF0ZUNyb3NzVGhyZWFk
VGFzaygKLSAgICBUJiBjYWxsZWUsCi0gICAgdm9pZCAoVDo6Km1ldGhvZCkoTVAxLCBNUDIsIE1Q
MywgTVA0LCBNUDUsIE1QNiksCi0gICAgY29uc3QgUDEmIHBhcmFtZXRlcjEsCi0gICAgY29uc3Qg
UDImIHBhcmFtZXRlcjIsCi0gICAgY29uc3QgUDMmIHBhcmFtZXRlcjMsCi0gICAgY29uc3QgUDQm
IHBhcmFtZXRlcjQsCi0gICAgY29uc3QgUDUmIHBhcmFtZXRlcjUsCi0gICAgY29uc3QgUDYmIHBh
cmFtZXRlcjYpCi17Ci0gICAgcmV0dXJuIENyb3NzVGhyZWFkVGFzayhbY2FsbGVlID0gJmNhbGxl
ZSwgbWV0aG9kLAotICAgICAgICBwMSA9IENyb3NzVGhyZWFkQ29waWVyPFAxPjo6Y29weShwYXJh
bWV0ZXIxKSwKLSAgICAgICAgcDIgPSBDcm9zc1RocmVhZENvcGllcjxQMj46OmNvcHkocGFyYW1l
dGVyMiksCi0gICAgICAgIHAzID0gQ3Jvc3NUaHJlYWRDb3BpZXI8UDM+Ojpjb3B5KHBhcmFtZXRl
cjMpLAotICAgICAgICBwNCA9IENyb3NzVGhyZWFkQ29waWVyPFA0Pjo6Y29weShwYXJhbWV0ZXI0
KSwKLSAgICAgICAgcDUgPSBDcm9zc1RocmVhZENvcGllcjxQNT46OmNvcHkocGFyYW1ldGVyNSks
Ci0gICAgICAgIHA2ID0gQ3Jvc3NUaHJlYWRDb3BpZXI8UDY+Ojpjb3B5KHBhcmFtZXRlcjYpXSgp
IG11dGFibGUgewotICAgICAgICAoY2FsbGVlLT4qbWV0aG9kKShwMSwgcDIsIHAzLCBwNCwgcDUs
IHA2KTsKLSAgICB9KTsKLX0KLQotdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgUDEsIHR5
cGVuYW1lIE1QMSwgdHlwZW5hbWUgUDIsIHR5cGVuYW1lIE1QMiwgdHlwZW5hbWUgUDMsIHR5cGVu
YW1lIE1QMywgdHlwZW5hbWUgUDQsIHR5cGVuYW1lIE1QNCwgdHlwZW5hbWUgUDUsIHR5cGVuYW1l
IE1QNSwgdHlwZW5hbWUgUDYsIHR5cGVuYW1lIE1QNiwgdHlwZW5hbWUgUDcsIHR5cGVuYW1lIE1Q
Nz4KLUNyb3NzVGhyZWFkVGFzayBjcmVhdGVDcm9zc1RocmVhZFRhc2soCi0gICAgVCYgY2FsbGVl
LAotICAgIHZvaWQgKFQ6OiptZXRob2QpKE1QMSwgTVAyLCBNUDMsIE1QNCwgTVA1LCBNUDYsIE1Q
NyksCi0gICAgY29uc3QgUDEmIHBhcmFtZXRlcjEsCi0gICAgY29uc3QgUDImIHBhcmFtZXRlcjIs
Ci0gICAgY29uc3QgUDMmIHBhcmFtZXRlcjMsCi0gICAgY29uc3QgUDQmIHBhcmFtZXRlcjQsCi0g
ICAgY29uc3QgUDUmIHBhcmFtZXRlcjUsCi0gICAgY29uc3QgUDYmIHBhcmFtZXRlcjYsCi0gICAg
Y29uc3QgUDcmIHBhcmFtZXRlcjcpCi17Ci0gICAgcmV0dXJuIENyb3NzVGhyZWFkVGFzayhbY2Fs
bGVlID0gJmNhbGxlZSwgbWV0aG9kLAotICAgICAgICBwMSA9IENyb3NzVGhyZWFkQ29waWVyPFAx
Pjo6Y29weShwYXJhbWV0ZXIxKSwKLSAgICAgICAgcDIgPSBDcm9zc1RocmVhZENvcGllcjxQMj46
OmNvcHkocGFyYW1ldGVyMiksCi0gICAgICAgIHAzID0gQ3Jvc3NUaHJlYWRDb3BpZXI8UDM+Ojpj
b3B5KHBhcmFtZXRlcjMpLAotICAgICAgICBwNCA9IENyb3NzVGhyZWFkQ29waWVyPFA0Pjo6Y29w
eShwYXJhbWV0ZXI0KSwKLSAgICAgICAgcDUgPSBDcm9zc1RocmVhZENvcGllcjxQNT46OmNvcHko
cGFyYW1ldGVyNSksCi0gICAgICAgIHA2ID0gQ3Jvc3NUaHJlYWRDb3BpZXI8UDY+Ojpjb3B5KHBh
cmFtZXRlcjYpLAotICAgICAgICBwNyA9IENyb3NzVGhyZWFkQ29waWVyPFA3Pjo6Y29weShwYXJh
bWV0ZXI3KV0oKSBtdXRhYmxlIHsKLSAgICAgICAgKGNhbGxlZS0+Km1ldGhvZCkocDEsIHAyLCBw
MywgcDQsIHA1LCBwNiwgcDcpOwotICAgIH0pOworICAgIGNhbGxNZW1iZXJGdW5jdGlvbkltcGwo
b2JqZWN0LCBmdW5jdGlvbiwgc3RkOjpmb3J3YXJkPEFyZ3NUdXBsZT4oYXJncyksIEFyZ3NJbmRp
Y2llcygpKTsKIH0KIAotdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgUDEsIHR5cGVuYW1l
IE1QMSwgdHlwZW5hbWUgUDIsIHR5cGVuYW1lIE1QMiwgdHlwZW5hbWUgUDMsIHR5cGVuYW1lIE1Q
MywgdHlwZW5hbWUgUDQsIHR5cGVuYW1lIE1QNCwgdHlwZW5hbWUgUDUsIHR5cGVuYW1lIE1QNSwg
dHlwZW5hbWUgUDYsIHR5cGVuYW1lIE1QNiwgdHlwZW5hbWUgUDcsIHR5cGVuYW1lIE1QNywgdHlw
ZW5hbWUgUDgsIHR5cGVuYW1lIE1QOD4KLUNyb3NzVGhyZWFkVGFzayBjcmVhdGVDcm9zc1RocmVh
ZFRhc2soCi0gICAgVCYgY2FsbGVlLAotICAgIHZvaWQgKFQ6OiptZXRob2QpKE1QMSwgTVAyLCBN
UDMsIE1QNCwgTVA1LCBNUDYsIE1QNywgTVA4KSwKLSAgICBjb25zdCBQMSYgcGFyYW1ldGVyMSwK
LSAgICBjb25zdCBQMiYgcGFyYW1ldGVyMiwKLSAgICBjb25zdCBQMyYgcGFyYW1ldGVyMywKLSAg
ICBjb25zdCBQNCYgcGFyYW1ldGVyNCwKLSAgICBjb25zdCBQNSYgcGFyYW1ldGVyNSwKLSAgICBj
b25zdCBQNiYgcGFyYW1ldGVyNiwKLSAgICBjb25zdCBQNyYgcGFyYW1ldGVyNywKLSAgICBjb25z
dCBQOCYgcGFyYW1ldGVyOCkKK3RlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lLi4uIFBhcmFt
ZXRlcnMsIHR5cGVuYW1lLi4uIEFyZ3VtZW50cz4KK0Nyb3NzVGhyZWFkVGFzayBjcmVhdGVDcm9z
c1RocmVhZFRhc2soVCYgY2FsbGVlLCB2b2lkIChUOjoqbWV0aG9kKShQYXJhbWV0ZXJzLi4uKSwg
Y29uc3QgQXJndW1lbnRzJi4uLiBhcmd1bWVudHMpCiB7Ci0gICAgcmV0dXJuIENyb3NzVGhyZWFk
VGFzayhbY2FsbGVlID0gJmNhbGxlZSwgbWV0aG9kLAotICAgICAgICBwMSA9IENyb3NzVGhyZWFk
Q29waWVyPFAxPjo6Y29weShwYXJhbWV0ZXIxKSwKLSAgICAgICAgcDIgPSBDcm9zc1RocmVhZENv
cGllcjxQMj46OmNvcHkocGFyYW1ldGVyMiksCi0gICAgICAgIHAzID0gQ3Jvc3NUaHJlYWRDb3Bp
ZXI8UDM+Ojpjb3B5KHBhcmFtZXRlcjMpLAotICAgICAgICBwNCA9IENyb3NzVGhyZWFkQ29waWVy
PFA0Pjo6Y29weShwYXJhbWV0ZXI0KSwKLSAgICAgICAgcDUgPSBDcm9zc1RocmVhZENvcGllcjxQ
NT46OmNvcHkocGFyYW1ldGVyNSksCi0gICAgICAgIHA2ID0gQ3Jvc3NUaHJlYWRDb3BpZXI8UDY+
Ojpjb3B5KHBhcmFtZXRlcjYpLAotICAgICAgICBwNyA9IENyb3NzVGhyZWFkQ29waWVyPFA3Pjo6
Y29weShwYXJhbWV0ZXI3KSwKLSAgICAgICAgcDggPSBDcm9zc1RocmVhZENvcGllcjxQOD46OmNv
cHkocGFyYW1ldGVyOCldKCkgbXV0YWJsZSB7Ci0gICAgICAgIChjYWxsZWUtPiptZXRob2QpKHAx
LCBwMiwgcDMsIHA0LCBwNSwgcDYsIHA3LCBwOCk7CisgICAgcmV0dXJuIENyb3NzVGhyZWFkVGFz
ayhbY2FsbGVlID0gJmNhbGxlZSwgbWV0aG9kLCBhcmd1bWVudHMgPSBzdGQ6Om1ha2VfdHVwbGUo
Y3Jvc3NUaHJlYWRDb3B5PEFyZ3VtZW50cz4oYXJndW1lbnRzKS4uLildKCkgbXV0YWJsZSB7Cisg
ICAgICAgIGNhbGxNZW1iZXJGdW5jdGlvbihjYWxsZWUsIG1ldGhvZCwgV1RGTW92ZShhcmd1bWVu
dHMpKTsKICAgICB9KTsKIH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMv
Q2hhbmdlTG9nCmluZGV4IDYzOTgwM2Q5MWE1OTkxYjJlYjk1ZjdiYWE5N2UxN2E2ZWVhMDk0OGQu
LjVlYTQyZjhjZTBlNzYxZTc2MzA1ZDkwMDgzMDNmMDFkYTc1YTNmZWEgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsNSArMSwxNSBAQAogMjAx
Ni0wNi0wOCAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CiAKKyAgICAgICAgR3Jl
YXRseSBzaW1wbGlmeSBDcm9zc1RocmVhZFRhc2suaC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1ODU0MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvQ3Jvc3NU
aHJlYWRUYXNrLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorCisyMDE2LTA2
LTA4ICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KKwogICAgICAgICBUcnkgdG8g
Zml4IHRoZSBXaW5kb3dzIGJ1aWxkLgogCiAgICAgICAgIFVucmV2aWV3ZWQuCmRpZmYgLS1naXQg
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9Dcm9zc1RocmVhZFRhc2suY3BwIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvQ3Jvc3NUaHJlYWRUYXNrLmNwcAppbmRleCA4OTk1
MmU5MzU1ZjE3YzE3MjA4MzUyMjc1YmY3ZjQ3MDExNTM5ZWVlLi5iNTBjYjMxNzAxNDdkZDU0YzY0
Nzk3MGVkMTJlNTUxYTc4YjY0YTk3IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dURi9Dcm9zc1RocmVhZFRhc2suY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV1RGL0Nyb3NzVGhyZWFkVGFzay5jcHAKQEAgLTg1LDcgKzg1LDYgQEAgc3RydWN0IExpZmV0
aW1lTG9nZ2VyIHsKICAgICAgICAgbG9nKCkuc3RyKCIiKTsKICAgICAgICAgcmV0dXJuIHN0cmlu
ZzsKICAgICB9Ci0KIH07CiAKIHZvaWQgdGVzdEZ1bmN0aW9uKGNvbnN0IExpZmV0aW1lTG9nZ2Vy
JiwgY29uc3QgTGlmZXRpbWVMb2dnZXImLCBjb25zdCBMaWZldGltZUxvZ2dlciYpCkBAIC0xMDMs
NyArMTAyLDcgQEAgVEVTVChXVEZfQ3Jvc3NUaHJlYWRUYXNrLCBCYXNpYykKICAgICAgICAgYXV0
byB0YXNrID0gY3JlYXRlQ3Jvc3NUaHJlYWRUYXNrKHRlc3RGdW5jdGlvbiwgbG9nZ2VyMSwgbG9n
Z2VyMiwgbG9nZ2VyMyk7CiAgICAgICAgIHRhc2sucGVyZm9ybVRhc2soKTsKICAgICB9Ci0gICAg
QVNTRVJUX1NUUkVRKCJkZWZhdWx0X2NvbnN0cnVjdG9yKDxkZWZhdWx0Pi0wLTApIGNvcHlfY29u
c3RydWN0b3IoPGRlZmF1bHQ+LTEtMCkgbmFtZV9jb25zdHJ1Y3Rvcihsb2dnZXItMC0wKSBpc29s
YXRlZENvcHkoKSBjb3B5X2NvbnN0cnVjdG9yKDxkZWZhdWx0Pi0xLTApIGlzb2xhdGVkQ29weSgp
IGNvcHlfY29uc3RydWN0b3IoPGRlZmF1bHQ+LTItMCkgaXNvbGF0ZWRDb3B5KCkgY29weV9jb25z
dHJ1Y3Rvcihsb2dnZXItMS0wKSBtb3ZlX2NvbnN0cnVjdG9yKDxkZWZhdWx0Pi0xLTEpIG1vdmVf
Y29uc3RydWN0b3IoPGRlZmF1bHQ+LTItMSkgbW92ZV9jb25zdHJ1Y3Rvcihsb2dnZXItMS0xKSBk
ZXN0cnVjdG9yKGxvZ2dlci0xLTApIGRlc3RydWN0b3IoPGRlZmF1bHQ+LTItMCkgZGVzdHJ1Y3Rv
cig8ZGVmYXVsdD4tMS0wKSB0ZXN0RnVuY3Rpb24gY2FsbGVkIGRlc3RydWN0b3IobG9nZ2VyLTEt
MSkgZGVzdHJ1Y3Rvcig8ZGVmYXVsdD4tMi0xKSBkZXN0cnVjdG9yKDxkZWZhdWx0Pi0xLTEpIGRl
c3RydWN0b3IobG9nZ2VyLTAtMCkgZGVzdHJ1Y3Rvcig8ZGVmYXVsdD4tMS0wKSBkZXN0cnVjdG9y
KDxkZWZhdWx0Pi0wLTApICIsIExpZmV0aW1lTG9nZ2VyOjp0YWtlTG9nU3RyKCkuY19zdHIoKSk7
CisgICAgQVNTRVJUX1NUUkVRKCJkZWZhdWx0X2NvbnN0cnVjdG9yKDxkZWZhdWx0Pi0wLTApIGNv
cHlfY29uc3RydWN0b3IoPGRlZmF1bHQ+LTEtMCkgbmFtZV9jb25zdHJ1Y3Rvcihsb2dnZXItMC0w
KSBpc29sYXRlZENvcHkoKSBjb3B5X2NvbnN0cnVjdG9yKDxkZWZhdWx0Pi0xLTApIGlzb2xhdGVk
Q29weSgpIGNvcHlfY29uc3RydWN0b3IoPGRlZmF1bHQ+LTItMCkgaXNvbGF0ZWRDb3B5KCkgY29w
eV9jb25zdHJ1Y3Rvcihsb2dnZXItMS0wKSBtb3ZlX2NvbnN0cnVjdG9yKDxkZWZhdWx0Pi0xLTEp
IG1vdmVfY29uc3RydWN0b3IoPGRlZmF1bHQ+LTItMSkgbW92ZV9jb25zdHJ1Y3Rvcihsb2dnZXIt
MS0xKSBkZXN0cnVjdG9yKGxvZ2dlci0xLTApIGRlc3RydWN0b3IoPGRlZmF1bHQ+LTItMCkgZGVz
dHJ1Y3Rvcig8ZGVmYXVsdD4tMS0wKSBtb3ZlX2NvbnN0cnVjdG9yKDxkZWZhdWx0Pi0xLTIpIG1v
dmVfY29uc3RydWN0b3IoPGRlZmF1bHQ+LTItMikgbW92ZV9jb25zdHJ1Y3Rvcihsb2dnZXItMS0y
KSBkZXN0cnVjdG9yKGxvZ2dlci0xLTEpIGRlc3RydWN0b3IoPGRlZmF1bHQ+LTItMSkgZGVzdHJ1
Y3Rvcig8ZGVmYXVsdD4tMS0xKSB0ZXN0RnVuY3Rpb24gY2FsbGVkIGRlc3RydWN0b3IobG9nZ2Vy
LTEtMikgZGVzdHJ1Y3Rvcig8ZGVmYXVsdD4tMi0yKSBkZXN0cnVjdG9yKDxkZWZhdWx0Pi0xLTIp
IGRlc3RydWN0b3IobG9nZ2VyLTAtMCkgZGVzdHJ1Y3Rvcig8ZGVmYXVsdD4tMS0wKSBkZXN0cnVj
dG9yKDxkZWZhdWx0Pi0wLTApICIsIExpZmV0aW1lTG9nZ2VyOjp0YWtlTG9nU3RyKCkuY19zdHIo
KSk7CiB9CiAgICAgCiB9IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>280849</attachid>
            <date>2016-06-08 15:40:04 -0700</date>
            <delta_ts>2016-06-08 15:57:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-158542-20160608154131.patch</filename>
            <type>text/plain</type>
            <size>15307</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAxODExCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDVmZTY1MzZmMzYzODgyNjgzNmRiYzk0
ZWVjM2M0ODk3NzMwZmEyMTkuLmQzODhmNWIyMTY0NDQ1YTYyNGY3YWYzZjgyNzdhZDFiZTZkMTg0
MjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDUgKzEsMjAgQEAKIDIwMTYtMDYtMDggIEJyYWR5IEVpZHNvbiAgPGJlaWRz
b25AYXBwbGUuY29tPgogCisgICAgICAgIEdyZWF0bHkgc2ltcGxpZnkgQ3Jvc3NUaHJlYWRUYXNr
LmguCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTg1
NDIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHd0
Zi9Dcm9zc1RocmVhZFRhc2suaDoKKyAgICAgICAgKFdURjo6Y3Jvc3NUaHJlYWRDb3B5KToKKyAg
ICAgICAgKFdURjo6Y2FsbEZ1bmN0aW9uRm9yQ3Jvc3NUaHJlYWRUYXNrSW1wbCk6CisgICAgICAg
IChXVEY6OmNhbGxGdW5jdGlvbkZvckNyb3NzVGhyZWFkVGFzayk6CisgICAgICAgIChXVEY6OmNy
ZWF0ZUNyb3NzVGhyZWFkVGFzayk6CisgICAgICAgIChXVEY6OmNhbGxNZW1iZXJGdW5jdGlvbkZv
ckNyb3NzVGhyZWFkVGFza0ltcGwpOgorICAgICAgICAoV1RGOjpjYWxsTWVtYmVyRnVuY3Rpb25G
b3JDcm9zc1RocmVhZFRhc2spOgorCisyMDE2LTA2LTA4ICBCcmFkeSBFaWRzb24gIDxiZWlkc29u
QGFwcGxlLmNvbT4KKwogICAgICAgICBNYWtlIENyb3NzVGhyZWFkQ29waWVyIG1vcmUgZWZmaWNp
ZW50IChmZXdlciBjb3BpZXMhKS4KICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE1ODQ1NgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9Dcm9zc1Ro
cmVhZFRhc2suaCBiL1NvdXJjZS9XVEYvd3RmL0Nyb3NzVGhyZWFkVGFzay5oCmluZGV4IDUzODU4
YmNlMTQ0ZmFkMGM3ZDcxYWYzYzBjZjU5NzhlNzI0YWViOGIuLmM0MjcxZWE1ZjZlNDAwMDQ1MWMy
Y2M3MzgzMmM0Njc3ZjMxNTkzOGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0Nyb3NzVGhy
ZWFkVGFzay5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL0Nyb3NzVGhyZWFkVGFzay5oCkBAIC0zMiwy
NCArMzIsMTAgQEAKIG5hbWVzcGFjZSBXVEYgewogCiBjbGFzcyBDcm9zc1RocmVhZFRhc2sgewot
ICAgIHRlbXBsYXRlPGNsYXNzIFQ+Ci0gICAgZnJpZW5kIENyb3NzVGhyZWFkVGFzayBjcmVhdGVD
cm9zc1RocmVhZFRhc2soVCYsIHZvaWQgKFQ6OiopKCkpOwotICAgIHRlbXBsYXRlPGNsYXNzIFQs
IGNsYXNzIFAxLCBjbGFzcyBNUDE+Ci0gICAgZnJpZW5kIENyb3NzVGhyZWFkVGFzayBjcmVhdGVD
cm9zc1RocmVhZFRhc2soVCYsIHZvaWQgKFQ6OiopKE1QMSksIGNvbnN0IFAxJik7Ci0gICAgdGVt
cGxhdGU8Y2xhc3MgVCwgY2xhc3MgUDEsIGNsYXNzIE1QMSwgY2xhc3MgUDIsIGNsYXNzIE1QMj4K
LSAgICBmcmllbmQgQ3Jvc3NUaHJlYWRUYXNrIGNyZWF0ZUNyb3NzVGhyZWFkVGFzayhUJiwgdm9p
ZCAoVDo6KikoTVAxLCBNUDIpLCBjb25zdCBQMSYsIGNvbnN0IFAyJik7Ci0gICAgdGVtcGxhdGU8
Y2xhc3MgVCwgY2xhc3MgUDEsIGNsYXNzIE1QMSwgY2xhc3MgUDIsIGNsYXNzIE1QMiwgY2xhc3Mg
UDMsIGNsYXNzIE1QMz4KLSAgICBmcmllbmQgQ3Jvc3NUaHJlYWRUYXNrIGNyZWF0ZUNyb3NzVGhy
ZWFkVGFzayhUJiwgdm9pZCAoVDo6KikoTVAxLCBNUDIsIE1QMyksIGNvbnN0IFAxJiwgY29uc3Qg
UDImLCBjb25zdCBQMyYpOwotICAgIHRlbXBsYXRlPGNsYXNzIFQsIGNsYXNzIFAxLCBjbGFzcyBN
UDEsIGNsYXNzIFAyLCBjbGFzcyBNUDIsIGNsYXNzIFAzLCBjbGFzcyBNUDMsIGNsYXNzIFA0LCBj
bGFzcyBNUDQ+Ci0gICAgZnJpZW5kIENyb3NzVGhyZWFkVGFzayBjcmVhdGVDcm9zc1RocmVhZFRh
c2soVCYsIHZvaWQgKFQ6OiopKE1QMSwgTVAyLCBNUDMsIE1QNCksIGNvbnN0IFAxJiwgY29uc3Qg
UDImLCBjb25zdCBQMyYsIGNvbnN0IFA0Jik7Ci0gICAgdGVtcGxhdGU8Y2xhc3MgVCwgY2xhc3Mg
UDEsIGNsYXNzIE1QMSwgY2xhc3MgUDIsIGNsYXNzIE1QMiwgY2xhc3MgUDMsIGNsYXNzIE1QMywg
Y2xhc3MgUDQsIGNsYXNzIE1QNCwgY2xhc3MgUDUsIGNsYXNzIE1QNT4KLSAgICBmcmllbmQgQ3Jv
c3NUaHJlYWRUYXNrIGNyZWF0ZUNyb3NzVGhyZWFkVGFzayhUJiwgdm9pZCAoVDo6KikoTVAxLCBN
UDIsIE1QMywgTVA0LCBNUDUpLCBjb25zdCBQMSYsIGNvbnN0IFAyJiwgY29uc3QgUDMmLCBjb25z
dCBQNCYsIGNvbnN0IFA1Jik7Ci0gICAgdGVtcGxhdGU8Y2xhc3MgVCwgY2xhc3MgUDEsIGNsYXNz
IE1QMSwgY2xhc3MgUDIsIGNsYXNzIE1QMiwgY2xhc3MgUDMsIGNsYXNzIE1QMywgY2xhc3MgUDQs
IGNsYXNzIE1QNCwgY2xhc3MgUDUsIGNsYXNzIE1QNSwgY2xhc3MgUDYsIGNsYXNzIE1QNj4KLSAg
ICBmcmllbmQgQ3Jvc3NUaHJlYWRUYXNrIGNyZWF0ZUNyb3NzVGhyZWFkVGFzayhUJiwgdm9pZCAo
VDo6KikoTVAxLCBNUDIsIE1QMywgTVA0LCBNUDUsIE1QNiksIGNvbnN0IFAxJiwgY29uc3QgUDIm
LCBjb25zdCBQMyYsIGNvbnN0IFA0JiwgY29uc3QgUDUmLCBjb25zdCBQNiYpOwotICAgIHRlbXBs
YXRlPGNsYXNzIFQsIGNsYXNzIFAxLCBjbGFzcyBNUDEsIGNsYXNzIFAyLCBjbGFzcyBNUDIsIGNs
YXNzIFAzLCBjbGFzcyBNUDMsIGNsYXNzIFA0LCBjbGFzcyBNUDQsIGNsYXNzIFA1LCBjbGFzcyBN
UDUsIGNsYXNzIFA2LCBjbGFzcyBNUDYsIGNsYXNzIFA3LCBjbGFzcyBNUDc+Ci0gICAgZnJpZW5k
IENyb3NzVGhyZWFkVGFzayBjcmVhdGVDcm9zc1RocmVhZFRhc2soVCYsIHZvaWQgKFQ6OiopKE1Q
MSwgTVAyLCBNUDMsIE1QNCwgTVA1LCBNUDYsIE1QNyksIGNvbnN0IFAxJiwgY29uc3QgUDImLCBj
b25zdCBQMyYsIGNvbnN0IFA0JiwgY29uc3QgUDUmLCBjb25zdCBQNiYsIGNvbnN0IFA3Jik7Ci0g
ICAgdGVtcGxhdGU8Y2xhc3MgVCwgY2xhc3MgUDEsIGNsYXNzIE1QMSwgY2xhc3MgUDIsIGNsYXNz
IE1QMiwgY2xhc3MgUDMsIGNsYXNzIE1QMywgY2xhc3MgUDQsIGNsYXNzIE1QNCwgY2xhc3MgUDUs
IGNsYXNzIE1QNSwgY2xhc3MgUDYsIGNsYXNzIE1QNiwgY2xhc3MgUDcsIGNsYXNzIE1QNywgY2xh
c3MgUDgsIGNsYXNzIE1QOD4KLSAgICBmcmllbmQgQ3Jvc3NUaHJlYWRUYXNrIGNyZWF0ZUNyb3Nz
VGhyZWFkVGFzayhUJiwgdm9pZCAoVDo6KikoTVAxLCBNUDIsIE1QMywgTVA0LCBNUDUsIE1QNiwg
TVA3LCBNUDgpLCBjb25zdCBQMSYsIGNvbnN0IFAyJiwgY29uc3QgUDMmLCBjb25zdCBQNCYsIGNv
bnN0IFA1JiwgY29uc3QgUDYmLCBjb25zdCBQNyYsIGNvbnN0IFA4Jik7CisgICAgdGVtcGxhdGU8
dHlwZW5hbWUuLi4gUGFyYW1ldGVycywgdHlwZW5hbWUuLi4gQXJndW1lbnRzPgorICAgIGZyaWVu
ZCBDcm9zc1RocmVhZFRhc2sgY3JlYXRlQ3Jvc3NUaHJlYWRUYXNrKHZvaWQgKCopKFBhcmFtZXRl
cnMuLi4pLCBBcmd1bWVudHMuLi4pOworICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1l
Li4uIFBhcmFtZXRlcnMsIHR5cGVuYW1lLi4uIEFyZ3VtZW50cz4KKyAgICBmcmllbmQgQ3Jvc3NU
aHJlYWRUYXNrIGNyZWF0ZUNyb3NzVGhyZWFkVGFzayhUJiwgdm9pZCAoVDo6KikoUGFyYW1ldGVy
cy4uLiksIEFyZ3VtZW50cy4uLik7CiBwdWJsaWM6CiAgICAgQ3Jvc3NUaHJlYWRUYXNrKCkgPSBk
ZWZhdWx0OwogCkBAIC02OCwxODAgKzU0LDQ5IEBAIHByb3RlY3RlZDoKICAgICBOb25jb3B5YWJs
ZUZ1bmN0aW9uPHZvaWQgKCk+IG1fdGFza0Z1bmN0aW9uOwogfTsKIAotdGVtcGxhdGU8dHlwZW5h
bWUgVD4KLUNyb3NzVGhyZWFkVGFzayBjcmVhdGVDcm9zc1RocmVhZFRhc2soCi0gICAgVCYgY2Fs
bGVlLAotICAgIHZvaWQgKFQ6OiptZXRob2QpKCkpCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KK1Qg
Y3Jvc3NUaHJlYWRDb3B5KGNvbnN0IFQmIHQpCiB7Ci0gICAgcmV0dXJuIENyb3NzVGhyZWFkVGFz
ayhbY2FsbGVlID0gJmNhbGxlZSwgbWV0aG9kXSgpIG11dGFibGUgewotICAgICAgICAoY2FsbGVl
LT4qbWV0aG9kKSgpOwotICAgIH0pOworICAgIHJldHVybiBDcm9zc1RocmVhZENvcGllcjxUPjo6
Y29weSh0KTsKIH0KIAotdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgUDEsIHR5cGVuYW1l
IE1QMT4KLUNyb3NzVGhyZWFkVGFzayBjcmVhdGVDcm9zc1RocmVhZFRhc2soCi0gICAgVCYgY2Fs
bGVlLAotICAgIHZvaWQgKFQ6OiptZXRob2QpKE1QMSksCi0gICAgY29uc3QgUDEmIHBhcmFtZXRl
cjEpCit0ZW1wbGF0ZSA8dHlwZW5hbWUgRiwgdHlwZW5hbWUgQXJnc1R1cGxlLCBzaXplX3QuLi4g
QXJnc0luZGV4Pgordm9pZCBjYWxsRnVuY3Rpb25Gb3JDcm9zc1RocmVhZFRhc2tJbXBsKEYgZnVu
Y3Rpb24sIEFyZ3NUdXBsZSYmIGFyZ3MsIHN0ZDo6aW5kZXhfc2VxdWVuY2U8QXJnc0luZGV4Li4u
PikKIHsKLSAgICByZXR1cm4gQ3Jvc3NUaHJlYWRUYXNrKFtjYWxsZWUgPSAmY2FsbGVlLCBtZXRo
b2QsCi0gICAgICAgIHAxID0gQ3Jvc3NUaHJlYWRDb3BpZXI8UDE+Ojpjb3B5KHBhcmFtZXRlcjEp
XSgpIG11dGFibGUgewotICAgICAgICAoY2FsbGVlLT4qbWV0aG9kKShwMSk7Ci0gICAgfSk7Cisg
ICAgZnVuY3Rpb24oc3RkOjpnZXQ8QXJnc0luZGV4PihzdGQ6OmZvcndhcmQ8QXJnc1R1cGxlPihh
cmdzKSkuLi4pOwogfQogCi10ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBQMSwgdHlwZW5h
bWUgTVAxLCB0eXBlbmFtZSBQMiwgdHlwZW5hbWUgTVAyPgotQ3Jvc3NUaHJlYWRUYXNrIGNyZWF0
ZUNyb3NzVGhyZWFkVGFzaygKLSAgICBUJiBjYWxsZWUsCi0gICAgdm9pZCAoVDo6Km1ldGhvZCko
TVAxLCBNUDIpLAotICAgIGNvbnN0IFAxJiBwYXJhbWV0ZXIxLAotICAgIGNvbnN0IFAyJiBwYXJh
bWV0ZXIyKQordGVtcGxhdGUgPHR5cGVuYW1lIEYsIHR5cGVuYW1lIEFyZ3NUdXBsZSwgdHlwZW5h
bWUgQXJnc0luZGljaWVzID0gc3RkOjptYWtlX2luZGV4X3NlcXVlbmNlPHN0ZDo6dHVwbGVfc2l6
ZTxBcmdzVHVwbGU+Ojp2YWx1ZT4+Cit2b2lkIGNhbGxGdW5jdGlvbkZvckNyb3NzVGhyZWFkVGFz
ayhGIGZ1bmN0aW9uLCBBcmdzVHVwbGUmJiBhcmdzKQogewotICAgIHJldHVybiBDcm9zc1RocmVh
ZFRhc2soW2NhbGxlZSA9ICZjYWxsZWUsIG1ldGhvZCwKLSAgICAgICAgcDEgPSBDcm9zc1RocmVh
ZENvcGllcjxQMT46OmNvcHkocGFyYW1ldGVyMSksCi0gICAgICAgIHAyID0gQ3Jvc3NUaHJlYWRD
b3BpZXI8UDI+Ojpjb3B5KHBhcmFtZXRlcjIpXSgpIG11dGFibGUgewotICAgICAgICAoY2FsbGVl
LT4qbWV0aG9kKShwMSwgcDIpOwotICAgIH0pOworICAgIGNhbGxGdW5jdGlvbkZvckNyb3NzVGhy
ZWFkVGFza0ltcGwoZnVuY3Rpb24sIHN0ZDo6Zm9yd2FyZDxBcmdzVHVwbGU+KGFyZ3MpLCBBcmdz
SW5kaWNpZXMoKSk7CiB9CiAKLXRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFAxLCB0eXBl
bmFtZSBNUDEsIHR5cGVuYW1lIFAyLCB0eXBlbmFtZSBNUDIsIHR5cGVuYW1lIFAzLCB0eXBlbmFt
ZSBNUDM+Ci1Dcm9zc1RocmVhZFRhc2sgY3JlYXRlQ3Jvc3NUaHJlYWRUYXNrKAotICAgIFQmIGNh
bGxlZSwKLSAgICB2b2lkIChUOjoqbWV0aG9kKShNUDEsIE1QMiwgTVAzKSwKLSAgICBjb25zdCBQ
MSYgcGFyYW1ldGVyMSwKLSAgICBjb25zdCBQMiYgcGFyYW1ldGVyMiwKLSAgICBjb25zdCBQMyYg
cGFyYW1ldGVyMykKK3RlbXBsYXRlPHR5cGVuYW1lLi4uIFBhcmFtZXRlcnMsIHR5cGVuYW1lLi4u
IEFyZ3VtZW50cz4KK0Nyb3NzVGhyZWFkVGFzayBjcmVhdGVDcm9zc1RocmVhZFRhc2sodm9pZCAo
Km1ldGhvZCkoUGFyYW1ldGVycy4uLiksIGNvbnN0IEFyZ3VtZW50cyYuLi4gYXJndW1lbnRzKQog
ewotICAgIHJldHVybiBDcm9zc1RocmVhZFRhc2soW2NhbGxlZSA9ICZjYWxsZWUsIG1ldGhvZCwK
LSAgICAgICAgcDEgPSBDcm9zc1RocmVhZENvcGllcjxQMT46OmNvcHkocGFyYW1ldGVyMSksCi0g
ICAgICAgIHAyID0gQ3Jvc3NUaHJlYWRDb3BpZXI8UDI+Ojpjb3B5KHBhcmFtZXRlcjIpLAotICAg
ICAgICBwMyA9IENyb3NzVGhyZWFkQ29waWVyPFAzPjo6Y29weShwYXJhbWV0ZXIzKV0oKSBtdXRh
YmxlIHsKLSAgICAgICAgKGNhbGxlZS0+Km1ldGhvZCkocDEsIHAyLCBwMyk7CisgICAgcmV0dXJu
IENyb3NzVGhyZWFkVGFzayhbbWV0aG9kLCBhcmd1bWVudHMgPSBzdGQ6Om1ha2VfdHVwbGUoY3Jv
c3NUaHJlYWRDb3B5PEFyZ3VtZW50cz4oYXJndW1lbnRzKS4uLildKCkgbXV0YWJsZSB7CisgICAg
ICAgIGNhbGxGdW5jdGlvbkZvckNyb3NzVGhyZWFkVGFzayhtZXRob2QsIFdURk1vdmUoYXJndW1l
bnRzKSk7CiAgICAgfSk7CiB9CiAKLXRlbXBsYXRlPHR5cGVuYW1lIFAxLCB0eXBlbmFtZSBNUDEs
IHR5cGVuYW1lIFAyLCB0eXBlbmFtZSBNUDIsIHR5cGVuYW1lIFAzLCB0eXBlbmFtZSBNUDM+Ci1D
cm9zc1RocmVhZFRhc2sgY3JlYXRlQ3Jvc3NUaHJlYWRUYXNrKAotICAgIHZvaWQgKCptZXRob2Qp
KE1QMSwgTVAyLCBNUDMpLAotICAgIGNvbnN0IFAxJiBwYXJhbWV0ZXIxLAotICAgIGNvbnN0IFAy
JiBwYXJhbWV0ZXIyLAotICAgIGNvbnN0IFAzJiBwYXJhbWV0ZXIzKQordGVtcGxhdGUgPHR5cGVu
YW1lIEMsIHR5cGVuYW1lIE1GLCB0eXBlbmFtZSBBcmdzVHVwbGUsIHNpemVfdC4uLiBBcmdzSW5k
ZXg+Cit2b2lkIGNhbGxNZW1iZXJGdW5jdGlvbkZvckNyb3NzVGhyZWFkVGFza0ltcGwoQyogb2Jq
ZWN0LCBNRiBmdW5jdGlvbiwgQXJnc1R1cGxlJiYgYXJncywgc3RkOjppbmRleF9zZXF1ZW5jZTxB
cmdzSW5kZXguLi4+KQogewotICAgIHJldHVybiBDcm9zc1RocmVhZFRhc2soW21ldGhvZCwKLSAg
ICAgICAgcDEgPSBDcm9zc1RocmVhZENvcGllcjxQMT46OmNvcHkocGFyYW1ldGVyMSksCi0gICAg
ICAgIHAyID0gQ3Jvc3NUaHJlYWRDb3BpZXI8UDI+Ojpjb3B5KHBhcmFtZXRlcjIpLAotICAgICAg
ICBwMyA9IENyb3NzVGhyZWFkQ29waWVyPFAzPjo6Y29weShwYXJhbWV0ZXIzKV0oKSBtdXRhYmxl
IHsKLSAgICAgICAgbWV0aG9kKHAxLCBwMiwgcDMpOwotICAgIH0pOworICAgIChvYmplY3QtPipm
dW5jdGlvbikoc3RkOjpnZXQ8QXJnc0luZGV4PihzdGQ6OmZvcndhcmQ8QXJnc1R1cGxlPihhcmdz
KSkuLi4pOwogfQogCi10ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBQMSwgdHlwZW5hbWUg
TVAxLCB0eXBlbmFtZSBQMiwgdHlwZW5hbWUgTVAyLCB0eXBlbmFtZSBQMywgdHlwZW5hbWUgTVAz
LCB0eXBlbmFtZSBQNCwgdHlwZW5hbWUgTVA0PgotQ3Jvc3NUaHJlYWRUYXNrIGNyZWF0ZUNyb3Nz
VGhyZWFkVGFzaygKLSAgICBUJiBjYWxsZWUsCi0gICAgdm9pZCAoVDo6Km1ldGhvZCkoTVAxLCBN
UDIsIE1QMywgTVA0KSwKLSAgICBjb25zdCBQMSYgcGFyYW1ldGVyMSwKLSAgICBjb25zdCBQMiYg
cGFyYW1ldGVyMiwKLSAgICBjb25zdCBQMyYgcGFyYW1ldGVyMywKLSAgICBjb25zdCBQNCYgcGFy
YW1ldGVyNCkKK3RlbXBsYXRlIDx0eXBlbmFtZSBDLCB0eXBlbmFtZSBNRiwgdHlwZW5hbWUgQXJn
c1R1cGxlLCB0eXBlbmFtZSBBcmdzSW5kaWNpZXMgPSBzdGQ6Om1ha2VfaW5kZXhfc2VxdWVuY2U8
c3RkOjp0dXBsZV9zaXplPEFyZ3NUdXBsZT46OnZhbHVlPj4KK3ZvaWQgY2FsbE1lbWJlckZ1bmN0
aW9uRm9yQ3Jvc3NUaHJlYWRUYXNrKEMqIG9iamVjdCwgTUYgZnVuY3Rpb24sIEFyZ3NUdXBsZSYm
IGFyZ3MpCiB7Ci0gICAgcmV0dXJuIENyb3NzVGhyZWFkVGFzayhbY2FsbGVlID0gJmNhbGxlZSwg
bWV0aG9kLAotICAgICAgICBwMSA9IENyb3NzVGhyZWFkQ29waWVyPFAxPjo6Y29weShwYXJhbWV0
ZXIxKSwKLSAgICAgICAgcDIgPSBDcm9zc1RocmVhZENvcGllcjxQMj46OmNvcHkocGFyYW1ldGVy
MiksCi0gICAgICAgIHAzID0gQ3Jvc3NUaHJlYWRDb3BpZXI8UDM+Ojpjb3B5KHBhcmFtZXRlcjMp
LAotICAgICAgICBwNCA9IENyb3NzVGhyZWFkQ29waWVyPFA0Pjo6Y29weShwYXJhbWV0ZXI0KV0o
KSBtdXRhYmxlIHsKLSAgICAgICAgKGNhbGxlZS0+Km1ldGhvZCkocDEsIHAyLCBwMywgcDQpOwot
ICAgIH0pOwotfQotCi10ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBQMSwgdHlwZW5hbWUg
TVAxLCB0eXBlbmFtZSBQMiwgdHlwZW5hbWUgTVAyLCB0eXBlbmFtZSBQMywgdHlwZW5hbWUgTVAz
LCB0eXBlbmFtZSBQNCwgdHlwZW5hbWUgTVA0LCB0eXBlbmFtZSBQNSwgdHlwZW5hbWUgTVA1Pgot
Q3Jvc3NUaHJlYWRUYXNrIGNyZWF0ZUNyb3NzVGhyZWFkVGFzaygKLSAgICBUJiBjYWxsZWUsCi0g
ICAgdm9pZCAoVDo6Km1ldGhvZCkoTVAxLCBNUDIsIE1QMywgTVA0LCBNUDUpLAotICAgIGNvbnN0
IFAxJiBwYXJhbWV0ZXIxLAotICAgIGNvbnN0IFAyJiBwYXJhbWV0ZXIyLAotICAgIGNvbnN0IFAz
JiBwYXJhbWV0ZXIzLAotICAgIGNvbnN0IFA0JiBwYXJhbWV0ZXI0LAotICAgIGNvbnN0IFA1JiBw
YXJhbWV0ZXI1KQotewotICAgIHJldHVybiBDcm9zc1RocmVhZFRhc2soW2NhbGxlZSA9ICZjYWxs
ZWUsIG1ldGhvZCwKLSAgICAgICAgcDEgPSBDcm9zc1RocmVhZENvcGllcjxQMT46OmNvcHkocGFy
YW1ldGVyMSksCi0gICAgICAgIHAyID0gQ3Jvc3NUaHJlYWRDb3BpZXI8UDI+Ojpjb3B5KHBhcmFt
ZXRlcjIpLAotICAgICAgICBwMyA9IENyb3NzVGhyZWFkQ29waWVyPFAzPjo6Y29weShwYXJhbWV0
ZXIzKSwKLSAgICAgICAgcDQgPSBDcm9zc1RocmVhZENvcGllcjxQND46OmNvcHkocGFyYW1ldGVy
NCksCi0gICAgICAgIHA1ID0gQ3Jvc3NUaHJlYWRDb3BpZXI8UDU+Ojpjb3B5KHBhcmFtZXRlcjUp
XSgpIG11dGFibGUgewotICAgICAgICAoY2FsbGVlLT4qbWV0aG9kKShwMSwgcDIsIHAzLCBwNCwg
cDUpOwotICAgIH0pOwotfQotCi10ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBQMSwgdHlw
ZW5hbWUgTVAxLCB0eXBlbmFtZSBQMiwgdHlwZW5hbWUgTVAyLCB0eXBlbmFtZSBQMywgdHlwZW5h
bWUgTVAzLCB0eXBlbmFtZSBQNCwgdHlwZW5hbWUgTVA0LCB0eXBlbmFtZSBQNSwgdHlwZW5hbWUg
TVA1LCB0eXBlbmFtZSBQNiwgdHlwZW5hbWUgTVA2PgotQ3Jvc3NUaHJlYWRUYXNrIGNyZWF0ZUNy
b3NzVGhyZWFkVGFzaygKLSAgICBUJiBjYWxsZWUsCi0gICAgdm9pZCAoVDo6Km1ldGhvZCkoTVAx
LCBNUDIsIE1QMywgTVA0LCBNUDUsIE1QNiksCi0gICAgY29uc3QgUDEmIHBhcmFtZXRlcjEsCi0g
ICAgY29uc3QgUDImIHBhcmFtZXRlcjIsCi0gICAgY29uc3QgUDMmIHBhcmFtZXRlcjMsCi0gICAg
Y29uc3QgUDQmIHBhcmFtZXRlcjQsCi0gICAgY29uc3QgUDUmIHBhcmFtZXRlcjUsCi0gICAgY29u
c3QgUDYmIHBhcmFtZXRlcjYpCi17Ci0gICAgcmV0dXJuIENyb3NzVGhyZWFkVGFzayhbY2FsbGVl
ID0gJmNhbGxlZSwgbWV0aG9kLAotICAgICAgICBwMSA9IENyb3NzVGhyZWFkQ29waWVyPFAxPjo6
Y29weShwYXJhbWV0ZXIxKSwKLSAgICAgICAgcDIgPSBDcm9zc1RocmVhZENvcGllcjxQMj46OmNv
cHkocGFyYW1ldGVyMiksCi0gICAgICAgIHAzID0gQ3Jvc3NUaHJlYWRDb3BpZXI8UDM+Ojpjb3B5
KHBhcmFtZXRlcjMpLAotICAgICAgICBwNCA9IENyb3NzVGhyZWFkQ29waWVyPFA0Pjo6Y29weShw
YXJhbWV0ZXI0KSwKLSAgICAgICAgcDUgPSBDcm9zc1RocmVhZENvcGllcjxQNT46OmNvcHkocGFy
YW1ldGVyNSksCi0gICAgICAgIHA2ID0gQ3Jvc3NUaHJlYWRDb3BpZXI8UDY+Ojpjb3B5KHBhcmFt
ZXRlcjYpXSgpIG11dGFibGUgewotICAgICAgICAoY2FsbGVlLT4qbWV0aG9kKShwMSwgcDIsIHAz
LCBwNCwgcDUsIHA2KTsKLSAgICB9KTsKLX0KLQotdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5h
bWUgUDEsIHR5cGVuYW1lIE1QMSwgdHlwZW5hbWUgUDIsIHR5cGVuYW1lIE1QMiwgdHlwZW5hbWUg
UDMsIHR5cGVuYW1lIE1QMywgdHlwZW5hbWUgUDQsIHR5cGVuYW1lIE1QNCwgdHlwZW5hbWUgUDUs
IHR5cGVuYW1lIE1QNSwgdHlwZW5hbWUgUDYsIHR5cGVuYW1lIE1QNiwgdHlwZW5hbWUgUDcsIHR5
cGVuYW1lIE1QNz4KLUNyb3NzVGhyZWFkVGFzayBjcmVhdGVDcm9zc1RocmVhZFRhc2soCi0gICAg
VCYgY2FsbGVlLAotICAgIHZvaWQgKFQ6OiptZXRob2QpKE1QMSwgTVAyLCBNUDMsIE1QNCwgTVA1
LCBNUDYsIE1QNyksCi0gICAgY29uc3QgUDEmIHBhcmFtZXRlcjEsCi0gICAgY29uc3QgUDImIHBh
cmFtZXRlcjIsCi0gICAgY29uc3QgUDMmIHBhcmFtZXRlcjMsCi0gICAgY29uc3QgUDQmIHBhcmFt
ZXRlcjQsCi0gICAgY29uc3QgUDUmIHBhcmFtZXRlcjUsCi0gICAgY29uc3QgUDYmIHBhcmFtZXRl
cjYsCi0gICAgY29uc3QgUDcmIHBhcmFtZXRlcjcpCi17Ci0gICAgcmV0dXJuIENyb3NzVGhyZWFk
VGFzayhbY2FsbGVlID0gJmNhbGxlZSwgbWV0aG9kLAotICAgICAgICBwMSA9IENyb3NzVGhyZWFk
Q29waWVyPFAxPjo6Y29weShwYXJhbWV0ZXIxKSwKLSAgICAgICAgcDIgPSBDcm9zc1RocmVhZENv
cGllcjxQMj46OmNvcHkocGFyYW1ldGVyMiksCi0gICAgICAgIHAzID0gQ3Jvc3NUaHJlYWRDb3Bp
ZXI8UDM+Ojpjb3B5KHBhcmFtZXRlcjMpLAotICAgICAgICBwNCA9IENyb3NzVGhyZWFkQ29waWVy
PFA0Pjo6Y29weShwYXJhbWV0ZXI0KSwKLSAgICAgICAgcDUgPSBDcm9zc1RocmVhZENvcGllcjxQ
NT46OmNvcHkocGFyYW1ldGVyNSksCi0gICAgICAgIHA2ID0gQ3Jvc3NUaHJlYWRDb3BpZXI8UDY+
Ojpjb3B5KHBhcmFtZXRlcjYpLAotICAgICAgICBwNyA9IENyb3NzVGhyZWFkQ29waWVyPFA3Pjo6
Y29weShwYXJhbWV0ZXI3KV0oKSBtdXRhYmxlIHsKLSAgICAgICAgKGNhbGxlZS0+Km1ldGhvZCko
cDEsIHAyLCBwMywgcDQsIHA1LCBwNiwgcDcpOwotICAgIH0pOworICAgIGNhbGxNZW1iZXJGdW5j
dGlvbkZvckNyb3NzVGhyZWFkVGFza0ltcGwob2JqZWN0LCBmdW5jdGlvbiwgc3RkOjpmb3J3YXJk
PEFyZ3NUdXBsZT4oYXJncyksIEFyZ3NJbmRpY2llcygpKTsKIH0KIAotdGVtcGxhdGU8dHlwZW5h
bWUgVCwgdHlwZW5hbWUgUDEsIHR5cGVuYW1lIE1QMSwgdHlwZW5hbWUgUDIsIHR5cGVuYW1lIE1Q
MiwgdHlwZW5hbWUgUDMsIHR5cGVuYW1lIE1QMywgdHlwZW5hbWUgUDQsIHR5cGVuYW1lIE1QNCwg
dHlwZW5hbWUgUDUsIHR5cGVuYW1lIE1QNSwgdHlwZW5hbWUgUDYsIHR5cGVuYW1lIE1QNiwgdHlw
ZW5hbWUgUDcsIHR5cGVuYW1lIE1QNywgdHlwZW5hbWUgUDgsIHR5cGVuYW1lIE1QOD4KLUNyb3Nz
VGhyZWFkVGFzayBjcmVhdGVDcm9zc1RocmVhZFRhc2soCi0gICAgVCYgY2FsbGVlLAotICAgIHZv
aWQgKFQ6OiptZXRob2QpKE1QMSwgTVAyLCBNUDMsIE1QNCwgTVA1LCBNUDYsIE1QNywgTVA4KSwK
LSAgICBjb25zdCBQMSYgcGFyYW1ldGVyMSwKLSAgICBjb25zdCBQMiYgcGFyYW1ldGVyMiwKLSAg
ICBjb25zdCBQMyYgcGFyYW1ldGVyMywKLSAgICBjb25zdCBQNCYgcGFyYW1ldGVyNCwKLSAgICBj
b25zdCBQNSYgcGFyYW1ldGVyNSwKLSAgICBjb25zdCBQNiYgcGFyYW1ldGVyNiwKLSAgICBjb25z
dCBQNyYgcGFyYW1ldGVyNywKLSAgICBjb25zdCBQOCYgcGFyYW1ldGVyOCkKK3RlbXBsYXRlPHR5
cGVuYW1lIFQsIHR5cGVuYW1lLi4uIFBhcmFtZXRlcnMsIHR5cGVuYW1lLi4uIEFyZ3VtZW50cz4K
K0Nyb3NzVGhyZWFkVGFzayBjcmVhdGVDcm9zc1RocmVhZFRhc2soVCYgY2FsbGVlLCB2b2lkIChU
OjoqbWV0aG9kKShQYXJhbWV0ZXJzLi4uKSwgY29uc3QgQXJndW1lbnRzJi4uLiBhcmd1bWVudHMp
CiB7Ci0gICAgcmV0dXJuIENyb3NzVGhyZWFkVGFzayhbY2FsbGVlID0gJmNhbGxlZSwgbWV0aG9k
LAotICAgICAgICBwMSA9IENyb3NzVGhyZWFkQ29waWVyPFAxPjo6Y29weShwYXJhbWV0ZXIxKSwK
LSAgICAgICAgcDIgPSBDcm9zc1RocmVhZENvcGllcjxQMj46OmNvcHkocGFyYW1ldGVyMiksCi0g
ICAgICAgIHAzID0gQ3Jvc3NUaHJlYWRDb3BpZXI8UDM+Ojpjb3B5KHBhcmFtZXRlcjMpLAotICAg
ICAgICBwNCA9IENyb3NzVGhyZWFkQ29waWVyPFA0Pjo6Y29weShwYXJhbWV0ZXI0KSwKLSAgICAg
ICAgcDUgPSBDcm9zc1RocmVhZENvcGllcjxQNT46OmNvcHkocGFyYW1ldGVyNSksCi0gICAgICAg
IHA2ID0gQ3Jvc3NUaHJlYWRDb3BpZXI8UDY+Ojpjb3B5KHBhcmFtZXRlcjYpLAotICAgICAgICBw
NyA9IENyb3NzVGhyZWFkQ29waWVyPFA3Pjo6Y29weShwYXJhbWV0ZXI3KSwKLSAgICAgICAgcDgg
PSBDcm9zc1RocmVhZENvcGllcjxQOD46OmNvcHkocGFyYW1ldGVyOCldKCkgbXV0YWJsZSB7Ci0g
ICAgICAgIChjYWxsZWUtPiptZXRob2QpKHAxLCBwMiwgcDMsIHA0LCBwNSwgcDYsIHA3LCBwOCk7
CisgICAgcmV0dXJuIENyb3NzVGhyZWFkVGFzayhbY2FsbGVlID0gJmNhbGxlZSwgbWV0aG9kLCBh
cmd1bWVudHMgPSBzdGQ6Om1ha2VfdHVwbGUoY3Jvc3NUaHJlYWRDb3B5PEFyZ3VtZW50cz4oYXJn
dW1lbnRzKS4uLildKCkgbXV0YWJsZSB7CisgICAgICAgIGNhbGxNZW1iZXJGdW5jdGlvbkZvckNy
b3NzVGhyZWFkVGFzayhjYWxsZWUsIG1ldGhvZCwgV1RGTW92ZShhcmd1bWVudHMpKTsKICAgICB9
KTsKIH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmlu
ZGV4IDYzOTgwM2Q5MWE1OTkxYjJlYjk1ZjdiYWE5N2UxN2E2ZWVhMDk0OGQuLjVlYTQyZjhjZTBl
NzYxZTc2MzA1ZDkwMDgzMDNmMDFkYTc1YTNmZWEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxv
ZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsNSArMSwxNSBAQAogMjAxNi0wNi0wOCAgQnJh
ZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CiAKKyAgICAgICAgR3JlYXRseSBzaW1wbGlm
eSBDcm9zc1RocmVhZFRhc2suaC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE1ODU0MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvQ3Jvc3NUaHJlYWRUYXNrLmNw
cDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorCisyMDE2LTA2LTA4ICBCcmFkeSBF
aWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KKwogICAgICAgICBUcnkgdG8gZml4IHRoZSBXaW5k
b3dzIGJ1aWxkLgogCiAgICAgICAgIFVucmV2aWV3ZWQuCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dURi9Dcm9zc1RocmVhZFRhc2suY3BwIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XVEYvQ3Jvc3NUaHJlYWRUYXNrLmNwcAppbmRleCA4OTk1MmU5MzU1ZjE3YzE3
MjA4MzUyMjc1YmY3ZjQ3MDExNTM5ZWVlLi5iNTBjYjMxNzAxNDdkZDU0YzY0Nzk3MGVkMTJlNTUx
YTc4YjY0YTk3IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9Dcm9z
c1RocmVhZFRhc2suY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0Nyb3Nz
VGhyZWFkVGFzay5jcHAKQEAgLTg1LDcgKzg1LDYgQEAgc3RydWN0IExpZmV0aW1lTG9nZ2VyIHsK
ICAgICAgICAgbG9nKCkuc3RyKCIiKTsKICAgICAgICAgcmV0dXJuIHN0cmluZzsKICAgICB9Ci0K
IH07CiAKIHZvaWQgdGVzdEZ1bmN0aW9uKGNvbnN0IExpZmV0aW1lTG9nZ2VyJiwgY29uc3QgTGlm
ZXRpbWVMb2dnZXImLCBjb25zdCBMaWZldGltZUxvZ2dlciYpCkBAIC0xMDMsNyArMTAyLDcgQEAg
VEVTVChXVEZfQ3Jvc3NUaHJlYWRUYXNrLCBCYXNpYykKICAgICAgICAgYXV0byB0YXNrID0gY3Jl
YXRlQ3Jvc3NUaHJlYWRUYXNrKHRlc3RGdW5jdGlvbiwgbG9nZ2VyMSwgbG9nZ2VyMiwgbG9nZ2Vy
Myk7CiAgICAgICAgIHRhc2sucGVyZm9ybVRhc2soKTsKICAgICB9Ci0gICAgQVNTRVJUX1NUUkVR
KCJkZWZhdWx0X2NvbnN0cnVjdG9yKDxkZWZhdWx0Pi0wLTApIGNvcHlfY29uc3RydWN0b3IoPGRl
ZmF1bHQ+LTEtMCkgbmFtZV9jb25zdHJ1Y3Rvcihsb2dnZXItMC0wKSBpc29sYXRlZENvcHkoKSBj
b3B5X2NvbnN0cnVjdG9yKDxkZWZhdWx0Pi0xLTApIGlzb2xhdGVkQ29weSgpIGNvcHlfY29uc3Ry
dWN0b3IoPGRlZmF1bHQ+LTItMCkgaXNvbGF0ZWRDb3B5KCkgY29weV9jb25zdHJ1Y3Rvcihsb2dn
ZXItMS0wKSBtb3ZlX2NvbnN0cnVjdG9yKDxkZWZhdWx0Pi0xLTEpIG1vdmVfY29uc3RydWN0b3Io
PGRlZmF1bHQ+LTItMSkgbW92ZV9jb25zdHJ1Y3Rvcihsb2dnZXItMS0xKSBkZXN0cnVjdG9yKGxv
Z2dlci0xLTApIGRlc3RydWN0b3IoPGRlZmF1bHQ+LTItMCkgZGVzdHJ1Y3Rvcig8ZGVmYXVsdD4t
MS0wKSB0ZXN0RnVuY3Rpb24gY2FsbGVkIGRlc3RydWN0b3IobG9nZ2VyLTEtMSkgZGVzdHJ1Y3Rv
cig8ZGVmYXVsdD4tMi0xKSBkZXN0cnVjdG9yKDxkZWZhdWx0Pi0xLTEpIGRlc3RydWN0b3IobG9n
Z2VyLTAtMCkgZGVzdHJ1Y3Rvcig8ZGVmYXVsdD4tMS0wKSBkZXN0cnVjdG9yKDxkZWZhdWx0Pi0w
LTApICIsIExpZmV0aW1lTG9nZ2VyOjp0YWtlTG9nU3RyKCkuY19zdHIoKSk7CisgICAgQVNTRVJU
X1NUUkVRKCJkZWZhdWx0X2NvbnN0cnVjdG9yKDxkZWZhdWx0Pi0wLTApIGNvcHlfY29uc3RydWN0
b3IoPGRlZmF1bHQ+LTEtMCkgbmFtZV9jb25zdHJ1Y3Rvcihsb2dnZXItMC0wKSBpc29sYXRlZENv
cHkoKSBjb3B5X2NvbnN0cnVjdG9yKDxkZWZhdWx0Pi0xLTApIGlzb2xhdGVkQ29weSgpIGNvcHlf
Y29uc3RydWN0b3IoPGRlZmF1bHQ+LTItMCkgaXNvbGF0ZWRDb3B5KCkgY29weV9jb25zdHJ1Y3Rv
cihsb2dnZXItMS0wKSBtb3ZlX2NvbnN0cnVjdG9yKDxkZWZhdWx0Pi0xLTEpIG1vdmVfY29uc3Ry
dWN0b3IoPGRlZmF1bHQ+LTItMSkgbW92ZV9jb25zdHJ1Y3Rvcihsb2dnZXItMS0xKSBkZXN0cnVj
dG9yKGxvZ2dlci0xLTApIGRlc3RydWN0b3IoPGRlZmF1bHQ+LTItMCkgZGVzdHJ1Y3Rvcig8ZGVm
YXVsdD4tMS0wKSBtb3ZlX2NvbnN0cnVjdG9yKDxkZWZhdWx0Pi0xLTIpIG1vdmVfY29uc3RydWN0
b3IoPGRlZmF1bHQ+LTItMikgbW92ZV9jb25zdHJ1Y3Rvcihsb2dnZXItMS0yKSBkZXN0cnVjdG9y
KGxvZ2dlci0xLTEpIGRlc3RydWN0b3IoPGRlZmF1bHQ+LTItMSkgZGVzdHJ1Y3Rvcig8ZGVmYXVs
dD4tMS0xKSB0ZXN0RnVuY3Rpb24gY2FsbGVkIGRlc3RydWN0b3IobG9nZ2VyLTEtMikgZGVzdHJ1
Y3Rvcig8ZGVmYXVsdD4tMi0yKSBkZXN0cnVjdG9yKDxkZWZhdWx0Pi0xLTIpIGRlc3RydWN0b3Io
bG9nZ2VyLTAtMCkgZGVzdHJ1Y3Rvcig8ZGVmYXVsdD4tMS0wKSBkZXN0cnVjdG9yKDxkZWZhdWx0
Pi0wLTApICIsIExpZmV0aW1lTG9nZ2VyOjp0YWtlTG9nU3RyKCkuY19zdHIoKSk7CiB9CiAgICAg
CiB9IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>280852</attachid>
            <date>2016-06-08 15:57:17 -0700</date>
            <delta_ts>2016-06-09 10:33:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-158542-20160608155845.patch</filename>
            <type>text/plain</type>
            <size>14985</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAxODExCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDVmZTY1MzZmMzYzODgyNjgzNmRiYzk0
ZWVjM2M0ODk3NzMwZmEyMTkuLmQzODhmNWIyMTY0NDQ1YTYyNGY3YWYzZjgyNzdhZDFiZTZkMTg0
MjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDUgKzEsMjAgQEAKIDIwMTYtMDYtMDggIEJyYWR5IEVpZHNvbiAgPGJlaWRz
b25AYXBwbGUuY29tPgogCisgICAgICAgIEdyZWF0bHkgc2ltcGxpZnkgQ3Jvc3NUaHJlYWRUYXNr
LmguCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTg1
NDIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHd0
Zi9Dcm9zc1RocmVhZFRhc2suaDoKKyAgICAgICAgKFdURjo6Y3Jvc3NUaHJlYWRDb3B5KToKKyAg
ICAgICAgKFdURjo6Y2FsbEZ1bmN0aW9uRm9yQ3Jvc3NUaHJlYWRUYXNrSW1wbCk6CisgICAgICAg
IChXVEY6OmNhbGxGdW5jdGlvbkZvckNyb3NzVGhyZWFkVGFzayk6CisgICAgICAgIChXVEY6OmNy
ZWF0ZUNyb3NzVGhyZWFkVGFzayk6CisgICAgICAgIChXVEY6OmNhbGxNZW1iZXJGdW5jdGlvbkZv
ckNyb3NzVGhyZWFkVGFza0ltcGwpOgorICAgICAgICAoV1RGOjpjYWxsTWVtYmVyRnVuY3Rpb25G
b3JDcm9zc1RocmVhZFRhc2spOgorCisyMDE2LTA2LTA4ICBCcmFkeSBFaWRzb24gIDxiZWlkc29u
QGFwcGxlLmNvbT4KKwogICAgICAgICBNYWtlIENyb3NzVGhyZWFkQ29waWVyIG1vcmUgZWZmaWNp
ZW50IChmZXdlciBjb3BpZXMhKS4KICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE1ODQ1NgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9Dcm9zc1Ro
cmVhZFRhc2suaCBiL1NvdXJjZS9XVEYvd3RmL0Nyb3NzVGhyZWFkVGFzay5oCmluZGV4IDUzODU4
YmNlMTQ0ZmFkMGM3ZDcxYWYzYzBjZjU5NzhlNzI0YWViOGIuLmVhNzI4MTk5NjZjNzYwMWVmZjVl
Nzg5OWY5MWI0YjBkMWJhOGQwMzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0Nyb3NzVGhy
ZWFkVGFzay5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL0Nyb3NzVGhyZWFkVGFzay5oCkBAIC0zMiwy
NCArMzIsNiBAQAogbmFtZXNwYWNlIFdURiB7CiAKIGNsYXNzIENyb3NzVGhyZWFkVGFzayB7Ci0g
ICAgdGVtcGxhdGU8Y2xhc3MgVD4KLSAgICBmcmllbmQgQ3Jvc3NUaHJlYWRUYXNrIGNyZWF0ZUNy
b3NzVGhyZWFkVGFzayhUJiwgdm9pZCAoVDo6KikoKSk7Ci0gICAgdGVtcGxhdGU8Y2xhc3MgVCwg
Y2xhc3MgUDEsIGNsYXNzIE1QMT4KLSAgICBmcmllbmQgQ3Jvc3NUaHJlYWRUYXNrIGNyZWF0ZUNy
b3NzVGhyZWFkVGFzayhUJiwgdm9pZCAoVDo6KikoTVAxKSwgY29uc3QgUDEmKTsKLSAgICB0ZW1w
bGF0ZTxjbGFzcyBULCBjbGFzcyBQMSwgY2xhc3MgTVAxLCBjbGFzcyBQMiwgY2xhc3MgTVAyPgot
ICAgIGZyaWVuZCBDcm9zc1RocmVhZFRhc2sgY3JlYXRlQ3Jvc3NUaHJlYWRUYXNrKFQmLCB2b2lk
IChUOjoqKShNUDEsIE1QMiksIGNvbnN0IFAxJiwgY29uc3QgUDImKTsKLSAgICB0ZW1wbGF0ZTxj
bGFzcyBULCBjbGFzcyBQMSwgY2xhc3MgTVAxLCBjbGFzcyBQMiwgY2xhc3MgTVAyLCBjbGFzcyBQ
MywgY2xhc3MgTVAzPgotICAgIGZyaWVuZCBDcm9zc1RocmVhZFRhc2sgY3JlYXRlQ3Jvc3NUaHJl
YWRUYXNrKFQmLCB2b2lkIChUOjoqKShNUDEsIE1QMiwgTVAzKSwgY29uc3QgUDEmLCBjb25zdCBQ
MiYsIGNvbnN0IFAzJik7Ci0gICAgdGVtcGxhdGU8Y2xhc3MgVCwgY2xhc3MgUDEsIGNsYXNzIE1Q
MSwgY2xhc3MgUDIsIGNsYXNzIE1QMiwgY2xhc3MgUDMsIGNsYXNzIE1QMywgY2xhc3MgUDQsIGNs
YXNzIE1QND4KLSAgICBmcmllbmQgQ3Jvc3NUaHJlYWRUYXNrIGNyZWF0ZUNyb3NzVGhyZWFkVGFz
ayhUJiwgdm9pZCAoVDo6KikoTVAxLCBNUDIsIE1QMywgTVA0KSwgY29uc3QgUDEmLCBjb25zdCBQ
MiYsIGNvbnN0IFAzJiwgY29uc3QgUDQmKTsKLSAgICB0ZW1wbGF0ZTxjbGFzcyBULCBjbGFzcyBQ
MSwgY2xhc3MgTVAxLCBjbGFzcyBQMiwgY2xhc3MgTVAyLCBjbGFzcyBQMywgY2xhc3MgTVAzLCBj
bGFzcyBQNCwgY2xhc3MgTVA0LCBjbGFzcyBQNSwgY2xhc3MgTVA1PgotICAgIGZyaWVuZCBDcm9z
c1RocmVhZFRhc2sgY3JlYXRlQ3Jvc3NUaHJlYWRUYXNrKFQmLCB2b2lkIChUOjoqKShNUDEsIE1Q
MiwgTVAzLCBNUDQsIE1QNSksIGNvbnN0IFAxJiwgY29uc3QgUDImLCBjb25zdCBQMyYsIGNvbnN0
IFA0JiwgY29uc3QgUDUmKTsKLSAgICB0ZW1wbGF0ZTxjbGFzcyBULCBjbGFzcyBQMSwgY2xhc3Mg
TVAxLCBjbGFzcyBQMiwgY2xhc3MgTVAyLCBjbGFzcyBQMywgY2xhc3MgTVAzLCBjbGFzcyBQNCwg
Y2xhc3MgTVA0LCBjbGFzcyBQNSwgY2xhc3MgTVA1LCBjbGFzcyBQNiwgY2xhc3MgTVA2PgotICAg
IGZyaWVuZCBDcm9zc1RocmVhZFRhc2sgY3JlYXRlQ3Jvc3NUaHJlYWRUYXNrKFQmLCB2b2lkIChU
OjoqKShNUDEsIE1QMiwgTVAzLCBNUDQsIE1QNSwgTVA2KSwgY29uc3QgUDEmLCBjb25zdCBQMiYs
IGNvbnN0IFAzJiwgY29uc3QgUDQmLCBjb25zdCBQNSYsIGNvbnN0IFA2Jik7Ci0gICAgdGVtcGxh
dGU8Y2xhc3MgVCwgY2xhc3MgUDEsIGNsYXNzIE1QMSwgY2xhc3MgUDIsIGNsYXNzIE1QMiwgY2xh
c3MgUDMsIGNsYXNzIE1QMywgY2xhc3MgUDQsIGNsYXNzIE1QNCwgY2xhc3MgUDUsIGNsYXNzIE1Q
NSwgY2xhc3MgUDYsIGNsYXNzIE1QNiwgY2xhc3MgUDcsIGNsYXNzIE1QNz4KLSAgICBmcmllbmQg
Q3Jvc3NUaHJlYWRUYXNrIGNyZWF0ZUNyb3NzVGhyZWFkVGFzayhUJiwgdm9pZCAoVDo6KikoTVAx
LCBNUDIsIE1QMywgTVA0LCBNUDUsIE1QNiwgTVA3KSwgY29uc3QgUDEmLCBjb25zdCBQMiYsIGNv
bnN0IFAzJiwgY29uc3QgUDQmLCBjb25zdCBQNSYsIGNvbnN0IFA2JiwgY29uc3QgUDcmKTsKLSAg
ICB0ZW1wbGF0ZTxjbGFzcyBULCBjbGFzcyBQMSwgY2xhc3MgTVAxLCBjbGFzcyBQMiwgY2xhc3Mg
TVAyLCBjbGFzcyBQMywgY2xhc3MgTVAzLCBjbGFzcyBQNCwgY2xhc3MgTVA0LCBjbGFzcyBQNSwg
Y2xhc3MgTVA1LCBjbGFzcyBQNiwgY2xhc3MgTVA2LCBjbGFzcyBQNywgY2xhc3MgTVA3LCBjbGFz
cyBQOCwgY2xhc3MgTVA4PgotICAgIGZyaWVuZCBDcm9zc1RocmVhZFRhc2sgY3JlYXRlQ3Jvc3NU
aHJlYWRUYXNrKFQmLCB2b2lkIChUOjoqKShNUDEsIE1QMiwgTVAzLCBNUDQsIE1QNSwgTVA2LCBN
UDcsIE1QOCksIGNvbnN0IFAxJiwgY29uc3QgUDImLCBjb25zdCBQMyYsIGNvbnN0IFA0JiwgY29u
c3QgUDUmLCBjb25zdCBQNiYsIGNvbnN0IFA3JiwgY29uc3QgUDgmKTsKIHB1YmxpYzoKICAgICBD
cm9zc1RocmVhZFRhc2soKSA9IGRlZmF1bHQ7CiAKQEAgLTY4LDE4MCArNTAsNDkgQEAgcHJvdGVj
dGVkOgogICAgIE5vbmNvcHlhYmxlRnVuY3Rpb248dm9pZCAoKT4gbV90YXNrRnVuY3Rpb247CiB9
OwogCi10ZW1wbGF0ZTx0eXBlbmFtZSBUPgotQ3Jvc3NUaHJlYWRUYXNrIGNyZWF0ZUNyb3NzVGhy
ZWFkVGFzaygKLSAgICBUJiBjYWxsZWUsCi0gICAgdm9pZCAoVDo6Km1ldGhvZCkoKSkKK3RlbXBs
YXRlIDx0eXBlbmFtZSBUPgorVCBjcm9zc1RocmVhZENvcHkoY29uc3QgVCYgdCkKIHsKLSAgICBy
ZXR1cm4gQ3Jvc3NUaHJlYWRUYXNrKFtjYWxsZWUgPSAmY2FsbGVlLCBtZXRob2RdKCkgbXV0YWJs
ZSB7Ci0gICAgICAgIChjYWxsZWUtPiptZXRob2QpKCk7Ci0gICAgfSk7CisgICAgcmV0dXJuIENy
b3NzVGhyZWFkQ29waWVyPFQ+Ojpjb3B5KHQpOwogfQogCi10ZW1wbGF0ZTx0eXBlbmFtZSBULCB0
eXBlbmFtZSBQMSwgdHlwZW5hbWUgTVAxPgotQ3Jvc3NUaHJlYWRUYXNrIGNyZWF0ZUNyb3NzVGhy
ZWFkVGFzaygKLSAgICBUJiBjYWxsZWUsCi0gICAgdm9pZCAoVDo6Km1ldGhvZCkoTVAxKSwKLSAg
ICBjb25zdCBQMSYgcGFyYW1ldGVyMSkKK3RlbXBsYXRlIDx0eXBlbmFtZSBGLCB0eXBlbmFtZSBB
cmdzVHVwbGUsIHNpemVfdC4uLiBBcmdzSW5kZXg+Cit2b2lkIGNhbGxGdW5jdGlvbkZvckNyb3Nz
VGhyZWFkVGFza0ltcGwoRiBmdW5jdGlvbiwgQXJnc1R1cGxlJiYgYXJncywgc3RkOjppbmRleF9z
ZXF1ZW5jZTxBcmdzSW5kZXguLi4+KQogewotICAgIHJldHVybiBDcm9zc1RocmVhZFRhc2soW2Nh
bGxlZSA9ICZjYWxsZWUsIG1ldGhvZCwKLSAgICAgICAgcDEgPSBDcm9zc1RocmVhZENvcGllcjxQ
MT46OmNvcHkocGFyYW1ldGVyMSldKCkgbXV0YWJsZSB7Ci0gICAgICAgIChjYWxsZWUtPiptZXRo
b2QpKHAxKTsKLSAgICB9KTsKKyAgICBmdW5jdGlvbihzdGQ6OmdldDxBcmdzSW5kZXg+KHN0ZDo6
Zm9yd2FyZDxBcmdzVHVwbGU+KGFyZ3MpKS4uLik7CiB9CiAKLXRlbXBsYXRlPHR5cGVuYW1lIFQs
IHR5cGVuYW1lIFAxLCB0eXBlbmFtZSBNUDEsIHR5cGVuYW1lIFAyLCB0eXBlbmFtZSBNUDI+Ci1D
cm9zc1RocmVhZFRhc2sgY3JlYXRlQ3Jvc3NUaHJlYWRUYXNrKAotICAgIFQmIGNhbGxlZSwKLSAg
ICB2b2lkIChUOjoqbWV0aG9kKShNUDEsIE1QMiksCi0gICAgY29uc3QgUDEmIHBhcmFtZXRlcjEs
Ci0gICAgY29uc3QgUDImIHBhcmFtZXRlcjIpCit0ZW1wbGF0ZSA8dHlwZW5hbWUgRiwgdHlwZW5h
bWUgQXJnc1R1cGxlLCB0eXBlbmFtZSBBcmdzSW5kaWNpZXMgPSBzdGQ6Om1ha2VfaW5kZXhfc2Vx
dWVuY2U8c3RkOjp0dXBsZV9zaXplPEFyZ3NUdXBsZT46OnZhbHVlPj4KK3ZvaWQgY2FsbEZ1bmN0
aW9uRm9yQ3Jvc3NUaHJlYWRUYXNrKEYgZnVuY3Rpb24sIEFyZ3NUdXBsZSYmIGFyZ3MpCiB7Ci0g
ICAgcmV0dXJuIENyb3NzVGhyZWFkVGFzayhbY2FsbGVlID0gJmNhbGxlZSwgbWV0aG9kLAotICAg
ICAgICBwMSA9IENyb3NzVGhyZWFkQ29waWVyPFAxPjo6Y29weShwYXJhbWV0ZXIxKSwKLSAgICAg
ICAgcDIgPSBDcm9zc1RocmVhZENvcGllcjxQMj46OmNvcHkocGFyYW1ldGVyMildKCkgbXV0YWJs
ZSB7Ci0gICAgICAgIChjYWxsZWUtPiptZXRob2QpKHAxLCBwMik7Ci0gICAgfSk7CisgICAgY2Fs
bEZ1bmN0aW9uRm9yQ3Jvc3NUaHJlYWRUYXNrSW1wbChmdW5jdGlvbiwgc3RkOjpmb3J3YXJkPEFy
Z3NUdXBsZT4oYXJncyksIEFyZ3NJbmRpY2llcygpKTsKIH0KIAotdGVtcGxhdGU8dHlwZW5hbWUg
VCwgdHlwZW5hbWUgUDEsIHR5cGVuYW1lIE1QMSwgdHlwZW5hbWUgUDIsIHR5cGVuYW1lIE1QMiwg
dHlwZW5hbWUgUDMsIHR5cGVuYW1lIE1QMz4KLUNyb3NzVGhyZWFkVGFzayBjcmVhdGVDcm9zc1Ro
cmVhZFRhc2soCi0gICAgVCYgY2FsbGVlLAotICAgIHZvaWQgKFQ6OiptZXRob2QpKE1QMSwgTVAy
LCBNUDMpLAotICAgIGNvbnN0IFAxJiBwYXJhbWV0ZXIxLAotICAgIGNvbnN0IFAyJiBwYXJhbWV0
ZXIyLAotICAgIGNvbnN0IFAzJiBwYXJhbWV0ZXIzKQordGVtcGxhdGU8dHlwZW5hbWUuLi4gUGFy
YW1ldGVycywgdHlwZW5hbWUuLi4gQXJndW1lbnRzPgorQ3Jvc3NUaHJlYWRUYXNrIGNyZWF0ZUNy
b3NzVGhyZWFkVGFzayh2b2lkICgqbWV0aG9kKShQYXJhbWV0ZXJzLi4uKSwgY29uc3QgQXJndW1l
bnRzJi4uLiBhcmd1bWVudHMpCiB7Ci0gICAgcmV0dXJuIENyb3NzVGhyZWFkVGFzayhbY2FsbGVl
ID0gJmNhbGxlZSwgbWV0aG9kLAotICAgICAgICBwMSA9IENyb3NzVGhyZWFkQ29waWVyPFAxPjo6
Y29weShwYXJhbWV0ZXIxKSwKLSAgICAgICAgcDIgPSBDcm9zc1RocmVhZENvcGllcjxQMj46OmNv
cHkocGFyYW1ldGVyMiksCi0gICAgICAgIHAzID0gQ3Jvc3NUaHJlYWRDb3BpZXI8UDM+Ojpjb3B5
KHBhcmFtZXRlcjMpXSgpIG11dGFibGUgewotICAgICAgICAoY2FsbGVlLT4qbWV0aG9kKShwMSwg
cDIsIHAzKTsKKyAgICByZXR1cm4gQ3Jvc3NUaHJlYWRUYXNrKFttZXRob2QsIGFyZ3VtZW50cyA9
IHN0ZDo6bWFrZV90dXBsZShjcm9zc1RocmVhZENvcHk8QXJndW1lbnRzPihhcmd1bWVudHMpLi4u
KV0oKSBtdXRhYmxlIHsKKyAgICAgICAgY2FsbEZ1bmN0aW9uRm9yQ3Jvc3NUaHJlYWRUYXNrKG1l
dGhvZCwgV1RGTW92ZShhcmd1bWVudHMpKTsKICAgICB9KTsKIH0KIAotdGVtcGxhdGU8dHlwZW5h
bWUgUDEsIHR5cGVuYW1lIE1QMSwgdHlwZW5hbWUgUDIsIHR5cGVuYW1lIE1QMiwgdHlwZW5hbWUg
UDMsIHR5cGVuYW1lIE1QMz4KLUNyb3NzVGhyZWFkVGFzayBjcmVhdGVDcm9zc1RocmVhZFRhc2so
Ci0gICAgdm9pZCAoKm1ldGhvZCkoTVAxLCBNUDIsIE1QMyksCi0gICAgY29uc3QgUDEmIHBhcmFt
ZXRlcjEsCi0gICAgY29uc3QgUDImIHBhcmFtZXRlcjIsCi0gICAgY29uc3QgUDMmIHBhcmFtZXRl
cjMpCit0ZW1wbGF0ZSA8dHlwZW5hbWUgQywgdHlwZW5hbWUgTUYsIHR5cGVuYW1lIEFyZ3NUdXBs
ZSwgc2l6ZV90Li4uIEFyZ3NJbmRleD4KK3ZvaWQgY2FsbE1lbWJlckZ1bmN0aW9uRm9yQ3Jvc3NU
aHJlYWRUYXNrSW1wbChDKiBvYmplY3QsIE1GIGZ1bmN0aW9uLCBBcmdzVHVwbGUmJiBhcmdzLCBz
dGQ6OmluZGV4X3NlcXVlbmNlPEFyZ3NJbmRleC4uLj4pCiB7Ci0gICAgcmV0dXJuIENyb3NzVGhy
ZWFkVGFzayhbbWV0aG9kLAotICAgICAgICBwMSA9IENyb3NzVGhyZWFkQ29waWVyPFAxPjo6Y29w
eShwYXJhbWV0ZXIxKSwKLSAgICAgICAgcDIgPSBDcm9zc1RocmVhZENvcGllcjxQMj46OmNvcHko
cGFyYW1ldGVyMiksCi0gICAgICAgIHAzID0gQ3Jvc3NUaHJlYWRDb3BpZXI8UDM+Ojpjb3B5KHBh
cmFtZXRlcjMpXSgpIG11dGFibGUgewotICAgICAgICBtZXRob2QocDEsIHAyLCBwMyk7Ci0gICAg
fSk7CisgICAgKG9iamVjdC0+KmZ1bmN0aW9uKShzdGQ6OmdldDxBcmdzSW5kZXg+KHN0ZDo6Zm9y
d2FyZDxBcmdzVHVwbGU+KGFyZ3MpKS4uLik7CiB9CiAKLXRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5
cGVuYW1lIFAxLCB0eXBlbmFtZSBNUDEsIHR5cGVuYW1lIFAyLCB0eXBlbmFtZSBNUDIsIHR5cGVu
YW1lIFAzLCB0eXBlbmFtZSBNUDMsIHR5cGVuYW1lIFA0LCB0eXBlbmFtZSBNUDQ+Ci1Dcm9zc1Ro
cmVhZFRhc2sgY3JlYXRlQ3Jvc3NUaHJlYWRUYXNrKAotICAgIFQmIGNhbGxlZSwKLSAgICB2b2lk
IChUOjoqbWV0aG9kKShNUDEsIE1QMiwgTVAzLCBNUDQpLAotICAgIGNvbnN0IFAxJiBwYXJhbWV0
ZXIxLAotICAgIGNvbnN0IFAyJiBwYXJhbWV0ZXIyLAotICAgIGNvbnN0IFAzJiBwYXJhbWV0ZXIz
LAotICAgIGNvbnN0IFA0JiBwYXJhbWV0ZXI0KQordGVtcGxhdGUgPHR5cGVuYW1lIEMsIHR5cGVu
YW1lIE1GLCB0eXBlbmFtZSBBcmdzVHVwbGUsIHR5cGVuYW1lIEFyZ3NJbmRpY2llcyA9IHN0ZDo6
bWFrZV9pbmRleF9zZXF1ZW5jZTxzdGQ6OnR1cGxlX3NpemU8QXJnc1R1cGxlPjo6dmFsdWU+Pgor
dm9pZCBjYWxsTWVtYmVyRnVuY3Rpb25Gb3JDcm9zc1RocmVhZFRhc2soQyogb2JqZWN0LCBNRiBm
dW5jdGlvbiwgQXJnc1R1cGxlJiYgYXJncykKIHsKLSAgICByZXR1cm4gQ3Jvc3NUaHJlYWRUYXNr
KFtjYWxsZWUgPSAmY2FsbGVlLCBtZXRob2QsCi0gICAgICAgIHAxID0gQ3Jvc3NUaHJlYWRDb3Bp
ZXI8UDE+Ojpjb3B5KHBhcmFtZXRlcjEpLAotICAgICAgICBwMiA9IENyb3NzVGhyZWFkQ29waWVy
PFAyPjo6Y29weShwYXJhbWV0ZXIyKSwKLSAgICAgICAgcDMgPSBDcm9zc1RocmVhZENvcGllcjxQ
Mz46OmNvcHkocGFyYW1ldGVyMyksCi0gICAgICAgIHA0ID0gQ3Jvc3NUaHJlYWRDb3BpZXI8UDQ+
Ojpjb3B5KHBhcmFtZXRlcjQpXSgpIG11dGFibGUgewotICAgICAgICAoY2FsbGVlLT4qbWV0aG9k
KShwMSwgcDIsIHAzLCBwNCk7Ci0gICAgfSk7Ci19Ci0KLXRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5
cGVuYW1lIFAxLCB0eXBlbmFtZSBNUDEsIHR5cGVuYW1lIFAyLCB0eXBlbmFtZSBNUDIsIHR5cGVu
YW1lIFAzLCB0eXBlbmFtZSBNUDMsIHR5cGVuYW1lIFA0LCB0eXBlbmFtZSBNUDQsIHR5cGVuYW1l
IFA1LCB0eXBlbmFtZSBNUDU+Ci1Dcm9zc1RocmVhZFRhc2sgY3JlYXRlQ3Jvc3NUaHJlYWRUYXNr
KAotICAgIFQmIGNhbGxlZSwKLSAgICB2b2lkIChUOjoqbWV0aG9kKShNUDEsIE1QMiwgTVAzLCBN
UDQsIE1QNSksCi0gICAgY29uc3QgUDEmIHBhcmFtZXRlcjEsCi0gICAgY29uc3QgUDImIHBhcmFt
ZXRlcjIsCi0gICAgY29uc3QgUDMmIHBhcmFtZXRlcjMsCi0gICAgY29uc3QgUDQmIHBhcmFtZXRl
cjQsCi0gICAgY29uc3QgUDUmIHBhcmFtZXRlcjUpCi17Ci0gICAgcmV0dXJuIENyb3NzVGhyZWFk
VGFzayhbY2FsbGVlID0gJmNhbGxlZSwgbWV0aG9kLAotICAgICAgICBwMSA9IENyb3NzVGhyZWFk
Q29waWVyPFAxPjo6Y29weShwYXJhbWV0ZXIxKSwKLSAgICAgICAgcDIgPSBDcm9zc1RocmVhZENv
cGllcjxQMj46OmNvcHkocGFyYW1ldGVyMiksCi0gICAgICAgIHAzID0gQ3Jvc3NUaHJlYWRDb3Bp
ZXI8UDM+Ojpjb3B5KHBhcmFtZXRlcjMpLAotICAgICAgICBwNCA9IENyb3NzVGhyZWFkQ29waWVy
PFA0Pjo6Y29weShwYXJhbWV0ZXI0KSwKLSAgICAgICAgcDUgPSBDcm9zc1RocmVhZENvcGllcjxQ
NT46OmNvcHkocGFyYW1ldGVyNSldKCkgbXV0YWJsZSB7Ci0gICAgICAgIChjYWxsZWUtPiptZXRo
b2QpKHAxLCBwMiwgcDMsIHA0LCBwNSk7Ci0gICAgfSk7Ci19Ci0KLXRlbXBsYXRlPHR5cGVuYW1l
IFQsIHR5cGVuYW1lIFAxLCB0eXBlbmFtZSBNUDEsIHR5cGVuYW1lIFAyLCB0eXBlbmFtZSBNUDIs
IHR5cGVuYW1lIFAzLCB0eXBlbmFtZSBNUDMsIHR5cGVuYW1lIFA0LCB0eXBlbmFtZSBNUDQsIHR5
cGVuYW1lIFA1LCB0eXBlbmFtZSBNUDUsIHR5cGVuYW1lIFA2LCB0eXBlbmFtZSBNUDY+Ci1Dcm9z
c1RocmVhZFRhc2sgY3JlYXRlQ3Jvc3NUaHJlYWRUYXNrKAotICAgIFQmIGNhbGxlZSwKLSAgICB2
b2lkIChUOjoqbWV0aG9kKShNUDEsIE1QMiwgTVAzLCBNUDQsIE1QNSwgTVA2KSwKLSAgICBjb25z
dCBQMSYgcGFyYW1ldGVyMSwKLSAgICBjb25zdCBQMiYgcGFyYW1ldGVyMiwKLSAgICBjb25zdCBQ
MyYgcGFyYW1ldGVyMywKLSAgICBjb25zdCBQNCYgcGFyYW1ldGVyNCwKLSAgICBjb25zdCBQNSYg
cGFyYW1ldGVyNSwKLSAgICBjb25zdCBQNiYgcGFyYW1ldGVyNikKLXsKLSAgICByZXR1cm4gQ3Jv
c3NUaHJlYWRUYXNrKFtjYWxsZWUgPSAmY2FsbGVlLCBtZXRob2QsCi0gICAgICAgIHAxID0gQ3Jv
c3NUaHJlYWRDb3BpZXI8UDE+Ojpjb3B5KHBhcmFtZXRlcjEpLAotICAgICAgICBwMiA9IENyb3Nz
VGhyZWFkQ29waWVyPFAyPjo6Y29weShwYXJhbWV0ZXIyKSwKLSAgICAgICAgcDMgPSBDcm9zc1Ro
cmVhZENvcGllcjxQMz46OmNvcHkocGFyYW1ldGVyMyksCi0gICAgICAgIHA0ID0gQ3Jvc3NUaHJl
YWRDb3BpZXI8UDQ+Ojpjb3B5KHBhcmFtZXRlcjQpLAotICAgICAgICBwNSA9IENyb3NzVGhyZWFk
Q29waWVyPFA1Pjo6Y29weShwYXJhbWV0ZXI1KSwKLSAgICAgICAgcDYgPSBDcm9zc1RocmVhZENv
cGllcjxQNj46OmNvcHkocGFyYW1ldGVyNildKCkgbXV0YWJsZSB7Ci0gICAgICAgIChjYWxsZWUt
PiptZXRob2QpKHAxLCBwMiwgcDMsIHA0LCBwNSwgcDYpOwotICAgIH0pOwotfQotCi10ZW1wbGF0
ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBQMSwgdHlwZW5hbWUgTVAxLCB0eXBlbmFtZSBQMiwgdHlw
ZW5hbWUgTVAyLCB0eXBlbmFtZSBQMywgdHlwZW5hbWUgTVAzLCB0eXBlbmFtZSBQNCwgdHlwZW5h
bWUgTVA0LCB0eXBlbmFtZSBQNSwgdHlwZW5hbWUgTVA1LCB0eXBlbmFtZSBQNiwgdHlwZW5hbWUg
TVA2LCB0eXBlbmFtZSBQNywgdHlwZW5hbWUgTVA3PgotQ3Jvc3NUaHJlYWRUYXNrIGNyZWF0ZUNy
b3NzVGhyZWFkVGFzaygKLSAgICBUJiBjYWxsZWUsCi0gICAgdm9pZCAoVDo6Km1ldGhvZCkoTVAx
LCBNUDIsIE1QMywgTVA0LCBNUDUsIE1QNiwgTVA3KSwKLSAgICBjb25zdCBQMSYgcGFyYW1ldGVy
MSwKLSAgICBjb25zdCBQMiYgcGFyYW1ldGVyMiwKLSAgICBjb25zdCBQMyYgcGFyYW1ldGVyMywK
LSAgICBjb25zdCBQNCYgcGFyYW1ldGVyNCwKLSAgICBjb25zdCBQNSYgcGFyYW1ldGVyNSwKLSAg
ICBjb25zdCBQNiYgcGFyYW1ldGVyNiwKLSAgICBjb25zdCBQNyYgcGFyYW1ldGVyNykKLXsKLSAg
ICByZXR1cm4gQ3Jvc3NUaHJlYWRUYXNrKFtjYWxsZWUgPSAmY2FsbGVlLCBtZXRob2QsCi0gICAg
ICAgIHAxID0gQ3Jvc3NUaHJlYWRDb3BpZXI8UDE+Ojpjb3B5KHBhcmFtZXRlcjEpLAotICAgICAg
ICBwMiA9IENyb3NzVGhyZWFkQ29waWVyPFAyPjo6Y29weShwYXJhbWV0ZXIyKSwKLSAgICAgICAg
cDMgPSBDcm9zc1RocmVhZENvcGllcjxQMz46OmNvcHkocGFyYW1ldGVyMyksCi0gICAgICAgIHA0
ID0gQ3Jvc3NUaHJlYWRDb3BpZXI8UDQ+Ojpjb3B5KHBhcmFtZXRlcjQpLAotICAgICAgICBwNSA9
IENyb3NzVGhyZWFkQ29waWVyPFA1Pjo6Y29weShwYXJhbWV0ZXI1KSwKLSAgICAgICAgcDYgPSBD
cm9zc1RocmVhZENvcGllcjxQNj46OmNvcHkocGFyYW1ldGVyNiksCi0gICAgICAgIHA3ID0gQ3Jv
c3NUaHJlYWRDb3BpZXI8UDc+Ojpjb3B5KHBhcmFtZXRlcjcpXSgpIG11dGFibGUgewotICAgICAg
ICAoY2FsbGVlLT4qbWV0aG9kKShwMSwgcDIsIHAzLCBwNCwgcDUsIHA2LCBwNyk7Ci0gICAgfSk7
CisgICAgY2FsbE1lbWJlckZ1bmN0aW9uRm9yQ3Jvc3NUaHJlYWRUYXNrSW1wbChvYmplY3QsIGZ1
bmN0aW9uLCBzdGQ6OmZvcndhcmQ8QXJnc1R1cGxlPihhcmdzKSwgQXJnc0luZGljaWVzKCkpOwog
fQogCi10ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBQMSwgdHlwZW5hbWUgTVAxLCB0eXBl
bmFtZSBQMiwgdHlwZW5hbWUgTVAyLCB0eXBlbmFtZSBQMywgdHlwZW5hbWUgTVAzLCB0eXBlbmFt
ZSBQNCwgdHlwZW5hbWUgTVA0LCB0eXBlbmFtZSBQNSwgdHlwZW5hbWUgTVA1LCB0eXBlbmFtZSBQ
NiwgdHlwZW5hbWUgTVA2LCB0eXBlbmFtZSBQNywgdHlwZW5hbWUgTVA3LCB0eXBlbmFtZSBQOCwg
dHlwZW5hbWUgTVA4PgotQ3Jvc3NUaHJlYWRUYXNrIGNyZWF0ZUNyb3NzVGhyZWFkVGFzaygKLSAg
ICBUJiBjYWxsZWUsCi0gICAgdm9pZCAoVDo6Km1ldGhvZCkoTVAxLCBNUDIsIE1QMywgTVA0LCBN
UDUsIE1QNiwgTVA3LCBNUDgpLAotICAgIGNvbnN0IFAxJiBwYXJhbWV0ZXIxLAotICAgIGNvbnN0
IFAyJiBwYXJhbWV0ZXIyLAotICAgIGNvbnN0IFAzJiBwYXJhbWV0ZXIzLAotICAgIGNvbnN0IFA0
JiBwYXJhbWV0ZXI0LAotICAgIGNvbnN0IFA1JiBwYXJhbWV0ZXI1LAotICAgIGNvbnN0IFA2JiBw
YXJhbWV0ZXI2LAotICAgIGNvbnN0IFA3JiBwYXJhbWV0ZXI3LAotICAgIGNvbnN0IFA4JiBwYXJh
bWV0ZXI4KQordGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUuLi4gUGFyYW1ldGVycywgdHlw
ZW5hbWUuLi4gQXJndW1lbnRzPgorQ3Jvc3NUaHJlYWRUYXNrIGNyZWF0ZUNyb3NzVGhyZWFkVGFz
ayhUJiBjYWxsZWUsIHZvaWQgKFQ6OiptZXRob2QpKFBhcmFtZXRlcnMuLi4pLCBjb25zdCBBcmd1
bWVudHMmLi4uIGFyZ3VtZW50cykKIHsKLSAgICByZXR1cm4gQ3Jvc3NUaHJlYWRUYXNrKFtjYWxs
ZWUgPSAmY2FsbGVlLCBtZXRob2QsCi0gICAgICAgIHAxID0gQ3Jvc3NUaHJlYWRDb3BpZXI8UDE+
Ojpjb3B5KHBhcmFtZXRlcjEpLAotICAgICAgICBwMiA9IENyb3NzVGhyZWFkQ29waWVyPFAyPjo6
Y29weShwYXJhbWV0ZXIyKSwKLSAgICAgICAgcDMgPSBDcm9zc1RocmVhZENvcGllcjxQMz46OmNv
cHkocGFyYW1ldGVyMyksCi0gICAgICAgIHA0ID0gQ3Jvc3NUaHJlYWRDb3BpZXI8UDQ+Ojpjb3B5
KHBhcmFtZXRlcjQpLAotICAgICAgICBwNSA9IENyb3NzVGhyZWFkQ29waWVyPFA1Pjo6Y29weShw
YXJhbWV0ZXI1KSwKLSAgICAgICAgcDYgPSBDcm9zc1RocmVhZENvcGllcjxQNj46OmNvcHkocGFy
YW1ldGVyNiksCi0gICAgICAgIHA3ID0gQ3Jvc3NUaHJlYWRDb3BpZXI8UDc+Ojpjb3B5KHBhcmFt
ZXRlcjcpLAotICAgICAgICBwOCA9IENyb3NzVGhyZWFkQ29waWVyPFA4Pjo6Y29weShwYXJhbWV0
ZXI4KV0oKSBtdXRhYmxlIHsKLSAgICAgICAgKGNhbGxlZS0+Km1ldGhvZCkocDEsIHAyLCBwMywg
cDQsIHA1LCBwNiwgcDcsIHA4KTsKKyAgICByZXR1cm4gQ3Jvc3NUaHJlYWRUYXNrKFtjYWxsZWUg
PSAmY2FsbGVlLCBtZXRob2QsIGFyZ3VtZW50cyA9IHN0ZDo6bWFrZV90dXBsZShjcm9zc1RocmVh
ZENvcHk8QXJndW1lbnRzPihhcmd1bWVudHMpLi4uKV0oKSBtdXRhYmxlIHsKKyAgICAgICAgY2Fs
bE1lbWJlckZ1bmN0aW9uRm9yQ3Jvc3NUaHJlYWRUYXNrKGNhbGxlZSwgbWV0aG9kLCBXVEZNb3Zl
KGFyZ3VtZW50cykpOwogICAgIH0pOwogfQogCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNjM5ODAzZDkxYTU5OTFiMmViOTVmN2JhYTk3ZTE3YTZl
ZWEwOTQ4ZC4uNWVhNDJmOGNlMGU3NjFlNzYzMDVkOTAwODMwM2YwMWRhNzVhM2ZlYSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDE1
IEBACiAyMDE2LTA2LTA4ICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KIAorICAg
ICAgICBHcmVhdGx5IHNpbXBsaWZ5IENyb3NzVGhyZWFkVGFzay5oLgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU4NTQyCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dU
Ri9Dcm9zc1RocmVhZFRhc2suY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisK
KzIwMTYtMDYtMDggIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCiAgICAgICAg
IFRyeSB0byBmaXggdGhlIFdpbmRvd3MgYnVpbGQuCiAKICAgICAgICAgVW5yZXZpZXdlZC4KZGlm
ZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0Nyb3NzVGhyZWFkVGFzay5j
cHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9Dcm9zc1RocmVhZFRhc2suY3BwCmlu
ZGV4IDg5OTUyZTkzNTVmMTdjMTcyMDgzNTIyNzViZjdmNDcwMTE1MzllZWUuLmI1MGNiMzE3MDE0
N2RkNTRjNjQ3OTcwZWQxMmU1NTFhNzhiNjRhOTcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV1RGL0Nyb3NzVGhyZWFkVGFzay5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XVEYvQ3Jvc3NUaHJlYWRUYXNrLmNwcApAQCAtODUsNyArODUsNiBAQCBzdHJ1
Y3QgTGlmZXRpbWVMb2dnZXIgewogICAgICAgICBsb2coKS5zdHIoIiIpOwogICAgICAgICByZXR1
cm4gc3RyaW5nOwogICAgIH0KLQogfTsKIAogdm9pZCB0ZXN0RnVuY3Rpb24oY29uc3QgTGlmZXRp
bWVMb2dnZXImLCBjb25zdCBMaWZldGltZUxvZ2dlciYsIGNvbnN0IExpZmV0aW1lTG9nZ2VyJikK
QEAgLTEwMyw3ICsxMDIsNyBAQCBURVNUKFdURl9Dcm9zc1RocmVhZFRhc2ssIEJhc2ljKQogICAg
ICAgICBhdXRvIHRhc2sgPSBjcmVhdGVDcm9zc1RocmVhZFRhc2sodGVzdEZ1bmN0aW9uLCBsb2dn
ZXIxLCBsb2dnZXIyLCBsb2dnZXIzKTsKICAgICAgICAgdGFzay5wZXJmb3JtVGFzaygpOwogICAg
IH0KLSAgICBBU1NFUlRfU1RSRVEoImRlZmF1bHRfY29uc3RydWN0b3IoPGRlZmF1bHQ+LTAtMCkg
Y29weV9jb25zdHJ1Y3Rvcig8ZGVmYXVsdD4tMS0wKSBuYW1lX2NvbnN0cnVjdG9yKGxvZ2dlci0w
LTApIGlzb2xhdGVkQ29weSgpIGNvcHlfY29uc3RydWN0b3IoPGRlZmF1bHQ+LTEtMCkgaXNvbGF0
ZWRDb3B5KCkgY29weV9jb25zdHJ1Y3Rvcig8ZGVmYXVsdD4tMi0wKSBpc29sYXRlZENvcHkoKSBj
b3B5X2NvbnN0cnVjdG9yKGxvZ2dlci0xLTApIG1vdmVfY29uc3RydWN0b3IoPGRlZmF1bHQ+LTEt
MSkgbW92ZV9jb25zdHJ1Y3Rvcig8ZGVmYXVsdD4tMi0xKSBtb3ZlX2NvbnN0cnVjdG9yKGxvZ2dl
ci0xLTEpIGRlc3RydWN0b3IobG9nZ2VyLTEtMCkgZGVzdHJ1Y3Rvcig8ZGVmYXVsdD4tMi0wKSBk
ZXN0cnVjdG9yKDxkZWZhdWx0Pi0xLTApIHRlc3RGdW5jdGlvbiBjYWxsZWQgZGVzdHJ1Y3Rvcihs
b2dnZXItMS0xKSBkZXN0cnVjdG9yKDxkZWZhdWx0Pi0yLTEpIGRlc3RydWN0b3IoPGRlZmF1bHQ+
LTEtMSkgZGVzdHJ1Y3Rvcihsb2dnZXItMC0wKSBkZXN0cnVjdG9yKDxkZWZhdWx0Pi0xLTApIGRl
c3RydWN0b3IoPGRlZmF1bHQ+LTAtMCkgIiwgTGlmZXRpbWVMb2dnZXI6OnRha2VMb2dTdHIoKS5j
X3N0cigpKTsKKyAgICBBU1NFUlRfU1RSRVEoImRlZmF1bHRfY29uc3RydWN0b3IoPGRlZmF1bHQ+
LTAtMCkgY29weV9jb25zdHJ1Y3Rvcig8ZGVmYXVsdD4tMS0wKSBuYW1lX2NvbnN0cnVjdG9yKGxv
Z2dlci0wLTApIGlzb2xhdGVkQ29weSgpIGNvcHlfY29uc3RydWN0b3IoPGRlZmF1bHQ+LTEtMCkg
aXNvbGF0ZWRDb3B5KCkgY29weV9jb25zdHJ1Y3Rvcig8ZGVmYXVsdD4tMi0wKSBpc29sYXRlZENv
cHkoKSBjb3B5X2NvbnN0cnVjdG9yKGxvZ2dlci0xLTApIG1vdmVfY29uc3RydWN0b3IoPGRlZmF1
bHQ+LTEtMSkgbW92ZV9jb25zdHJ1Y3Rvcig8ZGVmYXVsdD4tMi0xKSBtb3ZlX2NvbnN0cnVjdG9y
KGxvZ2dlci0xLTEpIGRlc3RydWN0b3IobG9nZ2VyLTEtMCkgZGVzdHJ1Y3Rvcig8ZGVmYXVsdD4t
Mi0wKSBkZXN0cnVjdG9yKDxkZWZhdWx0Pi0xLTApIG1vdmVfY29uc3RydWN0b3IoPGRlZmF1bHQ+
LTEtMikgbW92ZV9jb25zdHJ1Y3Rvcig8ZGVmYXVsdD4tMi0yKSBtb3ZlX2NvbnN0cnVjdG9yKGxv
Z2dlci0xLTIpIGRlc3RydWN0b3IobG9nZ2VyLTEtMSkgZGVzdHJ1Y3Rvcig8ZGVmYXVsdD4tMi0x
KSBkZXN0cnVjdG9yKDxkZWZhdWx0Pi0xLTEpIHRlc3RGdW5jdGlvbiBjYWxsZWQgZGVzdHJ1Y3Rv
cihsb2dnZXItMS0yKSBkZXN0cnVjdG9yKDxkZWZhdWx0Pi0yLTIpIGRlc3RydWN0b3IoPGRlZmF1
bHQ+LTEtMikgZGVzdHJ1Y3Rvcihsb2dnZXItMC0wKSBkZXN0cnVjdG9yKDxkZWZhdWx0Pi0xLTAp
IGRlc3RydWN0b3IoPGRlZmF1bHQ+LTAtMCkgIiwgTGlmZXRpbWVMb2dnZXI6OnRha2VMb2dTdHIo
KS5jX3N0cigpKTsKIH0KICAgICAKIH0gLy8gbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkK
</data>

          </attachment>
      

    </bug>

</bugzilla>