<?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>141014</bug_id>
          
          <creation_ts>2015-01-28 15:23:37 -0800</creation_ts>
          <short_desc>Remove more Mountain Lion code from WebCore</short_desc>
          <delta_ts>2015-01-29 13:58:40 -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>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Beth Dakin">bdakin</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>andersca</cc>
    
    <cc>ap</cc>
    
    <cc>bdakin</cc>
    
    <cc>mitz</cc>
    
    <cc>sam</cc>
    
    <cc>thorton</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1065044</commentid>
    <comment_count>0</comment_count>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2015-01-28 15:23:37 -0800</bug_when>
    <thetext>Remove more Mountain Lion code from WebCore</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1065046</commentid>
    <comment_count>1</comment_count>
      <attachid>245572</attachid>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2015-01-28 15:25:13 -0800</bug_when>
    <thetext>Created attachment 245572
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1065063</commentid>
    <comment_count>2</comment_count>
      <attachid>245572</attachid>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2015-01-28 16:30:12 -0800</bug_when>
    <thetext>Comment on attachment 245572
Patch

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

&gt; Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:-2019
&gt; -#else

I think we need this #else!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1065066</commentid>
    <comment_count>3</comment_count>
      <attachid>245572</attachid>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2015-01-28 16:31:40 -0800</bug_when>
    <thetext>Comment on attachment 245572
Patch

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

&gt;&gt; Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:-2019
&gt;&gt; -#else
&gt; 
&gt; I think we need this #else!

No, false alarm. Just the fide being dumb.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1065075</commentid>
    <comment_count>4</comment_count>
      <attachid>245581</attachid>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2015-01-28 16:46:22 -0800</bug_when>
    <thetext>Created attachment 245581
Patch

Patch that uses more COCOA.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1065080</commentid>
    <comment_count>5</comment_count>
      <attachid>245581</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2015-01-28 16:52:54 -0800</bug_when>
    <thetext>Comment on attachment 245581
Patch

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

&gt; Source/WebCore/crypto/CommonCryptoUtilities.h:41
&gt; +#if defined(__has_include) &amp;&amp; (PLATFORM(COCOA))

Can remove the () outside PLATFORM(COCOA)

&gt; Source/WebCore/editing/cocoa/HTMLConverter.mm:1725
&gt; +#if (PLATFORM(IOS) &amp;&amp; __IPHONE_OS_VERSION_MIN_REQUIRED &gt;= 80000) || PLATFORM(MAC)

This can also be PLATFORM(COCOA) - actually I think this is always going to be true inside HTMLConverter.mm!

&gt; Source/WebCore/loader/cocoa/DiskCacheMonitorCocoa.mm:44
&gt; -#if (PLATFORM(IOS) &amp;&amp; __IPHONE_OS_VERSION_MIN_REQUIRED &gt;= 80000) || (PLATFORM(MAC) &amp;&amp; __MAC_OS_X_VERSION_MIN_REQUIRED &gt;= 1090)
&gt; +#if (PLATFORM(IOS) &amp;&amp; __IPHONE_OS_VERSION_MIN_REQUIRED &gt;= 80000) || PLATFORM(MAC)

Can just remove the #if.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1065335</commentid>
    <comment_count>6</comment_count>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2015-01-29 13:58:40 -0800</bug_when>
    <thetext>Thank you! http://trac.webkit.org/changeset/179364</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>245572</attachid>
            <date>2015-01-28 15:25:13 -0800</date>
            <delta_ts>2015-01-28 16:46:22 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>for-review.txt</filename>
            <type>text/plain</type>
            <size>33749</size>
            <attacher name="Beth Dakin">bdakin</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE3OTMwOCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDY0IEBACisyMDE1LTAxLTI4ICBCZXRoIERh
