<?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>78852</bug_id>
          
          <creation_ts>2012-02-16 15:38:00 -0800</creation_ts>
          <short_desc>Add FractionalLayoutSize for sub-pixel layout</short_desc>
          <delta_ts>2012-02-17 17:10:07 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>76571</blocked>
    
    <blocked>78913</blocked>
    
    <blocked>78924</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Emil A Eklund">eae</reporter>
          <assigned_to name="Emil A Eklund">eae</assigned_to>
          <cc>eric</cc>
    
    <cc>jamesr</cc>
    
    <cc>leviw</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>558604</commentid>
    <comment_count>0</comment_count>
    <who name="Emil A Eklund">eae</who>
    <bug_when>2012-02-16 15:38:00 -0800</bug_when>
    <thetext>Splitting bug 76571 into one bug/patch per class to make it easier to review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>558752</commentid>
    <comment_count>1</comment_count>
      <attachid>127482</attachid>
    <who name="Emil A Eklund">eae</who>
    <bug_when>2012-02-16 17:43:04 -0800</bug_when>
    <thetext>Created attachment 127482
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>558756</commentid>
    <comment_count>2</comment_count>
      <attachid>127482</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-02-16 17:45:38 -0800</bug_when>
    <thetext>Comment on attachment 127482
Patch

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

&gt; Source/WebCore/WebCore.xcodeproj/project.pbxproj:19808
&gt; -				BAB771501444CBB400EC4C4C /* FractionalLayoutUnit.h */,
&gt; +				144FCE5114EC79BC000D17A3 /* FractionalLayoutUnit.h */,

Huh?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>558775</commentid>
    <comment_count>3</comment_count>
    <who name="Emil A Eklund">eae</who>
    <bug_when>2012-02-16 18:09:52 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 127482 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=127482&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/WebCore.xcodeproj/project.pbxproj:19808
&gt; &gt; -				BAB771501444CBB400EC4C4C /* FractionalLayoutUnit.h */,
&gt; &gt; +				144FCE5114EC79BC000D17A3 /* FractionalLayoutUnit.h */,
&gt; 
&gt; Huh?

We got the fingerprint/numeric id wrong. I think the old value is for when the file was named AppUnit.h.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>559368</commentid>
    <comment_count>4</comment_count>
      <attachid>127617</attachid>
    <who name="Emil A Eklund">eae</who>
    <bug_when>2012-02-17 11:25:20 -0800</bug_when>
    <thetext>Created attachment 127617
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>559410</commentid>
    <comment_count>5</comment_count>
      <attachid>127617</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-02-17 12:01:24 -0800</bug_when>
    <thetext>Comment on attachment 127617
Patch

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

&gt; Source/WebCore/platform/graphics/FractionalLayoutSize.h:70
&gt; +        m_width = static_cast&lt;int&gt;(static_cast&lt;float&gt;(m_width) * scale);
&gt; +        m_height = static_cast&lt;int&gt;(static_cast&lt;float&gt;(m_height) * scale);

I&apos;m surprised you need the statis_cast&lt;float&gt;.  Wont float * int return a float anyway?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>559424</commentid>
    <comment_count>6</comment_count>
    <who name="Emil A Eklund">eae</who>
    <bug_when>2012-02-17 12:26:03 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; I&apos;m surprised you need the statis_cast&lt;float&gt;.  Wont float * int return a float anyway?

As was I but we get a compiler warning about ambiguity without the cast.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>559441</commentid>
    <comment_count>7</comment_count>
      <attachid>127632</attachid>
    <who name="Emil A Eklund">eae</who>
    <bug_when>2012-02-17 12:52:50 -0800</bug_when>
    <thetext>Created attachment 127632
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>559555</commentid>
    <comment_count>8</comment_count>
      <attachid>127632</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-17 14:37:56 -0800</bug_when>
    <thetext>Comment on attachment 127632
Patch for landing

Rejecting attachment 127632 from commit-queue.

Failed to run &quot;[&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;-...&quot; exit_code: 2

Last 500 characters of output:
e/WebCore/platform/graphics/FloatPoint.cpp
patching file Source/WebCore/platform/graphics/FloatPoint.h
patching file Source/WebCore/platform/graphics/FloatSize.cpp
patching file Source/WebCore/platform/graphics/FloatSize.h
patching file Source/WebCore/platform/graphics/FractionalLayoutSize.cpp
patching file Source/WebCore/platform/graphics/FractionalLayoutSize.h

Failed to run &quot;[u&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/svn-apply&apos;, u&apos;--force&apos;]&quot; exit_code: 1 cwd: /mnt/git/webkit-commit-queue/

Full output: http://queues.webkit.org/results/11541519</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>559569</commentid>
    <comment_count>9</comment_count>
    <who name="Emil A Eklund">eae</who>
    <bug_when>2012-02-17 15:07:57 -0800</bug_when>
    <thetext>Committed r108131: &lt;http://trac.webkit.org/changeset/108131&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>127482</attachid>
            <date>2012-02-16 17:43:04 -0800</date>
            <delta_ts>2012-02-17 11:25:20 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-78852-20120216174303.patch</filename>
            <type>text/plain</type>
            <size>24127</size>
            <attacher name="Emil A Eklund">eae</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwODAwMykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM0IEBACisyMDEyLTAyLTE2ICBFbWlsIEEg
RWtsdW5kICA8ZWFlQGNocm9taXVtLm9yZz4KKworICAgICAgICBBZGQgRnJhY3Rpb25hbExheW91
dFNpemUgZm9yIHN1Yi1waXhlbCBsYXlvdXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTc4ODUyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgQWRkIEZyYWN0aW9uYWxMYXlvdXRVbml0IHZlcnNpb24gb2YgU2l6
ZSBjbGFzcyBhbmQgYSBjb3VwbGUgb2YKKyAgICAgICAgY29udmVyc2lvbiBtZXRob2RzIHRvIHRo
ZSBJbnQgYW5kIEZsb2F0IHZlcnNpb25zIG9mIHNhbWUuCisKKyAgICAgICAgTm8gbmV3IHRlc3Rz
LgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogR05VbWFrZWZpbGUubGlz
dC5hbToKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2ViQ29yZS5vcmRlcjoK
KyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajoKKyAgICAgICAgKiBXZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvRmxvYXRQb2ludC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGbG9hdFBvaW50Ojptb3ZlKToK
KyAgICAgICAgQWRkIEZyYWN0aW9uYWxMYXlvdXRTaXplIHZlcnNpb24gb2YgbW92ZS4KKyAgICAg
ICAgCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRmxvYXRQb2ludC5oOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL0Zsb2F0U2l6ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGbG9h
dFNpemU6OkZsb2F0U2l6ZSk6CisgICAgICAgIEFkZCBGbG9hdFNpemUoRnJhY3Rpb25hbExheW91
dFNpemUpIGNvbnN0cnVjdG9yLgorICAgICAgICAKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9GbG9hdFNpemUuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9GcmFjdGlvbmFsTGF5
b3V0U2l6ZS5jcHA6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ZyYWN0aW9u
YWxMYXlvdXRTaXplLmg6IEFkZGVkLgorCiAyMDEyLTAyLTE1ICBTaGlueWEgS2F3YW5ha2EgIDxz
aGlueWFrQGNocm9taXVtLm9yZz4KIAogICAgICAgICBBZGQgYW4gaW50ZXJuYWwgZmxhZyB0byBh
Y2NlcHQgbXVsdGlwbGUgc2hhZG93IHJvb3RzIGZvciB0aGUgcHVycG9zZSBvZiB0ZXN0cy4KSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0Cj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL0NNYWtlTGlzdHMudHh0CShyZXZpc2lvbiAxMDgwMDYpCisrKyBTb3VyY2UvV2ViQ29y
ZS9DTWFrZUxpc3RzLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMTEwMCw2ICsxMTAwLDcgQEAgU0VU
KFdlYkNvcmVfU09VUkNFUwogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmNwcAog
ICAgIHBsYXRmb3JtL2dyYXBoaWNzL0NvbG9yLmNwcAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0Ny
b3NzZmFkZUdlbmVyYXRlZEltYWdlLmNwcAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL0ZyYWN0aW9u
YWxMYXlvdXRTaXplLmNwcAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0Zsb2F0UG9pbnQuY3BwCiAg
ICAgcGxhdGZvcm0vZ3JhcGhpY3MvRmxvYXRQb2ludDNELmNwcAogICAgIHBsYXRmb3JtL2dyYXBo
aWNzL0Zsb2F0UXVhZC5jcHAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3Qu
YW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQkocmV2
aXNpb24gMTA4MDA2KQorKysgU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQkod29y
a2luZyBjb3B5KQpAQCAtMjk2Myw2ICsyOTYzLDggQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL2FybS9GRUdhdXNzaWFuQmx1
ck5FT04uaCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9hcm0v
RkVMaWdodGluZ05FT04uY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9m
aWx0ZXJzL2FybS9GRUxpZ2h0aW5nTkVPTi5oIFwKKwlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9GcmFjdGlvbmFsTGF5b3V0U2l6ZS5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0ZyYWN0aW9uYWxMYXlvdXRTaXplLmggXAogCVNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0Zsb2F0UG9pbnQzRC5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0Zsb2F0UG9pbnQzRC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9GbG9hdFBvaW50LmNwcCBcCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5
cGkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCShyZXZpc2lvbiAx
MDgwMDYpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkJKHdvcmtpbmcgY29weSkKQEAg
LTMwMTMsNiArMzAxMyw3IEBACiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvQ3Jvc3Nm
YWRlR2VuZXJhdGVkSW1hZ2UuY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9D
cm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZS5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGlj
cy9FeHRlbnNpb25zM0QuaCcsCisgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvRnJhY3Rp
b25hbExheW91dFNpemUuY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9GbG9h
dFBvaW50LmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvRmxvYXRQb2ludDNE
LmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvRmxvYXRRdWFkLmNwcCcsCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLm9yZGVyCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUub3JkZXIJKHJldmlzaW9uIDEwODAwNikKKysrIFNvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUub3JkZXIJKHdvcmtpbmcgY29weSkKQEAgLTEwMzIwLDcgKzEwMzIwLDcgQEAgX19a
TjdXZWJDb3JlOUNTU1BhcnNlcjExcGFyc2VDYW52YXNFUk4zVwogX19aTks3V2ViQ29yZThDU1NW
YWx1ZTEyaXNJbWFnZVZhbHVlRXYKIF9fWk5LN1dlYkNvcmUyMkNTU0ltYWdlR2VuZXJhdG9yVmFs
dWUyMWlzSW1hZ2VHZW5lcmF0b3JWYWx1ZUV2CiBfX1pON1dlYkNvcmUyMkNTU0ltYWdlR2VuZXJh
dG9yVmFsdWUxNGdlbmVyYXRlZEltYWdlRXYKLV9fWk5LN1dlYkNvcmUxNENTU0NhbnZhc1ZhbHVl
MTFpc0ZpeGVkU2l6ZUV2CitfX1pOSzdXZWJDb3JlMTRDU1NDYW52YXNWYWx1ZTExaXNGcmFjdGlv
bmFsTGF5b3V0U2l6ZUV2CiBfX1pON1dlYkNvcmUxOVN0eWxlR2VuZXJhdGVkSW1hZ2U5YWRkQ2xp
ZW50RVBOU18xMlJlbmRlck9iamVjdEUKIF9fWk43V2ViQ29yZTIyQ1NTSW1hZ2VHZW5lcmF0b3JW
YWx1ZTlhZGRDbGllbnRFUE5TXzEyUmVuZGVyT2JqZWN0RVJLTlNfN0ludFNpemVFCiBfX1pON1dl
YkNvcmU0NmpzRG9jdW1lbnRQcm90b3R5cGVGdW5jdGlvbkdldENTU0NhbnZhc0NvbnRleHRFUE4z
SlNDOUV4ZWNTdGF0ZUUKQEAgLTEwNDU0LDcgKzEwNDU0LDcgQEAgX19aTjdXZWJDb3JlMTVDU1NS
ZWZsZWN0VmFsdWVEMEV2CiBfX1pON1dlYkNvcmU5Q1NTUGFyc2VyMTZwYXJzZUJvcmRlckltYWdl
RWliUk4zV1RGNlJlZlB0cklOU184Q1NTVmFsdWVFRUUKIF9fWk43V2ViQ29yZTIzQm9yZGVySW1h
Z2VQYXJzZUNvbnRleHQxN2NvbW1pdEJvcmRlckltYWdlRVBOU185Q1NTUGFyc2VyRWIKIF9fWk43
V2ViQ29yZTIzQm9yZGVySW1hZ2VQYXJzZUNvbnRleHREMUV2Ci1fX1pOSzdXZWJDb3JlMjJDU1NJ
bWFnZUdlbmVyYXRvclZhbHVlMTFpc0ZpeGVkU2l6ZUV2CitfX1pOSzdXZWJDb3JlMjJDU1NJbWFn
ZUdlbmVyYXRvclZhbHVlMTFpc0ZyYWN0aW9uYWxMYXlvdXRTaXplRXYKIF9fWk43V2ViQ29yZTE2
Q1NTR3JhZGllbnRWYWx1ZTVpbWFnZUVQTlNfMTJSZW5kZXJPYmplY3RFUktOU183SW50U2l6ZUUK
IF9fWk5LM1dURjlIYXNoVGFibGVJUE43V2ViQ29yZTEyUmVuZGVyT2JqZWN0RVN0NHBhaXJJUzNf
UzRfSU5TMV83SW50U2l6ZUVpRUVOU18xOFBhaXJGaXJzdEV4dHJhY3RvcklTN19FRU5TXzdQdHJI
YXNoSVMzX0VFTlNfMTRQYWlySGFzaFRyYWl0c0lOU18xMEhhc2hUcmFpdHNJUzNfRUVOU0RfSVM2
X0VFRUVTRV9FOGNvbnRhaW5zSVMzX05TXzIySWRlbnRpdHlIYXNoVHJhbnNsYXRvcklTM19TN19T
Ql9FRUVFYlJLVF8KIF9fWk43V2ViQ29yZTIyQ1NTSW1hZ2VHZW5lcmF0b3JWYWx1ZThnZXRJbWFn
ZUVQTlNfMTJSZW5kZXJPYmplY3RFUktOU183SW50U2l6ZUUKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCShyZXZpc2lvbiAxMDgwMDYpCisrKyBT
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagkod29ya2luZyBjb3B5
KQpAQCAtMjc1MjUsNiArMjc1MjUsMTQgQEAKIAkJCQkJPgogCQkJCTwvRmlsZT4KIAkJCQk8Rmls
ZQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBsYXRmb3JtXGdyYXBoaWNzXEZyYWN0aW9uYWxMYXlv
dXRTaXplLmNwcCIKKwkJCQkJPgorCQkJCTwvRmlsZT4KKwkJCQk8RmlsZQorCQkJCQlSZWxhdGl2
ZVBhdGg9Ii4uXHBsYXRmb3JtXGdyYXBoaWNzXEZyYWN0aW9uYWxMYXlvdXRTaXplLmgiCisJCQkJ
CT4KKwkJCQk8L0ZpbGU+CisJCQkJPEZpbGUKIAkJCQkJUmVsYXRpdmVQYXRoPSIuLlxwbGF0Zm9y
bVxncmFwaGljc1xGbG9hdFBvaW50LmNwcCIKIAkJCQkJPgogCQkJCTwvRmlsZT4KSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJl
dmlzaW9uIDEwODAwNikKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMjk3LDYgKzI5Nyw5IEBACiAJCTE0MzJFODQ5
MEM1MTQ5M0YwMEIxNTAwRiAvKiBHQ0NvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTQzMkU4NDgwQzUxNDkzRjAwQjE1MDBGIC8qIEdD
Q29udHJvbGxlci5jcHAgKi87IH07CiAJCTE0NDlFMjRDMTA3RDRBODQwMEI1NzkzRiAvKiBKU0Nh
bGxiYWNrRGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMTQ0OUUyNEExMDdENEE4NDAwQjU3OTNGIC8qIEpTQ2FsbGJhY2tEYXRhLmggKi87IH07CiAJ
CTE0NDlFMjg3MTA3RDREQjQwMEI1NzkzRiAvKiBKU0NhbGxiYWNrRGF0YS5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNDQ5RTI4NjEwN0Q0REI0MDBC
NTc5M0YgLyogSlNDYWxsYmFja0RhdGEuY3BwICovOyB9OworCQkxNDRGQ0U1MjE0RUM3OUJDMDAw
RDE3QTMgLyogRnJhY3Rpb25hbExheW91dFVuaXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE0NEZDRTUxMTRFQzc5QkMwMDBEMTdBMyAvKiBGcmFjdGlv
bmFsTGF5b3V0VW5pdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CisJCTE0NEZDRTVDMTRFQzc5RTcwMDBEMTdBMyAvKiBGcmFjdGlvbmFsTGF5b3V0U2l6
ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNDRG
Q0U1NzE0RUM3OUU3MDAwRDE3QTMgLyogRnJhY3Rpb25hbExheW91dFNpemUuY3BwICovOyB9Owor
CQkxNDRGQ0U1RDE0RUM3OUU3MDAwRDE3QTMgLyogRnJhY3Rpb25hbExheW91dFNpemUuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE0NEZDRTU4MTRFQzc5
RTcwMDBEMTdBMyAvKiBGcmFjdGlvbmFsTGF5b3V0U2l6ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTE0NjRFMDZDMTM1RUMxMDYwMEZEQjAwQSAv
KiBKU01lZGlhTGlzdEN1c3RvbS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAxNDY0RTA2QjEzNUVDMTA2MDBGREIwMEEgLyogSlNNZWRpYUxpc3RDdXN0
b20uY3BwICovOyB9OwogCQkxNDc3RTc3NjBCRjQxMzRBMDAxNTI4NzIgLyogUGFnZUNhY2hlLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE0NzdFNzc0
MEJGNDEzNEEwMDE1Mjg3MiAvKiBQYWdlQ2FjaGUuY3BwICovOyB9OwogCQkxNDc3RTc3NzBCRjQx
MzRBMDAxNTI4NzIgLyogUGFnZUNhY2hlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAxNDc3RTc3NTBCRjQxMzRBMDAxNTI4NzIgLyogUGFnZUNhY2hlLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTQ5OTQs
NyArNDk5Nyw2IEBACiAJCUI4REJEQjRDMTMwQjBGOEEwMEY1Q0RCMSAvKiBTZXRTZWxlY3Rpb25D
b21tYW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBC
OERCREI0ODEzMEIwRjhBMDBGNUNEQjEgLyogU2V0U2VsZWN0aW9uQ29tbWFuZC5oICovOyB9Owog
CQlCOERCREI0RDEzMEIwRjhBMDBGNUNEQjEgLyogU3BlbGxpbmdDb3JyZWN0aW9uQ29tbWFuZC5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCOERCREI0
OTEzMEIwRjhBMDBGNUNEQjEgLyogU3BlbGxpbmdDb3JyZWN0aW9uQ29tbWFuZC5jcHAgKi87IH07
CiAJCUI4REJEQjRFMTMwQjBGOEEwMEY1Q0RCMSAvKiBTcGVsbGluZ0NvcnJlY3Rpb25Db21tYW5k
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCOERCREI0
QTEzMEIwRjhBMDBGNUNEQjEgLyogU3BlbGxpbmdDb3JyZWN0aW9uQ29tbWFuZC5oICovOyB9Owot
CQlCQUIyMkFENDE0QjdBMDJEMDBEOEFCQTYgLyogRnJhY3Rpb25hbExheW91dFVuaXQuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJBQjc3MTUwMTQ0NENC
QjQwMEVDNEM0QyAvKiBGcmFjdGlvbmFsTGF5b3V0VW5pdC5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUJBQ0YyOTAxMTNCMkEwRDUwMDc4MUY5MCAv
KiBMYXlvdXRUeXBlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQkFDRjI5MDAxM0IyQTBENTAwNzgxRjkwIC8qIExheW91dFR5cGVzLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQkMwMEYwMDQwRTBBMTg1
NTAwRkQwNEUzIC8qIERPTUZpbGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEJDMDBFRkZFMEUwQTE4NTUwMEZEMDRFMyAvKiBET01GaWxlLmggKi87IH07
CiAJCUJDMDBGMDA1MEUwQTE4NTUwMEZEMDRFMyAvKiBET01GaWxlLm1tIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMwMEVGRkYwRTBBMTg1NTAwRkQwNEUz
IC8qIERPTUZpbGUubW0gKi87IH07CkBAIC03MDIwLDYgKzcwMjIsOSBAQAogCQkxNDMyRTg0ODBD
NTE0OTNGMDBCMTUwMEYgLyogR0NDb250cm9sbGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBHQ0NvbnRyb2xsZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkxNDQ5RTI0QTEwN0Q0QTg0MDBCNTc5M0YgLyogSlNDYWxsYmFja0RhdGEuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNDYWxsYmFja0RhdGEuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMTQ0OUUyODYxMDdENERCNDAwQjU3OTNGIC8qIEpTQ2FsbGJh
Y2tEYXRhLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTQ2FsbGJh
Y2tEYXRhLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMTQ0RkNFNTExNEVDNzlC
QzAwMEQxN0EzIC8qIEZyYWN0aW9uYWxMYXlvdXRVbml0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEZyYWN0aW9uYWxMYXlvdXRVbml0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTE0NEZDRTU3MTRFQzc5RTcwMDBEMTdBMyAvKiBGcmFjdGlvbmFsTGF5b3V0U2l6
ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBGcmFjdGlvbmFsTGF5
b3V0U2l6ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTE0NEZDRTU4MTRFQzc5
RTcwMDBEMTdBMyAvKiBGcmFjdGlvbmFsTGF5b3V0U2l6ZS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBGcmFjdGlvbmFsTGF5b3V0U2l6ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkxNDY0RTA2QjEzNUVDMTA2MDBGREIwMEEgLyogSlNNZWRpYUxpc3RDdXN0b20u
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNNZWRpYUxpc3RDdXN0
b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxNDc3RTc3NDBCRjQxMzRBMDAx
NTI4NzIgLyogUGFnZUNhY2hlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBQYWdlQ2FjaGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxNDc3RTc3
NTBCRjQxMzRBMDAxNTI4NzIgLyogUGFnZUNhY2hlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBQYWdlQ2FjaGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEx
OTEzLDcgKzExOTE4LDYgQEAKIAkJQjhEQkRCNDgxMzBCMEY4QTAwRjVDREIxIC8qIFNldFNlbGVj
dGlvbkNvbW1hbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2V0U2VsZWN0
aW9uQ29tbWFuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCOERCREI0OTEzMEIw
RjhBMDBGNUNEQjEgLyogU3BlbGxpbmdDb3JyZWN0aW9uQ29tbWFuZC5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTcGVsbGluZ0NvcnJlY3Rpb25Db21tYW5kLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQjhEQkRCNEExMzBCMEY4QTAwRjVDREIxIC8q
IFNwZWxsaW5nQ29ycmVjdGlvbkNvbW1hbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gU3BlbGxpbmdDb3JyZWN0aW9uQ29tbWFuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwotCQlCQUI3NzE1MDE0NDRDQkI0MDBFQzRDNEMgLyogRnJhY3Rpb25hbExheW91dFVuaXQu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRnJhY3Rpb25hbExheW91dFVuaXQu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkFDRjI5MDAxM0IyQTBENTAwNzgxRjkw
IC8qIExheW91dFR5cGVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExheW91
dFR5cGVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDMDBFRkZFMEUwQTE4NTUw
MEZEMDRFMyAvKiBET01GaWxlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERP
TUZpbGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkMwMEVGRkYwRTBBMTg1NTAw
RkQwNEUzIC8qIERPTUZpbGUubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBh
dGggPSBET01GaWxlLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTg5MjQsNiAr
MTg5MjgsOCBAQAogCQkJCTM3MjAyMTk4MTA2MjEzQzYwMEYyNUM0QiAvKiBGb250U21vb3RoaW5n
TW9kZS5oICovLAogCQkJCTM3ODRDMzRBMEUxMUFBMzQwMDdEOEQ0OCAvKiBGb250VHJhaXRzTWFz
ay5oICovLAogCQkJCUJDRTQ0MTM1MTJGNzQ5MEIwMDlCODRCOCAvKiBGb250V2lkdGhWYXJpYW50
LmggKi8sCisJCQkJMTQ0RkNFNTcxNEVDNzlFNzAwMEQxN0EzIC8qIEZyYWN0aW9uYWxMYXlvdXRT
aXplLmNwcCAqLywKKwkJCQkxNDRGQ0U1ODE0RUM3OUU3MDAwRDE3QTMgLyogRnJhY3Rpb25hbExh
eW91dFNpemUuaCAqLywKIAkJCQlCQzIzRjBEQTBEQUZGNEE0MDA5RkRDOTEgLyogR2VuZXJhdGVk
SW1hZ2UuaCAqLywKIAkJCQlCQ0UwNEM4OTBEQUZGN0EwMDA3QTBGNDEgLyogR2VuZXJhdG9yLmgg
Ki8sCiAJCQkJMkQyRkMwNTYxNDYwQ0Q2RjAwMjYzNjMzIC8qIEdlbmVyYXRvckdlbmVyYXRlZElt
YWdlLmNwcCAqLywKQEAgLTE5Nzk5LDcgKzE5ODA1LDcgQEAKIAkJCQlDNTdGRURFMDEyMTJFRTlD
MDA5N0JFNjUgLyogRmlsZVN5c3RlbS5jcHAgKi8sCiAJCQkJNTE0QjNGNzIwQzcyMjA0NzAwMDUz
MERGIC8qIEZpbGVTeXN0ZW0uaCAqLywKIAkJCQlCQzA3M0JBOTBDMzk5QjFGMDAwRjU5NzkgLyog
RmxvYXRDb252ZXJzaW9uLmggKi8sCi0JCQkJQkFCNzcxNTAxNDQ0Q0JCNDAwRUM0QzRDIC8qIEZy
YWN0aW9uYWxMYXlvdXRVbml0LmggKi8sCisJCQkJMTQ0RkNFNTExNEVDNzlCQzAwMEQxN0EzIC8q
IEZyYWN0aW9uYWxMYXlvdXRVbml0LmggKi8sCiAJCQkJQTg3NDhCREYxMkNCRjJEQzAwMUZCQTQx
IC8qIEhhc2hUb29scy5oICovLAogCQkJCUQ2RkRBRUYyMTQ5QzA2MTkwMDM3QjFFMSAvKiBIaXN0
b2dyYW1TdXBwb3J0LmNwcCAqLywKIAkJCQlENjMwRTJBQjE0OUJGMzQ0MDA1QjJGOTMgLyogSGlz
dG9ncmFtU3VwcG9ydC5oICovLApAQCAtMjQyNzksNiArMjQyODUsOCBAQAogCQkJCUI2RDlEMjdC
MTRFQUMwODYwMDkwRDc1RSAvKiBKU0ZvY3VzRXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUM1
OTg5MDU3MTRFOUMyODAwMEU4RDE4QiAvKiBQYXN0ZWJvYXJkU3RyYXRlZ3kuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUM1OTg5MDU4MTRFOUMyOTkwMEU4RDE4QiAvKiBQbGF0Zm9ybVBhc3RlYm9hcmQu
aCBpbiBIZWFkZXJzICovLAorCQkJCTE0NEZDRTUyMTRFQzc5QkMwMDBEMTdBMyAvKiBGcmFjdGlv
bmFsTGF5b3V0VW5pdC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMTQ0RkNFNUQxNEVDNzlFNzAwMEQx
N0EzIC8qIEZyYWN0aW9uYWxMYXlvdXRTaXplLmggaW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQly
dW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAgLTI3MjI0LDYg
KzI3MjMyLDcgQEAKIAkJCQlCNkQ5RDIzNjE0RUFCRDI2MDA5MEQ3NUUgLyogRm9jdXNFdmVudC5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlCNkQ5RDI3QzE0RUFDMDg2MDA5MEQ3NUUgLyogSlNGb2N1
c0V2ZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUM1OTg5MDJFMTRFOUIwRjgwMEU4RDE4QiAv
KiBQbGF0Zm9ybVBhc3RlYm9hcmRNYWMubW0gaW4gU291cmNlcyAqLywKKwkJCQkxNDRGQ0U1QzE0
RUM3OUU3MDAwRDE3QTMgLyogRnJhY3Rpb25hbExheW91dFNpemUuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9GbG9hdFBvaW50LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9GbG9hdFBvaW50
LmNwcAkocmV2aXNpb24gMTA4MDA2KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvRmxvYXRQb2ludC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4LDkgKzI4LDEwIEBACiAjaW5j
bHVkZSAiRmxvYXRQb2ludC5oIgogCiAjaW5jbHVkZSAiQWZmaW5lVHJhbnNmb3JtLmgiCi0jaW5j
bHVkZSAiVHJhbnNmb3JtYXRpb25NYXRyaXguaCIKICNpbmNsdWRlICJGbG9hdENvbnZlcnNpb24u
aCIKKyNpbmNsdWRlICJGcmFjdGlvbmFsTGF5b3V0U2l6ZS5oIgogI2luY2x1ZGUgIkludFBvaW50
LmgiCisjaW5jbHVkZSAiVHJhbnNmb3JtYXRpb25NYXRyaXguaCIKICNpbmNsdWRlIDxsaW1pdHM+
CiAjaW5jbHVkZSA8bWF0aC5oPgogCkBAIC01NSw2ICs1NiwxMiBAQCBmbG9hdCBGbG9hdFBvaW50
OjpsZW5ndGgoKSBjb25zdAogICAgIHJldHVybiBzcXJ0ZihsZW5ndGhTcXVhcmVkKCkpOwogfQog
Cit2b2lkIEZsb2F0UG9pbnQ6Om1vdmUoY29uc3QgRnJhY3Rpb25hbExheW91dFNpemUmIHNpemUp
Cit7CisgICAgbV94ICs9IHNpemUud2lkdGgoKTsKKyAgICBtX3kgKz0gc2l6ZS5oZWlnaHQoKTsK
K30KKwogRmxvYXRQb2ludCBGbG9hdFBvaW50OjptYXRyaXhUcmFuc2Zvcm0oY29uc3QgQWZmaW5l
VHJhbnNmb3JtJiB0cmFuc2Zvcm0pIGNvbnN0CiB7CiAgICAgZG91YmxlIG5ld1gsIG5ld1k7Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9GbG9hdFBvaW50LmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRmxvYXRQb2ludC5oCShy
ZXZpc2lvbiAxMDgwMDYpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9GbG9h
dFBvaW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTYwLDYgKzYwLDcgQEAgY2xhc3MgQWZmaW5lVHJh
bnNmb3JtOwogY2xhc3MgVHJhbnNmb3JtYXRpb25NYXRyaXg7CiBjbGFzcyBJbnRQb2ludDsKIGNs
YXNzIEludFNpemU7CitjbGFzcyBGcmFjdGlvbmFsTGF5b3V0U2l6ZTsKIAogY2xhc3MgRmxvYXRQ
b2ludCB7CiBwdWJsaWM6CkBAIC05Miw2ICs5Myw3IEBAIHB1YmxpYzoKICAgICAgICAgbV94ICs9
IGEud2lkdGgoKTsKICAgICAgICAgbV95ICs9IGEuaGVpZ2h0KCk7CiAgICAgfQorICAgIHZvaWQg
bW92ZShjb25zdCBGcmFjdGlvbmFsTGF5b3V0U2l6ZSYpOwogICAgIHZvaWQgbW92ZShjb25zdCBG
bG9hdFNpemUmIGEpCiAgICAgewogICAgICAgICBtX3ggKz0gYS53aWR0aCgpOwpJbmRleDogU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRmxvYXRTaXplLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9GbG9hdFNpemUuY3BwCShyZXZpc2lv
biAxMDgwMDYpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9GbG9hdFNpemUu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgi
CiAjaW5jbHVkZSAiRmxvYXRTaXplLmgiCiAKKyNpbmNsdWRlICJGcmFjdGlvbmFsTGF5b3V0U2l6
ZS5oIgogI2luY2x1ZGUgIkZsb2F0Q29udmVyc2lvbi5oIgogI2luY2x1ZGUgIkludFNpemUuaCIK
ICNpbmNsdWRlIDxsaW1pdHM+CkBAIC00MCw2ICs0MSwxMCBAQCBGbG9hdFNpemU6OkZsb2F0U2l6
ZShjb25zdCBJbnRTaXplJiBzaXplCiB7CiB9CiAKK0Zsb2F0U2l6ZTo6RmxvYXRTaXplKGNvbnN0
IEZyYWN0aW9uYWxMYXlvdXRTaXplJiBzaXplKSA6IG1fd2lkdGgoc2l6ZS53aWR0aCgpKSwgbV9o
ZWlnaHQoc2l6ZS5oZWlnaHQoKSkKK3sKK30KKwogZmxvYXQgRmxvYXRTaXplOjpkaWFnb25hbExl
bmd0aCgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIHNxcnRmKGRpYWdvbmFsTGVuZ3RoU3F1YXJlZCgp
KTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Zsb2F0U2l6ZS5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Zsb2F0U2l6ZS5o
CShyZXZpc2lvbiAxMDgwMDYpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9G
bG9hdFNpemUuaAkod29ya2luZyBjb3B5KQpAQCAtNDYsMTIgKzQ2LDE0IEBAIHR5cGVkZWYgc3Ry
dWN0IF9OU1NpemUgTlNTaXplOwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBJbnRTaXpl
OworY2xhc3MgRnJhY3Rpb25hbExheW91dFNpemU7CiAKIGNsYXNzIEZsb2F0U2l6ZSB7CiBwdWJs
aWM6CiAgICAgRmxvYXRTaXplKCkgOiBtX3dpZHRoKDApLCBtX2hlaWdodCgwKSB7IH0KICAgICBG
bG9hdFNpemUoZmxvYXQgd2lkdGgsIGZsb2F0IGhlaWdodCkgOiBtX3dpZHRoKHdpZHRoKSwgbV9o
ZWlnaHQoaGVpZ2h0KSB7IH0KICAgICBGbG9hdFNpemUoY29uc3QgSW50U2l6ZSYpOworICAgIEZs
b2F0U2l6ZShjb25zdCBGcmFjdGlvbmFsTGF5b3V0U2l6ZSYpOwogCiAgICAgc3RhdGljIEZsb2F0
U2l6ZSBuYXJyb3dQcmVjaXNpb24oZG91YmxlIHdpZHRoLCBkb3VibGUgaGVpZ2h0KTsKIApJbmRl
eDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRnJhY3Rpb25hbExheW91dFNpemUu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZyYWN0
aW9uYWxMYXlvdXRTaXplLmNwcAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0ZyYWN0aW9uYWxMYXlvdXRTaXplLmNwcAkocmV2aXNpb24gMCkKQEAgLTAs
MCArMSw0MyBAQAorLyoKKyAqIENvcHlyaWdodCAoYykgMjAxMiwgR29vZ2xlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1l
dDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
cgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBv
ZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBi
ZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRo
aXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMg
QU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJU
SUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZ
UklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRnJhY3Rpb25hbExheW91
dFNpemUuaCIKKworI2luY2x1ZGUgIkludFBvaW50LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworSW50U2l6ZSBwaXhlbFNuYXBwZWRJbnRTaXplKGNvbnN0IEZyYWN0aW9uYWxMYXlvdXRTaXpl
JiBzLCBjb25zdCBJbnRQb2ludCYgcCkKK3sKKyAgICByZXR1cm4gSW50U2l6ZShzbmFwU2l6ZVRv
UGl4ZWwocy53aWR0aCgpLCBwLngoKSksIHNuYXBTaXplVG9QaXhlbChzLmhlaWdodCgpLCBwLnko
KSkpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9GcmFjdGlvbmFsTGF5b3V0U2l6ZS5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZyYWN0aW9uYWxMYXlvdXRTaXplLmgJKHJl
dmlzaW9uIDApCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9GcmFjdGlvbmFs
TGF5b3V0U2l6ZS5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE1MyBAQAorLyoKKyAqIENvcHly
aWdodCAoYykgMjAxMiwgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0
aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5h
bWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJv
bW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVj
aWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFT
IElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAor
ICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIEZyYWN0
aW9uYWxMYXlvdXRTaXplX2gKKyNkZWZpbmUgRnJhY3Rpb25hbExheW91dFNpemVfaAorCisjaW5j
bHVkZSAiRmxvYXRTaXplLmgiCisjaW5jbHVkZSAiRnJhY3Rpb25hbExheW91dFVuaXQuaCIKKyNp
bmNsdWRlICJJbnRTaXplLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRnJhY3Rp
b25hbExheW91dFBvaW50OworCitjbGFzcyBGcmFjdGlvbmFsTGF5b3V0U2l6ZSB7CitwdWJsaWM6
CisgICAgRnJhY3Rpb25hbExheW91dFNpemUoKSA6IG1fd2lkdGgoMCksIG1faGVpZ2h0KDApIHsg
fQorICAgIEZyYWN0aW9uYWxMYXlvdXRTaXplKGNvbnN0IEludFNpemUmIHNpemUpIDogbV93aWR0
aChzaXplLndpZHRoKCkpLCBtX2hlaWdodChzaXplLmhlaWdodCgpKSB7IH0KKyAgICBGcmFjdGlv
bmFsTGF5b3V0U2l6ZShGcmFjdGlvbmFsTGF5b3V0VW5pdCB3aWR0aCwgRnJhY3Rpb25hbExheW91
dFVuaXQgaGVpZ2h0KSA6IG1fd2lkdGgod2lkdGgpLCBtX2hlaWdodChoZWlnaHQpIHsgfQorCisg
ICAgZXhwbGljaXQgRnJhY3Rpb25hbExheW91dFNpemUoY29uc3QgRmxvYXRTaXplJiBzaXplKSA6
IG1fd2lkdGgoc2l6ZS53aWR0aCgpKSwgbV9oZWlnaHQoc2l6ZS5oZWlnaHQoKSkgeyB9CisgICAg
CisgICAgRnJhY3Rpb25hbExheW91dFVuaXQgd2lkdGgoKSBjb25zdCB7IHJldHVybiBtX3dpZHRo
OyB9CisgICAgRnJhY3Rpb25hbExheW91dFVuaXQgaGVpZ2h0KCkgY29uc3QgeyByZXR1cm4gbV9o
ZWlnaHQ7IH0KKworICAgIHZvaWQgc2V0V2lkdGgoRnJhY3Rpb25hbExheW91dFVuaXQgd2lkdGgp
IHsgbV93aWR0aCA9IHdpZHRoOyB9CisgICAgdm9pZCBzZXRIZWlnaHQoRnJhY3Rpb25hbExheW91
dFVuaXQgaGVpZ2h0KSB7IG1faGVpZ2h0ID0gaGVpZ2h0OyB9CisKKyAgICBib29sIGlzRW1wdHko
KSBjb25zdCB7IHJldHVybiBtX3dpZHRoIDw9IDAgfHwgbV9oZWlnaHQgPD0gMDsgfQorICAgIGJv
b2wgaXNaZXJvKCkgY29uc3QgeyByZXR1cm4gIW1fd2lkdGggJiYgIW1faGVpZ2h0OyB9CisKKyAg
ICBmbG9hdCBhc3BlY3RSYXRpbygpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PGZsb2F0Piht
X3dpZHRoKSAvIHN0YXRpY19jYXN0PGZsb2F0PihtX2hlaWdodCk7IH0KKyAgICAKKyAgICB2b2lk
IGV4cGFuZChGcmFjdGlvbmFsTGF5b3V0VW5pdCB3aWR0aCwgRnJhY3Rpb25hbExheW91dFVuaXQg
aGVpZ2h0KQorICAgIHsKKyAgICAgICAgbV93aWR0aCArPSB3aWR0aDsKKyAgICAgICAgbV9oZWln
aHQgKz0gaGVpZ2h0OworICAgIH0KKyAgICAKKyAgICB2b2lkIHNjYWxlKGZsb2F0IHNjYWxlKQor
ICAgIHsKKyAgICAgICAgbV93aWR0aCA9IHN0YXRpY19jYXN0PGludD4oc3RhdGljX2Nhc3Q8Zmxv
YXQ+KG1fd2lkdGgpICogc2NhbGUpOworICAgICAgICBtX2hlaWdodCA9IHN0YXRpY19jYXN0PGlu
dD4oc3RhdGljX2Nhc3Q8ZmxvYXQ+KG1faGVpZ2h0KSAqIHNjYWxlKTsKKyAgICB9CisgICAgCisg
ICAgRnJhY3Rpb25hbExheW91dFNpemUgZXhwYW5kZWRUbyhjb25zdCBGcmFjdGlvbmFsTGF5b3V0
U2l6ZSYgb3RoZXIpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gRnJhY3Rpb25hbExheW91
dFNpemUobV93aWR0aCA+IG90aGVyLm1fd2lkdGggPyBtX3dpZHRoIDogb3RoZXIubV93aWR0aCwK
KyAgICAgICAgICAgIG1faGVpZ2h0ID4gb3RoZXIubV9oZWlnaHQgPyBtX2hlaWdodCA6IG90aGVy
Lm1faGVpZ2h0KTsKKyAgICB9CisKKyAgICBGcmFjdGlvbmFsTGF5b3V0U2l6ZSBzaHJ1bmtUbyhj
b25zdCBGcmFjdGlvbmFsTGF5b3V0U2l6ZSYgb3RoZXIpIGNvbnN0CisgICAgeworICAgICAgICBy
ZXR1cm4gRnJhY3Rpb25hbExheW91dFNpemUobV93aWR0aCA8IG90aGVyLm1fd2lkdGggPyBtX3dp
ZHRoIDogb3RoZXIubV93aWR0aCwKKyAgICAgICAgICAgIG1faGVpZ2h0IDwgb3RoZXIubV9oZWln
aHQgPyBtX2hlaWdodCA6IG90aGVyLm1faGVpZ2h0KTsKKyAgICB9CisKKyAgICB2b2lkIGNsYW1w
TmVnYXRpdmVUb1plcm8oKQorICAgIHsKKyAgICAgICAgKnRoaXMgPSBleHBhbmRlZFRvKEZyYWN0
aW9uYWxMYXlvdXRTaXplKCkpOworICAgIH0KKworICAgIEZyYWN0aW9uYWxMYXlvdXRTaXplIHRy
YW5zcG9zZWRTaXplKCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBGcmFjdGlvbmFsTGF5
b3V0U2l6ZShtX2hlaWdodCwgbV93aWR0aCk7CisgICAgfQorCitwcml2YXRlOgorICAgIEZyYWN0
aW9uYWxMYXlvdXRVbml0IG1fd2lkdGgsIG1faGVpZ2h0OworfTsKKworaW5saW5lIEZyYWN0aW9u
YWxMYXlvdXRTaXplJiBvcGVyYXRvcis9KEZyYWN0aW9uYWxMYXlvdXRTaXplJiBhLCBjb25zdCBG
cmFjdGlvbmFsTGF5b3V0U2l6ZSYgYikKK3sKKyAgICBhLnNldFdpZHRoKGEud2lkdGgoKSArIGIu
d2lkdGgoKSk7CisgICAgYS5zZXRIZWlnaHQoYS5oZWlnaHQoKSArIGIuaGVpZ2h0KCkpOworICAg
IHJldHVybiBhOworfQorCitpbmxpbmUgRnJhY3Rpb25hbExheW91dFNpemUmIG9wZXJhdG9yLT0o
RnJhY3Rpb25hbExheW91dFNpemUmIGEsIGNvbnN0IEZyYWN0aW9uYWxMYXlvdXRTaXplJiBiKQor
eworICAgIGEuc2V0V2lkdGgoYS53aWR0aCgpIC0gYi53aWR0aCgpKTsKKyAgICBhLnNldEhlaWdo
dChhLmhlaWdodCgpIC0gYi5oZWlnaHQoKSk7CisgICAgcmV0dXJuIGE7Cit9CisKK2lubGluZSBG
cmFjdGlvbmFsTGF5b3V0U2l6ZSBvcGVyYXRvcisoY29uc3QgRnJhY3Rpb25hbExheW91dFNpemUm
IGEsIGNvbnN0IEZyYWN0aW9uYWxMYXlvdXRTaXplJiBiKQoreworICAgIHJldHVybiBGcmFjdGlv
bmFsTGF5b3V0U2l6ZShhLndpZHRoKCkgKyBiLndpZHRoKCksIGEuaGVpZ2h0KCkgKyBiLmhlaWdo
dCgpKTsKK30KKworaW5saW5lIEZyYWN0aW9uYWxMYXlvdXRTaXplIG9wZXJhdG9yLShjb25zdCBG
cmFjdGlvbmFsTGF5b3V0U2l6ZSYgYSwgY29uc3QgRnJhY3Rpb25hbExheW91dFNpemUmIGIpCit7
CisgICAgcmV0dXJuIEZyYWN0aW9uYWxMYXlvdXRTaXplKGEud2lkdGgoKSAtIGIud2lkdGgoKSwg
YS5oZWlnaHQoKSAtIGIuaGVpZ2h0KCkpOworfQorCitpbmxpbmUgRnJhY3Rpb25hbExheW91dFNp
emUgb3BlcmF0b3ItKGNvbnN0IEZyYWN0aW9uYWxMYXlvdXRTaXplJiBzaXplKQoreworICAgIHJl
dHVybiBGcmFjdGlvbmFsTGF5b3V0U2l6ZSgtc2l6ZS53aWR0aCgpLCAtc2l6ZS5oZWlnaHQoKSk7
Cit9CisKK2lubGluZSBib29sIG9wZXJhdG9yPT0oY29uc3QgRnJhY3Rpb25hbExheW91dFNpemUm
IGEsIGNvbnN0IEZyYWN0aW9uYWxMYXlvdXRTaXplJiBiKQoreworICAgIHJldHVybiBhLndpZHRo
KCkgPT0gYi53aWR0aCgpICYmIGEuaGVpZ2h0KCkgPT0gYi5oZWlnaHQoKTsKK30KKworaW5saW5l
IGJvb2wgb3BlcmF0b3IhPShjb25zdCBGcmFjdGlvbmFsTGF5b3V0U2l6ZSYgYSwgY29uc3QgRnJh
Y3Rpb25hbExheW91dFNpemUmIGIpCit7CisgICAgcmV0dXJuIGEud2lkdGgoKSAhPSBiLndpZHRo
KCkgfHwgYS5oZWlnaHQoKSAhPSBiLmhlaWdodCgpOworfQorCitpbmxpbmUgSW50U2l6ZSBmbG9v
cmVkSW50U2l6ZShjb25zdCBGcmFjdGlvbmFsTGF5b3V0U2l6ZSYgcykKK3sKKyAgICByZXR1cm4g
SW50U2l6ZShzLndpZHRoKCkudG9JbnQoKSwgcy5oZWlnaHQoKS50b0ludCgpKTsKK30KKworaW5s
aW5lIEludFNpemUgcm91bmRlZEludFNpemUoY29uc3QgRnJhY3Rpb25hbExheW91dFNpemUmIHMp
Cit7CisgICAgcmV0dXJuIEludFNpemUocy53aWR0aCgpLnJvdW5kKCksIHMuaGVpZ2h0KCkucm91
bmQoKSk7Cit9CisKKy8vIEZJWE1FOiBDaGFuZ2UgdGhpcyBtZXRob2QgdG8gdGFrZSBhIEZyYWN0
aW9uYWxMYXlvdXRQb2ludCBvbmNlIHRoYXQgY2xhc3MgaGFzIGJlZW4gYWRkZWQuCitJbnRTaXpl
IHBpeGVsU25hcHBlZEludFNpemUoY29uc3QgRnJhY3Rpb25hbExheW91dFNpemUmLCBjb25zdCBJ
bnRQb2ludCYpOworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBGcmFjdGlv
bmFsTGF5b3V0U2l6ZV9oCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>127617</attachid>
            <date>2012-02-17 11:25:20 -0800</date>
            <delta_ts>2012-02-17 12:52:44 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>foo2.patch</filename>
            <type>text/plain</type>
            <size>23315</size>
            <attacher name="Emil A Eklund">eae</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cgICAgKHJldmlzaW9uIDEwODAwMykKKysrIFNvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyAgICAod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM0IEBACisyMDEyLTAyLTE2ICBF
bWlsIEEgRWtsdW5kICA8ZWFlQGNocm9taXVtLm9yZz4KKworICAgICAgICBBZGQgRnJhY3Rpb25h
bExheW91dFNpemUgZm9yIHN1Yi1waXhlbCBsYXlvdXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc4ODUyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIEZyYWN0aW9uYWxMYXlvdXRVbml0IHZlcnNpb24g
b2YgU2l6ZSBjbGFzcyBhbmQgYSBjb3VwbGUgb2YKKyAgICAgICAgY29udmVyc2lvbiBtZXRob2Rz
IHRvIHRoZSBJbnQgYW5kIEZsb2F0IHZlcnNpb25zIG9mIHNhbWUuCisKKyAgICAgICAgTm8gbmV3
IHRlc3RzLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogR05VbWFrZWZp
bGUubGlzdC5hbToKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2ViQ29yZS5v
cmRlcjoKKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajoKKyAgICAgICAg
KiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvRmxvYXRQb2ludC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGbG9hdFBvaW50Ojpt
b3ZlKToKKyAgICAgICAgQWRkIEZyYWN0aW9uYWxMYXlvdXRTaXplIHZlcnNpb24gb2YgbW92ZS4K
KyAgICAgICAgCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRmxvYXRQb2ludC5oOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0Zsb2F0U2l6ZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpGbG9hdFNpemU6OkZsb2F0U2l6ZSk6CisgICAgICAgIEFkZCBGbG9hdFNpemUoRnJhY3Rpb25h
bExheW91dFNpemUpIGNvbnN0cnVjdG9yLgorICAgICAgICAKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9GbG9hdFNpemUuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9GcmFjdGlv
bmFsTGF5b3V0U2l6ZS5jcHA6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0Zy
YWN0aW9uYWxMYXlvdXRTaXplLmg6IEFkZGVkLgorCiAyMDEyLTAyLTE1ICBTaGlueWEgS2F3YW5h
a2EgIDxzaGlueWFrQGNocm9taXVtLm9yZz4KIAogICAgICAgICBBZGQgYW4gaW50ZXJuYWwgZmxh
ZyB0byBhY2NlcHQgbXVsdGlwbGUgc2hhZG93IHJvb3RzIGZvciB0aGUgcHVycG9zZSBvZiB0ZXN0
cy4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0Cj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0ICAgKHJldmlzaW9uIDEwODAwNikKKysrIFNvdXJj
ZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0ICAgKHdvcmtpbmcgY29weSkKQEAgLTExMDAsNiArMTEw
MCw3IEBAIFNFVChXZWJDb3JlX1NPVVJDRVMKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJ
bWFnZS5jcHAKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9Db2xvci5jcHAKICAgICBwbGF0Zm9ybS9n
cmFwaGljcy9Dcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZS5jcHAKKyAgICBwbGF0Zm9ybS9ncmFwaGlj
cy9GcmFjdGlvbmFsTGF5b3V0U2l6ZS5jcHAKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9GbG9hdFBv
aW50LmNwcAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0Zsb2F0UG9pbnQzRC5jcHAKICAgICBwbGF0
Zm9ybS9ncmFwaGljcy9GbG9hdFF1YWQuY3BwCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9HTlVtYWtl
ZmlsZS5saXN0LmFtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxp
c3QuYW0gIChyZXZpc2lvbiAxMDgwMDYpCisrKyBTb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5s
aXN0LmFtICAod29ya2luZyBjb3B5KQpAQCAtMjk2Myw2ICsyOTYzLDggQEAgd2ViY29yZV9zb3Vy
Y2VzICs9IFwKICAgIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvYXJt
L0ZFR2F1c3NpYW5CbHVyTkVPTi5oIFwKICAgIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2ZpbHRlcnMvYXJtL0ZFTGlnaHRpbmdORU9OLmNwcCBcCiAgICBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL2FybS9GRUxpZ2h0aW5nTkVPTi5oIFwKKyAgIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZyYWN0aW9uYWxMYXlvdXRTaXplLmNwcCBcCisg
ICBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9GcmFjdGlvbmFsTGF5b3V0U2l6ZS5o
IFwKICAgIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Zsb2F0UG9pbnQzRC5jcHAg
XAogICAgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRmxvYXRQb2ludDNELmggXAog
ICAgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRmxvYXRQb2ludC5jcHAgXApJbmRl
eDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL1dlYkNvcmUuZ3lwaSAocmV2aXNpb24gMTA4MDA2KQorKysgU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS5neXBpICh3b3JraW5nIGNvcHkpCkBAIC0zMDEzLDYgKzMwMTMsNyBAQAogICAgICAgICAg
ICAgJ3BsYXRmb3JtL2dyYXBoaWNzL0Nyb3NzZmFkZUdlbmVyYXRlZEltYWdlLmNwcCcsCiAgICAg
ICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvQ3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2UuaCcsCiAg
ICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvRXh0ZW5zaW9uczNELmgnLAorICAgICAgICAg
ICAgJ3BsYXRmb3JtL2dyYXBoaWNzL0ZyYWN0aW9uYWxMYXlvdXRTaXplLmNwcCcsCiAgICAgICAg
ICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvRmxvYXRQb2ludC5jcHAnLAogICAgICAgICAgICAgJ3Bs
YXRmb3JtL2dyYXBoaWNzL0Zsb2F0UG9pbnQzRC5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3Jt
L2dyYXBoaWNzL0Zsb2F0UXVhZC5jcHAnLApJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS52
Y3Byb2ovV2ViQ29yZS52Y3Byb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogICAgKHJldmlzaW9uIDEwODAwNikKKysrIFNvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qICAgICh3b3JraW5nIGNvcHkpCkBA
IC0yNzUyNSw2ICsyNzUyNSwxNCBAQAogICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAg
ICAgIDwvRmlsZT4KICAgICAgICAgICAgICAgIDxGaWxlCisgICAgICAgICAgICAgICAgICAgUmVs
YXRpdmVQYXRoPSIuLlxwbGF0Zm9ybVxncmFwaGljc1xGcmFjdGlvbmFsTGF5b3V0U2l6ZS5jcHAi
CisgICAgICAgICAgICAgICAgICAgPgorICAgICAgICAgICAgICAgPC9GaWxlPgorICAgICAgICAg
ICAgICAgPEZpbGUKKyAgICAgICAgICAgICAgICAgICBSZWxhdGl2ZVBhdGg9Ii4uXHBsYXRmb3Jt
XGdyYXBoaWNzXEZyYWN0aW9uYWxMYXlvdXRTaXplLmgiCisgICAgICAgICAgICAgICAgICAgPgor
ICAgICAgICAgICAgICAgPC9GaWxlPgorICAgICAgICAgICAgICAgPEZpbGUKICAgICAgICAgICAg
ICAgICAgICBSZWxhdGl2ZVBhdGg9Ii4uXHBsYXRmb3JtXGdyYXBoaWNzXEZsb2F0UG9pbnQuY3Bw
IgogICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgIDwvRmlsZT4KSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogICAg
KHJldmlzaW9uIDEwODAwNikKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvaiAgICAod29ya2luZyBjb3B5KQpAQCAtMjk3LDYgKzI5Nyw5IEBACiAgICAg
ICAgMTQzMkU4NDkwQzUxNDkzRjAwQjE1MDBGIC8qIEdDQ29udHJvbGxlci5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNDMyRTg0ODBDNTE0OTNGMDBC
MTUwMEYgLyogR0NDb250cm9sbGVyLmNwcCAqLzsgfTsKICAgICAgICAxNDQ5RTI0QzEwN0Q0QTg0
MDBCNTc5M0YgLyogSlNDYWxsYmFja0RhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDE0NDlFMjRBMTA3RDRBODQwMEI1NzkzRiAvKiBKU0NhbGxiYWNr
RGF0YS5oICovOyB9OwogICAgICAgIDE0NDlFMjg3MTA3RDREQjQwMEI1NzkzRiAvKiBKU0NhbGxi
YWNrRGF0YS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAxNDQ5RTI4NjEwN0Q0REI0MDBCNTc5M0YgLyogSlNDYWxsYmFja0RhdGEuY3BwICovOyB9Owor
ICAgICAgIDE0NEZDRTUyMTRFQzc5QkMwMDBEMTdBMyAvKiBGcmFjdGlvbmFsTGF5b3V0VW5pdC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTQ0RkNFNTEx
NEVDNzlCQzAwMEQxN0EzIC8qIEZyYWN0aW9uYWxMYXlvdXRVbml0LmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKyAgICAgICAxNDRGQ0U1QzE0RUM3OUU3
MDAwRDE3QTMgLyogRnJhY3Rpb25hbExheW91dFNpemUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTQ0RkNFNTcxNEVDNzlFNzAwMEQxN0EzIC8qIEZy
YWN0aW9uYWxMYXlvdXRTaXplLmNwcCAqLzsgfTsKKyAgICAgICAxNDRGQ0U1RDE0RUM3OUU3MDAw
RDE3QTMgLyogRnJhY3Rpb25hbExheW91dFNpemUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE0NEZDRTU4MTRFQzc5RTcwMDBEMTdBMyAvKiBGcmFjdGlv
bmFsTGF5b3V0U2l6ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAgICAgICAgMTQ2NEUwNkMxMzVFQzEwNjAwRkRCMDBBIC8qIEpTTWVkaWFMaXN0Q3Vz
dG9tLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE0
NjRFMDZCMTM1RUMxMDYwMEZEQjAwQSAvKiBKU01lZGlhTGlzdEN1c3RvbS5jcHAgKi87IH07CiAg
ICAgICAgMTQ3N0U3NzYwQkY0MTM0QTAwMTUyODcyIC8qIFBhZ2VDYWNoZS5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNDc3RTc3NDBCRjQxMzRBMDAx
NTI4NzIgLyogUGFnZUNhY2hlLmNwcCAqLzsgfTsKICAgICAgICAxNDc3RTc3NzBCRjQxMzRBMDAx
NTI4NzIgLyogUGFnZUNhY2hlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAxNDc3RTc3NTBCRjQxMzRBMDAxNTI4NzIgLyogUGFnZUNhY2hlLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTQ5OTQsNyArNDk5
Nyw2IEBACiAgICAgICAgQjhEQkRCNEMxMzBCMEY4QTAwRjVDREIxIC8qIFNldFNlbGVjdGlvbkNv
bW1hbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEI4
REJEQjQ4MTMwQjBGOEEwMEY1Q0RCMSAvKiBTZXRTZWxlY3Rpb25Db21tYW5kLmggKi87IH07CiAg
ICAgICAgQjhEQkRCNEQxMzBCMEY4QTAwRjVDREIxIC8qIFNwZWxsaW5nQ29ycmVjdGlvbkNvbW1h
bmQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjhE
QkRCNDkxMzBCMEY4QTAwRjVDREIxIC8qIFNwZWxsaW5nQ29ycmVjdGlvbkNvbW1hbmQuY3BwICov
OyB9OwogICAgICAgIEI4REJEQjRFMTMwQjBGOEEwMEY1Q0RCMSAvKiBTcGVsbGluZ0NvcnJlY3Rp
b25Db21tYW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBCOERCREI0QTEzMEIwRjhBMDBGNUNEQjEgLyogU3BlbGxpbmdDb3JyZWN0aW9uQ29tbWFuZC5o
ICovOyB9OwotICAgICAgIEJBQjIyQUQ0MTRCN0EwMkQwMEQ4QUJBNiAvKiBGcmFjdGlvbmFsTGF5
b3V0VW5pdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QkFCNzcxNTAxNDQ0Q0JCNDAwRUM0QzRDIC8qIEZyYWN0aW9uYWxMYXlvdXRVbml0LmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKICAgICAgICBCQUNGMjkw
MTEzQjJBMEQ1MDA3ODFGOTAgLyogTGF5b3V0VHlwZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJBQ0YyOTAwMTNCMkEwRDUwMDc4MUY5MCAvKiBMYXlv
dXRUeXBlcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAgICAgICAgQkMwMEYwMDQwRTBBMTg1NTAwRkQwNEUzIC8qIERPTUZpbGUuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMDBFRkZFMEUwQTE4NTUwMEZE
MDRFMyAvKiBET01GaWxlLmggKi87IH07CiAgICAgICAgQkMwMEYwMDUwRTBBMTg1NTAwRkQwNEUz
IC8qIERPTUZpbGUubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBCQzAwRUZGRjBFMEExODU1MDBGRDA0RTMgLyogRE9NRmlsZS5tbSAqLzsgfTsKQEAgLTcw
MjAsNiArNzAyMiw5IEBACiAgICAgICAgMTQzMkU4NDgwQzUxNDkzRjAwQjE1MDBGIC8qIEdDQ29u
dHJvbGxlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
MzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gR0NDb250
cm9sbGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKICAgICAgICAxNDQ5RTI0QTEw
N0Q0QTg0MDBCNTc5M0YgLyogSlNDYWxsYmFja0RhdGEuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gSlNDYWxsYmFja0RhdGEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
ICAgICAgICAxNDQ5RTI4NjEwN0Q0REI0MDBCNTc5M0YgLyogSlNDYWxsYmFja0RhdGEuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNDYWxsYmFja0RhdGEuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworICAgICAgIDE0NEZDRTUxMTRFQzc5QkMwMDBEMTdB
MyAvKiBGcmFjdGlvbmFsTGF5b3V0VW5pdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBGcmFjdGlvbmFsTGF5b3V0VW5pdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
ICAgICAgIDE0NEZDRTU3MTRFQzc5RTcwMDBEMTdBMyAvKiBGcmFjdGlvbmFsTGF5b3V0U2l6ZS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBGcmFjdGlvbmFsTGF5b3V0
U2l6ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisgICAgICAgMTQ0RkNFNTgxNEVD
NzlFNzAwMEQxN0EzIC8qIEZyYWN0aW9uYWxMYXlvdXRTaXplLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEZyYWN0aW9uYWxMYXlvdXRTaXplLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAgICAgICAgMTQ2NEUwNkIxMzVFQzEwNjAwRkRCMDBBIC8qIEpTTWVkaWFMaXN0
Q3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTTWVkaWFM
aXN0Q3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKICAgICAgICAxNDc3RTc3
NDBCRjQxMzRBMDAxNTI4NzIgLyogUGFnZUNhY2hlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBQYWdlQ2FjaGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogICAgICAgIDE0NzdFNzc1MEJGNDEzNEEwMDE1Mjg3MiAvKiBQYWdlQ2FjaGUuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBhZ2VDYWNoZS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtMTE5MTMsNyArMTE5MTgsNiBAQAogICAgICAgIEI4REJEQjQ4MTMwQjBG
OEEwMEY1Q0RCMSAvKiBTZXRTZWxlY3Rpb25Db21tYW5kLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFNldFNlbGVjdGlvbkNvbW1hbmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKICAgICAgICBCOERCREI0OTEzMEIwRjhBMDBGNUNEQjEgLyogU3BlbGxpbmdDb3JyZWN0
aW9uQ29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTcGVs
bGluZ0NvcnJlY3Rpb25Db21tYW5kLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKICAg
ICAgICBCOERCREI0QTEzMEIwRjhBMDBGNUNEQjEgLyogU3BlbGxpbmdDb3JyZWN0aW9uQ29tbWFu
ZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVsbGluZ0NvcnJlY3Rpb25D
b21tYW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0gICAgICAgQkFCNzcxNTAxNDQ0
Q0JCNDAwRUM0QzRDIC8qIEZyYWN0aW9uYWxMYXlvdXRVbml0LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEZyYWN0aW9uYWxMYXlvdXRVbml0Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAgICAgICAgQkFDRjI5MDAxM0IyQTBENTAwNzgxRjkwIC8qIExheW91dFR5cGVz
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExheW91dFR5cGVzLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAgICAgICAgQkMwMEVGRkUwRTBBMTg1NTAwRkQwNEUzIC8q
IERPTUZpbGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NRmlsZS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogICAgICAgIEJDMDBFRkZGMEUwQTE4NTUwMEZEMDRF
MyAvKiBET01GaWxlLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0g
RE9NRmlsZS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE4OTI0LDYgKzE4OTI4
LDggQEAKICAgICAgICAgICAgICAgIDM3MjAyMTk4MTA2MjEzQzYwMEYyNUM0QiAvKiBGb250U21v
b3RoaW5nTW9kZS5oICovLAogICAgICAgICAgICAgICAgMzc4NEMzNEEwRTExQUEzNDAwN0Q4RDQ4
IC8qIEZvbnRUcmFpdHNNYXNrLmggKi8sCiAgICAgICAgICAgICAgICBCQ0U0NDEzNTEyRjc0OTBC
MDA5Qjg0QjggLyogRm9udFdpZHRoVmFyaWFudC5oICovLAorICAgICAgICAgICAgICAgMTQ0RkNF
NTcxNEVDNzlFNzAwMEQxN0EzIC8qIEZyYWN0aW9uYWxMYXlvdXRTaXplLmNwcCAqLywKKyAgICAg
ICAgICAgICAgIDE0NEZDRTU4MTRFQzc5RTcwMDBEMTdBMyAvKiBGcmFjdGlvbmFsTGF5b3V0U2l6
ZS5oICovLAogICAgICAgICAgICAgICAgQkMyM0YwREEwREFGRjRBNDAwOUZEQzkxIC8qIEdlbmVy
YXRlZEltYWdlLmggKi8sCiAgICAgICAgICAgICAgICBCQ0UwNEM4OTBEQUZGN0EwMDA3QTBGNDEg
LyogR2VuZXJhdG9yLmggKi8sCiAgICAgICAgICAgICAgICAyRDJGQzA1NjE0NjBDRDZGMDAyNjM2
MzMgLyogR2VuZXJhdG9yR2VuZXJhdGVkSW1hZ2UuY3BwICovLApAQCAtMTk3OTksNyArMTk4MDUs
NyBAQAogICAgICAgICAgICAgICAgQzU3RkVERTAxMjEyRUU5QzAwOTdCRTY1IC8qIEZpbGVTeXN0
ZW0uY3BwICovLAogICAgICAgICAgICAgICAgNTE0QjNGNzIwQzcyMjA0NzAwMDUzMERGIC8qIEZp
bGVTeXN0ZW0uaCAqLywKICAgICAgICAgICAgICAgIEJDMDczQkE5MEMzOTlCMUYwMDBGNTk3OSAv
KiBGbG9hdENvbnZlcnNpb24uaCAqLywKLSAgICAgICAgICAgICAgIEJBQjc3MTUwMTQ0NENCQjQw
MEVDNEM0QyAvKiBGcmFjdGlvbmFsTGF5b3V0VW5pdC5oICovLAorICAgICAgICAgICAgICAgMTQ0
RkNFNTExNEVDNzlCQzAwMEQxN0EzIC8qIEZyYWN0aW9uYWxMYXlvdXRVbml0LmggKi8sCiAgICAg
ICAgICAgICAgICBBODc0OEJERjEyQ0JGMkRDMDAxRkJBNDEgLyogSGFzaFRvb2xzLmggKi8sCiAg
ICAgICAgICAgICAgICBENkZEQUVGMjE0OUMwNjE5MDAzN0IxRTEgLyogSGlzdG9ncmFtU3VwcG9y
dC5jcHAgKi8sCiAgICAgICAgICAgICAgICBENjMwRTJBQjE0OUJGMzQ0MDA1QjJGOTMgLyogSGlz
dG9ncmFtU3VwcG9ydC5oICovLApAQCAtMjQyNzksNiArMjQyODUsOCBAQAogICAgICAgICAgICAg
ICAgQjZEOUQyN0IxNEVBQzA4NjAwOTBENzVFIC8qIEpTRm9jdXNFdmVudC5oIGluIEhlYWRlcnMg
Ki8sCiAgICAgICAgICAgICAgICBDNTk4OTA1NzE0RTlDMjgwMDBFOEQxOEIgLyogUGFzdGVib2Fy
ZFN0cmF0ZWd5LmggaW4gSGVhZGVycyAqLywKICAgICAgICAgICAgICAgIEM1OTg5MDU4MTRFOUMy
OTkwMEU4RDE4QiAvKiBQbGF0Zm9ybVBhc3RlYm9hcmQuaCBpbiBIZWFkZXJzICovLAorICAgICAg
ICAgICAgICAgMTQ0RkNFNTIxNEVDNzlCQzAwMEQxN0EzIC8qIEZyYWN0aW9uYWxMYXlvdXRVbml0
LmggaW4gSGVhZGVycyAqLywKKyAgICAgICAgICAgICAgIDE0NEZDRTVEMTRFQzc5RTcwMDBEMTdB
MyAvKiBGcmFjdGlvbmFsTGF5b3V0U2l6ZS5oIGluIEhlYWRlcnMgKi8sCiAgICAgICAgICAgICk7
CiAgICAgICAgICAgIHJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogICAg
ICAgIH07CkBAIC0yNzIyNCw2ICsyNzIzMiw3IEBACiAgICAgICAgICAgICAgICBCNkQ5RDIzNjE0
RUFCRDI2MDA5MEQ3NUUgLyogRm9jdXNFdmVudC5jcHAgaW4gU291cmNlcyAqLywKICAgICAgICAg
ICAgICAgIEI2RDlEMjdDMTRFQUMwODYwMDkwRDc1RSAvKiBKU0ZvY3VzRXZlbnQuY3BwIGluIFNv
dXJjZXMgKi8sCiAgICAgICAgICAgICAgICBDNTk4OTAyRTE0RTlCMEY4MDBFOEQxOEIgLyogUGxh
dGZvcm1QYXN0ZWJvYXJkTWFjLm1tIGluIFNvdXJjZXMgKi8sCisgICAgICAgICAgICAgICAxNDRG
Q0U1QzE0RUM3OUU3MDAwRDE3QTMgLyogRnJhY3Rpb25hbExheW91dFNpemUuY3BwIGluIFNvdXJj
ZXMgKi8sCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJ1bk9ubHlGb3JEZXBsb3ltZW50UG9z
dHByb2Nlc3NpbmcgPSAwOwogICAgICAgIH07CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9GbG9hdFBvaW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9GbG9hdFBvaW50LmNwcCAocmV2aXNpb24gMTA4MDA2KQorKysgU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRmxvYXRQb2ludC5jcHAgKHdvcmtpbmcgY29w
eSkKQEAgLTI4LDkgKzI4LDEwIEBACiAjaW5jbHVkZSAiRmxvYXRQb2ludC5oIgogCiAjaW5jbHVk
ZSAiQWZmaW5lVHJhbnNmb3JtLmgiCi0jaW5jbHVkZSAiVHJhbnNmb3JtYXRpb25NYXRyaXguaCIK
ICNpbmNsdWRlICJGbG9hdENvbnZlcnNpb24uaCIKKyNpbmNsdWRlICJGcmFjdGlvbmFsTGF5b3V0
U2l6ZS5oIgogI2luY2x1ZGUgIkludFBvaW50LmgiCisjaW5jbHVkZSAiVHJhbnNmb3JtYXRpb25N
YXRyaXguaCIKICNpbmNsdWRlIDxsaW1pdHM+CiAjaW5jbHVkZSA8bWF0aC5oPgogCkBAIC01NSw2
ICs1NiwxMiBAQCBmbG9hdCBGbG9hdFBvaW50OjpsZW5ndGgoKSBjb25zdAogICAgIHJldHVybiBz
cXJ0ZihsZW5ndGhTcXVhcmVkKCkpOwogfQogCit2b2lkIEZsb2F0UG9pbnQ6Om1vdmUoY29uc3Qg
RnJhY3Rpb25hbExheW91dFNpemUmIHNpemUpCit7CisgICAgbV94ICs9IHNpemUud2lkdGgoKTsK
KyAgICBtX3kgKz0gc2l6ZS5oZWlnaHQoKTsKK30KKwogRmxvYXRQb2ludCBGbG9hdFBvaW50Ojpt
YXRyaXhUcmFuc2Zvcm0oY29uc3QgQWZmaW5lVHJhbnNmb3JtJiB0cmFuc2Zvcm0pIGNvbnN0CiB7
CiAgICAgZG91YmxlIG5ld1gsIG5ld1k7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9GbG9hdFBvaW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvRmxvYXRQb2ludC5oICAgKHJldmlzaW9uIDEwODAwNikKKysrIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Zsb2F0UG9pbnQuaCAgICh3b3JraW5nIGNvcHkpCkBA
IC02MCw2ICs2MCw3IEBAIGNsYXNzIEFmZmluZVRyYW5zZm9ybTsKIGNsYXNzIFRyYW5zZm9ybWF0
aW9uTWF0cml4OwogY2xhc3MgSW50UG9pbnQ7CiBjbGFzcyBJbnRTaXplOworY2xhc3MgRnJhY3Rp
b25hbExheW91dFNpemU7CiAKIGNsYXNzIEZsb2F0UG9pbnQgewogcHVibGljOgpAQCAtOTIsNiAr
OTMsNyBAQCBwdWJsaWM6CiAgICAgICAgIG1feCArPSBhLndpZHRoKCk7CiAgICAgICAgIG1feSAr
PSBhLmhlaWdodCgpOwogICAgIH0KKyAgICB2b2lkIG1vdmUoY29uc3QgRnJhY3Rpb25hbExheW91
dFNpemUmKTsKICAgICB2b2lkIG1vdmUoY29uc3QgRmxvYXRTaXplJiBhKQogICAgIHsKICAgICAg
ICAgbV94ICs9IGEud2lkdGgoKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0Zsb2F0U2l6ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvRmxvYXRTaXplLmNwcCAgKHJldmlzaW9uIDEwODAwNikKKysrIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Zsb2F0U2l6ZS5jcHAgICh3b3JraW5nIGNvcHkpCkBAIC0y
Nyw2ICsyNyw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiRmxvYXRTaXplLmgi
CiAKKyNpbmNsdWRlICJGcmFjdGlvbmFsTGF5b3V0U2l6ZS5oIgogI2luY2x1ZGUgIkZsb2F0Q29u
dmVyc2lvbi5oIgogI2luY2x1ZGUgIkludFNpemUuaCIKICNpbmNsdWRlIDxsaW1pdHM+CkBAIC00
MCw2ICs0MSwxMCBAQCBGbG9hdFNpemU6OkZsb2F0U2l6ZShjb25zdCBJbnRTaXplJiBzaXplCiB7
CiB9CiAKK0Zsb2F0U2l6ZTo6RmxvYXRTaXplKGNvbnN0IEZyYWN0aW9uYWxMYXlvdXRTaXplJiBz
aXplKSA6IG1fd2lkdGgoc2l6ZS53aWR0aCgpKSwgbV9oZWlnaHQoc2l6ZS5oZWlnaHQoKSkKK3sK
K30KKwogZmxvYXQgRmxvYXRTaXplOjpkaWFnb25hbExlbmd0aCgpIGNvbnN0CiB7CiAgICAgcmV0
dXJuIHNxcnRmKGRpYWdvbmFsTGVuZ3RoU3F1YXJlZCgpKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0Zsb2F0U2l6ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Zsb2F0U2l6ZS5oICAgIChyZXZpc2lvbiAxMDgwMDYpCisr
KyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9GbG9hdFNpemUuaCAgICAod29ya2lu
ZyBjb3B5KQpAQCAtNDYsMTIgKzQ2LDE0IEBAIHR5cGVkZWYgc3RydWN0IF9OU1NpemUgTlNTaXpl
OwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBJbnRTaXplOworY2xhc3MgRnJhY3Rpb25h
bExheW91dFNpemU7CiAKIGNsYXNzIEZsb2F0U2l6ZSB7CiBwdWJsaWM6CiAgICAgRmxvYXRTaXpl
KCkgOiBtX3dpZHRoKDApLCBtX2hlaWdodCgwKSB7IH0KICAgICBGbG9hdFNpemUoZmxvYXQgd2lk
dGgsIGZsb2F0IGhlaWdodCkgOiBtX3dpZHRoKHdpZHRoKSwgbV9oZWlnaHQoaGVpZ2h0KSB7IH0K
ICAgICBGbG9hdFNpemUoY29uc3QgSW50U2l6ZSYpOworICAgIEZsb2F0U2l6ZShjb25zdCBGcmFj
dGlvbmFsTGF5b3V0U2l6ZSYpOwogCiAgICAgc3RhdGljIEZsb2F0U2l6ZSBuYXJyb3dQcmVjaXNp
b24oZG91YmxlIHdpZHRoLCBkb3VibGUgaGVpZ2h0KTsKIApJbmRleDogU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvRnJhY3Rpb25hbExheW91dFNpemUuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZyYWN0aW9uYWxMYXlvdXRTaXplLmNw
cCAgIChyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRnJh
Y3Rpb25hbExheW91dFNpemUuY3BwICAgKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNDMgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKGMpIDIwMTIsIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAg
ICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAq
IGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4g
bm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRv
cnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdp
dGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRP
UlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05F
UiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisg
KiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkZyYWN0aW9uYWxMYXlvdXRTaXplLmgiCisKKyNp
bmNsdWRlICJJbnRQb2ludC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0ludFNpemUgcGl4
ZWxTbmFwcGVkSW50U2l6ZShjb25zdCBGcmFjdGlvbmFsTGF5b3V0U2l6ZSYgcywgY29uc3QgSW50
UG9pbnQmIHApCit7CisgICAgcmV0dXJuIEludFNpemUoc25hcFNpemVUb1BpeGVsKHMud2lkdGgo
KSwgcC54KCkpLCBzbmFwU2l6ZVRvUGl4ZWwocy5oZWlnaHQoKSwgcC55KCkpKTsKK30KKworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvRnJhY3Rpb25hbExheW91dFNpemUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9GcmFjdGlvbmFsTGF5b3V0U2l6ZS5oIChyZXZpc2lvbiAwKQorKysg
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRnJhY3Rpb25hbExheW91dFNpemUuaCAo
cmV2aXNpb24gMCkKQEAgLTAsMCArMSwxNTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMTIs
IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAg
ICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAq
IE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAq
IGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMg
ZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3Jp
dHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhF
IENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1J
VEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAq
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBGcmFjdGlvbmFsTGF5b3V0U2l6
ZV9oCisjZGVmaW5lIEZyYWN0aW9uYWxMYXlvdXRTaXplX2gKKworI2luY2x1ZGUgIkZsb2F0U2l6
ZS5oIgorI2luY2x1ZGUgIkZyYWN0aW9uYWxMYXlvdXRVbml0LmgiCisjaW5jbHVkZSAiSW50U2l6
ZS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEZyYWN0aW9uYWxMYXlvdXRQb2lu
dDsKKworY2xhc3MgRnJhY3Rpb25hbExheW91dFNpemUgeworcHVibGljOgorICAgIEZyYWN0aW9u
YWxMYXlvdXRTaXplKCkgOiBtX3dpZHRoKDApLCBtX2hlaWdodCgwKSB7IH0KKyAgICBGcmFjdGlv
bmFsTGF5b3V0U2l6ZShjb25zdCBJbnRTaXplJiBzaXplKSA6IG1fd2lkdGgoc2l6ZS53aWR0aCgp
KSwgbV9oZWlnaHQoc2l6ZS5oZWlnaHQoKSkgeyB9CisgICAgRnJhY3Rpb25hbExheW91dFNpemUo
RnJhY3Rpb25hbExheW91dFVuaXQgd2lkdGgsIEZyYWN0aW9uYWxMYXlvdXRVbml0IGhlaWdodCkg
OiBtX3dpZHRoKHdpZHRoKSwgbV9oZWlnaHQoaGVpZ2h0KSB7IH0KKworICAgIGV4cGxpY2l0IEZy
YWN0aW9uYWxMYXlvdXRTaXplKGNvbnN0IEZsb2F0U2l6ZSYgc2l6ZSkgOiBtX3dpZHRoKHNpemUu
d2lkdGgoKSksIG1faGVpZ2h0KHNpemUuaGVpZ2h0KCkpIHsgfQorICAgIAorICAgIEZyYWN0aW9u
YWxMYXlvdXRVbml0IHdpZHRoKCkgY29uc3QgeyByZXR1cm4gbV93aWR0aDsgfQorICAgIEZyYWN0
aW9uYWxMYXlvdXRVbml0IGhlaWdodCgpIGNvbnN0IHsgcmV0dXJuIG1faGVpZ2h0OyB9CisKKyAg
ICB2b2lkIHNldFdpZHRoKEZyYWN0aW9uYWxMYXlvdXRVbml0IHdpZHRoKSB7IG1fd2lkdGggPSB3
aWR0aDsgfQorICAgIHZvaWQgc2V0SGVpZ2h0KEZyYWN0aW9uYWxMYXlvdXRVbml0IGhlaWdodCkg
eyBtX2hlaWdodCA9IGhlaWdodDsgfQorCisgICAgYm9vbCBpc0VtcHR5KCkgY29uc3QgeyByZXR1
cm4gbV93aWR0aCA8PSAwIHx8IG1faGVpZ2h0IDw9IDA7IH0KKyAgICBib29sIGlzWmVybygpIGNv
bnN0IHsgcmV0dXJuICFtX3dpZHRoICYmICFtX2hlaWdodDsgfQorCisgICAgZmxvYXQgYXNwZWN0
UmF0aW8oKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxmbG9hdD4obV93aWR0aCkgLyBzdGF0
aWNfY2FzdDxmbG9hdD4obV9oZWlnaHQpOyB9CisgICAgCisgICAgdm9pZCBleHBhbmQoRnJhY3Rp
b25hbExheW91dFVuaXQgd2lkdGgsIEZyYWN0aW9uYWxMYXlvdXRVbml0IGhlaWdodCkKKyAgICB7
CisgICAgICAgIG1fd2lkdGggKz0gd2lkdGg7CisgICAgICAgIG1faGVpZ2h0ICs9IGhlaWdodDsK
KyAgICB9CisgICAgCisgICAgdm9pZCBzY2FsZShmbG9hdCBzY2FsZSkKKyAgICB7CisgICAgICAg
IG1fd2lkdGggPSBzdGF0aWNfY2FzdDxpbnQ+KHN0YXRpY19jYXN0PGZsb2F0PihtX3dpZHRoKSAq
IHNjYWxlKTsKKyAgICAgICAgbV9oZWlnaHQgPSBzdGF0aWNfY2FzdDxpbnQ+KHN0YXRpY19jYXN0
PGZsb2F0PihtX2hlaWdodCkgKiBzY2FsZSk7CisgICAgfQorICAgIAorICAgIEZyYWN0aW9uYWxM
YXlvdXRTaXplIGV4cGFuZGVkVG8oY29uc3QgRnJhY3Rpb25hbExheW91dFNpemUmIG90aGVyKSBj
b25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIEZyYWN0aW9uYWxMYXlvdXRTaXplKG1fd2lkdGgg
PiBvdGhlci5tX3dpZHRoID8gbV93aWR0aCA6IG90aGVyLm1fd2lkdGgsCisgICAgICAgICAgICBt
X2hlaWdodCA+IG90aGVyLm1faGVpZ2h0ID8gbV9oZWlnaHQgOiBvdGhlci5tX2hlaWdodCk7Cisg
ICAgfQorCisgICAgRnJhY3Rpb25hbExheW91dFNpemUgc2hydW5rVG8oY29uc3QgRnJhY3Rpb25h
bExheW91dFNpemUmIG90aGVyKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIEZyYWN0aW9u
YWxMYXlvdXRTaXplKG1fd2lkdGggPCBvdGhlci5tX3dpZHRoID8gbV93aWR0aCA6IG90aGVyLm1f
d2lkdGgsCisgICAgICAgICAgICBtX2hlaWdodCA8IG90aGVyLm1faGVpZ2h0ID8gbV9oZWlnaHQg
OiBvdGhlci5tX2hlaWdodCk7CisgICAgfQorCisgICAgdm9pZCBjbGFtcE5lZ2F0aXZlVG9aZXJv
KCkKKyAgICB7CisgICAgICAgICp0aGlzID0gZXhwYW5kZWRUbyhGcmFjdGlvbmFsTGF5b3V0U2l6
ZSgpKTsKKyAgICB9CisKKyAgICBGcmFjdGlvbmFsTGF5b3V0U2l6ZSB0cmFuc3Bvc2VkU2l6ZSgp
IGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gRnJhY3Rpb25hbExheW91dFNpemUobV9oZWln
aHQsIG1fd2lkdGgpOworICAgIH0KKworcHJpdmF0ZToKKyAgICBGcmFjdGlvbmFsTGF5b3V0VW5p
dCBtX3dpZHRoLCBtX2hlaWdodDsKK307CisKK2lubGluZSBGcmFjdGlvbmFsTGF5b3V0U2l6ZSYg
b3BlcmF0b3IrPShGcmFjdGlvbmFsTGF5b3V0U2l6ZSYgYSwgY29uc3QgRnJhY3Rpb25hbExheW91
dFNpemUmIGIpCit7CisgICAgYS5zZXRXaWR0aChhLndpZHRoKCkgKyBiLndpZHRoKCkpOworICAg
IGEuc2V0SGVpZ2h0KGEuaGVpZ2h0KCkgKyBiLmhlaWdodCgpKTsKKyAgICByZXR1cm4gYTsKK30K
KworaW5saW5lIEZyYWN0aW9uYWxMYXlvdXRTaXplJiBvcGVyYXRvci09KEZyYWN0aW9uYWxMYXlv
dXRTaXplJiBhLCBjb25zdCBGcmFjdGlvbmFsTGF5b3V0U2l6ZSYgYikKK3sKKyAgICBhLnNldFdp
ZHRoKGEud2lkdGgoKSAtIGIud2lkdGgoKSk7CisgICAgYS5zZXRIZWlnaHQoYS5oZWlnaHQoKSAt
IGIuaGVpZ2h0KCkpOworICAgIHJldHVybiBhOworfQorCitpbmxpbmUgRnJhY3Rpb25hbExheW91
dFNpemUgb3BlcmF0b3IrKGNvbnN0IEZyYWN0aW9uYWxMYXlvdXRTaXplJiBhLCBjb25zdCBGcmFj
dGlvbmFsTGF5b3V0U2l6ZSYgYikKK3sKKyAgICByZXR1cm4gRnJhY3Rpb25hbExheW91dFNpemUo
YS53aWR0aCgpICsgYi53aWR0aCgpLCBhLmhlaWdodCgpICsgYi5oZWlnaHQoKSk7Cit9CisKK2lu
bGluZSBGcmFjdGlvbmFsTGF5b3V0U2l6ZSBvcGVyYXRvci0oY29uc3QgRnJhY3Rpb25hbExheW91
dFNpemUmIGEsIGNvbnN0IEZyYWN0aW9uYWxMYXlvdXRTaXplJiBiKQoreworICAgIHJldHVybiBG
cmFjdGlvbmFsTGF5b3V0U2l6ZShhLndpZHRoKCkgLSBiLndpZHRoKCksIGEuaGVpZ2h0KCkgLSBi
LmhlaWdodCgpKTsKK30KKworaW5saW5lIEZyYWN0aW9uYWxMYXlvdXRTaXplIG9wZXJhdG9yLShj
b25zdCBGcmFjdGlvbmFsTGF5b3V0U2l6ZSYgc2l6ZSkKK3sKKyAgICByZXR1cm4gRnJhY3Rpb25h
bExheW91dFNpemUoLXNpemUud2lkdGgoKSwgLXNpemUuaGVpZ2h0KCkpOworfQorCitpbmxpbmUg
Ym9vbCBvcGVyYXRvcj09KGNvbnN0IEZyYWN0aW9uYWxMYXlvdXRTaXplJiBhLCBjb25zdCBGcmFj
dGlvbmFsTGF5b3V0U2l6ZSYgYikKK3sKKyAgICByZXR1cm4gYS53aWR0aCgpID09IGIud2lkdGgo
KSAmJiBhLmhlaWdodCgpID09IGIuaGVpZ2h0KCk7Cit9CisKK2lubGluZSBib29sIG9wZXJhdG9y
IT0oY29uc3QgRnJhY3Rpb25hbExheW91dFNpemUmIGEsIGNvbnN0IEZyYWN0aW9uYWxMYXlvdXRT
aXplJiBiKQoreworICAgIHJldHVybiBhLndpZHRoKCkgIT0gYi53aWR0aCgpIHx8IGEuaGVpZ2h0
KCkgIT0gYi5oZWlnaHQoKTsKK30KKworaW5saW5lIEludFNpemUgZmxvb3JlZEludFNpemUoY29u
c3QgRnJhY3Rpb25hbExheW91dFNpemUmIHMpCit7CisgICAgcmV0dXJuIEludFNpemUocy53aWR0
aCgpLnRvSW50KCksIHMuaGVpZ2h0KCkudG9JbnQoKSk7Cit9CisKK2lubGluZSBJbnRTaXplIHJv
dW5kZWRJbnRTaXplKGNvbnN0IEZyYWN0aW9uYWxMYXlvdXRTaXplJiBzKQoreworICAgIHJldHVy
biBJbnRTaXplKHMud2lkdGgoKS5yb3VuZCgpLCBzLmhlaWdodCgpLnJvdW5kKCkpOworfQorCisv
LyBGSVhNRTogQ2hhbmdlIHRoaXMgbWV0aG9kIHRvIHRha2UgYSBGcmFjdGlvbmFsTGF5b3V0UG9p
bnQgb25jZSB0aGF0IGNsYXNzIGhhcyBiZWVuIGFkZGVkLgorSW50U2l6ZSBwaXhlbFNuYXBwZWRJ
bnRTaXplKGNvbnN0IEZyYWN0aW9uYWxMYXlvdXRTaXplJiwgY29uc3QgSW50UG9pbnQmKTsKKwor
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRnJhY3Rpb25hbExheW91dFNpemVf
aAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>127632</attachid>
            <date>2012-02-17 12:52:50 -0800</date>
            <delta_ts>2012-02-17 17:10:07 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-78852-20120217125249.patch</filename>
            <type>text/plain</type>
            <size>22510</size>
            <attacher name="Emil A Eklund">eae</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwODEwOCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMzIEBACisyMDEyLTAyLTE3ICBFbWlsIEEg
RWtsdW5kICA8ZWFlQGNocm9taXVtLm9yZz4KKworICAgICAgICBBZGQgRnJhY3Rpb25hbExheW91
dFNpemUgZm9yIHN1Yi1waXhlbCBsYXlvdXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTc4ODUyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBTZWlk
ZWwuCisKKyAgICAgICAgQWRkIEZyYWN0aW9uYWxMYXlvdXRVbml0IHZlcnNpb24gb2YgU2l6ZSBj
bGFzcyBhbmQgYSBjb3VwbGUgb2YKKyAgICAgICAgY29udmVyc2lvbiBtZXRob2RzIHRvIHRoZSBJ
bnQgYW5kIEZsb2F0IHZlcnNpb25zIG9mIHNhbWUuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLgor
CisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5h
bToKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2Vi
Q29yZS52Y3Byb2o6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0Zsb2F0UG9pbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RmxvYXRQb2ludDo6bW92ZSk6CisgICAgICAgIEFkZCBGcmFjdGlvbmFsTGF5b3V0
U2l6ZSB2ZXJzaW9uIG9mIG1vdmUuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9GbG9h
dFBvaW50Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRmxvYXRTaXplLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkZsb2F0U2l6ZTo6RmxvYXRTaXplKToKKyAgICAgICAgQWRkIEZsb2F0
U2l6ZShGcmFjdGlvbmFsTGF5b3V0U2l6ZSkgY29uc3RydWN0b3IuCisKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9GbG9hdFNpemUuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9G
cmFjdGlvbmFsTGF5b3V0U2l6ZS5jcHA6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL0ZyYWN0aW9uYWxMYXlvdXRTaXplLmg6IEFkZGVkLgorCiAyMDEyLTAyLTE3ICBNaWhuZWEg
T3ZpZGVuaWUgIDxtaWhuZWFAYWRvYmUuY29tPgogCiAgICAgICAgIENTUyByZWdpb25zIGVuYWJs
ZWQgYnkgZGVmYXVsdApJbmRleDogU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQJKHJldmlzaW9uIDEwODAwNikK
KysrIFNvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xMTAw
LDYgKzExMDAsNyBAQCBTRVQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3Mv
Qml0bWFwSW1hZ2UuY3BwCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3IuY3BwCiAgICAgcGxh
dGZvcm0vZ3JhcGhpY3MvQ3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2UuY3BwCisgICAgcGxhdGZvcm0v
Z3JhcGhpY3MvRnJhY3Rpb25hbExheW91dFNpemUuY3BwCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3Mv
RmxvYXRQb2ludC5jcHAKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9GbG9hdFBvaW50M0QuY3BwCiAg
ICAgcGxhdGZvcm0vZ3JhcGhpY3MvRmxvYXRRdWFkLmNwcApJbmRleDogU291cmNlL1dlYkNvcmUv
R05VbWFrZWZpbGUubGlzdC5hbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9HTlVtYWtl
ZmlsZS5saXN0LmFtCShyZXZpc2lvbiAxMDgwMDYpCisrKyBTb3VyY2UvV2ViQ29yZS9HTlVtYWtl
ZmlsZS5saXN0LmFtCSh3b3JraW5nIGNvcHkpCkBAIC0yOTYzLDYgKzI5NjMsOCBAQCB3ZWJjb3Jl
X3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMv
YXJtL0ZFR2F1c3NpYW5CbHVyTkVPTi5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9maWx0ZXJzL2FybS9GRUxpZ2h0aW5nTkVPTi5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvYXJtL0ZFTGlnaHRpbmdORU9OLmggXAorCVNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZyYWN0aW9uYWxMYXlvdXRTaXplLmNwcCBcCisJU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRnJhY3Rpb25hbExheW91dFNpemUuaCBcCiAJ
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRmxvYXRQb2ludDNELmNwcCBcCiAJU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRmxvYXRQb2ludDNELmggXAogCVNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Zsb2F0UG9pbnQuY3BwIFwKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUuZ3lwaQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lmd5cGkJKHJldmlzaW9uIDEwODAwNikKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQko
d29ya2luZyBjb3B5KQpAQCAtMzAxMyw2ICszMDEzLDcgQEAKICAgICAgICAgICAgICdwbGF0Zm9y
bS9ncmFwaGljcy9Dcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZS5jcHAnLAogICAgICAgICAgICAgJ3Bs
YXRmb3JtL2dyYXBoaWNzL0Nyb3NzZmFkZUdlbmVyYXRlZEltYWdlLmgnLAogICAgICAgICAgICAg
J3BsYXRmb3JtL2dyYXBoaWNzL0V4dGVuc2lvbnMzRC5oJywKKyAgICAgICAgICAgICdwbGF0Zm9y
bS9ncmFwaGljcy9GcmFjdGlvbmFsTGF5b3V0U2l6ZS5jcHAnLAogICAgICAgICAgICAgJ3BsYXRm
b3JtL2dyYXBoaWNzL0Zsb2F0UG9pbnQuY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFw
aGljcy9GbG9hdFBvaW50M0QuY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9G
bG9hdFF1YWQuY3BwJywKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNv
cmUudmNwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dl
YkNvcmUudmNwcm9qCShyZXZpc2lvbiAxMDgwMDYpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
LnZjcHJvai9XZWJDb3JlLnZjcHJvagkod29ya2luZyBjb3B5KQpAQCAtMjc1MjUsNiArMjc1MjUs
MTQgQEAKIAkJCQkJPgogCQkJCTwvRmlsZT4KIAkJCQk8RmlsZQorCQkJCQlSZWxhdGl2ZVBhdGg9
Ii4uXHBsYXRmb3JtXGdyYXBoaWNzXEZyYWN0aW9uYWxMYXlvdXRTaXplLmNwcCIKKwkJCQkJPgor
CQkJCTwvRmlsZT4KKwkJCQk8RmlsZQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBsYXRmb3JtXGdy
YXBoaWNzXEZyYWN0aW9uYWxMYXlvdXRTaXplLmgiCisJCQkJCT4KKwkJCQk8L0ZpbGU+CisJCQkJ
PEZpbGUKIAkJCQkJUmVsYXRpdmVQYXRoPSIuLlxwbGF0Zm9ybVxncmFwaGljc1xGbG9hdFBvaW50
LmNwcCIKIAkJCQkJPgogCQkJCTwvRmlsZT4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDEwODAwNikKKysrIFNv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBj
b3B5KQpAQCAtMjk3LDYgKzI5Nyw5IEBACiAJCTE0MzJFODQ5MEM1MTQ5M0YwMEIxNTAwRiAvKiBH
Q0NvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMTQzMkU4NDgwQzUxNDkzRjAwQjE1MDBGIC8qIEdDQ29udHJvbGxlci5jcHAgKi87IH07
CiAJCTE0NDlFMjRDMTA3RDRBODQwMEI1NzkzRiAvKiBKU0NhbGxiYWNrRGF0YS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTQ0OUUyNEExMDdENEE4NDAw
QjU3OTNGIC8qIEpTQ2FsbGJhY2tEYXRhLmggKi87IH07CiAJCTE0NDlFMjg3MTA3RDREQjQwMEI1
NzkzRiAvKiBKU0NhbGxiYWNrRGF0YS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAxNDQ5RTI4NjEwN0Q0REI0MDBCNTc5M0YgLyogSlNDYWxsYmFja0Rh
dGEuY3BwICovOyB9OworCQkxNDRGQ0U1MjE0RUM3OUJDMDAwRDE3QTMgLyogRnJhY3Rpb25hbExh
eW91dFVuaXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDE0NEZDRTUxMTRFQzc5QkMwMDBEMTdBMyAvKiBGcmFjdGlvbmFsTGF5b3V0VW5pdC5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTE0NEZDRTVDMTRF
Qzc5RTcwMDBEMTdBMyAvKiBGcmFjdGlvbmFsTGF5b3V0U2l6ZS5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNDRGQ0U1NzE0RUM3OUU3MDAwRDE3QTMg
LyogRnJhY3Rpb25hbExheW91dFNpemUuY3BwICovOyB9OworCQkxNDRGQ0U1RDE0RUM3OUU3MDAw
RDE3QTMgLyogRnJhY3Rpb25hbExheW91dFNpemUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE0NEZDRTU4MTRFQzc5RTcwMDBEMTdBMyAvKiBGcmFjdGlv
bmFsTGF5b3V0U2l6ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCTE0NjRFMDZDMTM1RUMxMDYwMEZEQjAwQSAvKiBKU01lZGlhTGlzdEN1c3RvbS5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNDY0RTA2
QjEzNUVDMTA2MDBGREIwMEEgLyogSlNNZWRpYUxpc3RDdXN0b20uY3BwICovOyB9OwogCQkxNDc3
RTc3NjBCRjQxMzRBMDAxNTI4NzIgLyogUGFnZUNhY2hlLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE0NzdFNzc0MEJGNDEzNEEwMDE1Mjg3MiAvKiBQ
YWdlQ2FjaGUuY3BwICovOyB9OwogCQkxNDc3RTc3NzBCRjQxMzRBMDAxNTI4NzIgLyogUGFnZUNh
Y2hlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNDc3
RTc3NTBCRjQxMzRBMDAxNTI4NzIgLyogUGFnZUNhY2hlLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTQ5OTQsNyArNDk5Nyw2IEBACiAJCUI4REJE
QjRDMTMwQjBGOEEwMEY1Q0RCMSAvKiBTZXRTZWxlY3Rpb25Db21tYW5kLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCOERCREI0ODEzMEIwRjhBMDBGNUNE
QjEgLyogU2V0U2VsZWN0aW9uQ29tbWFuZC5oICovOyB9OwogCQlCOERCREI0RDEzMEIwRjhBMDBG
NUNEQjEgLyogU3BlbGxpbmdDb3JyZWN0aW9uQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCOERCREI0OTEzMEIwRjhBMDBGNUNEQjEgLyog
U3BlbGxpbmdDb3JyZWN0aW9uQ29tbWFuZC5jcHAgKi87IH07CiAJCUI4REJEQjRFMTMwQjBGOEEw
MEY1Q0RCMSAvKiBTcGVsbGluZ0NvcnJlY3Rpb25Db21tYW5kLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCOERCREI0QTEzMEIwRjhBMDBGNUNEQjEgLyog
U3BlbGxpbmdDb3JyZWN0aW9uQ29tbWFuZC5oICovOyB9OwotCQlCQUIyMkFENDE0QjdBMDJEMDBE
OEFCQTYgLyogRnJhY3Rpb25hbExheW91dFVuaXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJBQjc3MTUwMTQ0NENCQjQwMEVDNEM0QyAvKiBGcmFjdGlv
bmFsTGF5b3V0VW5pdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCUJBQ0YyOTAxMTNCMkEwRDUwMDc4MUY5MCAvKiBMYXlvdXRUeXBlcy5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkFDRjI5MDAxM0IyQTBE
NTAwNzgxRjkwIC8qIExheW91dFR5cGVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJQkMwMEYwMDQwRTBBMTg1NTAwRkQwNEUzIC8qIERPTUZpbGUu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMDBFRkZF
MEUwQTE4NTUwMEZEMDRFMyAvKiBET01GaWxlLmggKi87IH07CiAJCUJDMDBGMDA1MEUwQTE4NTUw
MEZEMDRFMyAvKiBET01GaWxlLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQkMwMEVGRkYwRTBBMTg1NTAwRkQwNEUzIC8qIERPTUZpbGUubW0gKi87IH07
CkBAIC03MDIwLDYgKzcwMjIsOSBAQAogCQkxNDMyRTg0ODBDNTE0OTNGMDBCMTUwMEYgLyogR0ND
b250cm9sbGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBHQ0Nv
bnRyb2xsZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxNDQ5RTI0QTEwN0Q0
QTg0MDBCNTc5M0YgLyogSlNDYWxsYmFja0RhdGEuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gSlNDYWxsYmFja0RhdGEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MTQ0OUUyODYxMDdENERCNDAwQjU3OTNGIC8qIEpTQ2FsbGJhY2tEYXRhLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTQ2FsbGJhY2tEYXRhLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMTQ0RkNFNTExNEVDNzlCQzAwMEQxN0EzIC8qIEZyYWN0aW9u
YWxMYXlvdXRVbml0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZyYWN0aW9u
YWxMYXlvdXRVbml0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTE0NEZDRTU3MTRF
Qzc5RTcwMDBEMTdBMyAvKiBGcmFjdGlvbmFsTGF5b3V0U2l6ZS5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBGcmFjdGlvbmFsTGF5b3V0U2l6ZS5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTE0NEZDRTU4MTRFQzc5RTcwMDBEMTdBMyAvKiBGcmFjdGlv
bmFsTGF5b3V0U2l6ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGcmFjdGlv
bmFsTGF5b3V0U2l6ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxNDY0RTA2QjEz
NUVDMTA2MDBGREIwMEEgLyogSlNNZWRpYUxpc3RDdXN0b20uY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gSlNNZWRpYUxpc3RDdXN0b20uY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkxNDc3RTc3NDBCRjQxMzRBMDAxNTI4NzIgLyogUGFnZUNhY2hlLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQYWdlQ2FjaGUuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxNDc3RTc3NTBCRjQxMzRBMDAxNTI4NzIgLyog
UGFnZUNhY2hlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
MzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQYWdlQ2FjaGUu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTExOTEzLDcgKzExOTE4LDYgQEAKIAkJ
QjhEQkRCNDgxMzBCMEY4QTAwRjVDREIxIC8qIFNldFNlbGVjdGlvbkNvbW1hbmQuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2V0U2VsZWN0aW9uQ29tbWFuZC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlCOERCREI0OTEzMEIwRjhBMDBGNUNEQjEgLyogU3BlbGxp
bmdDb3JyZWN0aW9uQ29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBTcGVsbGluZ0NvcnJlY3Rpb25Db21tYW5kLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQjhEQkRCNEExMzBCMEY4QTAwRjVDREIxIC8qIFNwZWxsaW5nQ29ycmVjdGlvbkNv
bW1hbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlbGxpbmdDb3JyZWN0
aW9uQ29tbWFuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlCQUI3NzE1MDE0NDRD
QkI0MDBFQzRDNEMgLyogRnJhY3Rpb25hbExheW91dFVuaXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gRnJhY3Rpb25hbExheW91dFVuaXQuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJQkFDRjI5MDAxM0IyQTBENTAwNzgxRjkwIC8qIExheW91dFR5cGVzLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExheW91dFR5cGVzLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUJDMDBFRkZFMEUwQTE4NTUwMEZEMDRFMyAvKiBET01GaWxlLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTUZpbGUuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJQkMwMEVGRkYwRTBBMTg1NTAwRkQwNEUzIC8qIERPTUZpbGUubW0g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBET01GaWxlLm1tOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTg5MjQsNiArMTg5MjgsOCBAQAogCQkJCTM3MjAy
MTk4MTA2MjEzQzYwMEYyNUM0QiAvKiBGb250U21vb3RoaW5nTW9kZS5oICovLAogCQkJCTM3ODRD
MzRBMEUxMUFBMzQwMDdEOEQ0OCAvKiBGb250VHJhaXRzTWFzay5oICovLAogCQkJCUJDRTQ0MTM1
MTJGNzQ5MEIwMDlCODRCOCAvKiBGb250V2lkdGhWYXJpYW50LmggKi8sCisJCQkJMTQ0RkNFNTcx
NEVDNzlFNzAwMEQxN0EzIC8qIEZyYWN0aW9uYWxMYXlvdXRTaXplLmNwcCAqLywKKwkJCQkxNDRG
Q0U1ODE0RUM3OUU3MDAwRDE3QTMgLyogRnJhY3Rpb25hbExheW91dFNpemUuaCAqLywKIAkJCQlC
QzIzRjBEQTBEQUZGNEE0MDA5RkRDOTEgLyogR2VuZXJhdGVkSW1hZ2UuaCAqLywKIAkJCQlCQ0Uw
NEM4OTBEQUZGN0EwMDA3QTBGNDEgLyogR2VuZXJhdG9yLmggKi8sCiAJCQkJMkQyRkMwNTYxNDYw
Q0Q2RjAwMjYzNjMzIC8qIEdlbmVyYXRvckdlbmVyYXRlZEltYWdlLmNwcCAqLywKQEAgLTE5Nzk5
LDcgKzE5ODA1LDcgQEAKIAkJCQlDNTdGRURFMDEyMTJFRTlDMDA5N0JFNjUgLyogRmlsZVN5c3Rl
bS5jcHAgKi8sCiAJCQkJNTE0QjNGNzIwQzcyMjA0NzAwMDUzMERGIC8qIEZpbGVTeXN0ZW0uaCAq
LywKIAkJCQlCQzA3M0JBOTBDMzk5QjFGMDAwRjU5NzkgLyogRmxvYXRDb252ZXJzaW9uLmggKi8s
Ci0JCQkJQkFCNzcxNTAxNDQ0Q0JCNDAwRUM0QzRDIC8qIEZyYWN0aW9uYWxMYXlvdXRVbml0Lmgg
Ki8sCisJCQkJMTQ0RkNFNTExNEVDNzlCQzAwMEQxN0EzIC8qIEZyYWN0aW9uYWxMYXlvdXRVbml0
LmggKi8sCiAJCQkJQTg3NDhCREYxMkNCRjJEQzAwMUZCQTQxIC8qIEhhc2hUb29scy5oICovLAog
CQkJCUQ2RkRBRUYyMTQ5QzA2MTkwMDM3QjFFMSAvKiBIaXN0b2dyYW1TdXBwb3J0LmNwcCAqLywK
IAkJCQlENjMwRTJBQjE0OUJGMzQ0MDA1QjJGOTMgLyogSGlzdG9ncmFtU3VwcG9ydC5oICovLApA
QCAtMjQyNzksNiArMjQyODUsOCBAQAogCQkJCUI2RDlEMjdCMTRFQUMwODYwMDkwRDc1RSAvKiBK
U0ZvY3VzRXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUM1OTg5MDU3MTRFOUMyODAwMEU4RDE4
QiAvKiBQYXN0ZWJvYXJkU3RyYXRlZ3kuaCBpbiBIZWFkZXJzICovLAogCQkJCUM1OTg5MDU4MTRF
OUMyOTkwMEU4RDE4QiAvKiBQbGF0Zm9ybVBhc3RlYm9hcmQuaCBpbiBIZWFkZXJzICovLAorCQkJ
CTE0NEZDRTUyMTRFQzc5QkMwMDBEMTdBMyAvKiBGcmFjdGlvbmFsTGF5b3V0VW5pdC5oIGluIEhl
YWRlcnMgKi8sCisJCQkJMTQ0RkNFNUQxNEVDNzlFNzAwMEQxN0EzIC8qIEZyYWN0aW9uYWxMYXlv
dXRTaXplLmggaW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBv
c3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAgLTI3MjI0LDYgKzI3MjMyLDcgQEAKIAkJCQlCNkQ5
RDIzNjE0RUFCRDI2MDA5MEQ3NUUgLyogRm9jdXNFdmVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQlCNkQ5RDI3QzE0RUFDMDg2MDA5MEQ3NUUgLyogSlNGb2N1c0V2ZW50LmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUM1OTg5MDJFMTRFOUIwRjgwMEU4RDE4QiAvKiBQbGF0Zm9ybVBhc3RlYm9hcmRN
YWMubW0gaW4gU291cmNlcyAqLywKKwkJCQkxNDRGQ0U1QzE0RUM3OUU3MDAwRDE3QTMgLyogRnJh
Y3Rpb25hbExheW91dFNpemUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZv
ckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9GbG9hdFBvaW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9GbG9hdFBvaW50LmNwcAkocmV2aXNpb24gMTA4MDA2
KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRmxvYXRQb2ludC5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTI4LDkgKzI4LDEwIEBACiAjaW5jbHVkZSAiRmxvYXRQb2ludC5oIgog
CiAjaW5jbHVkZSAiQWZmaW5lVHJhbnNmb3JtLmgiCi0jaW5jbHVkZSAiVHJhbnNmb3JtYXRpb25N
YXRyaXguaCIKICNpbmNsdWRlICJGbG9hdENvbnZlcnNpb24uaCIKKyNpbmNsdWRlICJGcmFjdGlv
bmFsTGF5b3V0U2l6ZS5oIgogI2luY2x1ZGUgIkludFBvaW50LmgiCisjaW5jbHVkZSAiVHJhbnNm
b3JtYXRpb25NYXRyaXguaCIKICNpbmNsdWRlIDxsaW1pdHM+CiAjaW5jbHVkZSA8bWF0aC5oPgog
CkBAIC01NSw2ICs1NiwxMiBAQCBmbG9hdCBGbG9hdFBvaW50OjpsZW5ndGgoKSBjb25zdAogICAg
IHJldHVybiBzcXJ0ZihsZW5ndGhTcXVhcmVkKCkpOwogfQogCit2b2lkIEZsb2F0UG9pbnQ6Om1v
dmUoY29uc3QgRnJhY3Rpb25hbExheW91dFNpemUmIHNpemUpCit7CisgICAgbV94ICs9IHNpemUu
d2lkdGgoKTsKKyAgICBtX3kgKz0gc2l6ZS5oZWlnaHQoKTsKK30KKwogRmxvYXRQb2ludCBGbG9h
dFBvaW50OjptYXRyaXhUcmFuc2Zvcm0oY29uc3QgQWZmaW5lVHJhbnNmb3JtJiB0cmFuc2Zvcm0p
IGNvbnN0CiB7CiAgICAgZG91YmxlIG5ld1gsIG5ld1k7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9GbG9hdFBvaW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvRmxvYXRQb2ludC5oCShyZXZpc2lvbiAxMDgwMDYpCisrKyBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9GbG9hdFBvaW50LmgJKHdvcmtpbmcgY29w
eSkKQEAgLTYwLDYgKzYwLDcgQEAgY2xhc3MgQWZmaW5lVHJhbnNmb3JtOwogY2xhc3MgVHJhbnNm
b3JtYXRpb25NYXRyaXg7CiBjbGFzcyBJbnRQb2ludDsKIGNsYXNzIEludFNpemU7CitjbGFzcyBG
cmFjdGlvbmFsTGF5b3V0U2l6ZTsKIAogY2xhc3MgRmxvYXRQb2ludCB7CiBwdWJsaWM6CkBAIC05
Miw2ICs5Myw3IEBAIHB1YmxpYzoKICAgICAgICAgbV94ICs9IGEud2lkdGgoKTsKICAgICAgICAg
bV95ICs9IGEuaGVpZ2h0KCk7CiAgICAgfQorICAgIHZvaWQgbW92ZShjb25zdCBGcmFjdGlvbmFs
TGF5b3V0U2l6ZSYpOwogICAgIHZvaWQgbW92ZShjb25zdCBGbG9hdFNpemUmIGEpCiAgICAgewog
ICAgICAgICBtX3ggKz0gYS53aWR0aCgpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvRmxvYXRTaXplLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9GbG9hdFNpemUuY3BwCShyZXZpc2lvbiAxMDgwMDYpCisrKyBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9GbG9hdFNpemUuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiRmxvYXRTaXpl
LmgiCiAKKyNpbmNsdWRlICJGcmFjdGlvbmFsTGF5b3V0U2l6ZS5oIgogI2luY2x1ZGUgIkZsb2F0
Q29udmVyc2lvbi5oIgogI2luY2x1ZGUgIkludFNpemUuaCIKICNpbmNsdWRlIDxsaW1pdHM+CkBA
IC00MCw2ICs0MSwxMCBAQCBGbG9hdFNpemU6OkZsb2F0U2l6ZShjb25zdCBJbnRTaXplJiBzaXpl
CiB7CiB9CiAKK0Zsb2F0U2l6ZTo6RmxvYXRTaXplKGNvbnN0IEZyYWN0aW9uYWxMYXlvdXRTaXpl
JiBzaXplKSA6IG1fd2lkdGgoc2l6ZS53aWR0aCgpKSwgbV9oZWlnaHQoc2l6ZS5oZWlnaHQoKSkK
K3sKK30KKwogZmxvYXQgRmxvYXRTaXplOjpkaWFnb25hbExlbmd0aCgpIGNvbnN0CiB7CiAgICAg
cmV0dXJuIHNxcnRmKGRpYWdvbmFsTGVuZ3RoU3F1YXJlZCgpKTsKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Zsb2F0U2l6ZS5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Zsb2F0U2l6ZS5oCShyZXZpc2lvbiAxMDgwMDYpCisr
KyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9GbG9hdFNpemUuaAkod29ya2luZyBj
b3B5KQpAQCAtNDYsMTIgKzQ2LDE0IEBAIHR5cGVkZWYgc3RydWN0IF9OU1NpemUgTlNTaXplOwog
bmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBJbnRTaXplOworY2xhc3MgRnJhY3Rpb25hbExh
eW91dFNpemU7CiAKIGNsYXNzIEZsb2F0U2l6ZSB7CiBwdWJsaWM6CiAgICAgRmxvYXRTaXplKCkg
OiBtX3dpZHRoKDApLCBtX2hlaWdodCgwKSB7IH0KICAgICBGbG9hdFNpemUoZmxvYXQgd2lkdGgs
IGZsb2F0IGhlaWdodCkgOiBtX3dpZHRoKHdpZHRoKSwgbV9oZWlnaHQoaGVpZ2h0KSB7IH0KICAg
ICBGbG9hdFNpemUoY29uc3QgSW50U2l6ZSYpOworICAgIEZsb2F0U2l6ZShjb25zdCBGcmFjdGlv
bmFsTGF5b3V0U2l6ZSYpOwogCiAgICAgc3RhdGljIEZsb2F0U2l6ZSBuYXJyb3dQcmVjaXNpb24o
ZG91YmxlIHdpZHRoLCBkb3VibGUgaGVpZ2h0KTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvRnJhY3Rpb25hbExheW91dFNpemUuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZyYWN0aW9uYWxMYXlvdXRTaXplLmNwcAko
cmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZyYWN0aW9u
YWxMYXlvdXRTaXplLmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw0MyBAQAorLyoKKyAqIENv
cHlyaWdodCAoYykgMjAxMiwgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJp
YnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhl
IG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3Ig
cHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBz
cGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICog
IkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiRnJhY3Rpb25hbExheW91dFNpemUuaCIKKworI2luY2x1ZGUg
IkludFBvaW50LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworSW50U2l6ZSBwaXhlbFNuYXBw
ZWRJbnRTaXplKGNvbnN0IEZyYWN0aW9uYWxMYXlvdXRTaXplJiBzLCBjb25zdCBJbnRQb2ludCYg
cCkKK3sKKyAgICByZXR1cm4gSW50U2l6ZShzbmFwU2l6ZVRvUGl4ZWwocy53aWR0aCgpLCBwLngo
KSksIHNuYXBTaXplVG9QaXhlbChzLmhlaWdodCgpLCBwLnkoKSkpOworfQorCit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9GcmFj
dGlvbmFsTGF5b3V0U2l6ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0ZyYWN0aW9uYWxMYXlvdXRTaXplLmgJKHJldmlzaW9uIDApCisrKyBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9GcmFjdGlvbmFsTGF5b3V0U2l6ZS5oCShyZXZpc2lv
biAwKQpAQCAtMCwwICsxLDE1MyBAQAorLyoKKyAqIENvcHlyaWdodCAoYykgMjAxMiwgR29vZ2xl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICog
Y29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhl
ciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJp
YnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVk
IGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBl
cm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJ
R0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8s
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQor
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIEZyYWN0aW9uYWxMYXlvdXRTaXplX2gKKyNk
ZWZpbmUgRnJhY3Rpb25hbExheW91dFNpemVfaAorCisjaW5jbHVkZSAiRmxvYXRTaXplLmgiCisj
aW5jbHVkZSAiRnJhY3Rpb25hbExheW91dFVuaXQuaCIKKyNpbmNsdWRlICJJbnRTaXplLmgiCisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRnJhY3Rpb25hbExheW91dFBvaW50OworCitj
bGFzcyBGcmFjdGlvbmFsTGF5b3V0U2l6ZSB7CitwdWJsaWM6CisgICAgRnJhY3Rpb25hbExheW91
dFNpemUoKSA6IG1fd2lkdGgoMCksIG1faGVpZ2h0KDApIHsgfQorICAgIEZyYWN0aW9uYWxMYXlv
dXRTaXplKGNvbnN0IEludFNpemUmIHNpemUpIDogbV93aWR0aChzaXplLndpZHRoKCkpLCBtX2hl
aWdodChzaXplLmhlaWdodCgpKSB7IH0KKyAgICBGcmFjdGlvbmFsTGF5b3V0U2l6ZShGcmFjdGlv
bmFsTGF5b3V0VW5pdCB3aWR0aCwgRnJhY3Rpb25hbExheW91dFVuaXQgaGVpZ2h0KSA6IG1fd2lk
dGgod2lkdGgpLCBtX2hlaWdodChoZWlnaHQpIHsgfQorCisgICAgZXhwbGljaXQgRnJhY3Rpb25h
bExheW91dFNpemUoY29uc3QgRmxvYXRTaXplJiBzaXplKSA6IG1fd2lkdGgoc2l6ZS53aWR0aCgp
KSwgbV9oZWlnaHQoc2l6ZS5oZWlnaHQoKSkgeyB9CisgICAgCisgICAgRnJhY3Rpb25hbExheW91
dFVuaXQgd2lkdGgoKSBjb25zdCB7IHJldHVybiBtX3dpZHRoOyB9CisgICAgRnJhY3Rpb25hbExh
eW91dFVuaXQgaGVpZ2h0KCkgY29uc3QgeyByZXR1cm4gbV9oZWlnaHQ7IH0KKworICAgIHZvaWQg
c2V0V2lkdGgoRnJhY3Rpb25hbExheW91dFVuaXQgd2lkdGgpIHsgbV93aWR0aCA9IHdpZHRoOyB9
CisgICAgdm9pZCBzZXRIZWlnaHQoRnJhY3Rpb25hbExheW91dFVuaXQgaGVpZ2h0KSB7IG1faGVp
Z2h0ID0gaGVpZ2h0OyB9CisKKyAgICBib29sIGlzRW1wdHkoKSBjb25zdCB7IHJldHVybiBtX3dp
ZHRoIDw9IDAgfHwgbV9oZWlnaHQgPD0gMDsgfQorICAgIGJvb2wgaXNaZXJvKCkgY29uc3QgeyBy
ZXR1cm4gIW1fd2lkdGggJiYgIW1faGVpZ2h0OyB9CisKKyAgICBmbG9hdCBhc3BlY3RSYXRpbygp
IGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PGZsb2F0PihtX3dpZHRoKSAvIHN0YXRpY19jYXN0
PGZsb2F0PihtX2hlaWdodCk7IH0KKyAgICAKKyAgICB2b2lkIGV4cGFuZChGcmFjdGlvbmFsTGF5
b3V0VW5pdCB3aWR0aCwgRnJhY3Rpb25hbExheW91dFVuaXQgaGVpZ2h0KQorICAgIHsKKyAgICAg
ICAgbV93aWR0aCArPSB3aWR0aDsKKyAgICAgICAgbV9oZWlnaHQgKz0gaGVpZ2h0OworICAgIH0K
KyAgICAKKyAgICB2b2lkIHNjYWxlKGZsb2F0IHNjYWxlKQorICAgIHsKKyAgICAgICAgbV93aWR0
aCA9IHN0YXRpY19jYXN0PGludD4oc3RhdGljX2Nhc3Q8ZmxvYXQ+KG1fd2lkdGgpICogc2NhbGUp
OworICAgICAgICBtX2hlaWdodCA9IHN0YXRpY19jYXN0PGludD4oc3RhdGljX2Nhc3Q8ZmxvYXQ+
KG1faGVpZ2h0KSAqIHNjYWxlKTsKKyAgICB9CisgICAgCisgICAgRnJhY3Rpb25hbExheW91dFNp
emUgZXhwYW5kZWRUbyhjb25zdCBGcmFjdGlvbmFsTGF5b3V0U2l6ZSYgb3RoZXIpIGNvbnN0Cisg
ICAgeworICAgICAgICByZXR1cm4gRnJhY3Rpb25hbExheW91dFNpemUobV93aWR0aCA+IG90aGVy
Lm1fd2lkdGggPyBtX3dpZHRoIDogb3RoZXIubV93aWR0aCwKKyAgICAgICAgICAgIG1faGVpZ2h0
ID4gb3RoZXIubV9oZWlnaHQgPyBtX2hlaWdodCA6IG90aGVyLm1faGVpZ2h0KTsKKyAgICB9CisK
KyAgICBGcmFjdGlvbmFsTGF5b3V0U2l6ZSBzaHJ1bmtUbyhjb25zdCBGcmFjdGlvbmFsTGF5b3V0
U2l6ZSYgb3RoZXIpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gRnJhY3Rpb25hbExheW91
dFNpemUobV93aWR0aCA8IG90aGVyLm1fd2lkdGggPyBtX3dpZHRoIDogb3RoZXIubV93aWR0aCwK
KyAgICAgICAgICAgIG1faGVpZ2h0IDwgb3RoZXIubV9oZWlnaHQgPyBtX2hlaWdodCA6IG90aGVy
Lm1faGVpZ2h0KTsKKyAgICB9CisKKyAgICB2b2lkIGNsYW1wTmVnYXRpdmVUb1plcm8oKQorICAg
IHsKKyAgICAgICAgKnRoaXMgPSBleHBhbmRlZFRvKEZyYWN0aW9uYWxMYXlvdXRTaXplKCkpOwor
ICAgIH0KKworICAgIEZyYWN0aW9uYWxMYXlvdXRTaXplIHRyYW5zcG9zZWRTaXplKCkgY29uc3QK
KyAgICB7CisgICAgICAgIHJldHVybiBGcmFjdGlvbmFsTGF5b3V0U2l6ZShtX2hlaWdodCwgbV93
aWR0aCk7CisgICAgfQorCitwcml2YXRlOgorICAgIEZyYWN0aW9uYWxMYXlvdXRVbml0IG1fd2lk
dGgsIG1faGVpZ2h0OworfTsKKworaW5saW5lIEZyYWN0aW9uYWxMYXlvdXRTaXplJiBvcGVyYXRv
cis9KEZyYWN0aW9uYWxMYXlvdXRTaXplJiBhLCBjb25zdCBGcmFjdGlvbmFsTGF5b3V0U2l6ZSYg
YikKK3sKKyAgICBhLnNldFdpZHRoKGEud2lkdGgoKSArIGIud2lkdGgoKSk7CisgICAgYS5zZXRI
ZWlnaHQoYS5oZWlnaHQoKSArIGIuaGVpZ2h0KCkpOworICAgIHJldHVybiBhOworfQorCitpbmxp
bmUgRnJhY3Rpb25hbExheW91dFNpemUmIG9wZXJhdG9yLT0oRnJhY3Rpb25hbExheW91dFNpemUm
IGEsIGNvbnN0IEZyYWN0aW9uYWxMYXlvdXRTaXplJiBiKQoreworICAgIGEuc2V0V2lkdGgoYS53
aWR0aCgpIC0gYi53aWR0aCgpKTsKKyAgICBhLnNldEhlaWdodChhLmhlaWdodCgpIC0gYi5oZWln
aHQoKSk7CisgICAgcmV0dXJuIGE7Cit9CisKK2lubGluZSBGcmFjdGlvbmFsTGF5b3V0U2l6ZSBv
cGVyYXRvcisoY29uc3QgRnJhY3Rpb25hbExheW91dFNpemUmIGEsIGNvbnN0IEZyYWN0aW9uYWxM
YXlvdXRTaXplJiBiKQoreworICAgIHJldHVybiBGcmFjdGlvbmFsTGF5b3V0U2l6ZShhLndpZHRo
KCkgKyBiLndpZHRoKCksIGEuaGVpZ2h0KCkgKyBiLmhlaWdodCgpKTsKK30KKworaW5saW5lIEZy
YWN0aW9uYWxMYXlvdXRTaXplIG9wZXJhdG9yLShjb25zdCBGcmFjdGlvbmFsTGF5b3V0U2l6ZSYg
YSwgY29uc3QgRnJhY3Rpb25hbExheW91dFNpemUmIGIpCit7CisgICAgcmV0dXJuIEZyYWN0aW9u
YWxMYXlvdXRTaXplKGEud2lkdGgoKSAtIGIud2lkdGgoKSwgYS5oZWlnaHQoKSAtIGIuaGVpZ2h0
KCkpOworfQorCitpbmxpbmUgRnJhY3Rpb25hbExheW91dFNpemUgb3BlcmF0b3ItKGNvbnN0IEZy
YWN0aW9uYWxMYXlvdXRTaXplJiBzaXplKQoreworICAgIHJldHVybiBGcmFjdGlvbmFsTGF5b3V0
U2l6ZSgtc2l6ZS53aWR0aCgpLCAtc2l6ZS5oZWlnaHQoKSk7Cit9CisKK2lubGluZSBib29sIG9w
ZXJhdG9yPT0oY29uc3QgRnJhY3Rpb25hbExheW91dFNpemUmIGEsIGNvbnN0IEZyYWN0aW9uYWxM
YXlvdXRTaXplJiBiKQoreworICAgIHJldHVybiBhLndpZHRoKCkgPT0gYi53aWR0aCgpICYmIGEu
aGVpZ2h0KCkgPT0gYi5oZWlnaHQoKTsKK30KKworaW5saW5lIGJvb2wgb3BlcmF0b3IhPShjb25z
dCBGcmFjdGlvbmFsTGF5b3V0U2l6ZSYgYSwgY29uc3QgRnJhY3Rpb25hbExheW91dFNpemUmIGIp
Cit7CisgICAgcmV0dXJuIGEud2lkdGgoKSAhPSBiLndpZHRoKCkgfHwgYS5oZWlnaHQoKSAhPSBi
LmhlaWdodCgpOworfQorCitpbmxpbmUgSW50U2l6ZSBmbG9vcmVkSW50U2l6ZShjb25zdCBGcmFj
dGlvbmFsTGF5b3V0U2l6ZSYgcykKK3sKKyAgICByZXR1cm4gSW50U2l6ZShzLndpZHRoKCkudG9J
bnQoKSwgcy5oZWlnaHQoKS50b0ludCgpKTsKK30KKworaW5saW5lIEludFNpemUgcm91bmRlZElu
dFNpemUoY29uc3QgRnJhY3Rpb25hbExheW91dFNpemUmIHMpCit7CisgICAgcmV0dXJuIEludFNp
emUocy53aWR0aCgpLnJvdW5kKCksIHMuaGVpZ2h0KCkucm91bmQoKSk7Cit9CisKKy8vIEZJWE1F
OiBDaGFuZ2UgdGhpcyBtZXRob2QgdG8gdGFrZSBhIEZyYWN0aW9uYWxMYXlvdXRQb2ludCBvbmNl
IHRoYXQgY2xhc3MgaGFzIGJlZW4gYWRkZWQuCitJbnRTaXplIHBpeGVsU25hcHBlZEludFNpemUo
Y29uc3QgRnJhY3Rpb25hbExheW91dFNpemUmLCBjb25zdCBJbnRQb2ludCYpOworCit9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBGcmFjdGlvbmFsTGF5b3V0U2l6ZV9oCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>