a2luICA8YmRha2luQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmUgbW9yZSBNb3VudGFpbiBM
aW9uIGNvZGUgZnJvbSBXZWJDb3JlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNDEwMTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIFdlYkNvcmUuZXhwLmluOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkv
bWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLm1tOgorICAgICAgICAoQVhBdHRy
aWJ1dGVTdHJpbmdTZXRTcGVsbGluZyk6CisgICAgICAgIChBWEF0dHJpYnV0ZWRTdHJpbmdBcHBl
bmRUZXh0KToKKyAgICAgICAgKiBjcnlwdG8vQ29tbW9uQ3J5cHRvVXRpbGl0aWVzLmg6CisgICAg
ICAgICogY3J5cHRvL21hYy9DcnlwdG9BbGdvcml0aG1BRVNfQ0JDTWFjLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OnRyYW5zZm9ybUFFU19DQkMpOgorICAgICAgICAqIGVkaXRpbmcvY29jb2EvSFRN
TENvbnZlcnRlci5tbToKKyAgICAgICAgKF9kYXRlRm9yU3RyaW5nKToKKyAgICAgICAgKiBodG1s
L2NhbnZhcy9BTkdMRUluc3RhbmNlZEFycmF5cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBTkdM
RUluc3RhbmNlZEFycmF5czo6c3VwcG9ydGVkKToKKyAgICAgICAgKiBsb2FkZXIvY29jb2EvRGlz
a0NhY2hlTW9uaXRvckNvY29hLm1tOgorICAgICAgICAqIHBhZ2UvbWFjL1NldHRpbmdzTWFjLm1t
OgorICAgICAgICAoV2ViQ29yZTo6U2V0dGluZ3M6OnNob3VsZEVuYWJsZVNjcmVlbkZvbnRTdWJz
dGl0dXRpb25CeURlZmF1bHQpOgorICAgICAgICAoV2ViQ29yZTo6U2V0dGluZ3M6OmluaXRpYWxp
emVEZWZhdWx0Rm9udEZhbWlsaWVzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9tYWMvTWVk
aWFTZXNzaW9uTWFuYWdlck1hYy5jcHA6CisgICAgICAgIChNZWRpYVNlc3Npb25NYW5hZ2VyOjp1
cGRhdGVTZXNzaW9uU3RhdGUpOgorICAgICAgICAqIHBsYXRmb3JtL2NvY29hL01lbW9yeVByZXNz
dXJlSGFuZGxlckNvY29hLm1tOgorICAgICAgICAoV2ViQ29yZTo6TWVtb3J5UHJlc3N1cmVIYW5k
bGVyOjppbnN0YWxsKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lbW9yeVByZXNzdXJlSGFuZGxlcjo6
UmVsaWVmTG9nZ2VyOjpwbGF0Zm9ybUxvZyk6CisgICAgICAgIChXZWJDb3JlOjpNZW1vcnlQcmVz
c3VyZUhhbmRsZXI6OlJlbGllZkxvZ2dlcjo6cGxhdGZvcm1NZW1vcnlVc2FnZSk6IERlbGV0ZWQu
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0FWVHJhY2tQcml2YXRl
QVZGT2JqQ0ltcGwubW06CisgICAgICAgIChXZWJDb3JlOjpBVlRyYWNrUHJpdmF0ZUFWRk9iakNJ
bXBsOjpsYW5ndWFnZUZvckFWTWVkaWFTZWxlY3Rpb25PcHRpb24pOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETVNlc3Npb25BVkZvdW5kYXRpb25PYmpD
Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNU2Vz
c2lvbkFWRm91bmRhdGlvbk9iakMubW06CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbToKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmNyZWF0
ZVZpZGVvTGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uT2JqQzo6Y3JlYXRlVmlkZW9PdXRwdXQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2NvY29hL0lPU3VyZmFjZS5tbToKKyAgICAgICAgKElPU3VyZmFjZTo6c3RhdGUpOgorICAg
ICAgICAoSU9TdXJmYWNlOjppc1ZvbGF0aWxlKToKKyAgICAgICAgKElPU3VyZmFjZTo6c2V0SXNW
b2xhdGlsZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL1NpbXBsZUZvbnREYXRh
TWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6Rm9udDo6cGxhdGZvcm1Jbml0KToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uczNET3BlbkdMLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkV4dGVuc2lvbnMzRE9wZW5HTDo6ZHJhd0FycmF5c0luc3RhbmNlZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpFeHRlbnNpb25zM0RPcGVuR0w6OmRyYXdFbGVtZW50c0luc3RhbmNl
ZCk6CisgICAgICAgIChXZWJDb3JlOjpFeHRlbnNpb25zM0RPcGVuR0w6OnZlcnRleEF0dHJpYkRp
dmlzb3IpOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9XZWJDb3JlU3lzdGVtSW50ZXJmYWNlLmg6
CisgICAgICAgICogcGxhdGZvcm0vbWFjL1dlYkNvcmVTeXN0ZW1JbnRlcmZhY2UubW06CisgICAg
ICAgICogcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUhhbmRsZUNGTmV0LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpjcmVhdGVDRlVSTENvbm5lY3Rpb24pOgorICAg
ICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY29jb2EvUHJvdGVjdGlvblNwYWNlQ29jb2EuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OlByb3RlY3Rpb25TcGFjZTo6ZW5jb2RpbmdSZXF1aXJlc1BsYXRmb3Jt
RGF0YSk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jb2NvYS9Qcm90ZWN0aW9uU3BhY2VD
b2NvYS5tbToKKyAgICAgICAgKFdlYkNvcmU6OlByb3RlY3Rpb25TcGFjZTo6ZW5jb2RpbmdSZXF1
aXJlc1BsYXRmb3JtRGF0YSk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9tYWMvUmVzb3Vy
Y2VIYW5kbGVNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6Y3JlYXRl
TlNVUkxDb25uZWN0aW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL21hYy9XZWJDb3Jl
VVJMUmVzcG9uc2UubW06CisgICAgICAgIChXZWJDb3JlOjpzeW50aGVzaXplUmVkaXJlY3RSZXNw
b25zZUlmTmVjZXNzYXJ5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9zcGkvY2YvQ0ZOZXR3b3JrU1BJ
Lmg6CisgICAgICAgICogcGxhdGZvcm0vdGV4dC9tYWMvTG9jYWxlTWFjLm1tOgorICAgICAgICAo
V2ViQ29yZTo6TG9jYWxlTWFjOjpMb2NhbGVNYWMpOgorCiAyMDE1LTAxLTI4ICBDaHJpcyBEdW1l
eiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgUmVncmVzc2lvbihyMTc3NDk0KTogQmFk
IGNhc3QgdG8gV2ViS2l0Q1NTUmVzb3VyY2VWYWx1ZSBpbiBTdHlsZUJ1aWxkZXJDb252ZXJ0ZXI6
OmNvbnZlcnRNYXNrSW1hZ2VPcGVyYXRpb25zKCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNv
cmUuZXhwLmluCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCShy
ZXZpc2lvbiAxNzkyODMpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgkod29ya2lu
ZyBjb3B5KQpAQCAtNjM2LDYgKzYzNiw3IEBAIF9fWk43V2ViQ29yZTE1UGxhdGZvcm1DQUxheWVy
MTVwbGF0Zm9ybUMKIF9fWk43V2ViQ29yZTE1UGxhdGZvcm1DQUxheWVyMTdkcmF3TGF5ZXJDb250
ZW50c0VQOUNHQ29udGV4dFBTMF9STjNXVEY2VmVjdG9ySU5TXzlGbG9hdFJlY3RFTG01RU5TNF8x
NUNyYXNoT25PdmVyZmxvd0VFRQogX19aTjdXZWJDb3JlMTVQbGF0Zm9ybUNBTGF5ZXJDMkVOUzBf
OUxheWVyVHlwZUVQTlNfMjFQbGF0Zm9ybUNBTGF5ZXJDbGllbnRFCiBfX1pON1dlYkNvcmUxNVBs
YXRmb3JtQ0FMYXllckQyRXYKK19fWk43V2ViQ29yZTE1UHJvdGVjdGlvblNwYWNlMjhlbmNvZGlu
Z1JlcXVpcmVzUGxhdGZvcm1EYXRhRVAyME5TVVJMUHJvdGVjdGlvblNwYWNlCiBfX1pON1dlYkNv
cmUxNVByb3RlY3Rpb25TcGFjZUMxRVAyME5TVVJMUHJvdGVjdGlvblNwYWNlCiBfX1pON1dlYkNv
cmUxNVJlc291cmNlUmVxdWVzdDIxaHR0cFBpcGVsaW5pbmdFbmFibGVkRXYKIF9fWk43V2ViQ29y
ZTE1UmVzb3VyY2VSZXF1ZXN0MjRzZXRIVFRQUGlwZWxpbmluZ0VuYWJsZWRFYgpAQCAtNzAwLDYg
KzcwMSw3IEBAIF9fWk43V2ViQ29yZTE2RGF0YWJhc2VQcm92aWRlckQyRXYKIF9fWk43V2ViQ29y
ZTE2RGV2aWNlTW90aW9uRGF0YTEyQWNjZWxlcmF0aW9uNmNyZWF0ZUViZGJkYmQKIF9fWk43V2Vi
Q29yZTE2RGV2aWNlTW90aW9uRGF0YTEyUm90YXRpb25SYXRlNmNyZWF0ZUViZGJkYmQKIF9fWk43
V2ViQ29yZTE2RGV2aWNlTW90aW9uRGF0YTZjcmVhdGVFTjNXVEYxMFBhc3NSZWZQdHJJTlMwXzEy
QWNjZWxlcmF0aW9uRUVFUzRfTlMyX0lOUzBfMTJSb3RhdGlvblJhdGVFRUViZAorX19aTjdXZWJD
b3JlMTZEaXNrQ2FjaGVNb25pdG9yQzJFUktOU18xNVJlc291cmNlUmVxdWVzdEVOU185U2Vzc2lv
bklERVBLMjBfQ0ZDYWNoZWRVUkxSZXNwb25zZQogX19aTjdXZWJDb3JlMTZGaWx0ZXJPcGVyYXRp
b25zQzFFdgogX19aTjdXZWJDb3JlMTZGaWx0ZXJPcGVyYXRpb25zYVNFUktTMF8KIF9fWk43V2Vi
Q29yZTE2RmxvYXRSb3VuZGVkUmVjdEMxRVJLTlNfOUZsb2F0UmVjdEVSS05TMF81UmFkaWlFCkBA
IC0xMDY3LDYgKzEwNjksNyBAQCBfX1pON1dlYkNvcmUyM2VuY29kZUhvc3ROYW1lV2l0aFJhbmdl
RVA4CiBfX1pON1dlYkNvcmUyM2dldEZpbGVNb2RpZmljYXRpb25UaW1lRVJLTjNXVEY2U3RyaW5n
RVJsCiBfX1pON1dlYkNvcmUyM2dldEhvc3RuYW1lc1dpdGhDb29raWVzRVJLTlNfMjFOZXR3b3Jr
U3RvcmFnZVNlc3Npb25FUk4zV1RGN0hhc2hTZXRJTlMzXzZTdHJpbmdFTlMzXzEwU3RyaW5nSGFz
aEVOUzNfMTBIYXNoVHJhaXRzSVM1X0VFRUUKIF9fWk43V2ViQ29yZTIzdG9DQU1lZGlhVGltaW5n
RnVuY3Rpb25FUEtOU18xNFRpbWluZ0Z1bmN0aW9uRWIKK19fWk43V2ViQ29yZTIzd3JhcFNlcmlh
bGl6ZWRDcnlwdG9LZXlFUktOM1dURjZWZWN0b3JJaExtMEVOUzBfMTVDcmFzaE9uT3ZlcmZsb3dF
RUVTNV9SUzNfCiBfX1pON1dlYkNvcmUyNENhY2hlZFJlc291cmNlSGFuZGxlQmFzZTExc2V0UmVz
b3VyY2VFUE5TXzE0Q2FjaGVkUmVzb3VyY2VFCiBfX1pON1dlYkNvcmUyNERvY3VtZW50TWFya2Vy
Q29udHJvbGxlcjEwbWFya2Vyc0ZvckVQTlNfNE5vZGVFTlNfMTREb2N1bWVudE1hcmtlcjExTWFy
a2VyVHlwZXNFCiBfX1pON1dlYkNvcmUyNERvY3VtZW50TWFya2VyQ29udHJvbGxlcjEzcmVtb3Zl
TWFya2Vyc0VOU18xNERvY3VtZW50TWFya2VyMTFNYXJrZXJUeXBlc0UKQEAgLTEwOTQsNiArMTA5
Nyw3IEBAIF9fWk43V2ViQ29yZTI1Y29tcHV0ZVZpZXdwb3J0QXR0cmlidXRlc0UKIF9fWk43V2Vi
Q29yZTI1Y3JlYXRlQ2Fub25pY2FsVVVJRFN0cmluZ0V2CiBfX1pON1dlYkNvcmUyNWRpcmVjdGlv
bk9mRW5jbG9zaW5nQmxvY2tFUktOU184UG9zaXRpb25FCiBfX1pON1dlYkNvcmUyNWdldE91dE9m
TGluZUNhY2hlZFdyYXBwZXJFUE5TXzE3SlNET01HbG9iYWxPYmplY3RFUE5TXzROb2RlRQorX19a
TjdXZWJDb3JlMjV1bndyYXBTZXJpYWxpemVkQ3J5cHRvS2V5RVJLTjNXVEY2VmVjdG9ySWhMbTBF
TlMwXzE1Q3Jhc2hPbk92ZXJmbG93RUVFUzVfUlMzXwogX19aTjdXZWJDb3JlMjV1cGRhdGVSZWRp
cmVjdENoYWluU3RhdHVzRVJOU18yNFJlZGlyZWN0Q2hhaW5DYWNoZVN0YXR1c0VSS05TXzE2UmVz
b3VyY2VSZXNwb25zZUUKIF9fWk43V2ViQ29yZTI2Q29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIx
NmNvbnRleHREZXN0cm95ZWRFdgogX19aTjdXZWJDb3JlMjZDb250ZXh0RGVzdHJ1Y3Rpb25PYnNl
cnZlckMyRVBOU18yMlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRFCkBAIC0xMTQ5LDYgKzExNTMsNyBA
QCBfX1pON1dlYkNvcmUyOEluc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jCiBfX1pON1dlYkNvcmUy
OFVzZXJNZXNzYWdlSGFuZGxlckRlc2NyaXB0b3JDMUVSS04zV1RGMTJBdG9taWNTdHJpbmdFUk5T
XzE1RE9NV3JhcHBlcldvcmxkRVJOUzBfNkNsaWVudEUKIF9fWk43V2ViQ29yZTI4VXNlck1lc3Nh
Z2VIYW5kbGVyRGVzY3JpcHRvckQxRXYKIF9fWk43V2ViQ29yZTI4ZW5jb2RlV2l0aFVSTEVzY2Fw
ZVNlcXVlbmNlc0VSS04zV1RGNlN0cmluZ0UKK19fWk43V2ViQ29yZTI4Z2V0RGVmYXVsdFdlYkNy
eXB0b01hc3RlcktleUVSTjNXVEY2VmVjdG9ySWhMbTBFTlMwXzE1Q3Jhc2hPbk92ZXJmbG93RUVF
CiBfX1pON1dlYkNvcmUyOHJlbW92ZUxhbmd1YWdlQ2hhbmdlT2JzZXJ2ZXJFUHYKIF9fWk43V2Vi
Q29yZTI4dGhyb3dBcmd1bWVudE11c3RCZUVudW1FcnJvckVSTjNKU0M5RXhlY1N0YXRlRWpQS2NT
NF9TNF9TNF8KIF9fWk43V2ViQ29yZTI5Y29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWVFUktO
U18yMU5ldHdvcmtTdG9yYWdlU2Vzc2lvbkVSS05TXzNVUkxFUzVfCkBAIC0yMTc5LDYgKzIxODQs
NyBAQCBfX1pUVk43V2ViQ29yZTE0U3RhdGljTm9kZUxpc3RFCiBfX1pUVk43V2ViQ29yZTE1UGxh
dGZvcm1DQUxheWVyRQogX19aVFZON1dlYkNvcmUxNkJsb2JSZWdpc3RyeUltcGxFCiBfX1pUVk43
V2ViQ29yZTE2RGF0YWJhc2VQcm92aWRlckUKK19fWlRWTjdXZWJDb3JlMTZEaXNrQ2FjaGVNb25p
dG9yRQogX19aVFZON1dlYkNvcmUxNkljb25EYXRhYmFzZUJhc2VFCiBfX1pUVk43V2ViQ29yZTE3
RnJhbWVMb2FkZXJDbGllbnRFCiBfX1pUVk43V2ViQ29yZTE3UGFnZUNvbnNvbGVDbGllbnRFCkBA
IC0yNTA1LDYgKzI1MTEsNyBAQCBfd2tDcmVhdGVBWFRleHRNYXJrZXJSYW5nZQogX3drQ3JlYXRl
QVhVSUVsZW1lbnRSZWYKIF93a0NyZWF0ZU1lZGlhVUlCYWNrZ3JvdW5kVmlldwogX3drQ3JlYXRl
TWVkaWFVSUNvbnRyb2wKK193a0NyZWF0ZU1lbW9yeVN0YXR1c1ByZXNzdXJlQ3JpdGljYWxEaXNw
YXRjaE9uTWFpblF1ZXVlCiBfd2tDcmVhdGVVUkxOUGFzdGVib2FyZEZsYXZvclR5cGVOYW1lCiBf
d2tDcmVhdGVVUkxQYXN0ZWJvYXJkRmxhdm9yVHlwZU5hbWUKIF93a0NyZWF0ZVZNUHJlc3N1cmVE
aXNwYXRjaE9uTWFpblF1ZXVlCkBAIC0yNTY5LDEwICsyNTc2LDYgQEAgX19aTjdXZWJDb3JlMzJz
aG91bGRSZWdpc3Rlckluc2VydGlvblVuZAogX19aTjdXZWJDb3JlNDRyZWdpc3Rlckluc2VydGlv
blVuZG9Hcm91cGluZ1dpdGhVbmRvTWFuYWdlckVQMTNOU1VuZG9NYW5hZ2VyCiAjZW5kaWYKIAot
I2lmIFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAx
MDkwCi1fd2tDcmVhdGVNZW1vcnlTdGF0dXNQcmVzc3VyZUNyaXRpY2FsRGlzcGF0Y2hPbk1haW5R
dWV1ZQotI2VuZGlmCi0KICNpZiBQTEFURk9STShJT1MpCiAub2JqY19jbGFzc19uYW1lX05TQ3Vy
c29yCiAub2JqY19jbGFzc19uYW1lX1dBS0NsaXBWaWV3CkBAIC0yOTI5LDE1ICsyOTMyLDYgQEAg
X3drU2V0TGF5ZXJDb250ZW50c1NjYWxlCiBfX1pON1dlYkNvcmUyMFJlc291cmNlSGFuZGxlQ2xp
ZW50MjJ3aWxsQ2FjaGVSZXNwb25zZUFzeW5jRVBOU18xNFJlc291cmNlSGFuZGxlRVBLMjBfQ0ZD
YWNoZWRVUkxSZXNwb25zZQogI2VuZGlmCiAKLSNpZiBQTEFURk9STShJT1MpIHx8IF9fTUFDX09T
X1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA5MAotX19aTjdXZWJDb3JlMTVQcm90ZWN0aW9u
U3BhY2UyOGVuY29kaW5nUmVxdWlyZXNQbGF0Zm9ybURhdGFFUDIwTlNVUkxQcm90ZWN0aW9uU3Bh
Y2UKLV9fWk43V2ViQ29yZTE2RGlza0NhY2hlTW9uaXRvckMyRVJLTlNfMTVSZXNvdXJjZVJlcXVl
c3RFTlNfOVNlc3Npb25JREVQSzIwX0NGQ2FjaGVkVVJMUmVzcG9uc2UKLV9fWk43V2ViQ29yZTIz
d3JhcFNlcmlhbGl6ZWRDcnlwdG9LZXlFUktOM1dURjZWZWN0b3JJaExtMEVOUzBfMTVDcmFzaE9u
T3ZlcmZsb3dFRUVTNV9SUzNfCi1fX1pON1dlYkNvcmUyNXVud3JhcFNlcmlhbGl6ZWRDcnlwdG9L
ZXlFUktOM1dURjZWZWN0b3JJaExtMEVOUzBfMTVDcmFzaE9uT3ZlcmZsb3dFRUVTNV9SUzNfCi1f
X1pON1dlYkNvcmUyOGdldERlZmF1bHRXZWJDcnlwdG9NYXN0ZXJLZXlFUk4zV1RGNlZlY3Rvcklo
TG0wRU5TMF8xNUNyYXNoT25PdmVyZmxvd0VFRQotX19aVFZON1dlYkNvcmUxNkRpc2tDYWNoZU1v
bml0b3JFCi0jZW5kaWYKLQogI2lmIEVOQUJMRSgzRF9SRU5ERVJJTkcpCiBfV2ViQ29yZUhhczNE
UmVuZGVyaW5nCiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFj
L1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLm1tCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVy
TWFjLm1tCShyZXZpc2lvbiAxNzkyNzQpCisrKyBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbQkod29ya2luZyBjb3B5KQpA
QCAtOTM0LDcgKzkzNCw3IEBAIHN0YXRpYyB2b2lkIEFYQXR0cmlidXRlU3RyaW5nU2V0U3BlbGxp
bmcKICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHNpemU7IGkrKykgewogICAgICAg
ICAgICAgY29uc3QgVGV4dENoZWNraW5nUmVzdWx0JiByZXN1bHQgPSByZXN1bHRzW2ldOwogICAg
ICAgICAgICAgQVhBdHRyaWJ1dGVTdHJpbmdTZXROdW1iZXIoYXR0clN0cmluZywgTlNBY2Nlc3Np
YmlsaXR5TWlzc3BlbGxlZFRleHRBdHRyaWJ1dGUsIHRydWVWYWx1ZSwgTlNNYWtlUmFuZ2UocmVz
dWx0LmxvY2F0aW9uICsgcmFuZ2UubG9jYXRpb24sIHJlc3VsdC5sZW5ndGgpKTsKLSNpZiBQTEFU
Rk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA5MAorI2lm
IFBMQVRGT1JNKE1BQykKICAgICAgICAgICAgIEFYQXR0cmlidXRlU3RyaW5nU2V0TnVtYmVyKGF0
dHJTdHJpbmcsIE5TQWNjZXNzaWJpbGl0eU1hcmtlZE1pc3NwZWxsZWRUZXh0QXR0cmlidXRlLCB0
cnVlVmFsdWUsIE5TTWFrZVJhbmdlKHJlc3VsdC5sb2NhdGlvbiArIHJhbmdlLmxvY2F0aW9uLCBy
ZXN1bHQubGVuZ3RoKSk7CiAjZW5kaWYKICAgICAgICAgfQpAQCAtOTUwLDcgKzk1MCw3IEBAIHN0
YXRpYyB2b2lkIEFYQXR0cmlidXRlU3RyaW5nU2V0U3BlbGxpbmcKICAgICAgICAgCiAgICAgICAg
IE5TUmFuZ2Ugc3BlbGxSYW5nZSA9IE5TTWFrZVJhbmdlKHJhbmdlLmxvY2F0aW9uICsgY3VycmVu
dFBvc2l0aW9uICsgbWlzc3BlbGxpbmdMb2NhdGlvbiwgbWlzc3BlbGxpbmdMZW5ndGgpOwogICAg
ICAgICBBWEF0dHJpYnV0ZVN0cmluZ1NldE51bWJlcihhdHRyU3RyaW5nLCBOU0FjY2Vzc2liaWxp
dHlNaXNzcGVsbGVkVGV4dEF0dHJpYnV0ZSwgW05TTnVtYmVyIG51bWJlcldpdGhCb29sOllFU10s
IHNwZWxsUmFuZ2UpOwotI2lmIFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01J
Tl9SRVFVSVJFRCA+PSAxMDkwCisjaWYgUExBVEZPUk0oTUFDKQogICAgICAgICBBWEF0dHJpYnV0
ZVN0cmluZ1NldE51bWJlcihhdHRyU3RyaW5nLCBOU0FjY2Vzc2liaWxpdHlNYXJrZWRNaXNzcGVs
bGVkVGV4dEF0dHJpYnV0ZSwgW05TTnVtYmVyIG51bWJlcldpdGhCb29sOllFU10sIHNwZWxsUmFu
Z2UpOwogI2VuZGlmCiAKQEAgLTEwMzgsNyArMTAzOCw3IEBAIHN0YXRpYyB2b2lkIEFYQXR0cmli
dXRlZFN0cmluZ0FwcGVuZFRleHQKICAgICAKICAgICAvLyByZW1vdmUgaW5oZXJpdGVkIGF0dGFj
aG1lbnQgZnJvbSBwcmlvciBBWEF0dHJpYnV0ZWRTdHJpbmdBcHBlbmRSZXBsYWNlZAogICAgIFth
dHRyU3RyaW5nIHJlbW92ZUF0dHJpYnV0ZTpOU0FjY2Vzc2liaWxpdHlBdHRhY2htZW50VGV4dEF0
dHJpYnV0ZSByYW5nZTphdHRyU3RyaW5nUmFuZ2VdOwotI2lmIFBMQVRGT1JNKE1BQykgJiYgX19N
QUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDkwCisjaWYgUExBVEZPUk0oTUFDKQog
ICAgIFthdHRyU3RyaW5nIHJlbW92ZUF0dHJpYnV0ZTpOU0FjY2Vzc2liaWxpdHlNYXJrZWRNaXNz
cGVsbGVkVGV4dEF0dHJpYnV0ZSByYW5nZTphdHRyU3RyaW5nUmFuZ2VdOwogI2VuZGlmCiAgICAg
W2F0dHJTdHJpbmcgcmVtb3ZlQXR0cmlidXRlOk5TQWNjZXNzaWJpbGl0eU1pc3NwZWxsZWRUZXh0
QXR0cmlidXRlIHJhbmdlOmF0dHJTdHJpbmdSYW5nZV07CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9j
cnlwdG8vQ29tbW9uQ3J5cHRvVXRpbGl0aWVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvY3J5cHRvL0NvbW1vbkNyeXB0b1V0aWxpdGllcy5oCShyZXZpc2lvbiAxNzkyNzQpCisrKyBT
b3VyY2UvV2ViQ29yZS9jcnlwdG8vQ29tbW9uQ3J5cHRvVXRpbGl0aWVzLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTM4LDcgKzM4LDcgQEAKICNlbmRpZgogI2VuZGlmCiAKLSNpZiBkZWZpbmVkKF9faGFz
X2luY2x1ZGUpICYmIChQTEFURk9STShJT1MpIHx8IF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVR
VUlSRUQgPj0gMTA5MCkKKyNpZiBkZWZpbmVkKF9faGFzX2luY2x1ZGUpICYmIChQTEFURk9STShJ
T1MpIHx8IFBMQVRGT1JNKE1BQykpCiAjaWYgX19oYXNfaW5jbHVkZSg8Q29tbW9uQ3J5cHRvL0Nv
bW1vblJhbmRvbVNQSS5oPikKICNpbmNsdWRlIDxDb21tb25DcnlwdG8vQ29tbW9uUmFuZG9tU1BJ
Lmg+CiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2NyeXB0by9tYWMvQ3J5cHRvQWxnb3Jp
dGhtQUVTX0NCQ01hYy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3J5cHRvL21h
Yy9DcnlwdG9BbGdvcml0aG1BRVNfQ0JDTWFjLmNwcAkocmV2aXNpb24gMTc5Mjc0KQorKysgU291
cmNlL1dlYkNvcmUvY3J5cHRvL21hYy9DcnlwdG9BbGdvcml0aG1BRVNfQ0JDTWFjLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtNDYsNyArNDYsNyBAQCBzdGF0aWMgdm9pZCB0cmFuc2Zvcm1BRVNfQ0JD
KENDT3BlcmF0aW9uCiAgICAgfQogCiAgICAgQ0NDcnlwdG9yUmVmIGNyeXB0b3I7Ci0jaWYgUExB
VEZPUk0oSU9TKSB8fCBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwOTAKKyNp
ZiBQTEFURk9STShJT1MpIHx8IFBMQVRGT1JNKE1BQykKICAgICBDQ0FsZ29yaXRobSBhZXNBbGdv
cml0aG0gPSBrQ0NBbGdvcml0aG1BRVM7CiAjZWxzZQogICAgIENDQWxnb3JpdGhtIGFlc0FsZ29y
aXRobSA9IGtDQ0FsZ29yaXRobUFFUzEyODsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
Y29jb2EvSFRNTENvbnZlcnRlci5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL2NvY29hL0hUTUxDb252ZXJ0ZXIubW0JKHJldmlzaW9uIDE3OTI3NCkKKysrIFNvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvY29jb2EvSFRNTENvbnZlcnRlci5tbQkod29ya2luZyBjb3B5KQpAQCAt
MTcyMiw3ICsxNzIyLDcgQEAgc3RhdGljIGlubGluZSBOU0RhdGUgKl9kYXRlRm9yU3RyaW5nKE5T
UwogICAgICAgICByZXR1cm4gbmlsOwogICAgIFtkYXRlQ29tcG9uZW50cyBzZXRTZWNvbmQ6Y29t
cG9uZW50XTsKICAgICAKLSNpZiAoUExBVEZPUk0oSU9TKSAmJiBfX0lQSE9ORV9PU19WRVJTSU9O
X01JTl9SRVFVSVJFRCA+PSA4MDAwMCkgfHwgKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9W
RVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDkwKQorI2lmIChQTEFURk9STShJT1MpICYmIF9fSVBI
T05FX09TX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDgwMDAwKSB8fCBQTEFURk9STShNQUMpCiAg
ICAgTlNTdHJpbmcgKmNhbGVuZGFySWRlbnRpZmllciA9IE5TQ2FsZW5kYXJJZGVudGlmaWVyR3Jl
Z29yaWFuOwogI2Vsc2UKICAgICBOU1N0cmluZyAqY2FsZW5kYXJJZGVudGlmaWVyID0gTlNHcmVn
b3JpYW5DYWxlbmRhcjsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0FOR0xFSW5z
dGFuY2VkQXJyYXlzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZh
cy9BTkdMRUluc3RhbmNlZEFycmF5cy5jcHAJKHJldmlzaW9uIDE3OTI3NCkKKysrIFNvdXJjZS9X
ZWJDb3JlL2h0bWwvY2FudmFzL0FOR0xFSW5zdGFuY2VkQXJyYXlzLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtNTAsNyArNTAsNyBAQCBXZWJHTEV4dGVuc2lvbjo6RXh0ZW5zaW9uTmFtZSBBTkdMRUlu
c3RhCiAKIGJvb2wgQU5HTEVJbnN0YW5jZWRBcnJheXM6OnN1cHBvcnRlZChXZWJHTFJlbmRlcmlu
Z0NvbnRleHRCYXNlKiBjb250ZXh0KQogewotI2lmIFBMQVRGT1JNKElPUykgfHwgUExBVEZPUk0o
TUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwOTAKKyNpZiBQTEFU
Rk9STShJT1MpIHx8IFBMQVRGT1JNKE1BQykKICAgICBVTlVTRURfUEFSQU0oY29udGV4dCk7CiAg
ICAgcmV0dXJuIHRydWU7CiAjZWxpZiBQTEFURk9STShHVEspCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvY29jb2EvRGlza0NhY2hlTW9uaXRvckNvY29hLm1tCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL2xvYWRlci9jb2NvYS9EaXNrQ2FjaGVNb25pdG9yQ29jb2EubW0JKHJldmlz
aW9uIDE3OTI3NCkKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9jb2NvYS9EaXNrQ2FjaGVNb25p
dG9yQ29jb2EubW0JKHdvcmtpbmcgY29weSkKQEAgLTQxLDcgKzQxLDcgQEAKICNpbmNsdWRlICJX
ZWJDb3JlVGhyZWFkUnVuLmgiCiAjZW5kaWYKIAotI2lmIChQTEFURk9STShJT1MpICYmIF9fSVBI
T05FX09TX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDgwMDAwKSB8fCAoUExBVEZPUk0oTUFDKSAm
JiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwOTApCisjaWYgKFBMQVRGT1JN
KElPUykgJiYgX19JUEhPTkVfT1NfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gODAwMDApIHx8IFBM
QVRGT1JNKE1BQykKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0xMjQsNCArMTI0LDQgQEAg
dm9pZCBEaXNrQ2FjaGVNb25pdG9yOjpyZXNvdXJjZUJlY2FtZUZpbAogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCiAKLSNlbmRpZiAvLyAoUExBVEZPUk0oSU9TKSAmJiBfX0lQSE9ORV9PU19WRVJT
SU9OX01JTl9SRVFVSVJFRCA+PSA4MDAwMCkgfHwgKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1Nf
WF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDkwKQorI2VuZGlmIC8vIChQTEFURk9STShJT1Mp
ICYmIF9fSVBIT05FX09TX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDgwMDAwKSB8fCBQTEFURk9S
TShNQUMpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9TZXR0aW5nc01hYy5tbQo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9TZXR0aW5nc01hYy5tbQkocmV2aXNp
b24gMTc5MjgzKQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvU2V0dGluZ3NNYWMubW0JKHdv
cmtpbmcgY29weSkKQEAgLTMwLDcgKzMwLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBib29s
IFNldHRpbmdzOjpzaG91bGRFbmFibGVTY3JlZW5Gb250U3Vic3RpdHV0aW9uQnlEZWZhdWx0KCkK
IHsKLSNpZiAhUExBVEZPUk0oSU9TKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVE
ID49IDEwOTAKKyNpZiBQTEFURk9STShNQUMpCiAgICAgcmV0dXJuIGZhbHNlOwogI2Vsc2UKICAg
ICByZXR1cm4gdHJ1ZTsKQEAgLTQwLDE0ICs0MCw5IEBAIGJvb2wgU2V0dGluZ3M6OnNob3VsZEVu
YWJsZVNjcmVlbkZvbnRTdWIKIHZvaWQgU2V0dGluZ3M6OmluaXRpYWxpemVEZWZhdWx0Rm9udEZh
bWlsaWVzKCkKIHsKICNpZiAhUExBVEZPUk0oSU9TKQotI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9N
SU5fUkVRVUlSRUQgPj0gMTA5MAogICAgIHNldFN0YW5kYXJkRm9udEZhbWlseSgiU29uZ3RpIFRD
IiwgVVNDUklQVF9UUkFESVRJT05BTF9IQU4pOwogICAgIHNldFNlcmlmRm9udEZhbWlseSgiU29u
Z3RpIFRDIiwgVVNDUklQVF9UUkFESVRJT05BTF9IQU4pOwogI2Vsc2UKLSAgICBzZXRTdGFuZGFy
ZEZvbnRGYW1pbHkoIkFwcGxlIExpU3VuZyIsIFVTQ1JJUFRfVFJBRElUSU9OQUxfSEFOKTsKLSAg
ICBzZXRTZXJpZkZvbnRGYW1pbHkoIkFwcGxlIExpU3VuZyIsIFVTQ1JJUFRfVFJBRElUSU9OQUxf
SEFOKTsKLSNlbmRpZgotI2Vsc2UKICAgICAvLyBUaGVyZSBpcyBubyBzZXJpZiBDaGluZXNlIGZv
bnQgaW4gZGVmYXVsdCBpT1MgaW5zdGFsbGF0aW9uLgogICAgIHNldFN0YW5kYXJkRm9udEZhbWls
eSgiSGVpdGkgVEMiLCBVU0NSSVBUX1RSQURJVElPTkFMX0hBTik7CiAgICAgc2V0U2VyaWZGb250
RmFtaWx5KCJIZWl0aSBUQyIsIFVTQ1JJUFRfVFJBRElUSU9OQUxfSEFOKTsKQEAgLTU2LDE0ICs1
MSw5IEBAIHZvaWQgU2V0dGluZ3M6OmluaXRpYWxpemVEZWZhdWx0Rm9udEZhbWkKICAgICBzZXRT
YW5zU2VyaWZGb250RmFtaWx5KCJIZWl0aSBUQyIsIFVTQ1JJUFRfVFJBRElUSU9OQUxfSEFOKTsK
IAogI2lmICFQTEFURk9STShJT1MpCi0jaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJF
RCA+PSAxMDkwCiAgICAgc2V0U3RhbmRhcmRGb250RmFtaWx5KCJTb25ndGkgU0MiLCBVU0NSSVBU
X1NJTVBMSUZJRURfSEFOKTsKICAgICBzZXRTZXJpZkZvbnRGYW1pbHkoIlNvbmd0aSBTQyIsIFVT
Q1JJUFRfU0lNUExJRklFRF9IQU4pOwogI2Vsc2UKLSAgICBzZXRTdGFuZGFyZEZvbnRGYW1pbHko
IlNUU29uZyIsIFVTQ1JJUFRfU0lNUExJRklFRF9IQU4pOwotICAgIHNldFNlcmlmRm9udEZhbWls
eSgiU1RTb25nIiwgVVNDUklQVF9TSU1QTElGSUVEX0hBTik7Ci0jZW5kaWYKLSNlbHNlCiAgICAg
Ly8gVGhlcmUgaXMgbm8gc2VyaWYgQ2hpbmVzZSBmb250IGluIGRlZmF1bHQgaU9TIGluc3RhbGxh
dGlvbi4KICAgICBzZXRTdGFuZGFyZEZvbnRGYW1pbHkoIkhlaXRpIFNDIiwgVVNDUklQVF9TSU1Q
TElGSUVEX0hBTik7CiAgICAgc2V0U2VyaWZGb250RmFtaWx5KCJIZWl0aSBTQyIsIFVTQ1JJUFRf
U0lNUExJRklFRF9IQU4pOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vbWFj
L01lZGlhU2Vzc2lvbk1hbmFnZXJNYWMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2F1ZGlvL21hYy9NZWRpYVNlc3Npb25NYW5hZ2VyTWFjLmNwcAkocmV2aXNpb24g
MTc5Mjc0KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vbWFjL01lZGlhU2Vzc2lv
bk1hbmFnZXJNYWMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNSwxMCArMzUsNyBAQAogdXNpbmcg
bmFtZXNwYWNlIFdlYkNvcmU7CiAKIHN0YXRpYyBjb25zdCBzaXplX3Qga1dlYkF1ZGlvQnVmZmVy
U2l6ZSA9IDEyODsKLQotI2lmIFBMQVRGT1JNKElPUykgfHwgX19NQUNfT1NfWF9WRVJTSU9OX01J
Tl9SRVFVSVJFRCA+PSAxMDkwCiBzdGF0aWMgY29uc3Qgc2l6ZV90IGtMb3dQb3dlclZpZGVvQnVm
ZmVyU2l6ZSA9IDQwOTY7Ci0jZW5kaWYKIAogdm9pZCBNZWRpYVNlc3Npb25NYW5hZ2VyOjp1cGRh
dGVTZXNzaW9uU3RhdGUoKQogewpAQCAtNDYsNyArNDMsNiBAQCB2b2lkIE1lZGlhU2Vzc2lvbk1h
bmFnZXI6OnVwZGF0ZVNlc3Npb25TCiAKICAgICBpZiAoaGFzKE1lZGlhU2Vzc2lvbjo6V2ViQXVk
aW8pKQogICAgICAgICBBdWRpb1Nlc3Npb246OnNoYXJlZFNlc3Npb24oKS5zZXRQcmVmZXJyZWRC
dWZmZXJTaXplKGtXZWJBdWRpb0J1ZmZlclNpemUpOwotI2lmIFBMQVRGT1JNKElPUykgfHwgX19N
QUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDkwCiAgICAgZWxzZSBpZiAoKGhhcyhN
ZWRpYVNlc3Npb246OlZpZGVvKSB8fCBoYXMoTWVkaWFTZXNzaW9uOjpBdWRpbykpICYmIFNldHRp
bmdzOjpsb3dQb3dlclZpZGVvQXVkaW9CdWZmZXJTaXplRW5hYmxlZCgpKSB7CiAgICAgICAgIC8v
IEZJWE1FOiA8aHR0cDovL3dlYmtpdC5vcmcvYi8xMTY3MjU+IEZpZ3VyZSBvdXQgd2h5IGVuYWJs
aW5nIHRoZSBjb2RlIGJlbG93CiAgICAgICAgIC8vIGNhdXNlcyBtZWRpYSBMYXlvdXRUZXN0cyB0
byBmYWlsIG9uIDEwLjguCkBAIC01OSw3ICs1NSw2IEBAIHZvaWQgTWVkaWFTZXNzaW9uTWFuYWdl
cjo6dXBkYXRlU2Vzc2lvblMKIAogICAgICAgICBBdWRpb1Nlc3Npb246OnNoYXJlZFNlc3Npb24o
KS5zZXRQcmVmZXJyZWRCdWZmZXJTaXplKGJ1ZmZlclNpemUpOwogICAgIH0KLSNlbmRpZgogCiAj
aWYgUExBVEZPUk0oSU9TKQogICAgIGlmIChhY3RpdmVBdWRpb1Nlc3Npb25SZXF1aXJlZCgpKQpJ
bmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvTWVtb3J5UHJlc3N1cmVIYW5kbGVy
Q29jb2EubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvTWVt
b3J5UHJlc3N1cmVIYW5kbGVyQ29jb2EubW0JKHJldmlzaW9uIDE3OTI3NCkKKysrIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2NvY29hL01lbW9yeVByZXNzdXJlSGFuZGxlckNvY29hLm1tCSh3b3Jr
aW5nIGNvcHkpCkBAIC04NCw3ICs4NCw3IEBAIHZvaWQgTWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpp
bnN0YWxsKCkKICAgICBkaXNwYXRjaF9hc3luYyhkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpLCBe
ewogI2lmIFBMQVRGT1JNKElPUykgJiYgX19JUEhPTkVfT1NfVkVSU0lPTl9NSU5fUkVRVUlSRUQg
Pj0gODAwMDAKICAgICAgICAgX2NhY2hlX2V2ZW50X3NvdXJjZSA9IGRpc3BhdGNoX3NvdXJjZV9j
cmVhdGUoRElTUEFUQ0hfU09VUkNFX1RZUEVfTUVNT1JZU1RBVFVTLCAwLCBESVNQQVRDSF9NRU1P
UllTVEFUVVNfUFJFU1NVUkVfTk9STUFMIHwgRElTUEFUQ0hfTUVNT1JZU1RBVFVTX1BSRVNTVVJF
X1dBUk4gfCBESVNQQVRDSF9NRU1PUllTVEFUVVNfUFJFU1NVUkVfQ1JJVElDQUwsIGRpc3BhdGNo
X2dldF9tYWluX3F1ZXVlKCkpOwotI2VsaWYgUExBVEZPUk0oTUFDKSAmJiBNQUNfT1NfWF9WRVJT
SU9OX01JTl9SRVFVSVJFRCA+PSAxMDkwCisjZWxpZiBQTEFURk9STShNQUMpCiAgICAgICAgIF9j
YWNoZV9ldmVudF9zb3VyY2UgPSB3a0NyZWF0ZU1lbW9yeVN0YXR1c1ByZXNzdXJlQ3JpdGljYWxE
aXNwYXRjaE9uTWFpblF1ZXVlKCk7CiAjZWxzZQogICAgICAgICBfY2FjaGVfZXZlbnRfc291cmNl
ID0gd2tDcmVhdGVWTVByZXNzdXJlRGlzcGF0Y2hPbk1haW5RdWV1ZSgpOwpAQCAtMTg5LDcgKzE4
OSw2IEBAIHZvaWQgTWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpyZXNwb25kVG9NZW0KICNlbmRpZgog
fQogCi0jaWYgUExBVEZPUk0oSU9TKSB8fCAoUExBVEZPUk0oTUFDKSAmJiBNQUNfT1NfWF9WRVJT
SU9OX01JTl9SRVFVSVJFRCA+PSAxMDkwKQogc2l6ZV90IE1lbW9yeVByZXNzdXJlSGFuZGxlcjo6
UmVsaWVmTG9nZ2VyOjpwbGF0Zm9ybU1lbW9yeVVzYWdlKCkKIHsKICAgICAvLyBGbHVzaCBmcmVl
IG1lbW9yeSBiYWNrIHRvIHRoZSBPUyBiZWZvcmUgZXZlcnkgbWVhc3VyZW1lbnQuCkBAIC0yMjIs
MTAgKzIyMSw2IEBAIHZvaWQgTWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpSZWxpZWZMb2dnZXIKICAg
ICBlbHNlCiAgICAgICAgIE5TTG9nKEAiUHJlc3N1cmUgcmVsaWVmOiAlczogPWRpcnR5IChhdCAl
bGQgYnl0ZXMpXG4iLCBtX2xvZ1N0cmluZywgY3VycmVudE1lbW9yeSk7CiB9Ci0jZWxzZQotdm9p
ZCBNZW1vcnlQcmVzc3VyZUhhbmRsZXI6OlJlbGllZkxvZ2dlcjo6cGxhdGZvcm1Mb2coKSB7IH0K
LXNpemVfdCBNZW1vcnlQcmVzc3VyZUhhbmRsZXI6OlJlbGllZkxvZ2dlcjo6cGxhdGZvcm1NZW1v
cnlVc2FnZSgpIHsgcmV0dXJuIDA7IH0KLSNlbmRpZgogCiAjaWYgUExBVEZPUk0oSU9TKQogc3Rh
dGljIHZvaWQgcmVzcG9uZFRvTWVtb3J5UHJlc3N1cmVDYWxsYmFjayhDRlJ1bkxvb3BPYnNlcnZl
clJlZiBvYnNlcnZlciwgQ0ZSdW5Mb29wQWN0aXZpdHkgLyphY3Rpdml0eSovLCB2b2lkKiAvKmlu
Zm8qLykKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9BVlRyYWNrUHJpdmF0ZUFWRk9iakNJbXBsLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9BVlRyYWNrUHJpdmF0ZUFWRk9iakNJ
bXBsLm1tCShyZXZpc2lvbiAxNzkyNzQpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vQVZUcmFja1ByaXZhdGVBVkZPYmpDSW1wbC5tbQkod29ya2luZyBj
b3B5KQpAQCAtMjM0LDExICsyMzQsNyBAQCBTdHJpbmcgQVZUcmFja1ByaXZhdGVBVkZPYmpDSW1w
bDo6bGFuZ3VhCiAKIFN0cmluZyBBVlRyYWNrUHJpdmF0ZUFWRk9iakNJbXBsOjpsYW5ndWFnZUZv
ckFWTWVkaWFTZWxlY3Rpb25PcHRpb24oQVZNZWRpYVNlbGVjdGlvbk9wdGlvbiogb3B0aW9uKQog
ewotI2lmIFBMQVRGT1JNKElPUykgfHwgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+
PSAxMDkwCiAgICAgTlNTdHJpbmcgKmxhbmd1YWdlID0gW29wdGlvbiBleHRlbmRlZExhbmd1YWdl
VGFnXTsKLSNlbHNlCi0gICAgTlNTdHJpbmcgKmxhbmd1YWdlID0gbmlsOwotI2VuZGlmCiAKICAg
ICAvLyBJZiB0aGUgbGFuZ3VhZ2UgY29kZSBpcyBzdG9yZWQgYXMgYSBRdWlja1RpbWUgNS1iaXQg
cGFja2VkIGNvZGUgdGhlcmUgYXJlbid0IGVub3VnaCBiaXRzIGZvciBhIGZ1bGwKICAgICAvLyBS
RkMgNDY0NiBsYW5ndWFnZSB0YWcgc28gZXh0ZW5kZWRMYW5ndWFnZVRhZyByZXR1cm5zIE5VTEwu
IEluIHRoaXMgY2FzZSBsYW5ndWFnZUNvZGUgd2lsbCByZXR1cm4gdGhlCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9DRE1TZXNzaW9uQVZG
b3VuZGF0aW9uT2JqQy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETVNlc3Npb25BVkZvdW5kYXRpb25PYmpDLmgJKHJl
dmlzaW9uIDE3OTI3NCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL0NETVNlc3Npb25BVkZvdW5kYXRpb25PYmpDLmgJKHdvcmtpbmcgY29weSkK
QEAgLTMwLDcgKzMwLDcgQEAKICNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogI2luY2x1ZGUg
PHd0Zi9SZXRhaW5QdHIuaD4KIAotI2lmIEVOQUJMRShFTkNSWVBURURfTUVESUFfVjIpICYmIF9f
TUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA5MAorI2lmIEVOQUJMRShFTkNSWVBU
RURfTUVESUFfVjIpCiAKIE9CSkNfQ0xBU1MgQVZBc3NldFJlc291cmNlTG9hZGluZ1JlcXVlc3Q7
CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL0NETVNlc3Npb25BVkZvdW5kYXRpb25PYmpDLm1tCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETVNlc3Npb25BVkZv
dW5kYXRpb25PYmpDLm1tCShyZXZpc2lvbiAxNzkyNzQpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9DRE1TZXNzaW9uQVZGb3VuZGF0aW9uT2Jq
Qy5tbQkod29ya2luZyBjb3B5KQpAQCAtMjYsNyArMjYsNyBAQAogI2ltcG9ydCAiY29uZmlnLmgi
CiAjaW1wb3J0ICJDRE1TZXNzaW9uQVZGb3VuZGF0aW9uT2JqQy5oIgogCi0jaWYgRU5BQkxFKEVO
Q1JZUFRFRF9NRURJQV9WMikgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAx
MDkwCisjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQV9WMikKIAogI2ltcG9ydCAiQ0RNLmgiCiAj
aW1wb3J0ICJDRE1TZXNzaW9uLmgiCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpD
Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0JKHJldmlz
aW9uIDE3OTI4MykKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0JKHdvcmtpbmcg
Y29weSkKQEAgLTU5NSw3ICs1OTUsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRh
dGlvbk9iakM6CiAgICAgICAgIGlmICghbV92aWRlb0xheWVyKQogICAgICAgICAgICAgY3JlYXRl
QVZQbGF5ZXJMYXllcigpOwogCi0jaWYgVVNFKFZJREVPVE9PTEJPWCkgJiYgX19NQUNfT1NfWF9W
RVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDkwCisjaWYgVVNFKFZJREVPVE9PTEJPWCkKICAgICAg
ICAgaWYgKCFtX3ZpZGVvT3V0cHV0KQogICAgICAgICAgICAgY3JlYXRlVmlkZW9PdXRwdXQoKTsK
ICNlbmRpZgpAQCAtMjAxMSwxMiArMjAxMSw4IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uT2JqQzoKICAgICAgICAgcmV0dXJuOwogCiAjaWYgVVNFKFZJREVPVE9PTEJPWCkK
LSNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwOTAKICAgICBOU0RpY3Rp
b25hcnkqIGF0dHJpYnV0ZXMgPSBuaWw7CiAjZWxzZQotICAgIE5TRGljdGlvbmFyeSogYXR0cmli
dXRlcyA9IEB7IChOU1N0cmluZyopa0NWUGl4ZWxCdWZmZXJQaXhlbEZvcm1hdFR5cGVLZXk6IEAo
a0NWUGl4ZWxGb3JtYXRUeXBlXzQyMllwQ2JDcjgpIH07Ci0jZW5kaWYKLSNlbHNlCiAgICAgTlNE
aWN0aW9uYXJ5KiBhdHRyaWJ1dGVzID0gW05TRGljdGlvbmFyeSBkaWN0aW9uYXJ5V2l0aE9iamVj
dHNBbmRLZXlzOltOU051bWJlciBudW1iZXJXaXRoVW5zaWduZWRJbnQ6a0NWUGl4ZWxGb3JtYXRU
eXBlXzMyQkdSQV0sIGtDVlBpeGVsQnVmZmVyUGl4ZWxGb3JtYXRUeXBlS2V5LAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBuaWxdOwogI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZhY2UubW0KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvSU9TdXJmYWNlLm1tCShyZXZpc2lv
biAxNzkyNzQpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1
cmZhY2UubW0JKHdvcmtpbmcgY29weSkKQEAgLTE1Myw0MCArMTUzLDI4IEBAIEdyYXBoaWNzQ29u
dGV4dCYgSU9TdXJmYWNlOjplbnN1cmVHcmFwaGkKIAogSU9TdXJmYWNlOjpTdXJmYWNlU3RhdGUg
SU9TdXJmYWNlOjpzdGF0ZSgpIGNvbnN0CiB7Ci0jaWYgUExBVEZPUk0oSU9TKSB8fCBfX01BQ19P
U19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwOTAKICAgICB1aW50MzJfdCBwcmV2aW91c1N0
YXRlID0gMDsKICAgICBJT1JldHVybiByZXQgPSBJT1N1cmZhY2VTZXRQdXJnZWFibGUobV9zdXJm
YWNlLmdldCgpLCBrSU9TdXJmYWNlUHVyZ2VhYmxlS2VlcEN1cnJlbnQsICZwcmV2aW91c1N0YXRl
KTsKICAgICBBU1NFUlRfVU5VU0VEKHJldCwgcmV0ID09IGtJT1JldHVyblN1Y2Nlc3MpOwogICAg
IHJldHVybiBwcmV2aW91c1N0YXRlID09IGtJT1N1cmZhY2VQdXJnZWFibGVFbXB0eSA/IElPU3Vy
ZmFjZTo6U3VyZmFjZVN0YXRlOjpFbXB0eSA6IElPU3VyZmFjZTo6U3VyZmFjZVN0YXRlOjpWYWxp
ZDsKLSNlbHNlCi0gICAgcmV0dXJuIFN1cmZhY2VTdGF0ZTo6VmFsaWQ7Ci0jZW5kaWYKIH0KIAog
Ym9vbCBJT1N1cmZhY2U6OmlzVm9sYXRpbGUoKSBjb25zdAogewotI2lmIFBMQVRGT1JNKElPUykg
fHwgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDkwCiAgICAgdWludDMyX3Qg
cHJldmlvdXNTdGF0ZSA9IDA7CiAgICAgSU9SZXR1cm4gcmV0ID0gSU9TdXJmYWNlU2V0UHVyZ2Vh
YmxlKG1fc3VyZmFjZS5nZXQoKSwga0lPU3VyZmFjZVB1cmdlYWJsZUtlZXBDdXJyZW50LCAmcHJl
dmlvdXNTdGF0ZSk7CiAgICAgQVNTRVJUX1VOVVNFRChyZXQsIHJldCA9PSBrSU9SZXR1cm5TdWNj
ZXNzKTsKICAgICByZXR1cm4gcHJldmlvdXNTdGF0ZSAhPSBrSU9TdXJmYWNlUHVyZ2VhYmxlTm9u
Vm9sYXRpbGU7Ci0jZWxzZQotICAgIHJldHVybiBmYWxzZTsKLSNlbmRpZgogfQogCiBJT1N1cmZh
Y2U6OlN1cmZhY2VTdGF0ZSBJT1N1cmZhY2U6OnNldElzVm9sYXRpbGUoYm9vbCBpc1ZvbGF0aWxl
KQogewotI2lmIFBMQVRGT1JNKElPUykgfHwgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJF
RCA+PSAxMDkwCiAgICAgdWludDMyX3QgcHJldmlvdXNTdGF0ZSA9IDA7CiAgICAgSU9SZXR1cm4g
cmV0ID0gSU9TdXJmYWNlU2V0UHVyZ2VhYmxlKG1fc3VyZmFjZS5nZXQoKSwgaXNWb2xhdGlsZSA/
IGtJT1N1cmZhY2VQdXJnZWFibGVWb2xhdGlsZSA6IGtJT1N1cmZhY2VQdXJnZWFibGVOb25Wb2xh
dGlsZSwgJnByZXZpb3VzU3RhdGUpOwogICAgIEFTU0VSVF9VTlVTRUQocmV0LCByZXQgPT0ga0lP
UmV0dXJuU3VjY2Vzcyk7CiAKICAgICBpZiAocHJldmlvdXNTdGF0ZSA9PSBrSU9TdXJmYWNlUHVy
Z2VhYmxlRW1wdHkpCiAgICAgICAgIHJldHVybiBJT1N1cmZhY2U6OlN1cmZhY2VTdGF0ZTo6RW1w
dHk7Ci0jZWxzZQotICAgIFVOVVNFRF9QQVJBTShpc1ZvbGF0aWxlKTsKLSNlbmRpZgogCiAgICAg
cmV0dXJuIElPU3VyZmFjZTo6U3VyZmFjZVN0YXRlOjpWYWxpZDsKIH0KSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9TaW1wbGVGb250RGF0YU1hYy5tbQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvU2ltcGxlRm9udERh
dGFNYWMubW0JKHJldmlzaW9uIDE3OTI3NCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL21hYy9TaW1wbGVGb250RGF0YU1hYy5tbQkod29ya2luZyBjb3B5KQpAQCAtMTY2LDcg
KzE2Niw3IEBAIHZvaWQgRm9udDo6cGxhdGZvcm1Jbml0KCkKICAgICAgICAgaW5pdEZvbnREYXRh
KHRoaXMpOwogICAgIH0KIAotI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0g
MTA5MAorI2lmIFBMQVRGT1JNKE1BQykKICAgICAvLyBXb3JrIGFyb3VuZCA8cmRhcjovL3Byb2Js
ZW0vMTk0MzM0OTA+CiAgICAgQ0dHbHlwaCBkdW1teUdseXBoc1tdID0gezAsIDB9OwogICAgIENH
U2l6ZSBkdW1teVNpemVbXSA9IHtDR1NpemVNYWtlKDAsIDApLCBDR1NpemVNYWtlKDAsIDApfTsK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25z
M0RPcGVuR0wuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL29wZW5nbC9FeHRlbnNpb25zM0RPcGVuR0wuY3BwCShyZXZpc2lvbiAxNzkyNzQpCisrKyBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uczNET3BlbkdM
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjU0LDcgKzI1NCw3IEBAIHZvaWQgRXh0ZW5zaW9uczNE
T3BlbkdMOjpkcmF3QXJyYXlzSW5zdGEKICAgICBtX2NvbnRleHQtPm1ha2VDb250ZXh0Q3VycmVu
dCgpOwogI2lmIFBMQVRGT1JNKEdUSykKICAgICA6OmdsRHJhd0FycmF5c0luc3RhbmNlZChtb2Rl
LCBmaXJzdCwgY291bnQsIHByaW1jb3VudCk7Ci0jZWxpZiBQTEFURk9STShJT1MpIHx8IFBMQVRG
T1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDkwCisjZWxp
ZiBQTEFURk9STShJT1MpIHx8IFBMQVRGT1JNKE1BQykKICAgICA6OmdsRHJhd0FycmF5c0luc3Rh
bmNlZEFSQihtb2RlLCBmaXJzdCwgY291bnQsIHByaW1jb3VudCk7CiAjZWxzZQogICAgIFVOVVNF
RF9QQVJBTShtb2RlKTsKQEAgLTI2OSw3ICsyNjksNyBAQCB2b2lkIEV4dGVuc2lvbnMzRE9wZW5H
TDo6ZHJhd0VsZW1lbnRzSW5zCiAgICAgbV9jb250ZXh0LT5tYWtlQ29udGV4dEN1cnJlbnQoKTsK
ICNpZiBQTEFURk9STShHVEspCiAgICAgOjpnbERyYXdFbGVtZW50c0luc3RhbmNlZChtb2RlLCBj
b3VudCwgdHlwZSwgcmVpbnRlcnByZXRfY2FzdDxHTHZvaWQqPihzdGF0aWNfY2FzdDxpbnRwdHJf
dD4ob2Zmc2V0KSksIHByaW1jb3VudCk7Ci0jZWxpZiBQTEFURk9STShJT1MpIHx8IFBMQVRGT1JN
KE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDkwCisjZWxpZiBQ
TEFURk9STShJT1MpIHx8IFBMQVRGT1JNKE1BQykKICAgICA6OmdsRHJhd0VsZW1lbnRzSW5zdGFu
Y2VkQVJCKG1vZGUsIGNvdW50LCB0eXBlLCByZWludGVycHJldF9jYXN0PEdMdm9pZCo+KHN0YXRp
Y19jYXN0PGludHB0cl90PihvZmZzZXQpKSwgcHJpbWNvdW50KTsKICNlbHNlCiAgICAgVU5VU0VE
X1BBUkFNKG1vZGUpOwpAQCAtMjg1LDcgKzI4NSw3IEBAIHZvaWQgRXh0ZW5zaW9uczNET3BlbkdM
Ojp2ZXJ0ZXhBdHRyaWJEaXYKICAgICBtX2NvbnRleHQtPm1ha2VDb250ZXh0Q3VycmVudCgpOwog
I2lmIFBMQVRGT1JNKEdUSykKICAgICA6OmdsVmVydGV4QXR0cmliRGl2aXNvcihpbmRleCwgZGl2
aXNvcik7Ci0jZWxpZiBQTEFURk9STShJT1MpIHx8IFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1Nf
WF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDkwCisjZWxpZiBQTEFURk9STShJT1MpIHx8IFBM
QVRGT1JNKE1BQykKICAgICA6OmdsVmVydGV4QXR0cmliRGl2aXNvckFSQihpbmRleCwgZGl2aXNv
cik7CiAjZWxzZQogICAgIFVOVVNFRF9QQVJBTShpbmRleCk7CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tYWMvV2ViQ29yZVN5c3RlbUludGVyZmFjZS5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9XZWJDb3JlU3lzdGVtSW50ZXJmYWNlLmgJKHJldmlz
aW9uIDE3OTI4MykKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9XZWJDb3JlU3lzdGVt
SW50ZXJmYWNlLmgJKHdvcmtpbmcgY29weSkKQEAgLTI5Nyw3ICsyOTcsNyBAQCBleHRlcm4gdm9p
ZCAoKndrU2V0TWV0YWRhdGFVUkwpKE5TU3RyaW5nCiBleHRlcm4gZGlzcGF0Y2hfc291cmNlX3Qg
KCp3a0NyZWF0ZVZNUHJlc3N1cmVEaXNwYXRjaE9uTWFpblF1ZXVlKSh2b2lkKTsKICNlbmRpZgog
Ci0jaWYgIVBMQVRGT1JNKElPUykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+
PSAxMDkwCisjaWYgUExBVEZPUk0oTUFDKQogZXh0ZXJuIGRpc3BhdGNoX3NvdXJjZV90ICgqd2tD
cmVhdGVNZW1vcnlTdGF0dXNQcmVzc3VyZUNyaXRpY2FsRGlzcGF0Y2hPbk1haW5RdWV1ZSkodm9p
ZCk7CiAjZW5kaWYKICAgICAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9XZWJD
b3JlU3lzdGVtSW50ZXJmYWNlLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21hYy9XZWJDb3JlU3lzdGVtSW50ZXJmYWNlLm1tCShyZXZpc2lvbiAxNzkyODMpCisrKyBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2ViQ29yZVN5c3RlbUludGVyZmFjZS5tbQkod29y
a2luZyBjb3B5KQpAQCAtMTUxLDcgKzE1MSw3IEBAIHZvaWQoKndrRGVzdHJveVJlbmRlcmluZ1Jl
c291cmNlcykodm9pZCkKIAogZGlzcGF0Y2hfc291cmNlX3QgKCp3a0NyZWF0ZVZNUHJlc3N1cmVE
aXNwYXRjaE9uTWFpblF1ZXVlKSh2b2lkKTsKIAotI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5f
UkVRVUlSRUQgPj0gMTA5MAorI2lmIFBMQVRGT1JNKE1BQykKIGRpc3BhdGNoX3NvdXJjZV90ICgq
d2tDcmVhdGVNZW1vcnlTdGF0dXNQcmVzc3VyZUNyaXRpY2FsRGlzcGF0Y2hPbk1haW5RdWV1ZSko
dm9pZCk7CiAjZW5kaWYKIApJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9j
Zi9SZXNvdXJjZUhhbmRsZUNGTmV0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZOZXQuY3BwCShyZXZpc2lvbiAxNzky
NzQpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxl
Q0ZOZXQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xOTQsNyArMTk0LDcgQEAgdm9pZCBSZXNvdXJj
ZUhhbmRsZTo6Y3JlYXRlQ0ZVUkxDb25uZWN0aQogICAgICAgICBDRkRpY3Rpb25hcnlTZXRWYWx1
ZShzdHJlYW1Qcm9wZXJ0aWVzLCBDRlNUUigiX1dlYktpdFN5bmNocm9ub3VzUmVxdWVzdCIpLCBr
Q0ZCb29sZWFuVHJ1ZSk7CiAgICAgfQogCi0jaWYgUExBVEZPUk0oSU9TKSB8fCAoUExBVEZPUk0o
TUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwOTApCisjaWYgUExB
VEZPUk0oQ09DT0EpCiAgICAgUmV0YWluUHRyPENGRGF0YVJlZj4gc291cmNlQXBwbGljYXRpb25B
dWRpdERhdGEgPSBkLT5tX2NvbnRleHQtPnNvdXJjZUFwcGxpY2F0aW9uQXVkaXREYXRhKCk7CiAg
ICAgaWYgKHNvdXJjZUFwcGxpY2F0aW9uQXVkaXREYXRhKQogICAgICAgICBDRkRpY3Rpb25hcnlT
ZXRWYWx1ZShzdHJlYW1Qcm9wZXJ0aWVzLCBDRlNUUigia0NGU3RyZWFtUHJvcGVydHlTb3VyY2VB
cHBsaWNhdGlvbiIpLCBzb3VyY2VBcHBsaWNhdGlvbkF1ZGl0RGF0YS5nZXQoKSk7CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NvY29hL1Byb3RlY3Rpb25TcGFjZUNvY29h
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jb2NvYS9Q
cm90ZWN0aW9uU3BhY2VDb2NvYS5oCShyZXZpc2lvbiAxNzkyNzQpCisrKyBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL2NvY29hL1Byb3RlY3Rpb25TcGFjZUNvY29hLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTU0LDkgKzU0LDcgQEAgcHVibGljOgogCiAgICAgc3RhdGljIGJvb2wgcGxhdGZv
cm1Db21wYXJlKGNvbnN0IFByb3RlY3Rpb25TcGFjZSYgYSwgY29uc3QgUHJvdGVjdGlvblNwYWNl
JiBiKTsKIAotI2lmIFBMQVRGT1JNKElPUykgfHwgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFV
SVJFRCA+PSAxMDkwCiAgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBlbmNvZGluZ1JlcXVpcmVzUGxh
dGZvcm1EYXRhKCkgY29uc3QgeyByZXR1cm4gbV9uc1NwYWNlICYmIGVuY29kaW5nUmVxdWlyZXNQ
bGF0Zm9ybURhdGEobV9uc1NwYWNlLmdldCgpKTsgfQotI2VuZGlmCiAKICAgICBXRUJDT1JFX0VY
UE9SVCBib29sIHJlY2VpdmVzQ3JlZGVudGlhbFNlY3VyZWx5KCkgY29uc3Q7CiAKQEAgLTY2LDkg
KzY0LDcgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIE5TVVJMUHJvdGVjdGlvblNwYWNl
ICpuc1NwYWNlKCkgY29uc3Q7CiAKIHByaXZhdGU6Ci0jaWYgUExBVEZPUk0oSU9TKSB8fCBfX01B
Q19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwOTAKICAgICBXRUJDT1JFX0VYUE9SVCBz
dGF0aWMgYm9vbCBlbmNvZGluZ1JlcXVpcmVzUGxhdGZvcm1EYXRhKE5TVVJMUHJvdGVjdGlvblNw
YWNlICopOwotI2VuZGlmCiAKICAgICBtdXRhYmxlIFJldGFpblB0cjxOU1VSTFByb3RlY3Rpb25T
cGFjZT4gbV9uc1NwYWNlOwogfTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvY29jb2EvUHJvdGVjdGlvblNwYWNlQ29jb2EubW0KPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9jb2NvYS9Qcm90ZWN0aW9uU3BhY2VDb2NvYS5tbQkocmV2
aXNpb24gMTc5Mjc0KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jb2NvYS9Q
cm90ZWN0aW9uU3BhY2VDb2NvYS5tbQkod29ya2luZyBjb3B5KQpAQCAtMjAwLDExICsyMDAsOSBA
QCBib29sIFByb3RlY3Rpb25TcGFjZTo6cmVjZWl2ZXNDcmVkZW50aWFsCiAgICAgcmV0dXJuIG5z
U3BhY2UoKS5yZWNlaXZlc0NyZWRlbnRpYWxTZWN1cmVseTsKIH0KIAotI2lmIFBMQVRGT1JNKElP
UykgfHwgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDkwCiBib29sIFByb3Rl
Y3Rpb25TcGFjZTo6ZW5jb2RpbmdSZXF1aXJlc1BsYXRmb3JtRGF0YShOU1VSTFByb3RlY3Rpb25T
cGFjZSAqc3BhY2UpCiB7CiAgICAgcmV0dXJuIHNwYWNlLmRpc3Rpbmd1aXNoZWROYW1lcyB8fCBz
cGFjZS5zZXJ2ZXJUcnVzdDsKIH0KLSNlbmRpZgogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJjZUhhbmRsZU1h
Yy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9S
ZXNvdXJjZUhhbmRsZU1hYy5tbQkocmV2aXNpb24gMTc5Mjc0KQorKysgU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9tYWMvUmVzb3VyY2VIYW5kbGVNYWMubW0JKHdvcmtpbmcgY29weSkK
QEAgLTIwNiwxMSArMjA2LDkgQEAgdm9pZCBSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlTlNVUkxDb25u
ZWN0aQogICAgICAgICBbc3RyZWFtUHJvcGVydGllcyBzZXRPYmplY3Q6QFRSVUUgZm9yS2V5OkAi
X1dlYktpdFN5bmNocm9ub3VzUmVxdWVzdCJdOwogICAgIH0KIAotI2lmIFBMQVRGT1JNKElPUykg
fHwgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDkwCiAgICAgUmV0YWluUHRy
PENGRGF0YVJlZj4gc291cmNlQXBwbGljYXRpb25BdWRpdERhdGEgPSBkLT5tX2NvbnRleHQtPnNv
dXJjZUFwcGxpY2F0aW9uQXVkaXREYXRhKCk7CiAgICAgaWYgKHNvdXJjZUFwcGxpY2F0aW9uQXVk
aXREYXRhKQogICAgICAgICBbc3RyZWFtUHJvcGVydGllcyBzZXRPYmplY3Q6KE5TRGF0YSAqKXNv
dXJjZUFwcGxpY2F0aW9uQXVkaXREYXRhLmdldCgpIGZvcktleTpAImtDRlN0cmVhbVByb3BlcnR5
U291cmNlQXBwbGljYXRpb24iXTsKLSNlbmRpZgogCiAjaWYgUExBVEZPUk0oSU9TKQogICAgIE5T
TXV0YWJsZURpY3Rpb25hcnkgKnByb3BlcnR5RGljdGlvbmFyeSA9IFtOU011dGFibGVEaWN0aW9u
YXJ5IGRpY3Rpb25hcnlXaXRoRGljdGlvbmFyeTpjb25uZWN0aW9uUHJvcGVydGllc107CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9XZWJDb3JlVVJMUmVzcG9uc2Uu
bW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvV2Vi
Q29yZVVSTFJlc3BvbnNlLm1tCShyZXZpc2lvbiAxNzkyNzQpCisrKyBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL21hYy9XZWJDb3JlVVJMUmVzcG9uc2UubW0JKHdvcmtpbmcgY29weSkK
QEAgLTMyOCw3ICszMjgsNiBAQCB2b2lkIGFkanVzdE1JTUVUeXBlSWZOZWNlc3NhcnkoQ0ZVUkxS
ZXNwCiAjaWYgIVVTRShDRk5FVFdPUkspCiBOU1VSTFJlc3BvbnNlICpzeW50aGVzaXplUmVkaXJl
Y3RSZXNwb25zZUlmTmVjZXNzYXJ5KE5TVVJMQ29ubmVjdGlvbiAqY29ubmVjdGlvbiwgTlNVUkxS
ZXF1ZXN0ICpuZXdSZXF1ZXN0LCBOU1VSTFJlc3BvbnNlICpyZWRpcmVjdFJlc3BvbnNlKQogewot
I2lmIFBMQVRGT1JNKElPUykgfHwgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAx
MDkwCiAgICAgaWYgKHJlZGlyZWN0UmVzcG9uc2UpCiAgICAgICAgIHJldHVybiByZWRpcmVjdFJl
c3BvbnNlOwogCkBAIC0zMzksMTEgKzMzOCw2IEBAIE5TVVJMUmVzcG9uc2UgKnN5bnRoZXNpemVS
ZWRpcmVjdFJlc3BvbnMKICAgICAvLyBUaGlzIGlzIGNyaXRpY2FsIGZvciBIU1RTICg8cmRhcjov
L3Byb2JsZW0vMTQyNDEyNzA+KS4KICAgICBOU0RpY3Rpb25hcnkgKnN5bnRoZXNpemVkUmVzcG9u
c2VIZWFkZXJGaWVsZHMgPSBAeyBAIkxvY2F0aW9uIjogW1tuZXdSZXF1ZXN0IFVSTF0gYWJzb2x1
dGVTdHJpbmddLCBAIkNhY2hlLUNvbnRyb2wiOiBAIm5vLXN0b3JlIiB9OwogICAgIHJldHVybiBb
W1tOU0hUVFBVUkxSZXNwb25zZSBhbGxvY10gaW5pdFdpdGhVUkw6W1tjb25uZWN0aW9uIGN1cnJl
bnRSZXF1ZXN0XSBVUkxdIHN0YXR1c0NvZGU6MzAyIEhUVFBWZXJzaW9uOihOU1N0cmluZyAqKWtD
RkhUVFBWZXJzaW9uMV8xIGhlYWRlckZpZWxkczpzeW50aGVzaXplZFJlc3BvbnNlSGVhZGVyRmll
bGRzXSBhdXRvcmVsZWFzZV07Ci0jZWxzZQotICAgIFVOVVNFRF9QQVJBTShjb25uZWN0aW9uKTsK
LSAgICBVTlVTRURfUEFSQU0obmV3UmVxdWVzdCk7Ci0gICAgcmV0dXJuIHJlZGlyZWN0UmVzcG9u
c2U7Ci0jZW5kaWYKIH0KICNlbmRpZgogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9z
cGkvY2YvQ0ZOZXR3b3JrU1BJLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vc3BpL2NmL0NGTmV0d29ya1NQSS5oCShyZXZpc2lvbiAxNzkyNzQpCisrKyBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9zcGkvY2YvQ0ZOZXR3b3JrU1BJLmgJKHdvcmtpbmcgY29weSkKQEAgLTY4
LDcgKzY4LDcgQEAgRVhURVJOX0Mgdm9pZCBDRlVSTFJlcXVlc3RTZXRTaG91bGRTdGFydAogRVhU
RVJOX0MgQ0ZVUkxDYWNoZVJlZiBDRlVSTENhY2hlQ29weVNoYXJlZFVSTENhY2hlKCk7CiBFWFRF
Uk5fQyB2b2lkIENGVVJMQ2FjaGVTZXRNZW1vcnlDYXBhY2l0eShDRlVSTENhY2hlUmVmLCBDRklu
ZGV4IG1lbW9yeUNhcGFjaXR5KTsKIEVYVEVSTl9DIHZvaWQgX0NGVVJMQ2FjaGVQdXJnZU1lbW9y
eUNhY2hlKENGVVJMQ2FjaGVSZWYpOwotI2lmIFBMQVRGT1JNKElPUykgfHwgX19NQUNfT1NfWF9W
RVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDkwCisjaWYgUExBVEZPUk0oSU9TKSB8fCBQTEFURk9S
TShNQUMpCiBFWFRFUk5fQyBDRkJvb2xlYW5SZWYgX0NGVVJMQ2FjaGVJc1Jlc3BvbnNlRGF0YU1l
bU1hcHBlZChDRlVSTENhY2hlUmVmLCBDRkRhdGFSZWYpOwogRVhURVJOX0Mgdm9pZCBfQ0ZVUkxD
YWNoZVNldE1pblNpemVGb3JWTUNhY2hlZFJlc291cmNlKENGVVJMQ2FjaGVSZWYsIENGSW5kZXgp
OwogCkBAIC03OCwxMiArNzgsMTIgQEAgRVhURVJOX0Mgdm9pZCBfQ0ZOZXR3b3JrUmVzZXRIU1RT
SG9zdHNXaQogCiBFWFRFUk5fQyB2b2lkIENGSFRUUENvb2tpZVN0b3JhZ2VEZWxldGVBbGxDb29r
aWVzKENGSFRUUENvb2tpZVN0b3JhZ2VSZWYpOwogCi0jaWYgUExBVEZPUk0oSU9TKSB8fCBfX01B
Q19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwOTAKKyNpZiBQTEFURk9STShJT1MpIHx8
IFBMQVRGT1JNKE1BQykKIEVYVEVSTl9DIENGRGF0YVJlZiBfQ0ZDYWNoZWRVUkxSZXNwb25zZUdl
dE1lbU1hcHBlZERhdGEoQ0ZDYWNoZWRVUkxSZXNwb25zZVJlZik7CiAjaWZkZWYgX19CTE9DS1Nf
XwogRVhURVJOX0Mgdm9pZCBfQ0ZDYWNoZWRVUkxSZXNwb25zZVNldEJlY2FtZUZpbGVCYWNrZWRD
YWxsQmFja0Jsb2NrKENGQ2FjaGVkVVJMUmVzcG9uc2VSZWYsIENGQ2FjaGVkVVJMUmVzcG9uc2VD
YWxsQmFja0Jsb2NrLCBkaXNwYXRjaF9xdWV1ZV90KTsKICNlbmRpZgotI2VuZGlmIC8vIFBMQVRG
T1JNKElPUykgfHwgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDkwCisjZW5k
aWYgLy8gUExBVEZPUk0oSU9TKSB8fCBQTEFURk9STShNQUMpCiAKIEVYVEVSTl9DIHZvaWQgQ0ZV
UkxDb25uZWN0aW9uSW52YWxpZGF0ZUNvbm5lY3Rpb25DYWNoZSgpOwogCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS90ZXh0L21hYy9Mb2NhbGVNYWMubW0KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9tYWMvTG9jYWxlTWFjLm1tCShyZXZpc2lvbiAxNzky
NzQpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L21hYy9Mb2NhbGVNYWMubW0JKHdv
cmtpbmcgY29weSkKQEAgLTg0LDcgKzg0LDcgQEAgc3RhdGljIFJldGFpblB0cjxOU0RhdGVGb3Jt
YXR0ZXI+IGNyZWF0ZQogCiBMb2NhbGVNYWM6OkxvY2FsZU1hYyhOU0xvY2FsZSogbG9jYWxlKQog
ICAgIDogbV9sb2NhbGUobG9jYWxlKQotI2lmIChQTEFURk9STShJT1MpICYmIF9fSVBIT05FX09T
X1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDgwMDAwKSB8fCAoUExBVEZPUk0oTUFDKSAmJiBfX01B
Q19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwOTApCisjaWYgKFBMQVRGT1JNKElPUykg
JiYgX19JUEhPTkVfT1NfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gODAwMDApIHx8IFBMQVRGT1JN
KE1BQykKICAgICAsIG1fZ3JlZ29yaWFuQ2FsZW5kYXIoYWRvcHROUyhbW05TQ2FsZW5kYXIgYWxs
b2NdIGluaXRXaXRoQ2FsZW5kYXJJZGVudGlmaWVyOk5TQ2FsZW5kYXJJZGVudGlmaWVyR3JlZ29y
aWFuXSkpCiAjZWxzZQogICAgICwgbV9ncmVnb3JpYW5DYWxlbmRhcihhZG9wdE5TKFtbTlNDYWxl
bmRhciBhbGxvY10gaW5pdFdpdGhDYWxlbmRhcklkZW50aWZpZXI6TlNHcmVnb3JpYW5DYWxlbmRh
cl0pKQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>245581</attachid>
            <date>2015-01-28 16:46:22 -0800</date>
            <delta_ts>2015-01-28 16:52:54 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>for-review-2.txt</filename>
            <type>text/plain</type>
            <size>33614</size>
            <attacher name="Beth Dakin">bdakin</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE3OTMwOCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDY0IEBACisyMDE1LTAxLTI4ICBCZXRoIERh
a2luICA8YmRha2luQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmUgbW9yZSBNb3VudGFpbiBM
aW9uIGNvZGUgZnJvbSBXZWJDb3JlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNDEwMTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIFdlYkNvcmUuZXhwLmluOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkv
bWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLm1tOgorICAgICAgICAoQVhBdHRy
aWJ1dGVTdHJpbmdTZXRTcGVsbGluZyk6CisgICAgICAgIChBWEF0dHJpYnV0ZWRTdHJpbmdBcHBl
bmRUZXh0KToKKyAgICAgICAgKiBjcnlwdG8vQ29tbW9uQ3J5cHRvVXRpbGl0aWVzLmg6CisgICAg
ICAgICogY3J5cHRvL21hYy9DcnlwdG9BbGdvcml0aG1BRVNfQ0JDTWFjLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OnRyYW5zZm9ybUFFU19DQkMpOgorICAgICAgICAqIGVkaXRpbmcvY29jb2EvSFRN
TENvbnZlcnRlci5tbToKKyAgICAgICAgKF9kYXRlRm9yU3RyaW5nKToKKyAgICAgICAgKiBodG1s
L2NhbnZhcy9BTkdMRUluc3RhbmNlZEFycmF5cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBTkdM
RUluc3RhbmNlZEFycmF5czo6c3VwcG9ydGVkKToKKyAgICAgICAgKiBsb2FkZXIvY29jb2EvRGlz
a0NhY2hlTW9uaXRvckNvY29hLm1tOgorICAgICAgICAqIHBhZ2UvbWFjL1NldHRpbmdzTWFjLm1t
OgorICAgICAgICAoV2ViQ29yZTo6U2V0dGluZ3M6OnNob3VsZEVuYWJsZVNjcmVlbkZvbnRTdWJz
dGl0dXRpb25CeURlZmF1bHQpOgorICAgICAgICAoV2ViQ29yZTo6U2V0dGluZ3M6OmluaXRpYWxp
emVEZWZhdWx0Rm9udEZhbWlsaWVzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9tYWMvTWVk
aWFTZXNzaW9uTWFuYWdlck1hYy5jcHA6CisgICAgICAgIChNZWRpYVNlc3Npb25NYW5hZ2VyOjp1
cGRhdGVTZXNzaW9uU3RhdGUpOgorICAgICAgICAqIHBsYXRmb3JtL2NvY29hL01lbW9yeVByZXNz
dXJlSGFuZGxlckNvY29hLm1tOgorICAgICAgICAoV2ViQ29yZTo6TWVtb3J5UHJlc3N1cmVIYW5k
bGVyOjppbnN0YWxsKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lbW9yeVByZXNzdXJlSGFuZGxlcjo6
UmVsaWVmTG9nZ2VyOjpwbGF0Zm9ybUxvZyk6CisgICAgICAgIChXZWJDb3JlOjpNZW1vcnlQcmVz
c3VyZUhhbmRsZXI6OlJlbGllZkxvZ2dlcjo6cGxhdGZvcm1NZW1vcnlVc2FnZSk6IERlbGV0ZWQu
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0FWVHJhY2tQcml2YXRl
QVZGT2JqQ0ltcGwubW06CisgICAgICAgIChXZWJDb3JlOjpBVlRyYWNrUHJpdmF0ZUFWRk9iakNJ
bXBsOjpsYW5ndWFnZUZvckFWTWVkaWFTZWxlY3Rpb25PcHRpb24pOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETVNlc3Npb25BVkZvdW5kYXRpb25PYmpD
Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNU2Vz
c2lvbkFWRm91bmRhdGlvbk9iakMubW06CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbToKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmNyZWF0
ZVZpZGVvTGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uT2JqQzo6Y3JlYXRlVmlkZW9PdXRwdXQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2NvY29hL0lPU3VyZmFjZS5tbToKKyAgICAgICAgKElPU3VyZmFjZTo6c3RhdGUpOgorICAg
ICAgICAoSU9TdXJmYWNlOjppc1ZvbGF0aWxlKToKKyAgICAgICAgKElPU3VyZmFjZTo6c2V0SXNW
b2xhdGlsZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL1NpbXBsZUZvbnREYXRh
TWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6Rm9udDo6cGxhdGZvcm1Jbml0KToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uczNET3BlbkdMLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkV4dGVuc2lvbnMzRE9wZW5HTDo6ZHJhd0FycmF5c0luc3RhbmNlZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpFeHRlbnNpb25zM0RPcGVuR0w6OmRyYXdFbGVtZW50c0luc3RhbmNl
ZCk6CisgICAgICAgIChXZWJDb3JlOjpFeHRlbnNpb25zM0RPcGVuR0w6OnZlcnRleEF0dHJpYkRp
dmlzb3IpOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9XZWJDb3JlU3lzdGVtSW50ZXJmYWNlLmg6
CisgICAgICAgICogcGxhdGZvcm0vbWFjL1dlYkNvcmVTeXN0ZW1JbnRlcmZhY2UubW06CisgICAg
ICAgICogcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUhhbmRsZUNGTmV0LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpjcmVhdGVDRlVSTENvbm5lY3Rpb24pOgorICAg
ICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY29jb2EvUHJvdGVjdGlvblNwYWNlQ29jb2EuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OlByb3RlY3Rpb25TcGFjZTo6ZW5jb2RpbmdSZXF1aXJlc1BsYXRmb3Jt
RGF0YSk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jb2NvYS9Qcm90ZWN0aW9uU3BhY2VD
b2NvYS5tbToKKyAgICAgICAgKFdlYkNvcmU6OlByb3RlY3Rpb25TcGFjZTo6ZW5jb2RpbmdSZXF1
aXJlc1BsYXRmb3JtRGF0YSk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9tYWMvUmVzb3Vy
Y2VIYW5kbGVNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6Y3JlYXRl
TlNVUkxDb25uZWN0aW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL21hYy9XZWJDb3Jl
VVJMUmVzcG9uc2UubW06CisgICAgICAgIChXZWJDb3JlOjpzeW50aGVzaXplUmVkaXJlY3RSZXNw
b25zZUlmTmVjZXNzYXJ5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9zcGkvY2YvQ0ZOZXR3b3JrU1BJ
Lmg6CisgICAgICAgICogcGxhdGZvcm0vdGV4dC9tYWMvTG9jYWxlTWFjLm1tOgorICAgICAgICAo
V2ViQ29yZTo6TG9jYWxlTWFjOjpMb2NhbGVNYWMpOgorCiAyMDE1LTAxLTI4ICBDaHJpcyBEdW1l
eiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgUmVncmVzc2lvbihyMTc3NDk0KTogQmFk
IGNhc3QgdG8gV2ViS2l0Q1NTUmVzb3VyY2VWYWx1ZSBpbiBTdHlsZUJ1aWxkZXJDb252ZXJ0ZXI6
OmNvbnZlcnRNYXNrSW1hZ2VPcGVyYXRpb25zKCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNv
cmUuZXhwLmluCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCShy
ZXZpc2lvbiAxNzkyODMpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgkod29ya2lu
ZyBjb3B5KQpAQCAtNjM2LDYgKzYzNiw3IEBAIF9fWk43V2ViQ29yZTE1UGxhdGZvcm1DQUxheWVy
MTVwbGF0Zm9ybUMKIF9fWk43V2ViQ29yZTE1UGxhdGZvcm1DQUxheWVyMTdkcmF3TGF5ZXJDb250
ZW50c0VQOUNHQ29udGV4dFBTMF9STjNXVEY2VmVjdG9ySU5TXzlGbG9hdFJlY3RFTG01RU5TNF8x
NUNyYXNoT25PdmVyZmxvd0VFRQogX19aTjdXZWJDb3JlMTVQbGF0Zm9ybUNBTGF5ZXJDMkVOUzBf
OUxheWVyVHlwZUVQTlNfMjFQbGF0Zm9ybUNBTGF5ZXJDbGllbnRFCiBfX1pON1dlYkNvcmUxNVBs
YXRmb3JtQ0FMYXllckQyRXYKK19fWk43V2ViQ29yZTE1UHJvdGVjdGlvblNwYWNlMjhlbmNvZGlu
Z1JlcXVpcmVzUGxhdGZvcm1EYXRhRVAyME5TVVJMUHJvdGVjdGlvblNwYWNlCiBfX1pON1dlYkNv
cmUxNVByb3RlY3Rpb25TcGFjZUMxRVAyME5TVVJMUHJvdGVjdGlvblNwYWNlCiBfX1pON1dlYkNv
cmUxNVJlc291cmNlUmVxdWVzdDIxaHR0cFBpcGVsaW5pbmdFbmFibGVkRXYKIF9fWk43V2ViQ29y
ZTE1UmVzb3VyY2VSZXF1ZXN0MjRzZXRIVFRQUGlwZWxpbmluZ0VuYWJsZWRFYgpAQCAtNzAwLDYg
KzcwMSw3IEBAIF9fWk43V2ViQ29yZTE2RGF0YWJhc2VQcm92aWRlckQyRXYKIF9fWk43V2ViQ29y
ZTE2RGV2aWNlTW90aW9uRGF0YTEyQWNjZWxlcmF0aW9uNmNyZWF0ZUViZGJkYmQKIF9fWk43V2Vi
Q29yZTE2RGV2aWNlTW90aW9uRGF0YTEyUm90YXRpb25SYXRlNmNyZWF0ZUViZGJkYmQKIF9fWk43
V2ViQ29yZTE2RGV2aWNlTW90aW9uRGF0YTZjcmVhdGVFTjNXVEYxMFBhc3NSZWZQdHJJTlMwXzEy
QWNjZWxlcmF0aW9uRUVFUzRfTlMyX0lOUzBfMTJSb3RhdGlvblJhdGVFRUViZAorX19aTjdXZWJD
b3JlMTZEaXNrQ2FjaGVNb25pdG9yQzJFUktOU18xNVJlc291cmNlUmVxdWVzdEVOU185U2Vzc2lv
bklERVBLMjBfQ0ZDYWNoZWRVUkxSZXNwb25zZQogX19aTjdXZWJDb3JlMTZGaWx0ZXJPcGVyYXRp
b25zQzFFdgogX19aTjdXZWJDb3JlMTZGaWx0ZXJPcGVyYXRpb25zYVNFUktTMF8KIF9fWk43V2Vi
Q29yZTE2RmxvYXRSb3VuZGVkUmVjdEMxRVJLTlNfOUZsb2F0UmVjdEVSS05TMF81UmFkaWlFCkBA
IC0xMDY3LDYgKzEwNjksNyBAQCBfX1pON1dlYkNvcmUyM2VuY29kZUhvc3ROYW1lV2l0aFJhbmdl
RVA4CiBfX1pON1dlYkNvcmUyM2dldEZpbGVNb2RpZmljYXRpb25UaW1lRVJLTjNXVEY2U3RyaW5n
RVJsCiBfX1pON1dlYkNvcmUyM2dldEhvc3RuYW1lc1dpdGhDb29raWVzRVJLTlNfMjFOZXR3b3Jr
U3RvcmFnZVNlc3Npb25FUk4zV1RGN0hhc2hTZXRJTlMzXzZTdHJpbmdFTlMzXzEwU3RyaW5nSGFz
aEVOUzNfMTBIYXNoVHJhaXRzSVM1X0VFRUUKIF9fWk43V2ViQ29yZTIzdG9DQU1lZGlhVGltaW5n
RnVuY3Rpb25FUEtOU18xNFRpbWluZ0Z1bmN0aW9uRWIKK19fWk43V2ViQ29yZTIzd3JhcFNlcmlh
bGl6ZWRDcnlwdG9LZXlFUktOM1dURjZWZWN0b3JJaExtMEVOUzBfMTVDcmFzaE9uT3ZlcmZsb3dF
RUVTNV9SUzNfCiBfX1pON1dlYkNvcmUyNENhY2hlZFJlc291cmNlSGFuZGxlQmFzZTExc2V0UmVz
b3VyY2VFUE5TXzE0Q2FjaGVkUmVzb3VyY2VFCiBfX1pON1dlYkNvcmUyNERvY3VtZW50TWFya2Vy
Q29udHJvbGxlcjEwbWFya2Vyc0ZvckVQTlNfNE5vZGVFTlNfMTREb2N1bWVudE1hcmtlcjExTWFy
a2VyVHlwZXNFCiBfX1pON1dlYkNvcmUyNERvY3VtZW50TWFya2VyQ29udHJvbGxlcjEzcmVtb3Zl
TWFya2Vyc0VOU18xNERvY3VtZW50TWFya2VyMTFNYXJrZXJUeXBlc0UKQEAgLTEwOTQsNiArMTA5
Nyw3IEBAIF9fWk43V2ViQ29yZTI1Y29tcHV0ZVZpZXdwb3J0QXR0cmlidXRlc0UKIF9fWk43V2Vi
Q29yZTI1Y3JlYXRlQ2Fub25pY2FsVVVJRFN0cmluZ0V2CiBfX1pON1dlYkNvcmUyNWRpcmVjdGlv
bk9mRW5jbG9zaW5nQmxvY2tFUktOU184UG9zaXRpb25FCiBfX1pON1dlYkNvcmUyNWdldE91dE9m
TGluZUNhY2hlZFdyYXBwZXJFUE5TXzE3SlNET01HbG9iYWxPYmplY3RFUE5TXzROb2RlRQorX19a
TjdXZWJDb3JlMjV1bndyYXBTZXJpYWxpemVkQ3J5cHRvS2V5RVJLTjNXVEY2VmVjdG9ySWhMbTBF
TlMwXzE1Q3Jhc2hPbk92ZXJmbG93RUVFUzVfUlMzXwogX19aTjdXZWJDb3JlMjV1cGRhdGVSZWRp
cmVjdENoYWluU3RhdHVzRVJOU18yNFJlZGlyZWN0Q2hhaW5DYWNoZVN0YXR1c0VSS05TXzE2UmVz
b3VyY2VSZXNwb25zZUUKIF9fWk43V2ViQ29yZTI2Q29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIx
NmNvbnRleHREZXN0cm95ZWRFdgogX19aTjdXZWJDb3JlMjZDb250ZXh0RGVzdHJ1Y3Rpb25PYnNl
cnZlckMyRVBOU18yMlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRFCkBAIC0xMTQ5LDYgKzExNTMsNyBA
QCBfX1pON1dlYkNvcmUyOEluc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jCiBfX1pON1dlYkNvcmUy
OFVzZXJNZXNzYWdlSGFuZGxlckRlc2NyaXB0b3JDMUVSS04zV1RGMTJBdG9taWNTdHJpbmdFUk5T
XzE1RE9NV3JhcHBlcldvcmxkRVJOUzBfNkNsaWVudEUKIF9fWk43V2ViQ29yZTI4VXNlck1lc3Nh
Z2VIYW5kbGVyRGVzY3JpcHRvckQxRXYKIF9fWk43V2ViQ29yZTI4ZW5jb2RlV2l0aFVSTEVzY2Fw
ZVNlcXVlbmNlc0VSS04zV1RGNlN0cmluZ0UKK19fWk43V2ViQ29yZTI4Z2V0RGVmYXVsdFdlYkNy
eXB0b01hc3RlcktleUVSTjNXVEY2VmVjdG9ySWhMbTBFTlMwXzE1Q3Jhc2hPbk92ZXJmbG93RUVF
CiBfX1pON1dlYkNvcmUyOHJlbW92ZUxhbmd1YWdlQ2hhbmdlT2JzZXJ2ZXJFUHYKIF9fWk43V2Vi
Q29yZTI4dGhyb3dBcmd1bWVudE11c3RCZUVudW1FcnJvckVSTjNKU0M5RXhlY1N0YXRlRWpQS2NT
NF9TNF9TNF8KIF9fWk43V2ViQ29yZTI5Y29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWVFUktO
U18yMU5ldHdvcmtTdG9yYWdlU2Vzc2lvbkVSS05TXzNVUkxFUzVfCkBAIC0yMTc5LDYgKzIxODQs
NyBAQCBfX1pUVk43V2ViQ29yZTE0U3RhdGljTm9kZUxpc3RFCiBfX1pUVk43V2ViQ29yZTE1UGxh
dGZvcm1DQUxheWVyRQogX19aVFZON1dlYkNvcmUxNkJsb2JSZWdpc3RyeUltcGxFCiBfX1pUVk43
V2ViQ29yZTE2RGF0YWJhc2VQcm92aWRlckUKK19fWlRWTjdXZWJDb3JlMTZEaXNrQ2FjaGVNb25p
dG9yRQogX19aVFZON1dlYkNvcmUxNkljb25EYXRhYmFzZUJhc2VFCiBfX1pUVk43V2ViQ29yZTE3
RnJhbWVMb2FkZXJDbGllbnRFCiBfX1pUVk43V2ViQ29yZTE3UGFnZUNvbnNvbGVDbGllbnRFCkBA
IC0yNTA1LDYgKzI1MTEsNyBAQCBfd2tDcmVhdGVBWFRleHRNYXJrZXJSYW5nZQogX3drQ3JlYXRl
QVhVSUVsZW1lbnRSZWYKIF93a0NyZWF0ZU1lZGlhVUlCYWNrZ3JvdW5kVmlldwogX3drQ3JlYXRl
TWVkaWFVSUNvbnRyb2wKK193a0NyZWF0ZU1lbW9yeVN0YXR1c1ByZXNzdXJlQ3JpdGljYWxEaXNw
YXRjaE9uTWFpblF1ZXVlCiBfd2tDcmVhdGVVUkxOUGFzdGVib2FyZEZsYXZvclR5cGVOYW1lCiBf
d2tDcmVhdGVVUkxQYXN0ZWJvYXJkRmxhdm9yVHlwZU5hbWUKIF93a0NyZWF0ZVZNUHJlc3N1cmVE
aXNwYXRjaE9uTWFpblF1ZXVlCkBAIC0yNTY5LDEwICsyNTc2LDYgQEAgX19aTjdXZWJDb3JlMzJz
aG91bGRSZWdpc3Rlckluc2VydGlvblVuZAogX19aTjdXZWJDb3JlNDRyZWdpc3Rlckluc2VydGlv
blVuZG9Hcm91cGluZ1dpdGhVbmRvTWFuYWdlckVQMTNOU1VuZG9NYW5hZ2VyCiAjZW5kaWYKIAot
I2lmIFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAx
MDkwCi1fd2tDcmVhdGVNZW1vcnlTdGF0dXNQcmVzc3VyZUNyaXRpY2FsRGlzcGF0Y2hPbk1haW5R
dWV1ZQotI2VuZGlmCi0KICNpZiBQTEFURk9STShJT1MpCiAub2JqY19jbGFzc19uYW1lX05TQ3Vy
c29yCiAub2JqY19jbGFzc19uYW1lX1dBS0NsaXBWaWV3CkBAIC0yOTI5LDE1ICsyOTMyLDYgQEAg
X3drU2V0TGF5ZXJDb250ZW50c1NjYWxlCiBfX1pON1dlYkNvcmUyMFJlc291cmNlSGFuZGxlQ2xp
ZW50MjJ3aWxsQ2FjaGVSZXNwb25zZUFzeW5jRVBOU18xNFJlc291cmNlSGFuZGxlRVBLMjBfQ0ZD
YWNoZWRVUkxSZXNwb25zZQogI2VuZGlmCiAKLSNpZiBQTEFURk9STShJT1MpIHx8IF9fTUFDX09T
X1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA5MAotX19aTjdXZWJDb3JlMTVQcm90ZWN0aW9u
U3BhY2UyOGVuY29kaW5nUmVxdWlyZXNQbGF0Zm9ybURhdGFFUDIwTlNVUkxQcm90ZWN0aW9uU3Bh
Y2UKLV9fWk43V2ViQ29yZTE2RGlza0NhY2hlTW9uaXRvckMyRVJLTlNfMTVSZXNvdXJjZVJlcXVl
c3RFTlNfOVNlc3Npb25JREVQSzIwX0NGQ2FjaGVkVVJMUmVzcG9uc2UKLV9fWk43V2ViQ29yZTIz
d3JhcFNlcmlhbGl6ZWRDcnlwdG9LZXlFUktOM1dURjZWZWN0b3JJaExtMEVOUzBfMTVDcmFzaE9u
T3ZlcmZsb3dFRUVTNV9SUzNfCi1fX1pON1dlYkNvcmUyNXVud3JhcFNlcmlhbGl6ZWRDcnlwdG9L
ZXlFUktOM1dURjZWZWN0b3JJaExtMEVOUzBfMTVDcmFzaE9uT3ZlcmZsb3dFRUVTNV9SUzNfCi1f
X1pON1dlYkNvcmUyOGdldERlZmF1bHRXZWJDcnlwdG9NYXN0ZXJLZXlFUk4zV1RGNlZlY3Rvcklo
TG0wRU5TMF8xNUNyYXNoT25PdmVyZmxvd0VFRQotX19aVFZON1dlYkNvcmUxNkRpc2tDYWNoZU1v
bml0b3JFCi0jZW5kaWYKLQogI2lmIEVOQUJMRSgzRF9SRU5ERVJJTkcpCiBfV2ViQ29yZUhhczNE
UmVuZGVyaW5nCiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFj
L1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLm1tCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVy
TWFjLm1tCShyZXZpc2lvbiAxNzkyNzQpCisrKyBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbQkod29ya2luZyBjb3B5KQpA
QCAtOTM0LDcgKzkzNCw3IEBAIHN0YXRpYyB2b2lkIEFYQXR0cmlidXRlU3RyaW5nU2V0U3BlbGxp
bmcKICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHNpemU7IGkrKykgewogICAgICAg
ICAgICAgY29uc3QgVGV4dENoZWNraW5nUmVzdWx0JiByZXN1bHQgPSByZXN1bHRzW2ldOwogICAg
ICAgICAgICAgQVhBdHRyaWJ1dGVTdHJpbmdTZXROdW1iZXIoYXR0clN0cmluZywgTlNBY2Nlc3Np
YmlsaXR5TWlzc3BlbGxlZFRleHRBdHRyaWJ1dGUsIHRydWVWYWx1ZSwgTlNNYWtlUmFuZ2UocmVz
dWx0LmxvY2F0aW9uICsgcmFuZ2UubG9jYXRpb24sIHJlc3VsdC5sZW5ndGgpKTsKLSNpZiBQTEFU
Rk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA5MAorI2lm
IFBMQVRGT1JNKE1BQykKICAgICAgICAgICAgIEFYQXR0cmlidXRlU3RyaW5nU2V0TnVtYmVyKGF0
dHJTdHJpbmcsIE5TQWNjZXNzaWJpbGl0eU1hcmtlZE1pc3NwZWxsZWRUZXh0QXR0cmlidXRlLCB0
cnVlVmFsdWUsIE5TTWFrZVJhbmdlKHJlc3VsdC5sb2NhdGlvbiArIHJhbmdlLmxvY2F0aW9uLCBy
ZXN1bHQubGVuZ3RoKSk7CiAjZW5kaWYKICAgICAgICAgfQpAQCAtOTUwLDcgKzk1MCw3IEBAIHN0
YXRpYyB2b2lkIEFYQXR0cmlidXRlU3RyaW5nU2V0U3BlbGxpbmcKICAgICAgICAgCiAgICAgICAg
IE5TUmFuZ2Ugc3BlbGxSYW5nZSA9IE5TTWFrZVJhbmdlKHJhbmdlLmxvY2F0aW9uICsgY3VycmVu
dFBvc2l0aW9uICsgbWlzc3BlbGxpbmdMb2NhdGlvbiwgbWlzc3BlbGxpbmdMZW5ndGgpOwogICAg
ICAgICBBWEF0dHJpYnV0ZVN0cmluZ1NldE51bWJlcihhdHRyU3RyaW5nLCBOU0FjY2Vzc2liaWxp
dHlNaXNzcGVsbGVkVGV4dEF0dHJpYnV0ZSwgW05TTnVtYmVyIG51bWJlcldpdGhCb29sOllFU10s
IHNwZWxsUmFuZ2UpOwotI2lmIFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01J
Tl9SRVFVSVJFRCA+PSAxMDkwCisjaWYgUExBVEZPUk0oTUFDKQogICAgICAgICBBWEF0dHJpYnV0
ZVN0cmluZ1NldE51bWJlcihhdHRyU3RyaW5nLCBOU0FjY2Vzc2liaWxpdHlNYXJrZWRNaXNzcGVs
bGVkVGV4dEF0dHJpYnV0ZSwgW05TTnVtYmVyIG51bWJlcldpdGhCb29sOllFU10sIHNwZWxsUmFu
Z2UpOwogI2VuZGlmCiAKQEAgLTEwMzgsNyArMTAzOCw3IEBAIHN0YXRpYyB2b2lkIEFYQXR0cmli
dXRlZFN0cmluZ0FwcGVuZFRleHQKICAgICAKICAgICAvLyByZW1vdmUgaW5oZXJpdGVkIGF0dGFj
aG1lbnQgZnJvbSBwcmlvciBBWEF0dHJpYnV0ZWRTdHJpbmdBcHBlbmRSZXBsYWNlZAogICAgIFth
dHRyU3RyaW5nIHJlbW92ZUF0dHJpYnV0ZTpOU0FjY2Vzc2liaWxpdHlBdHRhY2htZW50VGV4dEF0
dHJpYnV0ZSByYW5nZTphdHRyU3RyaW5nUmFuZ2VdOwotI2lmIFBMQVRGT1JNKE1BQykgJiYgX19N
QUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDkwCisjaWYgUExBVEZPUk0oTUFDKQog
ICAgIFthdHRyU3RyaW5nIHJlbW92ZUF0dHJpYnV0ZTpOU0FjY2Vzc2liaWxpdHlNYXJrZWRNaXNz
cGVsbGVkVGV4dEF0dHJpYnV0ZSByYW5nZTphdHRyU3RyaW5nUmFuZ2VdOwogI2VuZGlmCiAgICAg
W2F0dHJTdHJpbmcgcmVtb3ZlQXR0cmlidXRlOk5TQWNjZXNzaWJpbGl0eU1pc3NwZWxsZWRUZXh0
QXR0cmlidXRlIHJhbmdlOmF0dHJTdHJpbmdSYW5nZV07CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9j
cnlwdG8vQ29tbW9uQ3J5cHRvVXRpbGl0aWVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvY3J5cHRvL0NvbW1vbkNyeXB0b1V0aWxpdGllcy5oCShyZXZpc2lvbiAxNzkyNzQpCisrKyBT
b3VyY2UvV2ViQ29yZS9jcnlwdG8vQ29tbW9uQ3J5cHRvVXRpbGl0aWVzLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTM4LDcgKzM4LDcgQEAKICNlbmRpZgogI2VuZGlmCiAKLSNpZiBkZWZpbmVkKF9faGFz
X2luY2x1ZGUpICYmIChQTEFURk9STShJT1MpIHx8IF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVR
VUlSRUQgPj0gMTA5MCkKKyNpZiBkZWZpbmVkKF9faGFzX2luY2x1ZGUpICYmIChQTEFURk9STShD
T0NPQSkpCiAjaWYgX19oYXNfaW5jbHVkZSg8Q29tbW9uQ3J5cHRvL0NvbW1vblJhbmRvbVNQSS5o
PikKICNpbmNsdWRlIDxDb21tb25DcnlwdG8vQ29tbW9uUmFuZG9tU1BJLmg+CiAjZW5kaWYKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2NyeXB0by9tYWMvQ3J5cHRvQWxnb3JpdGhtQUVTX0NCQ01hYy5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3J5cHRvL21hYy9DcnlwdG9BbGdvcml0
aG1BRVNfQ0JDTWFjLmNwcAkocmV2aXNpb24gMTc5Mjc0KQorKysgU291cmNlL1dlYkNvcmUvY3J5
cHRvL21hYy9DcnlwdG9BbGdvcml0aG1BRVNfQ0JDTWFjLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
NDYsNyArNDYsNyBAQCBzdGF0aWMgdm9pZCB0cmFuc2Zvcm1BRVNfQ0JDKENDT3BlcmF0aW9uCiAg
ICAgfQogCiAgICAgQ0NDcnlwdG9yUmVmIGNyeXB0b3I7Ci0jaWYgUExBVEZPUk0oSU9TKSB8fCBf
X01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwOTAKKyNpZiBQTEFURk9STShDT0NP
QSkKICAgICBDQ0FsZ29yaXRobSBhZXNBbGdvcml0aG0gPSBrQ0NBbGdvcml0aG1BRVM7CiAjZWxz
ZQogICAgIENDQWxnb3JpdGhtIGFlc0FsZ29yaXRobSA9IGtDQ0FsZ29yaXRobUFFUzEyODsKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvY29jb2EvSFRNTENvbnZlcnRlci5tbQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29hL0hUTUxDb252ZXJ0ZXIubW0JKHJl
dmlzaW9uIDE3OTI3NCkKKysrIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvY29jb2EvSFRNTENvbnZl
cnRlci5tbQkod29ya2luZyBjb3B5KQpAQCAtMTcyMiw3ICsxNzIyLDcgQEAgc3RhdGljIGlubGlu
ZSBOU0RhdGUgKl9kYXRlRm9yU3RyaW5nKE5TUwogICAgICAgICByZXR1cm4gbmlsOwogICAgIFtk
YXRlQ29tcG9uZW50cyBzZXRTZWNvbmQ6Y29tcG9uZW50XTsKICAgICAKLSNpZiAoUExBVEZPUk0o
SU9TKSAmJiBfX0lQSE9ORV9PU19WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSA4MDAwMCkgfHwgKFBM
QVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDkwKQor
I2lmIChQTEFURk9STShJT1MpICYmIF9fSVBIT05FX09TX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49
IDgwMDAwKSB8fCBQTEFURk9STShNQUMpCiAgICAgTlNTdHJpbmcgKmNhbGVuZGFySWRlbnRpZmll
ciA9IE5TQ2FsZW5kYXJJZGVudGlmaWVyR3JlZ29yaWFuOwogI2Vsc2UKICAgICBOU1N0cmluZyAq
Y2FsZW5kYXJJZGVudGlmaWVyID0gTlNHcmVnb3JpYW5DYWxlbmRhcjsKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2h0bWwvY2FudmFzL0FOR0xFSW5zdGFuY2VkQXJyYXlzLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9BTkdMRUluc3RhbmNlZEFycmF5cy5jcHAJKHJl
dmlzaW9uIDE3OTI3NCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0FOR0xFSW5zdGFu
Y2VkQXJyYXlzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTAsNyArNTAsNyBAQCBXZWJHTEV4dGVu
c2lvbjo6RXh0ZW5zaW9uTmFtZSBBTkdMRUluc3RhCiAKIGJvb2wgQU5HTEVJbnN0YW5jZWRBcnJh
eXM6OnN1cHBvcnRlZChXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlKiBjb250ZXh0KQogewotI2lm
IFBMQVRGT1JNKElPUykgfHwgUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlO
X1JFUVVJUkVEID49IDEwOTAKKyNpZiBQTEFURk9STShDT0NPQSkKICAgICBVTlVTRURfUEFSQU0o
Y29udGV4dCk7CiAgICAgcmV0dXJuIHRydWU7CiAjZWxpZiBQTEFURk9STShHVEspCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9sb2FkZXIvY29jb2EvRGlza0NhY2hlTW9uaXRvckNvY29hLm1tCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9jb2NvYS9EaXNrQ2FjaGVNb25pdG9yQ29j
b2EubW0JKHJldmlzaW9uIDE3OTI3NCkKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9jb2NvYS9E
aXNrQ2FjaGVNb25pdG9yQ29jb2EubW0JKHdvcmtpbmcgY29weSkKQEAgLTQxLDcgKzQxLDcgQEAK
ICNpbmNsdWRlICJXZWJDb3JlVGhyZWFkUnVuLmgiCiAjZW5kaWYKIAotI2lmIChQTEFURk9STShJ
T1MpICYmIF9fSVBIT05FX09TX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDgwMDAwKSB8fCAoUExB
VEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwOTApCisj
aWYgKFBMQVRGT1JNKElPUykgJiYgX19JUEhPTkVfT1NfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0g
ODAwMDApIHx8IFBMQVRGT1JNKE1BQykKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0xMjQs
NCArMTI0LDQgQEAgdm9pZCBEaXNrQ2FjaGVNb25pdG9yOjpyZXNvdXJjZUJlY2FtZUZpbAogCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKLSNlbmRpZiAvLyAoUExBVEZPUk0oSU9TKSAmJiBfX0lQ
SE9ORV9PU19WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSA4MDAwMCkgfHwgKFBMQVRGT1JNKE1BQykg
JiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDkwKQorI2VuZGlmIC8vIChQ
TEFURk9STShJT1MpICYmIF9fSVBIT05FX09TX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDgwMDAw
KSB8fCBQTEFURk9STShNQUMpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9TZXR0aW5n
c01hYy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9TZXR0aW5nc01h
Yy5tbQkocmV2aXNpb24gMTc5MjgzKQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvU2V0dGlu
Z3NNYWMubW0JKHdvcmtpbmcgY29weSkKQEAgLTMwLDcgKzMwLDcgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogCiBib29sIFNldHRpbmdzOjpzaG91bGRFbmFibGVTY3JlZW5Gb250U3Vic3RpdHV0aW9u
QnlEZWZhdWx0KCkKIHsKLSNpZiAhUExBVEZPUk0oSU9TKSAmJiBfX01BQ19PU19YX1ZFUlNJT05f
TUlOX1JFUVVJUkVEID49IDEwOTAKKyNpZiBQTEFURk9STShNQUMpCiAgICAgcmV0dXJuIGZhbHNl
OwogI2Vsc2UKICAgICByZXR1cm4gdHJ1ZTsKQEAgLTQwLDE0ICs0MCw5IEBAIGJvb2wgU2V0dGlu
Z3M6OnNob3VsZEVuYWJsZVNjcmVlbkZvbnRTdWIKIHZvaWQgU2V0dGluZ3M6OmluaXRpYWxpemVE
ZWZhdWx0Rm9udEZhbWlsaWVzKCkKIHsKICNpZiAhUExBVEZPUk0oSU9TKQotI2lmIF9fTUFDX09T
X1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA5MAogICAgIHNldFN0YW5kYXJkRm9udEZhbWls
eSgiU29uZ3RpIFRDIiwgVVNDUklQVF9UUkFESVRJT05BTF9IQU4pOwogICAgIHNldFNlcmlmRm9u
dEZhbWlseSgiU29uZ3RpIFRDIiwgVVNDUklQVF9UUkFESVRJT05BTF9IQU4pOwogI2Vsc2UKLSAg
ICBzZXRTdGFuZGFyZEZvbnRGYW1pbHkoIkFwcGxlIExpU3VuZyIsIFVTQ1JJUFRfVFJBRElUSU9O
QUxfSEFOKTsKLSAgICBzZXRTZXJpZkZvbnRGYW1pbHkoIkFwcGxlIExpU3VuZyIsIFVTQ1JJUFRf
VFJBRElUSU9OQUxfSEFOKTsKLSNlbmRpZgotI2Vsc2UKICAgICAvLyBUaGVyZSBpcyBubyBzZXJp
ZiBDaGluZXNlIGZvbnQgaW4gZGVmYXVsdCBpT1MgaW5zdGFsbGF0aW9uLgogICAgIHNldFN0YW5k
YXJkRm9udEZhbWlseSgiSGVpdGkgVEMiLCBVU0NSSVBUX1RSQURJVElPTkFMX0hBTik7CiAgICAg
c2V0U2VyaWZGb250RmFtaWx5KCJIZWl0aSBUQyIsIFVTQ1JJUFRfVFJBRElUSU9OQUxfSEFOKTsK
QEAgLTU2LDE0ICs1MSw5IEBAIHZvaWQgU2V0dGluZ3M6OmluaXRpYWxpemVEZWZhdWx0Rm9udEZh
bWkKICAgICBzZXRTYW5zU2VyaWZGb250RmFtaWx5KCJIZWl0aSBUQyIsIFVTQ1JJUFRfVFJBRElU
SU9OQUxfSEFOKTsKIAogI2lmICFQTEFURk9STShJT1MpCi0jaWYgX19NQUNfT1NfWF9WRVJTSU9O
X01JTl9SRVFVSVJFRCA+PSAxMDkwCiAgICAgc2V0U3RhbmRhcmRGb250RmFtaWx5KCJTb25ndGkg
U0MiLCBVU0NSSVBUX1NJTVBMSUZJRURfSEFOKTsKICAgICBzZXRTZXJpZkZvbnRGYW1pbHkoIlNv
bmd0aSBTQyIsIFVTQ1JJUFRfU0lNUExJRklFRF9IQU4pOwogI2Vsc2UKLSAgICBzZXRTdGFuZGFy
ZEZvbnRGYW1pbHkoIlNUU29uZyIsIFVTQ1JJUFRfU0lNUExJRklFRF9IQU4pOwotICAgIHNldFNl
cmlmRm9udEZhbWlseSgiU1RTb25nIiwgVVNDUklQVF9TSU1QTElGSUVEX0hBTik7Ci0jZW5kaWYK
LSNlbHNlCiAgICAgLy8gVGhlcmUgaXMgbm8gc2VyaWYgQ2hpbmVzZSBmb250IGluIGRlZmF1bHQg
aU9TIGluc3RhbGxhdGlvbi4KICAgICBzZXRTdGFuZGFyZEZvbnRGYW1pbHkoIkhlaXRpIFNDIiwg
VVNDUklQVF9TSU1QTElGSUVEX0hBTik7CiAgICAgc2V0U2VyaWZGb250RmFtaWx5KCJIZWl0aSBT
QyIsIFVTQ1JJUFRfU0lNUExJRklFRF9IQU4pOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vYXVkaW8vbWFjL01lZGlhU2Vzc2lvbk1hbmFnZXJNYWMuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL21hYy9NZWRpYVNlc3Npb25NYW5hZ2VyTWFjLmNw
cAkocmV2aXNpb24gMTc5Mjc0KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vbWFj
L01lZGlhU2Vzc2lvbk1hbmFnZXJNYWMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNSwxMCArMzUs
NyBAQAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIHN0YXRpYyBjb25zdCBzaXplX3Qga1dl
YkF1ZGlvQnVmZmVyU2l6ZSA9IDEyODsKLQotI2lmIFBMQVRGT1JNKElPUykgfHwgX19NQUNfT1Nf
WF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDkwCiBzdGF0aWMgY29uc3Qgc2l6ZV90IGtMb3dQ
b3dlclZpZGVvQnVmZmVyU2l6ZSA9IDQwOTY7Ci0jZW5kaWYKIAogdm9pZCBNZWRpYVNlc3Npb25N
YW5hZ2VyOjp1cGRhdGVTZXNzaW9uU3RhdGUoKQogewpAQCAtNDYsNyArNDMsNiBAQCB2b2lkIE1l
ZGlhU2Vzc2lvbk1hbmFnZXI6OnVwZGF0ZVNlc3Npb25TCiAKICAgICBpZiAoaGFzKE1lZGlhU2Vz
c2lvbjo6V2ViQXVkaW8pKQogICAgICAgICBBdWRpb1Nlc3Npb246OnNoYXJlZFNlc3Npb24oKS5z
ZXRQcmVmZXJyZWRCdWZmZXJTaXplKGtXZWJBdWRpb0J1ZmZlclNpemUpOwotI2lmIFBMQVRGT1JN
KElPUykgfHwgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDkwCiAgICAgZWxz
ZSBpZiAoKGhhcyhNZWRpYVNlc3Npb246OlZpZGVvKSB8fCBoYXMoTWVkaWFTZXNzaW9uOjpBdWRp
bykpICYmIFNldHRpbmdzOjpsb3dQb3dlclZpZGVvQXVkaW9CdWZmZXJTaXplRW5hYmxlZCgpKSB7
CiAgICAgICAgIC8vIEZJWE1FOiA8aHR0cDovL3dlYmtpdC5vcmcvYi8xMTY3MjU+IEZpZ3VyZSBv
dXQgd2h5IGVuYWJsaW5nIHRoZSBjb2RlIGJlbG93CiAgICAgICAgIC8vIGNhdXNlcyBtZWRpYSBM
YXlvdXRUZXN0cyB0byBmYWlsIG9uIDEwLjguCkBAIC01OSw3ICs1NSw2IEBAIHZvaWQgTWVkaWFT
ZXNzaW9uTWFuYWdlcjo6dXBkYXRlU2Vzc2lvblMKIAogICAgICAgICBBdWRpb1Nlc3Npb246OnNo
YXJlZFNlc3Npb24oKS5zZXRQcmVmZXJyZWRCdWZmZXJTaXplKGJ1ZmZlclNpemUpOwogICAgIH0K
LSNlbmRpZgogCiAjaWYgUExBVEZPUk0oSU9TKQogICAgIGlmIChhY3RpdmVBdWRpb1Nlc3Npb25S
ZXF1aXJlZCgpKQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvTWVtb3J5UHJl
c3N1cmVIYW5kbGVyQ29jb2EubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vY29jb2EvTWVtb3J5UHJlc3N1cmVIYW5kbGVyQ29jb2EubW0JKHJldmlzaW9uIDE3OTI3NCkK
KysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL01lbW9yeVByZXNzdXJlSGFuZGxlckNv
Y29hLm1tCSh3b3JraW5nIGNvcHkpCkBAIC04NCw3ICs4NCw3IEBAIHZvaWQgTWVtb3J5UHJlc3N1
cmVIYW5kbGVyOjppbnN0YWxsKCkKICAgICBkaXNwYXRjaF9hc3luYyhkaXNwYXRjaF9nZXRfbWFp
bl9xdWV1ZSgpLCBeewogI2lmIFBMQVRGT1JNKElPUykgJiYgX19JUEhPTkVfT1NfVkVSU0lPTl9N
SU5fUkVRVUlSRUQgPj0gODAwMDAKICAgICAgICAgX2NhY2hlX2V2ZW50X3NvdXJjZSA9IGRpc3Bh
dGNoX3NvdXJjZV9jcmVhdGUoRElTUEFUQ0hfU09VUkNFX1RZUEVfTUVNT1JZU1RBVFVTLCAwLCBE
SVNQQVRDSF9NRU1PUllTVEFUVVNfUFJFU1NVUkVfTk9STUFMIHwgRElTUEFUQ0hfTUVNT1JZU1RB
VFVTX1BSRVNTVVJFX1dBUk4gfCBESVNQQVRDSF9NRU1PUllTVEFUVVNfUFJFU1NVUkVfQ1JJVElD
QUwsIGRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCkpOwotI2VsaWYgUExBVEZPUk0oTUFDKSAmJiBN
QUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDkwCisjZWxpZiBQTEFURk9STShNQUMp
CiAgICAgICAgIF9jYWNoZV9ldmVudF9zb3VyY2UgPSB3a0NyZWF0ZU1lbW9yeVN0YXR1c1ByZXNz
dXJlQ3JpdGljYWxEaXNwYXRjaE9uTWFpblF1ZXVlKCk7CiAjZWxzZQogICAgICAgICBfY2FjaGVf
ZXZlbnRfc291cmNlID0gd2tDcmVhdGVWTVByZXNzdXJlRGlzcGF0Y2hPbk1haW5RdWV1ZSgpOwpA
QCAtMTg5LDcgKzE4OSw2IEBAIHZvaWQgTWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpyZXNwb25kVG9N
ZW0KICNlbmRpZgogfQogCi0jaWYgUExBVEZPUk0oSU9TKSB8fCAoUExBVEZPUk0oTUFDKSAmJiBN
QUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDkwKQogc2l6ZV90IE1lbW9yeVByZXNz
dXJlSGFuZGxlcjo6UmVsaWVmTG9nZ2VyOjpwbGF0Zm9ybU1lbW9yeVVzYWdlKCkKIHsKICAgICAv
LyBGbHVzaCBmcmVlIG1lbW9yeSBiYWNrIHRvIHRoZSBPUyBiZWZvcmUgZXZlcnkgbWVhc3VyZW1l
bnQuCkBAIC0yMjIsMTAgKzIyMSw2IEBAIHZvaWQgTWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpSZWxp
ZWZMb2dnZXIKICAgICBlbHNlCiAgICAgICAgIE5TTG9nKEAiUHJlc3N1cmUgcmVsaWVmOiAlczog
PWRpcnR5IChhdCAlbGQgYnl0ZXMpXG4iLCBtX2xvZ1N0cmluZywgY3VycmVudE1lbW9yeSk7CiB9
Ci0jZWxzZQotdm9pZCBNZW1vcnlQcmVzc3VyZUhhbmRsZXI6OlJlbGllZkxvZ2dlcjo6cGxhdGZv
cm1Mb2coKSB7IH0KLXNpemVfdCBNZW1vcnlQcmVzc3VyZUhhbmRsZXI6OlJlbGllZkxvZ2dlcjo6
cGxhdGZvcm1NZW1vcnlVc2FnZSgpIHsgcmV0dXJuIDA7IH0KLSNlbmRpZgogCiAjaWYgUExBVEZP
Uk0oSU9TKQogc3RhdGljIHZvaWQgcmVzcG9uZFRvTWVtb3J5UHJlc3N1cmVDYWxsYmFjayhDRlJ1
bkxvb3BPYnNlcnZlclJlZiBvYnNlcnZlciwgQ0ZSdW5Mb29wQWN0aXZpdHkgLyphY3Rpdml0eSov
LCB2b2lkKiAvKmluZm8qLykKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9BVlRyYWNrUHJpdmF0ZUFWRk9iakNJbXBsLm1tCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9BVlRyYWNrUHJp
dmF0ZUFWRk9iakNJbXBsLm1tCShyZXZpc2lvbiAxNzkyNzQpCisrKyBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQVZUcmFja1ByaXZhdGVBVkZPYmpDSW1wbC5t
bQkod29ya2luZyBjb3B5KQpAQCAtMjM0LDExICsyMzQsNyBAQCBTdHJpbmcgQVZUcmFja1ByaXZh
dGVBVkZPYmpDSW1wbDo6bGFuZ3VhCiAKIFN0cmluZyBBVlRyYWNrUHJpdmF0ZUFWRk9iakNJbXBs
OjpsYW5ndWFnZUZvckFWTWVkaWFTZWxlY3Rpb25PcHRpb24oQVZNZWRpYVNlbGVjdGlvbk9wdGlv
biogb3B0aW9uKQogewotI2lmIFBMQVRGT1JNKElPUykgfHwgX19NQUNfT1NfWF9WRVJTSU9OX01J
Tl9SRVFVSVJFRCA+PSAxMDkwCiAgICAgTlNTdHJpbmcgKmxhbmd1YWdlID0gW29wdGlvbiBleHRl
bmRlZExhbmd1YWdlVGFnXTsKLSNlbHNlCi0gICAgTlNTdHJpbmcgKmxhbmd1YWdlID0gbmlsOwot
I2VuZGlmCiAKICAgICAvLyBJZiB0aGUgbGFuZ3VhZ2UgY29kZSBpcyBzdG9yZWQgYXMgYSBRdWlj
a1RpbWUgNS1iaXQgcGFja2VkIGNvZGUgdGhlcmUgYXJlbid0IGVub3VnaCBiaXRzIGZvciBhIGZ1
bGwKICAgICAvLyBSRkMgNDY0NiBsYW5ndWFnZSB0YWcgc28gZXh0ZW5kZWRMYW5ndWFnZVRhZyBy
ZXR1cm5zIE5VTEwuIEluIHRoaXMgY2FzZSBsYW5ndWFnZUNvZGUgd2lsbCByZXR1cm4gdGhlCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9D
RE1TZXNzaW9uQVZGb3VuZGF0aW9uT2JqQy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETVNlc3Npb25BVkZvdW5kYXRp
b25PYmpDLmgJKHJldmlzaW9uIDE3OTI3NCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETVNlc3Npb25BVkZvdW5kYXRpb25PYmpDLmgJKHdv
cmtpbmcgY29weSkKQEAgLTMwLDcgKzMwLDcgQEAKICNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5o
PgogI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KIAotI2lmIEVOQUJMRShFTkNSWVBURURfTUVE
SUFfVjIpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA5MAorI2lmIEVO
QUJMRShFTkNSWVBURURfTUVESUFfVjIpCiAKIE9CSkNfQ0xBU1MgQVZBc3NldFJlc291cmNlTG9h
ZGluZ1JlcXVlc3Q7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL0NETVNlc3Npb25BVkZvdW5kYXRpb25PYmpDLm1tCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NE
TVNlc3Npb25BVkZvdW5kYXRpb25PYmpDLm1tCShyZXZpc2lvbiAxNzkyNzQpCisrKyBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9DRE1TZXNzaW9uQVZG
b3VuZGF0aW9uT2JqQy5tbQkod29ya2luZyBjb3B5KQpAQCAtMjYsNyArMjYsNyBAQAogI2ltcG9y
dCAiY29uZmlnLmgiCiAjaW1wb3J0ICJDRE1TZXNzaW9uQVZGb3VuZGF0aW9uT2JqQy5oIgogCi0j
aWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQV9WMikgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9S
RVFVSVJFRCA+PSAxMDkwCisjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQV9WMikKIAogI2ltcG9y
dCAiQ0RNLmgiCiAjaW1wb3J0ICJDRE1TZXNzaW9uLmgiCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb25PYmpDLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9i
akMubW0JKHJldmlzaW9uIDE3OTI4MykKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMu
bW0JKHdvcmtpbmcgY29weSkKQEAgLTU5NSw3ICs1OTUsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJp
dmF0ZUFWRm91bmRhdGlvbk9iakM6CiAgICAgICAgIGlmICghbV92aWRlb0xheWVyKQogICAgICAg
ICAgICAgY3JlYXRlQVZQbGF5ZXJMYXllcigpOwogCi0jaWYgVVNFKFZJREVPVE9PTEJPWCkgJiYg
X19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDkwCisjaWYgVVNFKFZJREVPVE9P
TEJPWCkKICAgICAgICAgaWYgKCFtX3ZpZGVvT3V0cHV0KQogICAgICAgICAgICAgY3JlYXRlVmlk
ZW9PdXRwdXQoKTsKICNlbmRpZgpAQCAtMjAxMSwxMiArMjAxMSw4IEBAIHZvaWQgTWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzoKICAgICAgICAgcmV0dXJuOwogCiAjaWYgVVNFKFZJ
REVPVE9PTEJPWCkKLSNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwOTAK
ICAgICBOU0RpY3Rpb25hcnkqIGF0dHJpYnV0ZXMgPSBuaWw7CiAjZWxzZQotICAgIE5TRGljdGlv
bmFyeSogYXR0cmlidXRlcyA9IEB7IChOU1N0cmluZyopa0NWUGl4ZWxCdWZmZXJQaXhlbEZvcm1h
dFR5cGVLZXk6IEAoa0NWUGl4ZWxGb3JtYXRUeXBlXzQyMllwQ2JDcjgpIH07Ci0jZW5kaWYKLSNl
bHNlCiAgICAgTlNEaWN0aW9uYXJ5KiBhdHRyaWJ1dGVzID0gW05TRGljdGlvbmFyeSBkaWN0aW9u
YXJ5V2l0aE9iamVjdHNBbmRLZXlzOltOU051bWJlciBudW1iZXJXaXRoVW5zaWduZWRJbnQ6a0NW
UGl4ZWxGb3JtYXRUeXBlXzMyQkdSQV0sIGtDVlBpeGVsQnVmZmVyUGl4ZWxGb3JtYXRUeXBlS2V5
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuaWxdOwogI2VuZGlmCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZhY2UubW0KPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvSU9TdXJmYWNl
Lm1tCShyZXZpc2lvbiAxNzkyNzQpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jb2NvYS9JT1N1cmZhY2UubW0JKHdvcmtpbmcgY29weSkKQEAgLTE1Myw0MCArMTUzLDI4IEBA
IEdyYXBoaWNzQ29udGV4dCYgSU9TdXJmYWNlOjplbnN1cmVHcmFwaGkKIAogSU9TdXJmYWNlOjpT
dXJmYWNlU3RhdGUgSU9TdXJmYWNlOjpzdGF0ZSgpIGNvbnN0CiB7Ci0jaWYgUExBVEZPUk0oSU9T
KSB8fCBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwOTAKICAgICB1aW50MzJf
dCBwcmV2aW91c1N0YXRlID0gMDsKICAgICBJT1JldHVybiByZXQgPSBJT1N1cmZhY2VTZXRQdXJn
ZWFibGUobV9zdXJmYWNlLmdldCgpLCBrSU9TdXJmYWNlUHVyZ2VhYmxlS2VlcEN1cnJlbnQsICZw
cmV2aW91c1N0YXRlKTsKICAgICBBU1NFUlRfVU5VU0VEKHJldCwgcmV0ID09IGtJT1JldHVyblN1
Y2Nlc3MpOwogICAgIHJldHVybiBwcmV2aW91c1N0YXRlID09IGtJT1N1cmZhY2VQdXJnZWFibGVF
bXB0eSA/IElPU3VyZmFjZTo6U3VyZmFjZVN0YXRlOjpFbXB0eSA6IElPU3VyZmFjZTo6U3VyZmFj
ZVN0YXRlOjpWYWxpZDsKLSNlbHNlCi0gICAgcmV0dXJuIFN1cmZhY2VTdGF0ZTo6VmFsaWQ7Ci0j
ZW5kaWYKIH0KIAogYm9vbCBJT1N1cmZhY2U6OmlzVm9sYXRpbGUoKSBjb25zdAogewotI2lmIFBM
QVRGT1JNKElPUykgfHwgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDkwCiAg
ICAgdWludDMyX3QgcHJldmlvdXNTdGF0ZSA9IDA7CiAgICAgSU9SZXR1cm4gcmV0ID0gSU9TdXJm
YWNlU2V0UHVyZ2VhYmxlKG1fc3VyZmFjZS5nZXQoKSwga0lPU3VyZmFjZVB1cmdlYWJsZUtlZXBD
dXJyZW50LCAmcHJldmlvdXNTdGF0ZSk7CiAgICAgQVNTRVJUX1VOVVNFRChyZXQsIHJldCA9PSBr
SU9SZXR1cm5TdWNjZXNzKTsKICAgICByZXR1cm4gcHJldmlvdXNTdGF0ZSAhPSBrSU9TdXJmYWNl
UHVyZ2VhYmxlTm9uVm9sYXRpbGU7Ci0jZWxzZQotICAgIHJldHVybiBmYWxzZTsKLSNlbmRpZgog
fQogCiBJT1N1cmZhY2U6OlN1cmZhY2VTdGF0ZSBJT1N1cmZhY2U6OnNldElzVm9sYXRpbGUoYm9v
bCBpc1ZvbGF0aWxlKQogewotI2lmIFBMQVRGT1JNKElPUykgfHwgX19NQUNfT1NfWF9WRVJTSU9O
X01JTl9SRVFVSVJFRCA+PSAxMDkwCiAgICAgdWludDMyX3QgcHJldmlvdXNTdGF0ZSA9IDA7CiAg
ICAgSU9SZXR1cm4gcmV0ID0gSU9TdXJmYWNlU2V0UHVyZ2VhYmxlKG1fc3VyZmFjZS5nZXQoKSwg
aXNWb2xhdGlsZSA/IGtJT1N1cmZhY2VQdXJnZWFibGVWb2xhdGlsZSA6IGtJT1N1cmZhY2VQdXJn
ZWFibGVOb25Wb2xhdGlsZSwgJnByZXZpb3VzU3RhdGUpOwogICAgIEFTU0VSVF9VTlVTRUQocmV0
LCByZXQgPT0ga0lPUmV0dXJuU3VjY2Vzcyk7CiAKICAgICBpZiAocHJldmlvdXNTdGF0ZSA9PSBr
SU9TdXJmYWNlUHVyZ2VhYmxlRW1wdHkpCiAgICAgICAgIHJldHVybiBJT1N1cmZhY2U6OlN1cmZh
Y2VTdGF0ZTo6RW1wdHk7Ci0jZWxzZQotICAgIFVOVVNFRF9QQVJBTShpc1ZvbGF0aWxlKTsKLSNl
bmRpZgogCiAgICAgcmV0dXJuIElPU3VyZmFjZTo6U3VyZmFjZVN0YXRlOjpWYWxpZDsKIH0KSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9TaW1wbGVGb250RGF0YU1h
Yy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMv
U2ltcGxlRm9udERhdGFNYWMubW0JKHJldmlzaW9uIDE3OTI3NCkKKysrIFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL21hYy9TaW1wbGVGb250RGF0YU1hYy5tbQkod29ya2luZyBjb3B5
KQpAQCAtMTY2LDcgKzE2Niw3IEBAIHZvaWQgRm9udDo6cGxhdGZvcm1Jbml0KCkKICAgICAgICAg
aW5pdEZvbnREYXRhKHRoaXMpOwogICAgIH0KIAotI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5f
UkVRVUlSRUQgPj0gMTA5MAorI2lmIFBMQVRGT1JNKE1BQykKICAgICAvLyBXb3JrIGFyb3VuZCA8
cmRhcjovL3Byb2JsZW0vMTk0MzM0OTA+CiAgICAgQ0dHbHlwaCBkdW1teUdseXBoc1tdID0gezAs
IDB9OwogICAgIENHU2l6ZSBkdW1teVNpemVbXSA9IHtDR1NpemVNYWtlKDAsIDApLCBDR1NpemVN
YWtlKDAsIDApfTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5n
bC9FeHRlbnNpb25zM0RPcGVuR0wuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zM0RPcGVuR0wuY3BwCShyZXZpc2lvbiAx
NzkyNzQpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5z
aW9uczNET3BlbkdMLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjU0LDcgKzI1NCw3IEBAIHZvaWQg
RXh0ZW5zaW9uczNET3BlbkdMOjpkcmF3QXJyYXlzSW5zdGEKICAgICBtX2NvbnRleHQtPm1ha2VD
b250ZXh0Q3VycmVudCgpOwogI2lmIFBMQVRGT1JNKEdUSykKICAgICA6OmdsRHJhd0FycmF5c0lu
c3RhbmNlZChtb2RlLCBmaXJzdCwgY291bnQsIHByaW1jb3VudCk7Ci0jZWxpZiBQTEFURk9STShJ
T1MpIHx8IFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+
PSAxMDkwCisjZWxpZiBQTEFURk9STShDT0NPQSkKICAgICA6OmdsRHJhd0FycmF5c0luc3RhbmNl
ZEFSQihtb2RlLCBmaXJzdCwgY291bnQsIHByaW1jb3VudCk7CiAjZWxzZQogICAgIFVOVVNFRF9Q
QVJBTShtb2RlKTsKQEAgLTI2OSw3ICsyNjksNyBAQCB2b2lkIEV4dGVuc2lvbnMzRE9wZW5HTDo6
ZHJhd0VsZW1lbnRzSW5zCiAgICAgbV9jb250ZXh0LT5tYWtlQ29udGV4dEN1cnJlbnQoKTsKICNp
ZiBQTEFURk9STShHVEspCiAgICAgOjpnbERyYXdFbGVtZW50c0luc3RhbmNlZChtb2RlLCBjb3Vu
dCwgdHlwZSwgcmVpbnRlcnByZXRfY2FzdDxHTHZvaWQqPihzdGF0aWNfY2FzdDxpbnRwdHJfdD4o
b2Zmc2V0KSksIHByaW1jb3VudCk7Ci0jZWxpZiBQTEFURk9STShJT1MpIHx8IFBMQVRGT1JNKE1B
QykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDkwCisjZWxpZiBQTEFU
Rk9STShDT0NPQSkKICAgICA6OmdsRHJhd0VsZW1lbnRzSW5zdGFuY2VkQVJCKG1vZGUsIGNvdW50
LCB0eXBlLCByZWludGVycHJldF9jYXN0PEdMdm9pZCo+KHN0YXRpY19jYXN0PGludHB0cl90Pihv
ZmZzZXQpKSwgcHJpbWNvdW50KTsKICNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKG1vZGUpOwpAQCAt
Mjg1LDcgKzI4NSw3IEBAIHZvaWQgRXh0ZW5zaW9uczNET3BlbkdMOjp2ZXJ0ZXhBdHRyaWJEaXYK
ICAgICBtX2NvbnRleHQtPm1ha2VDb250ZXh0Q3VycmVudCgpOwogI2lmIFBMQVRGT1JNKEdUSykK
ICAgICA6OmdsVmVydGV4QXR0cmliRGl2aXNvcihpbmRleCwgZGl2aXNvcik7Ci0jZWxpZiBQTEFU
Rk9STShJT1MpIHx8IFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFV
SVJFRCA+PSAxMDkwCisjZWxpZiBQTEFURk9STShDT0NPQSkKICAgICA6OmdsVmVydGV4QXR0cmli
RGl2aXNvckFSQihpbmRleCwgZGl2aXNvcik7CiAjZWxzZQogICAgIFVOVVNFRF9QQVJBTShpbmRl
eCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2ViQ29yZVN5c3RlbUludGVy
ZmFjZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9XZWJDb3Jl
U3lzdGVtSW50ZXJmYWNlLmgJKHJldmlzaW9uIDE3OTI4MykKKysrIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21hYy9XZWJDb3JlU3lzdGVtSW50ZXJmYWNlLmgJKHdvcmtpbmcgY29weSkKQEAgLTI5
Nyw3ICsyOTcsNyBAQCBleHRlcm4gdm9pZCAoKndrU2V0TWV0YWRhdGFVUkwpKE5TU3RyaW5nCiBl
eHRlcm4gZGlzcGF0Y2hfc291cmNlX3QgKCp3a0NyZWF0ZVZNUHJlc3N1cmVEaXNwYXRjaE9uTWFp
blF1ZXVlKSh2b2lkKTsKICNlbmRpZgogCi0jaWYgIVBMQVRGT1JNKElPUykgJiYgX19NQUNfT1Nf
WF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDkwCisjaWYgUExBVEZPUk0oTUFDKQogZXh0ZXJu
IGRpc3BhdGNoX3NvdXJjZV90ICgqd2tDcmVhdGVNZW1vcnlTdGF0dXNQcmVzc3VyZUNyaXRpY2Fs
RGlzcGF0Y2hPbk1haW5RdWV1ZSkodm9pZCk7CiAjZW5kaWYKICAgICAKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21hYy9XZWJDb3JlU3lzdGVtSW50ZXJmYWNlLm1tCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9XZWJDb3JlU3lzdGVtSW50ZXJmYWNlLm1t
CShyZXZpc2lvbiAxNzkyODMpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2ViQ29y
ZVN5c3RlbUludGVyZmFjZS5tbQkod29ya2luZyBjb3B5KQpAQCAtMTUxLDcgKzE1MSw3IEBAIHZv
aWQoKndrRGVzdHJveVJlbmRlcmluZ1Jlc291cmNlcykodm9pZCkKIAogZGlzcGF0Y2hfc291cmNl
X3QgKCp3a0NyZWF0ZVZNUHJlc3N1cmVEaXNwYXRjaE9uTWFpblF1ZXVlKSh2b2lkKTsKIAotI2lm
IF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA5MAorI2lmIFBMQVRGT1JNKE1B
QykKIGRpc3BhdGNoX3NvdXJjZV90ICgqd2tDcmVhdGVNZW1vcnlTdGF0dXNQcmVzc3VyZUNyaXRp
Y2FsRGlzcGF0Y2hPbk1haW5RdWV1ZSkodm9pZCk7CiAjZW5kaWYKIApJbmRleDogU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUhhbmRsZUNGTmV0LmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxl
Q0ZOZXQuY3BwCShyZXZpc2lvbiAxNzkyNzQpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZOZXQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xOTQs
NyArMTk0LDcgQEAgdm9pZCBSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlQ0ZVUkxDb25uZWN0aQogICAg
ICAgICBDRkRpY3Rpb25hcnlTZXRWYWx1ZShzdHJlYW1Qcm9wZXJ0aWVzLCBDRlNUUigiX1dlYktp
dFN5bmNocm9ub3VzUmVxdWVzdCIpLCBrQ0ZCb29sZWFuVHJ1ZSk7CiAgICAgfQogCi0jaWYgUExB
VEZPUk0oSU9TKSB8fCAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JF
UVVJUkVEID49IDEwOTApCisjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgUmV0YWluUHRyPENGRGF0
YVJlZj4gc291cmNlQXBwbGljYXRpb25BdWRpdERhdGEgPSBkLT5tX2NvbnRleHQtPnNvdXJjZUFw
cGxpY2F0aW9uQXVkaXREYXRhKCk7CiAgICAgaWYgKHNvdXJjZUFwcGxpY2F0aW9uQXVkaXREYXRh
KQogICAgICAgICBDRkRpY3Rpb25hcnlTZXRWYWx1ZShzdHJlYW1Qcm9wZXJ0aWVzLCBDRlNUUigi
a0NGU3RyZWFtUHJvcGVydHlTb3VyY2VBcHBsaWNhdGlvbiIpLCBzb3VyY2VBcHBsaWNhdGlvbkF1
ZGl0RGF0YS5nZXQoKSk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2Nv
Y29hL1Byb3RlY3Rpb25TcGFjZUNvY29hLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9jb2NvYS9Qcm90ZWN0aW9uU3BhY2VDb2NvYS5oCShyZXZpc2lvbiAx
NzkyNzQpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NvY29hL1Byb3RlY3Rp
b25TcGFjZUNvY29hLmgJKHdvcmtpbmcgY29weSkKQEAgLTU0LDkgKzU0LDcgQEAgcHVibGljOgog
CiAgICAgc3RhdGljIGJvb2wgcGxhdGZvcm1Db21wYXJlKGNvbnN0IFByb3RlY3Rpb25TcGFjZSYg
YSwgY29uc3QgUHJvdGVjdGlvblNwYWNlJiBiKTsKIAotI2lmIFBMQVRGT1JNKElPUykgfHwgX19N
QUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDkwCiAgICAgV0VCQ09SRV9FWFBPUlQg
Ym9vbCBlbmNvZGluZ1JlcXVpcmVzUGxhdGZvcm1EYXRhKCkgY29uc3QgeyByZXR1cm4gbV9uc1Nw
YWNlICYmIGVuY29kaW5nUmVxdWlyZXNQbGF0Zm9ybURhdGEobV9uc1NwYWNlLmdldCgpKTsgfQot
I2VuZGlmCiAKICAgICBXRUJDT1JFX0VYUE9SVCBib29sIHJlY2VpdmVzQ3JlZGVudGlhbFNlY3Vy
ZWx5KCkgY29uc3Q7CiAKQEAgLTY2LDkgKzY0LDcgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQ
T1JUIE5TVVJMUHJvdGVjdGlvblNwYWNlICpuc1NwYWNlKCkgY29uc3Q7CiAKIHByaXZhdGU6Ci0j
aWYgUExBVEZPUk0oSU9TKSB8fCBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEw
OTAKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgYm9vbCBlbmNvZGluZ1JlcXVpcmVzUGxhdGZv
cm1EYXRhKE5TVVJMUHJvdGVjdGlvblNwYWNlICopOwotI2VuZGlmCiAKICAgICBtdXRhYmxlIFJl
dGFpblB0cjxOU1VSTFByb3RlY3Rpb25TcGFjZT4gbV9uc1NwYWNlOwogfTsKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY29jb2EvUHJvdGVjdGlvblNwYWNlQ29jb2EubW0K
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jb2NvYS9Qcm90
ZWN0aW9uU3BhY2VDb2NvYS5tbQkocmV2aXNpb24gMTc5Mjc0KQorKysgU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9jb2NvYS9Qcm90ZWN0aW9uU3BhY2VDb2NvYS5tbQkod29ya2luZyBj
b3B5KQpAQCAtMjAwLDExICsyMDAsOSBAQCBib29sIFByb3RlY3Rpb25TcGFjZTo6cmVjZWl2ZXND
cmVkZW50aWFsCiAgICAgcmV0dXJuIG5zU3BhY2UoKS5yZWNlaXZlc0NyZWRlbnRpYWxTZWN1cmVs
eTsKIH0KIAotI2lmIFBMQVRGT1JNKElPUykgfHwgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFV
SVJFRCA+PSAxMDkwCiBib29sIFByb3RlY3Rpb25TcGFjZTo6ZW5jb2RpbmdSZXF1aXJlc1BsYXRm
b3JtRGF0YShOU1VSTFByb3RlY3Rpb25TcGFjZSAqc3BhY2UpCiB7CiAgICAgcmV0dXJuIHNwYWNl
LmRpc3Rpbmd1aXNoZWROYW1lcyB8fCBzcGFjZS5zZXJ2ZXJUcnVzdDsKIH0KLSNlbmRpZgogCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL21hYy9SZXNvdXJjZUhhbmRsZU1hYy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJjZUhhbmRsZU1hYy5tbQkocmV2aXNpb24gMTc5
Mjc0KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvUmVzb3VyY2VIYW5k
bGVNYWMubW0JKHdvcmtpbmcgY29weSkKQEAgLTIwNiwxMSArMjA2LDkgQEAgdm9pZCBSZXNvdXJj
ZUhhbmRsZTo6Y3JlYXRlTlNVUkxDb25uZWN0aQogICAgICAgICBbc3RyZWFtUHJvcGVydGllcyBz
ZXRPYmplY3Q6QFRSVUUgZm9yS2V5OkAiX1dlYktpdFN5bmNocm9ub3VzUmVxdWVzdCJdOwogICAg
IH0KIAotI2lmIFBMQVRGT1JNKElPUykgfHwgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJF
RCA+PSAxMDkwCiAgICAgUmV0YWluUHRyPENGRGF0YVJlZj4gc291cmNlQXBwbGljYXRpb25BdWRp
dERhdGEgPSBkLT5tX2NvbnRleHQtPnNvdXJjZUFwcGxpY2F0aW9uQXVkaXREYXRhKCk7CiAgICAg
aWYgKHNvdXJjZUFwcGxpY2F0aW9uQXVkaXREYXRhKQogICAgICAgICBbc3RyZWFtUHJvcGVydGll
cyBzZXRPYmplY3Q6KE5TRGF0YSAqKXNvdXJjZUFwcGxpY2F0aW9uQXVkaXREYXRhLmdldCgpIGZv
cktleTpAImtDRlN0cmVhbVByb3BlcnR5U291cmNlQXBwbGljYXRpb24iXTsKLSNlbmRpZgogCiAj
aWYgUExBVEZPUk0oSU9TKQogICAgIE5TTXV0YWJsZURpY3Rpb25hcnkgKnByb3BlcnR5RGljdGlv
bmFyeSA9IFtOU011dGFibGVEaWN0aW9uYXJ5IGRpY3Rpb25hcnlXaXRoRGljdGlvbmFyeTpjb25u
ZWN0aW9uUHJvcGVydGllc107CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L21hYy9XZWJDb3JlVVJMUmVzcG9uc2UubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9tYWMvV2ViQ29yZVVSTFJlc3BvbnNlLm1tCShyZXZpc2lvbiAxNzky
NzQpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9XZWJDb3JlVVJMUmVz
cG9uc2UubW0JKHdvcmtpbmcgY29weSkKQEAgLTMyOCw3ICszMjgsNiBAQCB2b2lkIGFkanVzdE1J
TUVUeXBlSWZOZWNlc3NhcnkoQ0ZVUkxSZXNwCiAjaWYgIVVTRShDRk5FVFdPUkspCiBOU1VSTFJl
c3BvbnNlICpzeW50aGVzaXplUmVkaXJlY3RSZXNwb25zZUlmTmVjZXNzYXJ5KE5TVVJMQ29ubmVj
dGlvbiAqY29ubmVjdGlvbiwgTlNVUkxSZXF1ZXN0ICpuZXdSZXF1ZXN0LCBOU1VSTFJlc3BvbnNl
ICpyZWRpcmVjdFJlc3BvbnNlKQogewotI2lmIFBMQVRGT1JNKElPUykgfHwgX19NQUNfT1NfWF9W
RVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDkwCiAgICAgaWYgKHJlZGlyZWN0UmVzcG9uc2UpCiAg
ICAgICAgIHJldHVybiByZWRpcmVjdFJlc3BvbnNlOwogCkBAIC0zMzksMTEgKzMzOCw2IEBAIE5T
VVJMUmVzcG9uc2UgKnN5bnRoZXNpemVSZWRpcmVjdFJlc3BvbnMKICAgICAvLyBUaGlzIGlzIGNy
aXRpY2FsIGZvciBIU1RTICg8cmRhcjovL3Byb2JsZW0vMTQyNDEyNzA+KS4KICAgICBOU0RpY3Rp
b25hcnkgKnN5bnRoZXNpemVkUmVzcG9uc2VIZWFkZXJGaWVsZHMgPSBAeyBAIkxvY2F0aW9uIjog
W1tuZXdSZXF1ZXN0IFVSTF0gYWJzb2x1dGVTdHJpbmddLCBAIkNhY2hlLUNvbnRyb2wiOiBAIm5v
LXN0b3JlIiB9OwogICAgIHJldHVybiBbW1tOU0hUVFBVUkxSZXNwb25zZSBhbGxvY10gaW5pdFdp
dGhVUkw6W1tjb25uZWN0aW9uIGN1cnJlbnRSZXF1ZXN0XSBVUkxdIHN0YXR1c0NvZGU6MzAyIEhU
VFBWZXJzaW9uOihOU1N0cmluZyAqKWtDRkhUVFBWZXJzaW9uMV8xIGhlYWRlckZpZWxkczpzeW50
aGVzaXplZFJlc3BvbnNlSGVhZGVyRmllbGRzXSBhdXRvcmVsZWFzZV07Ci0jZWxzZQotICAgIFVO
VVNFRF9QQVJBTShjb25uZWN0aW9uKTsKLSAgICBVTlVTRURfUEFSQU0obmV3UmVxdWVzdCk7Ci0g
ICAgcmV0dXJuIHJlZGlyZWN0UmVzcG9uc2U7Ci0jZW5kaWYKIH0KICNlbmRpZgogCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcGkvY2YvQ0ZOZXR3b3JrU1BJLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3BpL2NmL0NGTmV0d29ya1NQSS5oCShyZXZpc2lv
biAxNzkyNzQpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcGkvY2YvQ0ZOZXR3b3JrU1BJ
LmgJKHdvcmtpbmcgY29weSkKQEAgLTY4LDcgKzY4LDcgQEAgRVhURVJOX0Mgdm9pZCBDRlVSTFJl
cXVlc3RTZXRTaG91bGRTdGFydAogRVhURVJOX0MgQ0ZVUkxDYWNoZVJlZiBDRlVSTENhY2hlQ29w
eVNoYXJlZFVSTENhY2hlKCk7CiBFWFRFUk5fQyB2b2lkIENGVVJMQ2FjaGVTZXRNZW1vcnlDYXBh
Y2l0eShDRlVSTENhY2hlUmVmLCBDRkluZGV4IG1lbW9yeUNhcGFjaXR5KTsKIEVYVEVSTl9DIHZv
aWQgX0NGVVJMQ2FjaGVQdXJnZU1lbW9yeUNhY2hlKENGVVJMQ2FjaGVSZWYpOwotI2lmIFBMQVRG
T1JNKElPUykgfHwgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDkwCisjaWYg
UExBVEZPUk0oQ09DT0EpCiBFWFRFUk5fQyBDRkJvb2xlYW5SZWYgX0NGVVJMQ2FjaGVJc1Jlc3Bv
bnNlRGF0YU1lbU1hcHBlZChDRlVSTENhY2hlUmVmLCBDRkRhdGFSZWYpOwogRVhURVJOX0Mgdm9p
ZCBfQ0ZVUkxDYWNoZVNldE1pblNpemVGb3JWTUNhY2hlZFJlc291cmNlKENGVVJMQ2FjaGVSZWYs
IENGSW5kZXgpOwogCkBAIC03OCwxMiArNzgsMTIgQEAgRVhURVJOX0Mgdm9pZCBfQ0ZOZXR3b3Jr
UmVzZXRIU1RTSG9zdHNXaQogCiBFWFRFUk5fQyB2b2lkIENGSFRUUENvb2tpZVN0b3JhZ2VEZWxl
dGVBbGxDb29raWVzKENGSFRUUENvb2tpZVN0b3JhZ2VSZWYpOwogCi0jaWYgUExBVEZPUk0oSU9T
KSB8fCBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwOTAKKyNpZiBQTEFURk9S
TShDT0NPQSkKIEVYVEVSTl9DIENGRGF0YVJlZiBfQ0ZDYWNoZWRVUkxSZXNwb25zZUdldE1lbU1h
cHBlZERhdGEoQ0ZDYWNoZWRVUkxSZXNwb25zZVJlZik7CiAjaWZkZWYgX19CTE9DS1NfXwogRVhU
RVJOX0Mgdm9pZCBfQ0ZDYWNoZWRVUkxSZXNwb25zZVNldEJlY2FtZUZpbGVCYWNrZWRDYWxsQmFj
a0Jsb2NrKENGQ2FjaGVkVVJMUmVzcG9uc2VSZWYsIENGQ2FjaGVkVVJMUmVzcG9uc2VDYWxsQmFj
a0Jsb2NrLCBkaXNwYXRjaF9xdWV1ZV90KTsKICNlbmRpZgotI2VuZGlmIC8vIFBMQVRGT1JNKElP
UykgfHwgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDkwCisjZW5kaWYgLy8g
UExBVEZPUk0oQ09DT0EpCiAKIEVYVEVSTl9DIHZvaWQgQ0ZVUkxDb25uZWN0aW9uSW52YWxpZGF0
ZUNvbm5lY3Rpb25DYWNoZSgpOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0
L21hYy9Mb2NhbGVNYWMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
dGV4dC9tYWMvTG9jYWxlTWFjLm1tCShyZXZpc2lvbiAxNzkyNzQpCisrKyBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS90ZXh0L21hYy9Mb2NhbGVNYWMubW0JKHdvcmtpbmcgY29weSkKQEAgLTg0LDcg
Kzg0LDcgQEAgc3RhdGljIFJldGFpblB0cjxOU0RhdGVGb3JtYXR0ZXI+IGNyZWF0ZQogCiBMb2Nh
bGVNYWM6OkxvY2FsZU1hYyhOU0xvY2FsZSogbG9jYWxlKQogICAgIDogbV9sb2NhbGUobG9jYWxl
KQotI2lmIChQTEFURk9STShJT1MpICYmIF9fSVBIT05FX09TX1ZFUlNJT05fTUlOX1JFUVVJUkVE
ID49IDgwMDAwKSB8fCAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JF
UVVJUkVEID49IDEwOTApCisjaWYgKFBMQVRGT1JNKElPUykgJiYgX19JUEhPTkVfT1NfVkVSU0lP
Tl9NSU5fUkVRVUlSRUQgPj0gODAwMDApIHx8IFBMQVRGT1JNKE1BQykKICAgICAsIG1fZ3JlZ29y
aWFuQ2FsZW5kYXIoYWRvcHROUyhbW05TQ2FsZW5kYXIgYWxsb2NdIGluaXRXaXRoQ2FsZW5kYXJJ
ZGVudGlmaWVyOk5TQ2FsZW5kYXJJZGVudGlmaWVyR3JlZ29yaWFuXSkpCiAjZWxzZQogICAgICwg
bV9ncmVnb3JpYW5DYWxlbmRhcihhZG9wdE5TKFtbTlNDYWxlbmRhciBhbGxvY10gaW5pdFdpdGhD
YWxlbmRhcklkZW50aWZpZXI6TlNHcmVnb3JpYW5DYWxlbmRhcl0pKQo=
</data>
<flag name="review"
          id="270532"
          type_id="1"
          status="+"
          setter="andersca"
    />
          </attachment>
      

    </bug>

</bugzilla>